From 2e4403de43b0e7bf05b2a6200fc7b672a3aa2b9c Mon Sep 17 00:00:00 2001 From: Michael Duong Date: Fri, 24 Nov 2023 12:29:23 +0000 Subject: [PATCH 001/526] ignore old folder --- .gitignore | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 6a580686..89e265cd 100644 --- a/.gitignore +++ b/.gitignore @@ -255,7 +255,7 @@ open_uprn/.idea/ conservation_areas/.idea/ model_data/.idea/ model_data/simulation_system/.idea/ - +model_data/simulation_system/ model_data/simulation_system/data* model_data/simulation_system/model_directory/ model_data/simulation_system/predictions/ From 0f3e325f5b65623e26dbd4f8b151199ad9a8ae60 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Mon, 27 Nov 2023 16:35:56 +0000 Subject: [PATCH 002/526] Generalising api class for prediction in router: --- backend/app/plan/router.py | 25 +++----- .../{sap_change_model => }/__init__.py | 0 .../ml_models/{sap_change_model => }/api.py | 63 +++++++++++++++++-- 3 files changed, 66 insertions(+), 22 deletions(-) rename backend/ml_models/{sap_change_model => }/__init__.py (100%) rename backend/ml_models/{sap_change_model => }/api.py (52%) diff --git a/backend/app/plan/router.py b/backend/app/plan/router.py index a20369cc..025b252e 100644 --- a/backend/app/plan/router.py +++ b/backend/app/plan/router.py @@ -25,7 +25,7 @@ from backend.app.plan.utils import ( ) from backend.app.utils import epc_to_sap_lower_bound, read_csv_from_s3, read_parquet_from_s3 -from backend.ml_models.sap_change_model.api import SAPChangeModelAPI +from backend.ml_models.api import ModelApi from backend.Property import Property from etl.epc.DataProcessor import DataProcessor from etl.epc.settings import COLUMNS_TO_MERGE_ON @@ -234,30 +234,19 @@ async def trigger_plan(body: PlanTriggerRequest): recommendations_scoring_data = DataProcessor.clean_efficiency_variables(recommendations_scoring_data) - sap_change_model_api = SAPChangeModelAPI(portfolio_id=body.portfolio_id, timestamp=created_at) - file_location = sap_change_model_api.upload_scoring_data( - df=recommendations_scoring_data, bucket=get_settings().DATA_BUCKET + model_api = ModelApi(portfolio_id=body.portfolio_id, timestamp=created_at) + all_predictions = model_api.predict_all( + df=recommendations_scoring_data, + bucket=get_settings().DATA_BUCKET, + predictions_bucket=get_settings().PREDICTIONS_BUCKET ) - response = sap_change_model_api.predict( - file_location="s3://{DATA_BUCKET}/".format(DATA_BUCKET=get_settings().DATA_BUCKET) + file_location, - ) - - # Retrieve the predictions - predictions = pd.DataFrame( - read_parquet_from_s3( - bucket_name=get_settings().PREDICTIONS_BUCKET, - file_key=response["storage_filepath"].split(get_settings().PREDICTIONS_BUCKET + "/")[1] - ) - ) - - predictions["predictions"] = predictions["predictions"].astype(float).round(1) - predictions[['property_id', 'recommendation_id']] = predictions['id'].str.split('+', expand=True) # Insert the predictions into the recommendations and run the optimiser logger.info("Optimising recommendations") for property_id in recommendations.keys(): property = [p for p in input_properties if p.id == property_id][0] + predictions = all_predictions["sap_change_predictions"] property_predictions = predictions[predictions["property_id"] == str(property_id)] for recommendations_by_type in recommendations[property_id]: diff --git a/backend/ml_models/sap_change_model/__init__.py b/backend/ml_models/__init__.py similarity index 100% rename from backend/ml_models/sap_change_model/__init__.py rename to backend/ml_models/__init__.py diff --git a/backend/ml_models/sap_change_model/api.py b/backend/ml_models/api.py similarity index 52% rename from backend/ml_models/sap_change_model/api.py rename to backend/ml_models/api.py index 2eb7d706..6c92df2a 100644 --- a/backend/ml_models/sap_change_model/api.py +++ b/backend/ml_models/api.py @@ -3,11 +3,24 @@ import requests from requests.exceptions import RequestException from utils.logger import setup_logger from utils.s3 import save_dataframe_to_s3_parquet +from backend.app.utils import read_parquet_from_s3 logger = setup_logger() -class SAPChangeModelAPI: +class ModelApi: + MODEL_PREFIXES = [ + "sap_change_predictions", + "heat_demand_predictions", + "carbon_change_predictions" + ] + + MODEL_URLS = { + "sap_change_predictions": "sapmodel", + "heat_demand_predictions": "heatmodel", + "carbon_change_predictions": "carbonmodel" + } + def __init__( self, portfolio_id, @@ -15,6 +28,9 @@ class SAPChangeModelAPI: base_url="https://api.dev.hestia.homes", ): """ + This class handles the communication with the Model APIs. These models include SAP change, heat demain change + and carbon change + property_id (int, optional): : :param portfolio_id: The portfolio ID to be passed in the request payload. Defaults to 4. :param timestamp: The creation timestamp to be passed in the request payload. Defaults to None. @@ -24,7 +40,7 @@ class SAPChangeModelAPI: self.portfolio_id = portfolio_id self.timestamp = timestamp - def upload_scoring_data(self, df: pd.DataFrame, bucket: str) -> str: + def upload_scoring_data(self, df: pd.DataFrame, bucket: str, model_prefix: str) -> str: """ The sap model api needs a scoring data that is sitting in s3 to use as a dataset to score on This method allows the user to upload a table as a parquet file. This method will return the file @@ -32,9 +48,13 @@ class SAPChangeModelAPI: :param df: Pandas dataframe with scoring data to be uploaded to s3 :param bucket: Name of the bucket in s3 to upload to + :param model_prefix: The model prefix to be used in the file location :return: """ + if model_prefix not in self.MODEL_PREFIXES: + raise ValueError(f"Model prefix specified is not in {self.MODEL_PREFIXES}") + # Store parquet file in s3 for scoring file_location = "sap_change_predictions/{portfolio_id}/{timestamp}.parquet".format( portfolio_id=self.portfolio_id, @@ -50,17 +70,18 @@ class SAPChangeModelAPI: return file_location - def predict(self, file_location): + def predict(self, file_location, model_prefix: str): """Makes a POST request to the SAP Change Model API with the provided parameters. Args: file_location (str): The file location to be passed in the request payload. + model_prefix (str): The model prefix to be used in the request URL. Returns: dict: The API response as a dictionary if the request was successful, None otherwise. """ logger.info("Making request to sap change api") - url = f"{self.base_url}/sapmodel/predict" + url = f"{self.base_url}/{self.MODEL_URLS[model_prefix]}/predict" payload = { "file_location": file_location, "property_id": "", # This should get removed @@ -81,3 +102,37 @@ class SAPChangeModelAPI: # In case of an error, you might want to return None or raise the exception # depending on how you want to handle errors in your application return None + + def predict_all(self, df, bucket, predictions_bucket) -> dict: + + """ + For each model prefix, this method will upload the scoring data to s3 and then make a request to the + model api to generate predictions. The predictions will be stored in the predictions bucket. + This method will then fetch the stored predictions and format them, returning all of the predictions as + a dictionary of panaas dataframes + :param df: Pandas dataframe with scoring data to be uploaded to s3 + :param bucket: Name of the bucket in s3 to upload to + :param predictions_bucket: Name of the bucket in s3 to store predictions + :return: + """ + + predictions = {} + for model_prefix in self.MODEL_PREFIXES: + logger.info(f"Scoring for model prefix: {model_prefix}") + file_location = self.upload_scoring_data(df, bucket, model_prefix) + response = self.predict(file_location, model_prefix) + + # Retrieve the predictions + predictions_df = pd.DataFrame( + read_parquet_from_s3( + bucket_name=predictions_bucket, + file_key=response["storage_filepath"].split(predictions_bucket + "/")[1] + ) + ) + + predictions_df["predictions"] = predictions_df["predictions"].astype(float).round(1) + predictions_df[['property_id', 'recommendation_id']] = predictions_df['id'].str.split('+', expand=True) + + predictions[model_prefix] = predictions_df + + return predictions From 3166ce5521db7de38fced262188ff00e82869bc9 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Mon, 27 Nov 2023 16:37:51 +0000 Subject: [PATCH 003/526] fixed model api url --- backend/ml_models/api.py | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/backend/ml_models/api.py b/backend/ml_models/api.py index 6c92df2a..02d6ecac 100644 --- a/backend/ml_models/api.py +++ b/backend/ml_models/api.py @@ -56,10 +56,7 @@ class ModelApi: raise ValueError(f"Model prefix specified is not in {self.MODEL_PREFIXES}") # Store parquet file in s3 for scoring - file_location = "sap_change_predictions/{portfolio_id}/{timestamp}.parquet".format( - portfolio_id=self.portfolio_id, - timestamp=self.timestamp - ) + file_location = f"{model_prefix}/{self.portfolio_id}/{self.timestamp}.parquet" logger.info("Storing scoring data to s3") save_dataframe_to_s3_parquet( From 5d5422637865dc7ebdced280cd45a8b20cec0d6e Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Mon, 27 Nov 2023 17:10:47 +0000 Subject: [PATCH 004/526] Working on adding new Recommendations class for updating recommendations with impact --- .../db/functions/recommendations_functions.py | 2 + backend/app/plan/router.py | 26 ++++------ recommendations/Recommendations.py | 52 +++++++++++++++++++ 3 files changed, 64 insertions(+), 16 deletions(-) create mode 100644 recommendations/Recommendations.py diff --git a/backend/app/db/functions/recommendations_functions.py b/backend/app/db/functions/recommendations_functions.py index 34c4ef96..ec22fad2 100644 --- a/backend/app/db/functions/recommendations_functions.py +++ b/backend/app/db/functions/recommendations_functions.py @@ -80,6 +80,8 @@ def upload_recommendations(session: Session, recommendations_to_upload, property "starting_u_value": rec.get("starting_u_value"), "new_u_value": rec.get("new_u_value"), "sap_points": rec["sap_points"], + "heat_demand": rec["heat_demand"], + "co2_equivalent_savings": rec["co2_equivalent_savings"], "total_work_hours": rec["labour_hours"], } for rec in recommendations_to_upload diff --git a/backend/app/plan/router.py b/backend/app/plan/router.py index 025b252e..2e262082 100644 --- a/backend/app/plan/router.py +++ b/backend/app/plan/router.py @@ -37,6 +37,7 @@ from recommendations.optimiser.CostOptimiser import CostOptimiser from recommendations.optimiser.GainOptimiser import GainOptimiser from recommendations.optimiser.optimiser_functions import prepare_input_measures from recommendations.WallRecommendations import WallRecommendations +from recommendations.Recommendations import Recommendations from utils.logger import setup_logger from utils.s3 import read_dataframe_from_s3_parquet @@ -245,28 +246,21 @@ async def trigger_plan(body: PlanTriggerRequest): logger.info("Optimising recommendations") for property_id in recommendations.keys(): - property = [p for p in input_properties if p.id == property_id][0] - predictions = all_predictions["sap_change_predictions"] - property_predictions = predictions[predictions["property_id"] == str(property_id)] + property_instance = [p for p in input_properties if p.id == property_id][0] - for recommendations_by_type in recommendations[property_id]: - for rec in recommendations_by_type: - new_sap = property_predictions[property_predictions["recommendation_id"] == str( - rec["recommendation_id"] - )]["predictions"].values[0] + recommendations_with_impact = Recommendations.calculate_recommendation_impact( + property_instance=property_instance, + all_predictions=all_predictions, + recommendations=recommendations + ) - rec["sap_points"] = new_sap - float(property.data["current-energy-efficiency"]) - - if rec["sap_points"] is None: - raise ValueError("Sap points missing") - - input_measures = prepare_input_measures(recommendations[property_id], body.goal) + input_measures = prepare_input_measures(recommendations_with_impact, body.goal) if body.budget: optimiser = GainOptimiser(input_measures, max_cost=body.budget) else: # The minimum gain is the minimum number of SAP points required to get to the target SAP band - current_sap_points = int(property.data["current-energy-efficiency"]) + current_sap_points = int(property_instance.data["current-energy-efficiency"]) target_sap_points = epc_to_sap_lower_bound(body.goal_value) # If the gain is negative, the optimiser will return an empty solution @@ -286,7 +280,7 @@ async def trigger_plan(body: PlanTriggerRequest): {**rec, "default": True if rec["recommendation_id"] in selected_recommendations else False} for rec in recommendations_by_type ] - for recommendations_by_type in recommendations[property_id] + for recommendations_by_type in recommendations_with_impact ] # We'll also unlist the recommendations so they're a bit easier to handle from here onwards diff --git a/recommendations/Recommendations.py b/recommendations/Recommendations.py new file mode 100644 index 00000000..5e4d1cc3 --- /dev/null +++ b/recommendations/Recommendations.py @@ -0,0 +1,52 @@ +class Recommendations: + """ + High level recommendations class, which sits above the measure specific recommendation classes + """ + + @classmethod + def calculate_recommendation_impact(cls, property_instance, all_predictions, recommendations): + + """ + Given predictions from the model apis, with method will update the recommendations with the predicted + impact of the recommendation on the property + + :param property_instance: Instance of the Property class, for the home associated to property_id + :param all_predictions: dictionary of predictions from the model apis + :param recommendations: dictionary of recommendations for the property + :return: + """ + + property_sap_predictions = all_predictions["sap_change_predictions"][ + all_predictions["sap_change_predictions"]["property_id"] == str(property_instance.id) + ] + property_heat_predictions = all_predictions["heat_demand_predictions"][ + all_predictions["heat_demand_predictions"]["property_id"] == str(property_instance.id) + ] + property_carbon_predictions = all_predictions["carbon_change_predictions"][ + all_predictions["carbon_change_predictions"]["property_id"] == str(property_instance.id) + ] + + property_recommendations = recommendations[property_instance.id].copy() + + for recommendations_by_type in property_recommendations: + for rec in recommendations_by_type: + new_sap = property_sap_predictions[property_sap_predictions["recommendation_id"] == str( + rec["recommendation_id"] + )]["predictions"].values[0] + + new_heat_demand = property_heat_predictions[property_heat_predictions["recommendation_id"] == str( + rec["recommendation_id"] + )]["predictions"].values[0] + + new_carbon = property_carbon_predictions[property_carbon_predictions["recommendation_id"] == str( + rec["recommendation_id"] + )]["predictions"].values[0] + + rec["sap_points"] = new_sap - float(property_instance.data["current-energy-efficiency"]) + rec["co2_equivalent_savings"] = float(property_instance.data["co2-emissions-current"]) - new_carbon + rec["heat_demand"] = float(property_instance.data["co2-emissions-current"]) - new_heat_demand + + if rec["sap_points"] is None: + raise ValueError("Sap points missing") + + return property_recommendations From f4e0528aa0602099ba3af9d72c0f041e65143055 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Mon, 27 Nov 2023 17:12:20 +0000 Subject: [PATCH 005/526] Addde ValueError on missing impact measure --- recommendations/Recommendations.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/recommendations/Recommendations.py b/recommendations/Recommendations.py index 5e4d1cc3..aa66159b 100644 --- a/recommendations/Recommendations.py +++ b/recommendations/Recommendations.py @@ -46,7 +46,8 @@ class Recommendations: rec["co2_equivalent_savings"] = float(property_instance.data["co2-emissions-current"]) - new_carbon rec["heat_demand"] = float(property_instance.data["co2-emissions-current"]) - new_heat_demand - if rec["sap_points"] is None: - raise ValueError("Sap points missing") + if (rec["sap_points"] is None) and (rec["co2_equivalent_savings"] is None) or ( + rec["heat_demand"] is None): + raise ValueError("sap points, co2 or heat demand is missing") return property_recommendations From 1da9433ee2b998550659712b0c542a88f0bf769c Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Tue, 28 Nov 2023 11:41:34 +0000 Subject: [PATCH 006/526] Adding in mvp valuation and energy cost savings for keyzy demo --- backend/app/config.py | 4 +- .../app/db/functions/portfolio_functions.py | 11 +- .../db/functions/recommendations_functions.py | 1 + backend/app/plan/router.py | 60 ++--------- backend/app/plan/utils.py | 31 ++---- backend/ml_models/AnnualBillSavings.py | 28 +++++ backend/ml_models/Valuation.py | 43 ++++++++ backend/ml_models/api.py | 12 ++- recommendations/Costs.py | 2 +- recommendations/Recommendations.py | 102 +++++++++++++++++- 10 files changed, 209 insertions(+), 85 deletions(-) create mode 100644 backend/ml_models/AnnualBillSavings.py create mode 100644 backend/ml_models/Valuation.py diff --git a/backend/app/config.py b/backend/app/config.py index 40aef822..22621972 100644 --- a/backend/app/config.py +++ b/backend/app/config.py @@ -8,7 +8,9 @@ class Settings(BaseSettings): SECRET_KEY: str ENVIRONMENT: str DATA_BUCKET: str - PREDICTIONS_BUCKET: str + SAP_PREDICTIONS_BUCKET: str + CARBON_PREDICTIONS_BUCKET: str + HEAT_PREDICTIONS_BUCKET: str PLAN_TRIGGER_BUCKET: str EPC_AUTH_TOKEN: str DB_HOST: str diff --git a/backend/app/db/functions/portfolio_functions.py b/backend/app/db/functions/portfolio_functions.py index 08e15a32..fc9add42 100644 --- a/backend/app/db/functions/portfolio_functions.py +++ b/backend/app/db/functions/portfolio_functions.py @@ -9,9 +9,9 @@ def aggregate_portfolio_recommendations(session, portfolio_id: int): session.query( func.sum(Recommendation.estimated_cost).label("cost"), func.sum(Recommendation.total_work_hours).label("total_work_hours"), - # For future usage we will aggregate multiple fields in this step - # func.sum(Recommendation.heat_demand).label("total_heat_demand"), - # func.sum(Recommendation.energy_savings).label("total_energy_savings") + func.sum(Recommendation.heat_demand).label("total_heat_demand"), + func.sum(Recommendation.energy_savings).label("total_energy_savings"), + func.sum(Recommendation.energy_cost_savings).label("energy_cost_savings") ) .join(PlanRecommendations, PlanRecommendations.recommendation_id == Recommendation.id) .join(Plan, Plan.id == PlanRecommendations.plan_id) @@ -22,8 +22,9 @@ def aggregate_portfolio_recommendations(session, portfolio_id: int): aggregates_dict = { "cost": aggregates.cost or 0, "total_work_hours": aggregates.total_work_hours or 0, - # "total_heat_demand": aggregates.total_heat_demand or 0, - # "total_energy_savings": aggregates.total_energy_savings or 0 + "total_heat_demand": aggregates.total_heat_demand or 0, + "total_energy_savings": aggregates.total_energy_savings or 0, + "energy_cost_savings": aggregates.energy_cost_savings or 0, } # Get the portfolio and update the fields diff --git a/backend/app/db/functions/recommendations_functions.py b/backend/app/db/functions/recommendations_functions.py index ec22fad2..772e1184 100644 --- a/backend/app/db/functions/recommendations_functions.py +++ b/backend/app/db/functions/recommendations_functions.py @@ -83,6 +83,7 @@ def upload_recommendations(session: Session, recommendations_to_upload, property "heat_demand": rec["heat_demand"], "co2_equivalent_savings": rec["co2_equivalent_savings"], "total_work_hours": rec["labour_hours"], + "energy_cost_savings": rec["energy_cost_savings"] } for rec in recommendations_to_upload ] diff --git a/backend/app/plan/router.py b/backend/app/plan/router.py index 2e262082..408b4101 100644 --- a/backend/app/plan/router.py +++ b/backend/app/plan/router.py @@ -20,23 +20,16 @@ from backend.app.db.functions.recommendations_functions import ( from backend.app.db.models.portfolio import rating_lookup from backend.app.dependencies import validate_token from backend.app.plan.schemas import PlanTriggerRequest -from backend.app.plan.utils import ( - create_recommendation_scoring_data, get_cleaned, insert_temp_recommendation_id -) +from backend.app.plan.utils import create_recommendation_scoring_data, get_cleaned from backend.app.utils import epc_to_sap_lower_bound, read_csv_from_s3, read_parquet_from_s3 from backend.ml_models.api import ModelApi from backend.Property import Property from etl.epc.DataProcessor import DataProcessor from etl.epc.settings import COLUMNS_TO_MERGE_ON -from recommendations.FloorRecommendations import FloorRecommendations -from recommendations.RoofRecommendations import RoofRecommendations -from recommendations.VentilationRecommendations import VentilationRecommendations -from recommendations.FireplaceRecommendations import FireplaceRecommendations from recommendations.optimiser.CostOptimiser import CostOptimiser from recommendations.optimiser.GainOptimiser import GainOptimiser from recommendations.optimiser.optimiser_functions import prepare_input_measures -from recommendations.WallRecommendations import WallRecommendations from recommendations.Recommendations import Recommendations from utils.logger import setup_logger from utils.s3 import read_dataframe_from_s3_parquet @@ -130,49 +123,8 @@ async def trigger_plan(body: PlanTriggerRequest): # Property recommendations p.get_components(cleaned) - property_recommendations = [] - - # Floor recommendations - floor_recommender = FloorRecommendations(property_instance=p, materials=materials) - floor_recommender.recommend() - - if floor_recommender.recommendations: - property_recommendations.append(floor_recommender.recommendations) - - # Wall recommendations - - wall_recomender = WallRecommendations(property_instance=p, materials=materials) - wall_recomender.recommend() - - if wall_recomender.recommendations: - property_recommendations.append(wall_recomender.recommendations) - - # Roof recommendations - roof_recommender = RoofRecommendations(property_instance=p, materials=materials) - roof_recommender.recommend() - - if roof_recommender.recommendations: - property_recommendations.append(roof_recommender.recommendations) - - # Ventilation recommendations - ventilation_recomender = VentilationRecommendations( - property_instance=p, - materials=[part for part in materials if part["type"] == "mechanical_ventilation"] - ) - ventilation_recomender.recommend() - - if ventilation_recomender.recommendation: - property_recommendations.append(ventilation_recomender.recommendation) - - # Fireplace sealing recommendations - fireplace_recommender = FireplaceRecommendations(property_instance=p) - fireplace_recommender.recommend() - - if fireplace_recommender.recommendation: - property_recommendations.append(fireplace_recommender.recommendation) - - # We insert temporary ids into the recommendations which is important for the optimiser later - property_recommendations = insert_temp_recommendation_id(property_recommendations) + recommender = Recommendations(property_instance=p, materials=materials) + property_recommendations = recommender.recommend() if not property_recommendations: continue @@ -239,7 +191,11 @@ async def trigger_plan(body: PlanTriggerRequest): all_predictions = model_api.predict_all( df=recommendations_scoring_data, bucket=get_settings().DATA_BUCKET, - predictions_bucket=get_settings().PREDICTIONS_BUCKET + prediction_buckets={ + "sap_change_predictions": get_settings().SAP_PREDICTIONS_BUCKET, + "heat_demand_predictions": get_settings().HEAT_PREDICTIONS_BUCKET, + "carbon_change_predictions": get_settings().CARBON_PREDICTIONS_BUCKET + } ) # Insert the predictions into the recommendations and run the optimiser diff --git a/backend/app/plan/utils.py b/backend/app/plan/utils.py index 20b5db5b..5bb8e42a 100644 --- a/backend/app/plan/utils.py +++ b/backend/app/plan/utils.py @@ -8,25 +8,6 @@ from backend.app.config import get_settings import msgpack -def insert_temp_recommendation_id(property_recommendations): - """ - Creates a temporary recommendation id which is needed for - filtering recommendations between default and no, after the optimiser has been - run - :param property_recommendations: nested list of recommendations, grouped by data_types - :return: Updated recommendations_to_upload, where where recommendation has a "recommendation_id" - integer inserted - """ - idx = 0 - - for recs in property_recommendations: - for rec in recs: - rec["recommendation_id"] = idx - idx += 1 - - return property_recommendations - - def get_cleaned(): """ This function will retrieve the cleaned dataset from s3 which has the cleaned @@ -154,7 +135,17 @@ def create_recommendation_scoring_data( if len(parts) != 1: raise ValueError("More than one part for roof insulation - investiage me") - scoring_dict["roof_insulation_thickness_ENDING"] = str(int(parts[0]["depth"])) + # This is based on the values we have in the training data + valid_numeric_values = [ + 12, 25, 50, 75, 100, 150, 200, 250, 270, 300, 350, 400 + ] + + proposed_depth = int(parts[0]["depth"]) + if proposed_depth not in valid_numeric_values: + # Take the nearest value for scoring + proposed_depth = min(valid_numeric_values, key=lambda x: abs(x - proposed_depth)) + + scoring_dict["roof_insulation_thickness_ENDING"] = str(proposed_depth) scoring_dict["ROOF_ENERGY_EFF_ENDING"] = "Very Good" else: # Fill missing roof u-values - this fill is not based on recommended upgrades diff --git a/backend/ml_models/AnnualBillSavings.py b/backend/ml_models/AnnualBillSavings.py new file mode 100644 index 00000000..c057f4aa --- /dev/null +++ b/backend/ml_models/AnnualBillSavings.py @@ -0,0 +1,28 @@ +class AnnualBillSavings: + """ + This is a simple class which will estimate the annual bill savings, based on the kwh savings. + This class uses data from Ofgem, including their price caps, to provide us with an estimate for + 1KWH of energy. + """ + + # These gas an electricity consumption figures are based off of figures presented by Ofgem + # https://www.ofgem.gov.uk/information-consumers/energy-advice-households/average-gas-and-electricity-use-explained + AVERAGE_ELECTRICITY_CONSUMPTION = 2700 + AVERAGE_GAS_CONSUMPTION = 11500 + + # Latest price cap figures from Ofgem are for January 2024 + # https://www.ofgem.gov.uk/publications/changes-energy-price-cap-1-january-2024 + ELECTRICITY_PRICE_CAP = 0.29 + GAS_PRICE_CAP = 0.07 + + # This is a weighted mean of the price caps, using the consumption figures above as weights + PRICE_FACTOR = 0.11183098591549295 + + @classmethod + def estimate(cls, kwh: float): + """ + Estimate the annual bill savings based on the kwh savings + :param kwh: The kwh savings + :return: An estimate for annual bill savings + """ + return cls.PRICE_FACTOR * kwh diff --git a/backend/ml_models/Valuation.py b/backend/ml_models/Valuation.py new file mode 100644 index 00000000..1b2f8cf4 --- /dev/null +++ b/backend/ml_models/Valuation.py @@ -0,0 +1,43 @@ +class PropertyValuation: + """ + This is a placeholder class for the property valuation model + """ + + UPRN_VALUE_LOOKUP = { + 15038202: 202000, + 37024763: 213000, + } + + VALUE_INCREASE_MAPPING = [ + { + "starting_epc": "D", + "ending_epc": "C", + "increase_percentage": 0.057, + }, + { + "starting_epc": "D", + "ending_epc": "B", + "increase_percentage": 0.057, + }, + ] + + @classmethod + def estimate(cls, property_instance, target_epc): + current_value = cls.UPRN_VALUE_LOOKUP.get(property_instance.uprn) + + if not current_value: + raise ValueError("Have not implemented valuation for this property") + + valuation_increases = [ + v for v in cls.VALUE_INCREASE_MAPPING if + v["starting_epc"] == property_instance.epc_band and v["ending_epc"] == target_epc + ] + + if len(valuation_increases) != 1: + raise ValueError("Valuation increase mapping not found") + + new_valuation = (1 + valuation_increases[0]["increase_percentage"]) * current_value + + increase = round(new_valuation - current_value, 2) + + return increase diff --git a/backend/ml_models/api.py b/backend/ml_models/api.py index 02d6ecac..e6947906 100644 --- a/backend/ml_models/api.py +++ b/backend/ml_models/api.py @@ -77,7 +77,7 @@ class ModelApi: Returns: dict: The API response as a dictionary if the request was successful, None otherwise. """ - logger.info("Making request to sap change api") + logger.info(f"Making request to {model_prefix} change api") url = f"{self.base_url}/{self.MODEL_URLS[model_prefix]}/predict" payload = { "file_location": file_location, @@ -100,7 +100,7 @@ class ModelApi: # depending on how you want to handle errors in your application return None - def predict_all(self, df, bucket, predictions_bucket) -> dict: + def predict_all(self, df, bucket, prediction_buckets) -> dict: """ For each model prefix, this method will upload the scoring data to s3 and then make a request to the @@ -109,7 +109,7 @@ class ModelApi: a dictionary of panaas dataframes :param df: Pandas dataframe with scoring data to be uploaded to s3 :param bucket: Name of the bucket in s3 to upload to - :param predictions_bucket: Name of the bucket in s3 to store predictions + :param prediction_buckets: Dictionary containing the prediction buckets for each model prefix :return: """ @@ -117,7 +117,11 @@ class ModelApi: for model_prefix in self.MODEL_PREFIXES: logger.info(f"Scoring for model prefix: {model_prefix}") file_location = self.upload_scoring_data(df, bucket, model_prefix) - response = self.predict(file_location, model_prefix) + response = self.predict( + "s3://{DATA_BUCKET}/".format(DATA_BUCKET=bucket) + file_location, model_prefix + ) + + predictions_bucket = prediction_buckets[model_prefix] # Retrieve the predictions predictions_df = pd.DataFrame( diff --git a/recommendations/Costs.py b/recommendations/Costs.py index a96e1215..6fc62db2 100644 --- a/recommendations/Costs.py +++ b/recommendations/Costs.py @@ -58,7 +58,7 @@ class Costs: EWI_SCAFFOLDING_PRELIMINARIES = 0.15 VAT_RATE = 0.2 - PROFIT_MARGIN = 0.15 + PROFIT_MARGIN = 0.2 def __init__(self, property_instance): """ diff --git a/recommendations/Recommendations.py b/recommendations/Recommendations.py index aa66159b..17dcc5df 100644 --- a/recommendations/Recommendations.py +++ b/recommendations/Recommendations.py @@ -1,8 +1,98 @@ +from backend.Property import Property +from typing import List +from recommendations.FloorRecommendations import FloorRecommendations +from recommendations.WallRecommendations import WallRecommendations +from recommendations.RoofRecommendations import RoofRecommendations +from recommendations.VentilationRecommendations import VentilationRecommendations +from recommendations.FireplaceRecommendations import FireplaceRecommendations +from backend.ml_models.AnnualBillSavings import AnnualBillSavings + + class Recommendations: """ High level recommendations class, which sits above the measure specific recommendation classes """ + def __init__( + self, + property_instance: Property, + materials: List + ): + """ + :param property_instance: Instance of the Property class, for the home associated to property_id + :param materials: List of materials to be used in the recommendations + """ + + self.property_instance = property_instance + self.materials = materials + + self.floor_recommender = FloorRecommendations(property_instance=property_instance, materials=materials) + self.wall_recomender = WallRecommendations(property_instance=property_instance, materials=materials) + self.roof_recommender = RoofRecommendations(property_instance=property_instance, materials=materials) + self.ventilation_recomender = VentilationRecommendations( + property_instance=property_instance, + materials=[part for part in materials if part["type"] == "mechanical_ventilation"] + ) + self.fireplace_recommender = FireplaceRecommendations(property_instance=property_instance) + + def recommend(self): + + """ + This method runs the recommendations for the individual measures and then appends them to a list for output + :return: + """ + + property_recommendations = [] + + # Floor recommendations + self.floor_recommender.recommend() + if self.floor_recommender.recommendations: + property_recommendations.append(self.floor_recommender.recommendations) + + # Wall recommendations + self.wall_recomender.recommend() + if self.wall_recomender.recommendations: + property_recommendations.append(self.wall_recomender.recommendations) + + # Roof recommendations + self.roof_recommender.recommend() + if self.roof_recommender.recommendations: + property_recommendations.append(self.roof_recommender.recommendations) + + # Ventilation recommendations + self.ventilation_recomender.recommend() + if self.ventilation_recomender.recommendation: + property_recommendations.append(self.ventilation_recomender.recommendation) + + # Fireplace sealing recommendations + self.fireplace_recommender.recommend() + if self.fireplace_recommender.recommendation: + property_recommendations.append(self.fireplace_recommender.recommendation) + + # We insert temporary ids into the recommendations which is important for the optimiser later + property_recommendations = self.insert_temp_recommendation_id(property_recommendations) + + return property_recommendations + + @staticmethod + def insert_temp_recommendation_id(property_recommendations): + """ + Creates a temporary recommendation id which is needed for + filtering recommendations between default and no, after the optimiser has been + run + :param property_recommendations: nested list of recommendations, grouped by data_types + :return: Updated recommendations_to_upload, where where recommendation has a "recommendation_id" + integer inserted + """ + idx = 0 + + for recs in property_recommendations: + for rec in recs: + rec["recommendation_id"] = idx + idx += 1 + + return property_recommendations + @classmethod def calculate_recommendation_impact(cls, property_instance, all_predictions, recommendations): @@ -30,6 +120,7 @@ class Recommendations: for recommendations_by_type in property_recommendations: for rec in recommendations_by_type: + new_sap = property_sap_predictions[property_sap_predictions["recommendation_id"] == str( rec["recommendation_id"] )]["predictions"].values[0] @@ -44,10 +135,17 @@ class Recommendations: rec["sap_points"] = new_sap - float(property_instance.data["current-energy-efficiency"]) rec["co2_equivalent_savings"] = float(property_instance.data["co2-emissions-current"]) - new_carbon - rec["heat_demand"] = float(property_instance.data["co2-emissions-current"]) - new_heat_demand + + # Energy consumption current is per meter squared, so we need to multiply by the floor area to get + # an absolute figure for the home + rec["heat_demand"] = ( + (float(property_instance.data["energy-consumption-current"]) - new_heat_demand + ) * property_instance.floor_area) + + rec["energy_cost_savings"] = AnnualBillSavings.estimate(rec["heat_demand"]) if (rec["sap_points"] is None) and (rec["co2_equivalent_savings"] is None) or ( - rec["heat_demand"] is None): + rec["heat_demand"] is None) or (rec["energy_cost_savings"] is None): raise ValueError("sap points, co2 or heat demand is missing") return property_recommendations From 7ebfb3b99c5096e5b47a16c771e7bbf4cfb1cbc4 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Tue, 28 Nov 2023 12:39:11 +0000 Subject: [PATCH 007/526] Added labour days to cavity walls costs --- .../app/db/functions/portfolio_functions.py | 17 +++++++++------ .../db/functions/recommendations_functions.py | 3 ++- backend/app/db/models/portfolio.py | 1 + backend/app/db/models/recommendations.py | 1 + backend/app/plan/router.py | 21 +++++++++++++++++-- backend/ml_models/Valuation.py | 6 +++--- recommendations/Costs.py | 12 +++++++++-- recommendations/FireplaceRecommendations.py | 3 ++- recommendations/VentilationRecommendations.py | 3 ++- 9 files changed, 51 insertions(+), 16 deletions(-) diff --git a/backend/app/db/functions/portfolio_functions.py b/backend/app/db/functions/portfolio_functions.py index fc9add42..b3936eb9 100644 --- a/backend/app/db/functions/portfolio_functions.py +++ b/backend/app/db/functions/portfolio_functions.py @@ -3,15 +3,16 @@ from backend.app.db.models.recommendations import Plan, PlanRecommendations, Rec from backend.app.db.models.portfolio import Portfolio -def aggregate_portfolio_recommendations(session, portfolio_id: int): +def aggregate_portfolio_recommendations(session, portfolio_id: int, total_valuation_increase: float): # Aggregate multiple fields aggregates = ( session.query( func.sum(Recommendation.estimated_cost).label("cost"), func.sum(Recommendation.total_work_hours).label("total_work_hours"), - func.sum(Recommendation.heat_demand).label("total_heat_demand"), - func.sum(Recommendation.energy_savings).label("total_energy_savings"), - func.sum(Recommendation.energy_cost_savings).label("energy_cost_savings") + func.sum(Recommendation.heat_demand).label("energy_savings"), + func.sum(Recommendation.co2_equivalent_savings).label("co2_equivalent_savings"), + func.sum(Recommendation.energy_cost_savings).label("energy_cost_savings"), + func.sum(Recommendation.labour_days).label("labour_days"), ) .join(PlanRecommendations, PlanRecommendations.recommendation_id == Recommendation.id) .join(Plan, Plan.id == PlanRecommendations.plan_id) @@ -22,9 +23,10 @@ def aggregate_portfolio_recommendations(session, portfolio_id: int): aggregates_dict = { "cost": aggregates.cost or 0, "total_work_hours": aggregates.total_work_hours or 0, - "total_heat_demand": aggregates.total_heat_demand or 0, - "total_energy_savings": aggregates.total_energy_savings or 0, + "energy_savings": aggregates.energy_savings or 0, + "co2_equivalent_savings": aggregates.co2_equivalent_savings or 0, "energy_cost_savings": aggregates.energy_cost_savings or 0, + "labour_days": aggregates.labour_days or 0, } # Get the portfolio and update the fields @@ -33,6 +35,9 @@ def aggregate_portfolio_recommendations(session, portfolio_id: int): for key, value in aggregates_dict.items(): setattr(portfolio, key, value) + # Insert total valuation increase + portfolio.property_valuation_increase = total_valuation_increase + # Merge the updated portfolio back into the session session.merge(portfolio) session.flush() diff --git a/backend/app/db/functions/recommendations_functions.py b/backend/app/db/functions/recommendations_functions.py index 772e1184..f7fcb7a3 100644 --- a/backend/app/db/functions/recommendations_functions.py +++ b/backend/app/db/functions/recommendations_functions.py @@ -83,7 +83,8 @@ def upload_recommendations(session: Session, recommendations_to_upload, property "heat_demand": rec["heat_demand"], "co2_equivalent_savings": rec["co2_equivalent_savings"], "total_work_hours": rec["labour_hours"], - "energy_cost_savings": rec["energy_cost_savings"] + "energy_cost_savings": rec["energy_cost_savings"], + "labour_days": rec["labour_days"] } for rec in recommendations_to_upload ] diff --git a/backend/app/db/models/portfolio.py b/backend/app/db/models/portfolio.py index 8279a978..efcda359 100644 --- a/backend/app/db/models/portfolio.py +++ b/backend/app/db/models/portfolio.py @@ -42,6 +42,7 @@ class Portfolio(Base): property_valuation_increase = Column(Float) # Unit is always £ so we don't need to store the unit for the moment rental_yield_increase = Column(Float) # Unit is always £ so we don't need to store the unit for the moment total_work_hours = Column(Float) + labour_days = Column(Float) created_at = Column(DateTime, nullable=False, default=datetime.datetime.now(pytz.utc)) updated_at = Column(DateTime, nullable=False, default=datetime.datetime.now(pytz.utc)) diff --git a/backend/app/db/models/recommendations.py b/backend/app/db/models/recommendations.py index 5515b90d..ff7aa642 100644 --- a/backend/app/db/models/recommendations.py +++ b/backend/app/db/models/recommendations.py @@ -28,6 +28,7 @@ class Recommendation(Base): property_valuation_increase = Column(Float) rental_yield_increase = Column(Float) total_work_hours = Column(Float) + labour_days = Column(Float) class RecommendationMaterials(Base): diff --git a/backend/app/plan/router.py b/backend/app/plan/router.py index 408b4101..ed568bdd 100644 --- a/backend/app/plan/router.py +++ b/backend/app/plan/router.py @@ -21,7 +21,7 @@ from backend.app.db.models.portfolio import rating_lookup from backend.app.dependencies import validate_token from backend.app.plan.schemas import PlanTriggerRequest from backend.app.plan.utils import create_recommendation_scoring_data, get_cleaned -from backend.app.utils import epc_to_sap_lower_bound, read_csv_from_s3, read_parquet_from_s3 +from backend.app.utils import epc_to_sap_lower_bound, read_csv_from_s3, read_parquet_from_s3, sap_to_epc from backend.ml_models.api import ModelApi from backend.Property import Property @@ -33,6 +33,7 @@ from recommendations.optimiser.optimiser_functions import prepare_input_measures from recommendations.Recommendations import Recommendations from utils.logger import setup_logger from utils.s3 import read_dataframe_from_s3_parquet +from backend.ml_models.Valuation import PropertyValuation logger = setup_logger() @@ -250,6 +251,7 @@ async def trigger_plan(body: PlanTriggerRequest): # 3) the recommendations logger.info("Uploading recommendations to the database") + property_valuation_increases = [] session.commit() for i in range(0, len(input_properties), BATCH_SIZE): try: @@ -289,6 +291,16 @@ async def trigger_plan(body: PlanTriggerRequest): session, plan_id=new_plan_id, recommendation_ids=uploaded_recommendation_ids ) + # Get defaults + default_recommendations = [r for r in recommendations_to_upload if r["default"]] + total_sap_points = sum([r["sap_points"] for r in default_recommendations]) + new_sap_points = float(p.data["current-energy-efficiency"]) + total_sap_points + new_epc = sap_to_epc(new_sap_points) + + property_valuation_increases.append( + PropertyValuation.estimate(property_instance=p, target_epc=new_epc) + ) + # Commit the session after each batch session.commit() @@ -304,7 +316,12 @@ async def trigger_plan(body: PlanTriggerRequest): # way to do this, but it's the simplest and will be a process that we can re-use since when we change a # recommendation from being default to not default, we'll need to re-run this process to re-calculate the # the portfolion level impact - aggregate_portfolio_recommendations(session, portfolio_id=body.portfolio_id) + + total_valuation_increase = sum(property_valuation_increases) + + aggregate_portfolio_recommendations( + session, portfolio_id=body.portfolio_id, total_valuation_increase=total_valuation_increase + ) # Commit final changes session.commit() diff --git a/backend/ml_models/Valuation.py b/backend/ml_models/Valuation.py index 1b2f8cf4..92d019a4 100644 --- a/backend/ml_models/Valuation.py +++ b/backend/ml_models/Valuation.py @@ -12,12 +12,12 @@ class PropertyValuation: { "starting_epc": "D", "ending_epc": "C", - "increase_percentage": 0.057, + "increase_percentage": 0.03625, }, { "starting_epc": "D", "ending_epc": "B", - "increase_percentage": 0.057, + "increase_percentage": 0.05725, }, ] @@ -30,7 +30,7 @@ class PropertyValuation: valuation_increases = [ v for v in cls.VALUE_INCREASE_MAPPING if - v["starting_epc"] == property_instance.epc_band and v["ending_epc"] == target_epc + v["starting_epc"] == property_instance.data["current-energy-rating"] and v["ending_epc"] == target_epc ] if len(valuation_increases) != 1: diff --git a/recommendations/Costs.py b/recommendations/Costs.py index 6fc62db2..c9ead002 100644 --- a/recommendations/Costs.py +++ b/recommendations/Costs.py @@ -115,6 +115,9 @@ class Costs: labour_hours = material["labour_hours_per_unit"] * wall_area + # Assume a team of 2 + labour_days = (labour_hours / 8) / 2 + return { "total": total_cost, "subtotal": subtotal_before_vat, @@ -124,7 +127,8 @@ class Costs: "material": base_material_cost, "profit": profit_cost, "labour_hours": labour_hours, - "labour_cost": labour_cost + "labour_cost": labour_cost, + "labour_days": labour_days } def loft_insulation(self, floor_area, material): @@ -153,6 +157,9 @@ class Costs: labour_hours = material["labour_hours_per_unit"] * floor_area + # Assume a team of 1 person + labour_days = labour_hours / 8 + return { "total": total_cost, "subtotal": subtotal_before_vat, @@ -162,7 +169,8 @@ class Costs: "material": base_material_cost, "profit": profit_cost, "labour_hours": labour_hours, - "labour_cost": labour_cost + "labour_cost": labour_cost, + "labour_days": labour_days } def internal_wall_insulation(self, wall_area, material, non_insulation_materials): diff --git a/recommendations/FireplaceRecommendations.py b/recommendations/FireplaceRecommendations.py index 30ab1ad2..c193b7ce 100644 --- a/recommendations/FireplaceRecommendations.py +++ b/recommendations/FireplaceRecommendations.py @@ -45,6 +45,7 @@ class FireplaceRecommendations(Definitions): "sap_points": None, "total": estimated_cost, # Take a very basic estimate of 6 hours, multipled by the number of open fireplaces to seal - "labour_hours": 6 * number_open_fireplaces + "labour_hours": 6 * number_open_fireplaces, + "labour_days": 6 * number_open_fireplaces / 8, # Assume 8 hour day } ] diff --git a/recommendations/VentilationRecommendations.py b/recommendations/VentilationRecommendations.py index 419029a3..b42d136f 100644 --- a/recommendations/VentilationRecommendations.py +++ b/recommendations/VentilationRecommendations.py @@ -67,6 +67,7 @@ class VentilationRecommendations(Definitions): "sap_points": None, "total": estimated_cost, # We use a very simple and rough estimate of 4 hours per unit - "labour_hours": 4 * n_units + "labour_hours": 4 * n_units, + "labour_days": 4 * n_units / 8.0 # Assume 8 hour day } ] From e441e5f018f0fc73b61e2c1a31413e556bd53898 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Tue, 28 Nov 2023 15:48:26 +0000 Subject: [PATCH 008/526] Added low energy lighting to costs etl --- backend/ml_models/Valuation.py | 2 ++ etl/costs/app.py | 2 ++ recommendations/Costs.py | 18 ++++++++++++ recommendations/LightingRecommendations.py | 34 ++++++++++++++++++++++ 4 files changed, 56 insertions(+) create mode 100644 recommendations/LightingRecommendations.py diff --git a/backend/ml_models/Valuation.py b/backend/ml_models/Valuation.py index 92d019a4..4a720fc8 100644 --- a/backend/ml_models/Valuation.py +++ b/backend/ml_models/Valuation.py @@ -25,6 +25,8 @@ class PropertyValuation: def estimate(cls, property_instance, target_epc): current_value = cls.UPRN_VALUE_LOOKUP.get(property_instance.uprn) + raise ValueError("NEED TO UPDATE THIS") + if not current_value: raise ValueError("Have not implemented valuation for this property") diff --git a/etl/costs/app.py b/etl/costs/app.py index 1ecbbb5f..98a324bc 100644 --- a/etl/costs/app.py +++ b/etl/costs/app.py @@ -73,6 +73,7 @@ def app(): suspended_floor_costs = pd.read_excel(DATA_DIRECTORY, sheet_name="suspended_floor_insulation", header=0) solid_floor_costs = pd.read_excel(DATA_DIRECTORY, sheet_name="solid_floor_insulation", header=0) ewi_costs = pd.read_excel(DATA_DIRECTORY, sheet_name="external_wall_insulation", header=0) + lel_costs = pd.read_excel(DATA_DIRECTORY, sheet_name="low_energy_lighting", header=0) # Form a single table to be uploaded costs = pd.concat( @@ -83,6 +84,7 @@ def app(): suspended_floor_costs, solid_floor_costs, ewi_costs, + lel_costs ] ) diff --git a/recommendations/Costs.py b/recommendations/Costs.py index c9ead002..e9fe4495 100644 --- a/recommendations/Costs.py +++ b/recommendations/Costs.py @@ -577,3 +577,21 @@ class Costs: "labour_days": labour_days, "labour_cost": labour_costs } + + def low_energy_lighting(self, number_of_lights, number_current_lel_lights, material): + + """ + Calculates the total cost for low energy lighting based on material and labor costs, + including contingency, preliminaries, profit, and VAT. + + :param number_of_lights: Int, number of light + :param number_current_lel_lights: Int, number of low energy lights currently installed in the home + :material: Dict, material data containing costs of fittings + """ + + # If there are no lights fitted in the property, we increase the contingency in case there are potential wiring + # blockers + if number_current_lel_lights == 0: + contingency = self.HIGH_RISK_CONTINGENCY + else: + contingency = self.CONTINGENCY diff --git a/recommendations/LightingRecommendations.py b/recommendations/LightingRecommendations.py new file mode 100644 index 00000000..48bb2c0f --- /dev/null +++ b/recommendations/LightingRecommendations.py @@ -0,0 +1,34 @@ +from backend.Property import Property +from typing import List + + +class LightingRecommendations: + + def __init__(self, property_instance: Property, materials: List): + """ + :param property_instance: Instance of the Property class, for the home associated to property_id + :param materials: List of materials to be used in the recommendations + """ + + self.property = property_instance + self.materials = materials + + def recommend(self): + """ + This method will check if there are any lighting fittings that aren't low energy. + + If there are, the will recommend fitting the rest of the outlets with low energy lighting fittings + :return: + """ + + if self.property.lighting["low_energy_proportion"] == 100: + return + + number_lighting_outlets = self.property.number_lighting_outlets + + # Number non lel outlets + number_non_lel_outlets = number_lighting_outlets - ( + self.property.lighting["low_energy_proportion"] * number_lighting_outlets + ) + + number_non_lel_outlets = round(number_non_lel_outlets) From 96b49aa680100391ebdea023fb5e1b63025cb7e2 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Tue, 28 Nov 2023 16:54:14 +0000 Subject: [PATCH 009/526] working on costing for led installation --- backend/Property.py | 14 ++++++++- backend/app/db/models/materials.py | 1 + backend/app/plan/router.py | 8 +++++ recommendations/Costs.py | 30 +++++++++++++++++++ recommendations/LightingRecommendations.py | 34 +++++++++++++++++++++- recommendations/Recommendations.py | 7 +++++ 6 files changed, 92 insertions(+), 2 deletions(-) diff --git a/backend/Property.py b/backend/Property.py index a3328156..0d7553a5 100644 --- a/backend/Property.py +++ b/backend/Property.py @@ -83,6 +83,7 @@ class Property(Definitions): self.floor_area = None self.pitched_roof_area = None self.insulation_floor_area = None + self.number_lighting_outlets = None if epc_client: self.epc_client = epc_client @@ -703,7 +704,6 @@ class Property(Definitions): 'PROPERTY_TYPE', 'UPRN', 'NUMBER_OPEN_FIREPLACES', - 'FIXED_LIGHTING_OUTLETS_COUNT', 'MULTI_GLAZE_PROPORTION', 'MECHANICAL_VENTILATION', 'PHOTO_SUPPLY', @@ -752,9 +752,21 @@ class Property(Definitions): "FLOOR_HEIGHT": self.floor_height, "NUMBER_HABITABLE_ROOMS": self.number_of_rooms, "TOTAL_FLOOR_AREA": self.floor_area, + "FIXED_LIGHTING_OUTLETS_COUNT": self.number_lighting_outlets, **epc_raw_data, "BUILT_FORM": built_form, "POSTCODE": self.data["postcode"], } return property_data + + def set_number_lighting_outlets(self, cleaned_property_data): + """ + Extracts and cleans the estimated number of lighting outlets + :return: + """ + + if self.data["fixed-lighting-outlets-count"] == "": + self.number_lighting_outlets = round(cleaned_property_data["FIXED_LIGHTING_OUTLETS_COUNT"].values[0]) + else: + self.number_lighting_outlets = float(self.data["fixed-lighting-outlets-count"]) diff --git a/backend/app/db/models/materials.py b/backend/app/db/models/materials.py index e191c5ee..64c5e166 100644 --- a/backend/app/db/models/materials.py +++ b/backend/app/db/models/materials.py @@ -32,6 +32,7 @@ class MaterialType(enum.Enum): ewi_wall_demolition = "ewi_wall_demolition" ewi_wall_preparation = "ewi_wall_preparation" ewi_wall_redecoration = "ewi_wall_redecoration" + low_energy_lighting_installation = "low_energy_lighting_installation" class DepthUnit(enum.Enum): diff --git a/backend/app/plan/router.py b/backend/app/plan/router.py index ed568bdd..c2f1de4c 100644 --- a/backend/app/plan/router.py +++ b/backend/app/plan/router.py @@ -124,6 +124,14 @@ async def trigger_plan(body: PlanTriggerRequest): # Property recommendations p.get_components(cleaned) + # This is temp - this should happen after scoring + cleaned_property_data = DataProcessor.apply_averages_cleaning( + data_to_clean=pd.DataFrame([dict(**p.get_model_data(), LOCAL_AUTHORITY=p.data["local-authority"])]), + cleaning_data=cleaning_data, + cols_to_merge_on=['PROPERTY_TYPE', 'BUILT_FORM', 'CONSTRUCTION_AGE_BAND', 'LOCAL_AUTHORITY'], + ) + p.set_number_lighting_outlets(cleaned_property_data) + recommender = Recommendations(property_instance=p, materials=materials) property_recommendations = recommender.recommend() diff --git a/recommendations/Costs.py b/recommendations/Costs.py index e9fe4495..32ab32aa 100644 --- a/recommendations/Costs.py +++ b/recommendations/Costs.py @@ -595,3 +595,33 @@ class Costs: contingency = self.HIGH_RISK_CONTINGENCY else: contingency = self.CONTINGENCY + + material_cost = material["material_cost"] * number_of_lights + labour_cost = material["labour_cost"] * number_of_lights * self.labour_adjustment_factor + + subtotal_before_profit = material_cost + labour_cost + + contingency_cost = subtotal_before_profit * contingency + preliminaries_cost = subtotal_before_profit * self.PRELIMINARIES + profit_cost = subtotal_before_profit * self.PROFIT_MARGIN + + subtotal_before_vat = subtotal_before_profit + contingency_cost + preliminaries_cost + profit_cost + vat_cost = subtotal_before_vat * self.VAT_RATE + total_cost = subtotal_before_vat + vat_cost + + labour_hours = material["labour_hours_per_unit"] * number_of_lights + # Assume a single electrician installing + labour_days = (labour_hours / 8) + + return { + "total": total_cost, + "subtotal": subtotal_before_vat, + "vat": vat_cost, + "contingency": contingency_cost, + "preliminaries": preliminaries_cost, + "material": material_cost, + "profit": profit_cost, + "labour_hours": labour_hours, + "labour_days": labour_days, + "labour_cost": labour_cost + } diff --git a/recommendations/LightingRecommendations.py b/recommendations/LightingRecommendations.py index 48bb2c0f..85b440b5 100644 --- a/recommendations/LightingRecommendations.py +++ b/recommendations/LightingRecommendations.py @@ -1,5 +1,6 @@ from backend.Property import Property from typing import List +from recommendations.Costs import Costs class LightingRecommendations: @@ -11,7 +12,16 @@ class LightingRecommendations: """ self.property = property_instance - self.materials = materials + self.costs = Costs(self.property) + + material = [ + material for material in materials if material["type"] == "low_energy_lighting_installation" + ] + if len(material) != 1: + raise ValueError("Incorrect number of low energy lighting materials specified") + + self.material = material[0] + self.recommendation = [] def recommend(self): """ @@ -32,3 +42,25 @@ class LightingRecommendations: ) number_non_lel_outlets = round(number_non_lel_outlets) + + if number_non_lel_outlets == 0: + return + + # Get the cost of the fittings + cost_result = self.costs.low_energy_lighting( + number_of_lights=number_non_lel_outlets, + number_current_lel_lights=number_lighting_outlets - number_non_lel_outlets, + material=self.material + ) + + self.recommendation = [ + { + "parts": [], + "type": "sealing_open_fireplace", + "description": "Install low energy lighting in %s outlets" % str(number_non_lel_outlets), + "starting_u_value": None, + "new_u_value": None, + "sap_points": None, + **cost_result + } + ] diff --git a/recommendations/Recommendations.py b/recommendations/Recommendations.py index 17dcc5df..0d39c9cf 100644 --- a/recommendations/Recommendations.py +++ b/recommendations/Recommendations.py @@ -5,6 +5,7 @@ from recommendations.WallRecommendations import WallRecommendations from recommendations.RoofRecommendations import RoofRecommendations from recommendations.VentilationRecommendations import VentilationRecommendations from recommendations.FireplaceRecommendations import FireplaceRecommendations +from recommendations.LightingRecommendations import LightingRecommendations from backend.ml_models.AnnualBillSavings import AnnualBillSavings @@ -34,6 +35,7 @@ class Recommendations: materials=[part for part in materials if part["type"] == "mechanical_ventilation"] ) self.fireplace_recommender = FireplaceRecommendations(property_instance=property_instance) + self.lighting_recommender = LightingRecommendations(property_instance=property_instance, materials=materials) def recommend(self): @@ -69,6 +71,11 @@ class Recommendations: if self.fireplace_recommender.recommendation: property_recommendations.append(self.fireplace_recommender.recommendation) + # Lighting recommendations + self.lighting_recommender.recommend() + if self.lighting_recommender.recommendation: + property_recommendations.append(self.lighting_recommender.recommendation) + # We insert temporary ids into the recommendations which is important for the optimiser later property_recommendations = self.insert_temp_recommendation_id(property_recommendations) From 1a5f7c9a6a0a82c7afc28a60ac0008b80ae5b6dc Mon Sep 17 00:00:00 2001 From: Michael Duong Date: Tue, 28 Nov 2023 19:12:18 +0000 Subject: [PATCH 010/526] small changes --- etl/epc/DataProcessor.py | 9 ++++++--- etl/epc/property_change_app.py | 4 ++-- etl/epc/requirements.txt | 4 ++++ etl/epc/settings.py | 4 ++++ 4 files changed, 16 insertions(+), 5 deletions(-) diff --git a/etl/epc/DataProcessor.py b/etl/epc/DataProcessor.py index 0587fdbe..8adac8df 100644 --- a/etl/epc/DataProcessor.py +++ b/etl/epc/DataProcessor.py @@ -5,6 +5,9 @@ from BaseUtility import Definitions from etl.epc.settings import ( DATA_PROCESSOR_SETTINGS, EARLIEST_EPC_DATE, + IGNORED_TRANSACTION_TYPES, + IGNORED_FLOOR_LEVELS, + IGNORED_PROPERTY_TYPES, FULLY_GLAZED_DESCRIPTIONS, AVERAGE_FIXED_FEATURES, BUILT_FORM_REMAP, @@ -416,9 +419,9 @@ class DataProcessor: self.data = self.data[~pd.isnull(self.data["UPRN"])] self.data = self.data[self.data["LODGEMENT_DATE"] >= EARLIEST_EPC_DATE] - self.data = self.data[self.data["TRANSACTION_TYPE"] != "new dwelling"] + self.data = self.data[self.data["TRANSACTION_TYPE"] != IGNORED_TRANSACTION_TYPES] self.data = self.data[ - ~self.data["FLOOR_LEVEL"].isin(["top floor", "mid floor"]) + ~self.data["FLOOR_LEVEL"].isin(IGNORED_FLOOR_LEVELS) ] self.data = self.data[self.data[RDSAP_RESPONSE] <= MAX_SAP_SCORE] @@ -430,7 +433,7 @@ class DataProcessor: # Because park homes are surveyed unusually (for example, we don't have u-values to # look up for their different components, they need to be collected in survey and aren't reflected in # EPCs) we'll ignore them from the model - self.data = self.data[self.data["PROPERTY_TYPE"] != "Park home"] + self.data = self.data[self.data["PROPERTY_TYPE"] != IGNORED_PROPERTY_TYPES] def clean_multi_glaze_proportion(self) -> None: """ diff --git a/etl/epc/property_change_app.py b/etl/epc/property_change_app.py index 4f49f6da..18228cb2 100644 --- a/etl/epc/property_change_app.py +++ b/etl/epc/property_change_app.py @@ -28,7 +28,7 @@ from recommendations.recommendation_utils import ( DATA_DIRECTORY = Path(__file__).parent / "local_data" / "all-domestic-certificates" -def get_cleaned(): +def get_cleaned_description_mapping(): """ This function will retrieve the cleaned dataset from s3 which has the cleaned descriptions for the epc dataset @@ -404,7 +404,7 @@ def app(): # Data glossary: # https://epc.opendatacommunities.org/docs/guidance#glossary - cleaned_lookup = get_cleaned() + cleaned_lookup = get_cleaned_description_mapping() # List all subdirectories directories = [entry for entry in DATA_DIRECTORY.iterdir() if entry.is_dir()] diff --git a/etl/epc/requirements.txt b/etl/epc/requirements.txt index e69de29b..9f972bde 100644 --- a/etl/epc/requirements.txt +++ b/etl/epc/requirements.txt @@ -0,0 +1,4 @@ +pandas==2.1.3 +tqdm==4.66.1 +msgpack==1.0.7 +boto3==1.29.6 \ No newline at end of file diff --git a/etl/epc/settings.py b/etl/epc/settings.py index 60c079a5..eb8eb641 100644 --- a/etl/epc/settings.py +++ b/etl/epc/settings.py @@ -155,6 +155,10 @@ MANDATORY_FIXED_FEATURES = ["PROPERTY_TYPE", "BUILT_FORM", "CONSTITUENCY"] # and Wales from 31 July 2014 EARLIEST_EPC_DATE = "2014-08-01" +IGNORED_TRANSACTION_TYPES = "new dwelling" +IGNORED_FLOOR_LEVELS = ["top floor", "mid floor"] +IGNORED_PROPERTY_TYPES = "Park home" + RDSAP_RESPONSE = "CURRENT_ENERGY_EFFICIENCY" HEAT_DEMAND_RESPONSE = "ENERGY_CONSUMPTION_CURRENT" CARBON_RESPONSE = "CO2_EMISSIONS_CURRENT" From 7ad88efbd49ac34609f3ca67b4c3ae6f52bc7b0b Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Tue, 28 Nov 2023 19:40:50 +0000 Subject: [PATCH 011/526] Working through new costs --- backend/app/plan/router.py | 16 ++++++++++++++++ backend/app/plan/utils.py | 5 +++++ recommendations/Costs.py | 6 +++--- recommendations/LightingRecommendations.py | 9 +++++++-- recommendations/WallRecommendations.py | 7 +++++-- 5 files changed, 36 insertions(+), 7 deletions(-) diff --git a/backend/app/plan/router.py b/backend/app/plan/router.py index c2f1de4c..7a50ac98 100644 --- a/backend/app/plan/router.py +++ b/backend/app/plan/router.py @@ -219,6 +219,22 @@ async def trigger_plan(body: PlanTriggerRequest): recommendations=recommendations ) + print("GET RID OF ME!") + rec_df = [] + for rec_group in recommendations_with_impact: + for rec in rec_group: + rec_df.append( + { + "type": rec["type"], + "description": rec["description"], + "sap": rec["sap_points"], + "total": rec["total"], + "co2_equivalent_savings": rec["co2_equivalent_savings"], + "heat_demand": rec["heat_demand"] + } + ) + rec_df = pd.DataFrame(rec_df) + input_measures = prepare_input_measures(recommendations_with_impact, body.goal) if body.budget: diff --git a/backend/app/plan/utils.py b/backend/app/plan/utils.py index 5bb8e42a..b60bc20f 100644 --- a/backend/app/plan/utils.py +++ b/backend/app/plan/utils.py @@ -171,8 +171,13 @@ def create_recommendation_scoring_data( if recommendation["type"] == "sealing_open_fireplace": scoring_dict["NUMBER_OPEN_FIREPLACES_ENDING"] = 0 + if recommendation["type"] == "low_energy_lighting": + scoring_dict["LOW_ENERGY_LIGHTING_ENDING"] = 100 + scoring_dict["LIGHTING_ENERGY_EFF_STARTING"] = "Very Good" + if recommendation["type"] not in [ "wall_insulation", "floor_insulation", "roof_insulation", "mechanical_ventilation", "sealing_open_fireplace", + "low_energy_lighting" ]: raise NotImplementedError("Implement me") diff --git a/recommendations/Costs.py b/recommendations/Costs.py index 32ab32aa..5c2b28f2 100644 --- a/recommendations/Costs.py +++ b/recommendations/Costs.py @@ -41,7 +41,7 @@ class Costs: CONTINGENCY = 0.1 # Where there is more uncertainty, a higher contingency rate is used - HIGH_RISK_CONTINGENCY = 0.15 + HIGH_RISK_CONTINGENCY = 0.2 # When there is less uncertainty, a lower contingency rate is used LOW_RISK_CONTINGENCY = 0.05 @@ -54,8 +54,8 @@ class Costs: # have a preliminaries of 12-14% so we use 12% as the median for the preliminaries rate. # For External wall insulation (EWI), we use 15% as the preliminaries rate if we think the property might # need scaffolding, otherwise we use 12%. This is to account for any site preparation that might be required - EWI_NO_SCAFFOLDING_PRELIMINARIES = 0.12 - EWI_SCAFFOLDING_PRELIMINARIES = 0.15 + EWI_NO_SCAFFOLDING_PRELIMINARIES = 0.15 + EWI_SCAFFOLDING_PRELIMINARIES = 0.20 VAT_RATE = 0.2 PROFIT_MARGIN = 0.2 diff --git a/recommendations/LightingRecommendations.py b/recommendations/LightingRecommendations.py index 85b440b5..f898eaf5 100644 --- a/recommendations/LightingRecommendations.py +++ b/recommendations/LightingRecommendations.py @@ -53,11 +53,16 @@ class LightingRecommendations: material=self.material ) + if number_non_lel_outlets == 1: + description = "Install low energy lighting in %s 1 remaining outlet" + else: + description = "Install low energy lighting in %s outlets" % str(number_non_lel_outlets) + self.recommendation = [ { "parts": [], - "type": "sealing_open_fireplace", - "description": "Install low energy lighting in %s outlets" % str(number_non_lel_outlets), + "type": "low_energy_lighting", + "description": description, "starting_u_value": None, "new_u_value": None, "sap_points": None, diff --git a/recommendations/WallRecommendations.py b/recommendations/WallRecommendations.py index acc74ead..17fa4ad4 100644 --- a/recommendations/WallRecommendations.py +++ b/recommendations/WallRecommendations.py @@ -263,12 +263,14 @@ class WallRecommendations(Definitions): material=material.to_dict(), non_insulation_materials=non_insulation_materials ) + description = "Install " + self._make_description(material) + " on internal walls" elif material["type"] == "external_wall_insulation": cost_result = self.costs.external_wall_insulation( wall_area=self.property.insulation_wall_area, material=material.to_dict(), non_insulation_materials=non_insulation_materials ) + description = "Install " + self._make_description(material) + " on external walls" else: raise ValueError("Invalid material type") @@ -283,7 +285,7 @@ class WallRecommendations(Definitions): ) ], "type": "wall_insulation", - "description": "Install " + self._make_description(material), + "description": description, "starting_u_value": u_value, "new_u_value": new_u_value, "sap_points": None, @@ -321,7 +323,8 @@ class WallRecommendations(Definitions): self.recommendations += ewi_recommendations + iwi_recommendations - self.prune_diminishing_recommendations() + # We remove this temporarily + # self.prune_diminishing_recommendations() @staticmethod def _make_description(material): From d97a91eec7feb60d38c65f93c0a7fb4eb0cd0d25 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Tue, 28 Nov 2023 22:32:12 +0000 Subject: [PATCH 012/526] Put in placeholder method to break down carbon and energy savings --- .../app/db/functions/portfolio_functions.py | 9 +- backend/app/plan/router.py | 175 ++++++++++++++++-- backend/ml_models/Valuation.py | 35 +--- recommendations/LightingRecommendations.py | 2 +- 4 files changed, 170 insertions(+), 51 deletions(-) diff --git a/backend/app/db/functions/portfolio_functions.py b/backend/app/db/functions/portfolio_functions.py index b3936eb9..a8a882bd 100644 --- a/backend/app/db/functions/portfolio_functions.py +++ b/backend/app/db/functions/portfolio_functions.py @@ -3,7 +3,9 @@ from backend.app.db.models.recommendations import Plan, PlanRecommendations, Rec from backend.app.db.models.portfolio import Portfolio -def aggregate_portfolio_recommendations(session, portfolio_id: int, total_valuation_increase: float): +def aggregate_portfolio_recommendations( + session, portfolio_id: int, total_valuation_increase: float, labour_days: float +): # Aggregate multiple fields aggregates = ( session.query( @@ -12,7 +14,6 @@ def aggregate_portfolio_recommendations(session, portfolio_id: int, total_valuat func.sum(Recommendation.heat_demand).label("energy_savings"), func.sum(Recommendation.co2_equivalent_savings).label("co2_equivalent_savings"), func.sum(Recommendation.energy_cost_savings).label("energy_cost_savings"), - func.sum(Recommendation.labour_days).label("labour_days"), ) .join(PlanRecommendations, PlanRecommendations.recommendation_id == Recommendation.id) .join(Plan, Plan.id == PlanRecommendations.plan_id) @@ -26,7 +27,6 @@ def aggregate_portfolio_recommendations(session, portfolio_id: int, total_valuat "energy_savings": aggregates.energy_savings or 0, "co2_equivalent_savings": aggregates.co2_equivalent_savings or 0, "energy_cost_savings": aggregates.energy_cost_savings or 0, - "labour_days": aggregates.labour_days or 0, } # Get the portfolio and update the fields @@ -35,8 +35,9 @@ def aggregate_portfolio_recommendations(session, portfolio_id: int, total_valuat for key, value in aggregates_dict.items(): setattr(portfolio, key, value) - # Insert total valuation increase + # Insert total valuation increase and labour days portfolio.property_valuation_increase = total_valuation_increase + portfolio.labour_days = labour_days # Merge the updated portfolio back into the session session.merge(portfolio) diff --git a/backend/app/plan/router.py b/backend/app/plan/router.py index 7a50ac98..0c086a87 100644 --- a/backend/app/plan/router.py +++ b/backend/app/plan/router.py @@ -1,5 +1,6 @@ from datetime import datetime +import numpy as np import pandas as pd from epc_api.client import EpcClient from fastapi import APIRouter, Depends @@ -34,6 +35,7 @@ from recommendations.Recommendations import Recommendations from utils.logger import setup_logger from utils.s3 import read_dataframe_from_s3_parquet from backend.ml_models.Valuation import PropertyValuation +from backend.ml_models.AnnualBillSavings import AnnualBillSavings logger = setup_logger() @@ -118,6 +120,7 @@ async def trigger_plan(body: PlanTriggerRequest): recommendations = {} recommendations_scoring_data = [] + property_scoring_data = {} for p in input_properties: @@ -156,6 +159,12 @@ async def trigger_plan(body: PlanTriggerRequest): # We update the ending record with the recommended updates and we set lodgement date to today ending_epc_data["DAYS_TO_ENDING"] = data_processor.calculate_days_to(created_at) + property_scoring_data[p.id] = { + "starting_epc_data": starting_epc_data, + "ending_epc_data": ending_epc_data, + "fixed_data": fixed_data + } + for recommendations_by_type in property_recommendations: for i, rec in enumerate(recommendations_by_type): scoring_dict = create_recommendation_scoring_data( @@ -219,22 +228,6 @@ async def trigger_plan(body: PlanTriggerRequest): recommendations=recommendations ) - print("GET RID OF ME!") - rec_df = [] - for rec_group in recommendations_with_impact: - for rec in rec_group: - rec_df.append( - { - "type": rec["type"], - "description": rec["description"], - "sap": rec["sap_points"], - "total": rec["total"], - "co2_equivalent_savings": rec["co2_equivalent_savings"], - "heat_demand": rec["heat_demand"] - } - ) - rec_df = pd.DataFrame(rec_df) - input_measures = prepare_input_measures(recommendations_with_impact, body.goal) if body.budget: @@ -270,6 +263,148 @@ async def trigger_plan(body: PlanTriggerRequest): ] recommendations[property_id] = final_recommendations + # This is a temporary step, to estimate the impact of the measured on heat demand and carbon + combined_recommendations_scoring_data = [] + representative_recs = {} + for property_id, property_recommendations in recommendations.items(): + default_recommendations = [r for r in property_recommendations if r["default"]] + default_types = {x["type"] for x in default_recommendations} + + # Missing types + missing_types = list(set([r["type"] for r in property_recommendations if r["type"] not in default_types])) + if missing_types: + for missed_type in missing_types: + missed = [r for r in property_recommendations if r["type"] == missed_type] + median_cost = np.median([r["total"] for r in missed]) + # Grab a representative, based on median cost + representative_rec = [r for r in property_recommendations if r["total"] == median_cost] + default_recommendations.append(representative_rec[0]) + + representative_recs[property_id] = default_recommendations + + property_instance = [p for p in input_properties if p.id == property_id][0] + + property_scoring_datasets = property_scoring_data[property_id] + starting_epc_data = property_scoring_datasets["starting_epc_data"].copy() + ending_epc_data = property_scoring_datasets["ending_epc_data"].copy() + fixed_data = property_scoring_datasets["fixed_data"].copy() + + scoring_dict = {} + for rec in default_recommendations: + scoring_dict = create_recommendation_scoring_data( + property=property_instance, + recommendation=rec, + starting_epc_data=starting_epc_data, + ending_epc_data=ending_epc_data, + fixed_data=fixed_data, + ) + # At each iteration, we want to update the ending_epc_data, so in the end, ending_epc_data contains + # all of the updates + for k in scoring_dict.keys(): + if k in ending_epc_data.columns: + ending_epc_data[k] = scoring_dict[k] + + combined_recommendations_scoring_data.append(scoring_dict) + + # PERFORM SAME STEPS AGAIN - TODO: TO BE REMOVED + combined_recommendations_scoring_data = pd.DataFrame(combined_recommendations_scoring_data) + + # Perform the same cleaning as in the model - first clean number of room variables though + combined_recommendations_scoring_data = DataProcessor.apply_averages_cleaning( + data_to_clean=combined_recommendations_scoring_data, + cleaning_data=cleaning_data, + cols_to_merge_on=['PROPERTY_TYPE', 'BUILT_FORM', 'CONSTRUCTION_AGE_BAND', 'LOCAL_AUTHORITY'], + colnames=["NUMBER_HABITABLE_ROOMS", "NUMBER_HEATED_ROOMS"], + ) + + combined_recommendations_scoring_data = DataProcessor.apply_averages_cleaning( + data_to_clean=combined_recommendations_scoring_data, + cleaning_data=cleaning_data, + cols_to_merge_on=COLUMNS_TO_MERGE_ON + ["LOCAL_AUTHORITY"], + ).drop(columns=["LOCAL_AUTHORITY"]) + + combined_recommendations_scoring_data = DataProcessor.clean_missings_after_description_process( + combined_recommendations_scoring_data, + ignore_cols=[c for c in combined_recommendations_scoring_data.columns if ("thermal_transmittance" in c) or ( + "insulation_thickness" in c) or ("ENERGY_EFF" in c)] + ) + + combined_recommendations_scoring_data = DataProcessor.clean_efficiency_variables( + combined_recommendations_scoring_data + ) + + model_api = ModelApi(portfolio_id=body.portfolio_id, timestamp=created_at) + all_combined_predictions = model_api.predict_all( + df=combined_recommendations_scoring_data, + bucket=get_settings().DATA_BUCKET, + prediction_buckets={ + "sap_change_predictions": get_settings().SAP_PREDICTIONS_BUCKET, + "heat_demand_predictions": get_settings().HEAT_PREDICTIONS_BUCKET, + "carbon_change_predictions": get_settings().CARBON_PREDICTIONS_BUCKET + } + ) + + # We update the carbon and heat demand predictions + for property_id, property_recommendations in recommendations.items(): + combined_heat_demand = all_combined_predictions["heat_demand_predictions"] + combined_heat_demand = combined_heat_demand[combined_heat_demand["property_id"] == str(property_id)] + + combined_carbon = all_combined_predictions["carbon_change_predictions"] + combined_carbon = combined_carbon[combined_carbon["property_id"] == str(property_id)] + + property_instance = [p for p in input_properties if p.id == property_id][0] + + carbon_change = float( + property_instance.data["co2-emissions-current"] + ) - combined_carbon["predictions"].values[0] + + heat_demand_change = ( + (float(property_instance.data["energy-consumption-current"]) - + combined_heat_demand["predictions"].values[0]) + * property_instance.floor_area + ) + + # update the recommendations + # We need to totals for the representative recommendations + representative_rec_data = [ + { + "recommendation_id": r["recommendation_id"], + "co2_equivalent_savings": r["co2_equivalent_savings"], + "heat_demand": r["heat_demand"], + "type": r["type"] + } for r + in representative_recs[property_id] + ] + representative_rec_data = pd.DataFrame(representative_rec_data) + # Convert co2 and heat demand to proportions of their column sums + representative_rec_data["co2_equivalent_savings_percent"] = ( + representative_rec_data["co2_equivalent_savings"] / + representative_rec_data["co2_equivalent_savings"].sum() + ) + + representative_rec_data["heat_demand_percent"] = ( + representative_rec_data["heat_demand"] / representative_rec_data["heat_demand"].sum() + ) + + # We'll use the proportions to update the carbon and heat demand + representative_rec_data["co2_equivalent_savings"] = ( + carbon_change * representative_rec_data["co2_equivalent_savings_percent"] + ) + + representative_rec_data["heat_demand"] = ( + heat_demand_change * representative_rec_data["heat_demand_percent"] + ) + + # Finally, insert these values into the final recommendations + for rec in property_recommendations: + change_data = representative_rec_data[representative_rec_data["type"] == rec["type"]] + rec["co2_equivalent_savings"] = change_data["co2_equivalent_savings"].values[0] + rec["heat_demand"] = change_data["heat_demand"].values[0] + rec["energy_cost_savings"] = AnnualBillSavings.estimate(rec["heat_demand"]) + + # Update recommendations + recommendations[property_id] = property_recommendations + # 1) the property data # 2) the property details (epc) # 3) the recommendations @@ -342,9 +477,15 @@ async def trigger_plan(body: PlanTriggerRequest): # the portfolion level impact total_valuation_increase = sum(property_valuation_increases) + labour_days = max( + [sum(r["labour_days"] for r in rec_group if r["default"]) for p_id, rec_group in recommendations.items()] + ) aggregate_portfolio_recommendations( - session, portfolio_id=body.portfolio_id, total_valuation_increase=total_valuation_increase + session, + portfolio_id=body.portfolio_id, + total_valuation_increase=total_valuation_increase, + labour_days=labour_days ) # Commit final changes diff --git a/backend/ml_models/Valuation.py b/backend/ml_models/Valuation.py index 4a720fc8..0db2a082 100644 --- a/backend/ml_models/Valuation.py +++ b/backend/ml_models/Valuation.py @@ -4,42 +4,19 @@ class PropertyValuation: """ UPRN_VALUE_LOOKUP = { - 15038202: 202000, - 37024763: 213000, + 15038202: {"current_value": 202000, "increase_percentage": 0.05725}, + 37024763: {"current_value": 213000, "increase_percentage": 0.03625}, } - VALUE_INCREASE_MAPPING = [ - { - "starting_epc": "D", - "ending_epc": "C", - "increase_percentage": 0.03625, - }, - { - "starting_epc": "D", - "ending_epc": "B", - "increase_percentage": 0.05725, - }, - ] - @classmethod def estimate(cls, property_instance, target_epc): - current_value = cls.UPRN_VALUE_LOOKUP.get(property_instance.uprn) + data = cls.UPRN_VALUE_LOOKUP.get(property_instance.uprn) - raise ValueError("NEED TO UPDATE THIS") - - if not current_value: + if not data: raise ValueError("Have not implemented valuation for this property") - valuation_increases = [ - v for v in cls.VALUE_INCREASE_MAPPING if - v["starting_epc"] == property_instance.data["current-energy-rating"] and v["ending_epc"] == target_epc - ] + new_valuation = (1 + data["increase_percentage"]) * data["current_value"] - if len(valuation_increases) != 1: - raise ValueError("Valuation increase mapping not found") - - new_valuation = (1 + valuation_increases[0]["increase_percentage"]) * current_value - - increase = round(new_valuation - current_value, 2) + increase = round(new_valuation - data["current_value"], 2) return increase diff --git a/recommendations/LightingRecommendations.py b/recommendations/LightingRecommendations.py index f898eaf5..82baf5d6 100644 --- a/recommendations/LightingRecommendations.py +++ b/recommendations/LightingRecommendations.py @@ -54,7 +54,7 @@ class LightingRecommendations: ) if number_non_lel_outlets == 1: - description = "Install low energy lighting in %s 1 remaining outlet" + description = "Install low energy lighting in 1 remaining outlet" else: description = "Install low energy lighting in %s outlets" % str(number_non_lel_outlets) From 4aea5f600260d3930aca7c702182085f9bb2579a Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Thu, 30 Nov 2023 12:08:24 +0000 Subject: [PATCH 013/526] Tidying up new descriptions and updating recommendation types --- backend/Property.py | 13 ++- backend/app/db/models/portfolio.py | 1 + backend/app/plan/router.py | 94 +++++++++++++++---- backend/ml_models/AnnualBillSavings.py | 44 +++++++++ backend/ml_models/Valuation.py | 2 +- recommendations/Costs.py | 3 +- recommendations/FloorRecommendations.py | 20 +++- recommendations/LightingRecommendations.py | 4 +- recommendations/Recommendations.py | 16 +++- recommendations/RoofRecommendations.py | 29 +++--- recommendations/VentilationRecommendations.py | 3 + recommendations/WallRecommendations.py | 37 +++----- recommendations/optimiser/CostOptimiser.py | 12 +++ .../optimiser/optimiser_functions.py | 48 +++++++--- 14 files changed, 248 insertions(+), 78 deletions(-) diff --git a/backend/Property.py b/backend/Property.py index 0d7553a5..ddfb9445 100644 --- a/backend/Property.py +++ b/backend/Property.py @@ -85,6 +85,9 @@ class Property(Definitions): self.insulation_floor_area = None self.number_lighting_outlets = None + self.current_adjusted_energy = None + self.expected_adjusted_energy = None + if epc_client: self.epc_client = epc_client else: @@ -462,7 +465,7 @@ class Property(Definitions): "year_built": self.year_built, "tenure": self.data["tenure"], "current_epc_rating": self.data["current-energy-rating"], - "current_sap_points": self.data["current-energy-efficiency"] + "current_sap_points": self.data["current-energy-efficiency"], } property_data = self._clean_upload_data(property_data) @@ -514,6 +517,7 @@ class Property(Definitions): "energy_tariff": self.data["energy-tariff"], "primary_energy_consumption": self.energy["primary_energy_consumption"], "co2_emissions": self.energy["co2_emissions"], + "adjusted_energy_consumption": self.current_adjusted_energy, } return property_details_epc @@ -770,3 +774,10 @@ class Property(Definitions): self.number_lighting_outlets = round(cleaned_property_data["FIXED_LIGHTING_OUTLETS_COUNT"].values[0]) else: self.number_lighting_outlets = float(self.data["fixed-lighting-outlets-count"]) + + def set_adjusted_energy(self, current_adjusted_energy, expected_adjusted_energy): + """ + Stores these values for usage later + """ + self.current_adjusted_energy = current_adjusted_energy + self.expected_adjusted_energy = expected_adjusted_energy diff --git a/backend/app/db/models/portfolio.py b/backend/app/db/models/portfolio.py index efcda359..ab047477 100644 --- a/backend/app/db/models/portfolio.py +++ b/backend/app/db/models/portfolio.py @@ -152,6 +152,7 @@ class PropertyDetailsEpcModel(Base): energy_tariff = Column(Text) primary_energy_consumption = Column(Float) co2_emissions = Column(Float) + adjusted_energy_consumption = Column(Float) class PropertyDetailsMeter(Base): diff --git a/backend/app/plan/router.py b/backend/app/plan/router.py index 0c086a87..841415b7 100644 --- a/backend/app/plan/router.py +++ b/backend/app/plan/router.py @@ -80,11 +80,17 @@ async def trigger_plan(body: PlanTriggerRequest): if not is_new: continue # TODO: Need to add heat demand target + # TODO: Temp for Keyzy + if config['address'] == "25 Albert Street": + epc_target = "C" + else: + epc_target = body.goal_value + create_property_targets( session, property_id=property_id, portfolio_id=body.portfolio_id, - epc_target=body.goal_value, + epc_target=epc_target, heat_demand_target=None ) @@ -235,11 +241,19 @@ async def trigger_plan(body: PlanTriggerRequest): else: # The minimum gain is the minimum number of SAP points required to get to the target SAP band current_sap_points = int(property_instance.data["current-energy-efficiency"]) - target_sap_points = epc_to_sap_lower_bound(body.goal_value) + + # TODO: TEMP + if property_instance.address1 == "25 Albert Street": + opt_epc_target = "C" + else: + opt_epc_target = body.goal_value + + target_sap_points = epc_to_sap_lower_bound(opt_epc_target) # If the gain is negative, the optimiser will return an empty solution optimiser = CostOptimiser( - input_measures, min_gain=target_sap_points - current_sap_points + input_measures, + min_gain=CostOptimiser.calculate_sap_gain_with_slack(target_sap_points - current_sap_points) ) optimiser.setup() @@ -247,6 +261,17 @@ async def trigger_plan(body: PlanTriggerRequest): solution = optimiser.solution selected_recommendations = {r["id"] for r in solution} + if "wall_insulation" in [r["type"] for r in solution]: + ventilation_rec = [ + r for r in recommendations_with_impact if r[0]["type"] == "mechanical_ventilation" + ][0] + + selected_recommendations = set( + list(selected_recommendations) + [ventilation_rec[0]["recommendation_id"]] + ) + + # We check if the selected recommendation is wall ventilation and if so, we make sure + # mechanical ventilation is selected # We'll use the set of selected recommendations to filter the recommendations to upload final_recommendations = [ @@ -275,9 +300,10 @@ async def trigger_plan(body: PlanTriggerRequest): if missing_types: for missed_type in missing_types: missed = [r for r in property_recommendations if r["type"] == missed_type] - median_cost = np.median([r["total"] for r in missed]) - # Grab a representative, based on median cost - representative_rec = [r for r in property_recommendations if r["total"] == median_cost] + min_cost = min([r["total"] for r in missed]) + # Grab a representative, based on cheapest cost + + representative_rec = [r for r in property_recommendations if np.isclose(r["total"], min_cost)] default_recommendations.append(representative_rec[0]) representative_recs[property_id] = default_recommendations @@ -325,8 +351,10 @@ async def trigger_plan(body: PlanTriggerRequest): combined_recommendations_scoring_data = DataProcessor.clean_missings_after_description_process( combined_recommendations_scoring_data, - ignore_cols=[c for c in combined_recommendations_scoring_data.columns if ("thermal_transmittance" in c) or ( - "insulation_thickness" in c) or ("ENERGY_EFF" in c)] + ignore_cols=[ + c for c in combined_recommendations_scoring_data.columns if ("thermal_transmittance" in c) or ( + "insulation_thickness" in c) or ("ENERGY_EFF" in c) + ] ) combined_recommendations_scoring_data = DataProcessor.clean_efficiency_variables( @@ -358,10 +386,35 @@ async def trigger_plan(body: PlanTriggerRequest): property_instance.data["co2-emissions-current"] ) - combined_carbon["predictions"].values[0] + starting_heat_demand = ( + float(property_instance.data["energy-consumption-current"]) * property_instance.floor_area + ) + expected_heat_demand = starting_heat_demand - ( + combined_heat_demand["predictions"].values[0] * property_instance.floor_area + ) + + # We adjust the heat demand figures to align to the UCL paper + current_adjusted_energy = AnnualBillSavings.adjust_energy_to_metered( + epc_energy_consumption=starting_heat_demand, + current_epc_rating=property_instance.data["current-energy-rating"], + ) + + print("Hardcoded B - fix me") + if property_instance.address1 == "25 Albert Street": + hardcoded_expected_epc = "C" + else: + hardcoded_expected_epc = "B" + expected_adjusted_energy = AnnualBillSavings.adjust_energy_to_metered( + epc_energy_consumption=expected_heat_demand, + current_epc_rating=hardcoded_expected_epc, + ) + heat_demand_change = ( - (float(property_instance.data["energy-consumption-current"]) - - combined_heat_demand["predictions"].values[0]) - * property_instance.floor_area + current_adjusted_energy - expected_adjusted_energy + ) + property_instance.set_adjusted_energy( + current_adjusted_energy=current_adjusted_energy, + expected_adjusted_energy=expected_adjusted_energy ) # update the recommendations @@ -369,8 +422,8 @@ async def trigger_plan(body: PlanTriggerRequest): representative_rec_data = [ { "recommendation_id": r["recommendation_id"], - "co2_equivalent_savings": r["co2_equivalent_savings"], - "heat_demand": r["heat_demand"], + "co2_equivalent_savings": r.get("co2_equivalent_savings"), + "heat_demand": r.get("heat_demand"), "type": r["type"] } for r in representative_recs[property_id] @@ -398,9 +451,14 @@ async def trigger_plan(body: PlanTriggerRequest): # Finally, insert these values into the final recommendations for rec in property_recommendations: change_data = representative_rec_data[representative_rec_data["type"] == rec["type"]] - rec["co2_equivalent_savings"] = change_data["co2_equivalent_savings"].values[0] - rec["heat_demand"] = change_data["heat_demand"].values[0] - rec["energy_cost_savings"] = AnnualBillSavings.estimate(rec["heat_demand"]) + if rec["type"] == "mechanical_ventilation": + rec["co2_equivalent_savings"] = 0 + rec["heat_demand"] = 0 + rec["energy_cost_savings"] = 0 + else: + rec["co2_equivalent_savings"] = change_data["co2_equivalent_savings"].values[0] + rec["heat_demand"] = change_data["heat_demand"].values[0] + rec["energy_cost_savings"] = AnnualBillSavings.estimate(rec["heat_demand"]) # Update recommendations recommendations[property_id] = property_recommendations @@ -477,9 +535,9 @@ async def trigger_plan(body: PlanTriggerRequest): # the portfolion level impact total_valuation_increase = sum(property_valuation_increases) - labour_days = max( + labour_days = round(max( [sum(r["labour_days"] for r in rec_group if r["default"]) for p_id, rec_group in recommendations.items()] - ) + )) aggregate_portfolio_recommendations( session, diff --git a/backend/ml_models/AnnualBillSavings.py b/backend/ml_models/AnnualBillSavings.py index c057f4aa..1519a866 100644 --- a/backend/ml_models/AnnualBillSavings.py +++ b/backend/ml_models/AnnualBillSavings.py @@ -26,3 +26,47 @@ class AnnualBillSavings: :return: An estimate for annual bill savings """ return cls.PRICE_FACTOR * kwh + + @classmethod + def adjust_energy_to_metered(cls, epc_energy_consumption, current_epc_rating): + """ + The over-prediction of energy use by EPCs in Great Britain: A comparison + of EPC-modelled and metered primary energy use intensity + + Which can be found here: https://www.sciencedirect.com/science/article/pii/S0378778823002542 + We implement the results on page 10 + + :return: + """ + + gradients = { + "A": -0.1, + "B": -0.1, + "C": -0.43, + "D": -0.52, + "E": -0.7, + "F": -0.76, + "G": -0.76 + } + + intercepts = { + "A": 28, + "B": 28, + "C": 97, + "D": 119, + "E": 160, + "F": 157, + "G": 157 + } + + gradient = gradients[current_epc_rating] + intercept = intercepts[current_epc_rating] + + # This should be negative + consumption_difference = gradient * epc_energy_consumption + intercept + if consumption_difference > 0: + raise ValueError("consumption_difference should be negative") + + adjusted_consumption = (epc_energy_consumption + consumption_difference) + + return adjusted_consumption diff --git a/backend/ml_models/Valuation.py b/backend/ml_models/Valuation.py index 0db2a082..ad296409 100644 --- a/backend/ml_models/Valuation.py +++ b/backend/ml_models/Valuation.py @@ -5,7 +5,7 @@ class PropertyValuation: UPRN_VALUE_LOOKUP = { 15038202: {"current_value": 202000, "increase_percentage": 0.05725}, - 37024763: {"current_value": 213000, "increase_percentage": 0.03625}, + 37024763: {"current_value": 213000, "increase_percentage": 0.025}, } @classmethod diff --git a/recommendations/Costs.py b/recommendations/Costs.py index 5c2b28f2..23edd287 100644 --- a/recommendations/Costs.py +++ b/recommendations/Costs.py @@ -232,8 +232,7 @@ class Costs: subtotal_before_profit = labour_costs + materials_costs + demolition_plant_costs - # We use high risk contingency for iwi - contingency_cost = subtotal_before_profit * self.HIGH_RISK_CONTINGENCY + contingency_cost = subtotal_before_profit * self.CONTINGENCY preliminaries_cost = subtotal_before_profit * self.PRELIMINARIES profit_cost = subtotal_before_profit * self.PROFIT_MARGIN diff --git a/recommendations/FloorRecommendations.py b/recommendations/FloorRecommendations.py index 96b1356c..48245554 100644 --- a/recommendations/FloorRecommendations.py +++ b/recommendations/FloorRecommendations.py @@ -51,8 +51,9 @@ class FloorRecommendations(Definitions): ] ] + # For solid floor, we don't use materials that are too thick self.solid_floor_insulation_materials = [ - part for part in materials if part["type"] == "solid_floor_insulation" + part for part in materials if part["type"] == "solid_floor_insulation" if float(part["depth"]) <= 75 ] self.solid_floor_non_insulation_materials = [ @@ -142,7 +143,20 @@ class FloorRecommendations(Definitions): @staticmethod def _make_floor_description(material): - return f"Install {int(material['depth'])}{material['depth_unit']} {material['description']} insulation" + + if material["type"] == "suspended_floor_insulation": + return (f"Install {int(material['depth'])}{material['depth_unit']} {material['description']} insulation in " + f"suspended floor") + + if material["type"] == "solid_floor_insulation": + return (f"Install {int(material['depth'])}{material['depth_unit']} {material['description']} insulation on " + f"solid floor") + + if material["type"] == "exposed_floor_insulation": + return (f"Install {int(material['depth'])}{material['depth_unit']} {material['description']} insulation in " + f"exposed floor") + + raise ValueError("Invalid material type - implement me!") def recommend_floor_insulation(self, u_value, insulation_materials, non_insulation_materials): """ @@ -194,7 +208,7 @@ class FloorRecommendations(Definitions): cost_result=cost_result ), ], - "type": "floor_insulation", + "type": material["type"], "description": self._make_floor_description(material), "starting_u_value": u_value, "new_u_value": new_u_value, diff --git a/recommendations/LightingRecommendations.py b/recommendations/LightingRecommendations.py index 82baf5d6..cd52bea9 100644 --- a/recommendations/LightingRecommendations.py +++ b/recommendations/LightingRecommendations.py @@ -65,7 +65,9 @@ class LightingRecommendations: "description": description, "starting_u_value": None, "new_u_value": None, - "sap_points": None, + # For SAP points, we use the fact that lighting is usually worth 2 points and we scale this to + # the proportion of lights that will be set to low energy + "sap_points": round(2 * (number_non_lel_outlets / number_lighting_outlets), 2), **cost_result } ] diff --git a/recommendations/Recommendations.py b/recommendations/Recommendations.py index 0d39c9cf..cdefb6ed 100644 --- a/recommendations/Recommendations.py +++ b/recommendations/Recommendations.py @@ -128,10 +128,6 @@ class Recommendations: for recommendations_by_type in property_recommendations: for rec in recommendations_by_type: - new_sap = property_sap_predictions[property_sap_predictions["recommendation_id"] == str( - rec["recommendation_id"] - )]["predictions"].values[0] - new_heat_demand = property_heat_predictions[property_heat_predictions["recommendation_id"] == str( rec["recommendation_id"] )]["predictions"].values[0] @@ -140,7 +136,17 @@ class Recommendations: rec["recommendation_id"] )]["predictions"].values[0] - rec["sap_points"] = new_sap - float(property_instance.data["current-energy-efficiency"]) + # We don't use the model for low energy lighting at the moment + if rec["type"] != "low_energy_lighting": + new_sap = property_sap_predictions[property_sap_predictions["recommendation_id"] == str( + rec["recommendation_id"] + )]["predictions"].values[0] + rec["sap_points"] = new_sap - float(property_instance.data["current-energy-efficiency"]) + + if rec["type"] == "mechanical_ventilation": + # For the moment, we cap the number of SAP points that can be achieved by ventilation at 2 + rec["sap_points"] = min(rec["sap_points"], VentilationRecommendations.SAP_LIMIT) + rec["co2_equivalent_savings"] = float(property_instance.data["co2-emissions-current"]) - new_carbon # Energy consumption current is per meter squared, so we need to multiply by the floor area to get diff --git a/recommendations/RoofRecommendations.py b/recommendations/RoofRecommendations.py index 1bee1e8e..07eeb1e5 100644 --- a/recommendations/RoofRecommendations.py +++ b/recommendations/RoofRecommendations.py @@ -88,17 +88,20 @@ class RoofRecommendations: raise NotImplementedError("Implement me") @staticmethod - def make_loft_insulation_description(material): - return f"Install {int(material['depth'])}{material['depth_unit']} of {material['description']} in your loft" + def make_roof_insulation_description(material): + if material["type"] == "loft_insulation": + return f"Install {int(material['depth'])}{material['depth_unit']} of {material['description']} in your loft" - @staticmethod - def make_room_roof_insulation_description(material, depth): - return f"Insulate your room roof with {depth}{material['depth_unit']} of {material['description']}" + if material["type"] == "flat_roof_insulation": + return ( + f"Insulate the home's flat roof with {int(material['depth'])}{material['depth_unit']} of " + f"{material['description']}" + ) + if material["type"] == "room_roof_insulation": + return (f"Insulate your room roof with {int(material['depth'])}{material['depth_unit']} of " + f"{material['description']}") - @staticmethod - def make_flat_roof_insulation_description(material): - return (f"Insulate the home's flat roof " - f"with {int(material['depth'])}{material['depth_unit']} of {material['description']}") + raise ValueError("Invalid material type") def recommend_roof_insulation( self, u_value, insulation_thickness, roof @@ -182,9 +185,7 @@ class RoofRecommendations: floor_area=self.property.insulation_floor_area, material=material ) - description = self.make_loft_insulation_description(material) elif material["type"] == "flat_roof_insulation": - description = self.make_flat_roof_insulation_description(material) raise ValueError("COMPLETE ME") else: raise ValueError("Invalid material type") @@ -199,8 +200,8 @@ class RoofRecommendations: cost_result=cost_result ) ], - "type": "roof_insulation", - "description": description, + "type": material["type"], + "description": self.make_roof_insulation_description(material), "starting_u_value": u_value, "new_u_value": new_u_value, "sap_points": None, @@ -297,7 +298,7 @@ class RoofRecommendations: selected_total_cost=estimated_cost ) ], - "type": "roof_insulation", + "type": "room_roof_insulation", "description": self.make_room_roof_insulation_description(material, depth), "starting_u_value": u_value, "new_u_value": new_u_value, diff --git a/recommendations/VentilationRecommendations.py b/recommendations/VentilationRecommendations.py index b42d136f..ef24084f 100644 --- a/recommendations/VentilationRecommendations.py +++ b/recommendations/VentilationRecommendations.py @@ -15,6 +15,9 @@ class VentilationRecommendations(Definitions): 'mechanical, supply and extract' ] + # We introduce a SAP limit, to prevent over-predicting the SAP impact of mechanical ventilation + SAP_LIMIT = 2 + def __init__( self, property_instance: Property, diff --git a/recommendations/WallRecommendations.py b/recommendations/WallRecommendations.py index 17fa4ad4..6e2d64ec 100644 --- a/recommendations/WallRecommendations.py +++ b/recommendations/WallRecommendations.py @@ -218,8 +218,8 @@ class WallRecommendations(Definitions): cost_result=cost_result ) ], - "type": "wall_insulation", - "description": f"Fill cavity with {material['description']}", + "type": "cavity_wall_insulation", + "description": self._make_description(material), "starting_u_value": u_value, "new_u_value": new_u_value, "sap_points": None, @@ -263,14 +263,12 @@ class WallRecommendations(Definitions): material=material.to_dict(), non_insulation_materials=non_insulation_materials ) - description = "Install " + self._make_description(material) + " on internal walls" elif material["type"] == "external_wall_insulation": cost_result = self.costs.external_wall_insulation( wall_area=self.property.insulation_wall_area, material=material.to_dict(), non_insulation_materials=non_insulation_materials ) - description = "Install " + self._make_description(material) + " on external walls" else: raise ValueError("Invalid material type") @@ -284,8 +282,8 @@ class WallRecommendations(Definitions): cost_result=cost_result ) ], - "type": "wall_insulation", - "description": description, + "type": material["type"], + "description": self._make_description(material), "starting_u_value": u_value, "new_u_value": new_u_value, "sap_points": None, @@ -305,7 +303,7 @@ class WallRecommendations(Definitions): # Recommend external and internal wall insulation separately # Since external and internal wall insulation are sufficiently different, # we separate the logic for for recommending them, therefore we don't - # consider diminishing returns between the two + # consider diminishing returns between the two as they are considered to be separate measures ewi_recommendations = [] if self.ewi_valid: @@ -323,25 +321,20 @@ class WallRecommendations(Definitions): self.recommendations += ewi_recommendations + iwi_recommendations - # We remove this temporarily - # self.prune_diminishing_recommendations() - @staticmethod def _make_description(material): - return f"{int(material['depth'])}{material['depth_unit']} {material['description']}" + if material["type"] == "internal_wall_insulation": + return (f"Install {int(material['depth'])}{material['depth_unit']} {material['description']} on internal " + f"walls") - def prune_diminishing_recommendations(self): - # For any recommendations, if we have at least 1 reommendation that does not exhibit diminishing returns - # we trim all others that are beyond the diminishing returns threshold + if material["type"] == "external_wall_insulation": + return (f"Install {int(material['depth'])}{material['depth_unit']} {material['description']} on external " + f"walls") - # We first check if we have any recommendations that are not diminishing returns - not_diminishing_return = [ - rec for rec in self.recommendations if rec["new_u_value"] >= self.DIMINISHING_RETURNS_U_VALUE - ] - if not_diminishing_return: - self.recommendations = [ - rec for rec in self.recommendations if rec["new_u_value"] >= self.DIMINISHING_RETURNS_U_VALUE - ] + if material["type"] == "cavity_wall_insulation": + return f"Fill cavity with {material['description']}" + + raise ValueError("Invalid material type") @staticmethod def rvalue_per_mm(total_r_value: float, thickness_mm: float) -> float: diff --git a/recommendations/optimiser/CostOptimiser.py b/recommendations/optimiser/CostOptimiser.py index de5a9e11..80924fd1 100644 --- a/recommendations/optimiser/CostOptimiser.py +++ b/recommendations/optimiser/CostOptimiser.py @@ -9,6 +9,9 @@ class CostOptimiser: This class is used to minimise cost, given a constrained minimum gain """ + # We add an optional buffer to the minimum gain to allow for slack in the optimisation + BUFFER = 0.2 + def __init__(self, components, min_gain): self.components = components self.min_gain = min_gain @@ -20,6 +23,15 @@ class CostOptimiser: self.solution_cost = None self.solution_gain = None + @classmethod + def calculate_sap_gain_with_slack(cls, min_gain): + if min_gain <= 10: + return min_gain + 2 + elif min_gain <= 20: + return min_gain + 3 + else: + return min_gain + 4 + def setup(self): # Initialize Model self.m = Model("knapsack") diff --git a/recommendations/optimiser/optimiser_functions.py b/recommendations/optimiser/optimiser_functions.py index 03aa38bd..27267186 100644 --- a/recommendations/optimiser/optimiser_functions.py +++ b/recommendations/optimiser/optimiser_functions.py @@ -16,18 +16,44 @@ def prepare_input_measures(property_recommendations, goal): if not goal_key: raise NotImplementedError("Not implemented this gain type - investigate me") + ventilation_rec = [rec for rec in property_recommendations if rec[0]["type"] == "mechanical_ventilation"][0] + input_measures = [] for recs in property_recommendations: - input_measures.append( - [ - { - "id": rec["recommendation_id"], - "cost": rec["total"], - "gain": rec[goal_key], - "type": rec["type"] - } - for rec in recs - ] - ) + + # We don't actually optimise ventilation + if recs[0]["type"] == "mechanical_ventilation": + continue + + if recs[0]["type"] == "wall_insulation": + # Wall insulation and mechanical ventilation are paired. You can't have wall insulation without mechanical + # ventilation + + ventilation_cost = ventilation_rec[0]["total"] if ventilation_rec else 0 + ventilation_gain = ventilation_rec[0][goal_key] if ventilation_rec else 0 + + input_measures.append( + [ + { + "id": rec["recommendation_id"], + "cost": rec["total"] + ventilation_cost, + "gain": rec[goal_key] + ventilation_gain, + "type": rec["type"] + } + for rec in recs + ] + ) + else: + input_measures.append( + [ + { + "id": rec["recommendation_id"], + "cost": rec["total"], + "gain": rec[goal_key], + "type": rec["type"] + } + for rec in recs + ] + ) return input_measures From 1f53cb3d44aa812836ddc4568d85a337ddf0ea2d Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Thu, 30 Nov 2023 16:54:42 +0000 Subject: [PATCH 014/526] debugging after changing recommendation types to more details versions --- backend/app/plan/router.py | 37 ++++++++++++++++--- backend/app/plan/utils.py | 12 +++--- .../optimiser/optimiser_functions.py | 4 +- 3 files changed, 40 insertions(+), 13 deletions(-) diff --git a/backend/app/plan/router.py b/backend/app/plan/router.py index 841415b7..1b84ed72 100644 --- a/backend/app/plan/router.py +++ b/backend/app/plan/router.py @@ -261,7 +261,10 @@ async def trigger_plan(body: PlanTriggerRequest): solution = optimiser.solution selected_recommendations = {r["id"] for r in solution} - if "wall_insulation" in [r["type"] for r in solution]: + + if any(x in [r["type"] for r in solution] for x in [ + "internal_wall_insulation", "external_wall_insulation", "cavity_wall_insulation" + ]): ventilation_rec = [ r for r in recommendations_with_impact if r[0]["type"] == "mechanical_ventilation" ][0] @@ -289,6 +292,7 @@ async def trigger_plan(body: PlanTriggerRequest): recommendations[property_id] = final_recommendations # This is a temporary step, to estimate the impact of the measured on heat demand and carbon + # TODO: This needs to be cleaned up, if it happens to be kept combined_recommendations_scoring_data = [] representative_recs = {} for property_id, property_recommendations in recommendations.items(): @@ -297,6 +301,13 @@ async def trigger_plan(body: PlanTriggerRequest): # Missing types missing_types = list(set([r["type"] for r in property_recommendations if r["type"] not in default_types])) + # We might have a missing type as one of the solid wall options because for a solid wall, you might + # have ewi or iwi but only one of them will be a default + if ("internal_wall_insulation" in default_types) or ("external_wall_insaultion" in default_types): + missing_types = [ + t for t in missing_types if t not in ["internal_wall_insulation", "external_wall_insulation"] + ] + if missing_types: for missed_type in missing_types: missed = [r for r in property_recommendations if r["type"] == missed_type] @@ -393,6 +404,8 @@ async def trigger_plan(body: PlanTriggerRequest): combined_heat_demand["predictions"].values[0] * property_instance.floor_area ) + # We don't want to adjust the heat demand for mechanical ventilation so we add it back on + # We adjust the heat demand figures to align to the UCL paper current_adjusted_energy = AnnualBillSavings.adjust_energy_to_metered( epc_energy_consumption=starting_heat_demand, @@ -412,10 +425,6 @@ async def trigger_plan(body: PlanTriggerRequest): heat_demand_change = ( current_adjusted_energy - expected_adjusted_energy ) - property_instance.set_adjusted_energy( - current_adjusted_energy=current_adjusted_energy, - expected_adjusted_energy=expected_adjusted_energy - ) # update the recommendations # We need to totals for the representative recommendations @@ -450,7 +459,13 @@ async def trigger_plan(body: PlanTriggerRequest): # Finally, insert these values into the final recommendations for rec in property_recommendations: - change_data = representative_rec_data[representative_rec_data["type"] == rec["type"]] + if rec["type"] in ["external_wall_insulation", "internal_wall_insulation"]: + change_data = representative_rec_data[ + representative_rec_data["type"].isin(["external_wall_insulation", "internal_wall_insulation"]) + ] + else: + change_data = representative_rec_data[representative_rec_data["type"] == rec["type"]] + if rec["type"] == "mechanical_ventilation": rec["co2_equivalent_savings"] = 0 rec["heat_demand"] = 0 @@ -463,6 +478,16 @@ async def trigger_plan(body: PlanTriggerRequest): # Update recommendations recommendations[property_id] = property_recommendations + # For expected adjust energy, we don't include mechanical ventilation so we'll add it back on + expected_adjusted_energy = expected_adjusted_energy + representative_rec_data[ + representative_rec_data["type"] == "mechanical_ventilation" + ]["heat_demand"].values[0] + + property_instance.set_adjusted_energy( + current_adjusted_energy=current_adjusted_energy, + expected_adjusted_energy=expected_adjusted_energy + ) + # 1) the property data # 2) the property details (epc) # 3) the recommendations diff --git a/backend/app/plan/utils.py b/backend/app/plan/utils.py index b60bc20f..7aba99c9 100644 --- a/backend/app/plan/utils.py +++ b/backend/app/plan/utils.py @@ -87,7 +87,7 @@ def create_recommendation_scoring_data( scoring_dict[col] = "none" # We update the description to indicate it's insulated - if recommendation["type"] == "wall_insulation": + if recommendation["type"] in ["internal_wall_insulation", "external_wall_insulation", "cavity_wall_insulation"]: # The upgrade made here is to the u-value of the walls and the description of the # insulation thickness scoring_dict["walls_thermal_transmittance_ENDING"] = recommendation["new_u_value"] @@ -106,7 +106,7 @@ def create_recommendation_scoring_data( scoring_dict["walls_insulation_thickness_ENDING"] = "none" # Update description to indicate it's insulate - if recommendation["type"] == "floor_insulation": + if recommendation["type"] in ["solid_floor_insulation", "suspended_floor_insulation", "exposed_floor_insulation"]: if len(recommendation["parts"]) > 1: raise NotImplementedError("Have more than 1 floor insulation part - handle this case") @@ -128,7 +128,7 @@ def create_recommendation_scoring_data( if scoring_dict["floor_insulation_thickness_ENDING"] is None: scoring_dict["floor_insulation_thickness_ENDING"] = "none" - if recommendation["type"] == "roof_insulation": + if recommendation["type"] in ["loft_insulation", "room_roof_insulation", "flat_roof_insulation"]: scoring_dict["roof_thermal_transmittance_ENDING"] = recommendation["new_u_value"] parts = recommendation["parts"] @@ -176,8 +176,10 @@ def create_recommendation_scoring_data( scoring_dict["LIGHTING_ENERGY_EFF_STARTING"] = "Very Good" if recommendation["type"] not in [ - "wall_insulation", "floor_insulation", "roof_insulation", "mechanical_ventilation", "sealing_open_fireplace", - "low_energy_lighting" + "mechanical_ventilation", "sealing_open_fireplace", "low_energy_lighting", + "internal_wall_insulation", "external_wall_insulation", "cavity_wall_insulation", + "loft_insulation", "room_roof_insulation", "flat_roof_insulation", + "solid_floor_insulation", "suspended_floor_insulation", "exposed_floor_insulation" ]: raise NotImplementedError("Implement me") diff --git a/recommendations/optimiser/optimiser_functions.py b/recommendations/optimiser/optimiser_functions.py index 27267186..9b16c6b5 100644 --- a/recommendations/optimiser/optimiser_functions.py +++ b/recommendations/optimiser/optimiser_functions.py @@ -25,10 +25,10 @@ def prepare_input_measures(property_recommendations, goal): if recs[0]["type"] == "mechanical_ventilation": continue - if recs[0]["type"] == "wall_insulation": + if recs[0]["type"] in ["internal_wall_insulation", "external_wall_insulation", "cavity_wall_insulation"]: # Wall insulation and mechanical ventilation are paired. You can't have wall insulation without mechanical # ventilation - + ventilation_cost = ventilation_rec[0]["total"] if ventilation_rec else 0 ventilation_gain = ventilation_rec[0][goal_key] if ventilation_rec else 0 From 24e22fa56a176b3d324db0445c19c3b1232b201a Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Fri, 1 Dec 2023 14:50:46 +0000 Subject: [PATCH 015/526] Added pushing of spatial data to backend --- backend/Property.py | 23 ++++++--- .../app/db/functions/property_functions.py | 51 +++++++++++++++++-- backend/app/db/models/portfolio.py | 13 +++++ backend/app/plan/router.py | 5 +- 4 files changed, 78 insertions(+), 14 deletions(-) diff --git a/backend/Property.py b/backend/Property.py index ddfb9445..a9d7645d 100644 --- a/backend/Property.py +++ b/backend/Property.py @@ -45,7 +45,7 @@ class Property(Definitions): windows = None lighting = None - coordinates = None + spatial = None def __init__(self, id, postcode, address1, epc_client=None, data=None): self.id = id @@ -129,13 +129,6 @@ class Property(Definitions): else: self.uprn = int(self.data["uprn"]) - def set_coordinates(self, coordinates): - """ - This method sets the coordinates of the property, given the open uprn data - :param coordinates: dictionary - """ - self.coordinates = {key.lower(): value for key, value in coordinates.items()} - def set_energy(self): """ Extracts and formats data about the home's energy and co2 consumption @@ -364,6 +357,9 @@ class Property(Definitions): def set_spatial(self, spatial: pd.DataFrame): """ Sets whether the property is in a conservation area given the output of the ConservationAreaClient + + Will store a dictionary, spatial, which is used to populate the property spatial table in the database + :param spatial: Dataframe, containing the spatial data for the property """ self.in_conservation_area = spatial["conservation_status"].values[0] @@ -373,6 +369,17 @@ class Property(Definitions): if self.in_conservation_area is True | self.is_listed is True | self.is_heritage is True: self.restricted_measures = True + spatial_dict = spatial.to_dict("records")[0] + self.spatial = { + "x_coordinate": spatial_dict["X_COORDINATE"], + "y_coordinate": spatial_dict["Y_COORDINATE"], + "latitude": spatial_dict["LATITUDE"], + "longitude": spatial_dict["LONGITUDE"], + "conservation_status": spatial_dict["conservation_status"], + "is_listed_building": spatial_dict["is_listed_building"], + "is_heritage_building": spatial_dict["is_heritage_building"], + } + def set_year_built(self): """ Estimates when the property was built based on as much available data as possible. diff --git a/backend/app/db/functions/property_functions.py b/backend/app/db/functions/property_functions.py index ecad3ab7..93dc0c49 100644 --- a/backend/app/db/functions/property_functions.py +++ b/backend/app/db/functions/property_functions.py @@ -3,13 +3,15 @@ ### import datetime import pytz +from sqlalchemy.orm import Session from backend.app.db.models.portfolio import ( - PropertyModel, PropertyCreationStatus, PortfolioStatus, PropertyTargetsModel, PropertyDetailsEpcModel + PropertyModel, PropertyCreationStatus, PortfolioStatus, PropertyTargetsModel, PropertyDetailsEpcModel, + PropertyDetailsSpatial ) from sqlalchemy.orm.exc import NoResultFound -def create_property(session, portfolio_id: int, address: str, postcode: str) -> (int, bool): +def create_property(session: Session, portfolio_id: int, address: str, postcode: str) -> (int, bool): """ This function will create a record for the property in the database if it does not exist. If it does exist, it will just update the updated_at field. @@ -55,7 +57,9 @@ def create_property(session, portfolio_id: int, address: str, postcode: str) -> return new_property.id, True -def create_property_targets(session, property_id: int, portfolio_id: int, epc_target=None, heat_demand_target=None): +def create_property_targets( + session: Session, property_id: int, portfolio_id: int, epc_target=None, heat_demand_target=None +): """ This function will create a record for the property targets in the database if it does not exist. :param session: The database session @@ -78,7 +82,9 @@ def create_property_targets(session, property_id: int, portfolio_id: int, epc_ta return True -def update_property_data(session, property_id: int, portfolio_id: int, property_data: dict): +def update_property_data( + session: Session, property_id: int, portfolio_id: int, property_data: dict +): now = datetime.datetime.now(pytz.utc) try: @@ -103,7 +109,9 @@ def update_property_data(session, property_id: int, portfolio_id: int, property_ return True -def create_property_details_epc(session, property_details_epc: dict): +def create_property_details_epc( + session: Session, property_details_epc: dict +): """ This function will create or update a record for the property details EPC in the database. :param session: The database session @@ -128,3 +136,36 @@ def create_property_details_epc(session, property_details_epc: dict): session.flush() return True + + +def update_or_create_property_spatial_details(session: Session, uprn: int, property_details_spatial: dict): + """ + Update an existing property details record or create a new one based on the UPRN. + + :param session: The SQLAlchemy session for database interaction. + :param uprn: The unique property reference number (UPRN) of the property. + :param property_details_spatial: A dictionary containing the spatial property details to store or update. + :return: True if the operation is successful, otherwise raises an exception. + """ + + try: + # Attempt to fetch the existing property details + existing_property_details = session.query(PropertyDetailsSpatial).filter_by( + uprn=uprn + ).one() + + # Update the fields with the data in property_details + for key, value in property_details_spatial.items(): + setattr(existing_property_details, key, value) + + # Merge the updated property details back into the session and flush + session.merge(existing_property_details) + session.flush() + + except NoResultFound: + # Create a new record if not found + new_property_details = PropertyDetailsSpatial(uprn=uprn, **property_details_spatial) + session.add(new_property_details) + session.flush() + + return True diff --git a/backend/app/db/models/portfolio.py b/backend/app/db/models/portfolio.py index ab047477..6f865381 100644 --- a/backend/app/db/models/portfolio.py +++ b/backend/app/db/models/portfolio.py @@ -155,6 +155,19 @@ class PropertyDetailsEpcModel(Base): adjusted_energy_consumption = Column(Float) +class PropertyDetailsSpatial(Base): + __tablename__ = "property_details_spatial" + id = Column(Integer, primary_key=True, autoincrement=True) + uprn = Column(Integer, nullable=False) + x_coordinate = Column(Float) + y_coordinate = Column(Float) + latitude = Column(Float) + longitude = Column(Float) + conservation_status = Column(Boolean) + is_listed_building = Column(Boolean) + is_heritage_building = Column(Boolean) + + class PropertyDetailsMeter(Base): __tablename__ = 'property_details_meter' id = Column(Integer, primary_key=True, autoincrement=True) diff --git a/backend/app/plan/router.py b/backend/app/plan/router.py index 1b84ed72..2277a6b4 100644 --- a/backend/app/plan/router.py +++ b/backend/app/plan/router.py @@ -13,7 +13,8 @@ from backend.app.db.connection import db_engine from backend.app.db.functions.materials_functions import get_materials from backend.app.db.functions.portfolio_functions import aggregate_portfolio_recommendations from backend.app.db.functions.property_functions import ( - create_property, create_property_details_epc, create_property_targets, update_property_data + create_property, create_property_details_epc, create_property_targets, update_property_data, + update_or_create_property_spatial_details ) from backend.app.db.functions.recommendations_functions import ( create_plan, create_plan_recommendations, upload_recommendations @@ -507,6 +508,8 @@ async def trigger_plan(body: PlanTriggerRequest): ) create_property_details_epc(session, property_details_epc) + update_or_create_property_spatial_details(session, p.uprn, p.spatial) + # TODO: TEMP if p.data["uprn"] == "": print("Get rid of me!") From 036f3c562e7bd2a99cf6a167a79a3be7e2459011 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Sat, 2 Dec 2023 11:05:09 +0000 Subject: [PATCH 016/526] targeting optimiser movement requirements --- backend/app/plan/router.py | 29 ++++------- backend/app/utils.py | 4 +- recommendations/optimiser/CostOptimiser.py | 15 ++++-- .../optimiser/optimiser_functions.py | 48 +++++-------------- 4 files changed, 32 insertions(+), 64 deletions(-) diff --git a/backend/app/plan/router.py b/backend/app/plan/router.py index 2277a6b4..42014bb3 100644 --- a/backend/app/plan/router.py +++ b/backend/app/plan/router.py @@ -81,17 +81,12 @@ async def trigger_plan(body: PlanTriggerRequest): if not is_new: continue # TODO: Need to add heat demand target - # TODO: Temp for Keyzy - if config['address'] == "25 Albert Street": - epc_target = "C" - else: - epc_target = body.goal_value create_property_targets( session, property_id=property_id, portfolio_id=body.portfolio_id, - epc_target=epc_target, + epc_target=body.goal_value, heat_demand_target=None ) @@ -242,14 +237,7 @@ async def trigger_plan(body: PlanTriggerRequest): else: # The minimum gain is the minimum number of SAP points required to get to the target SAP band current_sap_points = int(property_instance.data["current-energy-efficiency"]) - - # TODO: TEMP - if property_instance.address1 == "25 Albert Street": - opt_epc_target = "C" - else: - opt_epc_target = body.goal_value - - target_sap_points = epc_to_sap_lower_bound(opt_epc_target) + target_sap_points = epc_to_sap_lower_bound(body.goal_value) # If the gain is negative, the optimiser will return an empty solution optimiser = CostOptimiser( @@ -263,6 +251,7 @@ async def trigger_plan(body: PlanTriggerRequest): selected_recommendations = {r["id"] for r in solution} + # If wall ventilation is selected, we also include mechanical ventilation as a best practice measure if any(x in [r["type"] for r in solution] for x in [ "internal_wall_insulation", "external_wall_insulation", "cavity_wall_insulation" ]): @@ -413,14 +402,14 @@ async def trigger_plan(body: PlanTriggerRequest): current_epc_rating=property_instance.data["current-energy-rating"], ) - print("Hardcoded B - fix me") - if property_instance.address1 == "25 Albert Street": - hardcoded_expected_epc = "C" - else: - hardcoded_expected_epc = "B" + # We sum up the SAP points of the default recommendations and calculate a new EPC category. This + # category is then used to produce adjusted energy figures + total_sap_points = sum([x["sap_points"] for x in representative_recs[property_id]]) + expected_epc = sap_to_epc(float(property_instance.data["current-energy-efficiency"]) + total_sap_points) + expected_adjusted_energy = AnnualBillSavings.adjust_energy_to_metered( epc_energy_consumption=expected_heat_demand, - current_epc_rating=hardcoded_expected_epc, + current_epc_rating=expected_epc, ) heat_demand_change = ( diff --git a/backend/app/utils.py b/backend/app/utils.py index b4ba1bb9..d912a94a 100644 --- a/backend/app/utils.py +++ b/backend/app/utils.py @@ -69,10 +69,10 @@ def generate_api_key(): return api_key -def sap_to_epc(sap_points: int): +def sap_to_epc(sap_points: int | float): """ Simple utility function to convert SAP points to EPC rating. - :param sapPoints: numerical value of SAP points, typically between 0 and 100 + :param sap_points: numerical value of SAP points, typically between 0 and 100 :return: """ diff --git a/recommendations/optimiser/CostOptimiser.py b/recommendations/optimiser/CostOptimiser.py index 80924fd1..622d5b47 100644 --- a/recommendations/optimiser/CostOptimiser.py +++ b/recommendations/optimiser/CostOptimiser.py @@ -24,13 +24,18 @@ class CostOptimiser: self.solution_gain = None @classmethod - def calculate_sap_gain_with_slack(cls, min_gain): - if min_gain <= 10: - return min_gain + 2 + def calculate_sap_gain_with_slack(cls, min_gain: int | float): + """ + Adds a small amount of buffer to the minimum gain, to account for possible error in SAP predictions + :param min_gain: Numerical value for the minimum gain + :return: + """ + if min_gain <= 5: + return min_gain + 0.5 elif min_gain <= 20: - return min_gain + 3 + return min_gain + 1.5 else: - return min_gain + 4 + return min_gain + 2 def setup(self): # Initialize Model diff --git a/recommendations/optimiser/optimiser_functions.py b/recommendations/optimiser/optimiser_functions.py index 9b16c6b5..03aa38bd 100644 --- a/recommendations/optimiser/optimiser_functions.py +++ b/recommendations/optimiser/optimiser_functions.py @@ -16,44 +16,18 @@ def prepare_input_measures(property_recommendations, goal): if not goal_key: raise NotImplementedError("Not implemented this gain type - investigate me") - ventilation_rec = [rec for rec in property_recommendations if rec[0]["type"] == "mechanical_ventilation"][0] - input_measures = [] for recs in property_recommendations: - - # We don't actually optimise ventilation - if recs[0]["type"] == "mechanical_ventilation": - continue - - if recs[0]["type"] in ["internal_wall_insulation", "external_wall_insulation", "cavity_wall_insulation"]: - # Wall insulation and mechanical ventilation are paired. You can't have wall insulation without mechanical - # ventilation - - ventilation_cost = ventilation_rec[0]["total"] if ventilation_rec else 0 - ventilation_gain = ventilation_rec[0][goal_key] if ventilation_rec else 0 - - input_measures.append( - [ - { - "id": rec["recommendation_id"], - "cost": rec["total"] + ventilation_cost, - "gain": rec[goal_key] + ventilation_gain, - "type": rec["type"] - } - for rec in recs - ] - ) - else: - input_measures.append( - [ - { - "id": rec["recommendation_id"], - "cost": rec["total"], - "gain": rec[goal_key], - "type": rec["type"] - } - for rec in recs - ] - ) + input_measures.append( + [ + { + "id": rec["recommendation_id"], + "cost": rec["total"], + "gain": rec[goal_key], + "type": rec["type"] + } + for rec in recs + ] + ) return input_measures From 4102d23063072e2f5eeba2bb58e680f48c765695 Mon Sep 17 00:00:00 2001 From: Michael Duong Date: Sat, 2 Dec 2023 11:24:01 +0000 Subject: [PATCH 017/526] testing a change --- etl/epc/DataProcessor.py | 39 +++++++++++++++++++++++----------- etl/epc/property_change_app.py | 35 ++++++++++++++++++------------ 2 files changed, 48 insertions(+), 26 deletions(-) diff --git a/etl/epc/DataProcessor.py b/etl/epc/DataProcessor.py index 8adac8df..8dbdbeb9 100644 --- a/etl/epc/DataProcessor.py +++ b/etl/epc/DataProcessor.py @@ -67,16 +67,17 @@ class DataProcessor: Handle data loading and data preprocessing """ - def __init__(self, filepath: Path | None, newdata: bool = False) -> None: + def __init__(self, filepath: Path | None, is_newdata: bool = False) -> None: """ :param filepath: If specified, is the physical location of the data - :param newdata: Indicates if we are processing new, testing data. + :param is_newdata: Indicates if we are processing new, testing data. In this instance, there are some operations we do not want to perform, such as confine_data() """ self.filepath = filepath self.data = None - self.newdata = newdata + self.cleaning_averages = None + self.is_newdata = is_newdata def load_data(self, low_memory=False) -> None: if not self.filepath: @@ -130,6 +131,7 @@ class DataProcessor: TODO: We could use a model based impution approach for possibly more accurate cleaning """ + # TODO: DO we want to move this out of this function? (i.e. alter the data before we do any cleaning) self.data["POSTAL_AREA"] = self.data["POSTCODE"].apply(lambda x: x.split(" ")[0]) def apply_clean(data, matching_columns): @@ -174,13 +176,13 @@ class DataProcessor: if self.data is None: self.load_data(low_memory=DATA_PROCESSOR_SETTINGS["low_memory"]) - if not self.newdata: + if not self.is_newdata: self.confine_data() self.remap_columns() # We have some non-standard construction age bands which we'll clean for matching - if not self.newdata: + if not self.is_newdata: self.standardise_construction_age_band() self.clean_missing_rooms() @@ -188,12 +190,12 @@ class DataProcessor: column_mappings=DATA_PROCESSOR_SETTINGS["column_mappings"] ) - if not self.newdata: + if not self.is_newdata: self.clean_multi_glaze_proportion() self.clean_photo_supply() - if not self.newdata: + if not self.is_newdata: self.retain_multiple_epc_properties( epc_minimum_count=DATA_PROCESSOR_SETTINGS["epc_minimum_count"] ) @@ -202,24 +204,37 @@ class DataProcessor: # If we have multiple EPC records, we can try and do filling self.fill_na_fields() - if not self.newdata: + if not self.is_newdata: self.data = self.data.sort_values(["UPRN", "LODGEMENT_DATE"], ascending=True) # Final re-casting after data transformed and prepared - coltypes = {k: v for k, v in COLUMNTYPES.items() if k in self.data.columns} if self.newdata else COLUMNTYPES + coltypes = {k: v for k, v in COLUMNTYPES.items() if k in self.data.columns} if self.is_newdata else COLUMNTYPES for k, v in coltypes.items(): self.data[k] = self.data[k].astype(v) self.data = self.data.astype(coltypes) self.na_remapping() - return self.data + if not self.is_newdata: + # We have some odd cases with missing constituency so we fill + self.data = self.data.fillna({"CONSTITUENCY": df["CONSTITUENCY"].mode().values[0]}) + + self.cleaning_averages = self.make_cleaning_averages() + # We apply averages cleaning to the data + self.data = self.apply_averages_cleaning( + data_to_clean=self.data, + cleaning_data=self.cleaning_averages, + cols_to_merge_on=COLUMNS_TO_MERGE_ON + ) + + self.cleaning_averages["LOCAL_AUTHORITY"] = self.data["LOCAL_AUTHORITY"].values[0] + def na_remapping(self): fill_na_map_apply = { k: v for k, v in fill_na_map.items() if k in self.data.columns - } if self.newdata else fill_na_map + } if self.is_newdata else fill_na_map for column, fill_value in fill_na_map_apply.items(): self.data[column] = self.data[column].fillna(fill_value) @@ -264,7 +279,7 @@ class DataProcessor: data = data.replace(np.NAN, None) # Remap certain columns - if not self.newdata: + if not self.is_newdata: data["FLOOR_LEVEL"] = data["FLOOR_LEVEL"].replace(FLOOR_LEVEL_MAP) data["BUILT_FORM"] = data["BUILT_FORM"].replace(BUILT_FORM_REMAP) diff --git a/etl/epc/property_change_app.py b/etl/epc/property_change_app.py index 18228cb2..a7f9db12 100644 --- a/etl/epc/property_change_app.py +++ b/etl/epc/property_change_app.py @@ -397,6 +397,22 @@ def compare_records(earliest_record: pd.Series, latest_record: pd.Series, column if all_equal: return True +class EPCRecord: + """ + Base class for a EPC record + """ + + def __init__(self, num) -> None: + self.num = num + + def __sub__(self, other: EPCRecord): + return self.num - other.num + + +test = EPCRecord(10) +test2 = EPCRecord(20) +test - test2 + def app(): # Get all the files in the directory @@ -419,18 +435,12 @@ def app(): data_processor = DataProcessor(filepath=filepath) - df = data_processor.pre_process() + data_processor.pre_process() + + df = data_processor.data + cleaning_averages = data_processor.cleaning_averages - cleaning_averages = data_processor.make_cleaning_averages() - - # We have some odd cases with missing constituency so we fill - df = df.fillna({"CONSTITUENCY": df["CONSTITUENCY"].mode().values[0]}) - - df = DataProcessor.apply_averages_cleaning( - data_to_clean=df, - cleaning_data=cleaning_averages, - cols_to_merge_on=COLUMNS_TO_MERGE_ON - ) + cleaning_dataset.append(cleaning_averages) data_by_urpn = [] for uprn, property_data in df.groupby("UPRN", observed=True): @@ -592,9 +602,6 @@ def app(): dataset.append(data_by_urpn_df) - cleaning_averages["LOCAL_AUTHORITY"] = df["LOCAL_AUTHORITY"].values[0] - cleaning_dataset.append(cleaning_averages) - print("Final all equal count: %s" % str(len(all_equal_rows))) # Store cleaning dataset in s3 as a parquet file From 1cecb346769e88f2ee749be40ee248b83c2b9fbf Mon Sep 17 00:00:00 2001 From: Michael Duong Date: Sat, 2 Dec 2023 11:27:05 +0000 Subject: [PATCH 018/526] fix bug --- etl/epc/DataProcessor.py | 2 +- etl/epc/property_change_app.py | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/etl/epc/DataProcessor.py b/etl/epc/DataProcessor.py index 8dbdbeb9..9fc66bab 100644 --- a/etl/epc/DataProcessor.py +++ b/etl/epc/DataProcessor.py @@ -217,7 +217,7 @@ class DataProcessor: if not self.is_newdata: # We have some odd cases with missing constituency so we fill - self.data = self.data.fillna({"CONSTITUENCY": df["CONSTITUENCY"].mode().values[0]}) + self.data = self.data.fillna({"CONSTITUENCY": self.data["CONSTITUENCY"].mode().values[0]}) self.cleaning_averages = self.make_cleaning_averages() # We apply averages cleaning to the data diff --git a/etl/epc/property_change_app.py b/etl/epc/property_change_app.py index a7f9db12..0f425906 100644 --- a/etl/epc/property_change_app.py +++ b/etl/epc/property_change_app.py @@ -438,9 +438,8 @@ def app(): data_processor.pre_process() df = data_processor.data - cleaning_averages = data_processor.cleaning_averages - cleaning_dataset.append(cleaning_averages) + cleaning_dataset.append(data_processor.cleaning_averages) data_by_urpn = [] for uprn, property_data in df.groupby("UPRN", observed=True): From 43a21965804b797e97d88e95e7bac4751d756a2d Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Sat, 2 Dec 2023 16:58:34 +0000 Subject: [PATCH 019/526] Fixing costs unit tests --- .idea/Model.iml | 2 +- .idea/misc.xml | 2 +- recommendations/Costs.py | 6 +- recommendations/tests/test_costs.py | 131 +++++++++++++++------------- 4 files changed, 77 insertions(+), 64 deletions(-) diff --git a/.idea/Model.iml b/.idea/Model.iml index 4413bb06..b0f9c00d 100644 --- a/.idea/Model.iml +++ b/.idea/Model.iml @@ -7,7 +7,7 @@ - + diff --git a/.idea/misc.xml b/.idea/misc.xml index 6f308057..1122b380 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -3,7 +3,7 @@ - + diff --git a/recommendations/Costs.py b/recommendations/Costs.py index 23edd287..3fe0e560 100644 --- a/recommendations/Costs.py +++ b/recommendations/Costs.py @@ -40,6 +40,10 @@ class Costs: # We assume a conservative 10% contingency for all works which is a rate defined by SPONs CONTINGENCY = 0.1 + # We use a higher contingency rate for internal wall insulation because of the potential for issues with moving + # fittings and trimming doors, as well as scope for damage to the existing wall during preparation. + IWI_CONTINGENCY = 0.15 + # Where there is more uncertainty, a higher contingency rate is used HIGH_RISK_CONTINGENCY = 0.2 # When there is less uncertainty, a lower contingency rate is used @@ -232,7 +236,7 @@ class Costs: subtotal_before_profit = labour_costs + materials_costs + demolition_plant_costs - contingency_cost = subtotal_before_profit * self.CONTINGENCY + contingency_cost = subtotal_before_profit * self.IWI_CONTINGENCY preliminaries_cost = subtotal_before_profit * self.PRELIMINARIES profit_cost = subtotal_before_profit * self.PROFIT_MARGIN diff --git a/recommendations/tests/test_costs.py b/recommendations/tests/test_costs.py index 1ba601a8..2854b298 100644 --- a/recommendations/tests/test_costs.py +++ b/recommendations/tests/test_costs.py @@ -19,7 +19,7 @@ class TestCosts: "prime_cost": 5.17, "material_cost": 5.62, "labour_cost": 1.125, - "labour_hours": 0.065 + "labour_hours_per_unit": 0.065, } cwi_results = costs.cavity_wall_insulation( @@ -27,10 +27,12 @@ class TestCosts: material=cwi_material, ) - assert cwi_results == {'total': 1027.0280465530302, 'subtotal': 855.8567054608585, 'vat': 171.1713410921717, - 'contingency': 63.396792997100626, 'preliminaries': 63.396792997100626, - 'material': 539.0166061175574, 'profit': 95.09518949565093, - 'labour_hours': 6.234177828761786, 'labour_cost': 94.95132385344874} + assert cwi_results == { + 'total': 1065.0661223512907, 'subtotal': 887.5551019594088, 'vat': 177.51102039188177, + 'contingency': 63.396792997100626, 'preliminaries': 63.396792997100626, 'material': 539.0166061175574, + 'profit': 126.79358599420125, 'labour_hours': 6.234177828761786, 'labour_cost': 94.95132385344874, + 'labour_days': 0.38963611429761164 + } def test_loft_insulation(self): mock_property = Mock() @@ -46,7 +48,7 @@ class TestCosts: "prime_cost": None, "material_cost": 5.91938, "labour_cost": 1.96, - "labour_hours": 0.11 + "labour_hours_per_unit": 0.11 } loft_results = costs.loft_insulation( @@ -54,10 +56,11 @@ class TestCosts: material=loft_material, ) - assert loft_results == {'total': 414.8496486, 'subtotal': 345.70804050000004, 'vat': 69.14160810000001, - 'contingency': 25.608003000000004, 'preliminaries': 25.608003000000004, - 'material': 198.29923000000002, 'profit': 38.4120045, 'labour_hours': 3.685, - 'labour_cost': 57.7808} + assert loft_results == { + 'total': 430.21445040000003, 'subtotal': 358.512042, 'vat': 71.70240840000001, + 'contingency': 25.608003000000004, 'preliminaries': 25.608003000000004, 'material': 198.29923000000002, + 'profit': 51.21600600000001, 'labour_hours': 3.685, 'labour_cost': 57.7808, 'labour_days': 0.460625 + } def test_internal_wall_insulation(self): mock_property = Mock() @@ -171,11 +174,14 @@ class TestCosts: non_insulation_materials=iwi_non_insulation_materials ) - assert iwi_results == {'total': 6421.5484411659245, 'subtotal': 5351.29036763827, 'vat': 1070.258073527654, - 'contingency': 573.3525393898148, 'preliminaries': 382.2350262598765, - 'material': 1747.488000615996, 'profit': 573.3525393898148, - 'labour_hours': 88.23759388401297, 'labour_days': 2.757424808875405, - 'labour_cost': 1927.1602026551818} + assert iwi_results == { + 'total': 6650.889456921851, 'subtotal': 5542.407880768209, 'vat': 1108.4815761536418, + 'contingency': 573.3525393898148, 'preliminaries': 382.2350262598765, + 'material': 1747.488000615996, + 'profit': 764.470052519753, 'labour_hours': 88.23759388401297, + 'labour_days': 2.757424808875405, + 'labour_cost': 1927.1602026551818 + } def test_suspended_floor_insulation(self): mock_property = Mock() @@ -185,16 +191,18 @@ class TestCosts: costs = Costs(mock_property) - sus_floor_material = {'type': 'suspended_floor_insulation', 'description': 'Thermafleece CosyWool Roll', - 'depth': 140.0, - 'depth_unit': 'mm', 'cost_unit': 'gbp_per_m2', 'thermal_conductivity': 0.039, - 'thermal_conductivity_unit': 'watt_per_meter_kelvin', 'prime_material_cost': 0, - 'material_cost': 11.68, 'labour_cost': 1.78, 'labour_hours_per_unit': 0.1, - 'plant_cost': 0, - 'total_cost': 13.46, 'link': 'SPONs', - 'Notes': 'Spons did not contain labour costs so we use values for similar insulations. ' - 'We use the ' - 'same values as in Crown loft roll 44, since it is also an insulation roll'} + sus_floor_material = { + 'type': 'suspended_floor_insulation', 'description': 'Thermafleece CosyWool Roll', + 'depth': 140.0, + 'depth_unit': 'mm', 'cost_unit': 'gbp_per_m2', 'thermal_conductivity': 0.039, + 'thermal_conductivity_unit': 'watt_per_meter_kelvin', 'prime_material_cost': 0, + 'material_cost': 11.68, 'labour_cost': 1.78, 'labour_hours_per_unit': 0.1, + 'plant_cost': 0, + 'total_cost': 13.46, 'link': 'SPONs', + 'Notes': 'Spons did not contain labour costs so we use values for similar insulations. ' + 'We use the ' + 'same values as in Crown loft roll 44, since it is also an insulation roll' + } sus_floor_non_insulation_materials = [ {'type': 'suspended_floor_demolition', 'description': 'Removal of carpet and underfelt', 'depth': 0, @@ -231,9 +239,8 @@ class TestCosts: ) assert sus_floor_results == { - 'total': 3003.366924, 'subtotal': 2502.80577, 'vat': 500.561154, - 'contingency': 185.39302, 'preliminaries': 185.39302, 'material': 483.405, - 'profit': 278.08952999999997, 'labour_hours': 54.940000000000005, + 'total': 3114.6027360000003, 'subtotal': 2595.50228, 'vat': 519.100456, 'contingency': 185.39302, + 'preliminaries': 185.39302, 'material': 483.405, 'profit': 370.78604, 'labour_hours': 54.940000000000005, 'labour_days': 2.289166666666667, 'labour_cost': 1370.5252 } @@ -263,28 +270,29 @@ class TestCosts: 'description': 'clean surface of concrete to receive new damp-proof membrane', 'depth': 0, 'depth_unit': 0, 'cost_unit': 0, 'thermal_conductivity': 0, 'thermal_conductivity_unit': 0, 'prime_material_cost': 0, 'material_cost': 0, 'labour_cost': 4.36, 'labour_hours_per_unit': 0.14, - 'plant_cost': 0, 'total_cost': 4.36, 'link': 0, 'Notes': 0}, {'type': 'solid_floor_preparation', - 'description': 'Clean out crack to ' - 'form a 20mm×20mm ' - 'groove and fill with ' - 'cement: mortar mixed ' - 'with bonding agent', - 'depth': 0, 'depth_unit': 0, - 'cost_unit': 0, - 'thermal_conductivity': 0, - 'thermal_conductivity_unit': 0, - 'prime_material_cost': 0, - 'material_cost': 6.91, - 'labour_cost': 18.99, - 'labour_hours_per_unit': 0.61, - 'plant_cost': 0.16, - 'total_cost': 26.06, 'link': 0, - 'Notes': 'This step is the ' - 'assessment and repair of ' - 'any damage to the concrete ' - 'floor such as filling ' - 'cracks or levelling uneven ' - 'areas'}, + 'plant_cost': 0, 'total_cost': 4.36, 'link': 0, 'Notes': 0}, { + 'type': 'solid_floor_preparation', + 'description': 'Clean out crack to ' + 'form a 20mm×20mm ' + 'groove and fill with ' + 'cement: mortar mixed ' + 'with bonding agent', + 'depth': 0, 'depth_unit': 0, + 'cost_unit': 0, + 'thermal_conductivity': 0, + 'thermal_conductivity_unit': 0, + 'prime_material_cost': 0, + 'material_cost': 6.91, + 'labour_cost': 18.99, + 'labour_hours_per_unit': 0.61, + 'plant_cost': 0.16, + 'total_cost': 26.06, 'link': 0, + 'Notes': 'This step is the ' + 'assessment and repair of ' + 'any damage to the concrete ' + 'floor such as filling ' + 'cracks or levelling uneven ' + 'areas'}, {'type': 'solid_floor_vapour_barrier', 'description': 'Visqueen High Performance Vapour Barrier', 'depth': 0, 'depth_unit': 0, 'cost_unit': 0, 'thermal_conductivity': 0, 'thermal_conductivity_unit': 0, 'prime_material_cost': 0.58, 'material_cost': 1.21, 'labour_cost': 0.48, @@ -316,8 +324,8 @@ class TestCosts: ) assert sol_floor_results == { - 'total': 3962.021952, 'subtotal': 3301.68496, 'vat': 660.336992, 'contingency': 353.75196, - 'preliminaries': 235.83464, 'material': 1006.3399999999999, 'profit': 353.75196, 'labour_hours': 57.285, + 'total': 4245.023520000001, 'subtotal': 3537.5196, 'vat': 707.5039200000001, 'contingency': 471.66928, + 'preliminaries': 235.83464, 'material': 1006.3399999999999, 'profit': 471.66928, 'labour_hours': 57.285, 'labour_days': 2.386875, 'labour_cost': 1346.6464 } @@ -331,11 +339,13 @@ class TestCosts: costs = Costs(mock_property) - ewi_material = {'type': 'external_wall_insulation', 'description': 'Ecotherm Eco-Versal PIR Insulation Board', - 'depth': 150.0, 'depth_unit': 'mm', 'cost_unit': 'gbp_per_m2', 'thermal_conductivity': 0.022, - 'thermal_conductivity_unit': 'watt_per_meter_kelvin', 'prime_material_cost': 23.53, - 'material_cost': 34.62, 'labour_cost': 33.06, 'labour_hours_per_unit': 1.4, 'plant_cost': 0, - 'total_cost': 67.68, 'link': 'SPONs', 'Notes': 0} + ewi_material = { + 'type': 'external_wall_insulation', 'description': 'Ecotherm Eco-Versal PIR Insulation Board', + 'depth': 150.0, 'depth_unit': 'mm', 'cost_unit': 'gbp_per_m2', 'thermal_conductivity': 0.022, + 'thermal_conductivity_unit': 'watt_per_meter_kelvin', 'prime_material_cost': 23.53, + 'material_cost': 34.62, 'labour_cost': 33.06, 'labour_hours_per_unit': 1.4, 'plant_cost': 0, + 'total_cost': 67.68, 'link': 'SPONs', 'Notes': 0 + } ewi_non_insulation_materials = [ {'type': 'ewi_wall_demolition', 'description': 'Solid & Dry Lined walls: Hack of wall finishes with chipping ' @@ -403,9 +413,8 @@ class TestCosts: ) assert ewi_results == { - 'total': 13590.909723215433, 'subtotal': 11325.758102679527, 'vat': 2265.1516205359053, - 'contingency': 808.9827216199662, 'preliminaries': 1213.4740824299492, - 'material': 4020.565147410677, 'profit': 1213.4740824299492, - 'labour_hours': 187.02533486285358, 'labour_days': 5.8445417144641745, + 'total': 14561.688989159393, 'subtotal': 12134.740824299493, 'vat': 2426.948164859899, + 'contingency': 808.9827216199662, 'preliminaries': 1617.9654432399325, 'material': 4020.565147410677, + 'profit': 1617.9654432399325, 'labour_hours': 187.02533486285358, 'labour_days': 5.8445417144641745, 'labour_cost': 3921.5600094613983 } From 10f336188501fef57d7dd2a263d19f23b38eba14 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Sat, 2 Dec 2023 17:02:28 +0000 Subject: [PATCH 020/526] Fixed property unit tests --- backend/tests/test_property.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/backend/tests/test_property.py b/backend/tests/test_property.py index b376db9e..d8519b6b 100644 --- a/backend/tests/test_property.py +++ b/backend/tests/test_property.py @@ -12,6 +12,7 @@ mock_epc_response = { "uprn": 1, "number-habitable-rooms": 5, "property-type": "House", + "built-form": "Detached", "inspection-date": "2023-06-01", 'lodgement-datetime': '2023-06-01 20:29:01', "some-other-key": "some-value", @@ -42,6 +43,7 @@ mock_epc_response = { "uprn": 2, "number-habitable-rooms": 5, "property-type": "House", + "built-form": "Detached", "inspection-date": "2023-05-01", 'lodgement-datetime': '2023-05-01 20:29:01', "some-other-key": "some-other-value", From 1b39147b57d59f39aedca4819cd6befd3715d494 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Sat, 2 Dec 2023 17:28:51 +0000 Subject: [PATCH 021/526] Fixed test_sap_model_prep --- backend/Property.py | 5 ++++- backend/tests/test_sap_model_prep.py | 27 +++++++++++++++------------ 2 files changed, 19 insertions(+), 13 deletions(-) diff --git a/backend/Property.py b/backend/Property.py index a9d7645d..c04a3ed9 100644 --- a/backend/Property.py +++ b/backend/Property.py @@ -4,7 +4,7 @@ import os import pandas as pd from etl.epc.DataProcessor import DataProcessor -from etl.epc.settings import POTENTIAL_COLUMNS, EFFICIENCY_FEATURES +from etl.epc.settings import POTENTIAL_COLUMNS, EFFICIENCY_FEATURES, BUILT_FORM_REMAP from etl.epc_clean.epc_attributes.all_cleaners import all_cleaner_map from utils.logger import setup_logger from utils.s3 import read_dataframe_from_s3_parquet @@ -271,6 +271,9 @@ class Property(Definitions): if not self.data: raise ValueError("Property does not contain data") + # We need to implement an EPC cleaning process, which we run on the EPC data, immediately after we download + # it + self.data["built-form"] = BUILT_FORM_REMAP.get(self.data["built-form"], self.data["built-form"]) self.set_energy() self.set_ventilation() self.set_solar_pv() diff --git a/backend/tests/test_sap_model_prep.py b/backend/tests/test_sap_model_prep.py index 887e8e6e..f20e4993 100644 --- a/backend/tests/test_sap_model_prep.py +++ b/backend/tests/test_sap_model_prep.py @@ -204,9 +204,9 @@ class TestSapModelPrep: 'external_insulation': False, 'internal_insulation': False, 'walls_thermal_transmittance_ENDING': 0.7, 'is_park_home_ENDING': False, 'walls_insulation_thickness_ENDING': 'average', 'external_insulation_ENDING': False, 'internal_insulation_ENDING': False, - 'floor_thermal_transmittance': 0.64, 'is_to_unheated_space': False, 'is_to_external_air': False, + 'floor_thermal_transmittance': 0.52, 'is_to_unheated_space': False, 'is_to_external_air': False, 'is_suspended': True, 'is_solid': False, 'another_property_below': False, - 'floor_insulation_thickness': 'none', 'floor_thermal_transmittance_ENDING': 0.64, + 'floor_insulation_thickness': 'none', 'floor_thermal_transmittance_ENDING': 0.52, 'floor_insulation_thickness_ENDING': 'none', 'roof_thermal_transmittance': 1.5, 'is_pitched': True, 'is_roof_room': False, 'is_loft': False, 'is_flat': False, 'is_thatched': False, 'is_at_rafters': False, 'has_dwelling_above': False, 'roof_insulation_thickness': 'below average', @@ -260,7 +260,7 @@ class TestSapModelPrep: 'no_individual_heating_or_community_network': False, 'complex_fuel_type': 'Unknown', 'fuel_type_ENDING': 'oil', 'main-fuel_tariff_type_ENDING': 'Unknown', 'is_community_ENDING': False, 'no_individual_heating_or_community_network_ENDING': False, 'complex_fuel_type_ENDING': 'Unknown', - 'estimated_perimeter_STARTING': 44.77882152472145, 'estimated_perimeter_ENDING': 44.77882152472145, + 'estimated_perimeter_STARTING': 30.531014675946444, 'estimated_perimeter_ENDING': 30.531014675946444, 'HOT_WATER_ENERGY_EFF_STARTING': "Good", "FLOOR_ENERGY_EFF_STARTING": "Unknown", "WINDOWS_ENERGY_EFF_STARTING": "Good", @@ -310,7 +310,7 @@ class TestSapModelPrep: recommendation = { "recommendation_id": 0, "new_u_value": 0.7, - "type": "wall_insulation" + "type": "cavity_wall_insulation" } test_record = create_recommendation_scoring_data( @@ -356,7 +356,7 @@ class TestSapModelPrep: assert test_record[c].values[0] == row[c] - def test_solid_wall_insulation(self, cleaned, cleaning_data): + def test_internal_wall_insulation(self, cleaned, cleaning_data): starting_epc2 = { 'low-energy-fixed-light-count': '2', 'address': 'FLAT 12, WAREHOUSE W, 3 WESTERN GATEWAY', @@ -513,6 +513,7 @@ class TestSapModelPrep: data=starting_epc2 ) home2.get_components(cleaned) + home2.set_number_lighting_outlets(None) data_processor2 = DataProcessor(None, newdata=True) data_processor2.insert_data(pd.DataFrame([home2.get_model_data()])) @@ -530,7 +531,7 @@ class TestSapModelPrep: recommendation2 = { "recommendation_id": 0, "new_u_value": 0.21, - "type": "wall_insulation" + "type": "internal_wall_insulation" } test_record2 = create_recommendation_scoring_data( @@ -644,9 +645,9 @@ class TestSapModelPrep: 'is_park_home': False, 'walls_insulation_thickness': 'none', 'external_insulation': False, 'internal_insulation': False, 'walls_thermal_transmittance_ENDING': 2.0, 'is_park_home_ENDING': False, 'walls_insulation_thickness_ENDING': 'none', 'external_insulation_ENDING': False, - 'internal_insulation_ENDING': False, 'floor_thermal_transmittance': 0.62, 'is_to_unheated_space': False, + 'internal_insulation_ENDING': False, 'floor_thermal_transmittance': 0.51, 'is_to_unheated_space': False, 'is_to_external_air': False, 'is_suspended': True, 'is_solid': False, 'another_property_below': False, - 'floor_insulation_thickness': 'none', 'floor_thermal_transmittance_ENDING': 0.62, + 'floor_insulation_thickness': 'none', 'floor_thermal_transmittance_ENDING': 0.51, 'floor_insulation_thickness_ENDING': 'none', 'roof_thermal_transmittance': 2.3, 'is_pitched': True, 'is_roof_room': False, 'is_loft': False, 'is_flat': False, 'is_thatched': False, 'is_at_rafters': False, 'has_dwelling_above': False, 'roof_insulation_thickness': 'none', 'roof_thermal_transmittance_ENDING': 2.3, @@ -699,7 +700,7 @@ class TestSapModelPrep: 'no_individual_heating_or_community_network': False, 'complex_fuel_type': 'Unknown', 'fuel_type_ENDING': 'mains gas', 'main-fuel_tariff_type_ENDING': 'Unknown', 'is_community_ENDING': False, 'no_individual_heating_or_community_network_ENDING': False, 'complex_fuel_type_ENDING': 'Unknown', - 'estimated_perimeter_STARTING': 41.634120622393354, 'estimated_perimeter_ENDING': 41.634120622393354, + 'estimated_perimeter_STARTING': 30.06908711617298, 'estimated_perimeter_ENDING': 30.06908711617298, 'HOT_WATER_ENERGY_EFF_STARTING': "Good", "FLOOR_ENERGY_EFF_STARTING": "Unknown", "WINDOWS_ENERGY_EFF_STARTING": "Average", @@ -732,6 +733,7 @@ class TestSapModelPrep: data=starting_epc3 ) home3.get_components(cleaned) + home3.set_number_lighting_outlets(None) data_processor3 = DataProcessor(None, newdata=True) data_processor3.insert_data(pd.DataFrame([home3.get_model_data()])) @@ -851,9 +853,9 @@ class TestSapModelPrep: 'is_park_home': False, 'walls_insulation_thickness': 'none', 'external_insulation': False, 'internal_insulation': False, 'walls_thermal_transmittance_ENDING': 1.7, 'is_park_home_ENDING': False, 'walls_insulation_thickness_ENDING': 'none', 'external_insulation_ENDING': False, - 'internal_insulation_ENDING': False, 'floor_thermal_transmittance': 0.66, 'is_to_unheated_space': False, + 'internal_insulation_ENDING': False, 'floor_thermal_transmittance': 0.53, 'is_to_unheated_space': False, 'is_to_external_air': False, 'is_suspended': False, 'is_solid': True, 'another_property_below': False, - 'floor_insulation_thickness': 'none', 'floor_thermal_transmittance_ENDING': 0.66, + 'floor_insulation_thickness': 'none', 'floor_thermal_transmittance_ENDING': 0.53, 'floor_insulation_thickness_ENDING': 'none', 'roof_thermal_transmittance': 0.21, 'is_pitched': True, 'is_roof_room': False, 'is_loft': True, 'is_flat': False, 'is_thatched': False, 'is_at_rafters': False, 'has_dwelling_above': False, 'roof_insulation_thickness': '200', 'roof_thermal_transmittance_ENDING': 0.21, @@ -907,7 +909,7 @@ class TestSapModelPrep: 'no_individual_heating_or_community_network': False, 'complex_fuel_type': 'Unknown', 'fuel_type_ENDING': 'mains gas', 'main-fuel_tariff_type_ENDING': 'Unknown', 'is_community_ENDING': False, 'no_individual_heating_or_community_network_ENDING': False, 'complex_fuel_type_ENDING': 'Unknown', - 'estimated_perimeter_STARTING': 37.54197650630557, 'estimated_perimeter_ENDING': 37.54197650630557, + 'estimated_perimeter_STARTING': 27.113649698998472, 'estimated_perimeter_ENDING': 27.113649698998472, 'HOT_WATER_ENERGY_EFF_STARTING': "Good", "FLOOR_ENERGY_EFF_STARTING": "Unknown", "WINDOWS_ENERGY_EFF_STARTING": "Average", @@ -940,6 +942,7 @@ class TestSapModelPrep: data=starting_epc4 ) home4.get_components(cleaned) + home4.set_number_lighting_outlets(None) data_processor4 = DataProcessor(None, newdata=True) data_processor4.insert_data(pd.DataFrame([home4.get_model_data()])) From c31619451fc169211e47e986730641ee43b01008 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Sat, 2 Dec 2023 17:32:00 +0000 Subject: [PATCH 022/526] fixed fireplace tests --- recommendations/tests/test_fireplace_recommendations.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recommendations/tests/test_fireplace_recommendations.py b/recommendations/tests/test_fireplace_recommendations.py index a1e0c1c6..570fbb5c 100644 --- a/recommendations/tests/test_fireplace_recommendations.py +++ b/recommendations/tests/test_fireplace_recommendations.py @@ -37,7 +37,7 @@ class TestFirepaceRecommendations: assert recommender.recommendation assert recommender.recommendation[0]["type"] == "sealing_open_fireplace" - assert recommender.recommendation[0]["cost"] == 300 + assert recommender.recommendation[0]["total"] == 300 def test_multiple_fireplaces(self): property_instance = Property(id=0, address1="fake", postcode="fake", epc_client=Mock()) @@ -55,4 +55,4 @@ class TestFirepaceRecommendations: assert recommender.recommendation assert recommender.recommendation[0]["type"] == "sealing_open_fireplace" - assert recommender.recommendation[0]["cost"] == 900 + assert recommender.recommendation[0]["total"] == 900 From 5efa6ea59dd1aba8dae68f6495a78ab7ff0bb5bd Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Sat, 2 Dec 2023 18:20:53 +0000 Subject: [PATCH 023/526] fixed wall unit tests --- recommendations/Costs.py | 16 +- recommendations/county_to_region.py | 172 ++++ recommendations/tests/test_data/materials.py | 835 ++++++++++++++++++ .../tests/test_wall_recommendations.py | 343 ++----- 4 files changed, 1093 insertions(+), 273 deletions(-) create mode 100644 recommendations/county_to_region.py create mode 100644 recommendations/tests/test_data/materials.py diff --git a/recommendations/Costs.py b/recommendations/Costs.py index 3fe0e560..e896e1b5 100644 --- a/recommendations/Costs.py +++ b/recommendations/Costs.py @@ -1,27 +1,23 @@ import numpy as np +from recommendations.county_to_region import county_to_region_map -# This data comes from SPONs +# This data comes from SPONs 2023 regional_labour_variations = [ - {"Region": "Outer London (Spon’s 2023)", "Adjustment_Factor": 1.00}, + {"Region": "Outer London", "Adjustment_Factor": 1.00}, {"Region": "Inner London", "Adjustment_Factor": 1.05}, {"Region": "South East", "Adjustment_Factor": 0.96}, {"Region": "South West", "Adjustment_Factor": 0.90}, {"Region": "East of England", "Adjustment_Factor": 0.93}, {"Region": "East Midlands", "Adjustment_Factor": 0.88}, {"Region": "West Midlands", "Adjustment_Factor": 0.87}, - {"Region": "North East", "Adjustment_Factor": 0.83}, - {"Region": "North West", "Adjustment_Factor": 0.88}, + {"Region": "North East England", "Adjustment_Factor": 0.83}, + {"Region": "North West England", "Adjustment_Factor": 0.88}, {"Region": "Yorkshire and Humberside", "Adjustment_Factor": 0.86}, {"Region": "Wales", "Adjustment_Factor": 0.88}, {"Region": "Scotland", "Adjustment_Factor": 0.88}, {"Region": "Northern Ireland", "Adjustment_Factor": 0.76} ] -county_map = { - "Northamptonshire": "East Midlands", - "Hampshire": "South East", -} - class Costs: """ @@ -75,7 +71,7 @@ class Costs: self.property = property_instance self.regional_labour_variations = regional_labour_variations - self.county = county_map.get(self.property.data["county"], None) + self.county = county_to_region_map.get(self.property.data["county"], None) if self.county is None: raise ValueError("County not found in county map") diff --git a/recommendations/county_to_region.py b/recommendations/county_to_region.py new file mode 100644 index 00000000..3379247f --- /dev/null +++ b/recommendations/county_to_region.py @@ -0,0 +1,172 @@ +# This map was found here: +# https://gist.github.com/radiac/d91d2ed1b971c03d49e9b7bd85e23f1c#file-uk-counties-to-regions-csv +county_to_region_map = { + 'Guernsey': 'Crown Dependencies', 'IOM': 'Crown Dependencies', 'Jersey': 'Crown Dependencies', + 'North East Derbyshire': 'East Midlands', 'Amber Valley': 'East Midlands', 'Ashfield': 'East Midlands', + 'Bassetlaw': 'East Midlands', 'Blaby': 'East Midlands', 'Bolsover': 'East Midlands', 'Boston': 'East Midlands', + 'Broxtowe': 'East Midlands', 'Charnwood': 'East Midlands', 'Chesterfield': 'East Midlands', + 'Corby': 'East Midlands', 'Daventry': 'East Midlands', 'Derby': 'East Midlands', 'Derbyshire': 'East Midlands', + 'Derbyshire Dales': 'East Midlands', 'East Lindsey': 'East Midlands', 'East Northamptonshire': 'East Midlands', + 'Erewash': 'East Midlands', 'Gedling': 'East Midlands', 'Harborough': 'East Midlands', 'High Peak': 'East Midlands', + 'Hinckley and Bosworth': 'East Midlands', 'Kettering': 'East Midlands', 'Leicester': 'East Midlands', + 'Leicestershire': 'East Midlands', 'Lincoln': 'East Midlands', 'Lincolnshire': 'Yorkshire and the Humber', + 'Mansfield': 'East Midlands', 'Melton': 'East Midlands', 'Newark and Sherwood': 'East Midlands', + 'North Kesteven': 'East Midlands', 'North West Leicestershire': 'East Midlands', 'Northampton': 'East Midlands', + 'Northamptonshire': 'East Midlands', 'Nottingham': 'East Midlands', 'Nottinghamshire': 'East Midlands', + 'Oadby and Wigston': 'East Midlands', 'Rushcliffe': 'East Midlands', 'Rutland': 'East Midlands', + 'South Derbyshire': 'East Midlands', 'South Holland': 'East Midlands', 'South Kesteven': 'East Midlands', + 'South Northamptonshire': 'East Midlands', 'Wellingborough': 'East Midlands', 'West Lindsey': 'East Midlands', + 'Babergh': 'East of England', 'Basildon': 'East of England', 'Bedford': 'East of England', + 'Bedford Borough': 'East of England', 'Bedfordshire': 'East of England', 'Braintree': 'East of England', + 'Breckland': 'East of England', 'Brentwood': 'East of England', 'Broadland': 'East of England', + 'Broxbourne': 'East of England', 'Cambridge': 'East of England', 'Cambridgeshire': 'East of England', + 'Castle Point': 'East of England', 'Central Bedfordshire': 'East of England', 'Chelmsford': 'East of England', + 'Colchester': 'East of England', 'Dacorum': 'East of England', 'East Cambridgeshire': 'East of England', + 'East Hertfordshire': 'East of England', 'Epping Forest': 'East of England', 'Essex': 'East of England', + 'Fenland': 'East of England', 'Forest Heath': 'East of England', 'Great Yarmouth': 'East of England', + 'Harlow': 'East of England', 'Hertfordshire': 'East of England', 'Hertsmere': 'East of England', + 'Huntingdonshire': 'East of England', 'Ipswich': 'East of England', + "King's Lynn and West Norfolk": 'East of England', 'Luton': 'East of England', 'Maldon': 'East of England', + 'Mid Suffolk': 'East of England', 'Norfolk': 'East of England', 'North Hertfordshire': 'East of England', + 'North Norfolk': 'East of England', 'Norwich': 'East of England', 'Peterborough': 'East of England', + 'Rochford': 'East of England', 'South Cambridgeshire': 'East of England', 'South Norfolk': 'East of England', + 'Southend-on-Sea': 'East of England', 'St Albans': 'East of England', 'St. Edmundsbury': 'East of England', + 'Stevenage': 'East of England', 'Suffolk': 'East of England', 'Suffolk Coastal': 'East of England', + 'Tendring': 'East of England', 'Three Rivers': 'East of England', 'Thurrock': 'East of England', + 'Uttlesford': 'East of England', 'Watford': 'East of England', 'Waveney': 'East of England', + 'Welwyn Hatfield': 'East of England', + # 'Barking and Dagenham': 'London', 'Barnet': 'London', 'Bexley': 'London', + # 'Brent': 'London', 'Bromley': 'London', 'Camden': 'London', 'City of London': 'London', + # 'City of Westminster': 'London', 'Croydon': 'London', 'Ealing': 'London', 'Enfield': 'London', + # 'Greater London': 'London', 'Greenwich': 'London', 'Hackney': 'London', 'Hammersmith and Fulham': 'London', + # 'Haringey': 'London', 'Harrow': 'London', 'Havering': 'London', 'Hillingdon': 'London', 'Hounslow': 'London', + # 'Islington': 'London', 'Kensington and Chelsea': 'London', 'Kingston upon Thames': 'London', 'Lambeth': 'London', + # 'Lewisham': 'London', 'Merton': 'London', 'Newham': 'London', 'Redbridge': 'London', 'Richmond': 'London', + # 'Southwark': 'London', 'Sutton': 'London', 'Tower Hamlets': 'London', 'Waltham Forest': 'London', + # 'Wandsworth': 'London', 'Westminster': 'London', + 'County Durham': 'North East England', + 'Darlington': 'North East England', 'Durham': 'North East England', 'Gateshead': 'North East England', + 'Hartlepool': 'North East England', 'Middlesbrough': 'North East England', + 'Newcastle Upon Tyne': 'North East England', 'North Tyneside': 'North East England', + 'North Yorkshire': 'Yorkshire and the Humber', 'Northumberland': 'North East England', + 'Redcar and Cleveland': 'North East England', 'South Tyneside': 'North East England', + 'Stockton-on-Tees': 'North East England', 'Sunderland': 'North East England', 'Tyne and Wear': 'North East England', + 'Allerdale': 'North West England', 'Barrow-in-Furness': 'North West England', + 'Blackburn with Darwen': 'North West England', 'Blackpool': 'North West England', 'Bolton': 'North West England', + 'Burnley': 'North West England', 'Bury': 'North West England', 'Carlisle': 'North West England', + 'Cheshire': 'North West England', 'Cheshire East': 'North West England', + 'Cheshire West and Chester': 'North West England', 'Chorley': 'North West England', + 'Copeland': 'North West England', 'Cumbria': 'North West England', 'Eden': 'North West England', + 'Fylde': 'North West England', 'Greater Manchester': 'North West England', 'Halton': 'North West England', + 'Hyndburn': 'North West England', 'Knowsley': 'North West England', 'Lancashire': 'North West England', + 'Lancaster': 'North West England', 'Liverpool': 'North West England', 'Manchester': 'North West England', + 'Merseyside': 'North West England', 'Oldham': 'North West England', 'Pendle': 'North West England', + 'Preston': 'North West England', 'Ribble Valley': 'North West England', 'Rochdale': 'North West England', + 'Rossendale': 'North West England', 'Salford': 'North West England', 'Sefton': 'North West England', + 'South Lakeland': 'North West England', 'South Ribble': 'North West England', 'St Helens': 'North West England', + 'St. Helens': 'North West England', 'Stockport': 'North West England', 'Tameside': 'North West England', + 'Trafford': 'North West England', 'Warrington': 'North West England', 'West Lancashire': 'North West England', + 'Wigan': 'North West England', 'Wirral': 'North West England', 'Wyre': 'North West England', + 'Antrim': 'Northern Ireland', 'Ards': 'Northern Ireland', 'Armagh': 'Northern Ireland', + 'Ballymena': 'Northern Ireland', 'Ballymoney': 'Northern Ireland', 'Banbridge': 'Northern Ireland', + 'Belfast': 'Northern Ireland', 'Carrickfergus': 'Northern Ireland', 'Castlereagh': 'Northern Ireland', + 'Coleraine': 'Northern Ireland', 'Cookstown': 'Northern Ireland', 'County Armagh': 'Northern Ireland', + 'County Fermanagh': 'Northern Ireland', 'Craigavon': 'Northern Ireland', 'Derry': 'Northern Ireland', + 'Down': 'Northern Ireland', 'Dungannon': 'Northern Ireland', 'Fermanagh': 'Northern Ireland', + 'Larne': 'Northern Ireland', 'Limavady': 'Northern Ireland', 'Lisburn': 'Northern Ireland', + 'Magherafelt': 'Northern Ireland', 'Moyle': 'Northern Ireland', 'Newry and Mourne': 'Northern Ireland', + 'Newtownabbey': 'Northern Ireland', 'North Down': 'Northern Ireland', 'Omagh': 'Northern Ireland', + 'South Tyrone': 'Northern Ireland', 'Strabane': 'Northern Ireland', 'Aberdeen City': 'Scotland', + 'Aberdeenshire': 'Scotland', 'Angus': 'Scotland', 'Argyll and Bute': 'Scotland', 'Argyllshire': 'Scotland', + 'Ayrshire': 'Scotland', 'Banffshire': 'Scotland', 'Berwickshire': 'Scotland', 'Bute': 'Scotland', + 'Caithness': 'Scotland', 'City of Edinburgh': 'Scotland', 'Clackmannanshire': 'Scotland', + 'Dumfries and Galloway': 'Scotland', 'Dumfriesshire': 'Scotland', 'Dunbartonshire': 'Scotland', + 'Dundee City': 'Scotland', 'East Ayrshire': 'Scotland', 'East Dunbartonshire': 'Scotland', + 'East Lothian': 'Scotland', 'East Renfrewshire': 'Scotland', 'Edinburgh City': 'Scotland', + 'Eilean Siar': 'Scotland', 'Falkirk': 'Scotland', 'Fife': 'Scotland', 'Glasgow City': 'Scotland', + 'Highland': 'Scotland', 'Inverclyde': 'Scotland', 'Inverness-shire': 'Scotland', 'Kincardineshire': 'Scotland', + 'Kinross-shire': 'Scotland', 'Kirkcudbrightshire': 'Scotland', 'Lanarkshire': 'Scotland', 'Midlothian': 'Scotland', + 'Moray': 'Scotland', 'Nairnshire': 'Scotland', 'North Ayrshire': 'Scotland', 'North Lanarkshire': 'Scotland', + 'Orkney': 'Scotland', 'Orkney Islands': 'Scotland', 'Peeblesshire': 'Scotland', 'Perth and Kinross': 'Scotland', + 'Perthshire': 'Scotland', 'Renfrewshire': 'Scotland', 'Ross and Cromarty': 'Scotland', 'Roxburghshire': 'Scotland', + 'Selkirkshire': 'Scotland', 'Shetland Islands': 'Scotland', 'South Ayrshire': 'Scotland', + 'South Lanarkshire': 'Scotland', 'Stirling': 'Scotland', 'Stirlingshire': 'Scotland', 'Sutherland': 'Scotland', + 'The Scottish Borders': 'Scotland', 'West Ayrshire': 'Scotland', 'West Dunbartonshire': 'Scotland', + 'West Lothian': 'Scotland', 'Wigtownshire': 'Scotland', 'Zetland': 'Scotland', 'Adur': 'South East England', + 'Arun': 'South East England', 'Ashford': 'South East England', 'Aylesbury Vale': 'South East England', + 'Basingstoke and Deane': 'South East England', 'Berkshire': 'South East England', + 'Bracknell Forest': 'South East England', 'Brighton and Hove': 'South East England', + 'Buckinghamshire': 'South East England', 'Canterbury': 'South East England', 'Cherwell': 'South East England', + 'Chichester': 'South East England', 'Chiltern': 'South East England', 'Crawley': 'South East England', + 'Dartford': 'South East England', 'Dover': 'South East England', 'East Hampshire': 'South East England', + 'East Sussex': 'South East England', 'Eastbourne': 'South East England', 'Eastleigh': 'South East England', + 'Elmbridge': 'South East England', 'Epsom and Ewell': 'South East England', 'Fareham': 'South East England', + 'Gosport': 'South East England', 'Gravesham': 'South East England', 'Guildford': 'South East England', + 'Hampshire': 'South East England', 'Hart': 'South East England', 'Hastings': 'South East England', + 'Havant': 'South East England', 'Horsham': 'South East England', 'Isle of Wight': 'South East England', + 'Kent': 'South East England', 'Lewes': 'South East England', 'Maidstone': 'South East England', + 'Medway': 'South East England', 'Mid Sussex': 'South East England', 'Milton Keynes': 'South East England', + 'Mole Valley': 'South East England', 'New Forest': 'South East England', 'Oxford': 'South East England', + 'Oxfordshire': 'South East England', 'Portsmouth': 'South East England', 'Reading': 'South East England', + 'Reigate and Banstead': 'South East England', 'Rother': 'South East England', 'Runnymede': 'South East England', + 'Rushmoor': 'South East England', 'Sevenoaks': 'South East England', 'Shepway': 'South East England', + 'Slough': 'South East England', 'South Bucks': 'South East England', 'South Oxfordshire': 'South East England', + 'Southampton': 'South East England', 'Spelthorne': 'South East England', 'Surrey': 'South East England', + 'Surrey Heath': 'South East England', 'Swale': 'South East England', 'Tandridge': 'South East England', + 'Test Valley': 'South East England', 'Thanet': 'South East England', 'Tonbridge and Malling': 'South East England', + 'Tunbridge Wells': 'South East England', 'Vale of White Horse': 'South East England', + 'Waverley': 'South East England', 'Wealden': 'South East England', 'West Berkshire': 'South East England', + 'West Oxfordshire': 'South East England', 'West Sussex': 'South East England', 'Winchester': 'South East England', + 'Windsor and Maidenhead': 'South East England', 'Woking': 'South East England', 'Wokingham': 'South East England', + 'Worthing': 'South East England', 'Wycombe': 'South East England', + 'Bath and North East Somerset': 'South West England', 'Bournemouth': 'South West England', + 'Bristol': 'South West England', 'Cheltenham': 'South West England', 'Christchurch': 'South West England', + 'City of Bristol': 'South West England', 'Cornwall': 'South West England', 'Cotswold': 'South West England', + 'Devon': 'South West England', 'Dorset': 'South West England', 'East Devon': 'South West England', + 'East Dorset': 'South West England', 'Exeter': 'South West England', 'Forest of Dean': 'South West England', + 'Gloucester': 'South West England', 'Gloucestershire': 'South West England', + 'Isles of Scilly': 'South West England', 'Mendip': 'South West England', 'Mid Devon': 'South West England', + 'North Devon': 'South West England', 'North Dorset': 'South West England', 'North Somerset': 'South West England', + 'Plymouth': 'South West England', 'Poole': 'South West England', 'Purbeck': 'South West England', + 'Sedgemoor': 'South West England', 'Somerset': 'South West England', 'South Gloucestershire': 'South West England', + 'South Hams': 'South West England', 'South Somerset': 'South West England', 'Stroud': 'South West England', + 'Swindon': 'South West England', 'Taunton Deane': 'South West England', 'Teignbridge': 'South West England', + 'Tewkesbury': 'South West England', 'Torbay': 'South West England', 'Torridge': 'South West England', + 'West Devon': 'South West England', 'West Dorset': 'South West England', 'West Somerset': 'South West England', + 'Weymouth and Portland': 'South West England', 'Wiltshire': 'South West England', 'Aberdare': 'Wales', + 'Bargoed': 'Wales', 'Barry': 'Wales', 'Blaenau Gwent': 'Wales', 'Bridgend': 'Wales', 'Caerphilly': 'Wales', + 'Cardiff': 'Wales', 'Carmarthenshire': 'Wales', 'Ceredigion': 'Wales', 'Conwy': 'Wales', 'Cowbridge': 'Wales', + 'Denbighshire': 'Wales', 'Dinas Powys': 'Wales', 'Ferndale': 'Wales', 'Flintshire': 'Wales', 'Gwynedd': 'Wales', + 'Hengoed': 'Wales', 'Isle of Anglesey': 'Wales', 'Llantwit Major': 'Wales', 'Maesteg': 'Wales', + 'Merthyr Tydfil': 'Wales', 'Monmouthshire': 'Wales', 'Mountain Ash': 'Wales', 'Neath Port Talbot': 'Wales', + 'Newport': 'Wales', 'Pembrokeshire': 'Wales', 'Penarth': 'Wales', 'Pentre': 'Wales', 'Pontyclun': 'Wales', + 'Pontypridd': 'Wales', 'Porth': 'Wales', 'Porthcawl': 'Wales', 'Powys': 'Wales', 'Rhondda Cynon Taff': 'Wales', + 'Rhoose': 'Wales', 'Sully': 'Wales', 'Swansea': 'Wales', 'The Vale of Glamorgan': 'Wales', 'Tonypandy': 'Wales', + 'Torfaen': 'Wales', 'Treharris': 'Wales', 'Treorchy': 'Wales', 'Wrexham': 'Wales', 'Birmingham': 'West Midlands', + 'Bromsgrove': 'West Midlands', 'Cannock Chase': 'West Midlands', 'Coventry': 'West Midlands', + 'Dudley': 'West Midlands', 'East Staffordshire': 'West Midlands', 'Herefordshire': 'West Midlands', + 'Lichfield': 'West Midlands', 'Malvern Hills': 'West Midlands', 'Newcastle-under-Lyme': 'West Midlands', + 'North Warwickshire': 'West Midlands', 'Nuneaton and Bedworth': 'West Midlands', 'Redditch': 'West Midlands', + 'Rugby': 'West Midlands', 'Sandwell': 'West Midlands', 'Shropshire': 'West Midlands', 'Solihull': 'West Midlands', + 'South Staffordshire': 'West Midlands', 'Stafford': 'West Midlands', 'Staffordshire': 'West Midlands', + 'Staffordshire Moorlands': 'West Midlands', 'Stoke-on-Trent': 'West Midlands', 'Stratford-on-Avon': 'West Midlands', + 'Tamworth': 'West Midlands', 'Telford and Wrekin': 'West Midlands', 'Walsall': 'West Midlands', + 'Warwick': 'West Midlands', 'Warwickshire': 'West Midlands', 'West Midlands': 'West Midlands', + 'Wolverhampton': 'West Midlands', 'Worcester': 'West Midlands', 'Worcestershire': 'West Midlands', + 'Wychavon': 'West Midlands', 'Wyre Forest': 'West Midlands', 'Barnsley': 'Yorkshire and the Humber', + 'Bradford': 'Yorkshire and the Humber', 'Calderdale': 'Yorkshire and the Humber', + 'City of Kingston-upon-Hull': 'Yorkshire and the Humber', 'Craven': 'Yorkshire and the Humber', + 'Doncaster': 'Yorkshire and the Humber', 'East Riding of Yorkshire': 'Yorkshire and the Humber', + 'Hambleton': 'Yorkshire and the Humber', 'Harrogate': 'Yorkshire and the Humber', + 'Kingston upon Hull': 'Yorkshire and the Humber', 'Kirklees': 'Yorkshire and the Humber', + 'Leeds': 'Yorkshire and the Humber', 'North East Lincolnshire': 'Yorkshire and the Humber', + 'North Lincolnshire': 'Yorkshire and the Humber', 'Richmondshire': 'Yorkshire and the Humber', + 'Rotherham': 'Yorkshire and the Humber', 'Ryedale': 'Yorkshire and the Humber', + 'Scarborough': 'Yorkshire and the Humber', 'Selby': 'Yorkshire and the Humber', + 'Sheffield': 'Yorkshire and the Humber', 'South Yorkshire': 'Yorkshire and the Humber', + 'Wakefield': 'Yorkshire and the Humber', 'West Yorkshire': 'Yorkshire and the Humber', + 'York': 'Yorkshire and the Humber', + + # Additional mappings requried, based on what we find in the EPC database + 'Greater London Authority': 'Inner London' +} diff --git a/recommendations/tests/test_data/materials.py b/recommendations/tests/test_data/materials.py new file mode 100644 index 00000000..c0f434a5 --- /dev/null +++ b/recommendations/tests/test_data/materials.py @@ -0,0 +1,835 @@ +import datetime + +materials = [ + {'id': 17, 'type': 'mechanical_ventilation', 'description': 'Mechanical Extract Ventilation', 'depth': None, + 'depth_unit': None, 'cost': 500, 'cost_unit': 'gbp_per_unit', 'r_value_per_mm': None, 'r_value_unit': None, + 'thermal_conductivity': None, 'thermal_conductivity_unit': None, 'link': None, + 'created_at': datetime.datetime(2023, 10, 18, 16, 39, 9, 827188), 'is_active': True, 'prime_material_cost': None, + 'material_cost': None, 'labour_cost': None, 'labour_hours_per_unit': None, 'plant_cost': None, 'total_cost': None, + 'notes': None}, + {'id': 1109, 'type': 'cavity_wall_insulation', 'description': 'Expanded Polystyrene Beads cavity wall insulation', + 'depth': 75.0, 'depth_unit': 'mm', 'cost': None, 'cost_unit': 'gbp_per_m2', 'r_value_per_mm': 0.030303031, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': 0.033, + 'thermal_conductivity_unit': 'watt_per_meter_kelvin', + 'link': 'https://www.styrene.co.uk/downloads/Datasheets/Stylite_Cavity_Loose_Fill_Insulation_Datasheet_v20211.pdf', + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, 244907), 'is_active': True, 'prime_material_cost': None, + 'material_cost': 18.875, 'labour_cost': 1.125, 'labour_hours_per_unit': 0.065, 'plant_cost': 0.0, + 'total_cost': 20.0, + 'notes': "It is hard to find materials online. To price this, we've used this article: " + "https://www.greenmatch.co.uk/blog/cavity-wall-insulation-cost It puts EPS beads at around £22 per " + "meter squared, blowing wool insulation at £18 per meter squared and Polyurethane Foam at £26 per meter " + "squared, when taking the most pessimistic prices. These rates have been used to adjust the price of " + "the mineral wool insulation to give us the other forms of insulation"}, + {'id': 1110, 'type': 'cavity_wall_insulation', 'description': 'Injected Polyurthane Foam cavity wall insulation', + 'depth': 75.0, 'depth_unit': 'mm', 'cost': None, 'cost_unit': 'gbp_per_m2', 'r_value_per_mm': 0.030303031, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': 0.033, + 'thermal_conductivity_unit': 'watt_per_meter_kelvin', + 'link': 'https://www.foaminstall.co.uk/wp-content/uploads/2017/04/Lapolla-Cavity-Fill-BBA-certificate-sheet1.pdf', + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, 244907), 'is_active': True, 'prime_material_cost': None, + 'material_cost': 22.875, 'labour_cost': 1.125, 'labour_hours_per_unit': 0.065, 'plant_cost': 0.0, + 'total_cost': 24.0, 'notes': None}, + {'id': 1111, 'type': 'loft_insulation', 'description': 'Crown Loft Roll 44 glass fibre roll', 'depth': 100.0, + 'depth_unit': 'mm', 'cost': None, 'cost_unit': 'gbp_per_m2', 'r_value_per_mm': 0.022727273, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': 0.044, + 'thermal_conductivity_unit': 'watt_per_meter_kelvin', 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, 244907), 'is_active': True, 'prime_material_cost': 2.03, + 'material_cost': 2.1, 'labour_cost': 1.56, 'labour_hours_per_unit': 0.09, 'plant_cost': 0.0, 'total_cost': 3.66, + 'notes': None}, + {'id': 1112, 'type': 'loft_insulation', 'description': 'Crown Loft Roll 44 glass fibre roll', 'depth': 150.0, + 'depth_unit': 'mm', 'cost': None, 'cost_unit': 'gbp_per_m2', 'r_value_per_mm': 0.022727273, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': 0.044, + 'thermal_conductivity_unit': 'watt_per_meter_kelvin', 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, 244907), 'is_active': True, 'prime_material_cost': 3.06, + 'material_cost': 3.16, 'labour_cost': 1.78, 'labour_hours_per_unit': 0.1, 'plant_cost': 0.0, 'total_cost': 4.94, + 'notes': None}, + {'id': 1113, 'type': 'loft_insulation', 'description': 'Crown Loft Roll 44 glass fibre roll', 'depth': 170.0, + 'depth_unit': 'mm', 'cost': None, 'cost_unit': 'gbp_per_m2', 'r_value_per_mm': 0.022727273, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': 0.044, + 'thermal_conductivity_unit': 'watt_per_meter_kelvin', + 'link': 'https://insulation4less.co.uk/products/knauf-170mm-combi-cut?variant=31671561257013&dfw_tracker=77750' + '-31671561257013&utm_source=google&utm_medium=shopping&utm_campaign=shoptimised&gad_source=1&gclid' + '=CjwKCAiAx_GqBhBQEiwAlDNAZi1LiTWKVn0W1vktOYAPPQU3hss5Tq2qNn6GNhodCQoRD_tvqCLdxhoCKnIQAvD_BwE', + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, 244907), 'is_active': True, 'prime_material_cost': None, + 'material_cost': 3.81938, 'labour_cost': 1.71304, 'labour_hours_per_unit': 0.11, 'plant_cost': 0.0, + 'total_cost': 5.53242, + 'notes': "We don't have a 170mm in SPONs so the material cost is based on the fact that the 170mm insulation is " + "87.4% of the cost of the 200mm insulation"}, + {'id': 1114, 'type': 'loft_insulation', 'description': 'Crown Loft Roll 44 glass fibre roll', 'depth': 200.0, + 'depth_unit': 'mm', 'cost': None, 'cost_unit': 'gbp_per_m2', 'r_value_per_mm': 0.022727273, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': 0.044, + 'thermal_conductivity_unit': 'watt_per_meter_kelvin', 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, 244907), 'is_active': True, 'prime_material_cost': 4.25, + 'material_cost': 4.37, 'labour_cost': 1.96, 'labour_hours_per_unit': 0.11, 'plant_cost': 0.0, 'total_cost': 6.33, + 'notes': None}, + {'id': 1115, 'type': 'loft_insulation', 'description': 'Crown Loft Roll 44 glass fibre roll', 'depth': 270.0, + 'depth_unit': 'mm', 'cost': None, 'cost_unit': 'gbp_per_m2', 'r_value_per_mm': 0.022727273, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': 0.044, + 'thermal_conductivity_unit': 'watt_per_meter_kelvin', 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, 244907), 'is_active': True, 'prime_material_cost': None, + 'material_cost': 5.91938, 'labour_cost': 1.96, 'labour_hours_per_unit': 0.11, 'plant_cost': 0.0, + 'total_cost': 7.87938, 'notes': 'This is the 100mm product + the 170mm product'}, + {'id': 1116, 'type': 'loft_insulation', 'description': 'Crown Loft Roll 44 glass fibre roll', 'depth': 300.0, + 'depth_unit': 'mm', 'cost': None, 'cost_unit': 'gbp_per_m2', 'r_value_per_mm': 0.022727273, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': 0.044, + 'thermal_conductivity_unit': 'watt_per_meter_kelvin', 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, 244907), 'is_active': True, 'prime_material_cost': None, + 'material_cost': 6.47, 'labour_cost': 1.96, 'labour_hours_per_unit': 0.11, 'plant_cost': 0.0, 'total_cost': 8.43, + 'notes': 'This is the 100mm product + the 200mm product'}, + {'id': 1117, 'type': 'loft_insulation', 'description': 'Isover Mineral Wool Modular Roll', 'depth': 100.0, + 'depth_unit': 'mm', 'cost': None, 'cost_unit': 'gbp_per_m2', 'r_value_per_mm': 0.023255814, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': 0.043, + 'thermal_conductivity_unit': 'watt_per_meter_kelvin', 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, 244907), 'is_active': True, 'prime_material_cost': 1.99, + 'material_cost': 2.05, 'labour_cost': 1.6, 'labour_hours_per_unit': 0.09, 'plant_cost': 0.0, 'total_cost': 3.65, + 'notes': None}, + {'id': 1118, 'type': 'loft_insulation', 'description': 'Isover Mineral Wool Modular Roll', 'depth': 150.0, + 'depth_unit': 'mm', 'cost': None, 'cost_unit': 'gbp_per_m2', 'r_value_per_mm': 0.023255814, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': 0.043, + 'thermal_conductivity_unit': 'watt_per_meter_kelvin', 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, 244907), 'is_active': True, 'prime_material_cost': 2.96, + 'material_cost': 3.05, 'labour_cost': 1.78, 'labour_hours_per_unit': 0.1, 'plant_cost': 0.0, 'total_cost': 4.83, + 'notes': None}, + {'id': 1119, 'type': 'loft_insulation', 'description': 'Isover Mineral Wool Modular Roll', 'depth': 170.0, + 'depth_unit': 'mm', 'cost': None, 'cost_unit': 'gbp_per_m2', 'r_value_per_mm': 0.023255814, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': 0.043, + 'thermal_conductivity_unit': 'watt_per_meter_kelvin', + 'link': 'https://flooringwarehousedirect.co.uk/product/isover-spacesaver-roll-170mm-x-1160mm-x-7-03m-8-15m2/', + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, 244907), 'is_active': True, 'prime_material_cost': None, + 'material_cost': 3.8706238, 'labour_cost': 2.281361, 'labour_hours_per_unit': 0.12816635, 'plant_cost': 0.0, + 'total_cost': 6.1519847, + 'notes': "We don't have a 170mm in SPONs so the material cost is based on the fact that the 170mm insulation is " + "85.4% of the cost of the 200mm insulation"}, + {'id': 1120, 'type': 'loft_insulation', 'description': 'Isover Mineral Wool Modular Roll', 'depth': 200.0, + 'depth_unit': 'mm', 'cost': None, 'cost_unit': 'gbp_per_m2', 'r_value_per_mm': 0.023255814, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': 0.043, + 'thermal_conductivity_unit': 'watt_per_meter_kelvin', 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, 244907), 'is_active': True, 'prime_material_cost': 4.4, + 'material_cost': 4.53, 'labour_cost': 2.67, 'labour_hours_per_unit': 0.15, 'plant_cost': 0.0, 'total_cost': 7.2, + 'notes': None}, + {'id': 1121, 'type': 'loft_insulation', 'description': 'Isover Mineral Wool Modular Roll', 'depth': 270.0, + 'depth_unit': 'mm', 'cost': None, 'cost_unit': 'gbp_per_m2', 'r_value_per_mm': 0.023255814, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': 0.043, + 'thermal_conductivity_unit': 'watt_per_meter_kelvin', 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, 244907), 'is_active': True, 'prime_material_cost': None, + 'material_cost': 5.920624, 'labour_cost': 2.67, 'labour_hours_per_unit': 0.15, 'plant_cost': 0.0, + 'total_cost': 8.590624, 'notes': 'This is the 100mm product + the 170mm product'}, + {'id': 1122, 'type': 'loft_insulation', 'description': 'Isover Mineral Wool Modular Roll', 'depth': 300.0, + 'depth_unit': 'mm', 'cost': None, 'cost_unit': 'gbp_per_m2', 'r_value_per_mm': 0.023255814, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': 0.043, + 'thermal_conductivity_unit': 'watt_per_meter_kelvin', 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, 244907), 'is_active': True, 'prime_material_cost': None, + 'material_cost': 6.58, 'labour_cost': 2.67, 'labour_hours_per_unit': 0.15, 'plant_cost': 0.0, 'total_cost': 9.25, + 'notes': 'This is the 100mm product + the 200mm product'}, + {'id': 1123, 'type': 'loft_insulation', 'description': 'Isover Acoustic Partition Roll', 'depth': 100.0, + 'depth_unit': 'mm', 'cost': None, 'cost_unit': 'gbp_per_m2', 'r_value_per_mm': 0.023255814, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': 0.043, + 'thermal_conductivity_unit': 'watt_per_meter_kelvin', 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, 244907), 'is_active': True, 'prime_material_cost': 5.93, + 'material_cost': 6.4, 'labour_cost': 2.67, 'labour_hours_per_unit': 0.15, 'plant_cost': 0.0, 'total_cost': 9.07, + 'notes': 'This provides acoustic insulation as well'}, + {'id': 1124, 'type': 'loft_insulation', 'description': 'Isover Acoustic Partition Roll', 'depth': 300.0, + 'depth_unit': 'mm', 'cost': None, 'cost_unit': 'gbp_per_m2', 'r_value_per_mm': 0.023255814, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': 0.043, + 'thermal_conductivity_unit': 'watt_per_meter_kelvin', 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, 244907), 'is_active': True, 'prime_material_cost': 17.79, + 'material_cost': 19.2, 'labour_cost': 2.67, 'labour_hours_per_unit': 0.15, 'plant_cost': 0.0, 'total_cost': 21.87, + 'notes': 'This provides acoustic insulation as well'}, + {'id': 1125, 'type': 'loft_insulation', 'description': 'Thermafleece EcoRoll Insulation', 'depth': 300.0, + 'depth_unit': 'mm', 'cost': None, 'cost_unit': 'gbp_per_m2', 'r_value_per_mm': 0.025641026, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': 0.039, + 'thermal_conductivity_unit': 'watt_per_meter_kelvin', 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, 244907), 'is_active': True, 'prime_material_cost': None, + 'material_cost': 24.78, 'labour_cost': 2.67, 'labour_hours_per_unit': 0.15, 'plant_cost': 0.0, 'total_cost': 27.45, + 'notes': 'This material is based on installing 3 layers of the 100mm product'}, + {'id': 1126, 'type': 'loft_insulation', 'description': 'Thermafleece EcoRoll Insulation', 'depth': 280.0, + 'depth_unit': 'mm', 'cost': None, 'cost_unit': 'gbp_per_m2', 'r_value_per_mm': 0.025641026, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': 0.039, + 'thermal_conductivity_unit': 'watt_per_meter_kelvin', 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, 244907), 'is_active': True, 'prime_material_cost': None, + 'material_cost': 23.36, 'labour_cost': 3.12, 'labour_hours_per_unit': 0.18, 'plant_cost': 0.0, 'total_cost': 26.48, + 'notes': 'This material is based on installed 2 layers of the 140mm product'}, + {'id': 1127, 'type': 'iwi_wall_demolition', + 'description': 'Solid & Dry Lined walls: Hack of wall finishes with chipping hammer; plaster to walls.', + 'depth': 0.0, 'depth_unit': None, 'cost': None, 'cost_unit': 'gbp_per_m2', 'r_value_per_mm': None, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': None, 'thermal_conductivity_unit': None, + 'link': 'SPONs', 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, 244907), 'is_active': True, + 'prime_material_cost': None, 'material_cost': 0.0, 'labour_cost': 10.27, 'labour_hours_per_unit': 0.33, + 'plant_cost': 1.28, 'total_cost': 11.55, 'notes': None}, {'id': 1128, 'type': 'iwi_wall_demolition', + 'description': 'Stud walls: Remove wall linings ' + 'including battening behind; ' + 'plasterboard and skim', + 'depth': 0.0, 'depth_unit': None, 'cost': None, + 'cost_unit': 'gbp_per_m2', 'r_value_per_mm': None, + 'r_value_unit': 'square_meter_kelvin_per_watt', + 'thermal_conductivity': None, + 'thermal_conductivity_unit': None, 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, + 244907), + 'is_active': True, 'prime_material_cost': None, + 'material_cost': 0.0, 'labour_cost': 6.23, + 'labour_hours_per_unit': 0.2, 'plant_cost': 1.25, + 'total_cost': 7.48, 'notes': None}, + {'id': 1129, 'type': 'iwi_wall_demolition', + 'description': 'Lathe and Plaster walls: Remove wall linings including battening behind; wood lath and plaster', + 'depth': 0.0, 'depth_unit': None, 'cost': None, 'cost_unit': 'gbp_per_m2', 'r_value_per_mm': None, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': None, 'thermal_conductivity_unit': None, + 'link': 'SPONs', 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, 244907), 'is_active': True, + 'prime_material_cost': None, 'material_cost': 0.0, 'labour_cost': 6.85, 'labour_hours_per_unit': 0.22, + 'plant_cost': 2.09, 'total_cost': 8.94, 'notes': None}, + {'id': 1130, 'type': 'internal_wall_insulation', 'description': 'Foamglas Grade F Wall Insulation Slabs', + 'depth': 60.0, 'depth_unit': 'mm', 'cost': None, 'cost_unit': 'gbp_per_m2', 'r_value_per_mm': 0.02631579, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': 0.038, + 'thermal_conductivity_unit': 'watt_per_meter_kelvin', 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, 244907), 'is_active': True, 'prime_material_cost': 41.69, + 'material_cost': 53.33, 'labour_cost': 29.52, 'labour_hours_per_unit': 1.25, 'plant_cost': 0.0, + 'total_cost': 82.85, 'notes': None}, + {'id': 1131, 'type': 'internal_wall_insulation', 'description': 'Foamglas Grade F Wall Insulation Slabs', + 'depth': 100.0, 'depth_unit': 'mm', 'cost': None, 'cost_unit': 'gbp_per_m2', 'r_value_per_mm': 0.02631579, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': 0.038, + 'thermal_conductivity_unit': 'watt_per_meter_kelvin', 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, 244907), 'is_active': True, 'prime_material_cost': 86.86, + 'material_cost': 99.85, 'labour_cost': 29.52, 'labour_hours_per_unit': 1.25, 'plant_cost': 0.0, + 'total_cost': 129.37, 'notes': None}, + {'id': 1132, 'type': 'internal_wall_insulation', 'description': 'Foamglas Grade F Wall Insulation Slabs', + 'depth': 150.0, 'depth_unit': 'mm', 'cost': None, 'cost_unit': 'gbp_per_m2', 'r_value_per_mm': 0.02631579, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': 0.038, + 'thermal_conductivity_unit': 'watt_per_meter_kelvin', 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, 244907), 'is_active': True, + 'prime_material_cost': 130.29, 'material_cost': 144.58, 'labour_cost': 29.52, 'labour_hours_per_unit': 1.25, + 'plant_cost': 0.0, 'total_cost': 174.1, 'notes': None}, + {'id': 1133, 'type': 'internal_wall_insulation', 'description': 'Ecotherm Eco-Versal PIR Insulation Board', + 'depth': 30.0, 'depth_unit': 'mm', 'cost': None, 'cost_unit': 'gbp_per_m2', 'r_value_per_mm': 0.045454547, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': 0.022, + 'thermal_conductivity_unit': 'watt_per_meter_kelvin', 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, 244907), 'is_active': True, 'prime_material_cost': 6.16, + 'material_cost': 16.73, 'labour_cost': 28.34, 'labour_hours_per_unit': 1.2, 'plant_cost': 0.0, 'total_cost': 45.07, + 'notes': None}, + {'id': 1134, 'type': 'internal_wall_insulation', 'description': 'Ecotherm Eco-Versal PIR Insulation Board', + 'depth': 50.0, 'depth_unit': 'mm', 'cost': None, 'cost_unit': 'gbp_per_m2', 'r_value_per_mm': 0.045454547, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': 0.022, + 'thermal_conductivity_unit': 'watt_per_meter_kelvin', 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, 244907), 'is_active': True, 'prime_material_cost': 8.46, + 'material_cost': 19.1, 'labour_cost': 28.34, 'labour_hours_per_unit': 1.2, 'plant_cost': 0.0, 'total_cost': 47.44, + 'notes': None}, + {'id': 1135, 'type': 'internal_wall_insulation', 'description': 'Ecotherm Eco-Versal PIR Insulation Board', + 'depth': 100.0, 'depth_unit': 'mm', 'cost': None, 'cost_unit': 'gbp_per_m2', 'r_value_per_mm': 0.045454547, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': 0.022, + 'thermal_conductivity_unit': 'watt_per_meter_kelvin', 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, 244907), 'is_active': True, 'prime_material_cost': 15.12, + 'material_cost': 25.96, 'labour_cost': 30.7, 'labour_hours_per_unit': 1.3, 'plant_cost': 0.0, 'total_cost': 56.66, + 'notes': None}, + {'id': 1136, 'type': 'internal_wall_insulation', 'description': 'Kingspan Kooltherm K18 insulated plasterboard', + 'depth': 37.5, 'depth_unit': 'mm', 'cost': None, 'cost_unit': 'gbp_per_m2', 'r_value_per_mm': 0.04761905, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': 0.021, + 'thermal_conductivity_unit': 'watt_per_meter_kelvin', 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, 244907), 'is_active': True, 'prime_material_cost': None, + 'material_cost': 26.86, 'labour_cost': 5.21, 'labour_hours_per_unit': 0.23, 'plant_cost': 0.0, 'total_cost': 32.07, + 'notes': None}, + {'id': 1137, 'type': 'internal_wall_insulation', 'description': 'Kingspan Kooltherm K18 insulated plasterboard', + 'depth': 42.5, 'depth_unit': 'mm', 'cost': None, 'cost_unit': 'gbp_per_m2', 'r_value_per_mm': 0.04761905, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': 0.021, + 'thermal_conductivity_unit': 'watt_per_meter_kelvin', 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, 244907), 'is_active': True, 'prime_material_cost': None, + 'material_cost': 17.37, 'labour_cost': 5.21, 'labour_hours_per_unit': 0.23, 'plant_cost': 0.0, 'total_cost': 22.58, + 'notes': None}, + {'id': 1138, 'type': 'internal_wall_insulation', 'description': 'Kingspan Kooltherm K18 insulated plasterboard', + 'depth': 52.5, 'depth_unit': 'mm', 'cost': None, 'cost_unit': 'gbp_per_m2', 'r_value_per_mm': 0.04761905, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': 0.021, + 'thermal_conductivity_unit': 'watt_per_meter_kelvin', 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, 244907), 'is_active': True, 'prime_material_cost': None, + 'material_cost': 21.74, 'labour_cost': 5.79, 'labour_hours_per_unit': 0.25, 'plant_cost': 0.0, 'total_cost': 27.53, + 'notes': None}, + {'id': 1139, 'type': 'internal_wall_insulation', 'description': 'Kingspan Kooltherm K18 insulated plasterboard', + 'depth': 62.5, 'depth_unit': 'mm', 'cost': None, 'cost_unit': 'gbp_per_m2', 'r_value_per_mm': 0.04761905, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': 0.021, + 'thermal_conductivity_unit': 'watt_per_meter_kelvin', 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, 244907), 'is_active': True, 'prime_material_cost': None, + 'material_cost': 19.3, 'labour_cost': 5.79, 'labour_hours_per_unit': 0.25, 'plant_cost': 0.0, 'total_cost': 25.09, + 'notes': None}, + {'id': 1140, 'type': 'internal_wall_insulation', 'description': 'Kingspan Kooltherm K18 insulated plasterboard', + 'depth': 72.5, 'depth_unit': 'mm', 'cost': None, 'cost_unit': 'gbp_per_m2', 'r_value_per_mm': 0.04761905, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': 0.021, + 'thermal_conductivity_unit': 'watt_per_meter_kelvin', 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, 244907), 'is_active': True, 'prime_material_cost': None, + 'material_cost': 23.15, 'labour_cost': 5.79, 'labour_hours_per_unit': 0.25, 'plant_cost': 0.0, 'total_cost': 28.94, + 'notes': None}, + {'id': 1141, 'type': 'iwi_vapour_barrier', 'description': 'Visqueen High Performance Vapour Barrier', 'depth': 0.0, + 'depth_unit': None, 'cost': None, 'cost_unit': None, 'r_value_per_mm': None, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': None, 'thermal_conductivity_unit': None, + 'link': 'SPONs', 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, 244907), 'is_active': True, + 'prime_material_cost': 0.58, 'material_cost': 1.21, 'labour_cost': 0.48, 'labour_hours_per_unit': 0.02, + 'plant_cost': 0.0, 'total_cost': 1.69, 'notes': None}, {'id': 1142, 'type': 'iwi_redecoration', + 'description': 'Plaster; one coat Thistle board finish ' + 'or other equal; steel trowelled; 3 mm ' + 'thick work to walls or ceilings; one ' + 'coat; to plasterboard base; over 600mm ' + 'wide', + 'depth': 0.0, 'depth_unit': None, 'cost': None, + 'cost_unit': None, 'r_value_per_mm': None, + 'r_value_unit': 'square_meter_kelvin_per_watt', + 'thermal_conductivity': None, + 'thermal_conductivity_unit': None, 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, + 244907), 'is_active': True, + 'prime_material_cost': None, 'material_cost': 0.06, + 'labour_cost': 6.58, 'labour_hours_per_unit': 0.25, + 'plant_cost': 0.0, 'total_cost': 6.64, 'notes': None}, + {'id': 1143, 'type': 'iwi_redecoration', + 'description': 'Two coats emulsion paint on plaster, over 40mm girth; 3.5m - 5m high', 'depth': 0.0, + 'depth_unit': None, 'cost': None, 'cost_unit': None, 'r_value_per_mm': None, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': None, 'thermal_conductivity_unit': None, + 'link': 'SPONs', 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, 244907), 'is_active': True, + 'prime_material_cost': None, 'material_cost': 0.41, 'labour_cost': 3.93, 'labour_hours_per_unit': 0.21, + 'plant_cost': 0.0, 'total_cost': 4.34, 'notes': None}, {'id': 1144, 'type': 'iwi_redecoration', + 'description': 'Fitting existing softwood skirting or ' + 'architrave to new frames; 150mm high', + 'depth': 0.0, 'depth_unit': None, 'cost': None, + 'cost_unit': None, 'r_value_per_mm': None, + 'r_value_unit': 'square_meter_kelvin_per_watt', + 'thermal_conductivity': None, + 'thermal_conductivity_unit': None, 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, + 244907), 'is_active': True, + 'prime_material_cost': None, 'material_cost': 0.01, + 'labour_cost': 4.87, 'labour_hours_per_unit': 0.12, + 'plant_cost': 0.0, 'total_cost': 4.88, 'notes': None}, + {'id': 1145, 'type': 'suspended_floor_demolition', 'description': 'Removal of carpet and underfelt', 'depth': 0.0, + 'depth_unit': None, 'cost': None, 'cost_unit': None, 'r_value_per_mm': None, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': None, 'thermal_conductivity_unit': None, + 'link': 'SPONs', 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, 244907), 'is_active': True, + 'prime_material_cost': None, 'material_cost': 0.0, 'labour_cost': 3.32, 'labour_hours_per_unit': 0.11, + 'plant_cost': 0.0, 'total_cost': 3.32, + 'notes': 'We ignore the plant cost that is in SPONs because we assume the carpet is not scrapped and therefore ' + 'there is no need for a skip'}, + {'id': 1146, 'type': 'suspended_floor_demolition', + 'description': 'Remove boarding; withdraw nails; set aside for reuse; ground level', 'depth': 0.0, + 'depth_unit': None, 'cost': None, 'cost_unit': None, 'r_value_per_mm': None, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': None, 'thermal_conductivity_unit': None, + 'link': 'SPONs', 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, 244907), 'is_active': True, + 'prime_material_cost': None, 'material_cost': 0.0, 'labour_cost': 9.34, 'labour_hours_per_unit': 0.3, + 'plant_cost': 0.0, 'total_cost': 9.34, 'notes': None}, + {'id': 1147, 'type': 'suspended_floor_vapour_barrier', 'description': 'Visqueen High Performance Vapour Barrier', + 'depth': 0.0, 'depth_unit': None, 'cost': None, 'cost_unit': None, 'r_value_per_mm': None, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': None, 'thermal_conductivity_unit': None, + 'link': 'SPONs', 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, 244907), 'is_active': True, + 'prime_material_cost': 0.58, 'material_cost': 1.21, 'labour_cost': 0.48, 'labour_hours_per_unit': 0.02, + 'plant_cost': 0.0, 'total_cost': 1.69, 'notes': None}, + {'id': 1148, 'type': 'suspended_floor_insulation', 'description': 'Thermafleece CosyWool Roll', 'depth': 50.0, + 'depth_unit': 'mm', 'cost': None, 'cost_unit': 'gbp_per_m2', 'r_value_per_mm': 0.025641026, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': 0.039, + 'thermal_conductivity_unit': 'watt_per_meter_kelvin', 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, 244907), 'is_active': True, 'prime_material_cost': None, + 'material_cost': 4.24, 'labour_cost': 1.56, 'labour_hours_per_unit': 0.09, 'plant_cost': 0.0, 'total_cost': 5.8, + 'notes': 'Spons did not contain labour costs so we use values for similar insulations. We use the same values as ' + 'in Crown loft roll 44, since it is also an insulation roll'}, + {'id': 1149, 'type': 'suspended_floor_insulation', 'description': 'Thermafleece CosyWool Roll', 'depth': 75.0, + 'depth_unit': 'mm', 'cost': None, 'cost_unit': 'gbp_per_m2', 'r_value_per_mm': 0.025641026, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': 0.039, + 'thermal_conductivity_unit': 'watt_per_meter_kelvin', 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, 244907), 'is_active': True, 'prime_material_cost': None, + 'material_cost': 6.31, 'labour_cost': 1.56, 'labour_hours_per_unit': 0.09, 'plant_cost': 0.0, 'total_cost': 7.87, + 'notes': 'Spons did not contain labour costs so we use values for similar insulations. We use the same values as ' + 'in Crown loft roll 44, since it is also an insulation roll'}, + {'id': 1150, 'type': 'suspended_floor_insulation', 'description': 'Thermafleece CosyWool Roll', 'depth': 100.0, + 'depth_unit': 'mm', 'cost': None, 'cost_unit': 'gbp_per_m2', 'r_value_per_mm': 0.025641026, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': 0.039, + 'thermal_conductivity_unit': 'watt_per_meter_kelvin', 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, 244907), 'is_active': True, 'prime_material_cost': None, + 'material_cost': 8.26, 'labour_cost': 1.56, 'labour_hours_per_unit': 0.1, 'plant_cost': 0.0, 'total_cost': 9.82, + 'notes': 'Spons did not contain labour costs so we use values for similar insulations. We use the same values as ' + 'in Crown loft roll 44, since it is also an insulation roll'}, + {'id': 1151, 'type': 'suspended_floor_insulation', 'description': 'Thermafleece CosyWool Roll', 'depth': 140.0, + 'depth_unit': 'mm', 'cost': None, 'cost_unit': 'gbp_per_m2', 'r_value_per_mm': 0.025641026, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': 0.039, + 'thermal_conductivity_unit': 'watt_per_meter_kelvin', 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, 244907), 'is_active': True, 'prime_material_cost': None, + 'material_cost': 11.68, 'labour_cost': 1.78, 'labour_hours_per_unit': 0.1, 'plant_cost': 0.0, 'total_cost': 13.46, + 'notes': 'Spons did not contain labour costs so we use values for similar insulations. We use the same values as ' + 'in Crown loft roll 44, since it is also an insulation roll'}, + {'id': 1152, 'type': 'suspended_floor_insulation', + 'description': 'Thermafleece TF35 high density wool insulating batts', 'depth': 50.0, 'depth_unit': 'mm', + 'cost': None, 'cost_unit': 'gbp_per_m2', 'r_value_per_mm': 0.028571429, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': 0.035, + 'thermal_conductivity_unit': 'watt_per_meter_kelvin', 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, 244907), 'is_active': True, 'prime_material_cost': None, + 'material_cost': 6.63, 'labour_cost': 1.56, 'labour_hours_per_unit': 0.09, 'plant_cost': 0.0, 'total_cost': 8.19, + 'notes': 'Spons did not contain labour costs so we use values for similar insulations. We use the same values as ' + 'in Crown loft roll 44, since it is also an insulation roll'}, + {'id': 1153, 'type': 'suspended_floor_insulation', + 'description': 'Thermafleece TF35 high density wool insulating batts', 'depth': 75.0, 'depth_unit': 'mm', + 'cost': None, 'cost_unit': 'gbp_per_m2', 'r_value_per_mm': 0.028571429, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': 0.035, + 'thermal_conductivity_unit': 'watt_per_meter_kelvin', 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, 244907), 'is_active': True, 'prime_material_cost': None, + 'material_cost': 10.31, 'labour_cost': 1.56, 'labour_hours_per_unit': 0.09, 'plant_cost': 0.0, 'total_cost': 11.87, + 'notes': 'Spons did not contain labour costs so we use values for similar insulations. We use the same values as ' + 'in Crown loft roll 44, since it is also an insulation roll'}, + {'id': 1154, 'type': 'suspended_floor_insulation', + 'description': 'Ecotherm Eco-Versal General Purpose Insulation Board', 'depth': 30.0, 'depth_unit': 'mm', + 'cost': None, 'cost_unit': 'gbp_per_m2', 'r_value_per_mm': 0.045454547, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': 0.022, + 'thermal_conductivity_unit': 'watt_per_meter_kelvin', 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, 244907), 'is_active': True, 'prime_material_cost': 6.16, + 'material_cost': 16.73, 'labour_cost': 28.34, 'labour_hours_per_unit': 1.2, 'plant_cost': 0.0, 'total_cost': 45.07, + 'notes': None}, {'id': 1155, 'type': 'suspended_floor_insulation', + 'description': 'Ecotherm Eco-Versal General Purpose Insulation Board', 'depth': 50.0, + 'depth_unit': 'mm', 'cost': None, 'cost_unit': 'gbp_per_m2', 'r_value_per_mm': 0.045454547, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': 0.022, + 'thermal_conductivity_unit': 'watt_per_meter_kelvin', 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, 244907), 'is_active': True, + 'prime_material_cost': 8.46, 'material_cost': 19.1, 'labour_cost': 28.34, + 'labour_hours_per_unit': 1.2, 'plant_cost': 0.0, 'total_cost': 47.44, 'notes': None}, + {'id': 1156, 'type': 'suspended_floor_insulation', + 'description': 'Ecotherm Eco-Versal General Purpose Insulation Board', 'depth': 100.0, 'depth_unit': 'mm', + 'cost': None, 'cost_unit': 'gbp_per_m2', 'r_value_per_mm': 0.045454547, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': 0.022, + 'thermal_conductivity_unit': 'watt_per_meter_kelvin', 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, 244907), 'is_active': True, 'prime_material_cost': 15.12, + 'material_cost': 25.96, 'labour_cost': 30.7, 'labour_hours_per_unit': 1.3, 'plant_cost': 0.0, 'total_cost': 56.66, + 'notes': None}, {'id': 1157, 'type': 'suspended_floor_insulation', + 'description': 'Ecotherm Eco-Versal General Purpose Insulation Board', 'depth': 150.0, + 'depth_unit': 'mm', 'cost': None, 'cost_unit': 'gbp_per_m2', 'r_value_per_mm': 0.045454547, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': 0.022, + 'thermal_conductivity_unit': 'watt_per_meter_kelvin', 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, 244907), 'is_active': True, + 'prime_material_cost': 23.53, 'material_cost': 34.62, 'labour_cost': 33.06, + 'labour_hours_per_unit': 1.4, 'plant_cost': 0.0, 'total_cost': 67.68, 'notes': None}, + {'id': 1158, 'type': 'suspended_floor_insulation', 'description': 'Crown Loft Roll 44 glass fibre roll', + 'depth': 100.0, 'depth_unit': 'mm', 'cost': None, 'cost_unit': 'gbp_per_unit', 'r_value_per_mm': 0.022727273, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': 0.044, + 'thermal_conductivity_unit': 'watt_per_meter_kelvin', 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, 244907), 'is_active': True, 'prime_material_cost': 2.03, + 'material_cost': 2.1, 'labour_cost': 1.56, 'labour_hours_per_unit': 0.09, 'plant_cost': 0.0, 'total_cost': 3.66, + 'notes': None}, + {'id': 1159, 'type': 'suspended_floor_insulation', 'description': 'Crown Loft Roll 44 glass fibre roll', + 'depth': 150.0, 'depth_unit': 'mm', 'cost': None, 'cost_unit': 'gbp_per_unit', 'r_value_per_mm': 0.022727273, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': 0.044, + 'thermal_conductivity_unit': 'watt_per_meter_kelvin', 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, 244907), 'is_active': True, 'prime_material_cost': 3.06, + 'material_cost': 3.16, 'labour_cost': 1.78, 'labour_hours_per_unit': 0.1, 'plant_cost': 0.0, 'total_cost': 4.94, + 'notes': None}, + {'id': 1160, 'type': 'suspended_floor_insulation', 'description': 'Crown Loft Roll 44 glass fibre roll', + 'depth': 200.0, 'depth_unit': 'mm', 'cost': None, 'cost_unit': 'gbp_per_unit', 'r_value_per_mm': 0.022727273, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': 0.044, + 'thermal_conductivity_unit': 'watt_per_meter_kelvin', 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, 244907), 'is_active': True, 'prime_material_cost': 4.25, + 'material_cost': 4.37, 'labour_cost': 1.96, 'labour_hours_per_unit': 0.11, 'plant_cost': 0.0, 'total_cost': 6.33, + 'notes': None}, + {'id': 1161, 'type': 'suspended_floor_insulation', 'description': 'Isover Mineral Wool Modular Roll', + 'depth': 100.0, 'depth_unit': 'mm', 'cost': None, 'cost_unit': 'gbp_per_unit', 'r_value_per_mm': 0.023255814, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': 0.043, + 'thermal_conductivity_unit': 'watt_per_meter_kelvin', 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, 244907), 'is_active': True, 'prime_material_cost': 1.99, + 'material_cost': 2.05, 'labour_cost': 1.6, 'labour_hours_per_unit': 0.09, 'plant_cost': 0.0, 'total_cost': 3.65, + 'notes': None}, + {'id': 1162, 'type': 'suspended_floor_insulation', 'description': 'Isover Mineral Wool Modular Roll', + 'depth': 150.0, 'depth_unit': 'mm', 'cost': None, 'cost_unit': 'gbp_per_unit', 'r_value_per_mm': 0.023255814, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': 0.043, + 'thermal_conductivity_unit': 'watt_per_meter_kelvin', 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, 244907), 'is_active': True, 'prime_material_cost': 2.96, + 'material_cost': 3.05, 'labour_cost': 1.78, 'labour_hours_per_unit': 0.1, 'plant_cost': 0.0, 'total_cost': 4.83, + 'notes': None}, + {'id': 1163, 'type': 'suspended_floor_insulation', 'description': 'Isover Mineral Wool Modular Roll', + 'depth': 200.0, 'depth_unit': 'mm', 'cost': None, 'cost_unit': 'gbp_per_unit', 'r_value_per_mm': 0.023255814, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': 0.043, + 'thermal_conductivity_unit': 'watt_per_meter_kelvin', 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, 244907), 'is_active': True, 'prime_material_cost': 4.4, + 'material_cost': 4.53, 'labour_cost': 2.67, 'labour_hours_per_unit': 0.15, 'plant_cost': 0.0, 'total_cost': 7.2, + 'notes': None}, + {'id': 1164, 'type': 'suspended_floor_insulation', 'description': 'Isover Acoustic Partition Roll', 'depth': 25.0, + 'depth_unit': 'mm', 'cost': None, 'cost_unit': 'gbp_per_unit', 'r_value_per_mm': 0.025641026, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': 0.039, + 'thermal_conductivity_unit': 'watt_per_meter_kelvin', 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, 244907), 'is_active': True, 'prime_material_cost': 1.67, + 'material_cost': 2.01, 'labour_cost': 1.43, 'labour_hours_per_unit': 0.08, 'plant_cost': 0.0, 'total_cost': 3.44, + 'notes': None}, + {'id': 1165, 'type': 'suspended_floor_insulation', 'description': 'Isover Acoustic Partition Roll', 'depth': 50.0, + 'depth_unit': 'mm', 'cost': None, 'cost_unit': 'gbp_per_unit', 'r_value_per_mm': 0.025641026, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': 0.039, + 'thermal_conductivity_unit': 'watt_per_meter_kelvin', 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, 244907), 'is_active': True, 'prime_material_cost': 2.74, + 'material_cost': 3.11, 'labour_cost': 1.6, 'labour_hours_per_unit': 0.09, 'plant_cost': 0.0, 'total_cost': 4.71, + 'notes': None}, + {'id': 1166, 'type': 'suspended_floor_insulation', 'description': 'Isover Acoustic Partition Roll', 'depth': 75.0, + 'depth_unit': 'mm', 'cost': None, 'cost_unit': 'gbp_per_unit', 'r_value_per_mm': 0.023255814, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': 0.043, + 'thermal_conductivity_unit': 'watt_per_meter_kelvin', 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, 244907), 'is_active': True, 'prime_material_cost': 4.57, + 'material_cost': 5.01, 'labour_cost': 1.78, 'labour_hours_per_unit': 0.1, 'plant_cost': 0.0, 'total_cost': 6.79, + 'notes': None}, + {'id': 1167, 'type': 'suspended_floor_insulation', 'description': 'Isover Acoustic Partition Roll', 'depth': 100.0, + 'depth_unit': 'mm', 'cost': None, 'cost_unit': 'gbp_per_unit', 'r_value_per_mm': 0.023255814, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': 0.043, + 'thermal_conductivity_unit': 'watt_per_meter_kelvin', 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, 244907), 'is_active': True, 'prime_material_cost': 5.93, + 'material_cost': 6.4, 'labour_cost': 2.67, 'labour_hours_per_unit': 0.15, 'plant_cost': 0.0, 'total_cost': 9.07, + 'notes': None}, + {'id': 1168, 'type': 'suspended_floor_insulation', 'description': 'Kay-Cel Expanded Polystyrene Board', + 'depth': 25.0, 'depth_unit': 'mm', 'cost': None, 'cost_unit': 'gbp_per_m2', 'r_value_per_mm': 0.030303031, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': 0.033, + 'thermal_conductivity_unit': 'watt_per_meter_kelvin', 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, 244907), 'is_active': True, 'prime_material_cost': None, + 'material_cost': 3.88, 'labour_cost': 3.24, 'labour_hours_per_unit': 0.14, 'plant_cost': 0.0, 'total_cost': 7.12, + 'notes': None}, + {'id': 1169, 'type': 'suspended_floor_insulation', 'description': 'Kay-Cel Expanded Polystyrene Board', + 'depth': 50.0, 'depth_unit': 'mm', 'cost': None, 'cost_unit': 'gbp_per_m2', 'r_value_per_mm': 0.030303031, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': 0.033, + 'thermal_conductivity_unit': 'watt_per_meter_kelvin', 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, 244907), 'is_active': True, 'prime_material_cost': None, + 'material_cost': 6.62, 'labour_cost': 3.71, 'labour_hours_per_unit': 0.16, 'plant_cost': 0.0, 'total_cost': 10.33, + 'notes': None}, + {'id': 1170, 'type': 'suspended_floor_insulation', 'description': 'Kay-Cel Expanded Polystyrene Board', + 'depth': 75.0, 'depth_unit': 'mm', 'cost': None, 'cost_unit': 'gbp_per_m2', 'r_value_per_mm': 0.030303031, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': 0.033, + 'thermal_conductivity_unit': 'watt_per_meter_kelvin', 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, 244907), 'is_active': True, 'prime_material_cost': None, + 'material_cost': 9.3, 'labour_cost': 4.17, 'labour_hours_per_unit': 0.18, 'plant_cost': 0.0, 'total_cost': 13.47, + 'notes': None}, + {'id': 1171, 'type': 'suspended_floor_insulation', 'description': 'Kay-Cel Expanded Polystyrene Board', + 'depth': 100.0, 'depth_unit': 'mm', 'cost': None, 'cost_unit': 'gbp_per_m2', 'r_value_per_mm': 0.030303031, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': 0.033, + 'thermal_conductivity_unit': 'watt_per_meter_kelvin', 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, 244907), 'is_active': True, 'prime_material_cost': None, + 'material_cost': 12.02, 'labour_cost': 4.4, 'labour_hours_per_unit': 0.19, 'plant_cost': 0.0, 'total_cost': 16.42, + 'notes': None}, {'id': 1172, 'type': 'suspended_floor_insulation', + 'description': 'Kingspan Thermafloor TF70 High Performance Rigid Floor Insulation', 'depth': 50.0, + 'depth_unit': 'mm', 'cost': None, 'cost_unit': 'gbp_per_m2', 'r_value_per_mm': 0.045454547, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': 0.022, + 'thermal_conductivity_unit': 'watt_per_meter_kelvin', 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, 244907), 'is_active': True, + 'prime_material_cost': None, 'material_cost': 10.36, 'labour_cost': 4.06, + 'labour_hours_per_unit': 0.18, 'plant_cost': 0.0, 'total_cost': 14.42, 'notes': None}, + {'id': 1173, 'type': 'suspended_floor_insulation', + 'description': 'Kingspan Thermafloor TF70 High Performance Rigid Floor Insulation', 'depth': 75.0, + 'depth_unit': 'mm', 'cost': None, 'cost_unit': 'gbp_per_m2', 'r_value_per_mm': 0.045454547, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': 0.022, + 'thermal_conductivity_unit': 'watt_per_meter_kelvin', 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, 244907), 'is_active': True, 'prime_material_cost': None, + 'material_cost': 15.35, 'labour_cost': 4.06, 'labour_hours_per_unit': 0.18, 'plant_cost': 0.0, 'total_cost': 19.41, + 'notes': None}, {'id': 1174, 'type': 'suspended_floor_insulation', + 'description': 'Kingspan Thermafloor TF70 High Performance Rigid Floor Insulation', + 'depth': 100.0, 'depth_unit': 'mm', 'cost': None, 'cost_unit': 'gbp_per_m2', + 'r_value_per_mm': 0.045454547, 'r_value_unit': 'square_meter_kelvin_per_watt', + 'thermal_conductivity': 0.022, 'thermal_conductivity_unit': 'watt_per_meter_kelvin', + 'link': 'SPONs', 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, 244907), + 'is_active': True, 'prime_material_cost': None, 'material_cost': 19.17, 'labour_cost': 4.06, + 'labour_hours_per_unit': 0.18, 'plant_cost': 0.0, 'total_cost': 23.23, 'notes': None}, + {'id': 1175, 'type': 'suspended_floor_insulation', + 'description': 'Kingspan Thermafloor TF70 High Performance Rigid Floor Insulation', 'depth': 125.0, + 'depth_unit': 'mm', 'cost': None, 'cost_unit': 'gbp_per_m2', 'r_value_per_mm': 0.045454547, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': 0.022, + 'thermal_conductivity_unit': 'watt_per_meter_kelvin', 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, 244907), 'is_active': True, 'prime_material_cost': None, + 'material_cost': 26.59, 'labour_cost': 4.06, 'labour_hours_per_unit': 0.18, 'plant_cost': 0.0, 'total_cost': 30.65, + 'notes': None}, {'id': 1176, 'type': 'suspended_floor_insulation', + 'description': 'Kingspan Thermafloor TF70 High Performance Rigid Floor Insulation', + 'depth': 150.0, 'depth_unit': 'mm', 'cost': None, 'cost_unit': 'gbp_per_m2', + 'r_value_per_mm': 0.045454547, 'r_value_unit': 'square_meter_kelvin_per_watt', + 'thermal_conductivity': 0.022, 'thermal_conductivity_unit': 'watt_per_meter_kelvin', + 'link': 'SPONs', 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, 244907), + 'is_active': True, 'prime_material_cost': None, 'material_cost': 31.13, 'labour_cost': 4.64, + 'labour_hours_per_unit': 0.2, 'plant_cost': 0.0, 'total_cost': 35.77, 'notes': None}, + {'id': 1177, 'type': 'suspended_floor_redecoration', 'description': 'refix floorboards previously set aside', + 'depth': 0.0, 'depth_unit': None, 'cost': None, 'cost_unit': None, 'r_value_per_mm': None, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': None, 'thermal_conductivity_unit': None, + 'link': 'SPONs', 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, 244907), 'is_active': True, + 'prime_material_cost': None, 'material_cost': 1.54, 'labour_cost': 24.98, 'labour_hours_per_unit': 0.74, + 'plant_cost': 0.0, 'total_cost': 26.52, 'notes': None}, + {'id': 1178, 'type': 'suspended_floor_redecoration', 'description': 'Fitting carpet', 'depth': 0.0, + 'depth_unit': None, 'cost': None, 'cost_unit': None, 'r_value_per_mm': None, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': None, 'thermal_conductivity_unit': None, + 'link': 'SPONs', 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, 244907), 'is_active': True, + 'prime_material_cost': None, 'material_cost': 0.0, 'labour_cost': 6.59, 'labour_hours_per_unit': 0.37, + 'plant_cost': 0.0, 'total_cost': 6.59, + 'notes': 'SPONs does not have data on re-fitting the carpet so we use the data in Fitted carpeting; Gradus woven ' + 'polypropylene tufted loop\n\n as a baseline. We assume re-use of carpets, therefore we need just ' + 'labour rates'}, + {'id': 1179, 'type': 'solid_floor_demolition', 'description': 'Removal of carpet and underfelt', 'depth': 0.0, + 'depth_unit': None, 'cost': None, 'cost_unit': None, 'r_value_per_mm': None, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': None, 'thermal_conductivity_unit': None, + 'link': 'SPONs', 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, 244907), 'is_active': True, + 'prime_material_cost': None, 'material_cost': 0.0, 'labour_cost': 3.32, 'labour_hours_per_unit': 0.11, + 'plant_cost': 0.0, 'total_cost': 3.32, + 'notes': 'We ignore the plant cost that is in SPONs because we assume the carpet is not scrapped and therefore ' + 'there is no need for a skip'}, + {'id': 1180, 'type': 'solid_floor_preparation', + 'description': 'clean surface of concrete to receive new damp-proof membrane', 'depth': 0.0, 'depth_unit': None, + 'cost': None, 'cost_unit': None, 'r_value_per_mm': None, 'r_value_unit': 'square_meter_kelvin_per_watt', + 'thermal_conductivity': None, 'thermal_conductivity_unit': None, 'link': None, + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, 244907), 'is_active': True, 'prime_material_cost': None, + 'material_cost': 0.0, 'labour_cost': 4.36, 'labour_hours_per_unit': 0.14, 'plant_cost': 0.0, 'total_cost': 4.36, + 'notes': None}, {'id': 1181, 'type': 'solid_floor_preparation', + 'description': 'Clean out crack to form a 20mm×20mm groove and fill with cement: mortar mixed ' + 'with bonding agent', + 'depth': 0.0, 'depth_unit': None, 'cost': None, 'cost_unit': None, 'r_value_per_mm': None, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': None, + 'thermal_conductivity_unit': None, 'link': None, + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, 244907), 'is_active': True, + 'prime_material_cost': None, 'material_cost': 6.91, 'labour_cost': 18.99, + 'labour_hours_per_unit': 0.61, 'plant_cost': 0.16, 'total_cost': 26.06, + 'notes': 'This step is the assessment and repair of any damage to the concrete floor such as ' + 'filling cracks or levelling uneven areas'}, + {'id': 1182, 'type': 'solid_floor_vapour_barrier', 'description': 'Visqueen High Performance Vapour Barrier', + 'depth': 0.0, 'depth_unit': None, 'cost': None, 'cost_unit': None, 'r_value_per_mm': None, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': None, 'thermal_conductivity_unit': None, + 'link': 'SPONs', 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, 244907), 'is_active': True, + 'prime_material_cost': 0.58, 'material_cost': 1.21, 'labour_cost': 0.48, 'labour_hours_per_unit': 0.02, + 'plant_cost': 0.0, 'total_cost': 1.69, 'notes': None}, + {'id': 1183, 'type': 'solid_floor_insulation', 'description': 'Kay-Cel Expanded Polystyrene Board', 'depth': 25.0, + 'depth_unit': 'mm', 'cost': None, 'cost_unit': 'gbp_per_m2', 'r_value_per_mm': 0.030303031, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': 0.033, + 'thermal_conductivity_unit': 'watt_per_meter_kelvin', 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, 244907), 'is_active': True, 'prime_material_cost': None, + 'material_cost': 3.88, 'labour_cost': 3.24, 'labour_hours_per_unit': 0.14, 'plant_cost': 0.0, 'total_cost': 7.12, + 'notes': None}, + {'id': 1184, 'type': 'solid_floor_insulation', 'description': 'Kay-Cel Expanded Polystyrene Board', 'depth': 50.0, + 'depth_unit': 'mm', 'cost': None, 'cost_unit': 'gbp_per_m2', 'r_value_per_mm': 0.030303031, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': 0.033, + 'thermal_conductivity_unit': 'watt_per_meter_kelvin', 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, 244907), 'is_active': True, 'prime_material_cost': None, + 'material_cost': 6.62, 'labour_cost': 3.71, 'labour_hours_per_unit': 0.16, 'plant_cost': 0.0, 'total_cost': 10.33, + 'notes': None}, + {'id': 1185, 'type': 'solid_floor_insulation', 'description': 'Kay-Cel Expanded Polystyrene Board', 'depth': 75.0, + 'depth_unit': 'mm', 'cost': None, 'cost_unit': 'gbp_per_m2', 'r_value_per_mm': 0.030303031, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': 0.033, + 'thermal_conductivity_unit': 'watt_per_meter_kelvin', 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, 244907), 'is_active': True, 'prime_material_cost': None, + 'material_cost': 9.3, 'labour_cost': 4.17, 'labour_hours_per_unit': 0.18, 'plant_cost': 0.0, 'total_cost': 13.47, + 'notes': None}, {'id': 1186, 'type': 'solid_floor_insulation', + 'description': 'Kingspan Thermafloor TF70 High Performance Rigid Floor Insulation', 'depth': 50.0, + 'depth_unit': 'mm', 'cost': None, 'cost_unit': 'gbp_per_m2', 'r_value_per_mm': 0.045454547, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': 0.022, + 'thermal_conductivity_unit': 'watt_per_meter_kelvin', 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, 244907), 'is_active': True, + 'prime_material_cost': None, 'material_cost': 10.36, 'labour_cost': 4.06, + 'labour_hours_per_unit': 0.18, 'plant_cost': 0.0, 'total_cost': 14.42, 'notes': None}, + {'id': 1187, 'type': 'solid_floor_insulation', + 'description': 'Kingspan Thermafloor TF70 High Performance Rigid Floor Insulation', 'depth': 75.0, + 'depth_unit': 'mm', 'cost': None, 'cost_unit': 'gbp_per_m2', 'r_value_per_mm': 0.045454547, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': 0.022, + 'thermal_conductivity_unit': 'watt_per_meter_kelvin', 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, 244907), 'is_active': True, 'prime_material_cost': None, + 'material_cost': 15.35, 'labour_cost': 4.06, 'labour_hours_per_unit': 0.18, 'plant_cost': 0.0, 'total_cost': 19.41, + 'notes': None}, {'id': 1188, 'type': 'solid_floor_insulation', + 'description': 'Ecotherm Eco-Versal General Purpose Insulation Board', 'depth': 30.0, + 'depth_unit': 'mm', 'cost': None, 'cost_unit': 'gbp_per_m2', 'r_value_per_mm': 0.045454547, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': 0.022, + 'thermal_conductivity_unit': 'watt_per_meter_kelvin', 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, 244907), 'is_active': True, + 'prime_material_cost': 6.16, 'material_cost': 16.73, 'labour_cost': 28.34, + 'labour_hours_per_unit': 1.2, 'plant_cost': 0.0, 'total_cost': 45.07, 'notes': None}, + {'id': 1189, 'type': 'solid_floor_insulation', + 'description': 'Ecotherm Eco-Versal General Purpose Insulation Board', 'depth': 50.0, 'depth_unit': 'mm', + 'cost': None, 'cost_unit': 'gbp_per_m2', 'r_value_per_mm': 0.045454547, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': 0.022, + 'thermal_conductivity_unit': 'watt_per_meter_kelvin', 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, 244907), 'is_active': True, 'prime_material_cost': 8.46, + 'material_cost': 19.1, 'labour_cost': 28.34, 'labour_hours_per_unit': 1.2, 'plant_cost': 0.0, 'total_cost': 47.44, + 'notes': None}, {'id': 1190, 'type': 'solid_floor_insulation', + 'description': 'Ecotherm Eco-Versal General Purpose Insulation Board', 'depth': 60.0, + 'depth_unit': 'mm', 'cost': None, 'cost_unit': 'gbp_per_m2', 'r_value_per_mm': 0.045454547, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': 0.022, + 'thermal_conductivity_unit': 'watt_per_meter_kelvin', + 'link': 'https://londonbuildingsupplies.co.uk/products/60mm--ecotherm-eco-versal-general' + '-purpose-pir-insulation-board---2.4m-x-1.2m-x-60mm.html', + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, 244907), 'is_active': True, + 'prime_material_cost': None, 'material_cost': 24.081198, 'labour_cost': 28.34, + 'labour_hours_per_unit': 1.2, 'plant_cost': 0.0, 'total_cost': 52.421196, + 'notes': "This material isn't in SPONs but checking online, is around 92% of the cost of the " + "100mm"}, + {'id': 1191, 'type': 'solid_floor_insulation', + 'description': 'Ecotherm Eco-Versal General Purpose Insulation Board', 'depth': 70.0, 'depth_unit': 'mm', + 'cost': None, 'cost_unit': 'gbp_per_m2', 'r_value_per_mm': 0.045454547, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': 0.022, + 'thermal_conductivity_unit': 'watt_per_meter_kelvin', + 'link': 'https://londonbuildingsupplies.co.uk/products/70mm--ecotherm-eco-versal-general-purpose-pir-insulation' + '-board---2.4m-x-1.2m-x-70mm.html', + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, 244907), 'is_active': True, 'prime_material_cost': None, + 'material_cost': 27.089088, 'labour_cost': 28.34, 'labour_hours_per_unit': 1.2, 'plant_cost': 0.0, + 'total_cost': 55.42909, + 'notes': "This material isn't in SPONs but checking online, is around 104% of the cost of the 100mm (more " + "expensive than 100mm)"}, + {'id': 1192, 'type': 'solid_floor_insulation', + 'description': 'Ecotherm Eco-Versal General Purpose Insulation Board', 'depth': 100.0, 'depth_unit': 'mm', + 'cost': None, 'cost_unit': 'gbp_per_m2', 'r_value_per_mm': 0.045454547, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': 0.022, + 'thermal_conductivity_unit': 'watt_per_meter_kelvin', 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, 244907), 'is_active': True, 'prime_material_cost': 15.12, + 'material_cost': 25.96, 'labour_cost': 30.7, 'labour_hours_per_unit': 1.3, 'plant_cost': 0.0, 'total_cost': 56.66, + 'notes': None}, + {'id': 1193, 'type': 'solid_floor_insulation', 'description': 'Ravatherm XPS X 500 SL Polystyrene Foam', + 'depth': 50.0, 'depth_unit': 'mm', 'cost': None, 'cost_unit': 'gbp_per_m2', 'r_value_per_mm': 0.032258064, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': 0.031, + 'thermal_conductivity_unit': 'watt_per_meter_kelvin', 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, 244907), 'is_active': True, 'prime_material_cost': None, + 'material_cost': 11.07, 'labour_cost': 10.66, 'labour_hours_per_unit': 0.46, 'plant_cost': 0.0, + 'total_cost': 21.73, + 'notes': "In Spons, the thermal conductivity is 0.033 however the datasheet indicates it's 0.32: " + "https://ravagobuildingsolutions.com/uk/wp-content/uploads/sites/30/2022/08/ravatherm-xps-x-500-sl-tds" + "-version-1-20210901.pdf"}, + {'id': 1194, 'type': 'solid_floor_insulation', 'description': 'Ravatherm XPS X 500 SL Polystyrene Foam', + 'depth': 75.0, 'depth_unit': 'mm', 'cost': None, 'cost_unit': 'gbp_per_m2', 'r_value_per_mm': 0.03125, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': 0.032, + 'thermal_conductivity_unit': 'watt_per_meter_kelvin', 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, 244907), 'is_active': True, 'prime_material_cost': None, + 'material_cost': 16.28, 'labour_cost': 10.66, 'labour_hours_per_unit': 0.46, 'plant_cost': 0.0, + 'total_cost': 26.94, 'notes': None}, {'id': 1195, 'type': 'solid_floor_redecoration', + 'description': 'Screeded beds; protection to compressible formwork ' + 'exceeding 600mm wide', + 'depth': 0.0, 'depth_unit': None, 'cost': None, 'cost_unit': None, + 'r_value_per_mm': None, 'r_value_unit': 'square_meter_kelvin_per_watt', + 'thermal_conductivity': None, 'thermal_conductivity_unit': None, + 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, 244907), + 'is_active': True, 'prime_material_cost': 9.6, 'material_cost': 9.89, + 'labour_cost': 2.67, 'labour_hours_per_unit': 0.15, 'plant_cost': 0.0, + 'total_cost': 12.56, + 'notes': 'This is the screed layer, placed on top of the insulation'}, + {'id': 1196, 'type': 'solid_floor_redecoration', 'description': 'Fitting carpet', 'depth': 0.0, 'depth_unit': None, + 'cost': None, 'cost_unit': None, 'r_value_per_mm': None, 'r_value_unit': 'square_meter_kelvin_per_watt', + 'thermal_conductivity': None, 'thermal_conductivity_unit': None, 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, 244907), 'is_active': True, 'prime_material_cost': None, + 'material_cost': 0.0, 'labour_cost': 6.59, 'labour_hours_per_unit': 0.37, 'plant_cost': 0.0, 'total_cost': 6.59, + 'notes': 'SPONs does not have data on re-fitting the carpet so we use the data in Fitted carpeting; Gradus woven ' + 'polypropylene tufted loop\n\n as a baseline. We assume re-use of carpets, therefore we need just ' + 'labour rates'}, + {'id': 1197, 'type': 'solid_floor_redecoration', + 'description': 'Fitting existing softwood skirting or architrave to new frames; 150mm high', 'depth': 0.0, + 'depth_unit': None, 'cost': None, 'cost_unit': None, 'r_value_per_mm': None, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': None, 'thermal_conductivity_unit': None, + 'link': 'SPONs', 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, 244907), 'is_active': True, + 'prime_material_cost': None, 'material_cost': 0.01, 'labour_cost': 4.87, 'labour_hours_per_unit': 0.12, + 'plant_cost': 0.0, 'total_cost': 4.88, 'notes': None}, {'id': 1198, 'type': 'ewi_wall_demolition', + 'description': 'Solid & Dry Lined walls: Hack of wall ' + 'finishes with chipping hammer; plaster ' + 'to walls.', + 'depth': 0.0, 'depth_unit': None, 'cost': None, + 'cost_unit': None, 'r_value_per_mm': None, + 'r_value_unit': 'square_meter_kelvin_per_watt', + 'thermal_conductivity': None, + 'thermal_conductivity_unit': None, 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, + 244907), 'is_active': True, + 'prime_material_cost': None, 'material_cost': 0.0, + 'labour_cost': 10.27, 'labour_hours_per_unit': 0.33, + 'plant_cost': 1.28, 'total_cost': 11.55, 'notes': None}, + {'id': 1199, 'type': 'ewi_wall_demolition', + 'description': 'Stud walls: Remove wall linings including battening behind; plasterboard and skim', 'depth': 0.0, + 'depth_unit': None, 'cost': None, 'cost_unit': None, 'r_value_per_mm': None, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': None, 'thermal_conductivity_unit': None, + 'link': 'SPONs', 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, 244907), 'is_active': True, + 'prime_material_cost': None, 'material_cost': 0.0, 'labour_cost': 6.23, 'labour_hours_per_unit': 0.2, + 'plant_cost': 1.25, 'total_cost': 7.48, 'notes': None}, {'id': 1200, 'type': 'ewi_wall_demolition', + 'description': 'Lathe and Plaster walls: Remove wall ' + 'linings including battening behind; ' + 'wood lath and plaster', + 'depth': 0.0, 'depth_unit': None, 'cost': None, + 'cost_unit': None, 'r_value_per_mm': None, + 'r_value_unit': 'square_meter_kelvin_per_watt', + 'thermal_conductivity': None, + 'thermal_conductivity_unit': None, 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, + 244907), + 'is_active': True, 'prime_material_cost': None, + 'material_cost': 0.0, 'labour_cost': 6.85, + 'labour_hours_per_unit': 0.22, 'plant_cost': 2.09, + 'total_cost': 8.94, 'notes': None}, + {'id': 1201, 'type': 'ewi_wall_preparation', + 'description': 'Clean and prepare surfaces, one coat Keim dilution, one coat primer and two coats of Keim Ecosil ' + 'paint; Brick or block walls; over 300 mm girth', + 'depth': 0.0, 'depth_unit': None, 'cost': None, 'cost_unit': None, 'r_value_per_mm': None, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': None, 'thermal_conductivity_unit': None, + 'link': 'SPONs', 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, 244907), 'is_active': True, + 'prime_material_cost': None, 'material_cost': 7.3, 'labour_cost': 5.62, 'labour_hours_per_unit': 0.3, + 'plant_cost': 0.0, 'total_cost': 12.92, + 'notes': 'This work covers the preparation and priming of the wall before insulating'}, + {'id': 1202, 'type': 'external_wall_insulation', 'description': 'Ecotherm Eco-Versal PIR Insulation Board', + 'depth': 30.0, 'depth_unit': 'mm', 'cost': None, 'cost_unit': 'gbp_per_m2', 'r_value_per_mm': 0.045454547, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': 0.022, + 'thermal_conductivity_unit': 'watt_per_meter_kelvin', 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, 244907), 'is_active': True, 'prime_material_cost': 6.16, + 'material_cost': 16.73, 'labour_cost': 28.34, 'labour_hours_per_unit': 1.2, 'plant_cost': 0.0, 'total_cost': 45.07, + 'notes': None}, + {'id': 1203, 'type': 'external_wall_insulation', 'description': 'Ecotherm Eco-Versal PIR Insulation Board', + 'depth': 50.0, 'depth_unit': 'mm', 'cost': None, 'cost_unit': 'gbp_per_m2', 'r_value_per_mm': 0.045454547, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': 0.022, + 'thermal_conductivity_unit': 'watt_per_meter_kelvin', 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, 244907), 'is_active': True, 'prime_material_cost': 8.46, + 'material_cost': 19.1, 'labour_cost': 28.34, 'labour_hours_per_unit': 1.2, 'plant_cost': 0.0, 'total_cost': 47.44, + 'notes': None}, + {'id': 1204, 'type': 'external_wall_insulation', 'description': 'Ecotherm Eco-Versal PIR Insulation Board', + 'depth': 100.0, 'depth_unit': 'mm', 'cost': None, 'cost_unit': 'gbp_per_m2', 'r_value_per_mm': 0.045454547, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': 0.022, + 'thermal_conductivity_unit': 'watt_per_meter_kelvin', 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, 244907), 'is_active': True, 'prime_material_cost': 15.12, + 'material_cost': 25.96, 'labour_cost': 30.7, 'labour_hours_per_unit': 1.3, 'plant_cost': 0.0, 'total_cost': 56.66, + 'notes': None}, + {'id': 1205, 'type': 'external_wall_insulation', 'description': 'Ecotherm Eco-Versal PIR Insulation Board', + 'depth': 150.0, 'depth_unit': 'mm', 'cost': None, 'cost_unit': 'gbp_per_m2', 'r_value_per_mm': 0.045454547, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': 0.022, + 'thermal_conductivity_unit': 'watt_per_meter_kelvin', 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, 244907), 'is_active': True, 'prime_material_cost': 23.53, + 'material_cost': 34.62, 'labour_cost': 33.06, 'labour_hours_per_unit': 1.4, 'plant_cost': 0.0, 'total_cost': 67.68, + 'notes': None}, + {'id': 1206, 'type': 'external_wall_insulation', 'description': 'Foamglas Grade F Wall Insulation Slabs', + 'depth': 60.0, 'depth_unit': 'mm', 'cost': None, 'cost_unit': 'gbp_per_m2', 'r_value_per_mm': 0.02631579, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': 0.038, + 'thermal_conductivity_unit': 'watt_per_meter_kelvin', 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, 244907), 'is_active': True, 'prime_material_cost': 41.69, + 'material_cost': 53.33, 'labour_cost': 29.52, 'labour_hours_per_unit': 1.25, 'plant_cost': 0.0, + 'total_cost': 82.85, 'notes': None}, + {'id': 1207, 'type': 'external_wall_insulation', 'description': 'Foamglas Grade F Wall Insulation Slabs', + 'depth': 100.0, 'depth_unit': 'mm', 'cost': None, 'cost_unit': 'gbp_per_m2', 'r_value_per_mm': 0.02631579, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': 0.038, + 'thermal_conductivity_unit': 'watt_per_meter_kelvin', 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, 244907), 'is_active': True, 'prime_material_cost': 86.86, + 'material_cost': 99.85, 'labour_cost': 29.52, 'labour_hours_per_unit': 1.25, 'plant_cost': 0.0, + 'total_cost': 129.37, 'notes': None}, + {'id': 1208, 'type': 'external_wall_insulation', 'description': 'Foamglas Grade F Wall Insulation Slabs', + 'depth': 150.0, 'depth_unit': 'mm', 'cost': None, 'cost_unit': 'gbp_per_m2', 'r_value_per_mm': 0.02631579, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': 0.038, + 'thermal_conductivity_unit': 'watt_per_meter_kelvin', 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, 244907), 'is_active': True, + 'prime_material_cost': 130.29, 'material_cost': 144.58, 'labour_cost': 29.52, 'labour_hours_per_unit': 1.25, + 'plant_cost': 0.0, 'total_cost': 174.1, 'notes': None}, {'id': 1209, 'type': 'ewi_wall_redecoration', + 'description': 'EPS insulation fixed with adhesive to ' + 'SFS structure (measured separately) ' + 'with horizontal PVC intermediate track ' + 'and vertical T-spines; with glassfibre ' + 'mesh reinforcement embedded in Sto ' + 'Armat Classic Basecoat Render and ' + 'Stolit K 1.5 Decorative Topcoat Render ' + '(white)', + 'depth': 0.0, 'depth_unit': None, 'cost': None, + 'cost_unit': None, 'r_value_per_mm': None, + 'r_value_unit': 'square_meter_kelvin_per_watt', + 'thermal_conductivity': None, + 'thermal_conductivity_unit': None, 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, + 244907), + 'is_active': True, 'prime_material_cost': None, + 'material_cost': 0.0, 'labour_cost': 0.0, + 'labour_hours_per_unit': 0.0, 'plant_cost': 0.0, + 'total_cost': 69.94, + 'notes': 'This material in SPONs is for 70mm EPS ' + 'insulation, which comes in at a cost of 99.17 ' + 'per meter square. This includes the cost of ' + 'insulation. To get the costing for just the ' + 'works and not the insulation, we subtract the ' + 'cost of EPS insulation, using Ravathem 75mm ' + 'insulation as an example, which costs £29.23 ' + 'per meter square, giving us the cost of the ' + 'remaining works without insulation. This ' + 'material gives us a cost for basecoat, ' + 'mesh application and a render finish'}, + {'id': 1210, 'type': 'low_energy_lighting_installation', 'description': 'Installation of fittings and cost of bub', + 'depth': 0.0, 'depth_unit': None, 'cost': None, 'cost_unit': 'gbp_per_unit', 'r_value_per_mm': None, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': None, 'thermal_conductivity_unit': None, + 'link': 'https://www.checkatrade.com/blog/cost-guides/cost-install-downlights/ ' + 'https://www.hamuch.com/cost/led-spot-light#:~:text=It%20costs%20an%20average%20of,' + 'will%20drive%20up%20the%20cost.', + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, 244907), 'is_active': True, 'prime_material_cost': None, + 'material_cost': 20.0, 'labour_cost': 46.0, 'labour_hours_per_unit': 0.8, 'plant_cost': 0.0, 'total_cost': 66.0, + 'notes': 'We estimate the unit economics from the checkatrade article. We assume that the average job consists ' + 'of installing 6 lights based on the hamuch article. We use the median value of 400 for a job of 6 ' + 'lights'}] diff --git a/recommendations/tests/test_wall_recommendations.py b/recommendations/tests/test_wall_recommendations.py index 3663364c..0258e592 100644 --- a/recommendations/tests/test_wall_recommendations.py +++ b/recommendations/tests/test_wall_recommendations.py @@ -6,202 +6,14 @@ from unittest.mock import Mock, MagicMock from recommendations.WallRecommendations import WallRecommendations from backend.Property import Property from recommendations.recommendation_utils import is_diminishing_returns +from recommendations.tests.test_data.materials import materials + # with open( # os.path.abspath(os.path.dirname(__file__)) + "/recommendations/tests/test_data/input_properties.pkl", "rb" # ) as f: # input_properties = pickle.load(f) -external_wall_insulation_parts = [ - { - # Example product - # https://insulationgo.co.uk/100mm-rockwool-external-wall-insulation-dual-density-slabs-a1-non-combustible - # -slab-ewi-render-fire/ - "type": "external_wall_insulation", - "description": "Mineral Wool External Wall Insulation", - "depths": [30, 50, 70, 80, 90, 100, 150, 200], - "depth_unit": "mm", - "cost": [30, 50, 70, 80, 90, 100, 150, 200], - "cost_unit": "gbp_sq_meter", - "r_value_per_mm": 0.0278, - "r_value_unit": "square_meter_kelvin_per_watt", - "thermal_conductivity": 0.036, - "thermal_conductivity_unit": "watt_per_meter_kelvin" - }, - { - # Example product - # https://www.insulationking.co.uk/products/polystyrene-eps70?variant=44156186558759 - "type": "external_wall_insulation", - "description": "Expanded Polystyrene External Wall Insulation", - "depths": [25, 50, 100, 125], - "depth_unit": "mm", - "cost": [25, 50, 100, 125], - "cost_unit": "gbp_sq_meter", - "r_value_per_mm": 0.02703, - "r_value_unit": "square_meter_kelvin_per_watt", - "thermal_conductivity": 0.037, - "thermal_conductivity_unit": "watt_per_meter_kelvin" - }, - { - # Example product - # https://www.insulationshop.co/20mm_kooltherm_k5_external_wall_kingspan.html - "type": "external_wall_insulation", - "description": "Phenolic Foam External Wall Insulation", - "depths": [20, 50, 100], - "depth_unit": "mm", - "cost": [20, 50, 100], - "cost_unit": "gbp_sq_meter", - "r_value_per_mm": 0.043478260869565216, - "r_value_unit": "square_meter_kelvin_per_watt", - "thermal_conductivity": 0.023, - "thermal_conductivity_unit": "watt_per_meter_kelvin" - - }, - { - "type": "external_wall_insulation", - "description": "Polyisocyanurate/Polyurethane Foam External Wall Insulation", - "depths": [], - "depth_unit": "mm", - "cost": [], - "cost_unit": "gbp_sq_meter", - "r_value_per_mm": None, - "r_value_unit": "square_meter_kelvin_per_watt", - "thermal_conductivity": None, - "thermal_conductivity_unit": "watt_per_meter_kelvin" - }, - { - # Example product - # https://www.mikewye.co.uk/product/steico-duo-dry/ - "type": "external_wall_insulation", - "description": "Wood Fiber External Wall Insulation", - "depths": [40, 60], - "depth_unit": "mm", - "cost": [40, 60], - "cost_unit": "gbp_sq_meter", - "r_value_per_mm": 0.023255813953488375, - "r_value_unit": "square_meter_kelvin_per_watt", - "thermal_conductivity": 0.043, - "thermal_conductivity_unit": "watt_per_meter_kelvin" - }, - { - # Example product - # https://www.thermablok.co.uk/site/wp-content/uploads/2022/09/Thermablok-Aerogel-Insulation-Blanket-TDS-AIS - # -and-Steel-Related-Details.pdf - "type": "external_wall_insulation", - "description": "Aerogel External Wall Insulation", - "depths": [10, 20, 30, 40, 50, 60, 70], - "depth_unit": "mm", - "cost": [10, 20, 30, 40, 50, 60, 70], - "cost_unit": "gbp_sq_meter", - "r_value_per_mm": 0.06666666666666667, - "r_value_unit": "square_meter_kelvin_per_watt", - "thermal_conductivity": 0.015, - "thermal_conductivity_unit": "watt_per_meter_kelvin" - }, - { - "type": "external_wall_insulation", - "description": "Vacuum Insulation Panels External Wall Insulation", - "depths": [45, 60], - "depth_unit": "mm", - "cost": [45, 60], - "cost_unit": "gbp_sq_meter", - "r_value_per_mm": 0.16666666666666666, - "r_value_unit": "square_meter_kelvin_per_watt", - "thermal_conductivity": 0.006, - "thermal_conductivity_unit": "watt_per_meter_kelvin" - } -] - -internal_wall_insulation_parts = [ - { - # Example product - # https://www.insulationshop.co/25mm_polystyrene_insulation_eps_70jablite.html - "type": "internal_wall_insulation", - "description": "Rigid Insulation Boards Internal Wall Insulation", - "depths": [25, 40, 50, 75, 100], - "depth_unit": "mm", - "cost": [25, 40, 50, 75, 100], - "cost_unit": "gbp_sq_meter", - "r_value_per_mm": 0.026315789473684213, - "r_value_unit": "square_meter_kelvin_per_watt", - "thermal_conductivity": 0.038, - "thermal_conductivity_unit": "watt_per_meter_kelvin" - }, - { - # Example product - # https://www.rockwool.com/siteassets/rw-uk/downloads/datasheets/flexi.pdf - "type": "internal_wall_insulation", - "description": "Mineral Wool Internal Wall Insulation", - "depths": [140], - "depth_unit": "mm", - "cost": [140], - "cost_unit": "gbp_sq_meter", - "r_value_per_mm": 0.02857142857142857, - "r_value_unit": "square_meter_kelvin_per_watt", - "thermal_conductivity": 0.035, - "thermal_conductivity_unit": "watt_per_meter_kelvin" - }, - { - # Example product - # https://www.kingspan.com/gb/en/products/insulation-boards/wall-insulation-boards/kooltherm-k118-insulated - # -plasterboard/ - "type": "internal_wall_insulation", - "description": "Insulated Plasterboard Internal Wall Insulation", - "depths": [25, 80], - "depth_unit": "mm", - "cost": [25, 80], - "cost_unit": "gbp_sq_meter", - "r_value_per_mm": 0.02857142857142857, - "r_value_unit": "square_meter_kelvin_per_watt", - "thermal_conductivity": 0.019, - "thermal_conductivity_unit": "watt_per_meter_kelvin" - }, - { - "type": "internal_wall_insulation", - "description": "Reflective Internal Wall Insulation", - "depths": [], - "depth_unit": "mm", - "cost": [], - "cost_unit": "gbp_sq_meter", - "r_value_per_mm": None, - "r_value_unit": "square_meter_kelvin_per_watt", - "thermal_conductivity": None, - "thermal_conductivity_unit": "watt_per_meter_kelvin" - }, - { - # Example product - # https://www.insulationsuperstore.co.uk/product/vacutherm-vacupor-nt-b2-vacuum-insulated-panel-1m-x-600mm-x - # -30mm.html - "type": "internal_wall_insulation", - "description": "Vacuum Insulation Panels Wall Insulation", - "depths": [20, 30], - "depth_unit": "mm", - "cost": [20, 30], - "cost_unit": "gbp_sq_meter", - "r_value_per_mm": 0.125, - "r_value_unit": "square_meter_kelvin_per_watt", - "thermal_conductivity": 0.008, - "thermal_conductivity_unit": "watt_per_meter_kelvin" - }, -] - -cavity_wall_insulation_parts = [ - {'id': 4, 'type': 'cavity_wall_insulation', 'description': 'Example Material 1', - 'depths': None, - 'depth_unit': None, 'cost': 20, - 'cost_unit': 'gbp_sq_meter', 'r_value_per_mm': 0.0278, 'r_value_unit': 'square_meter_kelvin_per_watt', - 'thermal_conductivity': 0.036, 'thermal_conductivity_unit': 'watt_per_meter_kelvin', - 'link': None, 'created_at': None, 'is_active': True}, - {'id': 10, 'type': "cavity_wall_insulation", 'description': 'Example Material 2', - 'depths': None, 'depth_unit': None, 'cost': 25, 'cost_unit': 'gbp_sq_meter', - 'r_value_per_mm': 0.02631579, 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': 0.038, - 'thermal_conductivity_unit': 'watt_per_meter_kelvin', - 'link': None, - 'created_at': None, 'is_active': True} -] - -wall_parts = external_wall_insulation_parts + internal_wall_insulation_parts + cavity_wall_insulation_parts - class TestWallRecommendations: @@ -217,17 +29,20 @@ class TestWallRecommendations: # Creating a mock instance of WallRecommendations with the necessary attributes property_mock = Mock() property_mock.full_sap_epc = {"lodgement-date": "2000-01-01"} # or any date you want - property_mock.data = {"construction-age-band": "1950"} # or any other data that fits your tests + property_mock.data = {"construction-age-band": "1950", + "county": "Derbyshire"} # or any other data that fits your tests mock_wall_rec_instance = WallRecommendations( - property_mock, materials=wall_parts + property_mock, materials=materials ) return mock_wall_rec_instance def test_init(self, input_properties): + input_properties[0].insulation_wall_area = 100 + obj = WallRecommendations( property_instance=input_properties[0], - materials=wall_parts + materials=materials ) assert obj assert obj.property @@ -244,10 +59,11 @@ class TestWallRecommendations: input_properties[0].year_built = 2014 input_properties[0].in_conservation_area = None input_properties[0].restricted_measures = False + input_properties[0].insulation_wall_area = 100 recommender = WallRecommendations( property_instance=input_properties[0], - materials=wall_parts + materials=materials ) assert recommender.property.walls["original_description"] == "Average thermal transmittance 0.16 W/m-¦K" recommender.recommend() @@ -272,7 +88,7 @@ class TestWallRecommendations: recommender = WallRecommendations( property_instance=input_properties[1], - materials=wall_parts + materials=materials ) assert recommender.property.walls["original_description"] == "Solid brick, as built, no insulation (assumed)" assert not recommender.ewi_valid @@ -306,9 +122,11 @@ class TestWallRecommendations: input_properties[6].year_built = 1991 input_properties[6].restricted_measures = False + input_properties[6].insulation_wall_area = 100 + recommender = WallRecommendations( property_instance=input_properties[6], - materials=wall_parts + materials=materials ) assert recommender.property.walls["original_description"] == "Solid brick, as built, insulated (assumed)" @@ -383,12 +201,14 @@ class TestWallRecommendationsBase: property_mock.full_sap_epc = {"lodgement-date": "1999-12-31"} property_mock.in_conservation_area = "not_in_conservation_area" property_mock.restricted_measures = False + property_mock.insulation_wall_area = 100 + property_mock.data = {"county": "Derbyshire"} return property_mock @pytest.fixture def wall_recommendations_instance(self, property_mock): wall_recommendations_instance = WallRecommendations( - property_mock, materials=wall_parts + property_mock, materials=materials ) return wall_recommendations_instance @@ -425,10 +245,11 @@ class TestCavityWallRecommensations: } input_property.age_band = "C" input_property.insulation_wall_area = 50 + input_property.data = {"county": "Derbyshire"} recommender = WallRecommendations( property_instance=input_property, - materials=cavity_wall_insulation_parts + materials=materials ) assert not recommender.recommendations @@ -437,11 +258,11 @@ class TestCavityWallRecommensations: assert recommender.recommendations assert recommender.estimated_u_value == 1.5 - assert np.isclose(recommender.recommendations[0]["new_u_value"], 0.37) - assert np.isclose(recommender.recommendations[0]["cost"], 1000) + assert np.isclose(recommender.recommendations[0]["new_u_value"], 0.35) + assert np.isclose(recommender.recommendations[0]["total"], 1668.6600000000003) - assert np.isclose(recommender.recommendations[1]["new_u_value"], 0.38) - assert np.isclose(recommender.recommendations[1]["cost"], 1250) + assert np.isclose(recommender.recommendations[1]["new_u_value"], 0.35) + assert np.isclose(recommender.recommendations[1]["total"], 2004.6600000000003) def test_fill_partial_filled_cavity(self): input_property = Property(id=1, postcode="F4k3", address1="123 fake street", epc_client=Mock()) @@ -458,10 +279,11 @@ class TestCavityWallRecommensations: } input_property.age_band = "C" input_property.insulation_wall_area = 50 + input_property.data = {"county": "County Durham"} recommender = WallRecommendations( property_instance=input_property, - materials=cavity_wall_insulation_parts + materials=materials ) assert not recommender.recommendations @@ -470,11 +292,11 @@ class TestCavityWallRecommensations: assert recommender.recommendations assert recommender.estimated_u_value == 1.3 - assert np.isclose(recommender.recommendations[0]["new_u_value"], 0.43) - assert np.isclose(recommender.recommendations[0]["cost"], 1000) + assert np.isclose(recommender.recommendations[0]["new_u_value"], 0.41) + assert np.isclose(recommender.recommendations[0]["total"], 1663.9350000000002) - assert np.isclose(recommender.recommendations[1]["new_u_value"], 0.45) - assert np.isclose(recommender.recommendations[1]["cost"], 1250) + assert np.isclose(recommender.recommendations[1]["new_u_value"], 0.41) + assert np.isclose(recommender.recommendations[1]["total"], 1999.9350000000002) def test_system_built_wall(self): input_property2 = Property(id=1, postcode="F4k3 2", address1="223 fake street", epc_client=Mock()) @@ -492,13 +314,13 @@ class TestCavityWallRecommensations: input_property2.age_band = "F" input_property2.insulation_wall_area = 120 input_property2.restricted_measures = False - input_property2.data = {"property-type": "house"} + input_property2.data = {"property-type": "House", "county": "Derbyshire", "built-form": "Detached"} assert input_property2.walls["is_system_built"] recommender2 = WallRecommendations( property_instance=input_property2, - materials=internal_wall_insulation_parts + external_wall_insulation_parts + materials=materials ) assert not recommender2.recommendations @@ -506,22 +328,22 @@ class TestCavityWallRecommensations: recommender2.recommend() assert recommender2.recommendations - assert len(recommender2.recommendations) == 6 + assert len(recommender2.recommendations) == 9 assert recommender2.estimated_u_value == 1 - assert np.isclose(recommender2.recommendations[0]["new_u_value"], 0.29) - assert np.isclose(recommender2.recommendations[0]["cost"], 10800) + assert np.isclose(recommender2.recommendations[0]["new_u_value"], 0.19) + assert np.isclose(recommender2.recommendations[0]["total"], 15899.9616) assert recommender2.recommendations[0]["parts"][0]["type"] == "external_wall_insulation" - assert recommender2.recommendations[0]["parts"][0]["depths"] == [90] + assert recommender2.recommendations[0]["parts"][0]["depth"] == 100 - assert np.isclose(recommender2.recommendations[5]["new_u_value"], 0.29) - assert np.isclose(recommender2.recommendations[5]["cost"], 2400) - assert recommender2.recommendations[5]["parts"][0]["type"] == "internal_wall_insulation" - assert recommender2.recommendations[5]["parts"][0]["depths"] == [20] + assert np.isclose(recommender2.recommendations[8]["new_u_value"], 0.23) + assert np.isclose(recommender2.recommendations[8]["total"], 10916.3424) + assert recommender2.recommendations[8]["parts"][0]["type"] == "internal_wall_insulation" + assert recommender2.recommendations[8]["parts"][0]["depth"] == 72.5 - assert np.isclose(recommender2.recommendations[3]["new_u_value"], 0.28) - assert np.isclose(recommender2.recommendations[3]["cost"], 4800) - assert recommender2.recommendations[3]["parts"][0]["type"] == "external_wall_insulation" - assert recommender2.recommendations[3]["parts"][0]["depths"] == [40] + assert np.isclose(recommender2.recommendations[6]["new_u_value"], 0.29) + assert np.isclose(recommender2.recommendations[6]["total"], 10621.934399999998) + assert recommender2.recommendations[6]["parts"][0]["type"] == "internal_wall_insulation" + assert recommender2.recommendations[6]["parts"][0]["depth"] == 52.5 def test_timber_frame_wall(self): input_property3 = Property(id=1, postcode="F4k3 2", address1="223 fake street", epc_client=Mock()) @@ -539,13 +361,13 @@ class TestCavityWallRecommensations: input_property3.age_band = "B" input_property3.insulation_wall_area = 99 input_property3.restricted_measures = False - input_property3.data = {"property-type": "house"} + input_property3.data = {"property-type": "House", "county": "Derbyshire", "built-form": "Semi-Detached"} assert input_property3.walls["is_timber_frame"] recommender3 = WallRecommendations( property_instance=input_property3, - materials=internal_wall_insulation_parts + external_wall_insulation_parts + materials=materials ) assert not recommender3.recommendations @@ -553,17 +375,17 @@ class TestCavityWallRecommensations: recommender3.recommend() assert recommender3.recommendations - assert len(recommender3.recommendations) == 2 + assert len(recommender3.recommendations) == 6 assert recommender3.estimated_u_value == 1.9 - assert np.isclose(recommender3.recommendations[0]["new_u_value"], 0.26) - assert np.isclose(recommender3.recommendations[0]["cost"], 12375) + assert np.isclose(recommender3.recommendations[0]["new_u_value"], 0.2) + assert np.isclose(recommender3.recommendations[0]["total"], 13117.46832) assert recommender3.recommendations[0]["parts"][0]["type"] == "external_wall_insulation" - assert recommender3.recommendations[0]["parts"][0]["depths"] == [125] + assert recommender3.recommendations[0]["parts"][0]["depth"] == 100.0 - assert np.isclose(recommender3.recommendations[1]["new_u_value"], 0.26) - assert np.isclose(recommender3.recommendations[1]["cost"], 4950) + assert np.isclose(recommender3.recommendations[1]["new_u_value"], 0.23) + assert np.isclose(recommender3.recommendations[1]["total"], 34070.50944) assert recommender3.recommendations[1]["parts"][0]["type"] == "external_wall_insulation" - assert recommender3.recommendations[1]["parts"][0]["depths"] == [50] + assert recommender3.recommendations[1]["parts"][0]["depth"] == 150.0 def test_granite_or_whinstone_wall(self): input_property4 = Property(id=1, postcode="F4k3 2", address1="223 fake street", epc_client=Mock()) @@ -581,13 +403,13 @@ class TestCavityWallRecommensations: input_property4.age_band = "A" input_property4.insulation_wall_area = 223 input_property4.restricted_measures = False - input_property4.data = {"property-type": "Bungalow"} + input_property4.data = {"property-type": "Bungalow", "county": "Derbyshire", "built-form": "Detached"} assert input_property4.walls["is_granite_or_whinstone"] recommender4 = WallRecommendations( property_instance=input_property4, - materials=internal_wall_insulation_parts + external_wall_insulation_parts + materials=materials ) assert not recommender4.recommendations @@ -595,17 +417,17 @@ class TestCavityWallRecommensations: recommender4.recommend() assert recommender4.recommendations - assert len(recommender4.recommendations) == 2 + assert len(recommender4.recommendations) == 6 assert recommender4.estimated_u_value == 2.3 - assert np.isclose(recommender4.recommendations[0]["new_u_value"], 0.27) - assert np.isclose(recommender4.recommendations[0]["cost"], 27875) + assert np.isclose(recommender4.recommendations[0]["new_u_value"], 0.21) + assert np.isclose(recommender4.recommendations[0]["total"], 28562.514352) assert recommender4.recommendations[0]["parts"][0]["type"] == "external_wall_insulation" - assert recommender4.recommendations[0]["parts"][0]["depths"] == [125] + assert recommender4.recommendations[0]["parts"][0]["depth"] == 100 - assert np.isclose(recommender4.recommendations[1]["new_u_value"], 0.27) - assert np.isclose(recommender4.recommendations[1]["cost"], 11150) + assert np.isclose(recommender4.recommendations[1]["new_u_value"], 0.23) + assert np.isclose(recommender4.recommendations[1]["total"], 74186.52678400002) assert recommender4.recommendations[1]["parts"][0]["type"] == "external_wall_insulation" - assert recommender4.recommendations[1]["parts"][0]["depths"] == [50] + assert recommender4.recommendations[1]["parts"][0]["depth"] == 150 def test_cob_wall(self): input_property5 = Property(id=1, postcode="F4k3 2", address1="223 fake street", epc_client=Mock()) @@ -623,13 +445,13 @@ class TestCavityWallRecommensations: input_property5.age_band = "E" input_property5.insulation_wall_area = 77 input_property5.restricted_measures = False - input_property5.data = {"property-type": "Bungalow"} + input_property5.data = {"property-type": "Bungalow", "county": "Derbyshire", "built-form": "Detached"} assert input_property5.walls["is_cob"] recommender5 = WallRecommendations( property_instance=input_property5, - materials=internal_wall_insulation_parts + external_wall_insulation_parts + materials=materials ) assert not recommender5.recommendations @@ -637,22 +459,17 @@ class TestCavityWallRecommensations: recommender5.recommend() assert recommender5.recommendations - assert len(recommender5.recommendations) == 9 + assert len(recommender5.recommendations) == 5 assert recommender5.estimated_u_value == 0.8 assert np.isclose(recommender5.recommendations[0]["new_u_value"], 0.29) - assert np.isclose(recommender5.recommendations[0]["cost"], 6160) + assert np.isclose(recommender5.recommendations[0]["total"], 8665.040384000002) assert recommender5.recommendations[0]["parts"][0]["type"] == "external_wall_insulation" - assert recommender5.recommendations[0]["parts"][0]["depths"] == [80] + assert recommender5.recommendations[0]["parts"][0]["depth"] == 50 assert np.isclose(recommender5.recommendations[3]["new_u_value"], 0.26) - assert np.isclose(recommender5.recommendations[3]["cost"], 7700) - assert recommender5.recommendations[3]["parts"][0]["type"] == "external_wall_insulation" - assert recommender5.recommendations[3]["parts"][0]["depths"] == [100] - - assert np.isclose(recommender5.recommendations[6]["new_u_value"], 0.26) - assert np.isclose(recommender5.recommendations[6]["cost"], 7700) - assert recommender5.recommendations[6]["parts"][0]["type"] == "internal_wall_insulation" - assert recommender5.recommendations[6]["parts"][0]["depths"] == [100] + assert np.isclose(recommender5.recommendations[3]["total"], 20078.742992) + assert recommender5.recommendations[3]["parts"][0]["type"] == "internal_wall_insulation" + assert recommender5.recommendations[3]["parts"][0]["depth"] == 100 def test_sandstone_or_limestone_wall(self): input_property6 = Property(id=1, postcode="F4k3 6", address1="623 fake street", epc_client=Mock()) @@ -670,13 +487,13 @@ class TestCavityWallRecommensations: input_property6.age_band = "F" input_property6.insulation_wall_area = 350 input_property6.restricted_measures = False - input_property6.data = {"property-type": "House"} + input_property6.data = {"property-type": "House", "county": "Derbyshire", "built-form": "Mid-Terrace"} assert input_property6.walls["is_sandstone_or_limestone"] recommender6 = WallRecommendations( property_instance=input_property6, - materials=internal_wall_insulation_parts + external_wall_insulation_parts + materials=materials ) assert not recommender6.recommendations @@ -684,19 +501,19 @@ class TestCavityWallRecommensations: recommender6.recommend() assert recommender6.recommendations - assert len(recommender6.recommendations) == 6 + assert len(recommender6.recommendations) == 9 assert recommender6.estimated_u_value == 1 - assert np.isclose(recommender6.recommendations[0]["new_u_value"], 0.29) - assert np.isclose(recommender6.recommendations[0]["cost"], 31500) + assert np.isclose(recommender6.recommendations[0]["new_u_value"], 0.19) + assert np.isclose(recommender6.recommendations[0]["total"], 44829.0584) assert recommender6.recommendations[0]["parts"][0]["type"] == "external_wall_insulation" - assert recommender6.recommendations[0]["parts"][0]["depths"] == [90] + assert recommender6.recommendations[0]["parts"][0]["depth"] == 100 - assert np.isclose(recommender6.recommendations[2]["new_u_value"], 0.28) - assert np.isclose(recommender6.recommendations[2]["cost"], 35000) + assert np.isclose(recommender6.recommendations[2]["new_u_value"], 0.21) + assert np.isclose(recommender6.recommendations[2]["total"], 116436.25280000002) assert recommender6.recommendations[2]["parts"][0]["type"] == "external_wall_insulation" - assert recommender6.recommendations[2]["parts"][0]["depths"] == [100] + assert recommender6.recommendations[2]["parts"][0]["depth"] == 150 assert np.isclose(recommender6.recommendations[4]["new_u_value"], 0.28) - assert np.isclose(recommender6.recommendations[4]["cost"], 35000) + assert np.isclose(recommender6.recommendations[4]["total"], 91267.0136) assert recommender6.recommendations[4]["parts"][0]["type"] == "internal_wall_insulation" - assert recommender6.recommendations[4]["parts"][0]["depths"] == [100] + assert recommender6.recommendations[4]["parts"][0]["depth"] == 100 From 82432c0593d11c9d18138595ead2b1b887578d80 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Sat, 2 Dec 2023 18:24:24 +0000 Subject: [PATCH 024/526] fixed ventilation recommendations --- recommendations/Recommendations.py | 3 +-- recommendations/VentilationRecommendations.py | 2 +- .../tests/test_ventilation_recommendations.py | 26 +++++++------------ 3 files changed, 11 insertions(+), 20 deletions(-) diff --git a/recommendations/Recommendations.py b/recommendations/Recommendations.py index cdefb6ed..a169b788 100644 --- a/recommendations/Recommendations.py +++ b/recommendations/Recommendations.py @@ -31,8 +31,7 @@ class Recommendations: self.wall_recomender = WallRecommendations(property_instance=property_instance, materials=materials) self.roof_recommender = RoofRecommendations(property_instance=property_instance, materials=materials) self.ventilation_recomender = VentilationRecommendations( - property_instance=property_instance, - materials=[part for part in materials if part["type"] == "mechanical_ventilation"] + property_instance=property_instance, materials=materials ) self.fireplace_recommender = FireplaceRecommendations(property_instance=property_instance) self.lighting_recommender = LightingRecommendations(property_instance=property_instance, materials=materials) diff --git a/recommendations/VentilationRecommendations.py b/recommendations/VentilationRecommendations.py index ef24084f..6c61f27c 100644 --- a/recommendations/VentilationRecommendations.py +++ b/recommendations/VentilationRecommendations.py @@ -27,7 +27,7 @@ class VentilationRecommendations(Definitions): self.has_ventilaion = None self.recommendation = None - self.materials = materials + self.materials = [part for part in materials if part["type"] == "mechanical_ventilation"] def identify_ventilation(self): self.has_ventilaion = self.property.data["mechanical-ventilation"] in self.VENTILATION_DESCRIPTIONS diff --git a/recommendations/tests/test_ventilation_recommendations.py b/recommendations/tests/test_ventilation_recommendations.py index 2dcaba57..893bb01a 100644 --- a/recommendations/tests/test_ventilation_recommendations.py +++ b/recommendations/tests/test_ventilation_recommendations.py @@ -1,15 +1,7 @@ from backend.Property import Property from unittest.mock import Mock from recommendations.VentilationRecommendations import VentilationRecommendations - -ventilation_materials = [ - { - 'id': 17, 'type': 'mechanical_ventilation', 'description': 'Mechanical Extract Ventilation', - 'depths': None, 'depth_unit': None, 'cost': 500, 'cost_unit': 'gbp_per_unit', 'r_value_per_mm': None, - 'r_value_unit': None, 'thermal_conductivity': None, 'thermal_conductivity_unit': None, - 'link': None, 'is_active': True, 'estimated_cost': 1000, 'quantity': 2, 'quantity_unit': None - } -] +from recommendations.tests.test_data.materials import materials class TestVentilationRecommendations: @@ -20,7 +12,7 @@ class TestVentilationRecommendations: recommender = VentilationRecommendations( property_instance=input_property1, - materials=ventilation_materials + materials=materials ) assert not recommender.recommendation @@ -29,7 +21,7 @@ class TestVentilationRecommendations: assert len(recommender.recommendation) == 1 - assert recommender.recommendation[0]["cost"] == 1000 + assert recommender.recommendation[0]["total"] == 1000 assert recommender.recommendation[0]["type"] == "mechanical_ventilation" assert len(recommender.recommendation[0]["parts"]) == 1 assert recommender.recommendation[0]["parts"][0]["description"] == 'Mechanical Extract Ventilation' @@ -41,7 +33,7 @@ class TestVentilationRecommendations: recommender2 = VentilationRecommendations( property_instance=input_property2, - materials=ventilation_materials + materials=materials ) assert not recommender2.recommendation @@ -50,7 +42,7 @@ class TestVentilationRecommendations: assert len(recommender2.recommendation) == 1 - assert recommender2.recommendation[0]["cost"] == 1000 + assert recommender2.recommendation[0]["total"] == 1000 assert recommender2.recommendation[0]["type"] == "mechanical_ventilation" assert len(recommender2.recommendation[0]["parts"]) == 1 assert recommender2.recommendation[0]["parts"][0]["description"] == 'Mechanical Extract Ventilation' @@ -62,7 +54,7 @@ class TestVentilationRecommendations: recommender3 = VentilationRecommendations( property_instance=input_property3, - materials=ventilation_materials + materials=materials ) assert not recommender3.recommendation @@ -71,7 +63,7 @@ class TestVentilationRecommendations: assert len(recommender3.recommendation) == 1 - assert recommender3.recommendation[0]["cost"] == 1000 + assert recommender3.recommendation[0]["total"] == 1000 assert recommender3.recommendation[0]["type"] == "mechanical_ventilation" assert len(recommender3.recommendation[0]["parts"]) == 1 assert recommender3.recommendation[0]["parts"][0]["description"] == 'Mechanical Extract Ventilation' @@ -83,7 +75,7 @@ class TestVentilationRecommendations: recommender4 = VentilationRecommendations( property_instance=input_property4, - materials=ventilation_materials + materials=materials ) assert not recommender4.recommendation @@ -99,7 +91,7 @@ class TestVentilationRecommendations: recommender5 = VentilationRecommendations( property_instance=input_property5, - materials=ventilation_materials + materials=materials ) assert not recommender5.recommendation From 24789fbfccd3ce0080b505b7f37d7a15664d71e7 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Sat, 2 Dec 2023 18:27:58 +0000 Subject: [PATCH 025/526] fixed recommendation utils --- recommendations/tests/test_recommendation_utils.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/recommendations/tests/test_recommendation_utils.py b/recommendations/tests/test_recommendation_utils.py index 73796979..69f0d1b6 100644 --- a/recommendations/tests/test_recommendation_utils.py +++ b/recommendations/tests/test_recommendation_utils.py @@ -42,10 +42,12 @@ class TestRecommendationUtils: assert recommendation_utils.update_lowest_selected_u_value(1, 0.5) == 0.5 def test_get_recommended_part(self): - part = {'depths': [1, 2, 3]} + part = {'description': "some insulation material"} + assert recommendation_utils.get_recommended_part( - part=part, selected_depth=1, selected_total_cost=50, quantity=99, quantity_unit="m2" - ) == {'depths': [1], 'estimated_cost': 50, 'quantity': 99, 'quantity_unit': QuantityUnits.m2.value} + part=part, cost_result={"cost_result": 123}, quantity=99, quantity_unit="m2" + ) == {'description': "some insulation material", 'quantity': 99, 'quantity_unit': QuantityUnits.m2.value, + "cost_result": 123} def test_get_roof_u_value(self): # Test case 1: Insulation thickness is known and is_loft is True From b30dfd9eadf4d511360fde6177a9f46789ef8691 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Sat, 2 Dec 2023 18:56:17 +0000 Subject: [PATCH 026/526] added some basic lighting tests --- .../tests/test_lighting_recommendations.py | 47 +++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 recommendations/tests/test_lighting_recommendations.py diff --git a/recommendations/tests/test_lighting_recommendations.py b/recommendations/tests/test_lighting_recommendations.py new file mode 100644 index 00000000..06d1163f --- /dev/null +++ b/recommendations/tests/test_lighting_recommendations.py @@ -0,0 +1,47 @@ +import pytest +from unittest.mock import Mock +from backend.Property import Property +from recommendations.LightingRecommendations import LightingRecommendations + +from recommendations.tests.test_data.materials import materials + + +class TestLightingRecommendations: + + def test_init_invalid_materials(self): + input_property0 = Property(id=1, postcode="F4k3 6", address1="623 fake street", epc_client=Mock()) + input_property0.lighting = {"low_energy_proportion": 0} + input_property0.data = {"county": "Greater London Authority"} + # Test for invalid materials + with pytest.raises(ValueError): + LightingRecommendations(input_property0, []) + + def test_recommend_no_action_needed(self): + # Case where no recommendation is needed + input_property1 = Property(id=1, postcode="F4k3 6", address1="623 fake street", epc_client=Mock()) + input_property1.lighting = {"low_energy_proportion": 100} + input_property1.data = {"county": "Greater London Authority"} + + lr = LightingRecommendations(input_property1, materials) + lr.recommend() + assert lr.recommendation == [] + + def test_recommend_action_needed(self): + # Case where recommendation is needed + input_property1 = Property(id=1, postcode="F4k3 6", address1="623 fake street", epc_client=Mock()) + input_property1.lighting = {"low_energy_proportion": 100} + input_property1.data = {"county": "Greater London Authority"} + input_property1.lighting = {"low_energy_proportion": 0.80} + input_property1.number_lighting_outlets = 20 + + lr = LightingRecommendations(input_property1, materials) + lr.recommend() + assert len(lr.recommendation) == 1 + + assert lr.recommendation == [ + {'parts': [], 'type': 'low_energy_lighting', 'description': 'Install low energy lighting in 4 outlets', + 'starting_u_value': None, 'new_u_value': None, 'sap_points': 0.4, 'total': 458.976, 'subtotal': 382.48, + 'vat': 76.49600000000001, 'contingency': 27.320000000000007, 'preliminaries': 27.320000000000007, + 'material': 80.0, 'profit': 54.640000000000015, 'labour_hours': 3.2, 'labour_days': 0.4, + 'labour_cost': 193.20000000000002} + ] From 745795add10fd8c7cbe9d752b8ab4ea87624b166 Mon Sep 17 00:00:00 2001 From: Michael Duong Date: Sun, 3 Dec 2023 20:20:25 +0000 Subject: [PATCH 027/526] commit to work on remote --- etl/epc/property_change_app.py | 51 ++++++++++++++++++++++++++++++---- 1 file changed, 46 insertions(+), 5 deletions(-) diff --git a/etl/epc/property_change_app.py b/etl/epc/property_change_app.py index 0f425906..471fe7b0 100644 --- a/etl/epc/property_change_app.py +++ b/etl/epc/property_change_app.py @@ -397,16 +397,57 @@ def compare_records(earliest_record: pd.Series, latest_record: pd.Series, column if all_equal: return True +from dataclasses import dataclass +@dataclass class EPCRecord: """ Base class for a EPC record """ + WALLS_DESCRIPTION: str + FLOOR_DESCRIPTION: str + LIGHTING_DESCRIPTION: str + ROOF_DESCRIPTION: str + MAINHEAT_DESCRIPTION: str + HOTWATER_DESCRIPTION: str + MAIN_FUEL: str + MECHANICAL_VENTILATION: str + SECONDHEAT_DESCRIPTION: str + WINDOWS_DESCRIPTION: str + GLAZED_TYPE: str + MULTI_GLAZE_PROPORTION: float + LOW_ENERGY_LIGHTING: float + NUMBER_OPEN_FIREPLACES: float + MAINHEATCONT_DESCRIPTION: str + SOLAR_WATER_HEATING_FLAG: str + PHOTO_SUPPLY: float + TRANSACTION_TYPE: str + ENERGY_TARIFF: str + EXTENSION_COUNT: float + TOTAL_FLOOR_AREA: float + FLOOR_HEIGHT: float + HOT_WATER_ENERGY_EFF: str + FLOOR_ENERGY_EFF: str + WINDOWS_ENERGY_EFF: str + WALLS_ENERGY_EFF: str + SHEATING_ENERGY_EFF: str + ROOF_ENERGY_EFF: str + MAINHEAT_ENERGY_EFF: str + MAINHEATC_ENERGY_EFF: str + LIGHTING_ENERGY_EFF: str + POTENTIAL_ENERGY_EFFICIENCY: float + ENVIRONMENT_IMPACT_POTENTIAL: float + ENERGY_CONSUMPTION_POTENTIAL: float + CO2_EMISSIONS_POTENTIAL: float + LODGEMENT_DATE: str + CURRENT_ENERGY_EFFICIENCY: int + ENERGY_CONSUMPTION_CURRENT: int + CO2_EMISSIONS_CURRENT: float - def __init__(self, num) -> None: - self.num = num + # def __init__(self, num) -> None: + # self.num = num - def __sub__(self, other: EPCRecord): - return self.num - other.num + # def __sub__(self, other): + # return self.num - other.num test = EPCRecord(10) @@ -475,7 +516,7 @@ def app(): # e.g. first vs second, second vs third and also first vs third property_model_data = [] for idx in range(0, property_data.shape[0] - 1): - + if idx >= property_data.shape[0] - 1: break From b232d9143977a9442e85f1d7fa0546bffcc06dd1 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Mon, 4 Dec 2023 15:05:10 +0000 Subject: [PATCH 028/526] Fixed unit tests for recommendations where we have new cost data - to be complete --- etl/testing_data/birmingham_pilot.py | 79 +++ recommendations/Costs.py | 17 +- recommendations/county_to_region.py | 27 +- .../tests/test_floor_recommendations.py | 379 +++++-------- .../tests/test_roof_recommendations.py | 535 ++++++++---------- 5 files changed, 495 insertions(+), 542 deletions(-) create mode 100644 etl/testing_data/birmingham_pilot.py diff --git a/etl/testing_data/birmingham_pilot.py b/etl/testing_data/birmingham_pilot.py new file mode 100644 index 00000000..ab39df7e --- /dev/null +++ b/etl/testing_data/birmingham_pilot.py @@ -0,0 +1,79 @@ +""" +This script will create an input csv for the recommendation engine and upload it to S3, which can be used for +testing +""" +import os + +import numpy as np +import pandas as pd +from epc_api.client import EpcClient +from utils.s3 import save_csv_to_s3 + +FILE_SIZE = 5 +EPC_AUTH_TOKEN = os.getenv("EPC_AUTH_TOKEN", None) +USER_ID = 8 +PORTFOLIO_ID = 54 + + +def app(): + # For this dataset, we want 3 properties, all hourses. A mid-terrace, and end-terrace and a semi-detached + + epc_client = EpcClient(auth_token=EPC_AUTH_TOKEN) + + # Birmingham has a Local Authority Code of E08000025 + + # Let's take an EPC D property + example_1_reponse = epc_client.domestic.search( + params={ + "local-authority": "E08000025", + "property-type": "house", + } + ) + + g_data = epc_client.domestic.search(params={"energy-band": "g"}, size=n_g) + f_data = epc_client.domestic.search(params={"energy-band": "f"}, size=n_f) + e_data = epc_client.domestic.search(params={"energy-band": "e"}, size=n_e) + d_data = epc_client.domestic.search(params={"energy-band": "d"}, size=n_d) + c_data = epc_client.domestic.search(params={"energy-band": "c"}, size=n_c) + b_data = epc_client.domestic.search(params={"energy-band": "b"}, size=n_b) + a_data = epc_client.domestic.search(params={"energy-band": "a"}, size=n_a) + + # Combine the final data + final_data = ( + g_data["rows"] + f_data["rows"] + e_data["rows"] + d_data["rows"] + c_data["rows"] + b_data["rows"] + + a_data["rows"] + ) + + # TODO: We also take homes with just a specific type of wall + + final_data = [ + x for x in final_data if ("cavity wall" in x["walls-description"].lower()) or ( + "solid brick" in x["walls-description"].lower() + ) or ("average thermal transmittance" in x["walls-description"].lower()) + ] + + # TODO: For the moment, don't use park homes + final_csv_data = pd.DataFrame( + [{"address": x["address"], "postcode": x["postcode"], "Notes": None} for x + in final_data if + x["property-type"] not in ["Park home"]] + ) + + final_csv_data = pd.concat([starting_csv, final_csv_data]).reset_index(drop=True) + + # Store the data in s3 + filename = f"{USER_ID}/{PORTFOLIO_ID}/test_inputs.csv" + save_csv_to_s3( + dataframe=final_csv_data, + bucket_name="retrofit-plan-inputs-dev", + file_name=filename + ) + + body = { + "portfolio_id": str(PORTFOLIO_ID), + "housing_type": "Social", + "goal": "Increase EPC", + "goal_value": "B", + "trigger_file_path": filename + } + print(body) diff --git a/recommendations/Costs.py b/recommendations/Costs.py index e896e1b5..02d26c14 100644 --- a/recommendations/Costs.py +++ b/recommendations/Costs.py @@ -5,14 +5,14 @@ from recommendations.county_to_region import county_to_region_map regional_labour_variations = [ {"Region": "Outer London", "Adjustment_Factor": 1.00}, {"Region": "Inner London", "Adjustment_Factor": 1.05}, - {"Region": "South East", "Adjustment_Factor": 0.96}, - {"Region": "South West", "Adjustment_Factor": 0.90}, + {"Region": "South East England", "Adjustment_Factor": 0.96}, + {"Region": "South West England", "Adjustment_Factor": 0.90}, {"Region": "East of England", "Adjustment_Factor": 0.93}, {"Region": "East Midlands", "Adjustment_Factor": 0.88}, {"Region": "West Midlands", "Adjustment_Factor": 0.87}, {"Region": "North East England", "Adjustment_Factor": 0.83}, {"Region": "North West England", "Adjustment_Factor": 0.88}, - {"Region": "Yorkshire and Humberside", "Adjustment_Factor": 0.86}, + {"Region": "Yorkshire and the Humber", "Adjustment_Factor": 0.86}, {"Region": "Wales", "Adjustment_Factor": 0.88}, {"Region": "Scotland", "Adjustment_Factor": 0.88}, {"Region": "Northern Ireland", "Adjustment_Factor": 0.76} @@ -71,13 +71,16 @@ class Costs: self.property = property_instance self.regional_labour_variations = regional_labour_variations - self.county = county_to_region_map.get(self.property.data["county"], None) - if self.county is None: - raise ValueError("County not found in county map") + self.region = county_to_region_map.get(self.property.data["county"], None) + if self.region is None: + # Try and grab using the local-authority-label + self.region = county_to_region_map.get(self.property.data["local-authority-label"], None) + if self.region is None: + raise ValueError("Region not found in county map") self.labour_adjustment_factor = [ x["Adjustment_Factor"] for x in self.regional_labour_variations if - x["Region"] == self.county + x["Region"] == self.region ][0] if not self.labour_adjustment_factor: diff --git a/recommendations/county_to_region.py b/recommendations/county_to_region.py index 3379247f..a881ea01 100644 --- a/recommendations/county_to_region.py +++ b/recommendations/county_to_region.py @@ -35,15 +35,6 @@ county_to_region_map = { 'Tendring': 'East of England', 'Three Rivers': 'East of England', 'Thurrock': 'East of England', 'Uttlesford': 'East of England', 'Watford': 'East of England', 'Waveney': 'East of England', 'Welwyn Hatfield': 'East of England', - # 'Barking and Dagenham': 'London', 'Barnet': 'London', 'Bexley': 'London', - # 'Brent': 'London', 'Bromley': 'London', 'Camden': 'London', 'City of London': 'London', - # 'City of Westminster': 'London', 'Croydon': 'London', 'Ealing': 'London', 'Enfield': 'London', - # 'Greater London': 'London', 'Greenwich': 'London', 'Hackney': 'London', 'Hammersmith and Fulham': 'London', - # 'Haringey': 'London', 'Harrow': 'London', 'Havering': 'London', 'Hillingdon': 'London', 'Hounslow': 'London', - # 'Islington': 'London', 'Kensington and Chelsea': 'London', 'Kingston upon Thames': 'London', 'Lambeth': 'London', - # 'Lewisham': 'London', 'Merton': 'London', 'Newham': 'London', 'Redbridge': 'London', 'Richmond': 'London', - # 'Southwark': 'London', 'Sutton': 'London', 'Tower Hamlets': 'London', 'Waltham Forest': 'London', - # 'Wandsworth': 'London', 'Westminster': 'London', 'County Durham': 'North East England', 'Darlington': 'North East England', 'Durham': 'North East England', 'Gateshead': 'North East England', 'Hartlepool': 'North East England', 'Middlesbrough': 'North East England', @@ -168,5 +159,21 @@ county_to_region_map = { 'York': 'Yorkshire and the Humber', # Additional mappings requried, based on what we find in the EPC database - 'Greater London Authority': 'Inner London' + 'Greater London Authority': 'Inner London', + # We have a bunch of inner London local authority mappings, which can be used if the county is not found + 'Barking and Dagenham': 'Inner London', 'Barnet': 'Inner London', 'Bexley': 'Inner London', + 'Brent': 'Inner London', 'Bromley': 'Inner London', 'Camden': 'Inner London', 'City of London': 'Inner London', + 'City of Westminster': 'Inner London', 'Croydon': 'Inner London', 'Ealing': 'Inner London', + 'Enfield': 'Inner London', + 'Greater London': 'Inner London', 'Greenwich': 'Inner London', 'Hackney': 'Inner London', + 'Hammersmith and Fulham': 'Inner London', + 'Haringey': 'Inner London', 'Harrow': 'Inner London', 'Havering': 'Inner London', 'Hillingdon': 'Inner London', + 'Hounslow': 'Inner London', + 'Islington': 'Inner London', 'Kensington and Chelsea': 'Inner London', 'Kingston upon Thames': 'Inner London', + 'Lambeth': 'Inner London', + 'Lewisham': 'Inner London', 'Merton': 'Inner London', 'Newham': 'Inner London', 'Redbridge': 'Inner London', + 'Richmond': 'Inner London', + 'Southwark': 'Inner London', 'Sutton': 'Inner London', 'Tower Hamlets': 'Inner London', + 'Waltham Forest': 'Inner London', + 'Wandsworth': 'Inner London', 'Westminster': 'Inner London', } diff --git a/recommendations/tests/test_floor_recommendations.py b/recommendations/tests/test_floor_recommendations.py index 82ba7cf4..01bd308e 100644 --- a/recommendations/tests/test_floor_recommendations.py +++ b/recommendations/tests/test_floor_recommendations.py @@ -3,90 +3,15 @@ import pytest import os from unittest.mock import Mock from recommendations.FloorRecommendations import FloorRecommendations +from recommendations.tests.test_data.materials import materials from backend.Property import Property + # with open( # os.path.abspath(os.path.dirname(__file__)) + "/recommendations/tests/test_data/input_properties.pkl", "rb" # ) as f: # input_properties = pickle.load(f) -suspended_floor_insulation_parts = [ - { - # Example product - # https://www.insulationsuperstore.co.uk/product/recticel-eurothane-general-purpose-pir-insulation-board-2400 - # -x-1200-x-100mm.html - # All product data_types here: - # https://www.insulationsuperstore.co.uk/browse/insulation/brand/recticel/filterby/application/floors.html - "type": "suspended_floor_insulation", - "description": "Rigid Insulation Foam Boards", - "depths": [25, 30, 40, 50, 60, 70, 75, 80, 90, 100, 110, 120, 130, 140, 150], - "depth_unit": "mm", - "cost": [25, 30, 40, 50, 60, 70, 75, 80, 90, 100, 110, 120, 130, 140, 150], - "cost_unit": "gbp_sq_meter", - "r_value_per_mm": 0.04545454545454546, - "r_value_unit": "square_meter_kelvin_per_watt", - "thermal_conductivity": 0.022, - "thermal_conductivity_unit": "watt_per_meter_kelvin" - }, - { - # Example product - # https://www.insulationsuperstore.co.uk/product/rockwool-rwa45-acoustic-insulation-slab-100mm-2-88m2-pack.html - # All product data_types here: - # https://www.insulationsuperstore.co.uk/browse/insulation/brand/rockwool/filterby/application/floors - # /material/mineral-wool.html - "type": "suspended_floor_insulation", - "description": "Mineral Wool Floor Insulation", - "depths": [25, 40, 50, 60, 75, 100], - "depth_unit": "mm", - "cost": [25, 40, 50, 60, 75, 100], - "cost_unit": "gbp_sq_meter", - "r_value_per_mm": 0.02857142857142857, - "r_value_unit": "square_meter_kelvin_per_watt", - "thermal_conductivity": 0.035, - "thermal_conductivity_unit": "watt_per_meter_kelvin" - }, -] - -solid_floor_insulation_parts = [ - { - # Example product - # https://www.insulationexpress.co.uk/floor-insulation/solid-floor-insulation/k103-100mm - # All product data_types here: - # https://www.insulationexpress.co.uk/floor-insulation/solid-floor-insulation?brand=7015&p=1 - # Example screed https://www.screwfix.com/p/mapei-ultraplan-3240-self-levelling-compound-25kg/4959f - "type": "solid_floor_insulation", - "description": "Rigid Insulation Foam Boards with floor screed", - "depths": [25, 50, 70, 75, 100], - "depth_unit": "mm", - "cost": [25, 40, 50, 60, 75, 100], - "cost_unit": "gbp_sq_meter", - "r_value_per_mm": 0.04545454545454546, - "r_value_unit": "square_meter_kelvin_per_watt", - "thermal_conductivity": 0.052631578947368425, - "thermal_conductivity_unit": "watt_per_meter_kelvin" - }, - -] - -exposed_floor_insulation_parts = [ - { - "type": "exposed_floor_insulation", - "description": "Rockwool Stone Wool insulation", - "depths": [50, 100, 140], - "depth_unit": "mm", - "cost": [8, 11, 15], - "cost_unit": "gbp_sq_meter", - "r_value_per_mm": 0.026315789473684213, - "r_value_unit": "square_meter_kelvin_per_watt", - "thermal_conductivity": 0.038, - "thermal_conductivity_unit": "watt_per_meter_kelvin", - "link": "https://insulation4less.co.uk/products/rockwool-flexi-slab-all-sizes?variant=33409590853685" - }, -] - -parts = suspended_floor_insulation_parts + solid_floor_insulation_parts + exposed_floor_insulation_parts - - class TestFloorRecommendations: @pytest.fixture @@ -100,26 +25,29 @@ class TestFloorRecommendations: def mock_floor_rec_instance(self): # Creating a mock instance of WallRecommendations with the necessary attributes property_mock = Mock() - property_mock.full_sap_epc = {"lodgement-date": "2000-01-01"} # or any date you want - property_mock.data = {"construction-age-band": "1950"} # or any other data that fits your tests + property_mock.full_sap_epc = {"lodgement-date": "2000-01-01"} + property_mock.data = {"county": "York"} - mock_wall_rec_instance = FloorRecommendations(property_mock, parts) + mock_wall_rec_instance = FloorRecommendations(property_mock, materials) return mock_wall_rec_instance def test_init(self, input_properties): + input_properties[0].insulation_floor_area = 50 + input_properties[0].insulation_wall_area = 90 obj = FloorRecommendations( property_instance=input_properties[0], - materials=parts + materials=materials ) assert obj assert obj.property def test_other_premises_below(self, input_properties): - input_properties[0].floor_area = 100 + input_properties[0].insulation_floor_area = 100 + input_properties[0].insulation_wall_area = 999 input_properties[0].number_of_floors = 1 recommender = FloorRecommendations( property_instance=input_properties[0], - materials=parts + materials=materials ) recommender.recommend() assert recommender.property.floor["another_property_below"] @@ -132,7 +60,8 @@ class TestFloorRecommendations: :return: """ - input_properties[2].floor_area = 50 + input_properties[2].insulation_floor_area = 50 + input_properties[2].insulation_wall_area = 50 input_properties[2].walls["is_park_home"] = False input_properties[2].age_band = "A" input_properties[2].perimeter = 20 @@ -140,10 +69,7 @@ class TestFloorRecommendations: input_properties[2].floor_type = "suspended" input_properties[2].number_of_floors = 1 - recommender = FloorRecommendations( - property_instance=input_properties[2], - materials=parts - ) + recommender = FloorRecommendations(property_instance=input_properties[2], materials=materials) assert recommender.estimated_u_value is None recommender.recommend() assert recommender.property.floor["is_suspended"] @@ -154,18 +80,20 @@ class TestFloorRecommendations: assert types == {"suspended_floor_insulation"} + assert len(recommender.recommendations) == 6 + assert recommender.recommendations[0]["total"] == 4596.858 + assert recommender.recommendations[0]["new_u_value"] == 0.21 + def test_uvalue_0_12(self, input_properties): """ This is a home that doesn't have a property below but it's highly performant already and therefore does not need floor insulation :return: """ - input_properties[3].floor_area = 100 + input_properties[3].insulation_floor_area = 100 + input_properties[3].insulation_wall_area = 100 input_properties[3].number_of_floors = 1 - recommender = FloorRecommendations( - property_instance=input_properties[3], - materials=parts - ) + recommender = FloorRecommendations(property_instance=input_properties[3], materials=materials) assert recommender.estimated_u_value is None recommender.recommend() assert not recommender.property.floor["is_suspended"] @@ -178,7 +106,8 @@ class TestFloorRecommendations: :return: """ - input_properties[4].floor_area = 100 + input_properties[4].insulation_floor_area = 100 + input_properties[4].insulation_wall_area = 100 input_properties[4].walls["is_park_home"] = False input_properties[4].age_band = "B" input_properties[4].perimeter = 50 @@ -186,10 +115,9 @@ class TestFloorRecommendations: input_properties[4].floor_type = "solid" input_properties[4].number_of_floors = 1 - recommender = FloorRecommendations( - property_instance=input_properties[4], - materials=parts - ) + # In this case, we have no county, so in this case, it should yse the local-authority-label if possible + input_properties[4].data["county"] = "" + recommender = FloorRecommendations(property_instance=input_properties[4], materials=materials) assert recommender.estimated_u_value is None recommender.recommend() assert not recommender.property.floor["is_suspended"] @@ -201,17 +129,22 @@ class TestFloorRecommendations: assert types == {"solid_floor_insulation"} + assert len(recommender.recommendations) == 3 + assert recommender.recommendations[2]["total"] == 14604.660000000002 + assert recommender.recommendations[2]["new_u_value"] == 0.21 + assert recommender.recommendations[2]["parts"][0]["depth"] == 75 + assert recommender.recommendations[2]["parts"][0]["depth"] == 75 + def test_another_dwelling_below(self, input_properties): """ This is another description we see when there is a property below """ - input_properties[6].floor_area = 100 + input_properties[6].insulation_floor_area = 100 + input_properties[6].insulation_wall_area = 1 + input_properties[6].number_of_floors = 1 - recommender = FloorRecommendations( - property_instance=input_properties[6], - materials=parts - ) + recommender = FloorRecommendations(property_instance=input_properties[6], materials=materials) assert recommender.estimated_u_value is None recommender.recommend() assert not recommender.property.floor["is_suspended"] @@ -219,123 +152,123 @@ class TestFloorRecommendations: assert recommender.estimated_u_value is None assert not recommender.recommendations - def test_exposed_floor_no_insulation(self): - input_property = Property(id=1, postcode="F4k3 2", address1="223 fake street", epc_client=Mock()) - input_property.floor = { - 'original_description': 'To unheated space, no insulation (assumed)', - 'clean_description': 'To unheated space, no insulation', 'thermal_transmittance': None, - 'thermal_transmittance_unit': None, 'is_assumed': True, 'is_to_unheated_space': True, - 'is_to_external_air': False, 'is_suspended': False, 'is_solid': False, 'another_property_below': False, - 'insulation_thickness': 'none' - } - input_property.age_band = "L" - input_property.set_floor_type() - input_property.data = {"floor-level": 0, "property-type": "House"} - input_property.floor_area = 100 - input_property.number_of_floors = 1 - - recommender = FloorRecommendations( - property_instance=input_property, - materials=exposed_floor_insulation_parts - ) - - assert not recommender.recommendations - - recommender.recommend() - - # Because of age band L, this should have a u-value of 0.22 to begin with and no recommendation - assert not len(recommender.recommendations) - assert recommender.estimated_u_value == 0.22 - - # Now with an older age band - - input_property2 = Property(id=1, postcode="F4k3 2", address1="223 fake street", epc_client=Mock()) - input_property2.floor = { - 'original_description': 'To unheated space, no insulation (assumed)', - 'clean_description': 'To unheated space, no insulation', 'thermal_transmittance': None, - 'thermal_transmittance_unit': None, 'is_assumed': True, 'is_to_unheated_space': True, - 'is_to_external_air': False, 'is_suspended': False, 'is_solid': False, 'another_property_below': False, - 'insulation_thickness': 'none' - } - input_property2.age_band = "D" - input_property2.set_floor_type() - input_property2.data = {"floor-level": 0, "property-type": "House"} - input_property2.floor_area = 100 - input_property2.number_of_floors = 1 - - recommender2 = FloorRecommendations( - property_instance=input_property2, - materials=exposed_floor_insulation_parts - ) - - assert not recommender2.recommendations - - recommender2.recommend() - - assert len(recommender2.recommendations) == 1 - - assert recommender2.recommendations[0]["new_u_value"] == 0.23 - assert recommender2.recommendations[0]["starting_u_value"] == 1.2 - assert recommender2.recommendations[0]["cost"] == 1500 - - def test_exposed_floor_below_average_insulated(self): - input_property3 = Property(id=1, postcode="F4k3 2", address1="223 fake street", epc_client=Mock()) - input_property3.floor = { - 'original_description': 'To unheated space, below average insulation (assumed)', - 'clean_description': 'To unheated space, below average insulation', 'thermal_transmittance': None, - 'thermal_transmittance_unit': None, 'is_assumed': True, 'is_to_unheated_space': True, - 'is_to_external_air': False, 'is_suspended': False, 'is_solid': False, 'another_property_below': False, - 'insulation_thickness': 'below average' - } - input_property3.age_band = "C" - input_property3.set_floor_type() - input_property3.data = {"floor-level": 0, "property-type": "House"} - input_property3.floor_area = 100 - input_property3.number_of_floors = 1 - - recommender3 = FloorRecommendations( - property_instance=input_property3, - materials=exposed_floor_insulation_parts - ) - - assert not recommender3.recommendations - - recommender3.recommend() - - assert recommender3.estimated_u_value == 0.5 - - assert len(recommender3.recommendations) == 1 - - assert recommender3.recommendations[0]["new_u_value"] == 0.22 - assert recommender3.recommendations[0]["starting_u_value"] == 0.5 - assert recommender3.recommendations[0]["cost"] == 1100 - assert recommender3.recommendations[0]["parts"][0]["depths"] == [100] - - # With average insulation, no recommendations - - input_property4 = Property(id=1, postcode="F4k3 2", address1="223 fake street", epc_client=Mock()) - input_property4.floor = { - 'original_description': 'To unheated space, insulated (assumed)', - 'clean_description': 'To unheated space, insulated', 'thermal_transmittance': None, - 'thermal_transmittance_unit': None, 'is_assumed': True, 'is_to_unheated_space': True, - 'is_to_external_air': False, 'is_suspended': False, 'is_solid': False, 'another_property_below': False, - 'insulation_thickness': 'average' - } - input_property4.age_band = "C" - input_property4.set_floor_type() - input_property4.data = {"floor-level": 0, "property-type": "House"} - input_property4.floor_area = 100 - input_property4.number_of_floors = 1 - - recommender4 = FloorRecommendations( - property_instance=input_property4, - materials=exposed_floor_insulation_parts - ) - - assert not recommender4.recommendations - - recommender4.recommend() - - assert recommender4.estimated_u_value is None - - assert len(recommender4.recommendations) == 0 + # def test_exposed_floor_no_insulation(self): + # input_property = Property(id=1, postcode="F4k3 2", address1="223 fake street", epc_client=Mock()) + # input_property.floor = { + # 'original_description': 'To unheated space, no insulation (assumed)', + # 'clean_description': 'To unheated space, no insulation', 'thermal_transmittance': None, + # 'thermal_transmittance_unit': None, 'is_assumed': True, 'is_to_unheated_space': True, + # 'is_to_external_air': False, 'is_suspended': False, 'is_solid': False, 'another_property_below': False, + # 'insulation_thickness': 'none' + # } + # input_property.age_band = "L" + # input_property.set_floor_type() + # input_property.data = {"floor-level": 0, "property-type": "House"} + # input_property.floor_area = 100 + # input_property.number_of_floors = 1 + # + # recommender = FloorRecommendations( + # property_instance=input_property, + # materials=materials + # ) + # + # assert not recommender.recommendations + # + # recommender.recommend() + # + # # Because of age band L, this should have a u-value of 0.22 to begin with and no recommendation + # assert not len(recommender.recommendations) + # assert recommender.estimated_u_value == 0.22 + # + # # Now with an older age band + # + # input_property2 = Property(id=1, postcode="F4k3 2", address1="223 fake street", epc_client=Mock()) + # input_property2.floor = { + # 'original_description': 'To unheated space, no insulation (assumed)', + # 'clean_description': 'To unheated space, no insulation', 'thermal_transmittance': None, + # 'thermal_transmittance_unit': None, 'is_assumed': True, 'is_to_unheated_space': True, + # 'is_to_external_air': False, 'is_suspended': False, 'is_solid': False, 'another_property_below': False, + # 'insulation_thickness': 'none' + # } + # input_property2.age_band = "D" + # input_property2.set_floor_type() + # input_property2.data = {"floor-level": 0, "property-type": "House"} + # input_property2.floor_area = 100 + # input_property2.number_of_floors = 1 + # + # recommender2 = FloorRecommendations( + # property_instance=input_property2, + # materials=materials + # ) + # + # assert not recommender2.recommendations + # + # recommender2.recommend() + # + # assert len(recommender2.recommendations) == 1 + # + # assert recommender2.recommendations[0]["new_u_value"] == 0.23 + # assert recommender2.recommendations[0]["starting_u_value"] == 1.2 + # assert recommender2.recommendations[0]["cost"] == 1500 + # + # def test_exposed_floor_below_average_insulated(self): + # input_property3 = Property(id=1, postcode="F4k3 2", address1="223 fake street", epc_client=Mock()) + # input_property3.floor = { + # 'original_description': 'To unheated space, below average insulation (assumed)', + # 'clean_description': 'To unheated space, below average insulation', 'thermal_transmittance': None, + # 'thermal_transmittance_unit': None, 'is_assumed': True, 'is_to_unheated_space': True, + # 'is_to_external_air': False, 'is_suspended': False, 'is_solid': False, 'another_property_below': False, + # 'insulation_thickness': 'below average' + # } + # input_property3.age_band = "C" + # input_property3.set_floor_type() + # input_property3.data = {"floor-level": 0, "property-type": "House"} + # input_property3.floor_area = 100 + # input_property3.number_of_floors = 1 + # + # recommender3 = FloorRecommendations( + # property_instance=input_property3, + # materials=materials + # ) + # + # assert not recommender3.recommendations + # + # recommender3.recommend() + # + # assert recommender3.estimated_u_value == 0.5 + # + # assert len(recommender3.recommendations) == 1 + # + # assert recommender3.recommendations[0]["new_u_value"] == 0.22 + # assert recommender3.recommendations[0]["starting_u_value"] == 0.5 + # assert recommender3.recommendations[0]["cost"] == 1100 + # assert recommender3.recommendations[0]["parts"][0]["depths"] == [100] + # + # # With average insulation, no recommendations + # + # input_property4 = Property(id=1, postcode="F4k3 2", address1="223 fake street", epc_client=Mock()) + # input_property4.floor = { + # 'original_description': 'To unheated space, insulated (assumed)', + # 'clean_description': 'To unheated space, insulated', 'thermal_transmittance': None, + # 'thermal_transmittance_unit': None, 'is_assumed': True, 'is_to_unheated_space': True, + # 'is_to_external_air': False, 'is_suspended': False, 'is_solid': False, 'another_property_below': False, + # 'insulation_thickness': 'average' + # } + # input_property4.age_band = "C" + # input_property4.set_floor_type() + # input_property4.data = {"floor-level": 0, "property-type": "House"} + # input_property4.floor_area = 100 + # input_property4.number_of_floors = 1 + # + # recommender4 = FloorRecommendations( + # property_instance=input_property4, + # materials=materials + # ) + # + # assert not recommender4.recommendations + # + # recommender4.recommend() + # + # assert recommender4.estimated_u_value is None + # + # assert len(recommender4.recommendations) == 0 diff --git a/recommendations/tests/test_roof_recommendations.py b/recommendations/tests/test_roof_recommendations.py index 551407da..80591970 100644 --- a/recommendations/tests/test_roof_recommendations.py +++ b/recommendations/tests/test_roof_recommendations.py @@ -1,65 +1,7 @@ from backend.Property import Property from unittest.mock import Mock from recommendations.RoofRecommendations import RoofRecommendations - -loft_insulation_materials = [ - { - 'id': 18, 'type': 'loft_insulation', 'description': 'Iso Spacesaver Mineral Wool insulation', - 'depths': [270, 300], 'depth_unit': 'mm', 'cost': [9, 10], 'cost_unit': 'gbp_sq_meter', - 'r_value_per_mm': 0.022727273, 'r_value_unit': 'square_meter_kelvin_per_watt', - 'thermal_conductivity': 0.044, 'thermal_conductivity_unit': 'watt_per_meter_kelvin', - 'link': 'https://flooringwarehousedirect.co.uk/product/isover-spacesaver-roll-100mm-x-1160mm-x-12-18m-14-13m2/', - 'is_active': True - } -] - -loft_insulation_materials_50mm_existing = [ - { - 'id': 18, 'type': 'loft_insulation', 'description': 'Iso Spacesaver Mineral Wool insulation', - 'depths': [220, 210], 'depth_unit': 'mm', 'cost': [9, 10], 'cost_unit': 'gbp_sq_meter', - 'r_value_per_mm': 0.022727273, 'r_value_unit': 'square_meter_kelvin_per_watt', - 'thermal_conductivity': 0.044, 'thermal_conductivity_unit': 'watt_per_meter_kelvin', - 'link': 'https://flooringwarehousedirect.co.uk/product/isover-spacesaver-roll-100mm-x-1160mm-x-12-18m-14-13m2/', - 'is_active': True - } -] - -loft_insulation_materials_150mm_existing = [ - { - 'id': 18, 'type': 'loft_insulation', 'description': 'Iso Spacesaver Mineral Wool insulation', - 'depths': [130, 119], 'depth_unit': 'mm', 'cost': [9, 10], 'cost_unit': 'gbp_sq_meter', - 'r_value_per_mm': 0.022727273, 'r_value_unit': 'square_meter_kelvin_per_watt', - 'thermal_conductivity': 0.044, 'thermal_conductivity_unit': 'watt_per_meter_kelvin', - 'link': 'https://flooringwarehousedirect.co.uk/product/isover-spacesaver-roll-100mm-x-1160mm-x-12-18m-14-13m2/', - 'is_active': True - } -] - -room_roof_insulation_materials = [ - { - 'id': 18, - 'type': 'room_roof_insulation', - 'description': 'Example room roof insulation', - 'depths': [50, 150, 220, 270, 300], 'depth_unit': 'mm', 'cost': [9, 10, 11, 12, 13], - 'cost_unit': 'gbp_sq_meter', - 'r_value_per_mm': 0.022727273, 'r_value_unit': 'square_meter_kelvin_per_watt', - 'thermal_conductivity': 0.044, 'thermal_conductivity_unit': 'watt_per_meter_kelvin', - 'link': None, 'is_active': True - } -] - -flat_roof_insulation_materials = [ - { - 'id': 18, - 'type': 'flat_roof_insulation', - 'description': 'Example flat roof insulation', - 'depths': [50, 150, 220, 270, 300], 'depth_unit': 'mm', 'cost': [9, 10, 11, 12, 13], - 'cost_unit': 'gbp_sq_meter', - 'r_value_per_mm': 0.032727273, 'r_value_unit': 'square_meter_kelvin_per_watt', - 'thermal_conductivity': 0.044, 'thermal_conductivity_unit': 'watt_per_meter_kelvin', - 'link': None, 'is_active': True - } -] +from recommendations.tests.test_data.materials import materials class TestRoofRecommendations: @@ -67,7 +9,7 @@ class TestRoofRecommendations: def test_loft_insulation_recommendation_no_insulation(self): property_instance = Property(id=0, address1="fake", postcode="fake", epc_client=Mock()) property_instance.age_band = "F" - property_instance.floor_area = 100 + property_instance.insulation_floor_area = 100 property_instance.roof = { 'original_description': 'Pitched, no insulation (assumed)', 'clean_description': 'Pitched, no insulation', @@ -77,8 +19,11 @@ class TestRoofRecommendations: 'is_at_rafters': False, 'is_assumed': True, 'has_dwelling_above': False, 'is_valid': True, 'insulation_thickness': 'none', 'roof_thermal_transmittance': None, 'roof_insulation_thickness': 'none' } + property_instance.data = { + "county": "Cambridgeshire", + } - roof_recommender = RoofRecommendations(property_instance=property_instance, materials=loft_insulation_materials) + roof_recommender = RoofRecommendations(property_instance=property_instance, materials=materials) assert not roof_recommender.recommendations @@ -89,7 +34,7 @@ class TestRoofRecommendations: def test_loft_insulation_recommendation_50mm_insulation(self): property_instance2 = Property(id=0, address1="fake", postcode="fake", epc_client=Mock()) property_instance2.age_band = "F" - property_instance2.floor_area = 100 + property_instance2.insulation_floor_area = 100 property_instance2.roof = { 'original_description': 'Pitched, 50mm loft insulation (assumed)', 'clean_description': 'Pitched, 50mm loft insulation', @@ -99,10 +44,9 @@ class TestRoofRecommendations: 'is_at_rafters': False, 'is_assumed': True, 'has_dwelling_above': False, 'is_valid': True, 'insulation_thickness': '50', 'roof_thermal_transmittance': None, 'roof_insulation_thickness': 'none' } + property_instance2.data = {"county": "Kent"} - roof_recommender2 = RoofRecommendations( - property_instance=property_instance2, materials=loft_insulation_materials - ) + roof_recommender2 = RoofRecommendations(property_instance=property_instance2, materials=materials) assert not roof_recommender2.recommendations @@ -110,13 +54,13 @@ class TestRoofRecommendations: assert len(roof_recommender2.recommendations) == 1 - assert roof_recommender2.recommendations[0]["cost"] == 900 + assert roof_recommender2.recommendations[0]["total"] == 1310.56464 assert roof_recommender2.recommendations[0]["new_u_value"] == 0.14 assert roof_recommender2.recommendations[0]["starting_u_value"] == 0.68 property_instance3 = Property(id=0, address1="fake", postcode="fake", epc_client=Mock()) property_instance3.age_band = "F" - property_instance3.floor_area = 100 + property_instance3.insulation_floor_area = 100 property_instance3.roof = { 'original_description': 'Pitched, 50mm loft insulation (assumed)', 'clean_description': 'Pitched, 50mm loft insulation', @@ -126,24 +70,22 @@ class TestRoofRecommendations: 'is_at_rafters': False, 'is_assumed': True, 'has_dwelling_above': False, 'is_valid': True, 'insulation_thickness': '50', 'roof_thermal_transmittance': None, 'roof_insulation_thickness': 'none' } + property_instance3.data = {"county": "Greater London Authority"} - roof_recommender3 = RoofRecommendations( - property_instance=property_instance3, materials=loft_insulation_materials_50mm_existing - ) + roof_recommender3 = RoofRecommendations(property_instance=property_instance3, materials=materials) assert not roof_recommender3.recommendations roof_recommender3.recommend() - # The 220mm insulation should be selected, not the 210 assert roof_recommender3.recommendations assert len(roof_recommender3.recommendations) == 1 - assert roof_recommender3.recommendations[0]["parts"][0]["depths"] == [220] + assert roof_recommender3.recommendations[0]["parts"][0]["depth"] == 270 def test_loft_insulation_recommendation_150mm_insulation(self): property_instance4 = Property(id=0, address1="fake", postcode="fake", epc_client=Mock()) property_instance4.age_band = "F" - property_instance4.floor_area = 100 + property_instance4.insulation_floor_area = 100 property_instance4.roof = { 'original_description': 'Pitched, 150mm loft insulation (assumed)', 'clean_description': 'Pitched, 150mm loft insulation', @@ -153,24 +95,24 @@ class TestRoofRecommendations: 'is_at_rafters': False, 'is_assumed': True, 'has_dwelling_above': False, 'is_valid': True, 'insulation_thickness': '150', 'roof_thermal_transmittance': None, 'roof_insulation_thickness': 'none' } + property_instance4.data = {"county": "North East Lincolnshire"} - roof_recommender4 = RoofRecommendations( - property_instance=property_instance4, materials=loft_insulation_materials - ) + roof_recommender4 = RoofRecommendations(property_instance=property_instance4, materials=materials) assert not roof_recommender4.recommendations roof_recommender4.recommend() - assert len(roof_recommender4.recommendations) == 1 + assert len(roof_recommender4.recommendations) == 4 - assert roof_recommender4.recommendations[0]["cost"] == 900 - assert roof_recommender4.recommendations[0]["new_u_value"] == 0.11 + assert roof_recommender4.recommendations[0]["total"] == 788.0544 + assert roof_recommender4.recommendations[0]["new_u_value"] == 0.15 assert roof_recommender4.recommendations[0]["starting_u_value"] == 0.3 + assert roof_recommender4.recommendations[0]["parts"][0]["depth"] == 150 property_instance5 = Property(id=0, address1="fake", postcode="fake", epc_client=Mock()) property_instance5.age_band = "F" - property_instance5.floor_area = 100 + property_instance5.insulation_floor_area = 100 property_instance5.roof = { 'original_description': 'Pitched, 150mm loft insulation (assumed)', 'clean_description': 'Pitched, 150mm loft insulation', @@ -180,25 +122,24 @@ class TestRoofRecommendations: 'is_at_rafters': False, 'is_assumed': True, 'has_dwelling_above': False, 'is_valid': True, 'insulation_thickness': '150', 'roof_thermal_transmittance': None, 'roof_insulation_thickness': 'none' } + property_instance5.data = {"county": "Somerset"} - roof_recommender5 = RoofRecommendations( - property_instance=property_instance5, materials=loft_insulation_materials_150mm_existing - ) + roof_recommender5 = RoofRecommendations(property_instance=property_instance5, materials=materials) assert not roof_recommender5.recommendations roof_recommender5.recommend() - # The 130mm insulation should be selected, not the 110 + # The 150mm insulation should be selected, since there it already 150mm assert roof_recommender5.recommendations - assert len(roof_recommender5.recommendations) == 1 - assert roof_recommender5.recommendations[0]["parts"][0]["depths"] == [130] + assert len(roof_recommender5.recommendations) == 4 + assert roof_recommender5.recommendations[0]["parts"][0]["depth"] == 150 def test_loft_insulation_recommendation_270mm_insulation(self): # We shouldn't recommend anything in this case property_instance6 = Property(id=0, address1="fake", postcode="fake", epc_client=Mock()) property_instance6.age_band = "F" - property_instance6.floor_area = 100 + property_instance6.insulation_floor_area = 100 property_instance6.roof = { 'original_description': 'Pitched, 270mm loft insulation (assumed)', 'clean_description': 'Pitched, 270mm loft insulation', @@ -208,10 +149,9 @@ class TestRoofRecommendations: 'is_at_rafters': False, 'is_assumed': True, 'has_dwelling_above': False, 'is_valid': True, 'insulation_thickness': '270', 'roof_thermal_transmittance': None, 'roof_insulation_thickness': 'none' } + property_instance6.data = {"county": "Portsmouth"} - roof_recommender6 = RoofRecommendations( - property_instance=property_instance6, materials=loft_insulation_materials - ) + roof_recommender6 = RoofRecommendations(property_instance=property_instance6, materials=materials) assert not roof_recommender6.recommendations @@ -219,219 +159,211 @@ class TestRoofRecommendations: assert len(roof_recommender6.recommendations) == 0 - def test_uninsulated_room_in_roof(self): - property_instance7 = Property(id=0, address1="fake", postcode="fake", epc_client=Mock()) - property_instance7.age_band = "F" - property_instance7.floor_area = 100 - property_instance7.roof = { - 'original_description': 'Roof room(s), no insulation (assumed)', - 'clean_description': 'Roof room(s), no insulation', - 'thermal_transmittance': None, 'thermal_transmittance_unit': None, 'is_pitched': False, - 'is_roof_room': True, 'is_loft': False, 'is_flat': False, 'is_thatched': False, 'is_at_rafters': False, - 'is_assumed': True, 'has_dwelling_above': False, 'is_valid': True, 'insulation_thickness': 'none' - } - - property_instance7.pitched_roof_area = 110 - - roof_recommender7 = RoofRecommendations( - property_instance=property_instance7, materials=room_roof_insulation_materials - ) - - assert not roof_recommender7.recommendations - - roof_recommender7.recommend() - - # Even though we have 3 depths, we only end with 1 due to diminishin returns - assert len(roof_recommender7.recommendations) == 1 - - assert roof_recommender7.recommendations[0]["parts"][0]["depths"] == [270] - - assert roof_recommender7.recommendations[0]["new_u_value"] == 0.14 - assert roof_recommender7.recommendations[0]["starting_u_value"] == 0.8 - assert roof_recommender7.recommendations[0]["description"] == \ - "Insulate your room roof with 270mm of Example room roof insulation" - - def test_ceiling_insulated_room_in_roof(self): - property_instance8 = Property(id=8, address1="fake", postcode="fake", epc_client=Mock()) - property_instance8.age_band = "F" - property_instance8.floor_area = 100 - property_instance8.roof = { - 'original_description': 'Roof room(s), ceiling insulated', - 'clean_description': 'Roof room(s), ceiling insulated', - 'thermal_transmittance': None, 'thermal_transmittance_unit': None, 'is_pitched': False, - 'is_roof_room': True, 'is_loft': False, 'is_flat': False, 'is_thatched': False, - 'is_at_rafters': False, - 'is_assumed': False, 'has_dwelling_above': False, 'is_valid': True, - 'insulation_thickness': 'average' - } - - property_instance8.pitched_roof_area = 110 - - roof_recommender8 = RoofRecommendations( - property_instance=property_instance8, materials=room_roof_insulation_materials - ) - - assert not roof_recommender8.recommendations - - roof_recommender8.recommend() - - # No recommendations in this case - assert not roof_recommender8.recommendations - - def test_insulated_room_in_roof(self): - property_instance9 = Property(id=9, address1="fake", postcode="fake", epc_client=Mock()) - property_instance9.age_band = "F" - property_instance9.floor_area = 100 - property_instance9.roof = { - 'original_description': 'Roof room(s), insulated (assumed)', - 'clean_description': 'Roof room(s), insulated', - 'thermal_transmittance': None, 'thermal_transmittance_unit': None, 'is_pitched': False, - 'is_roof_room': True, 'is_loft': False, 'is_flat': False, 'is_thatched': False, 'is_at_rafters': False, - 'is_assumed': True, 'has_dwelling_above': False, 'is_valid': True, 'insulation_thickness': 'average' - } - - property_instance9.pitched_roof_area = 110 - - roof_recommender9 = RoofRecommendations( - property_instance=property_instance9, materials=room_roof_insulation_materials - ) - - assert not roof_recommender9.recommendations - - roof_recommender9.recommend() - - # No recommendations in this case - assert not roof_recommender9.recommendations - - def test_limited_insulated_room_in_roof(self): - property_instance10 = Property(id=10, address1="fake", postcode="fake", epc_client=Mock()) - property_instance10.age_band = "F" - property_instance10.floor_area = 100 - property_instance10.roof = { - 'original_description': 'Roof room(s), limited insulation (assumed)', - 'clean_description': 'Roof room(s), limited insulation', - 'thermal_transmittance': None, 'thermal_transmittance_unit': None, 'is_pitched': False, - 'is_roof_room': True, 'is_loft': False, 'is_flat': False, 'is_thatched': False, 'is_at_rafters': False, - 'is_assumed': True, 'has_dwelling_above': False, 'is_valid': True, - 'insulation_thickness': 'below average' - } - - property_instance10.pitched_roof_area = 110 - - roof_recommender10 = RoofRecommendations( - property_instance=property_instance10, materials=room_roof_insulation_materials - ) - - assert not roof_recommender10.recommendations - - roof_recommender10.recommend() - - assert len(roof_recommender10.recommendations) == 2 - - assert roof_recommender10.recommendations[0]["parts"][0]["depths"] == [220] - assert roof_recommender10.recommendations[1]["parts"][0]["depths"] == [270] - - assert roof_recommender10.recommendations[0]["new_u_value"] == 0.16 - assert roof_recommender10.recommendations[1]["new_u_value"] == 0.14 - - assert roof_recommender10.recommendations[0]["starting_u_value"] == 0.8 - assert roof_recommender10.recommendations[1]["starting_u_value"] == 0.8 - - assert roof_recommender10.recommendations[0]["description"] == \ - "Insulate your room roof with 220mm of Example room roof insulation" - assert roof_recommender10.recommendations[1]["description"] == \ - "Insulate your room roof with 270mm of Example room roof insulation" - - def test_flat_no_insulation(self): - property_instance11 = Property(id=11, address1="fake", postcode="fake", epc_client=Mock()) - property_instance11.age_band = "D" - property_instance11.floor_area = 150 - property_instance11.roof = { - 'original_description': 'Flat, no insulation (assumed)', - 'clean_description': 'Flat, no insulation', - 'thermal_transmittance': None, 'thermal_transmittance_unit': None, 'is_pitched': False, - 'is_roof_room': False, 'is_loft': False, 'is_flat': True, 'is_thatched': False, 'is_at_rafters': False, - 'is_assumed': True, 'has_dwelling_above': False, 'is_valid': True, 'insulation_thickness': 'none' - } - - roof_recommender11 = RoofRecommendations( - property_instance=property_instance11, materials=flat_roof_insulation_materials - ) - - assert not roof_recommender11.recommendations - - roof_recommender11.recommend() - - assert len(roof_recommender11.recommendations) == 1 - - assert roof_recommender11.recommendations[0]["parts"][0]["depths"] == [270] - - assert roof_recommender11.recommendations[0]["new_u_value"] == 0.11 - - assert roof_recommender11.recommendations[0]["starting_u_value"] == 2.3 - - assert roof_recommender11.recommendations[0]["description"] == \ - "Insulate the home's flat roof with 270mm of Example flat roof insulation" - - def test_flat_insulated(self): - property_instance12 = Property(id=12, address1="fake", postcode="fake", epc_client=Mock()) - property_instance12.age_band = "D" - property_instance12.floor_area = 150 - property_instance12.roof = { - 'original_description': 'Flat, insulated (assumed)', - 'clean_description': 'Flat, insulated', - 'thermal_transmittance': None, 'thermal_transmittance_unit': None, 'is_pitched': False, - 'is_roof_room': False, - 'is_loft': False, 'is_flat': True, 'is_thatched': False, 'is_at_rafters': False, 'is_assumed': True, - 'has_dwelling_above': False, 'is_valid': True, 'insulation_thickness': 'average' - } - - roof_recommender12 = RoofRecommendations( - property_instance=property_instance12, materials=flat_roof_insulation_materials - ) - - assert not roof_recommender12.recommendations - - roof_recommender12.recommend() - - assert not roof_recommender12.recommendations - - def test_flat_limited_insulation(self): - property_instance13 = Property(id=12, address1="fake", postcode="fake", epc_client=Mock()) - property_instance13.age_band = "D" - property_instance13.floor_area = 150 - property_instance13.roof = { - 'original_description': 'Flat, limited insulation (assumed)', - 'clean_description': 'Flat, limited insulation', - 'thermal_transmittance': None, 'thermal_transmittance_unit': None, 'is_pitched': False, - 'is_roof_room': False, - 'is_loft': False, 'is_flat': True, 'is_thatched': False, 'is_at_rafters': False, 'is_assumed': True, - 'has_dwelling_above': False, 'is_valid': True, 'insulation_thickness': 'below average' - } - - roof_recommender13 = RoofRecommendations( - property_instance=property_instance13, materials=flat_roof_insulation_materials - ) - - assert not roof_recommender13.recommendations - - roof_recommender13.recommend() - - assert len(roof_recommender13.recommendations) == 1 - - assert roof_recommender13.recommendations[0]["parts"][0]["depths"] == [220] - - assert roof_recommender13.recommendations[0]["new_u_value"] == 0.14 - - assert roof_recommender13.recommendations[0]["starting_u_value"] == 2.3 - - assert roof_recommender13.recommendations[0]["description"] == \ - "Insulate the home's flat roof with 220mm of Example flat roof insulation" + # def test_uninsulated_room_in_roof(self): + # property_instance7 = Property(id=0, address1="fake", postcode="fake", epc_client=Mock()) + # property_instance7.age_band = "F" + # property_instance7.insulation_floor_area = 100 + # property_instance7.roof = { + # 'original_description': 'Roof room(s), no insulation (assumed)', + # 'clean_description': 'Roof room(s), no insulation', + # 'thermal_transmittance': None, 'thermal_transmittance_unit': None, 'is_pitched': False, + # 'is_roof_room': True, 'is_loft': False, 'is_flat': False, 'is_thatched': False, 'is_at_rafters': False, + # 'is_assumed': True, 'has_dwelling_above': False, 'is_valid': True, 'insulation_thickness': 'none' + # } + # + # property_instance7.pitched_roof_area = 110 + # property_instance7.data = {"county": "Southampton"} + # + # roof_recommender7 = RoofRecommendations(property_instance=property_instance7, materials=materials) + # + # assert not roof_recommender7.recommendations + # + # roof_recommender7.recommend() + # + # # Even though we have 3 depths, we only end with 1 due to diminishin returns + # assert len(roof_recommender7.recommendations) == 1 + # + # assert roof_recommender7.recommendations[0]["parts"][0]["depths"] == [270] + # + # assert roof_recommender7.recommendations[0]["new_u_value"] == 0.14 + # assert roof_recommender7.recommendations[0]["starting_u_value"] == 0.8 + # assert roof_recommender7.recommendations[0]["description"] == \ + # "Insulate your room roof with 270mm of Example room roof insulation" + # + # def test_ceiling_insulated_room_in_roof(self): + # property_instance8 = Property(id=8, address1="fake", postcode="fake", epc_client=Mock()) + # property_instance8.age_band = "F" + # property_instance8.insulation_floor_area = 100 + # property_instance8.roof = { + # 'original_description': 'Roof room(s), ceiling insulated', + # 'clean_description': 'Roof room(s), ceiling insulated', + # 'thermal_transmittance': None, 'thermal_transmittance_unit': None, 'is_pitched': False, + # 'is_roof_room': True, 'is_loft': False, 'is_flat': False, 'is_thatched': False, + # 'is_at_rafters': False, + # 'is_assumed': False, 'has_dwelling_above': False, 'is_valid': True, + # 'insulation_thickness': 'average' + # } + # + # property_instance8.pitched_roof_area = 110 + # + # roof_recommender8 = RoofRecommendations(property_instance=property_instance8, materials=materials) + # + # assert not roof_recommender8.recommendations + # + # roof_recommender8.recommend() + # + # # No recommendations in this case + # assert not roof_recommender8.recommendations + # + # def test_insulated_room_in_roof(self): + # property_instance9 = Property(id=9, address1="fake", postcode="fake", epc_client=Mock()) + # property_instance9.age_band = "F" + # property_instance9.insulation_floor_area = 100 + # property_instance9.roof = { + # 'original_description': 'Roof room(s), insulated (assumed)', + # 'clean_description': 'Roof room(s), insulated', + # 'thermal_transmittance': None, 'thermal_transmittance_unit': None, 'is_pitched': False, + # 'is_roof_room': True, 'is_loft': False, 'is_flat': False, 'is_thatched': False, 'is_at_rafters': False, + # 'is_assumed': True, 'has_dwelling_above': False, 'is_valid': True, 'insulation_thickness': 'average' + # } + # + # property_instance9.pitched_roof_area = 110 + # property_instance9.data = {"county": "Rutland"} + # + # roof_recommender9 = RoofRecommendations(property_instance=property_instance9, materials=materials) + # + # assert not roof_recommender9.recommendations + # + # roof_recommender9.recommend() + # + # # No recommendations in this case + # assert not roof_recommender9.recommendations + # + # def test_limited_insulated_room_in_roof(self): + # property_instance10 = Property(id=10, address1="fake", postcode="fake", epc_client=Mock()) + # property_instance10.age_band = "F" + # property_instance10.insulation_floor_area = 100 + # property_instance10.roof = { + # 'original_description': 'Roof room(s), limited insulation (assumed)', + # 'clean_description': 'Roof room(s), limited insulation', + # 'thermal_transmittance': None, 'thermal_transmittance_unit': None, 'is_pitched': False, + # 'is_roof_room': True, 'is_loft': False, 'is_flat': False, 'is_thatched': False, 'is_at_rafters': False, + # 'is_assumed': True, 'has_dwelling_above': False, 'is_valid': True, + # 'insulation_thickness': 'below average' + # } + # + # property_instance10.pitched_roof_area = 110 + # property_instance10.data = {"county": "Westmorland"} + # + # roof_recommender10 = RoofRecommendations(property_instance=property_instance10, materials=materials) + # + # assert not roof_recommender10.recommendations + # + # roof_recommender10.recommend() + # + # assert len(roof_recommender10.recommendations) == 2 + # + # assert roof_recommender10.recommendations[0]["parts"][0]["depths"] == [220] + # assert roof_recommender10.recommendations[1]["parts"][0]["depths"] == [270] + # + # assert roof_recommender10.recommendations[0]["new_u_value"] == 0.16 + # assert roof_recommender10.recommendations[1]["new_u_value"] == 0.14 + # + # assert roof_recommender10.recommendations[0]["starting_u_value"] == 0.8 + # assert roof_recommender10.recommendations[1]["starting_u_value"] == 0.8 + # + # assert roof_recommender10.recommendations[0]["description"] == \ + # "Insulate your room roof with 220mm of Example room roof insulation" + # assert roof_recommender10.recommendations[1]["description"] == \ + # "Insulate your room roof with 270mm of Example room roof insulation" + # + # def test_flat_no_insulation(self): + # property_instance11 = Property(id=11, address1="fake", postcode="fake", epc_client=Mock()) + # property_instance11.age_band = "D" + # property_instance11.insulation_floor_area = 150 + # property_instance11.roof = { + # 'original_description': 'Flat, no insulation (assumed)', + # 'clean_description': 'Flat, no insulation', + # 'thermal_transmittance': None, 'thermal_transmittance_unit': None, 'is_pitched': False, + # 'is_roof_room': False, 'is_loft': False, 'is_flat': True, 'is_thatched': False, 'is_at_rafters': False, + # 'is_assumed': True, 'has_dwelling_above': False, 'is_valid': True, 'insulation_thickness': 'none' + # } + # property_instance11.data = {"county": "Swindon"} + # + # roof_recommender11 = RoofRecommendations(property_instance=property_instance11, materials=materials) + # + # assert not roof_recommender11.recommendations + # + # roof_recommender11.recommend() + # + # assert len(roof_recommender11.recommendations) == 1 + # + # assert roof_recommender11.recommendations[0]["parts"][0]["depths"] == [270] + # + # assert roof_recommender11.recommendations[0]["new_u_value"] == 0.11 + # + # assert roof_recommender11.recommendations[0]["starting_u_value"] == 2.3 + # + # assert roof_recommender11.recommendations[0]["description"] == \ + # "Insulate the home's flat roof with 270mm of Example flat roof insulation" + # + # def test_flat_insulated(self): + # property_instance12 = Property(id=12, address1="fake", postcode="fake", epc_client=Mock()) + # property_instance12.age_band = "D" + # property_instance12.insulation_floor_area = 150 + # property_instance12.roof = { + # 'original_description': 'Flat, insulated (assumed)', + # 'clean_description': 'Flat, insulated', + # 'thermal_transmittance': None, 'thermal_transmittance_unit': None, 'is_pitched': False, + # 'is_roof_room': False, + # 'is_loft': False, 'is_flat': True, 'is_thatched': False, 'is_at_rafters': False, 'is_assumed': True, + # 'has_dwelling_above': False, 'is_valid': True, 'insulation_thickness': 'average' + # } + # property_instance12.data = {"county": "Thurrock"} + # + # roof_recommender12 = RoofRecommendations(property_instance=property_instance12, materials=materials) + # + # assert not roof_recommender12.recommendations + # + # roof_recommender12.recommend() + # + # assert not roof_recommender12.recommendations + # + # def test_flat_limited_insulation(self): + # property_instance13 = Property(id=12, address1="fake", postcode="fake", epc_client=Mock()) + # property_instance13.age_band = "D" + # property_instance13.insulation_floor_area = 150 + # property_instance13.roof = { + # 'original_description': 'Flat, limited insulation (assumed)', + # 'clean_description': 'Flat, limited insulation', + # 'thermal_transmittance': None, 'thermal_transmittance_unit': None, 'is_pitched': False, + # 'is_roof_room': False, + # 'is_loft': False, 'is_flat': True, 'is_thatched': False, 'is_at_rafters': False, 'is_assumed': True, + # 'has_dwelling_above': False, 'is_valid': True, 'insulation_thickness': 'below average' + # } + # property_instance13.data = {"county": "Tyne and Wear"} + # + # roof_recommender13 = RoofRecommendations(property_instance=property_instance13, materials=materials) + # + # assert not roof_recommender13.recommendations + # + # roof_recommender13.recommend() + # + # assert len(roof_recommender13.recommendations) == 1 + # + # assert roof_recommender13.recommendations[0]["parts"][0]["depths"] == [220] + # + # assert roof_recommender13.recommendations[0]["new_u_value"] == 0.14 + # + # assert roof_recommender13.recommendations[0]["starting_u_value"] == 2.3 + # + # assert roof_recommender13.recommendations[0]["description"] == \ + # "Insulate the home's flat roof with 220mm of Example flat roof insulation" def test_property_above(self): property_instance14 = Property(id=0, address1="fake", postcode="fake", epc_client=Mock()) property_instance14.age_band = "F" - property_instance14.floor_area = 100 + property_instance14.insulation_floor_area = 100 property_instance14.roof = { 'original_description': '(other premises above)', 'clean_description': '(other premises above)', 'thermal_transmittance': 0, @@ -440,10 +372,9 @@ class TestRoofRecommendations: 'is_assumed': False, 'has_dwelling_above': True, 'is_valid': True, 'insulation_thickness': None } + property_instance14.data = {"county": "Suffolk"} - roof_recommender14 = RoofRecommendations( - property_instance=property_instance14, materials=loft_insulation_materials - ) + roof_recommender14 = RoofRecommendations(property_instance=property_instance14, materials=materials) assert not roof_recommender14.recommendations From fb71042c8f948e8a2e2c3306d5294e220c23802f Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Mon, 4 Dec 2023 21:30:32 +0000 Subject: [PATCH 029/526] Flat roof costs - will need review --- backend/app/db/models/materials.py | 4 + etl/costs/app.py | 4 +- recommendations/Costs.py | 90 ++++++++++ recommendations/RoofRecommendations.py | 32 +++- recommendations/county_to_region.py | 1 + recommendations/recommendation_utils.py | 10 +- recommendations/tests/test_costs.py | 81 +++++++++ recommendations/tests/test_data/materials.py | 116 +++++++++++- .../tests/test_recommendation_utils.py | 27 +-- .../tests/test_roof_recommendations.py | 168 +++++++++--------- 10 files changed, 432 insertions(+), 101 deletions(-) diff --git a/backend/app/db/models/materials.py b/backend/app/db/models/materials.py index 64c5e166..1a41f14f 100644 --- a/backend/app/db/models/materials.py +++ b/backend/app/db/models/materials.py @@ -33,6 +33,9 @@ class MaterialType(enum.Enum): ewi_wall_preparation = "ewi_wall_preparation" ewi_wall_redecoration = "ewi_wall_redecoration" low_energy_lighting_installation = "low_energy_lighting_installation" + flat_roof_preparation = "flat_roof_preparation" + flat_roof_vapour_barrier = "flat_roof_vapour_barrier" + flat_roof_waterpoofing = "flat_roof_waterpoofing" class DepthUnit(enum.Enum): @@ -43,6 +46,7 @@ class CostUnit(enum.Enum): gbp_sq_meter = "gbp_sq_meter" gbp_per_unit = "gbp_per_unit" gbp_per_m2 = "gbp_per_m2" + gbp_per_m = "gbp_per_m" class RValueUnit(enum.Enum): diff --git a/etl/costs/app.py b/etl/costs/app.py index 98a324bc..4d53ce28 100644 --- a/etl/costs/app.py +++ b/etl/costs/app.py @@ -74,6 +74,7 @@ def app(): solid_floor_costs = pd.read_excel(DATA_DIRECTORY, sheet_name="solid_floor_insulation", header=0) ewi_costs = pd.read_excel(DATA_DIRECTORY, sheet_name="external_wall_insulation", header=0) lel_costs = pd.read_excel(DATA_DIRECTORY, sheet_name="low_energy_lighting", header=0) + flat_roof_costs = pd.read_excel(DATA_DIRECTORY, sheet_name="flat_roof_insulation", header=0) # Form a single table to be uploaded costs = pd.concat( @@ -84,7 +85,8 @@ def app(): suspended_floor_costs, solid_floor_costs, ewi_costs, - lel_costs + lel_costs, + flat_roof_costs ] ) diff --git a/recommendations/Costs.py b/recommendations/Costs.py index 02d26c14..a57092f9 100644 --- a/recommendations/Costs.py +++ b/recommendations/Costs.py @@ -36,6 +36,10 @@ class Costs: # We assume a conservative 10% contingency for all works which is a rate defined by SPONs CONTINGENCY = 0.1 + # For flat roof, we assume it's a high risk project as it's very weather dependent and also is heavily + # dependent on the quality of the existing roof + FLAT_ROOF_CONTINGENCY = 0.15 + # We use a higher contingency rate for internal wall insulation because of the potential for issues with moving # fittings and trimming doors, as well as scope for damage to the existing wall during preparation. IWI_CONTINGENCY = 0.15 @@ -627,3 +631,89 @@ class Costs: "labour_days": labour_days, "labour_cost": labour_cost } + + def flat_roof_insulation(self, floor_area, material, non_insulation_materials): + """ + A model of a warm, flat roof construction can be seen in this video: + https://www.youtube.com/watch?v=WZ6Ng6YI9OA + Warm, flat roof insulation will normally be 100-125mm in depth + + We break this measure down into the following jobs to be done + 1) Preparation of the room. This involves cleaning the existing roof surface, removing any debris and repairing + any damage. Additionally, an edge barrier will likely need to be installed, to protect the sides of the + roof from water ingress. + 2) Primer Application. A layer of primer is applied to the clean roof surface to enhance the adhestia of + subsequent layers, and seal the existing roof surface. + 3) Vapour Proof Layer Installation. Lay a vapour control layer to prevent moisture ingress from inside the + building, which is essential in warm roof construction. + 4) Insulation Layer Application. Place and securely fix insulation boards over the roof. These could be rigid + boards like PIR (Polyisocyanurate). + 5) Waterproofing Membrane Installation: Cover the insulation (and timber layer, if used) with a + waterproofing membrane, like EPDM, PVC, or bituminous felt. Carefully seal all joints, edges, and around any + roof penetrations to ensure water tightness + + :param floor_area: Area of the flat roof to be insulated, based on the area of the floor + :param material: Selected insulation material + :param non_insulation_materials: Non-insulation materials required for the job + :return: + """ + + preparation_data_m2 = [ + x for x in non_insulation_materials if + (x["type"] == "flat_roof_preparation") and (x["cost_unit"] == "gbp_per_m2") + ] + vapour_barrier_data = [x for x in non_insulation_materials if x["type"] == "flat_roof_vapour_barrier"] + waterproofing_data = [x for x in non_insulation_materials if x["type"] == "flat_roof_waterproofing"] + + if (len(preparation_data_m2) != 2) or (len(vapour_barrier_data) != 1) or ( + len(waterproofing_data) != 1): + raise ValueError("Incorrect number of data entries for non-insulation materials") + + # Break out the individual material costs + preparation_m2_material_costs = sum([x["material_cost"] * floor_area for x in preparation_data_m2]) + vapour_barrier_material_costs = vapour_barrier_data[0]["material_cost"] * floor_area + insulation_material_costs = material["material_cost"] * floor_area + + preparation_m2_labour_costs = sum([x["labour_cost"] * floor_area for x in preparation_data_m2]) + vapour_barrier_labour_costs = vapour_barrier_data[0]["labour_cost"] * floor_area + + # For waterproofing and upstand, we only have a total cost + waterproofing_total_costs = waterproofing_data[0]["total_cost"] * floor_area + + labour_costs = preparation_m2_labour_costs + vapour_barrier_labour_costs + labour_costs = labour_costs * self.labour_adjustment_factor + + materials_costs = preparation_m2_material_costs + vapour_barrier_material_costs + insulation_material_costs + + subtotal_before_profit = labour_costs + materials_costs + waterproofing_total_costs + + contingency_cost = subtotal_before_profit * self.FLAT_ROOF_CONTINGENCY + preliminaries_cost = subtotal_before_profit * self.PRELIMINARIES + profit_cost = subtotal_before_profit * self.PROFIT_MARGIN + + subtotal_before_vat = subtotal_before_profit + contingency_cost + preliminaries_cost + profit_cost + vat_cost = subtotal_before_vat * self.VAT_RATE + total_cost = subtotal_before_vat + vat_cost + + preparation_m2_labour_hours = sum([x["labour_hours_per_unit"] * floor_area for x in preparation_data_m2]) + vapour_barrier_labour_hours = vapour_barrier_data[0]["labour_hours_per_unit"] * floor_area + waterproofing_labour_hours = waterproofing_data[0]["labour_hours_per_unit"] * floor_area + + labour_hours = preparation_m2_labour_hours + vapour_barrier_labour_hours + waterproofing_labour_hours + + # To install flat roof insulation, assume a small/medium project might be conducted by a team of 2-4. + # We'll assume a team of 2 since a lot of the roofs will be on the smaller side and will review this later + labour_days = (labour_hours / 8) / 2 + + return { + "total": total_cost, + "subtotal": subtotal_before_vat, + "vat": vat_cost, + "contingency": contingency_cost, + "preliminaries": preliminaries_cost, + "material": materials_costs, + "profit": profit_cost, + "labour_hours": labour_hours, + "labour_days": labour_days, + "labour_cost": labour_costs + } diff --git a/recommendations/RoofRecommendations.py b/recommendations/RoofRecommendations.py index 07eeb1e5..dc1aff3f 100644 --- a/recommendations/RoofRecommendations.py +++ b/recommendations/RoofRecommendations.py @@ -22,6 +22,8 @@ class RoofRecommendations: # It is recommended that lofts should have at least 270mm of insulation MINIMUM_LOFT_ISULATION_MM = 270 + # Flat roof should have at least 100mm of insulation + MINIMUM_FLAT_ROOF_ISULATION_MM = 100 def __init__( self, @@ -41,6 +43,16 @@ class RoofRecommendations: ] self.loft_non_insulation_materials = [] + self.flat_roof_insulation_materials = [ + part for part in materials if part["type"] == "flat_roof_insulation" + ] + + self.flat_roof_non_insulation_materials = [ + part for part in materials if part["type"] in [ + "flat_roof_preparation", "flat_roof_vapour_barrier", "flat_roof_waterproofing" + ] + ] + def recommend(self): if self.property.roof["has_dwelling_above"]: @@ -50,17 +62,24 @@ class RoofRecommendations: insulation_thickness = convert_thickness_to_numeric( self.property.roof["insulation_thickness"], - self.property.roof["is_pitched"] + self.property.roof["is_pitched"], + self.property.roof["is_flat"] ) # We check if the roof is already insulated and if so, we exit # Building regulations part L recommend installing at least 270mm of insulation, however generally we # experience diminishing returns in terms of SAP once we go beyond around 150mm of insulation - # This only holds true for pitched roofs + # This only holds true for pitched roofs. if (insulation_thickness >= self.MINIMUM_LOFT_ISULATION_MM) and self.property.roof["is_pitched"]: return + if (insulation_thickness >= self.MINIMUM_FLAT_ROOF_ISULATION_MM) and self.property.roof["is_flat"]: + return + + if self.property.roof["is_roof_room"]: + raise ValueError("Update convert_thickness_to_numeric for room roof and implement") + # If we have a u-value already, need to implement this if u_value: if u_value <= self.BUILDING_REGULATIONS_PART_L_MAX_U_VALUE: @@ -139,7 +158,8 @@ class RoofRecommendations: insulation_materials = self.loft_insulation_materials non_insulation_materials = self.loft_non_insulation_materials elif roof["is_flat"]: - raise ValueError("UPDATE ME") + insulation_materials = self.flat_roof_insulation_materials + non_insulation_materials = self.flat_roof_non_insulation_materials else: raise ValueError("Roof is not pitched or flat") @@ -186,7 +206,11 @@ class RoofRecommendations: material=material ) elif material["type"] == "flat_roof_insulation": - raise ValueError("COMPLETE ME") + cost_result = self.costs.flat_roof_insulation( + floor_area=self.property.insulation_floor_area, + material=material, + non_insulation_materials=non_insulation_materials + ) else: raise ValueError("Invalid material type") diff --git a/recommendations/county_to_region.py b/recommendations/county_to_region.py index a881ea01..7ca86715 100644 --- a/recommendations/county_to_region.py +++ b/recommendations/county_to_region.py @@ -157,6 +157,7 @@ county_to_region_map = { 'Sheffield': 'Yorkshire and the Humber', 'South Yorkshire': 'Yorkshire and the Humber', 'Wakefield': 'Yorkshire and the Humber', 'West Yorkshire': 'Yorkshire and the Humber', 'York': 'Yorkshire and the Humber', + 'Westmorland': 'North West England', # Additional mappings requried, based on what we find in the EPC database 'Greater London Authority': 'Inner London', diff --git a/recommendations/recommendation_utils.py b/recommendations/recommendation_utils.py index 5bd77a2a..100ecb15 100644 --- a/recommendations/recommendation_utils.py +++ b/recommendations/recommendation_utils.py @@ -573,7 +573,7 @@ def calculate_r_value_per_mm(thickness_mm, thermal_conductivity_w_mK): return r_value_per_mm -def convert_thickness_to_numeric(string_thickness, is_pitched): +def convert_thickness_to_numeric(string_thickness, is_pitched, is_flat): """ Roof insulation thickness could be a string like "None", "300mm+" or a numeric string. This function will convert these strings to a number for easy usage @@ -597,6 +597,14 @@ def convert_thickness_to_numeric(string_thickness, is_pitched): "average": 100, "above average": 270 } + elif is_flat: + # For a flat roof, if it's below average, we assume it's 0 and requires a re-roof + lookup = { + "none": 0, + "below average": 0, + "average": 100, + "above average": 150 + } else: lookup = { "none": 0, diff --git a/recommendations/tests/test_costs.py b/recommendations/tests/test_costs.py index 2854b298..1d66ff47 100644 --- a/recommendations/tests/test_costs.py +++ b/recommendations/tests/test_costs.py @@ -1,5 +1,6 @@ from recommendations.Costs import Costs from unittest.mock import Mock +import datetime class TestCosts: @@ -418,3 +419,83 @@ class TestCosts: 'profit': 1617.9654432399325, 'labour_hours': 187.02533486285358, 'labour_days': 5.8445417144641745, 'labour_cost': 3921.5600094613983 } + + def test_flat_roof_insulation(self): + mock_property = Mock() + mock_property.data = { + "county": "Northamptonshire" + } + + costs = Costs(mock_property) + flat_roof_material = {'id': 1225, 'type': 'flat_roof_insulation', + 'description': 'Kingspan Thermaroof TR21 zero OPD ' + 'urethene insulation board', + 'depth': 100.0, 'depth_unit': 'mm', 'cost': None, + 'cost_unit': 'gbp_per_m2', 'r_value_per_mm': 0.04, + 'r_value_unit': 'square_meter_kelvin_per_watt', + 'thermal_conductivity': 0.025, + 'thermal_conductivity_unit': 'watt_per_meter_kelvin', + 'link': 'SPONs', + 'created_at': "now", 'is_active': True, + 'prime_material_cost': None, 'material_cost': 50.95, + 'labour_cost': 10.66, 'labour_hours_per_unit': 0.48, + 'plant_cost': 0.0, 'total_cost': 61.61, + 'notes': "SPONs didn't have a labour hours so we use " + "0.48 which is similar to other materials"} + + flat_roof_non_insulation_materials = [ + {'id': 17, 'type': 'mechanical_ventilation', 'description': 'Mechanical Extract Ventilation', 'depth': None, + 'depth_unit': None, 'cost': 500, 'cost_unit': 'gbp_per_unit', 'r_value_per_mm': None, 'r_value_unit': None, + 'thermal_conductivity': None, 'thermal_conductivity_unit': None, 'link': None, + 'created_at': datetime.datetime(2023, 10, 18, 16, 39, 9, 827188), 'is_active': True, + 'prime_material_cost': None, + 'material_cost': None, 'labour_cost': None, 'labour_hours_per_unit': None, 'plant_cost': None, + 'total_cost': None, + 'notes': None}, + {'id': 1221, 'type': 'flat_roof_preparation', + 'description': 'clean surface to receive new damp-proof membrane', + 'depth': 0.0, 'depth_unit': None, 'cost': None, 'cost_unit': 'gbp_per_m2', 'r_value_per_mm': None, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': None, + 'thermal_conductivity_unit': None, + 'link': 'SPONs', 'created_at': datetime.datetime(2023, 12, 4, 20, 1, 49, 298076), 'is_active': True, + 'prime_material_cost': None, 'material_cost': 0.0, 'labour_cost': 4.36, 'labour_hours_per_unit': 0.14, + 'plant_cost': 0.0, 'total_cost': 4.36, + 'notes': 'This data is based on concrete however forms a decent baseline for a Bituminous Felt flat roof'}, + {'id': 1223, 'type': 'flat_roof_preparation', + 'description': 'One coat primer; on wood surfaces before fixing; General surfaces; over 300 mm girth', + 'depth': 0.0, 'depth_unit': None, 'cost': None, 'cost_unit': 'gbp_per_m2', 'r_value_per_mm': None, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': None, + 'thermal_conductivity_unit': None, + 'link': 'SPONs', 'created_at': datetime.datetime(2023, 12, 4, 20, 1, 49, 298076), 'is_active': True, + 'prime_material_cost': None, 'material_cost': 2.49, 'labour_cost': 1.5, 'labour_hours_per_unit': 0.08, + 'plant_cost': 0.0, 'total_cost': 3.99, 'notes': 'SPONs data gives us a baseline for a wood surface'}, + {'id': 1224, 'type': 'flat_roof_vapour_barrier', 'description': 'Visqueen High Performance Vapour Barrier', + 'depth': 0.0, 'depth_unit': None, 'cost': None, 'cost_unit': 'gbp_per_m2', 'r_value_per_mm': None, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': None, + 'thermal_conductivity_unit': None, + 'link': 'SPONs', 'created_at': datetime.datetime(2023, 12, 4, 20, 1, 49, 298076), 'is_active': True, + 'prime_material_cost': 0.58, 'material_cost': 1.21, 'labour_cost': 0.48, 'labour_hours_per_unit': 0.02, + 'plant_cost': 0.0, 'total_cost': 1.69, 'notes': None}, + {'id': 1234, 'type': 'flat_roof_waterproofing', + 'description': '20 mm thick two coat coverings; felt isolating membrane; to concrete (or ' + 'timber) base; flat or to falls or slopes not exceeding 10° from horizontal', + 'depth': 0.0, 'depth_unit': None, 'cost': None, 'cost_unit': 'gbp_per_m2', 'r_value_per_mm': None, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': None, + 'thermal_conductivity_unit': None, 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 12, 4, 20, 1, 49, 298076), 'is_active': True, + 'prime_material_cost': None, 'material_cost': 0.0, 'labour_cost': 0.0, + 'labour_hours_per_unit': 0.5, 'plant_cost': 0.0, 'total_cost': 31.13, 'notes': None} + ] + + flat_roof_floor_results = costs.flat_roof_insulation( + floor_area=33.5, + material=flat_roof_material, + non_insulation_materials=flat_roof_non_insulation_materials + ) + + assert flat_roof_floor_results == {'total': 5325.327767999999, 'subtotal': 4437.773139999999, + 'vat': 887.5546279999999, 'contingency': 459.07998, + 'preliminaries': 306.05332, 'material': 1830.775, 'profit': 612.10664, + 'labour_hours': 24.79, 'labour_days': 1.549375, 'labour_cost': 186.9032} + + assert costs.labour_adjustment_factor == 0.88 diff --git a/recommendations/tests/test_data/materials.py b/recommendations/tests/test_data/materials.py index c0f434a5..d7241be5 100644 --- a/recommendations/tests/test_data/materials.py +++ b/recommendations/tests/test_data/materials.py @@ -7,6 +7,119 @@ materials = [ 'created_at': datetime.datetime(2023, 10, 18, 16, 39, 9, 827188), 'is_active': True, 'prime_material_cost': None, 'material_cost': None, 'labour_cost': None, 'labour_hours_per_unit': None, 'plant_cost': None, 'total_cost': None, 'notes': None}, + {'id': 1221, 'type': 'flat_roof_preparation', 'description': 'clean surface to receive new damp-proof membrane', + 'depth': 0.0, 'depth_unit': None, 'cost': None, 'cost_unit': 'gbp_per_m2', 'r_value_per_mm': None, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': None, 'thermal_conductivity_unit': None, + 'link': 'SPONs', 'created_at': datetime.datetime(2023, 12, 4, 20, 1, 49, 298076), 'is_active': True, + 'prime_material_cost': None, 'material_cost': 0.0, 'labour_cost': 4.36, 'labour_hours_per_unit': 0.14, + 'plant_cost': 0.0, 'total_cost': 4.36, + 'notes': 'This data is based on concrete however forms a decent baseline for a Bituminous Felt flat roof'}, + {'id': 1223, 'type': 'flat_roof_preparation', + 'description': 'One coat primer; on wood surfaces before fixing; General surfaces; over 300 mm girth', + 'depth': 0.0, 'depth_unit': None, 'cost': None, 'cost_unit': 'gbp_per_m2', 'r_value_per_mm': None, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': None, 'thermal_conductivity_unit': None, + 'link': 'SPONs', 'created_at': datetime.datetime(2023, 12, 4, 20, 1, 49, 298076), 'is_active': True, + 'prime_material_cost': None, 'material_cost': 2.49, 'labour_cost': 1.5, 'labour_hours_per_unit': 0.08, + 'plant_cost': 0.0, 'total_cost': 3.99, 'notes': 'SPONs data gives us a baseline for a wood surface'}, + {'id': 1224, 'type': 'flat_roof_vapour_barrier', 'description': 'Visqueen High Performance Vapour Barrier', + 'depth': 0.0, 'depth_unit': None, 'cost': None, 'cost_unit': 'gbp_per_m2', 'r_value_per_mm': None, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': None, 'thermal_conductivity_unit': None, + 'link': 'SPONs', 'created_at': datetime.datetime(2023, 12, 4, 20, 1, 49, 298076), 'is_active': True, + 'prime_material_cost': 0.58, 'material_cost': 1.21, 'labour_cost': 0.48, 'labour_hours_per_unit': 0.02, + 'plant_cost': 0.0, 'total_cost': 1.69, 'notes': None}, {'id': 1225, 'type': 'flat_roof_insulation', + 'description': 'Kingspan Thermaroof TR21 zero OPD ' + 'urethene insulation board', + 'depth': 100.0, 'depth_unit': 'mm', 'cost': None, + 'cost_unit': 'gbp_per_m2', 'r_value_per_mm': 0.04, + 'r_value_unit': 'square_meter_kelvin_per_watt', + 'thermal_conductivity': 0.025, + 'thermal_conductivity_unit': 'watt_per_meter_kelvin', + 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 12, 4, 20, 1, 49, + 298076), 'is_active': True, + 'prime_material_cost': None, 'material_cost': 50.95, + 'labour_cost': 10.66, 'labour_hours_per_unit': 0.48, + 'plant_cost': 0.0, 'total_cost': 61.61, + 'notes': "SPONs didn't have a labour hours so we use " + "0.48 which is similar to other materials"}, + {'id': 1226, 'type': 'flat_roof_insulation', 'description': 'Ravatherm XPS × 500 SL', 'depth': 100.0, + 'depth_unit': 'mm', 'cost': None, 'cost_unit': 'gbp_per_m2', 'r_value_per_mm': 0.03125, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': 0.032, + 'thermal_conductivity_unit': 'watt_per_meter_kelvin', 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 12, 4, 20, 1, 49, 298076), 'is_active': True, 'prime_material_cost': None, + 'material_cost': 22.14, 'labour_cost': 10.66, 'labour_hours_per_unit': 0.48, 'plant_cost': 0.0, 'total_cost': 32.8, + 'notes': None}, + {'id': 1227, 'type': 'flat_roof_insulation', 'description': 'Ravatherm XPS × 500 SL', 'depth': 120.0, + 'depth_unit': 'mm', 'cost': None, 'cost_unit': 'gbp_per_m2', 'r_value_per_mm': 0.03125, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': 0.032, + 'thermal_conductivity_unit': 'watt_per_meter_kelvin', + 'link': 'https://www.panelsystems.co.uk/product/floormate-ravatherm-sb?attribute_pa_group=floormate-500a' + '&attribute_pa_product-name=ravatherm-xps-x-500-sl&attribute_pa_length=1250&attribute_pa_width=600' + '&attribute_pa_thickness=120&attribute_pa_unit-of-sale=pack-3-brds&attribute_pa_min-order-qty=10&gclid' + '=CjwKCAiAjrarBhAWEiwA2qWdCKJK2iqlzUZ-mBFOfCLy2f5TldAbOj7G3LrvYw5JLaigplJAajzYpRoCtB8QAvD_BwE', + 'created_at': datetime.datetime(2023, 12, 4, 20, 1, 49, 298076), 'is_active': True, 'prime_material_cost': None, + 'material_cost': 26.187656, 'labour_cost': 10.66, 'labour_hours_per_unit': 0.48, 'plant_cost': 0.0, + 'total_cost': 36.847656, + 'notes': "SPONs didn't have this thickness, so the material price is based on the fact that on the link, " + "the 120mm thickness is 18% more expensive per board than the 100mm thickness"}, + {'id': 1228, 'type': 'flat_roof_insulation', 'description': 'Ravatherm XPS × 500 SL', 'depth': 140.0, + 'depth_unit': 'mm', 'cost': None, 'cost_unit': 'gbp_per_m2', 'r_value_per_mm': 0.03125, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': 0.032, + 'thermal_conductivity_unit': 'watt_per_meter_kelvin', + 'link': 'https://www.panelsystems.co.uk/product/floormate-ravatherm-sb?attribute_pa_group=floormate-500a' + '&attribute_pa_product-name=ravatherm-xps-x-500-sl&attribute_pa_length=1250&attribute_pa_width=600' + '&attribute_pa_thickness=120&attribute_pa_unit-of-sale=pack-3-brds&attribute_pa_min-order-qty=10&gclid' + '=CjwKCAiAjrarBhAWEiwA2qWdCKJK2iqlzUZ-mBFOfCLy2f5TldAbOj7G3LrvYw5JLaigplJAajzYpRoCtB8QAvD_BwE', + 'created_at': datetime.datetime(2023, 12, 4, 20, 1, 49, 298076), 'is_active': True, 'prime_material_cost': None, + 'material_cost': 31.114737, 'labour_cost': 10.66, 'labour_hours_per_unit': 0.48, 'plant_cost': 0.0, + 'total_cost': 41.77474, + 'notes': "SPONs didn't have this thickness, so the material price is based on the fact that on the link, " + "the 140mm thickness is 40% more expensive per board than the 100mm thickness"}, + {'id': 1229, 'type': 'flat_roof_insulation', 'description': 'Foamglas T3+ Flat Roof Insulation', 'depth': 100.0, + 'depth_unit': 'mm', 'cost': None, 'cost_unit': 'gbp_per_m2', 'r_value_per_mm': 0.027777778, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': 0.036, + 'thermal_conductivity_unit': 'watt_per_meter_kelvin', 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 12, 4, 20, 1, 49, 298076), 'is_active': True, 'prime_material_cost': 95.83, + 'material_cost': 109.09, 'labour_cost': 30.7, 'labour_hours_per_unit': 1.3, 'plant_cost': 0.0, + 'total_cost': 139.79, 'notes': None}, + {'id': 1230, 'type': 'flat_roof_insulation', 'description': 'Foamglas T4+ Flat Roof Insulation', 'depth': 100.0, + 'depth_unit': 'mm', 'cost': None, 'cost_unit': 'gbp_per_m2', 'r_value_per_mm': 0.024390243, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': 0.041, + 'thermal_conductivity_unit': 'watt_per_meter_kelvin', 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 12, 4, 20, 1, 49, 298076), 'is_active': True, 'prime_material_cost': 63.89, + 'material_cost': 76.19, 'labour_cost': 28.34, 'labour_hours_per_unit': 1.2, 'plant_cost': 0.0, + 'total_cost': 104.53, 'notes': None}, + {'id': 1231, 'type': 'flat_roof_insulation', 'description': 'Ecotherm Eco-Versal General Purpose Insulation Board', + 'depth': 100.0, 'depth_unit': 'mm', 'cost': None, 'cost_unit': 'gbp_per_m2', 'r_value_per_mm': 0.045454547, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': 0.022, + 'thermal_conductivity_unit': 'watt_per_meter_kelvin', 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 12, 4, 20, 1, 49, 298076), 'is_active': True, 'prime_material_cost': 15.12, + 'material_cost': 25.96, 'labour_cost': 30.7, 'labour_hours_per_unit': 1.3, 'plant_cost': 0.0, 'total_cost': 56.66, + 'notes': None}, + {'id': 1232, 'type': 'flat_roof_insulation', 'description': 'Ecotherm Eco-Versal General Purpose Insulation Board', + 'depth': 120.0, 'depth_unit': 'mm', 'cost': None, 'cost_unit': 'gbp_per_m2', 'r_value_per_mm': 0.045454547, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': 0.022, + 'thermal_conductivity_unit': 'watt_per_meter_kelvin', 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 12, 4, 20, 1, 49, 298076), 'is_active': True, 'prime_material_cost': 20.16, + 'material_cost': 34.613335, 'labour_cost': 30.7, 'labour_hours_per_unit': 1.3, 'plant_cost': 0.0, + 'total_cost': 65.31333, + 'notes': "SPONs didn't have this thickness, so the material price is based on the fact that on the link, " + "the 120mm thickness is 33% more expensive than the 100mm thickness"}, + {'id': 1233, 'type': 'flat_roof_insulation', 'description': 'Ecotherm Eco-Versal General Purpose Insulation Board', + 'depth': 150.0, 'depth_unit': 'mm', 'cost': None, 'cost_unit': 'gbp_per_m2', 'r_value_per_mm': 0.045454547, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': 0.022, + 'thermal_conductivity_unit': 'watt_per_meter_kelvin', 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 12, 4, 20, 1, 49, 298076), 'is_active': True, 'prime_material_cost': 23.53, + 'material_cost': 34.62, 'labour_cost': 33.06, 'labour_hours_per_unit': 1.4, 'plant_cost': 0.0, 'total_cost': 67.68, + 'notes': None}, {'id': 1234, 'type': 'flat_roof_waterproofing', + 'description': '20 mm thick two coat coverings; felt isolating membrane; to concrete (or ' + 'timber) base; flat or to falls or slopes not exceeding 10° from horizontal', + 'depth': 0.0, 'depth_unit': None, 'cost': None, 'cost_unit': 'gbp_per_m2', 'r_value_per_mm': None, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': None, + 'thermal_conductivity_unit': None, 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 12, 4, 20, 1, 49, 298076), 'is_active': True, + 'prime_material_cost': None, 'material_cost': 0.0, 'labour_cost': 0.0, + 'labour_hours_per_unit': 0.5, 'plant_cost': 0.0, 'total_cost': 31.13, 'notes': None}, {'id': 1109, 'type': 'cavity_wall_insulation', 'description': 'Expanded Polystyrene Beads cavity wall insulation', 'depth': 75.0, 'depth_unit': 'mm', 'cost': None, 'cost_unit': 'gbp_per_m2', 'r_value_per_mm': 0.030303031, 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': 0.033, @@ -832,4 +945,5 @@ materials = [ 'material_cost': 20.0, 'labour_cost': 46.0, 'labour_hours_per_unit': 0.8, 'plant_cost': 0.0, 'total_cost': 66.0, 'notes': 'We estimate the unit economics from the checkatrade article. We assume that the average job consists ' 'of installing 6 lights based on the hamuch article. We use the median value of 400 for a job of 6 ' - 'lights'}] + 'lights'} +] diff --git a/recommendations/tests/test_recommendation_utils.py b/recommendations/tests/test_recommendation_utils.py index 69f0d1b6..aefc70b0 100644 --- a/recommendations/tests/test_recommendation_utils.py +++ b/recommendations/tests/test_recommendation_utils.py @@ -282,19 +282,24 @@ class TestRecommendationUtils: def test_convert_thickness_to_numeric(self): - assert recommendation_utils.convert_thickness_to_numeric("none", True) == 0 - assert recommendation_utils.convert_thickness_to_numeric("below average", True) == 50 - assert recommendation_utils.convert_thickness_to_numeric("average", True) == 100 - assert recommendation_utils.convert_thickness_to_numeric("above average", True) == 270 + assert recommendation_utils.convert_thickness_to_numeric("none", True, False) == 0 + assert recommendation_utils.convert_thickness_to_numeric("below average", True, False) == 50 + assert recommendation_utils.convert_thickness_to_numeric("average", True, False) == 100 + assert recommendation_utils.convert_thickness_to_numeric("above average", True, False) == 270 - assert recommendation_utils.convert_thickness_to_numeric("300+", True) == 300 - assert recommendation_utils.convert_thickness_to_numeric("400+", True) == 400 - assert recommendation_utils.convert_thickness_to_numeric("270", True) == 270 + assert recommendation_utils.convert_thickness_to_numeric("300+", True, False) == 300 + assert recommendation_utils.convert_thickness_to_numeric("400+", True, False) == 400 + assert recommendation_utils.convert_thickness_to_numeric("270", True, False) == 270 - assert recommendation_utils.convert_thickness_to_numeric("none", False) == 0 - assert recommendation_utils.convert_thickness_to_numeric("below average", False) == 100 - assert recommendation_utils.convert_thickness_to_numeric("average", False) == 270 - assert recommendation_utils.convert_thickness_to_numeric("above average", False) == 270 + assert recommendation_utils.convert_thickness_to_numeric("none", False, False) == 0 + assert recommendation_utils.convert_thickness_to_numeric("below average", False, False) == 100 + assert recommendation_utils.convert_thickness_to_numeric("average", False, False) == 270 + assert recommendation_utils.convert_thickness_to_numeric("above average", False, False) == 270 + + assert recommendation_utils.convert_thickness_to_numeric("none", False, True) == 0 + assert recommendation_utils.convert_thickness_to_numeric("below average", False, True) == 0 + assert recommendation_utils.convert_thickness_to_numeric("average", False, True) == 100 + assert recommendation_utils.convert_thickness_to_numeric("above average", False, True) == 150 def test_estimate_perimeter_regular_inputs(): diff --git a/recommendations/tests/test_roof_recommendations.py b/recommendations/tests/test_roof_recommendations.py index 80591970..903f598b 100644 --- a/recommendations/tests/test_roof_recommendations.py +++ b/recommendations/tests/test_roof_recommendations.py @@ -276,89 +276,91 @@ class TestRoofRecommendations: # "Insulate your room roof with 220mm of Example room roof insulation" # assert roof_recommender10.recommendations[1]["description"] == \ # "Insulate your room roof with 270mm of Example room roof insulation" - # - # def test_flat_no_insulation(self): - # property_instance11 = Property(id=11, address1="fake", postcode="fake", epc_client=Mock()) - # property_instance11.age_band = "D" - # property_instance11.insulation_floor_area = 150 - # property_instance11.roof = { - # 'original_description': 'Flat, no insulation (assumed)', - # 'clean_description': 'Flat, no insulation', - # 'thermal_transmittance': None, 'thermal_transmittance_unit': None, 'is_pitched': False, - # 'is_roof_room': False, 'is_loft': False, 'is_flat': True, 'is_thatched': False, 'is_at_rafters': False, - # 'is_assumed': True, 'has_dwelling_above': False, 'is_valid': True, 'insulation_thickness': 'none' - # } - # property_instance11.data = {"county": "Swindon"} - # - # roof_recommender11 = RoofRecommendations(property_instance=property_instance11, materials=materials) - # - # assert not roof_recommender11.recommendations - # - # roof_recommender11.recommend() - # - # assert len(roof_recommender11.recommendations) == 1 - # - # assert roof_recommender11.recommendations[0]["parts"][0]["depths"] == [270] - # - # assert roof_recommender11.recommendations[0]["new_u_value"] == 0.11 - # - # assert roof_recommender11.recommendations[0]["starting_u_value"] == 2.3 - # - # assert roof_recommender11.recommendations[0]["description"] == \ - # "Insulate the home's flat roof with 270mm of Example flat roof insulation" - # - # def test_flat_insulated(self): - # property_instance12 = Property(id=12, address1="fake", postcode="fake", epc_client=Mock()) - # property_instance12.age_band = "D" - # property_instance12.insulation_floor_area = 150 - # property_instance12.roof = { - # 'original_description': 'Flat, insulated (assumed)', - # 'clean_description': 'Flat, insulated', - # 'thermal_transmittance': None, 'thermal_transmittance_unit': None, 'is_pitched': False, - # 'is_roof_room': False, - # 'is_loft': False, 'is_flat': True, 'is_thatched': False, 'is_at_rafters': False, 'is_assumed': True, - # 'has_dwelling_above': False, 'is_valid': True, 'insulation_thickness': 'average' - # } - # property_instance12.data = {"county": "Thurrock"} - # - # roof_recommender12 = RoofRecommendations(property_instance=property_instance12, materials=materials) - # - # assert not roof_recommender12.recommendations - # - # roof_recommender12.recommend() - # - # assert not roof_recommender12.recommendations - # - # def test_flat_limited_insulation(self): - # property_instance13 = Property(id=12, address1="fake", postcode="fake", epc_client=Mock()) - # property_instance13.age_band = "D" - # property_instance13.insulation_floor_area = 150 - # property_instance13.roof = { - # 'original_description': 'Flat, limited insulation (assumed)', - # 'clean_description': 'Flat, limited insulation', - # 'thermal_transmittance': None, 'thermal_transmittance_unit': None, 'is_pitched': False, - # 'is_roof_room': False, - # 'is_loft': False, 'is_flat': True, 'is_thatched': False, 'is_at_rafters': False, 'is_assumed': True, - # 'has_dwelling_above': False, 'is_valid': True, 'insulation_thickness': 'below average' - # } - # property_instance13.data = {"county": "Tyne and Wear"} - # - # roof_recommender13 = RoofRecommendations(property_instance=property_instance13, materials=materials) - # - # assert not roof_recommender13.recommendations - # - # roof_recommender13.recommend() - # - # assert len(roof_recommender13.recommendations) == 1 - # - # assert roof_recommender13.recommendations[0]["parts"][0]["depths"] == [220] - # - # assert roof_recommender13.recommendations[0]["new_u_value"] == 0.14 - # - # assert roof_recommender13.recommendations[0]["starting_u_value"] == 2.3 - # - # assert roof_recommender13.recommendations[0]["description"] == \ - # "Insulate the home's flat roof with 220mm of Example flat roof insulation" + + def test_flat_no_insulation(self): + property_instance11 = Property(id=11, address1="fake", postcode="fake", epc_client=Mock()) + property_instance11.age_band = "D" + property_instance11.insulation_floor_area = 33.5 + property_instance11.perimeter = 24 + property_instance11.roof = { + 'original_description': 'Flat, no insulation (assumed)', + 'clean_description': 'Flat, no insulation', + 'thermal_transmittance': None, 'thermal_transmittance_unit': None, 'is_pitched': False, + 'is_roof_room': False, 'is_loft': False, 'is_flat': True, 'is_thatched': False, 'is_at_rafters': False, + 'is_assumed': True, 'has_dwelling_above': False, 'is_valid': True, 'insulation_thickness': 'none' + } + property_instance11.data = {"county": "Swindon"} + + roof_recommender11 = RoofRecommendations(property_instance=property_instance11, materials=materials) + + assert not roof_recommender11.recommendations + + roof_recommender11.recommend() + + assert len(roof_recommender11.recommendations) == 1 + + assert roof_recommender11.recommendations[0]["parts"][0]["depth"] == 150 + assert roof_recommender11.recommendations[0]["total"] == 4380.84324 + assert roof_recommender11.recommendations[0]["new_u_value"] == 0.14 + assert roof_recommender11.recommendations[0]["starting_u_value"] == 2.3 + assert roof_recommender11.recommendations[0]["description"] == \ + "Insulate the home's flat roof with 150mm of Ecotherm Eco-Versal General Purpose Insulation Board" + + def test_flat_insulated(self): + property_instance12 = Property(id=12, address1="fake", postcode="fake", epc_client=Mock()) + property_instance12.age_band = "D" + property_instance12.insulation_floor_area = 40 + property_instance12.perimeter = 30 + + property_instance12.roof = { + 'original_description': 'Flat, insulated (assumed)', + 'clean_description': 'Flat, insulated', + 'thermal_transmittance': None, 'thermal_transmittance_unit': None, 'is_pitched': False, + 'is_roof_room': False, + 'is_loft': False, 'is_flat': True, 'is_thatched': False, 'is_at_rafters': False, 'is_assumed': True, + 'has_dwelling_above': False, 'is_valid': True, 'insulation_thickness': 'average' + } + property_instance12.data = {"county": "Thurrock"} + + roof_recommender12 = RoofRecommendations(property_instance=property_instance12, materials=materials) + + assert not roof_recommender12.recommendations + + roof_recommender12.recommend() + + assert not roof_recommender12.recommendations + + def test_flat_limited_insulation(self): + property_instance13 = Property(id=12, address1="fake", postcode="fake", epc_client=Mock()) + property_instance13.age_band = "D" + property_instance13.insulation_floor_area = 40 + property_instance13.perimeter = 40 + property_instance13.roof = { + 'original_description': 'Flat, limited insulation (assumed)', + 'clean_description': 'Flat, limited insulation', + 'thermal_transmittance': None, 'thermal_transmittance_unit': None, 'is_pitched': False, + 'is_roof_room': False, + 'is_loft': False, 'is_flat': True, 'is_thatched': False, 'is_at_rafters': False, 'is_assumed': True, + 'has_dwelling_above': False, 'is_valid': True, 'insulation_thickness': 'below average' + } + property_instance13.data = {"county": "Tyne and Wear"} + + roof_recommender13 = RoofRecommendations(property_instance=property_instance13, materials=materials) + + assert not roof_recommender13.recommendations + + roof_recommender13.recommend() + + assert len(roof_recommender13.recommendations) == 1 + + assert roof_recommender13.recommendations[0]["parts"][0]["depth"] == 150 + + assert roof_recommender13.recommendations[0]["total"] == 5199.969120000002 + assert roof_recommender13.recommendations[0]["new_u_value"] == 0.14 + assert roof_recommender13.recommendations[0]["starting_u_value"] == 2.3 + + assert roof_recommender13.recommendations[0]["description"] == \ + "Insulate the home's flat roof with 150mm of Ecotherm Eco-Versal General Purpose Insulation Board" def test_property_above(self): property_instance14 = Property(id=0, address1="fake", postcode="fake", epc_client=Mock()) From a44912defac44ceb64c4305fb65e8ae473fab4d9 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Tue, 5 Dec 2023 09:29:06 +0000 Subject: [PATCH 030/526] set up test file data --- etl/testing_data/birmingham_pilot.py | 137 +++++++++++++++++++++------ 1 file changed, 109 insertions(+), 28 deletions(-) diff --git a/etl/testing_data/birmingham_pilot.py b/etl/testing_data/birmingham_pilot.py index ab39df7e..56f9cc37 100644 --- a/etl/testing_data/birmingham_pilot.py +++ b/etl/testing_data/birmingham_pilot.py @@ -22,49 +22,130 @@ def app(): # Birmingham has a Local Authority Code of E08000025 + # ~~~~~~~~~~~~~~~~~~~~ + # First example + # ~~~~~~~~~~~~~~~~~~~~ # Let's take an EPC D property example_1_reponse = epc_client.domestic.search( params={ "local-authority": "E08000025", "property-type": "house", - } + }, + size=1000 ) + example_1_reponse = example_1_reponse["rows"] + # Get a property with a cavity wall + example_1_reponse_filtered = [ + x for x in example_1_reponse if + "cavity wall, as built, no insulation (assumed)" in x["walls-description"].lower() + ] + example_1_reponse_filtered = [ + x for x in example_1_reponse_filtered if "pitched, no insulation (assumed)" in x["roof-description"].lower() + ] + print(example_1_reponse_filtered[0]["postcode"]) + # 21 Penshaw Grove + print(example_1_reponse_filtered[0]["address1"]) + # B13 9NL + print(example_1_reponse_filtered[0]["built-form"]) + # Mid-Terrace + print(example_1_reponse_filtered[0]["current-energy-rating"]) + # 'D' - g_data = epc_client.domestic.search(params={"energy-band": "g"}, size=n_g) - f_data = epc_client.domestic.search(params={"energy-band": "f"}, size=n_f) - e_data = epc_client.domestic.search(params={"energy-band": "e"}, size=n_e) - d_data = epc_client.domestic.search(params={"energy-band": "d"}, size=n_d) - c_data = epc_client.domestic.search(params={"energy-band": "c"}, size=n_c) - b_data = epc_client.domestic.search(params={"energy-band": "b"}, size=n_b) - a_data = epc_client.domestic.search(params={"energy-band": "a"}, size=n_a) + # ~~~~~~~~~~~~~~~~~~~~ + # Second example + # ~~~~~~~~~~~~~~~~~~~~ - # Combine the final data - final_data = ( - g_data["rows"] + f_data["rows"] + e_data["rows"] + d_data["rows"] + c_data["rows"] + b_data["rows"] - + a_data["rows"] + # Let's take an EPC E property + example_2_reponse = epc_client.domestic.search( + params={ + "local-authority": "E08000025", + "property-type": "house", + "energy-band": "e" + }, + size=1000 ) - - # TODO: We also take homes with just a specific type of wall - - final_data = [ - x for x in final_data if ("cavity wall" in x["walls-description"].lower()) or ( - "solid brick" in x["walls-description"].lower() - ) or ("average thermal transmittance" in x["walls-description"].lower()) + example_2_reponse = example_2_reponse["rows"] + # Get a solid wall example + example_2_reponse_filtered = [ + x for x in example_2_reponse if + "solid brick, as built, no insulation (assumed)" in x["walls-description"].lower() + ] + # With some existing loft insulation + example_2_reponse_filtered = [ + x for x in example_2_reponse_filtered if "pitched, 100 mm loft insulation" in x["roof-description"].lower() ] - # TODO: For the moment, don't use park homes - final_csv_data = pd.DataFrame( - [{"address": x["address"], "postcode": x["postcode"], "Notes": None} for x - in final_data if - x["property-type"] not in ["Park home"]] - ) + print(example_2_reponse_filtered[0]["postcode"]) + # B13 9BY + print(example_2_reponse_filtered[0]["address1"]) + # 2 Bloomfield Road + print(example_2_reponse_filtered[0]["built-form"]) + # Semi-Detached + print(example_2_reponse_filtered[0]["current-energy-rating"]) + # E - final_csv_data = pd.concat([starting_csv, final_csv_data]).reset_index(drop=True) + # ~~~~~~~~~~~~~~~~~~~~ + # Third example + # ~~~~~~~~~~~~~~~~~~~~ + example_3_reponse = epc_client.domestic.search( + params={ + "local-authority": "E08000025", + "property-type": "house", + "energy-band": "f" + }, + size=1000 + ) + example_3_reponse = example_3_reponse["rows"] + print(example_3_reponse[2]["walls-description"]) + print(example_3_reponse[2]["floor-description"]) + print(example_3_reponse[3]["roof-description"]) + print(example_3_reponse[3]["postcode"]) + # B32 3DG + print(example_3_reponse[3]["address1"]) + # 18 Parkside + print(example_3_reponse[3]["built-form"]) + # End-Terrace + + # ~~~~~~~~~~~~~~~~~~~~ + # Final example + # ~~~~~~~~~~~~~~~~~~~~ + # Let's take a flat that is a D + example_4_reponse = epc_client.domestic.search( + params={ + "local-authority": "E08000025", + "property-type": "flat", + "energy-band": "d" + }, + size=1000 + ) + example_4_reponse = example_4_reponse["rows"] + + example_4_reponse_filtered = [ + x for x in example_4_reponse if + "cavity wall, as built, no insulation (assumed)" in x["walls-description"].lower() + ] + print(example_4_reponse_filtered[0]["postcode"]) + # B14 6PU + print(example_4_reponse_filtered[0]["address1"]) + # Flat 3 + + print(example_4_reponse_filtered[0]["floor-description"]) + print(example_4_reponse_filtered[0]["property-type"]) + # Flat + + test_file = pd.DataFrame( + [ + {"address": "21 Penshaw Grove", "postcode": "B13 9NL", "Notes": None}, + {"address": "2 Bloomfield Road", "postcode": "B13 9BY", "Notes": None}, + {"address": "18 Parkside", "postcode": "B32 3DG", "Notes": None}, + {"address": "Flat 3", "postcode": "B14 6PU", "Notes": None}, + ] + ) # Store the data in s3 filename = f"{USER_ID}/{PORTFOLIO_ID}/test_inputs.csv" save_csv_to_s3( - dataframe=final_csv_data, + dataframe=test_file, bucket_name="retrofit-plan-inputs-dev", file_name=filename ) @@ -73,7 +154,7 @@ def app(): "portfolio_id": str(PORTFOLIO_ID), "housing_type": "Social", "goal": "Increase EPC", - "goal_value": "B", + "goal_value": "C", "trigger_file_path": filename } print(body) From 84bcb99ad994d8e3ac5c9e7b034af8f0a3b9b70a Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Tue, 5 Dec 2023 11:02:12 +0000 Subject: [PATCH 031/526] Added further placeholder valuation figures and added mvp valuation increase methodology --- .idea/Model.iml | 2 +- .idea/misc.xml | 2 +- backend/app/db/models/materials.py | 2 +- backend/ml_models/Valuation.py | 109 +++++++++++++++++++++++++++-- 4 files changed, 105 insertions(+), 10 deletions(-) diff --git a/.idea/Model.iml b/.idea/Model.iml index b0f9c00d..4413bb06 100644 --- a/.idea/Model.iml +++ b/.idea/Model.iml @@ -7,7 +7,7 @@ - + diff --git a/.idea/misc.xml b/.idea/misc.xml index 1122b380..6f308057 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -3,7 +3,7 @@ - + diff --git a/backend/app/db/models/materials.py b/backend/app/db/models/materials.py index 1a41f14f..f887fc25 100644 --- a/backend/app/db/models/materials.py +++ b/backend/app/db/models/materials.py @@ -35,7 +35,7 @@ class MaterialType(enum.Enum): low_energy_lighting_installation = "low_energy_lighting_installation" flat_roof_preparation = "flat_roof_preparation" flat_roof_vapour_barrier = "flat_roof_vapour_barrier" - flat_roof_waterpoofing = "flat_roof_waterpoofing" + flat_roof_waterproofing = "flat_roof_waterproofing" class DepthUnit(enum.Enum): diff --git a/backend/ml_models/Valuation.py b/backend/ml_models/Valuation.py index ad296409..6888e45e 100644 --- a/backend/ml_models/Valuation.py +++ b/backend/ml_models/Valuation.py @@ -1,22 +1,117 @@ +import numpy as np + + class PropertyValuation: """ This is a placeholder class for the property valuation model """ UPRN_VALUE_LOOKUP = { - 15038202: {"current_value": 202000, "increase_percentage": 0.05725}, - 37024763: {"current_value": 213000, "increase_percentage": 0.025}, + 15038202: 202000, + 37024763: 213000, + 100070478545: 212000, + 100070297696: 235000, + 100070476394: 222000, # Based on Zoopla's estimation of next door, 20 Parkside + 100071264896: 128000, + # Based on next door neighbour: https://themovemarket.com/tools/propertyprices/flat-2-queens-wood-house-219 + # -brandwood-road-birmingham-b14-6pu } + # We base our valuation uplifts on a number of sources + # https://www.moneysupermarket.com/gas-and-electricity/value-of-efficiency/ + MSM_MAPPING = [ + {"start": "G", "end": "F", "increase_percentage": 0.06}, + {"start": "F", "end": "E", "increase_percentage": 0.01}, + {"start": "E", "end": "D", "increase_percentage": 0.01}, + {"start": "D", "end": "C", "increase_percentage": 0.02}, + {"start": "C", "end": "B", "increase_percentage": 0.04}, + {"start": "B", "end": "A", "increase_percentage": 0.0}, + ] + + # https://www.lloydsbankinggroup.com/media/press-releases/2021/halifax/homebuyers-pay-a-green-premium-of-40000 + # -for-the-most-energy-efficient-properties.html + LLOYDS_MAPPING = [ + {"start": "G", "end": "F", "increase_percentage": 0.038}, + {"start": "F", "end": "E", "increase_percentage": 0.029}, + {"start": "E", "end": "D", "increase_percentage": 0.024}, + {"start": "D", "end": "C", "increase_percentage": 0.02}, + {"start": "C", "end": "B", "increase_percentage": 0.02}, + {"start": "B", "end": "A", "increase_percentage": 0.018}, + ] + + KNIGHT_FRANK_MAPPING = [ + {"start": "D", "end": "C", "increase_percentage": 0.03}, + {"start": "D", "end": "B", "increase_percentage": 0.088}, + ] + + NATIONWIDE_MAPPING = [ + {"start": "G", "end": "D", "increase_percentage": 0.035}, + {"start": "F", "end": "D", "increase_percentage": 0.035}, + {"start": "D", "end": "B", "increase_percentage": 0.017}, + {"start": "D", "end": "A", "increase_percentage": 0.017}, + ] + + EPC_BANDS = ["G", "F", "E", "D", "C", "B", "A"] + + @classmethod + def get_increase(cls, epc_band_range): + + increases = [] + for i in range(len(epc_band_range)): + + if i == len(epc_band_range) - 1: + break + + current = epc_band_range[i] + next = epc_band_range[i + 1] + + msm_increase = [x for x in cls.MSM_MAPPING if x["start"] == current and x["end"] == next][0] + lloyds_increase = [x for x in cls.LLOYDS_MAPPING if x["start"] == current and x["end"] == next][0] + + increases.append( + { + "start": current, + "end": next, + "msm_increase": msm_increase["increase_percentage"], + "lloyds_increase": lloyds_increase["increase_percentage"], + } + ) + + # We now aggregate the increases. The should be compound increases so we multiply them together + msm_increase = np.prod([1 + x["msm_increase"] for x in increases]) - 1 + lloyds_increase = np.prod([1 + x["lloyds_increase"] for x in increases]) - 1 + + return msm_increase, lloyds_increase + @classmethod def estimate(cls, property_instance, target_epc): - data = cls.UPRN_VALUE_LOOKUP.get(property_instance.uprn) + value = cls.UPRN_VALUE_LOOKUP.get(property_instance.uprn) - if not data: + if not value: raise ValueError("Have not implemented valuation for this property") - new_valuation = (1 + data["increase_percentage"]) * data["current_value"] + current_epc = property_instance.data["current-energy-rating"] + # We get the spectrum of ratings between the current and target EPC + epc_band_range = cls.EPC_BANDS[cls.EPC_BANDS.index(current_epc): cls.EPC_BANDS.index(target_epc) + 1] - increase = round(new_valuation - data["current_value"], 2) + msm_increase, lloyds_increase = cls.get_increase(epc_band_range) - return increase + # We now use the knight frank and nationwide data to get further valuation evidence, if we have it + kf_increase = [x for x in cls.KNIGHT_FRANK_MAPPING if x["start"] == current_epc and x["end"] == target_epc] + nw_increase = [x for x in cls.NATIONWIDE_MAPPING if x["start"] == current_epc and x["end"] == target_epc] + + kf_increase = kf_increase[0]["increase_percentage"] if kf_increase else None + nw_increase = nw_increase[0]["increase_percentage"] if nw_increase else None + + all_increases = [x for x in [msm_increase, lloyds_increase, kf_increase, nw_increase] if x is not None] + + max_increase = max(all_increases) + min_increase = min(all_increases) + avg_increase = np.mean(all_increases) + + return { + "current_value": value, + "lower_bound_increased_value": value * (1 + min_increase), + "upper_bound_increased_value": value * (1 + max_increase), + "average_increased_value": value * (1 + avg_increase), + } From 195578a1aa0d95b02ec7de428b572305da087718 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Tue, 5 Dec 2023 11:05:26 +0000 Subject: [PATCH 032/526] integrated new valuation into backend router --- backend/app/plan/router.py | 66 ++++++++++++++++++++------------------ 1 file changed, 34 insertions(+), 32 deletions(-) diff --git a/backend/app/plan/router.py b/backend/app/plan/router.py index 42014bb3..a35f36ec 100644 --- a/backend/app/plan/router.py +++ b/backend/app/plan/router.py @@ -492,38 +492,38 @@ async def trigger_plan(body: PlanTriggerRequest): for p in batch_properties: # Your existing operations - property_details_epc = p.get_property_details_epc( - portfolio_id=body.portfolio_id, rating_lookup=rating_lookup - ) - create_property_details_epc(session, property_details_epc) - - update_or_create_property_spatial_details(session, p.uprn, p.spatial) - - # TODO: TEMP - if p.data["uprn"] == "": - print("Get rid of me!") - p.data["uprn"] = 0 - - property_data = p.get_full_property_data() - update_property_data( - session, property_id=p.id, portfolio_id=body.portfolio_id, property_data=property_data - ) - + # property_details_epc = p.get_property_details_epc( + # portfolio_id=body.portfolio_id, rating_lookup=rating_lookup + # ) + # create_property_details_epc(session, property_details_epc) + # + # update_or_create_property_spatial_details(session, p.uprn, p.spatial) + # + # # TODO: TEMP + # if p.data["uprn"] == "": + # print("Get rid of me!") + # p.data["uprn"] = 0 + # + # property_data = p.get_full_property_data() + # update_property_data( + # session, property_id=p.id, portfolio_id=body.portfolio_id, property_data=property_data + # ) + # recommendations_to_upload = recommendations.get(p.id, []) - if not recommendations_to_upload: - continue - - new_plan_id = create_plan(session, { - "portfolio_id": body.portfolio_id, - "property_id": p.id, - "is_default": True - }) - - uploaded_recommendation_ids = upload_recommendations(session, recommendations_to_upload, p.id) - - create_plan_recommendations( - session, plan_id=new_plan_id, recommendation_ids=uploaded_recommendation_ids - ) + # if not recommendations_to_upload: + # continue + # + # new_plan_id = create_plan(session, { + # "portfolio_id": body.portfolio_id, + # "property_id": p.id, + # "is_default": True + # }) + # + # uploaded_recommendation_ids = upload_recommendations(session, recommendations_to_upload, p.id) + # + # create_plan_recommendations( + # session, plan_id=new_plan_id, recommendation_ids=uploaded_recommendation_ids + # ) # Get defaults default_recommendations = [r for r in recommendations_to_upload if r["default"]] @@ -531,8 +531,10 @@ async def trigger_plan(body: PlanTriggerRequest): new_sap_points = float(p.data["current-energy-efficiency"]) + total_sap_points new_epc = sap_to_epc(new_sap_points) + valuations = PropertyValuation.estimate(property_instance=p, target_epc=new_epc) + property_valuation_increases.append( - PropertyValuation.estimate(property_instance=p, target_epc=new_epc) + valuations["average_increased_value"] - valuations["current_value"] ) # Commit the session after each batch From 62ec498d3f163a1644111e95acb51da49b882a11 Mon Sep 17 00:00:00 2001 From: Michael Duong Date: Tue, 5 Dec 2023 11:33:35 +0000 Subject: [PATCH 033/526] add gitignore for data --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 89e265cd..75f9cd1c 100644 --- a/.gitignore +++ b/.gitignore @@ -241,6 +241,7 @@ fabric.properties # Locally stored data local_data/* /local_data/* +etl/epc/local_data/* *.DS_Store infrastructure/terraform/.terraform* From a45164e29eca0434f3dbc00f84eae7196e448c8e Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Tue, 5 Dec 2023 12:12:12 +0000 Subject: [PATCH 034/526] Changed properties to social housing homes for birmingham pilot --- backend/app/plan/router.py | 62 ++++++++++++++-------------- backend/ml_models/Valuation.py | 2 +- etl/testing_data/birmingham_pilot.py | 57 ++++++++++++++++--------- 3 files changed, 70 insertions(+), 51 deletions(-) diff --git a/backend/app/plan/router.py b/backend/app/plan/router.py index a35f36ec..adc9eac1 100644 --- a/backend/app/plan/router.py +++ b/backend/app/plan/router.py @@ -492,38 +492,38 @@ async def trigger_plan(body: PlanTriggerRequest): for p in batch_properties: # Your existing operations - # property_details_epc = p.get_property_details_epc( - # portfolio_id=body.portfolio_id, rating_lookup=rating_lookup - # ) - # create_property_details_epc(session, property_details_epc) - # - # update_or_create_property_spatial_details(session, p.uprn, p.spatial) - # - # # TODO: TEMP - # if p.data["uprn"] == "": - # print("Get rid of me!") - # p.data["uprn"] = 0 - # - # property_data = p.get_full_property_data() - # update_property_data( - # session, property_id=p.id, portfolio_id=body.portfolio_id, property_data=property_data - # ) - # + property_details_epc = p.get_property_details_epc( + portfolio_id=body.portfolio_id, rating_lookup=rating_lookup + ) + create_property_details_epc(session, property_details_epc) + + update_or_create_property_spatial_details(session, p.uprn, p.spatial) + + # TODO: TEMP + if p.data["uprn"] == "": + print("Get rid of me!") + p.data["uprn"] = 0 + + property_data = p.get_full_property_data() + update_property_data( + session, property_id=p.id, portfolio_id=body.portfolio_id, property_data=property_data + ) + recommendations_to_upload = recommendations.get(p.id, []) - # if not recommendations_to_upload: - # continue - # - # new_plan_id = create_plan(session, { - # "portfolio_id": body.portfolio_id, - # "property_id": p.id, - # "is_default": True - # }) - # - # uploaded_recommendation_ids = upload_recommendations(session, recommendations_to_upload, p.id) - # - # create_plan_recommendations( - # session, plan_id=new_plan_id, recommendation_ids=uploaded_recommendation_ids - # ) + if not recommendations_to_upload: + continue + + new_plan_id = create_plan(session, { + "portfolio_id": body.portfolio_id, + "property_id": p.id, + "is_default": True + }) + + uploaded_recommendation_ids = upload_recommendations(session, recommendations_to_upload, p.id) + + create_plan_recommendations( + session, plan_id=new_plan_id, recommendation_ids=uploaded_recommendation_ids + ) # Get defaults default_recommendations = [r for r in recommendations_to_upload if r["default"]] diff --git a/backend/ml_models/Valuation.py b/backend/ml_models/Valuation.py index 6888e45e..51925b22 100644 --- a/backend/ml_models/Valuation.py +++ b/backend/ml_models/Valuation.py @@ -10,7 +10,7 @@ class PropertyValuation: 15038202: 202000, 37024763: 213000, 100070478545: 212000, - 100070297696: 235000, + 100070297696: 662000, # Based on Zoopla's estimation of nearby house, 8 bloomfield road 100070476394: 222000, # Based on Zoopla's estimation of next door, 20 Parkside 100071264896: 128000, # Based on next door neighbour: https://themovemarket.com/tools/propertyprices/flat-2-queens-wood-house-219 diff --git a/etl/testing_data/birmingham_pilot.py b/etl/testing_data/birmingham_pilot.py index 56f9cc37..a049e35e 100644 --- a/etl/testing_data/birmingham_pilot.py +++ b/etl/testing_data/birmingham_pilot.py @@ -42,10 +42,15 @@ def app(): example_1_reponse_filtered = [ x for x in example_1_reponse_filtered if "pitched, no insulation (assumed)" in x["roof-description"].lower() ] + # Get a social housing property + example_1_reponse_filtered = [ + x for x in example_1_reponse_filtered if x["tenure"] == "Rented (social)" + ] + print(example_1_reponse_filtered[0]["postcode"]) - # 21 Penshaw Grove + # B13 9LT print(example_1_reponse_filtered[0]["address1"]) - # B13 9NL + # 113 Tenby Road print(example_1_reponse_filtered[0]["built-form"]) # Mid-Terrace print(example_1_reponse_filtered[0]["current-energy-rating"]) @@ -74,11 +79,15 @@ def app(): example_2_reponse_filtered = [ x for x in example_2_reponse_filtered if "pitched, 100 mm loft insulation" in x["roof-description"].lower() ] + # Get a social housing property + example_2_reponse_filtered = [ + x for x in example_2_reponse_filtered if x["tenure"] == "Rented (social)" + ] print(example_2_reponse_filtered[0]["postcode"]) - # B13 9BY + # B28 8JF print(example_2_reponse_filtered[0]["address1"]) - # 2 Bloomfield Road + # 139 School Road print(example_2_reponse_filtered[0]["built-form"]) # Semi-Detached print(example_2_reponse_filtered[0]["current-energy-rating"]) @@ -96,15 +105,20 @@ def app(): size=1000 ) example_3_reponse = example_3_reponse["rows"] - print(example_3_reponse[2]["walls-description"]) - print(example_3_reponse[2]["floor-description"]) - print(example_3_reponse[3]["roof-description"]) - print(example_3_reponse[3]["postcode"]) - # B32 3DG - print(example_3_reponse[3]["address1"]) - # 18 Parkside - print(example_3_reponse[3]["built-form"]) - # End-Terrace + # Get a social housing property] + example_3_reponse_filtered = [ + x for x in example_3_reponse if x["tenure"] == "Rented (social)" + ] + + print(example_3_reponse_filtered[4]["walls-description"]) + print(example_3_reponse_filtered[4]["floor-description"]) + print(example_3_reponse_filtered[4]["roof-description"]) + print(example_3_reponse_filtered[4]["postcode"]) + # B32 1SL + print(example_3_reponse_filtered[4]["address1"]) + # 77 Simmons Drive + print(example_3_reponse_filtered[4]["built-form"]) + # Semi-Detached # ~~~~~~~~~~~~~~~~~~~~ # Final example @@ -124,10 +138,14 @@ def app(): x for x in example_4_reponse if "cavity wall, as built, no insulation (assumed)" in x["walls-description"].lower() ] + # Get a social housing property + example_4_reponse_filtered = [ + x for x in example_4_reponse_filtered if x["tenure"] == "Rented (social)" + ] print(example_4_reponse_filtered[0]["postcode"]) - # B14 6PU + # B32 1LS print(example_4_reponse_filtered[0]["address1"]) - # Flat 3 + # Flat 2 print(example_4_reponse_filtered[0]["floor-description"]) print(example_4_reponse_filtered[0]["property-type"]) @@ -135,10 +153,11 @@ def app(): test_file = pd.DataFrame( [ - {"address": "21 Penshaw Grove", "postcode": "B13 9NL", "Notes": None}, - {"address": "2 Bloomfield Road", "postcode": "B13 9BY", "Notes": None}, - {"address": "18 Parkside", "postcode": "B32 3DG", "Notes": None}, - {"address": "Flat 3", "postcode": "B14 6PU", "Notes": None}, + # New properties + {"address": "113 Tenby Road", "postcode": "B13 9LT", "Notes": None}, + {"address": "139 School Road", "postcode": "B28 8JF", "Notes": None}, + {"address": "77 Simmons Drive", "postcode": "B32 1SL", "Notes": None}, + {"address": "Flat 2, 54 Wedgewood Road", "postcode": "B32 1LS", "Notes": None}, ] ) From d76dc3fc56f4828bed707e9f16ad6000f4dbea8b Mon Sep 17 00:00:00 2001 From: Michael Duong Date: Tue, 5 Dec 2023 12:32:48 +0000 Subject: [PATCH 035/526] add validation layer --- etl/epc/ValidationConfiguration.py | 23 ++++++++++ etl/epc/property_change_app.py | 67 +++++++++++++++++++++++++++--- 2 files changed, 84 insertions(+), 6 deletions(-) create mode 100644 etl/epc/ValidationConfiguration.py diff --git a/etl/epc/ValidationConfiguration.py b/etl/epc/ValidationConfiguration.py new file mode 100644 index 00000000..c2487706 --- /dev/null +++ b/etl/epc/ValidationConfiguration.py @@ -0,0 +1,23 @@ +""" +Specify the validation rules for each field in the differents record. +""" + +def validate_walls_description(value): + if value not in ["Cavity", "Solid", "System built", "Timber frame", "Suspended timber", "Other"]: + raise ValueError("Walls description is not valid") + +EPCRecordValidationConfiguration = { + "WALLS_DESCRIPTION": { + "type": "string", + "acceptable_values": ["Cavity", "Solid", "System built", "Timber frame", "Suspended timber", "Other"] + "function": validate_walls_description + }, + "FLOOR_DESCRIPTION": { + "type": "string", + "acceptable_values": ["Solid", "Suspended", "Other"] + }, + "ENERGY_CONSUMPTION_CURRENT": { + "type": "float", + "range": [0, 100] + } +} diff --git a/etl/epc/property_change_app.py b/etl/epc/property_change_app.py index 471fe7b0..a792ae4a 100644 --- a/etl/epc/property_change_app.py +++ b/etl/epc/property_change_app.py @@ -398,6 +398,8 @@ def compare_records(earliest_record: pd.Series, latest_record: pd.Series, column return True from dataclasses import dataclass +from etl.epc.ValidationConfiguration import EPCRecordValidationConfiguration +from typing import Union @dataclass class EPCRecord: """ @@ -443,6 +445,62 @@ class EPCRecord: ENERGY_CONSUMPTION_CURRENT: int CO2_EMISSIONS_CURRENT: float + def __post_init__(self): + # We can have validation and cleaning steps for each of the fields + self.WALLS_DESCRIPTION = 'check' + + self._field_validation() + + def _field_validation(self): + """ + This method will validate each of the fields in the EPC record + """ + self.validation_configuration = EPCRecordValidationConfiguration + + for record_key, validation_config in self.validation_configuration.items(): + # Get the variable named record key from self + field_value = self.__dict__[record_key] + + if validation_config['type'] == "string": + self._validate_string(record_key, field_value, validation_config) + elif validation_config['type'] == "float": + self._validate_float(field_value, validation_config) + else: + raise ValueError(f"Validation type {validation_config['type']} not supported") + + def _validate_string(self, record_key: str, field_value: Union[str, float], validation_config: dict): + """ + Validate a string field + """ + + if 'function' in validation_config: + try: + validation_config['function'](field_value) + except: + raise ValueError(f"Field {record_key} has value {field_value} which does not pass the validation function {validation_config['function']}") + + if validation_config['acceptable_values'] is not None: + if field_value not in validation_config['acceptable_values']: + raise ValueError(f"Field {record_key} has value {field_value} which is not in the acceptable values of {validation_config['acceptable_values']}") + + def _validate_float(self, record_key: str, field_value: Union[str, float], validation_config: dict): + """ + Validate a float field + """ + + if 'function' in validation_config: + try: + validation_config['function'](field_value) + except: + raise ValueError(f"Field {record_key} has value {field_value} which does not pass the validation function {validation_config['function']}") + + if validation_config['range'] is not None: + if field_value < validation_config['range'][0] or field_value > validation_config['range'][1]: + raise ValueError(f"Field {record_key} has value {field_value} which is not in the acceptable range of {validation_config['range']}") + + + + # def __init__(self, num) -> None: # self.num = num @@ -450,11 +508,6 @@ class EPCRecord: # return self.num - other.num -test = EPCRecord(10) -test2 = EPCRecord(20) -test - test2 - - def app(): # Get all the files in the directory @@ -484,7 +537,7 @@ def app(): data_by_urpn = [] for uprn, property_data in df.groupby("UPRN", observed=True): - + # Fixed features - these are property attributes that shouldn't change over time fixed_data = {} @@ -515,6 +568,8 @@ def app(): # Note: we look at changes between subsequent EPCS, however we could look at other permutations # e.g. first vs second, second vs third and also first vs third property_model_data = [] + + temp = [EPCRecord(**x) for x in variable_data.to_dict(orient='records')] for idx in range(0, property_data.shape[0] - 1): if idx >= property_data.shape[0] - 1: From db7eb69dd10621843f8ae3b693005882432c33d3 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Tue, 5 Dec 2023 13:30:45 +0000 Subject: [PATCH 036/526] handle bug where neigther ewi or iwi are selected as options via optimisation --- backend/app/plan/router.py | 11 +++++++++++ backend/ml_models/Valuation.py | 4 ++++ 2 files changed, 15 insertions(+) diff --git a/backend/app/plan/router.py b/backend/app/plan/router.py index adc9eac1..6954d89f 100644 --- a/backend/app/plan/router.py +++ b/backend/app/plan/router.py @@ -298,6 +298,17 @@ async def trigger_plan(body: PlanTriggerRequest): t for t in missing_types if t not in ["internal_wall_insulation", "external_wall_insulation"] ] + # We check if NO wall insulation was selected but iwi and ewi are available + # This condition will check + # 1) iwi and ewi are both in missing_types + # 2) iwi and ewi are not in default_types + # If both of these are true, it means that no wall insulation was selected via the optimisation routine + # but both are possible, so we need to select a default. We default to iwi because it's usually cheaper + if (("internal_wall_insulation" in missing_types) and ("external_wall_insulation" in missing_types)) and ( + ("internal_wall_insulation" not in default_types) and ("external_wall_insulation" not in default_types) + ): + missing_types = [t for t in missing_types if t != "external_wall_insulation"] + if missing_types: for missed_type in missing_types: missed = [r for r in property_recommendations if r["type"] == missed_type] diff --git a/backend/ml_models/Valuation.py b/backend/ml_models/Valuation.py index 51925b22..9e409b9f 100644 --- a/backend/ml_models/Valuation.py +++ b/backend/ml_models/Valuation.py @@ -15,6 +15,10 @@ class PropertyValuation: 100071264896: 128000, # Based on next door neighbour: https://themovemarket.com/tools/propertyprices/flat-2-queens-wood-house-219 # -brandwood-road-birmingham-b14-6pu + 100070533688: 218000, # Based on Zoopla's estimation of 95 Tenby Road, which is also end terrace + 100070505235: 344000, # Based on Zoopla's estimation of 131 School road, which is also semi-detached + 100070513306: 182000, # Based on Zoopla's estimation of 61 Simmons Drive + 100071306896: 77000, # Based on Flat 2 of 44 Wedgewood Road on Zoopla } # We base our valuation uplifts on a number of sources From 99d1e9b790609455d5287d48813329c78406b3f5 Mon Sep 17 00:00:00 2001 From: Michael Duong Date: Tue, 5 Dec 2023 13:43:40 +0000 Subject: [PATCH 037/526] add basic check --- etl/epc/property_change_app.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/etl/epc/property_change_app.py b/etl/epc/property_change_app.py index a792ae4a..36eb31b6 100644 --- a/etl/epc/property_change_app.py +++ b/etl/epc/property_change_app.py @@ -472,7 +472,9 @@ class EPCRecord: """ Validate a string field """ - + if not isinstance(field_value, str): + raise ValueError(f"Field {record_key} has value {field_value} which is not a string") + if 'function' in validation_config: try: validation_config['function'](field_value) @@ -487,6 +489,8 @@ class EPCRecord: """ Validate a float field """ + if not isinstance(field_value, float): + raise ValueError(f"Field {record_key} has value {field_value} which is not a float") if 'function' in validation_config: try: From bf6020026a6d2231232b7f4e2e633939bdfcd184 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Tue, 5 Dec 2023 14:51:20 +0000 Subject: [PATCH 038/526] modified energy estimate adjustment to use current epc rating rather than expected --- backend/app/plan/router.py | 4 +--- backend/ml_models/AnnualBillSavings.py | 21 +++++++++++++++++++++ 2 files changed, 22 insertions(+), 3 deletions(-) diff --git a/backend/app/plan/router.py b/backend/app/plan/router.py index 6954d89f..b5acb3c0 100644 --- a/backend/app/plan/router.py +++ b/backend/app/plan/router.py @@ -415,12 +415,10 @@ async def trigger_plan(body: PlanTriggerRequest): # We sum up the SAP points of the default recommendations and calculate a new EPC category. This # category is then used to produce adjusted energy figures - total_sap_points = sum([x["sap_points"] for x in representative_recs[property_id]]) - expected_epc = sap_to_epc(float(property_instance.data["current-energy-efficiency"]) + total_sap_points) expected_adjusted_energy = AnnualBillSavings.adjust_energy_to_metered( epc_energy_consumption=expected_heat_demand, - current_epc_rating=expected_epc, + current_epc_rating=property_instance.data["current-energy-rating"], ) heat_demand_change = ( diff --git a/backend/ml_models/AnnualBillSavings.py b/backend/ml_models/AnnualBillSavings.py index 1519a866..f3e5074a 100644 --- a/backend/ml_models/AnnualBillSavings.py +++ b/backend/ml_models/AnnualBillSavings.py @@ -18,6 +18,8 @@ class AnnualBillSavings: # This is a weighted mean of the price caps, using the consumption figures above as weights PRICE_FACTOR = 0.11183098591549295 + EPC_BANDS = ["G", "F", "E", "D", "C", "B", "A"] + @classmethod def estimate(cls, kwh: float): """ @@ -70,3 +72,22 @@ class AnnualBillSavings: adjusted_consumption = (epc_energy_consumption + consumption_difference) return adjusted_consumption + + @classmethod + def adjust_expected_band(cls, expected_epc_rating, current_epc_rating): + """ + Because of the differing intercepts and intercepts when adjusting, it's possible for + expected_adjusted_energy to be bigger than current_adjusted_energy. In this case, we'll + adjust, against at most 1 EPC band above the curent. This function performs the EPC adjustment + :param expected_epc_rating: The expected EPC rating + :param current_epc_rating: The current EPC rating + """ + + # Find index of expected EPC rating + expected_index = cls.EPC_BANDS.index(expected_epc_rating) + current_index = cls.EPC_BANDS.index(current_epc_rating) + + if expected_index - 1 < current_index: + return current_epc_rating + + return cls.EPC_BANDS[expected_index - 1] From afeac56f5e944249cc16435795b12e274de4cd74 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Tue, 5 Dec 2023 15:04:08 +0000 Subject: [PATCH 039/526] fixed bug with conservation area and added test --- backend/Property.py | 3 ++- backend/tests/test_property.py | 30 ++++++++++++++++++++++++++++++ 2 files changed, 32 insertions(+), 1 deletion(-) diff --git a/backend/Property.py b/backend/Property.py index c04a3ed9..79bd1659 100644 --- a/backend/Property.py +++ b/backend/Property.py @@ -369,7 +369,8 @@ class Property(Definitions): self.is_listed = spatial["is_listed_building"].values[0] self.is_heritage = spatial["is_heritage_building"].values[0] - if self.in_conservation_area is True | self.is_listed is True | self.is_heritage is True: + # We do an equals True, in the case of one of these variables being True + if (self.in_conservation_area == True) | (self.is_listed == True) | (self.is_heritage == True): self.restricted_measures = True spatial_dict = spatial.to_dict("records")[0] diff --git a/backend/tests/test_property.py b/backend/tests/test_property.py index d8519b6b..39a7e86e 100644 --- a/backend/tests/test_property.py +++ b/backend/tests/test_property.py @@ -1,3 +1,4 @@ +import pandas as pd import pytest from unittest.mock import Mock from epc_api.client import EpcClient @@ -345,3 +346,32 @@ class TestProperty: # Verify that ValueError is raised when multiple attributes are found with pytest.raises(ValueError, match="Either No attributes or multiple found for roof-description"): property_instance.get_components(cleaned) + + def test_set_spatial(self, mock_epc_client): + prop = Property(1, "AB12CD", "Test Address", mock_epc_client) + + spatial1 = pd.DataFrame([{ + 'X_COORDINATE': 411143.0, 'Y_COORDINATE': 281701.0, 'LATITUDE': 52.4331896, 'LONGITUDE': -1.8375238, + 'conservation_status': True, 'is_listed_building': False, 'is_heritage_building': True + }]) + + prop.set_spatial(spatial1) + + assert prop.in_conservation_area + assert not prop.is_listed + assert prop.is_heritage + assert prop.restricted_measures + + prop2 = Property(1, "AB12CD", "Test Address", mock_epc_client) + + spatial2 = pd.DataFrame([{ + 'X_COORDINATE': 411143.0, 'Y_COORDINATE': 281701.0, 'LATITUDE': 52.4331896, 'LONGITUDE': -1.8375238, + 'conservation_status': None, 'is_listed_building': False, 'is_heritage_building': False + }]) + + prop2.set_spatial(spatial2) + + assert prop2.in_conservation_area is None + assert not prop2.is_listed + assert not prop2.is_heritage + assert not prop2.restricted_measures From 32e0d78cd806437a5b9d44da56e897935e6c96e8 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Tue, 5 Dec 2023 15:19:58 +0000 Subject: [PATCH 040/526] updated unit tests for slight increase in contingency costs for suspended floor insulation --- .idea/Model.iml | 2 +- .idea/misc.xml | 2 +- recommendations/Costs.py | 4 +++- recommendations/tests/test_costs.py | 2 +- recommendations/tests/test_floor_recommendations.py | 2 +- 5 files changed, 7 insertions(+), 5 deletions(-) diff --git a/.idea/Model.iml b/.idea/Model.iml index 4413bb06..b0f9c00d 100644 --- a/.idea/Model.iml +++ b/.idea/Model.iml @@ -7,7 +7,7 @@ - + diff --git a/.idea/misc.xml b/.idea/misc.xml index 6f308057..1122b380 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -3,7 +3,7 @@ - + diff --git a/recommendations/Costs.py b/recommendations/Costs.py index a57092f9..0d9031b2 100644 --- a/recommendations/Costs.py +++ b/recommendations/Costs.py @@ -315,7 +315,9 @@ class Costs: subtotal_before_profit = labour_costs + materials_costs - contingency_cost = subtotal_before_profit * self.CONTINGENCY + # Because of the possiblity of damage to the existing floor, or difficulties associated to moving fittings, + # we use a higher contingency rate + contingency_cost = subtotal_before_profit * self.HIGH_RISK_CONTINGENCY preliminaries_cost = subtotal_before_profit * self.PRELIMINARIES profit_cost = subtotal_before_profit * self.PROFIT_MARGIN diff --git a/recommendations/tests/test_costs.py b/recommendations/tests/test_costs.py index 1d66ff47..1d519b91 100644 --- a/recommendations/tests/test_costs.py +++ b/recommendations/tests/test_costs.py @@ -240,7 +240,7 @@ class TestCosts: ) assert sus_floor_results == { - 'total': 3114.6027360000003, 'subtotal': 2595.50228, 'vat': 519.100456, 'contingency': 185.39302, + 'total': 3337.07436, 'subtotal': 2780.8953, 'vat': 556.17906, 'contingency': 370.78604, 'preliminaries': 185.39302, 'material': 483.405, 'profit': 370.78604, 'labour_hours': 54.940000000000005, 'labour_days': 2.289166666666667, 'labour_cost': 1370.5252 } diff --git a/recommendations/tests/test_floor_recommendations.py b/recommendations/tests/test_floor_recommendations.py index 01bd308e..43e98d60 100644 --- a/recommendations/tests/test_floor_recommendations.py +++ b/recommendations/tests/test_floor_recommendations.py @@ -81,7 +81,7 @@ class TestFloorRecommendations: assert types == {"suspended_floor_insulation"} assert len(recommender.recommendations) == 6 - assert recommender.recommendations[0]["total"] == 4596.858 + assert recommender.recommendations[0]["total"] == 4925.205 assert recommender.recommendations[0]["new_u_value"] == 0.21 def test_uvalue_0_12(self, input_properties): From 2a601a3003f7b2d7fa676066ba4f5d986c1033dc Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Tue, 5 Dec 2023 16:04:52 +0000 Subject: [PATCH 041/526] Created set_floor_level function and added tests for it --- .idea/Model.iml | 2 +- .idea/misc.xml | 2 +- backend/Property.py | 25 ++++++++++++- backend/tests/test_property.py | 48 +++++++++++++++++++++++++ recommendations/FloorRecommendations.py | 9 ++--- 5 files changed, 77 insertions(+), 9 deletions(-) diff --git a/.idea/Model.iml b/.idea/Model.iml index b0f9c00d..4413bb06 100644 --- a/.idea/Model.iml +++ b/.idea/Model.iml @@ -7,7 +7,7 @@ - + diff --git a/.idea/misc.xml b/.idea/misc.xml index 1122b380..6f308057 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -3,7 +3,7 @@ - + diff --git a/backend/Property.py b/backend/Property.py index 79bd1659..4c8bd5bc 100644 --- a/backend/Property.py +++ b/backend/Property.py @@ -10,7 +10,7 @@ from utils.logger import setup_logger from utils.s3 import read_dataframe_from_s3_parquet from epc_api.client import EpcClient from BaseUtility import Definitions -from recommendations.rdsap_tables import england_wales_age_band_lookup +from recommendations.rdsap_tables import england_wales_age_band_lookup, FLOOR_LEVEL_MAP from recommendations.recommendation_utils import ( estimate_perimeter, get_wall_type, estimate_external_wall_area, esimtate_pitched_roof_area ) @@ -84,6 +84,7 @@ class Property(Definitions): self.pitched_roof_area = None self.insulation_floor_area = None self.number_lighting_outlets = None + self.floor_level = None self.current_adjusted_energy = None self.expected_adjusted_energy = None @@ -324,6 +325,7 @@ class Property(Definitions): self.set_wall_type() self.set_floor_type() + self.set_floor_level() def set_age_band(self): """ @@ -642,6 +644,27 @@ class Property(Definitions): floor_area=self.insulation_floor_area, floor_height=self.floor_height ) + def set_floor_level(self): + self.floor_level = ( + FLOOR_LEVEL_MAP[self.data["floor-level"]] if + self.data["floor-level"] not in self.DATA_ANOMALY_MATCHES else None + ) + + # We perform some extra checks, if the property is not on the ground floor, as we have found cases + # where a property is marked as being on the first floor + if self.floor_level > 0: + + # We check if there is another property below + if not self.floor["another_property_below"]: + self.floor_level = 0 + return + + if self.floor_level == 0: + # Check if another property below + if self.floor["another_property_below"]: + self.floor_level = 1 + return + def set_wall_type(self): """ This method sets the wall type of the property, using a simple approach based on the wall description diff --git a/backend/tests/test_property.py b/backend/tests/test_property.py index 39a7e86e..9188f545 100644 --- a/backend/tests/test_property.py +++ b/backend/tests/test_property.py @@ -375,3 +375,51 @@ class TestProperty: assert not prop2.is_listed assert not prop2.is_heritage assert not prop2.restricted_measures + + def test_set_floor_level(self, mock_epc_client): + # In this case, we have a flat which looks looks it's on the first floor, but it's actually on the ground + # floor, so we should set floor_level to 0 + prop = Property(1, "AB12CD", "Test Address", mock_epc_client) + prop.data = {'floor-level': '01', 'property-type': 'Flat'} + prop.floor = { + 'original_description': 'Solid, no insulation (assumed)', 'clean_description': 'Solid, no insulation', + 'thermal_transmittance': None, 'thermal_transmittance_unit': None, 'is_assumed': True, + 'is_to_unheated_space': False, 'is_to_external_air': False, 'is_suspended': False, 'is_solid': True, + 'another_property_below': False, 'insulation_thickness': 'none', 'floor_thermal_transmittance': None, + 'floor_insulation_thickness': 'none' + } + + prop.set_floor_level() + + assert prop.floor_level == 0 + + # This property is labelled as being on the ground floor but actually has another property below + # so we set floor level to 1 + prop2 = Property(1, "AB12CD", "Test Address", mock_epc_client) + prop2.data = {'floor-level': 'Ground', 'property-type': 'Flat'} + prop2.floor = { + 'original_description': '(Another dwelling below)', 'clean_description': 'Solid, no insulation', + 'thermal_transmittance': None, 'thermal_transmittance_unit': None, 'is_assumed': False, + 'is_to_unheated_space': False, 'is_to_external_air': False, 'is_suspended': False, 'is_solid': False, + 'another_property_below': True, 'insulation_thickness': 'none', 'floor_thermal_transmittance': None, + 'floor_insulation_thickness': 'none' + } + + prop2.set_floor_level() + + assert prop2.floor_level == 1 + + # this property is correctly labelled as being on the 2nd floor + prop3 = Property(1, "AB12CD", "Test Address", mock_epc_client) + prop3.data = {'floor-level': '02', 'property-type': 'Flat'} + prop3.floor = { + 'original_description': '(Another dwelling below)', 'clean_description': 'Solid, no insulation', + 'thermal_transmittance': None, 'thermal_transmittance_unit': None, 'is_assumed': False, + 'is_to_unheated_space': False, 'is_to_external_air': False, 'is_suspended': False, 'is_solid': False, + 'another_property_below': True, 'insulation_thickness': 'none', 'floor_thermal_transmittance': None, + 'floor_insulation_thickness': 'none' + } + + prop3.set_floor_level() + + assert prop3.floor_level == 2 diff --git a/recommendations/FloorRecommendations.py b/recommendations/FloorRecommendations.py index 48245554..a246c8cb 100644 --- a/recommendations/FloorRecommendations.py +++ b/recommendations/FloorRecommendations.py @@ -10,7 +10,6 @@ from recommendations.recommendation_utils import ( r_value_per_mm_to_u_value, calculate_u_value_uplift, is_diminishing_returns, update_lowest_selected_u_value, get_recommended_part, get_floor_u_value ) -from recommendations.rdsap_tables import FLOOR_LEVEL_MAP from recommendations.Costs import Costs @@ -73,10 +72,6 @@ class FloorRecommendations(Definitions): def recommend(self): u_value = self.property.floor["thermal_transmittance"] - floor_level = ( - FLOOR_LEVEL_MAP[self.property.data["floor-level"]] if - self.property.data["floor-level"] not in self.DATA_ANOMALY_MATCHES else None - ) property_type = self.property.data["property-type"] floor_area = self.property.insulation_floor_area @@ -90,7 +85,9 @@ class FloorRecommendations(Definitions): return # If the property is a flat that isn't at ground level, it's likely impractical to recommend a floor upgrade - if (floor_level != 0) and (property_type == "Flat"): + if (self.property.floor_level != 0) and (property_type == "Flat") and ( + self.property.floor["another_property_below"] + ): return if u_value: From c6fe7ca5f388152775e8135e54c4f9e6d3db08e3 Mon Sep 17 00:00:00 2001 From: Michael Duong Date: Tue, 5 Dec 2023 16:07:47 +0000 Subject: [PATCH 042/526] adding more to the difference record --- etl/epc/property_change_app.py | 164 +++++++++++++++++++++++++++++++-- 1 file changed, 156 insertions(+), 8 deletions(-) diff --git a/etl/epc/property_change_app.py b/etl/epc/property_change_app.py index 36eb31b6..da425b3a 100644 --- a/etl/epc/property_change_app.py +++ b/etl/epc/property_change_app.py @@ -399,7 +399,75 @@ def compare_records(earliest_record: pd.Series, latest_record: pd.Series, column from dataclasses import dataclass from etl.epc.ValidationConfiguration import EPCRecordValidationConfiguration -from typing import Union +from typing import Union, List + + +class EPCDifferenceRecord: + """ + Base class for the difference between two EPC records + """ + + def __init__(self, record1: EPCRecord, record2: EPCRecord, auto_sort: bool = False): + """ + This method will initialise the EPCDifferenceRecord + Defaults usage is with record1 to have the higher RDSAP score + """ + self.record1 = record1 + self.record2 = record2 + self.difference_record = {} + + if auto_sort and (self.record1 <= self.record2): + self.record1, self.record2 = self.record2, self.record1 + + self._calculate_difference_record() + self._validate_difference_record() + + def _calculate_difference_record(self): + """ + This method will calculate the difference between the two records + """ + self.difference_record = {} + for key in self.record1.__dict__.keys(): + if key == "LODGEMENT_DATE": + continue + self.difference_record[key] = self.record1.get(key) + # - self.record2.get(key) + + def _validate_difference_record(self): + """ + This method will validate the difference record + """ + # for key, value in self.difference_record.items(): + # if key == "LODGEMENT_DATE": + # continue + # if isinstance(value, str): + # continue + # if value < 0: + # raise ValueError(f"Difference record has negative value for {key}") + pass + + def compare_fields_in_records(self, fields: List[str]): + """ + This method will compare the records, for specific fields + """ + + all_equal = True + for field in fields: + if self.record1.get(field) != self.record2.get(field): + return False + + if all_equal: + return True + + def get(self, key: str): + """ + This method will return the value of the key + """ + return self.difference_record[key] + + + + @dataclass class EPCRecord: """ @@ -447,9 +515,10 @@ class EPCRecord: def __post_init__(self): # We can have validation and cleaning steps for each of the fields - self.WALLS_DESCRIPTION = 'check' - - self._field_validation() + # self.WALLS_DESCRIPTION = 'check' + # Could also have cleaning of records if needed + # self._field_validation() + pass def _field_validation(self): """ @@ -500,9 +569,61 @@ class EPCRecord: if validation_config['range'] is not None: if field_value < validation_config['range'][0] or field_value > validation_config['range'][1]: - raise ValueError(f"Field {record_key} has value {field_value} which is not in the acceptable range of {validation_config['range']}") - + raise ValueError(f"Field {record_key} has value {field_value} which is not in the acceptable range of {validation_config['range']}") + def __sub__(self, other): + """ + This method will return the difference between two EPC records + """ + if not isinstance(other, EPCRecord): + raise ValueError("Can only subtract EPCRecord from EPCRecord") + + difference_record = EPCDifferenceRecord(record1=self, record2=other, auto_sort=True) + + return difference_record + + def __gt__(self, other): + """ + This method will return True if the EPC record is greater than or equal to the other + """ + if not isinstance(other, EPCRecord): + raise ValueError("Can only compare EPCRecord to EPCRecord") + + return self.__dict__[RDSAP_RESPONSE] > other.__dict__[RDSAP_RESPONSE] + + def __ge__(self, other): + """ + This method will return True if the EPC record is greater than or equal to the other + """ + if not isinstance(other, EPCRecord): + raise ValueError("Can only compare EPCRecord to EPCRecord") + + return self.__dict__[RDSAP_RESPONSE] >= other.__dict__[RDSAP_RESPONSE] + + def __lt__(self, other): + """ + This method will return True if the EPC record is greater than or equal to the other + """ + if not isinstance(other, EPCRecord): + raise ValueError("Can only compare EPCRecord to EPCRecord") + + return self.__dict__[RDSAP_RESPONSE] < other.__dict__[RDSAP_RESPONSE] + + def __le__(self, other): + """ + This method will return True if the EPC record is greater than or equal to the other + """ + if not isinstance(other, EPCRecord): + raise ValueError("Can only compare EPCRecord to EPCRecord") + + return self.__dict__[RDSAP_RESPONSE] <= other.__dict__[RDSAP_RESPONSE] + + def get(self, key: str): + """ + This method will return the value of the key + """ + return self.__dict__[key] + # def __init__(self, num) -> None: @@ -573,7 +694,34 @@ def app(): # e.g. first vs second, second vs third and also first vs third property_model_data = [] - temp = [EPCRecord(**x) for x in variable_data.to_dict(orient='records')] + epc_records = [EPCRecord(**x) for x in variable_data.to_dict(orient='records')] + + for idx in range(0, len(epc_records) - 1): + + if idx >= len(epc_records) - 1: + break + + earliest_record: EPCRecord = epc_records[idx] + latest_record: EPCRecord = epc_records[idx + 1] + + # Auto sort the records so that the record with highest RDSAP score is always record1 + difference_record: EPCDifferenceRecord = latest_record - earliest_record + + # TODO: Pull out RDSAP_CHANGE to a variable + if difference_record.get("RDSAP_CHANGE") == 0: + continue + + all_equal = difference_record.compare_fields_in_records( + fields=CORE_COMPONENT_FEATURES + ) + + if all_equal: + # Keep track of this for the moment so we can analyse + all_equal_rows.append({"uprn": uprn, "directory_name": directory.name}) + continue + + property_model_data.append(difference_record.difference_record) + for idx in range(0, property_data.shape[0] - 1): if idx >= property_data.shape[0] - 1: @@ -631,7 +779,7 @@ def app(): # Keep track of this for the moment so we can analyse all_equal_rows.append({"uprn": uprn, "directory_name": directory.name}) continue - + asdasd features = pd.concat([starting_record, ending_record]) property_model_data.append( From e190b9858684003a4b5ebec955a02db9bb2bb232 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Tue, 5 Dec 2023 16:09:56 +0000 Subject: [PATCH 043/526] Added test covering house for set_floor_level --- backend/Property.py | 11 +++++++++++ backend/tests/test_property.py | 15 +++++++++++++++ 2 files changed, 26 insertions(+) diff --git a/backend/Property.py b/backend/Property.py index 4c8bd5bc..d400d439 100644 --- a/backend/Property.py +++ b/backend/Property.py @@ -650,6 +650,17 @@ class Property(Definitions): self.data["floor-level"] not in self.DATA_ANOMALY_MATCHES else None ) + if self.floor_level is None: + + if self.data["property-type"] != "Flat": + return + + if self.floor["another_property_below"]: + self.floor_level = 1 + else: + self.floor_level = 0 + return + # We perform some extra checks, if the property is not on the ground floor, as we have found cases # where a property is marked as being on the first floor if self.floor_level > 0: diff --git a/backend/tests/test_property.py b/backend/tests/test_property.py index 9188f545..871c9291 100644 --- a/backend/tests/test_property.py +++ b/backend/tests/test_property.py @@ -423,3 +423,18 @@ class TestProperty: prop3.set_floor_level() assert prop3.floor_level == 2 + + # Example of a house + prop4 = Property(1, "AB12CD", "Test Address", mock_epc_client) + prop4.data = {'floor-level': '', 'property-type': 'House'} + prop4.floor = { + 'original_description': '(Another dwelling below)', 'clean_description': 'Solid, no insulation', + 'thermal_transmittance': None, 'thermal_transmittance_unit': None, 'is_assumed': False, + 'is_to_unheated_space': False, 'is_to_external_air': False, 'is_suspended': False, 'is_solid': False, + 'another_property_below': False, 'insulation_thickness': 'none', 'floor_thermal_transmittance': None, + 'floor_insulation_thickness': 'none' + } + + prop4.set_floor_level() + + assert prop4.floor_level is None From b5e982c717f81058a12af31e5e3a7d8f0e22a695 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Wed, 6 Dec 2023 10:36:46 +0000 Subject: [PATCH 044/526] initial setup --- etl/eligibility/README.md | 6 + etl/eligibility/__init__.py | 0 .../ha_15_32/HA 15 Identified addresses.csv | 1048576 ++++++++++++++ .../ha_15_32/HA 32 Identfied addresses.csv | 1048576 ++++++++++++++ .../ha_15_32/HA15 - ASSET LIST.csv | 7667 + .../ha_15_32/HA32 - ASSET LIST.csv | 1419 + etl/eligibility/ha_15_32/__init__.py | 0 etl/eligibility/ha_15_32/app.py | 14 + etl/eligibility/ha_15_32/requirements.txt | 1 + keyzy_pilot.csv | 3 + 10 files changed, 2106262 insertions(+) create mode 100644 etl/eligibility/README.md create mode 100644 etl/eligibility/__init__.py create mode 100644 etl/eligibility/ha_15_32/HA 15 Identified addresses.csv create mode 100644 etl/eligibility/ha_15_32/HA 32 Identfied addresses.csv create mode 100644 etl/eligibility/ha_15_32/HA15 - ASSET LIST.csv create mode 100644 etl/eligibility/ha_15_32/HA32 - ASSET LIST.csv create mode 100644 etl/eligibility/ha_15_32/__init__.py create mode 100644 etl/eligibility/ha_15_32/app.py create mode 100644 etl/eligibility/ha_15_32/requirements.txt create mode 100644 keyzy_pilot.csv diff --git a/etl/eligibility/README.md b/etl/eligibility/README.md new file mode 100644 index 00000000..d7d52867 --- /dev/null +++ b/etl/eligibility/README.md @@ -0,0 +1,6 @@ +# Eligiblity + +This codebase is responsible for determining if properties look like they would be +eligible for retrofit funding schemes. In order to do this, we use our SAP ML model, to score +what the property would look like after a retrofit. We then compare this to the eligibility +criteria of various schemes, to determing if the property looks likely to be eligible for funding. \ No newline at end of file diff --git a/etl/eligibility/__init__.py b/etl/eligibility/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/etl/eligibility/ha_15_32/HA 15 Identified addresses.csv b/etl/eligibility/ha_15_32/HA 15 Identified addresses.csv new file mode 100644 index 00000000..e9c625f3 --- /dev/null +++ b/etl/eligibility/ha_15_32/HA 15 Identified addresses.csv @@ -0,0 +1,1048576 @@ +Housing Association,No.,Address,Postcode +HA15,2,2 Lander Road,HP19 9TT +HA15,4,4 Lander Road,HP19 9TT +HA15,5,5 Lander Road,HP19 9TT +HA15,12,12 Lander Road,HP19 9TT +HA15,14,14 Lander Road,HP19 9TT +HA15,18,18 Lander Road,HP19 9TT +HA15,22,22 Lander Road,HP19 9TT +HA15,1,1 Eeles Close,HP19 9TU +HA15,2,2 Eeles Close,HP19 9TU +HA15,3,3 Eeles Close,HP19 9TU +HA15,12,12 Eeles Close,HP19 9TU +HA15,15,15 Eeles Close,HP19 9TU +HA15,2,2 Dicks Way,HP19 9UA +HA15,4,4 Dicks Way,HP19 9UA +HA15,5,5 Dicks Way,HP19 9UA +HA15,6,6 Dicks Way,HP19 9UA +HA15,8,8 Dicks Way,HP19 9UA +HA15,9,9 Dicks Way,HP19 9UA +HA15,14,14 Dicks Way,HP19 9UA +HA15,15,15 Dicks Way,HP19 9UA +HA15,17,17 Dicks Way,HP19 9UA +HA15,20,20 Dicks Way,HP19 9UA +HA15,26,26 Dicks Way,HP19 9UA +HA15,28,28 Dicks Way,HP19 9UA +HA15,4,4 Fletcher Close,HP19 9UB +HA15,5,5 Fletcher Close,HP19 9UB +HA15,24,24 Fletcher Close,HP19 9UB +HA15,25,25 Fletcher Close,HP19 9UB +HA15,27,27 Fletcher Close,HP19 9UB +HA15,28,28 Fletcher Close,HP19 9UB +HA15,29,29 Fletcher Close,HP19 9UB +HA15,31,31 Fletcher Close,HP19 9UB +HA15,32,32 Fletcher Close,HP19 9UB +HA15,33,33 Fletcher Close,HP19 9UB +HA15,34,"34 Fletcher Close,Aylesbury,Bucks",HP19 9UB +HA15,1,1 Grimmer Close,HP19 9UD +HA15,11,11 Grimmer Close,HP19 9UD +HA15,14,14 Grimmer Close,HP19 9UD +HA15,15,15 Grimmer Close,HP19 9UD +HA15,17,17 Grimmer Close,HP19 9UD +HA15,18,18 Grimmer Close,HP19 9UD +HA15,21,21 Grimmer Close,HP19 9UD +HA15,23,23 Grimmer Close,HP19 9UD +HA15,24,24 Grimmer Close,HP19 9UD +HA15,28,28 Grimmer Close,HP19 9UD +HA15,30,30 Grimmer Close,HP19 9UD +HA15,1,1 Vincent Road,HP19 9UN +HA15,6,6 Vincent Road,HP19 9UN +HA15,10,10 Vincent Road,HP19 9UN +HA15,12,12 Vincent Road,HP19 9UN +HA15,13,13 Vincent Road,HP19 9UN +HA15,16,16 Vincent Road,HP19 9UN +HA15,21,21 Vincent Road,HP19 9UN +HA15,24,24 Vincent Road,HP19 9UN +HA15,26,26 Vincent Road,HP19 9UN +HA15,27,27 Vincent Road,HP19 9UN +HA15,32,32 Vincent Road,HP19 9UN +HA15,1,1 Reading Close,HP19 9UW +HA15,2,2 Reading Close,HP19 9UW +HA15,3,3 Reading Close,HP19 9UW +HA15,4,4 Reading Close,HP19 9UW +HA15,5,5 Reading Close,HP19 9UW +HA15,6,6 Reading Close,HP19 9UW +HA15,7,7 Reading Close,HP19 9UW +HA15,9,9 Reading Close,HP19 9UW +HA15,10,10 Reading Close,HP19 9UW +HA15,6,6 Mary Mac Manus Drive,MK18 1UN +HA15,8,8 Mary Mac Manus Drive,MK18 1UN +HA15,10,10 Mary Mac Manus Drive,MK18 1UN +HA15,2,"2 Rosebery Road Aston Clinton, Aylesbury",HP22 5JY +HA15,7,"7 Rosebery Road Aston Clinton, Aylesbury",HP22 5JY +HA15,9,"9 Rosebery Road Aston Clinton, Aylesbury",HP22 5JY +HA15,11,"11 Rosebery Road Aston Clinton, Aylesbury",HP22 5JY +HA15,12,"12 Rosebery Road Aston Clinton, Aylesbury",HP22 5JY +HA15,16,"16 Rosebery Road Aston Clinton, Aylesbury",HP22 5JY +HA15,17,"17 Rosebery Road Aston Clinton, Aylesbury",HP22 5JY +HA15,26,"26 Rosebery Road Aston Clinton, Aylesbury",HP22 5JY +HA15,38,"38 Rosebery Road Aston Clinton, Aylesbury",HP22 5JY +HA15,41,"41 Rosebery Road Aston Clinton, Aylesbury",HP22 5JY +HA15,25,"25 New Road Weston Turville, Aylesbury",HP22 5RA +HA15,27,"27 New Road Weston Turville, Aylesbury",HP22 5RA +HA15,29,"29 New Road Weston Turville, Aylesbury",HP22 5RA +HA15,31,"31 New Road Weston Turville, Aylesbury",HP22 5RA +HA15,37,"37 New Road Weston Turville, Aylesbury",HP22 5RA +HA15,39,"39 New Road Weston Turville, Aylesbury",HP22 5RA +HA15,5,"5 Walton Place Weston Turville, Aylesbury",HP22 5RB +HA15,9,"9 Walton Place Weston Turville, Aylesbury",HP22 5RB +HA15,18,"18 Walton Place Weston Turville, Aylesbury",HP22 5RB +HA15,21,"21 Walton Place Weston Turville, Aylesbury",HP22 5RD +HA15,36,"36 Walton Place Weston Turville, Aylesbury",HP22 5RD +HA15,42,"42 Walton Place Weston Turville, Aylesbury",HP22 5RD +HA15,46,"46 Walton Place Weston Turville, Aylesbury",HP22 5RD +HA15,76,"76 Worlds End Lane Weston Turville, Aylesbury",HP22 5RX +HA15,78,"78 Worlds End Lane Weston Turville, Aylesbury",HP22 5RX +HA15,82,"82 Worlds End Lane Weston Turville, Aylesbury",HP22 5RX +HA15,84,"84 Worlds End Lane Weston Turville, Aylesbury",HP22 5RX +HA15,86,"86 Worlds End Lane Weston Turville, Aylesbury",HP22 5RX +HA15,88,"88 Worlds End Lane Weston Turville, Aylesbury",HP22 5RX +HA15,64,"64 Halton Lane Wendover, Aylesbury",HP22 6AZ +HA15,66,"66 Halton Lane Wendover, Aylesbury",HP22 6AZ +HA15,68,"68 Halton Lane Wendover, Aylesbury",HP22 6AZ +HA15,70,"70 Halton Lane Wendover, Aylesbury",HP22 6AZ +HA15,8,"8 South Street Wendover, Aylesbury",HP22 6EF +HA15,2,"2 Barlow Road Wendover, Aylesbury",HP22 6HP +HA15,4,"4 Barlow Road Wendover, Aylesbury",HP22 6HP +HA15,14,"14 Barlow Road Wendover, Aylesbury",HP22 6HP +HA15,15,"15 Barlow Road Wendover, Aylesbury",HP22 6HP +HA15,16,"16 Barlow Road Wendover, Aylesbury",HP22 6HP +HA15,28,"28 Barlow Road Wendover, Aylesbury",HP22 6HP +HA15,1,"1 Woollerton Crescent Wendover, Aylesbury",HP22 6HT +HA15,5,"5 Woollerton Crescent Wendover, Aylesbury",HP22 6HT +HA15,7,"7 Woollerton Crescent Wendover, Aylesbury",HP22 6HT +HA15,8,"8 Woollerton Crescent Wendover, Aylesbury",HP22 6HT +HA15,9,"9 Woollerton Crescent Wendover, Aylesbury",HP22 6HT +HA15,13,"13 Woollerton Crescent Wendover, Aylesbury",HP22 6HT +HA15,16,"16 Woollerton Crescent Wendover, Aylesbury",HP22 6HT +HA15,20,"20 Woollerton Crescent Wendover, Aylesbury",HP22 6HT +HA15,24,"24 Woollerton Crescent Wendover, Aylesbury",HP22 6HT +HA15,26,"26 Woollerton Crescent Wendover, Aylesbury",HP22 6HT +HA15,28,"28 Woollerton Crescent Wendover, Aylesbury",HP22 6HT +HA15,38,"38 Woollerton Crescent Wendover, Aylesbury",HP22 6HT +HA15,44,"44 Woollerton Crescent Wendover, Aylesbury",HP22 6HT +HA15,50,"50 Woollerton Crescent Wendover, Aylesbury",HP22 6HT +HA15,15,"15 Hampden Road Wendover, Aylesbury",HP22 6HU +HA15,18,"18 Hampden Road Wendover, Aylesbury",HP22 6HU +HA15,22,"22 Hampden Road Wendover, Aylesbury",HP22 6HU +HA15,26,"26 Hampden Road Wendover, Aylesbury",HP22 6HU +HA15,28,"28 Hampden Road Wendover, Aylesbury",HP22 6HU +HA15,25,"25 Hampden Road Wendover, Aylesbury",HP22 6HX +HA15,27,"27 Hampden Road Wendover, Aylesbury",HP22 6HX +HA15,31,"31 Hampden Road Wendover, Aylesbury",HP22 6HX +HA15,34,"34 Hampden Road Wendover, Aylesbury",HP22 6HX +HA15,36,"36 Hampden Road Wendover, Aylesbury",HP22 6HX +HA15,38,"38 Hampden Road Wendover, Aylesbury",HP22 6HX +HA15,5,"5 Gainsborough Road, Aylesbury",HP21 9AZ +HA15,1,"1 Dart Close, Aylesbury",HP21 9NP +HA15,1,"1 Wingrave Road Aston Abbotts, Aylesbury",HP22 4LT +HA15,3,"3 Wingrave Road Aston Abbotts, Aylesbury",HP22 4LT +HA15,5,"5 Wingrave Road Aston Abbotts, Aylesbury",HP22 4LT +HA15,82,"82 Winslow Road Wingrave, Aylesbury",HP22 4QB +HA15,84,"84 Winslow Road Wingrave, Aylesbury",HP22 4QB +HA15,106,"106 Winslow Road Wingrave, Aylesbury",HP22 4QB +HA15,125,"125 Winslow Road Wingrave, Aylesbury",HP22 4QB +HA15,19,"19 Abbotts Way Wingrave, Aylesbury",HP22 4QF +HA15,37,"37 Abbotts Way Wingrave, Aylesbury",HP22 4QF +HA15,41,"41 Abbotts Way Wingrave, Aylesbury",HP22 4QF +HA15,43,"43 Abbotts Way Wingrave, Aylesbury",HP22 4QF +HA15,2,"2 Chiltern Road Wingrave, Aylesbury",HP22 4QQ +HA15,5,"5 Chiltern Road Wingrave, Aylesbury",HP22 4QQ +HA15,10,"10 Chiltern Road Wingrave, Aylesbury",HP22 4QQ +HA15,12,"12 Chiltern Road Wingrave, Aylesbury",HP22 4QQ +HA15,19,"19 Chiltern Road Wingrave, Aylesbury",HP22 4QQ +HA15,21,"21 Chiltern Road Wingrave, Aylesbury",HP22 4QQ +HA15,22,"22 Chiltern Road Wingrave, Aylesbury",HP22 4QQ +HA15,31,"31 Chiltern Road Wingrave, Aylesbury",HP22 4QQ +HA15,32,"32 Chiltern Road Wingrave, Aylesbury",HP22 4QQ +HA15,33,"33 Chiltern Road Wingrave, Aylesbury",HP22 4QQ +HA15,34,"34 Chiltern Road Wingrave, Aylesbury",HP22 4QQ +HA15,35,"35 Chiltern Road Wingrave, Aylesbury",HP22 4QQ +HA15,37,"37 Chiltern Road Wingrave, Aylesbury",HP22 4QQ +HA15,38,"38 Chiltern Road Wingrave, Aylesbury",HP22 4QQ +HA15,40,"40 Chiltern Road Wingrave, Aylesbury",HP22 4QQ +HA15,42,"42 Chiltern Road Wingrave, Aylesbury",HP22 4QQ +HA15,23,"23 Great Lane Bierton, Aylesbury",HP22 5DE +HA15,25,"25 Great Lane Bierton, Aylesbury",HP22 5DE +HA15,35,"35 Great Lane Bierton, Aylesbury",HP22 5DE +HA15,37,"37 Great Lane Bierton, Aylesbury",HP22 5DE +HA15,61,"61 Weston Road Aston Clinton, Aylesbury",HP22 5EJ +HA15,65,"65 Weston Road Aston Clinton, Aylesbury",HP22 5EJ +HA15,67,"67 Weston Road Aston Clinton, Aylesbury",HP22 5EJ +HA15,69,"69 Weston Road Aston Clinton, Aylesbury",HP22 5EJ +HA15,28,"28a Tring Road Wendover, Aylesbury",HP22 6NT +HA15,38,"38a Tring Road Wendover, Aylesbury",HP22 6NT +HA15,14,"14 Tring Road Wendover, Aylesbury",HP22 6NT +HA15,34,"34 Tring Road Wendover, Aylesbury",HP22 6NT +HA15,36,"36 Tring Road Wendover, Aylesbury",HP22 6NT +HA15,64,"64 Tring Road Wendover, Aylesbury",HP22 6NX +HA15,68,"68 Tring Road Wendover, Aylesbury",HP22 6NX +HA15,70,"70 Tring Road Wendover, Aylesbury",HP22 6NX +HA15,74,"74 Tring Road Wendover, Aylesbury",HP22 6NX +HA15,76,"76 Tring Road Wendover, Aylesbury",HP22 6NX +HA15,78,"78 Tring Road Wendover, Aylesbury",HP22 6NX +HA15,80,"80 Tring Road Wendover, Aylesbury",HP22 6NX +HA15,90,"90 Tring Road Wendover, Aylesbury",HP22 6NX +HA15,92,"92 Tring Road Wendover, Aylesbury",HP22 6NX +HA15,100,"100 Tring Road Wendover, Aylesbury",HP22 6NX +HA15,104,"104 Tring Road Wendover, Aylesbury",HP22 6NX +HA15,106,"106 Tring Road Wendover, Aylesbury",HP22 6NX +HA15,108,"108 Tring Road Wendover, Aylesbury",HP22 6NX +HA15,114,"114 Tring Road Wendover, Aylesbury",HP22 6NX +HA15,38,"38 The Beeches Wendover, Aylesbury",HP22 6PB +HA15,49,"49 The Beeches Wendover, Aylesbury",HP22 6PB +HA15,54,"54 The Beeches Wendover, Aylesbury",HP22 6PB +HA15,64,"64 The Beeches Wendover, Aylesbury",HP22 6PB +HA15,1,"1 Church End Edlesborough, Dunstable",LU6 2EP +HA15,2,"2 Church End Edlesborough, Dunstable",LU6 2EP +HA15,5,"5 Church End Edlesborough, Dunstable",LU6 2EP +HA15,6,"6 Church End Edlesborough, Dunstable",LU6 2EP +HA15,7,"7 Church End Edlesborough, Dunstable",LU6 2EP +HA15,9,"9 Church End Edlesborough, Dunstable",LU6 2EP +HA15,125,"125 High Street Edlesborough, Dunstable",LU6 2ER +HA15,6,"6 Dove Street Stewkley, Leighton Buzzard",LU7 0HT +HA15,14,"14 Wantage Crescent Wing, Leighton Buzzard",LU7 0NH +HA15,32,"32 Wantage Crescent Wing, Leighton Buzzard",LU7 0NH +HA15,38,"38a Wantage Crescent Wing, Leighton Buzzard",LU7 0NH +HA15,38,"38b Wantage Crescent Wing, Leighton Buzzard",LU7 0NH +HA15,75,"75 High Street Cheddington, Leighton Buzzard",LU7 0RG +HA15,12,"12 New Street Cheddington, Leighton Buzzard",LU7 0RL +HA15,14,"14 New Street Cheddington, Leighton Buzzard",LU7 0RL +HA15,16,"16 New Street Cheddington, Leighton Buzzard",LU7 0RL +HA15,2,"2 Sunnybank Cheddington, Leighton Buzzard",LU7 0RN +HA15,4,"4 Sunnybank Cheddington, Leighton Buzzard",LU7 0RN +HA15,10,"10 Sunnybank Cheddington, Leighton Buzzard",LU7 0RN +HA15,11,"11 Sunnybank Cheddington, Leighton Buzzard",LU7 0RN +HA15,17,"17 Sunnybank Cheddington, Leighton Buzzard",LU7 0RN +HA15,19,"19 Sunnybank Cheddington, Leighton Buzzard",LU7 0RN +HA15,20,"20 Sunnybank Cheddington, Leighton Buzzard",LU7 0RN +HA15,23,"23 Sunnybank Cheddington, Leighton Buzzard",LU7 0RN +HA15,25,"25 Sunnybank Cheddington, Leighton Buzzard",LU7 0RN +HA15,26,"26 Sunnybank Cheddington, Leighton Buzzard",LU7 0RN +HA15,28,"28 Sunnybank Cheddington, Leighton Buzzard",LU7 0RN +HA15,31,"31 Sunnybank Cheddington, Leighton Buzzard",LU7 0RN +HA15,33,"33 Sunnybank Cheddington, Leighton Buzzard",LU7 0RN +HA15,36,"36 Sunnybank Cheddington, Leighton Buzzard",LU7 0RN +HA15,40,"40 Sunnybank Cheddington, Leighton Buzzard",LU7 0RN +HA15,4,"4 Barkham Close Cheddington, Leighton Buzzard",LU7 0RT +HA15,4,"4 Manor Road Cheddington, Leighton Buzzard",LU7 0RW +HA15,7,"7 Manor Road Cheddington, Leighton Buzzard",LU7 0RW +HA15,8,"8 Manor Road Cheddington, Leighton Buzzard",LU7 0RW +HA15,10,"10 Manor Road Cheddington, Leighton Buzzard",LU7 0RW +HA15,11,"11 Manor Road Cheddington, Leighton Buzzard",LU7 0RW +HA15,61,"61 Yardley Avenue Pitstone, Leighton Buzzard",LU7 9BD +HA15,69,"69 Yardley Avenue Pitstone, Leighton Buzzard",LU7 9BD +HA15,71,"71 Yardley Avenue Pitstone, Leighton Buzzard",LU7 9BD +HA15,75,"75 Yardley Avenue Pitstone, Leighton Buzzard",LU7 9BD +HA15,85,"85 Yardley Avenue Pitstone, Leighton Buzzard",LU7 9BD +HA15,87,"87 Yardley Avenue Pitstone, Leighton Buzzard",LU7 9BD +HA15,89,"89 Yardley Avenue Pitstone, Leighton Buzzard",LU7 9BD +HA15,95,"95 Yardley Avenue Pitstone, Leighton Buzzard",LU7 9BD +HA15,101,"101 Yardley Avenue Pitstone, Leighton Buzzard",LU7 9BD +HA15,103,"103 Yardley Avenue Pitstone, Leighton Buzzard",LU7 9BD +HA15,125,"125 Yardley Avenue Pitstone, Leighton Buzzard",LU7 9BD +HA15,129,"129 Yardley Avenue Pitstone, Leighton Buzzard",LU7 9BD +HA15,133,"133 Yardley Avenue Pitstone, Leighton Buzzard",LU7 9BD +HA15,141,"141 Yardley Avenue Pitstone, Leighton Buzzard",LU7 9BD +HA15,151,"151 Yardley Avenue Pitstone, Leighton Buzzard",LU7 9BD +HA15,48,"48 Station Road Ivinghoe, Leighton Buzzard",LU7 9EB +HA15,52,"52 Station Road Ivinghoe, Leighton Buzzard",LU7 9EB +HA15,54,"54 Station Road Ivinghoe, Leighton Buzzard",LU7 9EB +HA15,58,"58 Station Road Ivinghoe, Leighton Buzzard",LU7 9EB +HA15,1,"1 Maud Janes Close Ivinghoe, Leighton Buzzard",LU7 9ED +HA15,3,"3 Maud Janes Close Ivinghoe, Leighton Buzzard",LU7 9ED +HA15,12,"12 Maud Janes Close Ivinghoe, Leighton Buzzard",LU7 9ED +HA15,26,"26 Ladysmith Road Ivinghoe, Leighton Buzzard",LU7 9EE +HA15,24,"24 High Street Ivinghoe, Leighton Buzzard",LU7 9EX +HA15,26,"26 High Street Ivinghoe, Leighton Buzzard",LU7 9EX +HA15,28,"28 High Street Ivinghoe, Leighton Buzzard",LU7 9EX +HA15,30,"30 High Street Ivinghoe, Leighton Buzzard",LU7 9EX +HA15,32,"32 High Street Ivinghoe, Leighton Buzzard",LU7 9EX +HA15,3,"3 Stonebridge Road, Aylesbury",HP19 9LX +HA15,102,"102 Coventon Road, Aylesbury",HP19 9ND +HA15,83,"83 Priory Crescent, Aylesbury",HP19 9NY +HA15,103,"103 Priory Crescent, Aylesbury",HP19 9NY +HA15,83,"83 Weedon Road, Aylesbury",HP19 9PA +HA15,7,"7 Haines Close, Aylesbury",HP19 9TS +HA15,8,"8 Haines Close, Aylesbury",HP19 9TS +HA15,9,"9 Haines Close, Aylesbury",HP19 9TS +HA15,13,"13 Haines Close, Aylesbury",HP19 9TS +HA15,22,"22 Haines Close, Aylesbury",HP19 9TS +HA15,39,"39 Haines Close, Aylesbury",HP19 9TS +HA15,45,"45 Haines Close, Aylesbury",HP19 9TS +HA15,27,"27 Oakfield Road, Aylesbury",HP20 1LH +HA15,11,"11 Wingate Walk, Aylesbury",HP20 1LN +HA15,9,"9 Stanhope Road, Aylesbury",HP20 1LP +HA15,28,"28 Stanhope Road, Aylesbury",HP20 1LR +HA15,12,"12 Cleveland Road, Aylesbury",HP20 2AZ +HA15,20,"20 Cleveland Road, Aylesbury",HP20 2AZ +HA15,22,"22 Cleveland Road, Aylesbury",HP20 2AZ +HA15,7,"7 Bryanston Avenue, Aylesbury",HP20 2BA +HA15,17,"17 Bryanston Avenue, Aylesbury",HP20 2BA +HA15,36,"36 Bryanston Avenue, Aylesbury",HP20 2BA +HA15,38,"38 Bryanston Avenue, Aylesbury",HP20 2BA +HA15,6,"6 Matlock Road, Aylesbury",HP20 2BE +HA15,9,"9 Lisburn Path, Aylesbury",HP20 2BQ +HA15,15,"15 Lisburn Path, Aylesbury",HP20 2BQ +HA15,3,"3 Lansdowne Road, Aylesbury",HP20 2DJ +HA15,15,"15 Lansdowne Road, Aylesbury",HP20 2DJ +HA15,4,"4 Caversham Green, Aylesbury",HP20 2DL +HA15,1,"1 Davies Close, Aylesbury",HP20 2SH +HA15,62,"62 Stoke Road, Aylesbury",HP21 8BX +HA15,64,"64 Stoke Road, Aylesbury",HP21 8BX +HA15,78,"78 Stoke Road, Aylesbury",HP21 8BX +HA15,4,"4 Court Close, Aylesbury",HP21 8BY +HA15,7,"7 Clover Lane, Aylesbury",HP21 8DQ +HA15,25,"25 Clover Lane, Aylesbury",HP21 8DQ +HA15,31,"31 Clover Lane, Aylesbury",HP21 8DQ +HA15,53,"53 Birch Court, Aylesbury",HP21 8DS +HA15,59,"59 Birch Court, Aylesbury",HP21 8DS +HA15,74,"74 Thrasher Road, Aylesbury",HP21 8DX +HA15,2,"2 Vicarage Road, Aylesbury",HP21 8EU +HA15,8,"8 Vicarage Road, Aylesbury",HP21 8EU +HA15,126,"126 Penn Road, Aylesbury",HP21 8JS +HA15,128,"128 Penn Road, Aylesbury",HP21 8JS +HA15,140,"140 Penn Road, Aylesbury",HP21 8JS +HA15,144,"144 Penn Road, Aylesbury",HP21 8JS +HA15,146,"146 Penn Road, Aylesbury",HP21 8JS +HA15,4,"4 Montague Road, Aylesbury",HP21 8JT +HA15,132,"132 Prebendal Avenue, Aylesbury",HP21 8LF +HA15,134,"134 Prebendal Avenue, Aylesbury",HP21 8LF +HA15,138,"138 Prebendal Avenue, Aylesbury",HP21 8LF +HA15,140,"140 Prebendal Avenue, Aylesbury",HP21 8LF +HA15,144,"144 Prebendal Avenue, Aylesbury",HP21 8LF +HA15,15,"15 Oak Green, Aylesbury",HP21 8LJ +HA15,59,"59 Paterson Road, Aylesbury",HP21 8LW +HA15,37,"37 Thame Road, Aylesbury",HP21 8LX +HA15,95,"95 Thame Road, Aylesbury",HP21 8LY +HA15,3,"3 Edinburgh Place, Aylesbury",HP21 8NG +HA15,52,"52 Carrington Road, Aylesbury",HP21 8NL +HA15,9,"9 Hartwell End, Aylesbury",HP21 8NZ +HA15,12,"12 Hartwell End, Aylesbury",HP21 8NZ +HA15,21,"21 Hartwell End, Aylesbury",HP21 8PA +HA15,64,"64 Lavric Road, Aylesbury",HP21 8PF +HA15,8,"8 Cooks Lane Mursley, Milton Keynes",MK17 0RU +HA15,47,"47 Green End Great Brickhill, Milton Keynes",MK17 9AT +HA15,14,"14 Green End Great Brickhill, Milton Keynes",MK17 9AU +HA15,63,"63 Bourtonville, Buckingham",MK18 1AY +HA15,2,"2 Bath Lane Terrace, Buckingham",MK18 1DY +HA15,3,"3 Bath Lane Terrace, Buckingham",MK18 1DY +HA15,4,"4 Bath Lane Terrace, Buckingham",MK18 1DY +HA15,3,"3 Westfields, Buckingham",MK18 1DZ +HA15,5,"5 Westfields, Buckingham",MK18 1DZ +HA15,6,"6 Westfields, Buckingham",MK18 1DZ +HA15,8,"8 Westfields, Buckingham",MK18 1DZ +HA15,10,"10 Westfields, Buckingham",MK18 1DZ +HA15,13,"13 Westfields, Buckingham",MK18 1DZ +HA15,14,"14 Westfields, Buckingham",MK18 1DZ +HA15,15,"15 Westfields, Buckingham",MK18 1DZ +HA15,18,"18 Westfields, Buckingham",MK18 1DZ +HA15,19,"19 Westfields, Buckingham",MK18 1DZ +HA15,20,"20 Westfields, Buckingham",MK18 1DZ +HA15,21,"21 Westfields, Buckingham",MK18 1DZ +HA15,24,"24 Westfields, Buckingham",MK18 1DZ +HA15,27,"27 Westfields, Buckingham",MK18 1DZ +HA15,28,"28 Westfields, Buckingham",MK18 1DZ +HA15,29,"29 Westfields, Buckingham",MK18 1DZ +HA15,31,"31 Westfields, Buckingham",MK18 1DZ +HA15,32,"32 Westfields, Buckingham",MK18 1DZ +HA15,35,"35 Westfields, Buckingham",MK18 1DZ +HA15,49,"49 Westfields, Buckingham",MK18 1DZ +HA15,51,"51 Westfields, Buckingham",MK18 1DZ +HA15,53,"53 Westfields, Buckingham",MK18 1DZ +HA15,55,"55 Westfields, Buckingham",MK18 1DZ +HA15,57,"57 Westfields, Buckingham",MK18 1DZ +HA15,60,"60 Westfields, Buckingham",MK18 1DZ +HA15,2,"2 Grenville Road, Buckingham",MK18 1LR +HA15,118,"118 Western Avenue, Buckingham",MK18 1LS +HA15,5,"5 South Hall Maids Moreton, Buckingham",MK18 1QB +HA15,2,"2 Church Close Maids Moreton, Buckingham",MK18 1QG +HA15,5,"5 Church Close Maids Moreton, Buckingham",MK18 1QG +HA15,7,"7 Church Close Maids Moreton, Buckingham",MK18 1QG +HA15,1,"1 The Leys Main Street, Buckingham",MK18 1QT +HA15,31a,"31a Springfields Padbury, Buckingham",MK18 2AT +HA15,31b,"31b Springfields Padbury, Buckingham",MK18 2AT +HA15,1,"1 Arnolds Close Padbury, Buckingham",MK18 2BG +HA15,42,"42 Victory Road Steeple Claydon, Buckingham",MK18 2NY +HA15,50,"50 Victory Road Steeple Claydon, Buckingham",MK18 2NY +HA15,4,"4 Falklands Close Steeple Claydon, Buckingham",MK18 2PN +HA15,8,"8 Falklands Close Steeple Claydon, Buckingham",MK18 2PN +HA15,10,"10 Falklands Close Steeple Claydon, Buckingham",MK18 2PN +HA15,12,"12 Falklands Close Steeple Claydon, Buckingham",MK18 2PN +HA15,11,"11 Vicarage Lane Steeple Claydon, Buckingham",MK18 2PR +HA15,62,"62 Vicarage Lane Steeple Claydon, Buckingham",MK18 2PR +HA15,64,"64 Vicarage Lane Steeple Claydon, Buckingham",MK18 2PR +HA15,3,"3 Pound Close Steeple Claydon, Buckingham",MK18 2QL +HA15,4,"4 Pound Close Steeple Claydon, Buckingham",MK18 2QL +HA15,6,"6 Oak Leys Steeple Claydon, Buckingham",MK18 2RQ +HA15,8,"8 Oak Leys Steeple Claydon, Buckingham",MK18 2RQ +HA15,8,"8 Old Mill Furlong Winslow, Buckingham",MK18 3EX +HA15,23,"23 Old Mill Furlong Winslow, Buckingham",MK18 3EX +HA15,24,"24 Old Mill Furlong Winslow, Buckingham",MK18 3EX +HA15,25,"25 Old Mill Furlong Winslow, Buckingham",MK18 3EX +HA15,30,"30 Old Mill Furlong Winslow, Buckingham",MK18 3EX +HA15,32,"32 Old Mill Furlong Winslow, Buckingham",MK18 3EX +HA15,34,"34 Old Mill Furlong Winslow, Buckingham",MK18 3EX +HA15,1,"1 Roberts Road Haddenham, Aylesbury",HP17 8HH +HA15,6,"6 Roberts Road Haddenham, Aylesbury",HP17 8HH +HA15,11,"11 Roberts Road Haddenham, Aylesbury",HP17 8HH +HA15,15,"15 Roberts Road Haddenham, Aylesbury",HP17 8HH +HA15,17,"17 Roberts Road Haddenham, Aylesbury",HP17 8HH +HA15,18,"18 Roberts Road Haddenham, Aylesbury",HP17 8HH +HA15,38,"38 Roberts Road Haddenham, Aylesbury",HP17 8HH +HA15,3,"3 Harts Road Haddenham, Aylesbury",HP17 8HJ +HA15,9,"9 Harts Road Haddenham, Aylesbury",HP17 8HJ +HA15,11,"11 Harts Road Haddenham, Aylesbury",HP17 8HJ +HA15,16,"16 Harts Road Haddenham, Aylesbury",HP17 8HJ +HA15,18,"18 Harts Road Haddenham, Aylesbury",HP17 8HJ +HA15,22,"22 Harts Road Haddenham, Aylesbury",HP17 8HJ +HA15,2,"2 Willis Road Haddenham, Aylesbury",HP17 8HL +HA15,4,"4 Willis Road Haddenham, Aylesbury",HP17 8HL +HA15,5,"5 Willis Road Haddenham, Aylesbury",HP17 8HL +HA15,8,"8 Willis Road Haddenham, Aylesbury",HP17 8HL +HA15,20,"20 Willis Road Haddenham, Aylesbury",HP17 8HL +HA15,21,"21 Willis Road Haddenham, Aylesbury",HP17 8HL +HA15,22,"22 Willis Road Haddenham, Aylesbury",HP17 8HL +HA15,26,"26 Willis Road Haddenham, Aylesbury",HP17 8HL +HA15,29,"29 Willis Road Haddenham, Aylesbury",HP17 8HL +HA15,31,"31 Willis Road Haddenham, Aylesbury",HP17 8HL +HA15,33,"33 Willis Road Haddenham, Aylesbury",HP17 8HL +HA15,35,"35 Willis Road Haddenham, Aylesbury",HP17 8HL +HA15,37,"37 Willis Road Haddenham, Aylesbury",HP17 8HL +HA15,39,"39 Willis Road Haddenham, Aylesbury",HP17 8HL +HA15,5,"5 Woodways Haddenham, Aylesbury",HP17 8HW +HA15,7,"7 Woodways Haddenham, Aylesbury",HP17 8HW +HA15,13,"13 Woodways Haddenham, Aylesbury",HP17 8HW +HA15,19,"19 Woodways Haddenham, Aylesbury",HP17 8HW +HA15,1,"1 Woodlands Butte Furlong, Aylesbury",HP17 8JE +HA15,2,"2 Franklin Road Haddenham, Aylesbury",HP17 8LE +HA15,8,"8 Franklin Road Haddenham, Aylesbury",HP17 8LE +HA15,129,"129 Churchway Haddenham, Aylesbury",HP17 8LG +HA15,133,"133 Churchway Haddenham, Aylesbury",HP17 8LG +HA15,135,"135 Churchway Haddenham, Aylesbury",HP17 8LG +HA15,147,"147 Churchway Haddenham, Aylesbury",HP17 8LG +HA15,7,"7 Bishopstone Road Stone, Aylesbury",HP17 8QX +HA15,33,"33 Bishopstone Road Stone, Aylesbury",HP17 8QX +HA15,8,"8 Chiltern Avenue Stone, Aylesbury",HP17 8QY +HA15,20,"20 Chiltern Avenue Stone, Aylesbury",HP17 8QY +HA15,28,"28 Chiltern Avenue Stone, Aylesbury",HP17 8QY +HA15,32,"32 Chiltern Avenue Stone, Aylesbury",HP17 8QY +HA15,34,"34 Chiltern Avenue Stone, Aylesbury",HP17 8QY +HA15,46,"46 Chiltern Avenue Stone, Aylesbury",HP17 8QY +HA15,60,"60 Chiltern Avenue Stone, Aylesbury",HP17 8QY +HA15,62,"62 Chiltern Avenue Stone, Aylesbury",HP17 8QY +HA15,7,"7 Chiltern Avenue Stone, Aylesbury",HP17 8QZ +HA15,13,"13 Chiltern Avenue Stone, Aylesbury",HP17 8QZ +HA15,33,"33 Chiltern Avenue Stone, Aylesbury",HP17 8QZ +HA15,41,"41 Chiltern Avenue Stone, Aylesbury",HP17 8QZ +HA15,14,"14 Chiltern Close Stone, Aylesbury",HP17 8RA +HA15,17,"17 Chiltern Close Stone, Aylesbury",HP17 8RA +HA15,10,"10 Round Hill Stone, Aylesbury",HP17 8RD +HA15,16,"16 Round Hill Stone, Aylesbury",HP17 8RD +HA15,7,"7 Round Hill Stone, Aylesbury",HP17 8RE +HA15,17,"17 Round Hill Stone, Aylesbury",HP17 8RE +HA15,23,"23 Round Hill Stone, Aylesbury",HP17 8RE +HA15,59,"59 Bishopstone Road Stone, Aylesbury",HP17 8RX +HA15,1,"1 Bittenham Close Stone, Aylesbury",HP17 8RY +HA15,7,"7 Bittenham Close Stone, Aylesbury",HP17 8RY +HA15,1,"1 New Road Dinton, Aylesbury",HP17 8UU +HA15,3,"3 New Road Dinton, Aylesbury",HP17 8UU +HA15,8,"8 New Road Dinton, Aylesbury",HP17 8UU +HA15,1,"1 Bernard Close Cuddington, Aylesbury",HP18 0AJ +HA15,4,"4 Bernard Close Cuddington, Aylesbury",HP18 0AJ +HA15,7,"7 Bernard Close Cuddington, Aylesbury",HP18 0AJ +HA15,12,"12 Bernard Close Cuddington, Aylesbury",HP18 0AJ +HA15,19,"19 Bernard Close Cuddington, Aylesbury",HP18 0AJ +HA15,22,"22 Bernard Close Cuddington, Aylesbury",HP18 0AJ +HA15,34,"34 Bernard Close Cuddington, Aylesbury",HP18 0AJ +HA15,39,"39 Bernard Close Cuddington, Aylesbury",HP18 0AJ +HA15,41,"41 Bernard Close Cuddington, Aylesbury",HP18 0AJ +HA15,7,"7 Hillside Cottages Dadbrook, Aylesbury",HP18 0AQ +HA15,10,"10 Hillside Cottages Dadbrook, Aylesbury",HP18 0AQ +HA15,11,"11 Hillside Cottages Dadbrook, Aylesbury",HP18 0AQ +HA15,7,"7 Swan Hill Aylesbury Road, Aylesbury",HP18 0BE +HA15,10,"10 Swan Hill Aylesbury Road, Aylesbury",HP18 0BE +HA15,1,"1 Grove Way Waddesdon, Aylesbury",HP18 0LH +HA15,6,"6 Grove Way Waddesdon, Aylesbury",HP18 0LH +HA15,7,"7 Grove Way Waddesdon, Aylesbury",HP18 0LH +HA15,1,"1 Sheriff Cottages Quainton Road, Aylesbury",HP18 0LT +HA15,2,"2 Sheriff Cottages Quainton Road, Aylesbury",HP18 0LT +HA15,3,"3 Sheriff Cottages Quainton Road, Aylesbury",HP18 0LT +HA15,5,"5 Sheriff Cottages Quainton Road, Aylesbury",HP18 0LT +HA15,6,"6 Sheriff Cottages Quainton Road, Aylesbury",HP18 0LT +HA15,7,"7 Sheriff Cottages Quainton Road, Aylesbury",HP18 0LT +HA15,9,"9 Sheriff Cottages Quainton Road, Aylesbury",HP18 0LT +HA15,21,"21 Goss Avenue Waddesdon, Aylesbury",HP18 0LY +HA15,86,"86 Sharps Close Waddesdon, Aylesbury",HP18 0LZ +HA15,88,"88 Sharps Close Waddesdon, Aylesbury",HP18 0LZ +HA15,3,"3 Hilltop Long Crendon, Aylesbury",HP18 9AT +HA15,4,"4 Hilltop Long Crendon, Aylesbury",HP18 9AT +HA15,1A,"1a Hilltop Long Crendon, Aylesbury",HP18 9AT +HA15,3A,"3a Hilltop Long Crendon, Aylesbury",HP18 9AT +HA15,26,"26 Peascroft Long Crendon, Aylesbury",HP18 9AU +HA15,30,"30 Peascroft Long Crendon, Aylesbury",HP18 9AU +HA15,52,"52 Peascroft Long Crendon, Aylesbury",HP18 9AU +HA15,11,"11 Harroell Long Crendon, Aylesbury",HP18 9AY +HA15,13,"13 Harroell Long Crendon, Aylesbury",HP18 9AY +HA15,14,"14 Harroell Long Crendon, Aylesbury",HP18 9AY +HA15,2,"2 Abbot Ridge Long Crendon, Aylesbury",HP18 9AZ +HA15,14,"14 Abbot Ridge Long Crendon, Aylesbury",HP18 9AZ +HA15,18,"18 Abbot Ridge Long Crendon, Aylesbury",HP18 9AZ +HA15,26,"26 Abbot Ridge Long Crendon, Aylesbury",HP18 9AZ +HA15,5,"5 Meadowbank Close Long Crendon, Aylesbury",HP18 9DH +HA15,11,"11 Bonnersfield Long Crendon, Aylesbury",HP18 9DJ +HA15,14,"14 Bonnersfield Long Crendon, Aylesbury",HP18 9DJ +HA15,16,"16 Bonnersfield Long Crendon, Aylesbury",HP18 9DJ +HA15,26,"26 Bonnersfield Long Crendon, Aylesbury",HP18 9DJ +HA15,28,"28 Bonnersfield Long Crendon, Aylesbury",HP18 9DJ +HA15,29,"29 Bonnersfield Long Crendon, Aylesbury",HP18 9DJ +HA15,30,"30 Bonnersfield Long Crendon, Aylesbury",HP18 9DJ +HA15,32,"32 Bonnersfield Long Crendon, Aylesbury",HP18 9DJ +HA15,36,"36 Giffard Way Long Crendon, Aylesbury",HP18 9DN +HA15,45,"45 Giffard Way Long Crendon, Aylesbury",HP18 9DN +HA15,52,"52 Giffard Way Long Crendon, Aylesbury",HP18 9DN +HA15,10,"10 Coltman Avenue Long Crendon, Aylesbury",HP18 9DP +HA15,11,"11 Coltman Avenue Long Crendon, Aylesbury",HP18 9DP +HA15,12,"12 Coltman Avenue Long Crendon, Aylesbury",HP18 9DP +HA15,14,"14 Coltman Avenue Long Crendon, Aylesbury",HP18 9DP +HA15,16,"16 Coltman Avenue Long Crendon, Aylesbury",HP18 9DP +HA15,22,"22 Coltman Avenue Long Crendon, Aylesbury",HP18 9DP +HA15,25,"25 Coltman Avenue Long Crendon, Aylesbury",HP18 9DP +HA15,26,"26 Coltman Avenue Long Crendon, Aylesbury",HP18 9DP +HA15,27,"27 Coltman Avenue Long Crendon, Aylesbury",HP18 9DP +HA15,32,"32 Friars Furlong Long Crendon, Aylesbury",HP18 9DQ +HA15,4,"4 Highfield Long Crendon, Aylesbury",HP18 9DR +HA15,5,"5 Highfield Long Crendon, Aylesbury",HP18 9DR +HA15,8,"8 Highfield Long Crendon, Aylesbury",HP18 9DR +HA15,9,"9 Highfield Long Crendon, Aylesbury",HP18 9DR +HA15,10,"10 Highfield Long Crendon, Aylesbury",HP18 9DR +HA15,11,"11 Highfield Long Crendon, Aylesbury",HP18 9DR +HA15,14,"14 Highfield Long Crendon, Aylesbury",HP18 9DR +HA15,17,"17 Highfield Long Crendon, Aylesbury",HP18 9DR +HA15,18,"18 Highfield Long Crendon, Aylesbury",HP18 9DR +HA15,20,"20 Highfield Long Crendon, Aylesbury",HP18 9DR +HA15,23,"23 Highfield Long Crendon, Aylesbury",HP18 9DR +HA15,24,"24 Highfield Long Crendon, Aylesbury",HP18 9DR +HA15,14b,"14b Highfield Long Crendon, Aylesbury",HP18 9DR +HA15,4,"4 Giffard Way Long Crendon, Aylesbury",HP18 9DW +HA15,13,"13 Giffard Way Long Crendon, Aylesbury",HP18 9DW +HA15,14,"14 Giffard Way Long Crendon, Aylesbury",HP18 9DW +HA15,24,"24 St. Annes Road, Aylesbury",HP19 7RB +HA15,55,"55 St. Annes Road, Aylesbury",HP19 7RB +HA15,6,"6 Palmer Avenue, Aylesbury",HP19 8EF +HA15,18,"18 Palmer Avenue, Aylesbury",HP19 8EF +HA15,20,"20 Palmer Avenue, Aylesbury",HP19 8EF +HA15,24,"24 Palmer Avenue, Aylesbury",HP19 8EF +HA15,25,"25 Palmer Avenue, Aylesbury",HP19 8EF +HA15,1,"1 Gatehouse Road, Aylesbury",HP19 8EH +HA15,10,"10 Gatehouse Road, Aylesbury",HP19 8EH +HA15,12,"12 Gatehouse Road, Aylesbury",HP19 8EH +HA15,53,"53 Oxford Road, Aylesbury",HP19 8EQ +HA15,59,"59 Oxford Road, Aylesbury",HP19 8EQ +HA15,2,"2 Lander Road,Aylesbury,Bucks",HP19 9TT +HA15,30,"30 Lander Road,Aylesbury,Bucks",HP19 9TT +HA15,31,"31 Lander Road,Aylesbury,Bucks",HP19 9TT +HA15,32,"32 Lander Road,Aylesbury,Bucks",HP19 9TT +HA15,3,"3 Eeles Close,Aylesbury,Bucks",HP19 9TU +HA15,5,"5 Eeles Close,Aylesbury,Bucks",HP19 9TU +HA15,6,"6 Eeles Close,Aylesbury,Bucks",HP19 9TU +HA15,7,"7 Eeles Close,Aylesbury,Bucks",HP19 9TU +HA15,8,"8 Eeles Close,Aylesbury,Bucks",HP19 9TU +HA15,9,"9 Eeles Close,Aylesbury,Bucks",HP19 9TU +HA15,10,"10 Eeles Close,Aylesbury,Bucks",HP19 9TU +HA15,15,"15 Eeles Close,Aylesbury,Bucks",HP19 9TU +HA15,17,"17 Dicks Way,Aylesbury,Bucks",HP19 9UA +HA15,20,"20 Dicks Way,Aylesbury,Bucks",HP19 9UA +HA15,28,"28 Dicks Way,Aylesbury,Bucks",HP19 9UA +HA15,30,"30 Dicks Way,Aylesbury,Bucks",HP19 9UA +HA15,32,"32 Dicks Way,Aylesbury,Bucks",HP19 9UA +HA15,34,"34 Dicks Way,Aylesbury,Bucks",HP19 9UA +HA15,36,"36 Dicks Way,Aylesbury,Bucks",HP19 9UA +HA15,7,"7 Fletcher Close,Aylesbury,Bucks",HP19 9UB +HA15,8,"8 Fletcher Close,Aylesbury,Bucks",HP19 9UB +HA15,10,"10 Fletcher Close,Aylesbury,Bucks",HP19 9UB +HA15,11,"11 Fletcher Close,Aylesbury,Bucks",HP19 9UB +HA15,12,"12 Fletcher Close,Aylesbury,Bucks",HP19 9UB +HA15,25,"25 Fletcher Close,Aylesbury,Bucks",HP19 9UB +HA15,33,"33 Fletcher Close,Aylesbury,Bucks",HP19 9UB +HA15,34,"34 Fletcher Close,Aylesbury,Bucks",HP19 9UB +HA15,11,"11 Grimmer Close,Aylesbury,Bucks",HP19 9UD +HA15,14,"14 Grimmer Close,Aylesbury,Bucks",HP19 9UD +HA15,15,"15 Grimmer Close,Aylesbury,Bucks",HP19 9UD +HA15,23,"23 Grimmer Close,Aylesbury,Bucks",HP19 9UD +HA15,12,"12 Vincent Road,Aylesbury,Bucks",HP19 9UN +HA15,4,"4 Reading Close,Aylesbury,Bucks",HP19 9UW +HA15,7,"7 Reading Close,Aylesbury,Bucks",HP19 9UW +HA15,10,"10 Reading Close,Aylesbury,Bucks",HP19 9UW +HA15,2,"2 Mary Mac Manus Drive, Milton Keynes",MK18 1UN +HA15,4,"4 Mary Mac Manus Drive, Milton Keynes",MK18 1UN +HA15,6,"6 Mary Mac Manus Drive, Milton Keynes",MK18 1UN +HA15,8,"8 Mary Mac Manus Drive, Milton Keynes",MK18 1UN +HA15,10,"10 Mary Mac Manus Drive, Milton Keynes",MK18 1UN +HA15,14,"14 Mary Mac Manus Drive, Milton Keynes",MK18 1UN +HA15,16,"16 Mary Mac Manus Drive, Milton Keynes",MK18 1UN +HA15,18,"18 Mary Mac Manus Drive, Milton Keynes",MK18 1UN +HA15,20,"20 Mary Mac Manus Drive, Milton Keynes",MK18 1UN +HA15,22,"22 Mary Mac Manus Drive, Milton Keynes",MK18 1UN +HA15,24,"24 Mary Mac Manus Drive, Milton Keynes",MK18 1UN +HA15,1,"1 Mary Mac Manus Drive, Milton Keynes",MK18 1UW +HA15,3,"3 Mary Mac Manus Drive, Milton Keynes",MK18 1UW +HA15,5,"5 Mary Mac Manus Drive, Milton Keynes",MK18 1UW +HA15,7,"7 Mary Mac Manus Drive, Milton Keynes",MK18 1UW +HA15,9,"9 Mary Mac Manus Drive, Milton Keynes",MK18 1UW +HA15,11,"11 Mary Mac Manus Drive, Milton Keynes",MK18 1UW +HA15,13,"13 Mary Mac Manus Drive, Milton Keynes",MK18 1UW +HA15,15,"15 Mary Mac Manus Drive, Milton Keynes",MK18 1UW +HA15,17,"17 Mary Mac Manus Drive, Milton Keynes",MK18 1UW +HA15,24,"24 St. Annes Road, Aylesbury",HP19 7RB +HA15,55,"55 St. Annes Road, Aylesbury",HP19 7RB +HA15,3,"3 Lansdowne Road, Aylesbury",HP20 2DJ +HA15,15,"15 Lansdowne Road, Aylesbury",HP20 2DJ +HA15,28,"28 Beechwood Way Aston Clinton, Aylesbury",HP22 5JP +HA15,11,"11 Lower Icknield Way Aston Clinton, Aylesbury",HP22 5JS +HA15,17,"17 Lower Icknield Way Aston Clinton, Aylesbury",HP22 5JS +HA15,5,"5 Beaconsfield Road Aston Clinton, Aylesbury",HP22 5JU +HA15,6,"6 Beaconsfield Road Aston Clinton, Aylesbury",HP22 5JU +HA15,8,"8 Beaconsfield Road Aston Clinton, Aylesbury",HP22 5JU +HA15,12,"12 Beaconsfield Road Aston Clinton, Aylesbury",HP22 5JU +HA15,13,"13 Beaconsfield Road Aston Clinton, Aylesbury",HP22 5JU +HA15,15,"15 Beaconsfield Road Aston Clinton, Aylesbury",HP22 5JU +HA15,16,"16 Beaconsfield Road Aston Clinton, Aylesbury",HP22 5JU +HA15,19,"19 Beaconsfield Road Aston Clinton, Aylesbury",HP22 5JU +HA15,21,"21 Beaconsfield Road Aston Clinton, Aylesbury",HP22 5JU +HA15,23,"23 Beaconsfield Road Aston Clinton, Aylesbury",HP22 5JU +HA15,13,"13 Beechwood Way Aston Clinton, Aylesbury",HP22 5JW +HA15,24,"24 Beaconsfield Road Aston Clinton, Aylesbury",HP22 5JX +HA15,26,"26 Beaconsfield Road Aston Clinton, Aylesbury",HP22 5JX +HA15,34,"34 Beaconsfield Road Aston Clinton, Aylesbury",HP22 5JX +HA15,39,"39 Beaconsfield Road Aston Clinton, Aylesbury",HP22 5JX +HA15,42,"42 Beaconsfield Road Aston Clinton, Aylesbury",HP22 5JX +HA15,44,"44 Beaconsfield Road Aston Clinton, Aylesbury",HP22 5JX +HA15,45,"45 Beaconsfield Road Aston Clinton, Aylesbury",HP22 5JX +HA15,89,"89 Beaconsfield Road Aston Clinton, Aylesbury",HP22 5JX +HA15,9,"9 Longcroft Aston Clinton, Aylesbury",HP22 5JZ +HA15,14,"14 Longcroft Aston Clinton, Aylesbury",HP22 5JZ +HA15,55,"55 Grenville Avenue Wendover, Aylesbury",HP22 6AJ +HA15,67,"67 Grenville Avenue Wendover, Aylesbury",HP22 6AJ +HA15,75,"75 Grenville Avenue Wendover, Aylesbury",HP22 6AJ +HA15,35,"35 Grenville Avenue Wendover, Aylesbury",HP22 6AQ +HA15,12,"12 Boddington Road Wendover, Aylesbury",HP22 6HY +HA15,16,"16 Boddington Road Wendover, Aylesbury",HP22 6HY +HA15,21,"21 Boddington Road Wendover, Aylesbury",HP22 6HY +HA15,35,"35 Boddington Road Wendover, Aylesbury",HP22 6HY +HA15,39,"39 Boddington Road Wendover, Aylesbury",HP22 6HY +HA15,5,"5 Boddington Road Wendover, Aylesbury",HP22 6HZ +HA15,1,"1a Lionel Avenue Wendover, Aylesbury",HP22 6LL +HA15,22,"22 Barley Close Weston Turville, Aylesbury",HP22 5SF +HA15,24,"24 Barley Close Weston Turville, Aylesbury",HP22 5SF +HA15,31,"31 Barley Close Weston Turville, Aylesbury",HP22 5SF +HA15,39,"39 Barley Close Weston Turville, Aylesbury",HP22 5SF +HA15,41,"41 Barley Close Weston Turville, Aylesbury",HP22 5SF +HA15,43,"43 Barley Close Weston Turville, Aylesbury",HP22 5SF +HA15,46,"46 Hampden Road Stoke Mandeville, Aylesbury",HP22 5TW +HA15,6,"6 Hampden Road Stoke Mandeville, Aylesbury",HP22 5UF +HA15,7,"7 Hampden Road Stoke Mandeville, Aylesbury",HP22 5UF +HA15,21,"21 Hampden Road Stoke Mandeville, Aylesbury",HP22 5UF +HA15,14,"14 Eskdale Road Stoke Mandeville, Aylesbury",HP22 5UJ +HA15,15,"15 Eskdale Road Stoke Mandeville, Aylesbury",HP22 5UJ +HA15,18,"18 Eskdale Road Stoke Mandeville, Aylesbury",HP22 5UJ +HA15,20,"20 Eskdale Road Stoke Mandeville, Aylesbury",HP22 5UJ +HA15,23,"23 Eskdale Road Stoke Mandeville, Aylesbury",HP22 5UJ +HA15,43,"43 Eskdale Road Stoke Mandeville, Aylesbury",HP22 5UJ +HA15,44,"44 Eskdale Road Stoke Mandeville, Aylesbury",HP22 5UJ +HA15,27,"27 Station Road Stoke Mandeville, Aylesbury",HP22 5UL +HA15,29,"29 Station Road Stoke Mandeville, Aylesbury",HP22 5UL +HA15,3,"3 Moor Park Wendover, Aylesbury",HP22 6AX +HA15,9,"9 Moor Park Wendover, Aylesbury",HP22 6AX +HA15,21,"21 Moor Park Wendover, Aylesbury",HP22 6AX +HA15,35,"35 Moor Park Wendover, Aylesbury",HP22 6AX +HA15,40,"40 Moor Park Wendover, Aylesbury",HP22 6AX +HA15,42,"42 Moor Park Wendover, Aylesbury",HP22 6AX +HA15,45,"45 Moor Park Wendover, Aylesbury",HP22 6AX +HA15,48,"48 Moor Park Wendover, Aylesbury",HP22 6AX +HA15,54,"54 Moor Park Wendover, Aylesbury",HP22 6AX +HA15,58,"58 Moor Park Wendover, Aylesbury",HP22 6AX +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,,MK40 1QT \ No newline at end of file diff --git a/etl/eligibility/ha_15_32/HA 32 Identfied addresses.csv b/etl/eligibility/ha_15_32/HA 32 Identfied addresses.csv new file mode 100644 index 00000000..dbec15b0 --- /dev/null +++ b/etl/eligibility/ha_15_32/HA 32 Identfied addresses.csv @@ -0,0 +1,1048576 @@ +Housing Association,No.,Address,Postcode +HA 32,1,SHERWOOD COURT,HU114DF +HA 32,2,SHERWOOD COURT,HU114DF +HA 32,3,SHERWOOD COURT,HU114DF +HA 32,4,SHERWOOD COURT,HU114DF +HA 32,5,SHERWOOD COURT,HU114DF +HA 32,7,SHERWOOD COURT,HU114DF +HA 32,8,SHERWOOD COURT,HU114DF +HA 32,9,SHERWOOD COURT,HU114DF +HA 32,10,SHERWOOD COURT,HU114DF +HA 32,27,Seaton Grove,HU4 6HF +HA 32,29,Seaton Grove,HU4 6HF +HA 32,31,Seaton Grove,HU4 6HF +HA 32,33,Seaton Grove,HU4 6HF +HA 32,35,Seaton Grove,HU4 6HF +HA 32,39,Seaton Grove,HU4 6HF +HA 32,41,Seaton Grove,HU4 6HF +HA 32,43,Seaton Grove,HU4 6HF +HA 32,7,Norton Grove,HU4 6HG +HA 32,9,Norton Grove,HU4 6HG +HA 32,11,Norton Grove,HU4 6HG +HA 32,15,Norton Grove,HU4 6HG +HA 32,17,Norton Grove,HU4 6HG +HA 32,19,Norton Grove,HU4 6HG +HA 32,21,Norton Grove,HU4 6HG +HA 32,28,Coxwold,HU4 6HH +HA 32,30,Coxwold,HU4 6HH +HA 32,32,Coxwold,HU4 6HH +HA 32,34,Coxwold,HU4 6HH +HA 32,36,Coxwold,HU4 6HH +HA 32,38,Coxwold,HU4 6HH +HA 32,40,Coxwold,HU4 6HH +HA 32,42,Coxwold,HU4 6HH +HA 32,44,Coxwold,HU4 6HH +HA 32,971,HESSLE ROAD,HU4 6QG +HA 32,973,HESSLE ROAD,HU4 6QG +HA 32,975,HESSLE ROAD,HU4 6QG +HA 32,977,HESSLE ROAD,HU4 6QG +HA 32,981,HESSLE ROAD,HU4 6QG +HA 32,983,HESSLE ROAD,HU4 6QG +HA 32,1,Hessle Road,HU4 6RS +HA 32,2,Hessle Road,HU4 6RS +HA 32,3,Hessle Road,HU4 6RS +HA 32,4,Hessle Road,HU4 6RS +HA 32,5,Hessle Road,HU4 6RS +HA 32,6,Hessle Road,HU4 6RS +HA 32,7,Hessle Road,HU4 6RS +HA 32,8,Hessle Road,HU4 6RS +HA 32,9,Hessle Road,HU4 6RS +HA 32,10,Hessle Road,HU4 6RS +HA 32,11,Hessle Road,HU4 6RS +HA 32,12,Hessle Road,HU4 6RS +HA 32,14,Hessle Road,HU4 6RS +HA 32,15,Hessle Road,HU4 6RS +HA 32,16,Hessle Road,HU4 6RS +HA 32,17,Hessle Road,HU4 6RS +HA 32,18,Hessle Road,HU4 6RS +HA 32,19,Hessle Road,HU4 6RS +HA 32,20,Hessle Road,HU4 6RS +HA 32,21,Hessle Road,HU4 6RS +HA 32,22,Hessle Road,HU4 6RS +HA 32,23,Hessle Road,HU4 6RS +HA 32,24,Hessle Road,HU4 6RS +HA 32,25,Hessle Road,HU4 6RS +HA 32,26,Hessle Road,HU4 6RS +HA 32,27,Hessle Road,HU4 6RS +HA 32,28,Hessle Road,HU4 6RS +HA 32,29,Hessle Road,HU4 6RS +HA 32,30,Hessle Road,HU4 6RS +HA 32,31,Hessle Road,HU4 6RS +HA 32,32,Hessle Road,HU4 6RS +HA 32,33,Hessle Road,HU4 6RS +HA 32,34,Hessle Road,HU4 6RS +HA 32,35,Hessle Road,HU4 6RS +HA 32,36,Hessle Road,HU4 6RS +HA 32,37,Hessle Road,HU4 6RS +HA 32,46,FORESTER WAY,HU4 6SR +HA 32,48,FORESTER WAY,HU4 6SR +HA 32,50,FORESTER WAY,HU4 6SR +HA 32,54,FORESTER WAY,HU4 6SR +HA 32,56,FORESTER WAY,HU4 6SR +HA 32,62,FORESTER WAY,HU4 6SR +HA 32,64,FORESTER WAY,HU4 6SR +HA 32,66,FORESTER WAY,HU4 6SR +HA 32,68,FORESTER WAY,HU4 6SR +HA 32,70,FORESTER WAY,HU4 6SR +HA 32,15,SUMMERGROVES WAY,HU4 6SZ +HA 32,1,WALNUT TREE WAY,HU4 6TG +HA 32,2,WALNUT TREE WAY,HU4 6TG +HA 32,3,WALNUT TREE WAY,HU4 6TG +HA 32,4,WALNUT TREE WAY,HU4 6TG +HA 32,7,WALNUT TREE WAY,HU4 6TG +HA 32,8,WALNUT TREE WAY,HU4 6TG +HA 32,9,WALNUT TREE WAY,HU4 6TG +HA 32,291,Cottingham Road,HU5 4AT +HA 32,293,Cottingham Road,HU5 4AT +HA 32,295,Cottingham Road,HU5 4AT +HA 32,297,Cottingham Road,HU5 4AT +HA 32,299,Cottingham Road,HU5 4AT +HA 32,301,Cottingham Road,HU5 4AT +HA 32,303,Cottingham Road,HU5 4AT +HA 32,305,Cottingham Road,HU5 4AT +HA 32,307,Cottingham Road,HU5 4AT +HA 32,309,Cottingham Road,HU5 4AT +HA 32,1,Edith Cavell Court,HU5 4BA +HA 32,2,Edith Cavell Court,HU5 4BA +HA 32,3,Edith Cavell Court,HU5 4BA +HA 32,4,Edith Cavell Court,HU5 4BA +HA 32,5,Edith Cavell Court,HU5 4BA +HA 32,6,Edith Cavell Court,HU5 4BA +HA 32,7,Edith Cavell Court,HU5 4BA +HA 32,8,Edith Cavell Court,HU5 4BA +HA 32,9,Edith Cavell Court,HU5 4BA +HA 32,10,Edith Cavell Court,HU5 4BA +HA 32,11,Edith Cavell Court,HU5 4BA +HA 32,12,Edith Cavell Court,HU5 4BA +HA 32,106,Barringhton Avenue,HU5 4BE +HA 32,112,Barringhton Avenue,HU5 4BE +HA 32,114,Barringhton Avenue,HU5 4BE +HA 32,116,Barringhton Avenue,HU5 4BE +HA 32,118,Barringhton Avenue,HU5 4BE +HA 32,120,Barringhton Avenue,HU5 4BE +HA 32,122,Barringhton Avenue,HU5 4BE +HA 32,124,Barringhton Avenue,HU5 4BE +HA 32,126,Barringhton Avenue,HU5 4BE +HA 32,1,Florence Nightingale Court,HU5 4BW +HA 32,2,Florence Nightingale Court,HU5 4BW +HA 32,3,Florence Nightingale Court,HU5 4BW +HA 32,4,Florence Nightingale Court,HU5 4BW +HA 32,5,Florence Nightingale Court,HU5 4BW +HA 32,6,Florence Nightingale Court,HU5 4BW +HA 32,7,Florence Nightingale Court,HU5 4BW +HA 32,8,Florence Nightingale Court,HU5 4BW +HA 32,9,Florence Nightingale Court,HU5 4BW +HA 32,10,Florence Nightingale Court,HU5 4BW +HA 32,11,Florence Nightingale Court,HU5 4BW +HA 32,12,Florence Nightingale Court,HU5 4BW +HA 32,14,Florence Nightingale Court,HU5 4BW +HA 32,15,Florence Nightingale Court,HU5 4BW +HA 32,17,Florence Nightingale Court,HU5 4BW +HA 32,19,Florence Nightingale Court,HU5 4BW +HA 32,12,Green Close,HU6 8DA +HA 32,44,Green Close,HU6 8DA +HA 32,49,Green Close,HU6 8DA +HA 32,50,Green Close,HU6 8DA +HA 32,14,Ashbury Court,HU6 8DY +HA 32,38,Westgarth Avenue,HU6 8LS +HA 32,46,WESTGARTH AVENUE,HU6 8LS +HA 32,48,WESTGARTH AVENUE,HU6 8LS +HA 32,54,Westgarth Avenue,HU6 8LS +HA 32,10,BEAUTIMAN COURT,HU6 8LX +HA 32,1,Rosey Row,HU9 1HF +HA 32,2,Rosey Row,HU9 1HF +HA 32,3,Rosey Row,HU9 1HF +HA 32,4,Rosey Row,HU9 1HF +HA 32,5,Rosey Row,HU9 1HF +HA 32,6,Rosey Row,HU9 1HF +HA 32,7,Rosey Row,HU9 1HF +HA 32,8,Rosey Row,HU9 1HF +HA 32,9,Rosey Row,HU9 1HF +HA 32,10,Rosey Row,HU9 1HF +HA 32,11,Rosey Row,HU9 1HF +HA 32,12,Rosey Row,HU9 1HF +HA 32,14,Rosey Row,HU9 1HF +HA 32,15,Rosey Row,HU9 1HF +HA 32,16,Rosey Row,HU9 1HF +HA 32,17,Rosey Row,HU9 1HF +HA 32,18,Rosey Row,HU9 1HF +HA 32,19,Rosey Row,HU9 1HF +HA 32,20,Rosey Row,HU9 1HF +HA 32,21,Rosey Row,HU9 1HF +HA 32,24,Steynburg Street,HU9 2PF +HA 32,26,Steynburg Street,HU9 2PF +HA 32,28,Steynburg Street,HU9 2PF +HA 32,30,Steynburg Street,HU9 2PF +HA 32,36,Steynburg Street,HU9 2PF +HA 32,38,Steynburg Street,HU9 2PF +HA 32,40,Steynburg Street,HU9 2PF +HA 32,42,Steynburg Street,HU9 2PF +HA 32,19,Rustenburg,HU9 2PT +HA 32,21,Rustenburg,HU9 2PT +HA 32,23,Rustenburg,HU9 2PT +HA 32,25,Rustenburg,HU9 2PT +HA 32,27,Rustenburg,HU9 2PT +HA 32,29,Rustenburg,HU9 2PT +HA 32,31,Rustenburg,HU9 2PT +HA 32,33,Rustenburg,HU9 2PT +HA 32,35,Rustenburg,HU9 2PT +HA 32,37,Rustenburg,HU9 2PT +HA 32,55,Rustenburg,HU9 2PT +HA 32,57,Rustenburg,HU9 2PT +HA 32,59,Rustenburg,HU9 2PT +HA 32,61,Rustenburg,HU9 2PT +HA 32,3,The Broadway,HU9 3JH +HA 32,5,THE BROADWAY,HU9 3JH +HA 32,7,The Broadway,HU9 3JH +HA 32,9,The Broadway,HU9 3JH +HA 32,11,The Broadway,HU9 3JH +HA 32,1,BOWLING CIRCLE,HU9 3JL +HA 32,3,BOWLING CIRCLE,HU9 3JL +HA 32,5,BOWLING CIRCLE,HU9 3JL +HA 32,7,BOWLING CIRCLE,HU9 3JL +HA 32,9,BOWLING CIRCLE,HU9 3JL +HA 32,1,MAJESTIC COURT,HU9 3JY +HA 32,2,MAJESTIC COURT,HU9 3JY +HA 32,3,MAJESTIC COURT,HU9 3JY +HA 32,4,MAJESTIC COURT,HU9 3JY +HA 32,5,MAJESTIC COURT,HU9 3JY +HA 32,6,MAJESTIC COURT,HU9 3JY +HA 32,7,MAJESTIC COURT,HU9 3JY +HA 32,8,MAJESTIC COURT,HU9 3JY +HA 32,9,MAJESTIC COURT,HU9 3JY +HA 32,10,MAJESTIC COURT,HU9 3JY +HA 32,11,MAJESTIC COURT,HU9 3JY +HA 32,12,MAJESTIC COURT,HU9 3JY +HA 32,14,MAJESTIC COURT,HU9 3JY +HA 32,15,Majestic Court,HU9 3JY +HA 32,16,MAJESTIC COURT,HU9 3JY +HA 32,1,ROYALE COURT,HU9 3JZ +HA 32,2,ROYALE COURT,HU9 3JZ +HA 32,3,ROYALE COURT,HU9 3JZ +HA 32,4,ROYALE COURT,HU9 3JZ +HA 32,5,ROYALE COURT,HU9 3JZ +HA 32,6,ROYALE COURT,HU9 3JZ +HA 32,7,ROYALE COURT,HU9 3JZ +HA 32,8,ROYALE COURT,HU9 3JZ +HA 32,9,ROYALE COURT,HU9 3JZ +HA 32,10,ROYALE COURT,HU9 3JZ +HA 32,11,ROYALE COURT,HU9 3JZ +HA 32,12,ROYALE COURT,HU9 3JZ +HA 32,14,ROYALE COURT,HU9 3JZ +HA 32,16,ROYALE COURT,HU9 3JZ +HA 32,17,ROYALE COURT,HU9 3JZ +HA 32,18,ROYALE COURT,HU9 3JZ +HA 32,19,ROYALE COURT,HU9 3JZ +HA 32,20,ROYALE COURT,HU9 3JZ +HA 32,21,ROYALE COURT,HU9 3JZ +HA 32,22,ROYALE COURT,HU9 3JZ +HA 32,23,ROYALE COURT,HU9 3JZ +HA 32,24,ROYALE COURT,HU9 3JZ +HA 32,25,ROYALE COURT,HU9 3JZ +HA 32,26,ROYALE COURT,HU9 3JZ +HA 32,12A,ROYALE COURT,HU9 3JZ +HA 32,79,MAYBURY ROAD,HU9 3LB +HA 32,1,HEBRIDES CLOSE,HU9 3LF +HA 32,2,HEBRIDES CLOSE,HU9 3LF +HA 32,3,HEBRIDES CLOSE,HU9 3LF +HA 32,4,HEBRIDES CLOSE,HU9 3LF +HA 32,5,HEBRIDES CLOSE,HU9 3LF +HA 32,6,HEBRIDES CLOSE,HU9 3LF +HA 32,7,HEBRIDES CLOSE,HU9 3LF +HA 32,8,HEBRIDES CLOSE,HU9 3LF +HA 32,9,HEBRIDES CLOSE,HU9 3LF +HA 32,10,HEBRIDES CLOSE,HU9 3LF +HA 32,11,HEBRIDES CLOSE,HU9 3LF +HA 32,14,Hebrides Close,HU9 3LF +HA 32,15,HEBRIDES CLOSE,HU9 3LF +HA 32,16,HEBRIDES CLOSE,HU9 3LF +HA 32,17,HEBRIDES CLOSE,HU9 3LF +HA 32,18,HEBRIDES CLOSE,HU9 3LF +HA 32,19,HEBRIDES CLOSE,HU9 3LF +HA 32,20,HEBRIDES CLOSE,HU9 3LF +HA 32,21,HEBRIDES CLOSE,HU9 3LF +HA 32,22,HEBRIDES CLOSE,HU9 3LF +HA 32,23,HEBRIDES CLOSE,HU9 3LF +HA 32,24,HEBRIDES CLOSE,HU9 3LF +HA 32,25,HEBRIDES CLOSE,HU9 3LF +HA 32,27,HEBRIDES CLOSE,HU9 3LF +HA 32,28,HEBRIDES CLOSE,HU9 3LF +HA 32,29,HEBRIDES CLOSE,HU9 3LF +HA 32,30,HEBRIDES CLOSE,HU9 3LF +HA 32,31,HEBRIDES CLOSE,HU9 3LF +HA 32,32,HEBRIDES CLOSE,HU9 3LF +HA 32,33,HEBRIDES CLOSE,HU9 3LF +HA 32,34,HEBRIDES CLOSE,HU9 3LF +HA 32,35,HEBRIDES CLOSE,HU9 3LF +HA 32,36,HEBRIDES CLOSE,HU9 3LF +HA 32,39,HEBRIDES CLOSE,HU9 3LF +HA 32,40,HEBRIDES CLOSE,HU9 3LF +HA 32,41,HEBRIDES CLOSE,HU9 3LF +HA 32,42,HEBRIDES CLOSE,HU9 3LF +HA 32,2,CROMARTY CLOSE,HU9 3LG +HA 32,4,CROMARTY CLOSE,HU9 3LG +HA 32,6,CROMARTY CLOSE,HU9 3LG +HA 32,8,CROMARTY CLOSE,HU9 3LG +HA 32,10,CROMARTY CLOSE,HU9 3LG +HA 32,12,CROMARTY CLOSE,HU9 3LG +HA 32,14,CROMARTY CLOSE,HU9 3LG +HA 32,16,CROMARTY CLOSE,HU9 3LG +HA 32,18,CROMARTY CLOSE,HU9 3LG +HA 32,20,CROMARTY CLOSE,HU9 3LG +HA 32,22,CROMARTY CLOSE,HU9 3LG +HA 32,24,CROMARTY CLOSE,HU9 3LG +HA 32,26,CROMARTY CLOSE,HU9 3LG +HA 32,28,CROMARTY CLOSE,HU9 3LG +HA 32,30,CROMARTY CLOSE,HU9 3LG +HA 32,32,CROMARTY CLOSE,HU9 3LG +HA 32,34,CROMARTY CLOSE,HU9 3LG +HA 32,36,CROMARTY CLOSE,HU9 3LG +HA 32,40,CROMARTY CLOSE,HU9 3LG +HA 32,42,CROMARTY CLOSE,HU9 3LG +HA 32,44,CROMARTY CLOSE,HU9 3LG +HA 32,46,CROMARTY CLOSE,HU9 3LG +HA 32,48,CROMARTY CLOSE,HU9 3LG +HA 32,48,CROMARTY CLOSE,HU9 3LG +HA 32,50,CROMARTY CLOSE,HU9 3LG +HA 32,52,CROMARTY CLOSE,HU9 3LG +HA 32,54,CROMARTY CLOSE,HU9 3LG +HA 32,56,CROMARTY CLOSE,HU9 3LG +HA 32,58,CROMARTY CLOSE,HU9 3LG +HA 32,60,CROMARTY CLOSE,HU9 3LG +HA 32,62,CROMARTY CLOSE,HU9 3LG +HA 32,64,CROMARTY CLOSE,HU9 3LG +HA 32,66,CROMARTY CLOSE,HU9 3LG +HA 32,68,CROMARTY CLOSE,HU9 3LG +HA 32,1,RONALDSWAY CLOSE,HU9 3LH +HA 32,2,RONALDSWAY CLOSE,HU9 3LH +HA 32,3,RONALDSWAY CLOSE,HU9 3LH +HA 32,3,"MALIN LODGE, RONALDSWAY CLOSE",HU9 3LH +HA 32,4,"MALIN LODGE, RONALDSWAY CLOSE",HU9 3LH +HA 32,6,"MALIN LODGE, RONALDSWAY CLOSE",HU9 3LH +HA 32,9,"MALIN LODGE, RONALDSWAY CLOSE",HU9 3LH +HA 32,10,"MALIN LODGE, RONALDSWAY CLOSE",HU9 3LH +HA 32,15,"MALIN LODGE, RONALDSWAY CLOSE",HU9 3LH +HA 32,17,"MALIN LODGE, RONALDSWAY CLOSE",HU9 3LH +HA 32,18,"MALIN LODGE, RONALDSWAY CLOSE",HU9 3LH +HA 32,7,BROADWAY DRIVE,HU9 3PA +HA 32,9,BROADWAY DRIVE,HU9 3PA +HA 32,11,BROADWAY DRIVE,HU9 3PA +HA 32,15,Broadway Drive,HU9 3PA +HA 32,17,Broadway Drive,HU9 3PA +HA 32,19,Broadway Drive,HU9 3PA +HA 32,21,Broadway Drive,HU9 3PA +HA 32,23,Broadway Drive,HU9 3PA +HA 32,25,Broadway Drive,HU9 3PA +HA 32,27,Broadway Drive,HU9 3PA +HA 32,29,Broadway Drive,HU9 3PA +HA 32,31,Broadway Drive,HU9 3PA +HA 32,33,Broadway Drive,HU9 3PA +HA 32,35,Broadway Drive,HU9 3PA +HA 32,37,BROADWAY DRIVE,HU9 3PA +HA 32,39,BROADWAY DRIVE,HU9 3PA +HA 32,41,Broadway Drive,HU9 3PA +HA 32,43,BROADWAY DRIVE,HU9 3PA +HA 32,45,BROADWAY DRIVE,HU9 3PA +HA 32,47,BROADWAY DRIVE,HU9 3PA +HA 32,49,BROADWAY DRIVE,HU9 3PA +HA 32,2,Broadway Drive,HU9 3PB +HA 32,4,Broadway Drive,HU9 3PB +HA 32,6,Broadway Drive,HU9 3PB +HA 32,8,Broadway Drive,HU9 3PB +HA 32,10,Broadway Drive,HU9 3PB +HA 32,12,Broadway Drive,HU9 3PB +HA 32,14,Broadway Drive,HU9 3PB +HA 32,16,Broadway Drive,HU9 3PB +HA 32,18,Broadway Drive,HU9 3PB +HA 32,20,Broadway Drive,HU9 3PB +HA 32,22,Broadway Drive,HU9 3PB +HA 32,26,Broadway Drive,HU9 3PB +HA 32,28,Broadway Drive,HU9 3PB +HA 32,28,ADA HOLMES CIRCLE,HU9 3PB +HA 32,30,Broadway Drive,HU9 3PB +HA 32,32,Broadway Drive,HU9 3PB +HA 32,34,Broadway Drive,HU9 3PB +HA 32,36,Broadway Drive,HU9 3PB +HA 32,38,Broadway Drive,HU9 3PB +HA 32,40,Broadway Drive,HU9 3PB +HA 32,42,Broadway Drive,HU9 3PB +HA 32,44,Broadway Drive,HU9 3PB +HA 32,46,Broadway Drive,HU9 3PB +HA 32,48,Broadway Drive,HU9 3PB +HA 32,52,Broadway Drive,HU9 3PB +HA 32,56,Broadway Drive,HU9 3PB +HA 32,58,Broadway Drive,HU9 3PB +HA 32,60,Broadway Drive,HU9 3PB +HA 32,55,RUTHERGLEN DRIVE,HU9 3PF +HA 32,57,RUTHERGLEN DRIVE,HU9 3PF +HA 32,59,RUTHERGLEN DRIVE,HU9 3PF +HA 32,1,IMPERIAL COURT,HU9 3PG +HA 32,3,IMPERIAL COURT,HU9 3PG +HA 32,4,IMPERIAL COURT,HU9 3PG +HA 32,5,IMPERIAL COURT,HU9 3PG +HA 32,6,IMPERIAL COURT,HU9 3PG +HA 32,7,IMPERIAL COURT,HU9 3PG +HA 32,8,IMPERIAL COURT,HU9 3PG +HA 32,9,IMPERIAL COURT,HU9 3PG +HA 32,10,IMPERIAL COURT,HU9 3PG +HA 32,10,SCHUBERT CLOSE,HU9 3PL +HA 32,27,SCHUBERT CLOSE,HU9 3PL +HA 32,28,SCHUBERT CLOSE,HU9 3PL +HA 32,32,SCHUBERT CLOSE,HU9 3PL +HA 32,1,Broadway Manor,HU9 3PN +HA 32,1,Broadway Cottages,HU9 3PN +HA 32,2,Broadway Manor,HU9 3PN +HA 32,2,Broadway Cottages,HU9 3PN +HA 32,3,Broadway Cottages,HU9 3PN +HA 32,6,Broadway Manor,HU9 3PN +HA 32,8,Broadway Manor,HU9 3PN +HA 32,17,Broadway Manor,HU9 3PN +HA 32,18,Broadway Manor,HU9 3PN +HA 32,19,Broadway Manor,HU9 3PN +HA 32,20,Broadway Manor,HU9 3PN +HA 32,24,Broadway Manor,HU9 3PN +HA 32,31,Broadway Manor,HU9 3PN +HA 32,35,Broadway Manor,HU9 3PN +HA 32,36,Broadway Manor,HU9 3PN +HA 32,12A,Broadway Manor,HU9 3PN +HA 32,1,FAROES CLOSE,HU9 4AN +HA 32,2,Feroes Close,HU9 4AN +HA 32,3,FAROES CLOSE,HU9 4AN +HA 32,4,FAROES CLOSE,HU9 4AN +HA 32,5,FAROES CLOSE,HU9 4AN +HA 32,6,FAROES CLOSE,HU9 4AN +HA 32,7,FAROES CLOSE,HU9 4AN +HA 32,9,FAROES CLOSE,HU9 4AN +HA 32,10,FAROES CLOSE,HU9 4AN +HA 32,11,FAROES CLOSE,HU9 4AN +HA 32,12,FAROES CLOSE,HU9 4AN +HA 32,14,FAROES CLOSE,HU9 4AN +HA 32,15,FAROES CLOSE,HU9 4AN +HA 32,16,FAROES CLOSE,HU9 4AN +HA 32,17,FAROES CLOSE,HU9 4AN +HA 32,18,FAROES CLOSE,HU9 4AN +HA 32,19,FAROES CLOSE,HU9 4AN +HA 32,81,MAYBURY ROAD,HU93LB +HA 32,1,ZIEGFELD COURT,HU93PH +HA 32,2,ZIEGFELD COURT,HU93PH +HA 32,3,ZIEGFELD COURT,HU93PH +HA 32,4,ZIEGFELD COURT,HU93PH +HA 32,5,ZIEGFELD COURT,HU93PH +HA 32,6,ZIEGFELD COURT,HU93PH +HA 32,7,ZIEGFELD COURT,HU93PH +HA 32,8,ZIEGFELD COURT,HU93PH +HA 32,9,ZIEGFELD COURT,HU93PH +HA 32,1,GOLDEN COURT,HU93PJ +HA 32,2,GOLDEN COURT,HU93PJ +HA 32,3,GOLDEN COURT,HU93PJ +HA 32,4,GOLDEN COURT,HU93PJ +HA 32,5,GOLDEN COURT,HU93PJ +HA 32,6,GOLDEN COURT,HU93PJ +HA 32,7,GOLDEN COURT,HU93PJ +HA 32,8,GOLDEN COURT,HU93PJ +HA 32,10,GOLDEN COURT,HU93PJ +HA 32,11,GOLDEN COURT,HU93PJ +HA 32,12,GOLDEN COURT,HU93PJ +HA 32,14,GOLDEN COURT,HU93PJ +HA 32,15,GOLDEN COURT,HU93PJ +HA 32,16,GOLDEN COURT,HU93PJ +HA 32,17,GOLDEN COURT,HU93PJ +HA 32,18,GOLDEN COURT,HU93PJ +HA 32,19,GOLDEN COURT,HU93PJ +HA 32,20,GOLDEN COURT,HU93PJ +HA 32,22,GOLDEN COURT,HU93PJ +HA 32,23,GOLDEN COURT,HU93PJ +HA 32,24,GOLDEN COURT,HU93PJ +HA 32,15,ROYALE COURT,HU9 3JZ +HA 32,6,SHERWOOD COURT,HU114DF +HA 32,979,HESSLE ROAD,HU4 6QG +HA 32,985,HESSLE ROAD,HU4 6QG +HA 32,2,BUSH CLOSE,HU4 6SP +HA 32,11,BUSH CLOSE,HU4 6SP +HA 32,16,BUSH CLOSE,HU4 6SP +HA 32,52,FORESTER WAY,HU4 6SR +HA 32,72,FORESTER WAY,HU4 6SR +HA 32,74,FORESTER WAY,HU4 6SR +HA 32,3,SUMMERGROVES WAY,HU4 6SZ +HA 32,5,WALNUT TREE WAY,HU4 6TG +HA 32,6,WALNUT TREE WAY,HU4 6TG +HA 32,417,Endike Lane,HU6 8AG +HA 32,5,Ashbury Court,HU6 8DA +HA 32,9,Ashbury Court,HU6 8DA +HA 32,12,Ashbury Court,HU6 8DA +HA 32,28,Green Close,HU6 8DA +HA 32,34,Green Close,HU6 8DA +HA 32,51,Green Close,HU6 8DA +HA 32,259,Endike Lane,HU6 8DX +HA 32,261,Endike Lane,HU6 8DX +HA 32,17,Ashbury Court,HU6 8DY +HA 32,20,Ashbury Court,HU6 8DY +HA 32,30,Westgarth Avenue,HU6 8LS +HA 32,45,Westgarth Avenue,HU6 8LS +HA 32,65,Westgarth Avenue,HU6 8LS +HA 32,12,BEAUTIMAN COURT,HU6 8LX +HA 32,1,THE BROADWAY,HU9 3JH +HA 32,12,HEBRIDES CLOSE,HU9 3LF +HA 32,26,HEBRIDES CLOSE,HU9 3LF +HA 32,37,HEBRIDES CLOSE,HU9 3LF +HA 32,38,HEBRIDES CLOSE,HU9 3LF +HA 32,24,Broadway Drive,HU9 3PB +HA 32,50,Broadway Drive,HU9 3PB +HA 32,54,Broadway Drive,HU9 3PB +HA 32,2,IMPERIAL COURT,HU9 3PG +HA 32,5,SCHUBERT CLOSE,HU9 3PL +HA 32,8,SCHUBERT CLOSE,HU9 3PL +HA 32,19,SCHUBERT CLOSE,HU9 3PL +HA 32,34,SCHUBERT CLOSE,HU9 3PL +HA 32,8,FAROES CLOSE,HU9 4AN +HA 32,9,GOLDEN COURT,HU93PJ +HA 32,21,GOLDEN COURT,HU93PJ +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,,MK40 1QT \ No newline at end of file diff --git a/etl/eligibility/ha_15_32/HA15 - ASSET LIST.csv b/etl/eligibility/ha_15_32/HA15 - ASSET LIST.csv new file mode 100644 index 00000000..f00f56cd --- /dev/null +++ b/etl/eligibility/ha_15_32/HA15 - ASSET LIST.csv @@ -0,0 +1,7667 @@ +Address Line 1,Address Line 2,Address Line 3,Address Line 4,Postcode,Need Category,Property Type,Year built,Construction type,"Heating source +NB. AS AT 31 MAR 2022 - May have changed since" +10 The Croft,Haddenham,Aylesbury,,HP17 8AS,General Needs,Bungalow,1940,Traditional,Natural gas (mains) +12 The Croft,Haddenham,Aylesbury,,HP17 8AS,General Needs,Bungalow,1940,Traditional,Natural gas (mains) +14 The Croft,Haddenham,Aylesbury,,HP17 8AS,General Needs,Bungalow,1940,Traditional,Natural gas (mains) +16 The Croft,Haddenham,Aylesbury,,HP17 8AS,General Needs,Bungalow,1940,Traditional,Natural gas (mains) +18 The Croft,Haddenham,Aylesbury,,HP17 8AS,General Needs,Bungalow,1940,Traditional,Natural gas (mains) +20 The Croft,Haddenham,Aylesbury,,HP17 8AS,General Needs,Bungalow,1940,Traditional,Natural gas (mains) +30 Willis Road,Haddenham,Aylesbury,,HP17 8HF,General Needs,Bungalow,1959,Traditional,Natural gas (mains) +32 Willis Road,Haddenham,Aylesbury,,HP17 8HF,General Needs,Bungalow,1959,Traditional,Natural gas (mains) +34 Willis Road,Haddenham,Aylesbury,,HP17 8HF,General Needs,Bungalow,1959,Traditional,Natural gas (mains) +36 Willis Road,Haddenham,Aylesbury,,HP17 8HF,General Needs,Bungalow,1959,Traditional,Natural gas (mains) +1 Roberts Road,Haddenham,Aylesbury,,HP17 8HH,General Needs,House,1948,Traditional,Natural gas (mains) +4 Roberts Road,Haddenham,Aylesbury,,HP17 8HH,General Needs,House,1948,Traditional,Natural gas (mains) +6 Roberts Road,Haddenham,Aylesbury,,HP17 8HH,General Needs,House,1948,Traditional,Natural gas (mains) +11 Roberts Road,Haddenham,Aylesbury,,HP17 8HH,General Needs,House,1956,Traditional,Natural gas (mains) +15 Roberts Road,Haddenham,Aylesbury,,HP17 8HH,General Needs,House,1956,Traditional,Natural gas (mains) +17 Roberts Road,Haddenham,Aylesbury,,HP17 8HH,General Needs,House,1956,Traditional,Natural gas (mains) +18 Roberts Road,Haddenham,Aylesbury,,HP17 8HH,General Needs,House,1956,Traditional,Natural gas (mains) +23 Roberts Road,Haddenham,Aylesbury,,HP17 8HH,General Needs,Bungalow,1956,Traditional,Natural gas (mains) +25 Roberts Road,Haddenham,Aylesbury,,HP17 8HH,General Needs,Bungalow,1956,Traditional,Natural gas (mains) +27 Roberts Road,Haddenham,Aylesbury,,HP17 8HH,General Needs,Bungalow,1958,Traditional,Natural gas (mains) +29 Roberts Road,Haddenham,Aylesbury,,HP17 8HH,General Needs,Bungalow,1958,Traditional,Natural gas (mains) +31 Roberts Road,Haddenham,Aylesbury,,HP17 8HH,General Needs,Bungalow,1958,Traditional,Natural gas (mains) +38 Roberts Road,Haddenham,Aylesbury,,HP17 8HH,General Needs,House,1958,Traditional,Natural gas (mains) +40 Roberts Road,Haddenham,Aylesbury,,HP17 8HH,General Needs,Bungalow,1958,Traditional,Natural gas (mains) +42 Roberts Road,Haddenham,Aylesbury,,HP17 8HH,General Needs,Bungalow,1958,Traditional,Natural gas (mains) +44 Roberts Road,Haddenham,Aylesbury,,HP17 8HH,General Needs,Bungalow,1958,Traditional,Natural gas (mains) +46 Roberts Road,Haddenham,Aylesbury,,HP17 8HH,General Needs,Bungalow,1958,Traditional,Natural gas (mains) +3 Harts Road,Haddenham,Aylesbury,,HP17 8HJ,General Needs,House,1953,Traditional,Natural gas (mains) +9 Harts Road,Haddenham,Aylesbury,,HP17 8HJ,General Needs,House,1953,Traditional,Natural gas (mains) +11 Harts Road,Haddenham,Aylesbury,,HP17 8HJ,General Needs,House,1953,Traditional,Natural gas (mains) +16 Harts Road,Haddenham,Aylesbury,,HP17 8HJ,General Needs,House,1954,Traditional,Natural gas (mains) +18 Harts Road,Haddenham,Aylesbury,,HP17 8HJ,General Needs,House,1954,Traditional,Natural gas (mains) +22 Harts Road,Haddenham,Aylesbury,,HP17 8HJ,General Needs,House,1952,Traditional,Natural gas (mains) +2 Willis Road,Haddenham,Aylesbury,,HP17 8HL,General Needs,House,1947,Traditional,Natural gas (mains) +4 Willis Road,Haddenham,Aylesbury,,HP17 8HL,General Needs,House,1947,Traditional,Natural gas (mains) +5 Willis Road,Haddenham,Aylesbury,,HP17 8HL,General Needs,House,1951,Traditional,Natural gas (mains) +8 Willis Road,Haddenham,Aylesbury,,HP17 8HL,General Needs,House,1951,Traditional,Natural gas (mains) +20 Willis Road,Haddenham,Aylesbury,,HP17 8HL,General Needs,House,1955,Traditional,Natural gas (mains) +21 Willis Road,Haddenham,Aylesbury,,HP17 8HL,General Needs,House,1955,Traditional,Natural gas (mains) +22 Willis Road,Haddenham,Aylesbury,,HP17 8HL,General Needs,House,1955,Traditional,Natural gas (mains) +26 Willis Road,Haddenham,Aylesbury,,HP17 8HL,General Needs,House,1955,Traditional,Natural gas (mains) +29 Willis Road,Haddenham,Aylesbury,,HP17 8HL,General Needs,House,1955,Traditional,Natural gas (mains) +31 Willis Road,Haddenham,Aylesbury,,HP17 8HL,General Needs,House,1955,Traditional,Natural gas (mains) +33 Willis Road,Haddenham,Aylesbury,,HP17 8HL,General Needs,House,1955,Traditional,Natural gas (mains) +35 Willis Road,Haddenham,Aylesbury,,HP17 8HL,General Needs,House,1955,Traditional,Natural gas (mains) +37 Willis Road,Haddenham,Aylesbury,,HP17 8HL,General Needs,House,1955,Traditional,Natural gas (mains) +39 Willis Road,Haddenham,Aylesbury,,HP17 8HL,General Needs,House,1955,Traditional,Natural gas (mains) +72 Stanbridge Road,Haddenham,Aylesbury,,HP17 8HN,General Needs,House,1947,Traditional,Natural gas (mains) +84 Stanbridge Road,Haddenham,Aylesbury,,HP17 8HN,General Needs,House,1947,Traditional,Natural gas (mains) +95 Stanbridge Road,Haddenham,Aylesbury,,HP17 8HN,General Needs,House,1928,Old Hundreds,Natural gas (mains) +97 Stanbridge Road,Haddenham,Aylesbury,,HP17 8HN,General Needs,House,1928,Old Hundreds,Natural gas (mains) +99 Stanbridge Road,Haddenham,Aylesbury,,HP17 8HN,General Needs,House,1928,Old Hundreds,Natural gas (mains) +103 Stanbridge Road,Haddenham,Aylesbury,,HP17 8HN,General Needs,House,1928,Old Hundreds,Natural gas (mains) +111 Stanbridge Road,Haddenham,Aylesbury,,HP17 8HN,General Needs,House,1928,Old Hundreds,Natural gas (mains) +5 Woodways,Haddenham,Aylesbury,,HP17 8HW,General Needs,House,1957,Traditional,Natural gas (mains) +7 Woodways,Haddenham,Aylesbury,,HP17 8HW,General Needs,House,1947,Traditional,Natural gas (mains) +13 Woodways,Haddenham,Aylesbury,,HP17 8HW,General Needs,House,1948,Traditional,Natural gas (mains) +19 Woodways,Haddenham,Aylesbury,,HP17 8HW,General Needs,House,1948,Traditional,Natural gas (mains) +1 Woodlands,Butte Furlong,Haddenham,Aylesbury,HP17 8JE,General Needs,House,1976,Traditional,Natural gas (mains) +2 Woodlands,Butte Furlong,Haddenham,Aylesbury,HP17 8JE,Independent Living,Flat,1976,Traditional,Radiators - communal gas boiler +3 Woodlands,Butte Furlong,Haddenham,Aylesbury,HP17 8JE,Independent Living,Flat,1976,Traditional,Radiators - communal gas boiler +4 Woodlands,Butte Furlong,Haddenham,Aylesbury,HP17 8JE,Independent Living,Flat,1976,Traditional,Radiators - communal gas boiler +5 Woodlands,Butte Furlong,Haddenham,Aylesbury,HP17 8JE,Independent Living,Flat,1976,Traditional,Radiators - communal gas boiler +6 Woodlands,Butte Furlong,Haddenham,Aylesbury,HP17 8JE,Independent Living,Flat,1976,Traditional,Radiators - communal gas boiler +7 Woodlands,Butte Furlong,Haddenham,Aylesbury,HP17 8JE,Independent Living,Flat,1976,Traditional,Radiators - communal gas boiler +8 Woodlands,Butte Furlong,Haddenham,Aylesbury,HP17 8JE,Independent Living,Flat,1976,Traditional,Radiators - communal gas boiler +9 Woodlands,Butte Furlong,Haddenham,Aylesbury,HP17 8JE,Independent Living,Flat,1976,Traditional,Radiators - communal gas boiler +10 Woodlands,Butte Furlong,Haddenham,Aylesbury,HP17 8JE,Independent Living,Flat,1976,Traditional,Radiators - communal gas boiler +11 Woodlands,Butte Furlong,Haddenham,Aylesbury,HP17 8JE,Independent Living,Flat,1976,Traditional,Radiators - communal gas boiler +12 Woodlands,Butte Furlong,Haddenham,Aylesbury,HP17 8JE,Independent Living,Flat,1976,Traditional,Radiators - communal gas boiler +13 Woodlands,Butte Furlong,Haddenham,Aylesbury,HP17 8JE,Independent Living,Flat,1976,Traditional,Radiators - communal gas boiler +14 Woodlands,Butte Furlong,Haddenham,Aylesbury,HP17 8JE,Independent Living,Flat,1976,Traditional,Radiators - communal gas boiler +15 Woodlands,Butte Furlong,Haddenham,Aylesbury,HP17 8JE,Independent Living,Flat,1976,Traditional,Radiators - communal gas boiler +16 Woodlands,Butte Furlong,Haddenham,Aylesbury,HP17 8JE,Independent Living,Flat,1976,Traditional,Radiators - communal gas boiler +17 Woodlands,Butte Furlong,Haddenham,Aylesbury,HP17 8JE,Independent Living,Flat,1976,Traditional,Radiators - communal gas boiler +18 Woodlands,Butte Furlong,Haddenham,Aylesbury,HP17 8JE,Independent Living,Flat,1976,Traditional,Radiators - communal gas boiler +19 Woodlands,Butte Furlong,Haddenham,Aylesbury,HP17 8JE,Independent Living,Flat,1976,Traditional,Radiators - communal gas boiler +20 Woodlands,Butte Furlong,Haddenham,Aylesbury,HP17 8JE,Independent Living,Flat,1976,Traditional,Radiators - communal gas boiler +21 Woodlands,Butte Furlong,Haddenham,Aylesbury,HP17 8JE,Independent Living,Flat,1976,Traditional,Radiators - communal gas boiler +22 Woodlands,Butte Furlong,Haddenham,Aylesbury,HP17 8JE,Independent Living,Flat,1976,Traditional,Radiators - communal gas boiler +23 Woodlands,Butte Furlong,Haddenham,Aylesbury,HP17 8JE,Independent Living,Flat,1976,Traditional,Radiators - communal gas boiler +24 Woodlands,Butte Furlong,Haddenham,Aylesbury,HP17 8JE,Independent Living,Flat,1976,Traditional,Radiators - communal gas boiler +25 Woodlands,Butte Furlong,Haddenham,Aylesbury,HP17 8JE,Independent Living,Flat,1976,Traditional,Radiators - communal gas boiler +26 Woodlands,Butte Furlong,Haddenham,Aylesbury,HP17 8JE,Independent Living,Flat,1976,Traditional,Radiators - communal gas boiler +27 Woodlands,Butte Furlong,Haddenham,Aylesbury,HP17 8JE,Independent Living,Flat,1976,Traditional,Radiators - communal gas boiler +28 Woodlands,Butte Furlong,Haddenham,Aylesbury,HP17 8JE,Independent Living,Flat,1976,Traditional,Radiators - communal gas boiler +29 Woodlands,Butte Furlong,Haddenham,Aylesbury,HP17 8JE,Independent Living,Flat,1976,Traditional,Radiators - communal gas boiler +30 Woodlands,Butte Furlong,Haddenham,Aylesbury,HP17 8JE,Independent Living,Flat,1976,Traditional,Radiators - communal gas boiler +31 Woodlands,Butte Furlong,Haddenham,Aylesbury,HP17 8JE,Independent Living,Flat,1976,Traditional,Radiators - communal gas boiler +32 Woodlands,Butte Furlong,Haddenham,Aylesbury,HP17 8JE,Independent Living,Flat,1976,Traditional,Radiators - communal gas boiler +2 Butte Furlong,Haddenham,Aylesbury,,HP17 8JF,General Needs,House,1974,Traditional,Natural gas (mains) +3 Butte Furlong,Haddenham,Aylesbury,,HP17 8JF,General Needs,House,1974,Traditional,Natural gas (mains) +6 Butte Furlong,Haddenham,Aylesbury,,HP17 8JF,General Needs,House,1974,Traditional,Natural gas (mains) +9 Butte Furlong,Haddenham,Aylesbury,,HP17 8JF,General Needs,House,1974,Traditional,Natural gas (mains) +11 Butte Furlong,Haddenham,Aylesbury,,HP17 8JF,Independent Living,Bungalow,1974,Traditional,Natural gas (mains) +12 Butte Furlong,Haddenham,Aylesbury,,HP17 8JF,Independent Living,Bungalow,1974,Traditional,Natural gas (mains) +13 Butte Furlong,Haddenham,Aylesbury,,HP17 8JF,Independent Living,Bungalow,1974,Traditional,Natural gas (mains) +14 Butte Furlong,Haddenham,Aylesbury,,HP17 8JF,Independent Living,Bungalow,1974,Traditional,Natural gas (mains) +15 Butte Furlong,Haddenham,Aylesbury,,HP17 8JF,Independent Living,Bungalow,1974,Traditional,Natural gas (mains) +16 Butte Furlong,Haddenham,Aylesbury,,HP17 8JF,Independent Living,Bungalow,1974,Traditional,Natural gas (mains) +17 Butte Furlong,Haddenham,Aylesbury,,HP17 8JF,Independent Living,Bungalow,1974,Traditional,Natural gas (mains) +18 Butte Furlong,Haddenham,Aylesbury,,HP17 8JF,Independent Living,Bungalow,1974,Traditional,Natural gas (mains) +19 Butte Furlong,Haddenham,Aylesbury,,HP17 8JF,Independent Living,Bungalow,1974,Traditional,Natural gas (mains) +20 Butte Furlong,Haddenham,Aylesbury,,HP17 8JF,Independent Living,Bungalow,1974,Traditional,Natural gas (mains) +21 Butte Furlong,Haddenham,Aylesbury,,HP17 8JF,Independent Living,Bungalow,1974,Traditional,Natural gas (mains) +22 Butte Furlong,Haddenham,Aylesbury,,HP17 8JF,Independent Living,Bungalow,1974,Traditional,Natural gas (mains) +23 Butte Furlong,Haddenham,Aylesbury,,HP17 8JF,Independent Living,Bungalow,1974,Traditional,Natural gas (mains) +24 Butte Furlong,Haddenham,Aylesbury,,HP17 8JF,Independent Living,Bungalow,1974,Traditional,Natural gas (mains) +25 Butte Furlong,Haddenham,Aylesbury,,HP17 8JF,Independent Living,Bungalow,1974,Traditional,Natural gas (mains) +26 Butte Furlong,Haddenham,Aylesbury,,HP17 8JF,Independent Living,Bungalow,1974,Traditional,Natural gas (mains) +27 Butte Furlong,Haddenham,Aylesbury,,HP17 8JF,Independent Living,Bungalow,1974,Traditional,Natural gas (mains) +28 Butte Furlong,Haddenham,Aylesbury,,HP17 8JF,Independent Living,Bungalow,1974,Traditional,Natural gas (mains) +38 Butte Furlong,Haddenham,Aylesbury,,HP17 8JF,General Needs,House,1974,Traditional,Natural gas (mains) +39 Butte Furlong,Haddenham,Aylesbury,,HP17 8JF,General Needs,House,1974,Traditional,Natural gas (mains) +1 Runfurrow,Haddenham,AYLESBURY,,HP17 8JH,Independent Living,Bungalow,1976,Traditional,Natural gas (mains) +3 Runfurrow,Haddenham,AYLESBURY,,HP17 8JH,Independent Living,Bungalow,1976,Traditional,Natural gas (mains) +4 Runfurrow,Haddenham,AYLESBURY,,HP17 8JH,General Needs,House,1976,Traditional,Natural gas (mains) +5 Runfurrow,Haddenham,AYLESBURY,,HP17 8JH,Independent Living,Bungalow,1976,Traditional,Natural gas (mains) +7 Runfurrow,Haddenham,AYLESBURY,,HP17 8JH,Independent Living,Bungalow,1976,Traditional,Natural gas (mains) +8 Runfurrow,Haddenham,AYLESBURY,,HP17 8JH,General Needs,House,1976,Traditional,Natural gas (mains) +9 Runfurrow,Haddenham,AYLESBURY,,HP17 8JH,General Needs,Flat,1976,Traditional,Natural gas (mains) +10 Runfurrow,Haddenham,AYLESBURY,,HP17 8JH,General Needs,House,1976,Traditional,Natural gas (mains) +13 Runfurrow,Haddenham,AYLESBURY,,HP17 8JH,General Needs,Flat,1976,Traditional,Natural gas (mains) +17 Runfurrow,Haddenham,AYLESBURY,,HP17 8JH,General Needs,Flat,1976,Traditional,Natural gas (mains) +31 Runfurrow,Haddenham,AYLESBURY,,HP17 8JH,General Needs,Flat,1976,Traditional,Natural gas (mains) +33 Runfurrow,Haddenham,AYLESBURY,,HP17 8JH,General Needs,Flat,1976,Traditional,Natural gas (mains) +35 Runfurrow,Haddenham,AYLESBURY,,HP17 8JH,General Needs,Flat,1976,Traditional,Natural gas (mains) +37 Runfurrow,Haddenham,AYLESBURY,,HP17 8JH,General Needs,Flat,1976,Traditional,Natural gas (mains) +39 Runfurrow,Haddenham,AYLESBURY,,HP17 8JH,General Needs,Flat,1976,Traditional,Natural gas (mains) +41 Runfurrow,Haddenham,AYLESBURY,,HP17 8JH,General Needs,Flat,1976,Traditional,Natural gas (mains) +43 Runfurrow,Haddenham,AYLESBURY,,HP17 8JH,General Needs,Flat,1976,Traditional,Natural gas (mains) +47 Runfurrow,Haddenham,AYLESBURY,,HP17 8JH,General Needs,Flat,1976,Traditional,Natural gas (mains) +51 Runfurrow,Haddenham,AYLESBURY,,HP17 8JH,General Needs,Flat,1976,Traditional,Natural gas (mains) +4 Cottland Clay,Haddenham,Aylesbury,,HP17 8JQ,General Needs,House,1976,Traditional,Natural gas (mains) +6 Cottland Clay,Haddenham,Aylesbury,,HP17 8JQ,General Needs,House,1976,Traditional,Natural gas (mains) +8 Cottland Clay,Haddenham,Aylesbury,,HP17 8JQ,General Needs,House,1976,Traditional,Natural gas (mains) +9 Cottland Clay,Haddenham,Aylesbury,,HP17 8JQ,General Needs,House,1976,Traditional,Natural gas (mains) +21 Cottland Clay,Haddenham,Aylesbury,,HP17 8JQ,General Needs,House,1976,Traditional,Natural gas (mains) +3 Stanbridge Road,Haddenham,Aylesbury,,HP17 8JX,General Needs,House,1934,Traditional,Natural gas (mains) +7 Stanbridge Road,Haddenham,Aylesbury,,HP17 8JX,General Needs,House,1934,Traditional,Natural gas (mains) +2 Stanbridge Close,Haddenham,Aylesbury,,HP17 8JZ,General Needs,House,1986,Traditional,Natural gas (mains) +3 Stanbridge Close,Haddenham,Aylesbury,,HP17 8JZ,General Needs,House,1986,Traditional,Natural gas (mains) +5 Stanbridge Close,Haddenham,Aylesbury,,HP17 8JZ,General Needs,Bungalow,1986,Traditional,Natural gas (mains) +7 Stanbridge Close,Haddenham,Aylesbury,,HP17 8JZ,General Needs,Bungalow,1986,Traditional,Natural gas (mains) +8 Stanbridge Close,Haddenham,Aylesbury,,HP17 8JZ,General Needs,House,1986,Traditional,Natural gas (mains) +11 Stanbridge Close,Haddenham,Aylesbury,,HP17 8JZ,General Needs,House,1986,Traditional,Natural gas (mains) +20 Stanbridge Close,Haddenham,Aylesbury,,HP17 8JZ,General Needs,House,1986,Traditional,Natural gas (mains) +22 Stanbridge Close,Haddenham,Aylesbury,,HP17 8JZ,General Needs,Bungalow,1986,Traditional,Natural gas (mains) +24 Stanbridge Close,Haddenham,Aylesbury,,HP17 8JZ,General Needs,Bungalow,1986,Traditional,Natural gas (mains) +1 Franklin Close,Haddenham,Aylesbury,,HP17 8LD,General Needs,Bungalow,1964,Traditional,Natural gas (mains) +2 Franklin Close,Haddenham,Aylesbury,,HP17 8LD,General Needs,Bungalow,1964,Traditional,Natural gas (mains) +3 Franklin Close,Haddenham,Aylesbury,,HP17 8LD,General Needs,Bungalow,1964,Traditional,Natural gas (mains) +4 Franklin Close,Haddenham,Aylesbury,,HP17 8LD,General Needs,Bungalow,1964,Traditional,Natural gas (mains) +5 Franklin Close,Haddenham,Aylesbury,,HP17 8LD,General Needs,Bungalow,1964,Traditional,Natural gas (mains) +6 Franklin Close,Haddenham,Aylesbury,,HP17 8LD,General Needs,Bungalow,1964,Traditional,Natural gas (mains) +7 Franklin Close,Haddenham,Aylesbury,,HP17 8LD,General Needs,Bungalow,1964,Traditional,Natural gas (mains) +8 Franklin Close,Haddenham,Aylesbury,,HP17 8LD,General Needs,Bungalow,1964,Traditional,Natural gas (mains) +9 Franklin Close,Haddenham,Aylesbury,,HP17 8LD,General Needs,Bungalow,1964,Traditional,Natural gas (mains) +10 Franklin Close,Haddenham,Aylesbury,,HP17 8LD,General Needs,Bungalow,1964,Traditional,Natural gas (mains) +11 Franklin Close,Haddenham,Aylesbury,,HP17 8LD,General Needs,Bungalow,1964,Traditional,Natural gas (mains) +12 Franklin Close,Haddenham,Aylesbury,,HP17 8LD,General Needs,Bungalow,1964,Traditional,Natural gas (mains) +13 Franklin Close,Haddenham,Aylesbury,,HP17 8LD,General Needs,Bungalow,1964,Traditional,Natural gas (mains) +14 Franklin Close,Haddenham,Aylesbury,,HP17 8LD,General Needs,Bungalow,1964,Traditional,Natural gas (mains) +15 Franklin Close,Haddenham,Aylesbury,,HP17 8LD,General Needs,Bungalow,1964,Traditional,Natural gas (mains) +2 Franklin Road,Haddenham,Aylesbury,,HP17 8LE,General Needs,House,1966,Traditional,Natural gas (mains) +3 Franklin Road,Haddenham,Aylesbury,,HP17 8LE,General Needs,Flat,1966,Traditional,Natural gas (mains) +5 Franklin Road,Haddenham,Aylesbury,,HP17 8LE,General Needs,Flat,1966,Traditional,Natural gas (mains) +8 Franklin Road,Haddenham,Aylesbury,,HP17 8LE,General Needs,House,1966,Traditional,Natural gas (mains) +11 Franklin Road,Haddenham,Aylesbury,,HP17 8LE,General Needs,Flat,1966,Traditional,Natural gas (mains) +14 Franklin Road,Haddenham,Aylesbury,,HP17 8LE,General Needs,House,1966,Traditional,Natural gas (mains) +17 Franklin Road,Haddenham,Aylesbury,,HP17 8LE,General Needs,Bungalow,1964,Traditional,Natural gas (mains) +19 Franklin Road,Haddenham,Aylesbury,,HP17 8LE,General Needs,Bungalow,1964,Traditional,Natural gas (mains) +22 Franklin Road,Haddenham,Aylesbury,,HP17 8LE,General Needs,House,1966,Traditional,Natural gas (mains) +122 Churchway,Haddenham,Aylesbury,,HP17 8LF,General Needs,House,1963,Traditional,Natural gas (mains) +129 Churchway,Haddenham,Aylesbury,,HP17 8LG,General Needs,House,1939,Traditional,Natural gas (mains) +133 Churchway,Haddenham,Aylesbury,,HP17 8LG,General Needs,House,1939,Traditional,Natural gas (mains) +135 Churchway,Haddenham,Aylesbury,,HP17 8LG,General Needs,House,1939,Traditional,Natural gas (mains) +141 Churchway,Haddenham,Aylesbury,,HP17 8LG,General Needs,House,1936,Traditional,Natural gas (mains) +147 Churchway,Haddenham,Aylesbury,,HP17 8LG,General Needs,House,1936,Traditional,Natural gas (mains) +21 Oxford Road,Stone,Aylesbury,,HP17 8PD,General Needs,Bungalow,1954,Traditional,Natural gas (mains) +23 Oxford Road,Stone,Aylesbury,,HP17 8PD,General Needs,Bungalow,1954,Traditional,Natural gas (mains) +25 Oxford Road,Stone,Aylesbury,,HP17 8PD,General Needs,Bungalow,1954,Traditional,Natural gas (mains) +29 Oxford Road,Stone,Aylesbury,,HP17 8PD,General Needs,Bungalow,1954,Traditional,Natural gas (mains) +31 Oxford Road,Stone,Aylesbury,,HP17 8PD,General Needs,Bungalow,1954,Traditional,Natural gas (mains) +33 Oxford Road,Stone,Aylesbury,,HP17 8PD,General Needs,Bungalow,1955,Traditional,Natural gas (mains) +35 Oxford Road,Stone,Aylesbury,,HP17 8PD,General Needs,Bungalow,1954,Traditional,Natural gas (mains) +9A Bishopstone Road,Stone,Aylesbury,,HP17 8QX,General Needs,Flat,1970,Traditional,Natural gas (mains) +7 Bishopstone Road,Stone,Aylesbury,,HP17 8QX,General Needs,House,1927,Old Hundreds,Natural gas (mains) +21 Bishopstone Road,Stone,Aylesbury,,HP17 8QX,General Needs,Bungalow,1951,Traditional,Natural gas (mains) +27 Bishopstone Road,Stone,Aylesbury,,HP17 8QX,General Needs,Bungalow,1951,Traditional,Natural gas (mains) +29 Bishopstone Road,Stone,Aylesbury,,HP17 8QX,General Needs,Bungalow,1951,Traditional,Natural gas (mains) +33 Bishopstone Road,Stone,Aylesbury,,HP17 8QX,General Needs,House,1950,Traditional,Natural gas (mains) +2 Chiltern Avenue,Stone,Aylesbury,,HP17 8QY,General Needs,Bungalow,1951,Traditional,Natural gas (mains) +8 Chiltern Avenue,Stone,Aylesbury,,HP17 8QY,General Needs,House,1950,Traditional,Natural gas (mains) +20 Chiltern Avenue,Stone,Aylesbury,,HP17 8QY,General Needs,House,1951,Traditional,Natural gas (mains) +28 Chiltern Avenue,Stone,Aylesbury,,HP17 8QY,General Needs,House,1953,Traditional,Natural gas (mains) +32 Chiltern Avenue,Stone,Aylesbury,,HP17 8QY,General Needs,House,1953,Traditional,Natural gas (mains) +34 Chiltern Avenue,Stone,Aylesbury,,HP17 8QY,General Needs,House,1953,Traditional,Natural gas (mains) +46 Chiltern Avenue,Stone,Aylesbury,,HP17 8QY,General Needs,House,1954,Traditional,Natural gas (mains) +60 Chiltern Avenue,Stone,Aylesbury,,HP17 8QY,General Needs,House,1954,Traditional,Natural gas (mains) +62 Chiltern Avenue,Stone,Aylesbury,,HP17 8QY,General Needs,House,1954,Traditional,Natural gas (mains) +1 Chiltern Avenue,Stone,Aylesbury,,HP17 8QZ,General Needs,Bungalow,1951,Traditional,Natural gas (mains) +7 Chiltern Avenue,Stone,Aylesbury,,HP17 8QZ,General Needs,House,1952,Traditional,Natural gas (mains) +13 Chiltern Avenue,Stone,Aylesbury,,HP17 8QZ,General Needs,House,1952,Traditional,Natural gas (mains) +33 Chiltern Avenue,Stone,Aylesbury,,HP17 8QZ,General Needs,House,1957,Traditional,Natural gas (mains) +35 Chiltern Avenue,Stone,Aylesbury,,HP17 8QZ,General Needs,Bungalow,1957,Traditional,Natural gas (mains) +37 Chiltern Avenue,Stone,Aylesbury,,HP17 8QZ,General Needs,Bungalow,1957,Traditional,Natural gas (mains) +41 Chiltern Avenue,Stone,Aylesbury,,HP17 8QZ,General Needs,House,1957,Traditional,Natural gas (mains) +9 Chiltern Close,Stone,Aylesbury,,HP17 8RA,General Needs,Bungalow,1957,Traditional,Natural gas (mains) +11 Chiltern Close,Stone,Aylesbury,,HP17 8RA,General Needs,Bungalow,1957,Traditional,Natural gas (mains) +14 Chiltern Close,Stone,Aylesbury,,HP17 8RA,General Needs,House,1957,Traditional,Natural gas (mains) +17 Chiltern Close,Stone,Aylesbury,,HP17 8RA,General Needs,House,1957,Traditional,Natural gas (mains) +18 Chiltern Close,Stone,Aylesbury,,HP17 8RA,General Needs,Bungalow,1957,Traditional,Natural gas (mains) +20 Chiltern Close,Stone,Aylesbury,,HP17 8RA,General Needs,Bungalow,1957,Traditional,Natural gas (mains) +1 Lee Crescent,Stone,Aylesbury,,HP17 8RB,General Needs,Flat,1962,Traditional,Natural gas (mains) +2 Lee Crescent,Stone,Aylesbury,,HP17 8RB,General Needs,Flat,1962,Traditional,Natural gas (mains) +3 Lee Crescent,Stone,Aylesbury,,HP17 8RB,General Needs,Flat,1962,Traditional,Natural gas (mains) +8 Lee Crescent,Stone,Aylesbury,,HP17 8RB,General Needs,Flat,1962,Traditional,Natural gas (mains) +9 Lee Crescent,Stone,Aylesbury,,HP17 8RB,General Needs,Flat,1962,Traditional,Natural gas (mains) +10 Lee Crescent,Stone,Aylesbury,,HP17 8RB,General Needs,Flat,1962,Traditional,Natural gas (mains) +11 Lee Crescent,Stone,Aylesbury,,HP17 8RB,General Needs,Flat,1962,Traditional,Natural gas (mains) +12 Lee Crescent,Stone,Aylesbury,,HP17 8RB,General Needs,Flat,1962,Traditional,Natural gas (mains) +14 Lee Crescent,Stone,Aylesbury,,HP17 8RB,General Needs,House,2011,Traditional,Natural gas (mains) +15 Lee Crescent,Stone,Aylesbury,,HP17 8RB,General Needs,House,2011,Traditional,Natural gas (mains) +16 Lee Crescent,Stone,Aylesbury,,HP17 8RB,General Needs,House,2011,Traditional,Natural gas (mains) +10 Round Hill,Stone,Aylesbury,,HP17 8RD,General Needs,House,1968,Traditional,Natural gas (mains) +14 Round Hill,Stone,Aylesbury,,HP17 8RD,General Needs,House,1968,Traditional,Natural gas (mains) +16 Round Hill,Stone,Aylesbury,,HP17 8RD,General Needs,House,1968,Traditional,Natural gas (mains) +18 Round Hill,Stone,Aylesbury,,HP17 8RD,General Needs,Bungalow,1968,Traditional,Natural gas (mains) +20 Round Hill,Stone,Aylesbury,,HP17 8RD,General Needs,Bungalow,1968,Traditional,Natural gas (mains) +22 Round Hill,Stone,Aylesbury,,HP17 8RD,General Needs,Bungalow,1968,Traditional,Natural gas (mains) +24 Round Hill,Stone,Aylesbury,,HP17 8RD,General Needs,Bungalow,1968,Traditional,Natural gas (mains) +26 Round Hill,Stone,Aylesbury,,HP17 8RD,General Needs,Bungalow,1969,Traditional,Natural gas (mains) +28 Round Hill,Stone,Aylesbury,,HP17 8RD,General Needs,Bungalow,1969,Traditional,Natural gas (mains) +30 Round Hill,Stone,Aylesbury,,HP17 8RD,General Needs,Flat,1970,Traditional,Natural gas (mains) +32 Round Hill,Stone,Aylesbury,,HP17 8RD,General Needs,Flat,1970,Traditional,Natural gas (mains) +34 Round Hill,Stone,Aylesbury,,HP17 8RD,General Needs,Flat,1970,Traditional,Natural gas (mains) +36 Round Hill,Stone,Aylesbury,,HP17 8RD,General Needs,Flat,1970,Traditional,Natural gas (mains) +38 Round Hill,Stone,Aylesbury,,HP17 8RD,General Needs,Flat,1970,Traditional,Natural gas (mains) +40 Round Hill,Stone,Aylesbury,,HP17 8RD,General Needs,Flat,1970,Traditional,Natural gas (mains) +7 Round Hill,Stone,Aylesbury,,HP17 8RE,General Needs,House,1968,Traditional,Natural gas (mains) +17 Round Hill,Stone,Aylesbury,,HP17 8RE,General Needs,House,1968,Traditional,Natural gas (mains) +23 Round Hill,Stone,Aylesbury,,HP17 8RE,General Needs,House,1968,Traditional,Natural gas (mains) +27 Round Hill,Stone,Aylesbury,,HP17 8RE,General Needs,Flat,1970,Traditional,Natural gas (mains) +29 Round Hill,Stone,Aylesbury,,HP17 8RE,General Needs,Flat,1970,Traditional,Natural gas (mains) +31 Round Hill,Stone,Aylesbury,,HP17 8RE,General Needs,Flat,1970,Traditional,Natural gas (mains) +33 Round Hill,Stone,Aylesbury,,HP17 8RE,General Needs,Flat,1970,Traditional,Natural gas (mains) +35 Round Hill,Stone,Aylesbury,,HP17 8RE,General Needs,Flat,1970,Traditional,Natural gas (mains) +59 Bishopstone Road,Stone,Aylesbury,,HP17 8RX,General Needs,House,1936,Traditional,LPG +7 Bittenham Close,Stone,Aylesbury,,HP17 8RY,General Needs,House,1946,Traditional,ASHP +1 Bittenham Close,Stone,Aylesbury,,HP17 8RY,General Needs,House,1936,Traditional,Oil +40 Bishopstone,Aylesbury,,,HP17 8SH,General Needs,House,1926,Old Hundreds,Storage heaters +44 Bishopstone,Aylesbury,,,HP17 8SH,General Needs,House,1926,Old Hundreds,Storage heaters +1 Upton Road,Upton,Aylesbury,,HP17 8UF,General Needs,House,1938,Traditional,Natural gas (mains) +3 Upton Road,Upton,Aylesbury,,HP17 8UF,General Needs,House,1938,Traditional,Natural gas (mains) +5 Upton Road,Upton,Aylesbury,,HP17 8UF,General Needs,House,1938,Traditional,Natural gas (mains) +9 Upton Road,Upton,Aylesbury,,HP17 8UF,General Needs,Bungalow,1938,Traditional,Natural gas (mains) +10 Upton Road,Upton,Aylesbury,,HP17 8UF,General Needs,Bungalow,1938,Traditional,Natural gas (mains) +2 The Bungalow,New Road,Dinton,AYLESBURY,HP17 8UT,General Needs,Bungalow,1950,Traditional,Natural gas (mains) +1 New Road,Dinton,Aylesbury,,HP17 8UU,General Needs,House,1948,Traditional,Natural gas (mains) +3 New Road,Dinton,Aylesbury,,HP17 8UU,General Needs,House,1948,Traditional,Natural gas (mains) +8 New Road,Dinton,Aylesbury,,HP17 8UU,General Needs,House,1948,Traditional,Natural gas (mains) +14 New Road,Dinton,Aylesbury,,HP17 8UU,General Needs,House,1960,Traditional,Natural gas (mains) +1 Council Houses,Ford,Aylesbury,,HP17 8XJ,General Needs,House,1938,Traditional,LPG +Avonlea House,Main Road,Ford,Bucks,HP17 8XJ,General Needs,House,1944,Traditional,LPG +1 Bernard Close,Cuddington,Aylesbury,,HP18 0AJ,General Needs,House,1953,Traditional,Natural gas (mains) +4 Bernard Close,Cuddington,Aylesbury,,HP18 0AJ,General Needs,House,1953,Traditional,Natural gas (mains) +7 Bernard Close,Cuddington,Aylesbury,,HP18 0AJ,General Needs,House,1954,Traditional,Natural gas (mains) +12 Bernard Close,Cuddington,Aylesbury,,HP18 0AJ,General Needs,House,1954,Traditional,Natural gas (mains) +16 Bernard Close,Cuddington,Aylesbury,,HP18 0AJ,General Needs,Bungalow,1957,Traditional,Natural gas (mains) +17 Bernard Close,Cuddington,Aylesbury,,HP18 0AJ,General Needs,Bungalow,1954,Traditional,Natural gas (mains) +18 Bernard Close,Cuddington,Aylesbury,,HP18 0AJ,General Needs,Bungalow,1954,Traditional,Natural gas (mains) +19 Bernard Close,Cuddington,Aylesbury,,HP18 0AJ,General Needs,House,1958,Traditional,Natural gas (mains) +22 Bernard Close,Cuddington,Aylesbury,,HP18 0AJ,General Needs,House,1958,Traditional,Natural gas (mains) +27 Bernard Close,Cuddington,Aylesbury,,HP18 0AJ,General Needs,Bungalow,1954,Traditional,Natural gas (mains) +28 Bernard Close,Cuddington,Aylesbury,,HP18 0AJ,General Needs,Bungalow,1954,Traditional,Natural gas (mains) +29 Bernard Close,Cuddington,Aylesbury,,HP18 0AJ,General Needs,Bungalow,1957,Traditional,Natural gas (mains) +30 Bernard Close,Cuddington,Aylesbury,,HP18 0AJ,General Needs,Bungalow,1957,Traditional,Natural gas (mains) +34 Bernard Close,Cuddington,Aylesbury,,HP18 0AJ,General Needs,House,1957,Traditional,Natural gas (mains) +39 Bernard Close,Cuddington,Aylesbury,,HP18 0AJ,General Needs,House,1952,Traditional,Natural gas (mains) +41 Bernard Close,Cuddington,Aylesbury,,HP18 0AJ,General Needs,House,1955,Traditional,Natural gas (mains) +1 Welford Way,Cuddington,Aylesbury,,HP18 0AL,General Needs,Bungalow,1970,Traditional,Natural gas (mains) +2 Welford Way,Cuddington,Aylesbury,,HP18 0AL,General Needs,Bungalow,1970,Traditional,Natural gas (mains) +3 Welford Way,Cuddington,Aylesbury,,HP18 0AL,General Needs,Bungalow,1970,Traditional,Natural gas (mains) +4 Welford Way,Cuddington,Aylesbury,,HP18 0AL,General Needs,Bungalow,1970,Traditional,Natural gas (mains) +5 Welford Way,Cuddington,Aylesbury,,HP18 0AL,General Needs,Bungalow,1970,Traditional,Natural gas (mains) +6 Welford Way,Cuddington,Aylesbury,,HP18 0AL,General Needs,Bungalow,1970,Traditional,Natural gas (mains) +7 Welford Way,Cuddington,Aylesbury,,HP18 0AL,General Needs,Bungalow,1970,Traditional,Natural gas (mains) +8 Welford Way,Cuddington,Aylesbury,,HP18 0AL,General Needs,Bungalow,1970,Traditional,Natural gas (mains) +9 Welford Way,Cuddington,Aylesbury,,HP18 0AL,General Needs,Bungalow,1970,Traditional,Natural gas (mains) +7 Hillside Cottages,Dadbrook,Cuddington,Aylesbury,HP18 0AQ,General Needs,House,1933,Old Hundreds,Natural gas (mains) +10 Hillside Cottages,Dadbrook,Cuddington,Aylesbury,HP18 0AQ,General Needs,House,1933,Old Hundreds,Natural gas (mains) +11 Hillside Cottages,Dadbrook,Cuddington,Aylesbury,HP18 0AQ,General Needs,House,1933,Old Hundreds,Natural gas (mains) +7 Swan Hill,Aylesbury Road,Cuddington,Aylesbury,HP18 0BE,General Needs,House,1948,Traditional,Natural gas (mains) +10 Swan Hill,Aylesbury Road,Cuddington,Aylesbury,HP18 0BE,General Needs,House,1952,Traditional,Natural gas (mains) +4 Church Lane,Chearsley,Aylesbury,,HP18 0DH,General Needs,House,1937,Traditional,LPG +6 Church Lane,Chearsley,Aylesbury,,HP18 0DH,General Needs,House,1937,Traditional,LPG +14 Chestnut View,Chilton Road,Chearsley,Aylesbury,HP18 0DN,General Needs,House,1953,Traditional,Natural gas (mains) +3 Winchendon Road,Chearsley,,,HP18 0DP,General Needs,House,2021,Traditional,ASHP +4 Winchendon Road,Chearsley,,,HP18 0DP,General Needs,House,2021,Traditional,ASHP +2 Winchendon Road,Chearsley,Aylesbury,,HP18 0DP,General Needs,House,1927,Traditional,LPG +1 Church Piece,Chearsley,Aylesbury,,HP18 0DR,General Needs,Bungalow,1969,Traditional,LPG +3 Church Piece,Chearsley,Aylesbury,,HP18 0DR,General Needs,Bungalow,1969,Traditional,LPG +4 Church Piece,Chearsley,Aylesbury,,HP18 0DR,General Needs,Bungalow,1969,Traditional,Storage heaters +5 Church Piece,Chearsley,Aylesbury,,HP18 0DR,General Needs,Bungalow,1969,Traditional,Storage heaters +1 Chestnut View,Winchendon Road,Chearsley,Aylesbury,HP18 0DW,General Needs,House,1950,Traditional,ASHP +11 Chestnut View,Winchendon Road,Chearsley,Aylesbury,HP18 0DW,General Needs,House,1950,Traditional,ASHP +5 Chestnut View,Winchendon Road,Chearsley,Aylesbury,HP18 0DW,General Needs,House,1950,Traditional,LPG +2 Council Houses,Upper Winchendon,Aylesbury,,HP18 0EH,General Needs,House,1940,Traditional,LPG +3 Council Houses,Upper Winchendon,Aylesbury,,HP18 0EH,General Needs,House,1940,Traditional,Storage heaters +2 William Neary Cottages,Upper Winchendon,Aylesbury,,HP18 0EN,General Needs,House,1948,Traditional,LPG +4 William Neary Cottages,Upper Winchendon,Aylesbury,,HP18 0EN,General Needs,House,1948,Traditional,Oil +1 Council Houses,Lower End,Ashendon,Aylesbury,HP18 0HD,General Needs,House,1938,Traditional,LPG +2 Council Houses,Lower End,Ashendon,Aylesbury,HP18 0HD,General Needs,House,1938,Traditional,LPG +3 Council Houses,Lower End,Ashendon,Aylesbury,HP18 0HD,General Needs,House,1938,Traditional,LPG +5 Council Houses,Lower End,Ashendon,Aylesbury,HP18 0HD,General Needs,House,1938,Traditional,LPG +6 Council Houses,Lower End,Ashendon,Aylesbury,HP18 0HD,General Needs,House,1938,Traditional,LPG +3 Hill Cottages,Ashendon,Aylesbury,,HP18 0HL,General Needs,House,1953,Traditional,LPG +4 Hill Cottages,Ashendon,Aylesbury,,HP18 0HL,General Needs,House,1953,Traditional,LPG +5 Hill Cottages,Ashendon,Aylesbury,,HP18 0HL,General Needs,House,1953,Traditional,LPG +6 Hill Cottages,Ashendon,Aylesbury,,HP18 0HL,General Needs,House,1953,Traditional,LPG +1 Stonepits Cottages,Ashendon,Aylesbury,Bucks,HP18 0HL,General Needs,Bungalow,1974,Traditional,LPG +3 Stonepits Cottages,Ashendon,Aylesbury,Bucks,HP18 0HL,General Needs,Bungalow,1974,Traditional,LPG +2 Hill Cottages,Ashendon,Aylesbury,,HP18 0HL,General Needs,House,1953,Traditional,Storage heaters +2 Stonepits Cottages,Ashendon,Aylesbury,Bucks,HP18 0HL,General Needs,Bungalow,1974,Traditional,Storage heaters +4 Stonepits Cottages,Ashendon,Aylesbury,Bucks,HP18 0HL,General Needs,Bungalow,1974,Traditional,Storage heaters +Flat 2,30 High Street,Waddesdon,Aylesbury,HP18 0JA,General Needs,Flat,1963,Traditional,Natural gas (mains) +1 Grove Way,Waddesdon,Aylesbury,,HP18 0LH,General Needs,House,1938,Traditional,Natural gas (mains) +6 Grove Way,Waddesdon,Aylesbury,,HP18 0LH,General Needs,House,1938,Traditional,Natural gas (mains) +7 Grove Way,Waddesdon,Aylesbury,,HP18 0LH,General Needs,House,1938,Traditional,Natural gas (mains) +12 Grove Way,Waddesdon,Aylesbury,,HP18 0LH,General Needs,House,1948,Traditional,Natural gas (mains) +16 Grove Way,Waddesdon,Aylesbury,,HP18 0LH,General Needs,House,1948,Traditional,Natural gas (mains) +19 Grove Way,Waddesdon,Aylesbury,,HP18 0LH,General Needs,House,1948,Traditional,Natural gas (mains) +18 Grove Way,Waddesdon,Aylesbury,,HP18 0LH,General Needs,House,1948,Traditional,Storage heaters +52 Quainton Road,Waddesdon,Aylesbury,,HP18 0LP,General Needs,House,1930,Traditional,Natural gas (mains) +56 Quainton Road,Waddesdon,Aylesbury,,HP18 0LP,General Needs,House,1930,Traditional,Natural gas (mains) +1 Sheriff Cottages,Quainton Road,Waddesdon,Aylesbury,HP18 0LT,General Needs,House,1933,Traditional,Natural gas (mains) +2 Sheriff Cottages,Quainton Road,Waddesdon,Aylesbury,HP18 0LT,General Needs,House,1933,Traditional,Natural gas (mains) +3 Sheriff Cottages,Quainton Road,Waddesdon,Aylesbury,HP18 0LT,General Needs,House,1933,Traditional,Natural gas (mains) +5 Sheriff Cottages,Quainton Road,Waddesdon,Aylesbury,HP18 0LT,General Needs,House,1933,Traditional,Natural gas (mains) +6 Sheriff Cottages,Quainton Road,Waddesdon,Aylesbury,HP18 0LT,General Needs,House,1933,Traditional,Natural gas (mains) +7 Sheriff Cottages,Quainton Road,Waddesdon,Aylesbury,HP18 0LT,General Needs,House,1933,Traditional,Natural gas (mains) +9 Sheriff Cottages,Quainton Road,Waddesdon,Aylesbury,HP18 0LT,General Needs,House,1933,Traditional,Natural gas (mains) +8 Goss Avenue,Waddesdon,Aylesbury,,HP18 0LY,General Needs,House,1957,Traditional,Natural gas (mains) +10 Goss Avenue,Waddesdon,Aylesbury,,HP18 0LY,General Needs,House,1957,Traditional,Natural gas (mains) +13 Goss Avenue,Waddesdon,Aylesbury,,HP18 0LY,General Needs,House,1957,Traditional,Natural gas (mains) +21 Goss Avenue,Waddesdon,Aylesbury,,HP18 0LY,General Needs,House,1958,Traditional,Natural gas (mains) +30 Goss Avenue,Waddesdon,Aylesbury,,HP18 0LY,General Needs,House,1957,Traditional,Natural gas (mains) +17 Goss Avenue,Waddesdon,Aylesbury,,HP18 0LY,General Needs,House,1958,Traditional,Solid fuel +2 Sharps Close,Waddesdon,Aylesbury,,HP18 0LZ,General Needs,Bungalow,1957,Traditional,Natural gas (mains) +4 Sharps Close,Waddesdon,Aylesbury,,HP18 0LZ,General Needs,Bungalow,1957,Traditional,Natural gas (mains) +8 Sharps Close,Waddesdon,Aylesbury,,HP18 0LZ,General Needs,Bungalow,1960,Traditional,Natural gas (mains) +10 Sharps Close,Waddesdon,Aylesbury,,HP18 0LZ,General Needs,Bungalow,1960,Traditional,Natural gas (mains) +18 Sharps Close,Waddesdon,Aylesbury,,HP18 0LZ,General Needs,Bungalow,1962,Traditional,Natural gas (mains) +24 Sharps Close,Waddesdon,Aylesbury,,HP18 0LZ,General Needs,Bungalow,1962,Traditional,Natural gas (mains) +26 Sharps Close,Waddesdon,Aylesbury,,HP18 0LZ,General Needs,Bungalow,1962,Traditional,Natural gas (mains) +28 Sharps Close,Waddesdon,Aylesbury,,HP18 0LZ,General Needs,Bungalow,1962,Traditional,Natural gas (mains) +30 Sharps Close,Waddesdon,Aylesbury,,HP18 0LZ,General Needs,Bungalow,1962,Traditional,Natural gas (mains) +32 Sharps Close,Waddesdon,Aylesbury,,HP18 0LZ,General Needs,Bungalow,1962,Traditional,Natural gas (mains) +34 Sharps Close,Waddesdon,Aylesbury,,HP18 0LZ,General Needs,Bungalow,1962,Traditional,Natural gas (mains) +36 Sharps Close,Waddesdon,Aylesbury,,HP18 0LZ,General Needs,Bungalow,1962,Traditional,Natural gas (mains) +38 Sharps Close,Waddesdon,Aylesbury,,HP18 0LZ,General Needs,Bungalow,1962,Traditional,Natural gas (mains) +40 Sharps Close,Waddesdon,Aylesbury,,HP18 0LZ,General Needs,House,1962,Traditional,Natural gas (mains) +42 Sharps Close,Waddesdon,Aylesbury,,HP18 0LZ,General Needs,House,1962,Traditional,Natural gas (mains) +46 Sharps Close,Waddesdon,Aylesbury,,HP18 0LZ,General Needs,House,1962,Traditional,Natural gas (mains) +52 Sharps Close,Waddesdon,Aylesbury,,HP18 0LZ,General Needs,Bungalow,1962,Traditional,Natural gas (mains) +54 Sharps Close,Waddesdon,Aylesbury,,HP18 0LZ,General Needs,Bungalow,1962,Traditional,Natural gas (mains) +56 Sharps Close,Waddesdon,Aylesbury,,HP18 0LZ,General Needs,Bungalow,1962,Traditional,Natural gas (mains) +58 Sharps Close,Waddesdon,Aylesbury,,HP18 0LZ,General Needs,Bungalow,1962,Traditional,Natural gas (mains) +62 Sharps Close,Waddesdon,Aylesbury,,HP18 0LZ,General Needs,Bungalow,1962,Traditional,Natural gas (mains) +66 Sharps Close,Waddesdon,Aylesbury,,HP18 0LZ,General Needs,Bungalow,1962,Traditional,Natural gas (mains) +72 Sharps Close,Waddesdon,Aylesbury,,HP18 0LZ,General Needs,Bungalow,1960,Traditional,Natural gas (mains) +80 Sharps Close,Waddesdon,Aylesbury,,HP18 0LZ,General Needs,Bungalow,1960,Traditional,Natural gas (mains) +82 Sharps Close,Waddesdon,Aylesbury,,HP18 0LZ,General Needs,Bungalow,1960,Traditional,Natural gas (mains) +84 Sharps Close,Waddesdon,Aylesbury,,HP18 0LZ,General Needs,Bungalow,1960,Traditional,Natural gas (mains) +86 Sharps Close,Waddesdon,Aylesbury,,HP18 0LZ,General Needs,House,1989,Traditional,Natural gas (mains) +88 Sharps Close,Waddesdon,Aylesbury,,HP18 0LZ,General Needs,House,1989,Traditional,Natural gas (mains) +1 Sharps Close,Waddesdon,Aylesbury,,HP18 0NA,General Needs,Bungalow,1957,Traditional,Natural gas (mains) +3 Sharps Close,Waddesdon,Aylesbury,,HP18 0NA,General Needs,Bungalow,1957,Traditional,Natural gas (mains) +5 Sharps Close,Waddesdon,Aylesbury,,HP18 0NA,General Needs,Bungalow,1958,Traditional,Natural gas (mains) +7 Sharps Close,Waddesdon,Aylesbury,,HP18 0NA,General Needs,Bungalow,1958,Traditional,Natural gas (mains) +9 Sharps Close,Waddesdon,Aylesbury,,HP18 0NA,General Needs,Bungalow,1958,Traditional,Natural gas (mains) +11 Sharps Close,Waddesdon,Aylesbury,,HP18 0NA,General Needs,Bungalow,1958,Traditional,Natural gas (mains) +13 Sharps Close,Waddesdon,Aylesbury,,HP18 0NA,General Needs,Bungalow,1958,Traditional,Natural gas (mains) +15 Sharps Close,Waddesdon,Aylesbury,,HP18 0NA,General Needs,Bungalow,1958,Traditional,Natural gas (mains) +17 Sharps Close,Waddesdon,Aylesbury,,HP18 0NA,General Needs,Bungalow,1958,Traditional,Natural gas (mains) +19 Sharps Close,Waddesdon,Aylesbury,,HP18 0NA,General Needs,Bungalow,1958,Traditional,Natural gas (mains) +21 Sharps Close,Waddesdon,Aylesbury,,HP18 0NA,General Needs,Bungalow,1966,Traditional,Natural gas (mains) +23 Sharps Close,Waddesdon,Aylesbury,,HP18 0NA,General Needs,Bungalow,1966,Traditional,Natural gas (mains) +25 Sharps Close,Waddesdon,Aylesbury,,HP18 0NA,General Needs,Flat,1966,Traditional,Natural gas (mains) +27 Sharps Close,Waddesdon,Aylesbury,,HP18 0NA,General Needs,Flat,1966,Traditional,Natural gas (mains) +29 Sharps Close,Waddesdon,Aylesbury,,HP18 0NA,General Needs,Flat,1966,Traditional,Natural gas (mains) +31 Sharps Close,Waddesdon,Aylesbury,,HP18 0NA,General Needs,Flat,1966,Traditional,Natural gas (mains) +35 Sharps Close,Waddesdon,Aylesbury,,HP18 0NA,General Needs,Flat,1966,Traditional,Natural gas (mains) +37 Sharps Close,Waddesdon,Aylesbury,,HP18 0NA,General Needs,Flat,1966,Traditional,Natural gas (mains) +43 Sharps Close,Waddesdon,Aylesbury,,HP18 0NA,General Needs,Flat,1966,Traditional,Natural gas (mains) +49 Sharps Close,Waddesdon,Aylesbury,,HP18 0NA,General Needs,Flat,1966,Traditional,Natural gas (mains) +51 Sharps Close,Waddesdon,Aylesbury,,HP18 0NA,General Needs,House,1966,Traditional,Natural gas (mains) +39 Sharps Close,Waddesdon,Aylesbury,,HP18 0NA,General Needs,Flat,1966,Traditional,Storage heaters +45 Sharps Close,Waddesdon,Aylesbury,,HP18 0NA,General Needs,Flat,1966,Traditional,Storage heaters +1 Anstey Close,Waddesdon,Aylesbury,,HP18 0NB,General Needs,Bungalow,1951,Traditional,Natural gas (mains) +34 Anstey Close,Waddesdon,Aylesbury,,HP18 0NB,General Needs,Bungalow,1951,Traditional,Natural gas (mains) +1 Golden Mede,Waddesdon,Aylesbury,,HP18 0NG,General Needs,Flat,1973,Traditional,Storage heaters +3 Golden Mede,Waddesdon,Aylesbury,,HP18 0NG,General Needs,Flat,1973,Traditional,Storage heaters +4 Golden Mede,Waddesdon,Aylesbury,,HP18 0NG,General Needs,Flat,1973,Traditional,Storage heaters +1 Warmstone Close,Waddesdon,Aylesbury,,HP18 0NR,General Needs,House,1986,Traditional,Natural gas (mains) +2 Warmstone Close,Waddesdon,Aylesbury,,HP18 0NR,General Needs,House,1986,Traditional,Natural gas (mains) +6 Warmstone Close,Waddesdon,Aylesbury,,HP18 0NR,General Needs,House,1986,Traditional,Natural gas (mains) +7 Warmstone Close,Waddesdon,Aylesbury,,HP18 0NR,General Needs,House,1989,Traditional,Natural gas (mains) +8 Warmstone Close,Waddesdon,Aylesbury,,HP18 0NR,General Needs,House,1986,Traditional,Natural gas (mains) +12 Warmstone Close,Waddesdon,Aylesbury,,HP18 0NR,General Needs,Bungalow,1986,Traditional,Natural gas (mains) +14 Warmstone Close,Waddesdon,Aylesbury,,HP18 0NR,General Needs,Bungalow,1986,Traditional,Natural gas (mains) +16 Warmstone Close,Waddesdon,Aylesbury,,HP18 0NR,General Needs,Bungalow,1986,Traditional,Natural gas (mains) +18 Warmstone Close,Waddesdon,Aylesbury,,HP18 0NR,General Needs,Bungalow,1986,Traditional,Natural gas (mains) +20 Warmstone Close,Waddesdon,Aylesbury,,HP18 0NR,General Needs,House,1986,Traditional,Natural gas (mains) +22 Warmstone Close,Waddesdon,Aylesbury,,HP18 0NR,General Needs,House,1986,Traditional,Natural gas (mains) +26 Warmstone Close,Waddesdon,Aylesbury,,HP18 0NR,General Needs,House,1989,Traditional,Natural gas (mains) +40 Warmstone Close,Waddesdon,Aylesbury,,HP18 0NR,General Needs,House,1989,Traditional,Natural gas (mains) +48 Warmstone Close,Waddesdon,Aylesbury,,HP18 0NR,General Needs,Bungalow,1989,Traditional,Natural gas (mains) +50 Warmstone Close,Waddesdon,Aylesbury,,HP18 0NR,General Needs,Bungalow,1989,Traditional,Natural gas (mains) +52 Warmstone Close,Waddesdon,Aylesbury,,HP18 0NR,General Needs,Bungalow,1989,Traditional,Natural gas (mains) +58 Warmstone Close,Waddesdon,Aylesbury,,HP18 0NR,General Needs,House,1989,Traditional,Natural gas (mains) +60 Warmstone Close,Waddesdon,Aylesbury,,HP18 0NR,General Needs,House,1989,Traditional,Natural gas (mains) +10 Ayless Close,Westcott,Aylesbury,,HP18 0NT,General Needs,Flat,1969,Traditional,LPG +2 Ayless Close,Westcott,Aylesbury,,HP18 0NT,General Needs,Flat,1969,Traditional,Storage heaters +6 Ayless Close,Westcott,Aylesbury,,HP18 0NT,General Needs,Flat,1969,Traditional,Storage heaters +12 Ayless Close,Westcott,Aylesbury,,HP18 0NT,General Needs,Flat,1969,Traditional,Storage heaters +6 Kings Close,Westcott,Aylesbury,,HP18 0NU,General Needs,Bungalow,1960,Traditional,LPG +8 Kings Close,Westcott,Aylesbury,,HP18 0NU,General Needs,Bungalow,1960,Traditional,LPG +12 Kings Close,Westcott,Aylesbury,,HP18 0NU,General Needs,House,1960,Traditional,LPG +35 High Street,Westcott,Aylesbury,,HP18 0PQ,General Needs,House,1934,Traditional,ASHP +27B High Street,Westcott,Aylesbury,,HP18 0PQ,General Needs,Flat,1971,Traditional,LPG +27C High Street,Westcott,Aylesbury,,HP18 0PQ,General Needs,Flat,1971,Traditional,LPG +29 High Street,Westcott,Aylesbury,,HP18 0PQ,General Needs,House,1939,Traditional,LPG +33 High Street,Westcott,Aylesbury,,HP18 0PQ,General Needs,House,1939,Traditional,LPG +43 High Street,Westcott,Aylesbury,,HP18 0PQ,General Needs,House,1934,Traditional,Oil +27A High Street,Westcott,Aylesbury,,HP18 0PQ,General Needs,Flat,1971,Traditional,Storage heaters +22 Rosamonds Cottages,Kingswood,Aylesbury,,HP18 0RG,General Needs,Bungalow,1985,Traditional,LPG +21 Rosamonds Cottages,Kingswood,Aylesbury,,HP18 0RG,General Needs,Bungalow,1985,Traditional,Storage heaters +18 Cameo Court,Aylesbury,,,HP18 0RJ,General Needs,Flat,2021,Traditional,Natural gas (mains) +19 Cameo Court,Aylesbury,,,HP18 0RJ,General Needs,Flat,2021,Traditional,Natural gas (mains) +1 Oak Tree Cottages,Main Street,Grendon Underwood,Aylesbury,HP18 0SH,General Needs,House,1953,Traditional,LPG +6 Saye & Sele Close,Grendon Underwood,Aylesbury,Bucks,HP18 0SR,General Needs,Flat,1971,Traditional,LPG +9 Saye & Sele Close,Grendon Underwood,Aylesbury,Bucks,HP18 0SR,General Needs,Flat,1971,Traditional,LPG +10 Saye & Sele Close,Grendon Underwood,Aylesbury,Bucks,HP18 0SR,General Needs,Flat,1971,Traditional,Solid fuel +2 Saye & Sele Close,Grendon Underwood,Aylesbury,Bucks,HP18 0SR,General Needs,Flat,1971,Traditional,Storage heaters +4 Saye & Sele Close,Grendon Underwood,Aylesbury,Bucks,HP18 0SR,General Needs,Flat,1971,Traditional,Storage heaters +5 Saye & Sele Close,Grendon Underwood,Aylesbury,Bucks,HP18 0SR,General Needs,Flat,1971,Traditional,Storage heaters +1 Millers Close,Main Street,Grendon Underwood,Aylesbury,HP18 0ST,General Needs,House,1950,Traditional,Storage heaters +4 Millers Close,Main Street,Grendon Underwood,Aylesbury,HP18 0ST,General Needs,House,1950,Traditional,Storage heaters +7 Millers Close,Main Street,Grendon Underwood,Aylesbury,HP18 0ST,General Needs,House,1950,Traditional,Storage heaters +4 Crescent Cottages,Main Street,Grendon Underwood,Aylesbury,HP18 0SW,General Needs,House,1928,Old Hundreds,LPG +3 Crescent Cottages,Main Street,Grendon Underwood,Aylesbury,HP18 0SW,General Needs,House,1928,Old Hundreds,Storage heaters +4 Buckingham Road,Edgcott,Aylesbury,,HP18 0TP,General Needs,House,1939,Traditional,Storage heaters +6 Lawn House Lane,Edgcott,Aylesbury,,HP18 0TX,General Needs,House,1952,Traditional,ASHP +7 Lawn House Lane,Edgcott,Aylesbury,,HP18 0TX,General Needs,House,1952,Traditional,LPG +23 Calville Gardens,Aylesbury,,,HP18 0UX,General Needs,House,2019,Traditional,Natural gas (mains) +25 Calville Gardens,Aylesbury,,,HP18 0UX,General Needs,House,2019,Traditional,Natural gas (mains) +27 Calville Gardens,Aylesbury,,,HP18 0UX,General Needs,Flat,2019,Traditional,Natural gas (mains) +39 Calville Gardens,Aylesbury,,,HP18 0UX,General Needs,House,2019,Traditional,Natural gas (mains) +41 Calville Gardens,Aylesbury,,,HP18 0UX,General Needs,Flat,2019,Traditional,Natural gas (mains) +43 Calville Gardens,Aylesbury,,,HP18 0UX,General Needs,House,2019,Traditional,Natural gas (mains) +45 Calville Gardens,Aylesbury,,,HP18 0UX,General Needs,House,2019,Traditional,Natural gas (mains) +8 Woolbrock Close,Aylesbury,,,HP18 1AN,General Needs,House,2019,Traditional,Natural gas (mains) +9 Woolbrock Close,Aylesbury,,,HP18 1AN,General Needs,House,2019,Traditional,Natural gas (mains) +10 Woolbrock Close,Aylesbury,,,HP18 1AN,General Needs,House,2019,Traditional,Natural gas (mains) +11 Woolbrock Close,Aylesbury,,,HP18 1AN,General Needs,Flat,2019,Traditional,Natural gas (mains) +12 Woolbrock Close,Aylesbury,,,HP18 1AN,General Needs,Flat,2019,Traditional,Natural gas (mains) +14 Woolbrock Close,Aylesbury,,,HP18 1AN,General Needs,Flat,2019,Traditional,Natural gas (mains) +15 Woolbrock Close,Aylesbury,,,HP18 1AN,General Needs,Flat,2019,Traditional,Natural gas (mains) +16 Woolbrock Close,Aylesbury,,,HP18 1AN,General Needs,Flat,2019,Traditional,Natural gas (mains) +17 Woolbrock Close,Aylesbury,,,HP18 1AN,General Needs,Flat,2019,Traditional,Natural gas (mains) +1 Needlemakers,Long Crendon,Aylesbury,,HP18 9AR,General Needs,Bungalow,1976,Traditional,Natural gas (mains) +2 Needlemakers,Long Crendon,Aylesbury,,HP18 9AR,General Needs,Bungalow,1976,Traditional,Natural gas (mains) +3 Needlemakers,Long Crendon,Aylesbury,,HP18 9AR,General Needs,Bungalow,1976,Traditional,Natural gas (mains) +4 Needlemakers,Long Crendon,Aylesbury,,HP18 9AR,General Needs,Bungalow,1976,Traditional,Natural gas (mains) +5 Needlemakers,Long Crendon,Aylesbury,,HP18 9AR,General Needs,Bungalow,1976,Traditional,Natural gas (mains) +6 Needlemakers,Long Crendon,Aylesbury,,HP18 9AR,General Needs,Bungalow,1976,Traditional,Natural gas (mains) +7 Needlemakers,Long Crendon,Aylesbury,,HP18 9AR,General Needs,Bungalow,1976,Traditional,Natural gas (mains) +8 Needlemakers,Long Crendon,Aylesbury,,HP18 9AR,General Needs,Bungalow,1976,Traditional,Natural gas (mains) +9 Needlemakers,Long Crendon,Aylesbury,,HP18 9AR,General Needs,Bungalow,1976,Traditional,Natural gas (mains) +10 Needlemakers,Long Crendon,Aylesbury,,HP18 9AR,General Needs,Bungalow,1976,Traditional,Natural gas (mains) +1A Hilltop,Long Crendon,Aylesbury,,HP18 9AT,General Needs,House,1986,Traditional,Natural gas (mains) +3A Hilltop,Long Crendon,Aylesbury,,HP18 9AT,General Needs,House,1986,Traditional,Natural gas (mains) +1 Hilltop,Long Crendon,Aylesbury,,HP18 9AT,General Needs,Bungalow,1986,Traditional,Natural gas (mains) +3 Hilltop,Long Crendon,Aylesbury,,HP18 9AT,General Needs,House,1986,Traditional,Natural gas (mains) +4 Hilltop,Long Crendon,Aylesbury,,HP18 9AT,General Needs,House,1977,Traditional,Natural gas (mains) +5 Hilltop,Long Crendon,Aylesbury,,HP18 9AT,General Needs,Bungalow,1987,Traditional,Natural gas (mains) +11 Hilltop,Long Crendon,Aylesbury,,HP18 9AT,General Needs,Bungalow,1987,Traditional,Natural gas (mains) +13 Hilltop,Long Crendon,Aylesbury,,HP18 9AT,General Needs,Bungalow,1969,Traditional,Natural gas (mains) +15 Hilltop,Long Crendon,Aylesbury,,HP18 9AT,General Needs,Bungalow,1969,Traditional,Natural gas (mains) +1 Peascroft,Long Crendon,Aylesbury,,HP18 9AU,General Needs,Bungalow,1969,Traditional,Natural gas (mains) +3 Peascroft,Long Crendon,Aylesbury,,HP18 9AU,General Needs,Bungalow,1969,Traditional,Natural gas (mains) +5 Peascroft,Long Crendon,Aylesbury,,HP18 9AU,General Needs,Bungalow,1969,Traditional,Natural gas (mains) +7 Peascroft,Long Crendon,Aylesbury,,HP18 9AU,General Needs,Bungalow,1969,Traditional,Natural gas (mains) +9 Peascroft,Long Crendon,Aylesbury,,HP18 9AU,General Needs,Bungalow,1969,Traditional,Natural gas (mains) +11 Peascroft,Long Crendon,Aylesbury,,HP18 9AU,General Needs,Bungalow,1969,Traditional,Natural gas (mains) +13 Peascroft,Long Crendon,Aylesbury,,HP18 9AU,General Needs,Bungalow,1969,Traditional,Natural gas (mains) +15 Peascroft,Long Crendon,Aylesbury,,HP18 9AU,General Needs,Bungalow,1969,Traditional,Natural gas (mains) +17 Peascroft,Long Crendon,Aylesbury,,HP18 9AU,General Needs,Bungalow,1969,Traditional,Natural gas (mains) +26 Peascroft,Long Crendon,Aylesbury,,HP18 9AU,General Needs,House,1984,Traditional,Natural gas (mains) +30 Peascroft,Long Crendon,Aylesbury,,HP18 9AU,General Needs,House,1984,Traditional,Natural gas (mains) +40 Peascroft,Long Crendon,Aylesbury,,HP18 9AU,General Needs,House,1984,Traditional,Natural gas (mains) +42 Peascroft,Long Crendon,Aylesbury,,HP18 9AU,General Needs,House,1984,Traditional,Natural gas (mains) +52 Peascroft,Long Crendon,Aylesbury,,HP18 9AU,General Needs,House,1984,Traditional,Natural gas (mains) +54 Peascroft,Long Crendon,Aylesbury,,HP18 9AU,General Needs,Bungalow,1969,Traditional,Natural gas (mains) +56 Peascroft,Long Crendon,Aylesbury,,HP18 9AU,General Needs,Bungalow,1969,Traditional,Natural gas (mains) +62 Peascroft,Long Crendon,Aylesbury,,HP18 9AU,General Needs,House,1969,Traditional,Natural gas (mains) +64 Peascroft,Long Crendon,Aylesbury,,HP18 9AU,General Needs,House,1969,Traditional,Natural gas (mains) +49 Chearsley Road,Long Crendon,Aylesbury,,HP18 9AW,General Needs,Bungalow,1976,Traditional,Natural gas (mains) +51 Chearsley Road,Long Crendon,Aylesbury,,HP18 9AW,General Needs,Bungalow,1976,Traditional,Natural gas (mains) +9 Harroell,Long Crendon,Aylesbury,,HP18 9AY,General Needs,House,1936,Traditional,Natural gas (mains) +11 Harroell,Long Crendon,Aylesbury,,HP18 9AY,General Needs,House,1936,Traditional,Natural gas (mains) +13 Harroell,Long Crendon,Aylesbury,,HP18 9AY,General Needs,House,1936,Traditional,Natural gas (mains) +14 Harroell,Long Crendon,Aylesbury,,HP18 9AY,General Needs,House,1936,Traditional,Natural gas (mains) +2 Abbot Ridge,Long Crendon,Aylesbury,,HP18 9AZ,General Needs,House,1975,Traditional,Natural gas (mains) +12 Abbot Ridge,Long Crendon,Aylesbury,,HP18 9AZ,General Needs,House,1975,Traditional,Natural gas (mains) +14 Abbot Ridge,Long Crendon,Aylesbury,,HP18 9AZ,General Needs,House,1975,Traditional,Natural gas (mains) +18 Abbot Ridge,Long Crendon,Aylesbury,,HP18 9AZ,General Needs,House,1975,Traditional,Natural gas (mains) +20 Abbot Ridge,Long Crendon,Aylesbury,,HP18 9AZ,General Needs,House,1975,Traditional,Natural gas (mains) +22 Abbot Ridge,Long Crendon,Aylesbury,,HP18 9AZ,General Needs,House,1975,Traditional,Natural gas (mains) +24 Abbot Ridge,Long Crendon,Aylesbury,,HP18 9AZ,General Needs,House,1975,Traditional,Natural gas (mains) +26 Abbot Ridge,Long Crendon,Aylesbury,,HP18 9AZ,General Needs,House,1975,Traditional,Natural gas (mains) +28 Abbot Ridge,Long Crendon,Aylesbury,,HP18 9AZ,General Needs,Bungalow,1975,Traditional,Natural gas (mains) +30 Abbot Ridge,Long Crendon,Aylesbury,,HP18 9AZ,General Needs,Bungalow,1975,Traditional,Natural gas (mains) +1 Abbot Ridge,Long Crendon,Aylesbury,,HP18 9BH,General Needs,Bungalow,1975,Traditional,Natural gas (mains) +3 Abbot Ridge,Long Crendon,Aylesbury,,HP18 9BH,General Needs,Bungalow,1975,Traditional,Natural gas (mains) +5 Abbot Ridge,Long Crendon,Aylesbury,,HP18 9BH,General Needs,Bungalow,1975,Traditional,Natural gas (mains) +7 Abbot Ridge,Long Crendon,Aylesbury,,HP18 9BH,General Needs,Bungalow,1975,Traditional,Natural gas (mains) +9 Abbot Ridge,Long Crendon,Aylesbury,,HP18 9BH,General Needs,Flat,1976,Traditional,Natural gas (mains) +13 Abbot Ridge,Long Crendon,Aylesbury,,HP18 9BH,General Needs,Flat,1976,Traditional,Natural gas (mains) +17 Abbot Ridge,Long Crendon,Aylesbury,,HP18 9BH,General Needs,Flat,1976,Traditional,Natural gas (mains) +25 Abbot Ridge,Long Crendon,Aylesbury,,HP18 9BH,General Needs,Flat,1976,Traditional,Natural gas (mains) +31 Abbot Ridge,Long Crendon,Aylesbury,,HP18 9BH,General Needs,Flat,1976,Traditional,Natural gas (mains) +33 Abbot Ridge,Long Crendon,Aylesbury,Bucks,HP18 9BH,General Needs,Flat,1976,Traditional,Natural gas (mains) +37 Abbot Ridge,Long Crendon,Aylesbury,,HP18 9BH,General Needs,Flat,1976,Traditional,Natural gas (mains) +47 Abbot Ridge,Long Crendon,Aylesbury,,HP18 9BH,General Needs,Flat,1976,Traditional,Natural gas (mains) +51 Abbot Ridge,Long Crendon,Aylesbury,,HP18 9BH,General Needs,Flat,1976,Traditional,Natural gas (mains) +53 Abbot Ridge,Long Crendon,Aylesbury,,HP18 9BH,General Needs,Flat,1976,Traditional,Natural gas (mains) +57 Abbot Ridge,Long Crendon,Aylesbury,,HP18 9BH,General Needs,Flat,1976,Traditional,Natural gas (mains) +61 Abbot Ridge,Long Crendon,Aylesbury,,HP18 9BH,General Needs,Flat,1976,Traditional,Natural gas (mains) +27 Chilton Road,Long Crendon,Aylesbury,,HP18 9BU,General Needs,Bungalow,1958,Traditional,Natural gas (mains) +29 Chilton Road,Long Crendon,Aylesbury,,HP18 9BU,General Needs,Bungalow,1958,Traditional,Natural gas (mains) +31 Chilton Road,Long Crendon,Aylesbury,,HP18 9BU,General Needs,Bungalow,1958,Traditional,Natural gas (mains) +33 Chilton Road,Long Crendon,Aylesbury,,HP18 9BU,General Needs,Bungalow,1958,Traditional,Natural gas (mains) +35 Chilton Road,Long Crendon,Aylesbury,,HP18 9BU,General Needs,Bungalow,1958,Traditional,Natural gas (mains) +37 Chilton Road,Long Crendon,Aylesbury,,HP18 9BU,General Needs,Bungalow,1958,Traditional,Natural gas (mains) +39 Chilton Road,Long Crendon,Aylesbury,,HP18 9BU,General Needs,Bungalow,1958,Traditional,Natural gas (mains) +41 Chilton Road,Long Crendon,Aylesbury,,HP18 9BU,General Needs,Bungalow,1958,Traditional,Natural gas (mains) +5 Meadowbank Close,Long Crendon,Aylesbury,,HP18 9DH,General Needs,House,1964,Traditional,Natural gas (mains) +6 Meadowbank Close,Long Crendon,Aylesbury,,HP18 9DH,General Needs,Bungalow,1964,Traditional,Natural gas (mains) +7 Meadowbank Close,Long Crendon,Aylesbury,,HP18 9DH,General Needs,Bungalow,1964,Traditional,Natural gas (mains) +8 Meadowbank Close,Long Crendon,Aylesbury,,HP18 9DH,General Needs,Bungalow,1964,Traditional,Natural gas (mains) +9 Meadowbank Close,Long Crendon,Aylesbury,,HP18 9DH,General Needs,Bungalow,1964,Traditional,Natural gas (mains) +10 Meadowbank Close,Long Crendon,Aylesbury,,HP18 9DH,General Needs,Bungalow,1964,Traditional,Natural gas (mains) +11 Meadowbank Close,Long Crendon,Aylesbury,,HP18 9DH,General Needs,Bungalow,1964,Traditional,Natural gas (mains) +12 Meadowbank Close,Long Crendon,Aylesbury,,HP18 9DH,General Needs,Bungalow,1964,Traditional,Natural gas (mains) +13 Meadowbank Close,Long Crendon,Aylesbury,,HP18 9DH,General Needs,Bungalow,1964,Traditional,Natural gas (mains) +14 Meadowbank Close,Long Crendon,Aylesbury,,HP18 9DH,General Needs,Bungalow,1964,Traditional,Natural gas (mains) +15 Meadowbank Close,Long Crendon,Aylesbury,,HP18 9DH,General Needs,Flat,1966,Traditional,Natural gas (mains) +2 Bonnersfield,Long Crendon,Aylesbury,,HP18 9DJ,General Needs,Bungalow,1955,Traditional,Natural gas (mains) +3 Bonnersfield,Long Crendon,Aylesbury,,HP18 9DJ,General Needs,Bungalow,1955,Traditional,Natural gas (mains) +4 Bonnersfield,Long Crendon,Aylesbury,,HP18 9DJ,General Needs,Bungalow,1955,Traditional,Natural gas (mains) +5 Bonnersfield,Long Crendon,Aylesbury,,HP18 9DJ,General Needs,Bungalow,1955,Traditional,Natural gas (mains) +6 Bonnersfield,Long Crendon,Aylesbury,,HP18 9DJ,General Needs,Bungalow,1955,Traditional,Natural gas (mains) +7 Bonnersfield,Long Crendon,Aylesbury,,HP18 9DJ,General Needs,Bungalow,1955,Traditional,Natural gas (mains) +8 Bonnersfield,Long Crendon,Aylesbury,,HP18 9DJ,General Needs,Bungalow,1955,Traditional,Natural gas (mains) +14 Bonnersfield,Long Crendon,Aylesbury,,HP18 9DJ,General Needs,House,1960,Traditional,Natural gas (mains) +16 Bonnersfield,Long Crendon,Aylesbury,,HP18 9DJ,General Needs,House,1960,Traditional,Natural gas (mains) +17 Bonnersfield,Long Crendon,Aylesbury,,HP18 9DJ,General Needs,Bungalow,1958,Traditional,Natural gas (mains) +19 Bonnersfield,Long Crendon,Aylesbury,,HP18 9DJ,General Needs,Bungalow,1958,Traditional,Natural gas (mains) +21 Bonnersfield,Long Crendon,Aylesbury,,HP18 9DJ,General Needs,Bungalow,1958,Traditional,Natural gas (mains) +23 Bonnersfield,Long Crendon,Aylesbury,,HP18 9DJ,General Needs,Bungalow,1958,Traditional,Natural gas (mains) +26 Bonnersfield,Long Crendon,Aylesbury,,HP18 9DJ,General Needs,House,1957,Traditional,Natural gas (mains) +28 Bonnersfield,Long Crendon,Aylesbury,,HP18 9DJ,General Needs,House,1957,Traditional,Natural gas (mains) +29 Bonnersfield,Long Crendon,Aylesbury,,HP18 9DJ,General Needs,House,1958,Traditional,Natural gas (mains) +30 Bonnersfield,Long Crendon,Aylesbury,,HP18 9DJ,General Needs,House,1957,Traditional,Natural gas (mains) +32 Bonnersfield,Long Crendon,Aylesbury,,HP18 9DJ,General Needs,House,1957,Traditional,Natural gas (mains) +34 Bonnersfield,Long Crendon,Aylesbury,,HP18 9DJ,General Needs,Bungalow,1957,Traditional,Natural gas (mains) +36 Bonnersfield,Long Crendon,Aylesbury,,HP18 9DJ,General Needs,Bungalow,1957,Traditional,Natural gas (mains) +11 Bonnersfield,Long Crendon,Aylesbury,,HP18 9DJ,General Needs,House,1960,Traditional,None +4 Quarry Close,Long Crendon,Aylesbury,,HP18 9DL,General Needs,Flat,1964,Traditional,LPG +1 Quarry Close,Long Crendon,Aylesbury,,HP18 9DL,General Needs,Flat,1964,Traditional,Natural gas (mains) +3 Quarry Close,Long Crendon,Aylesbury,,HP18 9DL,General Needs,Flat,1964,Traditional,Storage heaters +36 Giffard Way,Long Crendon,Aylesbury,,HP18 9DN,General Needs,House,1956,Traditional,Natural gas (mains) +45 Giffard Way,Long Crendon,Aylesbury,,HP18 9DN,General Needs,House,1956,Traditional,Natural gas (mains) +48 Giffard Way,Long Crendon,Aylesbury,,HP18 9DN,General Needs,House,1956,Traditional,Natural gas (mains) +52 Giffard Way,Long Crendon,Aylesbury,,HP18 9DN,General Needs,House,1956,Traditional,Natural gas (mains) +1 Coltman Avenue,Long Crendon,Aylesbury,,HP18 9DP,General Needs,Bungalow,1953,Traditional,Natural gas (mains) +2 Coltman Avenue,Long Crendon,Aylesbury,,HP18 9DP,General Needs,Bungalow,1953,Traditional,Natural gas (mains) +3 Coltman Avenue,Long Crendon,Aylesbury,,HP18 9DP,General Needs,Bungalow,1953,Traditional,Natural gas (mains) +4 Coltman Avenue,Long Crendon,Aylesbury,,HP18 9DP,General Needs,Bungalow,1953,Traditional,Natural gas (mains) +10 Coltman Avenue,Long Crendon,Aylesbury,,HP18 9DP,General Needs,House,1950,Traditional,Natural gas (mains) +11 Coltman Avenue,Long Crendon,Aylesbury,,HP18 9DP,General Needs,House,1951,Traditional,Natural gas (mains) +12 Coltman Avenue,Long Crendon,Aylesbury,,HP18 9DP,General Needs,House,1950,Traditional,Natural gas (mains) +14 Coltman Avenue,Long Crendon,Aylesbury,,HP18 9DP,General Needs,House,1950,Traditional,Natural gas (mains) +16 Coltman Avenue,Long Crendon,Aylesbury,,HP18 9DP,General Needs,House,1950,Traditional,Natural gas (mains) +22 Coltman Avenue,Long Crendon,Aylesbury,,HP18 9DP,General Needs,House,1950,Traditional,Natural gas (mains) +25 Coltman Avenue,Long Crendon,Aylesbury,,HP18 9DP,General Needs,House,1950,Traditional,Natural gas (mains) +26 Coltman Avenue,Long Crendon,Aylesbury,,HP18 9DP,General Needs,House,1950,Traditional,Natural gas (mains) +27 Coltman Avenue,Long Crendon,Aylesbury,,HP18 9DP,General Needs,House,1950,Traditional,Natural gas (mains) +29 Coltman Avenue,Long Crendon,Aylesbury,,HP18 9DP,General Needs,Bungalow,1953,Traditional,Natural gas (mains) +31 Coltman Avenue,Long Crendon,Aylesbury,,HP18 9DP,General Needs,Bungalow,1953,Traditional,Natural gas (mains) +33 Coltman Avenue,Long Crendon,Aylesbury,,HP18 9DP,General Needs,Bungalow,1953,Traditional,Natural gas (mains) +35 Coltman Avenue,Long Crendon,Aylesbury,,HP18 9DP,General Needs,Bungalow,1953,Traditional,Natural gas (mains) +29 Friars Furlong,Long Crendon,Aylesbury,,HP18 9DQ,General Needs,Bungalow,1958,Traditional,Natural gas (mains) +31 Friars Furlong,Long Crendon,Aylesbury,,HP18 9DQ,General Needs,Bungalow,1958,Traditional,Natural gas (mains) +32 Friars Furlong,Long Crendon,Aylesbury,,HP18 9DQ,General Needs,House,1962,Traditional,Natural gas (mains) +33 Friars Furlong,Long Crendon,Aylesbury,,HP18 9DQ,General Needs,Bungalow,1958,Traditional,Natural gas (mains) +4 Highfield,Long Crendon,Aylesbury,,HP18 9DR,General Needs,House,1936,Traditional,Natural gas (mains) +5 Highfield,Long Crendon,Aylesbury,,HP18 9DR,General Needs,House,1936,Traditional,Natural gas (mains) +8 Highfield,Long Crendon,Aylesbury,,HP18 9DR,General Needs,House,1936,Traditional,Natural gas (mains) +9 Highfield,Long Crendon,Aylesbury,,HP18 9DR,General Needs,House,1936,Traditional,Natural gas (mains) +10 Highfield,Long Crendon,Aylesbury,,HP18 9DR,General Needs,House,1936,Traditional,Natural gas (mains) +11 Highfield,Long Crendon,Aylesbury,,HP18 9DR,General Needs,House,1936,Traditional,Natural gas (mains) +12 Highfield,Long Crendon,Aylesbury,,HP18 9DR,General Needs,House,1936,Traditional,Natural gas (mains) +13 Highfield,Long Crendon,Aylesbury,,HP18 9DR,General Needs,House,1936,Traditional,Natural gas (mains) +14 Highfield,Long Crendon,Aylesbury,,HP18 9DR,General Needs,House,1936,Traditional,Natural gas (mains) +17 Highfield,Long Crendon,Aylesbury,,HP18 9DR,General Needs,House,1935,Traditional,Natural gas (mains) +18 Highfield,Long Crendon,Aylesbury,,HP18 9DR,General Needs,House,1936,Traditional,Natural gas (mains) +20 Highfield,Long Crendon,Aylesbury,,HP18 9DR,General Needs,House,1936,Traditional,Natural gas (mains) +23 Highfield,Long Crendon,Aylesbury,,HP18 9DR,General Needs,House,1936,Traditional,Natural gas (mains) +24 Highfield,Long Crendon,Aylesbury,,HP18 9DR,General Needs,House,1936,Traditional,Natural gas (mains) +14B Highfield,Long Crendon,Aylesbury,,HP18 9DR,General Needs,House,2014,Traditional,Natural gas (mains) +4 Giffard Way,Long Crendon,Aylesbury,,HP18 9DW,General Needs,House,1951,Traditional,Natural gas (mains) +13 Giffard Way,Long Crendon,Aylesbury,,HP18 9DW,General Needs,House,1953,Traditional,Natural gas (mains) +14 Giffard Way,Long Crendon,Aylesbury,,HP18 9DW,General Needs,House,1953,Traditional,Natural gas (mains) +15 Giffard Way,Long Crendon,Aylesbury,,HP18 9DW,General Needs,House,1953,Traditional,Natural gas (mains) +22 Giffard Way,Long Crendon,Aylesbury,,HP18 9DW,General Needs,House,1955,Traditional,Natural gas (mains) +23 Giffard Way,Long Crendon,Aylesbury,,HP18 9DW,General Needs,House,1953,Traditional,Natural gas (mains) +24 Giffard Way,Long Crendon,Aylesbury,,HP18 9DW,General Needs,House,1955,Traditional,Natural gas (mains) +29 Giffard Way,Long Crendon,Aylesbury,,HP18 9DW,General Needs,House,1954,Traditional,Natural gas (mains) +33 Giffard Way,Long Crendon,Aylesbury,,HP18 9DW,General Needs,Bungalow,1957,Traditional,Natural gas (mains) +35 Giffard Way,Long Crendon,Aylesbury,,HP18 9DW,General Needs,Bungalow,1957,Traditional,Natural gas (mains) +39 Giffard Way,Long Crendon,Aylesbury,,HP18 9DW,General Needs,Flat,1964,Traditional,Natural gas (mains) +2 Abbot Walk,Long Crendon,Aylesbury,,HP18 9EL,General Needs,House,1987,Traditional,Natural gas (mains) +4 Abbot Walk,Long Crendon,Aylesbury,,HP18 9EL,General Needs,House,1987,Traditional,Natural gas (mains) +6 Abbot Walk,Long Crendon,Aylesbury,,HP18 9EL,General Needs,House,1987,Traditional,Natural gas (mains) +2 Home Close Edge,Shabbington,Aylesbury,,HP18 9HD,General Needs,House,1936,Traditional,ASHP +6 Home Close Edge,Shabbington,Aylesbury,,HP18 9HD,General Needs,House,1936,Traditional,ASHP +7 Home Close Edge,Shabbington,Aylesbury,,HP18 9HD,General Needs,House,1936,Traditional,ASHP +3 Home Close Edge,Shabbington,Aylesbury,,HP18 9HD,General Needs,House,1936,Traditional,LPG +4 Home Close Edge,Shabbington,Aylesbury,,HP18 9HD,General Needs,House,1936,Traditional,LPG +8 Home Close Edge,Shabbington,Aylesbury,,HP18 9HD,General Needs,House,1936,Traditional,LPG +5 Home Close Edge,Shabbington,Aylesbury,,HP18 9HD,General Needs,House,1936,Traditional,Oil +10 Home Close Edge,Shabbington,Aylesbury,,HP18 9HD,General Needs,House,1936,Traditional,Oil +4 Ickford Road,Shabbington,Aylesbury,,HP18 9HN,General Needs,Bungalow,1980,Traditional,LPG +8 Ickford Road,Shabbington,Aylesbury,,HP18 9HN,General Needs,Bungalow,1980,Traditional,LPG +10 Ickford Road,Shabbington,Aylesbury,,HP18 9HN,General Needs,Bungalow,1980,Traditional,Storage heaters +1 Turnfields,Ickford,Aylesbury,,HP18 9HP,General Needs,House,1973,Traditional,LPG +16 Turnfields,Ickford,Aylesbury,,HP18 9HP,General Needs,Bungalow,1973,Traditional,LPG +18 Turnfields,Ickford,Aylesbury,,HP18 9HP,General Needs,Bungalow,1973,Traditional,LPG +30 Turnfields,Ickford,Aylesbury,,HP18 9HP,General Needs,House,1973,Traditional,LPG +13 Turnfields,Ickford,Aylesbury,,HP18 9HP,General Needs,House,1973,Traditional,Oil +2 Turnfields,Ickford,Aylesbury,,HP18 9HP,General Needs,Bungalow,1973,Traditional,Storage heaters +4 Turnfields,Ickford,Aylesbury,,HP18 9HP,General Needs,Bungalow,1973,Traditional,Storage heaters +6 Turnfields,Ickford,Aylesbury,,HP18 9HP,General Needs,Bungalow,1973,Traditional,Storage heaters +8 Turnfields,Ickford,Aylesbury,,HP18 9HP,General Needs,Bungalow,1973,Traditional,Storage heaters +10 Turnfields,Ickford,Aylesbury,,HP18 9HP,General Needs,Bungalow,1973,Traditional,Storage heaters +12 Turnfields,Ickford,Aylesbury,,HP18 9HP,General Needs,Bungalow,1973,Traditional,Storage heaters +14 Turnfields,Ickford,Aylesbury,,HP18 9HP,General Needs,Bungalow,1973,Traditional,Storage heaters +20 Turnfields,Ickford,Aylesbury,,HP18 9HP,General Needs,Bungalow,1973,Traditional,Storage heaters +22 Turnfields,Ickford,Aylesbury,,HP18 9HP,General Needs,Bungalow,1973,Traditional,Storage heaters +8 Sheldon Road,Ickford,Aylesbury,,HP18 9HT,General Needs,Bungalow,1974,Traditional,LPG +10 Sheldon Road,Ickford,Aylesbury,,HP18 9HT,General Needs,Bungalow,1974,Traditional,LPG +12 Sheldon Road,Ickford,Aylesbury,,HP18 9HT,General Needs,Bungalow,1974,Traditional,LPG +16 Sheldon Road,Ickford,Aylesbury,,HP18 9HT,General Needs,Bungalow,1974,Traditional,LPG +34 Sheldon Road,Ickford,Aylesbury,,HP18 9HT,General Needs,Bungalow,1985,Traditional,LPG +42 Sheldon Road,Ickford,Aylesbury,,HP18 9HT,General Needs,House,1984,Traditional,LPG +14 Sheldon Road,Ickford,Aylesbury,,HP18 9HT,General Needs,Bungalow,1974,Traditional,Oil +6 Sheldon Road,Ickford,Aylesbury,,HP18 9HT,General Needs,Bungalow,1974,Traditional,Storage heaters +18 Sheldon Road,Ickford,Aylesbury,,HP18 9HT,General Needs,Bungalow,1974,Traditional,Storage heaters +20 Sheldon Road,Ickford,Aylesbury,,HP18 9HT,General Needs,Bungalow,1974,Traditional,Storage heaters +22 Sheldon Road,Ickford,Aylesbury,,HP18 9HT,General Needs,Bungalow,1974,Traditional,Storage heaters +24 Sheldon Road,Ickford,Aylesbury,,HP18 9HT,General Needs,Bungalow,1974,Traditional,Storage heaters +30 Sheldon Road,Ickford,Aylesbury,,HP18 9HT,General Needs,Bungalow,1985,Traditional,Storage heaters +32 Sheldon Road,Ickford,Aylesbury,,HP18 9HT,General Needs,Bungalow,1985,Traditional,Storage heaters +40 Sheldon Road,Ickford,Aylesbury,,HP18 9HT,General Needs,House,1985,Traditional,Storage heaters +1 Dukes Close,Shabbington,Aylesbury,,HP18 9HW,General Needs,House,1984,Traditional,ASHP +2 Dukes Close,Shabbington,Aylesbury,,HP18 9HW,General Needs,Bungalow,1984,Traditional,ASHP +13 Dukes Close,Shabbington,Aylesbury,,HP18 9HW,General Needs,House,1951,Traditional,ASHP +25 Dukes Close,Shabbington,Aylesbury,,HP18 9HW,General Needs,House,1950,Traditional,ASHP +29 Dukes Close,Shabbington,Aylesbury,,HP18 9HW,General Needs,Bungalow,1984,Traditional,ASHP +8 Dukes Close,Shabbington,Aylesbury,,HP18 9HW,General Needs,House,1953,Traditional,LPG +15 Dukes Close,Shabbington,Aylesbury,,HP18 9HW,General Needs,House,1951,Traditional,LPG +27 Dukes Close,Shabbington,Aylesbury,,HP18 9HW,General Needs,House,1950,Traditional,LPG +4 Dukes Close,Shabbington,Aylesbury,,HP18 9HW,General Needs,House,1951,Traditional,Oil +5 Dukes Close,Shabbington,Aylesbury,,HP18 9HW,General Needs,House,1953,Traditional,Oil +22 Dukes Close,Shabbington,Aylesbury,,HP18 9HW,General Needs,House,1950,Traditional,Oil +24 Dukes Close,Shabbington,Aylesbury,,HP18 9HW,General Needs,House,1950,Traditional,Oil +21 Dukes Close,Shabbington,Aylesbury,,HP18 9HW,General Needs,House,2014,Traditional,Storage heaters +8 Field Close,Ickford,Aylesbury,,HP18 9JH,General Needs,House,1985,Traditional,LPG +16 Waterperry Road,Worminghall,Aylesbury,,HP18 9JL,General Needs,Bungalow,1955,Traditional,LPG +18 Waterperry Road,Worminghall,Aylesbury,,HP18 9JL,General Needs,Bungalow,1955,Traditional,LPG +12 Waterperry Road,Worminghall,Aylesbury,,HP18 9JL,General Needs,Bungalow,1955,Traditional,Storage heaters +3 Menmarsh Road,Worminghall,Aylesbury,,HP18 9JT,General Needs,House,1939,Traditional,ASHP +7 Kings Close,Worminghall,Aylesbury,,HP18 9JW,General Needs,House,1955,Cornish,LPG +11 Kings Close,Worminghall,Aylesbury,,HP18 9JW,General Needs,House,1955,Cornish,LPG +14 Kings Close,Worminghall,Aylesbury,,HP18 9JW,General Needs,House,1955,Cornish,LPG +15 Kings Close,Worminghall,Aylesbury,,HP18 9JW,General Needs,House,1955,Cornish,LPG +18 Kings Close,Worminghall,Aylesbury,,HP18 9JW,General Needs,House,1955,Cornish,LPG +26 Kings Close,Worminghall,Aylesbury,,HP18 9JW,General Needs,House,1955,Cornish,LPG +27 Kings Close,Worminghall,Aylesbury,,HP18 9JW,General Needs,House,1955,Cornish,LPG +28 Kings Close,Worminghall,Aylesbury,,HP18 9JW,General Needs,House,1955,Cornish,LPG +5 Kings Close,Worminghall,Aylesbury,,HP18 9JW,General Needs,House,1955,Cornish,Oil +12 Kings Close,Worminghall,Aylesbury,,HP18 9JW,General Needs,House,1955,Cornish,Oil +16 Kings Close,Worminghall,Aylesbury,,HP18 9JW,General Needs,House,1955,Cornish,Oil +25 Kings Close,Worminghall,Aylesbury,,HP18 9JW,General Needs,House,1955,Cornish,Oil +9 Kings Close,Worminghall,Aylesbury,,HP18 9JW,General Needs,House,1955,Cornish,Solid fuel +13 Kings Close,Worminghall,Aylesbury,,HP18 9JW,General Needs,House,1955,Cornish,Solid fuel +19 Kings Close,Worminghall,Aylesbury,,HP18 9JW,General Needs,House,1955,Cornish,Solid fuel +24 Kings Close,Worminghall,Aylesbury,,HP18 9JW,General Needs,House,1955,Cornish,Solid fuel +3 Kings Close,Worminghall,Aylesbury,,HP18 9JW,General Needs,House,1955,Cornish,Storage heaters +17 Kings Close,Worminghall,Aylesbury,,HP18 9JW,General Needs,House,1955,Cornish,Storage heaters +20 Kings Close,Worminghall,Aylesbury,,HP18 9JW,General Needs,House,1955,Cornish,Storage heaters +22 Kings Close,Worminghall,Aylesbury,,HP18 9JW,General Needs,House,1955,Cornish,Storage heaters +23 Kings Close,Worminghall,Aylesbury,,HP18 9JW,General Needs,House,1955,Cornish,Storage heaters +48 The Avenue,Worminghall,Aylesbury,,HP18 9LE,General Needs,House,1951,Traditional,LPG +8A Princes Close,Chilton,Aylesbury,,HP18 9LN,General Needs,House,1985,Traditional,LPG +7 Princes Close,Chilton,Aylesbury,,HP18 9LN,General Needs,House,1985,Traditional,LPG +10 Princes Close,Chilton,Aylesbury,,HP18 9LN,General Needs,Bungalow,1986,Traditional,LPG +16 Princes Close,Chilton,Aylesbury,Bucks,HP18 9LN,General Needs,House,1955,Traditional,LPG +17 Princes Close,Chilton,Aylesbury,,HP18 9LN,General Needs,House,1955,Traditional,LPG +19 Princes Close,Chilton,Aylesbury,,HP18 9LN,General Needs,House,1955,Traditional,LPG +20 Princes Close,Chilton,Aylesbury,,HP18 9LN,General Needs,House,1955,Traditional,LPG +23 Princes Close,Chilton,Aylesbury,,HP18 9LN,General Needs,Bungalow,1957,Traditional,LPG +2 Coles Hill,Brill Road,Chilton,Aylesbury,HP18 9LX,General Needs,House,1936,Traditional,ASHP +1 Coles Hill,Brill Road,Chilton,Aylesbury,HP18 9LX,General Needs,House,1936,Traditional,LPG +4 Coles Hill,Brill Road,Chilton,Aylesbury,HP18 9LX,General Needs,House,1936,Traditional,LPG +6 Coles Hill,Brill Road,Chilton,Aylesbury,HP18 9LX,General Needs,House,1936,Traditional,LPG +6 Solters Close,Ludgershall,Aylesbury,,HP18 9NS,General Needs,Bungalow,1984,Traditional,LPG +4 Solters Close,Ludgershall,Aylesbury,,HP18 9NS,General Needs,House,1984,Traditional,Storage heaters +2 Wotton End,Ludgershall,Aylesbury,,HP18 9NT,General Needs,House,1936,Traditional,LPG +1 Wotton End,Ludgershall,Aylesbury,,HP18 9NT,General Needs,House,1936,Traditional,Oil +5 Wotton End,Ludgershall,Aylesbury,,HP18 9NT,General Needs,House,1936,Traditional,Oil +4 Wotton End,Ludgershall,Aylesbury,,HP18 9NT,General Needs,House,1936,Traditional,Storage heaters +13 West View,Ludgershall,Aylesbury,,HP18 9NX,General Needs,Bungalow,1985,Traditional,ASHP +11 West View,Ludgershall,Aylesbury,,HP18 9NX,General Needs,House,1985,Traditional,Solid fuel +15 West View,Ludgershall,Aylesbury,,HP18 9NX,General Needs,Bungalow,1950,Traditional,Storage heaters +16 West View,Ludgershall,Aylesbury,,HP18 9NX,General Needs,Bungalow,1950,Traditional,Storage heaters +5 White Hart Close,Ludgershall,Aylesbury,,HP18 9PE,General Needs,Bungalow,1970,Traditional,ASHP +6 White Hart Close,Ludgershall,Aylesbury,,HP18 9PE,General Needs,Bungalow,1970,Traditional,LPG +1 White Hart Close,Ludgershall,Aylesbury,,HP18 9PE,General Needs,Bungalow,1970,Traditional,Oil +2 White Hart Close,Ludgershall,Aylesbury,,HP18 9PE,General Needs,Bungalow,1970,Traditional,Storage heaters +3 White Hart Close,Ludgershall,Aylesbury,,HP18 9PE,General Needs,Bungalow,1970,Traditional,Storage heaters +4 White Hart Close,Ludgershall,Aylesbury,,HP18 9PE,General Needs,Bungalow,1970,Traditional,Storage heaters +7 White Hart Close,Ludgershall,Aylesbury,,HP18 9PE,General Needs,Bungalow,1970,Traditional,Storage heaters +2 Hillview Cottages,Ludgershall,Aylesbury,,HP18 9PG,General Needs,House,1937,Old Hundreds,Oil +3 Hillview Cottages,Ludgershall,Aylesbury,,HP18 9PG,General Needs,House,1937,Old Hundreds,Oil +6 Ashfield Rise,Oakley,Aylesbury,,HP18 9QA,General Needs,House,1953,Traditional,ASHP +11 Ashfield Rise,Oakley,Aylesbury,,HP18 9QA,General Needs,House,1954,Traditional,ASHP +10 Ashfield Rise,Oakley,Aylesbury,,HP18 9QA,General Needs,House,1954,Traditional,LPG +16 Ashfield Rise,Oakley,Aylesbury,,HP18 9QA,General Needs,House,1953,Traditional,LPG +21 Ashfield Rise,Oakley,Aylesbury,,HP18 9QA,General Needs,Bungalow,1954,Traditional,LPG +23 Ashfield Rise,Oakley,Aylesbury,,HP18 9QA,General Needs,Bungalow,1954,Traditional,LPG +1 Ashfield Rise,Oakley,Aylesbury,,HP18 9QA,General Needs,House,1953,Traditional,Oil +22 Ashfield Rise,Oakley,Aylesbury,,HP18 9QA,General Needs,Bungalow,1954,Traditional,Storage heaters +8 Elmwood Close,Oakley,Aylesbury,,HP18 9QJ,General Needs,House,1984,Traditional,ASHP +6 Elmwood Close,Oakley,Aylesbury,,HP18 9QJ,General Needs,House,1984,Traditional,LPG +3 Elmwood Close,Oakley,Aylesbury,,HP18 9QJ,General Needs,Bungalow,1985,Traditional,Oil +1 Elmwood Close,Oakley,Aylesbury,,HP18 9QJ,General Needs,Bungalow,1985,Traditional,Storage heaters +39 Brill Road,Oakley,Aylesbury,,HP18 9QN,General Needs,House,1938,Traditional,Solid fuel +28 Manor Road,Oakley,Aylesbury,,HP18 9QT,General Needs,House,1936,Traditional,Oil +34 Manor Road,Oakley,Aylesbury,,HP18 9QT,General Needs,House,1936,Traditional,Oil +30 Manor Road,Oakley,Aylesbury,,HP18 9QT,General Needs,House,1936,Traditional,Storage heaters +13 College Crescent,Oakley,Aylesbury,,HP18 9QZ,General Needs,Bungalow,1964,Traditional,ASHP +1 College Crescent,Oakley,Aylesbury,,HP18 9QZ,General Needs,Bungalow,1963,Traditional,LPG +7 College Crescent,Oakley,Aylesbury,,HP18 9QZ,General Needs,Bungalow,1964,Traditional,LPG +15 College Crescent,Oakley,Aylesbury,,HP18 9QZ,General Needs,Bungalow,1964,Traditional,LPG +23 College Crescent,Oakley,Aylesbury,,HP18 9QZ,General Needs,Bungalow,1965,Traditional,LPG +3 College Crescent,Oakley,Aylesbury,,HP18 9QZ,General Needs,Bungalow,1963,Traditional,Storage heaters +5 College Crescent,Oakley,Aylesbury,,HP18 9QZ,General Needs,Bungalow,1963,Traditional,Storage heaters +9 College Crescent,Oakley,Aylesbury,,HP18 9QZ,General Needs,Bungalow,1964,Traditional,Storage heaters +11 College Crescent,Oakley,Aylesbury,,HP18 9QZ,General Needs,Bungalow,1964,Traditional,Storage heaters +17 College Crescent,Oakley,Aylesbury,,HP18 9QZ,General Needs,Bungalow,1964,Traditional,Storage heaters +21 College Crescent,Oakley,Aylesbury,,HP18 9QZ,General Needs,Bungalow,1964,Traditional,Storage heaters +25 College Crescent,Oakley,Aylesbury,,HP18 9QZ,General Needs,Bungalow,1965,Traditional,Storage heaters +27 College Crescent,Oakley,Aylesbury,,HP18 9QZ,General Needs,Bungalow,1965,Traditional,Storage heaters +29 College Crescent,Oakley,Aylesbury,,HP18 9QZ,General Needs,Bungalow,1965,Traditional,Storage heaters +8 College Crescent,Oakley,Aylesbury,,HP18 9RA,General Needs,Bungalow,1964,Traditional,ASHP +4 College Crescent,Oakley,Aylesbury,,HP18 9RA,General Needs,Bungalow,1963,Traditional,LPG +2 College Crescent,Oakley,Aylesbury,,HP18 9RA,General Needs,Bungalow,1963,Traditional,Storage heaters +6 College Crescent,Oakley,Aylesbury,,HP18 9RA,General Needs,Bungalow,1963,Traditional,Storage heaters +10 College Crescent,Oakley,Aylesbury,,HP18 9RA,General Needs,Bungalow,1964,Traditional,Storage heaters +12 College Crescent,Oakley,Aylesbury,,HP18 9RA,General Needs,Bungalow,1964,Traditional,Storage heaters +14 College Crescent,Oakley,Aylesbury,,HP18 9RA,General Needs,Bungalow,1964,Traditional,Storage heaters +15 Oxford Road,Oakley,Aylesbury,,HP18 9RD,General Needs,House,1936,Traditional,Storage heaters +9 The Firs,Brill,Aylesbury,,HP18 9RX,General Needs,House,1961,Traditional,LPG +33 The Firs,Brill,Aylesbury,,HP18 9RX,General Needs,House,1962,Traditional,LPG +39 The Firs,Brill,Aylesbury,,HP18 9RX,General Needs,Bungalow,1962,Traditional,LPG +5 The Firs,Brill,Aylesbury,,HP18 9RX,General Needs,Bungalow,1961,Traditional,Natural gas (mains) +7 The Firs,Brill,Aylesbury,,HP18 9RX,General Needs,Bungalow,1961,Cornish,Storage heaters +16 The Firs,Brill,Aylesbury,,HP18 9RY,General Needs,Bungalow,1962,Traditional,LPG +18 The Firs,Brill,Aylesbury,,HP18 9RY,General Needs,Bungalow,1962,Traditional,LPG +26 The Firs,Brill,Aylesbury,,HP18 9RY,General Needs,Bungalow,1962,Traditional,LPG +28 The Firs,Brill,Aylesbury,,HP18 9RY,General Needs,Bungalow,1962,Traditional,LPG +30 The Firs,Brill,Aylesbury,,HP18 9RY,General Needs,Bungalow,1962,Traditional,LPG +40 The Firs,Brill,Aylesbury,,HP18 9RY,General Needs,House,1962,Traditional,LPG +44 The Firs,Brill,Aylesbury,,HP18 9RY,General Needs,House,1962,Traditional,LPG +54 The Firs,Brill,Aylesbury,,HP18 9RY,General Needs,Bungalow,1964,Traditional,LPG +56 The Firs,Brill,Aylesbury,,HP18 9RY,General Needs,Bungalow,1964,Traditional,LPG +52 The Firs,Brill,Aylesbury,,HP18 9RY,General Needs,Bungalow,1964,Traditional,Solid fuel +20 The Firs,Brill,Aylesbury,,HP18 9RY,General Needs,Bungalow,1962,Traditional,Storage heaters +22 The Firs,Brill,Aylesbury,,HP18 9RY,General Needs,Bungalow,1962,Traditional,Storage heaters +24 The Firs,Brill,Aylesbury,,HP18 9RY,General Needs,Bungalow,1962,Traditional,Storage heaters +8 Clarkes Field Close,Brill,Aylesbury,,HP18 9SP,General Needs,Bungalow,1978,Traditional,LPG +14 Clarkes Field Close,Brill,Aylesbury,,HP18 9SP,General Needs,House,1977,Traditional,LPG +20 Clarkes Field Close,Brill,Aylesbury,,HP18 9SP,General Needs,House,1977,Traditional,LPG +24 Clarkes Field Close,Brill,Aylesbury,,HP18 9SP,General Needs,House,1977,Traditional,LPG +10 Clarkes Field Close,Brill,Aylesbury,,HP18 9SP,General Needs,Bungalow,1978,Cornish,Storage heaters +12 Clarkes Field Close,Brill,Aylesbury,,HP18 9SP,General Needs,Bungalow,1978,Traditional,Storage heaters +36 Temple Street,Brill,Aylesbury,,HP18 9SX,General Needs,House,1936,Traditional,Storage heaters +38 Temple Street,Brill,Aylesbury,,HP18 9SX,General Needs,House,1936,Traditional,Storage heaters +35 Brae Hill,Brill,Aylesbury,Bucks,HP18 9TB,General Needs,House,1953,Traditional,LPG +33 Brae Hill,Brill,Aylesbury,Bucks,HP18 9TB,General Needs,House,1953,Traditional,Storage heaters +1 Harris Close,Brill,Aylesbury,,HP18 9TD,General Needs,Bungalow,1957,Traditional,LPG +2 Harris Close,Brill,Aylesbury,,HP18 9TD,General Needs,Bungalow,1957,Traditional,LPG +3 Harris Close,Brill,Aylesbury,,HP18 9TD,General Needs,Bungalow,1957,Traditional,LPG +4 Harris Close,Brill,Aylesbury,,HP18 9TD,General Needs,Bungalow,1957,Traditional,LPG +5 Brae Hill Close,Brill,Aylesbury,,HP18 9TE,General Needs,Bungalow,1954,Traditional,LPG +6 Brae Hill Close,Brill,Aylesbury,,HP18 9TE,General Needs,Bungalow,1954,Traditional,LPG +1 Brae Hill Close,Brill,Aylesbury,,HP18 9TE,General Needs,House,1954,Traditional,Storage heaters +3 Brae Hill Close,Brill,Aylesbury,,HP18 9TE,General Needs,Bungalow,1954,Traditional,Storage heaters +4 Brae Hill Close,Brill,Aylesbury,,HP18 9TE,General Needs,Bungalow,1954,Traditional,Storage heaters +17 Brae Hill Close,Brill,Aylesbury,,HP18 9TE,General Needs,Flat,1970,Traditional,Storage heaters +18 Brae Hill Close,Brill,Aylesbury,,HP18 9TE,General Needs,Flat,1970,Traditional,Storage heaters +19 Brae Hill Close,Brill,Aylesbury,,HP18 9TE,General Needs,Flat,1970,Traditional,Storage heaters +20 Brae Hill Close,Brill,Aylesbury,,HP18 9TE,General Needs,Flat,1970,Traditional,Storage heaters +22 Brae Hill Close,Brill,Aylesbury,,HP18 9TE,General Needs,Flat,1970,Traditional,Storage heaters +46 Brae Hill,Brill,Aylesbury,Bucks,HP18 9TF,General Needs,House,1953,Traditional,ASHP +14 Brae Hill,Brill,Aylesbury,Bucks,HP18 9TF,General Needs,Bungalow,1950,Traditional,LPG +40 Brae Hill,Brill,Aylesbury,Bucks,HP18 9TF,General Needs,House,1952,Traditional,LPG +38 Brae Hill,Brill,Aylesbury,Bucks,HP18 9TF,General Needs,House,1952,Traditional,Oil +26 Brae Hill,Brill,Aylesbury,Bucks,HP18 9TF,General Needs,Bungalow,1947,Traditional,Storage heaters +28 Brae Hill,Brill,Aylesbury,Bucks,HP18 9TF,General Needs,Bungalow,1947,Traditional,Storage heaters +236 Fowler Road,Aylesbury,Bucks,,HP19 7QE,General Needs,Flat,1972,Rationalised,Natural gas (mains) +248 Fowler Road,Aylesbury,Bucks,,HP19 7QE,General Needs,House,1972,Rationalised,Natural gas (mains) +254 Fowler Road,Aylesbury,Bucks,,HP19 7QE,General Needs,Flat,1972,Rationalised,Natural gas (mains) +256 Fowler Road,Aylesbury,Bucks,,HP19 7QE,General Needs,Flat,1972,Rationalised,Natural gas (mains) +5 Masons Court,Aylesbury,Bucks,,HP19 7QF,General Needs,House,1972,Rationalised,Natural gas (mains) +14 Masons Court,Aylesbury,Bucks,,HP19 7QF,General Needs,House,1972,Rationalised,Natural gas (mains) +24 Masons Court,Aylesbury,Bucks,,HP19 7QF,General Needs,House,1972,Rationalised,Natural gas (mains) +56 Fowler Road,Aylesbury,Bucks,,HP19 7QG,General Needs,Flat,1972,Rationalised,Natural gas (mains) +58 Fowler Road,Aylesbury,Bucks,,HP19 7QG,General Needs,Flat,1972,Rationalised,Natural gas (mains) +72 Fowler Road,Aylesbury,Bucks,,HP19 7QG,General Needs,House,1972,Rationalised,Natural gas (mains) +76 Fowler Road,Aylesbury,Bucks,,HP19 7QG,General Needs,Flat,1972,Rationalised,Natural gas (mains) +78 Fowler Road,Aylesbury,Bucks,,HP19 7QG,General Needs,Flat,1972,Rationalised,Natural gas (mains) +80 Fowler Road,Aylesbury,Bucks,,HP19 7QG,General Needs,Flat,1972,Rationalised,Natural gas (mains) +82 Fowler Road,Aylesbury,Bucks,,HP19 7QG,General Needs,Flat,1972,Rationalised,Natural gas (mains) +106 Fowler Road,Aylesbury,Bucks,,HP19 7QG,General Needs,House,1971,Rationalised,Natural gas (mains) +118 Fowler Road,Aylesbury,Bucks,,HP19 7QG,General Needs,House,1971,Rationalised,Natural gas (mains) +156 Fowler Road,Aylesbury,Bucks,,HP19 7QG,General Needs,Flat,1972,Rationalised,Natural gas (mains) +174 Fowler Road,Aylesbury,Bucks,,HP19 7QG,General Needs,House,1972,Rationalised,Natural gas (mains) +63 Somerville Way,Aylesbury,Bucks,,HP19 7QH,General Needs,House,1971,Rationalised,Natural gas (mains) +69 Somerville Way,Aylesbury,Bucks,,HP19 7QH,General Needs,House,1971,Rationalised,Natural gas (mains) +76 Somerville Way,Aylesbury,Bucks,,HP19 7QH,General Needs,House,1971,Rationalised,Natural gas (mains) +80 Somerville Way,Aylesbury,Bucks,,HP19 7QH,General Needs,Flat,1971,Rationalised,Natural gas (mains) +81 Somerville Way,Aylesbury,Bucks,,HP19 7QH,General Needs,Flat,1971,Rationalised,Natural gas (mains) +82 Somerville Way,Aylesbury,Bucks,,HP19 7QH,General Needs,Flat,1971,Rationalised,Natural gas (mains) +126 Fowler Road,Aylesbury,Bucks,,HP19 7QJ,General Needs,House,1971,Rationalised,Natural gas (mains) +130 Fowler Road,Aylesbury,Bucks,,HP19 7QJ,General Needs,House,1971,Rationalised,Natural gas (mains) +134 Fowler Road,Aylesbury,Bucks,,HP19 7QJ,General Needs,House,1971,Rationalised,Natural gas (mains) +144 Fowler Road,Aylesbury,Bucks,,HP19 7QJ,General Needs,Flat,1971,Rationalised,Natural gas (mains) +146 Fowler Road,Aylesbury,Bucks,,HP19 7QJ,General Needs,Flat,1971,Rationalised,Natural gas (mains) +148 Fowler Road,Aylesbury,Bucks,,HP19 7QJ,General Needs,Flat,1971,Rationalised,Natural gas (mains) +150 Fowler Road,Aylesbury,Bucks,,HP19 7QJ,General Needs,Flat,1971,Rationalised,Natural gas (mains) +8 Chesterfield Place,Aylesbury,Bucks,,HP19 7QL,General Needs,House,1971,Rationalised,Natural gas (mains) +17 Chesterfield Place,Aylesbury,Bucks,,HP19 7QL,General Needs,House,1971,Rationalised,Natural gas (mains) +4 Sheriff Close,Aylesbury,Bucks,,HP19 7QN,General Needs,House,1972,Rationalised,Natural gas (mains) +5 Sheriff Close,Aylesbury,Bucks,,HP19 7QN,General Needs,House,1972,Rationalised,Natural gas (mains) +6 Sheriff Close,Aylesbury,Bucks,,HP19 7QN,General Needs,House,1972,Rationalised,Natural gas (mains) +8 Sheriff Close,Aylesbury,Bucks,,HP19 7QN,General Needs,House,1972,Rationalised,Natural gas (mains) +11 Sheriff Close,Aylesbury,Bucks,,HP19 7QN,General Needs,House,1972,Rationalised,Natural gas (mains) +12 Sheriff Close,Aylesbury,Bucks,,HP19 7QN,General Needs,House,1972,Rationalised,Natural gas (mains) +14 Sheriff Close,Aylesbury,Bucks,,HP19 7QN,General Needs,House,1972,Rationalised,Natural gas (mains) +176 Fowler Road,Aylesbury,Bucks,,HP19 7QP,General Needs,House,1972,Rationalised,Natural gas (mains) +182 Fowler Road,Aylesbury,Bucks,,HP19 7QP,General Needs,House,1972,Rationalised,Natural gas (mains) +184 Fowler Road,Aylesbury,Bucks,,HP19 7QP,General Needs,House,1972,Rationalised,Natural gas (mains) +188 Fowler Road,Aylesbury,Bucks,,HP19 7QP,General Needs,Flat,1972,Rationalised,Natural gas (mains) +204 Fowler Road,Aylesbury,Bucks,,HP19 7QP,General Needs,House,1972,Rationalised,Natural gas (mains) +2 Somerville Way,Aylesbury,Bucks,,HP19 7QQ,General Needs,Flat,1971,Rationalised,Natural gas (mains) +4 Somerville Way,Aylesbury,Bucks,,HP19 7QQ,General Needs,Flat,1971,Rationalised,Natural gas (mains) +5 Somerville Way,Aylesbury,Bucks,,HP19 7QQ,General Needs,Flat,1971,Rationalised,Natural gas (mains) +10 Somerville Way,Aylesbury,Bucks,,HP19 7QQ,General Needs,House,1971,Rationalised,Natural gas (mains) +155 Fowler Road,Aylesbury,Bucks,,HP19 7QR,General Needs,House,1972,Rationalised,Natural gas (mains) +157 Fowler Road,Aylesbury,Bucks,,HP19 7QR,General Needs,House,1972,Rationalised,Natural gas (mains) +165 Fowler Road,Aylesbury,Bucks,,HP19 7QR,General Needs,House,1972,Rationalised,Natural gas (mains) +167 Fowler Road,Aylesbury,Bucks,,HP19 7QR,General Needs,House,1972,Rationalised,Natural gas (mains) +169 Fowler Road,Aylesbury,Bucks,,HP19 7QR,General Needs,House,1972,Rationalised,Natural gas (mains) +179 Fowler Road,Aylesbury,Bucks,,HP19 7QR,General Needs,House,1973,Rationalised,Natural gas (mains) +183 Fowler Road,Aylesbury,Bucks,,HP19 7QR,General Needs,House,1973,Rationalised,Natural gas (mains) +185 Fowler Road,Aylesbury,Bucks,,HP19 7QR,General Needs,House,1973,Rationalised,Natural gas (mains) +191 Fowler Road,Aylesbury,Bucks,,HP19 7QR,General Needs,Flat,1973,Rationalised,Natural gas (mains) +193 Fowler Road,Aylesbury,Bucks,,HP19 7QR,General Needs,Flat,1973,Rationalised,Natural gas (mains) +197 Fowler Road,Aylesbury,Bucks,,HP19 7QR,General Needs,House,1973,Rationalised,Natural gas (mains) +209 Fowler Road,Aylesbury,Bucks,,HP19 7QR,General Needs,House,1973,Rationalised,Natural gas (mains) +20 Somerville Way,Aylesbury,Bucks,,HP19 7QS,General Needs,House,1971,Rationalised,Natural gas (mains) +25 Somerville Way,Aylesbury,Bucks,,HP19 7QS,General Needs,House,1971,Rationalised,Natural gas (mains) +28 Somerville Way,Aylesbury,Bucks,,HP19 7QS,General Needs,House,1971,Rationalised,Natural gas (mains) +29 Somerville Way,Aylesbury,Bucks,,HP19 7QS,General Needs,Flat,1971,Rationalised,Natural gas (mains) +30 Somerville Way,Aylesbury,Bucks,,HP19 7QS,General Needs,Flat,1971,Rationalised,Natural gas (mains) +31 Somerville Way,Aylesbury,Bucks,,HP19 7QS,General Needs,Flat,1971,Rationalised,Natural gas (mains) +35 Somerville Way,Aylesbury,Bucks,,HP19 7QS,General Needs,House,1971,Rationalised,Natural gas (mains) +37 Somerville Way,Aylesbury,Bucks,,HP19 7QS,General Needs,House,1971,Rationalised,Natural gas (mains) +39 Somerville Way,Aylesbury,Bucks,,HP19 7QS,General Needs,House,1971,Rationalised,Natural gas (mains) +44 Somerville Way,Aylesbury,Bucks,,HP19 7QT,General Needs,Maisonette,1976,Rationalised,Natural gas (mains) +46 Somerville Way,Aylesbury,Bucks,,HP19 7QT,General Needs,Maisonette,1976,Rationalised,Natural gas (mains) +47 Somerville Way,Aylesbury,Bucks,,HP19 7QT,General Needs,Maisonette,1976,Rationalised,Natural gas (mains) +48 Somerville Way,Aylesbury,Bucks,,HP19 7QT,General Needs,House,1971,Rationalised,Natural gas (mains) +50 Somerville Way,Aylesbury,Bucks,,HP19 7QT,General Needs,Flat,1971,Rationalised,Natural gas (mains) +51 Somerville Way,Aylesbury,Bucks,,HP19 7QT,General Needs,Flat,1971,Rationalised,Natural gas (mains) +52 Somerville Way,Aylesbury,Bucks,,HP19 7QT,General Needs,Flat,1971,Rationalised,Natural gas (mains) +2 Stephenson Close,Aylesbury,Bucks,,HP19 7QU,General Needs,House,1972,Rationalised,Natural gas (mains) +4 Stephenson Close,Aylesbury,Bucks,,HP19 7QU,General Needs,House,1972,Rationalised,Natural gas (mains) +9 Stephenson Close,Aylesbury,Bucks,,HP19 7QU,General Needs,House,1972,Rationalised,Natural gas (mains) +10 Stephenson Close,Aylesbury,Bucks,,HP19 7QU,General Needs,House,1972,Rationalised,Natural gas (mains) +224 Fowler Road,Aylesbury,Bucks,,HP19 7QW,General Needs,Flat,1972,Rationalised,Natural gas (mains) +234 Fowler Road,Aylesbury,Bucks,,HP19 7QW,General Needs,Flat,1972,Rationalised,Natural gas (mains) +2 Rochester Place,Aylesbury,Bucks,,HP19 7QZ,General Needs,Flat,1972,Rationalised,Natural gas (mains) +4 Rochester Place,Aylesbury,Bucks,,HP19 7QZ,General Needs,Flat,1972,Rationalised,Natural gas (mains) +7 Rochester Place,Aylesbury,Bucks,,HP19 7QZ,General Needs,House,1972,Rationalised,Natural gas (mains) +8 Rochester Place,Aylesbury,Bucks,,HP19 7QZ,General Needs,House,1972,Rationalised,Natural gas (mains) +1 St Annes Road,Aylesbury,Bucks,,HP19 7RA,General Needs,Maisonette,1973,Rationalised,Natural gas (mains) +13 St Annes Road,Aylesbury,Bucks,,HP19 7RA,General Needs,Maisonette,1973,Rationalised,Natural gas (mains) +15 St Annes Road,Aylesbury,Bucks,,HP19 7RA,General Needs,Flat,1973,Rationalised,Natural gas (mains) +17 St Annes Road,Aylesbury,Bucks,,HP19 7RA,General Needs,Maisonette,1973,Rationalised,Natural gas (mains) +19 St Annes Road,Aylesbury,Bucks,,HP19 7RA,General Needs,Maisonette,1975,Rationalised,Natural gas (mains) +23 St Annes Road,Aylesbury,Bucks,,HP19 7RA,General Needs,Maisonette,1973,Rationalised,Natural gas (mains) +37 St Annes Road,Aylesbury,Bucks,,HP19 7RA,General Needs,Maisonette,1973,Rationalised,Natural gas (mains) +41 St Annes Road,Aylesbury,Bucks,,HP19 7RA,General Needs,Maisonette,1973,Rationalised,Natural gas (mains) +43 St Annes Road,Aylesbury,Bucks,,HP19 7RA,General Needs,Maisonette,1973,Rationalised,Natural gas (mains) +45 St Annes Road,Aylesbury,Bucks,,HP19 7RA,General Needs,Flat,1973,Rationalised,Natural gas (mains) +47 St Annes Road,Aylesbury,Bucks,,HP19 7RA,General Needs,Maisonette,1973,Rationalised,Natural gas (mains) +4 St Annes Road,Aylesbury,Bucks,,HP19 7RB,General Needs,House,1973,Rationalised,Natural gas (mains) +16 St Annes Road,Aylesbury,Bucks,,HP19 7RB,General Needs,House,1973,Rationalised,Natural gas (mains) +18 St Annes Road,Aylesbury,Bucks,,HP19 7RB,General Needs,House,1973,Rationalised,Natural gas (mains) +24 St Annes Road,Aylesbury,Bucks,,HP19 7RB,General Needs,House,1972,Rationalised,Natural gas (mains) +26 St Annes Road,Aylesbury,Bucks,,HP19 7RB,General Needs,House,1973,Rationalised,Natural gas (mains) +34 St Annes Road,Aylesbury,Bucks,,HP19 7RB,General Needs,Flat,1973,Rationalised,Natural gas (mains) +40 St Annes Road,Aylesbury,Bucks,,HP19 7RB,General Needs,House,1972,Rationalised,Natural gas (mains) +55 St Annes Road,Aylesbury,Bucks,,HP19 7RB,General Needs,House,1973,Rationalised,Natural gas (mains) +58 St Annes Road,Aylesbury,Bucks,,HP19 7RB,General Needs,House,1972,Rationalised,Natural gas (mains) +61 St Annes Road,Aylesbury,Bucks,,HP19 7RB,General Needs,Flat,1973,Rationalised,Natural gas (mains) +63 St Annes Road,Aylesbury,Bucks,,HP19 7RB,General Needs,Flat,1973,Rationalised,Natural gas (mains) +65 St Annes Road,Aylesbury,Bucks,,HP19 7RB,General Needs,Flat,1973,Rationalised,Natural gas (mains) +83 St Annes Road,Aylesbury,Bucks,,HP19 7RB,General Needs,House,1972,Rationalised,Natural gas (mains) +62 St Annes Road,Aylesbury,Bucks,,HP19 7RD,General Needs,House,1972,Rationalised,Natural gas (mains) +64 St Annes Road,Aylesbury,Bucks,,HP19 7RD,General Needs,House,1972,Rationalised,Natural gas (mains) +78 St Annes Road,Aylesbury,Bucks,,HP19 7RD,General Needs,House,1972,Rationalised,Natural gas (mains) +8 St Catherines Court,Aylesbury,Bucks,,HP19 7RE,General Needs,House,1973,Rationalised,Natural gas (mains) +11 St Catherines Court,Aylesbury,Bucks,,HP19 7RE,General Needs,House,1972,Rationalised,Natural gas (mains) +13 St Catherines Court,Aylesbury,Bucks,,HP19 7RE,General Needs,House,1973,Rationalised,Natural gas (mains) +19 St Catherines Court,Aylesbury,Bucks,,HP19 7RE,General Needs,House,1973,Rationalised,Natural gas (mains) +21 St Catherines Court,Aylesbury,Bucks,,HP19 7RE,General Needs,House,1972,Rationalised,Natural gas (mains) +22 St Catherines Court,Aylesbury,Bucks,,HP19 7RE,General Needs,House,1972,Rationalised,Natural gas (mains) +23 St Catherines Court,Aylesbury,Bucks,,HP19 7RE,General Needs,House,1972,Rationalised,Natural gas (mains) +26 St Catherines Court,Aylesbury,Bucks,,HP19 7RE,General Needs,House,1972,Rationalised,Natural gas (mains) +31 St Catherines Court,Aylesbury,Bucks,,HP19 7RE,General Needs,House,1972,Rationalised,Natural gas (mains) +33 St Catherines Court,Aylesbury,Bucks,,HP19 7RE,General Needs,House,1972,Rationalised,Natural gas (mains) +35 St Catherines Court,Aylesbury,Bucks,,HP19 7RE,General Needs,House,1972,Rationalised,Natural gas (mains) +36 St Catherines Court,Aylesbury,Bucks,,HP19 7RE,General Needs,House,1973,Rationalised,Natural gas (mains) +38 St Catherines Court,Aylesbury,Bucks,,HP19 7RE,General Needs,House,1972,Rationalised,Natural gas (mains) +16 St Edmunds Close,Aylesbury,Bucks,,HP19 7RF,General Needs,House,1972,Rationalised,Natural gas (mains) +17 St Hildas Court,Aylesbury,Bucks,,HP19 7RG,General Needs,House,1972,Rationalised,Natural gas (mains) +23 St Hildas Court,Aylesbury,Bucks,,HP19 7RG,General Needs,House,1972,Rationalised,Natural gas (mains) +29 St Hildas Court,Aylesbury,Bucks,,HP19 7RG,General Needs,House,1972,Rationalised,Natural gas (mains) +15 St Anthonys Close,Aylesbury,Bucks,,HP19 7RQ,General Needs,House,1972,Rationalised,Natural gas (mains) +19 St Anthonys Close,Aylesbury,Bucks,,HP19 7RQ,General Needs,House,1972,Rationalised,Natural gas (mains) +23 St Anthonys Close,Aylesbury,Bucks,,HP19 7RQ,General Needs,House,1972,Rationalised,Natural gas (mains) +1 Rothschild House,Wycliffe End,Aylesbury,Bucks,HP19 7XB,General Needs,Flat,1978,Traditional,Radiators - communal gas boiler +8 Rothschild House,Wycliffe End,Aylesbury,Bucks,HP19 7XB,General Needs,Flat,1978,Traditional,Radiators - communal gas boiler +3 Rothschild House,Wycliffe End,Aylesbury,Bucks,HP19 7XB,General Needs,Flat,1978,Traditional,Radiators - communal gas boiler +7 Rothschild House,Wycliffe End,Aylesbury,Bucks,HP19 7XB,General Needs,Flat,1978,Traditional,Radiators - communal gas boiler +6 Rothschild House,Wycliffe End,Aylesbury,Bucks,HP19 7XB,General Needs,Flat,1978,Traditional,Radiators - communal gas boiler +5 Rothschild House,Wycliffe End,Aylesbury,Bucks,HP19 7XB,General Needs,Flat,1978,Traditional,Radiators - communal gas boiler +9 Rothschild House,Wycliffe End,Aylesbury,Bucks,HP19 7XB,General Needs,Flat,1978,Traditional,Radiators - communal gas boiler +10 Rothschild House,Wycliffe End,Aylesbury,Bucks,HP19 7XB,General Needs,Flat,1978,Traditional,Radiators - communal gas boiler +12 Rothschild House,Wycliffe End,Aylesbury,Bucks,HP19 7XB,General Needs,Flat,1978,Traditional,Radiators - communal gas boiler +14 Rothschild House,Wycliffe End,Aylesbury,Bucks,HP19 7XB,General Needs,Flat,1978,Traditional,Radiators - communal gas boiler +22 Rothschild House,Wycliffe End,Aylesbury,Bucks,HP19 7XB,General Needs,Flat,1978,Traditional,Radiators - communal gas boiler +18 Rothschild House,Wycliffe End,Aylesbury,Bucks,HP19 7XB,General Needs,Flat,1978,Traditional,Radiators - communal gas boiler +21 Rothschild House,Wycliffe End,Aylesbury,Bucks,HP19 7XB,General Needs,Flat,1978,Traditional,Radiators - communal gas boiler +19 Rothschild House,Wycliffe End,Aylesbury,Bucks,HP19 7XB,General Needs,Flat,1978,Traditional,Radiators - communal gas boiler +24 Rothschild House,Wycliffe End,Aylesbury,Bucks,HP19 7XB,General Needs,Flat,1978,Traditional,Radiators - communal gas boiler +23 Rothschild House,Wycliffe End,Aylesbury,Bucks,HP19 7XB,General Needs,Flat,1978,Traditional,Radiators - communal gas boiler +15 Rothschild House,Wycliffe End,Aylesbury,Bucks,HP19 7XB,General Needs,Flat,1978,Traditional,Radiators - communal gas boiler +16 Rothschild House,Wycliffe End,Aylesbury,,HP19 7XB,General Needs,Flat,1978,Traditional,Radiators - communal gas boiler +20 Rothschild House,Wycliffe End,Aylesbury,,HP19 7XB,General Needs,Flat,1978,Traditional,Radiators - communal gas boiler +27 Roald Dahl House,Wycliffe End,Aylesbury,Bucks,HP19 7XD,General Needs,Flat,1978,Traditional,Radiators - communal gas boiler +24 Roald Dahl House,Wycliffe End,Aylesbury,Bucks,HP19 7XD,General Needs,Flat,1978,Traditional,Radiators - communal gas boiler +26 Roald Dahl House,Wycliffe End,Aylesbury,Bucks,HP19 7XD,General Needs,Flat,1978,Traditional,Radiators - communal gas boiler +32 Roald Dahl House,Wycliffe End,Aylesbury,Bucks,HP19 7XD,General Needs,Flat,1978,Traditional,Radiators - communal gas boiler +29 Roald Dahl House,Wycliffe End,Aylesbury,Bucks,HP19 7XD,General Needs,Flat,1978,Traditional,Radiators - communal gas boiler +34 Roald Dahl House,Wycliffe End,Aylesbury,Bucks,HP19 7XD,General Needs,Flat,1978,Traditional,Radiators - communal gas boiler +33 Roald Dahl House,Wycliffe End,Aylesbury,Bucks,HP19 7XD,General Needs,Flat,1978,Traditional,Radiators - communal gas boiler +14 Roald Dahl House,Wycliffe End,Aylesbury,Bucks,HP19 7XD,General Needs,Flat,1978,Traditional,Radiators - communal gas boiler +9 Roald Dahl House,Wycliffe End,Aylesbury,Bucks,HP19 7XD,General Needs,Flat,1978,Traditional,Radiators - communal gas boiler +12 Roald Dahl House,Wycliffe End,Aylesbury,Bucks,HP19 7XD,General Needs,Flat,1978,Traditional,Radiators - communal gas boiler +11 Roald Dahl House,Wycliffe End,Aylesbury,Bucks,HP19 7XD,General Needs,Flat,1978,Traditional,Radiators - communal gas boiler +19 Roald Dahl House,Wycliffe End,Aylesbury,Bucks,HP19 7XD,General Needs,Flat,1978,Traditional,Radiators - communal gas boiler +15 Roald Dahl House,Wycliffe End,Aylesbury,Bucks,HP19 7XD,General Needs,Flat,1978,Traditional,Radiators - communal gas boiler +16 Roald Dahl House,Wycliffe End,Aylesbury,Bucks,HP19 7XD,General Needs,Flat,1978,Traditional,Radiators - communal gas boiler +17 Roald Dahl House,Wycliffe End,Aylesbury,Bucks,HP19 7XD,General Needs,Flat,1978,Traditional,Radiators - communal gas boiler +20 Roald Dahl House,Wycliffe End,Aylesbury,Bucks,HP19 7XD,General Needs,Flat,1978,Traditional,Radiators - communal gas boiler +21 Roald Dahl House,Wycliffe End,Aylesbury,Bucks,HP19 7XD,General Needs,Flat,1978,Traditional,Radiators - communal gas boiler +3 Roald Dahl House,Wycliffe End,Aylesbury,Bucks,HP19 7XD,General Needs,Flat,1978,Traditional,Radiators - communal gas boiler +2 Roald Dahl House,Wycliffe End,Aylesbury,Bucks,HP19 7XD,General Needs,Flat,1978,Traditional,Radiators - communal gas boiler +1 Roald Dahl House,Wycliffe End,Aylesbury,Bucks,HP19 7XD,General Needs,Flat,1978,Traditional,Radiators - communal gas boiler +6 Roald Dahl House,Wycliffe End,Aylesbury,Bucks,HP19 7XD,General Needs,Flat,1978,Traditional,Radiators - communal gas boiler +5 Roald Dahl House,Wycliffe End,Aylesbury,Bucks,HP19 7XD,General Needs,Flat,1978,Traditional,Radiators - communal gas boiler +4 Roald Dahl House,Wycliffe End,Aylesbury,Bucks,HP19 7XD,General Needs,Flat,1978,Traditional,Radiators - communal gas boiler +7 Roald Dahl House,Wycliffe End,Aylesbury,Bucks,HP19 7XD,General Needs,Flat,1978,Traditional,Radiators - communal gas boiler +8 Roald Dahl House,Wycliffe End,Aylesbury,Bucks,HP19 7XD,General Needs,Flat,1978,Traditional,Radiators - communal gas boiler +24 Shelley House,Wycliffe End,Aylesbury,Bucks,HP19 7XE,General Needs,Flat,1978,Traditional,Radiators - communal gas boiler +27 Shelley House,Wycliffe End,Aylesbury,Bucks,HP19 7XE,General Needs,Flat,1978,Traditional,Radiators - communal gas boiler +25 Shelley House,Wycliffe End,Aylesbury,Bucks,HP19 7XE,General Needs,Flat,1978,Traditional,Radiators - communal gas boiler +32 Shelley House,Wycliffe End,Aylesbury,Bucks,HP19 7XE,General Needs,Flat,1978,Traditional,Radiators - communal gas boiler +28 Shelley House,Wycliffe End,Aylesbury,Bucks,HP19 7XE,General Needs,Flat,1978,Traditional,Radiators - communal gas boiler +31 Shelley House,Wycliffe End,Aylesbury,Bucks,HP19 7XE,General Needs,Flat,1978,Traditional,Radiators - communal gas boiler +29 Shelley House,Wycliffe End,Aylesbury,Bucks,HP19 7XE,General Needs,Flat,1978,Traditional,Radiators - communal gas boiler +33 Shelley House,Wycliffe End,Aylesbury,Bucks,HP19 7XE,General Needs,Flat,1978,Traditional,Radiators - communal gas boiler +35 Shelley House,Wycliffe End,Aylesbury,Bucks,HP19 7XE,General Needs,Flat,1978,Traditional,Radiators - communal gas boiler +15 Shelley House,Wycliffe End,Aylesbury,Bucks,HP19 7XE,General Needs,Flat,1978,Traditional,Radiators - communal gas boiler +17 Shelley House,Wycliffe End,Aylesbury,Bucks,HP19 7XE,General Needs,Flat,1978,Traditional,Radiators - communal gas boiler +16 Shelley House,Wycliffe End,Aylesbury,Bucks,HP19 7XE,General Needs,Flat,1978,Traditional,Radiators - communal gas boiler +18 Shelley House,Wycliffe End,Aylesbury,Bucks,HP19 7XE,General Needs,Flat,1978,Traditional,Radiators - communal gas boiler +19 Shelley House,Wycliffe End,Aylesbury,Bucks,HP19 7XE,General Needs,Flat,1978,Traditional,Radiators - communal gas boiler +20 Shelley House,Wycliffe End,Aylesbury,Bucks,HP19 7XE,General Needs,Flat,1978,Traditional,Radiators - communal gas boiler +22 Shelley House,Wycliffe End,Aylesbury,Bucks,HP19 7XE,General Needs,Flat,1978,Traditional,Radiators - communal gas boiler +5 Shelley House,Wycliffe End,Aylesbury,Bucks,HP19 7XE,General Needs,Flat,1978,Traditional,Radiators - communal gas boiler +2 Shelley House,Wycliffe End,Aylesbury,Bucks,HP19 7XE,General Needs,Flat,1978,Traditional,Radiators - communal gas boiler +4 Shelley House,Wycliffe End,Aylesbury,Bucks,HP19 7XE,General Needs,Flat,1978,Traditional,Radiators - communal gas boiler +6 Shelley House,Wycliffe End,Aylesbury,Bucks,HP19 7XE,General Needs,Flat,1978,Traditional,Radiators - communal gas boiler +10 Shelley House,Wycliffe End,Aylesbury,Bucks,HP19 7XE,General Needs,Flat,1978,Traditional,Radiators - communal gas boiler +9 Shelley House,Wycliffe End,Aylesbury,Bucks,HP19 7XE,General Needs,Flat,1978,Traditional,Radiators - communal gas boiler +12 Shelley House,Wycliffe End,Aylesbury,Bucks,HP19 7XE,General Needs,Flat,1978,Traditional,Radiators - communal gas boiler +11 Shelley House,Wycliffe End,Aylesbury,Bucks,HP19 7XE,General Needs,Flat,1978,Traditional,Radiators - communal gas boiler +35 Enid Blyton House,Wycliffe End,Aylesbury,Bucks,HP19 7XF,General Needs,Flat,1978,Traditional,Radiators - communal gas boiler +30 Enid Blyton House,Wycliffe End,Aylesbury,Bucks,HP19 7XF,General Needs,Flat,1978,Traditional,Radiators - communal gas boiler +42 Enid Blyton House,Wycliffe End,Aylesbury,Bucks,HP19 7XF,General Needs,Flat,1978,Traditional,Radiators - communal gas boiler +36 Enid Blyton House,Wycliffe End,Aylesbury,Bucks,HP19 7XF,General Needs,Flat,1978,Traditional,Radiators - communal gas boiler +41 Enid Blyton House,Wycliffe End,Aylesbury,Bucks,HP19 7XF,General Needs,Flat,1978,Traditional,Radiators - communal gas boiler +38 Enid Blyton House,Wycliffe End,Aylesbury,Bucks,HP19 7XF,General Needs,Flat,1978,Traditional,Radiators - communal gas boiler +39 Enid Blyton House,Wycliffe End,Aylesbury,Bucks,HP19 7XF,General Needs,Flat,1978,Traditional,Radiators - communal gas boiler +43 Enid Blyton House,Wycliffe End,Aylesbury,Bucks,HP19 7XF,General Needs,Flat,1978,Traditional,Radiators - communal gas boiler +44 Enid Blyton House,Wycliffe End,Aylesbury,Bucks,HP19 7XF,General Needs,Flat,1978,Traditional,Radiators - communal gas boiler +45 Enid Blyton House,Wycliffe End,Aylesbury,Bucks,HP19 7XF,General Needs,Flat,1978,Traditional,Radiators - communal gas boiler +15 Enid Blyton House,Wycliffe End,Aylesbury,Bucks,HP19 7XF,General Needs,Flat,1978,Traditional,Radiators - communal gas boiler +16 Enid Blyton House,Wycliffe End,Aylesbury,Bucks,HP19 7XF,General Needs,Flat,1978,Traditional,Radiators - communal gas boiler +19 Enid Blyton House,Wycliffe End,Aylesbury,Bucks,HP19 7XF,General Needs,Flat,1978,Traditional,Radiators - communal gas boiler +17 Enid Blyton House,Wycliffe End,Aylesbury,Bucks,HP19 7XF,General Needs,Flat,1978,Traditional,Radiators - communal gas boiler +26 Enid Blyton House,Wycliffe End,Aylesbury,Bucks,HP19 7XF,General Needs,Flat,1978,Traditional,Radiators - communal gas boiler +23 Enid Blyton House,Wycliffe End,Aylesbury,Bucks,HP19 7XF,General Needs,Flat,1978,Traditional,Radiators - communal gas boiler +29 Enid Blyton House,Wycliffe End,Aylesbury,Bucks,HP19 7XF,General Needs,Flat,1978,Traditional,Radiators - communal gas boiler +27 Enid Blyton House,Wycliffe End,Aylesbury,Bucks,HP19 7XF,General Needs,Flat,1978,Traditional,Radiators - communal gas boiler +1 Enid Blyton House,Wycliffe End,Aylesbury,Bucks,HP19 7XG,General Needs,Flat,1978,Traditional,Radiators - communal gas boiler +2 Enid Blyton House,Wycliffe End,Aylesbury,Bucks,HP19 7XG,General Needs,Flat,1978,Traditional,Radiators - communal gas boiler +4 Enid Blyton House,Wycliffe End,Aylesbury,Bucks,HP19 7XG,General Needs,Flat,1978,Traditional,Radiators - communal gas boiler +6 Enid Blyton House,Wycliffe End,Aylesbury,Bucks,HP19 7XG,General Needs,Flat,1978,Traditional,Radiators - communal gas boiler +10 Enid Blyton House,Wycliffe End,Aylesbury,Bucks,HP19 7XG,General Needs,Flat,1978,Traditional,Radiators - communal gas boiler +7 Enid Blyton House,Wycliffe End,Aylesbury,Bucks,HP19 7XG,General Needs,Flat,1978,Traditional,Radiators - communal gas boiler +9 Enid Blyton House,Wycliffe End,Aylesbury,Bucks,HP19 7XG,General Needs,Flat,1978,Traditional,Radiators - communal gas boiler +14 Enid Blyton House,Wycliffe End,Aylesbury,Bucks,HP19 7XG,General Needs,Flat,1978,Traditional,Radiators - communal gas boiler +12 Enid Blyton House,Wycliffe End,Aylesbury,Bucks,HP19 7XG,General Needs,Flat,1978,Traditional,Radiators - communal gas boiler +11 Enid Blyton House,Wycliffe End,Aylesbury,Bucks,HP19 7XG,General Needs,Flat,1978,Traditional,Radiators - communal gas boiler +17 Anne Boleyn House,Wycliffe End,Aylesbury,Bucks,HP19 7XQ,General Needs,Flat,1978,Traditional,Radiators - communal gas boiler +15 Anne Boleyn House,Wycliffe End,Aylesbury,Bucks,HP19 7XQ,General Needs,Flat,1978,Traditional,Radiators - communal gas boiler +3 Anne Boleyn House,Wycliffe End,Aylesbury,Bucks,HP19 7XQ,General Needs,Flat,1978,Traditional,Radiators - communal gas boiler +18 Anne Boleyn House,Wycliffe End,Aylesbury,Bucks,HP19 7XQ,General Needs,Flat,1978,Traditional,Radiators - communal gas boiler +20 Anne Boleyn House,Wycliffe End,Aylesbury,Bucks,HP19 7XQ,General Needs,Flat,1978,Traditional,Radiators - communal gas boiler +7 Anne Boleyn House,Wycliffe End,Aylesbury,Bucks,HP19 7XQ,General Needs,Flat,1978,Traditional,Radiators - communal gas boiler +21 Anne Boleyn House,Wycliffe End,Aylesbury,Bucks,HP19 7XQ,General Needs,Flat,1978,Traditional,Radiators - communal gas boiler +22 Anne Boleyn House,Wycliffe End,Aylesbury,Bucks,HP19 7XQ,General Needs,Flat,1978,Traditional,Radiators - communal gas boiler +4 Anne Boleyn House,Wycliffe End,Aylesbury,Bucks,HP19 7XQ,General Needs,Flat,1978,Traditional,Radiators - communal gas boiler +16 Anne Boleyn House,Wycliffe End,Aylesbury,Bucks,HP19 7XQ,General Needs,Flat,1978,Traditional,Radiators - communal gas boiler +5 Anne Boleyn House,Wycliffe End,Aylesbury,Bucks,HP19 7XQ,General Needs,Flat,1978,Traditional,Radiators - communal gas boiler +10 Anne Boleyn House,Wycliffe End,Aylesbury,Bucks,HP19 7XQ,General Needs,Flat,1978,Traditional,Radiators - communal gas boiler +6 Anne Boleyn House,Wycliffe End,Aylesbury,Bucks,HP19 7XQ,General Needs,Flat,1978,Traditional,Radiators - communal gas boiler +9 Anne Boleyn House,Wycliffe End,Aylesbury,Bucks,HP19 7XQ,General Needs,Flat,1978,Traditional,Radiators - communal gas boiler +19 Anne Boleyn House,Wycliffe End,Aylesbury,Bucks,HP19 7XQ,General Needs,Flat,1978,Traditional,Radiators - communal gas boiler +8 Anne Boleyn House,Wycliffe End,Aylesbury,Bucks,HP19 7XQ,General Needs,Flat,1978,Traditional,Radiators - communal gas boiler +12 Anne Boleyn House,Wycliffe End,Aylesbury,Bucks,HP19 7XQ,General Needs,Flat,1978,Traditional,Radiators - communal gas boiler +1 Goodwin Road,Aylesbury,Bucks,,HP19 8EE,General Needs,House,1954,Traditional,Natural gas (mains) +2 Goodwin Road,Aylesbury,Bucks,,HP19 8EE,General Needs,House,1954,Traditional,Natural gas (mains) +2 Palmer Avenue,Aylesbury,Bucks,,HP19 8EF,General Needs,House,1956,Traditional,Natural gas (mains) +6 Palmer Avenue,Aylesbury,Bucks,,HP19 8EF,General Needs,House,1956,Traditional,Natural gas (mains) +17 Palmer Avenue,Aylesbury,Bucks,,HP19 8EF,General Needs,House,1956,Traditional,Natural gas (mains) +18 Palmer Avenue,Aylesbury,Bucks,,HP19 8EF,General Needs,House,1956,Traditional,Natural gas (mains) +20 Palmer Avenue,Aylesbury,Bucks,,HP19 8EF,General Needs,House,1956,Traditional,Natural gas (mains) +24 Palmer Avenue,Aylesbury,Bucks,,HP19 8EF,General Needs,House,1956,Traditional,Natural gas (mains) +25 Palmer Avenue,Aylesbury,Bucks,,HP19 8EF,General Needs,House,1956,Traditional,Natural gas (mains) +41 Palmer Avenue,Aylesbury,Bucks,,HP19 8EF,General Needs,House,1956,Traditional,Natural gas (mains) +1 Gatehouse Road,Aylesbury,Bucks,,HP19 8EH,General Needs,House,1954,Traditional,Natural gas (mains) +8 Gatehouse Road,Aylesbury,Bucks,,HP19 8EH,General Needs,House,1954,Traditional,Natural gas (mains) +10 Gatehouse Road,Aylesbury,Bucks,,HP19 8EH,General Needs,House,1954,Traditional,Natural gas (mains) +12 Gatehouse Road,Aylesbury,Bucks,,HP19 8EH,General Needs,House,1954,Traditional,Natural gas (mains) +21 Gatehouse Road,Aylesbury,Bucks,,HP19 8EH,General Needs,House,1954,Traditional,Natural gas (mains) +24 Gatehouse Road,Aylesbury,Bucks,,HP19 8EH,General Needs,House,1954,Traditional,Natural gas (mains) +12A Gatehouse Road,Aylesbury,Bucks,,HP19 8EH,General Needs,House,2018,Traditional,Natural gas (mains) +53 Oxford Road,Aylesbury,Bucks,,HP19 8EQ,General Needs,House,1956,Traditional,Natural gas (mains) +59 Oxford Road,Aylesbury,Bucks,,HP19 8EQ,General Needs,House,1954,Traditional,Natural gas (mains) +16 Eliot Close,Aylesbury,Bucks,,HP19 8JB,General Needs,House,1980,Traditional,Natural gas (mains) +12 Goldswain End,Aylesbury,,,HP19 8JP,General Needs,House,2016,Traditional,Natural gas (mains) +14 Goldswain End,Aylesbury,,,HP19 8JP,General Needs,Flat,2016,Traditional,Natural gas (mains) +16 Goldswain End,Aylesbury,,,HP19 8JP,General Needs,Flat,2016,Traditional,Natural gas (mains) +17 Goldswain End,Aylesbury,,,HP19 8JP,General Needs,House,2016,Traditional,Natural gas (mains) +18 Goldswain End,Aylesbury,,,HP19 8JP,General Needs,Flat,2016,Traditional,Natural gas (mains) +19 Goldswain End,Aylesbury,,,HP19 8JP,General Needs,House,2016,Traditional,Natural gas (mains) +20 Goldswain End,Aylesbury,,,HP19 8JP,General Needs,Flat,2016,Traditional,Natural gas (mains) +21 Goldswain End,Aylesbury,,,HP19 8JP,General Needs,House,2016,Traditional,Natural gas (mains) +22 Goldswain End,Aylesbury,,,HP19 8JP,General Needs,Flat,2016,Traditional,Natural gas (mains) +23 Goldswain End,Aylesbury,,,HP19 8JP,General Needs,House,2016,Traditional,Natural gas (mains) +24 Goldswain End,Aylesbury,,,HP19 8JP,General Needs,Flat,2016,Traditional,Natural gas (mains) +25 Goldswain End,Aylesbury,,,HP19 8JP,General Needs,Flat,2016,Traditional,Natural gas (mains) +26 Goldswain End,Aylesbury,,,HP19 8JP,General Needs,Flat,2016,Traditional,Natural gas (mains) +27 Goldswain End,Aylesbury,,,HP19 8JP,General Needs,Flat,2016,Traditional,Natural gas (mains) +28 Goldswain End,Aylesbury,,,HP19 8JP,General Needs,Flat,2016,Traditional,Natural gas (mains) +29 Goldswain End,Aylesbury,Bucks,,HP19 8JP,General Needs,Flat,2016,Traditional,Natural gas (mains) +30 Goldswain End,Aylesbury,,,HP19 8JP,General Needs,Flat,2016,Traditional,Natural gas (mains) +31 Goldswain End,Aylesbury,,,HP19 8JP,General Needs,Flat,2016,Traditional,Natural gas (mains) +32 Goldswain End,Aylesbury,,,HP19 8JP,General Needs,Flat,2016,Traditional,Natural gas (mains) +33 Goldswain End,Aylesbury,,,HP19 8JP,General Needs,Flat,2016,Traditional,Natural gas (mains) +34 Goldswain End,Aylesbury,,,HP19 8JP,General Needs,Flat,2016,Traditional,Natural gas (mains) +35 Goldswain End,Aylesbury,Bucks,,HP19 8JP,General Needs,Flat,2016,Traditional,Natural gas (mains) +36 Goldswain End,Aylesbury,,,HP19 8JP,General Needs,Flat,2016,Traditional,Natural gas (mains) +37 Goldswain End,Aylesbury,,,HP19 8JP,General Needs,Flat,2016,Traditional,Natural gas (mains) +38 Goldswain End,Aylesbury,,,HP19 8JP,General Needs,Flat,2016,Traditional,Natural gas (mains) +39 Goldswain End,Aylesbury,,,HP19 8JP,General Needs,Flat,2016,Traditional,Natural gas (mains) +40 Goldswain End,Aylesbury,,,HP19 8JP,General Needs,Flat,2016,Traditional,Natural gas (mains) +41 Goldswain End,Aylesbury,,,HP19 8JP,General Needs,Flat,2016,Traditional,Natural gas (mains) +42 Goldswain End,Aylesbury,,,HP19 8JP,General Needs,Flat,2016,Traditional,Natural gas (mains) +43 Goldswain End,Aylesbury,,,HP19 8JP,General Needs,Flat,2016,Traditional,Natural gas (mains) +45 Goldswain End,Aylesbury,,,HP19 8JP,General Needs,Flat,2016,Traditional,Natural gas (mains) +47 Goldswain End,Aylesbury,,,HP19 8JP,General Needs,Flat,2016,Traditional,Natural gas (mains) +49 Goldswain End,Aylesbury,,,HP19 8JP,General Needs,Flat,2016,Traditional,Natural gas (mains) +51 Goldswain End,Aylesbury,,,HP19 8JP,General Needs,Flat,2016,Traditional,Natural gas (mains) +53 Goldswain End,Aylesbury,,,HP19 8JP,General Needs,Flat,2016,Traditional,Natural gas (mains) +60 Oxford Road,Aylesbury,Bucks,,HP19 8RH,General Needs,House,1921,Traditional,Natural gas (mains) +64 Oxford Road,Aylesbury,Bucks,,HP19 8RH,General Needs,House,1921,Traditional,Natural gas (mains) +70 Oxford Road,Aylesbury,Bucks,,HP19 8RH,General Needs,House,1921,Traditional,Natural gas (mains) +72 Oxford Road,Aylesbury,Bucks,,HP19 8RH,General Needs,House,1921,Traditional,Natural gas (mains) +74 Oxford Road,Aylesbury,Bucks,,HP19 8RH,General Needs,House,1921,Traditional,Natural gas (mains) +76 Oxford Road,Aylesbury,Bucks,,HP19 8RH,General Needs,House,1921,Traditional,Natural gas (mains) +80 Oxford Road,Aylesbury,Bucks,,HP19 8RH,General Needs,House,1921,Traditional,Natural gas (mains) +82 Oxford Road,Aylesbury,Bucks,,HP19 8RH,General Needs,House,1921,Traditional,Natural gas (mains) +86 Oxford Road,Aylesbury,Bucks,,HP19 8RH,General Needs,House,1921,Traditional,Natural gas (mains) +88 Oxford Road,Aylesbury,Bucks,,HP19 8RH,General Needs,House,1921,Traditional,Natural gas (mains) +96 Oxford Road,Aylesbury,Bucks,,HP19 8RH,General Needs,House,1921,Traditional,Natural gas (mains) +98 Oxford Road,Aylesbury,Bucks,,HP19 8RH,General Needs,House,1921,Traditional,Natural gas (mains) +100 Oxford Road,Aylesbury,Bucks,,HP19 8RH,General Needs,House,1921,Traditional,Natural gas (mains) +73 Oxford Road,Aylesbury,Bucks,,HP19 8RL,General Needs,House,1954,Traditional,Natural gas (mains) +1 Brenda's Way,Aylesbury,,,HP19 9EA,General Needs,House,2018,Traditional,Natural gas (mains) +2 Brenda's Way,Aylesbury,Bucks,,HP19 9EA,General Needs,House,2018,Traditional,Natural gas (mains) +3 Brenda's Way,Aylesbury,Bucks,,HP19 9EA,General Needs,House,2018,Traditional,Natural gas (mains) +4 Brenda's Way,Aylesbury,,,HP19 9EA,General Needs,House,2018,Traditional,Natural gas (mains) +5 Brenda's Way,Aylesbury,,,HP19 9EA,General Needs,House,2018,Traditional,Natural gas (mains) +6 Brenda's Way,Aylesbury,,,HP19 9EA,General Needs,House,2018,Traditional,Natural gas (mains) +7 Brenda's Way,Aylesbury,,,HP19 9EA,General Needs,House,2018,Traditional,Natural gas (mains) +8 Brenda's Way,Aylesbury,,,HP19 9EA,General Needs,House,2018,Traditional,Natural gas (mains) +9 Brenda's Way,Aylesbury,,,HP19 9EA,General Needs,House,2018,Traditional,Natural gas (mains) +10 Brenda's Way,Aylesbury,,,HP19 9EA,General Needs,House,2018,Traditional,Natural gas (mains) +11 Brenda's Way,Aylesbury,,,HP19 9EA,General Needs,House,2018,Traditional,Natural gas (mains) +12 Brenda's Way,Aylesbury,,,HP19 9EA,General Needs,House,2018,Traditional,Natural gas (mains) +14 Brenda's Way,Aylesbury,,,HP19 9EA,General Needs,House,2018,Traditional,Natural gas (mains) +15 Brenda's Way,Aylesbury,,,HP19 9EA,General Needs,Bungalow,2018,Traditional,Natural gas (mains) +1 Ayrshire Close,Aylesbury,Bucks,,HP19 9GN,General Needs,Bungalow,1990,Traditional,Natural gas (mains) +2 Ayrshire Close,Aylesbury,Bucks,,HP19 9GN,General Needs,House,1990,Traditional,Natural gas (mains) +3 Ayrshire Close,Aylesbury,Bucks,,HP19 9GN,General Needs,Bungalow,1990,Traditional,Natural gas (mains) +5 Ayrshire Close,Aylesbury,Bucks,,HP19 9GN,General Needs,House,1990,Traditional,Natural gas (mains) +7 Ayrshire Close,Aylesbury,Bucks,,HP19 9GN,General Needs,House,1990,Traditional,Natural gas (mains) +9 Ayrshire Close,Aylesbury,Bucks,,HP19 9GN,General Needs,House,1990,Traditional,Natural gas (mains) +10 Ayrshire Close,Aylesbury,Bucks,,HP19 9GN,General Needs,House,1990,Traditional,Natural gas (mains) +11 Ayrshire Close,Aylesbury,Bucks,,HP19 9GN,General Needs,House,1990,Traditional,Natural gas (mains) +12 Ayrshire Close,Aylesbury,Bucks,,HP19 9GN,General Needs,House,1990,Traditional,Natural gas (mains) +14 Ayrshire Close,Aylesbury,Bucks,,HP19 9GN,General Needs,House,1990,Traditional,Natural gas (mains) +17 Ayrshire Close,Aylesbury,Bucks,,HP19 9GN,General Needs,House,1990,Traditional,Natural gas (mains) +19 Ayrshire Close,Aylesbury,Bucks,,HP19 9GN,General Needs,House,1990,Traditional,Natural gas (mains) +21 Ayrshire Close,Aylesbury,Bucks,,HP19 9GN,General Needs,House,1990,Traditional,Natural gas (mains) +22 Ayrshire Close,Aylesbury,Bucks,,HP19 9GN,General Needs,House,1990,Traditional,Natural gas (mains) +23 Ayrshire Close,Aylesbury,Bucks,,HP19 9GN,General Needs,House,1990,Traditional,Natural gas (mains) +25 Ayrshire Close,Aylesbury,Bucks,,HP19 9GN,General Needs,House,1990,Traditional,Natural gas (mains) +27 Ayrshire Close,Aylesbury,Bucks,,HP19 9GN,General Needs,House,1990,Traditional,Natural gas (mains) +39 Ayrshire Close,Aylesbury,Bucks,,HP19 9GN,General Needs,House,1990,Traditional,Natural gas (mains) +1 Angus Road,Aylesbury,Bucks,,HP19 9GP,General Needs,House,1990,Traditional,Natural gas (mains) +2 Angus Road,Aylesbury,Bucks,,HP19 9GP,General Needs,House,1990,Traditional,Natural gas (mains) +3 Angus Road,Aylesbury,Bucks,,HP19 9GP,General Needs,Bungalow,1990,Traditional,Natural gas (mains) +4 Angus Road,Aylesbury,Bucks,,HP19 9GP,General Needs,Bungalow,1990,Traditional,Natural gas (mains) +5 Angus Road,Aylesbury,Bucks,,HP19 9GP,General Needs,Bungalow,1990,Traditional,Natural gas (mains) +6 Angus Road,Aylesbury,Bucks,,HP19 9GP,General Needs,Bungalow,1990,Traditional,Natural gas (mains) +7 Angus Road,Aylesbury,Bucks,,HP19 9GP,General Needs,House,1990,Traditional,Natural gas (mains) +1 Galloway,Aylesbury,Bucks,,HP19 9GR,General Needs,House,1990,Traditional,Natural gas (mains) +3 Galloway,Aylesbury,Bucks,,HP19 9GR,General Needs,House,1990,Traditional,Natural gas (mains) +5 Galloway,Aylesbury,Bucks,,HP19 9GR,General Needs,Bungalow,1990,Traditional,Natural gas (mains) +7 Galloway,Aylesbury,Bucks,,HP19 9GR,General Needs,Bungalow,1990,Traditional,Natural gas (mains) +9 Galloway,Aylesbury,Bucks,,HP19 9GR,General Needs,Bungalow,1990,Traditional,Natural gas (mains) +15 Galloway,Aylesbury,Bucks,,HP19 9GR,General Needs,Bungalow,1990,Traditional,Natural gas (mains) +24 Galloway,Aylesbury,Bucks,,HP19 9GR,General Needs,House,1990,Traditional,Natural gas (mains) +2 Galloway,Aylesbury,Bucks,,HP19 9GS,General Needs,House,1990,Traditional,Natural gas (mains) +8 Galloway,Aylesbury,Bucks,,HP19 9GS,General Needs,House,1990,Traditional,Natural gas (mains) +10 Galloway,Aylesbury,Bucks,,HP19 9GS,General Needs,House,1990,Traditional,Natural gas (mains) +11 Galloway,Aylesbury,Bucks,,HP19 9GS,General Needs,Bungalow,1990,Traditional,Natural gas (mains) +12 Galloway,Aylesbury,Bucks,,HP19 9GS,General Needs,House,1990,Traditional,Natural gas (mains) +14 Galloway,Aylesbury,Bucks,,HP19 9GS,General Needs,House,1990,Traditional,Natural gas (mains) +18 Galloway,Aylesbury,Bucks,,HP19 9GS,General Needs,House,1990,Traditional,Natural gas (mains) +20 Galloway,Aylesbury,Bucks,,HP19 9GS,General Needs,House,1990,Traditional,Natural gas (mains) +22 Galloway,Aylesbury,Bucks,,HP19 9GS,General Needs,House,1990,Traditional,Natural gas (mains) +34 Galloway,Aylesbury,Bucks,,HP19 9GS,General Needs,House,1990,Traditional,Natural gas (mains) +36 Galloway,Aylesbury,Bucks,,HP19 9GS,General Needs,House,1990,Traditional,Natural gas (mains) +38 Galloway,Aylesbury,Bucks,,HP19 9GS,General Needs,House,1990,Traditional,Natural gas (mains) +1 Guernsey Close,Aylesbury,Bucks,,HP19 9GT,General Needs,Bungalow,1990,Traditional,Natural gas (mains) +3 Guernsey Close,Aylesbury,Bucks,,HP19 9GT,General Needs,Bungalow,1990,Traditional,Natural gas (mains) +5 Guernsey Close,Aylesbury,Bucks,,HP19 9GT,General Needs,Bungalow,1990,Traditional,Natural gas (mains) +7 Guernsey Close,Aylesbury,Bucks,,HP19 9GT,General Needs,Bungalow,1990,Traditional,Natural gas (mains) +9 Guernsey Close,Aylesbury,Bucks,,HP19 9GT,General Needs,Bungalow,1990,Traditional,Natural gas (mains) +2 Guernsey Close,Aylesbury,Bucks,,HP19 9GU,General Needs,House,1990,Traditional,Natural gas (mains) +4 Guernsey Close,Aylesbury,Bucks,,HP19 9GU,General Needs,House,1990,Traditional,Natural gas (mains) +6 Guernsey Close,Aylesbury,Bucks,,HP19 9GU,General Needs,House,1990,Traditional,Natural gas (mains) +10 Guernsey Close,Aylesbury,Bucks,,HP19 9GU,General Needs,House,1990,Traditional,Natural gas (mains) +12 Guernsey Close,Aylesbury,Bucks,,HP19 9GU,General Needs,House,1990,Traditional,Natural gas (mains) +18 Guernsey Close,Aylesbury,Bucks,,HP19 9GU,General Needs,House,1990,Traditional,Natural gas (mains) +1 Kerry Close,Aylesbury,Bucks,,HP19 9GW,General Needs,House,1990,Traditional,Natural gas (mains) +2 Kerry Close,Aylesbury,Bucks,,HP19 9GW,General Needs,Bungalow,1990,Traditional,Natural gas (mains) +3 Kerry Close,Aylesbury,Bucks,,HP19 9GW,General Needs,House,1990,Traditional,Natural gas (mains) +4 Kerry Close,Aylesbury,Bucks,,HP19 9GW,General Needs,Bungalow,1990,Traditional,Natural gas (mains) +5 Kerry Close,Aylesbury,Bucks,,HP19 9GW,General Needs,House,1990,Traditional,Natural gas (mains) +6 Kerry Close,Aylesbury,Bucks,,HP19 9GW,General Needs,House,1990,Traditional,Natural gas (mains) +14 Kerry Close,Aylesbury,Bucks,,HP19 9GW,General Needs,House,1990,Traditional,Natural gas (mains) +1 Devon Road,Aylesbury,Bucks,,HP19 9GX,General Needs,House,1991,Traditional,Natural gas (mains) +2 Devon Road,Aylesbury,Bucks,,HP19 9GX,General Needs,House,1991,Traditional,Natural gas (mains) +3 Devon Road,Aylesbury,Bucks,,HP19 9GX,General Needs,Bungalow,1991,Traditional,Natural gas (mains) +4 Devon Road,Aylesbury,Bucks,,HP19 9GX,General Needs,Bungalow,1991,Traditional,Natural gas (mains) +5 Devon Road,Aylesbury,Bucks,,HP19 9GX,General Needs,Bungalow,1991,Traditional,Natural gas (mains) +6 Devon Road,Aylesbury,Bucks,,HP19 9GX,General Needs,Bungalow,1991,Traditional,Natural gas (mains) +8 Devon Road,Aylesbury,Bucks,,HP19 9GX,General Needs,House,1991,Traditional,Natural gas (mains) +1 Hereford Way,Aylesbury,Bucks,,HP19 9GY,General Needs,House,1991,Traditional,Natural gas (mains) +2 Hereford Way,Aylesbury,Bucks,,HP19 9GY,General Needs,House,1991,Traditional,Natural gas (mains) +3 Hereford Way,Aylesbury,Bucks,,HP19 9GY,General Needs,House,1991,Traditional,Natural gas (mains) +4 Hereford Way,Aylesbury,Bucks,,HP19 9GY,General Needs,House,1991,Traditional,Natural gas (mains) +5 Hereford Way,Aylesbury,Bucks,,HP19 9GY,General Needs,House,1991,Traditional,Natural gas (mains) +7 Hereford Way,Aylesbury,Bucks,,HP19 9GY,General Needs,House,1991,Traditional,Natural gas (mains) +10 Hereford Way,Aylesbury,Bucks,,HP19 9GY,General Needs,House,1991,Traditional,Natural gas (mains) +11 Hereford Way,Aylesbury,Bucks,,HP19 9GY,General Needs,Bungalow,1991,Traditional,Natural gas (mains) +12 Hereford Way,Aylesbury,Bucks,,HP19 9GY,General Needs,House,1991,Traditional,Natural gas (mains) +15 Hereford Way,Aylesbury,Bucks,,HP19 9GY,General Needs,Bungalow,1991,Traditional,Natural gas (mains) +18 Hereford Way,Aylesbury,Bucks,,HP19 9GY,General Needs,House,1991,Traditional,Natural gas (mains) +20 Hereford Way,Aylesbury,Bucks,,HP19 9GY,General Needs,House,1991,Traditional,Natural gas (mains) +22 Hereford Way,Aylesbury,Bucks,,HP19 9GY,General Needs,House,1991,Traditional,Natural gas (mains) +24 Hereford Way,Aylesbury,Bucks,,HP19 9GY,General Needs,House,1991,Traditional,Natural gas (mains) +28 Hereford Way,Aylesbury,Bucks,,HP19 9GY,General Needs,House,1991,Traditional,Natural gas (mains) +32 Hereford Way,Aylesbury,Bucks,,HP19 9GY,General Needs,House,1991,Traditional,Natural gas (mains) +34 Hereford Way,Aylesbury,Bucks,,HP19 9GY,General Needs,House,1991,Traditional,Natural gas (mains) +36 Hereford Way,Aylesbury,Bucks,,HP19 9GY,General Needs,House,1991,Traditional,Natural gas (mains) +38 Hereford Way,Aylesbury,Bucks,,HP19 9GY,General Needs,House,1991,Traditional,Natural gas (mains) +1 Sussex Close,Aylesbury,Bucks,,HP19 9GZ,General Needs,House,1991,Traditional,Natural gas (mains) +2 Sussex Close,Aylesbury,Bucks,,HP19 9GZ,General Needs,House,1991,Traditional,Natural gas (mains) +4 Sussex Close,Aylesbury,Bucks,,HP19 9GZ,General Needs,House,1991,Traditional,Natural gas (mains) +5 Sussex Close,Aylesbury,Bucks,,HP19 9GZ,General Needs,House,1991,Traditional,Natural gas (mains) +6 Sussex Close,Aylesbury,Bucks,,HP19 9GZ,General Needs,House,1991,Traditional,Natural gas (mains) +7 Sussex Close,Aylesbury,Bucks,,HP19 9GZ,General Needs,House,1991,Traditional,Natural gas (mains) +11 Sussex Close,Aylesbury,Bucks,,HP19 9GZ,General Needs,House,1991,Traditional,Natural gas (mains) +15 Sussex Close,Aylesbury,Bucks,,HP19 9GZ,General Needs,House,1991,Traditional,Natural gas (mains) +8 Mitcham Walk,Aylesbury,Bucks,,HP19 9HF,General Needs,House,1963,Traditional,Natural gas (mains) +10 Mitcham Walk,Aylesbury,Bucks,,HP19 9HF,General Needs,House,1963,Traditional,Natural gas (mains) +12 Mitcham Walk,Aylesbury,Bucks,,HP19 9HF,General Needs,House,1963,Traditional,Natural gas (mains) +3 Mitcham Walk,Aylesbury,Bucks,,HP19 9HG,General Needs,Maisonette,1968,Traditional,Natural gas (mains) +5 Mitcham Walk,Aylesbury,Bucks,,HP19 9HG,General Needs,Maisonette,1968,Traditional,Natural gas (mains) +7 Mitcham Walk,Aylesbury,Bucks,,HP19 9HG,General Needs,Maisonette,1968,Traditional,Natural gas (mains) +9 Mitcham Walk,Aylesbury,Bucks,,HP19 9HG,General Needs,Maisonette,1968,Traditional,Natural gas (mains) +11 Mitcham Walk,Aylesbury,Bucks,,HP19 9HG,General Needs,Maisonette,1968,Traditional,Natural gas (mains) +25 Mitcham Walk,Aylesbury,Bucks,,HP19 9HG,General Needs,Maisonette,1968,Traditional,Natural gas (mains) +31 Mitcham Walk,Aylesbury,Bucks,,HP19 9HG,General Needs,Maisonette,1968,Traditional,Natural gas (mains) +33 Mitcham Walk,Aylesbury,Bucks,,HP19 9HG,General Needs,Maisonette,1968,Traditional,Natural gas (mains) +37 Mitcham Walk,Aylesbury,Bucks,,HP19 9HG,General Needs,Maisonette,1968,Traditional,Natural gas (mains) +49 Mitcham Walk,Aylesbury,Bucks,,HP19 9HG,General Needs,Maisonette,1968,Traditional,Natural gas (mains) +53 Mitcham Walk,Aylesbury,Bucks,,HP19 9HG,General Needs,Maisonette,1968,Traditional,Natural gas (mains) +57 Mitcham Walk,Aylesbury,Bucks,,HP19 9HG,General Needs,Maisonette,1968,Traditional,Natural gas (mains) +63 Mitcham Walk,Aylesbury,Bucks,,HP19 9HG,General Needs,Maisonette,1968,Traditional,Natural gas (mains) +157 Meadowcroft,Aylesbury,Bucks,,HP19 9HH,General Needs,House,1964,Traditional,Natural gas (mains) +193 Meadowcroft,Aylesbury,Bucks,,HP19 9HH,General Needs,House,1964,Traditional,Natural gas (mains) +1 Brunswick Close,Aylesbury,Bucks,,HP19 9HJ,General Needs,House,1961,Concrete No Fines,Natural gas (mains) +3 Brunswick Close,Aylesbury,Bucks,,HP19 9HJ,General Needs,House,1961,Concrete No Fines,Natural gas (mains) +250 Meadowcroft,Aylesbury,Bucks,,HP19 9HL,General Needs,Flat,1962,Concrete No Fines,Natural gas (mains) +252 Meadowcroft,Aylesbury,Bucks,,HP19 9HL,General Needs,Flat,1962,Concrete No Fines,Natural gas (mains) +2 Belgrave Road,Aylesbury,Bucks,,HP19 9HN,General Needs,Flat,1962,Concrete No Fines,Natural gas (mains) +4 Belgrave Road,Aylesbury,Bucks,,HP19 9HN,General Needs,Flat,1962,Concrete No Fines,Natural gas (mains) +18 Belgrave Road,Aylesbury,Bucks,,HP19 9HN,General Needs,House,1961,Concrete No Fines,Natural gas (mains) +24 Belgrave Road,Aylesbury,Bucks,,HP19 9HN,General Needs,House,1961,Concrete No Fines,Natural gas (mains) +26 Belgrave Road,Aylesbury,Bucks,,HP19 9HN,General Needs,House,1961,Concrete No Fines,Natural gas (mains) +28 Belgrave Road,Aylesbury,Bucks,,HP19 9HN,General Needs,House,1961,Concrete No Fines,Natural gas (mains) +36 Belgrave Road,Aylesbury,Bucks,,HP19 9HN,General Needs,House,1961,Concrete No Fines,Natural gas (mains) +42 Belgrave Road,Aylesbury,Bucks,,HP19 9HN,General Needs,Flat,1962,Concrete No Fines,Natural gas (mains) +44 Belgrave Road,Aylesbury,Bucks,,HP19 9HN,General Needs,Flat,1962,Concrete No Fines,Natural gas (mains) +50 Belgrave Road,Aylesbury,Bucks,,HP19 9HN,General Needs,Flat,1962,Concrete No Fines,Natural gas (mains) +52 Belgrave Road,Aylesbury,Bucks,,HP19 9HN,General Needs,Flat,1962,Concrete No Fines,Natural gas (mains) +54 Belgrave Road,Aylesbury,Bucks,,HP19 9HN,General Needs,Flat,1962,Concrete No Fines,Natural gas (mains) +56 Belgrave Road,Aylesbury,Bucks,,HP19 9HN,General Needs,Flat,1962,Concrete No Fines,Natural gas (mains) +58 Belgrave Road,Aylesbury,Bucks,,HP19 9HN,General Needs,House,1962,Concrete No Fines,Natural gas (mains) +64 Belgrave Road,Aylesbury,Bucks,,HP19 9HN,General Needs,House,1962,Concrete No Fines,Natural gas (mains) +66 Belgrave Road,Aylesbury,Bucks,,HP19 9HN,General Needs,House,1962,Concrete No Fines,Natural gas (mains) +68 Belgrave Road,Aylesbury,Bucks,,HP19 9HN,General Needs,House,1962,Concrete No Fines,Natural gas (mains) +37 Belgrave Road,Aylesbury,Bucks,,HP19 9HP,General Needs,Flat,1962,Concrete No Fines,Natural gas (mains) +39 Belgrave Road,Aylesbury,Bucks,,HP19 9HP,General Needs,House,1962,Concrete No Fines,Natural gas (mains) +43 Belgrave Road,Aylesbury,Bucks,,HP19 9HP,General Needs,House,1962,Concrete No Fines,Natural gas (mains) +49 Belgrave Road,Aylesbury,Bucks,,HP19 9HP,General Needs,Flat,1962,Concrete No Fines,Natural gas (mains) +51 Belgrave Road,Aylesbury,Bucks,,HP19 9HP,General Needs,Flat,1962,Concrete No Fines,Natural gas (mains) +53 Belgrave Road,Aylesbury,Bucks,,HP19 9HP,General Needs,Flat,1962,Concrete No Fines,Natural gas (mains) +55 Belgrave Road,Aylesbury,Bucks,,HP19 9HP,General Needs,Flat,1962,Concrete No Fines,Natural gas (mains) +152 Belgrave Road,Aylesbury,Bucks,,HP19 9HP,General Needs,House,1962,Concrete No Fines,Natural gas (mains) +162 Belgrave Road,Aylesbury,Bucks,,HP19 9HP,General Needs,Flat,1962,Concrete No Fines,Natural gas (mains) +164 Belgrave Road,Aylesbury,Bucks,,HP19 9HP,General Needs,Flat,1962,Concrete No Fines,Natural gas (mains) +166 Belgrave Road,Aylesbury,Bucks,,HP19 9HP,General Needs,Flat,1962,Concrete No Fines,Natural gas (mains) +168 Belgrave Road,Aylesbury,Bucks,,HP19 9HP,General Needs,Flat,1962,Concrete No Fines,Natural gas (mains) +174 Belgrave Road,Aylesbury,Bucks,,HP19 9HP,General Needs,Flat,1962,Concrete No Fines,Natural gas (mains) +176 Belgrave Road,Aylesbury,Bucks,,HP19 9HP,General Needs,Flat,1962,Concrete No Fines,Natural gas (mains) +178 Belgrave Road,Aylesbury,Bucks,,HP19 9HP,General Needs,Flat,1962,Concrete No Fines,Natural gas (mains) +180 Belgrave Road,Aylesbury,Bucks,,HP19 9HP,General Needs,Flat,1962,Concrete No Fines,Natural gas (mains) +184 Belgrave Road,Aylesbury,Bucks,,HP19 9HP,General Needs,House,1962,Concrete No Fines,Natural gas (mains) +201 Meadowcroft,Aylesbury,Bucks,,HP19 9HQ,General Needs,Flat,1962,Concrete No Fines,Natural gas (mains) +207 Meadowcroft,Aylesbury,Bucks,,HP19 9HQ,General Needs,House,1962,Concrete No Fines,Natural gas (mains) +211 Meadowcroft,Aylesbury,Bucks,,HP19 9HQ,General Needs,House,1962,Concrete No Fines,Natural gas (mains) +213 Meadowcroft,Aylesbury,Bucks,,HP19 9HQ,General Needs,House,1962,Concrete No Fines,Natural gas (mains) +223 Meadowcroft,Aylesbury,Bucks,,HP19 9HQ,General Needs,House,1962,Concrete No Fines,Natural gas (mains) +227 Meadowcroft,Aylesbury,Bucks,,HP19 9HQ,General Needs,Flat,1962,Concrete No Fines,Natural gas (mains) +229 Meadowcroft,Aylesbury,Bucks,,HP19 9HQ,General Needs,Flat,1962,Concrete No Fines,Natural gas (mains) +233 Meadowcroft,Aylesbury,Bucks,,HP19 9HQ,General Needs,House,1962,Concrete No Fines,Natural gas (mains) +235 Meadowcroft,Aylesbury,Bucks,,HP19 9HQ,General Needs,House,1962,Concrete No Fines,Natural gas (mains) +237 Meadowcroft,Aylesbury,Bucks,,HP19 9HQ,General Needs,House,1962,Concrete No Fines,Natural gas (mains) +243 Meadowcroft,Aylesbury,Bucks,,HP19 9HQ,General Needs,House,1962,Concrete No Fines,Natural gas (mains) +1 Carlton Close,Aylesbury,Bucks,,HP19 9HR,General Needs,Flat,1962,Concrete No Fines,Natural gas (mains) +2 Carlton Close,Aylesbury,Bucks,,HP19 9HR,General Needs,Flat,1962,Concrete No Fines,Natural gas (mains) +3 Carlton Close,Aylesbury,Bucks,,HP19 9HR,General Needs,Flat,1962,Concrete No Fines,Natural gas (mains) +8 Carlton Close,Aylesbury,Bucks,,HP19 9HR,General Needs,House,1962,Concrete No Fines,Natural gas (mains) +9 Carlton Close,Aylesbury,Bucks,,HP19 9HR,General Needs,House,1962,Concrete No Fines,Natural gas (mains) +13 Carlton Close,Aylesbury,Bucks,,HP19 9HR,General Needs,House,1962,Concrete No Fines,Natural gas (mains) +20 Carlton Close,Aylesbury,Bucks,,HP19 9HR,General Needs,House,1962,Concrete No Fines,Natural gas (mains) +25 Carlton Close,Aylesbury,Bucks,,HP19 9HR,General Needs,House,1962,Concrete No Fines,Natural gas (mains) +30 Carlton Close,Aylesbury,Bucks,,HP19 9HR,General Needs,House,1962,Traditional,Natural gas (mains) +34 Carlton Close,Aylesbury,Bucks,,HP19 9HR,General Needs,House,1962,Traditional,Natural gas (mains) +1 Grafton Road,Aylesbury,Bucks,,HP19 9HS,General Needs,House,1962,Concrete No Fines,Natural gas (mains) +2 Grafton Road,Aylesbury,Bucks,,HP19 9HS,General Needs,Flat,1962,Concrete No Fines,Natural gas (mains) +3 Grafton Road,Aylesbury,Bucks,,HP19 9HS,General Needs,House,1962,Concrete No Fines,Natural gas (mains) +4 Grafton Road,Aylesbury,Bucks,,HP19 9HS,General Needs,Flat,1962,Concrete No Fines,Natural gas (mains) +7 Grafton Road,Aylesbury,Bucks,,HP19 9HS,General Needs,Flat,1962,Concrete No Fines,Natural gas (mains) +11 Grafton Road,Aylesbury,Bucks,,HP19 9HS,General Needs,Flat,1962,Concrete No Fines,Natural gas (mains) +12 Grafton Road,Aylesbury,Bucks,,HP19 9HS,General Needs,House,1962,Concrete No Fines,Natural gas (mains) +14 Grafton Road,Aylesbury,Bucks,,HP19 9HS,General Needs,House,1962,Concrete No Fines,Natural gas (mains) +16 Grafton Road,Aylesbury,Bucks,,HP19 9HS,General Needs,House,1962,Concrete No Fines,Natural gas (mains) +17 Grafton Road,Aylesbury,Bucks,,HP19 9HS,General Needs,Flat,1962,Concrete No Fines,Natural gas (mains) +19 Grafton Road,Aylesbury,Bucks,,HP19 9HS,General Needs,Flat,1962,Concrete No Fines,Natural gas (mains) +21 Grafton Road,Aylesbury,Bucks,,HP19 9HS,General Needs,House,1962,Concrete No Fines,Natural gas (mains) +22 Grafton Road,Aylesbury,Bucks,,HP19 9HS,General Needs,House,1962,Concrete No Fines,Natural gas (mains) +23 Grafton Road,Aylesbury,Bucks,,HP19 9HS,General Needs,House,1962,Concrete No Fines,Natural gas (mains) +27 Grafton Road,Aylesbury,Bucks,,HP19 9HS,General Needs,House,1962,Concrete No Fines,Natural gas (mains) +29 Grafton Road,Aylesbury,Bucks,,HP19 9HS,General Needs,House,1962,Concrete No Fines,Natural gas (mains) +31 Grafton Road,Aylesbury,Bucks,,HP19 9HS,General Needs,House,1962,Concrete No Fines,Natural gas (mains) +32 Grafton Road,Aylesbury,Bucks,,HP19 9HS,General Needs,House,1962,Concrete No Fines,Natural gas (mains) +34 Grafton Road,Aylesbury,Bucks,,HP19 9HS,General Needs,House,1962,Concrete No Fines,Natural gas (mains) +35 Grafton Road,Aylesbury,Bucks,,HP19 9HS,General Needs,House,1962,Concrete No Fines,Natural gas (mains) +40 Grafton Road,Aylesbury,Bucks,,HP19 9HS,General Needs,House,1962,Concrete No Fines,Natural gas (mains) +48 Grafton Road,Aylesbury,Bucks,,HP19 9HS,General Needs,House,1962,Concrete No Fines,Natural gas (mains) +4 Albany Place,Aylesbury,Bucks,,HP19 9HT,General Needs,House,1962,Concrete No Fines,Natural gas (mains) +7 Albany Place,Aylesbury,Bucks,,HP19 9HT,General Needs,House,1962,Concrete No Fines,Natural gas (mains) +10 Albany Place,Aylesbury,Bucks,,HP19 9HT,General Needs,House,1962,Concrete No Fines,Natural gas (mains) +14 Albany Place,Aylesbury,Bucks,,HP19 9HT,General Needs,House,1962,Concrete No Fines,Natural gas (mains) +15 Albany Place,Aylesbury,Bucks,,HP19 9HT,General Needs,House,1962,Concrete No Fines,Natural gas (mains) +16 Albany Place,Aylesbury,Bucks,,HP19 9HT,General Needs,House,1962,Concrete No Fines,Natural gas (mains) +20 Albany Place,Aylesbury,Bucks,,HP19 9HT,General Needs,House,1962,Concrete No Fines,Natural gas (mains) +21 Albany Place,Aylesbury,Bucks,,HP19 9HT,General Needs,Flat,1962,Concrete No Fines,Natural gas (mains) +24 Albany Place,Aylesbury,Bucks,,HP19 9HT,General Needs,House,1962,Concrete No Fines,Natural gas (mains) +25 Albany Place,Aylesbury,Bucks,,HP19 9HT,General Needs,Flat,1962,Concrete No Fines,Natural gas (mains) +27 Albany Place,Aylesbury,Bucks,,HP19 9HT,General Needs,Flat,1962,Concrete No Fines,Natural gas (mains) +31 Albany Place,Aylesbury,Bucks,,HP19 9HT,General Needs,Flat,1962,Concrete No Fines,Natural gas (mains) +35 Albany Place,Aylesbury,Bucks,,HP19 9HT,General Needs,Flat,1962,Concrete No Fines,Natural gas (mains) +37 Albany Place,Aylesbury,Bucks,,HP19 9HT,General Needs,Flat,1962,Concrete No Fines,Natural gas (mains) +1 Wigmore Road,Aylesbury,Bucks,,HP19 9HU,General Needs,Flat,1962,Concrete No Fines,Natural gas (mains) +2 Wigmore Road,Aylesbury,Bucks,,HP19 9HU,General Needs,Flat,1962,Concrete No Fines,Natural gas (mains) +3 Wigmore Road,Aylesbury,Bucks,,HP19 9HU,General Needs,Flat,1962,Concrete No Fines,Natural gas (mains) +5 Wigmore Road,Aylesbury,Bucks,,HP19 9HU,General Needs,House,1962,Concrete No Fines,Natural gas (mains) +10 Wigmore Road,Aylesbury,Bucks,,HP19 9HU,General Needs,House,1962,Concrete No Fines,Natural gas (mains) +14 Wigmore Road,Aylesbury,Bucks,,HP19 9HU,General Needs,House,1962,Concrete No Fines,Natural gas (mains) +16 Wigmore Road,Aylesbury,Bucks,,HP19 9HU,General Needs,House,1962,Concrete No Fines,Natural gas (mains) +18 Wigmore Road,Aylesbury,Bucks,,HP19 9HU,General Needs,House,1962,Concrete No Fines,Natural gas (mains) +19 Wigmore Road,Aylesbury,Bucks,,HP19 9HU,General Needs,House,1962,Concrete No Fines,Natural gas (mains) +20 Wigmore Road,Aylesbury,Bucks,,HP19 9HU,General Needs,House,1962,Concrete No Fines,Natural gas (mains) +22 Wigmore Road,Aylesbury,Bucks,,HP19 9HU,General Needs,House,1962,Concrete No Fines,Natural gas (mains) +28 Wigmore Road,Aylesbury,Bucks,,HP19 9HU,General Needs,House,1962,Concrete No Fines,Natural gas (mains) +29 Wigmore Road,Aylesbury,Bucks,,HP19 9HU,General Needs,Flat,1962,Concrete No Fines,Natural gas (mains) +30 Wigmore Road,Aylesbury,Bucks,,HP19 9HU,General Needs,House,1962,Concrete No Fines,Natural gas (mains) +31 Wigmore Road,Aylesbury,Bucks,,HP19 9HU,General Needs,Flat,1962,Concrete No Fines,Natural gas (mains) +32 Wigmore Road,Aylesbury,Bucks,,HP19 9HU,General Needs,Flat,1962,Concrete No Fines,Natural gas (mains) +74 Belgrave Road,Aylesbury,Bucks,,HP19 9HW,General Needs,House,1962,Concrete No Fines,Natural gas (mains) +78 Belgrave Road,Aylesbury,Bucks,,HP19 9HW,General Needs,House,1962,Concrete No Fines,Natural gas (mains) +82 Belgrave Road,Aylesbury,Bucks,,HP19 9HW,General Needs,Flat,1962,Concrete No Fines,Natural gas (mains) +84 Belgrave Road,Aylesbury,Bucks,,HP19 9HW,General Needs,Flat,1962,Concrete No Fines,Natural gas (mains) +86 Belgrave Road,Aylesbury,Bucks,,HP19 9HW,General Needs,Flat,1962,Concrete No Fines,Natural gas (mains) +90 Belgrave Road,Aylesbury,Bucks,,HP19 9HW,General Needs,House,1962,Concrete No Fines,Natural gas (mains) +94 Belgrave Road,Aylesbury,Bucks,,HP19 9HW,General Needs,Flat,1962,Concrete No Fines,Natural gas (mains) +96 Belgrave Road,Aylesbury,Bucks,,HP19 9HW,General Needs,Flat,1962,Concrete No Fines,Natural gas (mains) +98 Belgrave Road,Aylesbury,Bucks,,HP19 9HW,General Needs,Flat,1962,Concrete No Fines,Natural gas (mains) +100 Belgrave Road,Aylesbury,Bucks,,HP19 9HW,General Needs,Flat,1962,Concrete No Fines,Natural gas (mains) +106 Belgrave Road,Aylesbury,Bucks,,HP19 9HW,General Needs,House,1962,Concrete No Fines,Natural gas (mains) +108 Belgrave Road,Aylesbury,Bucks,,HP19 9HW,General Needs,House,1962,Concrete No Fines,Natural gas (mains) +120 Belgrave Road,Aylesbury,Bucks,,HP19 9HW,General Needs,House,1962,Concrete No Fines,Natural gas (mains) +122 Belgrave Road,Aylesbury,Bucks,,HP19 9HW,General Needs,Flat,1962,Concrete No Fines,Natural gas (mains) +124 Belgrave Road,Aylesbury,Bucks,,HP19 9HW,General Needs,Flat,1962,Concrete No Fines,Natural gas (mains) +126 Belgrave Road,Aylesbury,Bucks,,HP19 9HW,General Needs,Flat,1962,Concrete No Fines,Natural gas (mains) +128 Belgrave Road,Aylesbury,Bucks,,HP19 9HW,General Needs,Flat,1962,Concrete No Fines,Natural gas (mains) +132 Belgrave Road,Aylesbury,Bucks,,HP19 9HW,General Needs,House,1962,Concrete No Fines,Natural gas (mains) +134 Belgrave Road,Aylesbury,Bucks,,HP19 9HW,General Needs,Flat,1962,Concrete No Fines,Natural gas (mains) +136 Belgrave Road,Aylesbury,Bucks,,HP19 9HW,General Needs,Flat,1962,Concrete No Fines,Natural gas (mains) +138 Belgrave Road,Aylesbury,Bucks,,HP19 9HW,General Needs,Flat,1962,Concrete No Fines,Natural gas (mains) +140 Belgrave Road,Aylesbury,Bucks,,HP19 9HW,General Needs,Flat,1962,Concrete No Fines,Natural gas (mains) +1 Belgrave Road,Aylesbury,Bucks,,HP19 9HX,General Needs,Flat,1962,Concrete No Fines,Natural gas (mains) +3 Belgrave Road,Aylesbury,Bucks,,HP19 9HX,General Needs,Flat,1962,Concrete No Fines,Natural gas (mains) +5 Belgrave Road,Aylesbury,Bucks,,HP19 9HX,General Needs,House,1962,Concrete No Fines,Natural gas (mains) +13 Belgrave Road,Aylesbury,Bucks,,HP19 9HX,General Needs,House,1962,Concrete No Fines,Natural gas (mains) +17 Belgrave Road,Aylesbury,Bucks,,HP19 9HX,General Needs,House,1962,Concrete No Fines,Natural gas (mains) +23 Belgrave Road,Aylesbury,Bucks,,HP19 9HX,General Needs,House,1962,Concrete No Fines,Natural gas (mains) +27 Belgrave Road,Aylesbury,Bucks,,HP19 9HX,General Needs,House,1962,Concrete No Fines,Natural gas (mains) +254 Meadowcroft,Aylesbury,Bucks,,HP19 9HY,General Needs,Flat,1962,Concrete No Fines,Natural gas (mains) +256 Meadowcroft,Aylesbury,Bucks,,HP19 9HY,General Needs,Flat,1962,Concrete No Fines,Natural gas (mains) +258 Meadowcroft,Aylesbury,Bucks,,HP19 9HY,General Needs,House,1962,Concrete No Fines,Natural gas (mains) +268 Meadowcroft,Aylesbury,Bucks,,HP19 9HY,General Needs,House,1962,Concrete No Fines,Natural gas (mains) +270 Meadowcroft,Aylesbury,Bucks,,HP19 9HY,General Needs,House,1962,Concrete No Fines,Natural gas (mains) +274 Meadowcroft,Aylesbury,Bucks,,HP19 9HY,General Needs,Flat,1962,Concrete No Fines,Natural gas (mains) +276 Meadowcroft,Aylesbury,Bucks,,HP19 9HY,General Needs,Flat,1962,Concrete No Fines,Natural gas (mains) +278 Meadowcroft,Aylesbury,Bucks,,HP19 9HZ,General Needs,Flat,1962,Concrete No Fines,Natural gas (mains) +286 Meadowcroft,Aylesbury,Bucks,,HP19 9HZ,General Needs,House,1962,Concrete No Fines,Natural gas (mains) +296 Meadowcroft,Aylesbury,Bucks,,HP19 9HZ,General Needs,House,1962,Concrete No Fines,Natural gas (mains) +308 Meadowcroft,Aylesbury,Bucks,,HP19 9HZ,General Needs,Maisonette,1970,Concrete No Fines,Natural gas (mains) +310 Meadowcroft,Aylesbury,Bucks,,HP19 9HZ,General Needs,Maisonette,1970,Concrete No Fines,Natural gas (mains) +312 Meadowcroft,Aylesbury,Bucks,,HP19 9HZ,General Needs,Maisonette,1970,Concrete No Fines,Natural gas (mains) +316 Meadowcroft,Aylesbury,Bucks,,HP19 9HZ,General Needs,Maisonette,1970,Concrete No Fines,Natural gas (mains) +322 Meadowcroft,Aylesbury,Bucks,,HP19 9HZ,General Needs,House,1962,Concrete No Fines,Natural gas (mains) +27 Stonehaven Road,Aylesbury,Bucks,,HP19 9JG,General Needs,House,1935,Traditional,Natural gas (mains) +49 Stonehaven Road,Aylesbury,Bucks,,HP19 9JG,General Needs,House,1964,Traditional,Natural gas (mains) +3 Holland Road,Aylesbury,Bucks,,HP19 9JH,General Needs,House,1964,Traditional,Natural gas (mains) +5 Holland Road,Aylesbury,Bucks,,HP19 9JH,General Needs,House,1964,Traditional,Natural gas (mains) +12 Holland Road,Aylesbury,Bucks,,HP19 9JH,General Needs,House,1964,Traditional,Natural gas (mains) +14 Holland Road,Aylesbury,Bucks,,HP19 9JH,General Needs,House,1964,Traditional,Natural gas (mains) +39 Holland Road,Aylesbury,Bucks,,HP19 9JJ,General Needs,House,1964,Traditional,Natural gas (mains) +47 Holland Road,Aylesbury,Bucks,,HP19 9JJ,General Needs,House,1964,Traditional,Natural gas (mains) +6 Coventon Road,Aylesbury,Bucks,,HP19 9JL,General Needs,House,1966,Traditional,Natural gas (mains) +14 Coventon Road,Aylesbury,Bucks,,HP19 9JL,General Needs,House,1966,Traditional,Natural gas (mains) +16 Coventon Road,Aylesbury,Bucks,,HP19 9JL,General Needs,House,1966,Traditional,Natural gas (mains) +2 Lay Road,Aylesbury,Bucks,,HP19 9JN,General Needs,House,1965,Traditional,Natural gas (mains) +4 Lay Road,Aylesbury,Bucks,,HP19 9JN,General Needs,House,1965,Traditional,Natural gas (mains) +7 Lay Road,Aylesbury,Bucks,,HP19 9JN,General Needs,House,1965,Traditional,Natural gas (mains) +9 Lay Road,Aylesbury,Bucks,,HP19 9JN,General Needs,House,1965,Traditional,Natural gas (mains) +12 Lay Road,Aylesbury,Bucks,,HP19 9JN,General Needs,House,1965,Traditional,Natural gas (mains) +16 Lay Road,Aylesbury,Bucks,,HP19 9JN,General Needs,House,1965,Traditional,Natural gas (mains) +18 Lay Road,Aylesbury,Bucks,,HP19 9JN,General Needs,House,1965,Traditional,Natural gas (mains) +42 Lay Road,Aylesbury,Bucks,,HP19 9JN,General Needs,House,1965,Traditional,Natural gas (mains) +54 Lay Road,Aylesbury,Bucks,,HP19 9JN,General Needs,House,1965,Traditional,Natural gas (mains) +56 Lay Road,Aylesbury,Bucks,,HP19 9JN,General Needs,House,1965,Traditional,Natural gas (mains) +1 Quarrendon Avenue,Aylesbury,Bucks,,HP19 9JP,General Needs,House,1964,Traditional,Natural gas (mains) +27 Quarrendon Avenue,Aylesbury,Bucks,,HP19 9JP,General Needs,House,1964,Traditional,Natural gas (mains) +43 Quarrendon Avenue,Aylesbury,Bucks,,HP19 9JP,General Needs,Flat,1962,Concrete No Fines,Natural gas (mains) +45 Quarrendon Avenue,Aylesbury,Bucks,,HP19 9JP,General Needs,Flat,1962,Concrete No Fines,Natural gas (mains) +28 Quarrendon Avenue,Aylesbury,Bucks,,HP19 9JR,General Needs,House,1964,Traditional,Natural gas (mains) +38 Quarrendon Avenue,Aylesbury,Bucks,,HP19 9JR,General Needs,House,1964,Traditional,Natural gas (mains) +40 Quarrendon Avenue,Aylesbury,Bucks,,HP19 9JR,General Needs,House,1964,Traditional,Natural gas (mains) +42 Quarrendon Avenue,Aylesbury,Bucks,,HP19 9JR,General Needs,House,1964,Traditional,Natural gas (mains) +54 Quarrendon Avenue,Aylesbury,Bucks,,HP19 9JR,General Needs,Bungalow,1970,Traditional,Natural gas (mains) +56 Quarrendon Avenue,Aylesbury,Bucks,,HP19 9JR,General Needs,Bungalow,1970,Traditional,Natural gas (mains) +58 Quarrendon Avenue,Aylesbury,Bucks,,HP19 9JR,General Needs,Bungalow,1970,Traditional,Natural gas (mains) +60 Quarrendon Avenue,Aylesbury,Bucks,,HP19 9JR,General Needs,Bungalow,1970,Traditional,Natural gas (mains) +62 Quarrendon Avenue,Aylesbury,Bucks,,HP19 9JR,General Needs,Bungalow,1970,Traditional,Natural gas (mains) +64 Quarrendon Avenue,Aylesbury,Bucks,,HP19 9JR,General Needs,Bungalow,1970,Traditional,Natural gas (mains) +66 Quarrendon Avenue,Aylesbury,Bucks,,HP19 9JR,General Needs,Bungalow,1970,Traditional,Natural gas (mains) +68 Quarrendon Avenue,Aylesbury,Bucks,,HP19 9JR,General Needs,Bungalow,1970,Traditional,Natural gas (mains) +70 Quarrendon Avenue,Aylesbury,Bucks,,HP19 9JR,General Needs,Bungalow,1970,Traditional,Natural gas (mains) +72 Quarrendon Avenue,Aylesbury,Bucks,,HP19 9JR,General Needs,Bungalow,1970,Traditional,Natural gas (mains) +2 Berkeley Rise,Aylesbury,Bucks,,HP19 9JS,General Needs,House,1962,Concrete No Fines,Natural gas (mains) +4 Berkeley Rise,Aylesbury,Bucks,,HP19 9JS,General Needs,House,1962,Concrete No Fines,Natural gas (mains) +5 Berkeley Rise,Aylesbury,Bucks,,HP19 9JS,General Needs,House,1962,Concrete No Fines,Natural gas (mains) +6 Berkeley Rise,Aylesbury,Bucks,,HP19 9JS,General Needs,House,1962,Concrete No Fines,Natural gas (mains) +7 Berkeley Rise,Aylesbury,Bucks,,HP19 9JS,General Needs,House,1962,Concrete No Fines,Natural gas (mains) +8 Berkeley Rise,Aylesbury,Bucks,,HP19 9JS,General Needs,House,1962,Concrete No Fines,Natural gas (mains) +9 Berkeley Rise,Aylesbury,Bucks,,HP19 9JS,General Needs,House,1962,Concrete No Fines,Natural gas (mains) +11 Berkeley Rise,Aylesbury,Bucks,,HP19 9JS,General Needs,House,1962,Concrete No Fines,Natural gas (mains) +12 Berkeley Rise,Aylesbury,Bucks,,HP19 9JS,General Needs,House,1962,Concrete No Fines,Natural gas (mains) +13 Berkeley Rise,Aylesbury,Bucks,,HP19 9JS,General Needs,House,1962,Concrete No Fines,Natural gas (mains) +14 Berkeley Rise,Aylesbury,Bucks,,HP19 9JS,General Needs,House,1962,Concrete No Fines,Natural gas (mains) +15 Berkeley Rise,Aylesbury,Bucks,,HP19 9JS,General Needs,House,1962,Concrete No Fines,Natural gas (mains) +3 Argyle Avenue,Aylesbury,Bucks,,HP19 9JT,General Needs,House,1962,Concrete No Fines,Natural gas (mains) +17 Argyle Avenue,Aylesbury,Bucks,,HP19 9JT,General Needs,House,1962,Concrete No Fines,Natural gas (mains) +21 Argyle Avenue,Aylesbury,Bucks,,HP19 9JT,General Needs,House,1962,Concrete No Fines,Natural gas (mains) +25 Argyle Avenue,Aylesbury,Bucks,,HP19 9JT,General Needs,House,1962,Concrete No Fines,Natural gas (mains) +27 Argyle Avenue,Aylesbury,Bucks,,HP19 9JT,General Needs,Flat,1962,Concrete No Fines,Natural gas (mains) +29 Argyle Avenue,Aylesbury,Bucks,,HP19 9JT,General Needs,Flat,1962,Concrete No Fines,Natural gas (mains) +31 Argyle Avenue,Aylesbury,Bucks,,HP19 9JT,General Needs,Flat,1962,Concrete No Fines,Natural gas (mains) +33 Argyle Avenue,Aylesbury,Bucks,,HP19 9JT,General Needs,Flat,1962,Concrete No Fines,Natural gas (mains) +45 Argyle Avenue,Aylesbury,Bucks,,HP19 9JT,General Needs,House,1962,Concrete No Fines,Natural gas (mains) +51 Argyle Avenue,Aylesbury,Bucks,,HP19 9JT,General Needs,House,1962,Concrete No Fines,Natural gas (mains) +57 Argyle Avenue,Aylesbury,Bucks,,HP19 9JT,General Needs,House,1962,Concrete No Fines,Natural gas (mains) +61 Argyle Avenue,Aylesbury,Bucks,,HP19 9JT,General Needs,House,1962,Concrete No Fines,Natural gas (mains) +63 Argyle Avenue,Aylesbury,Bucks,,HP19 9JT,General Needs,House,1964,Traditional,Natural gas (mains) +65 Argyle Avenue,Aylesbury,Bucks,,HP19 9JT,General Needs,House,1964,Traditional,Natural gas (mains) +2 Harcourt Green,Aylesbury,Bucks,,HP19 9JU,General Needs,Flat,1963,Concrete No Fines,Natural gas (mains) +8 Harcourt Green,Aylesbury,Bucks,,HP19 9JU,General Needs,House,1962,Concrete No Fines,Natural gas (mains) +12 Harcourt Green,Aylesbury,Bucks,,HP19 9JU,General Needs,House,1962,Concrete No Fines,Natural gas (mains) +13 Harcourt Green,Aylesbury,Bucks,,HP19 9JU,General Needs,House,1962,Concrete No Fines,Natural gas (mains) +18 Harcourt Green,Aylesbury,Bucks,,HP19 9JU,General Needs,Flat,1962,Concrete No Fines,Natural gas (mains) +21 Harcourt Green,Aylesbury,Bucks,,HP19 9JU,General Needs,Flat,1962,Concrete No Fines,Natural gas (mains) +10 Clifton Green,Aylesbury,Bucks,,HP19 9JW,General Needs,House,1967,Traditional,Natural gas (mains) +15 Clifton Green,Aylesbury,Bucks,,HP19 9JW,General Needs,House,1966,Traditional,Natural gas (mains) +17 Clifton Green,Aylesbury,Bucks,,HP19 9JW,General Needs,House,1966,Traditional,Natural gas (mains) +20 Clifton Green,Aylesbury,Bucks,,HP19 9JW,General Needs,House,1967,Traditional,Natural gas (mains) +4 Brompton Crescent,Aylesbury,Bucks,,HP19 9JX,General Needs,House,1962,Concrete No Fines,Natural gas (mains) +5 Brompton Crescent,Aylesbury,Bucks,,HP19 9JX,General Needs,Flat,1962,Concrete No Fines,Natural gas (mains) +6 Brompton Crescent,Aylesbury,Bucks,,HP19 9JX,General Needs,Flat,1962,Concrete No Fines,Natural gas (mains) +7 Brompton Crescent,Aylesbury,Bucks,,HP19 9JX,General Needs,Flat,1962,Concrete No Fines,Natural gas (mains) +8 Brompton Crescent,Aylesbury,Bucks,,HP19 9JX,General Needs,Flat,1962,Concrete No Fines,Natural gas (mains) +10 Brompton Crescent,Aylesbury,Bucks,,HP19 9JX,General Needs,House,1962,Concrete No Fines,Natural gas (mains) +2 Argyle Avenue,Aylesbury,Bucks,,HP19 9JZ,General Needs,Flat,1962,Concrete No Fines,Natural gas (mains) +4 Argyle Avenue,Aylesbury,Bucks,,HP19 9JZ,General Needs,Flat,1962,Concrete No Fines,Natural gas (mains) +8 Argyle Avenue,Aylesbury,Bucks,,HP19 9JZ,General Needs,House,1962,Concrete No Fines,Natural gas (mains) +16 Argyle Avenue,Aylesbury,Bucks,,HP19 9JZ,General Needs,House,1962,Concrete No Fines,Natural gas (mains) +26 Argyle Avenue,Aylesbury,Bucks,,HP19 9JZ,General Needs,House,1962,Concrete No Fines,Natural gas (mains) +30 Argyle Avenue,Aylesbury,Bucks,,HP19 9JZ,General Needs,House,1962,Concrete No Fines,Natural gas (mains) +34 Argyle Avenue,Aylesbury,Bucks,,HP19 9JZ,General Needs,House,1962,Concrete No Fines,Natural gas (mains) +36 Argyle Avenue,Aylesbury,Bucks,,HP19 9JZ,General Needs,House,1962,Concrete No Fines,Natural gas (mains) +50 Argyle Avenue,Aylesbury,Bucks,,HP19 9JZ,General Needs,House,1962,Concrete No Fines,Natural gas (mains) +52 Argyle Avenue,Aylesbury,Bucks,,HP19 9JZ,General Needs,House,1962,Concrete No Fines,Natural gas (mains) +54 Argyle Avenue,Aylesbury,Bucks,,HP19 9JZ,General Needs,House,1962,Concrete No Fines,Natural gas (mains) +56 Argyle Avenue,Aylesbury,Bucks,,HP19 9JZ,General Needs,House,1962,Concrete No Fines,Natural gas (mains) +58 Argyle Avenue,Aylesbury,Bucks,,HP19 9JZ,General Needs,House,1962,Concrete No Fines,Natural gas (mains) +60 Argyle Avenue,Aylesbury,Bucks,,HP19 9JZ,General Needs,House,1962,Concrete No Fines,Natural gas (mains) +62 Argyle Avenue,Aylesbury,Bucks,,HP19 9JZ,General Needs,House,1962,Concrete No Fines,Natural gas (mains) +66 Argyle Avenue,Aylesbury,Bucks,,HP19 9JZ,General Needs,House,1962,Concrete No Fines,Natural gas (mains) +2 Hanover Close,Aylesbury,Bucks,,HP19 9LA,General Needs,House,1962,Concrete No Fines,Natural gas (mains) +4 Hanover Close,Aylesbury,Bucks,,HP19 9LA,General Needs,House,1962,Concrete No Fines,Natural gas (mains) +11 Hanover Close,Aylesbury,Bucks,,HP19 9LA,General Needs,House,1962,Concrete No Fines,Natural gas (mains) +9 Redcliffe Walk,Aylesbury,Bucks,,HP19 9LB,General Needs,House,1963,Traditional,Natural gas (mains) +19 Redcliffe Walk,Aylesbury,Bucks,,HP19 9LB,General Needs,House,1963,Traditional,Natural gas (mains) +21 Redcliffe Walk,Aylesbury,Bucks,,HP19 9LB,General Needs,House,1963,Traditional,Natural gas (mains) +31 Redcliffe Walk,Aylesbury,Bucks,,HP19 9LB,General Needs,House,1963,Traditional,Natural gas (mains) +43 Redcliffe Walk,Aylesbury,Bucks,,HP19 9LB,General Needs,House,1963,Traditional,Natural gas (mains) +1 Holman Street,Aylesbury,Bucks,,HP19 9LJ,General Needs,House,1957,Traditional,Natural gas (mains) +3 Holman Street,Aylesbury,Bucks,,HP19 9LJ,General Needs,House,1957,Traditional,Natural gas (mains) +4 Holman Street,Aylesbury,Bucks,,HP19 9LJ,General Needs,House,1958,Traditional,Natural gas (mains) +20 Holman Street,Aylesbury,Bucks,,HP19 9LJ,General Needs,House,1954,Traditional,Natural gas (mains) +22 Holman Street,Aylesbury,Bucks,,HP19 9LJ,General Needs,House,1954,Traditional,Natural gas (mains) +28 Holman Street,Aylesbury,Bucks,,HP19 9LJ,General Needs,House,1957,Traditional,Natural gas (mains) +30 Holman Street,Aylesbury,Bucks,,HP19 9LJ,General Needs,House,1952,Traditional,Natural gas (mains) +40 Holman Street,Aylesbury,Bucks,,HP19 9LJ,General Needs,House,1958,Traditional,Natural gas (mains) +42 Holman Street,Aylesbury,Bucks,,HP19 9LJ,General Needs,House,1954,Traditional,Natural gas (mains) +44 Holman Street,Aylesbury,Bucks,,HP19 9LJ,General Needs,House,1954,Traditional,Natural gas (mains) +81 Coventon Road,Aylesbury,Bucks,,HP19 9LL,General Needs,House,1960,Traditional,Natural gas (mains) +37 Meadowcroft,Aylesbury,Bucks,,HP19 9LN,General Needs,House,1956,Traditional,Natural gas (mains) +84 Meadowcroft,Aylesbury,Bucks,,HP19 9LS,General Needs,Flat,1960,Traditional,Natural gas (mains) +86 Meadowcroft,Aylesbury,Bucks,,HP19 9LS,General Needs,House,1961,Traditional,Natural gas (mains) +90 Meadowcroft,Aylesbury,Bucks,,HP19 9LS,General Needs,House,1959,Traditional,Natural gas (mains) +92 Meadowcroft,Aylesbury,Bucks,,HP19 9LS,General Needs,House,1959,Traditional,Natural gas (mains) +95 Meadowcroft,Aylesbury,Bucks,,HP19 9LS,General Needs,House,1959,Traditional,Natural gas (mains) +106 Meadowcroft,Aylesbury,Bucks,,HP19 9LS,General Needs,House,1960,Traditional,Natural gas (mains) +99 Meadowcroft,Aylesbury,Bucks,,HP19 9LT,General Needs,House,1960,Traditional,Natural gas (mains) +101 Meadowcroft,Aylesbury,Bucks,,HP19 9LT,General Needs,House,1960,Traditional,Natural gas (mains) +103 Meadowcroft,Aylesbury,Bucks,,HP19 9LT,General Needs,House,1960,Traditional,Natural gas (mains) +107 Meadowcroft,Aylesbury,Bucks,,HP19 9LT,General Needs,House,1960,Traditional,Natural gas (mains) +109 Meadowcroft,Aylesbury,Bucks,,HP19 9LT,General Needs,House,1960,Traditional,Natural gas (mains) +113 Meadowcroft,Aylesbury,Bucks,,HP19 9LT,General Needs,House,1960,Traditional,Natural gas (mains) +119 Meadowcroft,Aylesbury,Bucks,,HP19 9LT,General Needs,House,1959,Traditional,Natural gas (mains) +125 Meadowcroft,Aylesbury,Bucks,,HP19 9LT,General Needs,House,1959,Traditional,Natural gas (mains) +127 Meadowcroft,Aylesbury,Bucks,,HP19 9LT,General Needs,House,1960,Traditional,Natural gas (mains) +132 Meadowcroft,Aylesbury,Bucks,,HP19 9LT,General Needs,House,1959,Traditional,Natural gas (mains) +136 Meadowcroft,Aylesbury,Bucks,,HP19 9LT,General Needs,House,1959,Traditional,Natural gas (mains) +140 Meadowcroft,Aylesbury,Bucks,,HP19 9LT,General Needs,House,1959,Traditional,Natural gas (mains) +146 Meadowcroft,Aylesbury,Bucks,,HP19 9LT,General Needs,House,1960,Traditional,Natural gas (mains) +164 Meadowcroft,Aylesbury,Bucks,,HP19 9LT,General Needs,House,1960,Traditional,Natural gas (mains) +24 Berryfield Road,Aylesbury,Bucks,,HP19 9LU,General Needs,House,1960,Traditional,Natural gas (mains) +30 Berryfield Road,Aylesbury,Bucks,,HP19 9LU,General Needs,House,1960,Traditional,Natural gas (mains) +32 Berryfield Road,Aylesbury,Bucks,,HP19 9LU,General Needs,House,1960,Traditional,Natural gas (mains) +43 Berryfield Road,Aylesbury,Bucks,,HP19 9LU,General Needs,House,1960,Traditional,Natural gas (mains) +45 Berryfield Road,Aylesbury,Bucks,,HP19 9LU,General Needs,House,1960,Traditional,Natural gas (mains) +51 Berryfield Road,Aylesbury,Bucks,,HP19 9LU,General Needs,House,1960,Traditional,Natural gas (mains) +53 Berryfield Road,Aylesbury,Bucks,,HP19 9LU,General Needs,House,1960,Traditional,Natural gas (mains) +59 Berryfield Road,Aylesbury,Bucks,,HP19 9LU,General Needs,House,1960,Traditional,Natural gas (mains) +61 Berryfield Road,Aylesbury,Bucks,,HP19 9LU,General Needs,House,1960,Traditional,Natural gas (mains) +1 Stonebridge Road,Aylesbury,Bucks,,HP19 9LX,General Needs,House,1959,Traditional,Natural gas (mains) +3 Stonebridge Road,Aylesbury,Bucks,,HP19 9LX,General Needs,House,1959,Traditional,Natural gas (mains) +10 Stonebridge Road,Aylesbury,Bucks,,HP19 9LX,General Needs,House,1959,Traditional,Natural gas (mains) +15 Stonebridge Road,Aylesbury,Bucks,,HP19 9LX,General Needs,House,1959,Traditional,Natural gas (mains) +16 Stonebridge Road,Aylesbury,Bucks,,HP19 9LX,General Needs,House,1959,Traditional,Natural gas (mains) +22 Stonebridge Road,Aylesbury,Bucks,,HP19 9LX,General Needs,House,1959,Traditional,Natural gas (mains) +28 Stonebridge Road,Aylesbury,Bucks,,HP19 9LX,General Needs,House,1959,Traditional,Natural gas (mains) +8 St Peters Avenue,Aylesbury,Bucks,,HP19 9LY,General Needs,House,1959,Traditional,Natural gas (mains) +10 St Peters Avenue,Aylesbury,Bucks,,HP19 9LY,General Needs,House,1959,Traditional,Natural gas (mains) +15 St Peters Avenue,Aylesbury,Bucks,,HP19 9LY,General Needs,House,1959,Traditional,Natural gas (mains) +17 St Peters Avenue,Aylesbury,Bucks,,HP19 9LY,General Needs,Flat,1960,Traditional,Natural gas (mains) +19 St Peters Avenue,Aylesbury,Bucks,,HP19 9LY,General Needs,Flat,1960,Traditional,Natural gas (mains) +21 St Peters Avenue,Aylesbury,Bucks,,HP19 9LY,General Needs,Flat,1960,Traditional,Natural gas (mains) +22 St Peters Avenue,Aylesbury,Bucks,,HP19 9LY,General Needs,House,1960,Traditional,Natural gas (mains) +25 St Peters Avenue,Aylesbury,Bucks,,HP19 9LY,General Needs,Flat,1960,Traditional,Natural gas (mains) +29 St Peters Avenue,Aylesbury,Bucks,,HP19 9LY,General Needs,Flat,1960,Traditional,Natural gas (mains) +31 St Peters Avenue,Aylesbury,Bucks,,HP19 9LY,General Needs,Flat,1960,Traditional,Natural gas (mains) +33 St Peters Avenue,Aylesbury,Bucks,,HP19 9LY,General Needs,Flat,1960,Traditional,Natural gas (mains) +35 St Peters Avenue,Aylesbury,Bucks,,HP19 9LY,General Needs,Flat,1960,Traditional,Natural gas (mains) +37 St Peters Avenue,Aylesbury,Bucks,,HP19 9LY,General Needs,Flat,1960,Traditional,Natural gas (mains) +39 St Peters Avenue,Aylesbury,Bucks,,HP19 9LY,General Needs,Flat,1960,Traditional,Natural gas (mains) +6 Berryfield Road,Aylesbury,Bucks,,HP19 9LZ,General Needs,House,1960,Traditional,Natural gas (mains) +10 Berryfield Road,Aylesbury,Bucks,,HP19 9LZ,General Needs,House,1960,Traditional,Natural gas (mains) +11 Berryfield Road,Aylesbury,Bucks,,HP19 9LZ,General Needs,House,1960,Traditional,Natural gas (mains) +14 Berryfield Road,Aylesbury,Bucks,,HP19 9LZ,General Needs,House,1960,Traditional,Natural gas (mains) +17 Berryfield Road,Aylesbury,Bucks,,HP19 9LZ,General Needs,House,1960,Traditional,Natural gas (mains) +27 Berryfield Road,Aylesbury,Bucks,,HP19 9LZ,General Needs,House,1960,Traditional,Natural gas (mains) +33 Berryfield Road,Aylesbury,Bucks,,HP19 9LZ,General Needs,House,1960,Traditional,Natural gas (mains) +28A Berryfield Road,Aylesbury,Bucks,,HP19 9LZ,General Needs,House,2015,Traditional,Natural gas (mains) +28B Berryfield Road,Aylesbury,Bucks,,HP19 9LZ,General Needs,House,2015,Traditional,Natural gas (mains) +5 Terry Drive,Aylesbury,Bucks,,HP19 9NA,General Needs,House,1960,Traditional,Natural gas (mains) +7 Terry Drive,Aylesbury,Bucks,,HP19 9NA,General Needs,House,1960,Traditional,Natural gas (mains) +8 Terry Drive,Aylesbury,Bucks,,HP19 9NA,General Needs,House,1960,Traditional,Natural gas (mains) +9 Terry Drive,Aylesbury,Bucks,,HP19 9NA,General Needs,House,1960,Traditional,Natural gas (mains) +10 Terry Drive,Aylesbury,Bucks,,HP19 9NA,General Needs,House,1960,Traditional,Natural gas (mains) +15 Terry Drive,Aylesbury,Bucks,,HP19 9NA,General Needs,House,1960,Traditional,Natural gas (mains) +17 Terry Drive,Aylesbury,Bucks,,HP19 9NA,General Needs,House,1960,Traditional,Natural gas (mains) +19 Terry Drive,Aylesbury,Bucks,,HP19 9NA,General Needs,House,1960,Traditional,Natural gas (mains) +13 Coventon Road,Aylesbury,Bucks,,HP19 9NB,General Needs,House,1960,Traditional,Natural gas (mains) +17 Coventon Road,Aylesbury,Bucks,,HP19 9NB,General Needs,House,1960,Traditional,Natural gas (mains) +19 Coventon Road,Aylesbury,Bucks,,HP19 9NB,General Needs,House,1960,Traditional,Natural gas (mains) +31 Coventon Road,Aylesbury,Bucks,,HP19 9NB,General Needs,House,1960,Traditional,Natural gas (mains) +33 Coventon Road,Aylesbury,Bucks,,HP19 9NB,General Needs,House,1960,Traditional,Natural gas (mains) +51 Coventon Road,Aylesbury,Bucks,,HP19 9NB,General Needs,House,1960,Traditional,Natural gas (mains) +53 Coventon Road,Aylesbury,Bucks,,HP19 9NB,General Needs,House,1960,Traditional,Natural gas (mains) +59 Coventon Road,Aylesbury,Bucks,,HP19 9NB,General Needs,House,1960,Traditional,Natural gas (mains) +63 Coventon Road,Aylesbury,Bucks,,HP19 9NB,General Needs,House,1960,Traditional,Natural gas (mains) +67 Coventon Road,Aylesbury,Bucks,,HP19 9NB,General Needs,House,1960,Traditional,Natural gas (mains) +46 Coventon Road,Aylesbury,Bucks,,HP19 9ND,General Needs,House,1960,Traditional,Natural gas (mains) +50 Coventon Road,Aylesbury,Bucks,,HP19 9ND,General Needs,House,1960,Traditional,Natural gas (mains) +56 Coventon Road,Aylesbury,Bucks,,HP19 9ND,General Needs,House,1960,Traditional,Natural gas (mains) +60 Coventon Road,Aylesbury,Bucks,,HP19 9ND,General Needs,House,1960,Traditional,Natural gas (mains) +62 Coventon Road,Aylesbury,Bucks,,HP19 9ND,General Needs,House,1960,Traditional,Natural gas (mains) +68 Coventon Road,Aylesbury,Bucks,,HP19 9ND,General Needs,House,1960,Traditional,Natural gas (mains) +70 Coventon Road,Aylesbury,Bucks,,HP19 9ND,General Needs,House,1960,Traditional,Natural gas (mains) +76 Coventon Road,Aylesbury,Bucks,,HP19 9ND,General Needs,House,1960,Traditional,Natural gas (mains) +78 Coventon Road,Aylesbury,Bucks,,HP19 9ND,General Needs,House,1960,Traditional,Natural gas (mains) +80 Coventon Road,Aylesbury,Bucks,,HP19 9ND,General Needs,House,1960,Traditional,Natural gas (mains) +84 Coventon Road,Aylesbury,Bucks,,HP19 9ND,General Needs,House,1960,Traditional,Natural gas (mains) +98 Coventon Road,Aylesbury,Bucks,,HP19 9ND,General Needs,House,1960,Traditional,Natural gas (mains) +102 Coventon Road,Aylesbury,Bucks,,HP19 9ND,General Needs,House,1960,Traditional,Natural gas (mains) +104 Coventon Road,Aylesbury,Bucks,,HP19 9ND,General Needs,House,1960,Traditional,Natural gas (mains) +106 Coventon Road,Aylesbury,Bucks,,HP19 9NE,General Needs,House,1960,Traditional,Natural gas (mains) +108 Coventon Road,Aylesbury,Bucks,,HP19 9NE,General Needs,House,1960,Traditional,Natural gas (mains) +110 Coventon Road,Aylesbury,Bucks,,HP19 9NE,General Needs,House,1960,Traditional,Natural gas (mains) +112 Coventon Road,Aylesbury,Bucks,,HP19 9NE,General Needs,House,1960,Traditional,Natural gas (mains) +1 Melford Green,Aylesbury,Bucks,,HP19 9NF,General Needs,House,1960,Traditional,Natural gas (mains) +3 Melford Green,Aylesbury,Bucks,,HP19 9NF,General Needs,House,1960,Traditional,Natural gas (mains) +4 Melford Green,Aylesbury,Bucks,,HP19 9NF,General Needs,House,1960,Traditional,Natural gas (mains) +6 Melford Green,Aylesbury,Bucks,,HP19 9NF,General Needs,Bungalow,1964,Traditional,Natural gas (mains) +7 Melford Green,Aylesbury,Bucks,,HP19 9NF,General Needs,Bungalow,1964,Traditional,Natural gas (mains) +8 Melford Green,Aylesbury,Bucks,,HP19 9NF,General Needs,Bungalow,1964,Traditional,Natural gas (mains) +9 Melford Green,Aylesbury,Bucks,,HP19 9NF,General Needs,Bungalow,1964,Traditional,Natural gas (mains) +10 Melford Green,Aylesbury,Bucks,,HP19 9NF,General Needs,Bungalow,1964,Traditional,Natural gas (mains) +11 Melford Green,Aylesbury,Bucks,,HP19 9NF,General Needs,Bungalow,1964,Traditional,Natural gas (mains) +7 Chantry Road,Aylesbury,Bucks,,HP19 9NG,General Needs,House,1960,Traditional,Natural gas (mains) +10 Chantry Road,Aylesbury,Bucks,,HP19 9NG,General Needs,House,1961,Traditional,Natural gas (mains) +12 Chantry Road,Aylesbury,Bucks,,HP19 9NG,General Needs,House,1961,Traditional,Natural gas (mains) +13 Chantry Road,Aylesbury,Bucks,,HP19 9NG,General Needs,House,1960,Traditional,Natural gas (mains) +16 Chantry Road,Aylesbury,Bucks,,HP19 9NG,General Needs,House,1961,Traditional,Natural gas (mains) +17 Chantry Road,Aylesbury,Bucks,,HP19 9NG,General Needs,House,1960,Traditional,Natural gas (mains) +20 Chantry Road,Aylesbury,Bucks,,HP19 9NG,General Needs,House,1961,Traditional,Natural gas (mains) +22 Chantry Road,Aylesbury,Bucks,,HP19 9NG,General Needs,House,1961,Traditional,Natural gas (mains) +23 Chantry Road,Aylesbury,Bucks,,HP19 9NG,General Needs,House,1960,Traditional,Natural gas (mains) +24 Chantry Road,Aylesbury,Bucks,,HP19 9NG,General Needs,House,1961,Traditional,Natural gas (mains) +29 Chantry Road,Aylesbury,Bucks,,HP19 9NG,General Needs,House,1960,Traditional,Natural gas (mains) +109 Weedon Road,Aylesbury,Bucks,,HP19 9NT,General Needs,House,1952,Traditional,Natural gas (mains) +129 Weedon Road,Aylesbury,Bucks,,HP19 9NT,General Needs,House,1958,Traditional,Natural gas (mains) +131 Weedon Road,Aylesbury,Bucks,,HP19 9NT,General Needs,House,1956,Traditional,Natural gas (mains) +4 Priory Crescent,Aylesbury,Bucks,,HP19 9NU,General Needs,House,1956,Traditional,Natural gas (mains) +12 Priory Crescent,Aylesbury,Bucks,,HP19 9NU,General Needs,House,1956,Traditional,Natural gas (mains) +16 Priory Crescent,Aylesbury,Bucks,,HP19 9NU,General Needs,House,1957,Traditional,Natural gas (mains) +20 Priory Crescent,Aylesbury,Bucks,,HP19 9NU,General Needs,House,1957,Traditional,Natural gas (mains) +26 Priory Crescent,Aylesbury,Bucks,,HP19 9NU,General Needs,House,1957,Traditional,Natural gas (mains) +28 Priory Crescent,Aylesbury,Bucks,,HP19 9NU,General Needs,House,1957,Traditional,Natural gas (mains) +34 Priory Crescent,Aylesbury,Bucks,,HP19 9NU,General Needs,House,1956,Traditional,Natural gas (mains) +38 Priory Crescent,Aylesbury,Bucks,,HP19 9NU,General Needs,House,1956,Traditional,Natural gas (mains) +52 Priory Crescent,Aylesbury,Bucks,,HP19 9NU,General Needs,House,1957,Traditional,Natural gas (mains) +5 Priory Close,Aylesbury,Bucks,,HP19 9NX,General Needs,House,1957,Traditional,Natural gas (mains) +7 Priory Close,Aylesbury,Bucks,,HP19 9NX,General Needs,House,1956,Traditional,Natural gas (mains) +11 Priory Close,Aylesbury,Bucks,,HP19 9NX,General Needs,House,1956,Traditional,Natural gas (mains) +13 Priory Close,Aylesbury,Bucks,,HP19 9NX,General Needs,House,1956,Traditional,Natural gas (mains) +18 Priory Close,Aylesbury,Bucks,,HP19 9NX,General Needs,House,1956,Traditional,Natural gas (mains) +20 Priory Close,Aylesbury,Bucks,,HP19 9NX,General Needs,House,1956,Traditional,Natural gas (mains) +23 Priory Close,Aylesbury,Bucks,,HP19 9NX,General Needs,House,1956,Traditional,Natural gas (mains) +83 Priory Crescent,Aylesbury,Bucks,,HP19 9NY,General Needs,House,1957,Traditional,Natural gas (mains) +87 Priory Crescent,Aylesbury,Bucks,,HP19 9NY,General Needs,House,1957,Traditional,Natural gas (mains) +89 Priory Crescent,Aylesbury,Bucks,,HP19 9NY,General Needs,House,1957,Traditional,Natural gas (mains) +107 Priory Crescent,Aylesbury,Bucks,,HP19 9NY,General Needs,House,1957,Traditional,Natural gas (mains) +5 Priory Crescent,Aylesbury,Bucks,,HP19 9NZ,General Needs,House,1956,Traditional,Natural gas (mains) +9 Priory Crescent,Aylesbury,Bucks,,HP19 9NZ,General Needs,House,1956,Traditional,Natural gas (mains) +11 Priory Crescent,Aylesbury,Bucks,,HP19 9NZ,General Needs,House,1956,Traditional,Natural gas (mains) +15 Priory Crescent,Aylesbury,Bucks,,HP19 9NZ,General Needs,Flat,1958,Traditional,Natural gas (mains) +17 Priory Crescent,Aylesbury,Bucks,,HP19 9NZ,General Needs,Flat,1958,Traditional,Natural gas (mains) +19 Priory Crescent,Aylesbury,Bucks,,HP19 9NZ,General Needs,Flat,1958,Traditional,Natural gas (mains) +21 Priory Crescent,Aylesbury,Bucks,,HP19 9NZ,General Needs,Flat,1958,Traditional,Natural gas (mains) +29 Priory Crescent,Aylesbury,Bucks,,HP19 9NZ,General Needs,Flat,1958,Traditional,Natural gas (mains) +31 Priory Crescent,Aylesbury,Bucks,,HP19 9NZ,General Needs,Flat,1958,Traditional,Natural gas (mains) +33 Priory Crescent,Aylesbury,Bucks,,HP19 9NZ,General Needs,Flat,1958,Traditional,Natural gas (mains) +35 Priory Crescent,Aylesbury,Bucks,,HP19 9NZ,General Needs,Flat,1958,Traditional,Natural gas (mains) +101 Priory Crescent,Aylesbury,Bucks,,HP19 9NZ,General Needs,House,1957,Traditional,Natural gas (mains) +103 Priory Crescent,Aylesbury,Bucks,,HP19 9NZ,General Needs,House,1957,Traditional,Natural gas (mains) +113 Priory Crescent,Aylesbury,Bucks,,HP19 9NZ,General Needs,House,1957,Traditional,Natural gas (mains) +77 Weedon Road,Aylesbury,Bucks,,HP19 9PA,General Needs,House,1952,Traditional,Natural gas (mains) +83 Weedon Road,Aylesbury,Bucks,,HP19 9PA,General Needs,House,1952,Traditional,Natural gas (mains) +118 Weedon Road,Aylesbury,Bucks,,HP19 9PA,General Needs,House,1952,Traditional,Natural gas (mains) +122 Weedon Road,Aylesbury,Bucks,,HP19 9PA,General Needs,House,1950,Traditional,Natural gas (mains) +61 Weedon Road,Aylesbury,Bucks,,HP19 9PB,General Needs,House,1950,Traditional,Natural gas (mains) +65 Weedon Road,Aylesbury,Bucks,,HP19 9PB,General Needs,House,1952,Traditional,Natural gas (mains) +71 Weedon Road,Aylesbury,Bucks,,HP19 9PB,General Needs,House,1952,Traditional,Natural gas (mains) +73 Weedon Road,Aylesbury,Bucks,,HP19 9PB,General Needs,House,1952,Traditional,Natural gas (mains) +75 Weedon Road,Aylesbury,Bucks,,HP19 9PB,General Needs,House,1952,Traditional,Natural gas (mains) +102 Weedon Road,Aylesbury,Bucks,,HP19 9PB,General Needs,House,1952,Traditional,Natural gas (mains) +108 Weedon Road,Aylesbury,Bucks,,HP19 9PB,General Needs,House,1952,Traditional,Natural gas (mains) +109 Cromwell Avenue,Aylesbury,Bucks,,HP19 9PH,General Needs,House,1950,Traditional,Natural gas (mains) +40 Cromwell Avenue,Aylesbury,Bucks,,HP19 9PJ,General Needs,House,1952,Traditional,Natural gas (mains) +42 Cromwell Avenue,Aylesbury,Bucks,,HP19 9PJ,General Needs,House,1952,Traditional,Natural gas (mains) +46 Cromwell Avenue,Aylesbury,Bucks,,HP19 9PJ,General Needs,House,1952,Traditional,Natural gas (mains) +52 Cromwell Avenue,Aylesbury,Bucks,,HP19 9PJ,General Needs,House,1952,Traditional,Natural gas (mains) +56 Cromwell Avenue,Aylesbury,Bucks,,HP19 9PJ,General Needs,House,1952,Traditional,Natural gas (mains) +65 Cromwell Avenue,Aylesbury,Bucks,,HP19 9PJ,General Needs,House,1950,Traditional,Natural gas (mains) +67 Cromwell Avenue,Aylesbury,Bucks,,HP19 9PJ,General Needs,House,1950,Traditional,Natural gas (mains) +76 Cromwell Avenue,Aylesbury,Bucks,,HP19 9PJ,General Needs,House,1950,Traditional,Natural gas (mains) +87 Cromwell Avenue,Aylesbury,Bucks,,HP19 9PJ,General Needs,House,1950,Traditional,Natural gas (mains) +91 Cromwell Avenue,Aylesbury,Bucks,,HP19 9PJ,General Needs,House,1950,Traditional,Natural gas (mains) +49 Cromwell Avenue,Aylesbury,Bucks,,HP19 9PL,General Needs,House,1952,Traditional,Natural gas (mains) +75 Chappell Close,Aylesbury,,,HP19 9QA,General Needs,Flat,2016,Traditional,Storage heaters +77 Chappell Close,Aylesbury,,,HP19 9QA,General Needs,Flat,2016,Traditional,Storage heaters +79 Chappell Close,Aylesbury,,,HP19 9QA,General Needs,Flat,2016,Traditional,Storage heaters +85 Chappell Close,Aylesbury,,,HP19 9QA,General Needs,Flat,2016,Traditional,Storage heaters +95 Chappell Close,Aylesbury,,,HP19 9QB,General Needs,Maisonette,2017,Traditional,Storage heaters +97 Chappell Close,Aylesbury,,,HP19 9QB,General Needs,Maisonette,2017,Traditional,Storage heaters +99 Chappell Close,Aylesbury,,,HP19 9QB,General Needs,Maisonette,2017,Traditional,Storage heaters +101 Chappell Close,Aylesbury,,,HP19 9QB,General Needs,Maisonette,2017,Traditional,Storage heaters +103 Chappell Close,Aylesbury,,,HP19 9QB,General Needs,Flat,2017,Traditional,Storage heaters +105 Chappell Close,Aylesbury,,,HP19 9QB,General Needs,Flat,2017,Traditional,Storage heaters +107 Chappell Close,Aylesbury,,,HP19 9QB,General Needs,Flat,2017,Traditional,Storage heaters +109 Chappell Close,Aylesbury,,,HP19 9QB,General Needs,Flat,2017,Traditional,Storage heaters +111 Chappell Close,Aylesbury,,,HP19 9QB,General Needs,Flat,2017,Traditional,Storage heaters +113 Chappell Close,Aylesbury,,,HP19 9QB,General Needs,Flat,2017,Traditional,Storage heaters +104 Buckingham Road,Aylesbury,Bucks,,HP19 9QG,General Needs,Flat,1955,Traditional,Natural gas (mains) +106 Buckingham Road,Aylesbury,Bucks,,HP19 9QG,General Needs,Flat,1955,Traditional,Natural gas (mains) +110 Buckingham Road,Aylesbury,Bucks,,HP19 9QN,General Needs,Flat,1955,Traditional,Natural gas (mains) +112 Buckingham Road,Aylesbury,Bucks,,HP19 9QN,General Needs,Flat,1955,Traditional,Natural gas (mains) +114 Buckingham Road,Aylesbury,Bucks,,HP19 9QN,General Needs,Flat,1955,Traditional,Natural gas (mains) +49 Whaddon Chase,Aylesbury,Bucks,,HP19 9QP,General Needs,Flat,1954,Traditional,Natural gas (mains) +50 Whaddon Chase,Aylesbury,Bucks,,HP19 9QP,General Needs,Flat,1954,Traditional,Natural gas (mains) +51 Whaddon Chase,Aylesbury,Bucks,,HP19 9QP,General Needs,Flat,1954,Traditional,Natural gas (mains) +52 Whaddon Chase,Aylesbury,Bucks,,HP19 9QP,General Needs,Flat,1954,Traditional,Natural gas (mains) +54 Whaddon Chase,Aylesbury,Bucks,,HP19 9QP,General Needs,Flat,1954,Traditional,Natural gas (mains) +57 Whaddon Chase,Aylesbury,Bucks,,HP19 9QP,General Needs,Flat,1954,Traditional,Natural gas (mains) +58 Whaddon Chase,Aylesbury,Bucks,,HP19 9QP,General Needs,Flat,1954,Traditional,Natural gas (mains) +60 Whaddon Chase,Aylesbury,Bucks,,HP19 9QP,General Needs,Flat,1954,Traditional,Natural gas (mains) +61 Whaddon Chase,Aylesbury,Bucks,,HP19 9QP,General Needs,Flat,1954,Traditional,Natural gas (mains) +62 Whaddon Chase,Aylesbury,Bucks,,HP19 9QP,General Needs,Flat,1954,Traditional,Natural gas (mains) +64 Whaddon Chase,Aylesbury,Bucks,,HP19 9QP,General Needs,Flat,1954,Traditional,Natural gas (mains) +65 Whaddon Chase,Aylesbury,Bucks,,HP19 9QP,General Needs,Flat,1955,Traditional,Natural gas (mains) +66 Whaddon Chase,Aylesbury,Bucks,,HP19 9QP,General Needs,Flat,1954,Traditional,Natural gas (mains) +67 Whaddon Chase,Aylesbury,Bucks,,HP19 9QP,General Needs,Flat,1954,Traditional,Natural gas (mains) +68 Whaddon Chase,Aylesbury,Bucks,,HP19 9QP,General Needs,Flat,1954,Traditional,Natural gas (mains) +69 Whaddon Chase,Aylesbury,Bucks,,HP19 9QP,General Needs,Flat,1964,Traditional,Natural gas (mains) +73 Whaddon Chase,Aylesbury,Bucks,,HP19 9QP,General Needs,Flat,1955,Traditional,Natural gas (mains) +74 Whaddon Chase,Aylesbury,Bucks,,HP19 9QP,General Needs,Flat,1954,Traditional,Natural gas (mains) +76 Whaddon Chase,Aylesbury,Bucks,,HP19 9QP,General Needs,Flat,1954,Traditional,Natural gas (mains) +77 Whaddon Chase,Aylesbury,Bucks,,HP19 9QP,General Needs,Flat,1954,Traditional,Natural gas (mains) +81 Whaddon Chase,Aylesbury,Bucks,,HP19 9QP,General Needs,Flat,1954,Traditional,Natural gas (mains) +85 Whaddon Chase,Aylesbury,Bucks,,HP19 9QP,General Needs,Flat,1954,Traditional,Natural gas (mains) +87 Whaddon Chase,Aylesbury,Bucks,,HP19 9QP,General Needs,Flat,1954,Traditional,Natural gas (mains) +89 Whaddon Chase,Aylesbury,Bucks,,HP19 9QP,General Needs,Flat,1954,Traditional,Natural gas (mains) +91 Whaddon Chase,Aylesbury,Bucks,,HP19 9QP,General Needs,Flat,1954,Traditional,Natural gas (mains) +93 Whaddon Chase,Aylesbury,Bucks,,HP19 9QP,General Needs,Flat,1954,Traditional,Natural gas (mains) +95 Whaddon Chase,Aylesbury,Bucks,,HP19 9QP,General Needs,Flat,1954,Traditional,Natural gas (mains) +82 Whaddon Chase,Aylesbury,Bucks,,HP19 9QR,General Needs,Flat,1954,Traditional,Natural gas (mains) +92 Whaddon Chase,Aylesbury,Bucks,,HP19 9QR,General Needs,Flat,1954,Traditional,Natural gas (mains) +94 Whaddon Chase,Aylesbury,Bucks,,HP19 9QR,General Needs,Flat,1954,Traditional,Natural gas (mains) +97 Whaddon Chase,Aylesbury,Bucks,,HP19 9QR,General Needs,Flat,1954,Traditional,Natural gas (mains) +99 Whaddon Chase,Aylesbury,Bucks,,HP19 9QR,General Needs,Flat,1954,Traditional,Natural gas (mains) +101 Whaddon Chase,Aylesbury,Bucks,,HP19 9QR,General Needs,Flat,1954,Traditional,Natural gas (mains) +103 Whaddon Chase,Aylesbury,Bucks,,HP19 9QR,General Needs,Flat,1954,Traditional,Natural gas (mains) +105 Whaddon Chase,Aylesbury,Bucks,,HP19 9QR,General Needs,Flat,1954,Traditional,Natural gas (mains) +111 Whaddon Chase,Aylesbury,Bucks,,HP19 9QR,General Needs,Flat,1955,Traditional,Natural gas (mains) +106 Whaddon Chase,Aylesbury,Bucks,,HP19 9QS,General Needs,House,1952,Traditional,Natural gas (mains) +117 Whaddon Chase,Aylesbury,Bucks,,HP19 9QS,General Needs,House,1951,Traditional,Natural gas (mains) +127 Whaddon Chase,Aylesbury,Bucks,,HP19 9QS,General Needs,House,1950,Traditional,Natural gas (mains) +131 Whaddon Chase,Aylesbury,Bucks,,HP19 9QS,General Needs,House,1950,Traditional,Natural gas (mains) +1 Whaddon Chase,Aylesbury,Bucks,,HP19 9QW,General Needs,Flat,1954,Traditional,Natural gas (mains) +2 Whaddon Chase,Aylesbury,Bucks,,HP19 9QW,General Needs,Maisonette,1954,Traditional,Natural gas (mains) +5 Whaddon Chase,Aylesbury,Bucks,,HP19 9QW,General Needs,Flat,1954,Traditional,Natural gas (mains) +10 Whaddon Chase,Aylesbury,Bucks,,HP19 9QW,General Needs,Flat,1954,Traditional,Natural gas (mains) +12 Whaddon Chase,Aylesbury,Bucks,,HP19 9QW,General Needs,Flat,1954,Traditional,Natural gas (mains) +13 Whaddon Chase,Aylesbury,Bucks,,HP19 9QW,General Needs,Flat,1954,Traditional,Natural gas (mains) +17 Whaddon Chase,Aylesbury,Bucks,,HP19 9QW,General Needs,Flat,1954,Traditional,Natural gas (mains) +20 Whaddon Chase,Aylesbury,Bucks,,HP19 9QW,General Needs,Flat,1954,Traditional,Natural gas (mains) +21 Whaddon Chase,Aylesbury,Bucks,,HP19 9QW,General Needs,Flat,1954,Traditional,Natural gas (mains) +23 Whaddon Chase,Aylesbury,Bucks,,HP19 9QW,General Needs,Flat,1954,Traditional,Natural gas (mains) +25 Whaddon Chase,Aylesbury,Bucks,,HP19 9QW,General Needs,Flat,1954,Traditional,Natural gas (mains) +29 Whaddon Chase,Aylesbury,Bucks,,HP19 9QW,General Needs,Flat,1954,Traditional,Natural gas (mains) +31 Whaddon Chase,Aylesbury,Bucks,,HP19 9QW,General Needs,Flat,1954,Traditional,Natural gas (mains) +33 Whaddon Chase,Aylesbury,Bucks,,HP19 9QW,General Needs,Flat,1954,Traditional,Natural gas (mains) +34 Whaddon Chase,Aylesbury,Bucks,,HP19 9QW,General Needs,Flat,1954,Traditional,Natural gas (mains) +37 Whaddon Chase,Aylesbury,Bucks,,HP19 9QW,General Needs,Flat,1954,Traditional,Natural gas (mains) +39 Whaddon Chase,Aylesbury,Bucks,,HP19 9QW,General Needs,Flat,1954,Traditional,Natural gas (mains) +42 Whaddon Chase,Aylesbury,Bucks,,HP19 9QW,General Needs,Flat,1954,Traditional,Natural gas (mains) +43 Whaddon Chase,Aylesbury,Bucks,,HP19 9QW,General Needs,Flat,1954,Traditional,Natural gas (mains) +106 Northern Road,Aylesbury,Bucks,,HP19 9QY,General Needs,Flat,1958,Traditional,Natural gas (mains) +65 Belgrave Road,Aylesbury,Bucks,,HP19 9TN,General Needs,House,1983,Traditional,Natural gas (mains) +67 Belgrave Road,Aylesbury,Bucks,,HP19 9TN,General Needs,House,1983,Traditional,Natural gas (mains) +71 Belgrave Road,Aylesbury,Bucks,,HP19 9TN,General Needs,House,1983,Traditional,Natural gas (mains) +77 Belgrave Road,Aylesbury,Bucks,,HP19 9TN,General Needs,House,1983,Traditional,Natural gas (mains) +81 Belgrave Road,Aylesbury,Bucks,,HP19 9TN,General Needs,House,1983,Traditional,Natural gas (mains) +83 Belgrave Road,Aylesbury,Bucks,,HP19 9TN,General Needs,House,1983,Traditional,Natural gas (mains) +4 Carr Close,Aylesbury,Bucks,,HP19 9TP,General Needs,House,1983,Traditional,Natural gas (mains) +7 Carr Close,Aylesbury,Bucks,,HP19 9TP,General Needs,House,1983,Traditional,Natural gas (mains) +8 Carr Close,Aylesbury,Bucks,,HP19 9TP,General Needs,House,1983,Traditional,Natural gas (mains) +12 Carr Close,Aylesbury,Bucks,,HP19 9TP,General Needs,House,1983,Traditional,Natural gas (mains) +13 Carr Close,Aylesbury,Bucks,,HP19 9TP,General Needs,Bungalow,1983,Traditional,Natural gas (mains) +14 Carr Close,Aylesbury,Bucks,,HP19 9TP,General Needs,House,1983,Traditional,Natural gas (mains) +15 Carr Close,Aylesbury,Bucks,,HP19 9TP,General Needs,House,1983,Traditional,Natural gas (mains) +16 Carr Close,Aylesbury,Bucks,,HP19 9TP,General Needs,House,1983,Traditional,Natural gas (mains) +19 Carr Close,Aylesbury,Bucks,,HP19 9TP,General Needs,House,1983,Traditional,Natural gas (mains) +23 Carr Close,Aylesbury,Bucks,,HP19 9TP,General Needs,House,1983,Traditional,Natural gas (mains) +30 Carr Close,Aylesbury,Bucks,,HP19 9TP,General Needs,House,1983,Traditional,Natural gas (mains) +1 Badrick Road,Aylesbury,Bucks,,HP19 9TR,General Needs,House,1983,Traditional,Natural gas (mains) +2 Badrick Road,Aylesbury,Bucks,,HP19 9TR,General Needs,Bungalow,1983,Traditional,Natural gas (mains) +4 Badrick Road,Aylesbury,Bucks,,HP19 9TR,General Needs,House,1983,Traditional,Natural gas (mains) +8 Badrick Road,Aylesbury,Bucks,,HP19 9TR,General Needs,House,1983,Traditional,Natural gas (mains) +10 Badrick Road,Aylesbury,Bucks,,HP19 9TR,General Needs,House,1983,Traditional,Natural gas (mains) +12 Badrick Road,Aylesbury,Bucks,,HP19 9TR,General Needs,House,1983,Traditional,Natural gas (mains) +14 Badrick Road,Aylesbury,Bucks,,HP19 9TR,General Needs,House,1983,Traditional,Natural gas (mains) +15 Badrick Road,Aylesbury,Bucks,,HP19 9TR,General Needs,House,1983,Traditional,Natural gas (mains) +17 Badrick Road,Aylesbury,Bucks,,HP19 9TR,General Needs,House,1983,Traditional,Natural gas (mains) +19 Badrick Road,Aylesbury,Bucks,,HP19 9TR,General Needs,House,1983,Traditional,Natural gas (mains) +21 Badrick Road,Aylesbury,Bucks,,HP19 9TR,General Needs,House,1983,Traditional,Natural gas (mains) +23 Badrick Road,Aylesbury,Bucks,,HP19 9TR,General Needs,House,1983,Traditional,Natural gas (mains) +27 Badrick Road,Aylesbury,Bucks,,HP19 9TR,General Needs,House,1983,Traditional,Natural gas (mains) +1 Haines Close,Aylesbury,Bucks,,HP19 9TS,General Needs,Bungalow,1984,Traditional,Natural gas (mains) +2 Haines Close,Aylesbury,Bucks,,HP19 9TS,General Needs,Bungalow,1984,Traditional,Natural gas (mains) +5 Haines Close,Aylesbury,Bucks,,HP19 9TS,General Needs,House,1984,Traditional,Natural gas (mains) +7 Haines Close,Aylesbury,Bucks,,HP19 9TS,General Needs,House,1984,Traditional,Natural gas (mains) +8 Haines Close,Aylesbury,Bucks,,HP19 9TS,General Needs,House,1984,Traditional,Natural gas (mains) +9 Haines Close,Aylesbury,Bucks,,HP19 9TS,General Needs,House,1984,Traditional,Natural gas (mains) +13 Haines Close,Aylesbury,Bucks,,HP19 9TS,General Needs,House,1984,Traditional,Natural gas (mains) +15 Haines Close,Aylesbury,Bucks,,HP19 9TS,General Needs,Bungalow,1984,Traditional,Natural gas (mains) +16 Haines Close,Aylesbury,Bucks,,HP19 9TS,General Needs,Bungalow,1984,Traditional,Natural gas (mains) +17 Haines Close,Aylesbury,Bucks,,HP19 9TS,General Needs,House,1984,Traditional,Natural gas (mains) +18 Haines Close,Aylesbury,Bucks,,HP19 9TS,General Needs,House,1984,Traditional,Natural gas (mains) +22 Haines Close,Aylesbury,Bucks,,HP19 9TS,General Needs,House,1984,Traditional,Natural gas (mains) +26 Haines Close,Aylesbury,Bucks,,HP19 9TS,General Needs,House,1984,Traditional,Natural gas (mains) +30 Haines Close,Aylesbury,Bucks,,HP19 9TS,General Needs,Bungalow,1984,Traditional,Natural gas (mains) +31 Haines Close,Aylesbury,Bucks,,HP19 9TS,General Needs,House,1984,Traditional,Natural gas (mains) +33 Haines Close,Aylesbury,Bucks,,HP19 9TS,General Needs,Bungalow,1984,Traditional,Natural gas (mains) +35 Haines Close,Aylesbury,Bucks,,HP19 9TS,General Needs,Bungalow,1985,Traditional,Natural gas (mains) +39 Haines Close,Aylesbury,Bucks,,HP19 9TS,General Needs,House,1984,Traditional,Natural gas (mains) +45 Haines Close,Aylesbury,Bucks,,HP19 9TS,General Needs,House,1984,Traditional,Natural gas (mains) +2 Lander Road,Aylesbury,Bucks,,HP19 9TT,General Needs,House,1986,Traditional,Natural gas (mains) +4 Lander Road,Aylesbury,Bucks,,HP19 9TT,General Needs,House,1986,Traditional,Natural gas (mains) +5 Lander Road,Aylesbury,Bucks,,HP19 9TT,General Needs,House,1986,Traditional,Natural gas (mains) +12 Lander Road,Aylesbury,Bucks,,HP19 9TT,General Needs,House,1986,Traditional,Natural gas (mains) +14 Lander Road,Aylesbury,Bucks,,HP19 9TT,General Needs,House,1986,Traditional,Natural gas (mains) +18 Lander Road,Aylesbury,Bucks,,HP19 9TT,General Needs,House,1986,Traditional,Natural gas (mains) +22 Lander Road,Aylesbury,Bucks,,HP19 9TT,General Needs,House,1986,Traditional,Natural gas (mains) +30 Lander Road,Aylesbury,Bucks,,HP19 9TT,General Needs,Bungalow,1986,Traditional,Natural gas (mains) +31 Lander Road,Aylesbury,Bucks,,HP19 9TT,General Needs,Bungalow,1986,Traditional,Natural gas (mains) +32 Lander Road,Aylesbury,Bucks,,HP19 9TT,General Needs,Bungalow,1986,Traditional,Natural gas (mains) +1 Eeles Close,Aylesbury,Bucks,,HP19 9TU,General Needs,House,1986,Traditional,Natural gas (mains) +2 Eeles Close,Aylesbury,Bucks,,HP19 9TU,General Needs,House,1986,Traditional,Natural gas (mains) +3 Eeles Close,Aylesbury,Bucks,,HP19 9TU,General Needs,House,1986,Traditional,Natural gas (mains) +5 Eeles Close,Aylesbury,Bucks,,HP19 9TU,General Needs,Bungalow,1986,Traditional,Natural gas (mains) +6 Eeles Close,Aylesbury,Bucks,,HP19 9TU,General Needs,Bungalow,1986,Traditional,Natural gas (mains) +7 Eeles Close,Aylesbury,Bucks,,HP19 9TU,General Needs,Bungalow,1986,Traditional,Natural gas (mains) +8 Eeles Close,Aylesbury,Bucks,,HP19 9TU,General Needs,Bungalow,1986,Traditional,Natural gas (mains) +9 Eeles Close,Aylesbury,Bucks,,HP19 9TU,General Needs,Bungalow,1986,Traditional,Natural gas (mains) +10 Eeles Close,Aylesbury,Bucks,,HP19 9TU,General Needs,Bungalow,1986,Traditional,Natural gas (mains) +12 Eeles Close,Aylesbury,Bucks,,HP19 9TU,General Needs,House,1986,Traditional,Natural gas (mains) +15 Eeles Close,Aylesbury,Bucks,,HP19 9TU,General Needs,House,1986,Traditional,Natural gas (mains) +1 Gardner Close,Aylesbury,Bucks,,HP19 9TW,General Needs,House,1989,Traditional,Natural gas (mains) +2 Gardner Close,Aylesbury,Bucks,,HP19 9TW,General Needs,House,1989,Traditional,Natural gas (mains) +3 Gardner Close,Aylesbury,Bucks,,HP19 9TW,General Needs,House,1989,Traditional,Natural gas (mains) +4 Gardner Close,Aylesbury,Bucks,,HP19 9TW,General Needs,House,1989,Traditional,Natural gas (mains) +7 Gardner Close,Aylesbury,Bucks,,HP19 9TW,General Needs,House,1989,Traditional,Natural gas (mains) +9 Gardner Close,Aylesbury,Bucks,,HP19 9TW,General Needs,House,1989,Traditional,Natural gas (mains) +11 Gardner Close,Aylesbury,Bucks,,HP19 9TW,General Needs,House,1989,Traditional,Natural gas (mains) +3 Ailward Road,Aylesbury,Bucks,,HP19 9TX,General Needs,House,1983,Traditional,Natural gas (mains) +13 Ailward Road,Aylesbury,Bucks,,HP19 9TX,General Needs,Bungalow,1983,Traditional,Natural gas (mains) +19 Ailward Road,Aylesbury,Bucks,,HP19 9TX,General Needs,House,1983,Traditional,Natural gas (mains) +21 Ailward Road,Aylesbury,Bucks,,HP19 9TX,General Needs,House,1983,Traditional,Natural gas (mains) +25 Ailward Road,Aylesbury,Bucks,,HP19 9TX,General Needs,House,1983,Traditional,Natural gas (mains) +20 Ailward Road,Aylesbury,Bucks,,HP19 9TY,General Needs,House,1983,Traditional,Natural gas (mains) +24 Ailward Road,Aylesbury,Bucks,,HP19 9TY,General Needs,House,1983,Traditional,Natural gas (mains) +29 Ailward Road,Aylesbury,Bucks,,HP19 9TY,General Needs,House,1983,Traditional,Natural gas (mains) +30 Ailward Road,Aylesbury,Bucks,,HP19 9TY,General Needs,Bungalow,1983,Traditional,Natural gas (mains) +31 Ailward Road,Aylesbury,Bucks,,HP19 9TY,General Needs,House,1983,Traditional,Natural gas (mains) +32 Ailward Road,Aylesbury,Bucks,,HP19 9TY,General Needs,House,1983,Traditional,Natural gas (mains) +35 Ailward Road,Aylesbury,Bucks,,HP19 9TY,General Needs,House,1983,Traditional,Natural gas (mains) +40 Ailward Road,Aylesbury,Bucks,,HP19 9TY,General Needs,House,1983,Traditional,Natural gas (mains) +41 Ailward Road,Aylesbury,Bucks,,HP19 9TY,General Needs,House,1983,Traditional,Natural gas (mains) +42 Ailward Road,Aylesbury,Bucks,,HP19 9TY,General Needs,House,1983,Traditional,Natural gas (mains) +43 Ailward Road,Aylesbury,Bucks,,HP19 9TY,General Needs,House,1983,Traditional,Natural gas (mains) +46 Ailward Road,Aylesbury,Bucks,,HP19 9TY,General Needs,House,1983,Traditional,Natural gas (mains) +57 Ailward Road,Aylesbury,Bucks,,HP19 9TY,General Needs,House,1983,Traditional,Natural gas (mains) +59 Ailward Road,Aylesbury,Bucks,,HP19 9TY,General Needs,House,1983,Traditional,Natural gas (mains) +1 Essex Place,Aylesbury,Bucks,,HP19 9TZ,General Needs,House,1989,Traditional,Natural gas (mains) +2 Essex Place,Aylesbury,Bucks,,HP19 9TZ,General Needs,House,1989,Traditional,Natural gas (mains) +3 Essex Place,Aylesbury,Bucks,,HP19 9TZ,General Needs,House,1989,Traditional,Natural gas (mains) +4 Essex Place,Aylesbury,Bucks,,HP19 9TZ,General Needs,House,1989,Traditional,Natural gas (mains) +6 Essex Place,Aylesbury,Bucks,,HP19 9TZ,General Needs,House,1989,Traditional,Natural gas (mains) +9 Essex Place,Aylesbury,Bucks,,HP19 9TZ,General Needs,House,1989,Traditional,Natural gas (mains) +10 Essex Place,Aylesbury,Bucks,,HP19 9TZ,General Needs,House,1989,Traditional,Natural gas (mains) +11 Essex Place,Aylesbury,Bucks,,HP19 9TZ,General Needs,House,1989,Traditional,Natural gas (mains) +12 Essex Place,Aylesbury,Bucks,,HP19 9TZ,General Needs,House,1989,Traditional,Natural gas (mains) +15 Essex Place,Aylesbury,Bucks,,HP19 9TZ,General Needs,House,1989,Traditional,Natural gas (mains) +19 Essex Place,Aylesbury,Bucks,,HP19 9TZ,General Needs,House,1989,Traditional,Natural gas (mains) +21 Essex Place,Aylesbury,Bucks,,HP19 9TZ,General Needs,House,1989,Traditional,Natural gas (mains) +23 Essex Place,Aylesbury,Bucks,,HP19 9TZ,General Needs,House,1989,Traditional,Natural gas (mains) +2 Dicks Way,Aylesbury,Bucks,,HP19 9UA,General Needs,House,1985,Traditional,Natural gas (mains) +4 Dicks Way,Aylesbury,Bucks,,HP19 9UA,General Needs,House,1985,Traditional,Natural gas (mains) +5 Dicks Way,Aylesbury,Bucks,,HP19 9UA,General Needs,House,1985,Traditional,Natural gas (mains) +6 Dicks Way,Aylesbury,Bucks,,HP19 9UA,General Needs,House,1985,Traditional,Natural gas (mains) +8 Dicks Way,Aylesbury,Bucks,,HP19 9UA,General Needs,House,1985,Traditional,Natural gas (mains) +9 Dicks Way,Aylesbury,Bucks,,HP19 9UA,General Needs,House,1985,Traditional,Natural gas (mains) +14 Dicks Way,Aylesbury,Bucks,,HP19 9UA,General Needs,House,1985,Traditional,Natural gas (mains) +15 Dicks Way,Aylesbury,Bucks,,HP19 9UA,General Needs,House,1985,Traditional,Natural gas (mains) +17 Dicks Way,Aylesbury,Bucks,,HP19 9UA,General Needs,House,1985,Traditional,Natural gas (mains) +20 Dicks Way,Aylesbury,Bucks,,HP19 9UA,General Needs,House,1985,Traditional,Natural gas (mains) +26 Dicks Way,Aylesbury,Bucks,,HP19 9UA,General Needs,House,1985,Traditional,Natural gas (mains) +28 Dicks Way,Aylesbury,Bucks,,HP19 9UA,General Needs,House,1985,Traditional,Natural gas (mains) +30 Dicks Way,Aylesbury,Bucks,,HP19 9UA,General Needs,Bungalow,1985,Traditional,Natural gas (mains) +32 Dicks Way,Aylesbury,Bucks,,HP19 9UA,General Needs,Bungalow,1985,Traditional,Natural gas (mains) +34 Dicks Way,Aylesbury,Bucks,,HP19 9UA,General Needs,Bungalow,1985,Traditional,Natural gas (mains) +36 Dicks Way,Aylesbury,Bucks,,HP19 9UA,General Needs,Bungalow,1985,Traditional,Natural gas (mains) +4 Fletcher Close,Aylesbury,Bucks,,HP19 9UB,General Needs,House,1985,Traditional,Natural gas (mains) +5 Fletcher Close,Aylesbury,Bucks,,HP19 9UB,General Needs,House,1985,Traditional,Natural gas (mains) +7 Fletcher Close,Aylesbury,Bucks,,HP19 9UB,General Needs,Bungalow,1985,Traditional,Natural gas (mains) +8 Fletcher Close,Aylesbury,Bucks,,HP19 9UB,General Needs,Bungalow,1985,Traditional,Natural gas (mains) +10 Fletcher Close,Aylesbury,Bucks,,HP19 9UB,General Needs,Bungalow,1985,Traditional,Natural gas (mains) +11 Fletcher Close,Aylesbury,Bucks,,HP19 9UB,General Needs,Bungalow,1985,Traditional,Natural gas (mains) +12 Fletcher Close,Aylesbury,Bucks,,HP19 9UB,General Needs,Bungalow,1985,Traditional,Natural gas (mains) +24 Fletcher Close,Aylesbury,Bucks,,HP19 9UB,General Needs,House,1985,Traditional,Natural gas (mains) +25 Fletcher Close,Aylesbury,Bucks,,HP19 9UB,General Needs,House,1985,Traditional,Natural gas (mains) +27 Fletcher Close,Aylesbury,Bucks,,HP19 9UB,General Needs,House,1985,Traditional,Natural gas (mains) +28 Fletcher Close,Aylesbury,Bucks,,HP19 9UB,General Needs,House,1985,Traditional,Natural gas (mains) +29 Fletcher Close,Aylesbury,Bucks,,HP19 9UB,General Needs,House,1985,Traditional,Natural gas (mains) +31 Fletcher Close,Aylesbury,Bucks,,HP19 9UB,General Needs,House,1985,Traditional,Natural gas (mains) +32 Fletcher Close,Aylesbury,Bucks,,HP19 9UB,General Needs,House,1985,Traditional,Natural gas (mains) +33 Fletcher Close,Aylesbury,Bucks,,HP19 9UB,General Needs,House,1985,Traditional,Natural gas (mains) +34 Fletcher Close,Aylesbury,Bucks,,HP19 9UB,General Needs,House,1985,Traditional,Natural gas (mains) +1 Grimmer Close,Aylesbury,Bucks,,HP19 9UD,General Needs,House,1986,Traditional,Natural gas (mains) +11 Grimmer Close,Aylesbury,Bucks,,HP19 9UD,General Needs,House,1986,Traditional,Natural gas (mains) +14 Grimmer Close,Aylesbury,Bucks,,HP19 9UD,General Needs,House,1986,Traditional,Natural gas (mains) +15 Grimmer Close,Aylesbury,Bucks,,HP19 9UD,General Needs,House,1986,Traditional,Natural gas (mains) +17 Grimmer Close,Aylesbury,Bucks,,HP19 9UD,General Needs,House,1986,Traditional,Natural gas (mains) +18 Grimmer Close,Aylesbury,Bucks,,HP19 9UD,General Needs,House,1986,Traditional,Natural gas (mains) +21 Grimmer Close,Aylesbury,Bucks,,HP19 9UD,General Needs,House,1986,Traditional,Natural gas (mains) +23 Grimmer Close,Aylesbury,Bucks,,HP19 9UD,General Needs,House,1986,Traditional,Natural gas (mains) +24 Grimmer Close,Aylesbury,Bucks,,HP19 9UD,General Needs,House,1986,Traditional,Natural gas (mains) +28 Grimmer Close,Aylesbury,Bucks,,HP19 9UD,General Needs,House,1986,Traditional,Natural gas (mains) +30 Grimmer Close,Aylesbury,Bucks,,HP19 9UD,General Needs,House,1986,Traditional,Natural gas (mains) +1 Autumn Close,Aylesbury,Bucks,,HP19 9UL,General Needs,House,1989,Traditional,Natural gas (mains) +2 Autumn Close,Aylesbury,Bucks,,HP19 9UL,General Needs,House,1989,Traditional,Natural gas (mains) +5 Autumn Close,Aylesbury,Bucks,,HP19 9UL,General Needs,House,1989,Traditional,Natural gas (mains) +6 Autumn Close,Aylesbury,Bucks,,HP19 9UL,General Needs,House,1989,Traditional,Natural gas (mains) +9 Autumn Close,Aylesbury,Bucks,,HP19 9UL,General Needs,House,1989,Traditional,Natural gas (mains) +10 Autumn Close,Aylesbury,Bucks,,HP19 9UL,General Needs,House,1989,Traditional,Natural gas (mains) +15 Autumn Close,Aylesbury,Bucks,,HP19 9UL,General Needs,House,1989,Traditional,Natural gas (mains) +19 Autumn Close,Aylesbury,Bucks,,HP19 9UL,General Needs,House,1989,Traditional,Natural gas (mains) +21 Autumn Close,Aylesbury,Bucks,,HP19 9UL,General Needs,House,1989,Traditional,Natural gas (mains) +23 Autumn Close,Aylesbury,Bucks,,HP19 9UL,General Needs,House,1989,Traditional,Natural gas (mains) +1 Vincent Road,Aylesbury,Bucks,,HP19 9UN,General Needs,House,1986,Traditional,Natural gas (mains) +6 Vincent Road,Aylesbury,Bucks,,HP19 9UN,General Needs,House,1986,Traditional,Natural gas (mains) +10 Vincent Road,Aylesbury,Bucks,,HP19 9UN,General Needs,House,1986,Traditional,Natural gas (mains) +12 Vincent Road,Aylesbury,Bucks,,HP19 9UN,General Needs,House,1986,Traditional,Natural gas (mains) +13 Vincent Road,Aylesbury,Bucks,,HP19 9UN,General Needs,House,1986,Traditional,Natural gas (mains) +16 Vincent Road,Aylesbury,Bucks,,HP19 9UN,General Needs,House,1986,Traditional,Natural gas (mains) +21 Vincent Road,Aylesbury,Bucks,,HP19 9UN,General Needs,House,1986,Traditional,Natural gas (mains) +24 Vincent Road,Aylesbury,Bucks,,HP19 9UN,General Needs,House,1986,Traditional,Natural gas (mains) +26 Vincent Road,Aylesbury,Bucks,,HP19 9UN,General Needs,House,1986,Traditional,Natural gas (mains) +27 Vincent Road,Aylesbury,Bucks,,HP19 9UN,General Needs,House,1986,Traditional,Natural gas (mains) +32 Vincent Road,Aylesbury,Bucks,,HP19 9UN,General Needs,House,1986,Traditional,Natural gas (mains) +1 Levings Close,Aylesbury,Bucks,,HP19 9UP,General Needs,Bungalow,1987,Traditional,Natural gas (mains) +2 Levings Close,Aylesbury,Bucks,,HP19 9UP,General Needs,Bungalow,1987,Traditional,Natural gas (mains) +5 Levings Close,Aylesbury,Bucks,,HP19 9UP,General Needs,House,1987,Traditional,Natural gas (mains) +7 Levings Close,Aylesbury,Bucks,,HP19 9UP,General Needs,House,1987,Traditional,Natural gas (mains) +15 Levings Close,Aylesbury,Bucks,,HP19 9UP,General Needs,House,1987,Traditional,Natural gas (mains) +17 Levings Close,Aylesbury,Bucks,,HP19 9UP,General Needs,House,1987,Traditional,Natural gas (mains) +19 Levings Close,Aylesbury,Bucks,,HP19 9UP,General Needs,House,1987,Traditional,Natural gas (mains) +22 Levings Close,Aylesbury,Bucks,,HP19 9UP,General Needs,House,1987,Traditional,Natural gas (mains) +23 Levings Close,Aylesbury,Bucks,,HP19 9UP,General Needs,House,1987,Traditional,Natural gas (mains) +25 Levings Close,Aylesbury,Bucks,,HP19 9UP,General Needs,House,1987,Traditional,Natural gas (mains) +26 Levings Close,Aylesbury,Bucks,,HP19 9UP,General Needs,House,1987,Traditional,Natural gas (mains) +30 Levings Close,Aylesbury,Bucks,,HP19 9UP,General Needs,House,1987,Traditional,Natural gas (mains) +4 Nappin Close,Aylesbury,Bucks,,HP19 9UR,General Needs,House,1988,Traditional,Natural gas (mains) +6 Nappin Close,Aylesbury,Bucks,,HP19 9UR,General Needs,House,1988,Traditional,Natural gas (mains) +7 Nappin Close,Aylesbury,Bucks,,HP19 9UR,General Needs,Bungalow,1988,Traditional,Natural gas (mains) +8 Nappin Close,Aylesbury,Bucks,,HP19 9UR,General Needs,Bungalow,1988,Traditional,Natural gas (mains) +10 Nappin Close,Aylesbury,Bucks,,HP19 9UR,General Needs,House,1988,Traditional,Natural gas (mains) +11 Nappin Close,Aylesbury,Bucks,,HP19 9UR,General Needs,House,1988,Traditional,Natural gas (mains) +12 Nappin Close,Aylesbury,Bucks,,HP19 9UR,General Needs,House,1988,Traditional,Natural gas (mains) +13 Nappin Close,Aylesbury,Bucks,,HP19 9UR,General Needs,Bungalow,1988,Traditional,Natural gas (mains) +14 Nappin Close,Aylesbury,Bucks,,HP19 9UR,General Needs,Bungalow,1988,Traditional,Natural gas (mains) +5 O'Grady Way,Aylesbury,Bucks,,HP19 9UT,General Needs,House,1987,Traditional,Natural gas (mains) +6 O'Grady Way,Aylesbury,Bucks,,HP19 9UT,General Needs,House,1987,Traditional,Natural gas (mains) +12 O'Grady Way,Aylesbury,Bucks,,HP19 9UT,General Needs,House,1987,Traditional,Natural gas (mains) +13 O'Grady Way,Aylesbury,Bucks,,HP19 9UT,General Needs,House,1987,Traditional,Natural gas (mains) +15 O'Grady Way,Aylesbury,Bucks,,HP19 9UT,General Needs,House,1987,Traditional,Natural gas (mains) +17 O'Grady Way,Aylesbury,Bucks,,HP19 9UT,General Needs,Bungalow,1987,Traditional,Natural gas (mains) +18 O'Grady Way,Aylesbury,Bucks,,HP19 9UT,General Needs,House,1987,Traditional,Natural gas (mains) +19 O'Grady Way,Aylesbury,Bucks,,HP19 9UT,General Needs,Bungalow,1987,Traditional,Natural gas (mains) +20 O'Grady Way,Aylesbury,Bucks,,HP19 9UT,General Needs,House,1987,Traditional,Natural gas (mains) +21 O'Grady Way,Aylesbury,Bucks,,HP19 9UT,General Needs,House,1987,Traditional,Natural gas (mains) +23 O'Grady Way,Aylesbury,Bucks,,HP19 9UT,General Needs,House,1987,Traditional,Natural gas (mains) +2 Aston Close,Aylesbury,Bucks,,HP19 9UU,General Needs,House,1989,Traditional,Natural gas (mains) +3 Aston Close,Aylesbury,Bucks,,HP19 9UU,General Needs,House,1989,Traditional,Natural gas (mains) +5 Aston Close,Aylesbury,Bucks,,HP19 9UU,General Needs,House,1989,Traditional,Natural gas (mains) +6 Aston Close,Aylesbury,Bucks,,HP19 9UU,General Needs,House,1989,Traditional,Natural gas (mains) +8 Aston Close,Aylesbury,Bucks,,HP19 9UU,General Needs,House,1989,Traditional,Natural gas (mains) +9 Aston Close,Aylesbury,Bucks,,HP19 9UU,General Needs,House,1989,Traditional,Natural gas (mains) +11 Aston Close,Aylesbury,Bucks,,HP19 9UU,General Needs,House,1989,Traditional,Natural gas (mains) +12 Aston Close,Aylesbury,Bucks,,HP19 9UU,General Needs,House,1989,Traditional,Natural gas (mains) +15 Aston Close,Aylesbury,Bucks,,HP19 9UU,General Needs,House,1989,Traditional,Natural gas (mains) +16 Aston Close,Aylesbury,Bucks,,HP19 9UU,General Needs,House,1989,Traditional,Natural gas (mains) +18 Aston Close,Aylesbury,Bucks,,HP19 9UU,General Needs,House,1989,Traditional,Natural gas (mains) +19 Aston Close,Aylesbury,Bucks,,HP19 9UU,General Needs,House,1989,Traditional,Natural gas (mains) +21 Aston Close,Aylesbury,Bucks,,HP19 9UU,General Needs,House,1989,Traditional,Natural gas (mains) +1 Reading Close,Aylesbury,Bucks,,HP19 9UW,General Needs,House,1986,Traditional,Natural gas (mains) +2 Reading Close,Aylesbury,Bucks,,HP19 9UW,General Needs,House,1986,Traditional,Natural gas (mains) +3 Reading Close,Aylesbury,Bucks,,HP19 9UW,General Needs,House,1986,Traditional,Natural gas (mains) +4 Reading Close,Aylesbury,Bucks,,HP19 9UW,General Needs,House,1986,Traditional,Natural gas (mains) +5 Reading Close,Aylesbury,Bucks,,HP19 9UW,General Needs,House,1986,Traditional,Natural gas (mains) +6 Reading Close,Aylesbury,Bucks,,HP19 9UW,General Needs,House,1986,Traditional,Natural gas (mains) +7 Reading Close,Aylesbury,Bucks,,HP19 9UW,General Needs,House,1986,Traditional,Natural gas (mains) +9 Reading Close,Aylesbury,Bucks,,HP19 9UW,General Needs,House,1986,Traditional,Natural gas (mains) +10 Reading Close,Aylesbury,Bucks,,HP19 9UW,General Needs,House,1986,Traditional,Natural gas (mains) +1 Robinson Close,Aylesbury,Bucks,,HP19 9UX,General Needs,House,1989,Traditional,Natural gas (mains) +2 Robinson Close,Aylesbury,Bucks,,HP19 9UX,General Needs,House,1989,Traditional,Natural gas (mains) +3 Robinson Close,Aylesbury,Bucks,,HP19 9UX,General Needs,House,1989,Traditional,Natural gas (mains) +4 Robinson Close,Aylesbury,Bucks,,HP19 9UX,General Needs,House,1989,Traditional,Natural gas (mains) +5 Robinson Close,Aylesbury,Bucks,,HP19 9UX,General Needs,House,1989,Traditional,Natural gas (mains) +6 Robinson Close,Aylesbury,Bucks,,HP19 9UX,General Needs,House,1989,Traditional,Natural gas (mains) +7 Robinson Close,Aylesbury,Bucks,,HP19 9UX,General Needs,House,1989,Traditional,Natural gas (mains) +8 Robinson Close,Aylesbury,Bucks,,HP19 9UX,General Needs,House,1989,Traditional,Natural gas (mains) +9 Robinson Close,Aylesbury,Bucks,,HP19 9UX,General Needs,House,1989,Traditional,Natural gas (mains) +10 Robinson Close,Aylesbury,Bucks,,HP19 9UX,General Needs,House,1989,Traditional,Natural gas (mains) +11 Robinson Close,Aylesbury,Bucks,,HP19 9UX,General Needs,Bungalow,1989,Traditional,Natural gas (mains) +12 Robinson Close,Aylesbury,Bucks,,HP19 9UX,General Needs,House,1989,Traditional,Natural gas (mains) +14 Robinson Close,Aylesbury,Bucks,,HP19 9UX,General Needs,House,1989,Traditional,Natural gas (mains) +15 Robinson Close,Aylesbury,Bucks,,HP19 9UX,General Needs,Bungalow,1989,Traditional,Natural gas (mains) +16 Robinson Close,Aylesbury,Bucks,,HP19 9UX,General Needs,Bungalow,1989,Traditional,Natural gas (mains) +17 Robinson Close,Aylesbury,Bucks,,HP19 9UX,General Needs,House,1989,Traditional,Natural gas (mains) +18 Robinson Close,Aylesbury,Bucks,,HP19 9UX,General Needs,Bungalow,1989,Traditional,Natural gas (mains) +19 Robinson Close,Aylesbury,Bucks,,HP19 9UX,General Needs,House,1989,Traditional,Natural gas (mains) +20 Robinson Close,Aylesbury,Bucks,,HP19 9UX,General Needs,Bungalow,1989,Traditional,Natural gas (mains) +21 Robinson Close,Aylesbury,Bucks,,HP19 9UX,General Needs,House,1989,Traditional,Natural gas (mains) +22 Robinson Close,Aylesbury,Bucks,,HP19 9UX,General Needs,Bungalow,1989,Traditional,Natural gas (mains) +1 Adkins Close,Aylesbury,Bucks,,HP19 9UY,General Needs,House,1989,Traditional,Natural gas (mains) +2 Adkins Close,Aylesbury,Bucks,,HP19 9UY,General Needs,House,1989,Traditional,Natural gas (mains) +3 Adkins Close,Aylesbury,Bucks,,HP19 9UY,General Needs,House,1989,Traditional,Natural gas (mains) +4 Adkins Close,Aylesbury,Bucks,,HP19 9UY,General Needs,House,1989,Traditional,Natural gas (mains) +5 Adkins Close,Aylesbury,Bucks,,HP19 9UY,General Needs,House,1989,Traditional,Natural gas (mains) +6 Adkins Close,Aylesbury,Bucks,,HP19 9UY,General Needs,House,1989,Traditional,Natural gas (mains) +8 Adkins Close,Aylesbury,Bucks,,HP19 9UY,General Needs,House,1989,Traditional,Natural gas (mains) +10 Adkins Close,Aylesbury,Bucks,,HP19 9UY,General Needs,House,1989,Traditional,Natural gas (mains) +12 Adkins Close,Aylesbury,Bucks,,HP19 9UY,General Needs,House,1989,Traditional,Natural gas (mains) +14 Adkins Close,Aylesbury,Bucks,,HP19 9UY,General Needs,House,1989,Traditional,Natural gas (mains) +15 Adkins Close,Aylesbury,Bucks,,HP19 9UY,General Needs,House,1989,Traditional,Natural gas (mains) +17 Adkins Close,Aylesbury,Bucks,,HP19 9UY,General Needs,House,1989,Traditional,Natural gas (mains) +18 Adkins Close,Aylesbury,Bucks,,HP19 9UY,General Needs,House,1989,Traditional,Natural gas (mains) +19 Adkins Close,Aylesbury,Bucks,,HP19 9UY,General Needs,House,1989,Traditional,Natural gas (mains) +21 Adkins Close,Aylesbury,Bucks,,HP19 9UY,General Needs,House,1989,Traditional,Natural gas (mains) +22 Adkins Close,Aylesbury,Bucks,,HP19 9UY,General Needs,House,1989,Traditional,Natural gas (mains) +53 Stocklake,Aylesbury,Bucks,,HP20 1DA,General Needs,House,1937,Traditional,Natural gas (mains) +9 Abbotts Road,Aylesbury,Bucks,,HP20 1HY,General Needs,House,1930,Traditional,Natural gas (mains) +8 Vale Road,Aylesbury,Bucks,,HP20 1JA,General Needs,House,1900,Traditional,Natural gas (mains) +1 Shakespeare Way,Aylesbury,Bucks,,HP20 1JF,General Needs,House,1990,Traditional,Natural gas (mains) +3 Shakespeare Way,Aylesbury,Bucks,,HP20 1JF,General Needs,House,1990,Traditional,Natural gas (mains) +6 Shakespeare Way,Aylesbury,Bucks,,HP20 1JF,General Needs,House,1990,Traditional,Natural gas (mains) +7 Shakespeare Way,Aylesbury,Bucks,,HP20 1JF,General Needs,House,1990,Traditional,Natural gas (mains) +8 Shakespeare Way,Aylesbury,Bucks,,HP20 1JF,General Needs,House,1990,Traditional,Natural gas (mains) +9 Shakespeare Way,Aylesbury,Bucks,,HP20 1JF,General Needs,House,1990,Traditional,Natural gas (mains) +10 Shakespeare Way,Aylesbury,Bucks,,HP20 1JF,General Needs,House,1990,Traditional,Natural gas (mains) +11 Shakespeare Way,Aylesbury,Bucks,,HP20 1JF,General Needs,House,1990,Traditional,Natural gas (mains) +12 Shakespeare Way,Aylesbury,Bucks,,HP20 1JF,General Needs,House,1990,Traditional,Natural gas (mains) +14 Shakespeare Way,Aylesbury,Bucks,,HP20 1JF,General Needs,House,1990,Traditional,Natural gas (mains) +15 Shakespeare Way,Aylesbury,Bucks,,HP20 1JF,General Needs,House,1990,Traditional,Natural gas (mains) +17 Shakespeare Way,Aylesbury,Bucks,,HP20 1JF,General Needs,House,1990,Traditional,Natural gas (mains) +18 Shakespeare Way,Aylesbury,Bucks,,HP20 1JF,General Needs,House,1990,Traditional,Natural gas (mains) +21 Shakespeare Way,Aylesbury,Bucks,,HP20 1JF,General Needs,House,1990,Traditional,Natural gas (mains) +23 Shakespeare Way,Aylesbury,Bucks,,HP20 1JF,General Needs,House,1990,Traditional,Natural gas (mains) +24 Shakespeare Way,Aylesbury,Bucks,,HP20 1JF,General Needs,House,1990,Traditional,Natural gas (mains) +25 Shakespeare Way,Aylesbury,Bucks,,HP20 1JF,General Needs,House,1990,Traditional,Natural gas (mains) +28 Shakespeare Way,Aylesbury,Bucks,,HP20 1JF,General Needs,House,1990,Traditional,Natural gas (mains) +29 Shakespeare Way,Aylesbury,Bucks,,HP20 1JF,General Needs,House,1990,Traditional,Natural gas (mains) +31 Shakespeare Way,Aylesbury,Bucks,,HP20 1JF,General Needs,House,1990,Traditional,Natural gas (mains) +32 Shakespeare Way,Aylesbury,Bucks,,HP20 1JF,General Needs,House,1990,Traditional,Natural gas (mains) +34 Shakespeare Way,Aylesbury,Bucks,,HP20 1JF,General Needs,House,1990,Traditional,Natural gas (mains) +2 Olivier Way,Aylesbury,Bucks,,HP20 1JG,General Needs,House,1990,Traditional,Natural gas (mains) +6 Olivier Way,Aylesbury,Bucks,,HP20 1JG,General Needs,House,1990,Traditional,Natural gas (mains) +8 Olivier Way,Aylesbury,Bucks,,HP20 1JG,General Needs,House,1990,Traditional,Natural gas (mains) +9 Olivier Way,Aylesbury,Bucks,,HP20 1JG,General Needs,House,1990,Traditional,Natural gas (mains) +11 Olivier Way,Aylesbury,Bucks,,HP20 1JG,General Needs,House,1990,Traditional,Natural gas (mains) +12 Olivier Way,Aylesbury,Bucks,,HP20 1JG,General Needs,House,1990,Traditional,Natural gas (mains) +14 Olivier Way,Aylesbury,Bucks,,HP20 1JG,General Needs,House,1990,Traditional,Natural gas (mains) +15 Olivier Way,Aylesbury,Bucks,,HP20 1JG,General Needs,House,1990,Traditional,Natural gas (mains) +16 Olivier Way,Aylesbury,Bucks,,HP20 1JG,General Needs,House,1990,Traditional,Natural gas (mains) +20 Olivier Way,Aylesbury,Bucks,,HP20 1JG,General Needs,House,1990,Traditional,Natural gas (mains) +22 Olivier Way,Aylesbury,Bucks,,HP20 1JG,General Needs,House,1990,Traditional,Natural gas (mains) +24 Olivier Way,Aylesbury,Bucks,,HP20 1JG,General Needs,House,1990,Traditional,Natural gas (mains) +26 Olivier Way,Aylesbury,Bucks,,HP20 1JG,General Needs,House,1990,Traditional,Natural gas (mains) +2 Shaw Close,Aylesbury,Bucks,,HP20 1JQ,General Needs,House,1990,Traditional,Natural gas (mains) +3 Shaw Close,Aylesbury,Bucks,,HP20 1JQ,General Needs,House,1990,Traditional,Natural gas (mains) +4 Shaw Close,Aylesbury,Bucks,,HP20 1JQ,General Needs,House,1990,Traditional,Natural gas (mains) +7 Shaw Close,Aylesbury,Bucks,,HP20 1JQ,General Needs,House,1990,Traditional,Natural gas (mains) +10 Shaw Close,Aylesbury,Bucks,,HP20 1JQ,General Needs,House,1990,Traditional,Natural gas (mains) +12 Shaw Close,Aylesbury,Bucks,,HP20 1JQ,General Needs,House,1990,Traditional,Natural gas (mains) +16 Shaw Close,Aylesbury,Bucks,,HP20 1JQ,General Needs,House,1990,Traditional,Natural gas (mains) +17 Shaw Close,Aylesbury,Bucks,,HP20 1JQ,General Needs,House,1990,Traditional,Natural gas (mains) +19 Shaw Close,Aylesbury,Bucks,,HP20 1JQ,General Needs,House,1990,Traditional,Natural gas (mains) +20 Shaw Close,Aylesbury,Bucks,,HP20 1JQ,General Needs,House,1990,Traditional,Natural gas (mains) +8 Tring Road,Aylesbury,Bucks,,HP20 1LF,General Needs,House,1930,Traditional,Natural gas (mains) +27 Oakfield Road,Aylesbury,Bucks,,HP20 1LH,General Needs,House,1963,Traditional,Natural gas (mains) +41 Oakfield Road,Aylesbury,Bucks,,HP20 1LH,General Needs,Flat,1962,Traditional,Natural gas (mains) +43 Oakfield Road,Aylesbury,Bucks,,HP20 1LH,General Needs,Flat,1962,Traditional,Natural gas (mains) +45 Oakfield Road,Aylesbury,Bucks,,HP20 1LH,General Needs,Flat,1962,Traditional,Natural gas (mains) +47 Oakfield Road,Aylesbury,Bucks,,HP20 1LH,General Needs,Flat,1962,Traditional,Natural gas (mains) +49 Oakfield Road,Aylesbury,Bucks,,HP20 1LH,General Needs,Flat,1962,Traditional,Natural gas (mains) +51 Oakfield Road,Aylesbury,Bucks,,HP20 1LH,General Needs,Flat,1962,Traditional,Natural gas (mains) +53 Oakfield Road,Aylesbury,Bucks,,HP20 1LH,General Needs,Flat,1962,Traditional,Natural gas (mains) +55 Oakfield Road,Aylesbury,Bucks,,HP20 1LH,General Needs,Flat,1962,Traditional,Natural gas (mains) +12 Oakfield Road,Aylesbury,Bucks,,HP20 1LL,General Needs,House,1961,Traditional,Natural gas (mains) +34 Oakfield Road,Aylesbury,Bucks,,HP20 1LL,General Needs,House,1961,Traditional,Natural gas (mains) +48 Oakfield Road,Aylesbury,Bucks,,HP20 1LL,General Needs,House,1961,Traditional,Natural gas (mains) +11 Wingate Walk,Aylesbury,Bucks,,HP20 1LN,General Needs,House,1963,Traditional,Natural gas (mains) +15 Wingate Walk,Aylesbury,Bucks,,HP20 1LN,General Needs,House,1963,Traditional,Natural gas (mains) +5 Stanhope Road,Aylesbury,Bucks,,HP20 1LP,General Needs,House,1963,Traditional,Natural gas (mains) +7 Stanhope Road,Aylesbury,Bucks,,HP20 1LP,General Needs,House,1963,Traditional,Natural gas (mains) +9 Stanhope Road,Aylesbury,Bucks,,HP20 1LP,General Needs,House,1963,Traditional,Natural gas (mains) +23 Stanhope Road,Aylesbury,Bucks,,HP20 1LP,General Needs,House,1963,Traditional,Natural gas (mains) +47 Stanhope Road,Aylesbury,Bucks,,HP20 1LP,General Needs,House,1963,Traditional,Natural gas (mains) +6 Stanhope Road,Aylesbury,Bucks,,HP20 1LR,General Needs,House,1963,Traditional,Natural gas (mains) +10 Stanhope Road,Aylesbury,Bucks,,HP20 1LR,General Needs,House,1963,Traditional,Natural gas (mains) +12 Stanhope Road,Aylesbury,Bucks,,HP20 1LR,General Needs,House,1963,Traditional,Natural gas (mains) +22 Stanhope Road,Aylesbury,Bucks,,HP20 1LR,General Needs,House,1963,Traditional,Natural gas (mains) +28 Stanhope Road,Aylesbury,Bucks,,HP20 1LR,General Needs,House,1963,Traditional,Natural gas (mains) +6 Denby Walk,Aylesbury,Bucks,,HP20 1LW,General Needs,House,1963,Traditional,Natural gas (mains) +12 Denby Walk,Aylesbury,Bucks,,HP20 1LW,General Needs,House,1962,Traditional,Natural gas (mains) +14 Denby Walk,Aylesbury,Bucks,,HP20 1LW,General Needs,House,1962,Traditional,Natural gas (mains) +23 Victoria Street,Aylesbury,Bucks,,HP20 1LZ,General Needs,House,1950,Traditional,Natural gas (mains) +27 Victoria Street,Aylesbury,Bucks,,HP20 1LZ,General Needs,House,1950,Traditional,Natural gas (mains) +29 Victoria Street,Aylesbury,Bucks,,HP20 1LZ,General Needs,House,1950,Traditional,Natural gas (mains) +37 Victoria Street,Aylesbury,Bucks,,HP20 1LZ,General Needs,House,1950,Traditional,Natural gas (mains) +47 Victoria Street,Aylesbury,Bucks,,HP20 1LZ,General Needs,Flat,1955,Traditional,Natural gas (mains) +49 Victoria Street,Aylesbury,Bucks,,HP20 1LZ,General Needs,Flat,1955,Traditional,Natural gas (mains) +53 Victoria Street,Aylesbury,Bucks,,HP20 1LZ,General Needs,Flat,1955,Traditional,Natural gas (mains) +59 Victoria Street,Aylesbury,Bucks,,HP20 1LZ,General Needs,Flat,1955,Traditional,Natural gas (mains) +58 Victoria Street,Aylesbury,Bucks,,HP20 1NA,General Needs,House,1973,Traditional,Natural gas (mains) +1 Pavilion Close,Aylesbury,Bucks,,HP20 1NE,General Needs,Bungalow,1989,Traditional,Natural gas (mains) +2 Pavilion Close,Aylesbury,Bucks,,HP20 1NE,General Needs,Bungalow,1989,Traditional,Natural gas (mains) +3 Pavilion Close,Aylesbury,Bucks,,HP20 1NE,General Needs,Bungalow,1989,Traditional,Natural gas (mains) +4 Pavilion Close,Aylesbury,Bucks,,HP20 1NE,General Needs,Bungalow,1989,Traditional,Natural gas (mains) +5 Pavilion Close,Aylesbury,Bucks,,HP20 1NE,General Needs,Bungalow,1989,Traditional,Natural gas (mains) +6 Pavilion Close,Aylesbury,Bucks,,HP20 1NE,General Needs,Bungalow,1989,Traditional,Natural gas (mains) +7 Pavilion Close,Aylesbury,Bucks,,HP20 1NE,General Needs,Bungalow,1989,Traditional,Natural gas (mains) +8 Pavilion Close,Aylesbury,Bucks,,HP20 1NE,General Needs,Bungalow,1989,Traditional,Natural gas (mains) +9 Pavilion Close,Aylesbury,Bucks,,HP20 1NE,General Needs,Bungalow,1989,Traditional,Natural gas (mains) +10 Pavilion Close,Aylesbury,Bucks,,HP20 1NE,General Needs,Bungalow,1990,Traditional,Natural gas (mains) +11 Pavilion Close,Aylesbury,Bucks,,HP20 1NE,General Needs,Bungalow,1990,Traditional,Natural gas (mains) +12 Pavilion Close,Aylesbury,Bucks,,HP20 1NE,General Needs,Bungalow,1990,Traditional,Natural gas (mains) +14 Pavilion Close,Aylesbury,Bucks,,HP20 1NE,General Needs,Bungalow,1990,Traditional,Natural gas (mains) +1 Broughton Terrace,Broughton Avenue,Aylesbury,Bucks,HP20 1NJ,General Needs,House,1962,Traditional,Natural gas (mains) +167 Elmhurst Road,Aylesbury,Bucks,,HP20 2AE,General Needs,Flat,1967,Rationalised,Natural gas (mains) +171 Elmhurst Road,Aylesbury,Bucks,,HP20 2AE,General Needs,Flat,1967,Rationalised,Natural gas (mains) +173 Elmhurst Road,Aylesbury,Bucks,,HP20 2AE,General Needs,Flat,1967,Rationalised,Natural gas (mains) +71 Elmhurst Road,Aylesbury,Bucks,,HP20 2AF,General Needs,Flat,1965,Traditional,Natural gas (mains) +83 Elmhurst Road,Aylesbury,Bucks,,HP20 2AF,General Needs,House,1963,Traditional,Natural gas (mains) +103 Elmhurst Road,Aylesbury,Bucks,,HP20 2AF,General Needs,House,1964,Traditional,Natural gas (mains) +115 Elmhurst Road,Aylesbury,Bucks,,HP20 2AF,General Needs,House,1964,Traditional,Natural gas (mains) +1 Elmhurst Road,Aylesbury,Bucks,,HP20 2AG,General Needs,Bungalow,1965,Traditional,Natural gas (mains) +3 Elmhurst Road,Aylesbury,Bucks,,HP20 2AG,General Needs,Bungalow,1965,Traditional,Natural gas (mains) +5 Elmhurst Road,Aylesbury,Bucks,,HP20 2AG,General Needs,Bungalow,1966,Traditional,Natural gas (mains) +7 Elmhurst Road,Aylesbury,Bucks,,HP20 2AG,General Needs,Bungalow,1967,Traditional,Natural gas (mains) +9 Elmhurst Road,Aylesbury,Bucks,,HP20 2AG,General Needs,Bungalow,1966,Traditional,Natural gas (mains) +11 Elmhurst Road,Aylesbury,Bucks,,HP20 2AG,General Needs,Bungalow,1966,Traditional,Natural gas (mains) +13 Elmhurst Road,Aylesbury,Bucks,,HP20 2AG,General Needs,Bungalow,1966,Traditional,Natural gas (mains) +15 Elmhurst Road,Aylesbury,Bucks,,HP20 2AG,General Needs,Bungalow,1966,Traditional,Natural gas (mains) +17 Elmhurst Road,Aylesbury,Bucks,,HP20 2AG,General Needs,Bungalow,1966,Traditional,Natural gas (mains) +19 Elmhurst Road,Aylesbury,Bucks,,HP20 2AG,General Needs,Bungalow,1966,Traditional,Natural gas (mains) +21 Elmhurst Road,Aylesbury,Bucks,,HP20 2AG,General Needs,Bungalow,1966,Traditional,Natural gas (mains) +23 Elmhurst Road,Aylesbury,Bucks,,HP20 2AG,General Needs,Bungalow,1966,Traditional,Natural gas (mains) +33 Elmhurst Road,Aylesbury,Bucks,,HP20 2AG,General Needs,Flat,1964,Traditional,Natural gas (mains) +35 Elmhurst Road,Aylesbury,Bucks,,HP20 2AG,General Needs,Flat,1964,Traditional,Natural gas (mains) +37 Elmhurst Road,Aylesbury,Bucks,,HP20 2AG,General Needs,Flat,1964,Traditional,Natural gas (mains) +51 Elmhurst Road,Aylesbury,Bucks,,HP20 2AG,General Needs,House,1963,Traditional,Natural gas (mains) +55 Elmhurst Road,Aylesbury,Bucks,,HP20 2AG,General Needs,House,1964,Traditional,Natural gas (mains) +61 Elmhurst Road,Aylesbury,Bucks,,HP20 2AG,General Needs,House,1963,Traditional,Natural gas (mains) +67 Elmhurst Road,Aylesbury,Bucks,,HP20 2AG,General Needs,Flat,1965,Traditional,Natural gas (mains) +10 Coniston Green,Aylesbury,Bucks,,HP20 2AJ,General Needs,House,1964,Traditional,Natural gas (mains) +5 Cannock Road,Aylesbury,Bucks,,HP20 2AL,General Needs,House,1964,Traditional,Natural gas (mains) +7 Cannock Road,Aylesbury,Bucks,,HP20 2AL,General Needs,House,1965,Traditional,Natural gas (mains) +27 Cannock Road,Aylesbury,Bucks,,HP20 2AL,General Needs,Flat,1964,Traditional,Natural gas (mains) +35 Cannock Road,Aylesbury,Bucks,,HP20 2AL,General Needs,House,1964,Traditional,Natural gas (mains) +47 Cannock Road,Aylesbury,Bucks,,HP20 2AL,General Needs,Flat,1964,Traditional,Natural gas (mains) +51 Cannock Road,Aylesbury,Bucks,,HP20 2AL,General Needs,Flat,1964,Traditional,Natural gas (mains) +57 Cannock Road,Aylesbury,Bucks,,HP20 2AL,General Needs,House,1964,Traditional,Natural gas (mains) +59 Cannock Road,Aylesbury,Bucks,,HP20 2AL,General Needs,Flat,1964,Traditional,Natural gas (mains) +63 Cannock Road,Aylesbury,Bucks,,HP20 2AL,General Needs,Flat,1964,Traditional,Natural gas (mains) +65 Cannock Road,Aylesbury,Bucks,,HP20 2AL,General Needs,Flat,1964,Traditional,Natural gas (mains) +2 Cannock Road,Aylesbury,Bucks,,HP20 2AN,General Needs,Flat,1965,Traditional,Natural gas (mains) +4 Cannock Road,Aylesbury,Bucks,,HP20 2AN,General Needs,Flat,1965,Traditional,Natural gas (mains) +8 Cannock Road,Aylesbury,Bucks,,HP20 2AN,General Needs,House,1965,Traditional,Natural gas (mains) +10 Cannock Road,Aylesbury,Bucks,,HP20 2AN,General Needs,House,1965,Traditional,Natural gas (mains) +42 Cannock Road,Aylesbury,Bucks,,HP20 2AN,General Needs,House,1964,Traditional,Natural gas (mains) +44 Cannock Road,Aylesbury,Bucks,,HP20 2AN,General Needs,House,1964,Traditional,Natural gas (mains) +75 Cannock Road,Aylesbury,Bucks,,HP20 2AP,General Needs,House,1965,Traditional,Natural gas (mains) +81 Cannock Road,Aylesbury,Bucks,,HP20 2AP,General Needs,House,1965,Traditional,Natural gas (mains) +87 Cannock Road,Aylesbury,Bucks,,HP20 2AP,General Needs,Flat,1964,Traditional,Natural gas (mains) +91 Cannock Road,Aylesbury,Bucks,,HP20 2AP,General Needs,House,1964,Traditional,Natural gas (mains) +93 Cannock Road,Aylesbury,Bucks,,HP20 2AP,General Needs,House,1964,Traditional,Natural gas (mains) +101 Cannock Road,Aylesbury,Bucks,,HP20 2AP,General Needs,Flat,1964,Traditional,Natural gas (mains) +109 Cannock Road,Aylesbury,Bucks,,HP20 2AP,General Needs,House,1964,Traditional,Natural gas (mains) +111 Cannock Road,Aylesbury,Bucks,,HP20 2AP,General Needs,House,1964,Traditional,Natural gas (mains) +115 Cannock Road,Aylesbury,Bucks,,HP20 2AP,General Needs,House,1964,Traditional,Natural gas (mains) +119 Cannock Road,Aylesbury,Bucks,,HP20 2AP,General Needs,Flat,1964,Traditional,Natural gas (mains) +123 Cannock Road,Aylesbury,Bucks,,HP20 2AP,General Needs,Flat,1964,Traditional,Natural gas (mains) +125 Cannock Road,Aylesbury,Bucks,,HP20 2AP,General Needs,Flat,1964,Traditional,Natural gas (mains) +1 Gilmore Road,Aylesbury,Bucks,,HP20 2AR,General Needs,House,1965,Traditional,Natural gas (mains) +14 Gilmore Road,Aylesbury,Bucks,,HP20 2AR,General Needs,House,1964,Traditional,Natural gas (mains) +129 Cannock Road,Aylesbury,Bucks,,HP20 2AS,General Needs,House,1964,Traditional,Natural gas (mains) +135 Cannock Road,Aylesbury,Bucks,,HP20 2AS,General Needs,Flat,1965,Traditional,Natural gas (mains) +141 Cannock Road,Aylesbury,Bucks,,HP20 2AS,General Needs,House,1964,Traditional,Natural gas (mains) +147 Cannock Road,Aylesbury,Bucks,,HP20 2AS,General Needs,House,1964,Traditional,Natural gas (mains) +149 Cannock Road,Aylesbury,Bucks,,HP20 2AS,General Needs,House,1964,Traditional,Natural gas (mains) +157 Cannock Road,Aylesbury,Bucks,,HP20 2AS,General Needs,Flat,1964,Traditional,Natural gas (mains) +1 Kinson Green,Aylesbury,Bucks,,HP20 2AU,General Needs,House,1964,Traditional,Natural gas (mains) +2 Kinson Green,Aylesbury,Bucks,,HP20 2AU,General Needs,House,1964,Traditional,Natural gas (mains) +3 Kinson Green,Aylesbury,Bucks,,HP20 2AU,General Needs,House,1964,Traditional,Natural gas (mains) +8 Kinson Green,Aylesbury,Bucks,,HP20 2AU,General Needs,House,1964,Traditional,Natural gas (mains) +9 Kinson Green,Aylesbury,Bucks,,HP20 2AU,General Needs,House,1964,Traditional,Natural gas (mains) +11 Kinson Green,Aylesbury,Bucks,,HP20 2AU,General Needs,House,1964,Traditional,Natural gas (mains) +3 Cradley Walk,Aylesbury,Bucks,,HP20 2AW,General Needs,Flat,1965,Traditional,Natural gas (mains) +4 Cradley Walk,Aylesbury,Bucks,,HP20 2AW,General Needs,Flat,1965,Traditional,Natural gas (mains) +6 Cradley Walk,Aylesbury,Bucks,,HP20 2AW,General Needs,House,1965,Traditional,Natural gas (mains) +8 Cradley Walk,Aylesbury,Bucks,,HP20 2AW,General Needs,House,1965,Traditional,Natural gas (mains) +20 Cradley Walk,Aylesbury,Bucks,,HP20 2AW,General Needs,House,1965,Traditional,Natural gas (mains) +5 Farnley Road,Aylesbury,Bucks,,HP20 2AX,General Needs,House,1964,Traditional,Natural gas (mains) +12 Cleveland Road,Aylesbury,Bucks,,HP20 2AZ,General Needs,House,1966,Rationalised,Natural gas (mains) +20 Cleveland Road,Aylesbury,Bucks,,HP20 2AZ,General Needs,House,1967,Rationalised,Natural gas (mains) +22 Cleveland Road,Aylesbury,Bucks,,HP20 2AZ,General Needs,House,1967,Rationalised,Natural gas (mains) +31 Cleveland Road,Aylesbury,Bucks,,HP20 2AZ,General Needs,House,1966,Traditional,Natural gas (mains) +52 Cleveland Road,Aylesbury,Bucks,,HP20 2AZ,General Needs,Flat,1967,Rationalised,Natural gas (mains) +7 Bryanston Avenue,Aylesbury,Bucks,,HP20 2BA,General Needs,House,1967,Rationalised,Natural gas (mains) +9 Bryanston Avenue,Aylesbury,Bucks,,HP20 2BA,General Needs,Flat,1967,Rationalised,Natural gas (mains) +11 Bryanston Avenue,Aylesbury,Bucks,,HP20 2BA,General Needs,Flat,1967,Rationalised,Natural gas (mains) +12 Bryanston Avenue,Aylesbury,Bucks,,HP20 2BA,General Needs,Flat,1967,Traditional,Natural gas (mains) +15 Bryanston Avenue,Aylesbury,Bucks,,HP20 2BA,General Needs,Flat,1967,Rationalised,Natural gas (mains) +17 Bryanston Avenue,Aylesbury,Bucks,,HP20 2BA,General Needs,House,1967,Rationalised,Natural gas (mains) +23 Bryanston Avenue,Aylesbury,Bucks,,HP20 2BA,General Needs,Flat,1967,Rationalised,Natural gas (mains) +24 Bryanston Avenue,Aylesbury,Bucks,,HP20 2BA,General Needs,Flat,1967,Rationalised,Natural gas (mains) +25 Bryanston Avenue,Aylesbury,Bucks,,HP20 2BA,General Needs,Flat,1967,Traditional,Natural gas (mains) +26 Bryanston Avenue,Aylesbury,Bucks,,HP20 2BA,General Needs,Flat,1967,Rationalised,Natural gas (mains) +28 Bryanston Avenue,Aylesbury,Bucks,,HP20 2BA,General Needs,Flat,1967,Rationalised,Natural gas (mains) +34 Bryanston Avenue,Aylesbury,Bucks,,HP20 2BA,General Needs,House,1988,Traditional,Natural gas (mains) +36 Bryanston Avenue,Aylesbury,Bucks,,HP20 2BA,General Needs,House,1988,Traditional,Natural gas (mains) +38 Bryanston Avenue,Aylesbury,Bucks,,HP20 2BA,General Needs,House,1988,Traditional,Natural gas (mains) +40 Bryanston Avenue,Aylesbury,Bucks,,HP20 2BA,General Needs,House,1988,Traditional,Natural gas (mains) +10 Tavistock Walk,Aylesbury,Bucks,,HP20 2BB,General Needs,Flat,1966,Traditional,Natural gas (mains) +13 Tavistock Walk,Aylesbury,Bucks,,HP20 2BB,General Needs,House,1966,Traditional,Natural gas (mains) +2 Arundel Green,Aylesbury,Bucks,,HP20 2BD,General Needs,Flat,1967,Rationalised,Natural gas (mains) +4 Arundel Green,Aylesbury,Bucks,,HP20 2BD,General Needs,Flat,1967,Rationalised,Natural gas (mains) +6 Arundel Green,Aylesbury,Bucks,,HP20 2BD,General Needs,Flat,1967,Rationalised,Natural gas (mains) +8 Arundel Green,Aylesbury,Bucks,,HP20 2BD,General Needs,Flat,1967,Rationalised,Natural gas (mains) +26 Arundel Green,Aylesbury,Bucks,,HP20 2BD,General Needs,House,1967,Rationalised,Natural gas (mains) +6 Matlock Road,Aylesbury,Bucks,,HP20 2BE,General Needs,House,1966,Rationalised,Natural gas (mains) +7 Matlock Road,Aylesbury,Bucks,,HP20 2BE,General Needs,House,1964,Traditional,Natural gas (mains) +1 Roxwell Path,Aylesbury,Bucks,,HP20 2BH,General Needs,House,1966,Rationalised,Natural gas (mains) +2 Roxwell Path,Aylesbury,Bucks,,HP20 2BH,General Needs,House,1988,Traditional,Natural gas (mains) +4 Roxwell Path,Aylesbury,Bucks,,HP20 2BH,General Needs,House,1988,Traditional,Natural gas (mains) +8 Roxwell Path,Aylesbury,Bucks,,HP20 2BH,General Needs,House,1988,Traditional,Natural gas (mains) +21 Arundel Green,Aylesbury,Bucks,,HP20 2BL,General Needs,House,1979,Traditional,Natural gas (mains) +23 Arundel Green,Aylesbury,Bucks,,HP20 2BL,General Needs,House,1979,Traditional,Natural gas (mains) +27 Arundel Green,Aylesbury,Bucks,,HP20 2BL,General Needs,Flat,1979,Traditional,Natural gas (mains) +31 Arundel Green,Aylesbury,Bucks,,HP20 2BL,General Needs,Flat,1979,Traditional,Natural gas (mains) +34 Arundel Green,Aylesbury,Bucks,,HP20 2BL,General Needs,House,1979,Traditional,Natural gas (mains) +36 Arundel Green,Aylesbury,Bucks,,HP20 2BL,General Needs,Flat,1979,Traditional,Natural gas (mains) +38 Arundel Green,Aylesbury,Bucks,,HP20 2BL,General Needs,Flat,1979,Traditional,Natural gas (mains) +39 Arundel Green,Aylesbury,Bucks,,HP20 2BL,General Needs,House,1979,Traditional,Natural gas (mains) +40 Arundel Green,Aylesbury,Bucks,,HP20 2BL,General Needs,Flat,1979,Traditional,Natural gas (mains) +41 Arundel Green,Aylesbury,Bucks,,HP20 2BL,General Needs,House,1979,Traditional,Natural gas (mains) +42 Arundel Green,Aylesbury,Bucks,,HP20 2BL,General Needs,Flat,1979,Traditional,Natural gas (mains) +44 Arundel Green,Aylesbury,Bucks,,HP20 2BL,General Needs,Flat,1979,Traditional,Natural gas (mains) +45 Arundel Green,Aylesbury,Bucks,,HP20 2BL,General Needs,Flat,1979,Traditional,Natural gas (mains) +46 Arundel Green,Aylesbury,Bucks,,HP20 2BL,General Needs,Flat,1979,Traditional,Natural gas (mains) +47 Arundel Green,Aylesbury,Bucks,,HP20 2BL,General Needs,Flat,1979,Traditional,Natural gas (mains) +51 Arundel Green,Aylesbury,Bucks,,HP20 2BL,General Needs,Flat,1979,Traditional,Natural gas (mains) +53 Arundel Green,Aylesbury,Bucks,,HP20 2BL,General Needs,Flat,1979,Traditional,Natural gas (mains) +55 Arundel Green,Aylesbury,Bucks,,HP20 2BL,General Needs,Flat,1979,Traditional,Natural gas (mains) +57 Arundel Green,Aylesbury,Bucks,,HP20 2BL,General Needs,House,1979,Traditional,Natural gas (mains) +59 Arundel Green,Aylesbury,Bucks,,HP20 2BL,General Needs,House,1979,Traditional,Natural gas (mains) +61 Arundel Green,Aylesbury,Bucks,,HP20 2BL,General Needs,House,1979,Traditional,Natural gas (mains) +1 Lisburn Path,Aylesbury,Bucks,,HP20 2BQ,General Needs,House,1966,Rationalised,Natural gas (mains) +2 Lisburn Path,Aylesbury,Bucks,,HP20 2BQ,General Needs,House,1988,Traditional,Natural gas (mains) +8 Lisburn Path,Aylesbury,Bucks,,HP20 2BQ,General Needs,House,1988,Traditional,Natural gas (mains) +9 Lisburn Path,Aylesbury,Bucks,,HP20 2BQ,General Needs,House,1966,Rationalised,Natural gas (mains) +10 Lisburn Path,Aylesbury,Bucks,,HP20 2BQ,General Needs,House,1988,Traditional,Natural gas (mains) +15 Lisburn Path,Aylesbury,Bucks,,HP20 2BQ,General Needs,House,1966,Rationalised,Natural gas (mains) +50 Dunsham Lane,Aylesbury,Bucks,,HP20 2DA,General Needs,Flat,1967,Traditional,Natural gas (mains) +66 Dunsham Lane,Aylesbury,Bucks,,HP20 2DA,General Needs,Flat,1967,Rationalised,Natural gas (mains) +70 Dunsham Lane,Aylesbury,Bucks,,HP20 2DG,General Needs,Flat,1967,Rationalised,Natural gas (mains) +72 Dunsham Lane,Aylesbury,Bucks,,HP20 2DG,General Needs,Flat,1967,Rationalised,Natural gas (mains) +74 Dunsham Lane,Aylesbury,Bucks,,HP20 2DG,General Needs,House,1967,Rationalised,Natural gas (mains) +1 Waverley Walk,Aylesbury,Bucks,,HP20 2DH,General Needs,Bungalow,1969,Traditional,Natural gas (mains) +2 Waverley Walk,Aylesbury,Bucks,,HP20 2DH,General Needs,Bungalow,1969,Traditional,Natural gas (mains) +3 Waverley Walk,Aylesbury,Bucks,,HP20 2DH,General Needs,Bungalow,1969,Traditional,Natural gas (mains) +4 Waverley Walk,Aylesbury,Bucks,,HP20 2DH,General Needs,Bungalow,1969,Traditional,Natural gas (mains) +5 Waverley Walk,Aylesbury,Bucks,,HP20 2DH,General Needs,Bungalow,1969,Traditional,Natural gas (mains) +6 Waverley Walk,Aylesbury,Bucks,,HP20 2DH,General Needs,Bungalow,1969,Traditional,Natural gas (mains) +7 Waverley Walk,Aylesbury,Bucks,,HP20 2DH,General Needs,Bungalow,1969,Traditional,Natural gas (mains) +8 Waverley Walk,Aylesbury,Bucks,,HP20 2DH,General Needs,Bungalow,1969,Traditional,Natural gas (mains) +9 Waverley Walk,Aylesbury,Bucks,,HP20 2DH,General Needs,Bungalow,1969,Traditional,Natural gas (mains) +10 Waverley Walk,Aylesbury,Bucks,,HP20 2DH,General Needs,Bungalow,1969,Traditional,Natural gas (mains) +11 Waverley Walk,Aylesbury,Bucks,,HP20 2DH,General Needs,Bungalow,1969,Traditional,Natural gas (mains) +12 Waverley Walk,Aylesbury,Bucks,,HP20 2DH,General Needs,Bungalow,1969,Traditional,Natural gas (mains) +2 Lansdowne Road,Aylesbury,Bucks,,HP20 2DJ,General Needs,Flat,1968,Rationalised,Natural gas (mains) +3 Lansdowne Road,Aylesbury,Bucks,,HP20 2DJ,General Needs,House,1964,Rationalised,Natural gas (mains) +4 Lansdowne Road,Aylesbury,Bucks,,HP20 2DJ,General Needs,Flat,1968,Rationalised,Natural gas (mains) +8 Lansdowne Road,Aylesbury,Bucks,,HP20 2DJ,General Needs,Flat,1968,Rationalised,Natural gas (mains) +15 Lansdowne Road,Aylesbury,Bucks,,HP20 2DJ,General Needs,House,1964,Rationalised,Natural gas (mains) +4 Caversham Green,Aylesbury,Bucks,,HP20 2DL,General Needs,House,1968,Rationalised,Natural gas (mains) +20 Caversham Green,Aylesbury,Bucks,,HP20 2DL,General Needs,Flat,1968,Rationalised,Natural gas (mains) +21 Caversham Green,Aylesbury,Bucks,,HP20 2DL,General Needs,Flat,1968,Rationalised,Natural gas (mains) +22 Caversham Green,Aylesbury,Bucks,,HP20 2DL,General Needs,Flat,1968,Rationalised,Natural gas (mains) +23 Caversham Green,Aylesbury,Bucks,,HP20 2DL,General Needs,Flat,1968,Rationalised,Natural gas (mains) +2 Desborough Green,Aylesbury,Bucks,,HP20 2DN,General Needs,Flat,1968,Rationalised,Natural gas (mains) +3 Desborough Green,Aylesbury,Bucks,,HP20 2DN,General Needs,Flat,1968,Rationalised,Natural gas (mains) +4 Desborough Green,Aylesbury,Bucks,,HP20 2DN,General Needs,Flat,1968,Rationalised,Natural gas (mains) +20 Desborough Green,Aylesbury,Bucks,,HP20 2DN,General Needs,House,1968,Rationalised,Natural gas (mains) +1 Bates Court,Aylesbury,Bucks,,HP20 2DP,General Needs,House,1988,Traditional,Natural gas (mains) +3 Bates Court,Aylesbury,Bucks,,HP20 2DP,General Needs,House,1988,Traditional,Natural gas (mains) +5 Bates Court,Aylesbury,Bucks,,HP20 2DP,General Needs,House,1988,Traditional,Natural gas (mains) +7 Bates Court,Aylesbury,Bucks,,HP20 2DP,General Needs,House,1988,Traditional,Natural gas (mains) +11 Bates Court,Aylesbury,Bucks,,HP20 2DP,General Needs,House,1988,Traditional,Natural gas (mains) +1 Cheney Walk,Aylesbury,Bucks,,HP20 2DR,General Needs,Bungalow,1988,Traditional,Natural gas (mains) +3 Cheney Walk,Aylesbury,Bucks,,HP20 2DR,General Needs,Bungalow,1988,Traditional,Natural gas (mains) +5 Cheney Walk,Aylesbury,Bucks,,HP20 2DR,General Needs,Bungalow,1988,Traditional,Natural gas (mains) +7 Cheney Walk,Aylesbury,Bucks,,HP20 2DR,General Needs,Bungalow,1988,Traditional,Natural gas (mains) +9 Cheney Walk,Aylesbury,Bucks,,HP20 2DR,General Needs,Bungalow,1988,Traditional,Natural gas (mains) +11 Cheney Walk,Aylesbury,Bucks,,HP20 2DR,General Needs,Bungalow,1988,Traditional,Natural gas (mains) +15 Cheney Walk,Aylesbury,Bucks,,HP20 2DR,General Needs,Bungalow,1988,Traditional,Natural gas (mains) +17 Cheney Walk,Aylesbury,Bucks,,HP20 2DR,General Needs,Bungalow,1988,Traditional,Natural gas (mains) +19 Cheney Walk,Aylesbury,Bucks,,HP20 2DR,General Needs,Bungalow,1988,Traditional,Natural gas (mains) +1 Clarke Court,Aylesbury,Bucks,,HP20 2DS,General Needs,Bungalow,1988,Traditional,Natural gas (mains) +3 Clarke Court,Aylesbury,Bucks,,HP20 2DS,General Needs,Bungalow,1988,Traditional,Natural gas (mains) +5 Clarke Court,Aylesbury,Bucks,,HP20 2DS,General Needs,Bungalow,1988,Traditional,Natural gas (mains) +6 Clarke Walk,Aylesbury,Bucks,,HP20 2DT,General Needs,House,1988,Traditional,Natural gas (mains) +5 Dormer Court,Aylesbury,Bucks,,HP20 2DU,General Needs,House,1988,Traditional,Natural gas (mains) +97 Dunsham Lane,Aylesbury,Bucks,,HP20 2DW,General Needs,Bungalow,1967,Traditional,Natural gas (mains) +99 Dunsham Lane,Aylesbury,Bucks,,HP20 2DW,General Needs,Bungalow,1967,Traditional,Natural gas (mains) +101 Dunsham Lane,Aylesbury,Bucks,,HP20 2DW,General Needs,Bungalow,1967,Traditional,Natural gas (mains) +103 Dunsham Lane,Aylesbury,Bucks,,HP20 2DW,General Needs,Bungalow,1967,Traditional,Natural gas (mains) +107 Dunsham Lane,Aylesbury,Bucks,,HP20 2DW,General Needs,Bungalow,1967,Traditional,Natural gas (mains) +2 Harris Court,Aylesbury,Bucks,,HP20 2DX,General Needs,House,1988,Traditional,Natural gas (mains) +8 Harris Court,Aylesbury,Bucks,,HP20 2DX,General Needs,House,1988,Traditional,Natural gas (mains) +1 Hopkins Court,Aylesbury,Bucks,,HP20 2DY,General Needs,Bungalow,1988,Traditional,Natural gas (mains) +3 Hopkins Court,Aylesbury,Bucks,,HP20 2DY,General Needs,Bungalow,1988,Traditional,Natural gas (mains) +5 Hopkins Court,Aylesbury,Bucks,,HP20 2DY,General Needs,Bungalow,1988,Traditional,Natural gas (mains) +7 Hopkins Court,Aylesbury,Bucks,,HP20 2DY,General Needs,Bungalow,1988,Traditional,Natural gas (mains) +9 Hopkins Court,Aylesbury,Bucks,,HP20 2DY,General Needs,Bungalow,1988,Traditional,Natural gas (mains) +15 Hopkins Court,Aylesbury,Bucks,,HP20 2DY,General Needs,House,1988,Traditional,Natural gas (mains) +2 Orchard Way,Aylesbury,Bucks,,HP20 2DZ,General Needs,House,1988,Traditional,Natural gas (mains) +10 Orchard Way,Aylesbury,Bucks,,HP20 2DZ,General Needs,House,1988,Traditional,Natural gas (mains) +10 Elmhurst Road,Aylesbury,Bucks,,HP20 2EA,General Needs,House,1964,Traditional,Natural gas (mains) +14 Elmhurst Road,Aylesbury,Bucks,,HP20 2EA,General Needs,House,1964,Traditional,Natural gas (mains) +36 Elmhurst Road,Aylesbury,Bucks,,HP20 2EA,General Needs,House,1964,Traditional,Natural gas (mains) +50 Elmhurst Road,Aylesbury,Bucks,,HP20 2EA,General Needs,House,1964,Traditional,Natural gas (mains) +2 Megdale Place,Aylesbury,Bucks,,HP20 2EB,General Needs,House,1964,Traditional,Natural gas (mains) +18 Megdale Place,Aylesbury,Bucks,,HP20 2EB,General Needs,House,1964,Traditional,Natural gas (mains) +20 Megdale Place,Aylesbury,Bucks,,HP20 2EB,General Needs,House,1964,Traditional,Natural gas (mains) +22 Megdale Place,Aylesbury,Bucks,,HP20 2EB,General Needs,House,1964,Traditional,Natural gas (mains) +1 Radnor End,Aylesbury,Bucks,,HP20 2ED,General Needs,Flat,1965,Traditional,Natural gas (mains) +5 Radnor End,Aylesbury,Bucks,,HP20 2ED,General Needs,House,1965,Traditional,Natural gas (mains) +18 Radnor End,Aylesbury,Bucks,,HP20 2ED,General Needs,Maisonette,1970,Traditional,Natural gas (mains) +20 Radnor End,Aylesbury,Bucks,,HP20 2ED,General Needs,Maisonette,1970,Traditional,Natural gas (mains) +23 Radnor End,Aylesbury,Bucks,,HP20 2ED,General Needs,Maisonette,1970,Traditional,Natural gas (mains) +25 Radnor End,Aylesbury,Bucks,,HP20 2ED,General Needs,House,1965,Traditional,Natural gas (mains) +30 Radnor End,Aylesbury,Bucks,,HP20 2ED,General Needs,House,1965,Traditional,Natural gas (mains) +31 Radnor End,Aylesbury,Bucks,,HP20 2ED,General Needs,Flat,1965,Traditional,Natural gas (mains) +32 Radnor End,Aylesbury,Bucks,,HP20 2ED,General Needs,Flat,1965,Traditional,Natural gas (mains) +2 Hulcombe Walk,Aylesbury,Bucks,,HP20 2EE,General Needs,House,1964,Traditional,Natural gas (mains) +3 Hulcombe Walk,Aylesbury,Bucks,,HP20 2EE,General Needs,House,1964,BSL Industrialised,Natural gas (mains) +5 Hulcombe Walk,Aylesbury,Bucks,,HP20 2EE,General Needs,House,1964,BSL Industrialised,Natural gas (mains) +7 Hulcombe Walk,Aylesbury,Bucks,,HP20 2EE,General Needs,House,1964,BSL Industrialised,Natural gas (mains) +12 Hulcombe Walk,Aylesbury,Bucks,,HP20 2EE,General Needs,Flat,1964,Traditional,Natural gas (mains) +2 Dunsham Lane,Aylesbury,Bucks,,HP20 2EG,General Needs,House,1964,BSL Industrialised,Natural gas (mains) +4 Dunsham Lane,Aylesbury,Bucks,,HP20 2EG,General Needs,House,1964,BSL Industrialised,Natural gas (mains) +16 Dunsham Lane,Aylesbury,Bucks,,HP20 2EG,General Needs,House,1964,BSL Industrialised,Natural gas (mains) +20 Dunsham Lane,Aylesbury,Bucks,,HP20 2EG,General Needs,House,1964,BSL Industrialised,Natural gas (mains) +22 Dunsham Lane,Aylesbury,Bucks,,HP20 2EG,General Needs,House,1964,BSL Industrialised,Natural gas (mains) +32 Dunsham Lane,Aylesbury,Bucks,,HP20 2EG,General Needs,Flat,1964,Traditional,Natural gas (mains) +34 Dunsham Lane,Aylesbury,Bucks,,HP20 2EH,General Needs,Flat,1964,Traditional,Natural gas (mains) +44 Dunsham Lane,Aylesbury,Bucks,,HP20 2EH,General Needs,House,1964,BSL Industrialised,Natural gas (mains) +46 Dunsham Lane,Aylesbury,Bucks,,HP20 2EH,General Needs,House,1964,BSL Industrialised,Natural gas (mains) +35 Ruskin Way,Aylesbury,Bucks,,HP20 2EJ,General Needs,House,1965,Traditional,Natural gas (mains) +43 Ruskin Way,Aylesbury,Bucks,,HP20 2EJ,General Needs,House,1965,Traditional,Natural gas (mains) +45 Ruskin Way,Aylesbury,Bucks,,HP20 2EJ,General Needs,House,1964,BSL Industrialised,Natural gas (mains) +53 Ruskin Way,Aylesbury,Bucks,,HP20 2EJ,General Needs,House,1964,BSL Industrialised,Natural gas (mains) +1 Ruskin Way,Aylesbury,Bucks,,HP20 2EL,General Needs,Flat,1967,Rationalised,Natural gas (mains) +5 Ruskin Way,Aylesbury,Bucks,,HP20 2EL,General Needs,House,1968,Rationalised,Natural gas (mains) +6 Ruskin Way,Aylesbury,Bucks,,HP20 2EL,General Needs,Flat,1967,Rationalised,Natural gas (mains) +12 Ruskin Way,Aylesbury,Bucks,,HP20 2EL,General Needs,Flat,1967,Rationalised,Natural gas (mains) +22 Ruskin Way,Aylesbury,Bucks,,HP20 2EL,General Needs,House,1966,Rationalised,Natural gas (mains) +26 Ruskin Way,Aylesbury,Bucks,,HP20 2EL,General Needs,Flat,1967,Rationalised,Natural gas (mains) +29 Ruskin Way,Aylesbury,Bucks,,HP20 2EL,General Needs,House,1965,Rationalised,Natural gas (mains) +30 Ruskin Way,Aylesbury,Bucks,,HP20 2EL,General Needs,Flat,1967,Rationalised,Natural gas (mains) +32 Ruskin Way,Aylesbury,Bucks,,HP20 2EL,General Needs,Flat,1967,Rationalised,Natural gas (mains) +1 Drayton Road,Aylesbury,Bucks,,HP20 2EN,General Needs,Flat,1966,Rationalised,Natural gas (mains) +3 Drayton Road,Aylesbury,Bucks,,HP20 2EN,General Needs,Flat,1966,Rationalised,Natural gas (mains) +5 Drayton Road,Aylesbury,Bucks,,HP20 2EN,General Needs,House,1966,Rationalised,Natural gas (mains) +9 Drayton Road,Aylesbury,Bucks,,HP20 2EN,General Needs,Flat,1966,Rationalised,Natural gas (mains) +25 Drayton Road,Aylesbury,Bucks,,HP20 2EN,General Needs,Maisonette,1970,Traditional,Natural gas (mains) +27 Drayton Road,Aylesbury,Bucks,,HP20 2EN,General Needs,Maisonette,1970,Traditional,Natural gas (mains) +33 Drayton Road,Aylesbury,Bucks,,HP20 2EN,General Needs,Maisonette,1970,Traditional,Natural gas (mains) +35 Drayton Road,Aylesbury,Bucks,,HP20 2EN,General Needs,Maisonette,1970,Traditional,Natural gas (mains) +47 Drayton Road,Aylesbury,Bucks,,HP20 2EN,General Needs,House,1966,BSL Industrialised,Natural gas (mains) +2 Bardon Green,Aylesbury,Bucks,,HP20 2EQ,General Needs,Flat,1966,Traditional,Natural gas (mains) +7 Bardon Green,Aylesbury,Bucks,,HP20 2EQ,General Needs,Maisonette,1970,Traditional,Natural gas (mains) +10 Bardon Green,Aylesbury,Bucks,,HP20 2EQ,General Needs,Maisonette,1970,Traditional,Natural gas (mains) +14 Bardon Green,Aylesbury,Bucks,,HP20 2EQ,General Needs,Maisonette,1970,Traditional,Natural gas (mains) +20 Bardon Green,Aylesbury,Bucks,,HP20 2EQ,General Needs,House,1966,Traditional,Natural gas (mains) +28 Bardon Green,Aylesbury,Bucks,,HP20 2EQ,General Needs,House,1966,Traditional,Natural gas (mains) +34 Bardon Green,Aylesbury,Bucks,,HP20 2EQ,General Needs,Flat,1964,Traditional,Natural gas (mains) +13 Dunsham Lane,Aylesbury,Bucks,,HP20 2ER,General Needs,Flat,1968,Rationalised,Natural gas (mains) +12 Fairfax Crescent,Aylesbury,Bucks,,HP20 2ES,General Needs,House,1966,Rationalised,Natural gas (mains) +16 Fairfax Crescent,Aylesbury,Bucks,,HP20 2ES,General Needs,House,1966,Traditional,Natural gas (mains) +60 Fairfax Crescent,Aylesbury,Bucks,,HP20 2ES,General Needs,House,1966,Rationalised,Natural gas (mains) +11 Fairfax Crescent,Aylesbury,Bucks,,HP20 2ET,General Needs,House,1966,Rationalised,Natural gas (mains) +19 Fairfax Crescent,Aylesbury,Bucks,,HP20 2ET,General Needs,House,1966,Rationalised,Natural gas (mains) +2 Ladbroke Close,Aylesbury,Bucks,,HP20 2EU,General Needs,House,1966,Rationalised,Natural gas (mains) +2 Drayton Road,Aylesbury,Bucks,,HP20 2EW,General Needs,Flat,1966,Rationalised,Natural gas (mains) +4 Drayton Road,Aylesbury,Bucks,,HP20 2EW,General Needs,Flat,1966,Rationalised,Natural gas (mains) +10 Drayton Road,Aylesbury,Bucks,,HP20 2EW,General Needs,Flat,1966,Rationalised,Natural gas (mains) +18 Drayton Road,Aylesbury,Bucks,,HP20 2EW,General Needs,House,1966,Rationalised,Natural gas (mains) +36 Drayton Road,Aylesbury,Bucks,,HP20 2EW,General Needs,House,1966,Traditional,Natural gas (mains) +38 Drayton Road,Aylesbury,Bucks,,HP20 2EW,General Needs,Flat,1966,Traditional,Natural gas (mains) +40 Drayton Road,Aylesbury,Bucks,,HP20 2EW,General Needs,Flat,1966,Traditional,Natural gas (mains) +14 Drayton Road,Aylesbury,Bucks,,HP20 2EW,General Needs,Flat,1966,Rationalised,None +1 Hilton Avenue,Aylesbury,Bucks,,HP20 2EX,General Needs,House,1966,Rationalised,Natural gas (mains) +2 Hilton Avenue,Aylesbury,Bucks,,HP20 2EX,General Needs,Flat,1966,Rationalised,Natural gas (mains) +7 Hilton Avenue,Aylesbury,Bucks,,HP20 2EX,General Needs,House,1966,Rationalised,Natural gas (mains) +9 Hilton Avenue,Aylesbury,Bucks,,HP20 2EX,General Needs,Maisonette,1968,Traditional,Natural gas (mains) +11 Hilton Avenue,Aylesbury,Bucks,,HP20 2EX,General Needs,Maisonette,1968,Traditional,Natural gas (mains) +13 Hilton Avenue,Aylesbury,Bucks,,HP20 2EX,General Needs,Maisonette,1968,Traditional,Natural gas (mains) +15 Hilton Avenue,Aylesbury,Bucks,,HP20 2EX,General Needs,Maisonette,1968,Traditional,Natural gas (mains) +17 Hilton Avenue,Aylesbury,Bucks,,HP20 2EX,General Needs,Maisonette,1968,Traditional,Natural gas (mains) +21 Hilton Avenue,Aylesbury,Bucks,,HP20 2EX,General Needs,Maisonette,1968,Traditional,Natural gas (mains) +23 Hilton Avenue,Aylesbury,Bucks,,HP20 2EX,General Needs,Maisonette,1968,Traditional,Natural gas (mains) +3 Cantley Close,Aylesbury,Bucks,,HP20 2EY,General Needs,Bungalow,1967,Traditional,Natural gas (mains) +4 Cantley Close,Aylesbury,Bucks,,HP20 2EY,General Needs,Bungalow,1967,Traditional,Natural gas (mains) +5 Cantley Close,Aylesbury,Bucks,,HP20 2EY,General Needs,Bungalow,1967,Traditional,Natural gas (mains) +6 Cantley Close,Aylesbury,Bucks,,HP20 2EY,General Needs,Bungalow,1967,Traditional,Natural gas (mains) +7 Cantley Close,Aylesbury,Bucks,,HP20 2EY,General Needs,Bungalow,1967,Traditional,Natural gas (mains) +8 Cantley Close,Aylesbury,Bucks,,HP20 2EY,General Needs,Bungalow,1967,Traditional,Natural gas (mains) +9 Cantley Close,Aylesbury,Bucks,,HP20 2EY,General Needs,Bungalow,1967,Traditional,Natural gas (mains) +10 Cantley Close,Aylesbury,Bucks,,HP20 2EY,General Needs,Bungalow,1967,Traditional,Natural gas (mains) +25 Hilton Avenue,Aylesbury,Bucks,,HP20 2EZ,General Needs,Maisonette,1968,Traditional,Natural gas (mains) +28 Hilton Avenue,Aylesbury,Bucks,,HP20 2EZ,General Needs,House,1966,Rationalised,Natural gas (mains) +29 Hilton Avenue,Aylesbury,Bucks,,HP20 2EZ,General Needs,Maisonette,1968,Traditional,Natural gas (mains) +31 Hilton Avenue,Aylesbury,Bucks,,HP20 2EZ,General Needs,Maisonette,1966,Traditional,Natural gas (mains) +32 Hilton Avenue,Aylesbury,Bucks,,HP20 2EZ,General Needs,Flat,1966,Rationalised,Natural gas (mains) +33 Hilton Avenue,Aylesbury,Bucks,,HP20 2EZ,General Needs,Maisonette,1966,Traditional,Natural gas (mains) +43 Hilton Avenue,Aylesbury,Bucks,,HP20 2EZ,General Needs,Maisonette,1966,Traditional,Natural gas (mains) +47 Hilton Avenue,Aylesbury,Bucks,,HP20 2EZ,General Needs,Maisonette,1966,Traditional,Natural gas (mains) +53 Hilton Avenue,Aylesbury,Bucks,,HP20 2EZ,General Needs,Maisonette,1966,Traditional,Natural gas (mains) +55 Hilton Avenue,Aylesbury,Bucks,,HP20 2EZ,General Needs,Maisonette,1966,Traditional,Natural gas (mains) +63 Hilton Avenue,Aylesbury,Bucks,,HP20 2EZ,General Needs,Flat,1966,Rationalised,Natural gas (mains) +67 Hilton Avenue,Aylesbury,Bucks,,HP20 2EZ,General Needs,House,1966,Rationalised,Natural gas (mains) +1 Tofield Close,Aylesbury,,,HP20 2FF,General Needs,House,2015,Traditional,Natural gas (mains) +2 Tofield Close,Aylesbury,,,HP20 2FF,General Needs,House,2015,Traditional,Natural gas (mains) +3 Tofield Close,Aylesbury,,,HP20 2FF,General Needs,House,2015,Traditional,Natural gas (mains) +4 Tofield Close,Aylesbury,,,HP20 2FF,General Needs,House,2015,Traditional,Natural gas (mains) +5 Tofield Close,Aylesbury,,,HP20 2FF,General Needs,House,2015,Traditional,Natural gas (mains) +6 Tofield Close,Aylesbury,,,HP20 2FF,General Needs,Flat,2015,Traditional,Natural gas (mains) +7 Tofield Close,Aylesbury,,,HP20 2FF,General Needs,Flat,2015,Traditional,Natural gas (mains) +8 Tofield Close,Aylesbury,,,HP20 2FF,General Needs,Flat,2015,Traditional,Natural gas (mains) +9 Tofield Close,Aylesbury,,,HP20 2FF,General Needs,Flat,2015,Traditional,Natural gas (mains) +10 Tofield Close,Aylesbury,,,HP20 2FF,General Needs,Bungalow,2015,Traditional,Natural gas (mains) +11 Tofield Close,Aylesbury,,,HP20 2FF,General Needs,Bungalow,2015,Traditional,Natural gas (mains) +1 Wickham Close,Aylesbury,,,HP20 2FY,General Needs,Flat,2011,Traditional,Natural gas (mains) +2 Wickham Close,Aylesbury,,,HP20 2FY,General Needs,Flat,2011,Traditional,Natural gas (mains) +3 Wickham Close,Aylesbury,Bucks,,HP20 2FY,General Needs,Flat,2011,Traditional,Natural gas (mains) +4 Wickham Close,Aylesbury,,,HP20 2FY,General Needs,Flat,2011,Traditional,Natural gas (mains) +5 Wickham Close,Aylesbury,,,HP20 2FY,General Needs,Flat,2011,Traditional,Natural gas (mains) +6 Wickham Close,Aylesbury,,,HP20 2FY,General Needs,Flat,2011,Traditional,Natural gas (mains) +7 Wickham Close,Aylesbury,,,HP20 2FY,General Needs,Flat,2011,Traditional,Natural gas (mains) +8 Wickham Close,Aylesbury,,,HP20 2FY,General Needs,Flat,2011,Traditional,Natural gas (mains) +9 Wickham Close,Aylesbury,,,HP20 2FY,General Needs,Flat,2011,Traditional,Natural gas (mains) +10 Wickham Close,Aylesbury,,,HP20 2FY,General Needs,Flat,2011,Traditional,Natural gas (mains) +1 Willow House,Silverdale Close,Aylesbury,,HP20 2FZ,Independent Living,Flat,2011,Traditional,Natural gas (mains) +2 Willow House,Silverdale Close,Aylesbury,,HP20 2FZ,Independent Living,Flat,2011,Traditional,Natural gas (mains) +3 Willow House,Silverdale Close,Aylesbury,,HP20 2FZ,Independent Living,Flat,2011,Traditional,Natural gas (mains) +4 Willow House,Silverdale Close,Aylesbury,,HP20 2FZ,Independent Living,Flat,2011,Traditional,Natural gas (mains) +5 Willow House,Silverdale Close,Aylesbury,,HP20 2FZ,Independent Living,Flat,2011,Traditional,Natural gas (mains) +6 Willow House,Silverdale Close,Aylesbury,,HP20 2FZ,Independent Living,Flat,2011,Traditional,Natural gas (mains) +7 Willow House,Silverdale Close,Aylesbury,,HP20 2FZ,Independent Living,Flat,2011,Traditional,Natural gas (mains) +8 Willow House,Silverdale Close,Aylesbury,,HP20 2FZ,Independent Living,Flat,2011,Traditional,Natural gas (mains) +9 Willow House,Silverdale Close,Aylesbury,,HP20 2FZ,Independent Living,Flat,2011,Traditional,Natural gas (mains) +10 Willow House,Silverdale Close,Aylesbury,,HP20 2FZ,Independent Living,Flat,2011,Traditional,Natural gas (mains) +11 Willow House,Silverdale Close,Aylesbury,,HP20 2FZ,Independent Living,Flat,2011,Traditional,Natural gas (mains) +1 Burdett Close,Aylesbury,Bucks,,HP20 2GF,General Needs,House,2013,Traditional,Natural gas (mains) +2 Burdett Close,Aylesbury,Bucks,,HP20 2GF,General Needs,House,2013,Traditional,Natural gas (mains) +3 Burdett Close,Aylesbury,Bucks,,HP20 2GF,General Needs,House,2013,Traditional,Natural gas (mains) +4 Burdett Close,Aylesbury,Bucks,,HP20 2GF,General Needs,House,2013,Traditional,Natural gas (mains) +5 Burdett Close,Aylesbury,Bucks,,HP20 2GF,General Needs,House,2013,Traditional,Natural gas (mains) +7 Dryden Close,Aylesbury,Bucks,,HP20 2HA,General Needs,House,1965,Rationalised,Natural gas (mains) +1 Cotswold Green,Aylesbury,Bucks,,HP20 2HB,General Needs,Flat,1966,Rationalised,Natural gas (mains) +2 Cotswold Green,Aylesbury,Bucks,,HP20 2HB,General Needs,Flat,1966,Rationalised,Natural gas (mains) +3 Cotswold Green,Aylesbury,Bucks,,HP20 2HB,General Needs,Flat,1966,Rationalised,Natural gas (mains) +19 Cotswold Green,Aylesbury,Bucks,,HP20 2HB,General Needs,House,1966,Rationalised,Natural gas (mains) +5 Westwood Walk,Aylesbury,Bucks,,HP20 2HD,General Needs,House,1965,Rationalised,Natural gas (mains) +9 Westwood Walk,Aylesbury,Bucks,,HP20 2HD,General Needs,Flat,1965,Rationalised,Natural gas (mains) +11 Westwood Walk,Aylesbury,Bucks,,HP20 2HD,General Needs,Flat,1965,Rationalised,Natural gas (mains) +12 Westwood Walk,Aylesbury,Bucks,,HP20 2HD,General Needs,House,1965,Rationalised,Natural gas (mains) +14 Westwood Walk,Aylesbury,Bucks,,HP20 2HD,General Needs,Flat,1965,Rationalised,Natural gas (mains) +16 Westwood Walk,Aylesbury,Bucks,,HP20 2HD,General Needs,Flat,1965,Rationalised,Natural gas (mains) +1 Yardley Green,Aylesbury,Bucks,,HP20 2HE,General Needs,Flat,1966,Rationalised,Natural gas (mains) +2 Yardley Green,Aylesbury,Bucks,,HP20 2HE,General Needs,Flat,1966,Rationalised,Natural gas (mains) +6 Yardley Green,Aylesbury,Bucks,,HP20 2HE,General Needs,House,1967,Rationalised,Natural gas (mains) +9 Yardley Green,Aylesbury,Bucks,,HP20 2HE,General Needs,House,1966,Rationalised,Natural gas (mains) +10 Yardley Green,Aylesbury,Bucks,,HP20 2HE,General Needs,House,1967,Rationalised,Natural gas (mains) +40 Hilton Avenue,Aylesbury,Bucks,,HP20 2HF,General Needs,House,1966,Rationalised,Natural gas (mains) +56 Hilton Avenue,Aylesbury,Bucks,,HP20 2HF,General Needs,House,1966,Rationalised,Natural gas (mains) +77 Hilton Avenue,Aylesbury,Bucks,,HP20 2HF,General Needs,House,1966,Rationalised,Natural gas (mains) +81 Hilton Avenue,Aylesbury,Bucks,,HP20 2HF,General Needs,Flat,1966,Rationalised,Natural gas (mains) +85 Hilton Avenue,Aylesbury,Bucks,,HP20 2HF,General Needs,Flat,1966,Rationalised,Natural gas (mains) +7 Dalston Close,Aylesbury,Bucks,,HP20 2HG,General Needs,House,1965,Rationalised,Natural gas (mains) +9 Dalston Close,Aylesbury,Bucks,,HP20 2HG,General Needs,House,1965,Rationalised,Natural gas (mains) +74 Elmhurst Road,Aylesbury,Bucks,,HP20 2HQ,General Needs,Flat,1966,Rationalised,Natural gas (mains) +76 Elmhurst Road,Aylesbury,Bucks,,HP20 2HQ,General Needs,Flat,1966,Rationalised,Natural gas (mains) +78 Elmhurst Road,Aylesbury,Bucks,,HP20 2HQ,General Needs,House,1966,Rationalised,Natural gas (mains) +80 Elmhurst Road,Aylesbury,Bucks,,HP20 2HQ,General Needs,House,1966,Rationalised,Natural gas (mains) +Flat 1 Britannia House,109 New Street,Aylesbury,,HP20 2NY,General Needs,Flat,2018,Panelised Timber Frame,Natural gas (mains) +Flat 2 Britannia House,109 New Street,Aylesbury,,HP20 2NY,General Needs,Flat,2018,Panelised Timber Frame,Natural gas (mains) +Flat 4 Britannia House,109 New Street,Aylesbury,,HP20 2NY,General Needs,Flat,2018,Panelised Timber Frame,Natural gas (mains) +Flat 5 Britannia House,109 New Street,Aylesbury,,HP20 2NY,General Needs,Flat,2018,Panelised Timber Frame,Natural gas (mains) +Flat 6 Britannia House,109 New Street,Aylesbury,,HP20 2NY,General Needs,Flat,2018,Panelised Timber Frame,Natural gas (mains) +Flat 7 Britannia House,109 New Street,Aylesbury,,HP20 2NY,General Needs,Flat,2018,Panelised Timber Frame,Natural gas (mains) +Flat 8 Britannia House,109 New Street,Aylesbury,,HP20 2NY,General Needs,Flat,2018,Panelised Timber Frame,Natural gas (mains) +Flat 9 Britannia House,109 New Street,Aylesbury,,HP20 2NY,General Needs,Flat,2018,Panelised Timber Frame,Natural gas (mains) +20 Fleet Street,Aylesbury,Bucks,,HP20 2NZ,General Needs,House,1934,Traditional,Natural gas (mains) +2 Essex House,Silverdale Close,Aylesbury,Bucks,HP20 2PF,Independent Living,Flat,1973,Traditional,Radiators - communal gas boiler +3 Essex House,Silverdale Close,Aylesbury,Bucks,HP20 2PF,Independent Living,Flat,1973,Traditional,Radiators - communal gas boiler +4 Essex House,Silverdale Close,Aylesbury,Bucks,HP20 2PF,Independent Living,Flat,1973,Traditional,Radiators - communal gas boiler +5 Essex House,Silverdale Close,Aylesbury,Bucks,HP20 2PF,Independent Living,Flat,1973,Traditional,Radiators - communal gas boiler +6 Essex House,Silverdale Close,Aylesbury,Bucks,HP20 2PF,Independent Living,Flat,1973,Traditional,Radiators - communal gas boiler +7 Essex House,Silverdale Close,Aylesbury,Bucks,HP20 2PF,Independent Living,Flat,1973,Traditional,Radiators - communal gas boiler +8 Essex House,Silverdale Close,Aylesbury,Bucks,HP20 2PF,Independent Living,Flat,1973,Traditional,Radiators - communal gas boiler +9 Essex House,Silverdale Close,Aylesbury,Bucks,HP20 2PF,Independent Living,Flat,1973,Traditional,Radiators - communal gas boiler +10 Essex House,Silverdale Close,Aylesbury,Bucks,HP20 2PF,Independent Living,Flat,1973,Traditional,Radiators - communal gas boiler +11 Essex House,Silverdale Close,Aylesbury,Bucks,HP20 2PF,Independent Living,Flat,1973,Traditional,Radiators - communal gas boiler +12 Essex House,Silverdale Close,Aylesbury,Bucks,HP20 2PF,Independent Living,Flat,1973,Traditional,Radiators - communal gas boiler +13 Essex House,Silverdale Close,Aylesbury,Bucks,HP20 2PF,Independent Living,Flat,1973,Traditional,Radiators - communal gas boiler +14 Essex House,Silverdale Close,Aylesbury,Bucks,HP20 2PF,Independent Living,Flat,1973,Traditional,Radiators - communal gas boiler +15 Essex House,Silverdale Close,Aylesbury,Bucks,HP20 2PF,Independent Living,Flat,1973,Traditional,Radiators - communal gas boiler +16 Essex House,Silverdale Close,Aylesbury,Bucks,HP20 2PF,Independent Living,Flat,1973,Traditional,Radiators - communal gas boiler +17 Essex House,Silverdale Close,Aylesbury,Bucks,HP20 2PF,Independent Living,Flat,1973,Traditional,Radiators - communal gas boiler +19 Essex House,Silverdale Close,Aylesbury,Bucks,HP20 2PF,Independent Living,Flat,1973,Traditional,Radiators - communal gas boiler +20 Essex House,Silverdale Close,Aylesbury,Bucks,HP20 2PF,Independent Living,Flat,1973,Traditional,Radiators - communal gas boiler +21 Essex House,Silverdale Close,Aylesbury,Bucks,HP20 2PF,Independent Living,Flat,1973,Traditional,Radiators - communal gas boiler +22 Essex House,Silverdale Close,Aylesbury,Bucks,HP20 2PF,Independent Living,Flat,1973,Traditional,Radiators - communal gas boiler +23 Essex House,Silverdale Close,Aylesbury,Bucks,HP20 2PF,Independent Living,Flat,1973,Traditional,Radiators - communal gas boiler +24 Essex House,Silverdale Close,Aylesbury,Bucks,HP20 2PF,Independent Living,Flat,1973,Traditional,Radiators - communal gas boiler +25 Essex House,Silverdale Close,Aylesbury,Bucks,HP20 2PF,Independent Living,Flat,1973,Traditional,Radiators - communal gas boiler +26 Essex House,Silverdale Close,Aylesbury,Bucks,HP20 2PF,Independent Living,Flat,1973,Traditional,Radiators - communal gas boiler +27 Essex House,Silverdale Close,Aylesbury,Bucks,HP20 2PF,Independent Living,Flat,1973,Traditional,Radiators - communal gas boiler +28 Essex House,Silverdale Close,Aylesbury,Bucks,HP20 2PF,Independent Living,Flat,1973,Traditional,Radiators - communal gas boiler +29 Essex House,Silverdale Close,Aylesbury,Bucks,HP20 2PF,Independent Living,Flat,1973,Traditional,Radiators - communal gas boiler +30 Essex House,Silverdale Close,Aylesbury,Bucks,HP20 2PF,Independent Living,Flat,1973,Traditional,Radiators - communal gas boiler +31 Essex House,Silverdale Close,Aylesbury,Bucks,HP20 2PF,Independent Living,Flat,1973,Traditional,Radiators - communal gas boiler +32 Essex House,Silverdale Close,Aylesbury,Bucks,HP20 2PF,Independent Living,Flat,1973,Traditional,Radiators - communal gas boiler +33 Essex House,Silverdale Close,Aylesbury,Bucks,HP20 2PF,Independent Living,Flat,1973,Traditional,Radiators - communal gas boiler +34 Essex House,Silverdale Close,Aylesbury,Bucks,HP20 2PF,Independent Living,Flat,1973,Traditional,Radiators - communal gas boiler +35 Essex House,Silverdale Close,Aylesbury,Bucks,HP20 2PF,Independent Living,Flat,1973,Traditional,Radiators - communal gas boiler +36 Essex House,Silverdale Close,Aylesbury,Bucks,HP20 2PF,Independent Living,Flat,1973,Traditional,Radiators - communal gas boiler +37 Essex House,Silverdale Close,Aylesbury,Bucks,HP20 2PF,Independent Living,Flat,1973,Traditional,Radiators - communal gas boiler +38 Essex House,Silverdale Close,Aylesbury,Bucks,HP20 2PF,Independent Living,Flat,1973,Traditional,Radiators - communal gas boiler +39 Essex House,Silverdale Close,Aylesbury,Bucks,HP20 2PF,Independent Living,Flat,1973,Traditional,Radiators - communal gas boiler +40 Essex House,Silverdale Close,Aylesbury,Bucks,HP20 2PF,Independent Living,Flat,1973,Traditional,Radiators - communal gas boiler +41 Essex House,Silverdale Close,Aylesbury,Bucks,HP20 2PF,Independent Living,Flat,1973,Traditional,Radiators - communal gas boiler +42 Essex House,Silverdale Close,Aylesbury,Bucks,HP20 2PF,Independent Living,Flat,1973,Traditional,Radiators - communal gas boiler +43 Essex House,Silverdale Close,Aylesbury,,HP20 2PF,Independent Living,Flat,2010,Traditional,Radiators - communal gas boiler +1 Wharton House,Silverdale Close,Aylesbury,Bucks,HP20 2PG,Independent Living,Flat,1973,Traditional,Natural gas (mains) +2 Wharton House,Silverdale Close,Aylesbury,Bucks,HP20 2PG,Independent Living,Flat,1973,Traditional,Natural gas (mains) +3 Wharton House,Silverdale Close,Aylesbury,Bucks,HP20 2PG,Independent Living,Flat,1973,Traditional,Natural gas (mains) +4 Wharton House,Silverdale Close,Aylesbury,Bucks,HP20 2PG,Independent Living,Flat,1973,Traditional,Natural gas (mains) +5 Wharton House,Silverdale Close,Aylesbury,Bucks,HP20 2PG,Independent Living,Flat,1973,Traditional,Natural gas (mains) +6 Wharton House,Silverdale Close,Aylesbury,Bucks,HP20 2PG,Independent Living,Flat,1973,Traditional,Natural gas (mains) +7 Wharton House,Silverdale Close,Aylesbury,Bucks,HP20 2PG,Independent Living,Flat,1973,Traditional,Natural gas (mains) +8 Wharton House,Silverdale Close,Aylesbury,Bucks,HP20 2PG,Independent Living,Flat,1973,Traditional,Natural gas (mains) +9 Wharton House,Silverdale Close,Aylesbury,Bucks,HP20 2PG,Independent Living,Flat,1973,Traditional,Natural gas (mains) +10 Wharton House,Silverdale Close,Aylesbury,Bucks,HP20 2PG,Independent Living,Flat,1973,Traditional,Natural gas (mains) +11 Wharton House,Silverdale Close,Aylesbury,Bucks,HP20 2PG,Independent Living,Flat,1973,Traditional,Natural gas (mains) +12 Wharton House,Silverdale Close,Aylesbury,Bucks,HP20 2PG,Independent Living,Flat,1973,Traditional,Natural gas (mains) +Flat 1,4 Great Western Street,Aylesbury,,HP20 2PL,General Needs,Flat,2015,Traditional,Storage heaters +Flat 2,4 Great Western Street,Aylesbury,,HP20 2PL,General Needs,Flat,2015,Traditional,Storage heaters +Flat 3,4 Great Western Street,Aylesbury,,HP20 2PL,General Needs,Flat,2015,Traditional,Storage heaters +Flat 4,4 Great Western Street,Aylesbury,,HP20 2PL,General Needs,Flat,2015,Traditional,Storage heaters +Flat 5,4 Great Western Street,Aylesbury,,HP20 2PL,General Needs,Flat,2015,Traditional,Storage heaters +Flat 6,4 Great Western Street,Aylesbury,,HP20 2PL,General Needs,Flat,2015,Traditional,Storage heaters +Flat 7,4 Great Western Street,Aylesbury,,HP20 2PL,General Needs,Flat,2015,Traditional,Storage heaters +Flat 8,4 Great Western Street,Aylesbury,,HP20 2PL,General Needs,Flat,2015,Traditional,Storage heaters +Flat 9,4 Great Western Street,Aylesbury,,HP20 2PL,General Needs,Flat,2015,Traditional,Storage heaters +Flat 10,4 Great Western Street,Aylesbury,Bucks,HP20 2PL,General Needs,Flat,2015,Traditional,Storage heaters +Flat 11,4 Great Western Street,Aylesbury,,HP20 2PL,General Needs,Flat,2015,Traditional,Storage heaters +1 Westbury House,Silverdale Close,Aylesbury,Bucks,HP20 2PQ,Independent Living,Flat,1973,Traditional,Natural gas (mains) +2 Westbury House,Silverdale Close,Aylesbury,Bucks,HP20 2PQ,Independent Living,Flat,1973,Traditional,Natural gas (mains) +3 Westbury House,Silverdale Close,Aylesbury,Bucks,HP20 2PQ,Independent Living,Flat,1973,Traditional,Natural gas (mains) +4 Westbury House,Silverdale Close,Aylesbury,Bucks,HP20 2PQ,Independent Living,Flat,1973,Traditional,Natural gas (mains) +5 Westbury House,Silverdale Close,Aylesbury,Bucks,HP20 2PQ,Independent Living,Flat,1973,Traditional,Natural gas (mains) +6 Westbury House,Silverdale Close,Aylesbury,Bucks,HP20 2PQ,Independent Living,Flat,1973,Traditional,Natural gas (mains) +7 Westbury House,Silverdale Close,Aylesbury,Bucks,HP20 2PQ,Independent Living,Flat,1973,Traditional,Natural gas (mains) +8 Westbury House,Silverdale Close,Aylesbury,Bucks,HP20 2PQ,Independent Living,Flat,1973,Traditional,Natural gas (mains) +9 Westbury House,Silverdale Close,Aylesbury,Bucks,HP20 2PQ,Independent Living,Flat,1973,Traditional,Natural gas (mains) +10 Westbury House,Silverdale Close,Aylesbury,Bucks,HP20 2PQ,Independent Living,Flat,1973,Traditional,Natural gas (mains) +11 Westbury House,Silverdale Close,Aylesbury,Bucks,HP20 2PQ,Independent Living,Flat,1973,Traditional,Natural gas (mains) +12 Westbury House,Silverdale Close,Aylesbury,Bucks,HP20 2PQ,Independent Living,Flat,1973,Traditional,Natural gas (mains) +87 Friarage Road,Aylesbury,Bucks,,HP20 2SD,General Needs,House,1921,Traditional,Natural gas (mains) +89 Friarage Road,Aylesbury,Bucks,,HP20 2SD,General Needs,House,1921,Traditional,Natural gas (mains) +91 Friarage Road,Aylesbury,Bucks,,HP20 2SD,General Needs,House,1921,Traditional,Natural gas (mains) +37 Mount Street,Aylesbury,Bucks,,HP20 2SE,General Needs,House,1977,Traditional,Natural gas (mains) +39 Mount Street,Aylesbury,Bucks,,HP20 2SE,General Needs,House,1977,Traditional,Natural gas (mains) +41 Mount Street,Aylesbury,Bucks,,HP20 2SE,General Needs,House,1977,Traditional,Natural gas (mains) +2 Mill Way,Aylesbury,Bucks,,HP20 2SF,General Needs,House,1921,Traditional,Natural gas (mains) +6 Mill Way,Aylesbury,Bucks,,HP20 2SF,General Needs,House,1921,Traditional,Natural gas (mains) +10 Mill Way,Aylesbury,Bucks,,HP20 2SF,General Needs,House,1921,Traditional,Natural gas (mains) +18 Mill Way,Aylesbury,Bucks,,HP20 2SF,General Needs,House,1921,Traditional,Natural gas (mains) +22 Mill Way,Aylesbury,Bucks,,HP20 2SF,General Needs,House,1921,Traditional,Natural gas (mains) +30 Mill Way,Aylesbury,Bucks,,HP20 2SF,General Needs,House,1921,Traditional,Natural gas (mains) +34 Mill Way,Aylesbury,Bucks,,HP20 2SF,General Needs,House,1921,Traditional,Natural gas (mains) +36 Mill Way,Aylesbury,Bucks,,HP20 2SF,General Needs,House,1921,Traditional,Natural gas (mains) +38 Mill Way,Aylesbury,Bucks,,HP20 2SF,General Needs,House,1921,Traditional,Natural gas (mains) +40 Mill Way,Aylesbury,Bucks,,HP20 2SF,General Needs,House,1921,Traditional,Natural gas (mains) +1 Davies Close,Aylesbury,Bucks,,HP20 2SH,General Needs,House,1977,Traditional,Natural gas (mains) +3 Davies Close,Aylesbury,Bucks,,HP20 2SH,General Needs,House,1977,Traditional,Natural gas (mains) +4 Davies Close,Aylesbury,Bucks,,HP20 2SH,General Needs,House,1977,Traditional,Natural gas (mains) +5 Davies Close,Aylesbury,Bucks,,HP20 2SH,General Needs,House,1977,Traditional,Natural gas (mains) +6 Davies Close,Aylesbury,Bucks,,HP20 2SH,General Needs,House,1977,Traditional,Natural gas (mains) +8 Davies Close,Aylesbury,Bucks,,HP20 2SH,General Needs,House,1977,Traditional,Natural gas (mains) +5 Matthews Close,Aylesbury,Bucks,,HP20 2UZ,General Needs,House,1989,Traditional,Natural gas (mains) +14 Matthews Close,Aylesbury,Bucks,,HP20 2UZ,General Needs,Bungalow,1989,Traditional,Natural gas (mains) +16 Matthews Close,Aylesbury,Bucks,,HP20 2UZ,General Needs,Bungalow,1989,Traditional,Natural gas (mains) +4 Cousins Drive,Aylesbury,Bucks,,HP20 2XP,General Needs,House,1989,Traditional,Natural gas (mains) +5 Cousins Drive,Aylesbury,Bucks,,HP20 2XP,General Needs,House,1989,Traditional,Natural gas (mains) +6 Cousins Drive,Aylesbury,Bucks,,HP20 2XP,General Needs,House,1989,Traditional,Natural gas (mains) +8 Cousins Drive,Aylesbury,Bucks,,HP20 2XP,General Needs,House,1989,Traditional,Natural gas (mains) +9 Cousins Drive,Aylesbury,Bucks,,HP20 2XP,General Needs,House,1989,Traditional,Natural gas (mains) +15 Cousins Drive,Aylesbury,Bucks,,HP20 2XP,General Needs,House,1989,Traditional,Natural gas (mains) +21 Cousins Drive,Aylesbury,Bucks,,HP20 2XP,General Needs,House,1989,Traditional,Natural gas (mains) +25 Cousins Drive,Aylesbury,Bucks,,HP20 2XP,General Needs,House,1989,Traditional,Natural gas (mains) +29 Cousins Drive,Aylesbury,Bucks,,HP20 2XP,General Needs,House,1989,Traditional,Natural gas (mains) +31 Cousins Drive,Aylesbury,Bucks,,HP20 2XP,General Needs,House,1989,Traditional,Natural gas (mains) +33 Cousins Drive,Aylesbury,Bucks,,HP20 2XP,General Needs,House,1989,Traditional,Natural gas (mains) +35 Cousins Drive,Aylesbury,Bucks,,HP20 2XP,General Needs,House,1989,Traditional,Natural gas (mains) +1 Viscount Close,Aylesbury,Bucks,,HP20 2XW,General Needs,House,1989,Traditional,Natural gas (mains) +2 Viscount Close,Aylesbury,Bucks,,HP20 2XW,General Needs,Bungalow,1989,Traditional,Natural gas (mains) +4 Viscount Close,Aylesbury,Bucks,,HP20 2XW,General Needs,Bungalow,1989,Traditional,Natural gas (mains) +6 Viscount Close,Aylesbury,Bucks,,HP20 2XW,General Needs,Bungalow,1989,Traditional,Natural gas (mains) +8 Viscount Close,Aylesbury,Bucks,,HP20 2XW,General Needs,House,1989,Traditional,Natural gas (mains) +10 Queens Mead,Aylesbury,Bucks,,HP21 7AQ,General Needs,House,1960,Traditional,Natural gas (mains) +1 Conway Close,Aylesbury,Bucks,,HP21 7PY,General Needs,Bungalow,1964,Traditional,Natural gas (mains) +2 Conway Close,Aylesbury,Bucks,,HP21 7PY,General Needs,Bungalow,1964,Traditional,Natural gas (mains) +3 Conway Close,Aylesbury,Bucks,,HP21 7PY,General Needs,Bungalow,1964,Traditional,Natural gas (mains) +4 Conway Close,Aylesbury,Bucks,,HP21 7PY,General Needs,Bungalow,1964,Traditional,Natural gas (mains) +5 Conway Close,Aylesbury,Bucks,,HP21 7PY,General Needs,Bungalow,1964,Traditional,Natural gas (mains) +6 Conway Close,Aylesbury,Bucks,,HP21 7PY,General Needs,Bungalow,1964,Traditional,Natural gas (mains) +7 Conway Close,Aylesbury,Bucks,,HP21 7PY,General Needs,Bungalow,1964,Traditional,Natural gas (mains) +8 Conway Close,Aylesbury,Bucks,,HP21 7PY,General Needs,Bungalow,1964,Traditional,Natural gas (mains) +9 Conway Close,Aylesbury,Bucks,,HP21 7PY,General Needs,Bungalow,1964,Traditional,Natural gas (mains) +10 Conway Close,Aylesbury,Bucks,,HP21 7PY,General Needs,Bungalow,1964,Traditional,Natural gas (mains) +11 Conway Close,Aylesbury,Bucks,,HP21 7PY,General Needs,Bungalow,1964,Traditional,Natural gas (mains) +12 Conway Close,Aylesbury,Bucks,,HP21 7PY,General Needs,Bungalow,1964,Traditional,Natural gas (mains) +13 Conway Close,Aylesbury,Bucks,,HP21 7PY,General Needs,Bungalow,1964,Traditional,Natural gas (mains) +14 Conway Close,Aylesbury,Bucks,,HP21 7PY,General Needs,Bungalow,1964,Traditional,Natural gas (mains) +15 Conway Close,Aylesbury,Bucks,,HP21 7PY,General Needs,Bungalow,1964,Traditional,Natural gas (mains) +16 Conway Close,Aylesbury,Bucks,,HP21 7PY,General Needs,Bungalow,1964,Traditional,Natural gas (mains) +17 Conway Close,Aylesbury,Bucks,,HP21 7PY,General Needs,Bungalow,1964,Traditional,Natural gas (mains) +18 Conway Close,Aylesbury,Bucks,,HP21 7PY,General Needs,Bungalow,1964,Traditional,Natural gas (mains) +19 Conway Close,Aylesbury,Bucks,,HP21 7PY,General Needs,Bungalow,1964,Traditional,Natural gas (mains) +1 Landon Court,Walton Road,Aylesbury,Bucks,HP21 7SW,Independent Living,Flat,1977,Traditional,Radiators - communal gas boiler +2 Landon Court,Walton Road,Aylesbury,Bucks,HP21 7SW,Independent Living,Flat,1977,Traditional,Radiators - communal gas boiler +3 Landon Court,Walton Road,Aylesbury,Bucks,HP21 7SW,Independent Living,Flat,1977,Traditional,Radiators - communal gas boiler +4 Landon Court,Walton Road,Aylesbury,,HP21 7SW,Independent Living,Flat,1977,Traditional,Radiators - communal gas boiler +5 Landon Court,Walton Road,Aylesbury,,HP21 7SW,Independent Living,Flat,1977,Traditional,Radiators - communal gas boiler +6 Landon Court,Walton Road,Aylesbury,,HP21 7SW,Independent Living,Flat,1977,Traditional,Radiators - communal gas boiler +7 Landon Court,Walton Road,Aylesbury,,HP21 7SW,Independent Living,Flat,1977,Traditional,Radiators - communal gas boiler +8 Landon Court,Walton Road,Aylesbury,,HP21 7SW,Independent Living,Flat,1977,Traditional,Radiators - communal gas boiler +9 Landon Court,Walton Road,Aylesbury,,HP21 7SW,Independent Living,Flat,1977,Traditional,Radiators - communal gas boiler +10 Landon Court,Walton Road,Aylesbury,,HP21 7SW,Independent Living,Flat,1977,Traditional,Radiators - communal gas boiler +11 Landon Court,Walton Road,Aylesbury,Bucks,HP21 7SW,Independent Living,Flat,1977,Traditional,Radiators - communal gas boiler +12 Landon Court,Walton Road,Aylesbury,Bucks,HP21 7SW,Independent Living,Flat,1977,Traditional,Radiators - communal gas boiler +13 Landon Court,Walton Road,Aylesbury,Bucks,HP21 7SW,Independent Living,Flat,1977,Traditional,Radiators - communal gas boiler +14 Landon Court,Walton Road,Aylesbury,Bucks,HP21 7SW,Independent Living,Flat,1977,Traditional,Radiators - communal gas boiler +15 Landon Court,Walton Road,Aylesbury,Bucks,HP21 7SW,Independent Living,Flat,1977,Traditional,Radiators - communal gas boiler +16 Landon Court,Walton Road,Aylesbury,Bucks,HP21 7SW,Independent Living,Flat,1977,Traditional,Radiators - communal gas boiler +17 Landon Court,Walton Road,Aylesbury,Bucks,HP21 7SW,Independent Living,Flat,1977,Traditional,Radiators - communal gas boiler +18 Landon Court,Walton Road,Aylesbury,Bucks,HP21 7SW,Independent Living,Flat,1977,Traditional,Radiators - communal gas boiler +19 Landon Court,Walton Road,Aylesbury,Bucks,HP21 7SW,Independent Living,Flat,1977,Traditional,Radiators - communal gas boiler +20 Landon Court,Walton Road,Aylesbury,Bucks,HP21 7SW,Independent Living,Flat,1977,Traditional,Radiators - communal gas boiler +21 Landon Court,Walton Road,Aylesbury,Bucks,HP21 7SW,Independent Living,Flat,1977,Traditional,Radiators - communal gas boiler +22 Landon Court,Walton Road,Aylesbury,Bucks,HP21 7SW,Independent Living,Flat,1977,Traditional,Radiators - communal gas boiler +23 Landon Court,Walton Road,Aylesbury,Bucks,HP21 7SW,Independent Living,Flat,1977,Traditional,Radiators - communal gas boiler +24 Landon Court,Walton Road,Aylesbury,Bucks,HP21 7SW,Independent Living,Flat,1977,Traditional,Radiators - communal gas boiler +25 Landon Court,Walton Road,Aylesbury,Bucks,HP21 7SW,Independent Living,Flat,1977,Traditional,Radiators - communal gas boiler +26 Landon Court,Walton Road,Aylesbury,Bucks,HP21 7SW,Independent Living,Flat,1977,Traditional,Radiators - communal gas boiler +27 Landon Court,Walton Road,Aylesbury,Bucks,HP21 7SW,Independent Living,Flat,1977,Traditional,Radiators - communal gas boiler +28 Landon Court,Walton Road,Aylesbury,Bucks,HP21 7SW,Independent Living,Flat,1977,Traditional,Radiators - communal gas boiler +29 Landon Court,Walton Road,Aylesbury,Bucks,HP21 7SW,Independent Living,Flat,1977,Traditional,Radiators - communal gas boiler +62 Camborne Avenue,Bedgrove,Aylesbury,Bucks,HP21 7UD,General Needs,Flat,2014,Traditional,Storage heaters +64 Camborne Avenue,Bedgrove,Aylesbury,Bucks,HP21 7UD,General Needs,Flat,2014,Traditional,Storage heaters +66 Camborne Avenue,Bedgrove,Aylesbury,Bucks,HP21 7UD,General Needs,Flat,2014,Traditional,Storage heaters +68 Camborne Avenue,Bedgrove,Aylesbury,Bucks,HP21 7UD,General Needs,Flat,2014,Traditional,Storage heaters +70 Camborne Avenue,Bedgrove,Aylesbury,Bucks,HP21 7UD,General Needs,Flat,2014,Traditional,Storage heaters +72 Camborne Avenue,Bedgrove,Aylesbury,Bucks,HP21 7UD,General Needs,Flat,2014,Traditional,Storage heaters +74 Camborne Avenue,Bedgrove,Aylesbury,Bucks,HP21 7UD,General Needs,Flat,2014,Traditional,Storage heaters +76 Camborne Avenue,Bedgrove,Aylesbury,Bucks,HP21 7UD,General Needs,Flat,2014,Traditional,Storage heaters +78 Camborne Avenue,Bedgrove,Aylesbury,Bucks,HP21 7UD,General Needs,Flat,2014,Traditional,Storage heaters +80 Camborne Avenue,Bedgrove,Aylesbury,Bucks,HP21 7UD,General Needs,Flat,2014,Traditional,Storage heaters +82 Camborne Avenue,Bedgrove,Aylesbury,Bucks,HP21 7UD,General Needs,Flat,2014,Traditional,Storage heaters +84 Camborne Avenue,Bedgrove,Aylesbury,Bucks,HP21 7UD,General Needs,Flat,2014,Traditional,Storage heaters +86 Camborne Avenue,Bedgrove,Aylesbury,Bucks,HP21 7UD,General Needs,Flat,2014,Traditional,Storage heaters +88 Camborne Avenue,Bedgrove,Aylesbury,Bucks,HP21 7UD,General Needs,Flat,2014,Traditional,Storage heaters +90 Camborne Avenue,Bedgrove,Aylesbury,Bucks,HP21 7UD,General Needs,Flat,2014,Traditional,Storage heaters +92 Camborne Avenue,Bedgrove,Aylesbury,Bucks,HP21 7UD,General Needs,Flat,2014,Traditional,Storage heaters +94 Camborne Avenue,Bedgrove,Aylesbury,Bucks,HP21 7UD,General Needs,Flat,2014,Traditional,Storage heaters +96 Camborne Avenue,Bedgrove,Aylesbury,Bucks,HP21 7UD,General Needs,Flat,2014,Traditional,Storage heaters +98 Camborne Avenue,Bedgrove,Aylesbury,Bucks,HP21 7UD,General Needs,Flat,2014,Traditional,Storage heaters +100 Camborne Avenue,Bedgrove,Aylesbury,Bucks,HP21 7UD,General Needs,Flat,2014,Traditional,Storage heaters +17 Mandeville Road,Aylesbury,Bucks,,HP21 8AA,General Needs,House,1900,Traditional,Natural gas (mains) +67 Mandeville Road,Aylesbury,Bucks,,HP21 8AG,General Needs,House,1968,Rationalised,Natural gas (mains) +69 Mandeville Road,Aylesbury,Bucks,,HP21 8AG,General Needs,House,1968,Rationalised,Natural gas (mains) +9 Rutherford Road,Aylesbury,Bucks,,HP21 8AP,General Needs,Flat,1953,Traditional,Natural gas (mains) +29 Wellington Place,Aylesbury,Bucks,,HP21 8AR,General Needs,Flat,1955,Traditional,Natural gas (mains) +30 Wellington Place,Aylesbury,Bucks,,HP21 8AR,General Needs,Flat,1955,Traditional,Natural gas (mains) +31 Wellington Place,Aylesbury,Bucks,,HP21 8AR,General Needs,Flat,1955,Traditional,Natural gas (mains) +32 Wellington Place,Aylesbury,Bucks,,HP21 8AR,General Needs,Flat,1955,Traditional,Natural gas (mains) +1 Marlborough Road,Aylesbury,Bucks,,HP21 8AU,General Needs,Flat,1955,Traditional,Natural gas (mains) +7 Marlborough Road,Aylesbury,Bucks,,HP21 8AU,General Needs,Flat,1955,Traditional,Natural gas (mains) +162 Churchill Avenue,Aylesbury,Bucks,,HP21 8AY,General Needs,Flat,1955,Traditional,Natural gas (mains) +166 Churchill Avenue,Aylesbury,Bucks,,HP21 8AY,General Needs,Flat,1955,Traditional,Natural gas (mains) +172 Churchill Avenue,Aylesbury,Bucks,,HP21 8BA,General Needs,Flat,1955,Traditional,Natural gas (mains) +174 Churchill Avenue,Aylesbury,Bucks,,HP21 8BA,General Needs,Flat,1955,Traditional,Natural gas (mains) +176 Churchill Avenue,Aylesbury,Bucks,,HP21 8BA,General Needs,Flat,1955,Traditional,Natural gas (mains) +188 Churchill Avenue,Aylesbury,Bucks,,HP21 8BA,General Needs,Flat,1955,Traditional,Natural gas (mains) +192 Churchill Avenue,Aylesbury,Bucks,,HP21 8BA,General Needs,Flat,1955,Traditional,Natural gas (mains) +4 Ashbourne End,Aylesbury,Bucks,,HP21 8BE,General Needs,Flat,1976,Traditional,Natural gas (mains) +6 Ashbourne End,Aylesbury,Bucks,,HP21 8BE,General Needs,House,1976,Traditional,Natural gas (mains) +7 Ashbourne End,Aylesbury,Bucks,,HP21 8BE,General Needs,House,1976,Traditional,Natural gas (mains) +8 Ashbourne End,Aylesbury,Bucks,,HP21 8BE,General Needs,House,1976,Traditional,Natural gas (mains) +10 Ashbourne End,Aylesbury,Bucks,,HP21 8BE,General Needs,House,1976,Traditional,Natural gas (mains) +14 Ashbourne End,Aylesbury,Bucks,,HP21 8BE,General Needs,House,1976,Traditional,Natural gas (mains) +21 Ashbourne End,Aylesbury,Bucks,,HP21 8BE,General Needs,House,1976,Traditional,Natural gas (mains) +1 Helford Close,Aylesbury,Bucks,,HP21 8BG,General Needs,House,1976,Traditional,Natural gas (mains) +8 Helford Close,Aylesbury,Bucks,,HP21 8BG,General Needs,House,1976,Traditional,Natural gas (mains) +9 Helford Close,Aylesbury,Bucks,,HP21 8BG,General Needs,House,1976,Traditional,Natural gas (mains) +10 Helford Close,Aylesbury,Bucks,,HP21 8BG,General Needs,House,1976,Traditional,Natural gas (mains) +12 Helford Close,Aylesbury,Bucks,,HP21 8BG,General Needs,House,1976,Traditional,Natural gas (mains) +13 Helford Close,Aylesbury,Bucks,,HP21 8BG,General Needs,House,1976,Traditional,Natural gas (mains) +14 Helford Close,Aylesbury,Bucks,,HP21 8BG,General Needs,Bungalow,1976,Traditional,Natural gas (mains) +15 Helford Close,Aylesbury,Bucks,,HP21 8BG,General Needs,Bungalow,1976,Traditional,Natural gas (mains) +18 Helford Close,Aylesbury,Bucks,,HP21 8BG,General Needs,House,1976,Traditional,Natural gas (mains) +2 Dane Court,Aylesbury,Bucks,,HP21 8BH,General Needs,Flat,1977,Traditional,Natural gas (mains) +4 Dane Court,Aylesbury,Bucks,,HP21 8BH,General Needs,Maisonette,1977,Traditional,Natural gas (mains) +5 Dane Court,Aylesbury,Bucks,,HP21 8BH,General Needs,Flat,1977,Traditional,Natural gas (mains) +6 Dane Court,Aylesbury,Bucks,,HP21 8BH,General Needs,Maisonette,1977,Traditional,Natural gas (mains) +7 Dane Court,Aylesbury,Bucks,,HP21 8BH,General Needs,Maisonette,1977,Traditional,Natural gas (mains) +10 Dane Court,Aylesbury,Bucks,,HP21 8BH,General Needs,Maisonette,1977,Traditional,Natural gas (mains) +11 Dane Court,Aylesbury,Bucks,,HP21 8BH,General Needs,Flat,1977,Traditional,Natural gas (mains) +13 Dane Court,Aylesbury,Bucks,,HP21 8BH,General Needs,Maisonette,1977,Traditional,Natural gas (mains) +14 Dane Court,Aylesbury,Bucks,,HP21 8BH,General Needs,Flat,1977,Traditional,Natural gas (mains) +17 Dane Court,Aylesbury,Bucks,,HP21 8BH,General Needs,Flat,1977,Traditional,Natural gas (mains) +20 Dane Court,Aylesbury,Bucks,,HP21 8BH,General Needs,Flat,1977,Traditional,Natural gas (mains) +22 Dane Court,Aylesbury,Bucks,,HP21 8BH,General Needs,Maisonette,1977,Traditional,Natural gas (mains) +23 Dane Court,Aylesbury,Bucks,,HP21 8BH,General Needs,Flat,1977,Traditional,Natural gas (mains) +25 Dane Court,Aylesbury,Bucks,,HP21 8BH,General Needs,Maisonette,1977,Traditional,Natural gas (mains) +26 Dane Court,Aylesbury,Bucks,,HP21 8BH,General Needs,Flat,1977,Traditional,Natural gas (mains) +29 Dane Court,Aylesbury,Bucks,,HP21 8BH,General Needs,Flat,1977,Traditional,Natural gas (mains) +31 Dane Court,Aylesbury,Bucks,,HP21 8BH,General Needs,Maisonette,1977,Traditional,Natural gas (mains) +32 Dane Court,Aylesbury,Bucks,,HP21 8BH,General Needs,Flat,1977,Traditional,Natural gas (mains) +34 Dane Court,Aylesbury,Bucks,,HP21 8BH,General Needs,Maisonette,1977,Traditional,Natural gas (mains) +37 Dane Court,Aylesbury,Bucks,,HP21 8BH,General Needs,Maisonette,1977,Traditional,Natural gas (mains) +38 Dane Court,Aylesbury,Bucks,,HP21 8BH,General Needs,Flat,1977,Traditional,Natural gas (mains) +39 Dane Court,Aylesbury,Bucks,,HP21 8BH,General Needs,Maisonette,1977,Traditional,Natural gas (mains) +2 Seaton Drive,Aylesbury,Bucks,,HP21 8BJ,General Needs,Flat,1976,Traditional,Natural gas (mains) +4 Seaton Drive,Aylesbury,Bucks,,HP21 8BJ,General Needs,Flat,1976,Traditional,Natural gas (mains) +9 Seaton Drive,Aylesbury,Bucks,,HP21 8BJ,General Needs,House,1976,Traditional,Natural gas (mains) +10 Seaton Drive,Aylesbury,Bucks,,HP21 8BJ,General Needs,House,1976,Traditional,Natural gas (mains) +1 Windrush Court,Aylesbury,Bucks,,HP21 8BQ,General Needs,House,1976,Traditional,Natural gas (mains) +3 Windrush Court,Aylesbury,Bucks,,HP21 8BQ,General Needs,House,1976,Traditional,Natural gas (mains) +8 Windrush Court,Aylesbury,Bucks,,HP21 8BQ,General Needs,House,1976,Traditional,Natural gas (mains) +9 Windrush Court,Aylesbury,Bucks,,HP21 8BQ,General Needs,House,1976,Traditional,Natural gas (mains) +11 Windrush Court,Aylesbury,Bucks,,HP21 8BQ,General Needs,House,1976,Traditional,Natural gas (mains) +13 Windrush Court,Aylesbury,Bucks,,HP21 8BQ,General Needs,House,1976,Traditional,Natural gas (mains) +20 Windrush Court,Aylesbury,Bucks,,HP21 8BQ,General Needs,House,1976,Traditional,Natural gas (mains) +32 Chiltern Street,Aylesbury,Bucks,,HP21 8BT,General Needs,House,1910,Traditional,Natural gas (mains) +62 Stoke Road,Aylesbury,Bucks,,HP21 8BX,General Needs,House,1955,Traditional,Natural gas (mains) +64 Stoke Road,Aylesbury,Bucks,,HP21 8BX,General Needs,House,1955,Traditional,Natural gas (mains) +68 Stoke Road,Aylesbury,Bucks,,HP21 8BX,General Needs,House,1955,Traditional,Natural gas (mains) +74 Stoke Road,Aylesbury,Bucks,,HP21 8BX,General Needs,House,1955,Traditional,Natural gas (mains) +76 Stoke Road,Aylesbury,Bucks,,HP21 8BX,General Needs,House,1955,Traditional,Natural gas (mains) +78 Stoke Road,Aylesbury,Bucks,,HP21 8BX,General Needs,House,1955,Traditional,Natural gas (mains) +82 Stoke Road,Aylesbury,Bucks,,HP21 8BX,General Needs,House,1955,Traditional,Natural gas (mains) +1 Court Close,Aylesbury,Bucks,,HP21 8BY,General Needs,House,1955,Traditional,Natural gas (mains) +4 Court Close,Aylesbury,Bucks,,HP21 8BY,General Needs,House,1955,Traditional,Natural gas (mains) +6 Court Close,Aylesbury,Bucks,,HP21 8BY,General Needs,House,1955,Traditional,Natural gas (mains) +12 Court Close,Aylesbury,Bucks,,HP21 8BY,General Needs,House,1955,Traditional,Natural gas (mains) +13 Court Close,Aylesbury,Bucks,,HP21 8BY,General Needs,House,1955,Traditional,Natural gas (mains) +14 Court Close,Aylesbury,Bucks,,HP21 8BY,General Needs,House,1955,Traditional,Natural gas (mains) +16 Court Close,Aylesbury,Bucks,,HP21 8BY,General Needs,House,1955,Traditional,Natural gas (mains) +17 Court Close,Aylesbury,Bucks,,HP21 8BY,General Needs,House,1955,Traditional,Natural gas (mains) +19 Court Close,Aylesbury,Bucks,,HP21 8BY,General Needs,House,1955,Traditional,Natural gas (mains) +20 Court Close,Aylesbury,Bucks,,HP21 8BY,General Needs,House,1955,Traditional,Natural gas (mains) +24 Court Close,Aylesbury,Bucks,,HP21 8BY,General Needs,House,1955,Traditional,Natural gas (mains) +6 Melbourne Close,Aylesbury,Bucks,,HP21 8DA,General Needs,House,1975,Traditional,Natural gas (mains) +7 Melbourne Close,Aylesbury,Bucks,,HP21 8DA,General Needs,House,1975,Traditional,Natural gas (mains) +8 Melbourne Close,Aylesbury,Bucks,,HP21 8DA,General Needs,House,1975,Traditional,Natural gas (mains) +13 Melbourne Close,Aylesbury,Bucks,,HP21 8DA,General Needs,House,1975,Traditional,Natural gas (mains) +16 Melbourne Close,Aylesbury,Bucks,,HP21 8DA,General Needs,House,2013,Traditional,Natural gas (mains) +17 Melbourne Close,Aylesbury,Bucks,,HP21 8DA,General Needs,House,2013,Traditional,Natural gas (mains) +18 Melbourne Close,Aylesbury,Bucks,,HP21 8DA,General Needs,House,2013,Traditional,Natural gas (mains) +19 Melbourne Close,Aylesbury,Bucks,,HP21 8DA,General Needs,House,2013,Traditional,Natural gas (mains) +14 Old Stoke Road,Aylesbury,Bucks,,HP21 8DH,General Needs,House,1948,BISF,Natural gas (mains) +16 Old Stoke Road,Aylesbury,Bucks,,HP21 8DH,General Needs,House,1948,BISF,Natural gas (mains) +18 Old Stoke Road,Aylesbury,Bucks,,HP21 8DH,General Needs,House,1948,BISF,Natural gas (mains) +20 Old Stoke Road,Aylesbury,Bucks,,HP21 8DH,General Needs,House,1948,BISF,Natural gas (mains) +22 Old Stoke Road,Aylesbury,Bucks,,HP21 8DH,General Needs,House,1948,BISF,Natural gas (mains) +30 Old Stoke Road,Aylesbury,Bucks,,HP21 8DH,General Needs,House,1948,BISF,Natural gas (mains) +34 Old Stoke Road,Aylesbury,Bucks,,HP21 8DH,General Needs,House,1948,BISF,Natural gas (mains) +36 Old Stoke Road,Aylesbury,Bucks,,HP21 8DH,General Needs,House,1948,BISF,Natural gas (mains) +1 Taylor Road,Aylesbury,Bucks,,HP21 8DJ,General Needs,House,1948,Traditional,Natural gas (mains) +3 Taylor Road,Aylesbury,Bucks,,HP21 8DJ,General Needs,House,1948,Traditional,Natural gas (mains) +5 Taylor Road,Aylesbury,Bucks,,HP21 8DJ,General Needs,House,1948,Traditional,Natural gas (mains) +4 Cottesloe Road,Aylesbury,Bucks,,HP21 8DL,General Needs,House,1948,BISF,Natural gas (mains) +6 Cottesloe Road,Aylesbury,Bucks,,HP21 8DL,General Needs,House,1948,BISF,Natural gas (mains) +7 Cottesloe Road,Aylesbury,Bucks,,HP21 8DL,General Needs,House,1948,BISF,Natural gas (mains) +8 Cottesloe Road,Aylesbury,Bucks,,HP21 8DL,General Needs,House,1948,BISF,Natural gas (mains) +10 Cottesloe Road,Aylesbury,Bucks,,HP21 8DL,General Needs,House,1948,BISF,Natural gas (mains) +14 Cottesloe Road,Aylesbury,Bucks,,HP21 8DL,General Needs,House,1948,BISF,Natural gas (mains) +15 Cottesloe Road,Aylesbury,Bucks,,HP21 8DL,General Needs,House,1948,BISF,Natural gas (mains) +16 Cottesloe Road,Aylesbury,Bucks,,HP21 8DL,General Needs,House,1948,BISF,Natural gas (mains) +17 Cottesloe Road,Aylesbury,Bucks,,HP21 8DL,General Needs,House,1948,BISF,Natural gas (mains) +22 Cottesloe Road,Aylesbury,Bucks,,HP21 8DL,General Needs,House,1948,BISF,Natural gas (mains) +23 Cottesloe Road,Aylesbury,Bucks,,HP21 8DL,General Needs,House,1948,BISF,Natural gas (mains) +25 Cottesloe Road,Aylesbury,Bucks,,HP21 8DL,General Needs,House,1948,BISF,Natural gas (mains) +26 Cottesloe Road,Aylesbury,Bucks,,HP21 8DL,General Needs,House,1948,BISF,Natural gas (mains) +38 Cottesloe Road,Aylesbury,Bucks,,HP21 8DN,General Needs,House,1950,Concrete No Fines,Natural gas (mains) +40 Cottesloe Road,Aylesbury,Bucks,,HP21 8DN,General Needs,House,1950,Concrete No Fines,Natural gas (mains) +46 Cottesloe Road,Aylesbury,Bucks,,HP21 8DN,General Needs,House,1950,Concrete No Fines,Natural gas (mains) +54 Cottesloe Road,Aylesbury,Bucks,,HP21 8DN,General Needs,House,1950,Concrete No Fines,Natural gas (mains) +74 Cottesloe Road,Aylesbury,Bucks,,HP21 8DP,General Needs,House,1950,Concrete No Fines,Natural gas (mains) +7 Clover Lane,Aylesbury,Bucks,,HP21 8DQ,General Needs,House,1974,Traditional,Natural gas (mains) +9 Clover Lane,Aylesbury,Bucks,,HP21 8DQ,General Needs,House,1974,Traditional,Natural gas (mains) +11 Clover Lane,Aylesbury,Bucks,,HP21 8DQ,General Needs,House,1974,Traditional,Natural gas (mains) +17 Clover Lane,Aylesbury,Bucks,,HP21 8DQ,General Needs,House,1974,Traditional,Natural gas (mains) +25 Clover Lane,Aylesbury,Bucks,,HP21 8DQ,General Needs,House,1974,Traditional,Natural gas (mains) +31 Clover Lane,Aylesbury,Bucks,,HP21 8DQ,General Needs,House,1974,Traditional,Natural gas (mains) +33 Clover Lane,Aylesbury,Bucks,,HP21 8DQ,General Needs,Bungalow,1974,Traditional,Natural gas (mains) +35 Clover Lane,Aylesbury,Bucks,,HP21 8DQ,General Needs,Bungalow,1974,Traditional,Natural gas (mains) +37 Clover Lane,Aylesbury,Bucks,,HP21 8DQ,General Needs,Bungalow,1974,Traditional,Natural gas (mains) +39 Clover Lane,Aylesbury,Bucks,,HP21 8DQ,General Needs,Bungalow,1974,Traditional,Natural gas (mains) +41 Clover Lane,Aylesbury,Bucks,,HP21 8DQ,General Needs,Bungalow,1974,Traditional,Natural gas (mains) +43 Clover Lane,Aylesbury,Bucks,,HP21 8DQ,General Needs,Bungalow,1974,Traditional,Natural gas (mains) +6 Clover Lane,Aylesbury,,,HP21 8DQ,General Needs,House,2011,Traditional,Natural gas (mains) +8 Clover Lane,Aylesbury,,,HP21 8DQ,General Needs,House,2011,Traditional,Natural gas (mains) +10 Clover Lane,Aylesbury,,,HP21 8DQ,General Needs,House,2011,Traditional,Natural gas (mains) +12 Clover Lane,Aylesbury,,,HP21 8DQ,General Needs,House,2011,Traditional,Natural gas (mains) +11 Taylor Road,Aylesbury,Bucks,,HP21 8DR,General Needs,House,1948,Traditional,Natural gas (mains) +15 Taylor Road,Aylesbury,Bucks,,HP21 8DR,General Needs,House,1948,BISF,Natural gas (mains) +18 Taylor Road,Aylesbury,Bucks,,HP21 8DR,General Needs,House,1948,BISF,Natural gas (mains) +19 Taylor Road,Aylesbury,Bucks,,HP21 8DR,General Needs,House,1948,BISF,Natural gas (mains) +20 Taylor Road,Aylesbury,Bucks,,HP21 8DR,General Needs,House,1948,BISF,Natural gas (mains) +25 Taylor Road,Aylesbury,Bucks,,HP21 8DR,General Needs,House,1948,BISF,Natural gas (mains) +26 Taylor Road,Aylesbury,Bucks,,HP21 8DR,General Needs,House,1948,Traditional,Natural gas (mains) +30 Taylor Road,Aylesbury,Bucks,,HP21 8DR,General Needs,House,1948,BISF,Natural gas (mains) +32 Taylor Road,Aylesbury,Bucks,,HP21 8DR,General Needs,House,1948,BISF,Natural gas (mains) +40 Taylor Road,Aylesbury,Bucks,,HP21 8DR,General Needs,House,1948,Traditional,Natural gas (mains) +5 Birch Court,Aylesbury,Bucks,,HP21 8DS,Independent Living,Bungalow,1950,Traditional,Natural gas (mains) +7 Birch Court,Aylesbury,Bucks,,HP21 8DS,Independent Living,Bungalow,1950,Traditional,Natural gas (mains) +9 Birch Court,Aylesbury,Bucks,,HP21 8DS,Independent Living,Bungalow,1950,Traditional,Natural gas (mains) +11 Birch Court,Aylesbury,Bucks,,HP21 8DS,Independent Living,Bungalow,1950,Traditional,Natural gas (mains) +13 Birch Court,Aylesbury,Bucks,,HP21 8DS,Independent Living,Bungalow,1950,Traditional,Natural gas (mains) +15 Birch Court,Aylesbury,Bucks,,HP21 8DS,Independent Living,Bungalow,1950,Traditional,Natural gas (mains) +17 Birch Court,Aylesbury,Bucks,,HP21 8DS,Independent Living,Bungalow,1950,Traditional,Natural gas (mains) +19 Birch Court,Aylesbury,Bucks,,HP21 8DS,Independent Living,Bungalow,1950,Traditional,Natural gas (mains) +21 Birch Court,Aylesbury,Bucks,,HP21 8DS,Independent Living,Bungalow,1950,Traditional,Natural gas (mains) +23 Birch Court,Aylesbury,Bucks,,HP21 8DS,Independent Living,Bungalow,1950,Traditional,Natural gas (mains) +25 Birch Court,Aylesbury,Bucks,,HP21 8DS,Independent Living,Bungalow,1950,Traditional,Natural gas (mains) +29 Birch Court,Aylesbury,Bucks,,HP21 8DS,General Needs,Flat,1953,Traditional,Natural gas (mains) +31 Birch Court,Aylesbury,Bucks,,HP21 8DS,Independent Living,Bungalow,1950,Traditional,Natural gas (mains) +33 Birch Court,Aylesbury,Bucks,,HP21 8DS,Independent Living,Bungalow,1950,Traditional,Natural gas (mains) +35 Birch Court,Aylesbury,Bucks,,HP21 8DS,Independent Living,Bungalow,1950,Traditional,Natural gas (mains) +37 Birch Court,Aylesbury,Bucks,,HP21 8DS,Independent Living,Bungalow,1950,Traditional,Natural gas (mains) +39 Birch Court,Aylesbury,Bucks,,HP21 8DS,Independent Living,Bungalow,1950,Traditional,Natural gas (mains) +41 Birch Court,Aylesbury,Bucks,,HP21 8DS,Independent Living,Bungalow,1950,Traditional,Natural gas (mains) +43 Birch Court,Aylesbury,Bucks,,HP21 8DS,Independent Living,Bungalow,1950,Traditional,Natural gas (mains) +45 Birch Court,Aylesbury,Bucks,,HP21 8DS,Independent Living,Bungalow,1950,Traditional,Natural gas (mains) +47 Birch Court,Aylesbury,Bucks,,HP21 8DS,Independent Living,Bungalow,1950,Traditional,Natural gas (mains) +49 Birch Court,Aylesbury,Bucks,,HP21 8DS,Independent Living,Bungalow,1950,Traditional,Natural gas (mains) +51 Birch Court,Aylesbury,Bucks,,HP21 8DS,Independent Living,Bungalow,1950,Traditional,Natural gas (mains) +53 Birch Court,Aylesbury,Bucks,,HP21 8DS,General Needs,House,1954,Traditional,Natural gas (mains) +59 Birch Court,Aylesbury,Bucks,,HP21 8DS,General Needs,House,1954,Traditional,Natural gas (mains) +6 Birch Court,Aylesbury,Bucks,,HP21 8DT,Independent Living,Bungalow,1950,Traditional,Natural gas (mains) +8 Birch Court,Aylesbury,Bucks,,HP21 8DT,Independent Living,Bungalow,1950,Traditional,Natural gas (mains) +10 Birch Court,Aylesbury,Bucks,,HP21 8DT,Independent Living,Bungalow,1950,Traditional,Natural gas (mains) +12 Birch Court,Aylesbury,Bucks,,HP21 8DT,Independent Living,Bungalow,1950,Traditional,Natural gas (mains) +14 Birch Court,Aylesbury,Bucks,,HP21 8DT,Independent Living,Bungalow,1950,Traditional,Natural gas (mains) +16 Birch Court,Aylesbury,Bucks,,HP21 8DT,Independent Living,Bungalow,1950,Traditional,Natural gas (mains) +18 Birch Court,Aylesbury,Bucks,,HP21 8DT,Independent Living,Bungalow,1950,Traditional,Natural gas (mains) +20 Birch Court,Aylesbury,Bucks,,HP21 8DT,Independent Living,Bungalow,1950,Traditional,Natural gas (mains) +22 Birch Court,Aylesbury,Bucks,,HP21 8DT,Independent Living,Bungalow,1950,Traditional,Natural gas (mains) +24 Birch Court,Aylesbury,Bucks,,HP21 8DT,Independent Living,Bungalow,1950,Traditional,Natural gas (mains) +26 Birch Court,Aylesbury,Bucks,,HP21 8DT,Independent Living,Bungalow,1950,Traditional,Natural gas (mains) +30 Birch Court,Aylesbury,Bucks,,HP21 8DT,Independent Living,Bungalow,1989,Traditional,Natural gas (mains) +32 Birch Court,Aylesbury,Bucks,,HP21 8DT,Independent Living,Bungalow,1989,Traditional,Natural gas (mains) +36 Birch Court,Aylesbury,Bucks,,HP21 8DT,Independent Living,Bungalow,1950,Traditional,Natural gas (mains) +38 Birch Court,Aylesbury,Bucks,,HP21 8DT,Independent Living,Bungalow,1950,Traditional,Natural gas (mains) +40 Birch Court,Aylesbury,Bucks,,HP21 8DT,Independent Living,Bungalow,1950,Traditional,Natural gas (mains) +42 Birch Court,Aylesbury,Bucks,,HP21 8DT,Independent Living,Bungalow,1950,Traditional,Natural gas (mains) +44 Birch Court,Aylesbury,Bucks,,HP21 8DT,Independent Living,Bungalow,1950,Traditional,Natural gas (mains) +46 Birch Court,Aylesbury,Bucks,,HP21 8DT,Independent Living,Bungalow,1950,Traditional,Natural gas (mains) +48 Birch Court,Aylesbury,Bucks,,HP21 8DT,Independent Living,Bungalow,1950,Traditional,Natural gas (mains) +50 Birch Court,Aylesbury,Bucks,,HP21 8DT,Independent Living,Bungalow,1950,Traditional,Natural gas (mains) +52 Birch Court,Aylesbury,Bucks,,HP21 8DT,Independent Living,Bungalow,1950,Traditional,Natural gas (mains) +54 Birch Court,Aylesbury,Bucks,,HP21 8DT,Independent Living,Bungalow,1950,Traditional,Natural gas (mains) +56 Birch Court,Aylesbury,Bucks,,HP21 8DT,Independent Living,Bungalow,1950,Traditional,Natural gas (mains) +39 Thrasher Road,Aylesbury,Bucks,,HP21 8DU,General Needs,House,1948,BISF,Natural gas (mains) +43 Thrasher Road,Aylesbury,Bucks,,HP21 8DU,General Needs,House,1948,BISF,Natural gas (mains) +51 Thrasher Road,Aylesbury,Bucks,,HP21 8DU,General Needs,House,1948,BISF,Natural gas (mains) +57 Thrasher Road,Aylesbury,Bucks,,HP21 8DU,General Needs,House,1950,Traditional,Natural gas (mains) +68 Cottesloe Road,Aylesbury,Bucks,,HP21 8DW,General Needs,House,1950,Concrete No Fines,Natural gas (mains) +38 Thrasher Road,Aylesbury,Bucks,,HP21 8DX,General Needs,House,1948,BISF,Natural gas (mains) +42 Thrasher Road,Aylesbury,Bucks,,HP21 8DX,General Needs,House,1948,BISF,Natural gas (mains) +44 Thrasher Road,Aylesbury,Bucks,,HP21 8DX,General Needs,House,1948,BISF,Natural gas (mains) +46 Thrasher Road,Aylesbury,Bucks,,HP21 8DX,General Needs,House,1948,BISF,Natural gas (mains) +52 Thrasher Road,Aylesbury,Bucks,,HP21 8DX,General Needs,House,1948,BISF,Natural gas (mains) +56 Thrasher Road,Aylesbury,Bucks,,HP21 8DX,General Needs,House,1950,Traditional,Natural gas (mains) +64 Thrasher Road,Aylesbury,Bucks,,HP21 8DX,General Needs,House,1950,Concrete No Fines,Natural gas (mains) +74 Thrasher Road,Aylesbury,Bucks,,HP21 8DX,General Needs,House,1950,Traditional,Natural gas (mains) +78 Thrasher Road,Aylesbury,Bucks,,HP21 8DX,General Needs,House,1950,Concrete No Fines,Natural gas (mains) +33 Taylor Road,Aylesbury,Bucks,,HP21 8DY,General Needs,Bungalow,1949,Traditional,Natural gas (mains) +35 Taylor Road,Aylesbury,Bucks,,HP21 8DY,General Needs,Bungalow,1948,Traditional,Natural gas (mains) +37 Taylor Road,Aylesbury,Bucks,,HP21 8DY,General Needs,Bungalow,1948,Traditional,Natural gas (mains) +39 Taylor Road,Aylesbury,Bucks,,HP21 8DY,General Needs,Bungalow,1948,Traditional,Natural gas (mains) +42 Taylor Road,Aylesbury,Bucks,,HP21 8DY,General Needs,Bungalow,1948,Traditional,Natural gas (mains) +44 Taylor Road,Aylesbury,Bucks,,HP21 8DY,General Needs,Bungalow,1948,Traditional,Natural gas (mains) +46 Taylor Road,Aylesbury,Bucks,,HP21 8DY,General Needs,Bungalow,1948,Traditional,Natural gas (mains) +48 Taylor Road,Aylesbury,Bucks,,HP21 8DY,General Needs,Bungalow,1948,Traditional,Natural gas (mains) +2 Thrasher Road,Aylesbury,Bucks,,HP21 8DZ,General Needs,House,1948,BISF,Natural gas (mains) +3 Thrasher Road,Aylesbury,Bucks,,HP21 8DZ,General Needs,House,1948,BISF,Natural gas (mains) +4 Thrasher Road,Aylesbury,Bucks,,HP21 8DZ,General Needs,House,1948,BISF,Natural gas (mains) +6 Thrasher Road,Aylesbury,Bucks,,HP21 8DZ,General Needs,House,1948,BISF,Natural gas (mains) +8 Thrasher Road,Aylesbury,Bucks,,HP21 8DZ,General Needs,House,1948,BISF,Natural gas (mains) +9 Thrasher Road,Aylesbury,Bucks,,HP21 8DZ,General Needs,House,1948,BISF,Natural gas (mains) +10 Thrasher Road,Aylesbury,Bucks,,HP21 8DZ,General Needs,House,1948,BISF,Natural gas (mains) +12 Thrasher Road,Aylesbury,Bucks,,HP21 8DZ,General Needs,House,1948,BISF,Natural gas (mains) +16 Thrasher Road,Aylesbury,Bucks,,HP21 8DZ,General Needs,House,1948,BISF,Natural gas (mains) +21 Thrasher Road,Aylesbury,Bucks,,HP21 8DZ,General Needs,House,1948,BISF,Natural gas (mains) +23 Thrasher Road,Aylesbury,Bucks,,HP21 8DZ,General Needs,House,1948,BISF,Natural gas (mains) +24 Thrasher Road,Aylesbury,Bucks,,HP21 8DZ,General Needs,House,1948,BISF,Natural gas (mains) +25 Thrasher Road,Aylesbury,Bucks,,HP21 8DZ,General Needs,House,1948,BISF,Natural gas (mains) +26 Thrasher Road,Aylesbury,Bucks,,HP21 8DZ,General Needs,House,1948,BISF,Natural gas (mains) +27 Thrasher Road,Aylesbury,Bucks,,HP21 8DZ,General Needs,House,1948,BISF,Natural gas (mains) +30 Thrasher Road,Aylesbury,Bucks,,HP21 8DZ,General Needs,House,1948,BISF,Natural gas (mains) +35 Thrasher Road,Aylesbury,Bucks,,HP21 8DZ,General Needs,House,1948,BISF,Natural gas (mains) +36 Thrasher Road,Aylesbury,Bucks,,HP21 8DZ,General Needs,House,1948,BISF,Natural gas (mains) +1A Verney Walk,Aylesbury,Bucks,,HP21 8EA,General Needs,Bungalow,1955,Traditional,Natural gas (mains) +3A Verney Walk,Aylesbury,Bucks,,HP21 8EA,General Needs,Bungalow,1955,Traditional,Natural gas (mains) +1 Verney Walk,Aylesbury,Bucks,,HP21 8EA,General Needs,Bungalow,1955,Traditional,Natural gas (mains) +2 Verney Walk,Aylesbury,Bucks,,HP21 8EA,General Needs,House,1948,BISF,Natural gas (mains) +3 Verney Walk,Aylesbury,Bucks,,HP21 8EA,General Needs,Bungalow,1955,Traditional,Natural gas (mains) +5 Verney Walk,Aylesbury,Bucks,,HP21 8EA,General Needs,Bungalow,1955,Traditional,Natural gas (mains) +7 Verney Walk,Aylesbury,Bucks,,HP21 8EA,General Needs,Bungalow,1955,Traditional,Natural gas (mains) +8 Verney Walk,Aylesbury,Bucks,,HP21 8EA,General Needs,House,1948,BISF,Natural gas (mains) +9 Verney Walk,Aylesbury,Bucks,,HP21 8EA,General Needs,Bungalow,1955,Traditional,Natural gas (mains) +11 Verney Walk,Aylesbury,Bucks,,HP21 8EA,General Needs,Bungalow,1955,Traditional,Natural gas (mains) +13 Verney Walk,Aylesbury,Bucks,,HP21 8EA,General Needs,Bungalow,1954,Traditional,Natural gas (mains) +14 Verney Walk,Aylesbury,Bucks,,HP21 8EA,General Needs,House,1948,BISF,Natural gas (mains) +16 Verney Walk,Aylesbury,Bucks,,HP21 8EA,General Needs,House,1948,BISF,Natural gas (mains) +17 Verney Walk,Aylesbury,Bucks,,HP21 8EA,General Needs,Bungalow,1954,Traditional,Natural gas (mains) +18 Verney Walk,Aylesbury,Bucks,,HP21 8EA,General Needs,House,1948,BISF,Natural gas (mains) +19 Verney Walk,Aylesbury,Bucks,,HP21 8EA,General Needs,Bungalow,1954,Traditional,Natural gas (mains) +20 Verney Walk,Aylesbury,Bucks,,HP21 8EA,General Needs,House,1948,BISF,Natural gas (mains) +22 Verney Walk,Aylesbury,Bucks,,HP21 8EA,General Needs,House,1948,BISF,Natural gas (mains) +2 Claydon Close,Aylesbury,Bucks,,HP21 8EB,General Needs,House,1948,BISF,Natural gas (mains) +5 Claydon Close,Aylesbury,Bucks,,HP21 8EB,General Needs,House,1948,BISF,Natural gas (mains) +21 Verney Walk,Aylesbury,Bucks,,HP21 8ED,General Needs,Bungalow,1954,Traditional,Natural gas (mains) +23 Verney Walk,Aylesbury,Bucks,,HP21 8ED,General Needs,Bungalow,1954,Traditional,Natural gas (mains) +25 Verney Walk,Aylesbury,Bucks,,HP21 8ED,General Needs,Bungalow,1954,Traditional,Natural gas (mains) +27 Verney Walk,Aylesbury,Bucks,,HP21 8ED,General Needs,Bungalow,1954,Traditional,Natural gas (mains) +28 Verney Walk,Aylesbury,Bucks,,HP21 8ED,General Needs,House,1948,BISF,Natural gas (mains) +29 Verney Walk,Aylesbury,Bucks,,HP21 8ED,General Needs,Bungalow,1954,Traditional,Natural gas (mains) +31 Verney Walk,Aylesbury,Bucks,,HP21 8ED,General Needs,Bungalow,1954,Traditional,Natural gas (mains) +32 Verney Walk,Aylesbury,Bucks,,HP21 8ED,General Needs,House,1948,BISF,Natural gas (mains) +33 Verney Walk,Aylesbury,Bucks,,HP21 8ED,General Needs,House,1954,Traditional,Natural gas (mains) +34 Verney Walk,Aylesbury,Bucks,,HP21 8ED,General Needs,House,1948,BISF,Natural gas (mains) +35 Verney Walk,Aylesbury,Bucks,,HP21 8ED,General Needs,House,1954,Traditional,Natural gas (mains) +36 Verney Walk,Aylesbury,Bucks,,HP21 8ED,General Needs,House,1948,BISF,Natural gas (mains) +1 Ellen Road,Aylesbury,Bucks,,HP21 8EF,General Needs,Flat,1975,Traditional,Natural gas (mains) +4 Ellen Road,Aylesbury,Bucks,,HP21 8EF,General Needs,Bungalow,1975,Traditional,Natural gas (mains) +6 Ellen Road,Aylesbury,Bucks,,HP21 8EF,General Needs,Bungalow,1975,Traditional,Natural gas (mains) +8 Ellen Road,Aylesbury,Bucks,,HP21 8EF,General Needs,Bungalow,1975,Traditional,Natural gas (mains) +9 Ellen Road,Aylesbury,Bucks,,HP21 8EF,General Needs,Flat,1975,Traditional,Natural gas (mains) +10 Ellen Road,Aylesbury,Bucks,,HP21 8EF,General Needs,Bungalow,1975,Traditional,Natural gas (mains) +13 Ellen Road,Aylesbury,Bucks,,HP21 8EF,General Needs,Flat,1975,Traditional,Natural gas (mains) +15 Ellen Road,Aylesbury,Bucks,,HP21 8EF,General Needs,Flat,1975,Traditional,Natural gas (mains) +17 Ellen Road,Aylesbury,Bucks,,HP21 8EF,General Needs,Flat,1975,Traditional,Natural gas (mains) +21 Ellen Road,Aylesbury,Bucks,,HP21 8EF,General Needs,Flat,1975,Traditional,Natural gas (mains) +2 Torridge Road,Aylesbury,Bucks,,HP21 8EG,General Needs,Bungalow,1975,Traditional,Natural gas (mains) +4 Torridge Road,Aylesbury,Bucks,,HP21 8EG,General Needs,Bungalow,1975,Traditional,Natural gas (mains) +6 Torridge Road,Aylesbury,Bucks,,HP21 8EG,General Needs,Bungalow,1975,Traditional,Natural gas (mains) +12 Torridge Road,Aylesbury,Bucks,,HP21 8EG,General Needs,House,1975,Traditional,Natural gas (mains) +13 Torridge Road,Aylesbury,Bucks,,HP21 8EG,General Needs,House,1975,Traditional,Natural gas (mains) +15 Torridge Road,Aylesbury,Bucks,,HP21 8EG,General Needs,House,1975,Traditional,Natural gas (mains) +16 Torridge Road,Aylesbury,Bucks,,HP21 8EG,General Needs,Flat,1975,Traditional,Natural gas (mains) +18 Torridge Road,Aylesbury,Bucks,,HP21 8EG,General Needs,Flat,1975,Traditional,Natural gas (mains) +27 Torridge Road,Aylesbury,Bucks,,HP21 8EG,General Needs,House,1975,Traditional,Natural gas (mains) +30 Torridge Road,Aylesbury,Bucks,,HP21 8EG,General Needs,House,1975,Traditional,Natural gas (mains) +31 Torridge Road,Aylesbury,Bucks,,HP21 8EG,General Needs,House,1975,Traditional,Natural gas (mains) +33 Torridge Road,Aylesbury,Bucks,,HP21 8EG,General Needs,House,1975,Traditional,Natural gas (mains) +38 Torridge Road,Aylesbury,Bucks,,HP21 8EG,General Needs,House,1975,Traditional,Natural gas (mains) +39 Torridge Road,Aylesbury,Bucks,,HP21 8EG,General Needs,Flat,1975,Traditional,Natural gas (mains) +41 Torridge Road,Aylesbury,Bucks,,HP21 8EG,General Needs,Flat,1975,Traditional,Natural gas (mains) +7 Fremantle Road,Aylesbury,Bucks,,HP21 8EH,General Needs,House,1953,Traditional,Natural gas (mains) +13 Fremantle Road,Aylesbury,Bucks,,HP21 8EH,General Needs,House,1953,Traditional,Natural gas (mains) +15 Fremantle Road,Aylesbury,Bucks,,HP21 8EH,General Needs,House,1953,Traditional,Natural gas (mains) +21 Fremantle Road,Aylesbury,Bucks,,HP21 8EH,General Needs,House,1953,Traditional,Natural gas (mains) +23 Fremantle Road,Aylesbury,Bucks,,HP21 8EH,General Needs,House,1953,Traditional,Natural gas (mains) +37 Fremantle Road,Aylesbury,Bucks,,HP21 8EH,General Needs,Flat,1953,Traditional,Natural gas (mains) +41 Fremantle Road,Aylesbury,Bucks,,HP21 8EH,General Needs,Flat,1953,Traditional,Natural gas (mains) +45 Fremantle Road,Aylesbury,Bucks,,HP21 8EH,General Needs,House,1953,Traditional,Natural gas (mains) +53 Fremantle Road,Aylesbury,Bucks,,HP21 8EH,General Needs,House,1953,Traditional,Natural gas (mains) +61 Fremantle Road,Aylesbury,Bucks,,HP21 8EH,General Needs,Flat,1953,Traditional,Natural gas (mains) +63 Fremantle Road,Aylesbury,Bucks,,HP21 8EH,General Needs,Flat,1953,Traditional,Natural gas (mains) +69 Fremantle Road,Aylesbury,Bucks,,HP21 8EH,General Needs,House,1953,Traditional,Natural gas (mains) +71 Fremantle Road,Aylesbury,Bucks,,HP21 8EH,General Needs,House,1953,Traditional,Natural gas (mains) +73 Fremantle Road,Aylesbury,Bucks,,HP21 8EH,General Needs,House,1953,Traditional,Natural gas (mains) +4 Fremantle Road,Aylesbury,Bucks,,HP21 8EJ,General Needs,House,1953,Traditional,Natural gas (mains) +10 Fremantle Road,Aylesbury,Bucks,,HP21 8EJ,General Needs,House,1953,Traditional,Natural gas (mains) +12 Fremantle Road,Aylesbury,Bucks,,HP21 8EJ,General Needs,House,1953,Traditional,Natural gas (mains) +14 Fremantle Road,Aylesbury,Bucks,,HP21 8EJ,General Needs,House,1953,Traditional,Natural gas (mains) +24 Fremantle Road,Aylesbury,Bucks,,HP21 8EJ,General Needs,House,1953,Traditional,Natural gas (mains) +32 Fremantle Road,Aylesbury,Bucks,,HP21 8EJ,General Needs,House,1953,Traditional,Natural gas (mains) +38 Fremantle Road,Aylesbury,Bucks,,HP21 8EJ,General Needs,House,1953,Traditional,Natural gas (mains) +44 Fremantle Road,Aylesbury,Bucks,,HP21 8EJ,General Needs,House,1953,Traditional,Natural gas (mains) +48 Fremantle Road,Aylesbury,Bucks,,HP21 8EJ,General Needs,House,1953,Traditional,Natural gas (mains) +50 Fremantle Road,Aylesbury,Bucks,,HP21 8EJ,General Needs,House,1953,Traditional,Natural gas (mains) +54 Fremantle Road,Aylesbury,Bucks,,HP21 8EJ,General Needs,Flat,1953,Traditional,Natural gas (mains) +56 Fremantle Road,Aylesbury,Bucks,,HP21 8EJ,General Needs,Flat,1953,Traditional,Natural gas (mains) +58 Fremantle Road,Aylesbury,Bucks,,HP21 8EJ,General Needs,Flat,1953,Traditional,Natural gas (mains) +60 Fremantle Road,Aylesbury,Bucks,,HP21 8EJ,General Needs,Flat,1953,Traditional,Natural gas (mains) +66 Fremantle Road,Aylesbury,Bucks,,HP21 8EJ,General Needs,Flat,1953,Traditional,Natural gas (mains) +70 Fremantle Road,Aylesbury,Bucks,,HP21 8EJ,General Needs,House,1953,Traditional,Natural gas (mains) +126 Churchill Avenue,Aylesbury,Bucks,,HP21 8EL,General Needs,Flat,1954,Traditional,Natural gas (mains) +181 Churchill Avenue,Aylesbury,Bucks,,HP21 8EP,General Needs,House,1956,Traditional,Natural gas (mains) +183 Churchill Avenue,Aylesbury,Bucks,,HP21 8EP,General Needs,House,1956,Traditional,Natural gas (mains) +187 Churchill Avenue,Aylesbury,Bucks,,HP21 8EP,General Needs,House,1956,Traditional,Natural gas (mains) +189 Churchill Avenue,Aylesbury,Bucks,,HP21 8EP,General Needs,House,1956,Traditional,Natural gas (mains) +1 Bedwyn Walk,Aylesbury,Bucks,,HP21 8EQ,General Needs,House,1975,Traditional,Natural gas (mains) +5 Bedwyn Walk,Aylesbury,Bucks,,HP21 8EQ,General Needs,House,1975,Traditional,Natural gas (mains) +9 Bedwyn Walk,Aylesbury,Bucks,,HP21 8EQ,General Needs,House,1975,Traditional,Natural gas (mains) +10 Bedwyn Walk,Aylesbury,Bucks,,HP21 8EQ,General Needs,House,1975,Traditional,Natural gas (mains) +11 Bedwyn Walk,Aylesbury,Bucks,,HP21 8EQ,General Needs,House,1975,Traditional,Natural gas (mains) +24 Bedwyn Walk,Aylesbury,Bucks,,HP21 8EQ,General Needs,House,1977,Traditional,Natural gas (mains) +25 Bedwyn Walk,Aylesbury,Bucks,,HP21 8EQ,General Needs,House,1977,Traditional,Natural gas (mains) +92 Churchill Avenue,Aylesbury,Bucks,,HP21 8ER,General Needs,House,1950,Concrete No Fines,Natural gas (mains) +97 Churchill Avenue,Aylesbury,Bucks,,HP21 8ER,General Needs,House,1950,Concrete No Fines,Natural gas (mains) +101 Churchill Avenue,Aylesbury,Bucks,,HP21 8ER,General Needs,House,1950,Concrete No Fines,Natural gas (mains) +103 Churchill Avenue,Aylesbury,Bucks,,HP21 8ER,General Needs,House,1950,Concrete No Fines,Natural gas (mains) +113 Churchill Avenue,Aylesbury,Bucks,,HP21 8ER,General Needs,House,1950,Concrete No Fines,Natural gas (mains) +115 Churchill Avenue,Aylesbury,Bucks,,HP21 8ER,General Needs,House,1950,Concrete No Fines,Natural gas (mains) +120 Churchill Avenue,Aylesbury,Bucks,,HP21 8ER,General Needs,House,1950,Concrete No Fines,Natural gas (mains) +121 Churchill Avenue,Aylesbury,Bucks,,HP21 8ER,General Needs,House,1950,Concrete No Fines,Natural gas (mains) +43 Grenville Road,Aylesbury,Bucks,,HP21 8ET,General Needs,House,1950,Concrete No Fines,Natural gas (mains) +51 Grenville Road,Aylesbury,Bucks,,HP21 8ET,General Needs,House,1950,Concrete No Fines,Natural gas (mains) +75 Grenville Road,Aylesbury,Bucks,,HP21 8ET,General Needs,House,1950,Concrete No Fines,Natural gas (mains) +85 Grenville Road,Aylesbury,Bucks,,HP21 8ET,General Needs,House,1950,Concrete No Fines,Natural gas (mains) +2 Vicarage Road,Aylesbury,Bucks,,HP21 8EU,General Needs,House,1951,Traditional,Natural gas (mains) +8 Vicarage Road,Aylesbury,Bucks,,HP21 8EU,General Needs,House,1951,Traditional,Natural gas (mains) +11 Grenville Road,Aylesbury,Bucks,,HP21 8EX,General Needs,House,1948,Traditional,Natural gas (mains) +13 Grenville Road,Aylesbury,Bucks,,HP21 8EX,General Needs,House,1948,Traditional,Natural gas (mains) +15 Grenville Road,Aylesbury,Bucks,,HP21 8EX,General Needs,House,1948,Traditional,Natural gas (mains) +17 Grenville Road,Aylesbury,Bucks,,HP21 8EX,General Needs,House,1948,Traditional,Natural gas (mains) +19 Grenville Road,Aylesbury,Bucks,,HP21 8EX,General Needs,House,1948,Traditional,Natural gas (mains) +33 Grenville Road,Aylesbury,Bucks,,HP21 8EX,General Needs,House,1948,Traditional,Natural gas (mains) +49 Grenville Road,Aylesbury,Bucks,,HP21 8EX,General Needs,House,1950,Concrete No Fines,Natural gas (mains) +8 Grenville Road,Aylesbury,Bucks,,HP21 8EY,General Needs,House,1948,Traditional,Natural gas (mains) +12 Grenville Road,Aylesbury,Bucks,,HP21 8EY,General Needs,House,1948,Traditional,Natural gas (mains) +18 Grenville Road,Aylesbury,Bucks,,HP21 8EY,General Needs,House,1948,Traditional,Natural gas (mains) +20 Grenville Road,Aylesbury,Bucks,,HP21 8EY,General Needs,House,1948,Traditional,Natural gas (mains) +22 Grenville Road,Aylesbury,Bucks,,HP21 8EY,General Needs,House,1948,Traditional,Natural gas (mains) +28 Grenville Road,Aylesbury,Bucks,,HP21 8EY,General Needs,House,1948,Traditional,Natural gas (mains) +30 Grenville Road,Aylesbury,Bucks,,HP21 8EY,General Needs,House,1948,Traditional,Natural gas (mains) +36 Grenville Road,Aylesbury,Bucks,,HP21 8EY,General Needs,House,1953,Traditional,Natural gas (mains) +44 Grenville Road,Aylesbury,Bucks,,HP21 8EY,General Needs,House,1948,Traditional,Natural gas (mains) +50 Grenville Road,Aylesbury,Bucks,,HP21 8EY,General Needs,House,1948,Traditional,Natural gas (mains) +52 Grenville Road,Aylesbury,Bucks,,HP21 8EY,General Needs,House,1948,Traditional,Natural gas (mains) +78 Grenville Road,Aylesbury,Bucks,,HP21 8EZ,General Needs,House,1950,Concrete No Fines,Natural gas (mains) +86 Grenville Road,Aylesbury,Bucks,,HP21 8EZ,General Needs,House,1950,Concrete No Fines,Natural gas (mains) +98 Grenville Road,Aylesbury,Bucks,,HP21 8EZ,General Needs,House,1950,Concrete No Fines,Natural gas (mains) +100 Grenville Road,Aylesbury,Bucks,,HP21 8EZ,General Needs,House,1950,Concrete No Fines,Natural gas (mains) +114 Grenville Road,Aylesbury,Bucks,,HP21 8EZ,General Needs,House,1950,Concrete No Fines,Natural gas (mains) +116 Grenville Road,Aylesbury,Bucks,,HP21 8EZ,General Needs,House,1950,Concrete No Fines,Natural gas (mains) +122 Grenville Road,Aylesbury,Bucks,,HP21 8EZ,General Needs,House,1950,Concrete No Fines,Natural gas (mains) +124 Grenville Road,Aylesbury,Bucks,,HP21 8EZ,General Needs,House,1950,Concrete No Fines,Natural gas (mains) +128 Grenville Road,Aylesbury,Bucks,,HP21 8EZ,General Needs,House,1950,Concrete No Fines,Natural gas (mains) +132 Grenville Road,Aylesbury,Bucks,,HP21 8EZ,General Needs,House,1950,Concrete No Fines,Natural gas (mains) +1 Withers Close,Aylesbury,,,HP21 8FB,General Needs,House,2015,Traditional,Natural gas (mains) +2 Withers Close,Aylesbury,,,HP21 8FB,General Needs,House,2015,Traditional,Natural gas (mains) +3 Withers Close,Aylesbury,,,HP21 8FB,General Needs,House,2015,Traditional,Natural gas (mains) +4 Withers Close,Aylesbury,,,HP21 8FB,General Needs,House,2015,Traditional,Natural gas (mains) +5 Withers Close,Aylesbury,,,HP21 8FB,General Needs,Flat,2015,Traditional,Natural gas (mains) +6 Withers Close,Aylesbury,,,HP21 8FB,General Needs,Flat,2015,Traditional,Natural gas (mains) +7 Withers Close,Aylesbury,,,HP21 8FB,General Needs,Flat,2015,Traditional,Natural gas (mains) +8 Withers Close,Aylesbury,,,HP21 8FB,General Needs,Flat,2015,Traditional,Natural gas (mains) +1 Grenville Green,Aylesbury,Bucks,,HP21 8HA,General Needs,Flat,1970,Rationalised,Natural gas (mains) +4 Grenville Green,Aylesbury,Bucks,,HP21 8HA,General Needs,Flat,1970,Rationalised,Natural gas (mains) +10 Grenville Green,Aylesbury,Bucks,,HP21 8HA,General Needs,House,1970,Rationalised,Natural gas (mains) +11 Grenville Green,Aylesbury,Bucks,,HP21 8HA,General Needs,Flat,1970,Rationalised,Natural gas (mains) +12 Grenville Green,Aylesbury,Bucks,,HP21 8HA,General Needs,Flat,1970,Rationalised,Natural gas (mains) +15 Grenville Green,Aylesbury,Bucks,,HP21 8HA,General Needs,House,1970,Rationalised,Natural gas (mains) +18 Grenville Green,Aylesbury,Bucks,,HP21 8HA,General Needs,House,1970,Rationalised,Natural gas (mains) +21 Grenville Green,Aylesbury,Bucks,,HP21 8HA,General Needs,Flat,1970,Rationalised,Natural gas (mains) +22 Grenville Green,Aylesbury,Bucks,,HP21 8HA,General Needs,Flat,1970,Rationalised,Natural gas (mains) +23 Grenville Green,Aylesbury,Bucks,,HP21 8HA,General Needs,Flat,1970,Rationalised,Natural gas (mains) +27 Grenville Green,Aylesbury,Bucks,,HP21 8HA,General Needs,Flat,1970,Rationalised,Natural gas (mains) +28 Grenville Green,Aylesbury,Bucks,,HP21 8HA,General Needs,Flat,1970,Rationalised,Natural gas (mains) +29 Grenville Green,Aylesbury,Bucks,,HP21 8HB,General Needs,Flat,1970,Rationalised,Natural gas (mains) +30 Grenville Green,Aylesbury,Bucks,,HP21 8HB,General Needs,Flat,1970,Rationalised,Natural gas (mains) +40 Grenville Green,Aylesbury,Bucks,,HP21 8HB,General Needs,Flat,1970,Rationalised,Natural gas (mains) +42 Grenville Green,Aylesbury,Bucks,,HP21 8HB,General Needs,Flat,1970,Rationalised,Natural gas (mains) +51 Grenville Green,Aylesbury,Bucks,,HP21 8HB,General Needs,Flat,1970,Rationalised,Natural gas (mains) +52 Grenville Green,Aylesbury,Bucks,,HP21 8HB,General Needs,Flat,1970,Rationalised,Natural gas (mains) +53 Grenville Green,Aylesbury,Bucks,,HP21 8HB,General Needs,Flat,1970,Rationalised,Natural gas (mains) +57 Grenville Green,Aylesbury,Bucks,,HP21 8HB,General Needs,House,1970,Rationalised,Natural gas (mains) +62 Grenville Green,Aylesbury,Bucks,,HP21 8HB,General Needs,Flat,1970,Rationalised,Natural gas (mains) +63 Grenville Green,Aylesbury,Bucks,,HP21 8HB,General Needs,Flat,1970,Rationalised,Natural gas (mains) +65 Grenville Green,Aylesbury,Bucks,,HP21 8HD,General Needs,House,1970,Rationalised,Natural gas (mains) +67 Grenville Green,Aylesbury,Bucks,,HP21 8HD,General Needs,Flat,1970,Rationalised,Natural gas (mains) +69 Grenville Green,Aylesbury,Bucks,,HP21 8HD,General Needs,Flat,1970,Rationalised,Natural gas (mains) +70 Grenville Green,Aylesbury,Bucks,,HP21 8HD,General Needs,Flat,1970,Rationalised,Natural gas (mains) +71 Grenville Green,Aylesbury,Bucks,,HP21 8HD,General Needs,Flat,1970,Rationalised,Natural gas (mains) +72 Grenville Green,Aylesbury,Bucks,,HP21 8HD,General Needs,Flat,1970,Rationalised,Natural gas (mains) +77 Grenville Green,Aylesbury,Bucks,,HP21 8HD,General Needs,House,1970,Rationalised,Natural gas (mains) +79 Grenville Green,Aylesbury,Bucks,,HP21 8HD,General Needs,House,1970,Rationalised,Natural gas (mains) +86 Grenville Green,Aylesbury,Bucks,,HP21 8HD,General Needs,House,1970,Rationalised,Natural gas (mains) +91 Grenville Green,Aylesbury,Bucks,,HP21 8HD,General Needs,House,1970,Rationalised,Natural gas (mains) +2 Glaven Road,Aylesbury,Bucks,,HP21 8HF,General Needs,House,1976,Traditional,Natural gas (mains) +4 Glaven Road,Aylesbury,Bucks,,HP21 8HF,General Needs,House,1976,Traditional,Natural gas (mains) +8 Glaven Road,Aylesbury,Bucks,,HP21 8HF,General Needs,House,1976,Traditional,Natural gas (mains) +16 Glaven Road,Aylesbury,Bucks,,HP21 8HF,General Needs,House,1977,Traditional,Natural gas (mains) +20 Glaven Road,Aylesbury,Bucks,,HP21 8HF,General Needs,House,1977,Traditional,Natural gas (mains) +35 Penn Road,Aylesbury,Bucks,,HP21 8HN,General Needs,House,1928,Traditional,Natural gas (mains) +37 Penn Road,Aylesbury,Bucks,,HP21 8HN,General Needs,House,1928,Traditional,Natural gas (mains) +41 Penn Road,Aylesbury,Bucks,,HP21 8HN,General Needs,House,1928,Traditional,Natural gas (mains) +45 Penn Road,Aylesbury,Bucks,,HP21 8HN,General Needs,House,1928,Traditional,Natural gas (mains) +46 Penn Road,Aylesbury,Bucks,,HP21 8HN,General Needs,House,1928,Traditional,Natural gas (mains) +47 Penn Road,Aylesbury,Bucks,,HP21 8HN,General Needs,House,1928,Traditional,Natural gas (mains) +48 Penn Road,Aylesbury,Bucks,,HP21 8HN,General Needs,House,1928,Traditional,Natural gas (mains) +49 Penn Road,Aylesbury,Bucks,,HP21 8HN,General Needs,House,1928,Traditional,Natural gas (mains) +52 Penn Road,Aylesbury,Bucks,,HP21 8HN,General Needs,House,1928,Traditional,Natural gas (mains) +54 Penn Road,Aylesbury,Bucks,,HP21 8HN,General Needs,House,1928,Traditional,Natural gas (mains) +56 Penn Road,Aylesbury,Bucks,,HP21 8HN,General Needs,House,1928,Traditional,Natural gas (mains) +60 Penn Road,Aylesbury,Bucks,,HP21 8HN,General Needs,House,1928,Traditional,Natural gas (mains) +62 Penn Road,Aylesbury,Bucks,,HP21 8HN,General Needs,House,1928,Traditional,Natural gas (mains) +64 Penn Road,Aylesbury,Bucks,,HP21 8HN,General Needs,House,1928,Traditional,Natural gas (mains) +2 York Place,Aylesbury,Bucks,,HP21 8HP,General Needs,House,1930,Traditional,Natural gas (mains) +3 York Place,Aylesbury,Bucks,,HP21 8HP,General Needs,House,1930,Traditional,Natural gas (mains) +4 York Place,Aylesbury,Bucks,,HP21 8HP,General Needs,House,1930,Traditional,Natural gas (mains) +6 York Place,Aylesbury,Bucks,,HP21 8HP,General Needs,House,1930,Traditional,Natural gas (mains) +7 York Place,Aylesbury,Bucks,,HP21 8HP,General Needs,House,1930,Traditional,Natural gas (mains) +8 York Place,Aylesbury,Bucks,,HP21 8HP,General Needs,House,1930,Traditional,Natural gas (mains) +9 York Place,Aylesbury,Bucks,,HP21 8HP,General Needs,House,1930,Traditional,Natural gas (mains) +11 York Place,Aylesbury,Bucks,,HP21 8HP,General Needs,House,1930,Traditional,Natural gas (mains) +12 York Place,Aylesbury,Bucks,,HP21 8HP,General Needs,House,1930,Traditional,Natural gas (mains) +13 York Place,Aylesbury,Bucks,,HP21 8HP,General Needs,House,1930,Traditional,Natural gas (mains) +14 York Place,Aylesbury,Bucks,,HP21 8HP,General Needs,House,1930,Traditional,Natural gas (mains) +16 York Place,Aylesbury,Bucks,,HP21 8HP,General Needs,House,1930,Traditional,Natural gas (mains) +17 York Place,Aylesbury,Bucks,,HP21 8HP,General Needs,House,1930,Traditional,Natural gas (mains) +19 York Place,Aylesbury,Bucks,,HP21 8HP,General Needs,House,1930,Traditional,Natural gas (mains) +20 York Place,Aylesbury,Bucks,,HP21 8HP,General Needs,House,1930,Traditional,Natural gas (mains) +21 York Place,Aylesbury,Bucks,,HP21 8HP,General Needs,House,1930,Traditional,Natural gas (mains) +23 York Place,Aylesbury,Bucks,,HP21 8HP,General Needs,Maisonette,1973,Traditional,Natural gas (mains) +24 York Place,Aylesbury,Bucks,,HP21 8HP,General Needs,Flat,1973,Traditional,Natural gas (mains) +25 York Place,Aylesbury,Bucks,,HP21 8HP,General Needs,Maisonette,1973,Traditional,Natural gas (mains) +26 York Place,Aylesbury,Bucks,,HP21 8HP,General Needs,Maisonette,1973,Traditional,Natural gas (mains) +27 York Place,Aylesbury,Bucks,,HP21 8HP,General Needs,Flat,1973,Traditional,Natural gas (mains) +28 York Place,Aylesbury,Bucks,,HP21 8HP,General Needs,Maisonette,1973,Traditional,Natural gas (mains) +29 York Place,Aylesbury,Bucks,,HP21 8HP,General Needs,Maisonette,1973,Traditional,Natural gas (mains) +30 York Place,Aylesbury,Bucks,,HP21 8HP,General Needs,Flat,1973,Traditional,Natural gas (mains) +31 York Place,Aylesbury,Bucks,,HP21 8HP,General Needs,Maisonette,1973,Traditional,Natural gas (mains) +32 York Place,Aylesbury,Bucks,,HP21 8HP,General Needs,Maisonette,1973,Traditional,Natural gas (mains) +33 York Place,Aylesbury,Bucks,,HP21 8HP,General Needs,Flat,1973,Traditional,Natural gas (mains) +34 York Place,Aylesbury,Bucks,,HP21 8HP,General Needs,Maisonette,1973,Traditional,Natural gas (mains) +36 York Place,Aylesbury,Bucks,,HP21 8HP,General Needs,Flat,1973,Traditional,Natural gas (mains) +37 York Place,Aylesbury,Bucks,,HP21 8HP,General Needs,Maisonette,1973,Traditional,Natural gas (mains) +41 York Place,Aylesbury,Bucks,,HP21 8HP,General Needs,House,1932,Traditional,Natural gas (mains) +9 Orwell Close,Aylesbury,Bucks,,HP21 8HQ,General Needs,Flat,2013,Traditional,Natural gas (mains) +10 Orwell Close,Aylesbury,Bucks,,HP21 8HQ,General Needs,Flat,2013,Traditional,Natural gas (mains) +11 Orwell Close,Aylesbury,Bucks,,HP21 8HQ,General Needs,Flat,2013,Traditional,Natural gas (mains) +12 Orwell Close,Aylesbury,Bucks,,HP21 8HQ,General Needs,Flat,2013,Traditional,Natural gas (mains) +14 Orwell Close,Aylesbury,Bucks,,HP21 8HQ,General Needs,Flat,2013,Traditional,Natural gas (mains) +15 Orwell Close,Aylesbury,Bucks,,HP21 8HQ,General Needs,Flat,2013,Traditional,Natural gas (mains) +16 Orwell Close,Aylesbury,Bucks,,HP21 8HQ,General Needs,Flat,2013,Traditional,Natural gas (mains) +17 Orwell Close,Aylesbury,Bucks,,HP21 8HQ,General Needs,Flat,2013,Traditional,Natural gas (mains) +18 Orwell Close,Aylesbury,Bucks,,HP21 8HQ,General Needs,Flat,2013,Traditional,Natural gas (mains) +19 Orwell Close,Aylesbury,Bucks,,HP21 8HQ,General Needs,Flat,2013,Traditional,Natural gas (mains) +20 Orwell Close,Aylesbury,Bucks,,HP21 8HQ,General Needs,Flat,2013,Traditional,Natural gas (mains) +21 Orwell Close,Aylesbury,Bucks,,HP21 8HQ,General Needs,Flat,2013,Traditional,Natural gas (mains) +1 Elm Green,Aylesbury,Bucks,,HP21 8HR,General Needs,House,1930,Traditional,Natural gas (mains) +2 Elm Green,Aylesbury,Bucks,,HP21 8HR,General Needs,House,1930,Traditional,Natural gas (mains) +3 Elm Green,Aylesbury,Bucks,,HP21 8HR,General Needs,House,1930,Traditional,Natural gas (mains) +4 Elm Green,Aylesbury,Bucks,,HP21 8HR,General Needs,House,1930,Traditional,Natural gas (mains) +5 Elm Green,Aylesbury,Bucks,,HP21 8HR,General Needs,House,1930,Traditional,Natural gas (mains) +7 Elm Green,Aylesbury,Bucks,,HP21 8HR,General Needs,House,1930,Traditional,Natural gas (mains) +8 Elm Green,Aylesbury,Bucks,,HP21 8HR,General Needs,House,1930,Traditional,Natural gas (mains) +9 Elm Green,Aylesbury,Bucks,,HP21 8HR,General Needs,House,1930,Traditional,Natural gas (mains) +10 Elm Green,Aylesbury,Bucks,,HP21 8HR,General Needs,House,1930,Traditional,Natural gas (mains) +11 Elm Green,Aylesbury,Bucks,,HP21 8HR,General Needs,House,1930,Traditional,Natural gas (mains) +14 Elm Green,Aylesbury,Bucks,,HP21 8HR,General Needs,House,1930,Traditional,Natural gas (mains) +15 Elm Green,Aylesbury,Bucks,,HP21 8HR,General Needs,House,1930,Traditional,Natural gas (mains) +17 Elm Green,Aylesbury,Bucks,,HP21 8HR,General Needs,House,1930,Traditional,Natural gas (mains) +24 Elm Green,Aylesbury,Bucks,,HP21 8HR,General Needs,House,1930,Traditional,Natural gas (mains) +26 Elm Green,Aylesbury,Bucks,,HP21 8HR,General Needs,House,1930,Traditional,Natural gas (mains) +27 Elm Green,Aylesbury,Bucks,,HP21 8HR,General Needs,House,1930,Traditional,Natural gas (mains) +28 Elm Green,Aylesbury,Bucks,,HP21 8HR,General Needs,House,1930,Traditional,Natural gas (mains) +5 Nightingale Road,Aylesbury,Bucks,,HP21 8HS,General Needs,House,1931,Traditional,Natural gas (mains) +7 Nightingale Road,Aylesbury,Bucks,,HP21 8HS,General Needs,House,1931,Traditional,Natural gas (mains) +15 Nightingale Road,Aylesbury,Bucks,,HP21 8HS,General Needs,House,1931,Traditional,Natural gas (mains) +17 Nightingale Road,Aylesbury,Bucks,,HP21 8HS,General Needs,House,1931,Traditional,Natural gas (mains) +21 Nightingale Road,Aylesbury,Bucks,,HP21 8HS,General Needs,House,1931,Traditional,Natural gas (mains) +41 Nightingale Road,Aylesbury,Bucks,,HP21 8HS,General Needs,House,1931,Traditional,Natural gas (mains) +43 Nightingale Road,Aylesbury,Bucks,,HP21 8HS,General Needs,House,1931,Traditional,Natural gas (mains) +2 Nightingale Road,Aylesbury,Bucks,,HP21 8HT,General Needs,House,1931,Traditional,Natural gas (mains) +8 Nightingale Road,Aylesbury,Bucks,,HP21 8HT,General Needs,House,1931,Traditional,Natural gas (mains) +12 Nightingale Road,Aylesbury,Bucks,,HP21 8HT,General Needs,House,1931,Traditional,Natural gas (mains) +14 Nightingale Road,Aylesbury,Bucks,,HP21 8HT,General Needs,House,1931,Traditional,Natural gas (mains) +20 Nightingale Road,Aylesbury,Bucks,,HP21 8HT,General Needs,House,1931,Traditional,Natural gas (mains) +36 Nightingale Road,Aylesbury,Bucks,,HP21 8HT,General Needs,House,1931,Traditional,Natural gas (mains) +40 Nightingale Road,Aylesbury,Bucks,,HP21 8HT,General Needs,House,1931,Traditional,Natural gas (mains) +44 Nightingale Road,Aylesbury,Bucks,,HP21 8HT,General Needs,House,1931,Traditional,Natural gas (mains) +4 Penn Road,Aylesbury,Bucks,,HP21 8HW,General Needs,House,1930,Traditional,Natural gas (mains) +5 Penn Road,Aylesbury,Bucks,,HP21 8HW,General Needs,House,1928,Traditional,Natural gas (mains) +6 Penn Road,Aylesbury,Bucks,,HP21 8HW,General Needs,House,1928,Traditional,Natural gas (mains) +8 Penn Road,Aylesbury,Bucks,,HP21 8HW,General Needs,House,1928,Traditional,Natural gas (mains) +11 Penn Road,Aylesbury,Bucks,,HP21 8HW,General Needs,House,1928,Traditional,Natural gas (mains) +15 Penn Road,Aylesbury,Bucks,,HP21 8HW,General Needs,House,1928,Traditional,Natural gas (mains) +17 Penn Road,Aylesbury,Bucks,,HP21 8HW,General Needs,House,1928,Traditional,Natural gas (mains) +18 Penn Road,Aylesbury,Bucks,,HP21 8HW,General Needs,House,1928,Traditional,Natural gas (mains) +19 Penn Road,Aylesbury,Bucks,,HP21 8HW,General Needs,House,1928,Traditional,Natural gas (mains) +20 Penn Road,Aylesbury,Bucks,,HP21 8HW,General Needs,House,1928,Traditional,Natural gas (mains) +21 Penn Road,Aylesbury,Bucks,,HP21 8HW,General Needs,House,1928,Traditional,Natural gas (mains) +25 Penn Road,Aylesbury,Bucks,,HP21 8HW,General Needs,House,1928,Traditional,Natural gas (mains) +29 Penn Road,Aylesbury,Bucks,,HP21 8HW,General Needs,House,1928,Traditional,Natural gas (mains) +31 Penn Road,Aylesbury,Bucks,,HP21 8HW,General Needs,House,1928,Traditional,Natural gas (mains) +33 Penn Road,Aylesbury,Bucks,,HP21 8HW,General Needs,House,1928,Traditional,Natural gas (mains) +55 Penn Road,Aylesbury,Bucks,,HP21 8HW,General Needs,House,1928,Traditional,Natural gas (mains) +61 Penn Road,Aylesbury,Bucks,,HP21 8HW,General Needs,House,1928,Traditional,Natural gas (mains) +3 Chestnut Crescent,Aylesbury,Bucks,,HP21 8HX,General Needs,House,1921,Traditional,Natural gas (mains) +2 Prebendal Avenue,Aylesbury,Bucks,,HP21 8HY,General Needs,House,1928,Traditional,Natural gas (mains) +8 Prebendal Avenue,Aylesbury,Bucks,,HP21 8HY,General Needs,House,1928,Traditional,Natural gas (mains) +10 Prebendal Avenue,Aylesbury,Bucks,,HP21 8HY,General Needs,House,1928,Traditional,Natural gas (mains) +12 Prebendal Avenue,Aylesbury,Bucks,,HP21 8HY,General Needs,House,1928,Traditional,Natural gas (mains) +16 Prebendal Avenue,Aylesbury,Bucks,,HP21 8HY,General Needs,House,1928,Traditional,Natural gas (mains) +30 Prebendal Avenue,Aylesbury,Bucks,,HP21 8HY,General Needs,House,1928,Traditional,Natural gas (mains) +3 Prebendal Avenue,Aylesbury,Bucks,,HP21 8HZ,General Needs,House,1928,Traditional,Natural gas (mains) +25 Prebendal Avenue,Aylesbury,Bucks,,HP21 8HZ,General Needs,House,1928,Traditional,Natural gas (mains) +37 Prebendal Avenue,Aylesbury,Bucks,,HP21 8HZ,General Needs,House,1928,Traditional,Natural gas (mains) +41 Prebendal Avenue,Aylesbury,Bucks,,HP21 8HZ,General Needs,House,1928,Traditional,Natural gas (mains) +2 Ceely Road,Aylesbury,Bucks,,HP21 8JA,General Needs,House,1930,Traditional,Natural gas (mains) +3 Ceely Road,Aylesbury,Bucks,,HP21 8JA,General Needs,House,1930,Traditional,Natural gas (mains) +4 Ceely Road,Aylesbury,Bucks,,HP21 8JA,General Needs,House,1930,Traditional,Natural gas (mains) +6 Ceely Road,Aylesbury,Bucks,,HP21 8JA,General Needs,House,1930,Traditional,Natural gas (mains) +8 Ceely Road,Aylesbury,Bucks,,HP21 8JA,General Needs,House,1930,Traditional,Natural gas (mains) +9 Ceely Road,Aylesbury,Bucks,,HP21 8JA,General Needs,House,1968,Rationalised,Natural gas (mains) +10 Ceely Road,Aylesbury,Bucks,,HP21 8JA,General Needs,House,1930,Traditional,Natural gas (mains) +11 Ceely Road,Aylesbury,Bucks,,HP21 8JA,General Needs,House,1968,Rationalised,Natural gas (mains) +12 Ceely Road,Aylesbury,Bucks,,HP21 8JA,General Needs,House,1930,Traditional,Natural gas (mains) +16 Ceely Road,Aylesbury,Bucks,,HP21 8JA,General Needs,House,1930,Traditional,Natural gas (mains) +18 Ceely Road,Aylesbury,Bucks,,HP21 8JA,General Needs,House,1930,Traditional,Natural gas (mains) +22 Ceely Road,Aylesbury,Bucks,,HP21 8JA,General Needs,House,1930,Traditional,Natural gas (mains) +24 Ceely Road,Aylesbury,Bucks,,HP21 8JA,General Needs,House,1930,Traditional,Natural gas (mains) +32 Ceely Road,Aylesbury,Bucks,,HP21 8JA,General Needs,House,1930,Traditional,Natural gas (mains) +37 Lee Road,Aylesbury,Bucks,,HP21 8JB,General Needs,House,1928,Traditional,Natural gas (mains) +44 Lee Road,Aylesbury,Bucks,,HP21 8JB,General Needs,House,1928,Traditional,Natural gas (mains) +46 Lee Road,Aylesbury,Bucks,,HP21 8JB,General Needs,House,1928,Traditional,Natural gas (mains) +47 Lee Road,Aylesbury,Bucks,,HP21 8JB,General Needs,House,1928,Traditional,Natural gas (mains) +48 Lee Road,Aylesbury,Bucks,,HP21 8JB,General Needs,House,1928,Traditional,Natural gas (mains) +50 Lee Road,Aylesbury,Bucks,,HP21 8JB,General Needs,House,1928,Traditional,Natural gas (mains) +51 Lee Road,Aylesbury,Bucks,,HP21 8JB,General Needs,House,1928,Traditional,Natural gas (mains) +52 Lee Road,Aylesbury,Bucks,,HP21 8JB,General Needs,House,1928,Traditional,Natural gas (mains) +53 Lee Road,Aylesbury,Bucks,,HP21 8JB,General Needs,House,1928,Traditional,Natural gas (mains) +54 Lee Road,Aylesbury,Bucks,,HP21 8JB,General Needs,House,1928,Traditional,Natural gas (mains) +57 Lee Road,Aylesbury,Bucks,,HP21 8JB,General Needs,House,1928,Traditional,Natural gas (mains) +60 Lee Road,Aylesbury,Bucks,,HP21 8JB,General Needs,House,1928,Traditional,Natural gas (mains) +61 Lee Road,Aylesbury,Bucks,,HP21 8JB,General Needs,House,1928,Traditional,Natural gas (mains) +1 Carrington Road,Aylesbury,Bucks,,HP21 8JD,General Needs,House,1938,Traditional,Natural gas (mains) +3 Carrington Road,Aylesbury,Bucks,,HP21 8JD,General Needs,House,1938,Traditional,Natural gas (mains) +4 Carrington Road,Aylesbury,Bucks,,HP21 8JD,General Needs,House,1938,Traditional,Natural gas (mains) +6 Carrington Road,Aylesbury,Bucks,,HP21 8JD,General Needs,House,1938,Traditional,Natural gas (mains) +8 Carrington Road,Aylesbury,Bucks,,HP21 8JD,General Needs,House,1938,Traditional,Natural gas (mains) +10 Carrington Road,Aylesbury,Bucks,,HP21 8JD,General Needs,House,1938,Traditional,Natural gas (mains) +11 Carrington Road,Aylesbury,Bucks,,HP21 8JD,General Needs,House,1930,Traditional,Natural gas (mains) +13 Carrington Road,Aylesbury,Bucks,,HP21 8JD,General Needs,House,1927,Traditional,Natural gas (mains) +14 Carrington Road,Aylesbury,Bucks,,HP21 8JD,General Needs,House,1938,Traditional,Natural gas (mains) +15 Carrington Road,Aylesbury,Bucks,,HP21 8JD,General Needs,House,1929,Traditional,Natural gas (mains) +16 Carrington Road,Aylesbury,Bucks,,HP21 8JD,General Needs,House,1934,Traditional,Natural gas (mains) +20 Carrington Road,Aylesbury,Bucks,,HP21 8JD,General Needs,House,1937,Traditional,Natural gas (mains) +22 Carrington Road,Aylesbury,Bucks,,HP21 8JD,General Needs,House,1937,Traditional,Natural gas (mains) +23 Carrington Road,Aylesbury,Bucks,,HP21 8JD,General Needs,House,1928,Traditional,Natural gas (mains) +25 Carrington Road,Aylesbury,Bucks,,HP21 8JD,General Needs,House,1938,Traditional,Natural gas (mains) +26 Carrington Road,Aylesbury,Bucks,,HP21 8JD,General Needs,House,1938,Traditional,Natural gas (mains) +30 Carrington Road,Aylesbury,Bucks,,HP21 8JD,General Needs,House,1938,Traditional,Natural gas (mains) +34 Carrington Road,Aylesbury,Bucks,,HP21 8JD,General Needs,House,1934,Traditional,Natural gas (mains) +38 Carrington Road,Aylesbury,Bucks,,HP21 8JD,General Needs,House,1929,Traditional,Natural gas (mains) +40 Carrington Road,Aylesbury,Bucks,,HP21 8JD,General Needs,House,1929,Traditional,Natural gas (mains) +37 Carrington Road,Aylesbury,Bucks,,HP21 8JE,General Needs,House,1929,Traditional,Natural gas (mains) +7 Lee Road,Aylesbury,Bucks,,HP21 8JF,General Needs,House,1933,Traditional,Natural gas (mains) +9 Lee Road,Aylesbury,Bucks,,HP21 8JF,General Needs,House,1933,Traditional,Natural gas (mains) +11 Lee Road,Aylesbury,Bucks,,HP21 8JF,General Needs,House,1933,Traditional,Natural gas (mains) +12 Lee Road,Aylesbury,Bucks,,HP21 8JF,General Needs,House,1933,Traditional,Natural gas (mains) +22 Lee Road,Aylesbury,Bucks,,HP21 8JF,General Needs,House,1933,Traditional,Natural gas (mains) +23 Lee Road,Aylesbury,Bucks,,HP21 8JF,General Needs,House,1933,Traditional,Natural gas (mains) +24 Lee Road,Aylesbury,Bucks,,HP21 8JF,General Needs,House,1933,Traditional,Natural gas (mains) +25 Lee Road,Aylesbury,Bucks,,HP21 8JF,General Needs,House,1933,Traditional,Natural gas (mains) +27 Lee Road,Aylesbury,Bucks,,HP21 8JF,General Needs,House,1933,Traditional,Natural gas (mains) +29 Lee Road,Aylesbury,Bucks,,HP21 8JF,General Needs,House,1933,Traditional,Natural gas (mains) +30 Lee Road,Aylesbury,Bucks,,HP21 8JF,General Needs,House,1933,Traditional,Natural gas (mains) +31 Lee Road,Aylesbury,Bucks,,HP21 8JF,General Needs,House,1933,Traditional,Natural gas (mains) +34 Lee Road,Aylesbury,Bucks,,HP21 8JF,General Needs,House,1933,Traditional,Natural gas (mains) +35 Lee Road,Aylesbury,Bucks,,HP21 8JF,General Needs,House,1933,Traditional,Natural gas (mains) +3 Beech Green,Aylesbury,Bucks,,HP21 8JG,General Needs,House,1928,Traditional,Natural gas (mains) +8 Beech Green,Aylesbury,Bucks,,HP21 8JG,General Needs,House,1928,Traditional,Natural gas (mains) +9 Beech Green,Aylesbury,Bucks,,HP21 8JG,General Needs,House,1928,Traditional,Natural gas (mains) +10 Beech Green,Aylesbury,Bucks,,HP21 8JG,General Needs,House,1928,Traditional,Natural gas (mains) +12 Beech Green,Aylesbury,Bucks,,HP21 8JG,General Needs,House,1928,Traditional,Natural gas (mains) +13 Beech Green,Aylesbury,Bucks,,HP21 8JG,General Needs,House,1928,Traditional,Natural gas (mains) +15 Beech Green,Aylesbury,Bucks,,HP21 8JG,General Needs,House,1928,Traditional,Natural gas (mains) +16 Beech Green,Aylesbury,Bucks,,HP21 8JG,General Needs,House,1928,Traditional,Natural gas (mains) +17 Beech Green,Aylesbury,Bucks,,HP21 8JG,General Needs,House,1928,Traditional,Natural gas (mains) +18 Beech Green,Aylesbury,Bucks,,HP21 8JG,General Needs,House,1928,Traditional,Natural gas (mains) +20 Beech Green,Aylesbury,Bucks,,HP21 8JG,General Needs,House,1928,Traditional,Natural gas (mains) +21 Beech Green,Aylesbury,Bucks,,HP21 8JG,General Needs,House,1928,Traditional,Natural gas (mains) +23 Beech Green,Aylesbury,Bucks,,HP21 8JG,General Needs,House,1928,Traditional,Natural gas (mains) +24 Beech Green,Aylesbury,Bucks,,HP21 8JG,General Needs,House,1928,Traditional,Natural gas (mains) +25 Beech Green,Aylesbury,Bucks,,HP21 8JG,General Needs,House,1928,Traditional,Natural gas (mains) +24 Hampden Road,Aylesbury,Bucks,,HP21 8JH,General Needs,House,1930,Traditional,Natural gas (mains) +40 Hampden Road,Aylesbury,Bucks,,HP21 8JH,General Needs,House,1930,Traditional,Natural gas (mains) +43 Hampden Road,Aylesbury,Bucks,,HP21 8JH,General Needs,House,1930,Traditional,Natural gas (mains) +44 Hampden Road,Aylesbury,Bucks,,HP21 8JH,General Needs,House,1930,Traditional,Natural gas (mains) +47 Hampden Road,Aylesbury,Bucks,,HP21 8JH,General Needs,House,1930,Traditional,Natural gas (mains) +49 Hampden Road,Aylesbury,Bucks,,HP21 8JH,General Needs,House,1930,Traditional,Natural gas (mains) +1 Hampden Road,Aylesbury,Bucks,,HP21 8JJ,General Needs,House,1928,Traditional,Natural gas (mains) +3 Hampden Road,Aylesbury,Bucks,,HP21 8JJ,General Needs,House,1928,Traditional,Natural gas (mains) +14 Hampden Road,Aylesbury,Bucks,,HP21 8JJ,General Needs,House,1930,Traditional,Natural gas (mains) +16 Hampden Road,Aylesbury,Bucks,,HP21 8JJ,General Needs,House,1930,Traditional,Natural gas (mains) +17 Hampden Road,Aylesbury,Bucks,,HP21 8JJ,General Needs,House,1928,Traditional,Natural gas (mains) +19 Hampden Road,Aylesbury,Bucks,,HP21 8JJ,General Needs,House,1928,Traditional,Natural gas (mains) +23 Hampden Road,Aylesbury,Bucks,,HP21 8JJ,General Needs,House,1930,Traditional,Natural gas (mains) +61 Hampden Road,Aylesbury,Bucks,,HP21 8JQ,General Needs,House,1965,BSL Industrialised,Natural gas (mains) +113 Penn Road,Aylesbury,Bucks,,HP21 8JS,General Needs,House,1933,Traditional,Natural gas (mains) +126 Penn Road,Aylesbury,Bucks,,HP21 8JS,General Needs,House,1949,Traditional,Natural gas (mains) +128 Penn Road,Aylesbury,Bucks,,HP21 8JS,General Needs,House,1950,Traditional,Natural gas (mains) +136 Penn Road,Aylesbury,Bucks,,HP21 8JS,General Needs,House,1950,Traditional,Natural gas (mains) +140 Penn Road,Aylesbury,Bucks,,HP21 8JS,General Needs,House,1950,Traditional,Natural gas (mains) +144 Penn Road,Aylesbury,Bucks,,HP21 8JS,General Needs,House,1949,Traditional,Natural gas (mains) +146 Penn Road,Aylesbury,Bucks,,HP21 8JS,General Needs,House,1949,Traditional,Natural gas (mains) +2 Montague Road,Aylesbury,Bucks,,HP21 8JT,General Needs,House,1947,Traditional,Natural gas (mains) +4 Montague Road,Aylesbury,Bucks,,HP21 8JT,General Needs,House,1947,Traditional,Natural gas (mains) +85 Penn Road,Aylesbury,Bucks,,HP21 8JU,General Needs,Flat,1938,Traditional,Natural gas (mains) +87 Penn Road,Aylesbury,Bucks,,HP21 8JU,General Needs,Flat,1938,Traditional,Natural gas (mains) +89 Penn Road,Aylesbury,Bucks,,HP21 8JU,General Needs,Flat,1938,Traditional,Natural gas (mains) +93 Penn Road,Aylesbury,Bucks,,HP21 8JU,General Needs,Flat,1938,Traditional,Natural gas (mains) +95 Penn Road,Aylesbury,Bucks,,HP21 8JU,General Needs,Flat,1938,Traditional,Natural gas (mains) +97 Penn Road,Aylesbury,Bucks,,HP21 8JU,General Needs,Flat,1938,Traditional,Natural gas (mains) +99 Penn Road,Aylesbury,Bucks,,HP21 8JU,General Needs,Flat,1938,Traditional,Natural gas (mains) +100 Penn Road,Aylesbury,Bucks,,HP21 8JU,General Needs,House,1933,Traditional,Natural gas (mains) +101 Penn Road,Aylesbury,Bucks,,HP21 8JU,General Needs,Flat,1938,Traditional,Natural gas (mains) +102 Penn Road,Aylesbury,Bucks,,HP21 8JU,General Needs,House,1933,Traditional,Natural gas (mains) +103 Penn Road,Aylesbury,Bucks,,HP21 8JU,General Needs,Flat,1938,Traditional,Natural gas (mains) +104 Penn Road,Aylesbury,Bucks,,HP21 8JU,General Needs,House,1930,Traditional,Natural gas (mains) +105 Penn Road,Aylesbury,Bucks,,HP21 8JU,General Needs,Flat,1938,Traditional,Natural gas (mains) +106 Penn Road,Aylesbury,Bucks,,HP21 8JU,General Needs,House,1930,Traditional,Natural gas (mains) +107 Penn Road,Aylesbury,Bucks,,HP21 8JU,General Needs,Flat,1938,Traditional,Natural gas (mains) +110 Penn Road,Aylesbury,Bucks,,HP21 8JU,General Needs,House,1930,Traditional,Natural gas (mains) +114 Penn Road,Aylesbury,Bucks,,HP21 8JU,General Needs,House,1930,Traditional,Natural gas (mains) +116 Penn Road,Aylesbury,Bucks,,HP21 8JU,General Needs,House,1930,Traditional,Natural gas (mains) +118 Penn Road,Aylesbury,Bucks,,HP21 8JU,General Needs,House,1930,Traditional,Natural gas (mains) +120 Penn Road,Aylesbury,Bucks,,HP21 8JU,General Needs,House,1930,Traditional,Natural gas (mains) +63 Penn Road,Aylesbury,Bucks,,HP21 8JX,General Needs,House,1928,Traditional,Natural gas (mains) +65 Penn Road,Aylesbury,Bucks,,HP21 8JX,General Needs,House,1928,Traditional,Natural gas (mains) +68 Penn Road,Aylesbury,Bucks,,HP21 8JX,General Needs,House,1928,Traditional,Natural gas (mains) +69 Penn Road,Aylesbury,Bucks,,HP21 8JX,General Needs,Flat,1938,Traditional,Natural gas (mains) +70 Penn Road,Aylesbury,Bucks,,HP21 8JX,General Needs,House,1930,Traditional,Natural gas (mains) +71 Penn Road,Aylesbury,Bucks,,HP21 8JX,General Needs,Flat,1938,Traditional,Natural gas (mains) +72 Penn Road,Aylesbury,Bucks,,HP21 8JX,General Needs,House,1933,Traditional,Natural gas (mains) +73 Penn Road,Aylesbury,Bucks,,HP21 8JX,General Needs,Flat,1938,Traditional,Natural gas (mains) +74 Penn Road,Aylesbury,Bucks,,HP21 8JX,General Needs,House,1930,Traditional,Natural gas (mains) +75 Penn Road,Aylesbury,Bucks,,HP21 8JX,General Needs,Flat,1938,Traditional,Natural gas (mains) +76 Penn Road,Aylesbury,Bucks,,HP21 8JX,General Needs,House,1930,Traditional,Natural gas (mains) +77 Penn Road,Aylesbury,Bucks,,HP21 8JX,General Needs,Flat,1938,Traditional,Natural gas (mains) +78 Penn Road,Aylesbury,Bucks,,HP21 8JX,General Needs,House,1930,Traditional,Natural gas (mains) +79 Penn Road,Aylesbury,Bucks,,HP21 8JX,General Needs,Flat,1938,Traditional,Natural gas (mains) +81 Penn Road,Aylesbury,Bucks,,HP21 8JX,General Needs,Flat,1937,Traditional,Natural gas (mains) +82 Penn Road,Aylesbury,Bucks,,HP21 8JX,General Needs,House,1930,Traditional,Natural gas (mains) +83 Penn Road,Aylesbury,Bucks,,HP21 8JX,General Needs,Flat,1938,Traditional,Natural gas (mains) +84 Penn Road,Aylesbury,Bucks,,HP21 8JX,General Needs,House,1930,Traditional,Natural gas (mains) +86 Penn Road,Aylesbury,Bucks,,HP21 8JX,General Needs,House,1930,Traditional,Natural gas (mains) +88 Penn Road,Aylesbury,Bucks,,HP21 8JX,General Needs,House,1933,Traditional,Natural gas (mains) +90 Penn Road,Aylesbury,Bucks,,HP21 8JX,General Needs,House,1930,Traditional,Natural gas (mains) +92 Penn Road,Aylesbury,Bucks,,HP21 8JX,General Needs,House,1933,Traditional,Natural gas (mains) +94 Penn Road,Aylesbury,Bucks,,HP21 8JX,General Needs,House,1930,Traditional,Natural gas (mains) +96 Penn Road,Aylesbury,Bucks,,HP21 8JX,General Needs,House,1933,Traditional,Natural gas (mains) +98 Penn Road,Aylesbury,Bucks,,HP21 8JX,General Needs,House,1933,Traditional,Natural gas (mains) +80 Penn Road,Aylesbury,Bucks,,HP21 8JX,General Needs,House,1930,Traditional,Storage heaters +9 More Avenue,Aylesbury,Bucks,,HP21 8JY,General Needs,House,1928,Traditional,Natural gas (mains) +11 More Avenue,Aylesbury,Bucks,,HP21 8JY,General Needs,House,1930,Traditional,Natural gas (mains) +15 More Avenue,Aylesbury,Bucks,,HP21 8JY,General Needs,House,1930,Traditional,Natural gas (mains) +23 More Avenue,Aylesbury,Bucks,,HP21 8JY,General Needs,House,1930,Traditional,Natural gas (mains) +51 Penn Road,Aylesbury,Bucks,,HP21 8JZ,General Needs,House,1928,Traditional,Natural gas (mains) +53 Penn Road,Aylesbury,Bucks,,HP21 8JZ,General Needs,House,1928,Traditional,Natural gas (mains) +2 Eaton Road,Aylesbury,Bucks,,HP21 8LA,General Needs,House,1930,Traditional,Natural gas (mains) +3 Eaton Road,Aylesbury,Bucks,,HP21 8LA,General Needs,House,1930,Traditional,Natural gas (mains) +7 Eaton Road,Aylesbury,Bucks,,HP21 8LA,General Needs,House,1930,Traditional,Natural gas (mains) +10 Eaton Road,Aylesbury,Bucks,,HP21 8LA,General Needs,House,1930,Traditional,Natural gas (mains) +14 Eaton Road,Aylesbury,Bucks,,HP21 8LA,General Needs,House,1930,Traditional,Natural gas (mains) +20 Eaton Road,Aylesbury,Bucks,,HP21 8LA,General Needs,House,1930,Traditional,Natural gas (mains) +21 Eaton Road,Aylesbury,Bucks,,HP21 8LA,General Needs,House,1930,Traditional,Natural gas (mains) +22 Eaton Road,Aylesbury,Bucks,,HP21 8LA,General Needs,House,1930,Traditional,Natural gas (mains) +23 Eaton Road,Aylesbury,Bucks,,HP21 8LA,General Needs,House,1930,Traditional,Natural gas (mains) +28 Eaton Road,Aylesbury,Bucks,,HP21 8LA,General Needs,House,1930,Traditional,Natural gas (mains) +29 Eaton Road,Aylesbury,Bucks,,HP21 8LA,General Needs,House,1930,Traditional,Natural gas (mains) +65 Prebendal Avenue,Aylesbury,Bucks,,HP21 8LB,General Needs,House,1931,Traditional,Natural gas (mains) +73 Prebendal Avenue,Aylesbury,Bucks,,HP21 8LB,General Needs,House,1931,Traditional,Natural gas (mains) +77 Prebendal Avenue,Aylesbury,Bucks,,HP21 8LB,General Needs,House,1931,Traditional,Natural gas (mains) +81 Prebendal Avenue,Aylesbury,Bucks,,HP21 8LB,General Needs,House,1931,Traditional,Natural gas (mains) +89 Prebendal Avenue,Aylesbury,Bucks,,HP21 8LB,General Needs,House,1933,Traditional,Natural gas (mains) +91 Prebendal Avenue,Aylesbury,Bucks,,HP21 8LB,General Needs,House,1931,Traditional,Natural gas (mains) +95 Prebendal Avenue,Aylesbury,Bucks,,HP21 8LB,General Needs,House,1931,Traditional,Natural gas (mains) +99 Prebendal Avenue,Aylesbury,Bucks,,HP21 8LB,General Needs,House,1947,Traditional,Natural gas (mains) +105 Prebendal Avenue,Aylesbury,Bucks,,HP21 8LB,General Needs,Flat,1953,Traditional,Natural gas (mains) +107 Prebendal Avenue,Aylesbury,Bucks,,HP21 8LB,General Needs,Flat,1953,Traditional,Natural gas (mains) +109 Prebendal Avenue,Aylesbury,Bucks,,HP21 8LB,General Needs,Flat,1953,Traditional,Natural gas (mains) +111 Prebendal Avenue,Aylesbury,Bucks,,HP21 8LB,General Needs,Flat,1953,Traditional,Natural gas (mains) +117 Prebendal Avenue,Aylesbury,Bucks,,HP21 8LB,General Needs,Flat,1953,Traditional,Natural gas (mains) +119 Prebendal Avenue,Aylesbury,Bucks,,HP21 8LB,General Needs,Flat,1953,Traditional,Natural gas (mains) +123 Prebendal Avenue,Aylesbury,Bucks,,HP21 8LB,General Needs,Flat,1953,Traditional,Natural gas (mains) +125 Prebendal Avenue,Aylesbury,Bucks,,HP21 8LB,General Needs,Flat,1953,Traditional,Natural gas (mains) +127 Prebendal Avenue,Aylesbury,Bucks,,HP21 8LB,General Needs,Flat,1953,Traditional,Natural gas (mains) +131 Prebendal Avenue,Aylesbury,Bucks,,HP21 8LB,General Needs,House,1947,BISF,Natural gas (mains) +133 Prebendal Avenue,Aylesbury,Bucks,,HP21 8LB,General Needs,House,1947,BISF,Natural gas (mains) +139 Prebendal Avenue,Aylesbury,Bucks,,HP21 8LD,General Needs,House,1947,BISF,Natural gas (mains) +145 Prebendal Avenue,Aylesbury,Bucks,,HP21 8LD,General Needs,Bungalow,1953,Traditional,Natural gas (mains) +147 Prebendal Avenue,Aylesbury,Bucks,,HP21 8LD,General Needs,Bungalow,1953,Traditional,Natural gas (mains) +149 Prebendal Avenue,Aylesbury,Bucks,,HP21 8LD,General Needs,Bungalow,1953,Traditional,Natural gas (mains) +153 Prebendal Avenue,Aylesbury,Bucks,,HP21 8LD,General Needs,Bungalow,1953,Traditional,Natural gas (mains) +181 Prebendal Avenue,Aylesbury,Bucks,,HP21 8LD,General Needs,Bungalow,1953,Traditional,Natural gas (mains) +197 Prebendal Avenue,Aylesbury,Bucks,,HP21 8LE,General Needs,Flat,1951,Traditional,Natural gas (mains) +201 Prebendal Avenue,Aylesbury,Bucks,,HP21 8LE,General Needs,Flat,1951,Traditional,Natural gas (mains) +203 Prebendal Avenue,Aylesbury,Bucks,,HP21 8LE,General Needs,Flat,1951,Traditional,Natural gas (mains) +205 Prebendal Avenue,Aylesbury,Bucks,,HP21 8LE,General Needs,Flat,1951,Traditional,Natural gas (mains) +207 Prebendal Avenue,Aylesbury,Bucks,,HP21 8LE,General Needs,Flat,1951,Traditional,Natural gas (mains) +100 Prebendal Avenue,Aylesbury,Bucks,,HP21 8LF,General Needs,House,1947,Traditional,Natural gas (mains) +110 Prebendal Avenue,Aylesbury,Bucks,,HP21 8LF,General Needs,House,1947,BISF,Natural gas (mains) +114 Prebendal Avenue,Aylesbury,Bucks,,HP21 8LF,General Needs,House,1947,BISF,Natural gas (mains) +120 Prebendal Avenue,Aylesbury,Bucks,,HP21 8LF,General Needs,House,1947,BISF,Natural gas (mains) +124 Prebendal Avenue,Aylesbury,Bucks,,HP21 8LF,General Needs,House,1947,BISF,Natural gas (mains) +132 Prebendal Avenue,Aylesbury,Bucks,,HP21 8LF,General Needs,House,1947,Traditional,Natural gas (mains) +134 Prebendal Avenue,Aylesbury,Bucks,,HP21 8LF,General Needs,House,1947,Traditional,Natural gas (mains) +138 Prebendal Avenue,Aylesbury,Bucks,,HP21 8LF,General Needs,House,1947,Traditional,Natural gas (mains) +140 Prebendal Avenue,Aylesbury,Bucks,,HP21 8LF,General Needs,House,1947,Traditional,Natural gas (mains) +144 Prebendal Avenue,Aylesbury,Bucks,,HP21 8LF,General Needs,House,1947,Traditional,Natural gas (mains) +146 Prebendal Avenue,Aylesbury,Bucks,,HP21 8LF,General Needs,Flat,1951,Traditional,Natural gas (mains) +148 Prebendal Avenue,Aylesbury,Bucks,,HP21 8LF,General Needs,Flat,1951,Traditional,Natural gas (mains) +150 Prebendal Avenue,Aylesbury,Bucks,,HP21 8LF,General Needs,Flat,1951,Traditional,Natural gas (mains) +152 Prebendal Avenue,Aylesbury,Bucks,,HP21 8LF,General Needs,Flat,1951,Traditional,Natural gas (mains) +154 Prebendal Avenue,Aylesbury,Bucks,,HP21 8LF,General Needs,Flat,1951,Traditional,Natural gas (mains) +156 Prebendal Avenue,Aylesbury,Bucks,,HP21 8LF,General Needs,Flat,1951,Traditional,Natural gas (mains) +160 Prebendal Avenue,Aylesbury,Bucks,,HP21 8LF,General Needs,Flat,1951,Traditional,Natural gas (mains) +7 Leach Road,Aylesbury,Bucks,,HP21 8LG,General Needs,Flat,1953,Traditional,Natural gas (mains) +8 Leach Road,Aylesbury,Bucks,,HP21 8LG,General Needs,Flat,1953,Traditional,Natural gas (mains) +9 Leach Road,Aylesbury,Bucks,,HP21 8LG,General Needs,Flat,1953,Traditional,Natural gas (mains) +10 Leach Road,Aylesbury,Bucks,,HP21 8LG,General Needs,Flat,1953,Traditional,Natural gas (mains) +11 Leach Road,Aylesbury,Bucks,,HP21 8LG,General Needs,Flat,1953,Traditional,Natural gas (mains) +12 Leach Road,Aylesbury,Bucks,,HP21 8LG,General Needs,Flat,1953,Traditional,Natural gas (mains) +17 Leach Road,Aylesbury,Bucks,,HP21 8LG,General Needs,Flat,1953,Traditional,Natural gas (mains) +18 Leach Road,Aylesbury,Bucks,,HP21 8LG,General Needs,Flat,1953,Traditional,Natural gas (mains) +19 Leach Road,Aylesbury,Bucks,,HP21 8LG,General Needs,Flat,1953,Traditional,Natural gas (mains) +20 Leach Road,Aylesbury,Bucks,,HP21 8LG,General Needs,Flat,1953,Traditional,Natural gas (mains) +21 Leach Road,Aylesbury,Bucks,,HP21 8LG,General Needs,Flat,1953,Traditional,Natural gas (mains) +23 Leach Road,Aylesbury,Bucks,,HP21 8LG,General Needs,Flat,1953,Traditional,Natural gas (mains) +24 Leach Road,Aylesbury,Bucks,,HP21 8LG,General Needs,Flat,1953,Traditional,Natural gas (mains) +25 Leach Road,Aylesbury,Bucks,,HP21 8LG,General Needs,Flat,1953,Traditional,Natural gas (mains) +28 Leach Road,Aylesbury,Bucks,,HP21 8LG,General Needs,Flat,1953,Traditional,Natural gas (mains) +36 Eaton Road,Aylesbury,Bucks,,HP21 8LH,General Needs,House,1930,Traditional,Natural gas (mains) +38 Eaton Road,Aylesbury,Bucks,,HP21 8LH,General Needs,House,1930,Traditional,Natural gas (mains) +44 Eaton Road,Aylesbury,Bucks,,HP21 8LH,General Needs,House,1930,Traditional,Natural gas (mains) +46 Eaton Road,Aylesbury,Bucks,,HP21 8LH,General Needs,House,1930,Traditional,Natural gas (mains) +48 Eaton Road,Aylesbury,Bucks,,HP21 8LH,General Needs,House,1930,Traditional,Natural gas (mains) +49 Eaton Road,Aylesbury,Bucks,,HP21 8LH,General Needs,House,1938,Traditional,Natural gas (mains) +50 Eaton Road,Aylesbury,Bucks,,HP21 8LH,General Needs,House,1938,Traditional,Natural gas (mains) +51 Eaton Road,Aylesbury,Bucks,,HP21 8LH,General Needs,House,1938,Traditional,Natural gas (mains) +52 Eaton Road,Aylesbury,Bucks,,HP21 8LH,General Needs,House,1938,Traditional,Natural gas (mains) +53 Eaton Road,Aylesbury,Bucks,,HP21 8LH,General Needs,House,1938,Traditional,Natural gas (mains) +54 Eaton Road,Aylesbury,Bucks,,HP21 8LH,General Needs,House,1938,Traditional,Natural gas (mains) +57 Eaton Road,Aylesbury,Bucks,,HP21 8LH,General Needs,House,1938,Traditional,Natural gas (mains) +58 Eaton Road,Aylesbury,Bucks,,HP21 8LH,General Needs,House,1938,Traditional,Natural gas (mains) +61 Eaton Road,Aylesbury,Bucks,,HP21 8LH,General Needs,House,1938,Traditional,Natural gas (mains) +63 Eaton Road,Aylesbury,Bucks,,HP21 8LH,General Needs,House,1938,Traditional,Natural gas (mains) +64 Eaton Road,Aylesbury,Bucks,,HP21 8LH,General Needs,House,1938,Traditional,Natural gas (mains) +4 Oak Green,Aylesbury,Bucks,,HP21 8LJ,General Needs,House,1938,Traditional,Natural gas (mains) +8 Oak Green,Aylesbury,Bucks,,HP21 8LJ,General Needs,House,1938,Traditional,Natural gas (mains) +15 Oak Green,Aylesbury,Bucks,,HP21 8LJ,General Needs,House,1938,Traditional,Natural gas (mains) +25 Oak Green,Aylesbury,Bucks,,HP21 8LJ,General Needs,House,1938,Traditional,Natural gas (mains) +6 Paterson Road,Aylesbury,Bucks,,HP21 8LL,General Needs,House,1938,Traditional,Natural gas (mains) +30 Paterson Road,Aylesbury,Bucks,,HP21 8LL,General Needs,House,1938,Traditional,Natural gas (mains) +7 Paterson Road,Aylesbury,Bucks,,HP21 8LN,General Needs,House,1938,Traditional,Natural gas (mains) +9 Paterson Road,Aylesbury,Bucks,,HP21 8LN,General Needs,House,1938,Traditional,Natural gas (mains) +19 Paterson Road,Aylesbury,Bucks,,HP21 8LN,General Needs,House,1938,Traditional,Natural gas (mains) +23 Paterson Road,Aylesbury,Bucks,,HP21 8LN,General Needs,House,1938,Traditional,Natural gas (mains) +27 Paterson Road,Aylesbury,Bucks,,HP21 8LN,General Needs,House,1938,Traditional,Natural gas (mains) +29 Paterson Road,Aylesbury,Bucks,,HP21 8LN,General Needs,House,1938,Traditional,Natural gas (mains) +31 Paterson Road,Aylesbury,Bucks,,HP21 8LN,General Needs,House,1938,Traditional,Natural gas (mains) +35 Paterson Road,Aylesbury,Bucks,,HP21 8LN,General Needs,House,1938,Traditional,Natural gas (mains) +37 Paterson Road,Aylesbury,Bucks,,HP21 8LN,General Needs,House,1938,Traditional,Natural gas (mains) +41 Paterson Road,Aylesbury,Bucks,,HP21 8LN,General Needs,House,1938,Traditional,Natural gas (mains) +43 Paterson Road,Aylesbury,Bucks,,HP21 8LN,General Needs,House,1938,Traditional,Natural gas (mains) +69 Paterson Road,Aylesbury,Bucks,,HP21 8LN,General Needs,House,1948,BISF,Natural gas (mains) +50 Prebendal Avenue,Aylesbury,Bucks,,HP21 8LQ,General Needs,House,1928,Traditional,Natural gas (mains) +56 Prebendal Avenue,Aylesbury,Bucks,,HP21 8LQ,General Needs,House,1928,Traditional,Natural gas (mains) +60 Prebendal Avenue,Aylesbury,Bucks,,HP21 8LQ,General Needs,House,1928,Traditional,Natural gas (mains) +62 Prebendal Avenue,Aylesbury,Bucks,,HP21 8LQ,General Needs,House,1928,Traditional,Natural gas (mains) +64 Prebendal Avenue,Aylesbury,Bucks,,HP21 8LQ,General Needs,House,1928,Traditional,Natural gas (mains) +70 Prebendal Avenue,Aylesbury,Bucks,,HP21 8LQ,General Needs,House,1931,Traditional,Natural gas (mains) +86 Prebendal Avenue,Aylesbury,Bucks,,HP21 8LQ,General Needs,House,1931,Traditional,Natural gas (mains) +92 Prebendal Avenue,Aylesbury,Bucks,,HP21 8LQ,General Needs,House,1933,Traditional,Natural gas (mains) +94 Prebendal Avenue,Aylesbury,Bucks,,HP21 8LQ,General Needs,House,1933,Traditional,Natural gas (mains) +42 Paterson Road,Aylesbury,Bucks,,HP21 8LW,General Needs,House,1938,Traditional,Natural gas (mains) +44 Paterson Road,Aylesbury,Bucks,,HP21 8LW,General Needs,House,1948,BISF,Natural gas (mains) +46 Paterson Road,Aylesbury,Bucks,,HP21 8LW,General Needs,House,1948,BISF,Natural gas (mains) +52 Paterson Road,Aylesbury,Bucks,,HP21 8LW,General Needs,House,1948,BISF,Natural gas (mains) +57 Paterson Road,Aylesbury,Bucks,,HP21 8LW,General Needs,House,1938,Traditional,Natural gas (mains) +59 Paterson Road,Aylesbury,Bucks,,HP21 8LW,General Needs,House,1938,Traditional,Natural gas (mains) +65 Paterson Road,Aylesbury,Bucks,,HP21 8LW,General Needs,House,1938,Traditional,Natural gas (mains) +71 Paterson Road,Aylesbury,Bucks,,HP21 8LW,General Needs,House,1948,BISF,Natural gas (mains) +75 Paterson Road,Aylesbury,Bucks,,HP21 8LW,General Needs,House,1948,BISF,Natural gas (mains) +77 Paterson Road,Aylesbury,Bucks,,HP21 8LW,General Needs,House,1948,BISF,Natural gas (mains) +79 Paterson Road,Aylesbury,Bucks,,HP21 8LW,General Needs,House,1948,BISF,Natural gas (mains) +31 Thame Road,Aylesbury,Bucks,,HP21 8LX,General Needs,House,1948,Traditional,Natural gas (mains) +35 Thame Road,Aylesbury,Bucks,,HP21 8LX,General Needs,House,1948,Traditional,Natural gas (mains) +37 Thame Road,Aylesbury,Bucks,,HP21 8LX,General Needs,House,1948,Traditional,Natural gas (mains) +49 Thame Road,Aylesbury,Bucks,,HP21 8LX,General Needs,House,1950,Traditional,Natural gas (mains) +51 Thame Road,Aylesbury,Bucks,,HP21 8LX,General Needs,House,1950,Traditional,Natural gas (mains) +55 Thame Road,Aylesbury,Bucks,,HP21 8LX,General Needs,House,1950,Traditional,Natural gas (mains) +63 Thame Road,Aylesbury,Bucks,,HP21 8LY,General Needs,House,1950,Traditional,Natural gas (mains) +85 Thame Road,Aylesbury,Bucks,,HP21 8LY,General Needs,House,1950,Traditional,Natural gas (mains) +95 Thame Road,Aylesbury,Bucks,,HP21 8LY,General Needs,House,1950,Traditional,Natural gas (mains) +101 Thame Road,Aylesbury,Bucks,,HP21 8LY,General Needs,House,1950,Traditional,Natural gas (mains) +3 Churchill Avenue,Aylesbury,Bucks,,HP21 8NA,General Needs,House,1948,BISF,Natural gas (mains) +4 Churchill Avenue,Aylesbury,Bucks,,HP21 8NA,General Needs,House,1948,BISF,Natural gas (mains) +6 Churchill Avenue,Aylesbury,Bucks,,HP21 8NA,General Needs,House,1948,BISF,Natural gas (mains) +10 Churchill Avenue,Aylesbury,Bucks,,HP21 8NA,General Needs,House,1948,BISF,Natural gas (mains) +12 Churchill Avenue,Aylesbury,Bucks,,HP21 8NA,General Needs,House,1948,BISF,Natural gas (mains) +24 Churchill Avenue,Aylesbury,Bucks,,HP21 8NA,General Needs,House,1948,BISF,Natural gas (mains) +30 Churchill Avenue,Aylesbury,Bucks,,HP21 8NA,General Needs,House,1948,BISF,Natural gas (mains) +4 Russell Avenue,Aylesbury,Bucks,,HP21 8NB,General Needs,House,1948,BISF,Natural gas (mains) +8 Russell Avenue,Aylesbury,Bucks,,HP21 8NB,General Needs,House,1948,BISF,Natural gas (mains) +12 Russell Avenue,Aylesbury,Bucks,,HP21 8NB,General Needs,House,1948,BISF,Natural gas (mains) +14 Russell Avenue,Aylesbury,Bucks,,HP21 8NB,General Needs,House,1948,BISF,Natural gas (mains) +16 Russell Avenue,Aylesbury,Bucks,,HP21 8NB,General Needs,House,1948,BISF,Natural gas (mains) +18 Russell Avenue,Aylesbury,Bucks,,HP21 8NB,General Needs,House,1948,BISF,Natural gas (mains) +20 Russell Avenue,Aylesbury,Bucks,,HP21 8NB,General Needs,House,1948,BISF,Natural gas (mains) +22 Russell Avenue,Aylesbury,Bucks,,HP21 8NB,General Needs,House,1948,BISF,Natural gas (mains) +26 Russell Avenue,Aylesbury,Bucks,,HP21 8NB,General Needs,House,1948,BISF,Natural gas (mains) +34 Russell Avenue,Aylesbury,Bucks,,HP21 8NB,General Needs,House,1948,BISF,Natural gas (mains) +36 Russell Avenue,Aylesbury,Bucks,,HP21 8NB,General Needs,House,1948,BISF,Natural gas (mains) +40 Russell Avenue,Aylesbury,Bucks,,HP21 8NB,General Needs,House,1948,BISF,Natural gas (mains) +46 Russell Avenue,Aylesbury,Bucks,,HP21 8NB,General Needs,House,1948,BISF,Natural gas (mains) +48 Russell Avenue,Aylesbury,Bucks,,HP21 8NB,General Needs,House,1948,BISF,Natural gas (mains) +50 Russell Avenue,Aylesbury,Bucks,,HP21 8NB,General Needs,House,1950,Traditional,Natural gas (mains) +52 Russell Avenue,Aylesbury,Bucks,,HP21 8NB,General Needs,House,1950,Traditional,Natural gas (mains) +58 Russell Avenue,Aylesbury,Bucks,,HP21 8ND,General Needs,House,1948,BISF,Natural gas (mains) +62 Russell Avenue,Aylesbury,Bucks,,HP21 8ND,General Needs,House,1948,BISF,Natural gas (mains) +64 Russell Avenue,Aylesbury,Bucks,,HP21 8ND,General Needs,House,1948,BISF,Natural gas (mains) +75 Russell Avenue,Aylesbury,Bucks,,HP21 8ND,General Needs,House,1948,BISF,Natural gas (mains) +77 Russell Avenue,Aylesbury,Bucks,,HP21 8ND,General Needs,House,1948,BISF,Natural gas (mains) +79 Russell Avenue,Aylesbury,Bucks,,HP21 8ND,General Needs,House,1948,BISF,Natural gas (mains) +81 Russell Avenue,Aylesbury,Bucks,,HP21 8ND,General Needs,House,1948,BISF,Natural gas (mains) +5 Russell Avenue,Aylesbury,Bucks,,HP21 8NE,General Needs,House,1948,BISF,Natural gas (mains) +19 Russell Avenue,Aylesbury,Bucks,,HP21 8NE,General Needs,House,1948,BISF,Natural gas (mains) +21 Russell Avenue,Aylesbury,Bucks,,HP21 8NE,General Needs,House,1948,BISF,Natural gas (mains) +31 Russell Avenue,Aylesbury,Bucks,,HP21 8NE,General Needs,House,1948,BISF,Natural gas (mains) +33 Russell Avenue,Aylesbury,Bucks,,HP21 8NE,General Needs,House,1948,BISF,Natural gas (mains) +37 Russell Avenue,Aylesbury,Bucks,,HP21 8NE,General Needs,House,1948,BISF,Natural gas (mains) +39 Russell Avenue,Aylesbury,Bucks,,HP21 8NE,General Needs,House,1948,BISF,Natural gas (mains) +51 Russell Avenue,Aylesbury,Bucks,,HP21 8NE,General Needs,House,1950,Traditional,Natural gas (mains) +57 Russell Avenue,Aylesbury,Bucks,,HP21 8NE,General Needs,House,1948,BISF,Natural gas (mains) +59 Russell Avenue,Aylesbury,Bucks,,HP21 8NE,General Needs,House,1948,BISF,Natural gas (mains) +63 Russell Avenue,Aylesbury,Bucks,,HP21 8NE,General Needs,House,1948,BISF,Natural gas (mains) +65 Russell Avenue,Aylesbury,Bucks,,HP21 8NE,General Needs,House,1948,BISF,Natural gas (mains) +67 Russell Avenue,Aylesbury,Bucks,,HP21 8NE,General Needs,House,1948,BISF,Natural gas (mains) +7 Churchill Avenue,Aylesbury,Bucks,,HP21 8NF,General Needs,House,1953,Traditional,Natural gas (mains) +17 Churchill Avenue,Aylesbury,Bucks,,HP21 8NF,General Needs,House,1953,Traditional,Natural gas (mains) +23 Churchill Avenue,Aylesbury,Bucks,,HP21 8NF,General Needs,House,1955,Traditional,Natural gas (mains) +31 Churchill Avenue,Aylesbury,Bucks,,HP21 8NF,General Needs,House,1953,Traditional,Natural gas (mains) +39 Churchill Avenue,Aylesbury,Bucks,,HP21 8NF,General Needs,House,1951,Traditional,Natural gas (mains) +41 Churchill Avenue,Aylesbury,Bucks,,HP21 8NF,General Needs,House,1953,Traditional,Natural gas (mains) +51 Churchill Avenue,Aylesbury,Bucks,,HP21 8NF,General Needs,House,1953,Traditional,Natural gas (mains) +57 Churchill Avenue,Aylesbury,Bucks,,HP21 8NF,General Needs,Flat,1955,Traditional,Natural gas (mains) +1 Edinburgh Place,Aylesbury,Bucks,,HP21 8NG,General Needs,Bungalow,1955,Traditional,Natural gas (mains) +2 Edinburgh Place,Aylesbury,Bucks,,HP21 8NG,General Needs,Bungalow,1955,Traditional,Natural gas (mains) +3 Edinburgh Place,Aylesbury,Bucks,,HP21 8NG,General Needs,House,1955,Traditional,Natural gas (mains) +5 Edinburgh Place,Aylesbury,Bucks,,HP21 8NG,General Needs,Bungalow,1955,Traditional,Natural gas (mains) +6 Edinburgh Place,Aylesbury,Bucks,,HP21 8NG,General Needs,Bungalow,1955,Traditional,Natural gas (mains) +7 Edinburgh Place,Aylesbury,Bucks,,HP21 8NG,General Needs,Bungalow,1955,Traditional,Natural gas (mains) +8 Edinburgh Place,Aylesbury,Bucks,,HP21 8NG,General Needs,Bungalow,1955,Traditional,Natural gas (mains) +9 Edinburgh Place,Aylesbury,Bucks,,HP21 8NG,General Needs,House,1955,Traditional,Natural gas (mains) +11 Edinburgh Place,Aylesbury,Bucks,,HP21 8NG,General Needs,Bungalow,1955,Traditional,Natural gas (mains) +12 Edinburgh Place,Aylesbury,Bucks,,HP21 8NG,General Needs,Bungalow,1955,Traditional,Natural gas (mains) +60 Churchill Avenue,Aylesbury,Bucks,,HP21 8NH,General Needs,House,1953,Traditional,Natural gas (mains) +61 Churchill Avenue,Aylesbury,Bucks,,HP21 8NH,General Needs,House,1949,Traditional,Natural gas (mains) +65 Churchill Avenue,Aylesbury,Bucks,,HP21 8NH,General Needs,House,1949,Traditional,Natural gas (mains) +76 Churchill Avenue,Aylesbury,Bucks,,HP21 8NH,General Needs,House,1948,BISF,Natural gas (mains) +77 Churchill Avenue,Aylesbury,Bucks,,HP21 8NH,General Needs,House,1948,BISF,Natural gas (mains) +85 Churchill Avenue,Aylesbury,Bucks,,HP21 8NH,General Needs,House,1955,BISF,Natural gas (mains) +87 Churchill Avenue,Aylesbury,Bucks,,HP21 8NH,General Needs,House,1955,BISF,Natural gas (mains) +49 Carrington Road,Aylesbury,Bucks,,HP21 8NJ,General Needs,House,1948,BISF,Natural gas (mains) +53 Carrington Road,Aylesbury,Bucks,,HP21 8NJ,General Needs,House,1948,BISF,Natural gas (mains) +61 Carrington Road,Aylesbury,Bucks,,HP21 8NJ,General Needs,House,1949,Traditional,Natural gas (mains) +63 Carrington Road,Aylesbury,Bucks,,HP21 8NJ,General Needs,House,1949,Traditional,Natural gas (mains) +71 Carrington Road,Aylesbury,Bucks,,HP21 8NJ,General Needs,House,1948,BISF,Natural gas (mains) +73 Carrington Road,Aylesbury,Bucks,,HP21 8NJ,General Needs,House,1948,BISF,Natural gas (mains) +75 Carrington Road,Aylesbury,Bucks,,HP21 8NJ,General Needs,House,1948,BISF,Natural gas (mains) +52 Carrington Road,Aylesbury,Bucks,,HP21 8NL,General Needs,House,1953,Traditional,Natural gas (mains) +58 Carrington Road,Aylesbury,Bucks,,HP21 8NL,General Needs,House,1948,BISF,Natural gas (mains) +60 Carrington Road,Aylesbury,Bucks,,HP21 8NL,General Needs,House,1948,BISF,Natural gas (mains) +66 Carrington Road,Aylesbury,Bucks,,HP21 8NL,General Needs,House,1949,BISF,Natural gas (mains) +76 Carrington Road,Aylesbury,Bucks,,HP21 8NL,General Needs,Flat,1952,Traditional,Natural gas (mains) +3 Chaloner Road,Aylesbury,Bucks,,HP21 8NN,General Needs,House,1949,BISF,Natural gas (mains) +59 Hampden Gardens,Aylesbury,Bucks,,HP21 8NP,General Needs,Flat,1953,Traditional,Natural gas (mains) +61 Hampden Gardens,Aylesbury,Bucks,,HP21 8NP,General Needs,Flat,1953,Traditional,Natural gas (mains) +63 Hampden Gardens,Aylesbury,Bucks,,HP21 8NP,General Needs,Flat,1953,Traditional,Natural gas (mains) +69 Hampden Gardens,Aylesbury,Bucks,,HP21 8NP,General Needs,Flat,1953,Traditional,Natural gas (mains) +71 Hampden Gardens,Aylesbury,Bucks,,HP21 8NP,General Needs,Flat,1953,Traditional,Natural gas (mains) +73 Hampden Gardens,Aylesbury,Bucks,,HP21 8NP,General Needs,Flat,1953,Traditional,Natural gas (mains) +75 Hampden Gardens,Aylesbury,Bucks,,HP21 8NP,General Needs,Flat,1953,Traditional,Natural gas (mains) +77 Hampden Gardens,Aylesbury,Bucks,,HP21 8NP,General Needs,Flat,1953,Traditional,Natural gas (mains) +79 Hampden Gardens,Aylesbury,Bucks,,HP21 8NP,General Needs,Flat,1953,Traditional,Natural gas (mains) +81 Hampden Gardens,Aylesbury,Bucks,,HP21 8NP,General Needs,Flat,1953,Traditional,Natural gas (mains) +85 Hampden Gardens,Aylesbury,Bucks,,HP21 8NP,General Needs,Flat,1953,Traditional,Natural gas (mains) +87 Hampden Gardens,Aylesbury,Bucks,,HP21 8NP,General Needs,Flat,1953,Traditional,Natural gas (mains) +89 Hampden Gardens,Aylesbury,Bucks,,HP21 8NP,General Needs,Flat,1953,Traditional,Natural gas (mains) +91 Hampden Gardens,Aylesbury,Bucks,,HP21 8NP,General Needs,Flat,1953,Traditional,Natural gas (mains) +95 Hampden Gardens,Aylesbury,Bucks,,HP21 8NP,General Needs,Flat,1953,Traditional,Natural gas (mains) +99 Hampden Gardens,Aylesbury,Bucks,,HP21 8NP,General Needs,Flat,1953,Traditional,Natural gas (mains) +101 Hampden Gardens,Aylesbury,Bucks,,HP21 8NP,General Needs,Flat,1953,Traditional,Natural gas (mains) +103 Hampden Gardens,Aylesbury,Bucks,,HP21 8NP,General Needs,Flat,1953,Traditional,Natural gas (mains) +105 Hampden Gardens,Aylesbury,Bucks,,HP21 8NP,General Needs,Flat,1953,Traditional,Natural gas (mains) +111 Hampden Gardens,Aylesbury,Bucks,,HP21 8NP,General Needs,Flat,1953,Traditional,Natural gas (mains) +117 Hampden Gardens,Aylesbury,Bucks,,HP21 8NP,General Needs,Flat,1953,Traditional,Natural gas (mains) +121 Hampden Gardens,Aylesbury,Bucks,,HP21 8NP,General Needs,Flat,1953,Traditional,Natural gas (mains) +123 Hampden Gardens,Aylesbury,Bucks,,HP21 8NP,General Needs,Flat,1953,Traditional,Natural gas (mains) +129 Hampden Gardens,Aylesbury,Bucks,,HP21 8NP,General Needs,Flat,1953,Traditional,Natural gas (mains) +133 Hampden Gardens,Aylesbury,Bucks,,HP21 8NP,General Needs,Flat,1953,Traditional,Natural gas (mains) +135 Hampden Gardens,Aylesbury,Bucks,,HP21 8NP,General Needs,Flat,1953,Traditional,Natural gas (mains) +137 Hampden Gardens,Aylesbury,Bucks,,HP21 8NP,General Needs,Flat,1953,Traditional,Natural gas (mains) +54 Hampden Gardens,Aylesbury,Bucks,,HP21 8NR,General Needs,Flat,1953,Traditional,Natural gas (mains) +56 Hampden Gardens,Aylesbury,Bucks,,HP21 8NR,General Needs,Flat,1953,Traditional,Natural gas (mains) +58 Hampden Gardens,Aylesbury,Bucks,,HP21 8NR,General Needs,Flat,1953,Traditional,Natural gas (mains) +60 Hampden Gardens,Aylesbury,Bucks,,HP21 8NR,General Needs,Flat,1953,Traditional,Natural gas (mains) +62 Hampden Gardens,Aylesbury,Bucks,,HP21 8NR,General Needs,Flat,1953,Traditional,Natural gas (mains) +64 Hampden Gardens,Aylesbury,Bucks,,HP21 8NR,General Needs,Flat,1953,Traditional,Natural gas (mains) +66 Hampden Gardens,Aylesbury,Bucks,,HP21 8NR,General Needs,Flat,1953,Traditional,Natural gas (mains) +68 Hampden Gardens,Aylesbury,Bucks,,HP21 8NR,General Needs,Flat,1953,Traditional,Natural gas (mains) +72 Hampden Gardens,Aylesbury,Bucks,,HP21 8NR,General Needs,Flat,1953,Traditional,Natural gas (mains) +76 Hampden Gardens,Aylesbury,Bucks,,HP21 8NR,General Needs,Flat,1953,Traditional,Natural gas (mains) +78 Hampden Gardens,Aylesbury,Bucks,,HP21 8NR,General Needs,Flat,1953,Traditional,Natural gas (mains) +80 Hampden Gardens,Aylesbury,Bucks,,HP21 8NR,General Needs,Flat,1953,Traditional,Natural gas (mains) +82 Hampden Gardens,Aylesbury,Bucks,,HP21 8NR,General Needs,Flat,1953,Traditional,Natural gas (mains) +84 Hampden Gardens,Aylesbury,Bucks,,HP21 8NR,General Needs,Flat,1953,Traditional,Natural gas (mains) +88 Hampden Gardens,Aylesbury,Bucks,,HP21 8NR,General Needs,Flat,1953,Traditional,Natural gas (mains) +90 Hampden Gardens,Aylesbury,Bucks,,HP21 8NR,General Needs,Flat,1953,Traditional,Natural gas (mains) +92 Hampden Gardens,Aylesbury,Bucks,,HP21 8NR,General Needs,Flat,1953,Traditional,Natural gas (mains) +116 Hampden Gardens,Aylesbury,Bucks,,HP21 8NR,General Needs,Flat,1953,Traditional,Natural gas (mains) +118 Hampden Gardens,Aylesbury,Bucks,,HP21 8NR,General Needs,Flat,1953,Traditional,Natural gas (mains) +124 Hampden Gardens,Aylesbury,Bucks,,HP21 8NR,General Needs,Flat,1953,Traditional,Natural gas (mains) +126 Hampden Gardens,Aylesbury,Bucks,,HP21 8NR,General Needs,Flat,1953,Traditional,Natural gas (mains) +130 Hampden Gardens,Aylesbury,Bucks,,HP21 8NR,General Needs,Flat,1953,Traditional,Natural gas (mains) +132 Hampden Gardens,Aylesbury,Bucks,,HP21 8NR,General Needs,Flat,1953,Traditional,Natural gas (mains) +2 Hampden Close,Aylesbury,Bucks,,HP21 8NS,General Needs,House,1965,BSL Industrialised,Natural gas (mains) +4 Hampden Close,Aylesbury,Bucks,,HP21 8NS,General Needs,House,1965,BSL Industrialised,Natural gas (mains) +5 Hampden Close,Aylesbury,Bucks,,HP21 8NS,General Needs,House,1965,BSL Industrialised,Natural gas (mains) +7 Hampden Close,Aylesbury,Bucks,,HP21 8NS,General Needs,Bungalow,1965,Traditional,Natural gas (mains) +8 Hampden Close,Aylesbury,Bucks,,HP21 8NS,General Needs,Bungalow,1965,Traditional,Natural gas (mains) +9 Hampden Close,Aylesbury,Bucks,,HP21 8NS,General Needs,Bungalow,1965,Traditional,Natural gas (mains) +10 Hampden Close,Aylesbury,Bucks,,HP21 8NS,General Needs,Bungalow,1965,Traditional,Natural gas (mains) +11 Hampden Close,Aylesbury,Bucks,,HP21 8NS,General Needs,Bungalow,1965,Traditional,Natural gas (mains) +12 Hampden Close,Aylesbury,Bucks,,HP21 8NS,General Needs,Bungalow,1965,Traditional,Natural gas (mains) +13 Hampden Close,Aylesbury,Bucks,,HP21 8NS,General Needs,Bungalow,1965,Traditional,Natural gas (mains) +14 Hampden Close,Aylesbury,Bucks,,HP21 8NS,General Needs,Bungalow,1965,Traditional,Natural gas (mains) +1 Chalgrove Walk,Aylesbury,Bucks,,HP21 8NT,General Needs,House,1952,Traditional,Natural gas (mains) +9 Chalgrove Walk,Aylesbury,Bucks,,HP21 8NT,General Needs,House,1952,Traditional,Natural gas (mains) +11 Chalgrove Walk,Aylesbury,Bucks,,HP21 8NT,General Needs,House,1952,Traditional,Natural gas (mains) +13 Chalgrove Walk,Aylesbury,Bucks,,HP21 8NT,General Needs,House,1947,BISF,Natural gas (mains) +19 Chalgrove Walk,Aylesbury,Bucks,,HP21 8NT,General Needs,House,1947,BISF,Natural gas (mains) +27 Chalgrove Walk,Aylesbury,Bucks,,HP21 8NT,General Needs,House,1947,BISF,Natural gas (mains) +31 Chalgrove Walk,Aylesbury,Bucks,,HP21 8NT,General Needs,House,1947,BISF,Natural gas (mains) +33 Chalgrove Walk,Aylesbury,Bucks,,HP21 8NT,General Needs,House,1947,BISF,Natural gas (mains) +3 Chalgrove Walk,Aylesbury,Bucks,,HP21 8NT,General Needs,House,1952,Traditional,Storage heaters +7 Streamside Walk,Aylesbury,Bucks,,HP21 8NU,General Needs,House,1955,Traditional,Natural gas (mains) +9 Streamside Walk,Aylesbury,Bucks,,HP21 8NU,General Needs,House,1955,Traditional,Natural gas (mains) +15 Streamside Walk,Aylesbury,Bucks,,HP21 8NU,General Needs,House,1955,Traditional,Natural gas (mains) +1 Chaloner Place,Aylesbury,Bucks,,HP21 8NW,General Needs,Bungalow,1961,Traditional,Natural gas (mains) +2 Chaloner Place,Aylesbury,Bucks,,HP21 8NW,General Needs,Bungalow,1961,Traditional,Natural gas (mains) +3 Chaloner Place,Aylesbury,Bucks,,HP21 8NW,General Needs,Bungalow,1961,Traditional,Natural gas (mains) +4 Chaloner Place,Aylesbury,Bucks,,HP21 8NW,General Needs,Bungalow,1961,Traditional,Natural gas (mains) +5 Chaloner Place,Aylesbury,Bucks,,HP21 8NW,General Needs,Bungalow,1961,Traditional,Natural gas (mains) +6 Chaloner Place,Aylesbury,Bucks,,HP21 8NW,General Needs,Bungalow,1961,Traditional,Natural gas (mains) +7 Chaloner Place,Aylesbury,Bucks,,HP21 8NW,General Needs,Bungalow,1961,Traditional,Natural gas (mains) +8 Chaloner Place,Aylesbury,Bucks,,HP21 8NW,General Needs,House,1961,Traditional,Natural gas (mains) +10 Chaloner Place,Aylesbury,Bucks,,HP21 8NW,General Needs,House,1961,Traditional,Natural gas (mains) +209 Prebendal Avenue,Aylesbury,Bucks,,HP21 8NX,General Needs,Flat,1951,Traditional,Natural gas (mains) +211 Prebendal Avenue,Aylesbury,Bucks,,HP21 8NX,General Needs,Flat,1951,Traditional,Natural gas (mains) +213 Prebendal Avenue,Aylesbury,Bucks,,HP21 8NX,General Needs,Flat,1951,Traditional,Natural gas (mains) +215 Prebendal Avenue,Aylesbury,Bucks,,HP21 8NX,General Needs,Flat,1951,Traditional,Natural gas (mains) +219 Prebendal Avenue,Aylesbury,Bucks,,HP21 8NX,General Needs,Flat,1951,Traditional,Natural gas (mains) +221 Prebendal Avenue,Aylesbury,Bucks,,HP21 8NX,General Needs,Flat,1951,Traditional,Natural gas (mains) +225 Prebendal Avenue,Aylesbury,Bucks,,HP21 8NX,General Needs,House,1948,BISF,Natural gas (mains) +227 Prebendal Avenue,Aylesbury,Bucks,,HP21 8NX,General Needs,House,1948,BISF,Natural gas (mains) +217 Prebendal Avenue,Aylesbury,Bucks,,HP21 8NX,General Needs,Flat,1951,Traditional,Storage heaters +168 Prebendal Avenue,Aylesbury,Bucks,,HP21 8NY,General Needs,Flat,1951,Traditional,Natural gas (mains) +170 Prebendal Avenue,Aylesbury,Bucks,,HP21 8NY,General Needs,Flat,1951,Traditional,Natural gas (mains) +172 Prebendal Avenue,Aylesbury,Bucks,,HP21 8NY,General Needs,Flat,1951,Traditional,Natural gas (mains) +174 Prebendal Avenue,Aylesbury,Bucks,,HP21 8NY,General Needs,Flat,1951,Traditional,Natural gas (mains) +2 Hartwell End,Aylesbury,Bucks,,HP21 8NZ,General Needs,House,1953,Traditional,Natural gas (mains) +5 Hartwell End,Aylesbury,Bucks,,HP21 8NZ,General Needs,Flat,1953,Traditional,Natural gas (mains) +7 Hartwell End,Aylesbury,Bucks,,HP21 8NZ,General Needs,Flat,1953,Traditional,Natural gas (mains) +8 Hartwell End,Aylesbury,Bucks,,HP21 8NZ,General Needs,Flat,1953,Traditional,Natural gas (mains) +9 Hartwell End,Aylesbury,Bucks,,HP21 8NZ,General Needs,House,1953,Traditional,Natural gas (mains) +12 Hartwell End,Aylesbury,Bucks,,HP21 8NZ,General Needs,House,1953,Traditional,Natural gas (mains) +13 Hartwell End,Aylesbury,Bucks,,HP21 8NZ,General Needs,Flat,1953,Traditional,Natural gas (mains) +15 Hartwell End,Aylesbury,Bucks,,HP21 8NZ,General Needs,Flat,1953,Traditional,Natural gas (mains) +53 Hartwell End,Aylesbury,Bucks,,HP21 8NZ,General Needs,Flat,1955,Traditional,Natural gas (mains) +55 Hartwell End,Aylesbury,Bucks,,HP21 8NZ,General Needs,Flat,1955,Traditional,Natural gas (mains) +56 Hartwell End,Aylesbury,Bucks,,HP21 8NZ,General Needs,Flat,1955,Traditional,Natural gas (mains) +57 Hartwell End,Aylesbury,Bucks,,HP21 8NZ,General Needs,Flat,1955,Traditional,Natural gas (mains) +58 Hartwell End,Aylesbury,Bucks,,HP21 8NZ,General Needs,Flat,1955,Traditional,Natural gas (mains) +60 Hartwell End,Aylesbury,Bucks,,HP21 8NZ,General Needs,Flat,1955,Traditional,Natural gas (mains) +17 Hartwell End,Aylesbury,Bucks,,HP21 8PA,General Needs,Flat,1953,Traditional,Natural gas (mains) +18 Hartwell End,Aylesbury,Bucks,,HP21 8PA,General Needs,Flat,1953,Traditional,Natural gas (mains) +19 Hartwell End,Aylesbury,Bucks,,HP21 8PA,General Needs,Flat,1953,Traditional,Natural gas (mains) +20 Hartwell End,Aylesbury,Bucks,,HP21 8PA,General Needs,Flat,1953,Traditional,Natural gas (mains) +21 Hartwell End,Aylesbury,Bucks,,HP21 8PA,General Needs,House,1955,Traditional,Natural gas (mains) +22 Hartwell End,Aylesbury,Bucks,,HP21 8PA,General Needs,House,1953,Traditional,Natural gas (mains) +29 Hartwell End,Aylesbury,Bucks,,HP21 8PA,General Needs,Flat,1953,Traditional,Natural gas (mains) +31 Hartwell End,Aylesbury,Bucks,,HP21 8PA,General Needs,Flat,1955,Traditional,Natural gas (mains) +32 Hartwell End,Aylesbury,Bucks,,HP21 8PA,General Needs,Flat,1955,Traditional,Natural gas (mains) +33 Hartwell End,Aylesbury,Bucks,,HP21 8PA,General Needs,Flat,1955,Traditional,Natural gas (mains) +35 Hartwell End,Aylesbury,Bucks,,HP21 8PA,General Needs,Flat,1955,Traditional,Natural gas (mains) +36 Hartwell End,Aylesbury,Bucks,,HP21 8PA,General Needs,Flat,1955,Traditional,Natural gas (mains) +37 Hartwell End,Aylesbury,Bucks,,HP21 8PA,General Needs,Flat,1955,Traditional,Natural gas (mains) +38 Hartwell End,Aylesbury,Bucks,,HP21 8PA,General Needs,Flat,1955,Traditional,Natural gas (mains) +39 Hartwell End,Aylesbury,Bucks,,HP21 8PA,General Needs,Flat,1955,Traditional,Natural gas (mains) +41 Hartwell End,Aylesbury,Bucks,,HP21 8PA,General Needs,Flat,1955,Traditional,Natural gas (mains) +42 Hartwell End,Aylesbury,Bucks,,HP21 8PA,General Needs,Flat,1955,Traditional,Natural gas (mains) +43 Hartwell End,Aylesbury,Bucks,,HP21 8PA,General Needs,Flat,1955,Traditional,Natural gas (mains) +44 Hartwell End,Aylesbury,Bucks,,HP21 8PA,General Needs,Flat,1955,Traditional,Natural gas (mains) +45 Hartwell End,Aylesbury,Bucks,,HP21 8PA,General Needs,Flat,1955,Traditional,Natural gas (mains) +48 Hartwell End,Aylesbury,Bucks,,HP21 8PA,General Needs,Flat,1955,Traditional,Natural gas (mains) +50 Hartwell End,Aylesbury,Bucks,,HP21 8PA,General Needs,Flat,1955,Traditional,Natural gas (mains) +51 Hartwell End,Aylesbury,Bucks,,HP21 8PA,General Needs,Flat,1955,Traditional,Natural gas (mains) +52 Hartwell End,Aylesbury,Bucks,,HP21 8PA,General Needs,Flat,1955,Traditional,Natural gas (mains) +4 Lavric Road,Aylesbury,Bucks,,HP21 8PF,General Needs,House,1975,Traditional,Natural gas (mains) +10 Lavric Road,Aylesbury,Bucks,,HP21 8PF,General Needs,House,1975,Traditional,Natural gas (mains) +16 Lavric Road,Aylesbury,Bucks,,HP21 8PF,General Needs,House,1975,Traditional,Natural gas (mains) +24 Lavric Road,Aylesbury,Bucks,,HP21 8PF,General Needs,House,1975,Traditional,Natural gas (mains) +28 Lavric Road,Aylesbury,Bucks,,HP21 8PF,General Needs,House,1975,Traditional,Natural gas (mains) +30 Lavric Road,Aylesbury,Bucks,,HP21 8PF,General Needs,House,1975,Traditional,Natural gas (mains) +34 Lavric Road,Aylesbury,Bucks,,HP21 8PF,General Needs,House,1975,Traditional,Natural gas (mains) +38 Lavric Road,Aylesbury,Bucks,,HP21 8PF,General Needs,Flat,1975,Traditional,Natural gas (mains) +40 Lavric Road,Aylesbury,Bucks,,HP21 8PF,General Needs,Flat,1975,Traditional,Natural gas (mains) +42 Lavric Road,Aylesbury,Bucks,,HP21 8PF,General Needs,Flat,1975,Traditional,Natural gas (mains) +44 Lavric Road,Aylesbury,Bucks,,HP21 8PF,General Needs,Flat,1975,Traditional,Natural gas (mains) +46 Lavric Road,Aylesbury,Bucks,,HP21 8PF,General Needs,Flat,1975,Traditional,Natural gas (mains) +50 Lavric Road,Aylesbury,Bucks,,HP21 8PF,General Needs,Flat,1975,Traditional,Natural gas (mains) +56 Lavric Road,Aylesbury,Bucks,,HP21 8PF,General Needs,House,1975,Traditional,Natural gas (mains) +60 Lavric Road,Aylesbury,Bucks,,HP21 8PF,General Needs,House,1975,Traditional,Natural gas (mains) +64 Lavric Road,Aylesbury,Bucks,,HP21 8PF,General Needs,House,1975,Traditional,Natural gas (mains) +70 Lavric Road,Aylesbury,Bucks,,HP21 8PF,General Needs,Bungalow,1975,Traditional,Natural gas (mains) +72 Lavric Road,Aylesbury,Bucks,,HP21 8PF,General Needs,Bungalow,1975,Traditional,Natural gas (mains) +1 Lembrook Walk,Aylesbury,Bucks,,HP21 8PG,General Needs,House,1975,Traditional,Natural gas (mains) +6 Lembrook Walk,Aylesbury,Bucks,,HP21 8PG,General Needs,House,1975,Traditional,Natural gas (mains) +9 Lembrook Walk,Aylesbury,Bucks,,HP21 8PG,General Needs,House,1975,Traditional,Natural gas (mains) +11 Lembrook Walk,Aylesbury,Bucks,,HP21 8PG,General Needs,House,1975,Traditional,Natural gas (mains) +14 Lembrook Walk,Aylesbury,Bucks,,HP21 8PG,General Needs,House,1975,Traditional,Natural gas (mains) +16 Lembrook Walk,Aylesbury,Bucks,,HP21 8PG,General Needs,House,1975,Traditional,Natural gas (mains) +19 Lembrook Walk,Aylesbury,Bucks,,HP21 8PG,General Needs,House,1975,Traditional,Natural gas (mains) +20 Lembrook Walk,Aylesbury,Bucks,,HP21 8PG,General Needs,House,1975,Traditional,Natural gas (mains) +2 Alham Road,Aylesbury,Bucks,,HP21 8PH,General Needs,Flat,1975,Traditional,Natural gas (mains) +3 Alham Road,Aylesbury,Bucks,,HP21 8PH,General Needs,House,1975,Traditional,Natural gas (mains) +4 Alham Road,Aylesbury,Bucks,,HP21 8PH,General Needs,Flat,1975,Traditional,Natural gas (mains) +10 Alham Road,Aylesbury,Bucks,,HP21 8PH,General Needs,Bungalow,1975,Traditional,Natural gas (mains) +14 Alham Road,Aylesbury,Bucks,,HP21 8PH,General Needs,House,1975,Traditional,Natural gas (mains) +16 Alham Road,Aylesbury,Bucks,,HP21 8PH,General Needs,House,1975,Traditional,Natural gas (mains) +17 Alham Road,Aylesbury,Bucks,,HP21 8PH,General Needs,Bungalow,1975,Traditional,Natural gas (mains) +19 Alham Road,Aylesbury,Bucks,,HP21 8PH,General Needs,Bungalow,1975,Traditional,Natural gas (mains) +21 Alham Road,Aylesbury,Bucks,,HP21 8PH,General Needs,Bungalow,1975,Traditional,Natural gas (mains) +23 Alham Road,Aylesbury,Bucks,,HP21 8PH,General Needs,Bungalow,1975,Traditional,Natural gas (mains) +3 Towersey Way,Aylesbury,Bucks,,HP21 8PN,General Needs,House,1989,Traditional,Natural gas (mains) +4 Towersey Way,Aylesbury,Bucks,,HP21 8PN,General Needs,House,1989,Traditional,Natural gas (mains) +5 Towersey Way,Aylesbury,Bucks,,HP21 8PN,General Needs,House,1989,Traditional,Natural gas (mains) +7 Towersey Way,Aylesbury,Bucks,,HP21 8PN,General Needs,House,1989,Traditional,Natural gas (mains) +9 Towersey Way,Aylesbury,Bucks,,HP21 8PN,General Needs,House,1989,Traditional,Natural gas (mains) +10 Towersey Way,Aylesbury,Bucks,,HP21 8PN,General Needs,House,1989,Traditional,Natural gas (mains) +12 Towersey Way,Aylesbury,Bucks,,HP21 8PN,General Needs,House,1989,Traditional,Natural gas (mains) +15 Towersey Way,Aylesbury,Bucks,,HP21 8PN,General Needs,House,1989,Traditional,Natural gas (mains) +16 Towersey Way,Aylesbury,Bucks,,HP21 8PN,General Needs,House,1989,Traditional,Natural gas (mains) +17 Towersey Way,Aylesbury,Bucks,,HP21 8PN,General Needs,House,1989,Traditional,Natural gas (mains) +18 Towersey Way,Aylesbury,Bucks,,HP21 8PN,General Needs,House,1989,Traditional,Natural gas (mains) +19 Towersey Way,Aylesbury,Bucks,,HP21 8PN,General Needs,House,1989,Traditional,Natural gas (mains) +20 Towersey Way,Aylesbury,Bucks,,HP21 8PN,General Needs,House,1989,Traditional,Natural gas (mains) +22 Towersey Way,Aylesbury,Bucks,,HP21 8PN,General Needs,House,1989,Traditional,Natural gas (mains) +23 Towersey Way,Aylesbury,Bucks,,HP21 8PN,General Needs,House,1989,Traditional,Natural gas (mains) +25 Towersey Way,Aylesbury,Bucks,,HP21 8PN,General Needs,House,1989,Traditional,Natural gas (mains) +27 Towersey Way,Aylesbury,Bucks,,HP21 8PN,General Needs,House,1989,Traditional,Natural gas (mains) +28 Towersey Way,Aylesbury,Bucks,,HP21 8PN,General Needs,House,1989,Traditional,Natural gas (mains) +29 Towersey Way,Aylesbury,Bucks,,HP21 8PN,General Needs,Bungalow,1989,Traditional,Natural gas (mains) +30 Towersey Way,Aylesbury,Bucks,,HP21 8PN,General Needs,Bungalow,1989,Traditional,Natural gas (mains) +31 Towersey Way,Aylesbury,Bucks,,HP21 8PN,General Needs,Bungalow,1989,Traditional,Natural gas (mains) +32 Towersey Way,Aylesbury,Bucks,,HP21 8PN,General Needs,Bungalow,1989,Traditional,Natural gas (mains) +33 Towersey Way,Aylesbury,Bucks,,HP21 8PN,General Needs,Bungalow,1989,Traditional,Natural gas (mains) +34 Towersey Way,Aylesbury,Bucks,,HP21 8PN,General Needs,Bungalow,1989,Traditional,Natural gas (mains) +35 Towersey Way,Aylesbury,Bucks,,HP21 8PN,General Needs,Bungalow,1989,Traditional,Natural gas (mains) +36 Towersey Way,Aylesbury,Bucks,,HP21 8PN,General Needs,Bungalow,1989,Traditional,Natural gas (mains) +1 Lavric Road,Aylesbury,Bucks,,HP21 8PQ,General Needs,Flat,1976,Traditional,Natural gas (mains) +5 Lavric Road,Aylesbury,Bucks,,HP21 8PQ,General Needs,Maisonette,1976,Traditional,Natural gas (mains) +7 Lavric Road,Aylesbury,Bucks,,HP21 8PQ,General Needs,Flat,1976,Traditional,Natural gas (mains) +9 Lavric Road,Aylesbury,Bucks,,HP21 8PQ,General Needs,Maisonette,1976,Traditional,Natural gas (mains) +15 Lavric Road,Aylesbury,Bucks,,HP21 8PQ,General Needs,Maisonette,1976,Traditional,Natural gas (mains) +19 Lavric Road,Aylesbury,Bucks,,HP21 8PQ,General Needs,Flat,1976,Traditional,Natural gas (mains) +1 Sulby Close,Aylesbury,Bucks,,HP21 8PX,General Needs,House,1976,Traditional,Natural gas (mains) +2 Sulby Close,Aylesbury,Bucks,,HP21 8PX,General Needs,House,1976,Traditional,Natural gas (mains) +4 Sulby Close,Aylesbury,Bucks,,HP21 8PX,General Needs,House,1976,Traditional,Natural gas (mains) +9 Sulby Close,Aylesbury,Bucks,,HP21 8PX,General Needs,House,1980,Traditional,Natural gas (mains) +10 Sulby Close,Aylesbury,Bucks,,HP21 8PX,General Needs,House,1980,Traditional,Natural gas (mains) +12 Sulby Close,Aylesbury,Bucks,,HP21 8PX,General Needs,House,1980,Traditional,Natural gas (mains) +15 Sulby Close,Aylesbury,Bucks,,HP21 8PX,General Needs,House,1980,Traditional,Natural gas (mains) +1 Ellen Place,Aylesbury,Bucks,,HP21 8PY,General Needs,Flat,1976,Traditional,Natural gas (mains) +2 Ellen Place,Aylesbury,Bucks,,HP21 8PY,General Needs,Flat,1976,Traditional,Natural gas (mains) +3 Ellen Place,Aylesbury,Bucks,,HP21 8PY,General Needs,Flat,1976,Traditional,Natural gas (mains) +4 Ellen Place,Aylesbury,Bucks,,HP21 8PY,General Needs,Flat,1976,Traditional,Natural gas (mains) +5 Ellen Place,Aylesbury,Bucks,,HP21 8PY,General Needs,Flat,1976,Traditional,Natural gas (mains) +6 Ellen Place,Aylesbury,Bucks,,HP21 8PY,General Needs,Flat,1976,Traditional,Natural gas (mains) +7 Ellen Place,Aylesbury,Bucks,,HP21 8PY,General Needs,Flat,1976,Traditional,Natural gas (mains) +9 Ellen Place,Aylesbury,Bucks,,HP21 8PY,General Needs,Flat,1976,Traditional,Natural gas (mains) +10 Ellen Place,Aylesbury,Bucks,,HP21 8PY,General Needs,Flat,1976,Traditional,Natural gas (mains) +11 Ellen Place,Aylesbury,Bucks,,HP21 8PY,General Needs,Flat,1976,Traditional,Natural gas (mains) +12 Ellen Place,Aylesbury,Bucks,,HP21 8PY,General Needs,Flat,1976,Traditional,Natural gas (mains) +13 Ellen Place,Aylesbury,Bucks,,HP21 8PY,General Needs,Flat,1976,Traditional,Natural gas (mains) +4 Hamble Drive,Aylesbury,Bucks,,HP21 8QA,General Needs,Flat,1976,Traditional,Natural gas (mains) +8 Hamble Drive,Aylesbury,Bucks,,HP21 8QA,General Needs,House,1976,Traditional,Natural gas (mains) +9 Hamble Drive,Aylesbury,Bucks,,HP21 8QA,General Needs,Flat,1976,Traditional,Natural gas (mains) +10 Hamble Drive,Aylesbury,Bucks,,HP21 8QA,General Needs,House,1976,Traditional,Natural gas (mains) +11 Hamble Drive,Aylesbury,Bucks,,HP21 8QA,General Needs,Flat,1976,Traditional,Natural gas (mains) +12 Hamble Drive,Aylesbury,Bucks,,HP21 8QA,General Needs,House,1976,Traditional,Natural gas (mains) +14 Hamble Drive,Aylesbury,Bucks,,HP21 8QA,General Needs,House,1976,Traditional,Natural gas (mains) +9 Churchmere Walk,Aylesbury,Bucks,,HP21 8QB,General Needs,House,1976,Traditional,Natural gas (mains) +3 Cornbrook Road,Aylesbury,Bucks,,HP21 8QD,General Needs,House,1975,Traditional,Natural gas (mains) +9 Cornbrook Road,Aylesbury,Bucks,,HP21 8QD,General Needs,Flat,1976,Traditional,Natural gas (mains) +10 Cornbrook Road,Aylesbury,Bucks,,HP21 8QD,General Needs,House,1980,Traditional,Natural gas (mains) +11 Cornbrook Road,Aylesbury,Bucks,,HP21 8QD,General Needs,House,1980,Traditional,Natural gas (mains) +12 Cornbrook Road,Aylesbury,Bucks,,HP21 8QD,General Needs,House,1980,Traditional,Natural gas (mains) +13 Cornbrook Road,Aylesbury,Bucks,,HP21 8QD,General Needs,House,1981,Traditional,Natural gas (mains) +15 Cornbrook Road,Aylesbury,Bucks,,HP21 8QD,General Needs,House,1981,Traditional,Natural gas (mains) +19 Cornbrook Road,Aylesbury,Bucks,,HP21 8QD,General Needs,House,1981,Traditional,Natural gas (mains) +23 Cornbrook Road,Aylesbury,Bucks,,HP21 8QD,General Needs,House,1981,Traditional,Natural gas (mains) +27 Cornbrook Road,Aylesbury,Bucks,,HP21 8QD,General Needs,House,1981,Traditional,Natural gas (mains) +31 Cornbrook Road,Aylesbury,Bucks,,HP21 8QD,General Needs,House,1981,Traditional,Natural gas (mains) +32 Cornbrook Road,Aylesbury,Bucks,,HP21 8QD,General Needs,House,1981,Traditional,Natural gas (mains) +35 Cornbrook Road,Aylesbury,Bucks,,HP21 8QD,General Needs,House,1981,Traditional,Natural gas (mains) +75 Cornbrook Road,Aylesbury,Bucks,,HP21 8QD,General Needs,House,1982,Traditional,Natural gas (mains) +29 Cornbrook Road,Aylesbury,Bucks,,HP21 8QY,General Needs,House,1981,Traditional,Natural gas (mains) +39 Cornbrook Road,Aylesbury,Bucks,,HP21 8QY,General Needs,House,1981,Traditional,Natural gas (mains) +40 Cornbrook Road,Aylesbury,Bucks,,HP21 8QY,General Needs,House,1981,Traditional,Natural gas (mains) +49 Cornbrook Road,Aylesbury,Bucks,,HP21 8QY,General Needs,House,1981,Traditional,Natural gas (mains) +52 Cornbrook Road,Aylesbury,Bucks,,HP21 8QY,General Needs,House,1980,Traditional,Natural gas (mains) +62 Cornbrook Road,Aylesbury,Bucks,,HP21 8QY,General Needs,House,1980,Traditional,Natural gas (mains) +63 Cornbrook Road,Aylesbury,Bucks,,HP21 8QY,General Needs,House,1982,Traditional,Natural gas (mains) +68 Cornbrook Road,Aylesbury,Bucks,,HP21 8QY,General Needs,House,1980,Traditional,Natural gas (mains) +69 Cornbrook Road,Aylesbury,Bucks,,HP21 8QY,General Needs,House,1982,Traditional,Natural gas (mains) +76 Cornbrook Road,Aylesbury,Bucks,,HP21 8QY,General Needs,House,1980,Traditional,Natural gas (mains) +77 Cornbrook Road,Aylesbury,Bucks,,HP21 8QY,General Needs,House,1982,Traditional,Natural gas (mains) +78 Cornbrook Road,Aylesbury,Bucks,,HP21 8QY,General Needs,House,1980,Traditional,Natural gas (mains) +79 Cornbrook Road,Aylesbury,Bucks,,HP21 8QY,General Needs,House,1982,Traditional,Natural gas (mains) +80 Cornbrook Road,Aylesbury,Bucks,,HP21 8QY,General Needs,House,1980,Traditional,Natural gas (mains) +84 Cornbrook Road,Aylesbury,Bucks,,HP21 8QY,General Needs,House,1980,Traditional,Natural gas (mains) +7 Ebble Close,Aylesbury,Bucks,,HP21 8RJ,General Needs,House,1977,Traditional,Natural gas (mains) +8 Ebble Close,Aylesbury,Bucks,,HP21 8RJ,General Needs,House,1977,Traditional,Natural gas (mains) +10 Ebble Close,Aylesbury,Bucks,,HP21 8RJ,General Needs,House,1977,Traditional,Natural gas (mains) +14 Ebble Close,Aylesbury,Bucks,,HP21 8RJ,General Needs,Flat,1977,Traditional,Natural gas (mains) +15 Ebble Close,Aylesbury,Bucks,,HP21 8RJ,General Needs,House,1977,Traditional,Natural gas (mains) +18 Ebble Close,Aylesbury,Bucks,,HP21 8RJ,General Needs,Maisonette,1977,Traditional,Natural gas (mains) +20 Ebble Close,Aylesbury,Bucks,,HP21 8RJ,General Needs,Flat,1977,Traditional,Natural gas (mains) +29 Ebble Close,Aylesbury,Bucks,,HP21 8RJ,General Needs,House,1977,Traditional,Natural gas (mains) +31 Ebble Close,Aylesbury,Bucks,,HP21 8RJ,General Needs,House,1977,Traditional,Natural gas (mains) +33 Ebble Close,Aylesbury,Bucks,,HP21 8RJ,General Needs,Flat,1978,Traditional,Natural gas (mains) +37 Ebble Close,Aylesbury,Bucks,,HP21 8RJ,General Needs,Maisonette,1978,Traditional,Natural gas (mains) +39 Ebble Close,Aylesbury,Bucks,,HP21 8RJ,General Needs,Flat,1978,Traditional,Natural gas (mains) +45 Ebble Close,Aylesbury,Bucks,,HP21 8RJ,General Needs,Flat,1978,Traditional,Natural gas (mains) +47 Ebble Close,Aylesbury,Bucks,,HP21 8RJ,General Needs,Maisonette,1978,Traditional,Natural gas (mains) +49 Ebble Close,Aylesbury,Bucks,,HP21 8RJ,General Needs,Flat,1978,Traditional,Natural gas (mains) +53 Ebble Close,Aylesbury,Bucks,,HP21 8RJ,General Needs,Maisonette,1978,Traditional,Natural gas (mains) +55 Ebble Close,Aylesbury,Bucks,,HP21 8RJ,General Needs,Flat,1978,Traditional,Natural gas (mains) +2 Kennet Close,Aylesbury,Bucks,,HP21 8RL,General Needs,House,1977,Traditional,Natural gas (mains) +4 Kennet Close,Aylesbury,Bucks,,HP21 8RL,General Needs,House,1977,Traditional,Natural gas (mains) +14 Kennet Close,Aylesbury,Bucks,,HP21 8RL,General Needs,Flat,1978,Traditional,Natural gas (mains) +15 Kennet Close,Aylesbury,Bucks,,HP21 8RL,General Needs,Maisonette,1978,Traditional,Natural gas (mains) +16 Kennet Close,Aylesbury,Bucks,,HP21 8RL,General Needs,Maisonette,1978,Traditional,Natural gas (mains) +17 Kennet Close,Aylesbury,Bucks,,HP21 8RL,General Needs,Flat,1978,Traditional,Natural gas (mains) +19 Kennet Close,Aylesbury,Bucks,,HP21 8RL,General Needs,Maisonette,1978,Traditional,Natural gas (mains) +22 Kennet Close,Aylesbury,Bucks,,HP21 8RL,General Needs,House,1978,Traditional,Natural gas (mains) +6 Alwin Close,Aylesbury,Bucks,,HP21 8RP,General Needs,Bungalow,1977,Traditional,Natural gas (mains) +7 Alwin Close,Aylesbury,Bucks,,HP21 8RP,General Needs,Bungalow,1977,Traditional,Natural gas (mains) +8 Alwin Close,Aylesbury,Bucks,,HP21 8RP,General Needs,House,1977,Traditional,Natural gas (mains) +11 Alwin Close,Aylesbury,Bucks,,HP21 8RP,General Needs,House,1977,Traditional,Natural gas (mains) +16 Alwin Close,Aylesbury,Bucks,,HP21 8RP,General Needs,House,1977,Traditional,Natural gas (mains) +23 Alwin Close,Aylesbury,Bucks,,HP21 8RP,General Needs,House,1977,Traditional,Natural gas (mains) +39 Alwin Close,Aylesbury,Bucks,,HP21 8RP,General Needs,Maisonette,1978,Traditional,Natural gas (mains) +40 Alwin Close,Aylesbury,Bucks,,HP21 8RP,General Needs,Flat,1978,Traditional,Natural gas (mains) +41 Alwin Close,Aylesbury,Bucks,,HP21 8RP,General Needs,Maisonette,1978,Traditional,Natural gas (mains) +4 Lynher Close,Aylesbury,Bucks,,HP21 8RW,General Needs,House,1977,Traditional,Natural gas (mains) +5 Lynher Close,Aylesbury,Bucks,,HP21 8RW,General Needs,Flat,1978,Traditional,Natural gas (mains) +6 Lynher Close,Aylesbury,Bucks,,HP21 8RW,General Needs,Maisonette,1978,Traditional,Natural gas (mains) +7 Lynher Close,Aylesbury,Bucks,,HP21 8RW,General Needs,Maisonette,1978,Traditional,Natural gas (mains) +8 Lynher Close,Aylesbury,Bucks,,HP21 8RW,General Needs,Flat,1978,Traditional,Natural gas (mains) +9 Lynher Close,Aylesbury,Bucks,,HP21 8RW,General Needs,Maisonette,1978,Traditional,Natural gas (mains) +10 Lynher Close,Aylesbury,Bucks,,HP21 8RW,General Needs,Flat,1978,Traditional,Natural gas (mains) +13 Lynher Close,Aylesbury,Bucks,,HP21 8RW,General Needs,House,1977,Traditional,Natural gas (mains) +14 Lynher Close,Aylesbury,Bucks,,HP21 8RW,General Needs,House,1977,Traditional,Natural gas (mains) +15 Lynher Close,Aylesbury,Bucks,,HP21 8RW,General Needs,House,1977,Traditional,Natural gas (mains) +18 Lynher Close,Aylesbury,Bucks,,HP21 8RW,General Needs,House,1977,Traditional,Natural gas (mains) +22 Lynher Close,Aylesbury,Bucks,,HP21 8RW,General Needs,Bungalow,1977,Traditional,Natural gas (mains) +24 Hamble Drive,Aylesbury,Bucks,,HP21 8RZ,General Needs,House,1979,Traditional,Natural gas (mains) +32 Hamble Drive,Aylesbury,Bucks,,HP21 8RZ,General Needs,House,1981,Traditional,Natural gas (mains) +35 Hamble Drive,Aylesbury,Bucks,,HP21 8RZ,General Needs,House,1981,Traditional,Natural gas (mains) +36 Hamble Drive,Aylesbury,Bucks,,HP21 8RZ,General Needs,House,1981,Traditional,Natural gas (mains) +37 Hamble Drive,Aylesbury,Bucks,,HP21 8RZ,General Needs,House,1981,Traditional,Natural gas (mains) +48 Hamble Drive,Aylesbury,Bucks,,HP21 8RZ,General Needs,House,1981,Traditional,Natural gas (mains) +52 Hamble Drive,Aylesbury,Bucks,,HP21 8RZ,General Needs,House,1981,Traditional,Natural gas (mains) +54 Hamble Drive,Aylesbury,Bucks,,HP21 8RZ,General Needs,House,1981,Traditional,Natural gas (mains) +1 Cole Road,Aylesbury,Bucks,,HP21 8SU,General Needs,House,1979,Traditional,Natural gas (mains) +11 Cole Road,Aylesbury,Bucks,,HP21 8SU,General Needs,House,1979,Traditional,Natural gas (mains) +15 Cole Road,Aylesbury,Bucks,,HP21 8SU,General Needs,House,1979,Traditional,Natural gas (mains) +19 Cole Road,Aylesbury,Bucks,,HP21 8SU,General Needs,House,1979,Traditional,Natural gas (mains) +42 Plym Close,Aylesbury,Bucks,,HP21 8SX,General Needs,Bungalow,1980,Traditional,Natural gas (mains) +48 Plym Close,Aylesbury,Bucks,,HP21 8SX,General Needs,House,1980,Traditional,Natural gas (mains) +50 Plym Close,Aylesbury,Bucks,,HP21 8SX,General Needs,House,1980,Traditional,Natural gas (mains) +56 Plym Close,Aylesbury,Bucks,,HP21 8SX,General Needs,House,1980,Traditional,Natural gas (mains) +58 Plym Close,Aylesbury,Bucks,,HP21 8SX,General Needs,House,1980,Traditional,Natural gas (mains) +66 Plym Close,Aylesbury,Bucks,,HP21 8SX,General Needs,House,1980,Traditional,Natural gas (mains) +6 Plym Close,Aylesbury,Bucks,,HP21 8SY,General Needs,House,1980,Traditional,Natural gas (mains) +10 Plym Close,Aylesbury,Bucks,,HP21 8SY,General Needs,House,1980,Traditional,Natural gas (mains) +14 Plym Close,Aylesbury,Bucks,,HP21 8SY,General Needs,House,1980,Traditional,Natural gas (mains) +18 Plym Close,Aylesbury,Bucks,,HP21 8SY,General Needs,House,1980,Traditional,Natural gas (mains) +20 Plym Close,Aylesbury,Bucks,,HP21 8SY,General Needs,House,1980,Traditional,Natural gas (mains) +26 Plym Close,Aylesbury,Bucks,,HP21 8SY,General Needs,House,1980,Traditional,Natural gas (mains) +38 Plym Close,Aylesbury,Bucks,,HP21 8SY,General Needs,House,1980,Traditional,Natural gas (mains) +2 Blyth Close,Aylesbury,Bucks,,HP21 8TA,General Needs,House,1979,Traditional,Natural gas (mains) +4 Blyth Close,Aylesbury,Bucks,,HP21 8TA,General Needs,House,1979,Traditional,Natural gas (mains) +8 Blyth Close,Aylesbury,Bucks,,HP21 8TA,General Needs,House,1979,Traditional,Natural gas (mains) +10 Blyth Close,Aylesbury,Bucks,,HP21 8TA,General Needs,House,1979,Traditional,Natural gas (mains) +3 Evenlode Close,Aylesbury,Bucks,,HP21 8TB,General Needs,House,1980,Traditional,Natural gas (mains) +4 Evenlode Close,Aylesbury,Bucks,,HP21 8TB,General Needs,House,1980,Traditional,Natural gas (mains) +8 Evenlode Close,Aylesbury,Bucks,,HP21 8TB,General Needs,House,1980,Traditional,Natural gas (mains) +10 Evenlode Close,Aylesbury,Bucks,,HP21 8TB,General Needs,House,1980,Traditional,Natural gas (mains) +11 Evenlode Close,Aylesbury,Bucks,,HP21 8TB,General Needs,House,1980,Traditional,Natural gas (mains) +14 Evenlode Close,Aylesbury,Bucks,,HP21 8TB,General Needs,House,1980,Traditional,Natural gas (mains) +20 Evenlode Close,Aylesbury,Bucks,,HP21 8TB,General Needs,House,1980,Traditional,Natural gas (mains) +2A Thistle Court,Plym Close,Aylesbury,Bucks,HP21 8TD,Independent Living,Flat,1980,Traditional,Radiators - communal gas boiler +1 Thistle Court,Plym Close,Aylesbury,Bucks,HP21 8TD,General Needs,House,1980,Traditional,Radiators - communal gas boiler +2 Thistle Court,Plym Close,Aylesbury,Bucks,HP21 8TD,Independent Living,Flat,1980,Traditional,Radiators - communal gas boiler +3 Thistle Court,Plym Close,Aylesbury,Bucks,HP21 8TD,Independent Living,Flat,1980,Swedish Timber,Radiators - communal gas boiler +4 Thistle Court,Plym Close,Aylesbury,Bucks,HP21 8TD,Independent Living,Flat,1980,Swedish Timber,Radiators - communal gas boiler +5 Thistle Court,Plym Close,Aylesbury,Bucks,HP21 8TD,Independent Living,Flat,1980,Swedish Timber,Radiators - communal gas boiler +6 Thistle Court,Plym Close,Aylesbury,Bucks,HP21 8TD,Independent Living,Flat,1980,Swedish Timber,Radiators - communal gas boiler +7 Thistle Court,Plym Close,Aylesbury,Bucks,HP21 8TD,Independent Living,Flat,1980,Swedish Timber,Radiators - communal gas boiler +8 Thistle Court,Plym Close,Aylesbury,Bucks,HP21 8TD,Independent Living,Flat,1980,Swedish Timber,Radiators - communal gas boiler +9 Thistle Court,Plym Close,Aylesbury,Bucks,HP21 8TD,Independent Living,Flat,1980,Swedish Timber,Radiators - communal gas boiler +10 Thistle Court,Plym Close,Aylesbury,Bucks,HP21 8TD,Independent Living,Flat,1980,Swedish Timber,Radiators - communal gas boiler +11 Thistle Court,Plym Close,Aylesbury,Bucks,HP21 8TD,Independent Living,Flat,1980,Swedish Timber,Radiators - communal gas boiler +12 Thistle Court,Plym Close,Aylesbury,Bucks,HP21 8TD,Independent Living,Flat,1980,Swedish Timber,Radiators - communal gas boiler +13 Thistle Court,Plym Close,Aylesbury,Bucks,HP21 8TD,Independent Living,Flat,1980,Swedish Timber,Radiators - communal gas boiler +14 Thistle Court,Plym Close,Aylesbury,Bucks,HP21 8TD,Independent Living,Flat,1980,Swedish Timber,Radiators - communal gas boiler +15 Thistle Court,Plym Close,Aylesbury,Bucks,HP21 8TD,Independent Living,Flat,1980,Swedish Timber,Radiators - communal gas boiler +16 Thistle Court,Plym Close,Aylesbury,Bucks,HP21 8TD,Independent Living,Flat,1980,Swedish Timber,Radiators - communal gas boiler +17 Thistle Court,Plym Close,Aylesbury,Bucks,HP21 8TD,Independent Living,Flat,1980,Swedish Timber,Radiators - communal gas boiler +18 Thistle Court,Plym Close,Aylesbury,Bucks,HP21 8TD,Independent Living,Flat,1980,Swedish Timber,Radiators - communal gas boiler +19 Thistle Court,Plym Close,Aylesbury,Bucks,HP21 8TD,Independent Living,Flat,1980,Swedish Timber,Radiators - communal gas boiler +20 Thistle Court,Plym Close,Aylesbury,Bucks,HP21 8TD,Independent Living,Flat,1980,Swedish Timber,Radiators - communal gas boiler +21 Thistle Court,Plym Close,Aylesbury,Bucks,HP21 8TD,Independent Living,Flat,1980,Swedish Timber,Radiators - communal gas boiler +22 Thistle Court,Plym Close,Aylesbury,Bucks,HP21 8TD,Independent Living,Flat,1980,Swedish Timber,Radiators - communal gas boiler +23 Thistle Court,Plym Close,Aylesbury,Bucks,HP21 8TD,Independent Living,Flat,1980,Swedish Timber,Radiators - communal gas boiler +24 Thistle Court,Plym Close,Aylesbury,Bucks,HP21 8TD,Independent Living,Flat,1980,Swedish Timber,Radiators - communal gas boiler +25 Thistle Court,Plym Close,Aylesbury,Bucks,HP21 8TD,Independent Living,Flat,1980,Swedish Timber,Radiators - communal gas boiler +26 Thistle Court,Plym Close,Aylesbury,Bucks,HP21 8TD,Independent Living,Flat,1980,Swedish Timber,Radiators - communal gas boiler +27 Thistle Court,Plym Close,Aylesbury,Bucks,HP21 8TD,Independent Living,Flat,1980,Swedish Timber,Radiators - communal gas boiler +28 Thistle Court,Plym Close,Aylesbury,Bucks,HP21 8TD,Independent Living,Flat,1980,Swedish Timber,Radiators - communal gas boiler +29 Thistle Court,Plym Close,Aylesbury,Bucks,HP21 8TD,Independent Living,Flat,1980,Swedish Timber,Radiators - communal gas boiler +30 Thistle Court,Plym Close,Aylesbury,Bucks,HP21 8TD,Independent Living,Flat,1980,Swedish Timber,Radiators - communal gas boiler +31 Thistle Court,Plym Close,Aylesbury,Bucks,HP21 8TD,Independent Living,Flat,1980,Swedish Timber,Radiators - communal gas boiler +32 Thistle Court,Plym Close,Aylesbury,Bucks,HP21 8TD,Independent Living,Flat,1980,Swedish Timber,Radiators - communal gas boiler +33 Thistle Court,Plym Close,Aylesbury,Bucks,HP21 8TD,Independent Living,Flat,1980,Swedish Timber,Radiators - communal gas boiler +34 Thistle Court,Plym Close,Aylesbury,Bucks,HP21 8TD,Independent Living,Flat,1980,Swedish Timber,Radiators - communal gas boiler +35 Thistle Court,Plym Close,Aylesbury,Bucks,HP21 8TD,Independent Living,Flat,1980,Swedish Timber,Radiators - communal gas boiler +36 Thistle Court,Plym Close,Aylesbury,Bucks,HP21 8TD,Independent Living,Flat,1980,Swedish Timber,Radiators - communal gas boiler +12 Walton Court Centre,Hannon Road,Aylesbury,Bucks,HP21 8TJ,General Needs,Flat,1981,Traditional,Natural gas (mains) +13 Walton Court Centre,Hannon Road,Aylesbury,Bucks,HP21 8TJ,General Needs,Maisonette,1981,Traditional,Natural gas (mains) +15 Walton Court Centre,Hannon Road,Aylesbury,Bucks,HP21 8TJ,General Needs,Maisonette,1981,Traditional,Natural gas (mains) +16 Walton Court Centre,Hannon Road,Aylesbury,Bucks,HP21 8TJ,General Needs,Flat,1981,Traditional,Natural gas (mains) +17 Walton Court Centre,Hannon Road,Aylesbury,Bucks,HP21 8TJ,General Needs,Maisonette,1981,Traditional,Natural gas (mains) +18 Walton Court Centre,Hannon Road,Aylesbury,Bucks,HP21 8TJ,General Needs,Flat,1981,Traditional,Natural gas (mains) +19 Walton Court Centre,Hannon Road,Aylesbury,Bucks,HP21 8TJ,General Needs,Flat,1981,Traditional,Natural gas (mains) +20 Walton Court Centre,Hannon Road,Aylesbury,Bucks,HP21 8TJ,General Needs,Flat,1981,Traditional,Natural gas (mains) +22 Walton Court Centre,Hannon Road,Aylesbury,Bucks,HP21 8TJ,General Needs,Flat,1981,Traditional,Natural gas (mains) +26 Walton Court Centre,Hannon Road,Aylesbury,Bucks,HP21 8TJ,General Needs,Flat,1981,Traditional,Natural gas (mains) +29 Walton Court Centre,Hannon Road,Aylesbury,Bucks,HP21 8TJ,General Needs,Flat,1981,Traditional,Natural gas (mains) +30 Walton Court Centre,Hannon Road,Aylesbury,Bucks,HP21 8TJ,General Needs,Flat,1981,Traditional,Natural gas (mains) +31 Walton Court Centre,Hannon Road,Aylesbury,Bucks,HP21 8TJ,General Needs,Flat,1981,Traditional,Natural gas (mains) +32 Walton Court Centre,Hannon Road,Aylesbury,Bucks,HP21 8TJ,General Needs,Flat,1981,Traditional,Natural gas (mains) +35 Walton Court Centre,Hannon Road,Aylesbury,Bucks,HP21 8TJ,General Needs,Maisonette,1981,Traditional,Natural gas (mains) +37 Walton Court Centre,Hannon Road,Aylesbury,Bucks,HP21 8TJ,General Needs,Maisonette,1981,Traditional,Natural gas (mains) +38 Walton Court Centre,Hannon Road,Aylesbury,Bucks,HP21 8TJ,General Needs,Flat,1981,Traditional,Natural gas (mains) +39 Walton Court Centre,Hannon Road,Aylesbury,Bucks,HP21 8TJ,General Needs,Maisonette,1981,Traditional,Natural gas (mains) +40 Walton Court Centre,Hannon Road,Aylesbury,Bucks,HP21 8TJ,General Needs,Flat,1981,Traditional,Natural gas (mains) +43 Walton Court Centre,Hannon Road,Aylesbury,Bucks,HP21 8TJ,General Needs,Flat,1981,Traditional,Natural gas (mains) +44 Walton Court Centre,Hannon Road,Aylesbury,Bucks,HP21 8TJ,General Needs,Flat,1981,Traditional,Natural gas (mains) +47 Walton Court Centre,Hannon Road,Aylesbury,Bucks,HP21 8TJ,General Needs,Maisonette,1981,Traditional,Natural gas (mains) +48 Walton Court Centre,Hannon Road,Aylesbury,Bucks,HP21 8TJ,General Needs,Maisonette,1981,Traditional,Natural gas (mains) +28 Walton Court Centre,Hannon Road,Aylesbury,Bucks,HP21 8TJ,General Needs,Maisonette,1981,Traditional,Natural gas (mains) +50 Walton Court Centre,Hannon Road,Aylesbury,Bucks,HP21 8TJ,Live Work Units,Flat,1981,Traditional,Natural gas (mains) +51 Walton Court Centre,Hannon Road,Aylesbury,Bucks,HP21 8TJ,Live Work Units,Flat,1981,Traditional,Natural gas (mains) +52 Walton Court Centre,Hannon Road,Aylesbury,Bucks,HP21 8TJ,Live Work Units,Flat,1981,Traditional,Natural gas (mains) +53 Walton Court Centre,Hannon Road,Aylesbury,Bucks,HP21 8TJ,Live Work Units,Flat,1981,Traditional,Natural gas (mains) +54 Walton Court Centre,Hannon Road,Aylesbury,Bucks,HP21 8TJ,General Needs,Flat,1981,Traditional,Natural gas (mains) +55 Walton Court Centre,Hannon Road,Aylesbury,Bucks,HP21 8TJ,General Needs,Flat,1981,Traditional,Natural gas (mains) +56 Walton Court Centre,Hannon Road,Aylesbury,Bucks,HP21 8TJ,General Needs,Flat,1981,Traditional,Natural gas (mains) +57 Walton Court Centre,Hannon Road,Aylesbury,Bucks,HP21 8TJ,General Needs,Flat,1981,Traditional,Natural gas (mains) +58 Walton Court Centre,Hannon Road,Aylesbury,Bucks,HP21 8TJ,General Needs,Flat,1981,Traditional,Natural gas (mains) +59 Walton Court Centre,Hannon Road,Aylesbury,Bucks,HP21 8TJ,General Needs,Flat,1981,Traditional,Natural gas (mains) +60 Walton Court Centre,Hannon Road,Aylesbury,Bucks,HP21 8TJ,General Needs,Flat,1981,Traditional,Natural gas (mains) +61 Walton Court Centre,Hannon Road,Aylesbury,Bucks,HP21 8TJ,General Needs,Flat,1981,Traditional,Natural gas (mains) +62 Walton Court Centre,Hannon Road,Aylesbury,Bucks,HP21 8TJ,General Needs,Flat,1981,Traditional,Natural gas (mains) +63 Walton Court Centre,Hannon Road,Aylesbury,Bucks,HP21 8TJ,General Needs,Flat,1981,Traditional,Natural gas (mains) +64 Walton Court Centre,Hannon Road,Aylesbury,Bucks,HP21 8TJ,General Needs,Flat,1981,Traditional,Natural gas (mains) +65 Walton Court Centre,Hannon Road,Aylesbury,Bucks,HP21 8TJ,General Needs,Flat,1981,Traditional,Natural gas (mains) +66 Walton Court Centre,Hannon Road,Aylesbury,Bucks,HP21 8TJ,General Needs,Flat,1981,Traditional,Natural gas (mains) +67 Walton Court Centre,Hannon Road,Aylesbury,Bucks,HP21 8TJ,General Needs,Flat,1981,Traditional,Natural gas (mains) +68 Walton Court Centre,Hannon Road,Aylesbury,Bucks,HP21 8TJ,General Needs,Flat,1981,Traditional,Natural gas (mains) +69 Walton Court Centre,Hannon Road,Aylesbury,Bucks,HP21 8TJ,General Needs,Flat,1981,Traditional,Natural gas (mains) +70 Walton Court Centre,Hannon Road,Aylesbury,Bucks,HP21 8TJ,General Needs,Flat,1981,Traditional,Natural gas (mains) +2 Cherwell Road,Aylesbury,Bucks,,HP21 8TN,General Needs,House,1981,Traditional,Natural gas (mains) +8 Cherwell Road,Aylesbury,Bucks,,HP21 8TN,General Needs,House,1981,Traditional,Natural gas (mains) +10 Cherwell Road,Aylesbury,Bucks,,HP21 8TN,General Needs,House,1981,Traditional,Natural gas (mains) +12 Cherwell Road,Aylesbury,Bucks,,HP21 8TN,General Needs,House,1981,Traditional,Natural gas (mains) +18 Cherwell Road,Aylesbury,Bucks,,HP21 8TN,General Needs,House,1981,Traditional,Natural gas (mains) +22 Cherwell Road,Aylesbury,Bucks,,HP21 8TN,General Needs,House,1981,Traditional,Natural gas (mains) +30 Cherwell Road,Aylesbury,Bucks,,HP21 8TN,General Needs,House,1981,Traditional,Natural gas (mains) +34 Cherwell Road,Aylesbury,Bucks,,HP21 8TN,General Needs,Bungalow,1982,Traditional,Natural gas (mains) +38 Cherwell Road,Aylesbury,Bucks,,HP21 8TN,General Needs,House,1981,Traditional,Natural gas (mains) +40 Cherwell Road,Aylesbury,Bucks,,HP21 8TN,General Needs,House,1981,Traditional,Natural gas (mains) +50 Cherwell Road,Aylesbury,Bucks,,HP21 8TN,General Needs,House,1981,Traditional,Natural gas (mains) +2 Humber Drive,Aylesbury,Bucks,,HP21 8TP,General Needs,House,1981,Traditional,Natural gas (mains) +4 Humber Drive,Aylesbury,Bucks,,HP21 8TP,General Needs,House,1981,Traditional,Natural gas (mains) +5 Humber Drive,Aylesbury,Bucks,,HP21 8TP,General Needs,House,1981,Traditional,Natural gas (mains) +11 Humber Drive,Aylesbury,Bucks,,HP21 8TP,General Needs,House,1981,Traditional,Natural gas (mains) +12 Humber Drive,Aylesbury,Bucks,,HP21 8TP,General Needs,House,1981,Traditional,Natural gas (mains) +15 Humber Drive,Aylesbury,Bucks,,HP21 8TP,General Needs,House,1981,Traditional,Natural gas (mains) +18 Humber Drive,Aylesbury,Bucks,,HP21 8TP,General Needs,House,1981,Traditional,Natural gas (mains) +19 Humber Drive,Aylesbury,Bucks,,HP21 8TP,General Needs,House,1981,Traditional,Natural gas (mains) +21 Humber Drive,Aylesbury,Bucks,,HP21 8TP,General Needs,House,1981,Traditional,Natural gas (mains) +22 Humber Drive,Aylesbury,Bucks,,HP21 8TP,General Needs,House,1981,Traditional,Natural gas (mains) +23 Humber Drive,Aylesbury,Bucks,,HP21 8TP,General Needs,House,1981,Traditional,Natural gas (mains) +25 Humber Drive,Aylesbury,Bucks,,HP21 8TP,General Needs,House,1981,Traditional,Natural gas (mains) +26 Humber Drive,Aylesbury,Bucks,,HP21 8TP,General Needs,House,1981,Traditional,Natural gas (mains) +28 Humber Drive,Aylesbury,Bucks,,HP21 8TP,General Needs,House,1981,Traditional,Natural gas (mains) +37 Humber Drive,Aylesbury,Bucks,,HP21 8TP,General Needs,House,1981,Traditional,Natural gas (mains) +1 Cherwell Road,Aylesbury,Bucks,,HP21 8TW,General Needs,House,1981,Traditional,Natural gas (mains) +9 Cherwell Road,Aylesbury,Bucks,,HP21 8TW,General Needs,House,1981,Traditional,Natural gas (mains) +25 Cherwell Road,Aylesbury,Bucks,,HP21 8TW,General Needs,House,1981,Traditional,Natural gas (mains) +29 Cherwell Road,Aylesbury,Bucks,,HP21 8TW,General Needs,House,1981,Traditional,Natural gas (mains) +35 Cherwell Road,Aylesbury,Bucks,,HP21 8TW,General Needs,House,1981,Traditional,Natural gas (mains) +41 Cherwell Road,Aylesbury,Bucks,,HP21 8TW,General Needs,House,1981,Traditional,Natural gas (mains) +43 Cherwell Road,Aylesbury,Bucks,,HP21 8TW,General Needs,House,1981,Traditional,Natural gas (mains) +45 Cherwell Road,Aylesbury,Bucks,,HP21 8TW,General Needs,House,1981,Traditional,Natural gas (mains) +47 Cherwell Road,Aylesbury,Bucks,,HP21 8TW,General Needs,House,1981,Traditional,Natural gas (mains) +53 Cherwell Road,Aylesbury,Bucks,,HP21 8TW,General Needs,House,1981,Traditional,Natural gas (mains) +1 Gainsborough Road,Aylesbury,Bucks,,HP21 9AZ,General Needs,House,1955,Traditional,Natural gas (mains) +2 Gainsborough Road,Aylesbury,Bucks,,HP21 9AZ,General Needs,House,1955,Traditional,Natural gas (mains) +5 Gainsborough Road,Aylesbury,Bucks,,HP21 9AZ,General Needs,House,1955,Traditional,Natural gas (mains) +8 Gainsborough Road,Aylesbury,Bucks,,HP21 9AZ,General Needs,House,1955,Traditional,Natural gas (mains) +12 Gainsborough Road,Aylesbury,Bucks,,HP21 9AZ,General Needs,House,1955,Traditional,Natural gas (mains) +15 Gainsborough Road,Aylesbury,Bucks,,HP21 9AZ,General Needs,Flat,1955,Traditional,Natural gas (mains) +16 Gainsborough Road,Aylesbury,Bucks,,HP21 9AZ,General Needs,House,1955,Traditional,Natural gas (mains) +21 Gainsborough Road,Aylesbury,Bucks,,HP21 9AZ,General Needs,Flat,1955,Traditional,Natural gas (mains) +7 Harvest Close,Aylesbury,,,HP21 9FA,General Needs,House,2017,Traditional,Natural gas (mains) +9 Harvest Close,Aylesbury,,,HP21 9FA,General Needs,House,2017,Traditional,Natural gas (mains) +11 Harvest Close,Aylesbury,,,HP21 9FA,General Needs,House,2017,Traditional,Natural gas (mains) +15 Harvest Close,Aylesbury,,,HP21 9FA,General Needs,House,2017,Traditional,Natural gas (mains) +17 Harvest Close,Aylesbury,,,HP21 9FA,General Needs,House,2017,Traditional,Natural gas (mains) +19 Harvest Close,Aylesbury,,,HP21 9FA,General Needs,House,2017,Traditional,Natural gas (mains) +28 Gwendoline Buck Drive,Stoke Mandeville,Aylesbury,,HP21 9FY,General Needs,House,2015,Traditional,Natural gas (mains) +30 Gwendoline Buck Drive,Stoke Mandeville,Aylesbury,,HP21 9FY,General Needs,House,2015,Traditional,Natural gas (mains) +32 Gwendoline Buck Drive,Stoke Mandeville,Aylesbury,,HP21 9FY,General Needs,House,2015,Traditional,Natural gas (mains) +34 Gwendoline Buck Drive,Stoke Mandeville,Aylesbury,,HP21 9FY,General Needs,House,2015,Traditional,Natural gas (mains) +72 Gwendoline Buck Drive,Stoke Mandeville,Aylesbury,,HP21 9FY,General Needs,Flat,2015,Traditional,Natural gas (mains) +74 Gwendoline Buck Drive,Stoke Mandeville,Aylesbury,,HP21 9FY,General Needs,Flat,2015,Traditional,Natural gas (mains) +76 Gwendoline Buck Drive,Stoke Mandeville,Aylesbury,,HP21 9FY,General Needs,Flat,2015,Traditional,Natural gas (mains) +78 Gwendoline Buck Drive,Stoke Mandeville,Aylesbury,,HP21 9FY,General Needs,Flat,2015,Traditional,Natural gas (mains) +80 Gwendoline Buck Drive,Stoke Mandeville,Aylesbury,,HP21 9FY,General Needs,Flat,2015,Traditional,Natural gas (mains) +82 Gwendoline Buck Drive,Stoke Mandeville,Aylesbury,,HP21 9FY,General Needs,Flat,2015,Traditional,Natural gas (mains) +84 Gwendoline Buck Drive,Stoke Mandeville,Aylesbury,,HP21 9FY,General Needs,Flat,2015,Traditional,Natural gas (mains) +86 Gwendoline Buck Drive,Stoke Mandeville,Aylesbury,,HP21 9FY,General Needs,Flat,2015,Traditional,Natural gas (mains) +88 Gwendoline Buck Drive,Stoke Mandeville,Aylesbury,,HP21 9FY,General Needs,Flat,2015,Traditional,Natural gas (mains) +90 Gwendoline Buck Drive,Stoke Mandeville,Aylesbury,,HP21 9FY,General Needs,Flat,2015,Traditional,Natural gas (mains) +92 Gwendoline Buck Drive,Stoke Mandeville,Aylesbury,,HP21 9FY,General Needs,Flat,2015,Traditional,Natural gas (mains) +94 Gwendoline Buck Drive,Stoke Mandeville,Aylesbury,,HP21 9FY,General Needs,Flat,2015,Traditional,Natural gas (mains) +10 Atlanta Way,Stoke Mandeville,Aylesbury,,HP21 9GT,General Needs,House,2019,Traditional,Natural gas (mains) +11 Atlanta Way,Stoke Mandeville,Aylesbury,,HP21 9GT,General Needs,House,2019,Traditional,Natural gas (mains) +12 Atlanta Way,Stoke Mandeville,Aylesbury,,HP21 9GT,General Needs,House,2019,Traditional,Natural gas (mains) +14 Atlanta Way,Stoke Mandeville,Aylesbury,,HP21 9GT,General Needs,House,2019,Traditional,Natural gas (mains) +15 Atlanta Way,Stoke Mandeville,Aylesbury,,HP21 9GT,General Needs,Flat,2019,Traditional,Natural gas (mains) +16 Atlanta Way,Stoke Mandeville,Aylesbury,,HP21 9GT,General Needs,Flat,2019,Traditional,Natural gas (mains) +17 Atlanta Way,Stoke Mandeville,Aylesbury,,HP21 9GT,General Needs,Flat,2019,Traditional,Natural gas (mains) +18 Atlanta Way,Stoke Mandeville,Aylesbury,,HP21 9GT,General Needs,Flat,2019,Traditional,Natural gas (mains) +19 Atlanta Way,Stoke Mandeville,Aylesbury,,HP21 9GT,General Needs,Flat,2019,Traditional,Natural gas (mains) +20 Atlanta Way,Stoke Mandeville,Aylesbury,,HP21 9GT,General Needs,Flat,2019,Traditional,Natural gas (mains) +1 Barcelona Boulevard,Stoke Mandeville,Aylesbury,,HP21 9GU,General Needs,House,2022,Traditional,Natural gas (mains) +2 Barcelona Boulevard,Stoke Mandeville,Aylesbury,,HP21 9GU,General Needs,House,2021,Traditional,Natural gas (mains) +4 Barcelona Boulevard,Stoke Mandeville,Aylesbury,,HP21 9GU,General Needs,House,2021,Traditional,Natural gas (mains) +6 Barcelona Boulevard,Stoke Mandeville,Aylesbury,,HP21 9GU,General Needs,House,2021,Traditional,Natural gas (mains) +8 Barcelona Boulevard,Stoke Mandeville,Aylesbury,,HP21 9GU,General Needs,House,2021,Traditional,Natural gas (mains) +10 Barcelona Boulevard,Stoke Mandeville,Aylesbury,,HP21 9GU,General Needs,House,2021,Traditional,Natural gas (mains) +10 Athens Avenue,Stoke Mandeville,Aylesbury,,HP21 9GU,General Needs,House,2022,Traditional,Natural gas (mains) +10 Sydney Street,Stoke Mandeville,Aylesbury,,HP21 9GX,General Needs,House,2020,Traditional,Natural gas (mains) +12 Sydney Street,Stoke Mandeville,Aylesbury,,HP21 9GX,General Needs,House,2020,Traditional,Natural gas (mains) +14 Sydney Street,Stoke Mandeville,Aylesbury,,HP21 9GX,General Needs,House,2020,Traditional,Natural gas (mains) +16 Sydney Street,Stoke Mandeville,Aylesbury,,HP21 9GX,General Needs,House,2020,Traditional,Natural gas (mains) +18 Sydney Street,Stoke Mandeville,Aylesbury,,HP21 9GX,General Needs,House,2020,Traditional,Natural gas (mains) +20 Sydney Street,Stoke Mandeville,Aylesbury,,HP21 9GX,General Needs,House,2020,Traditional,Natural gas (mains) +22 Sydney Street,Stoke Mandeville,Aylesbury,,HP21 9GX,General Needs,House,2020,Traditional,Natural gas (mains) +24 Sydney Street,Stoke Mandeville,Aylesbury,,HP21 9GX,General Needs,House,2020,Traditional,Natural gas (mains) +1 Orwell Drive,Aylesbury,Bucks,,HP21 9JL,General Needs,Flat,1975,Traditional,Natural gas (mains) +3 Orwell Drive,Aylesbury,Bucks,,HP21 9JL,General Needs,Flat,1975,Traditional,Natural gas (mains) +5 Orwell Drive,Aylesbury,Bucks,,HP21 9JL,General Needs,Flat,1975,Traditional,Natural gas (mains) +7 Orwell Drive,Aylesbury,Bucks,,HP21 9JL,General Needs,Flat,1975,Traditional,Natural gas (mains) +9 Orwell Drive,Aylesbury,Bucks,,HP21 9JL,General Needs,Flat,1975,Traditional,Natural gas (mains) +11 Orwell Drive,Aylesbury,Bucks,,HP21 9JL,General Needs,Flat,1975,Traditional,Natural gas (mains) +13 Orwell Drive,Aylesbury,Bucks,,HP21 9JL,General Needs,Flat,1975,Traditional,Natural gas (mains) +21 Orwell Drive,Aylesbury,Bucks,,HP21 9JL,General Needs,Flat,1975,Traditional,Natural gas (mains) +3 Wye Close,Aylesbury,Bucks,,HP21 9NH,General Needs,House,1979,Traditional,Natural gas (mains) +4 Wye Close,Aylesbury,Bucks,,HP21 9NH,General Needs,House,1978,Traditional,Natural gas (mains) +5 Wye Close,Aylesbury,Bucks,,HP21 9NH,General Needs,House,1978,Traditional,Natural gas (mains) +6 Wye Close,Aylesbury,Bucks,,HP21 9NH,General Needs,House,1978,Traditional,Natural gas (mains) +7 Wye Close,Aylesbury,Bucks,,HP21 9NH,General Needs,House,1978,Traditional,Natural gas (mains) +6 Welland Road,Aylesbury,Bucks,,HP21 9NN,General Needs,House,1980,Traditional,Natural gas (mains) +7 Welland Road,Aylesbury,Bucks,,HP21 9NN,General Needs,House,1980,Traditional,Natural gas (mains) +10 Welland Road,Aylesbury,Bucks,,HP21 9NN,General Needs,House,1979,Traditional,Natural gas (mains) +14 Welland Road,Aylesbury,Bucks,,HP21 9NN,General Needs,House,1979,Traditional,Natural gas (mains) +15 Welland Road,Aylesbury,Bucks,,HP21 9NN,General Needs,House,1979,Traditional,Natural gas (mains) +16 Welland Road,Aylesbury,Bucks,,HP21 9NN,General Needs,House,1979,Traditional,Natural gas (mains) +18 Welland Road,Aylesbury,Bucks,,HP21 9NN,General Needs,House,1979,Traditional,Natural gas (mains) +1 Dart Close,Aylesbury,Bucks,,HP21 9NP,General Needs,House,1978,Traditional,Natural gas (mains) +2 Dart Close,Aylesbury,Bucks,,HP21 9NP,General Needs,House,1978,Traditional,Natural gas (mains) +3 Dart Close,Aylesbury,Bucks,,HP21 9NP,General Needs,House,1978,Traditional,Natural gas (mains) +2 Dove Close,Aylesbury,Bucks,,HP21 9NR,General Needs,House,1980,Traditional,Natural gas (mains) +4 Dove Close,Aylesbury,Bucks,,HP21 9NR,General Needs,House,1980,Traditional,Natural gas (mains) +5 Dove Close,Aylesbury,Bucks,,HP21 9NR,General Needs,House,1980,Traditional,Natural gas (mains) +6 Dove Close,Aylesbury,Bucks,,HP21 9NR,General Needs,House,1980,Traditional,Natural gas (mains) +7 Dove Close,Aylesbury,Bucks,,HP21 9NR,General Needs,House,1980,Traditional,Natural gas (mains) +2 Nene Close,Aylesbury,Bucks,,HP21 9NS,General Needs,House,1979,Traditional,Natural gas (mains) +3 Nene Close,Aylesbury,Bucks,,HP21 9NS,General Needs,House,1979,Traditional,Natural gas (mains) +7 Nene Close,Aylesbury,Bucks,,HP21 9NS,General Needs,House,1979,Traditional,Natural gas (mains) +9 Nene Close,Aylesbury,Bucks,,HP21 9NS,General Needs,House,1979,Traditional,Natural gas (mains) +10 Nene Close,Aylesbury,Bucks,,HP21 9NS,General Needs,House,1979,Traditional,Natural gas (mains) +11 Nene Close,Aylesbury,Bucks,,HP21 9NS,General Needs,House,1979,Traditional,Natural gas (mains) +14 Nene Close,Aylesbury,Bucks,,HP21 9NS,General Needs,House,1979,Traditional,Natural gas (mains) +5 Frome Close,Aylesbury,Bucks,,HP21 9NT,General Needs,House,1980,Traditional,Natural gas (mains) +7 Frome Close,Aylesbury,Bucks,,HP21 9NT,General Needs,House,1980,Traditional,Natural gas (mains) +8 Frome Close,Aylesbury,Bucks,,HP21 9NT,General Needs,House,1980,Traditional,Natural gas (mains) +10 Frome Close,Aylesbury,Bucks,,HP21 9NT,General Needs,House,1980,Traditional,Natural gas (mains) +11 Frome Close,Aylesbury,Bucks,,HP21 9NT,General Needs,House,1980,Traditional,Natural gas (mains) +2 Swale Road,Aylesbury,Bucks,,HP21 9NU,General Needs,House,1981,Traditional,Natural gas (mains) +3 Swale Road,Aylesbury,Bucks,,HP21 9NU,General Needs,House,1981,Traditional,Natural gas (mains) +4 Swale Road,Aylesbury,Bucks,,HP21 9NU,General Needs,House,1981,Traditional,Natural gas (mains) +6 Swale Road,Aylesbury,Bucks,,HP21 9NU,General Needs,House,1981,Traditional,Natural gas (mains) +8 Swale Road,Aylesbury,Bucks,,HP21 9NU,General Needs,House,1981,Traditional,Natural gas (mains) +15 Swale Road,Aylesbury,Bucks,,HP21 9NU,General Needs,House,1981,Traditional,Natural gas (mains) +16 Swale Road,Aylesbury,Bucks,,HP21 9NU,General Needs,House,1981,Traditional,Natural gas (mains) +18 Swale Road,Aylesbury,Bucks,,HP21 9NU,General Needs,House,1981,Traditional,Natural gas (mains) +19 Swale Road,Aylesbury,Bucks,,HP21 9NU,General Needs,House,1980,Traditional,Natural gas (mains) +22 Swale Road,Aylesbury,Bucks,,HP21 9NU,General Needs,House,1980,Traditional,Natural gas (mains) +24 Swale Road,Aylesbury,Bucks,,HP21 9NU,General Needs,House,1980,Traditional,Natural gas (mains) +19 Welland Road,Aylesbury,Bucks,,HP21 9NW,General Needs,House,1979,Traditional,Natural gas (mains) +20 Welland Road,Aylesbury,Bucks,,HP21 9NW,General Needs,House,1979,Traditional,Natural gas (mains) +21 Welland Road,Aylesbury,Bucks,,HP21 9NW,General Needs,House,1979,Traditional,Natural gas (mains) +22 Welland Road,Aylesbury,Bucks,,HP21 9NW,General Needs,House,1979,Traditional,Natural gas (mains) +25 Welland Road,Aylesbury,Bucks,,HP21 9NW,General Needs,House,1979,Traditional,Natural gas (mains) +26 Welland Road,Aylesbury,Bucks,,HP21 9NW,General Needs,House,1979,Traditional,Natural gas (mains) +30 Welland Road,Aylesbury,Bucks,,HP21 9NW,General Needs,House,1980,Traditional,Natural gas (mains) +33 Welland Road,Aylesbury,Bucks,,HP21 9NW,General Needs,House,1980,Traditional,Natural gas (mains) +20 Tees Road,Aylesbury,Bucks,,HP21 9NX,General Needs,House,1978,Traditional,Natural gas (mains) +23 Tees Road,Aylesbury,Bucks,,HP21 9NX,General Needs,Bungalow,1981,Traditional,Natural gas (mains) +24 Tees Road,Aylesbury,Bucks,,HP21 9NX,General Needs,Bungalow,1981,Traditional,Natural gas (mains) +25 Tees Road,Aylesbury,Bucks,,HP21 9NX,General Needs,House,1978,Traditional,Natural gas (mains) +28 Tees Road,Aylesbury,Bucks,,HP21 9NX,General Needs,House,1978,Traditional,Natural gas (mains) +29 Tees Road,Aylesbury,Bucks,,HP21 9NX,General Needs,House,1978,Traditional,Natural gas (mains) +3 Tees Road,Aylesbury,Bucks,,HP21 9NY,General Needs,House,1978,Traditional,Natural gas (mains) +7 Tees Road,Aylesbury,Bucks,,HP21 9NY,General Needs,House,1978,Traditional,Natural gas (mains) +11 Tees Road,Aylesbury,Bucks,,HP21 9NY,General Needs,House,1978,Traditional,Natural gas (mains) +12 Tees Road,Aylesbury,Bucks,,HP21 9NY,General Needs,House,1978,Traditional,Natural gas (mains) +14 Tees Road,Aylesbury,Bucks,,HP21 9NY,General Needs,House,1978,Traditional,Natural gas (mains) +19 Tees Road,Aylesbury,Bucks,,HP21 9NY,General Needs,House,1978,Traditional,Natural gas (mains) +2 Harvey Road,Aylesbury,Bucks,,HP21 9PJ,General Needs,Bungalow,1968,Traditional,Natural gas (mains) +4 Harvey Road,Aylesbury,Bucks,,HP21 9PJ,General Needs,Bungalow,1968,Traditional,Natural gas (mains) +6 Harvey Road,Aylesbury,Bucks,,HP21 9PJ,General Needs,Bungalow,1968,Traditional,Natural gas (mains) +8 Harvey Road,Aylesbury,Bucks,,HP21 9PJ,General Needs,Bungalow,1968,Traditional,Natural gas (mains) +10 Harvey Road,Aylesbury,Bucks,,HP21 9PJ,General Needs,Bungalow,1968,Traditional,Natural gas (mains) +12 Harvey Road,Aylesbury,Bucks,,HP21 9PJ,General Needs,Bungalow,1968,Traditional,Natural gas (mains) +14 Harvey Road,Aylesbury,Bucks,,HP21 9PJ,General Needs,Bungalow,1968,Traditional,Natural gas (mains) +16 Harvey Road,Aylesbury,Bucks,,HP21 9PJ,General Needs,Bungalow,1968,Traditional,Natural gas (mains) +18 Harvey Road,Aylesbury,Bucks,,HP21 9PJ,General Needs,Bungalow,1968,Traditional,Natural gas (mains) +20 Harvey Road,Aylesbury,Bucks,,HP21 9PJ,General Needs,Bungalow,1968,Traditional,Natural gas (mains) +22 Harvey Road,Aylesbury,Bucks,,HP21 9PJ,General Needs,Bungalow,1968,Traditional,Natural gas (mains) +24 Harvey Road,Aylesbury,Bucks,,HP21 9PJ,General Needs,Bungalow,1968,Traditional,Natural gas (mains) +26 Harvey Road,Aylesbury,Bucks,,HP21 9PJ,General Needs,Bungalow,1968,Traditional,Natural gas (mains) +30 Harvey Road,Aylesbury,Bucks,,HP21 9PJ,General Needs,Bungalow,1968,Traditional,Natural gas (mains) +32 Harvey Road,Aylesbury,Bucks,,HP21 9PJ,General Needs,Bungalow,1968,Traditional,Natural gas (mains) +40 Harvey Road,Aylesbury,Bucks,,HP21 9PJ,General Needs,House,1968,Rationalised,Natural gas (mains) +44 Harvey Road,Aylesbury,Bucks,,HP21 9PJ,General Needs,House,1968,Rationalised,Natural gas (mains) +46 Harvey Road,Aylesbury,Bucks,,HP21 9PJ,General Needs,House,1968,Rationalised,Natural gas (mains) +52 Harvey Road,Aylesbury,Bucks,,HP21 9PJ,General Needs,Flat,1968,Rationalised,Natural gas (mains) +54 Harvey Road,Aylesbury,Bucks,,HP21 9PJ,General Needs,Flat,1968,Rationalised,Natural gas (mains) +56 Harvey Road,Aylesbury,Bucks,,HP21 9PJ,General Needs,Flat,1968,Rationalised,Natural gas (mains) +62 Harvey Road,Aylesbury,Bucks,,HP21 9PJ,General Needs,House,1968,Rationalised,Natural gas (mains) +76 Harvey Road,Aylesbury,Bucks,,HP21 9PJ,General Needs,Flat,1968,Rationalised,Natural gas (mains) +78 Harvey Road,Aylesbury,Bucks,,HP21 9PJ,General Needs,Flat,1968,Rationalised,Natural gas (mains) +80 Harvey Road,Aylesbury,Bucks,,HP21 9PJ,General Needs,Flat,1968,Rationalised,Natural gas (mains) +39 Harvey Road,Aylesbury,Bucks,,HP21 9PL,General Needs,Maisonette,1970,Traditional,Natural gas (mains) +41 Harvey Road,Aylesbury,Bucks,,HP21 9PL,General Needs,Maisonette,1970,Traditional,Natural gas (mains) +45 Harvey Road,Aylesbury,Bucks,,HP21 9PL,General Needs,Maisonette,1970,Traditional,Natural gas (mains) +51 Harvey Road,Aylesbury,Bucks,,HP21 9PL,General Needs,Maisonette,1970,Traditional,Natural gas (mains) +57 Harvey Road,Aylesbury,Bucks,,HP21 9PL,General Needs,House,1968,Rationalised,Natural gas (mains) +61 Harvey Road,Aylesbury,Bucks,,HP21 9PL,General Needs,Flat,1968,Rationalised,Natural gas (mains) +69 Harvey Road,Aylesbury,Bucks,,HP21 9PL,General Needs,House,1968,Rationalised,Natural gas (mains) +88 Harvey Road,Aylesbury,Bucks,,HP21 9PL,General Needs,Flat,1968,Rationalised,Natural gas (mains) +90 Harvey Road,Aylesbury,Bucks,,HP21 9PL,General Needs,Flat,1968,Rationalised,Natural gas (mains) +92 Harvey Road,Aylesbury,Bucks,,HP21 9PL,General Needs,Flat,1968,Rationalised,Natural gas (mains) +94 Harvey Road,Aylesbury,Bucks,,HP21 9PL,General Needs,Flat,1968,Rationalised,Natural gas (mains) +102 Harvey Road,Aylesbury,Bucks,,HP21 9PL,General Needs,House,1968,Rationalised,Natural gas (mains) +106 Harvey Road,Aylesbury,Bucks,,HP21 9PL,General Needs,Flat,1968,Rationalised,Natural gas (mains) +110 Harvey Road,Aylesbury,Bucks,,HP21 9PL,General Needs,Flat,1968,Rationalised,Natural gas (mains) +1 Barnard Crescent,Aylesbury,Bucks,,HP21 9PN,General Needs,House,1970,Rationalised,Natural gas (mains) +5 Barnard Crescent,Aylesbury,Bucks,,HP21 9PN,General Needs,Flat,1970,Rationalised,Natural gas (mains) +6 Barnard Crescent,Aylesbury,Bucks,,HP21 9PN,General Needs,House,1970,Rationalised,Natural gas (mains) +7 Barnard Crescent,Aylesbury,Bucks,,HP21 9PN,General Needs,Flat,1970,Rationalised,Natural gas (mains) +8 Barnard Crescent,Aylesbury,Bucks,,HP21 9PN,General Needs,Flat,1970,Rationalised,Natural gas (mains) +9 Barnard Crescent,Aylesbury,Bucks,,HP21 9PN,General Needs,Flat,1970,Rationalised,Natural gas (mains) +10 Barnard Crescent,Aylesbury,Bucks,,HP21 9PN,General Needs,Flat,1970,Rationalised,Natural gas (mains) +11 Barnard Crescent,Aylesbury,Bucks,,HP21 9PN,General Needs,Flat,1970,Rationalised,Natural gas (mains) +13 Barnard Crescent,Aylesbury,Bucks,,HP21 9PN,General Needs,House,1970,Rationalised,Natural gas (mains) +14 Barnard Crescent,Aylesbury,Bucks,,HP21 9PN,General Needs,Flat,1970,Rationalised,Natural gas (mains) +17 Barnard Crescent,Aylesbury,Bucks,,HP21 9PN,General Needs,House,1970,Rationalised,Natural gas (mains) +25 Barnard Crescent,Aylesbury,Bucks,,HP21 9PN,General Needs,Flat,1970,Rationalised,Natural gas (mains) +26 Barnard Crescent,Aylesbury,Bucks,,HP21 9PN,General Needs,House,1972,Rationalised,Natural gas (mains) +27 Barnard Crescent,Aylesbury,Bucks,,HP21 9PN,General Needs,Flat,1970,Rationalised,Natural gas (mains) +28 Barnard Crescent,Aylesbury,Bucks,,HP21 9PN,General Needs,House,1970,Rationalised,Natural gas (mains) +29 Barnard Crescent,Aylesbury,Bucks,,HP21 9PN,General Needs,Flat,1970,Rationalised,Natural gas (mains) +31 Barnard Crescent,Aylesbury,Bucks,,HP21 9PN,General Needs,Flat,1970,Rationalised,Natural gas (mains) +32 Barnard Crescent,Aylesbury,Bucks,,HP21 9PN,General Needs,House,1970,Rationalised,Natural gas (mains) +77 Barnard Crescent,Aylesbury,Bucks,,HP21 9PR,General Needs,Flat,1970,Rationalised,Natural gas (mains) +79 Barnard Crescent,Aylesbury,Bucks,,HP21 9PR,General Needs,Flat,1970,Rationalised,Natural gas (mains) +81 Barnard Crescent,Aylesbury,Bucks,,HP21 9PR,General Needs,Flat,1970,Rationalised,Natural gas (mains) +85 Barnard Crescent,Aylesbury,Bucks,,HP21 9PR,General Needs,House,1970,Rationalised,Natural gas (mains) +91 Barnard Crescent,Aylesbury,Bucks,,HP21 9PR,General Needs,House,1970,Rationalised,Natural gas (mains) +97 Barnard Crescent,Aylesbury,Bucks,,HP21 9PR,General Needs,House,1970,Rationalised,Natural gas (mains) +121 Barnard Crescent,Aylesbury,Bucks,,HP21 9PR,General Needs,House,1970,Rationalised,Natural gas (mains) +129 Barnard Crescent,Aylesbury,Bucks,,HP21 9PR,General Needs,House,1968,Rationalised,Natural gas (mains) +5 Simpson Place,Aylesbury,Bucks,,HP21 9PS,General Needs,Maisonette,1970,Traditional,Natural gas (mains) +6 Simpson Place,Aylesbury,Bucks,,HP21 9PS,General Needs,Maisonette,1970,Traditional,Natural gas (mains) +7 Simpson Place,Aylesbury,Bucks,,HP21 9PS,General Needs,Maisonette,1970,Traditional,Natural gas (mains) +8 Simpson Place,Aylesbury,Bucks,,HP21 9PS,General Needs,Maisonette,1970,Traditional,Natural gas (mains) +9 Simpson Place,Aylesbury,Bucks,,HP21 9PS,General Needs,Maisonette,1970,Traditional,Natural gas (mains) +10 Simpson Place,Aylesbury,Bucks,,HP21 9PS,General Needs,Maisonette,1970,Traditional,Natural gas (mains) +11 Simpson Place,Aylesbury,Bucks,,HP21 9PS,General Needs,Maisonette,1970,Traditional,Natural gas (mains) +13 Simpson Place,Aylesbury,Bucks,,HP21 9PS,General Needs,Maisonette,1970,Traditional,Natural gas (mains) +15 Simpson Place,Aylesbury,Bucks,,HP21 9PS,General Needs,Maisonette,1970,Traditional,Natural gas (mains) +17 Simpson Place,Aylesbury,Bucks,,HP21 9PS,General Needs,Flat,1968,Rationalised,Natural gas (mains) +18 Simpson Place,Aylesbury,Bucks,,HP21 9PS,General Needs,Flat,1968,Rationalised,Natural gas (mains) +19 Simpson Place,Aylesbury,Bucks,,HP21 9PS,General Needs,Flat,1968,Rationalised,Natural gas (mains) +11 Harvey Road,Aylesbury,Bucks,,HP21 9PT,General Needs,Flat,1968,Rationalised,Natural gas (mains) +13 Harvey Road,Aylesbury,Bucks,,HP21 9PT,General Needs,Flat,1968,Rationalised,Natural gas (mains) +17 Harvey Road,Aylesbury,Bucks,,HP21 9PT,General Needs,Flat,1968,Rationalised,Natural gas (mains) +19 Harvey Road,Aylesbury,Bucks,,HP21 9PT,General Needs,Flat,1968,Rationalised,Natural gas (mains) +21 Harvey Road,Aylesbury,Bucks,,HP21 9PT,General Needs,Flat,1968,Rationalised,Natural gas (mains) +23 Harvey Road,Aylesbury,Bucks,,HP21 9PT,General Needs,Flat,1968,Rationalised,Natural gas (mains) +37 Harvey Road,Aylesbury,Bucks,,HP21 9PT,General Needs,House,1968,Rationalised,Natural gas (mains) +12 Treves Green,Aylesbury,Bucks,,HP21 9PU,General Needs,House,1968,Rationalised,Natural gas (mains) +16 Treves Green,Aylesbury,Bucks,,HP21 9PU,General Needs,House,1968,Rationalised,Natural gas (mains) +17 Treves Green,Aylesbury,Bucks,,HP21 9PU,General Needs,House,1968,Rationalised,Natural gas (mains) +21 Treves Green,Aylesbury,Bucks,,HP21 9PU,General Needs,Flat,1968,Rationalised,Natural gas (mains) +22 Treves Green,Aylesbury,Bucks,,HP21 9PU,General Needs,Flat,1968,Rationalised,Natural gas (mains) +39 Barnard Crescent,Aylesbury,Bucks,,HP21 9PW,General Needs,House,1970,Rationalised,Natural gas (mains) +41 Barnard Crescent,Aylesbury,Bucks,,HP21 9PW,General Needs,House,1970,Rationalised,Natural gas (mains) +43 Barnard Crescent,Aylesbury,Bucks,,HP21 9PW,General Needs,House,1970,Rationalised,Natural gas (mains) +46 Barnard Crescent,Aylesbury,Bucks,,HP21 9PW,General Needs,House,1970,Rationalised,Natural gas (mains) +47 Barnard Crescent,Aylesbury,Bucks,,HP21 9PW,General Needs,Flat,1970,Rationalised,Natural gas (mains) +49 Barnard Crescent,Aylesbury,Bucks,,HP21 9PW,General Needs,Flat,1970,Rationalised,Natural gas (mains) +51 Barnard Crescent,Aylesbury,Bucks,,HP21 9PW,General Needs,Flat,1970,Rationalised,Natural gas (mains) +53 Barnard Crescent,Aylesbury,Bucks,,HP21 9PW,General Needs,Flat,1970,Rationalised,Natural gas (mains) +54 Barnard Crescent,Aylesbury,Bucks,,HP21 9PW,General Needs,House,1970,Rationalised,Natural gas (mains) +59 Barnard Crescent,Aylesbury,Bucks,,HP21 9PW,General Needs,House,1970,Rationalised,Natural gas (mains) +76 Barnard Crescent,Aylesbury,Bucks,,HP21 9PW,General Needs,House,1970,Rationalised,Natural gas (mains) +1 Lister Green,Aylesbury,Bucks,,HP21 9PZ,General Needs,House,1968,Rationalised,Natural gas (mains) +11 Lister Green,Aylesbury,Bucks,,HP21 9PZ,General Needs,House,1968,Rationalised,Natural gas (mains) +18 Lister Green,Aylesbury,Bucks,,HP21 9PZ,General Needs,House,1968,Rationalised,Natural gas (mains) +1 Witham Way,Aylesbury,Bucks,,HP21 9RR,General Needs,House,1977,Traditional,Natural gas (mains) +5 Witham Way,Aylesbury,Bucks,,HP21 9RR,General Needs,House,1977,Traditional,Natural gas (mains) +6 Witham Way,Aylesbury,Bucks,,HP21 9RR,General Needs,House,1977,Traditional,Natural gas (mains) +12 Witham Way,Aylesbury,Bucks,,HP21 9RR,General Needs,House,1977,Traditional,Natural gas (mains) +18 Witham Way,Aylesbury,Bucks,,HP21 9RR,General Needs,House,1977,Traditional,Natural gas (mains) +24 Witham Way,Aylesbury,Bucks,,HP21 9RR,General Needs,House,1977,Traditional,Natural gas (mains) +25 Witham Way,Aylesbury,Bucks,,HP21 9RR,General Needs,House,1977,Traditional,Natural gas (mains) +26 Witham Way,Aylesbury,Bucks,,HP21 9RR,General Needs,House,1977,Traditional,Natural gas (mains) +28 Witham Way,Aylesbury,Bucks,,HP21 9RR,General Needs,House,1977,Traditional,Natural gas (mains) +45 Witham Way,Aylesbury,Bucks,,HP21 9RR,General Needs,House,1977,Traditional,Natural gas (mains) +55 Witham Way,Aylesbury,Bucks,,HP21 9RS,General Needs,House,1977,Traditional,Natural gas (mains) +65 Witham Way,Aylesbury,Bucks,,HP21 9RS,General Needs,House,1977,Traditional,Natural gas (mains) +75 Witham Way,Aylesbury,Bucks,,HP21 9RS,General Needs,House,1977,Traditional,Natural gas (mains) +89 Witham Way,Aylesbury,Bucks,,HP21 9RS,General Needs,House,1977,Traditional,Natural gas (mains) +99 Witham Way,Aylesbury,Bucks,,HP21 9RS,General Needs,House,1977,Traditional,Natural gas (mains) +103 Witham Way,Aylesbury,Bucks,,HP21 9RS,General Needs,House,1977,Traditional,Natural gas (mains) +3 Ember Path,Aylesbury,Bucks,,HP21 9RT,General Needs,House,1978,Traditional,Natural gas (mains) +5 Ember Path,Aylesbury,Bucks,,HP21 9RT,General Needs,House,1978,Traditional,Natural gas (mains) +5 Blackwater Drive,Aylesbury,Bucks,,HP21 9RU,General Needs,House,1977,Traditional,Natural gas (mains) +9 Blackwater Drive,Aylesbury,Bucks,,HP21 9RU,General Needs,House,1977,Traditional,Natural gas (mains) +10 Blackwater Drive,Aylesbury,Bucks,,HP21 9RU,General Needs,House,1977,Traditional,Natural gas (mains) +11 Blackwater Drive,Aylesbury,Bucks,,HP21 9RU,General Needs,House,1977,Traditional,Natural gas (mains) +18 Blackwater Drive,Aylesbury,Bucks,,HP21 9RU,General Needs,House,1977,Traditional,Natural gas (mains) +20 Blackwater Drive,Aylesbury,Bucks,,HP21 9RU,General Needs,House,1977,Traditional,Natural gas (mains) +21 Blackwater Drive,Aylesbury,Bucks,,HP21 9RU,General Needs,House,1977,Traditional,Natural gas (mains) +23 Blackwater Drive,Aylesbury,Bucks,,HP21 9RU,General Needs,House,1977,Traditional,Natural gas (mains) +25 Blackwater Drive,Aylesbury,Bucks,,HP21 9RU,General Needs,House,1977,Traditional,Natural gas (mains) +28 Blackwater Drive,Aylesbury,Bucks,,HP21 9RU,General Needs,House,1977,Traditional,Natural gas (mains) +32 Blackwater Drive,Aylesbury,Bucks,,HP21 9RU,General Needs,House,1977,Traditional,Natural gas (mains) +34 Blackwater Drive,Aylesbury,Bucks,,HP21 9RU,General Needs,House,1977,Traditional,Natural gas (mains) +40 Blackwater Drive,Aylesbury,Bucks,,HP21 9RU,General Needs,House,1977,Traditional,Natural gas (mains) +27 Blackwater Drive,Aylesbury,Bucks,,HP21 9RX,General Needs,House,1977,Traditional,Natural gas (mains) +29 Blackwater Drive,Aylesbury,Bucks,,HP21 9RX,General Needs,House,1977,Traditional,Natural gas (mains) +33 Blackwater Drive,Aylesbury,Bucks,,HP21 9RX,General Needs,House,1977,Traditional,Natural gas (mains) +35 Blackwater Drive,Aylesbury,Bucks,,HP21 9RX,General Needs,House,1977,Traditional,Natural gas (mains) +37 Blackwater Drive,Aylesbury,Bucks,,HP21 9RX,General Needs,House,1977,Traditional,Natural gas (mains) +39 Blackwater Drive,Aylesbury,Bucks,,HP21 9RX,General Needs,House,1977,Traditional,Natural gas (mains) +45 Blackwater Drive,Aylesbury,Bucks,,HP21 9RX,General Needs,House,1977,Traditional,Natural gas (mains) +47 Blackwater Drive,Aylesbury,Bucks,,HP21 9RX,General Needs,House,1977,Traditional,Natural gas (mains) +48 Blackwater Drive,Aylesbury,Bucks,,HP21 9RX,General Needs,House,1977,Traditional,Natural gas (mains) +49 Blackwater Drive,Aylesbury,Bucks,,HP21 9RX,General Needs,House,1977,Traditional,Natural gas (mains) +53 Blackwater Drive,Aylesbury,Bucks,,HP21 9RX,General Needs,House,1977,Traditional,Natural gas (mains) +54 Blackwater Drive,Aylesbury,Bucks,,HP21 9RX,General Needs,House,1977,Traditional,Natural gas (mains) +56 Blackwater Drive,Aylesbury,Bucks,,HP21 9RX,General Needs,House,1977,Traditional,Natural gas (mains) +58 Blackwater Drive,Aylesbury,Bucks,,HP21 9RX,General Needs,House,1977,Traditional,Natural gas (mains) +60 Blackwater Drive,Aylesbury,Bucks,,HP21 9RX,General Needs,House,1977,Traditional,Natural gas (mains) +57 Blackwater Drive,Aylesbury,Bucks,,HP21 9RY,General Needs,Bungalow,1977,Traditional,Natural gas (mains) +61 Blackwater Drive,Aylesbury,Bucks,,HP21 9RY,General Needs,House,1977,Traditional,Natural gas (mains) +72 Blackwater Drive,Aylesbury,Bucks,,HP21 9RY,General Needs,House,1977,Traditional,Natural gas (mains) +74 Blackwater Drive,Aylesbury,Bucks,,HP21 9RY,General Needs,House,1977,Traditional,Natural gas (mains) +76 Blackwater Drive,Aylesbury,Bucks,,HP21 9RY,General Needs,House,1977,Traditional,Natural gas (mains) +90 Blackwater Drive,Aylesbury,Bucks,,HP21 9RY,General Needs,House,1977,Traditional,Natural gas (mains) +92 Blackwater Drive,Aylesbury,Bucks,,HP21 9RY,General Needs,House,1977,Traditional,Natural gas (mains) +102 Blackwater Drive,Aylesbury,Bucks,,HP21 9RY,General Needs,House,1977,Traditional,Natural gas (mains) +104 Blackwater Drive,Aylesbury,Bucks,,HP21 9RY,General Needs,House,1977,Traditional,Natural gas (mains) +1 Arthur Spittles Close,Stoke Mandeville,,,HP22 3AE,General Needs,House,2021,Traditional,Natural gas (mains) +2 Arthur Spittles Close,Stoke Mandeville,,,HP22 3AE,General Needs,House,2021,Traditional,Natural gas (mains) +3 Arthur Spittles Close,Stoke Mandeville,,,HP22 3AE,General Needs,Flat,2021,Traditional,Natural gas (mains) +10 Arthur Spittles Close,Stoke Mandeville,,,HP22 3AE,General Needs,Flat,2021,Traditional,Storage heaters +11 Arthur Spittles Close,Stoke Mandeville,,,HP22 3AE,General Needs,Flat,2021,Traditional,Storage heaters +1 John Bradbury Lane,Stoke Mandeville,,,HP22 3AF,General Needs,House,2021,Traditional,Natural gas (mains) +2 John Bradbury Lane,Stoke Mandeville,,,HP22 3AF,General Needs,House,2021,Traditional,Natural gas (mains) +3 John Bradbury Lane,Stoke Mandeville,,,HP22 3AF,General Needs,House,2021,Traditional,Natural gas (mains) +4 John Bradbury Lane,Stoke Mandeville,,,HP22 3AF,General Needs,House,2021,Traditional,Natural gas (mains) +15 Kempster Way,Weston Turville,,,HP22 3AL,General Needs,Flat,2021,Traditional,Natural gas (mains) +17 Kempster Way,Weston Turville,,,HP22 3AL,General Needs,Flat,2021,Traditional,Natural gas (mains) +19 Kempster Way,Weston Turville,,,HP22 3AL,General Needs,Flat,2021,Traditional,Natural gas (mains) +21 Kempster Way,Weston Turville,,,HP22 3AL,General Needs,Flat,2021,Traditional,Natural gas (mains) +23 Kempster Way,Weston Turville,,,HP22 3AL,General Needs,Flat,2021,Traditional,Natural gas (mains) +25 Kempster Way,Weston Turville,,,HP22 3AL,General Needs,Flat,2021,Traditional,Natural gas (mains) +27 Kempster Way,Weston Turville,,,HP22 3AL,General Needs,Flat,2021,Traditional,Natural gas (mains) +29 Kempster Way,Weston Turville,,,HP22 3AL,General Needs,Flat,2021,Traditional,Natural gas (mains) +31 Kempster Way,Weston Turville,,,HP22 3AL,General Needs,Flat,2021,Traditional,Natural gas (mains) +40 Kempster Way,Weston Turville,,,HP22 3AN,General Needs,Flat,2021,Traditional,Natural gas (mains) +42 Kempster Way,Weston Turville,,,HP22 3AN,General Needs,Flat,2021,Traditional,Natural gas (mains) +44 Kempster Way,Weston Turville,,,HP22 3AN,General Needs,Flat,2021,Traditional,Natural gas (mains) +46 Kempster Way,Weston Turville,,,HP22 3AN,General Needs,Flat,2021,Traditional,Natural gas (mains) +48 Kempster Way,Weston Turville,,,HP22 3AN,General Needs,Flat,2021,Traditional,Natural gas (mains) +50 Kempster Way,Weston Turville,,,HP22 3AN,General Needs,Flat,2021,Traditional,Natural gas (mains) +52 Kempster Way,Weston Turville,,,HP22 3AN,General Needs,Flat,2021,Traditional,Natural gas (mains) +54 Kempster Way,Weston Turville,,,HP22 3AN,General Needs,Flat,2021,Traditional,Natural gas (mains) +56 Kempster Way,Weston Turville,,,HP22 3AN,General Needs,Flat,2021,Traditional,Natural gas (mains) +7 Howe Street,Weston Turville,,,HP22 3AQ,General Needs,House,2021,Traditional,Natural gas (mains) +8 Howe Street,Weston Turville,,,HP22 3AQ,General Needs,House,2021,Traditional,Natural gas (mains) +9 Howe Street,Weston Turville,,,HP22 3AQ,General Needs,House,2021,Traditional,Natural gas (mains) +10 Howe Street,Weston Turville,,,HP22 3AQ,General Needs,House,2021,Traditional,Natural gas (mains) +11 Howe Street,Weston Turville,,,HP22 3AQ,General Needs,House,2021,Traditional,Natural gas (mains) +12 Howe Street,Weston Turville,,,HP22 3AQ,General Needs,House,2021,Traditional,Natural gas (mains) +24 Purssell Road,Weston Turville,,,HP22 3AT,General Needs,House,2022,Traditional,Natural gas (mains) +26 Purssell Road,Weston Turville,,,HP22 3AT,General Needs,House,2022,Traditional,Natural gas (mains) +28 Purssell Road,Weston Turville,,,HP22 3AT,General Needs,House,2022,Traditional,Natural gas (mains) +30 Purssell Road,Weston Turville,,,HP22 3AT,General Needs,House,2022,Traditional,Natural gas (mains) +32 Purssell Road,Weston Turville,,,HP22 3AT,General Needs,House,2022,Traditional,Natural gas (mains) +2 Eynesford Road,Stoke Mandeville,Aylesbury,,HP22 3BL,General Needs,House,2021,Traditional,Natural gas (mains) +4 Eynesford Road,Stoke Mandeville,Aylesbury,,HP22 3BL,General Needs,House,2021,Traditional,Natural gas (mains) +11 Eynesford Road,Stoke Mandeville,Aylesbury,,HP22 3BL,General Needs,House,2021,Traditional,Natural gas (mains) +13 Eynesford Road,Stoke Mandeville,Aylesbury,,HP22 3BL,General Needs,House,2021,Traditional,Natural gas (mains) +15 Eynesford Road,Stoke Mandeville,Aylesbury,,HP22 3BL,General Needs,Flat,2021,Traditional,Natural gas (mains) +17 Eynesford Road,Stoke Mandeville,Aylesbury,,HP22 3BL,General Needs,Flat,2021,Traditional,Natural gas (mains) +19 Eynesford Road,Stoke Mandeville,Aylesbury,,HP22 3BL,General Needs,Flat,2021,Traditional,Natural gas (mains) +21 Eynesford Road,Stoke Mandeville,Aylesbury,,HP22 3BL,General Needs,Flat,2021,Traditional,Natural gas (mains) +23 Eynesford Road,Stoke Mandeville,Aylesbury,,HP22 3BL,General Needs,Flat,2021,Traditional,Natural gas (mains) +24 Eynesford Road,Stoke Mandeville,Aylesbury,,HP22 3BL,General Needs,House,2021,Traditional,Natural gas (mains) +25 Eynesford Road,Stoke Mandeville,Aylesbury,,HP22 3BL,General Needs,Flat,2021,Traditional,Natural gas (mains) +26 Eynesford Road,Stoke Mandeville,Aylesbury,,HP22 3BL,General Needs,House,2021,Traditional,Natural gas (mains) +27 Eynesford Road,Stoke Mandeville,Aylesbury,,HP22 3BL,General Needs,Flat,2021,Traditional,Natural gas (mains) +29 Eynesford Road,Stoke Mandeville,Aylesbury,,HP22 3BL,General Needs,Flat,2021,Traditional,Natural gas (mains) +31 Eynesford Road,Stoke Mandeville,Aylesbury,,HP22 3BL,General Needs,Flat,2021,Traditional,Natural gas (mains) +33 Eynesford Road,Stoke Mandeville,Aylesbury,,HP22 3BL,General Needs,House,2021,Traditional,Natural gas (mains) +35 Eynesford Road,Stoke Mandeville,Aylesbury,,HP22 3BL,General Needs,House,2021,Traditional,Natural gas (mains) +49 Eynesford Road,Stoke Mandeville,Aylesbury,,HP22 3BL,General Needs,Bungalow,2020,Traditional,Natural gas (mains) +51 Eynesford Road,Stoke Mandeville,Aylesbury,,HP22 3BL,General Needs,Bungalow,2020,Traditional,Natural gas (mains) +53 Eynesford Road,Stoke Mandeville,Aylesbury,,HP22 3BL,General Needs,Bungalow,2020,Traditional,Natural gas (mains) +20 White Hart Field,Quainton,Aylesbury,,HP22 4AT,General Needs,House,1980,Traditional,ASHP +3 White Hart Field,Quainton,Aylesbury,,HP22 4AT,General Needs,House,1980,Traditional,LPG +16 Upper Street,Quainton,Aylesbury,,HP22 4AY,General Needs,House,1955,Traditional,LPG +28 Upper Street,Quainton,Aylesbury,,HP22 4AY,General Needs,Bungalow,1955,Traditional,LPG +30 Upper Street,Quainton,Aylesbury,,HP22 4AY,General Needs,House,1955,Traditional,LPG +36 Upper Street,Quainton,Aylesbury,,HP22 4AY,General Needs,House,1955,Traditional,LPG +24 Upper Street,Quainton,Aylesbury,,HP22 4AY,General Needs,Bungalow,1955,Traditional,Storage heaters +50 Upper Street,Quainton,Aylesbury,,HP22 4BA,General Needs,House,1958,Traditional,ASHP +60 Upper Street,Quainton,Aylesbury,,HP22 4BA,General Needs,House,1958,Traditional,ASHP +58 Upper Street,Quainton,Aylesbury,,HP22 4BA,General Needs,House,1958,Traditional,LPG +62 Upper Street,Quainton,Aylesbury,,HP22 4BA,General Needs,Bungalow,1957,Traditional,LPG +46 Upper Street,Quainton,Aylesbury,,HP22 4BA,General Needs,Bungalow,1957,Traditional,Storage heaters +48 Upper Street,Quainton,Aylesbury,,HP22 4BA,General Needs,Bungalow,1957,Traditional,Storage heaters +64 Upper Street,Quainton,Aylesbury,,HP22 4BA,General Needs,Bungalow,1957,Traditional,Storage heaters +17 North End Road,Quainton,Aylesbury,,HP22 4BD,General Needs,House,1934,Old Hundreds,LPG +39 North End Road,Quainton,Aylesbury,,HP22 4BD,General Needs,House,1934,Traditional,LPG +25 North End Road,Quainton,Aylesbury,,HP22 4BD,General Needs,Flat,1967,Traditional,Natural gas (mains) +11 North End Road,Quainton,Aylesbury,,HP22 4BD,General Needs,House,1934,Old Hundreds,Storage heaters +13 North End Road,Quainton,Aylesbury,,HP22 4BD,General Needs,House,1934,Old Hundreds,Storage heaters +27 North End Road,Quainton,Aylesbury,,HP22 4BD,General Needs,Flat,1967,Traditional,Storage heaters +29 North End Road,Quainton,Aylesbury,,HP22 4BD,General Needs,Flat,1967,Traditional,Storage heaters +17A North End Road,Quainton,Aylesbury,,HP22 4BD,General Needs,House,2015,Traditional,Storage heaters +38 North End Road,Quainton,Aylesbury,,HP22 4BE,General Needs,Bungalow,1956,Traditional,LPG +36 North End Road,Quainton,Aylesbury,,HP22 4BE,General Needs,Bungalow,1956,Traditional,LPG +42 North End Road,Quainton,Aylesbury,,HP22 4BE,General Needs,House,1956,Traditional,LPG +44 North End Road,Quainton,Aylesbury,,HP22 4BE,General Needs,House,1956,Traditional,LPG +48 North End Road,Quainton,Aylesbury,,HP22 4BE,General Needs,House,1956,Traditional,LPG +52 North End Road,Quainton,Aylesbury,,HP22 4BE,General Needs,Bungalow,1956,Traditional,LPG +54 North End Road,Quainton,Aylesbury,,HP22 4BE,General Needs,Bungalow,1956,Traditional,LPG +44 Lower Street,Quainton,Aylesbury,,HP22 4BJ,General Needs,House,1948,Traditional,LPG +60 Station Road,Quainton,Aylesbury,,HP22 4BT,General Needs,House,1930,Traditional,LPG +102 Station Road,Quainton,Aylesbury,,HP22 4BT,General Needs,House,1939,Traditional,LPG +110 Station Road,Quainton,Aylesbury,,HP22 4BT,General Needs,House,1939,Traditional,Oil +106 Station Road,Quainton,Aylesbury,,HP22 4BT,General Needs,House,1939,Traditional,Storage heaters +108 Station Road,Quainton,Aylesbury,,HP22 4BT,General Needs,House,1939,Traditional,Storage heaters +2 West View,Hardwick,Aylesbury,,HP22 4DU,General Needs,House,1938,Traditional,LPG +6 West View,Hardwick,Aylesbury,,HP22 4DU,General Needs,House,1950,Traditional,LPG +1 Coronation Bungalows,Hardwick,Aylesbury,,HP22 4DX,General Needs,Bungalow,1953,Traditional,LPG +2 Coronation Bungalows,Hardwick,Aylesbury,,HP22 4DX,General Needs,Bungalow,1953,Traditional,LPG +1 Lower Road,Hardwick,Aylesbury,,HP22 4EA,General Needs,House,1927,Old Hundreds,Oil +2 Lower Road,Hardwick,Aylesbury,,HP22 4EA,General Needs,House,1927,Old Hundreds,Oil +4 Lower Road,Hardwick,Aylesbury,,HP22 4EA,General Needs,House,1927,Old Hundreds,Storage heaters +4 North View,Hardwick,Aylesbury,,HP22 4EB,General Needs,House,1950,Traditional,LPG +5 North View,Hardwick,Aylesbury,,HP22 4EB,General Needs,House,1950,Traditional,LPG +2 North View,Hardwick,Aylesbury,,HP22 4EB,General Needs,House,1950,Traditional,Storage heaters +8 North View,Hardwick,Aylesbury,,HP22 4EB,General Needs,Bungalow,1967,Traditional,Storage heaters +1 Windmill Bungalows,Bowling Alley,Oving,Aylesbury,HP22 4HH,General Needs,Bungalow,1961,Traditional,ASHP +4 Windmill Bungalows,Bowling Alley,Oving,Aylesbury,HP22 4HH,General Needs,Bungalow,1961,Traditional,LPG +2 Windmill Bungalows,Bowling Alley,Oving,Aylesbury,HP22 4HH,General Needs,Bungalow,1961,Traditional,Storage heaters +3 Windmill Bungalows,Bowling Alley,Oving,Aylesbury,HP22 4HH,General Needs,Bungalow,1961,Traditional,Storage heaters +5 Stone View,Oving,Aylesbury,,HP22 4HJ,General Needs,House,1923,Traditional,LPG +15 Stone View,Oving,Aylesbury,,HP22 4HJ,General Needs,House,1936,Traditional,LPG +16 Stone View,Oving,Aylesbury,,HP22 4HJ,General Needs,House,1934,Traditional,LPG +19 Stone View,Oving,Aylesbury,,HP22 4HJ,General Needs,House,1939,Traditional,LPG +8 Stone View,Oving,Aylesbury,,HP22 4HJ,General Needs,House,1924,Traditional,Oil +18 Ashgrove Gardens,Whitchurch,Aylesbury,,HP22 4JL,General Needs,House,1949,Traditional,ASHP +33 Ashgrove Gardens,Whitchurch,Aylesbury,,HP22 4JL,General Needs,House,1948,Traditional,ASHP +3 Ashgrove Gardens,Whitchurch,Aylesbury,,HP22 4JL,General Needs,House,1939,Traditional,LPG +5 Ashgrove Gardens,Whitchurch,Aylesbury,,HP22 4JL,General Needs,House,1939,Traditional,LPG +9 Ashgrove Gardens,Whitchurch,Aylesbury,,HP22 4JL,General Needs,House,1937,Traditional,LPG +34 Ashgrove Gardens,Whitchurch,Aylesbury,,HP22 4JL,General Needs,House,1948,Traditional,LPG +8 Ashgrove Gardens,Whitchurch,Aylesbury,,HP22 4JL,General Needs,House,1937,Traditional,Oil +15 Ashgrove Gardens,Whitchurch,Aylesbury,,HP22 4JL,General Needs,House,1949,Traditional,Oil +32 Ashgrove Gardens,Whitchurch,Aylesbury,,HP22 4JL,General Needs,House,1948,Traditional,Oil +10 Ashgrove Gardens,Whitchurch,Aylesbury,,HP22 4JL,General Needs,House,1939,Traditional,Storage heaters +26 Ashgrove Gardens,Whitchurch,Aylesbury,,HP22 4JL,General Needs,House,1949,Traditional,Storage heaters +42 Ashgrove Gardens,Whitchurch,Aylesbury,,HP22 4JN,General Needs,House,1952,Traditional,LPG +47 Ashgrove Gardens,Whitchurch,Aylesbury,,HP22 4JN,General Needs,House,1954,Traditional,LPG +48 Ashgrove Gardens,Whitchurch,Aylesbury,,HP22 4JN,General Needs,House,1954,Traditional,LPG +58 Ashgrove Gardens,Whitchurch,Aylesbury,,HP22 4JN,General Needs,Bungalow,1954,Traditional,LPG +59 Ashgrove Gardens,Whitchurch,Aylesbury,,HP22 4JN,General Needs,House,1954,Traditional,LPG +68 Ashgrove Gardens,Whitchurch,Aylesbury,,HP22 4JN,General Needs,House,1954,Traditional,LPG +67 Ashgrove Gardens,Whitchurch,Aylesbury,,HP22 4JN,General Needs,House,1954,Traditional,Oil +55A Ashgrove Gardens,Whitchurch,Aylesbury,,HP22 4JN,General Needs,Bungalow,1957,Traditional,Storage heaters +56A Ashgrove Gardens,Whitchurch,Aylesbury,,HP22 4JN,General Needs,Bungalow,1957,Traditional,Storage heaters +51 Ashgrove Gardens,Whitchurch,Aylesbury,,HP22 4JN,General Needs,House,1954,Traditional,Storage heaters +53 Ashgrove Gardens,Whitchurch,Aylesbury,,HP22 4JN,General Needs,Bungalow,1954,Traditional,Storage heaters +54 Ashgrove Gardens,Whitchurch,Aylesbury,,HP22 4JN,General Needs,Bungalow,1954,Traditional,Storage heaters +55 Ashgrove Gardens,Whitchurch,Aylesbury,,HP22 4JN,General Needs,Bungalow,1954,Traditional,Storage heaters +56 Ashgrove Gardens,Whitchurch,Aylesbury,,HP22 4JN,General Needs,Bungalow,1954,Traditional,Storage heaters +57 Ashgrove Gardens,Whitchurch,Aylesbury,,HP22 4JN,General Needs,Bungalow,1954,Traditional,Storage heaters +3 Bushmead Road,Whitchurch,Aylesbury,,HP22 4LG,General Needs,House,1934,Traditional,LPG +7 Bushmead Road,Whitchurch,Aylesbury,,HP22 4LG,General Needs,House,1934,Traditional,LPG +9 Bushmead Road,Whitchurch,Aylesbury,,HP22 4LG,General Needs,House,1934,Traditional,LPG +11 Bushmead Road,Whitchurch,Aylesbury,,HP22 4LG,General Needs,House,1934,Traditional,LPG +33 Bushmead Road,Whitchurch,Aylesbury,,HP22 4LG,General Needs,House,1928,Old Hundreds,LPG +35 Bushmead Road,Whitchurch,Aylesbury,,HP22 4LG,General Needs,House,1928,Old Hundreds,LPG +5 Bushmead Road,Whitchurch,Aylesbury,,HP22 4LG,General Needs,House,1934,Traditional,Oil +1 Bricstock,Aston Abbotts,Aylesbury,,HP22 4LP,General Needs,Bungalow,1975,Traditional,Natural gas (mains) +4 Bricstock,Aston Abbotts,Aylesbury,,HP22 4LP,General Needs,Bungalow,1975,Traditional,Natural gas (mains) +7 Bricstock,Aston Abbotts,Aylesbury,,HP22 4LP,General Needs,Bungalow,1975,Traditional,Natural gas (mains) +8 Bricstock,Aston Abbotts,Aylesbury,,HP22 4LP,General Needs,Bungalow,1975,Traditional,Natural gas (mains) +9 Bricstock,Aston Abbotts,Aylesbury,,HP22 4LP,General Needs,Bungalow,1975,Traditional,Natural gas (mains) +10 Bricstock,Aston Abbotts,Aylesbury,,HP22 4LP,General Needs,Bungalow,1975,Traditional,Natural gas (mains) +11 Bricstock,Aston Abbotts,Aylesbury,,HP22 4LP,General Needs,Bungalow,1975,Traditional,Natural gas (mains) +2 Bricstock,Aston Abbotts,Aylesbury,,HP22 4LP,General Needs,Bungalow,1975,Traditional,Storage heaters +5 Bricstock,Aston Abbotts,Aylesbury,,HP22 4LP,General Needs,Bungalow,1975,Traditional,Storage heaters +1 Wingrave Road,Aston Abbotts,Aylesbury,,HP22 4LT,General Needs,House,1938,Traditional,Natural gas (mains) +3 Wingrave Road,Aston Abbotts,Aylesbury,,HP22 4LT,General Needs,House,1938,Traditional,Natural gas (mains) +5 Wingrave Road,Aston Abbotts,Aylesbury,,HP22 4LT,General Needs,House,1938,Traditional,Natural gas (mains) +4 The Green,Aston Abbotts,Aylesbury,,HP22 4LX,General Needs,House,1961,Traditional,Natural gas (mains) +10 The Green,Aston Abbotts,Aylesbury,,HP22 4LX,General Needs,House,1961,Traditional,Natural gas (mains) +21 The Green,Aston Abbotts,Aylesbury,,HP22 4LX,General Needs,House,1952,Traditional,Natural gas (mains) +28 The Green,Aston Abbotts,Aylesbury,,HP22 4LX,General Needs,Bungalow,1960,Traditional,Natural gas (mains) +30 The Green,Aston Abbotts,Aylesbury,,HP22 4LX,General Needs,Bungalow,1960,Traditional,Natural gas (mains) +32 The Green,Aston Abbotts,Aylesbury,,HP22 4LX,General Needs,Bungalow,1960,Traditional,Natural gas (mains) +34 The Green,Aston Abbotts,Aylesbury,,HP22 4LX,General Needs,Bungalow,1960,Traditional,Natural gas (mains) +2 The Green,Aston Abbotts,Aylesbury,,HP22 4LX,General Needs,House,1960,Traditional,Storage heaters +6 Ross Road,Aston Abbotts,Aylesbury,,HP22 4LZ,General Needs,House,1947,Traditional,Natural gas (mains) +93 Aston Abbotts Road,Weedon,Aylesbury,,HP22 4NH,General Needs,House,1952,Traditional,ASHP +64 Aston Abbotts Road,Weedon,Aylesbury,,HP22 4NH,General Needs,House,1946,Traditional,LPG +66 Aston Abbotts Road,Weedon,Aylesbury,,HP22 4NH,General Needs,House,1946,Traditional,LPG +74 Aston Abbotts Road,Weedon,Aylesbury,,HP22 4NH,General Needs,House,1936,Traditional,LPG +81 Aston Abbotts Road,Weedon,Aylesbury,,HP22 4NH,General Needs,House,1953,Traditional,LPG +86 Aston Abbotts Road,Weedon,Aylesbury,,HP22 4NH,General Needs,Bungalow,1965,Traditional,LPG +88 Aston Abbotts Road,Weedon,Aylesbury,,HP22 4NH,General Needs,Bungalow,1965,Traditional,LPG +89 Aston Abbotts Road,Weedon,Aylesbury,,HP22 4NH,General Needs,House,1952,Traditional,LPG +90 Aston Abbotts Road,Weedon,Aylesbury,,HP22 4NH,General Needs,House,1927,Old Hundreds,LPG +91 Aston Abbotts Road,Weedon,Aylesbury,,HP22 4NH,General Needs,House,1952,Traditional,LPG +84 Aston Abbotts Road,Weedon,Aylesbury,,HP22 4NH,General Needs,House,1928,Old Hundreds,Oil +4 East End,Weedon,Aylesbury,,HP22 4NJ,General Needs,House,1936,Traditional,ASHP +2 East End,Weedon,Aylesbury,,HP22 4NJ,General Needs,House,1936,Traditional,LPG +5 Church Street,Wingrave,Aylesbury,,HP22 4PE,General Needs,Bungalow,1962,Traditional,Natural gas (mains) +7 Church Street,Wingrave,Aylesbury,,HP22 4PE,General Needs,Bungalow,1962,Traditional,Natural gas (mains) +9 Church Street,Wingrave,Aylesbury,,HP22 4PE,General Needs,Bungalow,1962,Traditional,Natural gas (mains) +11 Church Street,Wingrave,Aylesbury,,HP22 4PE,General Needs,Bungalow,1962,Traditional,Natural gas (mains) +13 Church Street,Wingrave,Aylesbury,,HP22 4PE,General Needs,Bungalow,1962,Traditional,Natural gas (mains) +15 Church Street,Wingrave,Aylesbury,,HP22 4PE,General Needs,Bungalow,1962,Traditional,Natural gas (mains) +29 Church Street,Wingrave,Aylesbury,,HP22 4PE,General Needs,House,1950,Traditional,Natural gas (mains) +82 Winslow Road,Wingrave,Aylesbury,,HP22 4QB,General Needs,House,1948,Traditional,Natural gas (mains) +84 Winslow Road,Wingrave,Aylesbury,,HP22 4QB,General Needs,House,1948,Traditional,Natural gas (mains) +106 Winslow Road,Wingrave,Aylesbury,,HP22 4QB,General Needs,House,1936,Traditional,Natural gas (mains) +125 Winslow Road,Wingrave,Aylesbury,,HP22 4QB,General Needs,House,1956,Traditional,Natural gas (mains) +1 Abbotts Way,Wingrave,Aylesbury,,HP22 4QF,Independent Living,Bungalow,1970,Traditional,Natural gas (mains) +2 Abbotts Way,Wingrave,Aylesbury,,HP22 4QF,Independent Living,Bungalow,1970,Traditional,Natural gas (mains) +3 Abbotts Way,Wingrave,Aylesbury,,HP22 4QF,Independent Living,Bungalow,1970,Traditional,Natural gas (mains) +4 Abbotts Way,Wingrave,Aylesbury,,HP22 4QF,Independent Living,Bungalow,1970,Traditional,Natural gas (mains) +5 Abbotts Way,Wingrave,Aylesbury,,HP22 4QF,Independent Living,Bungalow,1970,Traditional,Natural gas (mains) +6 Abbotts Way,Wingrave,Aylesbury,,HP22 4QF,Independent Living,Bungalow,1970,Traditional,Natural gas (mains) +7 Abbotts Way,Wingrave,Aylesbury,,HP22 4QF,Independent Living,Bungalow,1970,Traditional,Natural gas (mains) +8 Abbotts Way,Wingrave,Aylesbury,,HP22 4QF,Independent Living,Bungalow,1970,Traditional,Natural gas (mains) +9 Abbotts Way,Wingrave,Aylesbury,,HP22 4QF,Independent Living,Bungalow,1970,Traditional,Natural gas (mains) +17 Abbotts Way,Wingrave,Aylesbury,,HP22 4QF,General Needs,House,1970,Traditional,Natural gas (mains) +19 Abbotts Way,Wingrave,Aylesbury,,HP22 4QF,General Needs,House,1970,Traditional,Natural gas (mains) +21 Abbotts Way,Wingrave,Aylesbury,,HP22 4QF,Independent Living,Bungalow,1971,Traditional,Natural gas (mains) +23 Abbotts Way,Wingrave,Aylesbury,,HP22 4QF,Independent Living,Bungalow,1971,Traditional,Natural gas (mains) +37 Abbotts Way,Wingrave,Aylesbury,,HP22 4QF,General Needs,House,1971,Traditional,Natural gas (mains) +39 Abbotts Way,Wingrave,Aylesbury,,HP22 4QF,General Needs,House,1971,Traditional,Natural gas (mains) +41 Abbotts Way,Wingrave,Aylesbury,,HP22 4QF,General Needs,House,1971,Traditional,Natural gas (mains) +43 Abbotts Way,Wingrave,Aylesbury,,HP22 4QF,General Needs,House,1971,Traditional,Natural gas (mains) +49 Abbotts Way,Wingrave,Aylesbury,,HP22 4QF,Independent Living,Bungalow,1971,Traditional,Natural gas (mains) +51 Abbotts Way,Wingrave,Aylesbury,,HP22 4QF,Independent Living,Bungalow,1971,Traditional,Natural gas (mains) +53 Abbotts Way,Wingrave,Aylesbury,,HP22 4QF,General Needs,Bungalow,1971,Traditional,Natural gas (mains) +55 Abbotts Way,Wingrave,Aylesbury,,HP22 4QF,Independent Living,Bungalow,1971,Traditional,Natural gas (mains) +57 Abbotts Way,Wingrave,Aylesbury,,HP22 4QF,Independent Living,Bungalow,1971,Traditional,Natural gas (mains) +59 Abbotts Way,Wingrave,Aylesbury,,HP22 4QF,Independent Living,Bungalow,1971,Traditional,Natural gas (mains) +61 Abbotts Way,Wingrave,Aylesbury,,HP22 4QF,Independent Living,Bungalow,1971,Traditional,Natural gas (mains) +63 Abbotts Way,Wingrave,Aylesbury,,HP22 4QF,Independent Living,Bungalow,1971,Traditional,Natural gas (mains) +65 Abbotts Way,Wingrave,Aylesbury,,HP22 4QF,Independent Living,Bungalow,1971,Traditional,Natural gas (mains) +67 Abbotts Way,Wingrave,Aylesbury,,HP22 4QF,Independent Living,Bungalow,1971,Traditional,Natural gas (mains) +69 Abbotts Way,Wingrave,Aylesbury,,HP22 4QF,Independent Living,Bungalow,1971,Traditional,Natural gas (mains) +71 Abbotts Way,Wingrave,Aylesbury,,HP22 4QF,Independent Living,Bungalow,1971,Traditional,Natural gas (mains) +73 Abbotts Way,Wingrave,Aylesbury,,HP22 4QF,Independent Living,Bungalow,1971,Traditional,Natural gas (mains) +75 Abbotts Way,Wingrave,Aylesbury,,HP22 4QF,Independent Living,Bungalow,1971,Traditional,Natural gas (mains) +77 Abbotts Way,Wingrave,Aylesbury,,HP22 4QF,General Needs,Bungalow,1971,Traditional,Natural gas (mains) +2 Chiltern Road,Wingrave,Aylesbury,,HP22 4QQ,General Needs,House,1956,Traditional,Natural gas (mains) +3 Chiltern Road,Wingrave,Aylesbury,,HP22 4QQ,General Needs,House,1956,Traditional,Natural gas (mains) +5 Chiltern Road,Wingrave,Aylesbury,,HP22 4QQ,General Needs,House,1956,Traditional,Natural gas (mains) +8 Chiltern Road,Wingrave,Aylesbury,,HP22 4QQ,General Needs,House,1956,Traditional,Natural gas (mains) +10 Chiltern Road,Wingrave,Aylesbury,,HP22 4QQ,General Needs,House,1956,Traditional,Natural gas (mains) +12 Chiltern Road,Wingrave,Aylesbury,,HP22 4QQ,General Needs,House,1956,Traditional,Natural gas (mains) +19 Chiltern Road,Wingrave,Aylesbury,,HP22 4QQ,General Needs,House,1955,Traditional,Natural gas (mains) +21 Chiltern Road,Wingrave,Aylesbury,,HP22 4QQ,General Needs,House,1955,Traditional,Natural gas (mains) +22 Chiltern Road,Wingrave,Aylesbury,,HP22 4QQ,General Needs,House,1955,Traditional,Natural gas (mains) +23 Chiltern Road,Wingrave,Aylesbury,,HP22 4QQ,General Needs,House,1955,Traditional,Natural gas (mains) +30 Chiltern Road,Wingrave,Aylesbury,,HP22 4QQ,General Needs,House,1955,Traditional,Natural gas (mains) +31 Chiltern Road,Wingrave,Aylesbury,,HP22 4QQ,General Needs,House,1955,Traditional,Natural gas (mains) +32 Chiltern Road,Wingrave,Aylesbury,,HP22 4QQ,General Needs,House,1955,Traditional,Natural gas (mains) +33 Chiltern Road,Wingrave,Aylesbury,,HP22 4QQ,General Needs,House,1955,Traditional,Natural gas (mains) +34 Chiltern Road,Wingrave,Aylesbury,,HP22 4QQ,General Needs,House,1955,Traditional,Natural gas (mains) +35 Chiltern Road,Wingrave,Aylesbury,,HP22 4QQ,General Needs,House,1955,Traditional,Natural gas (mains) +37 Chiltern Road,Wingrave,Aylesbury,,HP22 4QQ,General Needs,House,1955,Traditional,Natural gas (mains) +38 Chiltern Road,Wingrave,Aylesbury,,HP22 4QQ,General Needs,House,1955,Traditional,Natural gas (mains) +40 Chiltern Road,Wingrave,Aylesbury,,HP22 4QQ,General Needs,House,1955,Traditional,Natural gas (mains) +42 Chiltern Road,Wingrave,Aylesbury,,HP22 4QQ,General Needs,House,1955,Traditional,Natural gas (mains) +9 Bennetts Lane,Rowsham,Aylesbury,,HP22 4QU,General Needs,House,1950,Traditional,Natural gas (mains) +78 Burcott Lane,Bierton,Aylesbury,,HP22 5AS,General Needs,House,1955,Traditional,Natural gas (mains) +82 Burcott Lane,Bierton,Aylesbury,,HP22 5AS,General Needs,House,1956,Traditional,Natural gas (mains) +86 Burcott Lane,Bierton,Aylesbury,,HP22 5AS,General Needs,Bungalow,1956,Traditional,Natural gas (mains) +88 Burcott Lane,Bierton,Aylesbury,,HP22 5AS,General Needs,Bungalow,1956,Traditional,Natural gas (mains) +90 Burcott Lane,Bierton,Aylesbury,,HP22 5AS,General Needs,Bungalow,1956,Traditional,Natural gas (mains) +92 Burcott Lane,Bierton,Aylesbury,,HP22 5AS,General Needs,Bungalow,1956,Traditional,Natural gas (mains) +14 Great Lane,Bierton,Aylesbury,,HP22 5BX,General Needs,Bungalow,1967,Traditional,Natural gas (mains) +16 Great Lane,Bierton,Aylesbury,,HP22 5BX,General Needs,Bungalow,1967,Traditional,Natural gas (mains) +18 Great Lane,Bierton,Aylesbury,,HP22 5BX,General Needs,Bungalow,1967,Traditional,Natural gas (mains) +30 Great Lane,Bierton,Aylesbury,,HP22 5BX,General Needs,House,1947,Traditional,Natural gas (mains) +32 Great Lane,Bierton,Aylesbury,,HP22 5BX,General Needs,House,1947,Traditional,Natural gas (mains) +36 Great Lane,Bierton,Aylesbury,,HP22 5BX,General Needs,House,1947,Traditional,Natural gas (mains) +40 Great Lane,Bierton,Aylesbury,,HP22 5BX,General Needs,Bungalow,1951,Traditional,Natural gas (mains) +42 Great Lane,Bierton,Aylesbury,,HP22 5BX,General Needs,Bungalow,1951,Traditional,Natural gas (mains) +52 Great Lane,Bierton,Aylesbury,,HP22 5BX,General Needs,Bungalow,1951,Traditional,Natural gas (mains) +56 Great Lane,Bierton,Aylesbury,,HP22 5BX,General Needs,House,1948,Traditional,Natural gas (mains) +58 Great Lane,Bierton,Aylesbury,Bucks,HP22 5BX,General Needs,House,1948,Traditional,Natural gas (mains) +1 Old Orchards,Bierton,Aylesbury,,HP22 5BY,General Needs,House,1967,Traditional,Natural gas (mains) +4 Old Orchards,Bierton,Aylesbury,,HP22 5BY,General Needs,Bungalow,1966,Traditional,Natural gas (mains) +6 Old Orchards,Bierton,Aylesbury,,HP22 5BY,General Needs,Bungalow,1966,Traditional,Natural gas (mains) +8 Old Orchards,Bierton,Aylesbury,,HP22 5BY,General Needs,Bungalow,1966,Traditional,Natural gas (mains) +10 Old Orchards,Bierton,Aylesbury,,HP22 5BY,General Needs,Bungalow,1966,Traditional,Natural gas (mains) +12 Old Orchards,Bierton,Aylesbury,,HP22 5BY,General Needs,Bungalow,1966,Traditional,Natural gas (mains) +14 Old Orchards,Bierton,Aylesbury,,HP22 5BY,General Needs,Bungalow,1966,Traditional,Natural gas (mains) +17 Old Orchards,Bierton,Aylesbury,,HP22 5BY,General Needs,Flat,1967,Traditional,Natural gas (mains) +19 Old Orchards,Bierton,Aylesbury,,HP22 5BY,General Needs,Flat,1967,Traditional,Natural gas (mains) +21 Old Orchards,Bierton,Aylesbury,,HP22 5BY,General Needs,Flat,1967,Traditional,Natural gas (mains) +23 Old Orchards,Bierton,Aylesbury,,HP22 5BY,General Needs,Flat,1967,Traditional,Natural gas (mains) +25 Old Orchards,Bierton,Aylesbury,,HP22 5BY,General Needs,Flat,1967,Traditional,Natural gas (mains) +27 Old Orchards,Bierton,Aylesbury,,HP22 5BY,General Needs,Flat,1967,Traditional,Natural gas (mains) +29 Old Orchards,Bierton,Aylesbury,,HP22 5BY,General Needs,Flat,1967,Traditional,Natural gas (mains) +7 The Close,Bierton,Aylesbury,,HP22 5BZ,General Needs,Bungalow,1950,Hawkesley Aluminium,Natural gas (mains) +8 The Close,Bierton,Aylesbury,,HP22 5BZ,General Needs,Bungalow,1950,Hawkesley Aluminium,Natural gas (mains) +10 The Close,Bierton,Aylesbury,,HP22 5BZ,General Needs,Bungalow,1962,Traditional,Natural gas (mains) +11 The Close,Bierton,Aylesbury,,HP22 5BZ,General Needs,Bungalow,1950,Hawkesley Aluminium,Natural gas (mains) +12 The Close,Bierton,Aylesbury,,HP22 5BZ,General Needs,Bungalow,1962,Traditional,Natural gas (mains) +23 Great Lane,Bierton,Aylesbury,,HP22 5DE,General Needs,House,1934,Traditional,Natural gas (mains) +25 Great Lane,Bierton,Aylesbury,,HP22 5DE,General Needs,House,1934,Traditional,Natural gas (mains) +35 Great Lane,Bierton,Aylesbury,,HP22 5DE,General Needs,House,1934,Traditional,Natural gas (mains) +37 Great Lane,Bierton,Aylesbury,,HP22 5DE,General Needs,House,1934,Traditional,Natural gas (mains) +137 Aylesbury Road,Bierton,Aylesbury,,HP22 5DW,General Needs,House,1926,Old Hundreds,Natural gas (mains) +141 Aylesbury Road,Bierton,Aylesbury,,HP22 5DW,General Needs,House,1926,Old Hundreds,Natural gas (mains) +149 Aylesbury Road,Bierton,Aylesbury,,HP22 5DW,General Needs,House,1926,Old Hundreds,Natural gas (mains) +17 Weston Road,Aston Clinton,Aylesbury,,HP22 5EG,General Needs,House,1928,Old Hundreds,Natural gas (mains) +25 Weston Road,Aston Clinton,Aylesbury,,HP22 5EG,General Needs,House,1928,Old Hundreds,Natural gas (mains) +27 Weston Road,Aston Clinton,Aylesbury,,HP22 5EG,General Needs,House,1928,Old Hundreds,Natural gas (mains) +37 Weston Road,Aston Clinton,Aylesbury,,HP22 5EJ,General Needs,House,1928,Old Hundreds,Natural gas (mains) +41 Weston Road,Aston Clinton,Aylesbury,,HP22 5EJ,General Needs,House,1928,Old Hundreds,Natural gas (mains) +43 Weston Road,Aston Clinton,Aylesbury,,HP22 5EJ,General Needs,House,1928,Old Hundreds,Natural gas (mains) +61 Weston Road,Aston Clinton,Aylesbury,,HP22 5EJ,General Needs,House,1933,Traditional,Natural gas (mains) +65 Weston Road,Aston Clinton,Aylesbury,,HP22 5EJ,General Needs,House,1933,Traditional,Natural gas (mains) +67 Weston Road,Aston Clinton,Aylesbury,,HP22 5EJ,General Needs,House,1933,Traditional,Natural gas (mains) +69 Weston Road,Aston Clinton,Aylesbury,,HP22 5EJ,General Needs,House,1933,Traditional,Natural gas (mains) +71 Weston Road,Aston Clinton,Aylesbury,,HP22 5EJ,General Needs,House,1933,Traditional,Natural gas (mains) +Flat 1 Beechwood House,Beechwood Way,Aston Clinton,Aylesbury,HP22 5JN,General Needs,Flat,1977,Traditional,Natural gas (mains) +Flat 2 Beechwood House,Beechwood Way,Aston Clinton,Aylesbury,HP22 5JN,General Needs,Flat,1977,Traditional,Natural gas (mains) +Flat 5 Beechwood House,Beechwood Way,Aston Clinton,Aylesbury,HP22 5JN,General Needs,Flat,1977,Traditional,Natural gas (mains) +Flat 6 Beechwood House,Beechwood Way,Aston Clinton,Aylesbury,HP22 5JN,General Needs,Flat,1977,Traditional,Natural gas (mains) +Flat 8 Beechwood House,Beechwood Way,Aston Clinton,Aylesbury,HP22 5JN,General Needs,Flat,1977,Traditional,Natural gas (mains) +Flat 9 Beechwood House,Beechwood Way,Aston Clinton,Aylesbury,HP22 5JN,General Needs,Flat,1977,Traditional,Natural gas (mains) +Flat 11 Beechwood House,Beechwood Way,Aston Clinton,Aylesbury,HP22 5JN,General Needs,Flat,1977,Traditional,Natural gas (mains) +Flat 12 Beechwood House,Beechwood Way,Aston Clinton,Aylesbury,HP22 5JN,General Needs,Flat,1977,Traditional,Natural gas (mains) +2 Beechwood Way,Aston Clinton,Aylesbury,,HP22 5JP,General Needs,Bungalow,1977,Traditional,Natural gas (mains) +4 Beechwood Way,Aston Clinton,Aylesbury,,HP22 5JP,General Needs,Bungalow,1977,Traditional,Natural gas (mains) +8 Beechwood Way,Aston Clinton,Aylesbury,,HP22 5JP,General Needs,House,1977,Traditional,Natural gas (mains) +12 Beechwood Way,Aston Clinton,Aylesbury,,HP22 5JP,General Needs,House,1977,Traditional,Natural gas (mains) +18 Beechwood Way,Aston Clinton,Aylesbury,,HP22 5JP,General Needs,House,1977,Traditional,Natural gas (mains) +20 Beechwood Way,Aston Clinton,Aylesbury,,HP22 5JP,General Needs,House,1977,Traditional,Natural gas (mains) +26 Beechwood Way,Aston Clinton,Aylesbury,,HP22 5JP,General Needs,House,1977,Traditional,Natural gas (mains) +28 Beechwood Way,Aston Clinton,Aylesbury,,HP22 5JP,General Needs,House,1977,Traditional,Natural gas (mains) +7 Brackley Close,Aston Clinton,Aylesbury,,HP22 5JQ,General Needs,House,2018,Traditional,Natural gas (mains) +9 Brackley Close,Aston Clinton,Aylesbury,,HP22 5JQ,General Needs,House,2018,Traditional,Natural gas (mains) +11 Brackley Close,Aston Clinton,Aylesbury,,HP22 5JQ,General Needs,House,2018,Traditional,Natural gas (mains) +12 Brackley Close,Aston Clinton,Aylesbury,,HP22 5JQ,General Needs,House,2018,Traditional,Natural gas (mains) +14 Brackley Close,Aston Clinton,Aylesbury,,HP22 5JQ,General Needs,House,2018,Traditional,Natural gas (mains) +16 Brackley Close,Aston Clinton,Aylesbury,,HP22 5JQ,General Needs,House,2018,Traditional,Natural gas (mains) +11 Lower Icknield Way,Aston Clinton,Aylesbury,,HP22 5JS,General Needs,House,1947,Traditional,Natural gas (mains) +17 Lower Icknield Way,Aston Clinton,Aylesbury,,HP22 5JS,General Needs,House,1947,Traditional,Natural gas (mains) +5 Beaconsfield Road,Aston Clinton,Aylesbury,,HP22 5JU,General Needs,House,1951,Traditional,Natural gas (mains) +6 Beaconsfield Road,Aston Clinton,Aylesbury,,HP22 5JU,General Needs,House,1985,Traditional,Natural gas (mains) +8 Beaconsfield Road,Aston Clinton,Aylesbury,,HP22 5JU,General Needs,House,1985,Traditional,Natural gas (mains) +12 Beaconsfield Road,Aston Clinton,Aylesbury,,HP22 5JU,General Needs,House,1950,Traditional,Natural gas (mains) +13 Beaconsfield Road,Aston Clinton,Aylesbury,,HP22 5JU,General Needs,House,1951,Traditional,Natural gas (mains) +15 Beaconsfield Road,Aston Clinton,Aylesbury,,HP22 5JU,General Needs,House,1951,Traditional,Natural gas (mains) +16 Beaconsfield Road,Aston Clinton,Aylesbury,,HP22 5JU,General Needs,House,1985,Traditional,Natural gas (mains) +19 Beaconsfield Road,Aston Clinton,Aylesbury,,HP22 5JU,General Needs,House,1951,Traditional,Natural gas (mains) +21 Beaconsfield Road,Aston Clinton,Aylesbury,,HP22 5JU,General Needs,House,1951,Traditional,Natural gas (mains) +23 Beaconsfield Road,Aston Clinton,Aylesbury,,HP22 5JU,General Needs,House,1951,Traditional,Natural gas (mains) +1 Beechwood Way,Aston Clinton,Aylesbury,,HP22 5JW,General Needs,House,1977,Traditional,Natural gas (mains) +9 Beechwood Way,Aston Clinton,Aylesbury,,HP22 5JW,General Needs,House,1977,Traditional,Natural gas (mains) +13 Beechwood Way,Aston Clinton,Aylesbury,,HP22 5JW,General Needs,House,1977,Traditional,Natural gas (mains) +21 Beechwood Way,Aston Clinton,Aylesbury,,HP22 5JW,General Needs,Flat,1977,Traditional,Natural gas (mains) +23 Beechwood Way,Aston Clinton,Aylesbury,,HP22 5JW,General Needs,Flat,1977,Traditional,Natural gas (mains) +27 Beechwood Way,Aston Clinton,Aylesbury,,HP22 5JW,General Needs,Flat,1977,Traditional,Natural gas (mains) +29 Beechwood Way,Aston Clinton,Aylesbury,,HP22 5JW,General Needs,Flat,1977,Traditional,Natural gas (mains) +37 Beechwood Way,Aston Clinton,Aylesbury,,HP22 5JW,General Needs,Flat,1977,Traditional,Natural gas (mains) +43 Beechwood Way,Aston Clinton,Aylesbury,,HP22 5JW,General Needs,Flat,1977,Traditional,Natural gas (mains) +24 Beaconsfield Road,Aston Clinton,Aylesbury,,HP22 5JX,General Needs,House,1953,Traditional,Natural gas (mains) +26 Beaconsfield Road,Aston Clinton,Aylesbury,,HP22 5JX,General Needs,House,1953,Traditional,Natural gas (mains) +28 Beaconsfield Road,Aston Clinton,Aylesbury,,HP22 5JX,General Needs,House,1953,Traditional,Natural gas (mains) +34 Beaconsfield Road,Aston Clinton,Aylesbury,,HP22 5JX,General Needs,House,1953,Traditional,Natural gas (mains) +39 Beaconsfield Road,Aston Clinton,Aylesbury,,HP22 5JX,General Needs,House,1952,Traditional,Natural gas (mains) +42 Beaconsfield Road,Aston Clinton,Aylesbury,,HP22 5JX,General Needs,House,1953,Traditional,Natural gas (mains) +44 Beaconsfield Road,Aston Clinton,Aylesbury,,HP22 5JX,General Needs,House,1953,Traditional,Natural gas (mains) +45 Beaconsfield Road,Aston Clinton,Aylesbury,,HP22 5JX,General Needs,House,1953,Traditional,Natural gas (mains) +49 Beaconsfield Road,Aston Clinton,Aylesbury,,HP22 5JX,General Needs,House,1953,Traditional,Natural gas (mains) +51 Beaconsfield Road,Aston Clinton,Aylesbury,,HP22 5JX,General Needs,House,1953,Traditional,Natural gas (mains) +53 Beaconsfield Road,Aston Clinton,Aylesbury,,HP22 5JX,General Needs,House,1953,Traditional,Natural gas (mains) +57 Beaconsfield Road,Aston Clinton,Aylesbury,,HP22 5JX,General Needs,Bungalow,1972,Traditional,Natural gas (mains) +59 Beaconsfield Road,Aston Clinton,Aylesbury,,HP22 5JX,General Needs,Bungalow,1972,Traditional,Natural gas (mains) +63 Beaconsfield Road,Aston Clinton,Aylesbury,,HP22 5JX,General Needs,Flat,1973,Traditional,Natural gas (mains) +65 Beaconsfield Road,Aston Clinton,Aylesbury,,HP22 5JX,General Needs,Flat,1973,Traditional,Natural gas (mains) +71 Beaconsfield Road,Aston Clinton,Aylesbury,,HP22 5JX,General Needs,Flat,1973,Traditional,Natural gas (mains) +73 Beaconsfield Road,Aston Clinton,Aylesbury,,HP22 5JX,General Needs,Flat,1973,Traditional,Natural gas (mains) +77 Beaconsfield Road,Aston Clinton,Aylesbury,,HP22 5JX,General Needs,Bungalow,1954,Traditional,Natural gas (mains) +79 Beaconsfield Road,Aston Clinton,Aylesbury,,HP22 5JX,General Needs,Bungalow,1954,Traditional,Natural gas (mains) +81 Beaconsfield Road,Aston Clinton,Aylesbury,,HP22 5JX,General Needs,Bungalow,1954,Traditional,Natural gas (mains) +87 Beaconsfield Road,Aston Clinton,Aylesbury,,HP22 5JX,General Needs,House,1954,Traditional,Natural gas (mains) +89 Beaconsfield Road,Aston Clinton,Aylesbury,,HP22 5JX,General Needs,House,1954,Traditional,Natural gas (mains) +2 Rosebery Road,Aston Clinton,Aylesbury,,HP22 5JY,General Needs,House,1950,Traditional,Natural gas (mains) +6 Rosebery Road,Aston Clinton,Aylesbury,,HP22 5JY,General Needs,Bungalow,1985,Traditional,Natural gas (mains) +7 Rosebery Road,Aston Clinton,Aylesbury,,HP22 5JY,General Needs,House,1950,Traditional,Natural gas (mains) +8 Rosebery Road,Aston Clinton,Aylesbury,,HP22 5JY,General Needs,Bungalow,1985,Traditional,Natural gas (mains) +9 Rosebery Road,Aston Clinton,Aylesbury,,HP22 5JY,General Needs,House,1986,Traditional,Natural gas (mains) +11 Rosebery Road,Aston Clinton,Aylesbury,,HP22 5JY,General Needs,House,1986,Traditional,Natural gas (mains) +12 Rosebery Road,Aston Clinton,Aylesbury,,HP22 5JY,General Needs,House,1986,Traditional,Natural gas (mains) +16 Rosebery Road,Aston Clinton,Aylesbury,,HP22 5JY,General Needs,House,1986,Traditional,Natural gas (mains) +17 Rosebery Road,Aston Clinton,Aylesbury,,HP22 5JY,General Needs,House,1949,Traditional,Natural gas (mains) +18 Rosebery Road,Aston Clinton,Aylesbury,,HP22 5JY,General Needs,House,1953,Traditional,Natural gas (mains) +26 Rosebery Road,Aston Clinton,Aylesbury,,HP22 5JY,General Needs,House,1953,Traditional,Natural gas (mains) +31 Rosebery Road,Aston Clinton,Aylesbury,,HP22 5JY,General Needs,House,1954,Traditional,Natural gas (mains) +33 Rosebery Road,Aston Clinton,Aylesbury,,HP22 5JY,General Needs,House,1954,Traditional,Natural gas (mains) +35 Rosebery Road,Aston Clinton,Aylesbury,,HP22 5JY,General Needs,House,1954,Traditional,Natural gas (mains) +37 Rosebery Road,Aston Clinton,Aylesbury,,HP22 5JY,General Needs,House,1954,Traditional,Natural gas (mains) +38 Rosebery Road,Aston Clinton,Aylesbury,,HP22 5JY,General Needs,House,1953,Traditional,Natural gas (mains) +41 Rosebery Road,Aston Clinton,Aylesbury,,HP22 5JY,General Needs,House,1954,Traditional,Natural gas (mains) +2 Longcroft,Aston Clinton,Aylesbury,,HP22 5JZ,General Needs,Bungalow,1960,Traditional,Natural gas (mains) +3 Longcroft,Aston Clinton,Aylesbury,,HP22 5JZ,General Needs,Bungalow,1960,Traditional,Natural gas (mains) +4 Longcroft,Aston Clinton,Aylesbury,,HP22 5JZ,General Needs,Bungalow,1960,Traditional,Natural gas (mains) +5 Longcroft,Aston Clinton,Aylesbury,,HP22 5JZ,General Needs,Bungalow,1960,Traditional,Natural gas (mains) +9 Longcroft,Aston Clinton,Aylesbury,,HP22 5JZ,General Needs,House,1960,Traditional,Natural gas (mains) +14 Longcroft,Aston Clinton,Aylesbury,,HP22 5JZ,General Needs,House,1960,Traditional,Natural gas (mains) +15 Longcroft,Aston Clinton,Aylesbury,,HP22 5JZ,General Needs,Bungalow,1960,Traditional,Natural gas (mains) +16 Longcroft,Aston Clinton,Aylesbury,,HP22 5JZ,General Needs,Bungalow,1960,Traditional,Natural gas (mains) +17 Longcroft,Aston Clinton,Aylesbury,,HP22 5JZ,General Needs,Bungalow,1960,Traditional,Natural gas (mains) +18 Longcroft,Aston Clinton,Aylesbury,,HP22 5JZ,General Needs,Bungalow,1960,Traditional,Natural gas (mains) +19 Longcroft,Aston Clinton,Aylesbury,,HP22 5JZ,General Needs,Bungalow,1960,Traditional,Natural gas (mains) +20 Longcroft,Aston Clinton,Aylesbury,,HP22 5JZ,General Needs,Bungalow,1960,Traditional,Natural gas (mains) +21 Longcroft,Aston Clinton,Aylesbury,,HP22 5JZ,General Needs,Flat,2015,Traditional,Natural gas (mains) +22 Longcroft,Aston Clinton,Aylesbury,,HP22 5JZ,General Needs,Flat,2015,Traditional,Natural gas (mains) +23 Longcroft,Aston Clinton,Aylesbury,,HP22 5JZ,General Needs,Flat,2015,Traditional,Natural gas (mains) +24 Longcroft,Aston Clinton,Aylesbury,,HP22 5JZ,General Needs,Flat,2015,Traditional,Natural gas (mains) +25 Longcroft,Aston Clinton,Aylesbury,,HP22 5JZ,General Needs,Flat,2015,Traditional,Natural gas (mains) +26 Longcroft,Aston Clinton,Aylesbury,,HP22 5JZ,General Needs,Flat,2015,Traditional,Natural gas (mains) +1 Milton Road,Aston Clinton,Aylesbury,,HP22 5LA,General Needs,Bungalow,1953,Traditional,Natural gas (mains) +2 Milton Road,Aston Clinton,Aylesbury,,HP22 5LA,General Needs,Bungalow,1953,Traditional,Natural gas (mains) +3 Milton Road,Aston Clinton,Aylesbury,,HP22 5LA,General Needs,Bungalow,1953,Traditional,Natural gas (mains) +8 Milton Road,Aston Clinton,Aylesbury,,HP22 5LA,General Needs,House,1953,Traditional,Natural gas (mains) +13 Milton Road,Aston Clinton,Aylesbury,,HP22 5LA,General Needs,Bungalow,1954,Traditional,Natural gas (mains) +14 Milton Road,Aston Clinton,Aylesbury,,HP22 5LA,General Needs,Bungalow,1953,Traditional,Natural gas (mains) +16 Milton Road,Aston Clinton,Aylesbury,,HP22 5LA,General Needs,Bungalow,1953,Traditional,Natural gas (mains) +21 Buckland Road,Buckland,Aylesbury,,HP22 5LL,General Needs,House,1938,Traditional,Natural gas (mains) +25 Buckland Road,Buckland,Aylesbury,,HP22 5LL,General Needs,House,1938,Traditional,Natural gas (mains) +27 Buckland Road,Buckland,Aylesbury,,HP22 5LL,General Needs,House,1938,Traditional,Natural gas (mains) +67 Buckland Road,Buckland,Aylesbury,,HP22 5LL,General Needs,House,1934,Traditional,Natural gas (mains) +2 Beauchamp Cottages,Drayton Beauchamp,Aylesbury,,HP22 5LS,General Needs,Bungalow,1957,Traditional,Storage heaters +1 Peartree Cottages,Drayton Beauchamp,Aylesbury,,HP22 5LT,General Needs,House,1955,Traditional,ASHP +2 Peartree Cottages,Drayton Beauchamp,Aylesbury,,HP22 5LT,General Needs,House,1955,Traditional,LPG +4 Old School Close,Halton,Aylesbury,,HP22 5NG,General Needs,Flat,1977,Traditional,Natural gas (mains) +6 Old School Close,Halton,Aylesbury,,HP22 5NG,General Needs,Flat,1977,Traditional,Natural gas (mains) +8 Old School Close,Halton,Aylesbury,,HP22 5NG,General Needs,Flat,1977,Traditional,Natural gas (mains) +2 Brookside,Halton,Aylesbury,,HP22 5PB,General Needs,Bungalow,1974,Traditional,Natural gas (mains) +5 Brookside,Halton,Aylesbury,,HP22 5PB,General Needs,Flat,1974,Traditional,Natural gas (mains) +8 Brookside,Halton,Aylesbury,,HP22 5PB,General Needs,Flat,1974,Traditional,Natural gas (mains) +11 Brookside,Halton,Aylesbury,,HP22 5PB,General Needs,Flat,1974,Traditional,Natural gas (mains) +12 Brookside,Halton,Aylesbury,,HP22 5PB,General Needs,Flat,1974,Traditional,Natural gas (mains) +14 Brookside,Halton,Aylesbury,,HP22 5PB,General Needs,Flat,1974,Traditional,Natural gas (mains) +15 Brookside,Halton,Aylesbury,,HP22 5PB,General Needs,Bungalow,1974,Traditional,Natural gas (mains) +16 Brookside,Halton,Aylesbury,,HP22 5PB,General Needs,Bungalow,1974,Traditional,Natural gas (mains) +2 Chestnut Close,Aston Clinton,Aylesbury,,HP22 5QR,General Needs,House,1976,Traditional,Natural gas (mains) +3 Chestnut Close,Aston Clinton,Aylesbury,,HP22 5QR,General Needs,House,1977,Traditional,Natural gas (mains) +8 Chestnut Close,Aston Clinton,Aylesbury,,HP22 5QR,General Needs,House,1976,Traditional,Natural gas (mains) +10 Chestnut Close,Aston Clinton,Aylesbury,,HP22 5QR,General Needs,House,1976,Traditional,Natural gas (mains) +15 Chestnut Close,Aston Clinton,Aylesbury,,HP22 5QR,General Needs,House,1977,Traditional,Natural gas (mains) +23 Chestnut Close,Aston Clinton,Aylesbury,,HP22 5QR,General Needs,Flat,1977,Traditional,Natural gas (mains) +25 Chestnut Close,Aston Clinton,Aylesbury,,HP22 5QR,General Needs,Flat,1977,Traditional,Natural gas (mains) +27 Chestnut Close,Aston Clinton,Aylesbury,,HP22 5QR,General Needs,Flat,1977,Traditional,Natural gas (mains) +29 Chestnut Close,Aston Clinton,Aylesbury,,HP22 5QR,General Needs,Flat,1977,Traditional,Natural gas (mains) +21 New Road,Weston Turville,Aylesbury,,HP22 5RA,General Needs,Bungalow,1958,Traditional,Natural gas (mains) +23 New Road,Weston Turville,Aylesbury,,HP22 5RA,General Needs,Bungalow,1958,Traditional,Natural gas (mains) +25 New Road,Weston Turville,Aylesbury,,HP22 5RA,General Needs,House,1946,Traditional,Natural gas (mains) +27 New Road,Weston Turville,Aylesbury,,HP22 5RA,General Needs,House,1946,Traditional,Natural gas (mains) +29 New Road,Weston Turville,Aylesbury,,HP22 5RA,General Needs,House,1946,Traditional,Natural gas (mains) +31 New Road,Weston Turville,Aylesbury,,HP22 5RA,General Needs,House,1946,Traditional,Natural gas (mains) +37 New Road,Weston Turville,Aylesbury,,HP22 5RA,General Needs,House,1946,Traditional,Natural gas (mains) +39 New Road,Weston Turville,Aylesbury,,HP22 5RA,General Needs,House,1946,Traditional,Natural gas (mains) +1 Walton Place,Weston Turville,Aylesbury,,HP22 5RB,General Needs,Bungalow,1953,Traditional,Natural gas (mains) +2 Walton Place,Weston Turville,Aylesbury,,HP22 5RB,General Needs,Bungalow,1953,Traditional,Natural gas (mains) +5 Walton Place,Weston Turville,Aylesbury,,HP22 5RB,General Needs,House,1951,Traditional,Natural gas (mains) +9 Walton Place,Weston Turville,Aylesbury,,HP22 5RB,General Needs,House,1951,Traditional,Natural gas (mains) +11 Walton Place,Weston Turville,Aylesbury,,HP22 5RB,General Needs,Bungalow,1960,Traditional,Natural gas (mains) +13 Walton Place,Weston Turville,Aylesbury,,HP22 5RB,General Needs,Bungalow,1960,Traditional,Natural gas (mains) +18 Walton Place,Weston Turville,Aylesbury,,HP22 5RB,General Needs,House,1957,Traditional,Natural gas (mains) +21 Walton Place,Weston Turville,Aylesbury,,HP22 5RD,General Needs,House,1957,Traditional,Natural gas (mains) +23 Walton Place,Weston Turville,Aylesbury,,HP22 5RD,General Needs,Bungalow,1960,Traditional,Natural gas (mains) +25 Walton Place,Weston Turville,Aylesbury,,HP22 5RD,General Needs,Bungalow,1960,Traditional,Natural gas (mains) +27 Walton Place,Weston Turville,Aylesbury,,HP22 5RD,General Needs,Bungalow,1960,Traditional,Natural gas (mains) +29 Walton Place,Weston Turville,Aylesbury,,HP22 5RD,General Needs,Bungalow,1960,Traditional,Natural gas (mains) +36 Walton Place,Weston Turville,Aylesbury,,HP22 5RD,General Needs,House,1950,Traditional,Natural gas (mains) +39 Walton Place,Weston Turville,Aylesbury,,HP22 5RD,General Needs,Bungalow,1960,Traditional,Natural gas (mains) +41 Walton Place,Weston Turville,Aylesbury,,HP22 5RD,General Needs,Bungalow,1960,Traditional,Natural gas (mains) +42 Walton Place,Weston Turville,Aylesbury,,HP22 5RD,General Needs,House,1949,Traditional,Natural gas (mains) +46 Walton Place,Weston Turville,Aylesbury,,HP22 5RD,General Needs,House,1957,Traditional,Natural gas (mains) +51 Walton Place,Weston Turville,Aylesbury,,HP22 5RD,General Needs,Bungalow,1960,Traditional,Natural gas (mains) +53 Walton Place,Weston Turville,Aylesbury,,HP22 5RD,General Needs,Bungalow,1960,Traditional,Natural gas (mains) +55 Walton Place,Weston Turville,Aylesbury,,HP22 5RD,General Needs,Bungalow,1960,Traditional,Natural gas (mains) +57 Walton Place,Weston Turville,Aylesbury,,HP22 5RD,General Needs,Bungalow,1960,Traditional,Natural gas (mains) +61 Walton Place,Weston Turville,Aylesbury,,HP22 5RD,General Needs,Bungalow,1958,Traditional,Natural gas (mains) +62 Walton Place,Weston Turville,Aylesbury,,HP22 5RD,General Needs,Bungalow,1958,Traditional,Natural gas (mains) +17 New Road,Weston Turville,Aylesbury,,HP22 5RE,General Needs,Bungalow,1953,Traditional,Natural gas (mains) +19 New Road,Weston Turville,Aylesbury,,HP22 5RE,General Needs,Bungalow,1953,Traditional,Natural gas (mains) +76 Worlds End Lane,Weston Turville,Aylesbury,,HP22 5RX,General Needs,House,1934,Traditional,Natural gas (mains) +78 Worlds End Lane,Weston Turville,Aylesbury,,HP22 5RX,General Needs,House,1934,Traditional,Natural gas (mains) +80 Worlds End Lane,Weston Turville,Aylesbury,,HP22 5RX,General Needs,House,1934,Concrete No Fines,Natural gas (mains) +82 Worlds End Lane,Weston Turville,Aylesbury,,HP22 5RX,General Needs,House,1934,Traditional,Natural gas (mains) +84 Worlds End Lane,Weston Turville,Aylesbury,,HP22 5RX,General Needs,House,1934,Traditional,Natural gas (mains) +86 Worlds End Lane,Weston Turville,Aylesbury,,HP22 5RX,General Needs,House,1934,Traditional,Natural gas (mains) +88 Worlds End Lane,Weston Turville,Aylesbury,,HP22 5RX,General Needs,House,1934,Traditional,Natural gas (mains) +1 Barley Close,Weston Turville,Aylesbury,,HP22 5SF,General Needs,Bungalow,1968,Traditional,Natural gas (mains) +2 Barley Close,Weston Turville,Aylesbury,,HP22 5SF,General Needs,Bungalow,1967,Traditional,Natural gas (mains) +3 Barley Close,Weston Turville,Aylesbury,,HP22 5SF,General Needs,Bungalow,1968,Traditional,Natural gas (mains) +4 Barley Close,Weston Turville,Aylesbury,,HP22 5SF,General Needs,Bungalow,1967,Traditional,Natural gas (mains) +7 Barley Close,Weston Turville,Aylesbury,,HP22 5SF,General Needs,Bungalow,1967,Traditional,Natural gas (mains) +11 Barley Close,Weston Turville,Aylesbury,,HP22 5SF,General Needs,Bungalow,1967,Traditional,Natural gas (mains) +12 Barley Close,Weston Turville,Aylesbury,,HP22 5SF,General Needs,House,1968,Traditional,Natural gas (mains) +13 Barley Close,Weston Turville,Aylesbury,,HP22 5SF,General Needs,Bungalow,1967,Traditional,Natural gas (mains) +15 Barley Close,Weston Turville,Aylesbury,,HP22 5SF,General Needs,Bungalow,1968,Traditional,Natural gas (mains) +18 Barley Close,Weston Turville,Aylesbury,,HP22 5SF,General Needs,House,1968,Traditional,Natural gas (mains) +19 Barley Close,Weston Turville,Aylesbury,,HP22 5SF,General Needs,House,1966,Traditional,Natural gas (mains) +20 Barley Close,Weston Turville,Aylesbury,,HP22 5SF,General Needs,House,1968,Traditional,Natural gas (mains) +22 Barley Close,Weston Turville,Aylesbury,,HP22 5SF,General Needs,House,1968,Traditional,Natural gas (mains) +23 Barley Close,Weston Turville,Aylesbury,,HP22 5SF,General Needs,House,1967,Traditional,Natural gas (mains) +24 Barley Close,Weston Turville,Aylesbury,,HP22 5SF,General Needs,House,1968,Traditional,Natural gas (mains) +26 Barley Close,Weston Turville,Aylesbury,,HP22 5SF,General Needs,House,1968,Traditional,Natural gas (mains) +29 Barley Close,Weston Turville,Aylesbury,,HP22 5SF,General Needs,House,1967,Traditional,Natural gas (mains) +30 Barley Close,Weston Turville,Aylesbury,,HP22 5SF,General Needs,House,1966,Traditional,Natural gas (mains) +31 Barley Close,Weston Turville,Aylesbury,,HP22 5SF,General Needs,House,1967,Traditional,Natural gas (mains) +35 Barley Close,Weston Turville,Aylesbury,,HP22 5SF,General Needs,House,1968,Traditional,Natural gas (mains) +37 Barley Close,Weston Turville,Aylesbury,,HP22 5SF,General Needs,House,1968,Traditional,Natural gas (mains) +39 Barley Close,Weston Turville,Aylesbury,,HP22 5SF,General Needs,House,1968,Traditional,Natural gas (mains) +41 Barley Close,Weston Turville,Aylesbury,,HP22 5SF,General Needs,House,1968,Traditional,Natural gas (mains) +43 Barley Close,Weston Turville,Aylesbury,,HP22 5SF,General Needs,House,1968,Traditional,Natural gas (mains) +7 School Lane,Weston Turville,Aylesbury,,HP22 5SG,General Needs,Bungalow,1968,Traditional,Natural gas (mains) +9 School Lane,Weston Turville,Aylesbury,,HP22 5SG,General Needs,Bungalow,1968,Traditional,Natural gas (mains) +11 School Lane,Weston Turville,Aylesbury,,HP22 5SG,General Needs,Bungalow,1968,Traditional,Natural gas (mains) +13 School Lane,Weston Turville,Aylesbury,,HP22 5SG,General Needs,Bungalow,1968,Traditional,Natural gas (mains) +15 School Lane,Weston Turville,Aylesbury,,HP22 5SG,General Needs,Bungalow,1968,Traditional,Natural gas (mains) +17 School Lane,Weston Turville,Aylesbury,,HP22 5SG,General Needs,Bungalow,1968,Traditional,Natural gas (mains) +19 School Lane,Weston Turville,Aylesbury,,HP22 5SG,General Needs,Bungalow,1968,Traditional,Natural gas (mains) +21 School Lane,Weston Turville,Aylesbury,,HP22 5SG,General Needs,Bungalow,1968,Traditional,Natural gas (mains) +36 Hampden Road,Stoke Mandeville,Aylesbury,,HP22 5TW,General Needs,Bungalow,1974,Traditional,Natural gas (mains) +38 Hampden Road,Stoke Mandeville,Aylesbury,,HP22 5TW,General Needs,Bungalow,1974,Traditional,Natural gas (mains) +40 Hampden Road,Stoke Mandeville,Aylesbury,,HP22 5TW,General Needs,Bungalow,1974,Traditional,Natural gas (mains) +42 Hampden Road,Stoke Mandeville,Aylesbury,,HP22 5TW,General Needs,Bungalow,1974,Traditional,Natural gas (mains) +44 Hampden Road,Stoke Mandeville,Aylesbury,,HP22 5TW,General Needs,Bungalow,1974,Traditional,Natural gas (mains) +46 Hampden Road,Stoke Mandeville,Aylesbury,,HP22 5TW,General Needs,House,1974,Traditional,Natural gas (mains) +40 Station Road,Stoke Mandeville,Aylesbury,,HP22 5UE,General Needs,Bungalow,1975,Traditional,Natural gas (mains) +42 Station Road,Stoke Mandeville,Aylesbury,,HP22 5UE,General Needs,Bungalow,1975,Traditional,Natural gas (mains) +6 Hampden Road,Stoke Mandeville,Aylesbury,,HP22 5UF,General Needs,House,1975,Traditional,Natural gas (mains) +7 Hampden Road,Stoke Mandeville,Aylesbury,,HP22 5UF,General Needs,House,1975,Traditional,Natural gas (mains) +10 Hampden Road,Stoke Mandeville,Aylesbury,,HP22 5UF,General Needs,Bungalow,1970,Traditional,Natural gas (mains) +12 Hampden Road,Stoke Mandeville,Aylesbury,,HP22 5UF,General Needs,Bungalow,1970,Traditional,Natural gas (mains) +14 Hampden Road,Stoke Mandeville,Aylesbury,,HP22 5UF,General Needs,Bungalow,1970,Traditional,Natural gas (mains) +16 Hampden Road,Stoke Mandeville,Aylesbury,,HP22 5UF,General Needs,Bungalow,1970,Traditional,Natural gas (mains) +17 Hampden Road,Stoke Mandeville,Aylesbury,,HP22 5UF,General Needs,House,1975,Traditional,Natural gas (mains) +18 Hampden Road,Stoke Mandeville,Aylesbury,,HP22 5UF,General Needs,Bungalow,1970,Traditional,Natural gas (mains) +21 Hampden Road,Stoke Mandeville,Aylesbury,,HP22 5UF,General Needs,House,1975,Traditional,Natural gas (mains) +7 Eskdale Road,Stoke Mandeville,Aylesbury,Bucks,HP22 5UJ,General Needs,House,1954,Traditional,Natural gas (mains) +14 Eskdale Road,Stoke Mandeville,Aylesbury,,HP22 5UJ,General Needs,House,1951,Traditional,Natural gas (mains) +15 Eskdale Road,Stoke Mandeville,Aylesbury,,HP22 5UJ,General Needs,House,1952,Traditional,Natural gas (mains) +18 Eskdale Road,Stoke Mandeville,Aylesbury,,HP22 5UJ,General Needs,House,1951,Traditional,Natural gas (mains) +20 Eskdale Road,Stoke Mandeville,Aylesbury,,HP22 5UJ,General Needs,House,1951,Traditional,Natural gas (mains) +23 Eskdale Road,Stoke Mandeville,Aylesbury,,HP22 5UJ,General Needs,House,1954,Traditional,Natural gas (mains) +28 Eskdale Road,Stoke Mandeville,Aylesbury,,HP22 5UJ,General Needs,Bungalow,1956,Traditional,Natural gas (mains) +32 Eskdale Road,Stoke Mandeville,Aylesbury,,HP22 5UJ,General Needs,Bungalow,1956,Traditional,Natural gas (mains) +34 Eskdale Road,Stoke Mandeville,Aylesbury,,HP22 5UJ,General Needs,Bungalow,1956,Traditional,Natural gas (mains) +36 Eskdale Road,Stoke Mandeville,Aylesbury,,HP22 5UJ,General Needs,Bungalow,1956,Traditional,Natural gas (mains) +38 Eskdale Road,Stoke Mandeville,Aylesbury,,HP22 5UJ,General Needs,Bungalow,1956,Traditional,Natural gas (mains) +40 Eskdale Road,Stoke Mandeville,Aylesbury,,HP22 5UJ,General Needs,Bungalow,1953,Traditional,Natural gas (mains) +43 Eskdale Road,Stoke Mandeville,Aylesbury,,HP22 5UJ,General Needs,House,1958,Traditional,Natural gas (mains) +44 Eskdale Road,Stoke Mandeville,Aylesbury,,HP22 5UJ,General Needs,House,1956,Traditional,Natural gas (mains) +47 Eskdale Road,Stoke Mandeville,Aylesbury,,HP22 5UJ,General Needs,Bungalow,1958,Traditional,Natural gas (mains) +48 Eskdale Road,Stoke Mandeville,Aylesbury,,HP22 5UJ,General Needs,House,1958,Traditional,Natural gas (mains) +49 Eskdale Road,Stoke Mandeville,Aylesbury,,HP22 5UJ,General Needs,Bungalow,1958,Traditional,Natural gas (mains) +50 Eskdale Road,Stoke Mandeville,Aylesbury,,HP22 5UJ,General Needs,Bungalow,1958,Traditional,Natural gas (mains) +51 Eskdale Road,Stoke Mandeville,Aylesbury,,HP22 5UJ,General Needs,Bungalow,1976,Traditional,Natural gas (mains) +52 Eskdale Road,Stoke Mandeville,Aylesbury,,HP22 5UJ,General Needs,Bungalow,1958,Traditional,Natural gas (mains) +53 Eskdale Road,Stoke Mandeville,Aylesbury,,HP22 5UJ,General Needs,Bungalow,1976,Traditional,Natural gas (mains) +54 Eskdale Road,Stoke Mandeville,Aylesbury,,HP22 5UJ,General Needs,Bungalow,1976,Traditional,Natural gas (mains) +55 Eskdale Road,Stoke Mandeville,Aylesbury,,HP22 5UJ,General Needs,Bungalow,1976,Traditional,Natural gas (mains) +56 Eskdale Road,Stoke Mandeville,Aylesbury,,HP22 5UJ,General Needs,Bungalow,1976,Traditional,Natural gas (mains) +57 Eskdale Road,Stoke Mandeville,Aylesbury,,HP22 5UJ,General Needs,Bungalow,1976,Traditional,Natural gas (mains) +58 Eskdale Road,Stoke Mandeville,Aylesbury,,HP22 5UJ,General Needs,Bungalow,1976,Traditional,Natural gas (mains) +59 Eskdale Road,Stoke Mandeville,Aylesbury,,HP22 5UJ,General Needs,Bungalow,1976,Traditional,Natural gas (mains) +27 Station Road,Stoke Mandeville,Aylesbury,,HP22 5UL,General Needs,House,1950,Traditional,Natural gas (mains) +29 Station Road,Stoke Mandeville,Aylesbury,,HP22 5UL,General Needs,House,1950,Traditional,Natural gas (mains) +38 Station Road,Stoke Mandeville,Aylesbury,,HP22 5UL,General Needs,Bungalow,1975,Traditional,Natural gas (mains) +6 Orchard Close,Stoke Mandeville,Aylesbury,,HP22 5UQ,General Needs,Bungalow,1970,Traditional,Natural gas (mains) +7 Orchard Close,Stoke Mandeville,Aylesbury,,HP22 5UQ,General Needs,Bungalow,1970,Traditional,Natural gas (mains) +8 Orchard Close,Stoke Mandeville,Aylesbury,,HP22 5UQ,General Needs,Bungalow,1970,Traditional,Natural gas (mains) +9 Orchard Close,Stoke Mandeville,Aylesbury,,HP22 5UQ,General Needs,Bungalow,1970,Traditional,Natural gas (mains) +10 Orchard Close,Stoke Mandeville,Aylesbury,,HP22 5UQ,General Needs,Bungalow,1970,Traditional,Natural gas (mains) +11 Orchard Close,Stoke Mandeville,Aylesbury,,HP22 5UQ,General Needs,Bungalow,1970,Traditional,Natural gas (mains) +14 Orchard Close,Stoke Mandeville,Aylesbury,,HP22 5UQ,General Needs,House,1971,Traditional,Natural gas (mains) +16 Orchard Close,Stoke Mandeville,Aylesbury,,HP22 5UQ,General Needs,House,1971,Traditional,Natural gas (mains) +20 Orchard Close,Stoke Mandeville,Aylesbury,,HP22 5UQ,General Needs,House,1971,Traditional,Natural gas (mains) +22 Orchard Close,Stoke Mandeville,Aylesbury,,HP22 5UQ,General Needs,House,1971,Traditional,Natural gas (mains) +38 Orchard Close,Stoke Mandeville,Aylesbury,,HP22 5UQ,General Needs,Flat,1972,Traditional,Natural gas (mains) +42 Orchard Close,Stoke Mandeville,Aylesbury,,HP22 5UQ,General Needs,Flat,1972,Traditional,Natural gas (mains) +44 Orchard Close,Stoke Mandeville,Aylesbury,,HP22 5UQ,General Needs,Flat,1972,Traditional,Natural gas (mains) +46 Orchard Close,Stoke Mandeville,Aylesbury,,HP22 5UQ,General Needs,Flat,1972,Traditional,Natural gas (mains) +56 Orchard Close,Stoke Mandeville,Aylesbury,,HP22 5UQ,General Needs,Flat,1972,Traditional,Natural gas (mains) +60 Orchard Close,Stoke Mandeville,Aylesbury,,HP22 5UQ,General Needs,Flat,1972,Traditional,Natural gas (mains) +62 Orchard Close,Stoke Mandeville,Aylesbury,,HP22 5UQ,General Needs,Flat,1972,Traditional,Natural gas (mains) +64 Orchard Close,Stoke Mandeville,Aylesbury,,HP22 5UQ,General Needs,Flat,1972,Traditional,Natural gas (mains) +68 Orchard Close,Stoke Mandeville,Aylesbury,,HP22 5UQ,General Needs,Flat,1972,Traditional,Natural gas (mains) +70 Orchard Close,Stoke Mandeville,Aylesbury,,HP22 5UQ,General Needs,Flat,1972,Traditional,Natural gas (mains) +72 Orchard Close,Stoke Mandeville,Aylesbury,,HP22 5UQ,General Needs,Flat,1972,Traditional,Natural gas (mains) +9 Stoches Close,Stoke Mandeville,Aylesbury,,HP22 5WG,General Needs,House,2020,Traditional,Natural gas (mains) +11 Stoches Close,Stoke Mandeville,Aylesbury,,HP22 5WG,General Needs,House,2020,Traditional,Natural gas (mains) +18 Stoches Close,Stoke Mandeville,Aylesbury,,HP22 5WG,General Needs,House,2021,Traditional,Natural gas (mains) +20 Stoches Close,Stoke Mandeville,Aylesbury,,HP22 5WG,General Needs,House,2021,Traditional,Natural gas (mains) +22 Stoches Close,Stoke Mandeville,Aylesbury,,HP22 5WG,General Needs,House,2021,Traditional,Natural gas (mains) +24 Stoches Close,Stoke Mandeville,Aylesbury,,HP22 5WG,General Needs,House,2021,Traditional,Natural gas (mains) +57 Lower Road,Stoke Mandeville,Aylesbury,,HP22 5XA,General Needs,House,1933,Traditional,Natural gas (mains) +63 Lower Road,Stoke Mandeville,Aylesbury,,HP22 5XA,General Needs,House,1933,Traditional,Natural gas (mains) +65 Lower Road,Stoke Mandeville,Aylesbury,,HP22 5XA,General Needs,House,1933,Traditional,Natural gas (mains) +4 Well Water Close,Stoke Mandeville,Aylesbury,,HP22 5ZN,General Needs,House,2020,Traditional,Natural gas (mains) +5 Well Water Close,Stoke Mandeville,Aylesbury,,HP22 5ZN,General Needs,House,2020,Traditional,Natural gas (mains) +6 Well Water Close,Stoke Mandeville,Aylesbury,,HP22 5ZN,General Needs,House,2020,Traditional,Natural gas (mains) +7 Well Water Close,Stoke Mandeville,Aylesbury,,HP22 5ZN,General Needs,House,2020,Traditional,Natural gas (mains) +8 Well Water Close,Stoke Mandeville,Aylesbury,,HP22 5ZN,General Needs,House,2020,Traditional,Natural gas (mains) +9 Well Water Close,Stoke Mandeville,Aylesbury,,HP22 5ZN,General Needs,House,2020,Traditional,Natural gas (mains) +10 Well Water Close,Stoke Mandeville,Aylesbury,,HP22 5ZN,General Needs,House,2020,Traditional,Natural gas (mains) +15 Well Water Close,Stoke Mandeville,Aylesbury,,HP22 5ZN,General Needs,House,2020,Traditional,Natural gas (mains) +16 Well Water Close,Stoke Mandeville,Aylesbury,,HP22 5ZN,General Needs,House,2020,Traditional,Natural gas (mains) +17 Well Water Close,Stoke Mandeville,Aylesbury,,HP22 5ZN,General Needs,House,2020,Traditional,Natural gas (mains) +55 Grenville Avenue,Wendover,Aylesbury,,HP22 6AJ,General Needs,House,1947,Traditional,Natural gas (mains) +67 Grenville Avenue,Wendover,Aylesbury,,HP22 6AJ,General Needs,House,1948,Traditional,Natural gas (mains) +75 Grenville Avenue,Wendover,Aylesbury,,HP22 6AJ,General Needs,House,1948,Traditional,Natural gas (mains) +35 Grenville Avenue,Wendover,Aylesbury,,HP22 6AQ,General Needs,House,1952,Traditional,Natural gas (mains) +3 Moor Park,Wendover,Aylesbury,Bucks,HP22 6AX,General Needs,House,1951,Traditional,Natural gas (mains) +9 Moor Park,Wendover,Aylesbury,Bucks,HP22 6AX,General Needs,House,1951,Traditional,Natural gas (mains) +10 Moor Park,Wendover,Aylesbury,Bucks,HP22 6AX,General Needs,Flat,1951,Traditional,Natural gas (mains) +12 Moor Park,Wendover,Aylesbury,Bucks,HP22 6AX,General Needs,Flat,1951,Traditional,Natural gas (mains) +14 Moor Park,Wendover,Aylesbury,Bucks,HP22 6AX,General Needs,Flat,1951,Traditional,Natural gas (mains) +16 Moor Park,Wendover,Aylesbury,Bucks,HP22 6AX,General Needs,Flat,1951,Traditional,Natural gas (mains) +17 Moor Park,Wendover,Aylesbury,Bucks,HP22 6AX,General Needs,House,1953,Traditional,Natural gas (mains) +18 Moor Park,Wendover,Aylesbury,Bucks,HP22 6AX,General Needs,Flat,1951,Traditional,Natural gas (mains) +20 Moor Park,Wendover,Aylesbury,Bucks,HP22 6AX,General Needs,Flat,1951,Traditional,Natural gas (mains) +21 Moor Park,Wendover,Aylesbury,Bucks,HP22 6AX,General Needs,House,1953,Traditional,Natural gas (mains) +25 Moor Park,Wendover,Aylesbury,Bucks,HP22 6AX,General Needs,Bungalow,1958,Traditional,Natural gas (mains) +27 Moor Park,Wendover,Aylesbury,Bucks,HP22 6AX,General Needs,Bungalow,1958,Traditional,Natural gas (mains) +28 Moor Park,Wendover,Aylesbury,Bucks,HP22 6AX,General Needs,House,1953,Traditional,Natural gas (mains) +29 Moor Park,Wendover,Aylesbury,Bucks,HP22 6AX,General Needs,Bungalow,1958,Traditional,Natural gas (mains) +31 Moor Park,Wendover,Aylesbury,Bucks,HP22 6AX,General Needs,Bungalow,1958,Traditional,Natural gas (mains) +34 Moor Park,Wendover,Aylesbury,Bucks,HP22 6AX,General Needs,Bungalow,1957,Traditional,Natural gas (mains) +35 Moor Park,Wendover,Aylesbury,Bucks,HP22 6AX,General Needs,House,1958,Traditional,Natural gas (mains) +36 Moor Park,Wendover,Aylesbury,Bucks,HP22 6AX,General Needs,Bungalow,1957,Traditional,Natural gas (mains) +38 Moor Park,Wendover,Aylesbury,Bucks,HP22 6AX,General Needs,Bungalow,1957,Traditional,Natural gas (mains) +40 Moor Park,Wendover,Aylesbury,Bucks,HP22 6AX,General Needs,House,1957,Traditional,Natural gas (mains) +42 Moor Park,Wendover,Aylesbury,Bucks,HP22 6AX,General Needs,House,1957,Traditional,Natural gas (mains) +45 Moor Park,Wendover,Aylesbury,Bucks,HP22 6AX,General Needs,House,1957,Traditional,Natural gas (mains) +48 Moor Park,Wendover,Aylesbury,Bucks,HP22 6AX,General Needs,House,1957,Traditional,Natural gas (mains) +54 Moor Park,Wendover,Aylesbury,Bucks,HP22 6AX,General Needs,House,1957,Traditional,Natural gas (mains) +58 Moor Park,Wendover,Aylesbury,Bucks,HP22 6AX,General Needs,House,1957,Traditional,Natural gas (mains) +64 Halton Lane,Wendover,Aylesbury,Bucks,HP22 6AZ,General Needs,House,1933,Traditional,Natural gas (mains) +66 Halton Lane,Wendover,Aylesbury,Bucks,HP22 6AZ,General Needs,House,1933,Traditional,Natural gas (mains) +68 Halton Lane,Wendover,Aylesbury,Bucks,HP22 6AZ,General Needs,House,1933,Traditional,Natural gas (mains) +70 Halton Lane,Wendover,Aylesbury,Bucks,HP22 6AZ,General Needs,House,1933,Traditional,Natural gas (mains) +5 Vinetrees,Wendover,Aylesbury,,HP22 6BS,General Needs,Bungalow,1967,Traditional,Natural gas (mains) +6 Vinetrees,Wendover,Aylesbury,,HP22 6BS,General Needs,Bungalow,1967,Traditional,Natural gas (mains) +7 Vinetrees,Wendover,Aylesbury,,HP22 6BS,General Needs,Bungalow,1967,Traditional,Natural gas (mains) +9 Vinetrees,Wendover,Aylesbury,,HP22 6BS,General Needs,Bungalow,1967,Traditional,Natural gas (mains) +10 Vinetrees,Wendover,Aylesbury,,HP22 6BS,General Needs,Bungalow,1967,Traditional,Natural gas (mains) +11 Vinetrees,Wendover,Aylesbury,,HP22 6BS,General Needs,Bungalow,1967,Traditional,Natural gas (mains) +12 Vinetrees,Wendover,Aylesbury,,HP22 6BS,General Needs,Bungalow,1967,Traditional,Natural gas (mains) +13 Vinetrees,Wendover,Aylesbury,,HP22 6BS,General Needs,Bungalow,1968,Traditional,Natural gas (mains) +14 Vinetrees,Wendover,Aylesbury,,HP22 6BS,General Needs,Bungalow,1967,Traditional,Natural gas (mains) +15 Vinetrees,Wendover,Aylesbury,,HP22 6BS,General Needs,Bungalow,1968,Traditional,Natural gas (mains) +16 Vinetrees,Wendover,Aylesbury,,HP22 6BS,General Needs,Bungalow,1967,Traditional,Natural gas (mains) +17 Vinetrees,Wendover,Aylesbury,,HP22 6BS,General Needs,Bungalow,1968,Traditional,Natural gas (mains) +18 Vinetrees,Wendover,Aylesbury,,HP22 6BS,General Needs,Bungalow,1967,Traditional,Natural gas (mains) +19 Vinetrees,Wendover,Aylesbury,,HP22 6BS,General Needs,Bungalow,1968,Traditional,Natural gas (mains) +20 Vinetrees,Wendover,Aylesbury,,HP22 6BS,General Needs,Bungalow,1967,Traditional,Natural gas (mains) +21 Vinetrees,Wendover,Aylesbury,,HP22 6BS,General Needs,Bungalow,1968,Traditional,Natural gas (mains) +22 Vinetrees,Wendover,Aylesbury,,HP22 6BS,General Needs,Bungalow,1968,Traditional,Natural gas (mains) +23 Vinetrees,Wendover,Aylesbury,,HP22 6BS,General Needs,Bungalow,1968,Traditional,Natural gas (mains) +24 Vinetrees,Wendover,Aylesbury,,HP22 6BS,General Needs,Bungalow,1967,Traditional,Natural gas (mains) +25 Vinetrees,Wendover,Aylesbury,,HP22 6BS,General Needs,Bungalow,1968,Traditional,Natural gas (mains) +26 Vinetrees,Wendover,Aylesbury,,HP22 6BS,General Needs,Bungalow,1967,Traditional,Natural gas (mains) +27 Vinetrees,Wendover,Aylesbury,,HP22 6BS,General Needs,Bungalow,1968,Traditional,Natural gas (mains) +28 Vinetrees,Wendover,Aylesbury,,HP22 6BS,General Needs,Bungalow,1967,Traditional,Natural gas (mains) +29 Vinetrees,Wendover,Aylesbury,,HP22 6BS,General Needs,Bungalow,1976,Traditional,Natural gas (mains) +30 Vinetrees,Wendover,Aylesbury,,HP22 6BS,General Needs,Bungalow,1967,Traditional,Natural gas (mains) +31 Vinetrees,Wendover,Aylesbury,,HP22 6BS,General Needs,Bungalow,1976,Traditional,Natural gas (mains) +32 Vinetrees,Wendover,Aylesbury,,HP22 6BS,General Needs,Bungalow,1967,Traditional,Natural gas (mains) +33 Vinetrees,Wendover,Aylesbury,,HP22 6BS,General Needs,Bungalow,1976,Traditional,Natural gas (mains) +34 Vinetrees,Wendover,Aylesbury,,HP22 6BS,General Needs,Bungalow,1967,Traditional,Natural gas (mains) +35 Vinetrees,Wendover,Aylesbury,,HP22 6BS,General Needs,Bungalow,1976,Traditional,Natural gas (mains) +36 Vinetrees,Wendover,Aylesbury,,HP22 6BS,General Needs,Bungalow,1967,Traditional,Natural gas (mains) +37 Vinetrees,Wendover,Aylesbury,,HP22 6BS,General Needs,Bungalow,1976,Traditional,Natural gas (mains) +38 Vinetrees,Wendover,Aylesbury,,HP22 6BS,General Needs,Bungalow,1968,Traditional,Natural gas (mains) +39 Vinetrees,Wendover,Aylesbury,,HP22 6BS,General Needs,Bungalow,1976,Traditional,Natural gas (mains) +40 Vinetrees,Wendover,Aylesbury,,HP22 6BS,General Needs,Bungalow,1968,Traditional,Natural gas (mains) +41 Vinetrees,Wendover,Aylesbury,,HP22 6BS,General Needs,Bungalow,1976,Traditional,Natural gas (mains) +42 Vinetrees,Wendover,Aylesbury,,HP22 6BS,General Needs,Bungalow,1968,Traditional,Natural gas (mains) +43 Vinetrees,Wendover,Aylesbury,,HP22 6BS,General Needs,Bungalow,1976,Traditional,Natural gas (mains) +44 Vinetrees,Wendover,Aylesbury,,HP22 6BS,General Needs,Bungalow,1968,Traditional,Natural gas (mains) +47 Vinetrees,Wendover,Aylesbury,,HP22 6BS,General Needs,Bungalow,1976,Traditional,Natural gas (mains) +49 Vinetrees,Wendover,Aylesbury,,HP22 6BS,General Needs,Bungalow,1976,Traditional,Natural gas (mains) +51 Vinetrees,Wendover,Aylesbury,,HP22 6BS,General Needs,Bungalow,1968,Traditional,Natural gas (mains) +53 Vinetrees,Wendover,Aylesbury,,HP22 6BS,General Needs,Bungalow,1968,Traditional,Natural gas (mains) +55 Vinetrees,Wendover,Aylesbury,,HP22 6BS,General Needs,Bungalow,1968,Traditional,Natural gas (mains) +57 Vinetrees,Wendover,Aylesbury,,HP22 6BS,General Needs,Bungalow,1968,Traditional,Natural gas (mains) +59 Vinetrees,Wendover,Aylesbury,,HP22 6BS,General Needs,Bungalow,1968,Traditional,Natural gas (mains) +1 Holland Close,Wendover,Aylesbury,,HP22 6EE,General Needs,Bungalow,1961,Traditional,Natural gas (mains) +2 Holland Close,Wendover,Aylesbury,,HP22 6EE,General Needs,Bungalow,1961,Traditional,Natural gas (mains) +3 Holland Close,Wendover,Aylesbury,,HP22 6EE,General Needs,Bungalow,1961,Traditional,Natural gas (mains) +4 Holland Close,Wendover,Aylesbury,,HP22 6EE,General Needs,Bungalow,1961,Traditional,Natural gas (mains) +5 Holland Close,Wendover,Aylesbury,,HP22 6EE,General Needs,Bungalow,1961,Traditional,Natural gas (mains) +6 Holland Close,Wendover,Aylesbury,,HP22 6EE,General Needs,Bungalow,1961,Traditional,Natural gas (mains) +7 Holland Close,Wendover,Aylesbury,,HP22 6EE,General Needs,Bungalow,1961,Traditional,Natural gas (mains) +8 Holland Close,Wendover,Aylesbury,,HP22 6EE,General Needs,Bungalow,1961,Traditional,Natural gas (mains) +9 Holland Close,Wendover,Aylesbury,,HP22 6EE,General Needs,Bungalow,1961,Traditional,Natural gas (mains) +10 Holland Close,Wendover,Aylesbury,,HP22 6EE,General Needs,Bungalow,1961,Traditional,Natural gas (mains) +8A South Street,Wendover,Aylesbury,,HP22 6EF,General Needs,House,1983,Traditional,Natural gas (mains) +8 South Street,Wendover,Aylesbury,,HP22 6EF,General Needs,House,1983,Traditional,Natural gas (mains) +5 Little Hampden Close,Wendover,Aylesbury,,HP22 6EH,General Needs,House,1983,Traditional,Natural gas (mains) +7 Little Hampden Close,Wendover,Aylesbury,,HP22 6EH,General Needs,House,1983,Traditional,Natural gas (mains) +11 Little Hampden Close,Wendover,Aylesbury,,HP22 6EH,General Needs,House,1983,Traditional,Natural gas (mains) +17 Little Hampden Close,Wendover,Aylesbury,,HP22 6EH,General Needs,House,1983,Traditional,Natural gas (mains) +21 Little Hampden Close,Wendover,Aylesbury,,HP22 6EH,General Needs,House,1983,Traditional,Natural gas (mains) +23 Little Hampden Close,Wendover,Aylesbury,,HP22 6EH,General Needs,House,1983,Traditional,Natural gas (mains) +25 Little Hampden Close,Wendover,Aylesbury,,HP22 6EH,General Needs,House,1987,Traditional,Natural gas (mains) +27 Little Hampden Close,Wendover,Aylesbury,,HP22 6EH,General Needs,House,1987,Traditional,Natural gas (mains) +29 Little Hampden Close,Wendover,Aylesbury,,HP22 6EH,General Needs,House,1987,Traditional,Natural gas (mains) +31 Little Hampden Close,Wendover,Aylesbury,,HP22 6EH,General Needs,House,1987,Traditional,Natural gas (mains) +33 Little Hampden Close,Wendover,Aylesbury,,HP22 6EH,General Needs,House,1987,Traditional,Natural gas (mains) +2 Barlow Road,Wendover,Aylesbury,,HP22 6HP,General Needs,House,1950,Traditional,Natural gas (mains) +4 Barlow Road,Wendover,Aylesbury,,HP22 6HP,General Needs,House,1950,Traditional,Natural gas (mains) +8 Barlow Road,Wendover,Aylesbury,,HP22 6HP,General Needs,Flat,1950,Traditional,Natural gas (mains) +9 Barlow Road,Wendover,Aylesbury,,HP22 6HP,General Needs,House,1953,Traditional,Natural gas (mains) +14 Barlow Road,Wendover,Aylesbury,,HP22 6HP,General Needs,House,1950,Traditional,Natural gas (mains) +15 Barlow Road,Wendover,Aylesbury,,HP22 6HP,General Needs,House,1953,Traditional,Natural gas (mains) +16 Barlow Road,Wendover,Aylesbury,,HP22 6HP,General Needs,House,1950,Traditional,Natural gas (mains) +18 Barlow Road,Wendover,Aylesbury,,HP22 6HP,General Needs,Flat,1950,Traditional,Natural gas (mains) +20 Barlow Road,Wendover,Aylesbury,,HP22 6HP,General Needs,Flat,1950,Traditional,Natural gas (mains) +28 Barlow Road,Wendover,Aylesbury,,HP22 6HP,General Needs,House,1951,Traditional,Natural gas (mains) +1 Compton Road,Wendover,Aylesbury,,HP22 6HR,General Needs,House,1985,Traditional,Natural gas (mains) +2 Compton Road,Wendover,Aylesbury,,HP22 6HR,General Needs,House,1985,Traditional,Natural gas (mains) +3 Compton Road,Wendover,Aylesbury,,HP22 6HR,General Needs,House,1985,Traditional,Natural gas (mains) +4 Compton Road,Wendover,Aylesbury,,HP22 6HR,General Needs,House,1985,Traditional,Natural gas (mains) +8 Compton Road,Wendover,Aylesbury,,HP22 6HR,General Needs,House,1985,Traditional,Natural gas (mains) +10 Compton Road,Wendover,Aylesbury,,HP22 6HR,General Needs,House,1985,Traditional,Natural gas (mains) +16 Compton Road,Wendover,Aylesbury,,HP22 6HR,General Needs,House,1985,Traditional,Natural gas (mains) +17 Barlow Road,Wendover,Aylesbury,,HP22 6HS,General Needs,Bungalow,1985,Traditional,Natural gas (mains) +19 Barlow Road,Wendover,Aylesbury,,HP22 6HS,General Needs,House,1985,Traditional,Natural gas (mains) +21 Barlow Road,Wendover,Aylesbury,,HP22 6HS,General Needs,House,1985,Traditional,Natural gas (mains) +25 Barlow Road,Wendover,Aylesbury,,HP22 6HS,General Needs,House,1985,Traditional,Natural gas (mains) +27 Barlow Road,Wendover,Aylesbury,,HP22 6HS,General Needs,House,1985,Traditional,Natural gas (mains) +31 Barlow Road,Wendover,Aylesbury,,HP22 6HS,General Needs,House,1985,Traditional,Natural gas (mains) +1 Woollerton Crescent,Wendover,Aylesbury,,HP22 6HT,General Needs,House,1951,Traditional,Natural gas (mains) +5 Woollerton Crescent,Wendover,Aylesbury,,HP22 6HT,General Needs,House,1951,Traditional,Natural gas (mains) +7 Woollerton Crescent,Wendover,Aylesbury,,HP22 6HT,General Needs,House,1951,Traditional,Natural gas (mains) +8 Woollerton Crescent,Wendover,Aylesbury,,HP22 6HT,General Needs,House,1951,Traditional,Natural gas (mains) +9 Woollerton Crescent,Wendover,Aylesbury,,HP22 6HT,General Needs,House,1951,Traditional,Natural gas (mains) +13 Woollerton Crescent,Wendover,Aylesbury,,HP22 6HT,General Needs,House,1951,Traditional,Natural gas (mains) +16 Woollerton Crescent,Wendover,Aylesbury,,HP22 6HT,General Needs,House,1951,Traditional,Natural gas (mains) +20 Woollerton Crescent,Wendover,Aylesbury,,HP22 6HT,General Needs,House,1951,Traditional,Natural gas (mains) +24 Woollerton Crescent,Wendover,Aylesbury,,HP22 6HT,General Needs,House,1951,Traditional,Natural gas (mains) +26 Woollerton Crescent,Wendover,Aylesbury,,HP22 6HT,General Needs,House,1951,Traditional,Natural gas (mains) +28 Woollerton Crescent,Wendover,Aylesbury,,HP22 6HT,General Needs,House,1951,Traditional,Natural gas (mains) +38 Woollerton Crescent,Wendover,Aylesbury,,HP22 6HT,General Needs,House,1952,Traditional,Natural gas (mains) +44 Woollerton Crescent,Wendover,Aylesbury,,HP22 6HT,General Needs,House,1952,Traditional,Natural gas (mains) +50 Woollerton Crescent,Wendover,Aylesbury,,HP22 6HT,General Needs,House,1951,Traditional,Natural gas (mains) +4 Hampden Road,Wendover,Aylesbury,,HP22 6HU,General Needs,House,1954,Traditional,Natural gas (mains) +8 Hampden Road,Wendover,Aylesbury,,HP22 6HU,General Needs,House,1954,Traditional,Natural gas (mains) +10 Hampden Road,Wendover,Aylesbury,,HP22 6HU,General Needs,House,1954,Traditional,Natural gas (mains) +13 Hampden Road,Wendover,Aylesbury,,HP22 6HU,General Needs,House,1954,Traditional,Natural gas (mains) +15 Hampden Road,Wendover,Aylesbury,,HP22 6HU,General Needs,House,1954,Traditional,Natural gas (mains) +18 Hampden Road,Wendover,Aylesbury,,HP22 6HU,General Needs,House,1954,Traditional,Natural gas (mains) +22 Hampden Road,Wendover,Aylesbury,,HP22 6HU,General Needs,House,1954,Traditional,Natural gas (mains) +26 Hampden Road,Wendover,Aylesbury,,HP22 6HU,General Needs,House,1954,Traditional,Natural gas (mains) +28 Hampden Road,Wendover,Aylesbury,,HP22 6HU,General Needs,House,1954,Traditional,Natural gas (mains) +25 Hampden Road,Wendover,Aylesbury,,HP22 6HX,General Needs,House,1954,Traditional,Natural gas (mains) +27 Hampden Road,Wendover,Aylesbury,,HP22 6HX,General Needs,House,1954,Traditional,Natural gas (mains) +31 Hampden Road,Wendover,Aylesbury,,HP22 6HX,General Needs,House,1954,Traditional,Natural gas (mains) +34 Hampden Road,Wendover,Aylesbury,,HP22 6HX,General Needs,House,1954,Traditional,Natural gas (mains) +36 Hampden Road,Wendover,Aylesbury,,HP22 6HX,General Needs,House,1954,Traditional,Natural gas (mains) +38 Hampden Road,Wendover,Aylesbury,,HP22 6HX,General Needs,House,1954,Traditional,Natural gas (mains) +6 Boddington Road,Wendover,Aylesbury,,HP22 6HY,General Needs,Bungalow,1956,Traditional,Natural gas (mains) +8 Boddington Road,Wendover,Aylesbury,,HP22 6HY,General Needs,Bungalow,1956,Traditional,Natural gas (mains) +12 Boddington Road,Wendover,Aylesbury,,HP22 6HY,General Needs,House,1956,Traditional,Natural gas (mains) +16 Boddington Road,Wendover,Aylesbury,,HP22 6HY,General Needs,House,1956,Traditional,Natural gas (mains) +18 Boddington Road,Wendover,Aylesbury,,HP22 6HY,General Needs,Bungalow,1956,Traditional,Natural gas (mains) +20 Boddington Road,Wendover,Aylesbury,,HP22 6HY,General Needs,Bungalow,1956,Traditional,Natural gas (mains) +21 Boddington Road,Wendover,Aylesbury,,HP22 6HY,General Needs,House,1954,Traditional,Natural gas (mains) +23 Boddington Road,Wendover,Aylesbury,,HP22 6HY,General Needs,House,1954,Traditional,Natural gas (mains) +25 Boddington Road,Wendover,Aylesbury,,HP22 6HY,General Needs,House,1954,Traditional,Natural gas (mains) +35 Boddington Road,Wendover,Aylesbury,,HP22 6HY,General Needs,House,1954,Traditional,Natural gas (mains) +39 Boddington Road,Wendover,Aylesbury,,HP22 6HY,General Needs,House,1954,Traditional,Natural gas (mains) +4 Boddington Road,Wendover,Aylesbury,,HP22 6HZ,General Needs,House,1954,Traditional,Natural gas (mains) +5 Boddington Road,Wendover,Aylesbury,,HP22 6HZ,General Needs,House,1954,Traditional,Natural gas (mains) +2 Beechwood Lane,Wendover,Aylesbury,,HP22 6JB,General Needs,Bungalow,1985,Traditional,Natural gas (mains) +4 Beechwood Lane,Wendover,Aylesbury,,HP22 6JB,General Needs,Bungalow,1985,Traditional,Natural gas (mains) +6 Beechwood Lane,Wendover,Aylesbury,,HP22 6JB,General Needs,House,1985,Traditional,Natural gas (mains) +8 Beechwood Lane,Wendover,Aylesbury,,HP22 6JB,General Needs,House,1985,Traditional,Natural gas (mains) +2 Victory Road,Wendover,Aylesbury,,HP22 6JL,General Needs,House,1921,Traditional,Natural gas (mains) +3 Victory Road,Wendover,Aylesbury,,HP22 6JL,General Needs,House,1921,Traditional,Natural gas (mains) +4 Victory Road,Wendover,Aylesbury,,HP22 6JL,General Needs,House,1921,Traditional,Natural gas (mains) +7 Victory Road,Wendover,Aylesbury,,HP22 6JL,General Needs,House,1921,Traditional,Natural gas (mains) +8 Victory Road,Wendover,Aylesbury,,HP22 6JL,General Needs,House,1921,Traditional,Natural gas (mains) +9 Victory Road,Wendover,Aylesbury,,HP22 6JL,General Needs,House,1921,Traditional,Natural gas (mains) +10 Victory Road,Wendover,Aylesbury,,HP22 6JL,General Needs,House,1921,Traditional,Natural gas (mains) +11 Victory Road,Wendover,Aylesbury,,HP22 6JL,General Needs,House,1921,Traditional,Natural gas (mains) +12 Victory Road,Wendover,Aylesbury,,HP22 6JL,General Needs,House,1921,Traditional,Natural gas (mains) +13 Victory Road,Wendover,Aylesbury,,HP22 6JL,General Needs,House,1921,Traditional,Natural gas (mains) +22 Victory Road,Wendover,Aylesbury,,HP22 6JL,General Needs,House,1921,Traditional,Natural gas (mains) +1 Bankside,Wendover,Aylesbury,,HP22 6JW,Independent Living,Flat,1979,Traditional,Radiators - communal gas boiler +2 Bankside,Wendover,Aylesbury,,HP22 6JW,Independent Living,Flat,1979,Traditional,Radiators - communal gas boiler +3 Bankside,Wendover,Aylesbury,,HP22 6JW,Independent Living,Flat,1979,Traditional,Radiators - communal gas boiler +4 Bankside,Wendover,Aylesbury,,HP22 6JW,Independent Living,Flat,1979,Traditional,Radiators - communal gas boiler +5 Bankside,Wendover,Aylesbury,,HP22 6JW,Independent Living,Flat,1979,Traditional,Radiators - communal gas boiler +6 Bankside,Wendover,Aylesbury,,HP22 6JW,Independent Living,Flat,1979,Traditional,Radiators - communal gas boiler +7 Bankside,Wendover,Aylesbury,,HP22 6JW,Independent Living,Flat,1979,Traditional,Radiators - communal gas boiler +8 Bankside,Wendover,Aylesbury,,HP22 6JW,Independent Living,Flat,1979,Traditional,Radiators - communal gas boiler +9 Bankside,Wendover,Aylesbury,,HP22 6JW,Independent Living,Flat,1979,Traditional,Radiators - communal gas boiler +10 Bankside,Wendover,Aylesbury,,HP22 6JW,Independent Living,Flat,1979,Traditional,Radiators - communal gas boiler +11 Bankside,Wendover,Aylesbury,,HP22 6JW,Independent Living,Flat,1979,Traditional,Radiators - communal gas boiler +12 Bankside,Wendover,Aylesbury,,HP22 6JW,Independent Living,Flat,1979,Traditional,Radiators - communal gas boiler +13 Bankside,Wendover,Aylesbury,,HP22 6JW,Independent Living,Flat,1979,Traditional,Radiators - communal gas boiler +14 Bankside,Wendover,Aylesbury,,HP22 6JW,Independent Living,Flat,1979,Traditional,Radiators - communal gas boiler +15 Bankside,Wendover,Aylesbury,,HP22 6JW,Independent Living,Flat,1979,Traditional,Radiators - communal gas boiler +16 Bankside,Wendover,Aylesbury,,HP22 6JW,Independent Living,Flat,1979,Traditional,Radiators - communal gas boiler +17 Bankside,Wendover,Aylesbury,,HP22 6JW,Independent Living,Flat,1979,Traditional,Radiators - communal gas boiler +18 Bankside,Wendover,Aylesbury,,HP22 6JW,Independent Living,Flat,1979,Traditional,Radiators - communal gas boiler +19 Bankside,Wendover,Aylesbury,,HP22 6JW,Independent Living,Flat,1979,Traditional,Radiators - communal gas boiler +20 Bankside,Wendover,Aylesbury,,HP22 6JW,Independent Living,Flat,1979,Traditional,Radiators - communal gas boiler +21 Bankside,Wendover,Aylesbury,,HP22 6JW,Independent Living,Flat,1979,Traditional,Radiators - communal gas boiler +22 Bankside,Wendover,Aylesbury,,HP22 6JW,Independent Living,Flat,1979,Traditional,Radiators - communal gas boiler +23 Bankside,Wendover,Aylesbury,,HP22 6JW,Independent Living,Flat,1979,Traditional,Radiators - communal gas boiler +24 Bankside,Wendover,Aylesbury,,HP22 6JW,Independent Living,Flat,1979,Traditional,Radiators - communal gas boiler +25 Bankside,Wendover,Aylesbury,,HP22 6JW,Independent Living,Flat,1979,Traditional,Radiators - communal gas boiler +26 Bankside,Wendover,Aylesbury,,HP22 6JW,Independent Living,Flat,1979,Traditional,Radiators - communal gas boiler +27 Bankside,Wendover,Aylesbury,,HP22 6JW,Independent Living,Flat,1979,Traditional,Radiators - communal gas boiler +28 Bankside,Wendover,Aylesbury,,HP22 6JW,Independent Living,Flat,1979,Traditional,Radiators - communal gas boiler +29 Bankside,Wendover,Aylesbury,,HP22 6JW,Independent Living,Flat,1979,Traditional,Radiators - communal gas boiler +30 Bankside,Wendover,Aylesbury,,HP22 6JW,Independent Living,Flat,1979,Traditional,Radiators - communal gas boiler +31 Bankside,Wendover,Aylesbury,,HP22 6JW,Independent Living,Flat,1979,Traditional,Radiators - communal gas boiler +32 Bankside,Wendover,Aylesbury,,HP22 6JW,Independent Living,Flat,1979,Traditional,Radiators - communal gas boiler +33 Bankside,Wendover,Aylesbury,,HP22 6JW,Independent Living,Flat,1979,Traditional,Radiators - communal gas boiler +34 Bankside,Wendover,Aylesbury,,HP22 6JW,Independent Living,Flat,1979,Traditional,Radiators - communal gas boiler +35 Bankside,Wendover,Aylesbury,,HP22 6JW,Independent Living,Flat,1979,Traditional,Radiators - communal gas boiler +36 Bankside,Wendover,Aylesbury,,HP22 6JW,Independent Living,Flat,1979,Traditional,Radiators - communal gas boiler +37 Bankside,Wendover,Aylesbury,,HP22 6JW,Independent Living,Flat,1979,Traditional,Radiators - communal gas boiler +38 Bankside,Wendover,Aylesbury,,HP22 6JW,Independent Living,Flat,1979,Traditional,Radiators - communal gas boiler +39 Bankside,Wendover,Aylesbury,,HP22 6JW,Independent Living,Flat,1979,Traditional,Radiators - communal gas boiler +40 Bankside,Wendover,Aylesbury,,HP22 6JW,Independent Living,Flat,1979,Traditional,Radiators - communal gas boiler +41 Bankside,Wendover,Aylesbury,,HP22 6JW,Independent Living,Flat,1979,Traditional,Radiators - communal gas boiler +42 Bankside,Wendover,Aylesbury,,HP22 6JW,Independent Living,Flat,1979,Traditional,Radiators - communal gas boiler +43 Bankside,Wendover,Aylesbury,,HP22 6JW,Independent Living,Flat,1979,Traditional,Radiators - communal gas boiler +44 Bankside,Wendover,Aylesbury,,HP22 6JW,Independent Living,Flat,1979,Traditional,Radiators - communal gas boiler +45 Bankside,Wendover,Aylesbury,,HP22 6JW,Independent Living,Flat,1979,Traditional,Radiators - communal gas boiler +46 Bankside,Wendover,Aylesbury,,HP22 6JW,Independent Living,Flat,1979,Traditional,Radiators - communal gas boiler +76 Aylesbury Road,Wendover,Aylesbury,,HP22 6LB,General Needs,House,1926,Traditional,Natural gas (mains) +68 Aylesbury Road,Wendover,Aylesbury,,HP22 6LD,General Needs,House,1925,Traditional,Natural gas (mains) +72 Aylesbury Road,Wendover,Aylesbury,,HP22 6LD,General Needs,House,1920,Traditional,Natural gas (mains) +74 Aylesbury Road,Wendover,Aylesbury,,HP22 6LD,General Needs,House,1920,Traditional,Natural gas (mains) +1A Lionel Avenue,Wendover,Aylesbury,,HP22 6LL,General Needs,House,1950,Traditional,Natural gas (mains) +4 The Maples,Clay Lane,Wendover,Aylesbury,HP22 6NB,General Needs,House,1977,Traditional,Natural gas (mains) +5 The Maples,Clay Lane,Wendover,Aylesbury,HP22 6NB,General Needs,House,1977,Traditional,Natural gas (mains) +8 The Maples,Clay Lane,Wendover,Aylesbury,HP22 6NB,General Needs,House,1977,Traditional,Natural gas (mains) +3A The Poplars,Wendover,Aylesbury,,HP22 6NP,General Needs,Flat,1967,Traditional,Natural gas (mains) +1 The Poplars,Wendover,Aylesbury,,HP22 6NP,Independent Living,Bungalow,1967,Traditional,Natural gas (mains) +2 The Poplars,Wendover,Aylesbury,,HP22 6NP,Independent Living,Bungalow,1967,Traditional,Natural gas (mains) +26 The Poplars,Wendover,Aylesbury,,HP22 6NP,Independent Living,Bungalow,1968,Traditional,Natural gas (mains) +27 The Poplars,Wendover,Aylesbury,,HP22 6NP,Independent Living,Bungalow,1968,Traditional,Natural gas (mains) +28 The Poplars,Wendover,Aylesbury,,HP22 6NP,Independent Living,Bungalow,1968,Traditional,Natural gas (mains) +29 The Poplars,Wendover,Aylesbury,,HP22 6NP,Independent Living,Bungalow,1968,Traditional,Natural gas (mains) +30 The Poplars,Wendover,Aylesbury,,HP22 6NP,Independent Living,Bungalow,1968,Traditional,Natural gas (mains) +31 The Poplars,Wendover,Aylesbury,,HP22 6NP,Independent Living,Bungalow,1968,Traditional,Natural gas (mains) +32 The Poplars,Wendover,Aylesbury,,HP22 6NP,Independent Living,Bungalow,1968,Traditional,Natural gas (mains) +33 The Poplars,Wendover,Aylesbury,,HP22 6NP,Independent Living,Bungalow,1968,Traditional,Natural gas (mains) +34 The Poplars,Wendover,Aylesbury,,HP22 6NP,Independent Living,Bungalow,1968,Traditional,Natural gas (mains) +37 The Poplars,Wendover,Aylesbury,,HP22 6NP,General Needs,House,1967,Traditional,Natural gas (mains) +38 The Poplars,Wendover,Aylesbury,,HP22 6NP,General Needs,House,1967,Traditional,Natural gas (mains) +40 The Poplars,Wendover,Aylesbury,,HP22 6NP,Independent Living,Bungalow,1968,Traditional,Natural gas (mains) +41 The Poplars,Wendover,Aylesbury,,HP22 6NP,Independent Living,Bungalow,1968,Traditional,Natural gas (mains) +42 The Poplars,Wendover,Aylesbury,,HP22 6NP,Independent Living,Bungalow,1968,Traditional,Natural gas (mains) +43 The Poplars,Wendover,Aylesbury,,HP22 6NP,Independent Living,Bungalow,1968,Traditional,Natural gas (mains) +44 The Poplars,Wendover,Aylesbury,,HP22 6NP,Independent Living,Bungalow,1972,Traditional,Natural gas (mains) +45 The Poplars,Wendover,Aylesbury,,HP22 6NP,Independent Living,Bungalow,1972,Traditional,Natural gas (mains) +46 The Poplars,Wendover,Aylesbury,,HP22 6NP,Independent Living,Bungalow,1972,Traditional,Natural gas (mains) +3 The Poplars,Wendover,Aylesbury,,HP22 6NP,Independent Living,Flat,1967,Traditional,Radiators - communal gas boiler +4 The Poplars,Wendover,Aylesbury,,HP22 6NP,Independent Living,Flat,1967,Traditional,Radiators - communal gas boiler +5 The Poplars,Wendover,Aylesbury,,HP22 6NP,Independent Living,Flat,1967,Traditional,Radiators - communal gas boiler +6 The Poplars,Wendover,Aylesbury,,HP22 6NP,Independent Living,Flat,1967,Traditional,Radiators - communal gas boiler +7 The Poplars,Wendover,Aylesbury,,HP22 6NP,Independent Living,Flat,1967,Traditional,Radiators - communal gas boiler +8 The Poplars,Wendover,Aylesbury,,HP22 6NP,Independent Living,Flat,1967,Traditional,Radiators - communal gas boiler +9 The Poplars,Wendover,Aylesbury,,HP22 6NP,Independent Living,Flat,1967,Traditional,Radiators - communal gas boiler +10 The Poplars,Wendover,Aylesbury,,HP22 6NP,Independent Living,Flat,1967,Traditional,Radiators - communal gas boiler +11 The Poplars,Wendover,Aylesbury,,HP22 6NP,Independent Living,Flat,1967,Traditional,Radiators - communal gas boiler +12 The Poplars,Wendover,Aylesbury,,HP22 6NP,Independent Living,Flat,1967,Traditional,Radiators - communal gas boiler +13 The Poplars,Wendover,Aylesbury,,HP22 6NP,Independent Living,Flat,1967,Traditional,Radiators - communal gas boiler +14 The Poplars,Wendover,Aylesbury,,HP22 6NP,Independent Living,Flat,1967,Traditional,Radiators - communal gas boiler +15 The Poplars,Wendover,Aylesbury,,HP22 6NP,Independent Living,Flat,1967,Traditional,Radiators - communal gas boiler +16 The Poplars,Wendover,Aylesbury,,HP22 6NP,Independent Living,Flat,1967,Traditional,Radiators - communal gas boiler +17 The Poplars,Wendover,Aylesbury,,HP22 6NP,Independent Living,Flat,1967,Traditional,Radiators - communal gas boiler +18 The Poplars,Wendover,Aylesbury,,HP22 6NP,Independent Living,Flat,1967,Traditional,Radiators - communal gas boiler +19 The Poplars,Wendover,Aylesbury,,HP22 6NP,Independent Living,Flat,1967,Traditional,Radiators - communal gas boiler +20 The Poplars,Wendover,Aylesbury,,HP22 6NP,Independent Living,Flat,1967,Traditional,Radiators - communal gas boiler +21 The Poplars,Wendover,Aylesbury,,HP22 6NP,Independent Living,Flat,1967,Traditional,Radiators - communal gas boiler +22 The Poplars,Wendover,Aylesbury,,HP22 6NP,Independent Living,Flat,1967,Traditional,Radiators - communal gas boiler +23 The Poplars,Wendover,Aylesbury,,HP22 6NP,Independent Living,Flat,1967,Traditional,Radiators - communal gas boiler +24 The Poplars,Wendover,Aylesbury,,HP22 6NP,Independent Living,Flat,1967,Traditional,Radiators - communal gas boiler +25 The Poplars,Wendover,Aylesbury,,HP22 6NP,Independent Living,Flat,1967,Traditional,Radiators - communal gas boiler +5 Clay Lane,Wendover,Aylesbury,,HP22 6NS,General Needs,House,1928,Old Hundreds,Natural gas (mains) +7 Clay Lane,Wendover,Aylesbury,,HP22 6NS,General Needs,House,1928,Old Hundreds,Natural gas (mains) +9 Clay Lane,Wendover,Aylesbury,,HP22 6NS,General Needs,House,1928,Old Hundreds,Natural gas (mains) +11 Clay Lane,Wendover,Aylesbury,,HP22 6NS,General Needs,House,1928,Old Hundreds,Natural gas (mains) +15 Clay Lane,Wendover,Aylesbury,,HP22 6NS,General Needs,House,1928,Old Hundreds,Natural gas (mains) +17 Clay Lane,Wendover,Aylesbury,,HP22 6NS,General Needs,House,1928,Old Hundreds,Natural gas (mains) +28 Clay Lane,Wendover,Aylesbury,,HP22 6NS,General Needs,Flat,1974,Traditional,Natural gas (mains) +30 Clay Lane,Wendover,Aylesbury,,HP22 6NS,General Needs,Flat,1974,Traditional,Natural gas (mains) +32 Clay Lane,Wendover,Aylesbury,,HP22 6NS,General Needs,Flat,1974,Traditional,Natural gas (mains) +34 Clay Lane,Wendover,Aylesbury,,HP22 6NS,General Needs,Bungalow,1974,Traditional,Natural gas (mains) +36 Clay Lane,Wendover,Aylesbury,,HP22 6NS,General Needs,Bungalow,1974,Traditional,Natural gas (mains) +38 Clay Lane,Wendover,Aylesbury,,HP22 6NS,General Needs,Bungalow,1974,Traditional,Natural gas (mains) +40 Clay Lane,Wendover,Aylesbury,,HP22 6NS,General Needs,Flat,1974,Traditional,Natural gas (mains) +44 Clay Lane,Wendover,Aylesbury,,HP22 6NS,General Needs,Flat,1974,Traditional,Natural gas (mains) +46 Clay Lane,Wendover,Aylesbury,,HP22 6NS,General Needs,Flat,1974,Traditional,Natural gas (mains) +48 Clay Lane,Wendover,Aylesbury,,HP22 6NS,General Needs,Flat,1974,Traditional,Natural gas (mains) +50 Clay Lane,Wendover,Aylesbury,,HP22 6NS,General Needs,Flat,1974,Traditional,Natural gas (mains) +28A Tring Road,Wendover,Aylesbury,,HP22 6NT,General Needs,House,1954,Traditional,Natural gas (mains) +38A Tring Road,Wendover,Aylesbury,,HP22 6NT,General Needs,House,1953,Traditional,Natural gas (mains) +6 Tring Road,Wendover,Aylesbury,,HP22 6NT,General Needs,Bungalow,1954,Traditional,Natural gas (mains) +8 Tring Road,Wendover,Aylesbury,,HP22 6NT,General Needs,Bungalow,1954,Traditional,Natural gas (mains) +14 Tring Road,Wendover,Aylesbury,,HP22 6NT,General Needs,House,1954,Traditional,Natural gas (mains) +34 Tring Road,Wendover,Aylesbury,,HP22 6NT,General Needs,House,1953,Traditional,Natural gas (mains) +36 Tring Road,Wendover,Aylesbury,,HP22 6NT,General Needs,House,1953,Traditional,Natural gas (mains) +42 Tring Road,Wendover,Aylesbury,,HP22 6NT,General Needs,Bungalow,1953,Traditional,Natural gas (mains) +44 Tring Road,Wendover,Aylesbury,,HP22 6NT,General Needs,Bungalow,1953,Traditional,Natural gas (mains) +46 Tring Road,Wendover,Aylesbury,,HP22 6NT,General Needs,Bungalow,1951,Traditional,Natural gas (mains) +48 Tring Road,Wendover,Aylesbury,,HP22 6NT,General Needs,Bungalow,1951,Traditional,Natural gas (mains) +50 Tring Road,Wendover,Aylesbury,,HP22 6NT,General Needs,Bungalow,1951,Traditional,Natural gas (mains) +52 Tring Road,Wendover,Aylesbury,,HP22 6NX,General Needs,Bungalow,1951,Traditional,Natural gas (mains) +54 Tring Road,Wendover,Aylesbury,,HP22 6NX,General Needs,Bungalow,1951,Traditional,Natural gas (mains) +56 Tring Road,Wendover,Aylesbury,,HP22 6NX,General Needs,Bungalow,1951,Traditional,Natural gas (mains) +64 Tring Road,Wendover,Aylesbury,,HP22 6NX,General Needs,House,1951,Traditional,Natural gas (mains) +68 Tring Road,Wendover,Aylesbury,,HP22 6NX,General Needs,House,1946,Traditional,Natural gas (mains) +70 Tring Road,Wendover,Aylesbury,,HP22 6NX,General Needs,House,1946,Traditional,Natural gas (mains) +72 Tring Road,Wendover,Aylesbury,,HP22 6NX,General Needs,House,1946,Traditional,Natural gas (mains) +74 Tring Road,Wendover,Aylesbury,,HP22 6NX,General Needs,House,1934,Traditional,Natural gas (mains) +76 Tring Road,Wendover,Aylesbury,,HP22 6NX,General Needs,House,1934,Traditional,Natural gas (mains) +78 Tring Road,Wendover,Aylesbury,,HP22 6NX,General Needs,House,1934,Traditional,Natural gas (mains) +80 Tring Road,Wendover,Aylesbury,,HP22 6NX,General Needs,House,1934,Traditional,Natural gas (mains) +90 Tring Road,Wendover,Aylesbury,,HP22 6NX,General Needs,House,1934,Traditional,Natural gas (mains) +92 Tring Road,Wendover,Aylesbury,,HP22 6NX,General Needs,House,1934,Traditional,Natural gas (mains) +94 Tring Road,Wendover,Aylesbury,,HP22 6NX,General Needs,House,1934,Traditional,Natural gas (mains) +100 Tring Road,Wendover,Aylesbury,,HP22 6NX,General Needs,House,1934,Traditional,Natural gas (mains) +104 Tring Road,Wendover,Aylesbury,,HP22 6NX,General Needs,House,1934,Traditional,Natural gas (mains) +106 Tring Road,Wendover,Aylesbury,,HP22 6NX,General Needs,House,1934,Traditional,Natural gas (mains) +108 Tring Road,Wendover,Aylesbury,,HP22 6NX,General Needs,House,1934,Traditional,Natural gas (mains) +114 Tring Road,Wendover,Aylesbury,,HP22 6NX,General Needs,House,1934,Traditional,Natural gas (mains) +1 The Beeches,Wendover,Aylesbury,,HP22 6PA,Independent Living,Bungalow,1972,Traditional,Natural gas (mains) +2 The Beeches,Wendover,Aylesbury,,HP22 6PA,General Needs,Bungalow,1972,Traditional,Natural gas (mains) +3 The Beeches,Wendover,Aylesbury,,HP22 6PA,Independent Living,Bungalow,1972,Traditional,Natural gas (mains) +4 The Beeches,Wendover,Aylesbury,,HP22 6PA,Independent Living,Bungalow,1972,Traditional,Natural gas (mains) +31 The Beeches,Wendover,Aylesbury,,HP22 6PA,Independent Living,Bungalow,1972,Traditional,Natural gas (mains) +32 The Beeches,Wendover,Aylesbury,,HP22 6PA,Independent Living,Bungalow,1972,Traditional,Natural gas (mains) +33 The Beeches,Wendover,Aylesbury,,HP22 6PA,Independent Living,Bungalow,1972,Traditional,Natural gas (mains) +34 The Beeches,Wendover,Aylesbury,,HP22 6PA,Independent Living,Bungalow,1972,Traditional,Natural gas (mains) +35 The Beeches,Wendover,Aylesbury,,HP22 6PA,Independent Living,Bungalow,1972,Traditional,Natural gas (mains) +36 The Beeches,Wendover,Aylesbury,,HP22 6PA,Independent Living,Bungalow,1972,Traditional,Natural gas (mains) +5 The Beeches,Wendover,Aylesbury,,HP22 6PA,Independent Living,Flat,1973,Traditional,Radiators - communal gas boiler +6 The Beeches,Wendover,Aylesbury,,HP22 6PA,Independent Living,Flat,1973,Traditional,Radiators - communal gas boiler +7 The Beeches,Wendover,Aylesbury,,HP22 6PA,Independent Living,Flat,1973,Traditional,Radiators - communal gas boiler +8 The Beeches,Wendover,Aylesbury,,HP22 6PA,Independent Living,Flat,1973,Traditional,Radiators - communal gas boiler +9 The Beeches,Wendover,Aylesbury,,HP22 6PA,Independent Living,Flat,1973,Traditional,Radiators - communal gas boiler +10 The Beeches,Wendover,Aylesbury,,HP22 6PA,Independent Living,Flat,1973,Traditional,Radiators - communal gas boiler +11 The Beeches,Wendover,Aylesbury,,HP22 6PA,Independent Living,Flat,1973,Traditional,Radiators - communal gas boiler +12 The Beeches,Wendover,Aylesbury,,HP22 6PA,Independent Living,Flat,1973,Traditional,Radiators - communal gas boiler +14 The Beeches,Wendover,Aylesbury,,HP22 6PA,Independent Living,Flat,1973,Traditional,Radiators - communal gas boiler +15 The Beeches,Wendover,Aylesbury,,HP22 6PA,Independent Living,Flat,1973,Traditional,Radiators - communal gas boiler +19 The Beeches,Wendover,Aylesbury,,HP22 6PA,Independent Living,Flat,1973,Traditional,Radiators - communal gas boiler +20 The Beeches,Wendover,Aylesbury,,HP22 6PA,Independent Living,Flat,1973,Traditional,Radiators - communal gas boiler +21 The Beeches,Wendover,Aylesbury,,HP22 6PA,Independent Living,Flat,1973,Traditional,Radiators - communal gas boiler +22 The Beeches,Wendover,Aylesbury,,HP22 6PA,Independent Living,Flat,1973,Traditional,Radiators - communal gas boiler +23 The Beeches,Wendover,Aylesbury,,HP22 6PA,Independent Living,Flat,1973,Traditional,Radiators - communal gas boiler +24 The Beeches,Wendover,Aylesbury,,HP22 6PA,Independent Living,Flat,1973,Traditional,Radiators - communal gas boiler +25 The Beeches,Wendover,Aylesbury,,HP22 6PA,Independent Living,Flat,1973,Traditional,Radiators - communal gas boiler +26 The Beeches,Wendover,Aylesbury,,HP22 6PA,Independent Living,Flat,1973,Traditional,Radiators - communal gas boiler +27 The Beeches,Wendover,Aylesbury,,HP22 6PA,Independent Living,Flat,1973,Traditional,Radiators - communal gas boiler +28 The Beeches,Wendover,Aylesbury,,HP22 6PA,Independent Living,Flat,1973,Traditional,Radiators - communal gas boiler +29 The Beeches,Wendover,Aylesbury,,HP22 6PA,Independent Living,Flat,1973,Traditional,Radiators - communal gas boiler +30 The Beeches,Wendover,Aylesbury,,HP22 6PA,Independent Living,Flat,1973,Traditional,Radiators - communal gas boiler +38 The Beeches,Wendover,Aylesbury,,HP22 6PB,General Needs,House,1972,Traditional,Natural gas (mains) +49 The Beeches,Wendover,Aylesbury,,HP22 6PB,General Needs,House,1973,Traditional,Natural gas (mains) +54 The Beeches,Wendover,Aylesbury,,HP22 6PB,General Needs,House,1973,Traditional,Natural gas (mains) +60 The Beeches,Wendover,Aylesbury,,HP22 6PB,General Needs,House,1973,Traditional,Natural gas (mains) +61 The Beeches,Wendover,Aylesbury,,HP22 6PB,General Needs,House,1973,Traditional,Natural gas (mains) +64 The Beeches,Wendover,Aylesbury,,HP22 6PB,General Needs,House,1973,Traditional,Natural gas (mains) +1 Birmingham Drive,Broughton,Aylesbury,,HP22 7AG,General Needs,House,2017,Traditional,Natural gas (mains) +3 Birmingham Drive,Broughton,Aylesbury,,HP22 7AG,General Needs,House,2017,Traditional,Natural gas (mains) +5 Birmingham Drive,Broughton,Aylesbury,,HP22 7AG,General Needs,House,2017,Traditional,Natural gas (mains) +7 Birmingham Drive,Broughton,Aylesbury,,HP22 7AG,General Needs,House,2017,Traditional,Natural gas (mains) +9 Birmingham Drive,Broughton,Aylesbury,,HP22 7AG,General Needs,House,2017,Traditional,Natural gas (mains) +11 Birmingham Drive,Broughton,Aylesbury,,HP22 7AG,General Needs,House,2017,Traditional,Natural gas (mains) +12 Birmingham Drive,Broughton,Aylesbury,,HP22 7AG,General Needs,Flat,2017,Traditional,Natural gas (mains) +14 Birmingham Drive,Broughton,Aylesbury,,HP22 7AG,General Needs,Flat,2017,Traditional,Natural gas (mains) +16 Birmingham Drive,Broughton,Aylesbury,,HP22 7AG,General Needs,Flat,2017,Traditional,Natural gas (mains) +18 Birmingham Drive,Broughton,Aylesbury,,HP22 7AG,General Needs,Flat,2017,Traditional,Natural gas (mains) +20 Birmingham Drive,Broughton,Aylesbury,,HP22 7AG,General Needs,Flat,2017,Traditional,Natural gas (mains) +22 Birmingham Drive,Broughton,Aylesbury,,HP22 7AG,General Needs,Flat,2017,Traditional,Natural gas (mains) +24 Birmingham Drive,Broughton,Aylesbury,,HP22 7AG,General Needs,House,2018,Traditional,Natural gas (mains) +26 Birmingham Drive,Broughton,Aylesbury,,HP22 7AG,General Needs,House,2018,Traditional,Natural gas (mains) +28 Birmingham Drive,Broughton,Aylesbury,,HP22 7AG,General Needs,House,2018,Traditional,Natural gas (mains) +30 Birmingham Drive,Broughton,Aylesbury,,HP22 7AG,General Needs,House,2018,Traditional,Natural gas (mains) +32 Birmingham Drive,Broughton,Aylesbury,,HP22 7AG,General Needs,House,2018,Traditional,Natural gas (mains) +1 Pulver Road,Broughton,Aylesbury,,HP22 7AH,General Needs,House,2017,Traditional,Natural gas (mains) +2 Pulver Road,Broughton,Aylesbury,,HP22 7AH,General Needs,Flat,2017,Traditional,Natural gas (mains) +3 Pulver Road,Broughton,Aylesbury,,HP22 7AH,General Needs,Flat,2017,Traditional,Natural gas (mains) +4 Pulver Road,Broughton,Aylesbury,,HP22 7AH,General Needs,Flat,2017,Traditional,Natural gas (mains) +5 Pulver Road,Broughton,Aylesbury,,HP22 7AH,General Needs,Flat,2017,Traditional,Natural gas (mains) +6 Pulver Road,Broughton,Aylesbury,,HP22 7AH,General Needs,House,2017,Traditional,Natural gas (mains) +7 Pulver Road,Broughton,Aylesbury,,HP22 7AH,General Needs,House,2017,Traditional,Natural gas (mains) +8 Pulver Road,Broughton,Aylesbury,,HP22 7AH,General Needs,House,2017,Traditional,Natural gas (mains) +9 Pulver Road,Broughton,Aylesbury,,HP22 7AH,General Needs,House,2017,Traditional,Natural gas (mains) +12 Pulver Road,Broughton,Aylesbury,,HP22 7AH,General Needs,House,2017,Traditional,Natural gas (mains) +14 Pulver Road,Broughton,Aylesbury,,HP22 7AH,General Needs,House,2017,Traditional,Natural gas (mains) +15 Pulver Road,Broughton,Aylesbury,,HP22 7AH,General Needs,House,2017,Traditional,Natural gas (mains) +16 Pulver Road,Broughton,Aylesbury,,HP22 7AH,General Needs,House,2017,Traditional,Natural gas (mains) +18 Pulver Road,Broughton,Aylesbury,,HP22 7AH,General Needs,House,2018,Traditional,Natural gas (mains) +19 Pulver Road,Broughton,Aylesbury,,HP22 7AH,General Needs,House,2018,Traditional,Natural gas (mains) +20 Pulver Road,Broughton,Aylesbury,,HP22 7AH,General Needs,Flat,2018,Traditional,Natural gas (mains) +21 Pulver Road,Broughton,Aylesbury,,HP22 7AH,General Needs,Flat,2018,Traditional,Natural gas (mains) +22 Pulver Road,Broughton,Aylesbury,,HP22 7AH,General Needs,Flat,2018,Traditional,Natural gas (mains) +23 Pulver Road,Broughton,Aylesbury,,HP22 7AH,General Needs,Flat,2018,Traditional,Natural gas (mains) +24 Pulver Road,Broughton,Aylesbury,,HP22 7AH,General Needs,Flat,2018,Traditional,Natural gas (mains) +25 Pulver Road,Broughton,Aylesbury,,HP22 7AH,General Needs,Flat,2018,Traditional,Natural gas (mains) +26 Pulver Road,Broughton,Aylesbury,,HP22 7AH,General Needs,House,2017,Traditional,Natural gas (mains) +34 Pulver Road,Broughton,Aylesbury,,HP22 7AH,General Needs,Flat,2018,Traditional,Natural gas (mains) +35 Pulver Road,Broughton,Aylesbury,,HP22 7AH,General Needs,Flat,2018,Traditional,Natural gas (mains) +36 Pulver Road,Broughton,Aylesbury,,HP22 7AH,General Needs,Flat,2018,Traditional,Natural gas (mains) +37 Pulver Road,Broughton,Aylesbury,,HP22 7AH,General Needs,Flat,2018,Traditional,Natural gas (mains) +38 Pulver Road,Broughton,Aylesbury,,HP22 7AH,General Needs,Flat,2018,Traditional,Natural gas (mains) +39 Pulver Road,Broughton,Aylesbury,,HP22 7AH,General Needs,Flat,2018,Traditional,Natural gas (mains) +1 Hatton Street,Broughton,Aylesbury,,HP22 7AL,General Needs,House,2017,Traditional,Natural gas (mains) +3 Hatton Street,Broughton,Aylesbury,,HP22 7AL,General Needs,House,2017,Traditional,Natural gas (mains) +7 Carriage Road,Broughton,Aylesbury,,HP22 7AN,General Needs,House,2017,Traditional,Natural gas (mains) +9 Carriage Road,Broughton,Aylesbury,,HP22 7AN,General Needs,House,2017,Traditional,Natural gas (mains) +1 Ivatt Mews,Broughton,Aylesbury,,HP22 7AQ,General Needs,House,2017,Traditional,Natural gas (mains) +2 Robins Street,Broughton,Aylesbury,,HP22 7AR,General Needs,House,2017,Traditional,Natural gas (mains) +4 Robins Street,Broughton,Aylesbury,,HP22 7AR,General Needs,House,2017,Traditional,Natural gas (mains) +6 Robins Street,Broughton,Aylesbury,,HP22 7AR,General Needs,House,2017,Traditional,Natural gas (mains) +8 Robins Street,Broughton,Aylesbury,,HP22 7AR,General Needs,House,2017,Traditional,Natural gas (mains) +5 Clerk Street,Broughton,Aylesbury,,HP22 7AS,General Needs,House,2017,Traditional,Natural gas (mains) +7 Clerk Street,Broughton,Aylesbury,,HP22 7AS,General Needs,House,2017,Traditional,Natural gas (mains) +9 Clerk Street,Broughton,Aylesbury,,HP22 7AS,General Needs,House,2017,Traditional,Natural gas (mains) +11 Clerk Street,Broughton,Aylesbury,,HP22 7AS,General Needs,House,2017,Traditional,Natural gas (mains) +15 Clerk Street,Broughton,Aylesbury,,HP22 7AS,General Needs,House,2017,Traditional,Natural gas (mains) +17 Clerk Street,Broughton,Aylesbury,,HP22 7AS,General Needs,House,2017,Traditional,Natural gas (mains) +3 Harry Mews,Broughton,Aylesbury,,HP22 7AT,General Needs,House,2017,Traditional,Natural gas (mains) +5 Harry Mews,Broughton,Aylesbury,,HP22 7AT,General Needs,House,2017,Traditional,Natural gas (mains) +7 Harry Mews,Broughton,Aylesbury,,HP22 7AT,General Needs,House,2017,Traditional,Natural gas (mains) +9 Harry Mews,Broughton,Aylesbury,,HP22 7AT,General Needs,House,2017,Traditional,Natural gas (mains) +11 Harry Mews,Broughton,Aylesbury,,HP22 7AT,General Needs,House,2017,Traditional,Natural gas (mains) +15 Harry Mews,Broughton,Aylesbury,,HP22 7AT,General Needs,House,2017,Traditional,Natural gas (mains) +2 Engine Lane,Broughton,Aylesbury,,HP22 7BB,General Needs,House,2018,Traditional,Natural gas (mains) +4 Engine Lane,Broughton,Aylesbury,,HP22 7BB,General Needs,House,2018,Traditional,Natural gas (mains) +6 Engine Lane,Broughton,Aylesbury,,HP22 7BB,General Needs,Flat,2018,Traditional,Natural gas (mains) +8 Engine Lane,Broughton,Aylesbury,,HP22 7BB,General Needs,Flat,2018,Traditional,Natural gas (mains) +10 Engine Lane,Broughton,Aylesbury,,HP22 7BB,General Needs,Flat,2018,Traditional,Natural gas (mains) +12 Engine Lane,Broughton,Aylesbury,,HP22 7BB,General Needs,Flat,2018,Traditional,Natural gas (mains) +14 Engine Lane,Broughton,Aylesbury,,HP22 7BB,General Needs,Flat,2018,Traditional,Natural gas (mains) +16 Engine Lane,Broughton,Aylesbury,,HP22 7BB,General Needs,Flat,2018,Traditional,Natural gas (mains) +6 Basket Street,Broughton,Aylesbury,,HP22 7BF,General Needs,House,2018,Traditional,Natural gas (mains) +7 Basket Street,Broughton,Aylesbury,,HP22 7BF,General Needs,House,2018,Traditional,Natural gas (mains) +12 Paddington Lane,Broughton,Aylesbury,,HP22 7DU,General Needs,House,2021,Traditional,Natural gas (mains) +14 Paddington Lane,Broughton,Aylesbury,,HP22 7DU,General Needs,House,2021,Traditional,Natural gas (mains) +15 Paddington Lane,Broughton,Aylesbury,,HP22 7DU,General Needs,House,2021,Traditional,Natural gas (mains) +3 Leopold Way,Broughton,Aylesbury,,HP22 7DX,General Needs,House,2021,Traditional,Natural gas (mains) +5 Leopold Way,Broughton,Aylesbury,,HP22 7DX,General Needs,House,2021,Traditional,Natural gas (mains) +6 Leopold Way,Broughton,Aylesbury,,HP22 7DX,General Needs,House,2021,Traditional,Natural gas (mains) +7 Leopold Way,Broughton,Aylesbury,,HP22 7DX,General Needs,House,2021,Traditional,Natural gas (mains) +8 Leopold Way,Broughton,Aylesbury,,HP22 7DX,General Needs,House,2021,Traditional,Natural gas (mains) +22 Leopold Way,Broughton,Aylesbury,,HP22 7DX,General Needs,House,2021,Traditional,Natural gas (mains) +24 Leopold Way,Broughton,Aylesbury,,HP22 7DX,General Needs,House,2021,Traditional,Natural gas (mains) +27 Leopold Way,Broughton,Aylesbury,,HP22 7DX,General Needs,House,2021,Traditional,Natural gas (mains) +29 Leopold Way,Broughton,Aylesbury,,HP22 7DX,General Needs,House,2021,Traditional,Natural gas (mains) +18 Johnson Street,Broughton,Aylesbury,,HP22 7DZ,General Needs,House,2022,Traditional,Natural gas (mains) +6 Grand Junction,Broughton,Aylesbury,,HP22 7EB,General Needs,House,2021,Traditional,Natural gas (mains) +8 Grand Junction,Broughton,Aylesbury,,HP22 7EB,General Needs,House,2021,Traditional,Natural gas (mains) +12 Grand Junction,Broughton,Aylesbury,,HP22 7EB,General Needs,House,2021,Traditional,Natural gas (mains) +15 Grand Junction,Broughton,Aylesbury,,HP22 7EB,General Needs,House,2022,Traditional,Natural gas (mains) +1 Limehouse Road,Broughton,Aylesbury,,HP22 7ED,General Needs,House,2022,Traditional,Natural gas (mains) +3 Limehouse Road,Broughton,Aylesbury,,HP22 7ED,General Needs,House,2022,Traditional,Natural gas (mains) +5 Limehouse Road,Broughton,Aylesbury,,HP22 7ED,General Needs,House,2022,Traditional,Natural gas (mains) +7 Limehouse Road,Broughton,Aylesbury,,HP22 7ED,General Needs,House,2022,Traditional,Natural gas (mains) +9 Limehouse Road,Broughton,Aylesbury,,HP22 7ED,General Needs,House,2022,Traditional,Natural gas (mains) +11 Limehouse Road,Broughton,Aylesbury,,HP22 7ED,General Needs,House,2022,Traditional,Natural gas (mains) +15 Limehouse Road,Broughton,Aylesbury,,HP22 7ED,General Needs,House,2022,Traditional,Natural gas (mains) +17 Limehouse Road,Broughton,Aylesbury,,HP22 7ED,General Needs,House,2022,Traditional,Natural gas (mains) +41 Lower Icknield Way,Marsworth,Tring,Hertfordshire,HP23 4LN,General Needs,House,1934,Traditional,Oil +20 The Crescent,Marsworth,Tring,Hertfordshire,HP23 4LP,General Needs,Bungalow,1976,Traditional,Natural gas (mains) +21 The Crescent,Marsworth,Tring,Hertfordshire,HP23 4LP,General Needs,Bungalow,1976,Traditional,Natural gas (mains) +18 The Crescent,Marsworth,Tring,Hertfordshire,HP23 4LP,General Needs,Bungalow,1976,Traditional,Oil +3 The Crescent,Marsworth,Tring,Hertfordshire,HP23 4LP,General Needs,House,1952,Traditional,Solid fuel +19 The Crescent,Marsworth,Tring,Hertfordshire,HP23 4LP,General Needs,Bungalow,1976,Traditional,Storage heaters +42 Vicarage Road,Marsworth,Tring,Hertfordshire,HP23 4LT,General Needs,Bungalow,1970,Traditional,Solid fuel +44 Vicarage Road,Marsworth,Tring,Hertfordshire,HP23 4LT,General Needs,Bungalow,1970,Traditional,Storage heaters +46 Vicarage Road,Marsworth,Tring,Hertfordshire,HP23 4LT,General Needs,Bungalow,1970,Traditional,Storage heaters +48 Vicarage Road,Marsworth,Tring,Hertfordshire,HP23 4LT,General Needs,Bungalow,1970,Traditional,Storage heaters +58 Vicarage Road,Marsworth,Tring,Hertfordshire,HP23 4LU,General Needs,Bungalow,1954,Traditional,LPG +66 Vicarage Road,Marsworth,Tring,Hertfordshire,HP23 4LU,General Needs,Bungalow,1954,Traditional,LPG +60 Vicarage Road,Marsworth,Tring,Hertfordshire,HP23 4LU,General Needs,Bungalow,1954,Traditional,Storage heaters +62 Vicarage Road,Marsworth,Tring,Hertfordshire,HP23 4LU,General Needs,Bungalow,1954,Traditional,Storage heaters +64 Vicarage Road,Marsworth,Tring,Hertfordshire,HP23 4LU,General Needs,Bungalow,1954,Traditional,Storage heaters +61 Lower Icknield Way,Marsworth,Tring,Hertfordshire,HP23 4LW,General Needs,House,1948,Traditional,ASHP +83 Lower Icknield Way,Marsworth,Tring,Hertfordshire,HP23 4LW,General Needs,House,1952,Traditional,ASHP +55 Lower Icknield Way,Marsworth,Tring,Hertfordshire,HP23 4LW,General Needs,House,1948,Traditional,LPG +59 Lower Icknield Way,Marsworth,Tring,Hertfordshire,HP23 4LW,General Needs,House,1948,Traditional,Oil +77 Lower Icknield Way,Marsworth,Tring,Hertfordshire,HP23 4LW,General Needs,House,1950,Traditional,Oil +67 Lower Icknield Way,Marsworth,Tring,Hertfordshire,HP23 4LW,General Needs,House,1948,Traditional,Storage heaters +3 Crown Mews,Rothschild Place,Tring,,HP23 5FJ,General Needs,Flat,2015,Traditional,Natural gas (mains) +4 Crown Mews,Rothschild Place,Tring,,HP23 5FJ,General Needs,Flat,2015,Traditional,Natural gas (mains) +5 Crown Mews,Rothschild Place,Tring,,HP23 5FJ,General Needs,Flat,2015,Traditional,Natural gas (mains) +6 Crown Mews,Rothschild Place,Tring,,HP23 5FJ,General Needs,Flat,2015,Traditional,Natural gas (mains) +7 Crown Mews,Rothschild Place,Tring,,HP23 5FJ,General Needs,Flat,2015,Traditional,Natural gas (mains) +1 Lammas Close,Longwick,Princes Risborough,,HP27 9FW,General Needs,House,2019,Traditional,Natural gas (mains) +2 Lammas Close,Longwick,Princes Risborough,,HP27 9FW,General Needs,House,2019,Traditional,Natural gas (mains) +3 Lammas Close,Longwick,Princes Risborough,,HP27 9FW,General Needs,House,2019,Traditional,Natural gas (mains) +21 Nelson Road,Dagnall,Berkhamsted,,HP4 1RF,General Needs,Bungalow,1958,Traditional,ASHP +10 Nelson Road,Dagnall,Berkhamsted,,HP4 1RF,General Needs,House,1956,Traditional,LPG +13 Nelson Road,Dagnall,Berkhamsted,,HP4 1RF,General Needs,House,1959,Traditional,LPG +19 Nelson Road,Dagnall,Berkhamsted,,HP4 1RF,General Needs,Bungalow,1958,Traditional,Storage heaters +15 Dunstable Road,Dagnall,Berkhamsted,,HP4 1RG,General Needs,House,1949,Traditional,ASHP +33 Dunstable Road,Dagnall,Berkhamsted,,HP4 1RG,General Needs,House,1931,Traditional,ASHP +21 Dunstable Road,Dagnall,Berkhamsted,,HP4 1RG,General Needs,House,1936,Traditional,LPG +23 Dunstable Road,Dagnall,Berkhamsted,,HP4 1RG,General Needs,House,1936,Traditional,LPG +27 Dunstable Road,Dagnall,Berkhamsted,,HP4 1RG,General Needs,House,1936,Traditional,LPG +29 Dunstable Road,Dagnall,Berkhamsted,,HP4 1RG,General Needs,House,1931,Traditional,LPG +9 Dunstable Road,Dagnall,Berkhamsted,,HP4 1RG,General Needs,House,1949,Traditional,Oil +1 Church End,Edlesborough,Dunstable,,LU6 2EP,General Needs,House,1931,Traditional,Natural gas (mains) +2 Church End,Edlesborough,Dunstable,,LU6 2EP,General Needs,House,1931,Traditional,Natural gas (mains) +5 Church End,Edlesborough,Dunstable,,LU6 2EP,General Needs,House,1931,Traditional,Natural gas (mains) +6 Church End,Edlesborough,Dunstable,,LU6 2EP,General Needs,House,1931,Traditional,Natural gas (mains) +7 Church End,Edlesborough,Dunstable,,LU6 2EP,General Needs,House,1931,Traditional,Natural gas (mains) +9 Church End,Edlesborough,Dunstable,,LU6 2EP,General Needs,House,1949,Traditional,Natural gas (mains) +117 High Street,Edlesborough,Dunstable,,LU6 2ER,General Needs,House,1949,Traditional,Natural gas (mains) +119 High Street,Edlesborough,Dunstable,,LU6 2ER,General Needs,House,1949,Traditional,Natural gas (mains) +125 High Street,Edlesborough,Dunstable,,LU6 2ER,General Needs,House,1949,Traditional,Natural gas (mains) +129 High Street,Edlesborough,Dunstable,,LU6 2ER,General Needs,House,1949,Traditional,Natural gas (mains) +56 Eaton Bray Road,Northall,Dunstable,,LU6 2EU,General Needs,House,1949,Traditional,ASHP +35 Eaton Bray Road,Northall,Dunstable,,LU6 2EU,General Needs,House,1931,Traditional,LPG +54 Eaton Bray Road,Northall,Dunstable,,LU6 2EU,General Needs,House,1949,Traditional,LPG +58 Eaton Bray Road,Northall,Dunstable,,LU6 2EU,General Needs,House,1949,Traditional,Storage heaters +5 Southend Lane,Northall,Dunstable,,LU6 2EX,General Needs,House,1947,Traditional,LPG +7 Southend Lane,Northall,Dunstable,,LU6 2EX,General Needs,House,1947,Traditional,LPG +11 Southend Lane,Northall,Dunstable,,LU6 2EX,General Needs,House,1947,Traditional,LPG +1 Chapel Lane,Northall,Dunstable,,LU6 2HF,General Needs,House,1953,Traditional,LPG +2 Chapel Lane,Northall,Dunstable,,LU6 2HF,General Needs,House,1953,Traditional,LPG +113 High Street,Edlesborough,Dunstable,,LU6 2HX,General Needs,House,1952,Traditional,Natural gas (mains) +40 Chiltern Avenue,Edlesborough,Dunstable,,LU6 2HY,General Needs,Bungalow,1955,Traditional,ASHP +11 Chiltern Avenue,Edlesborough,Dunstable,,LU6 2HY,General Needs,House,1952,Traditional,Natural gas (mains) +15 Chiltern Avenue,Edlesborough,Dunstable,,LU6 2HY,General Needs,House,1955,Traditional,Natural gas (mains) +17 Chiltern Avenue,Edlesborough,Dunstable,,LU6 2HY,General Needs,House,1955,Traditional,Natural gas (mains) +23 Chiltern Avenue,Edlesborough,Dunstable,,LU6 2HY,General Needs,House,1955,Traditional,Natural gas (mains) +24 Chiltern Avenue,Edlesborough,Dunstable,,LU6 2HY,General Needs,Bungalow,1955,Traditional,Natural gas (mains) +32 Chiltern Avenue,Edlesborough,Dunstable,,LU6 2HY,General Needs,House,1955,Traditional,Natural gas (mains) +38 Chiltern Avenue,Edlesborough,Dunstable,,LU6 2HY,General Needs,Bungalow,1955,Traditional,Natural gas (mains) +2 Taskers Row Bungalows,Edlesborough,Dunstable,,LU6 2RG,Independent Living,Bungalow,1974,Traditional,Natural gas (mains) +3 Taskers Row Bungalows,Edlesborough,Dunstable,,LU6 2RG,Independent Living,Bungalow,1974,Traditional,Natural gas (mains) +4 Taskers Row Bungalows,Edlesborough,Dunstable,,LU6 2RG,Independent Living,Bungalow,1974,Traditional,Natural gas (mains) +5 Taskers Row Bungalows,Edlesborough,Dunstable,,LU6 2RG,Independent Living,Bungalow,1974,Traditional,Natural gas (mains) +6 Taskers Row Bungalows,Edlesborough,Dunstable,,LU6 2RG,Independent Living,Bungalow,1974,Traditional,Natural gas (mains) +7 Taskers Row Bungalows,Edlesborough,Dunstable,,LU6 2RG,Independent Living,Bungalow,1974,Traditional,Natural gas (mains) +9 Taskers Row Bungalows,Edlesborough,Dunstable,,LU6 2RG,Independent Living,Bungalow,1974,Traditional,Natural gas (mains) +11 Taskers Row Bungalows,Edlesborough,Dunstable,,LU6 2RG,Independent Living,Bungalow,1974,Traditional,Natural gas (mains) +13 Taskers Row Bungalows,Edlesborough,Dunstable,,LU6 2RG,Independent Living,Bungalow,1974,Traditional,Natural gas (mains) +15 Taskers Row Bungalows,Edlesborough,Dunstable,,LU6 2RG,Independent Living,Bungalow,1974,Traditional,Natural gas (mains) +17 Taskers Row Bungalows,Edlesborough,Dunstable,,LU6 2RG,Independent Living,Bungalow,1974,Traditional,Natural gas (mains) +19 Taskers Row Bungalows,Edlesborough,Dunstable,,LU6 2RG,Independent Living,Bungalow,1974,Traditional,Natural gas (mains) +21 Taskers Row Bungalows,Edlesborough,Dunstable,,LU6 2RG,Independent Living,Bungalow,1974,Traditional,Natural gas (mains) +23 Taskers Row Bungalows,Edlesborough,Dunstable,,LU6 2RG,Independent Living,Bungalow,1974,Traditional,Natural gas (mains) +25 Taskers Row Bungalows,Edlesborough,Dunstable,,LU6 2RG,Independent Living,Bungalow,1974,Traditional,Natural gas (mains) +27 Taskers Row Bungalows,Edlesborough,Dunstable,,LU6 2RG,Independent Living,Bungalow,1974,Traditional,Natural gas (mains) +29 Taskers Row Bungalows,Edlesborough,Dunstable,,LU6 2RG,Independent Living,Bungalow,1974,Traditional,Natural gas (mains) +31 Taskers Row Bungalows,Edlesborough,Dunstable,,LU6 2RG,Independent Living,Bungalow,1974,Traditional,Natural gas (mains) +33 Taskers Row Bungalows,Edlesborough,Dunstable,,LU6 2RG,Independent Living,Bungalow,1974,Traditional,Natural gas (mains) +35 Taskers Row Bungalows,Edlesborough,Dunstable,,LU6 2RG,Independent Living,Bungalow,1974,Traditional,Natural gas (mains) +37 Taskers Row Bungalows,Edlesborough,Dunstable,,LU6 2RG,Independent Living,Bungalow,1974,Traditional,Natural gas (mains) +39 Taskers Row Bungalows,Edlesborough,Dunstable,,LU6 2RG,Independent Living,Bungalow,1974,Traditional,Natural gas (mains) +2 Leighton Road,Soulbury,Leighton Buzzard,,LU7 0BP,General Needs,House,1921,Traditional,LPG +53 High Road,Soulbury,Leighton Buzzard,,LU7 0BT,General Needs,Bungalow,1965,Traditional,Natural gas (mains) +55 High Road,Soulbury,Leighton Buzzard,,LU7 0BT,General Needs,Bungalow,1965,Traditional,Natural gas (mains) +57 High Road,Soulbury,Leighton Buzzard,,LU7 0BT,General Needs,Bungalow,1965,Traditional,Natural gas (mains) +10 High Road,Soulbury,Leighton Buzzard,,LU7 0BX,General Needs,Bungalow,1966,Traditional,Natural gas (mains) +12 High Road,Soulbury,Leighton Buzzard,,LU7 0BX,General Needs,Bungalow,1966,Traditional,Natural gas (mains) +4 Chapel Hill,Soulbury,Leighton Buzzard,,LU7 0BZ,General Needs,Bungalow,1960,Traditional,Natural gas (mains) +6 Chapel Hill,Soulbury,Leighton Buzzard,,LU7 0BZ,General Needs,Bungalow,1960,Traditional,Natural gas (mains) +8 Chapel Hill,Soulbury,Leighton Buzzard,,LU7 0BZ,General Needs,Bungalow,1960,Traditional,Natural gas (mains) +1 Mount Pleasant,Soulbury,Leighton Buzzard,,LU7 0DB,General Needs,Bungalow,1967,Traditional,Natural gas (mains) +3 Mount Pleasant,Soulbury,Leighton Buzzard,,LU7 0DB,General Needs,Bungalow,1967,Traditional,Natural gas (mains) +5 Mount Pleasant,Soulbury,Leighton Buzzard,,LU7 0DB,General Needs,Bungalow,1967,Traditional,Natural gas (mains) +12 Mount Pleasant,Soulbury,Leighton Buzzard,,LU7 0DB,General Needs,House,1967,Traditional,Natural gas (mains) +16 Mount Pleasant,Soulbury,Leighton Buzzard,,LU7 0DB,General Needs,House,1967,Traditional,Natural gas (mains) +18 Mount Pleasant,Soulbury,Leighton Buzzard,,LU7 0DB,General Needs,House,1967,Traditional,Natural gas (mains) +20 Mount Pleasant,Soulbury,Leighton Buzzard,,LU7 0DB,General Needs,House,1967,Traditional,Natural gas (mains) +12A Mount Pleasant,Soulbury,Leighton Buzzard,,LU7 0DB,General Needs,House,2017,Traditional,Natural gas (mains) +12B Mount Pleasant,Soulbury,Leighton Buzzard,,LU7 0DB,General Needs,House,2017,Traditional,Natural gas (mains) +9 The Green,Soulbury,Leighton Buzzard,,LU7 0DD,General Needs,House,1961,Traditional,Natural gas (mains) +19 The Green,Soulbury,Leighton Buzzard,,LU7 0DD,General Needs,House,1948,Traditional,Natural gas (mains) +17 Stewkley Road,Soulbury,Leighton Buzzard,,LU7 0DH,General Needs,House,1953,Traditional,ASHP +2 Andrews Close,Soulbury,Leighton Buzzard,,LU7 0DQ,General Needs,Bungalow,1976,Traditional,ASHP +4 Andrews Close,Soulbury,Leighton Buzzard,,LU7 0DQ,General Needs,Bungalow,1976,Traditional,Natural gas (mains) +5 Andrews Close,Soulbury,Leighton Buzzard,,LU7 0DQ,General Needs,Bungalow,1976,Traditional,Natural gas (mains) +7 Andrews Close,Soulbury,Leighton Buzzard,,LU7 0DQ,General Needs,House,1976,Traditional,Natural gas (mains) +3 Andrews Close,Soulbury,Leighton Buzzard,,LU7 0DQ,General Needs,Bungalow,1976,Traditional,Storage heaters +9 Andrews Close,Soulbury,Leighton Buzzard,,LU7 0DQ,General Needs,House,1976,Traditional,Storage heaters +142A High Street North,Stewkley,Leighton Buzzard,,LU7 0EP,General Needs,Bungalow,1962,Traditional,Natural gas (mains) +144A High Street North,Stewkley,Leighton Buzzard,,LU7 0EP,General Needs,Bungalow,1962,Traditional,Natural gas (mains) +138 High Street North,Stewkley,Leighton Buzzard,,LU7 0EP,General Needs,Bungalow,1962,Traditional,Natural gas (mains) +140 High Street North,Stewkley,Leighton Buzzard,,LU7 0EP,General Needs,Bungalow,1962,Traditional,Natural gas (mains) +142 High Street North,Stewkley,Leighton Buzzard,,LU7 0EP,General Needs,Bungalow,1962,Traditional,Natural gas (mains) +144 High Street North,Stewkley,Leighton Buzzard,,LU7 0EP,General Needs,Bungalow,1962,Traditional,Natural gas (mains) +79 Stockhall Crescent,High Street North,Stewkley,Leighton Buzzard,LU7 0EX,General Needs,Bungalow,1938,Traditional,Natural gas (mains) +81 Stockhall Crescent,High Street North,Stewkley,Leighton Buzzard,LU7 0EX,General Needs,Bungalow,1938,Traditional,Natural gas (mains) +83 Stockhall Crescent,High Street North,Stewkley,Leighton Buzzard,LU7 0EX,General Needs,Bungalow,1938,Traditional,Natural gas (mains) +85 Stockhall Crescent,High Street North,Stewkley,Leighton Buzzard,LU7 0EX,General Needs,Bungalow,1938,Traditional,Natural gas (mains) +91 Stockhall Crescent,High Street North,Stewkley,Leighton Buzzard,LU7 0EX,General Needs,House,1938,Traditional,Natural gas (mains) +97 Stockhall Crescent,High Street North,Stewkley,Leighton Buzzard,LU7 0EX,General Needs,House,1938,Traditional,Natural gas (mains) +103 Stockhall Crescent,High Street North,Stewkley,Leighton Buzzard,LU7 0EX,General Needs,House,1938,Traditional,Natural gas (mains) +107 Stockhall Crescent,High Street North,Stewkley,Leighton Buzzard,LU7 0EX,General Needs,Bungalow,1938,Traditional,Natural gas (mains) +109 Stockhall Crescent,High Street North,Stewkley,Leighton Buzzard,LU7 0EX,General Needs,Bungalow,1938,Traditional,Natural gas (mains) +111 Stockhall Crescent,High Street North,Stewkley,Leighton Buzzard,LU7 0EX,General Needs,Bungalow,1938,Traditional,Natural gas (mains) +113 Stockhall Crescent,High Street North,Stewkley,Leighton Buzzard,LU7 0EX,General Needs,Bungalow,1938,Traditional,Natural gas (mains) +1 Sycamore Close,Stewkley,Leighton Buzzard,,LU7 0EY,General Needs,Bungalow,1968,Traditional,Natural gas (mains) +3 Sycamore Close,Stewkley,Leighton Buzzard,,LU7 0EY,General Needs,Bungalow,1968,Traditional,Natural gas (mains) +4 Sycamore Close,Stewkley,Leighton Buzzard,,LU7 0EY,General Needs,Bungalow,1968,Traditional,Natural gas (mains) +5 Sycamore Close,Stewkley,Leighton Buzzard,,LU7 0EY,General Needs,Bungalow,1968,Traditional,Natural gas (mains) +6 Sycamore Close,Stewkley,Leighton Buzzard,,LU7 0EY,General Needs,Bungalow,1968,Traditional,Natural gas (mains) +7 Sycamore Close,Stewkley,Leighton Buzzard,,LU7 0EY,General Needs,Bungalow,1968,Traditional,Natural gas (mains) +8 Sycamore Close,Stewkley,Leighton Buzzard,,LU7 0EY,General Needs,Bungalow,1968,Traditional,Natural gas (mains) +9 Sycamore Close,Stewkley,Leighton Buzzard,,LU7 0EY,General Needs,Bungalow,1968,Traditional,Natural gas (mains) +10 Sycamore Close,Stewkley,Leighton Buzzard,,LU7 0EY,General Needs,Bungalow,1968,Traditional,Natural gas (mains) +11 Sycamore Close,Stewkley,Leighton Buzzard,,LU7 0EY,General Needs,Bungalow,1968,Traditional,Natural gas (mains) +12 Sycamore Close,Stewkley,Leighton Buzzard,,LU7 0EY,General Needs,Bungalow,1968,Traditional,Natural gas (mains) +13 Sycamore Close,Stewkley,Leighton Buzzard,,LU7 0EY,General Needs,Bungalow,1968,Traditional,Natural gas (mains) +14 Sycamore Close,Stewkley,Leighton Buzzard,,LU7 0EY,General Needs,Bungalow,1968,Traditional,Natural gas (mains) +15 Sycamore Close,Stewkley,Leighton Buzzard,,LU7 0EY,General Needs,Bungalow,1968,Traditional,Natural gas (mains) +17 Sycamore Close,Stewkley,Leighton Buzzard,,LU7 0EY,General Needs,Bungalow,1968,Traditional,Natural gas (mains) +18 Sycamore Close,Stewkley,Leighton Buzzard,,LU7 0EY,General Needs,Bungalow,1968,Traditional,Natural gas (mains) +19 Sycamore Close,Stewkley,Leighton Buzzard,,LU7 0EY,General Needs,Bungalow,1968,Traditional,Natural gas (mains) +20 Sycamore Close,Stewkley,Leighton Buzzard,,LU7 0EY,General Needs,Bungalow,1968,Traditional,Natural gas (mains) +21 Sycamore Close,Stewkley,Leighton Buzzard,,LU7 0EY,General Needs,Bungalow,1968,Traditional,Natural gas (mains) +22 Sycamore Close,Stewkley,Leighton Buzzard,,LU7 0EY,General Needs,Bungalow,1968,Traditional,Natural gas (mains) +23 Sycamore Close,Stewkley,Leighton Buzzard,,LU7 0EY,General Needs,Bungalow,1968,Traditional,Natural gas (mains) +24 Sycamore Close,Stewkley,Leighton Buzzard,,LU7 0EY,General Needs,Bungalow,1968,Traditional,Natural gas (mains) +25 Sycamore Close,Stewkley,Leighton Buzzard,,LU7 0EY,General Needs,Bungalow,1968,Traditional,Natural gas (mains) +27 Sycamore Close,Stewkley,Leighton Buzzard,,LU7 0EY,General Needs,House,1968,Traditional,Natural gas (mains) +1 Fishweir,Stewkley,Leighton Buzzard,,LU7 0HB,General Needs,Bungalow,1960,Traditional,Natural gas (mains) +3 Fishweir,Stewkley,Leighton Buzzard,,LU7 0HB,General Needs,Bungalow,1960,Traditional,Natural gas (mains) +5 Fishweir,Stewkley,Leighton Buzzard,,LU7 0HB,General Needs,Bungalow,1960,Traditional,Natural gas (mains) +7 Fishweir,Stewkley,Leighton Buzzard,,LU7 0HB,General Needs,Bungalow,1960,Traditional,Natural gas (mains) +9 Fishweir,Stewkley,Leighton Buzzard,,LU7 0HB,General Needs,Bungalow,1960,Traditional,Natural gas (mains) +49 High Street South,Stewkley,Leighton Buzzard,,LU7 0HP,General Needs,House,1929,Traditional,Natural gas (mains) +51 High Street South,Stewkley,Leighton Buzzard,,LU7 0HP,General Needs,House,1929,Traditional,Natural gas (mains) +15 Dove Street,Stewkley,Leighton Buzzard,,LU7 0HT,General Needs,House,1933,Traditional,ASHP +2 Dove Street,Stewkley,Leighton Buzzard,,LU7 0HT,General Needs,House,1949,Traditional,Natural gas (mains) +4 Dove Street,Stewkley,Leighton Buzzard,,LU7 0HT,General Needs,House,1949,Traditional,Natural gas (mains) +6 Dove Street,Stewkley,Leighton Buzzard,,LU7 0HT,General Needs,House,1949,Traditional,Natural gas (mains) +7 Dove Street,Stewkley,Leighton Buzzard,,LU7 0HT,General Needs,House,1933,Traditional,Natural gas (mains) +9 Dove Street,Stewkley,Leighton Buzzard,,LU7 0HT,General Needs,House,1933,Traditional,Natural gas (mains) +10 Dove Street,Stewkley,Leighton Buzzard,,LU7 0HT,General Needs,House,1949,Traditional,Natural gas (mains) +12 Dove Street,Stewkley,Leighton Buzzard,,LU7 0HT,General Needs,House,1949,Traditional,Natural gas (mains) +13 Dove Street,Stewkley,Leighton Buzzard,,LU7 0HT,General Needs,House,1933,Traditional,Natural gas (mains) +16 Dove Street,Stewkley,Leighton Buzzard,,LU7 0HT,General Needs,House,1949,Traditional,Natural gas (mains) +17 Dove Street,Stewkley,Leighton Buzzard,,LU7 0HT,General Needs,House,1933,Traditional,Natural gas (mains) +18 Dove Street,Stewkley,Leighton Buzzard,,LU7 0HT,General Needs,House,1952,Traditional,Natural gas (mains) +19 Dove Street,Stewkley,Leighton Buzzard,,LU7 0HT,General Needs,House,1951,Traditional,Natural gas (mains) +20 Dove Street,Stewkley,Leighton Buzzard,,LU7 0HT,General Needs,House,1952,Traditional,Natural gas (mains) +23 Dove Street,Stewkley,Leighton Buzzard,,LU7 0HT,General Needs,House,1951,Traditional,Natural gas (mains) +27 Dove Street,Stewkley,Leighton Buzzard,,LU7 0HT,General Needs,House,1951,Traditional,Natural gas (mains) +29 Dove Street,Stewkley,Leighton Buzzard,,LU7 0HT,General Needs,House,1951,Traditional,Natural gas (mains) +30 Dove Street,Stewkley,Leighton Buzzard,,LU7 0HT,General Needs,House,1952,Traditional,Natural gas (mains) +31 Dove Street,Stewkley,Leighton Buzzard,,LU7 0HT,General Needs,House,1951,Traditional,Natural gas (mains) +32 Dove Street,Stewkley,Leighton Buzzard,,LU7 0HT,General Needs,House,1952,Traditional,Natural gas (mains) +33 Dove Street,Stewkley,Leighton Buzzard,,LU7 0HT,General Needs,House,1951,Traditional,Natural gas (mains) +34 Dove Street,Stewkley,Leighton Buzzard,,LU7 0HT,General Needs,House,1952,Traditional,Natural gas (mains) +39 Dove Street,Stewkley,Leighton Buzzard,,LU7 0HT,General Needs,Bungalow,1951,Traditional,Natural gas (mains) +41 Dove Street,Stewkley,Leighton Buzzard,,LU7 0HT,General Needs,Bungalow,1951,Traditional,Natural gas (mains) +42 Dove Street,Stewkley,Leighton Buzzard,,LU7 0HT,General Needs,House,1952,Traditional,Natural gas (mains) +43 Dove Street,Stewkley,Leighton Buzzard,,LU7 0HT,General Needs,Bungalow,1951,Traditional,Natural gas (mains) +45 Dove Street,Stewkley,Leighton Buzzard,,LU7 0HT,General Needs,Bungalow,1951,Traditional,Natural gas (mains) +47 Dove Street,Stewkley,Leighton Buzzard,,LU7 0HT,General Needs,Bungalow,1951,Traditional,Natural gas (mains) +49 Dove Street,Stewkley,Leighton Buzzard,,LU7 0HT,General Needs,Bungalow,1951,Traditional,Natural gas (mains) +52 Dove Street,Stewkley,Leighton Buzzard,,LU7 0HT,General Needs,House,1951,Traditional,Natural gas (mains) +53 Dove Street,Stewkley,Leighton Buzzard,,LU7 0HT,General Needs,House,1951,Traditional,Natural gas (mains) +4 Soulbury Road,Stewkley,Leighton Buzzard,,LU7 0HW,General Needs,House,1952,Traditional,Natural gas (mains) +12 Bell Close,Cublington,Leighton Buzzard,,LU7 0LH,General Needs,Bungalow,1963,Traditional,ASHP +14 Bell Close,Cublington,Leighton Buzzard,,LU7 0LH,General Needs,House,1963,Traditional,LPG +2 Bell Close,Cublington,Leighton Buzzard,,LU7 0LH,General Needs,Bungalow,1963,Traditional,Storage heaters +4 Bell Close,Cublington,Leighton Buzzard,,LU7 0LH,General Needs,Bungalow,1963,Traditional,Storage heaters +6 Bell Close,Cublington,Leighton Buzzard,,LU7 0LH,General Needs,Bungalow,1963,Traditional,Storage heaters +8 Bell Close,Cublington,Leighton Buzzard,,LU7 0LH,General Needs,Bungalow,1963,Traditional,Storage heaters +10 Bell Close,Cublington,Leighton Buzzard,,LU7 0LH,General Needs,Bungalow,1963,Traditional,Storage heaters +2B Bell Close,Cublington,Leighton Buzzard,,LU7 0LH,General Needs,House,2015,Traditional,Storage heaters +14 Silver Street,Cublington,Leighton Buzzard,,LU7 0LJ,General Needs,House,1955,Traditional,ASHP +3 Silver Street,Cublington,Leighton Buzzard,,LU7 0LJ,General Needs,House,1936,Traditional,LPG +4 Silver Street,Cublington,Leighton Buzzard,,LU7 0LJ,General Needs,House,1936,Traditional,LPG +6 Silver Street,Cublington,Leighton Buzzard,,LU7 0LJ,General Needs,House,1947,Traditional,LPG +8 Silver Street,Cublington,Leighton Buzzard,,LU7 0LJ,General Needs,House,1947,Traditional,LPG +15 Silver Street,Cublington,Leighton Buzzard,,LU7 0LJ,General Needs,Bungalow,1955,Traditional,LPG +93 Leighton Road,Wing,Leighton Buzzard,,LU7 0ND,General Needs,House,1936,Traditional,Natural gas (mains) +99 Leighton Road,Wing,Leighton Buzzard,,LU7 0ND,General Needs,House,1936,Traditional,Natural gas (mains) +101 Leighton Road,Wing,Leighton Buzzard,,LU7 0ND,General Needs,House,1936,Traditional,Natural gas (mains) +4 Stewkley Road,Wing,Leighton Buzzard,,LU7 0NE,General Needs,House,1948,Traditional,Natural gas (mains) +6 Stewkley Road,Wing,Leighton Buzzard,,LU7 0NE,General Needs,House,1948,Traditional,Natural gas (mains) +24 Stewkley Road,Wing,Leighton Buzzard,,LU7 0NE,General Needs,House,1921,Traditional,Natural gas (mains) +2 Moorhills Crescent,Wing,Leighton Buzzard,,LU7 0NF,General Needs,House,1949,Traditional,Natural gas (mains) +8 Moorhills Crescent,Wing,Leighton Buzzard,,LU7 0NF,General Needs,House,1949,Traditional,Natural gas (mains) +11 Moorhills Crescent,Wing,Leighton Buzzard,,LU7 0NF,General Needs,House,1951,Traditional,Natural gas (mains) +15 Moorhills Crescent,Wing,Leighton Buzzard,,LU7 0NF,General Needs,House,1950,Traditional,Natural gas (mains) +30 Moorhills Crescent,Wing,Leighton Buzzard,,LU7 0NF,General Needs,House,1950,Traditional,Natural gas (mains) +32 Moorhills Crescent,Wing,Leighton Buzzard,,LU7 0NF,General Needs,House,1950,Traditional,Natural gas (mains) +1 Moorhills Road,Wing,Leighton Buzzard,,LU7 0NG,General Needs,House,1951,Traditional,Natural gas (mains) +2 Moorhills Road,Wing,Leighton Buzzard,,LU7 0NG,General Needs,House,1953,Traditional,Natural gas (mains) +3 Moorhills Road,Wing,Leighton Buzzard,,LU7 0NG,General Needs,House,1951,Traditional,Natural gas (mains) +5 Moorhills Road,Wing,Leighton Buzzard,,LU7 0NG,General Needs,House,1952,Traditional,Natural gas (mains) +6 Moorhills Road,Wing,Leighton Buzzard,,LU7 0NG,General Needs,House,1953,Traditional,Natural gas (mains) +10 Moorhills Road,Wing,Leighton Buzzard,,LU7 0NG,General Needs,House,1953,Traditional,Natural gas (mains) +11 Moorhills Road,Wing,Leighton Buzzard,,LU7 0NG,General Needs,House,1952,Traditional,Natural gas (mains) +24 Moorhills Road,Wing,Leighton Buzzard,,LU7 0NG,General Needs,House,1953,Traditional,Natural gas (mains) +27 Moorhills Road,Wing,Leighton Buzzard,,LU7 0NG,General Needs,House,1953,Traditional,Natural gas (mains) +29 Moorhills Road,Wing,Leighton Buzzard,,LU7 0NG,General Needs,House,1953,Traditional,Natural gas (mains) +33 Moorhills Road,Wing,Leighton Buzzard,,LU7 0NG,General Needs,House,1953,Traditional,Natural gas (mains) +14 Wantage Crescent,Wing,Leighton Buzzard,,LU7 0NH,General Needs,House,1963,Traditional,Natural gas (mains) +16 Wantage Crescent,Wing,Leighton Buzzard,,LU7 0NH,General Needs,House,1963,Traditional,Natural gas (mains) +20 Wantage Crescent,Wing,Leighton Buzzard,,LU7 0NH,General Needs,House,1963,Traditional,Natural gas (mains) +32 Wantage Crescent,Wing,Leighton Buzzard,,LU7 0NH,General Needs,House,1962,Traditional,Natural gas (mains) +40 Wantage Crescent,Wing,Leighton Buzzard,,LU7 0NH,Independent Living,Bungalow,1966,Traditional,Natural gas (mains) +42 Wantage Crescent,Wing,Leighton Buzzard,,LU7 0NH,Independent Living,Bungalow,1966,Traditional,Natural gas (mains) +44 Wantage Crescent,Wing,Leighton Buzzard,,LU7 0NH,Independent Living,Bungalow,1966,Traditional,Natural gas (mains) +46 Wantage Crescent,Wing,Leighton Buzzard,,LU7 0NH,Independent Living,Bungalow,1966,Traditional,Natural gas (mains) +48 Wantage Crescent,Wing,Leighton Buzzard,,LU7 0NH,Independent Living,Bungalow,1966,Traditional,Natural gas (mains) +50 Wantage Crescent,Wing,Leighton Buzzard,,LU7 0NH,Independent Living,Bungalow,1966,Traditional,Natural gas (mains) +52 Wantage Crescent,Wing,Leighton Buzzard,,LU7 0NH,Independent Living,Bungalow,1966,Traditional,Natural gas (mains) +54 Wantage Crescent,Wing,Leighton Buzzard,,LU7 0NH,Independent Living,Bungalow,1966,Traditional,Natural gas (mains) +56 Wantage Crescent,Wing,Leighton Buzzard,,LU7 0NH,Independent Living,Bungalow,1966,Traditional,Natural gas (mains) +58 Wantage Crescent,Wing,Leighton Buzzard,,LU7 0NH,Independent Living,Bungalow,1966,Traditional,Natural gas (mains) +60 Wantage Crescent,Wing,Leighton Buzzard,,LU7 0NH,Independent Living,Bungalow,1966,Traditional,Natural gas (mains) +62 Wantage Crescent,Wing,Leighton Buzzard,,LU7 0NH,Independent Living,Bungalow,1966,Traditional,Natural gas (mains) +66 Wantage Crescent,Wing,Leighton Buzzard,,LU7 0NH,Independent Living,Bungalow,1966,Traditional,Natural gas (mains) +68 Wantage Crescent,Wing,Leighton Buzzard,,LU7 0NH,Independent Living,Bungalow,1966,Traditional,Natural gas (mains) +70 Wantage Crescent,Wing,Leighton Buzzard,,LU7 0NH,Independent Living,Bungalow,1966,Traditional,Natural gas (mains) +72 Wantage Crescent,Wing,Leighton Buzzard,,LU7 0NH,Independent Living,Bungalow,1966,Traditional,Natural gas (mains) +74 Wantage Crescent,Wing,Leighton Buzzard,,LU7 0NH,Independent Living,Bungalow,1966,Traditional,Natural gas (mains) +78 Wantage Crescent,Wing,Leighton Buzzard,,LU7 0NH,Independent Living,Bungalow,1966,Traditional,Natural gas (mains) +80 Wantage Crescent,Wing,Leighton Buzzard,,LU7 0NH,Independent Living,Bungalow,1966,Traditional,Natural gas (mains) +82 Wantage Crescent,Wing,Leighton Buzzard,,LU7 0NH,Independent Living,Bungalow,1966,Traditional,Natural gas (mains) +84 Wantage Crescent,Wing,Leighton Buzzard,,LU7 0NH,Independent Living,Bungalow,1966,Traditional,Natural gas (mains) +88 Wantage Crescent,Wing,Leighton Buzzard,,LU7 0NH,Independent Living,Bungalow,1966,Traditional,Natural gas (mains) +90 Wantage Crescent,Wing,Leighton Buzzard,,LU7 0NH,Independent Living,Bungalow,1966,Traditional,Natural gas (mains) +92 Wantage Crescent,Wing,Leighton Buzzard,,LU7 0NH,Independent Living,Bungalow,1966,Traditional,Natural gas (mains) +94 Wantage Crescent,Wing,Leighton Buzzard,,LU7 0NH,Independent Living,Bungalow,1966,Traditional,Natural gas (mains) +98 Wantage Crescent,Wing,Leighton Buzzard,,LU7 0NH,General Needs,House,1966,Traditional,Natural gas (mains) +100 Wantage Crescent,Wing,Leighton Buzzard,,LU7 0NH,General Needs,Bungalow,1974,Traditional,Natural gas (mains) +38A Wantage Crescent,Wing,Leighton Buzzard,,LU7 0NH,General Needs,House,2015,Traditional,Natural gas (mains) +38B Wantage Crescent,Wing,Leighton Buzzard,,LU7 0NH,General Needs,House,2015,Traditional,Natural gas (mains) +17 Wantage Crescent,Wing,Leighton Buzzard,,LU7 0NQ,General Needs,House,1963,Traditional,Natural gas (mains) +19 Wantage Crescent,Wing,Leighton Buzzard,,LU7 0NQ,General Needs,House,1963,Traditional,Natural gas (mains) +37 Wantage Crescent,Wing,Leighton Buzzard,,LU7 0NQ,General Needs,House,1966,Traditional,Natural gas (mains) +43 Wantage Crescent,Wing,Leighton Buzzard,,LU7 0NQ,General Needs,House,1966,Traditional,Natural gas (mains) +49 Wantage Crescent,Wing,Leighton Buzzard,,LU7 0NQ,General Needs,House,1966,Traditional,Natural gas (mains) +51 Wantage Crescent,Wing,Leighton Buzzard,,LU7 0NQ,General Needs,House,1966,Traditional,Natural gas (mains) +55 Wantage Crescent,Wing,Leighton Buzzard,,LU7 0NQ,General Needs,House,1966,Traditional,Natural gas (mains) +41 High Street,Wing,Leighton Buzzard,,LU7 0NS,General Needs,Flat,1970,Traditional,Natural gas (mains) +9A Prospect Place,Wing,Leighton Buzzard,,LU7 0NT,General Needs,House,1984,Traditional,Natural gas (mains) +11A Prospect Place,Wing,Leighton Buzzard,,LU7 0NT,General Needs,House,1984,Traditional,Natural gas (mains) +13A Prospect Place,Wing,Leighton Buzzard,,LU7 0NT,General Needs,House,1984,Traditional,Natural gas (mains) +15A Prospect Place,Wing,Leighton Buzzard,,LU7 0NT,General Needs,House,1984,Traditional,Natural gas (mains) +7 Prospect Place,Wing,Leighton Buzzard,,LU7 0NT,General Needs,House,1984,Traditional,Natural gas (mains) +8 Prospect Place,Wing,Leighton Buzzard,,LU7 0NT,General Needs,House,1951,Traditional,Natural gas (mains) +11 Prospect Place,Wing,Leighton Buzzard,,LU7 0NT,General Needs,House,1984,Traditional,Natural gas (mains) +13 Prospect Place,Wing,Leighton Buzzard,,LU7 0NT,General Needs,House,1984,Traditional,Natural gas (mains) +15 Prospect Place,Wing,Leighton Buzzard,,LU7 0NT,General Needs,House,1984,Traditional,Natural gas (mains) +17 Prospect Place,Wing,Leighton Buzzard,,LU7 0NT,General Needs,House,1984,Traditional,Natural gas (mains) +19 Prospect Place,Wing,Leighton Buzzard,,LU7 0NT,General Needs,Bungalow,1951,Traditional,Natural gas (mains) +21 Prospect Place,Wing,Leighton Buzzard,,LU7 0NT,General Needs,Bungalow,1951,Traditional,Natural gas (mains) +23 Prospect Place,Wing,Leighton Buzzard,,LU7 0NT,General Needs,Bungalow,1951,Traditional,Natural gas (mains) +27 Prospect Place,Wing,Leighton Buzzard,,LU7 0NT,General Needs,Bungalow,1951,Traditional,Natural gas (mains) +29 Prospect Place,Wing,Leighton Buzzard,,LU7 0NT,General Needs,Bungalow,1951,Traditional,Natural gas (mains) +31 Prospect Place,Wing,Leighton Buzzard,,LU7 0NT,General Needs,Bungalow,1951,Traditional,Natural gas (mains) +33 Prospect Place,Wing,Leighton Buzzard,,LU7 0NT,General Needs,Bungalow,1951,Traditional,Natural gas (mains) +35 Prospect Place,Wing,Leighton Buzzard,,LU7 0NT,General Needs,Bungalow,1951,Traditional,Natural gas (mains) +24 Church Street,Wing,Leighton Buzzard,,LU7 0NY,General Needs,House,1928,Traditional,Natural gas (mains) +1 Park Gate,Wing,Leighton Buzzard,,LU7 0PA,General Needs,Bungalow,1962,Traditional,Natural gas (mains) +3 Park Gate,Wing,Leighton Buzzard,,LU7 0PA,General Needs,Bungalow,1962,Traditional,Natural gas (mains) +7 Park Gate,Wing,Leighton Buzzard,,LU7 0PA,General Needs,Bungalow,1962,Traditional,Natural gas (mains) +9 Park Gate,Wing,Leighton Buzzard,,LU7 0PA,General Needs,Bungalow,1962,Traditional,Natural gas (mains) +11 Park Gate,Wing,Leighton Buzzard,,LU7 0PA,General Needs,Bungalow,1962,Traditional,Natural gas (mains) +13 Park Gate,Wing,Leighton Buzzard,,LU7 0PA,General Needs,Bungalow,1962,Traditional,Natural gas (mains) +15 Park Gate,Wing,Leighton Buzzard,,LU7 0PA,General Needs,Bungalow,1962,Traditional,Natural gas (mains) +17 Park Gate,Wing,Leighton Buzzard,,LU7 0PA,General Needs,Bungalow,1972,Traditional,Natural gas (mains) +19 Park Gate,Wing,Leighton Buzzard,,LU7 0PA,General Needs,Bungalow,1972,Traditional,Natural gas (mains) +21 Park Gate,Wing,Leighton Buzzard,,LU7 0PA,General Needs,Bungalow,1972,Traditional,Natural gas (mains) +23 Park Gate,Wing,Leighton Buzzard,,LU7 0PA,General Needs,Bungalow,1972,Traditional,Natural gas (mains) +25 Park Gate,Wing,Leighton Buzzard,,LU7 0PA,General Needs,Bungalow,1972,Traditional,Natural gas (mains) +27 Park Gate,Wing,Leighton Buzzard,,LU7 0PA,General Needs,Bungalow,1972,Traditional,Natural gas (mains) +1 Wantage Close,Wing,Leighton Buzzard,,LU7 0PJ,General Needs,Flat,1977,Traditional,Natural gas (mains) +5 Wantage Close,Wing,Leighton Buzzard,,LU7 0PJ,General Needs,Flat,1977,Traditional,Natural gas (mains) +6 Wantage Close,Wing,Leighton Buzzard,,LU7 0PJ,General Needs,House,1977,Traditional,Natural gas (mains) +7 Wantage Close,Wing,Leighton Buzzard,,LU7 0PJ,General Needs,Flat,1977,Traditional,Natural gas (mains) +8 Wantage Close,Wing,Leighton Buzzard,,LU7 0PJ,General Needs,Bungalow,1977,Traditional,Natural gas (mains) +9 Wantage Close,Wing,Leighton Buzzard,,LU7 0PJ,General Needs,Flat,1977,Traditional,Natural gas (mains) +10 Wantage Close,Wing,Leighton Buzzard,,LU7 0PJ,General Needs,Bungalow,1977,Traditional,Natural gas (mains) +12 Wantage Close,Wing,Leighton Buzzard,,LU7 0PJ,General Needs,Bungalow,1977,BISF,Natural gas (mains) +13 Wantage Close,Wing,Leighton Buzzard,,LU7 0PJ,General Needs,Flat,1977,Traditional,Natural gas (mains) +14 Wantage Close,Wing,Leighton Buzzard,,LU7 0PJ,General Needs,Bungalow,1977,Traditional,Natural gas (mains) +16 Wantage Close,Wing,Leighton Buzzard,,LU7 0PJ,General Needs,Bungalow,1977,Traditional,Natural gas (mains) +18 Wantage Close,Wing,Leighton Buzzard,,LU7 0PJ,General Needs,Bungalow,1977,Traditional,Natural gas (mains) +19 Wantage Close,Wing,Leighton Buzzard,,LU7 0PJ,General Needs,Flat,1977,Traditional,Natural gas (mains) +21 Wantage Close,Wing,Leighton Buzzard,,LU7 0PJ,General Needs,Flat,1977,Traditional,Natural gas (mains) +23 Wantage Close,Wing,Leighton Buzzard,,LU7 0PJ,General Needs,Flat,1977,Traditional,Natural gas (mains) +25 Wantage Close,Wing,Leighton Buzzard,,LU7 0PJ,General Needs,Flat,1977,Traditional,Natural gas (mains) +27 Wantage Close,Wing,Leighton Buzzard,,LU7 0PJ,General Needs,Flat,1977,Traditional,Natural gas (mains) +28 Wantage Close,Wing,Leighton Buzzard,,LU7 0PJ,General Needs,House,1977,Traditional,Natural gas (mains) +29 Wantage Close,Wing,Leighton Buzzard,,LU7 0PJ,General Needs,Flat,1977,Traditional,Natural gas (mains) +30 Wantage Close,Wing,Leighton Buzzard,,LU7 0PJ,General Needs,House,1977,Traditional,Natural gas (mains) +33 Wantage Close,Wing,Leighton Buzzard,,LU7 0PJ,General Needs,Flat,1977,Traditional,Natural gas (mains) +37 Wantage Close,Wing,Leighton Buzzard,,LU7 0PJ,General Needs,Flat,1977,Traditional,Natural gas (mains) +1A Wantage Close,Wing,Leighton Buzzard,,LU7 0PJ,General Needs,House,2015,Traditional,Natural gas (mains) +1B Wantage Close,Wing,Leighton Buzzard,,LU7 0PJ,General Needs,House,2015,Traditional,Natural gas (mains) +1C Wantage Close,Wing,Leighton Buzzard,,LU7 0PJ,General Needs,House,2015,Traditional,Natural gas (mains) +4 Council Houses,Ledburn,Leighton Buzzard,,LU7 0QB,General Needs,Bungalow,1962,Traditional,LPG +2 Council Houses,Ledburn,Leighton Buzzard,,LU7 0QB,General Needs,Bungalow,1962,Traditional,Storage heaters +3 Council Houses,Ledburn,Leighton Buzzard,,LU7 0QB,General Needs,Bungalow,1962,Traditional,Storage heaters +75 High Street,Cheddington,Leighton Buzzard,,LU7 0RG,General Needs,House,1948,Traditional,Natural gas (mains) +4 New Street,Cheddington,Leighton Buzzard,,LU7 0RL,Independent Living,Bungalow,1969,Traditional,Natural gas (mains) +6 New Street,Cheddington,Leighton Buzzard,,LU7 0RL,Independent Living,Bungalow,1969,Traditional,Natural gas (mains) +8 New Street,Cheddington,Leighton Buzzard,,LU7 0RL,Independent Living,Bungalow,1969,Traditional,Natural gas (mains) +12 New Street,Cheddington,Leighton Buzzard,,LU7 0RL,General Needs,House,1950,Traditional,Natural gas (mains) +14 New Street,Cheddington,Leighton Buzzard,,LU7 0RL,General Needs,House,1950,Traditional,Natural gas (mains) +16 New Street,Cheddington,Leighton Buzzard,,LU7 0RL,General Needs,House,1950,Traditional,Natural gas (mains) +35 Sunnybank,Cheddington,Leighton Buzzard,,LU7 0RN,General Needs,House,1955,Traditional,ASHP +2 Sunnybank,Cheddington,Leighton Buzzard,,LU7 0RN,General Needs,House,1953,Traditional,Natural gas (mains) +4 Sunnybank,Cheddington,Leighton Buzzard,,LU7 0RN,General Needs,House,1953,Traditional,Natural gas (mains) +10 Sunnybank,Cheddington,Leighton Buzzard,,LU7 0RN,General Needs,House,1953,Traditional,Natural gas (mains) +11 Sunnybank,Cheddington,Leighton Buzzard,,LU7 0RN,General Needs,House,1954,Traditional,Natural gas (mains) +17 Sunnybank,Cheddington,Leighton Buzzard,,LU7 0RN,General Needs,House,1954,Traditional,Natural gas (mains) +19 Sunnybank,Cheddington,Leighton Buzzard,,LU7 0RN,General Needs,House,1954,Traditional,Natural gas (mains) +20 Sunnybank,Cheddington,Leighton Buzzard,,LU7 0RN,General Needs,House,1953,Traditional,Natural gas (mains) +23 Sunnybank,Cheddington,Leighton Buzzard,,LU7 0RN,General Needs,House,1954,Traditional,Natural gas (mains) +25 Sunnybank,Cheddington,Leighton Buzzard,,LU7 0RN,General Needs,House,1954,Traditional,Natural gas (mains) +26 Sunnybank,Cheddington,Leighton Buzzard,,LU7 0RN,General Needs,House,1953,Traditional,Natural gas (mains) +28 Sunnybank,Cheddington,Leighton Buzzard,,LU7 0RN,General Needs,House,1954,Traditional,Natural gas (mains) +31 Sunnybank,Cheddington,Leighton Buzzard,,LU7 0RN,General Needs,House,1955,Traditional,Natural gas (mains) +33 Sunnybank,Cheddington,Leighton Buzzard,,LU7 0RN,General Needs,House,1955,Traditional,Natural gas (mains) +36 Sunnybank,Cheddington,Leighton Buzzard,,LU7 0RN,General Needs,House,1954,Traditional,Natural gas (mains) +40 Sunnybank,Cheddington,Leighton Buzzard,,LU7 0RN,General Needs,House,1954,Traditional,Natural gas (mains) +4 Barkham Close,Cheddington,Leighton Buzzard,,LU7 0RT,General Needs,House,1965,Traditional,Natural gas (mains) +12 Barkham Close,Cheddington,Leighton Buzzard,,LU7 0RT,Independent Living,Bungalow,1965,Traditional,Natural gas (mains) +14 Barkham Close,Cheddington,Leighton Buzzard,,LU7 0RT,Independent Living,Bungalow,1965,Traditional,Natural gas (mains) +16 Barkham Close,Cheddington,Leighton Buzzard,,LU7 0RT,Independent Living,Bungalow,1965,Traditional,Natural gas (mains) +20 Barkham Close,Cheddington,Leighton Buzzard,,LU7 0RT,Independent Living,Bungalow,1965,Traditional,Natural gas (mains) +22 Barkham Close,Cheddington,Leighton Buzzard,,LU7 0RT,Independent Living,Bungalow,1965,Traditional,Natural gas (mains) +24 Barkham Close,Cheddington,Leighton Buzzard,,LU7 0RT,Independent Living,Bungalow,1965,Traditional,Natural gas (mains) +26 Barkham Close,Cheddington,Leighton Buzzard,,LU7 0RT,Independent Living,Bungalow,1965,Traditional,Natural gas (mains) +28 Barkham Close,Cheddington,Leighton Buzzard,,LU7 0RT,Independent Living,Bungalow,1965,Traditional,Natural gas (mains) +30 Barkham Close,Cheddington,Leighton Buzzard,,LU7 0RT,Independent Living,Bungalow,1965,Traditional,Natural gas (mains) +32 Barkham Close,Cheddington,Leighton Buzzard,,LU7 0RT,Independent Living,Bungalow,1965,Traditional,Natural gas (mains) +33 Barkham Close,Cheddington,Leighton Buzzard,,LU7 0RT,Independent Living,Bungalow,1969,Traditional,Natural gas (mains) +34 Barkham Close,Cheddington,Leighton Buzzard,,LU7 0RT,Independent Living,Bungalow,1965,Traditional,Natural gas (mains) +36 Barkham Close,Cheddington,Leighton Buzzard,,LU7 0RT,Independent Living,Bungalow,1969,Traditional,Natural gas (mains) +37 Barkham Close,Cheddington,Leighton Buzzard,,LU7 0RT,Independent Living,Bungalow,1969,Traditional,Natural gas (mains) +38 Barkham Close,Cheddington,Leighton Buzzard,,LU7 0RT,Independent Living,Bungalow,1969,Traditional,Natural gas (mains) +39 Barkham Close,Cheddington,Leighton Buzzard,,LU7 0RT,Independent Living,Bungalow,1969,Traditional,Natural gas (mains) +40 Barkham Close,Cheddington,Leighton Buzzard,,LU7 0RT,Independent Living,Bungalow,1969,Traditional,Natural gas (mains) +41 Barkham Close,Cheddington,Leighton Buzzard,,LU7 0RT,Independent Living,Bungalow,1969,Traditional,Natural gas (mains) +42 Barkham Close,Cheddington,Leighton Buzzard,,LU7 0RT,Independent Living,Bungalow,1969,Traditional,Natural gas (mains) +43 Barkham Close,Cheddington,Leighton Buzzard,,LU7 0RT,Independent Living,Bungalow,1969,Traditional,Natural gas (mains) +44 Barkham Close,Cheddington,Leighton Buzzard,,LU7 0RT,Independent Living,Bungalow,1969,Traditional,Natural gas (mains) +45 Barkham Close,Cheddington,Leighton Buzzard,,LU7 0RT,Independent Living,Bungalow,1969,Traditional,Natural gas (mains) +48 Barkham Close,Cheddington,Leighton Buzzard,,LU7 0RT,General Needs,Bungalow,1969,Traditional,Natural gas (mains) +49 Barkham Close,Cheddington,Leighton Buzzard,,LU7 0RT,Independent Living,Bungalow,1969,Traditional,Natural gas (mains) +51 Barkham Close,Cheddington,Leighton Buzzard,,LU7 0RT,Independent Living,Bungalow,1969,Traditional,Natural gas (mains) +53 Barkham Close,Cheddington,Leighton Buzzard,,LU7 0RT,Independent Living,Bungalow,1969,Traditional,Natural gas (mains) +55 Barkham Close,Cheddington,Leighton Buzzard,,LU7 0RT,Independent Living,Bungalow,1969,Traditional,Natural gas (mains) +18 Barkham Close,Cheddington,Leighton Buzzard,,LU7 0RT,Independent Living,Bungalow,1965,Traditional,Storage heaters +35 Barkham Close,Cheddington,Leighton Buzzard,,LU7 0RT,Independent Living,Bungalow,1969,Traditional,Storage heaters +47 Barkham Close,Cheddington,Leighton Buzzard,,LU7 0RT,Independent Living,Bungalow,1969,Traditional,Storage heaters +25 Church Lane,Cheddington,Leighton Buzzard,,LU7 0RU,General Needs,Bungalow,1962,Traditional,Natural gas (mains) +27 Church Lane,Cheddington,Leighton Buzzard,,LU7 0RU,General Needs,Bungalow,1962,Traditional,Natural gas (mains) +29 Church Lane,Cheddington,Leighton Buzzard,,LU7 0RU,General Needs,Bungalow,1962,Traditional,Natural gas (mains) +31 Church Lane,Cheddington,Leighton Buzzard,,LU7 0RU,General Needs,Bungalow,1962,Traditional,Natural gas (mains) +33 Church Lane,Cheddington,Leighton Buzzard,,LU7 0RU,General Needs,Bungalow,1961,Traditional,Natural gas (mains) +35 Church Lane,Cheddington,Leighton Buzzard,,LU7 0RU,General Needs,Bungalow,1961,Traditional,Natural gas (mains) +37 Church Lane,Cheddington,Leighton Buzzard,,LU7 0RU,General Needs,Bungalow,1961,Traditional,Natural gas (mains) +39 Church Lane,Cheddington,Leighton Buzzard,,LU7 0RU,General Needs,Bungalow,1961,Traditional,Natural gas (mains) +41 Church Lane,Cheddington,Leighton Buzzard,,LU7 0RU,General Needs,Bungalow,1961,Traditional,Natural gas (mains) +4 Manor Road,Cheddington,Leighton Buzzard,,LU7 0RW,General Needs,House,1921,Traditional,Natural gas (mains) +7 Manor Road,Cheddington,Leighton Buzzard,,LU7 0RW,General Needs,House,1921,Traditional,Natural gas (mains) +8 Manor Road,Cheddington,Leighton Buzzard,,LU7 0RW,General Needs,House,1921,Traditional,Natural gas (mains) +10 Manor Road,Cheddington,Leighton Buzzard,,LU7 0RW,General Needs,House,1932,Traditional,Natural gas (mains) +11 Manor Road,Cheddington,Leighton Buzzard,,LU7 0RW,General Needs,House,1932,Traditional,Natural gas (mains) +1 Irving Crescent,Cheddington,Leighton Buzzard,,LU7 0RX,General Needs,Bungalow,1962,Traditional,Natural gas (mains) +2 Irving Crescent,Cheddington,Leighton Buzzard,,LU7 0RX,General Needs,Bungalow,1962,Traditional,Natural gas (mains) +3 Irving Crescent,Cheddington,Leighton Buzzard,,LU7 0RX,General Needs,Bungalow,1962,Traditional,Natural gas (mains) +4 Irving Crescent,Cheddington,Leighton Buzzard,,LU7 0RX,General Needs,Bungalow,1962,Traditional,Natural gas (mains) +5 Irving Crescent,Cheddington,Leighton Buzzard,,LU7 0RX,General Needs,Bungalow,1962,Traditional,Natural gas (mains) +6 Irving Crescent,Cheddington,Leighton Buzzard,,LU7 0RX,General Needs,Bungalow,1962,Traditional,Natural gas (mains) +4 Berryfields,Cheddington,Leighton Buzzard,,LU7 0ST,General Needs,House,1974,Traditional,Oil +4 Chequers Close,Pitstone,Leighton Buzzard,,LU7 9AF,General Needs,House,1957,Traditional,Natural gas (mains) +5 Chequers Close,Pitstone,Leighton Buzzard,,LU7 9AF,General Needs,House,1957,Traditional,Natural gas (mains) +1 Yardley Avenue,Pitstone,Leighton Buzzard,,LU7 9AL,Independent Living,Bungalow,1967,Traditional,Natural gas (mains) +3 Yardley Avenue,Pitstone,Leighton Buzzard,,LU7 9AL,Independent Living,Bungalow,1967,Traditional,Natural gas (mains) +4 Yardley Avenue,Pitstone,Leighton Buzzard,,LU7 9AL,Independent Living,Bungalow,1967,Traditional,Natural gas (mains) +7 Yardley Avenue,Pitstone,Leighton Buzzard,,LU7 9AL,Independent Living,Bungalow,1967,Traditional,Natural gas (mains) +9 Yardley Avenue,Pitstone,Leighton Buzzard,,LU7 9AL,Independent Living,Bungalow,1967,Traditional,Natural gas (mains) +11 Yardley Avenue,Pitstone,Leighton Buzzard,,LU7 9AL,Independent Living,Bungalow,1967,Traditional,Natural gas (mains) +13 Yardley Avenue,Pitstone,Leighton Buzzard,,LU7 9AL,Independent Living,Bungalow,1967,Traditional,Natural gas (mains) +14 Yardley Avenue,Pitstone,Leighton Buzzard,,LU7 9AL,General Needs,House,1967,Traditional,Natural gas (mains) +15 Yardley Avenue,Pitstone,Leighton Buzzard,,LU7 9AL,Independent Living,Bungalow,1967,Traditional,Natural gas (mains) +16 Yardley Avenue,Pitstone,Leighton Buzzard,,LU7 9AL,General Needs,House,1967,Traditional,Natural gas (mains) +17 Yardley Avenue,Pitstone,Leighton Buzzard,,LU7 9AL,Independent Living,Bungalow,1967,Traditional,Natural gas (mains) +18 Yardley Avenue,Pitstone,Leighton Buzzard,,LU7 9AL,General Needs,House,1967,Traditional,Natural gas (mains) +19 Yardley Avenue,Pitstone,Leighton Buzzard,,LU7 9AL,Independent Living,Bungalow,1967,Traditional,Natural gas (mains) +22 Yardley Avenue,Pitstone,Leighton Buzzard,,LU7 9AL,General Needs,House,1967,Traditional,Natural gas (mains) +23 Yardley Avenue,Pitstone,Leighton Buzzard,,LU7 9AL,General Needs,House,1971,Traditional,Natural gas (mains) +28 Yardley Avenue,Pitstone,Leighton Buzzard,,LU7 9AL,General Needs,House,1971,Traditional,Natural gas (mains) +31 Yardley Avenue,Pitstone,Leighton Buzzard,,LU7 9AL,General Needs,House,1971,Traditional,Natural gas (mains) +35 Yardley Avenue,Pitstone,Leighton Buzzard,,LU7 9AL,General Needs,House,1971,Traditional,Natural gas (mains) +40 Yardley Avenue,Pitstone,Leighton Buzzard,,LU7 9AL,General Needs,House,1971,Traditional,Natural gas (mains) +42 Yardley Avenue,Pitstone,Leighton Buzzard,,LU7 9AL,General Needs,House,1971,Traditional,Natural gas (mains) +43 Yardley Avenue,Pitstone,Leighton Buzzard,,LU7 9AL,General Needs,House,1971,Traditional,Natural gas (mains) +44 Yardley Avenue,Pitstone,Leighton Buzzard,,LU7 9AL,General Needs,House,1971,Traditional,Natural gas (mains) +48 Yardley Avenue,Pitstone,Leighton Buzzard,,LU7 9AL,General Needs,House,1971,Traditional,Natural gas (mains) +50 Yardley Avenue,Pitstone,Leighton Buzzard,,LU7 9AL,General Needs,House,1971,Traditional,Natural gas (mains) +52 Yardley Avenue,Pitstone,Leighton Buzzard,,LU7 9AL,General Needs,House,1971,Traditional,Natural gas (mains) +60 Yardley Avenue,Pitstone,Leighton Buzzard,,LU7 9AL,Independent Living,Bungalow,1971,Traditional,Natural gas (mains) +30 Yardley Avenue,Pitstone,Leighton Buzzard,,LU7 9AL,General Needs,House,1971,Traditional,Solid fuel +2 Yardley Avenue,Pitstone,Leighton Buzzard,,LU7 9AL,Independent Living,Bungalow,1967,Traditional,Storage heaters +5 Yardley Avenue,Pitstone,Leighton Buzzard,,LU7 9AL,Independent Living,Bungalow,1967,Traditional,Storage heaters +62 Yardley Avenue,Pitstone,Leighton Buzzard,,LU7 9AL,Independent Living,Bungalow,1971,Traditional,Storage heaters +67 Cheddington Road,Pitstone,Leighton Buzzard,,LU7 9AQ,General Needs,House,1957,Traditional,Natural gas (mains) +6 The Crescent,Pitstone,Leighton Buzzard,,LU7 9AW,General Needs,House,1950,Traditional,Natural gas (mains) +10 The Crescent,Pitstone,Leighton Buzzard,,LU7 9AW,General Needs,House,1950,Traditional,Natural gas (mains) +11 The Crescent,Pitstone,Leighton Buzzard,,LU7 9AW,General Needs,House,1950,Traditional,Natural gas (mains) +14 The Crescent,Pitstone,Leighton Buzzard,,LU7 9AW,General Needs,House,1950,Traditional,Natural gas (mains) +17 The Crescent,Pitstone,Leighton Buzzard,,LU7 9AW,General Needs,House,1951,Traditional,Natural gas (mains) +19 The Crescent,Pitstone,Leighton Buzzard,,LU7 9AW,General Needs,House,1951,Traditional,Natural gas (mains) +20 The Crescent,Pitstone,Leighton Buzzard,,LU7 9AW,General Needs,House,1951,Traditional,Natural gas (mains) +1 Glebe Close,Pitstone,Leighton Buzzard,,LU7 9AZ,General Needs,Bungalow,1960,Traditional,Natural gas (mains) +2 Glebe Close,Pitstone,Leighton Buzzard,,LU7 9AZ,General Needs,Bungalow,1960,Traditional,Natural gas (mains) +3 Glebe Close,Pitstone,Leighton Buzzard,,LU7 9AZ,General Needs,Bungalow,1960,Traditional,Natural gas (mains) +4 Glebe Close,Pitstone,Leighton Buzzard,,LU7 9AZ,General Needs,Bungalow,1960,Traditional,Natural gas (mains) +5 Glebe Close,Pitstone,Leighton Buzzard,,LU7 9AZ,General Needs,Bungalow,1960,Traditional,Natural gas (mains) +6 Glebe Close,Pitstone,Leighton Buzzard,,LU7 9AZ,General Needs,Bungalow,1960,Traditional,Natural gas (mains) +7 Glebe Close,Pitstone,Leighton Buzzard,,LU7 9AZ,General Needs,Bungalow,1960,Traditional,Natural gas (mains) +8 Glebe Close,Pitstone,Leighton Buzzard,,LU7 9AZ,General Needs,Bungalow,1960,Traditional,Natural gas (mains) +9 Glebe Close,Pitstone,Leighton Buzzard,,LU7 9AZ,General Needs,Bungalow,1960,Traditional,Natural gas (mains) +10 Glebe Close,Pitstone,Leighton Buzzard,,LU7 9AZ,General Needs,Bungalow,1960,Traditional,Natural gas (mains) +11 Glebe Close,Pitstone,Leighton Buzzard,,LU7 9AZ,General Needs,Bungalow,1960,Traditional,Natural gas (mains) +12 Glebe Close,Pitstone,Leighton Buzzard,,LU7 9AZ,General Needs,Bungalow,1960,Traditional,Natural gas (mains) +14 Glebe Close,Pitstone,Leighton Buzzard,,LU7 9AZ,General Needs,House,1961,Traditional,Natural gas (mains) +15 Glebe Close,Pitstone,Leighton Buzzard,,LU7 9AZ,General Needs,House,1960,Traditional,Natural gas (mains) +18 Glebe Close,Pitstone,Leighton Buzzard,,LU7 9AZ,General Needs,House,1961,Traditional,Natural gas (mains) +20 Glebe Close,Pitstone,Leighton Buzzard,,LU7 9AZ,General Needs,House,1961,Traditional,Natural gas (mains) +22 Glebe Close,Pitstone,Leighton Buzzard,,LU7 9AZ,General Needs,House,1961,Traditional,Natural gas (mains) +24 Glebe Close,Pitstone,Leighton Buzzard,,LU7 9AZ,General Needs,House,1961,Traditional,Natural gas (mains) +26 Glebe Close,Pitstone,Leighton Buzzard,,LU7 9AZ,General Needs,House,1961,Traditional,Natural gas (mains) +37 Glebe Close,Pitstone,Leighton Buzzard,,LU7 9AZ,General Needs,House,1961,Traditional,Natural gas (mains) +39 Glebe Close,Pitstone,Leighton Buzzard,,LU7 9AZ,General Needs,House,1961,Traditional,Natural gas (mains) +40 Glebe Close,Pitstone,Leighton Buzzard,,LU7 9AZ,General Needs,House,1961,Traditional,Natural gas (mains) +43 Glebe Close,Pitstone,Leighton Buzzard,,LU7 9AZ,General Needs,House,1961,Traditional,Natural gas (mains) +44 Glebe Close,Pitstone,Leighton Buzzard,,LU7 9AZ,General Needs,House,1961,Traditional,Natural gas (mains) +46 Glebe Close,Pitstone,Leighton Buzzard,,LU7 9AZ,General Needs,House,1961,Traditional,Natural gas (mains) +47 Glebe Close,Pitstone,Leighton Buzzard,,LU7 9AZ,General Needs,House,1961,Traditional,Natural gas (mains) +50 Glebe Close,Pitstone,Leighton Buzzard,,LU7 9AZ,General Needs,House,1961,Traditional,Natural gas (mains) +53 Glebe Close,Pitstone,Leighton Buzzard,,LU7 9AZ,General Needs,Bungalow,1961,Traditional,Natural gas (mains) +54 Glebe Close,Pitstone,Leighton Buzzard,,LU7 9AZ,General Needs,House,1961,Traditional,Natural gas (mains) +55 Glebe Close,Pitstone,Leighton Buzzard,,LU7 9AZ,General Needs,Bungalow,1961,Traditional,Natural gas (mains) +59 Glebe Close,Pitstone,Leighton Buzzard,,LU7 9AZ,General Needs,Bungalow,1961,Traditional,Natural gas (mains) +60 Glebe Close,Pitstone,Leighton Buzzard,,LU7 9AZ,General Needs,House,1961,Traditional,Natural gas (mains) +61 Glebe Close,Pitstone,Leighton Buzzard,,LU7 9AZ,General Needs,Bungalow,1961,Traditional,Natural gas (mains) +63 Glebe Close,Pitstone,Leighton Buzzard,,LU7 9AZ,General Needs,Bungalow,1961,Traditional,Natural gas (mains) +64 Glebe Close,Pitstone,Leighton Buzzard,,LU7 9AZ,General Needs,Bungalow,1961,Traditional,Natural gas (mains) +66 Glebe Close,Pitstone,Leighton Buzzard,,LU7 9AZ,General Needs,Bungalow,1961,Traditional,Natural gas (mains) +68 Glebe Close,Pitstone,Leighton Buzzard,,LU7 9AZ,General Needs,Bungalow,1961,Traditional,Natural gas (mains) +70 Glebe Close,Pitstone,Leighton Buzzard,,LU7 9AZ,General Needs,Bungalow,1961,Traditional,Natural gas (mains) +72 Glebe Close,Pitstone,Leighton Buzzard,,LU7 9AZ,General Needs,Bungalow,1961,Traditional,Natural gas (mains) +62 Glebe Close,Pitstone,Leighton Buzzard,,LU7 9AZ,General Needs,Bungalow,1961,Traditional,Storage heaters +47 Yardley Avenue,Pitstone,Leighton Buzzard,,LU7 9BD,Independent Living,Bungalow,1975,Traditional,Natural gas (mains) +53 Yardley Avenue,Pitstone,Leighton Buzzard,,LU7 9BD,Independent Living,Bungalow,1975,Traditional,Natural gas (mains) +61 Yardley Avenue,Pitstone,Leighton Buzzard,,LU7 9BD,General Needs,House,1975,Traditional,Natural gas (mains) +69 Yardley Avenue,Pitstone,Leighton Buzzard,,LU7 9BD,General Needs,House,1975,Traditional,Natural gas (mains) +71 Yardley Avenue,Pitstone,Leighton Buzzard,,LU7 9BD,General Needs,House,1975,Traditional,Natural gas (mains) +75 Yardley Avenue,Pitstone,Leighton Buzzard,,LU7 9BD,General Needs,House,1975,Traditional,Natural gas (mains) +85 Yardley Avenue,Pitstone,Leighton Buzzard,,LU7 9BD,General Needs,House,1975,Traditional,Natural gas (mains) +87 Yardley Avenue,Pitstone,Leighton Buzzard,,LU7 9BD,General Needs,House,1975,Traditional,Natural gas (mains) +89 Yardley Avenue,Pitstone,Leighton Buzzard,,LU7 9BD,General Needs,House,1975,Traditional,Natural gas (mains) +95 Yardley Avenue,Pitstone,Leighton Buzzard,,LU7 9BD,General Needs,House,1975,Traditional,Natural gas (mains) +101 Yardley Avenue,Pitstone,Leighton Buzzard,,LU7 9BD,General Needs,House,1975,Traditional,Natural gas (mains) +103 Yardley Avenue,Pitstone,Leighton Buzzard,,LU7 9BD,General Needs,House,1975,Traditional,Natural gas (mains) +125 Yardley Avenue,Pitstone,Leighton Buzzard,,LU7 9BD,General Needs,House,1975,Traditional,Natural gas (mains) +129 Yardley Avenue,Pitstone,Leighton Buzzard,,LU7 9BD,General Needs,House,1975,Traditional,Natural gas (mains) +133 Yardley Avenue,Pitstone,Leighton Buzzard,,LU7 9BD,General Needs,House,1975,Traditional,Natural gas (mains) +141 Yardley Avenue,Pitstone,Leighton Buzzard,,LU7 9BD,General Needs,House,1975,Traditional,Natural gas (mains) +151 Yardley Avenue,Pitstone,Leighton Buzzard,,LU7 9BD,General Needs,House,1975,Traditional,Natural gas (mains) +153 Yardley Avenue,Pitstone,Leighton Buzzard,,LU7 9BD,Independent Living,Bungalow,1975,Traditional,Natural gas (mains) +155 Yardley Avenue,Pitstone,Leighton Buzzard,,LU7 9BD,Independent Living,Bungalow,1975,Traditional,Natural gas (mains) +157 Yardley Avenue,Pitstone,Leighton Buzzard,,LU7 9BD,Independent Living,Bungalow,1975,Traditional,Natural gas (mains) +49 Yardley Avenue,Pitstone,Leighton Buzzard,,LU7 9BD,Independent Living,Bungalow,1975,Traditional,Storage heaters +51 Yardley Avenue,Pitstone,Leighton Buzzard,,LU7 9BD,Independent Living,Bungalow,1975,Traditional,Storage heaters +59 Yardley Avenue,Pitstone,Leighton Buzzard,,LU7 9BD,General Needs,House,1975,Traditional,Storage heaters +121 Yardley Avenue,Pitstone,Leighton Buzzard,,LU7 9BD,General Needs,House,1975,Traditional,Storage heaters +68 Yardley Avenue,Pitstone,Leighton Buzzard,,LU7 9BE,Independent Living,Bungalow,1975,Traditional,Natural gas (mains) +76 Yardley Avenue,Pitstone,Leighton Buzzard,,LU7 9BE,Independent Living,Bungalow,1975,Traditional,Natural gas (mains) +161 Yardley Avenue,Pitstone,Leighton Buzzard,,LU7 9BE,Independent Living,Bungalow,1975,Traditional,Natural gas (mains) +163 Yardley Avenue,Pitstone,Leighton Buzzard,,LU7 9BE,Independent Living,Bungalow,1975,Traditional,Natural gas (mains) +167 Yardley Avenue,Pitstone,Leighton Buzzard,,LU7 9BE,Independent Living,Bungalow,1975,Traditional,Natural gas (mains) +169 Yardley Avenue,Pitstone,Leighton Buzzard,,LU7 9BE,Independent Living,Bungalow,1975,Traditional,Natural gas (mains) +171 Yardley Avenue,Pitstone,Leighton Buzzard,,LU7 9BE,Independent Living,Bungalow,1975,Traditional,Natural gas (mains) +173 Yardley Avenue,Pitstone,Leighton Buzzard,,LU7 9BE,Independent Living,Bungalow,1975,Traditional,Natural gas (mains) +177 Yardley Avenue,Pitstone,Leighton Buzzard,,LU7 9BE,Independent Living,Bungalow,1975,Traditional,Natural gas (mains) +179 Yardley Avenue,Pitstone,Leighton Buzzard,,LU7 9BE,Independent Living,Bungalow,1975,Traditional,Natural gas (mains) +181 Yardley Avenue,Pitstone,Leighton Buzzard,,LU7 9BE,Independent Living,Bungalow,1975,Traditional,Natural gas (mains) +183 Yardley Avenue,Pitstone,Leighton Buzzard,,LU7 9BE,Independent Living,Bungalow,1975,Traditional,Natural gas (mains) +185 Yardley Avenue,Pitstone,Leighton Buzzard,,LU7 9BE,Independent Living,Bungalow,1975,Traditional,Natural gas (mains) +187 Yardley Avenue,Pitstone,Leighton Buzzard,,LU7 9BE,Independent Living,Bungalow,1975,Traditional,Natural gas (mains) +189 Yardley Avenue,Pitstone,Leighton Buzzard,,LU7 9BE,Independent Living,Bungalow,1975,Traditional,Natural gas (mains) +193 Yardley Avenue,Pitstone,Leighton Buzzard,,LU7 9BE,Independent Living,Bungalow,1975,Traditional,Natural gas (mains) +197 Yardley Avenue,Pitstone,Leighton Buzzard,,LU7 9BE,Independent Living,Bungalow,1975,Traditional,Natural gas (mains) +199 Yardley Avenue,Pitstone,Leighton Buzzard,,LU7 9BE,Independent Living,Bungalow,1975,Traditional,Natural gas (mains) +201 Yardley Avenue,Pitstone,Leighton Buzzard,,LU7 9BE,Independent Living,Bungalow,1975,Traditional,Natural gas (mains) +66 Yardley Avenue,Pitstone,Leighton Buzzard,,LU7 9BE,Independent Living,Bungalow,1975,Traditional,Storage heaters +70 Yardley Avenue,Pitstone,Leighton Buzzard,,LU7 9BE,Independent Living,Bungalow,1975,Traditional,Storage heaters +72 Yardley Avenue,Pitstone,Leighton Buzzard,,LU7 9BE,Independent Living,Bungalow,1975,Traditional,Storage heaters +74 Yardley Avenue,Pitstone,Leighton Buzzard,,LU7 9BE,Independent Living,Bungalow,1975,Traditional,Storage heaters +165 Yardley Avenue,Pitstone,Leighton Buzzard,,LU7 9BE,Independent Living,Bungalow,1975,Traditional,Storage heaters +175 Yardley Avenue,Pitstone,Leighton Buzzard,,LU7 9BE,Independent Living,Bungalow,1975,Traditional,Storage heaters +191 Yardley Avenue,Pitstone,Leighton Buzzard,,LU7 9BE,Independent Living,Bungalow,1975,Traditional,Storage heaters +195 Yardley Avenue,Pitstone,Leighton Buzzard,,LU7 9BE,Independent Living,Bungalow,1975,Traditional,Storage heaters +15 Mill Road,Slapton,Leighton Buzzard,,LU7 9BT,General Needs,House,1948,Traditional,LPG +15 Church Road,Slapton,Leighton Buzzard,,LU7 9BX,General Needs,House,1953,Traditional,ASHP +17 Church Road,Slapton,Leighton Buzzard,,LU7 9BX,General Needs,House,1953,Traditional,LPG +19 Church Road,Slapton,Leighton Buzzard,,LU7 9BX,General Needs,House,1953,Traditional,LPG +21 Church Road,Slapton,Leighton Buzzard,,LU7 9BX,General Needs,House,1953,Traditional,Storage heaters +14 Spinney Bungalows,Slapton,Leighton Buzzard,,LU7 9BY,General Needs,Bungalow,1977,Traditional,LPG +4 Spinney Bungalows,Slapton,Leighton Buzzard,,LU7 9BY,General Needs,Bungalow,1959,Traditional,Natural gas (mains) +2 Spinney Bungalows,Slapton,Leighton Buzzard,,LU7 9BY,General Needs,Bungalow,1959,Traditional,Storage heaters +10 Spinney Bungalows,Slapton,Leighton Buzzard,,LU7 9BY,General Needs,Bungalow,1959,Traditional,Storage heaters +20 Spinney Bungalows,Slapton,Leighton Buzzard,,LU7 9BY,General Needs,Bungalow,1977,Traditional,Storage heaters +2 Council Houses,Ivinghoe Aston,Leighton Buzzard,,LU7 9DP,General Needs,House,1933,Traditional,LPG +12 Council Houses,Ivinghoe Aston,Leighton Buzzard,,LU7 9DP,General Needs,House,1948,Traditional,Solid fuel +3 High Street,Ivinghoe Aston,Leighton Buzzard,,LU7 9DQ,General Needs,House,1949,Traditional,LPG +9 High Street,Ivinghoe Aston,Leighton Buzzard,,LU7 9DQ,General Needs,House,1949,Traditional,Natural gas (mains) +48 Station Road,Ivinghoe,Leighton Buzzard,,LU7 9EB,General Needs,House,1933,Traditional,Natural gas (mains) +52 Station Road,Ivinghoe,Leighton Buzzard,,LU7 9EB,General Needs,House,1927,Traditional,Natural gas (mains) +54 Station Road,Ivinghoe,Leighton Buzzard,,LU7 9EB,General Needs,House,1927,Traditional,Natural gas (mains) +58 Station Road,Ivinghoe,Leighton Buzzard,,LU7 9EB,General Needs,House,1927,Traditional,Natural gas (mains) +1 Maud Janes Close,Ivinghoe,Leighton Buzzard,,LU7 9ED,General Needs,House,1953,Traditional,Natural gas (mains) +3 Maud Janes Close,Ivinghoe,Leighton Buzzard,,LU7 9ED,General Needs,House,1953,Traditional,Natural gas (mains) +12 Maud Janes Close,Ivinghoe,Leighton Buzzard,,LU7 9ED,General Needs,House,1954,Traditional,Natural gas (mains) +17 Maud Janes Close,Ivinghoe,Leighton Buzzard,,LU7 9ED,General Needs,House,1953,Traditional,Natural gas (mains) +19 Maud Janes Close,Ivinghoe,Leighton Buzzard,,LU7 9ED,General Needs,House,1953,Traditional,Natural gas (mains) +21 Maud Janes Close,Ivinghoe,Leighton Buzzard,,LU7 9ED,General Needs,House,1953,Traditional,Natural gas (mains) +25 Maud Janes Close,Ivinghoe,Leighton Buzzard,,LU7 9ED,General Needs,Bungalow,1958,Traditional,Natural gas (mains) +27 Maud Janes Close,Ivinghoe,Leighton Buzzard,,LU7 9ED,General Needs,Bungalow,1958,Traditional,Natural gas (mains) +29 Maud Janes Close,Ivinghoe,Leighton Buzzard,,LU7 9ED,General Needs,Bungalow,1958,Traditional,Natural gas (mains) +30 Maud Janes Close,Ivinghoe,Leighton Buzzard,,LU7 9ED,General Needs,House,1956,Traditional,Natural gas (mains) +31 Maud Janes Close,Ivinghoe,Leighton Buzzard,,LU7 9ED,General Needs,Bungalow,1958,Traditional,Natural gas (mains) +33 Maud Janes Close,Ivinghoe,Leighton Buzzard,,LU7 9ED,General Needs,Bungalow,1958,Traditional,Natural gas (mains) +34 Maud Janes Close,Ivinghoe,Leighton Buzzard,,LU7 9ED,General Needs,House,1956,Traditional,Natural gas (mains) +35 Maud Janes Close,Ivinghoe,Leighton Buzzard,,LU7 9ED,General Needs,Bungalow,1958,Traditional,Natural gas (mains) +36 Maud Janes Close,Ivinghoe,Leighton Buzzard,,LU7 9ED,General Needs,House,1956,Traditional,Natural gas (mains) +37 Maud Janes Close,Ivinghoe,Leighton Buzzard,,LU7 9ED,General Needs,Bungalow,1958,Traditional,Natural gas (mains) +39 Maud Janes Close,Ivinghoe,Leighton Buzzard,,LU7 9ED,General Needs,Bungalow,1958,Traditional,Natural gas (mains) +40 Maud Janes Close,Ivinghoe,Leighton Buzzard,,LU7 9ED,General Needs,Bungalow,1961,Traditional,Natural gas (mains) +41 Maud Janes Close,Ivinghoe,Leighton Buzzard,,LU7 9ED,General Needs,Bungalow,1961,Traditional,Natural gas (mains) +42 Maud Janes Close,Ivinghoe,Leighton Buzzard,,LU7 9ED,General Needs,Bungalow,1961,Traditional,Natural gas (mains) +44 Maud Janes Close,Ivinghoe,Leighton Buzzard,,LU7 9ED,General Needs,Bungalow,1961,Traditional,Natural gas (mains) +45 Maud Janes Close,Ivinghoe,Leighton Buzzard,,LU7 9ED,General Needs,Bungalow,1961,Traditional,Natural gas (mains) +46 Maud Janes Close,Ivinghoe,Leighton Buzzard,,LU7 9ED,General Needs,Bungalow,1961,Traditional,Natural gas (mains) +47 Maud Janes Close,Ivinghoe,Leighton Buzzard,,LU7 9ED,General Needs,Bungalow,1961,Traditional,Natural gas (mains) +4 Maud Janes Close,Ivinghoe,Leighton Buzzard,,LU7 9ED,General Needs,House,1954,Traditional,Storage heaters +43 Maud Janes Close,Ivinghoe,Leighton Buzzard,,LU7 9ED,General Needs,Bungalow,1961,Traditional,Storage heaters +6 Ladysmith Road,Ivinghoe,Leighton Buzzard,,LU7 9EE,General Needs,House,1947,Traditional,Natural gas (mains) +16 Ladysmith Road,Ivinghoe,Leighton Buzzard,,LU7 9EE,General Needs,House,1947,Traditional,Natural gas (mains) +26 Ladysmith Road,Ivinghoe,Leighton Buzzard,,LU7 9EE,General Needs,House,1933,Traditional,Natural gas (mains) +24 High Street,Ivinghoe,Leighton Buzzard,,LU7 9EX,General Needs,House,1921,Traditional,Natural gas (mains) +26 High Street,Ivinghoe,Leighton Buzzard,,LU7 9EX,General Needs,House,1921,Traditional,Natural gas (mains) +28 High Street,Ivinghoe,Leighton Buzzard,,LU7 9EX,General Needs,House,1921,Traditional,Natural gas (mains) +30 High Street,Ivinghoe,Leighton Buzzard,,LU7 9EX,General Needs,House,1921,Traditional,Natural gas (mains) +32 High Street,Ivinghoe,Leighton Buzzard,,LU7 9EX,General Needs,House,1921,Traditional,Natural gas (mains) +58 Vicarage Road,Pitstone,Leighton Buzzard,,LU7 9EY,General Needs,House,1921,Traditional,Natural gas (mains) +60 Vicarage Road,Pitstone,Leighton Buzzard,,LU7 9EY,General Needs,House,1921,Traditional,Natural gas (mains) +64 Vicarage Road,Pitstone,Leighton Buzzard,,LU7 9EY,General Needs,House,1921,Traditional,Natural gas (mains) +1 Bettys Close,Newton Longville,Milton Keynes,,MK17 0AN,General Needs,Bungalow,1950,Traditional,Natural gas (mains) +2 Bettys Close,Newton Longville,Milton Keynes,,MK17 0AN,General Needs,Bungalow,1950,Traditional,Natural gas (mains) +3 Bettys Close,Newton Longville,Milton Keynes,,MK17 0AN,General Needs,Bungalow,1950,Traditional,Natural gas (mains) +8 Bettys Close,Newton Longville,Milton Keynes,,MK17 0AN,General Needs,House,1950,Traditional,Natural gas (mains) +11 Bettys Close,Newton Longville,Milton Keynes,,MK17 0AN,General Needs,House,1950,Traditional,Natural gas (mains) +14 Bettys Close,Newton Longville,Milton Keynes,,MK17 0AN,General Needs,House,1950,Traditional,Natural gas (mains) +20 Bettys Close,Newton Longville,Milton Keynes,,MK17 0AN,General Needs,House,1950,Traditional,Natural gas (mains) +21 Bettys Close,Newton Longville,Milton Keynes,,MK17 0AN,General Needs,House,1950,Traditional,Natural gas (mains) +23 Bettys Close,Newton Longville,Milton Keynes,,MK17 0AN,General Needs,House,1950,Traditional,Natural gas (mains) +24 Bettys Close,Newton Longville,Milton Keynes,,MK17 0AN,General Needs,House,1950,Traditional,Natural gas (mains) +27 Bettys Close,Newton Longville,Milton Keynes,,MK17 0AN,General Needs,House,1950,Traditional,Natural gas (mains) +31 Bettys Close,Newton Longville,Milton Keynes,,MK17 0AN,General Needs,House,1950,Traditional,Natural gas (mains) +32 Bettys Close,Newton Longville,Milton Keynes,,MK17 0AN,General Needs,Bungalow,1950,Traditional,Natural gas (mains) +33 Bettys Close,Newton Longville,Milton Keynes,,MK17 0AN,General Needs,Bungalow,1950,Traditional,Natural gas (mains) +34 Bettys Close,Newton Longville,Milton Keynes,,MK17 0AN,General Needs,Bungalow,1950,Traditional,Natural gas (mains) +36 Bettys Close,Newton Longville,Milton Keynes,,MK17 0AN,General Needs,Bungalow,1950,Traditional,Natural gas (mains) +37 Bettys Close,Newton Longville,Milton Keynes,,MK17 0AN,General Needs,Bungalow,1950,Traditional,Natural gas (mains) +40 Whaddon Road,Newton Longville,Milton Keynes,,MK17 0AT,General Needs,House,1969,Traditional,Natural gas (mains) +42 Whaddon Road,Newton Longville,Milton Keynes,,MK17 0AT,General Needs,House,1969,Traditional,Natural gas (mains) +46 Whaddon Road,Newton Longville,Milton Keynes,,MK17 0AT,General Needs,Bungalow,1969,Traditional,Natural gas (mains) +48 Whaddon Road,Newton Longville,Milton Keynes,,MK17 0AT,General Needs,Bungalow,1969,Traditional,Natural gas (mains) +50 Whaddon Road,Newton Longville,Milton Keynes,,MK17 0AT,General Needs,Bungalow,1969,Traditional,Natural gas (mains) +52 Whaddon Road,Newton Longville,Milton Keynes,,MK17 0AT,General Needs,Bungalow,1969,Traditional,Natural gas (mains) +54 Whaddon Road,Newton Longville,Milton Keynes,,MK17 0AT,General Needs,Bungalow,1969,Traditional,Natural gas (mains) +56 Whaddon Road,Newton Longville,Milton Keynes,,MK17 0AT,General Needs,Bungalow,1969,Traditional,Natural gas (mains) +58 Whaddon Road,Newton Longville,Milton Keynes,,MK17 0AT,General Needs,Bungalow,1969,Traditional,Natural gas (mains) +60 Whaddon Road,Newton Longville,Milton Keynes,,MK17 0AT,General Needs,Bungalow,1969,Traditional,Natural gas (mains) +62 Whaddon Road,Newton Longville,Milton Keynes,,MK17 0AT,General Needs,Bungalow,1969,Traditional,Natural gas (mains) +64 Whaddon Road,Newton Longville,Milton Keynes,,MK17 0AT,General Needs,Bungalow,1969,Traditional,Natural gas (mains) +66 Whaddon Road,Newton Longville,Milton Keynes,,MK17 0AT,General Needs,Bungalow,1970,Traditional,Natural gas (mains) +68 Whaddon Road,Newton Longville,Milton Keynes,,MK17 0AT,General Needs,Bungalow,1970,Traditional,Natural gas (mains) +74 Whaddon Road,Newton Longville,Milton Keynes,,MK17 0AT,General Needs,Bungalow,1970,Traditional,Natural gas (mains) +24A Brookfield Road,Newton Longville,Milton Keynes,,MK17 0BP,General Needs,Flat,1965,Traditional,Natural gas (mains) +26A Brookfield Road,Newton Longville,Milton Keynes,,MK17 0BP,General Needs,Flat,1965,Traditional,Natural gas (mains) +28A Brookfield Road,Newton Longville,Milton Keynes,,MK17 0BP,General Needs,Flat,1967,Traditional,Natural gas (mains) +29A Brookfield Road,Newton Longville,Milton Keynes,,MK17 0BP,General Needs,Flat,1965,Traditional,Natural gas (mains) +31A Brookfield Road,Newton Longville,Milton Keynes,,MK17 0BP,General Needs,Flat,1965,Traditional,Natural gas (mains) +47A Brookfield Road,Newton Longville,Milton Keynes,,MK17 0BP,General Needs,Flat,1967,Traditional,Natural gas (mains) +1 Brookfield Road,Newton Longville,Milton Keynes,,MK17 0BP,General Needs,Bungalow,1963,Traditional,Natural gas (mains) +2 Brookfield Road,Newton Longville,Milton Keynes,,MK17 0BP,General Needs,Bungalow,1962,Traditional,Natural gas (mains) +3 Brookfield Road,Newton Longville,Milton Keynes,,MK17 0BP,General Needs,Bungalow,1963,Traditional,Natural gas (mains) +4 Brookfield Road,Newton Longville,Milton Keynes,,MK17 0BP,General Needs,Bungalow,1962,Traditional,Natural gas (mains) +5 Brookfield Road,Newton Longville,Milton Keynes,,MK17 0BP,General Needs,Bungalow,1963,Traditional,Natural gas (mains) +6 Brookfield Road,Newton Longville,Milton Keynes,,MK17 0BP,General Needs,Bungalow,1962,Traditional,Natural gas (mains) +7 Brookfield Road,Newton Longville,Milton Keynes,,MK17 0BP,General Needs,Bungalow,1963,Traditional,Natural gas (mains) +8 Brookfield Road,Newton Longville,Milton Keynes,,MK17 0BP,General Needs,Bungalow,1962,Traditional,Natural gas (mains) +9 Brookfield Road,Newton Longville,Milton Keynes,,MK17 0BP,General Needs,Bungalow,1963,Traditional,Natural gas (mains) +10 Brookfield Road,Newton Longville,Milton Keynes,,MK17 0BP,General Needs,Bungalow,1962,Traditional,Natural gas (mains) +11 Brookfield Road,Newton Longville,Milton Keynes,,MK17 0BP,General Needs,Bungalow,1963,Traditional,Natural gas (mains) +12 Brookfield Road,Newton Longville,Milton Keynes,,MK17 0BP,General Needs,Bungalow,1962,Traditional,Natural gas (mains) +13 Brookfield Road,Newton Longville,Milton Keynes,,MK17 0BP,General Needs,Bungalow,1963,Traditional,Natural gas (mains) +14 Brookfield Road,Newton Longville,Milton Keynes,,MK17 0BP,General Needs,Bungalow,1962,Traditional,Natural gas (mains) +15 Brookfield Road,Newton Longville,Milton Keynes,,MK17 0BP,General Needs,Bungalow,1963,Traditional,Natural gas (mains) +16 Brookfield Road,Newton Longville,Milton Keynes,,MK17 0BP,General Needs,Bungalow,1962,Traditional,Natural gas (mains) +17 Brookfield Road,Newton Longville,Milton Keynes,,MK17 0BP,General Needs,Bungalow,1964,Traditional,Natural gas (mains) +18 Brookfield Road,Newton Longville,Milton Keynes,,MK17 0BP,General Needs,Bungalow,1964,Traditional,Natural gas (mains) +19 Brookfield Road,Newton Longville,Milton Keynes,,MK17 0BP,General Needs,Bungalow,1964,Traditional,Natural gas (mains) +20 Brookfield Road,Newton Longville,Milton Keynes,,MK17 0BP,General Needs,Bungalow,1964,Traditional,Natural gas (mains) +21 Brookfield Road,Newton Longville,Milton Keynes,,MK17 0BP,General Needs,Bungalow,1964,Traditional,Natural gas (mains) +22 Brookfield Road,Newton Longville,Milton Keynes,,MK17 0BP,General Needs,Bungalow,1964,Traditional,Natural gas (mains) +23 Brookfield Road,Newton Longville,Milton Keynes,,MK17 0BP,General Needs,Bungalow,1965,Traditional,Natural gas (mains) +24 Brookfield Road,Newton Longville,Milton Keynes,,MK17 0BP,General Needs,Flat,1965,Traditional,Natural gas (mains) +25 Brookfield Road,Newton Longville,Milton Keynes,,MK17 0BP,General Needs,Bungalow,1965,Traditional,Natural gas (mains) +26 Brookfield Road,Newton Longville,Milton Keynes,,MK17 0BP,General Needs,Flat,1965,Traditional,Natural gas (mains) +28 Brookfield Road,Newton Longville,Milton Keynes,,MK17 0BP,General Needs,Flat,1967,Traditional,Natural gas (mains) +30 Brookfield Road,Newton Longville,Milton Keynes,,MK17 0BP,General Needs,Flat,1967,Traditional,Natural gas (mains) +41 Brookfield Road,Newton Longville,Milton Keynes,,MK17 0BP,General Needs,Flat,1967,Traditional,Natural gas (mains) +43 Brookfield Road,Newton Longville,Milton Keynes,,MK17 0BP,General Needs,Flat,1967,Traditional,Natural gas (mains) +45 Brookfield Road,Newton Longville,Milton Keynes,,MK17 0BP,General Needs,Flat,1967,Traditional,Natural gas (mains) +83 Westbrook End,Newton Longville,Milton Keynes,,MK17 0DE,General Needs,House,1938,Traditional,Natural gas (mains) +85 Westbrook End,Newton Longville,Milton Keynes,,MK17 0DE,General Needs,House,1938,Traditional,Natural gas (mains) +87 Westbrook End,Newton Longville,Milton Keynes,,MK17 0DE,General Needs,House,1938,Traditional,Natural gas (mains) +95 Westbrook End,Newton Longville,Milton Keynes,,MK17 0DE,General Needs,House,1938,Traditional,Natural gas (mains) +97 Westbrook End,Newton Longville,Milton Keynes,,MK17 0DE,General Needs,House,1938,Traditional,Natural gas (mains) +5 Westbrook End,Newton Longville,Milton Keynes,,MK17 0DN,General Needs,House,1948,Traditional,Natural gas (mains) +11 Westbrook End,Newton Longville,Milton Keynes,,MK17 0DN,General Needs,House,1948,Traditional,Natural gas (mains) +19 Westbrook End,Newton Longville,Milton Keynes,,MK17 0DN,General Needs,House,1948,Traditional,Natural gas (mains) +21 Westbrook End,Newton Longville,Milton Keynes,,MK17 0DN,General Needs,House,1948,Traditional,Natural gas (mains) +1 Cobb Hall Road,Newton Longville,Milton Keynes,,MK17 0DP,General Needs,Bungalow,1977,Traditional,Natural gas (mains) +3 Cobb Hall Road,Newton Longville,Milton Keynes,,MK17 0DP,General Needs,Bungalow,1977,Traditional,Natural gas (mains) +5 Cobb Hall Road,Newton Longville,Milton Keynes,,MK17 0DP,General Needs,Bungalow,1977,Traditional,Natural gas (mains) +7 Cobb Hall Road,Newton Longville,Milton Keynes,,MK17 0DP,General Needs,Bungalow,1977,Traditional,Natural gas (mains) +9 Cobb Hall Road,Newton Longville,Milton Keynes,,MK17 0DP,General Needs,Bungalow,1977,Traditional,Natural gas (mains) +2 Cobb Hall Road,Newton Longville,Milton Keynes,,MK17 0DW,General Needs,Bungalow,1977,Traditional,Natural gas (mains) +6 Cobb Hall Road,Newton Longville,Milton Keynes,,MK17 0DW,General Needs,House,1977,Traditional,Natural gas (mains) +8 Cobb Hall Road,Newton Longville,Milton Keynes,,MK17 0DW,General Needs,House,1977,Traditional,Natural gas (mains) +22 Cobb Hall Road,Newton Longville,Milton Keynes,,MK17 0DW,General Needs,House,1977,Traditional,Natural gas (mains) +28 Cobb Hall Road,Newton Longville,Milton Keynes,,MK17 0DW,General Needs,House,1977,Traditional,Natural gas (mains) +34 Cobb Hall Road,Newton Longville,Milton Keynes,,MK17 0DW,General Needs,House,1977,Traditional,Natural gas (mains) +2 Holywell Bungalows,Stratford Road,Nash,Milton Keynes,MK17 0EU,General Needs,Bungalow,1956,Traditional,ASHP +1 Holywell Bungalows,Stratford Road,Nash,Milton Keynes,MK17 0EU,General Needs,Bungalow,1956,Traditional,LPG +3 Holywell Bungalows,Stratford Road,Nash,Milton Keynes,MK17 0EU,General Needs,Bungalow,1956,Traditional,LPG +2 Holywell Cottages,Stratford Road,Nash,Milton Keynes,MK17 0EY,General Needs,House,1929,Traditional,ASHP +7 Holywell Cottages,Stratford Road,Nash,Milton Keynes,MK17 0EY,General Needs,House,1933,Traditional,ASHP +4 Holywell Cottages,Stratford Road,Nash,Milton Keynes,MK17 0EY,General Needs,House,1929,Traditional,LPG +9 Holywell Cottages,Stratford Road,Nash,Milton Keynes,MK17 0EY,General Needs,House,1933,Traditional,LPG +12 Holywell Cottages,Thornton Road,Nash,Milton Keynes,MK17 0EY,General Needs,House,1933,Traditional,LPG +35 Holywell Cottages,Thornton Road,Nash,Milton Keynes,MK17 0EY,General Needs,House,1950,Traditional,LPG +5 Holywell Cottages,Stratford Road,Nash,Milton Keynes,MK17 0EY,General Needs,House,1929,Traditional,Oil +8 Holywell Cottages,Stratford Road,Nash,Milton Keynes,MK17 0EY,General Needs,House,1933,Traditional,Oil +1 Dickens Close,Newton Longville,Milton Keynes,,MK17 0FH,General Needs,House,2017,Traditional,Natural gas (mains) +2 Dickens Close,Newton Longville,Milton Keynes,,MK17 0FH,General Needs,House,2017,Traditional,Natural gas (mains) +3 Dickens Close,Newton Longville,Milton Keynes,,MK17 0FH,General Needs,House,2017,Traditional,Natural gas (mains) +4 Dickens Close,Newton Longville,Milton Keynes,,MK17 0FH,General Needs,Bungalow,2017,Traditional,Natural gas (mains) +5 Dickens Close,Newton Longville,Milton Keynes,,MK17 0FH,General Needs,Bungalow,2017,Traditional,Natural gas (mains) +1 New Road,Drayton Parslow,Milton Keynes,,MK17 0JH,General Needs,House,1937,Traditional,Natural gas (mains) +7 New Road,Drayton Parslow,Milton Keynes,,MK17 0JH,General Needs,House,1937,Traditional,Natural gas (mains) +8 New Road,Drayton Parslow,Milton Keynes,,MK17 0JH,General Needs,House,1937,Traditional,Natural gas (mains) +10 New Road,Drayton Parslow,Milton Keynes,,MK17 0JH,General Needs,House,1937,Traditional,Natural gas (mains) +11 New Road,Drayton Parslow,Milton Keynes,,MK17 0JH,General Needs,House,1937,Traditional,Natural gas (mains) +12 New Road,Drayton Parslow,Milton Keynes,,MK17 0JH,General Needs,House,1937,Traditional,Natural gas (mains) +18 New Road,Drayton Parslow,Milton Keynes,,MK17 0JH,General Needs,House,1949,Traditional,Natural gas (mains) +27 New Road,Drayton Parslow,Milton Keynes,,MK17 0JH,General Needs,House,1937,Traditional,Natural gas (mains) +28 New Road,Drayton Parslow,Milton Keynes,,MK17 0JH,General Needs,House,1937,Traditional,Natural gas (mains) +29 New Road,Drayton Parslow,Milton Keynes,,MK17 0JH,General Needs,House,1937,Traditional,Natural gas (mains) +31 New Road,Drayton Parslow,Milton Keynes,,MK17 0JH,General Needs,House,1944,Traditional,Natural gas (mains) +32 New Road,Drayton Parslow,Milton Keynes,,MK17 0JH,General Needs,House,1944,Traditional,Natural gas (mains) +34 New Road,Drayton Parslow,Milton Keynes,,MK17 0JH,General Needs,Bungalow,1952,Traditional,Natural gas (mains) +35 New Road,Drayton Parslow,Milton Keynes,,MK17 0JH,General Needs,Bungalow,1952,Traditional,Natural gas (mains) +1 North Close,Drayton Parslow,Milton Keynes,,MK17 0JQ,General Needs,Bungalow,1968,Traditional,Natural gas (mains) +3 North Close,Drayton Parslow,Milton Keynes,,MK17 0JQ,General Needs,Bungalow,1968,Traditional,Natural gas (mains) +5 North Close,Drayton Parslow,Milton Keynes,,MK17 0JQ,General Needs,Bungalow,1968,Traditional,Natural gas (mains) +7 North Close,Drayton Parslow,Milton Keynes,,MK17 0JQ,General Needs,Bungalow,1968,Traditional,Natural gas (mains) +9 North Close,Drayton Parslow,Milton Keynes,,MK17 0JQ,General Needs,Bungalow,1968,Traditional,Natural gas (mains) +11 North Close,Drayton Parslow,Milton Keynes,,MK17 0JQ,General Needs,Bungalow,1968,Traditional,Natural gas (mains) +28 Main Road,Drayton Parslow,Milton Keynes,,MK17 0JS,General Needs,House,1927,Traditional,Natural gas (mains) +32 Main Road,Drayton Parslow,Milton Keynes,,MK17 0JS,General Needs,House,1927,Traditional,Natural gas (mains) +34 Main Road,Drayton Parslow,Milton Keynes,,MK17 0JS,General Needs,House,1927,Traditional,Natural gas (mains) +12 Briary View,Whaddon,Milton Keynes,,MK17 0LP,General Needs,House,1952,Traditional,ASHP +7 Briary View,Whaddon,Milton Keynes,,MK17 0LP,General Needs,House,1952,Traditional,LPG +10 Briary View,Whaddon,Milton Keynes,,MK17 0LP,General Needs,House,1952,Traditional,LPG +11 Briary View,Whaddon,Milton Keynes,,MK17 0LP,General Needs,House,1952,Traditional,LPG +8 Briary View,Whaddon,Milton Keynes,,MK17 0LP,General Needs,House,1952,Traditional,Oil +2 Briary View,Whaddon,Milton Keynes,,MK17 0LP,General Needs,Bungalow,1959,Traditional,Storage heaters +15 Stock Lane,Whaddon,Milton Keynes,,MK17 0LS,General Needs,House,1938,Traditional,ASHP +27 Stock Lane,Whaddon,Milton Keynes,,MK17 0LS,General Needs,House,1938,Traditional,ASHP +5 Stock Lane,Whaddon,Milton Keynes,,MK17 0LS,General Needs,House,1947,Traditional,LPG +23 Stock Lane,Whaddon,Milton Keynes,,MK17 0LS,General Needs,Bungalow,1938,Traditional,Natural gas (mains) +17 Stock Lane,Whaddon,Milton Keynes,,MK17 0LS,General Needs,Bungalow,1938,Traditional,Storage heaters +19 Stock Lane,Whaddon,Milton Keynes,,MK17 0LS,General Needs,Bungalow,1938,Traditional,Storage heaters +21 Stock Lane,Whaddon,Milton Keynes,,MK17 0LS,General Needs,Bungalow,1938,Traditional,Storage heaters +2 Shenley Road,Whaddon,Milton Keynes,,MK17 0LW,General Needs,House,1948,Traditional,ASHP +3 Shenley Road,Whaddon,Milton Keynes,,MK17 0LW,General Needs,House,1948,Traditional,ASHP +4 Shenley Road,Whaddon,Milton Keynes,,MK17 0LW,General Needs,House,1948,Traditional,LPG +5 Shenley Road,Whaddon,Milton Keynes,,MK17 0LW,General Needs,House,1948,Traditional,LPG +1 Lowndes House,High Street,Whaddon,Milton Keynes,MK17 0NA,General Needs,Flat,1970,Traditional,Storage heaters +2 Lowndes House,High Street,Whaddon,Milton Keynes,MK17 0NA,General Needs,Flat,1970,Traditional,Storage heaters +3 Lowndes House,High Street,Whaddon,Milton Keynes,MK17 0NA,General Needs,Flat,1970,Traditional,Storage heaters +12A Wood End,Little Horwood,Milton Keynes,,MK17 0PE,General Needs,Bungalow,1975,Traditional,Natural gas (mains) +12B Wood End,Little Horwood,Milton Keynes,,MK17 0PE,General Needs,Bungalow,1975,Traditional,Natural gas (mains) +6 Wood End,Little Horwood,Milton Keynes,,MK17 0PE,General Needs,House,1937,Traditional,Natural gas (mains) +1 Townsend Cottages,Great Horwood,Milton Keynes,,MK17 0QF,General Needs,House,1938,Traditional,LPG +3 Townsend Cottages,Great Horwood,Milton Keynes,,MK17 0QF,General Needs,House,1938,Traditional,LPG +7 Townsend Cottages,Great Horwood,Milton Keynes,,MK17 0QF,General Needs,Bungalow,1938,Traditional,LPG +9 Townsend Cottages,Great Horwood,Milton Keynes,,MK17 0QF,General Needs,Bungalow,1938,Traditional,LPG +11 Townsend Cottages,Great Horwood,Milton Keynes,,MK17 0QF,General Needs,Bungalow,1938,Traditional,LPG +12 Townsend Cottages,Great Horwood,Milton Keynes,,MK17 0QF,General Needs,Bungalow,1938,Traditional,LPG +6 Townsend Cottages,Great Horwood,Milton Keynes,,MK17 0QF,General Needs,House,1938,Traditional,Natural gas (mains) +8 Townsend Cottages,Great Horwood,Milton Keynes,,MK17 0QF,General Needs,Bungalow,1938,Traditional,Storage heaters +10 Townsend Cottages,Great Horwood,Milton Keynes,,MK17 0QF,General Needs,Bungalow,1938,Traditional,Storage heaters +2 Willow Road,Great Horwood,Milton Keynes,,MK17 0QH,General Needs,Bungalow,1950,Traditional,ASHP +12 Willow Road,Great Horwood,Milton Keynes,,MK17 0QH,General Needs,Bungalow,1962,Traditional,ASHP +20 Willow Road,Great Horwood,Milton Keynes,,MK17 0QH,General Needs,Bungalow,1961,Traditional,ASHP +15A Willow Road,Great Horwood,Milton Keynes,,MK17 0QH,General Needs,Bungalow,1976,Traditional,LPG +16A Willow Road,Great Horwood,Milton Keynes,,MK17 0QH,General Needs,Bungalow,1976,Traditional,LPG +16B Willow Road,Great Horwood,Milton Keynes,,MK17 0QH,General Needs,Bungalow,1976,Traditional,LPG +1 Willow Road,Great Horwood,Milton Keynes,,MK17 0QH,General Needs,Bungalow,1950,Traditional,LPG +7 Willow Road,Great Horwood,Milton Keynes,,MK17 0QH,General Needs,Bungalow,1960,Traditional,LPG +16 Willow Road,Great Horwood,Milton Keynes,,MK17 0QH,General Needs,Bungalow,1974,Traditional,LPG +17 Willow Road,Great Horwood,Milton Keynes,,MK17 0QH,General Needs,Bungalow,1974,Traditional,LPG +19 Willow Road,Great Horwood,Milton Keynes,,MK17 0QH,General Needs,Bungalow,1961,Traditional,LPG +21 Willow Road,Great Horwood,Milton Keynes,,MK17 0QH,General Needs,Bungalow,1967,Traditional,LPG +23 Willow Road,Great Horwood,Milton Keynes,,MK17 0QH,General Needs,Bungalow,1967,Traditional,LPG +15B Willow Road,Great Horwood,Milton Keynes,,MK17 0QH,General Needs,Bungalow,1976,Traditional,Storage heaters +18A Willow Road,Great Horwood,Milton Keynes,,MK17 0QH,General Needs,Bungalow,1974,Traditional,Storage heaters +5 Willow Road,Great Horwood,Milton Keynes,,MK17 0QH,General Needs,Bungalow,1960,Traditional,Storage heaters +6 Willow Road,Great Horwood,Milton Keynes,,MK17 0QH,General Needs,Bungalow,1960,Traditional,Storage heaters +8 Willow Road,Great Horwood,Milton Keynes,,MK17 0QH,General Needs,Bungalow,1960,Traditional,Storage heaters +7 Spring Lane,Great Horwood,Milton Keynes,,MK17 0QP,General Needs,House,1950,Traditional,ASHP +23 Spring Lane,Great Horwood,Milton Keynes,,MK17 0QP,General Needs,House,1952,Traditional,ASHP +5 Spring Lane,Great Horwood,Milton Keynes,,MK17 0QP,General Needs,House,1950,Traditional,LPG +15 Spring Lane,Great Horwood,Milton Keynes,,MK17 0QP,General Needs,House,1952,Traditional,LPG +21 Spring Lane,Great Horwood,Milton Keynes,,MK17 0QP,General Needs,House,1952,Traditional,Oil +8 Nash Road,Great Horwood,Milton Keynes,,MK17 0RA,General Needs,House,1928,Traditional,LPG +34A Main Street,Mursley,Milton Keynes,,MK17 0RT,General Needs,Bungalow,1962,Traditional,Natural gas (mains) +36A Main Street,Mursley,Milton Keynes,,MK17 0RT,General Needs,Bungalow,1962,Traditional,Natural gas (mains) +36 Main Street,Mursley,Milton Keynes,,MK17 0RT,General Needs,Bungalow,1962,Traditional,Natural gas (mains) +38 Main Street,Mursley,Milton Keynes,,MK17 0RT,General Needs,Bungalow,1962,Traditional,Natural gas (mains) +6 Cooks Lane,Mursley,Milton Keynes,,MK17 0RU,General Needs,House,1937,Traditional,Natural gas (mains) +8 Cooks Lane,Mursley,Milton Keynes,,MK17 0RU,General Needs,House,1937,Traditional,Natural gas (mains) +10 Cooks Lane,Mursley,Milton Keynes,,MK17 0RU,General Needs,House,1937,Traditional,Natural gas (mains) +12 Cooks Lane,Mursley,Milton Keynes,,MK17 0RU,General Needs,House,1937,Traditional,Natural gas (mains) +18 Cooks Lane,Mursley,Milton Keynes,,MK17 0RU,General Needs,House,1937,Traditional,Natural gas (mains) +40 Cooks Lane,Mursley,Milton Keynes,,MK17 0RU,General Needs,House,1937,Traditional,Natural gas (mains) +5 Whaddon Road,Mursley,Milton Keynes,,MK17 0RZ,General Needs,Bungalow,1938,Traditional,Natural gas (mains) +7 Whaddon Road,Mursley,Milton Keynes,,MK17 0RZ,General Needs,Bungalow,1938,Traditional,Natural gas (mains) +9 Whaddon Road,Mursley,Milton Keynes,,MK17 0RZ,General Needs,Bungalow,1938,Traditional,Natural gas (mains) +11 Whaddon Road,Mursley,Milton Keynes,,MK17 0RZ,General Needs,Bungalow,1938,Traditional,Natural gas (mains) +13 Whaddon Road,Mursley,Milton Keynes,,MK17 0RZ,General Needs,Bungalow,1938,Traditional,Natural gas (mains) +2 Station Road,Mursley,Milton Keynes,,MK17 0SA,General Needs,House,1948,Traditional,ASHP +4 Station Road,Mursley,Milton Keynes,,MK17 0SA,General Needs,House,1948,Traditional,Natural gas (mains) +16 Station Road,Mursley,Milton Keynes,,MK17 0SA,General Needs,House,1948,Traditional,Natural gas (mains) +18 Station Road,Mursley,Milton Keynes,,MK17 0SA,General Needs,House,1948,Traditional,Natural gas (mains) +28 Mursley Road,Swanbourne,Milton Keynes,,MK17 0SH,General Needs,Bungalow,1948,Traditional,Natural gas (mains) +30 Mursley Road,Swanbourne,Milton Keynes,,MK17 0SH,General Needs,Bungalow,1948,Traditional,Natural gas (mains) +1 Ridgeway Cottages,Swanbourne,Milton Keynes,,MK17 0SJ,General Needs,House,1948,Traditional,Natural gas (mains) +2 Ridgeway Cottages,Swanbourne,Milton Keynes,,MK17 0SJ,General Needs,House,1948,Traditional,Natural gas (mains) +3 Ridgeway Cottages,Swanbourne,Milton Keynes,,MK17 0SJ,General Needs,House,1950,Traditional,Natural gas (mains) +8 Ridgeway Cottages,Swanbourne,Milton Keynes,,MK17 0SJ,General Needs,House,1951,Traditional,Natural gas (mains) +13 Ridgeway Cottages,Swanbourne,Milton Keynes,,MK17 0SJ,General Needs,Bungalow,1951,Traditional,Natural gas (mains) +14 Ridgeway Cottages,Swanbourne,Milton Keynes,,MK17 0SJ,General Needs,Bungalow,1951,Traditional,Natural gas (mains) +15 Ridgeway Cottages,Swanbourne,Milton Keynes,,MK17 0SJ,General Needs,House,1951,Traditional,Natural gas (mains) +7 Tattams Lane,Swanbourne,Milton Keynes,,MK17 0SU,General Needs,Bungalow,1980,Traditional,Natural gas (mains) +9 Tattams Lane,Swanbourne,Milton Keynes,,MK17 0SU,General Needs,Bungalow,1980,Traditional,Natural gas (mains) +11 Tattams Lane,Swanbourne,Milton Keynes,,MK17 0SU,General Needs,Bungalow,1980,Traditional,Natural gas (mains) +13 Tattams Lane,Swanbourne,Milton Keynes,,MK17 0SU,General Needs,Bungalow,1980,Traditional,Natural gas (mains) +6 Lower Way,Great Brickhill,Milton Keynes,,MK17 9AG,General Needs,House,1938,Traditional,Natural gas (mains) +10 Lower Way,Great Brickhill,Milton Keynes,,MK17 9AG,General Needs,Bungalow,1938,Traditional,Natural gas (mains) +16 Lower Way,Great Brickhill,Milton Keynes,,MK17 9AG,General Needs,House,1938,Traditional,Natural gas (mains) +7 Duck End,Great Brickhill,Milton Keynes,,MK17 9AP,General Needs,Bungalow,1957,Traditional,Natural gas (mains) +9 Duck End,Great Brickhill,Milton Keynes,,MK17 9AP,General Needs,Bungalow,1957,Traditional,Natural gas (mains) +13 Duck End,Great Brickhill,Milton Keynes,,MK17 9AP,General Needs,House,1958,Traditional,Natural gas (mains) +23 Duck End,Great Brickhill,Milton Keynes,,MK17 9AP,General Needs,House,1965,Traditional,Natural gas (mains) +12 Cuff Lane,Great Brickhill,Milton Keynes,,MK17 9AR,General Needs,House,1961,Traditional,Natural gas (mains) +14 Cuff Lane,Great Brickhill,Milton Keynes,,MK17 9AR,General Needs,House,1961,Traditional,Natural gas (mains) +18 Cuff Lane,Great Brickhill,Milton Keynes,,MK17 9AR,General Needs,House,1961,Traditional,Natural gas (mains) +1 Green End,Great Brickhill,Milton Keynes,,MK17 9AT,General Needs,Bungalow,1967,Traditional,Natural gas (mains) +3 Green End,Great Brickhill,Milton Keynes,,MK17 9AT,General Needs,Bungalow,1967,Traditional,Natural gas (mains) +5 Green End,Great Brickhill,Milton Keynes,,MK17 9AT,General Needs,Bungalow,1967,Traditional,Natural gas (mains) +7 Green End,Great Brickhill,Milton Keynes,,MK17 9AT,General Needs,Bungalow,1967,Traditional,Natural gas (mains) +20 Green End,Great Brickhill,Milton Keynes,,MK17 9AT,General Needs,House,1949,Traditional,Natural gas (mains) +23 Green End,Great Brickhill,Milton Keynes,,MK17 9AT,General Needs,Bungalow,1973,Traditional,Natural gas (mains) +25 Green End,Great Brickhill,Milton Keynes,,MK17 9AT,General Needs,Bungalow,1973,Traditional,Natural gas (mains) +31 Green End,Great Brickhill,Milton Keynes,,MK17 9AT,General Needs,Bungalow,1955,Traditional,Natural gas (mains) +37 Green End,Great Brickhill,Milton Keynes,,MK17 9AT,General Needs,Bungalow,1954,Traditional,Natural gas (mains) +40 Green End,Great Brickhill,Milton Keynes,,MK17 9AT,General Needs,House,1949,Traditional,Natural gas (mains) +47 Green End,Great Brickhill,Milton Keynes,,MK17 9AT,General Needs,House,1938,Traditional,Natural gas (mains) +51 Green End,Great Brickhill,Milton Keynes,,MK17 9AT,General Needs,Bungalow,1974,Traditional,Natural gas (mains) +6 Green End,Great Brickhill,Milton Keynes,,MK17 9AU,General Needs,House,1951,Traditional,Natural gas (mains) +14 Green End,Great Brickhill,Milton Keynes,,MK17 9AU,General Needs,House,1949,Traditional,Natural gas (mains) +16 Green End,Great Brickhill,Milton Keynes,,MK17 9AU,General Needs,House,1949,Traditional,Natural gas (mains) +28 Green End,Great Brickhill,Milton Keynes,,MK17 9AU,General Needs,House,1949,Traditional,Natural gas (mains) +34 Green End,Great Brickhill,Milton Keynes,,MK17 9AU,General Needs,House,1949,Traditional,Natural gas (mains) +39 Green End,Great Brickhill,Milton Keynes,,MK17 9AU,General Needs,Bungalow,1954,Traditional,Natural gas (mains) +1 Rotten Row,Great Brickhill,Milton Keynes,,MK17 9BA,General Needs,Bungalow,1961,Traditional,Natural gas (mains) +5 Rotten Row,Great Brickhill,Milton Keynes,,MK17 9BA,General Needs,Bungalow,1961,Traditional,Natural gas (mains) +7 Rotten Row,Great Brickhill,Milton Keynes,,MK17 9BA,General Needs,Bungalow,1961,Traditional,Natural gas (mains) +29 Rotten Row,Great Brickhill,Milton Keynes,,MK17 9BA,General Needs,Bungalow,1953,Traditional,Natural gas (mains) +39 Rotten Row,Great Brickhill,Milton Keynes,,MK17 9BA,General Needs,Bungalow,1965,Traditional,Natural gas (mains) +45 Rotten Row,Great Brickhill,Milton Keynes,,MK17 9BA,General Needs,Bungalow,1965,Traditional,Natural gas (mains) +49 Rotten Row,Great Brickhill,Milton Keynes,,MK17 9BA,General Needs,Bungalow,1965,Traditional,Natural gas (mains) +51 Rotten Row,Great Brickhill,Milton Keynes,,MK17 9BA,General Needs,Bungalow,1965,Traditional,Natural gas (mains) +1 Cross End,Great Brickhill,Milton Keynes,,MK17 9BQ,General Needs,Bungalow,1973,Traditional,Natural gas (mains) +2 Cross End,Great Brickhill,Milton Keynes,,MK17 9BQ,General Needs,Bungalow,1973,Traditional,Natural gas (mains) +3 Cross End,Great Brickhill,Milton Keynes,,MK17 9BQ,General Needs,Bungalow,1973,Traditional,Natural gas (mains) +4 Cross End,Great Brickhill,Milton Keynes,,MK17 9BQ,General Needs,Bungalow,1973,Traditional,Natural gas (mains) +5 Cross End,Great Brickhill,Milton Keynes,,MK17 9BQ,General Needs,Bungalow,1973,Traditional,Natural gas (mains) +15 Tyrells Road,Stoke Hammond,Milton Keynes,,MK17 9BS,General Needs,Bungalow,1972,Traditional,ASHP +17 Tyrells Road,Stoke Hammond,Milton Keynes,,MK17 9BS,General Needs,Bungalow,1972,Traditional,ASHP +9 Tyrells Road,Stoke Hammond,Milton Keynes,,MK17 9BS,General Needs,House,1952,Traditional,LPG +12 Tyrells Road,Stoke Hammond,Milton Keynes,,MK17 9BS,General Needs,House,1952,Traditional,LPG +3 Tyrells Road,Stoke Hammond,Milton Keynes,,MK17 9BS,General Needs,House,1952,Traditional,Storage heaters +5 Tyrells Road,Stoke Hammond,Milton Keynes,,MK17 9BS,General Needs,House,1952,Traditional,Storage heaters +16 Tyrells Road,Stoke Hammond,Milton Keynes,,MK17 9BS,General Needs,Bungalow,1972,Traditional,Storage heaters +18 Tyrells Road,Stoke Hammond,Milton Keynes,,MK17 9BS,General Needs,Bungalow,1972,Traditional,Storage heaters +24 Tyrells Road,Stoke Hammond,Milton Keynes,,MK17 9BS,General Needs,Bungalow,1964,Traditional,Storage heaters +9 Fenny Road,Stoke Hammond,Milton Keynes,,MK17 9BT,General Needs,House,1934,Traditional,LPG +10 Fenny Road,Stoke Hammond,Milton Keynes,,MK17 9BT,General Needs,House,1934,Traditional,LPG +13 Fenny Road,Stoke Hammond,Milton Keynes,,MK17 9BT,General Needs,House,1921,Traditional,LPG +16 Fenny Road,Stoke Hammond,Milton Keynes,,MK17 9BT,General Needs,House,1934,Traditional,LPG +20 Fenny Road,Stoke Hammond,Milton Keynes,,MK17 9BT,General Needs,House,1934,Traditional,LPG +5 Fenny Road,Stoke Hammond,Milton Keynes,,MK17 9BT,General Needs,House,1950,Traditional,Storage heaters +17 Fenny Road,Stoke Hammond,Milton Keynes,,MK17 9BT,General Needs,House,1921,Traditional,Storage heaters +23 Fenny Road,Stoke Hammond,Milton Keynes,,MK17 9BT,General Needs,House,1921,Traditional,Storage heaters +27 Fenny Road,Stoke Hammond,Milton Keynes,,MK17 9BT,General Needs,House,1921,Traditional,Storage heaters +12 The Green,Stoke Hammond,Milton Keynes,,MK17 9BX,General Needs,Bungalow,1964,Traditional,LPG +14 The Green,Stoke Hammond,Milton Keynes,,MK17 9BX,General Needs,Bungalow,1964,Traditional,LPG +16 The Green,Stoke Hammond,Milton Keynes,,MK17 9BX,General Needs,Bungalow,1964,Traditional,LPG +1 Olde Bell Close,Stoke Hammond,Milton Keynes,,MK17 9BZ,General Needs,Bungalow,1967,Traditional,ASHP +3 Olde Bell Close,Stoke Hammond,Milton Keynes,,MK17 9BZ,General Needs,Bungalow,1967,Traditional,LPG +4 Olde Bell Close,Stoke Hammond,Milton Keynes,,MK17 9BZ,General Needs,Bungalow,1967,Traditional,LPG +6 Olde Bell Close,Stoke Hammond,Milton Keynes,,MK17 9BZ,General Needs,Bungalow,1967,Traditional,LPG +7 Olde Bell Close,Stoke Hammond,Milton Keynes,,MK17 9BZ,General Needs,Bungalow,1967,Traditional,LPG +8 Olde Bell Close,Stoke Hammond,Milton Keynes,,MK17 9BZ,General Needs,Bungalow,1967,Traditional,LPG +9 Olde Bell Close,Stoke Hammond,Milton Keynes,,MK17 9BZ,General Needs,Bungalow,1967,Traditional,LPG +11 Olde Bell Close,Stoke Hammond,Milton Keynes,,MK17 9BZ,General Needs,Bungalow,1967,Traditional,LPG +14 Olde Bell Close,Stoke Hammond,Milton Keynes,,MK17 9BZ,General Needs,House,1967,Traditional,LPG +2 Olde Bell Close,Stoke Hammond,Milton Keynes,,MK17 9BZ,General Needs,Bungalow,1967,Traditional,Storage heaters +5 Olde Bell Close,Stoke Hammond,Milton Keynes,,MK17 9BZ,General Needs,Bungalow,1967,Traditional,Storage heaters +4 Bragenham Side,Stoke Hammond,Milton Keynes,,MK17 9DB,General Needs,Bungalow,1957,Traditional,LPG +6 Bragenham Side,Stoke Hammond,Milton Keynes,,MK17 9DB,General Needs,Bungalow,1957,Traditional,LPG +8 Bragenham Side,Stoke Hammond,Milton Keynes,,MK17 9DB,General Needs,House,1956,Traditional,LPG +18 Bragenham Side,Stoke Hammond,Milton Keynes,,MK17 9DB,General Needs,House,1956,Traditional,LPG +24 Bragenham Side,Stoke Hammond,Milton Keynes,,MK17 9DB,General Needs,House,1948,Traditional,LPG +29 Bragenham Side,Stoke Hammond,Milton Keynes,,MK17 9DB,General Needs,Bungalow,1960,Traditional,LPG +31 Bragenham Side,Stoke Hammond,Milton Keynes,,MK17 9DB,General Needs,Bungalow,1960,Traditional,LPG +2 Bragenham Side,Stoke Hammond,Milton Keynes,,MK17 9DB,General Needs,Bungalow,1957,Traditional,Storage heaters +25 Bragenham Side,Stoke Hammond,Milton Keynes,,MK17 9DB,General Needs,Bungalow,1960,Traditional,Storage heaters +26 Bragenham Side,Stoke Hammond,Milton Keynes,,MK17 9DB,General Needs,House,1948,Traditional,Storage heaters +27 Bragenham Side,Stoke Hammond,Milton Keynes,,MK17 9DB,General Needs,Bungalow,1960,Traditional,Storage heaters +5 Tyrells Gardens,Stoke Hammond,Milton Keynes,,MK17 9DF,General Needs,Bungalow,1973,Traditional,ASHP +3 Tyrells Gardens,Stoke Hammond,Milton Keynes,,MK17 9DF,General Needs,Bungalow,1973,Traditional,LPG +7 Tyrells Gardens,Stoke Hammond,Milton Keynes,,MK17 9DF,General Needs,Bungalow,1973,Traditional,LPG +1 Tyrells Gardens,Stoke Hammond,Milton Keynes,,MK17 9DF,General Needs,Bungalow,1973,Traditional,Storage heaters +2 Tyrells Gardens,Stoke Hammond,Milton Keynes,,MK17 9DF,General Needs,Bungalow,1973,Traditional,Storage heaters +4 Tyrells Gardens,Stoke Hammond,Milton Keynes,,MK17 9DF,General Needs,Bungalow,1973,Traditional,Storage heaters +8 Tyrells Gardens,Stoke Hammond,Milton Keynes,,MK17 9DF,General Needs,Bungalow,1973,Traditional,Storage heaters +9 Tyrells Gardens,Stoke Hammond,Milton Keynes,,MK17 9DF,General Needs,Bungalow,1973,Traditional,Storage heaters +10 Tyrells Gardens,Stoke Hammond,Milton Keynes,,MK17 9DF,General Needs,Bungalow,1973,Traditional,Storage heaters +11 Tyrells Gardens,Stoke Hammond,Milton Keynes,,MK17 9DF,General Needs,Bungalow,1973,Traditional,Storage heaters +12 Tyrells Gardens,Stoke Hammond,Milton Keynes,,MK17 9DF,General Needs,Bungalow,1973,Traditional,Storage heaters +13 Tyrells Gardens,Stoke Hammond,Milton Keynes,,MK17 9DF,General Needs,Bungalow,1973,Traditional,Storage heaters +14 Tyrells Gardens,Stoke Hammond,Milton Keynes,,MK17 9DF,General Needs,Bungalow,1973,Traditional,Storage heaters +15 Tyrells Gardens,Stoke Hammond,Milton Keynes,,MK17 9DF,General Needs,Bungalow,1973,Traditional,Storage heaters +16 Tyrells Gardens,Stoke Hammond,Milton Keynes,,MK17 9DF,General Needs,Bungalow,1973,Traditional,Storage heaters +24 Chandos Court,Chandos Road,Buckingham,,MK18 1AJ,General Needs,House,1979,Traditional,Natural gas (mains) +1 Chandos Court,Chandos Road,Buckingham,,MK18 1AJ,Independent Living,Flat,1969,Traditional,Storage heaters +2 Chandos Court,Chandos Road,Buckingham,,MK18 1AJ,Independent Living,Flat,1969,Traditional,Storage heaters +3 Chandos Court,Chandos Road,Buckingham,,MK18 1AJ,Independent Living,Flat,1969,Traditional,Storage heaters +4 Chandos Court,Chandos Road,Buckingham,,MK18 1AJ,Independent Living,Flat,1969,Traditional,Storage heaters +5 Chandos Court,Chandos Road,Buckingham,,MK18 1AJ,Independent Living,Flat,1969,Traditional,Storage heaters +6 Chandos Court,Chandos Road,Buckingham,,MK18 1AJ,Independent Living,Flat,1969,Traditional,Storage heaters +7 Chandos Court,Chandos Road,Buckingham,,MK18 1AJ,Independent Living,Flat,1969,Traditional,Storage heaters +8 Chandos Court,Chandos Road,Buckingham,,MK18 1AJ,Independent Living,Flat,1969,Traditional,Storage heaters +9 Chandos Court,Chandos Road,Buckingham,,MK18 1AJ,Independent Living,Flat,1969,Traditional,Storage heaters +10 Chandos Court,Chandos Road,Buckingham,,MK18 1AJ,Independent Living,Flat,1969,Traditional,Storage heaters +11 Chandos Court,Chandos Road,Buckingham,,MK18 1AJ,Independent Living,Flat,1969,Traditional,Storage heaters +12 Chandos Court,Chandos Road,Buckingham,,MK18 1AJ,Independent Living,Flat,1969,Traditional,Storage heaters +13 Chandos Court,Chandos Road,Buckingham,,MK18 1AJ,Independent Living,Flat,1969,Traditional,Storage heaters +14 Chandos Court,Chandos Road,Buckingham,,MK18 1AJ,Independent Living,Flat,1969,Traditional,Storage heaters +15 Chandos Court,Chandos Road,Buckingham,,MK18 1AJ,Independent Living,Flat,1969,Traditional,Storage heaters +16 Chandos Court,Chandos Road,Buckingham,,MK18 1AJ,Independent Living,Flat,1969,Traditional,Storage heaters +17 Chandos Court,Chandos Road,Buckingham,,MK18 1AJ,Independent Living,Flat,1969,Traditional,Storage heaters +18 Chandos Court,Chandos Road,Buckingham,,MK18 1AJ,Independent Living,Flat,1969,Traditional,Storage heaters +19 Chandos Court,Chandos Road,Buckingham,,MK18 1AJ,Independent Living,Flat,1969,Traditional,Storage heaters +20 Chandos Court,Chandos Road,Buckingham,,MK18 1AJ,Independent Living,Flat,1969,Traditional,Storage heaters +21 Chandos Court,Chandos Road,Buckingham,,MK18 1AJ,Independent Living,Flat,1969,Traditional,Storage heaters +22 Chandos Court,Chandos Road,Buckingham,,MK18 1AJ,Independent Living,Flat,1969,Traditional,Storage heaters +23 Chandos Court,Chandos Road,Buckingham,,MK18 1AJ,Independent Living,Flat,1969,Traditional,Storage heaters +3 Bourtonville,Buckingham,Bucks,,MK18 1AY,General Needs,House,1923,Traditional,Natural gas (mains) +5 Bourtonville,Buckingham,Bucks,,MK18 1AY,General Needs,House,1923,Traditional,Natural gas (mains) +7 Bourtonville,Buckingham,Bucks,,MK18 1AY,General Needs,House,1923,Traditional,Natural gas (mains) +9 Bourtonville,Buckingham,Bucks,,MK18 1AY,General Needs,House,1923,Traditional,Natural gas (mains) +11 Bourtonville,Buckingham,Bucks,,MK18 1AY,General Needs,House,1923,Traditional,Natural gas (mains) +15 Bourtonville,Buckingham,Bucks,,MK18 1AY,General Needs,House,1923,Traditional,Natural gas (mains) +17 Bourtonville,Buckingham,Bucks,,MK18 1AY,General Needs,House,1923,Traditional,Natural gas (mains) +19 Bourtonville,Buckingham,Bucks,,MK18 1AY,General Needs,House,1923,Traditional,Natural gas (mains) +21 Bourtonville,Buckingham,Bucks,,MK18 1AY,General Needs,House,1923,Traditional,Natural gas (mains) +27 Bourtonville,Buckingham,Bucks,,MK18 1AY,General Needs,House,1923,Traditional,Natural gas (mains) +29 Bourtonville,Buckingham,Bucks,,MK18 1AY,General Needs,House,1923,Traditional,Natural gas (mains) +33 Bourtonville,Buckingham,Bucks,,MK18 1AY,General Needs,House,1923,Traditional,Natural gas (mains) +35 Bourtonville,Buckingham,Bucks,,MK18 1AY,General Needs,House,1923,Traditional,Natural gas (mains) +39 Bourtonville,Buckingham,Bucks,,MK18 1AY,General Needs,House,1923,Traditional,Natural gas (mains) +45 Bourtonville,Buckingham,Bucks,,MK18 1AY,General Needs,House,1923,Traditional,Natural gas (mains) +57 Bourtonville,Buckingham,Bucks,,MK18 1AY,General Needs,House,1923,Traditional,Natural gas (mains) +63 Bourtonville,Buckingham,Bucks,,MK18 1AY,General Needs,House,1923,Traditional,Natural gas (mains) +2 Bourtonville,Buckingham,Bucks,,MK18 1AZ,General Needs,House,1923,Traditional,Natural gas (mains) +4 Bourtonville,Buckingham,Bucks,,MK18 1AZ,General Needs,House,1923,Traditional,Natural gas (mains) +6 Bourtonville,Buckingham,Bucks,,MK18 1AZ,General Needs,House,1923,Traditional,Natural gas (mains) +24 Bourtonville,Buckingham,Bucks,,MK18 1AZ,General Needs,House,1923,Traditional,Natural gas (mains) +38 Bourtonville,Buckingham,Bucks,,MK18 1AZ,General Needs,House,1923,Traditional,Natural gas (mains) +40 Bourtonville,Buckingham,Bucks,,MK18 1AZ,General Needs,House,1923,Traditional,Natural gas (mains) +8 Bourton Road,Buckingham,Bucks,,MK18 1BE,General Needs,House,1923,Traditional,Natural gas (mains) +10 Bourton Road,Buckingham,Bucks,,MK18 1BE,General Needs,House,1923,Traditional,Natural gas (mains) +12 Bourton Road,Buckingham,Bucks,,MK18 1BE,General Needs,House,1923,Traditional,Natural gas (mains) +20 Bourton Road,Buckingham,Bucks,,MK18 1BE,General Needs,House,1923,Traditional,Natural gas (mains) +22 Bourton Road,Buckingham,Bucks,,MK18 1BE,General Needs,House,1923,Traditional,Natural gas (mains) +1 Ryeland,Buckingham,,,MK18 1BW,General Needs,Flat,2010,Traditional,Natural gas (mains) +3 Ryeland,Buckingham,,,MK18 1BW,General Needs,Flat,2010,Traditional,Natural gas (mains) +5 Ryeland,Buckingham,,,MK18 1BW,General Needs,Flat,2010,Traditional,Natural gas (mains) +7 Ryeland,Buckingham,,,MK18 1BW,General Needs,Flat,2010,Traditional,Natural gas (mains) +9 Ryeland,Buckingham,,,MK18 1BW,General Needs,Flat,2010,Traditional,Natural gas (mains) +11 Ryeland,Buckingham,,,MK18 1BW,General Needs,Flat,2010,Traditional,Natural gas (mains) +15 Ryeland,Buckingham,,,MK18 1BW,General Needs,Flat,2010,Traditional,Natural gas (mains) +17 Ryeland,Buckingham,,,MK18 1BW,General Needs,Flat,2010,Traditional,Natural gas (mains) +19 Ryeland,Buckingham,,,MK18 1BW,General Needs,Flat,2010,Traditional,Natural gas (mains) +21 Ryeland,Buckingham,,,MK18 1BW,General Needs,Flat,2010,Traditional,Natural gas (mains) +23 Ryeland,Buckingham,,,MK18 1BW,General Needs,Flat,2010,Traditional,Natural gas (mains) +25 Ryeland,Buckingham,,,MK18 1BW,General Needs,Flat,2010,Traditional,Natural gas (mains) +27 Ryeland,Buckingham,,,MK18 1BW,General Needs,Flat,2010,Traditional,Natural gas (mains) +29 Ryeland,Buckingham,,,MK18 1BW,General Needs,Flat,2010,Traditional,Natural gas (mains) +31 Ryeland,Buckingham,,,MK18 1BW,General Needs,Flat,2010,Traditional,Natural gas (mains) +33 Ryeland,Buckingham,,,MK18 1BW,General Needs,Flat,2010,Traditional,Natural gas (mains) +1 Brooks Court,Buckingham,Bucks,,MK18 1DG,Independent Living,Flat,1992,Traditional,Storage heaters +2 Brooks Court,Buckingham,Bucks,,MK18 1DG,Independent Living,Flat,1992,Traditional,Storage heaters +3 Brooks Court,Buckingham,Bucks,,MK18 1DG,Independent Living,Flat,1992,Traditional,Storage heaters +4 Brooks Court,Buckingham,Bucks,,MK18 1DG,Independent Living,Flat,1992,Traditional,Storage heaters +5 Brooks Court,Buckingham,Bucks,,MK18 1DG,Independent Living,Flat,1992,Traditional,Storage heaters +6 Brooks Court,Buckingham,Bucks,,MK18 1DG,Independent Living,Flat,1992,Traditional,Storage heaters +7 Brooks Court,Buckingham,Bucks,,MK18 1DG,Independent Living,Flat,1992,Traditional,Storage heaters +8 Brooks Court,Buckingham,Bucks,,MK18 1DG,Independent Living,Flat,1992,Traditional,Storage heaters +9 Brooks Court,Buckingham,Bucks,,MK18 1DG,Independent Living,Flat,1992,Traditional,Storage heaters +10 Brooks Court,Buckingham,Bucks,,MK18 1DG,Independent Living,Flat,1992,Traditional,Storage heaters +11 Brooks Court,Buckingham,Bucks,,MK18 1DG,Independent Living,Flat,1992,Traditional,Storage heaters +12 Brooks Court,Buckingham,Bucks,,MK18 1DG,Independent Living,Flat,1992,Traditional,Storage heaters +14 Brooks Court,Buckingham,Bucks,,MK18 1DG,Independent Living,Flat,1992,Traditional,Storage heaters +15 Brooks Court,Buckingham,Bucks,,MK18 1DG,Independent Living,Flat,1992,Traditional,Storage heaters +16 Brooks Court,Buckingham,Bucks,,MK18 1DG,Independent Living,Flat,1992,Traditional,Storage heaters +17 Brooks Court,Buckingham,Bucks,,MK18 1DG,Independent Living,Flat,1992,Traditional,Storage heaters +18 Brooks Court,Buckingham,Bucks,,MK18 1DG,Independent Living,Flat,1992,Traditional,Storage heaters +19 Brooks Court,Buckingham,Bucks,,MK18 1DG,Independent Living,Flat,1992,Traditional,Storage heaters +20 Brooks Court,Buckingham,Bucks,,MK18 1DG,Independent Living,Flat,1992,Traditional,Storage heaters +1 Station Terrace,Buckingham,Bucks,,MK18 1DL,General Needs,House,1919,Traditional,Natural gas (mains) +3 Station Terrace,Buckingham,Bucks,,MK18 1DL,General Needs,House,1919,Traditional,Natural gas (mains) +5 Station Terrace,Buckingham,Bucks,,MK18 1DL,General Needs,House,1919,Traditional,Natural gas (mains) +2 Bath Lane Terrace,Buckingham,Bucks,,MK18 1DY,General Needs,House,1935,Traditional,Natural gas (mains) +3 Bath Lane Terrace,Buckingham,Bucks,,MK18 1DY,General Needs,House,1935,Traditional,Natural gas (mains) +4 Bath Lane Terrace,Buckingham,Bucks,,MK18 1DY,General Needs,House,1935,Traditional,Natural gas (mains) +3 Westfields,Buckingham,Bucks,,MK18 1DZ,General Needs,House,1938,Traditional,Natural gas (mains) +5 Westfields,Buckingham,Bucks,,MK18 1DZ,General Needs,House,1938,Traditional,Natural gas (mains) +6 Westfields,Buckingham,Bucks,,MK18 1DZ,General Needs,House,1938,Traditional,Natural gas (mains) +8 Westfields,Buckingham,Bucks,,MK18 1DZ,General Needs,House,1938,Traditional,Natural gas (mains) +10 Westfields,Buckingham,Bucks,,MK18 1DZ,General Needs,House,1938,Traditional,Natural gas (mains) +13 Westfields,Buckingham,Bucks,,MK18 1DZ,General Needs,House,1938,Traditional,Natural gas (mains) +14 Westfields,Buckingham,Bucks,,MK18 1DZ,General Needs,House,1938,Traditional,Natural gas (mains) +15 Westfields,Buckingham,Bucks,,MK18 1DZ,General Needs,House,1938,Traditional,Natural gas (mains) +18 Westfields,Buckingham,Bucks,,MK18 1DZ,General Needs,House,1938,Traditional,Natural gas (mains) +19 Westfields,Buckingham,Bucks,,MK18 1DZ,General Needs,House,1938,Traditional,Natural gas (mains) +20 Westfields,Buckingham,Bucks,,MK18 1DZ,General Needs,House,1938,Traditional,Natural gas (mains) +21 Westfields,Buckingham,Bucks,,MK18 1DZ,General Needs,House,1938,Traditional,Natural gas (mains) +24 Westfields,Buckingham,Bucks,,MK18 1DZ,General Needs,House,1938,Traditional,Natural gas (mains) +27 Westfields,Buckingham,Bucks,,MK18 1DZ,General Needs,House,1938,Traditional,Natural gas (mains) +28 Westfields,Buckingham,Bucks,,MK18 1DZ,General Needs,House,1938,Traditional,Natural gas (mains) +29 Westfields,Buckingham,Bucks,,MK18 1DZ,General Needs,House,1938,Traditional,Natural gas (mains) +31 Westfields,Buckingham,Bucks,,MK18 1DZ,General Needs,House,1938,Traditional,Natural gas (mains) +32 Westfields,Buckingham,Bucks,,MK18 1DZ,General Needs,House,1938,Traditional,Natural gas (mains) +35 Westfields,Buckingham,Bucks,,MK18 1DZ,General Needs,House,1938,Traditional,Natural gas (mains) +49 Westfields,Buckingham,Bucks,,MK18 1DZ,General Needs,House,1938,Traditional,Natural gas (mains) +51 Westfields,Buckingham,Bucks,,MK18 1DZ,General Needs,House,1938,Traditional,Natural gas (mains) +53 Westfields,Buckingham,Bucks,,MK18 1DZ,General Needs,House,1938,Traditional,Natural gas (mains) +55 Westfields,Buckingham,Bucks,,MK18 1DZ,General Needs,House,1938,Traditional,Natural gas (mains) +57 Westfields,Buckingham,Bucks,,MK18 1DZ,General Needs,House,1938,Traditional,Natural gas (mains) +60 Westfields,Buckingham,Bucks,,MK18 1DZ,General Needs,House,1938,Traditional,Natural gas (mains) +3 Castle Court,Buckingham,Bucks,,MK18 1EQ,General Needs,Flat,1980,Traditional,Natural gas (mains) +5 Castle Court,Buckingham,Bucks,,MK18 1EQ,General Needs,Flat,1980,Traditional,Natural gas (mains) +7 Castle Court,Buckingham,Bucks,,MK18 1EQ,General Needs,House,1980,Traditional,Natural gas (mains) +33 Whitehead Way,Buckingham,,,MK18 1FL,General Needs,Flat,2010,Traditional,Natural gas (mains) +35 Whitehead Way,Buckingham,,,MK18 1FL,General Needs,Flat,2010,Traditional,Natural gas (mains) +45 Whitehead Way,Buckingham,,,MK18 1FL,General Needs,House,2010,Traditional,Natural gas (mains) +47 Whitehead Way,Buckingham,,,MK18 1FL,General Needs,House,2010,Traditional,Natural gas (mains) +49 Whitehead Way,Buckingham,,,MK18 1FL,General Needs,House,2010,Traditional,Natural gas (mains) +51 Whitehead Way,Buckingham,,,MK18 1FL,General Needs,House,2010,Traditional,Natural gas (mains) +53 Whitehead Way,Buckingham,,,MK18 1FL,General Needs,House,2010,Traditional,Natural gas (mains) +55 Whitehead Way,Buckingham,,,MK18 1FL,General Needs,House,2010,Traditional,Natural gas (mains) +5 Lincoln,Buckingham,,,MK18 1GY,General Needs,House,2010,Traditional,Natural gas (mains) +7 Lincoln,Buckingham,,,MK18 1GY,General Needs,House,2010,Traditional,Natural gas (mains) +9 Lincoln,Buckingham,,,MK18 1GY,General Needs,Flat,2010,Traditional,Natural gas (mains) +11 Lincoln,Buckingham,,,MK18 1GY,General Needs,House,2010,Traditional,Natural gas (mains) +15 Lincoln,Buckingham,,,MK18 1GY,General Needs,House,2010,Traditional,Natural gas (mains) +17 Lincoln,Buckingham,,,MK18 1GY,General Needs,House,2010,Traditional,Natural gas (mains) +19 Lincoln,Buckingham,,,MK18 1GY,General Needs,House,2010,Traditional,Natural gas (mains) +21 Lincoln,Buckingham,,,MK18 1GY,General Needs,House,2010,Traditional,Natural gas (mains) +23 Lincoln,Buckingham,,,MK18 1GY,General Needs,House,2010,Traditional,Natural gas (mains) +25 Lincoln,Buckingham,,,MK18 1GY,General Needs,House,2010,Traditional,Natural gas (mains) +27 Lincoln,Buckingham,,,MK18 1GY,General Needs,House,2010,Traditional,Natural gas (mains) +4 Addington Terrace,Buckingham,Bucks,,MK18 1LB,General Needs,House,1934,Traditional,Natural gas (mains) +5 Addington Terrace,Buckingham,Bucks,,MK18 1LB,General Needs,House,1934,Traditional,Natural gas (mains) +1 Addington Terrace,Buckingham,Bucks,,MK18 1LB,General Needs,House,1934,Traditional,Storage heaters +13 Western Avenue,Buckingham,Bucks,,MK18 1LD,General Needs,House,1952,Traditional,Natural gas (mains) +2A Western Avenue,Buckingham,Bucks,,MK18 1LE,General Needs,House,1952,Traditional,Natural gas (mains) +78A Western Avenue,Buckingham,Bucks,,MK18 1LE,General Needs,House,1952,Traditional,Natural gas (mains) +14 Western Avenue,Buckingham,Bucks,,MK18 1LE,General Needs,House,1952,Traditional,Natural gas (mains) +16 Western Avenue,Buckingham,Bucks,,MK18 1LE,General Needs,House,1952,Traditional,Natural gas (mains) +18 Western Avenue,Buckingham,Bucks,,MK18 1LE,General Needs,House,1952,Traditional,Natural gas (mains) +1 Pightle Crescent,Buckingham,Bucks,,MK18 1LF,General Needs,Flat,1968,Traditional,Natural gas (mains) +2 Pightle Crescent,Buckingham,Bucks,,MK18 1LF,General Needs,Flat,1968,Traditional,Natural gas (mains) +3 Pightle Crescent,Buckingham,Bucks,,MK18 1LF,General Needs,Flat,1968,Traditional,Natural gas (mains) +4 Pightle Crescent,Buckingham,Bucks,,MK18 1LF,General Needs,Flat,1968,Traditional,Natural gas (mains) +5 Pightle Crescent,Buckingham,Bucks,,MK18 1LF,General Needs,Flat,1968,Traditional,Natural gas (mains) +6 Pightle Crescent,Buckingham,Bucks,,MK18 1LF,General Needs,Flat,1968,Traditional,Natural gas (mains) +7 Pightle Crescent,Buckingham,Bucks,,MK18 1LF,General Needs,Flat,1968,Traditional,Natural gas (mains) +8 Pightle Crescent,Buckingham,Bucks,,MK18 1LF,General Needs,Flat,1968,Traditional,Natural gas (mains) +9 Pightle Crescent,Buckingham,Bucks,,MK18 1LF,General Needs,Flat,1968,Traditional,Natural gas (mains) +10 Pightle Crescent,Buckingham,Bucks,,MK18 1LF,General Needs,Flat,1968,Traditional,Natural gas (mains) +12 Pightle Crescent,Buckingham,Bucks,,MK18 1LF,General Needs,Flat,1968,Traditional,Natural gas (mains) +13 Pightle Crescent,Buckingham,Bucks,,MK18 1LF,General Needs,Flat,1968,Traditional,Natural gas (mains) +14 Pightle Crescent,Buckingham,Bucks,,MK18 1LF,General Needs,Flat,1968,Traditional,Natural gas (mains) +15 Pightle Crescent,Buckingham,Bucks,,MK18 1LF,General Needs,Flat,1968,Traditional,Natural gas (mains) +17 Pightle Crescent,Buckingham,Bucks,,MK18 1LF,General Needs,Flat,1968,Traditional,Natural gas (mains) +19 Pightle Crescent,Buckingham,Bucks,,MK18 1LF,General Needs,Flat,1968,Traditional,Natural gas (mains) +21 Pightle Crescent,Buckingham,Bucks,,MK18 1LF,General Needs,Flat,1968,Traditional,Natural gas (mains) +22 Pightle Crescent,Buckingham,Bucks,,MK18 1LF,General Needs,Flat,1968,Traditional,Natural gas (mains) +24 Pightle Crescent,Buckingham,Bucks,,MK18 1LF,General Needs,Flat,1968,Traditional,Natural gas (mains) +26 Pightle Crescent,Buckingham,Bucks,,MK18 1LF,General Needs,Flat,1968,Traditional,Natural gas (mains) +27 Pightle Crescent,Buckingham,Bucks,,MK18 1LF,General Needs,Flat,1968,Traditional,Natural gas (mains) +28 Pightle Crescent,Buckingham,Bucks,,MK18 1LF,General Needs,Flat,1968,Traditional,Natural gas (mains) +29 Pightle Crescent,Buckingham,Bucks,,MK18 1LF,General Needs,Flat,1968,Traditional,Natural gas (mains) +31 Pightle Crescent,Buckingham,Bucks,,MK18 1LF,General Needs,Flat,1968,Traditional,Natural gas (mains) +32 Pightle Crescent,Buckingham,Bucks,,MK18 1LF,General Needs,Flat,1968,Traditional,Natural gas (mains) +33 Pightle Crescent,Buckingham,Bucks,,MK18 1LF,General Needs,Flat,1968,Traditional,Natural gas (mains) +34 Pightle Crescent,Buckingham,Bucks,,MK18 1LF,General Needs,Flat,1968,Traditional,Natural gas (mains) +9 Overn Avenue,Buckingham,Bucks,,MK18 1LG,General Needs,House,1948,Traditional,Natural gas (mains) +15 Overn Avenue,Buckingham,Bucks,,MK18 1LG,General Needs,House,1948,Traditional,Natural gas (mains) +17 Overn Avenue,Buckingham,Bucks,,MK18 1LG,General Needs,House,1948,Traditional,Natural gas (mains) +1 The Bungalows,Overn Avenue,Buckingham,Bucks,MK18 1LH,General Needs,Bungalow,1948,Traditional,Natural gas (mains) +2 The Bungalows,Overn Avenue,Buckingham,Bucks,MK18 1LH,General Needs,Bungalow,1948,Traditional,Natural gas (mains) +3 The Bungalows,Overn Avenue,Buckingham,Bucks,MK18 1LH,General Needs,Bungalow,1948,Traditional,Natural gas (mains) +4 The Bungalows,Overn Avenue,Buckingham,Bucks,MK18 1LH,General Needs,Bungalow,1948,Traditional,Natural gas (mains) +15A Western Avenue,Buckingham,Bucks,,MK18 1LJ,General Needs,House,1952,Traditional,Natural gas (mains) +25 Western Avenue,Buckingham,Bucks,,MK18 1LJ,General Needs,House,1952,Traditional,Natural gas (mains) +33 Western Avenue,Buckingham,Bucks,,MK18 1LJ,General Needs,House,1952,Traditional,Natural gas (mains) +47 Western Avenue,Buckingham,Bucks,,MK18 1LJ,General Needs,House,1952,Traditional,Natural gas (mains) +53 Western Avenue,Buckingham,Bucks,,MK18 1LJ,General Needs,House,1952,Traditional,Natural gas (mains) +55 Western Avenue,Buckingham,Bucks,,MK18 1LJ,General Needs,House,1952,Traditional,Natural gas (mains) +59 Western Avenue,Buckingham,Bucks,,MK18 1LJ,General Needs,House,1952,Traditional,Natural gas (mains) +1 The Bungalows,Western Avenue,Buckingham,Bucks,MK18 1LL,General Needs,Bungalow,1946,Traditional,Natural gas (mains) +3 The Bungalows,Western Avenue,Buckingham,Bucks,MK18 1LL,General Needs,Bungalow,1946,Traditional,Natural gas (mains) +4 The Bungalows,Western Avenue,Buckingham,Bucks,MK18 1LL,General Needs,Bungalow,1946,Traditional,Natural gas (mains) +76A Western Avenue,Buckingham,Bucks,,MK18 1LN,General Needs,House,1952,Traditional,Natural gas (mains) +28 Western Avenue,Buckingham,Bucks,,MK18 1LN,General Needs,House,1952,Traditional,Natural gas (mains) +36 Western Avenue,Buckingham,Bucks,,MK18 1LN,General Needs,House,1952,Traditional,Natural gas (mains) +38 Western Avenue,Buckingham,Bucks,,MK18 1LN,General Needs,House,1952,Traditional,Natural gas (mains) +44 Western Avenue,Buckingham,Bucks,,MK18 1LN,General Needs,House,1952,Traditional,Natural gas (mains) +46 Western Avenue,Buckingham,Bucks,,MK18 1LN,General Needs,House,1952,Traditional,Natural gas (mains) +50 Western Avenue,Buckingham,Bucks,,MK18 1LN,General Needs,House,1952,Traditional,Natural gas (mains) +52 Western Avenue,Buckingham,Bucks,,MK18 1LN,General Needs,House,1952,Traditional,Natural gas (mains) +58 Western Avenue,Buckingham,Bucks,,MK18 1LN,General Needs,House,1952,Traditional,Natural gas (mains) +60 Western Avenue,Buckingham,Bucks,,MK18 1LN,General Needs,House,1952,Traditional,Natural gas (mains) +62 Western Avenue,Buckingham,Bucks,,MK18 1LN,General Needs,House,1952,Traditional,Natural gas (mains) +66 Western Avenue,Buckingham,Bucks,,MK18 1LN,General Needs,House,1952,Traditional,Natural gas (mains) +68 Western Avenue,Buckingham,Bucks,,MK18 1LN,General Needs,House,1952,Traditional,Natural gas (mains) +70 Western Avenue,Buckingham,Bucks,,MK18 1LN,General Needs,House,1952,Traditional,Natural gas (mains) +78 Western Avenue,Buckingham,Bucks,,MK18 1LN,General Needs,House,1952,Traditional,Natural gas (mains) +80 Western Avenue,Buckingham,Bucks,,MK18 1LN,General Needs,House,1952,Traditional,Natural gas (mains) +56 Western Avenue,Buckingham,Bucks,,MK18 1LN,General Needs,House,1952,Traditional,None +9 Grenville Road,Buckingham,Bucks,,MK18 1LP,General Needs,House,1967,Traditional,Natural gas (mains) +11 Grenville Road,Buckingham,Bucks,,MK18 1LP,General Needs,House,1967,Traditional,Natural gas (mains) +15 Grenville Road,Buckingham,Bucks,,MK18 1LP,General Needs,House,1967,Traditional,Natural gas (mains) +23 Grenville Road,Buckingham,Bucks,,MK18 1LP,General Needs,Flat,1967,Traditional,Natural gas (mains) +31 Grenville Road,Buckingham,Bucks,,MK18 1LP,General Needs,Bungalow,1967,Traditional,Natural gas (mains) +33 Grenville Road,Buckingham,Bucks,,MK18 1LP,General Needs,Bungalow,1967,Traditional,Natural gas (mains) +35 Grenville Road,Buckingham,Bucks,,MK18 1LP,General Needs,Bungalow,1967,Traditional,Natural gas (mains) +37 Grenville Road,Buckingham,Bucks,,MK18 1LP,General Needs,Bungalow,1967,Traditional,Natural gas (mains) +39 Grenville Road,Buckingham,Bucks,,MK18 1LP,General Needs,Bungalow,1967,Traditional,Natural gas (mains) +41 Grenville Road,Buckingham,Bucks,,MK18 1LP,General Needs,Bungalow,1967,Traditional,Natural gas (mains) +43 Grenville Road,Buckingham,Bucks,,MK18 1LP,General Needs,Bungalow,1967,Traditional,Natural gas (mains) +45 Grenville Road,Buckingham,Bucks,,MK18 1LP,General Needs,Bungalow,1967,Traditional,Natural gas (mains) +1 The Flats,Overn Avenue,Buckingham,Bucks,MK18 1LQ,General Needs,Flat,1948,Traditional,Natural gas (mains) +2 The Flats,Overn Avenue,Buckingham,Bucks,MK18 1LQ,General Needs,Flat,1948,Traditional,Natural gas (mains) +8 Overn Avenue,Buckingham,Bucks,,MK18 1LQ,General Needs,House,1948,Traditional,Natural gas (mains) +14 Overn Avenue,Buckingham,Bucks,,MK18 1LQ,General Needs,House,1948,Traditional,Natural gas (mains) +26 Overn Avenue,Buckingham,Bucks,,MK18 1LQ,General Needs,House,1948,Traditional,Natural gas (mains) +2 Grenville Road,Buckingham,Bucks,,MK18 1LR,General Needs,House,1967,Traditional,Natural gas (mains) +10 Grenville Road,Buckingham,Bucks,,MK18 1LR,General Needs,House,1967,Traditional,Natural gas (mains) +14 Grenville Road,Buckingham,Bucks,,MK18 1LR,General Needs,House,1967,Traditional,Natural gas (mains) +16 Grenville Road,Buckingham,Bucks,,MK18 1LR,General Needs,House,1967,Traditional,Natural gas (mains) +18 Grenville Road,Buckingham,Bucks,,MK18 1LR,General Needs,House,1967,Traditional,Natural gas (mains) +26 Grenville Road,Buckingham,Bucks,,MK18 1LR,General Needs,House,1967,Traditional,Natural gas (mains) +46 Grenville Road,Buckingham,Bucks,,MK18 1LR,General Needs,House,1967,Traditional,Natural gas (mains) +118 Western Avenue,Buckingham,Bucks,,MK18 1LS,General Needs,House,1952,Traditional,Natural gas (mains) +122 Western Avenue,Buckingham,Bucks,,MK18 1LS,General Needs,House,1952,Traditional,Natural gas (mains) +124 Western Avenue,Buckingham,Bucks,,MK18 1LS,General Needs,House,1952,Traditional,Natural gas (mains) +34 Overn Avenue,Buckingham,Bucks,,MK18 1LT,General Needs,House,1948,Traditional,Natural gas (mains) +46 Overn Avenue,Buckingham,Bucks,,MK18 1LT,General Needs,House,1948,Traditional,Natural gas (mains) +68 Overn Avenue,Buckingham,Bucks,,MK18 1LT,General Needs,House,1948,Traditional,Natural gas (mains) +54 Overn Avenue,Buckingham,Bucks,,MK18 1LT,General Needs,House,1948,Traditional,Storage heaters +47 Overn Avenue,Buckingham,Bucks,,MK18 1LU,General Needs,House,1948,Traditional,Natural gas (mains) +71 Overn Avenue,Buckingham,Bucks,,MK18 1LU,General Needs,House,1948,Traditional,Natural gas (mains) +84 Western Avenue,Buckingham,Bucks,,MK18 1LW,General Needs,House,1952,Traditional,Natural gas (mains) +86 Western Avenue,Buckingham,Bucks,,MK18 1LW,General Needs,House,1952,Traditional,Natural gas (mains) +88 Western Avenue,Buckingham,Bucks,,MK18 1LW,General Needs,House,1952,Traditional,Natural gas (mains) +90 Western Avenue,Buckingham,Bucks,,MK18 1LW,General Needs,House,1952,Traditional,Natural gas (mains) +92 Western Avenue,Buckingham,Bucks,,MK18 1LW,General Needs,House,1952,Traditional,Natural gas (mains) +98 Western Avenue,Buckingham,Bucks,,MK18 1LW,General Needs,House,1952,Traditional,Natural gas (mains) +100 Western Avenue,Buckingham,Bucks,,MK18 1LW,General Needs,House,1952,Traditional,Natural gas (mains) +102 Western Avenue,Buckingham,Bucks,,MK18 1LW,General Needs,House,1952,Traditional,Natural gas (mains) +106 Western Avenue,Buckingham,Bucks,,MK18 1LW,General Needs,House,1952,Traditional,Natural gas (mains) +108 Western Avenue,Buckingham,Bucks,,MK18 1LW,General Needs,House,1952,Traditional,Natural gas (mains) +94A Western Avenue,Buckingham,Bucks,,MK18 1LW,General Needs,House,1970,Traditional,Storage heaters +81 Western Avenue,Buckingham,Bucks,,MK18 1LX,General Needs,House,1952,Traditional,Natural gas (mains) +27 Overn Crescent,Buckingham,Bucks,,MK18 1LY,General Needs,House,1958,Traditional,Natural gas (mains) +39 Overn Crescent,Buckingham,Bucks,,MK18 1LY,General Needs,House,1958,Traditional,Natural gas (mains) +45 Overn Crescent,Buckingham,Bucks,,MK18 1LY,General Needs,House,1958,Traditional,Natural gas (mains) +51 Overn Crescent,Buckingham,Bucks,,MK18 1LY,General Needs,House,1958,Traditional,Natural gas (mains) +61 Overn Crescent,Buckingham,Bucks,,MK18 1LY,General Needs,House,1958,Traditional,Natural gas (mains) +65 Overn Crescent,Buckingham,Bucks,,MK18 1LY,General Needs,House,1958,Traditional,Natural gas (mains) +67 Overn Crescent,Buckingham,Bucks,,MK18 1LY,General Needs,House,1958,Traditional,Natural gas (mains) +73 Overn Crescent,Buckingham,Bucks,,MK18 1LY,General Needs,House,1958,Traditional,Natural gas (mains) +77 Overn Crescent,Buckingham,Bucks,,MK18 1LY,General Needs,House,1958,Traditional,Natural gas (mains) +30 Overn Crescent,Buckingham,Bucks,,MK18 1LZ,General Needs,Bungalow,1958,Traditional,Natural gas (mains) +32 Overn Crescent,Buckingham,Bucks,,MK18 1LZ,General Needs,Bungalow,1958,Traditional,Natural gas (mains) +34 Overn Crescent,Buckingham,Bucks,,MK18 1LZ,General Needs,Bungalow,1958,Traditional,Natural gas (mains) +36 Overn Crescent,Buckingham,Bucks,,MK18 1LZ,General Needs,Bungalow,1958,Traditional,Natural gas (mains) +68 Overn Crescent,Buckingham,Bucks,,MK18 1LZ,General Needs,House,1958,Traditional,Natural gas (mains) +70 Overn Crescent,Buckingham,Bucks,,MK18 1LZ,General Needs,House,1958,Traditional,Natural gas (mains) +72 Overn Crescent,Buckingham,Bucks,,MK18 1LZ,General Needs,House,1958,Traditional,Natural gas (mains) +1 Cobham Close,Buckingham,Bucks,,MK18 1ND,General Needs,Bungalow,1960,Traditional,Natural gas (mains) +2 Cobham Close,Buckingham,Bucks,,MK18 1ND,General Needs,Bungalow,1960,Traditional,Natural gas (mains) +3 Cobham Close,Buckingham,Bucks,,MK18 1ND,General Needs,Bungalow,1960,Traditional,Natural gas (mains) +4 Cobham Close,Buckingham,Bucks,,MK18 1ND,General Needs,Bungalow,1960,Traditional,Natural gas (mains) +5 Cobham Close,Buckingham,Bucks,,MK18 1ND,General Needs,Bungalow,1960,Traditional,Natural gas (mains) +6 Cobham Close,Buckingham,Bucks,,MK18 1ND,General Needs,Bungalow,1960,Traditional,Natural gas (mains) +7 Cobham Close,Buckingham,Bucks,,MK18 1ND,General Needs,Bungalow,1960,Traditional,Natural gas (mains) +8 Cobham Close,Buckingham,Bucks,,MK18 1ND,General Needs,Bungalow,1960,Traditional,Natural gas (mains) +9 Cobham Close,Buckingham,Bucks,,MK18 1ND,General Needs,Bungalow,1960,Traditional,Natural gas (mains) +10 Cobham Close,Buckingham,Bucks,,MK18 1ND,General Needs,Bungalow,1960,Traditional,Natural gas (mains) +11 Cobham Close,Buckingham,Bucks,,MK18 1ND,General Needs,Bungalow,1960,Traditional,Natural gas (mains) +12 Cobham Close,Buckingham,Bucks,,MK18 1ND,General Needs,Bungalow,1960,Traditional,Natural gas (mains) +22 Stratford Road,Buckingham,Bucks,,MK18 1NY,General Needs,House,1934,Traditional,Natural gas (mains) +23 Stratford Road,Buckingham,Bucks,,MK18 1NY,General Needs,House,1934,Traditional,Natural gas (mains) +52 Overn Crescent,Buckingham,Bucks,,MK18 1NZ,General Needs,House,1958,Traditional,Natural gas (mains) +60 Overn Crescent,Buckingham,Bucks,,MK18 1NZ,General Needs,House,1958,Traditional,Natural gas (mains) +1 North End Court,North End Square,Buckingham,Bucks,MK18 1NZ,Independent Living,Flat,1979,Traditional,Radiators - communal gas boiler +2 North End Court,North End Square,Buckingham,Bucks,MK18 1NZ,Independent Living,Flat,1979,Traditional,Radiators - communal gas boiler +3 North End Court,North End Square,Buckingham,Bucks,MK18 1NZ,Independent Living,Flat,1979,Traditional,Radiators - communal gas boiler +4 North End Court,North End Square,Buckingham,Bucks,MK18 1NZ,Independent Living,Flat,1979,Traditional,Radiators - communal gas boiler +5 North End Court,North End Square,Buckingham,Bucks,MK18 1NZ,Independent Living,Flat,1979,Traditional,Radiators - communal gas boiler +6 North End Court,North End Square,Buckingham,Bucks,MK18 1NZ,Independent Living,Flat,1979,Traditional,Radiators - communal gas boiler +7 North End Court,North End Square,Buckingham,Bucks,MK18 1NZ,Independent Living,Flat,1979,Traditional,Radiators - communal gas boiler +8 North End Court,North End Square,Buckingham,Bucks,MK18 1NZ,Independent Living,Flat,1979,Traditional,Radiators - communal gas boiler +9 North End Court,North End Square,Buckingham,Bucks,MK18 1NZ,Independent Living,Flat,1979,Traditional,Radiators - communal gas boiler +10 North End Court,North End Square,Buckingham,Bucks,MK18 1NZ,Independent Living,Flat,1979,Traditional,Radiators - communal gas boiler +11 North End Court,North End Square,Buckingham,Bucks,MK18 1NZ,Independent Living,Flat,1979,Traditional,Radiators - communal gas boiler +12 North End Court,North End Square,Buckingham,Bucks,MK18 1NZ,Independent Living,Flat,1979,Traditional,Radiators - communal gas boiler +13 North End Court,North End Square,Buckingham,Bucks,MK18 1NZ,Independent Living,Flat,1979,Traditional,Radiators - communal gas boiler +14 North End Court,North End Square,Buckingham,Bucks,MK18 1NZ,Independent Living,Flat,1979,Traditional,Radiators - communal gas boiler +15 North End Court,North End Square,Buckingham,Bucks,MK18 1NZ,Independent Living,Flat,1979,Traditional,Radiators - communal gas boiler +16 North End Court,North End Square,Buckingham,Bucks,MK18 1NZ,Independent Living,Flat,1979,Traditional,Radiators - communal gas boiler +17 North End Court,North End Square,Buckingham,Bucks,MK18 1NZ,Independent Living,Flat,1979,Traditional,Radiators - communal gas boiler +18 North End Court,North End Square,Buckingham,Bucks,MK18 1NZ,Independent Living,Flat,1979,Traditional,Radiators - communal gas boiler +19 North End Court,North End Square,Buckingham,Bucks,MK18 1NZ,Independent Living,Flat,1979,Traditional,Radiators - communal gas boiler +20 North End Court,North End Square,Buckingham,Bucks,MK18 1NZ,Independent Living,Flat,1979,Traditional,Radiators - communal gas boiler +21 North End Court,North End Square,Buckingham,Bucks,MK18 1NZ,Independent Living,Flat,1979,Traditional,Radiators - communal gas boiler +22 North End Court,North End Square,Buckingham,Bucks,MK18 1NZ,Independent Living,Flat,1979,Traditional,Radiators - communal gas boiler +23 North End Court,North End Square,Buckingham,Bucks,MK18 1NZ,Independent Living,Flat,1979,Traditional,Radiators - communal gas boiler +24 North End Court,North End Square,Buckingham,Bucks,MK18 1NZ,Independent Living,Flat,1979,Traditional,Radiators - communal gas boiler +25 North End Court,North End Square,Buckingham,Bucks,MK18 1NZ,Independent Living,Flat,1979,Traditional,Radiators - communal gas boiler +1 Addington Road,Buckingham,Bucks,,MK18 1PB,General Needs,House,1934,Traditional,Natural gas (mains) +3 Addington Road,Buckingham,Bucks,,MK18 1PB,General Needs,House,1934,Traditional,Natural gas (mains) +5 Addington Road,Buckingham,Bucks,,MK18 1PB,General Needs,House,1934,Traditional,Natural gas (mains) +11 Addington Road,Buckingham,Bucks,,MK18 1PB,General Needs,House,1934,Traditional,Natural gas (mains) +13 Addington Road,Buckingham,Bucks,,MK18 1PB,General Needs,House,1934,Traditional,Natural gas (mains) +17 Addington Road,Buckingham,Bucks,,MK18 1PB,General Needs,House,1934,Traditional,Natural gas (mains) +19 Addington Road,Buckingham,Bucks,,MK18 1PB,General Needs,House,1934,Traditional,Natural gas (mains) +23 Addington Road,Buckingham,Bucks,,MK18 1PB,General Needs,House,1934,Traditional,Natural gas (mains) +27 Addington Road,Buckingham,Bucks,,MK18 1PB,General Needs,House,1934,Traditional,Natural gas (mains) +29 Addington Road,Buckingham,Bucks,,MK18 1PB,General Needs,House,1934,Traditional,Natural gas (mains) +31 Addington Road,Buckingham,Bucks,,MK18 1PB,General Needs,House,1934,Traditional,Natural gas (mains) +33 Addington Road,Buckingham,Bucks,,MK18 1PB,General Needs,House,1934,Traditional,Natural gas (mains) +37 Addington Road,Buckingham,Bucks,,MK18 1PB,General Needs,House,1934,Traditional,Natural gas (mains) +41 Addington Road,Buckingham,Bucks,,MK18 1PB,General Needs,House,1934,Traditional,Natural gas (mains) +43 Addington Road,Buckingham,Bucks,,MK18 1PB,General Needs,House,1934,Traditional,Natural gas (mains) +2 Addington Road,Buckingham,Bucks,,MK18 1PD,General Needs,House,1934,Traditional,Natural gas (mains) +10 Addington Road,Buckingham,Bucks,,MK18 1PD,General Needs,House,1934,Traditional,Natural gas (mains) +12 Addington Road,Buckingham,Bucks,,MK18 1PD,General Needs,House,1934,Traditional,Natural gas (mains) +16 Addington Road,Buckingham,Bucks,,MK18 1PD,General Needs,House,1934,Traditional,Natural gas (mains) +26 Addington Road,Buckingham,Bucks,,MK18 1PD,General Needs,House,1934,Traditional,Natural gas (mains) +30 Addington Road,Buckingham,Bucks,,MK18 1PD,General Needs,House,1934,Traditional,Natural gas (mains) +42 Addington Road,Buckingham,Bucks,,MK18 1PD,General Needs,House,1934,Traditional,Natural gas (mains) +44 Addington Road,Buckingham,Bucks,,MK18 1PD,General Needs,House,1934,Traditional,Natural gas (mains) +46 Addington Road,Buckingham,Bucks,,MK18 1PD,General Needs,House,1934,Traditional,Natural gas (mains) +2 South Hall,Maids Moreton,Buckingham,,MK18 1QB,General Needs,House,1966,Traditional,Natural gas (mains) +5 South Hall,Maids Moreton,Buckingham,,MK18 1QB,General Needs,House,1966,Traditional,Natural gas (mains) +10 South Hall,Maids Moreton,Buckingham,,MK18 1QB,General Needs,Bungalow,1966,Traditional,Natural gas (mains) +11 South Hall,Maids Moreton,Buckingham,,MK18 1QB,General Needs,Bungalow,1966,Traditional,Natural gas (mains) +12 South Hall,Maids Moreton,Buckingham,,MK18 1QB,General Needs,Bungalow,1966,Traditional,Natural gas (mains) +13 South Hall,Maids Moreton,Buckingham,,MK18 1QB,General Needs,Bungalow,1966,Traditional,Natural gas (mains) +14 South Hall,Maids Moreton,Buckingham,,MK18 1QB,General Needs,Bungalow,1966,Traditional,Natural gas (mains) +2 Church Close,Maids Moreton,Buckingham,,MK18 1QG,General Needs,House,1953,Traditional,Natural gas (mains) +5 Church Close,Maids Moreton,Buckingham,,MK18 1QG,General Needs,House,1953,Traditional,Natural gas (mains) +7 Church Close,Maids Moreton,Buckingham,,MK18 1QG,General Needs,House,1953,Traditional,Natural gas (mains) +8 Church Close,Maids Moreton,Buckingham,,MK18 1QG,General Needs,House,1953,Traditional,Natural gas (mains) +10 Church Close,Maids Moreton,Buckingham,,MK18 1QG,General Needs,Flat,1972,Traditional,Natural gas (mains) +11 Church Close,Maids Moreton,Buckingham,,MK18 1QG,General Needs,Flat,1972,Traditional,Natural gas (mains) +12 Church Close,Maids Moreton,Buckingham,,MK18 1QG,General Needs,Flat,1972,Traditional,Natural gas (mains) +13 Church Close,Maids Moreton,Buckingham,,MK18 1QG,General Needs,Flat,1972,Traditional,Natural gas (mains) +14 Church Close,Maids Moreton,Buckingham,,MK18 1QG,General Needs,Flat,1972,Traditional,Natural gas (mains) +15 Church Close,Maids Moreton,Buckingham,,MK18 1QG,General Needs,Flat,1972,Traditional,Natural gas (mains) +16 Church Close,Maids Moreton,Buckingham,,MK18 1QG,General Needs,Flat,1972,Traditional,Natural gas (mains) +17 Church Close,Maids Moreton,Buckingham,,MK18 1QG,General Needs,Flat,1972,Traditional,Natural gas (mains) +18 Church Close,Maids Moreton,Buckingham,,MK18 1QG,General Needs,Flat,1972,Traditional,Natural gas (mains) +19 Church Close,Maids Moreton,Buckingham,,MK18 1QG,General Needs,Flat,1972,Traditional,Natural gas (mains) +20 Church Close,Maids Moreton,Buckingham,,MK18 1QG,General Needs,Flat,1972,Traditional,Natural gas (mains) +21 Church Close,Maids Moreton,Buckingham,,MK18 1QG,General Needs,Flat,1972,Traditional,Natural gas (mains) +22 Church Close,Maids Moreton,Buckingham,,MK18 1QG,General Needs,Flat,1972,Traditional,Natural gas (mains) +23 Church Close,Maids Moreton,Buckingham,,MK18 1QG,General Needs,Flat,1972,Traditional,Natural gas (mains) +25 Church Close,Maids Moreton,Buckingham,,MK18 1QG,General Needs,Flat,1972,Traditional,Natural gas (mains) +8 The Pightle,Main Street,Maids Moreton,Buckingham,MK18 1QP,General Needs,House,1920,Traditional,Natural gas (mains) +9 The Pightle,Main Street,Maids Moreton,Buckingham,MK18 1QP,General Needs,House,1920,Traditional,Natural gas (mains) +1 The Leys,Main Street,Maids Moreton,Buckingham,MK18 1QT,General Needs,House,1949,Traditional,Natural gas (mains) +3 Hebridean,Buckingham,,,MK18 1SA,General Needs,House,2011,Traditional,Natural gas (mains) +5 Hebridean,Buckingham,,,MK18 1SA,General Needs,House,2011,Traditional,Natural gas (mains) +7 Hebridean,Buckingham,,,MK18 1SA,General Needs,House,2011,Traditional,Natural gas (mains) +8 Hebridean,Buckingham,,,MK18 1SA,General Needs,House,2011,Traditional,Natural gas (mains) +9 Hebridean,Buckingham,,,MK18 1SA,General Needs,House,2011,Traditional,Natural gas (mains) +10 Hebridean,Buckingham,,,MK18 1SA,General Needs,House,2011,Traditional,Natural gas (mains) +11 Hebridean,Buckingham,,,MK18 1SA,General Needs,Flat,2011,Traditional,Natural gas (mains) +2 Hill Radnor,Buckingham,,,MK18 1SJ,General Needs,Flat,2010,Traditional,Natural gas (mains) +4 Hill Radnor,Buckingham,,,MK18 1SJ,General Needs,Flat,2010,Traditional,Natural gas (mains) +6 Hill Radnor,Buckingham,,,MK18 1SJ,General Needs,Flat,2010,Traditional,Natural gas (mains) +8 Hill Radnor,Buckingham,,,MK18 1SJ,General Needs,Flat,2010,Traditional,Natural gas (mains) +10 Hill Radnor,Buckingham,,,MK18 1SJ,General Needs,Flat,2010,Traditional,Natural gas (mains) +12 Hill Radnor,Buckingham,,,MK18 1SJ,General Needs,Flat,2010,Traditional,Natural gas (mains) +14 Hill Radnor,Buckingham,,,MK18 1SJ,General Needs,Flat,2010,Traditional,Natural gas (mains) +16 Hill Radnor,Buckingham,,,MK18 1SJ,General Needs,Flat,2010,Traditional,Natural gas (mains) +21 Hill Radnor,Buckingham,,,MK18 1SJ,General Needs,House,2010,Traditional,Natural gas (mains) +2 Mary Mac Manus Drive,Buckingham,Bucks,,MK18 1UN,Independent Living,Bungalow,1986,Traditional,Natural gas (mains) +4 Mary Mac Manus Drive,Buckingham,Bucks,,MK18 1UN,Independent Living,Bungalow,1986,Traditional,Natural gas (mains) +6 Mary Mac Manus Drive,Buckingham,Bucks,,MK18 1UN,General Needs,House,1986,Traditional,Natural gas (mains) +8 Mary Mac Manus Drive,Buckingham,Bucks,,MK18 1UN,General Needs,House,1986,Traditional,Natural gas (mains) +10 Mary Mac Manus Drive,Buckingham,Bucks,,MK18 1UN,General Needs,House,1986,Traditional,Natural gas (mains) +14 Mary Mac Manus Drive,Buckingham,Bucks,,MK18 1UN,Independent Living,Bungalow,1986,Traditional,Natural gas (mains) +16 Mary Mac Manus Drive,Buckingham,Bucks,,MK18 1UN,Independent Living,Bungalow,1986,Traditional,Natural gas (mains) +18 Mary Mac Manus Drive,Buckingham,Bucks,,MK18 1UN,Independent Living,Bungalow,1986,Traditional,Natural gas (mains) +20 Mary Mac Manus Drive,Buckingham,Bucks,,MK18 1UN,Independent Living,Bungalow,1986,Traditional,Natural gas (mains) +22 Mary Mac Manus Drive,Buckingham,Bucks,,MK18 1UN,Independent Living,Bungalow,1986,Traditional,Natural gas (mains) +24 Mary Mac Manus Drive,Buckingham,Bucks,,MK18 1UN,Independent Living,Bungalow,1986,Traditional,Natural gas (mains) +1 Mary Mac Manus Drive,Buckingham,Bucks,,MK18 1UW,Independent Living,Bungalow,1984,Traditional,Natural gas (mains) +3 Mary Mac Manus Drive,Buckingham,Bucks,,MK18 1UW,Independent Living,Bungalow,1984,Traditional,Natural gas (mains) +5 Mary Mac Manus Drive,Buckingham,Bucks,,MK18 1UW,Independent Living,Bungalow,1984,Traditional,Natural gas (mains) +7 Mary Mac Manus Drive,Buckingham,Bucks,,MK18 1UW,Independent Living,Bungalow,1984,Traditional,Natural gas (mains) +9 Mary Mac Manus Drive,Buckingham,Bucks,,MK18 1UW,Independent Living,Bungalow,1984,Traditional,Natural gas (mains) +11 Mary Mac Manus Drive,Buckingham,Bucks,,MK18 1UW,Independent Living,Bungalow,1984,Traditional,Natural gas (mains) +13 Mary Mac Manus Drive,Buckingham,Bucks,,MK18 1UW,Independent Living,Bungalow,1986,Traditional,Natural gas (mains) +15 Mary Mac Manus Drive,Buckingham,Bucks,,MK18 1UW,Independent Living,Bungalow,1986,Traditional,Natural gas (mains) +17 Mary Mac Manus Drive,Buckingham,Bucks,,MK18 1UW,Independent Living,Bungalow,1986,Traditional,Natural gas (mains) +2 Shetland,Buckingham,,,MK18 1WG,General Needs,Flat,2010,Traditional,Natural gas (mains) +9 Shetland,Buckingham,,,MK18 1WG,General Needs,Flat,2010,Traditional,Natural gas (mains) +11 Shetland,Buckingham,,,MK18 1WG,General Needs,House,2010,Traditional,Natural gas (mains) +15 Shetland,Buckingham,,,MK18 1WG,General Needs,House,2010,Traditional,Natural gas (mains) +17 Shetland,Buckingham,,,MK18 1WG,General Needs,Flat,2010,Traditional,Natural gas (mains) +19 Shetland,Buckingham,,,MK18 1WG,General Needs,House,2010,Traditional,Natural gas (mains) +21 Shetland,Buckingham,,,MK18 1WG,General Needs,House,2010,Traditional,Natural gas (mains) +23 Shetland,Buckingham,,,MK18 1WG,General Needs,House,2010,Traditional,Natural gas (mains) +31 Bucca's Lane,Buckingham,,,MK18 1XU,General Needs,House,2021,Traditional,Natural gas (mains) +1 Wulfstan Close,Buckingham,,,MK18 1YB,General Needs,Flat,2021,Traditional,Natural gas (mains) +2 Wulfstan Close,Buckingham,,,MK18 1YB,General Needs,Flat,2021,Traditional,Natural gas (mains) +3 Wulfstan Close,Buckingham,,,MK18 1YB,General Needs,Flat,2021,Traditional,Natural gas (mains) +4 Wulfstan Close,Buckingham,,,MK18 1YB,General Needs,Flat,2021,Traditional,Natural gas (mains) +5 Wulfstan Close,Buckingham,,,MK18 1YB,General Needs,Flat,2021,Traditional,Natural gas (mains) +6 Wulfstan Close,Buckingham,,,MK18 1YB,General Needs,Flat,2021,Traditional,Natural gas (mains) +7 Wulfstan Close,Buckingham,,,MK18 1YB,General Needs,Flat,2021,Traditional,Natural gas (mains) +8 Wulfstan Close,Buckingham,,,MK18 1YB,General Needs,Flat,2021,Traditional,Natural gas (mains) +9 Wulfstan Close,Buckingham,,,MK18 1YB,General Needs,Flat,2021,Traditional,Natural gas (mains) +20 Wulfstan Close,Buckingham,,,MK18 1YB,General Needs,House,2020,Traditional,Natural gas (mains) +21 Wulfstan Close,Buckingham,,,MK18 1YB,General Needs,House,2020,Traditional,Natural gas (mains) +24 Wulfstan Close,Buckingham,,,MK18 1YB,General Needs,House,2020,Traditional,Natural gas (mains) +25 Wulfstan Close,Buckingham,,,MK18 1YB,General Needs,House,2020,Traditional,Natural gas (mains) +26 Wulfstan Close,Buckingham,,,MK18 1YB,General Needs,House,2020,Traditional,Natural gas (mains) +27 Wulfstan Close,Buckingham,,,MK18 1YB,General Needs,House,2020,Traditional,Natural gas (mains) +28 Wulfstan Close,Buckingham,,,MK18 1YB,General Needs,House,2020,Traditional,Natural gas (mains) +29 Wulfstan Close,Buckingham,,,MK18 1YB,General Needs,House,2020,Traditional,Natural gas (mains) +6 Dunstan Street,Buckingham,,,MK18 1YD,General Needs,Flat,2021,Traditional,Natural gas (mains) +8 Dunstan Street,Buckingham,,,MK18 1YD,General Needs,House,2021,Traditional,Natural gas (mains) +5 Botolph Mews,Buckingham,,,MK18 1YU,General Needs,House,2020,Traditional,Natural gas (mains) +6 Botolph Mews,Buckingham,,,MK18 1YU,General Needs,House,2020,Traditional,Natural gas (mains) +1 Kings Sutton Square,Buckingham,,,MK18 1ZE,General Needs,Flat,2021,Traditional,Natural gas (mains) +3 Kings Sutton Square,Buckingham,,,MK18 1ZE,General Needs,Flat,2021,Traditional,Natural gas (mains) +5 Kings Sutton Square,Buckingham,,,MK18 1ZE,General Needs,Flat,2021,Traditional,Natural gas (mains) +7 Kings Sutton Square,Buckingham,,,MK18 1ZE,General Needs,Flat,2021,Traditional,Natural gas (mains) +9 Kings Sutton Square,Buckingham,,,MK18 1ZE,General Needs,Flat,2021,Traditional,Natural gas (mains) +11 Kings Sutton Square,Buckingham,,,MK18 1ZE,General Needs,Flat,2021,Traditional,Natural gas (mains) +15 Kings Sutton Square,Buckingham,,,MK18 1ZE,General Needs,Flat,2021,Traditional,Natural gas (mains) +17 Kings Sutton Square,Buckingham,,,MK18 1ZE,General Needs,Flat,2021,Traditional,Natural gas (mains) +19 Kings Sutton Square,Buckingham,,,MK18 1ZE,General Needs,Flat,2021,Traditional,Natural gas (mains) +21 Kings Sutton Square,Buckingham,,,MK18 1ZE,General Needs,Flat,2021,Traditional,Natural gas (mains) +2 Edburg Street,Buckingham,,,MK18 1ZG,General Needs,House,2020,Traditional,Natural gas (mains) +4 Edburg Street,Buckingham,,,MK18 1ZG,General Needs,House,2020,Traditional,Natural gas (mains) +6 Edburg Street,Buckingham,,,MK18 1ZG,General Needs,House,2020,Traditional,Natural gas (mains) +8 Edburg Street,Buckingham,,,MK18 1ZG,General Needs,House,2020,Traditional,Natural gas (mains) +2 Frideswide Street,Buckingham,,,MK18 1ZH,General Needs,House,2021,Traditional,Natural gas (mains) +4 Frideswide Street,Buckingham,,,MK18 1ZH,General Needs,House,2021,Traditional,Natural gas (mains) +6 Frideswide Street,Buckingham,,,MK18 1ZH,General Needs,House,2021,Traditional,Natural gas (mains) +8 Frideswide Street,Buckingham,,,MK18 1ZH,General Needs,House,2021,Traditional,Natural gas (mains) +10 Frideswide Street,Buckingham,,,MK18 1ZH,General Needs,House,2021,Traditional,Natural gas (mains) +3 Athelstan Street,Buckingham,,,MK18 1ZX,General Needs,Flat over garage,2022,Traditional,Natural gas (mains) +5 Athelstan Street,Buckingham,,,MK18 1ZX,General Needs,House,2022,Traditional,Natural gas (mains) +7 Athelstan Street,Buckingham,,,MK18 1ZX,General Needs,House,2022,Traditional,Natural gas (mains) +9 Athelstan Street,Buckingham,,,MK18 1ZX,General Needs,House,2022,Traditional,Natural gas (mains) +11 Athelstan Street,Buckingham,,,MK18 1ZX,General Needs,House,2022,Traditional,Natural gas (mains) +15 Athelstan Street,Buckingham,,,MK18 1ZX,General Needs,House,2022,Traditional,Natural gas (mains) +17 Athelstan Street,Buckingham,,,MK18 1ZX,General Needs,House,2022,Traditional,Natural gas (mains) +19 Athelstan Street,Buckingham,,,MK18 1ZX,General Needs,House,2022,Traditional,Natural gas (mains) +21 Athelstan Street,Buckingham,,,MK18 1ZX,General Needs,House,2022,Traditional,Natural gas (mains) +23 Athelstan Street,Buckingham,,,MK18 1ZX,General Needs,Flat over garage,2022,Traditional,Natural gas (mains) +3 Old Springfields,Padbury,Buckingham,,MK18 2AR,General Needs,House,1929,Traditional,Natural gas (mains) +4 Old Springfields,Padbury,Buckingham,,MK18 2AR,General Needs,House,1929,Traditional,Natural gas (mains) +5 Old Springfields,Padbury,Buckingham,,MK18 2AR,General Needs,House,1929,Traditional,Natural gas (mains) +9 Old Springfields,Padbury,Buckingham,,MK18 2AR,General Needs,House,1920,Traditional,Natural gas (mains) +34 Springfields,Padbury,Buckingham,,MK18 2AS,General Needs,Bungalow,1972,Traditional,Natural gas (mains) +36 Springfields,Padbury,Buckingham,,MK18 2AS,General Needs,Bungalow,1972,Traditional,Natural gas (mains) +38 Springfields,Padbury,Buckingham,,MK18 2AS,General Needs,Bungalow,1972,Traditional,Natural gas (mains) +40 Springfields,Padbury,Buckingham,,MK18 2AS,General Needs,Bungalow,1968,Traditional,Natural gas (mains) +42 Springfields,Padbury,Buckingham,,MK18 2AS,General Needs,Bungalow,1968,Traditional,Natural gas (mains) +44 Springfields,Padbury,Buckingham,,MK18 2AS,General Needs,Bungalow,1968,Traditional,Natural gas (mains) +48 Springfields,Padbury,Buckingham,,MK18 2AS,General Needs,Bungalow,1968,Traditional,Natural gas (mains) +50 Springfields,Padbury,Buckingham,,MK18 2AS,General Needs,Bungalow,1968,Traditional,Natural gas (mains) +52 Springfields,Padbury,Buckingham,,MK18 2AS,General Needs,Bungalow,1968,Traditional,Natural gas (mains) +54 Springfields,Padbury,Buckingham,,MK18 2AS,General Needs,Bungalow,1968,Traditional,Natural gas (mains) +56 Springfields,Padbury,Buckingham,,MK18 2AS,General Needs,Bungalow,1968,Traditional,Natural gas (mains) +58 Springfields,Padbury,Buckingham,,MK18 2AS,General Needs,Bungalow,1968,Traditional,Natural gas (mains) +62 Springfields,Padbury,Buckingham,,MK18 2AS,General Needs,Bungalow,1968,Traditional,Natural gas (mains) +66 Springfields,Padbury,Buckingham,,MK18 2AS,General Needs,Bungalow,1963,Traditional,Natural gas (mains) +68 Springfields,Padbury,Buckingham,,MK18 2AS,General Needs,Bungalow,1963,Traditional,Natural gas (mains) +70 Springfields,Padbury,Buckingham,,MK18 2AS,General Needs,Bungalow,1963,Traditional,Natural gas (mains) +16 Springfields,Padbury,Buckingham,,MK18 2AT,General Needs,House,1954,Traditional,Natural gas (mains) +18 Springfields,Padbury,Buckingham,,MK18 2AT,General Needs,House,1955,Traditional,Natural gas (mains) +20 Springfields,Padbury,Buckingham,,MK18 2AT,General Needs,House,1955,Traditional,Natural gas (mains) +21 Springfields,Padbury,Buckingham,,MK18 2AT,General Needs,House,1952,Traditional,Natural gas (mains) +23 Springfields,Padbury,Buckingham,,MK18 2AT,General Needs,House,1952,Traditional,Natural gas (mains) +25 Springfields,Padbury,Buckingham,,MK18 2AT,General Needs,House,1952,Traditional,Natural gas (mains) +27 Springfields,Padbury,Buckingham,,MK18 2AT,General Needs,House,1952,Traditional,Natural gas (mains) +29 Springfields,Padbury,Buckingham,,MK18 2AT,General Needs,House,1952,Traditional,Natural gas (mains) +39 Springfields,Padbury,Buckingham,,MK18 2AT,General Needs,House,1956,Traditional,Natural gas (mains) +45 Springfields,Padbury,Buckingham,,MK18 2AT,General Needs,House,1972,Traditional,Natural gas (mains) +47 Springfields,Padbury,Buckingham,,MK18 2AT,General Needs,House,1972,Traditional,Natural gas (mains) +51 Springfields,Padbury,Buckingham,,MK18 2AT,General Needs,Flat,1972,Traditional,Natural gas (mains) +53 Springfields,Padbury,Buckingham,,MK18 2AT,General Needs,Flat,1972,Traditional,Natural gas (mains) +55 Springfields,Padbury,Buckingham,,MK18 2AT,General Needs,Flat,1972,Traditional,Natural gas (mains) +57 Springfields,Padbury,Buckingham,,MK18 2AT,General Needs,Flat,1972,Traditional,Natural gas (mains) +59 Springfields,Padbury,Buckingham,,MK18 2AT,General Needs,Flat,1972,Traditional,Natural gas (mains) +63 Springfields,Padbury,Buckingham,,MK18 2AT,General Needs,Flat,1972,Traditional,Natural gas (mains) +64 Springfields,Padbury,Buckingham,,MK18 2AT,General Needs,Bungalow,1963,Traditional,Natural gas (mains) +65 Springfields,Padbury,Buckingham,,MK18 2AT,General Needs,Flat,1972,Traditional,Natural gas (mains) +69 Springfields,Padbury,Buckingham,,MK18 2AT,General Needs,House,1972,Traditional,Natural gas (mains) +31A Springfields,Padbury,Buckingham,,MK18 2AT,General Needs,House,2017,Traditional,Natural gas (mains) +31B Springfields,Padbury,Buckingham,,MK18 2AT,General Needs,House,2017,Traditional,Natural gas (mains) +33 Springfields,Padbury,Buckingham,,MK18 2AT,General Needs,House,1956,Traditional,None +1 Arnolds Close,Padbury,Buckingham,,MK18 2BG,General Needs,House,1949,Traditional,Natural gas (mains) +3 Arnolds Close,Padbury,Buckingham,,MK18 2BG,General Needs,House,1949,Traditional,Natural gas (mains) +9 Arnolds Close,Padbury,Buckingham,,MK18 2BG,General Needs,House,1949,Traditional,Natural gas (mains) +10 Arnolds Close,Padbury,Buckingham,,MK18 2BG,General Needs,House,1949,Traditional,Natural gas (mains) +9 Nash Road,Thornborough,Buckingham,,MK18 2DP,General Needs,House,1936,Traditional,ASHP +1 Nash Road,Thornborough,Buckingham,,MK18 2DP,General Needs,House,1919,Traditional,LPG +5 Nash Road,Thornborough,Buckingham,,MK18 2DP,General Needs,House,1919,Traditional,LPG +8 Nash Road,Thornborough,Buckingham,,MK18 2DP,General Needs,House,1936,Traditional,LPG +7 Nash Road,Thornborough,Buckingham,,MK18 2DP,General Needs,House,1936,Traditional,Solid fuel +7 Thornhill,Thornborough,Buckingham,,MK18 2DS,General Needs,House,1949,Traditional,ASHP +23 Thornhill,Thornborough,Buckingham,,MK18 2DS,General Needs,Bungalow,1978,Traditional,ASHP +27 Thornhill,Thornborough,Buckingham,,MK18 2DS,General Needs,Bungalow,1978,Traditional,ASHP +14 Thornhill,Thornborough,Buckingham,,MK18 2DS,General Needs,House,1949,Traditional,LPG +26 Thornhill,Thornborough,Buckingham,,MK18 2DS,General Needs,Bungalow,1978,Traditional,LPG +13 Thornhill,Thornborough,Buckingham,,MK18 2DS,General Needs,House,1949,Traditional,Oil +17 Thornhill,Thornborough,Buckingham,,MK18 2DS,General Needs,House,1949,Traditional,Oil +22 Thornhill,Thornborough,Buckingham,,MK18 2DS,General Needs,House,1957,Traditional,Oil +24 Thornhill,Thornborough,Buckingham,,MK18 2DS,General Needs,Bungalow,1978,Traditional,Oil +25 Thornhill,Thornborough,Buckingham,,MK18 2DS,General Needs,Bungalow,1978,Traditional,Oil +9 Thornhill,Thornborough,Buckingham,,MK18 2DS,General Needs,House,1949,Traditional,Storage heaters +23 Boundary Road,Padbury,,,MK18 2GT,General Needs,House,2020,Traditional,Natural gas (mains) +25 Boundary Road,Padbury,,,MK18 2GT,General Needs,House,2020,Traditional,Natural gas (mains) +4 Pavilion Close,Padbury,,,MK18 2GU,General Needs,House,2020,Traditional,Natural gas (mains) +5 Pavilion Close,Padbury,,,MK18 2GU,General Needs,House,2020,Traditional,Natural gas (mains) +6 Pavilion Close,Padbury,,,MK18 2GU,General Needs,House,2020,Traditional,Natural gas (mains) +7 Pavilion Close,Padbury,,,MK18 2GU,General Needs,House,2020,Traditional,Natural gas (mains) +8 Pavilion Close,Padbury,,,MK18 2GU,General Needs,House,2020,Traditional,Natural gas (mains) +9 Pavilion Close,Padbury,,,MK18 2GU,General Needs,Maisonette,2020,Traditional,Natural gas (mains) +10 Pavilion Close,Padbury,,,MK18 2GU,General Needs,Flat,2020,Traditional,Natural gas (mains) +6 Northlands Road,Adstock,Buckingham,,MK18 2JH,General Needs,House,1957,Traditional,Natural gas (mains) +8 Northlands Road,Adstock,Buckingham,,MK18 2JH,General Needs,House,1957,Traditional,Natural gas (mains) +10 Northlands Road,Adstock,Buckingham,,MK18 2JH,General Needs,Bungalow,1970,Traditional,Natural gas (mains) +12 Northlands Road,Adstock,Buckingham,,MK18 2JH,General Needs,Bungalow,1970,Traditional,Natural gas (mains) +3 Northlands Road,Adstock,Buckingham,,MK18 2JJ,General Needs,House,1948,Traditional,Natural gas (mains) +9 Northlands Road,Adstock,Buckingham,,MK18 2JJ,General Needs,Bungalow,1970,Traditional,Natural gas (mains) +11 Northlands Road,Adstock,Buckingham,,MK18 2JJ,General Needs,Bungalow,1970,Traditional,Natural gas (mains) +19 Northlands Road,Adstock,Buckingham,,MK18 2JJ,General Needs,House,1970,Traditional,Natural gas (mains) +1 West Street,Adstock,Buckingham,,MK18 2JQ,General Needs,House,1948,Traditional,Natural gas (mains) +7 Chestnut View,East Claydon,Buckingham,,MK18 2LT,General Needs,House,1969,Traditional,LPG +4 Chestnut View,East Claydon,Buckingham,,MK18 2LT,General Needs,Bungalow,1969,Traditional,Natural gas (mains) +1 Chestnut View,East Claydon,Buckingham,,MK18 2LT,General Needs,Bungalow,1969,Traditional,Storage heaters +2 Chestnut View,East Claydon,Buckingham,,MK18 2LT,General Needs,Bungalow,1969,Traditional,Storage heaters +3 Chestnut View,East Claydon,Buckingham,,MK18 2LT,General Needs,Bungalow,1969,Traditional,Storage heaters +7 Addison Road,Steeple Claydon,Buckingham,,MK18 2NP,General Needs,House,1934,Traditional,Natural gas (mains) +10 Addison Road,Steeple Claydon,Buckingham,,MK18 2NP,General Needs,House,1938,Traditional,Natural gas (mains) +12 Addison Road,Steeple Claydon,Buckingham,,MK18 2NP,General Needs,House,1938,Traditional,Natural gas (mains) +13 Addison Road,Steeple Claydon,Buckingham,,MK18 2NP,General Needs,House,1937,Traditional,Natural gas (mains) +17 Addison Road,Steeple Claydon,Buckingham,,MK18 2NP,General Needs,House,1937,Traditional,Natural gas (mains) +16 West Street,Steeple Claydon,Buckingham,,MK18 2NT,General Needs,House,1936,Traditional,Natural gas (mains) +20 West Street,Steeple Claydon,Buckingham,,MK18 2NT,General Needs,House,1936,Traditional,Natural gas (mains) +22 West Street,Steeple Claydon,Buckingham,,MK18 2NT,General Needs,House,1936,Traditional,Natural gas (mains) +1 Greenwood Place,Steeple Claydon,Buckingham,,MK18 2NX,General Needs,House,1936,Traditional,Natural gas (mains) +7 Greenwood Place,Steeple Claydon,Buckingham,,MK18 2NX,General Needs,House,1936,Traditional,Natural gas (mains) +8 Greenwood Place,Steeple Claydon,Buckingham,,MK18 2NX,General Needs,House,1936,Traditional,Natural gas (mains) +6 Victory Road,Steeple Claydon,Buckingham,,MK18 2NY,General Needs,House,1949,Traditional,Natural gas (mains) +8 Victory Road,Steeple Claydon,Buckingham,,MK18 2NY,General Needs,Bungalow,1975,Traditional,Natural gas (mains) +10 Victory Road,Steeple Claydon,Buckingham,,MK18 2NY,General Needs,Bungalow,1975,Traditional,Natural gas (mains) +14 Victory Road,Steeple Claydon,Buckingham,,MK18 2NY,General Needs,Bungalow,1975,Traditional,Natural gas (mains) +16 Victory Road,Steeple Claydon,Buckingham,,MK18 2NY,General Needs,Bungalow,1975,Traditional,Natural gas (mains) +20 Victory Road,Steeple Claydon,Buckingham,,MK18 2NY,General Needs,Bungalow,1975,Traditional,Natural gas (mains) +22 Victory Road,Steeple Claydon,Buckingham,,MK18 2NY,General Needs,Bungalow,1975,Traditional,Natural gas (mains) +24 Victory Road,Steeple Claydon,Buckingham,,MK18 2NY,General Needs,Bungalow,1975,Traditional,Natural gas (mains) +28 Victory Road,Steeple Claydon,Buckingham,,MK18 2NY,General Needs,Bungalow,1975,Traditional,Natural gas (mains) +30 Victory Road,Steeple Claydon,Buckingham,,MK18 2NY,General Needs,Bungalow,1975,Traditional,Natural gas (mains) +32 Victory Road,Steeple Claydon,Buckingham,,MK18 2NY,General Needs,Bungalow,1975,Traditional,Natural gas (mains) +34 Victory Road,Steeple Claydon,Buckingham,,MK18 2NY,General Needs,Bungalow,1975,Traditional,Natural gas (mains) +36 Victory Road,Steeple Claydon,Buckingham,,MK18 2NY,General Needs,Bungalow,1975,Traditional,Natural gas (mains) +42 Victory Road,Steeple Claydon,Buckingham,,MK18 2NY,General Needs,House,1984,Traditional,Natural gas (mains) +50 Victory Road,Steeple Claydon,Buckingham,,MK18 2NY,General Needs,House,1984,Traditional,Natural gas (mains) +18 Victory Road,Steeple Claydon,Buckingham,,MK18 2NY,General Needs,Bungalow,1975,Traditional,Storage heaters +26 Victory Road,Steeple Claydon,Buckingham,,MK18 2NY,General Needs,Bungalow,1975,Traditional,Storage heaters +1 Falklands Close,Steeple Claydon,Buckingham,,MK18 2PN,General Needs,Bungalow,1985,Traditional,Natural gas (mains) +3 Falklands Close,Steeple Claydon,Buckingham,,MK18 2PN,General Needs,Bungalow,1985,Traditional,Natural gas (mains) +4 Falklands Close,Steeple Claydon,Buckingham,,MK18 2PN,General Needs,House,1985,Traditional,Natural gas (mains) +5 Falklands Close,Steeple Claydon,Buckingham,,MK18 2PN,General Needs,Bungalow,1985,Traditional,Natural gas (mains) +7 Falklands Close,Steeple Claydon,Buckingham,,MK18 2PN,General Needs,Bungalow,1985,Traditional,Natural gas (mains) +8 Falklands Close,Steeple Claydon,Buckingham,,MK18 2PN,General Needs,House,1985,Traditional,Natural gas (mains) +10 Falklands Close,Steeple Claydon,Buckingham,,MK18 2PN,General Needs,House,1984,Traditional,Natural gas (mains) +12 Falklands Close,Steeple Claydon,Buckingham,,MK18 2PN,General Needs,House,1984,Traditional,Natural gas (mains) +11 Vicarage Lane,Steeple Claydon,Buckingham,,MK18 2PR,General Needs,House,1952,Traditional,Natural gas (mains) +13 Vicarage Lane,Steeple Claydon,Buckingham,,MK18 2PR,General Needs,House,1952,Traditional,Natural gas (mains) +18 Vicarage Lane,Steeple Claydon,Buckingham,,MK18 2PR,General Needs,House,1948,Traditional,Natural gas (mains) +29 Vicarage Lane,Steeple Claydon,Buckingham,,MK18 2PR,General Needs,House,1940,Traditional,Natural gas (mains) +33 Vicarage Lane,Steeple Claydon,Buckingham,,MK18 2PR,General Needs,House,1940,Traditional,Natural gas (mains) +43 Vicarage Lane,Steeple Claydon,Buckingham,,MK18 2PR,General Needs,House,1938,Traditional,Natural gas (mains) +62 Vicarage Lane,Steeple Claydon,Buckingham,,MK18 2PR,General Needs,House,1864,Traditional,Natural gas (mains) +64 Vicarage Lane,Steeple Claydon,Buckingham,,MK18 2PR,General Needs,House,1864,Traditional,Natural gas (mains) +66 Vicarage Lane,Steeple Claydon,Buckingham,,MK18 2PR,General Needs,House,1864,Traditional,Natural gas (mains) +2 Coronation Place,Steeple Claydon,Buckingham,,MK18 2PS,General Needs,House,1938,Traditional,Natural gas (mains) +6 Coronation Place,Steeple Claydon,Buckingham,,MK18 2PS,General Needs,House,1938,Traditional,Natural gas (mains) +9 Coronation Place,Steeple Claydon,Buckingham,,MK18 2PS,General Needs,House,1938,Traditional,Natural gas (mains) +2 Cobbetts Mount,Steeple Claydon,Buckingham,,MK18 2PT,General Needs,House,1940,Traditional,Natural gas (mains) +4 Cobbetts Mount,Steeple Claydon,Buckingham,,MK18 2PT,General Needs,House,1940,Traditional,Natural gas (mains) +12 Vicarage Close,Steeple Claydon,Buckingham,,MK18 2PU,General Needs,House,1972,Traditional,ASHP +19 Buckingham Road,Steeple Claydon,Buckingham,,MK18 2QA,General Needs,House,1920,Traditional,Natural gas (mains) +21 Buckingham Road,Steeple Claydon,Buckingham,,MK18 2QA,General Needs,House,1920,Traditional,Natural gas (mains) +33 Buckingham Road,Steeple Claydon,Buckingham,,MK18 2QA,General Needs,House,1920,Traditional,Natural gas (mains) +41 Buckingham Road,Steeple Claydon,Buckingham,,MK18 2QA,General Needs,House,1928,Traditional,Natural gas (mains) +45 Buckingham Road,Steeple Claydon,Buckingham,,MK18 2QA,General Needs,House,1947,Swedish Timber,Natural gas (mains) +2 Buckingham Road,Steeple Claydon,Buckingham,,MK18 2QB,General Needs,Bungalow,1960,Traditional,Natural gas (mains) +4 Buckingham Road,Steeple Claydon,Buckingham,,MK18 2QB,General Needs,Bungalow,1960,Traditional,Natural gas (mains) +6 Buckingham Road,Steeple Claydon,Buckingham,,MK18 2QB,General Needs,Bungalow,1960,Traditional,Natural gas (mains) +8 Buckingham Road,Steeple Claydon,Buckingham,,MK18 2QB,General Needs,Bungalow,1960,Traditional,Natural gas (mains) +10 Buckingham Road,Steeple Claydon,Buckingham,,MK18 2QB,General Needs,Bungalow,1960,Traditional,Natural gas (mains) +11 Buckingham Road,Steeple Claydon,Buckingham,,MK18 2QB,General Needs,House,1920,Traditional,Natural gas (mains) +12 Buckingham Road,Steeple Claydon,Buckingham,,MK18 2QB,General Needs,Bungalow,1960,Traditional,Natural gas (mains) +14 Buckingham Road,Steeple Claydon,Buckingham,,MK18 2QB,General Needs,House,1962,Traditional,Natural gas (mains) +3 St Michaels Way,Steeple Claydon,Buckingham,,MK18 2QD,General Needs,House,1954,Traditional,Natural gas (mains) +5 St Michaels Way,Steeple Claydon,Buckingham,,MK18 2QD,General Needs,House,1954,Traditional,Natural gas (mains) +1 Sandholme,Steeple Claydon,Buckingham,,MK18 2QE,General Needs,House,1962,Traditional,Natural gas (mains) +2 Sandholme,Steeple Claydon,Buckingham,,MK18 2QE,General Needs,House,1962,Traditional,Natural gas (mains) +6 Sandholme,Steeple Claydon,Buckingham,,MK18 2QE,General Needs,House,1962,Traditional,Natural gas (mains) +7 Sandholme,Steeple Claydon,Buckingham,,MK18 2QE,General Needs,House,1962,Traditional,Natural gas (mains) +13 Sandholme,Steeple Claydon,Buckingham,,MK18 2QE,General Needs,House,1971,Traditional,Natural gas (mains) +15 Sandholme,Steeple Claydon,Buckingham,,MK18 2QE,General Needs,House,1971,Traditional,Natural gas (mains) +16 Sandholme,Steeple Claydon,Buckingham,,MK18 2QE,General Needs,House,1971,Traditional,Natural gas (mains) +17 Sandholme,Steeple Claydon,Buckingham,,MK18 2QE,General Needs,House,1971,Traditional,Natural gas (mains) +18 Sandholme,Steeple Claydon,Buckingham,,MK18 2QE,General Needs,House,1971,Traditional,Natural gas (mains) +35 Sandholme,Steeple Claydon,Buckingham,,MK18 2QE,General Needs,House,1967,Traditional,Natural gas (mains) +37 Sandholme,Steeple Claydon,Buckingham,,MK18 2QE,General Needs,House,1967,Traditional,Natural gas (mains) +41 Sandholme,Steeple Claydon,Buckingham,,MK18 2QE,General Needs,House,1967,Traditional,Natural gas (mains) +43 Sandholme,Steeple Claydon,Buckingham,,MK18 2QE,General Needs,House,1967,Traditional,Natural gas (mains) +46 Sandholme,Steeple Claydon,Buckingham,,MK18 2QE,General Needs,House,1969,Traditional,Natural gas (mains) +48 Sandholme,Steeple Claydon,Buckingham,,MK18 2QE,General Needs,House,1969,Traditional,Natural gas (mains) +49 Sandholme,Steeple Claydon,Buckingham,,MK18 2QE,General Needs,House,1970,Traditional,Natural gas (mains) +56 Sandholme,Steeple Claydon,Buckingham,,MK18 2QE,General Needs,House,1970,Traditional,Natural gas (mains) +61 Sandholme,Steeple Claydon,Buckingham,,MK18 2QE,General Needs,Bungalow,1967,Traditional,Natural gas (mains) +62 Sandholme,Steeple Claydon,Buckingham,,MK18 2QE,General Needs,Bungalow,1967,Traditional,Natural gas (mains) +63 Sandholme,Steeple Claydon,Buckingham,,MK18 2QE,General Needs,Bungalow,1967,Traditional,Natural gas (mains) +64 Sandholme,Steeple Claydon,Buckingham,,MK18 2QE,General Needs,Bungalow,1971,Traditional,Natural gas (mains) +65 Sandholme,Steeple Claydon,Buckingham,,MK18 2QE,General Needs,Bungalow,1971,Traditional,Natural gas (mains) +1 Pound Close,Steeple Claydon,Buckingham,,MK18 2QL,General Needs,Bungalow,1987,Traditional,Natural gas (mains) +2 Pound Close,Steeple Claydon,Buckingham,,MK18 2QL,General Needs,Bungalow,1987,Traditional,Natural gas (mains) +3 Pound Close,Steeple Claydon,Buckingham,,MK18 2QL,General Needs,House,1987,Traditional,Natural gas (mains) +4 Pound Close,Steeple Claydon,Buckingham,,MK18 2QL,General Needs,House,1987,Traditional,Natural gas (mains) +5 Pound Close,Steeple Claydon,Buckingham,,MK18 2QL,General Needs,Bungalow,1987,Traditional,Natural gas (mains) +6 Pound Close,Steeple Claydon,Buckingham,,MK18 2QL,General Needs,Bungalow,1987,Traditional,Natural gas (mains) +7 Pound Close,Steeple Claydon,Buckingham,,MK18 2QL,General Needs,Bungalow,1987,Traditional,Natural gas (mains) +8 Pound Close,Steeple Claydon,Buckingham,,MK18 2QL,General Needs,Bungalow,1987,Traditional,Natural gas (mains) +9 Pound Close,Steeple Claydon,Buckingham,,MK18 2QL,General Needs,Bungalow,1987,Traditional,Natural gas (mains) +10 Pound Close,Steeple Claydon,Buckingham,,MK18 2QL,General Needs,Bungalow,1987,Traditional,Natural gas (mains) +1 Oak Leys,Steeple Claydon,Buckingham,Bucks,MK18 2RQ,General Needs,Flat,2013,Traditional,Natural gas (mains) +2 Oak Leys,Steeple Claydon,Buckingham,Bucks,MK18 2RQ,General Needs,Bungalow,2013,Traditional,Natural gas (mains) +3 Oak Leys,Steeple Claydon,Buckingham,Bucks,MK18 2RQ,General Needs,Flat,2013,Traditional,Natural gas (mains) +4 Oak Leys,Steeple Claydon,Buckingham,Bucks,MK18 2RQ,General Needs,Bungalow,2013,Traditional,Natural gas (mains) +5 Oak Leys,Steeple Claydon,Buckingham,Bucks,MK18 2RQ,General Needs,Flat,2013,Traditional,Natural gas (mains) +6 Oak Leys,Steeple Claydon,Buckingham,Bucks,MK18 2RQ,General Needs,House,2013,Traditional,Natural gas (mains) +7 Oak Leys,Steeple Claydon,Buckingham,Bucks,MK18 2RQ,General Needs,Flat,2013,Traditional,Natural gas (mains) +8 Oak Leys,Steeple Claydon,Buckingham,Bucks,MK18 2RQ,General Needs,House,2013,Traditional,Natural gas (mains) +3 Burleys Road,Winslow,Buckingham,,MK18 3AR,General Needs,House,1933,Traditional,Natural gas (mains) +5 Burleys Road,Winslow,Buckingham,,MK18 3AR,General Needs,House,1933,Traditional,Natural gas (mains) +9 Burleys Road,Winslow,Buckingham,,MK18 3AR,General Needs,House,1933,Traditional,Natural gas (mains) +11 Burleys Road,Winslow,Buckingham,,MK18 3AR,General Needs,House,1933,Traditional,Natural gas (mains) +2B Missenden Road,Winslow,Buckingham,,MK18 3AS,General Needs,Bungalow,1961,Traditional,Natural gas (mains) +2 Missenden Road,Winslow,Buckingham,,MK18 3AS,General Needs,House,1956,Traditional,Natural gas (mains) +8 Missenden Road,Winslow,Buckingham,,MK18 3AS,General Needs,House,1956,Traditional,Natural gas (mains) +18 Missenden Road,Winslow,Buckingham,,MK18 3AS,General Needs,Bungalow,1956,Traditional,Natural gas (mains) +20 Missenden Road,Winslow,Buckingham,,MK18 3AS,General Needs,Bungalow,1956,Traditional,Natural gas (mains) +22 Missenden Road,Winslow,Buckingham,,MK18 3AS,General Needs,Bungalow,1956,Traditional,Natural gas (mains) +24 Missenden Road,Winslow,Buckingham,,MK18 3AS,General Needs,Bungalow,1956,Traditional,Natural gas (mains) +26 Missenden Road,Winslow,Buckingham,,MK18 3AS,General Needs,Bungalow,1956,Traditional,Natural gas (mains) +28 Missenden Road,Winslow,Buckingham,,MK18 3AS,General Needs,Bungalow,1956,Traditional,Natural gas (mains) +30 Missenden Road,Winslow,Buckingham,,MK18 3AS,General Needs,Bungalow,1956,Traditional,Natural gas (mains) +32 Missenden Road,Winslow,Buckingham,,MK18 3AS,General Needs,Bungalow,1956,Traditional,Natural gas (mains) +34 Missenden Road,Winslow,Buckingham,,MK18 3AS,General Needs,Bungalow,1956,Traditional,Natural gas (mains) +36 Missenden Road,Winslow,Buckingham,,MK18 3AS,General Needs,Bungalow,1956,Traditional,Natural gas (mains) +38 Missenden Road,Winslow,Buckingham,,MK18 3AS,General Needs,Bungalow,1956,Traditional,Natural gas (mains) +40 Missenden Road,Winslow,Buckingham,,MK18 3AS,General Needs,Bungalow,1956,Traditional,Natural gas (mains) +42 Missenden Road,Winslow,Buckingham,,MK18 3AS,General Needs,Bungalow,1956,Traditional,Natural gas (mains) +44 Missenden Road,Winslow,Buckingham,,MK18 3AS,General Needs,Bungalow,1956,Traditional,Natural gas (mains) +46 Missenden Road,Winslow,Buckingham,,MK18 3AS,General Needs,House,1956,Traditional,Natural gas (mains) +54 Missenden Road,Winslow,Buckingham,,MK18 3AS,General Needs,House,1956,Traditional,Natural gas (mains) +5A Missenden Road,Winslow,Buckingham,,MK18 3AT,General Needs,Flat,1963,Traditional,Natural gas (mains) +7A Missenden Road,Winslow,Buckingham,,MK18 3AT,General Needs,Flat,1963,Traditional,Natural gas (mains) +11A Missenden Road,Winslow,Buckingham,,MK18 3AT,General Needs,Bungalow,1960,Traditional,Natural gas (mains) +9 Missenden Road,Winslow,Buckingham,,MK18 3AT,General Needs,Bungalow,1960,Traditional,Natural gas (mains) +11 Missenden Road,Winslow,Buckingham,,MK18 3AT,General Needs,Bungalow,1960,Traditional,Natural gas (mains) +17 Missenden Road,Winslow,Buckingham,,MK18 3AT,General Needs,Bungalow,1956,Traditional,Natural gas (mains) +19 Missenden Road,Winslow,Buckingham,,MK18 3AT,General Needs,Bungalow,1956,Traditional,Natural gas (mains) +21 Missenden Road,Winslow,Buckingham,,MK18 3AT,General Needs,Bungalow,1956,Traditional,Natural gas (mains) +23 Missenden Road,Winslow,Buckingham,,MK18 3AT,General Needs,Bungalow,1956,Traditional,Natural gas (mains) +29 Missenden Road,Winslow,Buckingham,,MK18 3AT,General Needs,House,1956,Traditional,Natural gas (mains) +39 Missenden Road,Winslow,Buckingham,,MK18 3AT,General Needs,House,1956,Traditional,Natural gas (mains) +2 Western Lane,Winslow,Buckingham,,MK18 3AU,General Needs,House,1928,Traditional,Natural gas (mains) +4 Western Lane,Winslow,Buckingham,,MK18 3AU,General Needs,House,1928,Traditional,Natural gas (mains) +18 Western Lane,Winslow,Buckingham,,MK18 3AU,General Needs,House,1921,Traditional,Natural gas (mains) +20 Western Lane,Winslow,Buckingham,,MK18 3AU,General Needs,House,1921,Traditional,Natural gas (mains) +22 Western Lane,Winslow,Buckingham,,MK18 3AU,General Needs,House,1921,Traditional,Natural gas (mains) +26 Western Lane,Winslow,Buckingham,,MK18 3AU,General Needs,House,1950,Traditional,Natural gas (mains) +28 Western Lane,Winslow,Buckingham,,MK18 3AU,General Needs,House,1950,Traditional,Natural gas (mains) +30 Western Lane,Winslow,Buckingham,,MK18 3AU,General Needs,House,1950,Traditional,Natural gas (mains) +5 Demoram Close,Winslow,Buckingham,,MK18 3AY,General Needs,House,1951,Traditional,Natural gas (mains) +6 Demoram Close,Winslow,Buckingham,,MK18 3AY,General Needs,House,1951,Traditional,Natural gas (mains) +8 Demoram Close,Winslow,Buckingham,,MK18 3AY,General Needs,House,1951,Traditional,Natural gas (mains) +13 Demoram Close,Winslow,Buckingham,,MK18 3AY,General Needs,House,1951,Traditional,Natural gas (mains) +15 Demoram Close,Winslow,Buckingham,,MK18 3AY,General Needs,House,1951,Traditional,Natural gas (mains) +22 Demoram Close,Winslow,Buckingham,,MK18 3AY,General Needs,House,1951,Traditional,Natural gas (mains) +24 Demoram Close,Winslow,Buckingham,,MK18 3AY,General Needs,House,1951,Traditional,Natural gas (mains) +11 Western Lane,Winslow,Buckingham,,MK18 3AZ,General Needs,House,1950,Traditional,Natural gas (mains) +15 Burleys Road,Winslow,Buckingham,,MK18 3BA,General Needs,House,1939,Traditional,Natural gas (mains) +17 Burleys Road,Winslow,Buckingham,,MK18 3BA,General Needs,House,1939,Traditional,Natural gas (mains) +19 Burleys Road,Winslow,Buckingham,,MK18 3BA,General Needs,House,1939,Traditional,Natural gas (mains) +21 Burleys Road,Winslow,Buckingham,,MK18 3BA,General Needs,House,1939,Traditional,Natural gas (mains) +1 Verney Road,Winslow,Buckingham,,MK18 3BN,General Needs,House,1939,Traditional,Natural gas (mains) +11 Verney Road,Winslow,Buckingham,,MK18 3BN,General Needs,House,1939,Traditional,Natural gas (mains) +13 Verney Road,Winslow,Buckingham,,MK18 3BN,General Needs,House,1939,Traditional,Natural gas (mains) +17 Verney Road,Winslow,Buckingham,,MK18 3BN,General Needs,House,1939,Traditional,Natural gas (mains) +21 Verney Road,Winslow,Buckingham,,MK18 3BN,General Needs,House,1939,Traditional,Natural gas (mains) +25 Verney Road,Winslow,Buckingham,,MK18 3BN,General Needs,House,1939,Traditional,Natural gas (mains) +6 Granborough Road,Winslow,Buckingham,,MK18 3BP,General Needs,House,1950,Traditional,Natural gas (mains) +12 Granborough Road,Winslow,Buckingham,,MK18 3BP,General Needs,House,1950,Traditional,Natural gas (mains) +18 Granborough Road,Winslow,Buckingham,,MK18 3BP,General Needs,House,1950,Traditional,Natural gas (mains) +15A Park Road,Winslow,Buckingham,,MK18 3DL,General Needs,Bungalow,1975,Traditional,Natural gas (mains) +15B Park Road,Winslow,Buckingham,,MK18 3DL,General Needs,Bungalow,1975,Traditional,Natural gas (mains) +12 Park Road,Winslow,Buckingham,,MK18 3DL,General Needs,Bungalow,1963,Traditional,Natural gas (mains) +13 Park Road,Winslow,Buckingham,,MK18 3DL,General Needs,Bungalow,1963,Traditional,Natural gas (mains) +14 Park Road,Winslow,Buckingham,,MK18 3DL,General Needs,Bungalow,1963,Traditional,Natural gas (mains) +15 Park Road,Winslow,Buckingham,,MK18 3DL,General Needs,Bungalow,1963,Traditional,Natural gas (mains) +16 Park Road,Winslow,Buckingham,,MK18 3DL,General Needs,Bungalow,1963,Traditional,Natural gas (mains) +17 Park Road,Winslow,Buckingham,,MK18 3DL,General Needs,Bungalow,1963,Traditional,Natural gas (mains) +18 Park Road,Winslow,Buckingham,,MK18 3DL,General Needs,Bungalow,1963,Traditional,Natural gas (mains) +19 Park Road,Winslow,Buckingham,,MK18 3DL,General Needs,Bungalow,1963,Traditional,Natural gas (mains) +1A Buckingham Road,Winslow,Buckingham,,MK18 3DT,General Needs,Flat,1975,Traditional,Natural gas (mains) +1B Buckingham Road,Winslow,Buckingham,,MK18 3DT,General Needs,Flat,1975,Traditional,Natural gas (mains) +1D Buckingham Road,Winslow,Buckingham,,MK18 3DT,General Needs,Flat,1975,Traditional,Natural gas (mains) +1 Lowndes Way,Winslow,Buckingham,,MK18 3EJ,General Needs,Bungalow,1965,Traditional,Natural gas (mains) +2 Lowndes Way,Winslow,Buckingham,,MK18 3EJ,General Needs,Bungalow,1965,Traditional,Natural gas (mains) +3 Lowndes Way,Winslow,Buckingham,,MK18 3EJ,General Needs,Bungalow,1965,Traditional,Natural gas (mains) +6 Lowndes Way,Winslow,Buckingham,,MK18 3EJ,General Needs,Bungalow,1965,Traditional,Natural gas (mains) +7 Lowndes Way,Winslow,Buckingham,,MK18 3EJ,General Needs,Bungalow,1965,Traditional,Natural gas (mains) +10 Lowndes Way,Winslow,Buckingham,,MK18 3EJ,General Needs,Bungalow,1965,Traditional,Natural gas (mains) +11 Lowndes Way,Winslow,Buckingham,,MK18 3EJ,General Needs,Bungalow,1965,Traditional,Natural gas (mains) +16 Lowndes Way,Winslow,Buckingham,,MK18 3EJ,General Needs,Bungalow,1965,Traditional,Natural gas (mains) +17 Lowndes Way,Winslow,Buckingham,,MK18 3EJ,General Needs,Bungalow,1965,Traditional,Natural gas (mains) +18 Lowndes Way,Winslow,Buckingham,,MK18 3EJ,General Needs,Bungalow,1965,Traditional,Natural gas (mains) +19 Lowndes Way,Winslow,Buckingham,,MK18 3EJ,General Needs,Bungalow,1965,Traditional,Natural gas (mains) +23 Lowndes Way,Winslow,Buckingham,,MK18 3EJ,General Needs,Flat,1966,Traditional,Natural gas (mains) +24 Lowndes Way,Winslow,Buckingham,,MK18 3EJ,General Needs,Flat,1966,Traditional,Natural gas (mains) +25 Lowndes Way,Winslow,Buckingham,,MK18 3EJ,General Needs,Maisonette,1966,Traditional,Natural gas (mains) +26 Lowndes Way,Winslow,Buckingham,,MK18 3EJ,General Needs,Maisonette,1966,Traditional,Natural gas (mains) +27 Lowndes Way,Winslow,Buckingham,,MK18 3EJ,General Needs,Maisonette,1966,Traditional,Natural gas (mains) +28 Lowndes Way,Winslow,Buckingham,,MK18 3EJ,General Needs,Maisonette,1966,Traditional,Natural gas (mains) +29 Lowndes Way,Winslow,Buckingham,,MK18 3EJ,General Needs,Flat,1966,Traditional,Natural gas (mains) +30 Lowndes Way,Winslow,Buckingham,,MK18 3EJ,General Needs,Flat,1966,Traditional,Natural gas (mains) +31 Lowndes Way,Winslow,Buckingham,,MK18 3EJ,General Needs,Maisonette,1966,Traditional,Natural gas (mains) +32 Lowndes Way,Winslow,Buckingham,,MK18 3EJ,General Needs,Maisonette,1966,Traditional,Natural gas (mains) +33 Lowndes Way,Winslow,Buckingham,,MK18 3EJ,General Needs,Maisonette,1966,Traditional,Natural gas (mains) +34 Lowndes Way,Winslow,Buckingham,,MK18 3EJ,General Needs,Maisonette,1966,Traditional,Natural gas (mains) +62A Lowndes Way,Winslow,Buckingham,,MK18 3EL,General Needs,Flat,1968,Traditional,Natural gas (mains) +35 Lowndes Way,Winslow,Buckingham,,MK18 3EL,General Needs,Maisonette,1967,Traditional,Natural gas (mains) +37 Lowndes Way,Winslow,Buckingham,,MK18 3EL,General Needs,Flat,1967,Traditional,Natural gas (mains) +38 Lowndes Way,Winslow,Buckingham,,MK18 3EL,General Needs,Flat,1967,Traditional,Natural gas (mains) +39 Lowndes Way,Winslow,Buckingham,,MK18 3EL,General Needs,Maisonette,1967,Traditional,Natural gas (mains) +40 Lowndes Way,Winslow,Buckingham,,MK18 3EL,General Needs,Maisonette,1967,Traditional,Natural gas (mains) +41 Lowndes Way,Winslow,Buckingham,,MK18 3EL,General Needs,Maisonette,1967,Traditional,Natural gas (mains) +42 Lowndes Way,Winslow,Buckingham,,MK18 3EL,General Needs,Maisonette,1967,Traditional,Natural gas (mains) +44 Lowndes Way,Winslow,Buckingham,,MK18 3EL,General Needs,House,1967,Traditional,Natural gas (mains) +45 Lowndes Way,Winslow,Buckingham,,MK18 3EL,General Needs,Bungalow,1967,Traditional,Natural gas (mains) +46 Lowndes Way,Winslow,Buckingham,,MK18 3EL,General Needs,Bungalow,1967,Traditional,Natural gas (mains) +47 Lowndes Way,Winslow,Buckingham,,MK18 3EL,General Needs,Bungalow,1967,Traditional,Natural gas (mains) +48 Lowndes Way,Winslow,Buckingham,,MK18 3EL,General Needs,Bungalow,1967,Traditional,Natural gas (mains) +49 Lowndes Way,Winslow,Buckingham,,MK18 3EL,General Needs,Bungalow,1967,Traditional,Natural gas (mains) +50 Lowndes Way,Winslow,Buckingham,,MK18 3EL,General Needs,Bungalow,1967,Traditional,Natural gas (mains) +53 Lowndes Way,Winslow,Buckingham,,MK18 3EL,General Needs,Bungalow,1967,Traditional,Natural gas (mains) +54 Lowndes Way,Winslow,Buckingham,,MK18 3EL,General Needs,Bungalow,1967,Traditional,Natural gas (mains) +55 Lowndes Way,Winslow,Buckingham,,MK18 3EL,General Needs,Bungalow,1967,Traditional,Natural gas (mains) +56 Lowndes Way,Winslow,Buckingham,,MK18 3EL,General Needs,Bungalow,1967,Traditional,Natural gas (mains) +57 Lowndes Way,Winslow,Buckingham,,MK18 3EL,General Needs,Bungalow,1967,Traditional,Natural gas (mains) +60 Lowndes Way,Winslow,Buckingham,,MK18 3EL,General Needs,Bungalow,1967,Traditional,Natural gas (mains) +61 Lowndes Way,Winslow,Buckingham,,MK18 3EL,General Needs,Bungalow,1967,Traditional,Natural gas (mains) +64 Lowndes Way,Winslow,Buckingham,,MK18 3EL,General Needs,Bungalow,1972,Traditional,Natural gas (mains) +65 Lowndes Way,Winslow,Buckingham,,MK18 3EL,General Needs,Bungalow,1972,Traditional,Natural gas (mains) +66 Lowndes Way,Winslow,Buckingham,,MK18 3EL,General Needs,Bungalow,1972,Traditional,Natural gas (mains) +67 Lowndes Way,Winslow,Buckingham,,MK18 3EL,General Needs,Bungalow,1972,Traditional,Natural gas (mains) +77 Lowndes Way,Winslow,Buckingham,,MK18 3EL,General Needs,Bungalow,1972,Traditional,Natural gas (mains) +78 Lowndes Way,Winslow,Buckingham,,MK18 3EL,General Needs,Bungalow,1972,Traditional,Natural gas (mains) +79 Lowndes Way,Winslow,Buckingham,,MK18 3EL,General Needs,Bungalow,1972,Traditional,Natural gas (mains) +80 Lowndes Way,Winslow,Buckingham,,MK18 3EL,General Needs,Bungalow,1972,Traditional,Natural gas (mains) +81 Lowndes Way,Winslow,Buckingham,,MK18 3EL,General Needs,Bungalow,1972,Traditional,Natural gas (mains) +82 Lowndes Way,Winslow,Buckingham,,MK18 3EL,General Needs,House,1972,Traditional,Natural gas (mains) +87 Lowndes Way,Winslow,Buckingham,,MK18 3EL,General Needs,Bungalow,1972,Traditional,Natural gas (mains) +88 Lowndes Way,Winslow,Buckingham,,MK18 3EL,General Needs,Bungalow,1972,Traditional,Natural gas (mains) +89 Lowndes Way,Winslow,Buckingham,,MK18 3EL,General Needs,Bungalow,1972,Traditional,Natural gas (mains) +90 Lowndes Way,Winslow,Buckingham,,MK18 3EL,General Needs,Bungalow,1972,Traditional,Natural gas (mains) +92 Lowndes Way,Winslow,Buckingham,,MK18 3EW,General Needs,Bungalow,1974,Traditional,Natural gas (mains) +93 Lowndes Way,Winslow,Buckingham,,MK18 3EW,General Needs,Bungalow,1974,Traditional,Natural gas (mains) +94 Lowndes Way,Winslow,Buckingham,,MK18 3EW,General Needs,Bungalow,1974,Traditional,Natural gas (mains) +95 Lowndes Way,Winslow,Buckingham,,MK18 3EW,General Needs,Bungalow,1974,Traditional,Natural gas (mains) +96 Lowndes Way,Winslow,Buckingham,,MK18 3EW,General Needs,Bungalow,1974,Traditional,Natural gas (mains) +97 Lowndes Way,Winslow,Buckingham,,MK18 3EW,General Needs,Bungalow,1974,Traditional,Natural gas (mains) +98 Lowndes Way,Winslow,Buckingham,,MK18 3EW,General Needs,Bungalow,1974,Traditional,Natural gas (mains) +1 Old Mill Furlong,Winslow,Buckingham,,MK18 3EX,General Needs,House,1980,Traditional,Natural gas (mains) +3 Old Mill Furlong,Winslow,Buckingham,,MK18 3EX,General Needs,House,1980,Traditional,Natural gas (mains) +5 Old Mill Furlong,Winslow,Buckingham,,MK18 3EX,General Needs,House,1980,Traditional,Natural gas (mains) +6 Old Mill Furlong,Winslow,Buckingham,,MK18 3EX,General Needs,House,1980,Traditional,Natural gas (mains) +8 Old Mill Furlong,Winslow,Buckingham,,MK18 3EX,General Needs,House,1980,Traditional,Natural gas (mains) +9 Old Mill Furlong,Winslow,Buckingham,,MK18 3EX,General Needs,House,1980,Traditional,Natural gas (mains) +11 Old Mill Furlong,Winslow,Buckingham,,MK18 3EX,General Needs,House,1980,Traditional,Natural gas (mains) +12 Old Mill Furlong,Winslow,Buckingham,,MK18 3EX,General Needs,House,1980,Traditional,Natural gas (mains) +13 Old Mill Furlong,Winslow,Buckingham,,MK18 3EX,General Needs,House,1980,Traditional,Natural gas (mains) +16 Old Mill Furlong,Winslow,Buckingham,,MK18 3EX,General Needs,House,1980,Traditional,Natural gas (mains) +20 Old Mill Furlong,Winslow,Buckingham,,MK18 3EX,General Needs,House,1980,Traditional,Natural gas (mains) +23 Old Mill Furlong,Winslow,Buckingham,,MK18 3EX,General Needs,House,1987,Traditional,Natural gas (mains) +24 Old Mill Furlong,Winslow,Buckingham,,MK18 3EX,General Needs,House,1987,Traditional,Natural gas (mains) +25 Old Mill Furlong,Winslow,Buckingham,,MK18 3EX,General Needs,House,1987,Traditional,Natural gas (mains) +26 Old Mill Furlong,Winslow,Buckingham,,MK18 3EX,General Needs,Bungalow,1987,Traditional,Natural gas (mains) +27 Old Mill Furlong,Winslow,Buckingham,,MK18 3EX,General Needs,House,1987,Traditional,Natural gas (mains) +28 Old Mill Furlong,Winslow,Buckingham,,MK18 3EX,General Needs,Bungalow,1987,Traditional,Natural gas (mains) +29 Old Mill Furlong,Winslow,Buckingham,,MK18 3EX,General Needs,Bungalow,1987,Traditional,Natural gas (mains) +30 Old Mill Furlong,Winslow,Buckingham,,MK18 3EX,General Needs,House,1987,Traditional,Natural gas (mains) +32 Old Mill Furlong,Winslow,Buckingham,,MK18 3EX,General Needs,House,1987,Traditional,Natural gas (mains) +34 Old Mill Furlong,Winslow,Buckingham,,MK18 3EX,General Needs,House,1987,Traditional,Natural gas (mains) +36 Old Mill Furlong,Winslow,Buckingham,,MK18 3EX,General Needs,Bungalow,1987,Traditional,Natural gas (mains) +38 Old Mill Furlong,Winslow,Buckingham,,MK18 3EX,General Needs,Bungalow,1987,Traditional,Natural gas (mains) +46 Stocks Lane,Winslow,Buckingham,,MK18 3FP,General Needs,Flat,2018,Traditional,Natural gas (mains) +48 Stocks Lane,Winslow,Buckingham,,MK18 3FP,General Needs,Flat,2018,Traditional,Natural gas (mains) +50 Stocks Lane,Winslow,Buckingham,,MK18 3FP,General Needs,Flat,2018,Traditional,Natural gas (mains) +52 Stocks Lane,Winslow,Buckingham,,MK18 3FP,General Needs,Flat,2018,Traditional,Natural gas (mains) +54 Stocks Lane,Winslow,Buckingham,,MK18 3FP,General Needs,Flat,2018,Traditional,Natural gas (mains) +56 Stocks Lane,Winslow,Buckingham,,MK18 3FP,General Needs,Flat,2018,Traditional,Natural gas (mains) +58 Stocks Lane,Winslow,Buckingham,,MK18 3FP,General Needs,Flat,2018,Traditional,Natural gas (mains) +60 Stocks Lane,Winslow,Buckingham,,MK18 3FP,General Needs,Flat,2018,Traditional,Natural gas (mains) +62 Stocks Lane,Winslow,Buckingham,,MK18 3FP,General Needs,Flat,2018,Traditional,Natural gas (mains) +68 Stocks Lane,Winslow,Buckingham,,MK18 3FP,General Needs,Flat,2020,Traditional,Natural gas (mains) +70 Stocks Lane,Winslow,Buckingham,,MK18 3FP,General Needs,Flat,2020,Traditional,Natural gas (mains) +72 Stocks Lane,Winslow,Buckingham,,MK18 3FP,General Needs,Flat,2020,Traditional,Natural gas (mains) +74 Stocks Lane,Winslow,Buckingham,,MK18 3FP,General Needs,Flat,2020,Traditional,Natural gas (mains) +76 Stocks Lane,Winslow,Buckingham,,MK18 3FP,General Needs,Flat,2020,Traditional,Natural gas (mains) +78 Stocks Lane,Winslow,Buckingham,,MK18 3FP,General Needs,Flat,2020,Traditional,Natural gas (mains) +80 Stocks Lane,Winslow,Buckingham,,MK18 3FP,General Needs,Flat,2020,Traditional,Natural gas (mains) +82 Stocks Lane,Winslow,Buckingham,,MK18 3FP,General Needs,Flat,2020,Traditional,Natural gas (mains) +84 Stocks Lane,Winslow,Buckingham,,MK18 3FP,General Needs,Flat,2020,Traditional,Natural gas (mains) +1 Gorse Croft,Winslow,Buckingham,Bucks,MK18 3FQ,General Needs,Flat,2015,Traditional,Natural gas (mains) +2 Gorse Croft,Winslow,Buckingham,Bucks,MK18 3FQ,General Needs,Flat,2015,Traditional,Natural gas (mains) +3 Gorse Croft,Winslow,Buckingham,Bucks,MK18 3FQ,General Needs,Flat,2015,Traditional,Natural gas (mains) +4 Gorse Croft,Winslow,Buckingham,Bucks,MK18 3FQ,General Needs,Flat,2015,Traditional,Natural gas (mains) +5 Gorse Croft,Winslow,Buckingham,Bucks,MK18 3FQ,General Needs,Flat,2015,Traditional,Natural gas (mains) +6 Gorse Croft,Winslow,Buckingham,Bucks,MK18 3FQ,General Needs,Flat,2015,Traditional,Natural gas (mains) +6 Walnut Tree Close,Winslow,Buckingham,Bucks,MK18 3FS,General Needs,House,2011,Traditional,Natural gas (mains) +7 Walnut Tree Close,Winslow,Buckingham,Bucks,MK18 3FS,General Needs,House,2011,Traditional,Natural gas (mains) +8 Walnut Tree Close,Winslow,Buckingham,Bucks,MK18 3FS,General Needs,Flat,2011,Traditional,Natural gas (mains) +9 Walnut Tree Close,Winslow,Buckingham,Bucks,MK18 3FS,General Needs,Flat,2011,Traditional,Natural gas (mains) +10 Walnut Tree Close,Winslow,Buckingham,Bucks,MK18 3FS,General Needs,Flat,2011,Traditional,Natural gas (mains) +11 Walnut Tree Close,Winslow,Buckingham,Bucks,MK18 3FS,General Needs,Flat,2011,Traditional,Natural gas (mains) +12 Walnut Tree Close,Winslow,Buckingham,Bucks,MK18 3FS,General Needs,Flat,2011,Traditional,Natural gas (mains) +14 Walnut Tree Close,Winslow,Buckingham,Bucks,MK18 3FS,General Needs,Flat,2011,Traditional,Natural gas (mains) +15 Walnut Tree Close,Winslow,Buckingham,Bucks,MK18 3FS,General Needs,House,2011,Traditional,Natural gas (mains) +16 Walnut Tree Close,Winslow,Buckingham,Bucks,MK18 3FS,General Needs,House,2011,Traditional,Natural gas (mains) +17 Walnut Tree Close,Winslow,Buckingham,Bucks,MK18 3FS,General Needs,House,2011,Traditional,Natural gas (mains) +18 Walnut Tree Close,Winslow,Buckingham,Bucks,MK18 3FS,General Needs,House,2011,Traditional,Natural gas (mains) +19 Walnut Tree Close,Winslow,Buckingham,Bucks,MK18 3FS,General Needs,House,2011,Traditional,Natural gas (mains) +20 Walnut Tree Close,Winslow,Buckingham,Bucks,MK18 3FS,General Needs,House,2011,Traditional,Natural gas (mains) +26 Brook Dene,Winslow,Buckingham,,MK18 3FU,General Needs,Flat,2016,Traditional,Natural gas (mains) +28 Brook Dene,Winslow,Buckingham,,MK18 3FU,General Needs,Flat,2016,Traditional,Natural gas (mains) +30 Brook Dene,Winslow,Buckingham,,MK18 3FU,General Needs,Flat,2016,Traditional,Natural gas (mains) +32 Brook Dene,Winslow,Buckingham,,MK18 3FU,General Needs,Flat,2016,Traditional,Natural gas (mains) +34 Brook Dene,Winslow,Buckingham,,MK18 3FU,General Needs,Flat,2016,Traditional,Natural gas (mains) +36 Brook Dene,Winslow,Buckingham,,MK18 3FU,General Needs,Flat,2016,Traditional,Natural gas (mains) +72 Brook Dene,Winslow,Buckingham,,MK18 3FU,General Needs,House,2019,Traditional,Natural gas (mains) +74 Brook Dene,Winslow,Buckingham,,MK18 3FU,General Needs,House,2019,Traditional,Natural gas (mains) +76 Brook Dene,Winslow,Buckingham,,MK18 3FU,General Needs,House,2019,Traditional,Natural gas (mains) +78 Brook Dene,Winslow,Buckingham,,MK18 3FU,General Needs,Flat,2021,Traditional,Natural gas (mains) +80 Brook Dene,Winslow,Buckingham,,MK18 3FU,General Needs,Flat,2021,Traditional,Natural gas (mains) +82 Brook Dene,Winslow,Buckingham,,MK18 3FU,General Needs,Flat,2021,Traditional,Natural gas (mains) +84 Brook Dene,Winslow,Buckingham,,MK18 3FU,General Needs,Flat,2021,Traditional,Natural gas (mains) +86 Brook Dene,Winslow,Buckingham,,MK18 3FU,General Needs,Flat,2021,Traditional,Natural gas (mains) +88 Brook Dene,Winslow,Buckingham,,MK18 3FU,General Needs,Flat,2021,Traditional,Natural gas (mains) +90 Brook Dene,Winslow,Buckingham,,MK18 3FU,General Needs,Flat,2021,Traditional,Natural gas (mains) +92 Brook Dene,Winslow,Buckingham,,MK18 3FU,General Needs,Flat,2021,Traditional,Natural gas (mains) +94 Brook Dene,Winslow,Buckingham,,MK18 3FU,General Needs,Flat,2021,Traditional,Natural gas (mains) +104 Brook Dene,Winslow,Buckingham,,MK18 3FU,General Needs,House,2021,Traditional,Natural gas (mains) +106 Brook Dene,Winslow,Buckingham,,MK18 3FU,General Needs,House,2021,Traditional,Natural gas (mains) +108 Brook Dene,Winslow,Buckingham,,MK18 3FU,General Needs,House,2021,Traditional,Natural gas (mains) +110 Brook Dene,Winslow,Buckingham,,MK18 3FU,General Needs,House,2021,Traditional,Natural gas (mains) +112 Brook Dene,Winslow,Buckingham,,MK18 3FU,General Needs,House,2021,Traditional,Natural gas (mains) +114 Brook Dene,Winslow,Buckingham,,MK18 3FU,General Needs,House,2020,Traditional,Natural gas (mains) +116 Brook Dene,Winslow,Buckingham,,MK18 3FU,General Needs,House,2020,Traditional,Natural gas (mains) +118 Brook Dene,Winslow,Buckingham,,MK18 3FU,General Needs,House,2020,Traditional,Natural gas (mains) +1 Horsemead Piece,Winslow,Buckingham,Bucks,MK18 3FW,General Needs,Flat,2011,Traditional,Natural gas (mains) +3 Horsemead Piece,Winslow,Buckingham,Bucks,MK18 3FW,General Needs,Flat,2011,Traditional,Natural gas (mains) +5 Horsemead Piece,Winslow,Buckingham,Bucks,MK18 3FW,General Needs,Flat,2011,Traditional,Natural gas (mains) +7 Horsemead Piece,Winslow,Buckingham,Bucks,MK18 3FW,General Needs,Flat,2011,Traditional,Natural gas (mains) +9 Horsemead Piece,Winslow,Buckingham,Bucks,MK18 3FW,General Needs,Flat,2011,Traditional,Natural gas (mains) +11 Horsemead Piece,Winslow,Buckingham,Bucks,MK18 3FW,General Needs,Flat,2011,Traditional,Natural gas (mains) +3 Browns Close,Winslow,Buckingham,Bucks,MK18 3FY,General Needs,House,2011,Traditional,Natural gas (mains) +4 Browns Close,Winslow,Buckingham,Bucks,MK18 3FY,General Needs,House,2011,Traditional,Natural gas (mains) +5 Browns Close,Winslow,Buckingham,Bucks,MK18 3FY,General Needs,House,2011,Traditional,Natural gas (mains) +6 Browns Close,Winslow,Buckingham,Bucks,MK18 3FY,General Needs,House,2011,Traditional,Natural gas (mains) +7 Browns Close,Winslow,Buckingham,Bucks,MK18 3FY,General Needs,House,2011,Traditional,Natural gas (mains) +8 Browns Close,Winslow,Buckingham,Bucks,MK18 3FY,General Needs,House,2011,Traditional,Natural gas (mains) +9 Browns Close,Winslow,Buckingham,Bucks,MK18 3FY,General Needs,House,2011,Traditional,Natural gas (mains) +10 Browns Close,Winslow,Buckingham,Bucks,MK18 3FY,General Needs,House,2011,Traditional,Natural gas (mains) +11 Browns Close,Winslow,Buckingham,Bucks,MK18 3FY,General Needs,House,2011,Traditional,Natural gas (mains) +12 Browns Close,Winslow,Buckingham,Bucks,MK18 3FY,General Needs,House,2011,Traditional,Natural gas (mains) +14 Browns Close,Winslow,Buckingham,Bucks,MK18 3FY,General Needs,House,2011,Traditional,Natural gas (mains) +15 Browns Close,Winslow,Buckingham,Bucks,MK18 3FY,General Needs,House,2011,Traditional,Natural gas (mains) +16 Browns Close,Winslow,Buckingham,Bucks,MK18 3FY,General Needs,House,2011,Traditional,Natural gas (mains) +9 Featherbed Close,Winslow,Buckingham,Bucks,MK18 3FZ,General Needs,House,2011,Traditional,Natural gas (mains) +10 Featherbed Close,Winslow,Buckingham,Bucks,MK18 3FZ,General Needs,House,2011,Traditional,Natural gas (mains) +1 Gyles Close,Winslow,Buckingham,,MK18 3GF,General Needs,House,2015,Traditional,Natural gas (mains) +2 Gyles Close,Winslow,Buckingham,,MK18 3GF,General Needs,House,2015,Traditional,Natural gas (mains) +3 Gyles Close,Winslow,Buckingham,,MK18 3GF,General Needs,House,2015,Traditional,Natural gas (mains) +4 Gyles Close,Winslow,Buckingham,,MK18 3GF,General Needs,House,2015,Traditional,Natural gas (mains) +5 Gyles Close,Winslow,Buckingham,,MK18 3GF,General Needs,House,2015,Traditional,Natural gas (mains) +6 Gyles Close,Winslow,Buckingham,,MK18 3GF,General Needs,House,2015,Traditional,Natural gas (mains) +5 Turnham Close,Winslow,Buckingham,,MK18 3GQ,General Needs,Flat,2019,Traditional Timber Frame,Natural gas (mains) +6 Turnham Close,Winslow,Buckingham,,MK18 3GQ,General Needs,Flat,2019,Traditional Timber Frame,Natural gas (mains) +7 Turnham Close,Winslow,Buckingham,,MK18 3GQ,General Needs,Flat,2019,Traditional Timber Frame,Natural gas (mains) +8 Turnham Close,Winslow,Buckingham,,MK18 3GQ,General Needs,Flat,2019,Traditional Timber Frame,Natural gas (mains) +9 Turnham Close,Winslow,Buckingham,,MK18 3GQ,General Needs,Flat,2019,Traditional Timber Frame,Natural gas (mains) +10 Turnham Close,Winslow,Buckingham,,MK18 3GQ,General Needs,Flat,2019,Traditional Timber Frame,Natural gas (mains) +11 Turnham Close,Winslow,Buckingham,,MK18 3GQ,General Needs,Flat,2019,Traditional Timber Frame,Natural gas (mains) +12 Turnham Close,Winslow,Buckingham,,MK18 3GQ,General Needs,Flat,2019,Traditional Timber Frame,Natural gas (mains) +14 Turnham Close,Winslow,Buckingham,,MK18 3GQ,General Needs,Flat,2019,Traditional Timber Frame,Natural gas (mains) +31 Turnham Close,Winslow,Buckingham,,MK18 3GQ,General Needs,House,2019,Traditional,Natural gas (mains) +32 Turnham Close,Winslow,Buckingham,,MK18 3GQ,General Needs,House,2019,Traditional,Natural gas (mains) +33 Turnham Close,Winslow,Buckingham,,MK18 3GQ,General Needs,House,2019,Traditional,Natural gas (mains) +34 Turnham Close,Winslow,Buckingham,,MK18 3GQ,General Needs,House,2019,Traditional,Natural gas (mains) +35 Turnham Close,Winslow,Buckingham,,MK18 3GQ,General Needs,House,2019,Traditional,Natural gas (mains) +1 Gibbs Close,Winslow,Buckingham,,MK18 3GT,General Needs,House,2022,Traditional,Natural gas (mains) +2 Gibbs Close,Winslow,Buckingham,,MK18 3GT,General Needs,House,2022,Traditional,Natural gas (mains) +11 Orrell Place,Winslow,Buckingham,,MK18 3GX,General Needs,House,2021,Traditional,Natural gas (mains) +12 Orrell Place,Winslow,Buckingham,,MK18 3GX,General Needs,House,2021,Traditional,Natural gas (mains) +6 Gubblesgore,Winslow,Buckingham,,MK18 3GZ,General Needs,House,2021,Traditional,Natural gas (mains) +7 Gubblesgore,Winslow,Buckingham,,MK18 3GZ,General Needs,House,2021,Traditional,Natural gas (mains) +8 Gubblesgore,Winslow,Buckingham,,MK18 3GZ,General Needs,House,2021,Traditional,Natural gas (mains) +9 Gubblesgore,Winslow,Buckingham,,MK18 3GZ,General Needs,House,2021,Traditional,Natural gas (mains) +10 Gubblesgore,Winslow,Buckingham,,MK18 3GZ,General Needs,House,2021,Traditional,Natural gas (mains) +1 Roseberry Cottages,Post Office Lane,Hoggeston,Buckingham,MK18 3LJ,General Needs,House,1950,Traditional,ASHP +2 Roseberry Cottages,Post Office Lane,Hoggeston,Buckingham,MK18 3LJ,General Needs,House,1950,Traditional,LPG +2 Carrington Close,Dunton,Buckingham,,MK18 3LW,General Needs,House,1949,Traditional,ASHP +3 Bates Close,Granborough,Buckingham,,MK18 3NH,General Needs,Bungalow,1974,Traditional,ASHP +5 Bates Close,Granborough,Buckingham,,MK18 3NH,General Needs,Bungalow,1974,Traditional,ASHP +1 Bates Close,Granborough,Buckingham,,MK18 3NH,General Needs,Bungalow,1974,Traditional,LPG +15 Bates Close,Granborough,Buckingham,,MK18 3NH,General Needs,Bungalow,1969,Traditional,LPG +17 Bates Close,Granborough,Buckingham,,MK18 3NH,General Needs,Bungalow,1969,Traditional,LPG +13 Bates Close,Granborough,Buckingham,,MK18 3NH,General Needs,Bungalow,1969,Traditional,Natural gas (mains) +9 Bates Close,Granborough,Buckingham,,MK18 3NH,General Needs,Bungalow,1970,Traditional,Storage heaters +14 Marston Road,Granborough,Buckingham,,MK18 3NP,General Needs,Bungalow,1961,Traditional,LPG +16 Marston Road,Granborough,Buckingham,,MK18 3NP,General Needs,Bungalow,1961,Traditional,Storage heaters +56 Winslow Road,Granborough,Buckingham,,MK18 3NQ,General Needs,House,1930,Traditional,LPG +58 Winslow Road,Granborough,Buckingham,,MK18 3NQ,General Needs,House,1930,Traditional,LPG +7 Park Road,Granborough,Buckingham,,MK18 3NS,General Needs,Bungalow,1961,Traditional,LPG +2 Park Road,Granborough,Buckingham,,MK18 3NS,General Needs,Bungalow,1961,Traditional,Natural gas (mains) +5 Park Road,Granborough,Buckingham,,MK18 3NS,General Needs,Bungalow,1961,Traditional,Solid fuel +1 Park Road,Granborough,Buckingham,,MK18 3NS,General Needs,Bungalow,1961,Traditional,Storage heaters +3 Park Road,Granborough,Buckingham,,MK18 3NS,General Needs,Bungalow,1961,Traditional,Storage heaters +4 Park Road,Granborough,Buckingham,,MK18 3NS,General Needs,Bungalow,1961,Traditional,Storage heaters +6 Park Road,Granborough,Buckingham,,MK18 3NS,General Needs,Bungalow,1961,Traditional,Storage heaters +8 Park Road,Granborough,Buckingham,,MK18 3NS,General Needs,Bungalow,1961,Traditional,Storage heaters +25 Schorne Lane,North Marston,Buckingham,,MK18 3PJ,General Needs,House,1933,Traditional,ASHP +21 Schorne Lane,North Marston,Buckingham,,MK18 3PJ,General Needs,House,1933,Traditional,LPG +27 Schorne Lane,North Marston,Buckingham,,MK18 3PJ,General Needs,House,1950,Traditional,LPG +4 Schorne Lane,North Marston,Buckingham,,MK18 3PJ,General Needs,House,1931,Traditional,Storage heaters +37 Portway,North Marston,Buckingham,,MK18 3PL,General Needs,Bungalow,1969,Traditional,ASHP +27A Portway,North Marston,Buckingham,,MK18 3PL,General Needs,Flat,1963,Traditional,LPG +29A Portway,North Marston,Buckingham,,MK18 3PL,General Needs,Flat,1963,Traditional,LPG +27 Portway,North Marston,Buckingham,,MK18 3PL,General Needs,Flat,1963,Traditional,LPG +29 Portway,North Marston,Buckingham,,MK18 3PL,General Needs,Flat,1963,Traditional,LPG +35 Portway,North Marston,Buckingham,,MK18 3PL,General Needs,Bungalow,1969,Traditional,LPG +39 Portway,North Marston,Buckingham,,MK18 3PL,General Needs,Bungalow,1969,Traditional,LPG +43 Portway,North Marston,Buckingham,,MK18 3PL,General Needs,Bungalow,1969,Traditional,LPG +45 Portway,North Marston,Buckingham,,MK18 3PL,General Needs,Bungalow,1969,Traditional,LPG +41 Portway,North Marston,Buckingham,,MK18 3PL,General Needs,Bungalow,1969,Traditional,Storage heaters +8 Granborough Road,North Marston,Buckingham,,MK18 3PN,General Needs,House,1952,Traditional,Oil +1 Gibbings Close,North Marston,Buckingham,,MK18 3PW,General Needs,Bungalow,1954,Traditional,LPG +2 Gibbings Close,North Marston,Buckingham,,MK18 3PW,General Needs,Bungalow,1954,Traditional,LPG +4 Gibbings Close,North Marston,Buckingham,,MK18 3PW,General Needs,Bungalow,1954,Traditional,LPG +9 Gibbings Close,North Marston,Buckingham,,MK18 3PW,General Needs,House,1954,Traditional,LPG +10 Gibbings Close,North Marston,Buckingham,,MK18 3PW,General Needs,House,1954,Traditional,LPG +15 Gibbings Close,North Marston,Buckingham,,MK18 3PW,General Needs,House,1954,Traditional,LPG +8 Gibbings Close,North Marston,Buckingham,,MK18 3PW,General Needs,House,1954,Traditional,Solid fuel +5 Gibbings Close,North Marston,Buckingham,,MK18 3PW,General Needs,Bungalow,1954,Traditional,Storage heaters +12 Gibbings Close,North Marston,Buckingham,,MK18 3PW,General Needs,House,1954,Traditional,Storage heaters +10 Little Hill,Winslow,Buckingham,,MK18 3QG,General Needs,House,2020,Traditional,Natural gas (mains) +11 Little Hill,Winslow,Buckingham,,MK18 3QG,General Needs,House,2020,Traditional,Natural gas (mains) +12 Little Hill,Winslow,Buckingham,,MK18 3QG,General Needs,House,2020,Traditional,Natural gas (mains) +1 Orchard View,Hillesden,Buckingham,,MK18 4DA,General Needs,House,1951,Traditional,LPG +4 Orchard View,Hillesden,Buckingham,,MK18 4DA,General Needs,House,1951,Traditional,Solid fuel +2 The Barracks,Hillesden,Buckingham,,MK18 4DE,General Needs,House,1934,Traditional,LPG +3 The Barracks,Hillesden,Buckingham,,MK18 4DE,General Needs,House,1934,Traditional,LPG +15 Portway Road,Twyford,Buckingham,,MK18 4ED,General Needs,House,1956,Traditional,LPG +18 Portway Road,Twyford,Buckingham,,MK18 4ED,General Needs,House,1956,Traditional,LPG +20 Portway Road,Twyford,Buckingham,,MK18 4ED,General Needs,House,1956,Traditional,LPG +27 Portway Road,Twyford,Buckingham,,MK18 4ED,General Needs,House,1931,Traditional,LPG +30 Portway Road,Twyford,Buckingham,,MK18 4ED,General Needs,House,1931,Traditional,LPG +22 Portway Road,Twyford,Buckingham,,MK18 4ED,General Needs,House,1931,Traditional,Oil +23 Portway Road,Twyford,Buckingham,,MK18 4ED,General Needs,House,1931,Traditional,Oil +4 Portway Road,Twyford,Buckingham,,MK18 4EE,General Needs,House,1949,Traditional,ASHP +3 Portway Road,Twyford,Buckingham,,MK18 4EE,General Needs,House,1949,Traditional,LPG +6 Portway Road,Twyford,Buckingham,,MK18 4EE,General Needs,House,1949,Traditional,LPG +11 Portway Road,Twyford,Buckingham,,MK18 4EE,General Needs,House,1956,Traditional,LPG +7 Rosehill Crescent,Twyford,Buckingham,,MK18 4EF,General Needs,House,1957,Traditional,LPG +8 Rosehill Crescent,Twyford,Buckingham,,MK18 4EF,General Needs,House,1957,Traditional,LPG +10 Rosehill Crescent,Twyford,Buckingham,,MK18 4EF,General Needs,House,1957,Traditional,LPG +16 Rosehill Crescent,Twyford,Buckingham,,MK18 4EF,General Needs,House,1969,Traditional,LPG +17 Rosehill Crescent,Twyford,Buckingham,,MK18 4EF,General Needs,House,1969,Traditional,LPG +9 Rosehill Crescent,Twyford,Buckingham,,MK18 4EF,General Needs,House,1957,Traditional,Oil +1 Rosehill Crescent,Twyford,Buckingham,,MK18 4EF,General Needs,Bungalow,1963,Traditional,Solid fuel +2 Rosehill Crescent,Twyford,Buckingham,,MK18 4EF,General Needs,Bungalow,1963,Traditional,Storage heaters +21 Rosehill Crescent,Twyford,Buckingham,,MK18 4EF,General Needs,Bungalow,1963,Traditional,Storage heaters +22 Rosehill Crescent,Twyford,Buckingham,,MK18 4EF,General Needs,Bungalow,1963,Traditional,Storage heaters +7 Bicester Road,Twyford,Buckingham,,MK18 4EH,General Needs,House,1926,Traditional,LPG +3 Bicester Road,Twyford,Buckingham,,MK18 4EH,General Needs,House,1919,Traditional,Oil +4 Bicester Road,Twyford,Buckingham,,MK18 4EH,General Needs,House,1919,Traditional,Oil +5 Bicester Road,Twyford,Buckingham,,MK18 4EH,General Needs,House,1919,Traditional,Oil +6 Bicester Road,Twyford,Buckingham,,MK18 4EH,General Needs,House,1919,Traditional,Oil +6A Bicester Road,Twyford,Buckingham,,MK18 4EH,General Needs,House,2015,Traditional,Storage heaters +2 The Rise,Gawcott,Buckingham,,MK18 4HW,General Needs,House,1971,Traditional,ASHP +3 The Rise,Gawcott,Buckingham,,MK18 4HW,General Needs,House,1971,Traditional,Natural gas (mains) +14 The Rise,Gawcott,Buckingham,,MK18 4HW,General Needs,House,1971,Traditional,Natural gas (mains) +28 The Rise,Gawcott,Buckingham,,MK18 4HW,General Needs,House,1971,Traditional,Natural gas (mains) +38 The Rise,Gawcott,Buckingham,,MK18 4HW,General Needs,Bungalow,1971,Traditional,Natural gas (mains) +39 The Rise,Gawcott,Buckingham,,MK18 4HW,General Needs,Bungalow,1971,Traditional,Natural gas (mains) +40 The Rise,Gawcott,Buckingham,,MK18 4HW,General Needs,Bungalow,1971,Traditional,Natural gas (mains) +44 The Rise,Gawcott,Buckingham,,MK18 4HW,General Needs,House,1947,Traditional,Natural gas (mains) +4 The Rise,Gawcott,Buckingham,,MK18 4HW,General Needs,House,1971,Traditional,Storage heaters +5 The Rise,Gawcott,Buckingham,,MK18 4HW,General Needs,House,1971,Traditional,Storage heaters +7 The Rise,Gawcott,Buckingham,,MK18 4HW,General Needs,House,1971,Traditional,Storage heaters +15 The Rise,Gawcott,Buckingham,,MK18 4HW,General Needs,House,1971,Traditional,Storage heaters +17 The Rise,Gawcott,Buckingham,,MK18 4HW,General Needs,House,1971,Traditional,Storage heaters +26 The Rise,Gawcott,Buckingham,,MK18 4HW,General Needs,House,1971,Traditional,Storage heaters +31 The Rise,Gawcott,Buckingham,,MK18 4HW,General Needs,House,1971,Traditional,Storage heaters +33 The Rise,Gawcott,Buckingham,,MK18 4HW,General Needs,House,1971,Traditional,Storage heaters +35 The Rise,Gawcott,Buckingham,,MK18 4HW,General Needs,House,1971,Traditional,Storage heaters +37 The Rise,Gawcott,Buckingham,,MK18 4HW,General Needs,Bungalow,1971,Traditional,Storage heaters +41 The Rise,Gawcott,Buckingham,,MK18 4HW,General Needs,Bungalow,1971,Traditional,Storage heaters +3 Buckingham Road,Gawcott,Buckingham,,MK18 4JD,General Needs,House,1927,Traditional,Natural gas (mains) +8 Buckingham Road,Gawcott,Buckingham,,MK18 4JD,General Needs,House,1927,Traditional,Natural gas (mains) +9 Buckingham Road,Gawcott,Buckingham,,MK18 4JD,General Needs,House,1927,Traditional,Natural gas (mains) +10 Buckingham Road,Gawcott,Buckingham,,MK18 4JD,General Needs,House,1927,Traditional,Natural gas (mains) +12 Buckingham Road,Gawcott,Buckingham,,MK18 4JD,General Needs,House,1927,Traditional,Natural gas (mains) +14 Buckingham Road,Gawcott,Buckingham,,MK18 4JD,General Needs,House,1927,Traditional,Natural gas (mains) +6 School End,Chetwode,Buckingham,,MK18 4LA,General Needs,House,1951,Traditional,LPG +3 Main Street,Preston Bissett,Buckingham,,MK18 4LH,General Needs,House,1934,Traditional,Oil +4 The Square,Preston Bissett,Buckingham,,MK18 4LL,General Needs,House,1936,Traditional,LPG +8 Pound Lane,Preston Bissett,Buckingham,,MK18 4LX,General Needs,Bungalow,1961,Traditional,Storage heaters +9 Pound Lane,Preston Bissett,Buckingham,,MK18 4LX,General Needs,Bungalow,1961,Traditional,Storage heaters +5 The Elms,Preston Bissett,Buckingham,,MK18 4LY,General Needs,House,1949,Traditional,LPG +6 The Elms,Preston Bissett,Buckingham,,MK18 4LY,General Needs,House,1953,Traditional,LPG +11 The Elms,Preston Bissett,Buckingham,,MK18 4LY,General Needs,House,1952,Traditional,LPG +8 The Elms,Preston Bissett,Buckingham,,MK18 4LY,General Needs,House,1953,Traditional,Storage heaters +1 Stowe View,Tingewick,Buckingham,,MK18 4NY,General Needs,Bungalow,1956,Traditional,Natural gas (mains) +2 Stowe View,Tingewick,Buckingham,,MK18 4NY,General Needs,Bungalow,1956,Traditional,Natural gas (mains) +3 Stowe View,Tingewick,Buckingham,,MK18 4NY,General Needs,Bungalow,1956,Traditional,Natural gas (mains) +4 Stowe View,Tingewick,Buckingham,,MK18 4NY,General Needs,House,1956,Traditional,Natural gas (mains) +7 Stowe View,Tingewick,Buckingham,,MK18 4NY,General Needs,House,1957,Traditional,Natural gas (mains) +8 Stowe View,Tingewick,Buckingham,,MK18 4NY,General Needs,House,1957,Traditional,Natural gas (mains) +9 Stowe View,Tingewick,Buckingham,,MK18 4NY,General Needs,House,1957,Traditional,Natural gas (mains) +10 Stowe View,Tingewick,Buckingham,,MK18 4NY,General Needs,House,1957,Traditional,Natural gas (mains) +15 Stowe View,Tingewick,Buckingham,,MK18 4NY,General Needs,House,1958,Traditional,Natural gas (mains) +16 Stowe View,Tingewick,Buckingham,,MK18 4NY,General Needs,House,1961,Traditional,Natural gas (mains) +17 Stowe View,Tingewick,Buckingham,,MK18 4NY,General Needs,House,1961,Traditional,Natural gas (mains) +19 Stowe View,Tingewick,Buckingham,,MK18 4NY,General Needs,House,1961,Traditional,Natural gas (mains) +21 Stowe View,Tingewick,Buckingham,,MK18 4NY,General Needs,House,1961,Traditional,Natural gas (mains) +22 Stowe View,Tingewick,Buckingham,,MK18 4NY,General Needs,Bungalow,1969,Traditional,Natural gas (mains) +23 Stowe View,Tingewick,Buckingham,,MK18 4NY,General Needs,Bungalow,1969,Traditional,Natural gas (mains) +24 Stowe View,Tingewick,Buckingham,,MK18 4NY,General Needs,Bungalow,1969,Traditional,Natural gas (mains) +25 Stowe View,Tingewick,Buckingham,,MK18 4NY,General Needs,Bungalow,1969,Traditional,Natural gas (mains) +28 Stowe View,Tingewick,Buckingham,,MK18 4NY,General Needs,House,1969,Traditional,Natural gas (mains) +34 Stowe View,Tingewick,Buckingham,,MK18 4NY,General Needs,Bungalow,1969,Traditional,Natural gas (mains) +35 Stowe View,Tingewick,Buckingham,,MK18 4NY,General Needs,Bungalow,1969,Traditional,Natural gas (mains) +36 Stowe View,Tingewick,Buckingham,,MK18 4NY,General Needs,Flat,1975,Traditional,Natural gas (mains) +37 Stowe View,Tingewick,Buckingham,,MK18 4NY,General Needs,Flat,1975,Traditional,Natural gas (mains) +38 Stowe View,Tingewick,Buckingham,,MK18 4NY,General Needs,Flat,1975,Traditional,Natural gas (mains) +39 Stowe View,Tingewick,Buckingham,,MK18 4NY,General Needs,Flat,1975,Traditional,Natural gas (mains) +41 Stowe View,Tingewick,Buckingham,,MK18 4NY,General Needs,Flat,1975,Traditional,Natural gas (mains) +45 Stowe View,Tingewick,Buckingham,,MK18 4NY,General Needs,Bungalow,1965,Traditional,Natural gas (mains) +46 Stowe View,Tingewick,Buckingham,,MK18 4NY,General Needs,Bungalow,1965,Traditional,Natural gas (mains) +47 Stowe View,Tingewick,Buckingham,,MK18 4NY,General Needs,Bungalow,1965,Traditional,Natural gas (mains) +21A Stowe View,Tingewick,Buckingham,,MK18 4NY,General Needs,House,2017,Traditional,Natural gas (mains) +21B Stowe View,Tingewick,Buckingham,,MK18 4NY,General Needs,House,2017,Traditional,Natural gas (mains) +1 The Bungalows,Strangers Lane,Tingewick,Buckingham,MK18 4PS,General Needs,Bungalow,1961,Traditional,Natural gas (mains) +2 The Bungalows,Strangers Lane,Tingewick,Buckingham,MK18 4PS,General Needs,Bungalow,1961,Traditional,Natural gas (mains) +3 The Bungalows,Strangers Lane,Tingewick,Buckingham,MK18 4PS,General Needs,Bungalow,1961,Traditional,Natural gas (mains) +4 The Bungalows,Strangers Lane,Tingewick,Buckingham,MK18 4PS,General Needs,Bungalow,1961,Traditional,Natural gas (mains) +4 Strangers Lane,Tingewick,Buckingham,,MK18 4PT,General Needs,House,1953,Traditional,Natural gas (mains) +6 Strangers Lane,Tingewick,Buckingham,,MK18 4PT,General Needs,House,1953,Traditional,Natural gas (mains) +3 West Well Lane,Tingewick,Buckingham,,MK18 4PZ,General Needs,Bungalow,1964,Traditional,Natural gas (mains) +6 New Street,Tingewick,Buckingham,,MK18 4QU,General Needs,House,1934,Traditional,Natural gas (mains) +7 New Street,Tingewick,Buckingham,,MK18 4QU,General Needs,House,1934,Traditional,Natural gas (mains) +9 New Street,Tingewick,Buckingham,,MK18 4QU,General Needs,House,1934,Traditional,Natural gas (mains) +13 New Street,Tingewick,Buckingham,,MK18 4QU,General Needs,House,1934,Traditional,Natural gas (mains) +14 New Street,Tingewick,Buckingham,,MK18 4QU,General Needs,House,1934,Traditional,Natural gas (mains) +17 New Street,Tingewick,Buckingham,,MK18 4QU,General Needs,House,1934,Traditional,Natural gas (mains) +18 New Street,Tingewick,Buckingham,,MK18 4QU,General Needs,House,1934,Traditional,Natural gas (mains) +19 New Street,Tingewick,Buckingham,,MK18 4QU,General Needs,House,1934,Traditional,Natural gas (mains) +20 New Street,Tingewick,Buckingham,,MK18 4QU,General Needs,House,1934,Traditional,Natural gas (mains) +23 New Street,Tingewick,Buckingham,,MK18 4QU,General Needs,House,1934,Traditional,Natural gas (mains) +24 New Street,Tingewick,Buckingham,,MK18 4QU,General Needs,House,1934,Traditional,Natural gas (mains) +28 Stockleys Lane,Tingewick,Buckingham,,MK18 4QX,General Needs,House,1937,Traditional,Natural gas (mains) +30 Stockleys Lane,Tingewick,Buckingham,,MK18 4QX,General Needs,House,1937,Traditional,Natural gas (mains) +8 Buckingham Street,Tingewick,Buckingham,,MK18 4QY,General Needs,House,1947,Traditional,Natural gas (mains) +9 Buckingham Street,Tingewick,Buckingham,,MK18 4QY,General Needs,House,1947,Traditional,Natural gas (mains) +10 Buckingham Street,Tingewick,Buckingham,,MK18 4QY,General Needs,House,1948,Traditional,Natural gas (mains) +13 Buckingham Street,Tingewick,Buckingham,,MK18 4QY,General Needs,House,1948,Traditional,Natural gas (mains) +14 Buckingham Street,Tingewick,Buckingham,,MK18 4QY,General Needs,House,1951,Traditional,Natural gas (mains) +16 Buckingham Street,Tingewick,Buckingham,,MK18 4QY,General Needs,House,1951,Traditional,Natural gas (mains) +17 Buckingham Street,Tingewick,Buckingham,,MK18 4QY,General Needs,House,1951,Traditional,Natural gas (mains) +31 Buckingham Street,Tingewick,Buckingham,,MK18 4QY,General Needs,House,1951,Traditional,Natural gas (mains) +32 Buckingham Street,Tingewick,Buckingham,,MK18 4QY,General Needs,House,1951,Traditional,Natural gas (mains) +34 Buckingham Street,Tingewick,Buckingham,,MK18 4QY,General Needs,House,1951,Traditional,Natural gas (mains) +37 Buckingham Street,Tingewick,Buckingham,,MK18 4QY,General Needs,House,1951,Traditional,Natural gas (mains) +1 Hillside,Buckingham Street,Tingewick,Buckingham,MK18 4QY,General Needs,Bungalow,1975,Traditional,Natural gas (mains) +2 Hillside,Buckingham Street,Tingewick,Buckingham,MK18 4QY,General Needs,Bungalow,1975,Traditional,Natural gas (mains) +3 Hillside,Buckingham Street,Tingewick,Buckingham,MK18 4QY,General Needs,Bungalow,1975,Traditional,Natural gas (mains) +4 Hillside,Buckingham Street,Tingewick,Buckingham,MK18 4QY,General Needs,Bungalow,1975,Traditional,Natural gas (mains) +5 Hillside,Buckingham Street,Tingewick,Buckingham,MK18 4QY,General Needs,Bungalow,1975,Traditional,Natural gas (mains) +6 Hillside,Buckingham Street,Tingewick,Buckingham,MK18 4QY,General Needs,Bungalow,1975,Traditional,Natural gas (mains) +7 Hillside,Buckingham Street,Tingewick,Buckingham,MK18 4QY,General Needs,Bungalow,1975,Traditional,Natural gas (mains) +1 Oakfield View,Akeley,Buckingham,,MK18 5BT,General Needs,House,2020,Traditional,ASHP +4 Oakfield View,Akeley,Buckingham,,MK18 5BT,General Needs,Bungalow,2020,Traditional,ASHP +1 Hillside Bungalow,Water Stratford,Buckingham,Bucks,MK18 5DT,General Needs,Bungalow,1958,Traditional,Solid fuel +2 Hillside Bungalow,Water Stratford,Buckingham,Bucks,MK18 5DT,General Needs,Bungalow,1958,Traditional,Storage heaters +3 Hillside Bungalow,Water Stratford,Buckingham,Bucks,MK18 5DT,General Needs,Bungalow,1958,Traditional,Storage heaters +4 Hillside Bungalow,Water Stratford,Buckingham,Bucks,MK18 5DT,General Needs,Bungalow,1958,Traditional,Storage heaters +8 Church Hill,Akeley,Buckingham,,MK18 5HB,General Needs,House,1928,Traditional,LPG +10 Church Hill,Akeley,Buckingham,,MK18 5HB,General Needs,House,1928,Traditional,LPG +9 Buckingham Road,Akeley,Buckingham,,MK18 5HL,General Needs,House,1934,Traditional,LPG +13 Coronation Cottages,Akeley,Buckingham,,MK18 5HN,General Needs,House,1937,Traditional,LPG +15 Coronation Cottages,Akeley,Buckingham,,MK18 5HN,General Needs,House,1937,Traditional,LPG +19 Coronation Cottages,Akeley,Buckingham,,MK18 5HN,General Needs,House,1938,Traditional,LPG +20 Coronation Cottages,Akeley,Buckingham,,MK18 5HN,General Needs,House,1938,Traditional,LPG +21 Coronation Cottages,Akeley,Buckingham,,MK18 5HN,General Needs,House,1938,Traditional,LPG +16 Coronation Cottages,Akeley,Buckingham,,MK18 5HN,General Needs,House,1938,Traditional,Solid fuel +18 Coronation Cottages,Akeley,Buckingham,,MK18 5HN,General Needs,House,1938,Traditional,Storage heaters +10 Manor Road,Akeley,Buckingham,,MK18 5HQ,General Needs,House,1951,Traditional,ASHP +1 Manor Road,Akeley,Buckingham,,MK18 5HQ,General Needs,House,1951,Traditional,LPG +5 Manor Road,Akeley,Buckingham,,MK18 5HQ,General Needs,House,1951,Traditional,LPG +6 Manor Road,Akeley,Buckingham,,MK18 5HQ,General Needs,House,1951,Traditional,LPG +17 Manor Road,Akeley,Buckingham,,MK18 5HQ,General Needs,House,1955,Traditional,LPG +34 Manor Road,Akeley,Buckingham,,MK18 5HQ,General Needs,Bungalow,1968,Traditional,LPG +40 Manor Road,Akeley,Buckingham,,MK18 5HQ,General Needs,Bungalow,1968,Traditional,LPG +50 Manor Road,Akeley,Buckingham,,MK18 5HQ,General Needs,House,1975,Traditional,LPG +51 Manor Road,Akeley,Buckingham,,MK18 5HQ,General Needs,Flat,1975,Traditional,LPG +19 Manor Road,Akeley,Buckingham,,MK18 5HQ,General Needs,House,1955,Traditional,Storage heaters +31 Manor Road,Akeley,Buckingham,,MK18 5HQ,General Needs,Flat,1975,Traditional,Storage heaters +33 Manor Road,Akeley,Buckingham,,MK18 5HQ,General Needs,Flat,1975,Traditional,Storage heaters +35 Manor Road,Akeley,Buckingham,,MK18 5HQ,General Needs,Flat,1975,Traditional,Storage heaters +36 Manor Road,Akeley,Buckingham,,MK18 5HQ,General Needs,Bungalow,1968,Traditional,Storage heaters +37 Manor Road,Akeley,Buckingham,,MK18 5HQ,General Needs,Flat,1975,Traditional,Storage heaters +39 Manor Road,Akeley,Buckingham,,MK18 5HQ,General Needs,Flat,1975,Traditional,Storage heaters +43 Manor Road,Akeley,Buckingham,,MK18 5HQ,General Needs,Flat,1975,Traditional,Storage heaters +45 Manor Road,Akeley,Buckingham,,MK18 5HQ,General Needs,Flat,1975,Traditional,Storage heaters +49 Manor Road,Akeley,Buckingham,,MK18 5HQ,General Needs,Flat,1975,Traditional,Storage heaters +2 Maltings Bungalows,The Maltings,Chackmore,Buckingham,MK18 5JH,General Needs,Bungalow,1969,Traditional,Storage heaters +4 The Maltings,Chackmore,Buckingham,,MK18 5JJ,General Needs,House,1938,Traditional,ASHP +12 The Maltings,Chackmore,Buckingham,,MK18 5JJ,General Needs,House,1944,Traditional,ASHP +15 The Maltings,Chackmore,Buckingham,,MK18 5JJ,General Needs,House,1952,Traditional,ASHP +16 The Maltings,Chackmore,Buckingham,,MK18 5JJ,General Needs,House,1952,Traditional,ASHP +3 The Maltings,Chackmore,Buckingham,,MK18 5JJ,General Needs,House,1938,Traditional,LPG +11 North Hill,Dadford,Buckingham,,MK18 5LF,General Needs,House,1939,Traditional,ASHP +16 North Hill,Dadford,Buckingham,,MK18 5LF,General Needs,House,1939,Traditional,ASHP +18 North Hill,Dadford,Buckingham,,MK18 5LF,General Needs,House,1939,Traditional,ASHP +22 North Hill,Dadford,Buckingham,,MK18 5LF,General Needs,House,1939,Traditional,ASHP +24 North Hill,Dadford,Buckingham,,MK18 5LF,General Needs,House,1966,Traditional,ASHP +25 North Hill,Dadford,Buckingham,,MK18 5LF,General Needs,Bungalow,1966,Traditional,ASHP +1 North Hill,Dadford,Buckingham,,MK18 5LF,General Needs,House,1934,Traditional,LPG +3 North Hill,Dadford,Buckingham,,MK18 5LF,General Needs,House,1934,Traditional,LPG +9 North Hill,Dadford,Buckingham,,MK18 5LF,General Needs,House,1939,Traditional,LPG +23 North Hill,Dadford,Buckingham,,MK18 5LF,General Needs,House,1966,Traditional,LPG +4 North Hill,Dadford,Buckingham,,MK18 5LF,General Needs,House,1934,Traditional,Storage heaters +26 North Hill,Dadford,Buckingham,,MK18 5LF,General Needs,Bungalow,1966,Traditional,Storage heaters +16 South End,Leckhampstead,Buckingham,,MK18 5NR,General Needs,House,1938,Traditional,ASHP +17 South End,Leckhampstead,Buckingham,,MK18 5NR,General Needs,House,1938,Traditional,ASHP +18 South End,Leckhampstead,Buckingham,,MK18 5NR,General Needs,House,1962,Traditional,ASHP +20 South End,Leckhampstead,Buckingham,,MK18 5NR,General Needs,House,1962,Traditional,ASHP +2 South End,Leckhampstead,Buckingham,,MK18 5NR,General Needs,House,1938,Traditional,LPG +9 South End,Leckhampstead,Buckingham,,MK18 5NR,General Needs,House,1938,Traditional,LPG +13 South End,Leckhampstead,Buckingham,,MK18 5NR,General Needs,House,1938,Traditional,LPG +14 South End,Leckhampstead,Buckingham,,MK18 5NR,General Needs,House,1938,Traditional,LPG +15 South End,Leckhampstead,Buckingham,,MK18 5NR,General Needs,House,1938,Traditional,LPG +1 South End,Leckhampstead,Buckingham,,MK18 5NR,General Needs,House,1938,Traditional,Natural gas (mains) +4 South End,Leckhampstead,Buckingham,,MK18 5NR,General Needs,House,1938,Traditional,Oil +3 Elmers Close,Beachampton,Milton Keynes,,MK19 6EB,General Needs,House,1948,Traditional,ASHP +1 Elmers Close,Beachampton,Milton Keynes,,MK19 6EB,General Needs,House,1948,Traditional,LPG +7 Elmers Close,Beachampton,Milton Keynes,,MK19 6EB,General Needs,House,1948,Traditional,LPG +3 South Bank,Turweston,Brackley,,NN13 5JD,General Needs,House,1951,Traditional,ASHP +6 South Bank,Turweston,Brackley,,NN13 5JD,General Needs,House,1951,Traditional,ASHP +1 South Bank,Turweston,Brackley,,NN13 5JD,General Needs,House,1951,Traditional,LPG +4 South Bank,Turweston,Brackley,,NN13 5JD,General Needs,House,1951,Traditional,LPG +5 Biddlesden Road,Westbury,Brackley,,NN13 5JL,General Needs,House,1939,Traditional,Natural gas (mains) +6 Biddlesden Road,Westbury,Brackley,,NN13 5JL,General Needs,House,1939,Traditional,Natural gas (mains) +7 Biddlesden Road,Westbury,Brackley,,NN13 5JL,General Needs,House,1939,Traditional,Natural gas (mains) +2 Biddlesden Road,Westbury,Brackley,,NN13 5JL,General Needs,House,1939,Traditional,Storage heaters +2 Bungalow,Orchard Place,Westbury,Brackley,NN13 5JT,General Needs,Bungalow,1969,Traditional,Natural gas (mains) +3 Bungalow,Orchard Place,Westbury,Brackley,NN13 5JT,General Needs,Bungalow,1969,Traditional,Natural gas (mains) +4 Bungalow,Orchard Place,Westbury,Brackley,NN13 5JT,General Needs,Bungalow,1969,Traditional,Natural gas (mains) +5 Bungalow,Orchard Place,Westbury,Brackley,NN13 5JT,General Needs,Bungalow,1969,Traditional,Natural gas (mains) +5 Orchard Place,Westbury,Brackley,,NN13 5JT,General Needs,House,1947,Swedish Timber,Natural gas (mains) +12 Orchard Place,Westbury,Brackley,,NN13 5JT,General Needs,House,1952,Traditional,Natural gas (mains) +18 Orchard Place,Westbury,Brackley,,NN13 5JT,General Needs,House,1952,Traditional,Natural gas (mains) +1 Bungalow,Orchard Place,Westbury,Brackley,NN13 5JT,General Needs,Bungalow,1969,Traditional,Storage heaters +1 Orchard Place,Westbury,Brackley,,NN13 5JT,General Needs,House,1947,Swedish Timber,Storage heaters +3 The Terrace,Biddlesden,Brackley,,NN13 5TR,General Needs,House,1949,Traditional,LPG +12A Rossiter House,Manor Road,Brackley,,NN13 6DU,General Needs,Flat,1990,Traditional,Storage heaters +1 Rossiter House,Manor Road,Brackley,,NN13 6DU,General Needs,Flat,1990,Traditional,Storage heaters +2 Rossiter House,Manor Road,Brackley,,NN13 6DU,General Needs,Flat,1990,Traditional,Storage heaters +3 Rossiter House,Manor Road,Brackley,,NN13 6DU,General Needs,Flat,1990,Traditional,Storage heaters +4 Rossiter House,Manor Road,Brackley,,NN13 6DU,General Needs,Flat,1990,Traditional,Storage heaters +5 Rossiter House,Manor Road,Brackley,,NN13 6DU,General Needs,Flat,1990,Traditional,Storage heaters +6 Rossiter House,Manor Road,Brackley,,NN13 6DU,General Needs,Flat,1990,Traditional,Storage heaters +7 Rossiter House,Manor Road,Brackley,,NN13 6DU,General Needs,Flat,1990,Traditional,Storage heaters +8 Rossiter House,Manor Road,Brackley,,NN13 6DU,General Needs,Flat,1990,Traditional,Storage heaters +9 Rossiter House,Manor Road,Brackley,,NN13 6DU,General Needs,Flat,1990,Traditional,Storage heaters +10 Rossiter House,Manor Road,Brackley,,NN13 6DU,General Needs,Flat,1990,Traditional,Storage heaters +11 Rossiter House,Manor Road,Brackley,,NN13 6DU,General Needs,Flat,1990,Traditional,Storage heaters +12 Rossiter House,Manor Road,Brackley,,NN13 6DU,General Needs,Flat,1990,Traditional,Storage heaters +14 Rossiter House,Manor Road,Brackley,,NN13 6DU,General Needs,Flat,1990,Traditional,Storage heaters +15 Rossiter House,Manor Road,Brackley,,NN13 6DU,General Needs,Flat,1990,Traditional,Storage heaters +16 Rossiter House,Manor Road,Brackley,,NN13 6DU,General Needs,Flat,1990,Traditional,Storage heaters +17 Rossiter House,Manor Road,Brackley,,NN13 6DU,General Needs,Flat,1990,Traditional,Storage heaters +18 Rossiter House,Manor Road,Brackley,,NN13 6DU,General Needs,Flat,1990,Traditional,Storage heaters +19 Rossiter House,Manor Road,Brackley,,NN13 6DU,General Needs,Flat,1990,Traditional,Storage heaters +20 Rossiter House,Manor Road,Brackley,,NN13 6DU,General Needs,Flat,1990,Traditional,Storage heaters +21 Rossiter House,Manor Road,Brackley,,NN13 6DU,General Needs,Flat,1990,Traditional,Storage heaters +22 Rossiter House,Manor Road,Brackley,,NN13 6DU,General Needs,Flat,1990,Traditional,Storage heaters +23 Rossiter House,Manor Road,Brackley,,NN13 6DU,General Needs,Flat,1990,Traditional,Storage heaters +24 Rossiter House,Manor Road,Brackley,,NN13 6DU,General Needs,Flat,1990,Traditional,Storage heaters +25 Rossiter House,Manor Road,Brackley,,NN13 6DU,General Needs,Flat,1990,Traditional,Storage heaters +26 Rossiter House,Manor Road,Brackley,,NN13 6DU,General Needs,Flat,1990,Traditional,Storage heaters +27 Rossiter House,Manor Road,Brackley,,NN13 6DU,General Needs,Flat,1990,Traditional,Storage heaters +28 Rossiter House,Manor Road,Brackley,,NN13 6DU,General Needs,Flat,1990,Traditional,Storage heaters +29 Rossiter House,Manor Road,Brackley,,NN13 6DU,General Needs,Flat,1990,Traditional,Storage heaters +30 Rossiter House,Manor Road,Brackley,,NN13 6DU,General Needs,Flat,1990,Traditional,Storage heaters +31 Rossiter House,Manor Road,Brackley,,NN13 6DU,General Needs,Flat,1990,Traditional,Storage heaters +32 Rossiter House,Manor Road,Brackley,,NN13 6DU,General Needs,Flat,1990,Traditional,Storage heaters +33 Rossiter House,Manor Road,Brackley,,NN13 6DU,General Needs,Flat,1990,Traditional,Storage heaters +34 Rossiter House,Manor Road,Brackley,,NN13 6DU,General Needs,Flat,1990,Traditional,Storage heaters +35 Rossiter House,Manor Road,Brackley,,NN13 6DU,General Needs,Flat,1990,Traditional,Storage heaters +36 Rossiter House,Manor Road,Brackley,,NN13 6DU,General Needs,Flat,1990,Traditional,Storage heaters +37 Rossiter House,Manor Road,Brackley,,NN13 6DU,General Needs,Flat,1990,Traditional,Storage heaters +38 Rossiter House,Manor Road,Brackley,,NN13 6DU,General Needs,Flat,1990,Traditional,Storage heaters +39 Rossiter House,Manor Road,Brackley,,NN13 6DU,General Needs,Flat,1990,Traditional,Storage heaters +41 Rossiter House,Manor Road,Brackley,,NN13 6DU,General Needs,Flat,1990,Traditional,Storage heaters +43 Rossiter House,Manor Road,Brackley,,NN13 6DU,General Needs,Flat,1990,Traditional,Storage heaters +44 Rossiter House,Manor Road,Brackley,,NN13 6DU,General Needs,Flat,1990,Traditional,Storage heaters +45 Rossiter House,Manor Road,Brackley,,NN13 6DU,General Needs,Flat,1990,Traditional,Storage heaters +46 Rossiter House,Manor Road,Brackley,,NN13 6DU,General Needs,Flat,1990,Traditional,Storage heaters +47 Rossiter House,Manor Road,Brackley,,NN13 6DU,General Needs,Flat,1990,Traditional,Storage heaters +48 Rossiter House,Manor Road,Brackley,,NN13 6DU,General Needs,Flat,1990,Traditional,Storage heaters +49 Rossiter House,Manor Road,Brackley,,NN13 6DU,General Needs,Flat,1990,Traditional,Storage heaters +50 Rossiter House,Manor Road,Brackley,,NN13 6DU,General Needs,Flat,1990,Traditional,Storage heaters +51 Rossiter House,Manor Road,Brackley,,NN13 6DU,General Needs,Flat,1990,Traditional,Storage heaters +52 Rossiter House,Manor Road,Brackley,,NN13 6DU,General Needs,Flat,1990,Traditional,Storage heaters +53 Rossiter House,Manor Road,Brackley,,NN13 6DU,General Needs,Flat,1990,Traditional,Storage heaters +55 Rossiter House,Manor Road,Brackley,,NN13 6DU,General Needs,Flat,1990,Traditional,Storage heaters +56 Rossiter House,Manor Road,Brackley,,NN13 6DU,General Needs,Flat,1990,Traditional,Storage heaters +57 Rossiter House,Manor Road,Brackley,,NN13 6DU,General Needs,Flat,1990,Traditional,Storage heaters +1 Leonard Meadow,Marsh Gibbon,Bicester,,OX27 0AB,General Needs,House,2022,Traditional,ASHP +4 Hampden Hill,Charndon,Bicester,,OX27 0BN,General Needs,House,1949,Traditional,ASHP +6 Hampden Hill,Charndon,Bicester,,OX27 0BN,General Needs,House,1949,Traditional,LPG +7 Hampden Hill,Charndon,Bicester,,OX27 0BN,General Needs,House,1949,Traditional,LPG +8 Hampden Hill,Charndon,Bicester,,OX27 0BN,General Needs,House,1949,Traditional,Storage heaters +2 Wootton Green,Charndon,Bicester,,OX27 0BW,General Needs,Bungalow,1964,Traditional,LPG +11 Wootton Green,Charndon,Bicester,,OX27 0BW,General Needs,Bungalow,1969,Traditional,LPG +1 Wootton Green,Charndon,Bicester,,OX27 0BW,General Needs,Bungalow,1964,Traditional,Oil +7 Wootton Green,Charndon,Bicester,,OX27 0BW,General Needs,House,1969,Traditional,Oil +10 Wootton Green,Charndon,Bicester,,OX27 0BW,General Needs,Bungalow,1969,Traditional,Storage heaters +4 Bicester Road,Marsh Gibbon,Bicester,,OX27 0EU,General Needs,House,1920,Traditional,LPG +8 Station Road,Marsh Gibbon,Bicester,,OX27 0HN,General Needs,House,1938,Traditional,ASHP +3 Station Road,Marsh Gibbon,Bicester,,OX27 0HN,General Needs,House,1938,Traditional,LPG +7 Station Road,Marsh Gibbon,Bicester,,OX27 0HN,General Needs,House,1938,Traditional,Solid fuel +7 Millfield Avenue,Marsh Gibbon,Bicester,Oxon,OX27 0HP,General Needs,House,1948,Traditional,ASHP +11 Millfield Avenue,Marsh Gibbon,Bicester,Oxon,OX27 0HP,General Needs,House,1953,Traditional,ASHP +37 Millfield Avenue,Marsh Gibbon,Bicester,Oxon,OX27 0HP,General Needs,House,1955,Traditional,ASHP +39 Millfield Avenue,Marsh Gibbon,Bicester,Oxon,OX27 0HP,General Needs,House,1955,Traditional,ASHP +1 Millfield Avenue,Marsh Gibbon,Bicester,Oxon,OX27 0HP,General Needs,House,1948,Traditional,LPG +2 Millfield Avenue,Marsh Gibbon,Bicester,Oxon,OX27 0HP,General Needs,House,1948,Traditional,LPG +13 Millfield Avenue,Marsh Gibbon,Bicester,Oxon,OX27 0HP,General Needs,House,1953,Traditional,LPG +14 Millfield Avenue,Marsh Gibbon,Bicester,Oxon,OX27 0HP,General Needs,Bungalow,1958,Traditional,LPG +24 Millfield Avenue,Marsh Gibbon,Bicester,,OX27 0HP,General Needs,House,1958,Traditional,LPG +35 Millfield Avenue,Marsh Gibbon,Bicester,Oxon,OX27 0HP,General Needs,House,1955,Traditional,LPG +6 Millfield Avenue,Marsh Gibbon,Bicester,Oxon,OX27 0HP,General Needs,House,1948,Traditional,Oil +9 Millfield Avenue,Marsh Gibbon,Bicester,Oxon,OX27 0HP,General Needs,House,1953,Traditional,Storage heaters +16 Millfield Avenue,Marsh Gibbon,Bicester,Oxon,OX27 0HP,General Needs,Bungalow,1958,Traditional,Storage heaters +3 Millfield Close,Marsh Gibbon,Bicester,,OX27 0HR,General Needs,House,1967,Traditional,LPG +16 Millfield Close,Marsh Gibbon,Bicester,,OX27 0HR,General Needs,House,1975,Traditional,LPG +28 Millfield Close,Marsh Gibbon,Bicester,,OX27 0HR,General Needs,Flat,1975,Traditional,LPG +1 Millfield Close,Marsh Gibbon,Bicester,,OX27 0HR,General Needs,Bungalow,1967,Traditional,Storage heaters +2 Millfield Close,Marsh Gibbon,Bicester,,OX27 0HR,General Needs,Bungalow,1967,Traditional,Storage heaters +7 Millfield Close,Marsh Gibbon,Bicester,,OX27 0HR,General Needs,House,1967,Traditional,Storage heaters +9 Millfield Close,Marsh Gibbon,Bicester,,OX27 0HR,General Needs,Flat,1975,Traditional,Storage heaters +10 Millfield Close,Marsh Gibbon,Bicester,,OX27 0HR,General Needs,Flat,1975,Traditional,Storage heaters +11 Millfield Close,Marsh Gibbon,Bicester,,OX27 0HR,General Needs,Flat,1975,Traditional,Storage heaters +12 Millfield Close,Marsh Gibbon,Bicester,,OX27 0HR,General Needs,Flat,1975,Traditional,Storage heaters +13 Millfield Close,Marsh Gibbon,Bicester,,OX27 0HR,General Needs,Flat,1975,Traditional,Storage heaters +21 Millfield Close,Marsh Gibbon,Bicester,,OX27 0HR,General Needs,Flat,1975,Traditional,Storage heaters +25 Millfield Close,Marsh Gibbon,Bicester,,OX27 0HR,General Needs,Flat,1975,Traditional,Storage heaters +27 Millfield Close,Marsh Gibbon,Bicester,,OX27 0HR,General Needs,Flat,1975,Traditional,Storage heaters +12 Poundon,Bicester,Oxon,,OX27 9AY,General Needs,House,1951,Traditional,ASHP +3 Oxford Down,Chinnor,,,OX39 4FF,General Needs,Flat,2018,Traditional,Natural gas (mains) +5 Oxford Down,Chinnor,,,OX39 4FF,General Needs,Maisonette,2018,Traditional,Natural gas (mains) +7 Oxford Down,Chinnor,,,OX39 4FF,General Needs,Flat,2018,Traditional,Natural gas (mains) +9 Oxford Down,Chinnor,,,OX39 4FF,General Needs,Maisonette,2018,Traditional,Natural gas (mains) +10 Oxford Down,Chinnor,,,OX39 4FF,General Needs,House,2018,Traditional,Natural gas (mains) +11 Oxford Down,Chinnor,,,OX39 4FF,General Needs,House,2018,Traditional,Natural gas (mains) +12 Oxford Down,Chinnor,,,OX39 4FF,General Needs,House,2018,Traditional,Natural gas (mains) +14 Oxford Down,Chinnor,,,OX39 4FF,General Needs,House,2018,Traditional,Natural gas (mains) +15 Oxford Down,Chinnor,,,OX39 4FF,General Needs,House,2018,Traditional,Natural gas (mains) +16 Oxford Down,Chinnor,,,OX39 4FF,General Needs,House,2018,Traditional,Natural gas (mains) +17 Oxford Down,Chinnor,,,OX39 4FF,General Needs,House,2018,Traditional,Natural gas (mains) +18 Oxford Down,Chinnor,,,OX39 4FF,General Needs,House,2018,Traditional,Natural gas (mains) +19 Oxford Down,Chinnor,,,OX39 4FF,General Needs,Flat,2018,Traditional,Natural gas (mains) +21 Oxford Down,Chinnor,,,OX39 4FF,General Needs,Maisonette,2018,Traditional,Natural gas (mains) +29 Oxford Down,Chinnor,,,OX39 4FF,General Needs,House,2018,Traditional,Natural gas (mains) +31 Oxford Down,Chinnor,,,OX39 4FF,General Needs,House,2018,Traditional,Natural gas (mains) +10 Windmill Close,Chinnor,,,OX39 4FG,General Needs,House,2018,Traditional,Natural gas (mains) +11 Windmill Close,Chinnor,,,OX39 4FG,General Needs,House,2018,Traditional,Natural gas (mains) \ No newline at end of file diff --git a/etl/eligibility/ha_15_32/HA32 - ASSET LIST.csv b/etl/eligibility/ha_15_32/HA32 - ASSET LIST.csv new file mode 100644 index 00000000..2c4d7467 --- /dev/null +++ b/etl/eligibility/ha_15_32/HA32 - ASSET LIST.csv @@ -0,0 +1,1419 @@ +UPRN,Dwelling name,Dwelling num,Street,Locality,Town,Postcode,Estate,Dwelling type,Year built,CH Boiler: type,CH Distribution: type +0370010000,,1,Sherwood Court,,Hull,HU11 4DF,SH1,Bungalow,1990,Gas Combination Boiler,Radiators +0370020000,,2,Sherwood Court,,Hull,HU11 4DF,SH1,Bungalow,1990,Gas Combination Boiler,Radiators +0370030000,,3,Sherwood Court,,Hull,HU11 4DF,SH1,Bungalow,1990,Gas Combination Boiler,Radiators +0370040000,,4,Sherwood Court,,Hull,HU11 4DF,SH1,Bungalow,1990,Gas Combination Boiler,Radiators +0370050000,,5,Sherwood Court,,Hull,HU11 4DF,SH1,Bungalow,1990,Gas Combination Boiler,Radiators +0370060000,,6,Sherwood Court,,Hull,HU11 4DF,SH1,Bungalow,1990,Gas Combination Boiler,Radiators +0370070000,,7,Sherwood Court,,Hull,HU11 4DF,SH1,Bungalow,1990,Gas Combination Boiler,Radiators +0370080000,,8,Sherwood Court,,Hull,HU11 4DF,SH1,Bungalow,1990,Gas Combination Boiler,Radiators +0370090000,,9,Sherwood Court,,Hull,HU11 4DF,SH1,Bungalow,1990,Gas Combination Boiler,Radiators +0370100000,,10,Sherwood Court,,Hull,HU11 4DF,SH1,Bungalow,1990,Gas Combination Boiler,Radiators +0800150000,,15,Welwick Road,,Patrington,HU12 0RP,PA1,Bungalow,1850,Gas Combination Boiler,Radiators +0800170000,,17,Welwick Road,,Patrington,HU12 0RP,PA1,Bungalow,1850,Gas Combination Boiler,Radiators +010094917978,,7,Orchard Garth,,Hessle,HU13 9AL,OG1,Bungalow,2022,Gas Combination Boiler,Radiators +010094917979,,8,Orchard Garth,,Hessle,HU13 9AL,,Bungalow,2022,Gas Combination Boiler,Radiators +010094917980,,9,Orchard Garth,,Hessle,HU13 9AL,OG1,Bungalow,2022,Gas Combination Boiler,Radiators +010094917981,,10,Orchard Garth,,Hessle,HU13 9AL,OG1,Bungalow,2022,Gas Combination Boiler,Radiators +010094917982,,11,Orchard Garth,,Hessle,HU13 9AL,OG1,Bungalow,2022,Gas Combination Boiler,Radiators +010094917983,,12,Orchard Garth,,Hessle,HU13 9AL,OG1,Bungalow,2022,Gas Combination Boiler,Radiators +010094917985,,14,Orchard Garth,,Hessle,HU13 9AL,OG1,Bungalow,2022,Gas Combination Boiler,Radiators +010094917972,,1,Orchard Garth,,Hessle,HU13 9AL,OG1,Bungalow,2022,, +010094917973,,2,Orchard Garth,,Hessle,HU13 9AL,OG1,Bungalow,2022,, +010094917974,,3,Orchard Garth,,Hessle,HU13 9AL,OG1,Bungalow,2022,, +010094917996,Apartment 1,2054,Hessle Road,HU13 9BF,Hessle,HU13 9BF,OG1,Flat,2022,, +010094917997,Apartment 2,2054,Hessle Road,,Hessle,HU13 9BF,OG1,Flat,2022,, +0730150000,,15,Main Street,,Tickton,HU17 9SJ,MA1,House,1872,Gas Combination Boiler,Radiators +0730190000,,19,Main Street,,Tickton,HU17 9SJ,MA1,House,1872,Gas Combination Boiler,Radiators +0730210000,,21,Main Street,,Tickton,HU17 9SJ,MA1,House,1872,Gas Combination Boiler,Radiators +0730230000,,23,Main Street,,Tickton,HU17 9SJ,MA1,House,1872,Gas Combination Boiler,Radiators +0730170000,,17,Main Street,,Tickton,HU17 9SJ,MA1,House,1872,N/A,Radiators +0820020000,,2,Mereside,,Hornsea,HU18 1BE,HM1,Flat,1984,Gas Combination Boiler,Radiators +0820030000,,3,Mereside,,Hornsea,HU18 1BE,HM1,Flat,1984,Gas Combination Boiler,Radiators +0820010000,,4,Mereside,,Hornsea,HU18 1BE,HM1,Flat,1984,Gas Combination Boiler,Radiators +0820040000,,4,Mereside,,Hornsea,HU18 1BE,HM1,Flat,1984,Gas Combination Boiler,Radiators +0720010000,,1,Northumberland Avenue,,Hull,HU2 0LB,RN1,Flat,1980,N/A Gas Communal Boiler,Radiators +0720020000,,2,Northumberland Avenue,,Hull,HU2 0LB,RN1,Flat,1980,N/A Gas Communal Boiler,Radiators +0720030000,,3,Northumberland Avenue,,Hull,HU2 0LB,RN1,Flat,1980,N/A Gas Communal Boiler,Radiators +0720040000,,4,Northumberland Avenue,,Hull,HU2 0LB,RN1,Flat,1980,N/A Gas Communal Boiler,Radiators +0720050000,,5,Northumberland Avenue,,Hull,HU2 0LB,RN1,Flat,1980,N/A Gas Communal Boiler,Radiators +0720060000,,6,Northumberland Avenue,,Hull,HU2 0LB,RN1,Flat,1980,N/A Gas Communal Boiler,Radiators +0720070000,,7,Northumberland Avenue,,Hull,HU2 0LB,RN1,Flat,1980,N/A Gas Communal Boiler,Radiators +0720080000,,8,Northumberland Avenue,,Hull,HU2 0LB,RN1,Flat,1980,N/A Gas Communal Boiler,Radiators +0720090000,,9,Northumberland Avenue,,Hull,HU2 0LB,RN1,Flat,1980,N/A Gas Communal Boiler,Radiators +0720100000,,10,Northumberland Avenue,,Hull,HU2 0LB,RN1,Flat,1980,N/A Gas Communal Boiler,Radiators +0720110000,,11,Northumberland Avenue,,Hull,HU2 0LB,RN1,Flat,1980,N/A Gas Communal Boiler,Radiators +0720120000,,12,Northumberland Avenue,,Hull,HU2 0LB,RN1,Flat,1980,N/A Gas Communal Boiler,Radiators +0720130000,,13,Northumberland Avenue,,Hull,HU2 0LB,RN1,Flat,1980,N/A Gas Communal Boiler,Radiators +0720140000,,14,Northumberland Avenue,,Hull,HU2 0LB,RN1,Flat,1980,N/A Gas Communal Boiler,Radiators +0720150000,,15,Northumberland Avenue,,Hull,HU2 0LB,RN1,Flat,1980,N/A Gas Communal Boiler,Radiators +0720160000,,16,Northumberland Avenue,,Hull,HU2 0LB,RN1,Flat,1980,N/A Gas Communal Boiler,Radiators +0580010000,,1,Icelandic Close,,Hull,HU3 2QP,IC1,Bungalow,1952,Gas Combination Boiler,Radiators +0580030000,,3,Icelandic Close,,Hull,HU3 2QP,IC1,Bungalow,1952,Gas Combination Boiler,Radiators +0580050000,,5,Icelandic Close,,Hull,HU3 2QP,IC1,Bungalow,1952,Gas Combination Boiler,Radiators +0580070000,,7,Icelandic Close,,Hull,HU3 2QP,IC1,Bungalow,1952,Gas Combination Boiler,Radiators +0580090000,,9,Icelandic Close,,Hull,HU3 2QP,IC1,Bungalow,1952,Gas Combination Boiler,Radiators +0580110000,,11,Icelandic Close,,Hull,HU3 2QP,IC1,Bungalow,1952,Gas Combination Boiler,Radiators +0580130000,,13,Icelandic Close,,Hull,HU3 2QP,IC1,Bungalow,1952,Gas Combination Boiler,Radiators +0580150000,,15,Icelandic Close,,Hull,HU3 2QP,IC1,Bungalow,1952,Gas Combination Boiler,Radiators +0580170000,,17,Icelandic Close,,Hull,HU3 2QP,IC1,Bungalow,1952,Gas Combination Boiler,Radiators +0580020000,,2,Icelandic Close,,Hull,HU3 2QP,IC1,Flat,1952,Gas Combination Boiler,Radiators +0580040000,,4,Icelandic Close,,Hull,HU3 2QP,IC1,Flat,1952,Gas Combination Boiler,Radiators +0580060000,,6,Icelandic Close,,Hull,HU3 2QP,IC1,Flat,1952,Gas Combination Boiler,Radiators +0580080000,,8,Icelandic Close,,Hull,HU3 2QP,IC1,Flat,1952,Gas Combination Boiler,Radiators +0580100000,,10,Icelandic Close,,Hull,HU3 2QP,IC1,Flat,1952,Gas Combination Boiler,Radiators +0580120000,,12,Icelandic Close,,Hull,HU3 2QP,IC1,Flat,1952,Gas Combination Boiler,Radiators +0580140000,,14,Icelandic Close,,Hull,HU3 2QP,IC1,Flat,1952,Gas Combination Boiler,Radiators +0580160000,,16,Icelandic Close,,Hull,HU3 2QP,IC1,Flat,1952,Gas Combination Boiler,Radiators +0580180000,,18,Icelandic Close,,Hull,HU3 2QP,IC1,Flat,1952,Gas Combination Boiler,Radiators +0580200000,,20,Icelandic Close,,Hull,HU3 2QP,IC1,Flat,1952,Gas Combination Boiler,Radiators +0580220000,,22,Icelandic Close,,Hull,HU3 2QP,IC1,Flat,1952,Gas Combination Boiler,Radiators +0580240000,,24,Icelandic Close,,Hull,HU3 2QP,IC1,Flat,1952,Gas Combination Boiler,Radiators +0580260000,,26,Icelandic Close,,Hull,HU3 2QP,IC1,Flat,1952,Gas Combination Boiler,Radiators +0580280000,,28,Icelandic Close,,Hull,HU3 2QP,IC1,Flat,1952,Gas Combination Boiler,Radiators +0580300000,,30,Icelandic Close,,Hull,HU3 2QP,IC1,Flat,1952,Gas Combination Boiler,Radiators +0580320000,,32,Icelandic Close,,Hull,HU3 2QP,IC1,Flat,1952,Gas Combination Boiler,Radiators +0580340000,,34,Icelandic Close,,Hull,HU3 2QP,IC1,Flat,1952,Gas Combination Boiler,Radiators +0580360000,,36,Icelandic Close,,Hull,HU3 2QP,IC1,Flat,1952,Gas Combination Boiler,Radiators +05800400000,,,Icelandic Close,,Hull,HU3 2QP,IC1,Store Room,1952,N/A,N/A +0620020000,,2,St Pancras Close,,Hull,HU3 2SH,SP1,Bungalow,1952,Gas Combination Boiler,Radiators +0620040000,,4,St Pancras Close,,Hull,HU3 2SH,SP1,Bungalow,1952,Gas Combination Boiler,Radiators +0620060000,,6,St Pancras Close,,Hull,HU3 2SH,SP1,Bungalow,1952,Gas Combination Boiler,Radiators +0770060000,,6,Onyx Grove,,Hull,HU3 5AQ,JN1,House,2011,Gas Combination Boiler,Radiators +0770080000,,8,Onyx Grove,,Hull,HU3 5AQ,JN1,House,2011,Gas Combination Boiler,Radiators +0760030000,,3,Junella Close,,Hull,HU3 5DU,JN1,Bungalow,2011,Gas Combination Boiler,Radiators +0760040000,,4,Junella Close,,Hull,HU3 5DU,JN1,Bungalow,2011,Gas Combination Boiler,Radiators +0760050000,,5,Junella Close,,Hull,HU3 5DU,JN1,Bungalow,2011,Gas Combination Boiler,Radiators +0760060000,,6,Junella Close,,Hull,HU3 5DU,JN1,Bungalow,2011,Gas Combination Boiler,Radiators +0760070000,,7,Junella Close,,Hull,HU3 5DU,JN1,Bungalow,2011,Gas Combination Boiler,Radiators +0760080000,,8,Junella Close,,Hull,HU3 5DU,JN1,Bungalow,2011,Gas Combination Boiler,Radiators +0760270000,,27,Junella Close,,Hull,HU3 5DU,JN1,Bungalow,2011,Gas Combination Boiler,Radiators +0760280000,,28,Junella Close,,Hull,HU3 5DU,JN1,Bungalow,2011,Gas Combination Boiler,Radiators +0760290000,,29,Junella Close,,Hull,HU3 5DU,JN1,Bungalow,2011,Gas Combination Boiler,Radiators +0760300000,,30,Junella Close,,Hull,HU3 5DU,JN1,Bungalow,2011,Gas Combination Boiler,Radiators +0760310000,,31,Junella Close,,Hull,HU3 5DU,JN1,Bungalow,2011,Gas Combination Boiler,Radiators +0760320000,,32,Junella Close,,Hull,HU3 5DU,JN1,Bungalow,2011,Gas Combination Boiler,Radiators +0760330000,,33,Junella Close,,Hull,HU3 5DU,JN1,Bungalow,2011,Gas Combination Boiler,Radiators +0760340000,,34,Junella Close,,Hull,HU3 5DU,JN1,Bungalow,2011,Gas Combination Boiler,Radiators +0760010000,,1,Junella Close,,Hull,HU3 5DU,JN1,House,2011,Gas Combination Boiler,Radiators +0760020000,,2,Junella Close,,Hull,HU3 5DU,JN1,House,2011,Gas Combination Boiler,Radiators +0760090000,,9,Junella Close,,Hull,HU3 5DU,JN1,House,2011,Gas Combination Boiler,Radiators +0760100000,,10,Junella Close,,Hull,HU3 5DU,JN1,House,2011,Gas Combination Boiler,Radiators +S01HW10002,,2,Rhodes Street,,Hull,HU3 5RE,HW1,Bungalow,2017,Gas Combination Boiler,Radiators +S01HW10003,,3,Rhodes Street,,Hull,HU3 5RE,HW1,Bungalow,2017,Gas Combination Boiler,Radiators +S01HW10004,,4,Rhodes Street,,Hull,HU3 5RE,HW1,Bungalow,2017,Gas Combination Boiler,Radiators +S01HW11105,,5,Rhodes Street,,Hull,HU3 5RE,HW1,Bungalow,2017,Gas Combination Boiler,Radiators +S01HW10006,,6,Rhodes Street,,Hull,HU3 5RE,HW1,Bungalow,2017,Gas Combination Boiler,Radiators +S01HW111007,,7,Rhodes Street,,Hull,HU3 5RE,HW1,Bungalow,2017,Gas Combination Boiler,Radiators +S01HW110008,,8,Rhodes Street,,Hull,HU3 5RE,HW1,Bungalow,2017,Gas Combination Boiler,Radiators +SO1HW11009,,9,Rhodes Street,,Hull,HU3 5RE,HW1,Bungalow,2017,Gas Combination Boiler,Radiators +SO1HW11010,,10,Rhodes Street,,Hull,HU3 5RE,HW1,Bungalow,2017,Gas Combination Boiler,Radiators +SO1HW11011,,11,Rhodes Street,,Hull,HU3 5RE,HW1,Bungalow,2017,Gas Combination Boiler,Radiators +SO1HW11012,,12,Rhodes Street,,Hull,HU3 5RE,HW1,Bungalow,2017,Gas Combination Boiler,Radiators +SO1HW11014,,14,Rhodes Street,,Hull,HU3 5RE,HW1,Bungalow,2017,Gas Combination Boiler,Radiators +SO1HW11015,,15,Rhodes Street,,Hull,HU3 5RE,HW1,Bungalow,2017,Gas Combination Boiler,Radiators +SO1HW11016,,16,Rhodes Street,,Hull,HU3 5RE,HW1,Bungalow,2017,Gas Combination Boiler,Radiators +S01HW10005,,5,Cherry Garth,,Hull,HU3 5RQ,HW1,Bungalow,2017,Gas Combination Boiler,Radiators +S01HW10007,,7,Cherry Garth,,Hull,HU3 5RQ,HW1,Bungalow,2017,Gas Combination Boiler,Radiators +S01HW10009,,9,Cherry Garth,,Hull,HU3 5RQ,HW1,Bungalow,2017,Gas Combination Boiler,Radiators +S01HW10011,,11,Cherry Garth,,Hull,HU3 5RQ,HW1,Bungalow,2017,Gas Combination Boiler,Radiators +S01HW10012,,15,Cherry Garth,,Hull,HU3 5RQ,HW1,Bungalow,2017,Gas Combination Boiler,Radiators +SO1HW12003,,3,Cecil Street,,Hull,HU3 5SB,HW1,Bungalow,2017,Gas Combination Boiler,Radiators +SO1HW12004,,4,Cecil Street,,Hull,HU3 5SB,HW1,Bungalow,2017,Gas Combination Boiler,Radiators +SO1HW12005,,5,Cecil Street,,Hull,HU3 5SB,HW1,Bungalow,2017,Gas Combination Boiler,Radiators +SO1HW12006,,6,Cecil Street,,Hull,HU3 5SB,HW1,Bungalow,2017,Gas Combination Boiler,Radiators +SO1HW12007,,7,Cecil Street,,Hull,HU3 5SB,HW1,Bungalow,2017,Gas Combination Boiler,Radiators +SO1HW12008,,8,Cecil Street,,Hull,HU3 5SB,HW1,Bungalow,2017,Gas Combination Boiler,Radiators +SO1HW12009,,9,Cecil Street,,Hull,HU3 5SB,HW1,Bungalow,2017,Gas Combination Boiler,Radiators +SO1HW12010,,10,Cecil Street,,Hull,HU3 5SB,HW1,Bungalow,2017,Gas Combination Boiler,Radiators +SO1HW12011,,11,Cecil Street,,Hull,HU3 5SB,HW1,Bungalow,2017,Gas Combination Boiler,Radiators +SO1HW12012,,12,Cecil Street,,Hull,HU3 5SB,HW1,Bungalow,2017,Gas Combination Boiler,Radiators +SO1HW12014,,14,Cecil Street,,Hull,HU3 5SB,HW1,Bungalow,2017,Gas Combination Boiler,Radiators +S01HW11005,,5,Greek Street,,Hull,HU3 6DD,HW1,Bungalow,2017,Gas Combination Boiler,Radiators +S01HW11007,,7,Greek Street,,Hull,HU3 6DD,HW1,Bungalow,2017,Gas Combination Boiler,Radiators +S01HW11009,,9,Greek Street,,Hull,HU3 6DD,HW1,Bungalow,2017,Gas Combination Boiler,Radiators +S01HW110011,,11,Greek Street,,Hull,HU3 6DD,HW1,Bungalow,2017,Gas Combination Boiler,Radiators +S01HW110015,,15,Greek Street,,Hull,HU3 6DD,HW1,Bungalow,2017,Gas Combination Boiler,Radiators +S01HW10017,,17,Greek Street,,Hull,HU3 6DD,HW1,Bungalow,2017,Gas Combination Boiler,Radiators +S01HW10019,,19,Greek Street,,Hull,HU3 6DD,HW1,Bungalow,2017,Gas Combination Boiler,Radiators +S01HW10021,,21,Greek Street,,Hull,HU3 6DD,HW1,Bungalow,2017,Gas Combination Boiler,Radiators +S01HW10023,,23,Greek Street,,Hull,HU3 6DD,HW1,Bungalow,2017,Gas Combination Boiler,Radiators +S01HW10078,,78,Greek Street,,Hull,HU3 6DE,HW1,Bungalow,2017,Gas Combination Boiler,Radiators +0680270000,,27,Seaton Grove,,Hull,HU4 6HF,GY2,Bungalow,2001,Gas Combination Boiler,Radiators +0680290000,,29,Seaton Grove,,Hull,HU4 6HF,GY2,Bungalow,2001,Gas Combination Boiler,Radiators +0680310000,,31,Seaton Grove,,Hull,HU4 6HF,GY2,Bungalow,2001,Gas Combination Boiler,Radiators +0680350000,,35,Seaton Grove,,Hull,HU4 6HF,GY2,Bungalow,2001,Gas Combination Boiler,Radiators +0680370000,,37,Seaton Grove,,Hull,HU4 6HF,GY2,Bungalow,2001,Gas Combination Boiler,Radiators +0680390000,,39,Seaton Grove,,Hull,HU4 6HF,GY2,Bungalow,2001,Gas Combination Boiler,Radiators +0680410000,,41,Seaton Grove,,Hull,HU4 6HF,GY2,Bungalow,2001,Gas Combination Boiler,Radiators +0680430000,,43,Seaton Grove,,Hull,HU4 6HF,GY2,Bungalow,2001,Gas Combination Boiler,Radiators +0680330000,,33,Seaton Grove,,Hull,HU4 6HF,GY2,Bungalow Disabled,2001,Gas Combination Boiler,Radiators +0670070000,,7,Norton Grove,,Hull,HU4 6HQ,GY2,Bungalow,2001,Gas Combination Boiler,Radiators +0690280000,,28,Coxwold Grove,,Hull,HU4 6HH,GY2,Bungalow,2001,Gas Combination Boiler,Radiators +0690300000,,30,Coxwold Grove,,Hull,HU4 6HH,GY2,Bungalow,2001,Gas Combination Boiler,Radiators +0690320000,,32,Coxwold Grove,,Hull,HU4 6HH,GY2,Bungalow,2001,Gas Combination Boiler,Radiators +0690340000,,34,Coxwold Grove,,Hull,HU4 6HH,GY2,Bungalow,2001,Gas Combination Boiler,Radiators +0690360000,,36,Coxwold Grove,,Hull,HU4 6HH,GY2,Bungalow,2001,Gas Combination Boiler,Radiators +0690380000,,38,Coxwold Grove,,Hull,HU4 6HH,GY2,Bungalow,2001,Gas Combination Boiler,Radiators +0690400000,,40,Coxwold Grove,,Hull,HU4 6HH,GY2,Bungalow,2001,Gas Combination Boiler,Radiators +0690420000,,42,Coxwold Grove,,Hull,HU4 6HH,GY2,Bungalow,2001,Gas Combination Boiler,Radiators +0690440000,,44,Coxwold Grove,,Hull,HU4 6HH,GY2,Bungalow,2001,Gas Combination Boiler,Radiators +0670110000,,11,Norton Grove,,Hull,HU4 6HQ,GY2,Bungalow,2001,Gas Combination Boiler,Radiators +0670150000,,15,Norton Grove,,Hull,HU4 6HQ,GY2,Bungalow,2001,Gas Combination Boiler,Radiators +0670190000,,19,Norton Grove,,Hull,HU4 6HQ,GY2,Bungalow,2001,Gas Combination Boiler,Radiators +0670210000,,21,Norton Grove,,Hull,HU4 6HQ,GY2,Bungalow,2001,Gas Combination Boiler,Radiators +0670090000,,9,Norton Grove,,Hull,HU4 6HQ,GY2,Bungalow Disabled,2001,Gas Combination Boiler,Radiators +0670170000,,17,Norton Grove,,Hull,HU4 6HQ,GY2,Bungalow Disabled,2001,Gas Combination Boiler,Radiators +0650560000,,56,Priory Grove,,Hull,HU4 6LU,GY1,Bungalow,2000,Gas Combination Boiler,Radiators +0650580000,,58,Priory Grove,,Hull,HU4 6LU,GY1,Bungalow,2000,Gas Combination Boiler,Radiators +0650600000,,60,Priory Grove,,Hull,HU4 6LU,GY1,Bungalow,2000,Gas Combination Boiler,Radiators +0660300000,,30,East Grove,,Hull,HU4 6NF,GY1,Bungalow,2000,Gas Combination Boiler,Radiators +0660320000,,32,East Grove,,Hull,HU4 6NF,GY1,Bungalow,2000,Gas Combination Boiler,Radiators +0660340000,,34,East Grove,,Hull,HU4 6NF,GY1,Bungalow,2000,Gas Combination Boiler,Radiators +0660360000,,36,East Grove,,Hull,HU4 6NF,GY1,Bungalow,2000,Gas Combination Boiler,Radiators +0660380000,,38,East Grove,,Hull,HU4 6NF,GY1,Bungalow,2000,Gas Combination Boiler,Radiators +0660400000,,40,East Grove,,Hull,HU4 6NF,GY1,Bungalow,2000,Gas Combination Boiler,Radiators +0660420000,,42,East Grove,,Hull,HU4 6NF,GY1,Bungalow,2000,Gas Combination Boiler,Radiators +0660440000,,44,East Grove,,Hull,HU4 6NF,GY1,Bungalow,2000,Gas Combination Boiler,Radiators +0660460000,,46,East Grove,,Hull,HU4 6NF,GY1,Bungalow,2000,Gas Combination Boiler,Radiators +0660480000,,48,East Grove,,Hull,HU4 6NF,GY1,Bungalow,2000,Gas Combination Boiler,Radiators +0660520000,,52,East Grove,,Hull,HU4 6NF,GY1,Bungalow,2000,Gas Combination Boiler,Radiators +0660540000,,54,East Grove,,Hull,HU4 6NF,GY1,Bungalow,2000,Gas Combination Boiler,Radiators +0660560000,,56,East Grove,,Hull,HU4 6NF,GY1,Bungalow,2000,Gas Combination Boiler,Radiators +0660580000,,58,East Grove,,Hull,HU4 6NF,GY1,Bungalow,2000,Gas Combination Boiler,Radiators +0660620000,,62,East Grove,,Hull,HU4 6NF,GY1,Bungalow,2000,Gas Combination Boiler,Radiators +0660640000,,64,East Grove,,Hull,HU4 6NF,GY1,Bungalow,2000,Gas Combination Boiler,Radiators +0660660000,,66,East Grove,,Hull,HU4 6NF,GY1,Bungalow,2000,Gas Combination Boiler,Radiators +0660680000,,68,East Grove,,Hull,HU4 6NF,GY1,Bungalow,2000,Gas Combination Boiler,Radiators +0660500000,,50,East Grove,,Hull,HU4 6NF,GY1,Bungalow Disabled,2000,Gas Combination Boiler,Radiators +0660600000,,60,East Grove,,Hull,HU4 6NF,GY1,Bungalow Disabled,2000,Gas Combination Boiler,Radiators +0810001000,,1,The Jacobs Homes,,Hull,HU4 6NW,TH1,Bungalow,2013,Gas Combination Boiler,Radiators +0810002000,,2,The Jacobs Homes,,Hull,HU4 6NW,TH1,Bungalow,2013,Gas Combination Boiler,Radiators +0810003000,,3,The Jacobs Homes,,Hull,HU4 6NW,TH1,Bungalow,2013,Gas Combination Boiler,Radiators +0810004000,,4,The Jacobs Homes,,Hull,HU4 6NW,TH1,Bungalow,2013,Gas Combination Boiler,Radiators +0810005000,,5,The Jacobs Homes,,Hull,HU4 6NW,TH1,Bungalow,2013,Gas Combination Boiler,Radiators +0810006000,,6,The Jacobs Homes,,Hull,HU4 6NW,TH1,Bungalow,2013,Gas Combination Boiler,Radiators +0810007000,,7,The Jacobs Homes,,Hull,HU4 6NW,TH1,Bungalow,2013,Gas Combination Boiler,Radiators +0810008000,,8,The Jacobs Homes,,Hull,HU4 6NW,TH1,Bungalow,2013,Gas Combination Boiler,Radiators +0810009000,,9,The Jacobs Homes,,Hull,HU4 6NW,TH1,Bungalow,2013,Gas Combination Boiler,Radiators +0810010000,,10,The Jacobs Homes,,Hull,HU4 6NW,TH1,Bungalow,2013,Gas Combination Boiler,Radiators +0810011000,,11,The Jacobs Homes,,Hull,HU4 6NW,TH1,Bungalow,2013,Gas Combination Boiler,Radiators +0810012000,,12,The Jacobs Homes,,Hull,HU4 6NW,TH1,Bungalow,2013,Gas Combination Boiler,Radiators +0810014000,,14,The Jacobs Homes,,Hull,HU4 6NW,TH1,Bungalow,2013,Gas Combination Boiler,Radiators +0810015000,,15,The Jacobs Homes,,Hull,HU4 6NW,TH1,Bungalow,2013,Gas Combination Boiler,Radiators +0810016000,,16,The Jacobs Homes,,Hull,HU4 6NW,TH1,Bungalow,2013,Gas Combination Boiler,Radiators +0810017000,,17,The Jacobs Homes,,Hull,HU4 6NW,TH1,Bungalow,2013,Gas Combination Boiler,Radiators +0810018000,,18,The Jacobs Homes,,Hull,HU4 6NW,TH1,Bungalow,2013,Gas Combination Boiler,Radiators +0810019000,,19,The Jacobs Homes,,Hull,HU4 6NW,TH1,Bungalow,2013,Gas Combination Boiler,Radiators +0810020000,,20,The Jacobs Homes,,Hull,HU4 6NW,TH1,Bungalow,2013,Gas Combination Boiler,Radiators +0810021000,,21,The Jacobs Homes,,Hull,HU4 6NW,TH1,Bungalow,2013,Gas Combination Boiler,Radiators +0079790000,,979,Hessle Road,,Hull,HU4 6QG,SU4,Bungalow,1993,Gas Combination Boiler,Radiators +0079810000,,981,Hessle Road,,Hull,HU4 6QG,SU4,Bungalow,1993,Gas Combination Boiler,Radiators +0079830000,,983,Hessle Road,,Hull,HU4 6QG,SU4,Bungalow,1993,Gas Combination Boiler,Radiators +0079850000,,985,Hessle Road,,Hull,HU4 6QG,SU4,Bungalow,1993,Gas Combination Boiler,Radiators +0079710000,,971,Hessle Road,,Hull,HU4 6QG,SU4,Flat,1993,Gas Combination Boiler,Radiators +0079730000,,973,Hessle Road,,Hull,HU4 6QG,SU4,Flat,1993,Gas Combination Boiler,Radiators +0079750000,,975,Hessle Road,,Hull,HU4 6QG,SU4,Flat,1993,Gas Combination Boiler,Radiators +0079770000,,977,Hessle Road,,Hull,HU4 6QG,SU4,Flat,1993,Gas Combination Boiler,Radiators +0040010000,,1,Christopher Pickering Lodge,,Hull,HU4 6RS,SU2,Flat,1991,N/A,Storage Heaters +0040020000,,2,Christopher Pickering Lodge,,Hull,HU4 6RS,SU2,Flat,1991,N/A,Storage Heaters +0040030000,,3,Christopher Pickering Lodge,,Hull,HU4 6RS,SU2,Flat,1991,N/A,Storage Heaters +0040040000,,4,Christopher Pickering Lodge,,Hull,HU4 6RS,SU2,Flat,1991,N/A,Storage Heaters +0040060000,,6,Christopher Pickering Lodge,,Hull,HU4 6RS,SU2,Flat,1991,N/A,Storage Heaters +0040070000,,7,Christopher Pickering Lodge,,Hull,HU4 6RS,SU2,Flat,1991,N/A,Storage Heaters +0040080000,,8,Christopher Pickering Lodge,,Hull,HU4 6RS,SU2,Flat,1991,N/A,Storage Heaters +0040090000,,9,Christopher Pickering Lodge,,Hull,HU4 6RS,SU2,Flat,1991,N/A,Storage Heaters +0040100000,,10,Christopher Pickering Lodge,,Hull,HU4 6RS,SU2,Flat,1991,N/A,Storage Heaters +0040110000,,11,Christopher Pickering Lodge,,Hull,HU4 6RS,SU2,Flat,1991,N/A,Storage Heaters +0040120000,,12,Christopher Pickering Lodge,,Hull,HU4 6RS,SU2,Flat,1991,N/A,Storage Heaters +0040140000,,14,Christopher Pickering Lodge,,Hull,HU4 6RS,SU2,Flat,1991,N/A,Storage Heaters +0040150000,,15,Christopher Pickering Lodge,,Hull,HU4 6RS,SU2,Flat,1991,N/A,Storage Heaters +0040160000,,16,Christopher Pickering Lodge,,Hull,HU4 6RS,SU2,Flat,1991,N/A,Storage Heaters +0040170000,,17,Christopher Pickering Lodge,,Hull,HU4 6RS,SU2,Flat,1991,N/A,Storage Heaters +0040180000,,18,Christopher Pickering Lodge,,Hull,HU4 6RS,SU2,Flat,1991,N/A,Storage Heaters +0040190000,,19,Christopher Pickering Lodge,,Hull,HU4 6RS,SU2,Flat,1991,N/A,Storage Heaters +0040200000,,20,Christopher Pickering Lodge,,Hull,HU4 6RS,SU2,Flat,1991,N/A,Storage Heaters +0040210000,,21,Christopher Pickering Lodge,,Hull,HU4 6RS,SU2,Flat,1991,N/A,Storage Heaters +0040220000,,22,Christopher Pickering Lodge,,Hull,HU4 6RS,SU2,Flat,1991,N/A,Storage Heaters +0040230000,,23,Christopher Pickering Lodge,,Hull,HU4 6RS,SU2,Flat,1991,N/A,Storage Heaters +0040240000,,24,Christopher Pickering Lodge,,Hull,HU4 6RS,SU2,Flat,1991,N/A,Storage Heaters +0040250000,,25,Christopher Pickering Lodge,,Hull,HU4 6RS,SU2,Flat,1991,N/A,Storage Heaters +0040260000,,26,Christopher Pickering Lodge,,Hull,HU4 6RS,SU2,Flat,1991,N/A,Storage Heaters +0040270000,,27,Christopher Pickering Lodge,,Hull,HU4 6RS,SU2,Flat,1991,N/A,Storage Heaters +0040280000,,28,Christopher Pickering Lodge,,Hull,HU4 6RS,SU2,Flat,1991,N/A,Storage Heaters +0040290000,,29,Christopher Pickering Lodge,,Hull,HU4 6RS,SU2,Flat,1991,N/A,Storage Heaters +0040300000,,30,Christopher Pickering Lodge,,Hull,HU4 6RS,SU2,Flat,1991,N/A,Storage Heaters +0040310000,,31,Christopher Pickering Lodge,,Hull,HU4 6RS,SU2,Flat,1991,N/A,Storage Heaters +0040320000,,32,Christopher Pickering Lodge,,Hull,HU4 6RS,SU2,Flat,1991,N/A,Storage Heaters +0040330000,,33,Christopher Pickering Lodge,,Hull,HU4 6RS,SU2,Flat,1991,N/A,Storage Heaters +0040340000,,34,Christopher Pickering Lodge,,Hull,HU4 6RS,SU2,Flat,1991,N/A,Storage Heaters +0040350000,,35,Christopher Pickering Lodge,,Hull,HU4 6RS,SU2,Flat,1991,N/A,Storage Heaters +0040360000,,36,Christopher Pickering Lodge,,Hull,HU4 6RS,SU2,Flat,1991,N/A,Storage Heaters +0040370000,,37,Christopher Pickering Lodge,,Hull,HU4 6RS,SU2,Flat,1991,N/A,Storage Heaters +0040050000,,5,Christopher Pickering Lodge,,Hull,HU4 6RS,SU2,Flat Disabled,1991,N/A,Storage Heaters +0010010000,,1,Pickering Crescent,,Hull,HU4 6RZ,PC1,Bungalow,1910,Gas Combination Boiler,Radiators +0010020000,,2,Pickering Crescent,,Hull,HU4 6RZ,PC1,Bungalow,1910,Gas Combination Boiler,Radiators +0010030000,,3,Pickering Crescent,,Hull,HU4 6RZ,PC1,Bungalow,1910,Gas Combination Boiler,Radiators +0010040000,,4,Pickering Crescent,,Hull,HU4 6RZ,PC1,Bungalow,1910,Gas Combination Boiler,Radiators +0010050000,,5,Pickering Crescent,,Hull,HU4 6RZ,PC1,Bungalow,1910,Gas Combination Boiler,Radiators +0010060000,,6,Pickering Crescent,,Hull,HU4 6RZ,PC1,Bungalow,1910,Gas Combination Boiler,Radiators +0010070000,,7,Pickering Crescent,,Hull,HU4 6RZ,PC1,Bungalow,1910,Gas Combination Boiler,Radiators +0010080000,,8,Pickering Crescent,,Hull,HU4 6RZ,PC1,Bungalow,1910,Gas Combination Boiler,Radiators +0010090000,,9,Pickering Crescent,,Hull,HU4 6RZ,PC1,Bungalow,1910,Gas Combination Boiler,Radiators +0010100000,,10,Pickering Crescent,,Hull,HU4 6RZ,PC1,Bungalow,1910,Gas Combination Boiler,Radiators +0010110000,,11,Pickering Crescent,,Hull,HU4 6RZ,PC1,Bungalow,1910,Gas Combination Boiler,Radiators +0010120000,,12,Pickering Crescent,,Hull,HU4 6RZ,PC1,Bungalow,1910,Gas Combination Boiler,Radiators +0010130000,,13,Pickering Crescent,,Hull,HU4 6RZ,PC1,Bungalow,1919,Gas Combination Boiler,Radiators +0010140000,,14,Pickering Crescent,,Hull,HU4 6RZ,PC1,Bungalow,1919,Gas Combination Boiler,Radiators +0010150000,,15,Pickering Crescent,,Hull,HU4 6RZ,PC1,Bungalow,1919,Gas Combination Boiler,Radiators +0010160000,,16,Pickering Crescent,,Hull,HU4 6RZ,PC1,Bungalow,1919,Gas Combination Boiler,Radiators +0010170000,,17,Pickering Crescent,,Hull,HU4 6RZ,PC1,Bungalow,1919,Gas Combination Boiler,Radiators +0010180000,,18,Pickering Crescent,,Hull,HU4 6RZ,PC1,Bungalow,1919,Gas Combination Boiler,Radiators +0010190000,,19,Pickering Crescent,,Hull,HU4 6RZ,PC1,Bungalow,1919,Gas Combination Boiler,Radiators +0010200000,,20,Pickering Crescent,,Hull,HU4 6RZ,PC1,Bungalow,1919,Gas Combination Boiler,Radiators +0010210000,,21,Pickering Crescent,,Hull,HU4 6RZ,PC1,Bungalow,1955,Gas Combination Boiler,Radiators +0010220000,,22,Pickering Crescent,,Hull,HU4 6RZ,PC1,Bungalow,1955,Gas Combination Boiler,Radiators +0010230000,,23,Pickering Crescent,,Hull,HU4 6RZ,PC1,Bungalow,1955,Gas Combination Boiler,Radiators +0010240000,,24,Pickering Crescent,,Hull,HU4 6RZ,PC1,Bungalow,1955,Gas Combination Boiler,Radiators +0020010000,,1,Bush Close,,Hull,HU4 6SP,SU1,Bungalow,1988,Gas Combination Boiler,Radiators +0020030000,,3,Bush Close,,Hull,HU4 6SP,SU1,Bungalow,1988,Gas Combination Boiler,Radiators +0020040000,,4,Bush Close,,Hull,HU4 6SP,SU1,Bungalow,1988,Gas Combination Boiler,Radiators +0020050000,,5,Bush Close,,Hull,HU4 6SP,SU1,Bungalow,1988,Gas Combination Boiler,Radiators +0020060000,,6,Bush Close,,Hull,HU4 6SP,SU1,Bungalow,1988,Gas Combination Boiler,Radiators +0020070000,,7,Bush Close,,Hull,HU4 6SP,SU1,Bungalow,1988,Gas Combination Boiler,Radiators +0020080000,,8,Bush Close,,Hull,HU4 6SP,SU1,Bungalow,1988,Gas Combination Boiler,Radiators +0020090000,,9,Bush Close,,Hull,HU4 6SP,SU1,Bungalow,1988,Gas Combination Boiler,Radiators +0020100000,,10,Bush Close,,Hull,HU4 6SP,SU1,Bungalow,1988,Gas Combination Boiler,Radiators +0020110000,,11,Bush Close,,Hull,HU4 6SP,SU1,Bungalow,1988,Gas Combination Boiler,Radiators +0020120000,,12,Bush Close,,Hull,HU4 6SP,SU1,Bungalow,1988,Gas Combination Boiler,Radiators +0020140000,,14,Bush Close,,Hull,HU4 6SP,SU1,Bungalow,1988,Gas Combination Boiler,Radiators +0020020000,,2,Bush Close,,Hull,HU4 6SP,SU1,Bungalow Disabled,1988,Gas Combination Boiler,Radiators +0020160000,,16,Bush Close,,Hull,HU4 6SP,SU1,House,1988,Gas Combination Boiler,Radiators +0030460000,,46,Forester Way,,Hull,HU4 6SR,SU1,Bungalow,1988,Gas Combination Boiler,Radiators +0030480000,,48,Forester Way,,Hull,HU4 6SR,SU1,Bungalow,1988,Gas Combination Boiler,Radiators +0030500000,,50,Forester Way,,Hull,HU4 6SR,SU1,Bungalow,1988,Gas Combination Boiler,Radiators +0030520000,,52,Forester Way,,Hull,HU4 6SR,SU1,Bungalow,1988,Gas Combination Boiler,Radiators +0030540000,,54,Forester Way,,Hull,HU4 6SR,SU1,Bungalow,1988,Gas Combination Boiler,Radiators +0030560000,,56,Forester Way,,Hull,HU4 6SR,SU1,Bungalow,1988,Gas Combination Boiler,Radiators +0030580000,,58,Forester Way,,Hull,HU4 6SR,SU1,Bungalow,1988,Gas Combination Boiler,Radiators +0030600000,,60,Forester Way,,Hull,HU4 6SR,SU1,Bungalow,1988,Gas Combination Boiler,Radiators +0030620000,,62,Forester Way,,Hull,HU4 6SR,SU1,Bungalow,1988,Gas Combination Boiler,Radiators +0030640000,,64,Forester Way,,Hull,HU4 6SR,SU1,Bungalow,1988,Gas Combination Boiler,Radiators +0030660000,,66,Forester Way,,Hull,HU4 6SR,SU1,Bungalow,1988,Gas Combination Boiler,Radiators +0030680000,,68,Forester Way,,Hull,HU4 6SR,SU1,Bungalow,1988,Gas Combination Boiler,Radiators +0030700000,,70,Forester Way,,Hull,HU4 6SR,SU1,Bungalow,1988,Gas Combination Boiler,Radiators +0030740000,,74,Forester Way,,Hull,HU4 6SR,SU4,Bungalow,1988,Gas Combination Boiler,Radiators +0030720000,,72,Forester Way,,Hull,HU4 6SR,SU4,Bungalow Disabled,1988,Gas Combination Boiler,Radiators +0050010000,,1,Wheatfield Close,,Hull,HU4 6SY,SU3,Bungalow,1990,Gas Combination Boiler,Radiators +0050020000,,2,Wheatfield Close,,Hull,HU4 6SY,SU3,Bungalow,1990,Gas Combination Boiler,Radiators +0050030000,,3,Wheatfield Close,,Hull,HU4 6SY,SU3,Bungalow,1990,Gas Combination Boiler,Radiators +0050040000,,4,Wheatfield Close,,Hull,HU4 6SY,SU3,Bungalow,1990,Gas Combination Boiler,Radiators +0050050000,,5,Wheatfield Close,,Hull,HU4 6SY,SU3,Bungalow,1990,Gas Combination Boiler,Radiators +0050070000,,7,Wheatfield Close,,Hull,HU4 6SY,SU3,Bungalow,1990,Gas Combination Boiler,Radiators +0050150000,,15,Wheatfield Close,,Hull,HU4 6SY,SU3,Bungalow,1990,Gas Combination Boiler,Radiators +0050160000,,16,Wheatfield Close,,Hull,HU4 6SY,SU3,Bungalow,1990,Gas Combination Boiler,Radiators +0050170000,,17,Wheatfield Close,,Hull,HU4 6SY,SU3,Bungalow,1990,Gas Combination Boiler,Radiators +0050180000,,18,Wheatfield Close,,Hull,HU4 6SY,SU3,Bungalow,1990,Gas Combination Boiler,Radiators +0050210000,,21,Wheatfield Close,,Hull,HU4 6SY,SU3,Bungalow,1990,Gas Combination Boiler,Radiators +0050220000,,22,Wheatfield Close,,Hull,HU4 6SY,SU3,Bungalow,1990,Gas Combination Boiler,Radiators +0050250000,,25,Wheatfield Close,,Hull,HU4 6SY,SU3,Bungalow,1990,Gas Combination Boiler,Radiators +0050260000,,26,Wheatfield Close,,Hull,HU4 6SY,SU3,Bungalow,1990,Gas Combination Boiler,Radiators +0050270000,,27,Wheatfield Close,,Hull,HU4 6SY,SU3,Bungalow,1990,Gas Combination Boiler,Radiators +0050350000,,35,Wheatfield Close,,Hull,HU4 6SY,SU3,Bungalow,1990,Gas Combination Boiler,Radiators +0050360000,,36,Wheatfield Close,,Hull,HU4 6SY,SU3,Bungalow,1990,Gas Combination Boiler,Radiators +0050370000,,37,Wheatfield Close,,Hull,HU4 6SY,SU3,Bungalow,1990,Gas Combination Boiler,Radiators +0050380000,,38,Wheatfield Close,,Hull,HU4 6SY,SU3,Bungalow,1990,Gas Combination Boiler,Radiators +0050390000,,39,Wheatfield Close,,Hull,HU4 6SY,SU3,Bungalow,1990,Gas Combination Boiler,Radiators +0050410000,,41,Wheatfield Close,,Hull,HU4 6SY,SU3,Bungalow,1990,Gas Combination Boiler,Radiators +0050420000,,42,Wheatfield Close,,Hull,HU4 6SY,SU3,Bungalow,1990,Gas Combination Boiler,Radiators +0050430000,,43,Wheatfield Close,,Hull,HU4 6SY,SU3,Bungalow,1990,Gas Combination Boiler,Radiators +0050440000,,44,Wheatfield Close,,Hull,HU4 6SY,SU3,Bungalow,1990,Gas Combination Boiler,Radiators +0050060000,,6,Wheatfield Close,,Hull,HU4 6SY,SU3,Bungalow Disabled,1990,Gas Combination Boiler,Radiators +0050340000,,34,Wheatfield Close,,Hull,HU4 6SY,SU3,Bungalow Disabled,1990,Gas Combination Boiler,Radiators +0050080000,,8,Wheatfield Close,,Hull,HU4 6SY,SU3,Flat,1990,Gas Combination Boiler,Radiators +0050090000,,9,Wheatfield Close,,Hull,HU4 6SY,SU3,Flat,1990,Gas Combination Boiler,Radiators +0050100000,,10,Wheatfield Close,,Hull,HU4 6SY,SU3,Flat,1990,Gas Combination Boiler,Radiators +0050110000,,11,Wheatfield Close,,Hull,HU4 6SY,SU3,Flat,1990,Gas Combination Boiler,Radiators +0050120000,,12,Wheatfield Close,,Hull,HU4 6SY,SU3,Flat,1990,Gas Combination Boiler,Radiators +0050140000,,14,Wheatfield Close,,Hull,HU4 6SY,SU3,Flat,1990,Gas Combination Boiler,Radiators +0050190000,,19,Wheatfield Close,,Hull,HU4 6SY,SU3,Flat,1990,Gas Combination Boiler,Radiators +0050200000,,20,Wheatfield Close,,Hull,HU4 6SY,SU3,Flat,1990,Gas Combination Boiler,Radiators +0050230000,,23,Wheatfield Close,,Hull,HU4 6SY,SU3,Flat,1990,Gas Combination Boiler,Radiators +0050240000,,24,Wheatfield Close,,Hull,HU4 6SY,SU3,Flat,1990,Gas Combination Boiler,Radiators +0050280000,,28,Wheatfield Close,,Hull,HU4 6SY,SU3,Flat,1990,Gas Combination Boiler,Radiators +0050290000,,29,Wheatfield Close,,Hull,HU4 6SY,SU3,Flat,1990,Gas Combination Boiler,Radiators +0050300000,,30,Wheatfield Close,,Hull,HU4 6SY,SU3,Flat,1990,Gas Combination Boiler,Radiators +0050310000,,31,Wheatfield Close,,Hull,HU4 6SY,SU3,Flat,1990,Gas Combination Boiler,Radiators +0050320000,,32,Wheatfield Close,,Hull,HU4 6SY,SU3,Flat,1990,Gas Combination Boiler,Radiators +0050330000,,33,Wheatfield Close,,Hull,HU4 6SY,SU3,Flat,1990,Gas Combination Boiler,Radiators +0050450000,,45,Wheatfield Close,,Hull,HU4 6SY,SU3,Flat,1990,Gas Combination Boiler,Radiators +0050460000,,46,Wheatfield Close,,Hull,HU4 6SY,SU3,Flat,1990,Gas Combination Boiler,Radiators +0050470000,,47,Wheatfield Close,,Hull,HU4 6SY,SU3,Flat,1990,Gas Combination Boiler,Radiators +0050480000,,48,Wheatfield Close,,Hull,HU4 6SY,SU3,Flat,1990,Gas Combination Boiler,Radiators +0050490000,,49,Wheatfield Close,,Hull,HU4 6SY,SU3,Flat,1990,Gas Combination Boiler,Radiators +0050500000,,50,Wheatfield Close,,Hull,HU4 6SY,SU3,Flat,1990,Gas Combination Boiler,Radiators +0050400000,,40,Wheatfield Close,,Hull,HU4 6SY,SU3,House,1990,Gas Combination Boiler,Radiators +0400010000,,1,Summergroves Way,,Hull,HU4 6SZ,SU4,Bungalow,1993,Gas Combination Boiler,Radiators +0400030000,,3,Summergroves Way,,Hull,HU4 6SZ,SU4,Bungalow,1993,Gas Combination Boiler,Radiators +0400050000,,5,Summergroves Way,,Hull,HU4 6SZ,SU4,Bungalow,1993,Gas Combination Boiler,Radiators +0400070000,,7,Summergroves Way,,Hull,HU4 6SZ,SU4,Bungalow,1993,Gas Combination Boiler,Radiators +0400090000,,9,Summergroves Way,,Hull,HU4 6SZ,SU4,Bungalow,1993,Gas Combination Boiler,Radiators +0400110000,,11,Summergroves Way,,Hull,HU4 6SZ,SU4,Bungalow,1993,Gas Combination Boiler,Radiators +0400150000,,15,Summergroves Way,,Hull,HU4 6SZ,SU4,Bungalow,1993,Gas Combination Boiler,Radiators +0400170000,,17,Summergroves Way,,Hull,HU4 6SZ,SU4,Bungalow,1993,Gas Combination Boiler,Radiators +0400190000,,19,Summergroves Way,,Hull,HU4 6SZ,SU4,Bungalow,1993,Gas Combination Boiler,Radiators +0400210000,,21,Summergroves Way,,Hull,HU4 6SZ,SU4,Bungalow,1993,Gas Combination Boiler,Radiators +0060010000,,1,Walnut Tree Way,,Hull,HU4 6TG,SU4,Bungalow,1993,Gas Combination Boiler,Radiators +0060020000,,2,Walnut Tree Way,,Hull,HU4 6TG,SU4,Bungalow,1993,Gas Combination Boiler,Radiators +0060030000,,3,Walnut Tree Way,,Hull,HU4 6TG,SU4,Bungalow,1993,Gas Combination Boiler,Radiators +0060040000,,4,Walnut Tree Way,,Hull,HU4 6TG,SU4,Bungalow,1993,Gas Combination Boiler,Radiators +0060050000,,5,Walnut Tree Way,,Hull,HU4 6TG,SU4,Bungalow,1993,Gas Combination Boiler,Radiators +0060060000,,6,Walnut Tree Way,,Hull,HU4 6TG,SU4,Bungalow,1993,Gas Combination Boiler,Radiators +0060070000,,7,Walnut Tree Way,,Hull,HU4 6TG,SU4,Bungalow,1993,Gas Combination Boiler,Radiators +0060080000,,8,Walnut Tree Way,,Hull,HU4 6TG,SU4,Bungalow,1993,Gas Combination Boiler,Radiators +0060090000,,9,Walnut Tree Way,,Hull,HU4 6TG,SU4,Bungalow,1993,Gas Combination Boiler,Radiators +0780010000,,1,Rokeby Avenue,,Hull,HU4 7ND,RK1,Dormer Bungalow,2011,Gas Combination Boiler,Radiators +0780020000,,2,Rokeby Avenue,,Hull,HU4 7ND,RK1,Dormer Bungalow,2011,Gas Combination Boiler,Radiators +0780030000,,3,Rokeby Avenue,,Hull,HU4 7ND,RK1,Dormer Bungalow,2011,Gas Combination Boiler,Radiators +0780040000,,4,Rokeby Avenue,,Hull,HU4 7ND,RK1,Dormer Bungalow,2011,Gas Combination Boiler,Radiators +0790050000,,5,Quilter Avenue,,Hull,HU4 7NG,RK1,Dormer Bungalow,2011,Gas Combination Boiler,Radiators +0790060000,,6,Quilter Avenue,,Hull,HU4 7NG,RK1,Dormer Bungalow,2011,Gas Combination Boiler,Radiators +0790070000,,7,Quilter Avenue,,Hull,HU4 7NG,RK1,Dormer Bungalow,2011,Gas Combination Boiler,Radiators +0790080000,,8,Quilter Avenue,,Hull,HU4 7NG,RK1,Dormer Bungalow,2011,Gas Combination Boiler,Radiators +0790090000,,9,Quilter Avenue,,Hull,HU4 7NG,RK1,Dormer Bungalow,2011,Gas Combination Boiler,Radiators +0790100000,,10,Quilter Avenue,,Hull,HU4 7NG,RK1,Dormer Bungalow,2011,Gas Combination Boiler,Radiators +111111,Bilsons Yard,10,Reynoldson Street,Newland,Hull,HU5 3DS,NW1,Dormer Bungalow,2020,Gas Combination Boiler,Radiators +111112,Bilsons Yard,12,Reynoldson Street,Newland,Hull,HU5 3DS,NW1,Dormer Bungalow,2020,Gas Combination Boiler,Radiators +0562910000,,291,Cottingham Road,,Hull,HU5 4AT,BF2,Bungalow,1997,Gas Combination Boiler,Radiators +0562930000,,293,Cottingham Road,,Hull,HU5 4AT,BF2,Bungalow,1997,Gas Combination Boiler,Radiators +0562950000,,295,Cottingham Road,,Hull,HU5 4AT,BF2,Bungalow,1997,Gas Combination Boiler,Radiators +0563050000,,305,Cottingham Road,,Hull,HU5 4AT,BF2,Bungalow,1997,Gas Combination Boiler,Radiators +0563070000,,307,Cottingham Road,,Hull,HU5 4AT,BF2,Bungalow,1997,Gas Combination Boiler,Radiators +0563090000,,309,Cottingham Road,,Hull,HU5 4AT,BF2,Bungalow,1997,Gas Combination Boiler,Radiators +0562970000,,297,Cottingham Road,,Hull,HU5 4AT,BF2,Flat,1997,Gas Combination Boiler,Radiators +0562990000,,299,Cottingham Road,,Hull,HU5 4AT,BF2,Flat,1997,Gas Combination Boiler,Radiators +0563010000,,301,Cottingham Road,,Hull,HU5 4AT,BF2,Flat,1997,Gas Combination Boiler,Radiators +0563030000,,303,Cottingham Road,,Hull,HU5 4AT,BF2,Flat,1997,Gas Combination Boiler,Radiators +0120010000,,1,Edith Cavell Court,,Hull,HU5 4BA,BE1,Bungalow,1994,Gas Combination Boiler,Radiators +0120020000,,2,Edith Cavell Court,,Hull,HU5 4BA,BE1,Bungalow,1994,Gas Combination Boiler,Radiators +0120030000,,3,Edith Cavell Court,,Hull,HU5 4BA,BE1,Bungalow,1994,Gas Combination Boiler,Radiators +0120040000,,4,Edith Cavell Court,,Hull,HU5 4BA,BE1,Bungalow,1994,Gas Combination Boiler,Radiators +0120090000,,9,Edith Cavell Court,,Hull,HU5 4BA,BE1,Bungalow,1994,Gas Combination Boiler,Radiators +0120100000,,10,Edith Cavell Court,,Hull,HU5 4BA,BE1,Bungalow,1994,Gas Combination Boiler,Radiators +0120110000,,11,Edith Cavell Court,,Hull,HU5 4BA,BE1,Bungalow,1994,Gas Combination Boiler,Radiators +0120120000,,12,Edith Cavell Court,,Hull,HU5 4BA,BE1,Bungalow,1994,Gas Combination Boiler,Radiators +0120050000,,5,Edith Cavell Court,,Hull,HU5 4BA,BE1,Flat,1994,Gas Combination Boiler,Radiators +0120060000,,6,Edith Cavell Court,,Hull,HU5 4BA,BE1,Flat,1994,Gas Combination Boiler,Radiators +0120070000,,7,Edith Cavell Court,,Hull,HU5 4BA,BE1,Flat,1994,Gas Combination Boiler,Radiators +0120080000,,8,Edith Cavell Court,,Hull,HU5 4BA,BE1,Flat,1994,Gas Combination Boiler,Radiators +0111060000,,106,Barrington Avenue,,Hull,HU5 4BE,BE1,Bungalow,1994,Gas Combination Boiler,Radiators +0111120000,,112,Barrington Avenue,,Hull,HU5 4BE,BE1,Bungalow,1994,Gas Combination Boiler,Radiators +0111140000,,114,Barrington Avenue,,Hull,HU5 4BE,BE1,Bungalow,1994,Gas Combination Boiler,Radiators +0111160000,,116,Barrington Avenue,,Hull,HU5 4BE,BF2,Bungalow,1997,Gas Combination Boiler,Radiators +0111180000,,118,Barrington Avenue,,Hull,HU5 4BE,BF2,Bungalow,1997,Gas Combination Boiler,Radiators +0111200000,,120,Barrington Avenue,,Hull,HU5 4BE,BF2,Bungalow,1997,Gas Combination Boiler,Radiators +0111220000,,122,Barrington Avenue,,Hull,HU5 4BE,BF2,Bungalow,1997,Gas Combination Boiler,Radiators +0111240000,,124,Barrington Avenue,,Hull,HU5 4BE,BF2,Bungalow,1997,Gas Combination Boiler,Radiators +0111260000,,126,Barrington Avenue,,Hull,HU5 4BE,BF2,Bungalow,1997,Gas Combination Boiler,Radiators +0550010000,,1,Florence Nightingale Court,,Hull,HU5 4BW,BF2,Bungalow,1997,Gas Combination Boiler,Radiators +0550020000,,2,Florence Nightingale Court,,Hull,HU5 4BW,BF2,Bungalow,1997,Gas Combination Boiler,Radiators +0550030000,,3,Florence Nightingale Court,,Hull,HU5 4BW,BF2,Bungalow,1997,Gas Combination Boiler,Radiators +0550040000,,4,Florence Nightingale Court,,Hull,HU5 4BW,BF2,Bungalow,1997,Gas Combination Boiler,Radiators +0550050000,,5,Florence Nightingale Court,,Hull,HU5 4BW,BF2,Bungalow,1997,Gas Combination Boiler,Radiators +0550060000,,6,Florence Nightingale Court,,Hull,HU5 4BW,BF2,Bungalow,1997,Gas Combination Boiler,Radiators +0550070000,,7,Florence Nightingale Court,,Hull,HU5 4BW,BF2,Bungalow,1997,Gas Combination Boiler,Radiators +0550080000,,8,Florence Nightingale Court,,Hull,HU5 4BW,BF2,Bungalow,1997,Gas Combination Boiler,Radiators +0550090000,,9,Florence Nightingale Court,,Hull,HU5 4BW,BF2,Bungalow,1997,Gas Combination Boiler,Radiators +0550100000,,10,Florence Nightingale Court,,Hull,HU5 4BW,BF2,Bungalow,1997,Gas Combination Boiler,Radiators +0550110000,,11,Florence Nightingale Court,,Hull,HU5 4BW,BF2,Bungalow,1997,Gas Combination Boiler,Radiators +0550120000,,12,Florence Nightingale Court,,Hull,HU5 4BW,BF2,Bungalow,1997,Gas Combination Boiler,Radiators +0550140000,,14,Florence Nightingale Court,,Hull,HU5 4BW,BF2,Bungalow,1997,Gas Combination Boiler,Radiators +0550150000,,15,Florence Nightingale Court,,Hull,HU5 4BW,BF2,Bungalow,1997,Gas Combination Boiler,Radiators +0550160000,,16,Florence Nightingale Court,,Hull,HU5 4BW,BF2,Bungalow,1997,Gas Combination Boiler,Radiators +0550170000,,17,Florence Nightingale Court,,Hull,HU5 4BW,BF2,Bungalow,1997,Gas Combination Boiler,Radiators +0550190000,,19,Florence Nightingale Court,,Hull,HU5 4BW,BF2,Bungalow,1997,Gas Combination Boiler,Radiators +0550180000,,18,Florence Nightingale Court,,Hull,HU5 4BW,BF2,Bungalow Disabled,1997,Gas Combination Boiler,Radiators +055POP0000,,POP,Florence Nightingale Court,,Hull,HU5 4BW,BF2,Pop-In,1997,Gas Combination Boiler,Radiators +0611460000,,146,Rosedale Grove,,Hull,HU5 5DA,RO1,Bungalow,1955,Gas Combination Boiler,Radiators +0611480000,,148,Rosedale Grove,,Hull,HU5 5DA,RO1,Bungalow,1955,Gas Combination Boiler,Radiators +0611500000,,150,Rosedale Grove,,Hull,HU5 5DA,RO1,Bungalow,1955,Gas Combination Boiler,Radiators +0611520000,,152,Rosedale Grove,,Hull,HU5 5DA,RO1,Bungalow,1955,Gas Combination Boiler,Radiators +0611540000,,154,Rosedale Grove,,Hull,HU5 5DA,RO1,Bungalow,1955,Gas Combination Boiler,Radiators +0611560000,,156,Rosedale Grove,,Hull,HU5 5DA,RO1,Bungalow,1955,Gas Combination Boiler,Radiators +0611580000,,158,Rosedale Grove,,Hull,HU5 5DA,RO1,Bungalow,1955,Gas Combination Boiler,Radiators +0611600000,,160,Rosedale Grove,,Hull,HU5 5DA,RO1,Bungalow,1955,Gas Combination Boiler,Radiators +061POP0000,,162,Rosedale Grove,,Hull,HU5 5DA,RO1,Bungalow,1955,Gas Combination Boiler,Radiators +0611640000,,164,Rosedale Grove,,Hull,HU5 5DA,RO1,Bungalow,1955,Gas Combination Boiler,Radiators +0611660000,,166,Rosedale Grove,,Hull,HU5 5DA,RO1,Bungalow,1955,Gas Combination Boiler,Radiators +0611680000,,168,Rosedale Grove,,Hull,HU5 5DA,RO1,Bungalow,1955,Gas Combination Boiler,Radiators +0611700000,,170,Rosedale Grove,,Hull,HU5 5DA,RO1,Bungalow,1955,Gas Combination Boiler,Radiators +0611720000,,172,Rosedale Grove,,Hull,HU5 5DA,RO1,Bungalow,1955,Gas Combination Boiler,Radiators +0611740000,,174,Rosedale Grove,,Hull,HU5 5DA,RO1,Bungalow,1955,Gas Combination Boiler,Radiators +0611690000,,,Rosedale Grove,,Hull,HU5 5DA,RO1,Laundry,1955,N/A,N/A +0611530000,,,Rosedale Grove,,Hull,HU5 5DA,RO1,Shed,1955,N/A,N/A +0083650000,,365,Priory Road,,Hull,HU5 5SB,PR1,Bungalow,1994,Gas Combination Boiler,Radiators +0083670000,,367,Priory Road,,Hull,HU5 5SB,PR1,Bungalow,1994,Gas Combination Boiler,Radiators +0083690000,,369,Priory Road,,Hull,HU5 5SB,PR1,Bungalow,1994,Gas Combination Boiler,Radiators +0083710000,,371,Priory Road,,Hull,HU5 5SB,PR1,Bungalow,1994,Gas Combination Boiler,Radiators +0083730000,,373,Priory Road,,Hull,HU5 5SB,PR1,Bungalow,1994,Gas Combination Boiler,Radiators +0083750000,,375,Priory Road,,Hull,HU5 5SB,PR1,Bungalow,1994,Gas Combination Boiler,Radiators +0083770000,,377,Priory Road,,Hull,HU5 5SB,PR1,Bungalow,1994,Gas Combination Boiler,Radiators +0083790000,,379,Priory Road,,Hull,HU5 5SB,PR1,Bungalow,1994,Gas Combination Boiler,Radiators +0083810000,,381,Priory Road,,Hull,HU5 5SB,PR1,Bungalow,1994,Gas Combination Boiler,Radiators +0083830000,,383,Priory Road,,Hull,HU5 5SB,PR1,Bungalow,1994,Gas Combination Boiler,Radiators +0083850000,,385,Priory Road,,Hull,HU5 5SB,PR1,Bungalow,1994,Gas Combination Boiler,Radiators +0083870000,,387,Priory Road,,Hull,HU5 5SB,PR1,Bungalow,1994,Gas Combination Boiler,Radiators +0083890000,,389,Priory Road,,Hull,HU5 5SB,PR1,Bungalow,1994,Gas Combination Boiler,Radiators +0083910000,,391,Priory Road,,Hull,HU5 5SB,PR1,Bungalow,1994,Gas Combination Boiler,Radiators +0083930000,,393,Priory Road,,Hull,HU5 5SB,PR1,Bungalow,1994,Gas Combination Boiler,Radiators +0083950000,,395,Priory Road,,Hull,HU5 5SB,PR1,Bungalow,1994,Gas Combination Boiler,Radiators +0083970000,,397,Priory Road,,Hull,HU5 5SB,PR1,Bungalow,1994,Gas Combination Boiler,Radiators +0090010000,,1,Arden Court,,Hull,HU5 5SQ,PR1,Bungalow,1994,Gas Combination Boiler,Radiators +0090020000,,2,Arden Court,,Hull,HU5 5SQ,PR1,Bungalow,1994,Gas Combination Boiler,Radiators +0090040000,,4,Arden Court,,Hull,HU5 5SQ,PR1,Bungalow,1994,Gas Combination Boiler,Radiators +0090050000,,5,Arden Court,,Hull,HU5 5SQ,PR1,Bungalow,1994,Gas Combination Boiler,Radiators +0090060000,,6,Arden Court,,Hull,HU5 5SQ,PR1,Bungalow,1994,Gas Combination Boiler,Radiators +0090070000,,7,Arden Court,,Hull,HU5 5SQ,PR1,Bungalow,1994,Gas Combination Boiler,Radiators +0090080000,,8,Arden Court,,Hull,HU5 5SQ,PR1,Bungalow,1994,Gas Combination Boiler,Radiators +0090090000,,9,Arden Court,,Hull,HU5 5SQ,PR1,Bungalow,1994,Gas Combination Boiler,Radiators +0090100000,,10,Arden Court,,Hull,HU5 5SQ,PR1,Bungalow,1994,Gas Combination Boiler,Radiators +0090110000,,11,Arden Court,,Hull,HU5 5SQ,PR1,Bungalow,1994,Gas Combination Boiler,Radiators +0090120000,,12,Arden Court,,Hull,HU5 5SQ,PR1,Bungalow,1994,Gas Combination Boiler,Radiators +0090140000,,14,Arden Court,,Hull,HU5 5SQ,PR1,Bungalow,1994,Gas Combination Boiler,Radiators +0090150000,,15,Arden Court,,Hull,HU5 5SQ,PR1,Bungalow,1994,Gas Combination Boiler,Radiators +0090160000,,16,Arden Court,,Hull,HU5 5SQ,PR1,Bungalow,1994,Gas Combination Boiler,Radiators +0090170000,,17,Arden Court,,Hull,HU5 5SQ,PR1,Bungalow,1994,Gas Combination Boiler,Radiators +0090180000,,18,Arden Court,,Hull,HU5 5SQ,PR1,Bungalow,1994,Gas Combination Boiler,Radiators +0090190000,,19,Arden Court,,Hull,HU5 5SQ,PR1,Bungalow,1994,Gas Combination Boiler,Radiators +0090200000,,20,Arden Court,,Hull,HU5 5SQ,PR1,Bungalow,1994,Gas Combination Boiler,Radiators +0090210000,,21,Arden Court,,Hull,HU5 5SQ,PR1,Bungalow,1994,Gas Combination Boiler,Radiators +0090220000,,22,Arden Court,,Hull,HU5 5SQ,PR1,Bungalow,1994,Gas Combination Boiler,Radiators +0090250000,,25,Arden Court,,Hull,HU5 5SQ,PR1,Bungalow,1994,Gas Combination Boiler,Radiators +0090260000,,26,Arden Court,,Hull,HU5 5SQ,PR1,Bungalow,1994,Gas Combination Boiler,Radiators +0090030000,,3,Arden Court,,Hull,HU5 5SQ,PR1,Bungalow Disabled,1994,Gas Combination Boiler,Radiators +0090240000,,24,Arden Court,,Hull,HU5 5SQ,PR1,Bungalow Disabled,1994,Gas Combination Boiler,Radiators +0090270000,,27,Arden Court,,Hull,HU5 5SQ,PR1,Bungalow Disabled,1994,Gas Combination Boiler,Radiators +0090230000,,23,Arden Court,,Hull,HU5 5SQ,PR1,Pop-In,1994,Gas Combination Boiler,Radiators +0100010000,,1,Easby Court,,Hull,HU5 5SY,PR1,Bungalow,1994,Gas Combination Boiler,Radiators +0100020000,,2,Easby Court,,Hull,HU5 5SY,PR1,Bungalow,1994,Gas Combination Boiler,Radiators +0100030000,,3,Easby Court,,Hull,HU5 5SY,PR1,Bungalow,1994,Gas Combination Boiler,Radiators +0100040000,,4,Easby Court,,Hull,HU5 5SY,PR1,Bungalow,1994,Gas Combination Boiler,Radiators +0100050000,,5,Easby Court,,Hull,HU5 5SY,PR1,Bungalow,1994,Gas Combination Boiler,Radiators +0100060000,,6,Easby Court,,Hull,HU5 5SY,PR1,Bungalow,1994,Gas Combination Boiler,Radiators +0100070000,,7,Easby Court,,Hull,HU5 5SY,PR1,Bungalow,1994,Gas Combination Boiler,Radiators +0100080000,,8,Easby Court,,Hull,HU5 5SY,PR1,Bungalow,1994,Gas Combination Boiler,Radiators +0100090000,,9,Easby Court,,Hull,HU5 5SY,PR1,Bungalow,1994,Gas Combination Boiler,Radiators +0100100000,,10,Easby Court,,Hull,HU5 5SY,PR1,Bungalow,1994,Gas Combination Boiler,Radiators +0100110000,,11,Easby Court,,Hull,HU5 5SY,PR1,Bungalow,1994,Gas Combination Boiler,Radiators +0100120000,,12,Easby Court,,Hull,HU5 5SY,PR1,Bungalow,1994,Gas Combination Boiler,Radiators +0100140000,,14,Easby Court,,Hull,HU5 5SY,PR1,Bungalow,1994,Gas Combination Boiler,Radiators +0100150000,,15,Easby Court,,Hull,HU5 5SY,PR1,Bungalow,1994,Gas Combination Boiler,Radiators +0100160000,,16,Easby Court,,Hull,HU5 5SY,PR1,Bungalow,1994,Gas Combination Boiler,Radiators +0100170000,,17,Easby Court,,Hull,HU5 5SY,PR1,Bungalow,1994,Gas Combination Boiler,Radiators +0100180000,,18,Easby Court,,Hull,HU5 5SY,PR1,Bungalow,1994,Gas Combination Boiler,Radiators +0100190000,,19,Easby Court,,Hull,HU5 5SY,PR1,Bungalow,1994,Gas Combination Boiler,Radiators +0100200000,,20,Easby Court,,Hull,HU5 5SY,PR1,Bungalow,1994,Gas Combination Boiler,Radiators +0100210000,,21,Easby Court,,Hull,HU5 5SY,PR1,Bungalow,1994,Gas Combination Boiler,Radiators +0100220000,,22,Easby Court,,Hull,HU5 5SY,PR1,Bungalow,1994,Gas Combination Boiler,Radiators +0100230000,,23,Easby Court,,Hull,HU5 5SY,PR1,Bungalow,1994,Gas Combination Boiler,Radiators +0100240000,,24,Easby Court,,Hull,HU5 5SY,PR1,Bungalow,1994,Gas Combination Boiler,Radiators +0100250000,,25,Easby Court,,Hull,HU5 5SY,PR1,Bungalow,1994,Gas Combination Boiler,Radiators +0100260000,,26,Easby Court,,Hull,HU5 5SY,PR1,Bungalow,1994,Gas Combination Boiler,Radiators +0134090000,,409,Endike Lane,,Hull,HU6 8AG,WE1,Bungalow,1993,Gas Combination Boiler,Radiators +0134110000,,411,Endike Lane,,Hull,HU6 8AG,WE1,Bungalow,1993,Gas Combination Boiler,Radiators +0134130000,,413,Endike Lane,,Hull,HU6 8AG,WE1,Bungalow,1993,Gas Combination Boiler,Radiators +0134150000,,415,Endike Lane,,Hull,HU6 8AG,WE1,Bungalow,1993,Gas Combination Boiler,Radiators +0134170000,,417,Endike Lane,,Hull,HU6 8AG,WE1,Bungalow,1993,Gas Combination Boiler,Radiators +0134190000,,419,Endike Lane,,Hull,HU6 8AG,WE1,Bungalow,1993,Gas Combination Boiler,Radiators +0500090000,,9,Green Close,,Hull,HU6 8DA,GC1,Bungalow,1996,Gas Combination Boiler,Radiators +0500100000,,10,Green Close,,Hull,HU6 8DA,GC1,Bungalow,1996,Gas Combination Boiler,Radiators +0500110000,,11,Green Close,,Hull,HU6 8DA,GC1,Bungalow,1996,Gas Combination Boiler,Radiators +0500120000,,12,Green Close,,Hull,HU6 8DA,GC1,Bungalow,1996,Gas Combination Boiler,Radiators +0500140000,,14,Green Close,,Hull,HU6 8DA,GC1,Bungalow,1996,Gas Combination Boiler,Radiators +0500150000,,15,Green Close,,Hull,HU6 8DA,GC1,Bungalow,1996,Gas Combination Boiler,Radiators +0500160000,,16,Green Close,,Hull,HU6 8DA,GC1,Bungalow,1996,Gas Combination Boiler,Radiators +0500170000,,17,Green Close,,Hull,HU6 8DA,GC1,Bungalow,1996,Gas Combination Boiler,Radiators +0500260000,,26,Green Close,,Hull,HU6 8DA,GC1,Bungalow,1996,Gas Combination Boiler,Radiators +0500270000,,27,Green Close,,Hull,HU6 8DA,GC1,Bungalow,1996,Gas Combination Boiler,Radiators +0500280000,,28,Green Close,,Hull,HU6 8DA,GC1,Bungalow,1996,Gas Combination Boiler,Radiators +0500290000,,29,Green Close,,Hull,HU6 8DA,GC1,Bungalow,1996,Gas Combination Boiler,Radiators +0500300000,,30,Green Close,,Hull,HU6 8DA,GC1,Bungalow,1996,Gas Combination Boiler,Radiators +0500310000,,31,Green Close,,Hull,HU6 8DA,GC1,Bungalow,1996,Gas Combination Boiler,Radiators +0500320000,,32,Green Close,,Hull,HU6 8DA,GC1,Bungalow,1996,Gas Combination Boiler,Radiators +0500330000,,33,Green Close,,Hull,HU6 8DA,GC1,Bungalow,1996,Gas Combination Boiler,Radiators +0500340000,,34,Green Close,,Hull,HU6 8DA,GC1,Bungalow,1996,Gas Combination Boiler,Radiators +0500350000,,35,Green Close,,Hull,HU6 8DA,GC1,Bungalow,1996,Gas Combination Boiler,Radiators +0500440000,,44,Green Close,,Hull,HU6 8DA,GC1,Bungalow,1996,Gas Combination Boiler,Radiators +0500450000,,45,Green Close,,Hull,HU6 8DA,GC1,Bungalow,1996,Gas Combination Boiler,Radiators +0500460000,,46,Green Close,,Hull,HU6 8DA,GC1,Bungalow,1996,Gas Combination Boiler,Radiators +0500470000,,47,Green Close,,Hull,HU6 8DA,GC1,Bungalow,1996,Gas Combination Boiler,Radiators +0500480000,,48,Green Close,,Hull,HU6 8DA,GC1,Bungalow,1996,Gas Combination Boiler,Radiators +0500490000,,49,Green Close,,Hull,HU6 8DA,GC1,Bungalow,1996,Gas Combination Boiler,Radiators +0500500000,,50,Green Close,,Hull,HU6 8DA,GC1,Bungalow,1996,Gas Combination Boiler,Radiators +0500510000,,51,Green Close,,Hull,HU6 8DA,GC1,Bungalow,1996,Gas Combination Boiler,Radiators +0500520000,,52,Green Close,,Hull,HU6 8DA,GC1,Bungalow,1996,Gas Combination Boiler,Radiators +0500530000,,53,Green Close,,Hull,HU6 8DA,GC1,Bungalow,1996,Gas Combination Boiler,Radiators +0132510000,,251,Endike Lane,,Hull,HU6 8DX,AE1,Bungalow,1993,Gas Combination Boiler,Radiators +0132530000,,253,Endike Lane,,Hull,HU6 8DX,AE1,Bungalow,1993,Gas Combination Boiler,Radiators +0132550000,,255,Endike Lane,,Hull,HU6 8DX,AE1,Bungalow,1993,Gas Combination Boiler,Radiators +0132570000,,257,Endike Lane,,Hull,HU6 8DX,AE1,Bungalow,1993,Gas Combination Boiler,Radiators +0132590000,,259,Endike Lane,,Hull,HU6 8DX,AE1,Bungalow,1993,Gas Combination Boiler,Radiators +0132610000,,261,Endike Lane,,Hull,HU6 8DX,AE1,Bungalow,1993,Gas Combination Boiler,Radiators +0132490000,,249,Endike Lane,,Hull,HU6 8DX,AE1,Bungalow Disabled,1993,Gas Combination Boiler,Radiators +0170010000,,1,Ashbury Court,,Hull,HU6 8DY,AE1,Bungalow,1994,Gas Combination Boiler,Radiators +0170020000,,2,Ashbury Court,,Hull,HU6 8DY,AE1,Bungalow,1994,Gas Combination Boiler,Radiators +0170030000,,3,Ashbury Court,,Hull,HU6 8DY,AE1,Bungalow,1994,Gas Combination Boiler,Radiators +0170040000,,4,Ashbury Court,,Hull,HU6 8DY,AE1,Bungalow,1994,Gas Combination Boiler,Radiators +0170050000,,5,Ashbury Court,,Hull,HU6 8DY,AE1,Bungalow,1994,Gas Combination Boiler,Radiators +0170060000,,6,Ashbury Court,,Hull,HU6 8DY,AE1,Bungalow,1994,Gas Combination Boiler,Radiators +0170070000,,7,Ashbury Court,,Hull,HU6 8DY,AE1,Bungalow,1994,Gas Combination Boiler,Radiators +0170080000,,8,Ashbury Court,,Hull,HU6 8DY,AE1,Bungalow,1994,Gas Combination Boiler,Radiators +0170090000,,9,Ashbury Court,,Hull,HU6 8DY,AE1,Bungalow,1994,Gas Combination Boiler,Radiators +0170100000,,10,Ashbury Court,,Hull,HU6 8DY,AE1,Bungalow,1994,Gas Combination Boiler,Radiators +0170110000,,11,Ashbury Court,,Hull,HU6 8DY,AE1,Bungalow,1994,Gas Combination Boiler,Radiators +0170120000,,12,Ashbury Court,,Hull,HU6 8DY,AE1,Bungalow,1994,Gas Combination Boiler,Radiators +0170140000,,14,Ashbury Court,,Hull,HU6 8DY,AE1,Bungalow,1994,Gas Combination Boiler,Radiators +0170150000,,15,Ashbury Court,,Hull,HU6 8DY,AE1,Bungalow,1994,Gas Combination Boiler,Radiators +0170160000,,16,Ashbury Court,,Hull,HU6 8DY,AE1,Bungalow,1994,Gas Combination Boiler,Radiators +0170170000,,17,Ashbury Court,,Hull,HU6 8DY,AE1,Bungalow,1994,Gas Combination Boiler,Radiators +0170180000,,18,Ashbury Court,,Hull,HU6 8DY,AE1,Bungalow,1994,Gas Combination Boiler,Radiators +0170190000,,19,Ashbury Court,,Hull,HU6 8DY,AE1,Bungalow,1994,Gas Combination Boiler,Radiators +0170200000,,20,Ashbury Court,,Hull,HU6 8DY,AE1,Bungalow,1994,Gas Combination Boiler,Radiators +0170210000,,21,Ashbury Court,,Hull,HU6 8DY,AE1,Bungalow,1994,Gas Combination Boiler,Radiators +0170220000,,22,Ashbury Court,,Hull,HU6 8DY,AE1,Bungalow,1994,Gas Combination Boiler,Radiators +0160180000,,18,Westgarth Avenue,,Hull,HU6 8LS,WE1,Bungalow,1993,Gas Combination Boiler,Radiators +0160200000,,20,Westgarth Avenue,,Hull,HU6 8LS,WE1,Bungalow,1993,Gas Combination Boiler,Radiators +0160220000,,22,Westgarth Avenue,,Hull,HU6 8LS,WE1,Bungalow,1993,Gas Combination Boiler,Radiators +0160240000,,24,Westgarth Avenue,,Hull,HU6 8LS,WE1,Bungalow,1993,Gas Combination Boiler,Radiators +0160260000,,26,Westgarth Avenue,,Hull,HU6 8LS,WE1,Bungalow,1993,Gas Combination Boiler,Radiators +0160280000,,28,Westgarth Avenue,,Hull,HU6 8LS,WE1,Bungalow,1993,Gas Combination Boiler,Radiators +0160300000,,30,Westgarth Avenue,,Hull,HU6 8LS,WE1,Bungalow,1993,Gas Combination Boiler,Radiators +0160320000,,32,Westgarth Avenue,,Hull,HU6 8LS,WE1,Bungalow,1993,Gas Combination Boiler,Radiators +0160340000,,34,Westgarth Avenue,,Hull,HU6 8LS,WE1,Bungalow,1993,Gas Combination Boiler,Radiators +0160360000,,36,Westgarth Avenue,,Hull,HU6 8LS,WE1,Bungalow,1993,Gas Combination Boiler,Radiators +0160370000,,37,Westgarth Avenue,,Hull,HU6 8LS,WE1,Bungalow,1993,Gas Combination Boiler,Radiators +0160380000,,38,Westgarth Avenue,,Hull,HU6 8LS,WE1,Bungalow,1993,Gas Combination Boiler,Radiators +0160390000,,39,Westgarth Avenue,,Hull,HU6 8LS,WE1,Bungalow,1993,Gas Combination Boiler,Radiators +0160400000,,40,Westgarth Avenue,,Hull,HU6 8LS,WE1,Bungalow,1993,Gas Combination Boiler,Radiators +0160410000,,41,Westgarth Avenue,,Hull,HU6 8LS,WE1,Bungalow,1993,Gas Combination Boiler,Radiators +0160420000,,42,Westgarth Avenue,,Hull,HU6 8LS,WE1,Bungalow,1993,Gas Combination Boiler,Radiators +0160430000,,43,Westgarth Avenue,,Hull,HU6 8LS,WE1,Bungalow,1993,Gas Combination Boiler,Radiators +0160440000,,44,Westgarth Avenue,,Hull,HU6 8LS,WE1,Bungalow,1993,Gas Combination Boiler,Radiators +0160450000,,45,Westgarth Avenue,,Hull,HU6 8LS,WE1,Bungalow,1993,Gas Combination Boiler,Radiators +0160460000,,46,Westgarth Avenue,,Hull,HU6 8LS,WE1,Bungalow,1993,Gas Combination Boiler,Radiators +0160470000,,47,Westgarth Avenue,,Hull,HU6 8LS,WE1,Bungalow,1993,Gas Combination Boiler,Radiators +0160480000,,48,Westgarth Avenue,,Hull,HU6 8LS,WE1,Bungalow,1993,Gas Combination Boiler,Radiators +0160490000,,49,Westgarth Avenue,,Hull,HU6 8LS,WE1,Bungalow,1993,Gas Combination Boiler,Radiators +0160500000,,50,Westgarth Avenue,,Hull,HU6 8LS,WE1,Bungalow,1993,Gas Combination Boiler,Radiators +0160510000,,51,Westgarth Avenue,,Hull,HU6 8LS,WE1,Bungalow,1993,Gas Combination Boiler,Radiators +0160520000,,52,Westgarth Avenue,,Hull,HU6 8LS,WE1,Bungalow,1993,Gas Combination Boiler,Radiators +0160540000,,54,Westgarth Avenue,,Hull,HU6 8LS,WE1,Bungalow,1993,Gas Combination Boiler,Radiators +0160550000,,55,Westgarth Avenue,,Hull,HU6 8LS,WE1,Bungalow,1993,Gas Combination Boiler,Radiators +0160560000,,56,Westgarth Avenue,,Hull,HU6 8LS,WE1,Bungalow,1993,Gas Combination Boiler,Radiators +0160570000,,57,Westgarth Avenue,,Hull,HU6 8LS,WE1,Bungalow,1993,Gas Combination Boiler,Radiators +0160580000,,58,Westgarth Avenue,,Hull,HU6 8LS,WE1,Bungalow,1993,Gas Combination Boiler,Radiators +0160590000,,59,Westgarth Avenue,,Hull,HU6 8LS,WE1,Bungalow,1993,Gas Combination Boiler,Radiators +0160680000,,68,Westgarth Avenue,,Hull,HU6 8LT,WE1,Bungalow,1993,Gas Combination Boiler,Radiators +0160690000,,69,Westgarth Avenue,,Hull,HU6 8LT,WE1,Bungalow,1993,Gas Combination Boiler,Radiators +0160530000,,53,Westgarth Avenue,,Hull,HU6 8LS,WE1,Bungalow Disabled,1993,Gas Combination Boiler,Radiators +016POP0000,,POP,Westgarth Avenue,,Hull,HU6 8LS,WE1,Pop-In,1993,Gas Combination Boiler,Radiators +0160600000,,60,Westgarth Avenue,,Hull,HU6 8LT,WE1,Bungalow,1993,Gas Combination Boiler,Radiators +0160610000,,61,Westgarth Avenue,,Hull,HU6 8LT,WE1,Bungalow,1993,Gas Combination Boiler,Radiators +0160620000,,62,Westgarth Avenue,,Hull,HU6 8LT,WE1,Bungalow,1993,Gas Combination Boiler,Radiators +0160630000,,63,Westgarth Avenue,,Hull,HU6 8LT,WE1,Bungalow,1993,Gas Combination Boiler,Radiators +0160640000,,64,Westgarth Avenue,,Hull,HU6 8LT,WE1,Bungalow,1993,Gas Combination Boiler,Radiators +0160650000,,65,Westgarth Avenue,,Hull,HU6 8LT,WE1,Bungalow,1993,Gas Combination Boiler,Radiators +0160660000,,66,Westgarth Avenue,,Hull,HU6 8LT,WE1,Bungalow,1993,Gas Combination Boiler,Radiators +0160670000,,67,Westgarth Avenue,,Hull,HU6 8LT,WE1,Bungalow,1993,Gas Combination Boiler,Radiators +0160700000,,70,Westgarth Avenue,,Hull,HU6 8LT,WE1,Bungalow,1993,Gas Combination Boiler,Radiators +0160710000,,71,Westgarth Avenue,,Hull,HU6 8LT,WE1,Bungalow,1993,Gas Combination Boiler,Radiators +0160720000,,72,Westgarth Avenue,,Hull,HU6 8LT,WE1,Bungalow,1993,Gas Combination Boiler,Radiators +0160730000,,73,Westgarth Avenue,,Hull,HU6 8LT,WE1,Bungalow,1993,Gas Combination Boiler,Radiators +0160740000,,74,Westgarth Avenue,,Hull,HU6 8LT,WE1,Bungalow,1993,Gas Combination Boiler,Radiators +0160750000,,75,Westgarth Avenue,,Hull,HU6 8LT,WE1,Bungalow,1993,Gas Combination Boiler,Radiators +0160760000,,76,Westgarth Avenue,,Hull,HU6 8LT,WE1,Bungalow,1993,Gas Combination Boiler,Radiators +0160770000,,77,Westgarth Avenue,,Hull,HU6 8LT,WE1,Bungalow,1993,Gas Combination Boiler,Radiators +0160780000,,78,Westgarth Avenue,,Hull,HU6 8LT,WE1,Bungalow,1993,Gas Combination Boiler,Radiators +0160790000,,79,Westgarth Avenue,,Hull,HU6 8LT,WE1,Bungalow,1993,Gas Combination Boiler,Radiators +0160800000,,80,Westgarth Avenue,,Hull,HU6 8LT,WE1,Bungalow,1993,Gas Combination Boiler,Radiators +0160820000,,82,Westgarth Avenue,,Hull,HU6 8LT,WE1,Bungalow,1993,Gas Combination Boiler,Radiators +0160840000,,84,Westgarth Avenue,,Hull,HU6 8LT,WE1,Bungalow,1993,Gas Combination Boiler,Radiators +0160860000,,86,Westgarth Avenue,,Hull,HU6 8LT,WE1,Bungalow,1993,Gas Combination Boiler,Radiators +0160880000,,88,Westgarth Avenue,,Hull,HU6 8LT,WE1,Bungalow,1993,Gas Combination Boiler,Radiators +0160900000,,90,Westgarth Avenue,,Hull,HU6 8LT,WE1,Bungalow,1993,Gas Combination Boiler,Radiators +0140010000,,1,Moy Court,,Hull,HU6 8LW,WE1,Bungalow,1993,Gas Combination Boiler,Radiators +0140020000,,2,Moy Court,,Hull,HU6 8LW,WE1,Bungalow,1993,Gas Combination Boiler,Radiators +0140040000,,4,Moy Court,,Hull,HU6 8LW,WE1,Bungalow,1993,Gas Combination Boiler,Radiators +0140050000,,5,Moy Court,,Hull,HU6 8LW,WE1,Bungalow,1993,Gas Combination Boiler,Radiators +0140060000,,6,Moy Court,,Hull,HU6 8LW,WE1,Bungalow,1993,Gas Combination Boiler,Radiators +0140070000,,7,Moy Court,,Hull,HU6 8LW,WE1,Bungalow,1993,Gas Combination Boiler,Radiators +0140080000,,8,Moy Court,,Hull,HU6 8LW,WE1,Bungalow,1993,Gas Combination Boiler,Radiators +0140090000,,9,Moy Court,,Hull,HU6 8LW,WE1,Bungalow,1993,Gas Combination Boiler,Radiators +0140100000,,10,Moy Court,,Hull,HU6 8LW,WE1,Bungalow,1993,Gas Combination Boiler,Radiators +0140110000,,11,Moy Court,,Hull,HU6 8LW,WE1,Bungalow,1993,Gas Combination Boiler,Radiators +0140120000,,12,Moy Court,,Hull,HU6 8LW,WE1,Bungalow,1993,Gas Combination Boiler,Radiators +0140140000,,14,Moy Court,,Hull,HU6 8LW,WE1,Bungalow,1993,Gas Combination Boiler,Radiators +0140030000,,3,Moy Court,,Hull,HU6 8LW,WE1,Bungalow Disabled,1993,Gas Combination Boiler,Radiators +0150010000,,1,Beautiman Court,,Hull,HU6 8LX,WE1,Bungalow,1993,Gas Combination Boiler,Radiators +0150020000,,2,Beautiman Court,,Hull,HU6 8LX,WE1,Bungalow,1993,Gas Combination Boiler,Radiators +0150030000,,3,Beautiman Court,,Hull,HU6 8LX,WE1,Bungalow,1993,Gas Combination Boiler,Radiators +0150040000,,4,Beautiman Court,,Hull,HU6 8LX,WE1,Bungalow,1993,Gas Combination Boiler,Radiators +0150050000,,5,Beautiman Court,,Hull,HU6 8LX,WE1,Bungalow,1993,Gas Combination Boiler,Radiators +0150060000,,6,Beautiman Court,,Hull,HU6 8LX,WE1,Bungalow,1993,Gas Combination Boiler,Radiators +0150070000,,7,Beautiman Court,,Hull,HU6 8LX,WE1,Bungalow,1993,Gas Combination Boiler,Radiators +0150080000,,8,Beautiman Court,,Hull,HU6 8LX,WE1,Bungalow,1993,Gas Combination Boiler,Radiators +0150090000,,9,Beautiman Court,,Hull,HU6 8LX,WE1,Bungalow,1993,Gas Combination Boiler,Radiators +0150100000,,10,Beautiman Court,,Hull,HU6 8LX,WE1,Bungalow,1993,Gas Combination Boiler,Radiators +0150110000,,11,Beautiman Court,,Hull,HU6 8LX,WE1,Bungalow,1993,Gas Combination Boiler,Radiators +0150120000,,12,Beautiman Court,,Hull,HU6 8LX,WE1,Bungalow,1993,Gas Combination Boiler,Radiators +0150140000,,14,Beautiman Court,,Hull,HU6 8LX,WE1,Bungalow,1993,Gas Combination Boiler,Radiators +0150150000,,15,Beautiman Court,,Hull,HU6 8LX,WE1,Bungalow,1993,Gas Combination Boiler,Radiators +05404A0000,,4A,Ada Holmes Circle,,Hull,HU6 9PA,AH1,Bedsit,1997,Gas Combination Boiler,Radiators +0540010000,,1,Ada Holmes Circle,,Hull,HU6 9PA,AH1,Bungalow,1997,Gas Combination Boiler,Radiators +0540020000,,2,Ada Holmes Circle,,Hull,HU6 9PA,AH1,Bungalow,1997,Gas Combination Boiler,Radiators +0540030000,,3,Ada Holmes Circle,,Hull,HU6 9PA,AH1,Bungalow,1997,Gas Combination Boiler,Radiators +0540040000,,4,Ada Holmes Circle,,Hull,HU6 9PA,AH1,Bungalow,1997,Gas Combination Boiler,Radiators +0540050000,,5,Ada Holmes Circle,,Hull,HU6 9PA,AH1,Bungalow,1997,Gas Combination Boiler,Radiators +0540060000,,6,Ada Holmes Circle,,Hull,HU6 9PA,AH1,Bungalow,1997,Gas Combination Boiler,Radiators +0540070000,,7,Ada Holmes Circle,,Hull,HU6 9PA,AH1,Bungalow,1997,Gas Combination Boiler,Radiators +0540080000,,8,Ada Holmes Circle,,Hull,HU6 9PA,AH1,Bungalow,1997,Gas Combination Boiler,Radiators +0540090000,,9,Ada Holmes Circle,,Hull,HU6 9PA,AH1,Bungalow,1997,Gas Combination Boiler,Radiators +0540100000,,10,Ada Holmes Circle,,Hull,HU6 9PA,AH1,Bungalow,1997,Gas Combination Boiler,Radiators +0540110000,,11,Ada Holmes Circle,,Hull,HU6 9PA,AH1,Bungalow,1997,Gas Combination Boiler,Radiators +0540120000,,12,Ada Holmes Circle,,Hull,HU6 9PA,AH1,Bungalow,1997,Gas Combination Boiler,Radiators +0540150000,,15,Ada Holmes Circle,,Hull,HU6 9PB,AH2,Bungalow,1998,Gas Combination Boiler,Radiators +0540160000,,16,Ada Holmes Circle,,Hull,HU6 9PB,AH2,Bungalow,1998,Gas Combination Boiler,Radiators +0540170000,,17,Ada Holmes Circle,,Hull,HU6 9PB,AH2,Bungalow,1998,Gas Combination Boiler,Radiators +0540180000,,18,Ada Holmes Circle,,Hull,HU6 9PB,AH2,Bungalow,1998,Gas Combination Boiler,Radiators +0540190000,,19,Ada Holmes Circle,,Hull,HU6 9PB,AH2,Bungalow,1998,Gas Combination Boiler,Radiators +0540200000,,20,Ada Holmes Circle,,Hull,HU6 9PB,AH2,Bungalow,1998,Gas Combination Boiler,Radiators +0540140000,,14,Ada Holmes Circle,,Hull,HU6 9PB,AH2,House,1998,Gas Combination Boiler,Radiators +0540210000,,21,Ada Holmes Circle,,Hull,HU6 9PB,AH2,Flat,1998,N/A Gas Communal Boiler,Radiators +0540220000,,22,Ada Holmes Circle,,Hull,HU6 9PB,AH2,Flat,1998,N/A Gas Communal Boiler,Radiators +0540230000,,23,Ada Holmes Circle,,Hull,HU6 9PB,AH2,Flat,1998,N/A Gas Communal Boiler,Radiators +0540240000,,24,Ada Holmes Circle,,Hull,HU6 9PB,AH2,Flat,1998,N/A Gas Communal Boiler,Radiators +0540250000,,25,Ada Holmes Circle,,Hull,HU6 9PB,AH2,Flat,1998,N/A Gas Communal Boiler,Radiators +0540260000,,26,Ada Holmes Circle,,Hull,HU6 9PB,AH2,Flat,1998,N/A Gas Communal Boiler,Radiators +0540270000,,27,Ada Holmes Circle,,Hull,HU6 9PB,AH2,Flat,1998,N/A Gas Communal Boiler,Radiators +0540290000,,29,Ada Holmes Circle,,Hull,HU6 9PB,AH2,Flat,1998,N/A Gas Communal Boiler,Radiators +0540300000,,30,Ada Holmes Circle,,Hull,HU6 9PB,AH2,Flat,1998,N/A Gas Communal Boiler,Radiators +0540310000,,31,Ada Holmes Circle,,Hull,HU6 9PB,AH2,Flat,1998,N/A Gas Communal Boiler,Radiators +0540320000,,32,Ada Holmes Circle,,Hull,HU6 9PB,AH2,Flat,1998,N/A Gas Communal Boiler,Radiators +0540330000,,33,Ada Holmes Circle,,Hull,HU6 9PB,AH2,Flat,1998,N/A Gas Communal Boiler,Radiators +0540340000,,34,Ada Holmes Circle,,Hull,HU6 9PB,AH2,Flat,1998,N/A Gas Communal Boiler,Radiators +0540350000,,35,Ada Holmes Circle,,Hull,HU6 9PB,AH2,Flat,1998,N/A Gas Communal Boiler,Radiators +0540360000,,36,Ada Holmes Circle,,Hull,HU6 9PB,AH2,Flat,1998,N/A Gas Communal Boiler,Radiators +0540370000,,37,Ada Holmes Circle,,Hull,HU6 9PB,AH2,Flat,1998,N/A Gas Communal Boiler,Radiators +0540380000,,38,Ada Holmes Circle,,Hull,HU6 9PB,AH2,Flat,1998,N/A Gas Communal Boiler,Radiators +0540390000,,39,Ada Holmes Circle,,Hull,HU6 9PB,AH2,Flat,1998,N/A Gas Communal Boiler,Radiators +0540400000,,40,Ada Holmes Circle,,Hull,HU6 9PB,AH2,Flat,1998,N/A Gas Communal Boiler,Radiators +0540410000,,41,Ada Holmes Circle,,Hull,HU6 9PB,AH2,Flat,1998,N/A Gas Communal Boiler,Radiators +0540420000,,42,Ada Holmes Circle,,Hull,HU6 9PB,AH2,Flat,1998,N/A Gas Communal Boiler,Radiators +0540430000,,43,Ada Holmes Circle,,Hull,HU6 9PB,AH2,Flat,1998,N/A Gas Communal Boiler,Radiators +0540440000,,44,Ada Holmes Circle,,Hull,HU6 9PB,AH2,Flat,1998,N/A Gas Communal Boiler,Radiators +0540450000,,45,Ada Holmes Circle,,Hull,HU6 9PB,AH2,Flat,1998,N/A Gas Communal Boiler,Radiators +0540460000,,46,Ada Holmes Circle,,Hull,HU6 9PB,AH2,Flat,1998,N/A Gas Communal Boiler,Radiators +0540470000,,47,Ada Holmes Circle,,Hull,HU6 9PB,AH2,Flat,1998,N/A Gas Communal Boiler,Radiators +0540480000,,48,Ada Holmes Circle,,Hull,HU6 9PB,AH2,Flat,1998,N/A Gas Communal Boiler,Radiators +0540490000,,49,Ada Holmes Circle,,Hull,HU6 9PB,AH2,Flat,1998,N/A Gas Communal Boiler,Radiators +0540500000,,50,Ada Holmes Circle,,Hull,HU6 9PB,AH2,Flat,1998,N/A Gas Communal Boiler,Radiators +0540280000,,28,Ada Holmes Circle,,Hull,HU6 9PB,AH2,Flat Disabled,1998,N/A Gas Communal Boiler,Radiators +S01NB10032,,30,David Lister Drive,,Hull,HU8 2BL,NB1,Bungalow,2018,Gas Combination Boiler,Radiators +0640020000,,2,Frederick Reckitt Haven,,Hull,HU8 8PD,FR1,Bungalow,1911,Gas Combination Boiler,Radiators +0640040000,,4,Frederick Reckitt Haven,,Hull,HU8 8PD,FR1,Bungalow,1911,Gas Combination Boiler,Radiators +S01FR10006,,6,Frederick Reckitt Haven,,Hull,HU8 8PD,FR1,Bungalow,1911,Gas Combination Boiler,Radiators +0640080000,,8,Frederick Reckitt Haven,,Hull,HU8 8PD,FR1,Bungalow,1911,Gas Combination Boiler,Radiators +0640100000,,10,Frederick Reckitt Haven,,Hull,HU8 8PD,FR1,Bungalow,1911,Gas Combination Boiler,Radiators +0640120000,,12,Frederick Reckitt Haven,,Hull,HU8 8PD,FR1,Bungalow,1911,Gas Combination Boiler,Radiators +SO1 FR10000,,,Frederick Reckitt Haven,,Hull,HU8 8PD,FR1,Laundry,1911,N/A,N/A +0630010000,,1,Juliet Reckitt Haven,,Hull,HU8 8PG,JU1,Bungalow,1911,Gas Combination Boiler,Radiators +0630020000,,2,Juliet Reckitt Haven,,Hull,HU8 8PG,JU1,Bungalow,1911,Gas Combination Boiler,Radiators +0630030000,,3,Juliet Reckitt Haven,,Hull,HU8 8PG,JU1,Bungalow,1911,Gas Combination Boiler,Radiators +0630040000,,4,Juliet Reckitt Haven,,Hull,HU8 8PG,JU1,Bungalow,1911,Gas Combination Boiler,Radiators +0750050000,,5,Sir James Reckitt Village Haven,,Hull,HU8 8QR,SJ1,Bedsit,1924,Gas Combination Boiler,Radiators +0750060000,,6,Sir James Reckitt Village Haven,,Hull,HU8 8QR,SJ1,Bedsit,1924,Gas Combination Boiler,Radiators +0750020000,,2,Sir James Reckitt Village Haven,,Hull,HU8 8QR,SJ1,Bungalow,1924,Gas Combination Boiler,Radiators +0750040000,,4,Sir James Reckitt Village Haven,,Hull,HU8 8QR,SJ1,Bungalow,1924,Gas Combination Boiler,Radiators +0750080000,,8,Sir James Reckitt Village Haven,,Hull,HU8 8QR,SJ1,Bungalow,1924,Gas Combination Boiler,Radiators +0750100000,,10,Sir James Reckitt Village Haven,,Hull,HU8 8QR,SJ1,Bungalow,1924,Gas Combination Boiler,Radiators +0750120000,,12,Sir James Reckitt Village Haven,,Hull,HU8 8QR,SJ1,Bungalow,1924,Gas Combination Boiler,Radiators +0340010000,,1,Ferens Haven,,Hull,HU8 9AH,FH1,Bungalow,1911,Gas Combination Boiler,Radiators +0340020000,,2,Ferens Haven,,Hull,HU8 9AH,FH1,Bungalow,1911,Gas Combination Boiler,Radiators +0340030000,,3,Ferens Haven,,Hull,HU8 9AH,FH1,Bungalow,1911,Gas Combination Boiler,Radiators +0340040000,,4,Ferens Haven,,Hull,HU8 9AH,FH1,Bungalow,1911,Gas Combination Boiler,Radiators +0340050000,,5,Ferens Haven,,Hull,HU8 9AH,FH1,Bungalow,1911,Gas Combination Boiler,Radiators +0340060000,,6,Ferens Haven,,Hull,HU8 9AH,FH1,Bungalow,1911,Gas Combination Boiler,Radiators +0340070000,,7,Ferens Haven,,Hull,HU8 9AH,FH1,Bungalow,1911,Gas Combination Boiler,Radiators +0340080000,,8,Ferens Haven,,Hull,HU8 9AH,FH1,Bungalow,1911,Gas Combination Boiler,Radiators +0340090000,,9,Ferens Haven,,Hull,HU8 9AH,FH1,Bungalow,1911,Gas Combination Boiler,Radiators +0340100000,,10,Ferens Haven,,Hull,HU8 9AH,FH1,Bungalow,1911,Gas Combination Boiler,Radiators +0340110000,,11,Ferens Haven,,Hull,HU8 9AH,FH1,Bungalow,1911,Gas Combination Boiler,Radiators +0340120000,,12,Ferens Haven,,Hull,HU8 9AH,FH1,Bungalow,1911,Gas Combination Boiler,Radiators +0340140000,,14,Ferens Haven,,Hull,HU8 9AH,FH1,Bungalow,1953,Gas Combination Boiler,Radiators +0340150000,,15,Ferens Haven,,Hull,HU8 9AH,FH1,Bungalow,1953,Gas Combination Boiler,Radiators +0340160000,,16,Ferens Haven,,Hull,HU8 9AH,FH1,Bungalow,1953,Gas Combination Boiler,Radiators +0340170000,,17,Ferens Haven,,Hull,HU8 9AH,FH1,Bungalow,1953,Gas Combination Boiler,Radiators +0340180000,,18,Ferens Haven,,Hull,HU8 9AH,FH1,Bungalow,1953,Gas Combination Boiler,Radiators +0340190000,,19,Ferens Haven,,Hull,HU8 9AH,FH1,Bungalow,1953,Gas Combination Boiler,Radiators +0340200000,,20,Ferens Haven,,Hull,HU8 9AH,FH1,Bungalow,1953,Gas Combination Boiler,Radiators +0340210000,,21,Ferens Haven,,Hull,HU8 9AH,FH1,Bungalow,1953,Gas Combination Boiler,Radiators +0340220000,,22,Ferens Haven,,Hull,HU8 9AH,FH1,Bungalow,1965,Gas Combination Boiler,Radiators +0340230000,,23,Ferens Haven,,Hull,HU8 9AH,FH1,Bungalow,1965,Gas Combination Boiler,Radiators +0340240000,,24,Ferens Haven,,Hull,HU8 9AH,FH1,Bungalow,1965,Gas Combination Boiler,Radiators +0340250000,,25,Ferens Haven,,Hull,HU8 9AH,FH1,Bungalow,1965,Gas Combination Boiler,Radiators +S01LH10027,,27,Weaver Grove,,Hull,HU8 9TP,LH1,Bungalow,2015,Gas Combination Boiler,Radiators +S01LH10029,,29,Weaver Grove,,Hull,HU8 9TP,LH1,Bungalow,2015,Gas Combination Boiler,Radiators +S01LH10031,,31,Weaver Grove,,Hull,HU8 9TP,LH1,Bungalow,2015,Gas Combination Boiler,Radiators +S01LH10035,,35,Weaver Grove,,Hull,HU8 9TP,LH1,Bungalow,2015,Gas Combination Boiler,Radiators +S01LH10037,,37,Weaver Grove,,Hull,HU8 9TP,LH1,Bungalow,2015,Gas Combination Boiler,Radiators +S01LH10039,,39,Weaver Grove,,Hull,HU8 9TP,LH1,Bungalow,2015,Gas Combination Boiler,Radiators +S01LH10041,,41,Weaver Grove,,Hull,HU8 9TP,LH1,Bungalow,2015,Gas Combination Boiler,Radiators +S01LH10043,,43,Weaver Grove,,Hull,HU8 9TP,LH1,Bungalow,2015,Gas Combination Boiler,Radiators +S01LH10033,,33,Weaver Grove,,Hull,HU8 9TP,LH1,Pop-In,2015,Gas Combination Boiler,Radiators +0180020000,,2,Rosey Row,,Hull,HU9 1HF,RR1,Bungalow,1989,Gas Combination Boiler,Radiators +0180030000,,3,Rosey Row,,Hull,HU9 1HF,RR1,Bungalow,1989,Gas Combination Boiler,Radiators +0180040000,,4,Rosey Row,,Hull,HU9 1HF,RR1,Bungalow,1989,Gas Combination Boiler,Radiators +0180050000,,5,Rosey Row,,Hull,HU9 1HF,RR1,Bungalow,1989,Gas Combination Boiler,Radiators +0180060000,,6,Rosey Row,,Hull,HU9 1HF,RR1,Bungalow,1989,Gas Combination Boiler,Radiators +0180070000,,7,Rosey Row,,Hull,HU9 1HF,RR1,Bungalow,1989,Gas Combination Boiler,Radiators +0180080000,,8,Rosey Row,,Hull,HU9 1HF,RR1,Bungalow,1989,Gas Combination Boiler,Radiators +0180090000,,9,Rosey Row,,Hull,HU9 1HF,RR1,Bungalow,1989,Gas Combination Boiler,Radiators +0180100000,,10,Rosey Row,,Hull,HU9 1HF,RR1,Bungalow,1989,Gas Combination Boiler,Radiators +0180110000,,11,Rosey Row,,Hull,HU9 1HF,RR1,Bungalow,1989,Gas Combination Boiler,Radiators +0180120000,,12,Rosey Row,,Hull,HU9 1HF,RR1,Bungalow,1989,Gas Combination Boiler,Radiators +0180140000,,14,Rosey Row,,Hull,HU9 1HF,RR1,Bungalow,1989,Gas Combination Boiler,Radiators +0180150000,,15,Rosey Row,,Hull,HU9 1HF,RR1,Bungalow,1989,Gas Combination Boiler,Radiators +0180160000,,16,Rosey Row,,Hull,HU9 1HF,RR1,Bungalow,1989,Gas Combination Boiler,Radiators +0180170000,,17,Rosey Row,,Hull,HU9 1HF,RR1,Bungalow,1989,Gas Combination Boiler,Radiators +0180180000,,18,Rosey Row,,Hull,HU9 1HF,RR1,Bungalow,1989,Gas Combination Boiler,Radiators +0180190000,,19,Rosey Row,,Hull,HU9 1HF,RR1,Bungalow,1989,Gas Combination Boiler,Radiators +0180200000,,20,Rosey Row,,Hull,HU9 1HF,RR1,Bungalow,1989,Gas Combination Boiler,Radiators +0180210000,,21,Rosey Row,,Hull,HU9 1HF,RR1,Bungalow,1989,Gas Combination Boiler,Radiators +0180010000,,1,Rosey Row,,Hull,HU9 1HF,RR1,Bungalow Disabled,1989,Gas Combination Boiler,Radiators +0530000000,,,Humber View,,Hull,HU9 1SZ,VI1,Bungalow,1996,Gas Combination Boiler,Radiators +0520010000,,1,Humber View,,Hull,HU9 1SZ,VI1,Flat,1996,N/A,Storage Heaters +0520020000,,2,Humber View,,Hull,HU9 1SZ,VI1,Flat,1996,N/A,Storage Heaters +0520040000,,4,Humber View,,Hull,HU9 1SZ,VI1,Flat,1996,N/A,Storage Heaters +0520050000,,5,Humber View,,Hull,HU9 1SZ,VI1,Flat,1996,N/A,Storage Heaters +0520060000,,6,Humber View,,Hull,HU9 1SZ,VI1,Flat,1996,N/A,Storage Heaters +0520070000,,7,Humber View,,Hull,HU9 1SZ,VI1,Flat,1996,N/A,Storage Heaters +0520080000,,8,Humber View,,Hull,HU9 1SZ,VI1,Flat,1996,N/A,Storage Heaters +0520090000,,9,Humber View,,Hull,HU9 1SZ,VI1,Flat,1996,N/A,Storage Heaters +0520100000,,10,Humber View,,Hull,HU9 1SZ,VI1,Flat,1996,N/A,Storage Heaters +0520110000,,11,Humber View,,Hull,HU9 1SZ,VI1,Flat,1996,N/A,Storage Heaters +0520120000,,12,Humber View,,Hull,HU9 1SZ,VI1,Flat,1996,N/A,Storage Heaters +0520140000,,14,Humber View,,Hull,HU9 1SZ,VI1,Flat,1996,N/A,Storage Heaters +0520150000,,15,Humber View,,Hull,HU9 1SZ,VI1,Flat,1996,N/A,Storage Heaters +0520160000,,16,Humber View,,Hull,HU9 1SZ,VI1,Flat,1996,N/A,Storage Heaters +0520170000,,17,Humber View,,Hull,HU9 1SZ,VI1,Flat,1996,N/A,Storage Heaters +0520180000,,18,Humber View,,Hull,HU9 1SZ,VI1,Flat,1996,N/A,Storage Heaters +0520190000,,19,Humber View,,Hull,HU9 1SZ,VI1,Flat,1996,N/A,Storage Heaters +0520200000,,20,Humber View,,Hull,HU9 1SZ,VI1,Flat,1996,N/A,Storage Heaters +0520210000,,21,Humber View,,Hull,HU9 1SZ,VI1,Flat,1996,N/A,Storage Heaters +0520220000,,22,Humber View,,Hull,HU9 1SZ,VI1,Flat,1996,N/A,Storage Heaters +0520230000,,23,Humber View,,Hull,HU9 1SZ,VI1,Flat,1996,N/A,Storage Heaters +0520240000,,24,Humber View,,Hull,HU9 1SZ,VI1,Flat,1996,N/A,Storage Heaters +0520250000,,25,Humber View,,Hull,HU9 1SZ,VI1,Flat,1996,N/A,Storage Heaters +0520260000,,26,Humber View,,Hull,HU9 1SZ,VI1,Flat,1996,N/A,Storage Heaters +0520270000,,27,Humber View,,Hull,HU9 1SZ,VI1,Flat,1996,N/A,Storage Heaters +0520280000,,28,Humber View,,Hull,HU9 1SZ,VI1,Flat,1996,N/A,Storage Heaters +0520290000,,29,Humber View,,Hull,HU9 1SZ,VI1,Flat,1996,N/A,Storage Heaters +0520300000,,30,Humber View,,Hull,HU9 1SZ,VI1,Flat,1996,N/A,Storage Heaters +0520310000,,31,Humber View,,Hull,HU9 1SZ,VI1,Flat,1996,N/A,Storage Heaters +0520320000,,32,Humber View,,Hull,HU9 1SZ,VI1,Flat,1996,N/A,Storage Heaters +0520330000,,33,Humber View,,Hull,HU9 1SZ,VI1,Flat,1996,N/A,Storage Heaters +0520340000,,34,Humber View,,Hull,HU9 1SZ,VI1,Flat,1996,N/A,Storage Heaters +0520350000,,35,Humber View,,Hull,HU9 1SZ,VI1,Flat,1996,N/A,Storage Heaters +0520360000,,36,Humber View,,Hull,HU9 1SZ,VI1,Flat,1996,N/A,Storage Heaters +0520030000,,3,Humber View,,Hull,HU9 1SZ,VI1,Flat Disabled,1996,N/A,Storage Heaters +0200010000,,1,Buttercup Close,,Hull,HU9 2AE,WN1,Bungalow,1990,Gas Combination Boiler,Radiators +0200020000,,2,Buttercup Close,,Hull,HU9 2AE,WN1,Bungalow,1990,Gas Combination Boiler,Radiators +0200030000,,3,Buttercup Close,,Hull,HU9 2AE,WN1,Bungalow,1990,Gas Combination Boiler,Radiators +0200040000,,4,Buttercup Close,,Hull,HU9 2AE,WN1,Bungalow,1990,Gas Combination Boiler,Radiators +0200050000,,5,Buttercup Close,,Hull,HU9 2AE,WN1,Bungalow,1990,Gas Combination Boiler,Radiators +0200070000,,7,Buttercup Close,,Hull,HU9 2AE,WN1,Bungalow,1990,Gas Combination Boiler,Radiators +0200080000,,8,Buttercup Close,,Hull,HU9 2AE,WN1,Bungalow,1990,Gas Combination Boiler,Radiators +0200090000,,9,Buttercup Close,,Hull,HU9 2AE,WN1,Bungalow,1990,Gas Combination Boiler,Radiators +0200060000,,6,Buttercup Close,,Hull,HU9 2AE,WN1,Bungalow Disabled,1990,Gas Combination Boiler,Radiators +0360010000,,1,Studley Court,,Hull,HU9 2AJ,SC1,Bungalow,1991,Gas Combination Boiler,Radiators +0360020000,,2,Studley Court,,Hull,HU9 2AJ,SC1,Bungalow,1991,Gas Combination Boiler,Radiators +0360030000,,3,Studley Court,,Hull,HU9 2AJ,SC1,Bungalow,1991,Gas Combination Boiler,Radiators +0360040000,,4,Studley Court,,Hull,HU9 2AJ,SC1,Bungalow,1991,Gas Combination Boiler,Radiators +0360050000,,5,Studley Court,,Hull,HU9 2AJ,SC1,Bungalow,1991,Gas Combination Boiler,Radiators +0360060000,,6,Studley Court,,Hull,HU9 2AJ,SC1,Bungalow,1991,Gas Combination Boiler,Radiators +0360070000,,7,Studley Court,,Hull,HU9 2AJ,SC1,Bungalow,1991,Gas Combination Boiler,Radiators +0360080000,,8,Studley Court,,Hull,HU9 2AJ,SC1,Bungalow,1991,Gas Combination Boiler,Radiators +0360090000,,9,Studley Court,,Hull,HU9 2AJ,SC1,Bungalow,1991,Gas Combination Boiler,Radiators +0360100000,,10,Studley Court,,Hull,HU9 2AJ,SC1,Bungalow,1991,Gas Combination Boiler,Radiators +0360110000,,11,Studley Court,,Hull,HU9 2AJ,SC1,Bungalow,1991,Gas Combination Boiler,Radiators +0360130000,,13,Studley Court,,Hull,HU9 2AJ,SC1,Bungalow,1991,Gas Combination Boiler,Radiators +0190010000,,1,Wentworth Way,,Hull,HU9 2AX,WN1,Bungalow,1990,Gas Combination Boiler,Radiators +0190030000,,3,Wentworth Way,,Hull,HU9 2AX,WN1,Bungalow,1990,Gas Combination Boiler,Radiators +0190050000,,5,Wentworth Way,,Hull,HU9 2AX,WN1,Bungalow,1990,Gas Combination Boiler,Radiators +0190070000,,7,Wentworth Way,,Hull,HU9 2AX,WN1,Bungalow,1990,Gas Combination Boiler,Radiators +0190090000,,9,Wentworth Way,,Hull,HU9 2AX,WN1,Bungalow,1990,Gas Combination Boiler,Radiators +0350010000,,1,Babington Row,,Hull,HU9 2BA,BA1,Bungalow,1990,Gas Combination Boiler,Radiators +0350030000,,3,Babington Row,,Hull,HU9 2BA,BA1,Bungalow,1990,Gas Combination Boiler,Radiators +0350050000,,5,Babington Row,,Hull,HU9 2BA,BA1,Bungalow,1990,Gas Combination Boiler,Radiators +0350070000,,7,Babington Row,,Hull,HU9 2BA,BA1,Bungalow,1990,Gas Combination Boiler,Radiators +0350090000,,9,Babington Row,,Hull,HU9 2BA,BA1,Bungalow,1990,Gas Combination Boiler,Radiators +0350110000,,11,Babington Row,,Hull,HU9 2BA,BA1,Bungalow,1990,Gas Combination Boiler,Radiators +S01NB10001,,1,David Lister Drive,,Hull,HU9 2BL,NB1,Bungalow,2018,Gas Combination Boiler,Radiators +S01NB10002,,3,David Lister Drive,,Hull,HU9 2BL,NB1,Bungalow,2018,Gas Combination Boiler,Radiators +S01NB10003,,5,David Lister Drive,,Hull,HU9 2BL,NB1,Bungalow,2018,Gas Combination Boiler,Radiators +S01NB10004,,7,David Lister Drive,,Hull,HU9 2BL,NB1,Bungalow,2018,Gas Combination Boiler,Radiators +S01NB10005,,9,David Lister Drive,,Hull,HU9 2BL,NB1,Bungalow,2018,Gas Combination Boiler,Radiators +S01NB10006,,11,David Lister Drive,,Hull,HU9 2BL,NB1,Bungalow,2018,Gas Combination Boiler,Radiators +S01NB10007,,15,David Lister Drive,,Hull,HU9 2BL,NB1,Bungalow,2018,Gas Combination Boiler,Radiators +S01NB10008,,17,David Lister Drive,,Hull,HU9 2BL,NB1,Bungalow,2018,Gas Combination Boiler,Radiators +S01NB10009,,19,David Lister Drive,,Hull,HU9 2BL,NB1,Bungalow,2018,Gas Combination Boiler,Radiators +S01NB10010,,21,David Lister Drive,,Hull,HU9 2BL,NB1,Bungalow,2018,Gas Combination Boiler,Radiators +S01NB10011,,23,David Lister Drive,,Hull,HU9 2BL,NB1,Bungalow,2018,Gas Combination Boiler,Radiators +S01NB10012,,25,David Lister Drive,,Hull,HU9 2BL,NB1,Bungalow,2018,Gas Combination Boiler,Radiators +S01NB10030,,26,David Lister Drive,,Hull,HU9 2BL,NB1,Bungalow,2018,Gas Combination Boiler,Radiators +S01NB10014,,27,David Lister Drive,,Hull,HU9 2BL,NB1,Bungalow,2018,Gas Combination Boiler,Radiators +S01NB10031,,28,David Lister Drive,,Hull,HU9 2BL,NB1,Bungalow,2018,Gas Combination Boiler,Radiators +S01NB10015,,29,David Lister Drive,,Hull,HU9 2BL,NB1,Bungalow,2018,Gas Combination Boiler,Radiators +S01NB10016,,31,David Lister Drive,,Hull,HU9 2BL,NB1,Bungalow,2018,Gas Combination Boiler,Radiators +S01NB10033,,32,David Lister Drive,,Hull,HU9 2BL,NB1,Bungalow,2018,Gas Combination Boiler,Radiators +S01NB10017,,33,David Lister Drive,,Hull,HU9 2BL,NB1,Bungalow,2018,Gas Combination Boiler,Radiators +S01NB10023,,34,David Lister Drive,,Hull,HU9 2BL,NB1,Bungalow,2018,Gas Combination Boiler,Radiators +S01NB10022,,36,David Lister Drive,,Hull,HU9 2BL,NB1,Bungalow,2018,Gas Combination Boiler,Radiators +S01NB10021,,38,David Lister Drive,,Hull,HU9 2BL,NB1,Bungalow,2018,Gas Combination Boiler,Radiators +S01NB10018,,40,David Lister Drive,,Hull,HU9 2BL,NB1,Bungalow,2018,Gas Combination Boiler,Radiators +S01NB10019,,42,David Lister Drive,,Hull,HU9 2BL,NB1,Bungalow,2018,Gas Combination Boiler,Radiators +S01NB10020,,44,David Lister Drive,,Hull,HU9 2BL,NB1,Bungalow,2018,Gas Combination Boiler,Radiators +S01NB10024,,46,David Lister Drive,,Hull,HU9 2BL,NB1,Bungalow,2018,Gas Combination Boiler,Radiators +S01NB10025,,48,David Lister Drive,,Hull,HU9 2BL,NB1,Bungalow,2018,Gas Combination Boiler,Radiators +S01NB10026,,50,David Lister Drive,,Hull,HU9 2BL,NB1,Bungalow,2018,Gas Combination Boiler,Radiators +S01NB10027,,52,David Lister Drive,,Hull,HU9 2BL,NB1,Bungalow,2018,Gas Combination Boiler,Radiators +S01NB10028,,54,David Lister Drive,,Hull,HU9 2BL,NB1,Bungalow,2018,Gas Combination Boiler,Radiators +S01NB10029,,56,David Lister Drive,,Hull,HU9 2BL,NB1,Bungalow,2018,Gas Combination Boiler,Radiators +S01NB10061,,2,David Lister Drive,,Hull,HU9 2BL,NB1,Bungalow,2019,Gas Combination Boiler,Radiators +S01NB10060,,4,David Lister Drive,,Hull,HU9 2BL,NB1,Bungalow,2019,Gas Combination Boiler,Radiators +S01NB10059,,6,David Lister Drive,,Hull,HU9 2BL,NB1,Bungalow,2019,Gas Combination Boiler,Radiators +S01NB10058,,8,David Lister Drive,,Hull,HU9 2BL,NB1,Bungalow,2019,Gas Combination Boiler,Radiators +S01NB10054,,10,David Lister Drive,,Hull,HU9 2BL,NB1,Bungalow,2019,Gas Combination Boiler,Radiators +S01NB10055,,12,David Lister Drive,,Hull,HU9 2BL,NB1,Bungalow,2019,Gas Combination Boiler,Radiators +S01NB10056,,14,David Lister Drive,,Hull,HU9 2BL,NB1,Bungalow,2019,Gas Combination Boiler,Radiators +S01NB10057,,16,David Lister Drive,,Hull,HU9 2BL,NB1,Bungalow,2019,Gas Combination Boiler,Radiators +S01NB10037,,18,David Lister Drive,,Hull,HU9 2BL,NB1,Bungalow,2019,Gas Combination Boiler,Radiators +S01NB10036,,20,David Lister Drive,,Hull,HU9 2BL,NB1,Bungalow,2019,Gas Combination Boiler,Radiators +S01NB10035,,22,David Lister Drive,,Hull,HU9 2BL,NB1,Bungalow,2019,Gas Combination Boiler,Radiators +S01NB10034,,24,David Lister Drive,,Hull,HU9 2BL,NB1,Bungalow,2019,Gas Combination Boiler,Radiators +S01NB10046,,35,David Lister Drive,,Hull,HU9 2BL,NB1,Bungalow,2019,Gas Combination Boiler,Radiators +S01NB10047,,37,David Lister Drive,,Hull,HU9 2BL,NB1,Bungalow,2019,Gas Combination Boiler,Radiators +S01NB10048,,39,David Lister Drive,,Hull,HU9 2BL,NB1,Bungalow,2019,Gas Combination Boiler,Radiators +S01NB10049,,41,David Lister Drive,,Hull,HU9 2BL,NB1,Bungalow,2019,Gas Combination Boiler,Radiators +S01NB10050,,43,David Lister Drive,,Hull,HU9 2BL,NB1,Bungalow,2019,Gas Combination Boiler,Radiators +S01NB10051,,45,David Lister Drive,,Hull,HU9 2BL,NB1,Bungalow,2019,Gas Combination Boiler,Radiators +S01NB10052,,47,David Lister Drive,,Hull,HU9 2BL,NB1,Bungalow,2019,Gas Combination Boiler,Radiators +S01NB10053,,49,David Lister Drive,,Hull,HU9 2BL,NB1,Bungalow,2019,Gas Combination Boiler,Radiators +S01NB10082,,51,David Lister Drive,,Hull,HU9 2BL,NB1,Bungalow,2019,Gas Combination Boiler,Radiators +S01NB10083,,53,David Lister Drive,,Hull,HU9 2BL,NB1,Bungalow,2019,Gas Combination Boiler,Radiators +S01NB10084,,55,David Lister Drive,,Hull,HU9 2BL,NB1,Bungalow,2019,Gas Combination Boiler,Radiators +S01NB10085,,57,David Lister Drive,,Hull,HU9 2BL,NB1,Bungalow,2019,Gas Combination Boiler,Radiators +S01NB10038,,58,David Lister Drive,,Hull,HU9 2BL,NB1,Bungalow,2019,Gas Combination Boiler,Radiators +S01NB10086,,59,David Lister Drive,,Hull,HU9 2BL,NB1,Bungalow,2019,Gas Combination Boiler,Radiators +S01NB10039,,60,David Lister Drive,,Hull,HU9 2BL,NB1,Bungalow,2019,Gas Combination Boiler,Radiators +S01NB10088,,61,David Lister Drive,,Hull,HU9 2BL,NB1,Bungalow,2019,Gas Combination Boiler,Radiators +S01NB10040,,62,David Lister Drive,,Hull,HU9 2BL,NB1,Bungalow,2019,Gas Combination Boiler,Radiators +S01NB10041,,64,David Lister Drive,,Hull,HU9 2BL,NB1,Bungalow,2019,Gas Combination Boiler,Radiators +S01NB10045,,66,David Lister Drive,,Hull,HU9 2BL,NB1,Bungalow,2019,Gas Combination Boiler,Radiators +S01NB10044,,68,David Lister Drive,,Hull,HU9 2BL,NB1,Bungalow,2019,Gas Combination Boiler,Radiators +S01NB10043,,70,David Lister Drive,,Hull,HU9 2BL,NB1,Bungalow,2019,Gas Combination Boiler,Radiators +S01NB10081,,71,David Lister Drive,,Hull,HU9 2BL,NB1,Bungalow,2019,Gas Combination Boiler,Radiators +S01NB10042,,72,David Lister Drive,,Hull,HU9 2BL,NB1,Bungalow,2019,Gas Combination Boiler,Radiators +S01Nb10080,,73,David Lister Drive,,Hull,HU9 2BL,NB1,Bungalow,2019,Gas Combination Boiler,Radiators +S01NB10068,,74,David Lister Drive,,Hull,HU9 2BL,NB1,Bungalow,2019,Gas Combination Boiler,Radiators +S01NB10079,,75,David Lister Drive,,Hull,HU9 2BL,NB1,Bungalow,2019,Gas Combination Boiler,Radiators +S01NB10066,,76,David Lister Drive,,Hull,HU9 2BL,NB1,Bungalow,2019,Gas Combination Boiler,Radiators +S01NB10078,,77,David Lister Drive,,Hull,HU9 2BL,NB1,Bungalow,2019,Gas Combination Boiler,Radiators +S01NB10064,,78,David Lister Drive,,Hull,HU9 2BL,NB1,Bungalow,2019,Gas Combination Boiler,Radiators +S01NB10077,,79,David Lister Drive,,Hull,HU9 2BL,NB1,Bungalow,2019,Gas Combination Boiler,Radiators +S01NB10062,,80,David Lister Drive,,Hull,HU9 2BL,NB1,Bungalow,2019,Gas Combination Boiler,Radiators +S01NB10076,,81,David Lister Drive,,Hull,HU9 2BL,NB1,Bungalow,2019,Gas Combination Boiler,Radiators +S01NB10070,,82,David Lister Drive,,Hull,HU9 2BL,NB1,Bungalow,2019,Gas Combination Boiler,Radiators +S01NB10075,,83,David Lister Drive,,Hull,HU9 2BL,NB1,Bungalow,2019,Gas Combination Boiler,Radiators +S01NB10071,,84,David Lister Drive,,Hull,HU9 2BL,NB1,Bungalow,2019,Gas Combination Boiler,Radiators +S01NB10074,,85,David Lister Drive,,Hull,HU9 2BL,NB1,Bungalow,2019,Gas Combination Boiler,Radiators +S01NB10072,,86,David Lister Drive,,Hull,HU9 2BL,NB1,Bungalow,2019,Gas Combination Boiler,Radiators +S01NB10073,,88,David Lister Drive,,Hull,HU9 2BL,NB1,Bungalow,2019,Gas Combination Boiler,Radiators +0220240000,,24,Steynburg Street,,Hull,HU9 2PF,SR1,Bungalow,1990,Gas Combination Boiler,Radiators +0220260000,,26,Steynburg Street,,Hull,HU9 2PF,SR1,Bungalow,1990,Gas Combination Boiler,Radiators +0220280000,,28,Steynburg Street,,Hull,HU9 2PF,SR1,Bungalow,1990,Gas Combination Boiler,Radiators +0220360000,,36,Steynburg Street,,Hull,HU9 2PF,SR1,Bungalow,1990,Gas Combination Boiler,Radiators +0220380000,,38,Steynburg Street,,Hull,HU9 2PF,SR1,Bungalow,1990,Gas Combination Boiler,Radiators +0220400000,,40,Steynburg Street,,Hull,HU9 2PF,SR1,Bungalow,1990,Gas Combination Boiler,Radiators +0220420000,,42,Steynburg Street,,Hull,HU9 2PF,SR1,Bungalow,1990,Gas Combination Boiler,Radiators +0220300000,,30,Steynburg Street,,Hull,HU9 2PF,SR1,Bungalow Disabled,1990,Gas Combination Boiler,Radiators +0210270000,,27,Rustenburg Street,,Hull,HU9 2PT,SR1,Bungalow,1990,Gas Combination Boiler,Radiators +0210290000,,29,Rustenburg Street,,Hull,HU9 2PT,SR1,Bungalow,1990,Gas Combination Boiler,Radiators +0210310000,,31,Rustenburg Street,,Hull,HU9 2PT,SR1,Bungalow,1990,Gas Combination Boiler,Radiators +0210330000,,33,Rustenburg Street,,Hull,HU9 2PT,SR1,Bungalow,1990,Gas Combination Boiler,Radiators +0210350000,,35,Rustenburg Street,,Hull,HU9 2PT,SR1,Bungalow,1990,Gas Combination Boiler,Radiators +0210370000,,37,Rustenburg Street,,Hull,HU9 2PT,SR1,Bungalow,1990,Gas Combination Boiler,Radiators +0210190000,,19,Rustenburg Street,,Hull,HU9 2PT,SR1,Flat,1990,Gas Combination Boiler,Radiators +0210210000,,21,Rustenburg Street,,Hull,HU9 2PT,SR1,Flat,1990,Gas Combination Boiler,Radiators +0210230000,,23,Rustenburg Street,,Hull,HU9 2PT,SR1,Flat,1990,Gas Combination Boiler,Radiators +0210250000,,25,Rustenburg Street,,Hull,HU9 2PT,SR1,Flat,1990,Gas Combination Boiler,Radiators +0210550000,,55,Rustenburg Street,,Hull,HU9 2PT,SR1,Flat,1990,Gas Combination Boiler,Radiators +0210570000,,57,Rustenburg Street,,Hull,HU9 2PT,SR1,Flat,1990,Gas Combination Boiler,Radiators +0210590000,,59,Rustenburg Street,,Hull,HU9 2PT,SR1,Flat,1990,Gas Combination Boiler,Radiators +0210610000,,61,Rustenburg Street,,Hull,HU9 2PT,SR1,Flat,1990,Gas Combination Boiler,Radiators +123ESC0001,,1,Eleanor Scott Close,,Hull,HU9 3BX,ES1,Bungalow,2021,Gas Combination Boiler,Radiators +123ESC0002,,2,Eleanor Scott Close,,Hull,HU9 3BX,ES1,Bungalow,2021,Gas Combination Boiler,Radiators +123ESC0003,,3,Eleanor Scott Close,,Hull,HU9 3BX,ES1,Bungalow,2021,Gas Combination Boiler,Radiators +123ESC0004,,4,Eleanor Scott Close,,Hull,HU9 3BX,ES1,Bungalow,2021,Gas Combination Boiler,Radiators +123ESC0005,,5,Eleanor Scott Close,,Hull,HU9 3BX,ES1,Bungalow,2021,Gas Combination Boiler,Radiators +123ESC0006,,6,Eleanor Scott Close,,Hull,HU9 3BX,BS1,Bungalow,2021,Gas Combination Boiler,Radiators +123ESC0007,,7,Eleanor Scott Close,,Hull,HU9 3BX,ES1,Bungalow,2021,Gas Combination Boiler,Radiators +123ESC0008,,8,Eleanor Scott Close,,Hull,HU9 3BX,ES1,Bungalow,2021,Gas Combination Boiler,Radiators +123ESC0009,,9,Eleanor Scott Close,,Hull,HU9 3BX,ES1,Bungalow,2021,Gas Combination Boiler,Radiators +123ESC0010,,10,Eleanor Scott Close,,Hull,HU9 3BX,ES1,Bungalow,2021,Gas Combination Boiler,Radiators +123ESC0011,,11,Eleanor Scott Close,,Hull,HU9 3BX,ES1,Bungalow,2021,Gas Combination Boiler,Radiators +123ESC0012,,12,Eleanor Scott Close,,Hull,HU9 3BX,ES1,Bungalow,2021,Gas Combination Boiler,Radiators +123ESC0014,,14,Eleanor Scott Close,,Hull,HU9 3BX,ES1,Bungalow,2021,Gas Combination Boiler,Radiators +0570130000,,13,Boulton Grove,,Hull,HU9 3ED,BG1,Bungalow,1955,Gas Combination Boiler,Radiators +0570150000,,15,Boulton Grove,,Hull,HU9 3ED,BG1,Bungalow,1955,Gas Combination Boiler,Radiators +0570170000,,17,Boulton Grove,,Hull,HU9 3ED,BG1,Bungalow,1955,Gas Combination Boiler,Radiators +0570190000,,19,Boulton Grove,,Hull,HU9 3ED,BG1,Bungalow,1955,Gas Combination Boiler,Radiators +0570210000,,21,Boulton Grove,,Hull,HU9 3ED,BG1,Bungalow,1955,Gas Combination Boiler,Radiators +0570230000,,23,Boulton Grove,,Hull,HU9 3ED,BG1,Bungalow,1955,Gas Combination Boiler,Radiators +0570250000,,25,Boulton Grove,,Hull,HU9 3ED,BG1,Bungalow,1955,Gas Combination Boiler,Radiators +0570270000,,27,Boulton Grove,,Hull,HU9 3ED,BG1,Bungalow,1955,Gas Combination Boiler,Radiators +0570290000,,29,Boulton Grove,,Hull,HU9 3ED,BG1,Bungalow,1955,Gas Combination Boiler,Radiators +0570310000,,31,Boulton Grove,,Hull,HU9 3ED,BG1,Bungalow,1955,Gas Combination Boiler,Radiators +0570330000,,33,Boulton Grove,,Hull,HU9 3ED,BG1,Bungalow,1955,Gas Combination Boiler,Radiators +0570350000,,35,Boulton Grove,,Hull,HU9 3ED,BG1,Bungalow,1955,Gas Combination Boiler,Radiators +0570370000,,37,Boulton Grove,,Hull,HU9 3ED,BG1,Bungalow,1955,Gas Combination Boiler,Radiators +0570160000,,,Boulton Grove,,Hull,HU9 3ED,BG1,Laundry,1955,N/A,N/A +0570360000,,,Boulton Grove,,Hull,HU9 3ED,BG1,Shed,1955,N/A,N/A +0240010000,,1,The Broadway,,Hull,HU9 3JH,BR1,Bungalow,1994,Gas Combination Boiler,Radiators +0240030000,,3,The Broadway,,Hull,HU9 3JH,BR1,Bungalow,1994,Gas Combination Boiler,Radiators +0240050000,,5,The Broadway,,Hull,HU9 3JH,BR1,Bungalow,1994,Gas Combination Boiler,Radiators +0240070000,,7,The Broadway,,Hull,HU9 3JH,BR1,Bungalow,1994,Gas Combination Boiler,Radiators +0240090000,,9,The Broadway,,Hull,HU9 3JH,BR1,Bungalow,1994,Gas Combination Boiler,Radiators +0240110000,,11,The Broadway,,Hull,HU9 3JH,BR1,Bungalow,1994,Gas Combination Boiler,Radiators +0250010000,,1,Bowling Circle,,Hull,HU9 3JL,BR1,Bungalow,1994,Gas Combination Boiler,Radiators +0250030000,,3,Bowling Circle,,Hull,HU9 3JL,BR1,Bungalow,1994,Gas Combination Boiler,Radiators +0250050000,,5,Bowling Circle,,Hull,HU9 3JL,BR1,Bungalow,1994,Gas Combination Boiler,Radiators +0250070000,,7,Bowling Circle,,Hull,HU9 3JL,BR1,Bungalow,1994,Gas Combination Boiler,Radiators +0250090000,,9,Bowling Circle,,Hull,HU9 3JL,BR1,Bungalow,1994,Gas Combination Boiler,Radiators +0260010000,,1,Majestic Court,,Hull,HU9 3JY,BR1,Bungalow,1994,Gas Combination Boiler,Radiators +0260020000,,2,Majestic Court,,Hull,HU9 3JY,BR1,Bungalow,1994,Gas Combination Boiler,Radiators +0260030000,,3,Majestic Court,,Hull,HU9 3JY,BR1,Bungalow,1994,Gas Combination Boiler,Radiators +0260040000,,4,Majestic Court,,Hull,HU9 3JY,BR1,Bungalow,1994,Gas Combination Boiler,Radiators +0260050000,,5,Majestic Court,,Hull,HU9 3JY,BR1,Bungalow,1994,Gas Combination Boiler,Radiators +0260060000,,6,Majestic Court,,Hull,HU9 3JY,BR1,Bungalow,1994,Gas Combination Boiler,Radiators +0260070000,,7,Majestic Court,,Hull,HU9 3JY,BR1,Bungalow,1994,Gas Combination Boiler,Radiators +0260080000,,8,Majestic Court,,Hull,HU9 3JY,BR1,Bungalow,1994,Gas Combination Boiler,Radiators +0260090000,,9,Majestic Court,,Hull,HU9 3JY,BR1,Bungalow,1994,Gas Combination Boiler,Radiators +0260100000,,10,Majestic Court,,Hull,HU9 3JY,BR1,Bungalow,1994,Gas Combination Boiler,Radiators +0260110000,,11,Majestic Court,,Hull,HU9 3JY,BR1,Bungalow,1994,Gas Combination Boiler,Radiators +0260120000,,12,Majestic Court,,Hull,HU9 3JY,BR1,Bungalow,1994,Gas Combination Boiler,Radiators +0260140000,,14,Majestic Court,,Hull,HU9 3JY,BR1,Bungalow,1994,Gas Combination Boiler,Radiators +0260150000,,15,Majestic Court,,Hull,HU9 3JY,BR1,Bungalow,1994,Gas Combination Boiler,Radiators +0260160000,,16,Majestic Court,,Hull,HU9 3JY,BR1,Bungalow,1994,Gas Combination Boiler,Radiators +0230010000,,1,Royale Court,,Hull,HU9 3JZ,BR1,Bungalow,1994,Gas Combination Boiler,Radiators +0230020000,,2,Royale Court,,Hull,HU9 3JZ,BR1,Bungalow,1994,Gas Combination Boiler,Radiators +0230030000,,3,Royale Court,,Hull,HU9 3JZ,BR1,Bungalow,1994,Gas Combination Boiler,Radiators +0230040000,,4,Royale Court,,Hull,HU9 3JZ,BR1,Bungalow,1994,Gas Combination Boiler,Radiators +0230050000,,5,Royale Court,,Hull,HU9 3JZ,BR1,Bungalow,1994,Gas Combination Boiler,Radiators +0230060000,,6,Royale Court,,Hull,HU9 3JZ,BR1,Bungalow,1994,Gas Combination Boiler,Radiators +0230070000,,7,Royale Court,,Hull,HU9 3JZ,BR1,Bungalow,1994,Gas Combination Boiler,Radiators +0230080000,,8,Royale Court,,Hull,HU9 3JZ,BR1,Bungalow,1994,Gas Combination Boiler,Radiators +0230090000,,9,Royale Court,,Hull,HU9 3JZ,BR1,Bungalow,1994,Gas Combination Boiler,Radiators +0230100000,,10,Royale Court,,Hull,HU9 3JZ,BR1,Bungalow,1994,Gas Combination Boiler,Radiators +0230110000,,11,Royale Court,,Hull,HU9 3JZ,BR1,Bungalow,1994,Gas Combination Boiler,Radiators +0230120000,,12,Royale Court,,Hull,HU9 3JZ,BR1,Bungalow,1994,Gas Combination Boiler,Radiators +02312A0000,,12A,Royale Court,,Hull,HU9 3JZ,BR1,Bungalow,1994,Gas Combination Boiler,Radiators +0230140000,,14,Royale Court,,Hull,HU9 3JZ,BR1,Bungalow,1994,Gas Combination Boiler,Radiators +0230150000,,15,Royale Court,,Hull,HU9 3JZ,BR1,Bungalow,1994,Gas Combination Boiler,Radiators +0230160000,,16,Royale Court,,Hull,HU9 3JZ,BR1,Bungalow,1994,Gas Combination Boiler,Radiators +0230170000,,17,Royale Court,,Hull,HU9 3JZ,BR1,Bungalow,1994,Gas Combination Boiler,Radiators +0230180000,,18,Royale Court,,Hull,HU9 3JZ,BR1,Bungalow,1994,Gas Combination Boiler,Radiators +0230190000,,19,Royale Court,,Hull,HU9 3JZ,BR1,Bungalow,1994,Gas Combination Boiler,Radiators +0230200000,,20,Royale Court,,Hull,HU9 3JZ,BR1,Bungalow,1994,Gas Combination Boiler,Radiators +0230210000,,21,Royale Court,,Hull,HU9 3JZ,BR1,Bungalow,1994,Gas Combination Boiler,Radiators +0230220000,,22,Royale Court,,Hull,HU9 3JZ,BR1,Bungalow,1994,Gas Combination Boiler,Radiators +0230230000,,23,Royale Court,,Hull,HU9 3JZ,BR1,Bungalow,1994,Gas Combination Boiler,Radiators +0230240000,,24,Royale Court,,Hull,HU9 3JZ,BR1,Bungalow,1994,Gas Combination Boiler,Radiators +0230250000,,25,Royale Court,,Hull,HU9 3JZ,BR1,Bungalow,1994,Gas Combination Boiler,Radiators +0230260000,,26,Royale Court,,Hull,HU9 3JZ,BR1,Bungalow Disabled,1994,Gas Combination Boiler,Radiators +0450790000,,79,Maybury Road,,Hull,HU9 3LB,MH2,Bungalow,1995,Gas Combination Boiler,Radiators +0450810000,,81,Maybury Road,,Hull,HU9 3LB,MH2,Bungalow Disabled,1995,Gas Combination Boiler,Radiators +0330030000,,3,Hebrides Close,,Hull,HU9 3LF,MH1,Bungalow,1994,Gas Combination Boiler,Radiators +0330040000,,4,Hebrides Close,,Hull,HU9 3LF,MH1,Bungalow,1994,Gas Combination Boiler,Radiators +0330050000,,5,Hebrides Close,,Hull,HU9 3LF,MH1,Bungalow,1994,Gas Combination Boiler,Radiators +0330060000,,6,Hebrides Close,,Hull,HU9 3LF,MH1,Bungalow,1994,Gas Combination Boiler,Radiators +0330070000,,7,Hebrides Close,,Hull,HU9 3LF,MH1,Bungalow,1994,Gas Combination Boiler,Radiators +0330100000,,10,Hebrides Close,,Hull,HU9 3LF,MH1,Bungalow,1994,Gas Combination Boiler,Radiators +0330110000,,11,Hebrides Close,,Hull,HU9 3LF,MH1,Bungalow,1994,Gas Combination Boiler,Radiators +0330120000,,12,Hebrides Close,,Hull,HU9 3LF,MH1,Bungalow,1994,Gas Combination Boiler,Radiators +0330150000,,15,Hebrides Close,,Hull,HU9 3LF,MH1,Bungalow,1994,Gas Combination Boiler,Radiators +0330160000,,16,Hebrides Close,,Hull,HU9 3LF,MH1,Bungalow,1994,Gas Combination Boiler,Radiators +0330170000,,17,Hebrides Close,,Hull,HU9 3LF,MH1,Bungalow,1994,Gas Combination Boiler,Radiators +0330180000,,18,Hebrides Close,,Hull,HU9 3LF,MH1,Bungalow,1994,Gas Combination Boiler,Radiators +0330190000,,19,Hebrides Close,,Hull,HU9 3LF,MH1,Bungalow,1994,Gas Combination Boiler,Radiators +0330200000,,20,Hebrides Close,,Hull,HU9 3LF,MH1,Bungalow,1994,Gas Combination Boiler,Radiators +0330210000,,21,Hebrides Close,,Hull,HU9 3LF,MH1,Bungalow,1994,Gas Combination Boiler,Radiators +0330220000,,22,Hebrides Close,,Hull,HU9 3LF,MH1,Bungalow,1994,Gas Combination Boiler,Radiators +0330230000,,23,Hebrides Close,,Hull,HU9 3LF,MH1,Bungalow,1994,Gas Combination Boiler,Radiators +0330240000,,24,Hebrides Close,,Hull,HU9 3LF,MH1,Bungalow,1994,Gas Combination Boiler,Radiators +0330250000,,25,Hebrides Close,,Hull,HU9 3LF,MH1,Bungalow,1994,Gas Combination Boiler,Radiators +0330270000,,27,Hebrides Close,,Hull,HU9 3LF,MH1,Bungalow,1994,Gas Combination Boiler,Radiators +0330280000,,28,Hebrides Close,,Hull,HU9 3LF,MH1,Bungalow,1994,Gas Combination Boiler,Radiators +0330290000,,29,Hebrides Close,,Hull,HU9 3LF,MH1,Bungalow,1994,Gas Combination Boiler,Radiators +0330300000,,30,Hebrides Close,,Hull,HU9 3LF,MH1,Bungalow,1994,Gas Combination Boiler,Radiators +0330310000,,31,Hebrides Close,,Hull,HU9 3LF,MH1,Bungalow,1994,Gas Combination Boiler,Radiators +0330320000,,32,Hebrides Close,,Hull,HU9 3LF,MH1,Bungalow,1994,Gas Combination Boiler,Radiators +0330330000,,33,Hebrides Close,,Hull,HU9 3LF,MH1,Bungalow,1994,Gas Combination Boiler,Radiators +0330340000,,34,Hebrides Close,,Hull,HU9 3LF,MH1,Bungalow,1994,Gas Combination Boiler,Radiators +0330350000,,35,Hebrides Close,,Hull,HU9 3LF,MH1,Bungalow,1994,Gas Combination Boiler,Radiators +0330360000,,36,Hebrides Close,,Hull,HU9 3LF,MH1,Bungalow,1994,Gas Combination Boiler,Radiators +0330370000,,37,Hebrides Close,,Hull,HU9 3LF,MH1,Bungalow,1994,Gas Combination Boiler,Radiators +0330390000,,39,Hebrides Close,,Hull,HU9 3LF,MH1,Bungalow,1994,Gas Combination Boiler,Radiators +0330400000,,40,Hebrides Close,,Hull,HU9 3LF,MH1,Bungalow,1994,Gas Combination Boiler,Radiators +0330410000,,41,Hebrides Close,,Hull,HU9 3LF,MH1,Bungalow,1994,Gas Combination Boiler,Radiators +0330420000,,42,Hebrides Close,,Hull,HU9 3LF,MH1,Bungalow,1994,Gas Combination Boiler,Radiators +0330140000,,14,Hebrides Close,,Hull,HU9 3LF,MH1,Bungalow Disabled,1994,Gas Combination Boiler,Radiators +0330380000,,38,Hebrides Close,,Hull,HU9 3LF,MH1,Bungalow Disabled,1994,Gas Combination Boiler,Radiators +0330010000,,1,Hebrides Close,,Hull,HU9 3LF,MH1,Flat,1994,Gas Combination Boiler,Radiators +0330020000,,2,Hebrides Close,,Hull,HU9 3LF,MH1,Flat,1994,Gas Combination Boiler,Radiators +0330080000,,8,Hebrides Close,,Hull,HU9 3LF,MH1,Flat,1994,Gas Combination Boiler,Radiators +0330090000,,9,Hebrides Close,,Hull,HU9 3LF,MH1,Flat,1994,Gas Combination Boiler,Radiators +0330260000,,26,Hebrides Close,,Hull,HU9 3LF,MH1,Pop-In,1994,Gas Combination Boiler,Radiators +0430020000,,2,Cromarty Close,,Hull,HU9 3LG,MH2,Bungalow,1995,Gas Combination Boiler,Radiators +0430040000,,4,Cromarty Close,,Hull,HU9 3LG,MH2,Bungalow,1995,Gas Combination Boiler,Radiators +0430060000,,6,Cromarty Close,,Hull,HU9 3LG,MH2,Bungalow,1995,Gas Combination Boiler,Radiators +0430080000,,8,Cromarty Close,,Hull,HU9 3LG,MH2,Bungalow,1995,Gas Combination Boiler,Radiators +0430100000,,10,Cromarty Close,,Hull,HU9 3LG,MH2,Bungalow,1995,Gas Combination Boiler,Radiators +0430120000,,12,Cromarty Close,,Hull,HU9 3LG,MH2,Bungalow,1995,Gas Combination Boiler,Radiators +0430140000,,14,Cromarty Close,,Hull,HU9 3LG,MH2,Bungalow,1995,Gas Combination Boiler,Radiators +0430160000,,16,Cromarty Close,,Hull,HU9 3LG,MH2,Bungalow,1995,Gas Combination Boiler,Radiators +0430180000,,18,Cromarty Close,,Hull,HU9 3LG,MH2,Bungalow,1995,Gas Combination Boiler,Radiators +0430200000,,20,Cromarty Close,,Hull,HU9 3LG,MH2,Bungalow,1995,Gas Combination Boiler,Radiators +0430300000,,30,Cromarty Close,,Hull,HU9 3LG,MH2,Bungalow,1995,Gas Combination Boiler,Radiators +0430320000,,32,Cromarty Close,,Hull,HU9 3LG,MH2,Bungalow,1995,Gas Combination Boiler,Radiators +0430340000,,34,Cromarty Close,,Hull,HU9 3LG,MH2,Bungalow,1995,Gas Combination Boiler,Radiators +0430360000,,36,Cromarty Close,,Hull,HU9 3LG,MH2,Bungalow,1995,Gas Combination Boiler,Radiators +0430380000,,38,Cromarty Close,,Hull,HU9 3LG,MH2,Bungalow,1995,Gas Combination Boiler,Radiators +0430400000,,40,Cromarty Close,,Hull,HU9 3LG,MH2,Bungalow,1995,Gas Combination Boiler,Radiators +0430420000,,42,Cromarty Close,,Hull,HU9 3LG,MH2,Bungalow,1995,Gas Combination Boiler,Radiators +0430440000,,44,Cromarty Close,,Hull,HU9 3LG,MH2,Bungalow,1995,Gas Combination Boiler,Radiators +0430460000,,46,Cromarty Close,,Hull,HU9 3LG,MH2,Bungalow,1995,Gas Combination Boiler,Radiators +0430480000,,48,Cromarty Close,,Hull,HU9 3LG,MH2,Bungalow,1995,Gas Combination Boiler,Radiators +0430500000,,50,Cromarty Close,,Hull,HU9 3LG,MH2,Bungalow,1995,Gas Combination Boiler,Radiators +0430520000,,52,Cromarty Close,,Hull,HU9 3LG,MH2,Bungalow,1995,Gas Combination Boiler,Radiators +0430540000,,54,Cromarty Close,,Hull,HU9 3LG,MH2,Bungalow,1995,Gas Combination Boiler,Radiators +0430640000,,64,Cromarty Close,,Hull,HU9 3LG,MH2,Bungalow,1995,Gas Combination Boiler,Radiators +0430660000,,66,Cromarty Close,,Hull,HU9 3LG,MH2,Bungalow,1995,Gas Combination Boiler,Radiators +0430680000,,68,Cromarty Close,,Hull,HU9 3LG,MH2,Bungalow,1995,Gas Combination Boiler,Radiators +0430220000,,22,Cromarty Close,,Hull,HU9 3LG,MH2,Flat,1995,Gas Combination Boiler,Radiators +0430240000,,24,Cromarty Close,,Hull,HU9 3LG,MH2,Flat,1995,Gas Combination Boiler,Radiators +0430260000,,26,Cromarty Close,,Hull,HU9 3LG,MH2,Flat,1995,Gas Combination Boiler,Radiators +0430280000,,28,Cromarty Close,,Hull,HU9 3LG,MH2,Flat,1995,Gas Combination Boiler,Radiators +0430560000,,56,Cromarty Close,,Hull,HU9 3LG,MH2,Flat,1995,Gas Combination Boiler,Radiators +0430580000,,58,Cromarty Close,,Hull,HU9 3LG,MH2,Flat,1995,Gas Combination Boiler,Radiators +0430600000,,60,Cromarty Close,,Hull,HU9 3LG,MH2,Flat,1995,Gas Combination Boiler,Radiators +0430620000,,62,Cromarty Close,,Hull,HU9 3LG,MH2,Flat,1995,Gas Combination Boiler,Radiators +0440020000,,2,Ronaldsway Close,,Hull,HU9 3LH,MH2,Flat,1995,Gas Combination Boiler,Radiators +0440030000,,3,Ronaldsway Close,,Hull,HU9 3LH,MH2,Flat,1995,Gas Combination Boiler,Radiators +0440010000,,1,Ronaldsway Close,,Hull,HU9 3LH,MH2,House,1995,Gas Combination Boiler,Radiators +0480010000,,1,Malin Lodge,,Hull,HU9 3LH,MH2,Flat,1995,N/A Gas Communal Boiler,Radiators +0480020000,,2,Malin Lodge,,Hull,HU9 3LH,MH2,Flat,1995,N/A Gas Communal Boiler,Radiators +0480030000,,3,Malin Lodge,,Hull,HU9 3LH,MH2,Flat,1995,N/A Gas Communal Boiler,Radiators +0480040000,,4,Malin Lodge,,Hull,HU9 3LH,MH2,Flat,1995,N/A Gas Communal Boiler,Radiators +0480050000,,5,Malin Lodge,,Hull,HU9 3LH,MH2,Flat,1995,N/A Gas Communal Boiler,Radiators +0480060000,,6,Malin Lodge,,Hull,HU9 3LH,MH2,Flat,1995,N/A Gas Communal Boiler,Radiators +0480070000,,7,Malin Lodge,,Hull,HU9 3LH,MH2,Flat,1995,N/A Gas Communal Boiler,Radiators +0480080000,,8,Malin Lodge,,Hull,HU9 3LH,MH2,Flat,1995,N/A Gas Communal Boiler,Radiators +0480090000,,9,Malin Lodge,,Hull,HU9 3LH,MH2,Flat,1995,N/A Gas Communal Boiler,Radiators +0480100000,,10,Malin Lodge,,Hull,HU9 3LH,MH2,Flat,1995,N/A Gas Communal Boiler,Radiators +0480110000,,11,Malin Lodge,,Hull,HU9 3LH,MH2,Flat,1995,N/A Gas Communal Boiler,Radiators +0480120000,,12,Malin Lodge,,Hull,HU9 3LH,MH2,Flat,1995,N/A Gas Communal Boiler,Radiators +0480140000,,14,Malin Lodge,,Hull,HU9 3LH,MH2,Flat,1995,N/A Gas Communal Boiler,Radiators +0480150000,,15,Malin Lodge,,Hull,HU9 3LH,MH2,Flat,1995,N/A Gas Communal Boiler,Radiators +0480160000,,16,Malin Lodge,,Hull,HU9 3LH,MH2,Flat,1995,N/A Gas Communal Boiler,Radiators +0480170000,,17,Malin Lodge,,Hull,HU9 3LH,MH2,Flat,1995,N/A Gas Communal Boiler,Radiators +0480190000,,19,Malin Lodge,,Hull,HU9 3LH,MH2,Flat,1995,N/A Gas Communal Boiler,Radiators +0480200000,,20,Malin Lodge,,Hull,HU9 3LH,MH2,Flat,1995,N/A Gas Communal Boiler,Radiators +0480210000,,21,Malin Lodge,,Hull,HU9 3LH,MH2,Flat,1995,N/A Gas Communal Boiler,Radiators +0480220000,,22,Malin Lodge,,Hull,HU9 3LH,MH2,Flat,1995,N/A Gas Communal Boiler,Radiators +0480230000,,23,Malin Lodge,,Hull,HU9 3LH,MH2,Flat,1995,N/A Gas Communal Boiler,Radiators +0480240000,,24,Malin Lodge,,Hull,HU9 3LH,MH2,Flat,1995,N/A Gas Communal Boiler,Radiators +0480250000,,25,Malin Lodge,,Hull,HU9 3LH,MH2,Flat,1995,N/A Gas Communal Boiler,Radiators +0480260000,,26,Malin Lodge,,Hull,HU9 3LH,MH2,Flat,1995,N/A Gas Communal Boiler,Radiators +0480270000,,27,Malin Lodge,,Hull,HU9 3LH,MH2,Flat,1995,N/A Gas Communal Boiler,Radiators +0480280000,,28,Malin Lodge,,Hull,HU9 3LH,MH2,Flat,1995,N/A Gas Communal Boiler,Radiators +0480290000,,29,Malin Lodge,,Hull,HU9 3LH,MH2,Flat,1995,N/A Gas Communal Boiler,Radiators +0480300000,,30,Malin Lodge,,Hull,HU9 3LH,MH2,Flat,1995,N/A Gas Communal Boiler,Radiators +0480310000,,31,Malin Lodge,,Hull,HU9 3LH,MH2,Flat,1995,N/A Gas Communal Boiler,Radiators +0480320000,,32,Malin Lodge,,Hull,HU9 3LH,MH2,Flat,1995,N/A Gas Communal Boiler,Radiators +0480330000,,33,Malin Lodge,,Hull,HU9 3LH,MH2,Flat,1995,N/A Gas Communal Boiler,Radiators +0480340000,,34,Malin Lodge,,Hull,HU9 3LH,MH2,Flat,1995,N/A Gas Communal Boiler,Radiators +0480350000,,35,Malin Lodge,,Hull,HU9 3LH,MH2,Flat,1995,N/A Gas Communal Boiler,Radiators +0480360000,,36,Malin Lodge,,Hull,HU9 3LH,MH2,Flat,1995,N/A Gas Communal Boiler,Radiators +0480370000,,37,Malin Lodge,,Hull,HU9 3LH,MH2,Flat,1995,N/A Gas Communal Boiler,Radiators +0480380000,,38,Malin Lodge,,Hull,HU9 3LH,MH2,Flat,1995,N/A Gas Communal Boiler,Radiators +0480390000,,39,Malin Lodge,,Hull,HU9 3LH,MH2,Flat,1995,N/A Gas Communal Boiler,Radiators +0480400000,,40,Malin Lodge,,Hull,HU9 3LH,MH2,Flat,1995,N/A Gas Communal Boiler,Radiators +0480410000,,41,Malin Lodge,,Hull,HU9 3LH,MH2,Flat,1995,N/A Gas Communal Boiler,Radiators +0480420000,,42,Malin Lodge,,Hull,HU9 3LH,MH2,Flat,1995,N/A Gas Communal Boiler,Radiators +0480430000,,43,Malin Lodge,,Hull,HU9 3LH,MH2,Flat,1995,N/A Gas Communal Boiler,Radiators +0480440000,,44,Malin Lodge,,Hull,HU9 3LH,MH2,Flat,1995,N/A Gas Communal Boiler,Radiators +0480450000,,45,Malin Lodge,,Hull,HU9 3LH,MH2,Flat,1995,N/A Gas Communal Boiler,Radiators +0480460000,,46,Malin Lodge,,Hull,HU9 3LH,MH2,Flat,1995,N/A Gas Communal Boiler,Radiators +0480470000,,47,Malin Lodge,,Hull,HU9 3LH,MH2,Flat,1995,N/A Gas Communal Boiler,Radiators +0480480000,,48,Malin Lodge,,Hull,HU9 3LH,MH2,Flat,1995,N/A Gas Communal Boiler,Radiators +0480490000,,49,Malin Lodge,,Hull,HU9 3LH,MH2,Flat,1995,N/A Gas Communal Boiler,Radiators +0480180000,,18,Malin Lodge,,Hull,HU9 3LH,MH2,Flat Disabled,1995,N/A Gas Communal Boiler,Radiators +0270370000,,37,Broadway Drive,,Hull,HU9 3PA,BR2,Bungalow,1994,Gas Combination Boiler,Radiators +0270390000,,39,Broadway Drive,,Hull,HU9 3PA,BR2,Bungalow,1994,Gas Combination Boiler,Radiators +0270410000,,41,Broadway Drive,,Hull,HU9 3PA,BR2,Bungalow,1994,Gas Combination Boiler,Radiators +0270430000,,43,Broadway Drive,,Hull,HU9 3PA,BR2,Bungalow,1994,Gas Combination Boiler,Radiators +0270450000,,45,Broadway Drive,,Hull,HU9 3PA,BR2,Bungalow,1994,Gas Combination Boiler,Radiators +0270470000,,47,Broadway Drive,,Hull,HU9 3PA,BR2,Bungalow,1994,Gas Combination Boiler,Radiators +0270070000,,7,Broadway Drive,,Hull,HU9 3PA,BR4,Bungalow,1995,Gas Combination Boiler,Radiators +0270090000,,9,Broadway Drive,,Hull,HU9 3PA,BR4,Bungalow,1995,Gas Combination Boiler,Radiators +0270110000,,11,Broadway Drive,,Hull,HU9 3PA,BR4,Bungalow,1995,Gas Combination Boiler,Radiators +0270150000,,15,Broadway Drive,,Hull,HU9 3PA,BR4,Bungalow,1995,Gas Combination Boiler,Radiators +0270170000,,17,Broadway Drive,,Hull,HU9 3PA,BR4,Bungalow,1995,Gas Combination Boiler,Radiators +0270190000,,19,Broadway Drive,,Hull,HU9 3PA,BR4,Bungalow,1995,Gas Combination Boiler,Radiators +0270210000,,21,Broadway Drive,,Hull,HU9 3PA,BR4,Bungalow,1995,Gas Combination Boiler,Radiators +0270230000,,23,Broadway Drive,,Hull,HU9 3PA,BR4,Bungalow,1995,Gas Combination Boiler,Radiators +0270250000,,25,Broadway Drive,,Hull,HU9 3PA,BR4,Bungalow,1995,Gas Combination Boiler,Radiators +0270270000,,27,Broadway Drive,,Hull,HU9 3PA,BR4,Bungalow,1995,Gas Combination Boiler,Radiators +0270290000,,29,Broadway Drive,,Hull,HU9 3PA,BR4,Bungalow,1995,Gas Combination Boiler,Radiators +0270310000,,31,Broadway Drive,,Hull,HU9 3PA,BR4,Bungalow,1995,Gas Combination Boiler,Radiators +0270330000,,33,Broadway Drive,,Hull,HU9 3PA,BR4,Bungalow,1995,Gas Combination Boiler,Radiators +0270350000,,35,Broadway Drive,,Hull,HU9 3PA,BR4,Bungalow,1995,Gas Combination Boiler,Radiators +0270490000,,49,Broadway Drive,,Hull,HU9 3PA,BR2,Bungalow,1995,Gas Combination Boiler,Radiators +027POP0000,,POP,Broadway Drive,,Hull,HU9 3PA,BR4,Pop-In,1995,Gas Combination Boiler,Radiators +0270020000,,2,Broadway Drive,,Hull,HU9 3PB,BR4,Bungalow,1995,Gas Combination Boiler,Radiators +0270040000,,4,Broadway Drive,,Hull,HU9 3PB,BR4,Bungalow,1995,Gas Combination Boiler,Radiators +0270060000,,6,Broadway Drive,,Hull,HU9 3PB,BR4,Bungalow,1995,Gas Combination Boiler,Radiators +0270080000,,8,Broadway Drive,,Hull,HU9 3PB,BR4,Bungalow,1995,Gas Combination Boiler,Radiators +0270100000,,10,Broadway Drive,,Hull,HU9 3PB,BR4,Bungalow,1995,Gas Combination Boiler,Radiators +0270120000,,12,Broadway Drive,,Hull,HU9 3PB,BR4,Bungalow,1995,Gas Combination Boiler,Radiators +0270140000,,14,Broadway Drive,,Hull,HU9 3PB,BR4,Bungalow,1995,Gas Combination Boiler,Radiators +0270160000,,16,Broadway Drive,,Hull,HU9 3PB,BR4,Bungalow,1995,Gas Combination Boiler,Radiators +0270180000,,18,Broadway Drive,,Hull,HU9 3PB,BR4,Bungalow,1995,Gas Combination Boiler,Radiators +0270200000,,20,Broadway Drive,,Hull,HU9 3PB,BR4,Bungalow,1995,Gas Combination Boiler,Radiators +0270220000,,22,Broadway Drive,,Hull,HU9 3PB,BR4,Bungalow,1995,Gas Combination Boiler,Radiators +0270240000,,24,Broadway Drive,,Hull,HU9 3PB,BR4,Bungalow,1995,Gas Combination Boiler,Radiators +0270260000,,26,Broadway Drive,,Hull,HU9 3PB,BR4,Bungalow,1995,Gas Combination Boiler,Radiators +0270280000,,28,Broadway Drive,,Hull,HU9 3PB,BR4,Bungalow,1995,Gas Combination Boiler,Radiators +0270300000,,30,Broadway Drive,,Hull,HU9 3PB,BR4,Bungalow,1995,Gas Combination Boiler,Radiators +0270320000,,32,Broadway Drive,,Hull,HU9 3PB,BR4,Bungalow,1995,Gas Combination Boiler,Radiators +0270340000,,34,Broadway Drive,,Hull,HU9 3PB,BR4,Bungalow,1995,Gas Combination Boiler,Radiators +0270360000,,36,Broadway Drive,,Hull,HU9 3PB,BR4,Bungalow,1995,Gas Combination Boiler,Radiators +0270380000,,38,Broadway Drive,,Hull,HU9 3PB,BR4,Bungalow,1995,Gas Combination Boiler,Radiators +0270400000,,40,Broadway Drive,,Hull,HU9 3PB,BR4,Bungalow,1995,Gas Combination Boiler,Radiators +0270420000,,42,Broadway Drive,,Hull,HU9 3PB,BR4,Bungalow,1995,Gas Combination Boiler,Radiators +0270440000,,44,Broadway Drive,,Hull,HU9 3PB,BR4,Bungalow,1995,Gas Combination Boiler,Radiators +0270460000,,46,Broadway Drive,,Hull,HU9 3PB,BR4,Bungalow,1995,Gas Combination Boiler,Radiators +0270480000,,48,Broadway Drive,,Hull,HU9 3PB,BR4,Bungalow,1995,Gas Combination Boiler,Radiators +0270500000,,50,Broadway Drive,,Hull,HU9 3PB,BR4,Bungalow,1995,Gas Combination Boiler,Radiators +0270520000,,52,Broadway Drive,,Hull,HU9 3PB,BR4,Bungalow,1995,Gas Combination Boiler,Radiators +0270540000,,54,Broadway Drive,,Hull,HU9 3PB,BR4,Bungalow,1995,Gas Combination Boiler,Radiators +0270560000,,56,Broadway Drive,,Hull,HU9 3PB,BR4,Bungalow,1995,Gas Combination Boiler,Radiators +0270580000,,58,Broadway Drive,,Hull,HU9 3PB,BR4,Bungalow,1995,Gas Combination Boiler,Radiators +0270600000,,60,Broadway Drive,,Hull,HU9 3PB,BR4,Bungalow,1995,Gas Combination Boiler,Radiators +0280530000,,53,Rutherglen Drive,,Hull,HU9 3PF,BR2,Bungalow,1994,Gas Combination Boiler,Radiators +0280550000,,55,Rutherglen Drive,,Hull,HU9 3PF,BR2,Bungalow,1994,Gas Combination Boiler,Radiators +0280570000,,57,Rutherglen Drive,,Hull,HU9 3PF,BR2,Bungalow,1994,Gas Combination Boiler,Radiators +0280590000,,59,Rutherglen Drive,,Hull,HU9 3PF,BR2,Bungalow,1994,Gas Combination Boiler,Radiators +0290020000,,2,Imperial Court,,Hull,HU9 3PG,BR2,Bungalow,1994,Gas Combination Boiler,Radiators +0290030000,,3,Imperial Court,,Hull,HU9 3PG,BR2,Bungalow,1994,Gas Combination Boiler,Radiators +0290040000,,4,Imperial Court,,Hull,HU9 3PG,BR2,Bungalow,1994,Gas Combination Boiler,Radiators +0290050000,,5,Imperial Court,,Hull,HU9 3PG,BR2,Bungalow,1994,Gas Combination Boiler,Radiators +0290060000,,6,Imperial Court,,Hull,HU9 3PG,BR2,Bungalow,1994,Gas Combination Boiler,Radiators +0290070000,,7,Imperial Court,,Hull,HU9 3PG,BR2,Bungalow,1994,Gas Combination Boiler,Radiators +0290080000,,8,Imperial Court,,Hull,HU9 3PG,BR2,Bungalow,1994,Gas Combination Boiler,Radiators +0290090000,,9,Imperial Court,,Hull,HU9 3PG,BR2,Bungalow,1994,Gas Combination Boiler,Radiators +0290100000,,10,Imperial Court,,Hull,HU9 3PG,BR2,Bungalow,1994,Gas Combination Boiler,Radiators +0290010000,,1,Imperial Court,,Hull,HU9 3PG,BR2,Bungalow Disabled,1994,Gas Combination Boiler,Radiators +0300010000,,1,Ziegfeld Court,,Hull,HU9 3PH,BR2,Bungalow,1994,Gas Combination Boiler,Radiators +0300020000,,2,Ziegfeld Court,,Hull,HU9 3PH,BR2,Bungalow,1994,Gas Combination Boiler,Radiators +0300030000,,3,Ziegfeld Court,,Hull,HU9 3PH,BR2,Bungalow,1994,Gas Combination Boiler,Radiators +0300040000,,4,Ziegfeld Court,,Hull,HU9 3PH,BR2,Bungalow,1994,Gas Combination Boiler,Radiators +0300050000,,5,Ziegfeld Court,,Hull,HU9 3PH,BR2,Bungalow,1994,Gas Combination Boiler,Radiators +0300060000,,6,Ziegfeld Court,,Hull,HU9 3PH,BR2,Bungalow,1994,Gas Combination Boiler,Radiators +0300070000,,7,Ziegfeld Court,,Hull,HU9 3PH,BR2,Bungalow,1994,Gas Combination Boiler,Radiators +0300080000,,8,Ziegfeld Court,,Hull,HU9 3PH,BR2,Bungalow,1994,Gas Combination Boiler,Radiators +0300090000,,9,Ziegfeld Court,,Hull,HU9 3PH,BR2,Bungalow,1994,Gas Combination Boiler,Radiators +0310010000,,1,Golden Court,,Hull,HU9 3PJ,BR2,Bungalow,1994,Gas Combination Boiler,Radiators +0310020000,,2,Golden Court,,Hull,HU9 3PJ,BR2,Bungalow,1994,Gas Combination Boiler,Radiators +0310030000,,3,Golden Court,,Hull,HU9 3PJ,BR2,Bungalow,1994,Gas Combination Boiler,Radiators +0310040000,,4,Golden Court,,Hull,HU9 3PJ,BR2,Bungalow,1994,Gas Combination Boiler,Radiators +0310050000,,5,Golden Court,,Hull,HU9 3PJ,BR2,Bungalow,1994,Gas Combination Boiler,Radiators +0310060000,,6,Golden Court,,Hull,HU9 3PJ,BR2,Bungalow,1994,Gas Combination Boiler,Radiators +0310070000,,7,Golden Court,,Hull,HU9 3PJ,BR2,Bungalow,1994,Gas Combination Boiler,Radiators +0310080000,,8,Golden Court,,Hull,HU9 3PJ,BR2,Bungalow,1994,Gas Combination Boiler,Radiators +0310090000,,9,Golden Court,,Hull,HU9 3PJ,BR2,Bungalow,1994,Gas Combination Boiler,Radiators +0310100000,,10,Golden Court,,Hull,HU9 3PJ,BR2,Bungalow,1994,Gas Combination Boiler,Radiators +0310110000,,11,Golden Court,,Hull,HU9 3PJ,BR2,Bungalow,1994,Gas Combination Boiler,Radiators +0310120000,,12,Golden Court,,Hull,HU9 3PJ,BR2,Bungalow,1994,Gas Combination Boiler,Radiators +0310140000,,14,Golden Court,,Hull,HU9 3PJ,BR2,Bungalow,1994,Gas Combination Boiler,Radiators +0310150000,,15,Golden Court,,Hull,HU9 3PJ,BR2,Bungalow,1994,Gas Combination Boiler,Radiators +0310160000,,16,Golden Court,,Hull,HU9 3PJ,BR2,Bungalow,1994,Gas Combination Boiler,Radiators +0310180000,,18,Golden Court,,Hull,HU9 3PJ,BR2,Bungalow,1994,Gas Combination Boiler,Radiators +0310190000,,19,Golden Court,,Hull,HU9 3PJ,BR2,Bungalow,1994,Gas Combination Boiler,Radiators +0310200000,,20,Golden Court,,Hull,HU9 3PJ,BR2,Bungalow,1994,Gas Combination Boiler,Radiators +0310210000,,21,Golden Court,,Hull,HU9 3PJ,BR2,Bungalow,1994,Gas Combination Boiler,Radiators +0310220000,,22,Golden Court,,Hull,HU9 3PJ,BR2,Bungalow,1994,Gas Combination Boiler,Radiators +0310230000,,23,Golden Court,,Hull,HU9 3PJ,BR2,Bungalow,1994,Gas Combination Boiler,Radiators +0310240000,,24,Golden Court,,Hull,HU9 3PJ,BR2,Bungalow,1994,Gas Combination Boiler,Radiators +0310170000,,17,Golden Court,,Hull,HU9 3PJ,BR2,Bungalow Disabled,1994,Gas Combination Boiler,Radiators +0460010000,,1,Schubert Close,,Hull,HU9 3PL,BR4,Bungalow,1995,Gas Combination Boiler,Radiators +0460020000,,2,Schubert Close,,Hull,HU9 3PL,BR4,Bungalow,1995,Gas Combination Boiler,Radiators +0460030000,,3,Schubert Close,,Hull,HU9 3PL,BR4,Bungalow,1995,Gas Combination Boiler,Radiators +0460040000,,4,Schubert Close,,Hull,HU9 3PL,BR4,Bungalow,1995,Gas Combination Boiler,Radiators +0460050000,,5,Schubert Close,,Hull,HU9 3PL,BR4,Bungalow,1995,Gas Combination Boiler,Radiators +0460060000,,6,Schubert Close,,Hull,HU9 3PL,BR4,Bungalow,1995,Gas Combination Boiler,Radiators +0460070000,,7,Schubert Close,,Hull,HU9 3PL,BR4,Bungalow,1995,Gas Combination Boiler,Radiators +0460080000,,8,Schubert Close,,Hull,HU9 3PL,BR4,Bungalow,1995,Gas Combination Boiler,Radiators +0460090000,,9,Schubert Close,,Hull,HU9 3PL,BR4,Bungalow,1995,Gas Combination Boiler,Radiators +0460100000,,10,Schubert Close,,Hull,HU9 3PL,BR4,Bungalow,1995,Gas Combination Boiler,Radiators +0460110000,,11,Schubert Close,,Hull,HU9 3PL,BR4,Bungalow,1995,Gas Combination Boiler,Radiators +0460120000,,12,Schubert Close,,Hull,HU9 3PL,BR4,Bungalow,1995,Gas Combination Boiler,Radiators +0460140000,,14,Schubert Close,,Hull,HU9 3PL,BR4,Bungalow,1995,Gas Combination Boiler,Radiators +0460150000,,15,Schubert Close,,Hull,HU9 3PL,BR4,Bungalow,1995,Gas Combination Boiler,Radiators +0460160000,,16,Schubert Close,,Hull,HU9 3PL,BR4,Bungalow,1995,Gas Combination Boiler,Radiators +0460180000,,18,Schubert Close,,Hull,HU9 3PL,BR4,Bungalow,1995,Gas Combination Boiler,Radiators +0460190000,,19,Schubert Close,,Hull,HU9 3PL,BR4,Bungalow,1995,Gas Combination Boiler,Radiators +0460200000,,20,Schubert Close,,Hull,HU9 3PL,BR4,Bungalow,1995,Gas Combination Boiler,Radiators +0460210000,,21,Schubert Close,,Hull,HU9 3PL,BR4,Bungalow,1995,Gas Combination Boiler,Radiators +0460230000,,23,Schubert Close,,Hull,HU9 3PL,BR4,Bungalow,1995,Gas Combination Boiler,Radiators +0460240000,,24,Schubert Close,,Hull,HU9 3PL,BR4,Bungalow,1995,Gas Combination Boiler,Radiators +0460250000,,25,Schubert Close,,Hull,HU9 3PL,BR4,Bungalow,1995,Gas Combination Boiler,Radiators +0460260000,,26,Schubert Close,,Hull,HU9 3PL,BR4,Bungalow,1995,Gas Combination Boiler,Radiators +0460270000,,27,Schubert Close,,Hull,HU9 3PL,BR4,Bungalow,1995,Gas Combination Boiler,Radiators +0460280000,,28,Schubert Close,,Hull,HU9 3PL,BR4,Bungalow,1995,Gas Combination Boiler,Radiators +0460290000,,29,Schubert Close,,Hull,HU9 3PL,BR4,Bungalow,1995,Gas Combination Boiler,Radiators +0460300000,,30,Schubert Close,,Hull,HU9 3PL,BR4,Bungalow,1995,Gas Combination Boiler,Radiators +0460310000,,31,Schubert Close,,Hull,HU9 3PL,BR4,Bungalow,1995,Gas Combination Boiler,Radiators +0460320000,,32,Schubert Close,,Hull,HU9 3PL,BR4,Bungalow,1995,Gas Combination Boiler,Radiators +0460330000,,33,Schubert Close,,Hull,HU9 3PL,BR4,Bungalow,1995,Gas Combination Boiler,Radiators +0460340000,,34,Schubert Close,,Hull,HU9 3PL,BR4,Bungalow,1995,Gas Combination Boiler,Radiators +0460350000,,35,Schubert Close,,Hull,HU9 3PL,BR4,Bungalow,1995,Gas Combination Boiler,Radiators +0460360000,,36,Schubert Close,,Hull,HU9 3PL,BR4,Bungalow,1995,Gas Combination Boiler,Radiators +0460370000,,37,Schubert Close,,Hull,HU9 3PL,BR4,Bungalow,1995,Gas Combination Boiler,Radiators +0460170000,,17,Schubert Close,,Hull,HU9 3PL,BR4,Bungalow Disabled,1995,Gas Combination Boiler,Radiators +0460220000,,22,Schubert Close,,Hull,HU9 3PL,BR4,Bungalow Disabled,1995,Gas Combination Boiler,Radiators +0510010000,,1,Broadway Cottages,,Hull,HU9 3PN,BR5,Bungalow,1997,Gas Combination Boiler,Radiators +0510020000,,2,Broadway Cottages,,Hull,HU9 3PN,BR5,Bungalow,1997,Gas Combination Boiler,Radiators +0510030000,,3,Broadway Cottages,,Hull,HU9 3PN,BR5,Bungalow,1997,Gas Combination Boiler,Radiators +0490000000,,,Broadway Lodge,,Hull,HU9 3PN,BR3,House,1995,Gas Combination Boiler,Radiators +0470010000,,1,Broadway Manor,,Hull,HU9 3PN,BR3,Flat,1995,N/A Gas Communal Boiler,Radiators +0470020000,,2,Broadway Manor,,Hull,HU9 3PN,BR3,Flat,1995,N/A Gas Communal Boiler,Radiators +0470030000,,3,Broadway Manor,,Hull,HU9 3PN,BR3,Flat,1995,N/A Gas Communal Boiler,Radiators +0470040000,,4,Broadway Manor,,Hull,HU9 3PN,BR3,Flat,1995,N/A Gas Communal Boiler,Radiators +0470050000,,5,Broadway Manor,,Hull,HU9 3PN,BR3,Flat,1995,N/A Gas Communal Boiler,Radiators +0470070000,,7,Broadway Manor,,Hull,HU9 3PN,BR3,Flat,1995,N/A Gas Communal Boiler,Radiators +0470080000,,8,Broadway Manor,,Hull,HU9 3PN,BR3,Flat,1995,N/A Gas Communal Boiler,Radiators +0470090000,,9,Broadway Manor,,Hull,HU9 3PN,BR3,Flat,1995,N/A Gas Communal Boiler,Radiators +0470100000,,10,Broadway Manor,,Hull,HU9 3PN,BR3,Flat,1995,N/A Gas Communal Boiler,Radiators +0470110000,,11,Broadway Manor,,Hull,HU9 3PN,BR3,Flat,1995,N/A Gas Communal Boiler,Radiators +0470120000,,12,Broadway Manor,,Hull,HU9 3PN,BR3,Flat,1995,N/A Gas Communal Boiler,Radiators +04712A0000,,12A,Broadway Manor,,Hull,HU9 3PN,BR3,Flat,1995,N/A Gas Communal Boiler,Radiators +0470140000,,14,Broadway Manor,,Hull,HU9 3PN,BR3,Flat,1995,N/A Gas Communal Boiler,Radiators +0470150000,,15,Broadway Manor,,Hull,HU9 3PN,BR3,Flat,1995,N/A Gas Communal Boiler,Radiators +0470160000,,16,Broadway Manor,,Hull,HU9 3PN,BR3,Flat,1995,N/A Gas Communal Boiler,Radiators +0470170000,,17,Broadway Manor,,Hull,HU9 3PN,BR3,Flat,1995,N/A Gas Communal Boiler,Radiators +0470180000,,18,Broadway Manor,,Hull,HU9 3PN,BR3,Flat,1995,N/A Gas Communal Boiler,Radiators +0470190000,,19,Broadway Manor,,Hull,HU9 3PN,BR3,Flat,1995,N/A Gas Communal Boiler,Radiators +0470200000,,20,Broadway Manor,,Hull,HU9 3PN,BR3,Flat,1995,N/A Gas Communal Boiler,Radiators +0470210000,,21,Broadway Manor,,Hull,HU9 3PN,BR3,Flat,1995,N/A Gas Communal Boiler,Radiators +0470220000,,22,Broadway Manor,,Hull,HU9 3PN,BR3,Flat,1995,N/A Gas Communal Boiler,Radiators +0470230000,,23,Broadway Manor,,Hull,HU9 3PN,BR3,Flat,1995,N/A Gas Communal Boiler,Radiators +0470240000,,24,Broadway Manor,,Hull,HU9 3PN,BR3,Flat,1995,N/A Gas Communal Boiler,Radiators +0470250000,,25,Broadway Manor,,Hull,HU9 3PN,BR3,Flat,1995,N/A Gas Communal Boiler,Radiators +0470260000,,26,Broadway Manor,,Hull,HU9 3PN,BR3,Flat,1995,N/A Gas Communal Boiler,Radiators +0470270000,,27,Broadway Manor,,Hull,HU9 3PN,BR3,Flat,1995,N/A Gas Communal Boiler,Radiators +0470280000,,28,Broadway Manor,,Hull,HU9 3PN,BR3,Flat,1995,N/A Gas Communal Boiler,Radiators +0470290000,,29,Broadway Manor,,Hull,HU9 3PN,BR3,Flat,1995,N/A Gas Communal Boiler,Radiators +0470300000,,30,Broadway Manor,,Hull,HU9 3PN,BR3,Flat,1995,N/A Gas Communal Boiler,Radiators +0470310000,,31,Broadway Manor,,Hull,HU9 3PN,BR3,Flat,1995,N/A Gas Communal Boiler,Radiators +0470320000,,32,Broadway Manor,,Hull,HU9 3PN,BR3,Flat,1995,N/A Gas Communal Boiler,Radiators +0470330000,,33,Broadway Manor,,Hull,HU9 3PN,BR3,Flat,1995,N/A Gas Communal Boiler,Radiators +0470340000,,34,Broadway Manor,,Hull,HU9 3PN,BR3,Flat,1995,N/A Gas Communal Boiler,Radiators +0470350000,,35,Broadway Manor,,Hull,HU9 3PN,BR3,Flat,1995,N/A Gas Communal Boiler,Radiators +0470360000,,36,Broadway Manor,,Hull,HU9 3PN,BR3,Flat,1995,N/A Gas Communal Boiler,Radiators +0470060000,,6,Broadway Manor,,Hull,HU9 3PN,BR3,Flat Disabled,1995,N/A Gas Communal Boiler,Radiators +0320010000,,1,Faroes Close,,Hull,HU9 4AN,MH1,Bungalow,1994,Gas Combination Boiler,Radiators +0320020000,,2,Faroes Close,,Hull,HU9 4AN,MH1,Bungalow,1994,Gas Combination Boiler,Radiators +0320030000,,3,Faroes Close,,Hull,HU9 4AN,MH1,Bungalow,1994,Gas Combination Boiler,Radiators +0320040000,,4,Faroes Close,,Hull,HU9 4AN,MH1,Bungalow,1994,Gas Combination Boiler,Radiators +0320050000,,5,Faroes Close,,Hull,HU9 4AN,MH1,Bungalow,1994,Gas Combination Boiler,Radiators +0320060000,,6,Faroes Close,,Hull,HU9 4AN,MH1,Bungalow,1994,Gas Combination Boiler,Radiators +0320070000,,7,Faroes Close,,Hull,HU9 4AN,MH1,Bungalow,1994,Gas Combination Boiler,Radiators +0320080000,,8,Faroes Close,,Hull,HU9 4AN,MH1,Bungalow,1994,Gas Combination Boiler,Radiators +0320090000,,9,Faroes Close,,Hull,HU9 4AN,MH1,Bungalow,1994,Gas Combination Boiler,Radiators +0320100000,,10,Faroes Close,,Hull,HU9 4AN,MH1,Bungalow,1994,Gas Combination Boiler,Radiators +0320110000,,11,Faroes Close,,Hull,HU9 4AN,MH1,Bungalow,1994,Gas Combination Boiler,Radiators +0320120000,,12,Faroes Close,,Hull,HU9 4AN,MH1,Bungalow,1994,Gas Combination Boiler,Radiators +0320140000,,14,Faroes Close,,Hull,HU9 4AN,MH1,Flat,1994,Gas Combination Boiler,Radiators +0320150000,,15,Faroes Close,,Hull,HU9 4AN,MH1,Flat,1994,Gas Combination Boiler,Radiators +0320160000,,16,Faroes Close,,Hull,HU9 4AN,MH1,Flat,1994,Gas Combination Boiler,Radiators +0320170000,,17,Faroes Close,,Hull,HU9 4AN,MH1,Flat,1994,Gas Combination Boiler,Radiators +0320180000,,18,Faroes Close,,Hull,HU9 4AN,MH1,Flat,1994,Gas Combination Boiler,Radiators +0320190000,,19,Faroes Close,,Hull,HU9 4AN,MH1,Flat,1994,Gas Combination Boiler,Radiators +0381230000,,123,Barham Road,,Hull,HU9 4JN,BS1,Flat,1953,Gas Combination Boiler,Radiators +038123A000,,123A,Barham Road,,Hull,HU9 4JN,BS1,Flat,1953,Gas Combination Boiler,Radiators +0381250000,,125,Barham Road,,Hull,HU9 4JN,BS1,Flat,1953,Gas Combination Boiler,Radiators +038125A000,,125A,Barham Road,,Hull,HU9 4JN,BS1,Flat,1953,Gas Combination Boiler,Radiators +038127A000,,127A,Barham Road,,Hull,HU9 4JN,BS1,Flat,1953,Gas Combination Boiler,Radiators +0381270000,,127,Barham Road,,Hull,HU9 4JN,BS1,Flat,1953,Gas Combination Boiler,Radiators +0381290000,,129,Barham Road,,Hull,HU9 4JN,BS1,Flat,1953,Gas Combination Boiler,Radiators +038129A000,,129A,Barham Road,,Hull,HU9 4JN,BS1,Flat,1953,Gas Combination Boiler,Radiators +0381310000,,131,Barham Road,,Hull,HU9 4JN,BS1,Flat,1953,Gas Combination Boiler,Radiators +038131A000,,131A,Barham Road,,Hull,HU9 4JN,BS1,Flat,1953,Gas Combination Boiler,Radiators +0381330000,,133,Barham Road,,Hull,HU9 4JN,BS1,Flat,1953,Gas Combination Boiler,Radiators +038133A000,,133A,Barham Road,,Hull,HU9 4JN,BS1,Flat,1953,Gas Combination Boiler,Radiators +0392510000,,251,Staveley Road,,Hull,HU9 4US,BS1,Flat,1953,Gas Combination Boiler,Radiators +0392530000,,253,Staveley Road,,Hull,HU9 4US,BS1,Flat,1953,Gas Combination Boiler,Radiators +0392550000,,255,Staveley Road,,Hull,HU9 4US,BS1,Flat,1953,Gas Combination Boiler,Radiators +0392570000,,257,Staveley Road,,Hull,HU9 4US,BS1,Flat,1953,Gas Combination Boiler,Radiators +0392590000,,259,Staveley Road,,Hull,HU9 4US,BS1,Flat,1953,Gas Combination Boiler,Radiators +0392610000,,261,Staveley Road,,Hull,HU9 4US,BS1,Flat,1953,Gas Combination Boiler,Radiators +0392630000,,263,Staveley Road,,Hull,HU9 4US,BS1,Flat,1953,Gas Combination Boiler,Radiators +0392650000,,265,Staveley Road,,Hull,HU9 4US,BS1,Flat,1953,Gas Combination Boiler,Radiators +0392670000,,267,Staveley Road,,Hull,HU9 4US,BS1,Flat,1953,Gas Combination Boiler,Radiators +0392690000,,269,Staveley Road,,Hull,HU9 4US,BS1,Flat,1953,Gas Combination Boiler,Radiators +0392710000,,271,Staveley Road,,Hull,HU9 4US,BS1,Flat,1953,Gas Combination Boiler,Radiators +0392730000,,273,Staveley Road,,Hull,HU9 4US,BS1,Flat,1953,Gas Combination Boiler,Radiators +S01LH10001,,1,Larne Road,,Hull,HU9 4WA,LH1,Bungalow,2015,Gas Combination Boiler,Radiators +S01LH10002,,2,Larne Road,,Hull,HU9 4WA,LH1,Bungalow,2015,Gas Combination Boiler,Radiators +S01LH10003,,3,Larne Road,,Hull,HU9 4WA,LH1,Bungalow,2015,Gas Combination Boiler,Radiators +S01LH10004,,4,Larne Road,,Hull,HU9 4WA,LH1,Bungalow,2015,Gas Combination Boiler,Radiators +S01LH10005,,5,Larne Road,,Hull,HU9 4WA,LH1,Bungalow,2015,Gas Combination Boiler,Radiators +S01LH11001,,1,Milne Road,,Hull,HU9 4WB,LH1,Bungalow,2015,Gas Combination Boiler,Radiators +S01LH11003,,3,Milne Road,,Hull,HU9 4WB,LH1,Bungalow,2015,Gas Combination Boiler,Radiators +S01LH11002,,2,Milne Road,,Hull,HU9 4WB,LH1,Pop-In,2015,Gas Combination Boiler,Radiators +0590280000,,28,Hemswell Avenue,,Hull,HU9 5JX,AS1,Bungalow,1970,Gas Combination Boiler,Radiators +0590300000,,30,Hemswell Avenue,,Hull,HU9 5JX,AS1,Bungalow,1970,Gas Combination Boiler,Radiators +0590320000,,32,Hemswell Avenue,,Hull,HU9 5JX,AS1,Bungalow,1970,Gas Combination Boiler,Radiators +0590340000,,34,Hemswell Avenue,,Hull,HU9 5JX,AS1,Bungalow,1970,Gas Combination Boiler,Radiators +0590360000,,36,Hemswell Avenue,,Hull,HU9 5JX,AS1,Bungalow,1970,Gas Combination Boiler,Radiators +0600570000,,57,Ashwell Avenue,,Hull,HU9 5LG,AS1,Bungalow,1970,Gas Combination Boiler,Radiators +0600590000,,59,Ashwell Avenue,,Hull,HU9 5LG,AS1,Bungalow,1970,Gas Combination Boiler,Radiators +0600610000,,61,Ashwell Avenue,,Hull,HU9 5LG,AS1,Bungalow,1970,Gas Combination Boiler,Radiators +0710010000,,1,Stepney Grove,,Bridlington,YO16 7PD,RN2,Flat,1979,Gas Combination Boiler,Radiators +0710020000,,2,Stepney Grove,,Bridlington,YO16 7PD,RN2,Flat,1979,Gas Combination Boiler,Radiators +0710030000,,3,Stepney Grove,,Bridlington,YO16 7PD,RN2,Flat,1979,Gas Combination Boiler,Radiators +0710040000,,4,Stepney Grove,,Bridlington,YO16 7PD,RN2,Flat,1979,Gas Combination Boiler,Radiators +0710050000,,5,Stepney Grove,,Bridlington,YO16 7PD,RN2,Flat,1979,Gas Combination Boiler,Radiators +0710060000,,6,Stepney Grove,,Bridlington,YO16 7PD,RN2,Flat,1979,Gas Combination Boiler,Radiators +0710070000,,7,Stepney Grove,,Bridlington,YO16 7PD,RN2,Flat,1979,Gas Combination Boiler,Radiators +0710080000,,8,Stepney Grove,,Bridlington,YO16 7PD,RN2,Flat,1979,Gas Combination Boiler,Radiators +0710090000,,9,Stepney Grove,,Bridlington,YO16 7PD,RN2,Flat,1979,Gas Combination Boiler,Radiators +0710100000,,10,Stepney Grove,,Bridlington,YO16 7PD,RN2,Flat,1979,Gas Combination Boiler,Radiators +0710110000,,11,Stepney Grove,,Bridlington,YO16 7PD,RN2,Flat,1979,Gas Combination Boiler,Radiators +0710120000,,12,Stepney Grove,,Bridlington,YO16 7PD,RN2,Flat,1979,Gas Combination Boiler,Radiators +0710130000,,13,Stepney Grove,,Bridlington,YO16 7PD,RN2,Flat,1979,Gas Combination Boiler,Radiators +0710140000,,14,Stepney Grove,,Bridlington,YO16 7PD,RN2,Flat,1979,Gas Combination Boiler,Radiators +0710150000,,15,Stepney Grove,,Bridlington,YO16 7PD,RN2,Flat,1979,Gas Combination Boiler,Radiators +010094917998,Apartment 3,2054,Hessle Road,,Hessle,,,,2022,, \ No newline at end of file diff --git a/etl/eligibility/ha_15_32/__init__.py b/etl/eligibility/ha_15_32/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/etl/eligibility/ha_15_32/app.py b/etl/eligibility/ha_15_32/app.py new file mode 100644 index 00000000..5c03ed9c --- /dev/null +++ b/etl/eligibility/ha_15_32/app.py @@ -0,0 +1,14 @@ +""" +This process has been created to compare the model based eligibility process against the in-person process +used by the Warmfront team, to identify which properties are eligible for ECO4 and GBIS funding. This +work is being done in December 2023, prior to completion of acquisition +""" + +import pandas as pd + + +def load_data(): + """ + This function loads the asset lists and identified addresses for HA32 and HA15 + :return: + """ diff --git a/etl/eligibility/ha_15_32/requirements.txt b/etl/eligibility/ha_15_32/requirements.txt new file mode 100644 index 00000000..1411a4a0 --- /dev/null +++ b/etl/eligibility/ha_15_32/requirements.txt @@ -0,0 +1 @@ +pandas \ No newline at end of file diff --git a/keyzy_pilot.csv b/keyzy_pilot.csv new file mode 100644 index 00000000..b972bcf9 --- /dev/null +++ b/keyzy_pilot.csv @@ -0,0 +1,3 @@ +address,postcode,Notes,,,, +2 South Terrace,NN1 5JY,,,,, +25 Albert Street,PO12 4TY,,,,, \ No newline at end of file From 486e71eec58088481e939f502662f0bea71725db Mon Sep 17 00:00:00 2001 From: Michael Duong Date: Wed, 6 Dec 2023 12:54:05 +0000 Subject: [PATCH 045/526] difference record --- etl/epc/ValidationConfiguration.py | 2 +- etl/epc/property_change_app.py | 184 +++++++++++++++++------------ 2 files changed, 107 insertions(+), 79 deletions(-) diff --git a/etl/epc/ValidationConfiguration.py b/etl/epc/ValidationConfiguration.py index c2487706..5d9c910d 100644 --- a/etl/epc/ValidationConfiguration.py +++ b/etl/epc/ValidationConfiguration.py @@ -9,7 +9,7 @@ def validate_walls_description(value): EPCRecordValidationConfiguration = { "WALLS_DESCRIPTION": { "type": "string", - "acceptable_values": ["Cavity", "Solid", "System built", "Timber frame", "Suspended timber", "Other"] + "acceptable_values": ["Cavity", "Solid", "System built", "Timber frame", "Suspended timber", "Other"], "function": validate_walls_description }, "FLOOR_DESCRIPTION": { diff --git a/etl/epc/property_change_app.py b/etl/epc/property_change_app.py index da425b3a..ecc79ba3 100644 --- a/etl/epc/property_change_app.py +++ b/etl/epc/property_change_app.py @@ -401,78 +401,12 @@ from dataclasses import dataclass from etl.epc.ValidationConfiguration import EPCRecordValidationConfiguration from typing import Union, List - -class EPCDifferenceRecord: - """ - Base class for the difference between two EPC records - """ - - def __init__(self, record1: EPCRecord, record2: EPCRecord, auto_sort: bool = False): - """ - This method will initialise the EPCDifferenceRecord - Defaults usage is with record1 to have the higher RDSAP score - """ - self.record1 = record1 - self.record2 = record2 - self.difference_record = {} - - if auto_sort and (self.record1 <= self.record2): - self.record1, self.record2 = self.record2, self.record1 - - self._calculate_difference_record() - self._validate_difference_record() - - def _calculate_difference_record(self): - """ - This method will calculate the difference between the two records - """ - self.difference_record = {} - for key in self.record1.__dict__.keys(): - if key == "LODGEMENT_DATE": - continue - self.difference_record[key] = self.record1.get(key) - # - self.record2.get(key) - - def _validate_difference_record(self): - """ - This method will validate the difference record - """ - # for key, value in self.difference_record.items(): - # if key == "LODGEMENT_DATE": - # continue - # if isinstance(value, str): - # continue - # if value < 0: - # raise ValueError(f"Difference record has negative value for {key}") - pass - - def compare_fields_in_records(self, fields: List[str]): - """ - This method will compare the records, for specific fields - """ - - all_equal = True - for field in fields: - if self.record1.get(field) != self.record2.get(field): - return False - - if all_equal: - return True - - def get(self, key: str): - """ - This method will return the value of the key - """ - return self.difference_record[key] - - - - @dataclass class EPCRecord: """ Base class for a EPC record """ + UPRN: str WALLS_DESCRIPTION: str FLOOR_DESCRIPTION: str LIGHTING_DESCRIPTION: str @@ -618,20 +552,112 @@ class EPCRecord: return self.__dict__[RDSAP_RESPONSE] <= other.__dict__[RDSAP_RESPONSE] + def get(self, key: Union[str, List[str]], return_asdict: bool = False, key_suffix: str = None): + """ + This method will return the value of the key + """ + if return_asdict: + output_dict = {x: self.__dict__[x] if x in self.__dict__.keys() else None for x in key} + if key_suffix is not None: + output_dict = {f"{x}_{key_suffix}": y for x, y in output_dict.items()} + return output_dict + + if isinstance(key, list): + return [self.__dict__[x] if x in self.__dict__.keys() else None for x in key] + elif isinstance(key, str): + return self.__dict__[key] if key in self.__dict__.keys() else None + + +class EPCDifferenceRecord: + """ + Base class for the difference between two EPC records + """ + + def __init__(self, record1: EPCRecord, record2: EPCRecord, auto_sort: bool = False): + """ + This method will initialise the EPCDifferenceRecord + Defaults usage is with record2 to have the higher RDSAP score + """ + self.record1 = record1 + self.record2 = record2 + self.difference_record = {} + + if auto_sort and (self.record2 <= self.record1): + self.record1, self.record2 = self.record2, self.record1 + + self._construct_difference_record() + self._validate_difference_record() + + def _construct_difference_record(self): + """ + This method will construct the difference record between the two records + """ + + rdsap_change = self.record2.get(RDSAP_RESPONSE) - self.record1.get(RDSAP_RESPONSE) + heat_demand_change = self.record2.get(HEAT_DEMAND_RESPONSE) - self.record1.get(HEAT_DEMAND_RESPONSE) + carbon_change = self.record2.get(CARBON_RESPONSE) - self.record1.get(CARBON_RESPONSE) + + component_variables = COMPONENT_FEATURES + EFFICIENCY_FEATURES + ending_record = self.record2.get(component_variables + ["LODGEMENT_DATE"], return_asdict=True, key_suffix="_ENDING") + starting_record = self.record1.get(component_variables + ["LODGEMENT_DATE"], return_asdict=True, key_suffix="_STARTING") + + # TODO: DO we want to take the earliest potentials or max potentials? + self.difference_record = { + "UPRN": self.record1.get("UPRN"), + "RDSAP_CHANGE": rdsap_change, + "HEAT_DEMAND_CHANGE": heat_demand_change, + "CARBON_CHANGE": carbon_change, + "SAP_STARTING": self.record1.get(RDSAP_RESPONSE), + "SAP_ENDING": self.record2.get(RDSAP_RESPONSE), + "HEAT_DEMAND_STARTING": self.record1.get(HEAT_DEMAND_RESPONSE), + "HEAT_DEMAND_ENDING": self.record2.get(HEAT_DEMAND_RESPONSE), + "CARBON_STARTING": self.record1.get(CARBON_RESPONSE), + "CARBON_ENDING": self.record2.get(CARBON_RESPONSE), + "POTENTIAL_ENERGY_EFFICIENCY": max(self.record1.get("POTENTIAL_ENERGY_EFFICIENCY"), self.record2.get("POTENTIAL_ENERGY_EFFICIENCY")), + "ENVIRONMENT_IMPACT_POTENTIAL": max(self.record1.get("ENVIRONMENT_IMPACT_POTENTIAL"), self.record2.get("ENVIRONMENT_IMPACT_POTENTIAL")), + "ENERGY_CONSUMPTION_POTENTIAL": max(self.record1.get("ENERGY_CONSUMPTION_POTENTIAL"), self.record2.get("ENERGY_CONSUMPTION_POTENTIAL")), + "CO2_EMISSIONS_POTENTIAL": max(self.record1.get("CO2_EMISSIONS_POTENTIAL"), self.record2.get("CO2_EMISSIONS_POTENTIAL")), + **ending_record, + **starting_record + } + + def _validate_difference_record(self): + """ + This method will validate the difference record + """ + # for key, value in self.difference_record.items(): + # if key == "LODGEMENT_DATE": + # continue + # if isinstance(value, str): + # continue + # if value < 0: + # raise ValueError(f"Difference record has negative value for {key}") + pass + + def compare_fields_in_records(self, fields: List[str]): + """ + This method will compare the records, for specific fields + """ + + all_equal = True + for field in fields: + if self.record1.get(field) != self.record2.get(field): + return False + + if all_equal: + return True + def get(self, key: str): """ This method will return the value of the key """ - return self.__dict__[key] - + return self.difference_record[key] if key in self.difference_record.keys() else None - - # def __init__(self, num) -> None: - # self.num = num - - # def __sub__(self, other): - # return self.num - other.num - + def append_fixed_data(self, fixed_data: dict): + """ + This method will append fixed data to the difference record + """ + self.difference_record.update(fixed_data) def app(): # Get all the files in the directory @@ -662,7 +688,7 @@ def app(): data_by_urpn = [] for uprn, property_data in df.groupby("UPRN", observed=True): - + asdasd # Fixed features - these are property attributes that shouldn't change over time fixed_data = {} @@ -694,7 +720,7 @@ def app(): # e.g. first vs second, second vs third and also first vs third property_model_data = [] - epc_records = [EPCRecord(**x) for x in variable_data.to_dict(orient='records')] + epc_records = [EPCRecord(uprn, **x) for x in variable_data.to_dict(orient='records')] for idx in range(0, len(epc_records) - 1): @@ -720,6 +746,8 @@ def app(): all_equal_rows.append({"uprn": uprn, "directory_name": directory.name}) continue + difference_record.append_fixed_data(fixed_data) + property_model_data.append(difference_record.difference_record) for idx in range(0, property_data.shape[0] - 1): From d457ab46fb9aabf09d5e84adb4c9eff430d64c51 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Wed, 6 Dec 2023 13:08:11 +0000 Subject: [PATCH 046/526] Done ha32 merge funcgtion --- .idea/Model.iml | 2 +- .idea/misc.xml | 2 +- .../ha_15_32/HA 15 Identified addresses.csv | 1047914 +------------ .../ha_15_32/HA 32 Identfied addresses.csv | 1048576 -------------- .../ha_15_32/HA 32 Identified addresses.csv | 499 + etl/eligibility/ha_15_32/app.py | 306 + 6 files changed, 808 insertions(+), 2096491 deletions(-) delete mode 100644 etl/eligibility/ha_15_32/HA 32 Identfied addresses.csv create mode 100644 etl/eligibility/ha_15_32/HA 32 Identified addresses.csv diff --git a/.idea/Model.iml b/.idea/Model.iml index 4413bb06..3a3ec5a2 100644 --- a/.idea/Model.iml +++ b/.idea/Model.iml @@ -7,7 +7,7 @@ - + diff --git a/.idea/misc.xml b/.idea/misc.xml index 6f308057..605a6457 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -3,7 +3,7 @@ - + diff --git a/etl/eligibility/ha_15_32/HA 15 Identified addresses.csv b/etl/eligibility/ha_15_32/HA 15 Identified addresses.csv index e9c625f3..ea29d727 100644 --- a/etl/eligibility/ha_15_32/HA 15 Identified addresses.csv +++ b/etl/eligibility/ha_15_32/HA 15 Identified addresses.csv @@ -661,1047916 +661,4 @@ HA15,42,"42 Moor Park Wendover, Aylesbury",HP22 6AX HA15,45,"45 Moor Park Wendover, Aylesbury",HP22 6AX HA15,48,"48 Moor Park Wendover, Aylesbury",HP22 6AX HA15,54,"54 Moor Park Wendover, Aylesbury",HP22 6AX -HA15,58,"58 Moor Park Wendover, Aylesbury",HP22 6AX -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,,MK40 1QT \ No newline at end of file +HA15,58,"58 Moor Park Wendover, Aylesbury",HP22 6AX \ No newline at end of file diff --git a/etl/eligibility/ha_15_32/HA 32 Identfied addresses.csv b/etl/eligibility/ha_15_32/HA 32 Identfied addresses.csv deleted file mode 100644 index dbec15b0..00000000 --- a/etl/eligibility/ha_15_32/HA 32 Identfied addresses.csv +++ /dev/null @@ -1,1048576 +0,0 @@ -Housing Association,No.,Address,Postcode -HA 32,1,SHERWOOD COURT,HU114DF -HA 32,2,SHERWOOD COURT,HU114DF -HA 32,3,SHERWOOD COURT,HU114DF -HA 32,4,SHERWOOD COURT,HU114DF -HA 32,5,SHERWOOD COURT,HU114DF -HA 32,7,SHERWOOD COURT,HU114DF -HA 32,8,SHERWOOD COURT,HU114DF -HA 32,9,SHERWOOD COURT,HU114DF -HA 32,10,SHERWOOD COURT,HU114DF -HA 32,27,Seaton Grove,HU4 6HF -HA 32,29,Seaton Grove,HU4 6HF -HA 32,31,Seaton Grove,HU4 6HF -HA 32,33,Seaton Grove,HU4 6HF -HA 32,35,Seaton Grove,HU4 6HF -HA 32,39,Seaton Grove,HU4 6HF -HA 32,41,Seaton Grove,HU4 6HF -HA 32,43,Seaton Grove,HU4 6HF -HA 32,7,Norton Grove,HU4 6HG -HA 32,9,Norton Grove,HU4 6HG -HA 32,11,Norton Grove,HU4 6HG -HA 32,15,Norton Grove,HU4 6HG -HA 32,17,Norton Grove,HU4 6HG -HA 32,19,Norton Grove,HU4 6HG -HA 32,21,Norton Grove,HU4 6HG -HA 32,28,Coxwold,HU4 6HH -HA 32,30,Coxwold,HU4 6HH -HA 32,32,Coxwold,HU4 6HH -HA 32,34,Coxwold,HU4 6HH -HA 32,36,Coxwold,HU4 6HH -HA 32,38,Coxwold,HU4 6HH -HA 32,40,Coxwold,HU4 6HH -HA 32,42,Coxwold,HU4 6HH -HA 32,44,Coxwold,HU4 6HH -HA 32,971,HESSLE ROAD,HU4 6QG -HA 32,973,HESSLE ROAD,HU4 6QG -HA 32,975,HESSLE ROAD,HU4 6QG -HA 32,977,HESSLE ROAD,HU4 6QG -HA 32,981,HESSLE ROAD,HU4 6QG -HA 32,983,HESSLE ROAD,HU4 6QG -HA 32,1,Hessle Road,HU4 6RS -HA 32,2,Hessle Road,HU4 6RS -HA 32,3,Hessle Road,HU4 6RS -HA 32,4,Hessle Road,HU4 6RS -HA 32,5,Hessle Road,HU4 6RS -HA 32,6,Hessle Road,HU4 6RS -HA 32,7,Hessle Road,HU4 6RS -HA 32,8,Hessle Road,HU4 6RS -HA 32,9,Hessle Road,HU4 6RS -HA 32,10,Hessle Road,HU4 6RS -HA 32,11,Hessle Road,HU4 6RS -HA 32,12,Hessle Road,HU4 6RS -HA 32,14,Hessle Road,HU4 6RS -HA 32,15,Hessle Road,HU4 6RS -HA 32,16,Hessle Road,HU4 6RS -HA 32,17,Hessle Road,HU4 6RS -HA 32,18,Hessle Road,HU4 6RS -HA 32,19,Hessle Road,HU4 6RS -HA 32,20,Hessle Road,HU4 6RS -HA 32,21,Hessle Road,HU4 6RS -HA 32,22,Hessle Road,HU4 6RS -HA 32,23,Hessle Road,HU4 6RS -HA 32,24,Hessle Road,HU4 6RS -HA 32,25,Hessle Road,HU4 6RS -HA 32,26,Hessle Road,HU4 6RS -HA 32,27,Hessle Road,HU4 6RS -HA 32,28,Hessle Road,HU4 6RS -HA 32,29,Hessle Road,HU4 6RS -HA 32,30,Hessle Road,HU4 6RS -HA 32,31,Hessle Road,HU4 6RS -HA 32,32,Hessle Road,HU4 6RS -HA 32,33,Hessle Road,HU4 6RS -HA 32,34,Hessle Road,HU4 6RS -HA 32,35,Hessle Road,HU4 6RS -HA 32,36,Hessle Road,HU4 6RS -HA 32,37,Hessle Road,HU4 6RS -HA 32,46,FORESTER WAY,HU4 6SR -HA 32,48,FORESTER WAY,HU4 6SR -HA 32,50,FORESTER WAY,HU4 6SR -HA 32,54,FORESTER WAY,HU4 6SR -HA 32,56,FORESTER WAY,HU4 6SR -HA 32,62,FORESTER WAY,HU4 6SR -HA 32,64,FORESTER WAY,HU4 6SR -HA 32,66,FORESTER WAY,HU4 6SR -HA 32,68,FORESTER WAY,HU4 6SR -HA 32,70,FORESTER WAY,HU4 6SR -HA 32,15,SUMMERGROVES WAY,HU4 6SZ -HA 32,1,WALNUT TREE WAY,HU4 6TG -HA 32,2,WALNUT TREE WAY,HU4 6TG -HA 32,3,WALNUT TREE WAY,HU4 6TG -HA 32,4,WALNUT TREE WAY,HU4 6TG -HA 32,7,WALNUT TREE WAY,HU4 6TG -HA 32,8,WALNUT TREE WAY,HU4 6TG -HA 32,9,WALNUT TREE WAY,HU4 6TG -HA 32,291,Cottingham Road,HU5 4AT -HA 32,293,Cottingham Road,HU5 4AT -HA 32,295,Cottingham Road,HU5 4AT -HA 32,297,Cottingham Road,HU5 4AT -HA 32,299,Cottingham Road,HU5 4AT -HA 32,301,Cottingham Road,HU5 4AT -HA 32,303,Cottingham Road,HU5 4AT -HA 32,305,Cottingham Road,HU5 4AT -HA 32,307,Cottingham Road,HU5 4AT -HA 32,309,Cottingham Road,HU5 4AT -HA 32,1,Edith Cavell Court,HU5 4BA -HA 32,2,Edith Cavell Court,HU5 4BA -HA 32,3,Edith Cavell Court,HU5 4BA -HA 32,4,Edith Cavell Court,HU5 4BA -HA 32,5,Edith Cavell Court,HU5 4BA -HA 32,6,Edith Cavell Court,HU5 4BA -HA 32,7,Edith Cavell Court,HU5 4BA -HA 32,8,Edith Cavell Court,HU5 4BA -HA 32,9,Edith Cavell Court,HU5 4BA -HA 32,10,Edith Cavell Court,HU5 4BA -HA 32,11,Edith Cavell Court,HU5 4BA -HA 32,12,Edith Cavell Court,HU5 4BA -HA 32,106,Barringhton Avenue,HU5 4BE -HA 32,112,Barringhton Avenue,HU5 4BE -HA 32,114,Barringhton Avenue,HU5 4BE -HA 32,116,Barringhton Avenue,HU5 4BE -HA 32,118,Barringhton Avenue,HU5 4BE -HA 32,120,Barringhton Avenue,HU5 4BE -HA 32,122,Barringhton Avenue,HU5 4BE -HA 32,124,Barringhton Avenue,HU5 4BE -HA 32,126,Barringhton Avenue,HU5 4BE -HA 32,1,Florence Nightingale Court,HU5 4BW -HA 32,2,Florence Nightingale Court,HU5 4BW -HA 32,3,Florence Nightingale Court,HU5 4BW -HA 32,4,Florence Nightingale Court,HU5 4BW -HA 32,5,Florence Nightingale Court,HU5 4BW -HA 32,6,Florence Nightingale Court,HU5 4BW -HA 32,7,Florence Nightingale Court,HU5 4BW -HA 32,8,Florence Nightingale Court,HU5 4BW -HA 32,9,Florence Nightingale Court,HU5 4BW -HA 32,10,Florence Nightingale Court,HU5 4BW -HA 32,11,Florence Nightingale Court,HU5 4BW -HA 32,12,Florence Nightingale Court,HU5 4BW -HA 32,14,Florence Nightingale Court,HU5 4BW -HA 32,15,Florence Nightingale Court,HU5 4BW -HA 32,17,Florence Nightingale Court,HU5 4BW -HA 32,19,Florence Nightingale Court,HU5 4BW -HA 32,12,Green Close,HU6 8DA -HA 32,44,Green Close,HU6 8DA -HA 32,49,Green Close,HU6 8DA -HA 32,50,Green Close,HU6 8DA -HA 32,14,Ashbury Court,HU6 8DY -HA 32,38,Westgarth Avenue,HU6 8LS -HA 32,46,WESTGARTH AVENUE,HU6 8LS -HA 32,48,WESTGARTH AVENUE,HU6 8LS -HA 32,54,Westgarth Avenue,HU6 8LS -HA 32,10,BEAUTIMAN COURT,HU6 8LX -HA 32,1,Rosey Row,HU9 1HF -HA 32,2,Rosey Row,HU9 1HF -HA 32,3,Rosey Row,HU9 1HF -HA 32,4,Rosey Row,HU9 1HF -HA 32,5,Rosey Row,HU9 1HF -HA 32,6,Rosey Row,HU9 1HF -HA 32,7,Rosey Row,HU9 1HF -HA 32,8,Rosey Row,HU9 1HF -HA 32,9,Rosey Row,HU9 1HF -HA 32,10,Rosey Row,HU9 1HF -HA 32,11,Rosey Row,HU9 1HF -HA 32,12,Rosey Row,HU9 1HF -HA 32,14,Rosey Row,HU9 1HF -HA 32,15,Rosey Row,HU9 1HF -HA 32,16,Rosey Row,HU9 1HF -HA 32,17,Rosey Row,HU9 1HF -HA 32,18,Rosey Row,HU9 1HF -HA 32,19,Rosey Row,HU9 1HF -HA 32,20,Rosey Row,HU9 1HF -HA 32,21,Rosey Row,HU9 1HF -HA 32,24,Steynburg Street,HU9 2PF -HA 32,26,Steynburg Street,HU9 2PF -HA 32,28,Steynburg Street,HU9 2PF -HA 32,30,Steynburg Street,HU9 2PF -HA 32,36,Steynburg Street,HU9 2PF -HA 32,38,Steynburg Street,HU9 2PF -HA 32,40,Steynburg Street,HU9 2PF -HA 32,42,Steynburg Street,HU9 2PF -HA 32,19,Rustenburg,HU9 2PT -HA 32,21,Rustenburg,HU9 2PT -HA 32,23,Rustenburg,HU9 2PT -HA 32,25,Rustenburg,HU9 2PT -HA 32,27,Rustenburg,HU9 2PT -HA 32,29,Rustenburg,HU9 2PT -HA 32,31,Rustenburg,HU9 2PT -HA 32,33,Rustenburg,HU9 2PT -HA 32,35,Rustenburg,HU9 2PT -HA 32,37,Rustenburg,HU9 2PT -HA 32,55,Rustenburg,HU9 2PT -HA 32,57,Rustenburg,HU9 2PT -HA 32,59,Rustenburg,HU9 2PT -HA 32,61,Rustenburg,HU9 2PT -HA 32,3,The Broadway,HU9 3JH -HA 32,5,THE BROADWAY,HU9 3JH -HA 32,7,The Broadway,HU9 3JH -HA 32,9,The Broadway,HU9 3JH -HA 32,11,The Broadway,HU9 3JH -HA 32,1,BOWLING CIRCLE,HU9 3JL -HA 32,3,BOWLING CIRCLE,HU9 3JL -HA 32,5,BOWLING CIRCLE,HU9 3JL -HA 32,7,BOWLING CIRCLE,HU9 3JL -HA 32,9,BOWLING CIRCLE,HU9 3JL -HA 32,1,MAJESTIC COURT,HU9 3JY -HA 32,2,MAJESTIC COURT,HU9 3JY -HA 32,3,MAJESTIC COURT,HU9 3JY -HA 32,4,MAJESTIC COURT,HU9 3JY -HA 32,5,MAJESTIC COURT,HU9 3JY -HA 32,6,MAJESTIC COURT,HU9 3JY -HA 32,7,MAJESTIC COURT,HU9 3JY -HA 32,8,MAJESTIC COURT,HU9 3JY -HA 32,9,MAJESTIC COURT,HU9 3JY -HA 32,10,MAJESTIC COURT,HU9 3JY -HA 32,11,MAJESTIC COURT,HU9 3JY -HA 32,12,MAJESTIC COURT,HU9 3JY -HA 32,14,MAJESTIC COURT,HU9 3JY -HA 32,15,Majestic Court,HU9 3JY -HA 32,16,MAJESTIC COURT,HU9 3JY -HA 32,1,ROYALE COURT,HU9 3JZ -HA 32,2,ROYALE COURT,HU9 3JZ -HA 32,3,ROYALE COURT,HU9 3JZ -HA 32,4,ROYALE COURT,HU9 3JZ -HA 32,5,ROYALE COURT,HU9 3JZ -HA 32,6,ROYALE COURT,HU9 3JZ -HA 32,7,ROYALE COURT,HU9 3JZ -HA 32,8,ROYALE COURT,HU9 3JZ -HA 32,9,ROYALE COURT,HU9 3JZ -HA 32,10,ROYALE COURT,HU9 3JZ -HA 32,11,ROYALE COURT,HU9 3JZ -HA 32,12,ROYALE COURT,HU9 3JZ -HA 32,14,ROYALE COURT,HU9 3JZ -HA 32,16,ROYALE COURT,HU9 3JZ -HA 32,17,ROYALE COURT,HU9 3JZ -HA 32,18,ROYALE COURT,HU9 3JZ -HA 32,19,ROYALE COURT,HU9 3JZ -HA 32,20,ROYALE COURT,HU9 3JZ -HA 32,21,ROYALE COURT,HU9 3JZ -HA 32,22,ROYALE COURT,HU9 3JZ -HA 32,23,ROYALE COURT,HU9 3JZ -HA 32,24,ROYALE COURT,HU9 3JZ -HA 32,25,ROYALE COURT,HU9 3JZ -HA 32,26,ROYALE COURT,HU9 3JZ -HA 32,12A,ROYALE COURT,HU9 3JZ -HA 32,79,MAYBURY ROAD,HU9 3LB -HA 32,1,HEBRIDES CLOSE,HU9 3LF -HA 32,2,HEBRIDES CLOSE,HU9 3LF -HA 32,3,HEBRIDES CLOSE,HU9 3LF -HA 32,4,HEBRIDES CLOSE,HU9 3LF -HA 32,5,HEBRIDES CLOSE,HU9 3LF -HA 32,6,HEBRIDES CLOSE,HU9 3LF -HA 32,7,HEBRIDES CLOSE,HU9 3LF -HA 32,8,HEBRIDES CLOSE,HU9 3LF -HA 32,9,HEBRIDES CLOSE,HU9 3LF -HA 32,10,HEBRIDES CLOSE,HU9 3LF -HA 32,11,HEBRIDES CLOSE,HU9 3LF -HA 32,14,Hebrides Close,HU9 3LF -HA 32,15,HEBRIDES CLOSE,HU9 3LF -HA 32,16,HEBRIDES CLOSE,HU9 3LF -HA 32,17,HEBRIDES CLOSE,HU9 3LF -HA 32,18,HEBRIDES CLOSE,HU9 3LF -HA 32,19,HEBRIDES CLOSE,HU9 3LF -HA 32,20,HEBRIDES CLOSE,HU9 3LF -HA 32,21,HEBRIDES CLOSE,HU9 3LF -HA 32,22,HEBRIDES CLOSE,HU9 3LF -HA 32,23,HEBRIDES CLOSE,HU9 3LF -HA 32,24,HEBRIDES CLOSE,HU9 3LF -HA 32,25,HEBRIDES CLOSE,HU9 3LF -HA 32,27,HEBRIDES CLOSE,HU9 3LF -HA 32,28,HEBRIDES CLOSE,HU9 3LF -HA 32,29,HEBRIDES CLOSE,HU9 3LF -HA 32,30,HEBRIDES CLOSE,HU9 3LF -HA 32,31,HEBRIDES CLOSE,HU9 3LF -HA 32,32,HEBRIDES CLOSE,HU9 3LF -HA 32,33,HEBRIDES CLOSE,HU9 3LF -HA 32,34,HEBRIDES CLOSE,HU9 3LF -HA 32,35,HEBRIDES CLOSE,HU9 3LF -HA 32,36,HEBRIDES CLOSE,HU9 3LF -HA 32,39,HEBRIDES CLOSE,HU9 3LF -HA 32,40,HEBRIDES CLOSE,HU9 3LF -HA 32,41,HEBRIDES CLOSE,HU9 3LF -HA 32,42,HEBRIDES CLOSE,HU9 3LF -HA 32,2,CROMARTY CLOSE,HU9 3LG -HA 32,4,CROMARTY CLOSE,HU9 3LG -HA 32,6,CROMARTY CLOSE,HU9 3LG -HA 32,8,CROMARTY CLOSE,HU9 3LG -HA 32,10,CROMARTY CLOSE,HU9 3LG -HA 32,12,CROMARTY CLOSE,HU9 3LG -HA 32,14,CROMARTY CLOSE,HU9 3LG -HA 32,16,CROMARTY CLOSE,HU9 3LG -HA 32,18,CROMARTY CLOSE,HU9 3LG -HA 32,20,CROMARTY CLOSE,HU9 3LG -HA 32,22,CROMARTY CLOSE,HU9 3LG -HA 32,24,CROMARTY CLOSE,HU9 3LG -HA 32,26,CROMARTY CLOSE,HU9 3LG -HA 32,28,CROMARTY CLOSE,HU9 3LG -HA 32,30,CROMARTY CLOSE,HU9 3LG -HA 32,32,CROMARTY CLOSE,HU9 3LG -HA 32,34,CROMARTY CLOSE,HU9 3LG -HA 32,36,CROMARTY CLOSE,HU9 3LG -HA 32,40,CROMARTY CLOSE,HU9 3LG -HA 32,42,CROMARTY CLOSE,HU9 3LG -HA 32,44,CROMARTY CLOSE,HU9 3LG -HA 32,46,CROMARTY CLOSE,HU9 3LG -HA 32,48,CROMARTY CLOSE,HU9 3LG -HA 32,48,CROMARTY CLOSE,HU9 3LG -HA 32,50,CROMARTY CLOSE,HU9 3LG -HA 32,52,CROMARTY CLOSE,HU9 3LG -HA 32,54,CROMARTY CLOSE,HU9 3LG -HA 32,56,CROMARTY CLOSE,HU9 3LG -HA 32,58,CROMARTY CLOSE,HU9 3LG -HA 32,60,CROMARTY CLOSE,HU9 3LG -HA 32,62,CROMARTY CLOSE,HU9 3LG -HA 32,64,CROMARTY CLOSE,HU9 3LG -HA 32,66,CROMARTY CLOSE,HU9 3LG -HA 32,68,CROMARTY CLOSE,HU9 3LG -HA 32,1,RONALDSWAY CLOSE,HU9 3LH -HA 32,2,RONALDSWAY CLOSE,HU9 3LH -HA 32,3,RONALDSWAY CLOSE,HU9 3LH -HA 32,3,"MALIN LODGE, RONALDSWAY CLOSE",HU9 3LH -HA 32,4,"MALIN LODGE, RONALDSWAY CLOSE",HU9 3LH -HA 32,6,"MALIN LODGE, RONALDSWAY CLOSE",HU9 3LH -HA 32,9,"MALIN LODGE, RONALDSWAY CLOSE",HU9 3LH -HA 32,10,"MALIN LODGE, RONALDSWAY CLOSE",HU9 3LH -HA 32,15,"MALIN LODGE, RONALDSWAY CLOSE",HU9 3LH -HA 32,17,"MALIN LODGE, RONALDSWAY CLOSE",HU9 3LH -HA 32,18,"MALIN LODGE, RONALDSWAY CLOSE",HU9 3LH -HA 32,7,BROADWAY DRIVE,HU9 3PA -HA 32,9,BROADWAY DRIVE,HU9 3PA -HA 32,11,BROADWAY DRIVE,HU9 3PA -HA 32,15,Broadway Drive,HU9 3PA -HA 32,17,Broadway Drive,HU9 3PA -HA 32,19,Broadway Drive,HU9 3PA -HA 32,21,Broadway Drive,HU9 3PA -HA 32,23,Broadway Drive,HU9 3PA -HA 32,25,Broadway Drive,HU9 3PA -HA 32,27,Broadway Drive,HU9 3PA -HA 32,29,Broadway Drive,HU9 3PA -HA 32,31,Broadway Drive,HU9 3PA -HA 32,33,Broadway Drive,HU9 3PA -HA 32,35,Broadway Drive,HU9 3PA -HA 32,37,BROADWAY DRIVE,HU9 3PA -HA 32,39,BROADWAY DRIVE,HU9 3PA -HA 32,41,Broadway Drive,HU9 3PA -HA 32,43,BROADWAY DRIVE,HU9 3PA -HA 32,45,BROADWAY DRIVE,HU9 3PA -HA 32,47,BROADWAY DRIVE,HU9 3PA -HA 32,49,BROADWAY DRIVE,HU9 3PA -HA 32,2,Broadway Drive,HU9 3PB -HA 32,4,Broadway Drive,HU9 3PB -HA 32,6,Broadway Drive,HU9 3PB -HA 32,8,Broadway Drive,HU9 3PB -HA 32,10,Broadway Drive,HU9 3PB -HA 32,12,Broadway Drive,HU9 3PB -HA 32,14,Broadway Drive,HU9 3PB -HA 32,16,Broadway Drive,HU9 3PB -HA 32,18,Broadway Drive,HU9 3PB -HA 32,20,Broadway Drive,HU9 3PB -HA 32,22,Broadway Drive,HU9 3PB -HA 32,26,Broadway Drive,HU9 3PB -HA 32,28,Broadway Drive,HU9 3PB -HA 32,28,ADA HOLMES CIRCLE,HU9 3PB -HA 32,30,Broadway Drive,HU9 3PB -HA 32,32,Broadway Drive,HU9 3PB -HA 32,34,Broadway Drive,HU9 3PB -HA 32,36,Broadway Drive,HU9 3PB -HA 32,38,Broadway Drive,HU9 3PB -HA 32,40,Broadway Drive,HU9 3PB -HA 32,42,Broadway Drive,HU9 3PB -HA 32,44,Broadway Drive,HU9 3PB -HA 32,46,Broadway Drive,HU9 3PB -HA 32,48,Broadway Drive,HU9 3PB -HA 32,52,Broadway Drive,HU9 3PB -HA 32,56,Broadway Drive,HU9 3PB -HA 32,58,Broadway Drive,HU9 3PB -HA 32,60,Broadway Drive,HU9 3PB -HA 32,55,RUTHERGLEN DRIVE,HU9 3PF -HA 32,57,RUTHERGLEN DRIVE,HU9 3PF -HA 32,59,RUTHERGLEN DRIVE,HU9 3PF -HA 32,1,IMPERIAL COURT,HU9 3PG -HA 32,3,IMPERIAL COURT,HU9 3PG -HA 32,4,IMPERIAL COURT,HU9 3PG -HA 32,5,IMPERIAL COURT,HU9 3PG -HA 32,6,IMPERIAL COURT,HU9 3PG -HA 32,7,IMPERIAL COURT,HU9 3PG -HA 32,8,IMPERIAL COURT,HU9 3PG -HA 32,9,IMPERIAL COURT,HU9 3PG -HA 32,10,IMPERIAL COURT,HU9 3PG -HA 32,10,SCHUBERT CLOSE,HU9 3PL -HA 32,27,SCHUBERT CLOSE,HU9 3PL -HA 32,28,SCHUBERT CLOSE,HU9 3PL -HA 32,32,SCHUBERT CLOSE,HU9 3PL -HA 32,1,Broadway Manor,HU9 3PN -HA 32,1,Broadway Cottages,HU9 3PN -HA 32,2,Broadway Manor,HU9 3PN -HA 32,2,Broadway Cottages,HU9 3PN -HA 32,3,Broadway Cottages,HU9 3PN -HA 32,6,Broadway Manor,HU9 3PN -HA 32,8,Broadway Manor,HU9 3PN -HA 32,17,Broadway Manor,HU9 3PN -HA 32,18,Broadway Manor,HU9 3PN -HA 32,19,Broadway Manor,HU9 3PN -HA 32,20,Broadway Manor,HU9 3PN -HA 32,24,Broadway Manor,HU9 3PN -HA 32,31,Broadway Manor,HU9 3PN -HA 32,35,Broadway Manor,HU9 3PN -HA 32,36,Broadway Manor,HU9 3PN -HA 32,12A,Broadway Manor,HU9 3PN -HA 32,1,FAROES CLOSE,HU9 4AN -HA 32,2,Feroes Close,HU9 4AN -HA 32,3,FAROES CLOSE,HU9 4AN -HA 32,4,FAROES CLOSE,HU9 4AN -HA 32,5,FAROES CLOSE,HU9 4AN -HA 32,6,FAROES CLOSE,HU9 4AN -HA 32,7,FAROES CLOSE,HU9 4AN -HA 32,9,FAROES CLOSE,HU9 4AN -HA 32,10,FAROES CLOSE,HU9 4AN -HA 32,11,FAROES CLOSE,HU9 4AN -HA 32,12,FAROES CLOSE,HU9 4AN -HA 32,14,FAROES CLOSE,HU9 4AN -HA 32,15,FAROES CLOSE,HU9 4AN -HA 32,16,FAROES CLOSE,HU9 4AN -HA 32,17,FAROES CLOSE,HU9 4AN -HA 32,18,FAROES CLOSE,HU9 4AN -HA 32,19,FAROES CLOSE,HU9 4AN -HA 32,81,MAYBURY ROAD,HU93LB -HA 32,1,ZIEGFELD COURT,HU93PH -HA 32,2,ZIEGFELD COURT,HU93PH -HA 32,3,ZIEGFELD COURT,HU93PH -HA 32,4,ZIEGFELD COURT,HU93PH -HA 32,5,ZIEGFELD COURT,HU93PH -HA 32,6,ZIEGFELD COURT,HU93PH -HA 32,7,ZIEGFELD COURT,HU93PH -HA 32,8,ZIEGFELD COURT,HU93PH -HA 32,9,ZIEGFELD COURT,HU93PH -HA 32,1,GOLDEN COURT,HU93PJ -HA 32,2,GOLDEN COURT,HU93PJ -HA 32,3,GOLDEN COURT,HU93PJ -HA 32,4,GOLDEN COURT,HU93PJ -HA 32,5,GOLDEN COURT,HU93PJ -HA 32,6,GOLDEN COURT,HU93PJ -HA 32,7,GOLDEN COURT,HU93PJ -HA 32,8,GOLDEN COURT,HU93PJ -HA 32,10,GOLDEN COURT,HU93PJ -HA 32,11,GOLDEN COURT,HU93PJ -HA 32,12,GOLDEN COURT,HU93PJ -HA 32,14,GOLDEN COURT,HU93PJ -HA 32,15,GOLDEN COURT,HU93PJ -HA 32,16,GOLDEN COURT,HU93PJ -HA 32,17,GOLDEN COURT,HU93PJ -HA 32,18,GOLDEN COURT,HU93PJ -HA 32,19,GOLDEN COURT,HU93PJ -HA 32,20,GOLDEN COURT,HU93PJ -HA 32,22,GOLDEN COURT,HU93PJ -HA 32,23,GOLDEN COURT,HU93PJ -HA 32,24,GOLDEN COURT,HU93PJ -HA 32,15,ROYALE COURT,HU9 3JZ -HA 32,6,SHERWOOD COURT,HU114DF -HA 32,979,HESSLE ROAD,HU4 6QG -HA 32,985,HESSLE ROAD,HU4 6QG -HA 32,2,BUSH CLOSE,HU4 6SP -HA 32,11,BUSH CLOSE,HU4 6SP -HA 32,16,BUSH CLOSE,HU4 6SP -HA 32,52,FORESTER WAY,HU4 6SR -HA 32,72,FORESTER WAY,HU4 6SR -HA 32,74,FORESTER WAY,HU4 6SR -HA 32,3,SUMMERGROVES WAY,HU4 6SZ -HA 32,5,WALNUT TREE WAY,HU4 6TG -HA 32,6,WALNUT TREE WAY,HU4 6TG -HA 32,417,Endike Lane,HU6 8AG -HA 32,5,Ashbury Court,HU6 8DA -HA 32,9,Ashbury Court,HU6 8DA -HA 32,12,Ashbury Court,HU6 8DA -HA 32,28,Green Close,HU6 8DA -HA 32,34,Green Close,HU6 8DA -HA 32,51,Green Close,HU6 8DA -HA 32,259,Endike Lane,HU6 8DX -HA 32,261,Endike Lane,HU6 8DX -HA 32,17,Ashbury Court,HU6 8DY -HA 32,20,Ashbury Court,HU6 8DY -HA 32,30,Westgarth Avenue,HU6 8LS -HA 32,45,Westgarth Avenue,HU6 8LS -HA 32,65,Westgarth Avenue,HU6 8LS -HA 32,12,BEAUTIMAN COURT,HU6 8LX -HA 32,1,THE BROADWAY,HU9 3JH -HA 32,12,HEBRIDES CLOSE,HU9 3LF -HA 32,26,HEBRIDES CLOSE,HU9 3LF -HA 32,37,HEBRIDES CLOSE,HU9 3LF -HA 32,38,HEBRIDES CLOSE,HU9 3LF -HA 32,24,Broadway Drive,HU9 3PB -HA 32,50,Broadway Drive,HU9 3PB -HA 32,54,Broadway Drive,HU9 3PB -HA 32,2,IMPERIAL COURT,HU9 3PG -HA 32,5,SCHUBERT CLOSE,HU9 3PL -HA 32,8,SCHUBERT CLOSE,HU9 3PL -HA 32,19,SCHUBERT CLOSE,HU9 3PL -HA 32,34,SCHUBERT CLOSE,HU9 3PL -HA 32,8,FAROES CLOSE,HU9 4AN -HA 32,9,GOLDEN COURT,HU93PJ -HA 32,21,GOLDEN COURT,HU93PJ -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,, -,,,MK40 1QT \ No newline at end of file diff --git a/etl/eligibility/ha_15_32/HA 32 Identified addresses.csv b/etl/eligibility/ha_15_32/HA 32 Identified addresses.csv new file mode 100644 index 00000000..e2aedc17 --- /dev/null +++ b/etl/eligibility/ha_15_32/HA 32 Identified addresses.csv @@ -0,0 +1,499 @@ +Housing Association,No.,Address,Postcode +HA 32,1,SHERWOOD COURT,HU114DF +HA 32,2,SHERWOOD COURT,HU114DF +HA 32,3,SHERWOOD COURT,HU114DF +HA 32,4,SHERWOOD COURT,HU114DF +HA 32,5,SHERWOOD COURT,HU114DF +HA 32,7,SHERWOOD COURT,HU114DF +HA 32,8,SHERWOOD COURT,HU114DF +HA 32,9,SHERWOOD COURT,HU114DF +HA 32,10,SHERWOOD COURT,HU114DF +HA 32,27,Seaton Grove,HU4 6HF +HA 32,29,Seaton Grove,HU4 6HF +HA 32,31,Seaton Grove,HU4 6HF +HA 32,33,Seaton Grove,HU4 6HF +HA 32,35,Seaton Grove,HU4 6HF +HA 32,39,Seaton Grove,HU4 6HF +HA 32,41,Seaton Grove,HU4 6HF +HA 32,43,Seaton Grove,HU4 6HF +HA 32,7,Norton Grove,HU4 6HG +HA 32,9,Norton Grove,HU4 6HG +HA 32,11,Norton Grove,HU4 6HG +HA 32,15,Norton Grove,HU4 6HG +HA 32,17,Norton Grove,HU4 6HG +HA 32,19,Norton Grove,HU4 6HG +HA 32,21,Norton Grove,HU4 6HG +HA 32,28,Coxwold,HU4 6HH +HA 32,30,Coxwold,HU4 6HH +HA 32,32,Coxwold,HU4 6HH +HA 32,34,Coxwold,HU4 6HH +HA 32,36,Coxwold,HU4 6HH +HA 32,38,Coxwold,HU4 6HH +HA 32,40,Coxwold,HU4 6HH +HA 32,42,Coxwold,HU4 6HH +HA 32,44,Coxwold,HU4 6HH +HA 32,971,HESSLE ROAD,HU4 6QG +HA 32,973,HESSLE ROAD,HU4 6QG +HA 32,975,HESSLE ROAD,HU4 6QG +HA 32,977,HESSLE ROAD,HU4 6QG +HA 32,981,HESSLE ROAD,HU4 6QG +HA 32,983,HESSLE ROAD,HU4 6QG +HA 32,1,Hessle Road,HU4 6RS +HA 32,2,Hessle Road,HU4 6RS +HA 32,3,Hessle Road,HU4 6RS +HA 32,4,Hessle Road,HU4 6RS +HA 32,5,Hessle Road,HU4 6RS +HA 32,6,Hessle Road,HU4 6RS +HA 32,7,Hessle Road,HU4 6RS +HA 32,8,Hessle Road,HU4 6RS +HA 32,9,Hessle Road,HU4 6RS +HA 32,10,Hessle Road,HU4 6RS +HA 32,11,Hessle Road,HU4 6RS +HA 32,12,Hessle Road,HU4 6RS +HA 32,14,Hessle Road,HU4 6RS +HA 32,15,Hessle Road,HU4 6RS +HA 32,16,Hessle Road,HU4 6RS +HA 32,17,Hessle Road,HU4 6RS +HA 32,18,Hessle Road,HU4 6RS +HA 32,19,Hessle Road,HU4 6RS +HA 32,20,Hessle Road,HU4 6RS +HA 32,21,Hessle Road,HU4 6RS +HA 32,22,Hessle Road,HU4 6RS +HA 32,23,Hessle Road,HU4 6RS +HA 32,24,Hessle Road,HU4 6RS +HA 32,25,Hessle Road,HU4 6RS +HA 32,26,Hessle Road,HU4 6RS +HA 32,27,Hessle Road,HU4 6RS +HA 32,28,Hessle Road,HU4 6RS +HA 32,29,Hessle Road,HU4 6RS +HA 32,30,Hessle Road,HU4 6RS +HA 32,31,Hessle Road,HU4 6RS +HA 32,32,Hessle Road,HU4 6RS +HA 32,33,Hessle Road,HU4 6RS +HA 32,34,Hessle Road,HU4 6RS +HA 32,35,Hessle Road,HU4 6RS +HA 32,36,Hessle Road,HU4 6RS +HA 32,37,Hessle Road,HU4 6RS +HA 32,46,FORESTER WAY,HU4 6SR +HA 32,48,FORESTER WAY,HU4 6SR +HA 32,50,FORESTER WAY,HU4 6SR +HA 32,54,FORESTER WAY,HU4 6SR +HA 32,56,FORESTER WAY,HU4 6SR +HA 32,62,FORESTER WAY,HU4 6SR +HA 32,64,FORESTER WAY,HU4 6SR +HA 32,66,FORESTER WAY,HU4 6SR +HA 32,68,FORESTER WAY,HU4 6SR +HA 32,70,FORESTER WAY,HU4 6SR +HA 32,15,SUMMERGROVES WAY,HU4 6SZ +HA 32,1,WALNUT TREE WAY,HU4 6TG +HA 32,2,WALNUT TREE WAY,HU4 6TG +HA 32,3,WALNUT TREE WAY,HU4 6TG +HA 32,4,WALNUT TREE WAY,HU4 6TG +HA 32,7,WALNUT TREE WAY,HU4 6TG +HA 32,8,WALNUT TREE WAY,HU4 6TG +HA 32,9,WALNUT TREE WAY,HU4 6TG +HA 32,291,Cottingham Road,HU5 4AT +HA 32,293,Cottingham Road,HU5 4AT +HA 32,295,Cottingham Road,HU5 4AT +HA 32,297,Cottingham Road,HU5 4AT +HA 32,299,Cottingham Road,HU5 4AT +HA 32,301,Cottingham Road,HU5 4AT +HA 32,303,Cottingham Road,HU5 4AT +HA 32,305,Cottingham Road,HU5 4AT +HA 32,307,Cottingham Road,HU5 4AT +HA 32,309,Cottingham Road,HU5 4AT +HA 32,1,Edith Cavell Court,HU5 4BA +HA 32,2,Edith Cavell Court,HU5 4BA +HA 32,3,Edith Cavell Court,HU5 4BA +HA 32,4,Edith Cavell Court,HU5 4BA +HA 32,5,Edith Cavell Court,HU5 4BA +HA 32,6,Edith Cavell Court,HU5 4BA +HA 32,7,Edith Cavell Court,HU5 4BA +HA 32,8,Edith Cavell Court,HU5 4BA +HA 32,9,Edith Cavell Court,HU5 4BA +HA 32,10,Edith Cavell Court,HU5 4BA +HA 32,11,Edith Cavell Court,HU5 4BA +HA 32,12,Edith Cavell Court,HU5 4BA +HA 32,106,Barringhton Avenue,HU5 4BE +HA 32,112,Barringhton Avenue,HU5 4BE +HA 32,114,Barringhton Avenue,HU5 4BE +HA 32,116,Barringhton Avenue,HU5 4BE +HA 32,118,Barringhton Avenue,HU5 4BE +HA 32,120,Barringhton Avenue,HU5 4BE +HA 32,122,Barringhton Avenue,HU5 4BE +HA 32,124,Barringhton Avenue,HU5 4BE +HA 32,126,Barringhton Avenue,HU5 4BE +HA 32,1,Florence Nightingale Court,HU5 4BW +HA 32,2,Florence Nightingale Court,HU5 4BW +HA 32,3,Florence Nightingale Court,HU5 4BW +HA 32,4,Florence Nightingale Court,HU5 4BW +HA 32,5,Florence Nightingale Court,HU5 4BW +HA 32,6,Florence Nightingale Court,HU5 4BW +HA 32,7,Florence Nightingale Court,HU5 4BW +HA 32,8,Florence Nightingale Court,HU5 4BW +HA 32,9,Florence Nightingale Court,HU5 4BW +HA 32,10,Florence Nightingale Court,HU5 4BW +HA 32,11,Florence Nightingale Court,HU5 4BW +HA 32,12,Florence Nightingale Court,HU5 4BW +HA 32,14,Florence Nightingale Court,HU5 4BW +HA 32,15,Florence Nightingale Court,HU5 4BW +HA 32,17,Florence Nightingale Court,HU5 4BW +HA 32,19,Florence Nightingale Court,HU5 4BW +HA 32,12,Green Close,HU6 8DA +HA 32,44,Green Close,HU6 8DA +HA 32,49,Green Close,HU6 8DA +HA 32,50,Green Close,HU6 8DA +HA 32,14,Ashbury Court,HU6 8DY +HA 32,38,Westgarth Avenue,HU6 8LS +HA 32,46,WESTGARTH AVENUE,HU6 8LS +HA 32,48,WESTGARTH AVENUE,HU6 8LS +HA 32,54,Westgarth Avenue,HU6 8LS +HA 32,10,BEAUTIMAN COURT,HU6 8LX +HA 32,1,Rosey Row,HU9 1HF +HA 32,2,Rosey Row,HU9 1HF +HA 32,3,Rosey Row,HU9 1HF +HA 32,4,Rosey Row,HU9 1HF +HA 32,5,Rosey Row,HU9 1HF +HA 32,6,Rosey Row,HU9 1HF +HA 32,7,Rosey Row,HU9 1HF +HA 32,8,Rosey Row,HU9 1HF +HA 32,9,Rosey Row,HU9 1HF +HA 32,10,Rosey Row,HU9 1HF +HA 32,11,Rosey Row,HU9 1HF +HA 32,12,Rosey Row,HU9 1HF +HA 32,14,Rosey Row,HU9 1HF +HA 32,15,Rosey Row,HU9 1HF +HA 32,16,Rosey Row,HU9 1HF +HA 32,17,Rosey Row,HU9 1HF +HA 32,18,Rosey Row,HU9 1HF +HA 32,19,Rosey Row,HU9 1HF +HA 32,20,Rosey Row,HU9 1HF +HA 32,21,Rosey Row,HU9 1HF +HA 32,24,Steynburg Street,HU9 2PF +HA 32,26,Steynburg Street,HU9 2PF +HA 32,28,Steynburg Street,HU9 2PF +HA 32,30,Steynburg Street,HU9 2PF +HA 32,36,Steynburg Street,HU9 2PF +HA 32,38,Steynburg Street,HU9 2PF +HA 32,40,Steynburg Street,HU9 2PF +HA 32,42,Steynburg Street,HU9 2PF +HA 32,19,Rustenburg,HU9 2PT +HA 32,21,Rustenburg,HU9 2PT +HA 32,23,Rustenburg,HU9 2PT +HA 32,25,Rustenburg,HU9 2PT +HA 32,27,Rustenburg,HU9 2PT +HA 32,29,Rustenburg,HU9 2PT +HA 32,31,Rustenburg,HU9 2PT +HA 32,33,Rustenburg,HU9 2PT +HA 32,35,Rustenburg,HU9 2PT +HA 32,37,Rustenburg,HU9 2PT +HA 32,55,Rustenburg,HU9 2PT +HA 32,57,Rustenburg,HU9 2PT +HA 32,59,Rustenburg,HU9 2PT +HA 32,61,Rustenburg,HU9 2PT +HA 32,3,The Broadway,HU9 3JH +HA 32,5,THE BROADWAY,HU9 3JH +HA 32,7,The Broadway,HU9 3JH +HA 32,9,The Broadway,HU9 3JH +HA 32,11,The Broadway,HU9 3JH +HA 32,1,BOWLING CIRCLE,HU9 3JL +HA 32,3,BOWLING CIRCLE,HU9 3JL +HA 32,5,BOWLING CIRCLE,HU9 3JL +HA 32,7,BOWLING CIRCLE,HU9 3JL +HA 32,9,BOWLING CIRCLE,HU9 3JL +HA 32,1,MAJESTIC COURT,HU9 3JY +HA 32,2,MAJESTIC COURT,HU9 3JY +HA 32,3,MAJESTIC COURT,HU9 3JY +HA 32,4,MAJESTIC COURT,HU9 3JY +HA 32,5,MAJESTIC COURT,HU9 3JY +HA 32,6,MAJESTIC COURT,HU9 3JY +HA 32,7,MAJESTIC COURT,HU9 3JY +HA 32,8,MAJESTIC COURT,HU9 3JY +HA 32,9,MAJESTIC COURT,HU9 3JY +HA 32,10,MAJESTIC COURT,HU9 3JY +HA 32,11,MAJESTIC COURT,HU9 3JY +HA 32,12,MAJESTIC COURT,HU9 3JY +HA 32,14,MAJESTIC COURT,HU9 3JY +HA 32,15,Majestic Court,HU9 3JY +HA 32,16,MAJESTIC COURT,HU9 3JY +HA 32,1,ROYALE COURT,HU9 3JZ +HA 32,2,ROYALE COURT,HU9 3JZ +HA 32,3,ROYALE COURT,HU9 3JZ +HA 32,4,ROYALE COURT,HU9 3JZ +HA 32,5,ROYALE COURT,HU9 3JZ +HA 32,6,ROYALE COURT,HU9 3JZ +HA 32,7,ROYALE COURT,HU9 3JZ +HA 32,8,ROYALE COURT,HU9 3JZ +HA 32,9,ROYALE COURT,HU9 3JZ +HA 32,10,ROYALE COURT,HU9 3JZ +HA 32,11,ROYALE COURT,HU9 3JZ +HA 32,12,ROYALE COURT,HU9 3JZ +HA 32,14,ROYALE COURT,HU9 3JZ +HA 32,16,ROYALE COURT,HU9 3JZ +HA 32,17,ROYALE COURT,HU9 3JZ +HA 32,18,ROYALE COURT,HU9 3JZ +HA 32,19,ROYALE COURT,HU9 3JZ +HA 32,20,ROYALE COURT,HU9 3JZ +HA 32,21,ROYALE COURT,HU9 3JZ +HA 32,22,ROYALE COURT,HU9 3JZ +HA 32,23,ROYALE COURT,HU9 3JZ +HA 32,24,ROYALE COURT,HU9 3JZ +HA 32,25,ROYALE COURT,HU9 3JZ +HA 32,26,ROYALE COURT,HU9 3JZ +HA 32,12A,ROYALE COURT,HU9 3JZ +HA 32,79,MAYBURY ROAD,HU9 3LB +HA 32,1,HEBRIDES CLOSE,HU9 3LF +HA 32,2,HEBRIDES CLOSE,HU9 3LF +HA 32,3,HEBRIDES CLOSE,HU9 3LF +HA 32,4,HEBRIDES CLOSE,HU9 3LF +HA 32,5,HEBRIDES CLOSE,HU9 3LF +HA 32,6,HEBRIDES CLOSE,HU9 3LF +HA 32,7,HEBRIDES CLOSE,HU9 3LF +HA 32,8,HEBRIDES CLOSE,HU9 3LF +HA 32,9,HEBRIDES CLOSE,HU9 3LF +HA 32,10,HEBRIDES CLOSE,HU9 3LF +HA 32,11,HEBRIDES CLOSE,HU9 3LF +HA 32,14,Hebrides Close,HU9 3LF +HA 32,15,HEBRIDES CLOSE,HU9 3LF +HA 32,16,HEBRIDES CLOSE,HU9 3LF +HA 32,17,HEBRIDES CLOSE,HU9 3LF +HA 32,18,HEBRIDES CLOSE,HU9 3LF +HA 32,19,HEBRIDES CLOSE,HU9 3LF +HA 32,20,HEBRIDES CLOSE,HU9 3LF +HA 32,21,HEBRIDES CLOSE,HU9 3LF +HA 32,22,HEBRIDES CLOSE,HU9 3LF +HA 32,23,HEBRIDES CLOSE,HU9 3LF +HA 32,24,HEBRIDES CLOSE,HU9 3LF +HA 32,25,HEBRIDES CLOSE,HU9 3LF +HA 32,27,HEBRIDES CLOSE,HU9 3LF +HA 32,28,HEBRIDES CLOSE,HU9 3LF +HA 32,29,HEBRIDES CLOSE,HU9 3LF +HA 32,30,HEBRIDES CLOSE,HU9 3LF +HA 32,31,HEBRIDES CLOSE,HU9 3LF +HA 32,32,HEBRIDES CLOSE,HU9 3LF +HA 32,33,HEBRIDES CLOSE,HU9 3LF +HA 32,34,HEBRIDES CLOSE,HU9 3LF +HA 32,35,HEBRIDES CLOSE,HU9 3LF +HA 32,36,HEBRIDES CLOSE,HU9 3LF +HA 32,39,HEBRIDES CLOSE,HU9 3LF +HA 32,40,HEBRIDES CLOSE,HU9 3LF +HA 32,41,HEBRIDES CLOSE,HU9 3LF +HA 32,42,HEBRIDES CLOSE,HU9 3LF +HA 32,2,CROMARTY CLOSE,HU9 3LG +HA 32,4,CROMARTY CLOSE,HU9 3LG +HA 32,6,CROMARTY CLOSE,HU9 3LG +HA 32,8,CROMARTY CLOSE,HU9 3LG +HA 32,10,CROMARTY CLOSE,HU9 3LG +HA 32,12,CROMARTY CLOSE,HU9 3LG +HA 32,14,CROMARTY CLOSE,HU9 3LG +HA 32,16,CROMARTY CLOSE,HU9 3LG +HA 32,18,CROMARTY CLOSE,HU9 3LG +HA 32,20,CROMARTY CLOSE,HU9 3LG +HA 32,22,CROMARTY CLOSE,HU9 3LG +HA 32,24,CROMARTY CLOSE,HU9 3LG +HA 32,26,CROMARTY CLOSE,HU9 3LG +HA 32,28,CROMARTY CLOSE,HU9 3LG +HA 32,30,CROMARTY CLOSE,HU9 3LG +HA 32,32,CROMARTY CLOSE,HU9 3LG +HA 32,34,CROMARTY CLOSE,HU9 3LG +HA 32,36,CROMARTY CLOSE,HU9 3LG +HA 32,40,CROMARTY CLOSE,HU9 3LG +HA 32,42,CROMARTY CLOSE,HU9 3LG +HA 32,44,CROMARTY CLOSE,HU9 3LG +HA 32,46,CROMARTY CLOSE,HU9 3LG +HA 32,48,CROMARTY CLOSE,HU9 3LG +HA 32,48,CROMARTY CLOSE,HU9 3LG +HA 32,50,CROMARTY CLOSE,HU9 3LG +HA 32,52,CROMARTY CLOSE,HU9 3LG +HA 32,54,CROMARTY CLOSE,HU9 3LG +HA 32,56,CROMARTY CLOSE,HU9 3LG +HA 32,58,CROMARTY CLOSE,HU9 3LG +HA 32,60,CROMARTY CLOSE,HU9 3LG +HA 32,62,CROMARTY CLOSE,HU9 3LG +HA 32,64,CROMARTY CLOSE,HU9 3LG +HA 32,66,CROMARTY CLOSE,HU9 3LG +HA 32,68,CROMARTY CLOSE,HU9 3LG +HA 32,1,RONALDSWAY CLOSE,HU9 3LH +HA 32,2,RONALDSWAY CLOSE,HU9 3LH +HA 32,3,RONALDSWAY CLOSE,HU9 3LH +HA 32,3,"MALIN LODGE, RONALDSWAY CLOSE",HU9 3LH +HA 32,4,"MALIN LODGE, RONALDSWAY CLOSE",HU9 3LH +HA 32,6,"MALIN LODGE, RONALDSWAY CLOSE",HU9 3LH +HA 32,9,"MALIN LODGE, RONALDSWAY CLOSE",HU9 3LH +HA 32,10,"MALIN LODGE, RONALDSWAY CLOSE",HU9 3LH +HA 32,15,"MALIN LODGE, RONALDSWAY CLOSE",HU9 3LH +HA 32,17,"MALIN LODGE, RONALDSWAY CLOSE",HU9 3LH +HA 32,18,"MALIN LODGE, RONALDSWAY CLOSE",HU9 3LH +HA 32,7,BROADWAY DRIVE,HU9 3PA +HA 32,9,BROADWAY DRIVE,HU9 3PA +HA 32,11,BROADWAY DRIVE,HU9 3PA +HA 32,15,Broadway Drive,HU9 3PA +HA 32,17,Broadway Drive,HU9 3PA +HA 32,19,Broadway Drive,HU9 3PA +HA 32,21,Broadway Drive,HU9 3PA +HA 32,23,Broadway Drive,HU9 3PA +HA 32,25,Broadway Drive,HU9 3PA +HA 32,27,Broadway Drive,HU9 3PA +HA 32,29,Broadway Drive,HU9 3PA +HA 32,31,Broadway Drive,HU9 3PA +HA 32,33,Broadway Drive,HU9 3PA +HA 32,35,Broadway Drive,HU9 3PA +HA 32,37,BROADWAY DRIVE,HU9 3PA +HA 32,39,BROADWAY DRIVE,HU9 3PA +HA 32,41,Broadway Drive,HU9 3PA +HA 32,43,BROADWAY DRIVE,HU9 3PA +HA 32,45,BROADWAY DRIVE,HU9 3PA +HA 32,47,BROADWAY DRIVE,HU9 3PA +HA 32,49,BROADWAY DRIVE,HU9 3PA +HA 32,2,Broadway Drive,HU9 3PB +HA 32,4,Broadway Drive,HU9 3PB +HA 32,6,Broadway Drive,HU9 3PB +HA 32,8,Broadway Drive,HU9 3PB +HA 32,10,Broadway Drive,HU9 3PB +HA 32,12,Broadway Drive,HU9 3PB +HA 32,14,Broadway Drive,HU9 3PB +HA 32,16,Broadway Drive,HU9 3PB +HA 32,18,Broadway Drive,HU9 3PB +HA 32,20,Broadway Drive,HU9 3PB +HA 32,22,Broadway Drive,HU9 3PB +HA 32,26,Broadway Drive,HU9 3PB +HA 32,28,Broadway Drive,HU9 3PB +HA 32,28,ADA HOLMES CIRCLE,HU9 3PB +HA 32,30,Broadway Drive,HU9 3PB +HA 32,32,Broadway Drive,HU9 3PB +HA 32,34,Broadway Drive,HU9 3PB +HA 32,36,Broadway Drive,HU9 3PB +HA 32,38,Broadway Drive,HU9 3PB +HA 32,40,Broadway Drive,HU9 3PB +HA 32,42,Broadway Drive,HU9 3PB +HA 32,44,Broadway Drive,HU9 3PB +HA 32,46,Broadway Drive,HU9 3PB +HA 32,48,Broadway Drive,HU9 3PB +HA 32,52,Broadway Drive,HU9 3PB +HA 32,56,Broadway Drive,HU9 3PB +HA 32,58,Broadway Drive,HU9 3PB +HA 32,60,Broadway Drive,HU9 3PB +HA 32,55,RUTHERGLEN DRIVE,HU9 3PF +HA 32,57,RUTHERGLEN DRIVE,HU9 3PF +HA 32,59,RUTHERGLEN DRIVE,HU9 3PF +HA 32,1,IMPERIAL COURT,HU9 3PG +HA 32,3,IMPERIAL COURT,HU9 3PG +HA 32,4,IMPERIAL COURT,HU9 3PG +HA 32,5,IMPERIAL COURT,HU9 3PG +HA 32,6,IMPERIAL COURT,HU9 3PG +HA 32,7,IMPERIAL COURT,HU9 3PG +HA 32,8,IMPERIAL COURT,HU9 3PG +HA 32,9,IMPERIAL COURT,HU9 3PG +HA 32,10,IMPERIAL COURT,HU9 3PG +HA 32,10,SCHUBERT CLOSE,HU9 3PL +HA 32,27,SCHUBERT CLOSE,HU9 3PL +HA 32,28,SCHUBERT CLOSE,HU9 3PL +HA 32,32,SCHUBERT CLOSE,HU9 3PL +HA 32,1,Broadway Manor,HU9 3PN +HA 32,1,Broadway Cottages,HU9 3PN +HA 32,2,Broadway Manor,HU9 3PN +HA 32,2,Broadway Cottages,HU9 3PN +HA 32,3,Broadway Cottages,HU9 3PN +HA 32,6,Broadway Manor,HU9 3PN +HA 32,8,Broadway Manor,HU9 3PN +HA 32,17,Broadway Manor,HU9 3PN +HA 32,18,Broadway Manor,HU9 3PN +HA 32,19,Broadway Manor,HU9 3PN +HA 32,20,Broadway Manor,HU9 3PN +HA 32,24,Broadway Manor,HU9 3PN +HA 32,31,Broadway Manor,HU9 3PN +HA 32,35,Broadway Manor,HU9 3PN +HA 32,36,Broadway Manor,HU9 3PN +HA 32,12A,Broadway Manor,HU9 3PN +HA 32,1,FAROES CLOSE,HU9 4AN +HA 32,2,Feroes Close,HU9 4AN +HA 32,3,FAROES CLOSE,HU9 4AN +HA 32,4,FAROES CLOSE,HU9 4AN +HA 32,5,FAROES CLOSE,HU9 4AN +HA 32,6,FAROES CLOSE,HU9 4AN +HA 32,7,FAROES CLOSE,HU9 4AN +HA 32,9,FAROES CLOSE,HU9 4AN +HA 32,10,FAROES CLOSE,HU9 4AN +HA 32,11,FAROES CLOSE,HU9 4AN +HA 32,12,FAROES CLOSE,HU9 4AN +HA 32,14,FAROES CLOSE,HU9 4AN +HA 32,15,FAROES CLOSE,HU9 4AN +HA 32,16,FAROES CLOSE,HU9 4AN +HA 32,17,FAROES CLOSE,HU9 4AN +HA 32,18,FAROES CLOSE,HU9 4AN +HA 32,19,FAROES CLOSE,HU9 4AN +HA 32,81,MAYBURY ROAD,HU93LB +HA 32,1,ZIEGFELD COURT,HU93PH +HA 32,2,ZIEGFELD COURT,HU93PH +HA 32,3,ZIEGFELD COURT,HU93PH +HA 32,4,ZIEGFELD COURT,HU93PH +HA 32,5,ZIEGFELD COURT,HU93PH +HA 32,6,ZIEGFELD COURT,HU93PH +HA 32,7,ZIEGFELD COURT,HU93PH +HA 32,8,ZIEGFELD COURT,HU93PH +HA 32,9,ZIEGFELD COURT,HU93PH +HA 32,1,GOLDEN COURT,HU93PJ +HA 32,2,GOLDEN COURT,HU93PJ +HA 32,3,GOLDEN COURT,HU93PJ +HA 32,4,GOLDEN COURT,HU93PJ +HA 32,5,GOLDEN COURT,HU93PJ +HA 32,6,GOLDEN COURT,HU93PJ +HA 32,7,GOLDEN COURT,HU93PJ +HA 32,8,GOLDEN COURT,HU93PJ +HA 32,10,GOLDEN COURT,HU93PJ +HA 32,11,GOLDEN COURT,HU93PJ +HA 32,12,GOLDEN COURT,HU93PJ +HA 32,14,GOLDEN COURT,HU93PJ +HA 32,15,GOLDEN COURT,HU93PJ +HA 32,16,GOLDEN COURT,HU93PJ +HA 32,17,GOLDEN COURT,HU93PJ +HA 32,18,GOLDEN COURT,HU93PJ +HA 32,19,GOLDEN COURT,HU93PJ +HA 32,20,GOLDEN COURT,HU93PJ +HA 32,22,GOLDEN COURT,HU93PJ +HA 32,23,GOLDEN COURT,HU93PJ +HA 32,24,GOLDEN COURT,HU93PJ +HA 32,15,ROYALE COURT,HU9 3JZ +HA 32,6,SHERWOOD COURT,HU114DF +HA 32,979,HESSLE ROAD,HU4 6QG +HA 32,985,HESSLE ROAD,HU4 6QG +HA 32,2,BUSH CLOSE,HU4 6SP +HA 32,11,BUSH CLOSE,HU4 6SP +HA 32,16,BUSH CLOSE,HU4 6SP +HA 32,52,FORESTER WAY,HU4 6SR +HA 32,72,FORESTER WAY,HU4 6SR +HA 32,74,FORESTER WAY,HU4 6SR +HA 32,3,SUMMERGROVES WAY,HU4 6SZ +HA 32,5,WALNUT TREE WAY,HU4 6TG +HA 32,6,WALNUT TREE WAY,HU4 6TG +HA 32,417,Endike Lane,HU6 8AG +HA 32,5,Ashbury Court,HU6 8DA +HA 32,9,Ashbury Court,HU6 8DA +HA 32,12,Ashbury Court,HU6 8DA +HA 32,28,Green Close,HU6 8DA +HA 32,34,Green Close,HU6 8DA +HA 32,51,Green Close,HU6 8DA +HA 32,259,Endike Lane,HU6 8DX +HA 32,261,Endike Lane,HU6 8DX +HA 32,17,Ashbury Court,HU6 8DY +HA 32,20,Ashbury Court,HU6 8DY +HA 32,30,Westgarth Avenue,HU6 8LS +HA 32,45,Westgarth Avenue,HU6 8LS +HA 32,65,Westgarth Avenue,HU6 8LS +HA 32,12,BEAUTIMAN COURT,HU6 8LX +HA 32,1,THE BROADWAY,HU9 3JH +HA 32,12,HEBRIDES CLOSE,HU9 3LF +HA 32,26,HEBRIDES CLOSE,HU9 3LF +HA 32,37,HEBRIDES CLOSE,HU9 3LF +HA 32,38,HEBRIDES CLOSE,HU9 3LF +HA 32,24,Broadway Drive,HU9 3PB +HA 32,50,Broadway Drive,HU9 3PB +HA 32,54,Broadway Drive,HU9 3PB +HA 32,2,IMPERIAL COURT,HU9 3PG +HA 32,5,SCHUBERT CLOSE,HU9 3PL +HA 32,8,SCHUBERT CLOSE,HU9 3PL +HA 32,19,SCHUBERT CLOSE,HU9 3PL +HA 32,34,SCHUBERT CLOSE,HU9 3PL +HA 32,8,FAROES CLOSE,HU9 4AN +HA 32,9,GOLDEN COURT,HU93PJ +HA 32,21,GOLDEN COURT,HU93PJ \ No newline at end of file diff --git a/etl/eligibility/ha_15_32/app.py b/etl/eligibility/ha_15_32/app.py index 5c03ed9c..52f37caf 100644 --- a/etl/eligibility/ha_15_32/app.py +++ b/etl/eligibility/ha_15_32/app.py @@ -5,6 +5,10 @@ work is being done in December 2023, prior to completion of acquisition """ import pandas as pd +import numpy as np +from utils.logger import setup_logger + +logger = setup_logger() def load_data(): @@ -12,3 +16,305 @@ def load_data(): This function loads the asset lists and identified addresses for HA32 and HA15 :return: """ + + # Load the asset list + ha32_asset_list = pd.read_csv("etl/eligibility/ha_15_32/HA32 - ASSET LIST.csv", low_memory=False) + ha15_asset_list = pd.read_csv("etl/eligibility/ha_15_32/HA15 - ASSET LIST.csv", low_memory=False) + + # Load the identified addresses + ha32_identified_addresses = pd.read_csv("etl/eligibility/ha_15_32/HA 32 Identified addresses.csv", low_memory=False) + ha15_identified_addresses = pd.read_csv("etl/eligibility/ha_15_32/HA 15 Identified addresses.csv", low_memory=False) + + return ha32_asset_list, ha15_asset_list, ha32_identified_addresses, ha15_identified_addresses + + +def marge_ha_32(asset_list, identified_addresses): + """ + This method merges the asset list onto the list of identified addresses, forming a singular file for ha32 + """ + + # We update how the Coxwold are listed in the identified addresses + identified_addresses["Address"] = np.where( + identified_addresses["Address"] == "Coxwold", + "Coxwold Grove", + identified_addresses["Address"] + ) + + # Update the Barringhton Avenue with their correct spelling: Barrington Avenue + identified_addresses["Address"] = np.where( + identified_addresses["Address"] == "Barringhton Avenue", + "Barrington Avenue", + identified_addresses["Address"] + ) + + # Update how the Rustenburn addresses are listed in the identified addresses + identified_addresses["Address"] = np.where( + identified_addresses["Address"] == "Rustenburg", + "Rustenburg Street", + identified_addresses["Address"] + ) + + # Update how the MALIN LODGE, RONALDSWAY CLOSE addresses are listed in the identified addresses + identified_addresses["Address"] = np.where( + identified_addresses["Address"] == "MALIN LODGE, RONALDSWAY CLOSE", + "Malin Lodge", + identified_addresses["Address"] + ) + + # Update how the Feroes Close are listed in the identified addresses + identified_addresses["Address"] = np.where( + identified_addresses["Address"] == "Feroes Close", + "Faroes Close", + identified_addresses["Address"] + ) + + dropped_identified_merge_keys = [] + + # ha32 starts with 1418 rows + starting_rows = len(asset_list) + + asset_list["merge_key"] = ( + asset_list["Dwelling num"].astype(str).str.lower().str.strip().str.replace(" ", "") + + asset_list["Street"].astype(str).str.lower().str.strip().str.replace(" ", "") + + asset_list["Postcode"].astype(str).str.lower().str.strip().str.replace(" ", "") + ) + + asset_list["merge_key2"] = ( + asset_list["Dwelling num"].astype(str).str.lower().str.strip().str.replace(" ", "") + + asset_list["Street"].astype(str).str.lower().str.strip().str.replace(" ", "") + ) + + identified_addresses["merge_key"] = ( + identified_addresses["No."].astype(str).str.lower().str.strip().str.replace(" ", "") + + identified_addresses["Address"].astype(str).str.lower().str.strip().str.replace(" ", "") + + identified_addresses["Postcode"].astype(str).str.lower().str.strip().str.replace(" ", "") + ) + + identified_addresses["merge_key2"] = ( + identified_addresses["No."].astype(str).str.lower().str.strip().str.replace(" ", "") + + identified_addresses["Address"].astype(str).str.lower().str.strip().str.replace(" ", "") + ) + + identified_dupes = identified_addresses["merge_key"].duplicated() + if identified_dupes.sum(): + logger.warning("We have %s duplicated identified addresses that will be dropped", identified_dupes.sum()) + dropped_identified_merge_keys.extend(identified_addresses[identified_dupes]["merge_key"].tolist()) + + identified_addresses = identified_addresses.drop_duplicates("merge_key") + + # Check asset list for dupes + asset_list_dupes = asset_list["merge_key"].duplicated() + if asset_list_dupes.sum(): + logger.warning( + "We have some duplicated asset list rows - they won't be dropped but we make sure they aren't in the " + "identified addresses" + ) + dupe_keys = asset_list[asset_list["merge_key"].duplicated()]["merge_key"].tolist() + + check = identified_addresses[identified_addresses.merge_key.isin(dupe_keys)] + if not check.empty: + raise ValueError("We have a problem here, investigate me") + + # Merge the asset list onto the identified addresses + merged_data = pd.merge( + asset_list, + identified_addresses.drop(columns="merge_key2"), + how="left", + left_on="merge_key", + right_on="merge_key", + suffixes=("", "_identified_addresses") + ) + + if merged_data.shape[0] != starting_rows: + raise ValueError("Row numbers have changed") + + merged_data = merged_data.merge( + identified_addresses.drop(columns="merge_key"), + how="left", + left_on="merge_key2", + right_on="merge_key2", + suffixes=("", "_identified_addresses2") + ) + + if merged_data.shape[0] != starting_rows: + raise ValueError("Row numbers have changed") + + merged_data["identified"] = ( + merged_data["Postcode_identified_addresses"].notnull() | merged_data["Postcode_identified_addresses2"].notnull() + ) + + # HA 32 issues: + # We have 36 Hesstle road addresses in the HA32 identified addresses, that are not in the original asset list + # + + missed = identified_addresses[ + ~identified_addresses["merge_key"].isin(merged_data["merge_key"]) & + ~identified_addresses["merge_key2"].isin(merged_data["merge_key2"]) + ] + + if missed.shape[0] != 36: + raise ValueError("We have a problem here, investigate me, missings beyond the Hessle Road addresses") + + # TODO: Finish me + + +def merge_ha_15(asset_list, identified_addresses, ha): + """ + This method merges the asset list onto the list of identified addresses, forming a singular file + """ + + if ha not in ["ha32", "ha15"]: + raise ValueError("ha must be either ha32 or ha15") + + if ha == "ha32": + + + else: + raise NotImplementedError("We haven't implemented HA15 yet") + + dropped_identified_merge_keys = [] + dropped_asset_list_merge_keys = [] + + # ha32 starts with 1418 rows + # HA15 starts with 7665 rows + starting_rows = len(asset_list) + + # We create a merge key on both files, based on concateneated, processed columns + if ha == "ha32": + asset_list["merge_key"] = ( + asset_list["Dwelling num"].astype(str).str.lower().str.strip().str.replace(" ", "") + + asset_list["Street"].astype(str).str.lower().str.strip().str.replace(" ", "") + + asset_list["Postcode"].astype(str).str.lower().str.strip().str.replace(" ", "") + ) + + asset_list["merge_key2"] = ( + asset_list["Dwelling num"].astype(str).str.lower().str.strip().str.replace(" ", "") + + asset_list["Street"].astype(str).str.lower().str.strip().str.replace(" ", "") + ) + + identified_addresses["merge_key"] = ( + identified_addresses["No."].astype(str).str.lower().str.strip().str.replace(" ", "") + + identified_addresses["Address"].astype(str).str.lower().str.strip().str.replace(" ", "") + + identified_addresses["Postcode"].astype(str).str.lower().str.strip().str.replace(" ", "") + ) + + identified_addresses["merge_key2"] = ( + identified_addresses["No."].astype(str).str.lower().str.strip().str.replace(" ", "") + + identified_addresses["Address"].astype(str).str.lower().str.strip().str.replace(" ", "") + ) + + else: + asset_list["merge_key"] = ( + asset_list["Address Line 1"].astype(str).str.lower().str.strip().str.replace(" ", "") + + asset_list["Postcode"].astype(str).str.lower().str.strip().str.replace(" ", "") + ) + + # We check for duplicated identified addresses and in the asset list + + identified_dupes = identified_addresses["merge_key"].duplicated() + if identified_dupes.sum(): + logger.warning("We have %s duplicated identified addresses that will be dropped", identified_dupes.sum()) + dropped_identified_merge_keys.extend(identified_addresses[identified_dupes]["merge_key"].tolist()) + + identified_addresses = identified_addresses.drop_duplicates("merge_key") + + # Check asset list for dupes + asset_list_dupes = asset_list["merge_key"].duplicated() + if asset_list_dupes.sum(): + logger.warning( + "We have some duplicated asset list rows - they won't be dropped but we make sure they aren't in the " + "identified addresses" + ) + dupe_keys = asset_list[asset_list["merge_key"].duplicated()]["merge_key"].tolist() + + check = identified_addresses[identified_addresses.merge_key.isin(dupe_keys)] + if not check.empty: + raise ValueError("We have a problem here, investigate me") + + # Merge the asset list onto the identified addresses + merged_data = pd.merge( + asset_list, + identified_addresses.drop(columns="merge_key2"), + how="left", + left_on="merge_key", + right_on="merge_key", + suffixes=("", "_identified_addresses") + ) + + if merged_data.shape[0] != starting_rows: + raise ValueError("Row numbers have changed") + + merged_data = merged_data.merge( + identified_addresses.drop(columns="merge_key"), + how="left", + left_on="merge_key2", + right_on="merge_key2", + suffixes=("", "_identified_addresses2") + ) + + if merged_data.shape[0] != starting_rows: + raise ValueError("Row numbers have changed") + + merged_data["identified"] = ( + merged_data["Postcode_identified_addresses"].notnull() | merged_data["Postcode_identified_addresses2"].notnull() + ) + + # HA 32 issues: + # We have 36 Hesstle road addresses in the HA32 identified addresses, that are not in the original asset list + # + + missed = identified_addresses[ + ~identified_addresses["merge_key"].isin(merged_data["merge_key"]) & + ~identified_addresses["merge_key2"].isin(merged_data["merge_key2"]) + ] + + if ha == "ha32": + if missed.shape[0] != 36: + raise ValueError("We have a problem here, investigate me, missings beyond the Hessle Road addresses") + + missed.shape + + m1 = missed[missed["Address"].str.contains("Hessle")] + + m1.head() + + [x for x in m1["merge_key"] if x in asset_list["merge_key"].tolist()] + [x for x in m1["merge_key2"] if x in asset_list["merge_key2"].tolist()] + + missed["Address"].unique() + + z = merged_data[merged_data["Street"].str.contains("Hessle") & ~merged_data["identified"]] + + identified_addresses[identified_addresses["Address"].str.contains("Barringhton")] + asset_list[asset_list["Street"].str.contains("Hessle")] + + identified_addresses["merge_key"].isin(merged_data["merge_key"]) + + identified_addresses["merge_key"].isin(asset_list["merge_key"]).sum() + identified_addresses["merge_key2"].isin(asset_list["merge_key2"]).sum() + + # Find merge keys not in the identified addresses + + missed = identified_addresses[ + ~identified_addresses["merge_key"].isin(merged_data["merge_key"]) + ] + + identified_addresses[ + (identified_addresses["Address"].str.contains("Ashbury Court")) + ] + + asset_list[ + (asset_list["Street"].str.contains("Ashbury Court")) + ] + + # Drop the UPRN column from the merged data + merged_data = merged_data.drop(columns=["UPRN"]) + + return merged_data + + +def app(): + ha32_asset_list, ha15_asset_list, ha32_identified_addresses, ha15_identified_addresses = load_data() + + ha32 = marge_ha_32(asset_list=ha32_asset_list, identified_addresses=ha32_identified_addresses) + ha15 = merge_ha_15(asset_list=ha15_asset_list, identified_addresses=ha15_identified_addresses, ha="ha15") From a6c8ca0e1d56e7f76361c6c159437f3d832b245c Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Wed, 6 Dec 2023 16:08:24 +0000 Subject: [PATCH 047/526] cleaning up ha15 merging process --- etl/eligibility/ha_15_32/app.py | 155 ++++++++++++++++++++------------ 1 file changed, 96 insertions(+), 59 deletions(-) diff --git a/etl/eligibility/ha_15_32/app.py b/etl/eligibility/ha_15_32/app.py index 52f37caf..cf836439 100644 --- a/etl/eligibility/ha_15_32/app.py +++ b/etl/eligibility/ha_15_32/app.py @@ -33,6 +33,11 @@ def marge_ha_32(asset_list, identified_addresses): This method merges the asset list onto the list of identified addresses, forming a singular file for ha32 """ + dropped_identified_merge_keys = [] + + # ha32 starts with 1418 rows + starting_rows = len(asset_list) + # We update how the Coxwold are listed in the identified addresses identified_addresses["Address"] = np.where( identified_addresses["Address"] == "Coxwold", @@ -68,11 +73,6 @@ def marge_ha_32(asset_list, identified_addresses): identified_addresses["Address"] ) - dropped_identified_merge_keys = [] - - # ha32 starts with 1418 rows - starting_rows = len(asset_list) - asset_list["merge_key"] = ( asset_list["Dwelling num"].astype(str).str.lower().str.strip().str.replace(" ", "") + asset_list["Street"].astype(str).str.lower().str.strip().str.replace(" ", "") + @@ -158,62 +158,64 @@ def marge_ha_32(asset_list, identified_addresses): # TODO: Finish me -def merge_ha_15(asset_list, identified_addresses, ha): +def merge_ha_15(asset_list, identified_addresses): """ This method merges the asset list onto the list of identified addresses, forming a singular file """ - if ha not in ["ha32", "ha15"]: - raise ValueError("ha must be either ha32 or ha15") - - if ha == "ha32": - - - else: - raise NotImplementedError("We haven't implemented HA15 yet") - dropped_identified_merge_keys = [] - dropped_asset_list_merge_keys = [] + + # Update how Mary Mac Manus Drive, Milton Keynes is listed in the identified addresses + identified_addresses["Address"] = identified_addresses["Address"].str.replace( + "Mary Mac Manus Drive, Milton Keynes", "Mary Mac Manus Drive" + ) + + # This address has the wrong postcode in the orignal asset list + asset_list["Postcode"] = np.where( + asset_list["Address Line 1"] == "103 Priory Crescent", + "HP19 9NY", + asset_list["Postcode"] + ) # ha32 starts with 1418 rows - # HA15 starts with 7665 rows starting_rows = len(asset_list) - # We create a merge key on both files, based on concateneated, processed columns - if ha == "ha32": - asset_list["merge_key"] = ( - asset_list["Dwelling num"].astype(str).str.lower().str.strip().str.replace(" ", "") + - asset_list["Street"].astype(str).str.lower().str.strip().str.replace(" ", "") + - asset_list["Postcode"].astype(str).str.lower().str.strip().str.replace(" ", "") - ) + asset_list["merge_key"] = ( + asset_list["Address Line 1"].astype(str).str.lower().str.strip().str.replace(" ", "") + + asset_list["Postcode"].astype(str).str.lower().str.strip().str.replace(" ", "") + ).str.replace(',', '').str.replace('.', '') - asset_list["merge_key2"] = ( - asset_list["Dwelling num"].astype(str).str.lower().str.strip().str.replace(" ", "") + - asset_list["Street"].astype(str).str.lower().str.strip().str.replace(" ", "") - ) + asset_list["merge_key2"] = ( + asset_list["Address Line 1"].astype(str).str.lower().str.strip().str.replace(" ", "") + + asset_list["Address Line 2"].astype(str).str.lower().str.strip().str.replace(" ", "") + + asset_list["Address Line 3"].astype(str).str.lower().str.strip().str.replace(" ", "") + + asset_list["Postcode"].astype(str).str.lower().str.strip().str.replace(" ", "") + ).str.replace(',', '').str.replace('.', '') - identified_addresses["merge_key"] = ( - identified_addresses["No."].astype(str).str.lower().str.strip().str.replace(" ", "") + - identified_addresses["Address"].astype(str).str.lower().str.strip().str.replace(" ", "") + - identified_addresses["Postcode"].astype(str).str.lower().str.strip().str.replace(" ", "") - ) + asset_list["merge_key3"] = ( + asset_list["Address Line 1"].astype(str).str.lower().str.strip().str.replace(" ", "") + + asset_list["Address Line 2"].astype(str).str.lower().str.strip().str.replace(" ", "") + + asset_list["Postcode"].astype(str).str.lower().str.strip().str.replace(" ", "") + ).str.replace(',', '').str.replace('.', '') - identified_addresses["merge_key2"] = ( - identified_addresses["No."].astype(str).str.lower().str.strip().str.replace(" ", "") + - identified_addresses["Address"].astype(str).str.lower().str.strip().str.replace(" ", "") - ) + asset_list["merge_key4"] = ( + asset_list["Address Line 1"].astype(str).str.lower().str.strip().str.replace(" ", "") + + asset_list["Address Line 2"].astype(str).str.lower().str.strip().str.replace(" ", "") + + asset_list["Address Line 4"].astype(str).str.lower().str.strip().str.replace(" ", "") + + asset_list["Postcode"].astype(str).str.lower().str.strip().str.replace(" ", "") + ).str.replace(',', '').str.replace('.', '') - else: - asset_list["merge_key"] = ( - asset_list["Address Line 1"].astype(str).str.lower().str.strip().str.replace(" ", "") + - asset_list["Postcode"].astype(str).str.lower().str.strip().str.replace(" ", "") - ) + identified_addresses["merge_key"] = ( + identified_addresses["Address"].astype(str).str.lower().str.strip().str.replace(" ", "") + + identified_addresses["Postcode"].astype(str).str.lower().str.strip().str.replace(" ", "") + ).str.replace(',', '').str.replace('.', '') # We check for duplicated identified addresses and in the asset list identified_dupes = identified_addresses["merge_key"].duplicated() if identified_dupes.sum(): logger.warning("We have %s duplicated identified addresses that will be dropped", identified_dupes.sum()) + dropped_identified_merge_keys.extend(identified_addresses[identified_dupes]["merge_key"].tolist()) identified_addresses = identified_addresses.drop_duplicates("merge_key") @@ -234,7 +236,7 @@ def merge_ha_15(asset_list, identified_addresses, ha): # Merge the asset list onto the identified addresses merged_data = pd.merge( asset_list, - identified_addresses.drop(columns="merge_key2"), + identified_addresses, how="left", left_on="merge_key", right_on="merge_key", @@ -244,19 +246,50 @@ def merge_ha_15(asset_list, identified_addresses, ha): if merged_data.shape[0] != starting_rows: raise ValueError("Row numbers have changed") - merged_data = merged_data.merge( - identified_addresses.drop(columns="merge_key"), + # merge on the second merge key + merged_data = pd.merge( + merged_data, + identified_addresses, how="left", left_on="merge_key2", - right_on="merge_key2", + right_on="merge_key", suffixes=("", "_identified_addresses2") ) + if merged_data.shape[0] != starting_rows: + raise ValueError("Row numbers have changed") + + # merge on the third merge key + merged_data = pd.merge( + merged_data, + identified_addresses, + how="left", + left_on="merge_key3", + right_on="merge_key", + suffixes=("", "_identified_addresses3") + ) + + if merged_data.shape[0] != starting_rows: + raise ValueError("Row numbers have changed") + + # merge on the fourth merge key + merged_data = pd.merge( + merged_data, + identified_addresses, + how="left", + left_on="merge_key4", + right_on="merge_key", + suffixes=("", "_identified_addresses4") + ) + if merged_data.shape[0] != starting_rows: raise ValueError("Row numbers have changed") merged_data["identified"] = ( - merged_data["Postcode_identified_addresses"].notnull() | merged_data["Postcode_identified_addresses2"].notnull() + merged_data["Postcode_identified_addresses"].notnull() | + merged_data["Postcode_identified_addresses2"].notnull() | + merged_data["Postcode_identified_addresses3"].notnull() | + merged_data["Postcode_identified_addresses4"].notnull() ) # HA 32 issues: @@ -265,7 +298,9 @@ def merge_ha_15(asset_list, identified_addresses, ha): missed = identified_addresses[ ~identified_addresses["merge_key"].isin(merged_data["merge_key"]) & - ~identified_addresses["merge_key2"].isin(merged_data["merge_key2"]) + ~identified_addresses["merge_key"].isin(merged_data["merge_key2"]) & + ~identified_addresses["merge_key"].isin(merged_data["merge_key3"]) & + ~identified_addresses["merge_key"].isin(merged_data["merge_key4"]) ] if ha == "ha32": @@ -274,19 +309,21 @@ def merge_ha_15(asset_list, identified_addresses, ha): missed.shape - m1 = missed[missed["Address"].str.contains("Hessle")] - - m1.head() - - [x for x in m1["merge_key"] if x in asset_list["merge_key"].tolist()] - [x for x in m1["merge_key2"] if x in asset_list["merge_key2"].tolist()] - missed["Address"].unique() - z = merged_data[merged_data["Street"].str.contains("Hessle") & ~merged_data["identified"]] + len([m for m in missed["Address"].unique() if "Mary Mac" in m]) - identified_addresses[identified_addresses["Address"].str.contains("Barringhton")] - asset_list[asset_list["Street"].str.contains("Hessle")] + a = identified_addresses[ + identified_addresses["Address"].str.contains("103 Priory Crescent") + ] + b = asset_list[ + asset_list["Address Line 1"].str.contains("103 Priory Crescent") + ] + + a["merge_key"] + b["merge_key"] + b["merge_key2"] + b["merge_key3"] identified_addresses["merge_key"].isin(merged_data["merge_key"]) @@ -317,4 +354,4 @@ def app(): ha32_asset_list, ha15_asset_list, ha32_identified_addresses, ha15_identified_addresses = load_data() ha32 = marge_ha_32(asset_list=ha32_asset_list, identified_addresses=ha32_identified_addresses) - ha15 = merge_ha_15(asset_list=ha15_asset_list, identified_addresses=ha15_identified_addresses, ha="ha15") + ha15 = merge_ha_15(asset_list=ha15_asset_list, identified_addresses=ha15_identified_addresses) From fa5148228bac3819429d39b10b7edbbe8e75abfe Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Wed, 6 Dec 2023 16:33:22 +0000 Subject: [PATCH 048/526] completed merge of ha15 and ha32 --- backend/SearchEpc.py | 32 +++++++++++++ etl/eligibility/ha_15_32/app.py | 55 ++++------------------- etl/eligibility/ha_15_32/requirements.txt | 4 +- 3 files changed, 43 insertions(+), 48 deletions(-) create mode 100644 backend/SearchEpc.py diff --git a/backend/SearchEpc.py b/backend/SearchEpc.py new file mode 100644 index 00000000..41fbbb0f --- /dev/null +++ b/backend/SearchEpc.py @@ -0,0 +1,32 @@ +from epc_api.client import EpcClient + +class SearchEpc: + """ + Given address information about a home, this class is responsible for retrieving the EPC data associated + to the property. + + For a home, we might have address lines 1, 2, 3 and 4, as well as a postcode. + + Often, simply searching the EPC database with address line 1 and postcode will be enough to find + the property, but there are some cases where this is not true and we might need to utilise other + combinations about the home to find the property + """ + + def __init__(self, address1, postcode, address2=None, address3=None, address4=None): + """ + Address lines 1 and postcode are mandatory fields. The other address lines are optional + but can be used to find the epc for the home, if address1 and postcode are insufficient + :param address1: string, propery's address line 1 + :param postcode: string, propery's postcode + :param address2: string, optional, propery's address line 2 + :param address3: string, optional, propery's address line 3 + :param address4: string, optional, propery's address line 4 + """ + + self.address1 = address1 + self.postcode = postcode + self.address2 = address2 + self.address3 = address3 + self.address4 = address4 + + def search(self): diff --git a/etl/eligibility/ha_15_32/app.py b/etl/eligibility/ha_15_32/app.py index cf836439..90229801 100644 --- a/etl/eligibility/ha_15_32/app.py +++ b/etl/eligibility/ha_15_32/app.py @@ -155,7 +155,9 @@ def marge_ha_32(asset_list, identified_addresses): if missed.shape[0] != 36: raise ValueError("We have a problem here, investigate me, missings beyond the Hessle Road addresses") - # TODO: Finish me + # Finally, we return the data we need + + return merged_data, dropped_identified_merge_keys def merge_ha_15(asset_list, identified_addresses): @@ -303,55 +305,14 @@ def merge_ha_15(asset_list, identified_addresses): ~identified_addresses["merge_key"].isin(merged_data["merge_key4"]) ] - if ha == "ha32": - if missed.shape[0] != 36: - raise ValueError("We have a problem here, investigate me, missings beyond the Hessle Road addresses") + if missed.shape[0]: + raise ValueError("We have a problem here, investigate me, should not have any missings for ha15") - missed.shape - - missed["Address"].unique() - - len([m for m in missed["Address"].unique() if "Mary Mac" in m]) - - a = identified_addresses[ - identified_addresses["Address"].str.contains("103 Priory Crescent") - ] - b = asset_list[ - asset_list["Address Line 1"].str.contains("103 Priory Crescent") - ] - - a["merge_key"] - b["merge_key"] - b["merge_key2"] - b["merge_key3"] - - identified_addresses["merge_key"].isin(merged_data["merge_key"]) - - identified_addresses["merge_key"].isin(asset_list["merge_key"]).sum() - identified_addresses["merge_key2"].isin(asset_list["merge_key2"]).sum() - - # Find merge keys not in the identified addresses - - missed = identified_addresses[ - ~identified_addresses["merge_key"].isin(merged_data["merge_key"]) - ] - - identified_addresses[ - (identified_addresses["Address"].str.contains("Ashbury Court")) - ] - - asset_list[ - (asset_list["Street"].str.contains("Ashbury Court")) - ] - - # Drop the UPRN column from the merged data - merged_data = merged_data.drop(columns=["UPRN"]) - - return merged_data + return merged_data, dropped_identified_merge_keys def app(): ha32_asset_list, ha15_asset_list, ha32_identified_addresses, ha15_identified_addresses = load_data() - ha32 = marge_ha_32(asset_list=ha32_asset_list, identified_addresses=ha32_identified_addresses) - ha15 = merge_ha_15(asset_list=ha15_asset_list, identified_addresses=ha15_identified_addresses) + ha32, _ = marge_ha_32(asset_list=ha32_asset_list, identified_addresses=ha32_identified_addresses) + ha15, _ = merge_ha_15(asset_list=ha15_asset_list, identified_addresses=ha15_identified_addresses) diff --git a/etl/eligibility/ha_15_32/requirements.txt b/etl/eligibility/ha_15_32/requirements.txt index 1411a4a0..390d7de9 100644 --- a/etl/eligibility/ha_15_32/requirements.txt +++ b/etl/eligibility/ha_15_32/requirements.txt @@ -1 +1,3 @@ -pandas \ No newline at end of file +pandas +pydantic==1.10.11 +epc-api-python==1.0.2 From 55b8a0ace8519bc771108a84825f56c8dd35e874 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Wed, 6 Dec 2023 16:50:53 +0000 Subject: [PATCH 049/526] setting up the SearchEpc class --- .idea/Model.iml | 2 +- .idea/misc.xml | 2 +- backend/SearchEpc.py | 77 ++++++++++++++++++++++++++++++++- etl/eligibility/ha_15_32/app.py | 7 ++- 4 files changed, 84 insertions(+), 4 deletions(-) diff --git a/.idea/Model.iml b/.idea/Model.iml index 3a3ec5a2..b0f9c00d 100644 --- a/.idea/Model.iml +++ b/.idea/Model.iml @@ -7,7 +7,7 @@ - + diff --git a/.idea/misc.xml b/.idea/misc.xml index 605a6457..1122b380 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -3,7 +3,7 @@ - + diff --git a/backend/SearchEpc.py b/backend/SearchEpc.py index 41fbbb0f..26682044 100644 --- a/backend/SearchEpc.py +++ b/backend/SearchEpc.py @@ -1,4 +1,10 @@ +import os +import time from epc_api.client import EpcClient +from utils.logger import setup_logger + +logger = setup_logger() + class SearchEpc: """ @@ -12,7 +18,29 @@ class SearchEpc: combinations about the home to find the property """ - def __init__(self, address1, postcode, address2=None, address3=None, address4=None): + MAX_RETRIES = 5 + + SUCCESS = { + "status": 200, + "message": "success", + "error": None + } + + NODATA = { + "status": 201, + "message": "No data", + "error": None + } + + def __init__( + self, + address1: str, + postcode: str, + address2: str = None, + address3: str = None, + address4: str = None, + max_retries: int = None + ): """ Address lines 1 and postcode are mandatory fields. The other address lines are optional but can be used to find the epc for the home, if address1 and postcode are insufficient @@ -29,4 +57,51 @@ class SearchEpc: self.address3 = address3 self.address4 = address4 + self.max_retries = max_retries if max_retries is not None else self.MAX_RETRIES + + self.client = EpcClient(auth_token=os.getenv("EPC_AUTH_TOKEN")) + + self.data = None + def search(self): + # Get the EPC data with retries + response = {} + for retry in range(self.max_retries): + try: + response = self.client.domestic.search( + params={"address": self.address1, "postcode": self.postcode} + ) + + if response: + self.data = response + return self.SUCCESS + + if retry > 0: + print("Failed previous attempt but retry successful") + # If we got nothing, final try + if not response: + raise NotImplementedError("Implement me") + # response = client.domestic.search( + # params={"address": " ".join([home["Dwelling num"], home["Street"]]), + # "postcode": home["Postcode"]} + # ) + + # TODO: Eventually, if we have nothing, we should exit with a 201 or 202, saying that + # there is not data for this property + return { + "status": 200, + "message": "success", + "error": None + } + + except Exception as e: + if retry < self.max_retries - 1: + # If not the last retry, wait for 3 seconds before retrying + time.sleep(3) + else: + # If it's the last retry, we continue + return { + "status": 500, + "message": "Could not retrieve EPC data", + "error": str(e) + } diff --git a/etl/eligibility/ha_15_32/app.py b/etl/eligibility/ha_15_32/app.py index 90229801..d037d610 100644 --- a/etl/eligibility/ha_15_32/app.py +++ b/etl/eligibility/ha_15_32/app.py @@ -3,12 +3,17 @@ This process has been created to compare the model based eligibility process aga used by the Warmfront team, to identify which properties are eligible for ECO4 and GBIS funding. This work is being done in December 2023, prior to completion of acquisition """ - +from pathlib import Path import pandas as pd import numpy as np from utils.logger import setup_logger +from dotenv import load_dotenv +from backend.SearchEpc import SearchEpc + +ENV_FILE = Path(__file__).parent / "etl" / "eligibility" / "ha_15_32" / ".env" logger = setup_logger() +load_dotenv(ENV_FILE) def load_data(): From 353e8a90db3a9c0867b7829aad52e592f6832337 Mon Sep 17 00:00:00 2001 From: Michael Duong Date: Wed, 6 Dec 2023 17:08:05 +0000 Subject: [PATCH 050/526] breakout classes --- etl/epc/Dataset.py | 107 +++++++ etl/epc/EPCRecord.py | 290 ++++++++++++++++++ etl/epc/ValidationConfiguration.py | 34 +++ etl/epc/property_change_app.py | 456 +++++++---------------------- 4 files changed, 533 insertions(+), 354 deletions(-) create mode 100644 etl/epc/Dataset.py create mode 100644 etl/epc/EPCRecord.py diff --git a/etl/epc/Dataset.py b/etl/epc/Dataset.py new file mode 100644 index 00000000..8379546f --- /dev/null +++ b/etl/epc/Dataset.py @@ -0,0 +1,107 @@ +import pandas as pd +from typing import List +from etl.epc.EPCRecord import EPCDifferenceRecord + +class TrainingDataset: + """ + A collection of EPCDifferenceRecords can be combined into a TrainingDataset. + """ + + def __init__(self, datasets: List[EPCDifferenceRecord]) -> None: + self.datasets = datasets + self.df = pd.DataFrame([dataset.difference_record for dataset in datasets]) + + self._feature_generation() + self._drop_features() + self._clean_dataframe() + self._clean_efficiency_variables(self.df) + + def _drop_features(self): + """ + Drop features that are not needed for modelling + """ + self.df = self.df.drop(columns=["LODGEMENT_DATE_STARTING", "LODGEMENT_DATE_ENDING"]) + + + def _feature_generation(self): + """ + Generate features for modelling + """ + self.df["DAYS_TO_STARTING"] = self._calculate_days_to(self.df["LODGEMENT_DATE_STARTING"]) + self.df["DAYS_TO_ENDING"] = self._calculate_days_to(self.df["LODGEMENT_DATE_ENDING"]) + + @staticmethod + def _clean_efficiency_variables(df): + + """ + These is scope to clean this by the model per corresponding description. + E.g. for WALLS_ENG_EFF we could look at the mode efficiency rating by description and + fill in the missing values with this. + When looking at this initially, there are a large volume of records with missing energy efficiency + values and therefore a simpler approach was taken just to test including these variables + :param df: + :return: + """ + + missings = pd.isnull(df).sum() + missings = missings[missings >= 1] + + if len(missings) == 0: + return df + + # Make sure they are all efficiency columns + if any(~missings.index.str.contains("ENERGY_EFF")): + raise ValueError("Non efficiency columns are missing") + + for m in missings.index: + df[m] = df[m].fillna("NO_RATING") + + return df + + @staticmethod + def _calculate_days_to(lodgement_date): + + if isinstance(lodgement_date, str): + return ( + pd.to_datetime(lodgement_date) - pd.to_datetime(EARLIEST_EPC_DATE) + ).daye + + return ( + pd.to_datetime(lodgement_date) - pd.to_datetime(EARLIEST_EPC_DATE) + ).dt.days + + def __add__(self, other) -> "TrainingDataset": + if not isinstance(other, TrainingDataset): + raise TypeError("Addition can only be performed with another instance of TrainingDataset") + return TrainingDataset(self.datasets + other.datasets) + + def __radd__(self, other): + """ + Required for sum() to work + """ + if isinstance(other, int): + return self + else: + return self.__add__(other) + +class ScoringDataset: + """ + A collection of EPCDifferenceRecords can be combined into a ScoringDataset. + """ + + def __init__(self, datasets: List[EPCDifferenceRecord]) -> None: + self.datasets = datasets + + def __add__(self, other) -> "ScoringDataset": + if not isinstance(other, ScoringDataset): + raise TypeError("Addition can only be performed with another instance of ScoringDataset") + return ScoringDataset(self.datasets + other.datasets) + + def __radd__(self, other): + """ + Required for sum() to work + """ + if isinstance(other, int): + return self + else: + return self.__add__(other) \ No newline at end of file diff --git a/etl/epc/EPCRecord.py b/etl/epc/EPCRecord.py new file mode 100644 index 00000000..73e60483 --- /dev/null +++ b/etl/epc/EPCRecord.py @@ -0,0 +1,290 @@ + +from dataclasses import dataclass +from etl.epc.ValidationConfiguration import ( + EPCRecordValidationConfiguration, + EPCDifferenceRecordValidationConfiguration, + EPCDifferenceRecordFixedDataValidationConfiguration +) +from typing import Union, List +from etl.epc.settings import ( + RDSAP_RESPONSE, + HEAT_DEMAND_RESPONSE, + CARBON_RESPONSE, + COMPONENT_FEATURES, + EFFICIENCY_FEATURES +) + +@dataclass +class EPCRecord: + """ + Base class for a EPC record + """ + UPRN: str + WALLS_DESCRIPTION: str + FLOOR_DESCRIPTION: str + LIGHTING_DESCRIPTION: str + ROOF_DESCRIPTION: str + MAINHEAT_DESCRIPTION: str + HOTWATER_DESCRIPTION: str + MAIN_FUEL: str + MECHANICAL_VENTILATION: str + SECONDHEAT_DESCRIPTION: str + WINDOWS_DESCRIPTION: str + GLAZED_TYPE: str + MULTI_GLAZE_PROPORTION: float + LOW_ENERGY_LIGHTING: float + NUMBER_OPEN_FIREPLACES: float + MAINHEATCONT_DESCRIPTION: str + SOLAR_WATER_HEATING_FLAG: str + PHOTO_SUPPLY: float + TRANSACTION_TYPE: str + ENERGY_TARIFF: str + EXTENSION_COUNT: float + TOTAL_FLOOR_AREA: float + FLOOR_HEIGHT: float + HOT_WATER_ENERGY_EFF: str + FLOOR_ENERGY_EFF: str + WINDOWS_ENERGY_EFF: str + WALLS_ENERGY_EFF: str + SHEATING_ENERGY_EFF: str + ROOF_ENERGY_EFF: str + MAINHEAT_ENERGY_EFF: str + MAINHEATC_ENERGY_EFF: str + LIGHTING_ENERGY_EFF: str + POTENTIAL_ENERGY_EFFICIENCY: float + ENVIRONMENT_IMPACT_POTENTIAL: float + ENERGY_CONSUMPTION_POTENTIAL: float + CO2_EMISSIONS_POTENTIAL: float + LODGEMENT_DATE: str + CURRENT_ENERGY_EFFICIENCY: int + ENERGY_CONSUMPTION_CURRENT: int + CO2_EMISSIONS_CURRENT: float + + def __post_init__(self): + # We can have validation and cleaning steps for each of the fields + # self.WALLS_DESCRIPTION = 'check' + # Could also have cleaning of records if needed + self.validation_configuration = EPCRecordValidationConfiguration + + # self._field_validation() + pass + + def _field_validation(self): + """ + This method will validate each of the fields in the EPC record + """ + + for record_key, validation_config in self.validation_configuration.items(): + # Get the variable named record key from self + field_value = self.__dict__[record_key] + + if validation_config['type'] == "string": + self._validate_string(record_key, field_value, validation_config) + elif validation_config['type'] == "float": + self._validate_float(field_value, validation_config) + else: + raise ValueError(f"Validation type {validation_config['type']} not supported") + + def _validate_string(self, record_key: str, field_value: Union[str, float], validation_config: dict): + """ + Validate a string field + """ + if not isinstance(field_value, str): + raise ValueError(f"Field {record_key} has value {field_value} which is not a string") + + if 'function' in validation_config: + try: + validation_config['function'](field_value) + except: + raise ValueError(f"Field {record_key} has value {field_value} which does not pass the validation function {validation_config['function']}") + + if validation_config['acceptable_values'] is not None: + if field_value not in validation_config['acceptable_values']: + raise ValueError(f"Field {record_key} has value {field_value} which is not in the acceptable values of {validation_config['acceptable_values']}") + + def _validate_float(self, record_key: str, field_value: Union[str, float], validation_config: dict): + """ + Validate a float field + """ + if not isinstance(field_value, float): + raise ValueError(f"Field {record_key} has value {field_value} which is not a float") + + if 'function' in validation_config: + try: + validation_config['function'](field_value) + except: + raise ValueError(f"Field {record_key} has value {field_value} which does not pass the validation function {validation_config['function']}") + + if validation_config['range'] is not None: + if field_value < validation_config['range'][0] or field_value > validation_config['range'][1]: + raise ValueError(f"Field {record_key} has value {field_value} which is not in the acceptable range of {validation_config['range']}") + + def __sub__(self, other): + """ + This method will return the difference between two EPC records + """ + if not isinstance(other, EPCRecord): + raise ValueError("Can only subtract EPCRecord from EPCRecord") + + difference_record = EPCDifferenceRecord(record1=self, record2=other, auto_sort=True) + + return difference_record + + def __gt__(self, other): + """ + This method will return True if the EPC record is greater than or equal to the other + """ + if not isinstance(other, EPCRecord): + raise ValueError("Can only compare EPCRecord to EPCRecord") + + return self.__dict__[RDSAP_RESPONSE] > other.__dict__[RDSAP_RESPONSE] + + def __ge__(self, other): + """ + This method will return True if the EPC record is greater than or equal to the other + """ + if not isinstance(other, EPCRecord): + raise ValueError("Can only compare EPCRecord to EPCRecord") + + return self.__dict__[RDSAP_RESPONSE] >= other.__dict__[RDSAP_RESPONSE] + + def __lt__(self, other): + """ + This method will return True if the EPC record is greater than or equal to the other + """ + if not isinstance(other, EPCRecord): + raise ValueError("Can only compare EPCRecord to EPCRecord") + + return self.__dict__[RDSAP_RESPONSE] < other.__dict__[RDSAP_RESPONSE] + + def __le__(self, other): + """ + This method will return True if the EPC record is greater than or equal to the other + """ + if not isinstance(other, EPCRecord): + raise ValueError("Can only compare EPCRecord to EPCRecord") + + return self.__dict__[RDSAP_RESPONSE] <= other.__dict__[RDSAP_RESPONSE] + + def get(self, key: Union[str, List[str]], return_asdict: bool = False, key_suffix: str = None): + """ + This method will return the value of the key + """ + if return_asdict: + output_dict = {x: self.__dict__[x] if x in self.__dict__.keys() else None for x in key} + if key_suffix is not None: + output_dict = {f"{x}{key_suffix}": y for x, y in output_dict.items()} + return output_dict + + if isinstance(key, list): + return [self.__dict__[x] if x in self.__dict__.keys() else None for x in key] + elif isinstance(key, str): + return self.__dict__[key] if key in self.__dict__.keys() else None + + +class EPCDifferenceRecord: + """ + Base class for the difference between two EPC records + """ + + def __init__(self, record1: EPCRecord, record2: EPCRecord, auto_sort: bool = False): + """ + This method will initialise the EPCDifferenceRecord + Defaults usage is with record2 to have the higher RDSAP score + """ + self.record1 = record1 + self.record2 = record2 + self.difference_record = {} + + self.difference_validation_configuration = EPCDifferenceRecordValidationConfiguration + self.fixed_data_validation_configuration = EPCDifferenceRecordFixedDataValidationConfiguration + + if auto_sort and (self.record2 <= self.record1): + self.record1, self.record2 = self.record2, self.record1 + + self._construct_difference_record() + self._validate_difference_record() + + + + def _construct_difference_record(self): + """ + This method will construct the difference record between the two records + """ + + rdsap_change = self.record2.get(RDSAP_RESPONSE) - self.record1.get(RDSAP_RESPONSE) + heat_demand_change = self.record2.get(HEAT_DEMAND_RESPONSE) - self.record1.get(HEAT_DEMAND_RESPONSE) + carbon_change = self.record2.get(CARBON_RESPONSE) - self.record1.get(CARBON_RESPONSE) + + component_variables = COMPONENT_FEATURES + EFFICIENCY_FEATURES + ending_record = self.record2.get(component_variables + ["LODGEMENT_DATE"], return_asdict=True, key_suffix="_ENDING") + starting_record = self.record1.get(component_variables + ["LODGEMENT_DATE"], return_asdict=True, key_suffix="_STARTING") + + # TODO: DO we want to take the earliest potentials or max potentials? + self.difference_record = { + "UPRN": self.record1.get("UPRN"), + "RDSAP_CHANGE": rdsap_change, + "HEAT_DEMAND_CHANGE": heat_demand_change, + "CARBON_CHANGE": carbon_change, + "SAP_STARTING": self.record1.get(RDSAP_RESPONSE), + "SAP_ENDING": self.record2.get(RDSAP_RESPONSE), + "HEAT_DEMAND_STARTING": self.record1.get(HEAT_DEMAND_RESPONSE), + "HEAT_DEMAND_ENDING": self.record2.get(HEAT_DEMAND_RESPONSE), + "CARBON_STARTING": self.record1.get(CARBON_RESPONSE), + "CARBON_ENDING": self.record2.get(CARBON_RESPONSE), + "POTENTIAL_ENERGY_EFFICIENCY": max(self.record1.get("POTENTIAL_ENERGY_EFFICIENCY"), self.record2.get("POTENTIAL_ENERGY_EFFICIENCY")), + "ENVIRONMENT_IMPACT_POTENTIAL": max(self.record1.get("ENVIRONMENT_IMPACT_POTENTIAL"), self.record2.get("ENVIRONMENT_IMPACT_POTENTIAL")), + "ENERGY_CONSUMPTION_POTENTIAL": max(self.record1.get("ENERGY_CONSUMPTION_POTENTIAL"), self.record2.get("ENERGY_CONSUMPTION_POTENTIAL")), + "CO2_EMISSIONS_POTENTIAL": max(self.record1.get("CO2_EMISSIONS_POTENTIAL"), self.record2.get("CO2_EMISSIONS_POTENTIAL")), + **ending_record, + **starting_record + } + + def _validate_difference_record(self): + """ + This method will validate the difference record + """ + # for key, value in self.difference_record.items(): + # if key == "LODGEMENT_DATE": + # continue + # if isinstance(value, str): + # continue + # if value < 0: + # raise ValueError(f"Difference record has negative value for {key}") + pass + + def compare_fields_in_records(self, fields: List[str]): + """ + This method will compare the records, for specific fields + """ + + all_equal = True + for field in fields: + if self.record1.get(field) != self.record2.get(field): + return False + + if all_equal: + return True + + def get(self, key: str): + """ + This method will return the value of the key + """ + return self.difference_record[key] if key in self.difference_record.keys() else None + + def append_fixed_data(self, fixed_data: dict): + """ + This method will append fixed data to the difference record + """ + self._validate_fixed_data(fixed_data) + self.difference_record.update(fixed_data) + + def _validate_fixed_data(self, fixed_data: dict): + """ + This method will validate the fixed data + """ + + # Can have more sophisticated checks here + # self.fixed_data_validataion_configuration + + pass diff --git a/etl/epc/ValidationConfiguration.py b/etl/epc/ValidationConfiguration.py index 5d9c910d..fdca024a 100644 --- a/etl/epc/ValidationConfiguration.py +++ b/etl/epc/ValidationConfiguration.py @@ -21,3 +21,37 @@ EPCRecordValidationConfiguration = { "range": [0, 100] } } + +EPCDifferenceRecordValidationConfiguration = { +} + +EPCDifferenceRecordFixedDataValidationConfiguration = { + "PROPERTY_TYPE": { + "type": "string", + "acceptable_values": ["House", "Flat", "Bungalow", "Maisonette", "Park home", "Other"] + }, + "BUILT_FORM": { + "type": "string", + "acceptable_values": ["Detached", "Semi-Detached", "End-Terrace", "Mid-Terrace", "Enclosed Mid-Terrace", "Enclosed End-Terrace", "Enclosed Detached", "Not applicable"] + }, + "CONSITUENCY": { + "type": "string", + "acceptable_values": ["England", "Wales", "Scotland", "Northern Ireland"] + }, + "NUMBER_HABITABLE_ROOMS": { + "type": "integer", + "range": [0, 100] + }, + "NUMBER_HEATED_ROOMS": { + "type": "integer", + "range": [0, 100] + }, + "FIXED_LIGHTING_OUTLETS_COUNT": { + "type": "integer", + "range": [0, 100] + }, + "CONSTRUCTION_AGE_BAND": { + "type": "string", + "acceptable_values": [] + } +} \ No newline at end of file diff --git a/etl/epc/property_change_app.py b/etl/epc/property_change_app.py index ecc79ba3..da17fe05 100644 --- a/etl/epc/property_change_app.py +++ b/etl/epc/property_change_app.py @@ -18,6 +18,7 @@ from etl.epc.settings import ( MINIMUM_FLOOR_HEIGHT ) from etl.epc.DataProcessor import DataProcessor +from etl.epc.EPCRecord import EPCRecord, EPCDifferenceRecord from utils.s3 import save_dataframe_to_s3_parquet, read_from_s3 from recommendations.rdsap_tables import england_wales_age_band_lookup from recommendations.recommendation_utils import ( @@ -223,6 +224,7 @@ def make_uvalues(df): df["row_index"] = df.index uvalues = [] + # TODO: iterrows is the slowest way to do this, we should use a vectorised approach or itertuples for _, x in df.iterrows(): uprn = x["UPRN"] @@ -379,285 +381,23 @@ def make_uvalues(df): return df -def compare_records(earliest_record: pd.Series, latest_record: pd.Series, columns: list): - """ - For a list of columns, check if the earliest and latest record are the same - If they are the same, we indicate this, because we have example of SAP scores changing - without any feature changes - :param earliest_record: pd.Series - :param latest_record: pd.Series - :param columns: list of columns to compare - :return: boolean indicating whether or not all features are the same - """ +# def compare_records(earliest_record: pd.Series, latest_record: pd.Series, columns: list): +# """ +# For a list of columns, check if the earliest and latest record are the same +# If they are the same, we indicate this, because we have example of SAP scores changing +# without any feature changes +# :param earliest_record: pd.Series +# :param latest_record: pd.Series +# :param columns: list of columns to compare +# :return: boolean indicating whether or not all features are the same +# """ - all_equal = True - for col in columns: - if earliest_record[col] != latest_record[col]: - return False - if all_equal: - return True - -from dataclasses import dataclass -from etl.epc.ValidationConfiguration import EPCRecordValidationConfiguration -from typing import Union, List - -@dataclass -class EPCRecord: - """ - Base class for a EPC record - """ - UPRN: str - WALLS_DESCRIPTION: str - FLOOR_DESCRIPTION: str - LIGHTING_DESCRIPTION: str - ROOF_DESCRIPTION: str - MAINHEAT_DESCRIPTION: str - HOTWATER_DESCRIPTION: str - MAIN_FUEL: str - MECHANICAL_VENTILATION: str - SECONDHEAT_DESCRIPTION: str - WINDOWS_DESCRIPTION: str - GLAZED_TYPE: str - MULTI_GLAZE_PROPORTION: float - LOW_ENERGY_LIGHTING: float - NUMBER_OPEN_FIREPLACES: float - MAINHEATCONT_DESCRIPTION: str - SOLAR_WATER_HEATING_FLAG: str - PHOTO_SUPPLY: float - TRANSACTION_TYPE: str - ENERGY_TARIFF: str - EXTENSION_COUNT: float - TOTAL_FLOOR_AREA: float - FLOOR_HEIGHT: float - HOT_WATER_ENERGY_EFF: str - FLOOR_ENERGY_EFF: str - WINDOWS_ENERGY_EFF: str - WALLS_ENERGY_EFF: str - SHEATING_ENERGY_EFF: str - ROOF_ENERGY_EFF: str - MAINHEAT_ENERGY_EFF: str - MAINHEATC_ENERGY_EFF: str - LIGHTING_ENERGY_EFF: str - POTENTIAL_ENERGY_EFFICIENCY: float - ENVIRONMENT_IMPACT_POTENTIAL: float - ENERGY_CONSUMPTION_POTENTIAL: float - CO2_EMISSIONS_POTENTIAL: float - LODGEMENT_DATE: str - CURRENT_ENERGY_EFFICIENCY: int - ENERGY_CONSUMPTION_CURRENT: int - CO2_EMISSIONS_CURRENT: float - - def __post_init__(self): - # We can have validation and cleaning steps for each of the fields - # self.WALLS_DESCRIPTION = 'check' - # Could also have cleaning of records if needed - # self._field_validation() - pass - - def _field_validation(self): - """ - This method will validate each of the fields in the EPC record - """ - self.validation_configuration = EPCRecordValidationConfiguration - - for record_key, validation_config in self.validation_configuration.items(): - # Get the variable named record key from self - field_value = self.__dict__[record_key] - - if validation_config['type'] == "string": - self._validate_string(record_key, field_value, validation_config) - elif validation_config['type'] == "float": - self._validate_float(field_value, validation_config) - else: - raise ValueError(f"Validation type {validation_config['type']} not supported") - - def _validate_string(self, record_key: str, field_value: Union[str, float], validation_config: dict): - """ - Validate a string field - """ - if not isinstance(field_value, str): - raise ValueError(f"Field {record_key} has value {field_value} which is not a string") - - if 'function' in validation_config: - try: - validation_config['function'](field_value) - except: - raise ValueError(f"Field {record_key} has value {field_value} which does not pass the validation function {validation_config['function']}") - - if validation_config['acceptable_values'] is not None: - if field_value not in validation_config['acceptable_values']: - raise ValueError(f"Field {record_key} has value {field_value} which is not in the acceptable values of {validation_config['acceptable_values']}") - - def _validate_float(self, record_key: str, field_value: Union[str, float], validation_config: dict): - """ - Validate a float field - """ - if not isinstance(field_value, float): - raise ValueError(f"Field {record_key} has value {field_value} which is not a float") - - if 'function' in validation_config: - try: - validation_config['function'](field_value) - except: - raise ValueError(f"Field {record_key} has value {field_value} which does not pass the validation function {validation_config['function']}") - - if validation_config['range'] is not None: - if field_value < validation_config['range'][0] or field_value > validation_config['range'][1]: - raise ValueError(f"Field {record_key} has value {field_value} which is not in the acceptable range of {validation_config['range']}") - - def __sub__(self, other): - """ - This method will return the difference between two EPC records - """ - if not isinstance(other, EPCRecord): - raise ValueError("Can only subtract EPCRecord from EPCRecord") - - difference_record = EPCDifferenceRecord(record1=self, record2=other, auto_sort=True) - - return difference_record - - def __gt__(self, other): - """ - This method will return True if the EPC record is greater than or equal to the other - """ - if not isinstance(other, EPCRecord): - raise ValueError("Can only compare EPCRecord to EPCRecord") - - return self.__dict__[RDSAP_RESPONSE] > other.__dict__[RDSAP_RESPONSE] - - def __ge__(self, other): - """ - This method will return True if the EPC record is greater than or equal to the other - """ - if not isinstance(other, EPCRecord): - raise ValueError("Can only compare EPCRecord to EPCRecord") - - return self.__dict__[RDSAP_RESPONSE] >= other.__dict__[RDSAP_RESPONSE] - - def __lt__(self, other): - """ - This method will return True if the EPC record is greater than or equal to the other - """ - if not isinstance(other, EPCRecord): - raise ValueError("Can only compare EPCRecord to EPCRecord") - - return self.__dict__[RDSAP_RESPONSE] < other.__dict__[RDSAP_RESPONSE] - - def __le__(self, other): - """ - This method will return True if the EPC record is greater than or equal to the other - """ - if not isinstance(other, EPCRecord): - raise ValueError("Can only compare EPCRecord to EPCRecord") - - return self.__dict__[RDSAP_RESPONSE] <= other.__dict__[RDSAP_RESPONSE] - - def get(self, key: Union[str, List[str]], return_asdict: bool = False, key_suffix: str = None): - """ - This method will return the value of the key - """ - if return_asdict: - output_dict = {x: self.__dict__[x] if x in self.__dict__.keys() else None for x in key} - if key_suffix is not None: - output_dict = {f"{x}_{key_suffix}": y for x, y in output_dict.items()} - return output_dict - - if isinstance(key, list): - return [self.__dict__[x] if x in self.__dict__.keys() else None for x in key] - elif isinstance(key, str): - return self.__dict__[key] if key in self.__dict__.keys() else None - - -class EPCDifferenceRecord: - """ - Base class for the difference between two EPC records - """ - - def __init__(self, record1: EPCRecord, record2: EPCRecord, auto_sort: bool = False): - """ - This method will initialise the EPCDifferenceRecord - Defaults usage is with record2 to have the higher RDSAP score - """ - self.record1 = record1 - self.record2 = record2 - self.difference_record = {} - - if auto_sort and (self.record2 <= self.record1): - self.record1, self.record2 = self.record2, self.record1 - - self._construct_difference_record() - self._validate_difference_record() - - def _construct_difference_record(self): - """ - This method will construct the difference record between the two records - """ - - rdsap_change = self.record2.get(RDSAP_RESPONSE) - self.record1.get(RDSAP_RESPONSE) - heat_demand_change = self.record2.get(HEAT_DEMAND_RESPONSE) - self.record1.get(HEAT_DEMAND_RESPONSE) - carbon_change = self.record2.get(CARBON_RESPONSE) - self.record1.get(CARBON_RESPONSE) - - component_variables = COMPONENT_FEATURES + EFFICIENCY_FEATURES - ending_record = self.record2.get(component_variables + ["LODGEMENT_DATE"], return_asdict=True, key_suffix="_ENDING") - starting_record = self.record1.get(component_variables + ["LODGEMENT_DATE"], return_asdict=True, key_suffix="_STARTING") - - # TODO: DO we want to take the earliest potentials or max potentials? - self.difference_record = { - "UPRN": self.record1.get("UPRN"), - "RDSAP_CHANGE": rdsap_change, - "HEAT_DEMAND_CHANGE": heat_demand_change, - "CARBON_CHANGE": carbon_change, - "SAP_STARTING": self.record1.get(RDSAP_RESPONSE), - "SAP_ENDING": self.record2.get(RDSAP_RESPONSE), - "HEAT_DEMAND_STARTING": self.record1.get(HEAT_DEMAND_RESPONSE), - "HEAT_DEMAND_ENDING": self.record2.get(HEAT_DEMAND_RESPONSE), - "CARBON_STARTING": self.record1.get(CARBON_RESPONSE), - "CARBON_ENDING": self.record2.get(CARBON_RESPONSE), - "POTENTIAL_ENERGY_EFFICIENCY": max(self.record1.get("POTENTIAL_ENERGY_EFFICIENCY"), self.record2.get("POTENTIAL_ENERGY_EFFICIENCY")), - "ENVIRONMENT_IMPACT_POTENTIAL": max(self.record1.get("ENVIRONMENT_IMPACT_POTENTIAL"), self.record2.get("ENVIRONMENT_IMPACT_POTENTIAL")), - "ENERGY_CONSUMPTION_POTENTIAL": max(self.record1.get("ENERGY_CONSUMPTION_POTENTIAL"), self.record2.get("ENERGY_CONSUMPTION_POTENTIAL")), - "CO2_EMISSIONS_POTENTIAL": max(self.record1.get("CO2_EMISSIONS_POTENTIAL"), self.record2.get("CO2_EMISSIONS_POTENTIAL")), - **ending_record, - **starting_record - } - - def _validate_difference_record(self): - """ - This method will validate the difference record - """ - # for key, value in self.difference_record.items(): - # if key == "LODGEMENT_DATE": - # continue - # if isinstance(value, str): - # continue - # if value < 0: - # raise ValueError(f"Difference record has negative value for {key}") - pass - - def compare_fields_in_records(self, fields: List[str]): - """ - This method will compare the records, for specific fields - """ - - all_equal = True - for field in fields: - if self.record1.get(field) != self.record2.get(field): - return False - - if all_equal: - return True - - def get(self, key: str): - """ - This method will return the value of the key - """ - return self.difference_record[key] if key in self.difference_record.keys() else None - - def append_fixed_data(self, fixed_data: dict): - """ - This method will append fixed data to the difference record - """ - self.difference_record.update(fixed_data) +# all_equal = True +# for col in columns: +# if earliest_record[col] != latest_record[col]: +# return False +# if all_equal: +# return True def app(): # Get all the files in the directory @@ -686,9 +426,9 @@ def app(): cleaning_dataset.append(data_processor.cleaning_averages) - data_by_urpn = [] + data_by_uprn = [] for uprn, property_data in df.groupby("UPRN", observed=True): - asdasd + # Fixed features - these are property attributes that shouldn't change over time fixed_data = {} @@ -748,102 +488,109 @@ def app(): difference_record.append_fixed_data(fixed_data) - property_model_data.append(difference_record.difference_record) + property_model_data.append(difference_record) - for idx in range(0, property_data.shape[0] - 1): + # property_model_data.append(difference_record.difference_record) + + # for idx in range(0, property_data.shape[0] - 1): - if idx >= property_data.shape[0] - 1: - break + # if idx >= property_data.shape[0] - 1: + # break - earliest_record = variable_data.iloc[idx] - latest_record = variable_data.iloc[idx + 1] + # earliest_record = variable_data.iloc[idx] + # latest_record = variable_data.iloc[idx + 1] - # Check if the sap gets better or worse - gets_better = earliest_record[RDSAP_RESPONSE] <= latest_record[RDSAP_RESPONSE] + # # Check if the sap gets better or worse + # gets_better = earliest_record[RDSAP_RESPONSE] <= latest_record[RDSAP_RESPONSE] - component_variables = COMPONENT_FEATURES + EFFICIENCY_FEATURES + # component_variables = COMPONENT_FEATURES + EFFICIENCY_FEATURES - if gets_better: - starting_sap = earliest_record[RDSAP_RESPONSE] - starting_heat_demand = earliest_record[HEAT_DEMAND_RESPONSE] - starting_carbon = earliest_record[CARBON_RESPONSE] + # if gets_better: + # starting_sap = earliest_record[RDSAP_RESPONSE] + # starting_heat_demand = earliest_record[HEAT_DEMAND_RESPONSE] + # starting_carbon = earliest_record[CARBON_RESPONSE] - ending_sap = latest_record[RDSAP_RESPONSE] - ending_heat_demand = latest_record[HEAT_DEMAND_RESPONSE] - ending_carbon = latest_record[CARBON_RESPONSE] + # ending_sap = latest_record[RDSAP_RESPONSE] + # ending_heat_demand = latest_record[HEAT_DEMAND_RESPONSE] + # ending_carbon = latest_record[CARBON_RESPONSE] - rdsap_change = latest_record[RDSAP_RESPONSE] - starting_sap - heat_demand_change = latest_record[HEAT_DEMAND_RESPONSE] - starting_heat_demand - carbon_change = latest_record[CARBON_RESPONSE] - starting_carbon + # rdsap_change = latest_record[RDSAP_RESPONSE] - starting_sap + # heat_demand_change = latest_record[HEAT_DEMAND_RESPONSE] - starting_heat_demand + # carbon_change = latest_record[CARBON_RESPONSE] - starting_carbon - starting_record = earliest_record[component_variables + ["LODGEMENT_DATE"]].add_suffix("_STARTING") - ending_record = latest_record[component_variables + ["LODGEMENT_DATE"]].add_suffix("_ENDING") - else: - starting_sap = latest_record[RDSAP_RESPONSE] - starting_heat_demand = latest_record[HEAT_DEMAND_RESPONSE] - starting_carbon = latest_record[CARBON_RESPONSE] + # starting_record = earliest_record[component_variables + ["LODGEMENT_DATE"]].add_suffix("_STARTING") + # ending_record = latest_record[component_variables + ["LODGEMENT_DATE"]].add_suffix("_ENDING") + # else: + # starting_sap = latest_record[RDSAP_RESPONSE] + # starting_heat_demand = latest_record[HEAT_DEMAND_RESPONSE] + # starting_carbon = latest_record[CARBON_RESPONSE] - ending_sap = earliest_record[RDSAP_RESPONSE] - ending_heat_demand = earliest_record[HEAT_DEMAND_RESPONSE] - ending_carbon = earliest_record[CARBON_RESPONSE] + # ending_sap = earliest_record[RDSAP_RESPONSE] + # ending_heat_demand = earliest_record[HEAT_DEMAND_RESPONSE] + # ending_carbon = earliest_record[CARBON_RESPONSE] - rdsap_change = earliest_record[RDSAP_RESPONSE] - starting_sap - heat_demand_change = earliest_record[HEAT_DEMAND_RESPONSE] - starting_heat_demand - carbon_change = earliest_record[CARBON_RESPONSE] - starting_carbon + # rdsap_change = earliest_record[RDSAP_RESPONSE] - starting_sap + # heat_demand_change = earliest_record[HEAT_DEMAND_RESPONSE] - starting_heat_demand + # carbon_change = earliest_record[CARBON_RESPONSE] - starting_carbon - starting_record = latest_record[component_variables + ["LODGEMENT_DATE"]].add_suffix("_STARTING") - ending_record = earliest_record[component_variables + ["LODGEMENT_DATE"]].add_suffix("_ENDING") + # starting_record = latest_record[component_variables + ["LODGEMENT_DATE"]].add_suffix("_STARTING") + # ending_record = earliest_record[component_variables + ["LODGEMENT_DATE"]].add_suffix("_ENDING") - if rdsap_change == 0: - continue + # if rdsap_change == 0: + # continue - all_equal = compare_records( - earliest_record=earliest_record, - latest_record=latest_record, - columns=CORE_COMPONENT_FEATURES - ) + # all_equal = compare_records( + # earliest_record=earliest_record, + # latest_record=latest_record, + # columns=CORE_COMPONENT_FEATURES + # ) - if all_equal: - # Keep track of this for the moment so we can analyse - all_equal_rows.append({"uprn": uprn, "directory_name": directory.name}) - continue - asdasd - features = pd.concat([starting_record, ending_record]) + # if all_equal: + # # Keep track of this for the moment so we can analyse + # all_equal_rows.append({"uprn": uprn, "directory_name": directory.name}) + # continue + # asdasd + # features = pd.concat([starting_record, ending_record]) - property_model_data.append( - { - "UPRN": uprn, - "RDSAP_CHANGE": rdsap_change, - "HEAT_DEMAND_CHANGE": heat_demand_change, - "CARBON_CHANGE": carbon_change, - "SAP_STARTING": starting_sap, - "SAP_ENDING": ending_sap, - "HEAT_DEMAND_STARTING": starting_heat_demand, - "HEAT_DEMAND_ENDING": ending_heat_demand, - "CARBON_STARTING": starting_carbon, - "CARBON_ENDING": ending_carbon, - "POTENTIAL_ENERGY_EFFICIENCY": earliest_record["POTENTIAL_ENERGY_EFFICIENCY"], - "ENVIRONMENT_IMPACT_POTENTIAL": earliest_record["ENVIRONMENT_IMPACT_POTENTIAL"], - "ENERGY_CONSUMPTION_POTENTIAL": earliest_record["ENERGY_CONSUMPTION_POTENTIAL"], - "CO2_EMISSIONS_POTENTIAL": earliest_record["CO2_EMISSIONS_POTENTIAL"], - **fixed_data, - **features.to_dict(), - } - ) + # property_model_data.append( + # { + # "UPRN": uprn, + # "RDSAP_CHANGE": rdsap_change, + # "HEAT_DEMAND_CHANGE": heat_demand_change, + # "CARBON_CHANGE": carbon_change, + # "SAP_STARTING": starting_sap, + # "SAP_ENDING": ending_sap, + # "HEAT_DEMAND_STARTING": starting_heat_demand, + # "HEAT_DEMAND_ENDING": ending_heat_demand, + # "CARBON_STARTING": starting_carbon, + # "CARBON_ENDING": ending_carbon, + # "POTENTIAL_ENERGY_EFFICIENCY": earliest_record["POTENTIAL_ENERGY_EFFICIENCY"], + # "ENVIRONMENT_IMPACT_POTENTIAL": earliest_record["ENVIRONMENT_IMPACT_POTENTIAL"], + # "ENERGY_CONSUMPTION_POTENTIAL": earliest_record["ENERGY_CONSUMPTION_POTENTIAL"], + # "CO2_EMISSIONS_POTENTIAL": earliest_record["CO2_EMISSIONS_POTENTIAL"], + # **fixed_data, + # **features.to_dict(), + # } + # ) - data_by_urpn.extend(property_model_data) + # data_by_urpn.extend(property_model_data) + data_by_uprn.extend(property_model_data) + + from etl.epc.Dataset import TrainingDataset + constituency_data = TrainingDataset(datasets=data_by_uprn) data_by_urpn_df = pd.DataFrame(data_by_urpn) - data_by_urpn_df["DAYS_TO_STARTING"] = DataProcessor.calculate_days_to( - data_by_urpn_df["LODGEMENT_DATE_STARTING"] - ) + # # TODO: can we move this into the epc record? + # data_by_urpn_df["DAYS_TO_STARTING"] = DataProcessor.calculate_days_to( + # data_by_urpn_df["LODGEMENT_DATE_STARTING"] + # ) - data_by_urpn_df["DAYS_TO_ENDING"] = DataProcessor.calculate_days_to( - data_by_urpn_df["LODGEMENT_DATE_ENDING"] - ) + # data_by_urpn_df["DAYS_TO_ENDING"] = DataProcessor.calculate_days_to( + # data_by_urpn_df["LODGEMENT_DATE_ENDING"] + # ) - data_by_urpn_df = data_by_urpn_df.drop(columns=["LODGEMENT_DATE_STARTING", "LODGEMENT_DATE_ENDING"]) + # data_by_urpn_df = data_by_urpn_df.drop(columns=["LODGEMENT_DATE_STARTING", "LODGEMENT_DATE_ENDING"]) data_by_urpn_df = DataProcessor.clean_efficiency_variables(data_by_urpn_df) @@ -889,6 +636,7 @@ def app(): output = pd.concat(dataset) + # TODO: move into difference record # Remove any records that have huge swings in their floor area output["tfa_diff_abs"] = abs(output["TOTAL_FLOOR_AREA_ENDING"] - output["TOTAL_FLOOR_AREA_STARTING"]) output["tfa_diff_prop"] = output["tfa_diff_abs"] / output["TOTAL_FLOOR_AREA_STARTING"] From 7a2c2fff154dcaa60668d33a3dae6a5841903aa5 Mon Sep 17 00:00:00 2001 From: Michael Duong Date: Wed, 6 Dec 2023 17:23:20 +0000 Subject: [PATCH 051/526] few more steps --- etl/epc/Dataset.py | 38 +++++++++++++++++++++++++++------- etl/epc/property_change_app.py | 14 ++++++------- 2 files changed, 38 insertions(+), 14 deletions(-) diff --git a/etl/epc/Dataset.py b/etl/epc/Dataset.py index 8379546f..66715083 100644 --- a/etl/epc/Dataset.py +++ b/etl/epc/Dataset.py @@ -14,7 +14,33 @@ class TrainingDataset: self._feature_generation() self._drop_features() self._clean_dataframe() - self._clean_efficiency_variables(self.df) + self._clean_efficiency_variables() + self._null_validation(information="Clean Efficiency Variables") + self._process_and_prune() + self._clean_missing_values() + self._null_validation(information="Clean Missing Values") + + + def _clean_missing_values(self, ignore_cols=None): + missings = pd.isnull(self.df).sum() + missings = missings[missings > 0] + + if ignore_cols: + missings = missings[~missings.index.isin(ignore_cols)] + + for col in missings.index: + unique_values = self.df[col].unique() + if True in unique_values or False in unique_values: + self.df[col] = self.df[col].fillna(False) + if "none" in unique_values: + self.df[col] = self.df[col].fillna("none") + else: + self.df[col] = self.df[col].fillna("Unknown") + + + def _null_validation(self, information: str = ""): + if pd.isnull(self.df).sum().sum(): + raise ValueError(f"Null values found in dataset, after step {information}") def _drop_features(self): """ @@ -30,8 +56,7 @@ class TrainingDataset: self.df["DAYS_TO_STARTING"] = self._calculate_days_to(self.df["LODGEMENT_DATE_STARTING"]) self.df["DAYS_TO_ENDING"] = self._calculate_days_to(self.df["LODGEMENT_DATE_ENDING"]) - @staticmethod - def _clean_efficiency_variables(df): + def _clean_efficiency_variables(self, df): """ These is scope to clean this by the model per corresponding description. @@ -43,20 +68,19 @@ class TrainingDataset: :return: """ - missings = pd.isnull(df).sum() + missings = pd.isnull(self.df).sum() missings = missings[missings >= 1] if len(missings) == 0: - return df + return # Make sure they are all efficiency columns if any(~missings.index.str.contains("ENERGY_EFF")): raise ValueError("Non efficiency columns are missing") for m in missings.index: - df[m] = df[m].fillna("NO_RATING") + self.df[m] = self.df[m].fillna("NO_RATING") - return df @staticmethod def _calculate_days_to(lodgement_date): diff --git a/etl/epc/property_change_app.py b/etl/epc/property_change_app.py index da17fe05..14a1bfd2 100644 --- a/etl/epc/property_change_app.py +++ b/etl/epc/property_change_app.py @@ -579,7 +579,7 @@ def app(): from etl.epc.Dataset import TrainingDataset constituency_data = TrainingDataset(datasets=data_by_uprn) - data_by_urpn_df = pd.DataFrame(data_by_urpn) + # data_by_urpn_df = pd.DataFrame(data_by_urpn) # # TODO: can we move this into the epc record? # data_by_urpn_df["DAYS_TO_STARTING"] = DataProcessor.calculate_days_to( @@ -592,7 +592,7 @@ def app(): # data_by_urpn_df = data_by_urpn_df.drop(columns=["LODGEMENT_DATE_STARTING", "LODGEMENT_DATE_ENDING"]) - data_by_urpn_df = DataProcessor.clean_efficiency_variables(data_by_urpn_df) + # data_by_urpn_df = DataProcessor.clean_efficiency_variables(data_by_urpn_df) # We look for key building fabric features that have changed from one EPC to the next. # if, for example, we see that a home has gone from being a cavity wall to a solid wall, we @@ -600,8 +600,8 @@ def app(): # is low # We also replace descriptions with their cleaned variants - if pd.isnull(data_by_urpn_df).sum().sum(): - raise ValueError("Null values found in dataset") + # if pd.isnull(data_by_urpn_df).sum().sum(): + # raise ValueError("Null values found in dataset") data_by_urpn_df = process_and_prune_desriptions(data_by_urpn_df, cleaned_lookup) @@ -617,10 +617,10 @@ def app(): # Those nulls should be False. clean_missings_after_description_process handles this but shouldn't # need to - data_by_urpn_df = DataProcessor.clean_missings_after_description_process(data_by_urpn_df) + # data_by_urpn_df = DataProcessor.clean_missings_after_description_process(data_by_urpn_df) - if pd.isnull(data_by_urpn_df).sum().sum(): - raise ValueError("Null values found in dataset after process_and_prune_desriptions") + # if pd.isnull(data_by_urpn_df).sum().sum(): + # raise ValueError("Null values found in dataset after process_and_prune_desriptions") dataset.append(data_by_urpn_df) From 8402088b3f0a50106af9d80f91f41c3f700dbc86 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Thu, 7 Dec 2023 11:39:41 +0000 Subject: [PATCH 052/526] started measure suitability class --- backend/SearchEpc.py | 43 +++++++++++++++++++++++++ etl/eligibility/MeasureSuitibility.py | 20 ++++++++++++ etl/eligibility/ha_15_32/app.py | 45 +++++++++++++++++++++++++++ 3 files changed, 108 insertions(+) create mode 100644 etl/eligibility/MeasureSuitibility.py diff --git a/backend/SearchEpc.py b/backend/SearchEpc.py index 26682044..3bd2c84e 100644 --- a/backend/SearchEpc.py +++ b/backend/SearchEpc.py @@ -2,6 +2,7 @@ import os import time from epc_api.client import EpcClient from utils.logger import setup_logger +from typing import List logger = setup_logger() @@ -105,3 +106,45 @@ class SearchEpc: "message": "Could not retrieve EPC data", "error": str(e) } + + def retrieve(self): + + """ + Given a successful search, this method will format the data and return it + :return: + """ + + if self.data is None: + raise ValueError("data is missing, run search first") + + rows = self.data["rows"] + + # We perform some checks on the rows + # Firstly, we should only have 1 urpn so if we have multiple, we'll need to filter down the + # property further + uprns = {r["uprn"] for r in rows} + + if len(uprns) != 1: + raise NotImplementedError("More than one unique UPRN, need to handle this case") + + # We now check for a full sap epc: + full_sap_epc = [r for r in rows if r["transaction-type"] == "new dwelling"] + full_sap_epc = full_sap_epc[0] if full_sap_epc else {} + + # Finally, we identify the newest epc and the rest, and then return + newest_epc, older_epcs = self.filter_newest_epc(list_of_epcs=rows) + + return newest_epc, older_epcs + + @staticmethod + def filter_newest_epc(list_of_epcs: List): + newest_response = [ + r for r in list_of_epcs if + r["lodgement-datetime"] == max([x["lodgement-datetime"] for x in list_of_epcs]) + ] + if len(newest_response) > 1: + raise Exception("More than one result found for this address - investigate me") + + older_epcs = [epc for epc in ["rows"] if epc["lmk-key"] != newest_response[0]["lmk-key"]] + + return newest_response[0], older_epcs diff --git a/etl/eligibility/MeasureSuitibility.py b/etl/eligibility/MeasureSuitibility.py new file mode 100644 index 00000000..a9368f67 --- /dev/null +++ b/etl/eligibility/MeasureSuitibility.py @@ -0,0 +1,20 @@ +class MeasureSuitibility: + """ + Given the epc data about a property, this class holds the logic for determining if the home + is eligible for a specific retrofit measure. + + For example, this could be whether the loft has insulation below a standardised threshold, or + if it has an empty cavity + """ + + # If the loft has less than 100mm of insulation, we classify the home has needing loft insulation + LOFT_INSULATION_THRESHOLD = 100 + + def __init__(self, epc, cleaned): + self.epc = epc + self.cleaned = cleaned + + walls_description = self.epc["walls-description"] + # Get the cleaned version of the description + + # def loft_insulation(self): diff --git a/etl/eligibility/ha_15_32/app.py b/etl/eligibility/ha_15_32/app.py index d037d610..34204aad 100644 --- a/etl/eligibility/ha_15_32/app.py +++ b/etl/eligibility/ha_15_32/app.py @@ -4,11 +4,15 @@ used by the Warmfront team, to identify which properties are eligible for ECO4 a work is being done in December 2023, prior to completion of acquisition """ from pathlib import Path +from tqdm import tqdm import pandas as pd import numpy as np +import msgpack from utils.logger import setup_logger +from utils.s3 import read_from_s3 from dotenv import load_dotenv from backend.SearchEpc import SearchEpc +from backend.Property import Property ENV_FILE = Path(__file__).parent / "etl" / "eligibility" / "ha_15_32" / ".env" @@ -321,3 +325,44 @@ def app(): ha32, _ = marge_ha_32(asset_list=ha32_asset_list, identified_addresses=ha32_identified_addresses) ha15, _ = merge_ha_15(asset_list=ha15_asset_list, identified_addresses=ha15_identified_addresses) + + ha32["row_id"] = ["h32" + str(i) for i in range(0, len(ha32))] + ha15["row_id"] = ["h15" + str(i) for i in range(0, len(ha15))] + + cleaned = read_from_s3( + s3_file_name="cleaned_epc_data/cleaned.bson", + bucket_name="retrofit-data-dev" + ) + cleaned = msgpack.unpackb(cleaned, raw=False) + + # We want to retrieve EPCs for every single property + + ha32_scoring_data = [] + for _, house in tqdm(ha32.iterrows(), total=len(ha32)): + searcher = SearchEpc( + address1=" ".join([house["No."], house["Address"]]), + postcode=house["Postcode"] + ) + + searcher.search() + + newest_epc, older_epcs = searcher.retrieve() + # We also want to get the penultimate epc + penultimate_epc, _ = searcher.filter_newest_epc(older_epcs) + + from etl.eligibility.MeasureSuitibility import MeasureSuitibility + suitability = MeasureSuitibility( + epc=newest_epc, cleaned=cleaned + ) + + from pprint import pprint + len(searcher.data["rows"]) + + # TODO: Integegrate SearchEPC into the Property class + p = Property( + id=house["row_id"], + postcode=house["postcode"], + address1=house["address1"], + epc_client=None, + data=searcher.data + ) From e1c066ea8ded06ebf365e3db3da6e17dfc0c11cf Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Thu, 7 Dec 2023 13:04:15 +0000 Subject: [PATCH 053/526] Pulling together ha15 ha 32 scoring pipeline --- .idea/Model.iml | 2 +- .idea/misc.xml | 2 +- backend/SearchEpc.py | 10 ++- etl/eligibility/MeasureSuitibility.py | 69 +++++++++++++++++- etl/eligibility/ha_15_32/app.py | 85 ++++++++++++++++------- etl/eligibility/ha_15_32/requirements.txt | 6 ++ 6 files changed, 142 insertions(+), 32 deletions(-) diff --git a/.idea/Model.iml b/.idea/Model.iml index b0f9c00d..3a3ec5a2 100644 --- a/.idea/Model.iml +++ b/.idea/Model.iml @@ -7,7 +7,7 @@ - + diff --git a/.idea/misc.xml b/.idea/misc.xml index 1122b380..605a6457 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -3,7 +3,7 @@ - + diff --git a/backend/SearchEpc.py b/backend/SearchEpc.py index 3bd2c84e..ff603cae 100644 --- a/backend/SearchEpc.py +++ b/backend/SearchEpc.py @@ -134,7 +134,7 @@ class SearchEpc: # Finally, we identify the newest epc and the rest, and then return newest_epc, older_epcs = self.filter_newest_epc(list_of_epcs=rows) - return newest_epc, older_epcs + return newest_epc, older_epcs, full_sap_epc @staticmethod def filter_newest_epc(list_of_epcs: List): @@ -142,9 +142,13 @@ class SearchEpc: r for r in list_of_epcs if r["lodgement-datetime"] == max([x["lodgement-datetime"] for x in list_of_epcs]) ] - if len(newest_response) > 1: + + if not newest_response: + return {}, [] + + if len(newest_response) != 1: raise Exception("More than one result found for this address - investigate me") - older_epcs = [epc for epc in ["rows"] if epc["lmk-key"] != newest_response[0]["lmk-key"]] + older_epcs = [epc for epc in list_of_epcs if epc["lmk-key"] != newest_response[0]["lmk-key"]] return newest_response[0], older_epcs diff --git a/etl/eligibility/MeasureSuitibility.py b/etl/eligibility/MeasureSuitibility.py index a9368f67..54deec4d 100644 --- a/etl/eligibility/MeasureSuitibility.py +++ b/etl/eligibility/MeasureSuitibility.py @@ -1,3 +1,8 @@ +from recommendations.recommendation_utils import convert_thickness_to_numeric +from etl.epc_clean.epc_attributes.RoofAttributes import RoofAttributes +from etl.epc_clean.epc_attributes.WallAttributes import WallAttributes + + class MeasureSuitibility: """ Given the epc data about a property, this class holds the logic for determining if the home @@ -14,7 +19,65 @@ class MeasureSuitibility: self.epc = epc self.cleaned = cleaned - walls_description = self.epc["walls-description"] - # Get the cleaned version of the description + self.walls = self.parse_fabric("walls-description") + self.roof = self.parse_fabric("roof-description") - # def loft_insulation(self): + def parse_fabric(self, key): + + if "thermal transmittance" in self.epc[key]: + if key == "walls-description": + return WallAttributes(self.epc["walls-description"]).process() + + if key == "roof-description": + return RoofAttributes(self.epc["roof-description"]).process() + + raise ValueError("Invalid Key") + + # Get the cleaned version of the description + return [ + data for data in self.cleaned[key] if + data["original_description"] == self.epc[key] + ][0] + + def loft_insulation(self, loft_thickness_threshold: int = None): + """ + Given the description of roof, this function determines whether or not the property is suitable for loft + insulation. A loft existing insulation with a thickness below loft_thickness_threshold, is deemed to + be suitable for loft insulation + :param loft_thickness_threshold: Integer, Optional. If provided, any loft found with insulation lower than + this thickness is deemed to be suitable for loft insulation. If this + parameter is not provided, this method will default to the variable specified + in LOFT_INSULATION_THRESHOLD + """ + + loft_thickness_threshold = ( + self.LOFT_INSULATION_THRESHOLD if loft_thickness_threshold is None else loft_thickness_threshold + ) + + # We firstly check if the roof is a loft + is_loft = self.roof["is_pitched"] and (not self.roof["is_roof_room"]) + + if not is_loft: + return { + "suitablility": False, + "thickness": None + } + + # If it is a loft, we'll convert the textual thickenss to a numerical value we can easily use + insulation_thickness = convert_thickness_to_numeric( + string_thickness=self.roof["insulation_thickness"], + is_pitched=self.roof["is_pitched"], + is_flat=self.roof["is_flat"] + ) + + if insulation_thickness > loft_thickness_threshold: + # Insulation is already thick enough + return { + "suitablility": False, + "thickness": insulation_thickness + } + + return { + "suitablility": True, + "thickness": insulation_thickness + } diff --git a/etl/eligibility/ha_15_32/app.py b/etl/eligibility/ha_15_32/app.py index 34204aad..47426d5d 100644 --- a/etl/eligibility/ha_15_32/app.py +++ b/etl/eligibility/ha_15_32/app.py @@ -13,6 +13,9 @@ from utils.s3 import read_from_s3 from dotenv import load_dotenv from backend.SearchEpc import SearchEpc from backend.Property import Property +from etl.eligibility.MeasureSuitibility import MeasureSuitibility +from etl.epc.DataProcessor import DataProcessor +from backend.app.utils import read_parquet_from_s3 ENV_FILE = Path(__file__).parent / "etl" / "eligibility" / "ha_15_32" / ".env" @@ -335,34 +338,68 @@ def app(): ) cleaned = msgpack.unpackb(cleaned, raw=False) + cleaning_data = read_parquet_from_s3( + bucket_name="retrofit-data-dev", file_key="sap_change_model/cleaning_dataset.parquet", + ) + # We want to retrieve EPCs for every single property + ha_data = ha32 + house_number_key = "Dwelling num" + address_key = "Street" + postcode_key = "Postcode" - ha32_scoring_data = [] - for _, house in tqdm(ha32.iterrows(), total=len(ha32)): - searcher = SearchEpc( - address1=" ".join([house["No."], house["Address"]]), - postcode=house["Postcode"] - ) + def get_data(ha_data, house_number_key, address_key, postcode_key): + ha_scoring_data = [] + for _, house in tqdm(ha_data.iterrows(), total=len(ha_data)): + searcher = SearchEpc( + address1=" ".join([house[house_number_key], house[address_key]]), + postcode=house[postcode_key] + ) - searcher.search() + searcher.search() - newest_epc, older_epcs = searcher.retrieve() - # We also want to get the penultimate epc - penultimate_epc, _ = searcher.filter_newest_epc(older_epcs) + newest_epc, older_epcs, _ = searcher.retrieve() + # We also want to get the penultimate epc + penultimate_epc, _ = searcher.filter_newest_epc(older_epcs) + if not penultimate_epc: + penultimate_epc = newest_epc - from etl.eligibility.MeasureSuitibility import MeasureSuitibility - suitability = MeasureSuitibility( - epc=newest_epc, cleaned=cleaned - ) + suitability = MeasureSuitibility( + epc=newest_epc, cleaned=cleaned + ) + suitable = suitability.loft_insulation() - from pprint import pprint - len(searcher.data["rows"]) + modelling_epc = newest_epc.copy() + if not suitable["suitablility"]: + # if unsuccessful with newest EPC, try penultimate + suitability = MeasureSuitibility( + epc=penultimate_epc, cleaned=cleaned + ) + suitable = suitability.loft_insulation() + modelling_epc = penultimate_epc.copy() - # TODO: Integegrate SearchEPC into the Property class - p = Property( - id=house["row_id"], - postcode=house["postcode"], - address1=house["address1"], - epc_client=None, - data=searcher.data - ) + if not suitable["suitablility"]: + raise ValueError("DO SOMETHING") + + p = Property( + id=house["row_id"], + postcode=modelling_epc["postcode"], + address1=modelling_epc["address1"], + epc_client=None, + data=modelling_epc + ) + ################################################################################ + # Prepare the data for modelling, in the same fasion as the engine + ################################################################################ + + p.get_components(cleaned) + # This is temp - this should happen after scoring + cleaned_property_data = DataProcessor.apply_averages_cleaning( + data_to_clean=pd.DataFrame([dict(**p.get_model_data(), LOCAL_AUTHORITY=p.data["local-authority"])]), + cleaning_data=cleaning_data, + cols_to_merge_on=['PROPERTY_TYPE', 'BUILT_FORM', 'CONSTRUCTION_AGE_BAND', 'LOCAL_AUTHORITY'], + ) + p.set_number_lighting_outlets(cleaned_property_data) + + from pprint import pprint + len(searcher.data["rows"]) diff --git a/etl/eligibility/ha_15_32/requirements.txt b/etl/eligibility/ha_15_32/requirements.txt index 390d7de9..74fcd97f 100644 --- a/etl/eligibility/ha_15_32/requirements.txt +++ b/etl/eligibility/ha_15_32/requirements.txt @@ -1,3 +1,9 @@ pandas pydantic==1.10.11 epc-api-python==1.0.2 +msgpack +tqdm +python-dotenv +boto3 +textblob +pyarrow==12.0.1 From aa998b3b71e2791aaca058d83c99c98a15c0dd72 Mon Sep 17 00:00:00 2001 From: Michael Duong Date: Fri, 8 Dec 2023 20:07:48 +0000 Subject: [PATCH 054/526] add notes --- backend/app/plan/router.py | 38 ++++---- etl/epc/DataProcessor.py | 140 ++++++++++++++++++++++++++++- etl/epc/Dataset.py | 47 ++++++++-- etl/epc/EPCRecord.py | 39 +++++++- etl/epc/ValidationConfiguration.py | 4 + etl/epc/property_change_app.py | 60 ++++++++++++- 6 files changed, 296 insertions(+), 32 deletions(-) diff --git a/backend/app/plan/router.py b/backend/app/plan/router.py index b5acb3c0..75b42ff1 100644 --- a/backend/app/plan/router.py +++ b/backend/app/plan/router.py @@ -145,27 +145,31 @@ async def trigger_plan(body: PlanTriggerRequest): recommendations[p.id] = property_recommendations + # TODO: p.get_model_data() -> EPCRecord + # Finally, we'll prepare data for predicting the impact on SAP - data_processor = DataProcessor(None, newdata=True) - data_processor.insert_data(pd.DataFrame([p.get_model_data()])) - # TODO: Temp - if data_processor.data["UPRN"].values[0] == "": - data_processor.data["UPRN"] = 0 + # data_processor = DataProcessor(None, newdata=True) + # data_processor.insert_data(pd.DataFrame([p.get_model_data()])) + # # TODO: Temp + # if data_processor.data["UPRN"].values[0] == "": + # data_processor.data["UPRN"] = 0 - data_processor.pre_process() + # data_processor.pre_process() - starting_epc_data = data_processor.get_component_features(suffix="_STARTING") - ending_epc_data = data_processor.get_component_features(suffix="_ENDING") - fixed_data = data_processor.get_fixed_features() + # starting_epc_data = data_processor.get_component_features(suffix="_STARTING") + # ending_epc_data = data_processor.get_component_features(suffix="_ENDING") + # fixed_data = data_processor.get_fixed_features() - # We update the ending record with the recommended updates and we set lodgement date to today - ending_epc_data["DAYS_TO_ENDING"] = data_processor.calculate_days_to(created_at) + # # We update the ending record with the recommended updates and we set lodgement date to today + # ending_epc_data["DAYS_TO_ENDING"] = data_processor.calculate_days_to(created_at) - property_scoring_data[p.id] = { - "starting_epc_data": starting_epc_data, - "ending_epc_data": ending_epc_data, - "fixed_data": fixed_data - } + # TODO: EPCRecord - AdjustedEPCRecord + + # property_scoring_data[p.id] = { + # "starting_epc_data": starting_epc_data, + # "ending_epc_data": ending_epc_data, + # "fixed_data": fixed_data + # } for recommendations_by_type in property_recommendations: for i, rec in enumerate(recommendations_by_type): @@ -180,7 +184,7 @@ async def trigger_plan(body: PlanTriggerRequest): recommendations_scoring_data.append(scoring_dict) # cleanup - del data_processor + # del data_processor logger.info("Preparing data for scoring in sap change api") recommendations_scoring_data = pd.DataFrame(recommendations_scoring_data) diff --git a/etl/epc/DataProcessor.py b/etl/epc/DataProcessor.py index 9fc66bab..5bb54088 100644 --- a/etl/epc/DataProcessor.py +++ b/etl/epc/DataProcessor.py @@ -67,6 +67,106 @@ class DataProcessor: Handle data loading and data preprocessing """ + training_pipeline = { + "load_data": { + "function": "load_data", + "args": [], + "kwargs": {"low_memory": DATA_PROCESSOR_SETTINGS["low_memory"]}, + }, + "confine_data": { + "function": "confine_data", + "args": [], + "kwargs": {}, + }, + "remap_columns": { + "function": "remap_columns", + "args": [], + "kwargs": {}, + }, + "standardise_construction_age_band": { + "function": "standardise_construction_age_band", + "args": [], + "kwargs": {}, + }, + "clean_missing_rooms": { + "function": "clean_missing_rooms", + "args": [], + "kwargs": {}, + }, + "recast_df_columns": { + "function": "recast_df_columns", + "args": [], + "kwargs": {"column_mappings": DATA_PROCESSOR_SETTINGS["column_mappings"]}, + }, + "clean_multi_glaze_proportion": { + "function": "clean_multi_glaze_proportion", + "args": [], + "kwargs": {}, + }, + "clean_photo_supply": { + "function": "clean_photo_supply", + "args": [], + "kwargs": {}, + }, + "retain_multiple_epc_properties": { + "function": "retain_multiple_epc_properties", + "args": [], + "kwargs": {"epc_minimum_count": DATA_PROCESSOR_SETTINGS["epc_minimum_count"]}, + }, + "fill_na_fields": { + "function": "fill_na_fields", + "args": [], + "kwargs": {"columns_to_fill": COLUMNS_TO_MERGE_ON}, + }, + "cleaning_averages": { + "function": "make_cleaning_averages", + "args": [], + "kwargs": {}, + }, + "apply_averages_cleaning": { + "function": "apply_averages_cleaning", + "args": [], + "kwargs": { + "data_to_clean": "data", + "cleaning_data": "cleaning_averages", + "cols_to_merge_on": COLUMNS_TO_MERGE_ON, + }, + }, + "na_remapping": { + "function": "na_remapping", + "args": [], + "kwargs": {}, + }, + } + + newdata_pipeline = { + "remap_columns": { + "function": "remap_columns", + "args": [], + "kwargs": {}, + }, + "recast_df_columns": { + "function": "recast_df_columns", + "args": [], + "kwargs": {"column_mappings": DATA_PROCESSOR_SETTINGS["column_mappings"]}, + }, + "clean_multi_glaze_proportion": { + "function": "clean_multi_glaze_proportion", + "args": [], + "kwargs": {}, + }, + "clean_photo_supply": { + "function": "clean_photo_supply", + "args": [], + "kwargs": {}, + }, + "na_remapping": { + "function": "na_remapping", + "args": [], + "kwargs": {}, + }, + } + def __init__(self, filepath: Path | None, is_newdata: bool = False) -> None: """ :param filepath: If specified, is the physical location of the data @@ -74,11 +174,47 @@ class DataProcessor: In this instance, there are some operations we do not want to perform, such as confine_data() """ + self.data : pd.DataFrame = None + self.cleaning_averages : pd.DataFrame = None + self.filepath = filepath - self.data = None - self.cleaning_averages = None + self.pipeline_steps = self.pipeline_factory("newdata" if is_newdata else "training") self.is_newdata = is_newdata + self.load_data(low_memory=DATA_PROCESSOR_SETTINGS["low_memory"]) + + def pre_process_pipeline(self) -> None: + """ + For the pipeline_steps, we apply each function in turn + """ + + for step in self.pipeline_steps: + step_function = getattr(self, self.pipeline_steps[step]["function"]) + step_args = self.pipeline_steps[step]["args"] + step_kwargs = self.pipeline_steps[step]["kwargs"] + + if step_args: + step_function(*step_args, **step_kwargs) + else: + step_function(**step_kwargs) + + + def pipeline_factory(self, pipeline_type: str) -> dict: + """ + Determine which dataclient to use + """ + + pipelines = { + "training": self.training_pipeline, + "newdata": self.newdata_pipeline, + } + + if pipeline_type not in pipelines: + raise ValueError("Pipeline type specified is not in factory") + + return pipelines[pipeline_type] + + def load_data(self, low_memory=False) -> None: if not self.filepath: raise ValueError("No filepath specified") diff --git a/etl/epc/Dataset.py b/etl/epc/Dataset.py index 66715083..3c38eaa6 100644 --- a/etl/epc/Dataset.py +++ b/etl/epc/Dataset.py @@ -1,22 +1,50 @@ import pandas as pd from typing import List from etl.epc.EPCRecord import EPCDifferenceRecord +from ValidationConfiguration import DatasetValidationConfiguration +from etl.epc.settings import EARLIEST_EPC_DATE -class TrainingDataset: + +class BaseDataset: + """ + Base class for all datasets + """ + + def __init__(self) -> None: + self.pipeline_steps = {} + + def validate_dataset(self): + """ + Validate the dataset against the validation configuration + """ + self.dataset_validation: dict = DatasetValidationConfiguration + + def pipeline_factory(self, pipeline_type: str) -> dict: + """ + Factory method for creating a pipeline + """ + if pipeline_type not in self.pipeline_steps: + raise ValueError(f"Pipeline type {pipeline_type} not found") + + return self.pipeline_steps[pipeline_type] + +class TrainingDataset(BaseDataset): """ A collection of EPCDifferenceRecords can be combined into a TrainingDataset. """ def __init__(self, datasets: List[EPCDifferenceRecord]) -> None: + self.pipeline_steps = self.pipeline_factory("training") self.datasets = datasets self.df = pd.DataFrame([dataset.difference_record for dataset in datasets]) + # TODO: replace these with the pipeline steps self._feature_generation() self._drop_features() - self._clean_dataframe() + # self._clean_dataframe() self._clean_efficiency_variables() self._null_validation(information="Clean Efficiency Variables") - self._process_and_prune() + # self._process_and_prune() self._clean_missing_values() self._null_validation(information="Clean Missing Values") @@ -56,7 +84,7 @@ class TrainingDataset: self.df["DAYS_TO_STARTING"] = self._calculate_days_to(self.df["LODGEMENT_DATE_STARTING"]) self.df["DAYS_TO_ENDING"] = self._calculate_days_to(self.df["LODGEMENT_DATE_ENDING"]) - def _clean_efficiency_variables(self, df): + def _clean_efficiency_variables(self): """ These is scope to clean this by the model per corresponding description. @@ -88,7 +116,7 @@ class TrainingDataset: if isinstance(lodgement_date, str): return ( pd.to_datetime(lodgement_date) - pd.to_datetime(EARLIEST_EPC_DATE) - ).daye + ).days return ( pd.to_datetime(lodgement_date) - pd.to_datetime(EARLIEST_EPC_DATE) @@ -108,18 +136,19 @@ class TrainingDataset: else: return self.__add__(other) -class ScoringDataset: +class NewDataset(BaseDataset): """ A collection of EPCDifferenceRecords can be combined into a ScoringDataset. """ def __init__(self, datasets: List[EPCDifferenceRecord]) -> None: + self.pipeline_steps = self.pipeline_factory("newdata") self.datasets = datasets - def __add__(self, other) -> "ScoringDataset": - if not isinstance(other, ScoringDataset): + def __add__(self, other) -> "NewDataset": + if not isinstance(other, NewDataset): raise TypeError("Addition can only be performed with another instance of ScoringDataset") - return ScoringDataset(self.datasets + other.datasets) + return NewDataset(self.datasets + other.datasets) def __radd__(self, other): """ diff --git a/etl/epc/EPCRecord.py b/etl/epc/EPCRecord.py index 73e60483..a5079f39 100644 --- a/etl/epc/EPCRecord.py +++ b/etl/epc/EPCRecord.py @@ -19,6 +19,12 @@ class EPCRecord: """ Base class for a EPC record """ + # TODO: lower case and underscore + walls = None + floor = None + roof = None + + UPRN: str WALLS_DESCRIPTION: str FLOOR_DESCRIPTION: str @@ -60,6 +66,10 @@ class EPCRecord: ENERGY_CONSUMPTION_CURRENT: int CO2_EMISSIONS_CURRENT: float + u_values_walls = None + u_values_roof = None + u_values_floor = None + def __post_init__(self): # We can have validation and cleaning steps for each of the fields # self.WALLS_DESCRIPTION = 'check' @@ -67,8 +77,31 @@ class EPCRecord: self.validation_configuration = EPCRecordValidationConfiguration # self._field_validation() + self._clean_records() + self._expand_description() + self._generate_uvalues() + self._validate_expanded_description() + self._validate_u_values() + # etc pass + def _expand_description(self): + # TODO: can be loop over all the descriptions, or done in one + pass + + def _clean_records(self): + """ + This method will clean the records + """ + # self._clean_potential_energy_efficiency() + # self._clean_environment_impact_potential() + # self._clean_energy_consumption_potential() + # self._clean_co2_emissions_potential() + # self._clean_current_energy_efficiency() + # self._clean_energy_consumption_current() + # self._clean_co2_emissions_current() + + def _field_validation(self): """ This method will validate each of the fields in the EPC record @@ -194,8 +227,10 @@ class EPCDifferenceRecord: """ self.record1 = record1 self.record2 = record2 + self.flag_fabric_consistency = False self.difference_record = {} + self.difference_validation_configuration = EPCDifferenceRecordValidationConfiguration self.fixed_data_validation_configuration = EPCDifferenceRecordFixedDataValidationConfiguration @@ -204,7 +239,7 @@ class EPCDifferenceRecord: self._construct_difference_record() self._validate_difference_record() - + self._detect_fabric_consistency() def _construct_difference_record(self): @@ -220,7 +255,7 @@ class EPCDifferenceRecord: ending_record = self.record2.get(component_variables + ["LODGEMENT_DATE"], return_asdict=True, key_suffix="_ENDING") starting_record = self.record1.get(component_variables + ["LODGEMENT_DATE"], return_asdict=True, key_suffix="_STARTING") - # TODO: DO we want to take the earliest potentials or max potentials? + # TODO: Take the earliest potentials self.difference_record = { "UPRN": self.record1.get("UPRN"), "RDSAP_CHANGE": rdsap_change, diff --git a/etl/epc/ValidationConfiguration.py b/etl/epc/ValidationConfiguration.py index fdca024a..24427c20 100644 --- a/etl/epc/ValidationConfiguration.py +++ b/etl/epc/ValidationConfiguration.py @@ -54,4 +54,8 @@ EPCDifferenceRecordFixedDataValidationConfiguration = { "type": "string", "acceptable_values": [] } +} + +DatasetValidationConfiguration = { + } \ No newline at end of file diff --git a/etl/epc/property_change_app.py b/etl/epc/property_change_app.py index 14a1bfd2..1aec2b55 100644 --- a/etl/epc/property_change_app.py +++ b/etl/epc/property_change_app.py @@ -399,6 +399,58 @@ def make_uvalues(df): # if all_equal: # return True +from typing import List +class EPCPipeline: + """ + This class will take a list of directories and process them to create a dataset: + - Load the data + - Pre-process the data + - Create a dataset + - Clean the dataset + - Store the dataset + """ + + def __init__(self, directories: List[Path]): + self.directories = directories + self.dataset = [] + self.cleaning_dataset = [] + self.all_equal_rows = [] + + def load_data(self): + """ + Load the data from the directories + :return: + """ + for directory in self.directories: + filepath = directory / "certificates.csv" + + data_processor = DataProcessor(filepath=filepath) + + data_processor.pre_process() + + self.dataset.append(data_processor.data) + + def create_dataset(self): + """ + Create a dataset from the data + :return: + """ + pass + + def clean_dataset(self): + """ + Clean the dataset + :return: + """ + pass + + def store_dataset(self): + """ + Store the dataset + :return: + """ + pass + def app(): # Get all the files in the directory @@ -410,6 +462,8 @@ def app(): # List all subdirectories directories = [entry for entry in DATA_DIRECTORY.iterdir() if entry.is_dir()] + + dataset = [] cleaning_dataset = [] # Keep track of the all equals @@ -606,8 +660,8 @@ def app(): data_by_urpn_df = process_and_prune_desriptions(data_by_urpn_df, cleaned_lookup) # Apply u-values - for col in ["walls_clean_description", "walls_clean_description_ENDING"]: - data_by_urpn_df[col] = data_by_urpn_df[col].str.replace("(assumed)", "").str.rstrip() + # for col in ["walls_clean_description", "walls_clean_description_ENDING"]: + # data_by_urpn_df[col] = data_by_urpn_df[col].str.replace("(assumed)", "").str.rstrip() data_by_urpn_df = make_uvalues(data_by_urpn_df).drop( columns=["walls_clean_description", "walls_clean_description_ENDING"] @@ -638,11 +692,13 @@ def app(): # TODO: move into difference record # Remove any records that have huge swings in their floor area + # Move this into TrainingDataset as this won't be run in newdata output["tfa_diff_abs"] = abs(output["TOTAL_FLOOR_AREA_ENDING"] - output["TOTAL_FLOOR_AREA_STARTING"]) output["tfa_diff_prop"] = output["tfa_diff_abs"] / output["TOTAL_FLOOR_AREA_STARTING"] output = output[output["tfa_diff_prop"] < 0.5] output = output.drop(columns=["tfa_diff_abs", "tfa_diff_prop"]) + # TODO: move into EPCRecord record uvalue_columns = [col for col in output.columns if "thermal_transmittance" in col] for uvalue_col in uvalue_columns: output[uvalue_col] = pd.to_numeric(output[uvalue_col]) From b41fa37072f1ca5e1f3b71ec4700a9f017997b7b Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Mon, 11 Dec 2023 10:20:46 +0000 Subject: [PATCH 055/526] eligibiltiy pipeline wip --- backend/ml_models/Valuation.py | 2 +- etl/eligibility/Eligibility.py | 232 ++++++++++++++++++++++++++ etl/eligibility/MeasureSuitibility.py | 83 --------- etl/eligibility/ha_15_32/app.py | 160 ++++++++++++++---- 4 files changed, 357 insertions(+), 120 deletions(-) create mode 100644 etl/eligibility/Eligibility.py delete mode 100644 etl/eligibility/MeasureSuitibility.py diff --git a/backend/ml_models/Valuation.py b/backend/ml_models/Valuation.py index 9e409b9f..522a7067 100644 --- a/backend/ml_models/Valuation.py +++ b/backend/ml_models/Valuation.py @@ -15,7 +15,7 @@ class PropertyValuation: 100071264896: 128000, # Based on next door neighbour: https://themovemarket.com/tools/propertyprices/flat-2-queens-wood-house-219 # -brandwood-road-birmingham-b14-6pu - 100070533688: 218000, # Based on Zoopla's estimation of 95 Tenby Road, which is also end terrace + 100070533688: 218000, # Based on Zoopla's estimation of 95 Tenby Road, which is also mid terrace 100070505235: 344000, # Based on Zoopla's estimation of 131 School road, which is also semi-detached 100070513306: 182000, # Based on Zoopla's estimation of 61 Simmons Drive 100071306896: 77000, # Based on Flat 2 of 44 Wedgewood Road on Zoopla diff --git a/etl/eligibility/Eligibility.py b/etl/eligibility/Eligibility.py new file mode 100644 index 00000000..18b4ecd1 --- /dev/null +++ b/etl/eligibility/Eligibility.py @@ -0,0 +1,232 @@ +from recommendations.recommendation_utils import convert_thickness_to_numeric +from etl.epc_clean.epc_attributes.RoofAttributes import RoofAttributes +from etl.epc_clean.epc_attributes.WallAttributes import WallAttributes + + +class Eligibility: + """ + Given the epc data about a property, this class holds the logic for determining if the home + is eligible for a specific retrofit measure. + + For example, this could be whether the loft has insulation below a standardised threshold, or + if it has an empty cavity + + Further to this, this class is responsible for determining if the property is suitable for specific funding + schemes + """ + + loft = None + cavity = None + + # schemes + gbis = None + eco4 = None + + # If the loft has less than 100mm of insulation, we classify the home has needing loft insulation + LOFT_INSULATION_THRESHOLD = 100 + + def __init__(self, epc, cleaned): + self.epc = epc + self.cleaned = cleaned + + self.walls = self.parse_fabric("walls-description") + self.roof = self.parse_fabric("roof-description") + + self.loft_insulation() + self.cavity_insulation() + + def parse_fabric(self, key): + + if "thermal transmittance" in self.epc[key]: + if key == "walls-description": + return WallAttributes(self.epc["walls-description"]).process() + + if key == "roof-description": + return RoofAttributes(self.epc["roof-description"]).process() + + raise ValueError("Invalid Key") + + # Get the cleaned version of the description + return [ + data for data in self.cleaned[key] if + data["original_description"] == self.epc[key] + ][0] + + def loft_insulation(self, loft_thickness_threshold: int = None): + """ + Given the description of roof, this function determines whether or not the property is suitable for loft + insulation. A loft existing insulation with a thickness below loft_thickness_threshold, is deemed to + be suitable for loft insulation + :param loft_thickness_threshold: Integer, Optional. If provided, any loft found with insulation lower than + this thickness is deemed to be suitable for loft insulation. If this + parameter is not provided, this method will default to the variable specified + in LOFT_INSULATION_THRESHOLD + """ + + loft_thickness_threshold = ( + self.LOFT_INSULATION_THRESHOLD if loft_thickness_threshold is None else loft_thickness_threshold + ) + + # We firstly check if the roof is a loft + is_loft = self.roof["is_pitched"] and (not self.roof["is_roof_room"]) + + if not is_loft: + self.loft = { + "suitablility": False, + "thickness": None, + "reason": "roof not loft" + } + return + + # If it is a loft, we'll convert the textual thickenss to a numerical value we can easily use + insulation_thickness = convert_thickness_to_numeric( + string_thickness=self.roof["insulation_thickness"], + is_pitched=self.roof["is_pitched"], + is_flat=self.roof["is_flat"] + ) + + if insulation_thickness > loft_thickness_threshold: + # Insulation is already thick enough + self.loft = { + "suitablility": False, + "thickness": insulation_thickness, + "reason": "existing insulation" + } + return + + self.loft = { + "suitablility": True, + "thickness": insulation_thickness, + "reason": None + } + + def cavity_insulation(self): + + """ + Given the description of the walls, this function determines if the property is suitable for cavity wall + insulation + :return: + """ + + is_cavity = self.walls["is_cavity_wall"] + is_empty = (not self.walls["is_filled_cavity"]) or ( + self.walls["is_as_built"] and self.walls["insulation_thickness"] not in ["average", "above average"] + ) + is_partial_filled = ( + self.walls["is_as_built"] and self.walls["insulation_thickness"] not in ["below average"] + ) + + is_unfilled_cavity = is_cavity and is_empty + is_partial_filled_cavity = is_cavity and is_partial_filled + + if is_unfilled_cavity: + self.cavity = { + "suitablility": True, + "type": "empty", + } + return + + if is_partial_filled_cavity: + self.cavity = { + "suitability": True, + "type": "partial" + } + return + + self.cavity = { + "suitability": False, + "type": "full" + } + + def check_gbis(self): + """ + The Eligibility criteria for the Great British Insulation Scheme (GBIS) can be found here: + https://www.ofgem.gov.uk/environmental-and-social-schemes/great-british-insulation-scheme/homeowners-and-tenants + + At a high level, the criteria is the following: + - The home must be within council tax bands A-D in England, A-E in Scotland, A-E in Wales + - It must have an EPC rating of D or below + + For the moment, we won't check whether a property is in the correct council tax band. There is likely + to be public data for this since there is a govenment website which allows you to search for properties: + https://www.gov.uk/council-tax-bands + This data is possibly contained on the council tax valuation list but it remains to be see (seems unlikely) + whether or not the data is openly accessible + https://www.gov.uk/government/statistics/quality-assurance-of-administrative-data-in-the-uk-house-price-index + /valuation-office-agency-council-tax-valuation-lists + + Currently, we tailor this module to the Warmfront Team and their delivery capabilities (both practically and + commercially). Therefore, we will check: + 1) Whether the property is an EPC D or below + 2) Whether the property is suitible for cavity wall insulation + + However, GBIS applies to many insulation measures, which can be seen in the ofgem document + + GBIS does not have any minimum upgrade requirement so we don't need to simulate the post retrofit sap score + using the machine learning model + """ + + # Check if the property is suitable for cavity wall + self.cavity_insulation() + self.loft_insulation() + + self.gbis = (self.cavity["suitablility"] or self.loft["suitibility"]) and ( + int(self.epc["current-energy-efficiency"]) <= 68 + ) + + def check_eco4(self, post_retrofit_sap=None): + """ + This funciton will check if the property is eligible for funding under the ECO4 scheme + + For the moment, this function will consider just measures that can be implemented by the + Warmfront team, therefore we will only check if a property has an uninsulated loft AND uninsulated + cavity + + We use Ofgem's V1.1 ECO 4 guidance document for the conditions under which a property is elligible + This document can be found here: + https://www.ofgem.gov.uk/sites/default/files/2023-02/ECO4%20Delivery%20Guidance%20v1.1%20%281%29.pdf + + The conditions (to be reviewed) to be eligible for retrofit, under ECO4, are the following: + 1) The property is a social home (This is assumed prior to this function as this code will often + be run on property lists provided by a HA + 2) The property is an EPC E or below + 3) The property has an unfilled cavity and uninsulated loft + 4) After retrofit, the property will hit an EPC C + + Note: This criteria will likely be adjusted depending on the properties that can be served right now + + If the post_retrofit_sap is provided, then is this value is 69 or higher, the property will be deemed + to be eligible for ECO4 funding. If the post_retrofit_sap is not provided, the property will be + deemed to be eligible, conditional to the post_retrofit_sap score check + :param post_retrofit_sap: + :return: + """ + + current_sap = int(self.epc["current-energy-efficiency"]) + if current_sap > 54: + self.eco4 = { + "eligible": False, + "message": "sap too high" + } + return + + self.cavity_insulation() + self.loft_insulation() + + # make sure conditions 2 and 3 are true + is_eligible = self.cavity["suitablility"] & self.loft["suitablility"] + + if post_retrofit_sap is None: + self.eco4 = { + "eligible": is_eligible, + "message": "subject to post retrofit sap" + } + return + + is_eligible = is_eligible & (post_retrofit_sap >= 69) + + self.eco4 = { + "eligible": is_eligible, + "message": None + } + return diff --git a/etl/eligibility/MeasureSuitibility.py b/etl/eligibility/MeasureSuitibility.py deleted file mode 100644 index 54deec4d..00000000 --- a/etl/eligibility/MeasureSuitibility.py +++ /dev/null @@ -1,83 +0,0 @@ -from recommendations.recommendation_utils import convert_thickness_to_numeric -from etl.epc_clean.epc_attributes.RoofAttributes import RoofAttributes -from etl.epc_clean.epc_attributes.WallAttributes import WallAttributes - - -class MeasureSuitibility: - """ - Given the epc data about a property, this class holds the logic for determining if the home - is eligible for a specific retrofit measure. - - For example, this could be whether the loft has insulation below a standardised threshold, or - if it has an empty cavity - """ - - # If the loft has less than 100mm of insulation, we classify the home has needing loft insulation - LOFT_INSULATION_THRESHOLD = 100 - - def __init__(self, epc, cleaned): - self.epc = epc - self.cleaned = cleaned - - self.walls = self.parse_fabric("walls-description") - self.roof = self.parse_fabric("roof-description") - - def parse_fabric(self, key): - - if "thermal transmittance" in self.epc[key]: - if key == "walls-description": - return WallAttributes(self.epc["walls-description"]).process() - - if key == "roof-description": - return RoofAttributes(self.epc["roof-description"]).process() - - raise ValueError("Invalid Key") - - # Get the cleaned version of the description - return [ - data for data in self.cleaned[key] if - data["original_description"] == self.epc[key] - ][0] - - def loft_insulation(self, loft_thickness_threshold: int = None): - """ - Given the description of roof, this function determines whether or not the property is suitable for loft - insulation. A loft existing insulation with a thickness below loft_thickness_threshold, is deemed to - be suitable for loft insulation - :param loft_thickness_threshold: Integer, Optional. If provided, any loft found with insulation lower than - this thickness is deemed to be suitable for loft insulation. If this - parameter is not provided, this method will default to the variable specified - in LOFT_INSULATION_THRESHOLD - """ - - loft_thickness_threshold = ( - self.LOFT_INSULATION_THRESHOLD if loft_thickness_threshold is None else loft_thickness_threshold - ) - - # We firstly check if the roof is a loft - is_loft = self.roof["is_pitched"] and (not self.roof["is_roof_room"]) - - if not is_loft: - return { - "suitablility": False, - "thickness": None - } - - # If it is a loft, we'll convert the textual thickenss to a numerical value we can easily use - insulation_thickness = convert_thickness_to_numeric( - string_thickness=self.roof["insulation_thickness"], - is_pitched=self.roof["is_pitched"], - is_flat=self.roof["is_flat"] - ) - - if insulation_thickness > loft_thickness_threshold: - # Insulation is already thick enough - return { - "suitablility": False, - "thickness": insulation_thickness - } - - return { - "suitablility": True, - "thickness": insulation_thickness - } diff --git a/etl/eligibility/ha_15_32/app.py b/etl/eligibility/ha_15_32/app.py index 47426d5d..2cdee129 100644 --- a/etl/eligibility/ha_15_32/app.py +++ b/etl/eligibility/ha_15_32/app.py @@ -8,14 +8,16 @@ from tqdm import tqdm import pandas as pd import numpy as np import msgpack +from datetime import datetime from utils.logger import setup_logger from utils.s3 import read_from_s3 from dotenv import load_dotenv from backend.SearchEpc import SearchEpc from backend.Property import Property -from etl.eligibility.MeasureSuitibility import MeasureSuitibility +from etl.eligibility.Eligibility import Eligibility from etl.epc.DataProcessor import DataProcessor from backend.app.utils import read_parquet_from_s3 +from backend.app.plan.utils import create_recommendation_scoring_data ENV_FILE = Path(__file__).parent / "etl" / "eligibility" / "ha_15_32" / ".env" @@ -323,6 +325,79 @@ def merge_ha_15(asset_list, identified_addresses): return merged_data, dropped_identified_merge_keys +def prepare_model_data_row(property_id, modelling_epc, cleaned, cleaning_data, created_at): + """ + This function prepares the data for modelling, in the same fashion as the recommendation engine + With up-coming refactoring, this will change + :param modelling_epc: + :return: + """ + p = Property( + id=property_id, + postcode=modelling_epc["postcode"], + address1=modelling_epc["address1"], + epc_client=None, + data=modelling_epc + ) + + p.get_components(cleaned) + # This is temp - this should happen after scoring + cleaned_property_data = DataProcessor.apply_averages_cleaning( + data_to_clean=pd.DataFrame([dict(**p.get_model_data(), LOCAL_AUTHORITY=p.data["local-authority"])]), + cleaning_data=cleaning_data, + cols_to_merge_on=['PROPERTY_TYPE', 'BUILT_FORM', 'CONSTRUCTION_AGE_BAND', 'LOCAL_AUTHORITY'], + ) + p.set_number_lighting_outlets(cleaned_property_data) + + data_processor = DataProcessor(None, newdata=True) + data_processor.insert_data(pd.DataFrame([p.get_model_data()])) + + data_processor.pre_process() + + starting_epc_data = data_processor.get_component_features(suffix="_STARTING") + ending_epc_data = data_processor.get_component_features(suffix="_ENDING") + fixed_data = data_processor.get_fixed_features() + + # We update the ending record with the recommended updates and we set lodgement date to today + ending_epc_data["DAYS_TO_ENDING"] = data_processor.calculate_days_to(created_at) + + # We simulate the impact of the retrofit using expected performance of the wall and roof, + # after retrofit. We use the minimal u-values required to meet building regulations part L + # TODO: Check the performance of the materials warmfront's installers use, particularly for + # cavity + simulation_recommendations = [ + { + "recommendation_id": "-".join([property_id, "cavity"]), + "type": "cavity_wall_insulation", + "new_u_value": 0.55, + "parts": [{}] + }, + { + "recommendation_id": "-".join([property_id, "loft"]), + "type": "loft_insulation", + "new_u_value": 0.16, + "parts": [{"depth": 270}] + } + ] + + scoring_dict = {} + for recommendation in simulation_recommendations: + scoring_dict = create_recommendation_scoring_data( + property=p, + recommendation=recommendation, + starting_epc_data=starting_epc_data, + ending_epc_data=ending_epc_data, + fixed_data=fixed_data, + ) + # At each iteration, we want to update the ending_epc_data, so in the end, ending_epc_data contains + # all of the updates + for k in scoring_dict.keys(): + if k in ending_epc_data.columns: + ending_epc_data[k] = scoring_dict[k] + + return scoring_dict + + def app(): ha32_asset_list, ha15_asset_list, ha32_identified_addresses, ha15_identified_addresses = load_data() @@ -342,14 +417,19 @@ def app(): bucket_name="retrofit-data-dev", file_key="sap_change_model/cleaning_dataset.parquet", ) + created_at = datetime.now().isoformat() + # We want to retrieve EPCs for every single property + # NOTE: HA32 is MOSTLY cavity via GBIS ha_data = ha32 house_number_key = "Dwelling num" address_key = "Street" postcode_key = "Postcode" def get_data(ha_data, house_number_key, address_key, postcode_key): - ha_scoring_data = [] + + scoring_data = [] + results = [] for _, house in tqdm(ha_data.iterrows(), total=len(ha_data)): searcher = SearchEpc( address1=" ".join([house[house_number_key], house[address_key]]), @@ -364,42 +444,50 @@ def app(): if not penultimate_epc: penultimate_epc = newest_epc - suitability = MeasureSuitibility( - epc=newest_epc, cleaned=cleaned - ) - suitable = suitability.loft_insulation() + eligibility = Eligibility(epc=newest_epc, cleaned=cleaned) + eligibility.check_gbis() + eligibility.check_eco4() - modelling_epc = newest_epc.copy() - if not suitable["suitablility"]: - # if unsuccessful with newest EPC, try penultimate - suitability = MeasureSuitibility( - epc=penultimate_epc, cleaned=cleaned + # If there is no eligibility, we need to check the penultimate epc + if (not eligibility.eco4["eligible"]) and (not eligibility.gbis): + eligibility = Eligibility(epc=penultimate_epc, cleaned=cleaned) + eligibility.check_gbis() + eligibility.check_eco4() + + if eligibility.eco4["eligible"]: + # TODO: Check me + scoring_dictionary = prepare_model_data_row( + property_id=house["row_id"], + modelling_epc=eligibility.epc, + cleaned=cleaned, + cleaning_data=cleaning_data, + created_at=created_at ) - suitable = suitability.loft_insulation() - modelling_epc = penultimate_epc.copy() + scoring_data.append(scoring_dictionary) + results.append( + { + "row_id": house["row_id"], + "warmfront_identified": house["identified"], + "gbis_eligible": eligibility.gbis, + "eco4_eligible": eligibility.eco4["eligible"], + "date_epc": eligibility.epc["lodgement-date"], + "eco4_note": "conditional on post sap" + } + ) + continue - if not suitable["suitablility"]: - raise ValueError("DO SOMETHING") + if (house["identified"] and not eligibility.gbis) and ( + house["identified"] and not eligibility.eco4["eligible"]): + raise NotImplementedError("Investigate ms") - p = Property( - id=house["row_id"], - postcode=modelling_epc["postcode"], - address1=modelling_epc["address1"], - epc_client=None, - data=modelling_epc + # If nothing is eligible or gbis is eligible, then we make a record this + results.append( + { + "row_id": house["row_id"], + "warmfront_identified": house["identified"], + "gbis_eligible": eligibility.gbis, + "eco4_eligible": eligibility.eco4["eligible"], + "date_epc": eligibility.epc["lodgement-date"], + "eco4_note": None + } ) - ################################################################################ - # Prepare the data for modelling, in the same fasion as the engine - ################################################################################ - - p.get_components(cleaned) - # This is temp - this should happen after scoring - cleaned_property_data = DataProcessor.apply_averages_cleaning( - data_to_clean=pd.DataFrame([dict(**p.get_model_data(), LOCAL_AUTHORITY=p.data["local-authority"])]), - cleaning_data=cleaning_data, - cols_to_merge_on=['PROPERTY_TYPE', 'BUILT_FORM', 'CONSTRUCTION_AGE_BAND', 'LOCAL_AUTHORITY'], - ) - p.set_number_lighting_outlets(cleaned_property_data) - - from pprint import pprint - len(searcher.data["rows"]) From 739afbd79b36ce92c096e6664148199735388228 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Mon, 11 Dec 2023 16:17:43 +0000 Subject: [PATCH 056/526] finished ha32 analysis --- backend/SearchEpc.py | 26 +-- etl/eligibility/Eligibility.py | 37 +++-- etl/eligibility/ha_15_32/app.py | 281 ++++++++++++++++++++++++-------- 3 files changed, 248 insertions(+), 96 deletions(-) diff --git a/backend/SearchEpc.py b/backend/SearchEpc.py index ff603cae..2a24a780 100644 --- a/backend/SearchEpc.py +++ b/backend/SearchEpc.py @@ -66,7 +66,7 @@ class SearchEpc: def search(self): # Get the EPC data with retries - response = {} + for retry in range(self.max_retries): try: response = self.client.domestic.search( @@ -81,14 +81,15 @@ class SearchEpc: print("Failed previous attempt but retry successful") # If we got nothing, final try if not response: - raise NotImplementedError("Implement me") - # response = client.domestic.search( - # params={"address": " ".join([home["Dwelling num"], home["Street"]]), - # "postcode": home["Postcode"]} - # ) + # TODO: Make a call to OS uprn service and get the address' uprn, just in case there is an + # issue with how we are searching the api + + return { + "status": 204, + "message": "no data", + "error": None + } - # TODO: Eventually, if we have nothing, we should exit with a 201 or 202, saying that - # there is not data for this property return { "status": 200, "message": "success", @@ -107,7 +108,7 @@ class SearchEpc: "error": str(e) } - def retrieve(self): + def retrieve(self, property_type=None): """ Given a successful search, this method will format the data and return it @@ -125,7 +126,12 @@ class SearchEpc: uprns = {r["uprn"] for r in rows} if len(uprns) != 1: - raise NotImplementedError("More than one unique UPRN, need to handle this case") + logger.error("Multiple EPCs found - we should use an alternate method of searching - TODO") + if property_type is not None: + # We can do a filter on the property type + rows_filtered = [r for r in rows if r["property-type"] == property_type] + if rows_filtered: + rows = rows_filtered # We now check for a full sap epc: full_sap_epc = [r for r in rows if r["transaction-type"] == "new dwelling"] diff --git a/etl/eligibility/Eligibility.py b/etl/eligibility/Eligibility.py index 18b4ecd1..a24fd2d5 100644 --- a/etl/eligibility/Eligibility.py +++ b/etl/eligibility/Eligibility.py @@ -37,20 +37,19 @@ class Eligibility: def parse_fabric(self, key): - if "thermal transmittance" in self.epc[key]: - if key == "walls-description": - return WallAttributes(self.epc["walls-description"]).process() - - if key == "roof-description": - return RoofAttributes(self.epc["roof-description"]).process() - - raise ValueError("Invalid Key") - # Get the cleaned version of the description - return [ + remapped = [ data for data in self.cleaned[key] if data["original_description"] == self.epc[key] - ][0] + ] + if remapped: + return remapped[0] + + if key == "walls-description": + return WallAttributes(self.epc["walls-description"]).process() + + if key == "roof-description": + return RoofAttributes(self.epc["roof-description"]).process() def loft_insulation(self, loft_thickness_threshold: int = None): """ @@ -72,7 +71,7 @@ class Eligibility: if not is_loft: self.loft = { - "suitablility": False, + "suitability": False, "thickness": None, "reason": "roof not loft" } @@ -88,14 +87,14 @@ class Eligibility: if insulation_thickness > loft_thickness_threshold: # Insulation is already thick enough self.loft = { - "suitablility": False, + "suitability": False, "thickness": insulation_thickness, "reason": "existing insulation" } return self.loft = { - "suitablility": True, + "suitability": True, "thickness": insulation_thickness, "reason": None } @@ -121,7 +120,7 @@ class Eligibility: if is_unfilled_cavity: self.cavity = { - "suitablility": True, + "suitability": True, "type": "empty", } return @@ -170,7 +169,11 @@ class Eligibility: self.cavity_insulation() self.loft_insulation() - self.gbis = (self.cavity["suitablility"] or self.loft["suitibility"]) and ( + # self.gbis = (self.cavity["suitability"] or self.loft["suitability"]) and ( + # int(self.epc["current-energy-efficiency"]) <= 68 + # ) + + self.gbis = (self.cavity["suitability"]) and ( int(self.epc["current-energy-efficiency"]) <= 68 ) @@ -214,7 +217,7 @@ class Eligibility: self.loft_insulation() # make sure conditions 2 and 3 are true - is_eligible = self.cavity["suitablility"] & self.loft["suitablility"] + is_eligible = self.cavity["suitability"] & self.loft["suitability"] if post_retrofit_sap is None: self.eco4 = { diff --git a/etl/eligibility/ha_15_32/app.py b/etl/eligibility/ha_15_32/app.py index 2cdee129..dd27f7c1 100644 --- a/etl/eligibility/ha_15_32/app.py +++ b/etl/eligibility/ha_15_32/app.py @@ -8,7 +8,7 @@ from tqdm import tqdm import pandas as pd import numpy as np import msgpack -from datetime import datetime +from datetime import datetime, timedelta from utils.logger import setup_logger from utils.s3 import read_from_s3 from dotenv import load_dotenv @@ -87,6 +87,14 @@ def marge_ha_32(asset_list, identified_addresses): identified_addresses["Address"] ) + # Update how 7 Norton grove is listed as it has the wrong postcode + asset_list["Postcode"] = np.where( + (asset_list["Street"] == "Norton Grove") & (asset_list["Postcode"] == "HU4 6HQ") & ( + asset_list["Dwelling num"] == "7"), + "HU4 6HG", + asset_list["Postcode"] + ) + asset_list["merge_key"] = ( asset_list["Dwelling num"].astype(str).str.lower().str.strip().str.replace(" ", "") + asset_list["Street"].astype(str).str.lower().str.strip().str.replace(" ", "") + @@ -398,6 +406,208 @@ def prepare_model_data_row(property_id, modelling_epc, cleaned, cleaning_data, c return scoring_dict +def get_ha_32data(ha_data, cleaned, cleaning_data, created_at): + house_number_key = "Dwelling num" + address_key = "Street" + postcode_key = "Postcode" + house_name = "Dwelling name" + house_type_key = "Dwelling type" + + house_type_lookup = { + "Bungalow": "Bungalow", + "Flat": "Flat", + 'House': "House", + 'Store Room': None, + 'Bungalow Disabled': "Bungalow", + 'Flat Disabled': "Flat", + 'Dormer Bungalow': "Bungalow", + 'Pop-In': None, + 'Laundry': None, + 'Shed': None, + 'Bedsit': None, + } + + scoring_data = [] + results = [] + no_house_numbers = [] + for _, house in tqdm(ha_data.iterrows(), total=len(ha_data)): + + # If we don't have a house number, we'll continue since we won't realistically be able to find + # an address + if pd.isnull(house[house_number_key]): + no_house_numbers.append(house["row_id"]) + continue + + if house_name is not None: + if not pd.isnull(house[house_name]): + address1 = " ".join([house[house_name], house[house_number_key], house[address_key]]) + else: + address1 = " ".join([house[house_number_key], house[address_key]]) + else: + address1 = " ".join([house[house_number_key], house[address_key]]) + + searcher = SearchEpc( + address1=address1, + postcode=house[postcode_key] + ) + + response = searcher.search() + if response["status"] == 204: + # If the property is identified, we should fix this + # if house["identified"]: + # raise NotImplementedError("Check if we have an epc") + results.append( + { + "row_id": house["row_id"], + "warmfront_identified": house["identified"], + "gbis_eligible": None, + "eco4_eligible": None, + "date_epc": None, + "message": "No EPC found", + } + ) + continue + + newest_epc, older_epcs, _ = searcher.retrieve( + property_type=house_type_lookup.get(house[house_type_key], None) + ) + # We also want to get the penultimate epc + penultimate_epc, _ = searcher.filter_newest_epc(older_epcs) + if not penultimate_epc: + penultimate_epc = newest_epc + + eligibility = Eligibility(epc=newest_epc, cleaned=cleaned) + eligibility.check_gbis() + eligibility.check_eco4() + + # If there is no eligibility, we need to check the penultimate epc + if (not eligibility.eco4["eligible"]) and (not eligibility.gbis): + eligibility = Eligibility(epc=penultimate_epc, cleaned=cleaned) + eligibility.check_gbis() + eligibility.check_eco4() + + if eligibility.eco4["eligible"]: + # TODO: Check me + scoring_dictionary = prepare_model_data_row( + property_id=house["row_id"], + modelling_epc=eligibility.epc, + cleaned=cleaned, + cleaning_data=cleaning_data, + created_at=created_at + ) + scoring_data.append(scoring_dictionary) + results.append( + { + "row_id": house["row_id"], + "warmfront_identified": house["identified"], + "gbis_eligible": eligibility.gbis, + "eco4_eligible": eligibility.eco4["eligible"], + "date_epc": eligibility.epc["lodgement-date"], + "message": "eco4 conditional on post sap", + } + ) + continue + + # if (house["identified"] and not eligibility.gbis) and ( + # house["identified"] and not eligibility.eco4["eligible"]): + # raise NotImplementedError("Investigate ms") + + # If nothing is eligible or gbis is eligible, then we make a record this + results.append( + { + "row_id": house["row_id"], + "warmfront_identified": house["identified"], + "gbis_eligible": eligibility.gbis, + "eco4_eligible": eligibility.eco4["eligible"], + "date_epc": eligibility.epc["lodgement-date"], + "message": None + } + ) + + logger.info("no_house_numbers") + + return results, scoring_data + + +def analyse_ha_32_results(results, ha32, no_house_numbers): + results_df = pd.DataFrame(results) + import pickle + # with open("ha_32_results.pickle", "wb") as f: + # pickle.dump(results_df, f) + + """ + We want to know: + 1) What proportion of identified properties we get correct + 2) If we miss identified properties, why + 3) Which properties do we identify that were not identified by warmfront. What is our confidence on these? + + For HA32, most of these (if not all) properties were identified under gbis + """ + + # What proportio + warmfront_identified = results_df[ + results_df["warmfront_identified"] + ] + + success_rate = warmfront_identified["gbis_eligible"].sum() / warmfront_identified.shape[0] + # For HA32, this is 89% + + # missed = results_df[ + # results_df["warmfront_identified"] & (warmfront_identified["gbis_eligible"] != True) + # ] + + # to_check = missed[pd.isnull(missed["message"])] + + # ha32[ha32["row_id"] == to_check["row_id"].values[14]].squeeze() + # to_check[to_check["row_id"] == to_check["row_id"].values[14]].squeeze() + + # For these properties, warmfront identified all of them, however two did not seem to look valid. + # We could perhaps update our detection, if the properties not found are not currently EPC C or above, but + # do not look eligible from a building materials perspective + # E.g.: + # row_ids = ha32[ha32["Postcode"] == "HU4 6TG"]["row_id"].values + # z = results_df[results_df["row_id"].isin(row_ids)] + + # Reason 1: The EPC indicates that the cavity is filled (GBIS allows for more than just cavity measures, however + # we check ust the cavity for GBIS homes, since I believe this is what Warmfront have in place with + # regards to commercial agreements with the installer. An example of this is 30 Coxwold Grove, + # HU4 6HH. + # + # Reason 2: Some properties do not have any existing data. This amounts for 16 of the 50 that we missed. + # We will be implemntating a solution to interpolate homes that do not have any data, based on their + # neighbours. An example of this is 979 Hessle Road, HU4 6QG. If we look at the neighbours, we would + # likely infer that this property has an empty cavity and therefore would identify + # + # Reason 3: Some properties, e.g. 975 Hessle Road, HU4 6QG, look like they would quality for GBIS, + # but is already a C, based on its Nov 2022 EPC (it was a C before that too). I'm personally not sure + # why this home would get identified as you would not be able to get GBIS funding. Same for 977 Hessle + # road. This was the most common reason. Another example 8 Edith Cavell Court, HU5 4BA + # + # Reason 4: Some properties are a combination of reason 1 and 3. This could be to do with inaccurate EPCs as + # emperically speaking, when going through this manually, it seemed like the ones that fall into this + # category had slightly older EPCs (pre-2019). There are a few like this but e.g + # 3, Summergroves Way HU4 6SZ + + # We now look for properties that we identified, that were not identified by Warmfront + + new_possibilities = results_df[ + (~results_df["warmfront_identified"]) & + (results_df["gbis_eligible"] | results_df["eco4_eligible"]) + ].copy() + + # We deem that Any EPC that is produced in the last 3 years gives us good confidence + cutoff_date = datetime.now() - timedelta(days=3 * 365) + + new_possibilities["high_confidence"] = pd.to_datetime(new_possibilities["date_epc"]) >= cutoff_date + + # We do a quick check on properties that didn't have a house number: + no_house_numbers_ha32 = ha32[ha32["row_id"].isin(no_house_numbers)]["identified"].sum() + if no_house_numbers_ha32: + logger.error("We have some identified properties that have no house numbers - investigate me") + + return success_rate, new_possibilities + + def app(): ha32_asset_list, ha15_asset_list, ha32_identified_addresses, ha15_identified_addresses = load_data() @@ -422,72 +632,5 @@ def app(): # We want to retrieve EPCs for every single property # NOTE: HA32 is MOSTLY cavity via GBIS ha_data = ha32 - house_number_key = "Dwelling num" - address_key = "Street" - postcode_key = "Postcode" - def get_data(ha_data, house_number_key, address_key, postcode_key): - - scoring_data = [] - results = [] - for _, house in tqdm(ha_data.iterrows(), total=len(ha_data)): - searcher = SearchEpc( - address1=" ".join([house[house_number_key], house[address_key]]), - postcode=house[postcode_key] - ) - - searcher.search() - - newest_epc, older_epcs, _ = searcher.retrieve() - # We also want to get the penultimate epc - penultimate_epc, _ = searcher.filter_newest_epc(older_epcs) - if not penultimate_epc: - penultimate_epc = newest_epc - - eligibility = Eligibility(epc=newest_epc, cleaned=cleaned) - eligibility.check_gbis() - eligibility.check_eco4() - - # If there is no eligibility, we need to check the penultimate epc - if (not eligibility.eco4["eligible"]) and (not eligibility.gbis): - eligibility = Eligibility(epc=penultimate_epc, cleaned=cleaned) - eligibility.check_gbis() - eligibility.check_eco4() - - if eligibility.eco4["eligible"]: - # TODO: Check me - scoring_dictionary = prepare_model_data_row( - property_id=house["row_id"], - modelling_epc=eligibility.epc, - cleaned=cleaned, - cleaning_data=cleaning_data, - created_at=created_at - ) - scoring_data.append(scoring_dictionary) - results.append( - { - "row_id": house["row_id"], - "warmfront_identified": house["identified"], - "gbis_eligible": eligibility.gbis, - "eco4_eligible": eligibility.eco4["eligible"], - "date_epc": eligibility.epc["lodgement-date"], - "eco4_note": "conditional on post sap" - } - ) - continue - - if (house["identified"] and not eligibility.gbis) and ( - house["identified"] and not eligibility.eco4["eligible"]): - raise NotImplementedError("Investigate ms") - - # If nothing is eligible or gbis is eligible, then we make a record this - results.append( - { - "row_id": house["row_id"], - "warmfront_identified": house["identified"], - "gbis_eligible": eligibility.gbis, - "eco4_eligible": eligibility.eco4["eligible"], - "date_epc": eligibility.epc["lodgement-date"], - "eco4_note": None - } - ) + ha_32_results = get_ha_32data(ha_data, cleaned, cleaning_data, created_at) From 736e02cb4a6ac25f20a0ad774c1f64779af26dc8 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Tue, 12 Dec 2023 17:37:47 +0000 Subject: [PATCH 057/526] completed ha15 --- etl/eligibility/Eligibility.py | 13 +- etl/eligibility/ha_15_32/app.py | 410 ++++++++++++++++++++++++++++++-- 2 files changed, 405 insertions(+), 18 deletions(-) diff --git a/etl/eligibility/Eligibility.py b/etl/eligibility/Eligibility.py index a24fd2d5..730ff6e1 100644 --- a/etl/eligibility/Eligibility.py +++ b/etl/eligibility/Eligibility.py @@ -46,10 +46,17 @@ class Eligibility: return remapped[0] if key == "walls-description": - return WallAttributes(self.epc["walls-description"]).process() + cleaner_cls = WallAttributes(self.epc["roof-description"]) - if key == "roof-description": - return RoofAttributes(self.epc["roof-description"]).process() + elif key == "roof-description": + cleaner_cls = RoofAttributes(self.epc["roof-description"]) + + else: + raise ValueError("Invalid key") + output = cleaner_cls.process() + output["clean_description"] = cleaner_cls.description.replace("(assumed)", "").rstrip().capitalize() + + return output def loft_insulation(self, loft_thickness_threshold: int = None): """ diff --git a/etl/eligibility/ha_15_32/app.py b/etl/eligibility/ha_15_32/app.py index dd27f7c1..574f926b 100644 --- a/etl/eligibility/ha_15_32/app.py +++ b/etl/eligibility/ha_15_32/app.py @@ -3,6 +3,7 @@ This process has been created to compare the model based eligibility process aga used by the Warmfront team, to identify which properties are eligible for ECO4 and GBIS funding. This work is being done in December 2023, prior to completion of acquisition """ +import pickle from pathlib import Path from tqdm import tqdm import pandas as pd @@ -18,6 +19,8 @@ from etl.eligibility.Eligibility import Eligibility from etl.epc.DataProcessor import DataProcessor from backend.app.utils import read_parquet_from_s3 from backend.app.plan.utils import create_recommendation_scoring_data +from etl.epc.settings import COLUMNS_TO_MERGE_ON +from backend.ml_models.api import ModelApi ENV_FILE = Path(__file__).parent / "etl" / "eligibility" / "ha_15_32" / ".env" @@ -462,6 +465,9 @@ def get_ha_32data(ha_data, cleaned, cleaning_data, created_at): "warmfront_identified": house["identified"], "gbis_eligible": None, "eco4_eligible": None, + "sap": None, + "roof": None, + "walls": None, "date_epc": None, "message": "No EPC found", } @@ -481,13 +487,18 @@ def get_ha_32data(ha_data, cleaned, cleaning_data, created_at): eligibility.check_eco4() # If there is no eligibility, we need to check the penultimate epc - if (not eligibility.eco4["eligible"]) and (not eligibility.gbis): + # However, we only check the penultimate epc if the property is identified + # This is because if the property was identified, it's possible that the newest EPC is a post-retrofit + # EPC, which would mean that the penultimate EPC is the pre-retrofit EPC + # However, if the property HAS been identified, we don't want to check the penultimate EPC since + # The newest EPC will reflect the current state of the home and therefore we determine if there is a new + # opportunity for retrofit + if (not eligibility.eco4["eligible"]) and (not eligibility.gbis) and (house["identified"]): eligibility = Eligibility(epc=penultimate_epc, cleaned=cleaned) eligibility.check_gbis() eligibility.check_eco4() if eligibility.eco4["eligible"]: - # TODO: Check me scoring_dictionary = prepare_model_data_row( property_id=house["row_id"], modelling_epc=eligibility.epc, @@ -502,6 +513,9 @@ def get_ha_32data(ha_data, cleaned, cleaning_data, created_at): "warmfront_identified": house["identified"], "gbis_eligible": eligibility.gbis, "eco4_eligible": eligibility.eco4["eligible"], + "sap": float(eligibility.epc["current-energy-efficiency"]), + "roof": eligibility.roof["clean_description"], + "walls": eligibility.walls["clean_description"], "date_epc": eligibility.epc["lodgement-date"], "message": "eco4 conditional on post sap", } @@ -519,22 +533,235 @@ def get_ha_32data(ha_data, cleaned, cleaning_data, created_at): "warmfront_identified": house["identified"], "gbis_eligible": eligibility.gbis, "eco4_eligible": eligibility.eco4["eligible"], + "sap": float(eligibility.epc["current-energy-efficiency"]), + "roof": eligibility.roof["clean_description"], + "walls": eligibility.walls["clean_description"], "date_epc": eligibility.epc["lodgement-date"], "message": None } ) - logger.info("no_house_numbers") + return results, scoring_data, no_house_numbers - return results, scoring_data + +def get_ha_15data(ha_data, cleaned, cleaning_data, created_at): + house_number_key = None + address_key = "Address Line 1" + postcode_key = "Postcode" + house_name = None + house_type_key = "Property Type" + + house_type_lookup = { + "Bungalow": "Bungalow", + "Flat": "Flat", + 'House': "House", + 'Flat over garage': "Flat", + 'Maisonette': "Maisonette", + } + + scoring_data = [] + results = [] + no_house_numbers = [] + for _, house in tqdm(ha_data.iterrows(), total=len(ha_data)): + + # If we don't have a house number, we'll continue since we won't realistically be able to find + # an address + if house_number_key is not None: + if pd.isnull(house[house_number_key]): + no_house_numbers.append(house["row_id"]) + continue + + if house_name is not None: + if not pd.isnull(house[house_name]): + address1 = " ".join([house[house_name], house[house_number_key], house[address_key]]) + else: + address1 = " ".join([house[house_number_key], house[address_key]]) + else: + address1 = house[address_key] + + searcher = SearchEpc( + address1=address1, + postcode=house[postcode_key] + ) + + response = searcher.search() + if response["status"] == 204: + # If the property is identified, we should fix this + # if house["identified"]: + # raise NotImplementedError("Check if we have an epc") + results.append( + { + "row_id": house["row_id"], + "warmfront_identified": house["identified"], + "gbis_eligible": None, + "eco4_eligible": None, + "sap": None, + "roof": None, + "walls": None, + "date_epc": None, + "message": "No EPC found", + } + ) + continue + + newest_epc, older_epcs, _ = searcher.retrieve( + property_type=house_type_lookup.get(house[house_type_key], None) + ) + # We also want to get the penultimate epc + penultimate_epc, _ = searcher.filter_newest_epc(older_epcs) + if not penultimate_epc: + penultimate_epc = newest_epc + + eligibility = Eligibility(epc=newest_epc, cleaned=cleaned) + eligibility.check_gbis() + eligibility.check_eco4() + + # If there is no eligibility, we need to check the penultimate epc + # However, we only check the penultimate epc if the property is identified + # This is because if the property was identified, it's possible that the newest EPC is a post-retrofit + # EPC, which would mean that the penultimate EPC is the pre-retrofit EPC + # However, if the property HAS been identified, we don't want to check the penultimate EPC since + # The newest EPC will reflect the current state of the home and therefore we determine if there is a new + # opportunity for retrofit + if (not eligibility.eco4["eligible"]) and (not eligibility.gbis) and (house["identified"]): + eligibility = Eligibility(epc=penultimate_epc, cleaned=cleaned) + eligibility.check_gbis() + eligibility.check_eco4() + + if eligibility.eco4["eligible"]: + scoring_dictionary = prepare_model_data_row( + property_id=house["row_id"], + modelling_epc=eligibility.epc, + cleaned=cleaned, + cleaning_data=cleaning_data, + created_at=created_at + ) + scoring_data.append(scoring_dictionary) + results.append( + { + "row_id": house["row_id"], + "warmfront_identified": house["identified"], + "gbis_eligible": eligibility.gbis, + "eco4_eligible": eligibility.eco4["eligible"], + "sap": float(eligibility.epc["current-energy-efficiency"]), + "roof": eligibility.roof["clean_description"], + "walls": eligibility.walls["clean_description"], + "date_epc": eligibility.epc["lodgement-date"], + "message": "eco4 conditional on post sap", + } + ) + continue + + # if (house["identified"] and not eligibility.gbis) and ( + # house["identified"] and not eligibility.eco4["eligible"]): + # raise NotImplementedError("Investigate ms") + + # If nothing is eligible or gbis is eligible, then we make a record this + results.append( + { + "row_id": house["row_id"], + "warmfront_identified": house["identified"], + "gbis_eligible": eligibility.gbis, + "eco4_eligible": eligibility.eco4["eligible"], + "sap": float(eligibility.epc["current-energy-efficiency"]), + "roof": eligibility.roof["clean_description"], + "walls": eligibility.walls["clean_description"], + "date_epc": eligibility.epc["lodgement-date"], + "message": None + } + ) + + # with open("ha_15_outputs.pickle", "rb") as f: + # results_dict = pickle.load(f) + # results = results_dict["results"] + # scoring_data = results_dict["scoring_data"] + # no_house_numbers = results_dict["no_house_numbers"] + + scoring_df = pd.DataFrame(scoring_data) + # Implement the same process that is being used in the recommendation engine to cleaning scoring_df + + # Perform the same cleaning as in the model - first clean number of room variables though + scoring_df = DataProcessor.apply_averages_cleaning( + data_to_clean=scoring_df, + cleaning_data=cleaning_data, + cols_to_merge_on=['PROPERTY_TYPE', 'BUILT_FORM', 'CONSTRUCTION_AGE_BAND', 'LOCAL_AUTHORITY'], + colnames=["NUMBER_HABITABLE_ROOMS", "NUMBER_HEATED_ROOMS"], + ) + + scoring_df = DataProcessor.apply_averages_cleaning( + data_to_clean=scoring_df, + cleaning_data=cleaning_data, + cols_to_merge_on=COLUMNS_TO_MERGE_ON + ["LOCAL_AUTHORITY"], + ).drop(columns=["LOCAL_AUTHORITY"]) + + scoring_df = DataProcessor.clean_missings_after_description_process( + scoring_df, + ignore_cols=[c for c in scoring_df.columns if ("thermal_transmittance" in c) or ( + "insulation_thickness" in c) or ("ENERGY_EFF" in c)] + ) + + scoring_df = DataProcessor.clean_efficiency_variables(scoring_df) + + model_api = ModelApi(portfolio_id="ha32-eligibility", timestamp=created_at) + all_predictions = model_api.predict_all( + df=scoring_df, + bucket="retrofit-data-dev", + prediction_buckets={ + "sap_change_predictions": "retrofit-sap-predictions-dev", + "heat_demand_predictions": "retrofit-heat-predictions-dev", + "carbon_change_predictions": "retrofit-carbon-predictions-dev" + } + ) + + # merge the predictions onto the scoring_df + predictions = all_predictions["sap_change_predictions"] + + results_df = pd.DataFrame(results) + + results_df = results_df.merge( + predictions[["predictions", "property_id"]].rename( + columns={"predictions": "post_install_sap", "property_id": "row_id"} + ), + how="left", + on="row_id" + ) + + # Our methodology for identifying properties is to use the post-install SAP score + # We produce the following classifications, which accomodate the fact that the model can be wrong + # 1) If the post-install SAP score is above 71, we say the property is eligible and we hve high confidence + # 2) If the post-install SAP score is above 69, we say that the property is eligible + # 3) If the post-install SAP score is above 67, we say that the property is eligible, but we are not confident + # 4) If the post-install SAP score is below 67, we say that the property is unlikely to be eligible + + eligibility_assessment = [] + for _, row in results_df[results_df["eco4_eligible"] == True].iterrows(): + + if row["post_install_sap"] >= 71: + eligibility_classification = "highest confidence" + elif row["post_install_sap"] >= 69: + eligibility_classification = "high confidence" + elif row["post_install_sap"] >= 67: + eligibility_classification = "medium confidence" + else: + eligibility_classification = "unlikely" + + eligibility_assessment.append( + { + "row_id": row["row_id"], + "eligibility_classification": eligibility_classification + } + ) + + eligibility_assessment = pd.DataFrame(eligibility_assessment) + + results_df = results_df.merge( + eligibility_assessment, how="left", on="row_id" + ) + + return results_df, scoring_df, no_house_numbers def analyse_ha_32_results(results, ha32, no_house_numbers): - results_df = pd.DataFrame(results) - import pickle - # with open("ha_32_results.pickle", "wb") as f: - # pickle.dump(results_df, f) - """ We want to know: 1) What proportion of identified properties we get correct @@ -544,6 +771,8 @@ def analyse_ha_32_results(results, ha32, no_house_numbers): For HA32, most of these (if not all) properties were identified under gbis """ + results_df = pd.DataFrame(results) + # What proportio warmfront_identified = results_df[ results_df["warmfront_identified"] @@ -552,9 +781,23 @@ def analyse_ha_32_results(results, ha32, no_house_numbers): success_rate = warmfront_identified["gbis_eligible"].sum() / warmfront_identified.shape[0] # For HA32, this is 89% - # missed = results_df[ - # results_df["warmfront_identified"] & (warmfront_identified["gbis_eligible"] != True) - # ] + missed = results_df[ + results_df["warmfront_identified"] & (warmfront_identified["gbis_eligible"] != True) + ] + + sap_too_high = missed[ + missed["sap"] >= 69 + ] + + sap_low_enough = missed[ + missed["sap"] < 69 + ] + + investigate_1 = ha32[ha32["row_id"].isin(sap_too_high["row_id"])][ + ["row_id", "Postcode", "Address", "Dwelling num", "Street"]] + + investigate_2 = ha32[ha32["row_id"].isin(sap_low_enough["row_id"])][ + ["row_id", "Postcode", "Address", "Dwelling num", "Street"]] # to_check = missed[pd.isnull(missed["message"])] @@ -605,7 +848,109 @@ def analyse_ha_32_results(results, ha32, no_house_numbers): if no_house_numbers_ha32: logger.error("We have some identified properties that have no house numbers - investigate me") - return success_rate, new_possibilities + new = { + "n_new_possibilities": new_possibilities.shape[0], + "new_possibilities_confidence": new_possibilities["high_confidence"].value_counts() + } + + return success_rate, new + + +def analyse_ha_15_results(results_df, ha15, no_house_numbers): + """ + We want to know: + 1) What proportion of identified properties we get correct + 2) If we miss identified properties, why + 3) Which properties do we identify that were not identified by warmfront. What is our confidence on these? + + For HA32, most of these (if not all) properties were identified under gbis + """ + + # What proportio + warmfront_identified = results_df[ + results_df["warmfront_identified"] + ] + + n_identified = (warmfront_identified["gbis_eligible"] | warmfront_identified["eco4_eligible"]).sum() + + success_rate = n_identified / warmfront_identified.shape[0] + + eco_identified_confidence = warmfront_identified[warmfront_identified["eco4_eligible"] == True][ + "eligibility_classification"].value_counts() + # For HA15 this is 50.3% + + # of the properties we identify, what is the mix of confidenc + + missed = results_df[ + results_df["warmfront_identified"] & ( + (warmfront_identified["gbis_eligible"] != True) & (warmfront_identified["eco4_eligible"] != True) + ) + ] + + missed_no_data = missed[missed["message"] == "No EPC found"].shape[0] + + sap_too_high = missed[ + missed["sap"] >= 69 + ] + + sap_low_enough = missed[ + missed["sap"] < 69 + ] + + sap_low_enough["walls"].value_counts() + + investigate_1 = ha15[ha15["row_id"].isin(sap_too_high["row_id"])][ + ["row_id", "Postcode", "Address Line 1", "Address Line 2", "Address Line 3"]] + + investigate_2 = ha15[ha15["row_id"].isin(sap_low_enough["row_id"])][ + ["row_id", "Postcode", "Address Line 1", "Address Line 2", "Address Line 3"]] + + missed["message"].value_counts() + + # We now look for properties that we identified, that were not identified by Warmfront + + new_possibilities = results_df[ + (~results_df["warmfront_identified"]) & + (results_df["gbis_eligible"] | results_df["eco4_eligible"]) + ].copy() + + # We deem that Any EPC that is produced in the last 3 years gives us good confidence for GBIS + cutoff_date = datetime.now() - timedelta(days=3 * 365) + + new_possibilities["high_confidence"] = pd.to_datetime(new_possibilities["date_epc"]) >= cutoff_date + + eco_new_possibilities = new_possibilities["eco4_eligible"].sum() + eco_new_possibilities_confidence = new_possibilities[ + new_possibilities["eco4_eligible"] + ]["eligibility_classification"].value_counts() + + gbis_new_possibilites = new_possibilities["gbis_eligible"].sum() + gbis_new_possibilites_confidence = new_possibilities[ + new_possibilities["gbis_eligible"] + ]["high_confidence"].value_counts() + + new = { + "new_possibilities": new_possibilities, + "eco_new_possibilities": eco_new_possibilities, + "eco_new_possibilities_confidence": eco_new_possibilities_confidence, + "gbis_new_possibilites": gbis_new_possibilites, + "gbis_new_possibilites_confidence": gbis_new_possibilites_confidence + } + + identified_results = { + "n_identified": n_identified, + "success_rate": success_rate, + "eco_identified_confidence": eco_identified_confidence + } + + missed_results = { + "n_missed": missed.shape[0], + "n_sap_too_high": sap_too_high.shape[0], + "n_sap_low_enough": sap_low_enough.shape[0], + "missed_no_data": missed_no_data + } + + return success_rate, new, identified_results, missed_results def app(): @@ -631,6 +976,41 @@ def app(): # We want to retrieve EPCs for every single property # NOTE: HA32 is MOSTLY cavity via GBIS - ha_data = ha32 - ha_32_results = get_ha_32data(ha_data, cleaned, cleaning_data, created_at) + ha32_results, ha32_scoring_data, ha32_no_house_numbers = get_ha_32data( + ha_data=ha32, + cleaned=cleaned, + cleaning_data=cleaning_data, + created_at=created_at + ) + + # with open("ha32.pickle", "wb") as f: + # pickle.dump( + # { + # "ha32_results": ha32_results, + # "ha32_scoring_data": ha32_scoring_data, + # "ha32_no_house_numbers": ha32_no_house_numbers + # }, + # f + # ) + + ha32_success_rate, ha32_new_possibilities = analyse_ha_32_results( + results=ha32_results, ha32=ha32, no_house_numbers=ha32_no_house_numbers + ) + + # HA 15 + ha15_results_df, ha15_scoring_df, ha15_no_house_numbers = get_ha_15data(ha15, cleaned, cleaning_data, created_at) + + # with open("ha15.pickle", "wb") as f: + # pickle.dump( + # { + # "ha15_results_df": ha15_results_df, + # "ha15_scoring_df": ha15_scoring_df, + # "ha15_no_house_numbers": ha15_no_house_numbers + # }, + # f + # ) + + ha15_success_rate, ha15_new, ha15_identified_results, ha15_missed_results = analyse_ha_15_results( + ha15_results_df, ha15, ha15_no_house_numbers + ) From 7d0502afe0c0eeac50e33d7a09a096e1eac4c92e Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Tue, 12 Dec 2023 17:44:06 +0000 Subject: [PATCH 058/526] minor changes to result for ha15 --- etl/eligibility/ha_15_32/app.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/etl/eligibility/ha_15_32/app.py b/etl/eligibility/ha_15_32/app.py index 574f926b..10c46f12 100644 --- a/etl/eligibility/ha_15_32/app.py +++ b/etl/eligibility/ha_15_32/app.py @@ -911,7 +911,7 @@ def analyse_ha_15_results(results_df, ha15, no_house_numbers): new_possibilities = results_df[ (~results_df["warmfront_identified"]) & - (results_df["gbis_eligible"] | results_df["eco4_eligible"]) + ((results_df["gbis_eligible"] == True) | (results_df["eco4_eligible"] == True)) ].copy() # We deem that Any EPC that is produced in the last 3 years gives us good confidence for GBIS From dd834d337e233d7ff1ab037ce3186cee87be48b5 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Tue, 12 Dec 2023 20:28:43 +0000 Subject: [PATCH 059/526] working on full eco eligibility --- etl/eligibility/Eligibility.py | 234 ++++++++++++++++++++++++++++++-- etl/eligibility/ha_15_32/app.py | 61 +++++---- 2 files changed, 255 insertions(+), 40 deletions(-) diff --git a/etl/eligibility/Eligibility.py b/etl/eligibility/Eligibility.py index 730ff6e1..8b205c79 100644 --- a/etl/eligibility/Eligibility.py +++ b/etl/eligibility/Eligibility.py @@ -1,6 +1,7 @@ from recommendations.recommendation_utils import convert_thickness_to_numeric from etl.epc_clean.epc_attributes.RoofAttributes import RoofAttributes from etl.epc_clean.epc_attributes.WallAttributes import WallAttributes +from etl.epc_clean.epc_attributes.FloorAttributes import FloorAttributes class Eligibility: @@ -17,20 +18,43 @@ class Eligibility: loft = None cavity = None + solid_wall = None + room_roof = None + flat_roof = None + suspended_floor = None + solid_floor = None - # schemes + # schemes based on Warmfront now + gbis_warmfront = None + eco4_warmfront = None + # Schemes based on full eligibility gbis = None eco4 = None # If the loft has less than 100mm of insulation, we classify the home has needing loft insulation LOFT_INSULATION_THRESHOLD = 100 + # Because EPCS have different values for tenure, we need to remap them to a common set of values + tenure_remap = { + 'NO DATA!': "unknown", + 'Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is no': + "unknown", + 'Owner-occupied': 'Owner-occupied', + 'Rented (private)': 'Rented (private)', + 'Rented (social)': 'Rented (social)', + 'owner-occupied': 'Owner-occupied', + 'rental (private)': 'Rented (private)', + 'rental (social)': 'Rented (social)', + 'unknown': "unknown", + } + def __init__(self, epc, cleaned): self.epc = epc self.cleaned = cleaned self.walls = self.parse_fabric("walls-description") self.roof = self.parse_fabric("roof-description") + self.floor = self.parse_fabric("floor-description") self.loft_insulation() self.cavity_insulation() @@ -51,6 +75,9 @@ class Eligibility: elif key == "roof-description": cleaner_cls = RoofAttributes(self.epc["roof-description"]) + elif key == "floor-description": + cleaner_cls = FloorAttributes(self.epc["floor-description"]) + else: raise ValueError("Invalid key") output = cleaner_cls.process() @@ -144,7 +171,72 @@ class Eligibility: "type": "full" } - def check_gbis(self): + def solid_wall_insulation(self): + """ + Given the description of the walls, this function determines if the property is suitable for solid wall + insulation + :return: + """ + + is_solid = self.walls["is_solid_brick"] + is_insulated = self.walls["insulation_thickness"] in ["average", "above average"] + + if is_solid and is_insulated: + self.solid_wall = { + "suitability": True, + } + return + + self.solid_wall = { + "suitability": False, + } + + def room_roof_insulation(self): + is_room_roof = self.roof["is_roof_room"] + + insulation_thickness = convert_thickness_to_numeric( + self.roof["insulation_thickness"], + self.roof["is_pitched"], + self.roof["is_flat"] + ) + + self.room_roof = { + "suitability": is_room_roof and insulation_thickness == 0, + "thickness": insulation_thickness + } + + def flat_roof_insulation(self): + is_flat = self.roof["is_flat"] + insulation_thickness = convert_thickness_to_numeric( + self.roof["insulation_thickness"], + self.roof["is_pitched"], + self.roof["is_flat"] + ) + + self.flat_roof = { + "suitability": is_flat and insulation_thickness <= 100, + "thickness": insulation_thickness + } + + def suspended_floor_insulation(self): + is_suspended = self.floor["is_suspended"] + is_insulated = self.floor["insulation_thickness"] in ["average", "above average"] + + self.suspended_floor = { + "suitability": is_suspended and (not is_insulated), + } + return + + def solid_floor_insulation(self): + is_solid = self.floor["is_solid"] + is_insulated = self.floor["insulation_thickness"] in ["average", "above average"] + + self.solid_floor = { + "suitability": is_solid and (not is_insulated), + } + return + + def check_gbis_warmfront(self): """ The Eligibility criteria for the Great British Insulation Scheme (GBIS) can be found here: https://www.ofgem.gov.uk/environmental-and-social-schemes/great-british-insulation-scheme/homeowners-and-tenants @@ -176,15 +268,11 @@ class Eligibility: self.cavity_insulation() self.loft_insulation() - # self.gbis = (self.cavity["suitability"] or self.loft["suitability"]) and ( - # int(self.epc["current-energy-efficiency"]) <= 68 - # ) - - self.gbis = (self.cavity["suitability"]) and ( + self.gbis_warmfront = (self.cavity["suitability"]) and ( int(self.epc["current-energy-efficiency"]) <= 68 ) - def check_eco4(self, post_retrofit_sap=None): + def check_eco4_warmfront(self, post_retrofit_sap=None): """ This funciton will check if the property is eligible for funding under the ECO4 scheme @@ -214,7 +302,7 @@ class Eligibility: current_sap = int(self.epc["current-energy-efficiency"]) if current_sap > 54: - self.eco4 = { + self.eco4_warmfront = { "eligible": False, "message": "sap too high" } @@ -227,7 +315,7 @@ class Eligibility: is_eligible = self.cavity["suitability"] & self.loft["suitability"] if post_retrofit_sap is None: - self.eco4 = { + self.eco4_warmfront = { "eligible": is_eligible, "message": "subject to post retrofit sap" } @@ -235,8 +323,132 @@ class Eligibility: is_eligible = is_eligible & (post_retrofit_sap >= 69) - self.eco4 = { + self.eco4_warmfront = { "eligible": is_eligible, "message": None } return + + def check_gbis(self): + + """ + The Eligibility criteria for the Great British Insulation Scheme (GBIS) can be found here: + https://www.ofgem.gov.uk/environmental-and-social-schemes/great-british-insulation-scheme/homeowners-and-tenants + + Full delivery guidance and be downloaded here: + https://www.ofgem.gov.uk/sites/default/files/2023-08/Great%20British%20Insulation%20Scheme%20Delivery + %20Guidance%20V101693416860968.pdf + + For social housing, the criteria is the following: + + If the property is currently an EPC D: + - It's valid for innovation measures only but not a heating control measure + - The property must be rented at below the market rate. All eligible social housing is treated based on the + low income group, therefore the tennant must be in receipt of one the eligible benefits + + If the property is currently an EPC E or below: + - It's valid for all eligible insulation measures + - The property must be rented at below the market rate. All eligible social housing is treated based on the + low income group, therefore the tennant must be in receipt of one the eligible benefits + + From GBIS guidance document: + Determining whether the premises are let below market rate + + 3.101 Social housing under this provision will only be eligible where the housing is let below + the market rate. The supplier must produce a declaration signed by a social landlord + providing confirmation that the social housing premises are let below the market rate, + or where the premises are currently void, have previously and will be let below the + market rate. The declaration to be signed by a social landlord is included within the + Eligibility and Pre-Retrofit Declaration form. This declaration form must be retained by + suppliers and be available on request for audit purposes. + + 3.102 Where social housing is let at or above the market rate, the property can be treated as + a private domestic premises, where the occupant meets the eligibility requirements. + See section on PRS from paragraph 1.13 for more information. + + This method searches ALL of the possible measures that can be implemented under GBIS. This includes: + - cavity wall (including party wall) + - loft + - solid wall + - pitched roof + - flat roof + - under-floor + - solid floor + - park home + - room-in-roof + + :return: + """ + + self.cavity_insulation() + self.loft_insulation() + self.solid_wall_insulation() + self.room_roof_insulation() + self.flat_roof_insulation() + self.suspended_floor_insulation() + self.solid_floor_insulation() + + tenure = self.tenure_remap.get(self.epc["tenure"], None) + current_sap = int(self.epc["current-energy-efficiency"]) + is_below_e = current_sap <= 54 + is_below_c = current_sap <= 68 + + needs_measure = ( + self.cavity["suitability"] or + self.loft["suitability"] or + self.solid_wall["suitability"] or + self.room_roof["suitability"] or + self.flat_roof["suitability"] or + self.suspended_floor["suitability"] or + self.solid_floor["suitability"] + ) + + if tenure == "Rented (social)": + + if is_below_c and (not is_below_e): + # this is a placeholder methodology + self.gbis = { + "eligible": int(self.epc["potential-energy-efficiency"]) > current_sap, + "message": "proxy methodology until we complete innovation measure recommendations" + } + return + elif (not is_below_c) and is_below_e: + self.gbis = { + "eligible": needs_measure, + "message": "proxy methodology until we complete innovation measure recommendations" + } + return + else: + self.gbis = { + "eligible": False, + "message": "not eligible" + } + return + + elif tenure == "Rented (private)": + self.gbis = { + "eligible": is_below_c and needs_measure, + "message": "conditional tenant occupancy requirements and coucil tax band" + } + return + elif tenure == "Owner-occupied": + self.gbis = { + "eligible": False, + "message": "Out-of-scope" + } + return + + elif (tenure is None) or tenure == "unknown": + self.gbis = { + "eligible": needs_measure, + "message": "unknown tenure" + } + return + else: + raise ValueError("Implement me other tenure types") + + def check_eco4_potential(self): + """ + Because ECO4 supports nearly all measures, if we have commercial agreements in place then we + :return: + """ diff --git a/etl/eligibility/ha_15_32/app.py b/etl/eligibility/ha_15_32/app.py index 10c46f12..027b2c53 100644 --- a/etl/eligibility/ha_15_32/app.py +++ b/etl/eligibility/ha_15_32/app.py @@ -470,6 +470,8 @@ def get_ha_32data(ha_data, cleaned, cleaning_data, created_at): "walls": None, "date_epc": None, "message": "No EPC found", + "gbis_eligible_future": None, + "gbis_eligible_future_message": None, } ) continue @@ -483,8 +485,8 @@ def get_ha_32data(ha_data, cleaned, cleaning_data, created_at): penultimate_epc = newest_epc eligibility = Eligibility(epc=newest_epc, cleaned=cleaned) - eligibility.check_gbis() - eligibility.check_eco4() + eligibility.check_gbis_warmfront() + eligibility.check_eco4_warmfront() # If there is no eligibility, we need to check the penultimate epc # However, we only check the penultimate epc if the property is identified @@ -493,12 +495,17 @@ def get_ha_32data(ha_data, cleaned, cleaning_data, created_at): # However, if the property HAS been identified, we don't want to check the penultimate EPC since # The newest EPC will reflect the current state of the home and therefore we determine if there is a new # opportunity for retrofit - if (not eligibility.eco4["eligible"]) and (not eligibility.gbis) and (house["identified"]): + if (not eligibility.eco4_warmfront["eligible"]) and (not eligibility.gbis_warmfront) and (house["identified"]): eligibility = Eligibility(epc=penultimate_epc, cleaned=cleaned) - eligibility.check_gbis() - eligibility.check_eco4() + eligibility.check_gbis_warmfront() + eligibility.check_eco4_warmfront() - if eligibility.eco4["eligible"]: + # If the house is not identified, we do a full gbis and eco4 check + # TODO: Add in ECO4 check + eligibility.check_gbis() + # eligibility.check_eco4() + + if eligibility.eco4_warmfront["eligible"]: scoring_dictionary = prepare_model_data_row( property_id=house["row_id"], modelling_epc=eligibility.epc, @@ -511,33 +518,33 @@ def get_ha_32data(ha_data, cleaned, cleaning_data, created_at): { "row_id": house["row_id"], "warmfront_identified": house["identified"], - "gbis_eligible": eligibility.gbis, - "eco4_eligible": eligibility.eco4["eligible"], + "gbis_eligible": eligibility.gbis_warmfront, + "eco4_eligible": eligibility.eco4_warmfront["eligible"], "sap": float(eligibility.epc["current-energy-efficiency"]), "roof": eligibility.roof["clean_description"], "walls": eligibility.walls["clean_description"], "date_epc": eligibility.epc["lodgement-date"], "message": "eco4 conditional on post sap", + "gbis_eligible_future": eligibility.gbis["eligible"], + "gbis_eligible_future_message": eligibility.gbis["message"], } ) continue - # if (house["identified"] and not eligibility.gbis) and ( - # house["identified"] and not eligibility.eco4["eligible"]): - # raise NotImplementedError("Investigate ms") - # If nothing is eligible or gbis is eligible, then we make a record this results.append( { "row_id": house["row_id"], "warmfront_identified": house["identified"], - "gbis_eligible": eligibility.gbis, - "eco4_eligible": eligibility.eco4["eligible"], + "gbis_eligible": eligibility.gbis_warmfront, + "eco4_eligible": eligibility.eco4_warmfront["eligible"], "sap": float(eligibility.epc["current-energy-efficiency"]), "roof": eligibility.roof["clean_description"], "walls": eligibility.walls["clean_description"], "date_epc": eligibility.epc["lodgement-date"], - "message": None + "message": None, + "gbis_eligible_future": eligibility.gbis["eligible"], + "gbis_eligible_future_message": eligibility.gbis["message"], } ) @@ -613,8 +620,8 @@ def get_ha_15data(ha_data, cleaned, cleaning_data, created_at): penultimate_epc = newest_epc eligibility = Eligibility(epc=newest_epc, cleaned=cleaned) - eligibility.check_gbis() - eligibility.check_eco4() + eligibility.check_gbis_warmfront() + eligibility.check_eco4_warmfront() # If there is no eligibility, we need to check the penultimate epc # However, we only check the penultimate epc if the property is identified @@ -623,12 +630,12 @@ def get_ha_15data(ha_data, cleaned, cleaning_data, created_at): # However, if the property HAS been identified, we don't want to check the penultimate EPC since # The newest EPC will reflect the current state of the home and therefore we determine if there is a new # opportunity for retrofit - if (not eligibility.eco4["eligible"]) and (not eligibility.gbis) and (house["identified"]): + if (not eligibility.eco4_warmfront["eligible"]) and (not eligibility.gbis_warmfront) and (house["identified"]): eligibility = Eligibility(epc=penultimate_epc, cleaned=cleaned) - eligibility.check_gbis() - eligibility.check_eco4() + eligibility.check_gbis_warmfront() + eligibility.check_eco4_warmfront() - if eligibility.eco4["eligible"]: + if eligibility.eco4_warmfront["eligible"]: scoring_dictionary = prepare_model_data_row( property_id=house["row_id"], modelling_epc=eligibility.epc, @@ -641,8 +648,8 @@ def get_ha_15data(ha_data, cleaned, cleaning_data, created_at): { "row_id": house["row_id"], "warmfront_identified": house["identified"], - "gbis_eligible": eligibility.gbis, - "eco4_eligible": eligibility.eco4["eligible"], + "gbis_eligible": eligibility.gbis_warmfront, + "eco4_eligible": eligibility.eco4_warmfront["eligible"], "sap": float(eligibility.epc["current-energy-efficiency"]), "roof": eligibility.roof["clean_description"], "walls": eligibility.walls["clean_description"], @@ -652,17 +659,13 @@ def get_ha_15data(ha_data, cleaned, cleaning_data, created_at): ) continue - # if (house["identified"] and not eligibility.gbis) and ( - # house["identified"] and not eligibility.eco4["eligible"]): - # raise NotImplementedError("Investigate ms") - # If nothing is eligible or gbis is eligible, then we make a record this results.append( { "row_id": house["row_id"], "warmfront_identified": house["identified"], - "gbis_eligible": eligibility.gbis, - "eco4_eligible": eligibility.eco4["eligible"], + "gbis_eligible": eligibility.gbis_warmfront, + "eco4_eligible": eligibility.eco4_warmfront["eligible"], "sap": float(eligibility.epc["current-energy-efficiency"]), "roof": eligibility.roof["clean_description"], "walls": eligibility.walls["clean_description"], From c769c0784390ed6fcabd88f1e6ae140179ae84cc Mon Sep 17 00:00:00 2001 From: Michael Duong Date: Wed, 13 Dec 2023 10:53:28 +0000 Subject: [PATCH 060/526] add test file --- etl/epc/testfile.csv | 10001 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 10001 insertions(+) create mode 100644 etl/epc/testfile.csv diff --git a/etl/epc/testfile.csv b/etl/epc/testfile.csv new file mode 100644 index 00000000..48152a10 --- /dev/null +++ b/etl/epc/testfile.csv @@ -0,0 +1,10001 @@ +LMK_KEY,ADDRESS1,ADDRESS2,ADDRESS3,POSTCODE,BUILDING_REFERENCE_NUMBER,CURRENT_ENERGY_RATING,POTENTIAL_ENERGY_RATING,CURRENT_ENERGY_EFFICIENCY,POTENTIAL_ENERGY_EFFICIENCY,PROPERTY_TYPE,BUILT_FORM,INSPECTION_DATE,LOCAL_AUTHORITY,CONSTITUENCY,COUNTY,LODGEMENT_DATE,TRANSACTION_TYPE,ENVIRONMENT_IMPACT_CURRENT,ENVIRONMENT_IMPACT_POTENTIAL,ENERGY_CONSUMPTION_CURRENT,ENERGY_CONSUMPTION_POTENTIAL,CO2_EMISSIONS_CURRENT,CO2_EMISS_CURR_PER_FLOOR_AREA,CO2_EMISSIONS_POTENTIAL,LIGHTING_COST_CURRENT,LIGHTING_COST_POTENTIAL,HEATING_COST_CURRENT,HEATING_COST_POTENTIAL,HOT_WATER_COST_CURRENT,HOT_WATER_COST_POTENTIAL,TOTAL_FLOOR_AREA,ENERGY_TARIFF,MAINS_GAS_FLAG,FLOOR_LEVEL,FLAT_TOP_STOREY,FLAT_STOREY_COUNT,MAIN_HEATING_CONTROLS,MULTI_GLAZE_PROPORTION,GLAZED_TYPE,GLAZED_AREA,EXTENSION_COUNT,NUMBER_HABITABLE_ROOMS,NUMBER_HEATED_ROOMS,LOW_ENERGY_LIGHTING,NUMBER_OPEN_FIREPLACES,HOTWATER_DESCRIPTION,HOT_WATER_ENERGY_EFF,HOT_WATER_ENV_EFF,FLOOR_DESCRIPTION,FLOOR_ENERGY_EFF,FLOOR_ENV_EFF,WINDOWS_DESCRIPTION,WINDOWS_ENERGY_EFF,WINDOWS_ENV_EFF,WALLS_DESCRIPTION,WALLS_ENERGY_EFF,WALLS_ENV_EFF,SECONDHEAT_DESCRIPTION,SHEATING_ENERGY_EFF,SHEATING_ENV_EFF,ROOF_DESCRIPTION,ROOF_ENERGY_EFF,ROOF_ENV_EFF,MAINHEAT_DESCRIPTION,MAINHEAT_ENERGY_EFF,MAINHEAT_ENV_EFF,MAINHEATCONT_DESCRIPTION,MAINHEATC_ENERGY_EFF,MAINHEATC_ENV_EFF,LIGHTING_DESCRIPTION,LIGHTING_ENERGY_EFF,LIGHTING_ENV_EFF,MAIN_FUEL,WIND_TURBINE_COUNT,HEAT_LOSS_CORRIDOR,UNHEATED_CORRIDOR_LENGTH,FLOOR_HEIGHT,PHOTO_SUPPLY,SOLAR_WATER_HEATING_FLAG,MECHANICAL_VENTILATION,ADDRESS,LOCAL_AUTHORITY_LABEL,CONSTITUENCY_LABEL,POSTTOWN,CONSTRUCTION_AGE_BAND,LODGEMENT_DATETIME,TENURE,FIXED_LIGHTING_OUTLETS_COUNT,LOW_ENERGY_FIXED_LIGHT_COUNT,UPRN,UPRN_SOURCE +188eed2911ac58f844813131bd10cc499b90f7506e3ec5d653492c906b8bb498,67 Lower Road,,,ME15 7RH,10003480118,D,B,66,81,House,End-Terrace,2022-10-20,E07000110,E14000804,Kent,2022-10-25,rental,62,77,257,138.0,3.1,45,1.7,63.0,63.0,510.0,483.0,117.0,77.0,69.0,Unknown,Y,,,,,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.4,0.0,N,natural,67 Lower Road,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2022-10-25 23:42:16,Rented (social),9.0,,200003695299.0,Energy Assessor +784291945232012050319010481068903,Flat Amazon,The Green,Bearsted,ME14 4EA,4391908968,E,D,50,67,House,Detached,2012-05-03,E07000110,E14000700,Kent,2012-05-03,marketed sale,46,62,316,197.0,5.0,61,3.2,84.0,45.0,866.0,755.0,46.0,46.0,82.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,4.0,4.0,13.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Poor,Poor,,,,"Roof room(s), no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 13% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"Flat Amazon, The Green, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2012-05-03 19:01:04,owner-occupied,15.0,2.0,200003727035.0,Address Matched +25c80435cce441b0f2ac2f0bceb452611d3293a01c50eed4786df20c84079bf8,110 FARLEIGH COURT,FARLEIGH LANE,,ME16 9BH,9136424868,D,D,62,65,Flat,End-Terrace,2021-07-01,E07000110,E14000804,Kent,2021-07-01,rental,57,62,293,259.0,3.2,52,2.8,55.0,55.0,592.0,524.0,67.0,67.0,62.0,Single,Y,01,Y,,,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,(another dwelling below),,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,no corridor,,2.31,0.0,N,natural,"110 FARLEIGH COURT, FARLEIGH LANE",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2021-07-01 16:58:17,Rented (social),7.0,,200003683281.0,Energy Assessor +172141770832008102517413280268398,"42, Hatherall Road",,,ME14 5HF,7810323568,C,C,69,71,House,Semi-Detached,2008-10-23,E07000110,E14000804,Kent,2008-10-25,rental (private),65,66,211,204.0,4.7,35,4.6,110.0,62.0,549.0,558.0,98.0,98.0,133.83,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,2.0,7.0,7.0,21.0,0.0,From main system,Very Good,Very Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 250mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 21% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.44,0.0,N,natural,"42, Hatherall Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2008-10-25 17:41:32,rental (private),,,200003705426.0,Address Matched +1818811329852020081814591825900379,Flat 10 Ulysses House,Rosalind Drive,,ME14 2FL,3907951778,B,B,85,85,Flat,Mid-Terrace,2020-08-18,E07000110,E14000804,Kent,2020-08-18,new dwelling,89,89,74,74.0,0.9,13,0.9,62.0,62.0,140.0,140.0,97.0,97.0,71.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.01 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.44 W/m-¦K,Good,Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Flat 10 Ulysses House, Rosalind Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2020-08-18 14:59:18,unknown,14.0,14.0,10094441398.0,Address Matched +1488271289402017090813351146730988,4 Greensand Meadow,Sutton Valence,,ME17 3FP,9436387478,B,A,83,96,House,Semi-Detached,2017-09-08,E07000110,E14000700,Kent,2017-09-08,new dwelling,86,98,91,0.0,1.3,16,0.0,57.0,57.0,198.0,199.0,102.0,54.0,80.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.14 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"4 Greensand Meadow, Sutton Valence",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2017-09-08 13:35:11,owner-occupied,10.0,10.0,10093303723.0,Address Matched +597349106552014100319170592049387,"1, Shepway Court",Norfolk Road,,ME15 7JF,3752624868,C,C,73,77,Flat,Semi-Detached,2014-10-02,E07000110,E14000700,Kent,2014-10-03,rental (social),74,80,165,129.0,1.9,32,1.5,42.0,42.0,325.0,272.0,158.0,125.0,61.0,Single,Y,Ground,N,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,no corridor,,,0.0,,natural,"1, Shepway Court, Norfolk Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1976-1982,2014-10-03 19:17:05,rental (social),6.0,6.0,200003713179.0,Address Matched +511678689042010071023065374709608,23 Hawley Court,London Road,,ME16 8QJ,4057387768,C,B,79,84,Flat,Semi-Detached,2010-07-10,E07000110,E14000804,Kent,2010-07-10,rental (social),77,83,204,148.0,1.6,34,1.2,38.0,25.0,281.0,216.0,78.0,78.0,47.7,Single,Y,4th,N,8.0,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,50.0,0.0,From main system,Very Good,Very Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,unheated corridor,5.0,2.39,0.0,N,natural,"23 Hawley Court, London Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2010-07-10 23:06:53,rental (social),,,200003668456.0,Address Matched +1576061909242017091917224057439818,8 Cherry View,Green Lane,Boughton Monchelsea,ME17 4LE,7218604578,D,C,62,75,House,Semi-Detached,2017-09-19,E07000110,E14000700,Kent,2017-09-19,marketed sale,55,68,223,150.0,6.5,41,4.5,188.0,94.0,1121.0,992.0,127.0,111.0,160.0,dual,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,8.0,8.0,0.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"System built, with internal insulation",Good,Good,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"8 Cherry View, Green Lane, Boughton Monchelsea",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2017-09-19 17:22:40,owner-occupied,,,200003674850.0,Address Matched +27cb0d7dc3f7abd2a264c7ec951dea88b3666ea6fa0ddea69c0b8d8f6443bb4d,1 Honduras Terrace,Invicta Park,,ME14 2PA,10001324262,D,B,66,84,House,End-Terrace,2021-08-26,E07000110,E14000804,Kent,2021-08-27,Stock condition survey,62,82,234,98.0,3.3,41,1.4,74.0,74.0,581.0,453.0,82.0,56.0,81.0,dual,Y,,,,,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Average,Average,,,,"Flat, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.28,0.0,N,natural,"1 Honduras Terrace, Invicta Park",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2021-08-27 16:57:45,Rented (social),12.0,,200003723933.0,Energy Assessor +509590789022010070721163857538750,"2, Halfpenny Close",,,ME16 9AJ,5514867768,D,C,66,75,House,Detached,2010-07-07,E07000110,E14000804,Kent,2010-07-07,marketed sale,62,71,229,172.0,5.2,38,3.9,132.0,75.0,678.0,546.0,187.0,147.0,135.89,Single,Y,NO DATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,6.0,6.0,23.0,0.0,From main system,Good,Good,"Solid, limited insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 23% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.38,0.0,N,natural,"2, Halfpenny Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2010-07-07 21:16:38,owner-occupied,,,200003688712.0,Address Matched +776891374232012041712572610968209,"37, Leonard Gould Way",Loose,,ME15 9FX,7970257968,B,B,83,83,House,Semi-Detached,2012-04-17,E07000110,E14000700,Kent,2012-04-17,new dwelling,84,84,83,83.0,2.0,16,2.0,75.0,75.0,327.0,327.0,100.0,100.0,130.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,10.0,,From main system,Good,Good,Average thermal transmittance 0.12 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m?K,Very Good,Very Good,"Room heaters, electric",,,Average thermal transmittance 0.10 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in 77% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.45,,,NO DATA!,"37, Leonard Gould Way, Loose",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2012-04-17 12:57:26,,13.0,10.0,10014311154.0,Address Matched +425549706112010012616462197200973,"32, Melville Road",,,ME15 7UY,9363671768,D,D,59,61,House,End-Terrace,2010-01-26,E07000110,E14000804,Kent,2010-01-26,marketed sale,53,54,369,361.0,3.7,62,3.6,61.0,31.0,580.0,586.0,89.0,89.0,59.81,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,4.0,4.0,0.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.56,0.0,N,natural,"32, Melville Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2010-01-26 16:46:21,owner-occupied,,,200003696082.0,Address Matched +726586707112012040408224795020295,"26, Reinden Grove",Downswood,,ME15 8TH,2547753968,D,B,68,87,House,Semi-Detached,2012-04-04,E07000110,E14000700,Kent,2012-04-04,marketed sale,68,89,194,52.0,2.5,37,0.7,76.0,38.0,371.0,335.0,124.0,66.0,68.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"26, Reinden Grove, Downswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1976-1982,2012-04-04 08:22:47,owner-occupied,8.0,0.0,200003686353.0,Address Matched +1678114259022019100912325171918988,Flat 612,Kent House,Romney Place,ME15 6LA,8775531678,D,D,67,67,Flat,Detached,2018-11-09,E07000110,E14000804,Kent,2019-10-09,non marketed sale,70,70,218,218.0,2.1,37,2.1,45.0,45.0,385.0,385.0,276.0,276.0,57.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,"Electric immersion, standard tariff",Very Poor,Poor,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.34 W/m-¦K,Good,Good,,,,(other premises above),,,Electric underfloor heating,Very Poor,Poor,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"Flat 612, Kent House, Romney Place",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2019-10-09 12:32:51,unknown,21.0,21.0,, +576131199262010122117490642798290,"79, Foxden Drive",Downswood,,ME15 8TF,9414942868,C,C,72,77,Bungalow,Semi-Detached,2010-12-21,E07000110,E14000700,Kent,2010-12-21,marketed sale,69,74,277,231.0,2.1,46,1.8,41.0,24.0,315.0,290.0,124.0,102.0,52.05,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,30.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 30% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.37,0.0,N,natural,"79, Foxden Drive, Downswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1976-1982,2010-12-21 17:49:06,owner-occupied,,,200003686327.0,Address Matched +242397622752009030917364409010452,"162, Roseholme",,,ME16 8DT,4281298568,E,C,47,70,Flat,Detached,2009-03-07,E07000110,E14000804,Kent,2009-03-09,rental (private),46,59,510,373.0,4.2,76,3.1,53.0,29.0,425.0,273.0,202.0,108.0,54.8,dual,N,Ground,N,3.0,2401.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,17.0,0.0,"Electric immersion, off-peak",Very Poor,Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,Portable electric heaters,,,(another dwelling above),,,Electric storage heaters,Poor,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 17% of fixed outlets,Poor,Poor,electricity - this is for backwards compatibility only and should not be used,0.0,unheated corridor,5.6,2.34,0.0,N,natural,"162, Roseholme",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2009-03-09 17:36:44,rental (private),,,200003656482.0,Address Matched +1301211429262018012621552694668038,"24, Princes Way",Detling,,ME14 3LB,3985264378,C,B,74,85,House,Detached,2018-01-26,E07000110,E14000700,Kent,2018-01-26,marketed sale,72,82,162,89.0,2.7,29,1.5,64.0,64.0,461.0,461.0,97.0,66.0,95.0,Unknown,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,7.0,7.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"24, Princes Way, Detling",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1976-1982,2018-01-26 21:55:26,owner-occupied,,,200003694036.0,Address Matched +1479678329302018060613152546780358,14 Buckingham Drive,Harrietsham,,ME17 1GF,2396327478,B,A,84,95,House,Detached,2018-06-05,E07000110,E14000700,Kent,2018-06-06,new dwelling,86,97,86,8.0,1.3,15,0.2,60.0,60.0,223.0,223.0,82.0,50.0,89.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.27 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"14 Buckingham Drive, Harrietsham",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2018-06-06 13:15:25,owner-occupied,16.0,16.0,10093303070.0,Address Matched +1805417762402020062408380471002678,"22, Kings Road",Headcorn,,TN27 9QU,8428160778,C,B,70,85,House,Mid-Terrace,2020-06-23,E07000110,E14000700,Kent,2020-06-24,none of the above,67,83,196,88.0,3.0,34,1.4,137.0,68.0,455.0,432.0,134.0,81.0,88.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, 350 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"22, Kings Road, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,England and Wales: 1950-1966,2020-06-24 08:38:04,rental (social),,,200003698720.0,Address Matched +1162700424712014062414475098240224,"1, Nursery Avenue",,,ME16 0HP,2443484278,D,B,64,87,House,Semi-Detached,2014-06-23,E07000110,E14000804,Kent,2014-06-24,FiT application,61,88,219,53.0,3.5,42,0.9,50.0,50.0,541.0,384.0,234.0,75.0,84.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,100.0,0.0,"From main system, no cylinder thermostat",Poor,Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"1, Nursery Avenue",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2014-06-24 14:47:50,owner-occupied,10.0,10.0,200003702814.0,Address Matched +740570184552012011811032298920292,"36, Westborough Mews",,,ME16 8TU,2271484968,C,C,73,73,House,Mid-Terrace,2012-01-18,E07000110,E14000804,Kent,2012-01-18,rental (private),75,75,173,170.0,2.0,33,2.0,47.0,38.0,311.0,313.0,117.0,117.0,60.5,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,75.0,0.0,From main system,Good,Good,"Suspended, insulated (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,2.3,0.0,,natural,"36, Westborough Mews",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2012-01-18 11:03:22,rental (private),8.0,6.0,10022896522.0,Address Matched +331886209222017092812571605268743,"5, Oriel Close",Hockers Lane,,ME14 3BF,4081025668,C,B,78,91,House,Semi-Detached,2017-09-26,E07000110,E14000700,Kent,2017-09-28,marketed sale,80,93,132,29.0,1.6,23,0.4,60.0,60.0,269.0,271.0,103.0,61.0,70.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,83.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 83% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"5, Oriel Close, Hockers Lane",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2007 onwards,2017-09-28 12:57:16,owner-occupied,,,10014308866.0,Address Matched +2cee1d9d3d21037ed18a9e7080b8287b644cea263b5ad7b8af763e5bc46905a2,62 Seymour Drive,,,TN12 9GT,10001572035,B,A,84,94,House,Detached,2021-09-03,E07000110,E14000804,Kent,2021-09-03,new dwelling,85,95,81,17.0,1.6,14,0.4,84.0,84.0,249.0,251.0,94.0,52.0,114.0,standard tariff,,,N,,,100.0,,,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.22 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.39,,,,62 Seymour Drive,Maidstone,Maidstone and The Weald,MARDEN,2021,2021-09-03 14:48:52,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,10.0,,10094441137.0,Energy Assessor +1603384139222018012622241216068418,"18, Shelley Road",,,ME16 8NS,1171306578,D,B,66,83,House,Mid-Terrace,2018-01-26,E07000110,E14000804,Kent,2018-01-26,marketed sale,61,79,238,109.0,3.2,42,1.5,72.0,54.0,560.0,475.0,82.0,51.0,76.0,Single,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,67.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 67% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"18, Shelley Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2018-01-26 22:24:12,owner-occupied,,,200003656030.0,Address Matched +2e03ebd436ace2030f793ce7c4ad6064b23d22b8489320dd4c21e6ce05dd9627,7,Pearson Meadow,Boughton Monchelsea,ME17 4SX,10001556525,B,A,84,95,House,End-Terrace,2021-07-07,E07000110,E14000700,Kent,2021-07-07,new dwelling,87,97,83,5.0,1.3,15,0.1,75.0,75.0,217.0,217.0,73.0,45.0,89.0,standard tariff,,,N,,,100.0,,,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.20 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.39,,,,"7, Pearson Meadow, Boughton Monchelsea",Maidstone,Faversham and Mid Kent,MAIDSTONE,2021,2021-07-07 14:48:38,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,12.0,,10094442603.0,Address Matched +1499798287552016112512301896269040,"16, Robinson Avenue",Barming,,ME16 9BF,70768478,B,B,91,91,Flat,Detached,2016-11-25,E07000110,E14000804,Kent,2016-11-25,new dwelling,95,95,28,28.0,0.3,5,0.3,36.0,36.0,168.0,168.0,82.0,82.0,48.0,standard tariff,,top floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.20 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"16, Robinson Avenue, Barming",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2016-11-25 12:30:18,unknown,15.0,15.0,10091195833.0,Address Matched +1414133529712016021709025395960345,"13, Lambert Drive",,,ME15 8WN,3508952478,B,B,82,82,Flat,NO DATA!,2016-02-17,E07000110,E14000700,Kent,2016-02-17,new dwelling,85,85,104,104.0,1.2,18,1.2,52.0,52.0,230.0,230.0,78.0,78.0,65.0,standard tariff,,top floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.27 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.14 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"13, Lambert Drive",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2016-02-17 09:02:53,unknown,1.0,1.0,10091194528.0,Address Matched +2ec0cc19761d26035382a4f25c11878b0211f03d0b74ecf6821a4028c0c4e408,4 Langham Grove,,,ME16 0LA,10001512652,C,B,69,87,Bungalow,Semi-Detached,2021-09-02,E07000110,E14000804,Kent,2021-09-03,marketed sale,67,86,232,77.0,2.4,41,0.8,51.0,51.0,431.0,361.0,70.0,47.0,59.0,Unknown,Y,,,,,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.44,0.0,N,natural,4 Langham Grove,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2021-09-03 07:27:09,Owner-occupied,9.0,,200003656992.0,Energy Assessor +1716792709612020030410042621000161,Flat 48 Guinevere Point,Waterhouse Avenue,,ME14 2FJ,1132914678,B,B,86,86,Flat,Mid-Terrace,2020-03-04,E07000110,E14000804,Kent,2020-03-04,new dwelling,90,90,65,65.0,0.8,11,0.8,62.0,62.0,150.0,150.0,70.0,70.0,73.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.17 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Flat 48 Guinevere Point, Waterhouse Avenue",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2020-03-04 10:04:26,unknown,10.0,10.0,10094440156.0,Address Matched +521180110112011030818212895090977,"9, Fremlins Road",Bearsted,,ME14 4HA,9750058768,C,C,71,73,House,Detached,2011-03-08,E07000110,E14000700,Kent,2011-03-08,marketed sale,67,68,229,222.0,3.1,38,3.0,76.0,43.0,497.0,503.0,102.0,102.0,80.5,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,5.0,5.0,25.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Flat, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 25% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.3,0.0,N,natural,"9, Fremlins Road, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2011-03-08 18:21:28,owner-occupied,,,200003694662.0,Address Matched +1501867382632016120216050735078098,"18, Robinson Avenue",Barming,,ME16 9BF,8865088478,B,B,88,90,House,Mid-Terrace,2016-12-02,E07000110,E14000804,Kent,2016-12-02,new dwelling,90,93,55,37.0,0.9,10,0.6,60.0,60.0,193.0,195.0,123.0,68.0,86.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.12 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.19 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"18, Robinson Avenue, Barming",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2016-12-02 16:05:07,unknown,25.0,25.0,10091195835.0,Address Matched +679620722352011091910562992990798,"71, High Street",Headcorn,,TN27 9QA,7803220968,C,C,79,79,House,Detached,2011-09-19,E07000110,E14000700,Kent,2011-09-19,new dwelling,80,80,111,111.0,3.2,19,3.2,80.0,80.0,575.0,575.0,93.0,93.0,163.98,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,7.0,,From main system,Good,Good,Average thermal transmittance 0.20 W/m?K,Very Good,Very Good,Fully double glazed,Good,Good,Average thermal transmittance 0.30 W/m?K,Good,Good,"Room heaters, wood logs",,,Average thermal transmittance 0.13 W/m?K,Very Good,Very Good,"Boiler and underfloor heating, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in 78% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,,,NO DATA!,"71, High Street, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,NO DATA!,2011-09-19 10:56:29,,9.0,7.0,200003698607.0,Address Matched +749468659842012021607361993529768,Apartment 32 Sandling Park,Sandling Lane,,ME14 2NY,1845455968,C,B,78,81,Flat,Enclosed Mid-Terrace,2012-02-16,E07000110,E14000804,Kent,2012-02-16,marketed sale,68,68,241,235.0,2.5,43,2.4,41.0,41.0,214.0,187.0,132.0,106.0,58.52,dual,N,Ground,N,,2401.0,100.0,double glazing installed before 2002,Normal,0.0,2.0,2.0,100.0,0.0,"Electric immersion, off-peak",Average,Very Poor,"Solid, insulated (assumed)",,,Fully double glazed,Average,Average,"System built, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,(another dwelling above),,,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,heated corridor,,2.4,0.0,,natural,"Apartment 32 Sandling Park, Sandling Lane",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2012-02-16 07:36:19,owner-occupied,6.0,6.0,10014307128.0,Address Matched +1710503079502019060508435969310758,"10, Castle Way",Boughton Monchelsea,,ME17 4GQ,1547373678,B,A,85,96,House,Semi-Detached,2019-06-05,E07000110,E14000804,Kent,2019-06-05,new dwelling,87,98,80,0.0,1.2,14,0.0,72.0,72.0,199.0,199.0,74.0,43.0,86.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.19 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.1 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"10, Castle Way, Boughton Monchelsea",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2019-06-05 08:43:59,unknown,4.0,4.0,10094441254.0,Address Matched +1567380614352017081816283294930754,First Floor Flat,18 Knightrider Street,,ME15 6LU,7414443578,D,C,57,72,Flat,Semi-Detached,2017-08-10,E07000110,E14000804,Kent,2017-08-18,rental (private),51,71,346,198.0,4.0,61,2.3,62.0,62.0,619.0,389.0,215.0,114.0,66.0,dual,Y,1st,Y,,2107.0,100.0,"double glazing, unknown install date",Normal,2.0,3.0,3.0,83.0,0.0,"From main system, no cylinder thermostat",Average,Average,(another dwelling below),NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 270 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 83% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,no corridor,,,,N,natural,"First Floor Flat, 18 Knightrider Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2017-08-18 16:28:32,rental (private),,,200003691940.0,Address Matched +661515499542011080214432080890028,"76, Greenway",,,ME16 8TN,4592698868,D,C,64,69,House,Mid-Terrace,2011-08-02,E07000110,E14000804,Kent,2011-08-02,non marketed sale,61,68,222,184.0,4.2,43,3.4,68.0,50.0,641.0,558.0,141.0,114.0,96.97,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,1.0,1.0,0.0,64.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 64% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,2.42,0.0,,natural,"76, Greenway",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2011-08-02 14:43:20,owner-occupied,11.0,7.0,200003696696.0,Address Matched +467263709022010040918513114218670,"28, Beaver Road",Allington,,ME16 0FN,7162074768,C,C,71,78,House,Semi-Detached,2010-04-09,E07000110,E14000804,Kent,2010-04-09,marketed sale,68,75,198,157.0,3.8,33,3.0,127.0,64.0,494.0,436.0,153.0,123.0,90.2,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,0.0,0.0,From main system,Good,Good,"Suspended, limited insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.3,0.0,N,natural,"28, Beaver Road, Allington",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2010-04-09 18:51:31,owner-occupied,,,200003706445.0,Address Matched +1346349239352016011817282497960532,"15, Edmett Way",,,ME17 3FA,5223977378,B,A,84,96,House,Mid-Terrace,2016-01-18,E07000110,E14000700,Kent,2016-01-18,new dwelling,87,99,85,-3.0,1.2,15,0.0,55.0,55.0,217.0,217.0,85.0,50.0,79.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"15, Edmett Way",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2016-01-18 17:28:24,unknown,1.0,1.0,10091193968.0,Address Matched +426836969032010012612582847268308,"50, Bower Street",,,ME16 8SD,6897381768,D,D,62,63,House,Mid-Terrace,2010-01-26,E07000110,E14000804,Kent,2010-01-26,marketed sale,58,58,299,295.0,3.8,50,3.8,57.0,38.0,576.0,580.0,106.0,106.0,76.66,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,4.0,4.0,50.0,1.0,From main system,Very Good,Very Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.52,0.0,N,natural,"50, Bower Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2010-01-26 12:58:28,owner-occupied,,,200003668149.0,Address Matched +1805025356032020062218174649278901,Tumblers Plat,North Street,Barming,ME16 9HE,5129950778,D,B,56,82,Bungalow,Detached,2020-06-22,E07000110,E14000804,Kent,2020-06-22,marketed sale,47,77,293,110.0,6.3,52,2.4,84.0,84.0,1018.0,613.0,196.0,76.0,121.0,Unknown,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,6.0,6.0,100.0,0.0,"From main system, no cylinder thermostat",Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"Tumblers Plat, North Street, Barming",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2020-06-22 18:17:46,owner-occupied,,,200003666761.0,Address Matched +1120449029062014040407135231528654,"28, Glebe Lane",,,ME16 9BD,5387281278,E,C,48,78,House,Semi-Detached,2014-04-02,E07000110,E14000804,Kent,2014-04-04,marketed sale,44,76,345,124.0,4.8,67,1.8,71.0,44.0,754.0,557.0,238.0,71.0,71.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,5.0,5.0,40.0,1.0,"From main system, no cylinder thermostat",Poor,Poor,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 40% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"28, Glebe Lane",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2014-04-04 07:13:52,owner-occupied,10.0,4.0,200003664327.0,Address Matched +597265394652015061622062292950281,112 Farleigh Court,Farleigh Lane,,ME16 9BH,2136424868,D,C,66,69,Flat,Semi-Detached,2015-06-16,E07000110,E14000804,Kent,2015-06-16,rental (social),63,67,248,222.0,2.9,44,2.6,90.0,45.0,518.0,492.0,95.0,95.0,66.0,Single,Y,1st,Y,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,0.0,0.0,From main system,Good,Good,(another dwelling below),NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,no corridor,,,,N,natural,"112 Farleigh Court, Farleigh Lane",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2015-06-16 22:06:22,rental (social),,,200003683283.0,Address Matched +645476583412011062218304198290780,4 Farthings Cottages,Grange Lane,Sandling,ME14 3DB,7003387868,E,D,51,61,House,Mid-Terrace,2011-06-22,E07000110,E14000700,Kent,2011-06-22,marketed sale,31,37,699,596.0,5.4,124,4.6,53.0,26.0,543.0,429.0,91.0,91.0,43.3,dual,N,NODATA!,,,2401.0,100.0,triple glazing,Normal,0.0,3.0,3.0,0.0,0.0,"Electric immersion, off-peak",Average,Very Poor,"Solid, no insulation (assumed)",,,Fully triple glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, electric",,,"Pitched, 50 mm loft insulation",Poor,Poor,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,No low energy lighting,Very Poor,Very Poor,electricity (not community),0.0,NO DATA!,,2.0,0.0,,natural,"4 Farthings Cottages, Grange Lane, Sandling",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2011-06-22 18:30:41,owner-occupied,6.0,0.0,200003722959.0,Address Matched +407266411552009120317341505019274,"12, Sandy Mount",Bearsted,,ME14 4PJ,2480150768,F,F,31,33,House,Detached,2009-12-03,E07000110,E14000700,Kent,2009-12-03,marketed sale,39,42,540,514.0,6.1,77,5.7,43.0,43.0,1047.0,996.0,253.0,253.0,78.8,dual,Y,NO DATA!,,,2504.0,55.0,"double glazing, unknown install date",Normal,0.0,7.0,6.0,100.0,0.0,"Electric immersion, off-peak",Very Poor,Poor,"Solid, no insulation (assumed)",,,Partial double glazing,Poor,Poor,"Cavity wall, filled cavity",Good,Good,"Room heaters, wood logs",,,"Pitched, 250mm loft insulation",Good,Good,"Warm air, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.3,0.0,N,natural,"12, Sandy Mount, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2009-12-03 17:34:15,owner-occupied,,,200003693739.0,Address Matched +1480230379922016091616554237478276,"97, Willington Street",,,ME15 8JU,7326727478,C,B,74,86,House,Mid-Terrace,2016-09-13,E07000110,E14000700,Kent,2016-09-16,marketed sale,72,84,176,89.0,2.5,31,1.3,53.0,53.0,446.0,446.0,106.0,69.0,79.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,2.3,,N,natural,"97, Willington Street",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2016-09-16 16:55:42,owner-occupied,,,200003685811.0,Address Matched +399211199502014101320111669940558,"24, Postmill Drive",,,ME15 6FY,1577599668,D,C,61,80,House,End-Terrace,2014-09-05,E07000110,E14000804,Kent,2014-10-13,assessment for green deal,57,79,238,100.0,3.7,46,1.6,55.0,55.0,705.0,533.0,128.0,85.0,80.0,dual,Y,NODATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,1.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"24, Postmill Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1976-1982,2014-10-13 20:11:16,owner-occupied,10.0,10.0,200003666095.0,Address Matched +927839529062013050922570178318777,"14, Rookery Court",Marden,,TN12 9AZ,7786228078,C,B,80,82,Flat,Detached,2013-05-09,E07000110,E14000804,Kent,2013-05-09,new dwelling,83,85,100,93.0,1.6,19,1.5,89.0,52.0,268.0,274.0,81.0,81.0,85.0,standard tariff,,top floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.29 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.13 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 29% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"14, Rookery Court, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,NO DATA!,2013-05-09 22:57:01,NO DATA!,21.0,6.0,10014313272.0,Address Matched +321470760022009070823155054488071,Raylands Mead,Ashford Road,Bearsted,ME14 4NG,7508644668,E,D,48,63,House,Detached,2009-07-08,E07000110,E14000700,Kent,2009-07-08,marketed sale,42,56,337,243.0,11.0,56,7.8,193.0,100.0,1456.0,1081.0,216.0,184.0,188.54,Single,Y,NO DATA!,,,2106.0,95.0,secondary glazing,Normal,2.0,7.0,7.0,6.0,2.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Partial secondary glazing,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 6% of fixed outlets,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.46,0.0,N,natural,"Raylands Mead, Ashford Road, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2009-07-08 23:15:50,owner-occupied,,,200003694983.0,Address Matched +230843239802013082608075557872858,"31, Alkham Road",,,ME14 5PA,6823838568,C,C,75,75,Flat,End-Terrace,2013-08-25,E07000110,E14000804,Kent,2013-08-26,rental (private),79,79,138,138.0,1.5,26,1.5,37.0,37.0,316.0,316.0,82.0,82.0,59.0,Single,Y,1st,Y,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, 250mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,no corridor,,,0.0,,natural,"31, Alkham Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2013-08-26 08:07:55,rental (private),15.0,15.0,200003716229.0,Address Matched +721664019932011110915432464068296,"224a, Upper Fant Road",,,ME16 8DH,1654223968,C,C,69,70,House,Mid-Terrace,2011-11-09,E07000110,E14000804,Kent,2011-11-09,new dwelling,68,69,188,181.0,3.2,36,3.1,86.0,54.0,524.0,528.0,88.0,88.0,90.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,4.0,,From main system,Good,Good,Average thermal transmittance 0.22 W/m?K,Good,Good,Fully double glazed,Good,Good,Average thermal transmittance 2.10 W/m?K,Very Poor,Very Poor,,,,Average thermal transmittance 0.10 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 40% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,3.0,,,NO DATA!,"224a, Upper Fant Road",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2011-11-09 15:43:24,,10.0,4.0,10014314104.0,Address Matched +980491709222013072913313591818677,"53, Finglesham Court",,,ME15 7JE,7958091178,C,A,76,94,House,Enclosed Mid-Terrace,2013-07-29,E07000110,E14000700,Kent,2013-07-29,rental (private),80,98,149,-13.0,1.2,28,-0.1,44.0,30.0,249.0,251.0,70.0,48.0,42.0,dual,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,50.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"53, Finglesham Court",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2013-07-29 13:31:35,rental (private),8.0,4.0,200003712063.0,Address Matched +1132051569202015111112261629259308,"32, Abigail Crescent",Walderslade,,ME5 9DZ,7298662278,D,C,62,78,House,Detached,2015-11-10,E07000110,E14000700,Kent,2015-11-11,rental,56,73,256,146.0,4.4,45,2.6,118.0,61.0,761.0,686.0,138.0,85.0,98.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,7.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 7% of fixed outlets,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"32, Abigail Crescent, Walderslade",Maidstone,Faversham and Mid Kent,CHATHAM,England and Wales: 1983-1990,2015-11-11 12:26:16,owner-occupied,,,200003709314.0,Address Matched +1021092389542019092422260918412748,"8, Woodlands",Coxheath,,ME17 4EE,4581184178,C,B,72,85,House,Semi-Detached,2019-09-24,E07000110,E14000804,Kent,2019-09-24,marketed sale,70,83,184,93.0,2.9,32,1.5,66.0,66.0,490.0,450.0,103.0,73.0,89.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, 270 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"8, Woodlands, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2019-09-24 22:26:09,owner-occupied,,,200003672826.0,Address Matched +953650486452013061818502590970413,"64, Gorham Drive",Downswood,,ME15 8UU,4386600178,D,B,61,88,House,Semi-Detached,2013-06-18,E07000110,E14000700,Kent,2013-06-18,marketed sale,60,90,264,46.0,2.8,51,0.5,55.0,33.0,433.0,329.0,143.0,61.0,55.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,33.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 33% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"64, Gorham Drive, Downswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2013-06-18 18:50:25,owner-occupied,6.0,2.0,200003691450.0,Address Matched +336aeae20ace3dc0f41e1acf08f8c2390534cbe41d69f882f523c8aa7e29ad2b,"Flat 16 Adeline Heights, Rosalind Drive ",,,ME14 2FP,10001692078,B,B,86,86,Flat,Mid-Terrace,2021-07-06,E07000110,E14000804,Kent,2021-07-06,new dwelling,91,91,61,61.0,0.8,11,0.8,70.0,70.0,142.0,142.0,71.0,71.0,75.0,standard tariff,,2,N,,,100.0,,,,,,100.0,0.0,From main system,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.52 W/m-¦K,Good,Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.5,,,,"Flat 16 Adeline Heights, Rosalind Drive",Maidstone,Maidstone and The Weald,Maidstone,2018,2021-07-06 09:04:30,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,10.0,,10094441279.0,Address Matched +819028859742014062221252801042608,Oak Farm Oast,Lenham Road,Headcorn,TN27 9TU,7762250078,D,B,57,83,House,Detached,2014-06-20,E07000110,E14000700,Kent,2014-06-22,marketed sale,42,74,242,97.0,12.0,50,4.8,135.0,135.0,2443.0,1162.0,199.0,118.0,237.0,dual,N,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,9.0,9.0,70.0,1.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, oil",Good,Average,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 70% of fixed outlets,Very Good,Very Good,oil (not community),0.0,NO DATA!,,,,,natural,"Oak Farm Oast, Lenham Road, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,England and Wales: 1900-1929,2014-06-22 21:25:28,owner-occupied,20.0,14.0,200003699841.0,Address Matched +1690225759222019012313032712778591,"101, Grove Road",,,ME15 9AU,9129522678,D,B,57,88,House,Mid-Terrace,2019-01-23,E07000110,E14000700,Kent,2019-01-23,marketed sale,51,87,322,73.0,4.3,57,1.0,113.0,56.0,609.0,368.0,206.0,68.0,75.0,Single,Y,NODATA!,,,2107.0,100.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,0.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"101, Grove Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2019-01-23 13:03:27,owner-occupied,,,200003709966.0,Address Matched +589897066712011020823475996090289,"11, Hereford Road",,,ME15 7NE,2926663868,D,D,60,66,House,Semi-Detached,2011-02-08,E07000110,E14000700,Kent,2011-02-08,marketed sale,53,59,327,281.0,4.5,55,3.9,56.0,44.0,744.0,649.0,109.0,103.0,82.08,Single,Y,NO DATA!,,,2101.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,75.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"System built, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Very Good,Very Good,No time or thermostatic control of room temperature,Very Poor,Very Poor,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.5,0.0,N,natural,"11, Hereford Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2011-02-08 23:47:59,owner-occupied,,,200003712389.0,Address Matched +346762629602019082110342867612708,Flat 132 Scotney Gardens,St. Peters Street,,ME16 0GT,7629326668,B,B,85,86,Flat,Mid-Terrace,2019-08-20,E07000110,E14000804,Kent,2019-08-21,rental (private),78,79,147,134.0,1.8,25,1.7,69.0,69.0,120.0,120.0,183.0,155.0,73.0,dual,N,2nd,N,,2401.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,"Electric immersion, off-peak",Average,Poor,(another dwelling below),NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,(another dwelling above),,,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,heated corridor,,,,N,natural,"Flat 132 Scotney Gardens, St. Peters Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2019-08-21 10:34:28,rental (private),,,10022893499.0,Address Matched +856604789262012112111471463208932,"283, Boxley Road",Penenden Heath,,ME14 2HB,3698813078,D,C,59,79,House,Detached,2012-11-20,E07000110,E14000804,Kent,2012-11-21,marketed sale,63,81,218,106.0,4.9,34,2.3,86.0,66.0,1070.0,705.0,92.0,93.0,145.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,8.0,8.0,71.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,"Room heaters, wood logs",,,"Pitched, no insulation",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 71% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"283, Boxley Road, Penenden Heath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2012-11-21 11:47:14,owner-occupied,14.0,10.0,200003706693.0,Address Matched +616314061552011041115464797990880,Flat 6,"163, Union Street",,ME14 1EY,8020175868,D,C,65,71,Flat,Semi-Detached,2011-04-10,E07000110,E14000804,Kent,2011-04-11,rental (private),57,59,510,491.0,2.5,76,2.4,35.0,21.0,266.0,229.0,112.0,98.0,32.13,dual,N,Ground,N,4.0,2401.0,100.0,double glazing installed before 2002,Less Than Typical,0.0,1.0,1.0,35.0,0.0,"Electric immersion, off-peak",Poor,Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,(another dwelling above),,,Electric storage heaters,Poor,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 35% of fixed outlets,Average,Average,electricity - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.73,0.0,N,natural,"Flat 6, 163, Union Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2011-04-11 15:46:47,rental (private),,,200003696837.0,Address Matched +1434810049222018102518303024058258,"4, Amherst Close",,,ME16 0JB,5253404478,D,B,67,84,House,Detached,2018-10-25,E07000110,E14000804,Kent,2018-10-25,marketed sale,62,80,215,97.0,3.8,38,1.8,67.0,67.0,665.0,506.0,89.0,58.0,100.0,Single,Y,NODATA!,,,2103.0,100.0,"double glazing, unknown install date",Normal,1.0,6.0,6.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Room thermostat only,Poor,Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"4, Amherst Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2018-10-25 18:30:30,owner-occupied,,,200003659186.0,Address Matched +1140931639042014051514350726349058,"14, Spurway",Bearsted,,ME14 4BN,90233278,D,C,57,79,House,Semi-Detached,2014-05-15,E07000110,E14000700,Kent,2014-05-15,marketed sale,53,77,259,113.0,4.4,50,2.0,96.0,52.0,782.0,583.0,119.0,79.0,88.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,15.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 15% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"14, Spurway, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2014-05-15 14:35:07,owner-occupied,13.0,2.0,200003692506.0,Address Matched +18002399232012013113232317768003,118 Wallis Place,Hart Street,,ME16 8FD,9387088468,B,B,82,82,Flat,NO DATA!,2012-01-31,E07000110,E14000804,Kent,2012-01-31,new dwelling,88,88,91,91.0,0.8,17,0.8,27.0,27.0,159.0,159.0,75.0,75.0,46.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,6.0,,From main system,Good,Good,(other premises below),,,Fully double glazed,Good,Good,Average thermal transmittance 0.32 W/m?K,Good,Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,,,NO DATA!,"118 Wallis Place, Hart Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2012-01-31 13:23:23,,6.0,6.0,10022900719.0,Address Matched +538270460412010091016325797000774,"4, Ellenswood Close",Downswood,,ME15 8SG,7416079768,C,C,74,77,Flat,Enclosed End-Terrace,2010-09-08,E07000110,E14000700,Kent,2010-09-10,rental (private),69,74,386,323.0,1.6,65,1.4,19.0,19.0,225.0,231.0,145.0,97.0,25.14,dual,Y,Ground,N,2.0,2504.0,100.0,double glazing installed during or after 2002,Normal,0.0,1.0,1.0,75.0,0.0,"From main system, no cylinder thermostat",Poor,Average,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Warm air, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,unheated corridor,4.45,2.35,0.0,N,natural,"4, Ellenswood Close, Downswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2010-09-10 16:32:57,rental (private),,,200003690984.0,Address Matched +1192496858432014081917062381978403,"27, Northfleet Close",,,ME14 5QD,5331496278,C,C,69,76,Maisonette,End-Terrace,2014-08-19,E07000110,E14000804,Kent,2014-08-19,marketed sale,70,79,192,133.0,2.3,37,1.6,68.0,45.0,421.0,294.0,116.0,117.0,61.0,dual,Y,1st,Y,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,50.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,no corridor,,,0.0,,natural,"27, Northfleet Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2014-08-19 17:06:23,owner-occupied,6.0,3.0,200003671454.0,Address Matched +337954d829e9ab0cf581da7d2fffa67b43e5cd44a3d6f632b6c60885477fd7c0,15 Reculver Walk,,,ME15 8QE,10001371172,D,B,68,89,House,Mid-Terrace,2021-09-08,E07000110,E14000700,Kent,2021-09-08,marketed sale,65,88,219,62.0,3.3,39,1.0,67.0,67.0,499.0,362.0,182.0,72.0,86.0,Unknown,Y,,,,,100.0,double glazing installed during or after 2002,Normal,0.0,6.0,6.0,100.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.32,0.0,N,natural,15 Reculver Walk,Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2021-09-08 20:56:48,Owner-occupied,11.0,,200003725791.0,Energy Assessor +1730293666132019061913015632978505,Flat 10 Block B,Maybourne Place,Staplehurst,TN12 0GP,6522515678,B,B,84,84,Flat,Detached,2019-06-19,E07000110,E14000804,Kent,2019-06-19,new dwelling,90,90,87,87.0,0.7,15,0.7,41.0,41.0,144.0,144.0,57.0,57.0,45.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Flat 10 Block B, Maybourne Place, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,NO DATA!,2019-06-19 13:01:56,unknown,7.0,7.0,10094442125.0,Address Matched +1415425079922016021910361222218286,"12, Reader Drive",Marden,,TN12 9FD,8201762478,B,B,87,88,House,NO DATA!,2016-02-19,E07000110,E14000804,Kent,2016-02-19,new dwelling,88,90,65,54.0,1.1,12,0.9,66.0,66.0,300.0,300.0,94.0,58.0,97.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.19 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.28 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.14 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"12, Reader Drive, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,NO DATA!,2016-02-19 10:36:12,unknown,1.0,1.0,10014315695.0,Address Matched +737590368912012011016334894920598,Flat 129 Scotney Gardens,St. Peters Street,,ME16 0GT,5862844968,B,B,82,84,Flat,Mid-Terrace,2012-01-10,E07000110,E14000804,Kent,2012-01-10,marketed sale,75,75,180,174.0,2.1,32,2.0,82.0,44.0,137.0,146.0,117.0,117.0,66.09,dual,N,Ground,Y,,2401.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,14.0,0.0,"Electric immersion, off-peak",Average,Very Poor,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,Portable electric heaters (assumed),,,(another dwelling above),,,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 14% of fixed outlets,Poor,Poor,electricity (not community),0.0,heated corridor,,2.3,0.0,,natural,"Flat 129 Scotney Gardens, St. Peters Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1991-1995,2012-01-10 16:33:48,owner-occupied,7.0,1.0,10022893496.0,Address Matched +1572788442912017090616090498030658,9 Burgoyne Court,Invicta Park,,ME14 2PL,6874283578,D,B,68,85,House,Mid-Terrace,2017-09-06,E07000110,E14000804,Kent,2017-09-06,rental (social),69,86,202,74.0,2.6,35,1.0,72.0,56.0,455.0,410.0,141.0,79.0,73.0,dual,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,70.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, 270 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 70% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"9 Burgoyne Court, Invicta Park",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2017-09-06 16:09:04,rental (social),,,200003724089.0,Address Matched +632484705932011052212491083268100,"4, Thatcher Road",Staplehurst,,TN12 0ND,93196868,D,D,66,66,House,Detached,2011-05-22,E07000110,E14000804,Kent,2011-05-22,none of the above,62,62,199,195.0,5.1,38,5.0,80.0,57.0,803.0,807.0,107.0,107.0,133.38,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",More Than Typical,4.0,7.0,7.0,60.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 60% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,2.32,0.0,,natural,"4, Thatcher Road, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1950-1966,2011-05-22 12:49:10,unknown,20.0,12.0,200003678210.0,Address Matched +409415862502020032517232578009918,"8, Gagetown Terrace",Invicta Park,,ME14 2PP,7530260768,D,C,60,80,House,Mid-Terrace,2020-02-19,E07000110,E14000804,Kent,2020-03-25,Stock Condition Survey,54,76,288,131.0,4.1,51,1.9,63.0,63.0,724.0,542.0,93.0,64.0,80.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Flat, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"8, Gagetown Terrace, Invicta Park",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2020-03-25 17:23:25,rental (social),,,200003723991.0,Address Matched +509224639062010070512000327358290,6 Rowan House,Springwood Road,Barming,ME16 9NX,9222367768,C,B,69,82,Flat,Detached,2010-07-05,E07000110,E14000804,Kent,2010-07-05,rental (private),64,78,257,155.0,3.2,43,1.9,79.0,40.0,375.0,243.0,183.0,140.0,74.2,Single,Y,1st,N,3.0,2301.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,0.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,(another dwelling above),,,Community scheme,Good,Good,"Flat rate charging, no thermostatic control of room temperature",Very Poor,Very Poor,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,heated corridor,,2.4,0.0,N,natural,"6 Rowan House, Springwood Road, Barming",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2010-07-05 12:00:03,rental (private),,,200003697250.0,Address Matched +459046702212011033114211991790577,"10, Trinity Way",,,ME15 9FY,5751214768,A,A,97,98,House,Mid-Terrace,2011-03-31,E07000110,E14000700,Kent,2011-03-31,new dwelling,91,91,63,60.0,0.7,11,0.7,45.0,34.0,227.0,228.0,122.0,122.0,63.14,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,,From main system,Good,Good,Average thermal transmittance 0.18 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m?K,Very Good,Very Good,"Room heaters, electric",,,Average thermal transmittance 0.10 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in 67% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.31,,,NO DATA!,"10, Trinity Way",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2011-03-31 14:21:19,,,,10014311462.0,Address Matched +849289269222012102323340172578282,"32, Highcroft Green",,,ME15 9PN,8765662078,C,B,74,88,House,Mid-Terrace,2012-10-23,E07000110,E14000700,Kent,2012-10-23,rental (social),75,90,148,45.0,2.0,28,0.7,62.0,41.0,351.0,329.0,83.0,59.0,72.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,3.0,3.0,50.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"System built, with external insulation",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"32, Highcroft Green",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2012-10-23 23:34:01,rental (social),8.0,4.0,200003723645.0,Address Matched +689841348612011101710341699999597,"16, The Hedgerow",Weavering,,ME14 5TG,5771890968,D,C,67,72,House,Detached,2011-10-15,E07000110,E14000700,Kent,2011-10-17,rental (social),62,69,186,151.0,6.5,36,5.3,106.0,76.0,1024.0,860.0,136.0,112.0,181.96,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,6.0,6.0,60.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 60% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,2.4,0.0,,natural,"16, The Hedgerow, Weavering",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1991-1995,2011-10-17 10:34:16,rental (social),10.0,6.0,200003689771.0,Address Matched +1481187602212017111611090993939747,Flat C,"3, Fuggles Close",Headcorn,TN27 9AE,7747237478,B,B,83,83,Flat,Semi-Detached,2017-11-16,E07000110,E14000700,Kent,2017-11-16,new dwelling,86,86,91,91.0,1.1,16,1.1,56.0,56.0,194.0,194.0,75.0,75.0,69.0,standard tariff,,top floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.10 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Flat C, 3, Fuggles Close, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,NO DATA!,2017-11-16 11:09:09,unknown,15.0,15.0,10093302528.0,Address Matched +1790475342062020030616363089368010,"74, Chapelfield Way",Allington,,ME16 9FS,1895459678,B,B,87,88,House,Semi-Detached,2020-03-06,E07000110,E14000804,Kent,2020-03-06,new dwelling,87,89,65,54.0,1.5,12,1.2,86.0,86.0,272.0,273.0,98.0,54.0,126.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.19 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.16 W/m-¦K,Good,Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"74, Chapelfield Way, Allington",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2020-03-06 16:36:30,unknown,33.0,33.0,10093306700.0,Address Matched +263449064132009040821454857068106,Flat 11 Elmsdale House,"9, Buckland Hill",,ME16 0SB,6677140668,E,D,54,58,Flat,Semi-Detached,2009-04-08,E07000110,E14000804,Kent,2009-04-08,rental (private),50,51,820,784.0,2.5,124,2.4,10.0,10.0,272.0,243.0,122.0,122.0,20.25,dual,N,2nd,N,4.0,2402.0,0.0,single glazing,Normal,0.0,1.0,1.0,100.0,0.0,"Electric immersion, off-peak",Very Poor,Poor,(other premises below),,,Single glazed,Very Poor,Very Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, electric",,,(another dwelling above),,,Electric storage heaters,Poor,Very Poor,Automatic charge control,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity - this is for backwards compatibility only and should not be used,0.0,unheated corridor,4.5,2.5,0.0,N,natural,"Flat 11 Elmsdale House, 9, Buckland Hill",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2009-04-08 21:45:48,rental (private),,,200003670363.0,Address Matched +1751973839962019091810514796488821,Buckland,Green Lane,Langley,ME17 3JS,2925376678,F,B,35,87,Bungalow,Detached,2019-09-18,E07000110,E14000700,Kent,2019-09-18,marketed sale,21,69,765,213.0,8.6,120,2.4,118.0,61.0,1331.0,477.0,298.0,105.0,71.0,dual,N,NODATA!,,,2401.0,40.0,"double glazing, unknown install date",Normal,1.0,3.0,3.0,8.0,0.0,"Electric immersion, off-peak",Very Poor,Poor,"Solid, no insulation (assumed)",NO DATA!,,Partial double glazing,Poor,Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, 75 mm loft insulation",Average,Average,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 8% of fixed outlets,Very Poor,Very Poor,electricity (not community),0.0,NO DATA!,,,,N,natural,"Buckland, Green Lane, Langley",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2019-09-18 10:51:47,owner-occupied,,,200003697835.0,Address Matched +637050113152011060215421092090489,Timberden,Boxley Road,Penenden Heath,ME14 2DT,4950327868,E,D,49,65,House,Detached,2011-06-02,E07000110,E14000804,Kent,2011-06-02,marketed sale,44,61,314,205.0,7.3,61,4.8,90.0,56.0,1122.0,764.0,151.0,112.0,121.0,Single,Y,NODATA!,,,2107.0,90.0,double glazing installed before 2002,Normal,0.0,8.0,8.0,38.0,0.0,From main system,Average,Average,"Suspended, no insulation (assumed)",,,Mostly double glazing,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 38% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,2.48,0.0,,natural,"Timberden, Boxley Road, Penenden Heath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2011-06-02 15:42:10,owner-occupied,13.0,5.0,200003707344.0,Address Matched +202519030002008120814281750580088,"16, Roman Way",Boughton Monchelsea,,ME17 4SG,5035835568,B,B,83,84,House,Semi-Detached,2008-12-08,E07000110,E14000700,Kent,2008-12-08,new dwelling,82,83,112,107.0,2.2,18,2.1,89.0,60.0,238.0,242.0,93.0,93.0,118.15,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,5.0,,From main system,Very Good,Very Good,Average thermal transmittance = 0.19 W/m?K,Very Good,Very Good,Fully double glazed,Good,Good,Average thermal transmittance = 0.28 W/m?K,Very Good,Very Good,,,,Average thermal transmittance = 0.17 W/m?K,Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.33,,,NO DATA!,"16, Roman Way, Boughton Monchelsea",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2008-12-08 14:28:17,,10.0,5.0,10022896542.0,Address Matched +321550659102019111222470062419228,"3, Bargrove Road",,,ME14 5RY,152254668,C,B,75,90,House,Mid-Terrace,2019-11-12,E07000110,E14000804,Kent,2019-11-12,unknown,75,90,167,49.0,1.9,29,0.6,56.0,56.0,324.0,301.0,93.0,63.0,65.0,Unknown,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,4.0,4.0,90.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, partial insulation (assumed)",Average,Average,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 90% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"3, Bargrove Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1976-1982,2019-11-12 22:47:00,unknown,,,200003672568.0,Address Matched +593878379922011021716254253538749,"121, Fennel Close",,,ME16 0XT,4504793868,C,B,78,82,House,Mid-Terrace,2011-02-17,E07000110,E14000804,Kent,2011-02-17,marketed sale,76,80,157,133.0,2.5,25,2.2,103.0,57.0,364.0,343.0,127.0,111.0,97.74,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,18.0,0.0,From main system,Good,Good,"Solid, limited insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 18% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.31,0.0,N,natural,"121, Fennel Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2011-02-17 16:25:42,owner-occupied,,,200003722420.0,Address Matched +1455090909222016062018275825408536,"8, Hastings Road",,,ME15 7SP,3283055478,F,C,33,74,House,Mid-Terrace,2016-06-20,E07000110,E14000804,Kent,2016-06-20,marketed sale,25,60,489,173.0,9.5,97,3.9,62.0,62.0,1535.0,807.0,342.0,78.0,98.0,Single,Y,NODATA!,,,2602.0,100.0,double glazing installed before 2002,Normal,2.0,5.0,2.0,100.0,1.0,"Electric immersion, standard tariff",Very Poor,Poor,"To unheated space, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, coal",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, mains gas",Average,Average,Appliance thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,2.54,,N,natural,"8, Hastings Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2016-06-20 18:27:58,owner-occupied,,,200003695483.0,Address Matched +874396489732013012117071389278309,Vine Cottage,Willington Street,,ME15 8ED,8989344078,E,C,43,76,House,Detached,2013-01-21,E07000110,E14000700,Kent,2013-01-21,marketed sale,39,72,332,129.0,7.5,64,3.0,88.0,60.0,1230.0,711.0,155.0,74.0,117.0,Single,Y,NODATA!,,,2106.0,0.0,single glazing,Normal,0.0,5.0,5.0,50.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Granite or whinstone, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"Vine Cottage, Willington Street",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2013-01-21 17:07:13,unknown,14.0,7.0,200003687078.0,Address Matched +1746721866112019091019245793210561,"2, Birch Tree Way",,,ME15 7RR,5194636678,D,C,57,74,House,Semi-Detached,2019-08-28,E07000110,E14000804,Kent,2019-09-10,marketed sale,52,70,280,166.0,5.2,49,3.1,92.0,92.0,1020.0,828.0,104.0,71.0,106.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,4.0,7.0,7.0,77.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 77% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"2, Birch Tree Way",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2019-09-10 19:24:57,owner-occupied,,,200003696151.0,Address Matched +834279859502012091114371402129498,"25, Froyle Close",,,ME16 0RQ,9598851078,D,B,62,89,Bungalow,Semi-Detached,2012-09-11,E07000110,E14000804,Kent,2012-09-11,marketed sale,61,91,267,39.0,2.7,51,0.4,41.0,31.0,417.0,308.0,139.0,60.0,52.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,67.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 67% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"25, Froyle Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2012-09-11 14:37:14,owner-occupied,6.0,4.0,200003659405.0,Address Matched +34e104fafe58aee5f20a0934a769be45deab4c1f0c043aab8c82f81e109f0c57,2 Bailies Court,Church Lane,Harrietsham,ME17 1AG,10001401832,C,B,78,89,House,Mid-Terrace,2021-09-14,E07000110,E14000700,Kent,2021-09-16,marketed sale,78,88,127,56.0,2.4,22,1.1,138.0,87.0,359.0,365.0,100.0,69.0,108.0,Unknown,Y,,,,,100.0,double glazing installed during or after 2002,Normal,1.0,5.0,5.0,41.0,0.0,From main system,Good,Good,"Suspended, insulated (assumed)",,,Fully double glazed,Good,Good,"Timber frame, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and underfloor heating, mains gas",Good,Good,Programmer and at least two room thermostats,Good,Good,Low energy lighting in 41% of fixed outlets,Average,Average,mains gas (not community),0.0,,,2.32,0.0,N,natural,"2 Bailies Court, Church Lane, Harrietsham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2003-2006,2021-09-16 11:31:39,Owner-occupied,32.0,,10022895622.0,Energy Assessor +98329629542018052416452044782148,"54, Queen Elizabeth Square",,,ME15 9DQ,515127468,C,B,73,91,House,Mid-Terrace,2018-05-24,E07000110,E14000700,Kent,2018-05-24,marketed sale,74,92,177,38.0,2.1,31,0.5,104.0,52.0,299.0,283.0,124.0,61.0,67.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,0.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Very Good,Very Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"54, Queen Elizabeth Square",Maidstone,Faversham and Mid Kent,MAIDSTONE,INVALID!,2018-05-24 16:45:20,owner-occupied,,,200003710574.0,Address Matched +1716936948812020032316100621200565,Flat 23 Guinevere Point,Waterhouse Avenue,,ME14 2FJ,5508814678,B,B,86,86,Flat,End-Terrace,2020-03-23,E07000110,E14000804,Kent,2020-03-23,new dwelling,90,90,66,66.0,0.8,12,0.8,58.0,58.0,153.0,153.0,70.0,70.0,72.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.18 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Flat 23 Guinevere Point, Waterhouse Avenue",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2020-03-23 16:10:06,unknown,10.0,10.0,10094440131.0,Address Matched +1043629039942013111410161716679748,Flat 4 Thomas Robert Gardens,Church Street,,ME14 1FQ,7966736178,B,B,83,83,Flat,NO DATA!,2013-11-14,E07000110,E14000804,Kent,2013-11-14,marketed sale,88,88,89,89.0,0.8,17,0.8,37.0,37.0,203.0,203.0,61.0,61.0,46.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.27 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Flat 4 Thomas Robert Gardens, Church Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2013-11-14 10:16:17,NO DATA!,0.0,0.0,10014314590.0,Address Matched +613014624932011041622190479968705,The Pump House,"12a, Well Street",Loose,ME15 0EJ,2519745868,D,D,61,65,House,Semi-Detached,2011-04-16,E07000110,E14000804,Kent,2011-04-16,marketed sale,55,59,312,282.0,4.4,52,4.0,86.0,46.0,684.0,639.0,132.0,132.0,84.24,Single,Y,NO DATA!,,,2106.0,95.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,12.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Mostly double glazing,Average,Average,"Solid brick, as built, insulated (assumed)",Good,Good,"Room heaters, mains gas",,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 12% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.55,0.0,N,natural,"The Pump House, 12a, Well Street, Loose",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2011-04-16 22:19:04,owner-occupied,,,200003663653.0,Address Matched +1726713499502019111108481466419098,"7, Pentecost Lane",Otham,,ME15 8YF,1502194678,B,A,85,94,House,Semi-Detached,2019-11-11,E07000110,E14000700,Kent,2019-11-11,new dwelling,86,95,77,19.0,1.7,14,0.4,88.0,88.0,260.0,262.0,100.0,55.0,124.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.10 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.20 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"7, Pentecost Lane, Otham",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2019-11-11 08:48:14,unknown,10.0,10.0,10094440428.0,Address Matched +1623353049742018052412132251782248,"10, Fulbert Drive",Bearsted,,ME14 4PU,2723347578,D,C,62,80,House,Detached,2018-05-24,E07000110,E14000700,Kent,2018-05-24,marketed sale,58,79,241,119.0,4.7,40,2.2,80.0,80.0,793.0,651.0,211.0,75.0,117.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,6.0,6.0,91.0,0.0,"From main system, no cylinder thermostat",Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, wood logs",,,"Pitched, insulated (assumed)",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 91% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"10, Fulbert Drive, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2018-05-24 12:13:22,owner-occupied,,,200003688892.0,Address Matched +1667894301452018102916553096289862,Flat 112,Brenchley House,123-135 Week Street,ME14 1FY,8296160678,C,C,75,75,Flat,Mid-Terrace,2018-10-29,E07000110,E14000700,Kent,2018-10-29,new dwelling,81,81,211,211.0,0.9,37,0.9,22.0,22.0,159.0,159.0,92.0,92.0,24.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,Community scheme,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.30 W/m-¦K,Good,Good,,,,(other premises above),,,Community scheme,Good,Good,"Charging system linked to use of community heating, programmer and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,NO DATA!,,NO DATA!,,,,,NO DATA!,"Flat 112, Brenchley House, 123-135 Week Street",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2018-10-29 16:55:30,unknown,6.0,6.0,10094440788.0,Address Matched +1377345599102015102114395034952498,Harp Farm,Harp Farm Road,Boxley,ME14 3ED,5104899378,D,C,55,72,House,Detached,2015-10-21,E07000110,E14000700,Kent,2015-10-21,FiT application,47,66,157,89.0,13.0,42,7.5,116.0,116.0,2625.0,1621.0,165.0,166.0,303.0,Single,N,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,1.0,11.0,11.0,100.0,0.0,From main system,Average,Average,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, oil",Average,Average,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,oil (not community),0.0,NO DATA!,,,,N,natural,"Harp Farm, Harp Farm Road, Boxley",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2015-10-21 14:39:50,owner-occupied,,,200003673383.0,Address Matched +519463989222010072810002048488410,"4, Cherry Orchard Way",,,ME16 8TJ,1472838768,D,C,58,74,House,Semi-Detached,2010-07-28,E07000110,E14000804,Kent,2010-07-28,marketed sale,51,70,333,199.0,4.9,56,3.0,67.0,47.0,763.0,471.0,124.0,102.0,88.78,Single,Y,NO DATA!,,,2107.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,57.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 57% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.45,0.0,N,natural,"4, Cherry Orchard Way",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2010-07-28 10:00:20,owner-occupied,,,200003696600.0,Address Matched +3508c6e4586f8bce7d7736eb891a1685a0573feb8015dcfb71a5e66ed13ddc54,Little Maltings,The Street,Bearsted,ME14 4EL,10001669173,C,C,72,80,House,Semi-Detached,2021-09-20,E07000110,E14000700,Kent,2021-09-20,marketed sale,70,79,161,110.0,4.4,26,2.9,128.0,128.0,791.0,755.0,127.0,81.0,169.0,Unknown,Y,,,,,100.0,double glazing installed during or after 2002,Normal,2.0,8.0,8.0,80.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, wood logs",,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.42,0.0,N,natural,"Little Maltings, The Street, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2021-09-20 22:03:16,Owner-occupied,20.0,,200003695024.0,Energy Assessor +312009279222019062722072133338901,"10, Woollett Street",,,ME14 1UX,398783668,D,B,68,90,House,Mid-Terrace,2019-06-27,E07000110,E14000804,Kent,2019-06-27,rental (private),68,92,272,39.0,1.9,48,0.3,42.0,32.0,358.0,283.0,62.0,39.0,39.0,Single,Y,NODATA!,,,2107.0,100.0,"double glazing, unknown install date",Normal,1.0,2.0,2.0,67.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 67% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"10, Woollett Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2019-06-27 22:07:21,rental (private),,,200003699135.0,Address Matched +579652179022016031008352742238276,"15, Aspian Drive",Coxheath,,ME17 4JZ,7424772868,D,B,59,82,House,Semi-Detached,2016-03-07,E07000110,E14000804,Kent,2016-03-10,ECO assessment,53,78,297,125.0,4.4,52,1.9,122.0,61.0,804.0,576.0,108.0,72.0,84.0,dual,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,5.0,5.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"15, Aspian Drive, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2016-03-10 08:35:27,owner-occupied,,,200003714133.0,Address Matched +353de498b09af5c65de6f0980b44798cbe7d19e229f0b7e8e7a40260a026598a,102 WRANGLEDEN ROAD,,,ME15 9LD,10001336995,C,C,70,73,Flat,Mid-Terrace,2021-07-14,E07000110,E14000700,Kent,2021-07-14,rental,69,72,223,198.0,2.4,39,2.1,81.0,54.0,400.0,367.0,86.0,86.0,61.0,Single,Y,00,N,,,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,50.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"System built, as built, no insulation (assumed)",Very Poor,Very Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,no corridor,,2.26,0.0,N,natural,102 WRANGLEDEN ROAD,Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2021-07-14 15:52:23,Rented (social),6.0,,200003682427.0,Energy Assessor +1689199757112019010907124391010368,"4, Newchurch Road",,,ME15 6UF,3826712678,D,B,64,89,House,Semi-Detached,2019-01-08,E07000110,E14000804,Kent,2019-01-09,marketed sale,59,89,274,61.0,3.4,48,0.8,71.0,54.0,557.0,323.0,126.0,75.0,71.0,Unknown,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,67.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,,,,"Roof room(s), ceiling insulated",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 67% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"4, Newchurch Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2019-01-09 07:12:43,owner-occupied,,,200003682130.0,Address Matched +1340139349022015070612032497978425,"30, Radnor Close",,,ME14 2PW,2999437378,C,C,77,79,Flat,Mid-Terrace,2015-07-03,E07000110,E14000804,Kent,2015-07-06,marketed sale,81,84,158,132.0,1.2,28,1.0,35.0,35.0,210.0,185.0,119.0,104.0,45.0,Single,Y,2nd,Y,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,100.0,0.0,From main system,Good,Good,(another dwelling below),NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,7.93,,,N,natural,"30, Radnor Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2015-07-06 12:03:24,owner-occupied,,,10022897057.0,Address Matched +1609462149742018022019552851682708,"29, Clifford Way",,,ME16 8GB,6790546578,C,C,76,78,Flat,End-Terrace,2018-02-20,E07000110,E14000804,Kent,2018-02-20,rental (private),78,80,150,141.0,1.6,26,1.5,87.0,50.0,222.0,226.0,126.0,126.0,62.0,Unknown,Y,3rd,Y,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,25.0,0.0,From main system,Good,Good,(another dwelling below),NO DATA!,,Fully double glazed,Good,Good,"System built, as built, insulated (assumed)",Good,Good,,,,"Flat, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 25% of fixed outlets,Average,Average,mains gas (not community),0.0,heated corridor,,,,N,natural,"29, Clifford Way",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2018-02-20 19:55:28,rental (private),,,10022896042.0,Address Matched +158247611452008100817315001089353,"30, Woodford Road",,,ME16 9BS,3370112568,D,C,57,72,House,End-Terrace,2008-10-08,E07000110,E14000804,Kent,2008-10-08,rental (private),51,67,347,230.0,4.6,58,3.0,77.0,38.0,513.0,379.0,141.0,94.0,78.86,dual,Y,NO DATA!,,,2107.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,0.0,0.0,From main system,Average,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Average,Good,"Programmer, TRVs and bypass",Poor,Poor,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.3,0.0,N,natural,"30, Woodford Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2008-10-08 17:31:50,rental (private),,,200003677849.0,Address Matched +1355377139222015082010524388108315,Flat A,"74, Week Street",,ME14 1RJ,1861348378,C,C,73,76,Flat,Mid-Terrace,2015-08-20,E07000110,E14000804,Kent,2015-08-20,rental (private),73,77,191,157.0,2.0,34,1.7,42.0,42.0,380.0,309.0,97.0,98.0,60.0,Single,Y,1st,N,,2106.0,100.0,secondary glazing,Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,(other premises below),NO DATA!,,Full secondary glazing,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,no corridor,0.0,,,N,natural,"Flat A, 74, Week Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2015-08-20 10:52:43,rental (private),,,200003735060.0,Address Matched +309888869542017022012473066332808,Apartment 1,"55-57, Hartnup Street",,ME16 8FH,1551863668,C,C,78,79,Flat,Detached,2017-02-20,E07000110,E14000804,Kent,2017-02-20,rental (private),80,81,130,125.0,1.6,23,1.5,75.0,53.0,268.0,271.0,87.0,87.0,69.0,Single,Y,Ground,N,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,57.0,0.0,From main system,Good,Good,"Suspended, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"System built, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 57% of fixed outlets,Good,Good,mains gas (not community),0.0,unheated corridor,13.91,,,N,natural,"Apartment 1, 55-57, Hartnup Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2017-02-20 12:47:30,rental (private),,,10014308148.0,Address Matched +307476819062016040416432193948266,"36, Kent Avenue",,,ME15 7HJ,6903153668,E,D,43,68,House,Semi-Detached,2016-04-04,E07000110,E14000700,Kent,2016-04-04,ECO assessment,38,62,362,196.0,8.8,64,4.8,74.0,74.0,1732.0,1216.0,188.0,80.0,138.0,Single,Y,NODATA!,,,2107.0,100.0,double glazing installed before 2002,Normal,0.0,6.0,6.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,2.45,,N,natural,"36, Kent Avenue",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2016-04-04 16:43:21,owner-occupied,,,200003711538.0,Address Matched +829218629802012082914031605122288,"34, Bonnington Road",,,ME14 5QR,3877321078,D,B,66,86,House,End-Terrace,2012-08-28,E07000110,E14000804,Kent,2012-08-29,rental (private),64,87,205,59.0,3.0,39,0.9,66.0,44.0,456.0,360.0,149.0,69.0,77.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,50.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"34, Bonnington Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2012-08-29 14:03:16,rental (private),10.0,5.0,200003671790.0,Address Matched +555984669062018090408215260578258,"46, Tovil Road",,,ME15 6QJ,5678690868,D,B,59,81,House,End-Terrace,2018-09-03,E07000110,E14000804,Kent,2018-09-04,marketed sale,52,77,317,134.0,4.3,56,1.8,62.0,62.0,740.0,515.0,98.0,66.0,76.0,Unknown,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,88.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 88% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"46, Tovil Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2018-09-04 08:21:52,owner-occupied,,,200003664468.0,Address Matched +1698308802132019021615022158978406,"134, Bower Street",,,ME16 8BE,638482678,D,B,59,82,House,Mid-Terrace,2019-02-16,E07000110,E14000804,Kent,2019-02-16,marketed sale,51,78,290,113.0,4.5,51,1.8,70.0,70.0,772.0,497.0,114.0,76.0,88.0,dual,Y,NODATA!,,,2102.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"134, Bower Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2019-02-16 15:02:21,unknown,,,200003667291.0,Address Matched +685549946212019031509565496080297,"44, Howard Drive",,,ME16 0QD,2797660968,D,B,67,88,Bungalow,Semi-Detached,2018-05-02,E07000110,E14000804,Kent,2019-03-15,rental (social),66,87,247,68.0,2.4,43,0.7,62.0,43.0,348.0,313.0,158.0,75.0,56.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,57.0,0.0,"From main system, no cylinder thermostat",Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 57% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"44, Howard Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2019-03-15 09:56:54,rental (social),,,200003703427.0,Address Matched +1477051709102016090616284943760868,"661, Loose Road",Loose,,ME15 9UX,4115507478,D,B,65,84,House,Mid-Terrace,2016-09-06,E07000110,E14000804,Kent,2016-09-06,marketed sale,68,88,257,89.0,2.4,40,0.7,42.0,42.0,526.0,421.0,106.0,60.0,60.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,2.34,,N,natural,"661, Loose Road, Loose",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2016-09-06 16:28:49,owner-occupied,,,200003724630.0,Address Matched +1213262809262018042621495738668268,"23, South Street",Barming,,ME16 9EX,6376048278,F,A,38,111,House,End-Terrace,2018-04-26,E07000110,E14000804,Kent,2018-04-26,rental (private),73,124,433,-105.0,1.9,36,-1.9,79.0,46.0,759.0,381.0,259.0,125.0,53.0,dual,N,NODATA!,,,2601.0,,not defined,Much Less Than Typical,1.0,3.0,3.0,29.0,0.0,"Electric immersion, off-peak",Very Poor,Poor,"Suspended, no insulation (assumed)",NO DATA!,,Multiple glazing throughout,Good,Good,"Solid brick, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,"Pitched, 150 mm loft insulation",Good,Good,"Room heaters, wood logs",Poor,Very Good,No thermostatic control of room temperature,Poor,Poor,Low energy lighting in 29% of fixed outlets,Average,Average,wood logs,0.0,NO DATA!,,,,N,natural,"23, South Street, Barming",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2018-04-26 21:49:57,rental (private),,,200003665541.0,Address Matched +427929569262010012923431691918120,Amberidge Oast,Salts Lane,Loose,ME15 0BD,2963691768,E,D,54,65,House,Detached,2010-01-29,E07000110,E14000804,Kent,2010-01-29,marketed sale,47,59,277,210.0,6.8,56,5.1,92.0,64.0,839.0,638.0,232.0,178.0,78.52,Single,N,NO DATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,1.0,7.0,6.0,58.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Sandstone, as built, insulated (assumed)",Good,Good,"Room heaters, wood logs",,,"Roof room(s), insulated (assumed)",Good,Good,"Boiler and radiators, oil",Average,Average,Programmer and room thermostat,Average,Average,Low energy lighting in 58% of fixed outlets,Good,Good,oil - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.38,0.0,N,natural,"Amberidge Oast, Salts Lane, Loose",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1991-1995,2010-01-29 23:43:16,owner-occupied,,,200003674373.0,Address Matched +1585955976052017103013305197739950,"24, Hook Way",,,ME17 3FW,9014674578,B,A,84,94,House,Semi-Detached,2017-10-30,E07000110,E14000700,Kent,2017-10-30,new dwelling,85,96,89,15.0,1.5,16,0.3,63.0,63.0,246.0,246.0,85.0,52.0,94.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.16 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.12 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"24, Hook Way",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2017-10-30 13:30:51,unknown,7.0,7.0,10093303925.0,Address Matched +47832444052008121611041006989857,Flat 17,Broadway Heights,23 The Broadway,ME16 8GJ,8795465568,B,B,82,82,Flat,Detached,2008-12-16,E07000110,E14000804,Kent,2008-12-16,new dwelling,82,82,162,159.0,1.2,0,1.2,26.0,21.0,197.0,197.0,58.0,58.0,46.11,standard tariff,,ground floor,,,,,NO DATA!,NO DATA!,,,,12.0,,SAP05:Hot-Water,,,SAP05:Floor,,,SAP05:Windows,,,SAP05:Walls,,,SAP05:Secondary-Heating,,,SAP05:Roof,,,SAP05:Main-Heating,,,SAP05:Main-Heating-Controls,,,SAP05:Lighting,,,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.6,,,NO DATA!,"Flat 17, Broadway Heights, 23 The Broadway",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2008-12-16 11:04:10,,16.0,12.0,10022896841.0,Address Matched +628106269002011051220003780699128,"2, Sunburst Close",Marden,,TN12 9TS,2071366868,D,D,58,67,House,End-Terrace,2011-05-12,E07000110,E14000804,Kent,2011-05-12,none of the above,55,66,276,207.0,4.2,53,3.2,78.0,42.0,637.0,518.0,131.0,103.0,69.45,Single,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,13.0,0.0,From main system,Average,Average,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 13% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,2.41,0.0,,natural,"2, Sunburst Close, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1991-1995,2011-05-12 20:00:37,unknown,8.0,1.0,200003711244.0,Address Matched +1436075179222016042122542084198226,Flat 207 Scotney Gardens,St. Peters Street,,ME16 0GW,2891714478,C,C,79,80,Flat,Mid-Terrace,2016-04-21,E07000110,E14000804,Kent,2016-04-21,marketed sale,68,69,245,237.0,2.2,41,2.1,91.0,45.0,162.0,171.0,135.0,135.0,52.0,Unknown,N,1st,N,,2401.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,0.0,0.0,"Electric immersion, off-peak",Average,Poor,"To external air, insulated (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, with internal insulation",Very Good,Very Good,"Room heaters, electric",,,(another dwelling above),,,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,No low energy lighting,Very Poor,Very Poor,electricity (not community),0.0,unheated corridor,1.56,2.23,,N,natural,"Flat 207 Scotney Gardens, St. Peters Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2016-04-21 22:54:20,owner-occupied,,,10022893574.0,Address Matched +919454429262014012914484087718174,"8, Shrubwood Close",Harrietsham,,ME17 1FJ,7863267078,B,B,89,89,House,Semi-Detached,2014-01-29,E07000110,E14000700,Kent,2014-01-29,new dwelling,92,92,48,48.0,0.8,10,0.8,51.0,51.0,256.0,256.0,93.0,93.0,81.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.16 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"8, Shrubwood Close, Harrietsham",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2014-01-29 14:48:40,NO DATA!,12.0,12.0,10014314956.0,Address Matched +1667723619962018101516384780658628,Flat 12,Brenchley House,123-135 Week Street,ME14 1FX,2865160678,C,C,75,75,Flat,Mid-Terrace,2018-10-15,E07000110,E14000804,Kent,2018-10-15,new dwelling,81,81,200,200.0,1.0,35,1.0,24.0,24.0,171.0,171.0,93.0,93.0,28.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,Community scheme,Good,Good,Average thermal transmittance 0.24 W/m-¦K,Good,Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.30 W/m-¦K,Good,Good,,,,(other premises above),,,Community scheme,Good,Good,"Charging system linked to use of community heating, programmer and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,NO DATA!,,NO DATA!,,,,,NO DATA!,"Flat 12, Brenchley House, 123-135 Week Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2018-10-15 16:38:47,unknown,6.0,6.0,10094440688.0,Address Matched +680124529602014111412073090049978,"4, Woollett Street",,,ME14 1UX,5613720968,D,B,63,87,House,End-Terrace,2014-11-13,E07000110,E14000804,Kent,2014-11-14,assessment for green deal,63,89,268,53.0,2.4,51,0.5,45.0,31.0,460.0,331.0,114.0,78.0,46.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,2.0,2.0,2.0,57.0,0.0,From main system,Good,Good,"To unheated space, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 57% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"4, Woollett Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2014-11-14 12:07:30,rental (social),7.0,4.0,200003706136.0,Address Matched +1026526229642013102319390419572628,"8, Farleigh Hill",,,ME15 6RG,672425178,D,B,64,91,House,Mid-Terrace,2013-10-22,E07000110,E14000804,Kent,2013-10-23,marketed sale,64,94,239,17.0,2.5,46,0.2,34.0,34.0,475.0,292.0,89.0,52.0,55.0,Single,Y,NODATA!,,,2107.0,100.0,"double glazing, unknown install date",Normal,1.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"8, Farleigh Hill",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2013-10-23 19:39:04,owner-occupied,7.0,7.0,200003664657.0,Address Matched +843979729842012101010381503229008,8 Newlyn Court,Tufton Street,,ME14 1EZ,4801822078,C,B,72,81,Maisonette,Mid-Terrace,2012-10-10,E07000110,E14000804,Kent,2012-10-10,rental (social),56,70,301,207.0,3.2,53,2.2,81.0,40.0,293.0,170.0,114.0,114.0,60.0,dual,N,Ground,N,,2401.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,0.0,0.0,"Electric immersion, off-peak",Average,Very Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, partial insulation (assumed)",Average,Average,Portable electric heaters (assumed),,,(another dwelling above),,,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,No low energy lighting,Very Poor,Very Poor,electricity (not community),0.0,no corridor,,,0.0,,natural,"8 Newlyn Court, Tufton Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1976-1982,2012-10-10 10:38:15,rental (social),6.0,0.0,200003688161.0,Address Matched +634082043452011052519305190290584,"7, Woodcocks",Headcorn,,TN27 9HB,5408307868,D,D,63,67,House,Detached,2011-05-25,E07000110,E14000700,Kent,2011-05-25,none of the above,57,62,213,188.0,6.3,41,5.6,127.0,67.0,956.0,892.0,124.0,110.0,154.64,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,7.0,7.0,10.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, mains gas",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 10% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,2.4,0.0,,natural,"7, Woodcocks, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,England and Wales: 1991-1995,2011-05-25 19:30:51,unknown,20.0,2.0,200003728041.0,Address Matched +35d3635f9f277d296660a89bf10b2493400e1bbd0fd2e5af8f1e4d988ea3c503,27 Hengist Court,Marsham Street,,ME14 1BT,10001448796,B,B,84,87,Flat,Mid-Terrace,2021-08-19,E07000110,E14000804,Kent,2021-08-19,marketed sale,77,82,203,163.0,1.3,34,1.1,41.0,41.0,76.0,65.0,179.0,133.0,39.0,dual,N,01,N,,,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,100.0,0.0,"Electric immersion, off-peak",Average,Poor,(another dwelling below),,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,Portable electric heaters (assumed),,,(another dwelling above),,,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,heated corridor,0.0,2.36,0.0,N,natural,"27 Hengist Court, Marsham Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2021-08-19 15:54:34,Owner-occupied,7.0,,200003688690.0,Energy Assessor +658362679002011072511443189892658,"92, Melrose Close",,,ME15 6ZE,3009378868,B,B,86,87,House,Mid-Terrace,2011-07-25,E07000110,E14000804,Kent,2011-07-25,new dwelling,89,89,64,61.0,1.2,12,1.2,70.0,56.0,214.0,216.0,96.0,95.0,100.74,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,6.0,,From main system,Good,Good,Average thermal transmittance 0.20 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.21 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.3,,,NO DATA!,"92, Melrose Close",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2011-07-25 11:44:31,,8.0,6.0,10014307073.0,Address Matched +47837860242008121714322756589538,Flat 38,Broadway Heights,23 The Broadway,ME16 8GJ,9205565568,B,B,81,82,Flat,Detached,2008-12-17,E07000110,E14000804,Kent,2008-12-17,new dwelling,82,82,169,166.0,1.2,0,1.2,27.0,22.0,199.0,200.0,57.0,57.0,0.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,12.0,,SAP05:Hot-Water,,,SAP05:Floor,,,SAP05:Windows,,,SAP05:Walls,,,SAP05:Secondary-Heating,,,SAP05:Roof,,,SAP05:Main-Heating,,,SAP05:Main-Heating-Controls,,,SAP05:Lighting,,,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,,,,NO DATA!,"Flat 38, Broadway Heights, 23 The Broadway",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2008-12-17 14:32:27,,16.0,12.0,10022896862.0,Address Matched +161365139742019060612491555210568,Flat 15 The Coach Yard,"372a, Tonbridge Road",,ME16 8TT,9746432568,C,B,71,84,Flat,Mid-Terrace,2019-06-06,E07000110,E14000804,Kent,2019-06-06,marketed sale,74,73,176,181.0,2.0,30,2.1,56.0,62.0,275.0,155.0,323.0,165.0,67.0,Single,N,1st,N,,2603.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,"Electric immersion, standard tariff",Very Poor,Poor,(another dwelling below),NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Room heaters, electric",Very Poor,Poor,Programmer and appliance thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,unheated corridor,10.96,,,N,natural,"Flat 15 The Coach Yard, 372a, Tonbridge Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2019-06-06 12:49:15,owner-occupied,,,200003655213.0,Address Matched +360f6bdce3c60573e98663e15e8be67df4e22a8223d3084c81ac305f81a906df,15 KINGS REACH,,,ME15 7LZ,10001396924,E,B,54,81,House,End-Terrace,2021-06-28,E07000110,E14000700,Kent,2021-07-01,ECO assessment,49,79,310,113.0,5.3,54,2.0,152.0,76.0,996.0,605.0,132.0,81.0,98.0,Single,Y,,,,,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,0.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,"Pitched, insulated (assumed)",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,,,2.75,0.0,N,natural,15 KINGS REACH,Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2021-07-01 10:31:06,Rented (social),10.0,,200003724185.0,Energy Assessor +376121310952009100520284703019966,"50, Willow Rise",Downswood,,ME15 8XR,9672038668,C,B,79,81,Flat,Enclosed Mid-Terrace,2009-10-05,E07000110,E14000700,Kent,2009-10-05,rental (private),72,75,282,259.0,1.8,43,1.6,36.0,26.0,135.0,120.0,112.0,112.0,42.22,dual,N,1st,N,2.0,2401.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,60.0,0.0,"Electric immersion, off-peak",Poor,Poor,(other premises below),,,Fully double glazed,Good,Good,"Timber frame, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,"Pitched, 150 mm loft insulation",Good,Good,Electric storage heaters,Average,Poor,Manual charge control,Poor,Poor,Low energy lighting in 60% of fixed outlets,Good,Good,electricity - this is for backwards compatibility only and should not be used,0.0,unheated corridor,7.2,2.34,0.0,N,natural,"50, Willow Rise, Downswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1996-2002,2009-10-05 20:28:47,rental (private),,,200003691652.0,Address Matched +614867764932011040719032701068200,"21, Aldon Close",,,ME14 5QF,6041265868,C,B,80,81,House,Mid-Terrace,2011-04-07,E07000110,E14000804,Kent,2011-04-07,rental (private),78,78,158,156.0,1.9,26,1.9,49.0,40.0,327.0,329.0,96.0,96.0,74.06,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,78.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 78% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.35,0.0,N,natural,"21, Aldon Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2011-04-07 19:03:27,rental (private),,,200003671487.0,Address Matched +361bb7b70ab2b0204ee0b905528dfacea9c750ffcafc1a50273d14ae69e45883,33 Hazelwood Drive,,,ME16 0EA,10001463540,C,B,69,83,House,Detached,2021-09-29,E07000110,E14000804,Kent,2021-09-29,marketed sale,65,79,195,98.0,3.6,34,1.9,106.0,84.0,571.0,494.0,119.0,79.0,106.0,Single,Y,,,,,100.0,double glazing installed during or after 2002,Normal,1.0,7.0,7.0,73.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 73% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.35,0.0,N,natural,33 Hazelwood Drive,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1991-1995,2021-09-29 14:47:09,Owner-occupied,15.0,,200003691900.0,Energy Assessor +48649050922008121715200365138248,Flat 48,Broadway Heights,23 The Broadway,ME16 8GJ,4605565568,B,B,82,82,Flat,Detached,2008-12-17,E07000110,E14000804,Kent,2008-12-17,new dwelling,82,82,162,160.0,1.2,0,1.2,26.0,21.0,198.0,198.0,58.0,58.0,0.0,standard tariff,,top floor,,,,,NO DATA!,NO DATA!,,,,12.0,,SAP05:Hot-Water,,,SAP05:Floor,,,SAP05:Windows,,,SAP05:Walls,,,SAP05:Secondary-Heating,,,SAP05:Roof,,,SAP05:Main-Heating,,,SAP05:Main-Heating-Controls,,,SAP05:Lighting,,,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,,,,NO DATA!,"Flat 48, Broadway Heights, 23 The Broadway",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2008-12-17 15:20:03,,16.0,12.0,10022896872.0,Address Matched +225768579022010070600153827468090,3 Farleigh Court,Farleigh Lane,,ME16 9BJ,9279727568,C,C,78,78,Flat,Semi-Detached,2010-07-06,E07000110,E14000804,Kent,2010-07-06,rental (social),75,75,195,195.0,2.1,32,2.1,33.0,33.0,341.0,341.0,83.0,83.0,63.51,Single,Y,Ground,N,2.0,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,100.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.34,0.0,N,natural,"3 Farleigh Court, Farleigh Lane",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2010-07-06 00:15:38,rental (social),,,200003684122.0,Address Matched +1161635761352014062013030397240723,6 Grants Cottages,Old Ham Lane,Lenham,ME17 2LR,7383174278,E,C,50,76,House,End-Terrace,2014-06-20,E07000110,E14000700,Kent,2014-06-20,marketed sale,45,73,298,127.0,5.7,58,2.5,112.0,62.0,1002.0,679.0,153.0,85.0,98.0,dual,Y,NODATA!,,,2104.0,85.0,double glazing installed before 2002,Normal,4.0,5.0,5.0,20.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Mostly double glazing,Poor,Poor,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 20% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"6 Grants Cottages, Old Ham Lane, Lenham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1900-1929,2014-06-20 13:03:03,rental (private),15.0,3.0,200003725330.0,Address Matched +1125633309262019030106202152388771,"8, Woodcut",Penenden Heath,,ME14 2EQ,7545022278,D,C,63,80,House,Detached,2019-02-28,E07000110,E14000804,Kent,2019-03-01,marketed sale,55,75,241,125.0,5.5,42,2.9,93.0,93.0,911.0,678.0,136.0,82.0,130.0,Unknown,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,2.0,4.0,4.0,86.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 86% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"8, Woodcut, Penenden Heath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2019-03-01 06:20:21,owner-occupied,,,200003707817.0,Address Matched +317196438512009070217240201710265,"9, Collington Terrace",,,ME15 9PP,2561814668,D,D,65,66,House,End-Terrace,2009-06-30,E07000110,E14000700,Kent,2009-07-02,rental (social),60,60,297,293.0,3.4,50,3.4,49.0,33.0,496.0,500.0,81.0,81.0,69.3,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,50.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"System built, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,0.0,N,natural,"9, Collington Terrace",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2009-07-02 17:24:02,rental (social),,,200003680067.0,Address Matched +1590029809742017112014110357539358,"16, Marsham Street",,,ME14 1EP,9759505578,G,B,13,82,House,Mid-Terrace,2017-11-15,E07000110,E14000804,Kent,2017-11-20,Stock Condition Survey,26,78,564,117.0,8.1,95,1.8,63.0,63.0,2177.0,503.0,209.0,78.0,85.0,Unknown,Y,NODATA!,,,2602.0,0.0,not defined,Normal,3.0,4.0,1.0,89.0,0.0,Electric instantaneous at point of use,Very Poor,Poor,"To unheated space, no insulation (assumed)",NO DATA!,,Single glazed,Very Poor,Very Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,Portable electric heaters (assumed),,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, electric",Very Poor,Poor,Appliance thermostats,Good,Good,Low energy lighting in 89% of fixed outlets,Very Good,Very Good,electricity (not community),0.0,NO DATA!,,,,N,natural,"16, Marsham Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2017-11-20 14:11:03,rental (private),,,200003687430.0,Address Matched +337109250342009073123480068517998,"18, Trapham Road",,,ME16 0EL,8335755668,D,D,63,67,House,Detached,2009-07-31,E07000110,E14000804,Kent,2009-07-31,marketed sale,64,67,226,209.0,4.4,37,4.1,134.0,67.0,696.0,679.0,110.0,110.0,118.74,dual,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,6.0,6.0,0.0,0.0,From main system,Very Good,Very Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.44,0.0,N,natural,"18, Trapham Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2009-07-31 23:48:00,owner-occupied,,,200003658916.0,Address Matched +435289149002010021009332871202788,"22, Mill Walk",,,ME16 9LE,9082042768,C,C,71,78,House,End-Terrace,2010-01-28,E07000110,E14000804,Kent,2010-02-10,rental (private),67,75,226,173.0,3.1,38,2.4,78.0,41.0,435.0,365.0,115.0,94.0,93.78,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,10.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 10% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.45,0.0,N,natural,"22, Mill Walk",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2010-02-10 09:33:28,rental (private),,,200003697001.0,Address Matched +1290084489042015030512301030350258,"8, Catherine Close",Barming,,ME16 9PT,5089083378,D,B,66,87,House,Semi-Detached,2015-03-05,E07000110,E14000804,Kent,2015-03-05,rental (social),63,86,233,69.0,3.0,41,0.9,81.0,51.0,464.0,385.0,181.0,70.0,73.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,43.0,0.0,From main system,Average,Average,"Solid, limited insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 43% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"8, Catherine Close, Barming",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2015-03-05 12:30:10,rental (social),,,200003699389.0,Address Matched +34243990832008102218170524268590,"15, Sandlewood Court",,,ME16 0ZG,9064582568,B,B,81,82,Flat,Enclosed End-Terrace,2008-10-22,E07000110,E14000804,Kent,2008-10-22,marketed sale,79,80,162,156.0,1.7,27,1.6,46.0,31.0,210.0,213.0,79.0,79.0,62.65,Single,Y,1st,N,3.0,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,50.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,heated corridor,,2.36,0.0,N,natural,"15, Sandlewood Court",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2008-10-22 18:17:05,owner-occupied,,,10014306178.0,Address Matched +502948229542010062212173170702128,"112, The Landway",Bearsted,,ME14 4LD,596227768,C,C,73,78,House,Semi-Detached,2010-06-22,E07000110,E14000700,Kent,2010-06-22,marketed sale,70,75,217,180.0,2.7,36,2.2,70.0,40.0,402.0,359.0,104.0,92.0,74.98,Single,Y,NO DATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,22.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 22% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.29,0.0,N,natural,"112, The Landway, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2010-06-22 12:17:31,owner-occupied,,,200003692696.0,Address Matched +45271459062012010313252443578712,"13, Redsells Close",Downswood,,ME15 8SN,1494553468,D,C,66,71,House,Semi-Detached,2012-01-03,E07000110,E14000700,Kent,2012-01-03,rental (private),68,73,216,181.0,2.6,41,2.2,72.0,36.0,454.0,416.0,88.0,78.0,64.59,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Timber frame, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,2.35,0.0,,natural,"13, Redsells Close, Downswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2012-01-03 13:25:24,rental (private),12.0,0.0,200003690993.0,Address Matched +863546869242013010722212306320658,"26, Betsham Road",,,ME15 8TY,9242663078,C,B,72,89,Bungalow,Mid-Terrace,2012-12-05,E07000110,E14000700,Kent,2013-01-07,rental (social),75,92,178,32.0,1.6,34,0.3,33.0,33.0,315.0,288.0,74.0,53.0,47.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,More Than Typical,0.0,2.0,2.0,86.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 86% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"26, Betsham Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2013-01-07 22:21:23,rental (social),7.0,6.0,200003681075.0,Address Matched +509577669242010070611082173700868,5 Willow House,Springwood Road,Barming,ME16 9NY,5290767768,C,C,69,80,Flat,Detached,2010-07-06,E07000110,E14000804,Kent,2010-07-06,rental (private),63,77,266,168.0,3.3,45,2.1,57.0,40.0,405.0,268.0,183.0,140.0,74.2,Single,Y,1st,N,3.0,2301.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,55.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,(another dwelling above),,,Community scheme,Good,Good,"Flat rate charging, no thermostatic control of room temperature",Very Poor,Very Poor,Low energy lighting in 55% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,heated corridor,,2.4,0.0,N,natural,"5 Willow House, Springwood Road, Barming",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2010-07-06 11:08:21,rental (private),,,200003697260.0,Address Matched +1540986075332017050417224708078705,"124, Howard Drive",,,ME16 0QB,7588751578,D,C,67,80,Bungalow,Semi-Detached,2017-05-04,E07000110,E14000804,Kent,2017-05-04,marketed sale,65,79,205,108.0,3.2,36,1.7,60.0,60.0,617.0,558.0,107.0,71.0,88.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,4.0,4.0,96.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 96% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"124, Howard Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2017-05-04 17:22:47,owner-occupied,,,200003703215.0,Address Matched +1693723029222019013015222852518321,"1, Bramshott Close",,,ME16 0RX,2564252678,D,B,61,84,Bungalow,Semi-Detached,2019-01-29,E07000110,E14000804,Kent,2019-01-30,marketed sale,54,82,272,92.0,4.2,48,1.5,119.0,63.0,663.0,435.0,131.0,79.0,87.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,10.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Average,Average,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 10% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"1, Bramshott Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2019-01-30 15:22:28,owner-occupied,,,200003659478.0,Address Matched +048c422494c39c427b37080b43a5b46dd1c6b2e81bf672a1637a202979bf4bda,112 Merton Road,Bearsted,,ME15 8LL,10001344973,C,B,70,88,House,Mid-Terrace,2021-08-13,E07000110,E14000700,Kent,2021-08-13,marketed sale,69,87,220,75.0,2.3,39,0.8,58.0,58.0,412.0,352.0,82.0,59.0,60.0,dual,Y,,,,,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.4,0.0,N,natural,"112 Merton Road, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2021-08-13 13:33:44,Owner-occupied,6.0,,200003686012.0,Energy Assessor +383059331352009101613343708919160,"3, Chestnut Close",Ulcombe,,ME17 1EA,1092188668,D,D,55,59,House,Semi-Detached,2009-10-16,E07000110,E14000700,Kent,2009-10-16,non marketed sale,47,49,414,395.0,5.3,62,5.1,75.0,53.0,562.0,506.0,155.0,155.0,85.34,dual,N,NO DATA!,,,2402.0,0.0,INVALID!,Normal,0.0,5.0,5.0,60.0,0.0,"Electric immersion, off-peak",Average,Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,"Pitched, insulated (assumed)",Average,Average,Electric storage heaters,Poor,Very Poor,Automatic charge control,Average,Average,Low energy lighting in 60% of fixed outlets,Good,Good,electricity - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.33,0.0,N,natural,"3, Chestnut Close, Ulcombe",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2009-10-16 13:34:37,owner-occupied,,,200003701117.0,Address Matched +1082651219022014020317503349678614,"6, Weyhill Close",,,ME14 5SQ,1403129178,D,B,56,82,House,Detached,2014-02-03,E07000110,E14000804,Kent,2014-02-03,none of the above,52,81,260,88.0,4.6,50,1.6,119.0,60.0,812.0,517.0,126.0,78.0,92.0,dual,Y,NODATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,1.0,5.0,5.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"6, Weyhill Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2014-02-03 17:50:33,owner-occupied,12.0,0.0,200003672944.0,Address Matched +1330448989022015110417074466848645,"5, James Street",,,ME14 2UR,4600866378,D,B,61,89,House,Mid-Terrace,2015-11-04,E07000110,E14000804,Kent,2015-11-04,assessment for green deal,57,88,295,58.0,3.2,52,0.7,85.0,42.0,606.0,359.0,84.0,53.0,62.0,Single,Y,NODATA!,,,2107.0,65.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Partial double glazing,Poor,Poor,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, no insulation",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"5, James Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2015-11-04 17:07:44,owner-occupied,,,200003703544.0,Address Matched +1377808209342015102211125448052628,"10, Newman Close",,,ME16 0ZN,4382100478,C,C,79,79,Flat,Detached,2015-10-22,E07000110,E14000804,Kent,2015-10-22,new dwelling,88,88,81,81.0,0.8,15,0.8,40.0,40.0,234.0,234.0,91.0,91.0,52.0,standard tariff,,top floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"10, Newman Close",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2015-10-22 11:12:54,owner-occupied,14.0,14.0,10014315143.0,Address Matched +367b9b9ca960de6de15037288d5d062d75853814a03c1f3627eb7978c814ea79,"78, Lee Heights",Bambridge Court,,ME14 2LD,10001587090,D,B,68,82,Flat,Enclosed End-Terrace,2021-07-26,E07000110,E14000804,Kent,2021-07-26,rental,71,71,190,195.0,2.3,32,2.3,66.0,73.0,397.0,213.0,370.0,189.0,70.0,Single,N,04,N,,,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,"Electric immersion, standard tariff",Very Poor,Poor,(another dwelling below),,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,(another dwelling above),,,"Room heaters, electric",Very Poor,Poor,Programmer and appliance thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,unheated corridor,3.74,2.24,0.0,N,natural,"78, Lee Heights, Bambridge Court",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2021-07-26 12:18:45,Rented (private),18.0,,10022893049.0,Address Matched +463106849102014082810034871442598,Wedgewood,Leeds Road,Langley,ME17 3JG,9175044768,D,B,67,84,Bungalow,Detached,2014-08-21,E07000110,E14000700,Kent,2014-08-28,none of the above,63,82,188,77.0,3.7,38,1.6,109.0,58.0,650.0,514.0,99.0,70.0,97.0,Single,Y,NODATA!,,,2111.0,100.0,double glazing installed during or after 2002,Normal,0.0,6.0,6.0,12.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,"Room heaters, coal",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,TRVs and bypass,Average,Average,Low energy lighting in 12% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"Wedgewood, Leeds Road, Langley",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2014-08-28 10:03:48,owner-occupied,34.0,4.0,200003697784.0,Address Matched +805687199262012062514004169858532,"55, The Farrows",,,ME15 9ZJ,3620959968,B,B,82,82,House,Detached,2012-06-25,E07000110,E14000700,Kent,2012-06-25,new dwelling,85,85,87,87.0,1.7,17,1.7,62.0,62.0,314.0,314.0,61.0,61.0,103.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,14.0,,"From main system, plus solar",Very Good,Very Good,Average thermal transmittance 0.15 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in 82% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,,,NO DATA!,"55, The Farrows",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2012-06-25 14:00:41,,17.0,14.0,10014312589.0,Address Matched +47845110962008121608001975658728,Flat 18,Bellwood Court,Sutton Road,ME15 8RB,2726175568,B,B,85,87,Flat,Semi-Detached,2008-12-15,E07000110,E14000700,Kent,2008-12-16,new dwelling,85,86,118,112.0,1.2,19,1.1,43.0,29.0,157.0,158.0,69.0,69.0,60.46,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,3.0,,From main system,Very Good,Very Good,(other premises below),,,Fully double glazed,Good,Good,Average thermal transmittance = 0.29 W/m?K,Very Good,Very Good,,,,Average thermal transmittance = 0.16 W/m?K,Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.0,,,NO DATA!,"Flat 18, Bellwood Court, Sutton Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2008-12-16 08:00:19,,6.0,3.0,10014306263.0,Address Matched +617566594932011041312530463968802,5 Bakery Cottages,Chatham Road,Sandling,ME14 3BE,9273875868,C,C,73,77,House,End-Terrace,2011-04-13,E07000110,E14000700,Kent,2011-04-13,marketed sale,69,73,184,159.0,4.0,30,3.5,103.0,73.0,574.0,522.0,172.0,150.0,131.82,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,7.0,7.0,60.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 250 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 60% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.35,0.0,N,natural,"5 Bakery Cottages, Chatham Road, Sandling",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2011-04-13 12:53:04,owner-occupied,,,200003672760.0,Address Matched +1811245573032020071709132432978308,"5, Wilson Close",,,ME15 8AP,7842301778,D,C,63,76,House,Detached,2020-07-16,E07000110,E14000700,Kent,2020-07-17,marketed sale,54,68,237,157.0,7.0,42,4.7,158.0,100.0,1200.0,984.0,107.0,107.0,167.0,Single,Y,NODATA!,,,2107.0,95.0,"double glazing, unknown install date",More Than Typical,2.0,7.0,7.0,43.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Mostly double glazing,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 43% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"5, Wilson Close",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2020-07-17 09:13:24,owner-occupied,,,200003684414.0,Address Matched +1814733622402020073111214375107098,"4, Gilbert Way",,,ME17 3TT,8420921778,B,A,83,95,House,Detached,2020-07-31,E07000110,E14000700,Kent,2020-07-31,new dwelling,85,97,94,6.0,1.3,16,0.1,67.0,67.0,228.0,228.0,72.0,43.0,78.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"4, Gilbert Way",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2020-07-31 11:21:43,unknown,7.0,7.0,10094441873.0,Address Matched +1558504089602017071011535655239208,"3, Acorn Close",,,ME16 8FX,4663182578,B,A,85,96,House,Mid-Terrace,2017-07-10,E07000110,E14000804,Kent,2017-07-10,new dwelling,88,99,76,-4.0,1.1,13,0.0,60.0,60.0,203.0,203.0,79.0,45.0,86.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.10 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"3, Acorn Close",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2017-07-10 11:53:56,owner-occupied,10.0,10.0,10093303852.0,Address Matched +1341015449342015070814050834750388,"5, Bower Walk",Staplehurst,,TN12 0LU,3338147378,D,B,68,88,House,Mid-Terrace,2015-07-08,E07000110,E14000804,Kent,2015-07-08,marketed sale,65,87,233,59.0,2.5,41,0.7,57.0,41.0,426.0,327.0,134.0,82.0,61.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,63.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 63% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"5, Bower Walk, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1950-1966,2015-07-08 14:05:08,owner-occupied,,,200003678133.0,Address Matched +563520683052010111013273495909680,"24, Blacksmith Drive",Weavering,,ME14 5SZ,6067351868,D,C,68,71,House,End-Terrace,2010-11-10,E07000110,E14000700,Kent,2010-11-10,marketed sale,63,66,263,245.0,3.2,44,3.0,78.0,39.0,506.0,495.0,96.0,96.0,74.0,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.31,0.0,N,natural,"24, Blacksmith Drive, Weavering",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2010-11-10 13:27:34,owner-occupied,,,200003672969.0,Address Matched +926195979922013051521584528648997,"26, Courtenay Road",,,ME15 6UL,9208708078,E,B,53,89,House,Mid-Terrace,2013-05-14,E07000110,E14000804,Kent,2013-05-15,assessment for green deal,61,99,595,-36.0,1.6,110,-0.1,16.0,16.0,302.0,250.0,154.0,85.0,15.0,dual,Y,NODATA!,,,2103.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,91.0,0.0,"Electric immersion, off-peak",Poor,Very Poor,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, no insulation",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Room thermostat only,Poor,Poor,Low energy lighting in 91% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"26, Courtenay Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2013-05-15 21:58:45,owner-occupied,11.0,10.0,200003665104.0,Address Matched +1448121631152016053116512190760141,Flat,"2, Marlborough Parade",Beverley Road,ME16 9JN,1115105478,D,C,68,76,Maisonette,Mid-Terrace,2016-05-31,E07000110,E14000804,Kent,2016-05-31,none of the above,65,76,218,149.0,2.9,38,2.0,60.0,60.0,530.0,355.0,117.0,105.0,76.0,Single,Y,1st,N,,2107.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,88.0,0.0,From main system,Good,Good,(other premises below),NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 88% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,no corridor,,2.378,,N,natural,"Flat, 2, Marlborough Parade, Beverley Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2016-05-31 16:51:21,rental (private),,,200003666409.0,Address Matched +1198183811432014090115552867078303,"22, Hayle Road",,,ME15 6PG,1307337278,E,B,54,87,House,Semi-Detached,2014-09-01,E07000110,E14000804,Kent,2014-09-01,none of the above,48,87,268,58.0,5.8,52,1.3,75.0,75.0,1066.0,443.0,189.0,93.0,113.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,6.0,6.0,83.0,0.0,From main system,Average,Average,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 83% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"22, Hayle Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2014-09-01 15:55:28,owner-occupied,12.0,10.0,200003681666.0,Address Matched +1294776419202018051020405330489408,"51, Huntington Road",Coxheath,,ME17 4DU,8294114378,D,B,67,82,House,Semi-Detached,2018-05-10,E07000110,E14000804,Kent,2018-05-10,marketed sale,67,81,209,105.0,3.1,37,1.6,102.0,59.0,574.0,535.0,88.0,57.0,84.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,25.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Average,Average,"Room heaters, electric",,,"Pitched, 270 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 25% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"51, Huntington Road, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2018-05-10 20:40:53,owner-occupied,,,200003713227.0,Address Matched +326118880962009071407105754178541,"123, Ashford Road",Bearsted,,ME14 4BT,4570874668,E,D,51,61,House,Detached,2009-07-13,E07000110,E14000700,Kent,2009-07-14,marketed sale,46,54,305,246.0,11.0,51,8.8,234.0,117.0,1502.0,1247.0,167.0,167.0,175.14,dual,Y,NO DATA!,,,2106.0,40.0,secondary glazing,Normal,1.0,11.0,9.0,0.0,0.0,From main system,Very Good,Very Good,"Suspended, no insulation (assumed)",,,Partial secondary glazing,Poor,Poor,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Roof room(s), insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.42,0.0,N,natural,"123, Ashford Road, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2009-07-14 07:10:57,owner-occupied,,,200003692022.0,Address Matched +512153346752010071215243298000574,Mileham Farm House,Gravelly Ways,Laddingford,ME18 6BZ,5466687768,E,E,46,50,House,Detached,2010-07-08,E07000110,E14000804,Kent,2010-07-12,marketed sale,52,54,311,292.0,10.0,43,9.7,244.0,129.0,1878.0,1827.0,191.0,191.0,237.42,Single,Y,NO DATA!,,,2104.0,0.0,not defined,Normal,1.0,9.0,9.0,10.0,3.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,Programmer and room thermostat,Average,Average,Low energy lighting in 10% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.3,0.0,N,natural,"Mileham Farm House, Gravelly Ways, Laddingford",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2010-07-12 15:24:32,owner-occupied,,,200003656186.0,Address Matched +629746629922011051618073816368869,"24, Curzon Road",,,ME14 5BA,6184276868,D,D,65,67,House,Detached,2011-05-16,E07000110,E14000804,Kent,2011-05-16,marketed sale,63,66,223,208.0,3.4,43,3.2,67.0,42.0,537.0,517.0,107.0,107.0,80.08,Single,Y,NODATA!,,,2104.0,85.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,40.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Mostly double glazing,Good,Good,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 40% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,2.58,0.0,,natural,"24, Curzon Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2011-05-16 18:07:38,owner-occupied,10.0,4.0,200003705280.0,Address Matched +620673568652011042817304290290482,Flat 1,"35, Union Street",,ME14 1ED,4218806868,D,C,59,72,Flat,Mid-Terrace,2011-04-20,E07000110,E14000804,Kent,2011-04-28,rental (private),61,77,391,237.0,2.1,75,1.3,36.0,18.0,334.0,239.0,113.0,82.0,28.25,Single,Y,1st,Y,,2102.0,0.0,not defined,Normal,1.0,2.0,2.0,0.0,0.0,From main system,Average,Average,(other premises below),,,Single glazed,Very Poor,Very Poor,"Cavity wall, as built, partial insulation (assumed)",Average,Average,,,,"Flat, limited insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,no corridor,,2.25,0.0,,natural,"Flat 1, 35, Union Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2011-04-28 17:30:42,rental (private),4.0,0.0,200003729487.0,Address Matched +1259537889222015012713044941768005,"100, Chatham Road",Sandling,,ME14 3BB,481861378,D,C,55,77,House,Semi-Detached,2015-01-26,E07000110,E14000700,Kent,2015-01-27,marketed sale,46,70,272,129.0,7.4,50,3.6,110.0,77.0,1346.0,841.0,127.0,113.0,149.0,Single,Y,NODATA!,,,2102.0,100.0,double glazing installed during or after 2002,Normal,1.0,7.0,7.0,57.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,Low energy lighting in 57% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"100, Chatham Road, Sandling",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2015-01-27 13:04:49,owner-occupied,,,200003672583.0,Address Matched +61843859922014111913025734048454,Windy Ridge,Charlton Lane,West Farleigh,ME15 0NL,5387504468,C,B,75,84,House,Detached,2014-11-14,E07000110,E14000804,Kent,2014-11-19,FiT application,64,81,111,76.0,5.0,31,2.5,116.0,87.0,1106.0,714.0,169.0,110.0,165.0,dual,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,8.0,8.0,67.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, oil",Average,Average,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 67% of fixed outlets,Good,Good,oil (not community),0.0,NO DATA!,,,,,natural,"Windy Ridge, Charlton Lane, West Farleigh",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2014-11-19 13:02:57,owner-occupied,12.0,8.0,200003663887.0,Address Matched +686344079102012052115593798022898,"36, The Farrows",,,ME15 9ZJ,8150170968,B,B,85,85,House,Semi-Detached,2012-05-21,E07000110,E14000700,Kent,2012-05-21,new dwelling,87,87,69,69.0,1.7,13,1.7,78.0,78.0,290.0,290.0,62.0,62.0,126.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,14.0,,"From main system, plus solar",Very Good,Very Good,Average thermal transmittance 0.15 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.12 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in 82% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.31,,,NO DATA!,"36, The Farrows",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2012-05-21 15:59:37,,17.0,14.0,10014312570.0,Address Matched +1056614089962014051514165637858714,"16, Marion Crescent",,,ME15 7DY,1373837178,D,B,58,83,House,Semi-Detached,2014-05-15,E07000110,E14000700,Kent,2014-05-15,none of the above,54,82,244,81.0,4.6,47,1.6,67.0,67.0,848.0,503.0,114.0,71.0,97.0,Single,Y,NODATA!,,,2107.0,100.0,double glazing installed before 2002,More Than Typical,0.0,5.0,5.0,80.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, no insulation",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"16, Marion Crescent",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2014-05-15 14:16:56,owner-occupied,10.0,8.0,200003684216.0,Address Matched +1375194189342015101512003433959048,Flat 3,"24, Tonbridge Road",,ME16 8RT,4354289378,B,B,88,88,Flat,NO DATA!,2015-10-14,E07000110,E14000804,Kent,2015-10-15,new dwelling,92,92,49,49.0,0.6,9,0.6,48.0,48.0,212.0,212.0,75.0,75.0,67.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.19 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Flat 3, 24, Tonbridge Road",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2015-10-15 12:00:34,unknown,25.0,25.0,10014316073.0,Address Matched +1564944869922018021411110503248278,"78, Oakwood Road",,,ME16 8AL,7055623578,D,C,61,70,House,Detached,2018-02-14,E07000110,E14000804,Kent,2018-02-14,marketed sale,55,64,231,175.0,5.7,40,4.4,81.0,81.0,1121.0,1049.0,99.0,99.0,141.0,Unknown,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,8.0,8.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,"Room heaters, electric",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"78, Oakwood Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2018-02-14 11:11:05,owner-occupied,,,200003657325.0,Address Matched +1646340379022018070616521179268558,"9, Moncktons Avenue",,,ME14 2PZ,5782709578,E,C,50,74,House,Semi-Detached,2018-07-06,E07000110,E14000804,Kent,2018-07-06,marketed sale,43,67,346,168.0,5.5,63,2.8,61.0,61.0,935.0,697.0,150.0,70.0,87.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,100.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"9, Moncktons Avenue",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2018-07-06 16:52:11,owner-occupied,,,200003670724.0,Address Matched +1481514169262016092118323417898356,"18, Cripple Street",,,ME15 6BA,5179637478,D,C,57,78,House,Detached,2016-09-21,E07000110,E14000804,Kent,2016-09-21,marketed sale,50,74,285,134.0,5.4,52,2.6,97.0,64.0,960.0,703.0,143.0,75.0,104.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,1.0,5.0,5.0,50.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,2.24,,N,natural,"18, Cripple Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2016-09-21 18:32:34,owner-occupied,,,200003676110.0,Address Matched +365116510962009091710354177238531,"156, Linden Road",Coxheath,,ME17 4RA,3746157668,E,C,40,69,Flat,Enclosed End-Terrace,2009-09-17,E07000110,E14000804,Kent,2009-09-17,rental (private),53,56,641,593.0,2.5,97,2.3,14.0,14.0,467.0,198.0,118.0,118.0,26.25,dual,N,Ground,N,2.0,2602.0,0.0,single glazing,Normal,0.0,1.0,1.0,100.0,0.0,"Electric immersion, off-peak",Average,Poor,"Solid, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Cavity wall, as built, partial insulation (assumed)",Average,Average,,,,(another dwelling above),,,"Room heaters, electric",Very Poor,Poor,Appliance thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity - this is for backwards compatibility only and should not be used,0.0,unheated corridor,4.45,2.3,0.0,N,natural,"156, Linden Road, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1976-1982,2009-09-17 10:35:41,rental (private),,,200003672702.0,Address Matched +374e51dc936b62f78c51da822f8c9e6b2be47191fbe607634fb3ecaa7dbadea5,4 Heathfield Road,Penenden Heath,,ME14 2AD,10001504957,C,B,76,84,House,Detached,2021-08-11,E07000110,E14000804,Kent,2021-08-11,marketed sale,72,80,135,87.0,5.0,24,3.2,132.0,132.0,791.0,663.0,127.0,128.0,209.0,dual,Y,,,,,100.0,double glazing installed during or after 2002,Normal,1.0,8.0,8.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Roof room(s), insulated (assumed)",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.39,0.0,N,natural,"4 Heathfield Road, Penenden Heath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2021-08-11 14:28:21,Owner-occupied,19.0,,200003673228.0,Energy Assessor +85723439402014110613553546540058,"8, Chartwell Drive",,,ME16 0WS,4474935468,D,B,56,83,House,End-Terrace,2014-11-05,E07000110,E14000804,Kent,2014-11-06,none of the above,50,82,250,81.0,5.6,48,1.9,81.0,81.0,1034.0,554.0,173.0,91.0,117.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,6.0,6.0,82.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, mains gas",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 82% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"8, Chartwell Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2014-11-06 13:55:35,owner-occupied,11.0,9.0,10022901753.0,Address Matched +1240543499432014112407373743278891,"69, West Park Road",,,ME15 7AF,9123820378,D,B,65,86,House,Semi-Detached,2014-11-24,E07000110,E14000700,Kent,2014-11-24,marketed sale,64,87,213,63.0,3.0,41,0.9,86.0,47.0,509.0,396.0,161.0,86.0,73.0,Single,Y,NODATA!,,,2107.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,17.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 17% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"69, West Park Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2014-11-24 07:37:37,owner-occupied,12.0,2.0,200003686643.0,Address Matched +1282045164452020072817384822200837,"23, Lower Fant Road",,,ME16 8DP,8785423378,D,B,62,84,House,Mid-Terrace,2020-07-28,E07000110,E14000804,Kent,2020-07-28,marketed sale,55,82,264,86.0,3.8,47,1.3,66.0,66.0,671.0,423.0,105.0,71.0,83.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,3.0,6.0,6.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"23, Lower Fant Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2020-07-28 17:38:48,owner-occupied,,,200003668355.0,Address Matched +1538932591212017042609043494230853,"56, Murdoch Chase",Coxheath,,ME17 4AA,8382141578,B,A,84,96,House,Mid-Terrace,2017-04-26,E07000110,E14000804,Kent,2017-04-26,new dwelling,87,99,82,-2.0,1.2,14,0.0,58.0,58.0,209.0,209.0,83.0,48.0,82.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.14 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.20 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"56, Murdoch Chase, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2017-04-26 09:04:34,unknown,10.0,10.0,10093302698.0,Address Matched +1725997069762019060520401614998611,Flat 3 The Coach House,"22, Lower Stone Street",,ME15 6LX,1187684678,C,C,75,79,Flat,Mid-Terrace,2019-05-31,E07000110,E14000804,Kent,2019-06-05,marketed sale,60,66,332,283.0,2.6,56,2.2,41.0,41.0,302.0,217.0,155.0,155.0,46.0,dual,N,1st,Y,,2401.0,100.0,"double glazing, unknown install date",Normal,0.0,1.0,1.0,100.0,0.0,"Electric immersion, off-peak",Average,Poor,(another dwelling below),NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,Portable electric heaters (assumed),,,"Pitched, 200 mm loft insulation",Good,Good,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,heated corridor,,,,N,natural,"Flat 3 The Coach House, 22, Lower Stone Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2019-06-05 20:40:16,owner-occupied,,,10094440930.0,Address Matched +804872273412012062214051095220190,"3, Groombridge Square",,,ME15 8TR,1037359968,D,B,66,86,House,Semi-Detached,2012-06-21,E07000110,E14000700,Kent,2012-06-22,rental (private),64,86,203,62.0,3.2,39,1.0,51.0,51.0,525.0,373.0,107.0,59.0,83.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,86.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 86% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"3, Groombridge Square",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2012-06-22 14:05:10,rental (private),14.0,12.0,200003680969.0,Address Matched +481498280312010051315342097900075,Great Love Farm,Love Lane,Headcorn,TN27 9HL,556075768,G,G,10,20,House,Detached,2010-05-13,E07000110,E14000700,Kent,2010-05-13,marketed sale,32,41,370,295.0,14.0,74,11.0,194.0,97.0,2768.0,2237.0,295.0,295.0,185.12,Single,N,NO DATA!,,,2106.0,0.0,not defined,Normal,0.0,10.0,7.0,0.0,3.0,From main system,Poor,Good,"Suspended, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, no insulation",Very Poor,Very Poor,"Boiler and radiators, LPG",Poor,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,LPG - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.3,0.0,N,natural,"Great Love Farm, Love Lane, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,England and Wales: before 1900,2010-05-13 15:34:20,owner-occupied,,,200003702098.0,Address Matched +1411804224512016021016155694260348,"4, Douglas Road",,,ME16 8ES,3811442478,D,B,55,81,House,Semi-Detached,2016-01-28,E07000110,E14000804,Kent,2016-02-10,ECO assessment,48,78,287,96.0,5.2,53,1.8,69.0,69.0,985.0,541.0,113.0,76.0,99.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,89.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 270 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 89% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"4, Douglas Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2016-02-10 16:15:56,rental (social),,,200003667801.0,Address Matched +37acee2222216ac58cbc22e9a6e0d7365266bf58b06d85aa2363b3e8283aebb3,10 COLLEGE ROAD,,,ME15 6YF,10001328105,D,C,62,76,Flat,Mid-Terrace,2021-07-21,E07000110,E14000804,Kent,2021-07-21,rental,47,70,560,308.0,3.0,95,1.6,33.0,33.0,477.0,214.0,186.0,186.0,31.0,dual,N,00,N,,,100.0,secondary glazing,Normal,1.0,1.0,1.0,100.0,0.0,Electric instantaneous at point of use,Very Poor,Poor,"Suspended, no insulation (assumed)",,,Full secondary glazing,Good,Good,"Sandstone or limestone, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,(another dwelling above),,,Electric storage heaters,Average,Poor,Controls for high heat retention storage heaters,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,unheated corridor,5.01,2.58,0.0,N,natural,10 COLLEGE ROAD,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2021-07-21 09:38:16,Rented (private),5.0,,200003693283.0,Energy Assessor +1096938819902014022813092022042188,"31, Carmans Close",Loose,,ME15 0DR,8910410278,C,B,79,91,House,End-Terrace,2014-02-28,E07000110,E14000804,Kent,2014-02-28,marketed sale,81,93,111,27.0,1.7,21,0.5,51.0,51.0,300.0,303.0,107.0,65.0,78.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"31, Carmans Close, Loose",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2014-02-28 13:09:20,owner-occupied,8.0,8.0,10014306516.0,Address Matched +1116484717512020091709480225900821,"40, Waterlow Road",,,ME14 2TP,8194751278,C,B,70,86,House,Mid-Terrace,2020-09-16,E07000110,E14000804,Kent,2020-09-17,marketed sale,67,85,206,78.0,2.9,36,1.1,65.0,65.0,516.0,409.0,86.0,57.0,80.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"40, Waterlow Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2020-09-17 09:48:02,owner-occupied,,,200003703063.0,Address Matched +1316667479762015043012105725708675,"28, Briar Fields",Weavering,,ME14 5UZ,7248765378,D,B,66,81,House,Detached,2015-04-30,E07000110,E14000700,Kent,2015-04-30,non marketed sale,60,76,212,116.0,4.6,37,2.6,154.0,77.0,773.0,682.0,151.0,88.0,125.0,dual,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,7.0,7.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, mains gas",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"28, Briar Fields, Weavering",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2015-04-30 12:10:57,owner-occupied,,,200003689894.0,Address Matched +37b55318e229c1fbb3c19675145071a514682e264624dc50245bf919c56bec1a,16 OWLETTS CLOSE,,,ME15 7SZ,10001376993,E,B,54,81,House,End-Terrace,2021-06-28,E07000110,E14000700,Kent,2021-07-01,ECO assessment,49,79,309,113.0,5.3,54,2.0,152.0,76.0,993.0,603.0,131.0,80.0,98.0,Single,Y,,,,,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,0.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,"Pitched, insulated (assumed)",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,,,2.75,0.0,N,natural,16 OWLETTS CLOSE,Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2021-07-01 10:38:40,Rented (social),10.0,,200003725389.0,Energy Assessor +37e110941137bf7c190cf775641718201fac7394059fac5dc95917c7a1dc5bda,92 Florence Road,,,ME16 8EN,10001680274,D,B,56,81,House,Mid-Terrace,2021-07-30,E07000110,E14000804,Kent,2021-08-10,marketed sale,48,78,285,99.0,5.0,52,1.8,76.0,76.0,857.0,504.0,121.0,81.0,96.0,Unknown,Y,,,,,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.7,0.0,N,natural,92 Florence Road,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2021-08-10 07:45:46,Owner-occupied,18.0,,200003667748.0,Energy Assessor +863086372232012120421111643078496,"2, Culpeper Close",Hollingbourne,,ME17 1UD,7673463078,D,B,66,82,House,Semi-Detached,2012-12-04,E07000110,E14000700,Kent,2012-12-04,rental (social),64,81,192,89.0,3.4,37,1.7,74.0,51.0,549.0,487.0,130.0,72.0,93.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,6.0,6.0,54.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 54% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"2, Culpeper Close, Hollingbourne",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2012-12-04 21:11:16,rental (social),13.0,7.0,200003700511.0,Address Matched +927343625732013051515321994978903,Flat D,1-3 Mill Street,,ME15 6XW,2344918078,F,D,29,64,Flat,End-Terrace,2013-05-15,E07000110,E14000804,Kent,2013-05-15,marketed sale,37,67,456,218.0,5.2,81,2.5,77.0,39.0,1104.0,444.0,157.0,157.0,65.0,Single,N,2nd,Y,,2704.0,0.0,not defined,More Than Typical,0.0,3.0,3.0,0.0,0.0,Electric instantaneous at point of use,Very Poor,Very Poor,(other premises below),,,Single glazed,Very Poor,Very Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,Electric underfloor heating,Very Poor,Very Poor,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,electricity (not community),0.0,unheated corridor,5.0,,0.0,,natural,"Flat D, 1-3 Mill Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2013-05-15 15:32:19,owner-occupied,7.0,0.0,10091193532.0,Address Matched +1440567695112016062915392894260740,Balinvrina,Headcorn Road,Sutton Valence,ME17 3EH,7040544478,D,B,63,86,Bungalow,Detached,2016-06-23,E07000110,E14000700,Kent,2016-06-29,ECO assessment,55,77,155,42.0,7.7,40,3.6,184.0,92.0,1043.0,965.0,174.0,103.0,195.0,Single,N,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,7.0,7.0,0.0,1.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Average,Average,"Boiler and radiators, oil",Average,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,oil (not community),0.0,NO DATA!,,2.3,,N,natural,"Balinvrina, Headcorn Road, Sutton Valence",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2016-06-29 15:39:28,owner-occupied,,,200003732681.0,Address Matched +105810959222014082118162417398744,"43, Clifford Way",,,ME16 8GD,4106587468,B,B,83,84,Flat,Mid-Terrace,2014-08-21,E07000110,E14000804,Kent,2014-08-21,marketed sale,88,88,80,74.0,1.0,15,0.9,72.0,48.0,167.0,169.0,106.0,106.0,67.0,Single,Y,3rd,N,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,50.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,heated corridor,,,0.0,,natural,"43, Clifford Way",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2014-08-21 18:16:24,owner-occupied,8.0,4.0,10022896056.0,Address Matched +3807552f6c214fb295a4997011d049141bd1ba3ec47f5ef79bc6065de5b6b3d4,2,Railway Place,Lenham,ME17 2FQ,10001408358,A,A,93,94,House,Detached,2021-08-03,E07000110,E14000700,Kent,2021-08-03,new dwelling,94,95,31,19.0,0.6,6,0.4,79.0,79.0,252.0,252.0,71.0,40.0,103.0,standard tariff,,,N,,,100.0,,,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.16 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.17 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.44,,,,"2, Railway Place, Lenham",Maidstone,Faversham and Mid Kent,Maidstone,2020,2021-08-03 09:43:49,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,13.0,,10095449326.0,Address Matched +289005700262009052018225212008171,"23, Discovery Road",Bearsted,,ME15 8HF,7114022668,C,C,70,74,House,Detached,2009-05-20,E07000110,E14000700,Kent,2009-05-20,marketed sale,67,70,192,172.0,4.9,32,4.4,145.0,79.0,599.0,577.0,139.0,128.0,154.2,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,7.0,7.0,15.0,0.0,From main system,Good,Good,"Solid, limited insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, mains gas",,,"Pitched, 200mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 15% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.3,0.0,N,natural,"23, Discovery Road, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1996-2002,2009-05-20 18:22:52,owner-occupied,,,200003722065.0,Address Matched +1072083416052014011613565494940016,"22, Chestnut Drive",Kingswood,,ME17 3PP,679648178,E,B,45,88,Bungalow,Detached,2014-01-16,E07000110,E14000700,Kent,2014-01-16,marketed sale,37,81,322,59.0,6.1,77,1.5,88.0,48.0,945.0,480.0,336.0,110.0,78.0,Single,N,NODATA!,,,2105.0,100.0,double glazing installed before 2002,Normal,1.0,4.0,4.0,16.0,0.0,"From main system, no cylinder thermostat",Poor,Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, oil",Average,Average,Programmer and at least two room thermostats,Good,Good,Low energy lighting in 16% of fixed outlets,Poor,Poor,oil (not community),0.0,NO DATA!,,,0.0,,natural,"22, Chestnut Drive, Kingswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2014-01-16 13:56:54,owner-occupied,43.0,7.0,200003700093.0,Address Matched +1598436069902018010317070151580078,"7, Armistice Way",Harrietsham,,ME17 1GY,6954665578,B,A,85,95,House,Semi-Detached,2018-01-03,E07000110,E14000700,Kent,2018-01-03,new dwelling,87,97,79,5.0,1.3,14,0.1,63.0,63.0,220.0,220.0,83.0,49.0,93.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.2 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.2 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.1 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"7, Armistice Way, Harrietsham",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2018-01-03 17:07:01,owner-occupied,15.0,15.0,10093305053.0,Address Matched +421945219922010011616590861668040,"99, Kingsley Road",,,ME15 7UP,4677151768,D,D,62,66,House,Mid-Terrace,2010-01-16,E07000110,E14000804,Kent,2010-01-16,rental (private),57,60,342,314.0,3.3,57,3.0,58.0,29.0,510.0,490.0,85.0,80.0,57.99,Single,Y,NO DATA!,,,2107.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,0.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 150mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.49,0.0,N,natural,"99, Kingsley Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2010-01-16 16:59:08,rental (private),,,200003695927.0,Address Matched +384080065cc3d1615d86c6b255432d16ff76c99d14a019ff6cdb5028fc23f896,8 ALBERT STREET,,,ME14 2RW,10001545931,D,B,59,82,House,Mid-Terrace,2021-07-06,E07000110,E14000804,Kent,2021-07-06,rental,51,78,286,116.0,5.0,50,2.1,101.0,77.0,813.0,530.0,111.0,74.0,99.0,Single,Y,,,,,100.0,double glazing installed during or after 2002,Normal,2.0,6.0,6.0,70.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 70% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.1,0.0,N,natural,8 ALBERT STREET,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2021-07-06 13:50:47,Rented (private),10.0,,200003669683.0,Energy Assessor +3843ad219053dc06ce4c9ad2980a6c2622e9c689bec25c548dde0849c2e074a0,FLAT 3,115 SEYMOUR DRIVE,,TN12 9GS,10001630657,B,B,84,84,Flat,End-Terrace,2021-07-19,E07000110,E14000804,Kent,2021-07-19,new dwelling,89,89,86,86.0,0.8,15,0.8,49.0,49.0,150.0,150.0,61.0,61.0,51.0,standard tariff,,1,N,,,100.0,,,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.22 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.39,,,,"FLAT 3, 115 SEYMOUR DRIVE",Maidstone,Maidstone and The Weald,MARDEN,2018,2021-07-19 14:59:53,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,10.0,,10094441156.0,Energy Assessor +1342848349922015071410471607278125,"35, Maidstone Road",Lenham,,ME17 2QH,2014457378,E,C,52,76,House,Mid-Terrace,2015-07-13,E07000110,E14000700,Kent,2015-07-14,marketed sale,43,70,311,141.0,7.2,57,3.4,122.0,71.0,1290.0,842.0,145.0,76.0,126.0,Single,Y,NODATA!,,,2106.0,33.0,double glazing installed during or after 2002,Normal,2.0,7.0,7.0,27.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Partial double glazing,Poor,Poor,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 27% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"35, Maidstone Road, Lenham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1900-1929,2015-07-14 10:47:16,owner-occupied,,,200003711590.0,Address Matched +3841d97919e51db36e44a84b282c58ef8f2a96a65d9b1f9909c4a3562cb962b1,11 BOUGHTON PARK,,,ME17 2EF,10001339575,B,A,84,97,House,Detached,2021-07-20,E07000110,E14000700,Kent,2021-07-20,new dwelling,86,97,69,7.0,3.5,12,0.4,138.0,138.0,898.0,899.0,242.0,145.0,299.0,standard tariff,,,N,,,100.0,,,,,,100.0,0.0,From main system,Average,Good,Average thermal transmittance 0.20 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.18 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.20 W/m-¦K,Good,Good,"Air source heat pump, underfloor, electric",Good,Very Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",0.0,,,2.79,,,,11 BOUGHTON PARK,Maidstone,Faversham and Mid Kent,GRAFTY GREEN,2021,2021-07-20 13:23:54,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,20.0,,10093306155.0,Energy Assessor +385ff63c5ba24c710f1b72d446629152eb6482b85b358a67710ee2e7c9393788,3 TENACRE COURT,ASHFORD ROAD,HARRIETSHAM,ME17 1AH,10001459221,E,E,40,40,Flat,End-Terrace,2021-08-05,E07000110,E14000700,Kent,2021-08-05,not sale or rental,47,47,414,414.0,3.6,70,3.6,46.0,46.0,1081.0,1081.0,203.0,203.0,52.0,standard tariff,,1,N,,,100.0,,,,,,100.0,0.0,Electric instantaneous at point of use,Very Poor,Poor,Average thermal transmittance 0.57 W/m-¦K,Poor,Poor,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.49 W/m-¦K,Good,Good,,,,(other premises above),,,"Boiler and radiators, electric",Very Poor,Poor,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",0.0,,,3.69,,,,"3 TENACRE COURT, ASHFORD ROAD, HARRIETSHAM",Maidstone,Faversham and Mid Kent,MAIDSTONE,2020,2021-08-05 14:24:16,Owner-occupied,4.0,,10095449468.0,Energy Assessor +508536173332017072513432299268001,1 Lewis Row Cottages,Hermitage Lane,Boughton Monchelsea,ME17 4DA,7109067768,E,C,48,79,House,End-Terrace,2017-07-24,E07000110,E14000700,Kent,2017-07-25,ECO assessment,41,71,263,94.0,6.2,68,2.6,72.0,72.0,749.0,428.0,130.0,81.0,92.0,Single,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,1.0,4.0,4.0,80.0,0.0,From main system,Average,Average,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, oil",Average,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,oil (not community),0.0,NO DATA!,,,,N,natural,"1 Lewis Row Cottages, Hermitage Lane, Boughton Monchelsea",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1900-1929,2017-07-25 13:43:22,owner-occupied,,,200003679746.0,Address Matched +1189235899922014081216515636528284,"57, Oxford Road",,,ME15 8DB,8373966278,C,B,70,82,House,Semi-Detached,2014-08-12,E07000110,E14000700,Kent,2014-08-12,marketed sale,68,81,160,86.0,3.5,31,1.9,97.0,64.0,624.0,581.0,136.0,92.0,113.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,2.0,6.0,6.0,50.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"57, Oxford Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2014-08-12 16:51:56,owner-occupied,12.0,6.0,200003713297.0,Address Matched +713960109932011110820462492068392,Flat 219 Scotney Gardens,St. Peters Street,,ME16 0GW,212382968,B,B,82,82,Flat,Mid-Terrace,2011-11-08,E07000110,E14000804,Kent,2011-11-08,rental (private),72,72,258,258.0,1.7,46,1.7,26.0,26.0,117.0,117.0,92.0,92.0,37.89,dual,N,1st,N,,2402.0,100.0,double glazing installed during or after 2002,Normal,0.0,1.0,1.0,100.0,0.0,"Electric immersion, off-peak",Average,Very Poor,"To external air, insulated (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,(another dwelling above),,,Electric storage heaters,Average,Very Poor,Automatic charge control,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,heated corridor,,2.34,0.0,,natural,"Flat 219 Scotney Gardens, St. Peters Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2011-11-08 20:46:24,rental (private),5.0,5.0,10022893586.0,Address Matched +90098467412011021009394491990649,"17, Wilberforce Road",Coxheath,,ME17 4HD,6974716468,D,C,64,69,House,Semi-Detached,2011-02-10,E07000110,E14000804,Kent,2011-02-10,marketed sale,59,63,277,245.0,4.2,46,3.7,83.0,49.0,634.0,594.0,143.0,124.0,89.68,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,6.0,6.0,30.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 250 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 30% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.33,0.0,N,natural,"17, Wilberforce Road, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2011-02-10 09:39:44,owner-occupied,,,200003713512.0,Address Matched +55808149702019122209422252612698,"62, Clock House Rise",Coxheath,,ME17 4GS,4725246568,C,C,78,79,Flat,Mid-Terrace,2019-12-21,E07000110,E14000804,Kent,2019-12-22,rental (social),83,83,140,135.0,1.1,24,1.1,59.0,42.0,227.0,229.0,71.0,71.0,47.0,Single,Y,Ground,N,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,60.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 60% of fixed outlets,Good,Good,mains gas (not community),0.0,unheated corridor,8.4,,,N,"mechanical, extract only","62, Clock House Rise, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2019-12-22 09:42:22,rental (social),,,10022900578.0,Address Matched +1664596829212018091913592893980567,"4, Knoxes Shaw",,,ME16 9FB,5732930678,B,A,84,93,House,Detached,2018-09-19,E07000110,E14000804,Kent,2018-09-19,new dwelling,85,94,80,24.0,1.7,14,0.6,76.0,76.0,290.0,290.0,83.0,50.0,124.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.17 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"4, Knoxes Shaw",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2018-09-19 13:59:28,unknown,15.0,15.0,10093303501.0,Address Matched +38b6e014a83e8e0730b95182c21db9da79560556d922c4f50694169d46a2df5d,40 PERRY STREET,,,ME14 2RP,10001491111,E,D,54,65,Flat,End-Terrace,2021-06-29,E07000110,E14000804,Kent,2021-07-01,ECO assessment,52,66,356,251.0,3.3,62,2.3,87.0,47.0,686.0,501.0,84.0,85.0,53.0,Single,Y,00,N,,,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,14.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 14% of fixed outlets,Poor,Poor,mains gas (not community),0.0,no corridor,,2.8,0.0,N,"mechanical, extract only",40 PERRY STREET,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2021-07-01 18:41:00,Rented (social),7.0,,200003669572.0,Energy Assessor +204371559262013032616123796268937,43 Sapphire House,Coral Park,,ME14 5HQ,3903516568,B,B,81,84,Flat,Enclosed Mid-Terrace,2013-03-26,E07000110,E14000804,Kent,2013-03-26,marketed sale,72,74,184,171.0,2.2,33,2.0,88.0,47.0,140.0,132.0,122.0,122.0,67.0,dual,N,Ground,N,,2401.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,14.0,0.0,"Electric immersion, off-peak",Average,Very Poor,"Solid, insulated (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,(another dwelling above),,,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 14% of fixed outlets,Poor,Poor,electricity (not community),0.0,heated corridor,,,0.0,,natural,"43 Sapphire House, Coral Park",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2013-03-26 16:12:37,owner-occupied,7.0,1.0,10022893742.0,Address Matched +38bce917022b7dcc3d45df30b03c2efda05383d6bd3e9994bab4d84d2aa2efee,22 ELLIS FIELD,OTHAM,,ME15 8YL,10001419529,B,A,85,95,House,Detached,2021-07-09,E07000110,E14000804,Kent,2021-07-09,new dwelling,87,97,80,8.0,1.4,14,0.2,79.0,79.0,223.0,224.0,95.0,53.0,102.0,standard tariff,,,N,,,100.0,,,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.18 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.38,,,,"22 ELLIS FIELD, OTHAM",Maidstone,Maidstone and The Weald,OTHAM,2021,2021-07-09 10:42:09,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,14.0,,10094440519.0,Address Matched +1097656392652015021717282492950828,"7, Moorhen Road",,,ME15 6XJ,8806220278,B,B,83,83,Flat,Detached,2015-02-17,E07000110,E14000804,Kent,2015-02-17,new dwelling,88,88,98,98.0,0.9,17,0.9,38.0,38.0,176.0,176.0,81.0,81.0,51.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"7, Moorhen Road",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2015-02-17 17:28:24,owner-occupied,6.0,6.0,10014315301.0,Address Matched +617702089502019111417065987519148,Tanner Farm Cottage,Goudhurst Road,Marden,TN12 9ND,1525685868,D,B,64,90,House,Semi-Detached,2019-11-14,E07000110,E14000804,Kent,2019-11-14,rental (private),61,86,202,58.0,5.9,33,1.6,203.0,102.0,1064.0,872.0,137.0,89.0,181.0,Unknown,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,2.0,6.0,6.0,0.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, wood logs",,,"Roof room(s), no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"Tanner Farm Cottage, Goudhurst Road, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1950-1966,2019-11-14 17:06:59,rental (private),,,200003733750.0,Address Matched +38b24bfe4dd4c2fbd949dce55419be45cacfa9e0477c07659373348253fbf759,FLAT 2,115 SEYMOUR DRIVE,,TN12 9GS,10001692688,B,B,84,84,Flat,Mid-Terrace,2021-07-19,E07000110,E14000804,Kent,2021-07-19,new dwelling,89,89,86,86.0,0.8,15,0.8,49.0,49.0,150.0,150.0,61.0,61.0,51.0,standard tariff,,1,N,,,100.0,,,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.22 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.39,,,,"FLAT 2, 115 SEYMOUR DRIVE",Maidstone,Maidstone and The Weald,MARDEN,2018,2021-07-19 14:59:52,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,10.0,,10094441155.0,Energy Assessor +884037259752015072114030191250408,"22, Lewis Court Drive",Boughton Monchelsea,,ME17 4LQ,4832915078,D,C,60,80,House,Semi-Detached,2015-07-21,E07000110,E14000700,Kent,2015-07-21,ECO assessment,47,70,270,126.0,5.6,57,2.9,120.0,60.0,864.0,650.0,109.0,73.0,100.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,5.0,5.0,0.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, coal",,,"Pitched, 25 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"22, Lewis Court Drive, Boughton Monchelsea",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2015-07-21 14:03:01,owner-occupied,,,200003709753.0,Address Matched +571409439722010120311365402508310,"30, Reginald Road",,,ME16 8HA,1006312868,D,D,57,57,House,Detached,2010-11-30,E07000110,E14000804,Kent,2010-12-03,rental (private),49,49,286,286.0,9.0,48,9.0,103.0,103.0,1368.0,1368.0,160.0,160.0,187.86,Unknown,Y,NO DATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,2.0,9.0,9.0,100.0,0.0,From main system,Very Good,Very Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.69,0.0,N,natural,"30, Reginald Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2010-12-03 11:36:54,rental (private),,,200003667872.0,Address Matched +774227924052012041113201793920890,"16, Grant Drive",,,ME15 9RZ,8070437968,C,B,69,85,House,End-Terrace,2012-04-11,E07000110,E14000700,Kent,2012-04-11,rental (private),68,86,186,67.0,2.7,36,1.0,66.0,44.0,412.0,367.0,119.0,66.0,75.0,Unknown,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,50.0,0.0,From main system,Good,Good,"Suspended, limited insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"16, Grant Drive",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1996-2002,2012-04-11 13:20:17,rental (private),14.0,7.0,200003722981.0,Address Matched +1552392606332017061611385583978006,"10, The Weavers",Headcorn,,TN27 9AQ,663042578,B,A,84,96,House,End-Terrace,2017-06-16,E07000110,E14000700,Kent,2017-06-16,new dwelling,86,98,87,-1.0,1.2,15,0.0,55.0,55.0,209.0,209.0,85.0,51.0,78.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.17 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.21 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"10, The Weavers, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,NO DATA!,2017-06-16 11:38:55,unknown,20.0,20.0,10093304435.0,Address Matched +1171750310252014071017421895940021,Wolverley,Vicarage Road,Yalding,ME18 6DT,173055278,D,C,60,77,House,Detached,2014-07-10,E07000110,E14000804,Kent,2014-07-10,marketed sale,54,72,209,118.0,6.9,40,4.0,145.0,81.0,1276.0,944.0,155.0,132.0,172.0,Single,Y,NODATA!,,,2104.0,90.0,double glazing installed before 2002,Normal,1.0,8.0,8.0,22.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Mostly double glazing,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 22% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"Wolverley, Vicarage Road, Yalding",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2014-07-10 17:42:18,owner-occupied,23.0,5.0,200003661551.0,Address Matched +1486362640312016100711293897069542,"6, Robinson Avenue",Barming,,ME16 9BF,5201077478,B,B,83,83,Flat,NO DATA!,2016-10-07,E07000110,E14000804,Kent,2016-10-07,new dwelling,90,90,70,70.0,0.8,12,0.8,49.0,49.0,190.0,190.0,81.0,81.0,62.0,standard tariff,,top floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.20 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"6, Robinson Avenue, Barming",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2016-10-07 11:29:38,unknown,15.0,15.0,10091195823.0,Address Matched +933711642452013051913560996970701,"31, Bridge Mill Way",Tovil,,ME15 6FD,7152268078,D,B,67,83,House,Detached,2013-05-17,E07000110,E14000804,Kent,2013-05-19,marketed sale,66,82,191,84.0,3.1,37,1.4,81.0,47.0,521.0,455.0,90.0,63.0,84.0,Unknown,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,30.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 30% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"31, Bridge Mill Way, Tovil",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2013-05-19 13:56:09,owner-occupied,10.0,3.0,200003716018.0,Address Matched +1716936382062020070212055644428450,Flat 1 Guinevere Point,Waterhouse Avenue,,ME14 2FJ,5487814678,B,B,83,83,Flat,End-Terrace,2020-07-02,E07000110,E14000804,Kent,2020-07-02,new dwelling,87,87,94,94.0,0.9,16,0.9,47.0,47.0,180.0,180.0,61.0,61.0,54.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.17 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Flat 1 Guinevere Point, Waterhouse Avenue",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2020-07-02 12:05:56,unknown,10.0,10.0,10094440109.0,Address Matched +326414180922009071411133034148081,"55, Thornhill Place",,,ME14 2SE,8363874668,E,E,39,45,House,Semi-Detached,2009-07-14,E07000110,E14000804,Kent,2009-07-14,marketed sale,33,39,548,480.0,6.7,92,5.8,40.0,40.0,1018.0,907.0,105.0,88.0,72.3,Unknown,Y,NO DATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,1.0,4.0,4.0,90.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, mains gas",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Poor,Poor,Low energy lighting in 90% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,0.0,N,natural,"55, Thornhill Place",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2009-07-14 11:13:30,owner-occupied,,,200003702428.0,Address Matched +995956248732013082419414098978300,Greystoke,Harple Lane,Detling,ME14 3EU,4048303178,D,C,62,78,House,Semi-Detached,2013-08-15,E07000110,E14000700,Kent,2013-08-24,marketed sale,63,80,217,115.0,3.7,37,1.9,110.0,55.0,707.0,689.0,115.0,77.0,99.0,Unknown,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,6.0,6.0,0.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"System built, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"Greystoke, Harple Lane, Detling",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2013-08-24 19:41:40,owner-occupied,14.0,0.0,200003723373.0,Address Matched +1425678981452016031917304894960547,2 Grove Cottages,Frinsted,,ME9 0SN,5725143478,E,A,40,100,House,Semi-Detached,2016-03-15,E07000110,E14000700,Kent,2016-03-19,rental (private),36,92,313,-35.0,6.3,74,0.3,69.0,70.0,903.0,444.0,265.0,150.0,85.0,dual,N,NODATA!,,,2104.0,0.0,not defined,Normal,2.0,6.0,6.0,88.0,0.0,"Electric immersion, off-peak",Very Poor,Poor,"Suspended, no insulation (assumed)",NO DATA!,,Single glazed,Very Poor,Very Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, oil",Average,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 88% of fixed outlets,Very Good,Very Good,oil (not community),0.0,NO DATA!,,2.23,,N,natural,"2 Grove Cottages, Frinsted",Maidstone,Faversham and Mid Kent,SITTINGBOURNE,England and Wales: before 1900,2016-03-19 17:30:48,rental (private),,,10014308614.0,Address Matched +684005149962011121914482530118149,7 Mainy House,Church Street,,ME14 1FG,4325450968,C,C,80,80,Flat,NO DATA!,2011-12-19,E07000110,E14000804,Kent,2011-12-19,new dwelling,81,82,133,130.0,1.5,24,1.5,48.0,36.0,219.0,222.0,100.0,100.0,64.5,standard tariff,,top floor,,,,,NO DATA!,NO DATA!,,,,6.0,,From main system,Average,Good,(other premises below),,,Fully double glazed,Good,Good,Average thermal transmittance 0.25 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.20 W/m?K,Good,Good,"Air source heat pump, underfloor, electric",Good,Very Good,Programmer and at least two room thermostats,Good,Good,Low energy lighting in 67% of fixed outlets,Good,Good,"Electricity: electricity, unspecified tariff",0.0,NO DATA!,,2.8,,,NO DATA!,"7 Mainy House, Church Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2011-12-19 14:48:25,,9.0,6.0,10014306381.0,Address Matched +1773983424852019122011274193219165,"3, Lade Drive",Staplehurst,,TN12 0GL,1531438678,B,A,83,97,House,End-Terrace,2019-12-20,E07000110,E14000804,Kent,2019-12-20,new dwelling,86,100,96,-16.0,1.0,17,-0.1,52.0,52.0,187.0,187.0,64.0,37.0,60.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.14 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.27 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"3, Lade Drive, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,NO DATA!,2019-12-20 11:27:41,unknown,9.0,9.0,10094441949.0,Address Matched +445962602022020071015304773018040,14Second Floor Granada House,Lower Stone Street,,ME15 6JS,4724023768,D,C,63,78,Flat,Mid-Terrace,2020-07-09,E07000110,E14000804,Kent,2020-07-10,rental (private),58,80,298,142.0,3.2,53,1.5,53.0,53.0,573.0,264.0,92.0,94.0,61.0,Unknown,Y,2nd,Y,,2106.0,100.0,secondary glazing,Normal,0.0,4.0,4.0,100.0,0.0,From main system,Good,Good,(another dwelling below),NO DATA!,,Full secondary glazing,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Flat, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,no corridor,,,,N,natural,"14Second Floor Granada House, Lower Stone Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2020-07-10 15:30:47,rental (private),,,, +249617730922009031917583799318571,"20, Meades Close",Marden,,TN12 9QG,7961349568,C,C,69,79,House,Mid-Terrace,2009-03-19,E07000110,E14000804,Kent,2009-03-19,marketed sale,64,76,280,188.0,2.8,46,1.9,48.0,26.0,315.0,242.0,112.0,81.0,59.2,Single,Y,NO DATA!,,,2104.0,60.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,20.0,0.0,From main system,Average,Good,"Solid, no insulation (assumed)",,,Partial double glazing,Poor,Poor,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 100mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Average,Good,Programmer and room thermostat,Poor,Poor,Low energy lighting in 20% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,0.0,N,natural,"20, Meades Close, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1983-1990,2009-03-19 17:58:37,owner-occupied,,,200003668939.0,Address Matched +406906740742009120815564578010128,"16, Norway Terrace",Invicta Park,,ME14 2PH,6749540768,D,D,68,68,House,Mid-Terrace,2009-12-02,E07000110,E14000804,Kent,2009-12-08,marketed sale,67,67,232,232.0,3.1,38,3.1,44.0,44.0,518.0,518.0,93.0,93.0,80.8,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,90.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 90% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.3,0.0,N,natural,"16, Norway Terrace, Invicta Park",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2009-12-08 15:56:45,owner-occupied,,,200003723929.0,Address Matched +1331492779842015061513453234659258,"47, Longham Copse",Downswood,,ME15 8TL,2886576378,C,B,72,85,House,Semi-Detached,2015-06-15,E07000110,E14000700,Kent,2015-06-15,marketed sale,70,83,184,91.0,3.0,32,1.5,72.0,57.0,534.0,489.0,108.0,75.0,92.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,7.0,7.0,72.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Timber frame, with additional insulation",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 72% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"47, Longham Copse, Downswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2015-06-15 13:45:32,owner-occupied,,,200003686469.0,Address Matched +591382555812014061216125797940180,8b Elizabeth House,Alexandra Street,,ME14 2BX,1027573868,C,B,73,84,Flat,Mid-Terrace,2014-06-11,E07000110,E14000804,Kent,2014-06-12,none of the above,67,75,294,227.0,1.9,52,1.4,34.0,34.0,133.0,84.0,225.0,102.0,36.0,dual,N,1st,N,,2402.0,100.0,double glazing installed during or after 2002,Normal,0.0,1.0,1.0,75.0,0.0,"Electric immersion, off-peak",Poor,Very Poor,(other premises below),,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,Portable electric heaters (assumed),,,(another dwelling above),,,Electric storage heaters,Average,Very Poor,Automatic charge control,Average,Average,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,electricity (not community),0.0,no corridor,,,0.0,,natural,"8b Elizabeth House, Alexandra Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2014-06-12 16:12:57,rental (private),4.0,3.0,200003728124.0,Address Matched +908040509062013040407521216228217,"52, Sittingbourne Road",,,ME14 5HZ,1189086078,D,C,65,80,House,Detached,2013-04-02,E07000110,E14000804,Kent,2013-04-04,rental (private),62,78,195,101.0,4.1,38,2.2,68.0,68.0,665.0,562.0,134.0,78.0,109.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,82.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 82% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"52, Sittingbourne Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2013-04-04 07:52:12,rental (private),11.0,9.0,200003705597.0,Address Matched +1557415563452017070510324497030359,2 Downs View Court,"66, Murdoch Chase",Coxheath,ME17 4AA,3984372578,B,B,83,83,Flat,Detached,2017-07-05,E07000110,E14000804,Kent,2017-07-05,new dwelling,88,88,95,95.0,0.9,17,0.9,45.0,45.0,177.0,177.0,69.0,69.0,56.0,standard tariff,,ground floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.14 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.20 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"2 Downs View Court, 66, Murdoch Chase, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2017-07-05 10:32:44,unknown,7.0,7.0,10093302705.0,Address Matched +458419409902010041308165472409728,"22, Milton Street",,,ME16 8JY,6922504768,C,C,70,72,House,Mid-Terrace,2010-04-12,E07000110,E14000804,Kent,2010-04-13,rental (social),65,67,245,230.0,3.2,41,3.0,56.0,40.0,494.0,473.0,93.0,93.0,77.36,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,60.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 60% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.6,0.0,N,natural,"22, Milton Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2010-04-13 08:16:54,rental (social),,,200003657404.0,Address Matched +226779119432014110607150006068897,"14, Conway Road",,,ME16 0HD,1766887568,C,B,74,84,House,Detached,2014-11-05,E07000110,E14000804,Kent,2014-11-06,marketed sale,72,83,132,73.0,4.0,25,2.3,107.0,78.0,719.0,640.0,139.0,94.0,158.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,8.0,8.0,62.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 62% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"14, Conway Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2014-11-06 07:15:00,owner-occupied,16.0,10.0,200003702269.0,Address Matched +1726932521652019110107540699019664,"29, Pentecost Lane",Otham,,ME15 8YF,6491194678,B,A,84,96,House,End-Terrace,2019-11-01,E07000110,E14000700,Kent,2019-11-01,new dwelling,87,99,83,-5.0,1.1,15,0.0,66.0,66.0,198.0,198.0,73.0,43.0,78.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.10 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.19 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"29, Pentecost Lane, Otham",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2019-11-01 07:54:06,owner-occupied,10.0,10.0,10094440450.0,Address Matched +3939a184b4af68ab4211dcde22282bb04647697e790131419d6f5e9f41698b5f,57 DOUGLAS ROAD,,,ME16 8ER,10001535510,D,B,58,84,House,Mid-Terrace,2021-08-05,E07000110,E14000804,Kent,2021-08-05,marketed sale,50,81,282,91.0,5.4,50,1.8,81.0,81.0,967.0,515.0,93.0,63.0,109.0,Single,Y,,,,,100.0,double glazing installed during or after 2002,Normal,0.0,8.0,8.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.38,0.0,N,natural,57 DOUGLAS ROAD,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2021-08-05 19:19:07,Owner-occupied,11.0,,200003667768.0,Energy Assessor +793321369302012080712014498822828,"44, Abingdon Road",,,ME16 9DS,7305868968,D,C,63,77,House,Semi-Detached,2012-05-22,E07000110,E14000804,Kent,2012-08-07,marketed sale,61,75,234,132.0,3.1,45,1.8,57.0,39.0,512.0,514.0,103.0,81.0,68.0,Unknown,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,56.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Roof room(s), limited insulation (assumed)",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 56% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"44, Abingdon Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2012-08-07 12:01:44,owner-occupied,9.0,5.0,200003664587.0,Address Matched +1742184739062019080816380246288521,"1, Pearwood Road",Allington,,ME16 9FY,2465306678,B,B,86,88,House,Semi-Detached,2019-08-08,E07000110,E14000804,Kent,2019-08-08,new dwelling,88,91,73,55.0,0.9,13,0.7,58.0,58.0,197.0,197.0,87.0,48.0,72.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.19 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.16 W/m-¦K,Good,Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"1, Pearwood Road, Allington",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2019-08-08 16:38:02,unknown,25.0,25.0,10093306672.0,Address Matched +1419750899202017051915441645239418,"2, Osprey Close",Allington,,ME16 0FE,1273992478,B,A,84,95,House,Detached,2017-05-19,E07000110,E14000804,Kent,2017-05-19,new dwelling,85,96,85,8.0,1.4,15,0.2,59.0,59.0,232.0,232.0,87.0,52.0,90.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.14 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.27 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"2, Osprey Close, Allington",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2017-05-19 15:44:16,owner-occupied,15.0,15.0,10091195380.0,Address Matched +1745858779222019082209445106728591,"3, Mulberry Place",,,ME15 7FB,9065726678,C,A,78,94,Bungalow,Semi-Detached,2019-08-22,E07000110,E14000700,Kent,2019-08-22,new dwelling,80,95,141,27.0,1.6,24,0.3,62.0,62.0,195.0,196.0,282.0,168.0,69.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Poor,Average,Average thermal transmittance 0.11 W/m+é-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.17 W/m+é-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.10 W/m+é-¦K,Very Good,Very Good,"Air source heat pump, underfloor, electric",Good,Very Good,2207 Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"3, Mulberry Place",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2019-08-22 09:44:51,unknown,20.0,20.0,10093307385.0,Address Matched +3972eba53eccc6ddcbfc94af30e0efa4db9d43ba7361c27112d084fae915a147,7 Watersmeet Close,,,ME15 6GW,10001557705,C,B,69,87,House,End-Terrace,2021-09-17,E07000110,E14000804,Kent,2021-09-19,marketed sale,65,86,215,71.0,3.4,38,1.2,70.0,70.0,508.0,391.0,177.0,74.0,88.0,Single,Y,,,,,100.0,double glazing installed during or after 2002,Normal,1.0,7.0,7.0,100.0,0.0,From main system,Average,Average,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.3,0.0,N,natural,7 Watersmeet Close,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1991-1995,2021-09-19 00:03:20,Owner-occupied,11.0,,10022892180.0,Energy Assessor +1189542979042014081310255128649778,Flat 41 Block G,Lindisfarne Gardens,,ME16 8QG,3016176278,C,C,76,79,Flat,Detached,2014-08-13,E07000110,E14000804,Kent,2014-08-13,none of the above,80,83,133,112.0,1.5,25,1.3,66.0,44.0,249.0,248.0,144.0,114.0,60.0,Single,Y,1st,N,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,50.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,heated corridor,,,0.0,,"mechanical, extract only","Flat 41 Block G, Lindisfarne Gardens",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2014-08-13 10:25:51,rental (private),12.0,6.0,200003724425.0,Address Matched +1142547249342014051812340622340018,"60a, Oakwood Road",,,ME16 8AB,4306043278,D,C,66,80,House,Detached,2014-05-09,E07000110,E14000804,Kent,2014-05-18,marketed sale,59,74,180,103.0,5.1,38,3.1,124.0,76.0,822.0,714.0,134.0,90.0,136.0,dual,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,6.0,6.0,37.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, coal",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 37% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"60a, Oakwood Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2014-05-18 12:34:06,owner-occupied,35.0,13.0,200003657989.0,Address Matched +815846319922012071922164310328472,"85, The Quarries",Boughton Monchelsea,,ME17 4NJ,7112130078,B,B,84,84,House,Semi-Detached,2012-07-12,E07000110,E14000700,Kent,2012-07-19,new dwelling,85,85,79,79.0,2.2,15,2.2,68.0,68.0,364.0,364.0,90.0,90.0,145.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,10.0,,From main system,Good,Good,Average thermal transmittance 0.19 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.29 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.20 W/m?K,Good,Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,,,NO DATA!,"85, The Quarries, Boughton Monchelsea",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2012-07-19 22:16:43,,10.0,10.0,10014314457.0,Address Matched +39901538170457189e354af803cfdafe2fcb466d4d449ed9b17c44f3d242f371,44 Locks Yard,Headcorn,,TN27 9AD,10001508847,C,B,75,84,House,Detached,2021-08-23,E07000110,E14000700,Kent,2021-08-23,marketed sale,73,81,140,84.0,3.2,25,2.0,118.0,118.0,505.0,507.0,112.0,73.0,130.0,dual,Y,,,,,100.0,"double glazing, unknown install date",Normal,0.0,6.0,6.0,88.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 88% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.22,0.0,N,natural,"44 Locks Yard, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,England and Wales: 2003-2006,2021-08-23 18:20:45,Owner-occupied,17.0,,10014312123.0,Energy Assessor +763262859222012032008232606108582,"425, Willington Street",,,ME15 8HD,8047556968,F,E,25,44,House,End-Terrace,2012-03-20,E07000110,E14000700,Kent,2012-03-20,rental (private),26,43,557,372.0,8.9,102,5.9,79.0,46.0,1285.0,1018.0,451.0,197.0,87.55,dual,Y,NODATA!,,,2601.0,100.0,double glazing installed before 2002,Normal,2.0,6.0,1.0,27.0,0.0,"Gas boiler/circulator, no cylinder thermostat",Very Poor,Very Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,"Pitched, 75 mm loft insulation",Average,Average,"Room heaters, mains gas",Poor,Poor,No thermostatic control of room temperature,Poor,Poor,Low energy lighting in 27% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,2.39,0.0,,natural,"425, Willington Street",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2012-03-20 08:23:26,rental (private),11.0,3.0,200003680548.0,Address Matched +283547290642009051414072665119348,"23, Fauchons Close",Bearsted,,ME14 4BB,5621191668,D,D,60,68,Bungalow,Detached,2009-05-14,E07000110,E14000700,Kent,2009-05-14,marketed sale,54,62,304,246.0,4.9,51,4.0,93.0,47.0,633.0,544.0,132.0,114.0,96.72,Unknown,Y,NO DATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,2.0,5.0,3.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.52,0.0,N,natural,"23, Fauchons Close, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2009-05-14 14:07:26,owner-occupied,,,200003687604.0,Address Matched +635231119262011052722490217038279,"8, Brishing Lane",,,ME15 9EZ,7105117868,C,C,73,73,Flat,Semi-Detached,2011-05-27,E07000110,E14000700,Kent,2011-05-27,rental (social),74,74,174,174.0,2.0,33,2.0,34.0,34.0,359.0,359.0,76.0,76.0,61.0,Single,Y,Ground,N,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,no corridor,,2.32,0.0,,natural,"8, Brishing Lane",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2011-05-27 22:49:02,rental (social),8.0,8.0,200003681496.0,Address Matched +63655577852014050912013192040843,"9, Saffron Close",,,ME16 0US,8399724468,C,B,71,87,House,Mid-Terrace,2014-05-08,E07000110,E14000804,Kent,2014-05-09,marketed sale,68,86,146,56.0,4.5,28,1.8,147.0,74.0,672.0,529.0,220.0,83.0,162.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,0.0,0.0,From main system,Average,Average,"Suspended, insulated (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"9, Saffron Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2014-05-09 12:01:31,owner-occupied,20.0,0.0,10022895959.0,Address Matched +1331175479242015061111424737650418,"40, St. Annes Court",,,ME16 0UQ,8283276378,D,B,65,91,House,Mid-Terrace,2015-06-09,E07000110,E14000804,Kent,2015-06-11,marketed sale,52,77,314,131.0,3.9,53,1.6,76.0,53.0,429.0,290.0,240.0,85.0,73.0,dual,N,NODATA!,,,2401.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,56.0,0.0,"Electric immersion, off-peak",Very Poor,Poor,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Timber frame, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,"Pitched, 250 mm loft insulation",Good,Good,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 56% of fixed outlets,Good,Good,electricity (not community),0.0,NO DATA!,,,,N,natural,"40, St. Annes Court",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2015-06-11 11:42:47,owner-occupied,,,200003667012.0,Address Matched +1066521009402014010616142416840568,"30, Sheppey Road",,,ME15 9SP,4444308178,D,B,61,84,House,Semi-Detached,2014-01-06,E07000110,E14000804,Kent,2014-01-06,none of the above,59,85,223,70.0,3.8,42,1.2,75.0,53.0,726.0,465.0,126.0,77.0,90.0,Single,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,59.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 59% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"30, Sheppey Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2014-01-06 16:14:24,owner-occupied,17.0,10.0,200003678080.0,Address Matched +899814886352013031820482392970201,"32, Wingrove Drive",Weavering,,ME14 5SP,2138626078,D,C,57,80,Bungalow,Detached,2013-03-18,E07000110,E14000700,Kent,2013-03-18,rental (private),54,79,286,111.0,3.6,55,1.4,46.0,46.0,575.0,463.0,149.0,63.0,65.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,80.0,1.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, mains gas",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"32, Wingrove Drive, Weavering",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2013-03-18 20:48:23,rental (private),10.0,8.0,200003689058.0,Address Matched +919089599062013050220092577428937,"17, The Hardwicks",Headcorn,,TN27 9AA,3741957078,B,B,83,83,House,End-Terrace,2013-05-02,E07000110,E14000700,Kent,2013-05-02,new dwelling,87,87,80,80.0,1.4,15,1.4,54.0,54.0,243.0,243.0,92.0,92.0,90.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.18 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.20 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.15 W/m?K,Good,Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"17, The Hardwicks, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,NO DATA!,2013-05-02 20:09:25,NO DATA!,11.0,11.0,10014314497.0,Address Matched +376978179222019112816530688138111,"3, Honywood Close",Lenham,,ME17 2BQ,1836738668,C,A,78,92,House,Semi-Detached,2019-11-27,E07000110,E14000700,Kent,2019-11-28,rental (private),82,95,140,22.0,1.2,25,0.2,44.0,44.0,260.0,260.0,43.0,43.0,50.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,2.0,2.0,100.0,0.0,"From main system, plus solar, flue gas heat recovery",Very Good,Very Good,"Suspended, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,Y,natural,"3, Honywood Close, Lenham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2007 onwards,2019-11-28 16:53:06,rental (private),,,10014308654.0,Address Matched +568341322652011020915284999090385,4 Midhurst Court,Mote Road,,ME15 6EH,3509291868,C,C,78,79,Flat,Enclosed End-Terrace,2011-02-09,E07000110,E14000804,Kent,2011-02-09,rental (social),76,76,214,210.0,1.7,36,1.6,35.0,25.0,302.0,304.0,81.0,81.0,46.5,Single,Y,Ground,N,12.0,2106.0,100.0,double glazing installed before 2002,More Than Typical,0.0,2.0,2.0,60.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 60% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,unheated corridor,2.0,2.26,0.0,N,natural,"4 Midhurst Court, Mote Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2011-02-09 15:28:49,rental (social),,,200003693348.0,Address Matched +291443349032020011318353129968702,"Fuggles, Little Adelaide Farm",Lower Road,East Farleigh,ME15 0JN,4289732668,E,B,39,86,Bungalow,End-Terrace,2020-01-13,E07000110,E14000804,Kent,2020-01-13,rental (private),46,90,618,75.0,3.0,106,0.4,27.0,27.0,380.0,277.0,530.0,134.0,28.0,Single,N,NODATA!,,,2307.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,100.0,0.0,"Electric immersion, standard tariff",Very Poor,Poor,"To external air, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Timber frame, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,"Pitched, limited insulation (assumed)",Poor,Poor,Community scheme,Good,Good,"Flat rate charging, TRVs",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (community),0.0,NO DATA!,,,,N,natural,"Fuggles, Little Adelaide Farm, Lower Road, East Farleigh",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1976-1982,2020-01-13 18:35:31,rental (private),,,, +168905790922008101805272022738478,3 Elsfield Cottages,Ashford Road,Hollingbourne,ME17 1PA,7248972568,F,E,31,42,House,End-Terrace,2008-10-17,E07000110,E14000700,Kent,2008-10-18,rental (private),34,47,590,454.0,7.0,86,5.2,59.0,36.0,1006.0,815.0,132.0,95.0,81.5,Unknown,Y,NO DATA!,,,2104.0,50.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,38.0,0.0,From main system,Average,Good,"Suspended, no insulation (assumed)",,,Partial double glazing,Poor,Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Average,Good,Programmer and room thermostat,Poor,Poor,Low energy lighting in 38% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.46,0.0,N,natural,"3 Elsfield Cottages, Ashford Road, Hollingbourne",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1900-1929,2008-10-18 05:27:20,rental (private),,,200003698514.0,Address Matched +59732259022019090907463264368181,"21, Kingfisher Meadow",,,ME16 8RB,8695514468,B,B,83,85,Flat,Mid-Terrace,2019-09-06,E07000110,E14000804,Kent,2019-09-09,marketed sale,77,79,171,157.0,1.6,29,1.5,82.0,54.0,110.0,93.0,165.0,165.0,55.0,Unknown,N,1st,N,,2401.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,50.0,0.0,"Electric immersion, off-peak",Average,Poor,(another dwelling below),NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,Portable electric heaters (assumed),,,(another dwelling above),,,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 50% of fixed outlets,Good,Good,electricity (not community),0.0,unheated corridor,1.16,,,N,natural,"21, Kingfisher Meadow",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2019-09-09 07:46:32,rental (private),,,10022892232.0,Address Matched +688836799962012081617102100268172,"7, Hawkes Way",,,ME15 9ZL,7055980968,B,B,83,84,Flat,NO DATA!,2012-08-16,E07000110,E14000700,Kent,2012-08-16,new dwelling,87,88,87,84.0,1.0,17,0.9,51.0,41.0,206.0,208.0,73.0,72.0,59.0,standard tariff,,ground floor,,,,,NO DATA!,NO DATA!,,,,6.0,,From main system,Good,Good,Average thermal transmittance 0.15 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.31 W/m?K,Good,Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,,,NO DATA!,"7, Hawkes Way",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2012-08-16 17:10:21,,8.0,6.0,10014312494.0,Address Matched +596589050652012042422244592220182,5 Grebe Apartments,Wallis Avenue,,ME15 9JL,1219024868,C,C,79,79,Flat,Semi-Detached,2012-04-24,E07000110,E14000700,Kent,2012-04-24,rental (social),83,83,117,114.0,1.2,22,1.2,42.0,31.0,218.0,219.0,77.0,77.0,54.0,Single,Y,1st,N,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,67.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Good,Good,"System built, with internal insulation",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 67% of fixed outlets,Good,Good,mains gas (not community),0.0,unheated corridor,4.3,,0.0,,natural,"5 Grebe Apartments, Wallis Avenue",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2012-04-24 22:24:45,rental (social),6.0,4.0,200003683589.0,Address Matched +1743031328652019112811395090219569,"27, Seymour Drive",Marden,,TN12 9GS,5932806678,B,A,84,95,House,Semi-Detached,2019-11-28,E07000110,E14000804,Kent,2019-11-28,new dwelling,85,96,83,11.0,1.5,15,0.2,73.0,73.0,223.0,225.0,98.0,53.0,100.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.22 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.12 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"27, Seymour Drive, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,NO DATA!,2019-11-28 11:39:50,unknown,10.0,10.0,10094441063.0,Address Matched +208441872112008122312053509289357,5 Kirkman Court,Bell Lane,Staplehurst,TN12 0BY,3761295568,D,C,68,73,Bungalow,Mid-Terrace,2008-12-22,E07000110,E14000804,Kent,2008-12-23,rental (social),63,69,290,241.0,2.9,48,2.4,31.0,31.0,347.0,310.0,104.0,79.0,58.84,Single,Y,NO DATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,83.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, partial insulation (assumed)",Average,Average,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 83% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.52,0.0,N,natural,"5 Kirkman Court, Bell Lane, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1976-1982,2008-12-23 12:05:35,rental (social),,,200003678959.0,Address Matched +1482132061652018071710272994980243,"36, St. Catherines Road",,,ME15 9WP,2362147478,C,B,69,89,House,End-Terrace,2018-05-10,E07000110,E14000700,Kent,2018-07-17,rental (social),67,89,218,55.0,2.9,38,0.8,68.0,68.0,295.0,322.0,306.0,65.0,76.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,82.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Very Good,Very Good,,,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 82% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"36, St. Catherines Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2007 onwards,2018-07-17 10:27:29,rental (social),,,10014311739.0,Address Matched +421963019922010011700081581838250,"19, Douglas Road",,,ME16 8ES,5889151768,D,C,60,70,House,Mid-Terrace,2010-01-17,E07000110,E14000804,Kent,2010-01-17,rental (private),53,65,313,230.0,4.9,52,3.6,72.0,48.0,724.0,555.0,126.0,102.0,92.91,Unknown,Y,NO DATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,6.0,6.0,50.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.58,0.0,N,natural,"19, Douglas Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2010-01-17 00:08:15,rental (private),,,200003667788.0,Address Matched +773807739702012041316133193729378,"70, Halstead Walk",,,ME16 0PW,9720137968,C,B,74,88,House,Mid-Terrace,2012-04-13,E07000110,E14000804,Kent,2012-04-13,marketed sale,75,89,142,49.0,2.2,27,0.8,70.0,45.0,362.0,340.0,84.0,59.0,81.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,2.0,5.0,5.0,43.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 43% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"70, Halstead Walk",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2012-04-13 16:13:31,owner-occupied,7.0,3.0,200003723323.0,Address Matched +665697058932011081213540974968502,"6, Old School Close",Lenham,,ME17 2HD,5254529868,D,D,65,68,House,Detached,2011-08-12,E07000110,E14000700,Kent,2011-08-12,marketed sale,63,66,211,195.0,3.9,41,3.6,85.0,51.0,602.0,577.0,122.0,122.0,95.51,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,0.0,6.0,6.0,33.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, mains gas",,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 33% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,2.32,0.0,,natural,"6, Old School Close, Lenham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1991-1995,2011-08-12 13:54:09,owner-occupied,15.0,5.0,200003708272.0,Address Matched +3a04f6a9ca68c39be9c32a5d8752a36e74df348010717f8beaae52ce32876e97,7,Bella Rosa Drive,Langley,ME17 3US,10001552041,B,A,84,94,House,Detached,2021-09-21,E07000110,E14000700,Kent,2021-09-21,new dwelling,85,94,84,24.0,1.7,15,0.5,86.0,86.0,290.0,290.0,74.0,45.0,115.0,standard tariff,,,N,,,100.0,,,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.38,,,,"7, Bella Rosa Drive, Langley",Maidstone,Faversham and Mid Kent,Maidstone,2021,2021-09-21 07:56:17,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,15.0,,10095448354.0,Address Matched +1729964242012019061812230591910764,"87, St. Lawrence Crescent",Coxheath,,ME17 4FR,7405215678,B,A,84,96,House,End-Terrace,2019-06-18,E07000110,E14000804,Kent,2019-06-18,new dwelling,86,98,88,3.0,1.2,15,0.1,61.0,61.0,213.0,213.0,72.0,42.0,80.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.19 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.27 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.15 W/m-¦K,Good,Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"87, St. Lawrence Crescent, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2019-06-18 12:23:05,unknown,18.0,18.0,10093306399.0,Address Matched +3a2d91ee3d76fec25de0d9183ac98a6d4475bbf05f34cca8c799fd3fd27ab172,25 Bedell Road,,,ME14 4GE,10001441056,B,A,83,95,House,End-Terrace,2021-07-22,E07000110,E14000804,Kent,2021-07-22,new dwelling,86,98,94,1.0,1.2,16,0.0,71.0,71.0,217.0,217.0,66.0,40.0,74.0,standard tariff,,,N,,,100.0,,,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.18 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.41,,,,25 Bedell Road,Maidstone,Maidstone and The Weald,THURNHAM,2021,2021-07-22 12:25:43,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,1.0,,10094444619.0,Address Matched +146844199262018112907594371788388,"625, Loose Road",,,ME15 9UT,8769921568,E,B,48,89,House,Mid-Terrace,2018-11-28,E07000110,E14000804,Kent,2018-11-29,marketed sale,43,90,492,61.0,4.0,87,0.5,69.0,35.0,502.0,302.0,292.0,60.0,46.0,Single,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,1.0,3.0,3.0,0.0,0.0,"From main system, no cylinder thermostat",Poor,Poor,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, mains gas",,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"625, Loose Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2018-11-29 07:59:43,owner-occupied,,,200003675456.0,Address Matched +3a37a837cca375379e5dea0770390f24ddf2cb453a92139feb2f11ef51727014,Stream Farm,Friday Street,East Sutton,ME17 3EA,4261080178,E,C,50,75,House,Detached,2021-08-16,E07000110,E14000700,Kent,2021-08-18,marketed sale,42,67,196,93.0,12.0,52,6.4,143.0,143.0,1603.0,935.0,139.0,90.0,240.0,dual,N,,,,,100.0,double glazing installed before 2002,Normal,2.0,9.0,9.0,100.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, oil",Average,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,oil (not community),0.0,,,2.6,0.0,N,natural,"Stream Farm, Friday Street, East Sutton",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2021-08-18 14:19:49,Owner-occupied,20.0,,200003698291.0,Energy Assessor +3a41d5bb371fe35343bca3a86eca9e51fb1750171940eef245394df3292d142c,70 UPPER FANT ROAD,,,ME16 8DN,10001580109,D,C,60,79,House,Mid-Terrace,2021-07-01,E07000110,E14000804,Kent,2021-07-01,marketed sale,55,75,272,129.0,3.6,50,1.8,60.0,60.0,643.0,529.0,91.0,62.0,71.0,Single,Y,,,,,80.0,double glazing installed during or after 2002,Normal,1.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Mostly double glazing,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.39,0.0,N,natural,70 UPPER FANT ROAD,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2021-07-01 18:27:47,Owner-occupied,10.0,,200003657806.0,Energy Assessor +464256649642010040118430173400498,"35, Ashford Road",Bearsted,,ME14 4BP,5644944768,E,D,45,62,House,Semi-Detached,2010-04-01,E07000110,E14000700,Kent,2010-04-01,marketed sale,47,65,372,249.0,7.3,54,4.7,116.0,71.0,1257.0,875.0,162.0,122.0,134.62,Single,Y,NO DATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,2.0,7.0,7.0,36.0,3.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, insulated (assumed)",Good,Good,"Room heaters, wood logs",,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 36% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.77,0.0,N,natural,"35, Ashford Road, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2010-04-01 18:43:01,owner-occupied,,,200003687647.0,Address Matched +1709733489222019032915400733918731,Flat 3 Rawthmell House,Knightrider Court,Knightrider Street,ME15 6HU,3303863678,B,B,87,87,Flat,Detached,2019-03-29,E07000110,E14000804,Kent,2019-03-29,new dwelling,88,88,77,77.0,1.0,13,1.0,60.0,60.0,190.0,190.0,86.0,86.0,79.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Very Good,Very Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.18 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,"Room heaters, electric",Very Poor,Poor,Programmer and room thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"Flat 3 Rawthmell House, Knightrider Court, Knightrider Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2019-03-29 15:40:07,unknown,8.0,8.0,10093305538.0,Address Matched +947750144432014041010343285978308,"24, Mote Avenue",,,ME15 7ST,4825369078,D,C,64,77,House,Semi-Detached,2014-04-10,E07000110,E14000804,Kent,2014-04-10,assessment for green deal,52,70,191,112.0,6.2,43,3.7,140.0,72.0,1170.0,834.0,148.0,94.0,145.0,Single,Y,NODATA!,,,2109.0,100.0,double glazing installed before 2002,Normal,1.0,7.0,7.0,5.0,2.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, smokeless fuel",,,"Pitched, insulated at rafters",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and boiler energy manager",Good,Good,Low energy lighting in 5% of fixed outlets,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,,natural,"24, Mote Avenue",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2014-04-10 10:34:32,owner-occupied,20.0,1.0,200003695719.0,Address Matched +245710200962009071513535899358901,10 The Old Market,Marden,,TN12 9GD,933089568,B,B,83,85,Flat,NO DATA!,2009-07-15,E07000110,E14000804,Kent,2009-07-15,new dwelling,83,84,130,122.0,1.5,21,1.4,59.0,34.0,214.0,217.0,93.0,93.0,67.89,standard tariff,,ground floor,,,,,NO DATA!,NO DATA!,,,,3.0,,From main system,Very Good,Very Good,Average thermal transmittance 0.18 W/m?K,Very Good,Very Good,Fully double glazed,Good,Good,Average thermal transmittance 0.25 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.25 W/m?K,Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 25% fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.39,,,NO DATA!,"10 The Old Market, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,NO DATA!,2009-07-15 13:53:58,,12.0,3.0,10014306426.0,Address Matched +1559815509022017092816271972018533,"7, Wood Court",,,ME16 9DD,3749092578,C,B,78,91,House,Mid-Terrace,2017-05-09,E07000110,E14000804,Kent,2017-09-28,rental (social),78,91,138,35.0,1.6,24,0.5,51.0,51.0,270.0,270.0,102.0,66.0,68.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Very Good,Very Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"7, Wood Court",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2017-09-28 16:27:19,rental (social),,,10022900390.0,Address Matched +1583977369442017102111475055432408,"8, Wilsons Lane",East Farleigh,,ME15 0LU,8420364578,D,A,65,101,House,Mid-Terrace,2017-10-20,E07000110,E14000804,Kent,2017-10-21,rental (social),65,97,224,3.0,3.3,38,0.0,103.0,60.0,665.0,598.0,130.0,130.0,86.0,dual,N,NODATA!,,,2206.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,30.0,0.0,"From main system, plus solar",Very Good,Very Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Air source heat pump, radiators, electric",Average,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 30% of fixed outlets,Average,Average,electricity (not community),0.0,NO DATA!,,,,Y,natural,"8, Wilsons Lane, East Farleigh",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1991-1995,2017-10-21 11:47:50,rental (social),,,200003727996.0,Address Matched +1131356384432014042806274025278108,"46, Yew Tree Close",,,ME5 8XN,8885162278,D,C,66,77,House,Detached,2014-04-24,E07000110,E14000700,Kent,2014-04-28,marketed sale,67,79,165,104.0,5.3,28,3.3,165.0,82.0,1084.0,933.0,119.0,105.0,188.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,8.0,8.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, wood pellets",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"46, Yew Tree Close",Maidstone,Faversham and Mid Kent,CHATHAM,England and Wales: 1967-1975,2014-04-28 06:27:40,owner-occupied,16.0,0.0,200003676775.0,Address Matched +1552647096332017061522100234978005,1 Ivy Cottages,Collier Street,,TN12 9RJ,9504042578,E,C,47,69,House,Semi-Detached,2017-06-14,E07000110,E14000804,Kent,2017-06-15,marketed sale,40,59,233,127.0,8.0,59,4.8,76.0,76.0,998.0,708.0,164.0,129.0,134.0,Single,N,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,7.0,7.0,100.0,1.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, oil",Average,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,oil (not community),0.0,NO DATA!,,,,N,natural,"1 Ivy Cottages, Collier Street",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: before 1900,2017-06-15 22:10:02,owner-occupied,,,200003723421.0,Address Matched +1480909729962017101409114917648513,Flat D,"6, Fuggles Close",Headcorn,TN27 9AE,1127237478,B,B,84,84,Flat,Semi-Detached,2017-10-14,E07000110,E14000700,Kent,2017-10-14,new dwelling,88,88,81,81.0,1.0,14,1.0,56.0,56.0,171.0,171.0,75.0,75.0,69.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Flat D, 6, Fuggles Close, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,NO DATA!,2017-10-14 09:11:49,unknown,15.0,15.0,10093302540.0,Address Matched +30948210852008100313150007089156,Filmer House,Charlton Court,East Sutton,ME17 3AN,1633071568,C,C,80,80,House,Detached,2008-10-03,E07000110,E14000700,Kent,2008-10-03,marketed sale,81,82,106,103.0,6.5,15,6.4,249.0,196.0,781.0,791.0,165.0,165.0,423.98,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,19.0,,From main system,Very Good,Very Good,Average thermal transmittance = 0.15 W/m?K,Very Good,Very Good,Fully double glazed,Good,Good,Average thermal transmittance = 0.30 W/m?K,Good,Good,"Room heaters, wood logs",,,Average thermal transmittance = 0.16 W/m?K,Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,Time and temperature zone control,Good,Good,Low energy lighting in 73% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,,,NO DATA!,"Filmer House, Charlton Court, East Sutton",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2007 onwards,2008-10-03 13:15:00,,26.0,19.0,10022895998.0,Address Matched +279110603132009081216325411768609,"52, Courtenay Road",,,ME15 6UL,971651668,D,D,61,65,House,Mid-Terrace,2009-07-31,E07000110,E14000804,Kent,2009-08-12,rental (social),55,58,288,265.0,5.1,48,4.7,70.0,54.0,750.0,695.0,119.0,119.0,82.64,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,6.0,6.0,70.0,0.0,From main system,Very Good,Very Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, no insulation",Very Poor,Very Poor,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 70% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.43,0.0,N,natural,"52, Courtenay Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2009-08-12 16:32:54,rental (social),,,200003665134.0,Address Matched +756954309502012030420544595620048,Flat 18 Willowbrook Place,Regent Close,,ME15 6ZP,2529706968,B,B,85,85,Flat,NO DATA!,2012-03-04,E07000110,E14000804,Kent,2012-03-04,new dwelling,90,90,71,71.0,0.7,14,0.7,29.0,29.0,183.0,183.0,75.0,75.0,48.83,standard tariff,,top floor,,,,,NO DATA!,NO DATA!,,,,6.0,,From main system,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.22 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.12 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,,,NO DATA!,"Flat 18 Willowbrook Place, Regent Close",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2012-03-04 20:54:45,,6.0,6.0,10014313166.0,Address Matched +885051719342013021710332607579258,"19, Fletcher Road",Staplehurst,,TN12 0LP,8314815078,C,B,70,90,House,Mid-Terrace,2013-02-15,E07000110,E14000804,Kent,2013-02-17,marketed sale,71,93,187,28.0,2.2,36,0.4,66.0,36.0,380.0,302.0,80.0,57.0,60.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,18.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 18% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"19, Fletcher Road, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1950-1966,2013-02-17 10:33:26,owner-occupied,11.0,2.0,200003677790.0,Address Matched +196175110062008120510152565758028,"9, Buckingham Row",,,ME15 8BT,2670135568,C,C,74,76,House,Semi-Detached,2008-12-05,E07000110,E14000700,Kent,2008-12-05,rental (social),71,72,201,193.0,2.7,33,2.6,68.0,36.0,307.0,312.0,98.0,98.0,79.46,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,10.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 10% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.27,0.0,N,natural,"9, Buckingham Row",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2008-12-05 10:15:25,rental (social),,,200003684630.0,Address Matched +1499677259962018101517185418058878,The Granary East Kent Farm,Crumps Lane,Ulcombe,ME17 1EX,7143568478,B,B,81,88,House,Detached,2018-10-15,E07000110,E14000700,Kent,2018-10-15,new dwelling,83,89,88,50.0,2.9,15,1.6,103.0,103.0,605.0,605.0,212.0,127.0,194.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Poor,Good,Average thermal transmittance 0.16 W/m-¦K,Very Good,Very Good,Fully double glazed,Good,Good,Average thermal transmittance 0.17 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.18 W/m-¦K,Good,Good,"Air source heat pump, underfloor, electric",Average,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"The Granary East Kent Farm, Crumps Lane, Ulcombe",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2018-10-15 17:18:54,owner-occupied,25.0,25.0,10093305282.0,Address Matched +1681385693132019073014145576778007,"22, College Road",,,ME15 6YF,9766061678,E,B,52,82,House,Mid-Terrace,2019-07-30,E07000110,E14000804,Kent,2019-07-30,rental (private),35,67,494,209.0,6.0,84,2.5,61.0,62.0,981.0,602.0,242.0,106.0,71.0,dual,N,NODATA!,,,2404.0,75.0,secondary glazing,Normal,2.0,4.0,4.0,100.0,0.0,Electric instantaneous at point of use,Very Poor,Poor,"Suspended, no insulation (assumed)",NO DATA!,,Partial secondary glazing,Average,Average,"Sandstone or limestone, as built, no insulation (assumed)",Very Poor,Very Poor,Portable electric heaters (assumed),,,"Pitched, 200 mm loft insulation",Good,Good,Electric storage heaters,Average,Poor,Controls for high heat retention storage heaters,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,NO DATA!,,,,N,"mechanical, extract only","22, College Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2019-07-30 14:14:55,rental (private),,,200003693290.0,Address Matched +1701034204352019022718292790210763,"471, Willington Street",,,ME15 8HA,7344403678,E,D,45,66,House,End-Terrace,2019-02-27,E07000110,E14000700,Kent,2019-02-27,marketed sale,38,56,395,249.0,7.0,70,4.4,145.0,76.0,1171.0,977.0,124.0,74.0,100.0,dual,Y,NODATA!,,,2103.0,100.0,double glazing installed before 2002,Normal,0.0,6.0,6.0,8.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"System built, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, mains gas",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Room thermostat only,Poor,Poor,Low energy lighting in 8% of fixed outlets,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"471, Willington Street",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2019-02-27 18:29:27,owner-occupied,,,200003680519.0,Address Matched +475690219222010042622224635668520,"18, Hillden Shaw",,,ME15 6DD,2398135768,C,C,73,78,Flat,End-Terrace,2010-04-26,E07000110,E14000804,Kent,2010-04-26,rental (social),70,75,265,215.0,2.1,44,1.7,46.0,26.0,314.0,282.0,113.0,92.0,48.0,Single,Y,Ground,N,2.0,2107.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,25.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 25% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.38,0.0,N,natural,"18, Hillden Shaw",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2010-04-26 22:22:46,rental (social),,,200003677333.0,Address Matched +686709350932011101008594996068392,Flat 28a,Elizabeth House,Alexandra Street,ME14 2BU,5246370968,E,C,44,72,Flat,End-Terrace,2011-10-05,E07000110,E14000804,Kent,2011-10-10,rental (private),35,51,717,486.0,4.2,127,2.9,30.0,23.0,350.0,256.0,351.0,87.0,33.35,dual,N,Ground,Y,,2602.0,100.0,double glazing installed before 2002,Normal,0.0,2.0,2.0,50.0,0.0,"Electric immersion, off-peak",Very Poor,Very Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, partial insulation (assumed)",Average,Average,,,,(another dwelling above),,,"Room heaters, electric",Poor,Very Poor,Appliance thermostats,Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,electricity (not community),0.0,no corridor,,2.37,0.0,,natural,"Flat 28a, Elizabeth House, Alexandra Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1976-1982,2011-10-10 08:59:49,rental (private),6.0,3.0,200003704594.0,Address Matched +1787049122302020030213563065900228,"392a, Willington Street",,,ME15 8HJ,9314829678,C,C,73,74,Flat,Semi-Detached,2020-03-02,E07000110,E14000700,Kent,2020-03-02,rental (social),75,76,207,200.0,1.6,36,1.6,61.0,38.0,286.0,288.0,83.0,83.0,44.0,Single,Y,1st,Y,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,40.0,0.0,From main system,Good,Good,(another dwelling below),NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 40% of fixed outlets,Average,Average,mains gas (not community),0.0,no corridor,,,,N,natural,"392a, Willington Street",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2020-03-02 13:56:30,rental (social),,,200003681217.0,Address Matched +1510918449922017011220483439128093,"17, Birling Avenue",Bearsted,,ME14 4AJ,9398449478,C,B,73,83,House,Semi-Detached,2017-01-12,E07000110,E14000700,Kent,2017-01-12,marketed sale,69,79,156,98.0,4.1,27,2.6,115.0,78.0,652.0,665.0,164.0,88.0,149.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,7.0,7.0,52.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 52% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"17, Birling Avenue, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2017-01-12 20:48:34,owner-occupied,,,200003691738.0,Address Matched +684251883512011092912484095290992,"26, Perryfield Street",,,ME14 2SX,9276350968,E,E,49,50,House,Mid-Terrace,2011-09-29,E07000110,E14000804,Kent,2011-09-29,rental (private),45,46,356,349.0,5.2,69,5.1,70.0,41.0,855.0,858.0,108.0,108.0,75.8,Unknown,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,30.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 30% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,2.573,0.0,,natural,"26, Perryfield Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2011-09-29 12:48:40,rental (private),10.0,3.0,200003669689.0,Address Matched +1186297179922014081122323566398164,"2a, Roseacre Lane",Bearsted,,ME14 4HY,6688746278,D,B,59,87,Bungalow,Detached,2014-08-11,E07000110,E14000700,Kent,2014-08-11,marketed sale,57,88,274,58.0,3.1,53,0.7,78.0,39.0,524.0,380.0,178.0,79.0,60.0,Single,Y,NODATA!,,,2104.0,87.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Mostly double glazing,Poor,Poor,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"2a, Roseacre Lane, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2014-08-11 22:32:35,owner-occupied,8.0,0.0,200003692529.0,Address Matched +1675781429402018110216451163180928,"30, Chapelfield Way",Allington,,ME16 9FS,3434121678,B,B,87,88,House,Mid-Terrace,2018-11-02,E07000110,E14000804,Kent,2018-11-02,new dwelling,87,89,63,52.0,1.6,11,1.3,80.0,80.0,277.0,279.0,103.0,56.0,139.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.19 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.16 W/m-¦K,Good,Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"30, Chapelfield Way, Allington",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2018-11-02 16:45:11,unknown,35.0,35.0,10093306502.0,Address Matched +1182028757112014072910125891240520,"32, Perryfield Street",,,ME14 2SX,5053716278,D,C,59,78,House,Mid-Terrace,2014-07-29,E07000110,E14000804,Kent,2014-07-29,unknown,54,75,235,117.0,4.9,45,2.5,68.0,68.0,950.0,699.0,114.0,79.0,108.0,Unknown,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,90.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 90% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"32, Perryfield Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2014-07-29 10:12:58,unknown,21.0,19.0,200003669692.0,Address Matched +0d4976d887e220dc719b2f3ffaf08a1fe3943e7b55abb6b5cbd6e9f9566894a7,59 WORCESTER ROAD,,,ME15 7LX,10001530644,D,C,64,78,House,Semi-Detached,2021-07-21,E07000110,E14000700,Kent,2021-07-21,marketed sale,58,74,226,131.0,4.7,41,2.8,97.0,97.0,768.0,669.0,138.0,80.0,113.0,Single,Y,,,,,100.0,"double glazing, unknown install date",Normal,0.0,6.0,6.0,86.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"System built, with internal insulation",Good,Good,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 86% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.44,0.0,N,natural,59 WORCESTER ROAD,Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2021-07-21 18:29:56,Owner-occupied,14.0,,200003712322.0,Energy Assessor +3ad7b4d4336dc297f5cd42d324e13f58232e4d41f1bdd790e3095e8f613c3620,6 EASTFIELD HOUSE,WOODFORD ROAD,,ME16 9BX,10001521298,C,C,72,77,Flat,Semi-Detached,2021-07-07,E07000110,E14000804,Kent,2021-07-07,rental,73,80,212,159.0,1.8,37,1.3,77.0,42.0,278.0,218.0,101.0,102.0,47.0,Single,Y,01,N,,,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,17.0,0.0,From main system,Good,Good,(another dwelling below),,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 17% of fixed outlets,Poor,Poor,mains gas (not community),0.0,unheated corridor,5.36,2.25,0.0,N,natural,"6 EASTFIELD HOUSE, WOODFORD ROAD",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2021-07-07 15:36:00,Rented (social),6.0,,200003686709.0,Energy Assessor +684331159042011093012203392092988,"15, Heathfield Close",Penenden Heath,,ME14 2AB,1063850968,D,C,59,71,House,Semi-Detached,2011-09-28,E07000110,E14000804,Kent,2011-09-30,marketed sale,54,70,254,166.0,5.1,49,3.3,63.0,63.0,762.0,513.0,187.0,130.0,104.08,Single,Y,NODATA!,,,2102.0,100.0,double glazing installed before 2002,Normal,1.0,5.0,5.0,80.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,2.4,0.0,,natural,"15, Heathfield Close, Penenden Heath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2011-09-30 12:20:33,owner-occupied,10.0,8.0,200003706203.0,Address Matched +1045992449732013111920240864978199,"33, Gladstone Road",Penenden Heath,,ME14 2AU,4944166178,D,B,63,90,House,Mid-Terrace,2013-11-19,E07000110,E14000804,Kent,2013-11-19,non marketed sale,62,92,234,32.0,2.9,45,0.4,50.0,39.0,537.0,323.0,81.0,57.0,64.0,Single,Y,NODATA!,,,2107.0,100.0,double glazing installed before 2002,Normal,1.0,4.0,4.0,71.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 71% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"33, Gladstone Road, Penenden Heath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2013-11-19 20:24:08,rental (private),7.0,5.0,200003701728.0,Address Matched +1643408226832018062621062671278809,"1, Eastwell Close",,,ME14 5NQ,2991888578,F,B,22,82,House,Semi-Detached,2018-06-26,E07000110,E14000804,Kent,2018-06-26,marketed sale,33,79,511,119.0,6.4,86,1.6,87.0,52.0,1561.0,494.0,335.0,49.0,74.0,Single,Y,NODATA!,,,2699.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,0.0,33.0,0.0,"Electric immersion, standard tariff",Very Poor,Poor,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, limited insulation (assumed)",Very Poor,Very Poor,No system present: electric heaters assumed,Very Poor,Poor,,Very Poor,Very Poor,Low energy lighting in 33% of fixed outlets,Average,Average,To be used only when there is no heating/hot-water system,0.0,NO DATA!,,,,N,natural,"1, Eastwell Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2018-06-26 21:06:26,owner-occupied,,,200003716737.0,Address Matched +1715856119222019042416242554248741,"10, Barbados Terrace",Invicta Park,,ME14 2NT,4548114678,D,B,61,85,House,Mid-Terrace,2019-04-24,E07000110,E14000804,Kent,2019-04-24,Stock Condition Survey,56,83,288,92.0,3.5,51,1.2,103.0,52.0,582.0,404.0,90.0,61.0,68.0,Unknown,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Flat, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"10, Barbados Terrace, Invicta Park",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2019-04-24 16:24:25,rental (private),,,200003723908.0,Address Matched +1039039119062013110716432086838337,"17, St. Catherines Road",,,ME15 9WP,3838116178,B,B,86,86,House,End-Terrace,2013-11-07,E07000110,E14000700,Kent,2013-11-07,new dwelling,88,88,63,63.0,1.5,12,1.5,63.0,63.0,309.0,298.0,54.0,64.0,125.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,"From main system, plus solar",Very Good,Very Good,Average thermal transmittance 0.19 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.26 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.17 W/m?K,Good,Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"17, St. Catherines Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2013-11-07 16:43:20,NO DATA!,0.0,0.0,10014311695.0,Address Matched +1217519058712014101711464896949628,"4, Lenfield Avenue",,,ME14 5DU,6848868278,E,D,42,65,Bungalow,Semi-Detached,2014-10-17,E07000110,E14000804,Kent,2014-10-17,assessment for green deal,41,64,350,189.0,5.6,67,3.1,58.0,58.0,1169.0,923.0,156.0,82.0,84.0,dual,Y,NODATA!,,,2107.0,100.0,double glazing installed before 2002,Normal,1.0,6.0,6.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"4, Lenfield Avenue",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2014-10-17 11:46:48,owner-occupied,10.0,10.0,200003689385.0,Address Matched +662892959262013092316300159878327,"27, Roseholme",,,ME16 8DY,2569509868,D,B,65,88,House,Semi-Detached,2013-09-23,E07000110,E14000804,Kent,2013-09-23,none of the above,64,89,213,48.0,2.8,41,0.7,61.0,42.0,521.0,345.0,87.0,63.0,70.0,Single,Y,NODATA!,,,2106.0,95.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,56.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Mostly double glazing,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 56% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"27, Roseholme",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2013-09-23 16:30:01,owner-occupied,9.0,5.0,200003656544.0,Address Matched +668738349802011082215142186992528,"19, Hanover Road",Coxheath,,ME17 4QG,1855849868,D,D,56,60,House,End-Terrace,2011-08-22,E07000110,E14000804,Kent,2011-08-22,marketed sale,51,56,280,252.0,5.1,54,4.6,68.0,49.0,829.0,771.0,123.0,108.0,95.3,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,5.0,4.0,62.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 62% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,2.4,0.0,,natural,"19, Hanover Road, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2011-08-22 15:14:21,owner-occupied,8.0,5.0,200003714656.0,Address Matched +1097993059222015062915445700018135,"20, Moorhen Road",,,ME15 6XJ,3056520278,B,A,85,94,House,Semi-Detached,2015-06-29,E07000110,E14000804,Kent,2015-06-29,new dwelling,86,95,81,18.0,1.6,14,0.4,71.0,71.0,279.0,280.0,106.0,57.0,116.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.27 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.17 W/m-¦K,Good,Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"20, Moorhen Road",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2015-06-29 15:44:57,owner-occupied,16.0,16.0,10014315314.0,Address Matched +1182195473432014073101505026778002,"39, Newenden Close",,,ME14 5RU,7206026278,D,B,68,90,House,Mid-Terrace,2014-07-31,E07000110,E14000804,Kent,2014-07-31,none of the above,67,92,190,33.0,2.7,37,0.5,60.0,45.0,497.0,321.0,104.0,65.0,73.0,Single,Y,NODATA!,,,2107.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,67.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 67% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"39, Newenden Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2014-07-31 01:50:50,owner-occupied,9.0,6.0,200003672531.0,Address Matched +1130972579222014042511374472958464,"2, Ravens Dane Close",Downswood,,ME15 8XL,6773752278,D,B,64,88,House,Semi-Detached,2014-04-25,E07000110,E14000700,Kent,2014-04-25,marketed sale,63,90,243,43.0,2.6,47,0.5,54.0,36.0,444.0,341.0,142.0,67.0,56.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,50.0,0.0,From main system,Average,Average,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"2, Ravens Dane Close, Downswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2014-04-25 11:37:44,owner-occupied,8.0,4.0,200003691591.0,Address Matched +1719088259022019050822290504788341,"8, Rampion Close",Weavering,,ME14 5UT,4016534678,C,B,69,85,House,Semi-Detached,2019-05-08,E07000110,E14000700,Kent,2019-05-08,marketed sale,66,83,207,89.0,3.1,36,1.4,124.0,62.0,467.0,423.0,132.0,79.0,86.0,Single,Y,NODATA!,,,2106.0,65.0,double glazing installed during or after 2002,Normal,1.0,4.0,4.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Partial double glazing,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"8, Rampion Close, Weavering",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2019-05-08 22:29:05,owner-occupied,,,200003689264.0,Address Matched +189214809062011080120323904198139,"31, Milton Street",,,ME16 8JY,3099074568,C,C,70,70,House,Mid-Terrace,2011-08-01,E07000110,E14000804,Kent,2011-08-01,rental (private),70,70,184,184.0,2.8,35,2.8,43.0,43.0,487.0,487.0,80.0,80.0,79.181,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,2.7,0.0,,natural,"31, Milton Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2011-08-01 20:32:39,rental (private),10.0,10.0,200003657409.0,Address Matched +1452536719922016061016282295208086,"5, Fletcher Road",Staplehurst,,TN12 0LP,8900135478,C,B,74,90,House,Mid-Terrace,2016-06-10,E07000110,E14000804,Kent,2016-06-10,marketed sale,75,91,167,41.0,1.8,29,0.5,58.0,47.0,333.0,312.0,95.0,62.0,60.0,dual,Y,NODATA!,,,2107.0,98.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,75.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Mostly double glazing,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,2.27,,N,natural,"5, Fletcher Road, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1950-1966,2016-06-10 16:28:22,owner-occupied,,,200003677796.0,Address Matched +304767530802009061219034964319728,10 Cherry View,Green Lane,Boughton Monchelsea,ME17 4LE,9873033668,D,C,66,74,House,Semi-Detached,2009-06-12,E07000110,E14000700,Kent,2009-06-12,rental (private),59,70,274,207.0,4.0,46,3.0,45.0,45.0,486.0,392.0,167.0,121.0,86.22,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,90.0,0.0,From main system,Average,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Average,Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 90% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.43,0.0,N,natural,"10 Cherry View, Green Lane, Boughton Monchelsea",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2009-06-12 19:03:49,rental (private),,,200003674851.0,Address Matched +830312439642012083018170903127608,"8, Heathfield Avenue",Penenden Heath,,ME14 2DQ,9601231078,F,B,37,81,House,Semi-Detached,2012-08-30,E07000110,E14000804,Kent,2012-08-30,marketed sale,34,79,407,99.0,6.7,79,1.7,76.0,51.0,1159.0,508.0,97.0,61.0,85.0,dual,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,50.0,3.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, no insulation",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"8, Heathfield Avenue, Penenden Heath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2012-08-30 18:17:09,owner-occupied,10.0,5.0,200003673265.0,Address Matched +1557661817712017070619325597030254,"7, Longshaw Road",,,ME15 9JD,2414772578,C,B,69,84,House,Mid-Terrace,2017-07-06,E07000110,E14000700,Kent,2017-07-06,marketed sale,66,81,215,107.0,3.1,38,1.6,86.0,55.0,530.0,486.0,96.0,66.0,81.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,45.0,0.0,From main system,Very Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, partial insulation (assumed)",Average,Average,,,,"Pitched, limited insulation (assumed)",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 45% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"7, Longshaw Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1976-1982,2017-07-06 19:32:55,owner-occupied,,,200003682318.0,Address Matched +1556735403332017070313264558078909,"13, Hayward Road",,,ME17 3GA,998962578,B,A,84,95,House,Semi-Detached,2017-07-03,E07000110,E14000700,Kent,2017-07-03,new dwelling,86,97,90,5.0,1.3,16,0.1,55.0,55.0,221.0,221.0,82.0,49.0,81.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"13, Hayward Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2017-07-03 13:26:45,unknown,7.0,7.0,10093303950.0,Address Matched +154080533212008100922243801089758,"1, Woodlands Close",Penenden Heath,,ME14 2EX,7806312568,F,F,21,34,House,Semi-Detached,2008-10-09,E07000110,E14000804,Kent,2008-10-09,marketed sale,36,47,523,403.0,7.1,80,5.5,86.0,43.0,1143.0,872.0,238.0,238.0,88.69,dual,Y,NO DATA!,,,2602.0,21.0,double glazing installed before 2002,More Than Typical,0.0,4.0,1.0,0.0,0.0,"Electric immersion, off-peak",Very Poor,Poor,"Solid, no insulation (assumed)",,,Partial double glazing,Very Poor,Very Poor,"Timber frame, as built, partial insulation (assumed)",Average,Average,"Room heaters, mains gas",,,"Pitched, 25 mm loft insulation",Poor,Poor,"Room heaters, electric",Very Poor,Poor,Appliance thermostats,Good,Good,No low energy lighting,Very Poor,Very Poor,electricity - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.39,0.0,N,natural,"1, Woodlands Close, Penenden Heath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2008-10-09 22:24:38,owner-occupied,,,200003707907.0,Address Matched +160781849022010010418524312448340,Apartment 70 Sandling Park,Sandling Lane,,ME14 2NY,4163422568,D,C,68,77,Flat,Enclosed Mid-Terrace,2010-01-04,E07000110,E14000804,Kent,2010-01-04,marketed sale,71,70,238,243.0,2.5,36,2.6,73.0,43.0,314.0,188.0,149.0,149.0,69.75,Unknown,N,2nd,Y,3.0,2603.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,28.0,0.0,"Electric immersion, off-peak",Very Good,Poor,(other premises below),,,Fully double glazed,Good,Good,"Timber frame, as built, insulated (assumed)",Good,Good,,,,"Flat, insulated (assumed)",Good,Good,"Room heaters, electric",Very Poor,Poor,Programmer and appliance thermostats,Good,Good,Low energy lighting in 28% of fixed outlets,Average,Average,electricity - this is for backwards compatibility only and should not be used,0.0,unheated corridor,6.1,2.36,0.0,N,natural,"Apartment 70 Sandling Park, Sandling Lane",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2010-01-04 18:52:43,owner-occupied,,,10014307165.0,Address Matched +623452179262011042912135656418129,"26a, Dickens Road",,,ME14 2QR,2534726868,C,C,76,76,Flat,Semi-Detached,2011-04-29,E07000110,E14000804,Kent,2011-04-29,rental (social),79,79,148,148.0,1.6,28,1.6,36.0,36.0,285.0,285.0,74.0,74.0,56.16,Single,Y,1st,Y,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,86.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 86% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,no corridor,,2.35,0.0,,natural,"26a, Dickens Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2011-04-29 12:13:56,rental (social),7.0,6.0,200003671283.0,Address Matched +596964360352016050222443392260689,"5, St. Stephens Square",,,ME15 6RE,6999024868,C,B,70,90,Bungalow,End-Terrace,2016-04-27,E07000110,E14000804,Kent,2016-05-02,rental (social),71,91,259,55.0,1.8,46,0.4,29.0,29.0,352.0,309.0,87.0,58.0,39.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,2.34,,N,natural,"5, St. Stephens Square",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2016-05-02 22:44:33,rental (social),,,200003665831.0,Address Matched +1684030710652018120521490898089763,Flat 2 The Mews Rear of 37,High Street,,ME14 1JG,7386081678,C,C,74,75,Flat,End-Terrace,2018-12-05,E07000110,E14000804,Kent,2018-12-05,rental (social),75,77,189,173.0,1.7,33,1.6,42.0,42.0,298.0,271.0,90.0,90.0,51.0,Single,Y,Ground,N,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,2.0,2.0,100.0,0.0,From main system,Very Good,Good,"Solid, limited insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,6.52,,,N,natural,"Flat 2 The Mews Rear of 37, High Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2018-12-05 21:49:08,rental (social),,,200003654901.0,Address Matched +1309684702752015041417112792950330,"14, Newman Close",,,ME16 0ZN,3040225378,B,B,88,89,House,Semi-Detached,2015-04-14,E07000110,E14000804,Kent,2015-04-14,new dwelling,89,91,62,49.0,0.9,11,0.7,61.0,61.0,249.0,249.0,96.0,61.0,85.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"14, Newman Close",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2015-04-14 17:11:27,owner-occupied,14.0,14.0,10014315147.0,Address Matched +233924892962020021315122868078870,2 Spring Cottages,Laceys Lane,Linton,ME17 4BE,7687938568,D,A,65,107,House,Semi-Detached,2020-02-13,E07000110,E14000804,Kent,2020-02-13,rental (private),58,97,194,-83.0,3.4,50,0.0,55.0,55.0,407.0,367.0,116.0,76.0,68.0,Unknown,N,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,6.0,6.0,100.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, oil",Average,Average,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,oil (not community),0.0,NO DATA!,,,,N,natural,"2 Spring Cottages, Laceys Lane, Linton",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2020-02-13 15:12:28,rental (private),,,200003711818.0,Address Matched +285705969712009050919004106010964,"13, Cripple Street",,,ME15 6BA,9434961668,E,D,41,63,Bungalow,Detached,2009-05-08,E07000110,E14000804,Kent,2009-05-09,rental (private),41,63,410,243.0,6.9,67,4.0,94.0,53.0,1034.0,643.0,125.0,97.0,113.1,dual,Y,NO DATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,23.0,2.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,Portable electric heaters,,,"Pitched, 100mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 23% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.5,0.0,N,natural,"13, Cripple Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2009-05-09 19:00:41,rental (private),,,200003676950.0,Address Matched +1667937831452018101516402696989966,Flat 57,Brenchley House,123-135 Week Street,ME14 1FX,9637160678,C,C,76,76,Flat,Mid-Terrace,2018-10-15,E07000110,E14000804,Kent,2018-10-15,new dwelling,83,83,216,216.0,0.8,38,0.8,20.0,20.0,134.0,134.0,91.0,91.0,20.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,Community scheme,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.30 W/m-¦K,Good,Good,,,,(other premises above),,,Community scheme,Good,Good,"Charging system linked to use of community heating, programmer and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,NO DATA!,,NO DATA!,,,,,NO DATA!,"Flat 57, Brenchley House, 123-135 Week Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2018-10-15 16:40:26,unknown,6.0,6.0,10094440733.0,Address Matched +225448359912013061008570194970156,Flat A-c,"24, Buckland Hill",,ME16 0SG,1685947568,D,C,59,80,Flat,End-Terrace,2013-06-10,E07000110,E14000804,Kent,2013-06-10,marketed sale,44,66,495,287.0,3.5,88,2.0,55.0,27.0,364.0,155.0,165.0,96.0,40.0,Unknown,N,1st,N,,2401.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,1.0,0.0,0.0,"Electric immersion, off-peak",Poor,Very Poor,(other premises below),,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,(another dwelling above),,,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,No low energy lighting,Very Poor,Very Poor,electricity (not community),0.0,unheated corridor,5.9,,0.0,,natural,"Flat A-c, 24, Buckland Hill",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2013-06-10 08:57:01,owner-occupied,3.0,0.0,, +100799989262015092414330696248295,"87, King Edward Road",,,ME15 6PW,9950886468,E,C,42,80,House,Mid-Terrace,2015-09-24,E07000110,E14000804,Kent,2015-09-24,ECO assessment,36,76,412,121.0,7.1,76,2.2,117.0,59.0,1318.0,612.0,114.0,81.0,94.0,Single,Y,NODATA!,,,2102.0,0.0,not defined,Normal,2.0,4.0,4.0,0.0,3.0,From main system,Very Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Single glazed,Very Poor,Very Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, no insulation",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"87, King Edward Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2015-09-24 14:33:06,owner-occupied,,,200003665730.0,Address Matched +721619929642011110921223098390418,"42, Hillary Road",Penenden Heath,,ME14 2JT,616323968,C,C,71,72,House,Semi-Detached,2011-11-09,E07000110,E14000804,Kent,2011-11-09,marketed sale,71,72,178,170.0,2.6,34,2.5,73.0,42.0,402.0,406.0,110.0,110.0,76.12,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,5.0,5.0,25.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 25% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,2.36,0.0,,natural,"42, Hillary Road, Penenden Heath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2011-11-09 21:22:30,owner-occupied,8.0,2.0,200003707037.0,Address Matched +1460717019022016070817432005288416,Flat 5,"1-3, Lower Fant Road",,ME16 8DP,1003195478,D,C,66,79,Flat,Semi-Detached,2016-07-08,E07000110,E14000804,Kent,2016-07-08,rental (private),64,81,243,126.0,2.7,43,1.4,89.0,45.0,481.0,251.0,96.0,98.0,63.0,Single,Y,Basement,N,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,2.0,2.0,0.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,no corridor,,2.21,,N,natural,"Flat 5, 1-3, Lower Fant Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2016-07-08 17:43:20,rental (private),,,200003668627.0,Address Matched +1341178533252015070901042794050732,"486, Tonbridge Road",,,ME16 9JA,7216347378,D,B,68,82,House,Semi-Detached,2015-07-07,E07000110,E14000804,Kent,2015-07-09,marketed sale,64,78,198,105.0,3.5,36,1.9,85.0,60.0,620.0,573.0,125.0,73.0,100.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,6.0,6.0,60.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 60% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"486, Tonbridge Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2015-07-09 01:04:27,owner-occupied,,,200003681605.0,Address Matched +1730806329002019062115080363512898,"17, Dawkins Drive",Staplehurst,,TN12 0FZ,69025678,B,A,83,95,House,End-Terrace,2019-06-21,E07000110,E14000804,Kent,2019-06-21,new dwelling,85,98,97,0.0,1.2,17,0.0,53.0,53.0,212.0,212.0,68.0,40.0,70.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.14 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.27 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"17, Dawkins Drive, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,NO DATA!,2019-06-21 15:08:03,unknown,18.0,18.0,10094442053.0,Address Matched +356763199102014071414381963649348,"21, Harrow Way",Weavering,,ME14 5TU,5188496668,D,B,66,87,House,Semi-Detached,2014-07-14,E07000110,E14000700,Kent,2014-07-14,marketed sale,64,88,205,52.0,3.2,40,0.9,50.0,50.0,565.0,382.0,164.0,80.0,80.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,100.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"21, Harrow Way, Weavering",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2014-07-14 14:38:19,owner-occupied,8.0,8.0,200003689804.0,Address Matched +533668601152010090519013894000073,Flat 77 Pevensey Court,St. Peters Street,,ME16 0GQ,357149768,C,C,76,76,Flat,NO DATA!,2010-09-05,E07000110,E14000804,Kent,2010-09-05,marketed sale,69,69,270,270.0,2.4,41,2.4,38.0,38.0,205.0,205.0,134.0,134.0,58.115,dual,N,2nd,Y,3.0,2401.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,"Electric immersion, off-peak",Poor,Poor,(other premises below),,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,"Pitched, insulated (assumed)",Good,Good,Electric storage heaters,Average,Poor,Manual charge control,Poor,Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity - this is for backwards compatibility only and should not be used,0.0,unheated corridor,5.0,2.39,0.0,N,natural,"Flat 77 Pevensey Court, St. Peters Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2010-09-05 19:01:38,owner-occupied,,,10022893674.0,Address Matched +1660406409442018090311393662080878,"11, Great Threads",Staplehurst,,TN12 0FJ,9497700678,B,A,84,93,House,Detached,2018-09-03,E07000110,E14000804,Kent,2018-09-03,new dwelling,85,94,82,24.0,1.8,14,0.6,78.0,78.0,280.0,281.0,100.0,55.0,127.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.12 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.28 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.12 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"11, Great Threads, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,NO DATA!,2018-09-03 11:39:36,unknown,10.0,10.0,10093304240.0,Address Matched +131171964132019041721355863968103,"3, Ashurst Road",,,ME14 5PZ,6363199468,C,B,73,89,House,Mid-Terrace,2019-04-16,E07000110,E14000804,Kent,2019-04-17,marketed sale,71,88,181,55.0,2.3,32,0.7,64.0,64.0,379.0,322.0,107.0,63.0,73.0,Unknown,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,83.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 83% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"3, Ashurst Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2019-04-17 21:35:58,owner-occupied,,,200003671413.0,Address Matched +1143083649342014052008010528349418,"19, Quarry Road",,,ME15 6UA,5370743278,D,B,66,87,House,Mid-Terrace,2014-05-19,E07000110,E14000804,Kent,2014-05-20,rental (social),64,88,203,54.0,3.2,39,0.9,63.0,50.0,513.0,382.0,191.0,76.0,83.0,Single,Y,NODATA!,,,2107.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,73.0,0.0,From main system,Average,Average,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 73% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"19, Quarry Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2014-05-20 08:01:05,rental (social),11.0,8.0,200003681975.0,Address Matched +372731876212009093015220700710665,Flat 1 Valence House,Sutton Road,,ME15 9AW,6551608668,F,C,38,71,Maisonette,End-Terrace,2009-09-30,E07000110,E14000700,Kent,2009-09-30,rental (private),37,61,573,322.0,6.0,86,3.3,74.0,40.0,669.0,302.0,228.0,127.0,68.94,dual,N,1st,Y,3.0,2401.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,14.0,0.0,"Electric immersion, off-peak",Very Poor,Poor,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,"Pitched, 100 mm loft insulation",Average,Average,Electric storage heaters,Poor,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 14% of fixed outlets,Poor,Poor,electricity - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.44,0.0,N,natural,"Flat 1 Valence House, Sutton Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2009-09-30 15:22:07,rental (private),,,10014308930.0,Address Matched +1487344268352016101211135697969645,Flat 3,Miller Heights,43-51 Lower Stone Street,ME15 6LN,6583877478,C,C,77,77,Flat,NO DATA!,2016-10-12,E07000110,E14000804,Kent,2016-10-12,none of the above,67,67,230,230.0,2.5,39,2.5,46.0,46.0,289.0,289.0,167.0,167.0,65.0,off-peak 10 hour,,mid floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Poor,Poor,Average thermal transmittance 0.22 W/m-¦K,Good,Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.45 W/m-¦K,Good,Good,,,,(other premises above),,,"Boiler and radiators, electric",Poor,Very Poor,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"Flat 3, Miller Heights, 43-51 Lower Stone Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2016-10-12 11:13:56,unknown,4.0,4.0,10093303783.0,Address Matched +1762745459302019110212165167712418,Flat 3,"165, Union Street",,ME14 1EY,1321257678,C,B,71,82,Flat,Semi-Detached,2019-10-29,E07000110,E14000804,Kent,2019-11-02,rental (private),55,73,499,308.0,2.2,84,1.4,27.0,27.0,289.0,117.0,131.0,131.0,26.0,dual,N,1st,N,,2402.0,100.0,double glazing installed before 2002,Normal,0.0,2.0,2.0,100.0,0.0,"Electric immersion, off-peak",Average,Poor,(another dwelling below),NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, electric",,,(another dwelling above),,,Electric storage heaters,Average,Very Poor,Automatic charge control,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,no corridor,,,,N,natural,"Flat 3, 165, Union Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2019-11-02 12:16:51,rental (private),,,200003696840.0,Address Matched +3ba06ef026c9819e4965402943066f0e3e352168177cfbd46157b6b10315709e,Red Roof,Boxley Road,Walderslade,ME5 9JG,8237370678,C,B,70,85,Bungalow,Detached,2021-08-11,E07000110,E14000700,Kent,2021-08-11,marketed sale,67,83,203,90.0,2.9,36,1.3,67.0,67.0,505.0,435.0,78.0,52.0,81.0,Unknown,Y,,,,,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.52,0.0,N,natural,"Red Roof, Boxley Road, Walderslade",Maidstone,Faversham and Mid Kent,CHATHAM,England and Wales: 1930-1949,2021-08-11 13:22:01,Owner-occupied,9.0,,200003673835.0,Energy Assessor +660869219762011080108535308098519,11 Carrie House,Lesley Place,Buckland Hill,ME16 0UD,1084198868,B,B,81,84,Flat,NO DATA!,2011-07-31,E07000110,E14000804,Kent,2011-08-01,rental (private),73,76,330,291.0,1.4,58,1.2,31.0,21.0,68.0,77.0,111.0,89.0,23.56,dual,N,3rd,N,,2402.0,,not defined,Much Less Than Typical,0.0,1.0,1.0,50.0,0.0,"Electric immersion, off-peak",Average,Very Poor,(other premises below),,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,(another dwelling above),,,Electric storage heaters,Average,Very Poor,Automatic charge control,Average,Average,Low energy lighting in 50% of fixed outlets,Good,Good,electricity (not community),0.0,unheated corridor,5.38,2.3,0.0,,natural,"11 Carrie House, Lesley Place, Buckland Hill",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2011-08-01 08:53:53,rental (private),4.0,2.0,200003721320.0,Address Matched +74682690922009091815501964888511,"8, Carpinus Close",,,ME5 9SS,1615984468,D,C,68,76,House,Semi-Detached,2009-09-18,E07000110,E14000700,Kent,2009-09-18,marketed sale,64,73,281,209.0,2.8,47,2.1,63.0,33.0,419.0,347.0,102.0,79.0,60.28,dual,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,11.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 11% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.3,0.0,N,natural,"8, Carpinus Close",Maidstone,Faversham and Mid Kent,CHATHAM,England and Wales: 1983-1990,2009-09-18 15:50:19,owner-occupied,,,200003709260.0,Address Matched +413426682152011022508483899990670,Silk Cottage,The Street,Wormshill,ME9 0TT,6089290768,E,C,53,70,House,Semi-Detached,2011-02-18,E07000110,E14000700,Kent,2011-02-25,rental (private),42,60,312,202.0,6.3,68,4.1,77.0,51.0,828.0,494.0,202.0,174.0,93.78,Single,N,NO DATA!,,,2104.0,50.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,50.0,1.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Partial double glazing,Poor,Poor,"Cavity wall, as built, partial insulation (assumed)",Average,Average,,,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, oil",Average,Average,Programmer and room thermostat,Average,Average,Low energy lighting in 50% of fixed outlets,Good,Good,oil - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.52,0.0,N,natural,"Silk Cottage, The Street, Wormshill",Maidstone,Faversham and Mid Kent,SITTINGBOURNE,England and Wales: 1976-1982,2011-02-25 08:48:38,rental (private),,,200003732916.0,Address Matched +875129610452013012319070895270500,"53a, Eyhorne Street",Hollingbourne,,ME17 1TS,5075054078,C,C,72,80,House,Detached,2013-01-23,E07000110,E14000700,Kent,2013-01-23,marketed sale,69,77,132,92.0,5.4,25,3.9,160.0,80.0,874.0,825.0,119.0,119.0,214.0,Single,Y,NODATA!,,,2105.0,100.0,double glazing installed during or after 2002,More Than Typical,1.0,7.0,7.0,0.0,1.0,From main system,Good,Good,"Suspended, insulated (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and at least two room thermostats,Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"53a, Eyhorne Street, Hollingbourne",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2003-2006,2013-01-23 19:07:08,owner-occupied,38.0,0.0,10014306312.0,Address Matched +3bd878d351af080537eaf62e0613990c2550c5f1acdeb53e563667c9cc8944f6,25 Bushy Grove,Kingswood,,ME17 3QL,10001479335,D,B,68,87,House,Semi-Detached,2021-09-23,E07000110,E14000700,Kent,2021-09-29,marketed sale,71,88,190,69.0,2.7,32,1.0,76.0,76.0,475.0,388.0,461.0,268.0,86.0,Single,Y,,,,,100.0,double glazing installed during or after 2002,Normal,2.0,5.0,5.0,93.0,0.0,From main system,Very Poor,Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 270 mm loft insulation",Good,Good,"Air source heat pump, radiators, electric",Very Good,Very Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in 93% of fixed outlets,Very Good,Very Good,electricity (not community),0.0,,,2.36,0.0,N,natural,"25 Bushy Grove, Kingswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1976-1982,2021-09-29 16:11:00,Owner-occupied,15.0,,200003700177.0,Energy Assessor +1798327012642020051514263679009648,"36, Halstow Close",,,ME15 9XA,1643010778,D,A,66,107,Bungalow,Detached,2020-05-14,E07000110,E14000804,Kent,2020-05-15,marketed sale,62,102,254,-37.0,3.2,45,-0.3,77.0,58.0,522.0,456.0,129.0,81.0,71.0,Single,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,67.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, 270 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 67% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"36, Halstow Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2020-05-15 14:26:36,unknown,,,200003675590.0,Address Matched +1033607381952013102907043397279116,"9, Bodkins Close",Boughton Monchelsea,,ME17 4TS,1660175178,C,B,69,87,House,Semi-Detached,2013-10-28,E07000110,E14000700,Kent,2013-10-29,marketed sale,69,88,184,54.0,2.5,35,0.8,58.0,44.0,409.0,356.0,142.0,71.0,72.0,Unknown,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,67.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 67% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"9, Bodkins Close, Boughton Monchelsea",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1991-1995,2013-10-29 07:04:33,owner-occupied,9.0,6.0,200003721140.0,Address Matched +761742859922012031514285686958722,"10, Chestnut Close",,,ME15 9ZS,2817546968,B,B,82,83,House,Semi-Detached,2012-03-15,E07000110,E14000700,Kent,2012-03-15,new dwelling,86,87,85,82.0,1.2,16,1.2,61.0,49.0,214.0,215.0,81.0,81.0,77.42,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,9.0,,From main system,Good,Good,Average thermal transmittance 0.11 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.19 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,,,NO DATA!,"10, Chestnut Close",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2012-03-15 14:28:56,,12.0,9.0,10014313585.0,Address Matched +793584779202014053108161299849638,The Cottage,Oakwood Park,Tonbridge Road,ME16 8AE,2248478968,E,B,45,84,House,Detached,2014-05-17,E07000110,E14000804,Kent,2014-05-31,marketed sale,40,82,303,78.0,8.7,58,2.3,135.0,73.0,1606.0,661.0,110.0,111.0,149.0,Single,Y,NODATA!,,,2107.0,0.0,not defined,Normal,1.0,6.0,6.0,11.0,2.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Granite or whinstone, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, insulated at rafters",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 11% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"The Cottage, Oakwood Park, Tonbridge Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2014-05-31 08:16:12,owner-occupied,47.0,5.0,200003725279.0,Address Matched +1641181469702018061806564556889458,"11, Gorham Drive",Downswood,,ME15 8UU,3782968578,C,B,70,86,House,Semi-Detached,2018-06-15,E07000110,E14000700,Kent,2018-06-18,marketed sale,68,85,220,85.0,2.5,39,1.0,56.0,56.0,428.0,372.0,96.0,63.0,64.0,Unknown,Y,NODATA!,,,2106.0,60.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,80.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Partial double glazing,Poor,Poor,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"11, Gorham Drive, Downswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2018-06-18 06:56:45,owner-occupied,,,200003691392.0,Address Matched +1231729878252014110512055696049225,"79, Salisbury Road",Penenden Heath,,ME14 2TY,2509869278,D,B,59,85,House,Mid-Terrace,2014-11-05,E07000110,E14000804,Kent,2014-11-05,marketed sale,61,88,233,67.0,4.3,38,1.1,77.0,78.0,982.0,496.0,158.0,93.0,115.0,Single,Y,NODATA!,,,2106.0,50.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,80.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Partial double glazing,Poor,Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"79, Salisbury Road, Penenden Heath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2014-11-05 12:05:56,owner-occupied,10.0,8.0,200003703452.0,Address Matched +1339721250112017062116553793230837,"1, Betsham Road",,,ME15 8TX,8732037378,D,B,57,87,House,End-Terrace,2017-06-21,E07000110,E14000700,Kent,2017-06-21,marketed sale,50,86,314,76.0,4.8,55,1.2,123.0,61.0,697.0,411.0,253.0,74.0,87.0,Unknown,Y,NODATA!,,,2102.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,0.0,0.0,"From main system, no cylinder thermostat",Poor,Poor,"Solid, limited insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"1, Betsham Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1996-2002,2017-06-21 16:55:37,owner-occupied,,,200003681026.0,Address Matched +3bdc7d8c0e7999769b74d8d9a7fc77cc604606c787d6e7b20e56f20c145854dd,49 WEST STREET,HARRIETSHAM,,ME17 1HX,10001522461,D,B,66,83,House,End-Terrace,2021-07-26,E07000110,E14000700,Kent,2021-07-26,marketed sale,61,80,242,108.0,3.4,43,1.6,73.0,73.0,596.0,475.0,83.0,57.0,81.0,dual,Y,,,,,67.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Partial double glazing,Poor,Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, insulated at rafters",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,1.0,0.0,N,natural,"49 WEST STREET, HARRIETSHAM",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2021-07-26 21:37:24,Owner-occupied,15.0,,200003702550.0,Energy Assessor +268152985212009041722533807910068,Flat 52 Pevensey Court,St. Peters Street,,ME16 0GQ,827570668,C,C,78,80,Flat,Semi-Detached,2009-04-17,E07000110,E14000804,Kent,2009-04-17,rental (social),75,76,213,205.0,2.1,32,2.0,75.0,37.0,141.0,148.0,128.0,128.0,65.25,dual,N,1st,N,4.0,2402.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,0.0,0.0,"Electric immersion, off-peak",Poor,Poor,(other premises below),,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,(another dwelling above),,,Electric storage heaters,Poor,Very Poor,Automatic charge control,Average,Average,No low energy lighting,Very Poor,Very Poor,electricity - this is for backwards compatibility only and should not be used,0.0,unheated corridor,4.4,2.4,0.0,N,natural,"Flat 52 Pevensey Court, St. Peters Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2009-04-17 22:53:38,rental (social),,,10022893649.0,Address Matched +437379642032010021409083981968906,"35, Chattenden Court",Penenden Heath,,ME14 2AW,4651952768,C,C,69,74,House,Detached,2010-02-13,E07000110,E14000804,Kent,2010-02-14,marketed sale,64,70,222,186.0,4.3,37,3.6,67.0,67.0,590.0,515.0,167.0,132.0,115.21,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,7.0,7.0,90.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 90% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.35,0.0,N,natural,"35, Chattenden Court, Penenden Heath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1976-1982,2010-02-14 09:08:39,owner-occupied,,,200003701769.0,Address Matched +1799766451012020052811114222200273,"19, Coleman Way",,,ME17 3GT,2390120778,B,A,84,94,House,Detached,2020-05-28,E07000110,E14000700,Kent,2020-05-28,new dwelling,85,94,83,26.0,1.9,15,0.6,88.0,88.0,291.0,292.0,100.0,56.0,127.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"19, Coleman Way",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2020-05-28 11:11:42,unknown,12.0,12.0,10094441795.0,Address Matched +650507619642011070419585787890148,"16, Yeoman Way",Bearsted,,ME15 8PQ,8636618868,D,D,58,67,Bungalow,Detached,2011-07-04,E07000110,E14000700,Kent,2011-07-04,marketed sale,56,67,281,211.0,3.8,54,2.9,80.0,40.0,573.0,475.0,125.0,95.0,70.3,dual,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,0.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,2.6,0.0,,natural,"16, Yeoman Way, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2011-07-04 19:58:57,owner-occupied,6.0,0.0,200003690963.0,Address Matched +1807743402062020070619352390168230,The Stone Barn,Maidstone Road,Nettlestead,ME18 5HA,3940080778,E,B,40,81,House,Semi-Detached,2020-07-06,E07000110,E14000804,Kent,2020-07-06,rental (private),41,83,387,105.0,8.4,59,2.1,196.0,100.0,1704.0,694.0,178.0,76.0,142.0,Single,Y,NODATA!,,,2106.0,14.0,"double glazing, unknown install date",Less Than Typical,1.0,5.0,5.0,0.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Some double glazing,Very Poor,Very Poor,"Granite or whinstone, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Roof room(s), ceiling insulated",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"The Stone Barn, Maidstone Road, Nettlestead",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2020-07-06 19:35:23,rental (private),,,200003724817.0,Address Matched +1726736921252020082111145829200260,"13, Sendles Field",Otham,,ME15 8YR,2055194678,B,A,85,94,House,Semi-Detached,2020-08-21,E07000110,E14000700,Kent,2020-08-21,new dwelling,86,95,77,19.0,1.7,14,0.4,94.0,94.0,266.0,267.0,101.0,56.0,124.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.10 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.20 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"13, Sendles Field, Otham",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2020-08-21 11:14:58,unknown,10.0,10.0,10094440612.0,Address Matched +246644830922009031821293259788561,"90, Bower Street",,,ME16 8BE,6530329568,D,C,68,75,House,Mid-Terrace,2009-03-18,E07000110,E14000804,Kent,2009-03-18,rental (private),64,71,246,196.0,3.6,41,2.9,69.0,42.0,463.0,394.0,132.0,110.0,88.75,Single,Y,NO DATA!,,,2106.0,75.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,36.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Partial double glazing,Poor,Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 36% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.44,0.0,N,natural,"90, Bower Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2009-03-18 21:29:32,rental (private),,,200003667316.0,Address Matched +57502922142020012221500454802598,Flat 2 Regalpoint Court,"62a, London Road",,ME16 8QL,129728568,C,C,79,79,Flat,Semi-Detached,2020-01-21,E07000110,E14000804,Kent,2020-01-22,marketed sale,83,83,126,126.0,1.2,22,1.2,50.0,50.0,212.0,212.0,84.0,84.0,54.0,Single,Y,Ground,N,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Very Good,Very Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,4.78,,,N,natural,"Flat 2 Regalpoint Court, 62a, London Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2020-01-22 21:50:04,owner-occupied,,,10014306532.0,Address Matched +499883512022020090817073677588550,Tyn y Coed,Weavering Street,Weavering,ME14 5JQ,5735107768,D,B,65,81,House,Detached,2020-09-08,E07000110,E14000700,Kent,2020-09-08,marketed sale,56,76,221,114.0,6.4,39,3.4,129.0,102.0,1078.0,769.0,137.0,85.0,165.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,3.0,6.0,6.0,74.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 74% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"Tyn y Coed, Weavering Street, Weavering",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2020-09-08 17:07:36,rental (private),,,200003688030.0,Address Matched +431781319942010020414300971200448,Nydia,Honey Lane,Otham,ME15 8RJ,4949912768,D,D,55,64,Bungalow,Detached,2010-02-04,E07000110,E14000700,Kent,2010-02-04,marketed sale,49,57,283,236.0,5.6,56,4.7,104.0,52.0,693.0,600.0,181.0,157.0,99.9,Single,N,NO DATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,1.0,5.0,5.0,0.0,0.0,From main system,Average,Average,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, wood logs",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, oil",Average,Average,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,oil - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.45,0.0,N,natural,"Nydia, Honey Lane, Otham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2010-02-04 14:30:09,owner-occupied,,,200003690471.0,Address Matched +670237330532015110911290739268891,"41, Berwyn Grove",,,ME15 9RE,3179859868,E,C,47,79,House,Semi-Detached,2015-10-28,E07000110,E14000804,Kent,2015-11-09,none of the above,35,69,381,133.0,7.1,79,2.8,70.0,70.0,1139.0,625.0,138.0,72.0,90.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,79.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, coal",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 79% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"41, Berwyn Grove",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2015-11-09 11:29:07,owner-occupied,,,200003675039.0,Address Matched +177737277612016121218041498969052,Aspley House,Avery Lane,Otham,ME15 8RZ,287783568,D,C,56,76,House,Detached,2016-12-12,E07000110,E14000700,Kent,2016-12-12,rental (private),48,65,176,85.0,11.0,44,7.0,204.0,103.0,1559.0,1447.0,173.0,93.0,259.0,Single,N,NODATA!,,,2110.0,100.0,double glazing installed before 2002,Normal,3.0,10.0,9.0,2.0,2.0,From main system,Average,Average,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, oil",Average,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in 2% of fixed outlets,Very Poor,Very Poor,oil (not community),0.0,NO DATA!,,,,N,natural,"Aspley House, Avery Lane, Otham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2016-12-12 18:04:14,rental (private),,,200003720807.0,Address Matched +752792679742018042211325990582308,2 Tillman Gate Cottage,Windmill Hill,Harrietsham,ME17 1LP,9764675968,F,A,34,125,House,Semi-Detached,2018-04-20,E07000110,E14000700,Kent,2018-04-22,rental (private),34,102,619,-52.0,4.9,108,-0.4,37.0,40.0,1043.0,276.0,177.0,77.0,45.0,dual,N,NODATA!,,,2603.0,100.0,double glazing installed before 2002,Normal,2.0,4.0,4.0,100.0,0.0,"Electric immersion, off-peak",Poor,Poor,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, with external insulation",Very Good,Very Good,"Room heaters, dual fuel (mineral and wood)",,,"Roof room(s), ceiling insulated",Very Poor,Very Poor,"Room heaters, electric",Very Poor,Poor,Programmer and appliance thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,NO DATA!,,,,N,natural,"2 Tillman Gate Cottage, Windmill Hill, Harrietsham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2018-04-22 11:32:59,rental (private),,,200003702182.0,Address Matched +3c2ecf3cc32141708df16aae50125fff32622e87650259dc00dea1a6250896f8,52 DUKE OF YORK WAY,COXHEATH,,ME17 4GT,1192056568,C,C,77,77,Flat,Enclosed End-Terrace,2021-08-02,E07000110,E14000804,Kent,2021-08-02,marketed sale,79,79,167,167.0,1.4,29,1.4,46.0,46.0,248.0,248.0,78.0,78.0,47.0,Unknown,Y,00,N,,,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,100.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,1.04,2.4,0.0,N,natural,"52 DUKE OF YORK WAY, COXHEATH",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2021-08-02 11:40:49,Owner-occupied,4.0,,10022900512.0,Energy Assessor +1632351679922018051620420078668578,"59, Loose Road",,,ME15 7BY,7701708578,E,B,42,81,House,Mid-Terrace,2018-05-16,E07000110,E14000804,Kent,2018-05-16,marketed sale,35,77,439,127.0,7.2,78,2.1,106.0,62.0,1174.0,566.0,187.0,73.0,92.0,Single,Y,NODATA!,,,2104.0,80.0,double glazing installed before 2002,Normal,1.0,4.0,4.0,30.0,0.0,From main system,Average,Average,"Suspended, no insulation (assumed)",NO DATA!,,Mostly double glazing,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, mains gas",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 30% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"59, Loose Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2018-05-16 20:42:00,owner-occupied,,,200003683817.0,Address Matched +293368450242009102116212063212898,62 Hughenden Reach,Tovil,,ME15 6ZL,3243752668,B,B,86,87,Flat,NO DATA!,2009-10-21,E07000110,E14000804,Kent,2009-10-21,new dwelling,86,87,102,95.0,1.2,17,1.2,66.0,42.0,185.0,187.0,88.0,88.0,74.1,standard tariff,,mid floor,,,2106.0,,NO DATA!,NO DATA!,,,,3.0,0.0,From main system,Very Good,Very Good,(other premises below),,,Fully double glazed,Good,Good,Average thermal transmittance 0.32 W/m?K,Good,Good,,,,Average thermal transmittance 0.00 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 43% fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"62 Hughenden Reach, Tovil",Maidstone,Maidstone and The Weald,MAIDSTONE,,2009-10-21 16:21:20,,,,10014308525.0,Address Matched +591159379542011021015061681399108,"12, Beaconsfield Road",,,ME15 6RU,6554373868,C,C,71,77,House,Mid-Terrace,2011-02-10,E07000110,E14000804,Kent,2011-02-10,rental (private),66,73,233,184.0,3.2,39,2.5,50.0,50.0,534.0,419.0,103.0,103.0,82.43,Single,Y,NO DATA!,,,2106.0,0.0,not defined,Normal,0.0,4.0,4.0,87.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 87% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.46,0.0,N,natural,"12, Beaconsfield Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2011-02-10 15:06:16,rental (private),,,200003664715.0,Address Matched +1260667676552015012613232397250231,"57, Park Way",Coxheath,,ME17 4EU,2120671378,E,B,49,82,House,Semi-Detached,2015-01-26,E07000110,E14000804,Kent,2015-01-26,assessment for green deal,43,77,319,112.0,8.9,56,3.2,160.0,80.0,1692.0,757.0,146.0,113.0,159.0,Single,Y,NODATA!,,,2103.0,100.0,"double glazing, unknown install date",Normal,1.0,6.0,4.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,Portable electric heaters (assumed),,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Room thermostat only,Poor,Poor,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"57, Park Way, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2015-01-26 13:23:23,owner-occupied,,,200003715192.0,Address Matched +358116984952009090611380400010566,High View,Weavering Street,Weavering,ME14 5JP,5651407668,E,E,41,42,Flat,End-Terrace,2009-09-06,E07000110,E14000700,Kent,2009-09-06,rental (private),54,55,466,462.0,3.0,70,3.0,52.0,26.0,622.0,639.0,57.0,57.0,25.738,dual,Y,1st,Y,3.0,2699.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,1.0,0.0,0.0,Single-point gas water heater,Good,Very Poor,(other premises below),,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, 200 mm loft insulation",Good,Good,No system present: electric heaters assumed,Very Poor,Poor,,Very Poor,Very Poor,No low energy lighting,Very Poor,Very Poor,electricity - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.329,0.0,N,natural,"High View, Weavering Street, Weavering",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1996-2002,2009-09-06 11:38:04,rental (private),,,200003688026.0,Address Matched +842902900712012101117340592929407,"5, Blacksmith Drive",Weavering,,ME14 5SZ,4778022078,C,B,72,85,House,Semi-Detached,2012-10-11,E07000110,E14000700,Kent,2012-10-11,marketed sale,71,84,153,71.0,3.0,29,1.4,62.0,62.0,511.0,442.0,90.0,64.0,102.0,Unknown,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,1.0,5.0,5.0,86.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 86% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"5, Blacksmith Drive, Weavering",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1976-1982,2012-10-11 17:34:05,owner-occupied,14.0,12.0,200003689132.0,Address Matched +316900244352009070615343101010960,Apartment 5,"55-57, Hartnup Street",,ME16 8FH,9065414668,B,B,86,86,Flat,Detached,2009-06-01,E07000110,E14000804,Kent,2009-07-06,new dwelling,86,86,104,104.0,1.2,17,1.2,36.0,36.0,202.0,202.0,87.0,87.0,72.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,,From main system,Very Good,Very Good,(other premises below),,,Fully double glazed,Good,Good,Average thermal transmittance 0.19 W/m??K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 100% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,,,NO DATA!,"Apartment 5, 55-57, Hartnup Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2009-07-06 15:34:31,,,,10014308152.0,Address Matched +1422953529922016051217013183928956,4 Hubert Walter Drive,,,ME16 0BE,5863223478,B,B,84,84,Flat,NO DATA!,2016-05-12,E07000110,E14000804,Kent,2016-05-12,new dwelling,88,88,85,85.0,0.8,15,0.8,37.0,37.0,182.0,182.0,77.0,77.0,52.0,standard tariff,,ground floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.20 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,4 Hubert Walter Drive,Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2016-05-12 17:01:31,unknown,5.0,5.0,10091196001.0,Address Matched +596707719042011022410120381492078,"43, Stagshaw Close",,,ME15 6TE,3038814868,C,B,80,81,House,End-Terrace,2011-02-23,E07000110,E14000804,Kent,2011-02-24,rental (private),78,79,157,148.0,2.0,26,1.8,44.0,44.0,327.0,307.0,102.0,103.0,75.08,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Suspended, insulated (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.39,0.0,N,natural,"43, Stagshaw Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2011-02-24 10:12:03,rental (private),,,10022893285.0,Address Matched +1474348689302016082521055548662458,"28, Grampian Way",Downswood,,ME15 8TG,6351686478,D,B,62,81,House,Detached,2016-08-25,E07000110,E14000700,Kent,2016-08-25,marketed sale,57,77,271,127.0,4.0,48,1.9,101.0,55.0,661.0,566.0,163.0,75.0,83.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,18.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, mains gas",,,"Pitched, insulated (assumed)",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 18% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,2.34,,N,natural,"28, Grampian Way, Downswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2016-08-25 21:05:55,owner-occupied,,,200003691076.0,Address Matched +476343720022010042709285265198918,"28, Albany Street",,,ME14 5AJ,1679235768,B,B,84,86,House,Semi-Detached,2008-10-01,E07000110,E14000804,Kent,2010-04-27,new dwelling,85,87,100,92.0,1.6,16,1.5,108.0,61.0,252.0,258.0,70.0,70.0,105.25,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,,From main system,Very Good,Very Good,Average thermal transmittance 0.20 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m?K,Very Good,Very Good,"Room heaters, wood logs",,,Average thermal transmittance 0.20 W/m?K,Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in 25% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,,,NO DATA!,"28, Albany Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2010-04-27 09:28:52,,,,10014309470.0,Address Matched +169739790742008102113591359282108,Flat 37 Scotney Gardens,St. Peters Street,,ME16 0GR,4703692568,B,B,81,82,Flat,Mid-Terrace,2008-10-20,E07000110,E14000804,Kent,2008-10-21,rental (private),75,75,270,263.0,1.6,41,1.5,38.0,21.0,95.0,98.0,96.0,96.0,38.85,dual,N,1st,N,4.0,2402.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,17.0,0.0,"Electric immersion, off-peak",Average,Poor,"To unheated space, insulated (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,(another dwelling above),,,Electric storage heaters,Average,Poor,Automatic charge control,Average,Average,Low energy lighting in 17% of fixed outlets,Poor,Poor,electricity - this is for backwards compatibility only and should not be used,0.0,heated corridor,0.0,2.33,0.0,N,natural,"Flat 37 Scotney Gardens, St. Peters Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2008-10-21 13:59:13,rental (private),,,10022893405.0,Address Matched +515095279262010072017420148508710,"16, Cleavesland",Laddingford,,ME18 6BS,1416708768,C,B,78,82,Flat,Enclosed Mid-Terrace,2010-07-20,E07000110,E14000804,Kent,2010-07-20,rental (social),76,80,195,166.0,1.7,32,1.5,57.0,29.0,287.0,263.0,82.0,82.0,53.94,Single,Y,1st,Y,2.0,2106.0,90.0,double glazing installed before 2002,Normal,0.0,2.0,2.0,0.0,0.0,From main system,Very Good,Very Good,(other premises below),,,Mostly double glazing,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,unheated corridor,4.28,2.25,0.0,N,natural,"16, Cleavesland, Laddingford",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2010-07-20 17:42:01,rental (social),,,200003659966.0,Address Matched +1756217649062019100820085347588931,3 Parsonage Farm Cottages,The Street,Stockbury,ME9 7UH,3435407678,G,E,14,54,House,Semi-Detached,2019-10-08,E07000110,E14000700,Kent,2019-10-08,rental (private),13,43,674,279.0,8.7,141,3.8,60.0,60.0,1651.0,913.0,174.0,96.0,62.0,dual,N,NODATA!,,,2601.0,100.0,double glazing installed during or after 2002,Normal,2.0,4.0,2.0,89.0,2.0,"Electric immersion, off-peak",Average,Poor,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,Portable electric heaters (assumed),,,"Pitched, 100 mm loft insulation",Average,Average,"Room heaters, dual fuel (mineral and wood)",Very Poor,Very Poor,No thermostatic control of room temperature,Poor,Poor,Low energy lighting in 89% of fixed outlets,Very Good,Very Good,dual fuel - mineral + wood,0.0,NO DATA!,,,,N,natural,"3 Parsonage Farm Cottages, The Street, Stockbury",Maidstone,Faversham and Mid Kent,SITTINGBOURNE,England and Wales: before 1900,2019-10-08 20:08:53,rental (private),,,200003702042.0,Address Matched +1543056019922017051115481971198893,80 Pine Lodge,Tonbridge Road,,ME16 8TB,9736171578,C,C,73,77,Flat,Mid-Terrace,2017-05-11,E07000110,E14000804,Kent,2017-05-11,rental (private),73,79,185,143.0,2.0,33,1.6,45.0,45.0,365.0,274.0,100.0,101.0,62.0,Unknown,Y,Ground,N,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,heated corridor,,,,N,natural,"80 Pine Lodge, Tonbridge Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2017-05-11 15:48:19,rental (private),,,200003657958.0,Address Matched +3c7d730dc3e5ce4a2c3c05e23eee86a723945610d8d009f193fe3f1664453e65,14 OWLETTS CLOSE,,,ME15 7SZ,10001362525,E,C,52,80,House,End-Terrace,2021-06-28,E07000110,E14000700,Kent,2021-07-01,ECO assessment,48,78,320,122.0,5.5,56,2.1,152.0,76.0,1052.0,636.0,107.0,74.0,98.0,Single,Y,,,,,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,0.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,"Pitched, insulated (assumed)",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,,,2.75,0.0,N,natural,14 OWLETTS CLOSE,Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2021-07-01 10:38:41,Rented (social),10.0,,200003725390.0,Energy Assessor +769999509112012041013055491920292,18 Crundale,Union Street,,ME14 1TX,2261917968,C,C,74,77,Flat,Mid-Terrace,2012-04-10,E07000110,E14000804,Kent,2012-04-10,rental (social),77,82,168,136.0,1.5,32,1.2,32.0,32.0,256.0,205.0,92.0,93.0,46.0,Unknown,Y,3rd,N,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,80.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,4.5,,0.0,,natural,"18 Crundale, Union Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2012-04-10 13:05:54,rental (social),5.0,4.0,200003700837.0,Address Matched +1150066615512014060217025399040422,2 Edwin Villas,Goudhurst Road,Marden,TN12 9JX,4281593278,D,B,57,85,House,Semi-Detached,2014-06-02,E07000110,E14000804,Kent,2014-06-02,marketed sale,52,84,246,71.0,5.3,47,1.6,102.0,62.0,913.0,502.0,171.0,81.0,113.0,Single,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,36.0,0.0,From main system,Average,Average,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 36% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"2 Edwin Villas, Goudhurst Road, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1930-1949,2014-06-02 17:02:53,owner-occupied,11.0,4.0,200003710733.0,Address Matched +3c878f479bf6a38c4bf68c19187b3adc12f9819e934c9394b5d2278c2aad040d,41 Locks Yard,Headcorn,,TN27 9AD,10001486408,B,B,81,81,Flat,Semi-Detached,2021-08-18,E07000110,E14000700,Kent,2021-08-23,rental,85,85,111,111.0,1.1,19,1.1,54.0,54.0,188.0,188.0,86.0,86.0,56.0,Unknown,Y,00,N,,,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,no corridor,,2.3,0.0,N,natural,"41 Locks Yard, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,England and Wales: 2007-2011,2021-08-23 07:10:41,Rented (private),8.0,,10014312120.0,Energy Assessor +1325101460212015052615561193250038,"20, Hereford Road",,,ME15 7NE,828036378,C,B,69,85,House,Semi-Detached,2015-05-21,E07000110,E14000700,Kent,2015-05-26,FiT application,66,83,223,99.0,2.8,39,1.3,75.0,47.0,523.0,471.0,87.0,55.0,72.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,40.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 40% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"20, Hereford Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2015-05-26 15:56:11,owner-occupied,,,200003712414.0,Address Matched +1460852243632016070812071490078006,Drapers Cottage,Laddingford,,ME18 6BU,4640095478,D,A,58,97,House,End-Terrace,2016-07-07,E07000110,E14000804,Kent,2016-07-08,marketed sale,62,84,321,108.0,2.4,54,0.8,33.0,38.0,450.0,211.0,213.0,62.0,43.0,Single,N,NODATA!,,,2603.0,20.0,double glazing installed before 2002,Normal,0.0,2.0,2.0,100.0,0.0,"Electric immersion, standard tariff",Very Poor,Poor,"Suspended, insulated (assumed)",NO DATA!,,Some double glazing,Very Poor,Very Poor,"Solid brick, with internal insulation",Very Good,Very Good,,,,"Pitched, insulated (assumed)",Good,Good,"Room heaters, electric",Very Poor,Poor,Programmer and appliance thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,NO DATA!,,2.3,,N,natural,"Drapers Cottage, Laddingford",Maidstone,Maidstone and The Weald,MAIDSTONE,INVALID!,2016-07-08 12:07:14,owner-occupied,,,10091196234.0,Address Matched +3c86d09641aba86e2634d6d1085f880bf1d2ac750fc703e26d314c41458b4fe9,5 HERON APARTMENTS,HOLLINGWORTH ROAD,,ME15 9JN,4101323768,C,C,80,80,Flat,Semi-Detached,2021-07-01,E07000110,E14000700,Kent,2021-07-01,rental,83,83,127,127.0,1.2,22,1.2,49.0,49.0,220.0,220.0,79.0,79.0,54.0,Single,Y,01,N,,,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,(another dwelling below),,,Fully double glazed,Good,Good,"System built, with external insulation",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,4.25,2.29,0.0,N,natural,"5 HERON APARTMENTS, HOLLINGWORTH ROAD",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1976-1982,2021-07-01 16:51:19,Rented (social),6.0,,200003683601.0,Energy Assessor +451497075652010031114380395900779,"14, Worsfold Court",Enterprise Road,,ME15 6HW,7938553768,C,C,69,71,Flat,End-Terrace,2010-03-11,E07000110,E14000804,Kent,2010-03-11,marketed sale,61,63,344,327.0,2.9,52,2.7,39.0,39.0,277.0,241.0,140.0,140.0,55.81,dual,N,1st,Y,2.0,2401.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,90.0,0.0,"Electric immersion, off-peak",Poor,Poor,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,"Pitched, insulated (assumed)",Good,Good,Electric storage heaters,Poor,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 90% of fixed outlets,Very Good,Very Good,electricity - this is for backwards compatibility only and should not be used,0.0,unheated corridor,2.42,2.58,0.0,N,natural,"14, Worsfold Court, Enterprise Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2010-03-11 14:38:03,owner-occupied,,,200003683358.0,Address Matched +738617759002012011114010498429198,"21a, Headingley Road",,,ME16 0HR,9068854968,D,D,61,66,Bungalow,Semi-Detached,2012-01-11,E07000110,E14000804,Kent,2012-01-11,marketed sale,57,63,244,210.0,4.6,47,4.0,88.0,51.0,731.0,650.0,113.0,113.0,84.04,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,27.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 27% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,2.4,0.0,,natural,"21a, Headingley Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2012-01-11 14:01:04,owner-occupied,22.0,6.0,200003706315.0,Address Matched +1730891509222019062115081325998811,"23, Dawkins Drive",Staplehurst,,TN12 0FZ,1269025678,B,A,84,97,House,Mid-Terrace,2019-06-21,E07000110,E14000804,Kent,2019-06-21,new dwelling,87,99,87,-10.0,1.1,15,-0.1,53.0,53.0,190.0,190.0,68.0,40.0,70.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.27 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"23, Dawkins Drive, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,NO DATA!,2019-06-21 15:08:13,unknown,18.0,18.0,10094442056.0,Address Matched +68401703032020070119331473068806,"13, Warwick Place",,,ME16 8SG,613834468,E,B,51,82,House,End-Terrace,2020-07-01,E07000110,E14000804,Kent,2020-07-01,rental (private),44,79,377,109.0,4.7,66,1.4,59.0,59.0,826.0,471.0,113.0,49.0,71.0,Single,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,2.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"13, Warwick Place",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2020-07-01 19:33:14,rental (private),,,200003668180.0,Address Matched +1389191689602016070415574948060048,1 Rivers House,Mote Park,,ME15 8YB,7647080478,C,C,70,70,Flat,Semi-Detached,2016-07-04,E07000110,E14000700,Kent,2016-07-04,new dwelling,64,64,182,182.0,4.9,32,4.9,95.0,95.0,896.0,896.0,107.0,107.0,152.0,standard tariff,,top floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Good,Good,Average thermal transmittance 0.36 W/m-¦K,Good,Good,,,,Average thermal transmittance 0.18 W/m-¦K,Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"1 Rivers House, Mote Park",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2016-07-04 15:57:49,unknown,13.0,13.0,10091195074.0,Address Matched +112993189842019020215290841717598,"46, Clifford Way",,,ME16 8GD,4888587468,B,B,81,82,Flat,End-Terrace,2019-01-31,E07000110,E14000804,Kent,2019-02-02,rental (private),84,85,107,98.0,1.3,19,1.2,96.0,57.0,151.0,154.0,129.0,129.0,69.0,Single,Y,3rd,N,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,33.0,0.0,From main system,Good,Good,(another dwelling below),NO DATA!,,Fully double glazed,Good,Good,"System built, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 33% of fixed outlets,Average,Average,mains gas (not community),0.0,heated corridor,,,,N,natural,"46, Clifford Way",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2019-02-02 15:29:08,rental (private),,,10022896059.0,Address Matched +1742971389262019112811343256688141,"19, Seymour Drive",Marden,,TN12 9GS,4550806678,B,A,84,95,House,Semi-Detached,2019-11-28,E07000110,E14000804,Kent,2019-11-28,new dwelling,86,96,81,8.0,1.4,14,0.2,73.0,73.0,216.0,218.0,98.0,53.0,100.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.22 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.12 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"19, Seymour Drive, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,NO DATA!,2019-11-28 11:34:32,unknown,10.0,10.0,10094441059.0,Address Matched +1197489569062018080607230117848248,"19, Richmond Way",,,ME15 6BL,4157627278,D,C,57,72,Bungalow,Semi-Detached,2018-08-04,E07000110,E14000804,Kent,2018-08-06,marketed sale,50,64,326,221.0,4.5,58,3.1,63.0,63.0,794.0,752.0,103.0,69.0,79.0,dual,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"19, Richmond Way",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2018-08-06 07:23:01,owner-occupied,,,200003676210.0,Address Matched +1629167289302018050509294459782838,Boltons Farm Cottage,Rose Lane,Lenham Heath,ME17 2JN,327687578,D,A,64,99,House,Detached,2018-04-27,E07000110,E14000700,Kent,2018-05-05,marketed sale,59,93,177,-22.0,4.3,42,0.5,79.0,79.0,467.0,369.0,127.0,97.0,104.0,Unknown,N,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,2.0,6.0,6.0,83.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, oil",Average,Average,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 83% of fixed outlets,Very Good,Very Good,oil (not community),0.0,NO DATA!,,,,N,natural,"Boltons Farm Cottage, Rose Lane, Lenham Heath",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2018-05-05 09:29:44,owner-occupied,,,200003714818.0,Address Matched +1130517559262014042420492152248294,"78, Ware Street",Bearsted,,ME14 4PG,9547552278,E,D,42,67,Bungalow,Semi-Detached,2014-04-24,E07000110,E14000700,Kent,2014-04-24,none of the above,36,60,309,168.0,12.0,60,6.9,117.0,88.0,2213.0,1462.0,253.0,130.0,208.0,Single,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,1.0,8.0,8.0,67.0,1.0,"From main system, no cylinder thermostat",Poor,Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, dual fuel (mineral and wood)",,,"Roof room(s), no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Average,Programmer and room thermostat,Average,Average,Low energy lighting in 67% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"78, Ware Street, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2014-04-24 20:49:21,owner-occupied,24.0,16.0,200003693718.0,Address Matched +1317004392652015051222564797950538,"9, Burghclere Drive",,,ME16 8UQ,5883275378,D,B,57,88,House,Mid-Terrace,2015-05-11,E07000110,E14000804,Kent,2015-05-12,marketed sale,52,89,353,60.0,3.4,62,0.6,48.0,37.0,503.0,341.0,244.0,64.0,55.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,71.0,0.0,"From main system, no cylinder thermostat",Poor,Poor,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Timber frame, as built, partial insulation (assumed)",Average,Average,,,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 71% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"9, Burghclere Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2015-05-12 22:56:47,owner-occupied,,,200003675942.0,Address Matched +1575640149922017092215163964088253,Sunnyside,The Street,Stockbury,ME9 7UD,5642404578,E,A,50,111,Bungalow,Semi-Detached,2017-09-18,E07000110,E14000700,Kent,2017-09-22,marketed sale,31,83,525,73.0,6.2,91,0.9,106.0,53.0,699.0,438.0,279.0,89.0,69.0,dual,N,NODATA!,,,2401.0,100.0,"double glazing, unknown install date",Normal,2.0,3.0,3.0,0.0,0.0,"Electric immersion, off-peak",Very Poor,Poor,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 100 mm loft insulation",Average,Average,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,No low energy lighting,Very Poor,Very Poor,electricity (not community),0.0,NO DATA!,,,,N,natural,"Sunnyside, The Street, Stockbury",Maidstone,Faversham and Mid Kent,SITTINGBOURNE,England and Wales: 1950-1966,2017-09-22 15:16:39,owner-occupied,,,200003732616.0,Address Matched +1639488136832018061216435322978901,The Old Cart Lodge,Lower Road,West Farleigh,ME15 0PF,3192958578,C,A,75,103,House,Semi-Detached,2018-06-12,E07000110,E14000804,Kent,2018-06-12,new dwelling,53,79,274,109.0,5.6,46,2.2,87.0,87.0,591.0,593.0,169.0,92.0,120.0,off-peak 7 hour,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,"Electric immersion, off-peak",Average,Poor,Average thermal transmittance 0.21 W/m+é-¦K,Good,Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m+é-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.09 W/m+é-¦K,Very Good,Very Good,Electric storage heaters,Average,Very Poor,Celect control,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"The Old Cart Lodge, Lower Road, West Farleigh",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2018-06-12 16:43:53,unknown,25.0,25.0,10093306591.0,Address Matched +3cbbcd248ae51ea7ffdd6da6ea8002433e5368479a7b999c5be70f18f588baf6,2 St. Peters Mews,Somerfield Road,,ME16 8JJ,2893691668,C,B,75,84,House,Mid-Terrace,2021-09-28,E07000110,E14000804,Kent,2021-09-28,rental,71,80,135,83.0,4.2,24,2.6,109.0,109.0,648.0,605.0,131.0,82.0,174.0,Unknown,Y,,,,,100.0,"double glazing, unknown install date",Normal,0.0,7.0,7.0,100.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Sandstone or limestone, with internal insulation",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,3.0,0.0,N,natural,"2 St. Peters Mews, Somerfield Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2021-09-28 21:06:17,Rented (private),13.0,,10022895710.0,Energy Assessor +1717079892762020013114540184498790,Flat 66 Guinevere Point,Waterhouse Avenue,,ME14 2FJ,9804914678,B,B,87,87,Flat,Mid-Terrace,2020-01-31,E07000110,E14000804,Kent,2020-01-31,new dwelling,91,91,59,59.0,0.8,10,0.8,62.0,62.0,136.0,136.0,70.0,70.0,73.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.17 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Flat 66 Guinevere Point, Waterhouse Avenue",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2020-01-31 14:54:01,unknown,10.0,10.0,10094440174.0,Address Matched +1716869912542020030408583468400248,Flat 50 Guinevere Point,Waterhouse Avenue,,ME14 2FJ,3532914678,B,B,85,85,Flat,End-Terrace,2020-03-04,E07000110,E14000804,Kent,2020-03-04,new dwelling,90,90,70,70.0,0.9,12,0.9,57.0,57.0,161.0,161.0,69.0,69.0,70.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.17 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Flat 50 Guinevere Point, Waterhouse Avenue",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2020-03-04 08:58:34,unknown,10.0,10.0,10094440158.0,Address Matched +12562545332017092816302000968108,"9, Tennison Way",,,ME15 9GE,4890128468,C,B,79,89,House,Mid-Terrace,2017-05-10,E07000110,E14000700,Kent,2017-09-28,rental (social),78,89,130,55.0,2.2,23,1.0,67.0,67.0,354.0,356.0,120.0,70.0,98.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Very Good,Very Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"9, Tennison Way",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2007 onwards,2017-09-28 16:30:20,rental (social),,,10022895432.0,Address Matched +1525136349402017030809191755030238,Greystones,Pye Corner,Ulcombe,ME17 1EF,1446740578,E,A,40,108,Bungalow,Detached,2017-03-07,E07000110,E14000700,Kent,2017-03-08,non marketed sale,35,99,336,-86.0,6.1,87,-0.1,96.0,48.0,601.0,314.0,213.0,67.0,69.0,Single,N,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,0.0,0.0,"From main system, no cylinder thermostat",Poor,Poor,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, oil",Average,Average,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,oil (not community),0.0,NO DATA!,,,,N,natural,"Greystones, Pye Corner, Ulcombe",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2017-03-08 09:19:17,owner-occupied,,,200003725672.0,Address Matched +615919214932011041116494824968104,"8, Gabriels Hill",,,ME15 6JG,1454175868,G,G,1,17,Flat,Enclosed Mid-Terrace,2011-04-11,E07000110,E14000804,Kent,2011-04-11,marketed sale,27,40,573,418.0,12.0,86,9.0,84.0,84.0,3145.0,2185.0,315.0,315.0,150.96,Single,Y,1st,Y,3.0,2699.0,0.0,not defined,Normal,0.0,6.0,6.0,100.0,2.0,Electric instantaneous at point of use,Very Poor,Poor,(other premises below),,,Single glazed,Very Poor,Very Poor,"Timber frame, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation",Very Poor,Very Poor,No system present: electric heaters assumed,Very Poor,Poor,,Very Poor,Very Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.5,0.0,N,natural,"8, Gabriels Hill",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2011-04-11 16:49:48,owner-occupied,,,200003691203.0,Address Matched +714851169262011102520243932458739,"14, Poyntell Road",Staplehurst,,TN12 0SA,3350682968,F,F,21,34,House,Enclosed End-Terrace,2011-10-25,E07000110,E14000804,Kent,2011-10-25,rental (private),38,49,616,464.0,4.3,110,3.2,45.0,25.0,1029.0,764.0,161.0,161.0,39.36,dual,Y,NODATA!,,,2703.0,85.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,20.0,0.0,"Electric immersion, off-peak",Poor,Very Poor,"Solid, no insulation (assumed)",,,Mostly double glazing,Poor,Poor,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,Electric ceiling heating,Very Poor,Very Poor,Room thermostat only,Poor,Poor,Low energy lighting in 20% of fixed outlets,Poor,Poor,electricity (not community),0.0,NO DATA!,,2.38,0.0,,natural,"14, Poyntell Road, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1967-1975,2011-10-25 20:24:39,rental (private),5.0,1.0,200003678401.0,Address Matched +403088362032020021919450968968809,"1, Popes Wood",Thurnham,,ME14 3PW,6998810768,D,C,67,77,House,Detached,2020-02-19,E07000110,E14000700,Kent,2020-02-19,rental (private),60,71,196,133.0,6.0,35,4.1,102.0,102.0,1023.0,914.0,140.0,85.0,175.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",More Than Typical,0.0,9.0,9.0,100.0,0.0,From main system,Good,Good,"Solid, limited insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"1, Popes Wood, Thurnham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1996-2002,2020-02-19 19:45:09,rental (private),,,200003725630.0,Address Matched +482429118852010051113212397900175,Hydeaway,Lower Road,East Farleigh,ME15 0JL,1571875768,D,D,56,67,House,Detached,2010-05-10,E07000110,E14000804,Kent,2010-05-11,marketed sale,49,61,339,256.0,5.5,57,4.1,79.0,50.0,818.0,622.0,124.0,124.0,112.47,Single,Y,NO DATA!,,,2106.0,65.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,42.0,1.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Partial double glazing,Poor,Poor,"Cavity wall, as built, partial insulation (assumed)",Average,Average,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 42% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.3,0.0,N,natural,"Hydeaway, Lower Road, East Farleigh",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1976-1982,2010-05-11 13:21:23,owner-occupied,,,200003673478.0,Address Matched +540981499442010120818180275909168,"5, Cornhill Place",,,ME15 6GX,454299768,C,C,70,71,Flat,End-Terrace,2010-09-16,E07000110,E14000804,Kent,2010-12-08,new dwelling,77,78,204,198.0,1.6,32,1.6,44.0,29.0,222.0,223.0,239.0,239.0,51.5,standard tariff,,ground floor,,,,,NO DATA!,NO DATA!,,,,,,"Electric immersion, standard tariff",Very Poor,Poor,Average thermal transmittance 0.20 W/m?K,Very Good,Very Good,Fully double glazed,Good,Good,Average thermal transmittance 0.32 W/m?K,Good,Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.3,,,NO DATA!,"5, Cornhill Place",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2010-12-08 18:18:02,,,,10022895010.0,Address Matched +3cd5e9a3eb7359b0317e736d8461b5ea1808333fd2d281286018a29f69feddf7,7 KNOTT COURT,,,ME14 2XH,10001633081,D,B,68,85,House,End-Terrace,2021-06-26,E07000110,E14000804,Kent,2021-07-30,not sale or rental,65,83,221,89.0,2.8,39,1.2,76.0,61.0,456.0,396.0,118.0,75.0,72.0,Single,Y,,,,,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,75.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.6,0.0,N,natural,7 KNOTT COURT,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1991-1995,2021-07-30 15:00:13,Rented (social),8.0,,200003704728.0,Energy Assessor +655466280932011101417033632968398,6 Thomas Place,James Whatman Way,,ME14 1FP,8812358868,C,C,77,78,Flat,Mid-Terrace,2011-10-14,E07000110,E14000804,Kent,2011-10-14,new dwelling,88,89,119,115.0,1.0,15,0.9,53.0,40.0,251.0,253.0,102.0,102.0,64.4,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,4.0,,"Community scheme, no cylinder thermostat",Good,Very Good,Average thermal transmittance 0.22 W/m?K,Good,Good,Fully double glazed,Good,Good,Average thermal transmittance 0.39 W/m?K,Good,Good,,,,(other premises above),,,Community scheme,Good,Very Good,"Flat rate charging, programmer and TRVs",Average,Average,Low energy lighting in 67% of fixed outlets,Good,Good,NO DATA!,0.0,NO DATA!,,2.4,,,NO DATA!,"6 Thomas Place, James Whatman Way",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2011-10-14 17:03:36,,6.0,4.0,10014312672.0,Address Matched +766514079342012032716005898622938,"10, Dairy Lane",Marden,,TN12 9SP,4326976968,D,D,62,68,House,Detached,2012-03-27,E07000110,E14000804,Kent,2012-03-27,marketed sale,50,57,208,176.0,6.2,52,5.3,110.0,58.0,819.0,709.0,165.0,156.0,120.11,Single,N,NODATA!,,,2104.0,50.0,"double glazing, unknown install date",Normal,0.0,6.0,6.0,10.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Partial double glazing,Poor,Poor,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, oil",Good,Average,Programmer and room thermostat,Average,Average,Low energy lighting in 10% of fixed outlets,Poor,Poor,oil (not community),0.0,NO DATA!,,2.31,0.0,,natural,"10, Dairy Lane, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1967-1975,2012-03-27 16:00:58,owner-occupied,20.0,2.0,200003721967.0,Address Matched +391600868712017081415162093930463,Flat 6 Acacia House,"8-10, Ashford Road",,ME14 5DG,4394839668,E,D,52,68,Flat,Semi-Detached,2017-08-11,E07000110,E14000804,Kent,2017-08-14,rental (private),34,51,500,327.0,6.2,85,4.1,78.0,59.0,889.0,514.0,153.0,153.0,74.0,Unknown,N,1st,N,,2401.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,67.0,0.0,"Electric immersion, off-peak",Average,Poor,(another dwelling below),NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Poor,Poor,,,,(another dwelling above),,,Electric storage heaters,Poor,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 67% of fixed outlets,Good,Good,electricity (not community),0.0,unheated corridor,13.32,,,N,natural,"Flat 6 Acacia House, 8-10, Ashford Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2017-08-14 15:16:20,rental (private),,,200003661313.0,Address Matched +3cde3e1aa271ed31e359a7e47c6c441bd1a2bcf9b84ebc805851f89fcfd41646,FLAT 9,BURDOCK HOUSE,NORTHUMBERLAND ROAD,ME15 7TX,10001699557,E,C,53,71,Flat,Semi-Detached,2021-06-29,E07000110,E14000700,Kent,2021-07-01,ECO assessment,52,75,427,222.0,3.0,75,1.6,75.0,38.0,589.0,335.0,86.0,71.0,40.0,Single,Y,01,Y,,,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,0.0,0.0,From main system,Good,Good,(another dwelling below),,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Average,Average,"Room heaters, electric",,,"Pitched, insulated (assumed)",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,unheated corridor,4.5,2.85,0.0,N,natural,"FLAT 9, BURDOCK HOUSE, NORTHUMBERLAND ROAD",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2021-07-01 18:35:39,Rented (social),5.0,,200003714125.0,Energy Assessor +243866194812012022418111690220958,"11, Belts Wood",,,ME15 9GL,9870409568,C,C,79,79,House,Mid-Terrace,2012-02-22,E07000110,E14000700,Kent,2012-02-24,marketed sale,81,81,117,113.0,1.9,22,1.8,64.0,49.0,302.0,304.0,93.0,93.0,84.4,Unknown,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,70.0,0.0,From main system,Good,Good,"Suspended, insulated (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 70% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,2.4,0.0,,natural,"11, Belts Wood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2007 onwards,2012-02-24 18:11:16,owner-occupied,10.0,7.0,10014307513.0,Address Matched +1402931208452016011415275397960845,"2, West Park Road",,,ME15 7AE,8550871478,E,C,43,69,House,End-Terrace,2016-01-14,E07000110,E14000700,Kent,2016-01-14,marketed sale,36,60,427,224.0,7.2,75,3.8,122.0,61.0,1339.0,943.0,127.0,83.0,96.0,Single,Y,NODATA!,,,2107.0,100.0,"double glazing, unknown install date",Normal,1.0,4.0,4.0,0.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"2, West Park Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2016-01-14 15:27:53,owner-occupied,,,200003686610.0,Address Matched +583559430212011012115165291290984,Grenofen,Walnut Tree Lane,Loose,ME15 9RG,9471013868,E,D,49,68,House,Detached,2011-01-21,E07000110,E14000804,Kent,2011-01-21,marketed sale,44,64,391,238.0,5.9,65,3.6,52.0,52.0,930.0,562.0,137.0,119.0,89.51,Single,Y,NO DATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,90.0,2.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 90% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.36,0.0,N,natural,"Grenofen, Walnut Tree Lane, Loose",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2011-01-21 15:16:52,owner-occupied,,,200003675970.0,Address Matched +989880459842013081412300910279148,Wakerobin,Cripple Street,,ME15 6BA,4805852178,C,B,75,82,House,Detached,2013-08-14,E07000110,E14000804,Kent,2013-08-14,marketed sale,72,80,127,84.0,4.1,24,2.8,101.0,76.0,696.0,650.0,116.0,116.0,169.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,9.0,9.0,67.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 67% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"Wakerobin, Cripple Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2013-08-14 12:30:09,owner-occupied,15.0,10.0,200003721941.0,Address Matched +782640316752012043021001499720791,"4, Fordcombe Close",,,ME15 8SU,7199697968,C,B,72,90,Bungalow,Mid-Terrace,2012-04-30,E07000110,E14000700,Kent,2012-04-30,rental (social),75,93,176,25.0,1.7,34,0.3,36.0,36.0,307.0,275.0,74.0,52.0,50.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,75.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"4, Fordcombe Close",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2012-04-30 21:00:14,rental (social),8.0,6.0,200003685454.0,Address Matched +768701182352012033016290999720897,"18, Monarch Close",,,ME15 6ZS,8736296968,B,B,90,90,House,Mid-Terrace,2012-03-30,E07000110,E14000804,Kent,2012-03-30,new dwelling,94,94,38,38.0,0.5,7,0.5,42.0,42.0,189.0,189.0,92.0,92.0,74.55,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,9.0,,From main system,Good,Good,Average thermal transmittance 0.15 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.19 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.12 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.39,,,NO DATA!,"18, Monarch Close",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2012-03-30 16:29:09,,9.0,9.0,10014313144.0,Address Matched +397689972312009111716393508919067,47 Oxford Gardens,,,ME15 8FJ,779289668,C,C,75,75,House,Mid-Terrace,2009-11-17,E07000110,E14000700,Kent,2009-11-17,new dwelling,82,82,138,138.0,1.7,21,1.7,50.0,50.0,225.0,225.0,167.0,167.0,80.0,standard tariff,,NO DATA!,,,2207.0,,NO DATA!,NO DATA!,,,,4.0,0.0,From main system,Poor,Good,Average thermal transmittance 0.18 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.28 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.12 W/m?K,Very Good,Very Good,"Air source heat pump, radiators, electric",Poor,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",0.0,NO DATA!,,2.4,,,NO DATA!,47 Oxford Gardens,Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2009-11-17 16:39:35,,5.0,4.0,10014308986.0,Address Matched +634198329262011052514055637158779,"9, Victoria Street",,,ME16 8HY,7390207868,G,G,4,4,House,Mid-Terrace,2011-05-25,E07000110,E14000804,Kent,2011-05-25,marketed sale,4,5,901,896.0,15.0,177,15.0,81.0,43.0,2377.0,2395.0,160.0,160.0,82.68,Single,N,NODATA!,,,2601.0,0.0,not defined,Normal,0.0,5.0,5.0,11.0,5.0,Electric instantaneous at point of use,Very Poor,Very Poor,"Suspended, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation(assumed)",Very Poor,Very Poor,"Room heaters, dual fuel (mineral and wood)",Very Poor,Very Poor,No thermostatic control of room temperature,Poor,Poor,Low energy lighting in 11% of fixed outlets,Poor,Poor,dual fuel - mineral + wood,0.0,NO DATA!,,2.38,0.0,,natural,"9, Victoria Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2011-05-25 14:05:56,owner-occupied,9.0,1.0,200003667924.0,Address Matched +1000251739062013090218591593528587,"3, The Old Bailey",Harrietsham,,ME17 1ND,8998333178,D,B,66,90,House,Semi-Detached,2013-09-02,E07000110,E14000700,Kent,2013-09-02,marketed sale,66,92,213,34.0,2.6,41,0.5,79.0,42.0,397.0,316.0,148.0,66.0,63.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,11.0,0.0,From main system,Average,Average,"Suspended, limited insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 11% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"3, The Old Bailey, Harrietsham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1996-2002,2013-09-02 18:59:15,owner-occupied,9.0,1.0,200003704169.0,Address Matched +189623869102018122114510552482998,"133, Old Tovil Road",,,ME15 6QH,195964568,E,C,48,71,House,Semi-Detached,2018-12-21,E07000110,E14000804,Kent,2018-12-21,rental (private),50,73,364,195.0,4.9,55,2.5,94.0,63.0,1016.0,784.0,140.0,79.0,89.0,Single,Y,NODATA!,,,2107.0,95.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,50.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Mostly double glazing,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, wood logs",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"133, Old Tovil Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2018-12-21 14:51:05,rental (private),,,200003665795.0,Address Matched +432458167052010020523401292000478,Marshalls Place,Amber Lane,Chart Sutton,ME17 3SE,4843722768,E,D,45,67,House,Detached,2010-02-05,E07000110,E14000700,Kent,2010-02-05,marketed sale,45,69,335,195.0,11.0,51,6.2,174.0,134.0,1678.0,1060.0,396.0,187.0,179.38,dual,Y,NO DATA!,,,2106.0,40.0,secondary glazing,Normal,1.0,8.0,8.0,70.0,1.0,"From main system, no cylinder thermostat",Poor,Poor,"Solid, no insulation (assumed)",,,Partial secondary glazing,Poor,Poor,"Solid brick, with internal insulation",Good,Good,"Room heaters, wood logs",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Average,Average,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 70% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.1,0.0,N,natural,"Marshalls Place, Amber Lane, Chart Sutton",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2010-02-05 23:40:12,owner-occupied,,,200003720635.0,Address Matched +1607614039542018021610182156667408,"18, Tolhurst Way",Lenham,,ME17 2BY,2516236578,B,A,84,95,House,End-Terrace,2016-09-30,E07000110,E14000700,Kent,2018-02-16,new dwelling,86,96,89,14.0,1.5,16,0.3,67.0,67.0,226.0,226.0,101.0,65.0,94.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.12 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.17 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"18, Tolhurst Way, Lenham",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2018-02-16 10:18:21,unknown,11.0,11.0,10093303688.0,Address Matched +833984431232012091117191686978904,"14, Church Street",Boughton Monchelsea,,ME17 4HW,3406951078,D,B,58,82,House,Semi-Detached,2012-09-10,E07000110,E14000700,Kent,2012-09-11,marketed sale,55,83,225,86.0,6.2,40,2.2,135.0,69.0,970.0,639.0,240.0,82.0,156.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,2.0,5.0,4.0,4.0,0.0,From main system,Average,Average,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 4% of fixed outlets,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"14, Church Street, Boughton Monchelsea",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2012-09-11 17:19:16,owner-occupied,23.0,1.0,200003674435.0,Address Matched +826305968232012081807510229978306,9a Foster Street,,,ME15 6NH,6649301078,D,C,56,74,Flat,Mid-Terrace,2012-08-17,E07000110,E14000804,Kent,2012-08-18,rental (private),53,77,333,163.0,3.0,64,1.4,28.0,28.0,535.0,305.0,85.0,51.0,46.0,Single,Y,Ground,N,,2104.0,25.0,double glazing installed before 2002,Normal,1.0,3.0,3.0,100.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Some double glazing,Poor,Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,3.35,,0.0,,natural,9a Foster Street,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2012-08-18 07:51:02,rental (private),7.0,7.0,, +866964911652013010720224499929503,"21, Plumpton Walk",,,ME15 8UQ,5314193078,C,B,72,86,House,Mid-Terrace,2012-12-18,E07000110,E14000700,Kent,2013-01-07,rental (social),74,88,153,54.0,2.3,29,0.9,68.0,45.0,397.0,371.0,107.0,71.0,79.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,More Than Typical,1.0,3.0,3.0,50.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"21, Plumpton Walk",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1976-1982,2013-01-07 20:22:44,rental (social),10.0,5.0,200003725592.0,Address Matched +395354759132009111010131294068598,"22, Melrose Close",,,ME15 6ZE,5834569668,B,B,89,90,Flat,NO DATA!,2009-11-09,E07000110,E14000804,Kent,2009-11-10,new dwelling,89,89,105,102.0,0.8,16,0.8,37.0,30.0,184.0,185.0,68.0,68.0,47.98,standard tariff,,mid floor,,,2110.0,,NO DATA!,NO DATA!,,,,9.0,0.0,From main system,Very Good,Very Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.20 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.10 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Very Good,Very Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"22, Melrose Close",Maidstone,Maidstone and The Weald,MAIDSTONE,,2009-11-10 10:13:12,,,,10014307004.0,Address Matched +1365919419542015092023422736959388,"27, South Bank",Sutton Valence,,ME17 3BE,4561819378,C,B,71,84,House,Semi-Detached,2015-09-18,E07000110,E14000700,Kent,2015-09-20,marketed sale,68,82,196,98.0,3.1,35,1.6,68.0,68.0,528.0,485.0,138.0,84.0,89.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,80.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"27, South Bank, Sutton Valence",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2015-09-20 23:42:27,owner-occupied,,,200003696372.0,Address Matched +1243396549062014120117262450298714,2 Parkgate Cottage,Ashford Road,Hollingbourne,ME17 1PG,1567450378,E,C,53,74,House,Semi-Detached,2014-12-01,E07000110,E14000700,Kent,2014-12-01,marketed sale,48,70,294,148.0,4.8,57,2.5,84.0,52.0,912.0,785.0,126.0,79.0,84.0,Single,Y,NODATA!,,,2106.0,95.0,double glazing installed during or after 2002,Normal,1.0,4.0,4.0,40.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Mostly double glazing,Good,Good,"Solid brick, as built, no insulation (assumed)",Poor,Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 40% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"2 Parkgate Cottage, Ashford Road, Hollingbourne",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2014-12-01 17:26:24,owner-occupied,10.0,4.0,10091194409.0,Address Matched +1142597349202014051818123622349858,"26, College Road",,,ME15 6YF,7259043278,E,C,41,74,Flat,End-Terrace,2014-05-15,E07000110,E14000804,Kent,2014-05-18,rental (private),39,66,621,320.0,3.5,110,1.8,23.0,25.0,716.0,195.0,127.0,137.0,32.0,dual,N,Ground,N,,2602.0,70.0,secondary glazing,Normal,1.0,2.0,2.0,100.0,0.0,Electric instantaneous at point of use,Very Poor,Very Poor,"Solid, no insulation (assumed)",,,Partial secondary glazing,Average,Average,"Sandstone, as built, no insulation (assumed)",Very Poor,Very Poor,,,,(another dwelling above),,,"Room heaters, electric",Poor,Very Poor,Appliance thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,unheated corridor,5.09,,0.0,,natural,"26, College Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2014-05-18 18:12:36,rental (private),3.0,3.0,200003693292.0,Address Matched +621006210412011042116352891290082,2 Spring Cottages,Bottlescrew Hill,Boughton Monchelsea,ME17 4LY,261016868,D,C,64,71,House,Mid-Terrace,2011-04-21,E07000110,E14000700,Kent,2011-04-21,marketed sale,63,71,236,184.0,3.2,45,2.5,71.0,37.0,468.0,408.0,129.0,98.0,69.6,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,11.0,1.0,From main system,Average,Average,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, insulated (assumed)",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 11% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,2.3,0.0,,natural,"2 Spring Cottages, Bottlescrew Hill, Boughton Monchelsea",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2011-04-21 16:35:28,owner-occupied,9.0,1.0,200003674825.0,Address Matched +1813311822702020072716054877102638,Flat 33 Ulysses House,Rosalind Drive,,ME14 2FL,3781021778,B,B,85,85,Flat,Mid-Terrace,2020-07-27,E07000110,E14000804,Kent,2020-07-27,new dwelling,90,90,71,71.0,0.9,12,0.9,60.0,60.0,134.0,134.0,97.0,97.0,71.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.34 W/m-¦K,Good,Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Flat 33 Ulysses House, Rosalind Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2020-07-27 16:05:48,unknown,14.0,14.0,10094441421.0,Address Matched +568417432252018020517164699080581,Middle Flat,"48, Bower Lane",,ME16 8EJ,5140291868,E,B,42,82,Flat,Semi-Detached,2018-02-05,E07000110,E14000804,Kent,2018-02-05,rental (private),35,70,631,255.0,4.5,107,1.8,36.0,36.0,348.0,140.0,646.0,126.0,43.0,dual,N,Ground,N,,2401.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,2.0,100.0,0.0,"Electric immersion, off-peak",Very Poor,Poor,(another dwelling below),NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,Portable electric heaters (assumed),,,(another dwelling above),,,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,no corridor,,,,N,natural,"Middle Flat, 48, Bower Lane",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2018-02-05 17:16:46,rental (private),,,200003667616.0,Address Matched +927002019542014060610354809840358,"21, Cranham Square",Marden,,TN12 9TG,8535518078,C,C,73,78,Flat,Enclosed Mid-Terrace,2014-06-05,E07000110,E14000804,Kent,2014-06-06,marketed sale,75,81,161,119.0,1.8,31,1.4,65.0,40.0,346.0,270.0,88.0,89.0,60.0,Single,Y,3rd,Y,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,38.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, partial insulation (assumed)",Average,Average,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 38% of fixed outlets,Average,Average,mains gas (not community),0.0,unheated corridor,4.97,,0.0,,natural,"21, Cranham Square, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1976-1982,2014-06-06 10:35:48,owner-occupied,8.0,3.0,200003710680.0,Address Matched +452454007032010031122155465968909,Flat 10 St. Luke's Court,"50-54, Boxley Road",,ME14 2GA,955963768,D,C,64,76,Flat,Detached,2010-03-11,E07000110,E14000804,Kent,2010-03-11,rental (private),64,66,363,335.0,2.4,55,2.2,34.0,26.0,225.0,191.0,205.0,107.0,44.43,dual,N,2nd,N,4.0,2401.0,100.0,double glazing installed before 2002,Normal,1.0,2.0,2.0,71.0,0.0,"Electric immersion, off-peak",Very Poor,Poor,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,"Pitched, 150mm loft insulation",Good,Good,Electric storage heaters,Poor,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 71% of fixed outlets,Very Good,Very Good,electricity - this is for backwards compatibility only and should not be used,0.0,unheated corridor,3.23,2.35,0.0,N,natural,"Flat 10 St. Luke's Court, 50-54, Boxley Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1991-1995,2010-03-11 22:15:54,rental (private),,,200003655105.0,Address Matched +683920749222011092911583160118629,8 Mainy House,Church Street,,ME14 1FG,2625450968,C,C,80,80,Flat,NO DATA!,2011-09-29,E07000110,E14000804,Kent,2011-09-29,new dwelling,81,82,133,130.0,1.5,24,1.5,47.0,35.0,213.0,215.0,97.0,97.0,64.5,standard tariff,,top floor,,,,,NO DATA!,NO DATA!,,,,6.0,,From main system,Average,Good,(other premises below),,,Fully double glazed,Good,Good,Average thermal transmittance 0.25 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.20 W/m?K,Good,Good,"Air source heat pump, underfloor, electric",Good,Very Good,Programmer and at least two room thermostats,Good,Good,Low energy lighting in 67% of fixed outlets,Good,Good,"Electricity: electricity, unspecified tariff",0.0,NO DATA!,,2.8,,,NO DATA!,"8 Mainy House, Church Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2011-09-29 11:58:31,,9.0,6.0,10014306382.0,Address Matched +449777067532015032014011259268606,"88, Holland Road",,,ME14 1UT,6699643768,D,B,59,83,House,Semi-Detached,2015-03-20,E07000110,E14000804,Kent,2015-03-20,marketed sale,49,78,258,98.0,8.4,46,3.2,94.0,95.0,1500.0,792.0,179.0,88.0,183.0,dual,Y,NODATA!,,,2104.0,40.0,double glazing installed before 2002,Normal,1.0,8.0,8.0,100.0,0.0,From main system,Good,Good,"To unheated space, no insulation (assumed)",NO DATA!,,Partial double glazing,Poor,Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"88, Holland Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2015-03-20 14:01:12,owner-occupied,,,200003699070.0,Address Matched +258147434132019040411142286068904,"21, The Cockpit",Marden,,TN12 9TQ,3446999568,D,B,67,89,House,Mid-Terrace,2019-04-03,E07000110,E14000804,Kent,2019-04-04,rental (private),62,89,233,52.0,3.2,41,0.8,58.0,58.0,489.0,318.0,163.0,69.0,78.0,Unknown,Y,NODATA!,,,2107.0,100.0,"double glazing, unknown install date",Normal,1.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"21, The Cockpit, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1967-1975,2019-04-04 11:14:22,rental (private),,,200003726987.0,Address Matched +525709489602010081015135370802668,Iona,Orchard Glade,Headcorn,TN27 9SS,8692188768,B,B,85,86,Bungalow,Detached,2010-02-26,E07000110,E14000700,Kent,2010-08-10,new dwelling,84,85,106,104.0,1.6,18,1.5,60.0,48.0,280.0,282.0,49.0,49.0,89.1,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,,From main system |O'r brif system,Very Good,Very Good,Average thermal transmittance 0.20 W/m?K|Trawsyriannedd thermol cyfartalog 0.20 W/m?K,Very Good,Very Good,High performance glazing|Ffenestri perfformiad uchel,Very Good,Very Good,Average thermal transmittance 0.24 W/m?K|Trawsyriannedd thermol cyfartalog 0.24 W/m?K,Very Good,Very Good,None|Dim,,,Average thermal transmittance 0.15 W/m?K|Trawsyriannedd thermol cyfartalog 0.15 W/m?K,Very Good,Very Good,"Boiler and radiators, |Bwyler a rheiddiaduron, |mains gas|nwy prif gyflenwad",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 75% of fixed outlets|Goleuadau ynni-isel mewn 75% o'r mannau gosod,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.35,,,NO DATA!,"Iona, Orchard Glade, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,NO DATA!,2010-08-10 15:13:53,,,,10014311811.0,Address Matched +1608784389922018061111044896398998,Flat 2,"26, Bower Place",,ME16 8BH,9922836578,C,C,71,78,Flat,Semi-Detached,2018-06-11,E07000110,E14000804,Kent,2018-06-11,marketed sale,76,86,301,184.0,1.1,53,0.7,40.0,20.0,224.0,154.0,58.0,58.0,21.0,Unknown,Y,2nd,N,,2102.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,0.0,0.0,From main system,Good,Good,(another dwelling below),NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,unheated corridor,6.84,,,N,natural,"Flat 2, 26, Bower Place",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2018-06-11 11:04:48,owner-occupied,,,200003668823.0,Address Matched +596613329502016012022125781460618,"71, St. Lukes Road",,,ME14 5AS,1579024868,D,B,57,85,House,Semi-Detached,2016-01-09,E07000110,E14000804,Kent,2016-01-20,rental (social),49,83,295,84.0,5.3,52,1.5,105.0,63.0,939.0,481.0,147.0,87.0,101.0,Unknown,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,33.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 33% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"71, St. Lukes Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2016-01-20 22:12:57,rental (social),,,200003705959.0,Address Matched +367035717212009092110395806910065,"369, Tonbridge Road",,,ME16 8NH,545767668,E,D,47,60,House,Mid-Terrace,2009-09-18,E07000110,E14000804,Kent,2009-09-21,rental (private),39,50,452,337.0,5.6,81,4.3,58.0,34.0,715.0,574.0,165.0,119.0,68.3,Single,Y,NO DATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,1.0,4.0,4.0,28.0,1.0,From main system,Average,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, coal",,,"Pitched, 150mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Average,Good,Programmer and room thermostat,Poor,Poor,Low energy lighting in 28% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.44,0.0,N,natural,"369, Tonbridge Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2009-09-21 10:39:58,rental (private),,,200003695396.0,Address Matched +1104895527432014031712590089978703,"155, Sutton Road",,,ME15 9AB,2379770278,E,B,50,85,House,Semi-Detached,2014-03-17,E07000110,E14000700,Kent,2014-03-17,marketed sale,45,86,320,67.0,5.0,62,1.1,49.0,49.0,821.0,417.0,229.0,76.0,80.0,Single,Y,NODATA!,,,2107.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,100.0,0.0,"From main system, no cylinder thermostat",Poor,Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"155, Sutton Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2014-03-17 12:59:00,owner-occupied,8.0,8.0,200003713333.0,Address Matched +190745849132019112517444811268494,10 Robins Court,Wordsworth Road,Penenden Heath,ME14 2HJ,4411474568,C,C,69,77,Flat,Enclosed End-Terrace,2019-11-25,E07000110,E14000804,Kent,2019-11-25,marketed sale,69,79,239,160.0,2.1,42,1.4,49.0,49.0,363.0,247.0,89.0,79.0,49.0,Single,Y,1st,N,,2104.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,80.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,1.19,,,N,natural,"10 Robins Court, Wordsworth Road, Penenden Heath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2019-11-25 17:44:48,owner-occupied,,,200003707933.0,Address Matched +1511565689332017011613342227978800,"45, Buffkyn Way",,,ME15 8FY,8027849478,B,A,83,94,House,Semi-Detached,2017-01-16,E07000110,E14000700,Kent,2017-01-16,new dwelling,85,96,96,15.0,1.5,17,0.3,70.0,70.0,243.0,245.0,102.0,54.0,89.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"45, Buffkyn Way",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2017-01-16 13:34:22,unknown,1.0,1.0,10091193677.0,Address Matched +861653059262012112922582133818342,"30, Reculver Walk",,,ME15 8QW,4321553078,C,B,72,86,House,Mid-Terrace,2012-11-29,E07000110,E14000700,Kent,2012-11-29,rental (social),70,86,153,62.0,3.2,29,1.3,65.0,65.0,515.0,407.0,116.0,79.0,109.0,Unknown,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,83.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 83% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"30, Reculver Walk",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2012-11-29 22:58:21,rental (social),12.0,10.0,200003725737.0,Address Matched +1310089112722020063015514295908990,Dourne Farm,Marden Thorn,Marden,TN12 9LH,9970125378,E,C,47,78,House,Detached,2020-06-30,E07000110,E14000804,Kent,2020-06-30,marketed sale,40,72,192,75.0,16.0,51,6.7,156.0,160.0,2246.0,1060.0,207.0,90.0,316.0,dual,N,NODATA!,,,2106.0,0.0,not defined,Normal,2.0,10.0,10.0,100.0,1.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Single glazed,Very Poor,Very Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, oil",Average,Average,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,oil (not community),0.0,NO DATA!,,,,N,natural,"Dourne Farm, Marden Thorn, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: before 1900,2020-06-30 15:51:42,owner-occupied,,,200003735504.0,Address Matched +1699851399042019022209410564212298,"6, Brogden Crescent",Leeds,,ME17 1RA,3073592678,C,B,76,89,House,End-Terrace,2019-02-21,E07000110,E14000700,Kent,2019-02-22,non marketed sale,70,88,181,62.0,2.6,33,0.9,112.0,65.0,544.0,376.0,170.0,70.0,79.0,dual,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,27.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 27% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"6, Brogden Crescent, Leeds",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1976-1982,2019-02-22 09:41:05,owner-occupied,,,200003698022.0,Address Matched +1527696239922017031508505620008123,"8, Flume End",,,ME15 6FW,2201360578,C,B,69,86,House,Semi-Detached,2017-03-10,E07000110,E14000804,Kent,2017-03-15,marketed sale,67,86,240,87.0,2.5,42,0.9,47.0,47.0,425.0,369.0,121.0,75.0,58.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,85.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 85% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"8, Flume End",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2017-03-15 08:50:56,owner-occupied,,,200003715907.0,Address Matched +1669473062262020051112053350648410,"6, North Street",Sutton Valence,,ME17 3HS,1525670678,C,B,72,91,House,Mid-Terrace,2020-02-24,E07000110,E14000700,Kent,2020-05-11,rental,76,95,210,21.0,1.5,37,0.2,35.0,35.0,316.0,281.0,73.0,48.0,40.0,Single,Y,NODATA!,,,2110.0,100.0,"double glazing, unknown install date",Normal,1.0,3.0,3.0,100.0,0.0,From main system,Good,Good,"Solid, insulated",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, with internal insulation",Good,Good,"Room heaters, electric",,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and underfloor heating, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"6, North Street, Sutton Valence",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2020-05-11 12:05:33,owner-occupied,,,200003696938.0,Address Matched +12a6057ebaf9886831c1ed1b88ac2b8d4b764ad1b6d84b10de4221a7a95f46a4,FLAT 8,THURNHAM HOUSE,ANGELICA SQUARE,ME16 0FY,10001664340,C,C,79,79,Flat,Enclosed End-Terrace,2021-07-07,E07000110,E14000804,Kent,2021-07-08,marketed sale,80,80,122,122.0,1.8,21,1.8,75.0,75.0,263.0,263.0,119.0,119.0,82.0,Single,Y,02,Y,,,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,(another dwelling below),,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,heated corridor,,2.55,0.0,N,natural,"FLAT 8, THURNHAM HOUSE, ANGELICA SQUARE",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2021-07-08 08:33:14,Owner-occupied,10.0,,10022895541.0,Energy Assessor +283114303352009051615084109910468,"44, Fauchons Lane",Bearsted,,ME14 4AH,4856391668,G,E,17,52,Bungalow,Detached,2009-05-16,E07000110,E14000700,Kent,2009-05-16,marketed sale,14,45,774,367.0,13.0,130,6.3,97.0,48.0,1604.0,882.0,370.0,109.0,81.76,Single,Y,NO DATA!,,,2104.0,0.0,INVALID!,Normal,0.0,4.0,4.0,0.0,0.0,"From main system, no cylinderstat",Very Poor,Very Poor,"Suspended, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"System built, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Poor,Poor,Programmer and room thermostat,Poor,Poor,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,0.0,N,natural,"44, Fauchons Lane, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2009-05-16 15:08:41,owner-occupied,,,200003687253.0,Address Matched +3e37f2a3edf95e589cf356cd4d6fc499ef8ff0ec1f6105e1c94d58565ac804fd,5,Bella Rosa Drive,Langley,ME17 3US,10001520848,B,A,84,95,House,End-Terrace,2021-08-17,E07000110,E14000700,Kent,2021-08-17,new dwelling,86,97,87,6.0,1.3,15,0.1,74.0,74.0,229.0,229.0,69.0,42.0,86.0,standard tariff,,,N,,,100.0,,,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.39,,,,"5, Bella Rosa Drive, Langley",Maidstone,Faversham and Mid Kent,Maidstone,2021,2021-08-17 14:10:25,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,15.0,,10095448352.0,Address Matched +231130420142009022320445351812178,"18, Castle Road",,,ME16 0TB,4129628568,D,C,67,74,House,Semi-Detached,2009-02-23,E07000110,E14000804,Kent,2009-02-23,marketed sale,62,70,294,234.0,3.0,49,2.4,41.0,31.0,428.0,345.0,91.0,91.0,60.55,dual,Y,NO DATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,1.0,3.0,3.0,70.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Very Good,Very Good,Programmer and room thermostat,Poor,Poor,Low energy lighting in 70% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.3,0.0,N,natural,"18, Castle Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2009-02-23 20:44:53,owner-occupied,,,200003662385.0,Address Matched +994368089302013082107080813272408,"275, Boxley Road",Penenden Heath,,ME14 2AE,8342682178,E,B,54,81,House,Detached,2013-08-20,E07000110,E14000804,Kent,2013-08-21,marketed sale,44,76,267,96.0,6.6,56,2.5,79.0,62.0,1055.0,600.0,141.0,82.0,118.0,Unknown,Y,NODATA!,,,2106.0,100.0,secondary glazing,Normal,0.0,6.0,6.0,73.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Full secondary glazing,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, coal",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 73% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"275, Boxley Road, Penenden Heath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2013-08-21 07:08:08,owner-occupied,11.0,8.0,200003706249.0,Address Matched +3e418186e7ddab0fe8c613c24cafdea19ea7f933a6130ba4f1688c9bf09d467f,50 ST. PHILIPS AVENUE,,,ME15 7SW,10001551615,D,B,67,82,House,Mid-Terrace,2021-07-29,E07000110,E14000804,Kent,2021-07-29,marketed sale,65,80,213,109.0,3.3,37,1.7,87.0,87.0,619.0,541.0,101.0,70.0,88.0,Single,Y,,,,,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,78.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,"Room heaters, electric",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 78% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.47,0.0,N,natural,50 ST. PHILIPS AVENUE,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2021-07-29 12:53:44,Owner-occupied,9.0,,200003686769.0,Energy Assessor +1004044399922015091011362893608335,"90, Upper Fant Road",,,ME16 8BU,3951953178,D,B,63,89,House,Mid-Terrace,2015-09-10,E07000110,E14000804,Kent,2015-09-10,marketed sale,58,89,260,47.0,3.3,46,0.6,72.0,48.0,600.0,331.0,115.0,67.0,73.0,Single,Y,NODATA!,,,2106.0,50.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,50.0,0.0,From main system,Good,Good,"Suspended, insulated",NO DATA!,,Partial double glazing,Poor,Poor,"Granite or whinstone, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"90, Upper Fant Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2015-09-10 11:36:28,owner-occupied,,,200003657777.0,Address Matched +50970180922009011514323816548431,12 Clock House Rise,Coxheath,,ME17 4GS,3140846568,C,C,79,79,House,Mid-Terrace,2009-01-14,E07000110,E14000804,Kent,2009-01-15,new dwelling,80,80,146,146.0,1.9,0,1.9,37.0,37.0,339.0,339.0,87.0,87.0,78.56,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,19.0,,SAP05:Hot-Water,,,Average thermal transmittance 0.20 W/m²K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.20 W/m²K,Very Good,Very Good,SAP05:Secondary-Heating,,,Average thermal transmittance 0.19 W/m²K,Good,Good,SAP05:Main-Heating,,,SAP05:Main-Heating-Controls,,,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,,,NO DATA!,"12 Clock House Rise, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2009-01-15 14:32:38,,19.0,19.0,10022900532.0,Address Matched +941843575252013053122370792770000,"92, Courtenay Road",,,ME15 6UN,3529078,C,B,72,88,House,Mid-Terrace,2013-05-31,E07000110,E14000804,Kent,2013-05-31,rental (social),73,89,166,48.0,2.2,32,0.7,53.0,40.0,333.0,322.0,139.0,74.0,68.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,67.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 67% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"92, Courtenay Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2013-05-31 22:37:07,rental (social),9.0,6.0,200003682599.0,Address Matched +963021269942013070415510818070948,4 Shirley Court,Wallis Avenue,,ME15 9JW,7981660178,D,C,62,75,Flat,End-Terrace,2013-07-04,E07000110,E14000700,Kent,2013-07-04,marketed sale,50,57,410,341.0,3.2,73,2.6,32.0,32.0,274.0,235.0,280.0,103.0,44.0,dual,N,1st,Y,,2401.0,100.0,double glazing installed before 2002,Normal,0.0,2.0,2.0,100.0,0.0,"Electric immersion, off-peak",Poor,Very Poor,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,Portable electric heaters (assumed),,,"Pitched, 150 mm loft insulation",Good,Good,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,no corridor,,,0.0,,natural,"4 Shirley Court, Wallis Avenue",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2013-07-04 15:51:08,owner-occupied,6.0,6.0,200003683153.0,Address Matched +397656629062012090314344519578602,"55, Oxford Gardens",,,ME15 8FJ,199289668,C,C,78,78,Flat,Semi-Detached,2012-09-03,E07000110,E14000700,Kent,2012-09-03,rental (social),66,66,223,223.0,2.7,40,2.7,42.0,42.0,181.0,181.0,192.0,192.0,69.0,Unknown,N,3rd,Y,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,From main system,Average,Very Poor,(other premises below),,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, electric",Poor,Very Poor,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,unheated corridor,2.35,,0.0,,natural,"55, Oxford Gardens",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2007 onwards,2012-09-03 14:34:45,rental (social),10.0,10.0,10014308994.0,Address Matched +263398550022009040915363390318521,"29, Waterlow Road",,,ME14 2TR,2936540668,D,D,67,68,House,Mid-Terrace,2009-04-09,E07000110,E14000804,Kent,2009-04-09,marketed sale,62,63,285,278.0,3.2,48,3.1,54.0,30.0,408.0,413.0,70.0,70.0,66.47,Single,Y,NO DATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,2.0,4.0,4.0,18.0,3.0,From main system,Very Good,Very Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Very Good,Very Good,Programmer and room thermostat,Poor,Poor,Low energy lighting in 18% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.5,0.0,N,natural,"29, Waterlow Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2009-04-09 15:36:33,owner-occupied,,,200003703130.0,Address Matched +722184469962011111417470163648539,"179, Boxley Road",,,ME14 2TL,3651623968,D,D,60,65,House,Mid-Terrace,2011-11-14,E07000110,E14000804,Kent,2011-11-14,marketed sale,55,62,249,209.0,5.1,48,4.3,80.0,53.0,816.0,713.0,129.0,108.0,107.1,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,6.0,6.0,50.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,2.44,0.0,,natural,"179, Boxley Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2011-11-14 17:47:01,owner-occupied,12.0,6.0,200003703045.0,Address Matched +1384991259542016042716072846062838,Flat 25,Miller House,43-51 Lower Stone Street,ME15 6GB,7527250478,D,D,58,58,Flat,NO DATA!,2016-04-27,E07000110,E14000804,Kent,2016-04-27,none of the above,42,42,489,489.0,4.3,83,4.3,38.0,38.0,633.0,633.0,151.0,151.0,52.0,off-peak 10 hour,,mid floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Poor,Poor,Average thermal transmittance 1.20 W/m-¦K,Very Poor,Very Poor,Fully double glazed,Good,Good,Average thermal transmittance 0.89 W/m-¦K,Average,Average,,,,(other premises above),,,"Boiler and radiators, electric",Poor,Very Poor,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"Flat 25, Miller House, 43-51 Lower Stone Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2016-04-27 16:07:28,unknown,4.0,4.0,10091196122.0,Address Matched +932610095732013051616245167978107,"9, Longshaw Road",,,ME15 9JD,9797158078,C,B,69,89,House,Mid-Terrace,2013-05-16,E07000110,E14000700,Kent,2013-05-16,none of the above,67,91,174,39.0,3.2,34,0.8,51.0,51.0,491.0,324.0,152.0,77.0,94.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"9, Longshaw Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2013-05-16 16:24:51,owner-occupied,10.0,10.0,200003682320.0,Address Matched +308610650642009061821503560319768,"21, Ballard Close",Marden,,TN12 9HW,9644653668,D,D,56,64,House,Enclosed End-Terrace,2009-06-16,E07000110,E14000804,Kent,2009-06-18,rental (private),48,53,544,484.0,3.5,82,3.1,45.0,22.0,359.0,300.0,107.0,107.0,52.91,dual,N,NO DATA!,,,2401.0,100.0,double glazing installed before 2002,Normal,0.0,2.0,2.0,0.0,0.0,"Electric immersion, off-peak",Poor,Poor,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,"Pitched, 100mm loft insulation",Average,Average,Electric storage heaters,Poor,Very Poor,Manual charge control,Poor,Poor,No low energy lighting,Very Poor,Very Poor,electricity - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.3,0.0,N,natural,"21, Ballard Close, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1983-1990,2009-06-18 21:50:35,rental (private),,,200003708818.0,Address Matched +352561822232012121722193461968898,"18, Kingfisher Meadow",,,ME16 8RB,2891866668,C,B,79,83,Flat,Mid-Terrace,2012-12-17,E07000110,E14000804,Kent,2012-12-17,marketed sale,73,73,197,197.0,1.9,35,1.9,47.0,39.0,176.0,133.0,130.0,105.0,55.0,Unknown,N,1st,N,,2605.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,64.0,0.0,"Electric immersion, off-peak",Average,Very Poor,"To external air, insulated (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Room heaters, electric",Poor,Very Poor,Programmer and room thermostat,Good,Good,Low energy lighting in 64% of fixed outlets,Good,Good,electricity (not community),0.0,unheated corridor,6.14,,0.0,,natural,"18, Kingfisher Meadow",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2012-12-17 22:19:34,owner-occupied,11.0,7.0,10022892229.0,Address Matched +655405659202011101418225382899148,Flat 56 Tennyson Lodge,James Whatman Way,,ME14 1FR,3263358868,C,C,78,78,Flat,End-Terrace,2011-10-14,E07000110,E14000804,Kent,2011-10-14,new dwelling,89,89,119,115.0,0.9,15,0.8,45.0,34.0,231.0,233.0,99.0,99.0,57.9,standard tariff,,top floor,,,,,NO DATA!,NO DATA!,,,,4.0,,"Community scheme, no cylinder thermostat",Good,Very Good,(other premises below),,,Fully double glazed,Good,Good,Average thermal transmittance 0.26 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.22 W/m?K,Good,Good,Community scheme,Good,Very Good,"Flat rate charging, programmer and TRVs",Average,Average,Low energy lighting in 67% of fixed outlets,Good,Good,NO DATA!,0.0,NO DATA!,,2.4,,,NO DATA!,"Flat 56 Tennyson Lodge, James Whatman Way",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2011-10-14 18:22:53,,6.0,4.0,10014312778.0,Address Matched +1185013609062014080517391056658674,"10, Penhurst Close",Weavering,,ME14 5BT,7528046278,B,A,85,95,House,Mid-Terrace,2014-08-05,E07000110,E14000700,Kent,2014-08-05,new dwelling,87,96,77,9.0,1.4,14,0.2,69.0,69.0,226.0,226.0,103.0,69.0,102.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.14 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"10, Penhurst Close, Weavering",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2014-08-05 17:39:10,unknown,7.0,7.0,10014315546.0,Address Matched +3e7bc0a2d9e4e69229bb69ecc2e24fcb5fd7f0abd01694b2d279a6b32121d893,146 Howard Drive,,,ME16 0QB,10001393320,D,B,61,86,Bungalow,Semi-Detached,2021-08-17,E07000110,E14000804,Kent,2021-08-19,marketed sale,59,87,293,69.0,2.9,51,0.7,57.0,57.0,483.0,364.0,150.0,61.0,56.0,Single,Y,,,,,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,83.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,"Room heaters, electric",,,"Pitched, 270 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 83% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.47,0.0,N,natural,146 Howard Drive,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2021-08-19 07:37:04,Owner-occupied,6.0,,200003703312.0,Energy Assessor +1665200821832018092116524879278408,"5, Blossom Way",Marden,,TN12 9GA,2879440678,B,B,85,87,House,Detached,2018-09-21,E07000110,E14000804,Kent,2018-09-21,new dwelling,86,88,72,64.0,2.0,12,1.7,89.0,89.0,397.0,398.0,106.0,60.0,169.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.16 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.28 W/m-¦K,Very Good,Very Good,"Room heaters, wood logs",,,Average thermal transmittance 0.12 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"5, Blossom Way, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,NO DATA!,2018-09-21 16:52:48,owner-occupied,45.0,45.0,10093305193.0,Address Matched +171048110922008101816560422138498,Magnolia Cottage,Linton Park,Linton,ME17 4AN,9297182568,F,D,38,59,House,Detached,2008-10-17,E07000110,E14000804,Kent,2008-10-18,rental (private),32,50,414,268.0,8.4,87,5.4,56.0,43.0,989.0,597.0,131.0,121.0,96.1,Single,N,NO DATA!,,,2106.0,0.0,INVALID!,Normal,0.0,5.0,5.0,70.0,1.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, oil",Average,Average,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 70% of fixed outlets,Very Good,Very Good,oil - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.43,0.0,N,natural,"Magnolia Cottage, Linton Park, Linton",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2008-10-18 16:56:04,rental (private),,,10014309585.0,Address Matched +756937279022012030420584886148502,Flat 21 Willowbrook Place,Regent Close,,ME15 6ZP,829706968,B,B,86,86,Flat,NO DATA!,2012-03-04,E07000110,E14000804,Kent,2012-03-04,new dwelling,91,91,66,66.0,0.6,13,0.6,30.0,30.0,173.0,173.0,75.0,75.0,48.83,standard tariff,,top floor,,,,,NO DATA!,NO DATA!,,,,6.0,,From main system,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.20 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.12 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,,,NO DATA!,"Flat 21 Willowbrook Place, Regent Close",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2012-03-04 20:58:48,,6.0,6.0,10014313169.0,Address Matched +182294570802008110416373754380448,"21, Birch Tree Way",,,ME15 7RP,3880373568,F,E,37,50,Bungalow,Detached,2008-11-04,E07000110,E14000804,Kent,2008-11-04,marketed sale,32,43,644,492.0,5.9,108,4.5,44.0,24.0,762.0,603.0,73.0,63.0,61.92,Single,Y,NO DATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,17.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Poor,Poor,Low energy lighting in 17% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,0.0,N,natural,"21, Birch Tree Way",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2008-11-04 16:37:37,owner-occupied,,,200003696129.0,Address Matched +44017611012013090609133395070747,"31, Wilberforce Road",Coxheath,,ME17 4HD,7793153468,D,B,64,87,House,Semi-Detached,2013-09-05,E07000110,E14000804,Kent,2013-09-06,none of the above,62,87,212,57.0,3.3,41,0.9,91.0,48.0,579.0,388.0,90.0,64.0,81.0,Single,Y,NODATA!,,,2107.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,10.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 10% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"31, Wilberforce Road, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2013-09-06 09:13:33,owner-occupied,10.0,1.0,200003713519.0,Address Matched +21366249842018071710000545989848,Flat 24 Holmes Court,Lynley Close,,ME15 9GA,3829649468,C,C,73,74,Flat,Semi-Detached,2018-05-14,E07000110,E14000700,Kent,2018-07-17,rental (social),74,75,207,198.0,1.9,36,1.8,67.0,42.0,152.0,154.0,251.0,251.0,51.0,Single,Y,3rd,Y,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,40.0,0.0,From main system,Good,Good,(another dwelling below),NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 40% of fixed outlets,Average,Average,mains gas (not community),0.0,unheated corridor,2.0,,,N,natural,"Flat 24 Holmes Court, Lynley Close",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2007 onwards,2018-07-17 10:00:05,rental (social),,,10022895345.0,Address Matched +720460790252011110410254291099795,"583, Loose Road",,,ME15 9UH,7587013968,C,C,71,72,House,Semi-Detached,2011-11-03,E07000110,E14000804,Kent,2011-11-04,marketed sale,70,70,165,162.0,3.5,32,3.4,76.0,54.0,571.0,574.0,90.0,90.0,109.38,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,8.0,8.0,60.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 60% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,2.45,0.0,,natural,"583, Loose Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2011-11-04 10:25:42,owner-occupied,15.0,9.0,200003675412.0,Address Matched +288197410102009052617000369212468,"43, Hackney Road",,,ME16 8LN,6156712668,D,C,68,75,House,Semi-Detached,2009-05-26,E07000110,E14000804,Kent,2009-05-26,marketed sale,63,71,248,197.0,3.7,41,3.0,56.0,43.0,509.0,419.0,106.0,92.0,89.94,Single,Y,NO DATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,1.0,4.0,4.0,70.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Poor,Poor,Low energy lighting in 70% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.53,0.0,N,natural,"43, Hackney Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2009-05-26 17:00:03,owner-occupied,,,200003655771.0,Address Matched +437397762032010021412355303968901,"40, Tydeman Road",Bearsted,,ME15 8LU,6123952768,E,C,53,78,House,Mid-Terrace,2010-02-13,E07000110,E14000700,Kent,2010-02-14,rental (private),47,75,425,193.0,4.3,71,2.0,60.0,31.0,573.0,306.0,200.0,104.0,61.1,Single,Y,NO DATA!,,,2102.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,9.0,0.0,"From main system, no cylinder thermostat",Poor,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Average,Good,"Programmer, no room thermostat",Very Poor,Very Poor,Low energy lighting in 9% of fixed outlets,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.42,0.0,N,natural,"40, Tydeman Road, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2010-02-14 12:35:53,rental (private),,,200003686185.0,Address Matched +1077397619262014012411373498948424,Chestnut Lodge,Huntsman Lane,,ME14 5DR,2988188178,B,B,82,82,Bungalow,Detached,2014-01-24,E07000110,E14000804,Kent,2014-01-24,new dwelling,84,84,94,94.0,1.6,18,1.6,51.0,51.0,282.0,282.0,90.0,90.0,90.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.12 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.19 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Chestnut Lodge, Huntsman Lane",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2014-01-24 11:37:34,NO DATA!,24.0,24.0,10014315358.0,Address Matched +350601659342013102016264165679738,Flat 65 Pevensey Court,St. Peters Street,,ME16 0GQ,5313156668,B,B,86,87,Flat,Mid-Terrace,2013-10-17,E07000110,E14000804,Kent,2013-10-20,marketed sale,80,81,128,123.0,1.6,23,1.5,81.0,52.0,72.0,76.0,135.0,135.0,71.0,dual,N,2nd,N,,2402.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,43.0,0.0,"Electric immersion, off-peak",Average,Very Poor,(other premises below),,,Fully double glazed,Good,Good,"Timber frame, as built, insulated (assumed)",Good,Good,Portable electric heaters (assumed),,,(another dwelling above),,,Electric storage heaters,Average,Very Poor,Automatic charge control,Average,Average,Low energy lighting in 43% of fixed outlets,Average,Average,electricity (not community),0.0,unheated corridor,5.45,,0.0,,natural,"Flat 65 Pevensey Court, St. Peters Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2013-10-20 16:26:41,owner-occupied,7.0,3.0,10022893662.0,Address Matched +42505350242008111815550358489738,Flat 3,203 Boxley Road,,ME14 2TL,3225054568,E,C,54,76,Maisonette,Mid-Terrace,2008-11-17,E07000110,E14000804,Kent,2008-11-18,rental (private),69,67,257,271.0,2.5,39,2.7,53.0,36.0,311.0,201.0,240.0,111.0,33.69,Unknown,N,2nd,N,4.0,2603.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,40.0,0.0,"Electric immersion, standard tariff",Very Poor,Poor,(other premises below),,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Roof room(s), insulated (assumed)",Good,Good,"Room heaters, electric",Very Poor,Poor,Programmer and appliance thermostats,Good,Good,Low energy lighting in 40% of fixed outlets,Average,Average,electricity - this is for backwards compatibility only and should not be used,0.0,unheated corridor,4.25,2.46,0.0,N,natural,"Flat 3, 203 Boxley Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2008-11-18 15:55:03,rental (private),,,10014310656.0,Address Matched +16473209962015051416380878248865,223 Wallis Place,Hart Street,,ME16 8FF,6794088468,B,B,81,82,Flat,Mid-Terrace,2015-05-14,E07000110,E14000804,Kent,2015-05-14,rental (social),86,87,107,99.0,1.0,19,0.9,62.0,39.0,173.0,176.0,88.0,88.0,51.0,Single,Y,2nd,N,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,40.0,0.0,From main system,Good,Good,(another dwelling below),NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Very Good,Very Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 40% of fixed outlets,Average,Average,mains gas (not community),0.0,unheated corridor,9.41,,,N,natural,"223 Wallis Place, Hart Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2015-05-14 16:38:08,rental (social),,,10022900831.0,Address Matched +1388232179102015112106575947052508,Flat 230 Scotney Gardens,St. Peters Street,,ME16 0GW,3196570478,C,C,74,74,Flat,End-Terrace,2015-11-20,E07000110,E14000804,Kent,2015-11-21,rental (social),57,57,389,389.0,2.4,66,2.4,39.0,39.0,237.0,237.0,116.0,116.0,36.0,dual,N,4th,Y,,2401.0,100.0,double glazing installed before 2002,Normal,0.0,1.0,1.0,80.0,0.0,"Electric immersion, off-peak",Average,Poor,(another dwelling below),NO DATA!,,Fully double glazed,Average,Average,"System built, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,"Pitched, 300 mm loft insulation",Very Good,Very Good,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,electricity (not community),0.0,unheated corridor,6.5,,,N,natural,"Flat 230 Scotney Gardens, St. Peters Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2015-11-21 06:57:59,rental (social),,,10022893597.0,Address Matched +751895830112012022017181497220099,"16, Dogwood Close",,,ME5 8XW,994075968,E,E,52,52,House,Mid-Terrace,2012-02-20,E07000110,E14000700,Kent,2012-02-20,marketed sale,56,56,313,313.0,3.5,58,3.5,35.0,35.0,404.0,404.0,412.0,412.0,60.4,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,2.0,2.0,100.0,0.0,No system present: electric immersion assumed,Very Poor,Very Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,2.371,0.0,,natural,"16, Dogwood Close",Maidstone,Faversham and Mid Kent,CHATHAM,England and Wales: 1976-1982,2012-02-20 17:18:14,owner-occupied,5.0,5.0,200003676354.0,Address Matched +1690098059922019012409262382318441,"6, Brennan Mews",Buckland Road,,ME16 0YL,4824522678,C,B,74,88,House,End-Terrace,2019-01-19,E07000110,E14000804,Kent,2019-01-24,marketed sale,73,86,158,62.0,2.5,28,1.0,110.0,69.0,383.0,362.0,118.0,71.0,91.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,42.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 42% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"6, Brennan Mews, Buckland Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2019-01-24 09:26:23,owner-occupied,,,10022896978.0,Address Matched +380271710962009101311144038278101,"20, Victoria Orchard",Queens Road,,ME16 0ED,361168668,B,B,82,85,Maisonette,Mid-Terrace,2009-10-13,E07000110,E14000804,Kent,2009-10-13,marketed sale,83,85,170,150.0,1.1,28,1.0,43.0,21.0,197.0,193.0,70.0,66.0,39.0,Single,Y,Ground,N,2.0,2107.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,0.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Poor,Poor,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.2,0.0,N,natural,"20, Victoria Orchard, Queens Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2009-10-13 11:14:40,owner-occupied,,,10022895221.0,Address Matched +429448809242015081808401870259158,"1, Draysfield",Wormshill,,ME9 0TY,2253702768,E,C,54,74,House,Detached,2015-08-15,E07000110,E14000700,Kent,2015-08-18,marketed sale,47,66,182,95.0,8.2,47,4.8,152.0,94.0,1240.0,916.0,186.0,109.0,174.0,dual,N,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,7.0,7.0,39.0,1.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 270 mm loft insulation",Good,Good,"Boiler and radiators, oil",Average,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 39% of fixed outlets,Average,Average,oil (not community),0.0,NO DATA!,,,,N,natural,"1, Draysfield, Wormshill",Maidstone,Faversham and Mid Kent,SITTINGBOURNE,England and Wales: 1967-1975,2015-08-18 08:40:18,owner-occupied,,,200003705130.0,Address Matched +493772379962018071816035646788278,"6, Castle View",,,ME14 2BY,7405756768,B,A,84,93,House,Semi-Detached,2018-07-18,E07000110,E14000804,Kent,2018-07-18,new dwelling,85,94,86,24.0,1.7,15,0.5,84.0,84.0,282.0,282.0,73.0,42.0,113.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.10 W/m+é-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.16 W/m+é-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.09 W/m+é-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"6, Castle View",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2018-07-18 16:03:56,unknown,20.0,20.0,10014306914.0,Address Matched +1a5fb713f0dce5e067abdfba670bb97a273a6cb88b2dd400517d805d59419a41,140 Bower Street,,,ME16 8BE,10001357606,D,C,64,80,House,Mid-Terrace,2021-08-26,E07000110,E14000804,Kent,2021-08-26,rental,58,76,244,124.0,3.9,43,2.0,72.0,72.0,647.0,530.0,102.0,70.0,90.0,Unknown,Y,,,,,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.4,0.0,N,natural,140 Bower Street,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2021-08-26 15:45:03,Rented (private),10.0,,200003667294.0,Energy Assessor +1586540489002017110110222155437598,The Burlington Suite Colesdane,Stede Hill,Harrietsham,ME17 1NP,8020084578,D,D,55,64,Flat,Mid-Terrace,2017-10-31,E07000110,E14000700,Kent,2017-11-01,marketed sale,68,75,133,105.0,5.2,29,4.1,130.0,130.0,1122.0,878.0,278.0,207.0,183.0,Unknown,N,Ground,N,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,67.0,1.0,From main system,Very Poor,Average,"Suspended, limited insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, LPG",Poor,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 67% of fixed outlets,Good,Good,LPG (not community),0.0,heated corridor,,,,N,natural,"The Burlington Suite Colesdane, Stede Hill, Harrietsham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1996-2002,2017-11-01 10:22:21,owner-occupied,,,200003715267.0,Address Matched +3f050ec1049d0f93ec400cedee71aeafa7b87cc2c4043f65e9624faa284e2bef,14 ELLIS FIELD,OTHAM,,ME15 8YL,10001359888,B,A,85,97,House,Semi-Detached,2021-08-31,E07000110,E14000804,Kent,2021-08-31,new dwelling,88,101,78,-18.0,1.0,14,-0.2,65.0,65.0,178.0,178.0,65.0,40.0,71.0,standard tariff,,,N,,,100.0,,,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.18 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.39,,,,"14 ELLIS FIELD, OTHAM",Maidstone,Maidstone and The Weald,OTHAM,2021,2021-08-31 08:30:57,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,11.0,,10094440515.0,Address Matched +3f06a08c6cf8d22affc857e0c17e6072bec17bd2b84d9f048ce1e540b7be8517,4 Vale Road,Loose,,ME15 0EP,10001502059,E,C,51,76,House,Semi-Detached,2021-06-07,E07000110,E14000804,Kent,2021-08-25,marketed sale,47,74,325,152.0,6.9,52,3.2,101.0,101.0,1359.0,802.0,96.0,96.0,132.0,Single,Y,,,,,100.0,double glazing installed during or after 2002,Normal,0.0,7.0,7.0,92.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Timber frame, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 92% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.57,0.0,N,natural,"4 Vale Road, Loose",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2021-08-25 19:25:51,Owner-occupied,12.0,,200003663667.0,Energy Assessor +1238132119002014111916123531040288,"2, Knott Court",,,ME14 2XH,26610378,C,B,73,89,House,Mid-Terrace,2014-11-08,E07000110,E14000804,Kent,2014-11-19,none of the above,74,90,147,42.0,2.4,28,0.7,73.0,53.0,416.0,351.0,132.0,83.0,84.0,Unknown,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,62.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 63% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"2, Knott Court",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1991-1995,2014-11-19 16:12:35,rental (social),8.0,5.0,200003704725.0,Address Matched +12a6b372dc7120ec55cd207103baa7e75bed6810b7eaf0ddd5d5cf470f4bb9aa,17 Downs Road,Penenden Heath,,ME14 2JL,10001414510,E,B,42,86,House,Semi-Detached,2021-08-17,E07000110,E14000804,Kent,2021-08-17,marketed sale,35,84,431,82.0,6.8,76,1.3,105.0,72.0,964.0,415.0,269.0,69.0,89.0,Unknown,Y,,,,,100.0,double glazing installed during or after 2002,Normal,0.0,6.0,6.0,55.0,0.0,"From main system, no cylinder thermostat",Very Poor,Very Poor,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Average,Average,Programmer and room thermostat,Average,Average,Low energy lighting in 55% of fixed outlets,Good,Good,mains gas (not community),0.0,,,2.659,0.0,N,natural,"17 Downs Road, Penenden Heath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2021-08-17 13:00:23,Owner-occupied,11.0,,200003706868.0,Energy Assessor +737225155112012010816525794020098,17 Mandeville Court,Union Street,,ME14 1JR,878544968,C,C,69,69,Flat,Enclosed Mid-Terrace,2012-01-05,E07000110,E14000804,Kent,2012-01-08,marketed sale,56,56,387,387.0,2.9,68,2.9,28.0,28.0,264.0,264.0,169.0,169.0,41.8,dual,Y,Ground,Y,,2401.0,100.0,double glazing installed before 2002,Normal,0.0,2.0,2.0,100.0,0.0,"Electric immersion, off-peak",Poor,Very Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,Portable electric heaters (assumed),,,(another dwelling above),,,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,heated corridor,,2.4,0.0,,natural,"17 Mandeville Court, Union Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1991-1995,2012-01-08 16:52:57,owner-occupied,5.0,5.0,200003699200.0,Address Matched +790426759902012052121515790829488,"8, Hayle Road",,,ME15 6PF,1920458968,F,D,32,64,House,Semi-Detached,2012-05-18,E07000110,E14000804,Kent,2012-05-21,marketed sale,29,56,410,202.0,11.0,80,5.3,104.0,62.0,1792.0,1081.0,103.0,91.0,133.0,Single,Y,NODATA!,,,2102.0,20.0,"double glazing, unknown install date",Normal,1.0,7.0,7.0,31.0,2.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Some double glazing,Very Poor,Very Poor,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,Low energy lighting in 31% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"8, Hayle Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2012-05-21 21:51:57,owner-occupied,13.0,4.0,200003692784.0,Address Matched +401202270222009112615391770408511,"9, Jamaica Terrace",Invicta Park,,ME14 2PE,1799700768,D,D,67,67,House,Mid-Terrace,2009-11-20,E07000110,E14000804,Kent,2009-11-26,marketed sale,65,65,244,244.0,3.2,40,3.2,40.0,40.0,549.0,549.0,93.0,93.0,80.6,Single,Y,NO DATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,100.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.3,0.0,N,natural,"9, Jamaica Terrace, Invicta Park",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2009-11-26 15:39:17,owner-occupied,,,200003723992.0,Address Matched +1293217902802020021709284737409948,"7, Jaggard Way",Staplehurst,,TN12 0LE,7899104378,C,B,73,87,House,Semi-Detached,2020-02-14,E07000110,E14000804,Kent,2020-02-17,marketed sale,72,86,179,70.0,2.3,32,0.9,58.0,58.0,398.0,366.0,95.0,64.0,72.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"7, Jaggard Way, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1967-1975,2020-02-17 09:28:47,owner-occupied,,,200003677663.0,Address Matched +508126559502010070300013376700828,Flat 1 Bristol House,Cambridge Crescent,,ME15 7NJ,3584857768,C,C,78,78,Flat,Semi-Detached,2010-07-02,E07000110,E14000700,Kent,2010-07-03,rental (social),74,74,196,196.0,2.1,33,2.1,33.0,33.0,338.0,338.0,85.0,85.0,63.1,Single,Y,Ground,N,2.0,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,100.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.36,0.0,N,natural,"Flat 1 Bristol House, Cambridge Crescent",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2010-07-03 00:01:33,rental (social),,,200003713043.0,Address Matched +771807299412012041816040191920695,"45, Blacksmith Drive",Weavering,,ME14 5SZ,6596917968,D,B,58,84,House,Semi-Detached,2012-04-18,E07000110,E14000700,Kent,2012-04-18,marketed sale,53,84,265,75.0,4.1,51,1.2,49.0,49.0,577.0,393.0,202.0,67.0,80.0,Single,Y,NODATA!,,,2107.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,89.0,0.0,"From main system, no cylinder thermostat",Poor,Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 89% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"45, Blacksmith Drive, Weavering",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2012-04-18 16:04:01,owner-occupied,9.0,8.0,200003673001.0,Address Matched +620349849222011042623404316968279,1 Vintners Court,Vintners Way,Weavering,ME14 5JE,7191406868,D,C,59,74,Flat,Detached,2011-04-26,E07000110,E14000700,Kent,2011-04-26,marketed sale,57,76,297,164.0,3.3,57,1.8,50.0,32.0,466.0,306.0,157.0,89.0,56.98,Single,Y,Ground,Y,,2104.0,80.0,secondary glazing,Normal,0.0,3.0,3.0,43.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Mostly secondary glazing,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Average,Programmer and room thermostat,Average,Average,Low energy lighting in 43% of fixed outlets,Average,Average,mains gas (not community),0.0,no corridor,,2.31,0.0,,natural,"1 Vintners Court, Vintners Way, Weavering",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2011-04-26 23:40:43,owner-occupied,7.0,3.0,200003727645.0,Address Matched +461759407032010032920180077268403,35 Hayle Mill,Hayle Mill Road,,ME15 6JW,347434768,C,B,80,83,House,Mid-Terrace,2010-03-29,E07000110,E14000804,Kent,2010-03-29,marketed sale,79,82,145,126.0,2.1,24,1.8,85.0,48.0,264.0,264.0,132.0,111.0,98.27,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,22.0,0.0,"From main system, no cylinder thermostat",Average,Average,"Solid, insulated (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 22% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.47,0.0,N,natural,"35 Hayle Mill, Hayle Mill Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2010-03-29 20:18:00,owner-occupied,,,10022896955.0,Address Matched +888534249962013081422154785048477,The Birches,Leeds Road,Langley,ME17 3JN,7883445078,C,C,70,78,House,Detached,2013-08-14,E07000110,E14000700,Kent,2013-08-14,marketed sale,72,80,149,109.0,5.0,24,3.5,176.0,88.0,1039.0,994.0,124.0,125.0,211.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,7.0,7.0,0.0,1.0,From main system,Good,Good,"Suspended, limited insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, wood logs",,,"Pitched, insulated at rafters",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"The Birches, Leeds Road, Langley",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1996-2002,2013-08-14 22:15:47,owner-occupied,32.0,0.0,10022895932.0,Address Matched +941065188752015042909333091250101,"2, Stella Close",Marden,,TN12 9TP,1189819078,E,C,48,80,House,Semi-Detached,2015-04-20,E07000110,E14000804,Kent,2015-04-29,ECO assessment,40,76,365,117.0,6.8,65,2.2,82.0,82.0,1151.0,603.0,221.0,77.0,105.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,6.0,6.0,77.0,0.0,From main system,Average,Average,"Solid, limited insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 77% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"2, Stella Close, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1996-2002,2015-04-29 09:33:30,owner-occupied,,,200003711012.0,Address Matched +1549447357952017060609471691030158,Flat 6,Holbrook House,72 Bank Street,ME14 4SN,1828712578,D,D,55,55,Flat,NO DATA!,2017-06-05,E07000110,E14000700,Kent,2017-06-06,new dwelling,59,59,344,344.0,2.5,58,2.5,32.0,32.0,402.0,402.0,314.0,314.0,43.0,standard tariff,,top floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Very Poor,Poor,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.43 W/m+é-¦K,Good,Good,,,,Average thermal transmittance 0.39 W/m+é-¦K,Average,Average,"Boiler and radiators, electric",Very Poor,Very Poor,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"Flat 6, Holbrook House, 72 Bank Street",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2017-06-06 09:47:16,unknown,10.0,10.0,10093304700.0,Address Matched +1579991339202017102416345859432878,Flat 16,Chaucer House,25 Knightrider Street,ME15 6ND,1277434578,C,C,78,78,Flat,Detached,2017-10-23,E07000110,E14000804,Kent,2017-10-24,new dwelling,83,83,169,169.0,0.9,30,0.9,24.0,24.0,184.0,184.0,63.0,63.0,30.0,standard tariff,,ground floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.14 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.30 W/m-¦K,Good,Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Flat 16, Chaucer House, 25 Knightrider Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2017-10-24 16:34:58,unknown,10.0,10.0,10093305649.0,Address Matched +1780937542222020012922352618918390,"3, Cole Terrace",Ham Lane,,ME17 2LN,9143488678,E,B,52,88,House,Mid-Terrace,2020-01-29,E07000110,E14000700,Kent,2020-01-29,rental (private),48,78,370,135.0,4.3,63,1.6,53.0,53.0,906.0,414.0,218.0,115.0,68.0,Unknown,N,NODATA!,,,2602.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,100.0,0.0,"Electric immersion, off-peak",Poor,Poor,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 250 mm loft insulation",Good,Good,"Room heaters, electric",Very Poor,Poor,Appliance thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,NO DATA!,,,,N,natural,"3, Cole Terrace, Ham Lane",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2020-01-29 22:35:26,rental (private),,,200003712518.0,Address Matched +1514895639222017012917364129288783,Lyndale Cottage,Linton Hill,Linton,ME17 4AT,8221379478,D,C,64,80,House,Semi-Detached,2017-01-28,E07000110,E14000804,Kent,2017-01-29,rental,57,76,242,124.0,5.0,43,2.6,70.0,70.0,924.0,689.0,100.0,65.0,117.0,Unknown,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,4.0,4.0,100.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Sandstone or limestone, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"Lyndale Cottage, Linton Hill, Linton",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2017-01-29 17:36:41,owner-occupied,,,200003663049.0,Address Matched +3f53a36506c0ab1ac628c1e78bc95fc3e43e1c71ea0b47bc9f641df350f6207a,8 Wildwood Close,Kingswood,,ME17 3QE,10001650483,D,B,68,85,Bungalow,Detached,2021-08-19,E07000110,E14000700,Kent,2021-08-19,marketed sale,65,82,225,101.0,3.2,40,1.5,105.0,66.0,490.0,432.0,117.0,75.0,80.0,Single,Y,,,,,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,40.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 40% of fixed outlets,Average,Average,mains gas (not community),0.0,,,2.34,0.0,N,natural,"8 Wildwood Close, Kingswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2021-08-19 15:45:29,Owner-occupied,10.0,,200003701395.0,Energy Assessor +1429468189062016040114205403098766,"5, Ashford Drive",Kingswood,,ME17 3PB,6092863478,E,C,41,70,Bungalow,Detached,2016-04-01,E07000110,E14000700,Kent,2016-04-01,marketed sale,36,65,374,171.0,9.0,68,4.2,133.0,73.0,1678.0,1077.0,226.0,80.0,133.0,Single,Y,NODATA!,,,2104.0,,not defined,Much More Than Typical,0.0,6.0,6.0,17.0,1.0,"From main system, no cylinder thermostat",Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 17% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,2.38,,N,natural,"5, Ashford Drive, Kingswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2016-04-01 14:20:54,owner-occupied,,,200003700311.0,Address Matched +1275508072002020011411463333200588,Greenways,Headcorn Road,Grafty Green,ME17 2AN,8092972378,E,A,46,98,Bungalow,Detached,2020-01-08,E07000110,E14000700,Kent,2020-01-14,rental (private),35,79,511,129.0,5.9,86,1.5,53.0,53.0,995.0,689.0,317.0,224.0,68.0,Unknown,N,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,100.0,0.0,From main system,Poor,Poor,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, electric",Poor,Poor,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,NO DATA!,,,,N,natural,"Greenways, Headcorn Road, Grafty Green",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2020-01-14 11:46:33,rental (private),,,200003703723.0,Address Matched +3f5d8a2a35e858a16931aec23d32c8c7cb843ea2cb987044273f92ddd6e3ddf9,24a Church Street,Boughton Monchelsea,,ME17 4HW,10001431641,C,B,71,83,House,Detached,2021-08-11,E07000110,E14000700,Kent,2021-08-12,marketed sale,67,80,197,108.0,3.3,35,1.9,77.0,77.0,534.0,505.0,117.0,70.0,96.0,Single,Y,,,,,100.0,double glazing installed during or after 2002,More Than Typical,1.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, mains gas",,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.28,0.0,N,natural,"24a Church Street, Boughton Monchelsea",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2003-2006,2021-08-12 18:12:21,Owner-occupied,8.0,,10022901456.0,Energy Assessor +1491596469222016102606394408448476,"41, Worcester Road",,,ME15 7LU,7042608478,E,B,53,85,House,Semi-Detached,2016-10-24,E07000110,E14000700,Kent,2016-10-26,marketed sale,46,83,348,95.0,5.2,61,1.5,111.0,56.0,782.0,473.0,268.0,75.0,84.0,Single,Y,NODATA!,,,2102.0,50.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,0.0,0.0,"From main system, no cylinder thermostat",Poor,Poor,"Solid, no insulation (assumed)",NO DATA!,,Partial double glazing,Poor,Poor,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,2.43,,N,natural,"41, Worcester Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2016-10-26 06:39:44,owner-occupied,,,200003712313.0,Address Matched +1101008377432014033110255033278905,"4, Cornwall Close",,,ME15 8HS,7523940278,D,B,65,86,House,Mid-Terrace,2014-03-28,E07000110,E14000700,Kent,2014-03-31,none of the above,66,88,195,56.0,2.9,37,0.9,76.0,49.0,579.0,409.0,95.0,67.0,80.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,45.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 45% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"4, Cornwall Close",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2014-03-31 10:25:50,owner-occupied,11.0,5.0,200003684925.0,Address Matched +545930489222010092820130110288010,"66, Calder Road",,,ME14 2RA,1186820868,C,C,71,73,House,Semi-Detached,2010-09-28,E07000110,E14000804,Kent,2010-09-28,marketed sale,67,69,249,234.0,2.8,41,2.6,56.0,35.0,447.0,434.0,88.0,88.0,66.6,Single,Y,NO DATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,1.0,4.0,4.0,40.0,0.0,From main system,Very Good,Very Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Flat, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Very Good,Very Good,Programmer and room thermostat,Average,Average,Low energy lighting in 40% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,0.0,N,natural,"66, Calder Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2010-09-28 20:13:01,owner-occupied,,,200003671093.0,Address Matched +781283489102012110808301990720438,"478, Loose Road",,,ME15 9UB,9119287968,D,C,59,70,Flat,Semi-Detached,2012-11-07,E07000110,E14000804,Kent,2012-11-08,marketed sale,56,70,256,174.0,3.7,49,2.5,84.0,45.0,606.0,427.0,100.0,100.0,75.0,Unknown,Y,Ground,N,,2107.0,100.0,double glazing installed before 2002,Normal,2.0,3.0,3.0,13.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 13% of fixed outlets,Poor,Poor,mains gas (not community),0.0,no corridor,,,0.0,,natural,"478, Loose Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2012-11-08 08:30:19,owner-occupied,8.0,1.0,200003680256.0,Address Matched +1553167949922018021415431692648808,"19, The Weavers",Headcorn,,TN27 9AQ,984442578,B,A,85,95,House,Mid-Terrace,2018-02-14,E07000110,E14000700,Kent,2018-02-14,new dwelling,87,97,73,2.0,1.2,13,0.1,67.0,67.0,206.0,206.0,82.0,49.0,97.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.14 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.21 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"19, The Weavers, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,NO DATA!,2018-02-14 15:43:16,unknown,20.0,20.0,10093304428.0,Address Matched +782216233412016012622482799260192,"231a, Upper Fant Road",,,ME16 8DA,1233397968,C,C,75,78,Flat,Semi-Detached,2016-01-26,E07000110,E14000804,Kent,2016-01-26,rental (social),76,81,171,135.0,1.8,30,1.4,59.0,43.0,317.0,252.0,99.0,99.0,59.0,Single,Y,Ground,N,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,62.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 62% of fixed outlets,Good,Good,mains gas (not community),0.0,no corridor,,,,N,natural,"231a, Upper Fant Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1976-1982,2016-01-26 22:48:27,rental (social),,,200003656612.0,Address Matched +1541562429062017050720110501038703,Squirrels Leap,Well Street,Loose,ME15 0EN,21261578,B,A,84,92,House,Semi-Detached,2017-05-07,E07000110,E14000804,Kent,2017-05-07,new dwelling,85,92,83,36.0,1.8,15,0.8,71.0,71.0,287.0,287.0,113.0,113.0,124.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.20 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Squirrels Leap, Well Street, Loose",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2017-05-07 20:11:05,unknown,12.0,12.0,10093302586.0,Address Matched +3f70ec684e0701d6c98916b9cbb12c964c14b2fde8d51c972d2a8cea2f2427d6,MERRYWOOD,ULCOMBE ROAD,LANGLEY,ME17 3JE,10001281919,D,C,68,79,House,Detached,2021-05-11,E07000110,E14000700,Kent,2021-09-23,RHI application,67,78,165,106.0,6.3,28,4.0,219.0,118.0,1489.0,1303.0,204.0,122.0,225.0,dual,Y,,,,,100.0,double glazing installed during or after 2002,Normal,1.0,8.0,8.0,14.0,0.0,From main system,Good,Good,"Suspended, insulated (assumed)",,,Fully double glazed,Good,Good,"Timber frame, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated at rafters",Good,Good,"Air source heat pump, radiators, electric",Average,Good,"Programmer, no room thermostat",Very Poor,Very Poor,Low energy lighting in 14% of fixed outlets,Poor,Poor,electricity (not community),0.0,,,2.36,0.0,N,natural,"MERRYWOOD, ULCOMBE ROAD, LANGLEY",Maidstone,Faversham and Mid Kent,LANGLEY,England and Wales: 2007-2011,2021-09-23 08:42:36,Owner-occupied,35.0,,10014307749.0,Energy Assessor +491408839702013041612002974679668,"20, Kenward Road",Yalding,,ME18 6JP,2789936768,D,B,64,82,House,Semi-Detached,2013-04-16,E07000110,E14000804,Kent,2013-04-16,non marketed sale,62,81,226,94.0,3.0,44,1.3,50.0,50.0,507.0,478.0,107.0,72.0,70.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,75.0,2.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"20, Kenward Road, Yalding",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2013-04-16 12:00:29,rental (social),8.0,6.0,200003660609.0,Address Matched +1312123428812015042209341393250537,"3, Stevenson Close",,,ME15 6FB,5784835378,D,C,65,77,House,Detached,2015-04-22,E07000110,E14000804,Kent,2015-04-22,marketed sale,57,70,225,148.0,5.9,40,3.9,76.0,76.0,1067.0,927.0,138.0,86.0,148.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,6.0,6.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, mains gas",,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"3, Stevenson Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2015-04-22 09:34:13,owner-occupied,,,200003726716.0,Address Matched +342652599002016042516301764562358,"12a, Sutton Road",,,ME15 9AH,3064995668,D,B,63,81,House,Detached,2016-04-25,E07000110,E14000700,Kent,2016-04-25,marketed sale,59,79,225,107.0,5.0,39,2.4,133.0,72.0,927.0,691.0,145.0,89.0,126.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,1.0,6.0,5.0,16.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 16% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,2.41,,N,natural,"12a, Sutton Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2016-04-25 16:30:17,owner-occupied,,,200003680803.0,Address Matched +894983909062013030718135915838457,"415, Sutton Road",,,ME15 9BX,5108095078,E,C,44,80,House,Semi-Detached,2013-03-07,E07000110,E14000700,Kent,2013-03-07,marketed sale,45,78,345,110.0,4.7,65,1.6,66.0,42.0,674.0,487.0,333.0,68.0,72.0,Single,Y,NODATA!,,,2107.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,43.0,0.0,"Electric immersion, standard tariff",Very Poor,Very Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 43% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"415, Sutton Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2013-03-07 18:13:59,owner-occupied,7.0,3.0,200003681398.0,Address Matched +1538023867512017042509554893230357,"4, Windsor Close",,,ME14 5HD,3722731578,G,D,10,55,Bungalow,Detached,2017-04-21,E07000110,E14000804,Kent,2017-04-25,marketed sale,24,59,575,227.0,9.9,97,3.9,64.0,64.0,2572.0,1223.0,315.0,174.0,101.0,Single,N,NODATA!,,,2602.0,75.0,double glazing installed during or after 2002,Normal,1.0,3.0,3.0,100.0,0.0,"Electric immersion, standard tariff",Very Poor,Poor,"Suspended, no insulation (assumed)",NO DATA!,,Partial double glazing,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Flat, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, electric",Very Poor,Poor,Appliance thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,NO DATA!,,,,N,natural,"4, Windsor Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2017-04-25 09:55:48,owner-occupied,,,200003705383.0,Address Matched +581004089502011011706570186299038,"22, The Beams",,,ME15 8EF,2528982868,D,C,63,74,House,Semi-Detached,2011-01-17,E07000110,E14000700,Kent,2011-01-17,marketed sale,57,71,303,210.0,3.8,51,2.7,76.0,41.0,557.0,430.0,166.0,118.0,75.5,Single,Y,NO DATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,6.0,6.0,15.0,0.0,From main system,Average,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Average,Average,"Boiler and radiators, mains gas",Average,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 15% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,0.0,N,natural,"22, The Beams",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2011-01-17 06:57:01,owner-occupied,,,200003687051.0,Address Matched +224728180802009021217392153719028,"74, Hardy Street",,,ME14 2SJ,5874087568,E,D,43,59,House,Mid-Terrace,2009-02-12,E07000110,E14000804,Kent,2009-02-12,marketed sale,38,52,433,309.0,7.9,72,5.6,81.0,52.0,1031.0,777.0,172.0,114.0,108.4,Single,Y,NO DATA!,,,2107.0,95.0,double glazing installed before 2002,Normal,0.0,6.0,6.0,45.0,0.0,From main system,Average,Good,"Suspended, no insulation (assumed)",,,Partial double glazing,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, mains gas",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Average,Good,"Programmer, TRVs and bypass",Poor,Poor,Low energy lighting in 45% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.3,0.0,N,natural,"74, Hardy Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2009-02-12 17:39:21,owner-occupied,,,200003702737.0,Address Matched +521818649762010080221094948808090,2 Saynden Cottage,Five Oak Lane,Staplehurst,TN12 0HX,9498458768,F,F,31,34,House,Semi-Detached,2010-07-30,E07000110,E14000804,Kent,2010-08-02,rental (private),31,34,505,476.0,7.6,93,7.1,66.0,48.0,1253.0,1190.0,153.0,144.0,71.45,dual,N,NO DATA!,,,2107.0,100.0,"double glazing, unknown install date",Normal,2.0,5.0,5.0,63.0,2.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, oil",Average,Average,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 63% of fixed outlets,Good,Good,oil - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.51,0.0,N,natural,"2 Saynden Cottage, Five Oak Lane, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: before 1900,2010-08-02 21:09:49,rental (private),,,200003709379.0,Address Matched +1086433342802020090316060417900178,Green Hill Bungalow,Green Hill Lane,Harrietsham,ME17 1NF,7810549178,E,B,54,88,Bungalow,Detached,2020-09-03,E07000110,E14000700,Kent,2020-09-03,RHI application,49,81,212,33.0,6.0,50,2.0,108.0,84.0,913.0,748.0,108.0,85.0,121.0,Single,N,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,3.0,6.0,6.0,71.0,0.0,"From main system, plus solar",Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,"Room heaters, wood logs",,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, oil",Average,Average,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 71% of fixed outlets,Very Good,Very Good,oil (not community),0.0,NO DATA!,,,,Y,natural,"Green Hill Bungalow, Green Hill Lane, Harrietsham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2020-09-03 16:06:04,owner-occupied,,,200003723021.0,Address Matched +1095928892432014022612323328978904,11 Wicken House,London Road,,ME16 8QP,9488900278,D,B,68,82,Flat,Mid-Terrace,2014-02-17,E07000110,E14000804,Kent,2014-02-26,none of the above,56,70,321,223.0,2.9,57,2.0,55.0,37.0,296.0,150.0,195.0,114.0,51.0,dual,N,2nd,N,,2401.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,50.0,0.0,"Electric immersion, off-peak",Poor,Very Poor,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,(another dwelling above),,,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 50% of fixed outlets,Good,Good,electricity (not community),0.0,unheated corridor,2.21,,0.0,,natural,"11 Wicken House, London Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2014-02-26 12:32:33,owner-occupied,6.0,3.0,200003668494.0,Address Matched +1015253899262013092708344934568647,"12, Kings Road",Headcorn,,TN27 9QU,4324934178,C,B,70,85,House,Detached,2013-09-26,E07000110,E14000700,Kent,2013-09-27,marketed sale,70,85,164,70.0,2.9,31,1.3,79.0,52.0,492.0,438.0,115.0,77.0,93.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,7.0,7.0,50.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"12, Kings Road, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,England and Wales: 1967-1975,2013-09-27 08:34:49,owner-occupied,12.0,6.0,200003698715.0,Address Matched +74586089702011121216231346490538,"20, Sittingbourne Road",,,ME14 5LW,7701884468,D,C,65,71,House,Detached,2011-12-07,E07000110,E14000804,Kent,2011-12-12,marketed sale,62,70,218,176.0,3.9,42,3.1,69.0,52.0,650.0,535.0,85.0,85.0,91.99,dual,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,6.0,6.0,67.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, partial insulation (assumed)",Average,Average,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 67% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,2.35,0.0,,natural,"20, Sittingbourne Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1976-1982,2011-12-12 16:23:13,owner-occupied,18.0,12.0,200003705627.0,Address Matched +506342816752010070116111494700377,Flat 82 Lee Heights,Bambridge Court,,ME14 2LD,3702647768,E,C,48,72,Flat,End-Terrace,2010-06-30,E07000110,E14000804,Kent,2010-07-01,marketed sale,65,63,266,282.0,3.3,40,3.5,93.0,52.0,506.0,310.0,296.0,142.0,82.16,Unknown,N,4th,Y,5.0,2602.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,0.0,0.0,"Electric immersion, standard tariff",Very Poor,Poor,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,"Pitched, insulated (assumed)",Good,Good,"Room heaters, electric",Very Poor,Poor,Appliance thermostats,Good,Good,No low energy lighting,Very Poor,Very Poor,electricity - this is for backwards compatibility only and should not be used,0.0,heated corridor,,2.4,0.0,N,natural,"Flat 82 Lee Heights, Bambridge Court",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2010-07-01 16:11:14,owner-occupied,,,10022893053.0,Address Matched +987878159062013081019081452318037,"107, Loose Road",,,ME15 7DH,3547542178,D,C,64,78,House,Detached,2013-08-09,E07000110,E14000700,Kent,2013-08-10,marketed sale,63,77,195,108.0,3.8,37,2.1,113.0,57.0,681.0,630.0,102.0,72.0,103.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,6.0,6.0,0.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"107, Loose Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2013-08-10 19:08:14,owner-occupied,12.0,0.0,200003684108.0,Address Matched +1098911852432014022815035059278300,36 Hawley Court,London Road,,ME16 8QJ,5079330278,C,C,69,78,Flat,Mid-Terrace,2014-02-24,E07000110,E14000804,Kent,2014-02-28,none of the above,72,82,207,130.0,1.8,40,1.1,48.0,30.0,349.0,246.0,90.0,75.0,45.0,Single,Y,5th,N,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,40.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 40% of fixed outlets,Average,Average,mains gas (not community),0.0,unheated corridor,9.527,,0.0,,natural,"36 Hawley Court, London Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2014-02-28 15:03:50,rental (social),5.0,2.0,200003668470.0,Address Matched +162245370062009110223262172328271,"14, Durham Close",,,ME15 8DS,7769752568,C,C,75,79,Flat,Semi-Detached,2009-11-02,E07000110,E14000700,Kent,2009-11-02,rental (social),71,76,236,195.0,2.1,39,1.8,27.0,27.0,339.0,297.0,92.0,75.0,53.89,Single,Y,Ground,N,2.0,2107.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,no corridor,,,0.0,N,natural,"14, Durham Close",Maidstone,Faversham and Mid Kent,MAIDSTONE,,2009-11-02 23:26:21,rental (social),,,200003685671.0,Address Matched +1707794023152019032214002195210460,"94, Edmett Way",,,ME17 3GD,4005353678,B,B,82,82,Maisonette,Semi-Detached,2019-03-22,E07000110,E14000700,Kent,2019-03-22,new dwelling,85,85,107,107.0,1.1,19,1.1,48.0,48.0,202.0,202.0,63.0,63.0,58.0,standard tariff,,top floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.17 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.23 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"94, Edmett Way",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2019-03-22 14:00:21,unknown,7.0,7.0,10093307048.0,Address Matched +978515443732013072522265018278109,4 Kenilworth House,Woodford Road,,ME16 9BY,4978181178,C,C,75,79,Flat,Semi-Detached,2013-07-25,E07000110,E14000804,Kent,2013-07-25,rental (social),77,82,147,116.0,1.7,28,1.3,64.0,37.0,308.0,262.0,80.0,80.0,60.0,Single,Y,Ground,N,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,29.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 29% of fixed outlets,Average,Average,mains gas (not community),0.0,no corridor,,,0.0,,natural,"4 Kenilworth House, Woodford Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2013-07-25 22:26:50,rental (social),7.0,2.0,200003686846.0,Address Matched +1480872601332017092216460307278201,"3, Hop Pocket Way",Headcorn,,TN27 9AF,167237478,B,A,84,93,House,Detached,2017-09-22,E07000110,E14000700,Kent,2017-09-22,new dwelling,84,93,88,29.0,1.9,16,0.7,72.0,72.0,303.0,305.0,112.0,62.0,123.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.26 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.10 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"3, Hop Pocket Way, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,NO DATA!,2017-09-22 16:46:03,unknown,20.0,20.0,10093302551.0,Address Matched +1431502489042016041112002147360558,Flat 8,Concorde House,London Road,ME16 8QA,5007183478,C,C,73,73,Flat,Mid-Terrace,2016-04-05,E07000110,E14000804,Kent,2016-04-11,rental (private),70,70,276,276.0,1.7,47,1.7,28.0,28.0,240.0,240.0,148.0,148.0,37.0,dual,N,1st,N,,2107.0,100.0,double glazing installed during or after 2002,Normal,0.0,1.0,1.0,100.0,0.0,From main system,Poor,Poor,(another dwelling below),NO DATA!,,Fully double glazed,Good,Good,"System built, with internal insulation",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, electric",Very Poor,Poor,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,unheated corridor,6.19,2.5,,N,natural,"Flat 8, Concorde House, London Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2016-04-11 12:00:21,rental (private),,,, +1093689199102014030610495415942768,"33, Peel Street",,,ME14 2SB,4153799178,E,C,45,80,House,End-Terrace,2014-02-26,E07000110,E14000804,Kent,2014-03-06,none of the above,42,80,385,108.0,4.6,74,1.4,75.0,40.0,875.0,503.0,90.0,62.0,62.0,Unknown,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,11.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 11% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"33, Peel Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2014-03-06 10:49:54,owner-occupied,18.0,2.0,200003702360.0,Address Matched +687567629962011101016153910808309,"10, Corben Close",Allington,,ME16 0FH,134280968,C,C,69,72,House,Detached,2011-10-10,E07000110,E14000804,Kent,2011-10-10,marketed sale,66,70,178,157.0,4.2,34,3.7,109.0,59.0,614.0,585.0,128.0,112.0,123.16,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,7.0,7.0,16.0,0.0,From main system,Good,Good,"Suspended, limited insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, mains gas",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 17% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,2.32,0.0,,natural,"10, Corben Close, Allington",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2011-10-10 16:15:39,owner-occupied,24.0,4.0,10022901470.0,Address Matched +1250634609542014121709560633149568,Flat 13,Romney Court,25 Romney Place,ME15 6LG,5587101378,C,C,80,80,Flat,NO DATA!,2014-12-16,E07000110,E14000804,Kent,2014-12-17,new dwelling,64,64,263,263.0,2.8,47,2.8,50.0,50.0,219.0,219.0,121.0,121.0,61.0,off-peak 7 hour,,top floor,,,,,NO DATA!,NO DATA!,,,,,0.0,"Electric immersion, off-peak",Average,Very Poor,(other premises below),,,Fully double glazed,Average,Average,Average thermal transmittance 0.29 W/m-¦K,Good,Good,,,,Average thermal transmittance 0.18 W/m-¦K,Good,Good,Electric storage heaters,Average,Very Poor,Celect control,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"Flat 13, Romney Court, 25 Romney Place",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2014-12-17 09:56:06,unknown,20.0,20.0,10091193905.0,Address Matched +38395350832018101117133548968191,Flat 3,"40, Tonbridge Road",,ME16 8SH,5138123568,D,C,63,79,Flat,Detached,2018-10-10,E07000110,E14000804,Kent,2018-10-11,rental (private),57,79,252,122.0,4.2,44,2.0,101.0,71.0,722.0,339.0,92.0,92.0,95.0,Single,Y,Ground,N,,2107.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,59.0,0.0,From main system,Good,Good,(another dwelling below),NO DATA!,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 59% of fixed outlets,Good,Good,mains gas (not community),0.0,unheated corridor,17.45,,,N,natural,"Flat 3, 40, Tonbridge Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2018-10-11 17:13:35,rental (private),,,10014308624.0,Address Matched +1546895909922017052422141822988353,"57, Pope Street",,,ME16 8LG,5218002578,D,B,65,88,House,End-Terrace,2017-05-18,E07000110,E14000804,Kent,2017-05-24,marketed sale,61,88,253,60.0,3.0,45,0.7,47.0,47.0,541.0,345.0,111.0,63.0,67.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"57, Pope Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2017-05-24 22:14:18,owner-occupied,,,200003655605.0,Address Matched +152445815632016050519505917068507,"128, Upper Fant Road",,,ME16 8BU,1777531568,E,C,41,74,House,Mid-Terrace,2016-05-05,E07000110,E14000804,Kent,2016-05-05,marketed sale,34,67,353,131.0,9.4,65,3.6,114.0,87.0,1778.0,845.0,133.0,117.0,145.0,dual,Y,NODATA!,,,2104.0,20.0,double glazing installed during or after 2002,Normal,0.0,6.0,6.0,67.0,8.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Some double glazing,Poor,Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, dual fuel (mineral and wood)",,,"Roof room(s), no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 67% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,2.39,,N,natural,"128, Upper Fant Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2016-05-05 19:50:59,owner-occupied,,,200003657759.0,Address Matched +288676291212019060110573691010967,"44, Church Road",,,ME15 6QY,9770112668,D,C,60,80,House,Mid-Terrace,2019-06-01,E07000110,E14000804,Kent,2019-06-01,rental (private),53,76,291,135.0,4.6,51,2.2,96.0,64.0,739.0,551.0,133.0,84.0,89.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,5.0,5.0,50.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"44, Church Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2019-06-01 10:57:36,rental (private),,,200003664533.0,Address Matched +1626277716052018042523292596280054,"18, The Mallows",,,ME14 2PX,444667578,D,B,68,86,House,Semi-Detached,2018-04-25,E07000110,E14000804,Kent,2018-04-25,marketed sale,66,84,238,87.0,2.4,42,0.9,67.0,43.0,385.0,360.0,128.0,74.0,58.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,44.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 44% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"18, The Mallows",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1991-1995,2018-04-25 23:29:25,owner-occupied,,,200003671945.0,Address Matched +1519218664512017021416265590930153,"3, Beckett Close",,,ME16 9DW,1363400578,B,A,83,97,House,End-Terrace,2017-02-14,E07000110,E14000804,Kent,2017-02-14,new dwelling,87,100,90,-20.0,1.0,16,-0.2,44.0,44.0,180.0,180.0,78.0,46.0,62.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.12 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.18 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.18 W/m-¦K,Good,Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"3, Beckett Close",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2017-02-14 16:26:55,unknown,4.0,4.0,10091196090.0,Address Matched +1087204477012014021008345294040710,"19, Gatland Lane",,,ME16 8PJ,7003749178,C,B,70,81,House,Semi-Detached,2014-02-09,E07000110,E14000804,Kent,2014-02-10,marketed sale,67,79,157,90.0,3.9,30,2.3,103.0,66.0,682.0,629.0,131.0,89.0,131.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,2.0,5.0,5.0,43.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 43% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"19, Gatland Lane",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2014-02-10 08:34:52,owner-occupied,14.0,6.0,200003674631.0,Address Matched +1462510921252016071409190290960245,"17, Oakapple Lane",Barming,,ME16 9NW,2556106478,B,B,82,82,Flat,NO DATA!,2016-07-14,E07000110,E14000804,Kent,2016-07-14,new dwelling,89,89,71,71.0,0.8,13,0.8,46.0,46.0,185.0,185.0,106.0,106.0,62.0,standard tariff,,top floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.20 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"17, Oakapple Lane, Barming",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2016-07-14 09:19:02,unknown,15.0,15.0,10091195865.0,Address Matched +1306564384532015040216341150078802,Whistler Manor,Pilgrims Lakes,Harrietsham,ME17 1BY,8280894378,D,C,61,72,House,Detached,2015-04-02,E07000110,E14000700,Kent,2015-04-02,marketed sale,58,72,215,151.0,12.0,33,7.8,221.0,132.0,2528.0,2052.0,198.0,139.0,358.0,Single,Y,NODATA!,,,2110.0,0.0,not defined,Normal,0.0,12.0,12.0,29.0,2.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Single glazed,Very Poor,Very Poor,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, wood logs",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in 29% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"Whistler Manor, Pilgrims Lakes, Harrietsham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1991-1995,2015-04-02 16:34:11,owner-occupied,,,200003725516.0,Address Matched +1647628852962020081209130459498670,Flat 1,12a Knightrider Street,,ME15 6LP,7512519578,E,D,40,68,Flat,Mid-Terrace,2020-08-11,E07000110,E14000804,Kent,2020-08-12,rental (private),47,46,504,519.0,3.2,85,3.3,34.0,38.0,819.0,457.0,317.0,149.0,38.0,Single,N,1st,N,,2602.0,100.0,"double glazing, unknown install date",Normal,0.0,1.0,1.0,100.0,0.0,"Electric immersion, standard tariff",Very Poor,Poor,(other premises below),NO DATA!,,Fully double glazed,Average,Average,"Timber frame, as built, no insulation (assumed)",Very Poor,Very Poor,,,,(another dwelling above),,,"Room heaters, electric",Very Poor,Poor,Appliance thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,unheated corridor,7.71,,,N,natural,"Flat 1, 12a Knightrider Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2020-08-12 09:13:04,rental (private),,,10014314659.0,Address Matched +799908979962012073116363369728712,"54, Brunswick Street",,,ME15 6NP,1642719968,F,C,36,78,House,End-Terrace,2012-06-12,E07000110,E14000804,Kent,2012-07-31,marketed sale,34,76,460,130.0,5.7,89,1.7,51.0,37.0,995.0,520.0,76.0,53.0,64.0,Single,Y,NODATA!,,,2107.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,63.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, mains gas",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 63% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"54, Brunswick Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2012-07-31 16:36:33,owner-occupied,8.0,5.0,200003692735.0,Address Matched +1325211388912015052607524692250335,"79, Bramley Crescent",Bearsted,,ME15 8JX,3569826378,E,B,51,82,Bungalow,Semi-Detached,2015-05-22,E07000110,E14000700,Kent,2015-05-26,marketed sale,45,79,388,123.0,4.6,68,1.5,89.0,44.0,758.0,502.0,190.0,68.0,67.0,Unknown,Y,NODATA!,,,2107.0,100.0,"double glazing, unknown install date",Normal,1.0,3.0,3.0,0.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 270 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"79, Bramley Crescent, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2015-05-26 07:52:46,owner-occupied,,,200003688486.0,Address Matched +404e72bd815f264ff244357f16ecfdcc1166e1886af928703db0077883aedf72,FLAT 2,16 TONBRIDGE ROAD,,ME16 8RP,9960903768,D,C,64,77,Flat,Semi-Detached,2021-07-08,E07000110,E14000804,Kent,2021-07-08,rental,60,79,269,144.0,3.0,47,1.6,56.0,56.0,528.0,283.0,99.0,88.0,64.0,Single,Y,01,N,,,100.0,"double glazing, unknown install date",Normal,1.0,4.0,4.0,100.0,0.0,From main system,Good,Good,(another dwelling below),,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,8.0,2.639,0.0,N,natural,"FLAT 2, 16 TONBRIDGE ROAD",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2021-07-08 08:19:11,Rented (private),10.0,,10014310792.0,Energy Assessor +317688528652009063013342601210862,2 Mill Cottages,Tutsham Farm,West Farleigh,ME15 0NF,8207814668,E,D,52,60,House,Mid-Terrace,2009-06-26,E07000110,E14000804,Kent,2009-06-30,rental (private),47,53,318,274.0,5.3,63,4.5,87.0,43.0,642.0,574.0,174.0,153.0,83.62,dual,N,NO DATA!,,,2106.0,35.0,double glazing installed before 2002,Normal,1.0,4.0,4.0,0.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Partial double glazing,Poor,Poor,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, wood logs",,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, oil",Average,Average,"Programmer, room thermostat and TRVs",Average,Average,No low energy lighting,Very Poor,Very Poor,oil - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.5,0.0,N,natural,"2 Mill Cottages, Tutsham Farm, West Farleigh",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2009-06-30 13:34:26,rental (private),,,10022893678.0,Address Matched +1443293142132019030111501135278407,"1, Dane Court",Coxheath,,ME17 4HJ,4755464478,D,B,66,88,House,Semi-Detached,2019-02-28,E07000110,E14000804,Kent,2019-03-01,marketed sale,61,88,248,65.0,3.4,44,0.9,78.0,58.0,574.0,357.0,108.0,65.0,79.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,67.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, partial insulation (assumed)",Average,Average,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 67% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"1, Dane Court, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1976-1982,2019-03-01 11:50:11,owner-occupied,,,200003712173.0,Address Matched +1417736277652016022716302298260048,"16, Reinden Grove",Downswood,,ME15 8TH,841782478,C,B,74,90,House,Semi-Detached,2016-02-26,E07000110,E14000700,Kent,2016-02-27,marketed sale,74,90,179,54.0,2.1,31,0.7,46.0,46.0,353.0,325.0,137.0,79.0,66.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 270 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"16, Reinden Grove, Downswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2016-02-27 16:30:22,owner-occupied,,,200003686342.0,Address Matched +1281184589922015021210570333228945,"5, James Huxley Avenue",,,ME16 0ZH,4380813378,B,B,87,89,House,Mid-Terrace,2015-02-12,E07000110,E14000804,Kent,2015-02-12,new dwelling,89,91,61,48.0,0.9,11,0.7,63.0,63.0,225.0,225.0,95.0,60.0,82.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"5, James Huxley Avenue",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2015-02-12 10:57:03,owner-occupied,14.0,14.0,10014315152.0,Address Matched +160421174712008101121093703989250,"23, Snowdon Avenue",,,ME14 5NW,2092432568,D,C,67,70,House,Mid-Terrace,2008-10-11,E07000110,E14000804,Kent,2008-10-11,marketed sale,66,69,235,217.0,3.3,38,3.0,77.0,41.0,362.0,380.0,156.0,127.0,84.4,dual,Y,NO DATA!,,,2504.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,4.0,13.0,0.0,"From main system, no cylinderstat",Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,Portable electric heaters,,,"Pitched, 150mm loft insulation",Good,Good,"Warm air, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 13% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.3,0.0,N,natural,"23, Snowdon Avenue",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2008-10-11 21:09:37,owner-occupied,,,200003705771.0,Address Matched +244326077132009031614382841968207,"6, Bluett Street",,,ME14 2UG,7781219568,C,C,69,75,House,Semi-Detached,2009-03-12,E07000110,E14000804,Kent,2009-03-16,rental (social),65,72,252,204.0,3.1,42,2.5,64.0,35.0,423.0,371.0,102.0,84.0,74.5,Unknown,Y,NO DATA!,,,2107.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,20.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Poor,Poor,Low energy lighting in 20% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.44,0.0,N,natural,"6, Bluett Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2009-03-16 14:38:28,rental (social),,,200003703485.0,Address Matched +863035319262014030313465743138364,"60, Charlbury Close",,,ME16 8TE,6417163078,D,B,62,86,House,Semi-Detached,2014-02-27,E07000110,E14000804,Kent,2014-03-03,none of the above,59,86,219,63.0,3.9,42,1.2,91.0,55.0,687.0,437.0,126.0,70.0,93.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,2.0,5.0,5.0,33.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 33% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"60, Charlbury Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2014-03-03 13:46:57,unknown,12.0,4.0,200003657597.0,Address Matched +843068709222013072312360312478097,"6, Ashford Road",Bearsted,,ME14 4LP,9179022078,D,B,55,86,House,Semi-Detached,2013-07-23,E07000110,E14000700,Kent,2013-07-23,assessment for green deal,51,86,269,65.0,4.7,52,1.2,113.0,57.0,813.0,429.0,106.0,67.0,91.0,dual,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,0.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"6, Ashford Road, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2013-07-23 12:36:03,owner-occupied,16.0,0.0,200003687690.0,Address Matched +257780579012011122119104999299352,Flat 13 Pevensey Court,St. Peters Street,,ME16 0GQ,3276999568,C,C,75,80,Flat,NO DATA!,2011-12-21,E07000110,E14000804,Kent,2011-12-21,marketed sale,68,67,266,275.0,2.2,47,2.2,31.0,35.0,241.0,173.0,112.0,98.0,45.81,dual,N,4th,Y,,2602.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,89.0,0.0,"Electric immersion, off-peak",Average,Very Poor,(other premises below),,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Room heaters, electric",Poor,Very Poor,Appliance thermostats,Good,Good,Low energy lighting in 89% of fixed outlets,Very Good,Very Good,electricity (not community),0.0,unheated corridor,7.66,2.4,0.0,,natural,"Flat 13 Pevensey Court, St. Peters Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2011-12-21 19:10:49,owner-occupied,9.0,8.0,10022893610.0,Address Matched +465305239022010040612522474768570,Boyton Court,Boyton Court Road,Sutton Valence,ME17 3BY,7715354768,F,E,30,51,House,Detached,2010-04-06,E07000110,E14000700,Kent,2010-04-06,marketed sale,35,55,427,275.0,21.0,61,13.0,409.0,205.0,3622.0,2408.0,295.0,205.0,342.68,dual,Y,NODATA!,,,2107.0,0.0,not defined,Normal,1.0,11.0,11.0,0.0,1.0,"From main system, no cylinder thermostat",Average,Average,"Solid, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, no insulation",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.33,0.0,,natural,"Boyton Court, Boyton Court Road, Sutton Valence",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2010-04-06 12:52:24,owner-occupied,,,200003698281.0,Address Matched +1246483749062014120615002030368534,"14, Lacock Gardens",,,ME15 6GJ,3301470378,D,B,68,85,House,End-Terrace,2014-12-06,E07000110,E14000804,Kent,2014-12-06,marketed sale,68,86,191,67.0,2.7,37,1.0,71.0,47.0,483.0,417.0,131.0,75.0,73.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,4.0,4.0,50.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"14, Lacock Gardens",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1991-1995,2014-12-06 15:00:20,owner-occupied,12.0,6.0,10034134507.0,Address Matched +480738349722015043011392395408685,"15, Ifield Close",,,ME15 8QD,8964465768,C,B,71,85,House,Semi-Detached,2015-04-30,E07000110,E14000700,Kent,2015-04-30,marketed sale,70,84,190,87.0,2.8,33,1.3,53.0,53.0,510.0,467.0,138.0,87.0,83.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"15, Ifield Close",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2015-04-30 11:39:23,owner-occupied,,,200003685215.0,Address Matched +1612751798312018030611362296080152,"1, Cornflower Drive",Marden,,TN12 9GH,1292866578,B,B,85,87,House,Detached,2018-03-06,E07000110,E14000804,Kent,2018-03-06,new dwelling,86,88,74,64.0,1.8,12,1.6,81.0,81.0,360.0,361.0,108.0,59.0,149.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.26 W/m-¦K,Very Good,Very Good,"Room heaters, wood logs",,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"1, Cornflower Drive, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,NO DATA!,2018-03-06 11:36:22,owner-occupied,45.0,45.0,10093305330.0,Address Matched +16936713832018072820135515268003,40 Wallis Place,Hart Street,,ME16 8FB,1345088468,B,B,83,84,Flat,Mid-Terrace,2018-07-28,E07000110,E14000804,Kent,2018-07-28,rental (private),86,87,89,85.0,1.2,16,1.2,84.0,62.0,146.0,148.0,126.0,126.0,78.0,Single,Y,3rd,N,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,3.0,3.0,64.0,0.0,From main system,Good,Good,(another dwelling below),NO DATA!,,Fully double glazed,Good,Good,"System built, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 64% of fixed outlets,Good,Good,mains gas (not community),0.0,unheated corridor,1.22,,,N,natural,"40 Wallis Place, Hart Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2018-07-28 20:13:55,rental (private),,,10022900639.0,Address Matched +4093c6b2e7e430f100982bf61f5e5780d72eefefc75170ce0eff46532f4fa1ad,10 Pearson Meadow,Boughton Monchelsea,,ME17 4SX,10001330053,B,A,84,95,House,Semi-Detached,2021-07-08,E07000110,E14000700,Kent,2021-07-08,new dwelling,86,97,81,9.0,1.4,14,0.2,82.0,82.0,229.0,229.0,72.0,44.0,97.0,standard tariff,,,N,,,100.0,,,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.39,,,,"10 Pearson Meadow, Boughton Monchelsea",Maidstone,Faversham and Mid Kent,MAIDSTONE,2021,2021-07-08 13:26:04,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,14.0,,10094442614.0,Address Matched +689374170932011101711441014968297,Crisbrook House,Cave Hill,,ME15 6DU,7794290968,D,D,55,56,House,Detached,2011-10-17,E07000110,E14000804,Kent,2011-10-17,marketed sale,48,49,262,254.0,8.2,51,7.9,135.0,68.0,1313.0,1322.0,111.0,111.0,161.34,Single,Y,NODATA!,,,2106.0,100.0,secondary glazing,Normal,2.0,6.0,6.0,0.0,2.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Full secondary glazing,Good,Good,"Timber frame, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, mains gas",,,"Pitched, insulated (assumed)",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,2.6,0.0,,natural,"Crisbrook House, Cave Hill",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2011-10-17 11:44:10,owner-occupied,13.0,0.0,200003665856.0,Address Matched +1760758440132019102423480028278893,"299, Sutton Road",,,ME15 9BL,4348837678,E,B,53,86,Bungalow,Detached,2019-10-24,E07000110,E14000700,Kent,2019-10-24,marketed sale,46,84,360,89.0,4.9,64,1.2,101.0,59.0,856.0,429.0,79.0,51.0,77.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,29.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, no insulation",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 29% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"299, Sutton Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2019-10-24 23:48:00,owner-occupied,,,200003710133.0,Address Matched +1688392932352019010413242691010363,"5, Rushmead Drive",,,ME15 9UD,3384212678,D,C,58,80,House,Detached,2019-01-04,E07000110,E14000804,Kent,2019-01-04,rental (private),55,79,271,120.0,5.5,43,2.4,124.0,78.0,1067.0,646.0,109.0,109.0,127.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,0.0,6.0,6.0,41.0,0.0,From main system,Very Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, wood logs",,,"Pitched, 25 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 41% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"5, Rushmead Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2019-01-04 13:24:26,rental (private),,,200003680266.0,Address Matched +1200510089022014090516200027048154,"9, Green Lane",Boughton Monchelsea,,ME17 4JQ,5210847278,C,B,80,84,House,Semi-Detached,2014-09-04,E07000110,E14000700,Kent,2014-09-05,none of the above,80,85,104,79.0,1.8,17,1.3,85.0,60.0,681.0,637.0,113.0,79.0,102.0,Unknown,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,2.0,4.0,4.0,58.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, wood logs",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 58% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,40.0,,natural,"9, Green Lane, Boughton Monchelsea",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2014-09-05 16:20:00,owner-occupied,24.0,14.0,200003723041.0,Address Matched +277841440702009050214031467110128,1 Stable Cottages,Sutton Road,Langley,ME17 3NQ,3717241668,E,E,41,49,House,End-Terrace,2009-05-02,E07000110,E14000700,Kent,2009-05-02,rental (private),41,48,435,372.0,7.1,67,6.0,101.0,51.0,1062.0,946.0,127.0,109.0,67.16,Single,Y,NO DATA!,,,2104.0,0.0,single glazing,Normal,0.0,4.0,4.0,0.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Granite or whinstone, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Poor,Poor,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,0.0,N,natural,"1 Stable Cottages, Sutton Road, Langley",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2009-05-02 14:03:14,rental (private),,,200003690448.0,Address Matched +474872252252010042321451792200471,2 Yew Tree Place,The Street,Bredhurst,ME7 3LJ,4111225768,D,C,55,72,House,Semi-Detached,2010-04-23,E07000110,E14000700,Kent,2010-04-23,marketed sale,49,68,335,208.0,5.8,56,3.6,95.0,54.0,815.0,537.0,178.0,123.0,104.09,Single,N,NO DATA!,,,2102.0,100.0,double glazing installed during or after 2002,Normal,1.0,6.0,6.0,25.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, mains gas",,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,Low energy lighting in 25% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.35,0.0,N,natural,"2 Yew Tree Place, The Street, Bredhurst",Maidstone,Faversham and Mid Kent,GILLINGHAM,England and Wales: 1900-1929,2010-04-23 21:45:17,owner-occupied,,,200003727259.0,Address Matched +192345990642008112711491856482268,Flat 3 Acacia House,"8-10, Ashford Road",,ME14 5DG,9652494568,C,C,71,73,Flat,Semi-Detached,2008-11-26,E07000110,E14000804,Kent,2008-11-27,rental (private),67,68,314,307.0,2.3,47,2.3,53.0,26.0,189.0,196.0,115.0,115.0,49.27,dual,N,1st,N,4.0,2401.0,100.0,double glazing installed before 2002,Normal,0.0,2.0,2.0,0.0,0.0,"Electric immersion, off-peak",Average,Poor,(other premises below),,,Fully double glazed,Average,Average,"Solid brick, with internal insulation",Good,Good,"Room heaters, electric",,,(another dwelling above),,,Electric storage heaters,Poor,Poor,Manual charge control,Poor,Poor,No low energy lighting,Very Poor,Very Poor,electricity - this is for backwards compatibility only and should not be used,0.0,unheated corridor,7.16,2.75,0.0,N,natural,"Flat 3 Acacia House, 8-10, Ashford Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2008-11-27 11:49:18,rental (private),,,200003661310.0,Address Matched +584641410152011012515593292290688,"50, Roseholme",,,ME16 8DR,6830023868,C,B,70,82,Flat,NO DATA!,2011-01-25,E07000110,E14000804,Kent,2011-01-25,marketed sale,66,79,291,178.0,2.4,48,1.4,44.0,26.0,403.0,274.0,96.0,78.0,48.77,Single,Y,Ground,N,2.0,2102.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,33.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,Low energy lighting in 33% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.36,0.0,N,natural,"50, Roseholme",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2011-01-25 15:59:32,owner-occupied,,,200003656349.0,Address Matched +1155105109922014061111240414108774,"12, Chantry Road",Marden,,TN12 9HT,7181034278,C,C,72,76,Flat,Semi-Detached,2014-06-10,E07000110,E14000804,Kent,2014-06-11,rental (social),73,78,175,143.0,1.9,33,1.5,47.0,37.0,368.0,309.0,86.0,87.0,56.0,Single,Y,Ground,N,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,71.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 71% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,no corridor,,,0.0,,natural,"12, Chantry Road, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1950-1966,2014-06-11 11:24:04,rental (social),7.0,5.0,200003708447.0,Address Matched +1487433238252017011612135797969846,Flat 7,Miller Heights,43-51 Lower Stone Street,ME15 6LN,8693877478,C,C,76,76,Flat,Detached,2016-10-12,E07000110,E14000804,Kent,2017-01-16,none of the above,80,80,187,187.0,1.1,33,1.1,27.0,27.0,226.0,226.0,74.0,74.0,35.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.22 W/m-¦K,Good,Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.83 W/m-¦K,Average,Average,,,,Average thermal transmittance 0.22 W/m-¦K,Good,Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Flat 7, Miller Heights, 43-51 Lower Stone Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2017-01-16 12:13:57,unknown,4.0,4.0,10093303787.0,Address Matched +40cef5f40b6cbe909278cb0135c7af7b7e545af07c797f55c80f9ef52e0260b5,9 SAMPHIRE CLOSE,WEAVERING,,ME14 5UD,10001590013,C,B,71,84,House,Detached,2021-07-12,E07000110,E14000700,Kent,2021-07-12,marketed sale,66,80,185,95.0,4.1,33,2.1,90.0,90.0,648.0,536.0,124.0,80.0,125.0,Unknown,Y,,,,,100.0,"double glazing, unknown install date",Normal,0.0,7.0,7.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.4,0.0,N,natural,"9 SAMPHIRE CLOSE, WEAVERING",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2021-07-12 11:51:05,Owner-occupied,14.0,,200003687821.0,Energy Assessor +1194677598432014082611241544278803,"17, Charlton Street",,,ME16 8LB,9364807278,D,C,60,79,Flat,Mid-Terrace,2014-08-26,E07000110,E14000804,Kent,2014-08-26,assessment for green deal,58,83,267,109.0,3.0,51,1.2,40.0,40.0,597.0,251.0,111.0,89.0,59.0,Single,Y,3rd,Y,,2107.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,100.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 12 mm loft insulation",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,2.23,,0.0,,natural,"17, Charlton Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2014-08-26 11:24:15,rental (private),7.0,7.0,200003655433.0,Address Matched +947576209062014110921200299068324,"4, Napoleon Walk",Lenham,,ME17 2JU,2916069078,D,B,64,91,House,Mid-Terrace,2014-11-06,E07000110,E14000700,Kent,2014-11-09,none of the above,64,94,240,19.0,2.5,46,0.2,72.0,36.0,406.0,290.0,170.0,75.0,54.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, partial insulation (assumed)",Average,Average,,,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"4, Napoleon Walk, Lenham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1976-1982,2014-11-09 21:20:02,owner-occupied,11.0,0.0,200003710480.0,Address Matched +1702353415312019030600144291010363,"59, Willow Rise",Downswood,,ME15 8XR,3325513678,D,A,58,92,House,Mid-Terrace,2019-03-05,E07000110,E14000700,Kent,2019-03-06,marketed sale,55,95,396,23.0,2.8,70,0.2,49.0,33.0,361.0,243.0,218.0,58.0,40.0,Single,Y,NODATA!,,,2103.0,100.0,double glazing installed before 2002,Normal,0.0,2.0,2.0,50.0,0.0,"From main system, no cylinder thermostat",Poor,Poor,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, partial insulation (assumed)",Average,Average,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Room thermostat only,Poor,Poor,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"59, Willow Rise, Downswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1976-1982,2019-03-06 00:14:42,owner-occupied,,,200003687175.0,Address Matched +848393331452012102217302496229104,Gladwish House,Headcorn Road,Sutton Valence,ME17 3EL,1476162078,D,C,63,76,House,Detached,2012-10-22,E07000110,E14000700,Kent,2012-10-22,marketed sale,56,69,163,104.0,8.6,37,5.8,130.0,87.0,1463.0,1273.0,188.0,111.0,236.0,Single,N,NODATA!,,,2106.0,90.0,double glazing installed during or after 2002,Normal,2.0,12.0,12.0,50.0,3.0,From main system,Average,Average,"Suspended, no insulation (assumed)",,,Mostly double glazing,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, oil",Average,Average,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,oil (not community),0.0,NO DATA!,,,0.0,,natural,"Gladwish House, Headcorn Road, Sutton Valence",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2012-10-22 17:30:24,owner-occupied,24.0,12.0,200003695626.0,Address Matched +543683660352010092314161991200383,35 Mandeville Court,Union Street,,ME14 1JR,3327010868,B,B,82,83,Flat,Enclosed Mid-Terrace,2010-09-23,E07000110,E14000804,Kent,2010-09-23,marketed sale,76,78,244,232.0,1.5,37,1.4,25.0,25.0,117.0,100.0,113.0,113.0,41.01,dual,N,1st,N,3.0,2401.0,100.0,double glazing installed before 2002,Normal,0.0,2.0,2.0,100.0,0.0,"Electric immersion, off-peak",Poor,Poor,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,(another dwelling above),,,Electric storage heaters,Poor,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity - this is for backwards compatibility only and should not be used,0.0,heated corridor,,2.31,0.0,N,natural,"35 Mandeville Court, Union Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2010-09-23 14:16:19,owner-occupied,,,200003699235.0,Address Matched +183290119402019032209435458412508,14 Carrie House,Lesley Place,Buckland Hill,ME16 0UD,7491514568,C,B,80,82,Flat,Semi-Detached,2019-03-20,E07000110,E14000804,Kent,2019-03-22,rental (private),70,72,264,249.0,1.7,45,1.6,36.0,36.0,167.0,139.0,138.0,138.0,39.0,Unknown,N,1st,N,,2402.0,100.0,double glazing installed before 2002,Normal,0.0,2.0,2.0,100.0,0.0,"Electric immersion, off-peak",Average,Poor,(another dwelling below),NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,Portable electric heaters (assumed),,,(another dwelling above),,,Electric storage heaters,Average,Very Poor,Automatic charge control,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,no corridor,,,,N,natural,"14 Carrie House, Lesley Place, Buckland Hill",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2019-03-22 09:43:54,rental (private),,,200003721300.0,Address Matched +1297489684952015031915523193950130,"5, Westree Court",,,ME16 8FU,1096434378,B,B,88,88,Flat,NO DATA!,2015-03-19,E07000110,E14000804,Kent,2015-03-19,new dwelling,92,92,54,54.0,0.5,11,0.5,34.0,34.0,214.0,214.0,67.0,67.0,51.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.18 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"5, Westree Court",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2015-03-19 15:52:31,unknown,25.0,25.0,10014315983.0,Address Matched +1586064479802017103106421550432538,"19, Kings Walk",Holland Road,,ME14 1GQ,2855774578,C,C,70,79,Flat,Enclosed Mid-Terrace,2017-10-27,E07000110,E14000804,Kent,2017-10-31,marketed sale,67,67,197,192.0,3.3,33,3.2,144.0,77.0,484.0,313.0,219.0,182.0,99.0,Unknown,N,3rd,Y,,2602.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,0.0,0.0,"Electric immersion, off-peak",Poor,Poor,(another dwelling below),NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Room heaters, electric",Very Poor,Poor,Appliance thermostats,Good,Good,No low energy lighting,Very Poor,Very Poor,electricity (not community),0.0,heated corridor,,,,N,natural,"19, Kings Walk, Holland Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2017-10-31 06:42:15,owner-occupied,,,200003655127.0,Address Matched +615333844532015042012324378268503,"4, Discovery Road",Bearsted,,ME15 8HF,4358565868,C,B,73,84,House,Detached,2015-04-20,E07000110,E14000700,Kent,2015-04-20,marketed sale,71,80,169,103.0,3.1,30,1.9,73.0,73.0,565.0,565.0,109.0,73.0,105.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,6.0,6.0,90.0,0.0,From main system,Good,Good,"Solid, limited insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 90% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"4, Discovery Road, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1996-2002,2015-04-20 12:32:43,owner-occupied,,,200003722074.0,Address Matched +539914685512010091419013798900272,"27, Lullingstone Road",,,ME16 0TF,2286589768,E,E,44,54,House,Detached,2010-09-14,E07000110,E14000804,Kent,2010-09-14,marketed sale,43,52,389,313.0,6.6,64,5.3,103.0,54.0,1085.0,929.0,135.0,109.0,65.3,Single,Y,NO DATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,6.0,6.0,10.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 10% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,0.0,N,natural,"27, Lullingstone Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2010-09-14 19:01:37,owner-occupied,,,200003662118.0,Address Matched +40f666581a1f8ac05dbe4e81519a77091acb5f8064579568ef5c13b83890603d,26 ASPIAN DRIVE,COXHEATH,,ME17 4JZ,10001438953,D,B,68,87,House,End-Terrace,2021-07-29,E07000110,E14000804,Kent,2021-07-29,marketed sale,66,87,255,79.0,2.5,45,0.8,49.0,49.0,440.0,348.0,79.0,56.0,56.0,Single,Y,,,,,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, partial insulation (assumed)",Average,Average,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.35,0.0,N,natural,"26 ASPIAN DRIVE, COXHEATH",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1976-1982,2021-07-29 12:55:31,Owner-occupied,12.0,,200003720805.0,Energy Assessor +545115009222018042920343330368708,Spitzbrook House,Collier Street,,TN12 9RH,322020868,F,D,23,68,House,Detached,2018-04-26,E07000110,E14000804,Kent,2018-04-29,marketed sale,21,58,300,105.0,39.0,76,15.0,210.0,214.0,5195.0,2320.0,261.0,125.0,514.0,Unknown,N,NODATA!,,,2107.0,25.0,"double glazing, unknown install date",Normal,4.0,13.0,13.0,73.0,3.0,Electric instantaneous at point of use,Very Poor,Poor,"Suspended, no insulation (assumed)",NO DATA!,,Some double glazing,Poor,Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, oil",Average,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 73% of fixed outlets,Very Good,Very Good,oil (not community),0.0,NO DATA!,,,,N,natural,"Spitzbrook House, Collier Street",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: before 1900,2018-04-29 20:34:33,owner-occupied,,,200003723412.0,Address Matched +1747861772412019090217140694710967,"The Annexe, Tudor Hurst",Pagehurst Road,Staplehurst,TN12 0JB,9791246678,D,A,55,98,House,Detached,2019-08-31,E07000110,E14000804,Kent,2019-09-02,marketed sale,47,89,205,-26.0,5.7,53,0.7,86.0,86.0,614.0,432.0,195.0,79.0,106.0,Single,N,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,85.0,0.0,From main system,Poor,Poor,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Roof room(s), ceiling insulated",Good,Good,"Boiler and radiators, oil",Poor,Average,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 85% of fixed outlets,Very Good,Very Good,oil (not community),0.0,NO DATA!,,,,N,natural,"The Annexe, Tudor Hurst, Pagehurst Road, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1983-1990,2019-09-02 17:14:06,owner-occupied,,,200003673964.0,Address Matched +61237328852020021113542528900655,Flat 2 Orchard House,Hazlitt Drive,,ME16 0YU,6578888568,C,C,77,77,Flat,Semi-Detached,2020-02-11,E07000110,E14000804,Kent,2020-02-11,rental (private),80,80,131,131.0,1.5,23,1.5,61.0,61.0,313.0,313.0,98.0,98.0,68.0,Single,Y,Ground,N,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,heated corridor,,,,N,"mechanical, extract only","Flat 2 Orchard House, Hazlitt Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2020-02-11 13:54:25,rental (private),,,10014309039.0,Address Matched +654503059922018071615574568968448,"4, The Almonds",Bearsted,,ME14 4LG,4653548868,D,C,65,80,House,Detached,2018-07-16,E07000110,E14000700,Kent,2018-07-16,rental,58,75,225,120.0,4.8,40,2.6,100.0,75.0,812.0,642.0,107.0,76.0,122.0,Unknown,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,7.0,7.0,67.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, partial insulation (assumed)",Average,Average,,,,"Pitched, limited insulation (assumed)",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 67% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"4, The Almonds, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1976-1982,2018-07-16 15:57:45,owner-occupied,,,200003692865.0,Address Matched +1383274439742015110613072645050568,"40, Upper Road",,,ME15 7RA,6787930478,E,B,49,81,House,End-Terrace,2015-11-06,E07000110,E14000804,Kent,2015-11-06,marketed sale,42,77,407,135.0,5.3,72,1.8,77.0,49.0,930.0,558.0,181.0,71.0,75.0,Unknown,Y,NODATA!,,,2107.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,44.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 44% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"40, Upper Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2015-11-06 13:07:26,owner-occupied,,,200003685088.0,Address Matched +678256186512011091520164091990493,"29, Sutton Court",Marden,,TN12 9TF,4361610968,D,C,67,73,House,End-Terrace,2011-09-15,E07000110,E14000804,Kent,2011-09-15,marketed sale,66,73,205,165.0,3.2,39,2.5,52.0,52.0,501.0,412.0,122.0,105.0,80.2,Single,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,80.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,2.4,0.0,,natural,"29, Sutton Court, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1967-1975,2011-09-15 20:16:40,owner-occupied,10.0,8.0,200003710599.0,Address Matched +41078304e748da97a805221e1022a15db484aa80a79f2f80c27ddeb36904dbe8,33 ELLIS FIELD,OTHAM,,ME15 8YL,10001484262,B,A,85,96,House,Semi-Detached,2021-07-26,E07000110,E14000804,Kent,2021-07-26,new dwelling,88,98,76,2.0,1.2,13,0.1,75.0,75.0,216.0,216.0,72.0,44.0,94.0,standard tariff,,,N,,,100.0,,,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.18 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.39,,,,"33 ELLIS FIELD, OTHAM",Maidstone,Maidstone and The Weald,OTHAM,2021,2021-07-26 12:25:54,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,11.0,,10094440504.0,Address Matched +4114dd382e7119dcbaef35bf350917e72f7339c43e41cce70c54c01328a24fa8,LAWNWOOD,HEATH ROAD,BOUGHTON MONCHELSEA,ME17 4HS,10001669030,E,B,40,82,House,Detached,2021-07-07,E07000110,E14000700,Kent,2021-07-07,marketed sale,38,83,460,113.0,6.3,76,1.5,87.0,68.0,1114.0,503.0,173.0,68.0,83.0,Single,Y,,,,,0.0,not defined,Normal,0.0,5.0,3.0,71.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, wood logs",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 71% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.49,0.0,N,natural,"LAWNWOOD, HEATH ROAD, BOUGHTON MONCHELSEA",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2021-07-07 16:23:46,Owner-occupied,7.0,,200003674222.0,Energy Assessor +1662178729442018091117364361089208,"6, Tonbridge Road",Teston,,ME18 5BU,2498320678,D,C,64,78,House,Semi-Detached,2018-09-10,E07000110,E14000804,Kent,2018-09-11,marketed sale,59,72,239,151.0,4.4,42,2.8,140.0,70.0,700.0,676.0,121.0,81.0,105.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"6, Tonbridge Road, Teston",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2018-09-11 17:36:43,owner-occupied,,,200003661725.0,Address Matched +1759513189922019102021395227788881,"13, Shearwater",,,ME16 0DW,8215827678,C,B,75,86,House,Semi-Detached,2019-10-18,E07000110,E14000804,Kent,2019-10-20,marketed sale,73,83,150,79.0,2.8,26,1.5,79.0,79.0,432.0,437.0,136.0,82.0,106.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,8.0,8.0,100.0,0.0,From main system,Good,Good,"Solid, limited insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"13, Shearwater",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2019-10-20 21:39:52,owner-occupied,,,200003659656.0,Address Matched +275239472912009072315330502210662,23 Tovil Green Court,Tovil Green Lane,Tovil,ME15 6NE,6250221668,B,B,84,85,Flat,NO DATA!,2009-07-22,E07000110,E14000804,Kent,2009-07-23,new dwelling,87,87,102,98.0,1.1,17,1.1,51.0,38.0,169.0,170.0,97.0,97.0,66.6,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,6.0,,From main system,Good,Very Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.31 W/m?K,Good,Good,,,,(another dwelling above),,,Community scheme,Good,Very Good,"Unit charging, programmer and TRVs",Good,Good,Low energy lighting in 67% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.49,,,NO DATA!,"23 Tovil Green Court, Tovil Green Lane, Tovil",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2009-07-23 15:33:05,,9.0,6.0,10014306972.0,Address Matched +1384722619262016042716084200338166,Flat 78,Miller House,43-51 Lower Stone Street,ME15 6GB,6016150478,C,C,80,80,Flat,NO DATA!,2016-04-27,E07000110,E14000804,Kent,2016-04-27,none of the above,72,72,214,214.0,2.0,36,2.0,40.0,40.0,199.0,199.0,154.0,154.0,55.0,off-peak 10 hour,,mid floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Poor,Poor,(other premises below),,,Fully double glazed,Good,Good,Average thermal transmittance 0.68 W/m-¦K,Average,Average,,,,(other premises above),,,"Boiler and radiators, electric",Poor,Very Poor,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"Flat 78, Miller House, 43-51 Lower Stone Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2016-04-27 16:08:42,unknown,4.0,4.0,10091196175.0,Address Matched +597456584952015030622370392050587,"83, Calder Road",,,ME14 2QG,5770424868,C,B,69,85,House,End-Terrace,2015-03-05,E07000110,E14000804,Kent,2015-03-06,rental (social),68,84,213,88.0,2.5,37,1.1,75.0,44.0,446.0,422.0,99.0,65.0,66.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,4.0,4.0,29.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 29% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"83, Calder Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2015-03-06 22:37:03,rental (social),,,200003670834.0,Address Matched +655378659742011101417020580899548,3 Thomas Place,James Whatman Way,,ME14 1FP,790358868,C,B,80,81,Flat,Mid-Terrace,2011-10-14,E07000110,E14000804,Kent,2011-10-14,new dwelling,90,90,97,94.0,0.8,13,0.8,47.0,37.0,202.0,203.0,102.0,102.0,63.9,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,5.0,,"Community scheme, no cylinder thermostat",Good,Very Good,(other premises below),,,Fully double glazed,Good,Good,Average thermal transmittance 0.27 W/m?K,Very Good,Very Good,,,,(other premises above),,,Community scheme,Good,Very Good,"Flat rate charging, programmer and TRVs",Average,Average,Low energy lighting in 71% of fixed outlets,Very Good,Very Good,NO DATA!,0.0,NO DATA!,,2.4,,,NO DATA!,"3 Thomas Place, James Whatman Way",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2011-10-14 17:02:05,,7.0,5.0,10014312669.0,Address Matched +1565383078332017080515071814078001,Glencoe,Goudhurst Road,Marden,TN12 9JG,7194033578,F,C,34,74,House,Detached,2017-08-04,E07000110,E14000804,Kent,2017-08-05,marketed sale,29,68,466,157.0,8.0,86,2.8,88.0,61.0,1469.0,712.0,101.0,69.0,93.0,Single,Y,NODATA!,,,2106.0,20.0,double glazing installed before 2002,Normal,1.0,5.0,5.0,54.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Some double glazing,Very Poor,Very Poor,"Cavity wall, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 54% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"Glencoe, Goudhurst Road, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: before 1900,2017-08-05 15:07:18,owner-occupied,,,200003709539.0,Address Matched +467679572152012080718271297020678,"18, Ham Lane",Lenham,,ME17 2LL,6845274768,D,B,67,85,House,Detached,2012-08-07,E07000110,E14000700,Kent,2012-08-07,marketed sale,68,86,176,70.0,3.7,30,1.4,107.0,60.0,683.0,523.0,91.0,92.0,122.0,Single,Y,NODATA!,,,2107.0,100.0,double glazing installed during or after 2002,Normal,1.0,7.0,7.0,21.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, wood logs",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 21% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"18, Ham Lane, Lenham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2012-08-07 18:27:12,owner-occupied,28.0,6.0,200003710520.0,Address Matched +146466461852015070112552493050059,Coppins,Ashford Road,Weavering,ME14 4AG,968131568,D,C,65,78,House,Detached,2015-07-01,E07000110,E14000700,Kent,2015-07-01,marketed sale,56,71,204,127.0,9.1,36,5.7,188.0,105.0,1580.0,1263.0,184.0,90.0,252.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,8.0,8.0,20.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 20% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"Coppins, Ashford Road, Weavering",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2015-07-01 12:55:24,owner-occupied,,,200003687697.0,Address Matched +367689970702009092116471360712298,"28, Burston Road",Coxheath,,ME17 4DT,9703077668,C,C,78,79,Flat,Semi-Detached,2009-09-21,E07000110,E14000804,Kent,2009-09-21,rental (social),76,76,193,189.0,1.9,32,1.9,42.0,30.0,303.0,305.0,80.0,80.0,58.79,Single,Y,Ground,N,2.0,2106.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,60.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 60% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.28,0.0,N,natural,"28, Burston Road, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2009-09-21 16:47:13,rental (social),,,200003670086.0,Address Matched +412365280702009121423043072019048,"27, College Court",Hayle Road,,ME15 6PB,6731280768,C,B,75,84,Flat,Semi-Detached,2009-12-14,E07000110,E14000804,Kent,2009-12-14,rental (social),72,83,216,129.0,2.3,36,1.4,38.0,38.0,296.0,212.0,157.0,96.0,64.34,Unknown,Y,4th,N,8.0,2106.0,85.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,85.0,0.0,From main system,Good,Good,(other premises below),,,Mostly double glazing,Poor,Poor,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 85% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,unheated corridor,4.4,2.3,0.0,N,natural,"27, College Court, Hayle Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2009-12-14 23:04:30,rental (social),,,200003693669.0,Address Matched +1420157489632016112113352744278997,"4, Bluebell Way",Allington,,ME16 0ZU,8774992478,B,A,84,97,House,Mid-Terrace,2016-11-21,E07000110,E14000804,Kent,2016-11-21,new dwelling,88,100,80,-19.0,1.0,14,-0.2,51.0,51.0,175.0,175.0,81.0,48.0,70.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.12 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.27 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"4, Bluebell Way, Allington",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2016-11-21 13:35:27,owner-occupied,10.0,10.0,10091195335.0,Address Matched +864113329022013010722064923438442,"11, Raggatt Place",,,ME15 7AB,4240273078,D,B,68,88,Bungalow,Semi-Detached,2012-12-07,E07000110,E14000700,Kent,2013-01-07,rental (social),69,91,215,44.0,2.1,41,0.5,44.0,31.0,385.0,313.0,75.0,53.0,50.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,More Than Typical,0.0,2.0,2.0,57.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, partial insulation (assumed)",Average,Average,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 57% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"11, Raggatt Place",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1976-1982,2013-01-07 22:06:49,rental (social),7.0,4.0,200003727788.0,Address Matched +1807093032722020063020055150808290,"9, Coleshall Close",,,ME15 8TU,9524370778,D,B,62,83,House,Semi-Detached,2020-06-30,E07000110,E14000700,Kent,2020-06-30,marketed sale,56,80,271,109.0,4.1,48,1.7,128.0,67.0,666.0,496.0,128.0,68.0,86.0,Single,Y,NODATA!,,,2107.0,,not defined,Much More Than Typical,0.0,4.0,4.0,10.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Mostly double glazing,Average,Average,"Cavity wall, filled cavity",Average,Average,"Room heaters, mains gas",,,"Pitched, 270 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 10% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"9, Coleshall Close",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2020-06-30 20:05:51,owner-occupied,,,200003681025.0,Address Matched +1726425369022019060521542254058531,"93, Arundel Square",,,ME15 6HB,3599684678,C,C,80,80,Flat,End-Terrace,2019-06-05,E07000110,E14000804,Kent,2019-06-05,rental (social),83,83,128,128.0,1.3,22,1.3,48.0,48.0,214.0,214.0,89.0,89.0,56.0,Single,Y,2nd,Y,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,(another dwelling below),NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Flat, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,6.36,,,N,natural,"93, Arundel Square",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2019-06-05 21:54:22,rental (social),,,10022895193.0,Address Matched +317653099262013052319275484378677,Apartment 13,"7, Bazalgette Rise",,ME16 8FJ,7800914668,C,C,78,78,Flat,Detached,2013-05-23,E07000110,E14000804,Kent,2013-05-23,marketed sale,81,82,124,120.0,1.3,24,1.3,53.0,38.0,251.0,253.0,75.0,75.0,57.0,Unknown,Y,3rd,Y,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,60.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Flat, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 60% of fixed outlets,Good,Good,mains gas (not community),0.0,unheated corridor,8.91,,0.0,,natural,"Apartment 13, 7, Bazalgette Rise",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2013-05-23 19:27:54,owner-occupied,15.0,9.0,10014308172.0,Address Matched +252221965452015020612570294050853,"7, Millbrook Close",,,ME15 6FZ,8383549568,D,B,57,84,House,Semi-Detached,2015-02-02,E07000110,E14000804,Kent,2015-02-06,ECO assessment,52,83,307,96.0,4.3,54,1.4,52.0,52.0,827.0,483.0,147.0,86.0,80.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"7, Millbrook Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2015-02-06 12:57:02,rental (social),,,200003666007.0,Address Matched +1245979223852014120517131597049134,"103, Roseholme",,,ME16 8DU,1410370378,C,C,69,80,Flat,Enclosed End-Terrace,2014-12-05,E07000110,E14000804,Kent,2014-12-05,rental (private),71,85,194,104.0,2.0,37,1.1,54.0,41.0,399.0,231.0,103.0,86.0,55.0,dual,Y,1st,N,,2104.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,67.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 67% of fixed outlets,Good,Good,mains gas (not community),0.0,unheated corridor,5.27,,0.0,,natural,"103, Roseholme",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2014-12-05 17:13:15,rental (private),6.0,4.0,200003656494.0,Address Matched +495838521152010060722195597000776,"30, Thornhill Place",,,ME14 2SE,7698176768,E,D,45,55,House,End-Terrace,2010-06-04,E07000110,E14000804,Kent,2010-06-07,rental (private),39,48,459,374.0,6.1,77,5.0,77.0,40.0,936.0,783.0,106.0,99.0,79.0,Single,Y,NO DATA!,,,2102.0,65.0,double glazing installed before 2002,Normal,1.0,4.0,4.0,10.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Partial double glazing,Poor,Poor,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Flat, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,Low energy lighting in 10% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.28,0.0,N,natural,"30, Thornhill Place",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2010-06-07 22:19:55,rental (private),,,200003702418.0,Address Matched +1224672409262014102119391999298664,"7, Orchard Place",Heath Road,,ME17 4PF,6983029278,C,B,76,89,House,Semi-Detached,2014-10-21,E07000110,E14000804,Kent,2014-10-21,marketed sale,78,90,123,42.0,2.2,23,0.8,108.0,59.0,352.0,362.0,128.0,80.0,92.0,Unknown,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,18.0,0.0,From main system,Good,Good,"Suspended, insulated (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 18% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"7, Orchard Place, Heath Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2014-10-21 19:39:19,owner-occupied,17.0,3.0,10022897139.0,Address Matched +1433394136052016041511525699960640,"7, Forestdale Road",,,ME5 9NB,6017693478,D,B,68,84,House,Semi-Detached,2016-04-15,E07000110,E14000700,Kent,2016-04-15,marketed sale,63,82,220,98.0,3.5,39,1.6,67.0,67.0,590.0,501.0,166.0,77.0,90.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,6.0,6.0,86.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 86% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,2.259,,N,natural,"7, Forestdale Road",Maidstone,Faversham and Mid Kent,CHATHAM,England and Wales: 1983-1990,2016-04-15 11:52:56,owner-occupied,,,200003708015.0,Address Matched +1009692299642013091909371814379518,"117, South Park Road",,,ME15 7AN,4673993178,C,B,76,91,House,Mid-Terrace,2013-09-19,E07000110,E14000700,Kent,2013-09-19,marketed sale,79,94,130,21.0,1.6,25,0.3,40.0,40.0,330.0,309.0,69.0,46.0,66.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"117, South Park Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2013-09-19 09:37:18,owner-occupied,8.0,8.0,200003715923.0,Address Matched +489173402962020071319460996478190,"115, Kingsley Road",,,ME15 7UL,9953026768,D,B,62,83,House,Mid-Terrace,2020-07-13,E07000110,E14000804,Kent,2020-07-13,rental (private),56,80,292,118.0,3.7,52,1.5,59.0,59.0,625.0,462.0,120.0,76.0,71.0,Single,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,1.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"To unheated space, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"115, Kingsley Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2020-07-13 19:46:09,rental (private),,,200003695834.0,Address Matched +41750122ddd4b413dcee52447ab67189dfea4a6d33e65faa0ba41803026e56cd,7 Maxted Road,,,ME14 4FN,10001575908,B,B,88,89,House,Detached,2021-09-15,E07000110,E14000804,Kent,2021-09-15,new dwelling,89,91,59,49.0,1.1,11,0.9,82.0,82.0,277.0,277.0,68.0,41.0,102.0,standard tariff,,,N,,,100.0,,,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.18 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.41,,,,7 Maxted Road,Maidstone,Maidstone and The Weald,Thurnham,2019,2021-09-15 15:12:46,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,1.0,,10094444641.0,Address Matched +225664080022009020318291607978931,Flat A,"16, Ashford Road",,ME14 5DG,3081837568,E,E,45,52,House,Semi-Detached,2009-02-03,E07000110,E14000804,Kent,2009-02-03,rental (private),37,40,619,576.0,5.2,94,4.8,53.0,29.0,532.0,467.0,124.0,124.0,55.48,dual,,Ground,N,4.0,2401.0,100.0,double glazing installed before 2002,Normal,0.0,2.0,2.0,20.0,0.0,"Electric immersion, off-peak",Average,Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, electric",,,(another dwelling above),,,Electric storage heaters,Poor,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 20% of fixed outlets,Poor,Poor,electricity - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.24,0.0,N,natural,"Flat A, 16, Ashford Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2009-02-03 18:29:16,rental (private),,,, +90220406812018070219421392080241,"3, Mansfield Walk",,,ME16 8EB,2192626468,D,B,59,89,House,Mid-Terrace,2018-07-02,E07000110,E14000804,Kent,2018-07-02,rental (private),53,89,300,53.0,3.9,53,0.7,96.0,53.0,604.0,319.0,160.0,69.0,74.0,Single,Y,NODATA!,,,2104.0,90.0,double glazing installed before 2002,Normal,1.0,4.0,4.0,17.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Mostly double glazing,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Flat, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 17% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"3, Mansfield Walk",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2018-07-02 19:42:13,rental (private),,,200003724964.0,Address Matched +418001f0c246cffb2c90555c386f37bc9fc8972d4bb846574f3fa7be177585c7,5 Warmlake Orchard,,,ME17 3TU,10001527627,B,B,84,89,House,Detached,2021-09-16,E07000110,E14000700,Kent,2021-09-16,new dwelling,82,86,85,62.0,3.8,15,2.8,127.0,127.0,602.0,602.0,103.0,103.0,257.0,standard tariff,,,N,,,100.0,,,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.21 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.14 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.39,,,,5 Warmlake Orchard,Maidstone,Faversham and Mid Kent,SUTTON VALENCE,2018,2021-09-16 08:43:25,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,60.0,,10094443014.0,Energy Assessor +64716385952011092310155995290547,The Oaks,Church Road,Grafty Green,ME17 2BA,5741554468,E,D,48,65,Bungalow,Detached,2011-09-23,E07000110,E14000700,Kent,2011-09-23,marketed sale,44,60,284,193.0,7.9,59,5.3,126.0,65.0,1286.0,886.0,230.0,159.0,133.3,dual,N,NODATA!,,,2104.0,60.0,"double glazing, unknown install date",Normal,1.0,7.0,3.0,7.0,1.0,"From main system, no cylinderstat",Poor,Poor,"Solid, no insulation (assumed)",,,Partial double glazing,Poor,Poor,"Cavity wall, as built, partial insulation (assumed)",Average,Average,"Room heaters, wood logs",,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, oil",Average,Average,Programmer and room thermostat,Average,Average,Low energy lighting in 7% of fixed outlets,Very Poor,Very Poor,oil (not community),0.0,NO DATA!,,2.3,0.0,,natural,"The Oaks, Church Road, Grafty Green",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1976-1982,2011-09-23 10:15:59,owner-occupied,14.0,1.0,200003703742.0,Address Matched +192858489962014011714520685738684,"10, Lockswood",,,ME16 0NX,8886805568,D,B,63,89,House,End-Terrace,2014-01-17,E07000110,E14000804,Kent,2014-01-17,marketed sale,62,91,249,38.0,2.7,48,0.5,52.0,39.0,507.0,343.0,103.0,57.0,56.0,dual,Y,NODATA!,,,2102.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,67.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,Low energy lighting in 67% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"10, Lockswood",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2014-01-17 14:52:06,owner-occupied,9.0,6.0,200003662356.0,Address Matched +419b54596a675754bb263ae7d3645d928851b347cefa72aeaefa5abb75e22ff4,23 Hockers Lane,Detling,,ME14 3JN,10001433264,E,B,52,81,House,Detached,2021-09-14,E07000110,E14000700,Kent,2021-09-17,marketed sale,43,78,340,114.0,6.1,60,2.1,96.0,97.0,992.0,523.0,127.0,78.0,101.0,Unknown,Y,,,,,30.0,"double glazing, unknown install date",Normal,2.0,5.0,5.0,77.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Some double glazing,Poor,Poor,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 77% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.44,0.0,N,natural,"23 Hockers Lane, Detling",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2021-09-17 06:03:29,Owner-occupied,13.0,,200003693925.0,Energy Assessor +1009276399302013091713390018379238,"50, Hadlow Close",Oakwood Park,,ME16 8FS,9374593178,B,B,82,82,Flat,End-Terrace,2013-09-17,E07000110,E14000804,Kent,2013-09-17,new dwelling,86,86,90,90.0,1.2,17,1.2,42.0,42.0,226.0,226.0,89.0,89.0,70.0,standard tariff,,top floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.21 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"50, Hadlow Close, Oakwood Park",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2013-09-17 13:39:00,NO DATA!,0.0,0.0,10014314561.0,Address Matched +1014411245412013092611373593270216,"21, Merchant Place",Marden,,TN12 9TT,2610534178,C,B,70,87,Bungalow,End-Terrace,2013-09-25,E07000110,E14000804,Kent,2013-09-26,marketed sale,71,88,178,55.0,2.2,34,0.7,56.0,43.0,397.0,365.0,102.0,67.0,66.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,71.0,0.0,From main system,Good,Good,"Suspended, limited insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 71% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"21, Merchant Place, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1996-2002,2013-09-26 11:37:35,owner-occupied,7.0,5.0,200003711277.0,Address Matched +1252377519702014122310184033142808,Little Plumtree,Headcorn Road,Staplehurst,TN12 0BT,4790511378,D,B,61,84,Bungalow,Detached,2014-12-20,E07000110,E14000804,Kent,2014-12-23,marketed sale,54,81,271,99.0,4.5,48,1.7,98.0,57.0,797.0,516.0,105.0,70.0,95.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,29.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 29% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"Little Plumtree, Headcorn Road, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1950-1966,2014-12-23 10:18:40,owner-occupied,,,200003655212.0,Address Matched +874618149702013012210084404472528,"8, Nursery Avenue",Bearsted,,ME14 4JS,3777444078,D,C,63,79,Bungalow,Detached,2013-01-22,E07000110,E14000700,Kent,2013-01-22,marketed sale,59,76,209,110.0,4.3,40,2.3,101.0,57.0,720.0,607.0,92.0,65.0,107.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,21.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 21% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"8, Nursery Avenue, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2013-01-22 10:08:44,owner-occupied,33.0,7.0,200003692335.0,Address Matched +1769607419022019120208392738228121,"122, Edmett Way",,,ME17 3GD,2317108678,B,A,84,95,House,End-Terrace,2019-12-02,E07000110,E14000700,Kent,2019-12-02,new dwelling,86,97,87,5.0,1.3,15,0.1,69.0,69.0,217.0,217.0,73.0,43.0,83.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"122, Edmett Way",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2019-12-02 08:39:27,unknown,8.0,8.0,10094441741.0,Address Matched +1200923511432014090509163970078208,"36, Fauchons Close",Bearsted,,ME14 4BB,1870257278,E,C,41,72,Bungalow,Detached,2014-09-03,E07000110,E14000700,Kent,2014-09-05,marketed sale,38,68,396,171.0,5.6,76,2.5,76.0,47.0,1010.0,714.0,200.0,83.0,74.0,Unknown,Y,NODATA!,,,2102.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,38.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,Low energy lighting in 38% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"36, Fauchons Close, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2014-09-05 09:16:39,owner-occupied,8.0,3.0,200003687618.0,Address Matched +999815604552013090311405693070217,"24, Fir Tree Grove",,,ME5 8XD,2761433178,F,B,36,88,House,End-Terrace,2013-09-02,E07000110,E14000700,Kent,2013-09-03,none of the above,47,89,268,48.0,4.6,61,0.8,45.0,45.0,936.0,348.0,579.0,69.0,75.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,100.0,0.0,"From main system, no cylinder thermostat",Very Poor,Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, partial insulation (assumed)",Average,Average,,,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, LPG",Poor,Good,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,LPG (not community),0.0,NO DATA!,,,0.0,,natural,"24, Fir Tree Grove",Maidstone,Faversham and Mid Kent,CHATHAM,England and Wales: 1976-1982,2013-09-03 11:40:56,rental (private),9.0,9.0,200003676693.0,Address Matched +652283651612016082309561493260781,Pippens,Sheephurst Lane,Marden,TN12 9NY,7102138868,B,B,82,88,House,Detached,2016-08-22,E07000110,E14000804,Kent,2016-08-23,new dwelling,84,89,77,47.0,3.4,13,2.1,117.0,117.0,589.0,589.0,255.0,149.0,264.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,1.0,From main system,Very Poor,Average,Average thermal transmittance 0.15 W/m+é-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.28 W/m+é-¦K,Good,Good,"Room heaters, wood logs",,,Average thermal transmittance 0.15 W/m+é-¦K,Good,Good,"Air source heat pump, underfloor, electric",Very Good,Very Good,2207 Time and temperature zone control,Very Good,Very Good,Low energy lighting in 90% of fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"Pippens, Sheephurst Lane, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,NO DATA!,2016-08-23 09:56:14,unknown,40.0,36.0,, +41a8cb15804b906bd9316d61fe14f214fa0d8eb55b7796ba3796a3df2486059f,3 SHERBOURNE DRIVE,,,ME16 8UG,10001451177,C,A,74,93,House,Enclosed End-Terrace,2021-07-06,E07000110,E14000804,Kent,2021-07-07,rental,77,95,191,8.0,1.3,34,0.1,37.0,37.0,250.0,233.0,76.0,54.0,40.0,Single,Y,,,,,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Timber frame, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.37,0.0,N,natural,3 SHERBOURNE DRIVE,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2021-07-07 16:00:20,Rented (private),7.0,,200003675044.0,Energy Assessor +41af284e326f3e3f7d0cd3f1f46f1638769ece15c5734c3bdde8bc5c87cf389c,2 Hollander Mews,,,ME14 1HW,10001395210,B,A,84,96,House,End-Terrace,2021-08-05,E07000110,E14000804,Kent,2021-08-05,new dwelling,87,99,84,-7.0,1.1,15,-0.1,70.0,70.0,196.0,196.0,67.0,41.0,76.0,standard tariff,,,N,,,100.0,,,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.12 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.28 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.12 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.31,,,,2 Hollander Mews,Maidstone,Maidstone and The Weald,MAIDSTONE,2021,2021-08-05 12:43:12,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,9.0,,10094443064.0,Address Matched +586787126312011020708470593090588,9 Mandeville Court,Union Street,,ME14 1JR,5854633868,C,C,74,76,Flat,End-Terrace,2011-02-01,E07000110,E14000804,Kent,2011-02-07,marketed sale,69,72,322,292.0,2.0,49,1.8,37.0,26.0,168.0,181.0,150.0,119.0,41.12,dual,N,Ground,N,3.0,2401.0,100.0,double glazing installed before 2002,Normal,0.0,2.0,2.0,58.0,0.0,"Electric immersion, off-peak",Poor,Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Timber frame, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,(another dwelling above),,,Electric storage heaters,Poor,Poor,Manual charge control,Poor,Poor,Low energy lighting in 58% of fixed outlets,Good,Good,electricity - this is for backwards compatibility only and should not be used,0.0,heated corridor,,2.35,0.0,N,natural,"9 Mandeville Court, Union Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2011-02-07 08:47:05,owner-occupied,,,200003700723.0,Address Matched +41b809c4bbb72019e1e6bef5e3712bf9593a7d7ad5820af3737d83ea43484c81,11 The Sprig,Bearsted,,ME14 4LH,10001343079,C,B,75,86,House,Semi-Detached,2021-09-16,E07000110,E14000700,Kent,2021-09-17,marketed sale,73,84,155,81.0,2.6,27,1.4,76.0,76.0,426.0,426.0,97.0,67.0,95.0,Single,Y,,,,,100.0,double glazing installed before 2002,Normal,1.0,6.0,6.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.3,0.0,N,natural,"11 The Sprig, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1976-1982,2021-09-17 14:32:54,Owner-occupied,12.0,,200003692873.0,Energy Assessor +505193149262010062510335727158380,4 Gordon Court,Well Street,Loose,ME15 0QF,8289437768,C,C,69,74,Flat,Semi-Detached,2010-06-25,E07000110,E14000804,Kent,2010-06-25,rental (private),64,68,205,180.0,3.3,42,2.9,96.0,48.0,327.0,336.0,179.0,140.0,79.08,dual,N,1st,Y,2.0,2106.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,0.0,0.0,From main system,Average,Average,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, oil",Average,Average,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,oil - this is for backwards compatibility only and should not be used,0.0,unheated corridor,5.23,2.7,0.0,N,natural,"4 Gordon Court, Well Street, Loose",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2010-06-25 10:33:57,rental (private),,,200003663534.0,Address Matched +638380961212014043022565093740781,"11, Birchwood Road",,,ME16 0BB,7130137868,E,C,52,80,House,Semi-Detached,2014-04-30,E07000110,E14000804,Kent,2014-04-30,none of the above,46,78,278,99.0,6.4,54,2.3,104.0,64.0,1120.0,649.0,171.0,79.0,120.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,7.0,7.0,38.0,0.0,From main system,Average,Average,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Average,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 38% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"11, Birchwood Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2014-04-30 22:56:50,owner-occupied,13.0,5.0,200003658417.0,Address Matched +93066078932011081718353108968002,"20, Foxglove Rise",,,ME14 2AF,7228056468,C,C,74,75,House,Mid-Terrace,2011-08-17,E07000110,E14000804,Kent,2011-08-17,marketed sale,75,77,157,146.0,2.1,30,2.0,80.0,40.0,346.0,352.0,81.0,81.0,71.56,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,2.37,0.0,,natural,"20, Foxglove Rise",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1991-1995,2011-08-17 18:35:31,owner-occupied,8.0,0.0,200003722756.0,Address Matched +287709400442009051908140760219188,"4, Hatch Road",Lenham,,ME17 2HL,2474902668,D,C,57,77,House,Semi-Detached,2009-05-18,E07000110,E14000700,Kent,2009-05-19,marketed sale,51,73,369,199.0,4.1,62,2.2,60.0,32.0,573.0,331.0,96.0,79.0,66.56,Unknown,Y,NO DATA!,,,2107.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,11.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 25 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Poor,Poor,Low energy lighting in 11% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.3,0.0,N,natural,"4, Hatch Road, Lenham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2009-05-19 08:14:07,owner-occupied,,,200003708354.0,Address Matched +237768180552011012412313691290959,"5, Buxton Close",,,ME15 6BJ,9963018568,C,C,71,75,Bungalow,Semi-Detached,2011-01-24,E07000110,E14000804,Kent,2011-01-24,marketed sale,66,71,247,213.0,2.9,41,2.5,42.0,42.0,498.0,430.0,96.0,96.0,70.87,Single,Y,NO DATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,4.0,4.0,90.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 250 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 90% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.3,0.0,N,natural,"5, Buxton Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2011-01-24 12:31:36,owner-occupied,,,200003676197.0,Address Matched +938975779312015021811003199950803,3 Springdale Terrace,Maidstone Road,Wateringbury,ME18 5EW,8365998078,D,C,58,76,House,Mid-Terrace,2015-02-16,E07000110,E14000804,Kent,2015-02-18,assessment for green deal,51,70,304,173.0,4.4,54,2.6,72.0,53.0,836.0,713.0,89.0,56.0,82.0,Unknown,Y,NODATA!,,,2104.0,90.0,double glazing installed during or after 2002,Normal,1.0,4.0,4.0,63.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Mostly double glazing,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 63% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"3 Springdale Terrace, Maidstone Road, Wateringbury",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2015-02-18 11:00:31,owner-occupied,,,200003658783.0,Address Matched +201930876312010090918192293000452,"5, Melville Road",,,ME15 7UY,4227635568,D,D,64,66,House,Mid-Terrace,2010-09-09,E07000110,E14000804,Kent,2010-09-09,marketed sale,59,60,286,277.0,3.9,48,3.8,86.0,43.0,605.0,614.0,98.0,98.0,81.8,Single,Y,NO DATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,4.0,4.0,0.0,0.0,From main system,Very Good,Very Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,0.0,N,natural,"5, Melville Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2010-09-09 18:19:22,owner-occupied,,,200003696090.0,Address Matched +752661359222012022814425015288772,"196, Kingfisher Meadow",,,ME16 8RD,7156575968,D,D,55,67,Flat,Semi-Detached,2012-02-28,E07000110,E14000804,Kent,2012-02-28,rental (private),46,44,338,357.0,6.2,60,6.5,112.0,63.0,845.0,604.0,199.0,166.0,102.8,dual,N,3rd,Y,,2603.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,0.0,0.0,"Electric immersion, off-peak",Average,Very Poor,"Suspended, insulated (assumed)",,,Fully double glazed,Good,Good,"System built, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Room heaters, electric",Poor,Very Poor,Programmer and appliance thermostats,Good,Good,No low energy lighting,Very Poor,Very Poor,electricity (not community),0.0,no corridor,,2.436,0.0,,natural,"196, Kingfisher Meadow",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2012-02-28 14:42:50,rental (private),12.0,0.0,10022892407.0,Address Matched +579184079902011062516325188292558,"19, Belmont Close",,,ME16 9DY,6968672868,D,C,59,70,House,Semi-Detached,2011-06-25,E07000110,E14000804,Kent,2011-06-25,marketed sale,54,69,256,174.0,5.0,49,3.4,85.0,53.0,677.0,538.0,215.0,111.0,112.19,dual,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,5.0,5.0,40.0,0.0,"From main system, no cylinder thermostat",Poor,Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 40% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,2.35,0.0,,natural,"19, Belmont Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2011-06-25 16:32:51,owner-occupied,15.0,6.0,200003664779.0,Address Matched +41d920b6c32ddb7718c569bee6f7a300e4cd4680957ebd7bdb8a0660ff351400,12 KENILWORTH HOUSE,WOODFORD ROAD,,ME16 9BY,8875402768,C,C,78,79,Flat,Semi-Detached,2021-07-07,E07000110,E14000804,Kent,2021-07-07,rental,81,81,132,127.0,1.4,23,1.4,79.0,55.0,242.0,245.0,80.0,80.0,62.0,Single,Y,02,N,,,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,57.0,0.0,From main system,Good,Good,(another dwelling below),,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 57% of fixed outlets,Good,Good,mains gas (not community),0.0,no corridor,,2.29,0.0,N,natural,"12 KENILWORTH HOUSE, WOODFORD ROAD",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2021-07-07 15:45:06,Rented (social),7.0,,200003686716.0,Energy Assessor +1152637819702014100820082126440268,"18, Sunburst Close",Marden,,TN12 9TS,713214278,D,B,64,91,House,Semi-Detached,2014-06-06,E07000110,E14000804,Kent,2014-10-08,assessment for green deal,61,92,215,29.0,3.5,41,0.6,88.0,52.0,607.0,376.0,137.0,75.0,85.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,29.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, limited insulation (assumed)",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 29% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"18, Sunburst Close, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1976-1982,2014-10-08 20:08:21,owner-occupied,14.0,4.0,200003711260.0,Address Matched +450383299062010030821324363788940,"8, Selby Road",,,ME15 9PT,4608943768,D,C,60,75,House,Mid-Terrace,2010-03-08,E07000110,E14000700,Kent,2010-03-08,marketed sale,54,71,330,203.0,4.2,55,2.6,76.0,40.0,586.0,395.0,159.0,113.0,86.16,Single,Y,NO DATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,9.0,0.0,From main system,Average,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Average,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 9% of fixed outlets,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.32,0.0,N,natural,"8, Selby Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2010-03-08 21:32:43,owner-occupied,,,200003680114.0,Address Matched +41eb3f377a66ebb164a48f7d33a105b9fa6dc42c1e863877af61387c762e859c,3 Pennywood Cottages,Lughorse Lane,Yalding,ME18 6ED,10001464815,E,C,47,77,House,Semi-Detached,2021-09-21,E07000110,E14000804,Kent,2021-09-21,marketed sale,48,76,219,79.0,6.5,52,2.7,99.0,99.0,960.0,551.0,180.0,88.0,125.0,dual,N,,,,,100.0,double glazing installed during or after 2002,Normal,3.0,6.0,6.0,100.0,1.0,From main system,Poor,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, smokeless fuel",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, B30K",Poor,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,B30K (not community),0.0,,,2.53,0.0,N,natural,"3 Pennywood Cottages, Lughorse Lane, Yalding",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2021-09-21 16:59:48,Owner-occupied,15.0,,200003662637.0,Energy Assessor +27306899342011101710314757099138,Swan House,College Avenue,,ME15 6YJ,318690568,C,C,77,78,House,Detached,2011-10-17,E07000110,E14000804,Kent,2011-10-17,marketed sale,76,76,117,112.0,4.5,22,4.3,134.0,78.0,691.0,700.0,105.0,105.0,201.44,Single,Y,NODATA!,,,2110.0,100.0,double glazing installed during or after 2002,Normal,0.0,8.0,8.0,29.0,0.0,From main system,Good,Good,"Suspended, insulated (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, mains gas",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in 29% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,2.56,0.0,,natural,"Swan House, College Avenue",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2011-10-17 10:31:47,owner-occupied,28.0,8.0,10022900427.0,Address Matched +1481748521632016092212453875278801,Flat 9 The Beeches,St. Andrews Road,,ME16 9AN,2165837478,C,C,79,79,Flat,Detached,2016-09-22,E07000110,E14000804,Kent,2016-09-22,new dwelling,81,81,135,135.0,1.3,24,1.3,39.0,39.0,246.0,246.0,72.0,72.0,53.0,standard tariff,,top floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Good,Good,Average thermal transmittance 0.32 W/m-¦K,Good,Good,,,,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Flat 9 The Beeches, St. Andrews Road",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2016-09-22 12:45:38,owner-occupied,6.0,6.0,10091196251.0,Address Matched +1113512239402019100916595327110038,"266, Queens Road",,,ME16 0LD,1439831278,C,B,71,85,House,End-Terrace,2019-10-07,E07000110,E14000804,Kent,2019-10-09,marketed sale,69,84,189,80.0,2.4,34,1.1,56.0,56.0,442.0,409.0,80.0,52.0,72.0,Unknown,Y,NODATA!,,,2111.0,100.0,double glazing installed during or after 2002,Normal,4.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Solid brick, with internal insulation",Good,Good,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,TRVs and bypass,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"266, Queens Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2019-10-09 16:59:53,owner-occupied,,,200003657022.0,Address Matched +1145955635432014052709280924278306,"255, Boxley Road",Penenden Heath,,ME14 2AS,3654363278,E,B,48,82,House,Detached,2014-05-23,E07000110,E14000804,Kent,2014-05-27,rental (private),42,79,287,89.0,8.4,55,2.6,147.0,73.0,1293.0,698.0,349.0,79.0,151.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,2.0,6.0,6.0,0.0,0.0,"From main system, no cylinder thermostat",Poor,Poor,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"255, Boxley Road, Penenden Heath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2014-05-27 09:28:09,rental (private),16.0,0.0,200003701702.0,Address Matched +1568392819922017081722102713738843,"276, Willington Street",,,ME15 8AT,4191153578,D,B,64,84,House,Semi-Detached,2017-08-17,E07000110,E14000700,Kent,2017-08-17,rental (social),57,80,249,103.0,4.7,44,2.0,85.0,67.0,795.0,537.0,141.0,84.0,107.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,1.0,6.0,6.0,73.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 73% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"276, Willington Street",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2017-08-17 22:10:27,rental (social),,,200003684470.0,Address Matched +289379520942009052107160465212908,"104, The Landway",Bearsted,,ME14 4LD,2916122668,E,D,44,62,House,Semi-Detached,2009-05-20,E07000110,E14000700,Kent,2009-05-21,marketed sale,39,55,482,327.0,5.9,80,4.0,66.0,38.0,748.0,572.0,177.0,95.0,72.7,dual,Y,NO DATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,1.0,5.0,5.0,25.0,0.0,"From main system, no cylinderstat",Poor,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, mains gas",,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Average,Good,Programmer and room thermostat,Poor,Poor,Low energy lighting in 25% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.3,0.0,N,natural,"104, The Landway, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2009-05-21 07:16:04,owner-occupied,,,200003692692.0,Address Matched +1157238581252014061308325494940621,"2, Stansted Close",,,ME16 0RL,6177144278,D,B,61,88,Bungalow,Semi-Detached,2014-06-11,E07000110,E14000804,Kent,2014-06-13,marketed sale,60,90,269,45.0,2.7,52,0.5,63.0,34.0,509.0,353.0,95.0,54.0,52.0,Single,Y,NODATA!,,,2102.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,14.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,Low energy lighting in 14% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"2, Stansted Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2014-06-13 08:32:54,owner-occupied,7.0,1.0,200003660897.0,Address Matched +613003989022011040515301935158129,"5, Matterdale Gardens",Barming,,ME16 9HW,2329845868,C,C,69,75,House,Mid-Terrace,2011-04-05,E07000110,E14000804,Kent,2011-04-05,marketed sale,68,74,216,174.0,3.3,35,2.7,85.0,52.0,520.0,455.0,148.0,124.0,92.8,Single,Y,NO DATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,0.0,36.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,Portable electric heaters,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 36% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,0.0,N,natural,"5, Matterdale Gardens, Barming",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1991-1995,2011-04-05 15:30:19,owner-occupied,,,200003666641.0,Address Matched +1469417819022016080815505346788446,"5, Milton Grove",Penenden Heath,,ME14 2FF,4411156478,A,A,92,93,House,Detached,2016-08-08,E07000110,E14000804,Kent,2016-08-08,new dwelling,91,93,39,28.0,1.0,7,0.7,80.0,80.0,351.0,353.0,116.0,62.0,139.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.12 W/m+é-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.20 W/m+é-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m+é-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"5, Milton Grove, Penenden Heath",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2016-08-08 15:50:53,unknown,50.0,50.0,10091194440.0,Address Matched +597381369922012031916554334418542,"30, Hereford Road",,,ME15 7NE,4360624868,D,C,67,69,House,Semi-Detached,2012-03-19,E07000110,E14000700,Kent,2012-03-19,rental (social),66,68,212,197.0,3.0,41,2.8,57.0,42.0,496.0,470.0,101.0,101.0,74.35,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,4.0,4.0,63.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 63% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,2.46,0.0,,natural,"30, Hereford Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2012-03-19 16:55:43,rental (social),8.0,5.0,200003712425.0,Address Matched +527837938032010081619153744968904,"39, John Street",,,ME14 2SQ,3444998768,E,D,53,56,House,Mid-Terrace,2010-08-16,E07000110,E14000804,Kent,2010-08-16,marketed sale,57,59,316,302.0,5.1,45,4.8,114.0,61.0,948.0,938.0,118.0,118.0,113.7,Single,Y,NO DATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,12.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 12% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.24,0.0,N,natural,"39, John Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2010-08-16 19:15:37,owner-occupied,,,200003702854.0,Address Matched +870631699922013011517405014408437,Street Farm Cottage,The Street,Boxley,ME14 3DR,3154914078,E,C,53,71,House,Detached,2013-01-10,E07000110,E14000700,Kent,2013-01-15,marketed sale,46,66,250,147.0,8.6,48,5.2,142.0,76.0,1404.0,1098.0,159.0,74.0,179.0,Single,Y,NODATA!,,,2106.0,90.0,"double glazing, unknown install date",Normal,2.0,10.0,10.0,12.0,0.0,"From main system, no cylinder thermostat",Average,Average,"Suspended, no insulation (assumed)",,,Mostly double glazing,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 12% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"Street Farm Cottage, The Street, Boxley",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2013-01-15 17:40:50,owner-occupied,34.0,4.0,200003673349.0,Address Matched +1613976369032020010922502633078506,"123, Sutton Road",,,ME15 9AA,6613576578,D,B,56,84,House,Semi-Detached,2020-01-09,E07000110,E14000700,Kent,2020-01-09,marketed sale,48,81,316,101.0,5.5,56,1.8,81.0,81.0,945.0,510.0,126.0,72.0,98.0,dual,Y,NODATA!,,,2111.0,100.0,double glazing installed during or after 2002,Normal,1.0,5.0,5.0,100.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 270 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,TRVs and bypass,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"123, Sutton Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2020-01-09 22:50:26,owner-occupied,,,200003713317.0,Address Matched +500918406032010062012574280268109,28 Midhurst Court,Mote Road,,ME15 6EH,910117768,C,B,75,83,Flat,Mid-Terrace,2010-06-20,E07000110,E14000804,Kent,2010-06-20,rental (social),72,82,247,160.0,1.9,41,1.3,24.0,24.0,297.0,204.0,113.0,96.0,47.04,Single,Y,4th,N,13.0,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,100.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,unheated corridor,4.55,2.27,0.0,N,natural,"28 Midhurst Court, Mote Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2010-06-20 12:57:42,rental (social),,,200003693335.0,Address Matched +1742535049062019080908490936688731,"55, Peel Street",,,ME14 2SB,3314406678,D,B,63,88,House,Mid-Terrace,2019-08-08,E07000110,E14000804,Kent,2019-08-09,rental (private),59,88,271,62.0,3.1,48,0.7,90.0,51.0,508.0,334.0,101.0,59.0,64.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,4.0,4.0,22.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 270 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 22% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"55, Peel Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2019-08-09 08:49:09,rental (private),,,200003702396.0,Address Matched +305469806612020060516123923000462,"18, Crispin Court",Coxheath,,ME17 4RB,4257633668,D,C,67,75,Flat,Semi-Detached,2020-06-05,E07000110,E14000804,Kent,2020-06-05,rental (social),66,76,252,176.0,2.5,44,1.7,79.0,48.0,431.0,311.0,89.0,89.0,56.0,Single,Y,Ground,N,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,33.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 33% of fixed outlets,Average,Average,mains gas (not community),0.0,no corridor,,,,N,natural,"18, Crispin Court, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2020-06-05 16:12:39,rental (social),,,200003715356.0,Address Matched +1131699239262014042810304922658424,Northdown House,Lower Street,Leeds,ME17 1RJ,2278362278,C,C,69,80,House,Detached,2014-04-25,E07000110,E14000700,Kent,2014-04-28,marketed sale,65,76,154,100.0,5.8,30,3.9,170.0,85.0,997.0,938.0,133.0,133.0,197.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,2.0,8.0,8.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 25 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"Northdown House, Lower Street, Leeds",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2014-04-28 10:30:49,owner-occupied,22.0,0.0,200003698459.0,Address Matched +47987602832008121515203136968497,Flat 4,Broadway Heights,23 The Broadway,ME16 8GJ,736465568,B,B,83,84,Flat,Detached,2008-12-15,E07000110,E14000804,Kent,2008-12-15,new dwelling,84,84,131,129.0,1.2,0,1.2,32.0,26.0,190.0,190.0,65.0,65.0,0.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,12.0,,SAP05:Hot-Water,,,SAP05:Floor,,,SAP05:Windows,,,SAP05:Walls,,,SAP05:Secondary-Heating,,,SAP05:Roof,,,SAP05:Main-Heating,,,SAP05:Main-Heating-Controls,,,SAP05:Lighting,,,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,,,,NO DATA!,"Flat 4, Broadway Heights, 23 The Broadway",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2008-12-15 15:20:31,,16.0,12.0,10022896828.0,Address Matched +42545f473c9b85ef85e45c20ddae0cd61980791419e806bee595335a2840bda0,FLAT 46,PEVENSEY COURT,,ME16 0GQ,10001640739,C,C,74,78,Flat,Mid-Terrace,2021-07-14,E07000110,E14000804,Kent,2021-07-14,rental,61,65,263,233.0,3.0,44,2.7,100.0,70.0,381.0,305.0,197.0,197.0,67.0,dual,N,01,N,,,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,57.0,0.0,"Electric immersion, off-peak",Average,Poor,"To external air, insulated (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,(another dwelling above),,,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 57% of fixed outlets,Good,Good,electricity (not community),0.0,unheated corridor,8.65,2.3,0.0,N,natural,"FLAT 46, PEVENSEY COURT",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2021-07-14 17:30:54,Rented (social),7.0,,10022893643.0,Energy Assessor +1232814198912014111520172297949124,"35, Giddy Horn Lane",,,ME16 0JX,1497879278,D,C,60,80,House,Semi-Detached,2014-11-15,E07000110,E14000804,Kent,2014-11-15,marketed sale,55,78,214,97.0,5.6,41,2.6,134.0,70.0,1048.0,693.0,123.0,109.0,137.0,Single,Y,NODATA!,,,2102.0,100.0,double glazing installed before 2002,Normal,3.0,6.0,6.0,7.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,Low energy lighting in 7% of fixed outlets,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"35, Giddy Horn Lane",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2014-11-15 20:17:22,owner-occupied,46.0,3.0,200003657071.0,Address Matched +675008939932011111415002661968198,21 Charlton Lane,West Farleigh,,ME15 0NX,3801199868,C,C,74,74,House,End-Terrace,2011-11-14,E07000110,E14000804,Kent,2011-11-14,new dwelling,80,81,107,103.0,1.8,24,1.7,62.0,45.0,325.0,330.0,162.0,162.0,74.52,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,6.0,,From main system,Poor,Good,Average thermal transmittance 0.12 W/m?K,Very Good,Very Good,Fully double glazed,Good,Good,Average thermal transmittance 0.26 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.15 W/m?K,Good,Good,"Boiler and radiators, LPG",Average,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 60% of fixed outlets,Good,Good,LPG - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.6,,,NO DATA!,"21 Charlton Lane, West Farleigh",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2011-11-14 15:00:26,,10.0,6.0,10014313693.0,Address Matched +172629210502008102412265252382428,Flat 58 Lee Heights,Bambridge Court,,ME14 2LG,8529813568,D,B,64,82,Flat,Enclosed End-Terrace,2008-10-22,E07000110,E14000804,Kent,2008-10-24,rental (private),75,75,194,196.0,2.2,29,2.2,70.0,40.0,195.0,139.0,258.0,119.0,75.33,Unknown,N,2nd,N,4.0,2602.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,12.0,0.0,"Electric immersion, standard tariff",Very Poor,Poor,(other premises below),,,Fully double glazed,Good,Good,"System built, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Room heaters, electric",Very Poor,Poor,Appliance thermostats,Good,Good,Low energy lighting in 12% of fixed outlets,Poor,Poor,electricity - this is for backwards compatibility only and should not be used,0.0,unheated corridor,10.08,2.25,0.0,N,natural,"Flat 58 Lee Heights, Bambridge Court",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2008-10-24 12:26:52,rental (private),,,10022893029.0,Address Matched +746486729062012020611544035768242,"22, South Bank",Staplehurst,,TN12 0BD,4360235968,D,C,65,69,House,Semi-Detached,2012-02-06,E07000110,E14000804,Kent,2012-02-06,rental (social),62,67,220,191.0,3.9,42,3.4,75.0,50.0,633.0,563.0,106.0,106.0,93.39,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,4.0,4.0,50.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,2.42,0.0,,natural,"22, South Bank, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1950-1966,2012-02-06 11:54:40,rental (social),12.0,6.0,200003676996.0,Address Matched +856038819242015063009482507352518,Flat,"33, Union Street",,ME14 1ED,255613078,E,C,51,72,Flat,End-Terrace,2015-06-29,E07000110,E14000804,Kent,2015-06-30,rental (private),32,59,628,328.0,5.1,106,2.7,46.0,46.0,644.0,303.0,154.0,129.0,48.0,dual,N,1st,Y,,2404.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,75.0,0.0,"From main system, no cylinder thermostat",Very Poor,Very Poor,(other premises below),NO DATA!,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,Portable electric heaters (assumed),,,"Pitched, 150 mm loft insulation",Good,Good,Electric storage heaters,Average,Poor,Controls for high heat retention storage heaters,Good,Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,electricity (not community),0.0,no corridor,,,,N,natural,"Flat, 33, Union Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2015-06-30 09:48:25,rental (private),,,200003729486.0,Address Matched +746901026752019050408452093010091,The Court Yard,Ashford Road,Harrietsham,ME17 1BH,154635968,C,C,74,80,House,Detached,2019-05-02,E07000110,E14000700,Kent,2019-05-04,marketed sale,69,74,151,124.0,5.7,27,4.7,127.0,127.0,930.0,930.0,128.0,128.0,213.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,7.0,7.0,84.0,0.0,From main system,Good,Good,"Solid, limited insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 84% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"The Court Yard, Ashford Road, Harrietsham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1996-2002,2019-05-04 08:45:20,owner-occupied,,,200003703867.0,Address Matched +1253374561712015010518061292050634,"10, Headcorn Road",Platts Heath,,ME17 2NH,6464121378,D,A,57,93,House,Detached,2015-01-05,E07000110,E14000700,Kent,2015-01-05,none of the above,53,87,190,12.0,6.4,44,1.5,151.0,87.0,1115.0,773.0,152.0,100.0,145.0,dual,N,NODATA!,,,2106.0,100.0,triple glazing,Normal,2.0,5.0,5.0,26.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully triple glazed,Good,Good,"Cavity wall, as built, partial insulation (assumed)",Average,Average,"Room heaters, wood logs",,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, oil",Average,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 26% of fixed outlets,Average,Average,oil (not community),0.0,NO DATA!,,,,N,natural,"10, Headcorn Road, Platts Heath",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1976-1982,2015-01-05 18:06:12,owner-occupied,,,200003714043.0,Address Matched +906388099812013032911272596270606,"42, Beauworth Park",,,ME15 8EU,6633966078,D,B,66,84,House,Detached,2013-03-29,E07000110,E14000700,Kent,2013-03-29,marketed sale,64,84,189,72.0,3.8,36,1.5,112.0,56.0,586.0,458.0,135.0,71.0,105.0,Single,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,7.0,7.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Timber frame, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"42, Beauworth Park",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2013-03-29 11:27:25,owner-occupied,13.0,0.0,200003684769.0,Address Matched +1474891669312016090809061998060245,"9, Hope Street",,,ME14 2TF,2587986478,D,B,61,82,House,Mid-Terrace,2016-09-08,E07000110,E14000804,Kent,2016-09-08,marketed sale,56,81,244,94.0,4.6,43,1.8,66.0,66.0,938.0,584.0,114.0,76.0,108.0,Unknown,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, electric",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,2.4,,N,natural,"9, Hope Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2016-09-08 09:06:19,owner-occupied,,,200003669900.0,Address Matched +1568275059242017081721095159339238,"4, Weld Close",Staplehurst,,TN12 0SJ,2272253578,D,B,56,88,House,Semi-Detached,2017-08-17,E07000110,E14000804,Kent,2017-08-17,marketed sale,49,87,331,67.0,4.3,58,0.9,70.0,51.0,613.0,358.0,251.0,70.0,73.0,Single,Y,NODATA!,,,2102.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,62.0,0.0,"From main system, no cylinder thermostat",Poor,Poor,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,Low energy lighting in 62% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"4, Weld Close, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1976-1982,2017-08-17 21:09:51,owner-occupied,,,200003678712.0,Address Matched +521095509062010080216504438328230,"23, Silver Tree Close",,,ME5 9ST,3382058768,E,D,54,67,House,Detached,2010-08-02,E07000110,E14000700,Kent,2010-08-02,marketed sale,51,65,310,217.0,6.1,51,4.2,93.0,66.0,935.0,700.0,192.0,137.0,119.1,Single,Y,NO DATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,8.0,6.0,60.0,0.0,From main system,Average,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Average,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 60% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.12,0.0,N,natural,"23, Silver Tree Close",Maidstone,Faversham and Mid Kent,CHATHAM,England and Wales: 1991-1995,2010-08-02 16:50:44,owner-occupied,,,200003709222.0,Address Matched +1076851137452014031213581797940513,"23, Berwyn Grove",,,ME15 9RD,5373778178,D,B,57,89,House,Semi-Detached,2014-03-12,E07000110,E14000804,Kent,2014-03-12,none of the above,53,90,254,44.0,4.5,49,0.8,104.0,54.0,739.0,354.0,183.0,84.0,92.0,Single,Y,NODATA!,,,2107.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,9.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 9% of fixed outlets,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"23, Berwyn Grove",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2014-03-12 13:58:17,owner-occupied,11.0,1.0,200003674999.0,Address Matched +416516219302010010422291375100348,"79, Northumberland Road",,,ME15 7TA,3376311768,C,C,69,78,Flat,Mid-Terrace,2010-01-04,E07000110,E14000700,Kent,2010-01-04,rental (social),64,75,303,208.0,2.6,51,1.8,27.0,27.0,338.0,290.0,167.0,89.0,51.83,Single,Y,Ground,N,2.0,2106.0,55.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,100.0,0.0,From main system,Average,Good,"Solid, no insulation (assumed)",,,Partial double glazing,Poor,Poor,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Average,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.4,0.0,N,natural,"79, Northumberland Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2010-01-04 22:29:13,rental (social),,,200003683998.0,Address Matched +324390689062020021710591024478451,"91, Loose Road",,,ME15 7DA,5295864668,E,B,46,81,House,Detached,2019-11-03,E07000110,E14000700,Kent,2020-02-17,marketed sale,43,80,353,107.0,6.8,62,2.1,152.0,76.0,1319.0,626.0,103.0,71.0,109.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,0.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"91, Loose Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2020-02-17 10:59:10,owner-occupied,,,200003683827.0,Address Matched +1102111656812014030612150295040129,"11, Hadlow Close",Oakwood Park,,ME16 8FS,1905650278,B,B,84,84,House,Semi-Detached,2014-03-06,E07000110,E14000804,Kent,2014-03-06,new dwelling,86,86,80,80.0,1.4,15,1.4,55.0,55.0,261.0,261.0,104.0,104.0,95.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.12 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.19 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"11, Hadlow Close, Oakwood Park",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2014-03-06 12:15:02,NO DATA!,0.0,0.0,10014314522.0,Address Matched +1362164141532015092910152494278102,"20, Charlbury Close",,,ME16 8TE,4234198378,D,B,57,81,House,Semi-Detached,2015-09-29,E07000110,E14000804,Kent,2015-09-29,ECO assessment,52,80,276,103.0,4.7,48,1.8,118.0,61.0,882.0,584.0,135.0,74.0,98.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,6.0,6.0,7.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, limited insulation",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 7% of fixed outlets,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"20, Charlbury Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2015-09-29 10:15:24,owner-occupied,,,200003657575.0,Address Matched +917887070612017032012245395230809,"24, Beauworth Park",,,ME15 8EU,8932057078,E,B,53,86,House,Detached,2017-03-20,E07000110,E14000700,Kent,2017-03-20,assessment for green deal,44,83,330,86.0,7.0,58,1.9,70.0,70.0,1140.0,530.0,271.0,78.0,120.0,Single,Y,NODATA!,,,2111.0,100.0,"double glazing, unknown install date",More Than Typical,1.0,7.0,7.0,100.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Timber frame, as built, insulated (assumed)",Good,Good,,,,"Pitched, no insulation",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,TRVs and bypass,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"24, Beauworth Park",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2017-03-20 12:24:53,owner-occupied,,,200003684754.0,Address Matched +367844570602009092309002867712128,4 Valley Court,"69, Tonbridge Road",Teston,ME18 5BT,1680577668,D,D,59,60,Maisonette,NO DATA!,2009-09-22,E07000110,E14000804,Kent,2009-09-23,new dwelling,74,75,201,197.0,2.6,29,2.6,78.0,49.0,436.0,450.0,306.0,306.0,31.3,standard tariff,,top floor,,,,,NO DATA!,NO DATA!,,,,4.0,,"Electric immersion, standard tariff",Very Poor,Poor,Average thermal transmittance 0.20 W/m?K,Very Good,Very Good,Fully double glazed,Good,Good,Average thermal transmittance 0.29 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.16 W/m?K,Good,Good,Electric underfloor heating,Very Poor,Poor,Time and temperature zone control,Good,Good,Low energy lighting in 40% of fixed outlets,Average,Average,"Electricity: electricity, unspecified tariff",0.0,NO DATA!,,2.4,,,NO DATA!,"4 Valley Court, 69, Tonbridge Road, Teston",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2009-09-23 09:00:28,,10.0,4.0,10014307895.0,Address Matched +1235071699002014111217433824949728,"36, Camden Street",,,ME14 1UU,5015499278,D,B,65,83,House,End-Terrace,2014-11-12,E07000110,E14000804,Kent,2014-11-12,assessment for green deal,62,82,200,82.0,3.7,39,1.6,80.0,57.0,724.0,542.0,88.0,59.0,95.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,2.0,4.0,4.0,60.0,0.0,From main system,Good,Good,"To unheated space, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 60% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"36, Camden Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2014-11-12 17:43:38,rental (social),10.0,6.0,200003699129.0,Address Matched +42b626d42e4aa3a7c3a52b0b1cfbcd9f239c0490d30ba38911c0eb2ef5e04ef5,41 Mangravet Avenue,,,ME15 9BG,10001492723,C,B,71,87,House,Mid-Terrace,2021-08-18,E07000110,E14000700,Kent,2021-08-18,rental,70,86,206,79.0,2.5,36,1.0,80.0,58.0,382.0,358.0,120.0,72.0,68.0,Single,Y,,,,,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,63.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 63% of fixed outlets,Good,Good,mains gas (not community),0.0,,,2.39,0.0,N,natural,41 Mangravet Avenue,Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2021-08-18 18:31:01,Rented (social),8.0,,200003713794.0,Energy Assessor +866696289262012123110062553338879,"15, Ellingham Leas",,,ME15 9AQ,7551883078,B,B,85,85,House,Detached,2011-09-27,E07000110,E14000700,Kent,2012-12-31,new dwelling,87,87,71,71.0,2.3,12,2.3,92.0,92.0,454.0,454.0,56.0,56.0,189.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,1.0,"From main system, plus solar",Very Good,Very Good,Average thermal transmittance 0.12 W/mA?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.22 W/mA?K,Very Good,Very Good,"Room heaters, wood logs",,,Average thermal transmittance 0.10 W/mA?K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in 84% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"15, Ellingham Leas",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2012-12-31 10:06:25,NO DATA!,61.0,51.0,10014313082.0,Address Matched +404954943912009120113254803019172,"52, Charlton Street",,,ME16 8LA,1232330768,D,D,57,64,House,Mid-Terrace,2009-12-01,E07000110,E14000804,Kent,2009-12-01,marketed sale,59,66,333,284.0,3.7,48,3.1,73.0,38.0,618.0,562.0,128.0,109.0,76.8,Single,Y,NO DATA!,,,2106.0,70.0,double glazing installed before 2002,Normal,2.0,5.0,5.0,9.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Partial double glazing,Poor,Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Flat, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 9% of fixed outlets,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.46,0.0,N,natural,"52, Charlton Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2009-12-01 13:25:48,owner-occupied,,,200003655422.0,Address Matched +894912750152013031123050299970309,"6, Old Dover Works",,,ME16 8GY,3960095078,C,B,79,87,House,End-Terrace,2013-03-11,E07000110,E14000804,Kent,2013-03-11,marketed sale,79,87,102,53.0,2.6,20,1.4,67.0,67.0,434.0,437.0,103.0,64.0,132.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,6.0,6.0,100.0,0.0,From main system,Good,Good,"Suspended, insulated (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"6, Old Dover Works",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2013-03-11 23:05:02,owner-occupied,15.0,15.0,10014308292.0,Address Matched +1726475589002019060521271563417998,Flat 7 The Coach House,"22, Lower Stone Street",,ME15 6LX,5033984678,D,C,65,78,Flat,Mid-Terrace,2019-05-31,E07000110,E14000804,Kent,2019-06-05,marketed sale,46,63,436,284.0,4.1,74,2.6,48.0,48.0,560.0,278.0,165.0,165.0,55.0,dual,N,1st,Y,,2401.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,100.0,0.0,"Electric immersion, off-peak",Average,Poor,(another dwelling below),NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,Portable electric heaters (assumed),,,"Pitched, 200 mm loft insulation",Good,Good,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,no corridor,,,,N,natural,"Flat 7 The Coach House, 22, Lower Stone Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2019-06-05 21:27:15,owner-occupied,,,10094440934.0,Address Matched +617975659922011041414341675148059,Flat 6,"6a, Bower Mount Road",,ME16 8AU,5736585868,B,B,87,87,Flat,End-Terrace,2011-04-14,E07000110,E14000804,Kent,2011-04-14,new dwelling,87,87,118,118.0,0.8,19,0.8,24.0,24.0,188.0,188.0,72.0,72.0,42.8,standard tariff,,top floor,,,,,NO DATA!,NO DATA!,,,,,,From main system,Very Good,Very Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.20 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.13 W/m?K,Very Good,Very Good,"Boiler and underfloor heating, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,,,NO DATA!,"Flat 6, 6a, Bower Mount Road",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2011-04-14 14:34:16,,,,10014312052.0,Address Matched +359760669722017043020360917208203,"28, Upper Fant Road",,,ME16 8DN,110617668,E,D,51,66,House,Mid-Terrace,2017-04-30,E07000110,E14000804,Kent,2017-04-30,marketed sale,42,55,316,219.0,7.1,56,4.9,147.0,74.0,1265.0,1133.0,113.0,76.0,127.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,0.0,2.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Sandstone or limestone, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, mains gas",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"28, Upper Fant Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2017-04-30 20:36:09,owner-occupied,,,200003668323.0,Address Matched +720734546712011110716013291099294,Flat 3 Cavendish Place,Cavendish Way,Bearsted,ME15 8FW,2400613968,B,B,84,84,Flat,NO DATA!,2011-11-07,E07000110,E14000700,Kent,2011-11-07,new dwelling,87,88,84,81.0,1.0,16,1.0,48.0,38.0,218.0,219.0,79.0,79.0,65.1,standard tariff,,top floor,,,,,NO DATA!,NO DATA!,,,,6.0,,From main system,Good,Good,(other premises below),,,Fully double glazed,Good,Good,Average thermal transmittance 0.21 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.10 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,,,NO DATA!,"Flat 3 Cavendish Place, Cavendish Way, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2011-11-07 16:01:32,,8.0,6.0,10014312980.0,Address Matched +879214658852013020311464197070004,Flat 1,"40, Kingsley Road",,ME15 7UW,463874078,C,C,74,79,Flat,Mid-Terrace,2013-02-02,E07000110,E14000804,Kent,2013-02-03,marketed sale,77,82,154,118.0,1.7,29,1.3,50.0,38.0,238.0,228.0,145.0,98.0,57.0,Single,Y,1st,N,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,67.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 67% of fixed outlets,Good,Good,mains gas (not community),0.0,unheated corridor,3.4,,0.0,,natural,"Flat 1, 40, Kingsley Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2013-02-03 11:46:41,owner-occupied,9.0,6.0,200003696052.0,Address Matched +1441040549902016051022342046460368,"19, Buffkyn Way",,,ME15 8FY,8995944478,B,B,87,87,Flat,NO DATA!,2016-05-06,E07000110,E14000700,Kent,2016-05-10,new dwelling,91,91,62,62.0,0.6,11,0.6,40.0,40.0,174.0,174.0,75.0,75.0,56.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.21 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"19, Buffkyn Way",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2016-05-10 22:34:20,unknown,1.0,1.0,10091193654.0,Address Matched +815809529442012071915115800029518,"413, Sutton Road",,,ME15 9BX,6400920078,D,B,62,86,House,Semi-Detached,2012-07-19,E07000110,E14000700,Kent,2012-07-19,none of the above,59,87,236,59.0,3.4,45,0.9,54.0,42.0,495.0,356.0,174.0,69.0,74.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,73.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"System built, with internal insulation",Good,Good,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 73% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"413, Sutton Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2012-07-19 15:11:58,unknown,15.0,11.0,200003681397.0,Address Matched +686623174912014061611392397940395,Flat 8/A Elizabeth House,Alexandra Street,,ME14 2BU,3531470968,D,C,60,79,Flat,Mid-Terrace,2014-06-13,E07000110,E14000804,Kent,2014-06-16,none of the above,52,65,438,316.0,2.7,78,1.9,49.0,26.0,405.0,157.0,155.0,102.0,35.0,dual,N,Ground,N,,2601.0,100.0,double glazing installed before 2002,Normal,0.0,1.0,1.0,0.0,0.0,"Electric immersion, off-peak",Poor,Very Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,(another dwelling above),,,"Room heaters, electric",Poor,Very Poor,No thermostatic control of room temperature,Poor,Poor,No low energy lighting,Very Poor,Very Poor,electricity (not community),0.0,no corridor,,,0.0,,natural,"Flat 8/A Elizabeth House, Alexandra Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2014-06-16 11:39:23,rental (private),4.0,0.0,200003704574.0,Address Matched +884549757752013021810535190970605,"13, Penhurst Close",Weavering,,ME14 5BT,6591705078,D,C,61,70,Maisonette,End-Terrace,2013-02-13,E07000110,E14000700,Kent,2013-02-18,marketed sale,46,56,362,282.0,4.4,64,3.5,98.0,49.0,507.0,380.0,130.0,130.0,69.0,dual,N,2nd,Y,,2401.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,0.0,0.0,"Electric immersion, off-peak",Average,Very Poor,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,"Pitched, 50 mm loft insulation",Poor,Poor,Electric storage heaters,Poor,Very Poor,Manual charge control,Poor,Poor,No low energy lighting,Very Poor,Very Poor,electricity (not community),0.0,no corridor,,,0.0,,natural,"13, Penhurst Close, Weavering",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2013-02-18 10:53:51,unknown,10.0,0.0,200003689963.0,Address Matched +82167769742017011909074242539218,"4, Highridge Close",Weavering,,ME14 5XQ,8794865468,D,B,67,85,House,Semi-Detached,2017-01-19,E07000110,E14000700,Kent,2017-01-19,marketed sale,63,83,227,86.0,3.2,40,1.3,54.0,54.0,526.0,433.0,162.0,73.0,81.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"4, Highridge Close, Weavering",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2017-01-19 09:07:42,owner-occupied,,,200003689990.0,Address Matched +1522568627452017022512561792230356,"42, Chapman Avenue",,,ME15 8EJ,3644720578,E,C,53,80,House,Mid-Terrace,2017-02-25,E07000110,E14000700,Kent,2017-02-25,marketed sale,47,77,383,145.0,4.4,68,1.7,55.0,55.0,707.0,517.0,201.0,68.0,64.0,Unknown,Y,NODATA!,,,2104.0,70.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,77.0,0.0,"From main system, no cylinder thermostat",Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Partial double glazing,Poor,Poor,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 77% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"42, Chapman Avenue",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2017-02-25 12:56:17,owner-occupied,,,200003684657.0,Address Matched +1131962179222014042907334402288764,"8, St. Lukes Avenue",,,ME14 5AN,6030762278,G,E,1,39,Maisonette,Semi-Detached,2014-04-28,E07000110,E14000804,Kent,2014-04-29,marketed sale,14,23,730,579.0,11.0,129,8.9,75.0,85.0,2257.0,1043.0,718.0,336.0,87.0,Single,N,1st,Y,,2601.0,0.0,single glazing,Normal,2.0,4.0,4.0,62.0,1.0,"Electric immersion, standard tariff",Very Poor,Very Poor,(other premises below),,,Single glazed,Very Poor,Very Poor,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, electric",Very Poor,Very Poor,No thermostatic control of room temperature,Poor,Poor,Low energy lighting in 62% of fixed outlets,Good,Good,electricity (not community),0.0,no corridor,,,0.0,,natural,"8, St. Lukes Avenue",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2014-04-29 07:33:44,rental (private),8.0,5.0,200003705824.0,Address Matched +383660929262018082122442908408198,Flat 14 Lambard House,Wheeler Street,,ME14 2UE,9097288668,C,C,71,75,Maisonette,End-Terrace,2018-08-20,E07000110,E14000804,Kent,2018-08-21,rental (social),70,76,200,164.0,2.3,35,1.9,94.0,51.0,376.0,325.0,93.0,94.0,66.0,Single,Y,Ground,N,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,3.0,3.0,14.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 14% of fixed outlets,Poor,Poor,mains gas (not community),0.0,no corridor,,,,N,natural,"Flat 14 Lambard House, Wheeler Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2018-08-21 22:44:29,rental (social),,,200003704316.0,Address Matched +211555660102009011821515450619738,"6, The Parade",Staplehurst,,TN12 0LA,2102366568,C,C,72,80,Maisonette,Mid-Terrace,2009-01-17,E07000110,E14000804,Kent,2009-01-18,rental (private),69,78,211,146.0,3.2,35,2.2,64.0,46.0,434.0,307.0,101.0,95.0,91.06,Single,Y,1st,N,3.0,2107.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,60.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Poor,Poor,Low energy lighting in 60% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.39,0.0,N,natural,"6, The Parade, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1967-1975,2009-01-18 21:51:54,rental (private),,,10014310629.0,Address Matched +730832938352011120711310398099196,"32, Roseholme",,,ME16 8DR,1652883968,E,D,40,65,Flat,Semi-Detached,2011-12-07,E07000110,E14000804,Kent,2011-12-07,rental (private),25,42,717,467.0,7.0,127,4.6,40.0,40.0,769.0,432.0,197.0,101.0,55.1,dual,N,1st,N,,2401.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,83.0,0.0,"Electric immersion, off-peak",Poor,Very Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,"Pitched, 100 mm loft insulation",Average,Average,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 83% of fixed outlets,Very Good,Very Good,electricity (not community),0.0,no corridor,,2.289,0.0,,natural,"32, Roseholme",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2011-12-07 11:31:03,rental (private),6.0,5.0,200003656339.0,Address Matched +1804281052342020061811171176009588,"3, Hubble Drive",,,ME15 8HQ,4324350778,D,B,67,82,Bungalow,Semi-Detached,2020-06-18,E07000110,E14000700,Kent,2020-06-18,marketed sale,68,83,229,118.0,2.7,37,1.3,59.0,59.0,548.0,509.0,82.0,53.0,72.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,"Room heaters, wood logs",,,"Pitched, insulated at rafters",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"3, Hubble Drive",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2020-06-18 11:17:11,owner-occupied,,,200003684900.0,Address Matched +1348815469722015073121295817598885,"48, Woolley Road",,,ME15 8QA,8198697378,C,B,71,88,House,Semi-Detached,2015-07-31,E07000110,E14000700,Kent,2015-07-31,non marketed sale,70,87,191,67.0,2.8,34,1.0,108.0,54.0,444.0,383.0,141.0,83.0,84.0,Single,Y,NODATA!,,,2106.0,90.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Mostly double glazing,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"48, Woolley Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2015-07-31 21:29:58,owner-occupied,,,200003685027.0,Address Matched +109157227312018061416195696980447,"26, Furfield Chase",Boughton Monchelsea,,ME17 4GD,4795767468,C,B,71,82,House,Detached,2018-06-14,E07000110,E14000700,Kent,2018-06-14,marketed sale,70,81,183,103.0,3.0,32,1.7,100.0,67.0,466.0,472.0,168.0,134.0,94.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,0.0,6.0,6.0,50.0,0.0,From main system,Good,Good,"Suspended, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,"Pitched, 270 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"26, Furfield Chase, Boughton Monchelsea",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2003-2006,2018-06-14 16:19:56,owner-occupied,,,10022901164.0,Address Matched +251816485232012050412533122068501,"2, Galena Close",,,ME5 9NE,8162539568,D,B,64,88,House,Detached,2012-05-03,E07000110,E14000700,Kent,2012-05-04,marketed sale,62,89,228,52.0,3.0,44,0.7,76.0,38.0,463.0,330.0,112.0,71.0,68.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, partial insulation (assumed)",Average,Average,,,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"2, Galena Close",Maidstone,Faversham and Mid Kent,CHATHAM,England and Wales: 1976-1982,2012-05-04 12:53:31,owner-occupied,10.0,0.0,200003708752.0,Address Matched +602607277412011031018222596990281,"46, Charlton Street",,,ME16 8LA,2198764868,F,E,36,51,House,Mid-Terrace,2011-03-10,E07000110,E14000804,Kent,2011-03-10,marketed sale,31,44,531,388.0,8.3,89,6.1,91.0,50.0,1267.0,976.0,204.0,143.0,78.8,Unknown,Y,NO DATA!,,,2104.0,80.0,"double glazing, unknown install date",Normal,2.0,5.0,4.0,20.0,3.0,From main system,Average,Good,"Suspended, no insulation (assumed)",,,Mostly double glazing,Poor,Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, mains gas",,,"Flat, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Average,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 20% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.5,0.0,N,natural,"46, Charlton Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2011-03-10 18:22:25,owner-occupied,,,200003655419.0,Address Matched +110155129922019012810502037688731,"7, Victoria Court",Victoria Street,,ME16 8JZ,3386297468,C,C,69,80,Flat,Semi-Detached,2019-01-18,E07000110,E14000804,Kent,2019-01-28,rental (private),53,67,460,324.0,2.5,78,1.8,46.0,31.0,296.0,155.0,161.0,131.0,32.0,dual,N,1st,Y,,2401.0,100.0,"double glazing, unknown install date",Normal,0.0,1.0,1.0,50.0,0.0,"Electric immersion, off-peak",Average,Poor,(another dwelling below),NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,Portable electric heaters (assumed),,,"Pitched, 50 mm loft insulation",Poor,Poor,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 50% of fixed outlets,Good,Good,electricity (not community),0.0,heated corridor,,,,N,natural,"7, Victoria Court, Victoria Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1991-1995,2019-01-28 10:50:20,rental (private),,,200003668694.0,Address Matched +1815491952022020080423155191778970,"14, Iona Road",,,ME15 9SX,7947531778,C,B,69,83,House,Semi-Detached,2020-08-03,E07000110,E14000804,Kent,2020-08-04,marketed sale,71,86,204,100.0,2.6,32,1.2,78.0,78.0,508.0,471.0,132.0,80.0,83.0,Unknown,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,83.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Average,Average,"Room heaters, wood logs",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 83% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"14, Iona Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2020-08-04 23:15:51,owner-occupied,,,200003678537.0,Address Matched +1667945321212018102916530296289968,Flat 125,Brenchley House,123-135 Week Street,ME14 1FY,9865160678,C,C,74,74,Flat,Mid-Terrace,2018-10-29,E07000110,E14000700,Kent,2018-10-29,new dwelling,77,77,196,196.0,1.3,35,1.3,30.0,30.0,227.0,227.0,97.0,97.0,37.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,Community scheme,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.33 W/m-¦K,Good,Good,,,,Average thermal transmittance 0.18 W/m-¦K,Good,Good,Community scheme,Good,Good,"Charging system linked to use of community heating, programmer and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,NO DATA!,,NO DATA!,,,,,NO DATA!,"Flat 125, Brenchley House, 123-135 Week Street",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2018-10-29 16:53:02,unknown,6.0,6.0,10094440801.0,Address Matched +851362042812012102921191998229402,"1c, Beaumont Road",,,ME16 8NG,4244282078,D,A,67,94,Bungalow,Semi-Detached,2012-10-29,E07000110,E14000804,Kent,2012-10-29,FiT application,56,74,265,147.0,3.1,46,1.7,56.0,42.0,751.0,386.0,168.0,73.0,68.0,dual,N,NODATA!,,,2601.0,100.0,double glazing installed before 2002,Normal,1.0,4.0,4.0,50.0,0.0,"Electric immersion, off-peak",Poor,Very Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Room heaters, electric",Poor,Very Poor,No thermostatic control of room temperature,Poor,Poor,Low energy lighting in 50% of fixed outlets,Good,Good,electricity (not community),0.0,NO DATA!,,,,,natural,"1c, Beaumont Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2012-10-29 21:19:19,owner-occupied,8.0,4.0,200003675945.0,Address Matched +1334323119922015061807365456538985,"85, Allen Street",,,ME14 5AH,8514196378,E,B,53,82,House,End-Terrace,2015-06-17,E07000110,E14000804,Kent,2015-06-18,marketed sale,45,79,329,108.0,5.5,58,1.8,97.0,58.0,997.0,557.0,123.0,72.0,95.0,Single,Y,NODATA!,,,2111.0,100.0,"double glazing, unknown install date",Normal,3.0,5.0,5.0,33.0,0.0,From main system,Good,Good,"To unheated space, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 270 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,TRVs and bypass,Average,Average,Low energy lighting in 33% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"85, Allen Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2015-06-18 07:36:54,owner-occupied,,,200003704942.0,Address Matched +597677029202011022619433483492158,"17, Lucerne Street",,,ME14 1UE,215824868,C,C,77,77,House,Mid-Terrace,2011-02-25,E07000110,E14000804,Kent,2011-02-26,rental (private),73,73,218,218.0,2.0,36,2.0,32.0,32.0,358.0,358.0,83.0,83.0,42.7,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,90.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 90% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.37,0.0,N,natural,"17, Lucerne Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2011-02-26 19:43:34,rental (private),,,200003698905.0,Address Matched +1384963082712016042716082795260447,Flat 68,Miller House,43-51 Lower Stone Street,ME15 6GB,4776250478,C,C,73,73,Flat,NO DATA!,2016-04-27,E07000110,E14000804,Kent,2016-04-27,none of the above,62,62,280,280.0,2.9,47,2.9,44.0,44.0,355.0,355.0,160.0,160.0,61.0,off-peak 10 hour,,mid floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Poor,Poor,(other premises below),,,Fully double glazed,Good,Good,Average thermal transmittance 0.72 W/m-¦K,Average,Average,,,,(other premises above),,,"Boiler and radiators, electric",Poor,Very Poor,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"Flat 68, Miller House, 43-51 Lower Stone Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2016-04-27 16:08:27,unknown,4.0,4.0,10091196165.0,Address Matched +1629652389062018050810505457888338,3 Chestnut Road,Allington,,ME16 9FR,3581887578,B,A,87,95,House,Mid-Terrace,2018-05-08,E07000110,E14000804,Kent,2018-05-08,new dwelling,88,96,63,12.0,1.6,11,0.4,83.0,83.0,240.0,241.0,99.0,53.0,145.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,"From main system, waste water heat recovery",Very Good,Very Good,Average thermal transmittance 0.17 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"3 Chestnut Road, Allington",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2018-05-08 10:50:54,unknown,45.0,45.0,10093306543.0,Address Matched +1760924069262019102409200447948391,"37, Great Threads",Staplehurst,,TN12 0FJ,9477637678,B,A,84,95,House,Semi-Detached,2019-10-24,E07000110,E14000804,Kent,2019-10-24,new dwelling,86,97,82,5.0,1.3,14,0.1,66.0,66.0,212.0,212.0,79.0,49.0,89.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.28 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.12 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"37, Great Threads, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,NO DATA!,2019-10-24 09:20:04,unknown,10.0,10.0,10093304253.0,Address Matched +1152162327412014060511101990040323,"49, Felderland Drive",,,ME15 9YB,3348704278,C,B,72,90,House,Mid-Terrace,2014-06-05,E07000110,E14000700,Kent,2014-06-05,none of the above,73,92,155,34.0,2.3,30,0.6,97.0,48.0,410.0,324.0,96.0,68.0,79.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, partial insulation (assumed)",Average,Average,,,,"Pitched, 75 mm loft insulation",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"49, Felderland Drive",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1976-1982,2014-06-05 11:10:19,owner-occupied,15.0,0.0,200003682831.0,Address Matched +583670229262011012218323943598689,"64c, Boxley Road",,,ME14 2TW,8442213868,D,C,62,78,House,End-Terrace,2011-01-21,E07000110,E14000804,Kent,2011-01-22,marketed sale,56,75,283,161.0,4.7,47,2.7,104.0,55.0,723.0,431.0,137.0,112.0,99.6,Single,Y,NO DATA!,,,2107.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,10.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 10% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.43,0.0,N,natural,"64c, Boxley Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2011-01-22 18:32:39,owner-occupied,,,200003704298.0,Address Matched +536836331032010090712061008068006,"5, Dean Street",East Farleigh,,ME15 0PU,3608069768,C,C,72,73,House,Semi-Detached,2010-09-07,E07000110,E14000804,Kent,2010-09-07,rental (social),68,68,229,226.0,2.8,38,2.8,55.0,39.0,443.0,445.0,109.0,109.0,74.5,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,60.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"System built, with external insulation",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 60% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.45,0.0,N,natural,"5, Dean Street, East Farleigh",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2010-09-07 12:06:10,rental (social),,,200003670429.0,Address Matched +1569875839222017082510314143148833,The Annexe,49 Cranborne Avenue,,ME15 7EA,3491363578,D,B,66,82,House,Semi-Detached,2017-08-24,E07000110,E14000700,Kent,2017-08-25,marketed sale,65,82,231,107.0,3.1,41,1.4,52.0,52.0,596.0,499.0,101.0,71.0,76.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,"Pitched, 270 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"The Annexe, 49 Cranborne Avenue",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2017-08-25 10:31:41,owner-occupied,,,200003728546.0,Address Matched +584354129342011012522194781392258,18 Hawley Court,London Road,,ME16 8QJ,1338023868,C,B,74,84,Flat,Mid-Terrace,2011-01-25,E07000110,E14000804,Kent,2011-01-25,rental (social),70,82,259,159.0,2.0,43,1.2,26.0,26.0,294.0,221.0,161.0,98.0,47.25,Unknown,Y,3rd,N,8.0,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,100.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,unheated corridor,9.3,2.4,0.0,N,natural,"18 Hawley Court, London Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2011-01-25 22:19:47,rental (social),,,200003668450.0,Address Matched +836921289962012091908430021458712,"15, Bower Lane",,,ME16 8BJ,1228871078,D,B,63,81,House,Mid-Terrace,2012-09-15,E07000110,E14000804,Kent,2012-09-19,marketed sale,59,79,208,95.0,4.5,40,2.1,91.0,58.0,750.0,558.0,97.0,68.0,114.0,Single,Y,NODATA!,,,2106.0,0.0,single glazing,Normal,1.0,6.0,6.0,40.0,4.0,From main system,Good,Good,"Suspended, insulated (assumed)",,,Single glazed,Very Poor,Very Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Roof room(s), insulated",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 40% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"15, Bower Lane",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2012-09-19 08:43:00,owner-occupied,10.0,4.0,200003667410.0,Address Matched +508181488652010071221041295900476,"28, Essex Road",,,ME15 7QL,4676857768,D,C,68,70,House,Mid-Terrace,2010-07-12,E07000110,E14000700,Kent,2010-07-12,rental (social),64,64,247,242.0,3.6,41,3.5,68.0,46.0,536.0,540.0,121.0,121.0,86.12,Single,Y,NO DATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,50.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.34,0.0,N,natural,"28, Essex Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2010-07-12 21:04:12,rental (social),,,200003680443.0,Address Matched +923404009762013050114023867108347,2 The Cottages,The Green,East Farleigh,ME15 0HE,4690097078,D,A,67,98,House,Mid-Terrace,2013-04-30,E07000110,E14000804,Kent,2013-05-01,marketed sale,71,100,226,-50.0,1.7,43,-0.3,42.0,25.0,391.0,263.0,30.0,30.0,40.0,Unknown,Y,NODATA!,,,2106.0,0.0,not defined,Normal,0.0,3.0,2.0,33.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,Portable electric heaters (assumed),,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 33% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"2 The Cottages, The Green, East Farleigh",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2013-05-01 14:02:38,owner-occupied,6.0,2.0,200003727030.0,Address Matched +791754639062012060114160728498702,"45, Heath Road",,,ME16 9LD,220368968,D,B,56,86,House,Mid-Terrace,2012-06-01,E07000110,E14000804,Kent,2012-06-01,marketed sale,53,87,310,67.0,3.3,60,0.8,43.0,32.0,577.0,358.0,80.0,54.0,56.0,Single,Y,NODATA!,,,2102.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,67.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,Low energy lighting in 67% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"45, Heath Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2012-06-01 14:16:07,owner-occupied,6.0,4.0,200003681627.0,Address Matched +839906079222012092610061981848382,"72, Stockett Lane",Coxheath,,ME17 4PY,8807791078,D,B,68,89,House,Mid-Terrace,2012-09-24,E07000110,E14000804,Kent,2012-09-26,marketed sale,69,91,197,36.0,2.3,38,0.5,54.0,36.0,410.0,315.0,80.0,56.0,62.0,Single,Y,NODATA!,,,2106.0,0.0,single glazing,Normal,1.0,3.0,3.0,50.0,0.0,From main system,Good,Good,"Suspended, insulated (assumed)",,,Single glazed,Very Poor,Very Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"72, Stockett Lane, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2012-09-26 10:06:19,owner-occupied,10.0,5.0,200003714370.0,Address Matched +1627689079102018050108144650787208,Church House,The Street,Frinsted,ME9 0TQ,2128577578,F,B,32,85,House,Detached,2018-04-30,E07000110,E14000700,Kent,2018-05-01,none of the above,54,96,216,-4.0,5.8,40,0.1,97.0,97.0,1620.0,781.0,150.0,109.0,146.0,Unknown,N,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,9.0,9.0,83.0,1.0,"From main system, plus solar",Poor,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Poor,Poor,"Room heaters, wood logs",,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, LPG",Very Poor,Average,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 83% of fixed outlets,Very Good,Very Good,LPG (not community),0.0,NO DATA!,,,,Y,natural,"Church House, The Street, Frinsted",Maidstone,Faversham and Mid Kent,SITTINGBOURNE,England and Wales: before 1900,2018-05-01 08:14:46,owner-occupied,,,200003731895.0,Address Matched +1380848729942015103010585947057708,"14, Lambert Drive",,,ME15 8WN,9987120478,B,A,84,93,House,NO DATA!,2015-10-30,E07000110,E14000700,Kent,2015-10-30,new dwelling,84,93,87,31.0,2.0,15,0.7,71.0,71.0,345.0,346.0,107.0,58.0,131.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.12 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.28 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"14, Lambert Drive",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2015-10-30 10:58:59,unknown,10.0,10.0,10091194529.0,Address Matched +1377458299062015110211343949028375,18 Alexander Court,Mote Park,,ME15 8WY,7417999378,B,B,83,83,Flat,Mid-Terrace,2015-11-02,E07000110,E14000700,Kent,2015-11-02,new dwelling,86,86,92,92.0,1.2,16,1.2,55.0,55.0,207.0,207.0,99.0,99.0,75.0,standard tariff,,ground floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.21 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and boiler energy manager",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"18 Alexander Court, Mote Park",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2015-11-02 11:34:39,unknown,8.0,8.0,10091195132.0,Address Matched +1043592529712013111414162193279715,"15, Ham Lane",Lenham,,ME17 2LL,7569936178,E,C,44,80,House,Detached,2013-10-23,E07000110,E14000700,Kent,2013-11-14,marketed sale,39,78,322,96.0,8.1,62,2.5,99.0,66.0,1336.0,648.0,210.0,73.0,131.0,Unknown,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,1.0,8.0,8.0,50.0,1.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Average,Programmer and room thermostat,Average,Average,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"15, Ham Lane, Lenham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2013-11-14 14:16:21,owner-occupied,16.0,8.0,200003710517.0,Address Matched +352913169102019092812473361612888,"144, Kingfisher Meadow",,,ME16 8RD,7175766668,C,B,76,83,Flat,Mid-Terrace,2019-09-28,E07000110,E14000804,Kent,2019-09-28,rental (private),79,77,175,186.0,1.3,30,1.4,41.0,40.0,137.0,89.0,270.0,187.0,45.0,Unknown,N,2nd,N,,2603.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,100.0,0.0,"Electric immersion, standard tariff",Very Poor,Poor,(another dwelling below),NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Room heaters, electric",Very Poor,Poor,Programmer and appliance thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,unheated corridor,1.0,,,N,natural,"144, Kingfisher Meadow",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2019-09-28 12:47:33,rental (private),,,10022892355.0,Address Matched +893225789242013030518543208570458,"12, Lacock Gardens",,,ME15 6GJ,5240085078,C,A,70,92,House,Mid-Terrace,2013-03-05,E07000110,E14000804,Kent,2013-03-05,marketed sale,72,95,189,13.0,2.0,36,0.2,49.0,37.0,285.0,264.0,168.0,61.0,56.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,4.0,4.0,67.0,0.0,"From main system, no cylinder thermostat",Average,Average,"Solid, limited insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 67% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"12, Lacock Gardens",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2013-03-05 18:54:32,unknown,9.0,6.0,10034134506.0,Address Matched +519979849202013081915263670879818,"17, Hatherall Road",,,ME14 5HE,243548768,D,B,66,87,House,Semi-Detached,2013-08-19,E07000110,E14000804,Kent,2013-08-19,assessment for green deal,63,88,199,52.0,3.4,38,0.9,55.0,55.0,612.0,378.0,93.0,66.0,88.0,Unknown,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,More Than Typical,0.0,5.0,5.0,90.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 90% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"17, Hatherall Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2013-08-19 15:26:36,owner-occupied,10.0,9.0,200003705393.0,Address Matched +791306689262012052415462158648122,"4, Speedwell Close",Weavering,,ME14 5SX,2571858968,D,B,62,91,Bungalow,Semi-Detached,2012-05-24,E07000110,E14000700,Kent,2012-05-24,marketed sale,62,95,299,11.0,2.3,58,0.1,29.0,29.0,369.0,251.0,115.0,58.0,39.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,2.0,2.0,80.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, partial insulation (assumed)",Average,Average,,,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"4, Speedwell Close, Weavering",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1976-1982,2012-05-24 15:46:21,owner-occupied,5.0,4.0,200003689122.0,Address Matched +1667854901652018102916551896289761,Flat 107,Brenchley House,123-135 Week Street,ME14 1FY,7117160678,C,C,76,76,Flat,Mid-Terrace,2018-10-29,E07000110,E14000700,Kent,2018-10-29,new dwelling,82,82,202,202.0,0.9,36,0.9,22.0,22.0,152.0,152.0,92.0,92.0,24.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,Community scheme,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.30 W/m-¦K,Good,Good,,,,(other premises above),,,Community scheme,Good,Good,"Charging system linked to use of community heating, programmer and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,NO DATA!,,NO DATA!,,,,,NO DATA!,"Flat 107, Brenchley House, 123-135 Week Street",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2018-10-29 16:55:18,unknown,6.0,6.0,10094440783.0,Address Matched +614945319022011040716153425338479,"18, Roseacre Lane",Bearsted,,ME14 4HZ,7290165868,D,D,59,62,Bungalow,Detached,2011-04-07,E07000110,E14000700,Kent,2011-04-07,marketed sale,53,55,302,286.0,5.4,50,5.2,115.0,59.0,840.0,827.0,137.0,137.0,107.9,Single,Y,NO DATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,7.0,7.0,5.0,0.0,From main system,Very Good,Very Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 100 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 5% of fixed outlets,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.6,0.0,N,natural,"18, Roseacre Lane, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1900-1929,2011-04-07 16:15:34,owner-occupied,,,200003692174.0,Address Matched +796036309722012053110483828798422,"8, Meadow View",Laddingford,,ME18 6BN,2283098968,F,C,37,70,House,Semi-Detached,2012-05-31,E07000110,E14000804,Kent,2012-05-31,marketed sale,34,66,410,171.0,6.8,79,2.9,89.0,47.0,1069.0,684.0,144.0,68.0,86.0,Unknown,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,9.0,1.0,From main system,Average,Average,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 9% of fixed outlets,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"8, Meadow View, Laddingford",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2012-05-31 10:48:38,owner-occupied,11.0,1.0,200003724289.0,Address Matched +294272737312009052809271904210865,"64, Madginford Road",Bearsted,,ME15 8JS,8598742668,D,C,58,70,Bungalow,Detached,2009-05-26,E07000110,E14000700,Kent,2009-05-28,marketed sale,52,65,356,260.0,4.1,59,3.0,65.0,33.0,577.0,436.0,87.0,87.0,68.99,Unknown,Y,NO DATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,0.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.41,0.0,N,natural,"64, Madginford Road, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2009-05-28 09:27:19,owner-occupied,,,200003685774.0,Address Matched +665068513712019060700155492010282,"17, Sherbourne Drive",,,ME16 8UG,2233329868,C,B,69,90,House,End-Terrace,2019-06-06,E07000110,E14000804,Kent,2019-06-07,marketed sale,68,91,227,40.0,2.3,40,0.4,55.0,55.0,343.0,271.0,149.0,63.0,58.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,78.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Timber frame, as built, insulated (assumed)",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 78% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"17, Sherbourne Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2019-06-07 00:15:54,owner-occupied,,,200003675012.0,Address Matched +623103679222011042823371756388239,"28, Furfield Chase",Boughton Monchelsea,,ME17 4GD,3511726868,C,C,77,77,House,Detached,2011-04-28,E07000110,E14000700,Kent,2011-04-28,marketed sale,77,77,117,117.0,3.1,22,3.1,63.0,63.0,533.0,533.0,89.0,89.0,139.8,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,7.0,7.0,100.0,0.0,From main system,Good,Good,"Suspended, insulated (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,2.32,0.0,,natural,"28, Furfield Chase, Boughton Monchelsea",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2007 onwards,2011-04-28 23:37:17,owner-occupied,16.0,16.0,10022901166.0,Address Matched +850252949262012102913423312418632,Flat 10,Mote House,Mote Park,ME15 8NQ,3102472078,C,B,79,82,Flat,End-Terrace,2012-10-29,E07000110,E14000700,Kent,2012-10-29,marketed sale,80,84,118,95.0,1.7,23,1.3,45.0,47.0,258.0,202.0,107.0,107.0,74.0,Unknown,Y,2nd,Y,,2306.0,0.0,single glazing,Normal,0.0,3.0,3.0,100.0,0.0,Community scheme,Good,Good,(other premises below),,,Single glazed,Very Poor,Very Poor,"Granite or whinstone, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,Community scheme,Good,Good,"Charging system linked to the use of community heating, programmer and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (community),0.0,heated corridor,,,0.0,,natural,"Flat 10, Mote House, Mote Park",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2007 onwards,2012-10-29 13:42:33,owner-occupied,6.0,6.0,10014314629.0,Address Matched +1048769849732013112309315953978895,2 Dove Cottages,Lenham Heath Road,Lenham Heath,ME17 2BS,4573876178,D,C,59,79,House,Detached,2013-11-12,E07000110,E14000700,Kent,2013-11-23,FiT application,59,80,226,106.0,4.7,39,2.1,111.0,62.0,869.0,663.0,144.0,75.0,118.0,Single,Y,NODATA!,,,2106.0,0.0,not defined,Normal,1.0,5.0,5.0,18.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Timber frame, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 18% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"2 Dove Cottages, Lenham Heath Road, Lenham Heath",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1900-1929,2013-11-23 09:31:59,owner-occupied,11.0,2.0,200003714579.0,Address Matched +1201231059502015011816330229759468,"2, Rosslyn Green",,,ME16 0BZ,7589157278,D,C,56,77,House,Detached,2015-01-16,E07000110,E14000804,Kent,2015-01-18,assessment for green deal,46,70,279,142.0,7.2,49,3.7,128.0,76.0,1226.0,901.0,203.0,78.0,147.0,Unknown,Y,NODATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,2.0,7.0,7.0,32.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Solid brick, as built, insulated (assumed)",Good,Good,"Room heaters, mains gas",,,"Pitched, insulated (assumed)",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 32% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"2, Rosslyn Green",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2015-01-18 16:33:02,owner-occupied,,,200003705728.0,Address Matched +1480228636152016092014471592960742,11 Frampton Place,6 Tonbridge Road,,ME16 8RP,7267627478,C,C,78,78,Flat,NO DATA!,2016-09-19,E07000110,E14000804,Kent,2016-09-20,new dwelling,62,62,270,270.0,3.1,48,3.1,52.0,52.0,239.0,239.0,147.0,147.0,64.0,off-peak 7 hour,,mid floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Average,Very Poor,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.35 W/m+é-¦K,Good,Good,,,,(other premises above),,,"Boiler and radiators, electric",Average,Very Poor,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"11 Frampton Place, 6 Tonbridge Road",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2016-09-20 14:47:15,unknown,12.0,12.0,10093302908.0,Address Matched +1630708999502018051611065255780618,"1, Buckland Gardens",,,ME16 0ZB,7532597578,B,B,81,83,Flat,Semi-Detached,2018-02-09,E07000110,E14000804,Kent,2018-05-16,rental (social),85,87,102,91.0,1.1,18,1.0,91.0,51.0,144.0,149.0,99.0,99.0,63.0,dual (24 hour),Y,Ground,Y,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,20.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Very Good,Very Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 20% of fixed outlets,Poor,Poor,mains gas (not community),0.0,heated corridor,,,,N,natural,"1, Buckland Gardens",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2018-05-16 11:06:52,rental (social),,,10014308657.0,Address Matched +866873609922020011512213973248621,28 Newlyn Court,Tufton Street,,ME14 1EZ,2719093078,C,C,76,76,Maisonette,End-Terrace,2019-03-14,E07000110,E14000804,Kent,2020-01-15,ECO assessment,78,78,137,137.0,1.8,24,1.8,68.0,68.0,367.0,367.0,74.0,74.0,73.0,dual,Y,2nd,Y,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,3.0,3.0,100.0,0.0,From main system,Good,Good,(another dwelling below),NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,"Room heaters, electric",,,"Pitched, 270 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,no corridor,,,,N,natural,"28 Newlyn Court, Tufton Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2020-01-15 12:21:39,rental (social),,,200003688150.0,Address Matched +1398984552532015122914245492278295,"32, Giddy Horn Lane",,,ME16 0JX,5502251478,E,B,42,83,House,End-Terrace,2015-12-29,E07000110,E14000804,Kent,2015-12-29,rental (private),38,82,425,92.0,5.5,75,1.2,68.0,50.0,1118.0,472.0,99.0,68.0,74.0,Single,Y,NODATA!,,,2601.0,100.0,"double glazing, unknown install date",Normal,1.0,3.0,1.0,62.0,0.0,Gas multipoint,Average,Average,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, electric",,,"Pitched, 150 mm loft insulation",Good,Good,"Room heaters, mains gas",Average,Average,No thermostatic control of room temperature,Poor,Poor,Low energy lighting in 62% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"32, Giddy Horn Lane",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2015-12-29 14:24:54,rental (private),,,200003657088.0,Address Matched +43d6a63527d2ade946264adbf119f36b2fa932ca6430986edf9afa9a3983ce2d,8 Hollander Mews,,,ME14 1HW,10001607062,B,A,85,97,House,Mid-Terrace,2021-08-05,E07000110,E14000804,Kent,2021-08-05,new dwelling,88,100,76,-14.0,1.0,13,-0.2,72.0,72.0,173.0,173.0,72.0,45.0,77.0,standard tariff,,,N,,,100.0,,,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.28 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.12 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.31,,,,8 Hollander Mews,Maidstone,Maidstone and The Weald,MAIDSTONE,2021,2021-08-05 12:43:10,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,9.0,,10094443067.0,Address Matched +418337156352010010822255492000870,"115, Old Tovil Road",,,ME15 6QE,8017621768,D,C,59,69,House,Semi-Detached,2010-01-08,E07000110,E14000804,Kent,2010-01-08,rental (private),54,66,318,234.0,4.5,53,3.3,49.0,49.0,715.0,532.0,107.0,101.0,84.2,Single,Y,NO DATA!,,,2107.0,83.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,87.0,2.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Mostly double glazing,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 87% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.47,0.0,N,"mechanical, extract only","115, Old Tovil Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2010-01-08 22:25:54,rental (private),,,200003665740.0,Address Matched +152027277912009090910584201010552,"2, Orchard Close",Coxheath,,ME17 4HE,5271711568,D,D,55,58,Bungalow,Semi-Detached,2009-09-09,E07000110,E14000804,Kent,2009-09-09,marketed sale,49,51,367,349.0,4.9,61,4.6,72.0,40.0,720.0,704.0,107.0,107.0,63.27,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,20.0,0.0,From main system,Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 20% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,0.0,N,natural,"2, Orchard Close, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2009-09-09 10:58:42,owner-occupied,,,200003713649.0,Address Matched +1431687489242016041112473743360858,Flat 20,Concorde House,London Road,ME16 8QA,9227183478,C,C,70,70,Flat,Mid-Terrace,2016-04-05,E07000110,E14000804,Kent,2016-04-11,rental (private),66,66,250,250.0,2.3,42,2.3,41.0,41.0,358.0,358.0,170.0,170.0,55.0,dual,N,2nd,N,,2107.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,100.0,0.0,From main system,Poor,Poor,(another dwelling below),NO DATA!,,Fully double glazed,Good,Good,"System built, with internal insulation",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, electric",Very Poor,Poor,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,unheated corridor,9.68,2.5,,N,natural,"Flat 20, Concorde House, London Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2016-04-11 12:47:37,rental (private),,,, +14019499352011110711113594099441,Apartment 21 Bluecoats Yard,Knightrider Street,,ME15 6LD,4185948468,B,B,83,84,Flat,Semi-Detached,2011-11-07,E07000110,E14000804,Kent,2011-11-07,marketed sale,88,89,84,78.0,1.0,16,0.9,56.0,37.0,166.0,168.0,76.0,76.0,61.91,Single,Y,1st,N,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,50.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,heated corridor,,2.33,0.0,,natural,"Apartment 21 Bluecoats Yard, Knightrider Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2011-11-07 11:11:35,owner-occupied,8.0,4.0,10014307479.0,Address Matched +1468666149702016080416211541660548,"65, Edmett Way",,,ME17 3FA,6753546478,C,C,79,79,House,Semi-Detached,2016-08-04,E07000110,E14000700,Kent,2016-08-04,new dwelling,81,81,136,136.0,1.4,24,1.4,45.0,45.0,280.0,280.0,76.0,76.0,60.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.18 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.26 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"65, Edmett Way",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2016-08-04 16:21:15,unknown,1.0,1.0,10091193993.0,Address Matched +1001902181412013090522432595070015,"12, Maynards",Marden,,TN12 9TE,541153178,D,B,68,89,House,End-Terrace,2013-09-05,E07000110,E14000804,Kent,2013-09-05,marketed sale,67,90,186,44.0,3.0,36,0.8,66.0,48.0,509.0,324.0,117.0,92.0,83.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,5.0,5.0,64.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 64% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"12, Maynards, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1967-1975,2013-09-05 22:43:25,owner-occupied,14.0,9.0,200003709644.0,Address Matched +1775918492022020010921110748318420,"37, Bychurch Place",Waterloo Street,,ME15 7UQ,2491948678,D,C,68,70,Flat,Mid-Terrace,2020-01-09,E07000110,E14000804,Kent,2020-01-09,rental (private),65,69,248,221.0,2.7,44,2.4,52.0,52.0,447.0,397.0,125.0,117.0,61.0,Unknown,Y,2nd,Y,,2107.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,(another dwelling below),NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,1.59,,,N,natural,"37, Bychurch Place, Waterloo Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2020-01-09 21:11:07,rental (private),,,200003696678.0,Address Matched +1479818203712017100911044092039544,6 Mills Court,Harrietsham,,ME17 1GP,5449327478,B,A,84,96,House,End-Terrace,2017-10-09,E07000110,E14000700,Kent,2017-10-09,new dwelling,86,98,89,0.0,1.2,16,0.0,57.0,57.0,205.0,205.0,81.0,48.0,77.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.27 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"6 Mills Court, Harrietsham",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2017-10-09 11:04:40,owner-occupied,11.0,11.0,10093303093.0,Address Matched +43d7a9ff5e1300d31bbd99567ce690802609dbb9cbf512d6cf13cfeed9b9168f,7 RUSHMORE GROVE,,,ME17 2FJ,10001648833,B,B,83,83,Flat,Detached,2021-08-02,E07000110,E14000700,Kent,2021-08-02,new dwelling,87,87,95,95.0,0.9,17,0.9,53.0,53.0,171.0,171.0,63.0,63.0,55.0,standard tariff,,1,N,,,100.0,,,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.19 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.4,,,,7 RUSHMORE GROVE,Maidstone,Faversham and Mid Kent,LENHAM,2019,2021-08-02 08:52:57,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,1.0,,10094444435.0,Energy Assessor +1667871661412018101518013596989766,Flat 161,Brenchley House,123-135 Week Street,ME14 1FZ,7623160678,C,C,74,74,Flat,Mid-Terrace,2018-10-15,E07000110,E14000804,Kent,2018-10-15,new dwelling,81,81,246,246.0,0.9,43,0.9,20.0,20.0,152.0,152.0,91.0,91.0,20.0,standard tariff,,top floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,Community scheme,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.30 W/m-¦K,Good,Good,,,,Average thermal transmittance 0.18 W/m-¦K,Good,Good,Community scheme,Good,Good,"Charging system linked to use of community heating, programmer and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,NO DATA!,,NO DATA!,,,,,NO DATA!,"Flat 161, Brenchley House, 123-135 Week Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2018-10-15 18:01:35,unknown,6.0,6.0,10094440837.0,Address Matched +1286720189262015022607493643358305,"44, Sheppey Road",,,ME15 9SS,461853378,E,C,48,80,House,Semi-Detached,2015-02-25,E07000110,E14000804,Kent,2015-02-26,marketed sale,41,76,404,136.0,5.7,71,2.0,103.0,52.0,958.0,582.0,190.0,72.0,80.0,Unknown,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,0.0,1.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"44, Sheppey Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2015-02-26 07:49:36,owner-occupied,,,200003664232.0,Address Matched +43ea8dd47ba4c342569bfe1b4a0a9b4d914e073c91e53969668266ecaeb99ade,Willow Cottage,Brishing Lane,Boughton Monchelsea,ME17 4NF,10001684401,G,B,10,90,House,Detached,2021-08-25,E07000110,E14000700,Kent,2021-08-27,marketed sale,24,65,528,180.0,14.0,89,4.8,186.0,113.0,4552.0,1327.0,443.0,134.0,157.0,Single,N,,,,,100.0,"double glazing, unknown install date",Normal,1.0,7.0,1.0,19.0,0.0,"Electric immersion, standard tariff",Very Poor,Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Sandstone or limestone, as built, no insulation (assumed)",Very Poor,Very Poor,Portable electric heaters (assumed),,,"Pitched, insulated at rafters",Average,Average,"Room heaters, electric",Very Poor,Poor,Appliance thermostats,Good,Good,Low energy lighting in 19% of fixed outlets,Poor,Poor,electricity (not community),0.0,,,2.43,0.0,N,natural,"Willow Cottage, Brishing Lane, Boughton Monchelsea",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2021-08-27 18:12:32,Owner-occupied,16.0,,200003709761.0,Energy Assessor +43e992e77862dfe8a2e3be8c5a4f604ace47055f090a62b55484c1a00081cbe4,14 Captains Close,Sutton Valence,,ME17 3BA,10001368734,C,B,70,83,House,Semi-Detached,2021-09-24,E07000110,E14000700,Kent,2021-09-30,not sale or rental,66,79,196,109.0,3.6,34,2.1,104.0,81.0,565.0,527.0,121.0,78.0,105.0,Single,Y,,,,,100.0,double glazing installed before 2002,Normal,0.0,6.0,6.0,71.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, 270 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 71% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.38,0.0,N,natural,"14 Captains Close, Sutton Valence",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2021-09-30 14:19:55,Rented (social),14.0,,200003696239.0,Energy Assessor +1474787128632016082711564520278908,"2, Hardy Street",,,ME14 2SH,2800986478,E,C,50,72,House,End-Terrace,2016-08-26,E07000110,E14000804,Kent,2016-08-27,marketed sale,42,64,338,184.0,7.1,60,3.9,106.0,71.0,1303.0,939.0,137.0,88.0,119.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,50.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,2.3,,N,natural,"2, Hardy Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2016-08-27 11:56:45,rental (social),,,200003702683.0,Address Matched +1363978539922015091520090189948095,"9, Dudley Close",,,ME15 9GR,9859309378,C,A,78,92,House,End-Terrace,2015-09-14,E07000110,E14000700,Kent,2015-09-15,rental (social),79,92,138,36.0,1.8,24,0.5,53.0,53.0,295.0,305.0,135.0,64.0,75.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,3.0,3.0,100.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Timber frame, as built, insulated (assumed)",Good,Good,,,,"Pitched, 270 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"9, Dudley Close",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2007 onwards,2015-09-15 20:09:01,rental (social),,,10022896805.0,Address Matched +223452760922009021311370497198241,"26, Gullands",Langley,,ME17 1SU,4918667568,C,C,72,74,House,Semi-Detached,2009-02-11,E07000110,E14000700,Kent,2009-02-13,rental (social),69,71,214,205.0,2.8,36,2.7,83.0,41.0,361.0,367.0,117.0,117.0,80.02,dual,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,More Than Typical,0.0,5.0,5.0,0.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.28,0.0,N,natural,"26, Gullands, Langley",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2009-02-13 11:37:04,rental (social),,,200003697410.0,Address Matched +44074a091e12ab25bfd2a16f0d0b489f38ed40e9929bd58586e8a4289a81820f,52 SEYMOUR DRIVE,,,TN12 9GT,10001524700,B,A,85,94,House,Detached,2021-07-30,E07000110,E14000804,Kent,2021-07-30,new dwelling,86,95,78,15.0,1.6,14,0.3,84.0,84.0,240.0,242.0,94.0,52.0,114.0,standard tariff,,,N,,,100.0,,,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.22 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.39,,,,52 SEYMOUR DRIVE,Maidstone,Maidstone and The Weald,MARDEN,2021,2021-07-30 10:30:08,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,10.0,,10094441132.0,Energy Assessor +685232829022014100511390550648864,"35, Oak Lane",Headcorn,,TN27 9TH,6581260968,D,B,67,89,House,Semi-Detached,2014-10-04,E07000110,E14000700,Kent,2014-10-05,none of the above,67,91,193,39.0,2.7,37,0.6,79.0,51.0,522.0,363.0,93.0,68.0,72.0,dual,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,44.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 44% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"35, Oak Lane, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,England and Wales: 1967-1975,2014-10-05 11:39:05,owner-occupied,9.0,4.0,200003699300.0,Address Matched +584899252412011012610050392290189,"3, Bower Close",,,ME16 8BD,1900223868,D,C,61,73,House,Semi-Detached,2011-01-26,E07000110,E14000804,Kent,2011-01-26,rental (private),54,68,339,233.0,4.0,57,2.8,48.0,38.0,659.0,450.0,118.0,118.0,71.0,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,75.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.45,0.0,N,natural,"3, Bower Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2011-01-26 10:05:03,rental (private),,,200003667236.0,Address Matched +1625630158752018042310260995280358,"7, Roy Hood Court",Boughton Monchelsea,,ME17 4FN,3877857578,B,A,86,93,House,Detached,2018-04-23,E07000110,E14000804,Kent,2018-04-23,new dwelling,86,93,72,29.0,2.2,13,0.9,87.0,87.0,339.0,340.0,103.0,56.0,171.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.20 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.22 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"7, Roy Hood Court, Boughton Monchelsea",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2018-04-23 10:26:09,unknown,10.0,10.0,10093304949.0,Address Matched +644770017112011062317331297290481,"10, The Beacons",Coxheath,,ME17 4DL,4177777868,C,C,69,69,Bungalow,Mid-Terrace,2011-06-23,E07000110,E14000804,Kent,2011-06-23,rental (social),73,73,221,217.0,1.8,42,1.7,32.0,24.0,338.0,339.0,68.0,68.0,42.12,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,2.0,2.0,67.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 67% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,2.31,0.0,,natural,"10, The Beacons, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2011-06-23 17:33:12,rental (social),6.0,4.0,200003712868.0,Address Matched +577036959842011010417072487290548,"22, Buckland Gardens",,,ME16 0ZB,1882852868,B,B,89,91,Flat,NO DATA!,2011-01-04,E07000110,E14000804,Kent,2011-01-04,new dwelling,90,90,85,79.0,0.8,13,0.8,59.0,39.0,166.0,168.0,84.0,84.0,61.71,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,7.0,,From main system,Very Good,Very Good,Average thermal transmittance 0.15 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m?K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.85,,,NO DATA!,"22, Buckland Gardens",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2011-01-04 17:07:24,,14.0,7.0,10014308678.0,Address Matched +74336358912017071321073599930447,"9, Orbit Close",,,ME5 9NF,4727894468,D,B,64,86,House,Semi-Detached,2017-07-13,E07000110,E14000700,Kent,2017-07-13,marketed sale,44,88,471,82.0,4.2,75,0.7,49.0,44.0,510.0,371.0,150.0,65.0,56.0,dual,Y,NODATA!,,,2402.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,90.0,0.0,"Electric immersion, off-peak",Average,Poor,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, wood logs",,,"Pitched, 300 mm loft insulation",Very Good,Very Good,Electric storage heaters,Average,Very Poor,Automatic charge control,Average,Average,Low energy lighting in 90% of fixed outlets,Very Good,Very Good,electricity (not community),0.0,NO DATA!,,,,N,natural,"9, Orbit Close",Maidstone,Faversham and Mid Kent,CHATHAM,England and Wales: 1967-1975,2017-07-13 21:07:35,owner-occupied,,,200003708100.0,Address Matched +596924240352014031815120192940683,"18, Willow Crescent",Staplehurst,,TN12 0QS,6349024868,C,C,71,75,Flat,Semi-Detached,2014-03-18,E07000110,E14000804,Kent,2014-03-18,rental (social),73,77,179,151.0,1.9,34,1.6,42.0,42.0,375.0,315.0,86.0,86.0,55.0,Single,Y,Ground,N,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,83.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 83% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,no corridor,,,0.0,,natural,"18, Willow Crescent, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1950-1966,2014-03-18 15:12:01,rental (social),6.0,5.0,200003679368.0,Address Matched +15710092922020062220475108938430,Apartment 17 Bluecoats Yard,Knightrider Street,,ME15 6LD,3018948468,C,C,79,80,Flat,End-Terrace,2020-06-17,E07000110,E14000804,Kent,2020-06-22,rental (private),81,81,129,123.0,1.6,23,1.6,98.0,65.0,261.0,264.0,95.0,95.0,73.0,Single,Y,Ground,N,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,50.0,0.0,From main system,Good,Good,"To unheated space, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,heated corridor,,,,N,natural,"Apartment 17 Bluecoats Yard, Knightrider Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2020-06-22 20:47:51,rental (private),,,10014307475.0,Address Matched +410758193052009121207004607919079,24 Hayle Mill,Hayle Mill Road,,ME15 6JW,995370768,E,D,54,55,Flat,NO DATA!,2009-12-12,E07000110,E14000804,Kent,2009-12-12,new dwelling,64,64,265,262.0,3.8,40,3.8,81.0,52.0,556.0,570.0,187.0,187.0,95.29,off-peak 10 hour,,ground floor,,,2106.0,,NO DATA!,NO DATA!,,,,4.0,0.0,"Electric immersion, off-peak",Poor,Poor,Average thermal transmittance 0.25 W/m?K,Good,Good,Fully double glazed,Good,Good,Average thermal transmittance 0.30 W/m?K,Good,Good,,,,Average thermal transmittance 0.16 W/m?K,Good,Good,"Boiler and radiators, electric",Very Poor,Poor,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 44% of fixed outlets,Good,Good,"Electricity: electricity, unspecified tariff",0.0,NO DATA!,,2.8,,,NO DATA!,"24 Hayle Mill, Hayle Mill Road",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2009-12-12 07:00:46,,9.0,4.0,10022896944.0,Address Matched +371305290442009100111211666712148,"589, Loose Road",,,ME15 9UH,5415697668,C,C,69,72,House,Semi-Detached,2009-09-24,E07000110,E14000804,Kent,2009-10-01,marketed sale,66,68,218,202.0,3.9,36,3.6,100.0,59.0,552.0,533.0,109.0,109.0,120.0,dual,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,7.0,7.0,31.0,2.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 150mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 31% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.44,0.0,N,natural,"589, Loose Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2009-10-01 11:21:16,owner-occupied,,,200003676034.0,Address Matched +644654679002018032215250686782228,"5, The Quern",,,ME15 6FT,2059877868,C,B,70,86,House,End-Terrace,2018-03-22,E07000110,E14000804,Kent,2018-03-22,rental (private),68,85,217,89.0,2.7,38,1.1,70.0,50.0,419.0,387.0,129.0,76.0,69.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,2.0,4.0,4.0,60.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 60% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"5, The Quern",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2018-03-22 15:25:06,rental (private),,,200003666118.0,Address Matched +429816559762010020116244712908480,"50b, Whitmore Street",,,ME16 8JU,8167502768,G,E,18,47,Flat,Mid-Terrace,2010-01-30,E07000110,E14000804,Kent,2010-02-01,rental (private),41,37,593,656.0,4.6,89,5.1,53.0,59.0,925.0,543.0,264.0,114.0,51.2,Single,N,1st,Y,2.0,2603.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,0.0,0.0,"Electric immersion, standard tariff",Very Poor,Poor,(other premises below),,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, electric",Very Poor,Poor,Programmer and appliance thermostats,Good,Good,No low energy lighting,Very Poor,Very Poor,electricity - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.43,0.0,N,natural,"50b, Whitmore Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2010-02-01 16:24:47,rental (private),,,200003729693.0,Address Matched +1065659618512014010218130199040817,"34, Slaney Road",Staplehurst,,TN12 0SE,8739897178,D,B,63,87,House,Mid-Terrace,2014-01-02,E07000110,E14000804,Kent,2014-01-02,marketed sale,63,89,221,49.0,3.0,42,0.7,84.0,45.0,524.0,351.0,150.0,88.0,72.0,Single,Y,NODATA!,,,2504.0,0.0,single glazing,Normal,0.0,5.0,4.0,12.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, 250 mm loft insulation",Good,Good,"Warm air, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 12% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"34, Slaney Road, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1967-1975,2014-01-02 18:13:01,owner-occupied,8.0,1.0,200003678635.0,Address Matched +1542225276652017050919332796030757,"9, Flaxman Drive",,,ME16 0RU,7718661578,D,B,58,86,Bungalow,Semi-Detached,2017-05-09,E07000110,E14000804,Kent,2017-05-09,marketed sale,52,85,336,80.0,3.5,59,0.9,58.0,42.0,565.0,371.0,179.0,66.0,60.0,Single,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,63.0,1.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 63% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"9, Flaxman Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2017-05-09 19:33:27,owner-occupied,,,200003659477.0,Address Matched +1150674969112017072812113499230320,"24, Middlesex Road",,,ME15 7PL,3030993278,C,B,70,85,House,Semi-Detached,2017-07-28,E07000110,E14000700,Kent,2017-07-28,marketed sale,68,83,205,93.0,2.9,36,1.3,79.0,54.0,451.0,423.0,136.0,80.0,79.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,55.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"System built, with internal insulation",Good,Good,"Room heaters, mains gas",,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 55% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"24, Middlesex Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2017-07-28 12:11:34,owner-occupied,,,200003712749.0,Address Matched +652494239102018010216094385839478,"17, Manor Rise",Bearsted,,ME14 4DB,4100338868,C,B,70,83,Bungalow,Detached,2017-12-13,E07000110,E14000700,Kent,2018-01-02,marketed sale,68,82,181,94.0,3.8,29,1.9,78.0,78.0,712.0,583.0,139.0,85.0,130.0,Single,Y,NODATA!,,,,100.0,double glazing installed during or after 2002,Normal,3.0,4.0,4.0,,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Poor,Poor,"Room heaters, wood logs",,,"Pitched, 270 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"17, Manor Rise, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,,2018-01-02 16:09:43,owner-occupied,,,200003692078.0,Address Matched +476396939262018112014073335708628,"2, College Road",,,ME15 6YF,2387335768,F,C,24,71,Flat,End-Terrace,2018-11-20,E07000110,E14000804,Kent,2018-11-20,rental (private),35,62,763,392.0,4.0,129,2.1,26.0,29.0,1112.0,267.0,146.0,161.0,31.0,Single,N,Ground,N,,2602.0,80.0,secondary glazing,Normal,1.0,1.0,1.0,100.0,0.0,Electric instantaneous at point of use,Very Poor,Poor,"Suspended, no insulation (assumed)",NO DATA!,,Mostly secondary glazing,Average,Average,"Sandstone or limestone, as built, no insulation (assumed)",Very Poor,Very Poor,,,,(another dwelling above),,,"Room heaters, electric",Very Poor,Poor,Appliance thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,unheated corridor,5.09,,,N,natural,"2, College Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2018-11-20 14:07:33,rental (private),,,200003693288.0,Address Matched +1558563789702017071011351957239308,"13, Acorn Close",,,ME16 8FX,6773182578,B,A,85,95,House,Mid-Terrace,2017-07-10,E07000110,E14000804,Kent,2017-07-10,new dwelling,87,96,74,10.0,1.4,13,0.2,67.0,67.0,246.0,246.0,83.0,48.0,109.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.12 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"13, Acorn Close",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2017-07-10 11:35:19,owner-occupied,12.0,12.0,10093303862.0,Address Matched +1657359778212018082217430398280053,"23, Perryfield Street",,,ME14 2SY,347889578,D,B,61,87,House,Mid-Terrace,2018-08-22,E07000110,E14000804,Kent,2018-08-22,marketed sale,58,87,308,71.0,2.9,54,0.7,64.0,41.0,506.0,331.0,86.0,58.0,53.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,2.0,3.0,3.0,43.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 270 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 43% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"23, Perryfield Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2018-08-22 17:43:03,owner-occupied,,,200003669714.0,Address Matched +4453e856ee8a4fc2ab7313c0b98fa8428df598759360c3983745c922b73dd808,FLAT 1,115 SEYMOUR DRIVE,,TN12 9GS,10001643623,B,B,83,83,Flat,End-Terrace,2021-07-19,E07000110,E14000804,Kent,2021-07-19,new dwelling,88,88,93,93.0,0.9,16,0.9,54.0,54.0,162.0,162.0,62.0,62.0,52.0,standard tariff,,1,N,,,100.0,,,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.22 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.39,,,,"FLAT 1, 115 SEYMOUR DRIVE",Maidstone,Maidstone and The Weald,MARDEN,2018,2021-07-19 14:59:48,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,10.0,,10094441154.0,Energy Assessor +1650820183832018072409274731278800,"4, Blossom Way",Marden,,TN12 9GB,8001839578,B,A,84,96,House,Mid-Terrace,2018-07-24,E07000110,E14000804,Kent,2018-07-24,new dwelling,87,99,87,-9.0,1.1,15,-0.1,55.0,55.0,182.0,183.0,92.0,51.0,75.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.10 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.23 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.09 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"4, Blossom Way, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,NO DATA!,2018-07-24 09:27:47,owner-occupied,45.0,45.0,10093305183.0,Address Matched +1141624395432014052117104059278905,"30, Edna Road",,,ME14 2QJ,9549923278,E,C,49,78,House,Semi-Detached,2014-05-21,E07000110,E14000804,Kent,2014-05-21,marketed sale,46,77,356,125.0,4.1,69,1.5,72.0,38.0,751.0,517.0,120.0,80.0,60.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,4.0,4.0,11.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, mains gas",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 11% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"30, Edna Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2014-05-21 17:10:40,owner-occupied,9.0,1.0,200003670604.0,Address Matched +1306418259632016011414301589978500,"27a, Hastings Road",,,ME15 7SH,5029594378,D,C,64,76,Flat,Mid-Terrace,2016-01-14,E07000110,E14000804,Kent,2016-01-14,marketed sale,61,78,285,161.0,2.8,50,1.6,47.0,47.0,576.0,329.0,62.0,61.0,56.0,Single,Y,Ground,N,,2106.0,50.0,"double glazing, unknown install date",Normal,2.0,3.0,3.0,83.0,1.0,From main system,Very Good,Good,"To unheated space, no insulation (assumed)",NO DATA!,,Partial double glazing,Poor,Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, mains gas",,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 83% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,8.1,,,N,natural,"27a, Hastings Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2016-01-14 14:30:15,rental (private),,,200003695454.0,Address Matched +1277665699842015022417540133252448,"128, Plains Avenue",,,ME15 7AY,9896392378,E,B,50,82,House,Semi-Detached,2015-02-24,E07000110,E14000700,Kent,2015-02-24,assessment for green deal,39,77,374,120.0,7.3,67,2.4,129.0,65.0,1502.0,707.0,195.0,77.0,110.0,Single,Y,NODATA!,,,2102.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,0.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"128, Plains Avenue",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2015-02-24 17:54:01,owner-occupied,,,200003714243.0,Address Matched +350087760222009082409553156348341,"74, Felderland Close",,,ME15 9YD,4565646668,E,C,54,75,House,End-Terrace,2009-08-24,E07000110,E14000700,Kent,2009-08-24,marketed sale,48,71,375,206.0,4.9,63,2.7,77.0,39.0,707.0,415.0,117.0,91.0,77.8,Unknown,Y,NO DATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,3.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Poor,Poor,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.37,0.0,N,natural,"74, Felderland Close",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2009-08-24 09:55:31,owner-occupied,,,200003710354.0,Address Matched +1356016849142015082016252437859518,"52, Brewer Street",,,ME14 1RZ,6139748378,D,B,67,86,House,Mid-Terrace,2015-08-19,E07000110,E14000804,Kent,2015-08-20,non marketed sale,64,84,214,79.0,3.1,38,1.2,79.0,59.0,585.0,416.0,89.0,90.0,82.0,dual,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,4.0,4.0,67.0,0.0,"From main system, plus solar",Very Good,Very Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 67% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,Y,natural,"52, Brewer Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2015-08-20 16:25:24,owner-occupied,,,200003697629.0,Address Matched +446599836b5bb5fa2cab6d192b21d22ef21fd7be9d2d60f5ba6eddacbfafdeb8,7 Libya Terrace,Invicta Park,,ME14 2PG,10001583191,D,B,67,85,House,Mid-Terrace,2021-08-26,E07000110,E14000804,Kent,2021-08-27,Stock condition survey,63,83,225,90.0,3.2,40,1.3,86.0,86.0,542.0,420.0,93.0,65.0,81.0,dual,Y,,,,,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,83.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Average,Average,,,,"Flat, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 83% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.28,0.0,N,natural,"7 Libya Terrace, Invicta Park",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2021-08-27 17:05:14,Rented (social),12.0,,200003723918.0,Energy Assessor +73223219962012031516235825958842,"7, Pembroke Road",Coxheath,,ME17 4QJ,4261125468,D,C,63,72,House,Semi-Detached,2012-03-15,E07000110,E14000804,Kent,2012-03-15,marketed sale,61,72,236,171.0,3.7,45,2.7,86.0,45.0,599.0,464.0,94.0,85.0,92.12,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,5.0,5.0,8.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 8% of fixed outlets,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,2.4,0.0,,natural,"7, Pembroke Road, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2012-03-15 16:23:58,owner-occupied,12.0,1.0,200003714724.0,Address Matched +1511620049842017011821363245939368,Flat 2,"61, Florence Road",,ME16 8EL,9857949478,E,C,54,75,Flat,Mid-Terrace,2017-01-16,E07000110,E14000804,Kent,2017-01-18,rental (private),39,69,576,269.0,3.8,97,1.8,48.0,32.0,530.0,191.0,161.0,161.0,39.0,dual,N,Ground,N,,2401.0,100.0,"double glazing, unknown install date",Normal,1.0,2.0,2.0,50.0,0.0,Electric instantaneous at point of use,Very Poor,Poor,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, electric",,,(another dwelling above),,,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 50% of fixed outlets,Good,Good,electricity (not community),0.0,unheated corridor,3.0,,,N,natural,"Flat 2, 61, Florence Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2017-01-18 21:36:32,rental (private),,,200003668374.0,Address Matched +296655219262016042012045992308196,"1, Egremont Road",Bearsted,,ME15 8LH,9901172668,D,B,64,84,Bungalow,Semi-Detached,2016-04-20,E07000110,E14000700,Kent,2016-04-20,marketed sale,63,85,265,94.0,2.8,46,1.0,46.0,46.0,526.0,432.0,132.0,68.0,60.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,4.0,4.0,90.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 90% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,2.42,,N,natural,"1, Egremont Road, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2016-04-20 12:04:59,owner-occupied,,,200003690647.0,Address Matched +739932389922012011619200264168172,"21, Reeves Close",Staplehurst,,TN12 0NN,7649874968,D,D,62,68,House,Semi-Detached,2012-01-16,E07000110,E14000804,Kent,2012-01-16,marketed sale,60,67,249,205.0,3.6,48,3.0,61.0,42.0,592.0,497.0,102.0,102.0,75.68,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,56.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 56% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,2.3,0.0,,natural,"21, Reeves Close, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1950-1966,2012-01-16 19:20:02,owner-occupied,9.0,5.0,200003678276.0,Address Matched +843449926112012100920021592029306,"38, Highland Road",,,ME15 7QH,3665622078,C,B,69,85,House,End-Terrace,2012-10-09,E07000110,E14000700,Kent,2012-10-09,marketed sale,68,85,185,70.0,2.6,36,1.0,48.0,48.0,457.0,386.0,85.0,59.0,73.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,4.0,4.0,86.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 86% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"38, Highland Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2012-10-09 20:02:15,owner-occupied,14.0,12.0,200003680403.0,Address Matched +782293859762012043015183737808822,Thornham Friars,Pilgrims Way,Thurnham,ME14 3LN,2326597968,E,D,43,55,House,Detached,2012-04-30,E07000110,E14000700,Kent,2012-04-30,marketed sale,36,45,278,219.0,31.0,54,24.0,245.0,142.0,5075.0,4222.0,121.0,121.0,573.0,Single,Y,NODATA!,,,2107.0,0.0,not defined,Normal,1.0,12.0,12.0,23.0,13.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Timber frame, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 23% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"Thornham Friars, Pilgrims Way, Thurnham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2012-04-30 15:18:37,owner-occupied,65.0,15.0,200003695528.0,Address Matched +238934120962009022317172388018011,"76, Oxford Road",,,ME15 8DJ,1896218568,D,C,55,75,House,Semi-Detached,2009-02-19,E07000110,E14000700,Kent,2009-02-23,marketed sale,48,71,369,199.0,5.0,61,2.7,58.0,39.0,659.0,374.0,141.0,102.0,81.2,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,50.0,0.0,From main system,Average,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 100mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Average,Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.5,0.0,N,natural,"76, Oxford Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2009-02-23 17:17:23,owner-occupied,,,200003685663.0,Address Matched +1751896673252019091812343097910063,"18, Moncktons Lane",,,ME14 2PY,355376678,D,C,66,80,House,Semi-Detached,2019-09-18,E07000110,E14000804,Kent,2019-09-18,marketed sale,64,79,207,109.0,3.5,36,1.9,124.0,70.0,668.0,605.0,88.0,58.0,97.0,Single,Y,NODATA!,,,2106.0,81.0,double glazing installed during or after 2002,Normal,1.0,6.0,6.0,24.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Mostly double glazing,Average,Average,"Cavity wall, filled cavity",Average,Average,"Room heaters, electric",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 24% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"18, Moncktons Lane",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2019-09-18 12:34:30,owner-occupied,,,200003670549.0,Address Matched +1483889659842016092915481148762238,"127, Ashford Road",Bearsted,,ME14 4BT,3872457478,F,C,36,76,House,Detached,2016-09-27,E07000110,E14000700,Kent,2016-09-29,marketed sale,28,69,427,142.0,12.0,75,4.1,132.0,94.0,2223.0,982.0,234.0,81.0,163.0,dual,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,59.0,0.0,From main system,Average,Average,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Average,Average,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 59% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,2.54,,N,natural,"127, Ashford Road, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1900-1929,2016-09-29 15:48:11,owner-occupied,,,200003692024.0,Address Matched +1618929429222018032716200407238868,"6, Jester Way",,,ME15 9TF,6010217578,B,A,83,95,House,Mid-Terrace,2018-03-27,E07000110,E14000700,Kent,2018-03-27,new dwelling,85,96,97,12.0,1.4,17,0.2,57.0,57.0,227.0,227.0,102.0,65.0,83.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.19 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.14 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"6, Jester Way",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2018-03-27 16:20:04,unknown,10.0,10.0,10093304737.0,Address Matched +1236462419962014111414335930978694,Ledgers Cottage,Headcorn Road,Grafty Green,ME17 2AN,9309100378,D,C,56,79,House,Detached,2014-11-13,E07000110,E14000700,Kent,2014-11-14,marketed sale,47,72,207,97.0,8.4,48,4.1,103.0,103.0,1334.0,761.0,537.0,346.0,177.0,Single,N,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,7.0,7.0,75.0,0.0,From main system,Poor,Poor,"Solid, insulated",,,Fully double glazed,Good,Good,"Sandstone, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, oil",Good,Average,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,oil (not community),0.0,NO DATA!,,,0.0,,natural,"Ledgers Cottage, Headcorn Road, Grafty Green",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2014-11-14 14:33:59,owner-occupied,16.0,12.0,10014307848.0,Address Matched +162438360832008101513213218968794,"394, Willington Street",,,ME15 8HJ,6408752568,C,C,73,78,Flat,End-Terrace,2008-10-15,E07000110,E14000700,Kent,2008-10-15,rental (social),70,75,272,223.0,2.0,45,1.6,27.0,20.0,273.0,241.0,69.0,57.0,43.96,Single,Y,Ground,N,2.0,2107.0,100.0,double glazing installed before 2002,Normal,0.0,2.0,2.0,60.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Poor,Poor,Low energy lighting in 60% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.32,0.0,N,natural,"394, Willington Street",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2008-10-15 13:21:32,rental (social),,,200003680594.0,Address Matched +394596800062009110617474239268081,"80, Stockett Lane",Coxheath,,ME17 4PY,8371069668,F,E,35,47,House,Semi-Detached,2009-11-06,E07000110,E14000804,Kent,2009-11-06,marketed sale,35,46,496,376.0,7.6,82,5.7,79.0,46.0,1201.0,971.0,137.0,99.0,92.3,Single,Y,NO DATA!,,,2107.0,100.0,"double glazing, unknown install date",Normal,2.0,5.0,5.0,30.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, electric",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 30% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,,0.0,N,natural,"80, Stockett Lane, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,,2009-11-06 17:47:42,owner-occupied,,,200003714374.0,Address Matched +803802449442012062215301090922428,Flat 13 Lynx Gate,Massey Close,,ME15 6ZR,1465849968,B,B,86,86,Flat,NO DATA!,2012-06-22,E07000110,E14000804,Kent,2012-06-22,new dwelling,91,91,63,63.0,0.7,12,0.7,34.0,34.0,186.0,186.0,80.0,80.0,59.0,standard tariff,,ground floor,,,,,NO DATA!,NO DATA!,,,,7.0,,From main system,Good,Good,Average thermal transmittance 0.14 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.19 W/m?K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,,,NO DATA!,"Flat 13 Lynx Gate, Massey Close",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2012-06-22 15:30:10,,7.0,7.0,10014313183.0,Address Matched +1022429699402013101016575616479208,"33, Bonnington Road",,,ME14 5QR,444694178,D,B,58,89,House,End-Terrace,2013-10-10,E07000110,E14000804,Kent,2013-10-10,none of the above,54,91,267,37.0,3.8,51,0.6,75.0,48.0,619.0,310.0,160.0,80.0,74.0,dual,Y,NODATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,44.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 44% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"33, Bonnington Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2013-10-10 16:57:56,owner-occupied,9.0,4.0,200003671789.0,Address Matched +1209232661212014092219364791940821,"111, Old Tovil Road",,,ME15 6QE,8180118278,G,C,1,73,House,Detached,2014-09-18,E07000110,E14000804,Kent,2014-09-22,none of the above,2,45,848,284.0,21.0,150,7.1,143.0,80.0,5409.0,966.0,334.0,105.0,140.0,Single,N,NODATA!,,,2699.0,0.0,not defined,Normal,0.0,7.0,0.0,0.0,4.0,"Electric immersion, standard tariff",Very Poor,Very Poor,"Suspended, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, no insulation",Very Poor,Very Poor,No system present: electric heaters assumed,Very Poor,Very Poor,,Very Poor,Very Poor,No low energy lighting,Very Poor,Very Poor,To be used only when there is no heating/hot-water system,0.0,NO DATA!,,,0.0,,natural,"111, Old Tovil Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2014-09-22 19:36:47,rental (private),13.0,0.0,200003665738.0,Address Matched +176686489102018111716525853389738,"41, Melville Road",,,ME15 7UY,3120383568,D,B,56,82,House,Mid-Terrace,2018-11-17,E07000110,E14000804,Kent,2018-11-17,rental (private),49,79,353,126.0,4.2,62,1.6,50.0,50.0,704.0,472.0,140.0,66.0,68.0,Unknown,Y,NODATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"41, Melville Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2018-11-17 16:52:58,rental (private),,,200003696089.0,Address Matched +293860250102009102210194360212928,65 Hughenden Reach,Tovil,,ME15 6ZL,6155752668,B,B,86,87,Flat,NO DATA!,2009-10-22,E07000110,E14000804,Kent,2009-10-22,new dwelling,86,87,102,95.0,1.2,17,1.2,66.0,42.0,185.0,187.0,88.0,88.0,74.1,standard tariff,,mid floor,,,2106.0,,NO DATA!,NO DATA!,,,,3.0,0.0,From main system,Very Good,Very Good,(other premises below),,,Fully double glazed,Good,Good,Average thermal transmittance 0.32 W/m?K,Good,Good,,,,Average thermal transmittance 0.00 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 43% fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"65 Hughenden Reach, Tovil",Maidstone,Maidstone and The Weald,MAIDSTONE,,2009-10-22 10:19:43,,,,10014308528.0,Address Matched +633566399742011052500431485692558,10 Cleveland House,Woodford Road,,ME16 9BU,6730796868,C,C,74,74,Flat,Semi-Detached,2011-05-25,E07000110,E14000804,Kent,2011-05-25,rental (social),76,76,163,163.0,2.0,31,2.0,35.0,35.0,201.0,201.0,219.0,219.0,62.3,Single,Y,2nd,N,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,100.0,0.0,"From main system, no cylinder thermostat",Average,Average,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,1.2,2.27,0.0,,natural,"10 Cleveland House, Woodford Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2011-05-25 00:43:14,rental (social),6.0,6.0,200003685180.0,Address Matched +1087182007212014021007510794040617,Smiths Hill Barn,Smiths Hill,West Farleigh,ME15 0PG,6702749178,C,B,75,87,House,Detached,2014-02-08,E07000110,E14000804,Kent,2014-02-10,marketed sale,67,80,121,56.0,4.2,30,2.4,89.0,89.0,664.0,624.0,195.0,117.0,142.0,Single,N,NODATA!,,,2107.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,80.0,0.0,From main system,Good,Average,"Solid, insulated (assumed)",,,Fully double glazed,Good,Good,"Timber frame, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, oil",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,oil (not community),0.0,NO DATA!,,,0.0,,natural,"Smiths Hill Barn, Smiths Hill, West Farleigh",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2014-02-10 07:51:07,owner-occupied,15.0,12.0,200003730349.0,Address Matched +1418946435752016040108450199060543,21 Amshurst Villas,Gallants Lane,East Farleigh,ME15 0LQ,5342592478,C,A,70,117,Bungalow,Mid-Terrace,2016-04-01,E07000110,E14000804,Kent,2016-04-01,rental (social),73,115,221,-145.0,1.8,37,-1.2,35.0,35.0,281.0,228.0,223.0,223.0,49.0,Single,N,NODATA!,,,2204.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,100.0,0.0,"From main system, plus solar",Poor,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 270 mm loft insulation",Good,Good,"Air source heat pump, radiators, electric",Good,Very Good,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,NO DATA!,,2.44,,Y,natural,"21 Amshurst Villas, Gallants Lane, East Farleigh",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2016-04-01 08:45:01,rental (social),,,200003671205.0,Address Matched +47988640962008121714480265938808,Flat 56,Broadway Heights,23 The Broadway,ME16 8GJ,686465568,B,B,82,82,Flat,Detached,2008-12-17,E07000110,E14000804,Kent,2008-12-17,new dwelling,82,82,147,144.0,1.3,0,1.3,31.0,25.0,207.0,208.0,64.0,64.0,0.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,12.0,,SAP05:Hot-Water,,,SAP05:Floor,,,SAP05:Windows,,,SAP05:Walls,,,SAP05:Secondary-Heating,,,SAP05:Roof,,,SAP05:Main-Heating,,,SAP05:Main-Heating-Controls,,,SAP05:Lighting,,,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,,,,NO DATA!,"Flat 56, Broadway Heights, 23 The Broadway",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2008-12-17 14:48:02,,16.0,12.0,10022896880.0,Address Matched +765266829612012032422332396220594,"135, Calder Road",,,ME14 2RA,5466966968,C,C,71,71,House,End-Terrace,2012-03-24,E07000110,E14000804,Kent,2012-03-24,rental (social),71,71,188,188.0,2.4,36,2.4,37.0,37.0,418.0,418.0,79.0,79.0,65.47,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"System built, with internal insulation",Good,Good,,,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,2.2,0.0,,natural,"135, Calder Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2012-03-24 22:33:23,rental (social),8.0,8.0,200003671088.0,Address Matched +638469486132019060816492783068006,"3, Burghclere Drive",,,ME16 8UQ,8693037868,D,A,55,93,House,Enclosed End-Terrace,2019-06-07,E07000110,E14000804,Kent,2019-06-08,rental (private),52,77,423,171.0,2.8,72,1.1,45.0,36.0,528.0,287.0,183.0,80.0,39.0,dual,N,NODATA!,,,2603.0,90.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,57.0,0.0,"Electric immersion, off-peak",Poor,Poor,"Solid, no insulation (assumed)",NO DATA!,,Mostly double glazing,Average,Average,"Timber frame, as built, insulated (assumed)",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Room heaters, electric",Very Poor,Poor,Programmer and appliance thermostats,Good,Good,Low energy lighting in 57% of fixed outlets,Good,Good,electricity (not community),0.0,NO DATA!,,,,N,natural,"3, Burghclere Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1976-1982,2019-06-08 16:49:27,rental (private),,,200003675801.0,Address Matched +395328860442009111008395568910718,48 Melrose Close,,,ME15 6ZE,5453569668,B,B,89,90,Flat,NO DATA!,2009-11-09,E07000110,E14000804,Kent,2009-11-10,new dwelling,89,89,90,87.0,0.9,14,0.9,48.0,38.0,185.0,186.0,81.0,81.0,64.83,standard tariff,,mid floor,,,2106.0,,NO DATA!,NO DATA!,,,,9.0,0.0,From main system,Very Good,Very Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.21 W/m?K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,48 Melrose Close,Maidstone,Maidstone and The Weald,MAIDSTONE,,2009-11-10 08:39:55,,,,10014307017.0,Address Matched +1556934500112017070319523297030759,5 Whites Cottages,Maidstone Road,Nettlestead,ME18 5HG,7908072578,E,B,53,87,House,Semi-Detached,2017-07-03,E07000110,E14000804,Kent,2017-07-03,marketed sale,46,86,395,82.0,4.2,70,0.9,43.0,43.0,776.0,372.0,93.0,63.0,60.0,Unknown,Y,NODATA!,,,2107.0,80.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Mostly double glazing,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"5 Whites Cottages, Maidstone Road, Nettlestead",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2017-07-03 19:52:32,owner-occupied,,,200003656477.0,Address Matched +375090799022019120512384238758581,Flat 115 Lee Heights,Bambridge Court,,ME14 2LD,8374918668,D,C,62,79,Flat,Mid-Terrace,2019-12-05,E07000110,E14000804,Kent,2019-12-05,marketed sale,66,64,232,241.0,2.7,39,2.8,60.0,67.0,545.0,304.0,320.0,173.0,70.0,Single,N,3rd,Y,,2603.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,100.0,0.0,"Electric immersion, standard tariff",Very Poor,Poor,(another dwelling below),NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Room heaters, electric",Very Poor,Poor,Programmer and appliance thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,unheated corridor,5.0,,,N,natural,"Flat 115 Lee Heights, Bambridge Court",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2019-12-05 12:38:42,owner-occupied,,,10022893085.0,Address Matched +780035359262012042412335037978772,"18, Rivers Walk",Lenham,,ME17 2JT,7328577968,C,B,69,88,House,Mid-Terrace,2012-04-23,E07000110,E14000700,Kent,2012-04-24,marketed sale,70,90,175,46.0,2.5,33,0.7,84.0,42.0,415.0,336.0,93.0,58.0,75.0,Single,N,NODATA!,,,2107.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Timber frame, as built, partial insulation (assumed)",Average,Average,"Room heaters, electric",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"18, Rivers Walk, Lenham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2012-04-24 12:33:50,owner-occupied,9.0,0.0,200003710457.0,Address Matched +1557296613912017070510324797030057,4 Downs View Court,"66, Murdoch Chase",Coxheath,ME17 4AA,794372578,B,B,83,83,Flat,Detached,2017-07-05,E07000110,E14000804,Kent,2017-07-05,new dwelling,88,88,99,99.0,0.9,17,0.9,40.0,40.0,171.0,171.0,66.0,66.0,49.0,standard tariff,,ground floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.14 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.19 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"4 Downs View Court, 66, Murdoch Chase, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2017-07-05 10:32:47,unknown,7.0,7.0,10093302707.0,Address Matched +533005259962010091510200999448010,"2, Hartnup Street",,,ME16 8LR,1923539768,B,B,83,84,Flat,NO DATA!,2010-09-14,E07000110,E14000804,Kent,2010-09-15,new dwelling,82,83,164,157.0,1.2,27,1.2,44.0,26.0,219.0,222.0,72.0,72.0,44.68,standard tariff,,ground floor,,,,,NO DATA!,NO DATA!,,,,2.0,,From main system,Very Good,Very Good,Average thermal transmittance 0.21 W/m?K,Good,Good,Fully double glazed,Good,Good,Average thermal transmittance 0.30 W/m?K,Good,Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 33% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.35,,,NO DATA!,"2, Hartnup Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2010-09-15 10:20:09,,6.0,2.0,200003657426.0,Address Matched +1534528419742017040715035758130438,"42, Brunswick Street",,,ME15 6NP,3761211578,D,B,57,84,House,Mid-Terrace,2017-04-07,E07000110,E14000804,Kent,2017-04-07,marketed sale,60,88,311,88.0,3.3,47,0.9,88.0,49.0,739.0,438.0,99.0,66.0,71.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,20.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 20% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"42, Brunswick Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2017-04-07 15:03:57,owner-occupied,,,200003692734.0,Address Matched +56206342742020060519085450600858,"88, Clock House Rise",Coxheath,,ME17 4GS,2784146568,D,C,66,78,House,Mid-Terrace,2020-06-05,E07000110,E14000804,Kent,2020-06-05,marketed sale,66,78,210,126.0,3.1,37,1.9,71.0,71.0,671.0,674.0,107.0,64.0,86.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,"mechanical, supply and extract","88, Clock House Rise, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2020-06-05 19:08:54,owner-occupied,,,10022900591.0,Address Matched +472391859222010042014225925808340,"8, The Chantry",Headcorn,,TN27 9TF,4286505768,C,C,77,78,House,Detached,2010-04-20,E07000110,E14000700,Kent,2010-04-20,marketed sale,77,78,138,132.0,3.9,21,3.7,162.0,100.0,533.0,544.0,159.0,159.0,182.0,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,7.0,7.0,38.0,0.0,From main system,Very Good,Very Good,"Solid, insulated (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, wood logs",,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 38% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.3,0.0,N,natural,"8, The Chantry, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,England and Wales: 2003-2006,2010-04-20 14:22:59,owner-occupied,,,10022896213.0,Address Matched +1007193089142013091709145617379878,"17, Cheriton Way",,,ME16 0PH,6133583178,E,B,47,87,House,End-Terrace,2013-09-13,E07000110,E14000804,Kent,2013-09-17,none of the above,30,69,518,179.0,6.5,92,2.2,60.0,47.0,769.0,350.0,224.0,80.0,71.0,dual,N,NODATA!,,,2402.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,71.0,0.0,"Electric immersion, off-peak",Very Poor,Very Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,Portable electric heaters (assumed),,,"Pitched, 50 mm loft insulation",Poor,Poor,Electric storage heaters,Average,Very Poor,Automatic charge control,Average,Average,Low energy lighting in 71% of fixed outlets,Very Good,Very Good,electricity (not community),0.0,NO DATA!,,,0.0,,natural,"17, Cheriton Way",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2013-09-17 09:14:56,owner-occupied,7.0,5.0,200003660115.0,Address Matched +1729370709142019061622484666519878,"26, Peacock Mews",Springvale,,ME16 0AW,4143905678,C,B,78,90,House,Mid-Terrace,2019-06-13,E07000110,E14000804,Kent,2019-06-16,marketed sale,78,90,130,45.0,1.9,23,0.7,64.0,64.0,274.0,274.0,129.0,98.0,82.0,Unknown,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Suspended, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Roof room(s), insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"26, Peacock Mews, Springvale",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2019-06-16 22:48:46,owner-occupied,,,200003726544.0,Address Matched +474411219602010042215522774502608,"3, Catherine Close",Barming,,ME16 9PT,7680915768,C,C,69,79,House,End-Terrace,2010-04-20,E07000110,E14000804,Kent,2010-04-22,rental (social),64,76,266,178.0,3.1,45,2.0,38.0,38.0,403.0,316.0,177.0,101.0,81.52,Single,Y,NO DATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Suspended, limited insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.35,0.0,N,natural,"3, Catherine Close, Barming",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2010-04-22 15:52:27,rental (social),,,200003699384.0,Address Matched +1806782332722020063019503880508510,"93, Fennel Close",,,ME16 0XT,1883370778,C,B,77,88,House,Mid-Terrace,2020-06-30,E07000110,E14000804,Kent,2020-06-30,rental (private),76,87,136,57.0,2.2,24,1.0,76.0,76.0,346.0,350.0,130.0,81.0,93.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,6.0,6.0,100.0,0.0,From main system,Good,Good,"Solid, limited insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Roof room(s), insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"93, Fennel Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2020-06-30 19:50:38,rental (private),,,200003722447.0,Address Matched +591533318652011021118254497990483,"66, High Street",Lenham,,ME17 2QB,4340873868,D,C,68,72,House,Semi-Detached,2011-02-10,E07000110,E14000700,Kent,2011-02-11,rental (private),64,68,233,207.0,3.9,39,3.5,105.0,55.0,552.0,548.0,173.0,135.0,101.0,Single,Y,NO DATA!,,,2106.0,0.0,not defined,Normal,0.0,5.0,5.0,8.0,2.0,"From main system, no cylinder thermostat",Average,Good,"Solid, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 8% of fixed outlets,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.5,0.0,N,natural,"66, High Street, Lenham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2011-02-11 18:25:44,rental (private),,,200003711191.0,Address Matched +382069856612014050220444196040969,"3, Cheviot Gardens",Downswood,,ME15 8TE,9901668668,D,B,56,82,House,Detached,2014-05-02,E07000110,E14000700,Kent,2014-05-02,none of the above,51,81,258,87.0,5.1,50,1.8,76.0,59.0,922.0,543.0,139.0,77.0,103.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,6.0,6.0,71.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, partial insulation (assumed)",Average,Average,"Room heaters, mains gas",,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 71% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"3, Cheviot Gardens, Downswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1976-1982,2014-05-02 20:44:41,owner-occupied,17.0,12.0,200003691049.0,Address Matched +1515740529412017020113583797030048,"17, Westborough Mews",,,ME16 8TU,827979478,C,B,74,88,House,End-Terrace,2017-02-01,E07000110,E14000804,Kent,2017-02-01,marketed sale,73,87,164,64.0,2.3,29,1.0,103.0,58.0,359.0,368.0,124.0,73.0,81.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,23.0,0.0,From main system,Good,Good,"Suspended, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 23% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"17, Westborough Mews",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2017-02-01 13:58:37,owner-occupied,,,10022896503.0,Address Matched +44fde992cd6e65e81c03db6b966faa831a03f54166ace529f01540790265299c,73 TREVOR DRIVE,,,ME16 0QN,10001592144,D,C,57,79,House,Semi-Detached,2021-08-04,E07000110,E14000804,Kent,2021-08-05,marketed sale,50,74,321,147.0,4.2,57,2.0,63.0,63.0,736.0,549.0,77.0,51.0,75.0,Unknown,Y,,,,,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.44,0.0,N,natural,73 TREVOR DRIVE,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2021-08-05 14:14:06,Owner-occupied,8.0,,200003659225.0,Energy Assessor +244935100962009031621514249368751,"229, Tonbridge Road",,,ME16 8ND,5418029568,D,C,62,75,House,Semi-Detached,2009-03-16,E07000110,E14000804,Kent,2009-03-16,marketed sale,57,71,253,169.0,6.1,42,4.1,134.0,67.0,650.0,474.0,167.0,120.0,145.36,Single,Y,NO DATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,2.0,5.0,5.0,0.0,0.0,From main system,Average,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Average,Good,Programmer and room thermostat,Poor,Poor,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.43,0.0,N,natural,"229, Tonbridge Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2009-03-16 21:51:42,owner-occupied,,,200003657473.0,Address Matched +1495479139602016110916090347860618,"147, Heath Road",Coxheath,,ME17 4PE,8661538478,E,C,47,80,House,End-Terrace,2016-11-09,E07000110,E14000804,Kent,2016-11-09,marketed sale,44,79,394,127.0,4.9,69,1.6,74.0,48.0,1013.0,571.0,86.0,53.0,71.0,Unknown,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,5.0,5.0,47.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 47% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,2.31,,N,natural,"147, Heath Road, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2016-11-09 16:09:03,owner-occupied,,,200003713016.0,Address Matched +1813897213032020072919514176278502,"5, Tovil Green",,,ME15 6RJ,1296521778,C,B,73,88,House,Mid-Terrace,2020-07-28,E07000110,E14000804,Kent,2020-07-29,marketed sale,74,89,162,63.0,2.7,26,1.0,79.0,79.0,539.0,421.0,93.0,63.0,104.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Poor,Poor,"Room heaters, wood logs",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"5, Tovil Green",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2020-07-29 19:51:41,owner-occupied,,,200003664673.0,Address Matched +218065223052009012216451507210857,Abbey Gate Farm,Stockett Lane,,ME15 0PP,8797376568,F,E,27,52,House,Detached,2009-01-20,E07000110,E14000804,Kent,2009-01-22,marketed sale,26,47,513,313.0,9.5,99,5.7,79.0,45.0,1170.0,656.0,375.0,287.0,95.7,Unknown,N,NO DATA!,,,2104.0,0.0,INVALID!,Normal,2.0,6.0,6.0,25.0,0.0,"From main system, no cylinderstat",Poor,Poor,"Solid, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, wood logs",,,"Pitched, insulated at rafters",Average,Average,"Boiler and radiators, oil",Average,Average,Programmer and room thermostat,Poor,Poor,Low energy lighting in 25% of fixed outlets,Average,Average,oil - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.6,0.0,N,natural,"Abbey Gate Farm, Stockett Lane",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2009-01-22 16:45:15,owner-occupied,,,200003664172.0,Address Matched +327020794112009071509590608010568,Apartment 11,7 Bazalgette Rise,,ME16 8FJ,5852484668,B,B,87,87,Flat,Detached,2009-06-01,E07000110,E14000804,Kent,2009-07-15,new dwelling,86,86,119,119.0,1.0,20,1.0,25.0,25.0,182.0,182.0,71.0,71.0,49.21,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,,From main system,Very Good,Very Good,(other premises below),,,Fully double glazed,Good,Good,Average thermal transmittance 0.19 W/m??K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 100% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.5,,,NO DATA!,"Apartment 11, 7 Bazalgette Rise",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2009-07-15 09:59:06,,,,10014308170.0,Address Matched +1671199597252018102221185998289861,"32, Holland Road",,,ME14 1UT,8110780678,E,B,46,81,House,Mid-Terrace,2018-10-22,E07000110,E14000804,Kent,2018-10-22,marketed sale,48,83,343,98.0,6.0,51,1.6,120.0,73.0,1348.0,598.0,94.0,62.0,118.0,Unknown,Y,NODATA!,,,2104.0,0.0,not defined,Normal,1.0,7.0,5.0,33.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Single glazed,Very Poor,Very Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Roof room(s), no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 33% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"32, Holland Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2018-10-22 21:18:59,owner-occupied,,,200003699043.0,Address Matched +664561529302011081020292784999808,"27, Brewer Street",,,ME14 1RU,2331029868,E,D,48,57,House,Semi-Detached,2011-08-10,E07000110,E14000804,Kent,2011-08-10,marketed sale,43,51,326,266.0,7.0,63,5.8,97.0,54.0,1117.0,955.0,143.0,115.0,112.06,Single,Y,NODATA!,,,2106.0,10.0,double glazing installed before 2002,Normal,1.0,5.0,5.0,20.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Some double glazing,Very Poor,Very Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 20% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,2.4,0.0,,natural,"27, Brewer Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2011-08-10 20:29:27,owner-occupied,15.0,3.0,200003697595.0,Address Matched +686436021312011100714105097099998,"56a, Cranborne Avenue",,,ME15 7EE,9834170968,D,C,57,74,Maisonette,Detached,2011-10-07,E07000110,E14000700,Kent,2011-10-07,marketed sale,55,77,331,175.0,3.2,64,1.7,34.0,34.0,480.0,284.0,156.0,93.0,49.4,Single,Y,Ground,Y,,2107.0,100.0,double glazing installed before 2002,Normal,0.0,2.0,2.0,83.0,0.0,"From main system, no cylinderstat",Average,Average,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 83% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,no corridor,,2.44,0.0,,natural,"56a, Cranborne Avenue",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2011-10-07 14:10:50,owner-occupied,6.0,5.0,200003728547.0,Address Matched +1372249209022015100710421189668465,Hillside House,Hunton Hill,Hunton,ME15 0SL,6848069378,F,C,33,70,House,Detached,2015-10-06,E07000110,E14000804,Kent,2015-10-07,marketed sale,35,69,280,117.0,14.0,62,6.0,163.0,100.0,2767.0,1401.0,232.0,99.0,233.0,Single,N,NODATA!,,,2107.0,10.0,double glazing installed before 2002,Normal,2.0,9.0,9.0,33.0,1.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Some double glazing,Very Poor,Very Poor,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, wood logs",,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, oil",Average,Average,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 33% of fixed outlets,Average,Average,oil (not community),0.0,NO DATA!,,,,N,natural,"Hillside House, Hunton Hill, Hunton",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2015-10-07 10:42:11,owner-occupied,,,200003669845.0,Address Matched +451443177032010030914573237068500,"8, Firmin Avenue",Boughton Monchelsea,,ME17 4NN,7097553768,D,C,64,69,House,Detached,2010-03-09,E07000110,E14000700,Kent,2010-03-09,marketed sale,63,68,240,205.0,4.3,39,3.7,107.0,60.0,610.0,570.0,171.0,143.0,108.3,Single,Y,NO DATA!,,,2105.0,100.0,double glazing installed before 2002,Normal,0.0,6.0,6.0,20.0,0.0,From main system,Good,Good,"Solid, limited insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and at least two room thermostats,Good,Good,Low energy lighting in 20% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.31,0.0,N,natural,"8, Firmin Avenue, Boughton Monchelsea",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1996-2002,2010-03-09 14:57:32,owner-occupied,,,200003722499.0,Address Matched +431354659022010020315565302578190,Flat 7 Sweet Briar Court,"80, London Road",,ME16 0DR,9087512768,B,B,82,85,Flat,Enclosed End-Terrace,2010-02-03,E07000110,E14000804,Kent,2010-02-03,marketed sale,80,84,152,120.0,1.6,25,1.3,45.0,36.0,239.0,210.0,104.0,84.0,63.6,Single,Y,1st,N,4.0,2104.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,75.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,unheated corridor,6.3,2.33,0.0,N,natural,"Flat 7 Sweet Briar Court, 80, London Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2010-02-03 15:56:53,owner-occupied,,,10014307937.0,Address Matched +1403773514952016012008002198259645,Flat 6,43 Kingsley Road,,ME15 7UW,6575481478,C,C,71,78,Flat,Enclosed End-Terrace,2015-12-21,E07000110,E14000804,Kent,2016-01-20,rental (social),74,84,334,208.0,1.2,59,0.8,28.0,19.0,216.0,132.0,99.0,99.0,21.0,Unknown,Y,1st,N,,2307.0,100.0,"double glazing, unknown install date",Normal,0.0,1.0,1.0,50.0,0.0,Community scheme,Good,Good,(another dwelling below),NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,(another dwelling above),,,Community scheme,Good,Good,"Flat rate charging, TRVs",Average,Average,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (community),0.0,heated corridor,,,,N,natural,"Flat 6, 43 Kingsley Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2016-01-20 08:00:21,rental (social),,,, +454012de0ce058e0e13e96ca292febe956cc07a8fa7f64168403363431785016,7 Green Lane,Boughton Monchelsea,,ME17 4JQ,10001582102,D,B,66,84,House,Semi-Detached,2021-09-29,E07000110,E14000700,Kent,2021-09-29,rental,61,81,239,103.0,3.9,42,1.7,82.0,82.0,616.0,467.0,127.0,78.0,92.0,Single,Y,,,,,100.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,89.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"System built, with external insulation",Good,Good,,,,"Pitched, 350 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 89% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.45,0.0,N,natural,"7 Green Lane, Boughton Monchelsea",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2021-09-29 11:44:01,Rented (social),9.0,,200003723046.0,Energy Assessor +1778897149752020030415465926000268,"4, Old School Place",Headcorn,,TN27 9FZ,2810968678,B,A,85,96,House,Mid-Terrace,2020-03-04,E07000110,E14000700,Kent,2020-03-04,new dwelling,87,99,76,-7.0,1.1,13,-0.1,71.0,71.0,187.0,187.0,73.0,44.0,82.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.20 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.10 W/m-¦K,Very Good,Very Good,"Boiler and underfloor heating, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"4, Old School Place, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,NO DATA!,2020-03-04 15:46:59,unknown,20.0,20.0,10094443676.0,Address Matched +1339787339502015070414225839750878,"10, Campbell Road",,,ME15 6PZ,1531337378,C,B,70,83,House,Mid-Terrace,2015-07-03,E07000110,E14000804,Kent,2015-07-04,marketed sale,65,79,191,108.0,4.2,34,2.4,92.0,69.0,747.0,609.0,112.0,112.0,123.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,6.0,6.0,67.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 67% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"10, Campbell Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2015-07-04 14:22:58,owner-occupied,,,200003693250.0,Address Matched +276183430842009043010584862112218,"59, John Street",,,ME14 2SQ,815131668,E,E,47,53,House,Mid-Terrace,2009-04-29,E07000110,E14000804,Kent,2009-04-30,non marketed sale,44,49,443,393.0,4.8,73,4.3,62.0,31.0,727.0,662.0,85.0,85.0,65.87,Single,Y,NO DATA!,,,2601.0,63.0,double glazing installed during or after 2002,Normal,1.0,5.0,2.0,0.0,0.0,Gas multipoint,Average,Good,"Suspended, no insulation (assumed)",,,Partial double glazing,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, electric",,,"Pitched, 50 mm loft insulation",Poor,Poor,"Room heaters, mains gas",Average,Average,No thermostatic control of room temperature,Poor,Poor,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.45,0.0,N,natural,"59, John Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2009-04-30 10:58:48,owner-occupied,,,200003702865.0,Address Matched +582713379262011012018194483208919,"353, Loose Road",,,ME15 9PY,1870703868,E,D,51,66,House,Semi-Detached,2011-01-20,E07000110,E14000804,Kent,2011-01-20,marketed sale,45,59,311,221.0,10.0,52,7.4,200.0,110.0,1480.0,1081.0,220.0,180.0,200.54,Single,Y,NO DATA!,,,2101.0,100.0,secondary glazing,Normal,0.0,7.0,7.0,19.0,3.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Full secondary glazing,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 100 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,No time or thermostatic control of room temperature,Very Poor,Very Poor,Low energy lighting in 19% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.8,0.0,N,natural,"353, Loose Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2011-01-20 18:19:44,owner-occupied,,,200003677872.0,Address Matched +1516841092332017020519462487078603,"35, King Edward Road",,,ME15 6PN,9357689478,D,B,65,85,House,Mid-Terrace,2017-02-05,E07000110,E14000804,Kent,2017-02-05,marketed sale,60,82,243,94.0,3.8,43,1.5,104.0,58.0,669.0,482.0,101.0,69.0,89.0,Single,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,1.0,4.0,4.0,22.0,0.0,From main system,Very Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 22% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"35, King Edward Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2017-02-05 19:46:24,owner-occupied,,,200003665593.0,Address Matched +653139357112011071123205493990983,"33, Bargrove Road",,,ME14 5RR,9352738868,C,C,73,75,House,Mid-Terrace,2011-07-11,E07000110,E14000804,Kent,2011-07-11,non marketed sale,75,78,173,152.0,2.0,33,1.8,57.0,34.0,312.0,297.0,108.0,97.0,60.28,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,4.0,4.0,33.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 33% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,2.2,0.0,,natural,"33, Bargrove Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1976-1982,2011-07-11 23:20:54,owner-occupied,9.0,3.0,200003672452.0,Address Matched +1233093579902014110711002128940138,"50, Drawbridge Close",,,ME15 7EZ,4968779278,C,B,77,89,House,Mid-Terrace,2014-11-07,E07000110,E14000700,Kent,2014-11-07,rental (social),79,90,122,42.0,1.9,23,0.7,55.0,55.0,338.0,340.0,133.0,89.0,82.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Solid, limited insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"50, Drawbridge Close",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1996-2002,2014-11-07 11:00:21,rental (social),11.0,11.0,10014306233.0,Address Matched +720899569062011110716040173538689,Flat 5 Cavendish Place,Cavendish Way,Bearsted,ME15 8FW,8730613968,B,B,84,84,Flat,NO DATA!,2011-11-07,E07000110,E14000700,Kent,2011-11-07,new dwelling,88,88,79,76.0,1.0,15,1.0,50.0,40.0,207.0,209.0,79.0,79.0,66.3,standard tariff,,ground floor,,,,,NO DATA!,NO DATA!,,,,6.0,,From main system,Good,Good,Average thermal transmittance 0.17 W/m?K,Very Good,Very Good,Fully double glazed,Good,Good,Average thermal transmittance 0.23 W/m?K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,,,NO DATA!,"Flat 5 Cavendish Place, Cavendish Way, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2011-11-07 16:04:01,,8.0,6.0,10014312982.0,Address Matched +1595782649942017121211284454539898,"46, Northumberland Road",,,ME15 7LR,1962745578,D,C,56,79,House,Semi-Detached,2017-12-11,E07000110,E14000700,Kent,2017-12-12,rental (social),50,74,338,157.0,4.3,60,2.1,88.0,50.0,765.0,581.0,99.0,66.0,73.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,4.0,4.0,25.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 25% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"46, Northumberland Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2017-12-12 11:28:44,rental (social),,,200003712265.0,Address Matched +1454335449142016061614590246569768,Wood View,Heath Road,Coxheath,ME17 4EF,7184345478,F,D,32,62,House,Detached,2016-06-16,E07000110,E14000804,Kent,2016-06-16,none of the above,28,51,357,178.0,8.0,92,4.5,110.0,63.0,1157.0,845.0,180.0,87.0,87.0,dual,N,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,5.0,5.0,25.0,1.0,From main system,Average,Average,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, oil",Average,Average,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 25% of fixed outlets,Average,Average,oil (not community),0.0,NO DATA!,,2.49,,N,natural,"Wood View, Heath Road, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2016-06-16 14:59:02,owner-occupied,,,200003672831.0,Address Matched +1531248579262017032707154680348463,"339, Willington Street",,,ME15 8AS,6870780578,D,C,63,79,House,Semi-Detached,2017-03-24,E07000110,E14000700,Kent,2017-03-27,marketed sale,59,76,233,126.0,4.8,41,2.6,89.0,71.0,866.0,737.0,169.0,78.0,117.0,Unknown,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,3.0,6.0,6.0,73.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, 270 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 73% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"339, Willington Street",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2017-03-27 07:15:46,owner-occupied,,,200003684452.0,Address Matched +821391101152012080711472497020001,"28, Pope Street",,,ME16 8LQ,176170078,D,B,67,89,House,Mid-Terrace,2012-08-02,E07000110,E14000804,Kent,2012-08-07,marketed sale,68,91,211,39.0,2.3,41,0.5,41.0,41.0,410.0,312.0,76.0,52.0,56.0,Single,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,75.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"28, Pope Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2012-08-07 11:47:24,owner-occupied,8.0,6.0,200003655816.0,Address Matched +1349066199612017042621082399230530,"90, Bicknor Road",,,ME15 9PB,5003997378,D,B,63,87,House,Mid-Terrace,2017-04-26,E07000110,E14000700,Kent,2017-04-26,marketed sale,59,86,279,83.0,3.3,49,1.0,71.0,47.0,580.0,414.0,124.0,50.0,68.0,Single,Y,NODATA!,,,2107.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,50.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"System built, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"90, Bicknor Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2017-04-26 21:08:23,owner-occupied,,,200003679917.0,Address Matched +272846825752009042413130600210463,"2, Threshers Drive",Weavering,,ME14 5UA,4324501668,D,C,66,72,House,Detached,2009-04-24,E07000110,E14000700,Kent,2009-04-24,marketed sale,61,68,242,198.0,4.7,40,3.9,88.0,54.0,546.0,471.0,120.0,104.0,112.56,Single,Y,NO DATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,2.0,4.0,4.0,36.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Roof room(s), insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Poor,Poor,Low energy lighting in 36% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.3,0.0,N,natural,"2, Threshers Drive, Weavering",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2009-04-24 13:13:06,owner-occupied,,,200003689143.0,Address Matched +721209718552011110810512491099194,"10, Clare Place",,,ME15 9ZF,1482813968,B,B,85,85,House,Mid-Terrace,2011-11-08,E07000110,E14000700,Kent,2011-11-08,new dwelling,89,89,63,63.0,1.1,12,1.1,63.0,63.0,228.0,228.0,44.0,44.0,94.62,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,15.0,,"From main system, plus solar",Very Good,Very Good,Average thermal transmittance 0.18 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.23 W/m?K,Very Good,Very Good,"Room heaters, electric",,,Average thermal transmittance 0.10 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in 83% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.31,,,NO DATA!,"10, Clare Place",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2011-11-08 10:51:24,,18.0,15.0,10014311506.0,Address Matched +548165500032010100509021726068391,"9, Brooker Close",Boughton Monchelsea,,ME17 4UY,136340868,C,C,72,75,House,Detached,2010-10-05,E07000110,E14000700,Kent,2010-10-05,marketed sale,68,72,200,179.0,3.7,33,3.3,82.0,63.0,505.0,474.0,167.0,148.0,111.0,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,8.0,8.0,69.0,0.0,From main system,Good,Good,"Solid, limited insulation (assumed)",,,Fully double glazed,Good,Good,"Timber frame, as built, insulated (assumed)",Good,Good,"Room heaters, mains gas",,,"Pitched, 250 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 69% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.3,0.0,N,natural,"9, Brooker Close, Boughton Monchelsea",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1996-2002,2010-10-05 09:02:17,owner-occupied,,,10022892683.0,Address Matched +4564f5ef490270e54ff3a5f269b7f3b3780b11fd0513cd816dc82440ee380b5b,10,Bella Rosa Drive,Langley,ME17 3US,10001335404,B,A,84,93,House,Detached,2021-09-21,E07000110,E14000700,Kent,2021-09-21,new dwelling,85,94,85,26.0,1.7,15,0.6,86.0,86.0,297.0,297.0,74.0,45.0,117.0,standard tariff,,,N,,,100.0,,,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.38,,,,"10, Bella Rosa Drive, Langley",Maidstone,Faversham and Mid Kent,Maidstone,2021,2021-09-21 07:56:14,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,15.0,,10095448357.0,Address Matched +935323969062016020508091548348866,"34, Derby Road",,,ME15 7JB,6412678078,C,B,69,83,House,Semi-Detached,2016-02-04,E07000110,E14000700,Kent,2016-02-05,marketed sale,65,81,209,107.0,3.4,37,1.8,70.0,70.0,631.0,537.0,108.0,73.0,92.0,Unknown,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,82.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 82% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"34, Derby Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2016-02-05 08:09:15,owner-occupied,,,200003712028.0,Address Matched +873598189262013011815042364628559,"66, Coombe Road",,,ME15 6YR,5697834078,B,B,84,84,House,Mid-Terrace,2011-11-22,E07000110,E14000804,Kent,2013-01-18,rental (social) - this is for backwards compatibility only and should not be used,88,88,72,72.0,1.2,13,1.2,54.0,54.0,211.0,211.0,96.0,96.0,89.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.13 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.20 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.09 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"66, Coombe Road",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2013-01-18 15:04:23,NO DATA!,0.0,0.0,10014314127.0,Address Matched +1112928791652014032712044293240420,Flat 4,2 Albion Place,,ME14 5DY,4071131278,D,C,60,78,Flat,End-Terrace,2014-03-21,E07000110,E14000804,Kent,2014-03-27,marketed sale,52,72,589,340.0,2.3,104,1.3,36.0,18.0,357.0,148.0,117.0,117.0,22.0,Unknown,N,1st,N,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,1.0,1.0,0.0,0.0,From main system,Average,Very Poor,(other premises below),,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Poor,Poor,,,,(another dwelling above),,,"Boiler and radiators, electric",Poor,Very Poor,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,electricity (not community),0.0,unheated corridor,7.7,,0.0,,natural,"Flat 4, 2 Albion Place",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2014-03-27 12:04:42,owner-occupied,3.0,0.0,10091194234.0,Address Matched +456f69ed8092c90fe5be16e32e89e02812bfb4610418f8462cdd2295750d1339,1 Wolfe Road,,,ME16 8NX,10001324929,D,B,61,82,House,Semi-Detached,2021-09-15,E07000110,E14000804,Kent,2021-09-15,marketed sale,59,81,252,99.0,3.6,44,1.5,93.0,67.0,693.0,507.0,96.0,66.0,82.0,Unknown,Y,,,,,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,62.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 62% of fixed outlets,Good,Good,mains gas (not community),0.0,,,2.47,0.0,N,natural,1 Wolfe Road,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2021-09-15 14:47:04,Owner-occupied,13.0,,200003674490.0,Energy Assessor +761641549902012031515090496629358,"1, Chestnut Close",,,ME15 9ZS,959546968,B,B,83,83,House,End-Terrace,2012-03-15,E07000110,E14000700,Kent,2012-03-15,new dwelling,87,87,84,81.0,1.2,16,1.2,58.0,47.0,213.0,214.0,81.0,81.0,77.42,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,9.0,,From main system,Good,Good,Average thermal transmittance 0.11 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.19 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,,,NO DATA!,"1, Chestnut Close",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2012-03-15 15:09:04,,12.0,9.0,10014313576.0,Address Matched +844078229642012100916303601220018,"24, Biddenden Close",Bearsted,,ME15 8JP,6637922078,E,C,51,80,Bungalow,Semi-Detached,2012-10-09,E07000110,E14000700,Kent,2012-10-09,marketed sale,48,80,342,110.0,3.7,66,1.3,53.0,33.0,669.0,474.0,58.0,32.0,56.0,Unknown,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,40.0,0.0,Gas multipoint,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 40% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"24, Biddenden Close, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2012-10-09 16:30:36,unknown,5.0,2.0,200003688426.0,Address Matched +1632682609442018051809123051889838,4 Chapelfield Way,Allington,,ME16 9FS,6488908578,B,A,87,95,House,Mid-Terrace,2018-05-17,E07000110,E14000804,Kent,2018-05-18,new dwelling,88,96,61,11.0,1.6,11,0.3,83.0,83.0,231.0,232.0,100.0,54.0,145.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,"From main system, waste water heat recovery",Very Good,Very Good,Average thermal transmittance 0.17 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"4 Chapelfield Way, Allington",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2018-05-18 09:12:30,unknown,45.0,45.0,10093306489.0,Address Matched +1427780262262020022118555073898850,Chapel Farm,Milstead,,ME9 0SL,5705653478,E,C,41,80,House,Detached,2020-02-21,E07000110,E14000700,Kent,2020-02-21,rental (private),35,70,300,90.0,9.3,64,3.5,108.0,110.0,1589.0,1147.0,372.0,176.0,146.0,Unknown,N,NODATA!,,,2601.0,0.0,not defined,Normal,1.0,6.0,3.0,83.0,0.0,"Solid fuel range cooker, no cylinder thermostat",Very Poor,Very Poor,"Solid, no insulation (assumed)",NO DATA!,,Single glazed,Very Poor,Very Poor,"Cavity wall, filled cavity",Average,Average,Portable electric heaters (assumed),,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Room heaters, dual fuel (mineral and wood)",Poor,Average,No thermostatic control of room temperature,Poor,Poor,Low energy lighting in 83% of fixed outlets,Very Good,Very Good,dual fuel - mineral + wood,0.0,NO DATA!,,,,N,natural,"Chapel Farm, Milstead",Maidstone,Faversham and Mid Kent,SITTINGBOURNE,England and Wales: 1930-1949,2020-02-21 18:55:50,rental (private),,,10014308619.0,Address Matched +1417685989202016031110125642269598,"11, Bournewood Close",Downswood,,ME15 8TJ,8276482478,C,B,70,82,House,Detached,2016-03-11,E07000110,E14000700,Kent,2016-03-11,marketed sale,66,78,192,113.0,3.9,34,2.3,69.0,69.0,699.0,636.0,142.0,89.0,116.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,6.0,6.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"11, Bournewood Close, Downswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2016-03-11 10:12:56,owner-occupied,,,200003686392.0,Address Matched +1024375189962014071809453945288624,"5, Elvington Close",,,ME16 0TA,2457805178,D,C,67,80,House,Detached,2014-07-18,E07000110,E14000804,Kent,2014-07-18,assessment for green deal,62,77,174,97.0,5.2,34,3.0,76.0,76.0,1006.0,775.0,119.0,96.0,155.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,6.0,6.0,100.0,0.0,"From main system, plus solar",Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"5, Elvington Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2014-07-18 09:45:39,owner-occupied,12.0,12.0,200003659529.0,Address Matched +1776573062712020011210393925900568,"156, Westmorland Road",,,ME15 8JQ,5844258678,C,B,74,89,House,Mid-Terrace,2020-01-10,E07000110,E14000700,Kent,2020-01-12,marketed sale,73,89,179,61.0,2.2,31,0.8,87.0,61.0,310.0,324.0,152.0,79.0,70.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,57.0,0.0,From main system,Good,Good,"Solid, limited insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Timber frame, as built, insulated (assumed)",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 57% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"156, Westmorland Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1996-2002,2020-01-12 10:39:39,owner-occupied,,,200003685635.0,Address Matched +1006026953612013091115512797970919,"2, Balliol Grove",,,ME15 9WQ,9991373178,B,B,86,86,House,End-Terrace,2013-09-11,E07000110,E14000700,Kent,2013-09-11,new dwelling,89,89,61,61.0,1.2,11,1.2,57.0,57.0,252.0,242.0,57.0,67.0,102.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,"From main system, plus solar",Very Good,Very Good,Average thermal transmittance 0.20 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.15 W/m?K,Good,Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"2, Balliol Grove",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2013-09-11 15:51:27,NO DATA!,0.0,0.0,10014311655.0,Address Matched +45a5f8de3ae3faccf706d8f1541985767f3f776b41b4d2fa8fe9e375e4b724ab,12 St. Margarets Close,,,ME16 8QN,10001372716,D,B,67,87,Bungalow,Detached,2021-09-14,E07000110,E14000804,Kent,2021-09-16,marketed sale,64,86,251,78.0,2.5,44,0.8,50.0,50.0,413.0,338.0,113.0,68.0,57.0,Single,Y,,,,,70.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Partial double glazing,Poor,Poor,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.39,0.0,N,natural,12 St. Margarets Close,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2021-09-16 04:54:51,Owner-occupied,8.0,,200003676052.0,Energy Assessor +148718963512019060519383599010250,"47, Mount Avenue",Yalding,,ME18 6JF,2083390568,E,B,49,85,House,Semi-Detached,2019-06-05,E07000110,E14000804,Kent,2019-06-05,rental (private),42,84,402,90.0,5.2,71,1.2,97.0,54.0,760.0,402.0,227.0,67.0,73.0,Unknown,Y,NODATA!,,,2107.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,22.0,0.0,From main system,Average,Average,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 25 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 22% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"47, Mount Avenue, Yalding",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2019-06-05 19:38:35,rental (private),,,200003661486.0,Address Matched +299263082962020031621004292268570,"20, Bridgeside Mews",,,ME15 6TB,7928882668,C,B,76,91,House,Mid-Terrace,2020-03-16,E07000110,E14000804,Kent,2020-03-16,rental (private),77,92,159,41.0,1.7,28,0.5,102.0,55.0,294.0,299.0,77.0,50.0,62.0,Unknown,Y,NODATA!,,,2103.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,17.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,Room thermostat only,Poor,Poor,Low energy lighting in 17% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"20, Bridgeside Mews",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2020-03-16 21:00:42,rental (private),,,10014308030.0,Address Matched +1040012079732013110814164448078595,"26, Tydeman Road",Bearsted,,ME15 8LU,7588516178,D,B,56,87,House,Mid-Terrace,2013-11-06,E07000110,E14000700,Kent,2013-11-08,rental (private),55,89,283,50.0,3.3,54,0.6,57.0,42.0,593.0,378.0,154.0,66.0,62.0,dual,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,3.0,3.0,62.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,"Pitched, 25 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 62% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"26, Tydeman Road, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2013-11-08 14:16:44,rental (private),8.0,5.0,200003686176.0,Address Matched +1578796471332017092905581363278406,"57, Loose Road",,,ME15 7BY,7693424578,F,D,23,63,House,Mid-Terrace,2017-09-28,E07000110,E14000804,Kent,2017-09-29,marketed sale,11,35,821,453.0,13.0,139,7.0,78.0,78.0,1903.0,1133.0,306.0,100.0,91.0,Unknown,N,NODATA!,,,2401.0,100.0,"double glazing, unknown install date",Normal,1.0,5.0,3.0,82.0,0.0,"Electric immersion, off-peak",Very Poor,Poor,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, electric",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 82% of fixed outlets,Very Good,Very Good,electricity (not community),0.0,NO DATA!,,,,N,natural,"57, Loose Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2017-09-29 05:58:13,owner-occupied,,,200003683816.0,Address Matched +177407390062008111014325173818718,"214, Plains Avenue",,,ME15 7BH,1793993568,F,E,36,39,House,Mid-Terrace,2008-11-09,E07000110,E14000700,Kent,2008-11-10,rental (private),35,37,530,506.0,7.7,80,7.3,85.0,47.0,776.0,751.0,249.0,249.0,95.88,dual,Y,NO DATA!,,,2401.0,90.0,double glazing installed before 2002,Normal,1.0,4.0,3.0,19.0,0.0,"Electric immersion, off-peak",Very Poor,Poor,"Solid, no insulation (assumed)",,,Partial double glazing,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, 100 mm loft insulation",Average,Average,Electric storage heaters,Poor,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 19% of fixed outlets,Poor,Poor,electricity - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.43,0.0,N,natural,"214, Plains Avenue",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2008-11-10 14:32:51,rental (private),,,200003714427.0,Address Matched +1556530618612017063019474696230758,"42, Middlesex Road",,,ME15 7PL,7821862578,D,B,64,86,House,Semi-Detached,2017-06-21,E07000110,E14000700,Kent,2017-06-30,rental (private),58,84,262,88.0,3.9,46,1.3,67.0,67.0,672.0,422.0,129.0,81.0,85.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,83.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 83% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"42, Middlesex Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2017-06-30 19:47:46,rental (private),,,200003712762.0,Address Matched +1769543951212019120121063990219563,"45, Drawbridge Close",,,ME15 7EZ,5325108678,C,B,73,88,House,Mid-Terrace,2019-11-29,E07000110,E14000700,Kent,2019-12-01,rental (social),72,87,176,66.0,2.6,31,1.0,96.0,67.0,396.0,353.0,124.0,79.0,84.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,4.0,4.0,58.0,0.0,From main system,Good,Good,"Suspended, limited insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 58% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"45, Drawbridge Close",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1996-2002,2019-12-01 21:06:39,rental (social),,,10014306228.0,Address Matched +1481173602252017012008040093230842,"12, Hop Pocket Way",Headcorn,,TN27 9AF,8276237478,B,A,84,93,House,Detached,2017-01-20,E07000110,E14000700,Kent,2017-01-20,new dwelling,85,94,83,27.0,1.9,15,0.7,76.0,76.0,305.0,307.0,115.0,63.0,131.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.26 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.10 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"12, Hop Pocket Way, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,NO DATA!,2017-01-20 08:04:00,unknown,20.0,20.0,10093302560.0,Address Matched +631373349922011051913065116338029,1 Ashmead Cottages,Sheephurst Lane,Marden,TN12 9PB,2191486868,F,E,25,46,House,Semi-Detached,2011-05-17,E07000110,E14000804,Kent,2011-05-19,marketed sale,19,35,528,358.0,9.6,129,6.4,79.0,40.0,1282.0,907.0,246.0,134.0,59.33,Single,N,NODATA!,,,2111.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,3.0,0.0,1.0,"From main system, no cylinder thermostat",Very Poor,Very Poor,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, no insulation",Very Poor,Very Poor,"Boiler and radiators, oil",Average,Average,TRVs and bypass,Average,Average,No low energy lighting,Very Poor,Very Poor,oil (not community),0.0,NO DATA!,,2.2,0.0,,natural,"1 Ashmead Cottages, Sheephurst Lane, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: before 1900,2011-05-19 13:06:51,owner-occupied,7.0,0.0,200003662011.0,Address Matched +174923550022009030909204143268061,"1, Buckland Rise",,,ME16 0YN,6402513568,B,B,82,83,Flat,End-Terrace,2009-03-06,E07000110,E14000804,Kent,2009-03-09,rental (private),81,82,149,144.0,1.5,25,1.4,47.0,31.0,218.0,220.0,74.0,74.0,59.49,Single,Y,Ground,N,3.0,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,50.0,0.0,From main system,Very Good,Very Good,"Suspended, insulated (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,unheated corridor,8.1,2.39,0.0,N,natural,"1, Buckland Rise",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2009-03-09 09:20:41,rental (private),,,10014308196.0,Address Matched +1707404547132019032118595328278106,"23, Ravens Dane Close",Downswood,,ME15 8XL,4608153678,D,C,56,79,Flat,Enclosed End-Terrace,2019-03-21,E07000110,E14000700,Kent,2019-03-21,rental (private),60,65,455,403.0,2.1,77,1.8,30.0,33.0,369.0,166.0,271.0,127.0,27.0,Single,N,Ground,N,,2603.0,100.0,double glazing installed before 2002,Normal,0.0,1.0,1.0,75.0,0.0,"Electric immersion, standard tariff",Very Poor,Poor,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Room heaters, electric",Very Poor,Poor,Programmer and appliance thermostats,Good,Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,electricity (not community),0.0,no corridor,,,,N,natural,"23, Ravens Dane Close, Downswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2019-03-21 18:59:53,rental (private),,,200003691612.0,Address Matched +476571944032010042717075443268607,"44, Birch Drive",,,ME5 8YU,4703635768,C,C,75,80,House,Mid-Terrace,2010-04-27,E07000110,E14000700,Kent,2010-04-27,marketed sale,73,78,202,162.0,2.4,34,1.9,68.0,36.0,362.0,307.0,88.0,88.0,70.18,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,11.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, partial insulation (assumed)",Average,Average,,,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 11% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.31,0.0,N,natural,"44, Birch Drive",Maidstone,Faversham and Mid Kent,CHATHAM,England and Wales: 1976-1982,2010-04-27 17:07:54,owner-occupied,,,200003676644.0,Address Matched +1777556762002020011613535162809468,Brickmakers Hall,Pagehurst Road,Staplehurst,TN12 0JB,1094068678,B,A,89,99,House,Detached,2020-01-16,E07000110,E14000804,Kent,2020-01-16,new dwelling,90,99,40,-4.0,2.1,7,-0.2,142.0,142.0,792.0,792.0,427.0,266.0,308.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Poor,Average,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.23 W/m-¦K,Very Good,Very Good,"Room heaters, wood logs",,,Average thermal transmittance 0.12 W/m-¦K,Very Good,Very Good,"Air source heat pump, Underfloor heating and radiators, pipes in screed above insulation, electric",Very Good,Very Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"Brickmakers Hall, Pagehurst Road, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,NO DATA!,2020-01-16 13:53:51,unknown,25.0,25.0,10093307295.0,Address Matched +444022035352015030517294990050875,"7, The Almonds",Bearsted,,ME14 4LG,8549503768,E,C,51,80,House,Detached,2015-03-05,E07000110,E14000700,Kent,2015-03-05,none of the above,43,75,346,130.0,6.3,61,2.4,123.0,61.0,1059.0,657.0,187.0,76.0,103.0,Single,Y,NODATA!,,,2103.0,100.0,double glazing installed before 2002,Normal,1.0,6.0,6.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Room thermostat only,Poor,Poor,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"7, The Almonds, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2015-03-05 17:29:49,owner-occupied,,,200003692868.0,Address Matched +1051314969732013112706564687278298,"56, Wrangleden Road",,,ME15 9LP,6877296178,D,B,59,87,Bungalow,Semi-Detached,2013-11-26,E07000110,E14000700,Kent,2013-11-27,marketed sale,56,89,290,54.0,3.0,56,0.6,45.0,34.0,499.0,352.0,149.0,63.0,54.0,Unknown,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,67.0,1.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 67% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"56, Wrangleden Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2013-11-27 06:56:46,owner-occupied,6.0,4.0,200003710320.0,Address Matched +1377509999502015102816393836952088,3 Samuel Court,Mote Park,,ME15 8YB,8514999378,B,B,84,84,Flat,Semi-Detached,2015-10-28,E07000110,E14000700,Kent,2015-10-28,new dwelling,86,86,89,89.0,1.3,16,1.3,57.0,57.0,216.0,216.0,101.0,101.0,81.0,standard tariff,,top floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.22 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.10 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and boiler energy manager",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"3 Samuel Court, Mote Park",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2015-10-28 16:39:38,unknown,8.0,8.0,10091195091.0,Address Matched +294137070262009102116274672698671,63 Hughenden Reach,Tovil,,ME15 6ZL,7794752668,B,B,86,87,Flat,NO DATA!,2009-10-21,E07000110,E14000804,Kent,2009-10-21,new dwelling,86,87,118,111.0,1.0,19,0.9,47.0,30.0,170.0,171.0,76.0,76.0,51.7,standard tariff,,mid floor,,,2106.0,,NO DATA!,NO DATA!,,,,3.0,0.0,From main system,Very Good,Very Good,(other premises below),,,Fully double glazed,Good,Good,Average thermal transmittance 0.31 W/m?K,Good,Good,,,,Average thermal transmittance 0.00 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 43% fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"63 Hughenden Reach, Tovil",Maidstone,Maidstone and The Weald,MAIDSTONE,,2009-10-21 16:27:46,,,,10014308526.0,Address Matched +108444572642020061017535841709308,"51, Newbury Avenue",,,ME16 0RG,6608677468,C,B,69,87,Bungalow,Semi-Detached,2020-06-10,E07000110,E14000804,Kent,2020-06-10,marketed sale,68,86,222,75.0,2.4,39,0.8,100.0,50.0,400.0,360.0,87.0,58.0,61.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,3.0,3.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"51, Newbury Avenue",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2020-06-10 17:53:58,owner-occupied,,,200003659370.0,Address Matched +1351931819142015080812170737850968,"60, Willow Rise",Downswood,,ME15 8XR,5187818378,D,B,68,90,House,Enclosed End-Terrace,2015-08-06,E07000110,E14000700,Kent,2015-08-08,rental,69,91,275,52.0,1.9,48,0.4,37.0,37.0,342.0,303.0,124.0,62.0,40.0,dual,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,83.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 83% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"60, Willow Rise, Downswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1991-1995,2015-08-08 12:17:07,owner-occupied,,,200003687176.0,Address Matched +594242189962011021806181733588119,"3, Cross Street",,,ME14 2SL,1376893868,E,D,48,59,House,Mid-Terrace,2011-02-18,E07000110,E14000804,Kent,2011-02-18,marketed sale,42,51,469,372.0,5.0,79,4.0,55.0,35.0,802.0,668.0,142.0,111.0,64.03,Single,Y,NO DATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,1.0,4.0,4.0,40.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 40% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.2,0.0,N,natural,"3, Cross Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2011-02-18 06:18:17,owner-occupied,,,200003702758.0,Address Matched +596940470352013103121571792779686,12 Council Houses,Howland Road,Marden,TN12 9ER,6603024868,C,B,70,89,House,Semi-Detached,2013-10-31,E07000110,E14000804,Kent,2013-10-31,rental (social),70,89,171,44.0,2.7,33,0.8,60.0,48.0,455.0,398.0,127.0,80.0,83.0,Single,Y,NODATA!,,,2107.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,75.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"12 Council Houses, Howland Road, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1930-1949,2013-10-31 21:57:17,rental (social),8.0,6.0,200003662771.0,Address Matched +1523693049062017030114072490398033,6 Napier Court,Invicta Park,,ME14 2PJ,3999430578,C,B,70,85,House,Mid-Terrace,2017-03-01,E07000110,E14000804,Kent,2017-03-01,rental (social),70,85,197,79.0,2.5,34,1.0,60.0,60.0,430.0,406.0,146.0,80.0,73.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,80.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"6 Napier Court, Invicta Park",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2017-03-01 14:07:24,rental (social),,,200003724019.0,Address Matched +488234088652010052021403191200674,Apartment 2 Valence House,Broad Street,Sutton Valence,ME17 3AJ,6431816768,E,D,46,59,Maisonette,Semi-Detached,2010-05-20,E07000110,E14000700,Kent,2010-05-20,rental (private),39,52,389,288.0,9.0,65,9.0,77.0,77.0,1356.0,1014.0,157.0,124.0,138.46,Single,Y,Ground,N,3.0,2102.0,0.0,not defined,Normal,0.0,2.0,2.0,100.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Timber frame, as built, no insulation (assumed)",Very Poor,Very Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,unheated corridor,3.3,2.92,0.0,N,natural,"Apartment 2 Valence House, Broad Street, Sutton Valence",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2010-05-20 21:40:31,rental (private),,,200003697142.0,Address Matched +292884550342009052813320862212888,Apartment 6 Briar House,Bluett Street,,ME14 2US,379052668,B,B,84,86,Flat,Semi-Detached,2009-05-28,E07000110,E14000804,Kent,2009-05-28,rental (social),84,85,142,135.0,1.1,23,1.0,38.0,24.0,172.0,173.0,69.0,69.0,45.69,Single,Y,2nd,N,3.0,2107.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,40.0,0.0,From main system,Very Good,Very Good,(other premises below),,,Fully double glazed,Good,Good,"Cavity wall, with internal insulation",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, TRVs and bypass",Poor,Poor,Low energy lighting in 40% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,unheated corridor,4.82,2.53,0.0,N,natural,"Apartment 6 Briar House, Bluett Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2009-05-28 13:32:08,rental (social),,,10022896716.0,Address Matched +1153283819842014061510035025440368,"28, Reeves Close",Staplehurst,,TN12 0NN,1836614278,D,C,59,80,House,Semi-Detached,2014-06-06,E07000110,E14000804,Kent,2014-06-15,assessment for green deal,56,79,257,106.0,3.7,49,1.6,70.0,51.0,686.0,521.0,112.0,75.0,75.0,dual,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,62.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 62% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"28, Reeves Close, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1976-1982,2014-06-15 10:03:50,owner-occupied,13.0,8.0,200003678283.0,Address Matched +829921939902016040521574902160248,"8, Kingsley Road",,,ME15 7UN,994031078,D,B,64,85,House,Mid-Terrace,2016-04-04,E07000110,E14000804,Kent,2016-04-05,marketed sale,65,86,271,91.0,2.6,44,0.8,49.0,49.0,549.0,413.0,97.0,62.0,59.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,80.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,2.3,,N,natural,"8, Kingsley Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2016-04-05 21:57:49,owner-occupied,,,200003695886.0,Address Matched +198153839802019072922052154512718,"4, Roman Way",Boughton Monchelsea,,ME17 4SG,8892835568,C,B,79,88,House,Semi-Detached,2019-07-29,E07000110,E14000700,Kent,2019-07-29,marketed sale,77,86,123,65.0,2.9,22,1.5,114.0,89.0,445.0,451.0,115.0,67.0,132.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,5.0,5.0,72.0,0.0,From main system,Good,Good,"Suspended, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 72% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"4, Roman Way, Boughton Monchelsea",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2007 onwards,2019-07-29 22:05:21,owner-occupied,,,10022896530.0,Address Matched +338871809022013100809424465838687,"15, Alkham Road",,,ME14 5PA,8691075668,D,D,58,63,Flat,End-Terrace,2013-10-07,E07000110,E14000804,Kent,2013-10-08,assessment for green deal,56,62,281,241.0,3.2,54,2.7,58.0,40.0,564.0,493.0,109.0,109.0,59.0,dual,Y,1st,Y,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,57.0,0.0,From main system,Very Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 57% of fixed outlets,Good,Good,mains gas (not community),0.0,no corridor,,,0.0,,natural,"15, Alkham Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2013-10-08 09:42:44,rental (private),7.0,4.0,200003716211.0,Address Matched +383989627232012032907065144268603,"27, Brenchley Road",,,ME15 6UH,2324688668,C,C,70,73,House,Mid-Terrace,2012-03-29,E07000110,E14000804,Kent,2012-03-29,rental (social),70,74,180,159.0,2.9,34,2.5,65.0,45.0,457.0,415.0,104.0,104.0,82.84,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,More Than Typical,0.0,4.0,4.0,55.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 55% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,2.43,0.0,,natural,"27, Brenchley Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2012-03-29 07:06:51,rental (social),11.0,6.0,200003665065.0,Address Matched +1460026559062016070616431415568536,"3, Oakapple Lane",Barming,,ME16 9NW,3105585478,B,B,83,83,Flat,NO DATA!,2016-07-06,E07000110,E14000804,Kent,2016-07-06,new dwelling,91,91,58,58.0,0.6,10,0.6,46.0,46.0,182.0,182.0,81.0,81.0,62.0,standard tariff,,ground floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.12 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.19 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"3, Oakapple Lane, Barming",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2016-07-06 16:43:14,unknown,15.0,15.0,10091195858.0,Address Matched +1082058219142014050715382714940538,"44, Ernest Drive",,,ME16 0QS,2179419178,E,C,53,79,Bungalow,Detached,2014-05-07,E07000110,E14000804,Kent,2014-05-07,marketed sale,48,77,287,108.0,5.1,55,2.0,99.0,54.0,906.0,579.0,145.0,86.0,93.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,18.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 18% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"44, Ernest Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2014-05-07 15:38:27,owner-occupied,11.0,2.0,200003704608.0,Address Matched +1481740311632016092212460135278809,Flat 7 The Beeches,St. Andrews Road,,ME16 9AN,1955837478,C,C,75,75,Flat,Detached,2016-09-22,E07000110,E14000804,Kent,2016-09-22,new dwelling,77,77,175,175.0,1.4,31,1.4,33.0,33.0,285.0,285.0,68.0,68.0,46.0,standard tariff,,top floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,(other premises below),,,Single glazed,Very Poor,Very Poor,Average thermal transmittance 0.34 W/m-¦K,Good,Good,,,,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Flat 7 The Beeches, St. Andrews Road",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2016-09-22 12:46:01,owner-occupied,5.0,5.0,10091196249.0,Address Matched +1665631779222018092416040050448928,"13, Heath Field",Langley,,ME17 3JL,2587740678,E,E,41,54,Bungalow,Semi-Detached,2018-09-24,E07000110,E14000700,Kent,2018-09-24,ECO assessment,35,43,307,222.0,6.7,81,5.4,57.0,57.0,712.0,714.0,109.0,71.0,83.0,Unknown,N,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,100.0,0.0,From main system,Average,Average,"To external air, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, oil",Average,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,oil (not community),0.0,NO DATA!,,,,N,natural,"13, Heath Field, Langley",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2018-09-24 16:04:00,owner-occupied,,,200003697660.0,Address Matched +1196336519262014082719382347638954,Diamond Place Farm,Maidstone Road,Nettlestead,ME18 5HB,5483127278,D,B,58,83,House,Detached,2014-08-27,E07000110,E14000804,Kent,2014-08-27,marketed sale,51,80,219,83.0,8.6,42,3.4,159.0,90.0,1612.0,859.0,146.0,147.0,204.0,Single,Y,NODATA!,,,2106.0,30.0,double glazing installed before 2002,Normal,2.0,7.0,7.0,20.0,2.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Some double glazing,Poor,Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 20% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"Diamond Place Farm, Maidstone Road, Nettlestead",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2014-08-27 19:38:23,owner-occupied,10.0,2.0,200003724807.0,Address Matched +465305213052019120519361495019777,Boyton Court,Boyton Court Road,Sutton Valence,ME17 3BY,7715354768,E,B,46,81,House,Detached,2019-12-05,E07000110,E14000700,Kent,2019-12-05,RHI application,46,79,207,65.0,17.0,45,5.8,196.0,201.0,2810.0,1470.0,178.0,86.0,370.0,dual,N,NODATA!,,,2110.0,3.0,double glazing installed before 2002,Normal,2.0,12.0,12.0,81.0,3.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Some double glazing,Very Poor,Very Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, oil",Average,Average,Time and temperature zone control,Very Good,Very Good,Low energy lighting in 81% of fixed outlets,Very Good,Very Good,oil (not community),0.0,NO DATA!,,,,N,natural,"Boyton Court, Boyton Court Road, Sutton Valence",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2019-12-05 19:36:14,owner-occupied,,,200003698281.0,Address Matched +1613973379062018030917341256368068,3 Ladds Court Cottages,Chart Hill Road,Chart Sutton,ME17 3EZ,6511776578,G,C,10,71,House,End-Terrace,2018-02-06,E07000110,E14000700,Kent,2018-03-09,rental (private),21,70,644,154.0,9.1,115,2.3,55.0,55.0,2197.0,1257.0,342.0,166.0,79.0,Single,N,NODATA!,,,2601.0,100.0,double glazing installed during or after 2002,Normal,1.0,4.0,1.0,100.0,1.0,"Electric immersion, standard tariff",Very Poor,Poor,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,Portable electric heaters assumed for most rooms,Very Poor,Poor,No thermostatic control of room temperature,Poor,Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,dual fuel - mineral + wood,0.0,NO DATA!,,,,N,natural,"3 Ladds Court Cottages, Chart Hill Road, Chart Sutton",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2018-03-09 17:34:12,rental (private),,,200003690265.0,Address Matched +1421681462712016030816040791060942,"2, Bridger Way",,,ME17 3FE,9282213478,B,A,84,109,House,Semi-Detached,2016-03-08,E07000110,E14000700,Kent,2016-03-08,new dwelling,84,108,86,-61.0,1.8,15,-1.2,70.0,70.0,336.0,336.0,93.0,56.0,123.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"2, Bridger Way",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2016-03-08 16:04:07,unknown,1.0,1.0,10091194038.0,Address Matched +1667748440832018101518022343978190,Flat 183,Brenchley House,123-135 Week Street,ME14 1FZ,4023160678,C,C,74,74,Flat,Mid-Terrace,2018-10-15,E07000110,E14000804,Kent,2018-10-15,new dwelling,81,81,249,249.0,0.8,44,0.8,19.0,19.0,150.0,150.0,91.0,91.0,19.0,standard tariff,,top floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,Community scheme,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.30 W/m-¦K,Good,Good,,,,Average thermal transmittance 0.18 W/m-¦K,Good,Good,Community scheme,Good,Good,"Charging system linked to use of community heating, programmer and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,NO DATA!,,NO DATA!,,,,,NO DATA!,"Flat 183, Brenchley House, 123-135 Week Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2018-10-15 18:02:23,unknown,6.0,6.0,10094440859.0,Address Matched +1373452779842015101212244139959928,"165, Merton Road",Bearsted,,ME15 8LS,3811179378,D,B,64,84,House,Semi-Detached,2015-10-12,E07000110,E14000700,Kent,2015-10-12,ECO assessment,58,82,261,99.0,4.0,46,1.6,55.0,55.0,695.0,490.0,160.0,83.0,86.0,Single,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 12 mm loft insulation",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"165, Merton Road, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2015-10-12 12:24:41,owner-occupied,,,200003686135.0,Address Matched +966390861632016092108234874278003,"1, Scott Street",,,ME14 2TA,6364090178,D,C,57,80,House,End-Terrace,2016-09-20,E07000110,E14000804,Kent,2016-09-21,marketed sale,58,82,272,110.0,4.6,41,1.8,79.0,79.0,997.0,626.0,168.0,88.0,112.0,Single,Y,NODATA!,,,2112.0,100.0,double glazing installed during or after 2002,Normal,0.0,6.0,6.0,83.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in 83% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,1.98,,N,natural,"1, Scott Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2016-09-21 08:23:48,owner-occupied,,,200003669755.0,Address Matched +1556277359262017062917014172218683,Home Farm,Couchman Green Lane,Staplehurst,TN12 0RU,8774562578,G,D,17,62,House,Detached,2017-06-29,E07000110,E14000804,Kent,2017-06-29,RHI application,1,21,482,193.0,34.0,169,17.0,185.0,95.0,3542.0,2072.0,361.0,185.0,198.0,Single,N,NODATA!,,,2101.0,0.0,not defined,Normal,2.0,5.0,5.0,0.0,1.0,"Electric immersion, standard tariff",Very Poor,Poor,"Solid, no insulation (assumed)",NO DATA!,,Single glazed,Very Poor,Very Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, coal",Average,Very Poor,No time or thermostatic control of room temperature,Very Poor,Very Poor,No low energy lighting,Very Poor,Very Poor,house coal (not community),0.0,NO DATA!,,,,N,natural,"Home Farm, Couchman Green Lane, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: before 1900,2017-06-29 17:01:41,owner-occupied,,,200003690213.0,Address Matched +466a966b6c6938d60a4649c12c26f80cf3c515ecd619e4752123f7291f9f8693,21 Farrier Close,Weavering,,ME14 5SR,10001454694,C,A,73,92,House,Mid-Terrace,2021-08-09,E07000110,E14000700,Kent,2021-08-09,marketed sale,74,94,202,18.0,1.6,36,0.2,40.0,40.0,309.0,253.0,76.0,52.0,45.0,Unknown,Y,,,,,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.31,0.0,N,natural,"21 Farrier Close, Weavering",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2021-08-09 20:37:39,Owner-occupied,7.0,,200003689093.0,Energy Assessor +1335646695612015062506365690250333,"4, Mote Road",,,ME15 6EP,3305507378,D,B,66,84,House,Mid-Terrace,2015-06-25,E07000110,E14000804,Kent,2015-06-25,rental (private),61,82,235,99.0,3.9,41,1.7,58.0,58.0,757.0,553.0,74.0,43.0,94.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,100.0,0.0,From main system,Very Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"4, Mote Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2015-06-25 06:36:56,rental (private),,,200003725195.0,Address Matched +48040794412008121714264706989953,Flat 45,Broadway Heights,23 The Broadway,ME16 8GJ,9386465568,C,B,80,81,Flat,Detached,2008-12-17,E07000110,E14000804,Kent,2008-12-17,new dwelling,80,81,183,178.0,1.3,0,1.3,33.0,22.0,207.0,208.0,57.0,57.0,0.0,standard tariff,,top floor,,,,,NO DATA!,NO DATA!,,,,3.0,,SAP05:Hot-Water,,,SAP05:Floor,,,SAP05:Windows,,,SAP05:Walls,,,SAP05:Secondary-Heating,,,SAP05:Roof,,,SAP05:Main-Heating,,,SAP05:Main-Heating-Controls,,,SAP05:Lighting,,,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,,,,NO DATA!,"Flat 45, Broadway Heights, 23 The Broadway",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2008-12-17 14:26:47,,6.0,3.0,10022896869.0,Address Matched +63843329702010032814333448402738,"6, Oak Farm Gardens",Headcorn,,TN27 9TZ,7759824468,D,C,65,77,House,Semi-Detached,2010-03-27,E07000110,E14000700,Kent,2010-03-28,rental (private),60,74,289,193.0,3.4,48,2.3,81.0,41.0,471.0,355.0,147.0,105.0,70.92,dual,Y,NO DATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,0.0,0.0,From main system,Average,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Average,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.3,0.0,N,natural,"6, Oak Farm Gardens, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,England and Wales: 1967-1975,2010-03-28 14:33:34,rental (private),,,200003699787.0,Address Matched +1116099554812014032811241995240223,"6, Ravens Dane Close",Downswood,,ME15 8XL,2326451278,D,B,66,83,House,Semi-Detached,2014-03-28,E07000110,E14000700,Kent,2014-03-28,marketed sale,67,84,194,77.0,2.9,37,1.2,68.0,48.0,532.0,449.0,129.0,86.0,78.0,Single,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,2.0,5.0,5.0,58.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,"Pitched, 100mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 58% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"6, Ravens Dane Close, Downswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2014-03-28 11:24:19,owner-occupied,12.0,7.0,200003691595.0,Address Matched +791154759902012052019094994829688,"22, Chipstead Close",,,ME16 0DH,9908558968,D,B,62,85,House,Semi-Detached,2012-05-18,E07000110,E14000804,Kent,2012-05-20,marketed sale,60,85,241,75.0,3.2,46,1.0,66.0,42.0,539.0,400.0,77.0,56.0,68.0,dual,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,42.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 42% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"22, Chipstead Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2012-05-20 19:09:49,owner-occupied,12.0,5.0,200003658692.0,Address Matched +1103533669842014030820500620040188,"18, Halstow Close",,,ME15 9XA,3855660278,D,B,66,86,Bungalow,Detached,2014-03-08,E07000110,E14000804,Kent,2014-03-08,marketed sale,64,86,198,64.0,3.2,38,1.1,60.0,60.0,549.0,406.0,146.0,79.0,83.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,5.0,5.0,80.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"18, Halstow Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2014-03-08 20:50:06,owner-occupied,15.0,12.0,200003675570.0,Address Matched +197693278952020082019580325200656,"77, Kingfisher Meadow",,,ME16 8RB,6612855568,B,B,83,85,Flat,Mid-Terrace,2020-08-20,E07000110,E14000804,Kent,2020-08-20,rental (private),80,80,177,177.0,1.2,30,1.2,37.0,37.0,77.0,60.0,184.0,184.0,42.0,Unknown,N,2nd,N,,2603.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,100.0,0.0,"Electric immersion, off-peak",Poor,Poor,(another dwelling below),NO DATA!,,Fully double glazed,Good,Good,"System built, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Room heaters, electric",Very Poor,Poor,Programmer and appliance thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,heated corridor,0.0,,,N,natural,"77, Kingfisher Meadow",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2020-08-20 19:58:03,rental (private),,,10022892288.0,Address Matched +870420504312015092212125491250802,"27, Hampton Road",,,ME14 5QT,8215414078,D,B,66,87,House,Semi-Detached,2015-09-22,E07000110,E14000804,Kent,2015-09-22,marketed sale,63,86,242,73.0,3.0,43,0.9,47.0,47.0,568.0,395.0,99.0,65.0,70.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"27, Hampton Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2015-09-22 12:12:54,owner-occupied,,,200003671815.0,Address Matched +46a5722392fd975087a76b3c134f71daacb28ce215f6a1aee50eb6cb55098218,"2, CORNFIELD WAY",ALLINGTON,,ME16 9GE,10001404599,B,B,87,88,House,Detached,2021-07-20,E07000110,E14000804,Kent,2021-07-20,new dwelling,86,87,69,60.0,2.2,12,2.0,107.0,107.0,390.0,391.0,96.0,54.0,184.0,standard tariff,,,N,,,100.0,,,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.19 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.15 W/m-¦K,Good,Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.61,,,,"2, CORNFIELD WAY, ALLINGTON",Maidstone,Maidstone and The Weald,MAIDSTONE,2018,2021-07-20 14:47:38,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,51.0,,10094440319.0,Address Matched +1685473299602018121221043165180038,Flat 38 Coronet House,"11, Queen Anne Road",,ME14 1GD,4666091678,D,C,67,78,Flat,Mid-Terrace,2018-12-07,E07000110,E14000804,Kent,2018-12-12,rental (private),70,76,396,322.0,1.3,67,1.1,20.0,22.0,273.0,110.0,137.0,151.0,20.0,Unknown,N,2nd,Y,,2602.0,100.0,"double glazing, unknown install date",Normal,0.0,1.0,1.0,100.0,0.0,Electric instantaneous at point of use,Very Poor,Poor,(another dwelling below),NO DATA!,,Fully double glazed,Average,Average,"Timber frame, with additional insulation",Good,Good,,,,"Flat, limited insulation (assumed)",Poor,Poor,"Room heaters, electric",Very Poor,Poor,Appliance thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,unheated corridor,4.75,,,N,natural,"Flat 38 Coronet House, 11, Queen Anne Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1976-1982,2018-12-12 21:04:31,rental (private),,,10094441215.0,Address Matched +1420683859022016030511381403658986,"8, Carmans Close",Loose,,ME15 0DR,8077503478,C,B,69,83,House,Detached,2016-03-05,E07000110,E14000804,Kent,2016-03-05,marketed sale,64,80,199,101.0,4.3,35,2.2,75.0,75.0,732.0,618.0,184.0,80.0,123.0,Unknown,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,6.0,6.0,100.0,0.0,From main system,Good,Good,"Suspended, limited insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, mains gas",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"8, Carmans Close, Loose",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2016-03-05 11:38:14,owner-occupied,,,200003663095.0,Address Matched +365680979222016092609291567668686,"2, Calehill Close",,,ME14 5QQ,8697757668,C,B,79,88,House,Detached,2016-09-26,E07000110,E14000804,Kent,2016-09-26,marketed sale,74,86,146,68.0,2.0,26,1.0,52.0,52.0,536.0,417.0,165.0,74.0,77.0,Single,Y,NODATA!,,,2107.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 270 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,2.4,,N,natural,"2, Calehill Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2016-09-26 09:29:15,owner-occupied,,,200003671757.0,Address Matched +932886435732013052315405557278804,"5, Bournewood Close",Downswood,,ME15 8TJ,3467858078,C,B,72,88,House,Semi-Detached,2013-05-23,E07000110,E14000700,Kent,2013-05-23,none of the above,73,89,160,47.0,2.2,31,0.7,56.0,42.0,352.0,330.0,127.0,70.0,73.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,67.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 67% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"5, Bournewood Close, Downswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1976-1982,2013-05-23 15:40:55,owner-occupied,9.0,6.0,200003686423.0,Address Matched +1641521279002018061907415452889088,"6, Millbrook Close",,,ME15 6FZ,3078178578,D,B,68,82,House,Detached,2018-06-18,E07000110,E14000804,Kent,2018-06-19,marketed sale,63,78,215,116.0,4.2,38,2.3,100.0,71.0,677.0,585.0,138.0,83.0,110.0,Single,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,1.0,6.0,6.0,58.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, limited insulation (assumed)",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 58% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"6, Millbrook Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1976-1982,2018-06-19 07:41:54,owner-occupied,,,200003666006.0,Address Matched +293764720222009052817372552788551,1 Lime Terrace,High Street,Staplehurst,TN12 0AP,5589252668,E,D,41,56,House,End-Terrace,2009-05-28,E07000110,E14000804,Kent,2009-05-28,marketed sale,40,55,512,367.0,5.6,79,3.9,66.0,33.0,812.0,624.0,133.0,96.0,70.1,Unknown,Y,NO DATA!,,,2104.0,40.0,double glazing installed before 2002,Normal,1.0,4.0,3.0,0.0,0.0,From main system,Average,Good,"Suspended, no insulation (assumed)",,,Partial double glazing,Poor,Poor,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, wood logs",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Average,Good,Programmer and room thermostat,Poor,Poor,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.0,0.0,N,natural,"1 Lime Terrace, High Street, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: before 1900,2009-05-28 17:37:25,owner-occupied,,,200003730977.0,Address Matched +744915940512018060417221492080995,Brunger Farm,Crumps Lane,Ulcombe,ME17 1EU,9512025968,E,B,51,91,House,Detached,2018-06-04,E07000110,E14000700,Kent,2018-06-04,RHI application,54,91,243,34.0,6.7,43,1.0,101.0,101.0,1570.0,843.0,283.0,192.0,157.0,Single,N,NODATA!,,,2207.0,100.0,double glazing installed during or after 2002,Normal,1.0,6.0,6.0,83.0,1.0,From main system,Poor,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, dual fuel (mineral and wood)",,,"Roof room(s), ceiling insulated",Poor,Poor,"Ground source heat pump, radiators, electric",Poor,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in 83% of fixed outlets,Very Good,Very Good,electricity (not community),0.0,NO DATA!,,,,N,natural,"Brunger Farm, Crumps Lane, Ulcombe",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2018-06-04 17:22:14,owner-occupied,,,200003701073.0,Address Matched +1339519639702015070320221737750778,"17, Quested Way",Harrietsham,,ME17 1JG,2775237378,D,B,60,86,House,Semi-Detached,2015-07-03,E07000110,E14000700,Kent,2015-07-03,marketed sale,53,84,294,85.0,4.4,52,1.3,103.0,55.0,791.0,458.0,120.0,71.0,85.0,Single,Y,NODATA!,,,2107.0,100.0,double glazing installed before 2002,Normal,1.0,4.0,4.0,11.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 11% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"17, Quested Way, Harrietsham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2015-07-03 20:22:17,owner-occupied,,,200003702599.0,Address Matched +1074778780812014012013141496240912,"6, Beaverbrook Mews",,,ME16 8BF,9211068178,C,B,76,89,House,End-Terrace,2014-01-20,E07000110,E14000804,Kent,2014-01-20,marketed sale,78,90,126,41.0,2.0,24,0.7,91.0,53.0,341.0,347.0,97.0,67.0,82.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,29.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 29% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"6, Beaverbrook Mews",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2014-01-20 13:14:14,owner-occupied,17.0,5.0,10014307258.0,Address Matched +871673729602013011412504405479128,"49, Wrangleden Road",,,ME15 9LH,2633524078,C,B,70,90,Bungalow,Semi-Detached,2013-01-12,E07000110,E14000700,Kent,2013-01-14,rental (private),71,92,197,32.0,2.0,38,0.4,41.0,32.0,367.0,308.0,76.0,54.0,52.0,Unknown,Y,NODATA!,,,2106.0,60.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,71.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Partial double glazing,Poor,Poor,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 71% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"49, Wrangleden Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2013-01-14 12:50:44,rental (private),14.0,10.0,200003682482.0,Address Matched +1617784609102018032619300153782578,"29, Park Way",Coxheath,,ME17 4HH,1168507578,D,B,58,83,House,Semi-Detached,2018-03-23,E07000110,E14000804,Kent,2018-03-26,marketed sale,54,83,296,98.0,4.2,52,1.4,86.0,56.0,731.0,484.0,152.0,70.0,80.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,46.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 46% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"29, Park Way, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2018-03-26 19:30:01,owner-occupied,,,200003715257.0,Address Matched +666866360132019102311295074268299,Stone Cottage,Well Street,Loose,ME15 0EL,6914239868,D,B,58,84,House,Mid-Terrace,2019-10-23,E07000110,E14000804,Kent,2019-10-23,rental (private),61,87,289,90.0,3.5,43,1.0,62.0,62.0,800.0,468.0,84.0,55.0,82.0,Single,Y,NODATA!,,,2106.0,65.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,100.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Partial double glazing,Poor,Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, insulated at rafters",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"Stone Cottage, Well Street, Loose",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2019-10-23 11:29:50,rental (private),,,200003663502.0,Address Matched +159743615312020022318023125900554,"17, Arundel Street",,,ME14 2RS,5447552568,C,B,70,89,House,Mid-Terrace,2020-02-19,E07000110,E14000804,Kent,2020-02-23,rental (private),69,90,219,51.0,2.1,39,0.5,68.0,46.0,369.0,298.0,92.0,67.0,55.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,4.0,4.0,54.0,0.0,From main system,Very Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 54% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"17, Arundel Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2020-02-23 18:02:31,rental (private),,,200003669586.0,Address Matched +1464939899022016080712322356258916,"45, St. Lukes Avenue",,,ME14 5AN,1574916478,D,B,61,81,House,Detached,2016-08-05,E07000110,E14000804,Kent,2016-08-07,ECO assessment,52,76,240,112.0,7.7,42,3.6,168.0,89.0,1381.0,830.0,124.0,124.0,181.0,Single,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,7.0,7.0,12.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 270 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 12% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,2.49,,N,natural,"45, St. Lukes Avenue",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2016-08-07 12:32:23,owner-occupied,,,200003705819.0,Address Matched +881398442612013020813023399070905,84b Bank Street,,,ME14 1SD,9503294078,D,C,55,74,Maisonette,End-Terrace,2013-02-08,E07000110,E14000804,Kent,2013-02-08,marketed sale,54,77,278,143.0,3.8,53,1.9,86.0,44.0,682.0,389.0,92.0,84.0,72.0,Unknown,Y,Ground,N,,2107.0,0.0,single glazing,Normal,0.0,3.0,3.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,no corridor,,,0.0,,"mechanical, supply and extract",84b Bank Street,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2013-02-08 13:02:33,unknown,7.0,0.0,10022901995.0,Address Matched +614694629222016082608532525668836,"11, Kent Avenue",,,ME15 7HG,3285265868,D,B,59,83,House,Semi-Detached,2016-08-26,E07000110,E14000700,Kent,2016-08-26,ECO assessment,54,82,287,98.0,4.4,51,1.5,58.0,58.0,683.0,526.0,295.0,76.0,88.0,Unknown,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,100.0,0.0,"From main system, no cylinder thermostat",Poor,Poor,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,2.4,,N,natural,"11, Kent Avenue",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2016-08-26 08:53:25,owner-occupied,,,200003715592.0,Address Matched +991032469842014031117301417249998,"12, Grove Road",,,ME15 9AR,9835462178,D,B,55,83,House,Semi-Detached,2014-03-11,E07000110,E14000700,Kent,2014-03-11,assessment for green deal,50,83,266,81.0,5.0,51,1.6,75.0,56.0,922.0,511.0,122.0,71.0,98.0,Single,Y,NODATA!,,,2105.0,100.0,double glazing installed before 2002,Normal,1.0,5.0,3.0,67.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, mains gas",,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and at least two room thermostats,Good,Good,Low energy lighting in 67% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"12, Grove Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1900-1929,2014-03-11 17:30:14,owner-occupied,12.0,8.0,200003713497.0,Address Matched +620474809602016060719404988660938,Lower Gallants,Lower Road,East Farleigh,ME15 0JS,624806868,C,C,73,79,Bungalow,Detached,2016-06-07,E07000110,E14000804,Kent,2016-06-07,marketed sale,68,74,103,76.0,8.1,26,6.4,149.0,149.0,1150.0,1104.0,166.0,96.0,308.0,Single,N,NODATA!,,,2105.0,100.0,double glazing installed during or after 2002,Normal,0.0,8.0,8.0,76.0,0.0,From main system,Average,Average,"Suspended, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, insulated (assumed)",Good,Good,"Boiler and underfloor heating, oil",Average,Average,Programmer and at least two room thermostats,Good,Good,Low energy lighting in 76% of fixed outlets,Very Good,Very Good,oil (not community),0.0,NO DATA!,,2.34,,N,natural,"Lower Gallants, Lower Road, East Farleigh",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2016-06-07 19:40:49,owner-occupied,,,10014308138.0,Address Matched +1821302872442020082916185878102438,"50, Cross Keys",Bearsted,,ME14 4HS,411971778,C,B,69,84,House,Semi-Detached,2020-08-27,E07000110,E14000700,Kent,2020-08-29,marketed sale,65,81,204,98.0,3.4,36,1.7,100.0,73.0,581.0,499.0,89.0,59.0,94.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,5.0,5.0,64.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 64% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"50, Cross Keys, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2020-08-29 16:18:58,owner-occupied,,,200003694919.0,Address Matched +864023279302012120714410309320038,Cathros Lithos,Yelsted Road,Yelsted,ME9 7UU,1375073078,E,B,49,82,Bungalow,Detached,2012-12-07,E07000110,E14000700,Kent,2012-12-07,marketed sale,38,73,267,87.0,7.6,65,2.8,58.0,58.0,1076.0,629.0,292.0,100.0,116.0,Single,N,NODATA!,,,2107.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,100.0,1.0,"From main system, no cylinder thermostat",Poor,Very Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, oil",Average,Average,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,oil (not community),0.0,NO DATA!,,,0.0,,natural,"Cathros Lithos, Yelsted Road, Yelsted",Maidstone,Faversham and Mid Kent,SITTINGBOURNE,England and Wales: 1983-1990,2012-12-07 14:41:03,owner-occupied,11.0,11.0,200003732631.0,Address Matched +1681929542262020072409190251448150,8 Kintons Walk,Yalding,,ME18 6FF,5553461678,B,A,84,96,House,End-Terrace,2020-07-24,E07000110,E14000804,Kent,2020-07-24,new dwelling,87,98,84,-1.0,1.2,15,0.0,69.0,69.0,209.0,209.0,77.0,47.0,81.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.22 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"8 Kintons Walk, Yalding",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2020-07-24 09:19:02,unknown,10.0,10.0,10094439993.0,Address Matched +256649377132009033118134871768006,"350, Upper Fant Road",,,ME16 8DD,7641099568,C,C,73,75,House,Mid-Terrace,2009-03-30,E07000110,E14000804,Kent,2009-03-31,rental (social),70,71,216,209.0,2.7,36,2.6,60.0,35.0,361.0,365.0,98.0,98.0,74.25,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,4.0,4.0,30.0,0.0,From main system,Very Good,Very Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 30% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.44,0.0,N,natural,"350, Upper Fant Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2009-03-31 18:13:48,rental (social),,,200003656263.0,Address Matched +1553180449342018013015035357287108,"4, Bobbin Close",Headcorn,,TN27 9AW,3371442578,B,A,85,92,House,Detached,2018-01-30,E07000110,E14000700,Kent,2018-01-30,new dwelling,84,91,77,37.0,2.5,14,1.2,95.0,95.0,401.0,402.0,104.0,56.0,184.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.16 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.20 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"4, Bobbin Close, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,NO DATA!,2018-01-30 15:03:53,unknown,20.0,20.0,10093304375.0,Address Matched +519997549502010073020180877807308,1b Vineholme,Forstall Road,,ME20 7AE,539348768,D,D,55,60,Flat,Semi-Detached,2010-07-30,E07000110,E14000700,Kent,2010-07-30,rental (social),48,53,419,369.0,4.2,70,3.7,32.0,32.0,684.0,614.0,95.0,83.0,59.29,Single,Y,Ground,N,2.0,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,100.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.58,0.0,N,natural,"1b Vineholme, Forstall Road",Maidstone,Faversham and Mid Kent,AYLESFORD,England and Wales: before 1900,2010-07-30 20:18:08,rental (social),,,10014311275.0,Address Matched +1505327312632016122117324616978698,Hayfield,New Road,Headcorn,TN27 9SE,1876609478,F,B,38,81,Bungalow,Semi-Detached,2016-12-13,E07000110,E14000700,Kent,2016-12-21,ECO assessment,22,60,663,242.0,8.2,112,3.0,69.0,69.0,1156.0,508.0,196.0,91.0,73.0,dual,N,NODATA!,,,2401.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,75.0,0.0,"Electric immersion, off-peak",Poor,Poor,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,Portable electric heaters (assumed),,,"Pitched, 25 mm loft insulation",Poor,Poor,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,electricity (not community),0.0,NO DATA!,,,,N,natural,"Hayfield, New Road, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,England and Wales: 1950-1966,2016-12-21 17:32:46,owner-occupied,,,200003699739.0,Address Matched +639141819022011060817400527338209,"1a, Chestnut Close",Ulcombe,,ME17 1EA,272147868,D,D,63,68,House,Semi-Detached,2011-06-07,E07000110,E14000700,Kent,2011-06-08,marketed sale,43,46,385,355.0,5.9,68,5.4,79.0,47.0,567.0,493.0,130.0,130.0,86.07,Unknown,N,NODATA!,,,2401.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,33.0,0.0,"Electric immersion, off-peak",Average,Very Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, with internal insulation",Good,Good,Portable electric heaters (assumed),,,"Pitched, insulated (assumed)",Average,Average,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 33% of fixed outlets,Average,Average,electricity (not community),0.0,NO DATA!,,2.32,0.0,,natural,"1a, Chestnut Close, Ulcombe",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2011-06-08 17:40:05,owner-occupied,9.0,3.0,200003701134.0,Address Matched +783809449022012050216421938228362,"25, Olivine Close",,,ME5 9NQ,6382408968,D,C,56,80,House,Detached,2012-05-02,E07000110,E14000700,Kent,2012-05-02,marketed sale,54,79,257,102.0,4.1,49,1.7,67.0,46.0,659.0,483.0,154.0,68.0,85.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,6.0,5.0,54.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,Portable electric heaters (assumed),,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 54% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"25, Olivine Close",Maidstone,Faversham and Mid Kent,CHATHAM,England and Wales: 1983-1990,2012-05-02 16:42:19,owner-occupied,13.0,7.0,200003708116.0,Address Matched +1298625617532015032308472950278207,"4, Greensands Road",Bearsted,,ME15 8NY,1740244378,F,C,31,73,House,Semi-Detached,2015-03-21,E07000110,E14000700,Kent,2015-03-23,marketed sale,29,71,552,175.0,7.6,93,2.5,75.0,58.0,1359.0,712.0,488.0,73.0,82.0,dual,Y,NODATA!,,,2601.0,100.0,"double glazing, unknown install date",Normal,1.0,4.0,2.0,60.0,0.0,"Electric immersion, off-peak",Poor,Poor,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, electric",Very Poor,Poor,No thermostatic control of room temperature,Poor,Poor,Low energy lighting in 60% of fixed outlets,Good,Good,electricity (not community),0.0,NO DATA!,,,,N,natural,"4, Greensands Road, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2015-03-23 08:47:29,owner-occupied,,,200003723193.0,Address Matched +123004249402017081414193240939748,"158, Bower Street",,,ME16 8BE,9432049468,D,B,60,81,House,Mid-Terrace,2017-08-14,E07000110,E14000804,Kent,2017-08-14,rental (private),51,76,253,112.0,6.0,45,2.7,117.0,85.0,1067.0,644.0,110.0,111.0,135.0,dual,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,6.0,6.0,63.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 63% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"158, Bower Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2017-08-14 14:19:32,rental (private),,,200003667303.0,Address Matched +180456640262009013010443763788961,2 Coast Cottages,Sandway Road,Sandway,ME17 2NA,6627453568,G,F,18,24,House,Semi-Detached,2009-01-28,E07000110,E14000700,Kent,2009-01-30,rental (private),67,70,600,538.0,2.8,41,2.5,59.0,33.0,914.0,812.0,293.0,293.0,68.71,Single,N,NO DATA!,,,2101.0,0.0,INVALID!,Normal,1.0,3.0,3.0,18.0,0.0,"Electric immersion, standard tariff",Very Poor,Poor,"Suspended, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, electric",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, wood logs",Poor,Very Good,No time or thermostatic control of room temperature,Very Poor,Very Poor,Low energy lighting in 18% of fixed outlets,Poor,Poor,INVALID!,0.0,NO DATA!,,2.37,0.0,N,natural,"2 Coast Cottages, Sandway Road, Sandway",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2009-01-30 10:44:37,rental (private),,,200003704906.0,Address Matched +1516882889402017020605290846930578,"31, Lansdowne Avenue",,,ME15 9DN,3478689478,E,B,50,85,House,Semi-Detached,2017-02-03,E07000110,E14000700,Kent,2017-02-06,marketed sale,43,83,373,92.0,5.7,66,1.5,98.0,58.0,953.0,464.0,195.0,75.0,87.0,Unknown,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,30.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 30% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"31, Lansdowne Avenue",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2017-02-06 05:29:08,owner-occupied,,,200003710223.0,Address Matched +1635573950452018052917435393280350,Flat 2,"27, Blossom Way",Marden,TN12 9GA,3099038578,B,B,83,83,Flat,Semi-Detached,2018-05-29,E07000110,E14000804,Kent,2018-05-29,new dwelling,86,86,96,96.0,1.1,17,1.1,49.0,49.0,195.0,195.0,71.0,71.0,64.0,standard tariff,,ground floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.10 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.23 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Flat 2, 27, Blossom Way, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,NO DATA!,2018-05-29 17:43:53,owner-occupied,45.0,45.0,10093305208.0,Address Matched +586318739802011020107545685392818,"3, Reinden Grove",Downswood,,ME15 8TH,3883333868,D,C,59,69,House,Semi-Detached,2011-01-29,E07000110,E14000700,Kent,2011-02-01,marketed sale,53,64,345,263.0,4.1,58,3.1,77.0,38.0,614.0,519.0,156.0,111.0,71.04,Unknown,Y,NO DATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,0.0,1.0,From main system,Average,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, mains gas",,,"Pitched, insulated (assumed)",Average,Average,"Boiler and radiators, mains gas",Average,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.3,0.0,N,natural,"3, Reinden Grove, Downswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2011-02-01 07:54:56,owner-occupied,,,200003686357.0,Address Matched +1384951559642016042716085548062538,Flat 88,Miller House,43-51 Lower Stone Street,ME15 6GB,3667250478,C,C,78,78,Flat,NO DATA!,2016-04-27,E07000110,E14000804,Kent,2016-04-27,none of the above,68,68,243,243.0,2.2,41,2.2,39.0,39.0,240.0,240.0,153.0,153.0,53.0,off-peak 10 hour,,mid floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Poor,Poor,(other premises below),,,Fully double glazed,Good,Good,Average thermal transmittance 0.68 W/m-¦K,Average,Average,,,,(other premises above),,,"Boiler and radiators, electric",Poor,Very Poor,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"Flat 88, Miller House, 43-51 Lower Stone Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2016-04-27 16:08:55,unknown,4.0,4.0,10091196185.0,Address Matched +250661179242017022716424752932938,"68, West Street",Harrietsham,,ME17 1HU,2226279568,D,C,58,77,House,End-Terrace,2017-02-27,E07000110,E14000700,Kent,2017-02-27,marketed sale,52,73,312,159.0,4.0,57,2.1,85.0,48.0,688.0,599.0,134.0,78.0,70.0,Single,Y,NODATA!,,,2106.0,95.0,double glazing installed during or after 2002,Normal,4.0,4.0,4.0,23.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Mostly double glazing,Good,Good,"Timber frame, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 23% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"68, West Street, Harrietsham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2017-02-27 16:42:47,owner-occupied,,,200003702528.0,Address Matched +1684724959022018120915513011868018,"39, St. Faiths Street",,,ME14 1LJ,1105581678,E,B,53,90,House,End-Terrace,2018-12-06,E07000110,E14000804,Kent,2018-12-09,rental (private),54,75,383,181.0,2.9,65,1.4,36.0,38.0,638.0,352.0,169.0,75.0,44.0,dual,N,NODATA!,,,2602.0,100.0,secondary glazing,Normal,1.0,2.0,2.0,100.0,0.0,Electric instantaneous at point of use,Very Poor,Poor,"Solid, no insulation (assumed)",NO DATA!,,Full secondary glazing,Good,Good,"Solid brick, with internal insulation",Good,Good,,,,"Pitched, 400+ mm loft insulation",Very Good,Very Good,"Room heaters, electric",Very Poor,Poor,Appliance thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,NO DATA!,,,,N,natural,"39, St. Faiths Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2018-12-09 15:51:30,rental (private),,,200003666525.0,Address Matched +667783549942011081819472785999388,Flat 1 Wilmhurst House,Malling Terrace,,ME16 0JU,4951249868,D,D,65,65,Flat,Detached,2011-08-18,E07000110,E14000804,Kent,2011-08-18,rental (social),64,64,264,264.0,2.6,51,2.6,31.0,31.0,424.0,424.0,99.0,99.0,51.89,Unknown,Y,Ground,Y,,2301.0,100.0,double glazing installed before 2002,Normal,0.0,1.0,1.0,100.0,0.0,Community scheme,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,Community scheme,Good,Good,"Flat rate charging, no thermostatic control of room temperature",Very Poor,Very Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (community),0.0,heated corridor,,2.37,0.0,,natural,"Flat 1 Wilmhurst House, Malling Terrace",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1991-1995,2011-08-18 19:47:27,rental (social),6.0,6.0,200003656951.0,Address Matched +1156609376432014061313551761978002,Rendlesham,Chatham Road,Sandling,ME14 3AY,7241044278,G,C,18,71,Bungalow,Detached,2014-06-12,E07000110,E14000700,Kent,2014-06-13,marketed sale,21,68,508,149.0,12.0,96,3.7,134.0,67.0,2153.0,851.0,504.0,185.0,128.0,Single,Y,NODATA!,,,2101.0,100.0,double glazing installed before 2002,Normal,1.0,6.0,6.0,0.0,1.0,"Electric immersion, standard tariff",Very Poor,Very Poor,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Average,Average,No time or thermostatic control of room temperature,Very Poor,Very Poor,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"Rendlesham, Chatham Road, Sandling",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2014-06-13 13:55:17,owner-occupied,9.0,0.0,200003672299.0,Address Matched +320828239022012080711314944238682,"58, Perryfield Street",,,ME14 2SX,8413344668,D,B,57,81,House,Mid-Terrace,2012-08-07,E07000110,E14000804,Kent,2012-08-07,rental (private),54,80,267,101.0,3.9,51,1.5,87.0,43.0,593.0,465.0,151.0,72.0,77.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,0.0,1.0,From main system,Average,Average,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Average,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"58, Perryfield Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2012-08-07 11:31:49,rental (private),7.0,0.0,200003669704.0,Address Matched +208947080902008121713305354589838,"51, Kingfisher Meadow",,,ME16 8RB,3927085568,D,D,56,58,Flat,Detached,2008-12-17,E07000110,E14000804,Kent,2008-12-17,new dwelling,68,69,220,214.0,3.7,0,3.6,101.0,55.0,543.0,564.0,177.0,177.0,0.0,off-peak 7 hour,,top floor,,,,,NO DATA!,NO DATA!,,,,3.0,,SAP05:Hot-Water,,,SAP05:Floor,,,SAP05:Windows,,,SAP05:Walls,,,SAP05:Secondary-Heating,,,SAP05:Roof,,,SAP05:Main-Heating,,,SAP05:Main-Heating-Controls,,,SAP05:Lighting,,,"Electricity: electricity, unspecified tariff",-1.0,NO DATA!,,,,,NO DATA!,"51, Kingfisher Meadow",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2008-12-17 13:30:53,,18.0,3.0,10022892262.0,Address Matched +1426988859402016032316272945362378,Burwood House,Pilgrims Way,Thurnham,ME14 3LD,4485153478,B,B,85,88,House,Detached,2016-03-23,E07000110,E14000700,Kent,2016-03-23,new dwelling,85,88,76,62.0,4.9,12,3.9,160.0,160.0,1039.0,1039.0,122.0,122.0,417.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.11 W/m+é-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.18 W/m+é-¦K,Very Good,Very Good,"Room heaters, wood logs",,,Average thermal transmittance 0.10 W/m+é-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Burwood House, Pilgrims Way, Thurnham",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2016-03-23 16:27:29,unknown,50.0,50.0,10091193743.0,Address Matched +178289410022008110413031693778958,Oak Cottage,Bishops Lane,Hunton,ME15 0SH,5984173568,E,E,40,44,House,Detached,2008-11-03,E07000110,E14000804,Kent,2008-11-04,rental (private),41,44,312,290.0,12.0,56,12.0,195.0,98.0,1615.0,1565.0,233.0,221.0,233.84,Single,N,NO DATA!,,,2106.0,,INVALID!,Much More Than Typical,2.0,11.0,11.0,0.0,3.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Partial double glazing,Poor,Poor,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, wood logs",,,"Pitched, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, oil",Average,Average,"Programmer, room thermostat and TRVs",Average,Average,No low energy lighting,Very Poor,Very Poor,oil - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.31,0.0,N,natural,"Oak Cottage, Bishops Lane, Hunton",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2008-11-04 13:03:16,rental (private),,,200003662197.0,Address Matched +602383129022011030916024734618289,"5, Clifford Way",,,ME16 8GB,8339264868,B,B,83,85,Flat,Detached,2011-03-09,E07000110,E14000804,Kent,2011-03-09,marketed sale,82,84,136,125.0,1.4,22,1.3,77.0,38.0,236.0,241.0,84.0,84.0,64.1,Unknown,Y,2nd,Y,3.0,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,0.0,0.0,From main system,Very Good,Very Good,(other premises below),,,Fully double glazed,Average,Average,"Timber frame, as built, insulated (assumed)",Good,Good,,,,"Flat, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,heated corridor,,2.3,0.0,N,natural,"5, Clifford Way",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2011-03-09 16:02:47,owner-occupied,,,10022896018.0,Address Matched +1554806986332017070407501028278500,3 Blue House Cottages,Battle Lane,Marden,TN12 9AN,8018552578,F,C,33,78,House,Detached,2017-06-25,E07000110,E14000804,Kent,2017-07-04,rental (private),32,69,354,72.0,6.9,84,2.5,82.0,55.0,939.0,701.0,120.0,139.0,82.0,Single,N,NODATA!,,,2104.0,80.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,50.0,0.0,From main system,Poor,Average,"Solid, no insulation (assumed)",NO DATA!,,Mostly double glazing,Poor,Poor,"Timber frame, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, oil",Average,Average,Programmer and room thermostat,Average,Average,Low energy lighting in 50% of fixed outlets,Good,Good,oil (not community),0.0,NO DATA!,,,,N,natural,"3 Blue House Cottages, Battle Lane, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: before 1900,2017-07-04 07:50:10,rental (private),,,200003662866.0,Address Matched +1552781319922017071914433272818633,69 Peel Street,,,ME14 2BP,3725142578,B,A,85,96,House,Mid-Terrace,2017-07-19,E07000110,E14000804,Kent,2017-07-19,new dwelling,88,99,75,-5.0,1.1,13,0.0,61.0,61.0,178.0,178.0,93.0,60.0,86.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.19 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.12 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,69 Peel Street,Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2017-07-19 14:43:32,unknown,4.0,4.0,10093305273.0,Address Matched +50828550802009011514352453619648,"8, Clock House Rise",Coxheath,,ME17 4GS,850056568,C,C,79,79,House,Mid-Terrace,2009-01-14,E07000110,E14000804,Kent,2009-01-15,new dwelling,80,80,146,146.0,1.9,0,1.9,37.0,37.0,340.0,340.0,87.0,87.0,78.56,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,19.0,,SAP05:Hot-Water,,,Average thermal transmittance 0.20 W/m²K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.20 W/m²K,Very Good,Very Good,SAP05:Secondary-Heating,,,Average thermal transmittance 0.19 W/m²K,Good,Good,SAP05:Main-Heating,,,SAP05:Main-Heating-Controls,,,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,-1.0,NO DATA!,,2.4,,,NO DATA!,"8, Clock House Rise, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2009-01-15 14:35:24,,19.0,19.0,10022900528.0,Address Matched +477623268f4038625bb0815c1d0ac16d76ba650b3c30bb0103f0a6d1915fd044,5 ROSELEIGH AVENUE,,,ME16 0AR,10001504124,D,B,56,83,House,Semi-Detached,2021-07-15,E07000110,E14000804,Kent,2021-07-15,marketed sale,48,81,314,93.0,4.6,57,1.4,78.0,78.0,733.0,439.0,155.0,68.0,82.0,Unknown,Y,,,,,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,84.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 84% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.43,0.0,N,natural,5 ROSELEIGH AVENUE,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2021-07-15 19:07:29,Owner-occupied,19.0,,200003658340.0,Energy Assessor +1476478380352016090316301990060749,"8, Court Drive",,,ME16 0JJ,7956007478,D,C,62,78,House,Detached,2016-09-03,E07000110,E14000804,Kent,2016-09-03,marketed sale,55,72,256,142.0,4.7,45,2.6,99.0,64.0,820.0,690.0,141.0,90.0,104.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,More Than Typical,2.0,7.0,7.0,44.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 44% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,2.36,,N,natural,"8, Court Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2016-09-03 16:30:19,owner-occupied,,,200003659197.0,Address Matched +1582190489962017101308061334498083,"55, Norrington Road",,,ME15 9XD,8339844578,D,C,67,78,House,Detached,2017-10-11,E07000110,E14000804,Kent,2017-10-13,marketed sale,57,73,232,142.0,4.8,41,3.0,141.0,70.0,957.0,710.0,142.0,85.0,116.0,Unknown,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,6.0,6.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 270 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"55, Norrington Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2017-10-13 08:06:13,owner-occupied,,,200003675627.0,Address Matched +1340625739542015070810525330750888,3 Upper Crisbrook Cottages,Cave Hill,,ME15 6DU,4525937378,E,A,39,96,House,Semi-Detached,2015-07-08,E07000110,E14000804,Kent,2015-07-08,marketed sale,34,88,446,44.0,7.2,82,1.0,112.0,56.0,1326.0,735.0,122.0,81.0,88.0,Single,Y,NODATA!,,,2106.0,0.0,not defined,Normal,0.0,4.0,4.0,0.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Single glazed,Very Poor,Very Poor,"Granite or whinstone, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"3 Upper Crisbrook Cottages, Cave Hill",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2015-07-08 10:52:53,owner-occupied,,,200003666173.0,Address Matched +615661569542011041217094681599128,"25, Norrington Road",,,ME15 9RA,3565665868,D,C,56,75,House,Semi-Detached,2011-04-12,E07000110,E14000804,Kent,2011-04-12,rental (private),49,71,360,203.0,4.8,60,2.7,57.0,43.0,676.0,442.0,227.0,114.0,79.61,Single,Y,NO DATA!,,,2107.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,67.0,0.0,"From main system, no cylinder thermostat",Average,Average,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 67% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.5,0.0,N,natural,"25, Norrington Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2011-04-12 17:09:46,rental (private),,,200003674913.0,Address Matched +1754436119262019092819210196388981,Flat 42 Block G,Lindisfarne Gardens,,ME16 8QG,8926196678,C,B,76,81,Flat,Semi-Detached,2019-09-28,E07000110,E14000804,Kent,2019-09-28,rental (private),78,85,158,105.0,1.7,28,1.1,109.0,55.0,165.0,173.0,191.0,106.0,62.0,Unknown,Y,1st,N,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,0.0,0.0,"From main system, no cylinder thermostat",Poor,Poor,(another dwelling below),NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,unheated corridor,0.9,,,N,natural,"Flat 42 Block G, Lindisfarne Gardens",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2019-09-28 19:21:01,rental (private),,,200003724435.0,Address Matched +227872570342009021618430559719768,"18, Eynsford Road",,,ME16 0TD,9339277568,C,C,72,72,Bungalow,Semi-Detached,2009-02-16,E07000110,E14000804,Kent,2009-02-16,marketed sale,68,68,267,267.0,2.3,45,2.3,25.0,25.0,339.0,339.0,91.0,91.0,52.27,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,100.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.41,0.0,N,natural,"18, Eynsford Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2009-02-16 18:43:05,owner-occupied,,,200003661067.0,Address Matched +930059707112015012919071993250106,"36, Higham Close",,,ME15 6RA,1688738078,D,B,58,84,House,End-Terrace,2015-01-29,E07000110,E14000804,Kent,2015-01-29,marketed sale,53,82,319,109.0,3.8,56,1.4,100.0,50.0,633.0,476.0,166.0,69.0,68.0,dual,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"36, Higham Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2015-01-29 19:07:19,owner-occupied,,,200003664627.0,Address Matched +1298153239742015032012453732459818,Crossing Cottage,Wagon Lane,Paddock Wood,TN12 6PT,4727734378,G,A,15,103,Bungalow,Detached,2015-03-19,E07000110,E14000804,Kent,2015-03-20,rental (private),5,68,1230,218.0,9.5,208,1.7,49.0,35.0,1402.0,627.0,165.0,68.0,46.0,dual,N,NODATA!,,,2401.0,80.0,secondary glazing,Normal,3.0,3.0,3.0,60.0,0.0,Electric instantaneous at point of use,Very Poor,Poor,"Suspended, no insulation (assumed)",NO DATA!,,Mostly secondary glazing,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, electric",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 60% of fixed outlets,Good,Good,electricity (not community),0.0,NO DATA!,,,,N,natural,"Crossing Cottage, Wagon Lane, Paddock Wood",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: before 1900,2015-03-20 12:45:37,rental (private),,,10014311183.0,Address Matched +55497539062011050416221583848089,"2a, Dover Street",,,ME16 8LE,8805383468,E,D,40,64,House,Semi-Detached,2011-05-04,E07000110,E14000804,Kent,2011-05-04,marketed sale,37,62,431,239.0,6.1,83,3.4,52.0,39.0,904.0,554.0,195.0,100.0,73.5,Single,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,67.0,0.0,"From main system, no cylinder thermostat",Poor,Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 67% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,2.1,0.0,,natural,"2a, Dover Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2011-05-04 16:22:15,owner-occupied,9.0,6.0,200003656586.0,Address Matched +478f8ce153d3dfda38576829ecfc916ae60c224bf98be93e90c66540d7fb4c03,55 CUMBERLAND AVENUE,,,ME15 7JP,10001548241,E,B,54,83,House,Mid-Terrace,2021-06-29,E07000110,E14000700,Kent,2021-07-01,ECO assessment,51,82,339,106.0,4.1,60,1.3,117.0,58.0,667.0,471.0,204.0,79.0,69.0,Single,Y,,,,,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,0.0,0.0,"From main system, no cylinder thermostat",Average,Average,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,"Pitched, insulated (assumed)",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,,,2.75,0.0,N,natural,55 CUMBERLAND AVENUE,Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2021-07-01 10:18:36,Rented (social),8.0,,200003704544.0,Energy Assessor +665748529342019071516450888919528,"12, Cayser Drive",Kingswood,,ME17 3QB,6337429868,B,B,83,86,House,Semi-Detached,2019-07-12,E07000110,E14000700,Kent,2019-07-15,marketed sale,84,88,106,75.0,1.2,17,0.8,66.0,66.0,348.0,324.0,117.0,75.0,69.0,Single,Y,NODATA!,,,2106.0,100.0,triple glazing,Normal,0.0,5.0,5.0,80.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully triple glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,"Room heaters, wood logs",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"12, Cayser Drive, Kingswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1976-1982,2019-07-15 16:45:08,owner-occupied,,,200003701271.0,Address Matched +1011548360252013092519050091270819,"66, Kingsley Road",,,ME15 7UW,8928014178,D,B,64,82,House,Mid-Terrace,2013-09-25,E07000110,E14000804,Kent,2013-09-25,marketed sale,60,80,200,89.0,4.4,38,2.0,120.0,60.0,748.0,566.0,97.0,69.0,113.0,Unknown,Y,NODATA!,,,2107.0,95.0,"double glazing, unknown install date",Normal,1.0,6.0,6.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Mostly double glazing,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"66, Kingsley Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2013-09-25 19:05:00,owner-occupied,12.0,0.0,200003696051.0,Address Matched +1530831804452017032411044298230857,"2, Glenwood Close",,,ME16 0AU,8771480578,D,B,63,88,Bungalow,Semi-Detached,2017-03-23,E07000110,E14000804,Kent,2017-03-24,marketed sale,59,88,283,64.0,3.0,50,0.7,70.0,42.0,427.0,339.0,206.0,66.0,60.0,Single,Y,NODATA!,,,2107.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,33.0,0.0,"From main system, no cylinder thermostat",Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 33% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"2, Glenwood Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2017-03-24 11:04:42,owner-occupied,,,200003658365.0,Address Matched +597624329042019051419074782419648,Flat 2 Carslile House,Nottingham Avenue,,ME15 7PU,9034624868,D,C,68,75,Flat,Semi-Detached,2019-05-14,E07000110,E14000700,Kent,2019-05-14,rental (social),66,76,248,175.0,2.6,44,1.8,70.0,47.0,448.0,323.0,82.0,82.0,59.0,Single,Y,1st,Y,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,50.0,0.0,From main system,Good,Good,(another dwelling below),NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,no corridor,,,,N,natural,"Flat 2 Carslile House, Nottingham Avenue",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2019-05-14 19:07:47,rental (social),,,200003725273.0,Address Matched +1165264589262014062913594444668994,Flat 6,34 Gabriels Hill,,ME15 6JJ,9472894278,C,B,75,81,Flat,Enclosed End-Terrace,2014-06-26,E07000110,E14000804,Kent,2014-06-29,rental (private),77,80,215,183.0,1.3,38,1.1,25.0,27.0,192.0,91.0,126.0,138.0,33.0,Unknown,N,Ground,N,,2601.0,100.0,double glazing installed during or after 2002,Normal,0.0,1.0,1.0,100.0,0.0,Electric instantaneous at point of use,Very Poor,Very Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Solid brick, with internal insulation",Good,Good,,,,(another dwelling above),,,"Room heaters, electric",Very Poor,Very Poor,No thermostatic control of room temperature,Poor,Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,unheated corridor,3.88,,0.0,,natural,"Flat 6, 34 Gabriels Hill",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2014-06-29 13:59:44,rental (private),4.0,4.0,, +47b4c84a287808cc591d84195ac4ef7fef5112f91e6868ed49ab6531fbaa1cc6,20 CLOCK HOUSE RISE,COXHEATH,,ME17 4GS,10001450030,C,C,79,79,Flat,Semi-Detached,2021-07-29,E07000110,E14000804,Kent,2021-07-29,rental,80,80,133,133.0,1.8,23,1.8,69.0,69.0,302.0,302.0,100.0,100.0,78.0,Unknown,Y,01,Y,,,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,"To unheated space, insulated (assumed)",,,Fully double glazed,Good,Good,"Timber frame, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,no corridor,,2.32,0.0,N,natural,"20 CLOCK HOUSE RISE, COXHEATH",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007-2011,2021-07-29 12:41:56,Rented (private),10.0,,10022900539.0,Energy Assessor +1042963179922013111410164366148507,Flat 17 Thomas Robert Gardens,Church Street,,ME14 1FQ,676736178,B,B,85,85,Flat,NO DATA!,2013-11-14,E07000110,E14000804,Kent,2013-11-14,marketed sale,89,90,72,69.0,0.8,14,0.8,56.0,45.0,194.0,195.0,69.0,69.0,62.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.26 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Flat 17 Thomas Robert Gardens, Church Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2013-11-14 10:16:43,NO DATA!,0.0,0.0,10014314603.0,Address Matched +1555585596332017062718193349278908,"2, Ace High Close",Thurnham,,ME14 3ND,9829952578,A,A,92,92,House,Detached,2017-06-27,E07000110,E14000700,Kent,2017-06-27,new dwelling,93,93,28,28.0,1.0,5,1.0,92.0,92.0,439.0,439.0,329.0,329.0,204.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Very Poor,Poor,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.19 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,"Air source heat pump, underfloor, electric",Very Good,Very Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"2, Ace High Close, Thurnham",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2017-06-27 18:19:33,unknown,12.0,12.0,10093302967.0,Address Matched +502885998032020082718201943268905,"12, Tufton Street",,,ME14 1ES,9593917768,E,B,42,89,House,Mid-Terrace,2020-08-27,E07000110,E14000804,Kent,2020-08-27,rental (private),36,89,523,52.0,5.1,92,0.5,47.0,47.0,492.0,304.0,514.0,63.0,55.0,Single,Y,NODATA!,,,2102.0,83.0,"double glazing, unknown install date",Normal,2.0,3.0,3.0,100.0,0.0,"From main system, no cylinder thermostat",Very Poor,Very Poor,"To unheated space, no insulation (assumed)",NO DATA!,,Mostly double glazing,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"12, Tufton Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2020-08-27 18:20:19,rental (private),,,200003687438.0,Address Matched +1655480929922019031120521149298361,"7, Ace High Close",Thurnham,,ME14 3ND,6436279578,A,A,96,109,House,Detached,2019-03-11,E07000110,E14000700,Kent,2019-03-11,new dwelling,96,108,9,-56.0,0.3,2,-1.8,98.0,98.0,383.0,384.0,231.0,141.0,195.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Poor,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.22 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.15 W/m-¦K,Good,Good,"Air source heat pump, underfloor, electric",Good,Very Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"7, Ace High Close, Thurnham",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2019-03-11 20:52:11,unknown,12.0,12.0,10094440038.0,Address Matched +1122205999002014040913545326140818,"12, Adam Close",Coxheath,,ME17 4QU,4012991278,E,B,46,87,House,Semi-Detached,2014-04-09,E07000110,E14000804,Kent,2014-04-09,FiT application,42,88,342,53.0,5.9,66,1.0,92.0,53.0,814.0,382.0,377.0,84.0,89.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,25.0,0.0,"From main system, no cylinder thermostat",Very Poor,Very Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 12 mm loft insulation",Very Poor,Very Poor,"Boiler and radiators, mains gas",Average,Average,Programmer and room thermostat,Average,Average,Low energy lighting in 25% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"12, Adam Close, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2014-04-09 13:54:53,owner-occupied,16.0,4.0,200003714950.0,Address Matched +821368167412012080908443396020906,"15, The Beams",,,ME15 8EF,9619760078,D,B,60,85,House,Semi-Detached,2012-08-09,E07000110,E14000700,Kent,2012-08-09,marketed sale,57,86,258,67.0,3.5,50,0.9,40.0,40.0,552.0,369.0,140.0,66.0,70.0,Unknown,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,100.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"15, The Beams",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2012-08-09 08:44:33,owner-occupied,8.0,8.0,200003687043.0,Address Matched +47e0abbe0cffa20cd5e43cfac06b9d47c8ef12278dafe46f6ea6a563ff2507c2,5 Lacock Gardens,,,ME15 6GS,10001524908,C,B,78,91,House,End-Terrace,2021-09-06,E07000110,E14000804,Kent,2021-09-06,rental,79,92,141,41.0,1.7,25,0.5,63.0,63.0,293.0,293.0,82.0,57.0,69.0,Unknown,Y,,,,,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Suspended, insulated (assumed)",,,Fully double glazed,Good,Good,"Timber frame, as built, insulated (assumed)",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.29,0.0,N,natural,5 Lacock Gardens,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2021-09-06 22:00:19,Rented (private),11.0,,10012891024.0,Energy Assessor +547748779022010100111434940998350,"9, Peacock Mews",Springvale,,ME16 0AW,5474730868,E,E,48,54,House,Mid-Terrace,2010-10-01,E07000110,E14000804,Kent,2010-10-01,marketed sale,42,45,451,418.0,6.6,67,6.1,83.0,58.0,772.0,665.0,187.0,187.0,64.4,dual,N,NO DATA!,,,2401.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,4.0,57.0,0.0,"Electric immersion, off-peak",Poor,Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,,Good,Good,Electric storage heaters,Poor,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 57% of fixed outlets,Good,Good,electricity - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,0.0,N,natural,"9, Peacock Mews, Springvale",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2010-10-01 11:43:49,owner-occupied,,,200003726588.0,Address Matched +1728847066712019061320461890910169,"1, Church Square",Lenham,,ME17 2PJ,1991605678,E,B,51,88,House,End-Terrace,2019-06-13,E07000110,E14000700,Kent,2019-06-13,rental (private),45,88,431,72.0,4.2,76,0.7,52.0,52.0,754.0,335.0,81.0,54.0,55.0,Unknown,Y,NODATA!,,,2106.0,60.0,secondary glazing,Normal,2.0,3.0,3.0,80.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Partial secondary glazing,Poor,Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Roof room(s), ceiling insulated",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"1, Church Square, Lenham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2019-06-13 20:46:18,rental (private),,,200003711106.0,Address Matched +1056947089062013120623393307958577,"463, Loose Road",,,ME15 9UJ,7053837178,E,C,54,78,House,Semi-Detached,2013-12-05,E07000110,E14000804,Kent,2013-12-06,none of the above,49,76,276,117.0,5.0,53,2.2,70.0,70.0,834.0,586.0,169.0,80.0,94.0,dual,Y,NODATA!,,,2104.0,50.0,double glazing installed before 2002,Normal,0.0,8.0,8.0,78.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Partial double glazing,Poor,Poor,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 78% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"463, Loose Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2013-12-06 23:39:33,owner-occupied,9.0,7.0,200003680286.0,Address Matched +983442192252013080212463291070712,"39, Gleaming Wood Drive",,,ME5 8XX,7260212178,C,B,71,89,House,Semi-Detached,2013-08-02,E07000110,E14000700,Kent,2013-08-02,marketed sale,72,91,174,40.0,2.2,33,0.6,70.0,44.0,391.0,335.0,94.0,65.0,66.0,dual,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,41.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 75 mm loft insulation",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 41% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"39, Gleaming Wood Drive",Maidstone,Faversham and Mid Kent,CHATHAM,England and Wales: 1976-1982,2013-08-02 12:46:32,owner-occupied,17.0,7.0,200003673794.0,Address Matched +47e22f72b631c143bc4b9b392926c5d218bd4a83aff6dd819656d8b501d9a866,FLAT 3,SHERINGHAM HOUSE,OWLETTS CLOSE,ME15 7TP,10001605606,E,C,54,72,Flat,Semi-Detached,2021-06-29,E07000110,E14000700,Kent,2021-07-01,ECO assessment,53,75,410,217.0,2.9,72,1.5,75.0,38.0,583.0,316.0,75.0,76.0,40.0,Single,Y,00,N,,,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,0.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Average,Average,"Room heaters, electric",,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,unheated corridor,4.5,2.79,0.0,N,natural,"FLAT 3, SHERINGHAM HOUSE, OWLETTS CLOSE",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2021-07-01 18:26:40,Rented (social),8.0,,200003714110.0,Energy Assessor +412925480602009121522444073019058,"42, Arundel Square",,,ME15 6HB,6649680768,B,B,83,84,Flat,End-Terrace,2009-12-15,E07000110,E14000804,Kent,2009-12-15,rental (private),82,83,137,130.0,1.4,23,1.3,55.0,35.0,204.0,207.0,98.0,98.0,62.58,Unknown,Y,Ground,N,3.0,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,40.0,0.0,From main system,Very Good,Very Good,"Solid, insulated (assumed)",,,Fully double glazed,Good,Good,"Timber frame, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 40% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,unheated corridor,3.84,2.32,0.0,N,natural,"42, Arundel Square",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2009-12-15 22:44:40,rental (private),,,10022895142.0,Address Matched +826987388232012082022144133278902,Flat 3 Wells House,Cambridge Crescent,,ME15 7NN,8213901078,D,C,63,76,Flat,Mid-Terrace,2012-08-20,E07000110,E14000700,Kent,2012-08-20,rental (social),62,79,240,133.0,2.9,46,1.6,71.0,38.0,375.0,271.0,204.0,106.0,63.0,Single,Y,Ground,N,,2107.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,13.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 13% of fixed outlets,Poor,Poor,mains gas (not community),0.0,no corridor,,,0.0,,natural,"Flat 3 Wells House, Cambridge Crescent",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2012-08-20 22:14:41,rental (social),8.0,1.0,200003713053.0,Address Matched +581522999642011011721275582299438,"39, Titchfield Close",,,ME15 8TA,9664492868,C,C,72,78,Flat,Semi-Detached,2011-01-17,E07000110,E14000700,Kent,2011-01-17,rental (social),69,74,282,232.0,2.1,47,1.7,37.0,24.0,335.0,300.0,116.0,95.0,43.81,Single,Y,Ground,N,2.0,2107.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,50.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.35,0.0,N,natural,"39, Titchfield Close",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1976-1982,2011-01-17 21:27:55,rental (social),,,200003727398.0,Address Matched +1532144087332017032911531552278305,"3, Pope Street",,,ME16 8LQ,8532390578,E,C,45,80,House,End-Terrace,2017-03-29,E07000110,E14000804,Kent,2017-03-29,marketed sale,39,76,439,135.0,5.1,77,1.6,89.0,46.0,932.0,532.0,108.0,47.0,66.0,Unknown,Y,NODATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,1.0,4.0,4.0,7.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 7% of fixed outlets,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"3, Pope Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2017-03-29 11:53:15,owner-occupied,,,200003655818.0,Address Matched +62675215712019101813594190919044,Sycamore Cottage,High Street,Staplehurst,TN12 0AZ,485504468,E,C,44,69,House,Detached,2019-10-17,E07000110,E14000804,Kent,2019-10-18,rental (private),38,59,443,250.0,5.5,78,3.2,61.0,61.0,975.0,763.0,103.0,65.0,71.0,dual,Y,NODATA!,,,2106.0,10.0,"double glazing, unknown install date",Normal,1.0,3.0,3.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Some double glazing,Very Poor,Very Poor,"Timber frame, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"Sycamore Cottage, High Street, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: before 1900,2019-10-18 13:59:41,rental (private),,,200003720294.0,Address Matched +820221269902012073120004006027998,"68, Abingdon Road",,,ME16 9EE,4917260078,E,B,51,82,House,Detached,2012-07-31,E07000110,E14000804,Kent,2012-07-31,marketed sale,49,83,296,83.0,4.6,56,1.3,86.0,46.0,705.0,455.0,194.0,69.0,82.0,Single,Y,NODATA!,,,2102.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,11.0,0.0,"From main system, no cylinder thermostat",Poor,Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,Low energy lighting in 11% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"68, Abingdon Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2012-07-31 20:00:40,owner-occupied,9.0,1.0,200003665088.0,Address Matched +208307452132019120308183864068399,"70a, Northumberland Road",,,ME15 7TQ,5964306568,C,C,73,74,Flat,End-Terrace,2019-12-02,E07000110,E14000700,Kent,2019-12-03,rental (social),75,76,206,200.0,1.6,36,1.5,54.0,36.0,277.0,279.0,82.0,82.0,43.0,Single,Y,1st,Y,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,50.0,0.0,From main system,Good,Good,(another dwelling below),NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,no corridor,,,,N,natural,"70a, Northumberland Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2019-12-03 08:18:38,rental (social),,,200003684346.0,Address Matched +1000967549512014111811343993949813,Royal Oak Cottage,Hunton Road,Marden,TN12 9TB,8332933178,F,B,27,84,House,Semi-Detached,2014-11-18,E07000110,E14000804,Kent,2014-11-18,non marketed sale,42,91,304,28.0,6.0,64,0.7,89.0,57.0,1596.0,548.0,513.0,160.0,94.0,Single,N,NODATA!,,,2106.0,20.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,42.0,0.0,"From main system, no cylinder thermostat",Very Poor,Very Poor,"Solid, no insulation (assumed)",,,Some double glazing,Very Poor,Very Poor,"Cavity wall, filled cavity",Good,Good,"Room heaters, wood logs",,,"Pitched, no insulation",Very Poor,Very Poor,"Boiler and radiators, LPG",Poor,Average,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 42% of fixed outlets,Average,Average,LPG (not community),0.0,NO DATA!,,,0.0,,natural,"Royal Oak Cottage, Hunton Road, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: before 1900,2014-11-18 11:34:39,owner-occupied,12.0,5.0,10091194588.0,Address Matched +507748659602010070115275275700498,"4, Beckworth Place",St. Andrews Road,,ME16 9LS,6620557768,D,C,68,71,House,Detached,2010-07-01,E07000110,E14000804,Kent,2010-07-01,marketed sale,66,70,246,221.0,3.0,41,2.6,44.0,44.0,466.0,434.0,129.0,110.0,72.71,Single,Y,NO DATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,90.0,0.0,From main system,Good,Good,"Solid, limited insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 90% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.3,0.0,N,natural,"4, Beckworth Place, St. Andrews Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2010-07-01 15:27:52,owner-occupied,,,200003699599.0,Address Matched +1645809209542018070508274758980648,"73, Shaftesbury Drive",,,ME16 0JR,8522209578,D,C,62,79,Bungalow,Semi-Detached,2018-07-04,E07000110,E14000804,Kent,2018-07-05,marketed sale,57,74,285,151.0,3.2,50,1.7,90.0,48.0,554.0,524.0,78.0,50.0,64.0,Unknown,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,11.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Average,Average,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 11% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"73, Shaftesbury Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2018-07-05 08:27:47,owner-occupied,,,200003726296.0,Address Matched +545047369262010092406483760148480,"132, Glebe Lane",,,ME16 9BA,8664610868,C,C,79,80,House,Detached,2010-09-24,E07000110,E14000804,Kent,2010-09-24,marketed sale,77,78,142,136.0,2.8,24,2.7,111.0,67.0,385.0,392.0,126.0,126.0,75.0,Unknown,Y,NO DATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,6.0,6.0,35.0,0.0,From main system,Very Good,Very Good,"Solid, insulated (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Roof room(s), insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 35% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.3,0.0,N,natural,"132, Glebe Lane",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2010-09-24 06:48:37,owner-occupied,,,10014306589.0,Address Matched +4824e1428881d7d4e7def5a259110c876822cc8e8ad1ca4c34690e8a0e175391,Woodville,Weavering Street,Weavering,ME14 5JS,10001697644,D,B,56,81,House,Detached,2021-09-10,E07000110,E14000700,Kent,2021-09-10,marketed sale,55,81,310,116.0,3.9,50,1.4,103.0,65.0,750.0,499.0,95.0,68.0,78.0,Single,Y,,,,,100.0,double glazing installed during or after 2002,Normal,1.0,5.0,5.0,42.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, wood logs",,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 42% of fixed outlets,Average,Average,mains gas (not community),0.0,,,2.54,0.0,N,natural,"Woodville, Weavering Street, Weavering",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1900-1929,2021-09-10 17:27:53,Owner-occupied,12.0,,200003689309.0,Energy Assessor +12b0ee15f7c37bf70fcaae8d03438dfea645c6a82d0081efe98a6e1ef8099206,43 Tyler Road,,,TN12 0GY,10001567048,B,A,84,93,House,Detached,2021-08-17,E07000110,E14000804,Kent,2021-08-17,new dwelling,85,93,81,28.0,1.8,14,0.7,89.0,89.0,312.0,312.0,74.0,46.0,129.0,standard tariff,,,N,,,100.0,,,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.17 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.12 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.55,,,,43 Tyler Road,Maidstone,Maidstone and The Weald,STAPLEHURST,2021,2021-08-17 09:28:15,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,20.0,,10094443803.0,Energy Assessor +1076291409222014012211312898198574,"15, Wheatsheaf Close",,,ME15 9QA,7984078178,E,C,47,80,House,Detached,2014-01-21,E07000110,E14000804,Kent,2014-01-22,none of the above,41,77,301,101.0,7.8,58,2.6,97.0,68.0,1387.0,701.0,172.0,82.0,134.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,6.0,6.0,57.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 100mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 57% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"15, Wheatsheaf Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2014-01-22 11:31:28,owner-occupied,14.0,8.0,200003727896.0,Address Matched +1377612919262015102314461840528405,"88, Wallis Avenue",,,ME15 9FU,476100478,B,B,83,83,Flat,NO DATA!,2015-10-22,E07000110,E14000700,Kent,2015-10-23,new dwelling,86,86,95,95.0,1.2,17,1.2,49.0,49.0,222.0,222.0,90.0,90.0,71.0,standard tariff,,ground floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.22 W/m-¦K,Good,Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.20 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"88, Wallis Avenue",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2015-10-23 14:46:18,unknown,10.0,10.0,10014315870.0,Address Matched +526557989102010081214123271809928,"55, Melrose Close",,,ME15 6BD,3161988768,B,B,88,88,House,End-Terrace,2010-08-12,E07000110,E14000804,Kent,2010-08-12,new dwelling,87,87,87,84.0,1.4,14,1.4,76.0,60.0,231.0,232.0,108.0,108.0,100.74,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,6.0,,From main system,Very Good,Very Good,Average thermal transmittance 0.20 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.21 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Very Good,Very Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.3,,,NO DATA!,"55, Melrose Close",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2010-08-12 14:12:32,,8.0,6.0,10014307055.0,Address Matched +596658919222016082621292124268926,"43, Cleavesland",Laddingford,,ME18 6BS,2263124868,C,A,71,121,Bungalow,End-Terrace,2016-08-26,E07000110,E14000804,Kent,2016-08-26,rental (social),71,120,237,-202.0,1.9,42,-1.5,32.0,32.0,362.0,297.0,85.0,57.0,44.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,2.26,,N,natural,"43, Cleavesland, Laddingford",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2016-08-26 21:29:21,rental (social),,,200003660002.0,Address Matched +1678045769832019100912335416078594,Flat 803,Kent House,Romney Place,ME15 6LA,6466531678,D,D,63,63,Flat,Detached,2018-11-09,E07000110,E14000804,Kent,2019-10-09,non marketed sale,67,67,241,241.0,2.3,41,2.3,46.0,46.0,460.0,460.0,275.0,275.0,57.0,standard tariff,,top floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,"Electric immersion, standard tariff",Very Poor,Poor,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.29 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,Electric underfloor heating,Very Poor,Poor,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"Flat 803, Kent House, Romney Place",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2019-10-09 12:33:54,unknown,21.0,21.0,, +1622204684952018050109201993780955,"32, Halstead Walk",,,ME16 0PN,9535437578,D,B,65,90,House,Mid-Terrace,2018-04-30,E07000110,E14000804,Kent,2018-05-01,rental (private),60,90,243,48.0,3.4,43,0.7,83.0,61.0,484.0,315.0,202.0,71.0,80.0,dual,Y,NODATA!,,,2107.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,64.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 64% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"32, Halstead Walk",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2018-05-01 09:20:19,rental (private),,,200003723304.0,Address Matched +1616043119962018031620402916568898,"25, Stanhope Close",,,ME14 2RB,9104196578,C,B,69,85,House,End-Terrace,2018-03-16,E07000110,E14000804,Kent,2018-03-16,marketed sale,66,83,215,94.0,2.9,38,1.3,87.0,54.0,479.0,427.0,97.0,65.0,76.0,Unknown,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,3.0,3.0,38.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, 270 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 38% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"25, Stanhope Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2018-03-16 20:40:29,owner-occupied,,,200003671131.0,Address Matched +661703499402014111913461987840418,Flat 1 Primrose House,Westmorland Road,,ME15 8JG,8464698868,C,C,76,78,Flat,Semi-Detached,2014-11-09,E07000110,E14000700,Kent,2014-11-19,none of the above,80,83,152,126.0,1.2,29,1.0,30.0,30.0,296.0,252.0,51.0,51.0,42.0,Unknown,Y,Ground,N,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,2.0,2.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,7.86,,0.0,,natural,"Flat 1 Primrose House, Westmorland Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1991-1995,2014-11-19 13:46:19,rental (social),5.0,5.0,200003685582.0,Address Matched +187819990832008111018210657268094,Flat 3,"59, Bower Mount Road",,ME16 8AS,9407014568,B,B,81,82,Flat,Detached,2008-10-27,E07000110,E14000804,Kent,2008-11-10,rental (private),77,77,332,327.0,1.1,55,1.1,13.0,9.0,158.0,158.0,19.0,19.0,19.9,Unknown,Y,1st,N,5.0,2305.0,100.0,"double glazing, unknown install date",Normal,0.0,1.0,1.0,50.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,(another dwelling above),,,Community scheme,Good,Good,"Flat rate charging, programmer and TRVs",Average,Average,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,heated corridor,,2.8,0.0,N,natural,"Flat 3, 59, Bower Mount Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2008-11-10 18:21:06,rental (private),,,200003658038.0,Address Matched +1189848853952020080313083327000726,"45, Devon Road",,,ME15 7EW,7664376278,E,B,52,86,House,Semi-Detached,2020-08-03,E07000110,E14000700,Kent,2020-08-03,marketed sale,43,84,352,83.0,6.3,62,1.5,77.0,77.0,684.0,457.0,535.0,74.0,102.0,Single,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,100.0,0.0,"From main system, no cylinder thermostat",Very Poor,Very Poor,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"45, Devon Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2020-08-03 13:08:33,owner-occupied,,,200003711481.0,Address Matched +1332137948212015061215241097950833,4 Claire House,Lesley Place,Buckland Hill,ME16 0UE,8382876378,C,B,72,82,Flat,Enclosed Mid-Terrace,2015-06-12,E07000110,E14000804,Kent,2015-06-12,rental (private),72,73,306,290.0,1.4,52,1.3,47.0,24.0,198.0,94.0,107.0,107.0,27.0,dual,N,1st,N,,2699.0,100.0,double glazing installed before 2002,Normal,0.0,1.0,0.0,0.0,0.0,"Electric immersion, off-peak",Average,Poor,(another dwelling below),NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,No system present: electric heaters assumed,Very Poor,Poor,,Very Poor,Very Poor,No low energy lighting,Very Poor,Very Poor,To be used only when there is no heating/hot-water system,0.0,unheated corridor,6.34,,,N,natural,"4 Claire House, Lesley Place, Buckland Hill",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2015-06-12 15:24:10,rental (private),,,200003721269.0,Address Matched +284552369302019051614265364119168,Freshfields,Pilgrims Way,Detling,ME14 3EY,7397161668,D,B,56,83,Bungalow,Detached,2019-05-16,E07000110,E14000700,Kent,2019-05-16,rental (private),47,79,290,100.0,6.6,51,2.3,130.0,81.0,1127.0,558.0,96.0,97.0,129.0,Single,Y,NODATA!,,,2106.0,100.0,secondary glazing,Normal,0.0,5.0,5.0,40.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Full secondary glazing,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 40% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"Freshfields, Pilgrims Way, Detling",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2019-05-16 14:26:53,rental (private),,,200003694050.0,Address Matched +979918129222013072916062111318007,"5, Lancashire Road",,,ME15 7QD,190291178,E,C,52,77,House,Semi-Detached,2013-07-29,E07000110,E14000700,Kent,2013-07-29,marketed sale,50,77,306,123.0,4.0,58,1.7,68.0,42.0,715.0,550.0,142.0,70.0,69.0,Single,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,38.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 38% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"5, Lancashire Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2013-07-29 16:06:21,owner-occupied,8.0,3.0,200003683953.0,Address Matched +7928149142016031512225241769858,"84, Clifford Way",,,ME16 8GE,2122547468,C,C,76,77,Flat,Mid-Terrace,2016-03-15,E07000110,E14000804,Kent,2016-03-15,marketed sale,78,81,173,155.0,1.4,30,1.2,36.0,36.0,235.0,206.0,118.0,119.0,45.0,Unknown,Y,1st,N,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,100.0,0.0,From main system,Good,Good,"To external air, limited insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,2.0,,,N,natural,"84, Clifford Way",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2016-03-15 12:22:52,owner-occupied,,,10022896097.0,Address Matched +53117271412009020615004905010959,20 Hazlitt Drive,,,ME16 0EG,9994157568,B,B,84,85,House,Semi-Detached,2009-02-06,E07000110,E14000804,Kent,2009-02-06,new dwelling,83,83,103,100.0,2.2,0,2.2,80.0,64.0,266.0,268.0,119.0,119.0,46.56,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,9.0,,SAP05:Hot-Water,,,Average thermal transmittance 0.23 W/m²K,Good,Good,Fully double glazed,Good,Good,Average thermal transmittance 0.26 W/m²K,Very Good,Very Good,SAP05:Secondary-Heating,,,Average thermal transmittance 0.19 W/m²K,Good,Good,SAP05:Main-Heating,,,SAP05:Main-Heating-Controls,,,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,-1.0,NO DATA!,,2.3,,,NO DATA!,20 Hazlitt Drive,Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2009-02-06 15:00:49,,12.0,9.0,10022895304.0,Address Matched +1416809679402016022505235347262778,"10, The Sprig",Bearsted,,ME14 4LH,3407772478,D,C,59,79,House,Semi-Detached,2016-02-23,E07000110,E14000700,Kent,2016-02-25,rental (private),57,78,274,122.0,3.6,48,1.6,56.0,56.0,696.0,583.0,161.0,74.0,75.0,dual,Y,NODATA!,,,2104.0,85.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Mostly double glazing,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"10, The Sprig, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2016-02-25 05:23:53,rental (private),,,200003692872.0,Address Matched +416043122132009122912491772268093,"13, Ifield Close",,,ME15 8QD,2312011768,C,C,78,78,House,Semi-Detached,2009-12-23,E07000110,E14000700,Kent,2009-12-29,marketed sale,75,75,170,170.0,2.4,28,2.4,47.0,47.0,366.0,366.0,94.0,94.0,84.98,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,90.0,0.0,From main system,Very Good,Very Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 90% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.27,0.0,N,natural,"13, Ifield Close",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2009-12-29 12:49:17,owner-occupied,,,200003685213.0,Address Matched +1098466579222014022813101570788784,"1, Millbrook Close",,,ME15 6FZ,8731720278,D,B,65,85,House,Detached,2014-02-28,E07000110,E14000804,Kent,2014-02-28,none of the above,62,84,191,70.0,4.3,37,1.6,127.0,64.0,715.0,510.0,155.0,79.0,118.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,6.0,6.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"1, Millbrook Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2014-02-28 13:10:15,owner-occupied,14.0,0.0,200003666001.0,Address Matched +524902379022010080916424808818070,Flat 5 Kentish Court,London Road,,ME16 8AA,7080778768,C,C,70,70,Flat,Semi-Detached,2010-08-09,E07000110,E14000804,Kent,2010-08-09,marketed sale,74,74,218,218.0,2.1,33,2.1,38.0,38.0,251.0,251.0,153.0,153.0,65.19,dual,N,1st,N,3.0,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,From main system,Poor,Poor,(other premises below),,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, electric",Very Poor,Poor,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity - this is for backwards compatibility only and should not be used,0.0,unheated corridor,8.23,2.32,0.0,N,natural,"Flat 5 Kentish Court, London Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2010-08-09 16:42:48,owner-occupied,,,10014307876.0,Address Matched +539088679942010121515063074909158,Flat 4 Coniston House,Westmorland Green,,ME15 8BP,987779768,C,C,71,72,Flat,Enclosed End-Terrace,2010-12-15,E07000110,E14000700,Kent,2010-12-15,rental (social),68,68,250,246.0,2.6,42,2.6,51.0,34.0,427.0,430.0,86.0,86.0,62.25,Single,Y,1st,N,3.0,2106.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,50.0,0.0,From main system,Very Good,Very Good,(other premises below),,,Fully double glazed,Average,Average,"System built, as built, no insulation (assumed)",Very Poor,Very Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,unheated corridor,4.3,2.46,0.0,N,natural,"Flat 4 Coniston House, Westmorland Green",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2010-12-15 15:06:30,rental (social),,,200003685505.0,Address Matched +1013270769262015082320464734098575,"26, Maple Avenue",,,ME16 0DD,7341624178,D,B,62,81,House,Semi-Detached,2015-08-21,E07000110,E14000804,Kent,2015-08-23,marketed sale,54,76,237,110.0,5.4,42,2.5,112.0,72.0,912.0,678.0,179.0,79.0,128.0,Unknown,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,3.0,7.0,7.0,44.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 44% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"26, Maple Avenue",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2015-08-23 20:46:47,owner-occupied,,,200003658591.0,Address Matched +914435559922013041607332827458327,"34, Reeves Close",Staplehurst,,TN12 0NN,2255527078,D,B,61,84,House,Semi-Detached,2013-04-15,E07000110,E14000804,Kent,2013-04-16,marketed sale,58,85,241,72.0,3.5,46,1.1,82.0,43.0,557.0,393.0,123.0,73.0,75.0,Single,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,11.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 11% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"34, Reeves Close, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1967-1975,2013-04-16 07:33:28,owner-occupied,9.0,1.0,200003678290.0,Address Matched +1530554814332017040509543500078603,26 Barden Court,St. Lukes Avenue,,ME14 5AP,1350680578,C,C,74,78,Flat,Mid-Terrace,2017-04-05,E07000110,E14000804,Kent,2017-04-05,marketed sale,60,65,309,273.0,2.7,52,2.4,45.0,45.0,284.0,218.0,144.0,144.0,51.0,dual,N,1st,Y,,2401.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,100.0,0.0,"Electric immersion, off-peak",Average,Poor,(another dwelling below),NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,Portable electric heaters (assumed),,,"Pitched, insulated (assumed)",Good,Good,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,heated corridor,0.0,,,N,natural,"26 Barden Court, St. Lukes Avenue",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2017-04-05 09:54:35,owner-occupied,,,200003720849.0,Address Matched +1607235550112018021219491693980056,Yonder,Maidstone Road,Sutton Valence,ME17 3LS,657036578,D,C,55,80,Bungalow,Detached,2018-02-12,E07000110,E14000700,Kent,2018-02-12,marketed sale,50,79,314,118.0,5.1,55,1.9,122.0,63.0,857.0,589.0,179.0,73.0,92.0,Single,Y,NODATA!,,,2104.0,90.0,double glazing installed before 2002,Normal,2.0,5.0,5.0,6.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Mostly double glazing,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, 270 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 6% of fixed outlets,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"Yonder, Maidstone Road, Sutton Valence",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1976-1982,2018-02-12 19:49:16,owner-occupied,,,200003697188.0,Address Matched +243820060962009031210341249898431,New House Six,Pleasant Valley Lane,East Farleigh,ME15 0BB,3445609568,B,B,81,83,House,Detached,2009-03-11,E07000110,E14000804,Kent,2009-03-12,new dwelling,80,81,115,109.0,3.1,0,2.9,122.0,77.0,354.0,360.0,130.0,130.0,78.61,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,7.0,,SAP05:Hot-Water,,,Average thermal transmittance 0.21 W/m²K,Good,Good,Fully double glazed,Good,Good,Average thermal transmittance 0.27 W/m²K,Very Good,Very Good,SAP05:Secondary-Heating,,,Average thermal transmittance 0.16 W/m²K,Good,Good,SAP05:Main-Heating,,,SAP05:Main-Heating-Controls,,,Low energy lighting in 41% fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.38,,,NO DATA!,"New House Six, Pleasant Valley Lane, East Farleigh",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2009-03-12 10:34:12,,17.0,7.0,, +1733466689062019070214452425928991,"49, Westwood Road",,,ME15 6BG,9270835678,C,B,70,86,House,Mid-Terrace,2019-07-02,E07000110,E14000804,Kent,2019-07-02,marketed sale,68,84,202,86.0,2.8,36,1.2,87.0,60.0,467.0,404.0,101.0,74.0,79.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,56.0,0.0,From main system,Very Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 56% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"49, Westwood Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2019-07-02 14:45:24,owner-occupied,,,200003676171.0,Address Matched +592881326152014121621501098049682,"1a, The Grove",Bearsted,,ME14 4JB,6214683868,C,C,69,77,Bungalow,Detached,2014-12-08,E07000110,E14000700,Kent,2014-12-16,none of the above,74,81,153,105.0,3.0,24,2.0,73.0,73.0,698.0,698.0,117.0,117.0,124.0,Single,N,NODATA!,,,2207.0,100.0,triple glazing,Normal,0.0,4.0,4.0,100.0,0.0,"From main system, plus solar",Average,Very Good,"Solid, insulated",NO DATA!,,Fully triple glazed,Good,Good,"Timber frame, as built, insulated (assumed)",Good,Good,"Room heaters, wood logs",,,"Roof room(s), insulated",Good,Good,"Air source heat pump, underfloor, electric",Poor,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,NO DATA!,,,,Y,natural,"1a, The Grove, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2007 onwards,2014-12-16 21:50:10,owner-occupied,,,10014311684.0,Address Matched +48855044c0275cea15964425c567b8d9c3ca1ea4d2107a7f9c669cb0c1a9bf2c,18 FONTWELL CLOSE,,,ME15 8UY,10001398443,D,B,64,85,House,Semi-Detached,2021-07-16,E07000110,E14000700,Kent,2021-07-16,rental,64,86,269,87.0,2.6,47,0.9,67.0,49.0,499.0,416.0,96.0,53.0,56.0,Single,Y,,,,,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,63.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 63% of fixed outlets,Good,Good,mains gas (not community),0.0,,,2.32,0.0,N,natural,18 FONTWELL CLOSE,Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2021-07-16 15:01:45,Rented (private),8.0,,200003681262.0,Energy Assessor +593394399612011021609160898990587,"23, Bower Lane",,,ME16 8BJ,5707983868,G,F,19,35,House,Mid-Terrace,2011-02-16,E07000110,E14000804,Kent,2011-02-16,marketed sale,34,45,668,518.0,5.5,101,4.3,47.0,47.0,1206.0,850.0,90.0,90.0,54.94,Single,Y,NO DATA!,,,2601.0,0.0,not defined,Normal,0.0,4.0,4.0,40.0,0.0,Gas multipoint,Average,Very Poor,"Solid, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation",Very Poor,Very Poor,"Room heaters, electric",Very Poor,Poor,No thermostatic control of room temperature,Poor,Poor,Low energy lighting in 40% of fixed outlets,Average,Average,electricity - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.24,0.0,N,natural,"23, Bower Lane",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2011-02-16 09:16:08,owner-occupied,,,200003667419.0,Address Matched +474792629842010042808572578502788,"53, Barnhurst Road",Penenden Heath,,ME14 2EL,2851425768,C,C,74,77,Flat,Detached,2010-04-28,E07000110,E14000804,Kent,2010-04-28,rental (social),70,74,245,207.0,2.3,41,1.9,30.0,30.0,372.0,327.0,91.0,79.0,55.97,Single,Y,Ground,N,2.0,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.34,0.0,N,natural,"53, Barnhurst Road, Penenden Heath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1976-1982,2010-04-28 08:57:25,rental (social),,,200003706605.0,Address Matched +284218910922009052017170581298061,"54, Fant Lane",,,ME16 8NN,6808171668,C,C,74,76,Bungalow,Mid-Terrace,2009-05-11,E07000110,E14000804,Kent,2009-05-20,rental (social),71,73,257,237.0,2.0,43,1.9,31.0,22.0,311.0,294.0,69.0,69.0,54.07,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,60.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 60% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.31,0.0,N,natural,"54, Fant Lane",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2009-05-20 17:17:05,rental (social),,,200003674414.0,Address Matched +823293052352012081010163398920101,16 Astley Terrace,Hastings Road,,ME15 7BF,1109280078,B,B,82,82,House,End-Terrace,2012-08-10,E07000110,E14000700,Kent,2012-08-10,new dwelling,85,85,90,90.0,1.5,17,1.5,46.0,46.0,259.0,259.0,86.0,86.0,84.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,11.0,,From main system,Good,Good,Average thermal transmittance 0.12 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.37,,,NO DATA!,"16 Astley Terrace, Hastings Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2012-08-10 10:16:33,,11.0,11.0,10014313967.0,Address Matched +1183795739022014080211281696328814,"24, Hedley Street",,,ME14 1UG,1956336278,E,B,51,82,House,Mid-Terrace,2014-08-02,E07000110,E14000804,Kent,2014-08-02,rental (private),48,81,335,99.0,4.0,64,1.2,66.0,41.0,794.0,478.0,102.0,68.0,63.0,Single,Y,NODATA!,,,2102.0,100.0,double glazing installed before 2002,Normal,1.0,4.0,4.0,38.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,Low energy lighting in 38% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"24, Hedley Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2014-08-02 11:28:16,rental (private),8.0,3.0,200003698930.0,Address Matched +61577609902012082421110147422748,"83, Ware Street",Bearsted,,ME14 4PG,9908204468,D,B,61,81,House,Semi-Detached,2012-08-24,E07000110,E14000700,Kent,2012-08-24,marketed sale,58,80,228,98.0,3.7,44,1.7,81.0,47.0,677.0,514.0,47.0,47.0,84.0,Single,Y,NODATA!,,,2107.0,100.0,double glazing installed before 2002,Normal,2.0,4.0,4.0,27.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 27% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"83, Ware Street, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2012-08-24 21:11:01,owner-occupied,11.0,3.0,200003693723.0,Address Matched +1362141982352015091011375499950338,"75, Murrain Drive",Downswood,,ME15 8XN,3892298378,C,B,72,87,House,Semi-Detached,2015-09-10,E07000110,E14000700,Kent,2015-09-10,marketed sale,70,85,189,80.0,2.6,33,1.1,93.0,52.0,474.0,440.0,89.0,56.0,79.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,20.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 20% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"75, Murrain Drive, Downswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2015-09-10 11:37:54,owner-occupied,,,200003691534.0,Address Matched +141117719512008100313263607089056,1 The Willows,Ulcombe Road,Headcorn,TN27 9QR,632970568,C,C,79,80,House,Detached,2008-10-03,E07000110,E14000700,Kent,2008-10-03,marketed sale,80,81,128,124.0,2.9,19,2.8,98.0,69.0,362.0,366.0,112.0,112.0,152.5,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,8.0,,From main system,Very Good,Very Good,Average thermal transmittance = 0.16 W/m?K,Very Good,Very Good,Fully double glazed,Good,Good,Average thermal transmittance = 0.35 W/m?K,Good,Good,"Room heaters, wood logs",,,Average thermal transmittance = 0.16 W/m?K,Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,Time and temperature zone control,Good,Good,Low energy lighting in 57% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,,,NO DATA!,"1 The Willows, Ulcombe Road, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,England and Wales: 2007 onwards,2008-10-03 13:26:36,,14.0,8.0,10022895449.0,Address Matched +1481096829962017101909355097118853,Flat A,"5, Fuggles Close",Headcorn,TN27 9AE,5927237478,B,B,82,82,Flat,Semi-Detached,2017-10-19,E07000110,E14000700,Kent,2017-10-19,new dwelling,86,86,107,107.0,1.0,19,1.0,41.0,41.0,186.0,186.0,67.0,67.0,52.0,standard tariff,,ground floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Flat A, 5, Fuggles Close, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,NO DATA!,2017-10-19 09:35:50,unknown,15.0,15.0,10093302532.0,Address Matched +266856770442009050521570663019038,"53, Leicester Road",,,ME15 7QJ,6417070668,C,C,73,75,House,Mid-Terrace,2009-04-17,E07000110,E14000700,Kent,2009-05-05,rental (social),69,71,207,191.0,3.2,35,3.0,60.0,45.0,429.0,401.0,111.0,111.0,93.1,Single,Y,NO DATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,66.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 66% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.35,0.0,N,natural,"53, Leicester Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2009-05-05 21:57:06,rental (social),,,200003683980.0,Address Matched +77821666952014032207330997940241,Church Farm Oast,Chartway Street,Sutton Valence,ME17 3HQ,2130675468,D,C,59,79,House,Semi-Detached,2014-03-19,E07000110,E14000700,Kent,2014-03-22,marketed sale,66,84,135,48.0,4.8,30,2.0,153.0,76.0,1211.0,906.0,282.0,180.0,160.0,Single,N,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,5.0,5.0,0.0,0.0,From main system,Poor,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Solid brick, as built, partial insulation (assumed)",Average,Average,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, LPG",Average,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,LPG (not community),0.0,NO DATA!,,,0.0,,natural,"Church Farm Oast, Chartway Street, Sutton Valence",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1976-1982,2014-03-22 07:33:09,owner-occupied,16.0,0.0,200003698301.0,Address Matched +998558367112014030321295091240917,"64, Hastings Road",,,ME15 7SR,9758713178,D,B,64,83,House,Semi-Detached,2014-02-27,E07000110,E14000804,Kent,2014-03-03,assessment for green deal,61,82,206,82.0,3.9,40,1.6,83.0,57.0,725.0,521.0,97.0,69.0,99.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,4.0,4.0,54.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 54% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"64, Hastings Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2014-03-03 21:29:50,owner-occupied,13.0,7.0,200003695486.0,Address Matched +1429695169342016040121100448360898,"14, Busbridge Road",,,ME15 0HY,9377963478,D,A,59,100,House,Semi-Detached,2016-04-01,E07000110,E14000804,Kent,2016-04-01,marketed sale,52,95,274,3.0,5.0,50,0.3,85.0,62.0,912.0,612.0,126.0,75.0,99.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,5.0,5.0,64.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 64% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,2.52,,N,natural,"14, Busbridge Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2016-04-01 21:10:04,owner-occupied,,,200003663684.0,Address Matched +1691345339962019011817334352688651,Ground Floor Flat,La Torre,"Boxley Road, Walderslade",ME5 9JE,5544332678,D,C,65,70,Flat,Detached,2019-01-18,E07000110,E14000700,Kent,2019-01-18,rental (private),63,70,292,234.0,2.4,51,1.9,43.0,43.0,393.0,317.0,123.0,108.0,47.0,Single,N,1st,N,,2307.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,1.0,83.0,0.0,Community scheme,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Average,Average,Portable electric heaters (assumed),,,(another dwelling above),,,Community scheme,Good,Good,"Flat rate charging, TRVs",Average,Average,Low energy lighting in 83% of fixed outlets,Very Good,Very Good,mains gas (community),0.0,no corridor,,,,N,natural,"Ground Floor Flat, La Torre, Boxley Road, Walderslade",Maidstone,Faversham and Mid Kent,CHATHAM,England and Wales: 1967-1975,2019-01-18 17:33:43,rental (private),,,10014314774.0,Address Matched +1325318641952015052617542193250539,"34, Raymer Road",Penenden Heath,,ME14 2JQ,5914136378,D,B,60,83,House,Detached,2015-05-26,E07000110,E14000804,Kent,2015-05-26,marketed sale,52,80,263,100.0,5.1,46,2.0,72.0,72.0,868.0,580.0,200.0,78.0,111.0,dual,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,6.0,6.0,100.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"34, Raymer Road, Penenden Heath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2015-05-26 17:54:21,owner-occupied,,,200003706990.0,Address Matched +1758216319302019121209020266719428,Flat 5,"13, Francis Moody Close",Harrietsham,ME17 1WH,1329917678,B,B,85,85,Flat,Semi-Detached,2019-12-12,E07000110,E14000700,Kent,2019-12-12,new dwelling,89,89,72,72.0,0.9,13,0.9,62.0,62.0,158.0,158.0,70.0,70.0,71.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.20 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Flat 5, 13, Francis Moody Close, Harrietsham",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2019-12-12 09:02:02,unknown,10.0,10.0,10094442230.0,Address Matched +242208578512009031021430208910159,"113, Bower Street",,,ME16 8BB,1978888568,E,C,53,70,House,Mid-Terrace,2009-03-10,E07000110,E14000804,Kent,2009-03-10,rental (private),47,65,403,260.0,4.6,67,3.0,62.0,33.0,599.0,427.0,144.0,96.0,68.74,Single,Y,NO DATA!,,,2107.0,10.0,double glazing installed before 2002,Normal,2.0,3.0,3.0,10.0,0.0,From main system,Average,Good,"Suspended, no insulation (assumed)",,,Partial double glazing,Very Poor,Very Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Average,Good,"Programmer, TRVs and bypass",Poor,Poor,Low energy lighting in 10% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.53,0.0,N,natural,"113, Bower Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2009-03-10 21:43:02,rental (private),,,200003667192.0,Address Matched +279553250142009050616433666110268,"7, Leicester Road",,,ME15 7QA,6111351668,C,C,74,77,House,Semi-Detached,2009-05-06,E07000110,E14000700,Kent,2009-05-06,rental (social),72,74,201,184.0,2.6,33,2.4,60.0,38.0,354.0,336.0,100.0,100.0,79.04,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,40.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"System built, with internal insulation",Good,Good,,,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 40% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.49,0.0,N,natural,"7, Leicester Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2009-05-06 16:43:36,rental (social),,,200003712849.0,Address Matched +1258336847152015011810291895950535,"179, Linton Road",Loose,,ME15 0AS,5551751378,F,C,25,72,House,Detached,2015-01-17,E07000110,E14000804,Kent,2015-01-18,marketed sale,14,45,875,395.0,9.9,148,4.5,80.0,49.0,1360.0,710.0,261.0,83.0,67.0,Unknown,N,NODATA!,,,2401.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,38.0,0.0,"Electric immersion, off-peak",Very Poor,Poor,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Flat, no insulation (assumed)",Very Poor,Very Poor,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 38% of fixed outlets,Average,Average,electricity (not community),0.0,NO DATA!,,,,N,natural,"179, Linton Road, Loose",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2015-01-18 10:29:18,owner-occupied,,,200003663299.0,Address Matched +368462591132009092311180656268404,Flat 2 The Square,"4, Square Hill Road",,ME15 7TL,9456477668,D,D,61,62,Flat,Semi-Detached,2009-09-22,E07000110,E14000804,Kent,2009-09-23,new dwelling,70,70,234,231.0,2.9,35,2.8,70.0,47.0,453.0,462.0,149.0,149.0,81.0,off-peak 7 hour,,ground floor,,,,,NO DATA!,NO DATA!,,,,,,From main system,Poor,Poor,Average thermal transmittance 0.21 W/m?K,Good,Good,Fully double glazed,Good,Good,Average thermal transmittance 0.23 W/m?K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, electric",Very Poor,Poor,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 50% of fixed outlets,Good,Good,"Electricity: electricity, unspecified tariff",0.0,NO DATA!,,2.4,,,NO DATA!,"Flat 2 The Square, 4, Square Hill Road",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2009-09-23 11:18:06,,,,10014308783.0,Address Matched +471612334032010041918462375968202,2 Fairbourne Heath Cottages,Windmill Hill,Harrietsham,ME17 1LP,3205205768,E,E,46,46,House,Mid-Terrace,2010-04-19,E07000110,E14000700,Kent,2010-04-19,marketed sale,69,69,207,203.0,2.9,37,2.8,60.0,40.0,724.0,733.0,276.0,276.0,72.6,Single,N,NO DATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,3.0,3.0,50.0,1.0,From main system,Very Poor,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, bottled gas",Very Poor,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,bottled LPG,0.0,NO DATA!,,2.18,0.0,N,natural,"2 Fairbourne Heath Cottages, Windmill Hill, Harrietsham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2010-04-19 18:46:23,owner-occupied,,,200003702183.0,Address Matched +275000820402009072317264369112628,33 Tovil Green Court,Tovil Green Lane,Tovil,ME15 6NE,8480221668,B,B,83,84,Flat,NO DATA!,2009-07-22,E07000110,E14000804,Kent,2009-07-23,new dwelling,85,86,123,118.0,1.1,20,1.1,44.0,32.0,179.0,180.0,91.0,91.0,55.2,standard tariff,,top floor,,,,,NO DATA!,NO DATA!,,,,5.0,,From main system,Good,Very Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.31 W/m?K,Good,Good,,,,Average thermal transmittance 0.16 W/m?K,Good,Good,Community scheme,Good,Very Good,"Unit charging, programmer and TRVs",Good,Good,Low energy lighting in 63% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.42,,,NO DATA!,"33 Tovil Green Court, Tovil Green Lane, Tovil",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2009-07-23 17:26:43,,8.0,5.0,10014306984.0,Address Matched +1674288209642018102703305269182968,"12, Beech Drive",,,ME16 0AH,1603901678,D,C,57,79,House,Semi-Detached,2018-10-26,E07000110,E14000804,Kent,2018-10-27,marketed sale,51,76,280,117.0,4.4,51,1.9,94.0,60.0,763.0,540.0,100.0,67.0,86.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,44.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 44% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"12, Beech Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2018-10-27 03:30:52,owner-occupied,,,200003658201.0,Address Matched +572272320352010121410353792909187,9 Gordon Court,Well Street,Loose,ME15 0QF,1735022868,D,D,60,65,Bungalow,Semi-Detached,2010-12-14,E07000110,E14000804,Kent,2010-12-14,rental (social),49,52,333,301.0,3.9,72,3.6,58.0,29.0,463.0,452.0,148.0,121.0,54.89,Single,N,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,2.0,2.0,0.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, oil",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,oil - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.48,0.0,N,natural,"9 Gordon Court, Well Street, Loose",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2010-12-14 10:35:37,rental (social),,,200003663539.0,Address Matched +1676844438252018110716100192089366,"12, James Street",,,ME14 2UR,3628821678,D,B,64,82,House,Semi-Detached,2018-11-07,E07000110,E14000804,Kent,2018-11-07,marketed sale,60,78,265,121.0,3.0,47,1.4,79.0,52.0,508.0,446.0,95.0,70.0,64.0,dual,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,50.0,1.0,From main system,Very Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,"Room heaters, mains gas",,,"Pitched, 270 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"12, James Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2018-11-07 16:10:01,owner-occupied,,,200003703532.0,Address Matched +522402769042018082117305277882898,1 Saynden Cottage,Five Oak Lane,Staplehurst,TN12 0HX,66268768,E,A,42,96,House,Semi-Detached,2018-08-21,E07000110,E14000804,Kent,2018-08-21,rental (private),39,88,277,-13.0,6.4,66,0.8,83.0,83.0,780.0,400.0,147.0,118.0,98.0,dual,N,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,4.0,4.0,4.0,88.0,0.0,From main system,Average,Average,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Poor,Poor,"Room heaters, wood logs",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, oil",Average,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 88% of fixed outlets,Very Good,Very Good,oil (not community),0.0,NO DATA!,,,,N,natural,"1 Saynden Cottage, Five Oak Lane, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: before 1900,2018-08-21 17:30:52,rental (private),,,200003709378.0,Address Matched +86573736652013052606572696270146,"15, Netley Close",,,ME14 5SA,1644665468,C,B,70,88,House,End-Terrace,2013-05-25,E07000110,E14000804,Kent,2013-05-26,marketed sale,70,90,178,44.0,2.5,34,0.7,66.0,43.0,427.0,333.0,96.0,59.0,74.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,45.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 45% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"15, Netley Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2013-05-26 06:57:26,rental (private),11.0,5.0,200003672578.0,Address Matched +1261324519262015012620111691868305,12 The Abbots,Forge Lane,Leeds,ME17 1TQ,927181378,C,B,77,88,House,Semi-Detached,2015-01-26,E07000110,E14000700,Kent,2015-01-26,marketed sale,76,87,135,61.0,2.6,24,1.2,124.0,68.0,419.0,431.0,117.0,68.0,109.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,18.0,0.0,From main system,Good,Good,"Suspended, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Roof room(s), insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 18% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"12 The Abbots, Forge Lane, Leeds",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2007 onwards,2015-01-26 20:11:16,owner-occupied,,,10022901929.0,Address Matched +1660474719802018090418103865080348,"2, Aldon Close",,,ME14 5QF,1860110678,C,B,71,87,House,End-Terrace,2018-09-04,E07000110,E14000804,Kent,2018-09-04,rental (private),70,86,193,72.0,2.5,34,1.0,81.0,54.0,418.0,367.0,95.0,63.0,74.0,Single,Y,NODATA!,,,2107.0,100.0,double glazing installed during or after 2002,Normal,1.0,4.0,4.0,50.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"2, Aldon Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2018-09-04 18:10:38,rental (private),,,200003671486.0,Address Matched +1751803352152019091721175097910765,"31, Whitebeam Drive",Coxheath,,ME17 4QY,7598276678,D,C,66,80,House,Semi-Detached,2019-09-17,E07000110,E14000804,Kent,2019-09-17,marketed sale,63,78,211,116.0,4.1,37,2.3,125.0,78.0,796.0,685.0,89.0,59.0,112.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,2.0,6.0,6.0,40.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, limited insulation (assumed)",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 40% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"31, Whitebeam Drive, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1976-1982,2019-09-17 21:17:50,owner-occupied,,,200003672339.0,Address Matched +581116749932011011716430659968300,Flat 3,"20, Ashford Road",,ME14 5BH,4089392868,E,D,41,58,Flat,Semi-Detached,2011-01-17,E07000110,E14000804,Kent,2011-01-17,rental (private),40,45,651,580.0,4.2,98,3.7,44.0,26.0,447.0,402.0,282.0,109.0,42.8,dual,N,1st,N,3.0,2401.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,33.0,0.0,"Electric immersion, off-peak",Very Poor,Poor,(other premises below),,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,Portable electric heaters,,,(another dwelling above),,,Electric storage heaters,Poor,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 33% of fixed outlets,Average,Average,electricity - this is for backwards compatibility only and should not be used,0.0,unheated corridor,7.7,2.9,0.0,N,natural,"Flat 3, 20, Ashford Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2011-01-17 16:43:06,rental (private),,,200003689407.0,Address Matched +873089539302018021413595506489948,"77, Robins Close",Lenham,,ME17 2LE,3354534078,D,B,63,85,House,Semi-Detached,2018-02-14,E07000110,E14000700,Kent,2018-02-14,RHI application,67,86,230,81.0,2.7,39,0.9,82.0,49.0,383.0,319.0,363.0,230.0,69.0,Single,Y,NODATA!,,,2204.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,33.0,1.0,From main system,Very Poor,Poor,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Average,Average,"Room heaters, wood logs",,,"Pitched, 270 mm loft insulation",Good,Good,"Air source heat pump, radiators, electric",Good,Very Good,Programmer and room thermostat,Average,Average,Low energy lighting in 33% of fixed outlets,Average,Average,electricity (not community),0.0,NO DATA!,,,,N,natural,"77, Robins Close, Lenham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2018-02-14 13:59:55,owner-occupied,,,200003707286.0,Address Matched +62603253312019062722003990210359,"35, Tennison Way",,,ME15 9GE,3923308568,C,A,79,94,House,Mid-Terrace,2019-06-27,E07000110,E14000700,Kent,2019-06-27,marketed sale,82,96,136,10.0,1.3,24,0.1,45.0,45.0,227.0,227.0,83.0,54.0,54.0,Unknown,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"35, Tennison Way",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2003-2006,2019-06-27 22:00:39,owner-occupied,,,10022895445.0,Address Matched +1772110369032020010912322435078909,"9, Barton Drive",Boughton Monchelsea,,ME17 4SU,6995918678,B,A,84,97,House,Semi-Detached,2020-01-09,E07000110,E14000804,Kent,2020-01-09,new dwelling,87,99,82,-8.0,1.1,14,-0.1,64.0,64.0,192.0,192.0,74.0,44.0,77.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.20 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"9, Barton Drive, Boughton Monchelsea",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2020-01-09 12:32:24,unknown,14.0,14.0,10094442568.0,Address Matched +1192054689962014081815321296588784,"15, Holmesdale Close",Loose,,ME15 0BQ,8981886278,B,A,84,94,House,End-Terrace,2014-08-18,E07000110,E14000804,Kent,2014-08-18,new dwelling,86,96,87,16.0,1.5,15,0.3,61.0,61.0,269.0,269.0,85.0,50.0,97.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.12 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.22 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"15, Holmesdale Close, Loose",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2014-08-18 15:32:12,owner-occupied,15.0,15.0,10014315583.0,Address Matched +1564183519062017080213565893128133,Flat 3,Barker Chambers,Barker Road,ME16 8SF,3992123578,C,C,69,69,Flat,NO DATA!,2017-08-02,E07000110,E14000804,Kent,2017-08-02,new dwelling,72,72,268,268.0,1.4,45,1.4,27.0,27.0,143.0,143.0,258.0,258.0,31.0,off-peak 7 hour,,ground floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Very Poor,Poor,Average thermal transmittance 0.17 W/m+é-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.21 W/m+é-¦K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, electric",Very Poor,Very Poor,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"Flat 3, Barker Chambers, Barker Road",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2017-08-02 13:56:58,unknown,12.0,12.0,10093305615.0,Address Matched +983919769022013080411274942098697,"13, Barned Court",,,ME16 9EL,9434612178,E,C,54,79,House,Semi-Detached,2013-08-01,E07000110,E14000804,Kent,2013-08-04,marketed sale,49,77,284,113.0,4.7,55,1.9,80.0,50.0,749.0,565.0,193.0,74.0,86.0,Single,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,38.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 38% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"13, Barned Court",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2013-08-04 11:27:49,owner-occupied,16.0,6.0,200003665370.0,Address Matched +546523329902010092910364688002618,"34, Aspian Drive",Coxheath,,ME17 4JZ,1957920868,C,C,73,77,House,End-Terrace,2010-09-29,E07000110,E14000804,Kent,2010-09-29,marketed sale,68,73,253,214.0,2.4,42,2.0,34.0,34.0,386.0,325.0,104.0,104.0,56.56,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,86.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, partial insulation (assumed)",Average,Average,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 86% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.3,0.0,N,natural,"34, Aspian Drive, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1976-1982,2010-09-29 10:36:46,owner-occupied,,,200003713009.0,Address Matched +778705569902012042316144591722278,"56, Felderland Close",,,ME15 9YD,8937667968,D,B,64,89,House,Mid-Terrace,2012-04-23,E07000110,E14000700,Kent,2012-04-23,marketed sale,62,91,219,38.0,3.2,42,0.6,61.0,42.0,532.0,307.0,93.0,58.0,76.0,Single,Y,NODATA!,,,2102.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,56.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,Low energy lighting in 56% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"56, Felderland Close",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2012-04-23 16:14:45,owner-occupied,9.0,5.0,200003682838.0,Address Matched +17112389132009012114383278068006,201 Wallis Place,Hart Street,,ME16 8FE,8618088468,B,B,88,88,Flat,Detached,2009-01-02,E07000110,E14000804,Kent,2009-01-21,new dwelling,88,88,95,95.0,1.0,0,1.0,29.0,29.0,122.0,122.0,70.0,70.0,0.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,6.0,,SAP05:Hot-Water,,,(other premises below),,,Fully double glazed,Good,Good,Average thermal transmittance 0.32 W/m²K,Good,Good,SAP05:Secondary-Heating,,,Average thermal transmittance 0.00 W/m²K,Very Good,Very Good,SAP05:Main-Heating,,,SAP05:Main-Heating-Controls,,,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,-1.0,NO DATA!,,,,,NO DATA!,"201 Wallis Place, Hart Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2009-01-21 14:38:32,,6.0,6.0,10022900809.0,Address Matched +49252f208e796e79e87387943cec5e8b59fae6601c1fb995fd736070142b6b31,FLAT 2,TRURO HOUSE,CAMBRIDGE CRESCENT,ME15 7NW,10001640243,D,C,66,75,Flat,Semi-Detached,2021-07-21,E07000110,E14000700,Kent,2021-07-21,rental,63,75,265,178.0,2.8,47,1.9,97.0,53.0,462.0,325.0,85.0,86.0,60.0,Single,Y,01,Y,,,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,17.0,0.0,From main system,Good,Good,(another dwelling below),,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 17% of fixed outlets,Poor,Poor,mains gas (not community),0.0,no corridor,,2.38,0.0,N,natural,"FLAT 2, TRURO HOUSE, CAMBRIDGE CRESCENT",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2021-07-21 16:50:15,Rented (social),6.0,,200003713102.0,Energy Assessor +1755286499242019100316443863610278,"22, Dover Street",,,ME16 8LE,1252996678,C,B,71,89,House,Mid-Terrace,2019-10-03,E07000110,E14000804,Kent,2019-10-03,marketed sale,69,89,184,50.0,2.8,32,0.8,93.0,64.0,392.0,315.0,162.0,79.0,85.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,55.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 55% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"22, Dover Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2019-10-03 16:44:38,owner-occupied,,,200003655519.0,Address Matched +1315269938912015042806281895250230,Sundowner,Charlton Lane,West Farleigh,ME15 0NL,2079855378,D,C,68,73,Bungalow,Detached,2015-04-24,E07000110,E14000804,Kent,2015-04-28,marketed sale,59,66,135,109.0,5.8,37,4.7,107.0,79.0,1018.0,865.0,131.0,103.0,158.0,Unknown,N,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,6.0,6.0,64.0,0.0,"From main system, plus solar",Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, insulated at rafters",Average,Average,"Boiler and radiators, oil",Average,Average,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 64% of fixed outlets,Good,Good,oil (not community),0.0,NO DATA!,,,,Y,natural,"Sundowner, Charlton Lane, West Farleigh",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2015-04-28 06:28:18,owner-occupied,,,200003663886.0,Address Matched +1741471177152019080608142199010066,"36, Trevor Drive",,,ME16 0QR,601795678,D,B,64,85,Bungalow,Semi-Detached,2019-08-05,E07000110,E14000804,Kent,2019-08-06,marketed sale,59,84,276,90.0,3.0,49,1.0,59.0,59.0,480.0,377.0,141.0,64.0,62.0,Unknown,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,1.0,3.0,3.0,80.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, 270 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"36, Trevor Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2019-08-06 08:14:21,owner-occupied,,,200003659245.0,Address Matched +267686921112012120520145197029165,"24, Oak Farm Gardens",Headcorn,,TN27 9TZ,1541170668,C,B,69,82,House,Detached,2012-12-05,E07000110,E14000700,Kent,2012-12-05,FiT application,70,82,155,87.0,4.2,27,2.3,106.0,76.0,771.0,652.0,117.0,81.0,158.0,dual,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,8.0,8.0,60.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, partial insulation (assumed)",Average,Average,"Room heaters, wood logs",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 60% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"24, Oak Farm Gardens, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,England and Wales: 1976-1982,2012-12-05 20:14:51,owner-occupied,20.0,12.0,200003699763.0,Address Matched +1772559929842019121314593660819598,"4, Drawbridge Close",,,ME15 7PD,3830428678,C,B,74,89,House,Mid-Terrace,2019-12-11,E07000110,E14000700,Kent,2019-12-13,rental (social),73,89,179,56.0,2.2,32,0.7,59.0,59.0,351.0,310.0,120.0,75.0,70.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Suspended, limited insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"4, Drawbridge Close",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1996-2002,2019-12-13 14:59:36,rental (social),,,10014306187.0,Address Matched +1059032801812013121108571295979210,"17, Tollgate Way",Sandling,,ME14 3DF,2080157178,D,B,66,81,House,Detached,2013-12-10,E07000110,E14000700,Kent,2013-12-11,marketed sale,64,80,204,98.0,3.1,39,1.6,69.0,48.0,527.0,485.0,125.0,78.0,80.0,Unknown,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,56.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 56% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"17, Tollgate Way, Sandling",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1991-1995,2013-12-11 08:57:12,owner-occupied,9.0,5.0,200003672683.0,Address Matched +590987282352013070207504397070382,"487, Tonbridge Road",,,ME16 9LH,3211273868,D,B,68,89,House,Semi-Detached,2013-07-01,E07000110,E14000804,Kent,2013-07-02,marketed sale,67,91,186,39.0,2.9,36,0.7,47.0,47.0,574.0,346.0,48.0,48.0,81.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"487, Tonbridge Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2013-07-02 07:50:43,owner-occupied,11.0,11.0,200003681713.0,Address Matched +1226265570432014102513143627278194,"26, Charlbury Close",,,ME16 8TE,7497139278,E,B,53,84,House,Semi-Detached,2014-10-25,E07000110,E14000804,Kent,2014-10-25,none of the above,52,85,283,72.0,4.2,54,1.1,74.0,49.0,866.0,463.0,100.0,71.0,77.0,Single,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,50.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,"Pitched, no insulation",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"26, Charlbury Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2014-10-25 13:14:36,owner-occupied,12.0,6.0,200003657578.0,Address Matched +1641741433212018061914264197980851,"7, Underwood Close",,,ME15 6SR,8132378578,D,B,66,83,House,Mid-Terrace,2018-06-18,E07000110,E14000804,Kent,2018-06-19,marketed sale,65,83,234,99.0,2.9,41,1.2,63.0,63.0,522.0,438.0,118.0,76.0,70.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,75.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"7, Underwood Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2018-06-19 14:26:41,owner-occupied,,,200003664853.0,Address Matched +1378251709002015102619324043052468,"40, Hayle Road",,,ME15 6PG,4036500478,G,C,15,78,House,End-Terrace,2015-10-26,E07000110,E14000804,Kent,2015-10-26,ECO assessment,26,77,618,143.0,7.6,106,1.8,85.0,48.0,1936.0,621.0,96.0,50.0,72.0,Single,Y,NODATA!,,,2601.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,1.0,22.0,0.0,Gas multipoint,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, electric",Very Poor,Poor,No thermostatic control of room temperature,Poor,Poor,Low energy lighting in 22% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"40, Hayle Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2015-10-26 19:32:40,owner-occupied,,,200003681674.0,Address Matched +496137079002015021714115970659138,"45, Downs View Road",Penenden Heath,,ME14 2JF,2024476768,E,B,51,83,Bungalow,Semi-Detached,2015-02-17,E07000110,E14000804,Kent,2015-02-17,marketed sale,44,80,361,103.0,5.2,64,1.5,96.0,52.0,927.0,489.0,131.0,82.0,82.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,4.0,4.0,17.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 17% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"45, Downs View Road, Penenden Heath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2015-02-17 14:11:59,owner-occupied,,,200003707781.0,Address Matched +489738955052010052408224392200576,"3, Hewitt Close",Allington,,ME16 0UJ,5612526768,C,C,77,80,House,Mid-Terrace,2010-05-24,E07000110,E14000804,Kent,2010-05-24,marketed sale,74,78,198,167.0,2.1,33,1.8,36.0,36.0,301.0,275.0,133.0,106.0,64.8,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,"Suspended, limited insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, mains gas",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.3,0.0,N,natural,"3, Hewitt Close, Allington",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2010-05-24 08:22:43,owner-occupied,,,10012891003.0,Address Matched +4950fddbda546afc8f0158f88ed78bd6a0876a26f18bda53cfc660c3f44a6b90,Oak Barn,Benover Road,Yalding,ME18 6AX,10001670103,B,B,84,87,House,Detached,2021-09-29,E07000110,E14000804,Kent,2021-09-29,new dwelling,85,88,65,50.0,4.2,11,3.2,163.0,163.0,1223.0,1223.0,148.0,148.0,377.0,standard tariff,,,N,,,100.0,,,,,,100.0,0.0,From main system,Good,Very Good,Average thermal transmittance 0.08 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.10 W/m-¦K,Very Good,Very Good,"Room heaters, wood logs",,,Average thermal transmittance 0.14 W/m-¦K,Very Good,Very Good,"Ground source heat pump, underfloor, electric",Very Good,Very Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",0.0,,,2.25,,,,"Oak Barn, Benover Road, Yalding",Maidstone,Maidstone and The Weald,MAIDSTONE,2016,2021-09-29 09:35:47,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,24.0,,200003661371.0,Address Matched +314224335252019062115435999210964,"18, Chillington Street",,,ME14 2RT,9423593668,C,B,72,89,House,Mid-Terrace,2019-06-21,E07000110,E14000804,Kent,2019-06-21,rental (private),71,89,183,49.0,2.5,32,0.7,81.0,57.0,428.0,331.0,81.0,52.0,77.0,Single,Y,NODATA!,,,2107.0,100.0,double glazing installed before 2002,Normal,1.0,6.0,6.0,58.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Sandstone or limestone, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 58% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"18, Chillington Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2019-06-21 15:43:59,rental (private),,,200003669601.0,Address Matched +1209054129152016052722211790260524,"65, Douglas Road",,,ME16 8ER,5427908278,E,B,50,83,House,Semi-Detached,2016-05-27,E07000110,E14000804,Kent,2016-05-27,ECO assessment,42,80,369,104.0,5.5,65,1.6,62.0,62.0,1050.0,504.0,109.0,73.0,84.0,Single,Y,NODATA!,,,2103.0,100.0,"double glazing, unknown install date",Normal,1.0,4.0,4.0,88.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Room thermostat only,Poor,Poor,Low energy lighting in 88% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,2.68,,N,natural,"65, Douglas Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2016-05-27 22:21:17,owner-occupied,,,200003667772.0,Address Matched +49694ede6219f8858866221f0a7d9a3543795ca86225d7aae57d4e80da5fca7c,44 Leonard Gould Way,Loose,,ME15 9FX,10001570169,C,B,80,85,House,Detached,2021-09-27,E07000110,E14000804,Kent,2021-09-28,marketed sale,76,81,114,88.0,4.5,20,3.5,127.0,127.0,725.0,725.0,108.0,108.0,225.0,Single,Y,,,,,100.0,double glazing installed during or after 2002,Normal,3.0,9.0,9.0,100.0,0.0,From main system,Good,Good,"Suspended, insulated (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Very Good,Very Good,"Room heaters, mains gas",,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.42,0.0,N,natural,"44 Leonard Gould Way, Loose",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2012 onwards,2021-09-28 04:58:29,Owner-occupied,32.0,,10014311161.0,Energy Assessor +944741509022013060511572859448327,"14, Stockbury Drive",,,ME16 0RW,2597049078,D,B,65,89,House,End-Terrace,2013-06-04,E07000110,E14000804,Kent,2013-06-05,marketed sale,65,91,235,40.0,2.4,45,0.5,56.0,33.0,424.0,328.0,92.0,50.0,54.0,Unknown,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,29.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 29% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"14, Stockbury Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1991-1995,2013-06-05 11:57:28,owner-occupied,7.0,2.0,200003662332.0,Address Matched +109326479262019012809352158058371,34 Stanhope House,Rockwell Court,Tovil,ME15 6FP,7573748468,C,B,78,84,Flat,End-Terrace,2019-01-25,E07000110,E14000804,Kent,2019-01-28,marketed sale,74,73,180,182.0,2.2,30,2.2,60.0,67.0,275.0,180.0,215.0,170.0,73.0,Unknown,N,2nd,N,,2603.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,100.0,0.0,"Electric immersion, off-peak",Poor,Poor,(another dwelling below),NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Room heaters, electric",Very Poor,Poor,Programmer and appliance thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,unheated corridor,1.14,,,N,natural,"34 Stanhope House, Rockwell Court, Tovil",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2019-01-28 09:35:21,owner-occupied,,,10022901551.0,Address Matched +386235185112009102321203000219160,"49, Douglas Road",,,ME16 8ER,1085509668,E,D,53,60,House,Semi-Detached,2009-10-23,E07000110,E14000804,Kent,2009-10-23,rental (private),46,52,343,296.0,6.8,57,5.9,94.0,60.0,990.0,882.0,129.0,111.0,118.94,Single,Y,NO DATA!,,,2106.0,95.0,double glazing installed during or after 2002,Normal,2.0,6.0,6.0,45.0,4.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Mostly double glazing,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 45% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,,0.0,N,natural,"49, Douglas Road",Maidstone,Maidstone and The Weald,MAIDSTONE,,2009-10-23 21:20:30,rental (private),,,200003667764.0,Address Matched +984478419942013080818193612270988,"7, Kings Walk",Holland Road,,ME14 1GQ,6936712178,C,C,70,80,Flat,Enclosed Mid-Terrace,2013-08-08,E07000110,E14000804,Kent,2013-08-08,marketed sale,64,69,233,199.0,2.9,41,2.5,95.0,52.0,381.0,223.0,156.0,110.0,71.0,dual,N,Ground,N,,2602.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,0.0,0.0,"Electric immersion, off-peak",Poor,Very Poor,"Solid, limited insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Room heaters, electric",Poor,Very Poor,Appliance thermostats,Good,Good,No low energy lighting,Very Poor,Very Poor,electricity (not community),0.0,heated corridor,,,0.0,,natural,"7, Kings Walk, Holland Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2013-08-08 18:19:36,owner-occupied,12.0,0.0,200003655115.0,Address Matched +828453569262012082312082091178092,18 Astley Terrace,Hastings Road,,ME15 7BF,9955611078,B,B,83,83,House,Mid-Terrace,2012-08-23,E07000110,E14000700,Kent,2012-08-23,new dwelling,86,86,87,87.0,1.4,17,1.4,51.0,51.0,242.0,242.0,86.0,86.0,83.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,9.0,,From main system,Good,Good,Average thermal transmittance 0.12 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.37,,,NO DATA!,"18 Astley Terrace, Hastings Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2012-08-23 12:08:20,,9.0,9.0,10014313969.0,Address Matched +598513139202016120722275285460298,"4, Wilsons Lane",East Farleigh,,ME15 0LU,1291534868,E,A,54,105,House,End-Terrace,2016-12-01,E07000110,E14000804,Kent,2016-12-07,rental (social),45,97,237,-61.0,5.4,62,0.1,57.0,57.0,616.0,356.0,187.0,78.0,87.0,Single,N,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,100.0,0.0,From main system,Poor,Poor,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, partial insulation (assumed)",Average,Average,,,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, oil",Poor,Average,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,oil (not community),0.0,NO DATA!,,,,N,natural,"4, Wilsons Lane, East Farleigh",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1976-1982,2016-12-07 22:27:52,rental (social),,,200003728007.0,Address Matched +762765527232012031821383676968202,"8, Victoria Street",,,ME16 8HY,2266256968,D,D,56,66,House,Mid-Terrace,2012-03-16,E07000110,E14000804,Kent,2012-03-18,rental (private),56,68,292,210.0,4.2,50,3.0,69.0,46.0,796.0,594.0,94.0,85.0,83.68,Single,Y,NODATA!,,,2106.0,85.0,double glazing installed before 2002,Normal,1.0,3.0,3.0,50.0,0.0,From main system,Good,Good,"To unheated space, uninsulated (assumed)",,,Mostly double glazing,Poor,Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, no insulation",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,2.35,0.0,,natural,"8, Victoria Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2012-03-18 21:38:36,rental (private),14.0,7.0,200003667923.0,Address Matched +1390743769532015112717581214278398,"10, The Millers",Lenham,,ME17 2LW,6894390478,C,B,79,89,House,Semi-Detached,2015-11-27,E07000110,E14000700,Kent,2015-11-27,FiT application,78,88,123,58.0,2.3,22,1.1,68.0,68.0,405.0,405.0,114.0,75.0,107.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"10, The Millers, Lenham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2007 onwards,2015-11-27 17:58:12,owner-occupied,,,10014306119.0,Address Matched +659992849222011072908404998488959,Homestead Farm,Yelsted Road,Yelsted,ME9 7XG,5975488868,D,D,57,66,House,Detached,2011-07-28,E07000110,E14000700,Kent,2011-07-29,rental (private),48,59,209,163.0,11.0,48,8.3,135.0,85.0,1698.0,1294.0,232.0,227.0,133.69,Single,N,NODATA!,,,2111.0,60.0,double glazing installed before 2002,Normal,1.0,8.0,8.0,40.0,0.0,Oil range cooker,Poor,Poor,"Solid, no insulation (assumed)",,,Partial double glazing,Poor,Poor,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, wood logs",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, oil",Average,Average,TRVs and bypass,Average,Average,Low energy lighting in 40% of fixed outlets,Average,Average,oil (not community),0.0,NO DATA!,,2.43,0.0,,natural,"Homestead Farm, Yelsted Road, Yelsted",Maidstone,Faversham and Mid Kent,SITTINGBOURNE,England and Wales: 1991-1995,2011-07-29 08:40:49,rental (private),20.0,8.0,10014307862.0,Address Matched +543264489262010092122162970398760,"8, Cambridge Way",,,ME15 7QW,6761800868,B,B,82,84,Flat,Enclosed End-Terrace,2010-09-21,E07000110,E14000700,Kent,2010-09-21,rental (social),82,83,143,134.0,1.4,24,1.3,63.0,35.0,207.0,210.0,108.0,108.0,60.39,Unknown,Y,1st,N,3.0,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,20.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Good,Good,"System built, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 20% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,unheated corridor,4.9,2.29,0.0,N,natural,"8, Cambridge Way",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1996-2002,2010-09-21 22:16:29,rental (social),,,10022893891.0,Address Matched +557216409302010102516152181102158,5 Victoria Court,Gallants Lane,East Farleigh,ME15 0BW,7372501868,C,C,73,73,Bungalow,Semi-Detached,2010-10-25,E07000110,E14000804,Kent,2010-10-25,new dwelling,81,81,169,169.0,1.5,26,1.5,33.0,33.0,220.0,220.0,170.0,170.0,59.54,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,,From main system,Poor,Good,Average thermal transmittance 0.18 W/m?K,Very Good,Very Good,Fully double glazed,Good,Good,Average thermal transmittance 0.35 W/m?K,Good,Good,,,,Average thermal transmittance 0.15 W/m?K,Good,Good,"Air source heat pump, radiators, electric",Poor,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",0.0,NO DATA!,,2.4,,,NO DATA!,"5 Victoria Court, Gallants Lane, East Farleigh",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2010-10-25 16:15:21,,,,10014309439.0,Address Matched +1809413712922020072315095950098830,"11, Andover Walk",,,ME15 8UL,3585190778,D,B,67,84,House,End-Terrace,2020-07-11,E07000110,E14000700,Kent,2020-07-23,rental (private),64,81,230,106.0,3.3,40,1.6,132.0,66.0,516.0,466.0,131.0,79.0,82.0,Single,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"11, Andover Walk",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2020-07-23 15:09:59,rental (private),,,200003720689.0,Address Matched +1147937385112014053013013297240626,Antrim,Ulcombe Road,Langley,ME17 3JE,6627573278,D,B,60,84,Bungalow,Detached,2014-05-28,E07000110,E14000700,Kent,2014-05-30,marketed sale,56,83,234,77.0,4.2,45,1.4,82.0,55.0,690.0,480.0,188.0,78.0,93.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,50.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"Antrim, Ulcombe Road, Langley",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2014-05-30 13:01:32,owner-occupied,8.0,4.0,200003697760.0,Address Matched +182394859442013110115362655370598,"37, Chillington Street",,,ME14 2RT,6444953568,E,C,54,72,House,Mid-Terrace,2013-11-01,E07000110,E14000804,Kent,2013-11-01,marketed sale,46,64,291,167.0,4.8,62,2.9,62.0,46.0,779.0,677.0,116.0,78.0,78.0,Single,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,67.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, coal",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 67% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"37, Chillington Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2013-11-01 15:36:26,owner-occupied,9.0,6.0,200003669655.0,Address Matched +1306274999702015040220542634450528,"71, Marion Crescent",,,ME15 7EH,1776894378,E,C,47,74,House,Detached,2015-04-02,E07000110,E14000700,Kent,2015-04-02,marketed sale,39,67,324,152.0,10.0,60,4.8,161.0,82.0,1812.0,1099.0,146.0,87.0,169.0,Single,Y,NODATA!,,,2104.0,90.0,double glazing installed before 2002,Normal,1.0,7.0,7.0,5.0,2.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Mostly double glazing,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 5% of fixed outlets,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"71, Marion Crescent",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2015-04-02 20:54:26,owner-occupied,,,200003711075.0,Address Matched +597040509262015112921254724048085,Flat 6 Rydal House,Westmorland Green,,ME15 8BJ,8248024868,C,C,74,75,Flat,Detached,2015-11-24,E07000110,E14000700,Kent,2015-11-29,rental (social),75,75,179,176.0,2.0,32,1.9,54.0,43.0,358.0,359.0,99.0,99.0,62.0,Single,Y,2nd,Y,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,75.0,0.0,From main system,Good,Good,(another dwelling below),NO DATA!,,Fully double glazed,Average,Average,"System built, with external insulation",Good,Good,,,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,5.3,,,N,natural,"Flat 6 Rydal House, Westmorland Green",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2015-11-29 21:25:47,rental (social),,,200003685489.0,Address Matched +394509760022009110710374299668161,"85, Lower Boxley Road",,,ME14 2UT,6983659668,D,C,67,74,House,Mid-Terrace,2009-11-06,E07000110,E14000804,Kent,2009-11-07,rental (private),62,70,310,244.0,2.8,52,2.2,34.0,34.0,409.0,340.0,121.0,96.0,60.36,dual,Y,NO DATA!,,,2107.0,100.0,double glazing installed before 2002,Normal,1.0,4.0,4.0,83.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 83% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,,0.0,N,natural,"85, Lower Boxley Road",Maidstone,Maidstone and The Weald,MAIDSTONE,,2009-11-07 10:37:42,rental (private),,,200003703560.0,Address Matched +1467821160112016080216571794060445,"18, Matterdale Gardens",Barming,,ME16 9HW,4524046478,D,B,67,85,Bungalow,Mid-Terrace,2016-08-02,E07000110,E14000804,Kent,2016-08-02,marketed sale,67,85,224,78.0,2.6,39,0.9,82.0,45.0,423.0,397.0,156.0,79.0,65.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,18.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 18% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,2.32,,N,natural,"18, Matterdale Gardens, Barming",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2016-08-02 16:57:17,owner-occupied,,,200003666666.0,Address Matched +1491543666352016102614424290269545,"88, London Road",,,ME16 0DP,5582608478,D,B,65,84,House,Semi-Detached,2016-10-26,E07000110,E14000804,Kent,2016-10-26,marketed sale,59,81,230,96.0,4.1,41,1.8,64.0,64.0,754.0,523.0,119.0,79.0,102.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,2.4,,N,natural,"88, London Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2016-10-26 14:42:42,owner-occupied,,,200003658838.0,Address Matched +761380849342012031419541198629848,"49a, Finglesham Court",,,ME15 7JE,6353346968,D,D,55,56,House,Enclosed End-Terrace,2012-03-14,E07000110,E14000700,Kent,2012-03-14,marketed sale,59,60,339,334.0,2.6,63,2.6,44.0,27.0,448.0,452.0,169.0,169.0,41.88,dual,Y,NODATA!,,,2602.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,1.0,40.0,0.0,"Electric immersion, off-peak",Poor,Very Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Room heaters, mains gas",Poor,Poor,Appliance thermostats,Good,Good,Low energy lighting in 40% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,2.32,0.0,,natural,"49a, Finglesham Court",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2012-03-14 19:54:11,owner-occupied,5.0,2.0,200003713174.0,Address Matched +767768879262012032915414586918742,Underly,Headcorn Road,Grafty Green,ME17 2AN,4836786968,F,E,36,44,House,Detached,2012-03-29,E07000110,E14000700,Kent,2012-03-29,marketed sale,24,27,556,524.0,11.0,99,10.0,120.0,60.0,1336.0,1288.0,292.0,128.0,79.09,dual,N,NODATA!,,,2402.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,0.0,1.0,"Electric immersion, off-peak",Very Poor,Very Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, no insulation(assumed)",Very Poor,Very Poor,Electric storage heaters,Average,Very Poor,Automatic charge control,Average,Average,No low energy lighting,Very Poor,Very Poor,electricity (not community),0.0,NO DATA!,,2.6,0.0,,natural,"Underly, Headcorn Road, Grafty Green",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2012-03-29 15:41:45,owner-occupied,13.0,0.0,200003731405.0,Address Matched +56676009962016041810402244958766,"83, Linton Road",Loose,,ME15 0AH,6461004468,D,C,61,72,House,Detached,2016-04-15,E07000110,E14000804,Kent,2016-04-18,marketed sale,61,72,224,158.0,7.2,33,4.9,149.0,98.0,1642.0,1363.0,141.0,142.0,215.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,3.0,8.0,8.0,48.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, wood logs",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 48% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,2.4,,N,natural,"83, Linton Road, Loose",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2016-04-18 10:40:22,owner-occupied,,,200003663245.0,Address Matched +49b7d7f42e9ec100ff0d81a45c304f748de64c8f3f747955a748b12c7043df61,33 ERNEST DRIVE,,,ME16 0QS,10001524173,D,B,65,83,Bungalow,Semi-Detached,2021-08-03,E07000110,E14000804,Kent,2021-08-05,marketed sale,65,83,244,98.0,2.5,43,1.0,80.0,51.0,491.0,440.0,85.0,60.0,59.0,Unknown,Y,,,,,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,44.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Average,Average,"Room heaters, electric",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 44% of fixed outlets,Average,Average,mains gas (not community),0.0,,,2.47,0.0,N,natural,33 ERNEST DRIVE,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2021-08-05 12:17:34,Owner-occupied,9.0,,200003704553.0,Energy Assessor +49bef1051e57208ba5f920f44fbb05cd1cbf32f65aa3b7940bc8b08f2f7adc5b,20 HAYLE MILL,HAYLE MILL ROAD,,ME15 6JW,10001407125,C,C,71,71,Flat,Mid-Terrace,2021-07-15,E07000110,E14000804,Kent,2021-07-15,marketed sale,68,68,185,185.0,3.9,31,3.9,94.0,94.0,753.0,753.0,260.0,260.0,126.0,dual,N,00,N,,,100.0,double glazing installed during or after 2002,Normal,2.0,4.0,4.0,100.0,0.0,"Electric immersion, off-peak",Poor,Poor,"Suspended, insulated (assumed)",,,Fully double glazed,Good,Good,"Timber frame, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, electric",Very Poor,Poor,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,heated corridor,0.0,2.37,0.0,N,natural,"20 HAYLE MILL, HAYLE MILL ROAD",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2021-07-15 16:44:32,Owner-occupied,15.0,,10022896940.0,Energy Assessor +319581539202018080313542167480078,"60, Queens Road",,,ME16 0LG,7289434668,D,B,62,85,House,Mid-Terrace,2018-08-03,E07000110,E14000804,Kent,2018-08-03,non marketed sale,55,83,260,83.0,4.3,46,1.4,72.0,72.0,714.0,417.0,126.0,80.0,93.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,89.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"System built, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Roof room(s), ceiling insulated",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 89% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"60, Queens Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2018-08-03 13:54:21,rental (social),,,200003690584.0,Address Matched +387293388712009102315290300219661,"8, Cleavesland",Laddingford,,ME18 6BS,6114809668,D,C,64,77,House,Semi-Detached,2009-10-23,E07000110,E14000804,Kent,2009-10-23,marketed sale,58,73,323,205.0,3.4,54,2.2,42.0,31.0,504.0,336.0,113.0,95.0,62.94,Single,Y,NO DATA!,,,2105.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,67.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and at least two room thermostats,Good,Good,Low energy lighting in 67% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,,0.0,N,natural,"8, Cleavesland, Laddingford",Maidstone,Maidstone and The Weald,MAIDSTONE,,2009-10-23 15:29:03,owner-occupied,,,200003660021.0,Address Matched +661703499402011081212292784899998,Flat 1 Primrose House,Westmorland Road,,ME15 8JG,8464698868,C,C,76,76,Flat,Detached,2011-08-11,E07000110,E14000700,Kent,2011-08-12,rental (social),81,81,153,153.0,1.2,29,1.2,28.0,28.0,246.0,246.0,65.0,65.0,42.46,Single,Y,Ground,Y,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,2.0,2.0,100.0,0.0,From main system,Good,Good,"Solid, limited insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,7.82,2.3,0.0,,natural,"Flat 1 Primrose House, Westmorland Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1996-2002,2011-08-12 12:29:27,rental (social),5.0,5.0,200003685582.0,Address Matched +1095043809602018051714484828089138,"124, Kingfisher Meadow",,,ME16 8RD,3695600278,C,C,75,79,Flat,Mid-Terrace,2018-05-17,E07000110,E14000804,Kent,2018-05-17,marketed sale,72,84,245,142.0,1.6,41,1.0,34.0,33.0,205.0,156.0,157.0,95.0,39.0,Unknown,Y,4th,Y,,2603.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,100.0,0.0,"Electric immersion, off-peak",Poor,Poor,(another dwelling below),NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Room heaters, electric",Very Poor,Poor,Programmer and appliance thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,heated corridor,,,,N,natural,"124, Kingfisher Meadow",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2018-05-17 14:48:48,owner-occupied,,,10022892335.0,Address Matched +1216023217952014100611431495049522,"14, Napoleon Drive",Marden,,TN12 9TR,5265758278,D,B,61,84,House,Detached,2014-10-03,E07000110,E14000804,Kent,2014-10-06,assessment for green deal,55,83,215,74.0,5.6,42,2.0,79.0,79.0,1073.0,598.0,148.0,81.0,136.0,dual,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,8.0,8.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"14, Napoleon Drive, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1983-1990,2014-10-06 11:43:14,owner-occupied,14.0,14.0,200003711235.0,Address Matched +1294733739922015031619472854768375,Flat 2,Chillington House,St. Faiths Street,ME14 1LH,7567314378,F,F,33,33,Flat,Detached,2015-03-16,E07000110,E14000804,Kent,2015-03-16,new dwelling,41,41,413,413.0,5.0,70,5.0,47.0,47.0,1200.0,1200.0,175.0,175.0,71.0,standard tariff,,ground floor,,,,,NO DATA!,NO DATA!,,,,,0.0,Electric instantaneous at point of use,Very Poor,Poor,(other premises below),,,Single glazed,Very Poor,Very Poor,Average thermal transmittance 1.15 W/m-¦K,Poor,Poor,,,,(other premises above),,,"Room heaters, electric",Very Poor,Poor,Programmer and room thermostat,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"Flat 2, Chillington House, St. Faiths Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2015-03-16 19:47:28,unknown,10.0,10.0,10091195910.0,Address Matched +478158249542010070400331875500848,"18, Camp Way",,,ME15 9BB,6539445768,C,C,75,75,House,Mid-Terrace,2010-07-04,E07000110,E14000700,Kent,2010-07-04,rental (social),71,72,205,202.0,2.6,34,2.6,48.0,39.0,372.0,374.0,127.0,127.0,75.7,Single,Y,NO DATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,4.0,4.0,75.0,0.0,From main system,Very Good,Very Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"System built, with internal insulation",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.41,0.0,N,natural,"18, Camp Way",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2010-07-04 00:33:18,rental (social),,,200003713707.0,Address Matched +488347919402014032711031776642668,4 The Wychlings,Gravelly Bottom Road,Kingswood,ME17 3PZ,8414416768,D,B,67,83,House,Detached,2014-03-26,E07000110,E14000700,Kent,2014-03-27,FiT application,61,80,165,81.0,7.4,32,3.7,131.0,92.0,1285.0,828.0,172.0,130.0,231.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,1.0,9.0,9.0,58.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 58% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"4 The Wychlings, Gravelly Bottom Road, Kingswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2014-03-27 11:03:17,owner-occupied,12.0,7.0,200003700266.0,Address Matched +299578740062009060810411002458571,"140, Linden Road",Coxheath,,ME17 4RA,7013492668,C,C,72,77,Flat,Detached,2009-06-05,E07000110,E14000804,Kent,2009-06-08,rental (private),62,67,523,453.0,2.0,78,1.7,17.0,17.0,147.0,141.0,122.0,89.0,25.6,dual,N,1st,Y,2.0,2401.0,100.0,double glazing installed before 2002,Less Than Typical,0.0,1.0,1.0,80.0,0.0,"Electric immersion, off-peak",Average,Poor,(other premises below),,,Fully double glazed,Average,Average,"Timber frame, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,"Pitched, 300+mm loft insulation",Very Good,Very Good,Electric storage heaters,Poor,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,electricity - this is for backwards compatibility only and should not be used,0.0,unheated corridor,4.2,2.38,0.0,N,natural,"140, Linden Road, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1976-1982,2009-06-08 10:41:10,rental (private),,,200003672677.0,Address Matched +49fd23d64d43fd7d305cd73d7b125f1f2f00a656fc2ac11f8c8399e9ff73c5ce,4 MILTON STREET,,,ME16 8JT,10001500047,D,C,55,78,House,Mid-Terrace,2021-07-22,E07000110,E14000804,Kent,2021-07-22,rental,47,72,306,142.0,5.7,54,2.7,87.0,87.0,963.0,644.0,93.0,65.0,105.0,Unknown,Y,,,,,100.0,double glazing installed during or after 2002,Normal,3.0,5.0,5.0,92.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 92% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.46,0.0,N,natural,4 MILTON STREET,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2021-07-22 15:22:07,Rented (private),13.0,,200003658063.0,Energy Assessor +685499169742011100407532394090348,"66, Foxden Drive",Downswood,,ME15 8TQ,1751560968,D,C,66,71,House,Semi-Detached,2011-10-04,E07000110,E14000700,Kent,2011-10-04,marketed sale,64,69,205,173.0,3.9,40,3.3,63.0,63.0,645.0,550.0,101.0,90.0,99.0,Single,Y,NODATA!,,,2107.0,100.0,"double glazing, unknown install date",Normal,2.0,6.0,6.0,77.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, limited insulation (assumed)",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 77% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,2.3,0.0,,natural,"66, Foxden Drive, Downswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1976-1982,2011-10-04 07:53:23,owner-occupied,13.0,10.0,200003686596.0,Address Matched +46013509922019071215281663828541,Greenfields,Stanley Road,Marden,TN12 9EL,4637063468,D,C,56,80,House,Semi-Detached,2019-07-12,E07000110,E14000804,Kent,2019-07-12,marketed sale,48,76,289,119.0,6.0,51,2.5,160.0,80.0,970.0,607.0,134.0,88.0,117.0,Unknown,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,6.0,6.0,0.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"Greenfields, Stanley Road, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1950-1966,2019-07-12 15:28:16,owner-occupied,,,200003709157.0,Address Matched +891701069002018042009061506589688,"6, Brunswick Street East",,,ME15 7UX,3029665078,D,C,57,79,House,End-Terrace,2018-04-18,E07000110,E14000804,Kent,2018-04-20,rental (private),47,74,295,132.0,6.9,52,3.1,89.0,89.0,1229.0,710.0,94.0,95.0,132.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,6.0,6.0,86.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 86% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"6, Brunswick Street East",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2018-04-20 09:06:15,rental (private),,,200003696713.0,Address Matched +1305113489142015040110145935450198,Apartment 12,Idenden House,Medway Street,ME14 1JS,4169984378,B,B,82,82,Flat,Mid-Terrace,2015-04-01,E07000110,E14000804,Kent,2015-04-01,new dwelling,85,85,94,94.0,1.1,17,1.1,44.0,44.0,202.0,202.0,89.0,89.0,66.0,standard tariff,,top floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.23 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.14 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Apartment 12, Idenden House, Medway Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2015-04-01 10:14:59,owner-occupied,12.0,12.0,10091193920.0,Address Matched +1208998609262014092217283118128044,Flat 2 Booth House,"29, Horwood Way",Harrietsham,ME17 1FH,4145018278,B,B,83,83,Flat,Detached,2014-09-22,E07000110,E14000700,Kent,2014-09-22,new dwelling,91,91,56,56.0,0.6,10,0.6,40.0,40.0,205.0,205.0,72.0,72.0,62.0,standard tariff,,ground floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.17 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.26 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Flat 2 Booth House, 29, Horwood Way, Harrietsham",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2014-09-22 17:28:31,owner-occupied,12.0,12.0,10014314970.0,Address Matched +1654453545852018081317321796980758,Beech Tree Cottage,South Green,,ME9 7RY,7859569578,D,B,65,91,Bungalow,Detached,2018-08-13,E07000110,E14000700,Kent,2018-08-13,marketed sale,61,86,148,12.0,5.1,34,1.4,167.0,89.0,555.0,538.0,125.0,78.0,148.0,Single,N,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,7.0,7.0,13.0,0.0,From main system,Average,Average,"Solid, limited insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, wood logs",,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, oil",Average,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 13% of fixed outlets,Poor,Poor,oil (not community),0.0,NO DATA!,,,,N,natural,"Beech Tree Cottage, South Green",Maidstone,Faversham and Mid Kent,SITTINGBOURNE,England and Wales: 1996-2002,2018-08-13 17:32:17,owner-occupied,,,10014308700.0,Address Matched +448005649062010030313580503428810,"14, Salts Avenue",Loose,,ME15 0AZ,1057433768,F,D,37,62,House,Detached,2010-03-02,E07000110,E14000804,Kent,2010-03-03,marketed sale,32,55,475,268.0,10.0,80,5.7,102.0,67.0,1426.0,851.0,252.0,140.0,145.4,Single,Y,NO DATA!,,,2107.0,81.0,double glazing installed before 2002,Normal,1.0,6.0,6.0,47.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Mostly double glazing,Poor,Poor,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Average,Average,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 47% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.5,0.0,N,natural,"14, Salts Avenue, Loose",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2010-03-03 13:58:05,owner-occupied,,,200003663458.0,Address Matched +201665025732013052821193788268709,"67, High Street",Lenham,,ME17 2QG,2978755568,E,C,51,80,House,End-Terrace,2013-05-28,E07000110,E14000700,Kent,2013-05-28,marketed sale,46,77,286,104.0,6.0,55,2.2,76.0,56.0,1059.0,576.0,88.0,88.0,108.0,Single,Y,NODATA!,,,2102.0,25.0,double glazing installed during or after 2002,More Than Typical,1.0,5.0,5.0,64.0,3.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Some double glazing,Poor,Poor,"Granite or whinstone, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,Low energy lighting in 64% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"67, High Street, Lenham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2013-05-28 21:19:37,owner-occupied,14.0,9.0,200003711222.0,Address Matched +643501969602011061713374687799038,72 Pine Lodge,Tonbridge Road,,ME16 8TB,4633967868,F,E,38,49,Flat,NO DATA!,2011-06-17,E07000110,E14000804,Kent,2011-06-17,marketed sale,25,35,659,514.0,7.6,117,5.9,39.0,39.0,990.0,791.0,60.0,60.0,64.71,dual,Y,2nd,Y,,2401.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,100.0,0.0,Gas multipoint,Average,Average,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,Portable electric heaters (assumed),,,"Pitched, limited insulation (assumed)",Very Poor,Very Poor,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,unheated corridor,5.16,2.4,0.0,,natural,"72 Pine Lodge, Tonbridge Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2011-06-17 13:37:46,owner-occupied,7.0,7.0,200003657950.0,Address Matched +1583080008752017101821061495939354,1 Council Cottages,Gallants Lane,East Farleigh,ME15 0LL,3423854578,D,A,64,108,House,Semi-Detached,2017-10-18,E07000110,E14000804,Kent,2017-10-18,rental (social),64,104,251,-49.0,2.9,42,-0.6,82.0,49.0,590.0,450.0,123.0,123.0,68.0,dual,N,NODATA!,,,2206.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,33.0,0.0,"From main system, plus solar",Very Good,Very Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"System built, with external insulation",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Air source heat pump, radiators, electric",Average,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 33% of fixed outlets,Average,Average,electricity (not community),0.0,NO DATA!,,,,Y,natural,"1 Council Cottages, Gallants Lane, East Farleigh",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2017-10-18 21:06:14,rental (social),,,200003671050.0,Address Matched +1038866761912018051611550591080114,"11, St. Catherines Road",,,ME15 9WP,1467116178,C,C,76,77,Flat,Semi-Detached,2018-03-02,E07000110,E14000700,Kent,2018-05-16,rental (social),72,73,236,228.0,1.8,40,1.7,70.0,39.0,209.0,220.0,162.0,162.0,45.0,dual,N,2nd,Y,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,20.0,0.0,From main system,Poor,Poor,(another dwelling below),NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Very Good,Very Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and underfloor heating, electric",Very Poor,Very Poor,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 20% of fixed outlets,Poor,Poor,electricity (not community),0.0,heated corridor,,,,N,natural,"11, St. Catherines Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2007 onwards,2018-05-16 11:55:05,rental (social),,,10014311692.0,Address Matched +1649300699962018071816015759188148,"4, Castle View",,,ME14 2BY,4533929578,B,A,84,93,House,Semi-Detached,2018-07-18,E07000110,E14000804,Kent,2018-07-18,new dwelling,84,94,86,24.0,1.7,15,0.5,84.0,84.0,284.0,284.0,73.0,42.0,113.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.10 W/m+é-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.16 W/m+é-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.09 W/m+é-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"4, Castle View",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2018-07-18 16:01:57,unknown,20.0,20.0,10014306912.0,Address Matched +518113989262010072718260718538550,"49, Chantry Road",Marden,,TN12 9HU,5188828768,C,C,75,76,House,Semi-Detached,2010-07-27,E07000110,E14000804,Kent,2010-07-27,rental (social),71,72,220,216.0,2.3,37,2.2,49.0,33.0,348.0,350.0,115.0,115.0,62.46,Single,Y,NO DATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,50.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.3,0.0,N,natural,"49, Chantry Road, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1950-1966,2010-07-27 18:26:07,rental (social),,,200003708650.0,Address Matched +1716356555412019042610184591210067,"31, Ramsden Way",Marden,,TN12 9GL,733514678,B,A,84,96,House,End-Terrace,2019-04-26,E07000110,E14000804,Kent,2019-04-26,new dwelling,86,98,85,0.0,1.2,15,0.0,63.0,63.0,198.0,198.0,79.0,48.0,80.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.16 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.19 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"31, Ramsden Way, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,NO DATA!,2019-04-26 10:18:45,unknown,15.0,15.0,10093305362.0,Address Matched +4a0c269d75a56e0ea5d5f5f6abb4861e8bbbb9fb528ebe9e6983db73efab5588,29 HAYLE MILL,HAYLE MILL ROAD,,ME15 6JW,8806370768,C,B,79,82,Flat,Mid-Terrace,2021-07-16,E07000110,E14000804,Kent,2021-07-17,marketed sale,79,83,120,97.0,2.2,21,1.8,89.0,91.0,364.0,289.0,88.0,88.0,104.0,Single,Y,01,Y,,,0.0,not defined,Normal,2.0,4.0,4.0,96.0,0.0,From main system,Good,Good,(another dwelling below),,,Single glazed,Very Poor,Very Poor,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 96% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,1.1,2.2,0.0,N,natural,"29 HAYLE MILL, HAYLE MILL ROAD",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007-2011,2021-07-17 01:12:37,Owner-occupied,28.0,,10022896949.0,Energy Assessor +1046224969942013111922272410679718,"74, Church Street",Boughton Monchelsea,,ME17 4HN,7947166178,C,B,70,91,House,End-Terrace,2013-11-19,E07000110,E14000700,Kent,2013-11-19,rental (private),70,94,187,22.0,2.2,36,0.3,47.0,47.0,408.0,290.0,85.0,59.0,61.0,Single,Y,NODATA!,,,2109.0,100.0,double glazing installed during or after 2002,Normal,1.0,4.0,4.0,75.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and boiler energy manager",Good,Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"74, Church Street, Boughton Monchelsea",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1900-1929,2013-11-19 22:27:24,rental (private),12.0,9.0,200003674193.0,Address Matched +1305057999062015040110150764798435,Apartment 15,Idenden House,Medway Street,ME14 1JS,3669984378,C,C,80,80,Flat,Mid-Terrace,2015-04-01,E07000110,E14000804,Kent,2015-04-01,new dwelling,85,85,122,122.0,0.8,21,0.8,30.0,30.0,177.0,177.0,76.0,76.0,39.0,standard tariff,,top floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.23 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.14 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Apartment 15, Idenden House, Medway Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2015-04-01 10:15:07,owner-occupied,12.0,12.0,10091193923.0,Address Matched +1359698459062015090222022028098245,Flat 5/A Lambard House,Wheeler Street,,ME14 2UE,4204578378,C,C,71,78,Flat,Mid-Terrace,2015-09-01,E07000110,E14000804,Kent,2015-09-02,rental (social),69,79,209,140.0,2.4,37,1.6,46.0,46.0,425.0,262.0,134.0,137.0,66.0,Single,Y,2nd,Y,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,(another dwelling below),NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Flat, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,no corridor,,,,N,natural,"Flat 5/A Lambard House, Wheeler Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2015-09-02 22:02:20,rental (social),,,200003704512.0,Address Matched +74270787712014031306525098940447,"6, Culpepper Road",Coxheath,,ME17 4EB,4730784468,D,C,67,75,House,Semi-Detached,2014-03-12,E07000110,E14000804,Kent,2014-03-13,marketed sale,63,71,172,127.0,4.5,33,3.4,106.0,67.0,816.0,820.0,104.0,104.0,136.0,Unknown,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,6.0,6.0,43.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 43% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"6, Culpepper Road, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2014-03-13 06:52:50,owner-occupied,14.0,6.0,200003671837.0,Address Matched +215328742252009011921013806910158,"20, The Quarries",Boughton Monchelsea,,ME17 4NJ,1828266568,E,D,51,62,Bungalow,Detached,2009-01-17,E07000110,E14000700,Kent,2009-01-19,marketed sale,45,55,389,305.0,5.5,65,4.3,78.0,40.0,654.0,505.0,202.0,202.0,83.99,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,6.0,6.0,5.0,1.0,"From main system, no cylinderstat",Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 5% of fixed outlets,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.45,0.0,N,natural,"20, The Quarries, Boughton Monchelsea",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2009-01-19 21:01:38,owner-occupied,,,200003709784.0,Address Matched +340674718132009080713011285068307,"2, Courtenay Road",,,ME15 6UL,1715385668,E,D,47,64,House,End-Terrace,2009-08-07,E07000110,E14000804,Kent,2009-08-07,marketed sale,42,57,429,298.0,5.9,72,4.1,77.0,41.0,806.0,616.0,177.0,109.0,82.0,Single,Y,NO DATA!,,,2101.0,95.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,12.0,0.0,"From main system, no cylinderstat",Average,Average,"Suspended, no insulation (assumed)",,,Partial double glazing,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, mains gas",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,No time or thermostatic control of room temperature,Very Poor,Very Poor,Low energy lighting in 12% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.41,0.0,N,natural,"2, Courtenay Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2009-08-07 13:01:12,owner-occupied,,,200003665100.0,Address Matched +1388831379342015112319381442052778,"93a, Holland Road",,,ME14 1UN,9322870478,D,B,65,83,House,Detached,2015-11-23,E07000110,E14000804,Kent,2015-11-23,ECO assessment,59,79,232,105.0,4.1,41,1.9,99.0,62.0,715.0,560.0,127.0,74.0,100.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,40.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 40% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"93a, Holland Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2015-11-23 19:38:14,owner-occupied,,,200003700825.0,Address Matched +643467809962011061716093197558539,"8, Hatch Road",Lenham,,ME17 2HL,3960077868,E,D,53,67,House,Semi-Detached,2011-06-15,E07000110,E14000700,Kent,2011-06-17,rental (private),44,61,289,193.0,6.7,62,4.5,82.0,52.0,963.0,662.0,132.0,112.0,122.3,Single,Y,NODATA!,,,2105.0,100.0,double glazing installed before 2002,Normal,1.0,5.0,5.0,43.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, smokeless fuel",,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and at least two room thermostats,Good,Good,Low energy lighting in 43% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,2.33,0.0,,natural,"8, Hatch Road, Lenham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2011-06-17 16:09:31,rental (private),14.0,6.0,200003708358.0,Address Matched +660984232612011080414544499090385,"16, Fountain Lane",,,ME16 9AR,3502298868,E,C,48,69,House,Semi-Detached,2011-08-04,E07000110,E14000804,Kent,2011-08-04,marketed sale,44,67,346,192.0,5.9,67,3.2,74.0,46.0,952.0,554.0,119.0,87.0,87.6,Single,Y,NODATA!,,,2104.0,0.0,not defined,Normal,0.0,5.0,5.0,40.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Average,Programmer and room thermostat,Average,Average,Low energy lighting in 40% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,2.4,0.0,,natural,"16, Fountain Lane",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2011-08-04 14:54:44,owner-occupied,10.0,4.0,200003676090.0,Address Matched +825367289022014021818331070288954,12 Wicken House,London Road,,ME16 8QP,5733890078,D,C,62,80,Flat,End-Terrace,2014-02-08,E07000110,E14000804,Kent,2014-02-18,assessment for green deal,48,66,389,251.0,3.6,69,2.3,74.0,37.0,383.0,188.0,196.0,115.0,52.0,dual,N,3rd,N,,2401.0,100.0,double glazing installed during or after 2002,Normal,1.0,3.0,3.0,0.0,0.0,"Electric immersion, off-peak",Poor,Very Poor,(other premises below),,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,(another dwelling above),,,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,No low energy lighting,Very Poor,Very Poor,electricity (not community),0.0,unheated corridor,6.09,,0.0,,natural,"12 Wicken House, London Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2014-02-18 18:33:10,rental (private),6.0,0.0,200003668495.0,Address Matched +984946230632016100609492436078691,"1, Sutton Court",Marden,,TN12 9TF,3196622178,C,C,72,75,Flat,Detached,2016-10-04,E07000110,E14000804,Kent,2016-10-06,marketed sale,72,76,195,167.0,2.1,34,1.8,48.0,48.0,403.0,341.0,84.0,84.0,60.0,dual,Y,Ground,N,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,7.49,2.4,,N,natural,"1, Sutton Court, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1967-1975,2016-10-06 09:49:24,owner-occupied,,,200003710530.0,Address Matched +96891059202019032119101146612398,"45, Grampian Way",Downswood,,ME15 8TG,8247256468,E,A,39,92,House,Enclosed End-Terrace,2019-03-21,E07000110,E14000700,Kent,2019-03-21,marketed sale,46,74,510,213.0,3.3,86,1.4,51.0,35.0,755.0,331.0,289.0,80.0,39.0,Single,N,NODATA!,,,2603.0,100.0,double glazing installed before 2002,Normal,0.0,2.0,1.0,40.0,0.0,"Electric immersion, standard tariff",Very Poor,Poor,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,Portable electric heaters (assumed),,,"Pitched, 100 mm loft insulation",Average,Average,"Room heaters, electric",Very Poor,Poor,Programmer and appliance thermostats,Good,Good,Low energy lighting in 40% of fixed outlets,Average,Average,electricity (not community),0.0,NO DATA!,,,,N,natural,"45, Grampian Way, Downswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2019-03-21 19:10:11,owner-occupied,,,200003691089.0,Address Matched +597401959262012070422184674718542,"8, Sharsted Way",Bearsted,,ME14 4PP,4739524868,C,C,71,74,Flat,Enclosed End-Terrace,2012-06-29,E07000110,E14000700,Kent,2012-07-04,rental (social),75,79,183,152.0,1.7,34,1.4,43.0,29.0,330.0,288.0,67.0,68.0,48.0,Single,Y,1st,Y,,2106.0,100.0,double glazing installed before 2002,More Than Typical,0.0,2.0,2.0,50.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,no corridor,,,0.0,,natural,"8, Sharsted Way, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2012-07-04 22:18:46,rental (social),6.0,3.0,200003693771.0,Address Matched +978211579302014041020204719140418,"12, Bell Meadow",,,ME15 9NB,1377971178,C,B,79,88,House,Semi-Detached,2014-04-09,E07000110,E14000700,Kent,2014-04-10,FiT application,76,88,115,52.0,2.0,23,0.9,77.0,58.0,558.0,433.0,142.0,74.0,88.0,dual,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,1.0,4.0,4.0,67.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 67% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,,natural,"12, Bell Meadow",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2014-04-10 20:20:47,owner-occupied,12.0,8.0,200003682565.0,Address Matched +664455276612011081012114191990082,"27, Meadow Walk",,,ME15 7RY,279619868,G,F,3,22,House,Semi-Detached,2011-08-10,E07000110,E14000804,Kent,2011-08-10,marketed sale,17,32,755,523.0,10.0,134,7.1,83.0,42.0,2087.0,1373.0,290.0,290.0,76.4,Single,Y,NODATA!,,,2401.0,0.0,not defined,Normal,0.0,5.0,3.0,0.0,0.0,"Electric immersion, standard tariff",Very Poor,Very Poor,"Suspended, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,"Pitched, 100 mm loft insulation",Average,Average,Electric storage heaters,Very Poor,Very Poor,Manual charge control,Poor,Poor,No low energy lighting,Very Poor,Very Poor,electricity (not community),0.0,NO DATA!,,2.519,0.0,,natural,"27, Meadow Walk",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2011-08-10 12:11:41,owner-occupied,10.0,0.0,200003695390.0,Address Matched +1744971632922020011512534696558700,"4, Brickfields Close",Hollingbourne,,ME17 1SF,984326678,B,A,86,93,House,Detached,2020-01-15,E07000110,E14000700,Kent,2020-01-15,new dwelling,86,93,73,30.0,2.2,13,0.9,103.0,103.0,346.0,347.0,109.0,62.0,169.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.18 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.1 W/m-¦K,Very Good,Very Good,"Boiler & underfloor, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"4, Brickfields Close, Hollingbourne",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2020-01-15 12:53:46,unknown,4.0,4.0,10094441484.0,Address Matched +597122790432014100922300641068194,"17, Quarry Road",,,ME15 6UA,9491124868,C,B,71,87,House,Mid-Terrace,2014-10-09,E07000110,E14000804,Kent,2014-10-09,rental (social),72,88,163,55.0,2.5,31,0.9,76.0,50.0,393.0,383.0,184.0,88.0,80.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,50.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"17, Quarry Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2014-10-09 22:30:06,rental (social),10.0,5.0,200003681974.0,Address Matched +399229924712014032609225599240168,"59, Chapman Avenue",,,ME15 8EJ,1846499668,C,B,76,81,House,Detached,2014-03-25,E07000110,E14000700,Kent,2014-03-26,FiT application,70,77,123,94.0,4.3,24,3.3,80.0,80.0,1090.0,945.0,131.0,86.0,178.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,2.0,10.0,10.0,100.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,,natural,"59, Chapman Avenue",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2014-03-26 09:22:55,owner-occupied,24.0,24.0,200003684674.0,Address Matched +1310793129602015041616305535559568,"8, Linton Gore",Coxheath,,ME17 4ES,2638925378,D,B,59,82,Bungalow,Semi-Detached,2015-04-16,E07000110,E14000804,Kent,2015-04-16,marketed sale,51,79,300,119.0,4.9,53,2.0,87.0,58.0,807.0,579.0,196.0,75.0,93.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,2.0,5.0,5.0,50.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, limited insulation (assumed)",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"8, Linton Gore, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1976-1982,2015-04-16 16:30:55,owner-occupied,,,200003715176.0,Address Matched +1488059423952017090811295798030441,1 Greensand Meadow,Sutton Valence,,ME17 3FP,4136387478,B,A,86,92,House,Detached,2017-09-04,E07000110,E14000700,Kent,2017-09-08,new dwelling,85,92,75,37.0,2.5,13,1.3,93.0,93.0,403.0,405.0,109.0,59.0,190.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.14 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"1 Greensand Meadow, Sutton Valence",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2017-09-08 11:29:57,owner-occupied,10.0,10.0,10093303720.0,Address Matched +1645102999402018070209544754882318,"17, Brunell Close",,,ME16 0YW,7472798578,B,B,81,83,Flat,End-Terrace,2018-05-29,E07000110,E14000804,Kent,2018-07-02,marketed sale,85,86,103,93.0,1.1,18,1.0,91.0,51.0,163.0,167.0,93.0,93.0,64.0,Single,Y,2nd,N,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,22.0,0.0,From main system,Good,Good,(another dwelling below),NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 22% of fixed outlets,Poor,Poor,mains gas (not community),0.0,unheated corridor,1.3,,,N,natural,"17, Brunell Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2018-07-02 09:54:47,owner-occupied,,,10022895911.0,Address Matched +977797542512013072610360697270615,"59, Cranborne Avenue",,,ME15 7EE,6598271178,D,B,60,83,House,Detached,2013-07-26,E07000110,E14000700,Kent,2013-07-26,marketed sale,56,83,238,80.0,4.1,46,1.4,51.0,51.0,659.0,463.0,181.0,74.0,89.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,100.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"59, Cranborne Avenue",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2013-07-26 10:36:06,owner-occupied,8.0,8.0,200003715532.0,Address Matched +80946079022015070118524025998335,"34, Charles Street",,,ME16 8ET,3289785468,D,B,62,83,House,Semi-Detached,2015-07-01,E07000110,E14000804,Kent,2015-07-01,marketed sale,57,81,289,108.0,3.2,51,1.2,85.0,42.0,582.0,458.0,94.0,61.0,62.0,Unknown,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"34, Charles Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2015-07-01 18:52:40,owner-occupied,,,200003667826.0,Address Matched +199490919062011101000010745288989,"7, Gentian Close",Weavering,,ME14 5UE,8480145568,D,C,62,73,House,Mid-Terrace,2011-10-08,E07000110,E14000700,Kent,2011-10-10,marketed sale,60,74,253,162.0,3.5,49,2.3,65.0,40.0,530.0,370.0,150.0,108.0,72.87,Single,Y,NODATA!,,,2104.0,10.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,38.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Some double glazing,Very Poor,Very Poor,"Cavity wall, as built, partial insulation (assumed)",Average,Average,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 38% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,2.4,0.0,,natural,"7, Gentian Close, Weavering",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1976-1982,2011-10-10 00:01:07,owner-occupied,13.0,5.0,200003689198.0,Address Matched +1445788189642016052018521844462508,"88, Trevor Drive",,,ME16 0QX,6662484478,C,B,69,87,Bungalow,Semi-Detached,2016-05-20,E07000110,E14000804,Kent,2016-05-20,marketed sale,68,85,225,81.0,2.3,40,0.9,71.0,45.0,433.0,391.0,94.0,64.0,59.0,dual,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,3.0,3.0,43.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 43% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,2.43,,N,natural,"88, Trevor Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2016-05-20 18:52:18,owner-occupied,,,200003705357.0,Address Matched +1088872982412014021217560896940713,"6, Cudham Close",,,ME14 5QG,7379269178,D,B,64,87,House,Mid-Terrace,2014-02-11,E07000110,E14000804,Kent,2014-02-12,none of the above,62,89,220,52.0,3.1,42,0.8,59.0,46.0,545.0,367.0,147.0,72.0,74.0,Single,Y,NODATA!,,,2107.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,70.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 70% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"6, Cudham Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2014-02-12 17:56:08,owner-occupied,10.0,7.0,200003671537.0,Address Matched +234749319542011012414153256892148,"16, Sittingbourne Road",,,ME14 5LW,6575918568,D,C,62,71,House,Detached,2011-01-24,E07000110,E14000804,Kent,2011-01-24,marketed sale,55,67,255,189.0,7.0,42,5.2,100.0,100.0,1088.0,781.0,161.0,161.0,163.65,Single,Y,NO DATA!,,,2106.0,95.0,"double glazing, unknown install date",Normal,1.0,7.0,7.0,90.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Mostly double glazing,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 75 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 90% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.3,0.0,N,natural,"16, Sittingbourne Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2011-01-24 14:15:32,owner-occupied,,,200003705625.0,Address Matched +1081465539762014013119081059808314,"41, Cranborne Avenue",,,ME15 7EA,1567319178,D,C,56,79,House,Detached,2014-01-30,E07000110,E14000700,Kent,2014-01-31,none of the above,51,77,262,110.0,4.9,50,2.1,89.0,56.0,892.0,612.0,122.0,78.0,98.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,5.0,5.0,42.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 42% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"41, Cranborne Avenue",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2014-01-31 19:08:10,owner-occupied,12.0,5.0,200003714498.0,Address Matched +1569139567652018022605404695280050,"52, Trevor Drive",,,ME16 0QR,12753578,C,B,70,87,Bungalow,Semi-Detached,2018-02-22,E07000110,E14000804,Kent,2018-02-26,marketed sale,69,87,225,72.0,2.1,40,0.7,39.0,39.0,375.0,340.0,81.0,52.0,52.0,Unknown,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"52, Trevor Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2018-02-26 05:40:46,owner-occupied,,,200003659253.0,Address Matched +1231247769942014110417310222940048,"12, Horton Downs",Downswood,,ME15 8TN,3957769278,C,B,69,86,Bungalow,Detached,2014-11-04,E07000110,E14000700,Kent,2014-11-04,marketed sale,68,87,180,62.0,2.8,35,1.0,51.0,51.0,492.0,416.0,172.0,83.0,82.0,Unknown,Y,NODATA!,,,2106.0,100.0,secondary glazing,Normal,1.0,5.0,5.0,100.0,0.0,"From main system, no cylinder thermostat",Average,Average,"Solid, no insulation (assumed)",,,Full secondary glazing,Good,Good,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"12, Horton Downs, Downswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2014-11-04 17:31:02,owner-occupied,9.0,9.0,200003686501.0,Address Matched +295211960842009060112001461210398,"17, Roseleigh Avenue",,,ME16 0AS,9813362668,D,C,68,70,Bungalow,Semi-Detached,2009-06-01,E07000110,E14000804,Kent,2009-06-01,rental (private),66,69,272,253.0,2.6,45,2.4,29.0,29.0,394.0,364.0,103.0,103.0,65.0,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,95.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 95% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.45,0.0,N,natural,"17, Roseleigh Avenue",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2009-06-01 12:00:14,rental (private),,,200003658347.0,Address Matched +596588609762013100214404824108817,58 Midhurst Court,Mote Road,,ME15 6EJ,1212024868,D,C,59,79,Flat,End-Terrace,2013-09-30,E07000110,E14000804,Kent,2013-10-02,none of the above,64,83,249,115.0,2.7,46,1.3,37.0,37.0,341.0,226.0,354.0,109.0,58.0,Single,Y,9th,N,,2105.0,100.0,double glazing installed before 2002,Normal,0.0,2.0,2.0,100.0,0.0,"Electric immersion, standard tariff",Very Poor,Very Poor,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,Programmer and at least two room thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,10.17,,0.0,,natural,"58 Midhurst Court, Mote Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2013-10-02 14:40:48,rental (social),5.0,5.0,200003693372.0,Address Matched +6275209762011053122393917798179,53a Coombe Road,,,ME15 6UG,7193037468,C,C,77,78,House,Mid-Terrace,2011-05-31,E07000110,E14000804,Kent,2011-05-31,rental (social),80,81,131,123.0,1.7,25,1.6,66.0,39.0,248.0,252.0,105.0,105.0,41.16,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,31.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",,,Fully double glazed,Good,Good,"Timber frame, with additional insulation",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 31% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,2.38,0.0,,natural,53a Coombe Road,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2011-05-31 22:39:39,rental (social),13.0,4.0,10022901326.0,Address Matched +820772869102012081021342103029308,"6, Pinewood Drive",,,ME5 8XU,6163460078,C,B,72,87,House,End-Terrace,2012-08-10,E07000110,E14000700,Kent,2012-08-10,marketed sale,73,88,164,55.0,2.2,31,0.8,65.0,40.0,354.0,327.0,104.0,81.0,70.0,Unknown,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,38.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 38% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"6, Pinewood Drive",Maidstone,Faversham and Mid Kent,CHATHAM,England and Wales: 1976-1982,2012-08-10 21:34:21,owner-occupied,8.0,3.0,200003673580.0,Address Matched +55257270502009012015233256612308,23 Arundel Square,,,ME15 6HB,8544176568,C,C,72,73,Flat,Semi-Detached,2009-01-20,E07000110,E14000804,Kent,2009-01-20,new dwelling,80,81,172,164.0,1.5,27,1.4,47.0,27.0,167.0,169.0,224.0,224.0,56.4,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,5.0,,"Electric immersion, standard tariff",,,(other premises below),,,Fully double glazed,Good,Good,Average thermal transmittance = 0.30 W/m?K,Good,Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Very Good,Very Good,Time and temperature zone control,Good,Good,Low energy lighting in 28% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.3,,,NO DATA!,23 Arundel Square,Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2009-01-20 15:23:32,,18.0,5.0,10022895123.0,Address Matched +1766134669922019111519170287058191,"456, Tonbridge Road",,,ME16 9JA,9874677678,D,B,62,88,House,Mid-Terrace,2019-11-15,E07000110,E14000804,Kent,2019-11-15,rental (private),56,87,268,61.0,3.9,47,0.9,74.0,74.0,670.0,349.0,112.0,67.0,84.0,Single,Y,NODATA!,,,2102.0,100.0,double glazing installed before 2002,Normal,1.0,5.0,5.0,82.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,Low energy lighting in 82% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"456, Tonbridge Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2019-11-15 19:17:02,rental (private),,,200003681589.0,Address Matched +1504914109642016121414441848969448,"21, Fullingpits Avenue",,,ME16 9DZ,8666109478,B,B,89,90,House,Detached,2016-12-14,E07000110,E14000804,Kent,2016-12-14,new dwelling,89,90,52,43.0,1.5,9,1.2,82.0,82.0,319.0,320.0,114.0,62.0,163.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.18 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"21, Fullingpits Avenue",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2016-12-14 14:44:18,unknown,20.0,20.0,10093303429.0,Address Matched +648595736052018052607333090280082,"4, Postley Road",,,ME15 6TR,203608868,D,B,65,85,House,Mid-Terrace,2018-05-25,E07000110,E14000804,Kent,2018-05-26,marketed sale,60,83,248,91.0,3.8,44,1.4,120.0,60.0,568.0,435.0,166.0,80.0,87.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,2.0,4.0,4.0,0.0,0.0,From main system,Good,Good,"To unheated space, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"4, Postley Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2018-05-26 07:33:30,owner-occupied,,,200003681887.0,Address Matched +1137401729022016110807290353238056,"54, Birch Tree Way",,,ME15 7RR,5525203278,E,C,44,71,House,End-Terrace,2016-11-07,E07000110,E14000804,Kent,2016-11-08,marketed sale,41,67,392,192.0,6.1,69,3.0,85.0,58.0,1252.0,854.0,109.0,73.0,89.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,55.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, electric",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 55% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,2.43,,N,natural,"54, Birch Tree Way",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2016-11-08 07:29:03,owner-occupied,,,200003696170.0,Address Matched +1631105695832018051107295002978601,"285, Sutton Road",,,ME15 9BL,9162697578,D,B,64,81,Bungalow,Detached,2018-05-10,E07000110,E14000700,Kent,2018-05-11,marketed sale,62,80,254,121.0,3.3,44,1.6,65.0,52.0,592.0,518.0,130.0,77.0,74.0,Unknown,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,75.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,"Room heaters, electric",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"285, Sutton Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2018-05-11 07:29:50,owner-occupied,,,200003713827.0,Address Matched +102644346212010110413422090009945,Flat 6/A,Telford House,Boxley Road,ME14 2TN,9508607468,C,B,80,85,Maisonette,Mid-Terrace,2010-11-04,E07000110,E14000804,Kent,2010-11-04,marketed sale,77,84,186,134.0,1.7,31,1.2,30.0,30.0,296.0,221.0,88.0,83.0,55.5,Unknown,Y,1st,N,4.0,2107.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,Flat,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.26,0.0,N,natural,"Flat 6/A, Telford House, Boxley Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2010-11-04 13:42:20,owner-occupied,,,200003704519.0,Address Matched +853529626812012110613293999029406,"39, Ringwood Road",,,ME15 7EG,4637692078,E,B,52,82,House,Detached,2012-11-06,E07000110,E14000700,Kent,2012-11-06,marketed sale,48,81,284,89.0,5.4,55,1.7,98.0,52.0,873.0,488.0,108.0,72.0,98.0,Unknown,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,12.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, no insulation",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 12% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"39, Ringwood Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2012-11-06 13:29:39,owner-occupied,8.0,1.0,200003711071.0,Address Matched +1233335489602014110815243024940538,"1b, Tovil Hill",,,ME15 6QS,6651189278,D,B,59,86,House,End-Terrace,2014-11-07,E07000110,E14000804,Kent,2014-11-08,marketed sale,58,87,308,68.0,2.6,59,0.6,30.0,30.0,554.0,390.0,80.0,58.0,44.0,Single,Y,NODATA!,,,2103.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Room thermostat only,Poor,Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"1b, Tovil Hill",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2014-11-08 15:24:30,owner-occupied,6.0,6.0,200003665822.0,Address Matched +1426590449942016032214152946362428,"32, Rocky Hill Terrace",Terrace Road,,ME16 8HT,6919643478,D,C,62,70,Flat,Enclosed Mid-Terrace,2016-03-22,E07000110,E14000804,Kent,2016-03-22,rental (social),66,76,296,208.0,2.0,51,1.4,47.0,28.0,296.0,194.0,227.0,227.0,39.0,Single,Y,Ground,N,,2303.0,0.0,not defined,Normal,0.0,1.0,1.0,33.0,0.0,"Electric immersion, standard tariff",Very Poor,Poor,"Solid, no insulation (assumed)",NO DATA!,,Single glazed,Very Poor,Very Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,(another dwelling above),,,Community scheme,Good,Good,"Flat rate charging, room thermostat only",Poor,Poor,Low energy lighting in 33% of fixed outlets,Average,Average,mains gas (community),0.0,heated corridor,,2.4,,N,natural,"32, Rocky Hill Terrace, Terrace Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2016-03-22 14:15:29,rental (social),,,200003668656.0,Address Matched +754901829262012032016314085608502,"6, All Angels Close",,,ME16 8FR,854295968,B,B,85,85,House,End-Terrace,2012-03-20,E07000110,E14000804,Kent,2012-03-20,new dwelling,88,88,70,70.0,1.3,13,1.3,68.0,68.0,249.0,249.0,94.0,94.0,99.86,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,12.0,,From main system,Good,Good,Average thermal transmittance 0.13 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.23 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.10 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,,,NO DATA!,"6, All Angels Close",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2012-03-20 16:31:40,,16.0,12.0,10014312878.0,Address Matched +1410669239602016022616550746262468,"21, Barned Court",,,ME16 9EL,3611532478,D,C,63,79,House,Semi-Detached,2016-02-26,E07000110,E14000804,Kent,2016-02-26,marketed sale,57,74,242,132.0,4.1,43,2.3,115.0,60.0,702.0,634.0,147.0,86.0,97.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",More Than Typical,0.0,4.0,4.0,9.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 9% of fixed outlets,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"21, Barned Court",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2016-02-26 16:55:07,owner-occupied,,,200003665463.0,Address Matched +480183705032010050512082402068109,"40, Gresham Road",Coxheath,,ME17 4EY,912165768,E,D,44,61,Bungalow,Semi-Detached,2010-05-05,E07000110,E14000804,Kent,2010-05-05,marketed sale,43,48,511,446.0,4.9,77,4.3,73.0,37.0,527.0,440.0,260.0,125.0,63.97,dual,N,NO DATA!,,,2401.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,0.0,0.0,"Electric immersion, off-peak",Very Poor,Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, 150 mm loft insulation",Good,Good,Electric storage heaters,Poor,Very Poor,Manual charge control,Poor,Poor,No low energy lighting,Very Poor,Very Poor,electricity - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.43,0.0,N,natural,"40, Gresham Road, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2010-05-05 12:08:24,owner-occupied,,,200003713373.0,Address Matched +391233939402013080720044567970538,Chilston,Cornwallis Road,,ME16 8BA,2424639668,D,C,61,79,House,Semi-Detached,2013-08-07,E07000110,E14000804,Kent,2013-08-07,marketed sale,55,76,206,102.0,6.7,40,3.4,151.0,76.0,1153.0,776.0,105.0,106.0,170.0,Unknown,Y,NODATA!,,,2106.0,70.0,"double glazing, unknown install date",Normal,0.0,6.0,6.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Partial double glazing,Poor,Poor,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"Chilston, Cornwallis Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2013-08-07 20:04:45,owner-occupied,20.0,0.0,200003657982.0,Address Matched +843672869022012101316254882788682,3 Fox Pitt Cottages,Shingle Barn Lane,West Farleigh,ME15 0PN,8845622078,G,C,17,76,House,End-Terrace,2012-10-08,E07000110,E14000804,Kent,2012-10-13,new dwelling,9,102,655,159.0,11.0,158,-0.4,72.0,41.0,1144.0,608.0,647.0,116.0,72.0,Single,N,NODATA!,,,2101.0,0.0,not defined,Normal,2.0,4.0,4.0,25.0,2.0,"Electric immersion, standard tariff",Very Poor,Very Poor,"Suspended, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, electric",,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, coal",Average,Very Poor,No time or thermostatic control of room temperature,Very Poor,Very Poor,Low energy lighting in 25% of fixed outlets,Average,Average,house coal (not community),0.0,NO DATA!,,,0.0,,natural,"3 Fox Pitt Cottages, Shingle Barn Lane, West Farleigh",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2012-10-13 16:25:48,owner-occupied,8.0,2.0,200003662644.0,Address Matched +1509232439062017010516520849258523,"57, Woodcut",Penenden Heath,,ME14 2EN,2417339478,C,B,72,85,House,Mid-Terrace,2017-01-05,E07000110,E14000804,Kent,2017-01-05,rental (social),72,86,180,75.0,2.4,32,1.0,51.0,51.0,424.0,405.0,133.0,81.0,75.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,4.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,Portable electric heaters (assumed),,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"57, Woodcut, Penenden Heath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2017-01-05 16:52:08,rental (social),,,200003707372.0,Address Matched +1033485875052013102809541496279919,"94, Kingfisher Meadow",,,ME16 8RB,9979565178,B,B,84,85,Flat,Enclosed Mid-Terrace,2013-10-28,E07000110,E14000804,Kent,2013-10-28,rental (private),75,77,162,148.0,2.1,29,1.9,63.0,63.0,97.0,107.0,169.0,138.0,72.0,dual,N,3rd,N,,2401.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,80.0,0.0,"Electric immersion, off-peak",Average,Very Poor,(other premises below),,,Fully double glazed,Good,Good,"System built, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,(another dwelling above),,,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,electricity (not community),0.0,heated corridor,,,0.0,,natural,"94, Kingfisher Meadow",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2013-10-28 09:54:14,rental (private),10.0,8.0,10022892305.0,Address Matched +352195841052009082516080506210863,"1a, Durham Close",,,ME15 8DS,8372166668,C,C,70,76,Flat,Semi-Detached,2009-08-25,E07000110,E14000700,Kent,2009-08-25,rental (social),67,72,265,221.0,2.5,44,2.1,59.0,29.0,374.0,332.0,101.0,95.0,57.45,Single,Y,1st,Y,2.0,2102.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,0.0,0.0,From main system,Good,Very Good,(other premises below),,,Fully double glazed,Average,Average,"System built, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Very Good,"Programmer, no room thermostat",Very Poor,Very Poor,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.43,0.0,N,natural,"1a, Durham Close",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2009-08-25 16:08:05,rental (social),,,200003687001.0,Address Matched +4b009387905e5124119b5c8a3a76d4337454767ebcf2be81bc534df1eb29626c,57 CUMBERLAND AVENUE,,,ME15 7JP,10001560562,E,B,54,84,House,Mid-Terrace,2021-06-28,E07000110,E14000700,Kent,2021-07-01,ECO assessment,51,84,339,90.0,4.1,59,1.1,117.0,58.0,696.0,442.0,187.0,74.0,69.0,Single,Y,,,,,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,0.0,0.0,"From main system, no cylinder thermostat",Average,Average,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,"Pitched, insulated (assumed)",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,,,2.75,0.0,N,natural,57 CUMBERLAND AVENUE,Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2021-07-01 10:18:41,Rented (social),8.0,,200003714150.0,Energy Assessor +934098069922013061216331908728847,The Laurels,Five Oak Lane,Staplehurst,TN12 0HT,4031668078,D,B,62,81,House,Detached,2013-06-12,E07000110,E14000804,Kent,2013-06-12,FiT application,48,72,157,77.0,14.0,41,7.1,169.0,107.0,2698.0,1496.0,185.0,186.0,333.0,Unknown,N,NODATA!,,,2105.0,35.0,secondary glazing,Normal,2.0,11.0,11.0,40.0,2.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Partial secondary glazing,Poor,Poor,"Solid brick, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, oil",Good,Average,Programmer and at least two room thermostats,Good,Good,Low energy lighting in 40% of fixed outlets,Average,Average,oil (not community),0.0,NO DATA!,,,,,natural,"The Laurels, Five Oak Lane, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: before 1900,2013-06-12 16:33:19,owner-occupied,25.0,10.0,200003673956.0,Address Matched +1712693489842019041316235568319328,Annexe,The Granary,Laddingford,ME18 6BX,1817883678,D,A,64,112,Bungalow,Detached,2019-04-12,E07000110,E14000804,Kent,2019-04-13,marketed sale,65,110,259,-110.0,2.5,45,-1.0,86.0,43.0,456.0,406.0,92.0,54.0,55.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,0.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"Annexe, The Granary, Laddingford",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2019-04-13 16:23:55,owner-occupied,,,200003724327.0,Address Matched +369045902222020052700112767908360,"86, Old Tovil Road",,,ME15 6QG,6602087668,C,B,72,88,House,Mid-Terrace,2020-05-20,E07000110,E14000804,Kent,2020-05-27,unknown,71,87,190,72.0,2.6,33,1.0,62.0,62.0,424.0,366.0,123.0,78.0,77.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"86, Old Tovil Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2020-05-27 00:11:27,unknown,,,200003683330.0,Address Matched +979802978912013072818091398270315,"37, Freshland Road",,,ME16 0WH,3596881178,D,B,68,86,House,Semi-Detached,2013-07-24,E07000110,E14000804,Kent,2013-07-28,marketed sale,70,89,186,54.0,2.4,35,0.7,87.0,45.0,390.0,357.0,140.0,77.0,69.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,7.0,0.0,From main system,Good,Good,"Suspended, limited insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 7% of fixed outlets,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"37, Freshland Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2013-07-28 18:09:13,owner-occupied,15.0,1.0,10022901694.0,Address Matched +1163884478312014062607550898240823,13a Wheatsheaf Close,,,ME15 9QA,8370884278,C,B,73,84,House,Mid-Terrace,2014-06-24,E07000110,E14000804,Kent,2014-06-26,marketed sale,72,83,145,75.0,2.9,28,1.5,118.0,59.0,522.0,501.0,72.0,72.0,104.0,Unknown,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,0.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,13a Wheatsheaf Close,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2014-06-26 07:55:08,owner-occupied,20.0,0.0,10091193463.0,Address Matched +1460328578652016070811093398060142,"18, Weyhill Close",,,ME14 5SQ,1228885478,D,C,61,79,House,Detached,2016-07-07,E07000110,E14000804,Kent,2016-07-08,marketed sale,58,77,240,117.0,4.4,42,2.2,108.0,65.0,826.0,651.0,140.0,87.0,105.0,Single,Y,NODATA!,,,2106.0,90.0,double glazing installed before 2002,Normal,4.0,5.0,5.0,33.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Mostly double glazing,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 33% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,2.33,,N,natural,"18, Weyhill Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2016-07-08 11:09:33,owner-occupied,,,200003672934.0,Address Matched +1345011290252016012811123697260830,Onu,High Street,Staplehurst,TN12 0BJ,8002077378,D,C,61,80,House,Semi-Detached,2016-01-28,E07000110,E14000804,Kent,2016-01-28,assessment for green deal,54,75,235,108.0,5.1,43,2.5,136.0,70.0,919.0,664.0,116.0,78.0,119.0,Single,Y,NODATA!,,,2106.0,100.0,secondary glazing,Normal,1.0,5.0,5.0,6.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Full secondary glazing,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 270 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 6% of fixed outlets,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"Onu, High Street, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1900-1929,2016-01-28 11:12:36,owner-occupied,,,200003678927.0,Address Matched +1466269839342016072811183743662188,Flat 4,"8, Faversham Road",Lenham,ME17 2PN,4356036478,B,B,83,83,Flat,NO DATA!,2016-07-28,E07000110,E14000700,Kent,2016-07-28,new dwelling,85,85,101,101.0,1.3,17,1.3,60.0,60.0,188.0,188.0,270.0,270.0,75.0,standard tariff,,top floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Very Good,Average thermal transmittance 0.10 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.20 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.14 W/m-¦K,Very Good,Very Good,"Air source heat pump, Underfloor heating, pipes in screed above insulation, electric",Very Good,Very Good,Programmer and at least two room thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"Flat 4, 8, Faversham Road, Lenham",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2016-07-28 11:18:37,unknown,12.0,12.0,10091194160.0,Address Matched +396346252022020091107020729818700,Flat 191 Scotney Gardens,St. Peters Street,,ME16 0GW,208579668,C,B,75,82,Flat,Mid-Terrace,2020-09-09,E07000110,E14000804,Kent,2020-09-11,rental (private),72,71,221,223.0,1.8,37,1.9,45.0,53.0,244.0,163.0,190.0,166.0,49.0,dual,N,1st,N,,2602.0,100.0,double glazing installed during or after 2002,Normal,1.0,3.0,3.0,100.0,0.0,"Electric immersion, off-peak",Poor,Poor,"To external air, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Room heaters, electric",Very Poor,Poor,Appliance thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,heated corridor,,,,N,natural,"Flat 191 Scotney Gardens, St. Peters Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2020-09-11 07:02:07,rental (private),,,10022893558.0,Address Matched +398075593412009111715343008919765,57 Oxford Gardens,,,ME15 8FJ,7500389668,C,C,70,70,House,End-Terrace,2009-11-17,E07000110,E14000700,Kent,2009-11-17,new dwelling,79,80,147,144.0,2.3,22,2.2,68.0,54.0,348.0,351.0,189.0,189.0,103.31,standard tariff,,NO DATA!,,,2207.0,,NO DATA!,NO DATA!,,,,6.0,0.0,From main system,Poor,Good,Average thermal transmittance 0.18 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.28 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.12 W/m?K,Very Good,Very Good,"Air source heat pump, radiators, electric",Poor,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",0.0,NO DATA!,,2.4,,,NO DATA!,57 Oxford Gardens,Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2009-11-17 15:34:30,,8.0,6.0,10014308996.0,Address Matched +1479064779252017091308355991930547,20 Southfields Way,Harrietsham,,ME17 1GE,5766917478,B,A,85,94,House,Semi-Detached,2017-09-12,E07000110,E14000700,Kent,2017-09-13,new dwelling,86,95,80,19.0,1.7,14,0.4,71.0,71.0,267.0,268.0,103.0,56.0,120.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.27 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.16 W/m-¦K,Good,Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"20 Southfields Way, Harrietsham",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2017-09-13 08:35:59,owner-occupied,16.0,16.0,10093303139.0,Address Matched +1508864909222017010409171309868865,"1c, Bell Lane",Staplehurst,,TN12 0BA,6006039478,B,A,84,95,House,Semi-Detached,2015-10-26,E07000110,E14000804,Kent,2017-01-04,new dwelling,86,96,82,11.0,1.4,14,0.2,63.0,63.0,243.0,243.0,90.0,54.0,98.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.17 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.1 W/m-¦K,Very Good,Very Good,"Boiler & underfloor, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"1c, Bell Lane, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,NO DATA!,2017-01-04 09:17:13,unknown,1.0,1.0,10091196082.0,Address Matched +1687283732832018122012331273278497,"143, Merton Road",Bearsted,,ME15 8LT,3703402678,D,B,67,85,House,Mid-Terrace,2018-12-20,E07000110,E14000700,Kent,2018-12-20,marketed sale,65,83,249,107.0,2.6,44,1.2,81.0,50.0,453.0,415.0,86.0,57.0,60.0,dual,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,38.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 38% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"143, Merton Road, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2018-12-20 12:33:12,owner-occupied,,,200003686154.0,Address Matched +1637391533852020091515362524900156,Tambor House,Pye Corner,Ulcombe,ME17 1EE,1656348578,F,B,35,83,House,Detached,2020-09-14,E07000110,E14000700,Kent,2020-09-15,marketed sale,30,75,259,53.0,19.0,69,5.3,196.0,136.0,2531.0,1144.0,322.0,88.0,275.0,Unknown,N,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,3.0,10.0,10.0,56.0,0.0,"From main system, no cylinder thermostat",Very Poor,Very Poor,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, oil",Poor,Poor,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 56% of fixed outlets,Good,Good,oil (not community),0.0,NO DATA!,,,,N,natural,"Tambor House, Pye Corner, Ulcombe",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2020-09-15 15:36:25,owner-occupied,,,200003725669.0,Address Matched +424555057212020032609194326900677,"5, Honduras Terrace",Invicta Park,,ME14 2PA,6759761768,D,C,60,80,House,Mid-Terrace,2020-02-19,E07000110,E14000804,Kent,2020-03-26,Stock Condition Survey,53,76,291,133.0,4.1,51,1.9,63.0,63.0,726.0,543.0,98.0,67.0,80.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Flat, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"5, Honduras Terrace, Invicta Park",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2020-03-26 09:19:43,rental (social),,,200003723980.0,Address Matched +365818750902009091707222568719438,"14, Bailies Court",Ashford Road,,ME17 1BX,9906057668,B,B,81,83,House,Mid-Terrace,2009-09-17,E07000110,E14000700,Kent,2009-09-17,marketed sale,80,81,124,116.0,2.4,20,2.3,115.0,64.0,334.0,343.0,92.0,92.0,91.5,Single,Y,NO DATA!,,,2105.0,100.0,double glazing installed during or after 2002,Normal,1.0,4.0,4.0,20.0,0.0,From main system,Very Good,Very Good,"Solid, insulated (assumed)",,,Fully double glazed,Good,Good,"Timber frame, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and underfloor heating, mains gas",Very Good,Very Good,Programmer and at least two room thermostats,Average,Average,Low energy lighting in 20% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.75,0.0,N,natural,"14, Bailies Court, Ashford Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2003-2006,2009-09-17 07:22:25,owner-occupied,,,10022895634.0,Address Matched +1220328399802014101419440128849148,"9, Connaught Close",,,ME15 9PX,4823198278,D,B,61,83,House,End-Terrace,2014-10-14,E07000110,E14000700,Kent,2014-10-14,marketed sale,57,82,227,84.0,4.1,44,1.6,98.0,56.0,698.0,516.0,187.0,88.0,94.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,5.0,5.0,27.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 27% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"9, Connaught Close",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2014-10-14 19:44:01,owner-occupied,11.0,3.0,200003680127.0,Address Matched +276096294412015122112191792259263,"5, Cinnamon Grove",,,ME16 0FR,2345421668,C,B,74,84,House,Detached,2015-12-21,E07000110,E14000804,Kent,2015-12-21,marketed sale,69,81,147,84.0,4.5,26,2.6,156.0,88.0,738.0,681.0,157.0,80.0,175.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,8.0,8.0,23.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 270 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 23% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"5, Cinnamon Grove",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2015-12-21 12:19:17,owner-occupied,,,10022896646.0,Address Matched +1548710523812020011519030621900353,"452, Loose Road",,,ME15 9UA,3327312578,C,C,71,80,House,Detached,2020-01-15,E07000110,E14000804,Kent,2020-01-15,marketed sale,68,79,172,113.0,5.9,28,3.8,124.0,124.0,1122.0,953.0,149.0,91.0,213.0,Single,Y,NODATA!,,,2110.0,100.0,double glazing installed during or after 2002,Normal,3.0,8.0,8.0,93.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Average,Average,"Room heaters, wood logs",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and underfloor heating, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in 93% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"452, Loose Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2020-01-15 19:03:06,owner-occupied,,,200003680246.0,Address Matched +167375340832008101608244371968499,"12, Buckland Rise",,,ME16 0YN,4941462568,B,B,84,85,Flat,Enclosed Mid-Terrace,2008-10-15,E07000110,E14000804,Kent,2008-10-16,rental (private),84,84,128,123.0,1.3,21,1.2,43.0,30.0,173.0,174.0,67.0,67.0,60.75,Unknown,Y,2nd,N,3.0,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,3.0,3.0,58.0,0.0,From main system,Very Good,Very Good,(other premises below),,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 58% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,unheated corridor,6.51,2.52,0.0,N,natural,"12, Buckland Rise",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2008-10-16 08:24:43,rental (private),,,10014308207.0,Address Matched +1693009949302019012523461761212648,"53, Bower Street",,,ME16 8SB,4320742678,D,B,62,82,House,End-Terrace,2019-01-24,E07000110,E14000804,Kent,2019-01-25,marketed sale,53,78,248,103.0,5.6,44,2.4,86.0,86.0,915.0,509.0,150.0,151.0,128.0,Unknown,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,6.0,6.0,93.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 93% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"53, Bower Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2019-01-25 23:46:17,owner-occupied,,,200003668099.0,Address Matched +252987999922013021319064619278387,"18, Tarragon Road",,,ME16 0NG,8151979568,C,B,74,85,House,End-Terrace,2013-02-13,E07000110,E14000804,Kent,2013-02-13,marketed sale,74,85,137,65.0,2.7,26,1.3,116.0,58.0,428.0,436.0,91.0,65.0,103.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,0.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"18, Tarragon Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2013-02-13 19:06:46,owner-occupied,14.0,0.0,10022901801.0,Address Matched +1430334104632016040810241441078507,"529, Tonbridge Road",,,ME16 9LN,711573478,E,B,52,85,House,Detached,2016-04-08,E07000110,E14000804,Kent,2016-04-08,marketed sale,32,82,436,87.0,8.0,74,1.7,73.0,66.0,1096.0,516.0,182.0,79.0,108.0,dual,Y,NODATA!,,,2401.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,100.0,0.0,"Electric immersion, off-peak",Average,Poor,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,Portable electric heaters (assumed),,,"Pitched, 270 mm loft insulation",Good,Good,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,NO DATA!,,2.4,,N,natural,"529, Tonbridge Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2016-04-08 10:24:14,owner-occupied,,,200003681731.0,Address Matched +336582229062018040914455365818578,"68, Foxden Drive",Downswood,,ME15 8TF,7671255668,D,A,56,96,House,Enclosed End-Terrace,2018-04-09,E07000110,E14000700,Kent,2018-04-09,rental (private),60,83,359,132.0,2.4,61,0.9,46.0,34.0,461.0,221.0,241.0,73.0,40.0,Unknown,N,NODATA!,,,2603.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,50.0,0.0,"Electric immersion, standard tariff",Very Poor,Poor,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Timber frame, as built, insulated (assumed)",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Room heaters, electric",Very Poor,Poor,Programmer and appliance thermostats,Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,electricity (not community),0.0,NO DATA!,,,,N,natural,"68, Foxden Drive, Downswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1976-1982,2018-04-09 14:45:53,rental (private),,,200003686316.0,Address Matched +197173849642019092113410554512698,"52, Waterlow Road",,,ME14 2TP,2646145568,E,B,52,83,House,Mid-Terrace,2019-09-21,E07000110,E14000804,Kent,2019-09-21,rental (private),45,80,391,117.0,4.3,69,1.3,50.0,50.0,705.0,437.0,155.0,64.0,63.0,Unknown,Y,NODATA!,,,2104.0,50.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,100.0,0.0,From main system,Average,Average,"Suspended, no insulation (assumed)",NO DATA!,,Partial double glazing,Poor,Poor,"Sandstone or limestone, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"52, Waterlow Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2019-09-21 13:41:05,rental (private),,,200003703075.0,Address Matched +1783886496112020021115463220900263,"107, Newbury Avenue",,,ME16 0RE,2346609678,C,B,69,89,House,Mid-Terrace,2020-02-11,E07000110,E14000804,Kent,2020-02-11,rental,67,89,228,55.0,2.4,40,0.6,70.0,49.0,420.0,320.0,81.0,56.0,59.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,1.0,3.0,3.0,57.0,0.0,From main system,Very Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 25 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 57% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"107, Newbury Avenue",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2020-02-11 15:46:32,owner-occupied,,,200003660347.0,Address Matched +380800685512009101415501906919468,"11, Aspian Drive",Coxheath,,ME17 4JZ,4873568668,D,C,59,69,House,Semi-Detached,2009-10-14,E07000110,E14000804,Kent,2009-10-14,marketed sale,56,68,326,241.0,3.7,53,2.7,57.0,34.0,564.0,435.0,136.0,120.0,69.2,Unknown,Y,NO DATA!,,,2104.0,85.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,33.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Partial double glazing,Poor,Poor,"Cavity wall, as built, partial insulation (assumed)",Average,Average,"Room heaters, electric",,,"Pitched, 75mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Poor,Poor,Low energy lighting in 33% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.3,0.0,N,natural,"11, Aspian Drive, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1976-1982,2009-10-14 15:50:19,owner-occupied,,,200003714129.0,Address Matched +67853896132019061719395638968803,"10, Coombe Road",,,ME15 6UE,9318844468,C,B,72,87,House,Semi-Detached,2019-06-17,E07000110,E14000804,Kent,2019-06-17,marketed sale,71,86,200,82.0,2.3,35,1.0,50.0,50.0,404.0,374.0,93.0,61.0,66.0,Single,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,1.0,3.0,3.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Timber frame, as built, insulated (assumed)",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"10, Coombe Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2019-06-17 19:39:56,owner-occupied,,,200003682071.0,Address Matched +4b8d7a767716513a28faf14438634b5cad59e0879a2f22464d6bbb105b696792,27 Barty Way,,,ME14 4GE,10001439690,B,A,84,92,House,Detached,2021-09-15,E07000110,E14000804,Kent,2021-09-15,new dwelling,84,93,86,32.0,2.0,15,0.8,94.0,94.0,322.0,323.0,100.0,57.0,135.0,standard tariff,,,N,,,100.0,,,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.18 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.41,,,,27 Barty Way,Maidstone,Maidstone and The Weald,Thurnham,2019,2021-09-15 15:09:52,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,1.0,,10094444547.0,Address Matched +875143360852013012320592395270503,"1, Downs Road",Penenden Heath,,ME14 2JL,5377054078,D,C,64,74,House,Detached,2013-01-23,E07000110,E14000804,Kent,2013-01-23,marketed sale,58,70,186,130.0,6.3,36,4.5,144.0,75.0,1041.0,936.0,120.0,121.0,176.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,3.0,8.0,8.0,9.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 9% of fixed outlets,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"1, Downs Road, Penenden Heath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2013-01-23 20:59:23,owner-occupied,22.0,2.0,200003706860.0,Address Matched +1244111859602014122316575036042878,"62, Wallis Avenue",,,ME15 9FU,2687950378,B,A,83,94,House,Mid-Terrace,2014-12-23,E07000110,E14000700,Kent,2014-12-23,new dwelling,85,95,94,21.0,1.6,17,0.4,60.0,60.0,287.0,287.0,87.0,55.0,94.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.18 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"62, Wallis Avenue",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2014-12-23 16:57:50,unknown,10.0,10.0,10014315857.0,Address Matched +598905639702016012623150780469218,"8, Bensted Close",Hunton,,ME15 0SD,8792534868,D,A,65,103,House,Semi-Detached,2016-01-19,E07000110,E14000804,Kent,2016-01-26,rental (social),68,103,198,-32.0,3.1,33,-0.5,60.0,60.0,618.0,385.0,246.0,246.0,94.0,Single,N,NODATA!,,,2204.0,100.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,100.0,0.0,"From main system, plus solar",Poor,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 100 mm loft insulation",Average,Average,"Air source heat pump, radiators, electric",Good,Very Good,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,NO DATA!,,,,Y,natural,"8, Bensted Close, Hunton",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2016-01-26 23:15:07,rental (social),,,200003662502.0,Address Matched +686979700932011100712303311068797,"2, Malus Close",,,ME5 9SU,761770968,D,C,62,70,House,Detached,2011-10-06,E07000110,E14000700,Kent,2011-10-07,marketed sale,58,67,227,176.0,5.0,44,3.9,109.0,55.0,755.0,628.0,142.0,116.0,102.4,Unknown,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,7.0,7.0,0.0,0.0,From main system,Good,Good,"Solid, limited insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,2.37,0.0,,natural,"2, Malus Close",Maidstone,Faversham and Mid Kent,CHATHAM,England and Wales: 1996-2002,2011-10-07 12:30:33,owner-occupied,13.0,0.0,200003709234.0,Address Matched +1688523293212019010511212491010261,Coachmans Cottage,"Milestone Buildings, High Street",Staplehurst,TN12 0AB,2193312678,E,C,46,69,Flat,Detached,2019-01-04,E07000110,E14000804,Kent,2019-01-05,rental (private),44,47,696,640.0,2.9,118,2.7,22.0,24.0,552.0,290.0,178.0,113.0,25.0,dual,N,1st,Y,,2602.0,0.0,not defined,Normal,0.0,1.0,1.0,100.0,0.0,"Electric immersion, off-peak",Poor,Poor,(other premises below),NO DATA!,,Single glazed,Very Poor,Very Poor,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Average,Average,"Room heaters, electric",Very Poor,Poor,Appliance thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,no corridor,,,,N,natural,"Coachmans Cottage, Milestone Buildings, High Street, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1983-1990,2019-01-05 11:21:24,rental (private),,,, +4b8099eefc98c1461131fc24b70f4979fe1b0efc5aafb645c1985f3318a7c844,30 Gorham Drive,Downswood,,ME15 8UU,10001470176,D,B,67,88,House,Semi-Detached,2021-09-29,E07000110,E14000700,Kent,2021-09-29,rental,66,88,252,70.0,2.5,44,0.7,54.0,54.0,418.0,324.0,103.0,69.0,56.0,dual,Y,,,,,0.0,not defined,More Than Typical,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.45,0.0,N,natural,"30 Gorham Drive, Downswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2021-09-29 19:56:16,Owner-occupied,5.0,,200003691413.0,Energy Assessor +1517473859212017020709443898030940,"31, Fullingpits Avenue",,,ME16 9DZ,9065989478,B,B,89,90,House,Detached,2017-02-07,E07000110,E14000804,Kent,2017-02-07,new dwelling,89,91,52,42.0,1.4,9,1.1,80.0,80.0,290.0,292.0,111.0,60.0,150.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.18 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"31, Fullingpits Avenue",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2017-02-07 09:44:38,unknown,20.0,20.0,10093303439.0,Address Matched +1244555589062014120215412910528794,"93, Calder Road",,,ME14 2RA,9136850378,D,B,65,88,House,End-Terrace,2014-12-02,E07000110,E14000804,Kent,2014-12-02,non marketed sale,65,89,215,48.0,2.7,41,0.7,72.0,43.0,511.0,367.0,117.0,78.0,67.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,4.0,4.0,33.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 33% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"93, Calder Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2014-12-02 15:41:29,rental (social),9.0,3.0,200003671107.0,Address Matched +1288635121912015031218403797950138,"24, Oakwood Road",,,ME16 8AB,1822173378,F,D,26,62,House,End-Terrace,2015-03-10,E07000110,E14000804,Kent,2015-03-12,marketed sale,20,50,535,249.0,13.0,95,6.1,107.0,73.0,2419.0,1331.0,154.0,112.0,138.0,Single,Y,NODATA!,,,2104.0,70.0,"double glazing, unknown install date",Normal,1.0,7.0,6.0,55.0,0.0,From main system,Average,Average,"Suspended, no insulation (assumed)",NO DATA!,,Partial double glazing,Poor,Poor,"Granite or whinstone, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, mains gas",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 55% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"24, Oakwood Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2015-03-12 18:40:37,owner-occupied,,,200003657241.0,Address Matched +55300300132019101023043630068092,"76, Clock House Rise",Coxheath,,ME17 4GS,270056568,C,B,75,89,House,Mid-Terrace,2019-10-09,E07000110,E14000804,Kent,2019-10-10,marketed sale,74,88,164,60.0,2.2,29,0.9,64.0,64.0,351.0,347.0,123.0,61.0,78.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,2.0,4.0,4.0,100.0,0.0,"From main system, no cylinder thermostat",Average,Average,"Suspended, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Timber frame, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"76, Clock House Rise, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2019-10-10 23:04:36,owner-occupied,,,10022900585.0,Address Matched +1710338364132019040215550010078208,"12, Cheriton Way",,,ME16 0PH,6860273678,E,C,49,73,House,Semi-Detached,2019-04-01,E07000110,E14000804,Kent,2019-04-02,marketed sale,44,69,335,163.0,6.0,59,2.9,70.0,70.0,1158.0,788.0,114.0,77.0,102.0,Single,Y,NODATA!,,,2107.0,100.0,double glazing installed during or after 2002,Normal,1.0,6.0,6.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"12, Cheriton Way",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2019-04-02 15:55:00,owner-occupied,,,200003660110.0,Address Matched +1356529229612015082109274994250838,"3, Fitzgerald Close",Staplehurst,,TN12 0FD,8852948378,B,A,84,97,Bungalow,Mid-Terrace,2015-08-21,E07000110,E14000804,Kent,2015-08-21,new dwelling,87,100,87,-17.0,1.0,15,-0.2,47.0,47.0,191.0,191.0,79.0,46.0,65.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.19 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.10 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"3, Fitzgerald Close, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,NO DATA!,2015-08-21 09:27:49,owner-occupied,10.0,10.0,10091194379.0,Address Matched +4bb2dfa97a9107866ef946e796bd2c7003fc40a4a7b7fda32a856e2af4c964f1,56 Gilbert Way,,,ME17 3TT,10001550429,B,A,84,97,House,Mid-Terrace,2021-09-16,E07000110,E14000700,Kent,2021-09-16,new dwelling,87,99,85,-8.0,1.1,15,-0.1,67.0,67.0,194.0,194.0,66.0,40.0,74.0,standard tariff,,,N,,,100.0,,,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.33,,,,56 Gilbert Way,Maidstone,Faversham and Mid Kent,MAIDSTONE,2017,2021-09-16 14:23:41,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,8.0,,10094441899.0,Energy Assessor +414981400202010010214480877112198,"18, Aden Terrace",Invicta Park,,ME14 2NR,5215201768,D,D,63,63,House,End-Terrace,2009-12-21,E07000110,E14000804,Kent,2010-01-02,marketed sale,61,61,276,276.0,3.6,45,3.6,40.0,40.0,618.0,618.0,91.0,91.0,79.8,Single,Y,NO DATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,100.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.3,0.0,N,natural,"18, Aden Terrace, Invicta Park",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2010-01-02 14:48:08,owner-occupied,,,200003724086.0,Address Matched +54207252132009021615094293968109,Flat 2 Second Floor,1 Old Tovil Road,,ME15 6PR,5943197568,E,E,42,46,Flat,Semi-Detached,2009-02-14,E07000110,E14000804,Kent,2009-02-16,rental (private),60,63,659,604.0,1.9,99,1.8,10.0,10.0,345.0,326.0,148.0,130.0,19.32,dual,Y,3rd,N,4.0,2602.0,100.0,double glazing installed before 2002,Normal,0.0,1.0,1.0,100.0,0.0,"Electric immersion, off-peak",Very Poor,Poor,(other premises below),,,Fully double glazed,Average,Average,"Timber frame, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, electric",,,"Pitched, 100 mm loft insulation",Average,Average,"Room heaters, electric",Very Poor,Poor,Appliance thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity - this is for backwards compatibility only and should not be used,0.0,unheated corridor,1.48,2.2,0.0,N,natural,"Flat 2 Second Floor, 1 Old Tovil Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2009-02-16 15:09:42,rental (private),,,200003683399.0,Address Matched +698125639222011102415182641848349,"64, Bower Mount Road",,,ME16 8AT,4425351968,E,D,52,60,House,Semi-Detached,2011-10-24,E07000110,E14000804,Kent,2011-10-24,marketed sale,55,63,260,215.0,9.6,40,8.0,157.0,90.0,2039.0,1718.0,124.0,125.0,203.7,dual,Y,NODATA!,,,2106.0,45.0,"double glazing, unknown install date",Normal,1.0,8.0,8.0,25.0,2.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Partial double glazing,Poor,Poor,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, wood logs",,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 25% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,2.7,0.0,,natural,"64, Bower Mount Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2011-10-24 15:18:26,owner-occupied,20.0,5.0,200003657668.0,Address Matched +296581170042009060318282564210878,"34, Harrow Way",Weavering,,ME14 5TU,9032372668,D,C,66,76,House,Semi-Detached,2009-06-03,E07000110,E14000700,Kent,2009-06-03,rental (private),61,73,269,190.0,3.7,45,2.6,51.0,40.0,420.0,317.0,133.0,100.0,95.65,dual,Y,NO DATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,1.0,5.0,5.0,73.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Poor,Poor,Low energy lighting in 73% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.37,0.0,N,natural,"34, Harrow Way, Weavering",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2009-06-03 18:28:25,rental (private),,,200003689831.0,Address Matched +15766162612010032909555995200247,The Old Post Office Cottage,The Street,Wormshill,ME9 0TT,2786252468,G,F,20,21,House,Detached,2010-03-27,E07000110,E14000700,Kent,2010-03-29,marketed sale,47,48,281,273.0,13.0,48,12.0,260.0,137.0,2973.0,3022.0,354.0,354.0,266.99,Single,N,NO DATA!,,,2106.0,0.0,not defined,More Than Typical,1.0,10.0,10.0,10.0,3.0,From main system,Poor,Good,"Solid, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Timber frame, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, LPG",Poor,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 10% of fixed outlets,Poor,Poor,LPG - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.84,0.0,N,natural,"The Old Post Office Cottage, The Street, Wormshill",Maidstone,Faversham and Mid Kent,SITTINGBOURNE,England and Wales: before 1900,2010-03-29 09:55:59,owner-occupied,,,200003732891.0,Address Matched +1090873505452014021518573197940919,"83, Postley Road",,,ME15 6TP,9916579178,C,B,72,87,House,End-Terrace,2014-02-14,E07000110,E14000804,Kent,2014-02-15,marketed sale,72,88,163,57.0,2.4,31,0.9,81.0,51.0,383.0,375.0,147.0,80.0,77.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,40.0,0.0,From main system,Good,Good,"Solid, limited insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 40% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"83, Postley Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2014-02-15 18:57:31,owner-occupied,10.0,4.0,200003686806.0,Address Matched +1528025489922017031618353150468703,"7, Old School Close",Lenham,,ME17 2HD,570860578,C,A,70,106,House,Detached,2017-03-16,E07000110,E14000700,Kent,2017-03-16,marketed sale,67,101,216,-31.0,2.8,38,-0.3,54.0,54.0,476.0,478.0,134.0,85.0,74.0,Unknown,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Solid, limited insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"7, Old School Close, Lenham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1996-2002,2017-03-16 18:35:31,owner-occupied,,,200003708273.0,Address Matched +1504879072332017021017044766978104,2 The Stables,Mote Park,,ME15 8AA,7466109478,C,B,76,84,House,End-Terrace,2017-02-10,E07000110,E14000700,Kent,2017-02-10,new dwelling,73,81,139,90.0,3.6,25,2.4,88.0,88.0,638.0,639.0,107.0,58.0,148.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.25 W/m-¦K,Good,Good,Fully double glazed,Good,Good,Average thermal transmittance 0.28 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.18 W/m-¦K,Good,Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in 87% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"2 The Stables, Mote Park",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2017-02-10 17:04:47,unknown,31.0,27.0,10091195104.0,Address Matched +252452432922020081216191789228480,"128, Bower Street",,,ME16 8BE,8810329568,C,B,71,86,House,Mid-Terrace,2020-08-12,E07000110,E14000804,Kent,2020-08-12,rental (private),69,85,183,73.0,2.8,32,1.2,76.0,76.0,492.0,401.0,96.0,67.0,88.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,91.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 91% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"128, Bower Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2020-08-12 16:19:17,rental (private),,,200003667288.0,Address Matched +78770294112009012613494303210047,"6, Recreation Close",,,ME14 5AZ,756435468,D,C,56,77,House,Semi-Detached,2009-01-26,E07000110,E14000804,Kent,2009-01-26,marketed sale,49,73,368,190.0,4.6,62,2.4,57.0,36.0,593.0,322.0,153.0,111.0,83.18,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,More Than Typical,0.0,3.0,3.0,40.0,0.0,From main system,Average,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 25 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Average,Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 40% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.37,0.0,N,natural,"6, Recreation Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2009-01-26 13:49:43,owner-occupied,,,200003705263.0,Address Matched +516229919942010072121451979802498,Flat 6 Lee Heights,Bambridge Court,,ME14 2LG,949518768,D,B,67,82,Flat,Enclosed End-Terrace,2010-07-21,E07000110,E14000804,Kent,2010-07-21,marketed sale,78,78,167,166.0,2.2,25,2.2,62.0,70.0,232.0,137.0,327.0,162.0,88.14,Unknown,N,1st,N,4.0,2601.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,80.0,0.0,"Electric immersion, standard tariff",Very Poor,Poor,(other premises below),,,Fully double glazed,Good,Good,"Timber frame, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Room heaters, electric",Very Poor,Poor,No thermostatic control of room temperature,Poor,Poor,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,electricity - this is for backwards compatibility only and should not be used,0.0,unheated corridor,4.48,2.26,0.0,N,natural,"Flat 6 Lee Heights, Bambridge Court",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2010-07-21 21:45:19,owner-occupied,,,10022892978.0,Address Matched +1815305128032020080409302537078307,"8, Barty Way",Thurnham,,ME14 4GB,2737331778,B,B,84,91,House,Semi-Detached,2020-08-04,E07000110,E14000700,Kent,2020-08-04,new dwelling,84,91,88,40.0,1.9,15,0.9,88.0,88.0,337.0,337.0,74.0,74.0,125.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,"From main system, flue gas heat recovery",Very Good,Very Good,Average thermal transmittance 0.18 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"8, Barty Way, Thurnham",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2020-08-04 09:30:25,unknown,1.0,1.0,10094444528.0,Address Matched +598146739222011022819520644188549,"7, Sherway Close",Headcorn,,TN27 9SQ,4410334868,C,C,74,77,Flat,Mid-Terrace,2011-02-28,E07000110,E14000700,Kent,2011-02-28,rental (private),70,73,294,271.0,2.0,44,1.8,44.0,29.0,205.0,185.0,119.0,119.0,45.07,dual,N,1st,Y,2.0,2401.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,50.0,0.0,"Electric immersion, off-peak",Poor,Poor,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,"Pitched, 150 mm loft insulation",Good,Good,Electric storage heaters,Poor,Poor,Manual charge control,Poor,Poor,Low energy lighting in 50% of fixed outlets,Good,Good,electricity - this is for backwards compatibility only and should not be used,0.0,heated corridor,,2.38,0.0,N,natural,"7, Sherway Close, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,England and Wales: 1983-1990,2011-02-28 19:52:06,rental (private),,,200003701046.0,Address Matched +1538388399062017100316303691978123,16 Parks Road,Harrietsham,,ME17 1GR,2950931578,B,A,84,96,House,Semi-Detached,2017-10-03,E07000110,E14000700,Kent,2017-10-03,new dwelling,87,99,82,-6.0,1.1,14,-0.1,55.0,55.0,196.0,196.0,79.0,47.0,78.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.2 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.2 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.1 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"16 Parks Road, Harrietsham",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2017-10-03 16:30:36,owner-occupied,15.0,15.0,10093305149.0,Address Matched +1481026242352017032114234093230448,"22, Hop Pocket Way",Headcorn,,TN27 9AF,4876237478,B,A,84,93,House,Detached,2017-03-21,E07000110,E14000700,Kent,2017-03-21,new dwelling,84,93,87,28.0,1.9,15,0.6,71.0,71.0,305.0,306.0,115.0,63.0,123.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.26 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.10 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"22, Hop Pocket Way, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,NO DATA!,2017-03-21 14:23:40,unknown,20.0,20.0,10093302570.0,Address Matched +747213049022012020619572615768272,"8, Greenfields",,,ME15 8ET,7124435968,G,E,16,50,House,Detached,2012-02-06,E07000110,E14000700,Kent,2012-02-06,marketed sale,16,44,614,310.0,14.0,119,7.3,113.0,58.0,2273.0,1203.0,217.0,114.0,121.2,Unknown,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,2.0,5.0,5.0,7.0,1.0,"From main system, no cylinder thermostat",Poor,Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 7% of fixed outlets,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,2.3,0.0,,natural,"8, Greenfields",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2012-02-06 19:57:26,owner-occupied,14.0,1.0,200003685539.0,Address Matched +91962599042011040823352741690288,Saffrons,Warmlake Road,Chart Sutton,ME17 3RP,9025496468,D,D,64,66,House,Detached,2011-04-08,E07000110,E14000700,Kent,2011-04-08,marketed sale,59,59,252,248.0,5.1,42,5.0,97.0,67.0,810.0,816.0,123.0,123.0,95.14,Single,Y,NO DATA!,,,2106.0,90.0,"double glazing, unknown install date",Normal,1.0,6.0,6.0,54.0,0.0,From main system,Very Good,Very Good,"Solid, insulated",,,Mostly double glazing,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 54% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.43,0.0,N,natural,"Saffrons, Warmlake Road, Chart Sutton",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2011-04-08 23:35:27,owner-occupied,,,200003690383.0,Address Matched +1677746234912019100910032593089462,Flat 212,Kent House,Romney Place,ME15 6LA,4285431678,D,D,67,67,Flat,Detached,2018-11-09,E07000110,E14000804,Kent,2019-10-09,non marketed sale,70,70,218,218.0,2.1,37,2.1,45.0,45.0,385.0,385.0,276.0,276.0,57.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,"Electric immersion, standard tariff",Very Poor,Poor,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.34 W/m-¦K,Good,Good,,,,(other premises above),,,Electric underfloor heating,Very Poor,Poor,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"Flat 212, Kent House, Romney Place",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2019-10-09 10:03:25,unknown,21.0,21.0,, +1179855333912015051423574290950526,"7, Blunden Lane",Yalding,,ME18 6JQ,5674306278,C,B,73,85,House,Semi-Detached,2015-05-12,E07000110,E14000804,Kent,2015-05-14,marketed sale,70,83,169,84.0,3.1,30,1.6,90.0,63.0,526.0,491.0,134.0,85.0,105.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,7.0,7.0,57.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 57% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"7, Blunden Lane, Yalding",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2015-05-14 23:57:42,owner-occupied,,,200003661523.0,Address Matched +1797769205032020050614105273078608,Flat 1,102 Union Street,,ME14 1EH,863600778,D,D,56,56,Flat,Mid-Terrace,2020-05-06,E07000110,E14000804,Kent,2020-05-06,new dwelling,60,60,432,432.0,2.0,73,2.0,26.0,26.0,508.0,508.0,156.0,156.0,27.0,standard tariff,,ground floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,Electric instantaneous at point of use,Very Poor,Poor,Average thermal transmittance 0.55 W/m-¦K,Poor,Poor,Single glazed,Very Poor,Very Poor,Average thermal transmittance 0.54 W/m-¦K,Good,Good,,,,(other premises above),,,"Room heaters, electric",Very Poor,Poor,Programmer and appliance thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"Flat 1, 102 Union Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2020-05-06 14:10:52,rental (social),4.0,4.0,10095448600.0,Address Matched +224268689812015050112152896250053,"23, Sandy Mount",Bearsted,,ME14 4PJ,397967568,D,B,62,81,House,Detached,2015-04-29,E07000110,E14000700,Kent,2015-05-01,ECO assessment,54,77,231,102.0,5.6,43,2.5,71.0,71.0,1049.0,650.0,97.0,97.0,131.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,6.0,6.0,100.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, no insulation",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"23, Sandy Mount, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2015-05-01 12:15:28,owner-occupied,,,200003692498.0,Address Matched +613818159202011040518323187590858,"6, Garden Walk",,,ME15 8GA,7264355868,C,C,78,78,House,Mid-Terrace,2011-04-05,E07000110,E14000700,Kent,2011-04-05,marketed sale,78,78,131,131.0,3.4,21,3.4,103.0,103.0,535.0,535.0,140.0,140.0,90.39,Single,Y,NO DATA!,,,2110.0,100.0,triple glazing,Normal,0.0,5.0,5.0,90.0,0.0,From main system,Very Good,Very Good,"Suspended, insulated (assumed)",,,Fully triple glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in 90% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.34,0.0,N,natural,"6, Garden Walk",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2003-2006,2011-04-05 18:32:31,owner-occupied,,,10022897094.0,Address Matched +541535265152010091722165599900072,"36, Northumberland Court",Northumberland Road,,ME15 7LL,248599768,C,C,72,72,Flat,Semi-Detached,2010-09-17,E07000110,E14000700,Kent,2010-09-17,rental (social),67,67,233,233.0,3.0,39,3.0,43.0,43.0,488.0,488.0,94.0,94.0,76.84,Single,Y,2nd,Y,4.0,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,100.0,0.0,From main system,Very Good,Very Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Flat, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.39,0.0,N,natural,"36, Northumberland Court, Northumberland Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2010-09-17 22:16:55,rental (social),,,200003729034.0,Address Matched +1758205419352019121209021791919068,Flat 10,"13, Francis Moody Close",Harrietsham,ME17 1WH,829917678,B,B,84,84,Flat,Semi-Detached,2019-12-12,E07000110,E14000700,Kent,2019-12-12,new dwelling,88,88,80,80.0,1.0,14,1.0,59.0,59.0,179.0,179.0,70.0,70.0,72.0,standard tariff,,top floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.20 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Flat 10, 13, Francis Moody Close, Harrietsham",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2019-12-12 09:02:17,unknown,10.0,10.0,10094442235.0,Address Matched +655437359102011101418172586899248,Flat 49 Tennyson Lodge,James Whatman Way,,ME14 1FR,6163358868,C,B,80,81,Flat,End-Terrace,2011-10-14,E07000110,E14000804,Kent,2011-10-14,new dwelling,90,91,99,95.0,0.8,13,0.7,45.0,34.0,188.0,190.0,99.0,99.0,57.9,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,4.0,,"Community scheme, no cylinder thermostat",Good,Very Good,(other premises below),,,Fully double glazed,Good,Good,Average thermal transmittance 0.26 W/m?K,Very Good,Very Good,,,,(other premises above),,,Community scheme,Good,Very Good,"Flat rate charging, programmer and TRVs",Average,Average,Low energy lighting in 67% of fixed outlets,Good,Good,NO DATA!,0.0,NO DATA!,,2.4,,,NO DATA!,"Flat 49 Tennyson Lodge, James Whatman Way",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2011-10-14 18:17:25,,6.0,4.0,10014312771.0,Address Matched +644285079142011062017363987792408,"29, Old School Close",Lenham,,ME17 2HD,5136577868,D,C,63,71,House,Semi-Detached,2011-06-20,E07000110,E14000700,Kent,2011-06-20,marketed sale,63,72,251,186.0,2.9,48,2.2,67.0,33.0,427.0,356.0,132.0,102.0,60.8,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,0.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,2.32,0.0,,natural,"29, Old School Close, Lenham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1991-1995,2011-06-20 17:36:39,owner-occupied,7.0,0.0,200003708294.0,Address Matched +992554497152013082912253097270516,"6, Carmans Close",Loose,,ME15 0DR,5652772178,C,B,70,82,House,Detached,2013-08-29,E07000110,E14000804,Kent,2013-08-29,marketed sale,66,80,157,87.0,4.5,30,2.5,74.0,74.0,762.0,650.0,140.0,78.0,149.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,8.0,8.0,100.0,0.0,From main system,Good,Good,"Solid, limited insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, mains gas",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"6, Carmans Close, Loose",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2013-08-29 12:25:30,owner-occupied,15.0,15.0,200003663093.0,Address Matched +1578282923512017092813004092230251,"1, Bodsham Crescent",Bearsted,,ME15 8NL,2120324578,D,C,64,79,House,Detached,2017-09-26,E07000110,E14000700,Kent,2017-09-28,marketed sale,67,81,236,132.0,3.1,36,1.6,77.0,58.0,658.0,606.0,130.0,83.0,88.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,6.0,6.0,67.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, wood logs",,,"Pitched, insulated (assumed)",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 67% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"1, Bodsham Crescent, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2017-09-28 13:00:40,owner-occupied,,,200003693017.0,Address Matched +456390765252015061711543999950078,"1, Greystones Road",Bearsted,,ME15 8PD,817593768,D,B,61,82,House,Detached,2015-06-17,E07000110,E14000700,Kent,2015-06-17,none of the above,53,77,263,116.0,5.8,46,2.6,91.0,70.0,993.0,670.0,176.0,92.0,124.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,7.0,6.0,69.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 25 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 69% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"1, Greystones Road, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2015-06-17 11:54:39,owner-occupied,,,200003690840.0,Address Matched +249006629802019082214100659912528,Flat 5,"61, Bower Mount Road",,ME16 8AS,3847129568,C,C,69,75,Flat,Enclosed Mid-Terrace,2019-08-22,E07000110,E14000804,Kent,2019-08-22,rental (social),51,54,827,767.0,2.2,140,2.1,32.0,22.0,71.0,16.0,319.0,319.0,16.0,dual,N,1st,N,,2699.0,0.0,not defined,Normal,0.0,1.0,0.0,50.0,0.0,No system present: electric immersion assumed,Average,Poor,(another dwelling below),NO DATA!,,Single glazed,Very Poor,Very Poor,"Solid brick, as built, no insulation (assumed)",Poor,Poor,,,,(another dwelling above),,,No system present: electric heaters assumed,Very Poor,Poor,,Very Poor,Very Poor,Low energy lighting in 50% of fixed outlets,Good,Good,To be used only when there is no heating/hot-water system,0.0,unheated corridor,3.0,,,N,natural,"Flat 5, 61, Bower Mount Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2019-08-22 14:10:06,rental (social),,,200003658072.0,Address Matched +947599436732013061015540020978301,"6, Oak Tree Close",Marden,,TN12 9EW,3170369078,E,B,46,82,House,Enclosed End-Terrace,2013-06-10,E07000110,E14000804,Kent,2013-06-10,marketed sale,51,84,385,105.0,3.0,68,0.8,42.0,42.0,532.0,387.0,205.0,110.0,45.0,Single,N,NODATA!,,,2401.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,50.0,0.0,"Electric immersion, standard tariff",Very Poor,Very Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,"Pitched, 200 mm loft insulation",Good,Good,Electric storage heaters,Very Poor,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 50% of fixed outlets,Good,Good,electricity (not community),0.0,NO DATA!,,,0.0,,natural,"6, Oak Tree Close, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1983-1990,2013-06-10 15:54:00,owner-occupied,4.0,2.0,200003709440.0,Address Matched +414898701812009122112423100919373,Flat 2,60 Buckland Road,,ME16 0SH,3312101768,D,C,59,78,Flat,Detached,2009-12-19,E07000110,E14000804,Kent,2009-12-21,rental (private),56,68,478,344.0,2.7,72,2.0,31.0,21.0,278.0,161.0,173.0,99.0,37.96,dual,N,1st,N,3.0,2401.0,20.0,double glazing installed before 2002,Normal,0.0,2.0,1.0,50.0,0.0,"Electric immersion, off-peak",Very Poor,Poor,(other premises below),,,Some double glazing,Very Poor,Very Poor,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,Portable electric heaters,,,(another dwelling above),,,Electric storage heaters,Poor,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 50% of fixed outlets,Good,Good,electricity - this is for backwards compatibility only and should not be used,0.0,unheated corridor,2.76,2.76,0.0,N,natural,"Flat 2, 60 Buckland Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2009-12-21 12:42:31,rental (private),,,200003670207.0,Address Matched +1021483589942013100820364919470138,"15, Hyde Road",,,ME16 0BW,9948484178,E,B,53,81,House,Semi-Detached,2013-10-07,E07000110,E14000804,Kent,2013-10-08,marketed sale,47,80,277,92.0,5.7,54,1.9,77.0,58.0,951.0,557.0,170.0,71.0,107.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,3.0,6.0,6.0,67.0,0.0,From main system,Average,Average,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 67% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"15, Hyde Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2013-10-08 20:36:49,owner-occupied,12.0,8.0,200003659859.0,Address Matched +191240467552009051913393406289956,"14, Wrangleden Road",,,ME15 9LS,9690764568,C,C,77,79,Flat,Semi-Detached,2008-11-21,E07000110,E14000700,Kent,2009-05-19,rental (social),75,76,199,191.0,1.9,33,1.9,53.0,28.0,282.0,286.0,75.0,75.0,58.74,Single,Y,Ground,N,2.0,2106.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,14.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 14% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.28,0.0,N,natural,"14, Wrangleden Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2009-05-19 13:39:34,rental (social),,,200003682514.0,Address Matched +1554190959602017062218315955232928,2 Keepers Cottages,Thurnham Lane,Bearsted,ME14 4PW,1646252578,D,B,60,81,House,Semi-Detached,2017-06-22,E07000110,E14000700,Kent,2017-06-22,marketed sale,54,77,252,105.0,4.6,46,2.0,106.0,64.0,784.0,556.0,139.0,85.0,99.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,2.0,6.0,6.0,33.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, dual fuel (mineral and wood)",,,"Roof room(s), ceiling insulated",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 33% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"2 Keepers Cottages, Thurnham Lane, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2017-06-22 18:31:59,owner-occupied,,,200003727329.0,Address Matched +295310526132009060115180881068503,2 Hill Cottage,Roseacre Lane,Bearsted,ME14 4JX,2371562668,E,D,46,68,House,Semi-Detached,2009-06-01,E07000110,E14000700,Kent,2009-06-01,rental (private),47,70,412,230.0,5.5,60,3.0,52.0,52.0,838.0,475.0,153.0,111.0,90.0,Single,Y,NO DATA!,,,2105.0,100.0,double glazing installed before 2002,Normal,1.0,5.0,5.0,78.0,2.0,From main system,Average,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, wood logs",,,"Pitched, 150mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Average,Good,Programmer and at least 2 room thermostats,Average,Average,Low energy lighting in 78% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,0.0,N,natural,"2 Hill Cottage, Roseacre Lane, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2009-06-01 15:18:08,rental (private),,,200003692897.0,Address Matched +824586660812012081510284799920802,"17, Coriander Drive",,,ME16 0ZD,8272090078,C,B,78,89,House,End-Terrace,2012-08-15,E07000110,E14000804,Kent,2012-08-15,marketed sale,79,90,114,43.0,2.0,22,0.8,52.0,52.0,338.0,338.0,88.0,62.0,90.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"17, Coriander Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2012-08-15 10:28:47,owner-occupied,8.0,8.0,10014306161.0,Address Matched +1175942959022019120214494085728441,Alma,Thorn Road,Marden,TN12 9EJ,4838575278,E,C,50,77,House,Semi-Detached,2019-12-02,E07000110,E14000804,Kent,2019-12-02,rental (private),48,77,340,139.0,4.9,55,2.0,127.0,67.0,958.0,610.0,101.0,71.0,90.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,10.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, wood logs",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 10% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"Alma, Thorn Road, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1930-1949,2019-12-02 14:49:40,rental (private),,,200003709130.0,Address Matched +552431329762019123014411560508061,"2a, Thornhill Place",,,ME14 2SF,6650270868,E,C,42,73,House,End-Terrace,2019-12-30,E07000110,E14000804,Kent,2019-12-30,rental (private),38,69,377,163.0,7.2,66,3.2,131.0,76.0,1432.0,849.0,104.0,75.0,110.0,Single,Y,NODATA!,,,2106.0,90.0,"double glazing, unknown install date",Normal,1.0,5.0,3.0,27.0,0.0,From main system,Good,Good,"To unheated space, no insulation (assumed)",NO DATA!,,Mostly double glazing,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,Portable electric heaters (assumed),,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 27% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"2a, Thornhill Place",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2019-12-30 14:41:15,rental (private),,,200003729433.0,Address Matched +355333884112020010614391928000562,"71, Sutton Road",,,ME15 9AD,5250486668,D,C,58,80,House,Semi-Detached,2020-01-06,E07000110,E14000700,Kent,2020-01-06,marketed sale,51,76,309,140.0,4.6,55,2.1,98.0,63.0,778.0,563.0,99.0,71.0,83.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,44.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 44% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"71, Sutton Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1900-1929,2020-01-06 14:39:19,owner-occupied,,,200003677508.0,Address Matched +484512009962010051311052735278620,"29, Oxford Road",,,ME15 8DA,2355095768,D,C,67,74,House,Semi-Detached,2010-05-13,E07000110,E14000700,Kent,2010-05-13,rental (social),63,69,241,199.0,4.0,40,3.3,92.0,51.0,589.0,504.0,104.0,104.0,98.7,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,4.0,4.0,20.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 20% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.42,0.0,N,natural,"29, Oxford Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2010-05-13 11:05:27,rental (social),,,200003713279.0,Address Matched +240054070442009030515511059810458,"7, Hazlitt Drive",,,ME16 0EG,5429678568,B,B,87,88,Flat,Detached,2009-03-05,E07000110,E14000804,Kent,2009-03-05,new dwelling,87,87,98,95.0,1.2,0,1.1,45.0,36.0,163.0,163.0,86.0,86.0,0.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,9.0,,SAP05:Hot-Water,,,(other premises below),,,Fully double glazed,Good,Good,Average thermal transmittance 0.29 W/m²K,Very Good,Very Good,SAP05:Secondary-Heating,,,(another dwelling above),,,SAP05:Main-Heating,,,SAP05:Main-Heating-Controls,,,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,,,,NO DATA!,"7, Hazlitt Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2009-03-05 15:51:10,,12.0,9.0,200003658880.0,Address Matched +50931554652015011313182397050649,"11, Chippendayle Drive",Harrietsham,,ME17 1AD,6946473468,D,B,56,85,House,Detached,2015-01-07,E07000110,E14000700,Kent,2015-01-13,ECO assessment,47,81,301,92.0,6.9,53,2.2,75.0,75.0,1209.0,598.0,191.0,78.0,130.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,7.0,7.0,100.0,0.0,From main system,Average,Average,"Solid, limited insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"11, Chippendayle Drive, Harrietsham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1996-2002,2015-01-13 13:18:23,owner-occupied,,,200003702998.0,Address Matched +243661653012011120218243690099650,"4, Belts Wood",,,ME15 9GL,6098309568,C,C,76,77,House,Mid-Terrace,2011-12-02,E07000110,E14000700,Kent,2011-12-02,rental (private),77,78,137,131.0,2.4,26,2.3,81.0,51.0,361.0,365.0,108.0,108.0,91.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,40.0,0.0,From main system,Good,Good,"Solid, limited insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 40% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,2.4,0.0,,natural,"4, Belts Wood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1996-2002,2011-12-02 18:24:36,rental (private),10.0,4.0,10014307506.0,Address Matched +1396960636912016010614230993060748,The End House,18a Kerry Hill Way,,ME14 2GZ,7892631478,B,B,81,88,House,NO DATA!,2016-01-05,E07000110,E14000804,Kent,2016-01-06,new dwelling,80,88,96,53.0,2.7,16,1.5,82.0,82.0,518.0,519.0,115.0,62.0,170.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.16 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.22 W/m-¦K,Very Good,Very Good,"Room heaters, wood logs",,,Average thermal transmittance 0.15 W/m-¦K,Good,Good,"Boiler & underfloor, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"The End House, 18a Kerry Hill Way",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2016-01-06 14:23:09,unknown,10.0,10.0,10014315361.0,Address Matched +518070189222012100115081278168292,"18, Springwood Close",,,ME16 9PA,9724828768,E,B,52,83,House,End-Terrace,2012-09-26,E07000110,E14000804,Kent,2012-10-01,none of the above,50,85,301,76.0,4.3,58,1.1,47.0,47.0,650.0,418.0,214.0,65.0,74.0,Single,Y,NODATA!,,,2107.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,90.0,0.0,"From main system, no cylinder thermostat",Poor,Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, partial insulation (assumed)",Average,Average,"Room heaters, electric",,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 90% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"18, Springwood Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1976-1982,2012-10-01 15:08:12,rental (social),10.0,9.0,200003726606.0,Address Matched +585375869222013092422381923848417,"11, Camden Street",,,ME14 1UU,1267623868,D,A,67,92,House,Mid-Terrace,2013-09-24,E07000110,E14000804,Kent,2013-09-24,marketed sale,69,95,227,10.0,1.9,43,0.1,52.0,29.0,393.0,295.0,56.0,37.0,45.0,Single,Y,NODATA!,,,2111.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,17.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,TRVs and bypass,Average,Average,Low energy lighting in 17% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"11, Camden Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2013-09-24 22:38:19,owner-occupied,6.0,1.0,200003699077.0,Address Matched +445731899112010022614200691200078,"13, Broadoak Avenue",,,ME15 6BH,814913768,E,D,52,66,House,Detached,2010-02-26,E07000110,E14000804,Kent,2010-02-26,marketed sale,51,64,357,255.0,4.6,58,3.3,70.0,40.0,757.0,542.0,120.0,120.0,78.6,Single,Y,NO DATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,25.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,Portable electric heaters,,,"Pitched, 150mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 25% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.3,0.0,N,natural,"13, Broadoak Avenue",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2010-02-26 14:20:06,owner-occupied,,,200003676182.0,Address Matched +1095343979262014022411463230048124,"14, Gosling Walk",,,ME15 6YX,2326700278,B,B,83,83,House,End-Terrace,2014-02-24,E07000110,E14000804,Kent,2014-02-24,new dwelling,87,87,82,82.0,1.2,15,1.2,51.0,51.0,242.0,242.0,84.0,84.0,79.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.10 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"14, Gosling Walk",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2014-02-24 11:46:32,NO DATA!,12.0,12.0,10014315219.0,Address Matched +547871889062010100113370320998180,Flat 6 Teston House,Tonbridge Road,Teston,ME18 5BU,8210830868,G,F,15,30,Flat,Mid-Terrace,2010-10-01,E07000110,E14000804,Kent,2010-10-01,marketed sale,14,21,1174,996.0,8.2,176,7.0,50.0,28.0,1067.0,837.0,215.0,112.0,46.5,dual,N,1st,Y,2.0,2401.0,40.0,secondary glazing,Normal,0.0,2.0,2.0,20.0,0.0,"Electric immersion, off-peak",Very Poor,Poor,(other premises below),,,Partial secondary glazing,Poor,Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, electric",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,Electric storage heaters,Poor,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 20% of fixed outlets,Poor,Poor,electricity - this is for backwards compatibility only and should not be used,0.0,unheated corridor,10.7,2.8,0.0,N,natural,"Flat 6 Teston House, Tonbridge Road, Teston",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2010-10-01 13:37:03,owner-occupied,,,200003661926.0,Address Matched +1811802613032020072113510915278901,"2, Spitfire Close",Headcorn,,TN27 9GD,1175901778,B,A,84,95,House,Semi-Detached,2020-07-21,E07000110,E14000700,Kent,2020-07-21,new dwelling,86,98,87,1.0,1.2,15,0.1,67.0,67.0,215.0,215.0,72.0,43.0,80.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.19 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.28 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.14 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"2, Spitfire Close, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,NO DATA!,2020-07-21 13:51:09,unknown,18.0,18.0,10094443970.0,Address Matched +536350726252010091219071995900474,"33, Bluett Street",,,ME14 2UG,4449659768,D,C,60,72,House,Mid-Terrace,2010-09-12,E07000110,E14000804,Kent,2010-09-12,rental (private),53,67,325,229.0,4.5,54,3.2,63.0,44.0,682.0,511.0,137.0,99.0,82.8,Single,Y,NO DATA!,,,2107.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,55.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 55% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.5,0.0,N,natural,"33, Bluett Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2010-09-12 19:07:19,rental (private),,,200003703476.0,Address Matched +999051074632016040417513146078603,19 Mandeville Court,Union Street,,ME14 1JR,7376623178,C,C,73,79,Flat,Enclosed End-Terrace,2016-04-04,E07000110,E14000804,Kent,2016-04-04,marketed sale,54,64,398,316.0,2.8,67,2.2,53.0,38.0,185.0,114.0,212.0,193.0,42.0,dual,N,Ground,N,,2401.0,100.0,double glazing installed during or after 2002,Less Than Typical,0.0,2.0,2.0,60.0,0.0,"From main system, no cylinder thermostat",Poor,Very Poor,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,Portable electric heaters (assumed),,,(another dwelling above),,,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 60% of fixed outlets,Good,Good,electricity (not community),0.0,heated corridor,,2.3,,N,natural,"19 Mandeville Court, Union Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2016-04-04 17:51:31,owner-occupied,,,200003699202.0,Address Matched +920425049962014031309180557278284,21 Horwood Way,Harrietsham,,ME17 1FH,8563467078,B,B,90,90,House,End-Terrace,2014-03-13,E07000110,E14000700,Kent,2014-03-13,new dwelling,92,92,45,45.0,0.8,9,0.8,53.0,53.0,275.0,275.0,92.0,92.0,91.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.17 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"21 Horwood Way, Harrietsham",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2014-03-13 09:18:05,NO DATA!,12.0,12.0,10014314904.0,Address Matched +1725007485132019053008274145778503,"15, Sergison Crescent",Staplehurst,,TN12 0FP,8355574678,B,A,84,95,House,Semi-Detached,2019-05-30,E07000110,E14000804,Kent,2019-05-30,new dwelling,86,97,80,4.0,1.3,14,0.1,64.0,64.0,213.0,213.0,74.0,44.0,90.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.28 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"15, Sergison Crescent, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,NO DATA!,2019-05-30 08:27:41,unknown,10.0,10.0,10093304203.0,Address Matched +372108700202009092822551563812988,Apartment 95 Sandling Park,Sandling Lane,,ME14 2NY,8282308668,D,C,59,74,Flat,End-Terrace,2009-09-28,E07000110,E14000804,Kent,2009-09-28,marketed sale,69,68,248,258.0,2.7,37,2.8,72.0,44.0,441.0,237.0,142.0,142.0,71.58,dual,N,3rd,N,4.0,2602.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,35.0,0.0,"Electric immersion, off-peak",Poor,Poor,(other premises below),,,Fully double glazed,Good,Good,"System built, as built, insulated (assumed)",Good,Good,,,,"Flat, insulated (assumed)",Good,Good,"Room heaters, electric",Very Poor,Poor,Appliance thermostats,Good,Good,Low energy lighting in 35% of fixed outlets,Average,Average,electricity - this is for backwards compatibility only and should not be used,0.0,unheated corridor,12.45,2.37,0.0,N,natural,"Apartment 95 Sandling Park, Sandling Lane",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2009-09-28 22:55:15,owner-occupied,,,10014307190.0,Address Matched +1174650869542014071516232923549658,"16, Acott Fields",Yalding,,ME18 6DQ,7526665278,C,C,72,73,Flat,Semi-Detached,2014-07-15,E07000110,E14000804,Kent,2014-07-15,marketed sale,76,77,175,167.0,1.5,33,1.5,54.0,33.0,316.0,319.0,82.0,82.0,47.0,Unknown,Y,2nd,Y,,2104.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,33.0,1.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Good,Good,"Timber frame, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,"Pitched, insulated (assumed)",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 33% of fixed outlets,Average,Average,mains gas (not community),0.0,unheated corridor,4.61,,0.0,,natural,"16, Acott Fields, Yalding",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2014-07-15 16:23:29,owner-occupied,6.0,2.0,200003660493.0,Address Matched +1256833449542015011420143532159848,"34, Hatherall Road",,,ME14 5HF,3596841378,C,B,69,81,Bungalow,Detached,2015-01-14,E07000110,E14000804,Kent,2015-01-14,marketed sale,62,76,186,110.0,6.0,33,3.6,99.0,99.0,1038.0,866.0,180.0,79.0,182.0,dual,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,7.0,7.0,96.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 96% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"34, Hatherall Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2015-01-14 20:14:35,owner-occupied,,,200003705418.0,Address Matched +1263447039532015013119311258278302,"4, Rycault Close",,,ME16 8SW,3258391378,D,B,66,90,Bungalow,Semi-Detached,2015-01-29,E07000110,E14000804,Kent,2015-01-31,rental (social),66,92,309,43.0,1.9,54,0.3,41.0,25.0,306.0,284.0,152.0,68.0,35.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,40.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 40% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"4, Rycault Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2015-01-31 19:31:12,rental (social),,,200003726150.0,Address Matched +342295800962009081020374875008581,18 Sheals Court,Old Tovil Road,,ME15 6PP,8727095668,C,C,76,76,Flat,Semi-Detached,2009-08-10,E07000110,E14000804,Kent,2009-08-10,rental (social),72,72,238,238.0,1.9,40,1.9,30.0,30.0,328.0,328.0,71.0,71.0,48.8,Single,Y,2nd,Y,3.0,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,75.0,0.0,From main system,Very Good,Very Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,unheated corridor,1.0,2.31,0.0,N,natural,"18 Sheals Court, Old Tovil Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2009-08-10 20:37:48,rental (social),,,200003682702.0,Address Matched +1597532699222017122914263475298153,Pewter Well,Dean Street,East Farleigh,ME15 0PR,5737955578,D,C,56,79,House,Semi-Detached,2017-12-21,E07000110,E14000804,Kent,2017-12-29,FiT application,48,73,175,77.0,10.0,46,4.9,111.0,112.0,1181.0,679.0,131.0,80.0,221.0,dual,N,NODATA!,,,2106.0,50.0,"double glazing, unknown install date",Normal,2.0,8.0,8.0,100.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Partial double glazing,Poor,Poor,"Solid brick, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 25 mm loft insulation",Poor,Poor,"Boiler and radiators, oil",Average,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,oil (not community),0.0,NO DATA!,,,,N,natural,"Pewter Well, Dean Street, East Farleigh",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2017-12-29 14:26:34,owner-occupied,,,200003715410.0,Address Matched +228417820902009022316542556812278,"2, Oak Tree Close",Marden,,TN12 9EW,8983528568,D,C,62,69,House,Enclosed End-Terrace,2009-02-23,E07000110,E14000804,Kent,2009-02-23,marketed sale,54,59,460,403.0,3.1,69,2.7,51.0,25.0,301.0,248.0,105.0,105.0,44.56,dual,N,NO DATA!,,,2402.0,0.0,INVALID!,Normal,0.0,2.0,2.0,0.0,0.0,"Electric immersion, off-peak",Poor,Poor,"Solid, no insulation (assumed)",,,Single and multiple glazing,Poor,Poor,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,"Pitched, 100mm loft insulation",Average,Average,Electric storage heaters,Poor,Very Poor,Automatic charge control,Average,Average,No low energy lighting,Very Poor,Very Poor,electricity - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.3,0.0,N,natural,"2, Oak Tree Close, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1983-1990,2009-02-23 16:54:25,owner-occupied,,,200003709436.0,Address Matched +580028589542011012518032582292858,"25, Knights Way",Headcorn,,TN27 9TX,5585182868,C,C,78,79,Flat,Enclosed End-Terrace,2011-01-25,E07000110,E14000700,Kent,2011-01-25,rental (social),76,76,182,176.0,2.0,30,2.0,60.0,38.0,340.0,344.0,93.0,93.0,67.73,Single,Y,Ground,N,2.0,2106.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,40.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 40% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.28,0.0,N,natural,"25, Knights Way, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,England and Wales: 1967-1975,2011-01-25 18:03:25,rental (social),,,200003699610.0,Address Matched +113600770832008101009195085068898,Swan House,High Street,Yalding,ME18 6HS,7875897468,E,C,54,69,House,Semi-Detached,2008-10-09,E07000110,E14000804,Kent,2008-10-10,rental (private),49,64,327,227.0,6.3,54,4.3,110.0,55.0,736.0,515.0,115.0,115.0,128.0,Unknown,Y,NO DATA!,,,2102.0,100.0,double glazing installed before 2002,Less Than Typical,0.0,4.0,4.0,0.0,0.0,From main system,Very Good,Very Good,"Suspended, insulated",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, no room thermostat",Very Poor,Very Poor,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.35,0.0,N,natural,"Swan House, High Street, Yalding",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2008-10-10 09:19:50,rental (private),,,200003662894.0,Address Matched +4cef0ae0df5acdf411652a058ec7839aaf171de410e5e750aa040c54930b9c4c,"20, Penenden Heath Road",Penenden Heath,,ME14 2DD,10001421678,D,C,60,76,House,Detached,2021-08-06,E07000110,E14000804,Kent,2021-08-06,marketed sale,53,70,259,147.0,4.8,47,2.8,104.0,78.0,821.0,694.0,98.0,68.0,101.0,Single,Y,,,,,85.0,double glazing installed before 2002,Normal,2.0,5.0,5.0,67.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Mostly double glazing,Average,Average,"Cavity wall, filled cavity",Average,Average,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,TRVs and bypass,Average,Average,Low energy lighting in 67% of fixed outlets,Good,Good,mains gas (not community),0.0,,,2.41,0.0,N,natural,"20, Penenden Heath Road, Penenden Heath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2021-08-06 19:47:47,Owner-occupied,12.0,,200003673309.0,Address Matched +727745739932011112609341376268499,"10, College Walk",,,ME15 6PA,3946463968,F,E,27,50,Bungalow,Detached,2011-11-25,E07000110,E14000804,Kent,2011-11-26,rental (private),13,26,953,698.0,9.1,169,6.7,64.0,32.0,976.0,650.0,188.0,95.0,54.03,dual,N,NODATA!,,,2401.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,0.0,0.0,"Electric immersion, off-peak",Poor,Very Poor,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,"Flat, limited insulation (assumed)",Very Poor,Very Poor,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,No low energy lighting,Very Poor,Very Poor,electricity (not community),0.0,NO DATA!,,2.29,0.0,,natural,"10, College Walk",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2011-11-26 09:34:13,rental (private),6.0,0.0,200003728540.0,Address Matched +1622872199922018091409501167248268,"7, Artisan Road",Headcorn,,TN27 9AZ,6629937578,B,A,84,93,House,Detached,2018-09-14,E07000110,E14000700,Kent,2018-09-14,new dwelling,84,93,84,26.0,1.9,15,0.6,77.0,77.0,294.0,295.0,99.0,54.0,127.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.16 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.21 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"7, Artisan Road, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,NO DATA!,2018-09-14 09:50:11,unknown,15.0,15.0,10093304383.0,Address Matched +4cf230641706e03c72b25ac8e414dcbd1eeb3514516728ad8ab20270e4d65a3c,"Flat 23 Adeline Heights, Rosalind Drive",,,ME14 2FP,10001668997,B,B,84,84,Flat,End-Terrace,2021-07-06,E07000110,E14000804,Kent,2021-07-06,new dwelling,88,88,81,81.0,1.0,14,1.0,59.0,59.0,180.0,180.0,68.0,68.0,69.0,standard tariff,,2,N,,,100.0,,,,,,100.0,0.0,From main system,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.52 W/m-¦K,Good,Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.5,,,,"Flat 23 Adeline Heights, Rosalind Drive",Maidstone,Maidstone and The Weald,Maidstone,2018,2021-07-06 09:26:36,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,10.0,,10094441286.0,Address Matched +858369082512014100614291593049201,"17, Adbert Drive",East Farleigh,,ME15 0DE,2167233078,E,C,41,75,House,Detached,2014-10-02,E07000110,E14000804,Kent,2014-10-06,none of the above,36,71,344,129.0,8.0,66,3.1,130.0,65.0,1466.0,820.0,190.0,82.0,121.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,6.0,6.0,0.0,0.0,From main system,Average,Average,"Solid, limited insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Average,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"17, Adbert Drive, East Farleigh",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2014-10-06 14:29:15,owner-occupied,14.0,0.0,200003720576.0,Address Matched +786037429922013081910070978018217,"4, Barncroft Close",Weavering,,ME14 5TJ,1784228968,D,B,63,88,House,End-Terrace,2013-08-19,E07000110,E14000700,Kent,2013-08-19,marketed sale,61,90,244,45.0,3.0,47,0.6,39.0,39.0,495.0,341.0,146.0,68.0,63.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,100.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"4, Barncroft Close, Weavering",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2013-08-19 10:07:09,owner-occupied,7.0,7.0,200003688228.0,Address Matched +608027759222011032309002535478909,Flat 1 Wykeham Court,"2, Cornwallis Road",,ME16 8BA,335505868,B,B,83,84,Flat,NO DATA!,2011-03-23,E07000110,E14000804,Kent,2011-03-23,new dwelling,82,83,157,150.0,1.2,26,1.2,44.0,27.0,227.0,230.0,80.0,80.0,48.0,standard tariff,,ground floor,,,,,NO DATA!,NO DATA!,,,,3.0,,From main system,Very Good,Very Good,Average thermal transmittance 0.22 W/m?K,Good,Good,Fully double glazed,Good,Good,Average thermal transmittance 0.29 W/m?K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Very Good,Very Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in 33% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,,,NO DATA!,"Flat 1 Wykeham Court, 2, Cornwallis Road",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2011-03-23 09:00:25,,9.0,3.0,10014307884.0,Address Matched +399393859222016062817471529388046,"41, Caernarvon Drive",,,ME15 6FJ,4201599668,D,B,61,86,House,Semi-Detached,2016-06-28,E07000110,E14000804,Kent,2016-06-28,rental (private),55,85,300,84.0,3.7,53,1.1,85.0,47.0,570.0,413.0,209.0,71.0,70.0,Single,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,1.0,4.0,4.0,20.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, insulated (assumed)",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 20% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,2.29,,N,natural,"41, Caernarvon Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2016-06-28 17:47:15,rental (private),,,200003664380.0,Address Matched +227569892022020030711501537158780,2 Burnside Cottages,Old Ashford Road,Lenham,ME17 2DJ,8398967568,F,B,28,89,House,Semi-Detached,2020-03-05,E07000110,E14000700,Kent,2020-03-07,rental (private),51,102,290,-43.0,4.4,55,-0.5,104.0,64.0,1052.0,677.0,295.0,97.0,81.0,Unknown,N,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,2.0,4.0,4.0,38.0,1.0,From main system,Very Poor,Average,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,"Room heaters, wood logs",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, LPG",Very Poor,Average,Programmer and room thermostat,Average,Average,Low energy lighting in 38% of fixed outlets,Average,Average,LPG (not community),0.0,NO DATA!,,,,N,natural,"2 Burnside Cottages, Old Ashford Road, Lenham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1900-1929,2020-03-07 11:50:15,rental (private),,,200003713962.0,Address Matched +600791139962011031415575624548109,"92, Camp Way",,,ME15 9BB,217354868,C,C,73,74,House,Mid-Terrace,2011-03-14,E07000110,E14000700,Kent,2011-03-14,rental (social),69,69,222,218.0,2.8,37,2.7,57.0,41.0,425.0,428.0,134.0,134.0,75.0,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,4.0,4.0,60.0,0.0,From main system,Very Good,Very Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 60% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.45,0.0,N,natural,"92, Camp Way",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2011-03-14 15:57:56,rental (social),,,200003710109.0,Address Matched +4d2b993c6cd1a8976d90fa84e93e59f3df4902f686f0358ee64be61f0d242e6d,31 Gladstone Road,Penenden Heath,,ME14 2AU,10001513751,C,B,70,88,House,Mid-Terrace,2021-08-18,E07000110,E14000804,Kent,2021-08-23,marketed sale,69,88,211,63.0,2.4,37,0.7,55.0,55.0,411.0,333.0,84.0,57.0,64.0,Single,Y,,,,,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.3,0.0,N,natural,"31 Gladstone Road, Penenden Heath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2021-08-23 07:05:52,Rented (private),10.0,,200003701727.0,Energy Assessor +1043940349102013112213102018672728,"41, Pine Grove",Penenden Heath,,ME14 2AJ,2119446178,D,B,64,82,Bungalow,Detached,2013-11-22,E07000110,E14000804,Kent,2013-11-22,none of the above,62,81,209,90.0,3.5,40,1.6,51.0,51.0,634.0,501.0,105.0,65.0,88.0,Unknown,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"41, Pine Grove, Penenden Heath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2013-11-22 13:10:20,owner-occupied,10.0,10.0,200003701678.0,Address Matched +207681130262009011016285306678088,Chasam,Warren Street Road,Charing,TN27 0HJ,8056306568,E,D,43,59,Bungalow,Detached,2008-12-23,E07000110,E14000700,Kent,2009-01-10,marketed sale,39,52,364,264.0,7.2,71,5.2,75.0,48.0,967.0,669.0,167.0,159.0,111.4,Single,N,NO DATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,1.0,5.0,5.0,44.0,0.0,From main system,Average,Average,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, wood logs",,,"Flat, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, oil",Average,Average,Programmer and room thermostat,Poor,Poor,Low energy lighting in 44% of fixed outlets,Average,Average,oil - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,0.0,N,natural,"Chasam, Warren Street Road, Charing",Maidstone,Faversham and Mid Kent,ASHFORD,England and Wales: 1900-1929,2009-01-10 16:28:53,owner-occupied,,,200003727708.0,Address Matched +839824599022012101003331511658472,"5, The Stampers",,,ME15 6FF,7177991078,D,A,60,92,House,End-Terrace,2012-10-05,E07000110,E14000804,Kent,2012-10-10,marketed sale,58,94,255,19.0,3.2,49,0.3,66.0,38.0,516.0,318.0,120.0,64.0,66.0,Single,Y,NODATA!,,,2107.0,0.0,not defined,Normal,1.0,5.0,5.0,27.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 27% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"5, The Stampers",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2012-10-10 03:33:15,owner-occupied,15.0,4.0,200003716376.0,Address Matched +1592519523552017112810191592239358,Flat 1,"1, Campion Way",Marden,TN12 9GE,3875325578,B,B,83,83,Flat,Semi-Detached,2017-11-28,E07000110,E14000804,Kent,2017-11-28,new dwelling,87,87,96,96.0,0.9,17,0.9,43.0,43.0,171.0,171.0,68.0,68.0,53.0,standard tariff,,ground floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.10 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.23 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Flat 1, 1, Campion Way, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,NO DATA!,2017-11-28 10:19:15,owner-occupied,45.0,45.0,10093305227.0,Address Matched +239347786852009022718571604210956,"63, Longham Copse",Downswood,,ME15 8TL,9665648568,D,C,55,80,Flat,Semi-Detached,2009-02-27,E07000110,E14000700,Kent,2009-02-27,rental (private),68,72,428,381.0,1.7,65,1.5,21.0,13.0,272.0,158.0,107.0,38.0,26.09,Unknown,N,1st,Y,2.0,2699.0,,INVALID!,Normal,0.0,1.0,1.0,20.0,0.0,"Electric immersion, standard tariff",Very Poor,Poor,(other premises below),,,Single glazed,Very Poor,Very Poor,"Timber frame, as built, insulated (assumed)",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,No system present: electric heaters assumed,Very Poor,Poor,,Very Poor,Very Poor,Low energy lighting in 20% of fixed outlets,Poor,Poor,electricity - this is for backwards compatibility only and should not be used,0.0,unheated corridor,1.55,2.37,0.0,Y,natural,"63, Longham Copse, Downswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2009-02-27 18:57:16,rental (private),,,200003686487.0,Address Matched +1520376319962017021709244050138823,"1, Kennards Road",Coxheath,,ME17 4FD,2563110578,B,A,84,94,House,Detached,2017-02-17,E07000110,E14000804,Kent,2017-02-17,new dwelling,85,95,89,17.0,1.5,16,0.3,61.0,61.0,264.0,264.0,86.0,51.0,96.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.14 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.20 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.12 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"1, Kennards Road, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2017-02-17 09:24:40,unknown,11.0,11.0,10093302648.0,Address Matched +1005311407832018031615445033978308,"10, Balliol Grove",,,ME15 9WQ,893373178,C,A,78,92,House,Mid-Terrace,2018-03-16,E07000110,E14000700,Kent,2018-03-16,marketed sale,80,93,131,31.0,1.7,23,0.4,57.0,57.0,323.0,269.0,62.0,62.0,74.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,100.0,0.0,"From main system, plus solar",Very Good,Very Good,"Suspended, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Very Good,Very Good,,,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,Y,natural,"10, Balliol Grove",Maidstone,Faversham and Mid Kent,MAIDSTONE,INVALID!,2018-03-16 15:44:50,owner-occupied,,,10014311659.0,Address Matched +625683949022011050622091076568459,"14, Alen Square",Staplehurst,,TN12 0SB,5775446868,D,D,60,67,House,Mid-Terrace,2011-05-06,E07000110,E14000804,Kent,2011-05-06,marketed sale,63,70,240,194.0,3.2,44,2.6,77.0,39.0,387.0,359.0,296.0,232.0,72.18,Single,Y,NODATA!,,,2504.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,0.0,0.0,"Electric immersion, standard tariff",Very Poor,Very Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 50 mm loft insulation",Poor,Poor,"Warm air, mains gas",Good,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,2.3,0.0,,natural,"14, Alen Square, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1983-1990,2011-05-06 22:09:10,owner-occupied,12.0,0.0,200003678449.0,Address Matched +633640579222011052521231396648879,Cherry Cottage,Pilgrims Way,Detling,ME14 3JY,7954796868,D,D,59,60,House,Detached,2011-05-24,E07000110,E14000700,Kent,2011-05-25,marketed sale,51,52,199,193.0,10.0,44,9.9,169.0,86.0,1609.0,1624.0,144.0,144.0,232.17,dual,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,2.0,9.0,9.0,3.0,0.0,From main system,Good,Average,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, oil",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 3% of fixed outlets,Very Poor,Very Poor,oil (not community),0.0,NO DATA!,,2.21,0.0,,natural,"Cherry Cottage, Pilgrims Way, Detling",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2011-05-25 21:23:13,owner-occupied,36.0,1.0,200003694098.0,Address Matched +596667420712013071523434692970284,"59, York Road",,,ME15 7QU,2400024868,D,B,65,85,House,Semi-Detached,2013-07-15,E07000110,E14000700,Kent,2013-07-15,rental (social),63,86,213,68.0,3.1,41,1.0,68.0,49.0,551.0,393.0,105.0,81.0,76.0,dual,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,63.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 63% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"59, York Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2013-07-15 23:43:46,rental (social),8.0,5.0,200003715698.0,Address Matched +1775728659032020010921122124078708,"14, Westmorland Close",,,ME15 8AJ,5804748678,C,B,71,86,House,Mid-Terrace,2020-01-08,E07000110,E14000700,Kent,2020-01-09,rental (social),69,85,207,83.0,2.6,36,1.1,61.0,61.0,413.0,372.0,129.0,81.0,70.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Suspended, limited insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"14, Westmorland Close",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1996-2002,2020-01-09 21:12:21,rental (social),,,200003727892.0,Address Matched +174810240702008111408493158389728,1 Malthouse Cottages,Maidstone Road,Wateringbury,ME18 5EJ,7780343568,F,E,31,43,House,Mid-Terrace,2008-11-12,E07000110,E14000804,Kent,2008-11-14,marketed sale,35,47,579,449.0,7.0,85,5.2,55.0,37.0,986.0,821.0,151.0,92.0,82.72,Single,Y,NO DATA!,,,2104.0,12.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,50.0,1.0,"From main system, no cylinderstat",Average,Average,"Suspended, no insulation (assumed)",,,Partial double glazing,Very Poor,Very Poor,"Granite or whinstone, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Poor,Poor,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.27,0.0,N,natural,"1 Malthouse Cottages, Maidstone Road, Wateringbury",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2008-11-14 08:49:31,owner-occupied,,,200003658776.0,Address Matched +1369263149302015092922483832952618,Farley,Brishing Road,Chart Sutton,ME17 3SW,6386249378,F,C,29,71,House,Detached,2015-09-29,E07000110,E14000700,Kent,2015-09-29,marketed sale,32,68,297,105.0,18.0,64,7.0,197.0,112.0,3696.0,2047.0,202.0,100.0,285.0,Single,N,NODATA!,,,2106.0,0.0,not defined,Normal,3.0,11.0,11.0,20.0,3.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Single glazed,Very Poor,Very Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, oil",Average,Average,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 20% of fixed outlets,Poor,Poor,oil (not community),0.0,NO DATA!,,,,N,natural,"Farley, Brishing Road, Chart Sutton",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2015-09-29 22:48:38,owner-occupied,,,200003679785.0,Address Matched +1758399019942019120914225162710518,Flat 3,"13, Francis Moody Close",Harrietsham,ME17 1WH,6919917678,B,B,85,85,Flat,Semi-Detached,2019-12-09,E07000110,E14000700,Kent,2019-12-09,new dwelling,88,88,79,79.0,1.0,14,1.0,62.0,62.0,174.0,174.0,70.0,70.0,71.0,standard tariff,,ground floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.10 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.20 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Flat 3, 13, Francis Moody Close, Harrietsham",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2019-12-09 14:22:51,unknown,10.0,10.0,10094442228.0,Address Matched +1361501301532015090806500323078604,"5, Deerhurst Gardens",,,ME16 8AY,483688378,C,B,70,81,House,Detached,2015-09-04,E07000110,E14000804,Kent,2015-09-08,marketed sale,66,76,178,115.0,4.1,31,2.7,111.0,72.0,742.0,685.0,95.0,95.0,130.0,Unknown,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,2.0,7.0,7.0,47.0,0.0,"From main system, plus solar",Very Good,Very Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 270 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 47% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,Y,natural,"5, Deerhurst Gardens",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2015-09-08 06:50:03,owner-occupied,,,200003722024.0,Address Matched +243026075132019051315312537968808,Normandine,Forstal Road,,ME20 7AE,7867898568,E,C,43,70,Bungalow,Detached,2019-05-11,E07000110,E14000700,Kent,2019-05-13,rental (private),36,62,416,206.0,6.6,74,3.3,64.0,64.0,1108.0,776.0,148.0,70.0,89.0,Unknown,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,6.0,6.0,100.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"Normandine, Forstal Road",Maidstone,Faversham and Mid Kent,AYLESFORD,England and Wales: 1950-1966,2019-05-13 15:31:25,rental (private),,,200003662526.0,Address Matched +353905808132009082818161810268900,"33, Northleigh Close",,,ME15 9RP,30976668,D,C,62,76,House,Semi-Detached,2009-08-27,E07000110,E14000804,Kent,2009-08-28,marketed sale,55,72,319,197.0,4.0,53,2.5,44.0,34.0,467.0,314.0,128.0,86.0,75.28,Single,Y,NO DATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,70.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Poor,Poor,Low energy lighting in 70% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.36,0.0,N,natural,"33, Northleigh Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2009-08-28 18:16:18,owner-occupied,,,200003675087.0,Address Matched +1282496029702015021708124535359168,"2, Bramley Court",Marden,,TN12 9QN,5746723378,D,B,55,85,Bungalow,Semi-Detached,2015-02-16,E07000110,E14000804,Kent,2015-02-17,marketed sale,36,65,502,226.0,5.1,85,2.3,90.0,45.0,627.0,404.0,146.0,78.0,60.0,dual,N,NODATA!,,,2401.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,0.0,0.0,"Electric immersion, off-peak",Average,Poor,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, 200 mm loft insulation",Good,Good,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,No low energy lighting,Very Poor,Very Poor,electricity (not community),0.0,NO DATA!,,,,N,natural,"2, Bramley Court, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1976-1982,2015-02-17 08:12:45,owner-occupied,,,200003668977.0,Address Matched +1176147779002018052220504128582428,"5, Lucks Way",Marden,,TN12 9QW,8097575278,E,C,53,76,House,Semi-Detached,2018-05-22,E07000110,E14000804,Kent,2018-05-22,marketed sale,50,75,328,146.0,4.2,58,1.9,82.0,57.0,740.0,590.0,169.0,89.0,72.0,dual,Y,NODATA!,,,2504.0,100.0,"double glazing, unknown install date",Normal,1.0,5.0,4.0,56.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,"Room heaters, electric",,,"Pitched, 250 mm loft insulation",Good,Good,"Warm air, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 56% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"5, Lucks Way, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1967-1975,2018-05-22 20:50:41,owner-occupied,,,200003669081.0,Address Matched +4d609f154a044d714300b0b3dfdf70ce8890559492c554e2f2b488c8ea08a4e2,FLAT 9,LAVENDER HOUSE,NORTHUMBERLAND ROAD,ME15 7RW,10001650566,E,C,53,71,Flat,Semi-Detached,2021-06-29,E07000110,E14000700,Kent,2021-07-01,ECO assessment,52,75,427,222.0,3.0,75,1.6,75.0,38.0,589.0,335.0,86.0,71.0,40.0,Single,Y,01,Y,,,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,0.0,0.0,From main system,Good,Good,(another dwelling below),,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Average,Average,"Room heaters, electric",,,"Pitched, insulated (assumed)",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,unheated corridor,4.5,2.85,0.0,N,natural,"FLAT 9, LAVENDER HOUSE, NORTHUMBERLAND ROAD",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2021-07-01 18:37:46,Rented (social),5.0,,200003714064.0,Energy Assessor +620213009942011042119460981692198,"21, Shaftesbury Drive",,,ME16 0JS,2952506868,D,C,63,69,Bungalow,Semi-Detached,2011-04-21,E07000110,E14000804,Kent,2011-04-21,marketed sale,63,70,263,212.0,2.7,50,2.2,50.0,30.0,457.0,393.0,77.0,68.0,53.652,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,33.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 33% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,2.4,0.0,,natural,"21, Shaftesbury Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2011-04-21 19:46:09,owner-occupied,15.0,5.0,200003726330.0,Address Matched +264070200022009040915231670388491,"6, Cranborne Avenue",,,ME15 7DX,9755040668,D,C,56,70,House,Semi-Detached,2009-04-08,E07000110,E14000700,Kent,2009-04-09,marketed sale,49,64,356,246.0,4.9,59,3.4,79.0,39.0,636.0,478.0,139.0,100.0,82.9,Unknown,Y,NO DATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,0.0,1.0,From main system,Average,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 75mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Average,Good,Programmer and room thermostat,Poor,Poor,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.5,0.0,N,natural,"6, Cranborne Avenue",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2009-04-09 15:23:16,owner-occupied,,,200003677453.0,Address Matched +1429554799022016040117153413298826,Flat 2,75 Tonbridge Road,,ME16 8JN,2142963478,D,C,58,73,Flat,Mid-Terrace,2016-04-01,E07000110,E14000804,Kent,2016-04-01,marketed sale,39,56,496,327.0,4.6,84,3.0,70.0,44.0,572.0,323.0,159.0,140.0,55.0,dual,N,1st,N,,2401.0,100.0,double glazing installed before 2002,Normal,0.0,2.0,2.0,40.0,0.0,"Electric immersion, off-peak",Average,Poor,(other premises below),NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,Portable electric heaters (assumed),,,(another dwelling above),,,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 40% of fixed outlets,Average,Average,electricity (not community),0.0,unheated corridor,6.5,2.6,,N,natural,"Flat 2, 75 Tonbridge Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2016-04-01 17:15:34,rental (private),,,, +1033886750732013102919594036278594,"131, Milton Street",,,ME16 8LL,5496575178,D,B,62,89,House,Mid-Terrace,2013-10-22,E07000110,E14000804,Kent,2013-10-29,marketed sale,60,90,246,44.0,3.1,47,0.6,73.0,40.0,539.0,338.0,105.0,70.0,66.0,Single,Y,NODATA!,,,2104.0,65.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,17.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Partial double glazing,Poor,Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, mains gas",,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 17% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"131, Milton Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2013-10-29 19:59:40,owner-occupied,6.0,1.0,200003655708.0,Address Matched +1170044669022014070720013145538654,"28, Foord Road",Lenham,,ME17 2QN,5461635278,C,C,73,76,Maisonette,Semi-Detached,2014-07-07,E07000110,E14000700,Kent,2014-07-07,marketed sale,75,78,156,132.0,1.9,30,1.7,88.0,44.0,373.0,348.0,78.0,78.0,66.0,Single,Y,1st,Y,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,0.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,no corridor,,,0.0,,natural,"28, Foord Road, Lenham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2014-07-07 20:01:31,owner-occupied,12.0,0.0,200003711653.0,Address Matched +4d7662c2a1020f8f6d599a6d65767af400a15bf65a428904a75cdc5eee91209c,18 SHEARWATER,,,ME16 0DW,10001400597,D,B,68,81,House,Detached,2021-07-01,E07000110,E14000804,Kent,2021-07-02,marketed sale,63,77,198,113.0,4.0,35,2.3,118.0,89.0,569.0,580.0,191.0,82.0,114.0,Single,Y,,,,,100.0,double glazing installed during or after 2002,Normal,1.0,5.0,5.0,67.0,0.0,"From main system, no cylinder thermostat",Average,Average,"Solid, limited insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 67% of fixed outlets,Good,Good,mains gas (not community),0.0,,,2.41,0.0,N,natural,18 SHEARWATER,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2021-07-02 06:40:08,Owner-occupied,12.0,,200003705690.0,Energy Assessor +1126461479922014041519373872158684,"23, Greenhill",Staplehurst,,TN12 0SU,8791722278,D,C,63,78,House,Detached,2014-04-15,E07000110,E14000804,Kent,2014-04-15,marketed sale,58,74,195,112.0,5.8,38,3.4,133.0,78.0,1002.0,840.0,157.0,83.0,155.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,7.0,6.0,28.0,1.0,From main system,Good,Good,"Suspended, limited insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, mains gas",,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 28% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"23, Greenhill, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1996-2002,2014-04-15 19:37:38,owner-occupied,18.0,5.0,200003723171.0,Address Matched +596818609262011022414491474648049,"17, Leonard Gould Way",Loose,,ME15 9FX,4745024868,B,B,84,84,House,Semi-Detached,2011-02-24,E07000110,E14000700,Kent,2011-02-24,new dwelling,84,84,102,99.0,1.9,17,1.9,83.0,66.0,292.0,294.0,122.0,122.0,114.37,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,,From main system,Very Good,Very Good,Average thermal transmittance 0.12 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m?K,Very Good,Very Good,"Room heaters, electric",,,Average thermal transmittance 0.10 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Very Good,Very Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.45,,,NO DATA!,"17, Leonard Gould Way, Loose",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2011-02-24 14:49:14,,,,10014311134.0,Address Matched +269891540922009042108072940438611,Flat 8,"34, Tonbridge Road",,ME16 8SH,1424480668,D,C,67,71,Flat,Detached,2009-04-17,E07000110,E14000804,Kent,2009-04-21,rental (private),63,66,333,307.0,2.5,55,2.3,46.0,23.0,371.0,358.0,66.0,66.0,44.5,Single,Y,3rd,Y,4.0,2104.0,,INVALID!,Much More Than Typical,0.0,2.0,2.0,0.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 100mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Poor,Poor,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,unheated corridor,2.1,2.47,0.0,N,natural,"Flat 8, 34, Tonbridge Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2009-04-21 08:07:29,rental (private),,,200003668565.0,Address Matched +1555749239262017062819185812588243,Sutton End,Maidstone Road,Sutton Valence,ME17 3LS,4155362578,D,C,55,73,House,Detached,2017-06-28,E07000110,E14000700,Kent,2017-06-28,marketed sale,44,64,274,161.0,13.0,48,7.6,198.0,105.0,2304.0,1545.0,148.0,149.0,264.0,Single,Y,NODATA!,,,2106.0,90.0,double glazing installed before 2002,Normal,4.0,9.0,9.0,12.0,2.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Mostly double glazing,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 12% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"Sutton End, Maidstone Road, Sutton Valence",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2017-06-28 19:18:58,owner-occupied,,,200003694511.0,Address Matched +200098889352008121211003605989457,"6, Meadow Way",Marden,,TN12 9TH,4792955568,D,C,66,72,House,Semi-Detached,2008-12-12,E07000110,E14000804,Kent,2008-12-12,rental (private),60,68,266,215.0,4.1,45,3.3,41.0,41.0,470.0,396.0,138.0,111.0,92.6,Single,Y,NO DATA!,,,2110.0,0.0,single glazing,Normal,1.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,0.0,N,natural,"6, Meadow Way, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1983-1990,2008-12-12 11:00:36,rental (private),,,200003730621.0,Address Matched +296493833112009060309470407210860,Kingsnoad,Crumps Lane,Ulcombe,ME17 1EX,8009372668,D,D,59,60,House,Detached,2009-05-29,E07000110,E14000700,Kent,2009-06-03,new dwelling,75,76,148,146.0,7.5,21,7.3,219.0,169.0,1178.0,1190.0,568.0,568.0,357.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,60.0,,"Electric immersion, standard tariff",Very Poor,Very Poor,Average thermal transmittance 0.20 W/m?K,Good,Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.27 W/m?K,Very Good,Very Good,"Room heaters, wood logs",,,Average thermal transmittance 0.17 W/m?K,Good,Good,"Room heaters, electric",Very Poor,Poor,Programmer and room thermostats,Good,Good,Low energy lighting in 71% fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",0.0,NO DATA!,,2.7,,,NO DATA!,"Kingsnoad, Crumps Lane, Ulcombe",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2009-06-03 09:47:04,,85.0,60.0,200003702123.0,Address Matched +433547339002010020917105171200148,Apartment 5,"69, Bank Street",,ME14 1SN,6093032768,C,C,74,75,Flat,Detached,2010-02-04,E07000110,E14000804,Kent,2010-02-09,marketed sale,63,63,373,369.0,2.5,56,2.5,43.0,26.0,192.0,195.0,107.0,107.0,44.46,Unknown,N,1st,N,3.0,2106.0,0.0,not defined,Normal,0.0,2.0,2.0,36.0,0.0,From main system,Average,Poor,(other premises below),,,Single glazed,Very Poor,Very Poor,"Solid brick, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, electric",Average,Poor,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 36% of fixed outlets,Average,Average,electricity - this is for backwards compatibility only and should not be used,0.0,unheated corridor,1.38,2.32,0.0,N,natural,"Apartment 5, 69, Bank Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2010-02-09 17:10:51,owner-occupied,,,10014309341.0,Address Matched +20892a84fc3a54eba1b84f8f356473cadb91c4857c2e6eeb2f253a490dd82f3e,4 Acorn Mews,Headcorn,,TN27 9FJ,10003634945,B,A,83,96,House,End-Terrace,2022-11-15,E07000110,E14000700,Kent,2022-11-15,new dwelling,86,98,90,-2.0,1.2,16,0.0,68.0,68.0,209.0,209.0,66.0,41.0,74.0,standard tariff,,,N,,,100.0,,,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.12 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.43,,,,"4 Acorn Mews, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,2018,2022-11-15 13:49:30,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,10.0,,10094443448.0,Energy Assessor +183dd13f96707c208b7fd2959f11ae29ba6ee19f5dc0e9586d7530089a651a26,234 Wallis Place,Hart Street,,ME16 8FF,3335088468,C,C,79,79,Flat,End-Terrace,2022-10-13,E07000110,E14000804,Kent,2022-10-14,rental,83,83,134,134.0,1.1,23,1.1,50.0,50.0,230.0,230.0,58.0,58.0,47.0,Single,Y,04,Y,,,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,100.0,0.0,From main system,Good,Good,(another dwelling below),,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Flat, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,16.62,2.28,0.0,N,natural,"234 Wallis Place, Hart Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007-2011,2022-10-14 12:34:29,Rented (social),5.0,,10022900842.0,Energy Assessor +1248835399342014121213495834049028,"16, Woodbridge Drive",,,ME15 6FU,1369190378,D,B,65,85,House,Detached,2014-12-12,E07000110,E14000804,Kent,2014-12-12,none of the above,61,83,263,97.0,3.3,46,1.2,50.0,50.0,580.0,434.0,127.0,79.0,71.0,dual,Y,NODATA!,,,2104.0,13.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Some double glazing,Very Poor,Very Poor,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"16, Woodbridge Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2014-12-12 13:49:58,owner-occupied,,,200003665982.0,Address Matched +0017e718477abb2164e415a6c03cdb67d1cb9586bfb50f21f3747ec46d714982,10 FONTWELL CLOSE,,,ME15 8UY,10001345796,C,B,73,91,House,Enclosed End-Terrace,2021-07-12,E07000110,E14000700,Kent,2021-07-12,rental,75,93,203,38.0,1.6,36,0.3,46.0,46.0,308.0,286.0,65.0,43.0,45.0,Single,Y,,,,,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,83.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 83% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.32,0.0,N,natural,10 FONTWELL CLOSE,Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2021-07-12 13:18:08,Rented (private),6.0,,200003681254.0,Energy Assessor +4d9f63a67a3aca624f1512d81dd33976ee21b0db2833d94ad1d84eb8fee4ab12,10 Marsham Street,,,ME14 1EP,10001327573,D,C,68,72,Flat,End-Terrace,2021-09-16,E07000110,E14000804,Kent,2021-09-20,rental,67,73,261,208.0,2.2,46,1.7,43.0,43.0,381.0,302.0,93.0,93.0,48.0,Single,Y,01,N,,,100.0,"double glazing, unknown install date",Normal,2.0,3.0,3.0,100.0,0.0,From main system,Good,Good,"To unheated space, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Poor,Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,no corridor,,2.25,0.0,N,natural,10 Marsham Street,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2021-09-20 15:13:03,Rented (private),5.0,,200003687425.0,Energy Assessor +271269703732013071111532067968306,"91, Stagshaw Close",,,ME15 6TE,647390668,C,C,79,80,Flat,Mid-Terrace,2013-07-11,E07000110,E14000804,Kent,2013-07-11,rental (social),67,68,230,220.0,2.3,41,2.2,43.0,43.0,205.0,180.0,122.0,122.0,57.0,dual,N,Ground,N,,2401.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,"Electric immersion, off-peak",Average,Very Poor,"Solid, insulated (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,Portable electric heaters (assumed),,,(another dwelling above),,,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,unheated corridor,3.0,,0.0,,natural,"91, Stagshaw Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2013-07-11 11:53:20,rental (social),8.0,8.0,10022893333.0,Address Matched +1786456822702020022015050167909688,"45, Mallings Drive",Bearsted,,ME14 4HF,4753429678,C,B,70,82,House,Detached,2020-02-18,E07000110,E14000700,Kent,2020-02-20,rental (private),66,79,198,108.0,3.3,35,1.9,84.0,84.0,566.0,516.0,92.0,62.0,95.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,6.0,6.0,79.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 79% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"45, Mallings Drive, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2020-02-20 15:05:01,rental (private),,,200003694810.0,Address Matched +255887748052020031010460628000450,"95, Mote Road",,,ME15 6EL,4047889568,D,B,66,82,House,Mid-Terrace,2020-03-09,E07000110,E14000804,Kent,2020-03-10,rental (social),62,79,243,124.0,3.4,43,1.8,118.0,62.0,529.0,502.0,131.0,78.0,79.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,11.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"System built, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 11% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"95, Mote Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2020-03-10 10:46:06,rental (social),,,200003691140.0,Address Matched +45937551352012051608173496920643,"3, Albert Reed Gardens",Tovil,,ME15 6JY,6375163468,D,B,68,85,House,Detached,2012-05-15,E07000110,E14000804,Kent,2012-05-16,marketed sale,67,85,181,69.0,3.0,35,1.2,93.0,50.0,448.0,393.0,120.0,69.0,87.0,Unknown,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,5.0,5.0,15.0,0.0,From main system,Good,Good,"Solid, limited insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, with internal insulation",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 15% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"3, Albert Reed Gardens, Tovil",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2012-05-16 08:17:34,owner-occupied,20.0,3.0,10022893115.0,Address Matched +47915470202009010912463657510288,"111, Clifford Way",,,ME16 8GF,1224175568,B,B,86,88,Flat,Semi-Detached,2009-01-08,E07000110,E14000804,Kent,2009-01-09,marketed sale,86,87,107,101.0,1.1,18,1.0,48.0,32.0,165.0,166.0,70.0,70.0,61.202,Unknown,Y,1st,N,3.0,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,50.0,0.0,From main system,Very Good,Very Good,(other premises below),,,Fully double glazed,Good,Good,"System built, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,heated corridor,,2.31,0.0,N,natural,"111, Clifford Way",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2009-01-09 12:46:36,owner-occupied,,,10022896124.0,Address Matched +1377719309602015102616221548052268,1 Alexander Court,Mote Park,,ME15 8WY,2615000478,B,A,84,94,House,Semi-Detached,2015-10-26,E07000110,E14000700,Kent,2015-10-26,new dwelling,85,95,87,19.0,1.6,15,0.4,67.0,67.0,275.0,276.0,106.0,58.0,107.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.10 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.21 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.10 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"1 Alexander Court, Mote Park",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2015-10-26 16:22:15,unknown,10.0,10.0,10091195115.0,Address Matched +535738339222012082921515919618492,"11, Woodlands Close",Penenden Heath,,ME14 2EX,9147359768,F,C,32,75,Bungalow,Detached,2012-08-29,E07000110,E14000804,Kent,2012-08-29,marketed sale,29,72,446,135.0,7.7,86,2.4,97.0,49.0,1139.0,609.0,251.0,69.0,90.0,Unknown,Y,NODATA!,,,2104.0,80.0,"double glazing, unknown install date",Normal,1.0,4.0,4.0,0.0,1.0,"From main system, no cylinder thermostat",Very Poor,Very Poor,"Solid, no insulation (assumed)",,,Mostly double glazing,Poor,Poor,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Average,Average,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"11, Woodlands Close, Penenden Heath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2012-08-29 21:51:59,owner-occupied,7.0,0.0,200003706649.0,Address Matched +443416109942010022220330779302328,"55, Anglesey Avenue",,,ME15 9TB,9963103768,D,C,61,72,House,Detached,2010-02-22,E07000110,E14000804,Kent,2010-02-22,marketed sale,56,68,259,189.0,6.2,43,4.5,162.0,81.0,819.0,632.0,166.0,140.0,160.95,dual,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,7.0,7.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 25 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,0.0,N,natural,"55, Anglesey Avenue",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2010-02-22 20:33:07,owner-occupied,,,200003675347.0,Address Matched +564471929922010111217414481928650,Willamette Oast Amsbury Farm,East Street,Hunton,ME15 0QY,5817261868,D,D,60,67,House,Enclosed End-Terrace,2010-11-12,E07000110,E14000804,Kent,2010-11-12,marketed sale,53,59,193,165.0,12.0,41,10.0,301.0,159.0,1400.0,1274.0,319.0,281.0,284.01,Single,N,NO DATA!,,,2107.0,100.0,double glazing installed during or after 2002,Normal,1.0,8.0,8.0,10.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Sandstone, with internal insulation",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, oil",Average,Average,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 10% of fixed outlets,Poor,Poor,oil - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.5,0.0,N,natural,"Willamette Oast Amsbury Farm, East Street, Hunton",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2010-11-12 17:41:44,owner-occupied,,,200003670964.0,Address Matched +926005309602013051700093609879768,"168, Old Tovil Road",,,ME15 6QQ,6627708078,D,B,56,83,House,End-Terrace,2013-05-16,E07000110,E14000804,Kent,2013-05-17,assessment for green deal,52,83,290,84.0,3.8,56,1.2,40.0,40.0,663.0,413.0,108.0,66.0,68.0,Single,Y,NODATA!,,,2107.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"168, Old Tovil Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2013-05-17 00:09:36,owner-occupied,9.0,9.0,200003665819.0,Address Matched +4dc84a7d10c7ef70f6e5765b2b256bef20412bb6e35e927ebd13b6acc82a6f76,103 WESTMORLAND ROAD,,,ME15 8JB,10001337679,D,B,66,86,House,Mid-Terrace,2021-07-21,E07000110,E14000700,Kent,2021-07-21,marketed sale,62,85,241,84.0,3.5,43,1.2,73.0,73.0,507.0,400.0,165.0,68.0,81.0,Single,Y,,,,,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,92.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,"Room heaters, mains gas",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 92% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.3,0.0,N,natural,103 WESTMORLAND ROAD,Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2021-07-21 20:49:18,Owner-occupied,12.0,,200003680603.0,Energy Assessor +13874429242017092817111645839208,"21, Tennison Way",,,ME15 9GE,6298028468,C,B,78,89,House,Mid-Terrace,2017-05-10,E07000110,E14000700,Kent,2017-09-28,rental (social),78,88,131,56.0,2.3,23,1.0,67.0,67.0,358.0,360.0,120.0,70.0,98.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Very Good,Very Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"21, Tennison Way",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2007 onwards,2017-09-28 17:11:16,rental (social),,,10022895438.0,Address Matched +272632202742020030715323163100838,"4, Chartwell Drive",,,ME16 0WS,3755801668,C,B,72,91,House,Mid-Terrace,2020-03-07,E07000110,E14000804,Kent,2020-03-07,rental (private),71,92,190,35.0,2.2,33,0.5,68.0,68.0,346.0,271.0,132.0,67.0,67.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,83.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 270 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 83% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"4, Chartwell Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2020-03-07 15:32:31,rental (private),,,10022901751.0,Address Matched +442852599962014021819322722488514,"18, Robins Close",Lenham,,ME17 2LD,1273992768,D,B,61,81,House,Semi-Detached,2014-02-18,E07000110,E14000700,Kent,2014-02-18,FiT application,60,81,210,88.0,4.2,40,1.8,80.0,58.0,827.0,584.0,101.0,72.0,105.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,More Than Typical,1.0,5.0,5.0,62.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 63% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"18, Robins Close, Lenham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2014-02-18 19:32:27,owner-occupied,16.0,10.0,200003707224.0,Address Matched +4dec6d325d78e6f10296c659f1602d1d4978dc7ce1dd8c03cf035fc572de968e,76 Lyngs Close,Yalding,,ME18 6JT,10001642393,C,B,72,86,House,Semi-Detached,2021-09-22,E07000110,E14000804,Kent,2021-09-25,marketed sale,70,84,190,86.0,2.7,33,1.2,79.0,79.0,419.0,387.0,113.0,75.0,79.0,Unknown,Y,,,,,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,80.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.3,0.0,N,natural,"76 Lyngs Close, Yalding",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2021-09-25 10:48:43,Owner-occupied,10.0,,200003660432.0,Energy Assessor +596793920352011073009091392790483,"46, Mangravet Avenue",,,ME15 9BG,4393024868,C,C,70,73,House,Mid-Terrace,2011-07-30,E07000110,E14000700,Kent,2011-07-30,rental (social),71,74,189,168.0,2.5,36,2.2,52.0,38.0,409.0,371.0,101.0,101.0,69.02,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,63.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 63% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,2.38,0.0,,natural,"46, Mangravet Avenue",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2011-07-30 09:09:13,rental (social),8.0,5.0,200003713798.0,Address Matched +228362101052013111821043496979256,"137, Calder Road",,,ME14 2RA,2627167568,D,B,67,88,House,Semi-Detached,2013-11-18,E07000110,E14000804,Kent,2013-11-18,marketed sale,66,89,197,49.0,2.8,38,0.8,45.0,45.0,545.0,370.0,73.0,49.0,75.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, no insulation",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"137, Calder Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2013-11-18 21:04:34,owner-occupied,9.0,9.0,200003671089.0,Address Matched +1367955492412015092512045693250034,7 Roland House,Harris Place,Tovil,ME15 6BP,439239378,B,B,84,84,Flat,Enclosed End-Terrace,2015-09-25,E07000110,E14000804,Kent,2015-09-25,marketed sale,74,74,204,204.0,1.8,35,1.8,45.0,45.0,120.0,120.0,131.0,131.0,53.0,Unknown,Y,1st,N,,2402.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,100.0,0.0,"Electric immersion, off-peak",Average,Poor,(another dwelling below),NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,Portable electric heaters (assumed),,,(another dwelling above),,,Electric storage heaters,Average,Very Poor,Automatic charge control,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,unheated corridor,1.29,,,N,natural,"7 Roland House, Harris Place, Tovil",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2015-09-25 12:04:56,owner-occupied,,,10022901575.0,Address Matched +1476667719022016090512000687498036,Hilltop,Cossington Road,,ME5 9JB,3819107478,C,B,78,86,Bungalow,Detached,2016-09-01,E07000110,E14000700,Kent,2016-09-05,marketed sale,75,83,125,81.0,3.7,22,2.5,89.0,89.0,647.0,650.0,131.0,76.0,169.0,Single,Y,NODATA!,,,2105.0,100.0,double glazing installed during or after 2002,Normal,0.0,7.0,7.0,100.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Very Good,Very Good,,,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and underfloor heating, mains gas",Good,Good,Programmer and at least two room thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,2.4,,N,natural,"Hilltop, Cossington Road",Maidstone,Faversham and Mid Kent,CHATHAM,INVALID!,2016-09-05 12:00:06,owner-occupied,,,, +352785705052009082610433806210566,"14a, Douglas Road",,,ME16 8ES,5620566668,E,C,48,76,House,End-Terrace,2009-08-25,E07000110,E14000804,Kent,2009-08-26,rental (private),42,72,412,187.0,6.0,68,2.7,81.0,44.0,786.0,397.0,214.0,116.0,87.6,Unknown,Y,NO DATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,14.0,0.0,"From main system, no cylinderstat",Poor,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 100mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Average,Good,Programmer and room thermostat,Poor,Poor,Low energy lighting in 14% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.12,0.0,N,natural,"14a, Douglas Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2009-08-26 10:43:38,rental (private),,,200003668397.0,Address Matched +1363693431532015091711083471078102,3 Halls Place,Rigshill Road,Otterden,ME13 0JD,3231109378,G,A,2,100,House,End-Terrace,2015-09-01,E07000110,E14000700,Kent,2015-09-17,rental (private),17,70,716,150.0,9.1,121,1.9,94.0,55.0,2238.0,621.0,315.0,89.0,75.0,Single,N,NODATA!,,,2699.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,0.0,11.0,0.0,"Electric immersion, standard tariff",Very Poor,Poor,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,No system present: electric heaters assumed,Very Poor,Poor,,Very Poor,Very Poor,Low energy lighting in 11% of fixed outlets,Poor,Poor,To be used only when there is no heating/hot-water system,0.0,NO DATA!,,,,N,natural,"3 Halls Place, Rigshill Road, Otterden",Maidstone,Faversham and Mid Kent,FAVERSHAM,England and Wales: before 1900,2015-09-17 11:08:34,rental (private),,,200003725849.0,Address Matched +597361029902013081622372583479868,"15, Calder Road",,,ME14 2QQ,3989324868,C,B,71,87,House,Mid-Terrace,2013-08-16,E07000110,E14000804,Kent,2013-08-16,rental (social),72,89,174,52.0,2.2,33,0.7,65.0,40.0,400.0,369.0,83.0,59.0,66.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,4.0,4.0,38.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 38% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"15, Calder Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2013-08-16 22:37:25,rental (social),8.0,3.0,200003670841.0,Address Matched +4dfd22cea570a1562ed6c66e18bfd25172c6b6e30f051c3c53f91f7ad8613150,18 Pearson Drive,,,TN12 0GG,10001382258,B,A,83,97,House,Semi-Detached,2021-09-28,E07000110,E14000804,Kent,2021-09-28,new dwelling,87,101,92,-25.0,0.9,16,-0.2,51.0,51.0,179.0,179.0,60.0,36.0,58.0,standard tariff,,,N,,,100.0,,,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.14 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.27 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.33,,,,18 Pearson Drive,Maidstone,Maidstone and The Weald,STAPLEHURST,2018,2021-09-28 09:54:43,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,9.0,,10094441983.0,Energy Assessor +554337059962010101818280930188580,"14, Wilsons Lane",East Farleigh,,ME15 0LU,8353580868,D,D,62,68,House,Mid-Terrace,2010-10-18,E07000110,E14000804,Kent,2010-10-18,rental (private),52,57,377,333.0,4.4,57,3.9,66.0,46.0,459.0,370.0,147.0,147.0,76.92,dual,N,NO DATA!,,,2401.0,90.0,double glazing installed before 2002,Normal,0.0,4.0,3.0,55.0,0.0,"Electric immersion, off-peak",Average,Poor,"Solid, no insulation (assumed)",,,Mostly double glazing,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,"Pitched, 100 mm loft insulation",Average,Average,Electric storage heaters,Poor,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 55% of fixed outlets,Good,Good,electricity - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.38,0.0,N,natural,"14, Wilsons Lane, East Farleigh",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2010-10-18 18:28:09,rental (private),,,200003727997.0,Address Matched +1460260659062016070616431765468996,"9, Oakapple Lane",Barming,,ME16 9NW,9605585478,B,B,84,84,Flat,NO DATA!,2016-07-06,E07000110,E14000804,Kent,2016-07-06,new dwelling,92,92,51,51.0,0.6,9,0.6,48.0,48.0,165.0,165.0,81.0,81.0,62.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.19 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"9, Oakapple Lane, Barming",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2016-07-06 16:43:17,unknown,15.0,15.0,10091195861.0,Address Matched +286770700702009052023050765212208,"84, Hartnup Street",,,ME16 8LP,736802668,E,D,53,65,House,Mid-Terrace,2009-05-20,E07000110,E14000804,Kent,2009-05-20,marketed sale,47,59,374,281.0,5.3,63,4.0,80.0,40.0,684.0,558.0,140.0,101.0,84.33,Single,Y,NO DATA!,,,2106.0,85.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,0.0,1.0,From main system,Average,Good,"Suspended, no insulation (assumed)",,,Partial double glazing,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Average,Good,"Programmer, room thermostat and TRVs",Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,0.0,N,natural,"84, Hartnup Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2009-05-20 23:05:07,owner-occupied,,,200003655789.0,Address Matched +445053449262010022513320783558310,"59, Thornhill Place",,,ME14 2SE,1891413768,E,D,51,58,House,End-Terrace,2010-02-25,E07000110,E14000804,Kent,2010-02-25,rental (private),49,56,493,416.0,3.3,81,2.8,36.0,21.0,587.0,525.0,82.0,68.0,40.77,Single,Y,NO DATA!,,,2107.0,86.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,27.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Mostly double glazing,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, electric",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 27% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.57,0.0,N,natural,"59, Thornhill Place",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2010-02-25 13:32:07,rental (private),,,200003702430.0,Address Matched +1361896089702015090813581136850288,"21, Upper Road",,,ME15 7RB,8710888378,E,C,44,75,House,Semi-Detached,2015-09-08,E07000110,E14000804,Kent,2015-09-08,marketed sale,37,70,415,163.0,6.4,75,2.6,97.0,54.0,970.0,705.0,321.0,74.0,84.0,Single,Y,NODATA!,,,2106.0,95.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,20.0,1.0,"From main system, no cylinder thermostat",Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Mostly double glazing,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 20% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"21, Upper Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2015-09-08 13:58:11,owner-occupied,,,200003685111.0,Address Matched +684133654952011121914502095999699,8 Hewson Court,Church Street,,ME14 1FH,6907450968,C,B,80,81,Flat,NO DATA!,2011-12-19,E07000110,E14000804,Kent,2011-12-19,new dwelling,81,82,142,137.0,1.4,25,1.3,44.0,32.0,186.0,188.0,104.0,104.0,55.4,standard tariff,,ground floor,,,,,NO DATA!,NO DATA!,,,,5.0,,From main system,Average,Good,Average thermal transmittance 0.25 W/m?K,Good,Good,Fully double glazed,Good,Good,Average thermal transmittance 0.24 W/m?K,Very Good,Very Good,,,,(other premises above),,,"Air source heat pump, underfloor, electric",Good,Very Good,Programmer and at least two room thermostats,Good,Good,Low energy lighting in 63% of fixed outlets,Good,Good,"Electricity: electricity, unspecified tariff",0.0,NO DATA!,,2.6,,,NO DATA!,"8 Hewson Court, Church Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2011-12-19 14:50:20,,8.0,5.0,10014306390.0,Address Matched +1667805669742018101516395762089858,Flat 43,Brenchley House,123-135 Week Street,ME14 1FX,5736160678,C,C,76,76,Flat,End-Terrace,2018-10-15,E07000110,E14000804,Kent,2018-10-15,new dwelling,80,80,173,173.0,1.1,30,1.1,30.0,30.0,196.0,196.0,97.0,97.0,37.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,Community scheme,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.28 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,Community scheme,Good,Good,"Charging system linked to use of community heating, programmer and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,NO DATA!,,NO DATA!,,,,,NO DATA!,"Flat 43, Brenchley House, 123-135 Week Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2018-10-15 16:39:57,unknown,6.0,6.0,10094440719.0,Address Matched +182394890722008103115132543508168,"37, Chillington Street",,,ME14 2RT,6444953568,E,D,46,60,House,Mid-Terrace,2008-10-30,E07000110,E14000804,Kent,2008-10-31,marketed sale,40,53,455,335.0,5.9,76,4.4,60.0,35.0,705.0,552.0,130.0,94.0,61.03,Single,Y,NO DATA!,,,2104.0,91.0,double glazing installed before 2002,Normal,1.0,5.0,5.0,27.0,1.0,From main system,Average,Good,"Suspended, no insulation (assumed)",,,Partial double glazing,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, mains gas",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Average,Good,Programmer and room thermostat,Poor,Poor,Low energy lighting in 27% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.44,0.0,N,natural,"37, Chillington Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2008-10-31 15:13:25,owner-occupied,,,200003669655.0,Address Matched +1591242715512017112122104291239655,"53, Yeoman Way",Bearsted,,ME15 8PH,6526515578,E,C,48,79,Bungalow,Semi-Detached,2017-11-21,E07000110,E14000700,Kent,2017-11-21,marketed sale,41,74,396,151.0,6.0,70,2.3,109.0,57.0,903.0,621.0,256.0,72.0,85.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,10.0,0.0,"From main system, no cylinder thermostat",Poor,Poor,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,"Room heaters, mains gas",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 10% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"53, Yeoman Way, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2017-11-21 22:10:42,owner-occupied,,,200003690946.0,Address Matched +1751568079702019091713533166619738,"3, Saffron Close",,,ME16 0US,747176678,C,B,71,82,House,End-Terrace,2019-09-17,E07000110,E14000804,Kent,2019-09-17,marketed sale,66,78,174,101.0,4.2,31,2.5,94.0,94.0,658.0,607.0,154.0,75.0,136.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,7.0,7.0,89.0,0.0,From main system,Good,Good,"Solid, limited insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 89% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"3, Saffron Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2019-09-17 13:53:31,owner-occupied,,,10022895953.0,Address Matched +919206669042013101611531409779768,"1, Shrubwood Close",Harrietsham,,ME17 1FJ,5053267078,B,B,89,89,House,Semi-Detached,2013-10-16,E07000110,E14000700,Kent,2013-10-16,new dwelling,92,92,48,48.0,0.8,9,0.8,47.0,47.0,248.0,248.0,88.0,88.0,81.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.16 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"1, Shrubwood Close, Harrietsham",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2013-10-16 11:53:14,NO DATA!,12.0,12.0,10014314949.0,Address Matched +52496149222019022317152457328251,"63, Arundel Square",,,ME15 6HB,5524437568,C,C,77,79,Flat,Detached,2019-02-22,E07000110,E14000804,Kent,2019-02-23,rental (private),80,82,141,130.0,1.5,25,1.4,111.0,58.0,227.0,232.0,96.0,96.0,61.0,dual,Y,2nd,Y,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,8.0,0.0,From main system,Good,Good,(another dwelling below),NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 270 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 8% of fixed outlets,Very Poor,Very Poor,mains gas (not community),0.0,unheated corridor,9.21,,,N,natural,"63, Arundel Square",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2019-02-23 17:15:24,rental (private),,,10022895163.0,Address Matched +474587269962016120900244175298696,Benchmark Cottage,Shearway Lane,Headcorn,TN27 9LR,9710615768,E,C,49,70,House,Mid-Terrace,2016-07-11,E07000110,E14000700,Kent,2016-12-09,new dwelling,45,61,208,102.0,8.4,50,5.2,83.0,83.0,1134.0,1134.0,253.0,211.0,168.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Average,Average,Average thermal transmittance 0.49 W/m-¦K,Poor,Poor,Fully double glazed,Good,Good,Average thermal transmittance 2.03 W/m-¦K,Very Poor,Very Poor,"Room heaters, wood logs",,,Average thermal transmittance 0.19 W/m-¦K,Good,Good,"Boiler and radiators, oil",Average,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,oil - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Benchmark Cottage, Shearway Lane, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,NO DATA!,2016-12-09 00:24:41,owner-occupied,20.0,20.0,200003702453.0,Address Matched +143394220022008100314375281678878,"20, Mitchell Close",Lenham,,ME17 2AE,7820271568,D,C,68,76,House,Semi-Detached,2008-10-03,E07000110,E14000700,Kent,2008-10-03,marketed sale,64,72,270,209.0,2.9,45,2.3,59.0,29.0,346.0,292.0,98.0,84.0,64.98,Single,Y,NO DATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Poor,Poor,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.26,0.0,N,natural,"20, Mitchell Close, Lenham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1991-1995,2008-10-03 14:37:52,owner-occupied,,,200003725133.0,Address Matched +4f5a7840d25090dd3b3e12b546e6d2007efcfac10fc81ce5e1f3e87a61dff1f2,36 Lushington Road,,,ME14 2QS,10001473059,E,C,48,77,House,Mid-Terrace,2021-08-09,E07000110,E14000804,Kent,2021-08-09,marketed sale,40,73,345,130.0,6.5,64,2.5,90.0,90.0,1150.0,644.0,87.0,60.0,102.0,Single,Y,,,,,100.0,double glazing installed during or after 2002,Normal,1.0,5.0,5.0,86.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,TRVs and bypass,Average,Average,Low energy lighting in 86% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.41,0.0,N,natural,36 Lushington Road,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2021-08-09 17:28:02,Owner-occupied,7.0,,200003670938.0,Energy Assessor +169494680542008102009551657282408,"8, Eling Court",,,ME15 6DE,4523682568,C,B,74,82,Flat,End-Terrace,2008-10-20,E07000110,E14000804,Kent,2008-10-20,rental (social),72,80,302,211.0,1.6,50,1.1,29.0,16.0,208.0,164.0,88.0,73.0,32.69,Single,Y,1st,Y,2.0,2107.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,20.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Poor,Poor,Low energy lighting in 20% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,unheated corridor,6.55,2.35,0.0,N,natural,"8, Eling Court",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2008-10-20 09:55:16,rental (social),,,10022901441.0,Address Matched +244817767132009031620150431968600,Flat 11 Lee Heights,Bambridge Court,,ME14 2LG,6051629568,D,C,58,78,Flat,Detached,2009-03-16,E07000110,E14000804,Kent,2009-03-16,rental (private),72,70,216,225.0,2.7,32,2.9,69.0,49.0,333.0,214.0,289.0,133.0,84.45,Single,N,3rd,Y,4.0,2602.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,45.0,0.0,"Electric immersion, standard tariff",Very Poor,Poor,(other premises below),,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 250mm loft insulation",Good,Good,"Room heaters, electric",Very Poor,Poor,Appliance thermostats,Good,Good,Low energy lighting in 45% of fixed outlets,Good,Good,electricity - this is for backwards compatibility only and should not be used,0.0,unheated corridor,4.2,2.59,0.0,N,natural,"Flat 11 Lee Heights, Bambridge Court",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2009-03-16 20:15:04,rental (private),,,10022892983.0,Address Matched +766616279002012033009461194627208,Flat 6 Wisteria House,Westmorland Road,,ME15 8JF,6080876968,C,C,77,77,Flat,NO DATA!,2012-03-30,E07000110,E14000700,Kent,2012-03-30,rental (social),81,81,152,152.0,1.2,29,1.2,28.0,28.0,242.0,242.0,67.0,67.0,42.31,Single,Y,2nd,Y,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,2.0,2.0,100.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,7.85,2.3,0.0,,natural,"Flat 6 Wisteria House, Westmorland Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1996-2002,2012-03-30 09:46:11,rental (social),5.0,5.0,200003685581.0,Address Matched +337285859302012041709323867529238,"28, Camden Street",,,ME14 1UU,6349855668,D,B,68,89,House,Mid-Terrace,2012-04-17,E07000110,E14000804,Kent,2012-04-17,rental (social),69,92,216,33.0,2.0,41,0.4,43.0,28.0,363.0,280.0,73.0,52.0,49.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,2.0,2.0,50.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"28, Camden Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2012-04-17 09:32:38,rental (social),6.0,3.0,200003699124.0,Address Matched +914353014732013041615465691978800,Flat 8 Hirst Court,"75, Buckland Road",,ME16 0GY,1041827078,B,B,81,81,Flat,Enclosed Mid-Terrace,2013-04-16,E07000110,E14000804,Kent,2013-04-16,new dwelling,84,84,103,103.0,1.3,20,1.3,43.0,43.0,251.0,251.0,76.0,76.0,67.0,standard tariff,,top floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Good,Good,Average thermal transmittance 0.35 W/m?K,Good,Good,,,,Average thermal transmittance 0.16 W/m?K,Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Flat 8 Hirst Court, 75, Buckland Road",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2013-04-16 15:46:56,NO DATA!,0.0,0.0,10022892806.0,Address Matched +4e36bf5fb62e75df8e04b1583967e6615ced3e99e71b486e9ad9232232fa6ac4,15 ATWATER COURT,LENHAM,,ME17 2PW,10001366937,C,B,75,82,Flat,Mid-Terrace,2021-07-21,E07000110,E14000700,Kent,2021-07-21,marketed sale,61,71,265,196.0,3.4,45,2.5,79.0,79.0,442.0,277.0,212.0,176.0,75.0,Unknown,N,01,Y,,,100.0,double glazing installed during or after 2002,Normal,1.0,3.0,3.0,100.0,0.0,"Electric immersion, off-peak",Average,Poor,(another dwelling below),,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,"Pitched, 100 mm loft insulation",Average,Average,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,heated corridor,,2.31,0.0,N,natural,"15 ATWATER COURT, LENHAM",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2021-07-21 12:48:10,Owner-occupied,10.0,,200003711157.0,Energy Assessor +967904624852014011012135790940112,"59, Bower Lane",,,ME16 8ED,1280401178,G,C,1,76,House,End-Terrace,2014-01-10,E07000110,E14000804,Kent,2014-01-10,assessment for green deal,9,73,759,126.0,15.0,134,2.7,116.0,59.0,3255.0,697.0,484.0,69.0,109.0,Single,Y,NODATA!,,,2699.0,0.0,not defined,Normal,0.0,6.0,0.0,0.0,3.0,No system present: electric immersion assumed,Very Poor,Very Poor,"Suspended, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation",Very Poor,Very Poor,No system present: electric heaters assumed,Very Poor,Very Poor,,Very Poor,Very Poor,No low energy lighting,Very Poor,Very Poor,To be used only when there is no heating/hot-water system,0.0,NO DATA!,,,0.0,,natural,"59, Bower Lane",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2014-01-10 12:13:57,owner-occupied,7.0,0.0,200003667545.0,Address Matched +1281990559962015021420103513048545,"53a, Heath Road",,,ME16 9LD,4152523378,E,C,51,71,Maisonette,Detached,2015-02-14,E07000110,E14000804,Kent,2015-02-14,rental (private),46,72,444,220.0,3.6,78,1.8,32.0,32.0,700.0,377.0,90.0,62.0,46.0,Unknown,Y,1st,Y,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,2.0,2.0,100.0,0.0,From main system,Good,Good,(other premises below),NO DATA!,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,no corridor,,,,N,natural,"53a, Heath Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2015-02-14 20:10:35,rental (private),,,10014309793.0,Address Matched +1039228799062013110800084546868667,The Long Barn,Gore Court,Otham,ME15 8RF,6452906178,C,B,74,87,Bungalow,Detached,2013-11-06,E07000110,E14000700,Kent,2013-11-08,rental (private),68,82,136,60.0,3.6,30,1.9,90.0,65.0,557.0,568.0,189.0,111.0,119.0,Unknown,N,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,5.0,5.0,61.0,0.0,From main system,Average,Average,"Solid, insulated (assumed)",,,Fully double glazed,Good,Good,"Timber frame, as built, insulated (assumed)",Good,Good,"Room heaters, wood logs",,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, oil",Average,Average,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 61% of fixed outlets,Good,Good,oil (not community),0.0,NO DATA!,,,0.0,,natural,"The Long Barn, Gore Court, Otham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2007 onwards,2013-11-08 00:08:45,rental (private),18.0,11.0,10091194613.0,Address Matched +1307755464532015041710064795978603,"30, Shaw Close",,,ME14 5DN,6385605378,C,B,72,86,House,Detached,2015-04-17,E07000110,E14000804,Kent,2015-04-17,marketed sale,70,84,181,78.0,2.8,32,1.2,69.0,69.0,465.0,429.0,140.0,74.0,87.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,82.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 82% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"30, Shaw Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2015-04-17 10:06:47,owner-occupied,,,10022892507.0,Address Matched +4e415612f13efe55e7e9758d20b3e6be50fbb61e6cbc59a5e5583f1b7a30f5c2,CHURCH FARM HOUSE,CHURCH FARM,ULCOMBE HILL,ME17 1DN,10001581502,E,D,41,58,House,Detached,2021-07-22,E07000110,E14000700,Kent,2021-07-22,marketed sale,35,48,222,157.0,19.0,59,14.0,208.0,210.0,2481.0,1951.0,188.0,128.0,325.0,dual,N,,,,,50.0,secondary glazing,Normal,1.0,11.0,11.0,76.0,0.0,"From main system, no cylinder thermostat",Poor,Poor,"Solid, no insulation (assumed)",,,Partial secondary glazing,Poor,Poor,"Timber frame, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, oil",Average,Average,Programmer and room thermostat,Average,Average,Low energy lighting in 76% of fixed outlets,Very Good,Very Good,oil (not community),0.0,,,2.21,0.0,N,natural,"CHURCH FARM HOUSE, CHURCH FARM, ULCOMBE HILL",Maidstone,Faversham and Mid Kent,ULCOMBE,England and Wales: before 1900,2021-07-22 17:14:32,Owner-occupied,25.0,,200003727483.0,Energy Assessor +1755987519062019100409324157548141,"8, Corbens Place",,,ME16 8FY,4558107678,B,A,84,94,House,End-Terrace,2019-10-04,E07000110,E14000804,Kent,2019-10-04,new dwelling,85,95,81,18.0,1.6,14,0.4,81.0,81.0,241.0,241.0,94.0,62.0,111.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.12 W/m+é-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.18 W/m+é-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.10 W/m+é-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"8, Corbens Place",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2019-10-04 09:32:41,unknown,30.0,30.0,10094441528.0,Address Matched +4e47ead9d742a48c9a31253b11ab26427ed8398744edfaa223bce6237ffd6f38,14 Caring Lane,Bearsted,,ME14 4NJ,10001353060,D,C,63,77,House,Detached,2021-09-29,E07000110,E14000700,Kent,2021-09-30,marketed sale,53,70,229,138.0,7.9,40,4.8,129.0,129.0,1333.0,970.0,87.0,88.0,195.0,Unknown,Y,,,,,100.0,"double glazing, unknown install date",Normal,2.0,7.0,7.0,88.0,0.0,"From main system, plus solar",Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 88% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.54,0.0,Y,natural,"14 Caring Lane, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2021-09-30 06:34:09,Owner-occupied,17.0,,200003698057.0,Energy Assessor +1016750909062013100309173794978397,"25, Bicknor Road",,,ME15 9NT,9962054178,D,B,61,86,House,End-Terrace,2013-10-03,E07000110,E14000700,Kent,2013-10-03,marketed sale,59,86,233,65.0,3.6,45,1.1,104.0,52.0,621.0,411.0,102.0,64.0,81.0,dual,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,0.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"25, Bicknor Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2013-10-03 09:17:37,owner-occupied,8.0,0.0,200003682757.0,Address Matched +1039273009062013110716150406658677,The Vicarage,Wallis Avenue,,ME15 9JJ,7059016178,D,C,60,79,House,Detached,2013-11-05,E07000110,E14000700,Kent,2013-11-07,assessment for green deal,56,78,203,101.0,8.6,36,4.1,141.0,101.0,1562.0,1014.0,243.0,131.0,241.0,dual,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,7.0,7.0,60.0,0.0,"From main system, no cylinder thermostat",Poor,Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, wood logs",,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 60% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"The Vicarage, Wallis Avenue",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2013-11-07 16:15:04,rental (social),15.0,9.0,200003729576.0,Address Matched +4e4fcf2fb123e9a3f0350ca7e4c29ff0a763376bb5e9e340f017edc84b458440,37 Maidstone Road,Lenham,,ME17 2QH,10001549384,D,B,59,82,House,Mid-Terrace,2021-09-27,E07000110,E14000700,Kent,2021-09-30,marketed sale,50,78,281,113.0,6.0,50,2.5,121.0,88.0,973.0,591.0,123.0,80.0,121.0,Single,Y,,,,,80.0,double glazing installed before 2002,Normal,2.0,7.0,7.0,63.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Mostly double glazing,Poor,Poor,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 63% of fixed outlets,Good,Good,mains gas (not community),0.0,,,2.42,0.0,N,natural,"37 Maidstone Road, Lenham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1900-1929,2021-09-30 09:36:34,Owner-occupied,16.0,,200003711591.0,Energy Assessor +1160943411152014062012032797940120,"11, Mangravet Avenue",,,ME15 9BQ,1082174278,E,B,54,81,House,Semi-Detached,2014-06-17,E07000110,E14000700,Kent,2014-06-20,none of the above,51,82,256,85.0,5.3,49,1.8,110.0,61.0,948.0,574.0,171.0,81.0,109.0,Single,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,1.0,5.0,2.0,18.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 18% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"11, Mangravet Avenue",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2014-06-20 12:03:27,owner-occupied,11.0,2.0,200003713832.0,Address Matched +1248318489602014121106293931040988,"205, Queens Road",,,ME16 0LF,1653680378,D,B,64,84,House,Semi-Detached,2014-12-08,E07000110,E14000804,Kent,2014-12-11,marketed sale,59,81,243,97.0,3.5,43,1.4,87.0,51.0,559.0,474.0,160.0,70.0,82.0,Unknown,Y,NODATA!,,,2106.0,85.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,30.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Mostly double glazing,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 30% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"205, Queens Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2014-12-11 06:29:39,owner-occupied,,,200003657033.0,Address Matched +1513161309222017012322500539728623,Flat 2,36 High Street,,ME14 1JH,2334069478,F,C,26,75,Flat,Mid-Terrace,2017-01-22,E07000110,E14000804,Kent,2017-01-23,rental (private),39,74,636,260.0,3.8,104,1.5,28.0,31.0,1073.0,221.0,103.0,103.0,37.0,Single,N,1st,N,,2602.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,100.0,0.0,Community scheme,Good,Very Good,(another dwelling below),NO DATA!,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,(another dwelling above),,,"Room heaters, electric",Very Poor,Poor,Appliance thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,no corridor,,,,N,natural,"Flat 2, 36 High Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2017-01-23 22:50:05,rental (private),,,10093305339.0,Address Matched +688782529112011101216080898999599,"2, Alen Square",Staplehurst,,TN12 0SB,5981980968,D,C,64,72,House,End-Terrace,2011-10-11,E07000110,E14000804,Kent,2011-10-12,marketed sale,62,73,238,170.0,3.3,46,2.3,59.0,40.0,504.0,390.0,134.0,102.0,71.76,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,50.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,2.38,0.0,,natural,"2, Alen Square, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1967-1975,2011-10-12 16:08:08,owner-occupied,10.0,5.0,200003678453.0,Address Matched +477889779262010043001295285218720,West Pike Fish Oast,Pike Fish Lane,Laddingford,ME18 6BH,2818745768,C,C,69,72,House,Detached,2010-04-29,E07000110,E14000804,Kent,2010-04-30,marketed sale,66,68,152,141.0,7.6,30,7.1,211.0,140.0,894.0,869.0,258.0,244.0,294.34,Single,N,NO DATA!,,,2110.0,100.0,double glazing installed during or after 2002,Normal,0.0,7.0,7.0,50.0,0.0,From main system,Average,Average,"Solid, insulated (assumed)",,,Fully double glazed,Good,Good,"Solid brick, with internal insulation",Very Good,Very Good,"Room heaters, wood logs",,,"Pitched, insulated at rafters",Good,Good,"Boiler and underfloor heating, oil",Average,Average,Time and temperature zone control,Very Good,Very Good,Low energy lighting in 50% of fixed outlets,Good,Good,oil - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.2,0.0,N,natural,"West Pike Fish Oast, Pike Fish Lane, Laddingford",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2010-04-30 01:29:52,owner-occupied,,,10022895371.0,Address Matched +1043539849942013111420540610679548,"10, Wilsons Lane",East Farleigh,,ME15 0LU,6993246178,D,B,65,86,House,End-Terrace,2013-11-14,E07000110,E14000804,Kent,2013-11-14,marketed sale,45,69,341,170.0,5.2,60,2.6,90.0,55.0,554.0,388.0,133.0,86.0,87.0,dual,N,NODATA!,,,2401.0,85.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,36.0,0.0,"Electric immersion, off-peak",Average,Very Poor,"Solid, no insulation (assumed)",,,Mostly double glazing,Poor,Poor,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, 100 mm loft insulation",Average,Average,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 36% of fixed outlets,Average,Average,electricity (not community),0.0,NO DATA!,,,0.0,,natural,"10, Wilsons Lane, East Farleigh",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2013-11-14 20:54:06,owner-occupied,11.0,4.0,200003728001.0,Address Matched +589632150852011020713550896090786,"72, Oakwood Road",,,ME16 8AL,7643063868,E,D,44,58,House,Detached,2011-02-07,E07000110,E14000804,Kent,2011-02-07,marketed sale,41,53,381,285.0,8.0,63,6.0,136.0,68.0,1290.0,983.0,141.0,141.0,125.04,Single,Y,NO DATA!,,,2104.0,0.0,not defined,Normal,1.0,6.0,6.0,0.0,1.0,From main system,Very Good,Very Good,"Suspended, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Very Good,Very Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,0.0,N,natural,"72, Oakwood Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2011-02-07 13:55:08,owner-occupied,,,200003657322.0,Address Matched +911790489962013041110120337398807,Flat 5 Mauritius House,Balliol Grove,,ME15 9WQ,375807078,C,C,74,74,Flat,Mid-Terrace,2013-04-11,E07000110,E14000700,Kent,2013-04-11,new dwelling,76,76,167,167.0,2.1,30,2.1,54.0,54.0,343.0,343.0,126.0,126.0,69.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Average,Good,Average thermal transmittance 0.13 W/m?K,Very Good,Very Good,Fully double glazed,Good,Good,Average thermal transmittance 0.28 W/m?K,Very Good,Very Good,,,,(other premises above),,,"Air source heat pump, radiators, electric",Average,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 78% of fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"Flat 5 Mauritius House, Balliol Grove",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2013-04-11 10:12:03,NO DATA!,9.0,7.0,10014311673.0,Address Matched +1062080279242013121717161816779238,"111, Badger Road",,,ME5 8XS,2298277178,E,B,53,81,House,End-Terrace,2013-12-17,E07000110,E14000700,Kent,2013-12-17,none of the above,51,83,302,95.0,4.0,57,1.3,71.0,42.0,763.0,500.0,97.0,60.0,70.0,Single,Y,NODATA!,,,2102.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,33.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, partial insulation (assumed)",Average,Average,,,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,Low energy lighting in 33% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,"mechanical, supply and extract","111, Badger Road",Maidstone,Faversham and Mid Kent,CHATHAM,England and Wales: 1976-1982,2013-12-17 17:16:18,owner-occupied,9.0,3.0,200003673548.0,Address Matched +817695423152012072510534694220006,Flat 1 Palmerston House,Peel Street,,ME14 2WD,619340078,C,C,79,79,Flat,End-Terrace,2012-07-21,E07000110,E14000804,Kent,2012-07-25,rental (private),84,84,112,112.0,1.1,21,1.1,35.0,35.0,224.0,224.0,72.0,72.0,53.0,Single,Y,Ground,N,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,100.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,heated corridor,,,0.0,,natural,"Flat 1 Palmerston House, Peel Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2012-07-25 10:53:46,rental (private),7.0,7.0,10014306131.0,Address Matched +398709599802011063016043862997808,"45, Freshland Road",,,ME16 0WH,3884199668,C,C,69,73,House,Detached,2011-06-30,E07000110,E14000804,Kent,2011-06-30,marketed sale,67,71,179,157.0,3.8,34,3.3,95.0,56.0,556.0,520.0,128.0,114.0,110.5,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,30.0,0.0,From main system,Good,Good,"Suspended, limited insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 30% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,2.255,0.0,,natural,"45, Freshland Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2011-06-30 16:04:38,owner-occupied,10.0,3.0,10022901698.0,Address Matched +1147503699222014052819471033888604,The Malting,Haviker Street,Collier Street,TN12 9RG,398973278,E,C,45,77,Bungalow,Detached,2014-05-28,E07000110,E14000804,Kent,2014-05-28,marketed sale,35,65,268,107.0,9.6,67,4.3,142.0,71.0,1705.0,1048.0,279.0,126.0,143.0,Single,N,NODATA!,,,2106.0,89.0,double glazing installed before 2002,Normal,1.0,5.0,5.0,0.0,0.0,From main system,Average,Poor,"Solid, no insulation (assumed)",,,Mostly double glazing,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, oil",Average,Average,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,oil (not community),0.0,NO DATA!,,,0.0,,natural,"The Malting, Haviker Street, Collier Street",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1967-1975,2014-05-28 19:47:10,owner-occupied,17.0,0.0,200003723411.0,Address Matched +1449352056632016060115261440078805,62a Bower Lane,,,ME16 8ED,5580805478,B,B,88,89,House,Mid-Terrace,2016-06-01,E07000110,E14000804,Kent,2016-06-01,new dwelling,89,91,56,45.0,1.0,10,0.8,76.0,76.0,258.0,258.0,98.0,61.0,102.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m+é-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.20 W/m+é-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.13 W/m+é-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,62a Bower Lane,Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2016-06-01 15:26:14,unknown,25.0,25.0,10093302891.0,Address Matched +4e74d860fc10d2259ca66e0f874658cfd1a9526dd6c5ba67a8a21649b451a4a3,45 HARDY STREET,,,ME14 2SH,10001582015,D,B,62,87,House,Mid-Terrace,2021-07-21,E07000110,E14000804,Kent,2021-07-29,rental,56,86,275,72.0,3.7,49,1.0,64.0,64.0,562.0,367.0,162.0,67.0,77.0,Unknown,Y,,,,,100.0,double glazing installed during or after 2002,Normal,2.0,4.0,4.0,100.0,0.0,From main system,Average,Average,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.48,0.0,N,natural,45 HARDY STREET,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2021-07-29 08:44:28,Rented (private),10.0,,200003702710.0,Energy Assessor +128840900112019072016063196210244,"10, Oliver Road",Staplehurst,,TN12 0TD,2452069468,D,B,56,83,House,Detached,2019-07-20,E07000110,E14000804,Kent,2019-07-20,marketed sale,49,79,304,106.0,5.2,54,1.9,115.0,70.0,830.0,511.0,154.0,73.0,97.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,3.0,6.0,6.0,35.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 35% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"10, Oliver Road, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1967-1975,2019-07-20 16:06:31,owner-occupied,,,200003678761.0,Address Matched +361557911152009091123221903910268,Flat 8 Linden House,Bell Road,,ME15 9GU,2898137668,B,B,83,84,Flat,Semi-Detached,2009-09-11,E07000110,E14000700,Kent,2009-09-11,rental (social),82,83,137,132.0,1.5,23,1.4,54.0,36.0,231.0,234.0,82.0,82.0,65.52,Unknown,Y,3rd,Y,4.0,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,50.0,0.0,From main system,Very Good,Very Good,(other premises below),,,Fully double glazed,Good,Good,"Timber frame, as built, insulated (assumed)",Good,Good,,,,"Flat, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,unheated corridor,7.8,2.37,0.0,N,natural,"Flat 8 Linden House, Bell Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2007 onwards,2009-09-11 23:22:19,rental (social),,,10022896387.0,Address Matched +1233531519922015031209205689698285,Bettaville,Ashford Road,Harrietsham,ME17 1BN,8859189278,D,A,67,94,House,Semi-Detached,2015-03-11,E07000110,E14000700,Kent,2015-03-12,marketed sale,60,88,206,48.0,5.6,37,1.5,97.0,97.0,1026.0,779.0,113.0,113.0,151.0,Single,Y,NODATA!,,,2101.0,100.0,"double glazing, unknown install date",Normal,1.0,7.0,7.0,75.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,No time or thermostatic control of room temperature,Very Poor,Very Poor,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"Bettaville, Ashford Road, Harrietsham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2015-03-12 09:20:56,owner-occupied,,,200003703974.0,Address Matched +256141210112009033014564109210058,Venlo,Well Street,Loose,ME15 0EJ,888099568,D,C,55,77,House,Semi-Detached,2009-03-27,E07000110,E14000804,Kent,2009-03-30,marketed sale,49,74,324,162.0,6.4,54,3.2,99.0,58.0,729.0,376.0,147.0,106.0,117.8,dual,Y,NO DATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,6.0,6.0,30.0,0.0,From main system,Average,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 75mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Average,Good,Programmer and room thermostat,Poor,Poor,Low energy lighting in 30% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,0.0,N,natural,"Venlo, Well Street, Loose",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2009-03-30 14:56:41,owner-occupied,,,200003663736.0,Address Matched +1458852169062016070711223945238846,Station Newsagents,"Braemar, Station Road",Staplehurst,TN12 0QH,4441675478,E,D,43,61,Maisonette,Semi-Detached,2016-07-07,E07000110,E14000804,Kent,2016-07-07,marketed sale,37,55,458,291.0,5.5,81,3.5,93.0,49.0,1019.0,693.0,113.0,71.0,68.0,Unknown,Y,Ground,N,,2106.0,90.0,"double glazing, unknown install date",Normal,2.0,6.0,6.0,10.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Mostly double glazing,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 10% of fixed outlets,Poor,Poor,mains gas (not community),0.0,no corridor,0.0,2.5,,N,natural,"Station Newsagents, Braemar, Station Road, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1900-1929,2016-07-07 11:22:39,owner-occupied,,,200003655504.0,Address Matched +545861729942010092716232787002748,Flat 7 Caroline Court,"8-28, Brunswick Street",,ME15 6NP,9938320868,B,B,85,85,Flat,Enclosed Mid-Terrace,2010-09-24,E07000110,E14000804,Kent,2010-09-27,rental (social),87,87,119,119.0,1.0,18,1.0,31.0,31.0,231.0,231.0,77.0,77.0,52.61,Single,Y,2nd,Y,3.0,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,100.0,0.0,From main system,Very Good,Very Good,(other premises below),,,Fully double glazed,Good,Good,"Timber frame, as built, insulated (assumed)",Good,Good,,,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,heated corridor,,2.4,5.0,N,"mechanical, supply and extract","Flat 7 Caroline Court, 8-28, Brunswick Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2010-09-27 16:23:27,rental (social),,,10014311827.0,Address Matched +4e896d98f823d62cc2650f750f53f4368e911205f7c592934e68bfa27767ce0d,46 HARVESTERS WAY,WEAVERING,,ME14 5SJ,10000367015,C,B,73,90,House,End-Terrace,2021-07-19,E07000110,E14000700,Kent,2021-07-19,rental,74,91,203,45.0,1.7,36,0.4,43.0,43.0,315.0,292.0,73.0,49.0,48.0,Single,Y,,,,,100.0,"double glazing, unknown install date",Normal,1.0,3.0,3.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 270 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.28,0.0,N,natural,"46 HARVESTERS WAY, WEAVERING",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2021-07-19 15:39:41,Rented (private),9.0,,200003716321.0,Energy Assessor +1719951019652019051504453593010869,Flat 2,11 Station Road,,ME14 1QH,8972934678,D,D,66,66,Flat,Detached,2019-05-08,E07000110,E14000804,Kent,2019-05-15,unknown,70,70,231,231.0,1.9,39,1.9,40.0,40.0,321.0,321.0,246.0,246.0,48.0,standard tariff,,ground floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,"Electric immersion, standard tariff",Very Poor,Poor,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.34 W/m-¦K,Good,Good,,,,(other premises above),,,"Room heaters, electric",Very Poor,Poor,Appliance thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"Flat 2, 11 Station Road",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2019-05-15 04:45:35,unknown,6.0,6.0,10094439934.0,Address Matched +385874897452009102111463809919662,"5, Grenadier Close",Bearsted,,ME15 8GR,6290798668,C,C,70,75,House,Detached,2009-10-19,E07000110,E14000700,Kent,2009-10-21,rental (private),66,72,233,194.0,3.2,39,2.7,90.0,45.0,430.0,396.0,133.0,112.0,83.56,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,0.0,0.0,From main system,Good,Good,"Solid, limited insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,,0.0,N,natural,"5, Grenadier Close, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,,2009-10-21 11:46:38,rental (private),,,200003723245.0,Address Matched +627527779962011051114435466798229,"40, Huntington Road",Coxheath,,ME17 4DY,2631756868,D,D,58,64,House,Semi-Detached,2011-05-11,E07000110,E14000804,Kent,2011-05-11,marketed sale,57,64,248,206.0,4.7,47,3.9,90.0,53.0,771.0,683.0,131.0,110.0,99.44,dual,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,1.0,4.0,4.0,28.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 29% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,2.44,0.0,,natural,"40, Huntington Road, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2011-05-11 14:43:54,owner-occupied,21.0,6.0,200003671636.0,Address Matched +337319519012019090421175295010860,"14a, Upper Fant Road",,,ME16 8DN,8051955668,E,C,52,76,House,Mid-Terrace,2019-09-04,E07000110,E14000804,Kent,2019-09-04,marketed sale,50,74,321,143.0,4.2,56,1.9,98.0,64.0,836.0,626.0,127.0,77.0,75.0,dual,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,1.0,4.0,3.0,48.0,0.0,From main system,Good,Good,"To unheated space, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,Portable electric heaters (assumed),,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 48% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"14a, Upper Fant Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2019-09-04 21:17:52,owner-occupied,,,200003668313.0,Address Matched +1092311289502014021816224012949388,"5, Athelstan Green",Hollingbourne,,ME17 1UX,5528689178,D,C,57,73,Bungalow,Detached,2014-02-18,E07000110,E14000700,Kent,2014-02-18,FiT application,52,69,248,142.0,5.0,48,2.9,110.0,58.0,880.0,758.0,137.0,88.0,105.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,2.0,5.0,5.0,12.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 12% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"5, Athelstan Green, Hollingbourne",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2014-02-18 16:22:40,owner-occupied,16.0,2.0,200003700528.0,Address Matched +415471536652009122319202700219774,"19, Banky Meadow",,,ME16 9LA,7447601768,D,D,61,67,House,Detached,2009-12-23,E07000110,E14000804,Kent,2009-12-23,marketed sale,55,62,270,229.0,5.9,45,5.0,129.0,67.0,815.0,715.0,141.0,141.0,149.34,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,2.0,5.0,5.0,8.0,1.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 25 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 8% of fixed outlets,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.45,0.0,N,natural,"19, Banky Meadow",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2009-12-23 19:20:27,owner-occupied,,,200003667259.0,Address Matched +597615129842013082122583987472098,"41, Northumberland Court",Northumberland Road,,ME15 7LL,8853624868,C,C,77,78,Flat,Mid-Terrace,2013-08-21,E07000110,E14000700,Kent,2013-08-21,rental (social),78,79,122,117.0,1.9,23,1.9,74.0,53.0,344.0,347.0,89.0,89.0,84.0,Single,Y,2nd,Y,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,60.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Flat, limited insulation (assumed)",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 60% of fixed outlets,Good,Good,mains gas (not community),0.0,no corridor,,,0.0,,natural,"41, Northumberland Court, Northumberland Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2013-08-21 22:58:39,rental (social),10.0,6.0,200003729039.0,Address Matched +117024609062013120712313638158257,Peacehaven,Dunn Street Road,Bredhurst,ME7 3LY,5313088468,E,D,40,62,Bungalow,Detached,2013-12-05,E07000110,E14000700,Kent,2013-12-07,marketed sale,37,56,261,150.0,8.4,64,5.2,120.0,66.0,1736.0,1350.0,190.0,107.0,130.0,Single,N,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,2.0,6.0,6.0,17.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, LPG",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, oil",Average,Average,Programmer and room thermostat,Average,Average,Low energy lighting in 17% of fixed outlets,Poor,Poor,oil (not community),0.0,NO DATA!,,,0.0,,natural,"Peacehaven, Dunn Street Road, Bredhurst",Maidstone,Faversham and Mid Kent,GILLINGHAM,England and Wales: 1950-1966,2013-12-07 12:31:36,owner-occupied,18.0,3.0,, +516650819802010072123282078802898,"45, Surrenden Road",Staplehurst,,TN12 0LY,7812918768,D,C,65,75,House,Semi-Detached,2010-07-21,E07000110,E14000804,Kent,2010-07-21,rental (private),60,72,268,192.0,3.9,45,2.8,92.0,46.0,510.0,426.0,186.0,120.0,86.88,Single,Y,NO DATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,0.0,0.0,"From main system, no cylinder thermostat",Average,Average,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.24,0.0,N,natural,"45, Surrenden Road, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1950-1966,2010-07-21 23:28:20,rental (private),,,200003678167.0,Address Matched +801315199962015061810090769588525,4 West End Cottages,West End,Marden,TN12 9JB,2613929968,E,C,41,78,House,End-Terrace,2015-06-18,E07000110,E14000804,Kent,2015-06-18,marketed sale,44,76,387,160.0,6.4,58,2.3,64.0,65.0,1512.0,1246.0,118.0,78.0,112.0,Single,Y,NODATA!,,,2104.0,0.0,not defined,Normal,1.0,6.0,6.0,100.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Single glazed,Very Poor,Very Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"4 West End Cottages, West End, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: before 1900,2015-06-18 10:09:07,owner-occupied,,,200003710805.0,Address Matched +4ed1557ad618f630bdb775ed5271713a93af0cd87d3e58e751dd3dd5c3cd48ed,62a Bell Road,,,ME15 9HP,10001572079,C,C,72,76,Flat,Mid-Terrace,2021-09-29,E07000110,E14000700,Kent,2021-09-29,rental,71,77,209,165.0,2.2,37,1.8,54.0,54.0,386.0,304.0,86.0,86.0,61.0,Single,Y,01,Y,,,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,(another dwelling below),,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,no corridor,,2.33,0.0,N,natural,62a Bell Road,Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2021-09-29 09:40:39,Rented (social),6.0,,200003683033.0,Energy Assessor +1738177413132019072323060172278507,"39, Wrangleden Road",,,ME15 9LJ,1742575678,E,D,49,67,Bungalow,Semi-Detached,2019-07-23,E07000110,E14000700,Kent,2019-07-23,marketed sale,46,61,365,237.0,5.0,64,3.3,121.0,60.0,952.0,888.0,122.0,77.0,79.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,2.0,5.0,5.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Average,Average,"Room heaters, electric",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"39, Wrangleden Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2019-07-23 23:06:01,owner-occupied,,,200003682491.0,Address Matched +335993459642019071819435568519188,"4, Dover Street",,,ME16 8LE,2624355668,D,B,64,86,House,Mid-Terrace,2019-07-18,E07000110,E14000804,Kent,2019-07-18,marketed sale,60,85,267,76.0,3.0,47,0.9,75.0,50.0,475.0,347.0,123.0,73.0,63.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,4.0,4.0,50.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"4, Dover Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2019-07-18 19:43:55,owner-occupied,,,200003655526.0,Address Matched +79646469022016010910483475588896,"12, Marsham Crescent",Chart Sutton,,ME17 3RJ,9749625468,D,B,68,85,Bungalow,Detached,2016-01-08,E07000110,E14000700,Kent,2016-01-09,none of the above,64,82,204,90.0,4.0,37,1.8,111.0,65.0,654.0,543.0,167.0,78.0,109.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,2.0,5.0,5.0,29.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 29% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"12, Marsham Crescent, Chart Sutton",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2016-01-09 10:48:34,owner-occupied,,,200003690300.0,Address Matched +776521604112013101116204295079197,34 Crundale,Union Street,,ME14 1TX,1773457968,C,C,73,79,Flat,End-Terrace,2013-10-03,E07000110,E14000804,Kent,2013-10-11,none of the above,75,82,148,106.0,2.2,28,1.6,97.0,49.0,359.0,273.0,119.0,120.0,79.0,Single,Y,6th,N,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,0.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,unheated corridor,1.5,,0.0,,natural,"34 Crundale, Union Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2013-10-11 16:20:42,rental (social),9.0,0.0,200003701451.0,Address Matched +1627956579802018043009141756782488,Oakridge Barn,Maidstone Road,Marden,TN12 9AG,9844377578,D,A,58,92,House,Semi-Detached,2018-04-28,E07000110,E14000804,Kent,2018-04-30,marketed sale,47,86,262,56.0,9.2,46,2.1,149.0,98.0,1512.0,823.0,197.0,126.0,198.0,Unknown,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,2.0,8.0,8.0,48.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 48% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"Oakridge Barn, Maidstone Road, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: before 1900,2018-04-30 09:14:17,owner-occupied,,,200003709007.0,Address Matched +10596927152008102110195106289241,"9, Furfield Chase",Boughton Monchelsea,,ME17 4GD,2126767468,B,B,82,83,House,Semi-Detached,2008-10-21,E07000110,E14000700,Kent,2008-10-21,new dwelling,82,83,115,109.0,2.2,19,2.1,88.0,57.0,252.0,256.0,90.0,90.0,116.75,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,5.0,,From main system,Very Good,Very Good,Average thermal transmittance = 0.21 W/m?K,Good,Good,Fully double glazed,Good,Good,Average thermal transmittance = 0.24 W/m?K,Very Good,Very Good,,,,Average thermal transmittance = 0.14 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 45% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.31,,,NO DATA!,"9, Furfield Chase, Boughton Monchelsea",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2007 onwards,2008-10-21 10:19:51,,11.0,5.0,10022901147.0,Address Matched +1400859369902016073107552640167798,"8, Mynn Crescent",Bearsted,,ME14 4AS,2968461478,C,B,70,83,House,Detached,2016-07-31,E07000110,E14000700,Kent,2016-07-31,marketed sale,66,80,188,98.0,3.7,33,1.9,101.0,67.0,599.0,547.0,158.0,93.0,110.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,6.0,6.0,50.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 270 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,2.4,,N,natural,"8, Mynn Crescent, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2016-07-31 07:55:26,owner-occupied,,,200003691811.0,Address Matched +1745802679262019082209453436628971,"8, Mulberry Place",,,ME15 7FB,7365726678,B,A,81,93,Bungalow,Semi-Detached,2019-08-22,E07000110,E14000700,Kent,2019-08-22,new dwelling,83,93,122,37.0,1.4,21,0.4,64.0,64.0,185.0,185.0,216.0,216.0,69.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Average,Good,Average thermal transmittance 0.11 W/m+é-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.17 W/m+é-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.10 W/m+é-¦K,Very Good,Very Good,"Air source heat pump, underfloor, electric",Good,Very Good,2207 Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"8, Mulberry Place",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2019-08-22 09:45:34,unknown,20.0,20.0,10094442424.0,Address Matched +416267610762009123113405861608311,"36, Hildenborough Crescent",,,ME16 0NY,1617111768,D,C,58,71,House,Semi-Detached,2009-12-30,E07000110,E14000804,Kent,2009-12-31,marketed sale,52,66,328,232.0,4.7,54,3.3,80.0,43.0,677.0,487.0,115.0,115.0,97.8,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,6.0,6.0,13.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, mains gas",,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 13% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,0.0,N,natural,"36, Hildenborough Crescent",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2009-12-31 13:40:58,owner-occupied,,,200003706977.0,Address Matched +1438155909262016042718262474538146,"11, Carisbrooke Drive",,,ME16 0HY,4752034478,E,C,43,76,House,Detached,2016-04-27,E07000110,E14000804,Kent,2016-04-27,marketed sale,36,70,399,148.0,7.5,70,2.8,95.0,66.0,1374.0,747.0,168.0,79.0,107.0,Unknown,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,55.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 55% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,2.43,,N,natural,"11, Carisbrooke Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2016-04-27 18:26:24,owner-occupied,,,200003656751.0,Address Matched +1513141310412017030122341396030148,Flat 3,36 High Street,,ME14 1JH,1834069478,F,C,22,75,Flat,Mid-Terrace,2017-03-01,E07000110,E14000804,Kent,2017-03-01,rental (private),33,65,561,250.0,5.6,95,2.5,43.0,47.0,1500.0,309.0,122.0,134.0,59.0,Unknown,N,2nd,Y,,2602.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,100.0,0.0,From main system,Poor,Good,(another dwelling below),NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Flat, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, electric",Very Poor,Poor,Appliance thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,heated corridor,,,,N,natural,"Flat 3, 36 High Street",Maidstone,Maidstone and The Weald,MAINSTONE,England and Wales: 1900-1929,2017-03-01 22:34:13,rental (private),,,10093305340.0,Address Matched +1789324225652020030219002524000863,9 Napier Court,Invicta Park,,ME14 2PJ,8340549678,D,B,66,85,House,Mid-Terrace,2020-03-02,E07000110,E14000804,Kent,2020-03-02,marketed sale,63,83,245,91.0,3.0,43,1.1,56.0,56.0,506.0,397.0,120.0,76.0,69.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"9 Napier Court, Invicta Park",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2020-03-02 19:00:25,owner-occupied,,,200003724049.0,Address Matched +199929872922020061523251735458200,"16, Eyhorne Street",Hollingbourne,,ME17 1TR,342725568,D,B,59,85,House,Mid-Terrace,2020-06-15,E07000110,E14000700,Kent,2020-06-15,rental (private),57,86,323,85.0,3.0,57,0.8,99.0,50.0,513.0,361.0,112.0,71.0,53.0,dual,Y,NODATA!,,,2106.0,0.0,not defined,Normal,2.0,3.0,3.0,0.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Single glazed,Very Poor,Very Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"16, Eyhorne Street, Hollingbourne",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2020-06-15 23:25:17,rental (private),,,200003722192.0,Address Matched +1533415729922017041214540281028293,"2, Lombardy Drive",,,ME14 5TA,9853201578,D,C,60,79,House,Detached,2017-04-12,E07000110,E14000804,Kent,2017-04-12,marketed sale,51,74,263,126.0,5.8,46,2.8,73.0,73.0,1007.0,717.0,173.0,78.0,125.0,Single,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,1.0,7.0,7.0,100.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, mains gas",,,"Pitched, 270 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"2, Lombardy Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2017-04-12 14:54:02,owner-occupied,,,200003673015.0,Address Matched +737071609062012010619421524358782,Flat 8,201 Boxley Road,,ME14 2TL,8223044968,C,C,76,76,Flat,NO DATA!,2012-01-05,E07000110,E14000804,Kent,2012-01-06,rental (private),82,82,224,224.0,0.9,43,0.9,20.0,20.0,160.0,160.0,81.0,81.0,20.2,Unknown,Y,2nd,N,,2305.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,67.0,0.0,Community scheme,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,(another dwelling above),,,Community scheme,Good,Good,"Flat rate charging, programmer and TRVs",Average,Average,Low energy lighting in 67% of fixed outlets,Good,Good,mains gas (community),0.0,heated corridor,,2.6,0.0,,natural,"Flat 8, 201 Boxley Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2012-01-06 19:42:15,rental (private),3.0,2.0,200003704276.0,Address Matched +1344315339962015071706291927168955,"8, St. Annes Court",,,ME16 0UQ,5205367378,C,B,80,82,Flat,Semi-Detached,2015-07-16,E07000110,E14000804,Kent,2015-07-17,rental (private),70,72,255,238.0,1.8,43,1.7,48.0,34.0,143.0,123.0,127.0,127.0,41.0,dual,N,1st,N,,2402.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,60.0,0.0,"Electric immersion, off-peak",Average,Poor,(another dwelling below),NO DATA!,,Fully double glazed,Average,Average,"Timber frame, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,(another dwelling above),,,Electric storage heaters,Average,Very Poor,Automatic charge control,Average,Average,Low energy lighting in 60% of fixed outlets,Good,Good,electricity (not community),0.0,unheated corridor,6.1,,,N,natural,"8, St. Annes Court",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2015-07-17 06:29:19,rental (private),,,200003667017.0,Address Matched +96236421212015101413214099959149,Tilts House,Heath Road,Boughton Monchelsea,ME17 4JE,1942196468,D,B,56,83,House,Detached,2015-10-14,E07000110,E14000700,Kent,2015-10-14,FiT application,45,77,162,56.0,12.0,47,4.7,104.0,107.0,2275.0,1016.0,207.0,108.0,259.0,Single,N,NODATA!,,,2106.0,0.0,not defined,Normal,0.0,8.0,8.0,100.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Single glazed,Very Poor,Very Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, oil",Average,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,oil (not community),0.0,NO DATA!,,,,N,natural,"Tilts House, Heath Road, Boughton Monchelsea",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2015-10-14 13:21:40,owner-occupied,,,200003709591.0,Address Matched +1778414442922020012008191458768270,"9, Springett Way",Coxheath,,ME17 4HQ,7514468678,D,B,66,86,House,Semi-Detached,2020-01-16,E07000110,E14000804,Kent,2020-01-20,marketed sale,62,84,242,89.0,3.3,43,1.3,74.0,74.0,581.0,416.0,93.0,66.0,77.0,Unknown,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,80.0,0.0,Gas multipoint,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"9, Springett Way, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2020-01-20 08:19:14,owner-occupied,,,200003714081.0,Address Matched +1366623429202015092213024930952128,Flat 2,11 Gabriels Hill,,ME15 6HL,4256229378,G,C,10,78,Maisonette,Enclosed Mid-Terrace,2015-09-22,E07000110,E14000804,Kent,2015-09-22,marketed sale,23,68,615,198.0,9.5,104,3.1,120.0,68.0,2441.0,289.0,206.0,228.0,92.0,Unknown,N,2nd,Y,,2699.0,0.0,not defined,Normal,0.0,1.0,0.0,0.0,0.0,Electric instantaneous at point of use,Very Poor,Poor,(another dwelling below),NO DATA!,,Single glazed,Very Poor,Very Poor,"Timber frame, with additional insulation",Good,Good,,,,"Roof room(s), no insulation (assumed)",Very Poor,Very Poor,No system present: electric heaters assumed,Very Poor,Poor,,Very Poor,Very Poor,No low energy lighting,Very Poor,Very Poor,To be used only when there is no heating/hot-water system,0.0,no corridor,,,,N,natural,"Flat 2, 11 Gabriels Hill",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2015-09-22 13:02:49,owner-occupied,,,10091196068.0,Address Matched +998678369962017121808270553148513,22 Mandeville Court,Union Street,,ME14 1JR,1576623178,C,C,70,79,Flat,Enclosed Mid-Terrace,2017-12-14,E07000110,E14000804,Kent,2017-12-18,marketed sale,73,76,234,205.0,1.6,40,1.4,58.0,35.0,285.0,138.0,151.0,167.0,41.0,Unknown,N,Ground,N,,2601.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,17.0,0.0,Electric instantaneous at point of use,Very Poor,Poor,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Room heaters, electric",Very Poor,Poor,No thermostatic control of room temperature,Poor,Poor,Low energy lighting in 17% of fixed outlets,Poor,Poor,electricity (not community),0.0,heated corridor,,,,N,natural,"22 Mandeville Court, Union Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1991-1995,2017-12-18 08:27:05,owner-occupied,,,200003699206.0,Address Matched +372759380222009092923144898618161,"22, Sissinghurst Drive",,,ME16 0UW,6916808668,C,C,70,79,House,Mid-Terrace,2009-09-29,E07000110,E14000804,Kent,2009-09-29,rental (private),66,77,284,196.0,2.5,47,1.7,52.0,26.0,320.0,271.0,146.0,93.0,60.7,Unknown,Y,NO DATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,0.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 150mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Poor,Poor,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.27,0.0,N,natural,"22, Sissinghurst Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1991-1995,2009-09-29 23:14:48,rental (private),,,200003693242.0,Address Matched +501983219802010061819034272709488,"8, Senacre Lane",,,ME15 8HB,8832117768,D,C,56,70,House,Semi-Detached,2010-06-18,E07000110,E14000700,Kent,2010-06-18,marketed sale,49,65,347,237.0,5.1,58,3.5,66.0,46.0,670.0,526.0,222.0,118.0,100.56,Single,Y,NO DATA!,,,2107.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,55.0,1.0,"From main system, no cylinder thermostat",Poor,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Average,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 55% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.29,0.0,N,natural,"8, Senacre Lane",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2010-06-18 19:03:42,owner-occupied,,,200003680541.0,Address Matched +1593703439402017120114471952530598,"5, Lodge Close",Allington,,ME16 0ZY,2450335578,B,A,86,92,House,Semi-Detached,2017-12-01,E07000110,E14000804,Kent,2017-12-01,new dwelling,85,91,73,40.0,2.3,13,1.3,84.0,84.0,378.0,378.0,106.0,106.0,176.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.14 W/m+é-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.17 W/m+é-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.10 W/m+é-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"5, Lodge Close, Allington",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2017-12-01 14:47:19,unknown,35.0,35.0,10093304512.0,Address Matched +1585497939222017102711183514938773,"20, Oaken Wood Drive",,,ME16 9FE,7151374578,B,A,85,96,House,Semi-Detached,2017-10-27,E07000110,E14000804,Kent,2017-10-27,new dwelling,87,98,76,-3.0,1.2,13,0.0,64.0,64.0,193.0,193.0,82.0,48.0,87.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.18 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"20, Oaken Wood Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2017-10-27 11:18:35,unknown,20.0,20.0,10093303615.0,Address Matched +592713888712011062109150898290380,11 Bearsted Views,St. Faiths Lane,Bearsted,ME14 4FB,3066883868,C,C,75,77,House,Detached,2011-06-20,E07000110,E14000700,Kent,2011-06-21,marketed sale,73,75,131,123.0,4.5,25,4.3,144.0,72.0,665.0,677.0,107.0,107.0,119.66,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,6.0,6.0,0.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",,,Fully double glazed,Good,Good,"Timber frame, as built, insulated (assumed)",Good,Good,"Room heaters, mains gas",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,2.42,0.0,,natural,"11 Bearsted Views, St. Faiths Lane, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2003-2006,2011-06-21 09:15:08,owner-occupied,18.0,0.0,10022896907.0,Address Matched +4f518426819a6d6f7ba65b129d5abf29c0693b82a1550e0684b7598638bf8f53,12 OWLETTS CLOSE,,,ME15 7SZ,10001349928,E,B,54,84,House,Mid-Terrace,2021-06-28,E07000110,E14000700,Kent,2021-07-01,ECO assessment,51,84,340,90.0,4.1,60,1.1,117.0,58.0,698.0,443.0,188.0,74.0,69.0,Single,Y,,,,,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,0.0,0.0,"From main system, no cylinder thermostat",Average,Average,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,"Pitched, insulated (assumed)",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,,,2.75,0.0,N,natural,12 OWLETTS CLOSE,Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2021-07-01 10:38:46,Rented (social),8.0,,200003725377.0,Energy Assessor +304862821852009061310524103910560,"86, Lacock Gardens",,,ME15 6GQ,5024133668,C,C,74,80,House,Mid-Terrace,2009-06-12,E07000110,E14000804,Kent,2009-06-13,marketed sale,71,78,227,172.0,2.2,37,1.7,56.0,30.0,262.0,247.0,135.0,89.0,59.2,Single,Y,NO DATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,15.0,0.0,"From main system, no cylinderstat",Average,Average,"Solid, limited insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 15% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,0.0,N,natural,"86, Lacock Gardens",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2009-06-13 10:52:41,owner-occupied,,,10034134543.0,Address Matched +59562369612015072908594991250542,"71, Bower Street",,,ME16 8BB,5214914468,E,B,52,86,House,Mid-Terrace,2015-07-29,E07000110,E14000804,Kent,2015-07-29,ECO assessment,45,84,356,80.0,4.8,63,1.1,65.0,50.0,886.0,440.0,125.0,53.0,76.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,3.0,3.0,71.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 12 mm loft insulation",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 71% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"71, Bower Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2015-07-29 08:59:49,owner-occupied,,,200003667219.0,Address Matched +494024961552010060320383896000175,"8, Halstead Walk",,,ME16 0PN,1516166768,C,C,74,80,House,Mid-Terrace,2010-06-03,E07000110,E14000804,Kent,2010-06-03,marketed sale,71,77,231,181.0,2.2,38,1.8,56.0,30.0,357.0,295.0,84.0,84.0,58.46,Single,Y,NO DATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,14.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, partial insulation (assumed)",Average,Average,,,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 14% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.44,0.0,N,natural,"8, Halstead Walk",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1976-1982,2010-06-03 20:38:38,owner-occupied,,,200003723292.0,Address Matched +162804839012013082907174591270356,"58, Hackney Road",,,ME16 8LU,3606912568,E,C,47,69,House,End-Terrace,2013-08-28,E07000110,E14000804,Kent,2013-08-29,marketed sale,50,73,313,174.0,5.3,50,2.7,98.0,57.0,1130.0,890.0,140.0,81.0,105.0,Unknown,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,2.0,6.0,6.0,30.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Roof room(s), ceiling insulated",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 30% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"58, Hackney Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2013-08-29 07:17:45,owner-occupied,10.0,3.0,200003655911.0,Address Matched +215153277132019030117333469068903,Flat 1 Blackhorse Court,Wheeler Street,Headcorn,TN27 9ST,7309966568,C,C,69,75,Flat,Enclosed End-Terrace,2019-03-01,E07000110,E14000700,Kent,2019-03-01,rental (private),56,65,369,294.0,2.7,62,2.1,48.0,48.0,365.0,246.0,151.0,151.0,43.0,dual,N,1st,N,,2401.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,80.0,0.0,"Electric immersion, off-peak",Average,Poor,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Timber frame, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,(another dwelling above),,,Electric storage heaters,Poor,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,electricity (not community),0.0,no corridor,,,,N,natural,"Flat 1 Blackhorse Court, Wheeler Street, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,England and Wales: 1983-1990,2019-03-01 17:33:34,rental (private),,,200003727914.0,Address Matched +4f7982549f452168ab230021297a1b3de85217c89b698e816c0611f37550115b,29 Honywood Road,Lenham,,ME17 2HH,10001449926,C,C,72,75,Maisonette,Semi-Detached,2021-09-02,E07000110,E14000700,Kent,2021-09-02,rental,72,76,205,173.0,2.2,36,1.8,89.0,54.0,358.0,317.0,86.0,86.0,60.0,Single,Y,00,N,,,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,33.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 33% of fixed outlets,Average,Average,mains gas (not community),0.0,no corridor,,2.31,0.0,N,natural,"29 Honywood Road, Lenham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2021-09-02 10:56:43,Rented (social),6.0,,200003723772.0,Energy Assessor +1719466148212019050918004593010562,The Oast House,Norton Road,Chart Sutton,ME17 3RT,5231834678,D,A,64,94,House,Detached,2019-05-09,E07000110,E14000700,Kent,2019-05-09,marketed sale,56,88,228,49.0,6.7,40,1.6,187.0,94.0,1083.0,768.0,137.0,83.0,168.0,Unknown,Y,NODATA!,,,2106.0,80.0,double glazing installed during or after 2002,Normal,0.0,6.0,6.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Mostly double glazing,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"The Oast House, Norton Road, Chart Sutton",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1900-1929,2019-05-09 18:00:45,owner-occupied,,,200003725272.0,Address Matched +503639913032010070720432176068906,Apartment 9 Briar House,Bluett Street,,ME14 2US,1676927768,B,B,83,83,Flat,NO DATA!,2010-07-06,E07000110,E14000804,Kent,2010-07-07,rental (social),81,81,148,148.0,1.5,24,1.5,38.0,38.0,245.0,245.0,82.0,82.0,60.09,Unknown,Y,Ground,N,2.0,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,88.0,0.0,From main system,Very Good,Very Good,"Solid, insulated (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 88% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.34,0.0,N,natural,"Apartment 9 Briar House, Bluett Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2010-07-07 20:43:21,rental (social),,,10022896719.0,Address Matched +530965560732013111216255536068094,17 Midhurst Court,Mote Road,,ME15 6EH,6476029768,D,C,64,79,Flat,Mid-Terrace,2013-10-02,E07000110,E14000804,Kent,2013-11-12,none of the above,68,83,216,111.0,2.3,40,1.2,44.0,44.0,337.0,221.0,261.0,100.0,58.0,Single,Y,3rd,N,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,80.0,0.0,"Electric immersion, standard tariff",Very Poor,Very Poor,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,10.17,,0.0,,natural,"17 Midhurst Court, Mote Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2013-11-12 16:25:55,rental (social),5.0,4.0,200003693323.0,Address Matched +641048403712011061314585495990188,"13, Boxley Close",Penenden Heath,,ME14 2DJ,1840357868,D,D,60,65,House,Semi-Detached,2011-06-13,E07000110,E14000804,Kent,2011-06-13,marketed sale,57,63,260,223.0,4.1,50,3.5,61.0,46.0,623.0,560.0,138.0,115.0,81.77,dual,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,67.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 67% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,2.39,0.0,,natural,"13, Boxley Close, Penenden Heath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2011-06-13 14:58:54,owner-occupied,12.0,8.0,200003706297.0,Address Matched +52701504412019013016051393710552,"62, Arundel Square",,,ME15 6HB,5251437568,C,C,78,80,Flat,End-Terrace,2019-01-30,E07000110,E14000804,Kent,2019-01-30,rental (private),82,83,132,125.0,1.3,23,1.3,85.0,55.0,214.0,217.0,90.0,90.0,58.0,dual,Y,2nd,Y,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,44.0,0.0,From main system,Good,Good,(another dwelling below),NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 44% of fixed outlets,Average,Average,mains gas (not community),0.0,unheated corridor,11.6,,,N,natural,"62, Arundel Square",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2019-01-30 16:05:13,rental (private),,,10022895162.0,Address Matched +418822812452020031911290323900175,"75, Tintern Road",,,ME16 0RJ,1502231768,C,B,78,86,House,End-Terrace,2020-03-18,E07000110,E14000804,Kent,2020-03-19,marketed sale,76,84,122,71.0,2.9,22,1.7,94.0,94.0,489.0,489.0,108.0,74.0,137.0,Unknown,Y,NODATA!,,,2106.0,100.0,triple glazing,Normal,4.0,6.0,6.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully triple glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 350 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"75, Tintern Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1976-1982,2020-03-19 11:29:03,owner-occupied,,,200003660885.0,Address Matched +855394309142014102711095305342178,"1, Lacey Close",Langley,,ME17 3LA,8135703078,D,B,58,86,House,Semi-Detached,2014-10-23,E07000110,E14000700,Kent,2014-10-27,none of the above,52,85,239,64.0,5.7,46,1.5,75.0,75.0,963.0,507.0,264.0,88.0,123.0,dual,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,6.0,6.0,100.0,0.0,"From main system, no cylinder thermostat",Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, partial insulation (assumed)",Average,Average,,,,"Pitched, 25 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"1, Lacey Close, Langley",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1976-1982,2014-10-27 11:09:53,owner-occupied,13.0,13.0,200003697704.0,Address Matched +4f77b68d197c132b9ef3593ec1a0059c2829fc0d5575b1c0e136782bed211c40,29 Hayle Road,,,ME15 6PE,10001452793,D,C,62,80,House,Semi-Detached,2021-09-10,E07000110,E14000804,Kent,2021-09-13,marketed sale,53,74,239,124.0,7.6,42,4.0,111.0,111.0,1284.0,829.0,93.0,93.0,180.0,Unknown,Y,,,,,100.0,double glazing installed during or after 2002,Normal,1.0,8.0,8.0,100.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.0,0.0,N,natural,29 Hayle Road,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2021-09-13 11:24:20,Owner-occupied,24.0,,200003681553.0,Energy Assessor +856481559212012111418224891929008,"37a, Leonard Gould Way",Loose,,ME15 9FX,804913078,B,B,83,83,House,Semi-Detached,2012-11-14,E07000110,E14000700,Kent,2012-11-14,new dwelling,85,86,85,82.0,1.5,16,1.5,64.0,51.0,251.0,252.0,94.0,94.0,95.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.12 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.18 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"37a, Leonard Gould Way, Loose",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2012-11-14 18:22:48,NO DATA!,0.0,0.0,10014314293.0,Address Matched +1261745089842015012617184136152468,"13, Charlock Close",Allington,,ME16 0UA,8871181378,C,B,69,83,House,Detached,2015-01-26,E07000110,E14000804,Kent,2015-01-26,FiT application,64,80,185,93.0,4.6,33,2.4,157.0,78.0,722.0,637.0,184.0,78.0,142.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,8.0,8.0,0.0,0.0,From main system,Good,Good,"Solid, limited insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"13, Charlock Close, Allington",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2015-01-26 17:18:41,owner-occupied,,,200003662387.0,Address Matched +966826983732013070607254557078507,"40, Wilberforce Road",Coxheath,,ME17 4HD,8717590178,E,B,51,83,House,Semi-Detached,2013-07-05,E07000110,E14000804,Kent,2013-07-06,marketed sale,47,83,303,81.0,5.1,58,1.4,102.0,51.0,731.0,463.0,268.0,76.0,88.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,1.0,5.0,5.0,0.0,1.0,"From main system, no cylinder thermostat",Poor,Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"40, Wilberforce Road, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2013-07-06 07:25:45,owner-occupied,10.0,0.0,200003713613.0,Address Matched +61231290002009031218382953819728,"7, Elmstone Lane",,,ME16 9LL,2025198568,C,B,79,81,House,End-Terrace,2009-03-12,E07000110,E14000804,Kent,2009-03-12,rental (private),78,79,135,127.0,3.0,22,2.8,125.0,68.0,357.0,366.0,111.0,111.0,133.74,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,16.0,0.0,From main system,Very Good,Very Good,"Solid, insulated (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 16% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.52,0.0,N,natural,"7, Elmstone Lane",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2009-03-12 18:38:29,rental (private),,,10014308056.0,Address Matched +596893809222014022811330984458954,17 Sunningdale Court,Square Hill Road,,ME15 7TT,5878024868,C,C,69,78,Flat,End-Terrace,2014-02-25,E07000110,E14000804,Kent,2014-02-28,none of the above,71,82,217,133.0,1.8,41,1.1,58.0,29.0,311.0,220.0,123.0,98.0,44.0,Single,Y,3rd,N,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,0.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,unheated corridor,4.3,,0.0,,natural,"17 Sunningdale Court, Square Hill Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2014-02-28 11:33:09,rental (social),5.0,0.0,200003696547.0,Address Matched +4f94f1a72fe173629d3ca9a8548859b1a60cd75992855eb9f6f5880718354d5c,19 Bedell Road,,,ME14 4GE,10001395416,B,A,84,94,House,Semi-Detached,2021-07-22,E07000110,E14000804,Kent,2021-07-22,new dwelling,86,96,87,11.0,1.4,15,0.2,85.0,85.0,237.0,237.0,71.0,44.0,91.0,standard tariff,,,N,,,100.0,,,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.17 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.41,,,,19 Bedell Road,Maidstone,Maidstone and The Weald,THURNHAM,2021,2021-07-22 12:25:44,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,1.0,,10094444616.0,Address Matched +1342014947412015071011231494950637,"3, Mayes Road",Marden,,TN12 9FA,6706747378,B,B,86,87,House,Detached,2015-07-10,E07000110,E14000804,Kent,2015-07-10,new dwelling,85,87,75,63.0,1.7,13,1.5,71.0,71.0,401.0,402.0,108.0,59.0,128.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.19 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.28 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.15 W/m-¦K,Good,Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"3, Mayes Road, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,NO DATA!,2015-07-10 11:23:14,unknown,10.0,10.0,10014315638.0,Address Matched +1086798397452014021016401594940115,"5, The Millers",Lenham,,ME17 2LW,1587749178,C,B,74,86,House,End-Terrace,2014-02-10,E07000110,E14000700,Kent,2014-02-10,marketed sale,76,88,138,56.0,2.2,26,0.9,98.0,55.0,406.0,414.0,98.0,68.0,85.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,21.0,0.0,From main system,Good,Good,"Suspended, insulated (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 21% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"5, The Millers, Lenham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2003-2006,2014-02-10 16:40:15,owner-occupied,19.0,4.0,10014306114.0,Address Matched +4fa06921b1530de75243ae1caeee9681b62405f60e8e678f927e4c5754cfb7d8,10 Sherbourne Drive,,,ME16 8UG,10001325232,C,A,71,92,House,Enclosed End-Terrace,2021-08-19,E07000110,E14000804,Kent,2021-08-20,ECO assessment,71,93,231,23.0,1.7,41,0.2,38.0,38.0,325.0,263.0,64.0,43.0,42.0,Unknown,Y,,,,,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, partial insulation (assumed)",Average,Average,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.4,0.0,N,natural,10 Sherbourne Drive,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1976-1982,2021-08-20 08:52:14,Owner-occupied,8.0,,200003674928.0,Energy Assessor +1140790494152014051409312092940821,"71, Tintern Road",,,ME16 0RJ,8185423278,E,B,45,91,House,Mid-Terrace,2014-05-12,E07000110,E14000804,Kent,2014-05-14,marketed sale,42,94,397,20.0,4.6,76,0.3,76.0,38.0,592.0,285.0,361.0,76.0,60.0,Single,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,0.0,0.0,"From main system, no cylinder thermostat",Poor,Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 25 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Average,Average,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"71, Tintern Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2014-05-14 09:31:20,owner-occupied,8.0,0.0,200003660883.0,Address Matched +757379429112012050219322090020596,23 Wicken House,London Road,,ME16 8QP,5646906968,E,D,54,64,Flat,Semi-Detached,2012-03-07,E07000110,E14000804,Kent,2012-05-02,rental (private),47,46,402,403.0,3.7,71,3.7,47.0,33.0,526.0,376.0,149.0,153.0,52.0,dual,N,4th,N,,2602.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,43.0,0.0,"Electric immersion, off-peak",Poor,Very Poor,(other premises below),,,Fully double glazed,Average,Average,"System built, as built, no insulation (assumed)",Very Poor,Very Poor,,,,(another dwelling above),,,"Room heaters, electric",Poor,Very Poor,Appliance thermostats,Good,Good,Low energy lighting in 43% of fixed outlets,Average,Average,electricity (not community),0.0,unheated corridor,2.678,,0.0,,natural,"23 Wicken House, London Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2012-05-02 19:32:20,rental (private),7.0,3.0,200003668506.0,Address Matched +1152053727552014061123021390940126,"33, Wyatt Street",,,ME14 1EU,1689704278,D,B,60,87,House,End-Terrace,2014-06-10,E07000110,E14000804,Kent,2014-06-11,marketed sale,56,88,238,55.0,4.1,46,1.0,100.0,53.0,756.0,408.0,92.0,65.0,90.0,Single,Y,NODATA!,,,2106.0,0.0,not defined,Normal,0.0,4.0,4.0,10.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Solid brick, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 10% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"33, Wyatt Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2014-06-11 23:02:13,owner-occupied,30.0,3.0,200003687484.0,Address Matched +1380081317712015102907110791259047,9 Sandling Place Court,Sandling Lane,Sandling,ME14 3AD,738710478,C,B,76,89,House,End-Terrace,2015-10-25,E07000110,E14000804,Kent,2015-10-29,rental (private),75,88,135,53.0,2.7,24,1.1,141.0,71.0,399.0,406.0,148.0,70.0,115.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,0.0,0.0,"From main system, no cylinder thermostat",Average,Average,"Solid, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Timber frame, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"9 Sandling Place Court, Sandling Lane, Sandling",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2015-10-29 07:11:07,rental (private),,,10022895733.0,Address Matched +1003648559802017111717473118339438,South Mullion,Linton Hill,Linton,ME17 4AP,3851853178,E,C,46,71,House,Semi-Detached,2017-11-17,E07000110,E14000804,Kent,2017-11-17,marketed sale,41,67,320,168.0,15.0,52,7.9,117.0,120.0,2977.0,1885.0,342.0,80.0,297.0,Single,Y,NODATA!,,,2106.0,0.0,not defined,Normal,0.0,9.0,7.0,100.0,1.0,"Gas boiler/circulator, no cylinder thermostat",Poor,Poor,"Suspended, no insulation (assumed)",NO DATA!,,Single glazed,Very Poor,Very Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"South Mullion, Linton Hill, Linton",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2017-11-17 17:47:31,owner-occupied,,,200003663064.0,Address Matched +1366952369222015092410560479478105,1 Fortune Court,126 Upper Stone Street,,ME15 6HD,714629378,C,C,78,78,Flat,NO DATA!,2015-09-23,E07000110,E14000804,Kent,2015-09-24,new dwelling,85,85,151,151.0,0.8,29,0.8,23.0,23.0,206.0,206.0,59.0,59.0,28.0,standard tariff,,ground floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.18 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.22 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"1 Fortune Court, 126 Upper Stone Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2015-09-24 10:56:04,unknown,15.0,15.0,10091195261.0,Address Matched +1069022385712014011017532992940317,"35, Pear Tree Lane",,,ME15 9QX,3730528178,F,C,37,78,House,Detached,2014-01-10,E07000110,E14000804,Kent,2014-01-10,none of the above,33,75,373,111.0,9.4,72,2.8,131.0,74.0,1499.0,746.0,366.0,80.0,131.0,dual,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,7.0,7.0,23.0,0.0,"From main system, no cylinder thermostat",Poor,Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Average,Programmer and room thermostat,Average,Average,Low energy lighting in 23% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"35, Pear Tree Lane",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2014-01-10 17:53:29,owner-occupied,13.0,3.0,200003675857.0,Address Matched +612063539902011033121285386597898,"6, Threshers Drive",Weavering,,ME14 5UA,7952935868,D,C,61,74,House,Detached,2011-03-31,E07000110,E14000700,Kent,2011-03-31,rental (private),55,70,285,188.0,5.1,48,3.4,118.0,59.0,724.0,520.0,191.0,138.0,107.2,Single,Y,NO DATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,0.0,7.0,7.0,0.0,0.0,From main system,Average,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Average,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.38,0.0,N,natural,"6, Threshers Drive, Weavering",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2011-03-31 21:28:53,rental (private),,,200003689154.0,Address Matched +181816330222008103016471123218368,2 Oak Cottages,The Green,Bearsted,ME14 4DX,6295353568,D,D,61,68,House,Semi-Detached,2008-10-29,E07000110,E14000700,Kent,2008-10-30,rental (private),55,62,297,249.0,4.7,49,3.9,81.0,43.0,566.0,500.0,95.0,84.0,94.5,Single,Y,NO DATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,1.0,5.0,5.0,12.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Roof room(s), insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Poor,Poor,Low energy lighting in 12% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.1,0.0,N,natural,"2 Oak Cottages, The Green, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2008-10-30 16:47:11,rental (private),,,200003695097.0,Address Matched +168342679502019120520320050210558,2 Milstead Cottages,Upper Street,Leeds,ME17 1RX,3558972568,E,B,47,90,House,Mid-Terrace,2019-12-05,E07000110,E14000700,Kent,2019-12-05,rental (private),47,92,481,44.0,3.4,84,0.3,37.0,37.0,707.0,300.0,105.0,67.0,40.0,dual,Y,NODATA!,,,2102.0,0.0,not defined,Normal,0.0,2.0,2.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Single glazed,Very Poor,Very Poor,"Timber frame, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, electric",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"2 Milstead Cottages, Upper Street, Leeds",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2019-12-05 20:32:00,rental (private),,,200003698404.0,Address Matched +4fcd8e57fdba970a71857071bd43dd1a7c7edfde5e7e83e383f82d19bb314a79,7 KINGS REACH,,,ME15 7LZ,10001554941,E,B,54,81,House,End-Terrace,2021-06-28,E07000110,E14000700,Kent,2021-07-01,ECO assessment,50,80,305,110.0,5.1,53,1.9,151.0,75.0,963.0,589.0,131.0,80.0,96.0,Single,Y,,,,,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,0.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,"Pitched, insulated (assumed)",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,,,2.75,0.0,N,natural,7 KINGS REACH,Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2021-07-01 10:31:10,Rented (social),10.0,,200003724198.0,Energy Assessor +4fc8e2f83870a85c571b5d3543b3307355b374bc029b507a705b6bedf639e3dc,5 Downs Road,Yalding,,ME18 6JE,10001500460,D,C,60,77,House,Semi-Detached,2021-09-08,E07000110,E14000804,Kent,2021-09-08,marketed sale,53,72,279,151.0,4.7,49,2.6,75.0,75.0,783.0,622.0,99.0,71.0,94.0,Single,Y,,,,,100.0,"double glazing, unknown install date",Normal,1.0,4.0,4.0,100.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,"Room heaters, mains gas",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.28,0.0,N,natural,"5 Downs Road, Yalding",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2021-09-08 20:00:38,Owner-occupied,4.0,,200003661448.0,Energy Assessor +599310999022011030212562414028369,Oakdene,Pheasant Lane,,ME15 9QR,6171934868,B,B,83,84,House,Detached,2011-03-02,E07000110,E14000804,Kent,2011-03-02,new dwelling,84,84,98,94.0,2.6,15,2.5,134.0,95.0,380.0,386.0,154.0,154.0,172.69,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,,From main system,Very Good,Very Good,Average thermal transmittance 0.18 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.26 W/m?K,Very Good,Very Good,"Room heaters, wood pellets",,,Average thermal transmittance 0.15 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Very Good,Very Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in 59% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.6,,,NO DATA!,"Oakdene, Pheasant Lane",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2011-03-02 12:56:24,,,,10014309139.0,Address Matched +655386659542011101417333385899648,54 Thomas Place,James Whatman Way,,ME14 1FP,1522358868,C,C,77,77,Flat,Mid-Terrace,2011-10-14,E07000110,E14000804,Kent,2011-10-14,new dwelling,87,88,126,123.0,1.0,16,1.0,49.0,37.0,271.0,273.0,102.0,102.0,64.4,standard tariff,,top floor,,,,,NO DATA!,NO DATA!,,,,4.0,,"Community scheme, no cylinder thermostat",Good,Very Good,(other premises below),,,Fully double glazed,Good,Good,Average thermal transmittance 0.40 W/m?K,Good,Good,,,,Average thermal transmittance 0.22 W/m?K,Good,Good,Community scheme,Good,Very Good,"Flat rate charging, programmer and TRVs",Average,Average,Low energy lighting in 67% of fixed outlets,Good,Good,NO DATA!,0.0,NO DATA!,,2.4,,,NO DATA!,"54 Thomas Place, James Whatman Way",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2011-10-14 17:33:33,,6.0,4.0,10014312720.0,Address Matched +1388866489102015112509031246052848,Flat 5 Nolan Court,"2, Terrace Road",,ME16 8HU,176280478,B,B,87,87,Flat,NO DATA!,2015-11-24,E07000110,E14000804,Kent,2015-11-25,new dwelling,91,91,62,62.0,0.6,12,0.6,41.0,41.0,227.0,227.0,70.0,70.0,50.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.17 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.18 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Flat 5 Nolan Court, 2, Terrace Road",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2015-11-25 09:03:12,unknown,25.0,25.0,10014316088.0,Address Matched +919546680252013042420493796270809,Huggins Farm,Sherenden Lane,Staplehurst,TN12 0HS,8908067078,F,D,32,68,House,Detached,2013-04-22,E07000110,E14000804,Kent,2013-04-24,marketed sale,32,64,318,141.0,15.0,66,6.8,165.0,89.0,3192.0,1769.0,309.0,113.0,236.0,Single,N,NODATA!,,,2106.0,8.0,double glazing installed before 2002,Normal,1.0,8.0,4.0,10.0,5.0,"From main system, no cylinder thermostat",Poor,Poor,"Solid, no insulation (assumed)",,,Some double glazing,Very Poor,Very Poor,"Timber frame, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, no insulation",Very Poor,Very Poor,"Boiler and radiators, oil",Good,Average,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 10% of fixed outlets,Poor,Poor,oil (not community),0.0,NO DATA!,,,0.0,,natural,"Huggins Farm, Sherenden Lane, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1930-1949,2013-04-24 20:49:37,owner-occupied,30.0,3.0,200003730684.0,Address Matched +1129495544432014050910315810278009,Woodside,Scragged Oak Road,Detling,ME14 3HJ,4900052278,C,B,73,86,Bungalow,Detached,2014-04-23,E07000110,E14000700,Kent,2014-05-09,marketed sale,80,91,36,-9.0,3.2,13,0.8,153.0,91.0,2183.0,1848.0,474.0,181.0,245.0,Single,N,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,8.0,8.0,32.0,1.0,"From main system, no cylinder thermostat",Very Poor,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, LPG",Average,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 32% of fixed outlets,Average,Average,LPG (not community),0.0,NO DATA!,,,40.0,,natural,"Woodside, Scragged Oak Road, Detling",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2014-05-09 10:31:58,owner-occupied,25.0,8.0,200003695578.0,Address Matched +1582131449352017101309124794939652,"8, Edmett Way",,,ME17 3GD,6231944578,B,A,84,95,House,Semi-Detached,2017-10-13,E07000110,E14000700,Kent,2017-10-13,new dwelling,86,96,83,12.0,1.4,15,0.2,67.0,67.0,236.0,236.0,86.0,52.0,98.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.23 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.19 W/m-¦K,Good,Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"8, Edmett Way",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2017-10-13 09:12:47,unknown,7.0,7.0,10093304018.0,Address Matched +1299793209222015032509593664348105,"4, Saxon Mews",,,ME16 0FU,693054378,B,B,87,87,House,Semi-Detached,2015-03-24,E07000110,E14000804,Kent,2015-03-25,new dwelling,89,89,61,61.0,1.4,12,1.4,70.0,70.0,344.0,344.0,105.0,105.0,120.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.12 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.19 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"4, Saxon Mews",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2015-03-25 09:59:36,unknown,30.0,30.0,10091193797.0,Address Matched +526049759962010081114200028098840,"88, Queens Road",,,ME16 0LG,4292588768,C,C,76,76,Flat,Detached,2010-08-11,E07000110,E14000804,Kent,2010-08-11,rental (private),72,72,226,226.0,2.1,38,2.1,31.0,31.0,333.0,333.0,104.0,104.0,54.8,Single,Y,Ground,N,2.0,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.5,0.0,N,natural,"88, Queens Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2010-08-11 14:20:00,rental (private),,,200003690599.0,Address Matched +1384490181852016042716083995260140,Flat 76,Miller House,43-51 Lower Stone Street,ME15 6GB,1006150478,C,C,80,80,Flat,NO DATA!,2016-04-27,E07000110,E14000804,Kent,2016-04-27,none of the above,71,71,220,220.0,2.0,37,2.0,39.0,39.0,203.0,203.0,153.0,153.0,54.0,off-peak 10 hour,,mid floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Poor,Poor,(other premises below),,,Fully double glazed,Good,Good,Average thermal transmittance 0.71 W/m-¦K,Average,Average,,,,(other premises above),,,"Boiler and radiators, electric",Poor,Very Poor,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"Flat 76, Miller House, 43-51 Lower Stone Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2016-04-27 16:08:39,unknown,4.0,4.0,10091196173.0,Address Matched +1758442999922019121209020537428881,Flat 6,"13, Francis Moody Close",Harrietsham,ME17 1WH,8329917678,B,B,85,85,Flat,Semi-Detached,2019-12-12,E07000110,E14000700,Kent,2019-12-12,new dwelling,90,90,71,71.0,0.9,12,0.9,59.0,59.0,158.0,158.0,70.0,70.0,72.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.20 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Flat 6, 13, Francis Moody Close, Harrietsham",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2019-12-12 09:02:05,unknown,10.0,10.0,10094442231.0,Address Matched +206235850352008122921544400289357,"9b, Chapman Avenue",,,ME15 8EN,3736006568,C,C,76,76,House,End-Terrace,2008-12-23,E07000110,E14000700,Kent,2008-12-29,rental (social),72,72,209,209.0,2.3,35,2.3,33.0,33.0,294.0,294.0,88.0,88.0,67.06,Single,Y,NO DATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,90.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 90% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.32,0.0,N,natural,"9b, Chapman Avenue",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2008-12-29 21:54:44,rental (social),,,200003687063.0,Address Matched +666985498932011081619460018968401,5 Little Court,Lower Fant Road,,ME16 8DL,9168439868,D,C,61,73,House,Mid-Terrace,2011-08-16,E07000110,E14000804,Kent,2011-08-16,marketed sale,58,72,241,159.0,4.3,46,2.9,87.0,48.0,699.0,484.0,100.0,89.0,93.3,Single,Y,NODATA!,,,2102.0,80.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,20.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Mostly double glazing,Poor,Poor,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,Low energy lighting in 20% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,2.1,0.0,,natural,"5 Little Court, Lower Fant Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2011-08-16 19:46:00,owner-occupied,10.0,2.0,200003657792.0,Address Matched +1244463599062014120815284580388474,"4, Goldings Way",,,ME15 9ZU,7896950378,B,A,83,94,House,Semi-Detached,2014-12-08,E07000110,E14000700,Kent,2014-12-08,new dwelling,85,96,91,13.0,1.4,16,0.2,59.0,59.0,263.0,263.0,86.0,54.0,89.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.14 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.18 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"4, Goldings Way",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2014-12-08 15:28:45,unknown,10.0,10.0,10014315788.0,Address Matched +581005324152011011721483299990285,"5, Acorn Place",,,ME15 9LX,2544492868,C,C,75,76,Flat,End-Terrace,2011-01-17,E07000110,E14000700,Kent,2011-01-17,rental (social),72,72,262,257.0,1.8,44,1.8,34.0,23.0,335.0,338.0,78.0,78.0,42.0,Single,Y,Ground,N,2.0,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,50.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.28,0.0,N,natural,"5, Acorn Place",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2011-01-17 21:48:32,rental (social),,,200003682558.0,Address Matched +1685817462832018121319133584978490,"8a, College Road",,,ME15 6YF,6054491678,D,C,61,74,Flat,Mid-Terrace,2018-12-13,E07000110,E14000804,Kent,2018-12-13,rental (private),46,67,573,332.0,3.1,97,1.8,30.0,30.0,444.0,222.0,162.0,162.0,32.0,dual,N,1st,Y,,2404.0,80.0,secondary glazing,Normal,0.0,1.0,1.0,100.0,0.0,Electric instantaneous at point of use,Very Poor,Poor,(another dwelling below),NO DATA!,,Mostly secondary glazing,Average,Average,"Sandstone or limestone, as built, no insulation (assumed)",Very Poor,Very Poor,Portable electric heaters (assumed),,,"Pitched, 200 mm loft insulation",Good,Good,Electric storage heaters,Average,Poor,Controls for high heat retention storage heaters,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,unheated corridor,6.15,,,N,natural,"8a, College Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2018-12-13 19:13:35,rental (private),,,200003693621.0,Address Matched +1628494679942018050216104551780128,Flat 5 Admiral Court,"55-59, Wallis Avenue",,ME15 9HS,3956977578,B,B,85,85,Flat,Detached,2018-05-02,E07000110,E14000700,Kent,2018-05-02,new dwelling,89,89,77,77.0,1.0,13,1.0,51.0,51.0,150.0,150.0,95.0,95.0,71.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.20 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Flat 5 Admiral Court, 55-59, Wallis Avenue",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2018-05-02 16:10:45,unknown,10.0,10.0,10093304775.0,Address Matched +406753277652013030418343194070474,"3, Greensands",Walderslade,,ME5 9DQ,4434740768,D,B,66,81,House,Detached,2013-03-04,E07000110,E14000700,Kent,2013-03-04,marketed sale,62,79,180,89.0,4.9,34,2.5,119.0,69.0,771.0,617.0,137.0,79.0,142.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,0.0,6.0,5.0,29.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 29% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"3, Greensands, Walderslade",Maidstone,Faversham and Mid Kent,CHATHAM,England and Wales: 1991-1995,2013-03-04 18:34:31,owner-occupied,14.0,4.0,200003673855.0,Address Matched +793352779842012052414272393822948,"2, Doddington Court",,,ME16 0SE,7824078968,D,B,66,90,House,End-Terrace,2012-05-24,E07000110,E14000804,Kent,2012-05-24,rental (private),66,92,222,34.0,2.4,43,0.4,66.0,33.0,360.0,295.0,126.0,59.0,57.0,Single,Y,NODATA!,,,2107.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"2, Doddington Court",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1976-1982,2012-05-24 14:27:23,rental (private),7.0,0.0,200003670113.0,Address Matched +1227347638452014102915080893249125,"19, Heathfield Close",Penenden Heath,,ME14 2AB,1548839278,C,B,71,84,House,Semi-Detached,2014-10-29,E07000110,E14000804,Kent,2014-10-29,rental,68,81,159,73.0,2.9,34,1.5,67.0,67.0,509.0,469.0,110.0,76.0,86.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,75.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, smokeless fuel",,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"19, Heathfield Close, Penenden Heath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2014-10-29 15:08:08,owner-occupied,8.0,6.0,200003706207.0,Address Matched +322354993132009071415133073968206,"25, Basing Close",,,ME15 7UZ,9643254668,C,C,70,78,Flat,End-Terrace,2009-07-14,E07000110,E14000804,Kent,2009-07-14,rental (private),66,75,294,212.0,2.4,49,1.7,38.0,24.0,278.0,230.0,112.0,81.0,49.44,Single,Y,Ground,N,2.0,2104.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,40.0,0.0,From main system,Average,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Average,Good,Programmer and room thermostat,Poor,Poor,Low energy lighting in 40% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,unheated corridor,1.65,2.38,0.0,N,natural,"25, Basing Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2009-07-14 15:13:30,rental (private),,,200003696112.0,Address Matched +178227239222019011912223413728748,"6, The Square",Upper Street,,ME17 1SW,4132353568,D,C,58,77,Maisonette,End-Terrace,2018-10-22,E07000110,E14000700,Kent,2019-01-19,rental (private),53,79,373,164.0,3.1,66,1.4,43.0,43.0,514.0,230.0,132.0,96.0,48.0,Single,Y,Ground,N,,2104.0,25.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,86.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Some double glazing,Poor,Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 86% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,no corridor,,,,N,natural,"6, The Square, Upper Street",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2019-01-19 12:22:34,rental (private),,,200003727569.0,Address Matched +1102671159842014070421083122040448,"47, Langdale Rise",,,ME16 0EX,8809650278,D,C,58,73,House,Detached,2014-07-04,E07000110,E14000804,Kent,2014-07-04,marketed sale,55,71,223,135.0,5.4,42,3.4,120.0,70.0,1065.0,917.0,143.0,96.0,129.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,2.0,7.0,7.0,27.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 27% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"47, Langdale Rise",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2014-07-04 21:08:31,owner-occupied,15.0,4.0,200003659023.0,Address Matched +329577713812009072011290400210369,Lower Flat,"44, Sandling Road",,ME14 2RH,3959305668,F,F,26,26,Flat,Semi-Detached,2009-07-20,E07000110,E14000804,Kent,2009-07-20,rental (private),46,46,696,696.0,3.1,107,3.1,18.0,18.0,739.0,739.0,127.0,127.0,35.08,Single,Y,Ground,N,2.0,2602.0,100.0,double glazing installed before 2002,Normal,1.0,2.0,2.0,80.0,0.0,Electric instantaneous at point of use,Very Poor,Poor,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, mains gas",,,(another dwelling above),,,"Room heaters, electric",Very Poor,Poor,Appliance thermostats,Good,Good,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,electricity - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.4,0.0,N,natural,"Lower Flat, 44, Sandling Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2009-07-20 11:29:04,rental (private),,,, +248905850922009031923131359118591,4 Greens Cottages,Gallants Lane,East Farleigh,ME15 0LH,9554549568,F,F,26,29,House,Mid-Terrace,2009-03-19,E07000110,E14000804,Kent,2009-03-19,marketed sale,22,22,591,570.0,7.7,135,7.7,54.0,27.0,589.0,629.0,337.0,259.0,57.29,Single,Y,NO DATA!,,,2601.0,100.0,double glazing installed before 2002,Normal,2.0,3.0,1.0,0.0,1.0,"Electric immersion, standard tariff",Very Poor,Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,Portable electric heaters,,,"Pitched, 150 mm loft insulation",Good,Good,"Room heaters, coal",Very Poor,Very Poor,No thermostatic control of room temperature,Poor,Poor,No low energy lighting,Very Poor,Very Poor,INVALID!,0.0,NO DATA!,,2.19,0.0,N,natural,"4 Greens Cottages, Gallants Lane, East Farleigh",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2009-03-19 23:13:13,owner-occupied,,,200003671178.0,Address Matched +1622831649252018081511345093980555,"8, Artisan Road",Headcorn,,TN27 9AZ,5549937578,B,A,84,94,House,Detached,2018-08-15,E07000110,E14000700,Kent,2018-08-15,new dwelling,85,94,80,22.0,1.8,14,0.5,78.0,78.0,277.0,279.0,100.0,54.0,127.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.16 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.21 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"8, Artisan Road, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,NO DATA!,2018-08-15 11:34:50,unknown,15.0,15.0,10093304384.0,Address Matched +7105539402018111315584540789478,Flat 4,Yew Tree House,Belts Wood,ME15 9GP,2424137468,B,B,81,81,Flat,Detached,2018-11-13,E07000110,E14000700,Kent,2018-11-13,rental (social),84,84,108,108.0,1.4,19,1.4,59.0,59.0,218.0,218.0,98.0,98.0,72.0,Single,Y,2nd,N,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,(another dwelling below),NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,8.12,,,N,natural,"Flat 4, Yew Tree House, Belts Wood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2003-2006,2018-11-13 15:58:45,rental (social),,,10014307521.0,Address Matched +340901230022009080816381815838251,"54, Stagshaw Close",,,ME15 6TN,5185385668,C,C,74,74,Flat,Semi-Detached,2009-08-07,E07000110,E14000804,Kent,2009-08-08,marketed sale,70,70,250,250.0,2.4,38,2.4,39.0,39.0,234.0,234.0,129.0,129.0,64.19,dual,N,Ground,N,3.0,2401.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,"Electric immersion, off-peak",Average,Poor,"Solid, insulated (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,(another dwelling above),,,Electric storage heaters,Poor,Poor,Manual charge control,Poor,Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity - this is for backwards compatibility only and should not be used,0.0,unheated corridor,10.3,2.3,0.0,N,natural,"54, Stagshaw Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2009-08-08 16:38:18,owner-occupied,,,10022893296.0,Address Matched +1458726969022016070117154115598806,"35, Kings Walk",Holland Road,,ME14 1GQ,149675478,D,B,68,83,House,End-Terrace,2016-07-01,E07000110,E14000804,Kent,2016-07-01,marketed sale,63,79,191,99.0,4.8,34,2.5,156.0,81.0,786.0,676.0,173.0,81.0,143.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,6.0,6.0,7.0,0.0,From main system,Good,Good,"Solid, limited insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 7% of fixed outlets,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,2.43,,N,natural,"35, Kings Walk, Holland Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2016-07-01 17:15:41,owner-occupied,,,200003655143.0,Address Matched +1523096533752017022820140093230051,"15, Thomas Rider Way",Boughton Monchelsea,,ME17 4GA,184330578,C,B,73,83,House,Semi-Detached,2017-02-28,E07000110,E14000700,Kent,2017-02-28,marketed sale,69,79,165,103.0,3.7,29,2.4,128.0,73.0,565.0,571.0,179.0,142.0,130.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,24.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 24% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"15, Thomas Rider Way, Boughton Monchelsea",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2007 onwards,2017-02-28 20:14:00,owner-occupied,,,10022901094.0,Address Matched +549078366512010100514435994009880,"7, Woolaston Close",,,ME15 6TQ,8027640868,C,C,71,78,House,Semi-Detached,2010-10-05,E07000110,E14000804,Kent,2010-10-05,rental (private),67,75,247,191.0,2.7,41,2.1,48.0,34.0,397.0,327.0,132.0,110.0,65.2,Single,Y,NO DATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,60.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 60% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.3,0.0,N,natural,"7, Woolaston Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2010-10-05 14:43:59,rental (private),,,200003665019.0,Address Matched +514310202102020070720002876800538,61 Farleigh Court,Farleigh Lane,,ME16 9BH,1120208768,C,C,77,78,Maisonette,Mid-Terrace,2020-07-07,E07000110,E14000804,Kent,2020-07-07,rental (private),78,80,147,133.0,1.7,26,1.5,57.0,57.0,307.0,277.0,80.0,80.0,65.0,Single,Y,Ground,N,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,no corridor,,,,N,natural,"61 Farleigh Court, Farleigh Lane",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2020-07-07 20:00:28,rental (private),,,200003683288.0,Address Matched +431687482962020081313362162428230,"151c, Wheeler Street",Penenden Heath,,ME14 2TU,3649812768,E,C,49,75,Flat,Detached,2020-08-12,E07000110,E14000804,Kent,2020-08-13,rental (private),28,60,682,314.0,5.7,115,2.6,97.0,49.0,900.0,325.0,168.0,168.0,50.0,dual,N,1st,Y,,2404.0,100.0,"double glazing, unknown install date",Normal,1.0,2.0,2.0,0.0,0.0,"Electric immersion, off-peak",Average,Poor,(another dwelling below),NO DATA!,,Fully double glazed,Average,Average,"Sandstone or limestone, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, electric",,,"Pitched, 150 mm loft insulation",Good,Good,Electric storage heaters,Average,Poor,Controls for high heat retention storage heaters,Good,Good,No low energy lighting,Very Poor,Very Poor,electricity (not community),0.0,no corridor,,,,N,natural,"151c, Wheeler Street, Penenden Heath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2020-08-13 13:36:21,rental (private),,,200003729646.0,Address Matched +1774097649222019122015442468408861,9 Wrens Cross,Upper Stone Street,,ME15 6YU,6668438678,C,C,77,77,Flat,End-Terrace,2019-12-20,E07000110,E14000804,Kent,2019-12-20,new dwelling,83,83,129,129.0,1.2,22,1.2,49.0,49.0,202.0,202.0,254.0,254.0,54.0,standard tariff,,ground floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,"Electric immersion, standard tariff",Very Poor,Poor,Average thermal transmittance 0.14 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.22 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,"Room heaters, electric",Very Poor,Poor,Appliance thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"9 Wrens Cross, Upper Stone Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2019-12-20 15:44:24,unknown,24.0,24.0,10094440943.0,Address Matched +1774152239902019122016312463812008,39 Wrens Cross,Upper Stone Street,,ME15 6YU,7920538678,C,C,75,75,Flat,End-Terrace,2019-12-20,E07000110,E14000804,Kent,2019-12-20,new dwelling,81,81,126,126.0,1.6,21,1.6,57.0,57.0,292.0,292.0,288.0,288.0,74.0,standard tariff,,top floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,"Electric immersion, standard tariff",Very Poor,Poor,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.22 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.15 W/m-¦K,Good,Good,"Room heaters, electric",Very Poor,Poor,Appliance thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"39 Wrens Cross, Upper Stone Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2019-12-20 16:31:24,unknown,24.0,24.0,10094440973.0,Address Matched +551540969202014011209002881040988,"16, Wheatsheaf Close",,,ME15 9QA,207560868,D,C,59,79,House,Detached,2014-01-08,E07000110,E14000804,Kent,2014-01-12,none of the above,56,78,213,99.0,5.4,41,2.6,72.0,72.0,1048.0,671.0,101.0,102.0,134.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,7.0,7.0,93.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,"Pitched, 75mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 93% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"16, Wheatsheaf Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2014-01-12 09:00:28,owner-occupied,14.0,13.0,200003718256.0,Address Matched +1202593969542014091010183826740018,"42, Tarragon Road",,,ME16 0NG,3555367278,C,B,75,86,House,End-Terrace,2014-09-09,E07000110,E14000804,Kent,2014-09-10,marketed sale,76,85,126,66.0,2.6,24,1.4,131.0,66.0,462.0,472.0,91.0,91.0,108.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,0.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"42, Tarragon Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2014-09-10 10:18:38,owner-occupied,14.0,0.0,10022901812.0,Address Matched +467771079922010041222071374528800,6 Sheals Crescent,,,ME15 6TJ,771774768,E,C,43,74,House,End-Terrace,2010-04-12,E07000110,E14000804,Kent,2010-04-12,rental (private),36,70,502,213.0,6.4,84,2.7,43.0,43.0,700.0,416.0,409.0,105.0,75.82,Single,Y,NO DATA!,,,2104.0,90.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,90.0,0.0,"From main system, no cylinder thermostat",Poor,Average,"Suspended, no insulation (assumed)",,,Mostly double glazing,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Average,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 90% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,0.0,N,natural,6 Sheals Crescent,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2010-04-12 22:07:13,rental (private),,,200003681834.0,Address Matched +1802608726032020061111541068978109,"8, Lancaster Road",Headcorn,,TN27 9GB,2968140778,B,A,84,95,House,Semi-Detached,2020-06-11,E07000110,E14000700,Kent,2020-06-11,new dwelling,86,98,86,1.0,1.2,15,0.0,66.0,66.0,213.0,213.0,73.0,43.0,80.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.19 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.28 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.14 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"8, Lancaster Road, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,NO DATA!,2020-06-11 11:54:10,unknown,18.0,18.0,10094443953.0,Address Matched +299417480442009060516550762210758,"29, Bridgeside Mews",,,ME15 6TB,9458882668,B,B,82,84,House,End-Terrace,2009-06-05,E07000110,E14000804,Kent,2009-06-05,new dwelling,81,82,130,122.0,1.8,21,1.7,78.0,44.0,238.0,242.0,88.0,88.0,85.2,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,,From main system,Very Good,Very Good,Average thermal transmittance 0.25 W/m??K,Good,Good,Fully double glazed,Good,Good,Average thermal transmittance 0.28 W/m??K,Very Good,Very Good,,,,Average thermal transmittance 0.15 W/m??K,Very Good,Very Good,"Boiler and radiators, mains gas",Very Good,Very Good,Time and temperature zone control,Good,Good,Low energy lighting in 25% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,,,NO DATA!,"29, Bridgeside Mews",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2009-06-05 16:55:07,,,,10014308039.0,Address Matched +536415951032010090617012324068708,"9, Dickens Close",Langley,,ME17 1TB,5804759768,E,D,54,67,Bungalow,Detached,2010-09-06,E07000110,E14000700,Kent,2010-09-06,marketed sale,58,69,334,243.0,4.3,47,3.2,64.0,49.0,850.0,620.0,104.0,104.0,92.0,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,70.0,1.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, wood logs",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 70% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.37,0.0,N,natural,"9, Dickens Close, Langley",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2010-09-06 17:01:23,owner-occupied,,,200003697398.0,Address Matched +779236639222012042321401137778532,"20, Oak Lane",Headcorn,,TN27 9TP,3388377968,D,C,60,78,House,Mid-Terrace,2012-04-23,E07000110,E14000700,Kent,2012-04-23,marketed sale,64,82,221,113.0,3.8,35,1.7,104.0,58.0,761.0,679.0,110.0,71.0,109.0,dual,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,6.0,6.0,21.0,4.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 21% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"20, Oak Lane, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,England and Wales: 1900-1929,2012-04-23 21:40:11,owner-occupied,19.0,4.0,200003699472.0,Address Matched +250208239942019070818211655910388,Flat 2 Inverness House,Lancashire Road,,ME15 7QE,2948339568,C,C,72,74,Flat,Mid-Terrace,2019-07-08,E07000110,E14000700,Kent,2019-07-08,rental (social),74,77,236,205.0,1.6,41,1.4,46.0,33.0,288.0,258.0,79.0,79.0,39.0,Single,Y,Ground,N,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,60.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 60% of fixed outlets,Good,Good,mains gas (not community),0.0,no corridor,,,,N,natural,"Flat 2 Inverness House, Lancashire Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2019-07-08 18:21:16,rental (social),,,200003684020.0,Address Matched +1315961544532015042912210889278308,Flat 7 The Old School,"92a, Melville Road",,ME15 7UT,4859365378,D,D,58,58,Flat,NO DATA!,2015-04-29,E07000110,E14000804,Kent,2015-04-29,new dwelling,62,62,322,322.0,2.3,54,2.3,36.0,36.0,424.0,424.0,201.0,201.0,42.0,standard tariff,,ground floor,,,,,NO DATA!,NO DATA!,,,,,0.0,"Electric immersion, standard tariff",Very Poor,Poor,Average thermal transmittance 0.29 W/m-¦K,Good,Good,Fully double glazed,Good,Good,Average thermal transmittance 0.28 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.17 W/m-¦K,Good,Good,"Room heaters, electric",Very Poor,Poor,Programmer and room thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"Flat 7 The Old School, 92a, Melville Road",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2015-04-29 12:21:08,unknown,1.0,1.0,10091194266.0,Address Matched +1675728129442018110214543864180928,"5, Churchfields",Harrietsham,,ME17 1HZ,460121678,B,B,86,88,Bungalow,Semi-Detached,2018-11-02,E07000110,E14000700,Kent,2018-11-02,new dwelling,88,90,74,60.0,0.9,13,0.7,58.0,58.0,221.0,221.0,78.0,50.0,67.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.11 W/m+é-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.21 W/m+é-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.08 W/m+é-¦K,Very Good,Very Good,"Boiler and underfloor heating, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"5, Churchfields, Harrietsham",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2018-11-02 14:54:38,unknown,20.0,20.0,10093306189.0,Address Matched +964395889242013070508483919070348,Stream Farm,Friday Street,East Sutton,ME17 3EA,4261080178,D,C,57,72,House,Detached,2013-07-04,E07000110,E14000700,Kent,2013-07-05,marketed sale,48,63,193,124.0,9.4,44,6.3,86.0,86.0,1799.0,1512.0,272.0,163.0,212.0,Single,N,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,2.0,9.0,9.0,100.0,0.0,From main system,Average,Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, oil",Average,Average,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,oil (not community),0.0,NO DATA!,,,0.0,,natural,"Stream Farm, Friday Street, East Sutton",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2013-07-05 08:48:39,owner-occupied,27.0,27.0,200003698291.0,Address Matched +1435301209102016041908293840469588,"58, Howard Drive",,,ME16 0QD,6156704478,E,B,51,87,Bungalow,Semi-Detached,2016-04-18,E07000110,E14000804,Kent,2016-04-19,marketed sale,46,87,418,73.0,3.8,74,0.7,67.0,36.0,634.0,354.0,178.0,65.0,51.0,Single,Y,NODATA!,,,2104.0,50.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,17.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Partial double glazing,Poor,Poor,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 25 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 17% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,2.47,,N,natural,"58, Howard Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2016-04-19 08:29:38,owner-occupied,,,200003703498.0,Address Matched +1772201019352020062911070821200969,"10, Barton Drive",Boughton Monchelsea,,ME17 4SU,9916918678,B,A,85,96,House,Semi-Detached,2020-06-29,E07000110,E14000804,Kent,2020-06-29,new dwelling,87,98,80,2.0,1.2,14,0.1,73.0,73.0,212.0,212.0,74.0,44.0,88.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.20 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"10, Barton Drive, Boughton Monchelsea",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2020-06-29 11:07:08,unknown,12.0,12.0,10094442577.0,Address Matched +1500796439262016112921323278318766,Homefields,Marden Road,Staplehurst,TN12 0PE,6767378478,D,B,66,81,House,Detached,2016-11-29,E07000110,E14000804,Kent,2016-11-29,marketed sale,57,76,205,106.0,7.0,36,3.7,155.0,92.0,1238.0,874.0,150.0,90.0,194.0,Single,Y,NODATA!,,,2106.0,97.0,double glazing installed during or after 2002,Normal,4.0,8.0,8.0,32.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Mostly double glazing,Good,Good,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, insulated (assumed)",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 32% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"Homefields, Marden Road, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1967-1975,2016-11-29 21:32:32,owner-occupied,,,200003709476.0,Address Matched +1758398612802020031814185965709288,"7, Francis Moody Close",Harrietsham,,ME17 1WG,6898917678,B,A,84,94,House,Semi-Detached,2020-03-18,E07000110,E14000700,Kent,2020-03-18,new dwelling,85,95,84,22.0,1.8,15,0.5,85.0,85.0,280.0,282.0,101.0,56.0,119.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.19 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.12 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"7, Francis Moody Close, Harrietsham",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2020-03-18 14:18:59,unknown,10.0,10.0,10094442218.0,Address Matched +757197149352012030716533690020297,"9, Carisbrooke Drive",,,ME16 0HY,2705906968,D,D,61,62,House,Detached,2012-03-07,E07000110,E14000804,Kent,2012-03-07,marketed sale,66,67,241,236.0,3.5,38,3.4,71.0,49.0,743.0,747.0,87.0,87.0,72.42,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,55.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, wood logs",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 55% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,2.38,0.0,,natural,"9, Carisbrooke Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2012-03-07 16:53:36,owner-occupied,11.0,6.0,200003656763.0,Address Matched +459313799932011011912344436968104,"5, Trinity Way",,,ME15 9FY,9456114768,A,A,97,98,House,Mid-Terrace,2011-01-19,E07000110,E14000700,Kent,2011-01-19,new dwelling,92,92,57,54.0,0.7,10,0.6,46.0,34.0,228.0,230.0,109.0,109.0,63.14,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,,From main system,Good,Good,Average thermal transmittance 0.18 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m?K,Very Good,Very Good,"Room heaters, electric",,,Average thermal transmittance 0.10 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in 67% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.31,,,NO DATA!,"5, Trinity Way",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2011-01-19 12:34:44,,,,10014311440.0,Address Matched +470851799542014062311181070442478,"10, Woodlands",,,ME5 9JX,5595394768,D,B,57,82,House,Detached,2014-06-23,E07000110,E14000700,Kent,2014-06-23,assessment for green deal,53,82,228,86.0,8.1,41,2.9,85.0,85.0,1433.0,852.0,348.0,137.0,199.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,8.0,8.0,100.0,1.0,"From main system, no cylinder thermostat",Poor,Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,"Room heaters, wood logs",,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Average,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"10, Woodlands",Maidstone,Faversham and Mid Kent,CHATHAM,England and Wales: 1983-1990,2014-06-23 11:18:10,owner-occupied,22.0,22.0,200003702779.0,Address Matched +1686789629552018121807214199989762,"54, Murrain Drive",Downswood,,ME15 8XJ,7241991678,D,C,67,76,Maisonette,End-Terrace,2018-12-17,E07000110,E14000700,Kent,2018-12-18,rental (private),51,62,441,335.0,3.1,74,2.4,74.0,37.0,351.0,243.0,148.0,129.0,42.0,dual,N,1st,Y,,2401.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,0.0,0.0,"Electric immersion, off-peak",Average,Poor,(another dwelling below),NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,Portable electric heaters (assumed),,,"Pitched, 100 mm loft insulation",Average,Average,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,No low energy lighting,Very Poor,Very Poor,electricity (not community),0.0,no corridor,,,,N,natural,"54, Murrain Drive, Downswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2018-12-18 07:21:41,rental (private),,,200003691589.0,Address Matched +1407869516812016013016215991260443,"29, The Landway",Bearsted,,ME14 4BE,4393612478,D,B,64,82,Bungalow,Detached,2016-01-28,E07000110,E14000700,Kent,2016-01-30,marketed sale,57,78,228,106.0,5.3,40,2.5,142.0,74.0,881.0,674.0,187.0,80.0,132.0,Single,Y,NODATA!,,,2104.0,80.0,double glazing installed before 2002,Normal,0.0,5.0,4.0,9.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Mostly double glazing,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 9% of fixed outlets,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"29, The Landway, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2016-01-30 16:21:59,owner-occupied,,,200003692605.0,Address Matched +1783009392032020020606431380078700,Speedwell Platt,North Pole Road,Barming,ME16 9HH,9060798678,C,C,69,79,House,Detached,2020-02-05,E07000110,E14000804,Kent,2020-02-06,marketed sale,63,74,193,123.0,4.6,34,3.0,99.0,99.0,765.0,707.0,139.0,84.0,136.0,Unknown,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,4.0,6.0,6.0,90.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 90% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"Speedwell Platt, North Pole Road, Barming",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2020-02-06 06:43:13,owner-occupied,,,200003667678.0,Address Matched +1100036999062014030407431630628154,23a Hatherall Road,,,ME14 5HF,5353930278,C,C,75,78,Flat,Semi-Detached,2014-03-02,E07000110,E14000804,Kent,2014-03-04,rental (private),80,84,160,135.0,1.1,30,1.0,37.0,28.0,241.0,220.0,79.0,69.0,38.0,Unknown,Y,1st,Y,,2107.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,67.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Good,Good,"Timber frame, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 67% of fixed outlets,Good,Good,mains gas (not community),0.0,unheated corridor,5.0,,0.0,,natural,23a Hatherall Road,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2014-03-04 07:43:16,rental (private),6.0,4.0,, +980161913652013072920271599270314,"35, Woodside Road",,,ME15 9AY,3487391178,D,B,67,87,House,Mid-Terrace,2013-07-29,E07000110,E14000700,Kent,2013-07-29,marketed sale,67,87,196,58.0,2.7,38,0.9,75.0,47.0,475.0,394.0,99.0,61.0,72.0,dual,Y,NODATA!,,,2109.0,100.0,double glazing installed before 2002,Normal,1.0,5.0,5.0,40.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, with external insulation",Good,Good,"Room heaters, mains gas",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and boiler energy manager",Good,Good,Low energy lighting in 40% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"35, Woodside Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2013-07-29 20:27:15,owner-occupied,15.0,6.0,200003713668.0,Address Matched +907139579102013040613261205670668,"26, Foxglove Rise",,,ME14 2AF,6134376078,D,A,63,92,House,Mid-Terrace,2013-04-06,E07000110,E14000804,Kent,2013-04-06,marketed sale,63,95,256,15.0,2.6,49,0.2,64.0,32.0,354.0,271.0,180.0,60.0,52.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,0.0,0.0,"From main system, no cylinder thermostat",Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"26, Foxglove Rise",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2013-04-06 13:26:12,owner-occupied,5.0,0.0,200003722782.0,Address Matched +967972299062013071000031711118527,"22, Button Lane",Bearsted,,ME15 8DW,2114901178,D,B,68,82,House,Detached,2013-07-09,E07000110,E14000700,Kent,2013-07-10,marketed sale,66,82,182,86.0,3.3,35,1.6,101.0,53.0,536.0,492.0,120.0,76.0,94.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,11.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 11% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"22, Button Lane, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2013-07-10 00:03:17,owner-occupied,9.0,1.0,200003691672.0,Address Matched +1466260179262016072706164716368646,Sweet Briar,Weavering Street,Weavering,ME14 5JS,4152726478,C,B,70,85,House,Semi-Detached,2016-07-26,E07000110,E14000700,Kent,2016-07-27,marketed sale,68,83,194,84.0,2.9,34,1.3,87.0,56.0,508.0,445.0,115.0,76.0,86.0,Unknown,Y,NODATA!,,,2107.0,100.0,"double glazing, unknown install date",Normal,1.0,4.0,4.0,45.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 270 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 45% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,2.4,,N,natural,"Sweet Briar, Weavering Street, Weavering",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2016-07-27 06:16:47,owner-occupied,,,200003689306.0,Address Matched +295886770802009060216242764210828,"39, Egremont Road",Bearsted,,ME15 8LX,890172668,B,B,88,88,House,End-Terrace,2009-06-02,E07000110,E14000700,Kent,2009-06-02,new dwelling,88,88,118,115.0,0.8,19,0.8,30.0,24.0,167.0,168.0,38.0,38.0,41.52,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,,From main system,Very Good,Very Good,Average thermal transmittance 0.17 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.26 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.12 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Very Good,Very Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.25,,,NO DATA!,"39, Egremont Road, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2009-06-02 16:24:27,,,,10014308457.0,Address Matched +158913819142011110710455356290338,Apartment 8 Bluecoats Yard,Knightrider Street,,ME15 6LD,6195212568,B,B,81,81,Flat,Semi-Detached,2011-11-07,E07000110,E14000804,Kent,2011-11-07,marketed sale,84,84,103,103.0,1.3,20,1.3,49.0,49.0,231.0,231.0,78.0,78.0,68.5,Single,Y,1st,Y,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,80.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,heated corridor,,2.52,0.0,,natural,"Apartment 8 Bluecoats Yard, Knightrider Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2011-11-07 10:45:53,owner-occupied,10.0,8.0,10014307466.0,Address Matched +1435796843212016042209540991260649,Flat 116,Miller Heights,43-51 Lower Stone Street,ME15 6LZ,6960314478,C,C,70,70,Flat,NO DATA!,2016-04-20,E07000110,E14000804,Kent,2016-04-22,none of the above,73,73,223,223.0,1.7,38,1.7,33.0,33.0,243.0,243.0,230.0,230.0,45.0,standard tariff,,top floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Very Poor,Poor,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.16 W/m-¦K,Good,Good,"Boiler and radiators, electric",Very Poor,Very Poor,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"Flat 116, Miller Heights, 43-51 Lower Stone Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2016-04-22 09:54:09,unknown,6.0,6.0,10093302714.0,Address Matched +329978850262009072313211265278191,"37, Hedley Street",,,ME14 5AD,9633505668,E,D,54,64,House,Mid-Terrace,2009-07-23,E07000110,E14000804,Kent,2009-07-23,rental (private),48,57,405,321.0,4.4,68,3.5,65.0,33.0,662.0,556.0,104.0,85.0,65.38,Single,Y,NO DATA!,,,2102.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,0.0,2.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.48,0.0,N,natural,"37, Hedley Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2009-07-23 13:21:12,rental (private),,,200003704776.0,Address Matched +1426444475312016032210423294260349,Roscoat,Chattenden Court,Penenden Heath,ME14 2AW,3919543478,A,A,92,93,House,Detached,2016-03-21,E07000110,E14000804,Kent,2016-03-22,new dwelling,91,92,40,30.0,1.2,7,0.9,92.0,92.0,384.0,385.0,117.0,63.0,161.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.12 W/m+é-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.19 W/m+é-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.10 W/m+é-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Roscoat, Chattenden Court, Penenden Heath",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2016-03-22 10:42:32,unknown,50.0,50.0,10091194447.0,Address Matched +336263739412009073012580204710469,"103, South Lane",Sutton Valence,,ME17 3AY,4943945668,C,C,77,79,House,Mid-Terrace,2009-07-30,E07000110,E14000700,Kent,2009-07-30,rental (social),75,76,172,159.0,2.5,29,2.4,67.0,45.0,375.0,360.0,96.0,96.0,89.14,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,50.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.35,0.0,N,natural,"103, South Lane, Sutton Valence",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2009-07-30 12:58:02,rental (social),,,200003695647.0,Address Matched +523401036152010080521415596000772,"6, Raggatt Place",,,ME15 7AB,7231668768,C,C,75,75,Bungalow,End-Terrace,2010-08-05,E07000110,E14000700,Kent,2010-08-05,rental (social),72,72,248,248.0,1.9,41,1.9,24.0,24.0,341.0,341.0,77.0,77.0,46.54,Single,Y,NO DATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,100.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.35,0.0,N,natural,"6, Raggatt Place",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2010-08-05 21:41:55,rental (social),,,200003727778.0,Address Matched +1289886253612018082123322998280038,"99, Linton Road",Loose,,ME15 0AL,803383378,D,B,59,84,House,Detached,2018-08-21,E07000110,E14000804,Kent,2018-08-21,marketed sale,52,82,292,100.0,4.7,52,1.6,90.0,61.0,803.0,478.0,109.0,73.0,91.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,54.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 54% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"99, Linton Road, Loose",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2018-08-21 23:32:29,owner-occupied,,,200003663281.0,Address Matched +50da3d1b4e8fbe8034bd97cb8c3a1c0a444e0da0a85c39720ce21613837eed61,Flat 5,213 Boxley Road,Maidstone ,ME14 2TL,10001639461,C,C,77,77,Flat,End-Terrace,2021-07-14,E07000110,E14000804,Kent,2021-07-14,new dwelling,83,83,158,158.0,0.9,28,0.9,39.0,39.0,155.0,155.0,83.0,83.0,32.0,standard tariff,,2,N,,,100.0,,,,,,100.0,0.0,Community scheme,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.18 W/m-¦K,Good,Good,Community scheme,Good,Good,"Flat rate charging, programmer and TRVs",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,,0.0,,,2.49,,,,"Flat 5, 213 Boxley Road, Maidstone",Maidstone,Maidstone and The Weald,Kent,2020,2021-07-14 08:41:13,Owner-occupied,8.0,,10095449991.0,Address Matched +398465709132009111622124430968890,"15a, Durham Close",,,ME15 8DS,80889668,C,C,75,80,Flat,Semi-Detached,2009-11-16,E07000110,E14000700,Kent,2009-11-16,rental (social),72,78,230,184.0,2.1,38,1.7,27.0,27.0,307.0,247.0,118.0,111.0,54.26,Single,Y,1st,Y,2.0,2102.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Very Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Very Good,"Programmer, no room thermostat",Very Poor,Very Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.42,0.0,N,natural,"15a, Durham Close",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2009-11-16 22:12:44,rental (social),,,200003687007.0,Address Matched +992938608732013082118494808278009,"292, Willington Street",,,ME15 8HL,978082178,D,B,56,88,House,Mid-Terrace,2013-08-21,E07000110,E14000700,Kent,2013-08-21,none of the above,52,90,282,44.0,4.0,54,0.7,89.0,44.0,618.0,333.0,184.0,72.0,74.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,0.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Average,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"292, Willington Street",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2013-08-21 18:49:48,owner-occupied,11.0,0.0,200003684829.0,Address Matched +1677550224012018111016172393089368,"5, Troys Mead",Hollingbourne,,ME17 1UB,3823431678,D,B,63,86,Bungalow,End-Terrace,2018-11-09,E07000110,E14000700,Kent,2018-11-10,rental (social),61,86,331,95.0,2.4,58,0.7,39.0,39.0,437.0,339.0,80.0,55.0,41.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,80.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"5, Troys Mead, Hollingbourne",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2018-11-10 16:17:23,rental (social),,,200003727449.0,Address Matched +1146692990712014052621174597240329,"45, Ragstone Road",Bearsted,,ME15 8PB,3985073278,D,C,64,80,House,End-Terrace,2014-05-22,E07000110,E14000700,Kent,2014-05-26,marketed sale,60,79,208,100.0,4.0,40,2.0,95.0,57.0,686.0,578.0,139.0,79.0,99.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,3.0,5.0,5.0,33.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 33% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"45, Ragstone Road, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2014-05-26 21:17:45,owner-occupied,15.0,5.0,200003690808.0,Address Matched +1734471649442019070711001361510148,Threshing Barn,Pike Fish Lane,Laddingford,ME18 6BH,3491645678,D,C,63,71,House,Detached,2019-07-04,E07000110,E14000804,Kent,2019-07-07,marketed sale,58,66,156,114.0,6.9,37,5.4,107.0,107.0,950.0,900.0,171.0,135.0,189.0,Unknown,N,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,7.0,7.0,100.0,0.0,From main system,Average,Average,"Solid, limited insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Timber frame, as built, insulated (assumed)",Good,Good,"Room heaters, wood logs",,,"Pitched, insulated (assumed)",Average,Average,"Boiler and radiators, oil",Average,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,oil (not community),0.0,NO DATA!,,,,N,natural,"Threshing Barn, Pike Fish Lane, Laddingford",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2019-07-07 11:00:13,owner-occupied,,,200003725500.0,Address Matched +50e3587a41f43511d1509be92e679fab048450187f1e0f35bdf4e5f211905574,Flat 13,Teston House,Tonbridge Road,ME18 5BU,10001651411,E,C,52,74,Flat,End-Terrace,2021-08-17,E07000110,E14000804,Kent,2021-08-17,rental,37,63,675,353.0,3.9,114,2.1,57.0,36.0,732.0,325.0,132.0,132.0,35.0,dual,N,00,N,,,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,43.0,0.0,Electric heat pump for water heating only,Poor,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,Portable electric heaters (assumed),,,(another dwelling above),,,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 43% of fixed outlets,Average,Average,electricity (not community),0.0,unheated corridor,7.8,2.4,0.0,N,natural,"Flat 13, Teston House, Tonbridge Road",Maidstone,Maidstone and The Weald,"Teston, Maidstone",England and Wales: 1967-1975,2021-08-17 12:20:18,Rented (social),7.0,,200003661149.0,Address Matched +1284846749642015022418153236352698,"7, Adbert Drive",East Farleigh,,ME15 0DE,7614443378,E,C,47,77,House,Detached,2015-02-21,E07000110,E14000804,Kent,2015-02-24,assessment for green deal,39,71,358,148.0,8.7,63,3.6,140.0,76.0,1535.0,882.0,166.0,78.0,137.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,7.0,7.0,17.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 17% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"7, Adbert Drive, East Farleigh",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1991-1995,2015-02-24 18:15:32,owner-occupied,,,200003720565.0,Address Matched +1324275192112015052609191892250731,Flat 3,24 Ashford Road,Bearsted,ME14 4LP,7182226378,F,F,30,30,Flat,NO DATA!,2015-05-25,E07000110,E14000700,Kent,2015-05-26,new dwelling,40,40,446,446.0,5.1,75,5.1,45.0,45.0,1172.0,1172.0,239.0,239.0,68.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,,0.0,"Electric immersion, standard tariff",Very Poor,Poor,(other premises below),,,Single glazed,Very Poor,Very Poor,Average thermal transmittance 1.09 W/m+é-¦K,Poor,Poor,,,,(other premises above),,,"Room heaters, electric",Very Poor,Poor,Appliance thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"Flat 3, 24 Ashford Road, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2015-05-26 09:19:18,unknown,11.0,11.0,10091194978.0,Address Matched +586400739742011013018570386392718,"45, Bower Mount Road",,,ME16 8AX,773533868,E,E,43,46,House,Semi-Detached,2011-01-29,E07000110,E14000804,Kent,2011-01-30,rental (private),44,46,333,318.0,9.7,55,9.3,183.0,111.0,1726.0,1688.0,170.0,170.0,163.45,dual,Y,NO DATA!,,,2104.0,5.0,double glazing installed before 2002,Normal,2.0,7.0,7.0,35.0,1.0,From main system,Very Good,Very Good,"Suspended, no insulation (assumed)",,,Some double glazing,Very Poor,Very Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, electric",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,Programmer and room thermostat,Average,Average,Low energy lighting in 35% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.79,0.0,N,natural,"45, Bower Mount Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2011-01-30 18:57:03,rental (private),,,200003657713.0,Address Matched +1332676889442015072312424638659958,"4, Button Lane",Bearsted,,ME15 8NJ,4469186378,D,B,61,89,House,Semi-Detached,2015-06-15,E07000110,E14000700,Kent,2015-07-23,assessment for green deal,54,89,300,61.0,4.0,53,0.8,56.0,56.0,656.0,364.0,189.0,71.0,75.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,86.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, partial insulation (assumed)",Average,Average,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 86% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"4, Button Lane, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1976-1982,2015-07-23 12:42:46,rental (private),,,200003691622.0,Address Matched +46072881532015100520454561968902,"28, Tonbridge Road",Barming,,ME16 9NH,8261953468,C,B,70,86,House,Semi-Detached,2015-09-17,E07000110,E14000804,Kent,2015-10-05,marketed sale,62,84,212,73.0,3.1,39,1.1,91.0,52.0,761.0,451.0,120.0,69.0,80.0,Single,Y,NODATA!,,,2107.0,100.0,double glazing installed before 2002,Normal,1.0,5.0,5.0,25.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 25% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"28, Tonbridge Road, Barming",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2015-10-05 20:45:45,owner-occupied,,,200003665929.0,Address Matched +856812919602012111500292803329348,"31, Durham Close",,,ME15 8DT,8606913078,C,C,71,77,Flat,Semi-Detached,2012-11-14,E07000110,E14000700,Kent,2012-11-15,rental (social),73,80,186,133.0,1.9,36,1.3,58.0,32.0,329.0,265.0,79.0,71.0,53.0,Unknown,Y,Ground,N,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,17.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 17% of fixed outlets,Poor,Poor,mains gas (not community),0.0,no corridor,,,0.0,,natural,"31, Durham Close",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2012-11-15 00:29:28,rental (social),6.0,1.0,200003685696.0,Address Matched +596721009262017062822432324988833,"184, Plains Avenue",,,ME15 7BB,3255024868,D,B,65,83,House,Mid-Terrace,2017-06-28,E07000110,E14000700,Kent,2017-06-28,rental (social),56,75,235,107.0,4.1,49,2.1,87.0,56.0,597.0,507.0,139.0,82.0,84.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,44.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, coal",,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 44% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"184, Plains Avenue",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2017-06-28 22:43:23,rental (social),,,200003714273.0,Address Matched +1726064889142019061012290364410548,Annex,Nettlestead Green House,"Maidstone Road, Nettlestead",ME18 5HE,3170684678,C,B,72,84,Bungalow,Detached,2019-06-04,E07000110,E14000804,Kent,2019-06-10,marketed sale,70,82,184,100.0,2.8,32,1.6,89.0,67.0,425.0,427.0,134.0,102.0,86.0,Unknown,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,3.0,3.0,67.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Timber frame, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 67% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"Annex, Nettlestead Green House, Maidstone Road, Nettlestead",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2019-06-10 12:29:03,owner-occupied,,,200003656858.0,Address Matched +1056934155212013120611572293079618,"69, Waterlow Road",,,ME14 2TP,6833537178,D,B,68,87,House,Semi-Detached,2013-12-05,E07000110,E14000804,Kent,2013-12-06,rental (private),67,88,194,57.0,2.7,37,0.8,56.0,44.0,491.0,376.0,98.0,61.0,73.0,Single,Y,NODATA!,,,2107.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,71.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 71% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"69, Waterlow Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2013-12-06 11:57:22,rental (private),7.0,5.0,200003703092.0,Address Matched +1681859869402018112714031964182238,"26a, College Road",,,ME15 6YF,3438461678,F,C,31,72,Flat,End-Terrace,2018-11-27,E07000110,E14000804,Kent,2018-11-27,rental (private),35,63,757,385.0,4.0,128,2.0,27.0,29.0,972.0,261.0,150.0,161.0,31.0,dual,N,1st,Y,,2602.0,80.0,secondary glazing,Normal,0.0,1.0,1.0,100.0,0.0,Electric instantaneous at point of use,Very Poor,Poor,(another dwelling below),NO DATA!,,Mostly secondary glazing,Average,Average,"Sandstone or limestone, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 200 mm loft insulation",Good,Good,"Room heaters, electric",Very Poor,Poor,Appliance thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,unheated corridor,6.54,,,N,natural,"26a, College Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2018-11-27 14:03:19,rental (private),,,200003693605.0,Address Matched +584520450252011012518301392290485,Flat 48 Pine Lodge,Tonbridge Road,,ME16 8TA,4528023868,D,C,62,73,Flat,Detached,2011-01-25,E07000110,E14000804,Kent,2011-01-25,rental (private),56,69,340,245.0,3.4,57,2.5,66.0,33.0,496.0,404.0,163.0,115.0,60.0,Unknown,Y,2nd,Y,3.0,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,0.0,0.0,From main system,Average,Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Average,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,unheated corridor,4.0,2.4,0.0,N,natural,"Flat 48 Pine Lodge, Tonbridge Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2011-01-25 18:30:13,rental (private),,,200003657912.0,Address Matched +672868879442011090120220389990798,"41, Tarragon Road",,,ME16 0UR,1431979868,C,C,72,78,House,Mid-Terrace,2011-09-01,E07000110,E14000804,Kent,2011-09-01,marketed sale,71,78,161,123.0,3.3,31,2.5,106.0,56.0,429.0,393.0,173.0,112.0,105.71,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,6.0,6.0,11.0,0.0,"From main system, no cylinder thermostat",Average,Average,"Solid, limited insulation (assumed)",,,Fully double glazed,Good,Good,"Timber frame, as built, insulated (assumed)",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 11% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,2.65,0.0,,natural,"41, Tarragon Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2011-09-01 20:22:03,owner-occupied,19.0,2.0,200003726884.0,Address Matched +1521873752552017022406230592230055,"6, Selby Road",,,ME15 9PT,563220578,E,B,50,86,House,Mid-Terrace,2017-02-22,E07000110,E14000700,Kent,2017-02-24,marketed sale,36,84,467,89.0,6.2,79,1.3,91.0,53.0,790.0,427.0,290.0,72.0,78.0,dual,Y,NODATA!,,,2401.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,45.0,0.0,"Electric immersion, off-peak",Very Poor,Poor,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 270 mm loft insulation",Good,Good,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 45% of fixed outlets,Good,Good,electricity (not community),0.0,NO DATA!,,,,N,natural,"6, Selby Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2017-02-24 06:23:05,owner-occupied,,,200003680112.0,Address Matched +156263849962018112207073191858198,"100, Milton Street",,,ME16 8LL,9985431568,D,B,62,85,House,Mid-Terrace,2018-11-15,E07000110,E14000804,Kent,2018-11-22,rental (private),57,83,276,91.0,3.3,49,1.1,67.0,51.0,576.0,399.0,94.0,62.0,69.0,Single,Y,NODATA!,,,2107.0,100.0,"double glazing, unknown install date",Normal,2.0,3.0,3.0,67.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Granite or whinstone, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 67% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"100, Milton Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2018-11-22 07:07:31,rental (private),,,200003655688.0,Address Matched +218231110342009013016132856717608,"341, Willington Street",,,ME15 8AS,6316717568,C,C,69,74,House,Semi-Detached,2009-01-30,E07000110,E14000700,Kent,2009-01-30,marketed sale,66,70,234,206.0,3.3,39,2.9,73.0,41.0,390.0,355.0,101.0,101.0,84.68,dual,Y,NO DATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,25.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Poor,Poor,Low energy lighting in 25% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,0.0,N,natural,"341, Willington Street",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2009-01-30 16:13:28,owner-occupied,,,200003684453.0,Address Matched +122411151832018090716570714068200,"18, Beckenham Drive",,,ME16 0TG,5004239468,C,B,69,87,Bungalow,Semi-Detached,2018-09-07,E07000110,E14000804,Kent,2018-09-07,marketed sale,68,86,231,73.0,2.1,41,0.7,53.0,40.0,377.0,341.0,86.0,58.0,52.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,67.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Average,Average,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 67% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"18, Beckenham Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2018-09-07 16:57:07,owner-occupied,,,200003662144.0,Address Matched +995292399222013082315215022078207,"19, Woodlands Close",Penenden Heath,,ME14 2EX,265992178,F,B,22,83,House,Semi-Detached,2013-08-23,E07000110,E14000804,Kent,2013-08-23,none of the above,32,65,438,181.0,8.2,78,3.3,64.0,70.0,1724.0,477.0,360.0,90.0,105.0,Single,N,NODATA!,,,2601.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,89.0,0.0,"Electric immersion, standard tariff",Very Poor,Very Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Room heaters, electric",Very Poor,Very Poor,No thermostatic control of room temperature,Poor,Poor,Low energy lighting in 89% of fixed outlets,Very Good,Very Good,electricity (not community),0.0,NO DATA!,,,0.0,,natural,"19, Woodlands Close, Penenden Heath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2013-08-23 15:21:50,owner-occupied,9.0,8.0,200003707908.0,Address Matched +870448319802013100914570901470798,7 Crundale,Union Street,,ME14 1TX,8870414078,C,C,77,80,Flat,Mid-Terrace,2013-10-01,E07000110,E14000804,Kent,2013-10-09,none of the above,82,84,134,113.0,1.2,25,1.0,42.0,30.0,253.0,227.0,62.0,62.0,47.0,Single,Y,1st,N,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,2.0,2.0,60.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 60% of fixed outlets,Good,Good,mains gas (not community),0.0,unheated corridor,4.3,,0.0,,natural,"7 Crundale, Union Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2013-10-09 14:57:09,rental (social),5.0,3.0,200003701466.0,Address Matched +321417789962014030409224254238854,12 Hawley Court,London Road,,ME16 8QJ,5541844668,C,C,71,78,Flat,Mid-Terrace,2014-02-17,E07000110,E14000804,Kent,2014-03-04,none of the above,73,83,189,124.0,1.7,36,1.1,31.0,31.0,346.0,244.0,92.0,76.0,48.0,Single,Y,6th,N,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,100.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,8.111,,0.0,,natural,"12 Hawley Court, London Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2014-03-04 09:22:42,rental (social),5.0,5.0,200003668444.0,Address Matched +1502015089802016120517352148867808,2 Parsonage Cottages,Gallants Lane,East Farleigh,ME15 0LF,8845188478,F,A,31,106,House,Semi-Detached,2016-11-30,E07000110,E14000804,Kent,2016-12-05,rental (private),17,83,812,90.0,8.9,139,1.0,49.0,49.0,1234.0,521.0,269.0,132.0,64.0,dual,N,NODATA!,,,2401.0,67.0,"double glazing, unknown install date",Normal,2.0,4.0,2.0,100.0,0.0,"Electric immersion, off-peak",Very Poor,Poor,"Solid, no insulation (assumed)",NO DATA!,,Partial double glazing,Poor,Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 50 mm loft insulation",Poor,Poor,Electric storage heaters,Poor,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,NO DATA!,,,,N,natural,"2 Parsonage Cottages, Gallants Lane, East Farleigh",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2016-12-05 17:35:21,rental (private),,,200003663927.0,Address Matched +918684559002013042519043408772078,19a Hardy Street,,,ME14 2SH,9052257078,D,D,63,67,Maisonette,Mid-Terrace,2013-04-23,E07000110,E14000804,Kent,2013-04-25,marketed sale,61,65,223,196.0,3.4,43,3.0,71.0,48.0,583.0,530.0,87.0,87.0,79.0,Single,Y,1st,Y,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,50.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,no corridor,,,0.0,,natural,19a Hardy Street,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2013-04-25 19:04:34,owner-occupied,12.0,6.0,10014315351.0,Address Matched +1746980339602019082914521969612718,"4, Fordingbridge Close",,,ME16 0DA,3685736678,D,B,62,84,Bungalow,End-Terrace,2019-08-29,E07000110,E14000804,Kent,2019-08-29,marketed sale,60,84,265,85.0,3.0,47,1.0,55.0,55.0,540.0,430.0,145.0,66.0,65.0,dual,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,100.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"4, Fordingbridge Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1991-1995,2019-08-29 14:52:19,owner-occupied,,,200003705534.0,Address Matched +1481675039202016092212454742762628,Flat 3 The Beeches,St. Andrews Road,,ME16 9AN,225837478,C,C,76,76,Flat,Detached,2016-09-22,E07000110,E14000804,Kent,2016-09-22,new dwelling,77,77,159,159.0,1.5,28,1.5,39.0,39.0,298.0,298.0,72.0,72.0,54.0,standard tariff,,ground floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.24 W/m-¦K,Good,Good,Some double glazing,Poor,Poor,Average thermal transmittance 0.29 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.15 W/m-¦K,Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Flat 3 The Beeches, St. Andrews Road",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2016-09-22 12:45:47,owner-occupied,6.0,6.0,10091196245.0,Address Matched +234115230642009022620504651812768,"41, Clifford Way",,,ME16 8GD,8696838568,B,B,86,88,Flat,Mid-Terrace,2009-02-26,E07000110,E14000804,Kent,2009-02-26,rental (private),87,88,103,93.0,1.0,17,0.9,58.0,32.0,152.0,154.0,70.0,70.0,61.55,Unknown,Y,2nd,N,4.0,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,21.0,0.0,From main system,Very Good,Very Good,(other premises below),,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 21% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,heated corridor,,2.32,0.0,N,natural,"41, Clifford Way",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2009-02-26 20:50:46,rental (private),,,10022896054.0,Address Matched +51671e5b1bafc106aad0ca2d7d12378f1bf82a2bcda6c6f8b3421e2870e44be6,45 NORRINGTON ROAD,,,ME15 9XB,10001530394,C,B,71,85,House,Semi-Detached,2021-07-16,E07000110,E14000804,Kent,2021-07-16,marketed sale,67,82,187,92.0,3.7,33,1.9,84.0,84.0,591.0,491.0,119.0,79.0,112.0,Single,Y,,,,,100.0,"double glazing, unknown install date",Normal,3.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.48,0.0,N,natural,45 NORRINGTON ROAD,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2021-07-16 16:23:43,Owner-occupied,14.0,,200003675611.0,Energy Assessor +634140565932011052520171169268304,"129, Newbury Avenue",,,ME16 0RE,6409307868,C,C,69,70,House,End-Terrace,2011-05-25,E07000110,E14000804,Kent,2011-05-25,none of the above,70,71,207,196.0,2.4,40,2.3,66.0,33.0,401.0,405.0,71.0,71.0,60.57,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,2.44,0.0,,natural,"129, Newbury Avenue",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2011-05-25 20:17:11,unknown,10.0,0.0,200003660358.0,Address Matched +516eb6f0241ded9accafd7826141eaaa087d5326e063c17cfa4592616e4f77b6,63 Norrington Road,,,ME15 9XD,10001573112,D,C,60,73,House,Detached,2021-08-23,E07000110,E14000804,Kent,2021-08-23,marketed sale,51,65,269,184.0,6.1,47,4.3,87.0,87.0,1058.0,943.0,131.0,84.0,130.0,Single,Y,,,,,100.0,"double glazing, unknown install date",Normal,2.0,7.0,7.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.36,0.0,N,natural,63 Norrington Road,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2021-08-23 15:47:04,Owner-occupied,12.0,,200003675631.0,Energy Assessor +555396923912010102112502299909580,"Flat Above, The Tickled Trout",Lower Road,West Farleigh,ME15 0PE,5023390868,E,E,47,51,Flat,NO DATA!,2010-10-19,E07000110,E14000804,Kent,2010-10-21,marketed sale,27,30,376,354.0,14.0,82,14.0,144.0,101.0,1496.0,1420.0,226.0,226.0,174.44,Single,N,1st,Y,2.0,2304.0,0.0,single glazing,Normal,0.0,6.0,6.0,57.0,0.0,From main system,Good,Good,(other premises below),,,Single glazed,Very Poor,Very Poor,"Timber frame, as built, no insulation (assumed)",Very Poor,Very Poor,Portable electric heaters,,,"Pitched, 100 mm loft insulation",Average,Average,Community scheme,Good,Good,"Flat rate charging, programmer and room thermostat",Poor,Poor,Low energy lighting in 57% of fixed outlets,Good,Good,oil - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.33,0.0,N,natural,"Flat Above, The Tickled Trout, Lower Road, West Farleigh",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2010-10-21 12:50:22,owner-occupied,,,200003662808.0,Address Matched +339473269032010011512535811968504,"43, Gloucester Road",,,ME15 7HS,6431575668,C,C,72,76,House,Semi-Detached,2010-01-15,E07000110,E14000700,Kent,2010-01-15,marketed sale,67,73,216,179.0,3.5,36,2.9,50.0,50.0,513.0,440.0,128.0,104.0,96.12,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,100.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.5,0.0,N,natural,"43, Gloucester Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2010-01-15 12:53:58,owner-occupied,,,200003711828.0,Address Matched +1637057109022018060410414208648828,"3, Cornflower Drive",Marden,,TN12 9GH,2026048578,B,B,86,86,House,Detached,2018-06-04,E07000110,E14000804,Kent,2018-06-04,new dwelling,86,86,68,68.0,2.5,11,2.5,99.0,99.0,489.0,489.0,109.0,109.0,222.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.16 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.28 W/m-¦K,Very Good,Very Good,"Room heaters, wood logs",,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"3, Cornflower Drive, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,NO DATA!,2018-06-04 10:41:42,owner-occupied,45.0,45.0,10093305331.0,Address Matched +1792661962642020031408481264900368,"28, Lower Fant Road",,,ME16 8EA,7695869678,D,B,57,84,House,Mid-Terrace,2020-03-06,E07000110,E14000804,Kent,2020-03-14,marketed sale,50,82,303,88.0,4.6,54,1.4,73.0,73.0,824.0,448.0,87.0,57.0,86.0,Unknown,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,91.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Sandstone or limestone, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 91% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"28, Lower Fant Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2020-03-14 08:48:12,owner-occupied,,,200003666311.0,Address Matched +1667902501312018101516404696989865,Flat 66,Brenchley House,123-135 Week Street,ME14 1FX,8557160678,C,C,76,76,Flat,Mid-Terrace,2018-10-15,E07000110,E14000804,Kent,2018-10-15,new dwelling,83,83,194,194.0,0.8,34,0.8,22.0,22.0,145.0,145.0,92.0,92.0,24.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,Community scheme,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.30 W/m-¦K,Good,Good,,,,(other premises above),,,Community scheme,Good,Good,"Charging system linked to use of community heating, programmer and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,NO DATA!,,NO DATA!,,,,,NO DATA!,"Flat 66, Brenchley House, 123-135 Week Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2018-10-15 16:40:46,unknown,6.0,6.0,10094440742.0,Address Matched +881195899942013020712584205470738,"30, Emsworth Grove",,,ME14 5SE,5982194078,D,B,68,86,House,Semi-Detached,2013-02-07,E07000110,E14000804,Kent,2013-02-07,FiT application,66,86,182,62.0,3.2,35,1.2,67.0,51.0,517.0,400.0,135.0,72.0,93.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,3.0,5.0,5.0,68.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 68% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"30, Emsworth Grove",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2013-02-07 12:58:42,owner-occupied,22.0,15.0,200003672907.0,Address Matched +1671662120112018101712004799989167,"40, St. Lawrence Crescent",Coxheath,,ME17 4FS,1719090678,B,A,85,95,House,Semi-Detached,2018-10-17,E07000110,E14000804,Kent,2018-10-17,new dwelling,87,96,76,12.0,1.4,13,0.3,75.0,75.0,236.0,236.0,78.0,46.0,108.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.19 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.28 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.17 W/m-¦K,Good,Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"40, St. Lawrence Crescent, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2018-10-17 12:00:47,unknown,18.0,18.0,10093306424.0,Address Matched +269063671752009042018163708210568,1 Thanet House,Wallis Avenue,,ME15 9HY,5828180668,C,C,77,78,Flat,Semi-Detached,2009-04-20,E07000110,E14000700,Kent,2009-04-20,rental (social),75,75,197,192.0,2.0,33,2.0,45.0,30.0,296.0,299.0,77.0,77.0,61.53,Single,Y,Ground,N,4.0,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,50.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.3,0.0,N,natural,"1 Thanet House, Wallis Avenue",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2009-04-20 18:16:37,rental (social),,,200003683058.0,Address Matched +528174756212010081618004799900977,6 Yeoman Court,Ashford Road,Bearsted,ME14 4ND,9793698768,C,C,71,72,Flat,Mid-Terrace,2010-08-16,E07000110,E14000700,Kent,2010-08-16,marketed sale,67,67,299,295.0,2.2,50,2.2,35.0,23.0,379.0,381.0,78.0,78.0,43.98,Single,Y,1st,Y,2.0,2106.0,0.0,not defined,Normal,0.0,3.0,3.0,50.0,0.0,From main system,Good,Good,(other premises below),,,Single glazed,Very Poor,Very Poor,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Flat, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.35,0.0,N,natural,"6 Yeoman Court, Ashford Road, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2010-08-16 18:00:47,owner-occupied,,,200003692582.0,Address Matched +194955770242008112511142253482958,"43, Camomile Drive",Weavering,,ME14 5FL,2261774568,D,C,64,71,House,Detached,2008-11-25,E07000110,E14000700,Kent,2008-11-25,marketed sale,61,68,236,193.0,4.8,39,4.0,118.0,59.0,530.0,479.0,138.0,112.0,142.76,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,7.0,7.0,0.0,1.0,From main system,Good,Good,"Solid, limited insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.3,0.0,N,natural,"43, Camomile Drive, Weavering",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1996-2002,2008-11-25 11:14:22,owner-occupied,,,200003688350.0,Address Matched +1667703069002018102916545563082818,Flat 95,Brenchley House,123-135 Week Street,ME14 1FY,3046160678,C,C,76,76,Flat,Mid-Terrace,2018-10-29,E07000110,E14000700,Kent,2018-10-29,new dwelling,83,83,216,216.0,0.8,38,0.8,20.0,20.0,134.0,134.0,91.0,91.0,20.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,Community scheme,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.30 W/m-¦K,Good,Good,,,,(other premises above),,,Community scheme,Good,Good,"Charging system linked to use of community heating, programmer and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,NO DATA!,,NO DATA!,,,,,NO DATA!,"Flat 95, Brenchley House, 123-135 Week Street",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2018-10-29 16:54:55,unknown,6.0,6.0,10094440771.0,Address Matched +1814352943032020073016133677778707,"17, Linden Road",Coxheath,,ME17 4QS,4707721778,D,B,66,81,House,Detached,2020-07-30,E07000110,E14000804,Kent,2020-07-30,marketed sale,60,77,230,123.0,4.5,41,2.5,102.0,102.0,749.0,609.0,137.0,83.0,112.0,Single,Y,NODATA!,,,2104.0,92.0,"double glazing, unknown install date",Normal,1.0,8.0,8.0,76.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Mostly double glazing,Average,Average,"Timber frame, as built, insulated (assumed)",Good,Good,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 76% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"17, Linden Road, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2020-07-30 16:13:36,owner-occupied,,,200003714793.0,Address Matched +1732208206132019062711075101278006,"7, Bergamot Road",Allington,,ME16 9FX,681035678,B,B,87,88,House,Mid-Terrace,2019-06-27,E07000110,E14000804,Kent,2019-06-27,new dwelling,89,92,65,47.0,0.9,12,0.6,62.0,62.0,177.0,178.0,88.0,48.0,74.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.16 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.16 W/m-¦K,Good,Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"7, Bergamot Road, Allington",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2019-06-27 11:07:51,unknown,16.0,16.0,10093306688.0,Address Matched +1323033179962015051920393156788725,"12, Alexandra Glen",Walderslade,,ME5 9EB,2542716378,C,B,70,87,House,End-Terrace,2015-05-18,E07000110,E14000700,Kent,2015-05-19,marketed sale,67,85,204,79.0,2.9,36,1.2,73.0,52.0,474.0,422.0,158.0,81.0,81.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,60.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 60% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"12, Alexandra Glen, Walderslade",Maidstone,Faversham and Mid Kent,CHATHAM,England and Wales: 1983-1990,2015-05-19 20:39:31,owner-occupied,,,200003709135.0,Address Matched +1640163169642018061311440657889778,"4, Broke Wood Way",,,ME16 9FA,9638068578,B,A,85,94,House,Detached,2018-06-13,E07000110,E14000804,Kent,2018-06-13,new dwelling,86,94,76,20.0,1.7,13,0.5,74.0,74.0,272.0,272.0,84.0,51.0,124.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.16 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"4, Broke Wood Way",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2018-06-13 11:44:06,unknown,20.0,20.0,10093303483.0,Address Matched +655421803652011101417081695999487,19 Thomas Place,James Whatman Way,,ME14 1FP,4741358868,C,B,80,81,Flat,Mid-Terrace,2011-10-14,E07000110,E14000804,Kent,2011-10-14,new dwelling,90,90,97,94.0,0.8,13,0.8,47.0,37.0,202.0,203.0,102.0,102.0,63.9,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,5.0,,"Community scheme, no cylinder thermostat",Good,Very Good,(other premises below),,,Fully double glazed,Good,Good,Average thermal transmittance 0.27 W/m?K,Very Good,Very Good,,,,(other premises above),,,Community scheme,Good,Very Good,"Flat rate charging, programmer and TRVs",Average,Average,Low energy lighting in 71% of fixed outlets,Very Good,Very Good,NO DATA!,0.0,NO DATA!,,2.4,,,NO DATA!,"19 Thomas Place, James Whatman Way",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2011-10-14 17:08:16,,7.0,5.0,10014312685.0,Address Matched +1636629389062018120217240058798928,"24, Hastings Road",,,ME15 7SP,2555838578,D,B,68,84,House,Mid-Terrace,2018-12-01,E07000110,E14000804,Kent,2018-12-02,marketed sale,61,80,208,97.0,4.8,37,2.3,91.0,91.0,834.0,582.0,108.0,73.0,132.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,2.0,7.0,7.0,84.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 84% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"24, Hastings Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2018-12-02 17:24:00,owner-occupied,,,200003695463.0,Address Matched +142325935232012051211430177968105,Flat 3,"34, London Road",,ME16 8QL,3587111568,D,C,63,76,Flat,Semi-Detached,2012-05-12,E07000110,E14000804,Kent,2012-05-12,marketed sale,66,82,332,175.0,1.7,64,0.9,18.0,18.0,343.0,207.0,62.0,56.0,27.0,Unknown,Y,3rd,Y,,2107.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,100.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,5.81,,0.0,,natural,"Flat 3, 34, London Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2012-05-12 11:43:01,owner-occupied,5.0,5.0,200003668490.0,Address Matched +51ab977b21d30d6f5ac9ffe6380fd56798f8abbd129e372283d7c200b2781606,21 THOMAS PLACE,JAMES WHATMAN WAY,,ME14 1FP,4012358868,B,B,83,83,Flat,Mid-Terrace,2021-07-20,E07000110,E14000804,Kent,2021-08-02,rental,85,85,99,99.0,1.2,17,1.2,66.0,66.0,156.0,156.0,111.0,111.0,70.0,Single,N,04,N,,,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,Community scheme,Good,Good,(another dwelling below),,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Very Good,Very Good,,,,(another dwelling above),,,Community scheme,Good,Good,"Flat rate charging, programmer and room thermostat",Poor,Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (community),0.0,unheated corridor,9.7,2.39,0.0,N,natural,"21 THOMAS PLACE, JAMES WHATMAN WAY",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2012 onwards,2021-08-02 10:31:49,Rented (social),7.0,,10014312687.0,Energy Assessor +808229479102012063022453992922188,"50, Allen Street",,,ME14 5AG,2173779968,D,B,58,85,House,Mid-Terrace,2012-06-28,E07000110,E14000804,Kent,2012-06-30,rental (private),55,86,273,70.0,3.5,53,0.9,60.0,38.0,572.0,363.0,96.0,59.0,66.0,Single,Y,NODATA!,,,2102.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,40.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,Low energy lighting in 40% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"50, Allen Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2012-06-30 22:45:39,rental (private),20.0,8.0,200003704804.0,Address Matched +1028728447832019031509370280078809,"2, St. Catherines Road",,,ME15 9WP,4930835178,B,B,82,84,Flat,Semi-Detached,2018-03-02,E07000110,E14000700,Kent,2019-03-15,rental (social),82,83,155,145.0,1.2,26,1.1,70.0,39.0,120.0,126.0,131.0,131.0,45.0,dual,N,Ground,Y,,2206.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,20.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Air source heat pump, radiators, electric",Average,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 20% of fixed outlets,Poor,Poor,electricity (not community),0.0,heated corridor,,,,N,natural,"2, St. Catherines Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2007 onwards,2019-03-15 09:37:02,rental (social),,,10014311722.0,Address Matched +1384969442512015111214534895959545,Flat 75,Miller House,43-51 Lower Stone Street,ME15 6GB,5508250478,B,B,81,81,Flat,NO DATA!,2015-11-12,E07000110,E14000804,Kent,2015-11-12,none of the above,84,84,118,118.0,1.1,21,1.1,36.0,36.0,222.0,222.0,70.0,70.0,52.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Good,Good,Average thermal transmittance 0.71 W/m-¦K,Average,Average,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Flat 75, Miller House, 43-51 Lower Stone Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2015-11-12 14:53:48,unknown,4.0,4.0,10091196172.0,Address Matched +1351937589062015080922533488218755,Flat 108 Scotney Gardens,St. Peters Street,,ME16 0GT,5887818378,B,B,84,87,Flat,Mid-Terrace,2015-08-09,E07000110,E14000804,Kent,2015-08-09,marketed sale,78,82,141,117.0,1.8,24,1.5,90.0,60.0,96.0,83.0,158.0,134.0,74.0,dual,N,1st,N,,2401.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,50.0,0.0,"Electric immersion, off-peak",Average,Poor,(another dwelling below),NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,(another dwelling above),,,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 50% of fixed outlets,Good,Good,electricity (not community),0.0,unheated corridor,3.18,,,N,natural,"Flat 108 Scotney Gardens, St. Peters Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2015-08-09 22:53:34,owner-occupied,,,10022893476.0,Address Matched +846970670232012101800230618978093,"50, Linden Road",Coxheath,,ME17 4QS,7348052078,C,C,74,78,Flat,Mid-Terrace,2012-10-17,E07000110,E14000804,Kent,2012-10-18,marketed sale,60,63,327,301.0,2.4,58,2.2,54.0,29.0,218.0,193.0,98.0,98.0,42.0,dual,N,1st,Y,,2401.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,14.0,0.0,"Electric immersion, off-peak",Average,Very Poor,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,"Pitched, insulated (assumed)",Average,Average,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 14% of fixed outlets,Poor,Poor,electricity (not community),0.0,no corridor,,,0.0,,natural,"50, Linden Road, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2012-10-18 00:23:06,unknown,7.0,1.0,200003714889.0,Address Matched +596767410112016092811022592260480,"9, Dorset Way",,,ME15 7EL,4016024868,D,C,65,79,House,Semi-Detached,2016-09-27,E07000110,E14000700,Kent,2016-09-28,rental (social),60,75,247,141.0,3.9,43,2.3,72.0,72.0,677.0,617.0,153.0,85.0,90.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,78.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 78% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,2.4,,N,natural,"9, Dorset Way",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2016-09-28 11:02:25,rental (social),,,200003711334.0,Address Matched +1686641119952018121818090699989269,6 Newlyn Court,Tufton Street,,ME14 1EZ,2979991678,C,C,71,79,Flat,Mid-Terrace,2018-12-18,E07000110,E14000804,Kent,2018-12-18,rental (social),54,67,301,218.0,3.7,51,2.7,60.0,60.0,444.0,253.0,166.0,166.0,73.0,dual,N,Ground,N,,2401.0,100.0,"double glazing, unknown install date",Normal,1.0,3.0,3.0,100.0,0.0,"Electric immersion, off-peak",Average,Poor,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, partial insulation (assumed)",Average,Average,"Room heaters, electric",,,(another dwelling above),,,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,no corridor,,,,N,natural,"6 Newlyn Court, Tufton Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1976-1982,2018-12-18 18:09:06,rental (social),,,200003688159.0,Address Matched +224744060922009021610283737528311,"1, Heathfield Avenue",Penenden Heath,,ME14 2DQ,1350677568,E,D,42,65,House,Semi-Detached,2009-02-12,E07000110,E14000804,Kent,2009-02-16,marketed sale,36,59,471,273.0,7.2,79,4.2,65.0,41.0,876.0,518.0,120.0,99.0,104.13,Single,Y,NO DATA!,,,2101.0,90.0,double glazing installed before 2002,Normal,1.0,4.0,4.0,40.0,2.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Partial double glazing,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,No time or thermostatic control of room temperature,Very Poor,Very Poor,Low energy lighting in 40% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.58,0.0,N,natural,"1, Heathfield Avenue, Penenden Heath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2009-02-16 10:28:37,owner-occupied,,,200003673251.0,Address Matched +199318420022008120821203565188428,"26, Pine Grove",Penenden Heath,,ME14 2AJ,2643245568,E,D,46,60,House,Semi-Detached,2008-12-08,E07000110,E14000804,Kent,2008-12-08,rental (private),41,53,372,278.0,9.0,62,6.7,123.0,66.0,1039.0,815.0,159.0,120.0,156.9,Unknown,Y,NO DATA!,,,2104.0,80.0,"double glazing, unknown install date",Normal,2.0,7.0,6.0,15.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Partial double glazing,Poor,Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, mains gas",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Poor,Poor,Low energy lighting in 15% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.6,0.0,N,natural,"26, Pine Grove, Penenden Heath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2008-12-08 21:20:35,rental (private),,,200003701540.0,Address Matched +561914719022010110617081081158060,"1, Friars Court",Queen Anne Road,,ME14 1ER,6888141868,C,C,78,79,Flat,NO DATA!,2010-11-05,E07000110,E14000804,Kent,2010-11-06,rental (private),72,73,288,284.0,1.8,43,1.8,40.0,25.0,142.0,145.0,113.0,113.0,41.19,dual,N,Ground,N,4.0,2401.0,100.0,double glazing installed before 2002,Normal,0.0,2.0,2.0,43.0,0.0,"Electric immersion, off-peak",Average,Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"System built, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,(another dwelling above),,,Electric storage heaters,Average,Poor,Manual charge control,Poor,Poor,Low energy lighting in 43% of fixed outlets,Average,Average,electricity - this is for backwards compatibility only and should not be used,0.0,heated corridor,,2.31,0.0,N,natural,"1, Friars Court, Queen Anne Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2010-11-06 17:08:10,rental (private),,,200003688614.0,Address Matched +1384933632812016042716080595260240,Flat 53,Miller House,43-51 Lower Stone Street,ME15 6GB,2057250478,C,C,78,78,Flat,NO DATA!,2016-04-27,E07000110,E14000804,Kent,2016-04-27,none of the above,68,68,248,248.0,2.2,42,2.2,38.0,38.0,239.0,239.0,151.0,151.0,52.0,off-peak 10 hour,,mid floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Poor,Poor,(other premises below),,,Fully double glazed,Good,Good,Average thermal transmittance 0.71 W/m-¦K,Average,Average,,,,(other premises above),,,"Boiler and radiators, electric",Poor,Very Poor,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"Flat 53, Miller House, 43-51 Lower Stone Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2016-04-27 16:08:05,unknown,4.0,4.0,10091196150.0,Address Matched +254688650302009032417020854912608,"18, Senacre Square",,,ME15 8QF,6340959568,C,B,78,81,Maisonette,Semi-Detached,2009-03-20,E07000110,E14000700,Kent,2009-03-24,rental (social),76,78,160,146.0,2.4,27,2.2,74.0,46.0,308.0,294.0,106.0,106.0,91.0,Single,Y,1st,Y,3.0,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,40.0,0.0,From main system,Very Good,Very Good,(other premises below),,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 40% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.37,0.0,N,natural,"18, Senacre Square",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2009-03-24 17:02:08,rental (social),,,200003685254.0,Address Matched +475847581652015091615474593950476,"53, Perryfield Street",,,ME14 2SZ,4666135768,D,B,68,90,House,Mid-Terrace,2015-09-14,E07000110,E14000804,Kent,2015-09-16,marketed sale,68,91,238,45.0,2.2,42,0.5,65.0,37.0,411.0,311.0,93.0,62.0,53.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,25.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 25% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"53, Perryfield Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2015-09-16 15:47:45,owner-occupied,,,200003669731.0,Address Matched +1384572809022015111116151870628925,Flat 22 William Shipley House,Knightrider Court,Knightrider Street,ME15 6XD,2768050478,D,D,62,62,Flat,NO DATA!,2015-05-02,E07000110,E14000804,Kent,2015-11-11,new dwelling,66,66,244,244.0,2.5,41,2.5,49.0,49.0,443.0,443.0,239.0,239.0,61.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,,0.0,"Electric immersion, standard tariff",Very Poor,Poor,(other premises below),,,Fully double glazed,Average,Average,Average thermal transmittance 0.28 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,"Room heaters, electric",Very Poor,Poor,Programmer and room thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"Flat 22 William Shipley House, Knightrider Court, Knightrider Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2015-11-11 16:15:18,unknown,8.0,8.0,10091195510.0,Address Matched +5204e0e56ed700523998715396726df08d7a5f0024d34468d1c89c5917d5bcdc,10 TOLLGATE WAY,SANDLING,,ME14 3DF,10001334086,D,B,62,84,House,Detached,2021-06-30,E07000110,E14000700,Kent,2021-07-01,marketed sale,55,81,245,87.0,4.8,44,1.8,128.0,92.0,752.0,508.0,176.0,75.0,110.0,dual,Y,,,,,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,61.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 61% of fixed outlets,Good,Good,mains gas (not community),0.0,,,2.34,0.0,N,natural,"10 TOLLGATE WAY, SANDLING",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1976-1982,2021-07-01 07:44:07,Owner-occupied,18.0,,200003672690.0,Energy Assessor +419280429962013101408412891278967,"3, Nethermount",Bearsted,,ME14 4FE,6910231768,C,B,74,81,House,Semi-Detached,2013-10-13,E07000110,E14000700,Kent,2013-10-14,FiT application,78,84,119,84.0,2.2,22,1.5,62.0,62.0,379.0,382.0,302.0,132.0,99.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,95.0,0.0,"Electric immersion, standard tariff",Very Poor,Very Poor,"Solid, insulated (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 95% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,,natural,"3, Nethermount, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2007 onwards,2013-10-14 08:41:28,owner-occupied,20.0,19.0,10014309097.0,Address Matched +960269549242013070916430711070418,"1b, Marion Crescent",,,ME15 7DZ,8263840178,D,C,62,71,Bungalow,Semi-Detached,2013-07-09,E07000110,E14000700,Kent,2013-07-09,marketed sale,58,67,219,163.0,4.8,42,3.6,118.0,64.0,340.0,347.0,599.0,599.0,114.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,5.0,5.0,14.0,0.0,From main system,Very Good,Good,"Solid, insulated (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 14% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"1b, Marion Crescent",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2007 onwards,2013-07-09 16:43:07,owner-occupied,14.0,2.0,10022900776.0,Address Matched +79634703852009030908493102010943,4 Hayle Mill Cottages,Hayle Mill Road,,ME15 6DT,9346325468,C,B,79,81,House,Semi-Detached,2009-03-03,E07000110,E14000804,Kent,2009-03-09,rental (private),78,79,161,153.0,2.0,27,1.9,67.0,38.0,249.0,253.0,105.0,105.0,73.98,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,22.0,0.0,From main system,Very Good,Very Good,"Solid, insulated (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 22% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.24,0.0,N,natural,"4 Hayle Mill Cottages, Hayle Mill Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2009-03-09 08:49:31,rental (private),,,200003664212.0,Address Matched +641145759542011061320352086799278,"6, Woodlands Close",Teston,,ME18 5AL,3585457868,D,D,58,64,House,Detached,2011-06-13,E07000110,E14000804,Kent,2011-06-13,rental (private),52,59,250,209.0,6.4,48,5.4,109.0,59.0,940.0,862.0,167.0,109.0,133.11,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,16.0,1.0,"From main system, no cylinder thermostat",Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 16% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,2.62,0.0,,natural,"6, Woodlands Close, Teston",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2011-06-13 20:35:20,rental (private),19.0,3.0,200003661689.0,Address Matched +723653739042011111516370790399758,"15, Corben Close",Allington,,ME16 0FH,5030633968,C,C,69,74,House,End-Terrace,2011-11-15,E07000110,E14000804,Kent,2011-11-15,marketed sale,69,75,195,155.0,2.8,37,2.2,63.0,44.0,424.0,368.0,131.0,103.0,75.16,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,58.0,0.0,From main system,Average,Average,"Solid, limited insulation (assumed)",,,Fully double glazed,Average,Average,"Timber frame, as built, insulated (assumed)",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 58% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,2.34,0.0,,natural,"15, Corben Close, Allington",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2011-11-15 16:37:07,owner-occupied,12.0,7.0,10022901474.0,Address Matched +1673338729262018102416520401248818,"38a, Church Street",Boughton Monchelsea,,ME17 4HW,1059201678,D,B,68,86,House,End-Terrace,2018-10-24,E07000110,E14000700,Kent,2018-10-24,marketed sale,64,84,224,85.0,3.2,40,1.3,58.0,58.0,549.0,408.0,104.0,70.0,81.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"38a, Church Street, Boughton Monchelsea",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2018-10-24 16:52:04,owner-occupied,,,200003729945.0,Address Matched +1752530679102019092014282063612808,"65, Farleigh Hill",Tovil,,ME15 6AA,196876678,C,B,77,89,House,End-Terrace,2019-09-20,E07000110,E14000804,Kent,2019-09-20,marketed sale,76,88,144,62.0,2.3,25,1.0,96.0,72.0,359.0,363.0,115.0,72.0,92.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,67.0,0.0,From main system,Good,Good,"Suspended, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Timber frame, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 67% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"65, Farleigh Hill, Tovil",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2019-09-20 14:28:20,owner-occupied,,,10022901612.0,Address Matched +249984617132009033120230423268307,"36, Church Crescent",Harrietsham,,ME17 1BB,1723379568,C,B,70,81,Maisonette,Semi-Detached,2009-03-25,E07000110,E14000700,Kent,2009-03-31,rental (social),66,79,255,162.0,2.8,43,1.8,57.0,32.0,326.0,244.0,148.0,98.0,64.94,Single,Y,1st,Y,2.0,2107.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,20.0,0.0,From main system,Average,Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Average,Good,"Programmer, TRVs and bypass",Poor,Poor,Low energy lighting in 20% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,heated corridor,,2.42,0.0,N,natural,"36, Church Crescent, Harrietsham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2009-03-31 20:23:04,rental (social),,,200003703916.0,Address Matched +459067219042010032317582973402278,"1, West View",Maidstone Road,,TN27 9RL,6035214768,F,E,31,45,House,Semi-Detached,2010-03-23,E07000110,E14000700,Kent,2010-03-23,marketed sale,52,64,239,177.0,6.4,48,4.8,157.0,78.0,1189.0,928.0,298.0,225.0,133.18,dual,N,NO DATA!,,,2107.0,100.0,double glazing installed before 2002,Normal,1.0,6.0,6.0,0.0,1.0,From main system,Very Poor,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, insulated (assumed)",Average,Average,"Boiler and radiators, LPG",Very Poor,Average,"Programmer, TRVs and bypass",Average,Average,No low energy lighting,Very Poor,Very Poor,LPG - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.44,0.0,N,natural,"1, West View, Maidstone Road",Maidstone,Faversham and Mid Kent,ASHFORD,England and Wales: 1900-1929,2010-03-23 17:58:29,owner-occupied,,,200003698228.0,Address Matched +761905657232012031520043912968708,West Holme,Maidstone Road,Sutton Valence,ME17 3LR,5802746968,E,D,45,58,Bungalow,Detached,2012-03-15,E07000110,E14000700,Kent,2012-03-15,marketed sale,49,62,343,258.0,5.9,55,4.4,96.0,54.0,1171.0,908.0,143.0,125.0,108.12,Single,Y,NODATA!,,,2106.0,0.0,not defined,Normal,3.0,6.0,6.0,23.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Timber frame, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 23% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,2.44,0.0,,natural,"West Holme, Maidstone Road, Sutton Valence",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2012-03-15 20:04:39,owner-occupied,13.0,3.0,200003724881.0,Address Matched +52171eb199874ea0993b619242b0adbdca2597337a1f83cd97e1c2ac6ab5606a,57 WHITMORE STREET,,,ME16 8JX,10001604582,D,B,60,82,House,End-Terrace,2021-07-01,E07000110,E14000804,Kent,2021-07-02,non marketed sale,52,78,262,106.0,5.4,46,2.2,122.0,86.0,892.0,567.0,127.0,82.0,117.0,Unknown,Y,,,,,100.0,"double glazing, unknown install date",Normal,2.0,6.0,6.0,58.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 58% of fixed outlets,Good,Good,mains gas (not community),0.0,,,2.21,0.0,N,natural,57 WHITMORE STREET,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2021-07-02 09:42:58,Rented (private),19.0,,200003655358.0,Energy Assessor +485231789222019082122413215498421,"15, Dogwood Close",,,ME5 8XW,2153895768,C,A,74,92,House,Mid-Terrace,2019-08-21,E07000110,E14000700,Kent,2019-08-21,marketed sale,77,94,192,23.0,1.4,34,0.2,34.0,34.0,269.0,251.0,75.0,51.0,43.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"15, Dogwood Close",Maidstone,Faversham and Mid Kent,CHATHAM,England and Wales: 1983-1990,2019-08-21 22:41:32,owner-occupied,,,200003676353.0,Address Matched +1677946559022019100912342831318738,Flat 814,Kent House,Romney Place,ME15 6LA,3396531678,D,D,61,61,Flat,Detached,2018-11-09,E07000110,E14000804,Kent,2019-10-09,non marketed sale,65,65,334,334.0,2.0,56,2.0,30.0,30.0,410.0,410.0,234.0,234.0,35.0,standard tariff,,top floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,"Electric immersion, standard tariff",Very Poor,Poor,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.35 W/m-¦K,Good,Good,,,,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,Electric underfloor heating,Very Poor,Poor,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"Flat 814, Kent House, Romney Place",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2019-10-09 12:34:28,unknown,21.0,21.0,, +5234453f0624b0ac2b05c22e47abb1357af761efd2054c5004022b44e6f75819,22 CAMP WAY,,,ME15 9BB,10001462660,C,B,69,86,House,Mid-Terrace,2021-07-19,E07000110,E14000700,Kent,2021-07-20,marketed sale,66,85,221,88.0,2.8,39,1.2,62.0,62.0,490.0,400.0,85.0,59.0,73.0,Single,Y,,,,,100.0,"double glazing, unknown install date",Normal,1.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.3,0.0,N,natural,22 CAMP WAY,Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2021-07-20 10:22:09,Owner-occupied,9.0,,200003713710.0,Energy Assessor +1686283489922018121714091451238308,"21, Whatman Drive",,,ME14 5FZ,580891678,B,A,84,97,House,Mid-Terrace,2018-12-17,E07000110,E14000700,Kent,2018-12-17,new dwelling,88,100,79,-16.0,1.0,14,-0.2,57.0,57.0,173.0,173.0,69.0,40.0,72.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.16 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.27 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.14 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"21, Whatman Drive",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2018-12-17 14:09:14,owner-occupied,13.0,13.0,10093305881.0,Address Matched +395518769242019042416054966912348,"5, Barbados Terrace",Invicta Park,,ME14 2NT,8253469668,D,B,57,84,House,End-Terrace,2019-04-24,E07000110,E14000804,Kent,2019-04-24,Stock Condition Survey,51,82,322,99.0,4.0,57,1.3,105.0,53.0,671.0,422.0,91.0,61.0,70.0,Unknown,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Flat, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"5, Barbados Terrace, Invicta Park",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2019-04-24 16:05:49,rental (private),,,200003723984.0,Address Matched +48271543032010071420433080968304,Flat 2,203 Boxley Road,,ME14 2TL,4460345568,C,B,69,84,Flat,Detached,2010-07-14,E07000110,E14000804,Kent,2010-07-14,marketed sale,78,76,251,267.0,1.4,38,1.4,29.0,23.0,134.0,96.0,215.0,102.0,35.82,Single,N,1st,N,3.0,2603.0,100.0,double glazing installed during or after 2002,Normal,1.0,2.0,2.0,60.0,0.0,"Electric immersion, standard tariff",Very Poor,Poor,(other premises below),,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Flat, insulated (assumed)",Good,Good,"Room heaters, electric",Very Poor,Poor,Programmer and appliance thermostats,Good,Good,Low energy lighting in 60% of fixed outlets,Good,Good,electricity - this is for backwards compatibility only and should not be used,0.0,unheated corridor,4.54,2.65,0.0,N,natural,"Flat 2, 203 Boxley Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2010-07-14 20:43:30,owner-occupied,,,10014310655.0,Address Matched +821277228952012080219091296020705,"58, Mallings Drive",Bearsted,,ME14 4HG,7559860078,D,B,68,83,House,Semi-Detached,2012-08-02,E07000110,E14000700,Kent,2012-08-02,marketed sale,67,82,182,83.0,3.0,35,1.4,95.0,48.0,530.0,492.0,47.0,19.0,86.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,0.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"58, Mallings Drive, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2012-08-02 19:09:12,owner-occupied,10.0,0.0,200003694813.0,Address Matched +1677146251512019100912102293089265,Flat 2 Kent House,Romney Place,,ME15 6LA,2546131678,E,E,53,53,Flat,Detached,2018-11-09,E07000110,E14000804,Kent,2019-10-09,non marketed sale,58,58,321,321.0,2.9,54,2.9,43.0,43.0,660.0,660.0,268.0,268.0,53.0,standard tariff,,ground floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,"Electric immersion, standard tariff",Very Poor,Poor,Average thermal transmittance 0.29 W/m-¦K,Good,Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.31 W/m-¦K,Good,Good,,,,(other premises above),,,Electric underfloor heating,Very Poor,Poor,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"Flat 2 Kent House, Romney Place",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2019-10-09 12:10:22,unknown,21.0,21.0,10094442244.0,Address Matched +1708996919222019032717332583398111,Flat 13,Cornwallis House,Pudding Lane,ME14 1NY,1809163678,D,D,64,64,Flat,Detached,2019-02-21,E07000110,E14000804,Kent,2019-03-27,new dwelling,68,68,230,230.0,2.0,39,2.0,41.0,41.0,438.0,438.0,171.0,171.0,51.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,Electric instantaneous at point of use,Very Poor,Very Poor,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.26 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,"Room heaters, electric",Very Poor,Poor,Programmer and appliance thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"Flat 13, Cornwallis House, Pudding Lane",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2019-03-27 17:33:25,owner-occupied,8.0,8.0,, +761824954252012033018550694720493,1 Tyland Cottages,Tyland Lane,Sandling,ME14 3BH,4331446968,D,D,57,60,House,Semi-Detached,2012-03-30,E07000110,E14000700,Kent,2012-03-30,rental (private),52,55,270,254.0,5.2,52,4.9,77.0,51.0,843.0,807.0,104.0,104.0,99.38,Single,Y,NODATA!,,,2106.0,0.0,not defined,Normal,1.0,5.0,5.0,50.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, mains gas",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,2.45,0.0,,natural,"1 Tyland Cottages, Tyland Lane, Sandling",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2012-03-30 18:55:06,rental (private),10.0,5.0,200003672753.0,Address Matched +525c2a6a3991b7f3db23336ed75fd7cfa1453b1484b2a439e86be03cf3e7a6db,18b Hayle Road,,,ME15 6PG,10001395373,C,C,76,78,Flat,Semi-Detached,2021-08-24,E07000110,E14000804,Kent,2021-08-25,rental,80,83,187,159.0,1.1,33,1.0,32.0,32.0,229.0,200.0,61.0,62.0,34.0,Single,Y,01,Y,,,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,100.0,0.0,From main system,Good,Good,(another dwelling below),,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 400 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,no corridor,,2.3,0.0,N,natural,18b Hayle Road,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2021-08-25 08:06:19,Rented (private),6.0,,200003683423.0,Energy Assessor +1808760063032020070814554556078607,"4, Cranford Road",Allington,,ME16 9FZ,6776680778,B,B,86,87,House,Semi-Detached,2020-07-08,E07000110,E14000804,Kent,2020-07-08,new dwelling,87,89,71,58.0,1.5,12,1.2,86.0,86.0,266.0,267.0,99.0,55.0,121.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.18 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.23 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.19 W/m-¦K,Good,Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"4, Cranford Road, Allington",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2020-07-08 14:55:45,unknown,34.0,34.0,10094440352.0,Address Matched +655468983612011101418145695999980,Flat 42 Tennyson Lodge,James Whatman Way,,ME14 1FR,9063358868,C,B,80,81,Flat,End-Terrace,2011-10-14,E07000110,E14000804,Kent,2011-10-14,new dwelling,90,91,99,95.0,0.8,13,0.7,45.0,34.0,188.0,190.0,99.0,99.0,57.9,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,4.0,,"Community scheme, no cylinder thermostat",Good,Very Good,(other premises below),,,Fully double glazed,Good,Good,Average thermal transmittance 0.26 W/m?K,Very Good,Very Good,,,,(other premises above),,,Community scheme,Good,Very Good,"Flat rate charging, programmer and TRVs",Average,Average,Low energy lighting in 67% of fixed outlets,Good,Good,NO DATA!,0.0,NO DATA!,,2.4,,,NO DATA!,"Flat 42 Tennyson Lodge, James Whatman Way",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2011-10-14 18:14:56,,6.0,4.0,10014312764.0,Address Matched +301453142952016090917405590060665,"4, Chiltern Close",Downswood,,ME15 8XG,6534203668,D,B,65,89,House,Mid-Terrace,2016-09-08,E07000110,E14000700,Kent,2016-09-09,marketed sale,64,90,312,65.0,2.2,55,0.5,60.0,30.0,364.0,316.0,139.0,62.0,41.0,Single,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,0.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,2.37,,N,natural,"4, Chiltern Close, Downswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2016-09-09 17:40:55,owner-occupied,,,200003687106.0,Address Matched +1744846209962019081914421426818871,"6, Culpeper Close",Hollingbourne,,ME17 1UD,7233026678,F,C,32,79,House,Mid-Terrace,2019-08-19,E07000110,E14000700,Kent,2019-08-19,marketed sale,29,72,435,119.0,8.1,94,2.4,72.0,72.0,967.0,554.0,740.0,166.0,87.0,dual,Y,NODATA!,,,2601.0,100.0,"double glazing, unknown install date",Normal,0.0,6.0,2.0,100.0,0.0,"From main system, no cylinder thermostat",Very Poor,Very Poor,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,Portable electric heaters (assumed),,,"Pitched, 100 mm loft insulation",Average,Average,"Room heaters, dual fuel (mineral and wood)",Poor,Average,No thermostatic control of room temperature,Poor,Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,dual fuel - mineral + wood,0.0,NO DATA!,,,,N,natural,"6, Culpeper Close, Hollingbourne",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2019-08-19 14:42:14,owner-occupied,,,200003700515.0,Address Matched +595339848212011022123420490290889,Flat 7 Walshaw House,Quarry Square,,ME14 2UW,8954804868,C,C,73,80,Flat,End-Terrace,2011-02-21,E07000110,E14000804,Kent,2011-02-21,rental (social),69,77,233,173.0,2.6,39,1.9,37.0,37.0,414.0,333.0,127.0,92.0,66.4,Single,Y,Ground,N,4.0,2107.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.31,0.0,N,natural,"Flat 7 Walshaw House, Quarry Square",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2011-02-21 23:42:04,rental (social),,,200003704361.0,Address Matched +497538989002010061012270772609708,Flat 2 Galapagos House,St. Catherines Road,,ME15 9WP,2008386768,C,C,74,76,Flat,End-Terrace,2010-06-10,E07000110,E14000700,Kent,2010-06-10,new dwelling,82,82,157,151.0,1.5,24,1.4,59.0,36.0,186.0,191.0,157.0,157.0,62.29,standard tariff,,ground floor,,,,,NO DATA!,NO DATA!,,,,,,From main system,Poor,Good,Average thermal transmittance 0.19 W/m?K,Very Good,Very Good,Fully double glazed,Very Good,Very Good,Average thermal transmittance 0.27 W/m?K,Very Good,Very Good,,,,(other premises above),,,"Air source heat pump, radiators, electric",Poor,Good,Programmer and room thermostat,Poor,Poor,Low energy lighting in 38% of fixed outlets,Average,Average,"Electricity: electricity, unspecified tariff",0.0,NO DATA!,,2.31,,,NO DATA!,"Flat 2 Galapagos House, St. Catherines Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2010-06-10 12:27:07,,,,10014311742.0,Address Matched +1483485719222016092815353137288236,"14, Ragstone Road",Bearsted,,ME15 8PA,3320157478,D,B,66,86,House,Semi-Detached,2016-09-28,E07000110,E14000700,Kent,2016-09-28,marketed sale,62,85,247,84.0,3.4,44,1.2,72.0,52.0,561.0,425.0,161.0,73.0,77.0,Single,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,1.0,4.0,4.0,62.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 270 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 62% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,2.4,,N,natural,"14, Ragstone Road, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2016-09-28 15:35:31,owner-occupied,,,200003690769.0,Address Matched +293294457712009102210403005219268,67 Hughenden Reach,Tovil,,ME15 6ZL,2805752668,B,B,84,85,Flat,NO DATA!,2009-10-22,E07000110,E14000804,Kent,2009-10-22,new dwelling,84,85,116,110.0,1.4,19,1.3,63.0,42.0,212.0,214.0,88.0,88.0,74.1,standard tariff,,top floor,,,2106.0,,NO DATA!,NO DATA!,,,,4.0,0.0,From main system,Very Good,Very Good,(other premises below),,,Fully double glazed,Good,Good,Average thermal transmittance 0.32 W/m?K,Good,Good,,,,Average thermal transmittance 0.19 W/m?K,Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 50% fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"67 Hughenden Reach, Tovil",Maidstone,Maidstone and The Weald,MAIDSTONE,,2009-10-22 10:40:30,,,,10014308530.0,Address Matched +1761480541652019102810103794219660,"21, Chapelfield Way",Allington,,ME16 9FU,6087147678,B,B,86,88,House,End-Terrace,2019-10-28,E07000110,E14000804,Kent,2019-10-28,new dwelling,86,88,70,59.0,1.6,12,1.3,83.0,83.0,289.0,290.0,96.0,53.0,126.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.19 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.16 W/m-¦K,Good,Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"21, Chapelfield Way, Allington",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2019-10-28 10:10:37,unknown,33.0,33.0,10093306709.0,Address Matched +534b247a826e7365ec008d30d0c6b2abe1477bbd7a9d7d4e9ea14871bf50b59c,7 North Street,Sutton Valence,,ME17 3HS,10001576666,D,B,63,88,House,Mid-Terrace,2021-09-29,E07000110,E14000700,Kent,2021-09-29,rental,63,90,304,57.0,2.5,53,0.5,49.0,49.0,456.0,317.0,117.0,66.0,46.0,Single,Y,,,,,100.0,"double glazing, unknown install date",Normal,1.0,3.0,2.0,82.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,Portable electric heaters (assumed),,,"Pitched, insulated at rafters",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 82% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.03,0.0,N,natural,"7 North Street, Sutton Valence",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2021-09-29 15:34:44,Rented (private),11.0,,200003696939.0,Energy Assessor +987043488452013080817424693070915,"19, Butcher Close",Staplehurst,,TN12 0TJ,9534832178,C,B,69,91,House,Mid-Terrace,2013-08-08,E07000110,E14000804,Kent,2013-08-08,rental (private),70,94,190,21.0,2.3,36,0.3,67.0,38.0,405.0,299.0,93.0,57.0,63.0,Single,Y,NODATA!,,,2107.0,100.0,double glazing installed before 2002,Normal,1.0,3.0,3.0,25.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 25% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"19, Butcher Close, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1967-1975,2013-08-08 17:42:46,rental (private),8.0,2.0,200003678847.0,Address Matched +1170316395532015051819154500978305,"2, Jewell Grove",Albion Road,,TN12 9EB,9580335278,F,C,37,73,Bungalow,Detached,2015-05-18,E07000110,E14000804,Kent,2015-05-18,ECO assessment,43,74,354,134.0,6.0,62,2.3,119.0,59.0,1193.0,680.0,312.0,153.0,97.0,Single,N,NODATA!,,,2206.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,0.0,1.0,From main system,Poor,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 200 mm loft insulation",Good,Good,"Air source heat pump, radiators, electric",Poor,Good,"Programmer, TRVs and bypass",Average,Average,No low energy lighting,Very Poor,Very Poor,electricity (not community),0.0,NO DATA!,,,,N,natural,"2, Jewell Grove, Albion Road",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1950-1966,2015-05-18 19:15:45,owner-occupied,,,200003709876.0,Address Matched +1200352949842014090521033727740748,The Oast,Manor Farm Cottages,"Battle Lane, Marden",TN12 9DG,2835847278,D,D,58,63,House,Detached,2014-09-04,E07000110,E14000804,Kent,2014-09-05,rental (private),46,51,189,168.0,9.2,47,8.3,193.0,96.0,1670.0,1540.0,183.0,183.0,196.0,dual,N,NODATA!,,,2106.0,,not defined,Much More Than Typical,0.0,7.0,7.0,0.0,0.0,From main system,Good,Average,"Solid, no insulation (assumed)",,,Partial double glazing,Average,Average,"Solid brick, as built, no insulation (assumed)",Poor,Poor,"Room heaters, oil",,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, oil",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,oil (not community),0.0,NO DATA!,,,0.0,,natural,"The Oast, Manor Farm Cottages, Battle Lane, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1967-1975,2014-09-05 21:03:37,rental (private),35.0,0.0,200003674086.0,Address Matched +1261300148712015012810433097250034,"103, Ashford Road",Bearsted,,ME14 4BS,469871378,D,B,62,86,House,Semi-Detached,2015-01-28,E07000110,E14000700,Kent,2015-01-28,marketed sale,55,84,274,80.0,4.0,48,1.2,58.0,58.0,729.0,429.0,131.0,82.0,83.0,dual,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"103, Ashford Road, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2015-01-28 10:43:30,owner-occupied,,,200003691997.0,Address Matched +368327384612009092310580807210767,Flat 1 The Square,"4, Square Hill Road",,ME15 7TL,7756477668,D,D,59,60,Flat,Semi-Detached,2009-09-22,E07000110,E14000804,Kent,2009-09-23,new dwelling,69,69,240,236.0,3.0,36,2.9,68.0,45.0,482.0,491.0,151.0,151.0,82.17,off-peak 7 hour,,ground floor,,,,,NO DATA!,NO DATA!,,,,,,From main system,Poor,Poor,Average thermal transmittance 0.21 W/m?K,Good,Good,Fully double glazed,Good,Good,Average thermal transmittance 0.21 W/m?K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, electric",Very Poor,Poor,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 50% of fixed outlets,Good,Good,"Electricity: electricity, unspecified tariff",0.0,NO DATA!,,2.4,,,NO DATA!,"Flat 1 The Square, 4, Square Hill Road",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2009-09-23 10:58:08,,,,10014308782.0,Address Matched +1232764339852014110715204297049024,"66b, London Road",,,ME16 8QU,452979278,D,B,67,81,House,Detached,2014-11-06,E07000110,E14000804,Kent,2014-11-07,marketed sale,65,80,177,92.0,4.0,34,2.1,130.0,65.0,721.0,630.0,115.0,80.0,117.0,Unknown,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"66b, London Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2014-11-07 15:20:42,owner-occupied,22.0,0.0,200003668525.0,Address Matched +207969857552009051914513408989854,"7, Green Lane",Boughton Monchelsea,,ME17 4JQ,8477785568,C,C,70,71,House,Semi-Detached,2008-12-15,E07000110,E14000700,Kent,2009-05-19,rental (social),66,66,226,224.0,3.6,38,3.6,54.0,45.0,470.0,472.0,124.0,124.0,94.66,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,5.0,5.0,80.0,1.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"System built, with external insulation",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.47,0.0,N,natural,"7, Green Lane, Boughton Monchelsea",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1900-1929,2009-05-19 14:51:34,rental (social),,,200003723046.0,Address Matched +5297b849505fe7ecc5c22a1c0d882d53baa867225b1a40acd4270f5e32fe0889,Capers,Walnut Tree Lane,Loose,ME15 9RQ,10001581251,C,B,70,81,House,Detached,2021-08-12,E07000110,E14000804,Kent,2021-08-12,marketed sale,65,76,178,114.0,5.8,31,3.8,198.0,124.0,900.0,807.0,140.0,82.0,185.0,dual,Y,,,,,100.0,"double glazing, unknown install date",Normal,2.0,7.0,7.0,41.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 41% of fixed outlets,Average,Average,mains gas (not community),0.0,,,2.4,0.0,N,natural,"Capers, Walnut Tree Lane, Loose",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1976-1982,2021-08-12 15:30:39,Owner-occupied,22.0,,200003675999.0,Energy Assessor +1440038253512016050419223694060349,4 Ashtree Cottages,Goudhurst Road,Marden,TN12 9NF,3977344478,G,C,1,76,House,Semi-Detached,2016-05-04,E07000110,E14000804,Kent,2016-05-04,ECO assessment,1,50,887,155.0,13.0,212,3.4,70.0,43.0,2064.0,983.0,300.0,136.0,63.0,Single,N,NODATA!,,,2601.0,25.0,"double glazing, unknown install date",Normal,2.0,3.0,1.0,38.0,0.0,"Solid fuel range cooker, no cylinder thermostat",Very Poor,Very Poor,"Solid, no insulation (assumed)",NO DATA!,,Some double glazing,Poor,Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,Portable electric heaters (assumed),,,"Pitched, no insulation",Very Poor,Very Poor,"Room heaters, dual fuel (mineral and wood)",Very Poor,Very Poor,No thermostatic control of room temperature,Poor,Poor,Low energy lighting in 38% of fixed outlets,Average,Average,dual fuel - mineral + wood,0.0,NO DATA!,,2.22,,N,natural,"4 Ashtree Cottages, Goudhurst Road, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: before 1900,2016-05-04 19:22:36,rental (private),,,200003667996.0,Address Matched +865155679802016123016524107362208,"17, Sandling Lane",Penenden Heath,,ME14 2HP,7831873078,D,C,57,77,House,Semi-Detached,2016-12-20,E07000110,E14000804,Kent,2016-12-30,marketed sale,49,71,307,155.0,4.8,54,2.4,84.0,58.0,897.0,687.0,94.0,59.0,88.0,Unknown,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,55.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 55% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"17, Sandling Lane, Penenden Heath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2016-12-30 16:52:41,owner-occupied,,,200003706818.0,Address Matched +1680780779922019061310050131778741,Flat 2,2 Rubens Court,Coxheath,ME17 4FY,4312751678,B,B,82,82,Flat,Semi-Detached,2019-06-13,E07000110,E14000804,Kent,2019-06-13,new dwelling,87,87,104,104.0,0.9,18,0.9,39.0,39.0,175.0,175.0,58.0,58.0,48.0,standard tariff,,ground floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Flat 2, 2 Rubens Court, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2019-06-13 10:05:01,unknown,15.0,15.0,10094440243.0,Address Matched +265537857552009041516494105910461,"2, Long Shaw Close",Boughton Monchelsea,,ME17 4GE,4134750668,B,B,81,81,House,Detached,2009-04-15,E07000110,E14000700,Kent,2009-04-15,marketed sale,79,79,127,127.0,2.5,21,2.5,67.0,67.0,334.0,334.0,102.0,102.0,120.0,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,90.0,0.0,From main system,Very Good,Very Good,"Solid, insulated (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 90% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.37,0.0,N,natural,"2, Long Shaw Close, Boughton Monchelsea",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2007 onwards,2009-04-15 16:49:41,owner-occupied,,,10022901127.0,Address Matched +1473189638452016082311055297260341,Willow Tree Farm,Claygate Road,Laddingford,ME18 6BJ,3118876478,E,C,53,80,House,Detached,2016-08-22,E07000110,E14000804,Kent,2016-08-23,marketed sale,45,71,199,77.0,8.6,51,4.3,131.0,86.0,1073.0,784.0,205.0,144.0,168.0,Single,N,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,8.0,8.0,48.0,0.0,From main system,Poor,Poor,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, dual fuel (mineral and wood)",,,"Thatched, with additional insulation",Very Good,Very Good,"Boiler and radiators, oil",Poor,Average,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 48% of fixed outlets,Good,Good,oil (not community),0.0,NO DATA!,,2.63,,N,natural,"Willow Tree Farm, Claygate Road, Laddingford",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2016-08-23 11:05:52,owner-occupied,,,200003659928.0,Address Matched +222791650842009020711492750710338,"35, Bicknor Road",,,ME15 9NT,9864557568,C,C,72,80,House,Mid-Terrace,2009-02-07,E07000110,E14000700,Kent,2009-02-07,marketed sale,68,78,227,155.0,3.0,38,2.0,37.0,37.0,401.0,278.0,115.0,100.0,78.0,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,0.0,N,natural,"35, Bicknor Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2009-02-07 11:49:27,owner-occupied,,,200003682768.0,Address Matched +100690274152009032108483008210343,"61, Bower Lane",,,ME16 8EH,3306486468,C,C,72,76,House,End-Terrace,2009-03-20,E07000110,E14000804,Kent,2009-03-21,marketed sale,69,73,205,182.0,3.2,34,2.8,86.0,43.0,382.0,361.0,84.0,84.0,93.93,Single,Y,NO DATA!,,,2107.0,100.0,double glazing installed before 2002,More Than Typical,0.0,5.0,5.0,0.0,0.0,From main system,Good,Good,"Suspended, limited insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 200mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Poor,Poor,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.35,0.0,N,natural,"61, Bower Lane",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2009-03-21 08:48:30,owner-occupied,,,10022897024.0,Address Matched +1091957169922014021815493689188604,"39, Wykeham Grove",Leeds,,ME17 1RP,866689178,C,B,69,84,House,Semi-Detached,2014-02-18,E07000110,E14000700,Kent,2014-02-18,marketed sale,71,87,168,64.0,2.5,32,1.0,68.0,54.0,542.0,464.0,80.0,54.0,80.0,dual,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,73.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 73% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"39, Wykeham Grove, Leeds",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2014-02-18 15:49:36,owner-occupied,15.0,11.0,200003698441.0,Address Matched +823423989942014090608154901040798,Flat 6 Ascot House,Epsom Close,,ME15 8XF,3928380078,D,C,68,76,Flat,End-Terrace,2014-09-01,E07000110,E14000700,Kent,2014-09-06,rental (social),61,61,354,353.0,2.1,63,2.1,31.0,34.0,325.0,197.0,130.0,108.0,34.0,Unknown,N,1st,Y,,2603.0,100.0,double glazing installed before 2002,Normal,1.0,2.0,2.0,86.0,0.0,"Electric immersion, off-peak",Average,Very Poor,"To external air, limited insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Room heaters, electric",Poor,Very Poor,Programmer and appliance thermostats,Good,Good,Low energy lighting in 86% of fixed outlets,Very Good,Very Good,electricity (not community),0.0,no corridor,,,0.0,,natural,"Flat 6 Ascot House, Epsom Close",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1996-2002,2014-09-06 08:15:49,rental (social),7.0,6.0,200003681344.0,Address Matched +1283986579962015021914572153718735,"2, Chippendayle Drive",Harrietsham,,ME17 1AD,3579733378,D,C,55,78,House,Detached,2015-02-19,E07000110,E14000700,Kent,2015-02-19,assessment for green deal,48,74,301,138.0,6.0,53,2.8,116.0,69.0,1033.0,758.0,200.0,77.0,113.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,7.0,7.0,33.0,0.0,From main system,Good,Good,"Solid, limited insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 33% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,"mechanical, extract only","2, Chippendayle Drive, Harrietsham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1996-2002,2015-02-19 14:57:21,owner-occupied,,,200003703013.0,Address Matched +1710531839922019061909485233818921,"5, Lott Avenue",Boughton Monchelsea,,ME17 4SJ,2308373678,B,A,84,94,House,End-Terrace,2019-06-19,E07000110,E14000804,Kent,2019-06-19,new dwelling,85,94,88,23.0,1.7,15,0.5,78.0,78.0,268.0,270.0,98.0,54.0,113.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.14 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.18 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.1 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"5, Lott Avenue, Boughton Monchelsea",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2019-06-19 09:48:52,unknown,4.0,4.0,10094441226.0,Address Matched +1384692419922015111214530230228355,Flat 45,Miller House,43-51 Lower Stone Street,ME15 6GB,5363150478,B,B,82,82,Flat,NO DATA!,2015-11-12,E07000110,E14000804,Kent,2015-11-12,none of the above,86,86,103,103.0,1.0,18,1.0,38.0,38.0,203.0,203.0,71.0,71.0,55.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Good,Good,Average thermal transmittance 0.68 W/m-¦K,Average,Average,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Flat 45, Miller House, 43-51 Lower Stone Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2015-11-12 14:53:02,unknown,4.0,4.0,10091196142.0,Address Matched +459265819222011052016455074208089,"19, Trinity Way",,,ME15 9FY,8786114768,B,B,82,82,House,Mid-Terrace,2011-05-20,E07000110,E14000700,Kent,2011-05-20,new dwelling,86,87,90,86.0,1.2,17,1.1,51.0,38.0,247.0,249.0,42.0,42.0,70.46,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,7.0,,"From main system, plus solar",Very Good,Very Good,Average thermal transmittance 0.18 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m?K,Very Good,Very Good,"Room heaters, electric",,,Average thermal transmittance 0.10 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in 64% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.31,,,NO DATA!,"19, Trinity Way",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2011-05-20 16:45:50,,11.0,7.0,10014311447.0,Address Matched +1417566039222016030819154532558796,Flat 4,"1-27, St. Faiths Street",,ME14 1LJ,9364382478,C,C,69,69,Flat,NO DATA!,2016-02-25,E07000110,E14000804,Kent,2016-03-08,marketed sale,72,72,176,176.0,2.3,30,2.3,52.0,52.0,351.0,351.0,289.0,289.0,79.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Poor,Very Poor,(other premises below),,,Fully double glazed,Good,Good,Average thermal transmittance 0.42 W/m-¦K,Good,Good,,,,(other premises above),,,"Boiler and radiators, electric",Very Poor,Very Poor,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"Flat 4, 1-27, St. Faiths Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2016-03-08 19:15:45,unknown,10.0,10.0,10091195058.0,Address Matched +52de867239fd12be2bc5efa9193376414ab7193b29b563350a5b93f9bb357b15,1 MORTON CLOSE,,,ME15 9LY,10001325887,C,B,76,89,House,End-Terrace,2021-07-09,E07000110,E14000700,Kent,2021-07-09,marketed sale,76,88,155,64.0,2.0,27,0.9,68.0,68.0,352.0,352.0,81.0,55.0,75.0,Single,Y,,,,,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Suspended, insulated (assumed)",,,Fully double glazed,Good,Good,"Timber frame, as built, insulated (assumed)",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.4,0.0,N,natural,1 MORTON CLOSE,Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2003-2006,2021-07-09 12:52:32,Owner-occupied,10.0,,200003725171.0,Energy Assessor +456308062452013111516273599979976,"2, Gleneagles Drive",,,ME15 6FH,9644293768,D,B,63,88,House,Semi-Detached,2013-11-14,E07000110,E14000804,Kent,2013-11-15,none of the above,62,90,229,47.0,3.1,44,0.7,60.0,43.0,530.0,334.0,123.0,72.0,70.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,4.0,4.0,60.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, partial insulation (assumed)",Average,Average,,,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 60% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"2, Gleneagles Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1976-1982,2013-11-15 16:27:35,owner-occupied,10.0,6.0,200003681535.0,Address Matched +863034749062012120420180343748762,"13, Rayleigh Close",Allington,,ME16 0UP,6403463078,C,B,72,89,House,Semi-Detached,2012-12-04,E07000110,E14000804,Kent,2012-12-04,marketed sale,73,91,167,41.0,2.1,32,0.6,72.0,41.0,320.0,311.0,113.0,71.0,65.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,22.0,0.0,From main system,Good,Good,"Suspended, limited insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 22% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"13, Rayleigh Close, Allington",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2012-12-04 20:18:03,owner-occupied,9.0,2.0,200003659761.0,Address Matched +1158844359502014061719435229449838,Springfields,Pitt Road,Kingswood,ME17 3NR,1517854278,G,C,11,69,Bungalow,Detached,2014-06-17,E07000110,E14000700,Kent,2014-06-17,assessment for green deal,25,73,348,90.0,18.0,78,4.8,183.0,91.0,5183.0,1750.0,387.0,164.0,224.0,Single,N,NODATA!,,,2102.0,100.0,double glazing installed before 2002,Normal,4.0,5.0,5.0,0.0,0.0,From main system,Poor,Average,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 25 mm loft insulation",Poor,Poor,"Boiler and radiators, LPG",Poor,Average,"Programmer, no room thermostat",Very Poor,Very Poor,No low energy lighting,Very Poor,Very Poor,LPG (not community),0.0,NO DATA!,,,0.0,,natural,"Springfields, Pitt Road, Kingswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1900-1929,2014-06-17 19:43:52,owner-occupied,25.0,0.0,200003725544.0,Address Matched +1708150559042019032516153966312058,"46, Willow Rise",Downswood,,ME15 8XR,15753678,C,C,69,76,Flat,Enclosed End-Terrace,2019-03-25,E07000110,E14000700,Kent,2019-03-25,marketed sale,57,66,375,295.0,2.7,63,2.1,66.0,40.0,386.0,276.0,143.0,143.0,43.0,dual,N,1st,N,,2402.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,33.0,0.0,"Electric immersion, off-peak",Average,Poor,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Timber frame, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,(another dwelling above),,,Electric storage heaters,Poor,Very Poor,Automatic charge control,Average,Average,Low energy lighting in 33% of fixed outlets,Average,Average,electricity (not community),0.0,unheated corridor,3.21,,,N,natural,"46, Willow Rise, Downswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2019-03-25 16:15:39,owner-occupied,,,200003691648.0,Address Matched +596780743932011073008594560768102,"7, Winchs Garth",Staplehurst,,TN12 0QX,4200124868,D,C,68,71,Bungalow,End-Terrace,2011-07-30,E07000110,E14000804,Kent,2011-07-30,rental (social),70,73,218,195.0,2.1,42,1.9,59.0,29.0,368.0,351.0,74.0,74.0,51.14,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,2.28,0.0,,natural,"7, Winchs Garth, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1950-1966,2011-07-30 08:59:45,rental (social),6.0,0.0,200003728016.0,Address Matched +518045229942010072420121971802148,"15, Springwood Close",,,ME16 9PA,7904828768,C,C,70,77,House,Mid-Terrace,2010-07-24,E07000110,E14000804,Kent,2010-07-24,rental (private),65,74,253,188.0,3.0,42,2.2,49.0,38.0,410.0,350.0,173.0,112.0,71.4,Single,Y,NO DATA!,,,2107.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,70.0,0.0,"From main system, no cylinder thermostat",Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 70% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.3,0.0,N,natural,"15, Springwood Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2010-07-24 20:12:19,rental (private),,,200003726614.0,Address Matched +1544120738812017051608563797930658,"20, Marston Drive",,,ME14 5NJ,6853871578,D,B,64,82,House,Semi-Detached,2017-05-12,E07000110,E14000804,Kent,2017-05-16,marketed sale,61,81,234,98.0,3.5,41,1.5,86.0,57.0,568.0,498.0,201.0,88.0,86.0,Unknown,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,1.0,4.0,4.0,50.0,0.0,"From main system, no cylinder thermostat",Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"20, Marston Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2017-05-16 08:56:37,owner-occupied,,,200003716718.0,Address Matched +208640180902008122217454658589588,"2, St. Martins Close",Detling,,ME14 3JS,8907585568,D,C,68,75,Bungalow,Semi-Detached,2008-12-18,E07000110,E14000700,Kent,2008-12-22,rental (social),64,71,284,225.0,2.9,47,2.3,46.0,27.0,352.0,295.0,92.0,82.0,60.49,Single,Y,NO DATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,29.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Poor,Poor,Low energy lighting in 29% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.41,0.0,N,natural,"2, St. Martins Close, Detling",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2008-12-22 17:45:46,rental (social),,,200003693986.0,Address Matched +1262830689722015013023163251608665,"50, Oak Lane",Headcorn,,TN27 9TG,6521881378,F,B,31,81,Bungalow,Detached,2015-01-30,E07000110,E14000700,Kent,2015-01-30,marketed sale,15,58,755,250.0,10.0,128,3.3,113.0,56.0,1342.0,538.0,168.0,89.0,79.0,dual,N,NODATA!,,,2401.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,0.0,0.0,"Electric immersion, off-peak",Average,Poor,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,Portable electric heaters (assumed),,,"Pitched, 150 mm loft insulation",Good,Good,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,No low energy lighting,Very Poor,Very Poor,electricity (not community),0.0,NO DATA!,,,,N,natural,"50, Oak Lane, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,England and Wales: 1930-1949,2015-01-30 23:16:32,owner-occupied,,,10094442480.0,Address Matched +1601408089642018012910352351560898,"9, Tolhurst Way",Lenham,,ME17 2BY,1613785578,B,A,84,95,House,Mid-Terrace,2016-08-01,E07000110,E14000700,Kent,2018-01-29,new dwelling,86,96,82,14.0,1.5,14,0.3,73.0,73.0,228.0,228.0,103.0,67.0,104.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.12 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.18 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"9, Tolhurst Way, Lenham",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2018-01-29 10:35:23,unknown,13.0,13.0,10093303679.0,Address Matched +649564693932011070221271789068904,Orchard House,Dunn Street Road,Bredhurst,ME7 3LY,9479908868,G,E,14,41,House,Detached,2011-07-02,E07000110,E14000700,Kent,2011-07-02,marketed sale,20,46,688,392.0,11.0,116,5.9,68.0,68.0,1964.0,1152.0,241.0,144.0,94.8,Single,Y,NODATA!,,,2102.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,57.0,2.0,"From main system, no cylinder thermostat",Poor,Poor,"To external air, limited insulation (assumed)",,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, 12 mm loft insulation",Very Poor,Very Poor,"Boiler and radiators, mains gas",Average,Average,"Programmer, no room thermostat",Very Poor,Very Poor,Low energy lighting in 57% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,2.51,0.0,,natural,"Orchard House, Dunn Street Road, Bredhurst",Maidstone,Faversham and Mid Kent,GILLINGHAM,England and Wales: 1900-1929,2011-07-02 21:27:17,owner-occupied,7.0,4.0,200003694283.0,Address Matched +0ab1f748a7d006d56e3f9eab98298c2efce7dfca18d2e9bd46548fb9243cfaea,59 Waterlow Road,,,ME14 2TP,10001530611,D,C,58,80,House,Mid-Terrace,2021-09-21,E07000110,E14000804,Kent,2021-09-21,marketed sale,50,75,302,132.0,4.8,53,2.1,72.0,72.0,825.0,568.0,81.0,54.0,90.0,Single,Y,,,,,100.0,double glazing installed during or after 2002,Normal,2.0,5.0,5.0,100.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Sandstone or limestone, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.21,0.0,N,natural,59 Waterlow Road,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2021-09-21 19:59:45,Owner-occupied,13.0,,200003703082.0,Energy Assessor +391501080062009110223202889228621,"116, Cambridge Crescent",,,ME15 7NQ,2881839668,C,C,71,72,House,Semi-Detached,2009-11-02,E07000110,E14000700,Kent,2009-11-02,rental (social),67,67,240,238.0,3.0,40,2.9,46.0,37.0,431.0,433.0,114.0,114.0,73.63,Single,Y,NO DATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,4.0,4.0,75.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,,0.0,N,natural,"116, Cambridge Crescent",Maidstone,Faversham and Mid Kent,MAIDSTONE,,2009-11-02 23:20:28,rental (social),,,200003712485.0,Address Matched +1380602229642015103019280545052218,"The Oast, Cradducks Farm",Goudhurst Road,Staplehurst,TN12 0HQ,2627120478,D,A,67,103,House,Detached,2015-10-29,E07000110,E14000804,Kent,2015-10-30,rental (private),61,95,147,-42.0,4.1,38,0.2,91.0,94.0,551.0,431.0,167.0,87.0,110.0,dual,N,NODATA!,,,2106.0,0.0,not defined,Normal,2.0,7.0,7.0,78.0,0.0,From main system,Average,Average,"Solid, insulated (assumed)",NO DATA!,,Single glazed,Very Poor,Very Poor,"Solid brick, as built, insulated (assumed)",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, oil",Average,Average,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 78% of fixed outlets,Very Good,Very Good,oil (not community),0.0,NO DATA!,,,,N,natural,"The Oast, Cradducks Farm, Goudhurst Road, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 2007 onwards,2015-10-30 19:28:05,rental (private),,,10014313909.0,Address Matched +1008972151732013091716172290978705,"29, Hadlow Close",Oakwood Park,,ME16 8FS,5570793178,B,B,84,84,House,Mid-Terrace,2013-09-17,E07000110,E14000804,Kent,2013-09-17,new dwelling,87,87,80,80.0,1.3,15,1.3,52.0,52.0,240.0,240.0,95.0,95.0,88.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.12 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.19 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"29, Hadlow Close, Oakwood Park",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2013-09-17 16:17:22,NO DATA!,0.0,0.0,10014314540.0,Address Matched +1550118039062017060812572342338723,"12, Colyn Drive",,,ME15 8FZ,2490322578,B,A,81,93,House,Detached,2017-06-07,E07000110,E14000700,Kent,2017-06-08,new dwelling,83,94,106,24.0,1.6,19,0.4,57.0,57.0,278.0,280.0,101.0,54.0,87.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"12, Colyn Drive",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2017-06-08 12:57:23,unknown,1.0,1.0,10091193612.0,Address Matched +1793102654812020031722214027900160,"16, Reeves Close",Staplehurst,,TN12 0NN,1025479678,D,B,65,82,House,Semi-Detached,2020-03-17,E07000110,E14000804,Kent,2020-03-17,marketed sale,65,82,211,96.0,3.2,37,1.5,114.0,74.0,609.0,532.0,125.0,81.0,86.0,dual,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,5.0,5.0,46.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Average,Average,"Room heaters, electric",,,"Pitched, 270 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 46% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"16, Reeves Close, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1967-1975,2020-03-17 22:21:40,owner-occupied,,,200003678270.0,Address Matched +278833719552009060817385204210766,Flat 2 Llandaff House,Nottingham Avenue,,ME15 7PP,7618941668,C,C,79,80,Flat,Semi-Detached,2009-04-24,E07000110,E14000700,Kent,2009-06-08,rental (social),77,78,175,169.0,1.8,29,1.8,49.0,31.0,264.0,267.0,77.0,77.0,62.6,Single,Y,1st,Y,2.0,2106.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,40.0,0.0,From main system,Very Good,Very Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 40% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.37,0.0,N,natural,"Flat 2 Llandaff House, Nottingham Avenue",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2009-06-08 17:38:52,rental (social),,,200003713142.0,Address Matched +1572714941332017090616082222078205,8 Burgoyne Court,Invicta Park,,ME14 2PL,4582283578,D,B,68,87,House,Mid-Terrace,2017-09-06,E07000110,E14000804,Kent,2017-09-06,rental (social),69,88,204,61.0,2.6,36,0.8,72.0,56.0,459.0,374.0,141.0,79.0,72.0,dual,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,70.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 70% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"8 Burgoyne Court, Invicta Park",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2017-09-06 16:08:22,rental (social),,,200003723922.0,Address Matched +535a18b1e58a09b986b95fd97288cf9533ccfd704af32fd808c051e6288fd701,68 Gilbert Way,,,ME17 3TT,10001571378,B,A,82,96,House,End-Terrace,2021-09-02,E07000110,E14000700,Kent,2021-09-02,new dwelling,86,99,103,-10.0,1.1,18,-0.1,55.0,55.0,202.0,202.0,61.0,37.0,60.0,standard tariff,,,N,,,100.0,,,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.33,,,,68 Gilbert Way,Maidstone,Faversham and Mid Kent,MAIDSTONE,2017,2021-09-02 09:27:28,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,7.0,,10094441905.0,Energy Assessor +224412581252009021218372405910152,"18, The Grove",Bearsted,,ME14 4JB,1259157568,D,C,63,73,House,Semi-Detached,2009-02-12,E07000110,E14000700,Kent,2009-02-12,marketed sale,65,74,232,171.0,5.2,34,3.8,91.0,76.0,787.0,583.0,154.0,134.0,155.05,Single,Y,NO DATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,1.0,8.0,8.0,80.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, wood logs",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Poor,Poor,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.43,0.0,N,natural,"18, The Grove, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2009-02-12 18:37:24,owner-occupied,,,200003692539.0,Address Matched +477746409332017110112021432068598,7 Claire House,Lesley Place,Buckland Hill,ME16 0UE,832545768,C,C,78,78,Flat,End-Terrace,2017-11-01,E07000110,E14000804,Kent,2017-11-01,marketed sale,66,66,375,375.0,1.7,63,1.7,24.0,24.0,148.0,148.0,122.0,122.0,26.0,dual,N,2nd,N,,2402.0,100.0,"double glazing, unknown install date",Normal,0.0,1.0,1.0,100.0,0.0,"Electric immersion, off-peak",Average,Poor,(another dwelling below),NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,Electric storage heaters,Poor,Very Poor,Automatic charge control,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,unheated corridor,6.0,,,N,natural,"7 Claire House, Lesley Place, Buckland Hill",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2017-11-01 12:02:14,owner-occupied,,,200003721308.0,Address Matched +731795299942011121615353691390618,"61, Gladstone Road",Penenden Heath,,ME14 2AX,5937493968,D,D,57,58,House,Mid-Terrace,2011-12-09,E07000110,E14000804,Kent,2011-12-16,marketed sale,53,54,302,296.0,3.9,58,3.9,59.0,38.0,669.0,672.0,84.0,84.0,67.64,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,43.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 43% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,2.4,0.0,,natural,"61, Gladstone Road, Penenden Heath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2011-12-16 15:35:36,owner-occupied,7.0,3.0,200003706106.0,Address Matched +1244048099022014120815285970988914,"9, Park Wood Walk",,,ME15 9ZT,1707950378,B,A,82,95,House,Semi-Detached,2014-12-08,E07000110,E14000700,Kent,2014-12-08,new dwelling,85,98,98,5.0,1.3,17,0.1,50.0,50.0,245.0,245.0,82.0,51.0,74.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.14 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.18 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"9, Park Wood Walk",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2014-12-08 15:28:59,unknown,10.0,10.0,10014315805.0,Address Matched +1559722199342017092818570655230118,"8, Wood Court",,,ME16 9DD,1349092578,C,B,77,90,House,End-Terrace,2017-05-09,E07000110,E14000804,Kent,2017-09-28,rental (social),77,90,146,43.0,1.8,26,0.6,51.0,51.0,290.0,290.0,102.0,66.0,68.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Very Good,Very Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"8, Wood Court",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2017-09-28 18:57:06,rental (social),,,10022900391.0,Address Matched +756156819962013092009111746838357,"26, Bannister Road",Penenden Heath,,ME14 2JZ,5402106968,C,B,71,85,House,Semi-Detached,2013-09-17,E07000110,E14000804,Kent,2013-09-20,marketed sale,69,85,159,65.0,3.3,31,1.4,64.0,64.0,591.0,454.0,96.0,68.0,108.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,5.0,5.0,90.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 90% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"26, Bannister Road, Penenden Heath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2013-09-20 09:11:17,owner-occupied,10.0,9.0,200003707176.0,Address Matched +537d96aa851b2642838cc8e240299de9fc7ee2be3e110a165217c653d8fb7e93,275 Boxley Road,Penenden Heath,,ME14 2AE,10001445453,D,C,60,79,House,Detached,2021-09-07,E07000110,E14000804,Kent,2021-09-08,marketed sale,51,74,260,125.0,5.6,47,2.8,87.0,87.0,931.0,659.0,129.0,79.0,119.0,Single,Y,,,,,77.0,"double glazing, unknown install date",Normal,0.0,6.0,6.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Partial double glazing,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.5,0.0,N,natural,"275 Boxley Road, Penenden Heath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2021-09-08 15:36:00,Owner-occupied,13.0,,200003706249.0,Energy Assessor +1034174490732013102920235377278594,Silver Stone Cottage,Lenham Road,Headcorn,TN27 9LE,9447575178,D,B,59,88,House,Semi-Detached,2013-10-29,E07000110,E14000700,Kent,2013-10-29,FiT application,51,82,227,61.0,4.8,51,1.6,59.0,59.0,911.0,519.0,172.0,110.0,96.0,dual,N,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,4.0,4.0,100.0,0.0,From main system,Good,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, wood logs",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, oil",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,oil (not community),0.0,NO DATA!,,,0.0,,natural,"Silver Stone Cottage, Lenham Road, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,England and Wales: 1900-1929,2013-10-29 20:23:53,owner-occupied,9.0,9.0,200003700917.0,Address Matched +537f225d4e87be3b7b983fd3a1202ec6598a72f7ebe57795b6b3610981a62368,56 CUMBERLAND AVENUE,,,ME15 7JJ,10001515079,E,B,54,83,House,Mid-Terrace,2021-06-28,E07000110,E14000700,Kent,2021-07-01,ECO assessment,51,82,339,106.0,4.1,60,1.3,117.0,58.0,667.0,471.0,204.0,79.0,69.0,Single,Y,,,,,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,0.0,0.0,"From main system, no cylinder thermostat",Average,Average,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,"Pitched, insulated (assumed)",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,,,2.75,0.0,N,natural,56 CUMBERLAND AVENUE,Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2021-07-01 10:11:48,Rented (social),8.0,,200003714143.0,Energy Assessor +1725890754212019060322463198710864,"47, Grace Avenue",,,ME16 0BS,8423484678,D,B,60,83,House,Semi-Detached,2019-05-30,E07000110,E14000804,Kent,2019-06-03,rental (social),53,80,284,103.0,4.0,50,1.5,59.0,59.0,670.0,447.0,128.0,77.0,80.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"47, Grace Avenue",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2019-06-03 22:46:31,rental (social),,,200003658486.0,Address Matched +668275949922011081913290029518459,"267a, Boxley Road",Penenden Heath,,ME14 2AE,5200449868,D,D,57,59,Flat,NO DATA!,2011-08-19,E07000110,E14000804,Kent,2011-08-19,marketed sale,53,54,280,273.0,4.4,54,4.3,75.0,47.0,748.0,753.0,87.0,87.0,82.14,Single,Y,1st,Y,,2106.0,100.0,double glazing installed before 2002,Normal,2.0,3.0,3.0,38.0,2.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 38% of fixed outlets,Average,Average,mains gas (not community),0.0,no corridor,,2.17,0.0,,natural,"267a, Boxley Road, Penenden Heath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2011-08-19 13:29:00,owner-occupied,8.0,3.0,200003707202.0,Address Matched +166273290612008102122531900289155,"22, Guston Road",,,ME14 5QL,1568003568,C,C,70,77,House,End-Terrace,2008-10-20,E07000110,E14000804,Kent,2008-10-21,rental (private),66,74,247,187.0,3.0,41,2.3,63.0,33.0,349.0,285.0,108.0,92.0,73.7,Single,Y,NO DATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,10.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 75mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Poor,Poor,Low energy lighting in 10% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.34,0.0,N,natural,"22, Guston Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1976-1982,2008-10-21 22:53:19,rental (private),,,200003671696.0,Address Matched +551964768412010101217192996909880,"6, Haydon Close",,,ME16 0WG,8070860868,D,D,59,62,House,Detached,2010-10-12,E07000110,E14000804,Kent,2010-10-12,marketed sale,68,70,243,226.0,3.0,38,2.7,61.0,44.0,413.0,388.0,311.0,311.0,76.98,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,60.0,0.0,"Electric immersion, standard tariff",Very Poor,Poor,"Suspended, insulated (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 60% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.25,0.0,N,natural,"6, Haydon Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2010-10-12 17:19:29,owner-occupied,,,10022896768.0,Address Matched +1480199779962016091616283337468166,"28, Murdoch Chase",Coxheath,,ME17 4AA,6325727478,B,A,83,95,House,NO DATA!,2016-09-16,E07000110,E14000804,Kent,2016-09-16,new dwelling,86,97,89,5.0,1.3,16,0.1,57.0,57.0,235.0,235.0,84.0,49.0,82.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.14 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.20 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"28, Murdoch Chase, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2016-09-16 16:28:33,unknown,10.0,10.0,10093302684.0,Address Matched +1609780757452018022609342394280556,"263, Tonbridge Road",,,ME16 8ND,5670746578,E,B,53,83,House,Mid-Terrace,2018-02-21,E07000110,E14000804,Kent,2018-02-26,marketed sale,45,79,316,100.0,6.0,56,1.9,138.0,69.0,1038.0,545.0,87.0,55.0,107.0,Unknown,Y,NODATA!,,,2102.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,0.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"263, Tonbridge Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2018-02-26 09:34:23,owner-occupied,,,200003657483.0,Address Matched +513321524512010071500154299900478,"44a, Wallis Avenue",,,ME15 9LB,4831497768,C,C,77,78,Flat,Semi-Detached,2010-07-15,E07000110,E14000700,Kent,2010-07-15,rental (social),74,74,203,199.0,2.1,34,2.0,46.0,33.0,341.0,343.0,86.0,86.0,61.0,Single,Y,1st,Y,2.0,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,60.0,0.0,From main system,Very Good,Very Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 60% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.31,0.0,N,natural,"44a, Wallis Avenue",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2010-07-15 00:15:42,rental (social),,,200003683169.0,Address Matched +1725893389442019060314194766410978,"68, Betsham Road",,,ME15 8TX,8487284678,C,B,69,87,House,Semi-Detached,2019-06-03,E07000110,E14000700,Kent,2019-06-03,ECO assessment,66,85,215,78.0,3.1,38,1.2,60.0,60.0,519.0,386.0,104.0,70.0,81.0,Unknown,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, partial insulation (assumed)",Average,Average,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"68, Betsham Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1976-1982,2019-06-03 14:19:47,owner-occupied,,,200003681048.0,Address Matched +1744541329952019081717255691910665,"22, Micawber Close",,,ME5 9JZ,6566916678,D,B,66,83,House,Detached,2019-08-17,E07000110,E14000700,Kent,2019-08-17,marketed sale,62,80,228,105.0,3.7,40,1.7,88.0,88.0,607.0,483.0,133.0,81.0,93.0,dual,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,1.0,6.0,6.0,83.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 83% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"22, Micawber Close",Maidstone,Faversham and Mid Kent,CHATHAM,England and Wales: 1983-1990,2019-08-17 17:25:56,owner-occupied,,,200003708571.0,Address Matched +889404519222013022713560755228317,1 Cart Lodge Oast,The Green,Boughton Monchelsea,ME17 4LU,1565155078,D,B,58,87,House,Mid-Terrace,2013-02-22,E07000110,E14000700,Kent,2013-02-27,unknown,54,87,255,56.0,4.2,49,1.0,73.0,49.0,711.0,382.0,114.0,62.0,86.0,Single,Y,NODATA!,,,2102.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,50.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, partial insulation (assumed)",Average,Average,,,,"Pitched, insulated at rafters",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"1 Cart Lodge Oast, The Green, Boughton Monchelsea",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1976-1982,2013-02-27 13:56:07,unknown,20.0,10.0,10022901634.0,Address Matched +287812361152009052015030101210362,2 Bocton House,Haste Hill Road,Boughton Monchelsea,ME17 4LL,3253112668,B,B,81,82,Flat,Semi-Detached,2009-05-20,E07000110,E14000700,Kent,2009-05-20,rental (social),79,80,184,179.0,1.4,31,1.4,34.0,22.0,227.0,229.0,69.0,69.0,47.25,Single,Y,1st,Y,2.0,2106.0,100.0,double glazing installed before 2002,Normal,0.0,2.0,2.0,50.0,0.0,From main system,Very Good,Very Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,unheated corridor,4.0,2.28,0.0,N,natural,"2 Bocton House, Haste Hill Road, Boughton Monchelsea",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2009-05-20 15:03:01,rental (social),,,200003674789.0,Address Matched +1384528351652015111214525895959148,Flat 42,Miller House,43-51 Lower Stone Street,ME15 6GB,1814150478,B,B,81,81,Flat,NO DATA!,2015-11-12,E07000110,E14000804,Kent,2015-11-12,none of the above,84,84,118,118.0,1.1,21,1.1,36.0,36.0,222.0,222.0,70.0,70.0,52.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Good,Good,Average thermal transmittance 0.71 W/m-¦K,Average,Average,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Flat 42, Miller House, 43-51 Lower Stone Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2015-11-12 14:52:58,unknown,4.0,4.0,10091196139.0,Address Matched +53d0d277d78b39f7a42f762b604e239194eeb7fabdc44d5aab473323189cbe79,7 WELLINGTON PLACE,PERRY STREET,,ME14 2RZ,10001636262,E,C,51,73,House,Mid-Terrace,2021-07-01,E07000110,E14000804,Kent,2021-07-01,ECO assessment,47,70,342,172.0,4.7,60,2.4,65.0,65.0,911.0,699.0,136.0,81.0,79.0,Single,Y,,,,,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,"Pitched, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.55,0.0,N,natural,"7 WELLINGTON PLACE, PERRY STREET",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2021-07-01 18:51:34,Rented (social),11.0,,200003669925.0,Energy Assessor +287690910302009051923352665219118,Annsfield,Lenham Forstal Road,Lenham Heath,ME17 2JG,2333512668,E,E,45,49,Bungalow,Detached,2009-05-19,E07000110,E14000700,Kent,2009-05-19,marketed sale,52,54,285,267.0,6.7,48,6.3,136.0,68.0,857.0,832.0,360.0,360.0,138.98,Single,N,NO DATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,2.0,5.0,5.0,0.0,2.0,"Electric immersion, standard tariff",Very Poor,Poor,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, wood logs",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, oil",Average,Average,"Programmer, room thermostat and TRVs",Average,Average,No low energy lighting,Very Poor,Very Poor,oil - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,3.37,0.0,N,natural,"Annsfield, Lenham Forstal Road, Lenham Heath",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2009-05-19 23:35:26,owner-occupied,,,10022892442.0,Address Matched +759382159022012030912421326488622,"17, Green Lane",Platts Heath,,ME17 2NS,2287526968,E,C,54,70,Bungalow,Semi-Detached,2012-03-08,E07000110,E14000700,Kent,2012-03-09,marketed sale,43,61,303,195.0,5.2,75,3.3,72.0,39.0,570.0,403.0,267.0,143.0,68.65,Unknown,N,NODATA!,,,2107.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,17.0,0.0,"From main system, no cylinderstat",Very Poor,Very Poor,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, oil",Average,Average,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 17% of fixed outlets,Poor,Poor,oil (not community),0.0,NO DATA!,,2.44,0.0,,natural,"17, Green Lane, Platts Heath",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1976-1982,2012-03-09 12:42:13,owner-occupied,6.0,1.0,200003703771.0,Address Matched +1488080889642018082410050442782048,8 Shepherds Close,Sutton Valence,,ME17 3FQ,4666387478,B,A,83,94,House,End-Terrace,2018-08-24,E07000110,E14000700,Kent,2018-08-24,new dwelling,84,95,94,21.0,1.7,17,0.4,67.0,67.0,251.0,253.0,104.0,57.0,100.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.14 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.26 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"8 Shepherds Close, Sutton Valence",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2018-08-24 10:05:04,owner-occupied,10.0,10.0,10093303763.0,Address Matched +1491559909102018092701020441882368,"32, Greystones Road",Bearsted,,ME15 8PD,6132608478,C,B,71,86,House,Semi-Detached,2018-09-26,E07000110,E14000700,Kent,2018-09-27,marketed sale,69,84,201,87.0,2.6,35,1.2,73.0,54.0,440.0,402.0,97.0,65.0,74.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,64.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 64% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"32, Greystones Road, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2018-09-27 01:02:04,owner-occupied,,,200003690865.0,Address Matched +1439783260452016050911384394060846,"14, Hadlow Road",,,ME14 5PY,8610044478,C,B,70,87,House,Mid-Terrace,2016-05-09,E07000110,E14000804,Kent,2016-05-09,marketed sale,68,86,201,69.0,2.7,35,1.0,51.0,51.0,486.0,393.0,119.0,69.0,75.0,Single,Y,NODATA!,,,2107.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,2.4,,N,natural,"14, Hadlow Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2016-05-09 11:38:43,owner-occupied,,,200003671390.0,Address Matched +61687992132009021811033172968306,3 Wexford Place,,,ME15 9GF,9632308568,B,B,81,83,House,End-Terrace,2009-02-18,E07000110,E14000700,Kent,2009-02-18,new dwelling,81,82,129,120.0,2.1,0,2.0,92.0,52.0,259.0,264.0,95.0,95.0,37.56,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,3.0,,SAP05:Hot-Water,,,Average thermal transmittance 0.20 W/m²K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.32 W/m²K,Good,Good,SAP05:Secondary-Heating,,,Average thermal transmittance 0.19 W/m²K,Good,Good,SAP05:Main-Heating,,,SAP05:Main-Heating-Controls,,,Low energy lighting in 23% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,-1.0,NO DATA!,,2.4,,,NO DATA!,3 Wexford Place,Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2009-02-18 11:03:31,,13.0,3.0,10022895453.0,Address Matched +53f5193aad6214612027be981eebfda09ddb52d950cb54581c25c9a9fdb08472,Apartment 11,7 Bazalgette Rise,,ME16 8FJ,5852484668,B,B,82,82,Flat,Mid-Terrace,2021-08-27,E07000110,E14000804,Kent,2021-08-27,rental,87,87,99,99.0,0.8,17,0.8,47.0,47.0,166.0,166.0,68.0,68.0,48.0,Single,Y,03,N,,,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,100.0,0.0,From main system,Good,Good,(another dwelling below),,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,9.16,2.56,0.0,N,natural,"Apartment 11, 7 Bazalgette Rise",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007-2011,2021-08-27 13:48:13,Rented (social),11.0,,10014308170.0,Energy Assessor +1584551769242017102313452451432178,"51, Fullingpits Avenue",,,ME16 9DZ,8254464578,B,B,89,90,House,Detached,2017-10-23,E07000110,E14000804,Kent,2017-10-23,new dwelling,90,91,48,39.0,1.1,9,0.9,72.0,72.0,253.0,253.0,86.0,51.0,124.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.18 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"51, Fullingpits Avenue",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2017-10-23 13:45:24,unknown,20.0,20.0,10093303451.0,Address Matched +1a70073fbd17388014fd445927b4e278f49a7ce9cea5e40b216f31cec11c3e1b,3 ARLOTT CLOSE,,,ME14 2XJ,10001458679,D,B,68,84,House,Mid-Terrace,2021-06-26,E07000110,E14000804,Kent,2021-07-30,not sale or rental,64,81,203,94.0,3.5,36,1.7,89.0,89.0,527.0,464.0,163.0,81.0,97.0,Single,Y,,,,,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,86.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Roof room(s), insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 86% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.8,0.0,N,natural,3 ARLOTT CLOSE,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1991-1995,2021-07-30 15:17:43,Rented (social),14.0,,200003669981.0,Energy Assessor +847254939962012101817485352668832,The Old Cottage,Upper Street,Hollingbourne,ME17 1UJ,3524352078,F,D,30,66,House,Semi-Detached,2012-10-16,E07000110,E14000700,Kent,2012-10-18,marketed sale,29,60,467,222.0,12.0,75,5.4,116.0,76.0,2134.0,1274.0,153.0,76.0,160.0,dual,Y,NODATA!,,,2106.0,20.0,secondary glazing,Normal,1.0,7.0,7.0,44.0,3.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Some secondary glazing,Poor,Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, insulated at rafters",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 44% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"The Old Cottage, Upper Street, Hollingbourne",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2012-10-18 17:48:53,owner-occupied,16.0,7.0,200003701863.0,Address Matched +1596323559702017121414175753539148,Flat 13 The Cooperage,"10, Buckland Road",,ME16 0SL,720255578,B,B,81,81,Flat,Mid-Terrace,2017-12-14,E07000110,E14000804,Kent,2017-12-14,new dwelling,88,88,131,131.0,0.6,23,0.6,26.0,26.0,128.0,128.0,70.0,70.0,28.0,standard tariff,,top floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.26 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.10 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Flat 13 The Cooperage, 10, Buckland Road",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2017-12-14 14:17:57,owner-occupied,5.0,5.0,10093302849.0,Address Matched +854774509902012110816054808320088,1 South Green Farm Cottages,South Green,,ME9 7RR,2929403078,F,C,36,80,House,Semi-Detached,2012-11-08,E07000110,E14000700,Kent,2012-11-08,rental (private),30,74,309,89.0,12.0,72,3.7,139.0,73.0,1952.0,871.0,409.0,105.0,174.0,Single,N,NODATA!,,,2106.0,95.0,double glazing installed during or after 2002,Normal,2.0,6.0,6.0,10.0,1.0,"From main system, no cylinder thermostat",Poor,Very Poor,"Solid, no insulation (assumed)",,,Mostly double glazing,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, 25 mm loft insulation",Poor,Poor,"Boiler and radiators, oil",Average,Average,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 10% of fixed outlets,Poor,Poor,oil (not community),0.0,NO DATA!,,,0.0,,natural,"1 South Green Farm Cottages, South Green",Maidstone,Faversham and Mid Kent,SITTINGBOURNE,England and Wales: before 1900,2012-11-08 16:05:48,rental (private),30.0,3.0,200003715127.0,Address Matched +1454229592452016061611024494960441,"5, The Bartons",Staplehurst,,TN12 0EF,4179245478,B,B,89,90,House,Semi-Detached,2016-06-16,E07000110,E14000804,Kent,2016-06-16,new dwelling,90,92,49,39.0,0.9,9,0.7,70.0,70.0,232.0,232.0,104.0,67.0,108.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"5, The Bartons, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,NO DATA!,2016-06-16 11:02:44,owner-occupied,14.0,14.0,10014315504.0,Address Matched +919076731432014091917442623978205,"2, Blackthorn Walk",Harrietsham,,ME17 1FN,3593267078,B,B,90,91,House,End-Terrace,2014-09-19,E07000110,E14000700,Kent,2014-09-19,new dwelling,91,93,47,34.0,0.8,9,0.6,55.0,55.0,252.0,252.0,114.0,78.0,91.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.17 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"2, Blackthorn Walk, Harrietsham",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2014-09-19 17:44:26,owner-occupied,12.0,12.0,10014314963.0,Address Matched +762704759942012031717275292629338,"297, Tonbridge Road",,,ME16 8ND,6978156968,D,D,58,65,House,Mid-Terrace,2012-03-17,E07000110,E14000804,Kent,2012-03-17,marketed sale,56,65,308,244.0,3.4,59,2.7,67.0,33.0,560.0,465.0,92.0,92.0,57.43,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,0.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, mains gas",,,"Pitched, no insulation",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,2.51,0.0,,natural,"297, Tonbridge Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2012-03-17 17:27:52,owner-occupied,7.0,0.0,200003657500.0,Address Matched +405709130542009120317435276017708,"13, Norway Terrace",Invicta Park,,ME14 2PH,8593530768,C,C,69,69,House,Mid-Terrace,2009-11-30,E07000110,E14000804,Kent,2009-12-03,marketed sale,67,67,241,241.0,2.8,39,2.8,35.0,35.0,483.0,483.0,87.0,87.0,70.7,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,100.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.3,0.0,N,natural,"13, Norway Terrace, Invicta Park",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2009-12-03 17:43:52,owner-occupied,,,200003723970.0,Address Matched +499514406032010061610422460968101,"9, Lucerne Street",,,ME14 1UE,150107768,C,C,75,76,House,Mid-Terrace,2010-06-15,E07000110,E14000804,Kent,2010-06-16,marketed sale,71,73,248,234.0,2.1,41,1.9,32.0,32.0,347.0,328.0,77.0,77.0,49.57,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,2.0,3.0,3.0,75.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.36,0.0,N,natural,"9, Lucerne Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2010-06-16 10:42:24,owner-occupied,,,200003698917.0,Address Matched +5406f223edee1d8792e479b7cde018f7ca93cbb08f9251f601ee53dd91329ab1,Flat 2,213 Boxley Road,Maidstone ,ME14 2TL,10001638356,C,C,76,76,Flat,Mid-Terrace,2021-07-14,E07000110,E14000804,Kent,2021-07-14,new dwelling,82,82,201,201.0,0.8,35,0.8,29.0,29.0,155.0,155.0,81.0,81.0,24.0,off-peak 7 hour,,1,N,,,100.0,,,,,,100.0,0.0,Community scheme,Good,Good,Average thermal transmittance 0.19 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.26 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,Community scheme,Good,Good,"Flat rate charging, programmer and TRVs",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,,0.0,,,2.37,,,,"Flat 2, 213 Boxley Road, Maidstone",Maidstone,Maidstone and The Weald,Kent,2020,2021-07-14 08:41:08,Owner-occupied,8.0,,10095449988.0,Address Matched +1613790579302018031309094151680788,"22, Trapfield Close",Bearsted,,ME14 4HT,353576578,D,C,65,75,House,Detached,2018-03-08,E07000110,E14000700,Kent,2018-03-13,marketed sale,70,85,161,72.0,2.6,29,1.2,74.0,74.0,676.0,417.0,87.0,88.0,89.0,dual,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,89.0,0.0,"From main system, plus solar",Very Good,Very Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 89% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,Y,natural,"22, Trapfield Close, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2018-03-13 09:09:41,owner-occupied,,,200003694837.0,Address Matched +1611132492832018022616023344278505,"1, Penny Close",Boughton Monchelsea,,ME17 4FL,9534556578,B,A,84,93,House,Detached,2018-02-26,E07000110,E14000804,Kent,2018-02-26,new dwelling,85,93,83,29.0,2.0,15,0.7,77.0,77.0,312.0,314.0,102.0,55.0,136.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.20 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.09 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"1, Penny Close, Boughton Monchelsea",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2018-02-26 16:02:33,unknown,10.0,10.0,10093304881.0,Address Matched +1746779769222019082914325096718451,"7, St. Andrews Road",,,ME16 9AN,5920636678,E,B,54,87,House,End-Terrace,2019-08-29,E07000110,E14000804,Kent,2019-08-29,marketed sale,47,86,334,69.0,4.7,59,1.0,108.0,61.0,788.0,369.0,108.0,66.0,79.0,Single,Y,NODATA!,,,2102.0,100.0,double glazing installed during or after 2002,Normal,1.0,4.0,4.0,22.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,Low energy lighting in 22% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"7, St. Andrews Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2019-08-29 14:32:50,owner-occupied,,,200003682670.0,Address Matched +1384681909062015111116145710928255,Flat 8 William Shipley House,Knightrider Court,Knightrider Street,ME15 6XD,5138050478,D,D,57,57,Flat,NO DATA!,2015-05-02,E07000110,E14000804,Kent,2015-11-11,new dwelling,61,61,281,281.0,2.8,48,2.8,51.0,51.0,527.0,527.0,236.0,236.0,59.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,,0.0,"Electric immersion, standard tariff",Very Poor,Poor,(other premises below),,,Fully double glazed,Good,Good,Average thermal transmittance 0.27 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,"Room heaters, electric",Very Poor,Poor,Programmer and room thermostats,Good,Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"Flat 8 William Shipley House, Knightrider Court, Knightrider Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2015-11-11 16:14:57,unknown,8.0,6.0,10091195496.0,Address Matched +1330054629062015061514554086588565,"7, Discovery Road",Bearsted,,ME15 8HF,6899266378,D,B,62,84,House,Detached,2015-06-08,E07000110,E14000700,Kent,2015-06-15,ECO assessment,54,81,259,98.0,5.3,46,2.0,70.0,70.0,978.0,577.0,119.0,79.0,116.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,8.0,8.0,100.0,0.0,From main system,Good,Good,"Solid, limited insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"7, Discovery Road, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1996-2002,2015-06-15 14:55:40,owner-occupied,,,200003722057.0,Address Matched +270039889842015021521421161059598,"33, Harvesters Way",Weavering,,ME14 5SH,6846880668,D,B,59,81,House,Semi-Detached,2015-02-11,E07000110,E14000700,Kent,2015-02-15,FiT application,53,78,303,121.0,3.7,53,1.5,68.0,46.0,623.0,505.0,164.0,69.0,69.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,50.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"33, Harvesters Way, Weavering",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2015-02-15 21:42:11,owner-occupied,,,200003716277.0,Address Matched +277053396832018061817494457968508,Top Flat,"46, Bower Lane",,ME16 8EJ,9877531668,E,C,43,77,Flat,Semi-Detached,2018-06-18,E07000110,E14000804,Kent,2018-06-18,rental (private),28,61,547,246.0,7.4,93,3.3,65.0,65.0,1065.0,332.0,271.0,158.0,80.0,dual,N,1st,Y,,2401.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,100.0,0.0,"Electric immersion, off-peak",Very Poor,Poor,(another dwelling below),NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,Portable electric heaters (assumed),,,"Pitched, 200 mm loft insulation",Good,Good,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,no corridor,,,,N,natural,"Top Flat, 46, Bower Lane",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2018-06-18 17:49:44,rental (private),,,200003668628.0,Address Matched +1129749779222015010611522642378184,"6, Alkham Road",,,ME14 5PA,8405742278,E,D,50,65,Maisonette,Mid-Terrace,2014-12-23,E07000110,E14000804,Kent,2015-01-06,none of the above,44,61,406,269.0,4.5,72,3.0,80.0,43.0,696.0,554.0,235.0,109.0,63.0,Single,Y,2nd,Y,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,14.0,0.0,"From main system, no cylinder thermostat",Poor,Poor,(another dwelling below),NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 14% of fixed outlets,Poor,Poor,mains gas (not community),0.0,no corridor,,,,N,natural,"6, Alkham Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2015-01-06 11:52:26,rental (private),,,200003716243.0,Address Matched +544a9b44ae7c120b2baf410e85f339ca8ab6c2e70ec5268d68a83624c9a2df31,8 BANKFIELDS,HEADCORN,,TN27 9RA,10001598760,C,B,69,82,House,Semi-Detached,2021-07-13,E07000110,E14000700,Kent,2021-07-13,marketed sale,66,79,190,101.0,3.3,34,1.8,104.0,84.0,568.0,525.0,81.0,54.0,95.0,dual,Y,,,,,100.0,"double glazing, unknown install date",Normal,1.0,6.0,6.0,77.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, limited insulation (assumed)",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 77% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.44,0.0,N,natural,"8 BANKFIELDS, HEADCORN",Maidstone,Faversham and Mid Kent,ASHFORD,England and Wales: 1976-1982,2021-07-13 22:10:36,Owner-occupied,13.0,,200003699733.0,Energy Assessor +1812690312742020072314250072102778,Flat 38 Ulysses House,Rosalind Drive,,ME14 2FL,7794411778,B,B,84,84,Flat,Mid-Terrace,2020-07-23,E07000110,E14000804,Kent,2020-07-23,new dwelling,88,88,81,81.0,1.0,14,1.0,61.0,61.0,157.0,157.0,95.0,95.0,69.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.45 W/m-¦K,Good,Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Flat 38 Ulysses House, Rosalind Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2020-07-23 14:25:00,unknown,14.0,14.0,10094441426.0,Address Matched +999693853152013090218115393070110,"156, Union Street",,,ME14 1EE,1017333178,E,C,52,76,House,Mid-Terrace,2013-09-02,E07000110,E14000804,Kent,2013-09-02,marketed sale,47,74,309,133.0,4.6,60,2.0,51.0,52.0,848.0,581.0,93.0,70.0,78.0,Single,Y,NODATA!,,,2104.0,45.0,"double glazing, unknown install date",Normal,1.0,4.0,4.0,88.0,1.0,From main system,Very Good,Good,"Solid, no insulation (assumed)",,,Partial double glazing,Poor,Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, mains gas",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 88% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"156, Union Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2013-09-02 18:11:53,owner-occupied,8.0,7.0,200003687391.0,Address Matched +1301162469302015032719132637452038,Flat 12 Pevensey Court,St. Peters Street,,ME16 0GQ,3376264378,B,B,82,83,Flat,End-Terrace,2015-03-27,E07000110,E14000804,Kent,2015-03-27,marketed sale,72,73,225,221.0,1.8,38,1.7,58.0,39.0,116.0,120.0,122.0,122.0,46.0,dual,N,3rd,N,,2401.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,50.0,0.0,"Electric immersion, off-peak",Average,Poor,(another dwelling below),NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,(another dwelling above),,,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 50% of fixed outlets,Good,Good,electricity (not community),0.0,unheated corridor,8.88,,,N,natural,"Flat 12 Pevensey Court, St. Peters Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2015-03-27 19:13:26,owner-occupied,,,10022893609.0,Address Matched +1408745481152016020208104192060043,Flat 9 Manor Fields,Suffolk Road,,ME15 7GB,383122478,C,C,80,80,Flat,Mid-Terrace,2016-02-01,E07000110,E14000700,Kent,2016-02-02,marketed sale,84,84,121,121.0,1.1,21,1.1,41.0,41.0,210.0,210.0,91.0,91.0,53.0,Single,Y,1st,Y,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,(another dwelling below),NO DATA!,,Fully double glazed,Good,Good,"Solid brick, as built, insulated (assumed)",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,6.4,,,N,natural,"Flat 9 Manor Fields, Suffolk Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2003-2006,2016-02-02 08:10:41,owner-occupied,,,10022901532.0,Address Matched +242295470052009031217530109910656,"37, Rushford Close",Headcorn,,TN27 9QD,6658098568,D,C,63,72,House,Semi-Detached,2009-03-12,E07000110,E14000700,Kent,2009-03-12,marketed sale,58,68,296,229.0,3.8,49,3.0,74.0,37.0,521.0,416.0,100.0,100.0,77.62,Unknown,Y,NO DATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,0.0,1.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, partial insulation (assumed)",Average,Average,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.38,0.0,N,natural,"37, Rushford Close, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,England and Wales: 1976-1982,2009-03-12 17:53:01,owner-occupied,,,200003698613.0,Address Matched +235377992852009030321485005010958,"59, Lower Fant Road",,,ME16 8DP,9831258568,D,C,67,75,House,Semi-Detached,2009-03-03,E07000110,E14000804,Kent,2009-03-03,marketed sale,63,72,298,222.0,2.9,50,2.1,43.0,30.0,384.0,309.0,119.0,95.0,57.75,dual,Y,NO DATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,56.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Poor,Poor,Low energy lighting in 56% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.38,0.0,N,natural,"59, Lower Fant Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1991-1995,2009-03-03 21:48:50,owner-occupied,,,200003658041.0,Address Matched +1064147489742013122014592314772708,"9, Fulbert Drive",Bearsted,,ME14 4PU,7753787178,D,C,63,77,House,Detached,2013-12-20,E07000110,E14000700,Kent,2013-12-20,marketed sale,61,77,192,104.0,4.5,37,2.5,73.0,73.0,852.0,709.0,141.0,83.0,124.0,dual,Y,NODATA!,,,2106.0,91.0,"double glazing, unknown install date",Normal,4.0,7.0,7.0,94.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Mostly double glazing,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,"Pitched, 250mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 94% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"9, Fulbert Drive, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2013-12-20 14:59:23,owner-occupied,17.0,16.0,200003688922.0,Address Matched +476736264032010042722560565268708,Ramblers Retreat,Sutton Valence Hill,Sutton Valence,ME17 3AT,6875735768,D,C,66,76,House,Detached,2010-04-27,E07000110,E14000700,Kent,2010-04-27,marketed sale,66,73,181,142.0,8.1,30,6.5,288.0,152.0,1109.0,868.0,236.0,201.0,307.78,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,10.0,10.0,10.0,0.0,From main system,Good,Good,"Solid, limited insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 10% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,0.0,N,natural,"Ramblers Retreat, Sutton Valence Hill, Sutton Valence",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1996-2002,2010-04-27 22:56:05,owner-occupied,,,200003732667.0,Address Matched +938479129262013072519594518448277,"15, Matterdale Gardens",Barming,,ME16 9HW,7124298078,C,B,69,88,Bungalow,End-Terrace,2013-05-24,E07000110,E14000804,Kent,2013-07-25,assessment for green deal,71,91,180,41.0,2.2,34,0.5,55.0,39.0,400.0,338.0,98.0,65.0,65.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,59.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 59% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"15, Matterdale Gardens, Barming",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1991-1995,2013-07-25 19:59:45,owner-occupied,22.0,13.0,200003666663.0,Address Matched +1248634269552014121213323698949731,Marylands,Maidstone Road,Staplehurst,TN12 0RH,7139980378,D,A,60,108,House,Detached,2014-12-11,E07000110,E14000804,Kent,2014-12-12,none of the above,41,97,132,-111.0,5.0,62,-0.3,50.0,50.0,1389.0,579.0,336.0,96.0,81.0,Single,N,NODATA!,,,2104.0,82.0,double glazing installed before 2002,Normal,1.0,4.0,4.0,100.0,0.0,"From main system, no cylinder thermostat",Very Poor,Very Poor,"Solid, no insulation (assumed)",NO DATA!,,Mostly double glazing,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, oil",Poor,Average,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,oil (not community),0.0,NO DATA!,,,,N,natural,"Marylands, Maidstone Road, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1900-1929,2014-12-12 13:32:36,owner-occupied,,,200003679667.0,Address Matched +35910535352012052109214192920745,"21, Bell Lane",Staplehurst,,TN12 0BB,7501523468,D,C,68,80,House,Detached,2012-05-18,E07000110,E14000804,Kent,2012-05-21,none of the above,69,82,161,96.0,4.9,26,2.7,72.0,72.0,896.0,739.0,179.0,117.0,184.0,Single,Y,NODATA!,,,2107.0,100.0,double glazing installed during or after 2002,More Than Typical,2.0,5.0,5.0,100.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,"Room heaters, wood logs",,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"21, Bell Lane, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1967-1975,2012-05-21 09:21:41,unknown,2.0,2.0,200003677281.0,Address Matched +1312013639902015042016582930552508,"23, Usborne Close",Staplehurst,,TN12 0LD,2949735378,E,C,53,80,House,Semi-Detached,2015-04-20,E07000110,E14000804,Kent,2015-04-20,marketed sale,45,75,304,114.0,6.3,54,2.4,111.0,68.0,1051.0,654.0,218.0,78.0,118.0,Single,Y,NODATA!,,,2104.0,90.0,double glazing installed during or after 2002,Normal,2.0,5.0,5.0,36.0,1.0,From main system,Average,Average,"Suspended, no insulation (assumed)",NO DATA!,,Mostly double glazing,Good,Good,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 36% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"23, Usborne Close, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1950-1966,2015-04-20 16:58:29,owner-occupied,,,200003677640.0,Address Matched +496783188412010060913535897000076,"13, Cleavesland",Laddingford,,ME18 6BS,616876768,C,C,78,79,Flat,Enclosed End-Terrace,2010-06-09,E07000110,E14000804,Kent,2010-06-09,rental (social),76,76,205,201.0,1.7,34,1.7,36.0,26.0,287.0,289.0,78.0,78.0,50.01,Single,Y,Ground,N,2.0,2106.0,100.0,double glazing installed before 2002,Normal,0.0,2.0,2.0,60.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 60% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.31,0.0,N,natural,"13, Cleavesland, Laddingford",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2010-06-09 13:53:58,rental (social),,,200003659963.0,Address Matched +592286089742011021416214589399248,L'Esprit,The Green,Bearsted,ME14 4DU,4797383868,F,E,33,43,House,End-Terrace,2011-02-14,E07000110,E14000700,Kent,2011-02-14,marketed sale,31,39,478,392.0,11.0,80,8.7,159.0,81.0,1667.0,1432.0,220.0,171.0,90.27,dual,Y,NO DATA!,,,2104.0,0.0,not defined,Normal,2.0,7.0,7.0,5.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, dual fuel (mineral and wood)",,,"Roof room(s), no insulation",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 5% of fixed outlets,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.32,0.0,N,natural,"L'Esprit, The Green, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2011-02-14 16:21:45,owner-occupied,,,200003695093.0,Address Matched +96990085432014051518214893968803,"5, Moncktons Drive",,,ME14 2QD,8363856468,C,B,69,82,House,Semi-Detached,2014-05-15,E07000110,E14000804,Kent,2014-05-15,marketed sale,68,81,177,89.0,2.9,34,1.5,69.0,52.0,545.0,508.0,97.0,69.0,86.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,67.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 67% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"5, Moncktons Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2014-05-15 18:21:48,owner-occupied,9.0,6.0,200003670737.0,Address Matched +450725204712010030909034195000273,Flat 72 Scotney Gardens,St. Peters Street,,ME16 0GR,2327453768,C,C,77,80,Flat,Detached,2010-03-06,E07000110,E14000804,Kent,2010-03-09,rental (private),73,74,219,211.0,2.3,33,2.3,90.0,45.0,158.0,166.0,140.0,140.0,71.08,dual,N,Ground,N,4.0,2402.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,0.0,0.0,"Electric immersion, off-peak",Average,Poor,"Suspended, insulated (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,(another dwelling above),,,Electric storage heaters,Average,Poor,Automatic charge control,Average,Average,No low energy lighting,Very Poor,Very Poor,electricity - this is for backwards compatibility only and should not be used,0.0,heated corridor,,2.33,0.0,N,natural,"Flat 72 Scotney Gardens, St. Peters Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2010-03-09 09:03:41,rental (private),,,10022893440.0,Address Matched +509903139022010070716233277938900,"7, Frigenti Place",,,ME14 5GJ,784377768,B,B,84,85,Flat,NO DATA!,2010-07-07,E07000110,E14000700,Kent,2010-07-07,new dwelling,84,84,122,119.0,1.4,20,1.4,56.0,42.0,222.0,224.0,89.0,89.0,68.84,standard tariff,,top floor,,,,,NO DATA!,NO DATA!,,,,6.0,,From main system,Very Good,Very Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.26 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.15 W/m?K,Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 67% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.65,,,NO DATA!,"7, Frigenti Place",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2010-07-07 16:23:32,,9.0,6.0,10014307280.0,Address Matched +735598429602012101010573695429308,"48, Edna Road",,,ME14 2QN,4681424968,D,B,62,84,House,End-Terrace,2012-10-10,E07000110,E14000804,Kent,2012-10-10,marketed sale,59,83,230,79.0,3.5,44,1.2,44.0,44.0,610.0,425.0,83.0,59.0,78.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"48, Edna Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2012-10-10 10:57:36,owner-occupied,7.0,7.0,200003670639.0,Address Matched +1472624019962016081812471086888096,"1, Longham Copse",Downswood,,ME15 8TL,9899176478,D,B,56,84,House,Detached,2016-08-18,E07000110,E14000700,Kent,2016-08-18,ECO assessment,47,81,308,101.0,6.1,54,2.0,92.0,69.0,1037.0,579.0,221.0,79.0,113.0,Single,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,6.0,6.0,67.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, partial insulation (assumed)",Average,Average,,,,"Pitched, limited insulation (assumed)",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 67% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,2.36,,N,natural,"1, Longham Copse, Downswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1976-1982,2016-08-18 12:47:10,owner-occupied,,,200003686428.0,Address Matched +194895160902009051913415156482698,"32, Worcester Road",,,ME15 7LU,986964568,C,C,75,77,House,Semi-Detached,2008-11-21,E07000110,E14000700,Kent,2009-05-19,non marketed sale,71,74,197,180.0,2.7,33,2.5,40.0,40.0,361.0,326.0,119.0,119.0,83.08,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,100.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.49,0.0,N,natural,"32, Worcester Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2009-05-19 13:41:51,owner-occupied,,,200003712292.0,Address Matched +208139216512009010913424002010455,"9, Cricketers Close",Harrietsham,,ME17 1JQ,4537626568,D,C,62,72,House,Detached,2009-01-08,E07000110,E14000700,Kent,2009-01-09,rental (private),56,68,321,238.0,3.7,54,2.7,65.0,33.0,478.0,390.0,127.0,96.0,68.92,Unknown,Y,NO DATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Timber frame, as built, insulated (assumed)",Good,Good,"Room heaters, mains gas",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Poor,Poor,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.3,0.0,N,natural,"9, Cricketers Close, Harrietsham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2009-01-09 13:42:40,rental (private),,,200003702972.0,Address Matched +435906317612010021316315994000772,Flat 1,14 St. Faiths Street,,ME14 1LL,7245742768,C,C,76,77,Maisonette,Mid-Terrace,2010-02-06,E07000110,E14000804,Kent,2010-02-13,rental (social),73,73,218,214.0,2.0,36,2.0,43.0,29.0,332.0,334.0,82.0,82.0,30.52,Unknown,Y,1st,Y,3.0,2106.0,0.0,not defined,Normal,0.0,2.0,2.0,50.0,0.0,From main system,Very Good,Very Good,(other premises below),,,Single glazed,Very Poor,Very Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Roof room(s), insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.45,0.0,N,natural,"Flat 1, 14 St. Faiths Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2010-02-13 16:31:59,rental (social),,,, +617027279402011041316593685599278,"13, Peter Pease Close",Kingswood,,ME17 3BZ,498975868,B,B,87,88,House,Mid-Terrace,2011-04-13,E07000110,E14000700,Kent,2011-04-13,new dwelling,88,88,84,81.0,1.2,14,1.1,63.0,51.0,203.0,203.0,96.0,96.0,84.48,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,,From main system,Very Good,Very Good,Average thermal transmittance 0.13 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.20 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.13 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Very Good,Very Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,,,NO DATA!,"13, Peter Pease Close, Kingswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2011-04-13 16:59:36,,,,10014312170.0,Address Matched +836190279042012091722434304129738,"96, King Edward Road",,,ME15 6PL,5004571078,E,C,54,79,House,Mid-Terrace,2012-09-17,E07000110,E14000804,Kent,2012-09-17,marketed sale,49,76,259,109.0,6.1,50,2.6,103.0,60.0,971.0,642.0,139.0,70.0,123.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,6.0,6.0,29.0,0.0,From main system,Average,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 29% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"96, King Edward Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2012-09-17 22:43:43,owner-occupied,14.0,4.0,200003665590.0,Address Matched +983111328732013080217083582078201,3 Mandeville Court,Union Street,,ME14 1JR,2142212178,C,B,74,82,Flat,Enclosed End-Terrace,2013-08-02,E07000110,E14000804,Kent,2013-08-02,marketed sale,66,71,276,239.0,2.0,49,1.8,38.0,38.0,172.0,118.0,182.0,102.0,41.0,Unknown,N,Ground,N,,2401.0,100.0,double glazing installed before 2002,Normal,0.0,2.0,2.0,75.0,0.0,"Electric immersion, off-peak",Poor,Very Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,Portable electric heaters (assumed),,,(another dwelling above),,,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,electricity (not community),0.0,heated corridor,,,0.0,,natural,"3 Mandeville Court, Union Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2013-08-02 17:08:35,owner-occupied,16.0,12.0,200003699214.0,Address Matched +264937561652019080114491495010463,Apartment 4,"10-12, Hayle Road",,ME15 6PF,4378150668,D,C,68,71,Maisonette,Mid-Terrace,2019-08-01,E07000110,E14000804,Kent,2019-08-01,rental (private),68,72,262,229.0,2.0,46,1.8,61.0,37.0,357.0,324.0,82.0,82.0,44.0,Unknown,Y,2nd,Y,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,1.0,1.0,33.0,0.0,From main system,Good,Good,(another dwelling below),NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Roof room(s), insulated",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 33% of fixed outlets,Average,Average,mains gas (not community),0.0,unheated corridor,3.41,,,N,natural,"Apartment 4, 10-12, Hayle Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2019-08-01 14:49:14,rental (private),,,200003696850.0,Address Matched +850333139262012102514271552858842,"30, Hawkes Way",,,ME15 9ZL,4569372078,B,B,85,85,House,End-Terrace,2012-10-25,E07000110,E14000700,Kent,2012-10-25,new dwelling,88,89,68,66.0,1.2,13,1.2,66.0,53.0,242.0,244.0,47.0,47.0,94.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,"From main system, plus solar",Very Good,Very Good,Average thermal transmittance 0.15 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.14 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"30, Hawkes Way",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2012-10-25 14:27:15,NO DATA!,12.0,9.0,10014312516.0,Address Matched +956576429102013062409453910072348,"90, Arundel Square",,,ME15 6HB,5154420178,B,B,82,82,Flat,End-Terrace,2013-06-24,E07000110,E14000804,Kent,2013-06-24,rental (social),86,86,89,89.0,1.0,17,1.0,41.0,41.0,191.0,191.0,91.0,91.0,62.0,Unknown,Y,1st,N,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,4.6,,0.0,,natural,"90, Arundel Square",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2013-06-24 09:45:39,rental (social),7.0,7.0,10022895190.0,Address Matched +1491608309342016102610344247862858,2 The Old Parish Hall,The Square,Lenham,ME17 2PQ,7356608478,C,B,73,85,House,Mid-Terrace,2016-10-25,E07000110,E14000700,Kent,2016-10-26,marketed sale,71,84,160,82.0,3.3,28,1.7,95.0,70.0,597.0,554.0,129.0,77.0,117.0,Single,Y,NODATA!,,,2110.0,100.0,double glazing installed during or after 2002,More Than Typical,1.0,4.0,4.0,65.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Solid brick, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,"Roof room(s), insulated (assumed)",Good,Good,"Boiler and underfloor heating, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in 65% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,2.46,,N,natural,"2 The Old Parish Hall, The Square, Lenham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2003-2006,2016-10-26 10:34:42,owner-occupied,,,10014307552.0,Address Matched +54fa6b475d40ef3034b66cfe6134bf4370f060dec81007bd29bb9fba94d469c7,Flat 141,Scotney Gardens,St. Peters Street,ME16 0GT,10001593556,B,B,87,88,Flat,Mid-Terrace,2021-09-14,E07000110,E14000804,Kent,2021-09-14,rental,80,82,133,119.0,1.6,23,1.5,75.0,75.0,81.0,81.0,191.0,160.0,72.0,Unknown,N,02,N,,,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,"Electric immersion, off-peak",Average,Poor,(another dwelling below),,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,Portable electric heaters (assumed),,,(another dwelling above),,,Electric storage heaters,Average,Very Poor,Automatic charge control,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,heated corridor,,2.3,0.0,N,natural,"Flat 141, Scotney Gardens, St. Peters Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007-2011,2021-09-14 19:29:56,Rented (private),8.0,,10022893508.0,Energy Assessor +1418518360312016030111531699260643,Flat 15 Star House,Pudding Lane,,ME14 1LT,6361092478,C,C,80,80,Flat,Enclosed Mid-Terrace,2016-02-29,E07000110,E14000804,Kent,2016-03-01,new dwelling,85,85,124,124.0,1.0,22,1.0,37.0,37.0,178.0,178.0,88.0,88.0,44.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,(other premises below),,,Full secondary glazing,Average,Average,Average thermal transmittance 0.28 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Flat 15 Star House, Pudding Lane",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2016-03-01 11:53:16,owner-occupied,5.0,5.0,10091195007.0,Address Matched +168845800702008102217281657382328,"1, The Beams",,,ME15 8EF,3724603568,E,C,52,75,House,Detached,2008-10-22,E07000110,E14000700,Kent,2008-10-22,marketed sale,46,71,400,210.0,5.0,67,2.6,68.0,34.0,590.0,333.0,122.0,88.0,75.28,Single,Y,NO DATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,0.0,0.0,From main system,Average,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, partial insulation (assumed)",Average,Average,,,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Average,Good,Programmer and room thermostat,Poor,Poor,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.32,0.0,N,natural,"1, The Beams",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1976-1982,2008-10-22 17:28:16,owner-occupied,,,200003687037.0,Address Matched +550937269242010101019513084000398,"14, Kingsland Grove",Headcorn,,TN27 9SP,7278060868,D,C,67,71,House,Detached,2010-10-01,E07000110,E14000700,Kent,2010-10-10,marketed sale,67,70,225,204.0,3.4,37,3.1,98.0,49.0,554.0,530.0,117.0,117.0,93.1,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,4.0,4.0,0.0,0.0,From main system,Very Good,Very Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Flat, limited insulation",Poor,Poor,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,0.0,N,natural,"14, Kingsland Grove, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,England and Wales: 1967-1975,2010-10-10 19:51:30,owner-occupied,,,200003698835.0,Address Matched +229235079262019022015485908408131,"3, Meades Close",Marden,,TN12 9QG,3038708568,C,B,69,82,House,Detached,2019-02-20,E07000110,E14000804,Kent,2019-02-20,rental (private),66,79,203,109.0,3.2,36,1.8,64.0,64.0,547.0,499.0,101.0,69.0,90.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,6.0,6.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"3, Meades Close, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1983-1990,2019-02-20 15:48:59,rental (private),,,200003668945.0,Address Matched +1794188882102020033118361860909678,4 New Cottages,Bicknor Lane,Bicknor,ME9 8AY,3172089678,E,C,46,72,House,Semi-Detached,2020-03-13,E07000110,E14000700,Kent,2020-03-31,rental (private),61,82,198,61.0,3.2,43,1.2,92.0,67.0,714.0,527.0,163.0,107.0,76.0,dual,N,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,64.0,0.0,From main system,Poor,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, partial insulation (assumed)",Average,Average,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, limited insulation (assumed)",Poor,Poor,"Boiler and radiators, LPG",Poor,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 64% of fixed outlets,Good,Good,LPG (not community),0.0,NO DATA!,,,,N,natural,"4 New Cottages, Bicknor Lane, Bicknor",Maidstone,Faversham and Mid Kent,SITTINGBOURNE,England and Wales: 1976-1982,2020-03-31 18:36:18,rental (private),,,10022896261.0,Address Matched +762155399962012031614514246068002,"83, Corner Farm Road",Staplehurst,,TN12 0PS,436946968,D,C,68,73,House,Semi-Detached,2012-03-16,E07000110,E14000804,Kent,2012-03-16,marketed sale,66,72,188,156.0,3.7,36,3.1,96.0,53.0,568.0,493.0,114.0,114.0,102.36,Single,Y,NODATA!,,,2106.0,95.0,double glazing installed during or after 2002,Normal,1.0,6.0,6.0,19.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Mostly double glazing,Good,Good,"Cavity wall, as built, partial insulation (assumed)",Average,Average,"Room heaters, mains gas",,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 19% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,2.35,0.0,,natural,"83, Corner Farm Road, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1976-1982,2012-03-16 14:51:42,owner-occupied,16.0,3.0,200003679431.0,Address Matched +550707af2d4d3f8cf4a541ede878a8259ea87b8c55a7f6ed71f33616f24bf104,Trevose,Heath Road,Linton,ME17 4NR,5199417768,D,B,65,83,House,Semi-Detached,2021-08-25,E07000110,E14000804,Kent,2021-09-23,rental,59,80,240,108.0,4.4,42,2.0,80.0,80.0,750.0,542.0,86.0,58.0,104.0,Unknown,Y,,,,,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.47,0.0,N,natural,"Trevose, Heath Road, Linton",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2021-09-23 06:06:39,Rented (private),11.0,,200003663133.0,Energy Assessor +244375047132009031723203371968001,"127, York Road",,,ME15 7QX,4171039568,C,C,73,75,House,End-Terrace,2009-03-17,E07000110,E14000700,Kent,2009-03-17,rental (social),69,71,226,211.0,2.6,38,2.4,52.0,33.0,332.0,343.0,120.0,96.0,68.65,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,40.0,0.0,From main system,Very Good,Very Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 40% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,0.0,N,natural,"127, York Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2009-03-17 23:20:33,rental (social),,,200003715731.0,Address Matched +825367258232012082921552693978807,12 Wicken House,London Road,,ME16 8QP,5733890078,D,C,55,78,Flat,Mid-Terrace,2012-08-15,E07000110,E14000804,Kent,2012-08-29,rental (private),39,62,478,274.0,4.5,85,2.6,70.0,35.0,484.0,219.0,180.0,104.0,53.0,dual,N,2nd,N,,2401.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,0.0,0.0,"Electric immersion, off-peak",Poor,Very Poor,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,(another dwelling above),,,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,No low energy lighting,Very Poor,Very Poor,electricity (not community),0.0,unheated corridor,5.8,,0.0,,natural,"12 Wicken House, London Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2012-08-29 21:55:26,rental (private),4.0,0.0,200003668495.0,Address Matched +75931249342019042413415746512648,"4, High Street",Headcorn,,TN27 9NE,5382945468,D,B,57,84,House,Detached,2019-04-24,E07000110,E14000700,Kent,2019-04-24,ECO assessment,48,81,298,95.0,5.5,53,1.8,72.0,72.0,952.0,492.0,110.0,75.0,105.0,Unknown,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,2.0,6.0,6.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"4, High Street, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,England and Wales: 1900-1929,2019-04-24 13:41:57,owner-occupied,,,200003698586.0,Address Matched +167574249962019032013261182548231,12 Roland House,Harris Place,Tovil,ME15 6BP,3827462568,E,C,49,74,Flat,Semi-Detached,2019-03-14,E07000110,E14000804,Kent,2019-03-20,ECO assessment,54,66,355,261.0,3.3,60,2.4,67.0,50.0,824.0,309.0,186.0,206.0,55.0,Single,N,2nd,Y,,2602.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,50.0,0.0,Electric instantaneous at point of use,Very Poor,Poor,(another dwelling below),NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, partial insulation (assumed)",Average,Average,,,,"Pitched, 100 mm loft insulation",Average,Average,"Room heaters, electric",Very Poor,Poor,Appliance thermostats,Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,electricity (not community),0.0,no corridor,,,,N,natural,"12 Roland House, Harris Place, Tovil",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1976-1982,2019-03-20 13:26:11,rental (private),,,10022901580.0,Address Matched +154958160022008100513430741078758,"21, Waterlow Road",,,ME14 2TR,5422671568,E,D,43,56,House,End-Terrace,2008-10-03,E07000110,E14000804,Kent,2008-10-05,non marketed sale,35,46,551,418.0,5.3,100,4.1,45.0,24.0,592.0,485.0,114.0,82.0,74.35,Single,Y,NO DATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,1.0,4.0,4.0,8.0,1.0,From main system,Average,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, partial insulation (assumed)",Average,Average,"Room heaters, coal",,,"Pitched, limited insulation (assumed)",Poor,Poor,"Boiler and radiators, mains gas",Average,Good,Programmer and room thermostat,Poor,Poor,Low energy lighting in 8% of fixed outlets,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.5,0.0,N,natural,"21, Waterlow Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2008-10-05 13:43:07,owner-occupied,,,200003703122.0,Address Matched +839242699002012092515204804122758,"89, Shaftesbury Drive",,,ME16 0JR,6054591078,F,C,38,71,Bungalow,Semi-Detached,2012-09-25,E07000110,E14000804,Kent,2012-09-25,marketed sale,35,67,420,174.0,6.2,81,2.6,78.0,44.0,895.0,656.0,250.0,67.0,77.0,Unknown,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,22.0,0.0,"From main system, no cylinder thermostat",Poor,Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 22% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"89, Shaftesbury Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2012-09-25 15:20:48,owner-occupied,9.0,2.0,200003726284.0,Address Matched +688838889002011101215425598099628,"24, Locks Yard",Headcorn,,TN27 9AD,7099880968,B,B,81,83,House,Semi-Detached,2011-10-12,E07000110,E14000700,Kent,2011-10-12,new dwelling,84,85,90,84.0,1.9,17,1.8,99.0,59.0,291.0,298.0,96.0,96.0,113.28,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,5.0,,From main system,Good,Good,Average thermal transmittance 0.19 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.35 W/m?K,Good,Good,"Room heaters, electric",,,Average thermal transmittance 0.19 W/m?K,Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 33% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.32,,,NO DATA!,"24, Locks Yard, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,NO DATA!,2011-10-12 15:42:55,,15.0,5.0,10014312103.0,Address Matched +983442129262015032114232122998475,"39, Gleaming Wood Drive",,,ME5 8XX,7260212178,D,B,67,86,House,End-Terrace,2015-03-21,E07000110,E14000700,Kent,2015-03-21,ECO assessment,64,84,242,89.0,2.8,43,1.1,88.0,44.0,506.0,421.0,99.0,69.0,66.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 25 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"39, Gleaming Wood Drive",Maidstone,Faversham and Mid Kent,CHATHAM,England and Wales: 1967-1975,2015-03-21 14:23:21,owner-occupied,,,200003673794.0,Address Matched +818848741112012080223390095020304,"4, Trenton Close",,,ME16 0HL,3471150078,D,B,59,81,House,Semi-Detached,2012-08-02,E07000110,E14000804,Kent,2012-08-02,none of the above,53,81,243,94.0,4.7,47,1.8,57.0,57.0,879.0,437.0,126.0,72.0,101.0,dual,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,1.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, mains gas",,,"Pitched, 25 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,,natural,"4, Trenton Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2012-08-02 23:39:00,unknown,10.0,10.0,200003706752.0,Address Matched +1715785829222019042420082234748831,33 Walmer Court,Wheeler Street,,ME14 1TY,3362214678,C,C,78,80,Flat,Semi-Detached,2019-04-24,E07000110,E14000804,Kent,2019-04-24,rental (social),80,82,127,118.0,1.7,22,1.5,109.0,58.0,254.0,259.0,88.0,88.0,75.0,Single,Y,1st,N,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,13.0,0.0,From main system,Good,Good,(another dwelling below),NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 13% of fixed outlets,Poor,Poor,mains gas (not community),0.0,no corridor,,,,N,natural,"33 Walmer Court, Wheeler Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2019-04-24 20:08:22,rental (social),,,200003700785.0,Address Matched +854678759062012110817174273388602,"6, Bethersden Court",,,ME15 8SS,713503078,B,B,84,84,Bungalow,Mid-Terrace,2012-11-08,E07000110,E14000700,Kent,2012-11-08,new dwelling,88,88,78,78.0,1.0,15,1.0,39.0,39.0,229.0,229.0,49.0,49.0,68.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,"From main system, plus solar",Very Good,Very Good,Average thermal transmittance 0.12 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.16 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"6, Bethersden Court",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2012-11-08 17:17:42,NO DATA!,7.0,7.0,10014314050.0,Address Matched +1710715379142019060508441361310758,"8, Parker Road",Boughton Monchelsea,,ME17 4SN,7177373678,B,A,84,97,House,Semi-Detached,2019-06-05,E07000110,E14000804,Kent,2019-06-05,new dwelling,88,100,84,-16.0,1.0,15,-0.2,53.0,53.0,180.0,180.0,68.0,40.0,69.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.19 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.1 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"8, Parker Road, Boughton Monchelsea",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2019-06-05 08:44:13,unknown,4.0,4.0,10094441238.0,Address Matched +1438518539542016042807130244462138,"237, Willington Street",,,ME15 8EP,3588034478,D,C,55,78,House,Detached,2016-04-27,E07000110,E14000700,Kent,2016-04-28,marketed sale,46,72,308,145.0,6.8,54,3.3,122.0,72.0,1281.0,798.0,104.0,104.0,125.0,Unknown,Y,NODATA!,,,2111.0,100.0,"double glazing, unknown install date",Normal,0.0,6.0,6.0,31.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 270 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,TRVs and bypass,Average,Average,Low energy lighting in 31% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,2.58,,N,natural,"237, Willington Street",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2016-04-28 07:13:02,owner-occupied,,,200003684724.0,Address Matched +554c43c4aa4ffb282504aa453087a80e04854f50b13679c9dd05ca5e7aeb99d3,10,Vicarage Fields,Linton,ME17 4XL,10001333647,B,A,86,106,House,Detached,2021-09-22,E07000110,E14000700,Kent,2021-09-22,new dwelling,85,104,75,-32.0,2.3,13,-0.9,104.0,104.0,341.0,343.0,103.0,59.0,171.0,standard tariff,,,N,,,100.0,,,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.18 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.1 W/m-¦K,Very Good,Very Good,"Boiler & underfloor, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.385,,,,"10, Vicarage Fields, Linton",Maidstone,Faversham and Mid Kent,MAIDSTONE,2021,2021-09-22 14:20:58,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,4.0,,10095448078.0,Address Matched +1774181015112019122111203593919161,"32, Biddenden Close",Bearsted,,ME15 8JP,1183538678,E,C,41,78,House,Semi-Detached,2019-12-19,E07000110,E14000700,Kent,2019-12-21,marketed sale,31,68,452,148.0,7.1,92,2.7,95.0,59.0,1061.0,586.0,159.0,69.0,77.0,Single,Y,NODATA!,,,2102.0,25.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,40.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Some double glazing,Poor,Poor,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, coal",,,"Pitched, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,Low energy lighting in 40% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"32, Biddenden Close, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2019-12-21 11:20:35,owner-occupied,,,200003688435.0,Address Matched +1121375843052014040807481999040421,"40, Greystones Road",Bearsted,,ME15 8PE,4100391278,D,B,67,85,House,Semi-Detached,2014-04-07,E07000110,E14000700,Kent,2014-04-08,non marketed sale,65,84,183,72.0,3.5,35,1.4,110.0,57.0,629.0,458.0,96.0,96.0,100.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,2.0,5.0,5.0,8.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 8% of fixed outlets,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"40, Greystones Road, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2014-04-08 07:48:19,owner-occupied,12.0,1.0,200003690892.0,Address Matched +693053370752011112311482593299093,9 Barden Court,St. Lukes Avenue,,ME14 5AP,348031968,E,E,41,43,Flat,Enclosed End-Terrace,2011-11-23,E07000110,E14000804,Kent,2011-11-23,marketed sale,47,49,394,380.0,4.3,70,4.2,70.0,37.0,739.0,721.0,231.0,243.0,61.81,Single,N,Ground,N,,2401.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,11.0,0.0,"Electric immersion, standard tariff",Very Poor,Very Poor,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,Portable electric heaters (assumed),,,(another dwelling above),,,Electric storage heaters,Very Poor,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 11% of fixed outlets,Poor,Poor,electricity (not community),0.0,heated corridor,,2.34,0.0,,natural,"9 Barden Court, St. Lukes Avenue",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1991-1995,2011-11-23 11:48:25,owner-occupied,9.0,1.0,200003720838.0,Address Matched +1787693522262020022511561189758130,11 Kensington House,Fernhill Road,,ME16 9BW,3888239678,E,C,47,69,Flat,Mid-Terrace,2020-02-25,E07000110,E14000804,Kent,2020-02-25,rental (private),33,68,598,243.0,5.1,101,2.2,63.0,43.0,800.0,372.0,291.0,97.0,50.0,dual,Y,3rd,Y,,2401.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,67.0,0.0,"Electric immersion, off-peak",Very Poor,Poor,(another dwelling below),NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,Portable electric heaters (assumed),,,"Pitched, limited insulation (assumed)",Very Poor,Very Poor,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 67% of fixed outlets,Good,Good,electricity (not community),0.0,unheated corridor,1.56,,,N,natural,"11 Kensington House, Fernhill Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2020-02-25 11:56:11,rental (private),,,200003685198.0,Address Matched +1398150259262015122207031891798355,"8, Wallis Avenue",,,ME15 9DX,5994541478,E,C,53,76,House,Semi-Detached,2015-12-21,E07000110,E14000700,Kent,2015-12-22,marketed sale,53,75,279,134.0,5.1,48,2.5,89.0,64.0,844.0,706.0,397.0,138.0,106.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,6.0,6.0,60.0,0.0,"Electric immersion, standard tariff",Very Poor,Poor,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 60% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"8, Wallis Avenue",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2015-12-22 07:03:18,owner-occupied,,,200003681405.0,Address Matched +1646038509542018070518055154980358,"31, Northleigh Close",Loose,,ME15 9RP,5519509578,D,B,59,84,House,Semi-Detached,2018-07-05,E07000110,E14000804,Kent,2018-07-05,marketed sale,53,82,314,106.0,4.0,55,1.4,59.0,59.0,670.0,429.0,134.0,75.0,73.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,89.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 12 mm loft insulation",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 89% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"31, Northleigh Close, Loose",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2018-07-05 18:05:51,owner-occupied,,,200003675085.0,Address Matched +110314730542009072219131943812598,"35, Tovil Road",,,ME15 6QL,6534238468,E,D,48,62,House,Semi-Detached,2009-07-21,E07000110,E14000804,Kent,2009-07-22,marketed sale,41,54,425,310.0,6.1,71,4.5,69.0,43.0,868.0,671.0,150.0,108.0,85.7,Single,Y,NO DATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,40.0,2.0,From main system,Average,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"System built, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, mains gas",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Average,Good,Programmer and room thermostat,Poor,Poor,Low energy lighting in 40% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.43,0.0,N,natural,"35, Tovil Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2009-07-22 19:13:19,owner-occupied,,,200003664495.0,Address Matched +1174278279962014071612172155368224,"44, Foxglove Rise",,,ME14 2AF,2530765278,D,B,68,88,House,End-Terrace,2014-07-16,E07000110,E14000804,Kent,2014-07-16,marketed sale,68,90,202,48.0,2.3,39,0.6,39.0,39.0,430.0,360.0,134.0,74.0,60.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"44, Foxglove Rise",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1991-1995,2014-07-16 12:17:21,owner-occupied,6.0,6.0,200003722767.0,Address Matched +780291679802012050720105791729538,Staff Accommodation,Tanner Farm Park,"Goudhurst Road, Marden",TN12 9ND,1801977968,C,B,75,88,Bungalow,Detached,2012-04-17,E07000110,E14000804,Kent,2012-05-07,marketed sale,67,81,129,53.0,3.8,32,2.0,74.0,74.0,459.0,431.0,147.0,94.0,120.0,Single,N,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,6.0,6.0,77.0,0.0,From main system,Average,Average,"Suspended, insulated (assumed)",,,Fully double glazed,Good,Good,"Timber frame, as built, insulated (assumed)",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, oil",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 77% of fixed outlets,Very Good,Very Good,oil (not community),0.0,NO DATA!,,,0.0,,natural,"Staff Accommodation, Tanner Farm Park, Goudhurst Road, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 2003-2006,2012-05-07 20:10:57,owner-occupied,13.0,10.0,200003668121.0,Address Matched +395336950022009111009150159418651,"50, Melrose Close",,,ME15 6ZE,5573569668,B,B,91,91,Flat,NO DATA!,2009-11-09,E07000110,E14000804,Kent,2009-11-10,new dwelling,90,91,94,91.0,0.7,14,0.6,35.0,29.0,168.0,169.0,67.0,67.0,46.1,standard tariff,,mid floor,,,2106.0,,NO DATA!,NO DATA!,,,,10.0,0.0,From main system,Very Good,Very Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.20 W/m?K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 77% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"50, Melrose Close",Maidstone,Maidstone and The Weald,MAIDSTONE,,2009-11-10 09:15:01,,,,10014307018.0,Address Matched +726586729932011112316154027268795,"26, Reinden Grove",Downswood,,ME15 8TH,2547753968,D,C,68,72,House,Semi-Detached,2011-11-23,E07000110,E14000700,Kent,2011-11-23,marketed sale,69,73,201,171.0,2.7,38,2.3,79.0,39.0,408.0,382.0,121.0,108.0,71.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, insulated (assumed)",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,2.3,0.0,,natural,"26, Reinden Grove, Downswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2011-11-23 16:15:40,owner-occupied,7.0,0.0,200003686353.0,Address Matched +1655524922612019031120520797910756,"6, Ace High Close",Thurnham,,ME14 3ND,7636279578,A,A,96,109,House,Detached,2019-03-11,E07000110,E14000700,Kent,2019-03-11,new dwelling,97,108,7,-57.0,0.2,1,-1.9,98.0,98.0,363.0,363.0,231.0,141.0,195.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Poor,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.22 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.15 W/m-¦K,Good,Good,"Air source heat pump, underfloor, electric",Good,Very Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"6, Ace High Close, Thurnham",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2019-03-11 20:52:07,unknown,12.0,12.0,10094440037.0,Address Matched +665164583152011081120184892990482,"22, Netley Close",,,ME14 5SA,4206329868,D,C,67,74,House,Mid-Terrace,2011-08-11,E07000110,E14000804,Kent,2011-08-11,marketed sale,68,77,235,166.0,2.4,45,1.7,54.0,30.0,359.0,287.0,124.0,94.0,52.44,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,20.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 20% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,2.3,0.0,,natural,"22, Netley Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2011-08-11 20:18:48,owner-occupied,5.0,1.0,200003672863.0,Address Matched +1773956284552019122011273793219063,"5, Crouch Road",Staplehurst,,TN12 0GJ,331438678,B,A,85,96,House,Mid-Terrace,2019-12-20,E07000110,E14000804,Kent,2019-12-20,new dwelling,87,99,77,-3.0,1.2,13,0.0,73.0,73.0,191.0,191.0,74.0,44.0,86.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.27 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"5, Crouch Road, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,NO DATA!,2019-12-20 11:27:37,unknown,18.0,18.0,10094442086.0,Address Matched +506186549142010062910000171702018,1 Fairfax Court,Church Street,,ME14 1BJ,1143447768,C,C,75,75,Flat,NO DATA!,2010-06-29,E07000110,E14000804,Kent,2010-06-29,new dwelling,71,72,179,177.0,3.4,30,3.3,69.0,58.0,472.0,474.0,137.0,137.0,112.4,standard tariff,,ground floor,,,,,NO DATA!,NO DATA!,,,,8.0,,From main system,Very Good,Very Good,Average thermal transmittance 0.25 W/m?K,Good,Good,Single glazed,Very Poor,Very Poor,Average thermal transmittance 0.35 W/m?K,Good,Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.8,,,NO DATA!,"1 Fairfax Court, Church Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2010-06-29 10:00:01,,10.0,8.0,10014306342.0,Address Matched +17862189262017112908271862788383,"5, Beechwood Road",,,ME16 9HN,8639852468,D,C,59,79,House,Detached,2017-11-28,E07000110,E14000804,Kent,2017-11-29,marketed sale,51,73,258,127.0,6.4,46,3.2,158.0,79.0,1079.0,764.0,142.0,85.0,141.0,Single,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"5, Beechwood Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2017-11-29 08:27:18,owner-occupied,,,200003666904.0,Address Matched +1261554179302015012609403531152268,"3, Bluett Street",,,ME14 2UG,5306871378,E,B,52,86,House,Mid-Terrace,2015-01-26,E07000110,E14000804,Kent,2015-01-26,ECO assessment,44,85,356,74.0,5.3,63,1.1,70.0,54.0,963.0,426.0,133.0,69.0,84.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,1.0,5.0,5.0,70.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 70% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"3, Bluett Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2015-01-26 09:40:35,owner-occupied,,,200003703474.0,Address Matched +1442788939962016051310504834978536,Flat 6,Westbrook House,18-20 Albion Place,ME14 5DZ,3306364478,B,B,84,84,Flat,Detached,2016-05-13,E07000110,E14000804,Kent,2016-05-13,new dwelling,76,76,168,168.0,1.7,28,1.7,47.0,47.0,117.0,117.0,130.0,130.0,59.0,off-peak 7 hour,,mid floor,,,,,NO DATA!,NO DATA!,,,,,0.0,"Electric immersion, off-peak",Average,Poor,(other premises below),,,Full secondary glazing,Good,Good,Average thermal transmittance 0.44 W/m-¦K,Good,Good,"Room heaters, electric",,,(other premises above),,,Electric storage heaters,Average,Very Poor,Automatic charge control,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"Flat 6, Westbrook House, 18-20 Albion Place",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2016-05-13 10:50:48,unknown,14.0,14.0,10093302956.0,Address Matched +357397936632016060716084252068105,Rooks Nest,Ulcombe Hill,Ulcombe,ME17 1DJ,3502107668,D,B,66,90,House,Detached,2016-06-07,E07000110,E14000700,Kent,2016-06-07,marketed sale,67,88,198,73.0,4.6,30,1.4,135.0,81.0,998.0,952.0,125.0,125.0,153.0,Single,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,2.0,8.0,8.0,33.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, wood logs",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 33% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,2.52,,N,natural,"Rooks Nest, Ulcombe Hill, Ulcombe",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2016-06-07 16:08:42,owner-occupied,,,200003701230.0,Address Matched +287522815132009052019424676268500,"20, Murrain Drive",Downswood,,ME15 8XJ,1066512668,F,F,32,33,House,Semi-Detached,2009-05-20,E07000110,E14000700,Kent,2009-05-20,marketed sale,51,51,441,436.0,3.8,66,3.8,56.0,28.0,660.0,675.0,124.0,124.0,66.26,dual,Y,NO DATA!,,,2601.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,0.0,0.0,"Electric immersion, off-peak",Very Poor,Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Average,Average,"Room heaters, electric",Very Poor,Poor,No thermostatic control of room temperature,Poor,Poor,No low energy lighting,Very Poor,Very Poor,electricity - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.35,0.0,N,natural,"20, Murrain Drive, Downswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2009-05-20 19:42:46,owner-occupied,,,200003691668.0,Address Matched +1553252149962018011914500752818058,"23, The Weavers",Headcorn,,TN27 9AQ,5555442578,B,A,82,94,House,Detached,2018-01-19,E07000110,E14000700,Kent,2018-01-19,new dwelling,84,96,99,9.0,1.3,17,0.1,54.0,54.0,232.0,232.0,76.0,45.0,76.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.17 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.21 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"23, The Weavers, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,NO DATA!,2018-01-19 14:50:07,unknown,20.0,20.0,10093304430.0,Address Matched +246905630962009031913035539788781,"51, Cleavesland",Laddingford,,ME18 6BS,8338339568,C,C,73,75,Bungalow,End-Terrace,2009-03-18,E07000110,E14000804,Kent,2009-03-19,rental (social),69,71,271,254.0,2.1,45,2.0,22.0,22.0,310.0,291.0,93.0,93.0,47.13,Single,Y,NO DATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,100.0,0.0,From main system,Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.29,0.0,N,natural,"51, Cleavesland, Laddingford",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2009-03-19 13:03:55,rental (social),,,200003660011.0,Address Matched +367527769402018091406593360789378,"17, Stoneacre Court",Enterprise Road,,ME15 6AB,7434867668,C,B,79,81,Flat,Mid-Terrace,2018-09-13,E07000110,E14000804,Kent,2018-09-14,marketed sale,68,72,244,217.0,2.3,41,2.0,59.0,59.0,210.0,174.0,174.0,154.0,55.0,Unknown,N,2nd,Y,,2401.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,83.0,0.0,"Electric immersion, off-peak",Average,Poor,(another dwelling below),NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,Portable electric heaters (assumed),,,"Pitched, 200 mm loft insulation",Good,Good,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 83% of fixed outlets,Very Good,Very Good,electricity (not community),0.0,unheated corridor,5.46,,,N,natural,"17, Stoneacre Court, Enterprise Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2018-09-14 06:59:33,owner-occupied,,,200003686874.0,Address Matched +1789374442022020030213560869428190,"62, Iden Crescent",Staplehurst,,TN12 0NU,9680449678,F,B,28,87,House,Semi-Detached,2020-03-02,E07000110,E14000804,Kent,2020-03-02,marketed sale,39,85,420,75.0,5.7,71,1.1,107.0,63.0,1469.0,379.0,388.0,71.0,79.0,Single,Y,NODATA!,,,2601.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,1.0,30.0,0.0,"Electric immersion, standard tariff",Very Poor,Poor,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,Portable electric heaters assumed for most rooms,Very Poor,Poor,No thermostatic control of room temperature,Poor,Poor,Low energy lighting in 30% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"62, Iden Crescent, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1967-1975,2020-03-02 13:56:08,owner-occupied,,,200003677128.0,Address Matched +120036759802018071009173841880818,Flat 155,Scotney Gardens,St. Peters Street,ME16 0GT,3864058468,B,B,85,85,Flat,Mid-Terrace,2018-07-09,E07000110,E14000804,Kent,2018-07-10,rental (private),78,78,151,151.0,1.7,26,1.7,59.0,59.0,102.0,102.0,163.0,163.0,65.0,dual,N,2nd,N,,2401.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,"Electric immersion, off-peak",Average,Poor,(another dwelling below),NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,(another dwelling above),,,Electric storage heaters,Poor,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,heated corridor,,,,N,natural,"Flat 155, Scotney Gardens, St. Peters Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2018-07-10 09:17:38,rental (private),,,10022893522.0,Address Matched +360490790132009100807194591068790,"8, Allnutt Mill Close",Tovil,,ME15 6QU,9001717668,D,C,64,73,House,End-Terrace,2009-10-07,E07000110,E14000804,Kent,2009-10-08,rental (social),58,69,293,220.0,3.8,48,2.9,80.0,40.0,512.0,425.0,148.0,112.0,91.8,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,0.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.31,0.0,N,natural,"8, Allnutt Mill Close, Tovil",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1991-1995,2009-10-08 07:19:45,rental (social),,,200003666191.0,Address Matched +1535986829962019071713222861638831,"3, Minstrel Close",Marden,,TN12 9FU,3634221578,B,A,84,96,House,Semi-Detached,2019-07-17,E07000110,E14000804,Kent,2019-07-17,new dwelling,87,98,79,2.0,1.2,14,0.1,66.0,66.0,207.0,207.0,75.0,45.0,88.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.12 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.28 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"3, Minstrel Close, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,NO DATA!,2019-07-17 13:22:28,owner-occupied,16.0,16.0,10093303337.0,Address Matched +1203514348052014091012440796940724,"234, Plains Avenue",,,ME15 7BH,7438867278,D,B,55,88,House,Semi-Detached,2014-09-10,E07000110,E14000700,Kent,2014-09-10,FiT application,50,89,279,48.0,4.7,54,0.9,75.0,54.0,689.0,383.0,334.0,79.0,88.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,60.0,0.0,"From main system, no cylinder thermostat",Poor,Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 60% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"234, Plains Avenue",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2014-09-10 12:44:07,owner-occupied,10.0,6.0,200003714437.0,Address Matched +1032879969102013102812282119572238,6 Firtree Yard,Stockett Lane,Coxheath,ME17 4PY,2182765178,B,B,82,82,House,Detached,2013-10-27,E07000110,E14000804,Kent,2013-10-28,new dwelling,84,84,88,88.0,1.8,17,1.8,72.0,72.0,336.0,336.0,68.0,68.0,107.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.19 W/mA?K,Very Good,Very Good,Fully double glazed,Good,Good,Average thermal transmittance 0.25 W/mA?K,Very Good,Very Good,,,,Average thermal transmittance 0.16 W/mA?K,Good,Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"6 Firtree Yard, Stockett Lane, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2013-10-28 12:28:21,NO DATA!,12.0,9.0,, +416807436012019042416301191210270,"11, Barbados Terrace",Invicta Park,,ME14 2NT,2071611768,D,B,57,83,House,End-Terrace,2019-04-24,E07000110,E14000804,Kent,2019-04-24,Stock Condition Survey,50,79,313,110.0,4.6,55,1.7,121.0,61.0,773.0,485.0,98.0,66.0,84.0,Unknown,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,6.0,6.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Flat, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"11, Barbados Terrace, Invicta Park",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2019-04-24 16:30:11,rental (private),,,200003724085.0,Address Matched +17d5c12a98ffa41461fff25b953821a6f2d8ccaa94be9c8e7a7a3936f59dbf3e,BULL INN,HIGH STREET YALDING,,ME18 6HX,10001622511,D,C,61,79,House,Semi-Detached,2021-07-19,E07000110,E14000804,Kent,2021-07-20,marketed sale,49,73,219,112.0,17.0,40,8.6,230.0,235.0,2827.0,1556.0,135.0,136.0,419.0,Single,Y,,,,,10.0,"double glazing, unknown install date",Normal,3.0,9.0,9.0,68.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Some double glazing,Very Poor,Very Poor,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and at least two room thermostats,Good,Good,Low energy lighting in 68% of fixed outlets,Good,Good,mains gas (not community),0.0,,,2.21,0.0,N,natural,"BULL INN, HIGH STREET YALDING",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2021-07-20 15:31:34,Owner-occupied,34.0,,200003660802.0,Address Matched +191133760222008112715371284738438,Flat 67 Lee Heights,Bambridge Court,,ME14 2LD,3845674568,B,B,84,85,Flat,Mid-Terrace,2008-11-27,E07000110,E14000804,Kent,2008-11-27,marketed sale,79,80,178,172.0,1.7,27,1.6,54.0,34.0,83.0,85.0,109.0,109.0,63.06,Unknown,N,2nd,N,4.0,2401.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,40.0,0.0,"Electric immersion, off-peak",Average,Poor,(other premises below),,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,Electric storage heaters,Poor,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 40% of fixed outlets,Average,Average,electricity - this is for backwards compatibility only and should not be used,0.0,unheated corridor,1.22,2.24,0.0,N,natural,"Flat 67 Lee Heights, Bambridge Court",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2008-11-27 15:37:12,owner-occupied,,,10022893038.0,Address Matched +817675603232012072511193020278402,Flat 20 Ragstone Lodge,Peel Street,,ME14 2WB,240440078,B,B,81,81,Flat,End-Terrace,2012-07-21,E07000110,E14000804,Kent,2012-07-25,rental (private),85,85,97,97.0,1.1,19,1.1,38.0,38.0,210.0,210.0,76.0,76.0,59.0,Single,Y,2nd,Y,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,heated corridor,,,0.0,,natural,"Flat 20 Ragstone Lodge, Peel Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2012-07-25 11:19:30,rental (private),7.0,7.0,10022896749.0,Address Matched +1049809519262013112509574386758797,"69, Graveney Road",,,ME15 8QL,9842186178,D,B,64,86,House,Mid-Terrace,2013-11-25,E07000110,E14000700,Kent,2013-11-25,marketed sale,61,86,206,62.0,3.8,39,1.2,98.0,54.0,644.0,426.0,108.0,67.0,96.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,17.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 17% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"69, Graveney Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2013-11-25 09:57:43,owner-occupied,12.0,2.0,200003685324.0,Address Matched +756971579022012030420541126848042,Flat 16 Willowbrook Place,Regent Close,,ME15 6ZP,4229706968,B,B,85,85,Flat,NO DATA!,2012-03-04,E07000110,E14000804,Kent,2012-03-04,new dwelling,90,90,72,72.0,0.7,14,0.7,29.0,29.0,185.0,185.0,75.0,75.0,48.83,standard tariff,,ground floor,,,,,NO DATA!,NO DATA!,,,,6.0,,From main system,Good,Good,Average thermal transmittance 0.15 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.22 W/m?K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,,,NO DATA!,"Flat 16 Willowbrook Place, Regent Close",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2012-03-04 20:54:11,,6.0,6.0,10014313164.0,Address Matched +1008974959432014010216235455078406,"62, Reculver Walk",,,ME15 8QW,5605493178,C,B,75,88,House,Mid-Terrace,2014-01-02,E07000110,E14000700,Kent,2014-01-02,following green deal,76,90,138,47.0,2.0,26,0.7,58.0,58.0,374.0,351.0,94.0,65.0,75.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,75.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"62, Reculver Walk",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2014-01-02 16:23:54,owner-occupied,8.0,6.0,200003725779.0,Address Matched +1080754359762014020221400089408614,"113, Willington Street",,,ME15 8JU,1882509178,D,B,56,91,House,Mid-Terrace,2014-01-30,E07000110,E14000700,Kent,2014-02-02,marketed sale,53,94,305,23.0,3.5,59,0.3,67.0,38.0,538.0,294.0,218.0,73.0,60.0,Single,Y,NODATA!,,,2102.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,25.0,0.0,"From main system, no cylinder thermostat",Poor,Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,Low energy lighting in 25% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"113, Willington Street",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2014-02-02 21:40:00,owner-occupied,8.0,2.0,200003685782.0,Address Matched +1681943559832018112719260857278599,"37, McAlpine Crescent",Loose,,ME15 0AU,5967561678,D,C,58,77,Bungalow,End-Terrace,2018-11-27,E07000110,E14000804,Kent,2018-11-27,rental (social),54,72,358,195.0,3.2,63,1.8,66.0,39.0,575.0,537.0,78.0,52.0,51.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,33.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 33% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"37, McAlpine Crescent, Loose",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2018-11-27 19:26:08,rental (social),,,200003663373.0,Address Matched +596562309922012111920574674668702,"2, Kemsley Street Road",Bredhurst,,ME7 3LR,794024868,C,B,70,90,House,Semi-Detached,2012-11-16,E07000110,E14000700,Kent,2012-11-19,rental (social),71,91,175,38.0,2.3,33,0.6,60.0,40.0,386.0,360.0,101.0,67.0,70.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,50.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"System built, with external insulation",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"2, Kemsley Street Road, Bredhurst",Maidstone,Faversham and Mid Kent,GILLINGHAM,England and Wales: 1930-1949,2012-11-19 20:57:46,rental (social),10.0,5.0,200003694239.0,Address Matched +256127259062019060111112059498621,"25, Kingsley Road",,,ME15 7UN,2522599568,C,B,70,88,House,Mid-Terrace,2019-06-01,E07000110,E14000804,Kent,2019-06-01,rental (private),67,87,198,65.0,3.2,35,1.1,106.0,65.0,527.0,380.0,95.0,65.0,92.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,2.0,4.0,4.0,38.0,0.0,From main system,Good,Good,"To unheated space, insulated",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 38% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"25, Kingsley Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2019-06-01 11:11:20,rental (private),,,200003695868.0,Address Matched +817815655152012072814291894220209,Woodville,North Folly Road,East Farleigh,ME15 0LT,2917540078,D,B,68,84,Bungalow,Detached,2012-07-28,E07000110,E14000804,Kent,2012-07-28,marketed sale,57,75,150,70.0,6.3,38,3.4,77.0,77.0,933.0,719.0,173.0,102.0,166.0,dual,N,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,6.0,6.0,100.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, oil",Average,Average,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,oil (not community),0.0,NO DATA!,,,0.0,,natural,"Woodville, North Folly Road, East Farleigh",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2012-07-28 14:29:18,owner-occupied,10.0,10.0,200003663700.0,Address Matched +1088480552652014021217154596940311,Flat 2 Park View Court,School Lane,,ME15 8DX,3176269178,E,C,51,76,Flat,Semi-Detached,2014-02-11,E07000110,E14000700,Kent,2014-02-12,rental (private),40,80,489,143.0,4.1,87,1.3,50.0,31.0,653.0,273.0,71.0,75.0,47.0,dual,Y,1st,Y,,2401.0,95.0,double glazing installed before 2002,Normal,0.0,3.0,2.0,50.0,0.0,Gas multipoint,Average,Average,(other premises below),,,Mostly double glazing,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,Portable electric heaters (assumed),,,"Pitched, 75 mm loft insulation",Average,Average,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 50% of fixed outlets,Good,Good,electricity (not community),0.0,unheated corridor,5.0,,0.0,,natural,"Flat 2 Park View Court, School Lane",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2014-02-12 17:15:45,rental (private),6.0,3.0,200003687098.0,Address Matched +1384479871452015111214524395959047,Flat 31,Miller House,43-51 Lower Stone Street,ME15 6GB,734150478,B,B,81,81,Flat,NO DATA!,2015-11-12,E07000110,E14000804,Kent,2015-11-12,none of the above,84,84,118,118.0,1.1,21,1.1,36.0,36.0,222.0,222.0,70.0,70.0,52.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Good,Good,Average thermal transmittance 0.71 W/m-¦K,Average,Average,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Flat 31, Miller House, 43-51 Lower Stone Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2015-11-12 14:52:43,unknown,4.0,4.0,10091196128.0,Address Matched +371277660262009092610070557558831,"12, Birchington Close",,,ME14 5PF,3545697668,C,C,77,79,Flat,Mid-Terrace,2009-09-25,E07000110,E14000804,Kent,2009-09-26,marketed sale,74,76,215,192.0,2.0,36,1.8,28.0,28.0,318.0,297.0,87.0,76.0,55.19,Single,Y,Ground,N,2.0,2106.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,unheated corridor,7.3,2.4,0.0,N,natural,"12, Birchington Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2009-09-26 10:07:05,owner-occupied,,,200003716838.0,Address Matched +1600487789402018011515202854560998,"24, Tolhurst Way",Lenham,,ME17 2BY,3454185578,B,A,84,94,House,End-Terrace,2016-08-01,E07000110,E14000700,Kent,2018-01-15,new dwelling,85,96,89,17.0,1.5,16,0.3,66.0,66.0,238.0,238.0,102.0,66.0,97.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.12 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.18 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"24, Tolhurst Way, Lenham",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2018-01-15 15:20:28,unknown,9.0,9.0,10093303694.0,Address Matched +419525798032020082607554580268208,"2, Nethermount",Bearsted,,ME14 4FE,9810231768,C,B,80,89,House,Semi-Detached,2020-08-24,E07000110,E14000700,Kent,2020-08-26,marketed sale,79,87,107,55.0,2.6,19,1.4,97.0,97.0,424.0,426.0,109.0,68.0,138.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Timber frame, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"2, Nethermount, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2007 onwards,2020-08-26 07:55:45,owner-occupied,,,10014309096.0,Address Matched +256127290542009033110314252917208,"25, Kingsley Road",,,ME15 7UN,2522599568,E,D,54,63,House,Mid-Terrace,2009-03-30,E07000110,E14000804,Kent,2009-03-31,marketed sale,47,57,365,288.0,5.6,61,4.4,43.0,43.0,775.0,629.0,119.0,92.0,91.2,Single,Y,NO DATA!,,,2106.0,85.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Partial double glazing,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.6,0.0,N,natural,"25, Kingsley Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2009-03-31 10:31:42,owner-occupied,,,200003695868.0,Address Matched +1628216617312018051910031097980459,6 Stable Cottages,Sutton Road,Langley,ME17 3NQ,4985777578,E,C,48,70,Bungalow,Mid-Terrace,2018-05-19,E07000110,E14000700,Kent,2018-05-19,new dwelling,54,73,397,212.0,3.0,67,1.6,35.0,35.0,631.0,634.0,272.0,138.0,45.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,"Electric immersion, standard tariff",Very Poor,Poor,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,Mostly multiple glazing,Average,Average,Average thermal transmittance 0.31 W/m-¦K,Good,Good,,,,Average thermal transmittance 0.23 W/m-¦K,Good,Good,"Room heaters, electric",Very Poor,Poor,Appliance thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"6 Stable Cottages, Sutton Road, Langley",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2018-05-19 10:03:10,unknown,10.0,10.0,10093305345.0,Address Matched +1344057283632016071320594889078005,"102, Forest Hill",,,ME15 6SP,8599067378,E,B,49,87,House,Semi-Detached,2016-07-07,E07000110,E14000804,Kent,2016-07-13,ECO assessment,42,86,413,81.0,5.2,73,1.0,97.0,48.0,698.0,408.0,371.0,72.0,71.0,Single,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,0.0,0.0,"From main system, no cylinder thermostat",Poor,Poor,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 12 mm loft insulation",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,2.4,,N,natural,"102, Forest Hill",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2016-07-13 20:59:48,owner-occupied,,,200003664794.0,Address Matched +686572042452013011116560597970295,"11, Hawkes Way",,,ME15 9ZL,2519270968,B,B,84,84,Flat,Detached,2013-01-11,E07000110,E14000700,Kent,2013-01-11,new dwelling,87,87,83,83.0,1.1,16,1.1,49.0,49.0,239.0,239.0,80.0,80.0,68.0,standard tariff,,ground floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.31 W/m?K,Good,Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"11, Hawkes Way",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2013-01-11 16:56:05,NO DATA!,8.0,6.0,10014312498.0,Address Matched +1227668391212014102720562094249724,Casa Cao,"10a, Maidstone Road",Lenham,ME17 2QH,7437149278,C,C,69,79,House,Detached,2014-10-27,E07000110,E14000700,Kent,2014-10-27,marketed sale,65,76,163,103.0,4.7,31,3.1,134.0,79.0,848.0,807.0,143.0,91.0,152.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,4.0,6.0,6.0,30.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 30% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"Casa Cao, 10a, Maidstone Road, Lenham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1991-1995,2014-10-27 20:56:20,owner-occupied,27.0,8.0,200003712568.0,Address Matched +1674325399922018102708514111888168,"8, Warwick Place",,,ME16 8SG,6153901678,E,B,49,84,House,Mid-Terrace,2018-10-18,E07000110,E14000804,Kent,2018-10-27,marketed sale,42,81,375,95.0,5.3,66,1.4,70.0,70.0,913.0,444.0,118.0,51.0,80.0,Unknown,Y,NODATA!,,,2107.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,78.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 78% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"8, Warwick Place",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2018-10-27 08:51:41,owner-occupied,,,200003668188.0,Address Matched +1819781762442020082117140775102398,"7, Tanyard Lane",Lenham,,ME17 2FB,9410661778,B,B,87,88,House,Detached,2020-08-21,E07000110,E14000700,Kent,2020-08-21,new dwelling,88,89,67,58.0,1.8,10,1.5,117.0,117.0,413.0,415.0,104.0,58.0,174.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.10 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.16 W/m-¦K,Very Good,Very Good,"Room heaters, wood logs",,,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,"Boiler and underfloor heating, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"7, Tanyard Lane, Lenham",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2020-08-21 17:14:07,unknown,15.0,15.0,10093307323.0,Address Matched +1664549799922018091914114400188248,"7, Church Road",Grafty Green,,ME17 2BA,4072930678,D,C,57,78,House,Semi-Detached,2018-09-18,E07000110,E14000700,Kent,2018-09-19,marketed sale,51,72,213,97.0,5.2,52,2.8,108.0,68.0,597.0,490.0,145.0,69.0,101.0,Unknown,N,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,6.0,6.0,42.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Average,Average,"Room heaters, electric",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, oil",Average,Average,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 42% of fixed outlets,Average,Average,oil (not community),0.0,NO DATA!,,,,N,natural,"7, Church Road, Grafty Green",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2018-09-19 14:11:44,owner-occupied,,,200003703712.0,Address Matched +75044049252010112313593498209647,18 Barden Court,St. Lukes Avenue,,ME14 5AP,6716984468,C,C,80,80,Flat,Mid-Terrace,2010-11-23,E07000110,E14000804,Kent,2010-11-23,marketed sale,73,73,289,289.0,1.7,43,1.7,24.0,24.0,139.0,139.0,116.0,116.0,39.84,dual,N,1st,Y,2.0,2401.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,100.0,0.0,"Electric immersion, off-peak",Average,Poor,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,"Pitched, 250 mm loft insulation",Very Good,Very Good,Electric storage heaters,Average,Poor,Manual charge control,Poor,Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity - this is for backwards compatibility only and should not be used,0.0,heated corridor,,2.3,0.0,N,natural,"18 Barden Court, St. Lukes Avenue",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1991-1995,2010-11-23 13:59:34,owner-occupied,,,200003720823.0,Address Matched +1125797289962014041412502382148694,"47, Freshland Road",,,ME16 0WH,9824812278,C,B,69,83,House,Detached,2014-04-14,E07000110,E14000804,Kent,2014-04-14,marketed sale,72,87,166,78.0,3.2,28,1.3,134.0,67.0,620.0,550.0,152.0,89.0,118.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,6.0,6.0,0.0,0.0,From main system,Good,Good,"Suspended, limited insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, wood logs",,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"47, Freshland Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2014-04-14 12:50:23,owner-occupied,9.0,0.0,10022901699.0,Address Matched +1667732621452018101516403396989365,Flat 60,Brenchley House,123-135 Week Street,ME14 1FX,3547160678,C,C,76,76,Flat,Mid-Terrace,2018-10-15,E07000110,E14000804,Kent,2018-10-15,new dwelling,83,83,216,216.0,0.8,38,0.8,20.0,20.0,134.0,134.0,91.0,91.0,20.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,Community scheme,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.30 W/m-¦K,Good,Good,,,,(other premises above),,,Community scheme,Good,Good,"Charging system linked to use of community heating, programmer and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,NO DATA!,,NO DATA!,,,,,NO DATA!,"Flat 60, Brenchley House, 123-135 Week Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2018-10-15 16:40:33,unknown,6.0,6.0,10094440736.0,Address Matched +1781844112762020020316334508598040,8 Robins Court,Wordsworth Road,Penenden Heath,ME14 2HJ,4042198678,E,C,53,72,Flat,End-Terrace,2020-01-31,E07000110,E14000804,Kent,2020-02-03,marketed sale,51,76,395,193.0,3.2,69,1.5,56.0,42.0,634.0,320.0,71.0,76.0,46.0,dual,Y,1st,Y,,2602.0,100.0,double glazing installed before 2002,Normal,0.0,2.0,2.0,67.0,0.0,Gas multipoint,Average,Average,(another dwelling below),NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,"Pitched, 75 mm loft insulation",Average,Average,"Room heaters, mains gas",Average,Average,Appliance thermostats,Good,Good,Low energy lighting in 67% of fixed outlets,Good,Good,mains gas (not community),0.0,unheated corridor,5.52,,,N,natural,"8 Robins Court, Wordsworth Road, Penenden Heath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2020-02-03 16:33:45,rental (private),,,200003707513.0,Address Matched +779110239262012042318402317578212,Calderbourne,Ashford Drive,Kingswood,ME17 3PA,1187377968,E,C,54,72,Bungalow,Detached,2012-04-23,E07000110,E14000700,Kent,2012-04-23,marketed sale,48,68,260,148.0,6.2,50,3.6,115.0,59.0,974.0,794.0,125.0,72.0,124.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,6.0,6.0,6.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 6% of fixed outlets,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"Calderbourne, Ashford Drive, Kingswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2012-04-23 18:40:23,owner-occupied,17.0,1.0,, +1651242349702018080109141057982258,8 Perrymede Road,Allington,,ME16 9FT,781349578,B,B,87,88,House,Semi-Detached,2018-07-25,E07000110,E14000804,Kent,2018-08-01,new dwelling,88,91,67,51.0,1.0,12,0.8,64.0,64.0,199.0,200.0,92.0,50.0,85.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.19 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.16 W/m-¦K,Good,Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"8 Perrymede Road, Allington",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2018-08-01 09:14:10,unknown,14.0,14.0,10093306540.0,Address Matched +434454539542010021116294977209098,"23, Roundel Way",Marden,,TN12 9TW,8520932768,D,C,60,70,House,Detached,2010-02-11,E07000110,E14000804,Kent,2010-02-11,marketed sale,63,72,241,185.0,5.9,35,4.4,179.0,90.0,896.0,733.0,174.0,147.0,167.24,Single,Y,NO DATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,8.0,8.0,0.0,1.0,From main system,Good,Good,"Solid, limited insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, wood logs",,,"Pitched, 100mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,0.0,N,natural,"23, Roundel Way, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1996-2002,2010-02-11 16:29:49,owner-occupied,,,200003711280.0,Address Matched +1472674479442016081909494541669218,"13, Rainham Close",,,ME15 6UQ,1489376478,E,B,50,82,House,Semi-Detached,2016-08-19,E07000110,E14000804,Kent,2016-08-19,ECO assessment,43,79,394,122.0,5.1,69,1.6,100.0,50.0,858.0,516.0,192.0,72.0,74.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,0.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,2.32,,N,natural,"13, Rainham Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2016-08-19 09:49:45,owner-occupied,,,200003682607.0,Address Matched +1221801661612014102809093190249420,"15, Arundel Square",,,ME15 6HB,4078109278,B,B,82,84,Flat,Semi-Detached,2014-10-28,E07000110,E14000804,Kent,2014-10-28,marketed sale,86,88,85,72.0,1.2,16,1.1,110.0,55.0,179.0,185.0,114.0,114.0,79.0,Single,Y,Ground,N,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,0.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,unheated corridor,1.0,,0.0,,natural,"15, Arundel Square",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2014-10-28 09:09:31,owner-occupied,8.0,0.0,10022895115.0,Address Matched +216205689242010042822235656602688,"3, The Mews",Lesley Place,,ME16 0TU,1226786568,E,D,50,62,House,Mid-Terrace,2010-04-28,E07000110,E14000804,Kent,2010-04-28,marketed sale,45,50,438,384.0,5.6,66,4.9,98.0,49.0,596.0,498.0,204.0,144.0,57.6,dual,N,NO DATA!,,,2401.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,0.0,0.0,"Electric immersion, off-peak",Poor,Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, partial insulation (assumed)",Average,Average,"Room heaters, electric",,,"Roof room(s), ceiling insulated",Average,Average,Electric storage heaters,Poor,Very Poor,Manual charge control,Poor,Poor,No low energy lighting,Very Poor,Very Poor,electricity - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.39,0.0,N,natural,"3, The Mews, Lesley Place",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1976-1982,2010-04-28 22:23:56,owner-occupied,,,200003670301.0,Address Matched +416087552132009123011280721268099,1 Oak Cottages,The Green,Bearsted,ME14 4DX,5941011768,C,C,71,79,House,Mid-Terrace,2009-12-29,E07000110,E14000700,Kent,2009-12-30,rental (private),67,76,226,167.0,3.2,37,2.3,74.0,42.0,449.0,358.0,114.0,94.0,83.94,Single,Y,NO DATA!,,,2102.0,100.0,double glazing installed during or after 2002,Normal,1.0,4.0,4.0,25.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Timber frame, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Roof room(s), insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,Low energy lighting in 25% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.24,0.0,N,natural,"1 Oak Cottages, The Green, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2009-12-30 11:28:07,rental (private),,,200003695096.0,Address Matched +293797349222019042322495372878751,Flat 34 Pevensey Court,St. Peters Street,,ME16 0GQ,5782452668,C,B,78,81,Flat,Mid-Terrace,2019-04-23,E07000110,E14000804,Kent,2019-04-23,rental (social),66,69,241,220.0,2.5,41,2.2,57.0,57.0,260.0,206.0,164.0,164.0,60.0,dual,N,1st,N,,2401.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,1.0,100.0,0.0,"Electric immersion, off-peak",Average,Poor,"To external air, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,(another dwelling above),,,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,unheated corridor,5.73,,,N,natural,"Flat 34 Pevensey Court, St. Peters Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2019-04-23 22:49:53,rental (social),,,10022893631.0,Address Matched +356293408212015070915241198050962,"6, The Laxey",Tovil,,ME15 6FX,9273886668,E,B,52,81,House,Detached,2015-07-08,E07000110,E14000804,Kent,2015-07-09,ECO assessment,46,78,303,107.0,7.5,53,2.7,106.0,76.0,1402.0,754.0,196.0,80.0,141.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,8.0,8.0,60.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 60% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"6, The Laxey, Tovil",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2015-07-09 15:24:11,owner-occupied,,,200003666050.0,Address Matched +612419939022011052414223095198349,4 Manor Cottages,East Sutton Hill,East Sutton,ME17 3DJ,4963345868,E,D,53,56,House,Semi-Detached,2011-04-01,E07000110,E14000700,Kent,2011-05-24,rental (private),50,53,348,320.0,4.0,67,3.6,65.0,33.0,662.0,632.0,71.0,71.0,59.11,Single,Y,NODATA!,,,2107.0,55.0,double glazing installed during or after 2002,Normal,2.0,6.0,6.0,0.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Partial double glazing,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,2.38,0.0,,natural,"4 Manor Cottages, East Sutton Hill, East Sutton",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2011-05-24 14:22:30,rental (private),11.0,0.0,200003731870.0,Address Matched +801192109022013070907494869088507,"24, Corner Farm Road",Staplehurst,,TN12 0PS,656039968,D,B,63,85,House,Semi-Detached,2013-07-08,E07000110,E14000804,Kent,2013-07-09,marketed sale,60,85,212,68.0,4.0,41,1.3,107.0,55.0,617.0,440.0,161.0,77.0,97.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,2.0,5.0,5.0,4.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 4% of fixed outlets,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"24, Corner Farm Road, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1950-1966,2013-07-09 07:49:48,owner-occupied,28.0,1.0,200003679014.0,Address Matched +721494479932011110811174304068898,"6, Keele Way",,,ME15 9WW,7804813968,B,B,84,84,House,Mid-Terrace,2011-11-08,E07000110,E14000700,Kent,2011-11-08,new dwelling,88,88,74,74.0,1.1,14,1.1,58.0,58.0,222.0,222.0,45.0,45.0,77.32,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,10.0,,"From main system, plus solar",Very Good,Very Good,Average thermal transmittance 0.18 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.23 W/m?K,Very Good,Very Good,"Room heaters, electric",,,Average thermal transmittance 0.10 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 83% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.31,,,NO DATA!,"6, Keele Way",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2011-11-08 11:17:43,,12.0,10.0,10014311583.0,Address Matched +597043709762018043020402624808488,"29, Willington Green",,,ME15 8AY,8289024868,D,C,66,74,Flat,Mid-Terrace,2018-04-30,E07000110,E14000700,Kent,2018-04-30,rental (social),66,77,301,205.0,2.0,53,1.4,47.0,29.0,367.0,259.0,73.0,73.0,38.0,Single,Y,Ground,N,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,1.0,1.0,40.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 40% of fixed outlets,Average,Average,mains gas (not community),0.0,no corridor,,,,N,natural,"29, Willington Green",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2018-04-30 20:40:26,rental (social),,,200003684532.0,Address Matched +596957762932011022415025906268008,"6, Leonard Gould Way",Loose,,ME15 9FX,6896024868,B,B,82,82,House,Detached,2011-02-24,E07000110,E14000700,Kent,2011-02-24,new dwelling,82,82,112,112.0,2.4,18,2.4,81.0,81.0,382.0,382.0,130.0,130.0,131.78,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,,From main system,Very Good,Very Good,Average thermal transmittance 0.12 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m?K,Very Good,Very Good,"Room heaters, electric",,,Average thermal transmittance 0.13 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Very Good,Very Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in 86% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.45,,,NO DATA!,"6, Leonard Gould Way, Loose",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2011-02-24 15:02:59,,,,10014311123.0,Address Matched +769999519242013111114151392770448,18 Crundale,Union Street,,ME14 1TX,2261917968,C,C,76,78,Flat,Mid-Terrace,2013-10-04,E07000110,E14000804,Kent,2013-11-11,none of the above,80,82,146,130.0,1.3,28,1.2,30.0,30.0,245.0,218.0,99.0,99.0,47.0,Single,Y,5th,N,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,2.0,2.0,100.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,4.3,,0.0,,natural,"18 Crundale, Union Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2013-11-11 14:15:13,rental (social),5.0,5.0,200003700837.0,Address Matched +48169919922010060109432425618070,Flat 10 Bellwood Court,Sutton Road,,ME15 8RB,7206175568,B,B,87,88,Flat,NO DATA!,2010-05-19,E07000110,E14000700,Kent,2010-06-01,rental (social),88,88,96,91.0,1.0,16,1.0,52.0,37.0,162.0,163.0,86.0,86.0,65.58,Single,Y,1st,N,3.0,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,60.0,0.0,From main system,Very Good,Very Good,(other premises below),,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 60% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,heated corridor,,2.32,0.0,N,natural,"Flat 10 Bellwood Court, Sutton Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2007 onwards,2010-06-01 09:43:24,rental (social),,,10014306255.0,Address Matched +5684f0bf402ed3bc8c06eaf5a2e7bad633024b9667d142fe0b88191ac5f8887c,8 MCALPINE CRESCENT,LOOSE,,ME15 0AU,10001575003,C,B,70,86,House,Semi-Detached,2021-07-05,E07000110,E14000804,Kent,2021-07-05,rental,68,84,223,94.0,2.5,39,1.1,54.0,54.0,410.0,384.0,115.0,73.0,63.0,Single,Y,,,,,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.28,0.0,N,natural,"8 MCALPINE CRESCENT, LOOSE",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2021-07-05 13:14:48,Rented (social),8.0,,200003663381.0,Energy Assessor +389499420262009102918252049318351,1 Cedar Court,Ardenlee Drive,,ME14 5LT,5415229668,D,C,57,77,Flat,Semi-Detached,2009-10-29,E07000110,E14000804,Kent,2009-10-29,rental (private),51,74,325,172.0,5.2,54,2.7,103.0,51.0,695.0,393.0,164.0,119.0,96.02,Single,Y,Ground,N,3.0,2104.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,0.0,0.0,From main system,Average,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Average,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,unheated corridor,6.23,,0.0,N,natural,"1 Cedar Court, Ardenlee Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,,2009-10-29 18:25:20,rental (private),,,200003705881.0,Address Matched +1192049192922020091622525586468380,"55, Hereford Road",,,ME15 7NB,8889986278,D,B,67,86,House,Semi-Detached,2020-09-16,E07000110,E14000700,Kent,2020-09-16,marketed sale,67,87,222,82.0,3.0,36,1.1,68.0,68.0,616.0,447.0,82.0,53.0,85.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, wood logs",,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"55, Hereford Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2020-09-16 22:52:55,owner-occupied,,,200003712368.0,Address Matched +380800659922012041816215288688642,"11, Aspian Drive",Coxheath,,ME17 4JZ,4873568668,D,A,64,93,House,Semi-Detached,2012-04-18,E07000110,E14000804,Kent,2012-04-18,marketed sale,63,95,241,12.0,2.6,46,0.2,61.0,33.0,415.0,292.0,114.0,66.0,57.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,17.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, partial insulation (assumed)",Average,Average,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 17% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"11, Aspian Drive, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1976-1982,2012-04-18 16:21:52,owner-occupied,6.0,1.0,200003714129.0,Address Matched +195152290262008112518425694148828,Flat 13/A Elizabeth House,Alexandra Street,,ME14 2BU,2904974568,D,C,64,76,Flat,Mid-Terrace,2008-11-24,E07000110,E14000804,Kent,2008-11-25,rental (private),61,66,433,382.0,2.4,65,2.1,31.0,17.0,151.0,164.0,192.0,85.0,36.1,dual,N,Ground,N,3.0,2699.0,100.0,double glazing installed before 2002,Normal,0.0,1.0,1.0,25.0,0.0,"Electric immersion, off-peak",Very Poor,Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,(another dwelling above),,,No system present: electric heaters assumed,Average,Poor,,Very Poor,Very Poor,Low energy lighting in 25% of fixed outlets,Average,Average,electricity - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.35,0.0,N,natural,"Flat 13/A Elizabeth House, Alexandra Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2008-11-25 18:42:56,rental (private),,,200003704579.0,Address Matched +350100880922009082611400076628241,9 Crown Wood Court,Wallis Avenue,,ME15 9DX,4736846668,B,B,89,89,Flat,Enclosed End-Terrace,2009-05-12,E07000110,E14000700,Kent,2009-08-26,new dwelling,88,88,93,93.0,1.0,15,1.0,29.0,29.0,162.0,162.0,66.0,66.0,64.54,standard tariff,,ground floor,,,,,NO DATA!,NO DATA!,,,,,,From main system,Very Good,Very Good,Average thermal transmittance 0.20 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.18 W/m?K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.35,,,NO DATA!,"9 Crown Wood Court, Wallis Avenue",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2009-08-26 11:40:00,,,,10014307312.0,Address Matched +1644023199262018062711123348268198,Lock House,The Priory,East Farleigh,ME15 0JH,9482988578,C,B,71,84,House,Detached,2018-06-26,E07000110,E14000804,Kent,2018-06-27,rental (private),67,82,200,102.0,3.1,35,1.6,71.0,71.0,506.0,462.0,128.0,80.0,88.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,82.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 82% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"Lock House, The Priory, East Farleigh",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2018-06-27 11:12:33,rental (private),,,200003673452.0,Address Matched +901845909432014112106541269978799,"22, Raynham Villas",Hunton Road,,TN12 9SZ,999736078,D,C,55,79,House,End-Terrace,2014-11-19,E07000110,E14000804,Kent,2014-11-21,assessment for green deal,58,81,277,115.0,3.2,49,1.3,79.0,43.0,482.0,427.0,342.0,177.0,66.0,Single,N,NODATA!,,,2206.0,100.0,double glazing installed during or after 2002,Normal,1.0,4.0,4.0,14.0,0.0,"From main system, no cylinder thermostat",Very Poor,Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Average,Average,"Air source heat pump, radiators, electric",Average,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 14% of fixed outlets,Poor,Poor,electricity (not community),0.0,NO DATA!,,,0.0,,natural,"22, Raynham Villas, Hunton Road",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1983-1990,2014-11-21 06:54:12,rental (social),14.0,2.0,200003723882.0,Address Matched +1300278360512015032511121395250834,"2, Howland Road",Marden,,TN12 9HQ,8449054378,C,B,73,90,House,Mid-Terrace,2015-03-24,E07000110,E14000804,Kent,2015-03-25,marketed sale,75,91,202,41.0,1.5,36,0.3,48.0,30.0,309.0,311.0,72.0,45.0,43.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,40.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 40% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"2, Howland Road, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1900-1929,2015-03-25 11:12:13,owner-occupied,,,200003710845.0,Address Matched +1619838987832018032907182150278606,"3, Howard Drive",,,ME16 0QG,8640617578,D,B,68,83,Bungalow,Detached,2018-03-27,E07000110,E14000804,Kent,2018-03-29,marketed sale,64,81,219,102.0,3.1,39,1.5,88.0,57.0,526.0,462.0,100.0,67.0,81.0,Unknown,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,45.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, 270 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 45% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"3, Howard Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2018-03-29 07:18:21,owner-occupied,,,200003704258.0,Address Matched +992908339922013121418193752748607,"3, Chillington Street",,,ME14 2RT,583382178,D,B,55,88,House,Mid-Terrace,2013-12-14,E07000110,E14000804,Kent,2013-12-14,assessment for green deal,52,89,299,49.0,3.7,58,0.6,65.0,39.0,596.0,339.0,154.0,63.0,63.0,Unknown,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,33.0,0.0,From main system,Average,Average,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, mains gas",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Average,Programmer and room thermostat,Average,Average,Low energy lighting in 33% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"3, Chillington Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2013-12-14 18:19:37,owner-occupied,9.0,3.0,200003701990.0,Address Matched +1790641142022020030616370339568170,"1, Pickers Road",Allington,,ME16 9GB,7306459678,B,B,88,89,House,End-Terrace,2020-03-06,E07000110,E14000804,Kent,2020-03-06,new dwelling,87,89,62,52.0,1.6,11,1.3,90.0,90.0,312.0,313.0,103.0,57.0,142.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.20 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.16 W/m-¦K,Good,Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"1, Pickers Road, Allington",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2020-03-06 16:37:03,unknown,34.0,34.0,10093306717.0,Address Matched +516517236712010072113440591200576,"34, Beaver Road",Allington,,ME16 0FN,5637618768,C,B,77,81,House,Mid-Terrace,2010-07-21,E07000110,E14000804,Kent,2010-07-21,rental (private),75,79,198,164.0,2.0,33,1.6,57.0,34.0,284.0,264.0,121.0,101.0,59.78,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,3.0,3.0,31.0,0.0,From main system,Good,Good,"Suspended, limited insulation (assumed)",,,Fully double glazed,Average,Average,"Timber frame, as built, insulated (assumed)",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 31% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.35,0.0,N,natural,"34, Beaver Road, Allington",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2010-07-21 13:44:05,rental (private),,,200003706449.0,Address Matched +679540829402011091921132293099428,"34, Queen Elizabeth Square",,,ME15 9DG,6458420968,D,C,62,69,House,Mid-Terrace,2011-09-12,E07000110,E14000700,Kent,2011-09-19,marketed sale,58,67,231,182.0,4.7,45,3.7,67.0,53.0,783.0,619.0,96.0,96.0,105.59,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,5.0,5.0,73.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, loft insulation",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 73% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,2.25,0.0,,natural,"34, Queen Elizabeth Square",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2011-09-19 21:13:22,owner-occupied,11.0,8.0,200003710547.0,Address Matched +189239496432014061309444163068007,Flat 17/A Elizabeth House,Alexandra Street,,ME14 2BU,9793064568,E,C,48,77,Flat,End-Terrace,2014-06-09,E07000110,E14000804,Kent,2014-06-13,none of the above,42,62,560,339.0,3.5,99,2.1,43.0,26.0,612.0,191.0,125.0,104.0,35.0,dual,N,Ground,N,,2602.0,100.0,double glazing installed during or after 2002,Normal,0.0,1.0,1.0,25.0,0.0,"Electric immersion, off-peak",Average,Very Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,(another dwelling above),,,"Room heaters, electric",Poor,Very Poor,Appliance thermostats,Good,Good,Low energy lighting in 25% of fixed outlets,Average,Average,electricity (not community),0.0,no corridor,,,0.0,,natural,"Flat 17/A Elizabeth House, Alexandra Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2014-06-13 09:44:41,rental (private),4.0,1.0,200003704583.0,Address Matched +549144467612010100516154494009983,"176, Plains Avenue",,,ME15 7BB,9303740868,D,C,65,73,House,Semi-Detached,2010-10-05,E07000110,E14000700,Kent,2010-10-05,rental (social),60,69,271,213.0,3.9,45,3.1,79.0,46.0,600.0,481.0,117.0,117.0,87.12,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,4.0,4.0,30.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 30% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.39,0.0,N,natural,"176, Plains Avenue",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2010-10-05 16:15:44,rental (social),,,200003714269.0,Address Matched +446831576512020090710215222000378,Flat 2,"31-32, Marsham Street",,ME14 1HG,3863623768,C,C,77,78,Flat,Mid-Terrace,2020-09-02,E07000110,E14000804,Kent,2020-09-07,rental (private),85,86,184,168.0,0.7,32,0.6,28.0,28.0,167.0,150.0,47.0,47.0,22.0,Unknown,N,1st,N,,2401.0,100.0,"double glazing, unknown install date",Normal,0.0,1.0,1.0,100.0,0.0,Gas instantaneous at point of use,Good,Good,(another dwelling below),NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, insulated (assumed)",Very Good,Very Good,Portable electric heaters (assumed),,,(another dwelling above),,,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,unheated corridor,7.5,,,N,natural,"Flat 2, 31-32, Marsham Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2020-09-07 10:21:52,rental (private),,,10014312469.0,Address Matched +56dfd604187b53482e0bb6566b6b3c125d236cdc15a32cfa8ebe873679c1d0bc,43 THOMAS PLACE,JAMES WHATMAN WAY,,ME14 1FP,2051358868,B,B,82,82,Flat,Enclosed End-Terrace,2021-07-20,E07000110,E14000804,Kent,2021-07-28,rental,84,84,110,110.0,1.2,19,1.2,62.0,62.0,165.0,165.0,108.0,108.0,65.0,Single,N,07,N,,,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,Community scheme,Good,Good,(another dwelling below),,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Very Good,Very Good,,,,(another dwelling above),,,Community scheme,Good,Good,"Flat rate charging, programmer and room thermostat",Poor,Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (community),0.0,unheated corridor,8.26,2.39,0.0,N,natural,"43 THOMAS PLACE, JAMES WHATMAN WAY",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2012 onwards,2021-07-28 15:31:43,Rented (social),7.0,,10014312709.0,Energy Assessor +1601592279062018012910352785498576,"11, Tolhurst Way",Lenham,,ME17 2BY,7823785578,B,A,85,94,House,Semi-Detached,2016-08-01,E07000110,E14000700,Kent,2018-01-29,new dwelling,86,95,75,22.0,1.7,13,0.5,75.0,75.0,283.0,283.0,89.0,55.0,130.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.18 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"11, Tolhurst Way, Lenham",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2018-01-29 10:35:27,unknown,15.0,15.0,10093303681.0,Address Matched +1473754699222016082308341966328296,"3, Penenden Street",,,ME14 2ST,9673976478,D,B,58,86,House,End-Terrace,2016-08-22,E07000110,E14000804,Kent,2016-08-23,marketed sale,50,84,285,73.0,5.5,50,1.5,71.0,71.0,993.0,453.0,156.0,88.0,110.0,Single,Y,NODATA!,,,2107.0,86.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,93.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Mostly double glazing,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 93% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,2.09,,N,natural,"3, Penenden Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2016-08-23 08:34:19,owner-occupied,,,200003702871.0,Address Matched +1500604802352016112914183497269143,"14, Charlesford Avenue",Kingswood,,ME17 3PE,1326278478,E,B,50,81,House,Semi-Detached,2016-11-29,E07000110,E14000700,Kent,2016-11-29,marketed sale,46,80,344,110.0,5.6,60,1.8,81.0,60.0,1131.0,587.0,107.0,72.0,92.0,Single,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,4.0,64.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,Portable electric heaters (assumed),,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 64% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"14, Charlesford Avenue, Kingswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2016-11-29 14:18:34,owner-occupied,,,200003700321.0,Address Matched +1682564299262018112912295591118838,"10, Knoxes Shaw",,,ME16 9FB,3914961678,B,A,85,93,House,Detached,2018-11-29,E07000110,E14000804,Kent,2018-11-29,new dwelling,85,94,79,23.0,1.7,14,0.5,76.0,76.0,285.0,285.0,83.0,50.0,124.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.17 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"10, Knoxes Shaw",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2018-11-29 12:29:55,unknown,15.0,15.0,10093303507.0,Address Matched +211100130902009011312472951619078,"54, Quarry Road",,,ME15 6UD,5956936568,C,C,76,79,House,Mid-Terrace,2009-01-13,E07000110,E14000804,Kent,2009-01-13,rental (social),73,76,186,167.0,2.5,31,2.3,70.0,39.0,312.0,294.0,118.0,118.0,81.04,Single,Y,NO DATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,18.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 18% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.42,0.0,N,natural,"54, Quarry Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2009-01-13 12:47:29,rental (social),,,200003682062.0,Address Matched +97767669042010091510190341609748,"1, Hartnup Street",,,ME16 8LR,9065466468,B,B,83,84,Flat,NO DATA!,2010-09-14,E07000110,E14000804,Kent,2010-09-15,new dwelling,82,83,177,171.0,1.1,29,1.1,33.0,20.0,214.0,216.0,67.0,67.0,37.71,standard tariff,,ground floor,,,,,NO DATA!,NO DATA!,,,,2.0,,From main system,Very Good,Very Good,Average thermal transmittance 0.22 W/m?K,Good,Good,Fully double glazed,Good,Good,Average thermal transmittance 0.30 W/m?K,Good,Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 33% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,,,NO DATA!,"1, Hartnup Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2010-09-15 10:19:03,,6.0,2.0,200003657425.0,Address Matched +1315973554532015042912212779278300,Flat 9 The Old School,"92a, Melville Road",,ME15 7UT,5069365378,D,D,63,63,Flat,NO DATA!,2015-04-29,E07000110,E14000804,Kent,2015-04-29,new dwelling,67,67,293,293.0,2.0,50,2.0,34.0,34.0,341.0,341.0,198.0,198.0,40.0,standard tariff,,ground floor,,,,,NO DATA!,NO DATA!,,,,,0.0,"Electric immersion, standard tariff",Very Poor,Poor,Average thermal transmittance 0.29 W/m-¦K,Good,Good,Fully double glazed,Good,Good,Average thermal transmittance 0.28 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.17 W/m-¦K,Good,Good,"Room heaters, electric",Very Poor,Poor,Programmer and room thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"Flat 9 The Old School, 92a, Melville Road",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2015-04-29 12:21:27,unknown,1.0,1.0,10091194268.0,Address Matched +1479180060452016091322010292960840,"9, Murdoch Chase",Coxheath,,ME17 4FA,8071027478,B,A,84,95,House,NO DATA!,2016-09-13,E07000110,E14000804,Kent,2016-09-13,new dwelling,86,97,87,9.0,1.4,15,0.2,61.0,61.0,240.0,241.0,105.0,56.0,94.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.14 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.20 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"9, Murdoch Chase, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2016-09-13 22:01:02,unknown,11.0,11.0,10093302659.0,Address Matched +890626359102013022806114106572768,Caerglow,Tyland Lane,Sandling,ME14 3BL,5195555078,D,C,57,80,House,Semi-Detached,2013-02-26,E07000110,E14000700,Kent,2013-02-28,marketed sale,54,80,272,103.0,3.8,52,1.5,66.0,42.0,605.0,467.0,146.0,73.0,73.0,Unknown,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,44.0,1.0,From main system,Average,Average,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 44% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"Caerglow, Tyland Lane, Sandling",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2013-02-28 06:11:41,owner-occupied,9.0,4.0,200003672368.0,Address Matched +56fe0ad1da14c82b303044466e8c8c8dac0802872fc45e8ea3ec841b60704826,46 Gilbert Way,,,ME17 3TT,10001513995,B,A,84,95,House,End-Terrace,2021-09-20,E07000110,E14000700,Kent,2021-09-20,new dwelling,86,97,89,6.0,1.3,16,0.1,75.0,75.0,222.0,222.0,69.0,42.0,83.0,standard tariff,,,N,,,100.0,,,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.33,,,,46 Gilbert Way,Maidstone,Faversham and Mid Kent,MAIDSTONE,2017,2021-09-20 15:57:22,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,8.0,,10094441894.0,Energy Assessor +570840310f80b87c2a2bcfc629b726e0f931fa85dd2dadc2a1accc746acaf882,9 Wealden Way,Headcorn,,TN27 9DQ,10001608881,B,A,86,105,House,Detached,2021-08-17,E07000110,E14000700,Kent,2021-08-17,marketed sale,86,104,69,-30.0,2.2,12,-0.9,114.0,114.0,356.0,357.0,99.0,56.0,184.0,standard tariff,,,N,,,100.0,,,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.17 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.1 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.33,,,,"9 Wealden Way, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,2021,2021-08-17 09:28:57,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,20.0,,10093306091.0,Energy Assessor +1786806985912020022107405922900666,April Cottage,Lower Street,Leeds,ME17 1RJ,6673529678,D,C,64,74,House,Detached,2020-02-19,E07000110,E14000700,Kent,2020-02-21,marketed sale,56,66,230,168.0,6.5,41,4.8,163.0,99.0,1132.0,1032.0,90.0,90.0,161.0,Unknown,Y,NODATA!,,,2106.0,50.0,double glazing installed before 2002,Normal,1.0,6.0,6.0,33.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Partial double glazing,Poor,Poor,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 33% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"April Cottage, Lower Street, Leeds",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2020-02-21 07:40:59,owner-occupied,,,200003698456.0,Address Matched +419298329022010030113401611398470,7 Nethermount,Bearsted,,ME14 4FE,7120231768,B,B,85,85,House,Detached,2010-03-01,E07000110,E14000700,Kent,2010-03-01,new dwelling,84,84,89,87.0,2.9,15,2.8,125.0,102.0,357.0,360.0,149.0,149.0,197.21,standard tariff,,NO DATA!,,,2110.0,,NO DATA!,NO DATA!,,,,36.0,0.0,From main system,Very Good,Very Good,Average thermal transmittance 0.17 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.26 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Very Good,Very Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in 77% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.44,,,NO DATA!,"7 Nethermount, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2010-03-01 13:40:16,,47.0,36.0,10014309101.0,Address Matched +5710925c863fd24ad2e863200863ec8442d885631fe31bd90208972874e7f916,15 ELLIS FIELD,OTHAM,,ME15 8YL,10001368201,B,A,84,97,House,End-Terrace,2021-09-06,E07000110,E14000804,Kent,2021-09-06,new dwelling,88,100,82,-15.0,1.0,14,-0.1,63.0,63.0,187.0,187.0,65.0,40.0,71.0,standard tariff,,,N,,,100.0,,,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.18 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.39,,,,"15 ELLIS FIELD, OTHAM",Maidstone,Maidstone and The Weald,OTHAM,2021,2021-09-06 09:25:14,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,11.0,,10094440495.0,Address Matched +596942162932011022412331015268906,"56, Leonard Gould Way",Loose,,ME15 9FX,6635914868,B,B,84,84,House,Semi-Detached,2011-02-24,E07000110,E14000700,Kent,2011-02-24,new dwelling,84,84,109,106.0,1.7,18,1.7,65.0,52.0,276.0,277.0,112.0,112.0,95.04,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,,From main system,Very Good,Very Good,Average thermal transmittance 0.12 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m?K,Very Good,Very Good,"Room heaters, electric",,,Average thermal transmittance 0.10 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Very Good,Very Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.45,,,NO DATA!,"56, Leonard Gould Way, Loose",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2011-02-24 12:33:10,,,,10014311173.0,Address Matched +1308114231532015092807281374278905,"15, Devon Road",,,ME15 7EW,3504905378,E,B,52,82,House,Semi-Detached,2015-09-24,E07000110,E14000700,Kent,2015-09-28,ECO assessment,42,78,321,110.0,8.7,57,3.0,100.0,100.0,1609.0,716.0,148.0,115.0,154.0,Single,Y,NODATA!,,,2102.0,100.0,double glazing installed during or after 2002,Normal,1.0,5.0,5.0,75.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 350 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"15, Devon Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2015-09-28 07:28:13,owner-occupied,,,200003715573.0,Address Matched +596995576932011062323023423268005,"98, Mangravet Avenue",,,ME15 9BE,7513024868,C,C,70,70,Bungalow,End-Terrace,2011-06-23,E07000110,E14000700,Kent,2011-06-23,rental (social),71,71,199,195.0,2.3,38,2.3,44.0,33.0,397.0,399.0,75.0,75.0,60.59,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,67.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 67% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,2.4,0.0,,natural,"98, Mangravet Avenue",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1991-1995,2011-06-23 23:02:34,rental (social),6.0,4.0,200003713773.0,Address Matched +238695502412009021917281701910055,Schonsee,Grigg Lane,Headcorn,TN27 9TD,564218568,F,E,34,39,Bungalow,Detached,2009-02-19,E07000110,E14000700,Kent,2009-02-19,marketed sale,34,38,554,507.0,7.7,83,7.0,96.0,48.0,823.0,762.0,259.0,259.0,91.83,dual,Y,NO DATA!,,,2402.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,0.0,1.0,"Electric immersion, off-peak",Very Poor,Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, 100mm loft insulation",Average,Average,Electric storage heaters,Poor,Very Poor,Automatic charge control,Average,Average,No low energy lighting,Very Poor,Very Poor,electricity - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.44,0.0,N,natural,"Schonsee, Grigg Lane, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,England and Wales: 1950-1966,2009-02-19 17:28:17,owner-occupied,,,200003699748.0,Address Matched +789944715452012052114470694220591,"20, Garden Walk",,,ME15 8GA,5190548968,C,B,78,85,Bungalow,Mid-Terrace,2012-05-21,E07000110,E14000700,Kent,2012-05-21,marketed sale,79,85,104,64.0,2.7,20,1.7,85.0,85.0,457.0,457.0,92.0,92.0,138.0,Single,Y,NODATA!,,,2106.0,100.0,triple glazing,Normal,0.0,3.0,3.0,75.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",,,Fully triple glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"20, Garden Walk",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2007 onwards,2012-05-21 14:47:06,owner-occupied,12.0,9.0,10022897107.0,Address Matched +164720825132019053006250177268004,The Flat,"429, Willington Street",,ME15 8HD,2437032568,D,C,59,71,Flat,Detached,2019-05-29,E07000110,E14000700,Kent,2019-05-30,marketed sale,52,68,310,200.0,4.5,55,2.9,65.0,65.0,773.0,519.0,111.0,74.0,83.0,Single,Y,2nd,Y,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,100.0,0.0,From main system,Good,Good,(other premises below),NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,no corridor,,,,N,natural,"The Flat, 429, Willington Street",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2019-05-30 06:25:01,owner-occupied,,,200003681351.0,Address Matched +302832190962009061121105433008821,"151a, Wheeler Street",Penenden Heath,,ME14 2TU,2341913668,F,F,24,25,Flat,Detached,2009-06-10,E07000110,E14000804,Kent,2009-06-11,rental (private),20,20,1111,1110.0,6.7,167,6.7,37.0,21.0,775.0,781.0,104.0,104.0,39.8,dual,Y,1st,N,3.0,2401.0,95.0,double glazing installed before 2002,Normal,0.0,2.0,2.0,20.0,0.0,"Electric immersion, off-peak",Average,Poor,(other premises below),,,Partial double glazing,Average,Average,"Sandstone, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, electric",,,(another dwelling above),,,Electric storage heaters,Poor,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 20% of fixed outlets,Poor,Poor,electricity - this is for backwards compatibility only and should not be used,0.0,unheated corridor,8.12,2.48,0.0,N,natural,"151a, Wheeler Street, Penenden Heath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2009-06-11 21:10:54,rental (private),,,200003729644.0,Address Matched +1339088989222015092820433647748825,2 Orchard Cottage,Cranbrook Road,Staplehurst,TN12 0EU,2425827378,D,A,68,98,House,Mid-Terrace,2015-09-24,E07000110,E14000804,Kent,2015-09-28,FiT application,67,95,190,21.0,4.0,31,0.3,152.0,81.0,754.0,671.0,149.0,89.0,131.0,dual,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,6.0,6.0,13.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, wood logs",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 13% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"2 Orchard Cottage, Cranbrook Road, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1930-1949,2015-09-28 20:43:36,owner-occupied,,,200003676803.0,Address Matched +1699477899442019022112555866212798,"21, Ramsden Way",Marden,,TN12 9GL,428392678,B,A,84,96,House,Semi-Detached,2019-02-21,E07000110,E14000804,Kent,2019-02-21,new dwelling,86,98,81,0.0,1.3,14,0.0,66.0,66.0,194.0,195.0,93.0,51.0,89.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.16 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.19 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"21, Ramsden Way, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,NO DATA!,2019-02-21 12:55:58,unknown,15.0,15.0,10093305357.0,Address Matched +1792606262402020031607070460900368,The Nash Suite Colesdane,Stede Hill,Harrietsham,ME17 1NP,2416869678,D,D,61,61,Flat,Mid-Terrace,2020-03-06,E07000110,E14000700,Kent,2020-03-16,marketed sale,73,73,113,113.0,4.4,24,4.4,113.0,113.0,977.0,977.0,220.0,220.0,179.0,Unknown,Y,Ground,N,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,6.0,6.0,100.0,0.0,From main system,Poor,Good,"Solid, limited insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, LPG",Poor,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,LPG (not community),0.0,unheated corridor,12.7,,,N,natural,"The Nash Suite Colesdane, Stede Hill, Harrietsham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1996-2002,2020-03-16 07:07:04,owner-occupied,,,200003715268.0,Address Matched +1951120d5f87e581ea40457df8f5676e374f9991b8058a30181753e48d248d90,210 Westmorland Road,,,ME15 8JD,10003426816,F,B,38,81,House,Semi-Detached,2022-10-12,E07000110,E14000700,Kent,2022-10-18,rental,35,77,464,131.0,6.8,82,2.0,73.0,73.0,1074.0,523.0,396.0,69.0,84.0,Unknown,Y,,,,,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,100.0,0.0,"Electric immersion, standard tariff",Very Poor,Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, limited insulation (assumed)",Very Poor,Very Poor,"Room heaters, mains gas",Average,Average,No thermostatic control of room temperature,Poor,Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.4,0.0,N,natural,210 Westmorland Road,Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2022-10-18 01:23:50,Rented (social),9.0,,200003680630.0,Energy Assessor +236771470802009030915230757810458,"267, Plains Avenue",,,ME15 7BQ,2805978568,C,C,75,77,House,End-Terrace,2009-03-05,E07000110,E14000700,Kent,2009-03-09,rental (social),72,74,189,177.0,2.8,31,2.7,60.0,43.0,360.0,344.0,122.0,122.0,89.86,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,60.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 60% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.43,0.0,N,natural,"267, Plains Avenue",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2009-03-09 15:23:07,rental (social),,,200003714448.0,Address Matched +499480229922010061423334356748990,"3, Crownfields",Weavering,,ME14 5TH,9597296768,D,C,65,75,House,End-Terrace,2010-06-14,E07000110,E14000700,Kent,2010-06-14,marketed sale,59,72,312,218.0,3.3,52,2.3,42.0,32.0,469.0,354.0,141.0,105.0,73.5,Single,Y,NO DATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,70.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 70% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.34,0.0,N,natural,"3, Crownfields, Weavering",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2010-06-14 23:33:43,owner-occupied,,,200003688239.0,Address Matched +658226926912011072600261997290080,"48, St. Andrews Park",Tarragon Road,,ME16 0WD,62678868,C,C,72,75,Flat,Mid-Terrace,2011-07-25,E07000110,E14000804,Kent,2011-07-26,rental (private),74,78,186,157.0,1.9,35,1.6,60.0,31.0,284.0,272.0,113.0,97.0,54.23,Unknown,Y,1st,N,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,4.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Granite or whin, with internal insulation",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 4% of fixed outlets,Very Poor,Very Poor,mains gas (not community),0.0,unheated corridor,6.98,3.12,0.0,,natural,"48, St. Andrews Park, Tarragon Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2011-07-26 00:26:19,rental (private),25.0,1.0,200003655005.0,Address Matched +438295695332017051818262945968303,"25, Scott Street",,,ME14 2TA,9315362768,D,B,63,86,House,Mid-Terrace,2017-05-18,E07000110,E14000804,Kent,2017-05-18,marketed sale,57,85,266,74.0,3.7,47,1.0,73.0,53.0,664.0,399.0,100.0,68.0,78.0,Single,Y,NODATA!,,,2107.0,100.0,double glazing installed during or after 2002,Normal,3.0,4.0,4.0,61.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 61% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"25, Scott Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2017-05-18 18:26:29,owner-occupied,,,200003669769.0,Address Matched +802751639042012061912143390929688,"3, Lancashire Road",,,ME15 7QD,3015939968,D,B,65,86,House,Mid-Terrace,2012-06-18,E07000110,E14000700,Kent,2012-06-19,marketed sale,64,87,218,61.0,2.9,42,0.9,78.0,39.0,426.0,352.0,124.0,71.0,68.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"3, Lancashire Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2012-06-19 12:14:33,owner-occupied,10.0,0.0,200003683952.0,Address Matched +1068726319002014121008554816840318,"23, Dover Street",,,ME16 8LF,9094818178,D,B,62,90,House,Mid-Terrace,2014-12-09,E07000110,E14000804,Kent,2014-12-10,marketed sale,57,91,268,37.0,3.5,47,0.5,89.0,47.0,536.0,306.0,173.0,69.0,74.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,10.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 10% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"23, Dover Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2014-12-10 08:55:48,owner-occupied,,,200003655547.0,Address Matched +1395772799022016010509284671588515,"24, Park Avenue",,,ME14 5HN,1727921478,D,C,66,80,House,Detached,2015-12-08,E07000110,E14000804,Kent,2016-01-05,none of the above,59,74,200,118.0,6.5,35,3.9,147.0,99.0,1115.0,924.0,200.0,97.0,184.0,dual,Y,NODATA!,,,2104.0,95.0,double glazing installed before 2002,Normal,3.0,7.0,7.0,52.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Mostly double glazing,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 52% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"24, Park Avenue",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2016-01-05 09:28:46,rental (private),,,200003705565.0,Address Matched +727067238032020080615223413068007,"20, Bishops Close",Nettlestead,,ME18 5ES,3733063968,C,B,72,87,House,Semi-Detached,2020-08-05,E07000110,E14000804,Kent,2020-08-06,marketed sale,71,85,176,79.0,2.8,31,1.3,129.0,79.0,471.0,434.0,88.0,60.0,90.0,dual,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,37.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Average,Average,,,,"Roof room(s), insulated (assumed)",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 37% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"20, Bishops Close, Nettlestead",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2020-08-06 15:22:34,owner-occupied,,,200003657172.0,Address Matched +617178749652019031414472797089289,"11, Peter Pease Close",Kingswood,,ME17 3BZ,2948975868,C,C,80,80,Flat,Semi-Detached,2018-12-04,E07000110,E14000700,Kent,2019-03-14,rental (social),83,83,129,129.0,1.1,23,1.1,44.0,44.0,198.0,198.0,85.0,85.0,50.0,Single,Y,1st,Y,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,100.0,0.0,From main system,Good,Good,(another dwelling below),NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Very Good,Very Good,,,,"Pitched, 350 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,6.8,,,N,natural,"11, Peter Pease Close, Kingswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2007 onwards,2019-03-14 14:47:27,rental (social),,,10014312168.0,Address Matched +1023424180912013101115351690979412,Flat 9 Rose Court,Straw Mill Hill,,ME15 6FL,4290005178,C,C,80,80,Flat,NO DATA!,2013-10-11,E07000110,E14000804,Kent,2013-10-11,new dwelling,86,86,115,115.0,0.9,22,0.9,29.0,29.0,219.0,219.0,56.0,56.0,42.0,standard tariff,,ground floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.12 W/mA?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.19 W/mA?K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Flat 9 Rose Court, Straw Mill Hill",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2013-10-11 15:35:16,NO DATA!,20.0,20.0,10014314809.0,Address Matched +10963732032020021706184987968707,"5, Furfield Chase",Boughton Monchelsea,,ME17 4GD,3707767468,C,B,79,88,House,End-Terrace,2020-02-12,E07000110,E14000700,Kent,2020-02-17,marketed sale,78,87,122,64.0,2.5,22,1.3,99.0,99.0,420.0,420.0,97.0,66.0,117.0,Unknown,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,6.0,6.0,86.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Roof room(s), insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 86% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"5, Furfield Chase, Boughton Monchelsea",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2007 onwards,2020-02-17 06:18:49,owner-occupied,,,10022901143.0,Address Matched +800805836552012062313082992220590,Apartment 89 Sandling Park,Sandling Lane,,ME14 2NY,5026629968,C,C,76,76,Flat,Enclosed Mid-Terrace,2012-06-23,E07000110,E14000804,Kent,2012-06-23,marketed sale,69,69,267,267.0,1.8,47,1.8,25.0,25.0,194.0,194.0,108.0,108.0,38.0,dual,N,3rd,Y,,2603.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,100.0,0.0,"Electric immersion, off-peak",Average,Very Poor,(other premises below),,,Fully double glazed,Good,Good,"System built, as built, insulated (assumed)",Good,Good,,,,"Flat, insulated (assumed)",Good,Good,"Room heaters, electric",Poor,Very Poor,Programmer and appliance thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,unheated corridor,4.09,,0.0,,natural,"Apartment 89 Sandling Park, Sandling Lane",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2012-06-23 13:08:29,owner-occupied,6.0,6.0,10014307184.0,Address Matched +255169980222009033008482229258561,Dean Valley,Dean Street,East Farleigh,ME15 0HT,6282889568,E,D,44,55,Flat,Detached,2009-03-25,E07000110,E14000804,Kent,2009-03-30,rental (private),37,43,655,568.0,4.9,98,4.2,46.0,28.0,496.0,400.0,102.0,102.0,49.4,dual,N,1st,Y,2.0,2401.0,,INVALID!,Much More Than Typical,0.0,2.0,1.0,33.0,0.0,"Electric immersion, off-peak",Average,Poor,"To unheated space, insulated",,,Partial double glazing,Poor,Poor,"Timber frame, as built, insulated (assumed)",Good,Good,Portable electric heaters,,,"Pitched, 100mm loft insulation",Average,Average,Electric storage heaters,Poor,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 33% of fixed outlets,Average,Average,electricity - this is for backwards compatibility only and should not be used,0.0,no corridor,,1.98,0.0,N,natural,"Dean Valley, Dean Street, East Farleigh",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2009-03-30 08:48:22,rental (private),,,200003715644.0,Address Matched +1148047469222014052811094813588484,Treetops,Wierton Hill,Boughton Monchelsea,ME17 4JT,8166673278,E,B,47,87,House,Detached,2014-05-28,E07000110,E14000700,Kent,2014-05-28,marketed sale,40,89,282,57.0,7.0,64,1.0,78.0,78.0,1350.0,506.0,245.0,79.0,108.0,dual,Y,NODATA!,,,2107.0,95.0,double glazing installed before 2002,Normal,1.0,5.0,5.0,83.0,1.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Mostly double glazing,Average,Average,"Granite or whinstone, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, oil",Average,Average,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 83% of fixed outlets,Very Good,Very Good,oil (not community),0.0,NO DATA!,,,0.0,,natural,"Treetops, Wierton Hill, Boughton Monchelsea",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2014-05-28 11:09:48,owner-occupied,12.0,10.0,200003679756.0,Address Matched +212220130642009082515280054612758,"28, Gladstone Road",Penenden Heath,,ME14 2AU,3610036568,C,C,71,71,House,Mid-Terrace,2009-08-25,E07000110,E14000804,Kent,2009-08-25,marketed sale,66,67,259,257.0,2.7,43,2.7,39.0,31.0,425.0,427.0,83.0,83.0,69.08,Single,Y,NO DATA!,,,2107.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,74.0,0.0,From main system,Good,Very Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Very Good,"Programmer, TRVs and bypass",Poor,Poor,Low energy lighting in 74% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.48,0.0,N,natural,"28, Gladstone Road, Penenden Heath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2009-08-25 15:28:00,owner-occupied,,,200003701723.0,Address Matched +749633549922012021609531135268652,"36, Fant Lane",,,ME16 8NN,5312455968,D,D,56,62,House,End-Terrace,2012-02-16,E07000110,E14000804,Kent,2012-02-16,marketed sale,52,59,301,254.0,4.4,58,3.7,59.0,42.0,728.0,636.0,92.0,82.0,75.15,Single,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,60.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 60% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,2.4,0.0,,natural,"36, Fant Lane",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2012-02-16 09:53:11,owner-occupied,10.0,6.0,200003674388.0,Address Matched +328825615952009071712185809910768,Flat 4 St. Georges House,St. Georges Square,,ME16 8JQ,7844594668,B,B,81,83,Flat,Semi-Detached,2009-07-17,E07000110,E14000804,Kent,2009-07-17,marketed sale,80,81,179,168.0,1.3,29,1.2,43.0,22.0,185.0,188.0,59.0,59.0,44.35,Single,Y,1st,N,5.0,2107.0,75.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,0.0,0.0,From main system,Good,Very Good,(other premises below),,,Partial double glazing,Average,Average,"Sandstone, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Very Good,"Programmer, TRVs and bypass",Poor,Poor,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,unheated corridor,8.87,2.99,0.0,N,natural,"Flat 4 St. Georges House, St. Georges Square",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2009-07-17 12:18:58,owner-occupied,,,10014306489.0,Address Matched +275001292212009072317352202210063,37 Tovil Green Court,Tovil Green Lane,Tovil,ME15 6NE,301221668,B,B,82,82,Flat,NO DATA!,2009-07-22,E07000110,E14000804,Kent,2009-07-23,new dwelling,84,84,125,120.0,1.4,20,1.3,51.0,38.0,212.0,214.0,97.0,97.0,66.6,standard tariff,,top floor,,,,,NO DATA!,NO DATA!,,,,6.0,,From main system,Good,Very Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.31 W/m?K,Good,Good,,,,Average thermal transmittance 0.16 W/m?K,Good,Good,Community scheme,Good,Very Good,"Unit charging, programmer and TRVs",Good,Good,Low energy lighting in 67% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.42,,,NO DATA!,"37 Tovil Green Court, Tovil Green Lane, Tovil",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2009-07-23 17:35:22,,9.0,6.0,10014306988.0,Address Matched +834371239962012091219550641528012,Orchard Cottage,Dean Street,East Farleigh,ME15 0PR,1418361078,E,C,42,70,House,Detached,2012-09-12,E07000110,E14000804,Kent,2012-09-12,marketed sale,33,56,340,169.0,7.1,81,3.8,96.0,48.0,1091.0,772.0,159.0,95.0,88.0,Single,N,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,0.0,1.0,From main system,Good,Average,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, oil",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,oil (not community),0.0,NO DATA!,,,0.0,,natural,"Orchard Cottage, Dean Street, East Farleigh",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2012-09-12 19:55:06,owner-occupied,8.0,0.0,10091194362.0,Address Matched +57861bd50286cf399b732abdf5dd7dd05cf955625c40d80cc9644f8eacc241e0,1 Sapphire Park,Sutton Valence,,ME17 3XZ,10001322609,B,A,85,95,House,Detached,2021-07-29,E07000110,E14000700,Kent,2021-07-29,new dwelling,86,97,81,10.0,1.5,14,0.2,85.0,85.0,220.0,222.0,95.0,53.0,103.0,standard tariff,,,N,,,100.0,,,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.19 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.1 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.385,,,,"1 Sapphire Park, Sutton Valence",Maidstone,Faversham and Mid Kent,MAIDSTONE,2021,2021-07-29 15:12:55,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,4.0,,10095449271.0,Address Matched +291298322032010121018132821968793,Flat 53 Pevensey Court,St. Peters Street,,ME16 0GQ,2371732668,B,B,81,81,Flat,Enclosed Mid-Terrace,2010-12-10,E07000110,E14000804,Kent,2010-12-10,rental (social),76,76,199,199.0,2.0,30,2.0,43.0,43.0,146.0,146.0,137.0,137.0,65.25,dual,N,1st,N,3.0,2401.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,"Electric immersion, off-peak",Poor,Poor,(other premises below),,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,(another dwelling above),,,Electric storage heaters,Average,Poor,Manual charge control,Poor,Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity - this is for backwards compatibility only and should not be used,0.0,unheated corridor,4.7,2.32,0.0,N,natural,"Flat 53 Pevensey Court, St. Peters Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2010-12-10 18:13:28,rental (social),,,10022893650.0,Address Matched +273556710742009050523211960112438,"301, Upper Fant Road",,,ME16 8DD,3791211668,C,C,76,77,House,Mid-Terrace,2009-04-27,E07000110,E14000804,Kent,2009-05-05,rental (social),73,74,193,185.0,2.4,32,2.3,63.0,35.0,317.0,321.0,98.0,98.0,74.25,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,4.0,4.0,20.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 20% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.44,0.0,N,natural,"301, Upper Fant Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2009-05-05 23:21:19,rental (social),,,200003656240.0,Address Matched +1460326682142020073017532446507408,Flat 4,"60, Buckland Road",,ME16 0SH,1182685478,E,C,42,74,Flat,Enclosed End-Terrace,2020-07-30,E07000110,E14000804,Kent,2020-07-30,rental (private),40,56,606,406.0,3.6,103,2.4,41.0,48.0,749.0,279.0,204.0,147.0,35.0,dual,N,1st,N,,2603.0,0.0,not defined,Normal,0.0,2.0,1.0,67.0,0.0,"Electric immersion, off-peak",Poor,Poor,"Suspended, no insulation (assumed)",NO DATA!,,Single glazed,Very Poor,Very Poor,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,Portable electric heaters (assumed),,,(another dwelling above),,,"Room heaters, electric",Very Poor,Poor,Programmer and appliance thermostats,Good,Good,Low energy lighting in 67% of fixed outlets,Good,Good,electricity (not community),0.0,unheated corridor,4.45,,,N,natural,"Flat 4, 60, Buckland Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2020-07-30 17:53:24,rental (private),,,200003670209.0,Address Matched +482460619652010051023582697900270,"19, Charlesford Avenue",Kingswood,,ME17 3PE,2058975768,C,C,71,72,Bungalow,Semi-Detached,2010-05-10,E07000110,E14000700,Kent,2010-05-10,marketed sale,67,68,246,236.0,2.9,41,2.8,40.0,40.0,437.0,419.0,112.0,112.0,77.32,Single,Y,NO DATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,88.0,0.0,From main system,Good,Very Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Very Good,Programmer and room thermostat,Average,Average,Low energy lighting in 88% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,0.0,N,natural,"19, Charlesford Avenue, Kingswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2010-05-10 23:58:26,owner-occupied,,,200003700326.0,Address Matched +1191755989962014081815333926088244,"14, Holmesdale Close",Loose,,ME15 0BQ,4202886278,B,A,85,95,House,Mid-Terrace,2014-08-18,E07000110,E14000804,Kent,2014-08-18,new dwelling,87,97,78,7.0,1.3,14,0.1,64.0,64.0,237.0,237.0,85.0,51.0,97.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.12 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.22 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"14, Holmesdale Close, Loose",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2014-08-18 15:33:39,owner-occupied,15.0,15.0,10014315582.0,Address Matched +1649593009922018071909430709318738,"9, Ramsden Way",Marden,,TN12 9GL,3035039578,B,A,85,93,House,Detached,2018-07-19,E07000110,E14000804,Kent,2018-07-19,new dwelling,85,92,79,31.0,2.1,14,0.9,90.0,90.0,320.0,321.0,104.0,58.0,152.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.16 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.20 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.12 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"9, Ramsden Way, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,NO DATA!,2018-07-19 09:43:07,unknown,25.0,25.0,10093305351.0,Address Matched +721385689022011110813071033338559,"43, Sheridan Close",,,ME14 2QP,5378813968,C,C,69,74,House,Mid-Terrace,2011-11-07,E07000110,E14000804,Kent,2011-11-08,marketed sale,69,76,210,164.0,2.4,40,1.8,40.0,40.0,377.0,309.0,119.0,97.0,58.8,Single,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,80.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,2.4,0.0,,natural,"43, Sheridan Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2011-11-08 13:07:10,owner-occupied,5.0,4.0,200003670700.0,Address Matched +567261429262010112115103101808690,"135, Bathurst Road",Staplehurst,,TN12 0NL,9055281868,D,C,67,76,House,End-Terrace,2010-11-20,E07000110,E14000804,Kent,2010-11-21,rental (private),63,73,295,216.0,2.8,49,2.1,58.0,34.0,471.0,360.0,85.0,85.0,57.84,dual,Y,NO DATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,30.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 30% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.3,0.0,N,natural,"135, Bathurst Road, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1950-1966,2010-11-21 15:10:31,rental (private),,,200003678262.0,Address Matched +858169979922012111910063243368672,Flat 3 Robin House,Springvale,,ME16 0AT,7461723078,D,C,64,73,Flat,Semi-Detached,2012-11-16,E07000110,E14000804,Kent,2012-11-19,rental (private),45,55,582,456.0,3.0,103,2.3,31.0,21.0,315.0,221.0,90.0,90.0,29.0,dual,N,Ground,N,,2401.0,0.0,not defined,Normal,0.0,1.0,1.0,50.0,0.0,"Electric immersion, off-peak",Average,Very Poor,"Solid, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,(another dwelling above),,,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 50% of fixed outlets,Good,Good,electricity (not community),0.0,unheated corridor,6.67,,0.0,,natural,"Flat 3 Robin House, Springvale",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2012-11-19 10:06:32,rental (private),4.0,2.0,200003667114.0,Address Matched +1302255762302020011507303735409348,"13, Hubbards Lane",Boughton Monchelsea,,ME17 4HY,1323664378,C,B,72,88,House,Mid-Terrace,2020-01-14,E07000110,E14000804,Kent,2020-01-15,marketed sale,71,87,197,71.0,2.4,35,0.9,57.0,57.0,434.0,368.0,86.0,60.0,70.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,100.0,0.0,From main system,Very Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"13, Hubbards Lane, Boughton Monchelsea",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2020-01-15 07:30:37,owner-occupied,,,200003674594.0,Address Matched +1709041019262019032717334013398931,Flat 23,Cornwallis House,Pudding Lane,ME14 1NY,3198163678,C,C,69,69,Flat,Detached,2019-02-21,E07000110,E14000804,Kent,2019-03-27,new dwelling,72,72,218,218.0,1.6,37,1.6,35.0,35.0,326.0,326.0,158.0,158.0,43.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,Electric instantaneous at point of use,Very Poor,Very Poor,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.30 W/m-¦K,Good,Good,,,,(other premises above),,,"Room heaters, electric",Very Poor,Poor,Programmer and appliance thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"Flat 23, Cornwallis House, Pudding Lane",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2019-03-27 17:33:40,owner-occupied,8.0,8.0,, +57d9860fa1db566a44585f884e491bb6cc85201bf11dcc84e5a9e3445477dc8b,29 Pearwood Road,,,ME16 9FY,10001442815,B,B,85,87,House,Semi-Detached,2021-09-01,E07000110,E14000804,Kent,2021-09-01,new dwelling,88,90,77,58.0,1.0,14,0.7,63.0,63.0,195.0,196.0,85.0,48.0,72.0,standard tariff,,,N,,,100.0,,,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.18 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.15 W/m-¦K,Good,Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.32,,,,29 Pearwood Road,Maidstone,Maidstone and The Weald,ALLINGTON,2020,2021-09-01 14:50:49,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,18.0,,10094440314.0,Energy Assessor +57d8edab75fcc66130141142cf00f03b0088efb08ecbd8a1451debdc6b2606f3,13 Boughton Park,,,ME17 2EF,10001356739,B,A,85,98,House,Detached,2021-09-30,E07000110,E14000700,Kent,2021-09-30,new dwelling,86,98,66,4.0,3.3,11,0.2,138.0,138.0,845.0,846.0,242.0,145.0,299.0,standard tariff,,,N,,,100.0,,,,,,100.0,0.0,From main system,Average,Good,Average thermal transmittance 0.20 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.18 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.20 W/m-¦K,Good,Good,"Air source heat pump, underfloor, electric",Good,Very Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",0.0,,,2.79,,,,13 Boughton Park,Maidstone,Faversham and Mid Kent,GRAFTY GREEN,2021,2021-09-30 10:50:44,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,20.0,,10093306156.0,Energy Assessor +274801920222009072317145731328541,32 Tovil Green Court,Tovil Green Lane,Tovil,ME15 6NE,4380221668,B,B,83,84,Flat,NO DATA!,2009-07-22,E07000110,E14000804,Kent,2009-07-23,new dwelling,85,86,124,118.0,1.1,20,1.1,44.0,32.0,179.0,180.0,91.0,91.0,55.2,standard tariff,,top floor,,,,,NO DATA!,NO DATA!,,,,5.0,,From main system,Good,Very Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.31 W/m?K,Good,Good,,,,Average thermal transmittance 0.16 W/m?K,Good,Good,Community scheme,Good,Very Good,"Unit charging, programmer and TRVs",Good,Good,Low energy lighting in 63% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.42,,,NO DATA!,"32 Tovil Green Court, Tovil Green Lane, Tovil",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2009-07-23 17:14:57,,8.0,5.0,10014306983.0,Address Matched +1525032749402017030707302258030478,Flat 4 Ascot House,Epsom Close,,ME15 8XF,8476240578,D,C,62,76,Flat,Mid-Terrace,2017-03-03,E07000110,E14000700,Kent,2017-03-07,rental (social),57,61,382,342.0,2.7,65,2.4,38.0,41.0,459.0,235.0,160.0,126.0,42.0,Unknown,N,Ground,N,,2603.0,100.0,double glazing installed before 2002,Normal,0.0,2.0,2.0,83.0,0.0,"Electric immersion, off-peak",Poor,Poor,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Room heaters, electric",Very Poor,Poor,Programmer and appliance thermostats,Good,Good,Low energy lighting in 83% of fixed outlets,Very Good,Very Good,electricity (not community),0.0,no corridor,,,,N,natural,"Flat 4 Ascot House, Epsom Close",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1991-1995,2017-03-07 07:30:22,rental (social),,,200003681342.0,Address Matched +1729250696132019061418263052978801,"32, Lansdowne Avenue",,,ME15 9DN,9132805678,C,B,69,85,House,Mid-Terrace,2019-06-14,E07000110,E14000700,Kent,2019-06-14,rental (private),63,82,207,93.0,4.2,37,1.9,76.0,76.0,712.0,511.0,108.0,78.0,114.0,Single,Y,NODATA!,,,2102.0,100.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,100.0,0.0,From main system,Very Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"32, Lansdowne Avenue",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2019-06-14 18:26:30,rental (private),,,200003710224.0,Address Matched +1720850987812019051509062294910162,5 Pennefather Close,,,TN12 0GR,1293744678,B,A,85,95,House,Semi-Detached,2019-05-15,E07000110,E14000804,Kent,2019-05-15,new dwelling,87,97,78,4.0,1.3,14,0.1,68.0,68.0,211.0,211.0,75.0,44.0,93.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.14 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.27 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,5 Pennefather Close,Maidstone,Maidstone and The Weald,TONBRIDGE,NO DATA!,2019-05-15 09:06:22,unknown,13.0,13.0,10094441934.0,Address Matched +1323477410752015052711213192250034,"2, Wilberforce Road",Coxheath,,ME17 4HA,425026378,D,C,66,79,House,Semi-Detached,2015-05-20,E07000110,E14000804,Kent,2015-05-27,marketed sale,59,74,218,134.0,5.2,38,3.2,114.0,72.0,865.0,806.0,177.0,78.0,135.0,Single,Y,NODATA!,,,2106.0,95.0,double glazing installed before 2002,Normal,2.0,6.0,6.0,43.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Mostly double glazing,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 43% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"2, Wilberforce Road, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2015-05-27 11:21:31,owner-occupied,,,200003713387.0,Address Matched +1365262339022016070809355479568966,"21, Bedgebury Close",,,ME14 5QZ,6763319378,D,B,60,84,House,Semi-Detached,2016-07-06,E07000110,E14000804,Kent,2016-07-08,ECO assessment,54,83,254,84.0,5.0,44,1.7,68.0,68.0,987.0,557.0,143.0,77.0,113.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,2.41,,N,natural,"21, Bedgebury Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2016-07-08 09:35:54,owner-occupied,,,200003672022.0,Address Matched +57f623bd8e9889ba49157133f2971545b4b99ad9d829976731a3bd083f2506d1,25 ELLIS FIELD,OTHAM,,ME15 8YL,10001441366,B,A,85,96,House,Semi-Detached,2021-08-19,E07000110,E14000804,Kent,2021-08-19,new dwelling,87,98,76,2.0,1.2,13,0.1,75.0,75.0,216.0,216.0,72.0,44.0,94.0,standard tariff,,,N,,,100.0,,,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.18 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.39,,,,"25 ELLIS FIELD, OTHAM",Maidstone,Maidstone and The Weald,OTHAM,2021,2021-08-19 10:34:08,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,11.0,,10094440500.0,Address Matched +1700875609702019022720524560312568,First Floor,44 Victoria Street,,ME16 8JA,1710303678,C,C,73,73,Flat,Mid-Terrace,2019-02-26,E07000110,E14000804,Kent,2019-02-27,rental (private),72,72,179,179.0,2.2,32,2.2,56.0,56.0,355.0,355.0,120.0,120.0,71.0,Unknown,Y,1st,Y,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,3.0,3.0,100.0,0.0,From main system,Good,Good,(another dwelling below),NO DATA!,,Fully double glazed,Average,Average,"Solid brick, with external insulation",Good,Good,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,no corridor,,,,N,natural,"First Floor, 44 Victoria Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2019-02-27 20:52:45,rental (private),,,200003667941.0,Address Matched +102312289062015041017550566118675,"Flat 5, Providence Chapel",West End,Marden,TN12 9HY,7687896468,D,D,58,63,Flat,Semi-Detached,2015-04-09,E07000110,E14000804,Kent,2015-04-10,marketed sale,54,60,362,309.0,3.1,64,2.6,62.0,34.0,559.0,490.0,115.0,115.0,49.0,Single,Y,1st,Y,,2104.0,67.0,double glazing installed before 2002,Normal,1.0,2.0,2.0,17.0,0.0,From main system,Good,Good,(another dwelling below),NO DATA!,,Partial double glazing,Poor,Poor,"Solid brick, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 17% of fixed outlets,Poor,Poor,mains gas (not community),0.0,no corridor,,,,N,natural,"Flat 5, Providence Chapel, West End, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: before 1900,2015-04-10 17:55:05,owner-occupied,,,200003710721.0,Address Matched +243718982332017021816032046968405,"556, Tonbridge Road",,,ME16 9DH,8516409568,D,B,59,82,House,Semi-Detached,2017-02-14,E07000110,E14000804,Kent,2017-02-18,ECO assessment,51,79,270,104.0,5.4,48,2.1,121.0,69.0,945.0,577.0,119.0,79.0,113.0,Single,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,24.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 25 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 24% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"556, Tonbridge Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2017-02-18 16:03:20,owner-occupied,,,200003664415.0,Address Matched +1011240919222013092015031944908947,"2, West Marsh Close",,,ME15 8QS,4473114178,C,B,69,87,House,End-Terrace,2013-09-20,E07000110,E14000700,Kent,2013-09-20,assessment for green deal,69,88,182,54.0,2.6,35,0.8,48.0,48.0,467.0,370.0,102.0,62.0,73.0,dual,Y,NODATA!,,,2104.0,90.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Mostly double glazing,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"2, West Marsh Close",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2013-09-20 15:03:19,owner-occupied,10.0,10.0,200003685594.0,Address Matched +1817710802962020081306244811498450,"14, Fauchons Close",Bearsted,,ME14 4BB,5192051778,C,B,69,84,Bungalow,Detached,2020-08-11,E07000110,E14000700,Kent,2020-08-13,marketed sale,65,81,211,99.0,3.2,37,1.5,68.0,68.0,517.0,456.0,132.0,80.0,85.0,Unknown,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"14, Fauchons Close, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2020-08-13 06:24:48,owner-occupied,,,200003687594.0,Address Matched +742412493952012012322161090220690,Flat 13/A Lambard House,Wheeler Street,,ME14 2UE,6080305968,C,C,76,77,Maisonette,Mid-Terrace,2012-01-22,E07000110,E14000804,Kent,2012-01-23,marketed sale,79,80,149,142.0,1.6,28,1.5,55.0,35.0,284.0,286.0,73.0,73.0,56.86,Unknown,Y,Ground,Y,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,43.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Flat, limited insulation (assumed)",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 43% of fixed outlets,Average,Average,mains gas (not community),0.0,no corridor,,2.88,0.0,,natural,"Flat 13/A Lambard House, Wheeler Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1976-1982,2012-01-23 22:16:10,owner-occupied,7.0,3.0,200003704681.0,Address Matched +350457828612009082611522104910964,16 Crown Wood Court,Wallis Avenue,,ME15 9DX,9415846668,B,B,90,90,Flat,Enclosed End-Terrace,2009-05-12,E07000110,E14000700,Kent,2009-08-26,new dwelling,90,90,83,83.0,0.9,13,0.9,29.0,29.0,148.0,148.0,66.0,66.0,64.54,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,,,From main system,Very Good,Very Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.19 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.15 W/m?K,Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.35,,,NO DATA!,"16 Crown Wood Court, Wallis Avenue",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2009-08-26 11:52:21,,,,10014307319.0,Address Matched +1431371219022016041114523383958016,Flat 32,Concorde House,London Road,ME16 8QA,1847183478,E,E,53,53,Flat,End-Terrace,2016-04-05,E07000110,E14000804,Kent,2016-04-11,rental (private),50,50,394,394.0,3.4,67,3.4,38.0,38.0,651.0,651.0,165.0,165.0,51.0,dual,N,3rd,N,,2107.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,100.0,0.0,From main system,Poor,Poor,(another dwelling below),NO DATA!,,Fully double glazed,Good,Good,"System built, with internal insulation",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, electric",Very Poor,Poor,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,unheated corridor,15.9,2.5,,N,natural,"Flat 32, Concorde House, London Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2016-04-11 14:52:33,rental (private),,,, +1480989622812017012008042293230441,"14, Hop Pocket Way",Headcorn,,TN27 9AF,4176237478,B,A,84,93,House,Detached,2017-01-20,E07000110,E14000700,Kent,2017-01-20,new dwelling,85,94,83,27.0,1.9,15,0.7,76.0,76.0,305.0,307.0,115.0,63.0,131.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.26 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.10 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"14, Hop Pocket Way, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,NO DATA!,2017-01-20 08:04:22,unknown,20.0,20.0,10093302562.0,Address Matched +1028318839802013102016171119572608,Flat 61 Pevensey Court,St. Peters Street,,ME16 0GQ,8812435178,B,B,82,82,Flat,Mid-Terrace,2013-10-20,E07000110,E14000804,Kent,2013-10-20,marketed sale,72,72,200,200.0,2.0,35,2.0,43.0,43.0,151.0,151.0,121.0,121.0,57.0,dual,N,1st,N,,2402.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,"Electric immersion, off-peak",Average,Very Poor,"To unheated space, insulated (assumed)",,,Fully double glazed,Good,Good,"Timber frame, as built, insulated (assumed)",Good,Good,Portable electric heaters (assumed),,,(another dwelling above),,,Electric storage heaters,Average,Very Poor,Automatic charge control,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,unheated corridor,5.0,,0.0,,natural,"Flat 61 Pevensey Court, St. Peters Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2013-10-20 16:17:11,owner-occupied,6.0,6.0,10022893658.0,Address Matched +58256705844d28631bac5d8279fd883dcb1c96f528adbdcb7a69359f62f7cbc6,4 NORTH WAY,PENENDEN HEATH,,ME14 2ET,10001566669,E,C,49,75,House,Detached,2021-08-04,E07000110,E14000804,Kent,2021-08-05,marketed sale,46,73,343,159.0,6.0,55,2.7,89.0,89.0,1192.0,763.0,88.0,60.0,109.0,Unknown,Y,,,,,100.0,double glazing installed before 2002,Normal,1.0,4.0,4.0,92.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, wood logs",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 92% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.48,0.0,N,natural,"4 NORTH WAY, PENENDEN HEATH",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2021-08-05 06:28:54,Owner-occupied,13.0,,200003707429.0,Energy Assessor +1754832471132019093010223460278300,"16, Beaver Road",Allington,,ME16 0FN,7090396678,C,B,71,90,House,Semi-Detached,2019-09-27,E07000110,E14000804,Kent,2019-09-30,rental (private),71,90,199,46.0,2.1,35,0.5,79.0,51.0,309.0,290.0,132.0,64.0,60.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,3.0,3.0,46.0,0.0,From main system,Good,Good,"Suspended, limited insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Timber frame, as built, insulated (assumed)",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 46% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"16, Beaver Road, Allington",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2019-09-30 10:22:34,rental (private),,,200003706439.0,Address Matched +778923999962012042118284907438792,"22, Downs View Road",Penenden Heath,,ME14 2JF,9030967968,D,B,66,87,Bungalow,Semi-Detached,2012-04-17,E07000110,E14000804,Kent,2012-04-21,rental (social),66,88,227,59.0,2.3,44,0.7,31.0,31.0,408.0,346.0,85.0,47.0,53.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"22, Downs View Road, Penenden Heath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2012-04-21 18:28:49,rental (social),7.0,7.0,200003707765.0,Address Matched +275615447712009050611541002010465,"14, Brooker Close",Boughton Monchelsea,,ME17 4UY,4544721668,C,C,72,78,House,Detached,2009-05-05,E07000110,E14000700,Kent,2009-05-06,rental (private),69,75,186,147.0,4.2,31,3.3,131.0,65.0,444.0,385.0,129.0,112.0,136.82,Single,Y,NO DATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,0.0,7.0,7.0,0.0,1.0,From main system,Good,Good,"Solid, insulated (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Poor,Poor,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.32,0.0,N,natural,"14, Brooker Close, Boughton Monchelsea",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2003-2006,2009-05-06 11:54:10,rental (private),,,10022892688.0,Address Matched +3927869022019080119333086398881,"53, Clock House Rise",Coxheath,,ME17 4GS,8895676468,C,B,76,89,House,Mid-Terrace,2019-08-01,E07000110,E14000804,Kent,2019-08-01,rental (social),76,89,157,60.0,2.0,28,0.8,61.0,61.0,338.0,340.0,101.0,59.0,74.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Timber frame, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"53, Clock House Rise, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2019-08-01 19:33:30,rental (social),,,10022900572.0,Address Matched +583c836ce4f221ab028e9b41cde8e2a5c2d02b5b7d3b525228ff226f06fcb463,"Flat 21 Adeline Heights, Rosalind Drive",,,ME14 2FP,10001599274,B,B,86,86,Flat,Mid-Terrace,2021-07-06,E07000110,E14000804,Kent,2021-07-06,new dwelling,90,90,68,68.0,0.9,12,0.9,70.0,70.0,158.0,158.0,71.0,71.0,75.0,standard tariff,,2,N,,,100.0,,,,,,100.0,0.0,From main system,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.52 W/m-¦K,Good,Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.5,,,,"Flat 21 Adeline Heights, Rosalind Drive",Maidstone,Maidstone and The Weald,Maidstone,2018,2021-07-06 09:22:19,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,10.0,,10094441284.0,Address Matched +1744874229902019081910594163619518,"5, Millstone Road",Headcorn,,TN27 9DF,7916026678,B,A,85,119,House,Mid-Terrace,2019-08-19,E07000110,E14000700,Kent,2019-08-19,new dwelling,88,119,77,-147.0,1.1,13,-2.0,65.0,65.0,182.0,182.0,76.0,46.0,80.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.16 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"5, Millstone Road, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,NO DATA!,2019-08-19 10:59:41,unknown,20.0,20.0,10093306100.0,Address Matched +1726577266712019092405280098210768,"2, Snowdon Parade",Snowdon Avenue,,ME14 5NS,7898684678,D,C,68,71,Flat,End-Terrace,2019-09-23,E07000110,E14000804,Kent,2019-09-24,rental (private),65,70,234,200.0,2.8,41,2.4,55.0,55.0,504.0,428.0,80.0,81.0,68.0,Unknown,Y,1st,Y,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,100.0,0.0,From main system,Good,Good,(other premises below),NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 270 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,no corridor,,,,N,natural,"2, Snowdon Parade, Snowdon Avenue",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2019-09-24 05:28:00,rental (private),,,200003673080.0,Address Matched +58480dd9c2f72af15c2dffbc8d79b50fb6b98e32b3780529c344869b8428a561,13 Tufa Close,,,ME5 9LU,10001362767,C,B,75,86,House,Detached,2021-08-31,E07000110,E14000700,Kent,2021-09-01,marketed sale,72,84,157,80.0,3.3,28,1.7,87.0,87.0,513.0,460.0,121.0,80.0,118.0,Unknown,Y,,,,,100.0,double glazing installed during or after 2002,Normal,0.0,6.0,6.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.4,0.0,N,natural,13 Tufa Close,Maidstone,Faversham and Mid Kent,CHATHAM,England and Wales: 1983-1990,2021-09-01 15:12:51,Owner-occupied,24.0,,200003708723.0,Energy Assessor +309163290962009061913081933718461,"25, Thornhill Place",,,ME14 2SF,6361953668,C,C,69,73,House,Mid-Terrace,2009-06-19,E07000110,E14000804,Kent,2009-06-19,rental (private),65,69,287,251.0,2.6,47,2.3,38.0,26.0,385.0,354.0,81.0,71.0,54.94,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,2.0,3.0,3.0,53.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 100mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 53% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.28,0.0,N,natural,"25, Thornhill Place",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2009-06-19 13:08:19,rental (private),,,200003702443.0,Address Matched +1399061892312015123011555695759441,"2, Coriander Drive",,,ME16 0ZD,4168251478,C,B,74,88,House,Mid-Terrace,2015-12-30,E07000110,E14000804,Kent,2015-12-30,rental (private),74,87,171,64.0,2.1,30,0.8,71.0,49.0,328.0,331.0,136.0,101.0,68.0,Unknown,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,56.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 56% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"2, Coriander Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2015-12-30 11:55:56,rental (private),,,10022901910.0,Address Matched +1248818499142014121210140031049498,"32, Westree Court",,,ME16 8FU,119090378,B,B,88,88,House,Mid-Terrace,2014-12-11,E07000110,E14000804,Kent,2014-12-12,new dwelling,91,91,53,53.0,0.8,10,0.8,51.0,51.0,256.0,256.0,79.0,79.0,78.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.19 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.12 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"32, Westree Court",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2014-12-12 10:14:00,unknown,35.0,35.0,10014316010.0,Address Matched +1137263312952015042413435390250326,"17, Park Way",,,ME15 7DJ,3614203278,E,C,54,78,House,Semi-Detached,2015-04-23,E07000110,E14000700,Kent,2015-04-24,ECO assessment,56,80,310,134.0,4.4,46,1.8,59.0,59.0,1042.0,679.0,101.0,68.0,96.0,Single,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,100.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, wood logs",,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"17, Park Way",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2015-04-24 13:43:53,owner-occupied,,,200003684132.0,Address Matched +728764333412019060316170097710198,"65a, Week Street",,,ME14 1QU,1895373968,E,C,41,71,Maisonette,Mid-Terrace,2019-05-31,E07000110,E14000804,Kent,2019-06-03,rental (private),40,52,402,298.0,6.0,68,4.5,65.0,75.0,1314.0,589.0,246.0,180.0,89.0,dual,N,2nd,Y,,2603.0,0.0,not defined,Normal,2.0,3.0,3.0,100.0,0.0,"Electric immersion, off-peak",Poor,Poor,(other premises below),NO DATA!,,Single glazed,Very Poor,Very Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Roof room(s), insulated (assumed)",Good,Good,"Room heaters, electric",Very Poor,Poor,Programmer and appliance thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,no corridor,,,,N,natural,"65a, Week Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2019-06-03 16:17:00,rental (private),,,10091193819.0,Address Matched +58599ada9dffd9e98f06fe529d5dc0346545b46cae78340db7941ed09cbba2f7,120 Forest Hill,,,ME15 6SP,10001356513,D,B,57,84,House,Semi-Detached,2021-09-17,E07000110,E14000804,Kent,2021-09-19,marketed sale,50,82,325,102.0,4.5,57,1.5,68.0,68.0,809.0,454.0,99.0,68.0,79.0,Unknown,Y,,,,,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,91.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,Low energy lighting in 91% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.34,0.0,N,natural,120 Forest Hill,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2021-09-19 00:03:52,Owner-occupied,11.0,,200003664803.0,Energy Assessor +585d53035d9d489ad81c9838d2d7de5e371cbc7a0a3dbb1c6120c40c9debb1fa,13 MALLINGS DRIVE,BEARSTED,,ME14 4HB,10001380571,C,B,70,82,House,Detached,2021-07-20,E07000110,E14000700,Kent,2021-07-20,rental,65,77,185,111.0,4.1,33,2.5,90.0,90.0,657.0,604.0,129.0,79.0,127.0,Single,Y,,,,,100.0,"double glazing, unknown install date",Normal,2.0,6.0,6.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.4,0.0,N,natural,"13 MALLINGS DRIVE, BEARSTED",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2021-07-20 18:24:00,Rented (private),12.0,,200003694667.0,Energy Assessor +329904902502020032010423565509188,"83, King Edward Road",,,ME15 6PW,8588305668,D,B,66,85,House,Mid-Terrace,2020-03-18,E07000110,E14000804,Kent,2020-03-20,rental (private),60,82,233,95.0,4.3,41,1.8,74.0,74.0,745.0,495.0,107.0,78.0,106.0,Single,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,4.0,6.0,6.0,100.0,0.0,From main system,Very Good,Good,"To unheated space, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"83, King Edward Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2020-03-20 10:42:35,rental (private),,,200003665728.0,Address Matched +355736289922016051609344666468716,"30, Georgian Drive",Coxheath,,ME17 4QT,1682886668,D,C,65,79,Bungalow,Detached,2016-05-16,E07000110,E14000804,Kent,2016-05-16,marketed sale,68,82,224,124.0,3.4,34,1.8,63.0,63.0,776.0,662.0,112.0,75.0,100.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,4.0,4.0,100.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, wood logs",,,"Pitched, 270 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,2.4,,N,natural,"30, Georgian Drive, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2016-05-16 09:34:46,owner-occupied,,,200003714935.0,Address Matched +279775234212018121205544295989866,Bramble Cottage,Goudhurst Road,Marden,TN12 9NB,8688451668,C,B,69,91,House,Detached,2018-12-11,E07000110,E14000804,Kent,2018-12-12,marketed sale,65,87,116,21.0,5.9,28,1.9,102.0,103.0,885.0,573.0,79.0,80.0,207.0,Single,N,NODATA!,,,2106.0,59.0,double glazing installed during or after 2002,Normal,3.0,8.0,8.0,100.0,0.0,"From main system, plus solar",Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Partial double glazing,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, oil",Average,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,oil (not community),0.0,NO DATA!,,,,Y,natural,"Bramble Cottage, Goudhurst Road, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: before 1900,2018-12-12 05:54:42,owner-occupied,,,200003667937.0,Address Matched +1374474449252015111112094697959032,Flat 16 Phoenix Court,Longshaw Road,,ME15 9JD,244979378,B,B,82,82,Flat,NO DATA!,2015-11-10,E07000110,E14000700,Kent,2015-11-11,new dwelling,86,86,106,106.0,1.0,19,1.0,41.0,41.0,202.0,202.0,82.0,82.0,55.0,standard tariff,,top floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.18 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.15 W/m-¦K,Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Flat 16 Phoenix Court, Longshaw Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2015-11-11 12:09:46,unknown,10.0,10.0,10014315923.0,Address Matched +1592820859222017112806033225458633,"26a, Doddington Court",,,ME16 0SE,3243525578,D,B,63,81,House,Semi-Detached,2017-11-25,E07000110,E14000804,Kent,2017-11-28,marketed sale,59,78,269,122.0,3.1,47,1.5,93.0,46.0,495.0,459.0,139.0,80.0,66.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"26a, Doddington Court",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2017-11-28 06:03:32,owner-occupied,,,200003670356.0,Address Matched +728227899932011112815355658268690,"24, Autumn Glade",,,ME5 8XP,9018663968,D,C,67,74,House,Mid-Terrace,2011-11-26,E07000110,E14000700,Kent,2011-11-28,rental (private),67,75,219,163.0,2.7,42,2.0,72.0,36.0,388.0,337.0,144.0,100.0,64.52,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,4.0,4.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, partial insulation (assumed)",Average,Average,,,,"Pitched, 50mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,2.25,0.0,,natural,"24, Autumn Glade",Maidstone,Faversham and Mid Kent,CHATHAM,England and Wales: 1976-1982,2011-11-28 15:35:56,rental (private),6.0,0.0,200003673519.0,Address Matched +1046530459222013112016404636608117,"93, Badger Road",,,ME5 8XR,1399566178,C,B,74,91,House,Mid-Terrace,2013-11-20,E07000110,E14000700,Kent,2013-11-20,marketed sale,76,93,149,27.0,1.8,28,0.4,63.0,42.0,336.0,314.0,81.0,57.0,63.0,dual,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,50.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"93, Badger Road",Maidstone,Faversham and Mid Kent,CHATHAM,England and Wales: 1967-1975,2013-11-20 16:40:46,owner-occupied,6.0,3.0,200003673540.0,Address Matched +586b4fdeebad04abb323c231b889b1f932bb89fd65c1c3b88427f94b7fee228c,99a Heath Road,Coxheath,,ME17 4EH,10001592399,D,C,65,72,Flat,Semi-Detached,2021-08-18,E07000110,E14000804,Kent,2021-08-18,marketed sale,61,71,268,202.0,3.1,47,2.3,64.0,64.0,543.0,407.0,84.0,84.0,66.0,dual,Y,01,Y,,,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,100.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,TRVs and bypass,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,no corridor,,2.37,0.0,N,natural,"99a Heath Road, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2021-08-18 14:24:57,Owner-occupied,9.0,,200003715288.0,Energy Assessor +596956070212011062323572992290688,"45b, Hampshire Drive",,,ME15 7EX,6867024868,D,D,63,67,Flat,Semi-Detached,2011-06-23,E07000110,E14000700,Kent,2011-06-23,rental (social),64,71,324,266.0,2.1,62,1.7,22.0,22.0,395.0,332.0,64.0,64.0,34.0,dual,Y,Ground,N,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,1.0,1.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Very Poor,Very Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,no corridor,,2.31,0.0,,natural,"45b, Hampshire Drive",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2011-06-23 23:57:29,rental (social),4.0,4.0,200003712904.0,Address Matched +1784585512102020021310320961909378,"7, Heath Wood Drive",,,ME14 5GU,1119019678,B,A,83,96,House,End-Terrace,2020-02-13,E07000110,E14000700,Kent,2020-02-13,new dwelling,86,98,93,-6.0,1.1,16,0.0,57.0,57.0,206.0,206.0,69.0,41.0,69.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.19 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.28 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.15 W/m-¦K,Good,Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"7, Heath Wood Drive",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2020-02-13 10:32:09,unknown,12.0,12.0,10094443370.0,Address Matched +1661754969152018090915231091080065,"39, Fishers Road",Staplehurst,,TN12 0DD,503910678,B,A,84,92,House,Detached,2018-09-09,E07000110,E14000804,Kent,2018-09-09,new dwelling,85,92,79,36.0,2.3,13,1.0,90.0,90.0,378.0,380.0,108.0,60.0,172.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.21 W/m-¦K,Very Good,Very Good,"Room heaters, wood logs",,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"39, Fishers Road, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,NO DATA!,2018-09-09 15:23:10,unknown,15.0,15.0,10093306042.0,Address Matched +587d9a0eaaf45687ddb286526bb315e649c20744778e602b4ee8b1113fcec414,33 Trinity Way,,,ME15 9FY,10001481514,C,B,79,91,House,End-Terrace,2021-09-03,E07000110,E14000700,Kent,2021-09-04,rental,81,91,128,44.0,1.6,22,0.6,63.0,63.0,298.0,298.0,57.0,57.0,69.0,Single,Y,,,,,100.0,double glazing installed during or after 2002,Normal,1.0,4.0,4.0,100.0,0.0,"From main system, plus solar",Very Good,Very Good,"Solid, insulated (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 270 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.29,0.0,Y,natural,33 Trinity Way,Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2007-2011,2021-09-04 07:28:05,Rented (private),10.0,,10014311454.0,Energy Assessor +1753076629262019092417485536778051,"24, Queens Road",,,ME16 0LJ,5354286678,D,B,58,87,House,Mid-Terrace,2019-09-23,E07000110,E14000804,Kent,2019-09-24,marketed sale,51,85,294,73.0,4.8,52,1.2,128.0,68.0,781.0,391.0,122.0,80.0,92.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,11.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"System built, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Roof room(s), no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 11% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"24, Queens Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2019-09-24 17:48:55,owner-occupied,,,200003691844.0,Address Matched +588cfef930f9b0dcd202fc34f8acb0b59ac2b78b52463d63fd7a86d7647a4064,9 Stadler Close,Allington,,ME16 0FL,10001590327,D,B,68,86,House,Semi-Detached,2021-08-19,E07000110,E14000804,Kent,2021-08-19,marketed sale,65,85,220,79.0,2.9,39,1.1,67.0,67.0,435.0,376.0,143.0,66.0,74.0,Single,Y,,,,,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Suspended, limited insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.34,0.0,N,natural,"9 Stadler Close, Allington",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2021-08-19 19:30:41,Owner-occupied,14.0,,200003662468.0,Energy Assessor +1700247009742019022522343766312858,"74, Melville Road",,,ME15 7UT,1770003678,C,B,71,86,House,Mid-Terrace,2019-02-25,E07000110,E14000804,Kent,2019-02-25,rental (private),68,85,191,80.0,3.1,34,1.3,71.0,71.0,523.0,414.0,103.0,73.0,92.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,92.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 92% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"74, Melville Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2019-02-25 22:34:37,rental (private),,,200003695986.0,Address Matched +898753319962013031407270046028097,Weimear,Malling Road,Teston,ME18 5AR,9465116078,E,C,54,78,Bungalow,Detached,2013-03-12,E07000110,E14000804,Kent,2013-03-14,marketed sale,46,71,269,121.0,6.1,55,2.9,83.0,57.0,966.0,712.0,117.0,80.0,111.0,Single,Y,NODATA!,,,2106.0,95.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,55.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Mostly double glazing,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, coal",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 55% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"Weimear, Malling Road, Teston",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2013-03-14 07:27:00,owner-occupied,11.0,6.0,200003661739.0,Address Matched +299308580022009060516584532658881,"36, Bridgeside Mews",,,ME15 6TB,8378882668,B,B,85,87,Flat,Detached,2009-06-05,E07000110,E14000804,Kent,2009-06-05,new dwelling,86,87,116,106.0,1.1,19,1.0,57.0,33.0,159.0,161.0,72.0,72.0,57.26,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,,From main system,Very Good,Very Good,(other premises below),,,Fully double glazed,Good,Good,Average thermal transmittance 0.24 W/m??K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Very Good,Very Good,Time and temperature zone control,Good,Good,Low energy lighting in 25% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,,,NO DATA!,"36, Bridgeside Mews",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2009-06-05 16:58:45,,,,10014308046.0,Address Matched +1384678959532015111214532413978190,Flat 59,Miller House,43-51 Lower Stone Street,ME15 6GB,5073150478,C,C,74,74,Flat,NO DATA!,2015-11-12,E07000110,E14000804,Kent,2015-11-12,none of the above,80,80,256,256.0,1.0,45,1.0,19.0,19.0,224.0,224.0,56.0,56.0,21.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Good,Good,Average thermal transmittance 0.86 W/m-¦K,Average,Average,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Flat 59, Miller House, 43-51 Lower Stone Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2015-11-12 14:53:24,unknown,4.0,4.0,10091196156.0,Address Matched +894664829922013031118052995498497,"12, Buckingham Row",,,ME15 8BT,9962285078,D,B,64,86,House,End-Terrace,2013-03-11,E07000110,E14000700,Kent,2013-03-11,marketed sale,62,86,220,65.0,3.2,42,1.0,73.0,43.0,474.0,375.0,155.0,73.0,75.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,33.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 33% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"12, Buckingham Row",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2013-03-11 18:05:29,owner-occupied,12.0,4.0,200003684618.0,Address Matched +833373759402012090920254409120538,"4, Anglesey Avenue",,,ME15 9SH,9409351078,D,B,65,85,Bungalow,Detached,2012-09-07,E07000110,E14000804,Kent,2012-09-09,marketed sale,66,87,232,69.0,2.4,45,0.8,35.0,35.0,414.0,356.0,94.0,62.0,53.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,88.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 88% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"4, Anglesey Avenue",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2012-09-09 20:25:44,owner-occupied,8.0,7.0,200003678026.0,Address Matched +1455016811912016062018511295260146,"35, St. Welcumes Way",Harrietsham,,ME17 1BD,1642155478,C,B,69,87,House,Semi-Detached,2016-06-20,E07000110,E14000700,Kent,2016-06-20,marketed sale,68,87,220,76.0,2.5,39,0.9,77.0,54.0,415.0,385.0,151.0,71.0,66.0,dual,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,57.0,0.0,From main system,Good,Good,"Solid, limited insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 57% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,2.3,,N,natural,"35, St. Welcumes Way, Harrietsham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1996-2002,2016-06-20 18:51:12,owner-occupied,,,200003704154.0,Address Matched +177670299022017101121381613818713,"37, Gladstone Road",Penenden Heath,,ME14 2AU,1120953568,C,B,78,86,House,Mid-Terrace,2017-10-09,E07000110,E14000804,Kent,2017-10-11,rental (private),76,86,153,76.0,1.7,27,0.8,61.0,43.0,446.0,334.0,80.0,51.0,60.0,Unknown,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,2.0,4.0,4.0,57.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 57% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"37, Gladstone Road, Penenden Heath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2017-10-11 21:38:16,rental (private),,,200003701732.0,Address Matched +58b3eb21ddb7773be0e4c5cc68463ce0864855d662ddfb89e6f8a303d8c88bde,24 WORCESTER ROAD,,,ME15 7LU,10001439915,D,C,63,75,House,Semi-Detached,2021-08-04,E07000110,E14000700,Kent,2021-08-06,marketed sale,56,68,258,175.0,4.5,46,3.1,77.0,77.0,764.0,723.0,93.0,66.0,99.0,Unknown,Y,,,,,100.0,"double glazing, unknown install date",More Than Typical,1.0,5.0,4.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"System built, with internal insulation",Good,Good,"Room heaters, mains gas",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.45,0.0,N,natural,24 WORCESTER ROAD,Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2021-08-06 07:22:47,Owner-occupied,11.0,,200003712284.0,Energy Assessor +588428159042011020312073786390178,"41, Salts Avenue",Loose,,ME15 0AZ,7053053868,E,D,51,68,House,Detached,2011-02-03,E07000110,E14000804,Kent,2011-02-03,marketed sale,44,62,340,220.0,8.3,57,5.4,106.0,81.0,1338.0,852.0,134.0,134.0,145.95,Unknown,Y,NO DATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,0.0,7.0,7.0,70.0,1.0,From main system,Very Good,Very Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,Programmer and room thermostat,Average,Average,Low energy lighting in 70% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,0.0,N,natural,"41, Salts Avenue, Loose",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2011-02-03 12:07:37,owner-occupied,,,200003663472.0,Address Matched +186279460602008112109460053489688,Flat 5 St. Georges House,St. Georges Square,,ME16 8JQ,621664568,D,C,65,70,Flat,Detached,2008-11-18,E07000110,E14000804,Kent,2008-11-21,rental (private),61,64,351,317.0,2.6,58,2.4,40.0,20.0,362.0,339.0,59.0,59.0,45.2,Single,Y,2nd,Y,3.0,2102.0,0.0,INVALID!,Normal,0.0,2.0,2.0,0.0,0.0,From main system,Good,Good,(other premises below),,,Single glazed,Very Poor,Very Poor,"Sandstone, as built, no insulation (assumed)",Very Poor,Very Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,unheated corridor,4.2,2.85,0.0,N,natural,"Flat 5 St. Georges House, St. Georges Square",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2008-11-21 09:46:00,rental (private),,,10014306490.0,Address Matched +125806171512020070617193221000742,"10, Grovelands",Old Ashford Road,,ME17 2QR,7217119468,D,B,64,82,House,End-Terrace,2020-07-06,E07000110,E14000700,Kent,2020-07-06,marketed sale,58,79,250,113.0,4.1,44,1.9,103.0,75.0,642.0,529.0,167.0,73.0,94.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,63.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, mains gas",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 63% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"10, Grovelands, Old Ashford Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1991-1995,2020-07-06 17:19:32,owner-occupied,,,200003715467.0,Address Matched +1139049439922015061617175613068855,Little Senacre,Gore Court Road,Otham,ME15 8RE,5129313278,C,B,69,83,House,Detached,2015-06-16,E07000110,E14000700,Kent,2015-06-16,FiT application,58,78,206,100.0,6.5,37,3.2,106.0,106.0,1414.0,830.0,146.0,88.0,178.0,dual,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,6.0,6.0,88.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, no insulation",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 88% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"Little Senacre, Gore Court Road, Otham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1900-1929,2015-06-16 17:17:56,owner-occupied,,,200003681242.0,Address Matched +1620781859062018091812153137858608,"27, Bankfields",Headcorn,,TN27 9QY,304527578,D,B,66,83,House,Detached,2018-04-05,E07000110,E14000700,Kent,2018-09-18,rental (private),61,80,233,104.0,3.6,41,1.6,82.0,60.0,571.0,480.0,143.0,72.0,87.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,5.0,5.0,63.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 63% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"27, Bankfields, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,England and Wales: 1967-1975,2018-09-18 12:15:31,rental (private),,,200003699697.0,Address Matched +1131340084432014042623373307278006,"6, Leamington Drive",,,ME16 0WP,8607062278,D,B,62,86,House,Semi-Detached,2014-04-26,E07000110,E14000804,Kent,2014-04-26,none of the above,57,85,213,64.0,4.9,41,1.5,91.0,67.0,868.0,486.0,138.0,79.0,119.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,7.0,7.0,65.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 65% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"6, Leamington Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2014-04-26 23:37:33,owner-occupied,26.0,17.0,10022901730.0,Address Matched +1681839569102019081516390360119358,1 Stern's Yard,Yalding,,ME18 6FD,3119461678,B,A,84,95,House,End-Terrace,2019-08-15,E07000110,E14000804,Kent,2019-08-15,new dwelling,86,97,81,10.0,1.4,14,0.2,74.0,74.0,227.0,228.0,98.0,54.0,102.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.22 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.12 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"1 Stern's Yard, Yalding",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2019-08-15 16:39:03,unknown,15.0,15.0,10094439983.0,Address Matched +187176113852013060920290594770857,Flat 1 Millennium House,"77, Courtenay Road",,ME15 6UJ,8782344568,C,C,76,77,Flat,Semi-Detached,2013-05-31,E07000110,E14000804,Kent,2013-06-09,marketed sale,81,82,148,141.0,1.1,28,1.1,48.0,30.0,226.0,228.0,72.0,72.0,40.0,dual,Y,Ground,N,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,40.0,0.0,From main system,Good,Good,"Solid, insulated",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 40% of fixed outlets,Average,Average,mains gas (not community),0.0,unheated corridor,3.1,,0.0,,natural,"Flat 1 Millennium House, 77, Courtenay Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2013-06-09 20:29:05,owner-occupied,5.0,2.0,200003661259.0,Address Matched +1678890759962018111523593491378818,"36, Harrow Way",Weavering,,ME14 5TU,1960541678,C,B,69,81,House,Semi-Detached,2018-11-13,E07000110,E14000700,Kent,2018-11-15,marketed sale,64,77,205,114.0,3.5,36,2.0,81.0,65.0,550.0,527.0,135.0,80.0,96.0,Unknown,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,75.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"36, Harrow Way, Weavering",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2018-11-15 23:59:34,owner-occupied,,,200003689832.0,Address Matched +1519697109502017021514194959039158,"6, Friars Court",,,ME15 8GF,4501600578,B,A,82,95,House,End-Terrace,2017-02-15,E07000110,E14000700,Kent,2017-02-15,new dwelling,84,98,105,1.0,1.3,18,0.0,51.0,51.0,218.0,219.0,95.0,50.0,69.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"6, Friars Court",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2017-02-15 14:19:49,unknown,1.0,1.0,10091193556.0,Address Matched +579384114132020011512111308068904,32 Newlyn Court,Tufton Street,,ME14 1EZ,1438972868,C,B,80,81,Maisonette,Mid-Terrace,2019-04-09,E07000110,E14000804,Kent,2020-01-15,ECO assessment,82,83,113,110.0,1.5,20,1.4,85.0,68.0,251.0,253.0,74.0,74.0,73.0,dual,Y,2nd,Y,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,3.0,3.0,75.0,0.0,From main system,Good,Good,(another dwelling below),NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,no corridor,,,,N,natural,"32 Newlyn Court, Tufton Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2020-01-15 12:11:13,rental (social),,,200003688155.0,Address Matched +1092634039052014021823354698940917,"8, Owletts Close",,,ME15 7SZ,9780989178,C,B,73,84,House,End-Terrace,2014-02-18,E07000110,E14000700,Kent,2014-02-18,rental (social),72,84,146,73.0,3.0,28,1.5,67.0,67.0,519.0,479.0,130.0,88.0,106.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,6.0,6.0,90.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 90% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"8, Owletts Close",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1991-1995,2014-02-18 23:35:46,rental (social),10.0,9.0,200003725375.0,Address Matched +938757789722013053009575198108217,Grove House,Dunn Street Road,Bredhurst,ME7 3LX,1912898078,F,C,34,77,House,Detached,2013-05-30,E07000110,E14000700,Kent,2013-05-30,rental (private),30,73,372,111.0,12.0,72,3.6,133.0,70.0,1890.0,877.0,247.0,75.0,167.0,Single,Y,NODATA!,,,2106.0,65.0,secondary glazing,Normal,0.0,7.0,7.0,11.0,1.0,"From main system, no cylinder thermostat",Poor,Poor,"Suspended, no insulation (assumed)",,,Partial secondary glazing,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, mains gas",,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 11% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"Grove House, Dunn Street Road, Bredhurst",Maidstone,Faversham and Mid Kent,GILLINGHAM,England and Wales: before 1900,2013-05-30 09:57:51,rental (private),18.0,2.0,200003694279.0,Address Matched +648768409202018031709334484889668,"45, Bower Lane",,,ME16 8EJ,3243508868,E,D,47,67,Flat,End-Terrace,2018-03-16,E07000110,E14000804,Kent,2018-03-17,marketed sale,45,67,376,215.0,4.7,66,2.7,107.0,54.0,908.0,520.0,95.0,95.0,72.0,Unknown,Y,1st,Y,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,3.0,2.0,0.0,0.0,From main system,Good,Good,(another dwelling below),NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,Portable electric heaters (assumed),,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,no corridor,,,,N,natural,"45, Bower Lane",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2018-03-17 09:33:44,owner-occupied,,,200003667613.0,Address Matched +1097208039922014061311245720678624,"14, Moorhen Road",,,ME15 6XJ,2212320278,B,A,85,95,House,Mid-Terrace,2014-06-13,E07000110,E14000804,Kent,2014-06-13,new dwelling,87,97,80,11.0,1.5,14,0.2,65.0,65.0,246.0,247.0,98.0,52.0,106.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.29 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.17 W/m-¦K,Good,Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"14, Moorhen Road",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2014-06-13 11:24:57,owner-occupied,13.0,13.0,10014315308.0,Address Matched +931400349202013051519365203879058,Nettle Cottage,Collier Street,,TN12 9RL,6201848078,E,B,54,83,House,Detached,2013-05-15,E07000110,E14000804,Kent,2013-05-15,marketed sale,48,81,252,79.0,7.3,49,2.4,117.0,69.0,1193.0,661.0,157.0,79.0,151.0,Unknown,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,1.0,8.0,8.0,31.0,1.0,From main system,Average,Average,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Poor,Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 31% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"Nettle Cottage, Collier Street",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: before 1900,2013-05-15 19:36:52,owner-occupied,39.0,12.0,10014306823.0,Address Matched +1434354351752016041909064990960942,"15, Kingston Drive",,,ME15 6DB,9240104478,D,B,68,87,Bungalow,Semi-Detached,2016-04-19,E07000110,E14000804,Kent,2016-04-19,marketed sale,65,87,247,79.0,2.7,44,0.9,42.0,42.0,513.0,390.0,95.0,61.0,61.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,2.35,,N,natural,"15, Kingston Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2016-04-19 09:06:49,owner-occupied,,,200003676576.0,Address Matched +422327759742010011813410775109788,"30, Postley Road",,,ME15 6TR,2776451768,D,C,64,70,House,Mid-Terrace,2010-01-18,E07000110,E14000804,Kent,2010-01-18,rental (private),58,65,269,227.0,4.5,45,3.8,76.0,58.0,683.0,586.0,117.0,110.0,100.4,dual,Y,NO DATA!,,,2102.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,70.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,Low energy lighting in 70% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.6,0.0,N,natural,"30, Postley Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2010-01-18 13:41:07,rental (private),,,200003681882.0,Address Matched +549135859922010101115274310898890,39 Mandeville Court,Union Street,,ME14 1JR,9139540868,C,B,75,85,Flat,Enclosed Mid-Terrace,2010-10-11,E07000110,E14000804,Kent,2010-10-11,marketed sale,77,77,242,234.0,1.5,36,1.5,47.0,25.0,101.0,91.0,192.0,107.0,41.11,Single,N,1st,N,3.0,2401.0,100.0,double glazing installed before 2002,More Than Typical,0.0,2.0,2.0,10.0,0.0,"Electric immersion, off-peak",Very Poor,Poor,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,(another dwelling above),,,Electric storage heaters,Poor,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 10% of fixed outlets,Poor,Poor,electricity - this is for backwards compatibility only and should not be used,0.0,heated corridor,,2.3,0.0,N,natural,"39 Mandeville Court, Union Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2010-10-11 15:27:43,owner-occupied,,,200003699239.0,Address Matched +745934689222017040313534405298813,"175, South Park Road",,,ME15 7AN,1084825968,B,A,85,96,House,Mid-Terrace,2017-03-21,E07000110,E14000700,Kent,2017-04-03,RHI application,79,94,104,17.0,2.0,19,0.4,98.0,65.0,583.0,425.0,201.0,77.0,103.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,1.0,6.0,6.0,50.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"175, South Park Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2017-04-03 13:53:44,owner-occupied,,,200003715967.0,Address Matched +1052391009442013120619052612770468,"2, Trevarno Terrace",Wharf Road,,ME15 6RT,468607178,D,B,67,87,House,Mid-Terrace,2013-12-06,E07000110,E14000804,Kent,2013-12-06,marketed sale,65,88,191,55.0,3.2,37,1.0,72.0,50.0,538.0,373.0,118.0,80.0,86.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,4.0,4.0,56.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 56% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"2, Trevarno Terrace, Wharf Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2013-12-06 19:05:26,owner-occupied,9.0,5.0,200003665838.0,Address Matched +1375376889842015101511503832959948,Flat 2,"24, Tonbridge Road",,ME16 8RT,7834289378,B,B,88,88,Flat,NO DATA!,2015-10-14,E07000110,E14000804,Kent,2015-10-15,new dwelling,92,92,52,52.0,0.7,10,0.7,43.0,43.0,236.0,236.0,75.0,75.0,67.0,standard tariff,,ground floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.18 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Flat 2, 24, Tonbridge Road",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2015-10-15 11:50:38,unknown,25.0,25.0,10014316072.0,Address Matched +367186470262009092219324067328021,Flat 6 Burdock House,Northumberland Road,,ME15 7TX,2655767668,B,B,84,85,Flat,Enclosed End-Terrace,2009-09-22,E07000110,E14000700,Kent,2009-09-22,rental (social),83,84,166,156.0,1.0,27,1.0,39.0,21.0,184.0,187.0,69.0,69.0,37.95,Single,Y,1st,N,3.0,2106.0,100.0,double glazing installed before 2002,Normal,0.0,2.0,2.0,10.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Timber frame, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 10% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,unheated corridor,2.6,2.26,0.0,N,natural,"Flat 6 Burdock House, Northumberland Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1996-2002,2009-09-22 19:32:40,rental (social),,,200003714122.0,Address Matched +921627414732013042921115747278102,Foxes Earth,Headcorn Road,Grafty Green,ME17 2AP,1237187078,C,B,74,85,House,Semi-Detached,2013-04-26,E07000110,E14000700,Kent,2013-04-29,marketed sale,67,78,114,62.0,6.6,27,4.0,179.0,91.0,971.0,893.0,205.0,108.0,242.0,Unknown,N,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,9.0,9.0,3.0,0.0,From main system,Average,Average,"Solid, insulated (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, dual fuel (mineral and wood)",,,"Roof room(s), insulated",Good,Good,"Boiler and radiators, oil",Average,Average,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 3% of fixed outlets,Very Poor,Very Poor,oil (not community),0.0,NO DATA!,,,0.0,,natural,"Foxes Earth, Headcorn Road, Grafty Green",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2003-2006,2013-04-29 21:11:57,owner-occupied,38.0,1.0,200003715184.0,Address Matched +317688589222019052018181224208181,2 Mill Cottages,Tutsham Farm,West Farleigh,ME15 0NF,8207814668,E,A,47,107,House,Mid-Terrace,2019-05-20,E07000110,E14000804,Kent,2019-05-20,rental (private),44,100,269,-59.0,5.7,64,-0.2,122.0,71.0,698.0,337.0,150.0,73.0,90.0,dual,N,NODATA!,,,2106.0,28.0,"double glazing, unknown install date",Normal,1.0,4.0,4.0,27.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Some double glazing,Poor,Poor,"Timber frame, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, insulated (assumed)",Average,Average,"Boiler and radiators, oil",Average,Average,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 27% of fixed outlets,Average,Average,oil (not community),0.0,NO DATA!,,,,N,natural,"2 Mill Cottages, Tutsham Farm, West Farleigh",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2019-05-20 18:18:12,rental (private),,,10022893678.0,Address Matched +1685460509062018121219524421738248,Flat 28 Coronet House,"11, Queen Anne Road",,ME14 1GD,4256091678,D,C,65,77,Flat,Mid-Terrace,2018-12-07,E07000110,E14000804,Kent,2018-12-12,rental (private),68,74,396,322.0,1.5,67,1.2,21.0,23.0,319.0,130.0,138.0,153.0,22.0,Unknown,N,2nd,Y,,2602.0,100.0,"double glazing, unknown install date",Normal,0.0,1.0,1.0,100.0,0.0,Electric instantaneous at point of use,Very Poor,Poor,(another dwelling below),NO DATA!,,Fully double glazed,Average,Average,"Timber frame, with additional insulation",Good,Good,,,,"Flat, limited insulation (assumed)",Poor,Poor,"Room heaters, electric",Very Poor,Poor,Appliance thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,unheated corridor,4.85,,,N,natural,"Flat 28 Coronet House, 11, Queen Anne Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1976-1982,2018-12-12 19:52:44,rental (private),,,10094441205.0,Address Matched +522764892812010080421285396000672,"15, Pine Place",Tovil,,ME15 6EF,6259268768,C,C,72,73,House,End-Terrace,2010-08-04,E07000110,E14000804,Kent,2010-08-04,rental (private),71,72,200,194.0,2.8,32,2.7,80.0,48.0,437.0,444.0,120.0,120.0,84.21,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,5.0,5.0,33.0,0.0,From main system,Very Good,Very Good,"Solid, limited insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 33% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.3,0.0,N,natural,"15, Pine Place, Tovil",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2010-08-04 21:28:53,rental (private),,,200003666332.0,Address Matched +657760879142011072215292186892328,"16, Commodore Road",,,ME14 5PH,4137078868,D,C,66,71,House,Semi-Detached,2011-07-22,E07000110,E14000804,Kent,2011-07-22,marketed sale,64,70,211,177.0,3.6,41,3.1,47.0,47.0,613.0,523.0,99.0,88.0,89.8,Unknown,Y,NODATA!,,,2107.0,100.0,"double glazing, unknown install date",Normal,1.0,6.0,6.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,2.4,0.0,,natural,"16, Commodore Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2011-07-22 15:29:21,owner-occupied,8.0,8.0,200003671329.0,Address Matched +178803732912008103011480205789055,"29, Ballard Close",Marden,,TN12 9HW,594253568,E,D,51,63,House,Semi-Detached,2008-10-30,E07000110,E14000804,Kent,2008-10-30,rental (private),42,51,526,427.0,4.9,79,4.0,40.0,30.0,453.0,358.0,138.0,108.0,62.1,dual,N,NO DATA!,,,2401.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,67.0,0.0,"Electric immersion, off-peak",Average,Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, 50mm loft insulation",Poor,Poor,Electric storage heaters,Poor,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 67% of fixed outlets,Good,Good,electricity - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,0.0,N,natural,"29, Ballard Close, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1983-1990,2008-10-30 11:48:02,rental (private),,,200003710714.0,Address Matched +1745662689022019082214412916658331,Flat 3,84 King Street,,ME14 1BH,3183826678,B,B,82,87,Flat,Mid-Terrace,2019-08-05,E07000110,E14000804,Kent,2019-08-22,rental (private),79,81,217,197.0,1.1,37,1.0,28.0,32.0,105.0,74.0,137.0,98.0,29.0,dual,N,2nd,Y,,2603.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,100.0,0.0,"Electric immersion, off-peak",Poor,Poor,(another dwelling below),NO DATA!,,Fully double glazed,Good,Good,"Solid brick, as built, insulated (assumed)",Very Good,Very Good,,,,"Flat, insulated (assumed)",Good,Good,"Room heaters, electric",Very Poor,Poor,Programmer and appliance thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,no corridor,,,,N,natural,"Flat 3, 84 King Street",Maidstone,Maidstone and The Weald,MAIDSTONE,INVALID!,2019-08-22 14:41:29,rental (private),,,10094444374.0,Address Matched +294481550802009102116180568212898,47 Hughenden Reach,Tovil,,ME15 6ZL,9834752668,B,B,86,87,Flat,NO DATA!,2009-10-21,E07000110,E14000804,Kent,2009-10-21,new dwelling,86,87,103,95.0,1.2,17,1.2,66.0,42.0,184.0,186.0,88.0,88.0,73.8,standard tariff,,mid floor,,,2106.0,,NO DATA!,NO DATA!,,,,3.0,0.0,From main system,Very Good,Very Good,(other premises below),,,Fully double glazed,Good,Good,Average thermal transmittance 0.31 W/m?K,Good,Good,,,,Average thermal transmittance 0.00 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 43% fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"47 Hughenden Reach, Tovil",Maidstone,Maidstone and The Weald,MAIDSTONE,,2009-10-21 16:18:05,,,,10014308510.0,Address Matched +77833832032010021817180962968801,"58, South Park Road",,,ME15 7AW,3142885468,D,C,66,75,House,Mid-Terrace,2010-02-18,E07000110,E14000700,Kent,2010-02-18,marketed sale,67,76,273,203.0,2.8,40,2.0,70.0,35.0,463.0,383.0,116.0,88.0,68.0,Single,Y,NO DATA!,,,2107.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,0.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, wood logs",,,"Pitched, 100mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,0.0,N,natural,"58, South Park Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2010-02-18 17:18:09,owner-occupied,,,200003716011.0,Address Matched +595ce11b3fc33dfff4cbca1614b60b1f4ffbdc8d1b95015795bec21405a6ed49,9 Cotswold Gardens,Downswood,,ME15 8TB,10001604735,D,B,61,85,House,Semi-Detached,2021-09-20,E07000110,E14000700,Kent,2021-09-22,marketed sale,55,83,292,93.0,3.9,52,1.3,64.0,64.0,582.0,413.0,169.0,66.0,76.0,Unknown,Y,,,,,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,100.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.4,0.0,N,natural,"9 Cotswold Gardens, Downswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2021-09-22 05:16:44,Owner-occupied,11.0,,200003691035.0,Energy Assessor +1389253230312015121810215198959940,2 Rivers House,Mote Park,,ME15 8YB,9057080478,C,C,70,80,Bungalow,Semi-Detached,2015-12-18,E07000110,E14000700,Kent,2015-12-18,new dwelling,65,75,200,132.0,3.7,35,2.5,64.0,64.0,692.0,694.0,104.0,56.0,106.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.39 W/m-¦K,Average,Average,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.30 W/m-¦K,Good,Good,,,,Average thermal transmittance 0.18 W/m-¦K,Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"2 Rivers House, Mote Park",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2015-12-18 10:21:51,unknown,9.0,9.0,10091195075.0,Address Matched +1369805349142016032017420434969038,1 Wheatgratten Farm Cottages,Forstal Road,Lenham,ME17 2DR,8157349378,F,A,32,100,House,End-Terrace,2016-03-17,E07000110,E14000700,Kent,2016-03-20,marketed sale,28,89,374,-35.0,7.5,97,0.7,74.0,52.0,1052.0,515.0,214.0,84.0,78.0,Single,N,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,1.0,4.0,4.0,57.0,0.0,From main system,Poor,Poor,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, oil",Poor,Average,Programmer and room thermostat,Average,Average,Low energy lighting in 57% of fixed outlets,Good,Good,oil (not community),0.0,NO DATA!,,2.43,,N,natural,"1 Wheatgratten Farm Cottages, Forstal Road, Lenham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2016-03-20 17:42:04,owner-occupied,,,10014308089.0,Address Matched +470012011752010041520340399900275,"15, Cavendish Way",Bearsted,,ME15 8PN,2598194768,F,E,38,52,Bungalow,Semi-Detached,2010-04-15,E07000110,E14000700,Kent,2010-04-15,marketed sale,36,47,654,501.0,5.3,99,4.0,46.0,31.0,719.0,520.0,112.0,112.0,53.6,dual,N,NO DATA!,,,2401.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,2.0,50.0,0.0,"Electric immersion, off-peak",Average,Poor,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,Portable electric heaters,,,"Pitched, 100 mm loft insulation",Average,Average,Electric storage heaters,Poor,Poor,Manual charge control,Poor,Poor,Low energy lighting in 50% of fixed outlets,Good,Good,electricity - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.5,0.0,N,natural,"15, Cavendish Way, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2010-04-15 20:34:03,owner-occupied,,,200003693142.0,Address Matched +597106809922014112016140924818494,5 Orchard Villas,Dairy Lane,Marden,TN12 9SW,9242024868,D,C,60,79,House,Semi-Detached,2014-11-19,E07000110,E14000804,Kent,2014-11-20,assessment for green deal,63,81,222,107.0,3.4,39,1.6,64.0,64.0,527.0,474.0,359.0,189.0,86.0,Single,N,NODATA!,,,2206.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,80.0,0.0,"From main system, no cylinder thermostat",Very Poor,Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Air source heat pump, radiators, electric",Average,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,electricity (not community),0.0,NO DATA!,,,0.0,,natural,"5 Orchard Villas, Dairy Lane, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1983-1990,2014-11-20 16:14:09,rental (social),10.0,8.0,200003721972.0,Address Matched +1317651536252015050806175097050530,"46, Reginald Road",,,ME16 8HA,5007675378,D,B,63,84,House,Detached,2015-05-08,E07000110,E14000804,Kent,2015-05-08,marketed sale,57,81,245,93.0,4.3,43,1.7,121.0,60.0,677.0,515.0,186.0,76.0,99.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, mains gas",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"46, Reginald Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2015-05-08 06:17:50,owner-occupied,,,200003667880.0,Address Matched +5971172cbbffb2a00d45dd25606d3ba7dbf92bc9e6fecfb145e70dd8e70d319b,27 Bedell Road,,,ME14 4GE,10001447314,B,A,84,95,House,End-Terrace,2021-07-22,E07000110,E14000804,Kent,2021-07-22,new dwelling,86,96,86,10.0,1.4,15,0.2,78.0,78.0,238.0,238.0,71.0,44.0,91.0,standard tariff,,,N,,,100.0,,,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.17 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.41,,,,27 Bedell Road,Maidstone,Maidstone and The Weald,THURNHAM,2021,2021-07-22 12:25:43,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,1.0,,10094444620.0,Address Matched +277787152312019022215052194210064,Flat D,"14, Buckland Hill",,ME16 0SG,477241668,D,C,59,79,Flat,Enclosed End-Terrace,2019-02-22,E07000110,E14000804,Kent,2019-02-22,marketed sale,56,83,342,134.0,2.9,60,1.1,52.0,53.0,533.0,212.0,70.0,70.0,48.0,dual,Y,3rd,Y,,2104.0,0.0,not defined,Normal,0.0,2.0,2.0,75.0,0.0,From main system,Good,Good,(another dwelling below),NO DATA!,,Single glazed,Very Poor,Very Poor,"Solid brick, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, no insulation",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,0.91,,,N,natural,"Flat D, 14, Buckland Hill",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2019-02-22 15:05:21,rental (private),,,200003670129.0,Address Matched +1014644799262013092700042974168257,Flat 8 Block D,Lindisfarne Gardens,,ME16 8NF,5711934178,C,B,78,81,Flat,Enclosed Mid-Terrace,2013-09-26,E07000110,E14000804,Kent,2013-09-27,rental (private),83,86,124,98.0,1.2,23,0.9,70.0,35.0,174.0,175.0,121.0,101.0,50.0,Unknown,Y,1st,N,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,0.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,heated corridor,,,0.0,,natural,"Flat 8 Block D, Lindisfarne Gardens",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2013-09-27 00:04:29,rental (private),9.0,0.0,200003724427.0,Address Matched +1319095589742015050815185838550588,Cotton Wood,Forge Lane,Yalding,ME18 6AT,4757685378,G,E,1,50,Bungalow,Detached,2015-05-08,E07000110,E14000804,Kent,2015-05-08,ECO assessment,1,41,1039,298.0,18.0,215,5.5,53.0,53.0,3004.0,1131.0,755.0,156.0,84.0,Single,N,NODATA!,,,2601.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,1.0,100.0,1.0,"Electric immersion, standard tariff",Very Poor,Very Poor,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,Portable electric heaters (assumed),,,"Pitched, no insulation",Very Poor,Very Poor,"Room heaters, dual fuel (mineral and wood)",Very Poor,Very Poor,No thermostatic control of room temperature,Poor,Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,dual fuel - mineral + wood,0.0,NO DATA!,,,,N,natural,"Cotton Wood, Forge Lane, Yalding",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2015-05-08 15:18:58,owner-occupied,,,200003722582.0,Address Matched +1280495586052015021208210691950235,Shansi,School Lane,,ME15 8DX,2530613378,D,C,62,75,Flat,End-Terrace,2015-02-11,E07000110,E14000700,Kent,2015-02-12,ECO assessment,61,78,314,181.0,2.6,55,1.5,49.0,32.0,465.0,281.0,142.0,102.0,47.0,Single,Y,1st,Y,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,2.0,50.0,0.0,From main system,Good,Good,(another dwelling below),NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,Portable electric heaters (assumed),,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,unheated corridor,4.99,,,N,natural,"Shansi, School Lane",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2015-02-12 08:21:06,rental (private),,,200003687092.0,Address Matched +212738920242009051915281753610118,"20, Hollingworth Road",,,ME15 9HG,8250826568,C,C,77,77,Flat,Semi-Detached,2009-01-09,E07000110,E14000700,Kent,2009-05-19,rental (social),74,74,243,243.0,1.7,41,1.7,22.0,22.0,274.0,274.0,67.0,67.0,42.0,Single,Y,Ground,N,2.0,2106.0,100.0,double glazing installed before 2002,Normal,0.0,2.0,2.0,90.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"System built, with external insulation",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 90% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,unheated corridor,4.74,2.3,0.0,N,natural,"20, Hollingworth Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2009-05-19 15:28:17,rental (social),,,200003682215.0,Address Matched +16853589302011080219462248890128,42 Wallis Place,Hart Street,,ME16 8FB,4365088468,C,C,77,79,Flat,NO DATA!,2011-08-02,E07000110,E14000804,Kent,2011-08-02,marketed sale,80,82,122,111.0,1.9,23,1.8,98.0,49.0,284.0,292.0,93.0,93.0,83.0,Single,Y,4th,Y,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,0.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Timber frame, as built, insulated (assumed)",Good,Good,,,,"Flat, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,unheated corridor,3.1,2.4,0.0,,natural,"42 Wallis Place, Hart Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2011-08-02 19:46:22,owner-occupied,7.0,0.0,10022900641.0,Address Matched +1480947149222016092022232007308126,"38, Murdoch Chase",Coxheath,,ME17 4AA,2084437478,B,A,84,95,House,NO DATA!,2016-09-20,E07000110,E14000804,Kent,2016-09-20,new dwelling,86,97,87,10.0,1.4,15,0.2,61.0,61.0,242.0,243.0,105.0,56.0,94.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.14 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.20 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"38, Murdoch Chase, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2016-09-20 22:23:20,unknown,11.0,11.0,10093302689.0,Address Matched +1245203332352014120319552596049838,"7, Queen Anne Road",,,ME14 1HB,8871260378,E,C,45,76,House,Mid-Terrace,2014-12-03,E07000110,E14000804,Kent,2014-12-03,assessment for green deal,42,73,344,133.0,5.6,66,2.2,105.0,52.0,1020.0,663.0,167.0,79.0,85.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,0.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Poor,Poor,,,,"Roof room(s), no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"7, Queen Anne Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2014-12-03 19:55:25,owner-occupied,8.0,0.0,200003688165.0,Address Matched +644895836012011062110061497290684,"13, Chervilles",,,ME16 9JE,6477677868,D,C,63,72,House,Semi-Detached,2011-06-21,E07000110,E14000804,Kent,2011-06-21,marketed sale,59,70,226,166.0,4.6,43,3.4,103.0,51.0,650.0,527.0,166.0,123.0,106.7,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,6.0,6.0,0.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,2.324,0.0,,natural,"13, Chervilles",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2011-06-21 10:06:14,owner-occupied,12.0,0.0,200003686907.0,Address Matched +309547184152009062100272706210462,"47a, Cumberland Avenue",,,ME15 7JP,4245463668,C,B,80,82,Flat,Semi-Detached,2009-06-20,E07000110,E14000700,Kent,2009-06-21,rental (social),79,80,169,161.0,1.6,28,1.5,50.0,28.0,238.0,241.0,72.0,72.0,57.46,Single,Y,1st,Y,2.0,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,20.0,0.0,From main system,Very Good,Very Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 20% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.43,0.0,N,natural,"47a, Cumberland Avenue",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2009-06-21 00:27:27,rental (social),,,200003712958.0,Address Matched +1131962169042016051815303123269588,"8, St. Lukes Avenue",,,ME14 5AN,6030762278,G,F,10,36,House,Semi-Detached,2016-05-18,E07000110,E14000804,Kent,2016-05-18,marketed sale,6,25,764,471.0,21.0,129,13.0,129.0,131.0,3762.0,2531.0,373.0,168.0,164.0,Unknown,N,NODATA!,,,2401.0,33.0,secondary glazing,Normal,2.0,8.0,3.0,60.0,4.0,"Electric immersion, off-peak",Very Poor,Poor,"To unheated space, no insulation (assumed)",NO DATA!,,Partial secondary glazing,Poor,Poor,"Cavity wall, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, electric",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,Electric storage heaters,Poor,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 60% of fixed outlets,Good,Good,electricity (not community),0.0,NO DATA!,,2.7,,N,natural,"8, St. Lukes Avenue",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2016-05-18 15:30:31,owner-occupied,,,200003705824.0,Address Matched +764009269042012032715375592622038,"49, Murrain Drive",Downswood,,ME15 8XN,2097166968,D,C,61,74,Flat,NO DATA!,2012-03-27,E07000110,E14000700,Kent,2012-03-27,marketed sale,41,57,540,362.0,4.2,96,2.8,52.0,29.0,444.0,258.0,105.0,105.0,44.05,dual,N,1st,Y,,2401.0,0.0,not defined,Normal,0.0,2.0,2.0,20.0,0.0,"Electric immersion, off-peak",Average,Very Poor,(other premises below),,,Single glazed,Very Poor,Very Poor,"Cavity wall, as built, partial insulation (assumed)",Average,Average,Portable electric heaters (assumed),,,"Pitched, 100 mm loft insulation",Average,Average,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 20% of fixed outlets,Poor,Poor,electricity (not community),0.0,no corridor,,2.4,0.0,,natural,"49, Murrain Drive, Downswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1976-1982,2012-03-27 15:37:55,owner-occupied,5.0,1.0,200003691521.0,Address Matched +1787450532202020022514313266902548,Boyton Court Barn West,Boyton Court Road,Sutton Valence,ME17 3BY,8247039678,E,C,51,79,House,Semi-Detached,2020-02-24,E07000110,E14000700,Kent,2020-02-25,marketed sale,43,72,229,86.0,6.8,60,3.0,104.0,81.0,833.0,451.0,199.0,161.0,114.0,Single,N,NODATA!,,,2106.0,0.0,not defined,Normal,0.0,4.0,4.0,70.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Single glazed,Very Poor,Very Poor,"Granite or whinstone, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, oil",Average,Average,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 70% of fixed outlets,Very Good,Very Good,oil (not community),0.0,NO DATA!,,,,N,natural,"Boyton Court Barn West, Boyton Court Road, Sutton Valence",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2020-02-25 14:31:32,owner-occupied,,,10014310633.0,Address Matched +545976521032010092818255654968800,"39, Cornhill Place",,,ME15 6GX,2014820868,C,C,70,72,Flat,End-Terrace,2010-09-16,E07000110,E14000804,Kent,2010-09-28,new dwelling,77,78,164,156.0,2.3,26,2.2,81.0,48.0,268.0,272.0,312.0,312.0,90.66,standard tariff,,top floor,,,,,NO DATA!,NO DATA!,,,,,,"Electric immersion, standard tariff",Very Poor,Poor,(other premises below),,,Fully double glazed,Good,Good,Average thermal transmittance 0.32 W/m?K,Good,Good,,,,Average thermal transmittance 0.16 W/m?K,Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 29% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.3,,,NO DATA!,"39, Cornhill Place",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2010-09-28 18:25:56,,,,10022895044.0,Address Matched +648285602002020030518074681800558,"196, Roseholme",,,ME16 8DZ,5098308868,D,C,58,79,Maisonette,Mid-Terrace,2020-03-05,E07000110,E14000804,Kent,2020-03-05,non marketed sale,55,65,295,229.0,3.7,50,2.9,60.0,70.0,740.0,309.0,235.0,184.0,74.0,dual,N,Ground,N,,2602.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,100.0,0.0,"Electric immersion, off-peak",Poor,Poor,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, partial insulation (assumed)",Average,Average,,,,(another dwelling above),,,"Room heaters, electric",Very Poor,Poor,Appliance thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,no corridor,,,,N,natural,"196, Roseholme",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1976-1982,2020-03-05 18:07:46,owner-occupied,,,200003666294.0,Address Matched +525787549352010081208534697900978,"55, Littlebourne Road",,,ME14 5QP,9874978768,D,C,56,77,House,Semi-Detached,2010-08-12,E07000110,E14000804,Kent,2010-08-12,marketed sale,49,73,371,192.0,4.6,62,2.4,70.0,39.0,569.0,368.0,258.0,115.0,74.3,Single,Y,NO DATA!,,,2104.0,85.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,22.0,0.0,"From main system, no cylinder thermostat",Poor,Poor,"Solid, no insulation (assumed)",,,Mostly double glazing,Poor,Poor,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Average,Average,Programmer and room thermostat,Average,Average,Low energy lighting in 22% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,0.0,N,natural,"55, Littlebourne Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1976-1982,2010-08-12 08:53:46,owner-occupied,,,200003673330.0,Address Matched +226126640612009021616100905910152,"2a, Reginald Road",,,ME16 8HA,1243057568,D,D,61,68,Bungalow,Semi-Detached,2009-02-16,E07000110,E14000804,Kent,2009-02-16,rental (private),54,63,349,286.0,3.7,58,3.0,42.0,28.0,473.0,404.0,79.0,68.0,62.81,Single,Y,NO DATA!,,,2107.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,50.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Poor,Poor,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.61,0.0,N,natural,"2a, Reginald Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2009-02-16 16:10:09,rental (private),,,200003669057.0,Address Matched +1726593918212019070811205798010863,Larch Barn,Lenham Road,Headcorn,TN27 9LJ,8351884678,C,C,74,80,House,Detached,2019-07-08,E07000110,E14000700,Kent,2019-07-08,new dwelling,68,74,96,65.0,5.4,25,4.1,106.0,106.0,565.0,565.0,189.0,150.0,215.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Average,Average,Average thermal transmittance 0.12 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.28 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.15 W/m-¦K,Good,Good,"Boiler and underfloor heating, oil",Average,Average,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,oil - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Larch Barn, Lenham Road, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,NO DATA!,2019-07-08 11:20:57,unknown,25.0,25.0,10094441020.0,Address Matched +668126839962019121012341769808911,Bellariva,The Street,Ulcombe,ME17 1DR,1691349868,E,C,49,72,House,Detached,2019-12-10,E07000110,E14000700,Kent,2019-12-10,marketed sale,44,68,215,110.0,9.7,52,5.2,124.0,124.0,1390.0,835.0,151.0,154.0,188.0,Unknown,N,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,2.0,5.0,5.0,75.0,0.0,From main system,Poor,Poor,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, wood logs",,,"Pitched, insulated",Good,Good,"Boiler and radiators, oil",Poor,Average,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,oil (not community),0.0,NO DATA!,,,,N,natural,"Bellariva, The Street, Ulcombe",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2019-12-10 12:34:17,owner-occupied,,,200003701169.0,Address Matched +1419763299062016080515245142758816,"16, Bunyard Way",Allington,,ME16 0BD,1443992478,B,A,85,94,House,Detached,2016-08-05,E07000110,E14000804,Kent,2016-08-05,new dwelling,86,95,80,16.0,1.6,14,0.3,67.0,67.0,261.0,261.0,107.0,58.0,114.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.14 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.26 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"16, Bunyard Way, Allington",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2016-08-05 15:24:51,owner-occupied,14.0,14.0,10091195402.0,Address Matched +1253588364712015010718421292050137,"35, Worcester Road",,,ME15 7LU,1713421378,D,C,55,80,House,Semi-Detached,2015-01-07,E07000110,E14000700,Kent,2015-01-07,marketed sale,47,76,339,138.0,5.0,60,2.1,53.0,53.0,914.0,588.0,137.0,87.0,84.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,100.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"35, Worcester Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2015-01-07 18:42:12,owner-occupied,,,200003712310.0,Address Matched +1384447404632016042716071796278100,Flat 17,Miller House,43-51 Lower Stone Street,ME15 6GB,46150478,D,D,61,61,Flat,NO DATA!,2016-04-27,E07000110,E14000804,Kent,2016-04-27,none of the above,45,45,472,472.0,3.8,80,3.8,36.0,36.0,552.0,552.0,147.0,147.0,48.0,off-peak 10 hour,,mid floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Poor,Poor,Average thermal transmittance 1.20 W/m-¦K,Very Poor,Very Poor,Fully double glazed,Good,Good,Average thermal transmittance 1.53 W/m-¦K,Poor,Poor,,,,(other premises above),,,"Boiler and radiators, electric",Poor,Very Poor,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"Flat 17, Miller House, 43-51 Lower Stone Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2016-04-27 16:07:17,unknown,4.0,4.0,10091196114.0,Address Matched +1715538954132019042306141889978707,"25, Roseleigh Avenue",,,ME16 0AS,5729704678,D,B,61,87,Bungalow,Semi-Detached,2019-04-18,E07000110,E14000804,Kent,2019-04-23,marketed sale,56,87,313,72.0,3.3,55,0.8,57.0,57.0,378.0,332.0,287.0,63.0,59.0,Unknown,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,75.0,0.0,"From main system, no cylinder thermostat",Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"25, Roseleigh Avenue",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2019-04-23 06:14:18,owner-occupied,,,200003658355.0,Address Matched +159737300922008101617000352468948,"31, Atwater Court",Lenham,,ME17 2PW,4582062568,E,E,46,50,House,End-Terrace,2008-10-16,E07000110,E14000700,Kent,2008-10-16,marketed sale,45,48,391,366.0,6.8,59,6.3,107.0,59.0,741.0,708.0,183.0,183.0,114.59,dual,N,NO DATA!,,,2401.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,17.0,0.0,"Electric immersion, off-peak",Poor,Poor,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,"Pitched, 100 mm loft insulation",Average,Average,Electric storage heaters,Poor,Poor,Manual charge control,Poor,Poor,Low energy lighting in 17% of fixed outlets,Poor,Poor,electricity - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.337,0.0,N,natural,"31, Atwater Court, Lenham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1991-1995,2008-10-16 17:00:03,owner-occupied,,,200003712578.0,Address Matched +666348429502011081723365383999438,Flat 1,"4a, Grecian Street",,ME14 2TS,6514829868,B,B,90,91,Flat,End-Terrace,2011-08-17,E07000110,E14000804,Kent,2011-08-17,new dwelling,77,78,157,149.0,2.0,28,1.9,37.0,21.0,61.0,61.0,98.0,98.0,50.4,24 hour,,top floor,,,,,NO DATA!,NO DATA!,,,,0.0,,From main system,Very Poor,Good,Average thermal transmittance 0.18 W/m?K,Very Good,Very Good,Fully double glazed,Good,Good,Average thermal transmittance 0.27 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.17 W/m?K,Good,Good,"Air source heat pump, radiators, electric",Very Good,Very Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in 25% of fixed outlets,Average,Average,"Electricity: electricity, unspecified tariff",0.0,NO DATA!,,2.7,,,NO DATA!,"Flat 1, 4a, Grecian Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2011-08-17 23:36:53,,0.0,0.0,10014313589.0,Address Matched +176833853132009071423402884968808,1 Brickfield Cottages,Emmet Hill Lane,Laddingford,ME18 6BG,5884893568,F,E,32,40,House,Semi-Detached,2009-07-10,E07000110,E14000804,Kent,2009-07-14,non marketed sale,23,29,545,466.0,8.2,123,7.0,61.0,33.0,1005.0,870.0,134.0,113.0,66.21,Single,N,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,4.0,4.0,14.0,1.0,From main system,Average,Average,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, coal",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, oil",Average,Average,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 14% of fixed outlets,Poor,Poor,oil - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.28,0.0,N,natural,"1 Brickfield Cottages, Emmet Hill Lane, Laddingford",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2009-07-14 23:40:28,owner-occupied,,,10022893207.0,Address Matched +1785717202922020021821195769588630,"22, Crowther Close",Staplehurst,,TN12 0NQ,3613029678,D,B,66,84,House,Semi-Detached,2020-02-18,E07000110,E14000804,Kent,2020-02-18,marketed sale,62,82,237,98.0,3.1,42,1.3,93.0,60.0,503.0,425.0,130.0,78.0,75.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,46.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,"Room heaters, mains gas",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 46% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"22, Crowther Close, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1967-1975,2020-02-18 21:19:57,owner-occupied,,,200003678310.0,Address Matched +919328379262013042407224547278167,"207, Willington Street",,,ME15 8EE,6441757078,C,C,70,78,House,Detached,2013-04-23,E07000110,E14000700,Kent,2013-04-24,marketed sale,66,75,154,108.0,5.0,30,3.6,128.0,80.0,832.0,784.0,95.0,95.0,169.0,dual,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,7.0,7.0,40.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 40% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"207, Willington Street",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2013-04-24 07:22:45,owner-occupied,15.0,6.0,200003685729.0,Address Matched +52555388452010030615450398000443,"39, The Weavers",,,ME16 0NZ,4311883468,C,C,71,79,House,Mid-Terrace,2010-03-06,E07000110,E14000804,Kent,2010-03-06,marketed sale,66,76,298,212.0,2.3,49,1.7,36.0,24.0,336.0,274.0,129.0,91.0,47.0,Single,Y,NO DATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,50.0,0.0,From main system,Average,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Average,Average,"Boiler and radiators, mains gas",Average,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.3,0.0,N,natural,"39, The Weavers",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2010-03-06 15:45:03,owner-occupied,,,200003694781.0,Address Matched +667878249702011081814105783999688,"6, Mercer Drive",Harrietsham,,ME17 1AY,6712049868,E,C,54,69,Bungalow,Detached,2011-08-18,E07000110,E14000700,Kent,2011-08-18,marketed sale,48,66,276,176.0,6.8,53,4.3,119.0,60.0,1059.0,700.0,142.0,119.0,127.89,Unknown,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,2.54,0.0,,natural,"6, Mercer Drive, Harrietsham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2011-08-18 14:10:57,owner-occupied,13.0,0.0,200003703887.0,Address Matched +944367186052013060414360393770801,Three Chimneys,Coldbridge Lane,Grafty Green,ME17 2AX,8172639078,F,B,22,81,Bungalow,Detached,2013-05-30,E07000110,E14000700,Kent,2013-06-04,marketed sale,18,73,472,92.0,11.0,115,2.4,87.0,51.0,1731.0,629.0,390.0,103.0,93.0,Single,N,NODATA!,,,2101.0,100.0,"double glazing, unknown install date",Normal,1.0,4.0,4.0,30.0,0.0,"From main system, no cylinder thermostat",Very Poor,Very Poor,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, oil",Poor,Poor,No time or thermostatic control of room temperature,Very Poor,Very Poor,Low energy lighting in 30% of fixed outlets,Average,Average,oil (not community),0.0,NO DATA!,,,0.0,,natural,"Three Chimneys, Coldbridge Lane, Grafty Green",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2013-06-04 14:36:03,owner-occupied,10.0,3.0,200003721800.0,Address Matched +362157010962009091205502657528371,Flat 6,"36-38, Tonbridge Road",,ME16 8SH,7589137668,C,C,70,75,Flat,NO DATA!,2009-09-12,E07000110,E14000804,Kent,2009-09-12,rental (private),66,71,298,250.0,2.4,50,2.0,34.0,24.0,380.0,339.0,81.0,70.0,47.47,Single,Y,2nd,N,4.0,2104.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,57.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Poor,Poor,Low energy lighting in 57% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.68,0.0,N,natural,"Flat 6, 36-38, Tonbridge Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2009-09-12 05:50:26,rental (private),,,200003669007.0,Address Matched +743533429222012012621012265768622,"1, Shearers Close",Weavering,,ME14 5UQ,2647215968,D,D,58,67,House,Detached,2012-01-26,E07000110,E14000700,Kent,2012-01-26,marketed sale,55,66,239,182.0,5.7,45,4.4,116.0,60.0,910.0,755.0,152.0,115.0,143.38,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,7.0,7.0,6.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 6% of fixed outlets,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,2.36,0.0,,natural,"1, Shearers Close, Weavering",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2012-01-26 21:01:22,owner-occupied,16.0,1.0,200003687935.0,Address Matched +1431385419062016041116254323658726,Flat 39,Concorde House,London Road,ME16 8QA,2297183478,D,D,63,63,Flat,Enclosed End-Terrace,2016-04-05,E07000110,E14000804,Kent,2016-04-11,rental (private),59,59,318,318.0,2.7,54,2.7,38.0,38.0,472.0,472.0,164.0,164.0,51.0,dual,N,3rd,N,,2107.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,100.0,0.0,From main system,Poor,Poor,(another dwelling below),NO DATA!,,Fully double glazed,Good,Good,"System built, with internal insulation",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, electric",Very Poor,Poor,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,unheated corridor,15.08,2.5,,N,natural,"Flat 39, Concorde House, London Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2016-04-11 16:25:43,rental (private),,,, +1674441809832018110111173813078198,Croftside,Ulcombe Road,Headcorn,TN27 9JX,843111678,C,C,70,80,Bungalow,Detached,2018-11-01,E07000110,E14000700,Kent,2018-11-01,new dwelling,64,73,126,68.0,3.9,33,2.6,78.0,78.0,324.0,324.0,146.0,114.0,119.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Average,Average,Average thermal transmittance 0.18 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.23 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.15 W/m-¦K,Good,Good,"Boiler and radiators, oil",Average,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,oil - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Croftside, Ulcombe Road, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,NO DATA!,2018-11-01 11:17:38,unknown,39.0,39.0,10094441012.0,Address Matched +1446317467312016052318501498260442,"123, Milton Street",,,ME16 8LL,4226784478,D,B,67,84,House,End-Terrace,2016-05-23,E07000110,E14000804,Kent,2016-05-23,marketed sale,62,82,222,91.0,3.6,39,1.5,59.0,59.0,673.0,492.0,111.0,76.0,92.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,3.0,6.0,6.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,2.48,,N,natural,"123, Milton Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2016-05-23 18:50:14,owner-occupied,,,200003655700.0,Address Matched +198736544132019041819163251968503,"70, Middlesex Road",,,ME15 7PL,4301575568,D,B,64,87,House,End-Terrace,2019-04-18,E07000110,E14000700,Kent,2019-04-18,marketed sale,59,86,266,79.0,3.6,47,1.1,57.0,57.0,589.0,377.0,138.0,76.0,77.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"70, Middlesex Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2019-04-18 19:16:32,owner-occupied,,,200003709909.0,Address Matched +262635940062009040720404340538451,"7, Hydes Orchard",Headcorn,,TN27 9UE,5407430668,D,D,65,67,House,Detached,2009-04-07,E07000110,E14000700,Kent,2009-04-07,marketed sale,58,59,218,211.0,6.4,40,6.2,142.0,81.0,720.0,733.0,139.0,139.0,182.2,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,7.0,7.0,25.0,1.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, coal",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 25% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.3,0.0,N,natural,"7, Hydes Orchard, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,England and Wales: 1991-1995,2009-04-07 20:40:43,owner-occupied,,,200003700979.0,Address Matched +218418059962016031607100387658646,"10, Courtlands",Teston,,ME18 5AS,4855517568,D,B,68,87,Bungalow,Semi-Detached,2016-03-15,E07000110,E14000804,Kent,2016-03-16,marketed sale,66,86,229,80.0,2.9,40,1.0,97.0,48.0,482.0,397.0,128.0,81.0,71.0,Unknown,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"10, Courtlands, Teston",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2016-03-16 07:10:03,owner-occupied,,,200003661750.0,Address Matched +1170010202152014070708185493040429,"1, Pinewood Drive",,,ME5 8XU,4942235278,C,B,69,88,House,Semi-Detached,2014-07-07,E07000110,E14000700,Kent,2014-07-07,marketed sale,69,90,181,45.0,2.5,35,0.7,93.0,47.0,469.0,361.0,97.0,67.0,73.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, partial insulation (assumed)",Average,Average,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"1, Pinewood Drive",Maidstone,Faversham and Mid Kent,CHATHAM,England and Wales: 1976-1982,2014-07-07 08:18:54,owner-occupied,10.0,0.0,200003673551.0,Address Matched +175248301752008120511385501089458,Flat 3 Dunkeld House,Westmorland Road,,ME15 8JH,4815113568,C,C,70,78,Flat,End-Terrace,2008-12-05,E07000110,E14000700,Kent,2008-12-05,rental (social),67,75,299,224.0,2.2,50,1.7,40.0,20.0,291.0,246.0,76.0,58.0,44.87,Single,Y,Ground,N,2.0,2107.0,100.0,double glazing installed before 2002,Normal,0.0,2.0,2.0,0.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Poor,Poor,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.32,0.0,N,natural,"Flat 3 Dunkeld House, Westmorland Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2008-12-05 11:38:55,rental (social),,,200003685590.0,Address Matched +1743931056452019081515431291910161,"146, Reculver Walk",,,ME15 8TT,1182616678,C,B,71,85,House,Semi-Detached,2019-08-15,E07000110,E14000700,Kent,2019-08-15,marketed sale,69,83,194,96.0,3.0,34,1.5,74.0,74.0,464.0,433.0,132.0,79.0,87.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,86.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 86% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"146, Reculver Walk",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2019-08-15 15:43:12,owner-occupied,,,200003725802.0,Address Matched +1490155865712016102114581899250940,"36, Murdoch Chase",Coxheath,,ME17 4AA,9008597478,B,A,84,95,House,NO DATA!,2015-09-21,E07000110,E14000804,Kent,2016-10-21,new dwelling,86,97,88,10.0,1.4,15,0.2,61.0,61.0,244.0,245.0,105.0,56.0,94.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.14 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.20 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"36, Murdoch Chase, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2016-10-21 14:58:18,unknown,11.0,11.0,10093302688.0,Address Matched +5a2f0e964031251c7fbeb786a00133e4351bfabca4b6afc6215c82376b288ce8,12 Stansted Close,,,ME16 0RL,10001352695,D,B,62,81,House,Semi-Detached,2021-08-23,E07000110,E14000804,Kent,2021-08-24,marketed sale,59,79,237,106.0,4.0,41,1.8,101.0,76.0,768.0,578.0,97.0,68.0,96.0,Single,Y,,,,,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,67.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,"Room heaters, electric",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 67% of fixed outlets,Good,Good,mains gas (not community),0.0,,,2.37,0.0,N,natural,12 Stansted Close,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2021-08-24 10:10:43,Owner-occupied,18.0,,200003660889.0,Energy Assessor +1589750464712017111513272490939156,"14, Oaken Wood Drive",,,ME16 9FE,1646405578,B,B,89,91,House,End-Terrace,2017-11-15,E07000110,E14000804,Kent,2017-11-15,new dwelling,91,94,47,30.0,0.7,8,0.4,56.0,56.0,176.0,178.0,97.0,52.0,79.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.18 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"14, Oaken Wood Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2017-11-15 13:27:24,unknown,20.0,20.0,10093303609.0,Address Matched +1314646059502015042709531435552358,1 Woodside Cottage,George Street,Hunton,ME15 0RF,556555378,E,A,50,99,House,Semi-Detached,2015-04-25,E07000110,E14000804,Kent,2015-04-27,marketed sale,42,91,242,-27.0,6.4,63,0.8,72.0,73.0,952.0,558.0,236.0,100.0,100.0,Single,N,NODATA!,,,2106.0,0.0,not defined,Normal,1.0,5.0,5.0,80.0,1.0,From main system,Poor,Poor,"Solid, no insulation (assumed)",NO DATA!,,Single glazed,Very Poor,Very Poor,"Timber frame, with additional insulation",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, oil",Poor,Average,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,oil (not community),0.0,NO DATA!,,,,N,natural,"1 Woodside Cottage, George Street, Hunton",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2015-04-27 09:53:14,owner-occupied,,,200003722877.0,Address Matched +1079581758412020011410303129900615,"16, Kings Road",Headcorn,,TN27 9QU,6597898178,C,C,70,80,House,Semi-Detached,2020-01-13,E07000110,E14000700,Kent,2020-01-14,marketed sale,68,79,178,112.0,4.1,29,2.5,93.0,93.0,774.0,712.0,140.0,85.0,144.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,3.0,6.0,6.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,"Room heaters, wood logs",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"16, Kings Road, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,England and Wales: 1930-1949,2020-01-14 10:30:31,owner-occupied,,,200003698717.0,Address Matched +401810523432014070218212174068000,Meadowside Cottage,Maidstone Road,Wateringbury,ME18 5ER,2004010768,E,B,52,86,House,Detached,2014-07-02,E07000110,E14000804,Kent,2014-07-02,rental (private),49,88,336,59.0,3.8,65,0.7,43.0,43.0,785.0,405.0,74.0,49.0,58.0,Single,Y,NODATA!,,,2106.0,75.0,double glazing installed during or after 2002,Normal,2.0,3.0,3.0,89.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Partial double glazing,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 89% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"Meadowside Cottage, Maidstone Road, Wateringbury",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2014-07-02 18:21:21,rental (private),9.0,8.0,200003657619.0,Address Matched +1276585689702015020319271333250228,"2, Rutland Way",,,ME15 8DR,9781682378,C,B,72,86,House,Semi-Detached,2015-02-02,E07000110,E14000700,Kent,2015-02-03,rental (social),70,84,185,86.0,2.9,33,1.4,80.0,56.0,492.0,459.0,130.0,82.0,89.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,56.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 56% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"2, Rutland Way",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2015-02-03 19:27:13,rental (social),,,200003713302.0,Address Matched +1660677419702018090414195767080048,"81, Bedgebury Close",,,ME14 5QZ,8702010678,D,B,61,88,House,Mid-Terrace,2018-09-04,E07000110,E14000804,Kent,2018-09-04,rental (private),56,88,282,61.0,3.7,50,0.8,101.0,54.0,498.0,315.0,208.0,87.0,74.0,Single,Y,NODATA!,,,2504.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,11.0,0.0,"From main system, no cylinder thermostat",Poor,Poor,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 25 mm loft insulation",Poor,Poor,"Warm air, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 11% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"81, Bedgebury Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2018-09-04 14:19:57,rental (private),,,200003672074.0,Address Matched +18255560452012022210534498220046,246 Wallis Place,Hart Street,,ME16 8FF,675088468,B,B,82,82,Flat,NO DATA!,2012-02-22,E07000110,E14000804,Kent,2012-02-22,new dwelling,88,88,101,101.0,0.8,19,0.8,24.0,24.0,160.0,160.0,71.0,71.0,40.06,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,6.0,,From main system,Good,Good,(other premises below),,,Fully double glazed,Good,Good,Average thermal transmittance 0.28 W/m?K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,,,NO DATA!,"246 Wallis Place, Hart Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2012-02-22 10:53:44,,6.0,6.0,10022900854.0,Address Matched +685019632152011100323590496099295,"61a, Wrangleden Road",,,ME15 9LD,2538260968,D,C,66,72,Flat,Semi-Detached,2011-10-03,E07000110,E14000700,Kent,2011-10-03,rental (social),65,74,234,177.0,2.7,45,2.1,53.0,35.0,456.0,372.0,96.0,76.0,61.0,Single,Y,1st,Y,,2107.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,50.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,no corridor,,2.31,0.0,,natural,"61a, Wrangleden Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2011-10-03 23:59:04,rental (social),6.0,3.0,200003683183.0,Address Matched +683129859902011092923413391092118,"11, Willington Green",,,ME15 8AZ,6910050968,D,C,66,75,Flat,Semi-Detached,2011-09-29,E07000110,E14000700,Kent,2011-09-29,rental (social),67,79,263,169.0,2.1,51,1.4,35.0,25.0,311.0,234.0,146.0,99.0,42.0,Single,Y,1st,Y,,2107.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,60.0,0.0,From main system,Average,Average,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 60% of fixed outlets,Good,Good,mains gas (not community),0.0,no corridor,,2.35,0.0,,natural,"11, Willington Green",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2011-09-29 23:41:33,rental (social),5.0,3.0,200003684542.0,Address Matched +466895109022010040918543934388210,"6, Farington Close",,,ME16 0WN,1362074768,C,B,79,83,House,Mid-Terrace,2010-04-08,E07000110,E14000804,Kent,2010-04-09,rental (social),77,81,188,158.0,1.7,31,1.4,59.0,30.0,237.0,227.0,109.0,95.0,53.82,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,0.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.29,0.0,N,natural,"6, Farington Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2010-04-09 18:54:39,rental (social),,,10022893182.0,Address Matched +1141669139902014051518373121349958,"20, Randall Street",,,ME14 2TB,9937333278,D,C,55,78,House,End-Terrace,2014-05-15,E07000110,E14000804,Kent,2014-05-15,marketed sale,49,75,249,111.0,6.8,48,3.1,137.0,71.0,1247.0,765.0,103.0,103.0,142.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,6.0,6.0,7.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 7% of fixed outlets,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"20, Randall Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2014-05-15 18:37:31,owner-occupied,15.0,1.0,200003669799.0,Address Matched +1233013950432014110711090796278794,"90, Buckland Road",,,ME16 0SD,5456779278,D,B,60,84,House,Semi-Detached,2014-10-29,E07000110,E14000804,Kent,2014-11-07,marketed sale,55,83,226,74.0,5.2,43,1.8,132.0,66.0,973.0,524.0,108.0,109.0,119.0,Single,Y,NODATA!,,,2107.0,82.0,double glazing installed during or after 2002,Normal,0.0,7.0,7.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Mostly double glazing,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"90, Buckland Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2014-11-07 11:09:07,owner-occupied,15.0,0.0,200003670100.0,Address Matched +1707569149202019032110273569312198,"11, Rags Field",Staplehurst,,TN12 0FQ,8264943678,B,A,84,96,House,Mid-Terrace,2019-03-21,E07000110,E14000804,Kent,2019-03-21,new dwelling,87,98,81,0.0,1.2,14,0.0,62.0,62.0,203.0,203.0,73.0,43.0,84.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.28 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"11, Rags Field, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,NO DATA!,2019-03-21 10:27:35,unknown,9.0,9.0,10093304164.0,Address Matched +347931630202009082012390967612308,"7, Foxglove Rise",,,ME14 2AF,6286336668,C,C,72,77,House,End-Terrace,2009-08-20,E07000110,E14000804,Kent,2009-08-20,rental (private),68,74,250,204.0,2.4,42,2.0,44.0,29.0,350.0,307.0,119.0,101.0,58.68,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,50.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Timber frame, as built, insulated (assumed)",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.33,0.0,N,natural,"7, Foxglove Rise",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1991-1995,2009-08-20 12:39:09,rental (private),,,200003722749.0,Address Matched +388453132222020072814130889488790,"99, Lacock Gardens",,,ME15 6GT,9869319668,C,B,76,91,House,Mid-Terrace,2020-07-28,E07000110,E14000804,Kent,2020-07-28,rental (private),78,91,159,44.0,1.7,28,0.5,51.0,51.0,294.0,294.0,92.0,62.0,59.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Timber frame, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"99, Lacock Gardens",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1991-1995,2020-07-28 14:13:08,rental (private),,,10012891071.0,Address Matched +975831343732013072414461302278900,"14, Coverdale Avenue",,,ME15 9DS,4022951178,C,B,72,81,House,Semi-Detached,2013-07-24,E07000110,E14000700,Kent,2013-07-24,marketed sale,64,75,169,112.0,3.6,34,2.4,105.0,58.0,583.0,401.0,540.0,538.0,107.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,20.0,1.0,From main system,Very Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 20% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,66.0,,natural,"14, Coverdale Avenue",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2013-07-24 14:46:13,owner-occupied,10.0,2.0,200003710283.0,Address Matched +837302361852015111718390998959901,"21, Foxden Drive",Downswood,,ME15 8TQ,9153181078,C,B,69,88,House,Semi-Detached,2015-11-17,E07000110,E14000700,Kent,2015-11-17,none of the above,67,87,221,70.0,2.7,39,0.9,73.0,47.0,508.0,395.0,90.0,58.0,70.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,45.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, partial insulation (assumed)",Average,Average,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 45% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"21, Foxden Drive, Downswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1976-1982,2015-11-17 18:39:09,owner-occupied,,,200003686547.0,Address Matched +1212447749222014092917205278818344,"25, St. Francis Close",Penenden Heath,,ME14 2TQ,4706438278,C,C,73,77,Maisonette,End-Terrace,2014-09-29,E07000110,E14000804,Kent,2014-09-29,marketed sale,75,79,158,131.0,2.0,30,1.6,95.0,47.0,317.0,303.0,138.0,119.0,66.0,Single,Y,1st,Y,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,3.0,3.0,0.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,no corridor,,,0.0,,natural,"25, St. Francis Close, Penenden Heath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2014-09-29 17:20:52,owner-occupied,7.0,0.0,10022892039.0,Address Matched +1972586912013091720385190970744,"13, Norrington Road",,,ME15 9RB,7492602468,D,B,64,86,House,Semi-Detached,2013-09-16,E07000110,E14000804,Kent,2013-09-17,marketed sale,61,86,210,64.0,3.6,40,1.2,103.0,52.0,564.0,415.0,154.0,72.0,90.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,5.0,5.0,0.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Average,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"13, Norrington Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2013-09-17 20:38:51,owner-occupied,10.0,0.0,200003674971.0,Address Matched +174013659702019081814225758319268,The Firs,Sittingbourne Road,,ME14 5JD,7727353568,D,C,68,76,House,Detached,2019-08-16,E07000110,E14000804,Kent,2019-08-18,marketed sale,60,69,174,129.0,8.9,32,6.7,194.0,129.0,1499.0,1308.0,154.0,155.0,278.0,Single,Y,NODATA!,,,2110.0,100.0,"double glazing, unknown install date",Normal,3.0,8.0,8.0,50.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"The Firs, Sittingbourne Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2019-08-18 14:22:57,owner-occupied,,,200003673335.0,Address Matched +599001939602015010716312080449868,"16, Charles Street",,,ME16 8ET,639934868,E,B,40,82,House,Mid-Terrace,2014-12-16,E07000110,E14000804,Kent,2015-01-07,ECO assessment,33,78,408,105.0,8.9,72,2.3,138.0,69.0,1558.0,637.0,181.0,77.0,123.0,Single,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,1.0,6.0,6.0,0.0,0.0,From main system,Average,Average,"To unheated space, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, no insulation",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"16, Charles Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2015-01-07 16:31:20,rental (private),,,200003667811.0,Address Matched +361788420342009091120431467719298,"13, Birnam Square",,,ME16 8UN,6305727668,C,B,75,81,House,Mid-Terrace,2009-09-11,E07000110,E14000804,Kent,2009-09-11,marketed sale,73,79,167,129.0,3.3,28,2.6,119.0,60.0,356.0,293.0,110.0,110.0,134.39,dual,Y,NO DATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,0.0,6.0,6.0,0.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, partial insulation (assumed)",Average,Average,,,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Very Good,Very Good,Programmer and room thermostat,Poor,Poor,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.35,0.0,N,natural,"13, Birnam Square",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1976-1982,2009-09-11 20:43:14,owner-occupied,,,200003668211.0,Address Matched +917668954732013042222440342278106,"58, Mill Bank",Headcorn,,TN27 9RD,5672157078,D,C,62,76,House,Semi-Detached,2013-04-22,E07000110,E14000700,Kent,2013-04-22,marketed sale,59,73,232,137.0,3.5,45,2.1,63.0,45.0,619.0,590.0,82.0,59.0,79.0,Unknown,Y,NODATA!,,,2106.0,90.0,secondary glazing,Normal,0.0,5.0,5.0,60.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Mostly secondary glazing,Average,Average,"Timber frame, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 60% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"58, Mill Bank, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,England and Wales: before 1900,2013-04-22 22:44:03,owner-occupied,10.0,6.0,200003698792.0,Address Matched +1561712109902018042409592851382848,"19, Edmett Way",,,ME17 3FA,5905303578,B,B,82,82,House,Semi-Detached,2018-04-24,E07000110,E14000700,Kent,2018-04-24,new dwelling,86,86,99,99.0,1.1,17,1.1,49.0,49.0,204.0,204.0,73.0,73.0,64.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"19, Edmett Way",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2018-04-24 09:59:28,unknown,1.0,1.0,10091193970.0,Address Matched +890909381552013022822360596270804,"31, Greenhill",Staplehurst,,TN12 0SU,8484165078,D,B,66,82,House,Semi-Detached,2013-02-27,E07000110,E14000804,Kent,2013-02-28,marketed sale,64,82,202,90.0,3.1,39,1.4,59.0,59.0,506.0,441.0,132.0,76.0,81.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,4.0,4.0,80.0,0.0,From main system,Good,Good,"Suspended, limited insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, mains gas",,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"31, Greenhill, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1996-2002,2013-02-28 22:36:05,owner-occupied,10.0,8.0,200003723172.0,Address Matched +1330732009612015061117022296950030,Rose Croft,The Street,Ulcombe,ME17 1DP,20966378,F,E,28,47,House,Detached,2015-06-10,E07000110,E14000700,Kent,2015-06-11,rental (private),29,41,336,216.0,13.0,78,9.3,161.0,80.0,2444.0,2464.0,193.0,114.0,163.0,Single,N,NODATA!,,,2106.0,75.0,double glazing installed before 2002,Normal,0.0,7.0,7.0,0.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Partial double glazing,Poor,Poor,"Timber frame, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, oil",Average,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,oil (not community),0.0,NO DATA!,,,,N,natural,"Rose Croft, The Street, Ulcombe",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2015-06-11 17:02:22,rental (private),,,200003701224.0,Address Matched +1443893999512016051612074796960448,"18, Stockett Lane",Coxheath,,ME17 4PS,4857964478,E,B,54,83,House,Semi-Detached,2016-05-16,E07000110,E14000804,Kent,2016-05-16,marketed sale,48,81,348,106.0,4.2,64,1.4,68.0,46.0,738.0,474.0,159.0,70.0,66.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,50.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,2.43,,N,natural,"18, Stockett Lane, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2016-05-16 12:07:47,owner-occupied,,,200003714332.0,Address Matched +984779017812013080622235192070018,1 Boyton Court Cottages,Boyton Court Road,Sutton Valence,ME17 3EG,827722178,D,B,62,88,House,Semi-Detached,2013-08-06,E07000110,E14000700,Kent,2013-08-06,marketed sale,49,79,192,58.0,6.3,49,2.4,87.0,65.0,990.0,573.0,213.0,117.0,130.0,Unknown,N,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,6.0,6.0,67.0,1.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, coal",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, oil",Average,Average,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 67% of fixed outlets,Good,Good,oil (not community),0.0,NO DATA!,,,0.0,,natural,"1 Boyton Court Cottages, Boyton Court Road, Sutton Valence",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1900-1929,2013-08-06 22:23:51,owner-occupied,18.0,12.0,200003698289.0,Address Matched +198082732812014072222142594240754,"77, Reculver Walk",,,ME15 8SZ,7413245568,C,B,70,90,Bungalow,End-Terrace,2014-07-22,E07000110,E14000700,Kent,2014-07-22,rental (social),72,93,200,27.0,1.8,38,0.3,53.0,32.0,360.0,317.0,85.0,60.0,47.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,33.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 33% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"77, Reculver Walk",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2014-07-22 22:14:25,rental (social),6.0,2.0,200003725724.0,Address Matched +357766070022009090407363766978281,"97, Chatham Road",Sandling,,ME14 3BB,8678796668,E,C,54,76,House,Semi-Detached,2009-09-03,E07000110,E14000700,Kent,2009-09-04,marketed sale,48,73,351,176.0,5.7,58,2.9,99.0,50.0,723.0,410.0,222.0,122.0,97.9,Single,Y,NO DATA!,,,2102.0,,INVALID!,Much More Than Typical,0.0,5.0,5.0,0.0,0.0,"From main system, no cylinderstat",Poor,Average,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 25mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Average,Good,"Programmer, no room thermostat",Very Poor,Very Poor,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.48,0.0,N,natural,"97, Chatham Road, Sandling",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2009-09-04 07:36:37,owner-occupied,,,200003672604.0,Address Matched +1021606299302013100917022511470228,24 Crundale,Union Street,,ME14 1TX,1305094178,C,C,73,78,Flat,Mid-Terrace,2013-10-02,E07000110,E14000804,Kent,2013-10-09,none of the above,76,82,175,131.0,1.6,33,1.2,36.0,36.0,266.0,218.0,121.0,97.0,47.0,Single,Y,4th,N,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,2.0,2.0,80.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,4.3,,0.0,,natural,"24 Crundale, Union Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2013-10-09 17:02:25,rental (social),5.0,4.0,200003701440.0,Address Matched +1696773342132019021111391023978308,"55, Abingdon Road",,,ME16 9EE,4803372678,D,B,68,85,House,Semi-Detached,2019-02-11,E07000110,E14000804,Kent,2019-02-11,FiT application,65,83,212,86.0,3.2,37,1.3,75.0,75.0,482.0,412.0,150.0,70.0,85.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,78.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 78% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"55, Abingdon Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2019-02-11 11:39:10,owner-occupied,,,200003665078.0,Address Matched +721439589062011110811122453688169,"8, Keele Way",,,ME15 9WW,6583813968,B,B,84,84,House,Mid-Terrace,2011-11-08,E07000110,E14000700,Kent,2011-11-08,new dwelling,88,88,74,74.0,1.1,14,1.1,58.0,58.0,222.0,222.0,45.0,45.0,77.32,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,10.0,,"From main system, plus solar",Very Good,Very Good,Average thermal transmittance 0.18 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.23 W/m?K,Very Good,Very Good,"Room heaters, electric",,,Average thermal transmittance 0.10 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 83% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.31,,,NO DATA!,"8, Keele Way",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2011-11-08 11:12:24,,12.0,10.0,10014311584.0,Address Matched +1508945509332017010509061432078103,Flat 2,12 Tonbridge Road,,ME16 8RP,352139478,B,B,84,84,Flat,Semi-Detached,2017-01-05,E07000110,E14000804,Kent,2017-01-05,new dwelling,88,88,147,147.0,0.5,25,0.5,25.0,25.0,67.0,67.0,96.0,96.0,21.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Average,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.36 W/m-¦K,Good,Good,,,,Average thermal transmittance 0.15 W/m-¦K,Good,Good,"Ground source heat pump, radiators, electric",Good,Very Good,Programmer and room thermostat,Average,Average,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"Flat 2, 12 Tonbridge Road",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2017-01-05 09:06:14,unknown,4.0,3.0,10093303697.0,Address Matched +773221159022012040520271497058192,"66, Shaftesbury Drive",,,ME16 0JY,9973507968,D,C,68,80,Bungalow,Semi-Detached,2012-04-05,E07000110,E14000804,Kent,2012-04-05,marketed sale,66,78,176,101.0,3.5,34,2.0,53.0,53.0,585.0,541.0,89.0,63.0,102.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, no insulation",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"66, Shaftesbury Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2012-04-05 20:27:14,owner-occupied,8.0,8.0,200003726315.0,Address Matched +1601964999302018012315363355582108,Flat 2,"3, Tonbridge Road",,ME16 8RL,5322195578,C,C,69,69,Flat,Detached,2018-01-20,E07000110,E14000804,Kent,2018-01-23,new dwelling,56,56,396,396.0,2.3,67,2.3,29.0,29.0,239.0,239.0,200.0,200.0,34.0,24 hour,,ground floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,"Electric immersion, off-peak",Average,Poor,Average thermal transmittance 0.27 W/m-¦K,Good,Good,Fully double glazed,Good,Good,Average thermal transmittance 0.35 W/m-¦K,Good,Good,,,,(other premises above),,,"Electric storage heaters, radiators",Poor,Very Poor,Automatic charge control,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"Flat 2, 3, Tonbridge Road",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2018-01-23 15:36:33,owner-occupied,1.0,1.0,10093305033.0,Address Matched +737035582712012010613410294020699,"29, Beaver Road",Allington,,ME16 0XR,6980244968,C,C,74,76,House,Mid-Terrace,2012-01-06,E07000110,E14000804,Kent,2012-01-06,marketed sale,76,78,163,148.0,1.8,31,1.7,44.0,44.0,287.0,273.0,117.0,102.0,59.12,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,81.0,0.0,From main system,Good,Good,"Solid, limited insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 82% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,2.33,0.0,,natural,"29, Beaver Road, Allington",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2012-01-06 13:41:02,owner-occupied,11.0,9.0,200003707061.0,Address Matched +418213834352014062610151592240670,"14, Hawkwood",,,ME16 0JQ,6060421768,D,B,68,81,House,Detached,2014-06-26,E07000110,E14000804,Kent,2014-06-26,marketed sale,65,80,182,93.0,3.6,35,1.9,59.0,59.0,657.0,563.0,123.0,82.0,103.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"14, Hawkwood",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2014-06-26 10:15:15,owner-occupied,11.0,11.0,200003705709.0,Address Matched +48493640962008121712565195438718,Flat 53,Broadway Heights,23 The Broadway,ME16 8GJ,1936465568,B,B,81,81,Flat,Detached,2008-12-17,E07000110,E14000804,Kent,2008-12-17,new dwelling,81,81,160,158.0,1.4,0,1.3,29.0,23.0,213.0,214.0,62.0,62.0,0.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,12.0,,SAP05:Hot-Water,,,SAP05:Floor,,,SAP05:Windows,,,SAP05:Walls,,,SAP05:Secondary-Heating,,,SAP05:Roof,,,SAP05:Main-Heating,,,SAP05:Main-Heating-Controls,,,SAP05:Lighting,,,mains gas - this is for backwards compatibility only and should not be used,-1.0,NO DATA!,,,,,NO DATA!,"Flat 53, Broadway Heights, 23 The Broadway",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2008-12-17 12:56:51,,16.0,12.0,10022896877.0,Address Matched +5ace49ec28c2f91df37d7c2e6738c126e77068cdfa67c01bc8b45e9903f5947d,9,Pearson Meadow,Boughton Monchelsea,ME17 4SX,10001617153,B,A,84,96,House,Semi-Detached,2021-07-07,E07000110,E14000700,Kent,2021-07-07,new dwelling,87,99,86,-3.0,1.2,15,0.0,67.0,67.0,202.0,202.0,69.0,42.0,77.0,standard tariff,,,N,,,100.0,,,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.20 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.39,,,,"9, Pearson Meadow, Boughton Monchelsea",Maidstone,Faversham and Mid Kent,MAIDSTONE,2021,2021-07-07 14:48:36,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,14.0,,10094442604.0,Address Matched +1716101749222019042516065474358321,"4, Dhekelia Close",Invicta Park,,ME14 2NX,2731414678,D,B,60,84,House,Mid-Terrace,2019-04-25,E07000110,E14000804,Kent,2019-04-25,Stock Condition Survey,54,82,288,94.0,4.1,51,1.4,117.0,59.0,676.0,434.0,96.0,65.0,80.0,Unknown,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Flat, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"4, Dhekelia Close, Invicta Park",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2019-04-25 16:06:54,rental (private),,,200003723962.0,Address Matched +1749093959602019090608421562610358,"29, Florence Road",,,ME16 8EN,2693256678,D,B,63,87,House,End-Terrace,2019-09-05,E07000110,E14000804,Kent,2019-09-06,marketed sale,57,85,241,69.0,4.5,42,1.3,105.0,74.0,749.0,407.0,107.0,78.0,105.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,58.0,0.0,From main system,Very Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 58% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"29, Florence Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2019-09-06 08:42:15,owner-occupied,,,200003667725.0,Address Matched +306040840342009062416484768319068,"2, Cherry Orchard Way",,,ME16 8TJ,1347043668,D,D,64,65,House,Semi-Detached,2009-06-16,E07000110,E14000804,Kent,2009-06-24,rental (social),58,59,278,272.0,4.3,46,4.2,76.0,45.0,581.0,587.0,107.0,107.0,92.88,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,30.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"System built, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 30% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.41,0.0,N,natural,"2, Cherry Orchard Way",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2009-06-24 16:48:47,rental (social),,,200003696510.0,Address Matched +1774825632602020010413281768800778,"7, Weyhill Close",,,ME14 5SQ,7697938678,D,C,65,79,House,Detached,2020-01-03,E07000110,E14000804,Kent,2020-01-04,marketed sale,59,74,237,135.0,4.1,42,2.4,78.0,78.0,683.0,599.0,124.0,82.0,97.0,dual,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,2.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,"Room heaters, mains gas",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"7, Weyhill Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2020-01-04 13:28:17,owner-occupied,,,200003672945.0,Address Matched +1822840092022020090708025781978330,Forge House,Pye Corner,Ulcombe,ME17 1EH,3892981778,D,B,65,85,House,Semi-Detached,2020-09-03,E07000110,E14000700,Kent,2020-09-07,marketed sale,57,80,155,57.0,6.0,40,2.6,97.0,97.0,759.0,470.0,168.0,86.0,150.0,Single,N,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,8.0,8.0,100.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, oil",Average,Average,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,oil (not community),0.0,NO DATA!,,,,N,natural,"Forge House, Pye Corner, Ulcombe",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2020-09-07 08:02:57,owner-occupied,,,200003725658.0,Address Matched +121586459742019112816392840812188,"17, High Street",Lenham,,ME17 2QD,3785758468,D,B,59,85,House,End-Terrace,2019-11-28,E07000110,E14000700,Kent,2019-11-28,marketed sale,62,88,301,86.0,3.0,45,0.8,68.0,53.0,678.0,420.0,80.0,52.0,68.0,Single,Y,NODATA!,,,2106.0,40.0,secondary glazing,Normal,1.0,3.0,3.0,71.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Partial secondary glazing,Poor,Poor,"Solid brick, as built, no insulation (assumed)",Poor,Poor,"Room heaters, wood logs",,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 71% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"17, High Street, Lenham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2019-11-28 16:39:28,owner-occupied,,,200003711202.0,Address Matched +1558615551012017071011350998930854,"10, Acorn Close",,,ME16 8FX,8473182578,B,A,84,94,House,End-Terrace,2017-07-10,E07000110,E14000804,Kent,2017-07-10,new dwelling,86,95,81,18.0,1.6,14,0.4,67.0,67.0,274.0,274.0,83.0,48.0,109.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.12 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"10, Acorn Close",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2017-07-10 11:35:09,owner-occupied,12.0,12.0,10093303859.0,Address Matched +274635828752009043017425501710965,"60, Park Way",Coxheath,,ME17 4ER,9553811668,D,D,62,64,Bungalow,Semi-Detached,2009-04-30,E07000110,E14000804,Kent,2009-04-30,marketed sale,61,62,246,239.0,4.5,40,4.4,91.0,51.0,575.0,584.0,112.0,112.0,110.81,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,4.0,4.0,20.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 20% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,0.0,N,natural,"60, Park Way, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2009-04-30 17:42:55,owner-occupied,,,200003715151.0,Address Matched +272086830262009042401582881028771,"8, Tydeman Road",Bearsted,,ME15 8LU,7832301668,C,C,74,79,House,Mid-Terrace,2009-04-22,E07000110,E14000700,Kent,2009-04-24,rental (private),72,76,223,186.0,2.2,37,1.9,54.0,29.0,325.0,286.0,74.0,74.0,60.2,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,More Than Typical,0.0,3.0,3.0,12.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 100mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 12% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,0.0,N,natural,"8, Tydeman Road, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2009-04-24 01:58:28,rental (private),,,200003686199.0,Address Matched +528028799922010081622335108168070,"47, Kingsley Road",,,ME15 7UW,7038998768,E,E,44,46,House,Semi-Detached,2010-08-16,E07000110,E14000804,Kent,2010-08-16,marketed sale,37,37,384,377.0,8.7,72,8.6,137.0,74.0,1207.0,1220.0,136.0,136.0,117.09,dual,Y,NO DATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,0.0,6.0,6.0,15.0,2.0,From main system,Very Good,Very Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, coal",,,"Roof room(s), no insulation",Very Poor,Very Poor,"Boiler and radiators, mains gas",Very Good,Very Good,Programmer and room thermostat,Average,Average,Low energy lighting in 15% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.16,0.0,N,natural,"47, Kingsley Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2010-08-16 22:33:51,owner-occupied,,,200003696015.0,Address Matched +17294109722011103115191288398909,122 Wallis Place,Hart Street,,ME16 8FD,886088468,B,B,83,83,Flat,NO DATA!,2011-10-31,E07000110,E14000804,Kent,2011-10-31,new dwelling,86,86,88,88.0,1.2,17,1.2,39.0,39.0,201.0,201.0,89.0,89.0,70.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,6.0,,From main system,Good,Good,(other premises below),,,Fully double glazed,Good,Good,Average thermal transmittance 0.32 W/m?K,Good,Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,,,NO DATA!,"122 Wallis Place, Hart Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2011-10-31 15:19:12,,6.0,6.0,10022900723.0,Address Matched +1046172999922013111916351926218277,1 Mote Villas,The Green,Bearsted,ME14 4EB,7275956178,E,C,39,75,House,Semi-Detached,2013-11-19,E07000110,E14000700,Kent,2013-11-19,rental (private),35,71,360,131.0,8.0,70,2.9,103.0,59.0,1258.0,733.0,257.0,77.0,114.0,Single,Y,NODATA!,,,2104.0,70.0,secondary glazing,Normal,1.0,4.0,4.0,27.0,1.0,"From main system, no cylinder thermostat",Poor,Poor,"Suspended, no insulation (assumed)",,,Partial secondary glazing,Average,Average,"Solid brick, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 27% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"1 Mote Villas, The Green, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2013-11-19 16:35:19,rental (private),11.0,3.0,200003695069.0,Address Matched +1436091137412016042120465791260342,"15, Greenhill",Staplehurst,,TN12 0SU,3230714478,D,B,67,81,House,Detached,2016-04-21,E07000110,E14000804,Kent,2016-04-21,marketed sale,61,76,204,113.0,4.5,36,2.6,133.0,76.0,762.0,682.0,160.0,80.0,127.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,7.0,7.0,25.0,0.0,From main system,Good,Good,"Solid, limited insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, mains gas",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 25% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,2.39,,N,natural,"15, Greenhill, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1996-2002,2016-04-21 20:46:57,owner-occupied,,,200003723156.0,Address Matched +1417355439262016030819155572358906,Flat 11,"1-27, St. Faiths Street",,ME14 1LJ,784382478,D,D,58,58,Flat,NO DATA!,2016-02-25,E07000110,E14000804,Kent,2016-03-08,marketed sale,62,62,243,243.0,3.2,41,3.2,53.0,53.0,617.0,617.0,289.0,289.0,79.0,standard tariff,,top floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Poor,Very Poor,(other premises below),,,Fully double glazed,Good,Good,Average thermal transmittance 0.41 W/m-¦K,Good,Good,,,,Average thermal transmittance 0.27 W/m-¦K,Good,Good,"Boiler and radiators, electric",Very Poor,Very Poor,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"Flat 11, 1-27, St. Faiths Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2016-03-08 19:15:55,unknown,10.0,10.0,10091195065.0,Address Matched +503977779262010062312561277478970,"12, Frigenti Place",,,ME14 5GJ,7724727768,B,B,84,86,House,Mid-Terrace,2010-06-23,E07000110,E14000700,Kent,2010-06-23,new dwelling,84,85,96,90.0,2.2,16,2.1,117.0,75.0,270.0,274.0,126.0,126.0,139.12,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,8.0,,From main system,Very Good,Very Good,Average thermal transmittance 0.19 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.27 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.17 W/m?K,Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 44% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.45,,,NO DATA!,"12, Frigenti Place",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2010-06-23 12:56:12,,18.0,8.0,10014307285.0,Address Matched +5ae7675008ccd290f1ea9e1cd9ca3c2be2ff2b6ceb3dd8a16f28e184493aac6a,67 Bryant Close,Nettlestead,,ME18 5EX,10001641099,C,C,69,75,Flat,Detached,2021-08-17,E07000110,E14000804,Kent,2021-08-17,rental,69,76,248,188.0,2.1,44,1.6,72.0,42.0,355.0,282.0,79.0,80.0,47.0,Single,Y,01,Y,,,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,29.0,0.0,From main system,Good,Good,(another dwelling below),,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 29% of fixed outlets,Average,Average,mains gas (not community),0.0,unheated corridor,6.6,2.38,0.0,N,natural,"67 Bryant Close, Nettlestead",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2021-08-17 10:59:22,Rented (social),7.0,,200003657423.0,Energy Assessor +302864302212009061315022102910264,Flat 1 St. Luke's Court,"50-54, Boxley Road",,ME14 2GA,2483223668,D,C,67,78,House,End-Terrace,2009-06-13,E07000110,E14000804,Kent,2009-06-13,rental (private),67,69,324,308.0,2.2,48,2.1,51.0,25.0,178.0,160.0,174.0,100.0,44.59,dual,,Ground,N,3.0,2401.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,0.0,0.0,"Electric immersion, off-peak",Very Poor,Poor,"Suspended, insulated (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,(another dwelling above),,,Electric storage heaters,Poor,Very Poor,Manual charge control,Poor,Poor,No low energy lighting,Very Poor,Very Poor,electricity - this is for backwards compatibility only and should not be used,0.0,unheated corridor,4.0,2.3,0.0,N,natural,"Flat 1 St. Luke's Court, 50-54, Boxley Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2009-06-13 15:02:21,rental (private),,,200003655096.0,Address Matched +1451479259062016060820380795388116,"34, Giddy Horn Lane",,,ME16 0JX,1916525478,D,B,65,85,House,Semi-Detached,2016-06-08,E07000110,E14000804,Kent,2016-06-08,marketed sale,58,83,225,81.0,4.7,40,1.7,113.0,69.0,829.0,524.0,132.0,77.0,118.0,Unknown,Y,NODATA!,,,2106.0,78.0,"double glazing, unknown install date",Normal,1.0,6.0,6.0,38.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Partial double glazing,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 38% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,2.46,,N,natural,"34, Giddy Horn Lane",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2016-06-08 20:38:07,owner-occupied,,,200003657090.0,Address Matched +418166273052019112122505492219573,"14, Brunell Close",,,ME16 0YW,5306321768,C,C,79,79,Flat,Mid-Terrace,2019-11-21,E07000110,E14000804,Kent,2019-11-21,marketed sale,82,82,133,129.0,1.2,23,1.2,63.0,49.0,210.0,212.0,82.0,82.0,53.0,Single,Y,Ground,N,,2106.0,100.0,triple glazing,Normal,0.0,3.0,3.0,70.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",NO DATA!,,Fully triple glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 70% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,8.11,,,N,natural,"14, Brunell Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2019-11-21 22:50:54,owner-occupied,,,10022895908.0,Address Matched +1690604160652019011719162793910160,"15, Titchfield Close",,,ME15 8TA,1012032678,C,B,71,89,Bungalow,Semi-Detached,2019-01-17,E07000110,E14000700,Kent,2019-01-17,rental (social),71,89,231,63.0,2.0,41,0.6,38.0,38.0,366.0,323.0,68.0,43.0,48.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"System built, with external insulation",Good,Good,,,,"Pitched, 270 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"15, Titchfield Close",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2019-01-17 19:16:27,rental (social),,,200003727380.0,Address Matched +556098225652010102111180199209788,Flat 1 Lambard House,Wheeler Street,,ME14 2UE,7817590868,C,C,70,75,Maisonette,Detached,2010-10-20,E07000110,E14000804,Kent,2010-10-21,rental (private),65,71,258,218.0,2.9,43,2.4,53.0,37.0,456.0,408.0,105.0,89.0,67.27,Single,Y,Ground,N,4.0,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,3.0,3.0,56.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Flat, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 56% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.27,0.0,N,natural,"Flat 1 Lambard House, Wheeler Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2010-10-21 11:18:01,rental (private),,,200003704311.0,Address Matched +850259430232012102911204022278492,Flat 4,Mote House,Mote Park,ME15 8NQ,3222472078,C,C,73,76,Flat,End-Terrace,2012-10-29,E07000110,E14000700,Kent,2012-10-29,marketed sale,72,76,158,133.0,2.6,30,2.2,51.0,52.0,399.0,330.0,111.0,111.0,85.0,Unknown,Y,Ground,N,,2306.0,0.0,single glazing,Normal,0.0,2.0,2.0,100.0,0.0,Community scheme,Good,Good,"Solid, insulated (assumed)",,,Single glazed,Very Poor,Very Poor,"Granite or whinstone, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,Community scheme,Good,Good,"Charging system linked to the use of community heating, programmer and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (community),0.0,heated corridor,,,0.0,,natural,"Flat 4, Mote House, Mote Park",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2007 onwards,2012-10-29 11:20:40,unknown,5.0,5.0,10014314623.0,Address Matched +1137814730152020030109103221200124,1 Wells Cottages,Maidstone Road,Nettlestead,ME18 5HH,1487013278,D,B,61,85,House,End-Terrace,2020-02-29,E07000110,E14000804,Kent,2020-03-01,rental,61,86,286,89.0,3.2,46,0.9,56.0,56.0,640.0,413.0,94.0,65.0,68.0,Unknown,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"1 Wells Cottages, Maidstone Road, Nettlestead",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2020-03-01 09:10:32,owner-occupied,,,200003656598.0,Address Matched +432618759922013091207243232928577,"3, Thatch Barn Road",Headcorn,,TN27 9UA,7327522768,D,C,64,77,Maisonette,Semi-Detached,2013-09-12,E07000110,E14000700,Kent,2013-09-12,assessment for green deal,63,79,230,131.0,2.9,44,1.6,41.0,41.0,490.0,285.0,138.0,111.0,65.0,Single,Y,Ground,N,,2107.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,no corridor,,,0.0,,natural,"3, Thatch Barn Road, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,England and Wales: 1950-1966,2013-09-12 07:24:32,owner-occupied,6.0,6.0,200003726914.0,Address Matched +1603125309302018012518361658682258,19 Bishops Terrace,Bishops Way,,ME14 1LA,3333006578,D,D,66,66,Flat,Mid-Terrace,2018-01-25,E07000110,E14000804,Kent,2018-01-25,new dwelling,70,70,198,198.0,2.1,33,2.1,47.0,47.0,348.0,348.0,260.0,260.0,63.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Very Poor,Poor,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.29 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, electric",Very Poor,Poor,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"19 Bishops Terrace, Bishops Way",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2018-01-25 18:36:16,unknown,10.0,10.0,, +1377332340532015102914562366278998,5 Woodville Court,Mote Park,,ME15 8XU,4836999378,B,B,83,83,Flat,Semi-Detached,2015-10-29,E07000110,E14000700,Kent,2015-10-29,new dwelling,85,85,95,95.0,1.4,17,1.4,58.0,58.0,234.0,234.0,101.0,101.0,82.0,standard tariff,,ground floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.23 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and boiler energy manager",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"5 Woodville Court, Mote Park",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2015-10-29 14:56:23,unknown,8.0,8.0,10091195098.0,Address Matched +294488327812009061810544305910968,14 Hughenden Reach,Tovil,,ME15 6ZL,9875752668,B,B,86,87,Flat,NO DATA!,2009-06-18,E07000110,E14000804,Kent,2009-06-18,new dwelling,86,87,99,93.0,1.3,16,1.2,57.0,38.0,136.0,138.0,72.0,72.0,77.7,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,4.0,,From main system,Very Good,Very Good,(other premises below),,,Fully double glazed,Good,Good,Average thermal transmittance 0.31 W/m?K,Good,Good,,,,Average thermal transmittance 0.00 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 50% fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.26,,,NO DATA!,"14 Hughenden Reach, Tovil",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2009-06-18 10:54:43,,8.0,4.0,10014308477.0,Address Matched +296829850252016101921441698969166,47 Farleigh Court,Farleigh Lane,,ME16 9BJ,1618082668,C,C,72,78,Flat,Semi-Detached,2016-10-19,E07000110,E14000804,Kent,2016-10-19,rental (social),73,79,188,143.0,2.1,33,1.6,74.0,45.0,364.0,285.0,96.0,96.0,62.0,Single,Y,Ground,N,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,33.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 33% of fixed outlets,Average,Average,mains gas (not community),0.0,no corridor,,2.31,,N,natural,"47 Farleigh Court, Farleigh Lane",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2016-10-19 21:44:16,rental (social),,,200003684247.0,Address Matched +1600669119022018011515202575598986,"22, Tolhurst Way",Lenham,,ME17 2BY,8754185578,B,A,83,95,House,End-Terrace,2016-08-01,E07000110,E14000700,Kent,2018-01-15,new dwelling,86,97,90,11.0,1.4,16,0.2,63.0,63.0,220.0,220.0,100.0,64.0,89.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.12 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.18 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"22, Tolhurst Way, Lenham",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2018-01-15 15:20:25,unknown,9.0,9.0,10093303692.0,Address Matched +247869342512009032414042806210559,65 Pine Lodge,Tonbridge Road,,ME16 8TB,5919269568,D,C,68,73,Flat,Mid-Terrace,2009-03-24,E07000110,E14000804,Kent,2009-03-24,rental (private),64,69,280,239.0,2.9,47,2.5,55.0,30.0,413.0,368.0,78.0,78.0,61.51,Single,Y,2nd,N,3.0,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,17.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 17% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,unheated corridor,5.11,2.4,0.0,N,natural,"65 Pine Lodge, Tonbridge Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2009-03-24 14:04:28,rental (private),,,200003657943.0,Address Matched +489343829702010052520345975602858,"40, Allen Street",,,ME14 5AG,5720526768,E,D,51,60,House,Mid-Terrace,2010-05-25,E07000110,E14000804,Kent,2010-05-25,rental (private),45,53,404,339.0,5.1,68,4.3,78.0,39.0,785.0,688.0,107.0,93.0,86.93,Single,Y,NO DATA!,,,2107.0,100.0,double glazing installed before 2002,Normal,1.0,4.0,4.0,0.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.47,0.0,N,natural,"40, Allen Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2010-05-25 20:34:59,rental (private),,,200003704799.0,Address Matched +652135980112011070814480093090389,The Coach House Wardes Moat,Vicarage Road,Yalding,ME18 6DY,3916038868,D,D,55,58,House,Detached,2011-07-08,E07000110,E14000804,Kent,2011-07-08,marketed sale,49,51,261,245.0,8.1,50,7.7,116.0,65.0,1276.0,1235.0,112.0,112.0,180.0,Single,Y,NODATA!,,,2104.0,0.0,not defined,Normal,0.0,6.0,6.0,20.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 20% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,2.65,0.0,,natural,"The Coach House Wardes Moat, Vicarage Road, Yalding",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2011-07-08 14:48:00,owner-occupied,25.0,5.0,200003661415.0,Address Matched +337285868132009080123054509068803,"28, Camden Street",,,ME14 1UU,6349855668,D,C,65,76,House,Mid-Terrace,2009-08-01,E07000110,E14000804,Kent,2009-08-01,rental (social),59,72,354,244.0,2.8,59,1.9,47.0,23.0,386.0,304.0,131.0,95.0,47.16,Single,Y,NO DATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,0.0,0.0,From main system,Average,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Average,Good,"Programmer, room thermostat and TRVs",Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.33,0.0,N,natural,"28, Camden Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2009-08-01 23:05:45,rental (social),,,200003699124.0,Address Matched +1023568019922013101510370445458667,"16, Gresham Road",Coxheath,,ME17 4EY,6430105178,C,B,69,86,House,Semi-Detached,2013-10-15,E07000110,E14000804,Kent,2013-10-15,marketed sale,68,87,173,60.0,3.0,33,1.1,77.0,52.0,483.0,400.0,133.0,74.0,90.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,5.0,5.0,50.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"16, Gresham Road, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2013-10-15 10:37:04,owner-occupied,10.0,5.0,200003713353.0,Address Matched +5b28632e7395380552d10a3f2819749c11aaacec9babadc1e6f23a420366730a,FLAT 1,LAVENDER HOUSE,NORTHUMBERLAND ROAD,ME15 7RW,10001612277,E,C,52,72,Flat,Detached,2021-06-29,E07000110,E14000700,Kent,2021-07-01,ECO assessment,50,74,370,188.0,3.9,65,2.0,114.0,57.0,792.0,408.0,76.0,76.0,61.0,Single,Y,00,N,,,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,0.0,0.0,"From main system, no cylinder thermostat",Average,Average,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Average,Average,"Room heaters, electric",,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,unheated corridor,6.0,2.75,0.0,N,natural,"FLAT 1, LAVENDER HOUSE, NORTHUMBERLAND ROAD",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2021-07-01 13:51:46,Rented (social),8.0,,200003714056.0,Energy Assessor +404556599262015042016011110508125,"14, High Street",Headcorn,,TN27 9NE,2106920768,E,B,48,84,House,Mid-Terrace,2015-04-20,E07000110,E14000700,Kent,2015-04-20,marketed sale,41,82,373,89.0,5.4,67,1.3,51.0,51.0,1015.0,462.0,109.0,72.0,80.0,Single,Y,NODATA!,,,2106.0,10.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Some double glazing,Very Poor,Very Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, dual fuel (mineral and wood)",,,"Roof room(s), no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"14, High Street, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,England and Wales: before 1900,2015-04-20 16:01:11,owner-occupied,,,200003698579.0,Address Matched +1813474222742020072716091977102438,Flat 39 Ulysses House,Rosalind Drive,,ME14 2FL,8791021778,B,B,83,83,Flat,Mid-Terrace,2020-07-27,E07000110,E14000804,Kent,2020-07-27,new dwelling,88,88,91,91.0,0.9,16,0.9,50.0,50.0,156.0,156.0,87.0,87.0,57.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.44 W/m-¦K,Good,Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Flat 39 Ulysses House, Rosalind Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2020-07-27 16:09:19,unknown,14.0,14.0,10094441427.0,Address Matched +1440659859922016051105243214998996,Flat 1 Globe House,"13a, Pudding Lane",,ME14 1PA,9133544478,C,C,75,75,Flat,NO DATA!,2016-05-11,E07000110,E14000804,Kent,2016-05-11,new dwelling,68,68,395,395.0,1.4,67,1.4,19.0,19.0,172.0,172.0,107.0,107.0,21.0,24 hour,,top floor,,,,,NO DATA!,NO DATA!,,,,,0.0,"Electric immersion, off-peak",Average,Poor,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.26 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.17 W/m-¦K,Good,Good,"Room heaters, electric",Average,Poor,Programmer and appliance thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"Flat 1 Globe House, 13a, Pudding Lane",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2016-05-11 05:24:32,unknown,1.0,1.0,10091195944.0,Address Matched +1777633302922020011616010298268330,"2, Redwood Glade",Bredhurst,,ME7 3JX,3949068678,C,B,74,84,House,Detached,2020-01-16,E07000110,E14000700,Kent,2020-01-16,rental,70,81,155,91.0,4.0,27,2.4,145.0,109.0,612.0,609.0,171.0,78.0,148.0,dual,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,10.0,10.0,67.0,0.0,"From main system, no cylinder thermostat",Average,Average,"Solid, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 67% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"2, Redwood Glade, Bredhurst",Maidstone,Faversham and Mid Kent,GILLINGHAM,England and Wales: 2003-2006,2020-01-16 16:01:02,owner-occupied,,,10014309541.0,Address Matched +1306447025212015040208531899750536,"45, Northleigh Close",Loose,,ME15 9RP,5679594378,C,B,72,87,House,End-Terrace,2015-03-31,E07000110,E14000804,Kent,2015-04-02,marketed sale,71,86,194,77.0,2.5,34,1.0,72.0,48.0,428.0,399.0,124.0,79.0,73.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,50.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"45, Northleigh Close, Loose",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2015-04-02 08:53:18,owner-occupied,,,200003675099.0,Address Matched +550934209962017101021030290808263,"78, Holland Road",,,ME14 1UT,6948060868,E,C,41,72,House,Semi-Detached,2017-10-10,E07000110,E14000804,Kent,2017-10-10,marketed sale,34,64,378,165.0,9.6,69,4.3,99.0,78.0,1685.0,1009.0,221.0,78.0,139.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,7.0,7.0,73.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 73% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"78, Holland Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2017-10-10 21:03:02,owner-occupied,,,200003699066.0,Address Matched +831524472012018122112344194280401,"17, Clare Place",,,ME15 9ZF,4100241078,C,B,77,86,House,Mid-Terrace,2018-09-28,E07000110,E14000700,Kent,2018-12-21,rental (social),77,86,134,70.0,2.1,23,1.2,66.0,66.0,404.0,404.0,86.0,86.0,91.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,100.0,0.0,"From main system, plus solar",Very Good,Very Good,"Solid, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Very Good,Very Good,"Room heaters, electric",,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,Y,natural,"17, Clare Place",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2007 onwards,2018-12-21 12:34:41,rental (social),,,10014311521.0,Address Matched +1067381609402017052414202211830858,"23, Cherry Orchard Way",,,ME16 8TJ,8479708178,D,C,58,73,House,Mid-Terrace,2017-04-05,E07000110,E14000804,Kent,2017-05-24,marketed sale,50,65,275,175.0,5.7,48,3.7,101.0,71.0,1047.0,903.0,95.0,61.0,118.0,Unknown,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,6.0,6.0,57.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 57% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"23, Cherry Orchard Way",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2017-05-24 14:20:22,owner-occupied,,,200003696589.0,Address Matched +1094437609842014022118162825042198,"16, The Penstocks",,,ME15 6FQ,4844300278,C,B,71,87,House,End-Terrace,2014-02-21,E07000110,E14000804,Kent,2014-02-21,rental (private),71,87,165,58.0,2.5,32,0.9,82.0,48.0,437.0,399.0,112.0,66.0,79.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,4.0,4.0,31.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 31% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"16, The Penstocks",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2014-02-21 18:16:28,rental (private),13.0,4.0,200003716421.0,Address Matched +1110990337432014032012585407278606,"4, Charlton Street",,,ME16 8LA,3607611278,D,B,63,88,House,Mid-Terrace,2014-03-20,E07000110,E14000804,Kent,2014-03-20,marketed sale,60,89,216,50.0,3.8,42,0.9,98.0,54.0,640.0,372.0,146.0,86.0,91.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,18.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 18% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"4, Charlton Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2014-03-20 12:58:54,owner-occupied,11.0,2.0,200003655415.0,Address Matched +742004229222012012319085115278002,Flat 4 Gower House,Canning Street,,ME14 2RY,117205968,C,C,77,78,Maisonette,Mid-Terrace,2012-01-23,E07000110,E14000804,Kent,2012-01-23,marketed sale,66,66,294,288.0,2.3,52,2.2,54.0,31.0,203.0,208.0,101.0,101.0,43.7,dual,N,Ground,N,,2401.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,29.0,0.0,"Electric immersion, off-peak",Average,Very Poor,"Solid, limited insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,(another dwelling above),,,Electric storage heaters,Poor,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 29% of fixed outlets,Average,Average,electricity (not community),0.0,no corridor,,2.32,0.0,,natural,"Flat 4 Gower House, Canning Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2012-01-23 19:08:51,owner-occupied,7.0,2.0,200003706172.0,Address Matched +1753721589242019092515470863612158,"53, Marston Drive",,,ME14 5NE,6271686678,D,B,68,85,House,Semi-Detached,2019-09-25,E07000110,E14000804,Kent,2019-09-25,marketed sale,64,82,213,90.0,3.4,37,1.5,85.0,66.0,540.0,435.0,126.0,80.0,89.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed during or after 2002,More Than Typical,1.0,5.0,5.0,71.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Average,Average,"Room heaters, mains gas",,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 71% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"53, Marston Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2019-09-25 15:47:08,owner-occupied,,,200003716679.0,Address Matched +386693830262009102615424629728571,"22a, Queensway",Detling,,ME14 3LA,7200309668,C,C,71,73,Bungalow,Semi-Detached,2009-10-22,E07000110,E14000700,Kent,2009-10-26,rental (social),67,69,228,213.0,3.2,38,3.0,70.0,41.0,470.0,455.0,93.0,93.0,82.95,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,More Than Typical,0.0,2.0,2.0,30.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 30% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,,0.0,N,natural,"22a, Queensway, Detling",Maidstone,Faversham and Mid Kent,MAIDSTONE,,2009-10-26 15:42:46,rental (social),,,200003731810.0,Address Matched +248641912402020071512014056909758,"26, Murrain Drive",Downswood,,ME15 8XJ,436819568,C,B,71,88,House,Semi-Detached,2020-07-15,E07000110,E14000700,Kent,2020-07-15,marketed sale,71,88,216,69.0,2.1,38,0.7,47.0,47.0,350.0,325.0,113.0,71.0,55.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"26, Murrain Drive, Downswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2020-07-15 12:01:40,owner-occupied,,,200003691575.0,Address Matched +47766887032020031011112475068500,Flat 15,Broadway Heights,23 The Broadway,ME16 8GJ,8005565568,C,C,79,80,Flat,Semi-Detached,2020-03-09,E07000110,E14000804,Kent,2020-03-10,rental (social),84,85,129,121.0,1.1,23,1.0,73.0,44.0,182.0,185.0,77.0,77.0,47.0,Single,Y,1st,N,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,33.0,0.0,From main system,Good,Good,"To unheated space, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Solid brick, with external insulation",Very Good,Very Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 33% of fixed outlets,Average,Average,mains gas (not community),0.0,heated corridor,,,,N,natural,"Flat 15, Broadway Heights, 23 The Broadway",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2020-03-10 11:11:24,rental (social),,,10022896839.0,Address Matched +818255738112012072616391294220103,"29, Loose Road",,,ME15 7BY,1358840078,D,B,57,83,House,End-Terrace,2012-07-25,E07000110,E14000804,Kent,2012-07-26,rental (social),53,82,260,86.0,4.5,50,1.5,65.0,49.0,736.0,453.0,113.0,75.0,89.0,Unknown,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,67.0,0.0,From main system,Good,Good,"Suspended, limited insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 75 mm loft insulation",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 67% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"29, Loose Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2012-07-26 16:39:12,rental (social),12.0,8.0,200003683788.0,Address Matched +167928270302008101805380154289038,2 Elsfield Cottages,Ashford Road,Hollingbourne,ME17 1PA,4348972568,E,D,54,61,Flat,End-Terrace,2008-10-17,E07000110,E14000700,Kent,2008-10-18,rental (private),47,54,460,387.0,3.9,77,3.3,42.0,23.0,507.0,448.0,72.0,61.0,50.35,Unknown,Y,Ground,N,2.0,2104.0,50.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,16.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Partial double glazing,Poor,Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Poor,Poor,Low energy lighting in 16% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.48,0.0,N,natural,"2 Elsfield Cottages, Ashford Road, Hollingbourne",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2008-10-18 05:38:01,rental (private),,,200003698511.0,Address Matched +819028822112012072716114895220707,Oak Farm Oast,Lenham Road,Headcorn,TN27 9TU,7762250078,D,D,57,66,House,Detached,2012-07-26,E07000110,E14000700,Kent,2012-07-27,none of the above,43,57,198,171.0,13.0,47,9.2,94.0,94.0,2498.0,1977.0,116.0,95.0,271.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,6.0,6.0,100.0,1.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, with internal insulation",Good,Good,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, oil",Average,Average,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,oil (not community),0.0,NO DATA!,,,,,natural,"Oak Farm Oast, Lenham Road, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,England and Wales: before 1900,2012-07-27 16:11:48,unknown,8.0,8.0,200003699841.0,Address Matched +1682615159832018112917293716278096,"6, Meadow View",Laddingford,,ME18 6BN,5606071678,D,C,62,80,House,Semi-Detached,2018-11-29,E07000110,E14000804,Kent,2018-11-29,marketed sale,56,76,267,136.0,4.1,47,2.2,120.0,68.0,669.0,563.0,125.0,80.0,88.0,dual,Y,NODATA!,,,2106.0,45.0,double glazing installed during or after 2002,Normal,2.0,5.0,5.0,23.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Partial double glazing,Poor,Poor,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 23% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"6, Meadow View, Laddingford",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2018-11-29 17:29:37,owner-occupied,,,200003724319.0,Address Matched +226453239132009013122405739768703,"11, South Street",Barming,,ME16 9EX,3359727568,C,C,77,78,Maisonette,Semi-Detached,2009-01-31,E07000110,E14000804,Kent,2009-01-31,rental (social),74,75,220,217.0,1.8,37,1.8,31.0,23.0,280.0,281.0,70.0,70.0,49.26,Single,Y,Ground,N,2.0,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,66.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 66% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.34,0.0,N,natural,"11, South Street, Barming",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2009-01-31 22:40:57,rental (social),,,200003665537.0,Address Matched +493164419022010060710181226138770,"10, Knott Court",,,ME14 2XH,7227156768,C,B,77,81,House,Mid-Terrace,2010-06-07,E07000110,E14000804,Kent,2010-06-07,rental (social),74,79,187,156.0,2.3,31,1.9,37.0,37.0,327.0,285.0,125.0,105.0,72.03,Single,Y,NO DATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.34,0.0,N,natural,"10, Knott Court",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1991-1995,2010-06-07 10:18:12,rental (social),,,200003704731.0,Address Matched +585996439932011012817435907268209,"377, Sutton Road",,,ME15 9BU,3907233868,D,C,66,73,House,Semi-Detached,2011-01-28,E07000110,E14000700,Kent,2011-01-28,marketed sale,63,70,229,184.0,4.6,38,3.7,95.0,66.0,686.0,581.0,178.0,143.0,120.14,Single,Y,NO DATA!,,,2107.0,100.0,double glazing installed before 2002,Normal,1.0,6.0,6.0,57.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, dual fuel (mineral and wood)",,,"Flat, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 57% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.38,0.0,N,natural,"377, Sutton Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2011-01-28 17:43:59,owner-occupied,,,200003681380.0,Address Matched +5b86dd6c26e93b6850f9fbc0efa97581d73a9d91d4bf20ea14c55ca0fcb342a2,10 OWLETTS CLOSE,,,ME15 7SZ,10001333065,E,B,54,83,House,Mid-Terrace,2021-06-29,E07000110,E14000700,Kent,2021-07-01,ECO assessment,51,82,339,106.0,4.1,60,1.3,117.0,58.0,667.0,471.0,204.0,79.0,69.0,Single,Y,,,,,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,0.0,0.0,"From main system, no cylinder thermostat",Average,Average,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,"Pitched, insulated (assumed)",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,,,2.75,0.0,N,natural,10 OWLETTS CLOSE,Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2021-07-01 10:38:37,Rented (social),8.0,,200003725383.0,Energy Assessor +761057707232012031416572472968207,Flat 2 Terrys Court,"100b, Union Street",,ME14 1EH,702246968,B,B,83,83,Flat,NO DATA!,2012-03-14,E07000110,E14000804,Kent,2012-03-14,new dwelling,88,88,90,90.0,0.9,17,0.9,37.0,37.0,185.0,185.0,75.0,75.0,49.46,standard tariff,,ground floor,,,,,NO DATA!,NO DATA!,,,,8.0,,From main system,Good,Good,Average thermal transmittance 0.16 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.23 W/m?K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.38,,,NO DATA!,"Flat 2 Terrys Court, 100b, Union Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2012-03-14 16:57:24,,10.0,8.0,10014313864.0,Address Matched +1433978194632016041416285674978901,"56, Hockers Lane",Detling,,ME14 3JW,9184993478,F,B,35,83,Bungalow,Detached,2016-04-14,E07000110,E14000700,Kent,2016-04-14,marketed sale,29,80,509,104.0,8.1,90,1.7,102.0,58.0,1318.0,525.0,329.0,77.0,90.0,Single,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,25.0,0.0,"From main system, no cylinder thermostat",Very Poor,Very Poor,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Average,Average,Programmer and room thermostat,Average,Average,Low energy lighting in 25% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,2.37,,N,natural,"56, Hockers Lane, Detling",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2016-04-14 16:28:56,owner-occupied,,,200003693965.0,Address Matched +1361976619022015090914051738318505,"9, Heasman Close",Marden,,TN12 9FH,333198378,B,B,85,87,House,NO DATA!,2015-09-09,E07000110,E14000804,Kent,2015-09-09,new dwelling,86,89,77,61.0,1.2,14,1.0,57.0,57.0,295.0,296.0,103.0,55.0,89.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.19 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.28 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.14 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"9, Heasman Close, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,NO DATA!,2015-09-09 14:05:17,unknown,1.0,1.0,10014315733.0,Address Matched +767556059262012032907140286118512,"47, Knights Way",Headcorn,,TN27 9TY,1803586968,C,C,73,74,Flat,Semi-Detached,2012-03-29,E07000110,E14000700,Kent,2012-03-29,rental (social),75,76,165,158.0,2.0,32,1.9,63.0,38.0,338.0,341.0,79.0,79.0,63.41,Single,Y,Ground,N,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,33.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 33% of fixed outlets,Average,Average,mains gas (not community),0.0,no corridor,,2.3,0.0,,natural,"47, Knights Way, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,England and Wales: 1950-1966,2012-03-29 07:14:02,rental (social),6.0,2.0,200003699639.0,Address Matched +199359559102010091314550458509178,"1a, Marion Crescent",,,ME15 7DZ,2121555568,C,B,79,81,House,Semi-Detached,2010-09-13,E07000110,E14000700,Kent,2010-09-13,marketed sale,77,78,151,145.0,2.3,25,2.2,82.0,50.0,346.0,351.0,104.0,104.0,93.07,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,5.0,5.0,35.0,0.0,From main system,Very Good,Very Good,"Solid, insulated",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 35% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.36,0.0,N,natural,"1a, Marion Crescent",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2010-09-13 14:55:04,owner-occupied,,,10014314370.0,Address Matched +1618140369062019030314431367378741,"422b, Loose Road",,,ME15 9TX,4691607578,E,E,53,53,Flat,Semi-Detached,2019-03-03,E07000110,E14000804,Kent,2019-03-03,new dwelling,58,58,341,341.0,2.8,58,2.8,41.0,41.0,596.0,596.0,266.0,266.0,48.0,standard tariff,,top floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,"Electric immersion, standard tariff",Very Poor,Poor,Average thermal transmittance 0.17 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.50 W/m-¦K,Good,Good,,,,Average thermal transmittance 0.14 W/m-¦K,Very Good,Very Good,"Room heaters, electric",Very Poor,Poor,Programmer and appliance thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"422b, Loose Road",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2019-03-03 14:43:13,unknown,15.0,15.0,10093306613.0,Address Matched +1459925959022016070616544525368206,"26, Buffkyn Way",,,ME15 8FY,210585478,A,A,95,95,Maisonette,NO DATA!,2016-07-06,E07000110,E14000700,Kent,2016-07-06,new dwelling,97,97,3,3.0,0.1,1,0.1,39.0,39.0,237.0,237.0,69.0,69.0,54.0,standard tariff,,ground floor,,,,,NO DATA!,NO DATA!,,,,,0.0,"From main system, flue gas heat recovery",Very Good,Very Good,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.18 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"26, Buffkyn Way",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2016-07-06 16:54:45,unknown,1.0,1.0,10091193661.0,Address Matched +408705769352013050721583195070975,"3, Avondale Court",Weavering,,ME14 5PW,9510950768,D,B,67,81,House,Detached,2013-05-03,E07000110,E14000700,Kent,2013-05-07,marketed sale,64,79,171,91.0,4.9,33,2.7,130.0,71.0,731.0,649.0,161.0,74.0,148.0,Unknown,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,6.0,6.0,17.0,0.0,"From main system, no cylinder thermostat",Average,Average,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 17% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"3, Avondale Court, Weavering",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1991-1995,2013-05-07 21:58:31,owner-occupied,12.0,2.0,10022892786.0,Address Matched +1244325339912014120815290295049538,"7, Park Wood Walk",,,ME15 9ZT,5807950378,B,A,83,94,House,Semi-Detached,2014-12-08,E07000110,E14000700,Kent,2014-12-08,new dwelling,85,96,91,13.0,1.4,16,0.2,59.0,59.0,264.0,264.0,86.0,54.0,89.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.14 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.18 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"7, Park Wood Walk",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2014-12-08 15:29:02,unknown,10.0,10.0,10014315803.0,Address Matched +427290089402010012710143870102838,"32, Hildenborough Crescent",,,ME16 0NY,3486781768,C,C,72,74,House,Semi-Detached,2010-01-27,E07000110,E14000804,Kent,2010-01-27,marketed sale,69,69,199,194.0,3.5,33,3.5,86.0,55.0,502.0,508.0,129.0,129.0,107.069,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,2.0,6.0,6.0,45.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 45% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.43,0.0,N,natural,"32, Hildenborough Crescent",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2010-01-27 10:14:38,owner-occupied,,,200003706965.0,Address Matched +1480010701632016091610092932978600,"2, Filbert Way",,,ME15 8WT,32627478,B,A,82,95,House,NO DATA!,2016-09-16,E07000110,E14000700,Kent,2016-09-16,new dwelling,84,97,101,9.0,1.4,18,0.2,53.0,53.0,238.0,240.0,101.0,54.0,78.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.19 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.28 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.14 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"2, Filbert Way",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2016-09-16 10:09:29,unknown,10.0,10.0,10091194504.0,Address Matched +1316057969542015043015122138557408,"32, Church Road",Tovil,,ME15 6QX,6532465378,D,B,62,88,House,Mid-Terrace,2015-04-30,E07000110,E14000804,Kent,2015-04-30,marketed sale,57,88,278,64.0,3.8,49,0.9,67.0,50.0,645.0,380.0,167.0,72.0,78.0,Single,Y,NODATA!,,,2107.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,67.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 67% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"32, Church Road, Tovil",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2015-04-30 15:12:21,owner-occupied,,,200003664521.0,Address Matched +711987139222015072313260002878575,Ajax,Boxley Road,Walderslade,ME5 9JG,7067342968,C,B,76,83,House,Detached,2015-07-23,E07000110,E14000700,Kent,2015-07-23,marketed sale,69,77,136,97.0,9.3,24,6.7,266.0,133.0,1540.0,1372.0,215.0,158.0,387.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,6.0,6.0,0.0,0.0,"From main system, no cylinder thermostat",Average,Average,"Solid, insulated (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Roof room(s), insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"Ajax, Boxley Road, Walderslade",Maidstone,Faversham and Mid Kent,CHATHAM,England and Wales: 2003-2006,2015-07-23 13:26:00,owner-occupied,,,10014310033.0,Address Matched +973537849002019111508470412119048,"41, Hengist Court",Marsham Street,,ME14 1BU,8058441178,C,C,71,78,Flat,Enclosed End-Terrace,2019-11-14,E07000110,E14000804,Kent,2019-11-15,marketed sale,55,65,337,262.0,3.1,57,2.4,60.0,60.0,388.0,260.0,185.0,163.0,54.0,Unknown,N,2nd,Y,,2401.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,86.0,0.0,"Electric immersion, off-peak",Average,Poor,(another dwelling below),NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,Portable electric heaters (assumed),,,"Pitched, 270 mm loft insulation",Good,Good,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 86% of fixed outlets,Very Good,Very Good,electricity (not community),0.0,heated corridor,,,,N,natural,"41, Hengist Court, Marsham Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2019-11-15 08:47:04,owner-occupied,,,200003688720.0,Address Matched +18234989342012021513254245829658,234 Wallis Place,Hart Street,,ME16 8FF,3335088468,C,C,75,78,Flat,Enclosed Mid-Terrace,2012-02-15,E07000110,E14000804,Kent,2012-02-15,marketed sale,78,82,153,128.0,1.7,29,1.4,49.0,37.0,281.0,258.0,88.0,73.0,57.01,Unknown,Y,Ground,N,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,2.0,2.0,67.0,0.0,From main system,Good,Good,"Solid, limited insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 67% of fixed outlets,Good,Good,mains gas (not community),0.0,no corridor,,2.4,0.0,,natural,"234 Wallis Place, Hart Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2012-02-15 13:25:42,owner-occupied,6.0,4.0,10022900842.0,Address Matched +1088791539922015061520515559328865,"14, Northdown Close",Penenden Heath,,ME14 2ER,6504369178,D,B,57,81,House,Semi-Detached,2015-06-12,E07000110,E14000804,Kent,2015-06-15,ECO assessment,49,76,281,115.0,6.1,50,2.5,139.0,69.0,952.0,661.0,253.0,92.0,123.0,Single,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 25 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"14, Northdown Close, Penenden Heath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2015-06-15 20:51:55,owner-occupied,,,200003706616.0,Address Matched +597421549962019041120395614798851,"3, Havant Walk",,,ME15 8UH,5103424868,C,B,71,86,House,Mid-Terrace,2019-04-11,E07000110,E14000700,Kent,2019-04-11,rental (social),69,85,192,82.0,3.0,34,1.3,122.0,64.0,441.0,408.0,132.0,79.0,88.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,9.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 9% of fixed outlets,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"3, Havant Walk",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1976-1982,2019-04-11 20:39:56,rental (social),,,200003723402.0,Address Matched +1692935456312020013117471524200166,Scaghyll,The Street,Ulcombe,ME17 1DP,1617642678,F,C,36,74,Bungalow,Detached,2020-01-20,E07000110,E14000700,Kent,2020-01-31,marketed sale,39,70,383,158.0,8.4,65,3.4,84.0,84.0,2132.0,1650.0,253.0,116.0,129.0,dual,N,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,5.0,5.0,100.0,0.0,Electric instantaneous at point of use,Very Poor,Poor,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, electric",Very Poor,Poor,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,NO DATA!,,,,N,natural,"Scaghyll, The Street, Ulcombe",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2020-01-31 17:47:15,owner-occupied,,,200003701167.0,Address Matched +407107240062009120212540170328491,"73, Roman Way",Boughton Monchelsea,,ME17 4SH,9770440768,B,B,82,84,House,Semi-Detached,2009-12-02,E07000110,E14000700,Kent,2009-12-02,new dwelling,81,82,129,123.0,1.8,21,1.7,68.0,42.0,259.0,263.0,97.0,97.0,85.2,standard tariff,,NO DATA!,,,2106.0,,NO DATA!,NO DATA!,,,,,0.0,From main system,Very Good,Very Good,Average thermal transmittance 0.19 W/m?K,Very Good,Very Good,Fully double glazed,Good,Good,Average thermal transmittance 0.29 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.16 W/m?K,Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 40% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.33,,,NO DATA!,"73, Roman Way, Boughton Monchelsea",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2009-12-02 12:54:01,,,,10022896599.0,Address Matched +453525539062011100420300033548069,"67, Bower Lane",,,ME16 8EH,6311373768,E,D,52,60,House,Mid-Terrace,2011-10-04,E07000110,E14000804,Kent,2011-10-04,marketed sale,32,37,632,560.0,5.5,112,4.9,61.0,31.0,563.0,466.0,131.0,131.0,49.4,dual,N,NODATA!,,,2401.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,0.0,0.0,"Electric immersion, off-peak",Average,Very Poor,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"System built, as built, no insulation (assumed)",Very Poor,Very Poor,Portable electric heaters (assumed),,,"Pitched, 100 mm loft insulation",Average,Average,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,No low energy lighting,Very Poor,Very Poor,electricity (not community),0.0,NO DATA!,,2.2,0.0,,natural,"67, Bower Lane",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2011-10-04 20:30:00,owner-occupied,8.0,0.0,200003666276.0,Address Matched +1522822232332017022711462330278901,"3, Sandlewood Court",,,ME16 0ZG,3120920578,B,B,82,82,Flat,Enclosed End-Terrace,2017-02-23,E07000110,E14000804,Kent,2017-02-27,marketed sale,86,86,101,101.0,1.1,18,1.1,49.0,49.0,147.0,147.0,135.0,135.0,63.0,Single,Y,1st,N,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,(another dwelling below),NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,heated corridor,,,,N,natural,"3, Sandlewood Court",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2017-02-27 11:46:23,owner-occupied,,,10014306166.0,Address Matched +635666119302011060919195282790418,"10, Whitehall Drive",Kingswood,,ME17 3PQ,9394317868,E,E,42,54,Bungalow,Detached,2011-06-09,E07000110,E14000700,Kent,2011-06-09,marketed sale,40,51,350,274.0,7.7,67,6.0,106.0,53.0,1124.0,1036.0,267.0,112.0,96.94,Single,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,3.0,5.0,5.0,0.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,2.5,0.0,,natural,"10, Whitehall Drive, Kingswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2011-06-09 19:19:52,owner-occupied,29.0,0.0,200003700104.0,Address Matched +1291848354412015031819403599950532,The Cottage,Pilgrims Way,Detling,ME14 3JY,5288493378,E,C,44,77,House,Detached,2015-03-18,E07000110,E14000700,Kent,2015-03-18,marketed sale,35,63,364,166.0,11.0,64,5.3,157.0,85.0,2097.0,1523.0,117.0,118.0,177.0,Unknown,Y,NODATA!,,,2102.0,100.0,secondary glazing,Normal,0.0,8.0,8.0,14.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Full secondary glazing,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Roof room(s), no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,Low energy lighting in 14% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"The Cottage, Pilgrims Way, Detling",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2015-03-18 19:40:35,owner-occupied,,,200003694114.0,Address Matched +1447916789222016052615283374068666,"3, Shoebridge Drive",,,ME17 3FF,6782894478,B,A,83,117,House,Semi-Detached,2016-05-26,E07000110,E14000700,Kent,2016-05-26,new dwelling,85,117,94,-133.0,1.3,16,-1.7,55.0,55.0,242.0,242.0,85.0,50.0,79.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"3, Shoebridge Drive",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2016-05-26 15:28:33,unknown,1.0,1.0,10091194057.0,Address Matched +1146044539262015022509594813858755,"37, High Street",Lenham,,ME17 2QB,5196363278,E,C,51,78,House,Semi-Detached,2015-02-25,E07000110,E14000700,Kent,2015-02-25,none of the above,53,80,327,130.0,4.5,49,1.7,114.0,57.0,1018.0,648.0,108.0,72.0,93.0,Single,Y,NODATA!,,,2106.0,0.0,not defined,Normal,0.0,5.0,5.0,0.0,4.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Single glazed,Very Poor,Very Poor,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, wood logs",,,"Pitched, 270 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"37, High Street, Lenham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1900-1929,2015-02-25 09:59:48,owner-occupied,,,200003711170.0,Address Matched +825688228232012081616552283978106,Lydon House,Ulcombe Road,Headcorn,TN27 9QR,2673101078,C,C,80,80,House,Detached,2012-08-15,E07000110,E14000700,Kent,2012-08-16,new dwelling,81,81,94,94.0,3.8,17,3.8,104.0,104.0,649.0,649.0,175.0,175.0,226.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,30.0,,From main system,Average,Good,Average thermal transmittance 0.20 W/mA?K,Very Good,Very Good,Fully double glazed,Good,Good,Average thermal transmittance 0.28 W/mA?K,Good,Good,"Room heaters, wood logs",,,Average thermal transmittance 0.11 W/mA?K,Very Good,Very Good,"Air source heat pump, underfloor, electric",Good,Very Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",0.0,NO DATA!,,2.55,,,NO DATA!,"Lydon House, Ulcombe Road, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,NO DATA!,2012-08-16 16:55:22,,40.0,30.0,10022900597.0,Address Matched +1153777486432014061613383933978906,"24, Foley Street",,,ME14 5BE,8623914278,E,C,52,77,House,Mid-Terrace,2014-06-16,E07000110,E14000804,Kent,2014-06-16,none of the above,45,71,290,123.0,5.0,62,2.3,97.0,49.0,838.0,606.0,112.0,73.0,80.0,Unknown,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,4.0,4.0,0.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, smokeless fuel",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"24, Foley Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2014-06-16 13:38:39,rental (private),8.0,0.0,200003705341.0,Address Matched +1077159589022018010417222468678798,Top Flat,"48, Bower Lane",,ME16 8EJ,9693878178,F,D,31,66,Flat,Semi-Detached,2018-01-03,E07000110,E14000804,Kent,2018-01-04,rental (private),19,43,697,379.0,9.4,118,5.1,91.0,65.0,1376.0,646.0,301.0,131.0,80.0,dual,N,3rd,Y,,,100.0,"double glazing, unknown install date",Normal,1.0,4.0,4.0,,0.0,"Electric immersion, off-peak",Very Poor,Poor,(another dwelling below),NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,Portable electric heaters (assumed),,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 60% of fixed outlets,Good,Good,electricity (not community),0.0,no corridor,,,,N,natural,"Top Flat, 48, Bower Lane",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2018-01-04 17:22:24,rental (private),,,200003668629.0,Address Matched +5c046e28d3c994dd631601abff861dcbb316d9b1964c7f6d8f6bb08db2ddcff3,Flat 6,Devon Villas,2 Bower Street,ME16 8SD,10001645071,E,C,50,73,Flat,End-Terrace,2021-09-28,E07000110,E14000804,Kent,2021-09-28,marketed sale,45,77,541,223.0,3.1,96,1.3,31.0,31.0,486.0,229.0,140.0,85.0,32.0,Single,Y,01,Y,,,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,100.0,0.0,From main system,Average,Average,(another dwelling below),,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,4.72,2.99,0.0,N,natural,"Flat 6, Devon Villas, 2 Bower Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2021-09-28 10:57:43,Owner-occupied,5.0,,200003668738.0,Energy Assessor +236079840262009030511492548068591,"13, John Street",,,ME14 2SG,9495478568,D,C,64,70,House,End-Terrace,2009-02-26,E07000110,E14000804,Kent,2009-03-05,rental (social),63,69,246,202.0,4.0,40,3.3,95.0,50.0,552.0,500.0,117.0,95.0,97.8,Single,Y,NO DATA!,,,2107.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,10.0,0.0,From main system,Good,Good,"Solid, limited insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,"Pitched, 150mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Poor,Poor,Low energy lighting in 10% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,0.0,N,natural,"13, John Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2009-03-05 11:49:25,rental (social),,,200003702668.0,Address Matched +1213353070052014093018012694740723,1 The Brishings,Orchard Close,Langley,ME17 3LL,7394048278,C,B,73,85,Bungalow,Detached,2014-09-30,E07000110,E14000700,Kent,2014-09-30,marketed sale,75,87,138,61.0,2.5,26,1.1,109.0,61.0,451.0,463.0,116.0,72.0,95.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,20.0,0.0,From main system,Good,Good,"Suspended, insulated (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 20% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"1 The Brishings, Orchard Close, Langley",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2007 onwards,2014-09-30 18:01:26,owner-occupied,20.0,4.0,10014306301.0,Address Matched +827552259222012082218461301428702,Palma,Chatham Road,Sandling,ME14 3AY,86511078,E,C,51,75,House,Semi-Detached,2012-08-22,E07000110,E14000700,Kent,2012-08-22,marketed sale,50,76,269,116.0,4.9,51,2.1,88.0,55.0,899.0,632.0,100.0,63.0,96.0,dual,Y,NODATA!,,,2107.0,90.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,40.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Mostly double glazing,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, no insulation",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 40% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"Palma, Chatham Road, Sandling",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2012-08-22 18:46:13,owner-occupied,15.0,6.0,200003672298.0,Address Matched +164364705832018050921044633068901,"27, Fountain Lane",,,ME16 9AR,183952568,D,B,65,85,House,Mid-Terrace,2018-05-09,E07000110,E14000804,Kent,2018-05-09,marketed sale,61,84,231,81.0,3.4,41,1.2,115.0,57.0,556.0,410.0,100.0,67.0,83.0,Single,Y,NODATA!,,,2106.0,60.0,"double glazing, unknown install date",Normal,1.0,4.0,4.0,0.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Partial double glazing,Poor,Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"27, Fountain Lane",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2018-05-09 21:04:46,owner-occupied,,,200003676101.0,Address Matched +1737966861612019072209075497210463,"4, Primrose Close",Marden,,TN12 9FX,4350175678,B,B,85,85,House,Detached,2019-07-22,E07000110,E14000804,Kent,2019-07-22,new dwelling,86,86,69,69.0,2.3,11,2.3,106.0,106.0,457.0,457.0,106.0,106.0,205.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.28 W/m-¦K,Very Good,Very Good,"Room heaters, wood logs",,,Average thermal transmittance 0.10 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"4, Primrose Close, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,NO DATA!,2019-07-22 09:07:54,unknown,45.0,45.0,10093305215.0,Address Matched +290853100222009052215155262928371,Flat 18 Block B,Bodiam Court,,ME16 8LZ,7637032668,B,B,84,86,House,Enclosed End-Terrace,2009-05-22,E07000110,E14000804,Kent,2009-05-22,marketed sale,83,86,135,115.0,1.3,22,1.1,46.0,31.0,161.0,156.0,108.0,93.0,58.41,Unknown,Y,1st,N,2.0,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,50.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,heated corridor,,2.3,0.0,N,natural,"Flat 18 Block B, Bodiam Court",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2009-05-22 15:15:52,owner-occupied,,,200003721098.0,Address Matched +1773962954212019122015364693219066,16 Wrens Cross,Upper Stone Street,,ME15 6YU,628438678,C,C,71,71,Flat,Mid-Terrace,2019-12-20,E07000110,E14000804,Kent,2019-12-20,new dwelling,77,77,154,154.0,2.0,26,2.0,58.0,58.0,421.0,421.0,291.0,291.0,76.0,standard tariff,,ground floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,"Electric immersion, standard tariff",Very Poor,Poor,Average thermal transmittance 0.14 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.22 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,"Room heaters, electric",Very Poor,Poor,Programmer and appliance thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"16 Wrens Cross, Upper Stone Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2019-12-20 15:36:46,unknown,24.0,24.0,10094440950.0,Address Matched +5c0ffd9108022ae092402c827765a3051ef4a27917797a7033e55478ebab543d,16 Allen Street,,,ME14 5AG,10001364970,D,B,68,86,House,Mid-Terrace,2021-09-09,E07000110,E14000804,Kent,2021-09-09,rental,65,85,230,79.0,2.7,41,1.0,73.0,58.0,467.0,371.0,84.0,60.0,68.0,Single,Y,,,,,100.0,double glazing installed before 2002,Normal,3.0,4.0,4.0,73.0,0.0,From main system,Good,Good,"To unheated space, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 73% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.48,0.0,N,natural,16 Allen Street,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2021-09-09 14:43:53,Rented (private),11.0,,200003704787.0,Energy Assessor +628838339962011051307034076578849,"19, Camden Street",,,ME14 1UU,4727366868,C,C,69,71,House,Mid-Terrace,2011-05-13,E07000110,E14000804,Kent,2011-05-13,none of the above,71,73,216,206.0,2.0,42,1.9,32.0,32.0,366.0,349.0,65.0,65.0,48.12,Single,Y,NODATA!,,,2107.0,100.0,double glazing installed before 2002,Normal,1.0,2.0,2.0,83.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 83% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,2.31,0.0,,natural,"19, Camden Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2011-05-13 07:03:40,unknown,6.0,5.0,200003699085.0,Address Matched +798467809442012060707005696920568,The Marrils,Chatham Road,Sandling,ME14 3AY,9456309968,D,B,64,83,Bungalow,Detached,2012-06-06,E07000110,E14000700,Kent,2012-06-07,marketed sale,65,84,206,87.0,3.4,35,1.4,61.0,61.0,630.0,518.0,104.0,80.0,95.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,2.0,4.0,3.0,78.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, wood logs",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 78% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"The Marrils, Chatham Road, Sandling",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1900-1929,2012-06-07 07:00:56,owner-occupied,9.0,7.0,200003672722.0,Address Matched +1287207259942015022613002631352368,"46, Pickering Street",,,ME15 9RR,7995953378,D,B,68,83,House,Detached,2015-02-26,E07000110,E14000804,Kent,2015-02-26,FiT application,54,75,226,114.0,6.7,40,3.4,105.0,105.0,1457.0,1015.0,280.0,88.0,166.0,dual,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,2.0,9.0,9.0,84.0,1.0,"From main system, no cylinder thermostat",Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 84% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"46, Pickering Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2015-02-26 13:00:26,owner-occupied,,,200003675127.0,Address Matched +873415668852013013116120193299005,"50, Coombe Road",,,ME15 6YR,538834078,B,B,85,85,House,Mid-Terrace,2011-11-22,E07000110,E14000804,Kent,2013-01-31,rental (social) - this is for backwards compatibility only and should not be used,88,88,70,70.0,1.2,13,1.2,57.0,57.0,212.0,212.0,97.0,97.0,92.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.14 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.20 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.09 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"50, Coombe Road",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2013-01-31 16:12:01,NO DATA!,0.0,0.0,10014313845.0,Address Matched +5c272cc3da8b4c1f8ae0ba2f65f5118c54bc6861c1c9d62cd7e42c1db2ef6493,11 KNOTT COURT,,,ME14 2XH,10001340755,D,B,68,85,House,End-Terrace,2021-06-26,E07000110,E14000804,Kent,2021-07-30,not sale or rental,65,83,221,91.0,2.8,39,1.2,73.0,73.0,456.0,395.0,118.0,75.0,72.0,Single,Y,,,,,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,80.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.6,0.0,N,natural,11 KNOTT COURT,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1991-1995,2021-07-30 15:05:07,Rented (social),10.0,,200003704732.0,Energy Assessor +5c3f5bf01d6ce84d02685fcfd6430c855327f47e794f592cd751d03b5ddfc25c,23 THE BENTLETTS,COLLIER STREET,,ME18 6FH,10001428982,B,A,83,94,Bungalow,Detached,2021-07-15,E07000110,E14000804,Kent,2021-07-15,new dwelling,85,96,91,16.0,1.5,16,0.3,73.0,73.0,252.0,252.0,66.0,40.0,91.0,standard tariff,,,N,,,100.0,,,,,,100.0,0.0,"From main system, flue gas heat recovery",Very Good,Very Good,Average thermal transmittance 0.18 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.26 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.4,,,,"23 THE BENTLETTS, COLLIER STREET",Maidstone,Maidstone and The Weald,YALDING,2021,2021-07-15 15:50:35,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,1.0,,10094444023.0,Energy Assessor +605093689242011031708582181499268,"7, Bimbury Lane",Detling,,ME14 3HX,2243584868,E,E,44,52,House,End-Terrace,2011-03-16,E07000110,E14000700,Kent,2011-03-17,marketed sale,40,43,401,370.0,11.0,60,10.0,216.0,119.0,1315.0,1144.0,283.0,283.0,151.84,dual,N,NO DATA!,,,2401.0,100.0,double glazing installed before 2002,Normal,2.0,7.0,5.0,19.0,0.0,"Electric immersion, off-peak",Poor,Poor,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, 150 mm loft insulation",Good,Good,Electric storage heaters,Poor,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 19% of fixed outlets,Poor,Poor,electricity - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.66,0.0,N,natural,"7, Bimbury Lane, Detling",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2011-03-17 08:58:21,owner-occupied,,,200003698163.0,Address Matched +07f11c1d055aca73e28b5b4ce9152013e0b6f9bd9eed28750b24b7df17191158,93 Plains Avenue,,,ME15 7AR,10001590717,D,B,65,83,House,Semi-Detached,2021-08-16,E07000110,E14000700,Kent,2021-08-17,rental,59,79,249,114.0,3.9,44,1.8,71.0,71.0,664.0,512.0,80.0,53.0,87.0,Single,Y,,,,,100.0,double glazing installed during or after 2002,Normal,1.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.47,0.0,N,natural,93 Plains Avenue,Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2021-08-17 05:02:02,Rented (private),12.0,,200003714175.0,Energy Assessor +1520844369222017022016072990108813,"23, Wolfe Road",,,ME16 8NX,1901610578,E,C,44,75,House,Semi-Detached,2017-02-20,E07000110,E14000804,Kent,2017-02-20,marketed sale,40,72,393,151.0,5.8,69,2.3,57.0,57.0,1091.0,678.0,178.0,74.0,85.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,6.0,6.0,100.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"23, Wolfe Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2017-02-20 16:07:29,owner-occupied,,,200003674502.0,Address Matched +402658839132009112510200650268790,18 Astor Park,,,ME16 8FP,3010710768,B,B,85,86,House,Semi-Detached,2009-11-24,E07000110,E14000804,Kent,2009-11-25,new dwelling,85,85,100,98.0,1.5,16,1.5,60.0,50.0,222.0,223.0,108.0,108.0,94.23,standard tariff,,NO DATA!,,,2110.0,,NO DATA!,NO DATA!,,,,16.0,0.0,From main system,Very Good,Very Good,Average thermal transmittance 0.19 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.13 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Very Good,Very Good,Time and temperature zone control,Good,Good,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.33,,,NO DATA!,18 Astor Park,Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2009-11-25 10:20:06,,20.0,16.0,10014308743.0,Address Matched +1053073799722013120101350527808357,"124, Sutton Road",,,ME15 9AP,5200907178,D,C,55,77,House,Semi-Detached,2013-11-30,E07000110,E14000700,Kent,2013-12-01,assessment for green deal,50,74,265,122.0,5.2,51,2.4,86.0,61.0,926.0,622.0,99.0,98.0,101.0,dual,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,5.0,5.0,60.0,0.0,From main system,Very Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, mains gas",,,"Pitched, no insulation",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 60% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"124, Sutton Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1900-1929,2013-12-01 01:35:05,owner-occupied,10.0,6.0,200003713476.0,Address Matched +1646944899812018070910201590080958,"1, Weavering Street",Weavering,,ME14 5JF,9883909578,D,C,55,78,House,Mid-Terrace,2018-07-09,E07000110,E14000700,Kent,2018-07-09,marketed sale,57,80,294,126.0,4.0,44,1.6,64.0,64.0,850.0,581.0,133.0,80.0,92.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,6.0,5.0,100.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"1, Weavering Street, Weavering",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1900-1929,2018-07-09 10:20:15,owner-occupied,,,200003687734.0,Address Matched +543597819902010092218192881002328,"52, London Road",,,ME16 8QL,1909110868,E,C,51,74,House,Semi-Detached,2010-09-22,E07000110,E14000804,Kent,2010-09-22,marketed sale,45,70,405,216.0,5.2,68,2.8,81.0,40.0,762.0,437.0,155.0,110.0,76.76,Single,Y,NO DATA!,,,2104.0,50.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,0.0,0.0,From main system,Average,Good,"Solid, no insulation (assumed)",,,Partial double glazing,Poor,Poor,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Average,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.42,0.0,N,natural,"52, London Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2010-09-22 18:19:28,owner-occupied,,,200003668024.0,Address Matched +284766360702009050723161962110238,"27a, Hart Street",,,ME16 8RA,7775261668,D,C,68,74,Flat,Mid-Terrace,2009-05-07,E07000110,E14000804,Kent,2009-05-07,rental (private),64,70,349,286.0,2.3,58,1.9,30.0,19.0,350.0,307.0,74.0,61.0,39.26,Single,Y,1st,N,3.0,2107.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,40.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Poor,Poor,Low energy lighting in 40% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,unheated corridor,7.3,2.4,0.0,N,natural,"27a, Hart Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2009-05-07 23:16:19,rental (private),,,200003666809.0,Address Matched +545359839222010092917095040338300,"101, The Landway",Bearsted,,ME14 4LE,440320868,D,C,63,73,House,Detached,2010-09-27,E07000110,E14000700,Kent,2010-09-29,marketed sale,57,68,303,223.0,3.9,50,2.9,75.0,41.0,557.0,454.0,155.0,112.0,77.52,Single,Y,NO DATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,15.0,0.0,From main system,Average,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 250 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Average,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 15% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.29,0.0,N,natural,"101, The Landway, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2010-09-29 17:09:50,owner-occupied,,,200003692706.0,Address Matched +604887489802011031522205788499558,3 Walmer Court,Wheeler Street,,ME14 1TY,8868184868,C,C,77,79,Flat,Semi-Detached,2011-03-15,E07000110,E14000804,Kent,2011-03-15,rental (social),75,76,179,174.0,2.2,30,2.2,63.0,42.0,347.0,350.0,115.0,115.0,74.69,Single,Y,Ground,N,3.0,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,50.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.24,0.0,N,natural,"3 Walmer Court, Wheeler Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2011-03-15 22:20:57,rental (social),,,200003700781.0,Address Matched +672739579702014111713491788940838,"1, Westminster Square",,,ME16 0WQ,8772579868,D,B,59,81,House,Detached,2014-11-07,E07000110,E14000804,Kent,2014-11-17,none of the above,52,78,215,93.0,7.3,42,3.2,85.0,85.0,1366.0,823.0,184.0,94.0,176.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,7.0,7.0,100.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"1, Westminster Square",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2014-11-17 13:49:17,owner-occupied,15.0,15.0,10022895580.0,Address Matched +1093537099142014022011145013942608,"50, Greenborough Close",,,ME15 8JN,2104599178,C,C,73,77,Flat,End-Terrace,2014-02-20,E07000110,E14000700,Kent,2014-02-20,rental (social),76,81,169,136.0,1.6,32,1.3,40.0,40.0,322.0,260.0,86.0,86.0,50.0,Unknown,Y,1st,Y,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,83.0,0.0,From main system,Very Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, partial insulation (assumed)",Average,Average,,,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 83% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,no corridor,,,0.0,,natural,"50, Greenborough Close",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1976-1982,2014-02-20 11:14:50,rental (social),6.0,5.0,200003723076.0,Address Matched +1519509209502019031415011554082348,"4, Beckett Close",,,ME16 9DW,9563400578,C,B,74,90,House,Mid-Terrace,2018-05-24,E07000110,E14000804,Kent,2019-03-14,rental (social),75,89,149,47.0,2.1,26,0.7,126.0,70.0,315.0,308.0,104.0,71.0,80.0,dual,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,20.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Very Good,Very Good,,,,"Flat, insulated",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 20% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"4, Beckett Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2019-03-14 15:01:15,rental (social),,,10091196091.0,Address Matched +432118462512010020421535292000976,Old Place,Lower Road,Sutton Valence,ME17 3AL,9626222768,D,D,60,66,House,Semi-Detached,2010-02-04,E07000110,E14000700,Kent,2010-02-04,marketed sale,63,69,214,186.0,12.0,31,10.0,388.0,204.0,1852.0,1727.0,256.0,221.0,381.34,Single,Y,NO DATA!,,,2106.0,0.0,not defined,Normal,0.0,12.0,12.0,10.0,2.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Solid brick, with internal insulation",Good,Good,"Room heaters, wood logs",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 10% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.7,0.0,N,natural,"Old Place, Lower Road, Sutton Valence",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2010-02-04 21:53:52,owner-occupied,,,200003696430.0,Address Matched +1311193209962015041621344725868795,1 Chapel Farm Cottage,Lenham Heath,,ME17 2BJ,9237035378,F,D,32,66,House,Semi-Detached,2015-04-16,E07000110,E14000700,Kent,2015-04-16,marketed sale,48,78,216,62.0,8.3,47,3.2,98.0,98.0,2412.0,1768.0,305.0,180.0,177.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,3.0,7.0,7.0,85.0,0.0,From main system,Poor,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Sandstone or limestone, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, LPG",Poor,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 85% of fixed outlets,Very Good,Very Good,LPG (not community),0.0,NO DATA!,,,,N,natural,"1 Chapel Farm Cottage, Lenham Heath",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2015-04-16 21:34:47,owner-occupied,,,10014309688.0,Address Matched +1487344278252017011612124697969645,Flat 3,Miller Heights,43-51 Lower Stone Street,ME15 6LN,6583877478,B,B,81,81,Flat,Detached,2016-10-12,E07000110,E14000804,Kent,2017-01-16,none of the above,83,83,114,114.0,1.3,20,1.3,45.0,45.0,231.0,231.0,89.0,89.0,65.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.22 W/m-¦K,Good,Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.45 W/m-¦K,Good,Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Flat 3, Miller Heights, 43-51 Lower Stone Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2017-01-16 12:12:46,unknown,4.0,4.0,10093303783.0,Address Matched +1323311479632016010812503428078305,"178, Loose Road",,,ME15 7UD,7528316378,D,B,60,85,House,Semi-Detached,2016-01-08,E07000110,E14000804,Kent,2016-01-08,ECO assessment,57,85,274,81.0,3.9,48,1.2,107.0,53.0,770.0,472.0,95.0,61.0,82.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,6.0,6.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"178, Loose Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2016-01-08 12:50:34,owner-occupied,,,200003685912.0,Address Matched +336582220062009080315591765578771,"68, Foxden Drive",Downswood,,ME15 8TF,7671255668,F,F,33,38,House,Enclosed End-Terrace,2009-08-03,E07000110,E14000700,Kent,2009-08-03,rental (private),53,56,495,456.0,3.0,75,2.8,24.0,24.0,516.0,484.0,256.0,225.0,40.36,Single,Y,NO DATA!,,,2601.0,50.0,secondary glazing,Normal,0.0,2.0,2.0,83.0,0.0,"Electric immersion, standard tariff",Very Poor,Poor,"Solid, no insulation (assumed)",,,Partial secondary glazing,Poor,Poor,"Timber frame, as built, insulated (assumed)",Good,Good,,,,"Pitched, 75 mm loft insulation",Average,Average,"Room heaters, electric",Very Poor,Poor,No thermostatic control of room temperature,Poor,Poor,Low energy lighting in 83% of fixed outlets,Very Good,Very Good,electricity - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.35,0.0,N,natural,"68, Foxden Drive, Downswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1976-1982,2009-08-03 15:59:17,rental (private),,,200003686316.0,Address Matched +1182608281152014073012001792740323,Flat 6 Woodville House,"74, York Road",,ME15 7QY,3396126278,B,B,83,83,Flat,End-Terrace,2014-07-30,E07000110,E14000700,Kent,2014-07-30,new dwelling,87,87,90,90.0,1.0,16,1.0,44.0,44.0,203.0,203.0,75.0,75.0,62.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.21 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Flat 6 Woodville House, 74, York Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2014-07-30 12:00:17,unknown,12.0,12.0,10014315450.0,Address Matched +1384670859802016042716073949062838,Flat 33,Miller House,43-51 Lower Stone Street,ME15 6GB,4846150478,C,C,78,78,Flat,NO DATA!,2016-04-27,E07000110,E14000804,Kent,2016-04-27,none of the above,68,68,243,243.0,2.2,41,2.2,39.0,39.0,240.0,240.0,153.0,153.0,53.0,off-peak 10 hour,,mid floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Poor,Poor,(other premises below),,,Fully double glazed,Good,Good,Average thermal transmittance 0.68 W/m-¦K,Average,Average,,,,(other premises above),,,"Boiler and radiators, electric",Poor,Very Poor,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"Flat 33, Miller House, 43-51 Lower Stone Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2016-04-27 16:07:39,unknown,4.0,4.0,10091196130.0,Address Matched +5c78fa2fac63df6b9ad10778f309ed01c6974683cc3e62b4fb600ccff323b45c,37 Murrain Drive,Downswood,,ME15 8XN,10001549395,D,C,60,78,Maisonette,End-Terrace,2021-09-24,E07000110,E14000700,Kent,2021-09-24,rental,46,63,492,325.0,3.5,83,2.3,42.0,43.0,521.0,256.0,287.0,157.0,42.0,dual,N,01,Y,,,0.0,not defined,Normal,0.0,2.0,2.0,100.0,0.0,"Electric immersion, off-peak",Very Poor,Poor,(another dwelling below),,,Single glazed,Very Poor,Very Poor,"Cavity wall, as built, insulated (assumed)",Good,Good,Portable electric heaters (assumed),,,"Pitched, 100 mm loft insulation",Average,Average,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,no corridor,,2.4,0.0,N,natural,"37 Murrain Drive, Downswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1991-1995,2021-09-24 17:15:09,Rented (private),6.0,,200003691515.0,Energy Assessor +837476492612012092009105098920207,"10, Charlbury Close",,,ME16 8TE,2713281078,D,B,60,86,House,Semi-Detached,2012-09-19,E07000110,E14000804,Kent,2012-09-20,marketed sale,57,86,246,65.0,3.7,47,1.0,60.0,60.0,531.0,373.0,192.0,66.0,78.0,dual,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,75.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 75 mm loft insulation",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Average,Programmer and room thermostat,Average,Average,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"10, Charlbury Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2012-09-20 09:10:50,owner-occupied,20.0,15.0,200003657569.0,Address Matched +219721577712011031117283090090857,1 Peace Cottage,Station Road,Staplehurst,TN12 0PY,8788707568,E,D,53,59,House,End-Terrace,2011-03-09,E07000110,E14000804,Kent,2011-03-11,marketed sale,49,54,383,339.0,4.5,64,4.0,53.0,38.0,766.0,699.0,106.0,94.0,70.1,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,3.0,3.0,60.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, dual fuel (mineral and wood)",,,"Flat, insulated (assumed)",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 60% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.17,0.0,N,natural,"1 Peace Cottage, Station Road, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: before 1900,2011-03-11 17:28:30,owner-occupied,,,200003679113.0,Address Matched +545451323752010092917420092200281,Flat 3 Caroline Court,"8-28, Brunswick Street",,ME15 6NP,2176320868,B,B,88,89,Flat,Detached,2010-09-28,E07000110,E14000804,Kent,2010-09-29,new dwelling,88,89,95,92.0,0.9,16,0.8,41.0,33.0,176.0,176.0,80.0,80.0,56.24,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,,From main system,Very Good,Very Good,Average thermal transmittance 0.19 W/m??K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m??K,Very Good,Very Good,"Room heaters, electric",,,(other premises above),,,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.47,,,NO DATA!,"Flat 3 Caroline Court, 8-28, Brunswick Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2010-09-29 17:42:00,,,,10014311823.0,Address Matched +843487686152014072521360392240405,Fox Pitt,Shingle Barn Lane,West Farleigh,ME15 0PN,4534622078,F,C,36,75,House,Detached,2014-07-25,E07000110,E14000804,Kent,2014-07-25,assessment for green deal,28,65,268,103.0,29.0,66,11.0,295.0,151.0,5678.0,2325.0,246.0,208.0,433.0,dual,N,NODATA!,,,2105.0,0.0,not defined,Normal,2.0,14.0,14.0,0.0,9.0,From main system,Average,Average,"Suspended, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 12 mm loft insulation",Very Poor,Very Poor,"Boiler and radiators, oil",Average,Average,Programmer and at least two room thermostats,Good,Good,No low energy lighting,Very Poor,Very Poor,oil (not community),0.0,NO DATA!,,,0.0,,natural,"Fox Pitt, Shingle Barn Lane, West Farleigh",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2014-07-25 21:36:03,owner-occupied,26.0,0.0,200003662641.0,Address Matched +761149573552012031420014794920293,"21, Franklin Drive",Weavering,,ME14 5SY,2303346968,D,D,58,68,House,Detached,2012-03-14,E07000110,E14000700,Kent,2012-03-14,marketed sale,57,67,231,175.0,7.9,39,6.0,139.0,75.0,1463.0,1126.0,123.0,123.0,158.33,Unknown,Y,NODATA!,,,2105.0,100.0,double glazing installed before 2002,Normal,1.0,7.0,7.0,13.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, wood logs",,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and at least two room thermostats,Good,Good,Low energy lighting in 14% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,2.4,0.0,,natural,"21, Franklin Drive, Weavering",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2012-03-14 20:01:47,owner-occupied,36.0,5.0,200003716407.0,Address Matched +1536002329902019073010514657117408,"2, Pioneer Avenue",Marden,,TN12 9FT,3924221578,B,A,85,94,House,Detached,2019-07-30,E07000110,E14000804,Kent,2019-07-30,new dwelling,86,95,76,20.0,1.7,13,0.5,83.0,83.0,267.0,268.0,100.0,55.0,131.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.12 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.28 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"2, Pioneer Avenue, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,NO DATA!,2019-07-30 10:51:46,owner-occupied,16.0,16.0,10093303323.0,Address Matched +1018180469702013100220004815470798,23 Midhurst Court,Mote Road,,ME15 6EH,8768264178,D,C,58,79,Flat,Mid-Terrace,2013-10-01,E07000110,E14000804,Kent,2013-10-02,none of the above,61,84,307,120.0,2.4,54,1.0,28.0,28.0,368.0,200.0,240.0,94.0,45.0,Single,Y,4th,N,,2602.0,100.0,double glazing installed before 2002,Normal,0.0,2.0,2.0,100.0,0.0,"Electric immersion, standard tariff",Very Poor,Very Poor,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,(another dwelling above),,,"Room heaters, electric",Very Poor,Very Poor,Appliance thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,unheated corridor,6.16,,0.0,,natural,"23 Midhurst Court, Mote Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2013-10-02 20:00:48,rental (social),5.0,5.0,200003693330.0,Address Matched +1505773779222016122209110259228256,"11, Haywain Close",Weavering,,ME14 5UX,5575709478,C,B,70,86,House,Mid-Terrace,2016-12-22,E07000110,E14000700,Kent,2016-12-22,marketed sale,70,85,201,82.0,2.4,35,1.0,94.0,47.0,384.0,393.0,130.0,79.0,68.0,Single,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"11, Haywain Close, Weavering",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2016-12-22 09:11:02,owner-occupied,,,200003688295.0,Address Matched +100690289342017041808431941639488,"61, Bower Lane",,,ME16 8EH,3306486468,C,B,71,84,House,End-Terrace,2017-04-18,E07000110,E14000804,Kent,2017-04-18,marketed sale,67,81,177,87.0,3.4,31,1.7,66.0,66.0,574.0,508.0,139.0,75.0,108.0,Single,Y,NODATA!,,,2107.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"61, Bower Lane",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2017-04-18 08:43:19,owner-occupied,,,10022897024.0,Address Matched +1579347161152017100315502193039152,"47, Maxwell Drive",,,ME16 0QY,1243134578,D,B,62,84,Bungalow,Semi-Detached,2017-10-03,E07000110,E14000804,Kent,2017-10-03,marketed sale,56,81,265,97.0,3.8,47,1.4,81.0,61.0,679.0,460.0,103.0,73.0,82.0,dual,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,67.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 67% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"47, Maxwell Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2017-10-03 15:50:21,owner-occupied,,,200003705506.0,Address Matched +1543706276852017051511150297930455,"25, Farleigh Heights",Tovil,,ME15 6XN,4584671578,B,A,85,96,House,Mid-Terrace,2017-05-14,E07000110,E14000804,Kent,2017-05-15,new dwelling,87,98,81,4.0,1.3,14,0.1,61.0,61.0,236.0,236.0,78.0,45.0,90.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.12 W/m+é-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.19 W/m+é-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.10 W/m+é-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"25, Farleigh Heights, Tovil",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2017-05-15 11:15:02,unknown,30.0,30.0,10091195986.0,Address Matched +914731629642013120218413301779888,"16, Iris Close",,,ME5 9QD,6616527078,D,B,64,82,House,Detached,2013-07-18,E07000110,E14000700,Kent,2013-12-02,following green deal,55,78,199,86.0,5.6,42,2.6,118.0,66.0,866.0,603.0,115.0,77.0,133.0,Single,Y,NODATA!,,,2104.0,0.0,not defined,Normal,1.0,6.0,6.0,19.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Cavity wall, filled cavity",Good,Good,"Room heaters, coal",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 19% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"16, Iris Close",Maidstone,Faversham and Mid Kent,CHATHAM,England and Wales: 1983-1990,2013-12-02 18:41:33,owner-occupied,27.0,5.0,200003708185.0,Address Matched +957740579222013062423373700248637,"10, Hartley Close",,,ME15 8SY,3093730178,E,C,50,77,Bungalow,Semi-Detached,2013-06-24,E07000110,E14000700,Kent,2013-06-24,rental (social),46,76,324,126.0,4.6,62,1.8,68.0,43.0,729.0,530.0,157.0,69.0,74.0,Single,Y,NODATA!,,,2107.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,40.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 40% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"10, Hartley Close",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2013-06-24 23:37:37,rental (social),10.0,4.0,200003680870.0,Address Matched +348610447932011032614564177268809,19 Roland House,Harris Place,Tovil,ME15 6BP,4937836668,C,B,78,84,Flat,Enclosed End-Terrace,2011-03-24,E07000110,E14000804,Kent,2011-03-26,marketed sale,80,80,161,165.0,1.7,24,1.7,48.0,48.0,201.0,105.0,150.0,150.0,69.69,dual,N,1st,N,3.0,2602.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,"Electric immersion, off-peak",Poor,Poor,(other premises below),,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,(another dwelling above),,,"Room heaters, electric",Very Poor,Poor,Appliance thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity - this is for backwards compatibility only and should not be used,0.0,heated corridor,,2.32,0.0,N,natural,"19 Roland House, Harris Place, Tovil",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2011-03-26 14:56:41,owner-occupied,,,10022901587.0,Address Matched +1237825059432014111900303148978399,"48a, Postley Road",,,ME15 6TR,5978310378,D,B,57,81,House,Detached,2014-11-11,E07000110,E14000804,Kent,2014-11-19,none of the above,53,79,252,96.0,4.8,48,1.9,93.0,59.0,892.0,655.0,135.0,82.0,99.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,42.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 42% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"48a, Postley Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2014-11-19 00:30:31,owner-occupied,12.0,5.0,200003683339.0,Address Matched +1667828119262018102916545730318568,Flat 96,Brenchley House,123-135 Week Street,ME14 1FY,6315160678,C,C,76,76,Flat,Mid-Terrace,2018-10-29,E07000110,E14000700,Kent,2018-10-29,new dwelling,83,83,224,224.0,0.8,39,0.8,20.0,20.0,140.0,140.0,91.0,91.0,20.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,Community scheme,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.30 W/m-¦K,Good,Good,,,,(other premises above),,,Community scheme,Good,Good,"Charging system linked to use of community heating, programmer and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,NO DATA!,,NO DATA!,,,,,NO DATA!,"Flat 96, Brenchley House, 123-135 Week Street",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2018-10-29 16:54:57,unknown,6.0,6.0,10094440772.0,Address Matched +1039923863732013110815164035978603,"74, Postley Road",,,ME15 6TR,6315616178,D,B,63,87,House,Semi-Detached,2013-07-16,E07000110,E14000804,Kent,2013-11-08,none of the above,61,88,232,55.0,3.1,45,0.8,55.0,42.0,527.0,354.0,124.0,72.0,69.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,67.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 67% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"74, Postley Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2013-11-08 15:16:40,owner-occupied,12.0,8.0,200003681906.0,Address Matched +1403904999632016012111001541278505,"34, Farmers Close",Leeds,,ME17 1SB,9551581478,C,B,69,86,House,Semi-Detached,2016-01-21,E07000110,E14000700,Kent,2016-01-21,marketed sale,68,85,229,88.0,2.4,40,1.0,42.0,42.0,461.0,404.0,99.0,65.0,60.0,Single,Y,NODATA!,,,2107.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"34, Farmers Close, Leeds",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2016-01-21 11:00:15,owner-occupied,,,200003698382.0,Address Matched +922509749762013043014074727408317,"4, Keble Place",,,ME15 9ZP,1288487078,C,B,80,81,House,End-Terrace,2013-04-30,E07000110,E14000700,Kent,2013-04-30,new dwelling,83,84,107,100.0,1.5,20,1.4,73.0,44.0,257.0,261.0,90.0,90.0,76.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.20 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.34 W/m?K,Good,Good,,,,Average thermal transmittance 0.24 W/m?K,Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 36% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"4, Keble Place",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2013-04-30 14:07:47,NO DATA!,11.0,4.0,10014312851.0,Address Matched +221934740302009020415311357710648,"1, Ashurst Road",,,ME14 5PZ,9331247568,F,D,29,62,House,End-Terrace,2009-02-04,E07000110,E14000804,Kent,2009-02-04,marketed sale,28,50,678,399.0,7.7,102,4.5,73.0,39.0,827.0,427.0,267.0,125.0,75.0,dual,N,NO DATA!,,,2401.0,90.0,"double glazing, unknown install date",Normal,0.0,4.0,2.0,11.0,0.0,"Electric immersion, off-peak",Very Poor,Poor,"Solid, no insulation (assumed)",,,Partial double glazing,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,"Pitched, 25mm loft insulation",Poor,Poor,Electric storage heaters,Poor,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 11% of fixed outlets,Poor,Poor,electricity - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.3,0.0,N,natural,"1, Ashurst Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2009-02-04 15:31:13,owner-occupied,,,200003671407.0,Address Matched +387518400152009102320261501219966,"21, Hampshire Drive",,,ME15 7EU,9653019668,E,C,47,71,House,Semi-Detached,2009-10-23,E07000110,E14000700,Kent,2009-10-23,marketed sale,45,70,388,202.0,5.8,64,3.0,67.0,46.0,863.0,468.0,181.0,128.0,91.0,Single,Y,NO DATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,55.0,0.0,From main system,Average,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Average,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 55% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,,0.0,N,natural,"21, Hampshire Drive",Maidstone,Faversham and Mid Kent,MAIDSTONE,,2009-10-23 20:26:15,owner-occupied,,,200003711438.0,Address Matched +914985539342013041707214005779468,"19, Reginald Road",,,ME16 8EX,343037078,E,B,44,82,House,End-Terrace,2013-04-16,E07000110,E14000804,Kent,2013-04-17,marketed sale,48,87,351,88.0,4.8,56,1.1,59.0,59.0,1043.0,479.0,100.0,62.0,86.0,Single,Y,NODATA!,,,2107.0,0.0,not defined,Normal,1.0,4.0,4.0,78.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 78% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"19, Reginald Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2013-04-17 07:21:40,owner-occupied,9.0,7.0,200003667843.0,Address Matched +308978546132009061921065606968301,"86, Salisbury Road",Penenden Heath,,ME14 2TX,4116363668,D,D,59,67,House,Mid-Terrace,2009-06-19,E07000110,E14000804,Kent,2009-06-19,rental (private),54,61,310,260.0,4.8,52,4.0,87.0,44.0,643.0,570.0,106.0,93.0,92.06,Single,Y,NO DATA!,,,2106.0,0.0,single glazing,Normal,0.0,5.0,5.0,0.0,2.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.58,0.0,N,natural,"86, Salisbury Road, Penenden Heath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2009-06-19 21:06:56,rental (private),,,200003703394.0,Address Matched +220689830902009020320151758717498,"44a, Gabriels Hill",,,ME15 6JJ,984837568,C,C,76,78,Flat,Detached,2009-01-31,E07000110,E14000804,Kent,2009-02-03,rental (private),72,75,253,227.0,1.8,42,1.6,25.0,25.0,286.0,267.0,71.0,63.0,43.1,Single,Y,1st,N,3.0,2107.0,100.0,double glazing installed before 2002,Normal,0.0,2.0,2.0,80.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Poor,Poor,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,heated corridor,,2.32,0.0,N,natural,"44a, Gabriels Hill",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2009-02-03 20:15:17,rental (private),,,10014309963.0,Address Matched +98549109942011031113424245799598,Flat 68,Lee Heights,Bambridge Court,ME14 2LD,7938207468,D,B,66,82,Flat,Mid-Terrace,2011-03-11,E07000110,E14000804,Kent,2011-03-11,marketed sale,76,76,187,189.0,2.1,28,2.2,77.0,52.0,222.0,146.0,313.0,140.0,75.85,Unknown,N,1st,N,5.0,2603.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,30.0,0.0,"Electric immersion, standard tariff",Very Poor,Poor,(other premises below),,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Room heaters, electric",Very Poor,Poor,Programmer and appliance thermostats,Good,Good,Low energy lighting in 30% of fixed outlets,Average,Average,electricity - this is for backwards compatibility only and should not be used,0.0,unheated corridor,9.32,2.3,0.0,N,natural,"Flat 68, Lee Heights, Bambridge Court",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2011-03-11 13:42:42,owner-occupied,,,10022893039.0,Address Matched +724241079922011111614263653868789,"9, Brockenhurst Avenue",,,ME15 7ED,8531733968,D,C,67,70,House,Semi-Detached,2011-11-16,E07000110,E14000700,Kent,2011-11-16,marketed sale,65,68,192,173.0,4.1,37,3.7,82.0,53.0,640.0,607.0,132.0,115.0,110.74,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,More Than Typical,1.0,5.0,5.0,47.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 47% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,2.45,0.0,,natural,"9, Brockenhurst Avenue",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2011-11-16 14:26:36,owner-occupied,15.0,7.0,200003685057.0,Address Matched +5cf338e5f842200779e99fcce9a9108bf19bf3307546192399876b3a2b89c440,FLAT 10,115 SEYMOUR DRIVE,,TN12 9GS,10001613102,B,B,84,84,Flat,Detached,2021-07-30,E07000110,E14000804,Kent,2021-07-30,new dwelling,87,87,83,83.0,1.0,15,1.0,69.0,69.0,178.0,178.0,70.0,70.0,71.0,standard tariff,,3,Y,,,100.0,,,,,,100.0,0.0,From main system,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.22 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.39,,,,"FLAT 10, 115 SEYMOUR DRIVE",Maidstone,Maidstone and The Weald,MARDEN,2021,2021-07-30 10:50:32,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,10.0,,10094441163.0,Energy Assessor +5cdfb6dcce01c07eb6fafd750baed3b6f29881961a9403be59f6527ddfefb120,MULBERRY BARN,ROSE LANE,LENHAM HEATH,ME17 2JN,10001681184,G,B,13,85,House,Detached,2021-07-19,E07000110,E14000700,Kent,2021-07-19,marketed sale,33,93,340,-4.0,9.5,74,0.6,111.0,111.0,2309.0,805.0,299.0,136.0,129.0,Single,N,,,,,95.0,double glazing installed during or after 2002,Normal,2.0,5.0,5.0,79.0,0.0,"From main system, no cylinder thermostat",Very Poor,Average,"Solid, no insulation (assumed)",,,Mostly double glazing,Good,Good,"Solid brick, as built, no insulation (assumed)",Poor,Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, LPG",Poor,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 79% of fixed outlets,Very Good,Very Good,LPG (not community),0.0,,,2.23,0.0,N,natural,"MULBERRY BARN, ROSE LANE, LENHAM HEATH",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2021-07-19 18:34:19,Owner-occupied,19.0,,200003714587.0,Energy Assessor +136802499922011091916154640218539,"45, Pickering Street",,,ME15 9RS,3411940568,D,D,55,68,Bungalow,Detached,2011-09-19,E07000110,E14000804,Kent,2011-09-19,marketed sale,51,67,306,201.0,4.5,59,3.0,70.0,42.0,733.0,498.0,115.0,101.0,76.9,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,33.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 33% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,2.6,0.0,,natural,"45, Pickering Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2011-09-19 16:15:46,owner-occupied,9.0,3.0,200003675268.0,Address Matched +1667933719262018102916552750018198,Flat 111,Brenchley House,123-135 Week Street,ME14 1FY,9517160678,C,C,76,76,Flat,Mid-Terrace,2018-10-29,E07000110,E14000700,Kent,2018-10-29,new dwelling,81,81,174,174.0,1.0,31,1.0,28.0,28.0,180.0,180.0,96.0,96.0,34.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,Community scheme,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.30 W/m-¦K,Good,Good,,,,(other premises above),,,Community scheme,Good,Good,"Charging system linked to use of community heating, programmer and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,NO DATA!,,NO DATA!,,,,,NO DATA!,"Flat 111, Brenchley House, 123-135 Week Street",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2018-10-29 16:55:27,unknown,6.0,6.0,10094440787.0,Address Matched +5cf7737aa05d9171856d142b7853638c672cbd4a76f6216d6f4cf57be7edd273,3,Bella Rosa Drive,Langley,ME17 3US,10001452677,B,A,85,96,House,Mid-Terrace,2021-08-17,E07000110,E14000700,Kent,2021-08-17,new dwelling,88,99,79,-2.0,1.2,14,0.0,74.0,74.0,207.0,207.0,69.0,42.0,86.0,standard tariff,,,N,,,100.0,,,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.39,,,,"3, Bella Rosa Drive, Langley",Maidstone,Faversham and Mid Kent,Maidstone,2021,2021-08-17 14:10:27,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,15.0,,10095448350.0,Address Matched +1415463779922016021912055412318296,"9, Cobnut Avenue",,,ME15 8WH,9152762478,C,C,80,80,Flat,NO DATA!,2016-02-19,E07000110,E14000700,Kent,2016-02-19,new dwelling,84,84,125,125.0,1.0,22,1.0,33.0,33.0,220.0,220.0,68.0,68.0,47.0,standard tariff,,top floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.26 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.14 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"9, Cobnut Avenue",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2016-02-19 12:05:54,unknown,1.0,1.0,10091194547.0,Address Matched +156729671832008100113334411768804,Flat 3,"24, Melville Road",,ME15 7UY,7441841568,C,B,79,84,Flat,Detached,2008-09-30,E07000110,E14000804,Kent,2008-10-01,non marketed sale,78,82,260,207.0,1.2,43,1.0,25.0,12.0,187.0,167.0,53.0,47.0,27.8,Single,Y,2nd,N,4.0,2102.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,0.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Good,Good,"Solid brick, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,unheated corridor,5.8,2.8,0.0,N,natural,"Flat 3, 24, Melville Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2008-10-01 13:33:44,owner-occupied,,,200003696796.0,Address Matched +5cf9a4330902e93f778139cd03a179620f7859de73f345e5ab52e23639e646da,FLAT 20,CROWN WOOD COURT,WALLIS AVENUE,ME15 9WD,10001659513,C,C,79,79,Flat,Semi-Detached,2021-07-29,E07000110,E14000700,Kent,2021-07-29,rental,84,84,134,134.0,1.1,23,1.1,45.0,45.0,207.0,207.0,66.0,66.0,45.0,Single,Y,00,N,,,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,100.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",,,Fully double glazed,Good,Good,"Timber frame, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,9.78,2.34,0.0,N,natural,"FLAT 20, CROWN WOOD COURT, WALLIS AVENUE",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2007-2011,2021-07-29 21:32:05,Rented (social),6.0,,10014307324.0,Energy Assessor +1717280229402019043009064269417708,"13, Rags Field",Staplehurst,,TN12 0FQ,5435024678,B,A,84,95,House,End-Terrace,2019-04-30,E07000110,E14000804,Kent,2019-04-30,new dwelling,86,97,84,3.0,1.2,15,0.1,62.0,62.0,211.0,211.0,73.0,43.0,84.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.28 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"13, Rags Field, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,NO DATA!,2019-04-30 09:06:42,unknown,9.0,9.0,10093304166.0,Address Matched +665748549962019071509301339528361,"12, Cayser Drive",Kingswood,,ME17 3QB,6337429868,C,B,80,86,House,Semi-Detached,2019-07-12,E07000110,E14000700,Kent,2019-07-15,marketed sale,80,88,137,75.0,1.5,22,0.8,66.0,66.0,420.0,324.0,116.0,75.0,69.0,Single,Y,NODATA!,,,2106.0,100.0,triple glazing,Normal,0.0,5.0,5.0,80.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully triple glazed,Good,Good,"Cavity wall, as built, partial insulation (assumed)",Average,Average,"Room heaters, wood logs",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"12, Cayser Drive, Kingswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1976-1982,2019-07-15 09:30:13,owner-occupied,,,200003701271.0,Address Matched +608597839222011032515160955148709,"1, Sherbourne Drive",,,ME16 8UG,572315868,C,C,75,79,House,Mid-Terrace,2011-03-24,E07000110,E14000804,Kent,2011-03-25,marketed sale,71,76,266,224.0,1.9,44,1.6,32.0,23.0,334.0,302.0,84.0,73.0,41.9,Single,Y,NO DATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,57.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Timber frame, as built, insulated (assumed)",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 57% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,0.0,N,natural,"1, Sherbourne Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2011-03-25 15:16:09,owner-occupied,,,200003674884.0,Address Matched +1394218070652017072521085992230044,"38, Bower Place",,,ME16 8BH,423021478,D,B,66,90,House,Mid-Terrace,2017-07-25,E07000110,E14000804,Kent,2017-07-25,marketed sale,63,91,261,39.0,2.6,46,0.4,40.0,40.0,479.0,288.0,93.0,62.0,56.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"38, Bower Place",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2017-07-25 21:08:59,unknown,,,200003667377.0,Address Matched +5d0fbfc52d2bf82a45eb9199da8b87db41cc072fc9a30bd7678974fef19ad3de,93 Postley Road,,,ME15 6TP,10001621399,C,B,73,85,House,Detached,2021-09-25,E07000110,E14000804,Kent,2021-09-25,marketed sale,73,84,169,86.0,2.6,30,1.4,76.0,76.0,476.0,479.0,112.0,69.0,88.0,Single,Y,,,,,100.0,double glazing installed during or after 2002,Normal,1.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Suspended, insulated (assumed)",,,Fully double glazed,Good,Good,"Timber frame, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.4,0.0,N,natural,93 Postley Road,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2021-09-25 12:56:40,Owner-occupied,12.0,,10022895663.0,Energy Assessor +804041149642012062215152990922328,"1, Mitchell Close",Lenham,,ME17 2AE,5679649968,D,B,63,83,House,End-Terrace,2012-06-22,E07000110,E14000700,Kent,2012-06-22,marketed sale,62,83,229,83.0,3.0,44,1.1,78.0,39.0,466.0,395.0,114.0,65.0,69.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, mains gas",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"1, Mitchell Close, Lenham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2012-06-22 15:15:29,owner-occupied,8.0,0.0,200003725144.0,Address Matched +5d12d347af8d274f3dbb50acdf867fabd9dd12b24cac17555ad5b0665182b568,2 Wealden Way,Headcorn,,TN27 9DQ,10001410894,B,A,85,106,House,Detached,2021-08-17,E07000110,E14000700,Kent,2021-08-17,marketed sale,86,105,74,-40.0,2.1,13,-1.0,101.0,101.0,331.0,332.0,99.0,56.0,161.0,standard tariff,,,N,,,100.0,,,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.17 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.33,,,,"2 Wealden Way, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,2021,2021-08-17 09:28:54,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,20.0,,10093306090.0,Energy Assessor +1225788479922015071413280349648055,"1, Athelstan Green",Hollingbourne,,ME17 1UX,5447729278,D,C,56,76,Bungalow,Detached,2015-07-14,E07000110,E14000700,Kent,2015-07-14,marketed sale,50,74,266,131.0,7.1,47,3.5,138.0,85.0,1314.0,970.0,218.0,80.0,151.0,dual,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,36.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, 400+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 36% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"1, Athelstan Green, Hollingbourne",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2015-07-14 13:28:03,owner-occupied,,,200003700520.0,Address Matched +487604309922010051910563386218150,77b Wheeler Street,,,ME14 1UB,5896016768,B,B,86,87,House,Mid-Terrace,2010-05-19,E07000110,E14000804,Kent,2010-05-19,new dwelling,86,87,109,105.0,1.1,18,1.1,46.0,33.0,190.0,191.0,85.0,85.0,63.54,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,,From main system,Very Good,Very Good,Average thermal transmittance 0.18 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.13 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Very Good,Very Good,Time and temperature zone control,Good,Good,Low energy lighting in 58% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.48,,,NO DATA!,77b Wheeler Street,Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2010-05-19 10:56:33,,,,10014310786.0,Address Matched +743858142852012013001110491720996,Malvern,Harple Lane,Detling,ME14 3EU,9688215968,G,F,14,25,Bungalow,Detached,2012-01-30,E07000110,E14000700,Kent,2012-01-30,marketed sale,29,39,511,404.0,9.0,91,7.1,112.0,56.0,2126.0,1680.0,246.0,246.0,98.65,dual,Y,NODATA!,,,0.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,1.0,0.0,1.0,"Electric immersion, off-peak",Very Poor,Very Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 25 mm loft insulation",,,Portable electric heaters assumed for most rooms,Very Poor,Very Poor,No thermostatic control of room temperature,Poor,Poor,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,2.42,0.0,,natural,"Malvern, Harple Lane, Detling",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2012-01-30 01:11:04,owner-occupied,8.0,0.0,200003723371.0,Address Matched +972615775412013071612571793970615,"15, Lakelands",,,ME15 9UN,6590531178,C,C,74,76,Maisonette,End-Terrace,2013-07-16,E07000110,E14000804,Kent,2013-07-16,rental (social),58,60,325,310.0,2.6,57,2.4,31.0,31.0,240.0,210.0,113.0,113.0,45.0,dual,N,1st,Y,,2401.0,100.0,double glazing installed before 2002,Normal,0.0,2.0,2.0,100.0,0.0,"Electric immersion, off-peak",Average,Very Poor,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,Portable electric heaters (assumed),,,"Pitched, 250 mm loft insulation",Good,Good,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,no corridor,,,0.0,,natural,"15, Lakelands",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2013-07-16 12:57:17,rental (social),6.0,6.0,200003724709.0,Address Matched +1083952449962014031411472119278294,"15, Birchington Close",,,ME14 5PF,9100429178,C,C,70,73,Maisonette,End-Terrace,2014-03-13,E07000110,E14000804,Kent,2014-03-14,rental (private),72,77,176,148.0,2.1,33,1.7,49.0,49.0,373.0,347.0,148.0,110.0,62.0,dual,Y,1st,Y,,2104.0,100.0,"double glazing, unknown install date",Normal,1.0,3.0,3.0,90.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 90% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,no corridor,,,0.0,,natural,"15, Birchington Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2014-03-14 11:47:21,rental (private),10.0,9.0,200003673195.0,Address Matched +657652669842011072212050985892128,"10, Peel Street",,,ME14 2SA,1801968868,D,D,62,66,House,Mid-Terrace,2011-07-22,E07000110,E14000804,Kent,2011-07-22,rental (private),60,64,253,227.0,3.4,49,3.0,76.0,38.0,564.0,535.0,82.0,82.0,68.98,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,2.0,4.0,4.0,0.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,2.42,0.0,,natural,"10, Peel Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2011-07-22 12:05:09,rental (private),12.0,0.0,200003702328.0,Address Matched +5d2e50dbec3d6a82cd2bd70ff42affe0e1c0e0a33ca0aa95c4c5be44ed50c47f,5 RUSHMORE GROVE,,,ME17 2FJ,10001520134,B,B,83,83,Flat,Detached,2021-07-27,E07000110,E14000700,Kent,2021-07-27,new dwelling,87,87,95,95.0,0.9,17,0.9,53.0,53.0,171.0,171.0,63.0,63.0,55.0,standard tariff,,1,N,,,100.0,,,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.19 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.4,,,,5 RUSHMORE GROVE,Maidstone,Faversham and Mid Kent,LENHAM,2019,2021-07-27 08:33:45,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,1.0,,10094444434.0,Energy Assessor +1253699049532015010618393818078404,"38, Hillary Road",Penenden Heath,,ME14 2JT,4438421378,D,B,56,83,House,Semi-Detached,2015-01-06,E07000110,E14000804,Kent,2015-01-06,ECO assessment,45,76,299,97.0,5.4,59,2.1,127.0,63.0,753.0,516.0,219.0,76.0,90.0,dual,Y,NODATA!,,,2104.0,,not defined,Much More Than Typical,2.0,5.0,5.0,0.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, coal",,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"38, Hillary Road, Penenden Heath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2015-01-06 18:39:38,owner-occupied,,,200003707033.0,Address Matched +1543670759922017051506363541828933,"10, Passmore Way",Tovil,,ME15 6AD,3449571578,C,B,75,81,Flat,End-Terrace,2017-05-12,E07000110,E14000804,Kent,2017-05-15,marketed sale,72,71,251,254.0,1.8,43,1.8,41.0,45.0,229.0,144.0,157.0,127.0,42.0,dual,N,Ground,N,,2603.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,80.0,0.0,"Electric immersion, off-peak",Poor,Poor,"Solid, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Room heaters, electric",Very Poor,Poor,Programmer and appliance thermostats,Good,Good,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,electricity (not community),0.0,no corridor,,,,N,natural,"10, Passmore Way, Tovil",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2017-05-15 06:36:35,owner-occupied,,,10022892092.0,Address Matched +541895179922010091722052679638470,"22, Wrangleden Road",,,ME15 9LS,7767799768,C,C,74,75,Flat,Semi-Detached,2010-09-17,E07000110,E14000700,Kent,2010-09-17,rental (social),71,72,267,261.0,1.9,44,1.8,35.0,22.0,328.0,330.0,75.0,75.0,42.0,Single,Y,Ground,N,2.0,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,40.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 40% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.26,0.0,N,natural,"22, Wrangleden Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2010-09-17 22:05:26,rental (social),,,200003682518.0,Address Matched +1601705509832018012310522523278003,"15, Kerry Hill Way",,,ME14 2GZ,373095578,C,B,71,84,House,Mid-Terrace,2018-01-23,E07000110,E14000804,Kent,2018-01-23,rental (private),67,81,184,92.0,3.4,32,1.7,72.0,72.0,536.0,492.0,152.0,74.0,105.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,2.0,6.0,6.0,100.0,0.0,From main system,Good,Good,"Solid, limited insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"15, Kerry Hill Way",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2018-01-23 10:52:25,rental (private),,,10022896280.0,Address Matched +817302442252012072421280894220301,"2, Freeman Way",,,ME15 8AN,3117240078,D,B,64,81,House,Semi-Detached,2012-07-24,E07000110,E14000700,Kent,2012-07-24,marketed sale,62,80,217,97.0,3.2,42,1.5,74.0,44.0,566.0,472.0,79.0,65.0,77.0,Single,Y,NODATA!,,,2107.0,80.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,30.0,1.0,"From main system, plus solar",Very Good,Very Good,"Solid, no insulation (assumed)",,,Mostly double glazing,Poor,Poor,"Cavity wall, filled cavity",Good,Good,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 30% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"2, Freeman Way",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2012-07-24 21:28:08,owner-occupied,10.0,3.0,200003684388.0,Address Matched +1065580799142014010223144416740028,"29a, Cumberland Avenue",,,ME15 7JP,6171997178,C,C,74,76,Flat,Semi-Detached,2014-01-02,E07000110,E14000700,Kent,2014-01-02,rental (social),76,79,154,135.0,1.8,29,1.5,50.0,39.0,331.0,310.0,96.0,84.0,60.0,Single,Y,1st,Y,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,71.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 71% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,no corridor,,,0.0,,natural,"29a, Cumberland Avenue",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2014-01-02 23:14:44,rental (social),7.0,5.0,200003712949.0,Address Matched +1538069148052017042421062293230550,West Forge,Back Street,Leeds,ME17 1TF,5021831578,E,C,48,77,House,Detached,2017-04-24,E07000110,E14000700,Kent,2017-04-24,marketed sale,40,67,208,79.0,13.0,54,6.5,164.0,107.0,1722.0,1172.0,122.0,147.0,245.0,Unknown,N,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,2.0,10.0,10.0,46.0,0.0,From main system,Average,Average,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Poor,Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, oil",Average,Average,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 46% of fixed outlets,Good,Good,oil (not community),0.0,NO DATA!,,,,N,natural,"West Forge, Back Street, Leeds",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2017-04-24 21:06:22,owner-occupied,,,200003698035.0,Address Matched +298974689022019060421331102378851,"32, Bridgeside Mews",,,ME15 6TB,5068882668,B,A,81,92,House,Mid-Terrace,2019-06-03,E07000110,E14000804,Kent,2019-06-04,rental (private),82,93,112,29.0,1.7,20,0.5,65.0,65.0,264.0,264.0,101.0,68.0,84.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"32, Bridgeside Mews",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2019-06-04 21:33:11,rental (private),,,10014308042.0,Address Matched +470611039962010041921184754618210,"15, Forge Meadows",Headcorn,,TN27 9QW,1586394768,C,C,69,80,Flat,Semi-Detached,2010-04-19,E07000110,E14000700,Kent,2010-04-19,rental (social),65,77,256,165.0,3.1,43,2.0,49.0,39.0,421.0,300.0,160.0,110.0,72.35,Single,Y,1st,Y,2.0,2107.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,75.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.42,0.0,N,natural,"15, Forge Meadows, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,England and Wales: 1950-1966,2010-04-19 21:18:47,rental (social),,,200003722605.0,Address Matched +1768922199542019120214162068710828,"2, Spindle Close",Headcorn,,TN27 9EZ,1537797678,B,B,89,91,House,Semi-Detached,2019-12-02,E07000110,E14000700,Kent,2019-12-02,new dwelling,92,94,46,31.0,0.6,8,0.4,59.0,59.0,192.0,192.0,81.0,51.0,70.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.14 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"2, Spindle Close, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,NO DATA!,2019-12-02 14:16:20,unknown,15.0,15.0,10094441623.0,Address Matched +1794911482902020032410004162902548,Flat 2,"74, Silver Birch Road",Headcorn,TN27 9FY,925589678,B,B,83,83,Flat,Semi-Detached,2020-03-24,E07000110,E14000700,Kent,2020-03-24,new dwelling,86,86,89,89.0,1.1,16,1.1,59.0,59.0,195.0,195.0,69.0,69.0,69.0,standard tariff,,ground floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.12 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Flat 2, 74, Silver Birch Road, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,NO DATA!,2020-03-24 10:00:41,unknown,8.0,8.0,10094443644.0,Address Matched +19777ac162f5089bc1b0d74ab9f43256f8ffcd7124079d1f3deb853e1e264555,83 Roman Way,Boughton Monchelsea,,ME17 4SH,8324938668,C,B,79,88,House,End-Terrace,2022-10-08,E07000110,E14000700,Kent,2022-10-08,marketed sale,78,87,125,61.0,2.4,22,1.2,94.0,94.0,394.0,396.0,101.0,65.0,111.0,Single,Y,,,,,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Suspended, insulated (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.34,0.0,N,natural,"83 Roman Way, Boughton Monchelsea",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2007-2011,2022-10-08 12:38:30,Owner-occupied,14.0,,10022896609.0,Energy Assessor +5d5a337200b23299e196358d17dd9cd4ed0822ac9a685147e02185ba0c8c3c2b,69 WRENS CROSS,UPPER STONE STREET,,ME15 6YU,10001551923,C,C,75,75,Flat,Semi-Detached,2021-07-08,E07000110,E14000804,Kent,2021-07-08,new dwelling,75,75,160,160.0,2.1,28,2.1,86.0,86.0,351.0,351.0,85.0,85.0,75.0,off-peak 7 hour,,3,Y,,,100.0,,,,,,75.0,0.0,From main system,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.14 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,3.08,,,,"69 WRENS CROSS, UPPER STONE STREET",Maidstone,Maidstone and The Weald,MAIDSTONE,2017,2021-07-08 16:06:46,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,20.0,,10094441003.0,Energy Assessor +1750792269142019091207455161610018,"23, Rhodewood Close",Downswood,,ME15 8UR,9168266678,D,B,67,84,House,Detached,2019-09-09,E07000110,E14000700,Kent,2019-09-12,marketed sale,64,82,236,105.0,3.1,42,1.4,73.0,57.0,492.0,433.0,127.0,76.0,74.0,Unknown,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,73.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 73% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"23, Rhodewood Close, Downswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2019-09-12 07:45:51,owner-occupied,,,200003691378.0,Address Matched +747236439642012020614163691520068,"20, Emsworth Grove",,,ME14 5SE,7646535968,D,D,65,68,House,Semi-Detached,2012-02-06,E07000110,E14000804,Kent,2012-02-06,rental (private),63,67,231,204.0,3.3,45,2.9,50.0,50.0,465.0,457.0,180.0,124.0,73.8,dual,Y,NODATA!,,,2504.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,88.0,0.0,"From main system, no cylinder thermostat",Poor,Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Warm air, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 89% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,2.29,0.0,,natural,"20, Emsworth Grove",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2012-02-06 14:16:36,rental (private),9.0,8.0,200003672896.0,Address Matched +1576460749312018021215233390980759,"3, Cuthbert Close",Tovil,,ME15 6AY,7921904578,B,B,88,89,House,Mid-Terrace,2018-02-12,E07000110,E14000804,Kent,2018-02-12,new dwelling,90,92,56,45.0,0.9,10,0.8,68.0,68.0,209.0,209.0,90.0,60.0,94.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Very Good,Good,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.21 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"3, Cuthbert Close, Tovil",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2018-02-12 15:23:33,unknown,15.0,15.0,10093302869.0,Address Matched +545401311032010092917403245268302,Flat 11 Caroline Court,"8-28, Brunswick Street",,ME15 6NP,1225320868,B,B,89,90,Flat,Detached,2010-09-28,E07000110,E14000804,Kent,2010-09-29,new dwelling,89,90,80,77.0,0.9,13,0.9,48.0,38.0,170.0,170.0,90.0,90.0,69.13,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,,From main system,Very Good,Very Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m??K,Very Good,Very Good,"Room heaters, electric",,,(other premises above),,,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.47,,,NO DATA!,"Flat 11 Caroline Court, 8-28, Brunswick Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2010-09-29 17:40:32,,,,10014311831.0,Address Matched +366758550922009091912283997518821,"73, Fennel Close",,,ME16 0FG,2903567668,C,C,75,80,House,Mid-Terrace,2009-09-19,E07000110,E14000804,Kent,2009-09-19,marketed sale,72,77,184,149.0,3.0,31,2.4,79.0,52.0,408.0,359.0,125.0,101.0,65.2,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,50.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Roof room(s), insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.3,0.0,N,natural,"73, Fennel Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2009-09-19 12:28:39,owner-occupied,,,200003722406.0,Address Matched +103414429542014062012012842742408,"1, St. Margarets Close",,,ME16 8QN,3581827468,D,B,67,89,Bungalow,Detached,2014-06-20,E07000110,E14000804,Kent,2014-06-20,assessment for green deal,68,90,210,43.0,2.3,40,0.5,63.0,37.0,437.0,348.0,86.0,61.0,57.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,29.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 75 mm loft insulation",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 29% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"1, St. Margarets Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2014-06-20 12:01:28,owner-occupied,7.0,2.0,200003676049.0,Address Matched +5d9ecff6ec9b12f1345034deb7ec5428829edcefed7badc84d0cb18ce77b9abc,10 WATERSMEET CLOSE,,,ME15 6GU,10001333663,D,B,68,87,House,Mid-Terrace,2021-07-07,E07000110,E14000804,Kent,2021-07-08,rental,65,87,234,75.0,2.7,41,0.9,60.0,60.0,414.0,357.0,154.0,66.0,66.0,Unknown,Y,,,,,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,100.0,1.0,From main system,Average,Average,"Solid, limited insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Roof room(s), insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.4,0.0,N,natural,10 WATERSMEET CLOSE,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2021-07-08 09:06:35,Rented (social),22.0,,10022892191.0,Energy Assessor +946292475452013060719192495070101,"7, Dunster Terrace",Westmorland Road,,ME15 8NH,1108559078,C,B,74,88,House,Mid-Terrace,2013-06-07,E07000110,E14000700,Kent,2013-06-07,marketed sale,76,89,146,48.0,2.0,28,0.7,51.0,51.0,315.0,324.0,130.0,71.0,72.0,Single,Y,NODATA!,,,2109.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,86.0,0.0,From main system,Good,Good,"Suspended, limited insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 100mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and boiler energy manager",Good,Good,Low energy lighting in 86% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"7, Dunster Terrace, Westmorland Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1996-2002,2013-06-07 19:19:24,owner-occupied,7.0,6.0,200003685644.0,Address Matched +300908149412020071320353520900361,"96, Roman Way",Boughton Monchelsea,,ME17 4SH,3104903668,C,B,79,88,House,Detached,2020-07-13,E07000110,E14000700,Kent,2020-07-13,rental (private),78,87,125,63.0,2.5,22,1.3,88.0,88.0,417.0,418.0,106.0,67.0,115.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,2.0,6.0,6.0,100.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"96, Roman Way, Boughton Monchelsea",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2007 onwards,2020-07-13 20:35:35,rental (private),,,10022896622.0,Address Matched +267090760302009041621234066019668,"23a, Wallis Avenue",,,ME15 9JX,1317560668,B,B,81,82,Flat,Semi-Detached,2009-04-16,E07000110,E14000700,Kent,2009-04-16,rental (social),80,80,163,158.0,1.6,27,1.5,43.0,28.0,236.0,238.0,75.0,75.0,58.74,Single,Y,1st,Y,2.0,2106.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,50.0,0.0,From main system,Very Good,Very Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.29,0.0,N,natural,"23a, Wallis Avenue",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2009-04-16 21:23:40,rental (social),,,200003683161.0,Address Matched +943266679022013060311270969278647,"11, Reinden Grove",Downswood,,ME15 8TH,4629729078,D,B,59,88,Bungalow,Semi-Detached,2013-06-03,E07000110,E14000700,Kent,2013-06-03,marketed sale,60,91,290,41.0,2.6,55,0.4,58.0,29.0,492.0,340.0,77.0,47.0,47.0,Single,Y,NODATA!,,,2102.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"11, Reinden Grove, Downswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1991-1995,2013-06-03 11:27:09,owner-occupied,6.0,0.0,200003686337.0,Address Matched +995663219262013082410455433078367,"5, Turgis Close",Langley,,ME17 3HD,6327103178,E,B,50,88,House,Mid-Terrace,2013-08-23,E07000110,E14000700,Kent,2013-08-24,marketed sale,54,90,274,45.0,4.2,48,0.8,102.0,51.0,735.0,367.0,277.0,72.0,87.0,Single,Y,NODATA!,,,2601.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,1.0,0.0,0.0,"Electric immersion, standard tariff",Very Poor,Very Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Room heaters, electric",Very Poor,Very Poor,No thermostatic control of room temperature,Poor,Poor,No low energy lighting,Very Poor,Very Poor,electricity (not community),0.0,NO DATA!,,,0.0,,natural,"5, Turgis Close, Langley",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1976-1982,2013-08-24 10:45:54,owner-occupied,9.0,0.0,200003697651.0,Address Matched +1615146837832018031417122411978605,"2, Farnborough Close",,,ME16 8UE,3521686578,D,B,68,86,House,Semi-Detached,2018-03-14,E07000110,E14000804,Kent,2018-03-14,marketed sale,68,86,226,75.0,2.2,40,0.8,83.0,41.0,372.0,347.0,91.0,58.0,56.0,Unknown,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"2, Farnborough Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1976-1982,2018-03-14 17:12:24,owner-occupied,,,200003656081.0,Address Matched +5d9a77d7f46ffff4252e5590966dee1f46020c1ec5c0af04f5c4500e51b33b6d,170 Wallis Place,Hart Street,,ME16 8FE,8357088468,B,B,81,81,Flat,End-Terrace,2021-09-22,E07000110,E14000804,Kent,2021-09-22,marketed sale,87,87,113,113.0,0.8,20,0.8,42.0,42.0,163.0,163.0,72.0,72.0,42.0,Single,Y,02,N,,,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,100.0,0.0,From main system,Good,Good,(another dwelling below),,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,6.0,2.35,0.0,N,natural,"170 Wallis Place, Hart Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007-2011,2021-09-22 12:18:22,Owner-occupied,8.0,,10022900775.0,Energy Assessor +272920406612009042415463500210061,Mistletoe Cottage,Grove Lane,Hunton,ME15 0SE,166601668,E,E,41,50,House,Semi-Detached,2009-04-22,E07000110,E14000804,Kent,2009-04-24,rental (private),38,45,306,261.0,13.0,60,11.0,212.0,110.0,1725.0,1554.0,339.0,260.0,222.19,Single,N,NO DATA!,,,2106.0,65.0,double glazing installed before 2002,Normal,2.0,9.0,9.0,7.0,0.0,"From main system, no cylinderstat",Poor,Poor,"Suspended, no insulation (assumed)",,,Partial double glazing,Poor,Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, 75mm loft insulation",Average,Average,"Boiler and radiators, oil",Average,Average,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 7% of fixed outlets,Very Poor,Very Poor,oil - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.2,0.0,N,natural,"Mistletoe Cottage, Grove Lane, Hunton",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2009-04-24 15:46:35,rental (private),,,200003723280.0,Address Matched +5da3bbe054ddac7b343319a956d3cf93e0c3d253b7eca7cd915f8f84ed13dd30,19 Lower Fant Road,,,ME16 8DP,10001402123,D,C,57,80,House,Semi-Detached,2021-08-18,E07000110,E14000804,Kent,2021-08-20,marketed sale,49,76,320,134.0,4.4,56,1.9,65.0,65.0,749.0,519.0,88.0,62.0,77.0,Unknown,Y,,,,,100.0,"double glazing, unknown install date",Normal,1.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.4,0.0,N,natural,19 Lower Fant Road,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2021-08-20 09:05:51,Rented (social),28.0,,200003668353.0,Energy Assessor +155974e9342ad64433d00d538cc33f51d7b39bcbe300d0656f49bf741da554b7,1 Maxted Close,Staplehurst,,TN12 0PU,10001323029,C,B,76,85,House,Detached,2021-09-09,E07000110,E14000804,Kent,2021-09-09,rental,73,82,136,83.0,3.2,24,2.0,97.0,97.0,519.0,520.0,101.0,64.0,134.0,Single,Y,,,,,100.0,double glazing installed during or after 2002,Normal,1.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Suspended, insulated (assumed)",,,Fully double glazed,Good,Good,"Solid brick, as built, insulated (assumed)",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.42,0.0,N,natural,"1 Maxted Close, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 2007-2011,2021-09-09 14:43:55,Rented (private),17.0,,10014306543.0,Energy Assessor +283362949962019111509063221348551,Apartment 4 Bluecoats Yard,Knightrider Street,,ME15 6LD,5295471668,C,C,78,79,Flat,Mid-Terrace,2019-11-14,E07000110,E14000804,Kent,2019-11-15,rental (private),80,81,138,132.0,1.7,24,1.6,87.0,59.0,263.0,266.0,92.0,92.0,69.0,Single,Y,Ground,N,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,54.0,0.0,From main system,Good,Good,"Suspended, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 54% of fixed outlets,Good,Good,mains gas (not community),0.0,heated corridor,,,,N,natural,"Apartment 4 Bluecoats Yard, Knightrider Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2019-11-15 09:06:32,rental (private),,,10014307462.0,Address Matched +458558689262010032221285594528680,"201, Upper Fant Road",,,ME16 8BX,8934804768,E,C,52,69,House,End-Terrace,2010-03-22,E07000110,E14000804,Kent,2010-03-22,marketed sale,55,71,360,232.0,4.3,52,2.8,86.0,43.0,777.0,524.0,112.0,97.0,83.7,Single,Y,NO DATA!,,,2106.0,95.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,0.0,2.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Mostly double glazing,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, wood logs",,,"Pitched, 100mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.6,0.0,N,natural,"201, Upper Fant Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2010-03-22 21:28:55,owner-occupied,,,200003656127.0,Address Matched +1431348791712016041112365098060143,Flat 15,Concorde House,London Road,ME16 8QA,1317183478,D,D,62,62,Flat,Enclosed End-Terrace,2016-04-05,E07000110,E14000804,Kent,2016-04-11,rental (private),58,58,285,285.0,3.3,48,3.3,51.0,51.0,587.0,587.0,186.0,186.0,69.0,dual,N,1st,N,,2107.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,100.0,0.0,From main system,Poor,Poor,(another dwelling below),NO DATA!,,Fully double glazed,Good,Good,"System built, with internal insulation",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, electric",Very Poor,Poor,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,unheated corridor,17.84,2.5,,N,natural,"Flat 15, Concorde House, London Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2016-04-11 12:36:50,rental (private),,,, +452195369502018071710312875389008,"9, Oriel Grove",,,ME15 9WR,7501363768,C,B,77,89,House,Mid-Terrace,2018-05-10,E07000110,E14000700,Kent,2018-07-17,rental (social),77,88,137,58.0,2.3,24,1.0,76.0,76.0,351.0,354.0,118.0,69.0,93.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,86.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Very Good,Very Good,,,,"Pitched, 350 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 86% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"9, Oriel Grove",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2007 onwards,2018-07-17 10:31:28,rental (social),,,10014311535.0,Address Matched +1580228549262017102416344884978183,Flat 18,Chaucer House,25 Knightrider Street,ME15 6ND,8886434578,C,C,78,78,Flat,Detached,2017-10-23,E07000110,E14000804,Kent,2017-10-24,new dwelling,81,81,153,153.0,1.3,27,1.3,34.0,34.0,241.0,241.0,71.0,71.0,47.0,standard tariff,,ground floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.14 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.28 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.25 W/m-¦K,Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Flat 18, Chaucer House, 25 Knightrider Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2017-10-24 16:34:48,unknown,10.0,10.0,10093305651.0,Address Matched +16566791932011092721100077268000,"5, Bracken Hill",Walderslade Woods,,ME5 9QQ,9027052468,D,D,62,66,House,Detached,2011-09-27,E07000110,E14000700,Kent,2011-09-27,marketed sale,56,61,221,196.0,6.1,43,5.4,126.0,63.0,975.0,901.0,116.0,116.0,143.2,Single,Y,NODATA!,,,2103.0,100.0,double glazing installed before 2002,Normal,1.0,8.0,7.0,0.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Room thermostat only,Poor,Poor,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,2.3,0.0,,natural,"5, Bracken Hill, Walderslade Woods",Maidstone,Faversham and Mid Kent,CHATHAM,England and Wales: 1983-1990,2011-09-27 21:10:00,owner-occupied,25.0,0.0,200003709064.0,Address Matched +1406607759222016012815242382188666,"21, Rede Wood Road",,,ME16 9HR,6882502478,E,C,49,77,Bungalow,Detached,2016-01-28,E07000110,E14000804,Kent,2016-01-28,marketed sale,42,71,364,152.0,5.8,64,2.5,101.0,58.0,930.0,681.0,265.0,76.0,90.0,Single,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",More Than Typical,1.0,6.0,6.0,25.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 270 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 25% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"21, Rede Wood Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2016-01-28 15:24:23,owner-occupied,,,200003667454.0,Address Matched +1580773140332017100919595354078195,Cedars Thermal Ltd,"Cedars, Station Road",Staplehurst,TN12 0PZ,4534144578,E,C,54,70,Bungalow,Detached,2017-10-09,E07000110,E14000804,Kent,2017-10-09,marketed sale,45,61,310,199.0,6.6,55,4.3,145.0,73.0,1103.0,978.0,154.0,76.0,121.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,2.0,4.0,4.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"Cedars Thermal Ltd, Cedars, Station Road, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1950-1966,2017-10-09 19:59:53,owner-occupied,,,200003726694.0,Address Matched +1138494005432014051111512934078206,"33, St. Lukes Road",,,ME14 5AS,604213278,F,C,37,77,House,Semi-Detached,2014-05-01,E07000110,E14000804,Kent,2014-05-11,marketed sale,32,74,353,112.0,12.0,68,3.8,154.0,78.0,2128.0,913.0,160.0,82.0,170.0,Single,Y,NODATA!,,,2104.0,0.0,not defined,Normal,0.0,8.0,8.0,0.0,5.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"33, St. Lukes Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2014-05-11 11:51:29,owner-occupied,49.0,0.0,200003705940.0,Address Matched +179259074212008110320223507289158,Flat 5,"46, Melville Road",,ME15 7UR,1812473568,D,D,61,62,Flat,Detached,2008-10-27,E07000110,E14000804,Kent,2008-11-03,rental (private),52,52,550,544.0,2.7,92,2.6,23.0,13.0,345.0,347.0,21.0,21.0,28.9,Single,Y,1st,Y,2.0,2305.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,20.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, electric",,,"Roof room(s), ceiling insulated",Very Poor,Very Poor,Community scheme,Good,Good,"Flat rate charging, programmer and TRVs",Average,Average,Low energy lighting in 20% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,heated corridor,,2.6,0.0,N,natural,"Flat 5, 46, Melville Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2008-11-03 20:22:35,rental (private),,,200003696707.0,Address Matched +452277272352010031512373096900875,45 St. Catherine's Road,,,ME15 9WP,8587263768,B,B,87,87,House,Mid-Terrace,2010-03-15,E07000110,E14000700,Kent,2010-03-15,new dwelling,88,88,89,89.0,1.1,14,1.1,54.0,54.0,219.0,219.0,53.0,53.0,77.32,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,,From main system,Very Good,Very Good,Average thermal transmittance 0.18 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.23 W/m?K,Very Good,Very Good,"Room heaters, electric",,,Average thermal transmittance 0.10 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 83% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.31,,,NO DATA!,45 St. Catherine's Road,Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2010-03-15 12:37:30,,,,10014311709.0,Address Matched +5de658ab92697045349cb451974a2932f1fc4d8d2c5982ca75f8e9c901a413e3,Little Grigg Barn,Grigg Lane,Headcorn,TN27 9LT,10001656539,D,B,65,87,House,Detached,2021-09-15,E07000110,E14000700,Kent,2021-09-17,marketed sale,61,82,138,34.0,6.6,33,2.7,124.0,124.0,890.0,779.0,153.0,97.0,204.0,Single,N,,,,,100.0,double glazing installed before 2002,Normal,0.0,8.0,8.0,100.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Timber frame, as built, insulated (assumed)",Good,Good,"Room heaters, wood logs",,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, oil",Average,Average,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,oil (not community),0.0,,,1.97,0.0,N,natural,"Little Grigg Barn, Grigg Lane, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,England and Wales: 1991-1995,2021-09-17 11:13:36,Owner-occupied,22.0,,200003702107.0,Energy Assessor +5de92f5189d48dbbae6e81ab581fbb0de0f489c11f440fba48033508b3963c9f,42 WALLIS PLACE,HART STREET,,ME16 8FB,4365088468,C,C,79,80,Flat,Mid-Terrace,2021-07-20,E07000110,E14000804,Kent,2021-07-20,rental,81,81,117,114.0,1.7,21,1.6,94.0,74.0,235.0,237.0,118.0,118.0,81.0,Single,Y,04,Y,,,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,73.0,0.0,From main system,Good,Good,(another dwelling below),,,Fully double glazed,Good,Good,"System built, as built, insulated (assumed)",Good,Good,,,,"Flat, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 73% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,no corridor,,2.4,0.0,N,natural,"42 WALLIS PLACE, HART STREET",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007-2011,2021-07-20 09:18:39,Rented (private),11.0,,10022900641.0,Energy Assessor +1327278149842016020322055138660528,"29, Westminster Square",,,ME16 0WQ,3839346378,C,B,76,88,House,Mid-Terrace,2016-02-02,E07000110,E14000804,Kent,2016-02-03,marketed sale,74,87,137,56.0,2.7,24,1.2,92.0,72.0,444.0,409.0,143.0,76.0,114.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,6.0,6.0,71.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 71% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"29, Westminster Square",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2016-02-03 22:05:51,owner-occupied,,,10022895579.0,Address Matched +806389519722012062609324949098159,Meadow View,Roundwell,Bearsted,ME14 4HJ,5494169968,B,B,84,84,House,Detached,2011-08-31,E07000110,E14000700,Kent,2012-06-26,new dwelling,85,85,78,78.0,3.0,13,3.0,87.0,87.0,566.0,566.0,68.0,68.0,221.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,40.0,,From main system,Good,Good,Average thermal transmittance 0.11 W/mA?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.20 W/mA?K,Very Good,Very Good,"Room heaters, wood logs",,,Average thermal transmittance 0.11 W/mA?K,Very Good,Very Good,"Boiler and underfloor heating, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.45,,,NO DATA!,"Meadow View, Roundwell, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2012-06-26 09:32:49,,40.0,40.0,, +5de9a92d3ea6948f5482d3cd66ff937d272bcff9170f0e552a17a7a6351aceef,33 Pearwood Road,,,ME16 9FY,10001472931,B,B,86,87,House,Detached,2021-09-23,E07000110,E14000804,Kent,2021-09-23,new dwelling,86,88,73,61.0,1.7,13,1.4,91.0,91.0,306.0,307.0,98.0,56.0,133.0,standard tariff,,,N,,,100.0,,,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.19 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.15 W/m-¦K,Good,Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.32,,,,33 Pearwood Road,Maidstone,Maidstone and The Weald,ALLINGTON,2020,2021-09-23 11:03:13,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,36.0,,10094440316.0,Energy Assessor +1526140577332017030913272296078104,"3, Friars Court",,,ME15 8GF,7406150578,B,B,85,86,House,Mid-Terrace,2017-03-09,E07000110,E14000700,Kent,2017-03-09,new dwelling,86,89,83,68.0,1.3,15,1.1,71.0,71.0,252.0,254.0,102.0,54.0,89.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"3, Friars Court",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2017-03-09 13:27:22,unknown,1.0,1.0,10091193553.0,Address Matched +197914640802008121111444954589608,"20, Buckland Rise",,,ME16 0YN,6889645568,B,B,85,87,Flat,End-Terrace,2008-12-10,E07000110,E14000804,Kent,2008-12-11,marketed sale,85,86,119,110.0,1.2,19,1.1,52.0,30.0,162.0,164.0,67.0,67.0,60.46,Single,Y,1st,N,3.0,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,25.0,0.0,From main system,Very Good,Very Good,(other premises below),,,Fully double glazed,Good,Good,"Timber frame, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 25% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,1.0,unheated corridor,6.38,2.39,0.0,N,natural,"20, Buckland Rise",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2008-12-11 11:44:49,owner-occupied,,,10014308215.0,Address Matched +238883609032010012517401556268104,"4, St. Davids Gate",,,ME16 9EP,486128568,D,D,66,68,House,Detached,2010-01-25,E07000110,E14000804,Kent,2010-01-25,marketed sale,66,67,199,190.0,5.3,32,5.1,174.0,87.0,742.0,762.0,159.0,159.0,162.4,Single,Y,NO DATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,8.0,8.0,0.0,0.0,From main system,Good,Good,"Solid, limited insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,0.0,N,natural,"4, St. Davids Gate",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2010-01-25 17:40:15,owner-occupied,,,10022895928.0,Address Matched +1700260099442019032114300367212398,"2b, Woodville Road",,,ME15 7BS,3452892678,B,A,83,94,House,Detached,2019-03-21,E07000110,E14000804,Kent,2019-03-21,new dwelling,84,95,96,22.0,1.6,17,0.4,66.0,66.0,248.0,248.0,99.0,64.0,94.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.18 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.08 W/m-¦K,Very Good,Very Good,"Boiler and underfloor heating, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"2b, Woodville Road",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2019-03-21 14:30:03,unknown,11.0,11.0,10093306965.0,Address Matched +48039342832008121709400626968497,Flat 8,Broadway Heights,23 The Broadway,ME16 8GJ,4786465568,B,B,82,83,Flat,Detached,2008-12-17,E07000110,E14000804,Kent,2008-12-17,new dwelling,83,84,155,150.0,1.1,0,1.1,30.0,20.0,185.0,186.0,58.0,58.0,0.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,3.0,,SAP05:Hot-Water,,,SAP05:Floor,,,SAP05:Windows,,,SAP05:Walls,,,SAP05:Secondary-Heating,,,SAP05:Roof,,,SAP05:Main-Heating,,,SAP05:Main-Heating-Controls,,,SAP05:Lighting,,,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,,,,NO DATA!,"Flat 8, Broadway Heights, 23 The Broadway",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2008-12-17 09:40:06,,6.0,3.0,10022896832.0,Address Matched +1081993199432014013115073255778207,"35, Murrain Drive",Downswood,,ME15 8XJ,9775219178,D,B,62,87,House,End-Terrace,2014-01-31,E07000110,E14000700,Kent,2014-01-31,marketed sale,61,89,255,51.0,2.7,49,0.6,45.0,45.0,473.0,346.0,149.0,71.0,56.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,1.0,4.0,4.0,75.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"35, Murrain Drive, Downswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1991-1995,2014-01-31 15:07:32,owner-occupied,8.0,6.0,200003691572.0,Address Matched +5e05e59b24d69c206e04ed371c4bba52236ea69fe6b0017e7a90a998e9a1b7ce,46B PERRY STREET,,,ME14 2RP,10001514757,E,D,54,59,Flat,Mid-Terrace,2021-06-29,E07000110,E14000804,Kent,2021-07-01,ECO assessment,51,58,359,310.0,3.5,63,3.0,63.0,63.0,711.0,609.0,86.0,86.0,56.0,Single,Y,01,N,,,100.0,"double glazing, unknown install date",Normal,1.0,2.0,2.0,100.0,0.0,From main system,Good,Good,(another dwelling below),,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, electric",,,"Pitched, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,no corridor,,2.8,0.0,N,natural,46B PERRY STREET,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2021-07-01 18:46:23,Rented (social),7.0,,200003669915.0,Energy Assessor +155276630832008100417302101068995,"54, West Street",Harrietsham,,ME17 1HU,3591971568,E,E,41,52,House,End-Terrace,2008-10-03,E07000110,E14000700,Kent,2008-10-04,rental (private),40,51,613,479.0,4.5,95,3.4,29.0,21.0,611.0,505.0,105.0,80.0,46.92,Single,Y,NO DATA!,,,2104.0,0.0,single glazing,Normal,0.0,2.0,2.0,60.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Granite or whinstone, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Poor,Poor,Low energy lighting in 60% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.3,0.0,N,natural,"54, West Street, Harrietsham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2008-10-04 17:30:21,rental (private),,,200003702522.0,Address Matched +61502730242009022516455253812658,37 Stafford Gardens,,,ME15 6GZ,2266738568,C,C,71,73,Flat,Mid-Terrace,2009-02-25,E07000110,E14000804,Kent,2009-02-25,new dwelling,79,80,170,163.0,1.7,26,1.6,53.0,32.0,181.0,183.0,236.0,236.0,63.03,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,3.0,,"Electric immersion, standard tariff",,,(other premises below),,,Fully double glazed,Good,Good,Average thermal transmittance = 0.30 W/m?K,Good,Good,,,,Average thermal transmittance = 0.14 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Very Good,Very Good,Time and temperature zone control,Good,Good,Low energy lighting in 38% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,,,NO DATA!,37 Stafford Gardens,Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2009-02-25 16:45:52,,8.0,3.0,10022895099.0,Address Matched +433905089252010020923321193000079,"23a, Northumberland Road",,,ME15 7LE,907932768,C,B,78,81,Flat,Semi-Detached,2010-02-09,E07000110,E14000700,Kent,2010-02-09,rental (social),76,79,190,162.0,1.9,32,1.6,35.0,35.0,317.0,275.0,87.0,82.0,60.09,dual,Y,1st,Y,2.0,2107.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Very Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Very Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.44,0.0,N,natural,"23a, Northumberland Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2010-02-09 23:32:11,rental (social),,,200003712965.0,Address Matched +1446346579222018062022405784308448,"4, Goodwin Drive",Penenden Heath,,ME14 2DL,4888784478,D,B,58,87,House,Semi-Detached,2018-06-20,E07000110,E14000804,Kent,2018-06-20,marketed sale,51,85,306,74.0,4.2,54,1.1,73.0,55.0,649.0,379.0,183.0,70.0,78.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,67.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, partial insulation (assumed)",Average,Average,"Room heaters, mains gas",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 67% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"4, Goodwin Drive, Penenden Heath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1976-1982,2018-06-20 22:40:57,owner-occupied,,,200003706354.0,Address Matched +590969649922011021020341083208729,"126, Wheeler Street",,,ME14 2UL,2868473868,D,C,66,72,House,Mid-Terrace,2011-02-10,E07000110,E14000804,Kent,2011-02-10,rental (private),61,67,287,238.0,3.4,48,2.8,65.0,38.0,552.0,486.0,110.0,95.0,71.32,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,4.0,4.0,30.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 30% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.56,0.0,N,natural,"126, Wheeler Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2011-02-10 20:34:10,rental (private),,,200003703513.0,Address Matched +902194319262013032117332436398257,"1a, Tovil Hill",,,ME15 6QS,5308146078,D,B,68,91,House,Mid-Terrace,2013-03-21,E07000110,E14000804,Kent,2013-03-21,rental (private),69,94,218,20.0,2.0,42,0.2,40.0,29.0,374.0,290.0,72.0,49.0,47.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,62.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 62% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"1a, Tovil Hill",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2013-03-21 17:33:24,rental (private),8.0,5.0,200003719509.0,Address Matched +1453150139702016061321115643569378,"112, Cambridge Crescent",,,ME15 7NQ,6708535478,D,B,60,82,House,Semi-Detached,2016-06-13,E07000110,E14000700,Kent,2016-06-13,marketed sale,53,78,277,119.0,5.0,49,2.2,98.0,64.0,900.0,614.0,147.0,87.0,103.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,2.0,6.0,5.0,46.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 46% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,2.42,,N,natural,"112, Cambridge Crescent",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2016-06-13 21:11:56,rental (private),,,200003712483.0,Address Matched +355016380602009083107073562612358,"73, Postley Road",,,ME15 6TP,9613186668,C,C,74,78,House,Semi-Detached,2009-08-25,E07000110,E14000804,Kent,2009-08-31,rental (private),71,75,210,179.0,2.7,35,2.3,49.0,41.0,369.0,335.0,129.0,109.0,76.02,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,5.0,5.0,80.0,0.0,From main system,Good,Good,"Solid, limited insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.36,0.0,N,natural,"73, Postley Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2009-08-31 07:07:35,rental (private),,,200003686801.0,Address Matched +1289486879602015030412100035352188,"15, Allington Way",,,ME16 0HJ,5614673378,D,B,61,81,House,Detached,2015-02-28,E07000110,E14000804,Kent,2015-03-04,FiT application,58,80,239,106.0,5.0,38,2.2,71.0,71.0,1024.0,672.0,138.0,87.0,130.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,6.0,6.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, wood logs",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"15, Allington Way",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2015-03-04 12:10:00,owner-occupied,,,200003706721.0,Address Matched +910245299502013040916181104670618,Wildwinds,Pett Road,Stockbury,ME9 7RL,535896078,F,C,38,72,House,Detached,2013-04-09,E07000110,E14000700,Kent,2013-04-09,assessment for green deal,26,56,291,127.0,17.0,76,8.1,140.0,87.0,2848.0,1527.0,219.0,117.0,229.0,Single,N,NODATA!,,,2102.0,100.0,double glazing installed before 2002,Normal,1.0,10.0,10.0,39.0,3.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, coal",,,"Pitched, 25 mm loft insulation",Poor,Poor,"Boiler and radiators, oil",Average,Average,"Programmer, no room thermostat",Very Poor,Very Poor,Low energy lighting in 39% of fixed outlets,Average,Average,oil (not community),0.0,NO DATA!,,,0.0,,natural,"Wildwinds, Pett Road, Stockbury",Maidstone,Faversham and Mid Kent,SITTINGBOURNE,England and Wales: 1950-1966,2013-04-09 16:18:11,owner-occupied,23.0,9.0,10014309408.0,Address Matched +434695751852020031107570124900176,2 Tyland Cottages,Tyland Lane,Sandling,ME14 3BH,1677142768,D,B,66,83,House,Mid-Terrace,2020-03-10,E07000110,E14000700,Kent,2020-03-11,marketed sale,67,84,217,95.0,3.1,35,1.3,127.0,75.0,576.0,481.0,100.0,70.0,87.0,dual,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,5.0,5.0,30.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, wood logs",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 30% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"2 Tyland Cottages, Tyland Lane, Sandling",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1900-1929,2020-03-11 07:57:01,owner-occupied,,,200003672754.0,Address Matched +914971239142013042217434504772628,"22, Henley Fields",Weavering,,ME14 5UY,139037078,D,C,64,77,House,Detached,2013-04-22,E07000110,E14000700,Kent,2013-04-22,marketed sale,60,74,191,115.0,5.1,37,3.1,99.0,66.0,837.0,727.0,120.0,81.0,139.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,1.0,8.0,8.0,50.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, mains gas",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"22, Henley Fields, Weavering",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2013-04-22 17:43:45,owner-occupied,16.0,8.0,200003689726.0,Address Matched +1726918061712020061011145829900661,"9, Sendles Field",Otham,,ME15 8YR,6155194678,B,A,85,95,House,Semi-Detached,2020-06-10,E07000110,E14000700,Kent,2020-06-10,new dwelling,87,97,80,6.0,1.3,14,0.1,77.0,77.0,226.0,226.0,77.0,47.0,94.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.10 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.19 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"9, Sendles Field, Otham",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2020-06-10 11:14:58,unknown,10.0,10.0,10094440610.0,Address Matched +1558225449312017070720514797030954,Hill Reach,South Green,,ME9 7RR,9468972578,E,C,42,79,House,Detached,2017-07-07,E07000110,E14000700,Kent,2017-07-07,marketed sale,39,75,243,75.0,8.7,58,3.0,90.0,90.0,1108.0,443.0,171.0,139.0,149.0,dual,N,NODATA!,,,2107.0,100.0,double glazing installed during or after 2002,Normal,1.0,6.0,6.0,100.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, oil",Average,Average,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,oil (not community),0.0,NO DATA!,,,,N,natural,"Hill Reach, South Green",Maidstone,Faversham and Mid Kent,SITTINGBOURNE,England and Wales: before 1900,2017-07-07 20:51:47,owner-occupied,,,10014307912.0,Address Matched +1814156115312020073118282322200970,Flat 94 Scotney Gardens,St. Peters Street,,ME16 0GR,9004521778,D,C,61,79,Flat,Mid-Terrace,2020-07-29,E07000110,E14000804,Kent,2020-07-31,marketed sale,65,65,225,228.0,2.7,38,2.7,89.0,73.0,526.0,291.0,364.0,186.0,71.0,Single,N,4th,Y,,2602.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,64.0,0.0,"Electric immersion, standard tariff",Very Poor,Poor,(another dwelling below),NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Room heaters, electric",Very Poor,Poor,Appliance thermostats,Good,Good,Low energy lighting in 64% of fixed outlets,Good,Good,electricity (not community),0.0,no corridor,,,,N,natural,"Flat 94 Scotney Gardens, St. Peters Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2020-07-31 18:28:23,owner-occupied,,,10022893462.0,Address Matched +517450529942010072310300078802628,"14, Staple Drive",Staplehurst,,TN12 0SH,914428768,D,C,63,71,House,Detached,2010-07-22,E07000110,E14000804,Kent,2010-07-23,marketed sale,58,67,283,225.0,4.1,47,3.3,92.0,46.0,589.0,507.0,151.0,121.0,87.66,Single,Y,NO DATA!,,,2107.0,100.0,double glazing installed before 2002,Normal,1.0,5.0,5.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.34,0.0,N,natural,"14, Staple Drive, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1967-1975,2010-07-23 10:30:00,owner-occupied,,,200003678679.0,Address Matched +1183023541212014073011595092740924,Flat 11 Woodville House,"74, York Road",,ME15 7QY,9486126278,B,B,82,82,Flat,End-Terrace,2014-07-30,E07000110,E14000700,Kent,2014-07-30,new dwelling,86,86,101,101.0,1.1,18,1.1,44.0,44.0,224.0,224.0,75.0,75.0,62.0,standard tariff,,top floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.21 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.10 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Flat 11 Woodville House, 74, York Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2014-07-30 11:59:50,unknown,12.0,12.0,10014315455.0,Address Matched +1323024557712015051923121091950233,"11, Woolley Road",,,ME15 8PY,2384716378,D,C,55,78,House,Semi-Detached,2015-05-19,E07000110,E14000700,Kent,2015-05-19,marketed sale,47,73,326,144.0,5.7,58,2.6,70.0,70.0,1007.0,682.0,162.0,76.0,99.0,Single,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,1.0,6.0,6.0,83.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 83% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"11, Woolley Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2015-05-19 23:12:10,owner-occupied,,,200003684999.0,Address Matched +1548765045332017060108241528778102,"18, Oxford Road",,,ME15 8DG,4248112578,D,B,62,87,House,Semi-Detached,2017-05-31,E07000110,E14000700,Kent,2017-06-01,marketed sale,55,85,277,80.0,4.1,49,1.2,56.0,56.0,669.0,421.0,195.0,74.0,84.0,Single,Y,NODATA!,,,2106.0,0.0,not defined,Normal,0.0,5.0,5.0,100.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Single glazed,Very Poor,Very Poor,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"18, Oxford Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2017-06-01 08:24:15,owner-occupied,,,200003716097.0,Address Matched +669595716152011082322041795290583,"56, River Bank Close",,,ME15 7RZ,5343659868,C,B,79,82,Flat,Semi-Detached,2011-08-23,E07000110,E14000804,Kent,2011-08-23,rental (private),82,85,116,96.0,1.5,22,1.3,62.0,43.0,203.0,194.0,135.0,112.0,70.15,Single,Y,3rd,N,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,55.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 55% of fixed outlets,Good,Good,mains gas (not community),0.0,heated corridor,,2.32,0.0,,natural,"56, River Bank Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2011-08-23 22:04:17,rental (private),11.0,6.0,200003725908.0,Address Matched +452164829962010051316230103278070,30 St. Catherine's Road,,,ME15 9WP,7097263768,B,B,85,85,House,End-Terrace,2010-05-13,E07000110,E14000700,Kent,2010-05-13,new dwelling,86,86,100,100.0,1.3,16,1.3,54.0,54.0,245.0,245.0,52.0,52.0,77.32,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,,From main system,Very Good,Very Good,Average thermal transmittance 0.18 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.23 W/m?K,Very Good,Very Good,"Room heaters, electric",,,Average thermal transmittance 0.10 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 83% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.31,,,NO DATA!,30 St. Catherine's Road,Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2010-05-13 16:23:01,,,,10014311736.0,Address Matched +1299875459002015032509555034452148,"2, Saxon Mews",,,ME16 0FU,2033054378,B,B,87,87,House,Semi-Detached,2015-03-24,E07000110,E14000804,Kent,2015-03-25,new dwelling,89,89,64,64.0,1.1,13,1.1,65.0,65.0,295.0,295.0,101.0,101.0,91.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.12 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.19 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"2, Saxon Mews",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2015-03-25 09:55:50,unknown,30.0,30.0,10091193795.0,Address Matched +1669491976112018101001495697089169,"14, Pippin Close",Coxheath,,ME17 4DS,1947670678,D,B,64,88,House,Semi-Detached,2018-10-09,E07000110,E14000804,Kent,2018-10-10,marketed sale,60,88,282,70.0,2.9,50,0.8,66.0,49.0,442.0,336.0,159.0,64.0,59.0,dual,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,67.0,0.0,From main system,Average,Average,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 67% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"14, Pippin Close, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2018-10-10 01:49:56,owner-occupied,,,200003671257.0,Address Matched +1691171639842019011716524668219038,"51, Westwood Road",,,ME15 6BG,9830132678,D,C,61,77,House,Mid-Terrace,2019-01-17,E07000110,E14000804,Kent,2019-01-17,marketed sale,55,72,288,165.0,4.0,51,2.3,107.0,58.0,629.0,595.0,129.0,77.0,78.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,14.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 14% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"51, Westwood Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2019-01-17 16:52:46,owner-occupied,,,200003676172.0,Address Matched +5e5addab97157b6747c6c1a41eb5900802dd2744e69fdc2c3f71d9f56beda1d9,38 ALLEN STREET,,,ME14 5AG,10001486149,E,C,53,79,House,Mid-Terrace,2021-08-06,E07000110,E14000804,Kent,2021-08-06,marketed sale,55,81,306,121.0,4.3,45,1.6,84.0,84.0,979.0,609.0,85.0,58.0,96.0,dual,Y,,,,,100.0,"double glazing, unknown install date",Normal,2.0,6.0,6.0,100.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.2,0.0,N,natural,38 ALLEN STREET,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2021-08-06 13:07:10,Owner-occupied,10.0,,200003704797.0,Energy Assessor +1392832399062015120414212531848415,"21, Bridger Way",,,ME17 3FE,1367901478,B,B,83,83,House,Detached,2015-12-04,E07000110,E14000700,Kent,2015-12-04,new dwelling,84,84,90,90.0,1.8,16,1.8,68.0,68.0,327.0,327.0,91.0,91.0,113.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.26 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"21, Bridger Way",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2015-12-04 14:21:25,unknown,1.0,1.0,10091194051.0,Address Matched +1619050519802018032720594457782538,"9, Charlesford Avenue",Kingswood,,ME17 3PE,8897217578,E,B,53,81,House,Detached,2018-03-27,E07000110,E14000700,Kent,2018-03-27,marketed sale,45,78,325,114.0,6.3,59,2.3,106.0,69.0,1071.0,600.0,152.0,74.0,108.0,Single,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,47.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 47% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"9, Charlesford Avenue, Kingswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2018-03-27 20:59:44,owner-occupied,,,200003700348.0,Address Matched +867224199602019080801421003310738,"8, Muir Road",,,ME15 6PX,2660393078,C,B,72,85,House,End-Terrace,2019-08-07,E07000110,E14000804,Kent,2019-08-08,marketed sale,68,83,183,89.0,3.4,32,1.7,86.0,86.0,551.0,471.0,118.0,71.0,104.0,Single,Y,NODATA!,,,2107.0,100.0,double glazing installed before 2002,Normal,3.0,4.0,4.0,90.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 90% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"8, Muir Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2019-08-08 01:42:10,owner-occupied,,,10014308704.0,Address Matched +96181999262011092316270796378149,"19, Brenchley Road",,,ME15 6UH,4927986468,D,C,68,73,House,End-Terrace,2011-09-23,E07000110,E14000804,Kent,2011-09-23,marketed sale,67,73,200,165.0,3.1,38,2.5,65.0,43.0,496.0,438.0,103.0,85.0,80.18,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,50.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,2.41,0.0,,natural,"19, Brenchley Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2011-09-23 16:27:07,owner-occupied,10.0,5.0,200003665057.0,Address Matched +1233652989702014111918125025949908,"60, Oxford Road",,,ME15 8DJ,1763589278,D,C,60,71,House,Semi-Detached,2014-11-10,E07000110,E14000700,Kent,2014-11-19,marketed sale,57,69,217,148.0,4.6,41,3.2,69.0,69.0,963.0,905.0,107.0,76.0,112.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,5.0,5.0,92.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"System built, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, electric",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 92% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"60, Oxford Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2014-11-19 18:12:50,owner-occupied,12.0,11.0,200003685655.0,Address Matched +837598251232012092009352764978201,"2c, Mote Road",,,ME15 6EP,5194281078,C,C,71,78,Flat,Mid-Terrace,2012-09-19,E07000110,E14000804,Kent,2012-09-20,rental (private),75,84,208,136.0,1.4,40,0.9,24.0,24.0,286.0,220.0,68.0,50.0,35.0,dual,Y,1st,Y,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,2.0,2.0,100.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,no corridor,,,0.0,,natural,"2c, Mote Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2012-09-20 09:35:27,rental (private),6.0,6.0,10014309940.0,Address Matched +33621814412009032618070301210249,"23, Larchwood Close",,,ME5 8XB,2947413468,D,C,58,78,House,End-Terrace,2009-03-26,E07000110,E14000700,Kent,2009-03-26,rental (private),52,75,361,187.0,4.2,60,2.2,65.0,33.0,519.0,300.0,157.0,100.0,69.12,Single,Y,NO DATA!,,,2102.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,0.0,0.0,"From main system, no cylinderstat",Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.32,0.0,N,natural,"23, Larchwood Close",Maidstone,Faversham and Mid Kent,CHATHAM,England and Wales: 1967-1975,2009-03-26 18:07:03,rental (private),,,200003676316.0,Address Matched +172802010942008102509114453382848,"6, Buckland Rise",,,ME16 0YN,962513568,B,B,86,86,Flat,Mid-Terrace,2008-10-24,E07000110,E14000804,Kent,2008-10-25,rental (private),85,85,116,116.0,1.1,19,1.1,30.0,30.0,162.0,162.0,66.0,66.0,59.69,Single,Y,1st,N,3.0,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,From main system,Very Good,Very Good,(other premises below),,,Fully double glazed,Good,Good,"System built, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,unheated corridor,6.8,2.36,0.0,N,natural,"6, Buckland Rise",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2008-10-25 09:11:44,rental (private),,,10014308201.0,Address Matched +572043019042010120619075180200768,"2, Bargrove Road",,,ME14 5RR,6068812868,C,C,71,76,House,End-Terrace,2010-12-06,E07000110,E14000804,Kent,2010-12-06,marketed sale,67,73,266,219.0,2.4,44,2.0,51.0,32.0,400.0,352.0,91.0,80.0,64.96,dual,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,43.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 43% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.38,0.0,N,natural,"2, Bargrove Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2010-12-06 19:07:51,owner-occupied,,,200003672445.0,Address Matched +1335617555552015062317550490250237,12 Carrie House,Lesley Place,Buckland Hill,ME16 0UD,2702507378,C,B,80,81,Flat,Enclosed Mid-Terrace,2015-06-23,E07000110,E14000804,Kent,2015-06-23,rental (private),70,72,324,304.0,1.5,55,1.4,30.0,30.0,106.0,87.0,124.0,124.0,28.0,Unknown,N,3rd,N,,2401.0,100.0,double glazing installed before 2002,Normal,0.0,1.0,1.0,75.0,0.0,"Electric immersion, off-peak",Average,Poor,(another dwelling below),NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,Portable electric heaters (assumed),,,(another dwelling above),,,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,electricity (not community),0.0,unheated corridor,6.4,,,N,natural,"12 Carrie House, Lesley Place, Buckland Hill",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2015-06-23 17:55:04,rental (private),,,200003721299.0,Address Matched +223050140902009020518135652710558,"51, Hardy Street",,,ME14 2SH,4971947568,E,E,39,41,Maisonette,End-Terrace,2009-02-05,E07000110,E14000804,Kent,2009-02-05,rental (private),44,45,463,455.0,5.9,65,5.7,91.0,45.0,982.0,994.0,99.0,99.0,89.64,Single,Y,1st,Y,3.0,2104.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,0.0,3.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Poor,Poor,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.6,0.0,N,natural,"51, Hardy Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2009-02-05 18:13:56,rental (private),,,200003702717.0,Address Matched +1577538879262017092607560904368013,"8, Campion Way",Marden,,TN12 9GF,1020714578,B,A,83,96,House,Semi-Detached,2017-09-26,E07000110,E14000804,Kent,2017-09-26,new dwelling,85,98,95,-1.0,1.2,17,0.0,51.0,51.0,206.0,206.0,97.0,53.0,75.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.10 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.09 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"8, Campion Way, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,NO DATA!,2017-09-26 07:56:09,owner-occupied,45.0,45.0,10093305249.0,Address Matched +1716888782222020052617021404768040,Flat 18 Guinevere Point,Waterhouse Avenue,,ME14 2FJ,4018814678,B,B,86,86,Flat,Mid-Terrace,2020-05-26,E07000110,E14000804,Kent,2020-05-26,new dwelling,90,90,65,65.0,0.8,11,0.8,62.0,62.0,150.0,150.0,70.0,70.0,73.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.17 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Flat 18 Guinevere Point, Waterhouse Avenue",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2020-05-26 17:02:14,unknown,10.0,10.0,10094440126.0,Address Matched +1600646089002018011515202755560798,"23, Tolhurst Way",Lenham,,ME17 2BY,8054185578,B,A,84,95,House,Mid-Terrace,2016-08-01,E07000110,E14000700,Kent,2018-01-15,new dwelling,86,97,85,7.0,1.3,15,0.1,64.0,64.0,206.0,206.0,100.0,64.0,89.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.12 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.17 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"23, Tolhurst Way, Lenham",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2018-01-15 15:20:27,unknown,9.0,9.0,10093303693.0,Address Matched +1543806868252017051523331897930757,"8, Colyn Drive",,,ME15 8FZ,7722871578,B,A,82,94,House,Semi-Detached,2017-05-15,E07000110,E14000700,Kent,2017-05-15,new dwelling,84,96,98,16.0,1.5,17,0.3,60.0,60.0,253.0,255.0,102.0,54.0,88.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"8, Colyn Drive",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2017-05-15 23:33:18,unknown,1.0,1.0,10091193608.0,Address Matched +398189162512009111716325008919964,"46, Oxford Gardens",,,ME15 8FJ,9479289668,C,C,75,75,House,Mid-Terrace,2009-11-17,E07000110,E14000700,Kent,2009-11-17,new dwelling,82,82,138,138.0,1.7,21,1.7,50.0,50.0,225.0,225.0,167.0,167.0,80.0,standard tariff,,NO DATA!,,,2207.0,,NO DATA!,NO DATA!,,,,4.0,0.0,From main system,Poor,Good,Average thermal transmittance 0.18 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.28 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.12 W/m?K,Very Good,Very Good,"Air source heat pump, radiators, electric",Poor,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",0.0,NO DATA!,,2.4,,,NO DATA!,"46, Oxford Gardens",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2009-11-17 16:32:50,,5.0,4.0,10014308985.0,Address Matched +761738279962012031520181376858122,"7, South Bank",Staplehurst,,TN12 0BZ,2732746968,D,C,68,71,House,Semi-Detached,2012-03-15,E07000110,E14000804,Kent,2012-03-15,marketed sale,69,73,189,168.0,3.5,33,3.1,102.0,54.0,594.0,567.0,122.0,111.0,105.94,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,2.0,6.0,5.0,12.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, wood logs",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 12% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,2.25,0.0,,natural,"7, South Bank, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1930-1949,2012-03-15 20:18:13,owner-occupied,17.0,2.0,200003677047.0,Address Matched +596859752932011022800184881268303,10 Swan Apartments,Wallis Avenue,,ME15 9JL,5351324868,D,D,56,67,Flat,Semi-Detached,2011-02-28,E07000110,E14000700,Kent,2011-02-28,rental (social),49,61,428,317.0,3.9,72,2.9,30.0,30.0,613.0,487.0,150.0,106.0,54.18,Single,Y,3rd,Y,4.0,2104.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,From main system,Average,Good,(other premises below),,,Fully double glazed,Good,Good,"System built, with external insulation",Good,Good,"Room heaters, mains gas",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Average,Good,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,unheated corridor,6.3,2.4,0.0,N,natural,"10 Swan Apartments, Wallis Avenue",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2011-02-28 00:18:48,rental (social),,,200003683558.0,Address Matched +196613010742008122221263055582028,"86, Forest Hill",,,ME15 6TH,2703715568,D,C,62,79,House,Semi-Detached,2008-12-22,E07000110,E14000804,Kent,2008-12-22,rental (private),56,76,341,186.0,3.5,57,1.9,46.0,27.0,443.0,262.0,83.0,67.0,61.56,Single,Y,NO DATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,33.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Poor,Poor,Low energy lighting in 33% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.28,0.0,N,natural,"86, Forest Hill",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2008-12-22 21:26:30,rental (private),,,200003664995.0,Address Matched +5eac886db8c475b20b73bd0655e30b37abbc46ff6a95ec19f80d733f744b3ece,THE OAST HOUSE,YALDING HILL,YALDING,ME18 6JB,10001660346,C,B,73,81,House,Semi-Detached,2021-08-05,E07000110,E14000804,Kent,2021-08-07,marketed sale,71,80,156,105.0,4.5,25,2.9,142.0,110.0,816.0,774.0,121.0,80.0,178.0,Unknown,Y,,,,,100.0,double glazing installed before 2002,Normal,0.0,8.0,8.0,71.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, with internal insulation",Very Good,Very Good,"Room heaters, wood logs",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 71% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.3,0.0,N,natural,"THE OAST HOUSE, YALDING HILL, YALDING",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1976-1982,2021-08-07 12:27:15,Owner-occupied,14.0,,200003660690.0,Energy Assessor +1421198909642016030711552841360538,"147, London Road",,,ME16 0HA,9647703478,D,B,57,81,House,Semi-Detached,2016-03-07,E07000110,E14000804,Kent,2016-03-07,marketed sale,49,76,284,114.0,5.6,50,2.3,135.0,68.0,1059.0,671.0,81.0,47.0,113.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,7.0,7.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"147, London Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2016-03-07 11:55:28,owner-occupied,,,200003659087.0,Address Matched +349071440902009082110121365610288,3 Oriel Close,Hockers Lane,Detling,ME14 3BF,970446668,C,C,79,80,House,Detached,2009-02-08,E07000110,E14000700,Kent,2009-08-21,new dwelling,79,80,142,135.0,2.1,23,2.0,87.0,51.0,306.0,313.0,103.0,103.0,90.16,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,,From main system,Very Good,Very Good,Average thermal transmittance 0.25 W/m?K,Good,Good,Fully double glazed,Good,Good,Average thermal transmittance 0.29 W/m?K,Very Good,Very Good,"Room heaters, electric",,,Average thermal transmittance 0.16 W/m?K,Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,Time and temperature zone control,Good,Good,Low energy lighting in 31% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,,,NO DATA!,"3 Oriel Close, Hockers Lane, Detling",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2009-08-21 10:12:13,,,,10014308864.0,Address Matched +1414551911052016021716480296960945,Flat 5 Rydal House,Westmorland Green,,ME15 8BJ,9549162478,C,C,74,75,Flat,Detached,2016-02-15,E07000110,E14000700,Kent,2016-02-17,rental (social),74,75,182,178.0,2.0,32,1.9,57.0,44.0,360.0,362.0,100.0,100.0,62.0,Single,Y,2nd,Y,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,71.0,0.0,From main system,Good,Good,(another dwelling below),NO DATA!,,Fully double glazed,Average,Average,"System built, with external insulation",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 71% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,5.3,,,N,natural,"Flat 5 Rydal House, Westmorland Green",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2016-02-17 16:48:02,rental (social),,,200003685488.0,Address Matched +566108449922010111815400531888670,"8, Buckland Rise",,,ME16 0YN,7346471868,B,B,86,87,Flat,Enclosed Mid-Terrace,2010-11-18,E07000110,E14000804,Kent,2010-11-18,rental (private),86,87,110,103.0,1.1,18,1.0,54.0,35.0,180.0,181.0,83.0,83.0,59.58,Single,Y,1st,N,3.0,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,44.0,0.0,From main system,Very Good,Very Good,(other premises below),,,Fully double glazed,Good,Good,"System built, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 44% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,unheated corridor,6.49,2.37,0.0,N,natural,"8, Buckland Rise",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2010-11-18 15:40:05,rental (private),,,10014308203.0,Address Matched +5ec39bfe5982de31cb5610a3590b3a31906e871efd4609a4fe6a2ed4b9e4c5a9,3,Railway Place,Lenham,ME17 2FQ,10001450668,A,A,94,95,House,Detached,2021-08-03,E07000110,E14000700,Kent,2021-08-03,new dwelling,95,97,22,8.0,0.3,4,0.1,69.0,69.0,228.0,228.0,66.0,37.0,81.0,standard tariff,,,N,,,100.0,,,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.17 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.17 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.44,,,,"3, Railway Place, Lenham",Maidstone,Faversham and Mid Kent,Maidstone,2020,2021-08-03 09:47:43,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,13.0,,10095449327.0,Address Matched +1779867499032020012714020849278506,"27, Greenside",,,ME15 7RS,9609578678,D,B,62,85,House,Semi-Detached,2020-01-24,E07000110,E14000804,Kent,2020-01-27,marketed sale,56,82,272,98.0,4.2,48,1.6,98.0,68.0,750.0,488.0,82.0,52.0,88.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,5.0,5.0,56.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, no insulation",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 56% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"27, Greenside",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2020-01-27 14:02:08,owner-occupied,,,200003696179.0,Address Matched +1685134532832018121215435884978994,"55, Douglas Road",,,ME16 8ER,3404981678,E,C,42,72,House,Semi-Detached,2018-12-12,E07000110,E14000804,Kent,2018-12-12,marketed sale,35,65,367,161.0,8.2,68,3.7,77.0,77.0,1498.0,832.0,94.0,94.0,122.0,Single,Y,NODATA!,,,2107.0,100.0,"double glazing, unknown install date",Normal,1.0,7.0,7.0,100.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"55, Douglas Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2018-12-12 15:43:58,owner-occupied,,,200003667767.0,Address Matched +1399908289712016010616524095060245,"22, Shaftesbury Drive",,,ME16 0JR,2547951478,E,B,54,83,Bungalow,Semi-Detached,2016-01-06,E07000110,E14000804,Kent,2016-01-06,marketed sale,46,80,338,104.0,4.9,60,1.5,54.0,54.0,864.0,500.0,184.0,75.0,82.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"22, Shaftesbury Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2016-01-06 16:52:40,owner-occupied,,,200003726350.0,Address Matched +611798439502011033120215287597698,"22, Queensway",Detling,,ME14 3LA,3519835868,D,C,67,77,House,Semi-Detached,2011-03-31,E07000110,E14000700,Kent,2011-03-31,rental (private),62,73,231,165.0,4.7,38,3.3,130.0,67.0,704.0,526.0,135.0,123.0,121.47,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,2.0,7.0,7.0,7.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, mains gas",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 7% of fixed outlets,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.36,0.0,N,natural,"22, Queensway, Detling",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2011-03-31 20:21:52,rental (private),,,200003694129.0,Address Matched +676325991932011091616564644968001,"34, Linden Road",Coxheath,,ME17 4QS,9154000968,C,C,70,71,House,Semi-Detached,2011-09-16,E07000110,E14000804,Kent,2011-09-16,marketed sale,71,73,204,193.0,2.2,39,2.0,63.0,32.0,343.0,347.0,98.0,98.0,55.2,Single,Y,NODATA!,,,2106.0,60.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,0.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Partial double glazing,Poor,Poor,"Timber frame, as built, insulated (assumed)",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,2.33,0.0,,natural,"34, Linden Road, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2011-09-16 16:56:46,owner-occupied,7.0,0.0,200003714870.0,Address Matched +1337613487552015062906514791250133,"30, Bedgebury Close",,,ME14 5QZ,1314717378,D,C,58,79,House,Mid-Terrace,2015-06-27,E07000110,E14000804,Kent,2015-06-29,marketed sale,61,80,256,113.0,3.2,44,1.4,78.0,47.0,500.0,481.0,306.0,146.0,72.0,Unknown,Y,NODATA!,,,2504.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,33.0,0.0,"Electric immersion, standard tariff",Very Poor,Poor,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Timber frame, as built, partial insulation (assumed)",Average,Average,"Room heaters, electric",,,"Pitched, 150 mm loft insulation",Good,Good,"Warm air, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 33% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"30, Bedgebury Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2015-06-29 06:51:47,owner-occupied,,,200003672029.0,Address Matched +1492386239262016102910460718418216,"200, Roseholme",,,ME16 8DZ,1117318478,D,C,56,80,Maisonette,Mid-Terrace,2016-10-29,E07000110,E14000804,Kent,2016-10-29,marketed sale,64,66,236,222.0,2.9,40,2.8,86.0,58.0,608.0,242.0,253.0,151.0,73.0,dual,N,Ground,N,,2699.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,0.0,50.0,0.0,"Electric immersion, off-peak",Very Poor,Poor,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,(another dwelling above),,,No system present: electric heaters assumed,Very Poor,Poor,,Very Poor,Very Poor,Low energy lighting in 50% of fixed outlets,Good,Good,To be used only when there is no heating/hot-water system,0.0,no corridor,,2.31,,N,natural,"200, Roseholme",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2016-10-29 10:46:07,owner-occupied,,,200003666296.0,Address Matched +1504307389962016121318522068628106,The Bungalow,73 Chatham Road,,ME14 2LY,626898478,D,B,60,90,Bungalow,Detached,2016-12-12,E07000110,E14000804,Kent,2016-12-13,marketed sale,41,71,544,221.0,3.8,92,1.5,72.0,36.0,453.0,321.0,144.0,70.0,41.0,dual,N,NODATA!,,,2401.0,100.0,double glazing installed before 2002,Normal,0.0,2.0,2.0,0.0,0.0,"Electric immersion, off-peak",Average,Poor,"Solid, limited insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,Portable electric heaters (assumed),,,"Pitched, insulated (assumed)",Good,Good,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,No low energy lighting,Very Poor,Very Poor,electricity (not community),0.0,NO DATA!,,,,N,natural,"The Bungalow, 73 Chatham Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2016-12-13 18:52:20,owner-occupied,,,200003670482.0,Address Matched +241115011452017042722295499930557,Grove Mill Cottage,Hasteds,Hollingbourne,ME17 1UQ,5769198568,E,A,52,93,House,Detached,2017-04-10,E07000110,E14000700,Kent,2017-04-27,marketed sale,43,85,313,60.0,8.0,57,1.7,92.0,92.0,1470.0,853.0,140.0,88.0,141.0,dual,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,6.0,6.0,94.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 94% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"Grove Mill Cottage, Hasteds, Hollingbourne",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2017-04-27 22:29:54,owner-occupied,,,200003700603.0,Address Matched +1716940257212019042907545291210566,"80, Park Way",Coxheath,,ME17 4EX,5619714678,D,B,66,87,Bungalow,Semi-Detached,2019-04-26,E07000110,E14000804,Kent,2019-04-29,marketed sale,63,87,260,78.0,2.9,46,0.9,60.0,60.0,479.0,345.0,123.0,73.0,64.0,Unknown,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,78.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 78% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"80, Park Way, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2019-04-29 07:54:52,owner-occupied,,,200003715209.0,Address Matched +914843299922013041619302227128587,"52, Chestnut Drive",Kingswood,,ME17 3PJ,8256927078,D,B,59,81,House,Semi-Detached,2013-04-12,E07000110,E14000700,Kent,2013-04-16,marketed sale,56,81,221,85.0,4.8,42,1.9,113.0,59.0,818.0,563.0,135.0,72.0,116.0,Unknown,N,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,7.0,7.0,8.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 8% of fixed outlets,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"52, Chestnut Drive, Kingswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2013-04-16 19:30:22,owner-occupied,13.0,1.0,200003700082.0,Address Matched +630555049962011051712242536238999,"75, Whitebeam Drive",Coxheath,,ME17 4QY,9305476868,E,C,47,72,House,Semi-Detached,2011-05-17,E07000110,E14000804,Kent,2011-05-17,marketed sale,44,72,371,174.0,5.2,71,2.4,73.0,39.0,698.0,403.0,234.0,95.0,72.87,Single,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,12.0,0.0,"From main system, no cylinderstat",Poor,Poor,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Average,Programmer and room thermostat,Average,Average,Low energy lighting in 12% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,2.34,0.0,,natural,"75, Whitebeam Drive, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2011-05-17 12:24:25,owner-occupied,8.0,1.0,200003672847.0,Address Matched +291668330202009052708081861212428,"18, Mill Walk",,,ME16 9LE,7265832668,E,D,50,55,House,Detached,2009-05-22,E07000110,E14000804,Kent,2009-05-27,rental (private),43,48,441,398.0,5.0,74,4.6,60.0,32.0,725.0,671.0,80.0,80.0,75.88,Single,Y,NO DATA!,,,2104.0,0.0,INVALID!,Normal,1.0,4.0,4.0,16.0,3.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Timber frame, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 25 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Very Good,Very Good,Programmer and room thermostat,Poor,Poor,Low energy lighting in 16% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.6,0.0,N,natural,"18, Mill Walk",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2009-05-27 08:08:18,rental (private),,,200003696996.0,Address Matched +119887159602015010917271247850218,"13, Bargrove Road",,,ME14 5RR,3658358468,C,B,70,86,House,Semi-Detached,2015-01-09,E07000110,E14000804,Kent,2015-01-09,marketed sale,68,85,196,77.0,2.9,34,1.2,106.0,53.0,512.0,445.0,89.0,55.0,83.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,3.0,5.0,5.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"13, Bargrove Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2015-01-09 17:27:12,owner-occupied,,,200003672221.0,Address Matched +922592549762013043013511367208827,"40, Darwin Avenue",,,ME15 9FP,2617487078,B,B,83,84,House,Detached,2013-04-30,E07000110,E14000700,Kent,2013-04-30,new dwelling,84,85,82,77.0,2.2,16,2.1,107.0,69.0,414.0,419.0,99.0,99.0,140.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.22 W/m?K,Good,Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.34 W/m?K,Good,Good,,,,Average thermal transmittance 0.25 W/m?K,Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 46% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"40, Darwin Avenue",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2013-04-30 13:51:13,NO DATA!,13.0,6.0,10014312896.0,Address Matched +1174636439262014072109015635198574,"4, Colegate Drive",Bearsted,,ME14 4DP,7334365278,D,B,64,85,House,Semi-Detached,2014-07-21,E07000110,E14000700,Kent,2014-07-21,marketed sale,60,85,204,68.0,4.0,39,1.4,60.0,60.0,772.0,481.0,129.0,86.0,103.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,6.0,6.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"4, Colegate Drive, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2014-07-21 09:01:56,owner-occupied,12.0,12.0,200003721810.0,Address Matched +5efbd362c26695727deefb4873d995d6b582508e7fcd7e90a4aa44961eea65df,67 WRENS CROSS,UPPER STONE STREET,,ME15 6YU,10001531572,C,C,75,75,Flat,Semi-Detached,2021-07-08,E07000110,E14000804,Kent,2021-07-08,new dwelling,74,74,162,162.0,2.2,29,2.2,92.0,92.0,371.0,371.0,87.0,87.0,79.0,off-peak 7 hour,,1,N,,,100.0,,,,,,75.0,0.0,From main system,Good,Good,Average thermal transmittance 0.21 W/m-¦K,Good,Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.16 W/m-¦K,Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.89,,,,"67 WRENS CROSS, UPPER STONE STREET",Maidstone,Maidstone and The Weald,MAIDSTONE,2017,2021-07-08 16:04:34,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,20.0,,10094441001.0,Energy Assessor +373897210132009100113161203068693,"5, River Bank Close",,,ME15 7SE,1393618668,C,C,75,79,Flat,Enclosed End-Terrace,2009-10-01,E07000110,E14000804,Kent,2009-10-01,rental (private),68,70,299,275.0,2.3,45,2.1,57.0,31.0,183.0,160.0,112.0,112.0,51.7,Single,N,1st,N,4.0,2401.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,20.0,0.0,"Electric immersion, off-peak",Average,Poor,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,(another dwelling above),,,Electric storage heaters,Poor,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 20% of fixed outlets,Poor,Poor,electricity - this is for backwards compatibility only and should not be used,0.0,heated corridor,,2.23,0.0,N,natural,"5, River Bank Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2009-10-01 13:16:12,rental (private),,,200003725921.0,Address Matched +833773969922012091021061591008282,The Old Coach House,Hunton Road,Marden,TN12 9SL,8919651078,F,C,27,77,House,Semi-Detached,2012-09-10,E07000110,E14000804,Kent,2012-09-10,marketed sale,20,67,346,97.0,19.0,88,5.7,106.0,106.0,3214.0,1078.0,174.0,140.0,213.0,dual,N,NODATA!,,,2101.0,100.0,double glazing installed before 2002,Normal,3.0,7.0,7.0,81.0,1.0,From main system,Average,Poor,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation",Very Poor,Very Poor,"Boiler and radiators, oil",Average,Average,No time or thermostatic control of room temperature,Very Poor,Very Poor,Low energy lighting in 81% of fixed outlets,Very Good,Very Good,oil (not community),0.0,NO DATA!,,,0.0,,natural,"The Old Coach House, Hunton Road, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: before 1900,2012-09-10 21:06:15,owner-occupied,21.0,17.0,200003711370.0,Address Matched +1559722199342017092819030752230418,"8, Wood Court",,,ME16 9DD,1349092578,C,B,77,90,House,End-Terrace,2017-05-09,E07000110,E14000804,Kent,2017-09-28,rental (social),77,90,146,43.0,1.8,26,0.6,51.0,51.0,290.0,290.0,102.0,66.0,68.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Very Good,Very Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"8, Wood Court",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2017-09-28 19:03:07,rental (social),,,10022900391.0,Address Matched +1584888498152018112011162896089355,Bumpers Hall,Maidstone Road,Marden,TN12 9AG,3553864578,B,A,83,99,House,Detached,2018-11-08,E07000110,E14000804,Kent,2018-11-20,new dwelling,85,99,74,-3.0,3.0,12,-0.1,107.0,107.0,621.0,621.0,231.0,142.0,242.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Poor,Good,Average thermal transmittance 0.10 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,"Ground source heat pump , electric",Good,Very Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"Bumpers Hall, Maidstone Road, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,NO DATA!,2018-11-20 11:16:28,owner-occupied,20.0,20.0,200003655095.0,Address Matched +920450149962014071017135387208384,"3, Boxfield Close",Harrietsham,,ME17 1FP,8836467078,B,B,88,90,House,Detached,2014-07-10,E07000110,E14000700,Kent,2014-07-10,new dwelling,88,90,60,49.0,1.4,11,1.1,67.0,67.0,341.0,342.0,104.0,56.0,128.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.17 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"3, Boxfield Close, Harrietsham",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2014-07-10 17:13:53,owner-occupied,17.0,17.0,10014314947.0,Address Matched +1248868499742014121210180632049298,"33, Westree Court",,,ME16 8FU,1729090378,B,B,88,88,House,Mid-Terrace,2014-12-11,E07000110,E14000804,Kent,2014-12-12,new dwelling,91,91,53,53.0,0.8,10,0.8,51.0,51.0,255.0,255.0,79.0,79.0,78.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.19 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.12 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"33, Westree Court",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2014-12-12 10:18:06,unknown,35.0,35.0,10014316011.0,Address Matched +1680835707152019092709412295210569,1 Gala Close,Coxheath,,ME17 4GL,5934751678,B,A,84,94,House,Detached,2019-09-27,E07000110,E14000804,Kent,2019-09-27,new dwelling,85,96,89,15.0,1.5,16,0.3,68.0,68.0,249.0,249.0,75.0,45.0,94.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.14 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.10 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"1 Gala Close, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2019-09-27 09:41:22,unknown,20.0,20.0,10094440235.0,Address Matched +905048469142013032714350000672538,2 Barn Meadow Cottages,Forge Lane,Boxley,ME14 3DU,1110266078,E,B,53,86,House,Mid-Terrace,2013-03-27,E07000110,E14000700,Kent,2013-03-27,marketed sale,48,86,277,64.0,5.6,53,1.3,104.0,60.0,939.0,441.0,112.0,66.0,104.0,dual,Y,NODATA!,,,2107.0,22.0,secondary glazing,Normal,0.0,5.0,5.0,25.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Some secondary glazing,Poor,Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 25% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"2 Barn Meadow Cottages, Forge Lane, Boxley",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1900-1929,2013-03-27 14:35:00,owner-occupied,8.0,2.0,200003673389.0,Address Matched +1784672312742020021321335467909778,"15, Tovil Road",,,ME15 6QL,3736219678,C,B,70,84,House,Semi-Detached,2020-02-13,E07000110,E14000804,Kent,2020-02-13,marketed sale,67,81,208,106.0,3.1,37,1.6,73.0,73.0,495.0,465.0,133.0,80.0,83.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,89.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,"Room heaters, mains gas",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 89% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"15, Tovil Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2020-02-13 21:33:54,owner-occupied,,,200003664485.0,Address Matched +5f36d278eda9c257de751d364396676b1dbb4858fac30d5602c76689f9bd7486,64 Seymour Drive,,,TN12 9GT,10001570171,B,A,84,94,House,Detached,2021-09-03,E07000110,E14000804,Kent,2021-09-03,new dwelling,86,95,80,16.0,1.6,14,0.4,84.0,84.0,246.0,248.0,94.0,52.0,114.0,standard tariff,,,N,,,100.0,,,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.22 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.39,,,,64 Seymour Drive,Maidstone,Maidstone and The Weald,MARDEN,2021,2021-09-03 14:39:40,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,10.0,,10094441138.0,Energy Assessor +1554998957452017062616263295230353,"12, Kennel Wood Road",,,ME16 9EQ,3304752578,B,A,85,95,House,End-Terrace,2017-06-26,E07000110,E14000804,Kent,2017-06-26,new dwelling,87,97,73,4.0,1.3,13,0.1,72.0,72.0,210.0,210.0,87.0,51.0,101.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.18 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"12, Kennel Wood Road",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2017-06-26 16:26:32,unknown,20.0,20.0,10093303467.0,Address Matched +1049788089542013112513491410672208,"60, Ashford Road",Bearsted,,ME14 4LR,9553386178,C,B,72,86,House,Semi-Detached,2013-11-20,E07000110,E14000700,Kent,2013-11-25,FiT application,70,85,150,65.0,3.2,29,1.4,60.0,60.0,566.0,465.0,112.0,69.0,112.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"60, Ashford Road, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2013-11-25 13:49:14,owner-occupied,10.0,10.0,200003687692.0,Address Matched +1278892525712015020823241890050633,"8, Fawley Close",,,ME14 2RD,6333503378,D,B,68,89,Bungalow,Mid-Terrace,2015-02-07,E07000110,E14000804,Kent,2015-02-08,rental (social),68,90,251,52.0,2.1,44,0.5,39.0,39.0,342.0,306.0,158.0,71.0,48.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,83.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 83% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"8, Fawley Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2015-02-08 23:24:18,rental (social),,,200003722314.0,Address Matched +55370060302009011915331956619038,Basement Flat,17 Charlton Street,,ME16 8LB,6329366568,D,D,65,65,Flat,End-Terrace,2009-01-17,E07000110,E14000804,Kent,2009-01-19,rental (private),59,59,350,350.0,2.9,59,2.9,24.0,24.0,448.0,448.0,67.0,67.0,49.63,Single,Y,Ground,N,3.0,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,100.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.48,0.0,N,natural,"Basement Flat, 17 Charlton Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2009-01-19 15:33:19,rental (private),,,200003656677.0,Address Matched +1815339638032020080608414756078506,"4, Chervilles",,,ME16 9JE,3636531778,E,B,46,86,House,Semi-Detached,2020-08-04,E07000110,E14000804,Kent,2020-08-06,marketed sale,39,84,405,81.0,5.9,71,1.2,111.0,66.0,883.0,407.0,235.0,71.0,82.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,33.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Average,Average,Programmer and room thermostat,Average,Average,Low energy lighting in 33% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"4, Chervilles",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2020-08-06 08:41:47,owner-occupied,,,200003686915.0,Address Matched +1726834312062020090712144304738040,"11, Wiles Road",Otham,,ME15 8YW,4086194678,B,A,84,96,House,Semi-Detached,2020-09-07,E07000110,E14000700,Kent,2020-09-07,new dwelling,87,99,84,-4.0,1.2,15,0.0,70.0,70.0,205.0,205.0,73.0,44.0,78.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.10 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.19 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"11, Wiles Road, Otham",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2020-09-07 12:14:43,unknown,10.0,10.0,10094440583.0,Address Matched +267182189852016021510593896960567,Crabb Orchard,Lenham Heath Road,Lenham Heath,ME17 2BS,5743960668,E,B,41,84,Bungalow,Detached,2016-02-15,E07000110,E14000700,Kent,2016-02-15,ECO assessment,35,75,244,50.0,13.0,64,4.0,94.0,94.0,1900.0,1052.0,250.0,93.0,200.0,Single,N,NODATA!,,,2107.0,100.0,double glazing installed before 2002,Normal,1.0,6.0,6.0,100.0,0.0,From main system,Poor,Poor,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, oil",Poor,Average,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,oil (not community),0.0,NO DATA!,,,,N,natural,"Crabb Orchard, Lenham Heath Road, Lenham Heath",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2016-02-15 10:59:38,owner-occupied,,,200003734132.0,Address Matched +1592553559332017112810192976278390,Flat 6,"1, Campion Way",Marden,TN12 9GE,5016325578,B,B,82,82,Flat,Semi-Detached,2017-11-28,E07000110,E14000804,Kent,2017-11-28,new dwelling,86,86,105,105.0,0.9,18,0.9,37.0,37.0,181.0,181.0,66.0,66.0,50.0,standard tariff,,top floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.09 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Flat 6, 1, Campion Way, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,NO DATA!,2017-11-28 10:19:29,owner-occupied,45.0,45.0,10093305232.0,Address Matched +878941369062013020116205074598667,"74, Trevor Drive",,,ME16 0QR,6705674078,C,B,69,83,Bungalow,Detached,2013-02-01,E07000110,E14000804,Kent,2013-02-01,rental (private),68,83,178,80.0,2.9,34,1.4,58.0,58.0,500.0,423.0,84.0,66.0,85.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,76.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 76% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"74, Trevor Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2013-02-01 16:20:50,rental (private),17.0,13.0,200003704530.0,Address Matched +1559255989242017071219553557230618,Flat 2 Sweet Briar Court,"80, London Road",,ME16 0DR,7235782578,C,C,74,78,Flat,End-Terrace,2017-06-09,E07000110,E14000804,Kent,2017-07-12,marketed sale,75,80,170,134.0,1.9,30,1.5,59.0,59.0,322.0,255.0,108.0,95.0,63.0,Single,Y,Ground,N,,2107.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,80.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,heated corridor,,,,N,natural,"Flat 2 Sweet Briar Court, 80, London Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2017-07-12 19:55:35,owner-occupied,,,10014307932.0,Address Matched +1769948309742019120311130960810778,"130, Edmett Way",,,ME17 3GD,4759308678,B,A,85,94,House,Detached,2019-12-03,E07000110,E14000700,Kent,2019-12-03,new dwelling,86,95,77,20.0,1.6,14,0.4,82.0,82.0,268.0,268.0,78.0,47.0,120.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"130, Edmett Way",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2019-12-03 11:13:09,unknown,7.0,7.0,10094441745.0,Address Matched +158163280202008100604385753180448,"11, Thornhill Place",,,ME14 2SF,5281381568,D,C,63,71,House,Mid-Terrace,2008-10-04,E07000110,E14000804,Kent,2008-10-06,rental (private),58,67,343,271.0,3.2,57,2.5,46.0,25.0,387.0,325.0,96.0,83.0,61.98,Single,Y,NO DATA!,,,2104.0,0.0,INVALID!,Normal,0.0,3.0,3.0,15.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 50mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Poor,Poor,Low energy lighting in 15% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,0.0,N,natural,"11, Thornhill Place",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2008-10-06 04:38:57,rental (private),,,200003702433.0,Address Matched +13723671512019061510174992910349,"7, Tennison Way",,,ME15 9GE,3980128468,C,B,78,90,House,Mid-Terrace,2019-06-14,E07000110,E14000700,Kent,2019-06-15,marketed sale,78,90,130,49.0,2.1,23,0.8,89.0,70.0,328.0,331.0,103.0,64.0,92.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,73.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 73% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"7, Tennison Way",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2007 onwards,2019-06-15 10:17:49,owner-occupied,,,10022895431.0,Address Matched +920357269802014102816531107742488,38 Horwood Way,Harrietsham,,ME17 1FH,7823467078,B,B,87,88,House,End-Terrace,2014-10-28,E07000110,E14000700,Kent,2014-10-28,new dwelling,89,91,67,53.0,1.0,12,0.8,52.0,52.0,254.0,254.0,97.0,61.0,81.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.2 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.3 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.1 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"38 Horwood Way, Harrietsham",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2014-10-28 16:53:11,owner-occupied,12.0,12.0,10014314927.0,Address Matched +107021232332017021913101855968900,"2, Scott Street",,,ME14 2TA,3055927468,D,C,57,79,House,Mid-Terrace,2017-02-19,E07000110,E14000804,Kent,2017-02-19,marketed sale,52,77,269,113.0,5.4,47,2.3,71.0,71.0,1062.0,664.0,119.0,79.0,114.0,Unknown,Y,NODATA!,,,2106.0,100.0,triple glazing,Normal,0.0,6.0,6.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully triple glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"2, Scott Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2017-02-19 13:10:18,owner-occupied,,,200003669765.0,Address Matched +1014190729222013092518161164948597,Quartettes,Vicarage Lane,East Farleigh,ME15 0LX,9677234178,C,B,76,83,House,Detached,2013-09-24,E07000110,E14000804,Kent,2013-09-25,marketed sale,73,80,112,77.0,6.1,22,4.3,169.0,102.0,995.0,904.0,143.0,125.0,286.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,7.0,7.0,35.0,1.0,From main system,Good,Good,"Solid, insulated (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, insulated at rafters",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 35% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"Quartettes, Vicarage Lane, East Farleigh",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2013-09-25 18:16:11,owner-occupied,34.0,12.0,200003673155.0,Address Matched +556176779962010102115471930068590,"22, Cornhill Place",,,ME15 6GX,9300790868,C,C,73,74,Flat,Mid-Terrace,2010-09-16,E07000110,E14000804,Kent,2010-10-21,new dwelling,81,82,159,153.0,1.5,25,1.4,51.0,34.0,181.0,183.0,256.0,256.0,60.4,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,,,"Electric immersion, standard tariff",Very Poor,Poor,(other premises below),,,Fully double glazed,Good,Good,Average thermal transmittance 0.32 W/m?K,Good,Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.3,,,NO DATA!,"22, Cornhill Place",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2010-10-21 15:47:19,,,,10022895027.0,Address Matched +5f4f90690d51b734dad40bae693f3044c56f1950ab29cec5140c556306bf8607,24 Camden Street,,,ME14 1UU,10001436590,D,B,64,90,House,Mid-Terrace,2021-09-10,E07000110,E14000804,Kent,2021-09-13,marketed sale,61,91,295,44.0,2.5,52,0.4,42.0,42.0,386.0,280.0,127.0,59.0,47.0,Single,Y,,,,,100.0,double glazing installed before 2002,Normal,2.0,2.0,2.0,100.0,0.0,From main system,Good,Good,"To unheated space, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 270 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.41,0.0,N,natural,24 Camden Street,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2021-09-13 08:57:01,Owner-occupied,5.0,,200003699120.0,Energy Assessor +1800276226032020060116115624078509,"36, Bicknor Road",,,ME15 9NT,2984520778,C,B,70,86,House,Mid-Terrace,2020-06-01,E07000110,E14000700,Kent,2020-06-01,none of the above,68,83,191,89.0,3.2,34,1.5,159.0,79.0,484.0,453.0,136.0,83.0,95.0,dual,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"36, Bicknor Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2020-06-01 16:11:56,rental (private),,,200003682769.0,Address Matched +5f579d9e52b7ac37c7a2ddf4d0fd9ce97f13f891cd6d9e0ee8a9db98dba938e5,8 Meridian Court,Buckland Road,,ME16 0HU,10001575083,C,C,69,77,Flat,End-Terrace,2021-08-19,E07000110,E14000804,Kent,2021-08-19,marketed sale,66,77,208,137.0,3.1,37,2.1,80.0,80.0,429.0,323.0,191.0,108.0,86.0,Single,Y,00,N,,,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,100.0,0.0,"From main system, no cylinder thermostat",Average,Average,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,7.19,2.36,0.0,N,natural,"8 Meridian Court, Buckland Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2021-08-19 16:03:19,Owner-occupied,9.0,,200003666885.0,Energy Assessor +727358922512014041513485096940094,"12, Orache Drive",Weavering,,ME14 5UG,400263968,C,C,74,78,Flat,Mid-Terrace,2014-04-15,E07000110,E14000700,Kent,2014-04-15,marketed sale,77,81,148,122.0,1.7,28,1.4,84.0,42.0,274.0,247.0,118.0,118.0,61.0,Single,Y,2nd,Y,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,0.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,heated corridor,,,0.0,,natural,"12, Orache Drive, Weavering",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2014-04-15 13:48:50,owner-occupied,14.0,0.0,200003689204.0,Address Matched +1033304847552013102812260696279716,1 Firtree Yard,Stockett Lane,Coxheath,ME17 4PY,7652765178,B,B,83,83,House,Detached,2013-10-27,E07000110,E14000804,Kent,2013-10-28,new dwelling,84,84,87,87.0,1.8,16,1.8,72.0,72.0,331.0,331.0,69.0,69.0,107.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.19 W/mA?K,Very Good,Very Good,Fully double glazed,Good,Good,Average thermal transmittance 0.25 W/mA?K,Very Good,Very Good,,,,Average thermal transmittance 0.16 W/mA?K,Good,Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"1 Firtree Yard, Stockett Lane, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2013-10-28 12:26:06,NO DATA!,12.0,9.0,, +5f6343ca57bb1bf7ad60c3fde0ce00feae34dfadcac04ddf5cf2b55589f2a2ca,1 Chimney Avenue,,,ME14 1GY,10001331015,B,A,84,95,House,Semi-Detached,2021-07-30,E07000110,E14000804,Kent,2021-07-30,new dwelling,86,97,82,7.0,1.3,14,0.2,76.0,76.0,227.0,227.0,72.0,44.0,94.0,standard tariff,,,N,,,100.0,,,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.12 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.28 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.54,,,,1 Chimney Avenue,Maidstone,Maidstone and The Weald,MAIDSTONE,2021,2021-07-30 09:33:06,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,10.0,,10094443125.0,Address Matched +1312977025712015042312141894250138,"25, Charlton Street",,,ME16 8LB,1842545378,E,C,51,79,Flat,Mid-Terrace,2015-04-23,E07000110,E14000804,Kent,2015-04-23,ECO assessment,46,82,435,139.0,3.6,77,1.2,66.0,33.0,680.0,235.0,92.0,83.0,47.0,Single,Y,3rd,Y,,2102.0,100.0,double glazing installed before 2002,Normal,0.0,2.0,2.0,0.0,0.0,From main system,Good,Good,(another dwelling below),NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,no corridor,,,,N,natural,"25, Charlton Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2015-04-23 12:14:18,rental (private),,,200003655436.0,Address Matched +590527669022011020923450753818749,"9, Shernolds",,,ME15 9QG,4588663868,D,C,60,69,House,Semi-Detached,2011-02-09,E07000110,E14000804,Kent,2011-02-09,marketed sale,61,69,236,186.0,5.3,39,4.2,135.0,84.0,945.0,753.0,130.0,130.0,138.77,dual,Y,NO DATA!,,,2107.0,100.0,double glazing installed during or after 2002,Normal,1.0,7.0,7.0,40.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 40% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.3,0.0,N,natural,"9, Shernolds",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2011-02-09 23:45:07,owner-occupied,,,200003680363.0,Address Matched +1419729599922017101215501682928403,"60, Bunyard Way",Allington,,ME16 0BD,823992478,B,A,87,93,House,Detached,2017-10-12,E07000110,E14000804,Kent,2017-10-12,new dwelling,86,93,67,29.0,2.3,12,1.0,90.0,90.0,354.0,355.0,113.0,63.0,193.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.14 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.26 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.16 W/m-¦K,Good,Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"60, Bunyard Way, Allington",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2017-10-12 15:50:16,owner-occupied,14.0,14.0,10091195424.0,Address Matched +392501420022009110512341159058371,"23, Ware Street",Bearsted,,ME14 4PQ,7598249668,E,D,50,57,House,Detached,2009-11-05,E07000110,E14000700,Kent,2009-11-05,marketed sale,53,60,312,268.0,7.7,45,6.4,114.0,88.0,1304.0,1152.0,164.0,134.0,171.75,Single,Y,NO DATA!,,,2107.0,50.0,double glazing installed during or after 2002,Normal,1.0,7.0,7.0,70.0,2.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Partial double glazing,Poor,Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 70% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,,0.0,N,natural,"23, Ware Street, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,,2009-11-05 12:34:11,owner-occupied,,,200003693840.0,Address Matched +1656960749962018081810435229388928,Blanchland,Pilgrims Way,Detling,ME14 3EX,2203489578,D,B,61,90,House,Detached,2018-08-18,E07000110,E14000700,Kent,2018-08-18,non marketed sale,51,82,240,73.0,8.0,42,2.5,176.0,96.0,1286.0,921.0,186.0,122.0,189.0,Single,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,1.0,10.0,10.0,16.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,"Room heaters, mains gas",,,"Pitched, 270 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 16% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"Blanchland, Pilgrims Way, Detling",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2018-08-18 10:43:52,owner-occupied,,,200003690148.0,Address Matched +1816232602022020081013421371638300,"5, Thyme Walk",,,ME16 0UU,759041778,C,B,73,84,House,Mid-Terrace,2020-08-07,E07000110,E14000804,Kent,2020-08-10,marketed sale,68,81,160,84.0,3.7,28,2.0,88.0,88.0,587.0,529.0,149.0,76.0,132.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,7.0,7.0,100.0,0.0,From main system,Good,Good,"Solid, limited insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"5, Thyme Walk",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2020-08-10 13:42:13,owner-occupied,,,10022895968.0,Address Matched +5fa9f6c2d08ef5d0ada1adeaccb986fc3468890e060b0704db732764d162f2ce,495 Tonbridge Road,,,ME16 9LH,10001539164,D,B,55,85,House,Semi-Detached,2021-09-20,E07000110,E14000804,Kent,2021-09-20,marketed sale,46,83,317,80.0,5.2,56,1.4,74.0,74.0,840.0,400.0,125.0,77.0,93.0,Single,Y,,,,,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, mains gas",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.41,0.0,N,natural,495 Tonbridge Road,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2021-09-20 15:13:07,Owner-occupied,15.0,,200003681717.0,Energy Assessor +1007116789902014091113344515349798,"13, Roseholme",,,ME16 8DY,4971483178,D,B,68,86,House,Semi-Detached,2014-09-11,E07000110,E14000804,Kent,2014-09-11,marketed sale,66,87,188,59.0,3.0,36,1.0,51.0,51.0,521.0,407.0,165.0,78.0,82.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,5.0,5.0,100.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"13, Roseholme",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2014-09-11 13:34:45,owner-occupied,8.0,8.0,200003656537.0,Address Matched +1445986654652016052111173398260548,The Granary Court Lodge Farm,The Street,Teston,ME18 5AQ,5867484478,C,C,71,79,House,Detached,2016-05-20,E07000110,E14000804,Kent,2016-05-21,marketed sale,69,77,164,121.0,5.4,27,3.9,128.0,99.0,1087.0,997.0,142.0,142.0,204.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,7.0,7.0,71.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, wood logs",,,"Pitched, insulated (assumed)",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 71% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,2.3,,N,natural,"The Granary Court Lodge Farm, The Street, Teston",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1991-1995,2016-05-21 11:17:33,owner-occupied,,,200003661936.0,Address Matched +1667831171512018101516392096989664,Flat 26,Brenchley House,123-135 Week Street,ME14 1FX,6406160678,C,C,74,74,Flat,Mid-Terrace,2018-10-15,E07000110,E14000804,Kent,2018-10-15,new dwelling,78,78,202,202.0,1.2,36,1.2,28.0,28.0,209.0,209.0,95.0,95.0,34.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,Community scheme,Good,Good,Average thermal transmittance 0.24 W/m-¦K,Good,Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.30 W/m-¦K,Good,Good,,,,(other premises above),,,Community scheme,Good,Good,"Charging system linked to use of community heating, programmer and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,NO DATA!,,NO DATA!,,,,,NO DATA!,"Flat 26, Brenchley House, 123-135 Week Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2018-10-15 16:39:20,unknown,6.0,6.0,10094440702.0,Address Matched +49587879902011082007373055599018,"141, Clifford Way",,,ME16 8GF,6921675568,B,B,83,84,Flat,NO DATA!,2011-08-19,E07000110,E14000804,Kent,2011-08-20,rental (private),88,89,84,74.0,1.0,16,0.9,66.0,38.0,162.0,165.0,71.0,71.0,60.89,Single,Y,2nd,N,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,27.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Good,Good,"System built, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 27% of fixed outlets,Average,Average,mains gas (not community),0.0,heated corridor,,2.29,0.0,,natural,"141, Clifford Way",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2011-08-20 07:37:30,rental (private),11.0,3.0,10022896154.0,Address Matched +1733335789062019070221473185328741,"2, St. Margarets Close",,,ME16 8QN,4859835678,C,B,71,85,House,Detached,2019-07-02,E07000110,E14000804,Kent,2019-07-02,marketed sale,69,83,187,83.0,2.8,33,1.3,104.0,71.0,465.0,423.0,100.0,69.0,86.0,dual,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,5.0,5.0,54.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 270 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 54% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"2, St. Margarets Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2019-07-02 21:47:31,owner-occupied,,,200003676057.0,Address Matched +609642529932011032614503009268900,"31, Queen Elizabeth Square",,,ME15 9DG,2059915868,C,C,74,75,House,Mid-Terrace,2011-01-24,E07000110,E14000700,Kent,2011-03-26,non marketed sale,70,71,196,194.0,3.1,33,3.0,62.0,51.0,488.0,490.0,118.0,118.0,93.72,Single,Y,NO DATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,80.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.32,0.0,N,natural,"31, Queen Elizabeth Square",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2011-03-26 14:50:30,owner-occupied,,,200003710544.0,Address Matched +186079399062010050606220964768940,"4, Trapfield Close",Bearsted,,ME14 4HT,4666954568,E,E,46,48,House,Semi-Detached,2010-05-06,E07000110,E14000700,Kent,2010-05-06,marketed sale,50,51,370,362.0,6.0,52,5.8,120.0,60.0,1080.0,1096.0,122.0,122.0,114.2,Single,Y,NO DATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,0.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, wood logs",,,"Pitched, insulated (assumed)",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,3.0,0.0,N,natural,"4, Trapfield Close, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2010-05-06 06:22:09,owner-occupied,,,200003694841.0,Address Matched +469235414032010041417514905968604,5 The Quarter,Cranbrook Road,Staplehurst,TN12 0EP,1425684768,F,E,33,54,House,Semi-Detached,2010-04-14,E07000110,E14000804,Kent,2010-04-14,marketed sale,28,46,676,437.0,6.7,113,4.3,61.0,30.0,968.0,694.0,183.0,96.0,59.2,Single,Y,NO DATA!,,,2101.0,0.0,not defined,Normal,0.0,5.0,5.0,0.0,1.0,"From main system, no cylinder thermostat",Poor,Average,"Solid, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, mains gas",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Average,Good,No time or thermostatic control of room temperature,Very Poor,Very Poor,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.35,0.0,N,natural,"5 The Quarter, Cranbrook Road, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: before 1900,2010-04-14 17:51:49,owner-occupied,,,200003661977.0,Address Matched +852985139232012110219021058078391,"16, Poplar Grove",,,ME16 0DE,3178392078,D,B,60,84,House,Semi-Detached,2012-11-02,E07000110,E14000804,Kent,2012-11-02,marketed sale,55,83,231,78.0,4.7,44,1.6,109.0,54.0,731.0,474.0,130.0,73.0,105.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,3.0,6.0,6.0,0.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"16, Poplar Grove",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2012-11-02 19:02:10,owner-occupied,16.0,0.0,200003658607.0,Address Matched +1623294501852018041313245394980859,"93, Perryfield Street",,,ME14 2SZ,8968147578,D,B,66,86,House,End-Terrace,2018-04-13,E07000110,E14000804,Kent,2018-04-13,rental,60,84,218,75.0,4.2,38,1.5,113.0,70.0,701.0,446.0,105.0,71.0,109.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,5.0,5.0,38.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 38% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"93, Perryfield Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2018-04-13 13:24:53,owner-occupied,,,200003669751.0,Address Matched +5f884915031cbdb5e62f4141a264890e969e28808c34143783f45fec2236cef0,Rathlyn,Vicarage Lane,East Farleigh,ME15 0LX,10001700953,E,B,50,91,House,Detached,2021-08-12,E07000110,E14000804,Kent,2021-08-12,marketed sale,46,87,320,68.0,8.5,51,1.7,147.0,102.0,1621.0,880.0,133.0,86.0,166.0,Single,Y,,,,,100.0,double glazing installed during or after 2002,More Than Typical,2.0,7.0,7.0,56.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Timber frame, as built, partial insulation (assumed)",Average,Average,"Room heaters, wood logs",,,"Flat, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 56% of fixed outlets,Good,Good,mains gas (not community),0.0,,,2.16,0.0,N,natural,"Rathlyn, Vicarage Lane, East Farleigh",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2021-08-12 11:44:48,Owner-occupied,16.0,,200003673156.0,Energy Assessor +854982705412012110817180090029707,"5, Bethersden Court",,,ME15 8SS,7713503078,B,B,83,83,Bungalow,Mid-Terrace,2012-11-08,E07000110,E14000700,Kent,2012-11-08,new dwelling,88,88,78,78.0,1.0,15,1.0,43.0,43.0,223.0,223.0,51.0,51.0,67.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,"From main system, plus solar",Very Good,Very Good,Average thermal transmittance 0.12 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.16 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"5, Bethersden Court",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2012-11-08 17:18:00,NO DATA!,7.0,7.0,10014314049.0,Address Matched +590903579642011031121570782399498,Flat 4 Beech House,Belts Wood,,ME15 9GT,1600573868,B,B,86,86,Flat,Detached,2011-03-11,E07000110,E14000700,Kent,2011-03-11,rental (social),86,86,108,108.0,1.2,18,1.2,40.0,40.0,211.0,211.0,92.0,92.0,67.7,Unknown,N,1st,N,4.0,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,From main system,Very Good,Very Good,(other premises below),,,Fully double glazed,Good,Good,"Timber frame, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,unheated corridor,8.9,2.37,0.0,N,natural,"Flat 4 Beech House, Belts Wood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2007 onwards,2011-03-11 21:57:07,rental (social),,,10022896433.0,Address Matched +1454394112512016061611041494960846,"1, The Bartons",Staplehurst,,TN12 0EF,8689245478,B,A,83,93,House,Detached,2016-06-16,E07000110,E14000804,Kent,2016-06-16,new dwelling,83,93,91,27.0,1.8,16,0.6,67.0,67.0,300.0,303.0,117.0,63.0,114.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"1, The Bartons, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,NO DATA!,2016-06-16 11:04:14,owner-occupied,21.0,21.0,10014315500.0,Address Matched +1552846049602017061612054959239168,2 Burgess Fields,Lenham Heath,,ME17 2DZ,5670142578,B,A,82,96,House,Detached,2017-06-16,E07000110,E14000700,Kent,2017-06-16,new dwelling,84,96,77,12.0,3.7,13,0.6,109.0,109.0,762.0,763.0,242.0,149.0,286.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Poor,Good,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.28 W/m-¦K,Very Good,Very Good,"Room heaters, wood logs",,,Average thermal transmittance 0.16 W/m-¦K,Good,Good,"Air source heat pump, underfloor, electric",Good,Very Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"2 Burgess Fields, Lenham Heath",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2017-06-16 12:05:49,unknown,25.0,25.0,10093304819.0,Address Matched +1062648602732013121820500051978199,"4, Spurway",Bearsted,,ME14 4BN,961187178,D,B,61,86,House,Semi-Detached,2013-12-12,E07000110,E14000700,Kent,2013-12-18,none of the above,58,87,241,62.0,3.5,46,0.9,49.0,49.0,598.0,374.0,130.0,76.0,74.0,Single,Y,NODATA!,,,2106.0,90.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,89.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Mostly double glazing,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 89% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"4, Spurway, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2013-12-18 20:50:00,owner-occupied,9.0,8.0,200003692514.0,Address Matched +490342139302010052514293373602548,"10, Long Shaw Close",Boughton Monchelsea,,ME17 4GE,5308136768,B,B,81,81,House,Semi-Detached,2010-05-24,E07000110,E14000700,Kent,2010-05-25,marketed sale,78,78,140,140.0,2.3,23,2.3,60.0,60.0,335.0,335.0,115.0,115.0,99.9,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,6.0,6.0,90.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 250 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 90% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.38,0.0,N,natural,"10, Long Shaw Close, Boughton Monchelsea",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2007 onwards,2010-05-25 14:29:33,owner-occupied,,,10022901135.0,Address Matched +470135930012010042016504299200474,"23, Barnhurst Road",Penenden Heath,,ME14 2EL,4418094768,B,B,83,85,Flat,Enclosed Mid-Terrace,2010-04-20,E07000110,E14000804,Kent,2010-04-20,rental (social),81,84,153,128.0,1.4,25,1.2,30.0,30.0,226.0,207.0,97.0,79.0,56.1,Single,Y,1st,N,3.0,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Timber frame, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,unheated corridor,9.2,2.32,0.0,N,natural,"23, Barnhurst Road, Penenden Heath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1976-1982,2010-04-20 16:50:42,rental (social),,,200003707903.0,Address Matched +5fe74833d4078c70007ef37694d0332334c1bdaab08d84542f9f73252d66af21,26 THOMAS PLACE,JAMES WHATMAN WAY,,ME14 1FP,1920358868,B,B,84,84,Flat,Mid-Terrace,2021-07-21,E07000110,E14000804,Kent,2021-07-28,rental,88,88,92,92.0,0.9,16,0.9,68.0,68.0,109.0,109.0,102.0,102.0,55.0,Single,N,05,N,,,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,100.0,0.0,Community scheme,Good,Good,(another dwelling below),,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Very Good,Very Good,,,,(another dwelling above),,,Community scheme,Good,Good,"Flat rate charging, programmer and room thermostat",Poor,Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (community),0.0,unheated corridor,7.07,2.39,0.0,N,natural,"26 THOMAS PLACE, JAMES WHATMAN WAY",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2012 onwards,2021-07-28 08:54:10,Rented (social),6.0,,10014312692.0,Energy Assessor +174703157352008102615520802289354,"41, Egremont Road",Bearsted,,ME15 8LX,3492723568,D,C,67,75,House,End-Terrace,2008-10-24,E07000110,E14000700,Kent,2008-10-26,rental (private),63,71,288,228.0,2.9,48,2.3,54.0,27.0,377.0,313.0,66.0,66.0,60.08,Single,Y,NO DATA!,,,2106.0,85.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,0.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Partial double glazing,Poor,Poor,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 150mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.39,0.0,N,natural,"41, Egremont Road, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2008-10-26 15:52:08,rental (private),,,200003686214.0,Address Matched +1418688999142016030111551649260598,Flat 40 Star House,Pudding Lane,,ME14 1LT,159292478,C,C,78,78,Flat,Enclosed End-Terrace,2016-03-01,E07000110,E14000804,Kent,2016-03-01,new dwelling,81,81,148,148.0,1.2,26,1.2,34.0,34.0,231.0,231.0,89.0,89.0,47.0,standard tariff,,top floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,(other premises below),,,Full secondary glazing,Average,Average,Average thermal transmittance 0.30 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.17 W/m-¦K,Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Flat 40 Star House, Pudding Lane",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2016-03-01 11:55:16,owner-occupied,5.0,5.0,10091195032.0,Address Matched +62a19468d0601058e9426e015660e723561108404576d5da7aca70d6f78edaa8,24 Sycamore Crescent,,,ME16 0AQ,10001430069,D,B,66,82,House,Semi-Detached,2021-08-10,E07000110,E14000804,Kent,2021-08-12,marketed sale,64,81,206,99.0,4.3,33,2.0,112.0,112.0,813.0,588.0,107.0,74.0,130.0,Unknown,Y,,,,,100.0,"double glazing, unknown install date",Normal,0.0,7.0,7.0,78.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, wood logs",,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 78% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.4,0.0,N,natural,24 Sycamore Crescent,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2021-08-12 11:44:22,Owner-occupied,41.0,,200003658326.0,Energy Assessor +426865289342019112516144774112758,"43, Cornhill Place",,,ME15 6GX,7301681768,C,C,80,80,Flat,End-Terrace,2019-11-25,E07000110,E14000804,Kent,2019-11-25,rental (private),82,82,126,126.0,1.5,22,1.5,57.0,57.0,241.0,241.0,94.0,94.0,66.0,Single,Y,Ground,N,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"System built, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,8.95,,,N,natural,"43, Cornhill Place",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2019-11-25 16:14:47,rental (private),,,10022895048.0,Address Matched +446728868312010030120483392000273,"58, Foxglove Rise",,,ME14 2AF,2321823768,C,C,72,80,House,Mid-Terrace,2010-03-01,E07000110,E14000804,Kent,2010-03-01,rental (private),69,77,249,186.0,2.4,41,1.8,54.0,30.0,349.0,299.0,132.0,98.0,58.88,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,23.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 23% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,1.0,NO DATA!,,2.32,0.0,N,natural,"58, Foxglove Rise",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1991-1995,2010-03-01 20:48:33,rental (private),,,200003722758.0,Address Matched +604647289602011031522065980499058,"4, Raggatt Place",,,ME15 7AB,4648184868,C,C,76,78,Bungalow,Mid-Terrace,2011-03-15,E07000110,E14000700,Kent,2011-03-15,rental (social),72,75,245,218.0,1.9,41,1.7,25.0,25.0,313.0,299.0,116.0,94.0,46.27,Single,Y,NO DATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,100.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.35,0.0,N,natural,"4, Raggatt Place",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2011-03-15 22:06:59,rental (social),,,200003727777.0,Address Matched +316756410202009070210254460410798,"11, Greensands Road",Bearsted,,ME15 8NY,7232214668,D,C,62,76,House,Semi-Detached,2009-07-01,E07000110,E14000700,Kent,2009-07-02,marketed sale,59,72,280,188.0,4.1,46,2.8,79.0,44.0,539.0,407.0,193.0,109.0,87.84,Single,Y,NO DATA!,,,2106.0,90.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,20.0,0.0,From main system,Average,Good,"Solid, no insulation (assumed)",,,Partial double glazing,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Average,Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 20% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.36,0.0,N,natural,"11, Greensands Road, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2009-07-02 10:25:44,owner-occupied,,,200003723191.0,Address Matched +872041429702013011517574002479658,"27, Chartwell Drive",,,ME16 0WR,715824078,C,B,74,86,House,Mid-Terrace,2013-01-15,E07000110,E14000804,Kent,2013-01-15,marketed sale,73,85,132,62.0,3.3,25,1.6,115.0,66.0,500.0,469.0,128.0,72.0,130.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,6.0,6.0,27.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 27% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"27, Chartwell Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2013-01-15 17:57:40,owner-occupied,15.0,4.0,10022901770.0,Address Matched +472624764152010042109284390200774,71 Roman Way,Boughton Monchelsea,,ME17 4SH,7443405768,B,B,82,84,House,End-Terrace,2010-04-21,E07000110,E14000700,Kent,2010-04-21,new dwelling,82,82,129,123.0,1.7,21,1.7,69.0,42.0,255.0,259.0,96.0,96.0,81.71,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,,From main system,Very Good,Very Good,Average thermal transmittance 0.19 W/m?K,Very Good,Very Good,Fully double glazed,Good,Good,Average thermal transmittance 0.29 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.16 W/m?K,Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 36% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.33,,,NO DATA!,"71 Roman Way, Boughton Monchelsea",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2010-04-21 09:28:43,,,,10022896597.0,Address Matched +18255089602012022210485842822228,241 Wallis Place,Hart Street,,ME16 8FF,9665088468,B,B,83,83,Flat,NO DATA!,2012-02-22,E07000110,E14000804,Kent,2012-02-22,new dwelling,88,88,82,82.0,0.9,16,0.9,35.0,35.0,177.0,177.0,78.0,78.0,61.09,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,6.0,,From main system,Good,Good,(other premises below),,,Fully double glazed,Good,Good,Average thermal transmittance 0.28 W/m?K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,,,NO DATA!,"241 Wallis Place, Hart Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2012-02-22 10:48:58,,6.0,6.0,10022900849.0,Address Matched +400691402802020061206564076009598,"11, Morella Walk",Lenham,,ME17 2JX,3830300768,C,B,74,88,House,Mid-Terrace,2020-06-11,E07000110,E14000700,Kent,2020-06-12,rental (private),73,87,168,70.0,2.6,30,1.1,89.0,89.0,450.0,394.0,93.0,65.0,88.0,dual,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,82.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Timber frame, as built, partial insulation (assumed)",Average,Average,,,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 82% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"11, Morella Walk, Lenham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2020-06-12 06:56:40,rental (private),,,200003710488.0,Address Matched +625721329022011050613563646568469,5 Sunningdale Court,Square Hill Road,,ME15 7TT,6497246868,C,C,70,72,Flat,Semi-Detached,2011-05-06,E07000110,E14000804,Kent,2011-05-06,rental (social),72,74,215,193.0,2.0,41,1.8,37.0,27.0,311.0,297.0,107.0,96.0,47.34,Unknown,Y,1st,N,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,60.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"System built, as built, no insulation (assumed)",Poor,Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 60% of fixed outlets,Good,Good,mains gas (not community),0.0,unheated corridor,4.55,2.27,0.0,,natural,"5 Sunningdale Court, Square Hill Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2011-05-06 13:56:36,rental (social),5.0,3.0,200003696574.0,Address Matched +5fe18b21b1bba9de205345d23d46e42cf608213b5aef76fc0503fa1ce8b61bc7,18 CLOVER TERRACE,NORTHUMBERLAND ROAD,,ME15 7SY,10001392020,E,C,51,80,House,End-Terrace,2021-06-29,E07000110,E14000700,Kent,2021-07-01,ECO assessment,47,78,329,121.0,5.6,58,2.1,152.0,76.0,1021.0,618.0,160.0,86.0,98.0,Single,Y,,,,,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,0.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,"Pitched, insulated (assumed)",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,,,2.75,0.0,N,natural,"18 CLOVER TERRACE, NORTHUMBERLAND ROAD",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2021-07-01 10:48:52,Rented (social),10.0,,200003714098.0,Energy Assessor +1001013639902015090814142115350588,"68, Queens Road",,,ME16 0LG,8931633178,D,C,56,69,Bungalow,Semi-Detached,2015-09-08,E07000110,E14000804,Kent,2015-09-08,rental (private),48,60,311,219.0,5.0,55,3.5,84.0,57.0,932.0,902.0,98.0,64.0,91.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,55.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"System built, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Roof room(s), no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 55% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"68, Queens Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2015-09-08 14:14:21,rental (private),,,200003690589.0,Address Matched +1400242671112016011516362096960147,"27, Oak Lane",Headcorn,,TN27 9TH,1763161478,D,B,64,89,House,Semi-Detached,2016-01-15,E07000110,E14000700,Kent,2016-01-15,assessment for green deal,59,88,265,57.0,3.3,47,0.7,67.0,48.0,556.0,345.0,158.0,72.0,70.0,Single,Y,NODATA!,,,2107.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,58.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 58% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"27, Oak Lane, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,England and Wales: 1967-1975,2016-01-15 16:36:20,owner-occupied,,,200003699292.0,Address Matched +1529336507052017032219291597230055,5 Little Mill Farm Cottages,Underlyn Lane,Marden,TN12 9AU,583770578,E,A,39,100,House,Semi-Detached,2017-03-21,E07000110,E14000804,Kent,2017-03-22,rental (private),20,66,662,191.0,9.3,115,2.7,60.0,60.0,1109.0,675.0,346.0,95.0,81.0,dual,N,NODATA!,,,2401.0,22.0,"double glazing, unknown install date",Normal,4.0,5.0,5.0,100.0,0.0,"Electric immersion, off-peak",Very Poor,Poor,"Solid, no insulation (assumed)",NO DATA!,,Some double glazing,Very Poor,Very Poor,"Timber frame, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 250 mm loft insulation",Good,Good,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,NO DATA!,,,,N,natural,"5 Little Mill Farm Cottages, Underlyn Lane, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: before 1900,2017-03-22 19:29:15,rental (private),,,200003711524.0,Address Matched +841783519062012100408335702848392,"39, Pope Street",,,ME16 8LQ,9029112078,D,B,68,89,House,Mid-Terrace,2012-10-04,E07000110,E14000804,Kent,2012-10-04,marketed sale,68,91,199,39.0,2.4,38,0.5,40.0,40.0,435.0,327.0,86.0,54.0,63.0,dual,Y,NODATA!,,,2107.0,100.0,double glazing installed before 2002,Normal,1.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"39, Pope Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2012-10-04 08:33:57,unknown,8.0,8.0,200003655828.0,Address Matched +5ff98bcccf61b916213887402e2b5ea844d60141a460445ff253a2d29de4d362,59A WEEK STREET,MAIDSTONE,,ME14 1QU,10001554305,E,D,53,61,Maisonette,Mid-Terrace,2021-07-16,E07000110,E14000804,Kent,2021-07-18,rental,34,43,463,374.0,6.8,78,5.5,80.0,82.0,1093.0,868.0,333.0,277.0,86.0,Unknown,N,01,Y,,,20.0,double glazing installed during or after 2002,Normal,1.0,3.0,3.0,100.0,0.0,"Electric immersion, off-peak",Very Poor,Poor,(other premises below),,,Some double glazing,Poor,Poor,"Solid brick, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,"Pitched, 200 mm loft insulation",Good,Good,Electric storage heaters,Average,Poor,Controls for high heat retention storage heaters,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,no corridor,,2.46,0.0,N,natural,"59A WEEK STREET, MAIDSTONE",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2021-07-18 17:06:14,Rented (private),14.0,,10093302629.0,Energy Assessor +787317578512018051611053792080591,"6, St. Catherines Road",,,ME15 9WP,5105828968,C,B,80,81,Flat,Semi-Detached,2018-03-02,E07000110,E14000700,Kent,2018-05-16,rental (social),77,78,196,188.0,1.5,33,1.4,70.0,39.0,126.0,136.0,162.0,162.0,45.0,dual,N,1st,Y,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,18.0,0.0,From main system,Poor,Poor,(another dwelling below),NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Very Good,Very Good,,,,(another dwelling above),,,"Boiler and radiators, electric",Very Poor,Poor,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 18% of fixed outlets,Poor,Poor,electricity (not community),0.0,heated corridor,,,,N,natural,"6, St. Catherines Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2007 onwards,2018-05-16 11:05:37,rental (social),,,10014311724.0,Address Matched +1787675532502020022614110265902858,"46, Woolley Road",,,ME15 8QA,3569239678,D,B,63,84,House,Semi-Detached,2020-02-25,E07000110,E14000700,Kent,2020-02-26,marketed sale,58,81,261,105.0,3.9,46,1.6,131.0,66.0,529.0,459.0,219.0,92.0,84.0,Single,Y,NODATA!,,,2502.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,0.0,0.0,"From main system, no cylinder thermostat",Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, 270 mm loft insulation",Good,Good,"Warm air, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"46, Woolley Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2020-02-26 14:11:02,owner-occupied,,,200003685026.0,Address Matched +1543638925332017051507560669978504,"13, Mamignot Close",Bearsted,,ME14 4PT,2489571578,D,B,62,84,House,Detached,2017-05-12,E07000110,E14000700,Kent,2017-05-15,marketed sale,56,81,261,97.0,4.2,46,1.6,66.0,66.0,677.0,489.0,197.0,76.0,92.0,dual,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,6.0,6.0,100.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"13, Mamignot Close, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2017-05-15 07:56:06,owner-occupied,,,200003688886.0,Address Matched +1570824269242017083012542556337008,"2, Headcorn Road",Ulcombe,,ME17 1EB,1293963578,E,D,39,67,House,Semi-Detached,2017-08-30,E07000110,E14000700,Kent,2017-08-30,marketed sale,34,57,284,138.0,9.0,75,4.9,72.0,72.0,937.0,559.0,233.0,201.0,121.0,Single,N,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,5.0,5.0,100.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, oil",Average,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,oil (not community),0.0,NO DATA!,,,,N,natural,"2, Headcorn Road, Ulcombe",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1900-1929,2017-08-30 12:54:25,owner-occupied,,,200003701126.0,Address Matched +741487459262012012512570144658422,"2, Ash Tree Gardens",Weavering,,ME14 5LB,2431594968,C,C,72,73,House,Detached,2012-01-25,E07000110,E14000700,Kent,2012-01-25,marketed sale,70,71,157,150.0,4.0,30,3.8,108.0,60.0,610.0,616.0,112.0,112.0,121.41,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,6.0,6.0,20.0,0.0,From main system,Good,Good,"Suspended, insulated (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, mains gas",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 20% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,2.36,0.0,,natural,"2, Ash Tree Gardens, Weavering",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2003-2006,2012-01-25 12:57:01,owner-occupied,15.0,3.0,10022896236.0,Address Matched +764422897232012033111094717268103,The Chimbles,Heath Road,Boughton Monchelsea,ME17 4JN,9387166968,D,D,60,65,Bungalow,Detached,2012-03-29,E07000110,E14000700,Kent,2012-03-31,marketed sale,52,57,219,196.0,5.9,50,5.2,69.0,70.0,882.0,798.0,179.0,145.0,82.46,dual,N,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,5.0,5.0,89.0,0.0,"From main system, no cylinder thermostat",Very Poor,Very Poor,"To external air, uninsulated (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, wood logs",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, oil",Average,Average,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 89% of fixed outlets,Very Good,Very Good,oil (not community),0.0,NO DATA!,,2.54,0.0,,natural,"The Chimbles, Heath Road, Boughton Monchelsea",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2012-03-31 11:09:47,owner-occupied,9.0,8.0,200003679803.0,Address Matched +1815799615952020080508424923000579,"39, Finglesham Court",,,ME15 7HZ,5969531778,C,B,72,90,House,Enclosed End-Terrace,2020-08-03,E07000110,E14000700,Kent,2020-08-05,marketed sale,73,91,224,52.0,1.7,39,0.4,37.0,37.0,324.0,306.0,67.0,44.0,42.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,2.0,2.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"39, Finglesham Court",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1991-1995,2020-08-05 08:42:49,owner-occupied,,,200003711949.0,Address Matched +1020558438412015050610402797050712,"72, Langdale Rise",,,ME16 0EX,7243874178,D,B,66,84,House,Detached,2015-05-06,E07000110,E14000804,Kent,2015-05-06,none of the above,60,80,220,94.0,4.3,39,1.9,91.0,71.0,740.0,547.0,153.0,87.0,111.0,dual,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,6.0,6.0,72.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 25 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 72% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"72, Langdale Rise",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2015-05-06 10:40:27,owner-occupied,,,200003659048.0,Address Matched +501257557612010072022055890200673,Flat 4/A Telford House,Boxley Road,,ME14 2TN,6334707768,C,C,75,77,Maisonette,Enclosed Mid-Terrace,2010-07-20,E07000110,E14000804,Kent,2010-07-20,rental (social),72,73,209,200.0,2.3,35,2.2,70.0,35.0,366.0,372.0,89.0,89.0,66.75,Single,Y,2nd,Y,4.0,2106.0,90.0,double glazing installed before 2002,More Than Typical,0.0,3.0,3.0,0.0,0.0,From main system,Very Good,Very Good,(other premises below),,,Mostly double glazing,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Flat, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.29,0.0,N,natural,"Flat 4/A Telford House, Boxley Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2010-07-20 22:05:58,rental (social),,,200003704517.0,Address Matched +1533911679062017050312483351258353,14 Hayle Mill,Hayle Mill Road,,ME15 6JW,5519701578,D,C,63,74,Flat,End-Terrace,2017-04-05,E07000110,E14000804,Kent,2017-05-03,marketed sale,59,72,317,220.0,2.9,54,2.0,40.0,40.0,503.0,302.0,181.0,154.0,54.0,Unknown,Y,Ground,N,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,100.0,0.0,From main system,Poor,Poor,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Granite or whinstone, as built, no insulation (assumed)",Very Poor,Very Poor,,,,(another dwelling above),,,"Boiler and radiators, electric",Very Poor,Poor,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,heated corridor,,,,N,natural,"14 Hayle Mill, Hayle Mill Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2017-05-03 12:48:33,owner-occupied,,,10022896934.0,Address Matched +870962609962013011114110784408607,"25, Leigh Avenue",,,ME15 9UY,896024078,D,C,62,77,House,Semi-Detached,2013-01-10,E07000110,E14000804,Kent,2013-01-11,marketed sale,62,77,214,115.0,3.4,41,1.9,75.0,47.0,599.0,560.0,113.0,76.0,84.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,5.0,5.0,42.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Roof room(s), ceiling insulated",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 42% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"25, Leigh Avenue",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2013-01-11 14:11:07,owner-occupied,12.0,5.0,200003675543.0,Address Matched +593730465152013063007152899970188,Smiths Hill Oast,Smiths Hill,West Farleigh,ME15 0PG,1826593868,E,C,50,74,House,Detached,2013-06-10,E07000110,E14000804,Kent,2013-06-30,marketed sale,37,62,230,120.0,17.0,54,9.1,172.0,113.0,2867.0,1717.0,246.0,187.0,313.0,dual,N,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,3.0,11.0,11.0,47.0,0.0,From main system,Average,Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Poor,Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, oil",Average,Average,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 47% of fixed outlets,Good,Good,oil (not community),0.0,NO DATA!,,,0.0,,natural,"Smiths Hill Oast, Smiths Hill, West Farleigh",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2013-06-30 07:15:28,owner-occupied,49.0,23.0,200003726472.0,Address Matched +1644874866552018070107235699280956,"9, Plains Avenue",,,ME15 7AT,9606698578,E,C,49,78,House,Semi-Detached,2018-06-29,E07000110,E14000700,Kent,2018-07-01,marketed sale,41,72,382,156.0,6.1,67,2.5,81.0,61.0,1009.0,643.0,165.0,72.0,90.0,Unknown,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,5.0,5.0,67.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, mains gas",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 67% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"9, Plains Avenue",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1900-1929,2018-07-01 07:23:56,owner-occupied,,,200003683664.0,Address Matched +735025619222011122121535214298329,"19, Goldthorne Close",,,ME14 5NX,2151124968,D,C,59,75,Maisonette,End-Terrace,2011-12-21,E07000110,E14000804,Kent,2011-12-21,marketed sale,56,77,296,152.0,3.5,57,1.8,51.0,35.0,545.0,292.0,137.0,107.0,61.32,Single,Y,1st,Y,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,57.0,0.0,From main system,Average,Average,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 57% of fixed outlets,Good,Good,mains gas (not community),0.0,no corridor,,2.36,0.0,,natural,"19, Goldthorne Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2011-12-21 21:53:52,owner-occupied,7.0,4.0,200003716166.0,Address Matched +776880819922012041712204677838272,"54, Leonard Gould Way",Loose,,ME15 9FX,7798157968,B,B,82,82,House,Semi-Detached,2012-04-17,E07000110,E14000700,Kent,2012-04-17,new dwelling,84,84,84,84.0,2.1,16,2.1,77.0,77.0,337.0,337.0,100.0,100.0,131.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,10.0,,From main system,Good,Good,Average thermal transmittance 0.12 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m?K,Very Good,Very Good,"Room heaters, electric",,,Average thermal transmittance 0.12 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in 77% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.45,,,NO DATA!,"54, Leonard Gould Way, Loose",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2012-04-17 12:20:46,,13.0,10.0,10014311171.0,Address Matched +6041ffe42d51955acc18c6c7b111a61c66e3e9943cb4478026f19683110d4cce,54 CRANFORD ROAD,,,ME16 9FZ,10001533417,B,B,86,87,House,Semi-Detached,2021-07-13,E07000110,E14000804,Kent,2021-07-13,new dwelling,87,90,73,57.0,1.1,13,0.9,73.0,73.0,220.0,221.0,89.0,51.0,87.0,standard tariff,,,N,,,100.0,,,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.19 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.16 W/m-¦K,Good,Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.31,,,,54 CRANFORD ROAD,Maidstone,Maidstone and The Weald,ALLINGTON,2018,2021-07-13 08:12:39,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,30.0,,10094440377.0,Energy Assessor +815675239802012071920355901029418,"281, Willington Street",,,ME15 8AL,3820130078,D,C,66,77,House,Semi-Detached,2012-07-19,E07000110,E14000700,Kent,2012-07-19,marketed sale,64,75,193,122.0,3.6,37,2.3,66.0,52.0,584.0,587.0,113.0,77.0,96.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,2.0,5.0,5.0,73.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 73% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"281, Willington Street",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2012-07-19 20:35:59,owner-occupied,11.0,8.0,200003684373.0,Address Matched +610135929302011032812221381592388,"51, Dixon Close",,,ME15 6SS,5331225868,D,C,59,72,Flat,End-Terrace,2011-03-28,E07000110,E14000804,Kent,2011-03-28,marketed sale,58,71,286,201.0,4.2,47,3.0,105.0,53.0,726.0,524.0,110.0,110.0,89.4,Single,Y,Ground,N,3.0,2106.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.35,0.0,N,natural,"51, Dixon Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2011-03-28 12:22:13,owner-occupied,,,200003664900.0,Address Matched +6658539842018111218090545789528,Flat 5,Rosewood House,Brishing Lane,ME15 9EF,4878337468,B,B,81,81,Flat,Detached,2018-11-12,E07000110,E14000700,Kent,2018-11-12,rental (social),83,84,111,108.0,1.4,19,1.4,73.0,59.0,216.0,218.0,98.0,98.0,72.0,Single,Y,3rd,N,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,3.0,3.0,75.0,0.0,From main system,Good,Good,(another dwelling below),NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,8.12,,,N,natural,"Flat 5, Rosewood House, Brishing Lane",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2003-2006,2018-11-12 18:09:05,rental (social),,,10014307531.0,Address Matched +297750180702009060422324660210248,"40, Halstead Walk",,,ME16 0PN,772282668,D,C,65,76,House,Mid-Terrace,2009-06-04,E07000110,E14000804,Kent,2009-06-04,marketed sale,60,73,305,207.0,3.3,51,2.2,55.0,30.0,427.0,308.0,123.0,103.0,64.39,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,4.0,4.0,20.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 20% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.42,0.0,N,natural,"40, Halstead Walk",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2009-06-04 22:32:46,owner-occupied,,,200003723308.0,Address Matched +425549762022020020716422131638890,"32, Melville Road",,,ME15 7UY,9363671768,D,C,57,79,House,End-Terrace,2020-02-07,E07000110,E14000804,Kent,2020-02-07,rental (private),51,75,354,162.0,3.7,62,1.7,50.0,50.0,681.0,528.0,85.0,57.0,60.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,2.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"To unheated space, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"32, Melville Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2020-02-07 16:42:21,rental (private),,,200003696082.0,Address Matched +598010609262011092323172884278419,8 Grangehouse,Fernhill Road,,ME16 9BN,1872034868,C,C,79,80,Flat,Semi-Detached,2011-09-23,E07000110,E14000804,Kent,2011-09-23,rental (social),83,84,115,110.0,1.4,22,1.3,52.0,36.0,237.0,239.0,79.0,79.0,63.19,Single,Y,1st,N,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,57.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 57% of fixed outlets,Good,Good,mains gas (not community),0.0,unheated corridor,1.1,2.3,0.0,,natural,"8 Grangehouse, Fernhill Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2011-09-23 23:17:28,rental (social),7.0,4.0,200003722459.0,Address Matched +232321810922009021813395587788881,63 Sapphire House,Coral Park,,ME14 5HQ,8876177568,B,B,82,82,Flat,Mid-Terrace,2009-02-18,E07000110,E14000804,Kent,2009-02-18,rental (private),76,76,196,196.0,1.9,30,1.9,38.0,38.0,135.0,135.0,114.0,114.0,65.69,dual,N,3rd,N,4.0,2402.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,"Electric immersion, off-peak",Average,Poor,(other premises below),,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,Electric storage heaters,Average,Poor,Automatic charge control,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity - this is for backwards compatibility only and should not be used,0.0,heated corridor,0.0,2.39,0.0,N,natural,"63 Sapphire House, Coral Park",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2009-02-18 13:39:55,rental (private),,,10022893752.0,Address Matched +331317310102009072318301968512878,"31, Forestdale Road",,,ME5 9NB,7174815668,E,D,52,66,House,Detached,2009-07-23,E07000110,E14000700,Kent,2009-07-23,marketed sale,46,60,367,257.0,6.1,61,4.3,94.0,49.0,841.0,632.0,159.0,115.0,99.16,Single,Y,NO DATA!,,,2104.0,10.0,double glazing installed during or after 2002,Normal,1.0,6.0,6.0,10.0,1.0,From main system,Average,Good,"Solid, no insulation (assumed)",,,Partial double glazing,Very Poor,Very Poor,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Average,Good,Programmer and room thermostat,Poor,Poor,Low energy lighting in 10% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.38,0.0,N,natural,"31, Forestdale Road",Maidstone,Faversham and Mid Kent,CHATHAM,England and Wales: 1983-1990,2009-07-23 18:30:19,owner-occupied,,,200003709099.0,Address Matched +448255239602010030305445171300578,"33, Waterlow Road",,,ME14 2TR,4624333768,D,D,65,66,House,Mid-Terrace,2010-03-03,E07000110,E14000804,Kent,2010-03-03,marketed sale,66,68,301,290.0,2.7,43,2.6,32.0,32.0,515.0,496.0,90.0,90.0,61.77,Single,Y,NO DATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,1.0,4.0,4.0,100.0,3.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Sandstone, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,0.0,N,natural,"33, Waterlow Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2010-03-03 05:44:51,owner-occupied,,,200003703135.0,Address Matched +780765489002012042619412893722868,Flat 15 Hobart House,Ruskin Grove,,ME15 9WL,21687968,C,C,76,76,Flat,End-Terrace,2012-04-26,E07000110,E14000700,Kent,2012-04-26,new dwelling,78,78,156,156.0,1.8,28,1.8,48.0,48.0,268.0,268.0,117.0,117.0,64.0,standard tariff,,top floor,,,,,NO DATA!,NO DATA!,,,,7.0,,From main system,Average,Good,(other premises below),,,Fully double glazed,Good,Good,Average thermal transmittance 0.28 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.14 W/m?K,Very Good,Very Good,"Air source heat pump, radiators, electric",Average,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 78% of fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",0.0,NO DATA!,,2.31,,,NO DATA!,"Flat 15 Hobart House, Ruskin Grove",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2012-04-26 19:41:28,,9.0,7.0,10014311644.0,Address Matched +994488629262013082200303072298097,"37, Gleneagles Drive",,,ME15 6FH,9715292178,D,C,56,80,House,Detached,2013-08-21,E07000110,E14000804,Kent,2013-08-22,marketed sale,55,81,277,101.0,3.6,53,1.4,83.0,41.0,637.0,505.0,125.0,69.0,68.0,Single,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,"Pitched, insulated (assumed)",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"37, Gleneagles Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2013-08-22 00:30:30,owner-occupied,10.0,0.0,200003664341.0,Address Matched +1680838466132019061115152672978700,Flat 1,"2, Rubens Court",Coxheath,ME17 4FY,6012751678,B,B,83,83,Flat,Semi-Detached,2019-06-11,E07000110,E14000804,Kent,2019-06-11,new dwelling,88,88,99,99.0,0.8,17,0.8,39.0,39.0,166.0,166.0,58.0,58.0,48.0,standard tariff,,ground floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Flat 1, 2, Rubens Court, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2019-06-11 15:15:26,unknown,15.0,15.0,10094440242.0,Address Matched +1571112188332017083021260173778104,"5, Mount Lane",Bearsted,,ME14 4DD,8423173578,D,B,65,83,Bungalow,Semi-Detached,2017-08-30,E07000110,E14000700,Kent,2017-08-30,marketed sale,64,82,238,98.0,2.9,42,1.2,49.0,49.0,575.0,466.0,97.0,64.0,70.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",More Than Typical,1.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, 270 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"5, Mount Lane, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2017-08-30 21:26:01,owner-occupied,,,200003692116.0,Address Matched +961032959262013062715413420538977,"34, Hadlow Close",Oakwood Park,,ME16 8FS,7204550178,B,B,84,84,House,Mid-Terrace,2013-06-27,E07000110,E14000804,Kent,2013-06-27,new dwelling,87,87,78,78.0,1.2,15,1.2,47.0,47.0,215.0,215.0,89.0,89.0,81.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.12 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.19 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"34, Hadlow Close, Oakwood Park",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2013-06-27 15:41:34,NO DATA!,0.0,0.0,10014314545.0,Address Matched +721059479062011110717314203538169,Flat 20 Cavendish Place,Cavendish Way,Bearsted,ME15 8FW,6020713968,B,B,84,84,Flat,NO DATA!,2011-11-07,E07000110,E14000700,Kent,2011-11-07,new dwelling,88,88,82,79.0,1.0,16,1.0,50.0,40.0,212.0,213.0,79.0,79.0,65.1,standard tariff,,top floor,,,,,NO DATA!,NO DATA!,,,,6.0,,From main system,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.21 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.10 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,,,NO DATA!,"Flat 20 Cavendish Place, Cavendish Way, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2011-11-07 17:31:42,,8.0,6.0,10014312997.0,Address Matched +1146021039222014062012563873878844,"33, Westway",Coxheath,,ME17 4EZ,4787363278,D,B,60,86,Bungalow,Semi-Detached,2014-05-23,E07000110,E14000804,Kent,2014-06-20,assessment for green deal,58,87,254,60.0,3.2,49,0.8,71.0,41.0,606.0,401.0,87.0,61.0,66.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,29.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 29% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"33, Westway, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2014-06-20 12:56:38,owner-occupied,7.0,2.0,200003715242.0,Address Matched +1415516869602016022009174247269688,"6, Little Buckland Avenue",,,ME16 0BG,1694962478,D,B,60,83,House,Semi-Detached,2016-02-18,E07000110,E14000804,Kent,2016-02-20,marketed sale,51,80,262,93.0,5.6,46,2.0,87.0,87.0,941.0,570.0,220.0,80.0,121.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,4.0,7.0,7.0,76.0,0.0,From main system,Average,Average,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 76% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"6, Little Buckland Avenue",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2016-02-20 09:17:42,owner-occupied,,,200003659558.0,Address Matched +1819982168032020082117230604278802,"15, Midley Close",,,ME16 0TY,6204861778,C,B,69,88,House,Semi-Detached,2020-08-21,E07000110,E14000804,Kent,2020-08-21,marketed sale,68,88,224,58.0,2.4,39,0.7,73.0,51.0,380.0,314.0,121.0,72.0,60.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,57.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 57% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"15, Midley Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2020-08-21 17:23:06,owner-occupied,,,200003662286.0,Address Matched +585218229102011020215140381390728,Flat 12 Harbledown House,Fant Lane,,ME16 8NZ,8175423868,B,B,85,85,Flat,End-Terrace,2011-02-02,E07000110,E14000804,Kent,2011-02-02,rental (social),82,82,158,158.0,1.2,26,1.2,24.0,24.0,190.0,190.0,103.0,103.0,43.92,Unknown,Y,1st,N,3.0,2305.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,100.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,(another dwelling above),,,Community scheme,Good,Good,"Flat rate charging, programmer and TRVs",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,heated corridor,,2.27,0.0,N,natural,"Flat 12 Harbledown House, Fant Lane",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2011-02-02 15:14:03,rental (social),,,, +1550249029142017060714500953230168,"9, Cowdrey Close",,,ME16 8PN,5174322578,E,B,48,81,House,Semi-Detached,2017-06-06,E07000110,E14000804,Kent,2017-06-07,non marketed sale,43,79,345,104.0,6.1,60,1.9,93.0,64.0,1107.0,583.0,189.0,77.0,100.0,Single,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,2.0,5.0,5.0,55.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 55% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"9, Cowdrey Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2017-06-07 14:50:09,owner-occupied,,,200003674857.0,Address Matched +1400859349922016011411304591948426,"8, Mynn Crescent",Bearsted,,ME14 4AS,2968461478,C,B,71,84,House,Detached,2016-01-14,E07000110,E14000700,Kent,2016-01-14,assessment for green deal,67,81,179,90.0,3.9,32,2.0,71.0,71.0,696.0,571.0,142.0,89.0,124.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,6.0,6.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"8, Mynn Crescent, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2016-01-14 11:30:45,owner-occupied,,,200003691811.0,Address Matched +242864272832018030518034059268805,"9, Ashford Drive",Kingswood,,ME17 3PB,7509888568,C,B,70,85,Bungalow,Semi-Detached,2018-02-20,E07000110,E14000700,Kent,2018-03-05,marketed sale,67,82,204,97.0,3.1,36,1.5,99.0,59.0,512.0,459.0,104.0,73.0,86.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,33.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, 270 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 33% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"9, Ashford Drive, Kingswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2018-03-05 18:03:40,owner-occupied,,,200003700315.0,Address Matched +1174460153432014071616230134978500,"101, Merton Road",Bearsted,,ME15 8LR,5014565278,C,B,73,88,House,End-Terrace,2014-07-16,E07000110,E14000700,Kent,2014-07-16,marketed sale,74,90,164,46.0,1.9,31,0.6,49.0,49.0,381.0,346.0,88.0,61.0,60.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,75.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"101, Merton Road, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2014-07-16 16:23:01,owner-occupied,12.0,9.0,200003686093.0,Address Matched +1327335649042015060314522934650578,"52, Heath Road",,,ME16 9JU,5032546378,D,C,63,79,House,Semi-Detached,2015-06-03,E07000110,E14000804,Kent,2015-06-03,rental (private),58,74,253,138.0,3.8,45,2.1,108.0,54.0,616.0,601.0,159.0,82.0,85.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,0.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"52, Heath Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2015-06-03 14:52:29,rental (private),,,200003665898.0,Address Matched +1086217639022014020716392019438494,"13, Fant Lane",,,ME16 8NL,9111349178,D,B,60,87,House,Mid-Terrace,2014-02-07,E07000110,E14000804,Kent,2014-02-07,marketed sale,58,89,264,52.0,3.0,51,0.7,72.0,38.0,583.0,377.0,83.0,58.0,60.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,3.0,3.0,3.0,12.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 12% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"13, Fant Lane",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2014-02-07 16:39:20,owner-occupied,8.0,1.0,200003674342.0,Address Matched +1210605407452014111310240891949829,Flat 3,30 Ashford Road,,ME14 5BH,8974718278,C,C,74,74,Flat,NO DATA!,2014-11-12,E07000110,E14000804,Kent,2014-11-13,new dwelling,62,62,404,404.0,1.8,68,1.8,30.0,30.0,173.0,173.0,117.0,117.0,27.0,off-peak 7 hour,,top floor,,,,,NO DATA!,NO DATA!,,,,,0.0,Electric instantaneous at point of use,Very Poor,Poor,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.38 W/m-¦K,Good,Good,,,,Average thermal transmittance 0.16 W/m-¦K,Good,Good,Electric storage heaters,Average,Very Poor,Automatic charge control,Average,Average,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"Flat 3, 30 Ashford Road",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2014-11-13 10:24:08,unknown,4.0,3.0,, +685632377112011101208133496999494,"62, Tarragon Road",,,ME16 0NG,4477760968,C,C,77,78,House,End-Terrace,2011-10-11,E07000110,E14000804,Kent,2011-10-12,marketed sale,76,78,126,115.0,3.1,24,2.8,62.0,62.0,490.0,455.0,115.0,103.0,127.84,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,7.0,7.0,100.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,2.5,0.0,,natural,"62, Tarragon Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2011-10-12 08:13:34,owner-occupied,15.0,15.0,10022901818.0,Address Matched +973120649842013071717213016179038,Flat 7 Walsingham House,Wheeler Street,,ME14 2UD,2887341178,D,C,68,79,Flat,Mid-Terrace,2013-07-17,E07000110,E14000804,Kent,2013-07-17,rental (social),68,82,193,111.0,2.5,37,1.4,60.0,42.0,432.0,271.0,107.0,85.0,66.0,Single,Y,Ground,N,,2107.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,57.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 57% of fixed outlets,Good,Good,mains gas (not community),0.0,no corridor,,,0.0,,natural,"Flat 7 Walsingham House, Wheeler Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2013-07-17 17:21:30,rental (social),7.0,4.0,200003704308.0,Address Matched +1667821469142018102916532767082718,Flat 135,Brenchley House,123-135 Week Street,ME14 1FY,6116160678,C,C,75,75,Flat,Mid-Terrace,2018-10-29,E07000110,E14000700,Kent,2018-10-29,new dwelling,79,79,173,173.0,1.3,30,1.3,32.0,32.0,216.0,216.0,99.0,99.0,41.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,Community scheme,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.30 W/m-¦K,Good,Good,,,,Average thermal transmittance 0.18 W/m-¦K,Good,Good,Community scheme,Good,Good,"Charging system linked to use of community heating, programmer and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,NO DATA!,,NO DATA!,,,,,NO DATA!,"Flat 135, Brenchley House, 123-135 Week Street",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2018-10-29 16:53:27,unknown,6.0,6.0,10094440811.0,Address Matched +226465448312009020521141302010559,"43, Bicknor Road",,,ME15 9NX,5984827568,C,C,76,79,House,Mid-Terrace,2009-02-04,E07000110,E14000700,Kent,2009-02-05,rental (social),74,76,183,169.0,2.5,30,2.3,58.0,38.0,302.0,314.0,127.0,99.0,80.52,Unknown,Y,NO DATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,50.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.3,0.0,N,natural,"43, Bicknor Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2009-02-05 21:14:13,rental (social),,,200003682778.0,Address Matched +338871860812009080509312107010866,"15, Alkham Road",,,ME14 5PA,8691075668,F,E,38,46,Flat,Semi-Detached,2009-08-04,E07000110,E14000804,Kent,2009-08-05,rental (private),32,42,675,534.0,6.0,103,4.7,35.0,35.0,703.0,556.0,220.0,220.0,58.23,dual,Y,1st,N,2.0,2401.0,0.0,INVALID!,Normal,0.0,3.0,3.0,90.0,1.0,"Electric immersion, off-peak",Very Poor,Poor,(other premises below),,,Single glazed,Very Poor,Very Poor,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 25 mm loft insulation",Poor,Poor,Electric storage heaters,Poor,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 90% of fixed outlets,Very Good,Very Good,electricity - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.35,0.0,N,natural,"15, Alkham Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2009-08-05 09:31:21,rental (private),,,200003716211.0,Address Matched +1034740889922013111512352905178177,"13, Goodwin Drive",Penenden Heath,,ME14 2DL,7091875178,E,B,48,83,House,Semi-Detached,2013-11-13,E07000110,E14000804,Kent,2013-11-15,none of the above,43,82,308,82.0,6.3,59,1.7,71.0,71.0,1081.0,501.0,161.0,78.0,107.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,78.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, no insulation",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 78% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"13, Goodwin Drive, Penenden Heath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2013-11-15 12:35:29,owner-occupied,23.0,18.0,200003706348.0,Address Matched +1428326877632016032913240558278801,"72, Charlbury Close",,,ME16 8TE,7198853478,E,C,53,71,House,Semi-Detached,2016-03-29,E07000110,E14000804,Kent,2016-03-29,marketed sale,51,68,274,164.0,5.9,48,3.6,84.0,84.0,859.0,738.0,549.0,330.0,124.0,Unknown,Y,NODATA!,,,2107.0,100.0,"double glazing, unknown install date",Normal,1.0,7.0,7.0,83.0,0.0,No system present: electric immersion assumed,Very Poor,Poor,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 83% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,2.37,,N,natural,"72, Charlbury Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2016-03-29 13:24:05,owner-occupied,,,200003657603.0,Address Matched +60d2b6bf98bb5b175aa6f3fbaa8b04b9ee83e021ce8b9030e12e9c5fb9f24cbb,23 CHERITON WAY,,,ME16 0PH,10001426741,C,B,72,86,House,Mid-Terrace,2021-07-14,E07000110,E14000804,Kent,2021-07-14,marketed sale,71,84,186,83.0,2.3,33,1.1,66.0,66.0,371.0,374.0,114.0,74.0,70.0,dual,Y,,,,,100.0,"double glazing, unknown install date",Normal,1.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.43,0.0,N,natural,23 CHERITON WAY,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2021-07-14 13:03:07,Owner-occupied,9.0,,200003660119.0,Energy Assessor +894943589442013030707031403570368,Apartment 6,"68, College Road",,ME15 6SJ,4462785078,C,C,71,72,Flat,Semi-Detached,2013-03-06,E07000110,E14000804,Kent,2013-03-07,rental (private),52,53,375,363.0,3.0,66,2.9,43.0,31.0,269.0,276.0,120.0,105.0,46.0,Unknown,N,2nd,N,,2401.0,100.0,double glazing installed before 2002,Normal,0.0,2.0,2.0,60.0,0.0,"Electric immersion, off-peak",Average,Very Poor,(other premises below),,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,(another dwelling above),,,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 60% of fixed outlets,Good,Good,electricity (not community),0.0,unheated corridor,5.1,,0.0,,natural,"Apartment 6, 68, College Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2013-03-07 07:03:14,rental (private),5.0,3.0,10022895281.0,Address Matched +1784585822922020021319395319778110,"37, Albion Place",,,ME14 5DZ,1125219678,C,B,69,86,House,Mid-Terrace,2020-02-13,E07000110,E14000804,Kent,2020-02-13,rental (private),62,83,186,73.0,5.3,33,2.1,98.0,99.0,921.0,519.0,108.0,108.0,161.0,Single,Y,NODATA!,,,2107.0,50.0,secondary glazing,Normal,1.0,8.0,8.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Partial secondary glazing,Poor,Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"37, Albion Place",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2020-02-13 19:39:53,rental (private),,,200003689488.0,Address Matched +266257500222009042022314420308661,Byfrance,Otham Lane,Bearsted,ME15 8SJ,6249060668,D,D,62,65,House,Detached,2009-04-20,E07000110,E14000700,Kent,2009-04-20,marketed sale,62,64,233,225.0,6.2,35,6.0,159.0,79.0,788.0,805.0,117.0,117.0,174.39,Single,Y,NO DATA!,,,2106.0,,INVALID!,Normal,1.0,6.0,6.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.16,0.0,N,natural,"Byfrance, Otham Lane, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2009-04-20 22:31:44,owner-occupied,,,200003694595.0,Address Matched +513577369922010071500011607848590,"12, Titchfield Close",,,ME15 8TA,9017697768,C,B,78,82,Flat,Semi-Detached,2010-07-14,E07000110,E14000700,Kent,2010-07-15,rental (social),76,81,209,166.0,1.7,35,1.4,41.0,27.0,262.0,227.0,115.0,100.0,49.95,Single,Y,1st,Y,2.0,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,50.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.3,0.0,N,natural,"12, Titchfield Close",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1976-1982,2010-07-15 00:01:16,rental (social),,,200003727412.0,Address Matched +721018226312011110717171591099490,Flat 13 Cavendish Place,Cavendish Way,Bearsted,ME15 8FW,4069613968,B,B,84,85,Flat,NO DATA!,2011-11-07,E07000110,E14000700,Kent,2011-11-07,new dwelling,87,87,77,74.0,1.3,15,1.3,60.0,48.0,240.0,242.0,89.0,89.0,88.3,standard tariff,,top floor,,,,,NO DATA!,NO DATA!,,,,12.0,,From main system,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.20 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.10 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.3,,,NO DATA!,"Flat 13 Cavendish Place, Cavendish Way, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2011-11-07 17:17:15,,16.0,12.0,10014312990.0,Address Matched +321331140342009070821545865410388,"29, Northway",Penenden Heath,,ME14 2ET,2322844668,F,D,33,66,Bungalow,Detached,2009-07-08,E07000110,E14000804,Kent,2009-07-08,marketed sale,28,60,636,294.0,7.2,107,3.3,64.0,37.0,1064.0,508.0,140.0,106.0,67.7,dual,Y,NO DATA!,,,2107.0,0.0,INVALID!,Normal,0.0,3.0,3.0,29.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, no insulation",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Poor,Poor,Low energy lighting in 29% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.42,0.0,N,natural,"29, Northway, Penenden Heath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2009-07-08 21:54:58,owner-occupied,,,200003707425.0,Address Matched +191709709132009011412203146968907,"32, Clock House Rise",Coxheath,,ME17 4GS,736954568,C,C,79,79,House,Semi-Detached,2009-01-13,E07000110,E14000804,Kent,2009-01-14,new dwelling,79,79,142,142.0,2.2,0,2.2,44.0,44.0,371.0,371.0,94.0,94.0,93.3,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,22.0,,SAP05:Hot-Water,,,Average thermal transmittance 0.22 W/m²K,Good,Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.20 W/m²K,Very Good,Very Good,SAP05:Secondary-Heating,,,Average thermal transmittance 0.19 W/m²K,Good,Good,SAP05:Main-Heating,,,SAP05:Main-Heating-Controls,,,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,,,NO DATA!,"32, Clock House Rise, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2009-01-14 12:20:31,,22.0,22.0,10022900551.0,Address Matched +1173809102412014071422263996940620,Weavering Heights,Weavering Street,Weavering,ME14 5JR,6034265278,E,C,50,78,House,Detached,2014-07-14,E07000110,E14000700,Kent,2014-07-14,marketed sale,47,78,272,102.0,6.4,52,2.4,136.0,68.0,1185.0,722.0,202.0,91.0,124.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,2.0,5.0,5.0,0.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, partial insulation (assumed)",Average,Average,"Room heaters, electric",,,"Pitched, limited insulation (assumed)",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"Weavering Heights, Weavering Street, Weavering",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1976-1982,2014-07-14 22:26:39,owner-occupied,30.0,0.0,200003689867.0,Address Matched +918039759002014102009283200740718,"16, Adbert Drive",East Farleigh,,ME15 0DE,1010257078,E,C,47,75,House,Detached,2014-10-09,E07000110,E14000804,Kent,2014-10-20,none of the above,44,74,287,116.0,7.0,55,2.8,83.0,83.0,1364.0,802.0,192.0,91.0,128.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,6.0,6.0,77.0,0.0,From main system,Average,Average,"Solid, limited insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 77% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"16, Adbert Drive, East Farleigh",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2014-10-20 09:28:32,owner-occupied,13.0,10.0,200003720557.0,Address Matched +610777cdcd4491d81c9420168379cd63c89521e35e41eae0f55c85eb79ef90f8,10 TENACRE COURT,ASHFORD ROAD,HARRIETSHAM,ME17 1AH,10001330414,E,E,48,48,Flat,Mid-Terrace,2021-08-05,E07000110,E14000700,Kent,2021-08-05,not sale or rental,53,53,299,299.0,4.1,51,4.1,76.0,76.0,1191.0,1191.0,251.0,251.0,82.0,standard tariff,,1,N,,,100.0,,,,,,100.0,0.0,Electric instantaneous at point of use,Very Poor,Poor,Average thermal transmittance 0.56 W/m-¦K,Poor,Poor,Fully double glazed,Good,Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, electric",Very Poor,Poor,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",0.0,,,2.67,,,,"10 TENACRE COURT, ASHFORD ROAD, HARRIETSHAM",Maidstone,Faversham and Mid Kent,MAIDSTONE,2020,2021-08-05 14:15:53,Owner-occupied,5.0,,10095449475.0,Energy Assessor +1716129719542019042609513665412558,"10, Brooklands",Headcorn,,TN27 9QS,3591414678,D,C,55,77,House,Semi-Detached,2019-04-25,E07000110,E14000700,Kent,2019-04-26,marketed sale,47,70,199,87.0,6.3,52,3.2,107.0,107.0,689.0,464.0,137.0,84.0,120.0,dual,N,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,6.0,6.0,76.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, oil",Average,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 76% of fixed outlets,Very Good,Very Good,oil (not community),0.0,NO DATA!,,,,N,natural,"10, Brooklands, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,England and Wales: 1950-1966,2019-04-26 09:51:36,owner-occupied,,,200003699665.0,Address Matched +864247329062012121115200053738282,"26, Bensted Close",Hunton,,ME15 0SD,8534273078,D,C,59,79,House,Semi-Detached,2012-12-07,E07000110,E14000804,Kent,2012-12-11,rental (social),38,58,375,217.0,7.3,66,4.2,73.0,73.0,817.0,567.0,132.0,83.0,110.0,dual,N,NODATA!,,,2401.0,100.0,double glazing installed during or after 2002,Normal,1.0,5.0,5.0,80.0,0.0,"Electric immersion, off-peak",Average,Very Poor,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, 250 mm loft insulation",Good,Good,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,electricity (not community),0.0,NO DATA!,,,0.0,,natural,"26, Bensted Close, Hunton",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2012-12-11 15:20:00,rental (social),10.0,8.0,200003663424.0,Address Matched +602493869202018073112363780487408,"26, Albert Street",,,ME14 2RN,272864868,D,B,65,88,House,End-Terrace,2018-07-30,E07000110,E14000804,Kent,2018-07-31,marketed sale,60,87,245,66.0,3.5,43,1.0,96.0,57.0,576.0,361.0,98.0,67.0,80.0,Single,Y,NODATA!,,,2106.0,86.0,double glazing installed during or after 2002,Normal,2.0,4.0,4.0,33.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Mostly double glazing,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 33% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"26, Albert Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2018-07-31 12:36:37,owner-occupied,,,200003669550.0,Address Matched +566880780012010111915574398909486,"33, Scott Street",,,ME14 2TA,4665081868,F,F,30,33,House,Mid-Terrace,2010-11-19,E07000110,E14000804,Kent,2010-11-19,rental (private),37,39,540,512.0,7.8,75,7.3,82.0,54.0,1539.0,1483.0,116.0,109.0,80.64,Single,Y,NO DATA!,,,2107.0,30.0,double glazing installed before 2002,Normal,1.0,4.0,4.0,50.0,2.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Some double glazing,Poor,Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.37,0.0,N,natural,"33, Scott Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2010-11-19 15:57:43,rental (private),,,200003669774.0,Address Matched +1328750236532015060413440422078502,Flat 5 Valence House,Sutton Road,,ME15 9AW,3292556378,E,D,46,64,Maisonette,Mid-Terrace,2015-06-04,E07000110,E14000700,Kent,2015-06-04,marketed sale,27,43,619,424.0,7.1,105,4.9,52.0,52.0,957.0,565.0,148.0,148.0,68.0,dual,N,1st,N,,2401.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,100.0,0.0,"Electric immersion, off-peak",Average,Poor,(other premises below),NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,no corridor,,,,N,natural,"Flat 5 Valence House, Sutton Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2015-06-04 13:44:04,owner-occupied,,,200003713862.0,Address Matched +1438573162712016042813042693260541,"21, Lambert Drive",,,ME15 8WN,5133234478,B,A,84,93,House,NO DATA!,2016-04-28,E07000110,E14000700,Kent,2016-04-28,new dwelling,85,93,85,29.0,2.0,15,0.7,73.0,73.0,336.0,337.0,109.0,59.0,131.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.12 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.28 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"21, Lambert Drive",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2016-04-28 13:04:26,unknown,10.0,10.0,10091194536.0,Address Matched +1693487289022019020815551012488751,"8, Smith Way",Headcorn,,TN27 9EQ,5138842678,B,A,86,96,House,Detached,2019-02-08,E07000110,E14000700,Kent,2019-02-08,new dwelling,88,97,65,5.0,1.4,11,0.1,83.0,83.0,196.0,198.0,105.0,57.0,123.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.12 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.17 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.18 W/m-¦K,Good,Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"8, Smith Way, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,NO DATA!,2019-02-08 15:55:10,unknown,15.0,15.0,10093306437.0,Address Matched +1086262504352014051511564994940917,69a Johns Court,John Street,,ME14 2SQ,9782449178,C,C,74,76,Maisonette,Semi-Detached,2014-05-15,E07000110,E14000804,Kent,2014-05-15,rental (private),79,82,175,149.0,1.2,33,1.1,28.0,28.0,266.0,231.0,80.0,80.0,37.0,dual,Y,Ground,N,,2104.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,From main system,Very Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,no corridor,,,0.0,,natural,"69a Johns Court, John Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2014-05-15 11:56:49,rental (private),6.0,6.0,200003704707.0,Address Matched +13874470852017092817242892930642,"21, Tennison Way",,,ME15 9GE,6298028468,C,B,78,89,House,Mid-Terrace,2017-05-10,E07000110,E14000700,Kent,2017-09-28,rental (social),78,88,131,56.0,2.3,23,1.0,67.0,67.0,358.0,360.0,120.0,70.0,98.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Very Good,Very Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"21, Tennison Way",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2007 onwards,2017-09-28 17:24:28,rental (social),,,10022895438.0,Address Matched +1167649853432014070319325273078006,Pinehurst,Queens Avenue,,ME16 0ER,5613025278,D,B,57,81,House,Detached,2014-07-03,E07000110,E14000804,Kent,2014-07-03,none of the above,51,78,225,91.0,7.9,43,3.3,162.0,81.0,1413.0,761.0,132.0,133.0,183.0,Single,Y,NODATA!,,,2103.0,70.0,double glazing installed before 2002,Normal,2.0,7.0,7.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Partial double glazing,Poor,Poor,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, no insulation",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Room thermostat only,Poor,Poor,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"Pinehurst, Queens Avenue",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2014-07-03 19:32:52,owner-occupied,19.0,0.0,200003659626.0,Address Matched +514931109742010072013295976802108,"10, Forge Meadows",Headcorn,,TN27 9QW,1796608768,D,C,61,74,House,Semi-Detached,2010-07-20,E07000110,E14000700,Kent,2010-07-20,rental (social),55,70,302,203.0,4.4,50,3.0,94.0,52.0,614.0,461.0,176.0,116.0,87.51,dual,Y,NO DATA!,,,2107.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,20.0,0.0,From main system,Average,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Average,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 20% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.42,0.0,N,natural,"10, Forge Meadows, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,England and Wales: 1930-1949,2010-07-20 13:29:59,rental (social),,,200003722604.0,Address Matched +56739776652012033110081897220756,Flat 1,71 Bank Street,,ME14 1SN,7687677568,F,D,32,63,Flat,Mid-Terrace,2012-03-28,E07000110,E14000804,Kent,2012-03-31,marketed sale,40,39,466,474.0,5.3,83,5.4,52.0,56.0,1001.0,533.0,253.0,110.0,64.23,Single,N,1st,N,,2601.0,0.0,not defined,Normal,0.0,2.0,2.0,62.0,0.0,"Electric immersion, standard tariff",Very Poor,Very Poor,(other premises below),,,Single glazed,Very Poor,Very Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,(another dwelling above),,,"Room heaters, electric",Very Poor,Very Poor,No thermostatic control of room temperature,Poor,Poor,Low energy lighting in 62% of fixed outlets,Good,Good,electricity (not community),0.0,heated corridor,,2.6,0.0,,natural,"Flat 1, 71 Bank Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2012-03-31 10:08:18,owner-occupied,8.0,5.0,, +1431336419062016041110071603058216,Flat 18,Concorde House,London Road,ME16 8QA,1027183478,D,D,60,60,Flat,End-Terrace,2016-04-05,E07000110,E14000804,Kent,2016-04-11,rental (private),56,56,335,335.0,2.9,57,2.9,38.0,38.0,517.0,517.0,165.0,165.0,51.0,dual,N,2nd,N,,2107.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,100.0,0.0,From main system,Poor,Poor,(another dwelling below),NO DATA!,,Fully double glazed,Good,Good,"System built, with internal insulation",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, electric",Very Poor,Poor,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,unheated corridor,15.9,2.5,,N,natural,"Flat 18, Concorde House, London Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2016-04-11 10:07:16,rental (private),,,, +587536169262011020212453413808709,"30, Braunstone Drive",Allington,,ME16 0HZ,171643868,D,D,60,68,House,Detached,2011-01-20,E07000110,E14000804,Kent,2011-02-02,marketed sale,58,67,251,198.0,5.7,41,4.5,124.0,74.0,898.0,760.0,184.0,147.0,127.84,Unknown,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,8.0,8.0,33.0,0.0,From main system,Good,Good,"Solid, limited insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 33% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.31,0.0,N,natural,"30, Braunstone Drive, Allington",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2011-02-02 12:45:34,owner-occupied,,,200003659845.0,Address Matched +515833249262014082618473728528344,5 Magnolia House,Springwood Close,,ME16 9PB,4271418768,D,C,64,76,Flat,Semi-Detached,2014-08-22,E07000110,E14000804,Kent,2014-08-26,assessment for green deal,65,80,258,147.0,2.2,49,1.3,61.0,31.0,439.0,277.0,91.0,78.0,45.0,Single,Y,Ground,N,,2107.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,unheated corridor,6.1,,0.0,,natural,"5 Magnolia House, Springwood Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2014-08-26 18:47:37,rental (social),9.0,0.0,200003697267.0,Address Matched +1239666989432014112113195583278499,The Bungalow,Green Lane,Marden,TN12 9RB,8923420378,D,B,66,83,House,Detached,2014-11-20,E07000110,E14000804,Kent,2014-11-21,marketed sale,65,83,174,79.0,5.6,30,2.5,146.0,87.0,1156.0,846.0,145.0,89.0,187.0,Single,Y,NODATA!,,,2110.0,100.0,double glazing installed during or after 2002,Normal,0.0,9.0,9.0,33.0,1.0,From main system,Good,Good,"Solid, insulated (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, wood logs",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and underfloor heating, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in 33% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"The Bungalow, Green Lane, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 2003-2006,2014-11-21 13:19:55,owner-occupied,24.0,8.0,200003732998.0,Address Matched +615022027b7bb5b47c10a31ac8360bbcc2e9200469741fb64f95fcb015b9d53b,48 PERRY STREET,,,ME14 2RP,10001587441,E,C,53,69,Flat,End-Terrace,2021-06-29,E07000110,E14000804,Kent,2021-07-01,ECO assessment,50,69,373,226.0,3.5,65,2.1,87.0,47.0,693.0,425.0,84.0,85.0,53.0,Single,Y,00,N,,,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,14.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,Low energy lighting in 14% of fixed outlets,Poor,Poor,mains gas (not community),0.0,no corridor,,2.8,0.0,N,natural,48 PERRY STREET,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2021-07-01 18:46:52,Rented (social),7.0,,200003669576.0,Energy Assessor +266511674752009041522434306910164,"69d, Lower Boxley Road",,,ME14 2UU,1457460668,D,C,68,71,Maisonette,Semi-Detached,2009-04-15,E07000110,E14000804,Kent,2009-04-15,rental (private),63,66,402,370.0,2.1,67,1.9,30.0,15.0,335.0,322.0,61.0,57.0,31.35,Single,Y,Ground,N,4.0,2107.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,0.0,0.0,From main system,Good,Very Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Granite or whinstone, as built, no insulation (assumed)",Very Poor,Very Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Very Good,"Programmer, TRVs and bypass",Poor,Poor,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.4,0.0,N,natural,"69d, Lower Boxley Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2009-04-15 22:43:43,rental (private),,,10014310591.0,Address Matched +1533471049062017040412561141848613,"103, Edmett Way",,,ME17 3FA,1402401578,B,B,82,82,Flat,Detached,2017-04-04,E07000110,E14000700,Kent,2017-04-04,new dwelling,87,87,110,110.0,0.9,19,0.9,34.0,34.0,184.0,184.0,66.0,66.0,46.0,standard tariff,,ground floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.28 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,Programmer and at least two room thermostats,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"103, Edmett Way",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2017-04-04 12:56:11,unknown,1.0,1.0,10091194012.0,Address Matched +416734457612010010808452491000071,"107, South Lane",Sutton Valence,,ME17 3AY,135711768,C,C,69,72,House,Mid-Terrace,2010-01-08,E07000110,E14000700,Kent,2010-01-08,rental (social),65,67,249,231.0,3.3,42,3.1,61.0,41.0,486.0,465.0,120.0,113.0,79.18,Single,Y,NO DATA!,,,2107.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,50.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.39,0.0,N,natural,"107, South Lane, Sutton Valence",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2010-01-08 08:45:24,rental (social),,,200003695651.0,Address Matched +275030220262009072316014231128051,17 Tovil Green Court,Tovil Green Lane,Tovil,ME15 6NE,5340221668,B,B,84,85,Flat,NO DATA!,2009-07-22,E07000110,E14000804,Kent,2009-07-23,new dwelling,86,87,113,107.0,1.0,18,1.0,44.0,32.0,162.0,163.0,91.0,91.0,55.2,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,5.0,,From main system,Good,Very Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.31 W/m?K,Good,Good,,,,(another dwelling above),,,Community scheme,Good,Very Good,"Unit charging, programmer and TRVs",Good,Good,Low energy lighting in 63% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.49,,,NO DATA!,"17 Tovil Green Court, Tovil Green Lane, Tovil",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2009-07-23 16:01:42,,8.0,5.0,10014306966.0,Address Matched +452494008852010031116340496900175,"1, Orchard Street",,,ME15 6NR,1501863768,G,F,20,23,House,Mid-Terrace,2010-03-11,E07000110,E14000804,Kent,2010-03-11,marketed sale,42,45,589,554.0,4.3,89,4.0,41.0,41.0,812.0,814.0,302.0,233.0,47.92,Single,Y,NO DATA!,,,2602.0,0.0,not defined,Normal,1.0,3.0,3.0,33.0,0.0,"Electric immersion, standard tariff",Very Poor,Poor,"Suspended, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Room heaters, electric",Very Poor,Poor,Appliance thermostats,Good,Good,Low energy lighting in 33% of fixed outlets,Average,Average,electricity - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.41,0.0,N,natural,"1, Orchard Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2010-03-11 16:34:04,owner-occupied,,,200003692746.0,Address Matched +1216654429262014101011171648768844,"7, Stockett Lane",,,ME15 0HX,4498268278,D,B,57,84,House,Semi-Detached,2014-09-26,E07000110,E14000804,Kent,2014-10-10,marketed sale,53,83,261,78.0,4.3,50,1.3,79.0,53.0,832.0,484.0,109.0,76.0,85.0,Single,Y,NODATA!,,,2107.0,100.0,double glazing installed before 2002,Normal,0.0,6.0,5.0,50.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"7, Stockett Lane",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2014-10-10 11:17:16,owner-occupied,8.0,4.0,200003664159.0,Address Matched +1060890669942019011707123713719268,"9, Trenton Close",,,ME16 0HL,9912467178,D,C,56,75,House,Semi-Detached,2019-01-16,E07000110,E14000804,Kent,2019-01-17,marketed sale,49,68,306,171.0,4.8,54,2.7,83.0,64.0,832.0,679.0,100.0,68.0,90.0,Unknown,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,5.0,5.0,70.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 70% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"9, Trenton Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2019-01-17 07:12:37,owner-occupied,,,200003706757.0,Address Matched +1697955640552019021411245798910764,"14, Little Knoxes Close",,,ME16 9FD,7437082678,B,A,86,93,House,Detached,2019-02-14,E07000110,E14000804,Kent,2019-02-14,new dwelling,86,93,71,26.0,2.0,13,0.8,90.0,90.0,317.0,319.0,104.0,57.0,163.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.17 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"14, Little Knoxes Close",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2019-02-14 11:24:57,unknown,15.0,15.0,10093303529.0,Address Matched +1744251389222019082912404356018601,"12, Pioneer Avenue",Marden,,TN12 9FT,580816678,B,A,83,93,House,Detached,2019-08-29,E07000110,E14000804,Kent,2019-08-29,new dwelling,84,93,89,27.0,1.8,16,0.6,78.0,78.0,285.0,286.0,98.0,55.0,116.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.29 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.14 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"12, Pioneer Avenue, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,NO DATA!,2019-08-29 12:40:43,owner-occupied,10.0,10.0,10093307397.0,Address Matched +871291019922013011117080374198387,Stable Cottage Parsonage Farm,Heath Road,Boughton Monchelsea,ME17 4JB,8786124078,D,B,64,86,Bungalow,Detached,2013-01-11,E07000110,E14000700,Kent,2013-01-11,marketed sale,53,77,220,72.0,3.7,55,1.7,54.0,54.0,534.0,459.0,169.0,99.0,68.0,Single,N,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,4.0,4.0,75.0,0.0,From main system,Average,Average,"Suspended, limited insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, oil",Average,Average,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,oil (not community),0.0,NO DATA!,,,0.0,,natural,"Stable Cottage Parsonage Farm, Heath Road, Boughton Monchelsea",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1996-2002,2013-01-11 17:08:03,owner-occupied,4.0,3.0,10014309522.0,Address Matched +510425579842010070720020372700638,2 Harbourland Cottages,Boxley Road,Boxley,ME14 3DN,8844477768,C,C,75,78,House,Mid-Terrace,2010-07-07,E07000110,E14000700,Kent,2010-07-07,rental (private),75,77,181,168.0,2.4,28,2.2,64.0,44.0,387.0,373.0,107.0,101.0,85.27,Single,Y,NO DATA!,,,2107.0,100.0,double glazing installed during or after 2002,Normal,1.0,5.0,5.0,55.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,"Room heaters, wood logs",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 55% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.45,0.0,N,natural,"2 Harbourland Cottages, Boxley Road, Boxley",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2010-07-07 20:02:03,rental (private),,,200003673319.0,Address Matched +668969078932011082214221971268802,Wymondham House,Dean Street,East Farleigh,ME15 0PT,7221849868,C,C,73,73,House,Detached,2011-08-22,E07000110,E14000804,Kent,2011-08-22,marketed sale,74,74,137,134.0,3.7,26,3.6,92.0,66.0,496.0,500.0,270.0,270.0,145.4,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,6.0,6.0,62.0,0.0,No system present: electric immersion assumed,Very Poor,Very Poor,"Solid, insulated (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 62% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,2.369,0.0,,natural,"Wymondham House, Dean Street, East Farleigh",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2011-08-22 14:22:19,owner-occupied,13.0,8.0,10022901975.0,Address Matched +1023773509442013101115265911579098,Flat 6 Rose Court,Straw Mill Hill,,ME15 6FL,9470005178,B,B,81,81,Flat,NO DATA!,2013-10-11,E07000110,E14000804,Kent,2013-10-11,new dwelling,85,85,102,102.0,1.2,19,1.2,46.0,46.0,256.0,256.0,66.0,66.0,64.0,standard tariff,,top floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.19 W/mA?K,Very Good,Very Good,,,,Average thermal transmittance 0.12 W/mA?K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Flat 6 Rose Court, Straw Mill Hill",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2013-10-11 15:26:59,NO DATA!,20.0,20.0,10014314806.0,Address Matched +241767254712014081507261498940856,Flat 6 Winchester House,Cambridge Crescent,,ME15 7NR,8657488568,C,C,70,75,Flat,End-Terrace,2014-08-14,E07000110,E14000700,Kent,2014-08-15,rental (social),73,80,215,164.0,1.6,41,1.2,42.0,26.0,335.0,270.0,72.0,73.0,38.0,Single,Y,Ground,N,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,1.0,1.0,40.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 40% of fixed outlets,Average,Average,mains gas (not community),0.0,no corridor,,,0.0,,natural,"Flat 6 Winchester House, Cambridge Crescent",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2014-08-15 07:26:14,rental (social),5.0,2.0,200003713089.0,Address Matched +1625184626152019052222070595210652,"206, Tonbridge Road",,,ME16 8SR,6205657578,E,B,47,82,House,Mid-Terrace,2019-05-22,E07000110,E14000804,Kent,2019-05-22,marketed sale,45,82,377,92.0,4.1,66,1.0,84.0,53.0,734.0,440.0,160.0,65.0,62.0,dual,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,2.0,4.0,4.0,43.0,2.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Sandstone or limestone, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, electric",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 43% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"206, Tonbridge Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2019-05-22 22:07:05,owner-occupied,,,200003657539.0,Address Matched +478218674032010042917294296268603,"46, Pope Street",,,ME16 8LQ,7376645768,E,D,48,68,House,End-Terrace,2010-04-29,E07000110,E14000804,Kent,2010-04-29,marketed sale,42,62,487,297.0,4.8,82,3.0,51.0,30.0,632.0,473.0,224.0,96.0,59.4,Unknown,Y,NO DATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,33.0,0.0,"From main system, no cylinder thermostat",Poor,Average,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Average,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 33% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.5,0.0,N,natural,"46, Pope Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2010-04-29 17:29:42,owner-occupied,,,200003655836.0,Address Matched +328588343132009071723583796968009,"122, Sutton Road",,,ME15 9AP,4926005668,E,D,54,59,House,Semi-Detached,2009-07-17,E07000110,E14000700,Kent,2009-07-17,marketed sale,48,51,355,330.0,5.3,59,5.0,87.0,45.0,795.0,762.0,98.0,98.0,100.98,Single,Y,NO DATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,1.0,5.0,5.0,8.0,0.0,From main system,Very Good,Very Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, mains gas",,,"Pitched, insulated at rafters",Poor,Poor,"Boiler and radiators, mains gas",Very Good,Very Good,Programmer and room thermostat,Poor,Poor,Low energy lighting in 8% of fixed outlets,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.65,0.0,N,natural,"122, Sutton Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1900-1929,2009-07-17 23:58:37,owner-occupied,,,200003713475.0,Address Matched +1052756809402017032419420510732648,2 Chapel Farm Cottage,Lenham Heath,,ME17 2BJ,6484607178,E,C,50,80,House,Semi-Detached,2017-03-24,E07000110,E14000700,Kent,2017-03-24,marketed sale,65,89,143,15.0,5.3,31,1.3,123.0,123.0,1252.0,1011.0,221.0,139.0,171.0,dual,N,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,6.0,6.0,73.0,1.0,From main system,Poor,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Sandstone or limestone, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Roof room(s), insulated (assumed)",Good,Good,"Boiler and radiators, LPG",Poor,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 73% of fixed outlets,Very Good,Very Good,LPG (not community),0.0,NO DATA!,,,,N,natural,"2 Chapel Farm Cottage, Lenham Heath",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2017-03-24 19:42:05,owner-occupied,,,200003732453.0,Address Matched +395614569642019042415585164912778,"5, Aden Terrace",Invicta Park,,ME14 2NR,9667369668,D,B,61,85,House,Mid-Terrace,2019-04-23,E07000110,E14000804,Kent,2019-04-24,Stock Condition Survey,57,84,293,89.0,3.3,52,1.1,93.0,49.0,564.0,389.0,88.0,59.0,64.0,Unknown,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,10.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Flat, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 10% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"5, Aden Terrace, Invicta Park",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2019-04-24 15:58:51,rental (private),,,200003724051.0,Address Matched +50989040002009011412261856619878,28 Clock House Rise,Coxheath,,ME17 4GS,1035446568,C,C,79,79,House,Mid-Terrace,2009-01-13,E07000110,E14000804,Kent,2009-01-14,new dwelling,80,80,146,146.0,1.9,0,1.9,37.0,37.0,339.0,339.0,87.0,87.0,78.56,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,19.0,,SAP05:Hot-Water,,,Average thermal transmittance 0.20 W/m²K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.20 W/m²K,Very Good,Very Good,SAP05:Secondary-Heating,,,Average thermal transmittance 0.19 W/m²K,Good,Good,SAP05:Main-Heating,,,SAP05:Main-Heating-Controls,,,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,,,NO DATA!,"28 Clock House Rise, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2009-01-14 12:26:18,,19.0,19.0,10022900547.0,Address Matched +490161339302014112007564677649218,"9, Raynham Villas",Hunton Road,,TN12 9SZ,2335336768,D,B,59,81,House,End-Terrace,2014-11-19,E07000110,E14000804,Kent,2014-11-20,assessment for green deal,62,83,255,105.0,2.9,45,1.2,82.0,41.0,466.0,392.0,251.0,165.0,63.0,Single,N,NODATA!,,,2206.0,100.0,double glazing installed during or after 2002,Normal,1.0,4.0,4.0,0.0,0.0,From main system,Poor,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Average,Average,"Air source heat pump, radiators, electric",Average,Good,"Programmer, TRVs and bypass",Average,Average,No low energy lighting,Very Poor,Very Poor,electricity (not community),0.0,NO DATA!,,,0.0,,natural,"9, Raynham Villas, Hunton Road",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1983-1990,2014-11-20 07:56:46,rental (social),8.0,0.0,200003723880.0,Address Matched +870504079922013011011554114308507,7 Grangehouse,Fernhill Road,,ME16 9BN,186714078,C,C,79,80,Flat,Semi-Detached,2013-01-10,E07000110,E14000804,Kent,2013-01-10,rental (social),84,85,112,103.0,1.1,21,1.0,57.0,33.0,212.0,215.0,73.0,73.0,53.0,Single,Y,1st,N,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,25.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 25% of fixed outlets,Average,Average,mains gas (not community),0.0,unheated corridor,1.2,,0.0,,natural,"7 Grangehouse, Fernhill Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2013-01-10 11:55:41,rental (social),8.0,2.0,200003722464.0,Address Matched +6658723152018111218391893989540,Flat 7,Rosewood House,Brishing Lane,ME15 9EF,5088337468,C,C,78,79,Flat,Detached,2018-11-12,E07000110,E14000700,Kent,2018-11-12,rental (social),80,80,133,130.0,1.7,23,1.6,73.0,59.0,267.0,269.0,97.0,97.0,72.0,Single,Y,4th,Y,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,3.0,3.0,75.0,0.0,From main system,Good,Good,(another dwelling below),NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,8.12,,,N,natural,"Flat 7, Rosewood House, Brishing Lane",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2003-2006,2018-11-12 18:39:18,rental (social),,,10014307533.0,Address Matched +1035873699802013110620584510570768,"34, Campbell Road",,,ME15 6QA,2854095178,C,B,69,87,House,Mid-Terrace,2013-11-06,E07000110,E14000804,Kent,2013-11-06,marketed sale,72,90,178,57.0,2.5,31,0.7,70.0,47.0,505.0,393.0,92.0,65.0,81.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,More Than Typical,1.0,4.0,4.0,53.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Poor,Poor,"Room heaters, wood logs",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 53% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"34, Campbell Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2013-11-06 20:58:45,owner-occupied,30.0,16.0,200003693265.0,Address Matched +80436719022018030518282305158728,"46, Murrain Drive",Downswood,,ME15 8XJ,2008165468,D,C,68,78,Maisonette,Enclosed Mid-Terrace,2018-03-05,E07000110,E14000700,Kent,2018-03-05,rental (private),49,64,452,313.0,3.3,76,2.3,55.0,38.0,333.0,212.0,191.0,137.0,43.0,dual,N,2nd,Y,,2401.0,100.0,double glazing installed before 2002,Normal,0.0,2.0,2.0,57.0,0.0,"Electric immersion, off-peak",Average,Poor,(another dwelling below),NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,"Pitched, 300 mm loft insulation",Very Good,Very Good,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 57% of fixed outlets,Good,Good,electricity (not community),0.0,no corridor,,,,N,natural,"46, Murrain Drive, Downswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2018-03-05 18:28:23,rental (private),,,200003691585.0,Address Matched +1663293339502018091407154760089478,"4, Fintonagh Drive",Penenden Heath,,ME14 2AQ,580030678,D,C,61,75,House,Detached,2018-09-13,E07000110,E14000804,Kent,2018-09-14,marketed sale,52,68,241,153.0,6.6,43,4.2,101.0,103.0,1103.0,907.0,137.0,83.0,154.0,Unknown,Y,NODATA!,,,2106.0,6.0,"double glazing, unknown install date",Normal,3.0,6.0,6.0,82.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Some double glazing,Very Poor,Very Poor,"Cavity wall, filled cavity",Average,Average,"Room heaters, mains gas",,,"Pitched, 350 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 82% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"4, Fintonagh Drive, Penenden Heath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2018-09-14 07:15:47,owner-occupied,,,200003701695.0,Address Matched +1094538299062015040215054039128065,"8, Belmont Close",,,ME16 9DY,6396999178,D,B,62,85,House,Semi-Detached,2015-04-02,E07000110,E14000804,Kent,2015-04-02,none of the above,62,86,245,78.0,3.6,39,1.1,86.0,57.0,753.0,474.0,98.0,64.0,92.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,4.0,4.0,50.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, wood logs",,,"Pitched, 25 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"8, Belmont Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2015-04-02 15:05:40,owner-occupied,,,200003664906.0,Address Matched +1085393007552016030418205393060711,"73, Quarry Road",,,ME15 6UB,7137739178,D,B,59,84,House,End-Terrace,2016-03-03,E07000110,E14000804,Kent,2016-03-04,marketed sale,53,82,300,99.0,4.3,53,1.4,84.0,53.0,641.0,480.0,256.0,75.0,81.0,Unknown,Y,NODATA!,,,2107.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,43.0,0.0,"From main system, no cylinder thermostat",Poor,Poor,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 43% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"73, Quarry Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2016-03-04 18:20:53,owner-occupied,,,200003682020.0,Address Matched +1377956909342015110211372547050028,20 Alexander Court,Mote Park,,ME15 8WY,7361100478,B,B,84,84,Flat,Mid-Terrace,2015-11-02,E07000110,E14000700,Kent,2015-11-02,new dwelling,87,87,86,86.0,1.2,15,1.2,57.0,57.0,202.0,202.0,101.0,101.0,81.0,standard tariff,,top floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.23 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.10 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and boiler energy manager",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"20 Alexander Court, Mote Park",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2015-11-02 11:37:25,unknown,8.0,8.0,10091195134.0,Address Matched +1553266249242017112809203852232588,"32, The Weavers",Headcorn,,TN27 9AQ,6225442578,B,B,89,90,House,Mid-Terrace,2017-11-28,E07000110,E14000700,Kent,2017-11-28,new dwelling,91,93,50,37.0,0.7,9,0.5,59.0,59.0,184.0,184.0,84.0,51.0,80.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.16 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.21 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"32, The Weavers, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,NO DATA!,2017-11-28 09:20:38,unknown,20.0,20.0,10093304446.0,Address Matched +1766268579922019111708022567758681,"263, Upper Fant Road",,,ME16 8DB,8601777678,D,B,55,83,House,Mid-Terrace,2019-11-15,E07000110,E14000804,Kent,2019-11-17,marketed sale,48,80,337,109.0,4.4,59,1.5,57.0,57.0,769.0,474.0,108.0,49.0,74.0,Unknown,Y,NODATA!,,,2111.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,TRVs and bypass,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"263, Upper Fant Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2019-11-17 08:02:25,owner-occupied,,,200003656214.0,Address Matched +376018720142009100522470063810258,"45, Captains Close",Sutton Valence,,ME17 3BA,8160728668,C,C,78,78,Flat,Semi-Detached,2009-10-05,E07000110,E14000700,Kent,2009-10-05,rental (social),75,75,189,189.0,2.2,32,2.2,36.0,36.0,343.0,343.0,85.0,85.0,68.33,Single,Y,Ground,N,2.0,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,100.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.3,0.0,N,natural,"45, Captains Close, Sutton Valence",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2009-10-05 22:47:00,rental (social),,,200003696273.0,Address Matched +966360200212016032520480399260519,"13, Bensted Close",Hunton,,ME15 0SD,5972090178,C,A,70,107,House,Semi-Detached,2016-03-22,E07000110,E14000804,Kent,2016-03-25,rental (social),73,106,173,-54.0,2.5,29,-0.8,56.0,56.0,433.0,314.0,242.0,242.0,85.0,Single,N,NODATA!,,,2204.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,100.0,0.0,"From main system, plus solar",Poor,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 270 mm loft insulation",Good,Good,"Air source heat pump, radiators, electric",Good,Very Good,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,NO DATA!,,2.46,,Y,natural,"13, Bensted Close, Hunton",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2016-03-25 20:48:03,rental (social),,,200003662397.0,Address Matched +390298120302009102916520668912218,"16, Plantation Lane",Bearsted,,ME14 4BH,7309929668,E,D,49,64,House,Semi-Detached,2009-10-29,E07000110,E14000700,Kent,2009-10-29,marketed sale,43,57,378,265.0,7.2,63,5.0,98.0,57.0,992.0,731.0,175.0,130.0,113.2,Single,Y,NO DATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,6.0,6.0,30.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, mains gas",,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 30% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,,0.0,N,natural,"16, Plantation Lane, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,,2009-10-29 16:52:06,owner-occupied,,,200003691964.0,Address Matched +1624790614552018041916510895980457,"31, Gates Drive",,,ME17 3GF,4790457578,B,B,81,81,Maisonette,Detached,2018-04-19,E07000110,E14000700,Kent,2018-04-19,new dwelling,85,85,114,114.0,1.1,20,1.1,43.0,43.0,200.0,200.0,69.0,69.0,55.0,standard tariff,,top floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.17 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.23 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"31, Gates Drive",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2018-04-19 16:51:08,unknown,7.0,7.0,10093303986.0,Address Matched +1663132849312019091106271392910569,"39, Victoria Street",,,ME16 8JA,5991920678,D,B,67,83,House,Mid-Terrace,2019-09-10,E07000110,E14000804,Kent,2019-09-11,rental (private),61,79,211,99.0,4.2,37,2.0,78.0,78.0,735.0,551.0,90.0,60.0,113.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,2.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"39, Victoria Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2019-09-11 06:27:13,rental (private),,,200003667929.0,Address Matched +1285227949902015032316115533352578,"119, Spot Lane",Bearsted,,ME15 8UB,2969743378,E,B,39,81,House,Semi-Detached,2015-03-23,E07000110,E14000700,Kent,2015-03-23,none of the above,35,80,462,113.0,6.9,81,1.7,97.0,54.0,1205.0,569.0,245.0,73.0,85.0,Single,Y,NODATA!,,,2102.0,100.0,"double glazing, unknown install date",Normal,2.0,5.0,5.0,19.0,0.0,"From main system, no cylinder thermostat",Poor,Poor,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,Low energy lighting in 19% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"119, Spot Lane, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2015-03-23 16:11:55,owner-occupied,,,200003691229.0,Address Matched +1335762309602015112710022631752668,Inglewood,Gallants Lane,East Farleigh,ME15 0LG,5631507378,G,B,15,86,House,Detached,2015-08-26,E07000110,E14000804,Kent,2015-11-27,marketed sale,14,76,419,47.0,19.0,109,3.5,130.0,87.0,3173.0,1026.0,324.0,98.0,179.0,Single,N,NODATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,1.0,7.0,7.0,50.0,1.0,"From main system, no cylinder thermostat",Very Poor,Very Poor,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, oil",Poor,Average,Programmer and room thermostat,Average,Average,Low energy lighting in 50% of fixed outlets,Good,Good,oil (not community),0.0,NO DATA!,,,,N,natural,"Inglewood, Gallants Lane, East Farleigh",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2015-11-27 10:02:26,owner-occupied,,,200003663804.0,Address Matched +1573554108412017091010564398030552,"6, Amherst Close",,,ME16 0JB,5214883578,E,C,46,71,House,Detached,2017-09-09,E07000110,E14000804,Kent,2017-09-10,marketed sale,39,63,386,200.0,6.5,68,3.4,91.0,62.0,1130.0,811.0,138.0,82.0,95.0,Unknown,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,7.0,7.0,54.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 54% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"6, Amherst Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2017-09-10 10:56:43,owner-occupied,,,200003656779.0,Address Matched +61d32ab496eae07e1edb4afebabb5bcf2d049211c80c26631a2da037a3e156f0,"FLAT 3, HARRIET HOUSE, WEST STREET",HARRIETSHAM,,ME17 1JZ,10001673226,D,C,64,75,Flat,End-Terrace,2021-07-13,E07000110,E14000700,Kent,2021-07-13,rental,60,77,359,209.0,2.4,63,1.4,35.0,35.0,347.0,202.0,147.0,115.0,38.0,Single,Y,00,N,,,100.0,"double glazing, unknown install date",Less Than Typical,0.0,2.0,2.0,100.0,0.0,Community scheme,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,(another dwelling above),,,Community scheme,Good,Good,"Flat rate charging, programmer and TRVs",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (community),0.0,no corridor,,2.5,0.0,N,natural,"FLAT 3, HARRIET HOUSE, WEST STREET, HARRIETSHAM",Maidstone,Faversham and Mid Kent,MAIDESTONE,England and Wales: before 1900,2021-07-13 21:23:58,Rented (private),2.0,,10095449908.0,Address Matched +717554199102013100411284297270948,42 Midhurst Court,Mote Road,,ME15 6EJ,8176292968,D,C,66,79,Flat,Mid-Terrace,2013-10-04,E07000110,E14000804,Kent,2013-10-04,none of the above,72,84,217,122.0,1.8,40,1.0,28.0,28.0,264.0,204.0,240.0,94.0,45.0,Single,Y,7th,N,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,2.0,2.0,100.0,0.0,"Electric immersion, standard tariff",Very Poor,Very Poor,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,6.16,,0.0,,natural,"42 Midhurst Court, Mote Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2013-10-04 11:28:42,rental (social),5.0,5.0,200003693356.0,Address Matched +321550650142009070718053868410438,"3, Bargrove Road",,,ME14 5RY,152254668,C,C,71,79,House,Mid-Terrace,2009-07-07,E07000110,E14000804,Kent,2009-07-07,rental (private),69,77,237,176.0,2.6,39,1.9,64.0,36.0,384.0,316.0,102.0,83.0,65.64,dual,Y,NO DATA!,,,2107.0,100.0,double glazing installed before 2002,Normal,2.0,4.0,4.0,23.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Flat, insulated (assumed)",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Poor,Poor,Low energy lighting in 23% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.32,0.0,N,natural,"3, Bargrove Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2009-07-07 18:05:38,rental (private),,,200003672568.0,Address Matched +681992949142011092619273597092368,8 Gordon Court,Well Street,Loose,ME15 0QF,7167140968,D,D,57,62,Bungalow,Semi-Detached,2011-09-26,E07000110,E14000804,Kent,2011-09-26,rental (social),44,50,314,272.0,4.3,79,3.7,31.0,31.0,522.0,479.0,207.0,149.0,54.98,Single,N,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,100.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, oil",Average,Average,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,oil (not community),0.0,NO DATA!,,2.49,0.0,,natural,"8 Gordon Court, Well Street, Loose",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2011-09-26 19:27:35,rental (social),5.0,5.0,200003663538.0,Address Matched +1165240396432014062914273952278801,Flat 7,34 Gabriels Hill,,ME15 6JJ,9182894278,E,D,45,62,Flat,Enclosed Mid-Terrace,2014-06-26,E07000110,E14000804,Kent,2014-06-29,rental (private),50,46,591,645.0,2.4,105,2.6,18.0,20.0,510.0,306.0,117.0,129.0,23.0,Unknown,N,1st,Y,,2601.0,100.0,double glazing installed during or after 2002,Normal,0.0,1.0,1.0,100.0,0.0,Electric instantaneous at point of use,Very Poor,Very Poor,(other premises below),,,Fully double glazed,Good,Good,"Solid brick, with internal insulation",Good,Good,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, electric",Very Poor,Very Poor,No thermostatic control of room temperature,Poor,Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,unheated corridor,4.8,,0.0,,natural,"Flat 7, 34 Gabriels Hill",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2014-06-29 14:27:39,rental (private),5.0,5.0,, +1681465029222018112615132611468228,"3, Little Knoxes Close",,,ME16 9FD,2180261678,B,A,83,96,House,End-Terrace,2018-11-26,E07000110,E14000804,Kent,2018-11-26,new dwelling,86,98,89,-3.0,1.2,16,0.0,58.0,58.0,192.0,192.0,81.0,51.0,75.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.16 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"3, Little Knoxes Close",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2018-11-26 15:13:26,unknown,20.0,20.0,10093303518.0,Address Matched +1502738185812016120613000098069847,3 Walter Cottages,Heath Road,East Farleigh,ME15 0LS,8797588478,G,E,1,46,House,End-Terrace,2016-12-05,E07000110,E14000804,Kent,2016-12-06,rental (private),10,47,803,306.0,13.0,148,4.9,101.0,56.0,2857.0,1326.0,349.0,161.0,85.0,Single,N,NODATA!,,,2601.0,70.0,"double glazing, unknown install date",Normal,1.0,5.0,1.0,20.0,1.0,"Solid fuel range cooker, no cylinder thermostat",Very Poor,Very Poor,"Solid, no insulation (assumed)",NO DATA!,,Partial double glazing,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,Portable electric heaters assumed for most rooms,Very Poor,Poor,No thermostatic control of room temperature,Poor,Poor,Low energy lighting in 20% of fixed outlets,Poor,Poor,dual fuel - mineral + wood,0.0,NO DATA!,,,,N,natural,"3 Walter Cottages, Heath Road, East Farleigh",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2016-12-06 13:00:00,rental (private),,,200003723542.0,Address Matched +617361879942011041323573582599278,"10, Clement Court",,,ME16 0EW,5918875868,D,C,59,71,House,End-Terrace,2011-04-13,E07000110,E14000804,Kent,2011-04-13,marketed sale,57,70,305,216.0,3.9,50,2.8,72.0,42.0,678.0,481.0,128.0,128.0,78.44,Unknown,Y,NO DATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,30.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 30% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.36,0.0,N,natural,"10, Clement Court",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2011-04-13 23:57:35,owner-occupied,,,200003658978.0,Address Matched +1088071862112014021108241895940815,"9, Bishops Close",Nettlestead,,ME18 5ES,8516259178,D,B,68,86,House,End-Terrace,2014-02-10,E07000110,E14000804,Kent,2014-02-11,marketed sale,67,86,189,64.0,2.8,36,1.0,85.0,47.0,466.0,402.0,140.0,76.0,77.0,Unknown,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,20.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 20% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"9, Bishops Close, Nettlestead",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2014-02-11 08:24:18,owner-occupied,10.0,2.0,200003657217.0,Address Matched +418213829042012020612125878120748,"14, Hawkwood",,,ME16 0JQ,6060421768,D,C,68,70,House,Detached,2012-02-04,E07000110,E14000804,Kent,2012-02-06,rental (private),66,69,189,173.0,3.8,36,3.5,103.0,54.0,584.0,566.0,114.0,114.0,105.18,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,5.0,5.0,8.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 8% of fixed outlets,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,2.37,0.0,,natural,"14, Hawkwood",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2012-02-06 12:12:58,rental (private),12.0,1.0,200003705709.0,Address Matched +393964826752020020216034725700864,Glenderry,Headcorn Road,Grafty Green,ME17 2AN,8460659668,D,C,57,79,Bungalow,Detached,2020-01-31,E07000110,E14000700,Kent,2020-02-02,rental (private),48,72,218,89.0,5.3,57,2.6,100.0,71.0,625.0,474.0,173.0,82.0,94.0,Single,N,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,60.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, oil",Average,Average,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 60% of fixed outlets,Good,Good,oil (not community),0.0,NO DATA!,,,,N,natural,"Glenderry, Headcorn Road, Grafty Green",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2020-02-02 16:03:47,rental (private),,,200003703722.0,Address Matched +598038099722013100914334034108227,4 Crundale,Union Street,,ME14 1TX,2387924868,C,B,76,81,Flat,End-Terrace,2013-09-30,E07000110,E14000804,Kent,2013-10-09,none of the above,78,83,129,97.0,1.9,25,1.5,81.0,49.0,306.0,238.0,119.0,120.0,79.0,Single,Y,1st,N,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,33.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 33% of fixed outlets,Average,Average,mains gas (not community),0.0,unheated corridor,1.5,,0.0,,natural,"4 Crundale, Union Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2013-10-09 14:33:40,rental (social),9.0,3.0,200003701457.0,Address Matched +1425181839242019012914552049312218,"16, Lucerne Street",,,ME14 1UE,9266533478,D,C,63,78,House,Mid-Terrace,2019-01-29,E07000110,E14000804,Kent,2019-01-29,marketed sale,58,74,274,157.0,3.2,48,1.9,70.0,51.0,563.0,542.0,84.0,56.0,67.0,Single,Y,NODATA!,,,2106.0,90.0,"double glazing, unknown install date",Normal,1.0,4.0,4.0,63.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Mostly double glazing,Average,Average,"Solid brick, as built, no insulation (assumed)",Poor,Poor,,,,"Flat, insulated (assumed)",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 63% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"16, Lucerne Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2019-01-29 14:55:20,owner-occupied,,,200003698904.0,Address Matched +1018267359902013100206575019470398,"40, Egremont Road",Bearsted,,ME15 8LX,9942854178,C,B,70,90,Bungalow,Semi-Detached,2013-10-01,E07000110,E14000700,Kent,2013-10-02,rental (private),72,93,192,25.0,1.9,37,0.3,41.0,32.0,366.0,308.0,73.0,50.0,50.0,Unknown,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,71.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 71% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"40, Egremont Road, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2013-10-02 06:57:50,rental (private),7.0,5.0,200003686213.0,Address Matched +1646813909802018070914302858980018,Beech Hill,Headcorn Road,Staplehurst,TN12 0BT,5869909578,B,A,91,109,House,Detached,2018-07-09,E07000110,E14000804,Kent,2018-07-09,new dwelling,91,108,46,-62.0,0.9,8,-1.1,73.0,73.0,288.0,288.0,85.0,52.0,112.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.12 W/m+é-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.21 W/m+é-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.15 W/m+é-¦K,Good,Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Beech Hill, Headcorn Road, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,NO DATA!,2018-07-09 14:30:28,unknown,25.0,25.0,10093306051.0,Address Matched +508469369602010070310171472700478,"85a, The Quarries",Boughton Monchelsea,,ME17 4NJ,1645067768,D,D,55,67,Bungalow,Detached,2010-07-03,E07000110,E14000700,Kent,2010-07-03,marketed sale,49,61,339,252.0,5.7,57,4.2,105.0,53.0,791.0,640.0,169.0,120.0,100.51,Single,Y,NO DATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,0.0,1.0,From main system,Average,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Average,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.36,0.0,N,natural,"85a, The Quarries, Boughton Monchelsea",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1976-1982,2010-07-03 10:17:14,owner-occupied,,,200003709890.0,Address Matched +598052439602014030409430086442158,7 Hawley Court,London Road,,ME16 8QJ,2645034868,C,C,71,79,Flat,Mid-Terrace,2014-02-25,E07000110,E14000804,Kent,2014-03-04,none of the above,73,82,172,110.0,2.1,33,1.4,76.0,42.0,312.0,239.0,171.0,118.0,65.0,Single,Y,1st,N,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,20.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 20% of fixed outlets,Poor,Poor,mains gas (not community),0.0,unheated corridor,9.616,,0.0,,natural,"7 Hawley Court, London Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2014-03-04 09:43:00,rental (social),5.0,1.0,200003668484.0,Address Matched +313521222962020091615522863848130,Flat 2 St. Asaph House,Middlesex Road,,ME15 7PW,3642293668,C,C,73,75,Maisonette,Semi-Detached,2020-09-14,E07000110,E14000700,Kent,2020-09-16,none of the above,75,77,182,170.0,1.8,32,1.7,109.0,54.0,301.0,306.0,89.0,89.0,57.0,dual,Y,1st,Y,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,0.0,0.0,From main system,Good,Good,(another dwelling below),NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, 350 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,no corridor,,,,N,natural,"Flat 2 St. Asaph House, Middlesex Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2020-09-16 15:52:28,rental (social),,,200003713154.0,Address Matched +971078453732013071314053590978702,"13, Bramley Crescent",Bearsted,,ME15 8LA,5220721178,D,B,68,88,Bungalow,Semi-Detached,2013-07-13,E07000110,E14000700,Kent,2013-07-13,marketed sale,68,90,212,46.0,2.2,41,0.5,39.0,39.0,411.0,342.0,85.0,52.0,53.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,83.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 83% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"13, Bramley Crescent, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2013-07-13 14:05:35,owner-occupied,6.0,5.0,200003688551.0,Address Matched +1532383047332017033015093771778706,"27, Murdoch Chase",Coxheath,,ME17 4FA,4621790578,B,A,82,96,House,Semi-Detached,2017-03-30,E07000110,E14000804,Kent,2017-03-30,new dwelling,86,100,98,-12.0,1.1,17,-0.1,44.0,44.0,205.0,205.0,74.0,43.0,62.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.14 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.20 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"27, Murdoch Chase, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2017-03-30 15:09:37,unknown,11.0,11.0,10093302668.0,Address Matched +1653333048612018081616171495080359,The Old Squash Court,Copper Tree Court,Loose,ME15 9RW,3987859578,D,C,60,76,House,Detached,2018-08-03,E07000110,E14000804,Kent,2018-08-16,marketed sale,51,69,253,153.0,7.4,45,4.5,173.0,95.0,1224.0,946.0,127.0,107.0,166.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,1.0,5.0,5.0,19.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Solid brick, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 19% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"The Old Squash Court, Copper Tree Court, Loose",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1991-1995,2018-08-16 16:17:14,owner-occupied,,,200003660973.0,Address Matched +6240d7f20e3a6f48996ebe7111f6e2747268a0b81a2fc9ac260f2e143d321c09,78 SHEALS CRESCENT,,,ME15 6TJ,10001567342,D,B,64,86,House,End-Terrace,2021-07-26,E07000110,E14000804,Kent,2021-07-26,rental,58,84,257,84.0,4.0,45,1.3,71.0,71.0,672.0,418.0,95.0,67.0,88.0,Single,Y,,,,,100.0,"double glazing, unknown install date",Normal,3.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.45,0.0,N,natural,78 SHEALS CRESCENT,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2021-07-26 14:58:58,Rented (private),13.0,,200003681844.0,Energy Assessor +1641010399922018061720320388358518,"28, Victoria Court",Victoria Street,,ME16 8JZ,1801968578,C,C,71,79,Flat,Semi-Detached,2018-06-15,E07000110,E14000804,Kent,2018-06-17,rental (private),53,67,477,335.0,2.4,81,1.7,28.0,28.0,251.0,152.0,136.0,118.0,30.0,dual,N,1st,Y,,2402.0,0.0,not defined,Normal,0.0,1.0,1.0,100.0,0.0,"Electric immersion, off-peak",Average,Poor,(another dwelling below),NO DATA!,,Single glazed,Very Poor,Very Poor,"Cavity wall, as built, insulated (assumed)",Good,Good,Portable electric heaters (assumed),,,"Pitched, 100 mm loft insulation",Average,Average,Electric storage heaters,Average,Very Poor,Automatic charge control,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,heated corridor,,,,N,natural,"28, Victoria Court, Victoria Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2018-06-17 20:32:03,rental (private),,,200003668912.0,Address Matched +243866140922009031116161089598491,"11, Belts Wood",,,ME15 9GL,9870409568,B,B,84,85,House,Mid-Terrace,2009-03-11,E07000110,E14000700,Kent,2009-03-11,new dwelling,84,84,111,108.0,1.6,0,1.6,57.0,46.0,212.0,213.0,98.0,98.0,44.4,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,9.0,,SAP05:Hot-Water,,,Average thermal transmittance 0.19 W/m²K,Very Good,Very Good,Fully double glazed,Good,Good,Average thermal transmittance 0.30 W/m²K,Good,Good,SAP05:Secondary-Heating,,,Average thermal transmittance 0.16 W/m²K,Good,Good,SAP05:Main-Heating,,,SAP05:Main-Heating-Controls,,,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.67,,,NO DATA!,"11, Belts Wood",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2009-03-11 16:16:10,,12.0,9.0,10014307513.0,Address Matched +75183716552009042223153808210241,"2, Millstock Terrace",Tovil Green,,ME15 6YZ,2134684468,C,B,76,83,House,Mid-Terrace,2009-04-20,E07000110,E14000804,Kent,2009-04-22,marketed sale,74,81,235,170.0,1.8,39,1.3,44.0,22.0,264.0,217.0,80.0,65.0,46.08,Single,Y,NO DATA!,,,2107.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Poor,Poor,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.3,0.0,N,natural,"2, Millstock Terrace, Tovil Green",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2009-04-22 23:15:38,owner-occupied,,,200003665850.0,Address Matched +1103218467432014030716494572078405,61 Sapphire House,Coral Park,,ME14 5HQ,6502460278,C,B,80,84,Flat,Enclosed Mid-Terrace,2014-03-07,E07000110,E14000804,Kent,2014-03-07,marketed sale,70,76,207,167.0,2.1,37,1.7,71.0,45.0,161.0,135.0,125.0,105.0,58.0,dual,N,3rd,Y,,2401.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,43.0,0.0,"Electric immersion, off-peak",Average,Very Poor,(other premises below),,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,"Pitched, 150 mm loft insulation",Good,Good,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 43% of fixed outlets,Average,Average,electricity (not community),0.0,heated corridor,,,0.0,,natural,"61 Sapphire House, Coral Park",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2014-03-07 16:49:45,owner-occupied,7.0,3.0,10022893751.0,Address Matched +1769667752132019120213430704078293,"3, Spindle Close",Headcorn,,TN27 9EZ,5334208678,B,B,89,91,House,Mid-Terrace,2019-12-02,E07000110,E14000700,Kent,2019-12-02,new dwelling,91,93,49,33.0,0.9,9,0.6,72.0,72.0,214.0,216.0,101.0,55.0,97.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"3, Spindle Close, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,NO DATA!,2019-12-02 13:43:07,unknown,15.0,15.0,10094441624.0,Address Matched +909293700412013041118391999970404,"9, Harrow Way",Weavering,,ME14 5TU,4473096078,C,B,73,87,House,Semi-Detached,2013-04-11,E07000110,E14000700,Kent,2013-04-11,marketed sale,74,88,150,55.0,2.3,29,0.9,58.0,46.0,398.0,367.0,85.0,60.0,79.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,73.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 73% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"9, Harrow Way, Weavering",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1991-1995,2013-04-11 18:39:19,owner-occupied,11.0,8.0,200003689798.0,Address Matched +1225404949262014102310153449578864,1 Cemetery Cottages,Mangravet Avenue,,ME15 9BH,6402429278,E,B,54,85,House,Semi-Detached,2014-10-23,E07000110,E14000700,Kent,2014-10-23,none of the above,51,85,296,70.0,4.0,57,1.0,90.0,45.0,776.0,429.0,97.0,67.0,70.0,Single,Y,NODATA!,,,2111.0,0.0,not defined,Normal,0.0,4.0,4.0,0.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,TRVs and bypass,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"1 Cemetery Cottages, Mangravet Avenue",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2014-10-23 10:15:34,owner-occupied,7.0,0.0,200003713918.0,Address Matched +20975576352018071917251496980040,10 Yorke House,The Chimes,Bearsted,ME14 4RE,96669468,C,C,77,78,Flat,Enclosed End-Terrace,2018-07-19,E07000110,E14000700,Kent,2018-07-19,rental (private),78,79,137,132.0,1.9,24,1.8,91.0,62.0,266.0,269.0,120.0,120.0,77.0,Single,Y,2nd,N,,2110.0,100.0,double glazing installed during or after 2002,Normal,1.0,3.0,3.0,53.0,0.0,From main system,Good,Good,"To unheated space, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and underfloor heating, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in 53% of fixed outlets,Good,Good,mains gas (not community),0.0,unheated corridor,11.56,,,N,natural,"10 Yorke House, The Chimes, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2003-2006,2018-07-19 17:25:14,rental (private),,,10022896471.0,Address Matched +914376739452014081412564192940103,"35, Willington Street",,,ME15 8JR,1388927078,E,C,50,80,House,Semi-Detached,2014-08-14,E07000110,E14000700,Kent,2014-08-14,none of the above,48,80,278,93.0,5.7,53,1.9,102.0,62.0,1118.0,621.0,153.0,86.0,108.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,2.0,6.0,5.0,35.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,Portable electric heaters (assumed),,,"Pitched, no insulation",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 35% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"35, Willington Street",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2014-08-14 12:56:41,owner-occupied,17.0,6.0,200003688450.0,Address Matched +919696369502014032611235008742568,6 Butler Close,Harrietsham,,ME17 1FR,591467078,B,B,90,90,House,Detached,2014-03-26,E07000110,E14000700,Kent,2014-03-26,new dwelling,91,91,45,45.0,1.1,9,1.1,67.0,67.0,294.0,294.0,96.0,96.0,124.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.2 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.3 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.1 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"6 Butler Close, Harrietsham",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2014-03-26 11:23:50,NO DATA!,12.0,12.0,10014314944.0,Address Matched +1063939686412014042322225498240217,"5, Barned Court",,,ME16 9EL,2758687178,D,B,66,84,House,Semi-Detached,2014-04-23,E07000110,E14000804,Kent,2014-04-23,none of the above,63,83,189,77.0,4.1,36,1.7,125.0,63.0,698.0,524.0,137.0,88.0,114.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,6.0,6.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"5, Barned Court",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2014-04-23 22:22:54,unknown,13.0,0.0,200003665468.0,Address Matched +24055900242008100722314951080538,"6, Ridgepoint Court",Wheeler Street,,ME14 2UL,5201500568,D,D,61,66,Flat,Semi-Detached,2008-10-07,E07000110,E14000804,Kent,2008-10-07,rental (private),54,54,405,402.0,3.5,61,3.5,56.0,31.0,150.0,111.0,489.0,302.0,57.83,Unknown,N,2nd,N,4.0,2603.0,100.0,double glazing installed during or after 2002,Normal,1.0,2.0,2.0,20.0,0.0,"Electric immersion, off-peak",Good,Poor,(other premises below),,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Room heaters, electric",Very Poor,Poor,Programmer and appliance thermostats,Good,Good,Low energy lighting in 20% of fixed outlets,Poor,Poor,electricity - this is for backwards compatibility only and should not be used,0.0,unheated corridor,5.65,2.49,0.0,N,natural,"6, Ridgepoint Court, Wheeler Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2008-10-07 22:31:49,rental (private),,,10022901968.0,Address Matched +396928879942010042711222862902238,9 Morton Way,,,ME15 6ZG,8958479668,B,B,83,84,House,Mid-Terrace,2010-04-27,E07000110,E14000804,Kent,2010-04-27,new dwelling,82,83,122,115.0,1.7,20,1.6,84.0,51.0,244.0,249.0,99.0,99.0,86.9,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,4.0,,From main system,Very Good,Very Good,Average thermal transmittance 0.25 W/m?K,Good,Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.14 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Very Good,Very Good,Programmer and at least two room thermostats,Average,Average,Low energy lighting in 33% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.32,,,NO DATA!,9 Morton Way,Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2010-04-27 11:22:28,,12.0,4.0,10014308108.0,Address Matched +616389194932011041121553703968202,"15, Plumtrees",,,ME16 9JH,9253275868,D,C,58,73,House,Semi-Detached,2011-04-11,E07000110,E14000804,Kent,2011-04-11,marketed sale,52,68,307,201.0,5.5,51,3.6,119.0,60.0,778.0,574.0,210.0,129.0,108.14,Unknown,Y,NO DATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,1.0,6.0,6.0,0.0,0.0,"From main system, no cylinder thermostat",Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, mains gas",,,"Flat, insulated",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.41,0.0,N,natural,"15, Plumtrees",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2011-04-11 21:55:37,owner-occupied,,,200003687468.0,Address Matched +1685394009922019041517311421998221,Flat 16 Coronet House,"11, Queen Anne Road",,ME14 1GD,2266091678,C,C,74,74,Flat,Detached,2019-04-11,E07000110,E14000804,Kent,2019-04-15,new dwelling,76,76,312,312.0,1.0,53,1.0,19.0,19.0,168.0,168.0,132.0,132.0,18.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,Electric instantaneous at point of use,Very Poor,Very Poor,Average thermal transmittance 0.25 W/m-¦K,Good,Good,Fully double glazed,Good,Good,Average thermal transmittance 0.25 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.24 W/m-¦K,Good,Good,"Room heaters, electric",Very Poor,Poor,Programmer and room thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"Flat 16 Coronet House, 11, Queen Anne Road",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2019-04-15 17:31:14,unknown,5.0,5.0,10094441193.0,Address Matched +18000405032010050609375254068005,99 Wallis Place,Hart Street,,ME16 8FD,584088468,B,B,86,86,Flat,NO DATA!,2010-05-06,E07000110,E14000804,Kent,2010-05-06,new dwelling,85,85,122,122.0,1.1,20,1.1,27.0,27.0,188.0,188.0,82.0,82.0,53.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,6.0,,From main system,Very Good,Very Good,Average thermal transmittance 0.19 W/m?K,Very Good,Very Good,Fully double glazed,Good,Good,Average thermal transmittance 0.26 W/m?K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.36,,,NO DATA!,"99 Wallis Place, Hart Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2010-05-06 09:37:52,,6.0,6.0,10022900700.0,Address Matched +626ec21b5ec69ab04ff874e8960029e1b3f2720478e795d718cd9f034741e15c,Flat 5,Londonderry House,Cornwall Close,ME15 8HU,10001641846,C,C,75,75,Flat,Detached,2021-09-22,E07000110,E14000700,Kent,2021-09-22,rental,76,76,171,171.0,1.9,30,1.9,55.0,55.0,323.0,323.0,87.0,87.0,62.0,Single,Y,02,Y,,,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,(another dwelling below),,,Fully double glazed,Average,Average,"System built, with external insulation",Good,Good,,,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,4.2,2.44,0.0,N,natural,"Flat 5, Londonderry House, Cornwall Close",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2021-09-22 11:49:11,Rented (social),7.0,,200003685562.0,Energy Assessor +627f444b307836eb3a430f04eb31d172f04fdaa897f19a2b1649fa68f68b213b,64 Waterlow Road,,,ME14 2TP,10001625255,E,C,53,80,House,Mid-Terrace,2021-09-01,E07000110,E14000804,Kent,2021-09-01,marketed sale,39,71,315,110.0,6.7,66,2.6,79.0,79.0,977.0,563.0,138.0,71.0,102.0,Single,Y,,,,,50.0,"double glazing, unknown install date",Normal,1.0,6.0,6.0,100.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Partial double glazing,Poor,Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, coal",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.4,0.0,N,natural,64 Waterlow Road,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2021-09-01 12:03:09,Owner-occupied,12.0,,200003703087.0,Energy Assessor +1384497309022015111116151010828115,Flat 17 William Shipley House,Knightrider Court,Knightrider Street,ME15 6XD,1158050478,D,D,61,61,Flat,NO DATA!,2015-05-02,E07000110,E14000804,Kent,2015-11-11,new dwelling,65,65,242,242.0,2.7,41,2.7,44.0,44.0,481.0,481.0,245.0,245.0,65.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,,0.0,"Electric immersion, standard tariff",Very Poor,Poor,(other premises below),,,Fully double glazed,Good,Good,Average thermal transmittance 0.29 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,"Room heaters, electric",Very Poor,Poor,Programmer and room thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"Flat 17 William Shipley House, Knightrider Court, Knightrider Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2015-11-11 16:15:10,unknown,8.0,8.0,10091195505.0,Address Matched +204858520642009010812000051610188,"16, Milstead Close",,,ME14 5PQ,4660226568,D,C,64,78,Maisonette,Enclosed End-Terrace,2009-01-08,E07000110,E14000804,Kent,2009-01-08,marketed sale,58,75,322,190.0,3.4,54,2.0,30.0,30.0,478.0,300.0,101.0,76.0,72.1,Single,Y,1st,Y,2.0,2107.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,100.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, insulated at rafters",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Poor,Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.4,0.0,N,natural,"16, Milstead Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2009-01-08 12:00:00,owner-occupied,,,200003671360.0,Address Matched +312150510222009062409074563348711,39a Hedley Street,,,ME14 5AD,1669183668,C,B,79,81,House,Mid-Terrace,2009-06-24,E07000110,E14000804,Kent,2009-06-24,new dwelling,78,79,167,158.0,1.9,28,1.8,72.0,41.0,255.0,261.0,83.0,83.0,68.41,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,,From main system,Good,Good,Average thermal transmittance 0.17 W/m?K,Very Good,Very Good,Fully double glazed,Good,Good,Average thermal transmittance 0.31 W/m?K,Good,Good,,,,Average thermal transmittance 0.14 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 25% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.6,,,NO DATA!,39a Hedley Street,Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2009-06-24 09:07:45,,,,10014311851.0,Address Matched +66548160302009051818451342419788,2 Rose Cottages,Maidstone Road,Nettlestead,ME18 5HB,321964468,G,G,1,1,House,Mid-Terrace,2009-05-18,E07000110,E14000804,Kent,2009-05-18,marketed sale,26,26,752,752.0,7.5,113,7.5,53.0,53.0,1731.0,1731.0,140.0,140.0,65.8,dual,Y,NO DATA!,,,2601.0,0.0,INVALID!,Normal,0.0,3.0,3.0,43.0,2.0,"Electric immersion, off-peak",Poor,Poor,"Suspended, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, insulated at rafters",Poor,Poor,Portable electric heating assumed for most rooms,Very Poor,Poor,No thermostatic control of room temperature,Poor,Poor,Low energy lighting in 43% of fixed outlets,Average,Average,electricity - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.24,0.0,N,natural,"2 Rose Cottages, Maidstone Road, Nettlestead",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2009-05-18 18:45:13,owner-occupied,,,200003656983.0,Address Matched +371780890262009092811411087688331,"23, Bell Meadow",,,ME15 9NB,3804997668,E,C,54,75,House,Semi-Detached,2009-09-28,E07000110,E14000700,Kent,2009-09-28,marketed sale,48,71,370,198.0,5.1,61,2.7,74.0,41.0,698.0,388.0,168.0,127.0,82.74,Single,Y,NO DATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,20.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Poor,Poor,Low energy lighting in 20% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.3,0.0,N,natural,"23, Bell Meadow",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2009-09-28 11:41:10,owner-occupied,,,200003682577.0,Address Matched +1183092906552014073109061192240025,Cherry Hill,Maidstone Road,Nettlestead,ME18 5HE,545626278,D,B,55,82,House,Detached,2014-07-25,E07000110,E14000804,Kent,2014-07-31,marketed sale,54,83,242,85.0,6.4,42,2.2,135.0,76.0,1377.0,686.0,124.0,111.0,153.0,Unknown,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,6.0,6.0,23.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 23% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"Cherry Hill, Maidstone Road, Nettlestead",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2014-07-31 09:06:11,owner-occupied,13.0,3.0,200003656861.0,Address Matched +243952636752009031206160600910750,"14, Yeoman Way",Bearsted,,ME15 8PQ,7003609568,D,C,64,73,Bungalow,Detached,2009-03-12,E07000110,E14000700,Kent,2009-03-12,rental (private),58,69,310,231.0,3.6,52,2.6,57.0,33.0,459.0,379.0,129.0,93.0,77.22,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,25.0,0.0,From main system,Average,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Average,Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 25% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,0.0,N,natural,"14, Yeoman Way, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2009-03-12 06:16:06,rental (private),,,200003690961.0,Address Matched +1580495979062017100623564844768993,Brenchley,Orchard Drive,Weavering,ME14 5JG,9405734578,D,B,57,81,House,Semi-Detached,2017-10-06,E07000110,E14000700,Kent,2017-10-06,marketed sale,48,77,252,98.0,7.3,46,2.9,103.0,104.0,1291.0,731.0,180.0,80.0,159.0,dual,Y,NODATA!,,,2106.0,45.0,"double glazing, unknown install date",Normal,1.0,7.0,7.0,88.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Partial double glazing,Poor,Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 88% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"Brenchley, Orchard Drive, Weavering",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2017-10-06 23:56:48,owner-occupied,,,200003687949.0,Address Matched +669770159142014062909023586942738,"49, Bathurst Road",Staplehurst,,TN12 0LQ,7184059868,D,C,62,80,House,Semi-Detached,2014-06-27,E07000110,E14000804,Kent,2014-06-29,assessment for green deal,58,78,211,98.0,4.7,41,2.2,112.0,63.0,836.0,626.0,125.0,83.0,117.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,2.0,6.0,6.0,23.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 23% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"49, Bathurst Road, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1950-1966,2014-06-29 09:02:35,owner-occupied,13.0,3.0,200003677815.0,Address Matched +522917359842010080422555170800248,Flat 8,Harbledown House,Fant Lane,ME16 8NZ,8865958768,B,B,86,86,Flat,Mid-Terrace,2010-08-04,E07000110,E14000804,Kent,2010-08-04,rental (social),84,84,126,126.0,1.2,21,1.2,30.0,30.0,176.0,176.0,107.0,107.0,56.72,Single,Y,1st,N,3.0,2306.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,100.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,(another dwelling above),,,Community scheme,Good,Good,"Unit charging, programmer and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,heated corridor,,2.26,0.0,N,natural,"Flat 8, Harbledown House, Fant Lane",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2010-08-04 22:55:51,rental (social),,,, +826872909542012082017511204122108,"30, Heathfield Close",Penenden Heath,,ME14 2AB,5539801078,D,B,64,84,House,Semi-Detached,2012-08-20,E07000110,E14000804,Kent,2012-08-20,marketed sale,60,84,214,73.0,3.9,41,1.4,61.0,61.0,483.0,420.0,276.0,75.0,95.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,1.0,5.0,3.0,80.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"30, Heathfield Close, Penenden Heath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2012-08-20 17:51:12,owner-occupied,10.0,8.0,200003706216.0,Address Matched +62d5a91251895557544eb0cf06902f8bc24be34586d2cd7ffd41428cb989ffb8,7 TEASEL CLOSE,WEAVERING,,ME14 5FN,10001649682,D,C,67,77,House,Detached,2021-07-14,E07000110,E14000700,Kent,2021-07-14,rental,64,74,185,122.0,4.6,32,3.1,106.0,106.0,856.0,817.0,138.0,80.0,142.0,Unknown,Y,,,,,100.0,"double glazing, unknown install date",Normal,0.0,7.0,7.0,88.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 88% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,1.0,0.0,N,natural,"7 TEASEL CLOSE, WEAVERING",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1991-1995,2021-07-14 18:58:26,Owner-occupied,24.0,,200003688362.0,Energy Assessor +879189589062013020219253244128587,"27, Buckland Lane",,,ME16 0BJ,8411874078,D,C,56,80,House,Semi-Detached,2013-02-02,E07000110,E14000804,Kent,2013-02-02,marketed sale,50,78,252,98.0,5.5,49,2.2,100.0,59.0,936.0,598.0,113.0,66.0,114.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,3.0,6.0,6.0,29.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 29% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"27, Buckland Lane",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2013-02-02 19:25:32,owner-occupied,17.0,5.0,200003658445.0,Address Matched +17f06fd0b404b8aafd03cd488500261e7438293a55e89cb4fa6b6fd6aeffeff2,Downlands,Heathfield Road,Penenden Heath,ME14 2AD,10001653132,D,B,64,81,Bungalow,Detached,2021-09-22,E07000110,E14000804,Kent,2021-09-23,marketed sale,57,76,222,115.0,5.6,39,3.0,195.0,98.0,870.0,672.0,125.0,81.0,144.0,Unknown,Y,,,,,100.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,0.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,,,2.41,0.0,N,natural,"Downlands, Heathfield Road, Penenden Heath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2021-09-23 08:02:24,Owner-occupied,11.0,,200003707200.0,Energy Assessor +1793759218752020031916394927900061,"25, Pickers Road",Allington,,ME16 9GB,158879678,B,B,87,88,House,Mid-Terrace,2020-03-19,E07000110,E14000804,Kent,2020-03-19,new dwelling,89,92,65,48.0,0.9,12,0.6,66.0,66.0,181.0,182.0,89.0,50.0,74.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.16 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.16 W/m-¦K,Good,Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"25, Pickers Road, Allington",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2020-03-19 16:39:49,unknown,16.0,16.0,10093306740.0,Address Matched +1816294922312020080722034324000376,"2a, Mote Road",,,ME15 6EP,3624241778,D,C,67,77,Flat,End-Terrace,2020-08-07,E07000110,E14000804,Kent,2020-08-07,rental (private),67,82,296,165.0,2.0,52,1.1,34.0,34.0,372.0,220.0,80.0,71.0,38.0,Single,Y,1st,Y,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,100.0,0.0,From main system,Good,Good,(another dwelling below),NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,no corridor,,,,N,natural,"2a, Mote Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2020-08-07 22:03:43,rental (private),,,200003693391.0,Address Matched +1394150197052015120816582391059549,"14, Saxons Drive",,,ME14 5HS,5982711478,D,B,59,85,House,Mid-Terrace,2015-12-08,E07000110,E14000804,Kent,2015-12-08,marketed sale,54,85,263,71.0,4.8,46,1.3,84.0,63.0,785.0,453.0,250.0,100.0,103.0,Single,Y,NODATA!,,,2504.0,100.0,double glazing installed during or after 2002,Normal,2.0,6.0,5.0,67.0,0.0,"From main system, no cylinder thermostat",Poor,Poor,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,"Pitched, 250 mm loft insulation",Good,Good,"Warm air, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 67% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"14, Saxons Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2015-12-08 16:58:23,owner-occupied,,,200003707882.0,Address Matched +740277739962012011718035054538752,"3, Cherry Orchard Way",,,ME16 8TJ,5555384968,E,D,49,63,House,Semi-Detached,2012-01-17,E07000110,E14000804,Kent,2012-01-17,marketed sale,44,59,337,236.0,5.8,65,4.1,58.0,58.0,897.0,648.0,175.0,126.0,45.15,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,80.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Roof room(s), ceiling insulated",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,2.43,0.0,,natural,"3, Cherry Orchard Way",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2012-01-17 18:03:50,owner-occupied,10.0,8.0,200003696596.0,Address Matched +518687499262010072618001238468490,17a Willington Street,,,ME17 8JW,9335928768,C,B,80,81,House,Detached,2010-07-26,E07000110,E14000700,Kent,2010-07-26,marketed sale,78,79,155,149.0,2.0,26,1.9,70.0,44.0,306.0,310.0,96.0,96.0,77.76,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,40.0,0.0,From main system,Very Good,Very Good,"Suspended, insulated (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 40% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,0.0,N,natural,17a Willington Street,Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2007 onwards,2010-07-26 18:00:12,owner-occupied,,,10014311864.0,Address Matched +1729694899652019061709060890210967,Flat 19 The Pavilion,"17-21, Pudding Lane",,ME14 1PA,9774905678,D,D,64,64,Flat,Detached,2019-02-21,E07000110,E14000804,Kent,2019-06-17,marketed sale,68,68,222,222.0,2.1,38,2.1,44.0,44.0,460.0,460.0,177.0,177.0,55.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,Electric instantaneous at point of use,Very Poor,Very Poor,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.28 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.14 W/m-¦K,Very Good,Very Good,"Room heaters, electric",Very Poor,Poor,Programmer and appliance thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"Flat 19 The Pavilion, 17-21, Pudding Lane",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2019-06-17 09:06:08,owner-occupied,8.0,8.0,10094441552.0,Address Matched +62c21a18a06e639e6a636c3e2bd800a47afd1556d2e1907a8202690b39f2e03e,BABYLON FISH FARM,BABYLON LANE,,TN12 0EG,10001686217,A,A,116,117,House,Detached,2021-07-28,E07000110,E14000700,Kent,2021-07-28,new dwelling,114,115,-96,-101.0,-3.0,-16,-3.2,108.0,108.0,452.0,452.0,153.0,94.0,188.0,standard tariff,,,N,,,100.0,,,,,,100.0,0.0,From main system,Good,Very Good,Average thermal transmittance 0.12 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.18 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.15 W/m-¦K,Good,Good,"Air source heat pump, underfloor, electric",Good,Very Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",1.0,,,2.38,,,,"BABYLON FISH FARM, BABYLON LANE",Maidstone,Faversham and Mid Kent,HAWKENBURY,2020,2021-07-28 08:54:24,Owner-occupied,80.0,,10014314321.0,Energy Assessor +1653365579722019080307420629998451,Apartment D,1 Bower Terrace,,ME16 8RY,5244759578,E,C,41,76,Flat,End-Terrace,2019-07-31,E07000110,E14000804,Kent,2019-08-03,rental (private),49,60,314,237.0,5.1,53,3.8,90.0,92.0,1481.0,453.0,191.0,191.0,95.0,Unknown,N,Basement,N,,2603.0,0.0,not defined,Normal,0.0,2.0,2.0,88.0,0.0,"Electric immersion, off-peak",Average,Poor,"Solid, no insulation (assumed)",NO DATA!,,Single glazed,Very Poor,Very Poor,"Solid brick, with internal insulation",Good,Good,,,,(another dwelling above),,,"Room heaters, electric",Very Poor,Poor,Programmer and appliance thermostats,Good,Good,Low energy lighting in 88% of fixed outlets,Very Good,Very Good,electricity (not community),0.0,no corridor,,,,N,natural,"Apartment D, 1 Bower Terrace",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2019-08-03 07:42:06,rental (private),,,10094444486.0,Address Matched +513251129962010071423305667448330,Homewell House,Maidstone Road,Sutton Valence,ME17 3LS,3678297768,F,F,22,35,House,Detached,2010-07-14,E07000110,E14000700,Kent,2010-07-14,marketed sale,24,36,489,378.0,15.0,91,11.0,153.0,84.0,2252.0,1754.0,290.0,235.0,124.65,Single,N,NO DATA!,,,2102.0,,not defined,Normal,2.0,8.0,4.0,18.0,1.0,"From main system, no cylinder thermostat",Poor,Poor,"Suspended, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Roof room(s), insulated",Average,Average,"Boiler and radiators, oil",Average,Average,"Programmer, no room thermostat",Very Poor,Very Poor,Low energy lighting in 18% of fixed outlets,Poor,Poor,oil - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,4.16,0.0,N,natural,"Homewell House, Maidstone Road, Sutton Valence",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2010-07-14 23:30:56,owner-occupied,,,200003694479.0,Address Matched +1556453046332017063016512909778709,"88, Alkham Road",,,ME14 5PE,4919762578,C,B,69,83,House,Semi-Detached,2017-06-30,E07000110,E14000804,Kent,2017-06-30,marketed sale,66,80,207,109.0,3.1,37,1.7,57.0,57.0,526.0,492.0,130.0,81.0,86.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"88, Alkham Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2017-06-30 16:51:29,owner-occupied,,,200003716829.0,Address Matched +305458316612009061515225603910461,"62, Bicknor Road",,,ME15 9PA,4113633668,D,D,55,60,House,End-Terrace,2009-06-15,E07000110,E14000700,Kent,2009-06-15,marketed sale,49,53,355,322.0,5.0,59,4.6,88.0,44.0,690.0,624.0,97.0,125.0,84.55,dual,Y,NO DATA!,,,2504.0,100.0,double glazing installed before 2002,Normal,0.0,6.0,6.0,0.0,0.0,Gas multipoint,Average,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"System built, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Warm air, mains gas",Good,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.41,0.0,N,natural,"62, Bicknor Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2009-06-15 15:22:56,owner-occupied,,,200003679881.0,Address Matched +1099912448952014030310252493040328,"34, Church Street",Tovil,,ME15 6RB,3867830278,C,B,76,88,House,Mid-Terrace,2014-03-01,E07000110,E14000804,Kent,2014-03-03,marketed sale,77,89,124,47.0,2.2,24,0.9,95.0,58.0,362.0,369.0,119.0,78.0,93.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,36.0,0.0,From main system,Good,Good,"Solid, limited insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 36% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"34, Church Street, Tovil",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2014-03-03 10:25:24,owner-occupied,11.0,4.0,200003666367.0,Address Matched +491813599262010062919204306818090,"33, Linden Road",Coxheath,,ME17 4QS,9007936768,E,D,52,61,House,Semi-Detached,2010-06-29,E07000110,E14000804,Kent,2010-06-29,marketed sale,53,63,379,303.0,3.7,61,2.9,55.0,35.0,590.0,481.0,152.0,149.0,60.4,dual,Y,NO DATA!,,,2106.0,0.0,not defined,Normal,0.0,4.0,4.0,40.0,0.0,"Electric immersion, off-peak",Poor,Poor,"Solid, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Average,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 40% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,0.0,N,natural,"33, Linden Road, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2010-06-29 19:20:43,owner-occupied,,,200003714869.0,Address Matched +681698900932011101015220810968093,"58, Mayfair Avenue",,,ME15 6DS,350040968,D,D,61,66,Bungalow,End-Terrace,2011-10-10,E07000110,E14000804,Kent,2011-10-10,rental (social),63,69,293,245.0,2.5,56,2.1,35.0,26.0,476.0,407.0,71.0,71.0,44.92,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,More Than Typical,0.0,2.0,2.0,67.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, partial insulation (assumed)",Average,Average,"Room heaters, electric",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 67% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,2.37,0.0,,natural,"58, Mayfair Avenue",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1976-1982,2011-10-10 15:22:08,rental (social),6.0,4.0,200003676928.0,Address Matched +367795594612013121612570197079160,"68, Moncktons Avenue",,,ME14 2QF,1062477668,D,B,63,82,House,Semi-Detached,2013-12-09,E07000110,E14000804,Kent,2013-12-16,marketed sale,61,82,218,88.0,3.5,42,1.5,92.0,49.0,613.0,484.0,91.0,64.0,84.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,11.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 11% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"68, Moncktons Avenue",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2013-12-16 12:57:01,owner-occupied,9.0,1.0,200003670788.0,Address Matched +1292957754212018052312335490280534,"6, Blendon Road",,,ME14 5QA,5473404378,D,B,63,81,House,Semi-Detached,2018-05-23,E07000110,E14000804,Kent,2018-05-23,marketed sale,57,78,277,127.0,3.4,49,1.6,56.0,56.0,607.0,486.0,96.0,64.0,70.0,Single,Y,NODATA!,,,2102.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,89.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,Low energy lighting in 89% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"6, Blendon Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2018-05-23 12:33:54,owner-occupied,,,200003671431.0,Address Matched +958928146732013062517500515278305,"11, Maidstone Road",Marden,,TN12 9AB,4545340178,D,B,64,86,House,Mid-Terrace,2013-06-25,E07000110,E14000804,Kent,2013-06-25,marketed sale,65,88,243,60.0,2.4,47,0.6,46.0,31.0,436.0,358.0,74.0,51.0,51.0,Unknown,Y,NODATA!,,,2106.0,70.0,double glazing installed during or after 2002,Normal,1.0,3.0,3.0,50.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Partial double glazing,Average,Average,"Solid brick, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"11, Maidstone Road, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1900-1929,2013-06-25 17:50:05,owner-occupied,8.0,4.0,200003708416.0,Address Matched +18256389842019082022363342812108,254 Wallis Place,Hart Street,,ME16 8FF,816088468,C,C,80,80,Flat,Mid-Terrace,2019-08-20,E07000110,E14000804,Kent,2019-08-20,marketed sale,82,82,111,111.0,1.6,20,1.6,67.0,67.0,250.0,250.0,99.0,99.0,79.0,Unknown,Y,4th,Y,,2104.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,(another dwelling below),NO DATA!,,Fully double glazed,Good,Good,"System built, as built, insulated (assumed)",Good,Good,,,,"Flat, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,1.01,,,N,natural,"254 Wallis Place, Hart Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2019-08-20 22:36:33,owner-occupied,,,10022900862.0,Address Matched +1582660039922017101708231364038303,"28, Saxon Way",Tovil,,ME15 6AL,697354578,B,B,82,82,Flat,Detached,2017-10-17,E07000110,E14000804,Kent,2017-10-17,new dwelling,85,85,104,104.0,1.3,18,1.3,49.0,49.0,232.0,232.0,77.0,77.0,70.0,standard tariff,,top floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.16 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.27 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.12 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"28, Saxon Way, Tovil",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2017-10-17 08:23:13,owner-occupied,45.0,45.0,10093304982.0,Address Matched +1649448393832018071820335329978900,"10, Bilberry Close",Weavering,,ME14 5UR,9049929578,C,B,70,86,House,End-Terrace,2018-07-17,E07000110,E14000700,Kent,2018-07-18,marketed sale,69,85,198,77.0,2.6,35,1.0,99.0,54.0,389.0,368.0,128.0,75.0,75.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,18.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 18% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"10, Bilberry Close, Weavering",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2018-07-18 20:33:53,owner-occupied,,,200003689234.0,Address Matched +772098029242012040411443298720048,"23, Marigold Way",,,ME16 0ZJ,7292027968,C,A,78,93,House,Mid-Terrace,2012-04-04,E07000110,E14000804,Kent,2012-04-04,marketed sale,81,95,116,13.0,1.5,22,0.2,60.0,41.0,256.0,258.0,77.0,53.0,69.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,54.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 54% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"23, Marigold Way",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2012-04-04 11:44:32,owner-occupied,13.0,7.0,10022901863.0,Address Matched +596633051512013051321100692970188,"53, Wrangleden Road",,,ME15 9LD,1866124868,C,C,70,73,Flat,End-Terrace,2013-05-13,E07000110,E14000700,Kent,2013-05-13,rental (social),71,75,187,158.0,2.2,36,1.8,56.0,37.0,392.0,346.0,80.0,80.0,61.0,Single,Y,Ground,N,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,50.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,no corridor,,,0.0,,natural,"53, Wrangleden Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2013-05-13 21:10:06,rental (social),6.0,3.0,200003682436.0,Address Matched +62e3ab3bfc92ce8c007fcfede181d8589c81240ddc9f614e8cdf09dd17c30faf,NEWLANDS,CRUMPS LANE,ULCOMBE,ME17 1EX,10001657444,F,C,27,78,House,Semi-Detached,2021-07-27,E07000110,E14000700,Kent,2021-07-27,marketed sale,63,100,531,132.0,3.1,46,-0.1,64.0,64.0,958.0,525.0,837.0,168.0,68.0,dual,N,,,,,0.0,not defined,Normal,0.0,3.0,3.0,100.0,0.0,"Electric immersion, off-peak",Very Poor,Poor,"Suspended, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 75 mm loft insulation",Average,Average,"Room heaters, wood logs",Poor,Very Good,No thermostatic control of room temperature,Poor,Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,wood logs,0.0,,,2.409,0.0,N,natural,"NEWLANDS, CRUMPS LANE, ULCOMBE",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2021-07-27 19:48:09,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,9.0,,200003702120.0,Energy Assessor +1085944752432014021109225349078200,2 Cart Lodge Oast,The Green,Boughton Monchelsea,ME17 4LU,5009249178,C,B,69,88,House,Mid-Terrace,2014-02-06,E07000110,E14000700,Kent,2014-02-11,marketed sale,69,89,199,51.0,2.2,38,0.6,37.0,37.0,433.0,359.0,95.0,65.0,58.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,2.0,2.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"2 Cart Lodge Oast, The Green, Boughton Monchelsea",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2014-02-11 09:22:53,owner-occupied,8.0,8.0,10022901635.0,Address Matched +1185743029062014080518504196058264,"39, The Landway",Bearsted,,ME14 4BG,6909246278,E,C,50,79,Bungalow,Semi-Detached,2014-08-05,E07000110,E14000700,Kent,2014-08-05,none of the above,46,77,326,117.0,4.6,63,1.7,94.0,47.0,839.0,569.0,156.0,73.0,74.0,Single,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,0.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Roof room(s), limited insulation (assumed)",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"39, The Landway, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2014-08-05 18:50:41,owner-occupied,10.0,0.0,200003692618.0,Address Matched +1040203489022013110911593726418917,"18, Alexandra Glen",Walderslade,,ME5 9EB,1227816178,D,B,62,88,House,End-Terrace,2013-11-09,E07000110,E14000700,Kent,2013-11-09,rental (private),60,90,263,45.0,2.8,51,0.5,34.0,34.0,460.0,335.0,149.0,63.0,55.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,100.0,0.0,From main system,Average,Average,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"18, Alexandra Glen, Walderslade",Maidstone,Faversham and Mid Kent,CHATHAM,England and Wales: 1983-1990,2013-11-09 11:59:37,rental (private),8.0,8.0,200003709141.0,Address Matched +948830729962013061200133799408157,"17, Saltwood Road",,,ME15 6UY,5993279078,C,B,73,86,House,Semi-Detached,2013-06-10,E07000110,E14000804,Kent,2013-06-12,marketed sale,73,87,150,58.0,2.3,29,1.0,56.0,56.0,414.0,374.0,86.0,61.0,82.0,Unknown,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,7.0,7.0,80.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"17, Saltwood Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1976-1982,2013-06-12 00:13:37,owner-occupied,10.0,8.0,200003665377.0,Address Matched +595210562932011022110023740268504,"68, Tovil Road",,,ME15 6QJ,6400504868,D,C,65,69,House,Mid-Terrace,2011-02-21,E07000110,E14000804,Kent,2011-02-21,marketed sale,65,68,273,247.0,3.1,41,2.8,91.0,46.0,543.0,513.0,120.0,120.0,74.2,dual,Y,NO DATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,0.0,0.0,From main system,Very Good,Very Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, 50 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.5,0.0,N,natural,"68, Tovil Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2011-02-21 10:02:37,owner-occupied,,,200003664480.0,Address Matched +1475407849762016083117502246698026,"12, Church Road",Tovil,,ME15 6QX,2449496478,D,B,66,84,House,Mid-Terrace,2016-08-31,E07000110,E14000804,Kent,2016-08-31,marketed sale,61,81,240,105.0,3.7,42,1.6,63.0,63.0,646.0,498.0,143.0,84.0,87.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,4.0,4.0,90.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 90% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,2.56,,N,natural,"12, Church Road, Tovil",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2016-08-31 17:50:22,rental (private),,,200003664506.0,Address Matched +785361019002012050810523698820788,"84, Hardy Street",,,ME14 2SJ,6070518968,F,C,31,70,Maisonette,Mid-Terrace,2012-05-08,E07000110,E14000804,Kent,2012-05-08,rental (social),28,70,509,174.0,7.4,96,2.6,95.0,48.0,1063.0,479.0,227.0,54.0,78.0,dual,Y,Ground,N,,2107.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,0.0,1.0,No system present: electric immersion assumed,Very Poor,Very Poor,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Sandstone, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,no corridor,,,0.0,,natural,"84, Hardy Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2012-05-08 10:52:36,rental (social),10.0,0.0,10014308310.0,Address Matched +1430080113052016040423392497060348,31 Shipley Court,Wyatt Street,,ME14 1HF,3869373478,C,B,78,82,Flat,End-Terrace,2016-04-01,E07000110,E14000804,Kent,2016-04-04,rental (social),64,71,247,199.0,2.8,42,2.3,53.0,53.0,274.0,174.0,144.0,144.0,67.0,dual,N,3rd,N,,2401.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,100.0,0.0,"Electric immersion, off-peak",Average,Poor,(another dwelling below),NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,(another dwelling above),,,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,unheated corridor,7.0,2.35,,N,natural,"31 Shipley Court, Wyatt Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2016-04-04 23:39:24,rental (social),,,200003688179.0,Address Matched +63013b85103d53d1b0e43550414688b62d639435bdaa7ab0466636cd386b265f,76 SANDLING ROAD,,,ME14 2RJ,10001566946,E,B,48,82,House,End-Terrace,2021-07-16,E07000110,E14000804,Kent,2021-07-16,marketed sale,40,79,361,99.0,6.2,65,1.8,82.0,83.0,1085.0,501.0,91.0,63.0,95.0,Single,Y,,,,,22.0,double glazing installed before 2002,Normal,1.0,6.0,6.0,90.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Some double glazing,Very Poor,Very Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, dual fuel (mineral and wood)",,,"Roof room(s), no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 90% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.11,0.0,N,natural,76 SANDLING ROAD,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2021-07-16 16:16:44,Owner-occupied,20.0,,200003669486.0,Energy Assessor +219699615452009012716345600210450,"121, Linton Road",Loose,,ME15 0AL,4078507568,D,C,60,69,House,Semi-Detached,2009-01-26,E07000110,E14000804,Kent,2009-01-27,marketed sale,54,64,282,220.0,5.7,47,4.5,103.0,59.0,736.0,602.0,144.0,120.0,121.6,Single,Y,NO DATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,6.0,6.0,25.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 100mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Poor,Poor,Low energy lighting in 25% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,0.0,N,natural,"121, Linton Road, Loose",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2009-01-27 16:34:56,owner-occupied,,,200003663275.0,Address Matched +89745329642010102818461845602988,"8, Parsley Way",,,ME16 0FS,6650126468,C,C,77,78,House,End-Terrace,2010-10-28,E07000110,E14000804,Kent,2010-10-28,marketed sale,77,78,179,172.0,1.9,29,1.8,63.0,37.0,337.0,342.0,80.0,80.0,65.2,Unknown,Y,NO DATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,30.0,0.0,From main system,Very Good,Very Good,"Solid, insulated (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 30% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.5,0.0,N,natural,"8, Parsley Way",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2010-10-28 18:46:18,owner-occupied,,,10022896659.0,Address Matched +398015780402009111615202666919668,40 Oxford Gardens,,,ME15 8FJ,6459289668,C,C,76,77,House,Mid-Terrace,2009-11-16,E07000110,E14000700,Kent,2009-11-16,new dwelling,83,83,131,128.0,1.6,20,1.5,50.0,41.0,200.0,201.0,167.0,167.0,80.0,standard tariff,,NO DATA!,,,2207.0,,NO DATA!,NO DATA!,,,,4.0,0.0,From main system,Poor,Good,Average thermal transmittance 0.18 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.28 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.12 W/m?K,Very Good,Very Good,"Air source heat pump, underfloor, electric",Average,Very Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",0.0,NO DATA!,,2.4,,,NO DATA!,40 Oxford Gardens,Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2009-11-16 15:20:26,,5.0,4.0,10014308979.0,Address Matched +1710778272202020021014335161309708,"7, Castle Way",Boughton Monchelsea,,ME17 4GQ,9217373678,B,A,86,94,House,Detached,2020-02-10,E07000110,E14000804,Kent,2020-02-10,new dwelling,87,94,69,25.0,2.0,12,0.8,101.0,101.0,317.0,318.0,102.0,56.0,169.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.19 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.1 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"7, Castle Way, Boughton Monchelsea",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2020-02-10 14:33:51,unknown,4.0,4.0,10094441246.0,Address Matched +1429518789062016040114171613298506,"12, Skinner Close",Staplehurst,,TN12 0EQ,196863478,B,B,88,89,House,Mid-Terrace,2016-04-01,E07000110,E14000804,Kent,2016-04-01,new dwelling,90,92,57,44.0,0.8,10,0.7,63.0,63.0,204.0,204.0,99.0,64.0,83.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"12, Skinner Close, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,NO DATA!,2016-04-01 14:17:16,owner-occupied,14.0,14.0,10014315490.0,Address Matched +1504795841652017050316095190030448,4 The Stables,Mote Park,,ME15 8AA,4856109478,C,B,78,90,House,Mid-Terrace,2017-05-03,E07000110,E14000700,Kent,2017-05-03,new dwelling,78,89,130,53.0,2.2,23,0.9,66.0,66.0,368.0,369.0,103.0,56.0,95.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.25 W/m-¦K,Good,Good,Fully double glazed,Good,Good,Average thermal transmittance 0.28 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.17 W/m-¦K,Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"4 The Stables, Mote Park",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2017-05-03 16:09:51,unknown,23.0,23.0,10091195106.0,Address Matched +1473423789002016082412025045662548,Flat 6,Detling House,Burdock Court,ME16 0GJ,80186478,D,D,63,63,Flat,Mid-Terrace,2016-08-24,E07000110,E14000804,Kent,2016-08-24,new dwelling,67,67,227,227.0,2.2,38,2.2,46.0,46.0,381.0,381.0,236.0,236.0,58.0,standard tariff,,top floor,,,,,NO DATA!,NO DATA!,,,,,0.0,"Electric immersion, standard tariff",Very Poor,Poor,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m-¦K,Very Good,Very Good,"Room heaters, electric",,,Average thermal transmittance 0.16 W/m-¦K,Good,Good,"Room heaters, electric",Very Poor,Poor,Programmer and appliance thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"Flat 6, Detling House, Burdock Court",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2016-08-24 12:02:50,unknown,41.0,41.0,10093304536.0,Address Matched +915863724732013042317305890278608,"10, Northfleet Close",,,ME14 5QD,2830637078,D,B,66,90,House,Mid-Terrace,2013-04-23,E07000110,E14000804,Kent,2013-04-23,marketed sale,65,92,204,33.0,2.8,39,0.5,63.0,42.0,479.0,306.0,101.0,58.0,72.0,Unknown,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,50.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"10, Northfleet Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2013-04-23 17:30:58,owner-occupied,10.0,5.0,200003671443.0,Address Matched +1686865519222018122018571872508398,Flat 3,"239, Boxley Road",Penenden Heath,ME14 2FG,9750102678,C,C,75,75,Flat,Mid-Terrace,2018-12-20,E07000110,E14000804,Kent,2018-12-20,new dwelling,89,89,129,129.0,0.5,22,0.5,25.0,25.0,153.0,153.0,88.0,88.0,24.0,off-peak 7 hour,,mid floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,Community scheme,Good,Very Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.31 W/m-¦K,Good,Good,,,,Average thermal transmittance 0.17 W/m-¦K,Good,Good,Community scheme,Good,Very Good,"Flat rate charging, TRVs",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,NO DATA!,,NO DATA!,,,,,NO DATA!,"Flat 3, 239, Boxley Road, Penenden Heath",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2018-12-20 18:57:18,unknown,3.0,3.0,10094440048.0,Address Matched +165018839142019110513455250210058,"78, Longham Copse",Downswood,,ME15 8TW,5161932568,D,B,62,89,House,Enclosed End-Terrace,2019-11-05,E07000110,E14000700,Kent,2019-11-05,rental (private),60,90,334,63.0,2.6,59,0.5,36.0,36.0,402.0,301.0,148.0,59.0,43.0,Single,Y,NODATA!,,,2107.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,100.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"78, Longham Copse, Downswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1991-1995,2019-11-05 13:45:52,rental (private),,,200003686953.0,Address Matched +1785201512302020021510301868900768,"3, Canada Terrace",Invicta Park,,ME14 2NU,7348419678,D,B,61,82,House,Mid-Terrace,2020-02-06,E07000110,E14000804,Kent,2020-02-15,Stock Condition Survey,55,80,297,116.0,3.7,52,1.5,57.0,57.0,655.0,469.0,92.0,63.0,70.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Flat, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"3, Canada Terrace, Invicta Park",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2020-02-15 10:30:18,rental (social),,,200003724002.0,Address Matched +63517452acefc1ace4da1b730956f9377744727ef4422e8ff1c0729e75cc9e48,22 Medway Avenue,Yalding,,ME18 6JW,10001430428,D,B,61,84,House,Semi-Detached,2021-09-17,E07000110,E14000804,Kent,2021-09-17,marketed sale,55,81,273,102.0,4.4,48,1.7,113.0,73.0,694.0,466.0,126.0,77.0,91.0,Single,Y,,,,,100.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,45.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 45% of fixed outlets,Good,Good,mains gas (not community),0.0,,,2.32,0.0,N,natural,"22 Medway Avenue, Yalding",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2021-09-17 12:47:43,Owner-occupied,11.0,,200003660637.0,Energy Assessor +634dffd49c45a638617dd968163a18a8ddb50e6d0cbc847440cf0b53b8bc799a,4 Lasius Drive,Coxheath,,ME17 4UH,10001497069,B,A,83,94,House,Detached,2021-09-01,E07000110,E14000804,Kent,2021-09-01,new dwelling,85,95,92,18.0,1.5,16,0.3,81.0,81.0,254.0,254.0,72.0,44.0,94.0,standard tariff,,,N,,,100.0,,,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.21 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.10 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.4,,,,"4 Lasius Drive, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,2019,2021-09-01 13:07:16,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,9.0,,10094444136.0,Energy Assessor +48630962802020070811211547300338,"14, Westwood Road",,,ME15 6BG,8805963468,D,B,67,84,House,Semi-Detached,2020-07-07,E07000110,E14000804,Kent,2020-07-08,marketed sale,61,80,229,105.0,3.8,40,1.8,91.0,72.0,603.0,501.0,152.0,74.0,95.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,73.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 73% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"14, Westwood Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2020-07-08 11:21:15,owner-occupied,,,200003676148.0,Address Matched +239493070062009030516023718158491,"11, Hazlitt Drive",,,ME16 0EG,9150778568,B,B,86,87,Flat,Detached,2009-03-05,E07000110,E14000804,Kent,2009-03-05,new dwelling,86,86,103,101.0,1.2,0,1.2,45.0,36.0,172.0,173.0,86.0,86.0,0.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,9.0,,SAP05:Hot-Water,,,(other premises below),,,Fully double glazed,Good,Good,Average thermal transmittance 0.29 W/m²K,Very Good,Very Good,SAP05:Secondary-Heating,,,(another dwelling above),,,SAP05:Main-Heating,,,SAP05:Main-Heating-Controls,,,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,,,,NO DATA!,"11, Hazlitt Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2009-03-05 16:02:37,,12.0,9.0,200003658854.0,Address Matched +1670028179002018101018562464089708,"5, Knoxes Shaw",,,ME16 9FB,6059870678,B,A,84,96,House,Semi-Detached,2018-10-10,E07000110,E14000804,Kent,2018-10-10,new dwelling,87,98,80,-7.0,1.1,14,-0.1,59.0,59.0,186.0,186.0,76.0,45.0,79.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.16 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.18 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"5, Knoxes Shaw",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2018-10-10 18:56:24,unknown,20.0,20.0,10092971803.0,Address Matched +357602831512020021216062320900663,"4, Kings Walk",Holland Road,,ME14 1GQ,6381107668,C,B,76,81,Flat,End-Terrace,2020-02-11,E07000110,E14000804,Kent,2020-02-12,rental (private),72,74,211,196.0,2.0,36,1.8,64.0,48.0,251.0,199.0,190.0,163.0,55.0,Unknown,N,1st,N,,2602.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,67.0,0.0,"Electric immersion, off-peak",Poor,Poor,(another dwelling below),NO DATA!,,Fully double glazed,Good,Good,"System built, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Room heaters, electric",Very Poor,Poor,Appliance thermostats,Good,Good,Low energy lighting in 67% of fixed outlets,Good,Good,electricity (not community),0.0,unheated corridor,6.86,,,N,natural,"4, Kings Walk, Holland Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2020-02-12 16:06:23,rental (private),,,200003655112.0,Address Matched +412155629062010010523013700258830,2 Barcham Court,Loose Road,,ME15 9UP,3059280768,B,B,81,81,Flat,Detached,2010-01-05,E07000110,E14000804,Kent,2010-01-05,rental (social),79,79,182,177.0,1.5,30,1.5,38.0,25.0,252.0,254.0,77.0,77.0,49.25,Single,Y,1st,Y,2.0,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,50.0,0.0,From main system,Very Good,Very Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,unheated corridor,6.5,2.3,0.0,N,natural,"2 Barcham Court, Loose Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2010-01-05 23:01:37,rental (social),,,200003724681.0,Address Matched +1555267409222017062714455272338613,"7, Stevens Walk",,,ME17 3GB,1780062578,B,A,84,94,House,Semi-Detached,2017-06-27,E07000110,E14000700,Kent,2017-06-27,new dwelling,85,95,84,19.0,1.7,15,0.4,70.0,70.0,267.0,268.0,105.0,57.0,113.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"7, Stevens Walk",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2017-06-27 14:45:52,unknown,7.0,7.0,10093303886.0,Address Matched +1444672779402016051808560740469678,"21, Hayrick Close",Weavering,,ME14 5TE,5403574478,D,B,66,82,House,Semi-Detached,2016-05-13,E07000110,E14000700,Kent,2016-05-18,marketed sale,65,81,212,99.0,3.2,37,1.6,108.0,58.0,560.0,524.0,156.0,86.0,87.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,14.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 14% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,2.37,,N,natural,"21, Hayrick Close, Weavering",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1991-1995,2016-05-18 08:56:07,owner-occupied,,,200003689924.0,Address Matched +394890729922019101513301199958521,"58, Peel Street",,,ME14 2SB,2982269668,C,B,69,88,House,Mid-Terrace,2019-10-15,E07000110,E14000804,Kent,2019-10-15,rental (private),67,87,210,66.0,2.7,37,0.9,85.0,57.0,421.0,342.0,128.0,76.0,73.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,50.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"58, Peel Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2019-10-15 13:30:11,rental (private),,,200003702399.0,Address Matched +1399033729262015123008273201318115,Border Line,Lower Road,East Farleigh,ME15 0JT,1086251478,E,B,52,84,House,Semi-Detached,2015-12-29,E07000110,E14000804,Kent,2015-12-30,marketed sale,44,81,363,106.0,5.6,64,1.7,57.0,57.0,991.0,525.0,201.0,76.0,88.0,Unknown,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,4.0,4.0,100.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"Border Line, Lower Road, East Farleigh",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2015-12-30 08:27:32,owner-occupied,,,200003664109.0,Address Matched +1685134582442020010621381568100468,"55, Douglas Road",,,ME16 8ER,3404981678,D,B,59,85,House,Mid-Terrace,2020-01-06,E07000110,E14000804,Kent,2020-01-06,unknown,49,81,262,82.0,6.9,46,2.2,91.0,91.0,1169.0,552.0,135.0,84.0,149.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,8.0,8.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"55, Douglas Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2020-01-06 21:38:15,unknown,,,200003667767.0,Address Matched +1246770769022014120818343590878534,"5, Otteridge Road",Bearsted,,ME14 4JR,3940670378,E,C,52,78,Bungalow,Semi-Detached,2014-12-03,E07000110,E14000700,Kent,2014-12-08,assessment for green deal,43,72,331,140.0,6.9,58,2.9,85.0,66.0,1219.0,730.0,130.0,83.0,117.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,2.0,5.0,5.0,71.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 71% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"5, Otteridge Road, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2014-12-08 18:34:35,owner-occupied,,,200003692298.0,Address Matched +1412052429062016021007281832118096,Vine Cottage,Well Street,Loose,ME15 0EJ,9390242478,E,B,54,86,House,Detached,2016-02-09,E07000110,E14000804,Kent,2016-02-10,marketed sale,45,84,330,80.0,6.2,58,1.5,100.0,65.0,1130.0,478.0,137.0,88.0,106.0,Unknown,Y,NODATA!,,,2106.0,65.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,45.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Partial double glazing,Poor,Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, mains gas",,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 45% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"Vine Cottage, Well Street, Loose",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2016-02-10 07:28:18,owner-occupied,,,200003672321.0,Address Matched +1668268559062018100615472760668198,"9, Tovil Green",,,ME15 6RJ,9627560678,E,C,50,72,House,Semi-Detached,2018-10-06,E07000110,E14000804,Kent,2018-10-06,rental (private),46,67,341,186.0,5.6,60,3.1,113.0,65.0,1053.0,814.0,108.0,73.0,93.0,Single,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,6.0,6.0,25.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 25% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"9, Tovil Green",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2018-10-06 15:47:27,rental (private),,,200003664677.0,Address Matched +1306936309262016010717595505828675,"8, Greenwich Close",,,ME16 0JA,7035005378,D,B,57,86,House,Detached,2015-12-22,E07000110,E14000804,Kent,2016-01-07,ECO assessment,49,84,296,75.0,5.2,52,1.4,93.0,63.0,904.0,456.0,185.0,78.0,100.0,Single,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,54.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, partial insulation (assumed)",Average,Average,,,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 54% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"8, Greenwich Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1976-1982,2016-01-07 17:59:55,owner-occupied,,,200003656775.0,Address Matched +430154309442010101410071877209248,"15, Darwin Avenue",,,ME15 9FP,2477902768,B,B,84,85,House,Detached,2010-10-14,E07000110,E14000700,Kent,2010-10-14,new dwelling,85,86,94,88.0,1.9,15,1.8,107.0,68.0,313.0,318.0,70.0,70.0,122.05,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,,From main system,Very Good,Very Good,Average thermal transmittance 0.18 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m?K,Very Good,Very Good,"Room heaters, electric",,,Average thermal transmittance 0.12 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Very Good,Very Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in 42% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.31,,,NO DATA!,"15, Darwin Avenue",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2010-10-14 10:07:18,,,,10014311387.0,Address Matched +1570064539222017082420363993548983,"25, Drawbridge Close",,,ME15 7PD,8997363578,C,B,74,89,House,Mid-Terrace,2017-08-24,E07000110,E14000700,Kent,2017-08-24,rental (social),75,89,167,60.0,2.1,29,0.8,93.0,54.0,323.0,330.0,123.0,78.0,73.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,29.0,0.0,From main system,Good,Good,"Solid, limited insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 29% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"25, Drawbridge Close",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1996-2002,2017-08-24 20:36:39,rental (social),,,10014306208.0,Address Matched +1629611089222018060610574887268108,Ducks Rest,Marden Thorn,Marden,TN12 9LH,834887578,A,A,95,103,House,Detached,2018-04-26,E07000110,E14000804,Kent,2018-06-06,new dwelling,96,103,12,-24.0,0.6,2,-1.2,124.0,124.0,678.0,670.0,169.0,177.0,301.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,"From main system, plus solar",Good,Average,Average thermal transmittance 0.14 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.19 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Air source heat pump, Underfloor heating, pipes in screed above insulation, electric",Very Good,Very Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"Ducks Rest, Marden Thorn, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,NO DATA!,2018-06-06 10:57:48,unknown,25.0,25.0,, +1037917909512014032114072999240811,Morning Dawn Cottage,Hollingbourne,,ME17 1QL,8142995178,F,E,27,54,Bungalow,Detached,2014-03-21,E07000110,E14000700,Kent,2014-03-21,marketed sale,33,55,297,171.0,13.0,65,7.5,86.0,86.0,3516.0,2301.0,218.0,120.0,202.0,Single,N,NODATA!,,,2107.0,100.0,double glazing installed before 2002,Normal,1.0,8.0,8.0,100.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, wood logs",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, oil",Good,Average,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,oil (not community),0.0,NO DATA!,,,0.0,,natural,"Morning Dawn Cottage, Hollingbourne",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2014-03-21 14:07:29,owner-occupied,18.0,18.0,200003725850.0,Address Matched +1495711079962016111016575478608146,"16, Cobtree Road",Coxheath,,ME17 4QW,4739738478,D,B,60,85,Bungalow,Detached,2016-11-10,E07000110,E14000804,Kent,2016-11-10,marketed sale,54,82,294,96.0,3.9,52,1.3,74.0,51.0,760.0,486.0,70.0,40.0,76.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,56.0,1.0,From main system,Very Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 56% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,2.39,,N,natural,"16, Cobtree Road, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2016-11-10 16:57:54,owner-occupied,,,200003721772.0,Address Matched +1640441069602018061409284957889028,"4, Coverdale Avenue",,,ME15 9DR,6633368578,C,B,72,87,House,Semi-Detached,2018-06-12,E07000110,E14000700,Kent,2018-06-14,marketed sale,70,85,184,81.0,3.0,32,1.4,69.0,69.0,493.0,420.0,130.0,82.0,93.0,dual,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, 270 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"4, Coverdale Avenue",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2018-06-14 09:28:49,owner-occupied,,,200003710277.0,Address Matched +1615420267652018032622584498280150,"175, Boxley Road",,,ME14 2TL,1017786578,C,B,69,84,House,Mid-Terrace,2018-03-26,E07000110,E14000804,Kent,2018-03-26,rental (private),64,81,199,92.0,4.0,35,1.9,71.0,71.0,654.0,509.0,139.0,83.0,113.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"175, Boxley Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2018-03-26 22:58:44,rental (private),,,200003703043.0,Address Matched +189842710962008111916373274588608,2 Hammonds Cottage Cheveney Farm,Vicarage Road,Yalding,ME18 6DY,732154568,E,E,42,48,House,End-Terrace,2008-11-18,E07000110,E14000804,Kent,2008-11-19,rental (private),33,38,372,332.0,8.6,81,7.8,87.0,48.0,994.0,910.0,138.0,127.0,83.0,Single,N,NO DATA!,,,2104.0,0.0,INVALID!,Normal,1.0,5.0,5.0,18.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Roof room(s), ceiling insulated",Very Poor,Very Poor,"Boiler and radiators, oil",Average,Average,Programmer and room thermostat,Poor,Poor,Low energy lighting in 18% of fixed outlets,Poor,Poor,oil - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.5,0.0,N,natural,"2 Hammonds Cottage Cheveney Farm, Vicarage Road, Yalding",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2008-11-19 16:37:32,rental (private),,,200003727822.0,Address Matched +861967869762012113012494833708022,"18, Balliol Grove",,,ME15 9WQ,2364653078,B,B,81,82,House,Detached,2012-11-30,E07000110,E14000700,Kent,2012-11-30,new dwelling,82,83,95,90.0,2.2,18,2.0,95.0,59.0,403.0,408.0,96.0,96.0,118.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.21 W/m?K,Good,Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.36 W/m?K,Good,Good,,,,Average thermal transmittance 0.24 W/m?K,Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 38% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"18, Balliol Grove",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2012-11-30 12:49:48,NO DATA!,13.0,5.0,10014311663.0,Address Matched +859185389262012112222490623228712,26 Lenham House,Glebe Gardens,Lenham,ME17 2PY,1207833078,D,D,68,68,Flat,Mid-Terrace,2012-11-22,E07000110,E14000700,Kent,2012-11-22,rental (social),69,69,253,253.0,1.8,49,1.8,28.0,28.0,308.0,308.0,88.0,88.0,37.0,Unknown,Y,1st,Y,,2307.0,100.0,double glazing installed before 2002,Normal,0.0,2.0,2.0,80.0,0.0,Community scheme,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, limited insulation (assumed)",Very Poor,Very Poor,Community scheme,Good,Good,"Flat rate charging, TRVs",Average,Average,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,mains gas (community),0.0,heated corridor,,,0.0,,natural,"26 Lenham House, Glebe Gardens, Lenham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2012-11-22 22:49:06,rental (social),5.0,4.0,200003714533.0,Address Matched +1677635779832019100910020284078292,Flat 112,Kent House,Romney Place,ME15 6LA,7234231678,D,D,65,65,Flat,Detached,2018-11-09,E07000110,E14000804,Kent,2019-10-09,non marketed sale,68,68,296,296.0,1.7,50,1.7,30.0,30.0,324.0,324.0,233.0,233.0,35.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,"Electric immersion, standard tariff",Very Poor,Poor,Average thermal transmittance 0.26 W/m-¦K,Good,Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.32 W/m-¦K,Good,Good,,,,(other premises above),,,Electric underfloor heating,Very Poor,Poor,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"Flat 112, Kent House, Romney Place",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2019-10-09 10:02:02,unknown,21.0,21.0,10094442354.0,Address Matched +377225920012009100718465904019562,"49, Bower Mount Road",,,ME16 8AX,5210048668,E,D,53,55,House,Semi-Detached,2009-10-07,E07000110,E14000804,Kent,2009-10-07,marketed sale,44,46,282,270.0,12.0,52,12.0,149.0,125.0,1591.0,1534.0,170.0,170.0,237.0,Single,Y,NO DATA!,,,2106.0,100.0,secondary glazing,Normal,0.0,7.0,7.0,80.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Full secondary glazing,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, coal",,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,0.0,N,natural,"49, Bower Mount Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2009-10-07 18:46:59,owner-occupied,,,200003657715.0,Address Matched +16952489802011032510472644892558,172 Wallis Place,Hart Street,,ME16 8FE,857088468,B,B,88,88,Flat,NO DATA!,2011-03-25,E07000110,E14000804,Kent,2011-03-25,new dwelling,88,88,94,94.0,1.0,15,1.0,35.0,35.0,175.0,175.0,95.0,95.0,64.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,6.0,,From main system,Very Good,Very Good,(other premises below),,,Fully double glazed,Good,Good,Average thermal transmittance 0.30 W/m?K,Good,Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,,,NO DATA!,"172 Wallis Place, Hart Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2011-03-25 10:47:26,,6.0,6.0,10022900780.0,Address Matched +240965370062009030817153428238451,Staplehurst Service Station,High Street,Staplehurst,TN12 0BN,5201788568,F,D,24,62,House,Detached,2009-03-07,E07000110,E14000804,Kent,2009-03-08,marketed sale,20,54,601,263.0,15.0,101,6.8,133.0,74.0,2026.0,868.0,254.0,179.0,153.4,Single,Y,NO DATA!,,,2102.0,10.0,double glazing installed before 2002,Normal,1.0,5.0,5.0,20.0,0.0,"From main system, no cylinderstat",Poor,Average,"Suspended, no insulation (assumed)",,,Partial double glazing,Very Poor,Very Poor,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Flat, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Average,Good,"Programmer, no room thermostat",Very Poor,Very Poor,Low energy lighting in 20% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.7,0.0,N,natural,"Staplehurst Service Station, High Street, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1930-1949,2009-03-08 17:15:34,owner-occupied,,,, +1388117053312015112011281097259747,"19, The Bartons",Staplehurst,,TN12 0EF,7738370478,B,B,89,90,House,Semi-Detached,2015-11-20,E07000110,E14000804,Kent,2015-11-20,new dwelling,90,91,53,43.0,1.0,9,0.8,71.0,71.0,249.0,249.0,102.0,66.0,107.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"19, The Bartons, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,NO DATA!,2015-11-20 11:28:10,owner-occupied,14.0,14.0,10014315518.0,Address Matched +1512065329332017011816133937978306,Hollyrood,Heath Road,Linton,ME17 4NP,2607359478,D,B,58,81,House,Detached,2017-01-18,E07000110,E14000804,Kent,2017-01-18,rental (social),48,76,285,119.0,7.0,50,3.0,89.0,89.0,1266.0,724.0,140.0,87.0,140.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,2.0,7.0,7.0,86.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 86% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"Hollyrood, Heath Road, Linton",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2017-01-18 16:13:39,rental (social),,,200003663197.0,Address Matched +1650436839142018072308513954982578,"4, Roy Hood Court",Boughton Monchelsea,,ME17 4FN,6128539578,B,A,84,93,House,Detached,2018-07-23,E07000110,E14000804,Kent,2018-07-23,new dwelling,84,93,85,31.0,2.0,15,0.8,80.0,80.0,318.0,320.0,100.0,55.0,137.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.20 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.09 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"4, Roy Hood Court, Boughton Monchelsea",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2018-07-23 08:51:39,unknown,10.0,10.0,10093304946.0,Address Matched +22109679302012022721190044222568,"5, Crownfields",Weavering,,ME14 5TH,302672468,C,C,71,76,House,Mid-Terrace,2012-02-26,E07000110,E14000700,Kent,2012-02-27,marketed sale,73,80,204,155.0,1.8,39,1.4,53.0,30.0,309.0,269.0,84.0,66.0,46.74,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,22.0,0.0,From main system,Good,Good,"Solid, limited insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 22% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,2.35,0.0,,natural,"5, Crownfields, Weavering",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1996-2002,2012-02-27 21:19:00,owner-occupied,9.0,2.0,200003688240.0,Address Matched +1177377669222014072314392095078824,"45, Sheridan Close",,,ME14 2QP,2929685278,D,B,61,90,House,Semi-Detached,2014-07-23,E07000110,E14000804,Kent,2014-07-23,assessment for green deal,60,92,260,30.0,3.0,50,0.4,78.0,39.0,491.0,318.0,174.0,74.0,59.0,Single,Y,NODATA!,,,2102.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,0.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"45, Sheridan Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1976-1982,2014-07-23 14:39:20,owner-occupied,8.0,0.0,200003670702.0,Address Matched +63d6de4e960f5527c685210595a2b7088ba9713ff28d2f62c1c4eaaa9a853ce4,FLAT 6,CONISTON HOUSE,WESTMORLAND GREEN,ME15 8BP,10001698668,D,D,66,67,Flat,Detached,2021-07-28,E07000110,E14000700,Kent,2021-07-28,rental,63,63,263,258.0,2.9,46,2.8,79.0,56.0,495.0,497.0,80.0,80.0,62.0,Single,Y,02,Y,,,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,57.0,0.0,From main system,Good,Good,(another dwelling below),,,Fully double glazed,Average,Average,"System built, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 57% of fixed outlets,Good,Good,mains gas (not community),0.0,unheated corridor,4.24,2.47,0.0,N,natural,"FLAT 6, CONISTON HOUSE, WESTMORLAND GREEN",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2021-07-28 14:00:29,Rented (social),7.0,,200003685507.0,Energy Assessor +649138579762011063018072978408699,"41, College Road",,,ME15 6SX,9744708868,D,D,56,66,House,Semi-Detached,2011-06-30,E07000110,E14000804,Kent,2011-06-30,marketed sale,51,62,275,207.0,5.7,53,4.3,84.0,51.0,856.0,686.0,145.0,106.0,106.99,Single,Y,NODATA!,,,2106.0,80.0,secondary glazing,Normal,0.0,5.0,5.0,36.0,0.0,From main system,Average,Average,"Suspended, no insulation (assumed)",,,Mostly secondary glazing,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Average,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 36% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,2.54,0.0,,natural,"41, College Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2011-06-30 18:07:29,owner-occupied,11.0,4.0,200003693282.0,Address Matched +1347704389222015082113255897688935,"5, Old School Close",Lenham,,ME17 2HD,3946887378,C,B,69,88,House,Mid-Terrace,2015-07-28,E07000110,E14000700,Kent,2015-08-21,ECO assessment,70,89,264,69.0,1.9,46,0.5,34.0,34.0,330.0,316.0,121.0,70.0,40.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,2.0,2.0,83.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 83% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"5, Old School Close, Lenham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2015-08-21 13:25:58,owner-occupied,,,200003708271.0,Address Matched +37501720762008103115245483798148,2 Chart Hill Road,Chart Sutton,,ME17 3RL,4844233568,B,B,82,83,House,Semi-Detached,2008-10-31,E07000110,E14000700,Kent,2008-10-31,marketed sale,81,82,155,148.0,1.5,0,1.4,46.0,27.0,173.0,175.0,65.0,65.0,31.35,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,3.0,,SAP05:Hot-Water,,,SAP05:Floor,,,SAP05:Windows,,,SAP05:Walls,,,SAP05:Secondary-Heating,,,SAP05:Roof,,,SAP05:Main-Heating,,,SAP05:Main-Heating-Controls,,,SAP05:Lighting,,,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,,,NO DATA!,"2 Chart Hill Road, Chart Sutton",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2008-10-31 15:24:54,,9.0,3.0,, +63f381e04440e906b4559d90bd52e4703288fb6462ae4f8b42a68e10b9df488e,"6, CORNFIELD WAY",ALLINGTON,,ME16 9GE,10001542240,B,B,87,88,House,Detached,2021-09-01,E07000110,E14000804,Kent,2021-09-01,new dwelling,86,88,64,55.0,1.9,11,1.6,103.0,103.0,342.0,343.0,99.0,56.0,167.0,standard tariff,,,N,,,100.0,,,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.19 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.22 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.15 W/m-¦K,Good,Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.46,,,,"6, CORNFIELD WAY, ALLINGTON",Maidstone,Maidstone and The Weald,MAIDSTONE,2020,2021-09-01 15:18:02,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,44.0,,10094440321.0,Address Matched +682669269222011092619031260168479,"32, Littlebourne Road",,,ME14 5QP,7660640968,F,E,33,48,House,Mid-Terrace,2011-09-26,E07000110,E14000804,Kent,2011-09-26,marketed sale,41,53,478,357.0,4.9,85,3.7,43.0,43.0,878.0,624.0,268.0,222.0,58.3,Single,Y,NODATA!,,,2703.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,71.0,0.0,"Electric immersion, standard tariff",Very Poor,Very Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 50 mm loft insulation",Poor,Poor,Electric ceiling heating,Very Poor,Very Poor,Room thermostat only,Poor,Poor,Low energy lighting in 71% of fixed outlets,Very Good,Very Good,electricity (not community),0.0,NO DATA!,,2.4,0.0,,natural,"32, Littlebourne Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2011-09-26 19:03:12,owner-occupied,7.0,5.0,200003671741.0,Address Matched +1824268272022020090814035591738360,"44, Essex Road",,,ME15 7QN,6925791778,D,C,67,80,House,Mid-Terrace,2020-09-07,E07000110,E14000700,Kent,2020-09-08,rental (private),63,75,228,140.0,3.6,40,2.3,71.0,71.0,626.0,593.0,103.0,74.0,90.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,6.0,6.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"System built, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"44, Essex Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2020-09-08 14:03:55,rental (private),,,200003680465.0,Address Matched +432375049962017031411084152848233,"9, Kenya Terrace",Invicta Park,,ME14 2PF,3554422768,C,B,69,87,House,Mid-Terrace,2017-03-14,E07000110,E14000804,Kent,2017-03-14,rental (social),66,85,209,75.0,3.0,37,1.1,55.0,55.0,551.0,409.0,105.0,70.0,83.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,,,,"Flat, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"9, Kenya Terrace, Invicta Park",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2017-03-14 11:08:41,rental (social),,,200003724069.0,Address Matched +1552697619962017061612595112468313,"4, Reculver Walk",,,ME15 8QE,1184142578,C,B,73,86,House,Mid-Terrace,2017-06-16,E07000110,E14000700,Kent,2017-06-16,marketed sale,71,84,171,85.0,3.0,30,1.5,121.0,63.0,489.0,467.0,113.0,81.0,99.0,Unknown,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,9.0,0.0,From main system,Very Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, insulated (assumed)",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 9% of fixed outlets,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"4, Reculver Walk",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2017-06-16 12:59:51,owner-occupied,,,200003725740.0,Address Matched +1785633912002020021815331361909188,"13, Pickers Road",Allington,,ME16 9GB,1013819678,B,B,81,81,Maisonette,Semi-Detached,2020-02-18,E07000110,E14000804,Kent,2020-02-18,new dwelling,85,85,115,115.0,0.9,20,0.9,42.0,42.0,170.0,170.0,75.0,75.0,46.0,standard tariff,,ground floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.18 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.28 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"13, Pickers Road, Allington",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2020-02-18 15:33:13,unknown,17.0,17.0,10093306729.0,Address Matched +1418715699642016030110313048260998,"3, Lambert Drive",,,ME15 8WN,694292478,B,A,82,94,House,NO DATA!,2016-03-01,E07000110,E14000700,Kent,2016-03-01,new dwelling,84,95,98,17.0,1.5,17,0.3,58.0,58.0,267.0,268.0,104.0,56.0,89.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.19 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.28 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.14 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"3, Lambert Drive",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2016-03-01 10:31:30,unknown,10.0,10.0,10091194518.0,Address Matched +541934024352017100412140699930875,Flat 7 Plymouth House,Ruskin Grove,,ME15 9WG,8588499768,B,B,84,84,Flat,Semi-Detached,2017-05-15,E07000110,E14000700,Kent,2017-10-04,rental (social),74,74,182,182.0,2.1,31,2.1,58.0,58.0,162.0,162.0,137.0,137.0,68.0,dual,N,1st,Y,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,"From main system, no cylinder thermostat",Poor,Very Poor,(another dwelling below),NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Very Good,Very Good,,,,(another dwelling above),,,"Boiler and radiators, electric",Average,Very Poor,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,unheated corridor,3.0,,,N,"mechanical, extract only","Flat 7 Plymouth House, Ruskin Grove",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2007 onwards,2017-10-04 12:14:06,rental (social),,,10014311618.0,Address Matched +372295767752009092918302000210068,"6, Blackmanstone Way",,,ME16 0NT,805708668,D,C,66,73,House,Detached,2009-09-29,E07000110,E14000804,Kent,2009-09-29,marketed sale,62,69,270,218.0,3.5,44,2.9,76.0,39.0,484.0,420.0,133.0,115.0,78.4,Single,Y,NO DATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,5.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 75mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 5% of fixed outlets,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,0.0,N,natural,"6, Blackmanstone Way",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2009-09-29 18:30:20,owner-occupied,,,200003706903.0,Address Matched +506579359922010071808071457538670,"1, Shillingheld Close",Bearsted,,ME14 4QA,7568547768,E,D,50,62,House,Detached,2010-07-17,E07000110,E14000700,Kent,2010-07-18,marketed sale,45,55,369,284.0,6.5,62,5.0,121.0,62.0,937.0,771.0,174.0,129.0,104.57,dual,Y,NO DATA!,,,2104.0,0.0,not defined,Normal,1.0,7.0,7.0,6.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, mains gas",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 6% of fixed outlets,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.32,0.0,N,natural,"1, Shillingheld Close, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2010-07-18 08:07:14,owner-occupied,,,200003688928.0,Address Matched +1541599829022017050720110901638473,Badgers Set,Well Street,Loose,ME15 0EN,7021261578,B,A,84,92,House,Semi-Detached,2017-05-07,E07000110,E14000804,Kent,2017-05-07,new dwelling,85,92,83,36.0,1.8,15,0.8,71.0,71.0,285.0,285.0,113.0,113.0,124.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.20 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Badgers Set, Well Street, Loose",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2017-05-07 20:11:09,unknown,12.0,12.0,10093302585.0,Address Matched +1165975979722014063020155385408144,2 The Laurels,Peel Street,,ME14 2BP,4839705278,C,B,70,88,Bungalow,Semi-Detached,2014-06-30,E07000110,E14000804,Kent,2014-06-30,none of the above,73,90,197,50.0,1.7,38,0.5,43.0,32.0,341.0,343.0,84.0,64.0,45.0,Single,Y,NODATA!,,,2107.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,67.0,0.0,From main system,Very Good,Good,"Suspended, insulated (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, mains gas",,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 67% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"2 The Laurels, Peel Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2014-06-30 20:15:53,rental (private),6.0,4.0,10014311850.0,Address Matched +397725680342009111717123761919638,56 Oxford Gardens,,,ME15 8FJ,1399289668,C,C,76,76,Flat,NO DATA!,2009-11-17,E07000110,E14000700,Kent,2009-11-17,new dwelling,83,83,140,140.0,1.5,21,1.5,45.0,45.0,198.0,198.0,159.0,159.0,72.05,standard tariff,,top floor,,,2207.0,,NO DATA!,NO DATA!,,,,4.0,0.0,From main system,Poor,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.28 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.12 W/m?K,Very Good,Very Good,"Air source heat pump, radiators, electric",Poor,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",0.0,NO DATA!,,2.5,,,NO DATA!,56 Oxford Gardens,Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2009-11-17 17:12:37,,5.0,4.0,10014308995.0,Address Matched +643490cef57018270e01a8729f2d8603b42428afe0b25d9667cce56f88cf1161,6a Knightrider Street,,,ME15 6LP,5414806678,C,C,73,73,Flat,Mid-Terrace,2021-08-31,E07000110,E14000804,Kent,2021-08-31,rental,71,71,203,203.0,2.2,36,2.2,56.0,56.0,326.0,326.0,112.0,112.0,62.0,Single,N,01,Y,,,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,Community scheme,Good,Good,(other premises below),,,Fully double glazed,Good,Good,"Timber frame, with additional insulation",Good,Good,,,,"Pitched, 300 mm loft insulation",Very Good,Very Good,Community scheme,Good,Good,"Flat rate charging, TRVs",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (community),0.0,no corridor,,2.23,0.0,N,natural,6a Knightrider Street,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2021-08-31 18:27:24,Rented (private),8.0,,, +283695090802009052016273966119248,"41, West Park Road",,,ME15 7AF,5882291668,C,C,71,73,House,Mid-Terrace,2009-05-14,E07000110,E14000700,Kent,2009-05-20,rental (social),68,69,233,225.0,2.8,39,2.7,65.0,34.0,374.0,379.0,101.0,101.0,71.97,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,4.0,4.0,10.0,0.0,From main system,Very Good,Very Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 10% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.44,0.0,N,natural,"41, West Park Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2009-05-20 16:27:39,rental (social),,,200003686629.0,Address Matched +395647879102017110713162068930638,"9, Firmin Avenue",Boughton Monchelsea,,ME17 4RD,156179668,C,B,72,83,House,Detached,2017-11-07,E07000110,E14000700,Kent,2017-11-07,marketed sale,68,79,177,108.0,3.9,31,2.4,133.0,78.0,598.0,617.0,163.0,85.0,126.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,8.0,8.0,29.0,0.0,From main system,Good,Good,"Solid, limited insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 29% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"9, Firmin Avenue, Boughton Monchelsea",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1996-2002,2017-11-07 13:16:20,owner-occupied,,,200003722478.0,Address Matched +1383088839642015111212290943050938,"16, Bower Street",,,ME16 8SD,7690930478,D,B,57,88,House,End-Terrace,2015-11-07,E07000110,E14000804,Kent,2015-11-12,FiT application,42,82,328,75.0,5.7,59,1.3,66.0,66.0,1319.0,605.0,205.0,77.0,96.0,dual,Y,NODATA!,,,2107.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,100.0,0.0,From main system,Average,Average,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, no insulation",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"16, Bower Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2015-11-12 12:29:09,owner-occupied,,,200003668105.0,Address Matched +1400494329222016012517094451358676,"6, Haste Hill Road",Boughton Monchelsea,,ME17 4LP,7538261478,E,A,53,99,House,Semi-Detached,2016-01-25,E07000110,E14000700,Kent,2016-01-25,assessment for green deal,47,91,350,23.0,4.6,63,0.5,97.0,48.0,846.0,666.0,104.0,68.0,73.0,Single,Y,NODATA!,,,2107.0,100.0,double glazing installed before 2002,More Than Typical,1.0,4.0,4.0,0.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"6, Haste Hill Road, Boughton Monchelsea",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2016-01-25 17:09:44,owner-occupied,,,200003674691.0,Address Matched +572029352932011022415182622268707,"1, Leonard Gould Way",Loose,,ME15 9FX,5722712868,B,B,84,85,House,Semi-Detached,2011-02-24,E07000110,E14000700,Kent,2011-02-24,new dwelling,84,84,107,104.0,1.7,17,1.6,65.0,52.0,269.0,270.0,112.0,112.0,95.04,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,,From main system,Very Good,Very Good,Average thermal transmittance 0.12 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m?K,Very Good,Very Good,"Room heaters, electric",,,Average thermal transmittance 0.10 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Very Good,Very Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.45,,,NO DATA!,"1, Leonard Gould Way, Loose",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2011-02-24 15:18:26,,,,10014311118.0,Address Matched +624621929062011050412515166648269,"19, Nursery Avenue",,,ME16 0HP,6669236868,D,D,67,68,House,Semi-Detached,2011-05-04,E07000110,E14000804,Kent,2011-05-04,marketed sale,67,68,187,181.0,3.8,35,3.7,88.0,51.0,592.0,598.0,129.0,129.0,106.5,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,29.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 29% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,2.435,0.0,,natural,"19, Nursery Avenue",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2011-05-04 12:51:51,owner-occupied,21.0,6.0,200003702824.0,Address Matched +349424059032020011313262774968207,"161, Tonbridge Road",,,ME16 8NA,5734246668,C,B,71,86,House,Mid-Terrace,2020-01-13,E07000110,E14000804,Kent,2020-01-13,rental (private),69,85,195,77.0,2.6,34,1.0,67.0,67.0,422.0,370.0,120.0,78.0,75.0,Single,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,89.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 89% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"161, Tonbridge Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2020-01-13 13:26:27,rental (private),,,200003657441.0,Address Matched +644b5b521bfd08a8155b498fcfd8ffd41e9aa0be28446bc47eaac5224c655b55,9a Egerton Road,,,ME14 2QY,10001613601,C,C,70,74,Flat,Semi-Detached,2021-08-17,E07000110,E14000804,Kent,2021-08-17,rental,69,75,225,177.0,2.3,40,1.8,68.0,51.0,394.0,319.0,76.0,77.0,57.0,Single,Y,01,Y,,,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,67.0,0.0,From main system,Good,Good,(another dwelling below),,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 67% of fixed outlets,Good,Good,mains gas (not community),0.0,no corridor,,2.35,0.0,N,natural,9a Egerton Road,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2021-08-17 08:28:15,Rented (social),6.0,,200003671845.0,Energy Assessor +644b746125bed5a2a2a4cb9a96c20a0c13427941d33cc34e510d5605f250d6de,16 The Bentletts,Collier Street,,ME18 6FH,10001383693,B,A,85,93,House,Detached,2021-09-09,E07000110,E14000804,Kent,2021-09-09,new dwelling,86,94,76,27.0,2.0,13,0.7,97.0,97.0,302.0,303.0,99.0,57.0,150.0,standard tariff,,,N,,,100.0,,,,,,100.0,0.0,"From main system, flue gas heat recovery",Very Good,Very Good,Average thermal transmittance 0.18 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.41,,,,"16 The Bentletts, Collier Street",Maidstone,Maidstone and The Weald,YALDING,2021,2021-09-09 14:03:56,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,1.0,,10094444016.0,Energy Assessor +1622703099222018112913590727518428,"15, Woollen Way",Headcorn,,TN27 9BF,2268937578,B,A,84,96,House,Semi-Detached,2018-11-29,E07000110,E14000700,Kent,2018-11-29,new dwelling,87,99,85,-5.0,1.1,15,0.0,59.0,59.0,194.0,194.0,75.0,45.0,76.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.21 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"15, Woollen Way, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,NO DATA!,2018-11-29 13:59:07,unknown,15.0,15.0,10093304397.0,Address Matched +1430947889062016040906025143268536,"46, Heather Drive",,,ME15 7DF,3405873478,D,C,57,80,House,Semi-Detached,2016-04-06,E07000110,E14000700,Kent,2016-04-09,marketed sale,56,82,284,117.0,4.9,44,1.8,83.0,65.0,982.0,668.0,197.0,79.0,110.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed during or after 2002,More Than Typical,1.0,6.0,6.0,73.0,1.0,From main system,Average,Average,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,"Room heaters, wood logs",,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 73% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,2.65,,N,natural,"46, Heather Drive",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2016-04-09 06:02:51,owner-occupied,,,200003684069.0,Address Matched +271574931512013091011253590070962,"22, Doddington Court",,,ME16 0SE,9219101668,D,B,66,86,House,Mid-Terrace,2013-09-09,E07000110,E14000804,Kent,2013-09-10,none of the above,74,92,135,18.0,2.1,30,0.5,62.0,43.0,497.0,365.0,194.0,125.0,72.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,57.0,0.0,From main system,Poor,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, partial insulation (assumed)",Average,Average,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, LPG",Average,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 57% of fixed outlets,Good,Good,LPG (not community),0.0,NO DATA!,,,0.0,,natural,"22, Doddington Court",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1976-1982,2013-09-10 11:25:35,owner-occupied,7.0,4.0,200003670116.0,Address Matched +6482974cd7a254a03a10099c4e9e3c123dda33336ac9d7217f322e5d1ef88d64,28 Stratford Drive,,,ME15 9HJ,10001445057,C,B,76,89,House,End-Terrace,2021-09-06,E07000110,E14000700,Kent,2021-09-06,marketed sale,76,88,157,62.0,2.1,28,0.9,69.0,69.0,332.0,336.0,117.0,71.0,78.0,Unknown,Y,,,,,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Suspended, insulated (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.29,0.0,N,natural,28 Stratford Drive,Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2003-2006,2021-09-06 22:09:54,Owner-occupied,11.0,,200003726780.0,Energy Assessor +851992139722012103012563362108792,"34, Wyatt Street",,,ME14 1EU,9615382078,E,B,50,81,House,End-Terrace,2012-10-30,E07000110,E14000804,Kent,2012-10-30,non marketed sale,46,80,316,101.0,4.8,61,1.6,69.0,48.0,768.0,467.0,137.0,75.0,78.0,dual,Y,NODATA!,,,2106.0,0.0,single glazing,Normal,1.0,4.0,4.0,55.0,1.0,From main system,Good,Good,"To unheated space, insulated",,,Single glazed,Very Poor,Very Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, mains gas",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 55% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"34, Wyatt Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2012-10-30 12:56:33,unknown,11.0,6.0,200003687485.0,Address Matched +408709359502013042619414575072768,"9, Lockswood",,,ME16 0NX,9545750768,C,B,69,91,House,Mid-Terrace,2013-04-26,E07000110,E14000804,Kent,2013-04-26,marketed sale,70,93,198,25.0,2.1,38,0.3,44.0,33.0,382.0,301.0,83.0,51.0,55.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,67.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, partial insulation (assumed)",Average,Average,,,,"Pitched, limited insulation (assumed)",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 67% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"9, Lockswood",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1976-1982,2013-04-26 19:41:45,owner-occupied,9.0,6.0,200003662339.0,Address Matched +487498729262010052112245426698940,3 Lamberhurst House,Coombe Road,,ME15 6ZN,4222216768,C,C,78,79,Flat,NO DATA!,2010-05-21,E07000110,E14000804,Kent,2010-05-21,new dwelling,84,85,130,124.0,1.4,20,1.3,58.0,39.0,142.0,145.0,178.0,178.0,71.2,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,4.0,,From main system,Poor,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m?K,Very Good,Very Good,,,,(other premises above),,,"Air source heat pump, radiators, electric",Poor,Good,Programmer and at least two room thermostats,Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,"Electricity: electricity, unspecified tariff",0.0,NO DATA!,,2.42,,,NO DATA!,"3 Lamberhurst House, Coombe Road",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2010-05-21 12:24:54,,8.0,4.0,10014309358.0,Address Matched +1307471609602016031208065036560378,"209, Tonbridge Road",,,ME16 8NA,699405378,E,C,46,78,House,Mid-Terrace,2016-03-03,E07000110,E14000804,Kent,2016-03-12,ECO assessment,47,80,341,117.0,5.6,52,1.8,130.0,65.0,1238.0,665.0,130.0,76.0,108.0,Single,Y,NODATA!,,,2102.0,100.0,"double glazing, unknown install date",Normal,2.0,4.0,4.0,0.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"209, Tonbridge Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2016-03-12 08:06:50,owner-occupied,,,200003657463.0,Address Matched +64710388771c1da7cc93338c6307ac9db5720e42a062a457088faf97236c5386,"14, CORNFIELD WAY",ALLINGTON,,ME16 9GE,10001394871,B,B,86,88,House,Semi-Detached,2021-09-01,E07000110,E14000804,Kent,2021-09-01,new dwelling,88,90,68,52.0,1.0,12,0.8,68.0,68.0,204.0,205.0,89.0,50.0,83.0,standard tariff,,,N,,,100.0,,,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.18 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.15 W/m-¦K,Good,Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.32,,,,"14, CORNFIELD WAY, ALLINGTON",Maidstone,Maidstone and The Weald,MAIDSTONE,2020,2021-09-01 15:23:23,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,27.0,,10094440325.0,Address Matched +1774084339002019122017081265812808,59 Wrens Cross,Upper Stone Street,,ME15 6YU,6090538678,C,C,80,80,Flat,Semi-Detached,2019-12-20,E07000110,E14000804,Kent,2019-12-20,new dwelling,86,86,99,99.0,1.2,17,1.2,55.0,55.0,168.0,168.0,284.0,284.0,71.0,standard tariff,,top floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,"Electric immersion, standard tariff",Very Poor,Poor,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.22 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,"Room heaters, electric",Very Poor,Poor,Appliance thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"59 Wrens Cross, Upper Stone Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2019-12-20 17:08:12,unknown,24.0,24.0,10094440993.0,Address Matched +1491003909632016111612080586978490,Flat 3 Orchard House,"2, Old Farm Close",Allington,ME16 0TS,36408478,B,B,84,84,Flat,NO DATA!,2016-11-16,E07000110,E14000804,Kent,2016-11-16,new dwelling,87,87,85,85.0,1.0,15,1.0,50.0,50.0,183.0,183.0,85.0,85.0,69.0,standard tariff,,ground floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.12 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.21 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Flat 3 Orchard House, 2, Old Farm Close, Allington",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2016-11-16 12:08:05,unknown,10.0,10.0,10092970734.0,Address Matched +667678619922011081817222209688139,10 Hales Court,Church Street,,ME14 1DG,3008149868,B,B,82,82,Flat,NO DATA!,2011-08-18,E07000110,E14000804,Kent,2011-08-18,new dwelling,83,83,139,135.0,1.2,25,1.1,37.0,27.0,142.0,144.0,96.0,96.0,47.8,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,4.0,,From main system,Average,Good,(other premises below),,,Fully double glazed,Good,Good,Average thermal transmittance 0.25 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.20 W/m?K,Good,Good,"Air source heat pump, underfloor, electric",Good,Very Good,Programmer and at least two room thermostats,Good,Good,Low energy lighting in 67% of fixed outlets,Good,Good,"Electricity: electricity, unspecified tariff",0.0,NO DATA!,,2.6,,,NO DATA!,"10 Hales Court, Church Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2011-08-18 17:22:22,,6.0,4.0,10014306372.0,Address Matched +1473017698632016082114592513278600,1 Moat Farm Oast,Collier Street,Marden,TN12 9RR,9013676478,C,B,80,84,House,Semi-Detached,2016-08-21,E07000110,E14000804,Kent,2016-08-21,new dwelling,80,84,97,77.0,4.3,15,3.3,125.0,125.0,900.0,900.0,121.0,121.0,287.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,1.0,From main system,Good,Good,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.16 W/m-¦K,Very Good,Very Good,"Room heaters, wood logs",,,Average thermal transmittance 0.18 W/m-¦K,Good,Good,"Boiler and underfloor heating, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"1 Moat Farm Oast, Collier Street, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,NO DATA!,2016-08-21 14:59:25,rental (private),100.0,100.0,10091194230.0,Address Matched +1479133099222017052415565577448073,Flat 3,2 Southfields Way,Harrietsham,ME17 1GE,7785917478,B,B,83,83,Flat,Enclosed End-Terrace,2017-05-24,E07000110,E14000700,Kent,2017-05-24,new dwelling,87,87,92,92.0,1.1,16,1.1,49.0,49.0,194.0,194.0,79.0,79.0,67.0,standard tariff,,ground floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.26 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Flat 3, 2 Southfields Way, Harrietsham",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2017-05-24 15:56:55,owner-occupied,11.0,11.0,10093303167.0,Address Matched +64be2fc46e502cca97e847ffd06c31a8e2f6db2c6bd3f6f1fb464ca4fc1b289d,12 BAZALGETTE RISE,,,ME16 8FL,2188024668,C,A,79,92,House,Mid-Terrace,2021-07-01,E07000110,E14000804,Kent,2021-07-01,marketed sale,81,94,120,22.0,1.5,21,0.3,63.0,63.0,270.0,270.0,71.0,44.0,69.0,Single,Y,,,,,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",,,Fully double glazed,Good,Good,"Timber frame, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.29,0.0,N,natural,12 BAZALGETTE RISE,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007-2011,2021-07-01 12:03:22,Owner-occupied,8.0,,10014308185.0,Energy Assessor +362975239442019010920324560710518,"9, Boxley Close",Penenden Heath,,ME14 2DJ,8422837668,C,B,70,85,House,Semi-Detached,2019-01-09,E07000110,E14000804,Kent,2019-01-09,marketed sale,70,85,187,85.0,2.7,31,1.2,87.0,64.0,470.0,429.0,126.0,79.0,89.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,2.0,5.0,5.0,64.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Average,Average,"Room heaters, wood logs",,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 64% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"9, Boxley Close, Penenden Heath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2019-01-09 20:32:45,owner-occupied,,,200003706343.0,Address Matched +1697880309922019021405550182728241,"29, Worcester Road",,,ME15 7LU,4890082678,E,C,51,73,House,Semi-Detached,2019-02-12,E07000110,E14000700,Kent,2019-02-14,marketed sale,47,70,351,179.0,5.1,62,2.6,80.0,60.0,902.0,733.0,159.0,69.0,82.0,Unknown,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,67.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"System built, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, electric",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 67% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"29, Worcester Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2019-02-14 05:55:01,owner-occupied,,,200003712289.0,Address Matched +1422836922252016031415403792960343,62 Hubert Walter Drive,,,ME16 0BE,3355223478,B,B,86,86,Flat,NO DATA!,2016-03-11,E07000110,E14000804,Kent,2016-03-14,new dwelling,90,90,73,73.0,0.7,13,0.7,38.0,38.0,167.0,167.0,77.0,77.0,51.0,standard tariff,,top floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.20 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.12 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,62 Hubert Walter Drive,Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2016-03-14 15:40:37,unknown,5.0,5.0,10091196059.0,Address Matched +1251038079962014121908430521438644,"Flat 4, Justcroft House",High Street,Staplehurst,TN12 0AH,4263701378,D,D,57,57,Flat,NO DATA!,2014-12-17,E07000110,E14000804,Kent,2014-12-19,new dwelling,61,61,277,277.0,2.3,47,2.3,42.0,42.0,394.0,394.0,212.0,212.0,50.0,standard tariff,,top floor,,,,,NO DATA!,NO DATA!,,,,,0.0,"Electric immersion, standard tariff",Very Poor,Poor,Average thermal transmittance 0.18 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.33 W/m-¦K,Good,Good,,,,Average thermal transmittance 0.15 W/m-¦K,Good,Good,"Room heaters, electric",Very Poor,Poor,Programmer and room thermostats,Good,Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"Flat 4, Justcroft House, High Street, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,NO DATA!,2014-12-19 08:43:05,unknown,20.0,15.0,10091193881.0,Address Matched +1359357599812015090218202096050633,Checker,Clapper Lane,Staplehurst,TN12 0JT,6376968378,F,C,26,72,House,Detached,2015-09-02,E07000110,E14000804,Kent,2015-09-02,assessment for green deal,25,61,345,101.0,12.0,86,4.7,148.0,74.0,1953.0,1358.0,300.0,97.0,141.0,Single,N,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,More Than Typical,3.0,7.0,7.0,0.0,0.0,From main system,Poor,Poor,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, oil",Poor,Average,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,oil (not community),0.0,NO DATA!,,,,N,natural,"Checker, Clapper Lane, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1900-1929,2015-09-02 18:20:20,owner-occupied,,,200003679644.0,Address Matched +1362562159022016121309042778318126,"8, Hatherall Road",,,ME14 5HE,2747598378,E,C,52,80,House,Mid-Terrace,2016-12-09,E07000110,E14000804,Kent,2016-12-13,ECO assessment,40,72,319,117.0,7.3,62,2.8,113.0,70.0,1223.0,665.0,121.0,81.0,116.0,Single,Y,NODATA!,,,2107.0,100.0,double glazing installed before 2002,Normal,0.0,6.0,6.0,38.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, coal",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 38% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"8, Hatherall Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2016-12-13 09:04:27,owner-occupied,,,200003705409.0,Address Matched +1133622379602014043019594227247008,Dean Hurst,Dean Street,East Farleigh,ME15 0HT,8629772278,E,C,53,72,House,Semi-Detached,2014-04-30,E07000110,E14000804,Kent,2014-04-30,marketed sale,46,66,246,144.0,9.0,48,5.4,167.0,83.0,1625.0,1182.0,144.0,124.0,190.0,Unknown,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,2.0,6.0,6.0,0.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"Dean Hurst, Dean Street, East Farleigh",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2014-04-30 19:59:42,owner-occupied,11.0,0.0,200003722015.0,Address Matched +1747275189312019083011241393710366,"24, Ramsden Way",Marden,,TN12 9GL,3657936678,B,A,84,96,House,Semi-Detached,2019-08-30,E07000110,E14000804,Kent,2019-08-30,new dwelling,87,98,79,-2.0,1.2,14,0.0,68.0,68.0,190.0,190.0,93.0,52.0,89.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.16 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.19 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"24, Ramsden Way, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,NO DATA!,2019-08-30 11:24:13,unknown,15.0,15.0,10093305382.0,Address Matched +655074899222011072722391558638469,"10, Melford Drive",,,ME16 0UN,6578948868,D,C,61,72,House,Detached,2011-07-27,E07000110,E14000804,Kent,2011-07-27,marketed sale,57,71,238,160.0,4.9,46,3.3,91.0,53.0,712.0,515.0,181.0,130.0,106.82,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,0.0,7.0,7.0,29.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Average,Programmer and room thermostat,Average,Average,Low energy lighting in 29% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,2.28,0.0,,natural,"10, Melford Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2011-07-27 22:39:15,owner-occupied,17.0,5.0,200003725105.0,Address Matched +64ca04dd51c442a6ab1d6eb2c6aba4c731bb860d651ccb94aff94a81d8c580c4,110 Trevor Drive,,,ME16 0QX,10001343248,D,B,64,83,Bungalow,Detached,2021-09-15,E07000110,E14000804,Kent,2021-09-16,marketed sale,59,80,248,107.0,3.7,44,1.6,125.0,69.0,563.0,461.0,125.0,76.0,84.0,Single,Y,,,,,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,18.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,"Room heaters, mains gas",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 18% of fixed outlets,Poor,Poor,mains gas (not community),0.0,,,2.44,0.0,N,natural,110 Trevor Drive,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2021-09-16 11:55:52,Owner-occupied,17.0,,200003704980.0,Energy Assessor +1677598339002019100910015169180318,Flat 110,Kent House,Romney Place,ME15 6LA,6034231678,D,D,62,62,Flat,Detached,2018-11-09,E07000110,E14000804,Kent,2019-10-09,non marketed sale,66,66,238,238.0,2.4,40,2.4,48.0,48.0,496.0,496.0,284.0,284.0,61.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,"Electric immersion, standard tariff",Very Poor,Poor,Average thermal transmittance 0.26 W/m-¦K,Good,Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.33 W/m-¦K,Good,Good,,,,(other premises above),,,Electric underfloor heating,Very Poor,Poor,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"Flat 110, Kent House, Romney Place",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2019-10-09 10:01:51,unknown,21.0,21.0,10094442352.0,Address Matched +428326045952015061916463899950879,1 Vale Cottages,Stockbury Valley,Stockbury,ME9 7QD,8907591768,D,B,56,84,House,End-Terrace,2015-06-16,E07000110,E14000700,Kent,2015-06-19,FiT application,36,67,409,179.0,6.7,69,2.9,111.0,66.0,997.0,472.0,273.0,94.0,97.0,dual,N,NODATA!,,,2401.0,100.0,"double glazing, unknown install date",Normal,1.0,4.0,4.0,30.0,0.0,"Electric immersion, off-peak",Very Poor,Poor,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Poor,Poor,Portable electric heaters (assumed),,,"Pitched, 100 mm loft insulation",Average,Average,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 30% of fixed outlets,Average,Average,electricity (not community),0.0,NO DATA!,,,,N,natural,"1 Vale Cottages, Stockbury Valley, Stockbury",Maidstone,Faversham and Mid Kent,SITTINGBOURNE,England and Wales: before 1900,2015-06-19 16:46:38,owner-occupied,,,200003726739.0,Address Matched +1487071879102017011612125446769828,Flat 9,Miller Heights,43-51 Lower Stone Street,ME15 6LN,104877478,C,C,77,77,Flat,Detached,2016-10-12,E07000110,E14000804,Kent,2017-01-16,none of the above,79,79,149,149.0,1.7,26,1.7,53.0,53.0,297.0,297.0,88.0,88.0,64.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.22 W/m-¦K,Good,Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.62 W/m-¦K,Average,Average,,,,Average thermal transmittance 0.22 W/m-¦K,Good,Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Flat 9, Miller Heights, 43-51 Lower Stone Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2017-01-16 12:12:54,unknown,4.0,4.0,10093303789.0,Address Matched +1320446359962015051217185055628775,Millwater,Laddingford,,ME18 6BX,7555595378,E,D,50,67,Bungalow,Detached,2015-05-12,E07000110,E14000804,Kent,2015-05-12,ECO assessment,47,64,326,214.0,6.7,52,4.3,123.0,71.0,1397.0,1172.0,115.0,77.0,129.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,4.0,4.0,27.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, wood logs",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 27% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"Millwater, Laddingford",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2015-05-12 17:18:50,owner-occupied,,,200003724325.0,Address Matched +1322515451612015060213215391050235,Wildacres,Caring Lane,Leeds,ME17 1TJ,2563116378,D,D,60,65,Bungalow,Semi-Detached,2015-06-02,E07000110,E14000700,Kent,2015-06-02,new dwelling,66,70,238,204.0,2.4,38,2.0,52.0,52.0,754.0,754.0,172.0,73.0,62.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,Electric instantaneous at point of use,Very Poor,Very Poor,Average thermal transmittance 0.19 W/m-¦K,Very Good,Very Good,Fully double glazed,Good,Good,Average thermal transmittance 0.27 W/m-¦K,Very Good,Very Good,"Room heaters, wood logs",,,Average thermal transmittance 0.15 W/m-¦K,Good,Good,Electric underfloor heating,Very Poor,Very Poor,Time and temperature zone control,Very Good,Very Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"Wildacres, Caring Lane, Leeds",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2015-06-02 13:21:53,owner-occupied,12.0,9.0,200003721383.0,Address Matched +389695630222009102813011149488281,"25, Birch Drive",,,ME5 8YU,8432329668,D,C,68,78,House,Enclosed End-Terrace,2009-10-28,E07000110,E14000700,Kent,2009-10-28,rental (private),63,75,339,226.0,2.5,57,1.6,43.0,22.0,322.0,272.0,146.0,84.0,51.3,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,2.0,2.0,0.0,0.0,From main system,Average,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Average,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,,0.0,N,natural,"25, Birch Drive",Maidstone,Faversham and Mid Kent,CHATHAM,,2009-10-28 13:01:11,rental (private),,,200003673594.0,Address Matched +64e212dde28292c999f5cb229b8f2edfb39c627448af9aa4d644912800d04bc4,2 Weld Close,Staplehurst,,TN12 0SJ,10001401194,D,B,64,84,House,Semi-Detached,2021-09-28,E07000110,E14000804,Kent,2021-09-28,marketed sale,62,84,239,84.0,3.1,42,1.1,70.0,70.0,593.0,429.0,113.0,75.0,75.0,Unknown,Y,,,,,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,90.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, partial insulation (assumed)",Average,Average,"Room heaters, electric",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 90% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.35,0.0,N,natural,"2 Weld Close, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1976-1982,2021-09-28 19:17:23,Owner-occupied,10.0,,200003678708.0,Energy Assessor +595358915112011022720104690290983,"417, Tonbridge Road",,,ME16 8NJ,9324504868,D,D,61,63,House,Mid-Terrace,2011-02-27,E07000110,E14000804,Kent,2011-02-27,rental (private),59,61,280,267.0,4.0,46,3.8,47.0,47.0,727.0,698.0,111.0,105.0,68.782,Single,Y,NO DATA!,,,2107.0,85.0,double glazing installed during or after 2002,More Than Typical,1.0,5.0,5.0,100.0,2.0,From main system,Good,Very Good,"Suspended, no insulation (assumed)",,,Mostly double glazing,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, electric",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Very Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.52,0.0,N,natural,"417, Tonbridge Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2011-02-27 20:10:46,rental (private),,,200003695764.0,Address Matched +151557199922013061319582120178507,"100, Tonbridge Road",,,ME16 8SL,220980568,E,D,46,65,House,Semi-Detached,2013-06-13,E07000110,E14000804,Kent,2013-06-13,marketed sale,40,57,292,186.0,9.7,56,6.3,149.0,74.0,1632.0,1254.0,94.0,94.0,172.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,9.0,9.0,0.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, mains gas",,,"Pitched, 50mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"100, Tonbridge Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2013-06-13 19:58:21,owner-occupied,14.0,0.0,200003668848.0,Address Matched +64fa72f5801ebd33a31c8724b99b0bdc0dc668d6c057ac54c7fad3bed774a0ad,7 CANNING STREET,,,ME14 2RU,10001630579,E,C,54,80,House,Semi-Detached,2021-07-02,E07000110,E14000804,Kent,2021-07-04,rental,48,77,370,142.0,3.9,65,1.5,57.0,57.0,701.0,486.0,89.0,61.0,60.0,dual,Y,,,,,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.4,0.0,N,natural,7 CANNING STREET,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2021-07-04 18:42:32,Rented (social),28.0,,200003702325.0,Energy Assessor +343945280952014012917042490240965,Dyffrhyn View,Ware Street,Weavering,ME14 5LA,9532006668,D,B,55,83,Bungalow,Semi-Detached,2014-01-29,E07000110,E14000700,Kent,2014-01-29,rental (private),52,82,307,95.0,3.4,59,1.1,61.0,41.0,664.0,462.0,93.0,64.0,58.0,dual,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,50.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"Dyffrhyn View, Ware Street, Weavering",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2014-01-29 17:04:24,rental (private),6.0,3.0,200003689630.0,Address Matched +47837760202008121711322359589538,Flat 37,Broadway Heights,23 The Broadway,ME16 8GJ,8207465568,B,B,82,82,Flat,Detached,2008-12-17,E07000110,E14000804,Kent,2008-12-17,new dwelling,82,83,164,161.0,1.2,0,1.2,28.0,22.0,192.0,192.0,57.0,57.0,0.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,12.0,,SAP05:Hot-Water,,,SAP05:Floor,,,SAP05:Windows,,,SAP05:Walls,,,SAP05:Secondary-Heating,,,SAP05:Roof,,,SAP05:Main-Heating,,,SAP05:Main-Heating-Controls,,,SAP05:Lighting,,,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,,,,NO DATA!,"Flat 37, Broadway Heights, 23 The Broadway",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2008-12-17 11:32:23,,16.0,12.0,10022896861.0,Address Matched +651517c223f39056991203695c28585d745da0380a8e4c3deae383632fb56d46,16 Pearson Drive,,,TN12 0GG,10001383518,B,A,84,99,House,Mid-Terrace,2021-09-28,E07000110,E14000804,Kent,2021-09-28,new dwelling,89,102,82,-37.0,0.8,14,-0.3,50.0,50.0,159.0,159.0,60.0,36.0,57.0,standard tariff,,,N,,,100.0,,,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.27 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.33,,,,16 Pearson Drive,Maidstone,Maidstone and The Weald,STAPLEHURST,2018,2021-09-28 09:54:45,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,7.0,,10094441982.0,Energy Assessor +1233884289002019022612311323912758,"35, Holland Road",,,ME14 1UN,6011489278,D,C,57,78,House,Semi-Detached,2019-02-25,E07000110,E14000804,Kent,2019-02-26,rental (social),49,73,296,140.0,5.3,52,2.5,77.0,77.0,919.0,635.0,103.0,74.0,101.0,dual,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,6.0,6.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"35, Holland Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2019-02-26 12:31:13,rental (social),,,200003698978.0,Address Matched +48528210962008121607545595058178,Flat 12,Bellwood Court,Sutton Road,ME15 8RB,7906175568,B,B,86,87,Flat,Semi-Detached,2008-12-15,E07000110,E14000700,Kent,2008-12-16,new dwelling,86,86,113,108.0,1.1,19,1.1,42.0,28.0,151.0,152.0,69.0,69.0,60.46,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,3.0,,From main system,Very Good,Very Good,(other premises below),,,Fully double glazed,Good,Good,Average thermal transmittance = 0.29 W/m?K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,,,NO DATA!,"Flat 12, Bellwood Court, Sutton Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2008-12-16 07:54:55,,6.0,3.0,10014306257.0,Address Matched +655477759842011101418162781899648,Flat 46 Tennyson Lodge,James Whatman Way,,ME14 1FR,9883358868,C,B,80,81,Flat,Mid-Terrace,2011-10-14,E07000110,E14000804,Kent,2011-10-14,new dwelling,91,91,103,99.0,0.6,14,0.6,37.0,28.0,166.0,166.0,93.0,93.0,46.47,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,4.0,,"Community scheme, no cylinder thermostat",Good,Very Good,(other premises below),,,Fully double glazed,Good,Good,Average thermal transmittance 0.28 W/m?K,Very Good,Very Good,,,,(other premises above),,,Community scheme,Good,Very Good,"Flat rate charging, programmer and TRVs",Average,Average,Low energy lighting in 67% of fixed outlets,Good,Good,NO DATA!,0.0,NO DATA!,,2.4,,,NO DATA!,"Flat 46 Tennyson Lodge, James Whatman Way",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2011-10-14 18:16:27,,6.0,4.0,10014312768.0,Address Matched +406122442132009120116000100068199,"83, Bedgebury Close",,,ME14 5QZ,4920140768,C,C,75,78,House,Mid-Terrace,2009-12-01,E07000110,E14000804,Kent,2009-12-01,marketed sale,72,75,205,182.0,2.5,34,2.2,55.0,37.0,299.0,311.0,172.0,129.0,73.66,Single,Y,NO DATA!,,,2504.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,50.0,0.0,"From main system, no cylinder thermostat",Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Warm air, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.31,0.0,N,natural,"83, Bedgebury Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2009-12-01 16:00:01,owner-occupied,,,200003672075.0,Address Matched +440573059962010021815215462588300,"42, Cornhill Place",,,ME15 6GX,636582768,B,B,83,85,Flat,End-Terrace,2010-02-18,E07000110,E14000804,Kent,2010-02-18,new dwelling,83,84,126,119.0,1.4,21,1.4,67.0,39.0,221.0,223.0,89.0,89.0,68.9,off-peak 7 hour,,ground floor,,,2106.0,,NO DATA!,NO DATA!,,,,,0.0,From main system,Very Good,Very Good,Average thermal transmittance 0.19 W/m?K,Very Good,Very Good,Fully double glazed,Good,Good,Average thermal transmittance 0.30 W/m?K,Good,Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 29% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.34,,,NO DATA!,"42, Cornhill Place",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2010-02-18 15:21:54,,,,10022895047.0,Address Matched +1577134264512017092310512791230252,"42, Palmar Road",,,ME16 0DN,2280414578,E,B,49,81,House,Semi-Detached,2017-09-22,E07000110,E14000804,Kent,2017-09-23,marketed sale,44,79,333,102.0,6.0,58,1.9,109.0,65.0,1090.0,574.0,163.0,75.0,102.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,2.0,6.0,6.0,33.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 33% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"42, Palmar Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2017-09-23 10:51:27,owner-occupied,,,200003658830.0,Address Matched +1661230519802018090620500668080668,"4, Brunell Close",,,ME16 0YW,4804610678,B,B,82,83,Flat,Mid-Terrace,2018-09-06,E07000110,E14000804,Kent,2018-09-06,rental (private),86,87,97,92.0,1.0,17,1.0,70.0,50.0,154.0,156.0,91.0,91.0,60.0,Single,Y,1st,N,,2106.0,100.0,triple glazing,Normal,0.0,4.0,4.0,60.0,0.0,From main system,Good,Good,(another dwelling below),NO DATA!,,Fully triple glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 60% of fixed outlets,Good,Good,mains gas (not community),0.0,unheated corridor,3.9,,,N,natural,"4, Brunell Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2018-09-06 20:50:06,rental (private),,,10022895898.0,Address Matched +1681739160412018112607322396289967,"62, Chamberlain Avenue",,,ME16 8PE,9749061678,D,B,55,83,House,Semi-Detached,2018-11-23,E07000110,E14000804,Kent,2018-11-26,marketed sale,46,80,302,96.0,6.2,53,2.0,72.0,73.0,1019.0,539.0,192.0,75.0,117.0,Single,Y,NODATA!,,,2106.0,0.0,not defined,Normal,1.0,7.0,7.0,100.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Single glazed,Very Poor,Very Poor,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"62, Chamberlain Avenue",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2018-11-26 07:32:23,owner-occupied,,,200003674557.0,Address Matched +664536619802011081008073582999008,"32, Heath Road",Langley,,ME17 3LD,1848619868,E,D,45,56,House,Semi-Detached,2011-08-10,E07000110,E14000700,Kent,2011-08-10,marketed sale,47,57,326,253.0,5.7,61,4.4,98.0,49.0,723.0,530.0,437.0,437.0,94.2,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,0.0,0.0,No system present: electric immersion assumed,Very Poor,Very Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,2.31,0.0,,natural,"32, Heath Road, Langley",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2011-08-10 08:07:35,owner-occupied,10.0,0.0,200003697737.0,Address Matched +587510909022014020408064563028894,Hucking Court Barn,Church Road,Hucking,ME17 1QT,9678043868,C,C,72,79,House,Detached,2014-02-02,E07000110,E14000700,Kent,2014-02-04,marketed sale,67,74,120,87.0,8.0,26,6.1,160.0,120.0,1604.0,1499.0,198.0,198.0,301.0,dual,N,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,8.0,8.0,67.0,1.0,From main system,Good,Average,"Solid, limited insulation (assumed)",,,Fully double glazed,Average,Average,"Timber frame, as built, insulated (assumed)",Good,Good,"Room heaters, wood logs",,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, oil",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 67% of fixed outlets,Good,Good,oil (not community),0.0,NO DATA!,,,0.0,,natural,"Hucking Court Barn, Church Road, Hucking",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1996-2002,2014-02-04 08:06:45,owner-occupied,18.0,12.0,200003701914.0,Address Matched +824474652432014021119363560978106,"63, Peel Street",,,ME14 2SD,5630190078,C,B,80,81,Flat,End-Terrace,2014-02-11,E07000110,E14000804,Kent,2014-02-11,marketed sale,82,83,99,94.0,1.8,19,1.7,85.0,61.0,316.0,320.0,92.0,92.0,95.0,Single,Y,1st,Y,,2106.0,85.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,60.0,0.0,From main system,Good,Good,(other premises below),,,Mostly double glazing,Poor,Poor,"Timber frame, as built, insulated (assumed)",Good,Good,,,,"Roof room(s), insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 60% of fixed outlets,Good,Good,mains gas (not community),0.0,no corridor,,,0.0,,natural,"63, Peel Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2014-02-11 19:36:35,owner-occupied,10.0,6.0,10014313830.0,Address Matched +288720818052009052014540701210063,6 Dunedin House,Furfield Close,,ME15 9JS,336812668,C,C,79,80,Flat,Semi-Detached,2009-05-20,E07000110,E14000700,Kent,2009-05-20,rental (social),77,78,179,172.0,1.9,30,1.8,53.0,31.0,271.0,275.0,78.0,78.0,63.46,Single,Y,2nd,Y,3.0,2106.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,30.0,0.0,From main system,Very Good,Very Good,(other premises below),,,Fully double glazed,Average,Average,"System built, with internal insulation",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 30% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,unheated corridor,4.2,2.45,0.0,N,natural,"6 Dunedin House, Furfield Close",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2009-05-20 14:54:07,rental (social),,,200003683127.0,Address Matched +909720924732013040817115055078505,"6, Further Field",Staplehurst,,TN12 0SX,2585596078,C,B,69,81,House,Detached,2013-04-08,E07000110,E14000804,Kent,2013-04-08,marketed sale,65,79,166,94.0,4.2,32,2.4,67.0,67.0,727.0,605.0,91.0,76.0,131.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,7.0,7.0,100.0,0.0,"From main system, plus solar",Very Good,Very Good,"Solid, limited insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, mains gas",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"6, Further Field, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1996-2002,2013-04-08 17:11:50,owner-occupied,14.0,14.0,200003722819.0,Address Matched +1016542079222013093009485034938277,"59, Hildenborough Crescent",,,ME16 0PB,7382744178,C,B,74,91,House,Mid-Terrace,2013-09-27,E07000110,E14000804,Kent,2013-09-30,marketed sale,76,93,152,26.0,1.7,29,0.3,55.0,37.0,325.0,308.0,79.0,55.0,60.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,50.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"59, Hildenborough Crescent",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2013-09-30 09:48:50,owner-occupied,8.0,4.0,200003660077.0,Address Matched +1599879259962018011106212325608158,"14, Bodsham Crescent",Bearsted,,ME15 8NL,5254575578,C,B,69,90,House,Semi-Detached,2018-01-10,E07000110,E14000700,Kent,2018-01-11,marketed sale,68,91,241,48.0,2.3,42,0.5,58.0,40.0,372.0,281.0,121.0,71.0,55.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,57.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, partial insulation (assumed)",Average,Average,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 57% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"14, Bodsham Crescent, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1976-1982,2018-01-11 06:21:23,owner-occupied,,,200003690704.0,Address Matched +1783127902022020020715415629448930,"10, Blackmanstone Way",,,ME16 0NT,3207009678,D,B,63,81,House,Detached,2020-02-04,E07000110,E14000804,Kent,2020-02-07,rental (private),63,80,226,103.0,3.3,40,1.5,104.0,69.0,666.0,556.0,88.0,59.0,83.0,dual,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,50.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Average,Average,"Room heaters, electric",,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"10, Blackmanstone Way",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2020-02-07 15:41:56,rental (private),,,200003706895.0,Address Matched +6558e508fbb2043fee8375a42d0e0109e41db0e4658022ce9944759a075e7dff,15 Reculver Walk,,,ME15 8QE,10001371172,D,B,63,86,House,Mid-Terrace,2021-08-24,E07000110,E14000700,Kent,2021-08-25,marketed sale,57,84,263,84.0,4.1,46,1.4,72.0,72.0,615.0,418.0,181.0,69.0,89.0,Unknown,Y,,,,,100.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,100.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.32,0.0,N,natural,15 Reculver Walk,Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2021-08-25 05:15:10,Owner-occupied,13.0,,200003725791.0,Energy Assessor +316646064352009070214251601010568,Apartment 2,55-57 Hartnup Street,,ME16 8FH,5823414668,B,B,85,85,Flat,Detached,2009-06-01,E07000110,E14000804,Kent,2009-07-02,new dwelling,85,85,129,129.0,1.1,21,1.1,25.0,25.0,187.0,187.0,69.0,69.0,52.4,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,,From main system,Very Good,Very Good,Average thermal transmittance 0.15 W/m??K,Very Good,Very Good,Fully double glazed,Good,Good,Average thermal transmittance 0.18 W/m??K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 100% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,,,NO DATA!,"Apartment 2, 55-57 Hartnup Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2009-07-02 14:25:16,,,,10014308149.0,Address Matched +1026422190732013101618305545978093,"28, Albert Reed Gardens",Tovil,,ME15 6JY,9365025178,D,B,65,85,House,End-Terrace,2013-10-16,E07000110,E14000804,Kent,2013-10-16,marketed sale,63,84,193,70.0,4.0,37,1.5,114.0,62.0,561.0,472.0,228.0,77.0,109.0,Unknown,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,16.0,0.0,"From main system, no cylinder thermostat",Average,Average,"Suspended, limited insulation (assumed)",,,Fully double glazed,Average,Average,"Timber frame, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 16% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"28, Albert Reed Gardens, Tovil",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2013-10-16 18:30:55,owner-occupied,19.0,3.0,10022893139.0,Address Matched +1587974952852017110816002299039158,"19, Pembroke Road",Coxheath,,ME17 4QJ,1858294578,D,B,56,86,House,Semi-Detached,2017-11-08,E07000110,E14000804,Kent,2017-11-08,non marketed sale,49,85,324,81.0,4.8,57,1.2,57.0,57.0,715.0,414.0,256.0,72.0,84.0,Single,Y,NODATA!,,,2101.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,100.0,0.0,"From main system, no cylinder thermostat",Poor,Poor,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,No time or thermostatic control of room temperature,Very Poor,Very Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"19, Pembroke Road, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2017-11-08 16:00:22,rental (private),,,200003714690.0,Address Matched +250889052042020020716070652900248,"6, Kewlands",,,ME14 5RS,4091659568,C,B,69,89,House,Mid-Terrace,2020-02-04,E07000110,E14000804,Kent,2020-02-07,rental (private),67,89,214,52.0,2.8,38,0.7,93.0,64.0,403.0,319.0,157.0,69.0,73.0,dual,Y,NODATA!,,,2106.0,,not defined,Much More Than Typical,0.0,4.0,4.0,56.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 56% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"6, Kewlands",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1976-1982,2020-02-07 16:07:06,rental (private),,,200003673114.0,Address Matched +1553345864212017072414061894230856,"12, The Weavers",Headcorn,,TN27 9AQ,8654442578,B,A,84,94,House,End-Terrace,2017-07-24,E07000110,E14000700,Kent,2017-07-24,new dwelling,86,96,80,10.0,1.4,14,0.2,63.0,63.0,238.0,238.0,84.0,50.0,99.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.16 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.21 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"12, The Weavers, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,NO DATA!,2017-07-24 14:06:18,unknown,20.0,20.0,10093304436.0,Address Matched +47832182832008121710561035968490,Flat 9,Broadway Heights,23 The Broadway,ME16 8GJ,8095465568,B,B,83,83,Flat,Detached,2008-12-17,E07000110,E14000804,Kent,2008-12-17,new dwelling,83,84,136,134.0,1.3,0,1.2,32.0,26.0,197.0,198.0,65.0,65.0,0.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,12.0,,SAP05:Hot-Water,,,SAP05:Floor,,,SAP05:Windows,,,SAP05:Walls,,,SAP05:Secondary-Heating,,,SAP05:Roof,,,SAP05:Main-Heating,,,SAP05:Main-Heating-Controls,,,SAP05:Lighting,,,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,,,,NO DATA!,"Flat 9, Broadway Heights, 23 The Broadway",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2008-12-17 10:56:10,,16.0,12.0,10022896833.0,Address Matched +657fbb8e50cb35ce1b35a233cf287f83740f1a3dd3694861354a678a25f71cac,FLAT 1,BURDOCK HOUSE,NORTHUMBERLAND ROAD,ME15 7TX,10001587207,E,C,50,72,Flat,Detached,2021-06-29,E07000110,E14000700,Kent,2021-07-01,ECO assessment,47,73,394,194.0,4.2,69,2.1,114.0,57.0,820.0,402.0,90.0,91.0,61.0,Single,Y,00,N,,,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,0.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Average,Average,"Room heaters, electric",,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,unheated corridor,6.0,2.75,0.0,N,natural,"FLAT 1, BURDOCK HOUSE, NORTHUMBERLAND ROAD",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2021-07-01 13:51:48,Rented (social),8.0,,200003714117.0,Energy Assessor +65838212976213e2d113bc6d90138406235f7ab978e1eff42941deb6cdc089c8,3 ASHDOWN CLOSE,,,ME16 8AD,10001450629,D,C,55,76,Bungalow,Detached,2021-08-07,E07000110,E14000804,Kent,2021-08-08,marketed sale,47,70,316,154.0,5.3,56,2.6,75.0,75.0,870.0,638.0,118.0,67.0,95.0,Single,Y,,,,,100.0,"double glazing, unknown install date",Normal,1.0,3.0,3.0,100.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.4,0.0,N,natural,3 ASHDOWN CLOSE,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2021-08-08 13:38:21,Owner-occupied,9.0,,200003657301.0,Energy Assessor +1701825899022019030211034783528061,"18, West Park Road",,,ME15 7AE,6867903678,D,B,64,82,House,Mid-Terrace,2019-03-02,E07000110,E14000700,Kent,2019-03-02,marketed sale,63,81,238,106.0,3.4,42,1.5,83.0,59.0,609.0,502.0,120.0,78.0,81.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,2.0,60.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,Portable electric heaters (assumed),,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 60% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"18, West Park Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2019-03-02 11:03:47,owner-occupied,,,200003686608.0,Address Matched +1551208199962017061108170462208593,"46, Glebe Lane",,,ME16 9BD,9658922578,E,C,48,79,House,Semi-Detached,2017-06-10,E07000110,E14000804,Kent,2017-06-11,rental (private),41,75,405,141.0,5.2,72,1.8,74.0,49.0,807.0,548.0,245.0,70.0,72.0,Unknown,Y,NODATA!,,,2106.0,80.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,50.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Mostly double glazing,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"46, Glebe Lane",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2017-06-11 08:17:04,rental (private),,,200003664403.0,Address Matched +1607541139142018021421505654689678,"37, Northleigh Close",Loose,,ME15 9RP,145236578,D,B,61,84,House,Semi-Detached,2018-02-13,E07000110,E14000804,Kent,2018-02-14,marketed sale,58,84,274,92.0,3.6,48,1.2,88.0,53.0,610.0,453.0,154.0,69.0,75.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,33.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,"Room heaters, electric",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 33% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"37, Northleigh Close, Loose",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2018-02-14 21:50:56,owner-occupied,,,200003675091.0,Address Matched +256296139032020020210523837768002,54b Whitmore Street,,,ME16 8JU,3217099568,D,C,60,73,Flat,End-Terrace,2020-01-30,E07000110,E14000804,Kent,2020-02-02,marketed sale,55,75,333,190.0,3.0,59,1.7,53.0,53.0,486.0,275.0,150.0,120.0,52.0,Single,Y,1st,Y,,2104.0,100.0,"double glazing, unknown install date",Normal,1.0,2.0,2.0,80.0,0.0,From main system,Good,Good,(another dwelling below),NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,no corridor,,,,N,natural,54b Whitmore Street,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2020-02-02 10:52:38,rental (private),,,200003729695.0,Address Matched +429685559022010020115490202798460,6 Midhurst Court,Mote Road,,ME15 6EH,6057502768,C,B,80,85,Flat,Mid-Terrace,2010-02-01,E07000110,E14000804,Kent,2010-02-01,rental (social),77,84,206,149.0,1.5,34,1.1,28.0,23.0,234.0,185.0,105.0,90.0,44.05,Unknown,Y,1st,N,13.0,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,75.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,unheated corridor,5.25,2.28,0.0,N,natural,"6 Midhurst Court, Mote Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2010-02-01 15:49:02,rental (social),,,200003693351.0,Address Matched +1416390642632016022322134525278703,"55, Upper Road",,,ME15 7RD,4305772478,C,B,73,89,House,Mid-Terrace,2016-02-23,E07000110,E14000804,Kent,2016-02-23,rental (social),72,89,187,61.0,2.3,33,0.8,48.0,48.0,371.0,348.0,160.0,81.0,70.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"55, Upper Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2016-02-23 22:13:45,rental (social),,,200003685130.0,Address Matched +355022129222019112811542186178391,"125, Westmorland Road",,,ME15 8JD,9874286668,D,B,58,85,House,Semi-Detached,2019-11-23,E07000110,E14000700,Kent,2019-11-28,rental (private),50,82,303,95.0,5.1,54,1.6,70.0,70.0,872.0,477.0,121.0,70.0,95.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,2.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"125, Westmorland Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2019-11-28 11:54:21,rental (private),,,200003680623.0,Address Matched +65c583fa4d79f15e5f9c19e457a44e241c4c90419b297e419955c09f7ba862e4,11 ASHDOWN CLOSE,,,ME16 8AD,10001339726,E,C,46,74,House,Semi-Detached,2021-07-27,E07000110,E14000804,Kent,2021-07-27,marketed sale,37,66,314,145.0,12.0,57,5.6,218.0,132.0,2010.0,1096.0,121.0,121.0,208.0,dual,Y,,,,,100.0,"double glazing, unknown install date",Normal,3.0,8.0,8.0,35.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Granite or whinstone, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 35% of fixed outlets,Average,Average,mains gas (not community),0.0,,,2.86,0.0,N,natural,11 ASHDOWN CLOSE,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2021-07-27 19:41:47,Owner-occupied,17.0,,200003657295.0,Energy Assessor +65b9e9f9ad9ac920f8f7f7563eef2e358463aebf654664c0872e7e92b96e0cf1,"17, The Chimes",Bearsted,,ME14 4RE,10001387496,C,B,76,86,House,Mid-Terrace,2021-08-06,E07000110,E14000700,Kent,2021-08-06,marketed sale,74,84,139,77.0,2.9,24,1.6,106.0,106.0,446.0,449.0,117.0,72.0,119.0,Single,Y,,,,,100.0,double glazing installed during or after 2002,Normal,3.0,5.0,5.0,84.0,0.0,From main system,Good,Good,"Suspended, insulated (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Flat, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 84% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.35,0.0,N,natural,"17, The Chimes, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2003-2006,2021-08-06 19:55:01,Owner-occupied,32.0,,10022896459.0,Address Matched +892317279242013030418480208570178,1 Stone Cottages,Maidstone Road,Headcorn,TN27 9RR,5231275078,C,B,71,88,House,Semi-Detached,2013-03-03,E07000110,E14000700,Kent,2013-03-04,marketed sale,72,90,158,48.0,2.9,27,0.8,82.0,57.0,540.0,445.0,114.0,73.0,108.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,6.0,6.0,55.0,2.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Granite or whinstone, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 55% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"1 Stone Cottages, Maidstone Road, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,England and Wales: before 1900,2013-03-04 18:48:02,owner-occupied,11.0,6.0,200003698235.0,Address Matched +601661759602011030915122381490118,"72, McKenzie Court",,,ME14 1JU,5698954868,B,B,85,85,Flat,NO DATA!,2011-03-09,E07000110,E14000804,Kent,2011-03-09,rental (private),82,82,156,156.0,1.5,23,1.5,42.0,42.0,95.0,95.0,124.0,124.0,61.88,dual,N,2nd,N,6.0,2401.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,"Electric immersion, off-peak",Average,Poor,(other premises below),,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,(another dwelling above),,,Electric storage heaters,Poor,Poor,Manual charge control,Poor,Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity - this is for backwards compatibility only and should not be used,0.0,heated corridor,,2.2,0.0,N,natural,"72, McKenzie Court",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2011-03-09 15:12:23,rental (private),,,10014306679.0,Address Matched +1422257279922016031013245463408606,"9, Riverhead Close",,,ME16 0DG,643713478,E,B,51,85,Bungalow,Semi-Detached,2016-03-10,E07000110,E14000804,Kent,2016-03-10,marketed sale,44,84,384,85.0,4.6,68,1.1,46.0,46.0,842.0,412.0,149.0,71.0,68.0,Single,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Roof room(s), limited insulation (assumed)",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"9, Riverhead Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2016-03-10 13:24:54,owner-occupied,,,200003658657.0,Address Matched +202448535732013050814495433068509,"6, Arundel Square",,,ME15 6HB,3923565568,B,B,81,81,Flat,Semi-Detached,2013-05-08,E07000110,E14000804,Kent,2013-05-08,rental (social),86,86,104,104.0,0.9,20,0.9,31.0,31.0,194.0,194.0,68.0,68.0,45.0,Unknown,Y,1st,N,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,6.64,,0.0,,natural,"6, Arundel Square",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2013-05-08 14:49:54,rental (social),7.0,7.0,10022895106.0,Address Matched +586121039502011012811254781392888,"52, Honywood Road",Lenham,,ME17 2HQ,6574033868,D,C,62,69,House,End-Terrace,2011-01-28,E07000110,E14000700,Kent,2011-01-28,marketed sale,56,64,274,225.0,5.0,46,4.1,113.0,59.0,748.0,651.0,161.0,138.0,94.89,Single,Y,NO DATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,1.0,4.0,4.0,10.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 10% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.33,0.0,N,natural,"52, Honywood Road, Lenham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2011-01-28 11:25:47,owner-occupied,,,200003723777.0,Address Matched +1315989869342015042912203436552418,Flat 4 The Old School,"92a, Melville Road",,ME15 7UT,5359365378,D,D,61,61,Flat,NO DATA!,2015-04-29,E07000110,E14000804,Kent,2015-04-29,new dwelling,65,65,303,303.0,2.2,51,2.2,36.0,36.0,382.0,382.0,201.0,201.0,42.0,standard tariff,,ground floor,,,,,NO DATA!,NO DATA!,,,,,0.0,"Electric immersion, standard tariff",Very Poor,Poor,Average thermal transmittance 0.29 W/m-¦K,Good,Good,Fully double glazed,Good,Good,Average thermal transmittance 0.27 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.17 W/m-¦K,Good,Good,"Room heaters, electric",Very Poor,Poor,Programmer and room thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"Flat 4 The Old School, 92a, Melville Road",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2015-04-29 12:20:34,unknown,1.0,1.0,10091194263.0,Address Matched +325644770302009071421142761419678,"5, Sutton Court",Marden,,TN12 9TF,8397474668,C,C,77,80,Flat,Semi-Detached,2009-07-13,E07000110,E14000804,Kent,2009-07-14,rental (social),75,78,201,175.0,2.0,33,1.7,60.0,30.0,306.0,286.0,80.0,80.0,59.2,Single,Y,2nd,Y,3.0,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,0.0,0.0,From main system,Very Good,Very Good,(other premises below),,,Fully double glazed,Average,Average,"Timber frame, as built, partial insulation (assumed)",Average,Average,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,unheated corridor,5.0,2.41,0.0,N,natural,"5, Sutton Court, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1967-1975,2009-07-14 21:14:27,rental (social),,,200003710602.0,Address Matched +1043602479962013111410165266848977,Flat 18 Thomas Robert Gardens,Church Street,,ME14 1FQ,7676736178,B,B,84,85,Flat,NO DATA!,2013-11-14,E07000110,E14000804,Kent,2013-11-14,marketed sale,89,90,72,69.0,0.8,14,0.8,56.0,45.0,194.0,195.0,69.0,69.0,62.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.27 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Flat 18 Thomas Robert Gardens, Church Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2013-11-14 10:16:52,NO DATA!,0.0,0.0,10014314604.0,Address Matched +1744121319742019081512062968619158,"5, Fynamour Close",,,ME16 9FG,6775516678,B,B,88,89,House,Detached,2019-08-15,E07000110,E14000804,Kent,2019-08-15,new dwelling,89,90,55,46.0,1.2,10,1.0,81.0,81.0,281.0,281.0,83.0,51.0,124.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.17 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"5, Fynamour Close",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2019-08-15 12:06:29,unknown,15.0,15.0,10093303548.0,Address Matched +1209459519402014092315495421842778,"38, James Huxley Avenue",,,ME16 0ZH,1487418278,B,B,88,90,House,Semi-Detached,2014-09-23,E07000110,E14000804,Kent,2014-09-23,new dwelling,90,93,55,40.0,0.7,10,0.5,49.0,49.0,218.0,218.0,87.0,56.0,71.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"38, James Huxley Avenue",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2014-09-23 15:49:54,owner-occupied,14.0,14.0,10014315172.0,Address Matched +1536076202712017110208165192039558,"11, Admiral Way",Marden,,TN12 9FN,5823221578,B,A,84,93,House,Detached,2017-11-02,E07000110,E14000804,Kent,2017-11-02,new dwelling,85,94,82,25.0,1.8,14,0.6,75.0,75.0,292.0,293.0,104.0,56.0,128.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.12 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.28 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.12 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"11, Admiral Way, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,NO DATA!,2017-11-02 08:16:51,owner-occupied,10.0,10.0,10093303251.0,Address Matched +645476583652019031416543098910780,4 Farthings Cottages,Grange Lane,Sandling,ME14 3DB,7003387868,E,B,49,89,House,Mid-Terrace,2019-03-14,E07000110,E14000700,Kent,2019-03-14,marketed sale,77,101,380,57.0,1.5,33,-0.2,36.0,36.0,521.0,248.0,298.0,138.0,45.0,Unknown,N,NODATA!,,,2601.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,"Electric immersion, standard tariff",Very Poor,Poor,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, electric",,,"Pitched, 200 mm loft insulation",Good,Good,"Room heaters, wood logs",Poor,Very Good,No thermostatic control of room temperature,Poor,Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,wood logs,0.0,NO DATA!,,,,N,natural,"4 Farthings Cottages, Grange Lane, Sandling",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2019-03-14 16:54:30,owner-occupied,,,200003722959.0,Address Matched +905576199222013032714174196668287,4 Springdale Terrace,Maidstone Road,Wateringbury,ME18 5EW,8968956078,D,C,66,79,House,End-Terrace,2013-03-26,E07000110,E14000804,Kent,2013-03-27,rental,62,75,173,104.0,6.0,33,3.7,120.0,76.0,1009.0,805.0,92.0,92.0,181.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,2.0,7.0,7.0,43.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 43% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"4 Springdale Terrace, Maidstone Road, Wateringbury",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2013-03-27 14:17:41,owner-occupied,21.0,9.0,200003658784.0,Address Matched +1206462789922014091808451747468094,"21, Freeman Way",,,ME15 8AN,9441887278,E,B,54,82,House,Semi-Detached,2014-09-16,E07000110,E14000700,Kent,2014-09-18,none of the above,53,84,259,77.0,4.6,49,1.4,115.0,63.0,898.0,536.0,167.0,82.0,93.0,dual,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,1.0,5.0,4.0,17.0,0.0,"From main system, no cylinder thermostat",Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 17% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"21, Freeman Way",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2014-09-18 08:45:17,owner-occupied,12.0,2.0,200003684390.0,Address Matched +66081b35dcdd560929dac3743e48c3c08d65f2379a3cf44e74ed31f5e9c76f36,7 Wealden Way,Headcorn,,TN27 9DQ,10001561378,B,A,86,105,House,Detached,2021-08-17,E07000110,E14000700,Kent,2021-08-17,marketed sale,86,104,70,-29.0,2.3,12,-0.8,114.0,114.0,361.0,362.0,99.0,56.0,184.0,standard tariff,,,N,,,100.0,,,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.17 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.1 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.33,,,,"7 Wealden Way, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,2021,2021-08-17 09:28:56,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,20.0,,10093306089.0,Energy Assessor +1557541793652017070510333597030856,6 Downs View Court,"66, Murdoch Chase",Coxheath,ME17 4AA,8605372578,B,B,83,83,Flat,Detached,2017-07-05,E07000110,E14000804,Kent,2017-07-05,new dwelling,88,88,88,88.0,0.9,15,0.9,45.0,45.0,165.0,165.0,69.0,69.0,56.0,standard tariff,,top floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.20 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"6 Downs View Court, 66, Murdoch Chase, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2017-07-05 10:33:35,unknown,7.0,7.0,10093302709.0,Address Matched +156143499912008100713072308089559,"140, Westmorland Road",,,ME15 8HP,5984981568,D,C,66,77,House,End-Terrace,2008-10-06,E07000110,E14000700,Kent,2008-10-07,marketed sale,62,73,260,184.0,3.6,43,2.6,75.0,38.0,408.0,320.0,122.0,92.0,83.9,Single,Y,NO DATA!,,,2107.0,100.0,double glazing installed before 2002,Normal,1.0,5.0,5.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Poor,Poor,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.2,0.0,N,natural,"140, Westmorland Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2008-10-07 13:07:23,owner-occupied,,,200003684886.0,Address Matched +755561569022015051117260245088835,"16, Woollett Street",,,ME14 1UX,3449695968,C,B,69,88,House,Mid-Terrace,2015-05-08,E07000110,E14000804,Kent,2015-05-11,none of the above,68,88,250,68.0,2.0,44,0.6,42.0,32.0,390.0,347.0,88.0,58.0,46.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,2.0,2.0,67.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 67% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"16, Woollett Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2015-05-11 17:26:02,rental (social),,,200003699141.0,Address Matched +1396899939602015121615250848159668,"11, Church Green",Staplehurst,,TN12 0BG,6617631478,F,B,36,82,House,Semi-Detached,2015-12-16,E07000110,E14000804,Kent,2015-12-16,marketed sale,18,58,631,223.0,10.0,111,3.6,117.0,65.0,1264.0,539.0,296.0,96.0,93.0,dual,N,NODATA!,,,2401.0,100.0,double glazing installed before 2002,Normal,1.0,5.0,4.0,20.0,1.0,"Electric immersion, off-peak",Very Poor,Poor,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 250 mm loft insulation",Good,Good,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 20% of fixed outlets,Poor,Poor,electricity (not community),0.0,NO DATA!,,,,N,natural,"11, Church Green, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1930-1949,2015-12-16 15:25:08,owner-occupied,,,200003677025.0,Address Matched +575734419352010122017435694209488,"71, Melrose Close",,,ME15 6BD,4831942868,B,B,87,88,House,End-Terrace,2010-12-20,E07000110,E14000804,Kent,2010-12-20,new dwelling,86,87,90,87.0,1.7,14,1.6,86.0,67.0,260.0,262.0,115.0,115.0,114.81,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,10.0,,From main system,Very Good,Very Good,Average thermal transmittance 0.20 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.21 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Very Good,Very Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in 71% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.3,,,NO DATA!,"71, Melrose Close",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2010-12-20 17:43:56,,14.0,10.0,10014307063.0,Address Matched +1216109919062014101507275408468864,"5, Winchester Place",Bluett Street,,ME14 2UZ,6021168278,C,C,77,78,Flat,End-Terrace,2014-10-06,E07000110,E14000804,Kent,2014-10-15,rental (social),81,82,135,131.0,1.2,26,1.2,44.0,34.0,257.0,259.0,80.0,80.0,48.0,Single,Y,1st,Y,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,71.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 71% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,no corridor,,,0.0,,natural,"5, Winchester Place, Bluett Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2014-10-15 07:27:54,rental (social),7.0,5.0,200003704434.0,Address Matched +1059199059342014070307560813740498,"17, Usborne Close",Staplehurst,,TN12 0LD,4364257178,C,B,71,86,House,End-Terrace,2014-07-01,E07000110,E14000804,Kent,2014-07-03,rental,70,86,161,65.0,2.9,31,1.2,70.0,56.0,552.0,457.0,101.0,72.0,93.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,6.0,6.0,75.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"17, Usborne Close, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1950-1966,2014-07-03 07:56:08,owner-occupied,12.0,9.0,200003677633.0,Address Matched +1197298920812015022413040993250022,"4, Podkin Wood",,,ME5 9LY,210037278,C,B,70,81,House,Detached,2015-02-24,E07000110,E14000700,Kent,2015-02-24,marketed sale,62,76,173,107.0,10.0,31,6.3,172.0,121.0,1757.0,1314.0,207.0,139.0,332.0,Single,Y,NODATA!,,,2105.0,100.0,double glazing installed during or after 2002,Normal,0.0,9.0,9.0,57.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,,,,"Roof room(s), limited insulation (assumed)",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and at least two room thermostats,Good,Good,Low energy lighting in 57% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"4, Podkin Wood",Maidstone,Faversham and Mid Kent,CHATHAM,England and Wales: 1976-1982,2015-02-24 13:04:09,owner-occupied,,,200003672775.0,Address Matched +892326199612013030412432496070503,Farmhouse,Cradducks Lane Yard,"Cradducks Lane, Staplehurst",TN12 0DN,5365965078,C,C,77,78,House,Detached,2013-03-04,E07000110,E14000804,Kent,2013-03-04,new dwelling,73,74,120,114.0,4.0,27,3.8,118.0,68.0,588.0,599.0,172.0,172.0,149.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Average,Average thermal transmittance 0.19 W/m?K,Very Good,Very Good,Fully double glazed,Good,Good,Average thermal transmittance 0.30 W/m?K,Good,Good,"Room heaters, wood logs",,,Average thermal transmittance 0.16 W/m?K,Good,Good,"Boiler and underfloor heating, oil",Average,Average,Time and temperature zone control,Very Good,Very Good,Low energy lighting in 26% of fixed outlets,Average,Average,oil - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Farmhouse, Cradducks Lane Yard, Cradducks Lane, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,NO DATA!,2013-03-04 12:43:24,NO DATA!,54.0,14.0,200003694317.0,Address Matched +1410094809062016020415220172778576,"10, Blunden Lane",Yalding,,ME18 6JH,7770032478,D,B,56,82,House,Semi-Detached,2016-02-03,E07000110,E14000804,Kent,2016-02-04,non marketed sale,49,79,304,111.0,5.3,54,2.0,124.0,62.0,777.0,578.0,300.0,78.0,99.0,Single,Y,NODATA!,,,2107.0,100.0,"double glazing, unknown install date",Normal,1.0,4.0,4.0,0.0,0.0,"From main system, no cylinder thermostat",Poor,Poor,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"10, Blunden Lane, Yalding",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2016-02-04 15:22:01,owner-occupied,,,200003661507.0,Address Matched +1568545259702017081810235458339338,"3, Cowden Road",,,ME14 5QH,6719253578,D,B,66,85,House,Semi-Detached,2017-08-17,E07000110,E14000804,Kent,2017-08-18,marketed sale,64,83,234,91.0,3.0,41,1.2,102.0,51.0,454.0,409.0,158.0,81.0,74.0,Single,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"3, Cowden Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2017-08-18 10:23:54,owner-occupied,,,200003671551.0,Address Matched +1457733966632016062900424872278900,"4, Monks Court",,,ME15 8GU,6062965478,B,B,86,87,House,NO DATA!,2016-06-29,E07000110,E14000700,Kent,2016-06-29,new dwelling,88,89,72,61.0,1.2,13,1.0,58.0,58.0,266.0,266.0,85.0,49.0,90.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,"From main system, flue gas heat recovery",Very Good,Very Good,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"4, Monks Court",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2016-06-29 00:42:48,unknown,1.0,1.0,10091193548.0,Address Matched +1064602999242013122318425410772078,"77, Chatham Road",Sandling,,ME14 3BB,5220297178,D,C,64,77,House,Semi-Detached,2013-12-23,E07000110,E14000700,Kent,2013-12-23,marketed sale,60,73,194,120.0,4.9,37,3.1,122.0,72.0,827.0,756.0,131.0,85.0,132.0,dual,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,7.0,7.0,31.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 31% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"77, Chatham Road, Sandling",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2013-12-23 18:42:54,owner-occupied,16.0,5.0,200003672590.0,Address Matched +618357424932011041514514471968101,"1, The Laxey",Tovil,,ME15 6FX,2161195868,D,C,62,73,House,Semi-Detached,2011-04-15,E07000110,E14000804,Kent,2011-04-15,marketed sale,55,68,338,238.0,3.7,56,2.6,59.0,35.0,553.0,429.0,159.0,115.0,65.4,Single,Y,NO DATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,33.0,0.0,From main system,Average,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Average,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 33% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.2,0.0,N,natural,"1, The Laxey, Tovil",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2011-04-15 14:51:44,owner-occupied,,,200003666045.0,Address Matched +941835819902014092408421306942178,"15, Lancashire Road",,,ME15 7QD,9914419078,C,B,70,88,House,Mid-Terrace,2014-09-23,E07000110,E14000700,Kent,2014-09-24,none of the above,70,90,177,45.0,2.5,34,0.7,53.0,53.0,467.0,354.0,140.0,82.0,75.0,dual,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"15, Lancashire Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2014-09-24 08:42:13,owner-occupied,10.0,10.0,200003683949.0,Address Matched +213532260922009011315341946228881,"7, Freshland Road",,,ME16 0WH,8407636568,B,B,84,86,Flat,Mid-Terrace,2009-01-12,E07000110,E14000804,Kent,2009-01-13,marketed sale,84,85,119,108.0,1.4,19,1.3,71.0,36.0,178.0,182.0,88.0,88.0,71.32,Single,Y,1st,N,3.0,2106.0,100.0,double glazing installed during or after 2002,More Than Typical,0.0,3.0,3.0,0.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,Pitched,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,unheated corridor,7.64,2.36,0.0,N,natural,"7, Freshland Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2009-01-13 15:34:19,owner-occupied,,,10022901678.0,Address Matched +666ba1de572ae44604a6a99c09b691521df0c2f38789a0b570bcd1a0dd04e843,Bishops House,Bishops Lane,Hunton,ME15 0SH,10001686725,F,C,25,80,House,Semi-Detached,2021-08-13,E07000110,E14000804,Kent,2021-08-16,marketed sale,26,73,350,74.0,13.0,84,3.7,110.0,113.0,1939.0,998.0,167.0,80.0,156.0,dual,N,,,,,0.0,not defined,Normal,1.0,7.0,7.0,100.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Timber frame, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, insulated at rafters",Average,Average,"Boiler and radiators, oil",Average,Average,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,oil (not community),0.0,,,2.2,0.0,N,natural,"Bishops House, Bishops Lane, Hunton",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2021-08-16 19:50:59,Owner-occupied,19.0,,200003662196.0,Energy Assessor +6673179902a11feea0774c3cab6bad3c61a210373d15077a0d5383c24dc84e41,"4, CORNFIELD WAY",ALLINGTON,,ME16 9GE,10001488921,B,B,87,88,House,Detached,2021-09-01,E07000110,E14000804,Kent,2021-09-01,new dwelling,87,88,68,57.0,1.7,12,1.5,98.0,98.0,301.0,302.0,96.0,54.0,145.0,standard tariff,,,N,,,100.0,,,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.17 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.23 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.15 W/m-¦K,Good,Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.31,,,,"4, CORNFIELD WAY, ALLINGTON",Maidstone,Maidstone and The Weald,MAIDSTONE,2020,2021-09-01 15:15:53,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,37.0,,10094440320.0,Address Matched +337210650502009080123240961510598,"64, Bell Road",,,ME15 9HP,2541955668,C,C,69,78,Flat,Semi-Detached,2009-08-01,E07000110,E14000700,Kent,2009-08-01,rental (social),63,75,285,191.0,2.9,48,1.9,37.0,37.0,368.0,299.0,174.0,95.0,61.0,Single,Y,Ground,N,2.0,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,80.0,0.0,From main system,Average,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Average,Good,Programmer and room thermostat,Poor,Poor,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.26,0.0,N,natural,"64, Bell Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2009-08-01 23:24:09,rental (social),,,200003682262.0,Address Matched +1214497876812014100210325394240329,"95, Kingsley Road",,,ME15 7UP,3985648278,E,B,49,81,House,End-Terrace,2014-08-26,E07000110,E14000804,Kent,2014-10-02,marketed sale,45,81,339,97.0,4.7,65,1.4,46.0,46.0,916.0,502.0,136.0,75.0,72.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,1.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"95, Kingsley Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2014-10-02 10:32:53,owner-occupied,8.0,8.0,200003695923.0,Address Matched +1536077629062017120612031981968853,Flat 4,"13, Cascade Close",Marden,TN12 9FW,5864221578,B,B,84,84,Flat,End-Terrace,2017-12-06,E07000110,E14000804,Kent,2017-12-06,new dwelling,89,89,85,85.0,0.8,15,0.8,38.0,38.0,149.0,149.0,65.0,65.0,51.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.28 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Flat 4, 13, Cascade Close, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,NO DATA!,2017-12-06 12:03:19,owner-occupied,10.0,10.0,10093303389.0,Address Matched +1243260650712014120320374995249730,Flat 3 Bedford House,"3, Bedford Place",,ME16 8JB,7058050378,C,C,75,75,Flat,NO DATA!,2014-11-29,E07000110,E14000804,Kent,2014-12-03,new dwelling,63,63,240,240.0,2.6,41,2.6,45.0,45.0,297.0,297.0,124.0,124.0,64.0,24 hour,,mid floor,,,,,NO DATA!,NO DATA!,,,,,0.0,"Electric immersion, off-peak",Average,Poor,(other premises below),,,Full secondary glazing,Good,Good,Average thermal transmittance 0.52 W/m-¦K,Good,Good,,,,(other premises above),,,Electric storage heaters,Average,Very Poor,Celect-type controls,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"Flat 3 Bedford House, 3, Bedford Place",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2014-12-03 20:37:49,owner-occupied,1.0,1.0,10091193470.0,Address Matched +1551499939702017061218450950239628,The Old Post Office,The Street,Ulcombe,ME17 1DX,7733232578,F,C,34,78,House,Semi-Detached,2017-06-12,E07000110,E14000700,Kent,2017-06-12,marketed sale,31,71,324,88.0,9.0,80,3.1,127.0,69.0,1148.0,476.0,202.0,75.0,113.0,Single,N,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,3.0,7.0,6.0,14.0,0.0,"From main system, no cylinder thermostat",Very Poor,Poor,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,Portable electric heaters (assumed),,,"Pitched, insulated at rafters",Average,Average,"Boiler and radiators, oil",Average,Average,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 14% of fixed outlets,Poor,Poor,oil (not community),0.0,NO DATA!,,,,N,natural,"The Old Post Office, The Street, Ulcombe",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1900-1929,2017-06-12 18:45:09,owner-occupied,,,200003727202.0,Address Matched +733901369312011121612445790999995,"38, Hereford Road",,,ME15 7NB,9569904968,D,D,57,61,House,Semi-Detached,2011-12-16,E07000110,E14000700,Kent,2011-12-16,marketed sale,54,58,283,256.0,4.3,54,3.9,77.0,42.0,712.0,666.0,84.0,84.0,78.13,Single,Y,NODATA!,,,2107.0,100.0,double glazing installed before 2002,Normal,1.0,5.0,5.0,18.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 18% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,2.43,0.0,,natural,"38, Hereford Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2011-12-16 12:44:57,owner-occupied,11.0,2.0,200003712351.0,Address Matched +423948685312010012017372396200775,"53, Shaftesbury Drive",,,ME16 0JR,7507561768,E,D,47,60,Bungalow,Semi-Detached,2010-01-20,E07000110,E14000804,Kent,2010-01-20,marketed sale,40,53,398,293.0,7.7,67,5.6,66.0,66.0,1100.0,834.0,196.0,139.0,78.1,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,5.0,5.0,90.0,0.0,From main system,Average,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Average,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 90% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.43,0.0,N,natural,"53, Shaftesbury Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2010-01-20 17:37:23,owner-occupied,,,200003726309.0,Address Matched +307262959842014012116144660342708,"19, Lancet Lane",,,ME15 9RY,4878053668,D,C,55,69,House,Detached,2014-01-20,E07000110,E14000804,Kent,2014-01-21,none of the above,53,68,232,155.0,8.1,40,5.4,124.0,83.0,1737.0,1375.0,112.0,112.0,205.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,8.0,8.0,50.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, wood logs",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"19, Lancet Lane",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2014-01-21 16:14:46,owner-occupied,28.0,14.0,200003675289.0,Address Matched +393304820612009110417564305019869,"29, Tower Lane",Bearsted,,ME14 4JH,8953059668,D,D,58,63,House,Mid-Terrace,2009-11-04,E07000110,E14000700,Kent,2009-11-04,rental (private),50,54,339,301.0,4.5,62,4.0,61.0,36.0,610.0,569.0,100.0,87.0,71.78,Single,Y,NO DATA!,,,2106.0,57.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,30.0,4.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Partial double glazing,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, coal",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 30% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,,0.0,N,natural,"29, Tower Lane, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,,2009-11-04 17:56:43,rental (private),,,200003692247.0,Address Matched +932805959302013051715433007879738,"68, Hereford Road",,,ME15 7NB,2391658078,D,B,59,85,House,Semi-Detached,2013-05-17,E07000110,E14000700,Kent,2013-05-17,none of the above,55,85,250,68.0,4.1,48,1.2,72.0,48.0,572.0,412.0,223.0,66.0,85.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,6.0,6.0,50.0,0.0,"From main system, no cylinder thermostat",Poor,Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Average,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"68, Hereford Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2013-05-17 15:43:30,owner-occupied,10.0,5.0,200003712381.0,Address Matched +1167737119942014070312334223540878,"72, Roseacre Lane",Bearsted,,ME14 4JG,6996615278,E,C,45,79,House,Detached,2014-07-03,E07000110,E14000700,Kent,2014-07-03,marketed sale,36,73,293,99.0,9.8,63,3.6,152.0,77.0,1672.0,823.0,176.0,86.0,155.0,Unknown,Y,NODATA!,,,2107.0,50.0,double glazing installed before 2002,Normal,0.0,7.0,7.0,0.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Partial double glazing,Poor,Poor,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, smokeless fuel",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"72, Roseacre Lane, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2014-07-03 12:33:42,owner-occupied,13.0,0.0,200003692228.0,Address Matched +669559a7bcfd41a7adc1d213fbf9c4205232d7b54aaee35af280bee67a8a1504,"FLAT 7,HARRIET HOUSE, WEST STREET",HARRIETSHAM,,ME17 1JZ,10001673842,D,D,58,67,Flat,End-Terrace,2021-07-13,E07000110,E14000700,Kent,2021-07-13,rental,51,65,438,308.0,3.0,77,2.1,37.0,37.0,459.0,331.0,147.0,116.0,39.0,Single,Y,01,Y,,,100.0,"double glazing, unknown install date",Less Than Typical,0.0,2.0,2.0,100.0,0.0,Community scheme,Good,Good,(another dwelling below),,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 200 mm loft insulation",Good,Good,Community scheme,Good,Good,"Flat rate charging, programmer and TRVs",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (community),0.0,heated corridor,,2.8,0.0,N,natural,"FLAT 7,HARRIET HOUSE, WEST STREET, HARRIETSHAM",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2021-07-13 21:58:53,Rented (private),3.0,,10095449912.0,Address Matched +628602669102011051617321180699358,Apartment 3,"68, College Road",,ME15 6SJ,190566868,C,B,79,81,Flat,NO DATA!,2011-05-15,E07000110,E14000804,Kent,2011-05-16,rental (private),69,70,222,216.0,2.6,39,2.5,75.0,42.0,181.0,189.0,108.0,108.0,65.68,dual,N,1st,N,,2402.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,22.0,0.0,"Electric immersion, off-peak",Average,Very Poor,(other premises below),,,Fully double glazed,Good,Good,"Timber frame, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,(another dwelling above),,,Electric storage heaters,Average,Very Poor,Automatic charge control,Average,Average,Low energy lighting in 22% of fixed outlets,Poor,Poor,electricity (not community),0.0,unheated corridor,3.76,2.64,0.0,,natural,"Apartment 3, 68, College Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2011-05-16 17:32:11,rental (private),9.0,2.0,10022895278.0,Address Matched +1291992406132019061414175552978508,"1, Prospect Place",,,ME16 8EG,802593378,E,C,48,73,House,Detached,2019-06-13,E07000110,E14000804,Kent,2019-06-14,marketed sale,40,65,297,149.0,8.7,55,4.4,151.0,88.0,1536.0,966.0,92.0,92.0,159.0,Single,Y,NODATA!,,,2106.0,38.0,"double glazing, unknown install date",Normal,0.0,9.0,9.0,29.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Partial double glazing,Poor,Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 29% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"1, Prospect Place",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2019-06-14 14:17:55,owner-occupied,,,200003667548.0,Address Matched +804102749742012062215304494922628,Flat 12 Lynx Gate,Massey Close,,ME15 6ZR,6765849968,B,B,88,88,Flat,NO DATA!,2012-06-22,E07000110,E14000804,Kent,2012-06-22,new dwelling,92,92,49,49.0,0.8,9,0.8,49.0,49.0,192.0,192.0,88.0,88.0,81.0,standard tariff,,ground floor,,,,,NO DATA!,NO DATA!,,,,8.0,,From main system,Good,Good,Average thermal transmittance 0.14 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.20 W/m?K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,,,NO DATA!,"Flat 12 Lynx Gate, Massey Close",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2012-06-22 15:30:44,,8.0,8.0,10014313182.0,Address Matched +1252417184952016011915524591960634,"18, Grampian Way",Downswood,,ME15 8TG,6418411378,D,B,65,85,House,Detached,2016-01-19,E07000110,E14000700,Kent,2016-01-19,marketed sale,60,82,241,95.0,3.8,42,1.6,123.0,65.0,634.0,499.0,167.0,78.0,91.0,dual,Y,NODATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,1.0,6.0,6.0,12.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 270 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 12% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"18, Grampian Way, Downswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2016-01-19 15:52:45,owner-occupied,,,200003691065.0,Address Matched +754767789102012022708185396522148,23 Roland House,Harris Place,Tovil,ME15 6BP,8189885968,C,B,80,84,Flat,NO DATA!,2012-02-24,E07000110,E14000804,Kent,2012-02-27,rental (private),75,74,181,184.0,2.1,32,2.1,52.0,58.0,190.0,139.0,136.0,111.0,65.99,dual,N,2nd,Y,,2603.0,,not defined,Much Less Than Typical,0.0,3.0,3.0,80.0,0.0,"Electric immersion, off-peak",Average,Very Poor,(other premises below),,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Room heaters, electric",Poor,Very Poor,Programmer and appliance thermostats,Good,Good,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,electricity (not community),0.0,heated corridor,,2.37,0.0,,natural,"23 Roland House, Harris Place, Tovil",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2012-02-27 08:18:53,rental (private),10.0,8.0,10022901591.0,Address Matched +66b3a925254d38a3574b8171f6282ee2afff80d1d79f11e35c5df6ce835a9de4,38 Gilbert Way,,,ME17 3TT,10001505096,B,A,84,97,House,Mid-Terrace,2021-09-20,E07000110,E14000700,Kent,2021-09-20,new dwelling,87,99,85,-8.0,1.1,15,-0.1,67.0,67.0,194.0,194.0,66.0,40.0,74.0,standard tariff,,,N,,,100.0,,,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.33,,,,38 Gilbert Way,Maidstone,Faversham and Mid Kent,MAIDSTONE,2017,2021-09-20 15:50:43,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,8.0,,10094441890.0,Energy Assessor +1282328989922015021615145673968535,"21, Western Road",,,ME16 8NE,3741823378,E,B,49,88,House,Mid-Terrace,2015-02-16,E07000110,E14000804,Kent,2015-02-16,marketed sale,43,87,428,64.0,4.2,76,0.7,62.0,41.0,710.0,351.0,174.0,65.0,55.0,dual,Y,NODATA!,,,2104.0,90.0,double glazing installed before 2002,Normal,1.0,3.0,3.0,50.0,0.0,From main system,Average,Average,"Suspended, no insulation (assumed)",NO DATA!,,Mostly double glazing,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"21, Western Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2015-02-16 15:14:56,owner-occupied,,,200003655931.0,Address Matched +1703340529062019030816323273288301,"19, Wenham Drive",,,ME17 3GN,744223678,B,A,83,97,House,Semi-Detached,2019-03-08,E07000110,E14000700,Kent,2019-03-08,new dwelling,86,100,98,-15.0,1.0,17,-0.1,49.0,49.0,190.0,190.0,64.0,37.0,60.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"19, Wenham Drive",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2019-03-08 16:32:32,unknown,7.0,7.0,10093307097.0,Address Matched +1650439279262018072323444329478068,"32, Bell Meadow",,,ME15 9ND,6208739578,C,B,71,84,House,Semi-Detached,2018-07-23,E07000110,E14000700,Kent,2018-07-23,marketed sale,69,84,180,85.0,3.2,32,1.6,84.0,66.0,528.0,503.0,160.0,74.0,102.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,6.0,6.0,73.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Average,Average,"Room heaters, electric",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 73% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"32, Bell Meadow",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2018-07-23 23:44:43,owner-occupied,,,200003682723.0,Address Matched +66be1af85440efc72dbfbd242da2fe5ede2af470d00d75fdf34a41b43ea7c452,White Horse Cottage,Honey Lane,Otham,ME15 8RJ,3703694478,F,D,23,61,House,Detached,2021-08-12,E07000110,E14000700,Kent,2021-08-18,rental,29,60,342,152.0,18.0,72,8.4,226.0,158.0,3141.0,1582.0,371.0,216.0,255.0,dual,N,,,,,100.0,"double glazing, unknown install date",Less Than Typical,2.0,5.0,5.0,57.0,3.0,"Electric immersion, off-peak",Very Poor,Poor,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, no insulation",Very Poor,Very Poor,"Boiler and radiators, oil",Average,Average,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 57% of fixed outlets,Good,Good,oil (not community),0.0,,,2.2,0.0,N,natural,"White Horse Cottage, Honey Lane, Otham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2021-08-18 03:34:04,Rented (private),37.0,,200003690461.0,Energy Assessor +1337400069262015062712403597748105,"57, Spot Lane",Bearsted,,ME15 8NX,942617378,E,B,42,87,House,Semi-Detached,2015-06-24,E07000110,E14000700,Kent,2015-06-27,marketed sale,35,86,478,77.0,6.3,84,1.1,48.0,49.0,1025.0,410.0,275.0,71.0,74.0,Single,Y,NODATA!,,,2101.0,0.0,not defined,Normal,0.0,4.0,4.0,100.0,0.0,"From main system, no cylinder thermostat",Poor,Poor,"Solid, no insulation (assumed)",NO DATA!,,Single glazed,Very Poor,Very Poor,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,No time or thermostatic control of room temperature,Very Poor,Very Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"57, Spot Lane, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2015-06-27 12:40:35,owner-occupied,,,200003690753.0,Address Matched +66c54e01a37b7324f2eb6324796d0994c36f155438922210357e9db12888ab8e,1 KNOTT COURT,,,ME14 2XH,10001325669,D,B,68,85,House,End-Terrace,2021-06-25,E07000110,E14000804,Kent,2021-07-30,not sale or rental,65,83,219,88.0,2.8,39,1.2,71.0,71.0,454.0,389.0,118.0,75.0,72.0,Single,Y,,,,,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,83.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 83% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.6,0.0,N,natural,1 KNOTT COURT,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1991-1995,2021-07-30 14:51:49,Rented (social),12.0,,200003704724.0,Energy Assessor +496197479842010060821391472600488,9 Lymington Court,Bicknor Road,,ME15 9PQ,2831276768,C,C,75,79,House,Enclosed End-Terrace,2010-06-08,E07000110,E14000700,Kent,2010-06-08,marketed sale,72,77,208,174.0,2.4,34,2.0,67.0,35.0,362.0,320.0,91.0,91.0,68.48,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,10.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, partial insulation (assumed)",Average,Average,,,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 10% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.3,0.0,N,natural,"9 Lymington Court, Bicknor Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1976-1982,2010-06-08 21:39:14,owner-occupied,,,200003680159.0,Address Matched +1237956639922014111900110330878894,"204, Westmorland Road",,,ME15 8JD,9378310378,D,A,66,92,House,Mid-Terrace,2014-11-13,E07000110,E14000700,Kent,2014-11-19,none of the above,65,94,201,20.0,3.0,39,0.4,74.0,49.0,539.0,346.0,139.0,83.0,78.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,50.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"204, Westmorland Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2014-11-19 00:11:03,owner-occupied,10.0,5.0,200003680627.0,Address Matched +318650373132009070119342567068203,Mote Cottage,Howland Road,Marden,TN12 9LB,7357224668,F,E,36,49,House,Detached,2009-07-01,E07000110,E14000804,Kent,2009-07-01,marketed sale,36,49,480,361.0,8.6,75,6.3,79.0,52.0,1124.0,884.0,151.0,109.0,115.3,Single,Y,NO DATA!,,,2106.0,0.0,secondary glazing,Normal,2.0,5.0,5.0,47.0,1.0,From main system,Average,Good,"Solid, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Timber frame, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Average,Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 47% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.43,0.0,N,natural,"Mote Cottage, Howland Road, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: before 1900,2009-07-01 19:34:25,owner-occupied,,,200003662738.0,Address Matched +717132677352011102812393098299899,"57, Leicester Road",,,ME15 7QJ,8956782968,C,C,69,70,House,Mid-Terrace,2011-10-28,E07000110,E14000700,Kent,2011-10-28,rental (social),68,69,193,185.0,3.1,37,3.0,45.0,45.0,513.0,492.0,111.0,111.0,84.65,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,2.35,0.0,,natural,"57, Leicester Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2011-10-28 12:39:30,rental (social),9.0,9.0,200003683982.0,Address Matched +838232908812012092216223398220003,"29, Crownfields",Weavering,,ME14 5TH,328881078,C,B,69,81,House,Detached,2012-09-22,E07000110,E14000700,Kent,2012-09-22,marketed sale,66,79,161,93.0,4.4,31,2.6,136.0,68.0,678.0,627.0,111.0,74.0,142.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,2.0,7.0,7.0,0.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"29, Crownfields, Weavering",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1991-1995,2012-09-22 16:22:33,owner-occupied,26.0,0.0,200003688252.0,Address Matched +159878390832008100917445790068198,"11, Yeoman Lane",Bearsted,,ME14 4BX,9880122568,F,E,33,49,House,Detached,2008-10-09,E07000110,E14000700,Kent,2008-10-09,marketed sale,28,42,432,311.0,25.0,72,18.0,308.0,164.0,2903.0,2152.0,261.0,188.0,272.73,Single,Y,NO DATA!,,,2105.0,100.0,double glazing installed during or after 2002,Normal,1.0,13.0,13.0,13.0,1.0,From main system,Average,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Roof room(s), no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Average,Good,Programmer and at least two room thermostats,Average,Average,Low energy lighting in 13% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.9,0.0,N,natural,"11, Yeoman Lane, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2008-10-09 17:44:57,owner-occupied,,,200003692047.0,Address Matched +726700515852011112309292295299592,"1, St. Lukes Road",,,ME14 5AR,5247553968,F,F,36,36,House,End-Terrace,2011-11-23,E07000110,E14000804,Kent,2011-11-23,rental (private),35,35,397,397.0,8.9,75,8.9,60.0,60.0,1600.0,1600.0,115.0,115.0,117.7,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,94.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, electric",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 94% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,2.5,0.0,,natural,"1, St. Lukes Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2011-11-23 09:29:22,rental (private),16.0,15.0,200003705917.0,Address Matched +351157559922019101719420276838041,Flat 1,"15a, Gabriels Hill",,ME15 6HR,4748556668,D,C,64,77,Flat,Enclosed Mid-Terrace,2019-10-17,E07000110,E14000804,Kent,2019-10-17,marketed sale,61,62,294,287.0,2.9,50,2.8,79.0,63.0,499.0,306.0,206.0,161.0,57.0,dual,N,2nd,N,,2602.0,75.0,double glazing installed during or after 2002,Normal,1.0,4.0,4.0,57.0,0.0,"Electric immersion, off-peak",Poor,Poor,(other premises below),NO DATA!,,Partial double glazing,Average,Average,"Solid brick, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,(another dwelling above),,,"Room heaters, electric",Very Poor,Poor,Appliance thermostats,Good,Good,Low energy lighting in 57% of fixed outlets,Good,Good,electricity (not community),0.0,unheated corridor,6.3,,,N,natural,"Flat 1, 15a, Gabriels Hill",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2019-10-17 19:42:02,owner-occupied,,,10014309962.0,Address Matched +189304079832009051913405287268896,"2, Livingstone Walk",,,ME15 9JB,7687864568,C,C,73,78,House,Mid-Terrace,2008-11-21,E07000110,E14000700,Kent,2009-05-19,rental (social),69,75,213,176.0,2.8,36,2.3,42.0,42.0,382.0,309.0,117.0,117.0,79.88,dual,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,100.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.33,0.0,N,natural,"2, Livingstone Walk",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2009-05-19 13:40:52,rental (social),,,200003724546.0,Address Matched +966390863732013070507473654078003,"1, Scott Street",,,ME14 2TA,6364090178,D,B,57,86,House,End-Terrace,2013-07-04,E07000110,E14000804,Kent,2013-07-05,marketed sale,51,86,256,65.0,4.9,49,1.3,72.0,56.0,814.0,428.0,169.0,83.0,100.0,Unknown,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,4.0,4.0,70.0,0.0,From main system,Average,Average,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 70% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"1, Scott Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2013-07-05 07:47:36,owner-occupied,10.0,7.0,200003669755.0,Address Matched +1544039578852017051810202897930454,Flat 2,"4, Clarendon Place",King Street,ME14 1BQ,4407871578,F,F,28,28,Flat,Mid-Terrace,2017-05-18,E07000110,E14000804,Kent,2017-05-18,new dwelling,38,38,636,636.0,3.7,108,3.7,37.0,37.0,890.0,890.0,188.0,188.0,35.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,75.0,0.0,"Electric immersion, standard tariff",Very Poor,Poor,Average thermal transmittance 0.39 W/m-¦K,Average,Average,Fully double glazed,Good,Good,Average thermal transmittance 1.36 W/m-¦K,Poor,Poor,,,,Average thermal transmittance 0.39 W/m-¦K,Average,Average,"Room heaters, electric",Very Poor,Poor,Programmer and appliance thermostats,Good,Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"Flat 2, 4, Clarendon Place, King Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2017-05-18 10:20:28,unknown,8.0,6.0,10093305559.0,Address Matched +870082619242013010919274603470918,"3, Mountsfield Close",,,ME16 0EZ,215614078,G,F,15,38,House,Detached,2013-01-09,E07000110,E14000804,Kent,2013-01-09,marketed sale,28,45,448,288.0,11.0,80,7.1,142.0,71.0,2670.0,1908.0,136.0,136.0,138.0,dual,N,NODATA!,,,2703.0,100.0,"double glazing, unknown install date",Normal,2.0,7.0,7.0,0.0,1.0,"Electric immersion, off-peak",Average,Very Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 200 mm loft insulation",Good,Good,Electric ceiling heating,Very Poor,Very Poor,Room thermostat only,Poor,Poor,No low energy lighting,Very Poor,Very Poor,electricity (not community),0.0,NO DATA!,,,0.0,,natural,"3, Mountsfield Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2013-01-09 19:27:46,owner-occupied,30.0,0.0,200003659080.0,Address Matched +633663499222011052419032836648589,Churchill Lodge,Ashford Road,Weavering,ME14 4AE,8335996868,C,C,71,74,House,Detached,2011-05-24,E07000110,E14000700,Kent,2011-05-24,marketed sale,68,71,157,142.0,5.2,30,4.7,130.0,72.0,763.0,723.0,129.0,129.0,171.69,dual,Y,NODATA!,,,2105.0,100.0,double glazing installed before 2002,Normal,0.0,8.0,8.0,20.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Programmer and at least two room thermostats,Good,Good,Low energy lighting in 20% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,2.37,0.0,,natural,"Churchill Lodge, Ashford Road, Weavering",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2011-05-24 19:03:28,owner-occupied,20.0,4.0,200003661876.0,Address Matched +1079579234012014012811354299240615,"35, Lime Trees",Staplehurst,,TN12 0SS,6566498178,D,C,65,78,House,Detached,2014-01-27,E07000110,E14000804,Kent,2014-01-28,marketed sale,60,74,186,110.0,5.0,36,3.0,115.0,68.0,879.0,776.0,141.0,81.0,141.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,8.0,7.0,32.0,0.0,From main system,Good,Good,"Suspended, limited insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 32% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"35, Lime Trees, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1996-2002,2014-01-28 11:35:42,owner-occupied,22.0,7.0,200003724382.0,Address Matched +003acbdd2853273682d2a5fe77ecf3c2421f855b3ebbf3ebfc13c7efc38e0acc,23 Caroline Crescent,,,ME16 0TP,10001430289,C,B,70,85,House,Detached,2021-08-16,E07000110,E14000804,Kent,2021-08-16,marketed sale,68,83,196,83.0,2.7,35,1.2,104.0,66.0,447.0,404.0,87.0,60.0,79.0,Unknown,Y,,,,,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,42.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 42% of fixed outlets,Average,Average,mains gas (not community),0.0,,,2.35,0.0,N,natural,23 Caroline Crescent,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2021-08-16 11:19:31,Owner-occupied,12.0,,200003662228.0,Energy Assessor +803176729262012062015150759008402,"2, Brackley Close",,,ME14 5NL,535249968,C,B,70,89,House,Semi-Detached,2012-06-20,E07000110,E14000804,Kent,2012-06-20,marketed sale,69,91,175,36.0,2.8,34,0.6,57.0,57.0,432.0,347.0,119.0,10.0,82.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,75.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"2, Brackley Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2012-06-20 15:15:07,owner-occupied,8.0,6.0,200003716724.0,Address Matched +153338259222014042822264301288574,"2, Howard Drive",,,ME16 0QD,7092571568,D,B,64,85,House,Semi-Detached,2014-04-28,E07000110,E14000804,Kent,2014-04-28,none of the above,62,84,206,72.0,3.8,39,1.4,111.0,56.0,660.0,461.0,113.0,84.0,95.0,Single,Y,NODATA!,,,2106.0,90.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Mostly double glazing,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"2, Howard Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2014-04-28 22:26:43,unknown,11.0,0.0,200003703321.0,Address Matched +1122689409802014040907510421240058,"123, Tonbridge Road",,,ME16 8JS,8821002278,D,C,59,74,House,Detached,2014-04-05,E07000110,E14000804,Kent,2014-04-09,marketed sale,55,71,201,126.0,7.8,38,4.9,144.0,87.0,1494.0,1144.0,133.0,133.0,203.0,Single,Y,NODATA!,,,2104.0,50.0,"double glazing, unknown install date",Normal,1.0,9.0,7.0,32.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Partial double glazing,Poor,Poor,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 32% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"123, Tonbridge Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2014-04-09 07:51:04,owner-occupied,19.0,6.0,200003657369.0,Address Matched +556380430032010102218380575268197,"65, Wallis Avenue",,,ME15 9HS,3725101868,C,C,74,78,House,Mid-Terrace,2010-10-22,E07000110,E14000700,Kent,2010-10-22,marketed sale,71,74,183,163.0,3.2,30,2.9,114.0,57.0,452.0,430.0,127.0,127.0,106.21,Single,Y,NO DATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,6.0,6.0,0.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.42,0.0,N,natural,"65, Wallis Avenue",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2010-10-22 18:38:05,owner-occupied,,,200003682275.0,Address Matched +1277365599302015020521530835250658,"2, Church Green",Upper Street,,ME17 1HW,4312492378,C,A,69,93,House,Detached,2015-02-05,E07000110,E14000700,Kent,2015-02-05,marketed sale,66,90,182,52.0,5.3,29,1.4,144.0,89.0,1062.0,864.0,113.0,113.0,181.0,Single,Y,NODATA!,,,2107.0,0.0,not defined,Normal,0.0,6.0,6.0,33.0,1.0,From main system,Good,Good,"Solid, limited insulation (assumed)",NO DATA!,,Single glazed,Very Poor,Very Poor,"System built, as built, insulated (assumed)",Good,Good,"Room heaters, wood logs",,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 33% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"2, Church Green, Upper Street",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1996-2002,2015-02-05 21:53:08,owner-occupied,,,200003701909.0,Address Matched +219769260262009012716020537738761,Flat 137 Scotney Gardens,St. Peters Street,,ME16 0GT,6338607568,C,C,74,78,Flat,Enclosed Mid-Terrace,2009-01-27,E07000110,E14000804,Kent,2009-01-27,rental (private),70,72,243,225.0,2.6,37,2.4,75.0,38.0,183.0,169.0,129.0,129.0,70.25,dual,N,Ground,N,5.0,2401.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,0.0,0.0,"Electric immersion, off-peak",Very Poor,Poor,"Suspended, insulated (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,(another dwelling above),,,Electric storage heaters,Poor,Very Poor,Manual charge control,Poor,Poor,No low energy lighting,Very Poor,Very Poor,electricity - this is for backwards compatibility only and should not be used,0.0,unheated corridor,7.1,2.4,0.0,N,natural,"Flat 137 Scotney Gardens, St. Peters Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2009-01-27 16:02:05,rental (private),,,10022893504.0,Address Matched +1385555659042015111306591840059428,"21, Juniper Close",,,ME16 0XP,5075550478,D,B,64,82,House,Detached,2015-11-12,E07000110,E14000804,Kent,2015-11-13,marketed sale,55,73,222,100.0,4.4,44,2.3,129.0,65.0,613.0,546.0,174.0,77.0,98.0,Unknown,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,6.0,6.0,0.0,1.0,From main system,Good,Good,"Solid, limited insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, coal",,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"21, Juniper Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2015-11-13 06:59:18,owner-occupied,,,200003724147.0,Address Matched +1733525319062019070320372545428511,Foley House,Stockbury Valley,Stockbury,ME9 7QJ,1461145678,E,C,50,80,Bungalow,Detached,2019-07-02,E07000110,E14000700,Kent,2019-07-03,marketed sale,42,73,227,72.0,7.9,55,3.2,137.0,99.0,949.0,513.0,242.0,82.0,144.0,dual,N,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,6.0,6.0,62.0,0.0,"Electric immersion, off-peak",Average,Poor,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Roof room(s), insulated (assumed)",Good,Good,"Boiler and radiators, oil",Poor,Average,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 62% of fixed outlets,Good,Good,oil (not community),0.0,NO DATA!,,,,N,natural,"Foley House, Stockbury Valley, Stockbury",Maidstone,Faversham and Mid Kent,SITTINGBOURNE,England and Wales: 1930-1949,2019-07-03 20:37:25,owner-occupied,,,200003732593.0,Address Matched +1125025455432014052115041232278706,Wanshurst,Battle Lane,Marden,TN12 9DF,5682712278,F,D,35,62,House,Detached,2014-05-21,E07000110,E14000804,Kent,2014-05-21,none of the above,33,56,292,168.0,17.0,61,9.5,223.0,113.0,3873.0,2563.0,255.0,194.0,277.0,dual,N,NODATA!,,,2106.0,46.0,double glazing installed before 2002,Normal,1.0,11.0,11.0,0.0,1.0,From main system,Average,Poor,"Solid, no insulation (assumed)",,,Partial double glazing,Poor,Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, oil",Average,Average,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,oil (not community),0.0,NO DATA!,,,0.0,,natural,"Wanshurst, Battle Lane, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: before 1900,2014-05-21 15:04:12,owner-occupied,34.0,0.0,200003674003.0,Address Matched +1252675387912015070816493691050831,"7, The Street",Detling,,ME14 3JU,8116711378,D,B,64,85,House,Detached,2015-07-06,E07000110,E14000700,Kent,2015-07-08,marketed sale,57,82,238,89.0,4.8,42,1.9,99.0,66.0,876.0,552.0,112.0,75.0,116.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,6.0,6.0,50.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"7, The Street, Detling",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2015-07-08 16:49:36,owner-occupied,,,200003731815.0,Address Matched +1677757139742019100910024462180818,Flat 204,Kent House,Romney Place,ME15 6LA,5775431678,D,D,60,60,Flat,Detached,2018-11-09,E07000110,E14000804,Kent,2019-10-09,non marketed sale,64,64,232,232.0,3.0,39,3.0,59.0,59.0,649.0,649.0,311.0,311.0,77.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,"Electric immersion, standard tariff",Very Poor,Poor,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.32 W/m-¦K,Good,Good,,,,(other premises above),,,Electric underfloor heating,Very Poor,Poor,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"Flat 204, Kent House, Romney Place",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2019-10-09 10:02:44,unknown,21.0,21.0,, +1435502704632016042209542180278305,Flat 124,Miller Heights,43-51 Lower Stone Street,ME15 6LZ,580314478,D,D,61,61,Flat,NO DATA!,2016-04-20,E07000110,E14000804,Kent,2016-04-22,none of the above,65,65,286,286.0,2.2,48,2.2,33.0,33.0,394.0,394.0,232.0,232.0,46.0,standard tariff,,top floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Very Poor,Poor,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.29 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.16 W/m-¦K,Good,Good,"Boiler and radiators, electric",Very Poor,Very Poor,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"Flat 124, Miller Heights, 43-51 Lower Stone Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2016-04-22 09:54:21,unknown,6.0,6.0,10093302722.0,Address Matched +17350190612011032510573998290946,140 Wallis Place,Hart Street,,ME16 8FD,9607088468,B,B,88,88,Flat,NO DATA!,2011-03-25,E07000110,E14000804,Kent,2011-03-25,new dwelling,88,88,97,97.0,0.9,16,0.9,31.0,31.0,169.0,169.0,90.0,90.0,57.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,6.0,,From main system,Very Good,Very Good,(other premises below),,,Fully double glazed,Good,Good,Average thermal transmittance 0.28 W/m?K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,,,NO DATA!,"140 Wallis Place, Hart Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2011-03-25 10:57:39,,6.0,6.0,10022900744.0,Address Matched +1226083689222014102913045439878444,"5, Westminster Square",,,ME16 0WQ,4393829278,D,B,57,82,House,Detached,2014-10-23,E07000110,E14000804,Kent,2014-10-29,none of the above,51,79,225,87.0,7.5,43,3.0,151.0,84.0,1381.0,773.0,162.0,92.0,173.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,8.0,8.0,20.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 20% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"5, Westminster Square",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2014-10-29 13:04:54,owner-occupied,20.0,4.0,10022895584.0,Address Matched +1421011099262016072109065213708856,"31, Halstow Close",,,ME15 9XA,5172903478,D,B,57,85,House,Semi-Detached,2016-07-20,E07000110,E14000804,Kent,2016-07-21,marketed sale,51,84,331,93.0,4.1,58,1.2,68.0,49.0,681.0,433.0,191.0,71.0,71.0,Unknown,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,60.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 60% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,2.35,,N,natural,"31, Halstow Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2016-07-21 09:06:52,owner-occupied,,,200003675585.0,Address Matched +689072909962012021010051970308112,"2, Hawkes Way",,,ME15 9ZL,1777090968,B,B,85,86,House,Mid-Terrace,2012-02-10,E07000110,E14000700,Kent,2012-02-10,new dwelling,89,90,64,61.0,1.1,12,1.1,67.0,53.0,223.0,225.0,47.0,47.0,94.02,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,9.0,,"From main system, plus solar",Very Good,Very Good,Average thermal transmittance 0.15 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.14 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,,,NO DATA!,"2, Hawkes Way",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2012-02-10 10:05:19,,12.0,9.0,10014312489.0,Address Matched +1635324127152018052915290592280958,"147, Chatham Road",,,ME14 2ND,9809728578,D,D,59,67,House,Semi-Detached,2018-05-24,E07000110,E14000804,Kent,2018-05-29,marketed sale,59,66,206,168.0,6.8,33,5.5,159.0,105.0,1519.0,1484.0,110.0,110.0,204.0,dual,Y,NODATA!,,,2106.0,95.0,double glazing installed during or after 2002,Normal,3.0,9.0,8.0,48.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Mostly double glazing,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 48% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"147, Chatham Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2018-05-29 15:29:05,owner-occupied,,,200003670514.0,Address Matched +1771695189922019121113255558608021,"23, Westmorland Close",,,ME15 8AJ,2555818678,C,B,69,83,House,End-Terrace,2019-12-10,E07000110,E14000700,Kent,2019-12-11,rental (social),68,83,204,95.0,3.0,36,1.4,84.0,67.0,529.0,480.0,125.0,79.0,83.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,4.0,75.0,0.0,From main system,Good,Good,"Suspended, limited insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,Portable electric heaters (assumed),,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"23, Westmorland Close",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1996-2002,2019-12-11 13:25:55,rental (social),,,200003727887.0,Address Matched +1359163679442015090117361231850598,"107, Milton Street",,,ME16 8LD,1446178378,E,C,50,80,House,Mid-Terrace,2015-09-01,E07000110,E14000804,Kent,2015-09-01,non marketed sale,43,76,364,120.0,4.9,64,1.6,71.0,55.0,909.0,545.0,117.0,54.0,76.0,dual,Y,NODATA!,,,2107.0,25.0,double glazing installed before 2002,Normal,1.0,4.0,4.0,71.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Some double glazing,Poor,Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 71% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"107, Milton Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2015-09-01 17:36:12,owner-occupied,,,200003655470.0,Address Matched +803961279222012062017264929108742,2 Honywood Farm Cottages,West Street,Lenham,ME17 2EP,4270749968,C,C,75,75,House,End-Terrace,2012-06-20,E07000110,E14000700,Kent,2012-06-20,new dwelling,81,81,120,120.0,2.0,21,2.0,59.0,59.0,407.0,407.0,103.0,103.0,92.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,16.0,,Community scheme,Good,Very Good,Average thermal transmittance 0.17 W/m?K,Very Good,Very Good,Fully double glazed,Good,Good,Average thermal transmittance 0.21 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.27 W/m?K,Good,Good,Community scheme,Good,Very Good,"Flat rate charging, programmer and TRVs",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,NO DATA!,0.0,NO DATA!,,2.23,,,NO DATA!,"2 Honywood Farm Cottages, West Street, Lenham",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2012-06-20 17:26:49,,16.0,16.0,, +1366212058912015092107250891950534,1 Foley Hill Cottages,Lower Street,Leeds,ME17 1TL,5442819378,E,A,44,100,House,Semi-Detached,2015-09-19,E07000110,E14000700,Kent,2015-09-21,marketed sale,33,87,417,14.0,7.2,84,1.0,85.0,55.0,968.0,639.0,346.0,74.0,86.0,Single,Y,NODATA!,,,2105.0,5.0,"double glazing, unknown install date",Normal,1.0,3.0,3.0,45.0,1.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Some double glazing,Very Poor,Very Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, coal",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and at least two room thermostats,Good,Good,Low energy lighting in 45% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"1 Foley Hill Cottages, Lower Street, Leeds",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2015-09-21 07:25:08,owner-occupied,,,200003698497.0,Address Matched +6760832a5ddaded8122ac424b2c34ca58c9f3690a1c6269115f7fe175f106d56,33 BELL WAY,KINGSWOOD,,ME17 3QH,10001531612,C,B,69,81,Bungalow,Detached,2021-07-30,E07000110,E14000700,Kent,2021-08-04,marketed sale,62,77,200,114.0,5.5,35,3.2,123.0,123.0,852.0,687.0,138.0,81.0,155.0,Single,Y,,,,,100.0,"double glazing, unknown install date",Normal,0.0,6.0,6.0,79.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 79% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.49,0.0,N,natural,"33 BELL WAY, KINGSWOOD",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2021-08-04 06:25:54,Owner-occupied,14.0,,200003701433.0,Energy Assessor +6763066cf10afdd30bc302541f2bf255ae9a1d074df32b20302578a225e5ae99,33 PERRY STREET,,,ME14 2RP,10001486430,C,B,69,84,House,Mid-Terrace,2021-06-25,E07000110,E14000804,Kent,2021-07-30,not sale or rental,64,81,203,92.0,3.4,36,1.6,88.0,88.0,512.0,452.0,162.0,80.0,95.0,Single,Y,,,,,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,86.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Roof room(s), insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 86% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.75,0.0,N,natural,33 PERRY STREET,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1991-1995,2021-07-30 14:45:33,Rented (social),14.0,,200003669987.0,Energy Assessor +59280409802015092908244847452388,"101, Bathurst Road",Staplehurst,,TN12 0LH,818804468,D,C,65,77,House,Semi-Detached,2015-09-28,E07000110,E14000804,Kent,2015-09-29,marketed sale,61,74,201,124.0,4.7,35,2.9,127.0,73.0,869.0,800.0,141.0,88.0,134.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,2.0,7.0,7.0,26.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 26% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"101, Bathurst Road, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1967-1975,2015-09-29 08:24:48,owner-occupied,,,200003677718.0,Address Matched +674780499342011090620081088990668,"12, Eversley Close",,,ME16 0RZ,7365099868,D,C,67,72,Bungalow,Semi-Detached,2011-09-06,E07000110,E14000804,Kent,2011-09-06,marketed sale,67,73,223,184.0,2.6,43,2.1,66.0,33.0,419.0,379.0,82.0,72.0,60.38,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,2.36,0.0,,natural,"12, Eversley Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2011-09-06 20:08:10,owner-occupied,9.0,0.0,200003661015.0,Address Matched +1689926919132019011320074087978306,"32, Fant Lane",,,ME16 8NN,1657322678,D,B,66,84,House,Mid-Terrace,2019-01-11,E07000110,E14000804,Kent,2019-01-13,marketed sale,65,84,212,77.0,3.0,37,1.1,66.0,66.0,557.0,418.0,103.0,69.0,80.0,Unknown,Y,NODATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,1.0,5.0,5.0,82.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, electric",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 82% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"32, Fant Lane",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2019-01-13 20:07:40,owner-occupied,,,200003674384.0,Address Matched +6775de1fce7d5e9af1bb7114f02fcd80ca857919eb6608ae2e1edfbea7802ec6,"39, Edna Road",,,ME14 2QJ,10001490786,D,B,59,85,House,Semi-Detached,2021-07-15,E07000110,E14000804,Kent,2021-07-15,marketed sale,53,83,297,90.0,3.9,52,1.2,116.0,63.0,643.0,407.0,91.0,64.0,75.0,Single,Y,,,,,100.0,double glazing installed before 2002,Normal,1.0,3.0,3.0,15.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, mains gas",,,"Pitched, 270 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 15% of fixed outlets,Poor,Poor,mains gas (not community),0.0,,,2.45,0.0,N,natural,"39, Edna Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2021-07-15 14:44:43,Owner-occupied,13.0,,200003670613.0,Address Matched +1813190282222020072606552111028490,"202, Loose Road",,,ME15 7UF,9153811778,D,C,61,80,House,Semi-Detached,2020-07-22,E07000110,E14000804,Kent,2020-07-26,marketed sale,53,75,271,130.0,5.4,48,2.6,99.0,99.0,907.0,636.0,136.0,83.0,113.0,Unknown,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,6.0,6.0,80.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"202, Loose Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2020-07-26 06:55:21,owner-occupied,,,200003677491.0,Address Matched +824400699942012081513202401029558,3 Primrose Cottages,Otham Street,Otham,ME15 8RN,3904090078,E,B,53,87,House,End-Terrace,2012-08-15,E07000110,E14000700,Kent,2012-08-15,marketed sale,42,78,269,64.0,5.6,67,1.8,100.0,50.0,808.0,449.0,153.0,99.0,83.0,dual,N,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,0.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Granite or whinstone, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, oil",Good,Average,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,oil (not community),0.0,NO DATA!,,,0.0,,natural,"3 Primrose Cottages, Otham Street, Otham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2012-08-15 13:20:24,owner-occupied,8.0,0.0,200003690571.0,Address Matched +619016865212011041618254899990986,"10, Birch Drive",,,ME5 8YU,9664595868,D,C,64,76,House,End-Terrace,2011-04-16,E07000110,E14000700,Kent,2011-04-16,marketed sale,57,72,272,180.0,4.8,46,3.1,58.0,58.0,697.0,481.0,198.0,140.0,119.09,Single,Y,NO DATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,7.0,7.0,100.0,0.0,From main system,Average,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Average,Good,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.32,0.0,N,natural,"10, Birch Drive",Maidstone,Faversham and Mid Kent,CHATHAM,England and Wales: 1976-1982,2011-04-16 18:25:48,owner-occupied,,,200003676623.0,Address Matched +132167679902014011414330748949748,Sunnyhurst,Broomfield Road,Kingswood,ME17 3NY,6931779468,C,B,71,82,Bungalow,Detached,2014-01-14,E07000110,E14000700,Kent,2014-01-14,marketed sale,69,81,156,87.0,3.4,30,2.0,62.0,62.0,645.0,553.0,96.0,96.0,113.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"Sunnyhurst, Broomfield Road, Kingswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2014-01-14 14:33:07,owner-occupied,9.0,9.0,10014308542.0,Address Matched +67840dc3d25a03b88514672cf4726d48f82f5e9f10bfe0ba0e3ce9a931f82c20,19 ELLIS FIELD,OTHAM,,ME15 8YL,10001429669,B,A,85,98,House,Mid-Terrace,2021-09-15,E07000110,E14000804,Kent,2021-09-15,new dwelling,89,101,75,-22.0,0.9,13,-0.2,63.0,63.0,172.0,172.0,66.0,40.0,71.0,standard tariff,,,N,,,100.0,,,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.10 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.18 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.39,,,,"19 ELLIS FIELD, OTHAM",Maidstone,Maidstone and The Weald,OTHAM,2021,2021-09-15 15:33:02,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,11.0,,10094440497.0,Address Matched +330815730262009072217382425398311,Flat 16D,16-18 Ashford Road,,ME14 5BH,1243315668,E,E,40,51,Flat,Semi-Detached,2009-07-21,E07000110,E14000804,Kent,2009-07-22,rental (private),33,39,739,626.0,5.4,111,4.6,50.0,27.0,579.0,483.0,141.0,108.0,48.51,Unknown,N,3rd,Y,4.0,2401.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,14.0,0.0,"Electric immersion, off-peak",Average,Poor,(other premises below),,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, electric",,,"Pitched, 100 mm loft insulation",Average,Average,Electric storage heaters,Poor,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 14% of fixed outlets,Poor,Poor,electricity - this is for backwards compatibility only and should not be used,0.0,unheated corridor,6.88,2.37,0.0,N,natural,"Flat 16D, 16-18 Ashford Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2009-07-22 17:38:24,rental (private),,,200003728150.0,Address Matched +678ba501a539c23fae39251e560b0c45b4e1c614466e8282fc9b82b1321495a6,24 REEVES CLOSE,STAPLEHURST,,TN12 0NN,10001429413,D,B,66,86,House,Semi-Detached,2021-07-21,E07000110,E14000804,Kent,2021-07-21,marketed sale,63,85,246,80.0,2.9,43,1.0,78.0,57.0,457.0,357.0,119.0,72.0,67.0,Unknown,Y,,,,,100.0,double glazing installed during or after 2002,Normal,1.0,4.0,4.0,64.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 64% of fixed outlets,Good,Good,mains gas (not community),0.0,,,2.3,0.0,N,natural,"24 REEVES CLOSE, STAPLEHURST",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1967-1975,2021-07-21 19:00:07,Owner-occupied,11.0,,200003678279.0,Energy Assessor +543453316352010092116212990200985,"3a, Byron Road",Penenden Heath,,ME14 2HA,9576600868,E,D,40,62,Flat,Detached,2010-09-21,E07000110,E14000804,Kent,2010-09-21,rental (private),36,57,533,323.0,5.8,89,3.5,71.0,35.0,871.0,575.0,165.0,108.0,64.92,Single,Y,1st,Y,2.0,2102.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,0.0,1.0,From main system,Average,Good,(other premises below),,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Average,Good,"Programmer, no room thermostat",Very Poor,Very Poor,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.42,0.0,N,natural,"3a, Byron Road, Penenden Heath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2010-09-21 16:21:29,rental (private),,,200003707465.0,Address Matched +1450991829002016060815383942560638,"1, Bottom Pond Road",Wormshill,,ME9 0TP,1018025478,F,B,34,86,House,Semi-Detached,2016-06-07,E07000110,E14000700,Kent,2016-06-08,ECO assessment,33,78,275,37.0,11.0,67,2.7,176.0,93.0,1833.0,931.0,184.0,103.0,162.0,dual,N,NODATA!,,,2102.0,100.0,double glazing installed during or after 2002,Normal,1.0,5.0,5.0,10.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,"Pitched, 25 mm loft insulation",Poor,Poor,"Boiler and radiators, oil",Average,Good,"Programmer, no room thermostat",Very Poor,Very Poor,Low energy lighting in 10% of fixed outlets,Poor,Poor,oil (not community),0.0,NO DATA!,,2.53,,N,natural,"1, Bottom Pond Road, Wormshill",Maidstone,Faversham and Mid Kent,SITTINGBOURNE,England and Wales: 1930-1949,2016-06-08 15:38:39,owner-occupied,,,200003705128.0,Address Matched +870384479732013011109343398978403,Squirrels,Walnut Tree Lane,Loose,ME15 9RQ,7358414078,C,C,72,79,House,Detached,2013-01-11,E07000110,E14000804,Kent,2013-01-11,marketed sale,68,75,138,100.0,5.4,27,4.0,77.0,77.0,902.0,830.0,115.0,116.0,202.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,7.0,7.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"Squirrels, Walnut Tree Lane, Loose",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2013-01-11 09:34:33,unknown,16.0,16.0,200003676002.0,Address Matched +17869900262009102915115978138861,82 Wallis Place,Hart Street,,ME16 8FD,6736088468,B,B,88,88,Flat,NO DATA!,2009-10-27,E07000110,E14000804,Kent,2009-10-29,new dwelling,87,87,111,111.0,0.9,18,0.9,25.0,25.0,169.0,169.0,70.0,70.0,48.46,standard tariff,,mid floor,,,2106.0,,NO DATA!,NO DATA!,,,,6.0,0.0,From main system,Very Good,Very Good,Average thermal transmittance 0.19 W/m?K,Very Good,Very Good,Fully double glazed,Good,Good,Average thermal transmittance 0.32 W/m?K,Good,Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"82 Wallis Place, Hart Street",Maidstone,Maidstone and The Weald,MAIDSTONE,,2009-10-29 15:11:59,,,,10022900683.0,Address Matched +561543189022010110417474001548590,2 Forge Cottages,Forge Lane,Boxley,ME14 3DT,9095831868,C,C,75,76,House,Mid-Terrace,2010-11-04,E07000110,E14000700,Kent,2010-11-04,marketed sale,73,74,203,199.0,2.2,33,2.2,48.0,34.0,349.0,352.0,105.0,105.0,65.4,Single,Y,NO DATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,4.0,4.0,60.0,0.0,From main system,Very Good,Very Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 60% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.25,0.0,N,natural,"2 Forge Cottages, Forge Lane, Boxley",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2010-11-04 17:47:40,owner-occupied,,,200003673393.0,Address Matched +1358455949022015090410095478978985,"23, Cobb Way",,,ME15 9XF,8724468378,B,A,83,95,House,NO DATA!,2015-09-03,E07000110,E14000700,Kent,2015-09-04,new dwelling,86,98,90,2.0,1.2,16,0.1,58.0,58.0,222.0,222.0,93.0,59.0,79.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.14 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.17 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"23, Cobb Way",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2015-09-04 10:09:54,unknown,10.0,10.0,10014315877.0,Address Matched +617288844832018071710300806268907,"4, Peter Pease Close",Kingswood,,ME17 3BZ,4756975868,C,A,77,112,House,Mid-Terrace,2018-04-24,E07000110,E14000700,Kent,2018-07-17,rental (social),77,110,144,-89.0,2.0,25,-1.1,102.0,60.0,304.0,310.0,107.0,71.0,80.0,dual (24 hour),Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,30.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Very Good,Very Good,,,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 30% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"4, Peter Pease Close, Kingswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2007 onwards,2018-07-17 10:30:08,rental (social),,,10014312161.0,Address Matched +67c5badc181845d1388d10925f4e2a6d6678067385627d2ef6262f740dbf3937,2 THOMAS PLACE,JAMES WHATMAN WAY,,ME14 1FP,6350358868,B,B,82,82,Flat,Enclosed End-Terrace,2021-07-21,E07000110,E14000804,Kent,2021-07-28,rental,84,84,107,107.0,1.2,19,1.2,62.0,62.0,161.0,161.0,108.0,108.0,65.0,Single,N,01,N,,,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,Community scheme,Good,Good,(another dwelling below),,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Very Good,Very Good,,,,(another dwelling above),,,Community scheme,Good,Good,"Flat rate charging, programmer and room thermostat",Poor,Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (community),0.0,unheated corridor,8.26,2.39,0.0,N,natural,"2 THOMAS PLACE, JAMES WHATMAN WAY",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2012 onwards,2021-07-28 11:22:04,Rented (social),7.0,,10014312668.0,Energy Assessor +1362805163612015091010043899950830,"5, Batten Walk",,,ME17 3AA,8016398378,B,A,83,118,House,NO DATA!,2015-09-10,E07000110,E14000700,Kent,2015-09-10,new dwelling,86,118,90,-137.0,1.2,16,-1.8,54.0,54.0,235.0,235.0,84.0,50.0,79.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"5, Batten Walk",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2015-09-10 10:04:38,unknown,1.0,1.0,10091194036.0,Address Matched +67e2ce20050d61ba229960d48bf41e24435d53a64af724c64c3ba0cc35904a36,5 CLOVER TERRACE,NORTHUMBERLAND ROAD,,ME15 7SY,10001591349,E,B,53,81,House,End-Terrace,2021-06-29,E07000110,E14000700,Kent,2021-07-01,ECO assessment,49,79,314,113.0,5.4,55,2.0,152.0,76.0,989.0,605.0,149.0,81.0,98.0,Single,Y,,,,,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,0.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,"Pitched, insulated (assumed)",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,,,2.75,0.0,N,natural,"5 CLOVER TERRACE, NORTHUMBERLAND ROAD",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2021-07-01 10:48:49,Rented (social),10.0,,200003714085.0,Energy Assessor +419280429062010040610110791468060,"3, Nethermount",Bearsted,,ME14 4FE,6910231768,B,B,86,86,House,Semi-Detached,2010-04-06,E07000110,E14000700,Kent,2010-04-06,new dwelling,85,85,98,95.0,1.7,16,1.6,66.0,53.0,236.0,237.0,104.0,104.0,102.86,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,24.0,,From main system,Very Good,Very Good,Average thermal transmittance 0.16 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.26 W/m?K,Very Good,Very Good,"Room heaters, mains gas",,,Average thermal transmittance 0.10 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Very Good,Very Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,,,NO DATA!,"3, Nethermount, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2010-04-06 10:11:07,,32.0,24.0,10014309097.0,Address Matched +448443689962012091423144433448472,"27, Foord Road",Lenham,,ME17 2QN,7312833768,C,C,72,76,Flat,Semi-Detached,2012-09-14,E07000110,E14000700,Kent,2012-09-14,rental (social),73,78,172,140.0,2.0,33,1.6,48.0,36.0,356.0,300.0,78.0,79.0,60.0,Single,Y,Ground,N,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,67.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 67% of fixed outlets,Good,Good,mains gas (not community),0.0,no corridor,,,0.0,,natural,"27, Foord Road, Lenham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2012-09-14 23:14:44,rental (social),6.0,4.0,200003711652.0,Address Matched +939041140812013052712582690270207,"17, Peacock Mews",Springvale,,ME16 0AW,2773009078,D,B,65,89,House,Mid-Terrace,2013-05-25,E07000110,E14000804,Kent,2013-05-27,marketed sale,51,72,334,169.0,3.7,59,1.9,44.0,44.0,381.0,305.0,197.0,73.0,63.0,dual,N,NODATA!,,,2402.0,100.0,double glazing installed before 2002,Normal,1.0,3.0,3.0,100.0,0.0,"Electric immersion, off-peak",Poor,Very Poor,"Suspended, limited insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,Portable electric heaters (assumed),,,"Pitched, 150 mm loft insulation",Good,Good,Electric storage heaters,Average,Very Poor,Automatic charge control,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,NO DATA!,,,0.0,,natural,"17, Peacock Mews, Springvale",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2013-05-27 12:58:26,owner-occupied,15.0,15.0,200003726555.0,Address Matched +597377374212012081420112192020482,"1, Havant Walk",,,ME15 8UH,4292424868,C,B,71,87,House,End-Terrace,2012-08-06,E07000110,E14000700,Kent,2012-08-14,rental (social),71,88,159,55.0,2.7,30,1.0,82.0,48.0,425.0,365.0,107.0,71.0,88.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,More Than Typical,0.0,4.0,4.0,30.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 30% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"1, Havant Walk",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1976-1982,2012-08-14 20:11:21,rental (social),10.0,3.0,200003723407.0,Address Matched +1457229984412016062711221796260343,Flat 3 Mill House,"76, Church Road",,ME15 6QY,3304465478,C,C,75,75,Flat,NO DATA!,2016-06-27,E07000110,E14000804,Kent,2016-06-27,new dwelling,77,77,164,164.0,1.7,29,1.7,47.0,47.0,314.0,314.0,98.0,98.0,58.0,standard tariff,,ground floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Very Good,Good,Average thermal transmittance 0.18 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.27 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Flat 3 Mill House, 76, Church Road",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2016-06-27 11:22:17,owner-occupied,10.0,10.0,10093302814.0,Address Matched +645392239762011063018353947108159,"7, Busbridge Road",,,ME15 0HY,5476387868,E,D,52,68,House,Semi-Detached,2011-06-30,E07000110,E14000804,Kent,2011-06-30,rental (private),46,66,310,192.0,6.0,60,3.7,65.0,49.0,883.0,589.0,183.0,111.0,99.901,Single,Y,NODATA!,,,2104.0,90.0,double glazing installed before 2002,More Than Typical,1.0,5.0,5.0,66.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Mostly double glazing,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 66% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,2.18,0.0,,natural,"7, Busbridge Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2011-06-30 18:35:39,rental (private),32.0,21.0,200003663712.0,Address Matched +1431568789502016040714480544360838,"51, Edmett Way",,,ME17 3FA,6547283478,B,A,85,111,House,Semi-Detached,2016-04-07,E07000110,E14000700,Kent,2016-04-07,new dwelling,86,110,78,-71.0,1.6,14,-1.4,75.0,75.0,293.0,293.0,93.0,56.0,120.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.26 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.14 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"51, Edmett Way",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2016-04-07 14:48:05,unknown,1.0,1.0,10091193986.0,Address Matched +67e5ee35e8c3872ccec1f5e408da3110354971ff6a2ac7cecd51d19834cf3243,8 Fremlins Road,Bearsted,,ME14 4HA,10001546911,D,C,66,80,House,Detached,2021-08-26,E07000110,E14000700,Kent,2021-08-26,marketed sale,59,76,224,123.0,4.5,39,2.5,85.0,85.0,755.0,617.0,99.0,69.0,115.0,Single,Y,,,,,100.0,"double glazing, unknown install date",Normal,3.0,6.0,6.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.38,0.0,N,natural,"8 Fremlins Road, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2021-08-26 14:35:44,Owner-occupied,13.0,,200003694661.0,Energy Assessor +325223424812009072809175707910267,"4, The Cockpit",Marden,,TN12 9TQ,2702474668,C,C,77,78,Flat,Semi-Detached,2009-07-13,E07000110,E14000804,Kent,2009-07-28,rental (social),74,75,205,201.0,2.0,34,2.0,45.0,30.0,322.0,325.0,80.0,80.0,59.2,Single,Y,Ground,N,3.0,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,50.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,unheated corridor,6.4,2.41,0.0,N,natural,"4, The Cockpit, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1967-1975,2009-07-28 09:17:57,rental (social),,,200003727000.0,Address Matched +957176507952013062211532092270913,5 Longwood,Boxley Road,Walderslade,ME5 9JG,9326720178,D,C,66,79,House,Detached,2013-06-22,E07000110,E14000700,Kent,2013-06-22,marketed sale,63,78,172,94.0,5.3,33,2.9,83.0,83.0,893.0,726.0,159.0,79.0,161.0,Single,Y,NODATA!,,,2110.0,100.0,double glazing installed before 2002,Normal,0.0,8.0,8.0,83.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in 83% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"5 Longwood, Boxley Road, Walderslade",Maidstone,Faversham and Mid Kent,CHATHAM,England and Wales: 1983-1990,2013-06-22 11:53:20,owner-occupied,18.0,15.0,200003721219.0,Address Matched +1598075342332017123010082386778396,"5, Ringlestone Crescent",,,ME14 2NE,4676365578,D,B,55,81,House,Semi-Detached,2017-12-30,E07000110,E14000804,Kent,2017-12-30,marketed sale,48,78,321,110.0,4.5,59,1.6,52.0,52.0,824.0,503.0,99.0,66.0,76.0,Single,Y,NODATA!,,,2102.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,100.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"5, Ringlestone Crescent",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2017-12-30 10:08:23,owner-occupied,,,200003670534.0,Address Matched +69700778032010083122364212768001,"88, Worcester Road",,,ME15 7LX,7112084468,D,C,59,74,House,Semi-Detached,2010-08-31,E07000110,E14000700,Kent,2010-08-31,marketed sale,55,71,289,184.0,5.0,48,3.2,115.0,60.0,709.0,470.0,148.0,126.0,117.15,dual,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,5.0,5.0,8.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 8% of fixed outlets,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,0.0,N,natural,"88, Worcester Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2010-08-31 22:36:42,owner-occupied,,,200003683930.0,Address Matched +1012026519302013092308423913472278,"40, Caernarvon Drive",,,ME15 6FJ,332814178,D,B,65,89,House,Semi-Detached,2013-09-23,E07000110,E14000804,Kent,2013-09-23,marketed sale,63,90,214,44.0,3.2,41,0.7,93.0,47.0,478.0,327.0,163.0,79.0,77.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,0.0,0.0,From main system,Average,Average,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"40, Caernarvon Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1991-1995,2013-09-23 08:42:39,owner-occupied,10.0,0.0,200003664379.0,Address Matched +471058784852010042118505999200970,"10, Ware Street",Bearsted,,ME14 4PQ,9025494768,E,D,54,68,House,End-Terrace,2010-04-21,E07000110,E14000700,Kent,2010-04-21,rental (private),48,62,458,326.0,3.7,77,2.6,52.0,28.0,594.0,450.0,90.0,73.0,48.44,dual,Y,NO DATA!,,,2107.0,100.0,double glazing installed before 2002,Normal,1.0,3.0,3.0,14.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Flat, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 14% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.38,0.0,N,natural,"10, Ware Street, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2010-04-21 18:50:59,rental (private),,,200003693772.0,Address Matched +1614090479742018031009254357680668,Pleasant Field Bungalow,Chart Hill Road,Chart Sutton,ME17 3RQ,735776578,E,A,40,99,Bungalow,Detached,2018-02-06,E07000110,E14000700,Kent,2018-03-10,rental (private),41,99,442,16.0,6.1,69,-0.1,99.0,61.0,1167.0,625.0,219.0,72.0,89.0,Single,Y,NODATA!,,,2104.0,63.0,double glazing installed during or after 2002,Normal,1.0,5.0,5.0,36.0,1.0,"From main system, no cylinder thermostat",Average,Average,"Suspended, no insulation (assumed)",NO DATA!,,Partial double glazing,Average,Average,"Timber frame, as built, partial insulation (assumed)",Average,Average,"Room heaters, wood logs",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 36% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"Pleasant Field Bungalow, Chart Hill Road, Chart Sutton",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2018-03-10 09:25:43,rental (private),,,200003690256.0,Address Matched +1423185267632016031223180850978402,"41, Bower Place",,,ME16 8BG,6220423478,D,B,63,87,House,Mid-Terrace,2016-03-11,E07000110,E14000804,Kent,2016-03-12,marketed sale,59,86,279,74.0,3.0,49,0.8,43.0,43.0,601.0,393.0,81.0,50.0,62.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,3.0,3.0,100.0,0.0,From main system,Good,Good,"To unheated space, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"41, Bower Place",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2016-03-12 23:18:08,owner-occupied,,,200003667337.0,Address Matched +565820644812020061213334427900181,"36, Huntington Road",Coxheath,,ME17 4DY,1136471868,D,B,57,83,House,Semi-Detached,2020-06-11,E07000110,E14000804,Kent,2020-06-12,marketed sale,50,80,330,112.0,4.6,58,1.6,75.0,75.0,822.0,484.0,91.0,62.0,79.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,82.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 82% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"36, Huntington Road, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2020-06-12 13:33:44,owner-occupied,,,200003671634.0,Address Matched +1538705461412017042609061194230252,"54, Murdoch Chase",Coxheath,,ME17 4AA,2292141578,B,A,84,95,House,End-Terrace,2017-04-26,E07000110,E14000804,Kent,2017-04-26,new dwelling,87,98,84,5.0,1.3,15,0.1,66.0,66.0,225.0,225.0,84.0,50.0,88.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.14 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.20 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"54, Murdoch Chase, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2017-04-26 09:06:11,unknown,10.0,10.0,10093302697.0,Address Matched +606210319962011031811472934788809,"13, Caroline Crescent",,,ME16 0TP,306194868,E,C,54,74,Bungalow,Semi-Detached,2011-03-18,E07000110,E14000804,Kent,2011-03-18,rental (private),46,70,434,237.0,4.3,73,2.3,35.0,35.0,632.0,394.0,200.0,105.0,59.22,Single,Y,NO DATA!,,,2102.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,90.0,1.0,"From main system, no cylinder thermostat",Poor,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, partial insulation (assumed)",Average,Average,"Room heaters, mains gas",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Average,Good,"Programmer, no room thermostat",Very Poor,Very Poor,Low energy lighting in 90% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.35,0.0,N,natural,"13, Caroline Crescent",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1976-1982,2011-03-18 11:47:29,rental (private),,,200003662217.0,Address Matched +682816ac71253d063b2ad73d5535ad617159ecf28d65e60b05ea7d2cf94c5061,Long Barn,Chequer Tree Granary,Collier Street,TN12 9SB,10001695610,E,B,39,83,Bungalow,Detached,2021-09-09,E07000110,E14000804,Kent,2021-09-09,rental,22,62,682,240.0,8.0,115,2.8,65.0,65.0,1450.0,618.0,200.0,112.0,70.0,dual,N,,,,,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,100.0,0.0,"Electric immersion, off-peak",Average,Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, partial insulation (assumed)",Average,Average,Portable electric heaters (assumed),,,"Pitched, 100 mm loft insulation",Average,Average,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,,,2.26,0.0,N,natural,"Long Barn, Chequer Tree Granary, Collier Street",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1976-1982,2021-09-09 19:12:09,Rented (private),8.0,,10014307953.0,Address Matched +168027190062008110418465582548728,"80, Sandling Road",,,ME14 2RJ,2857982568,D,D,60,60,House,Mid-Terrace,2008-11-04,E07000110,E14000804,Kent,2008-11-04,marketed sale,58,58,356,356.0,3.2,55,3.2,29.0,29.0,469.0,469.0,78.0,78.0,58.88,dual,Y,NO DATA!,,,2106.0,20.0,secondary glazing,Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Partial secondary glazing,Poor,Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,1.94,0.0,N,natural,"80, Sandling Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2008-11-04 18:46:55,owner-occupied,,,200003669490.0,Address Matched +1702559219042019030508074364310548,"35, York Road",,,ME15 7QT,9050313678,D,B,64,86,House,Mid-Terrace,2019-03-04,E07000110,E14000700,Kent,2019-03-05,marketed sale,61,84,260,91.0,3.3,46,1.2,107.0,54.0,488.0,392.0,145.0,75.0,71.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,4.0,4.0,0.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, mains gas",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"35, York Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2019-03-05 08:07:43,owner-occupied,,,200003715686.0,Address Matched +884457986012013021314171790970602,"22, Hillary Road",Penenden Heath,,ME14 2JR,6275605078,E,B,54,85,House,Semi-Detached,2013-02-12,E07000110,E14000804,Kent,2013-02-13,marketed sale,49,85,277,69.0,5.0,53,1.3,62.0,62.0,794.0,409.0,160.0,79.0,93.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,80.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"22, Hillary Road, Penenden Heath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2013-02-13 14:17:17,owner-occupied,10.0,8.0,200003707016.0,Address Matched +548078920412012080819490594020287,The Coach House,Chart Sutton,,ME17 3ET,2778040868,D,B,55,81,House,Detached,2012-08-08,E07000110,E14000700,Kent,2012-08-08,marketed sale,50,78,239,98.0,8.9,42,3.6,145.0,78.0,1578.0,861.0,167.0,117.0,210.0,dual,N,NODATA!,,,2207.0,100.0,double glazing installed during or after 2002,Normal,0.0,7.0,7.0,15.0,0.0,From main system,Average,Average,"Solid, insulated",,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Air source heat pump, radiators, electric",Average,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in 15% of fixed outlets,Poor,Poor,electricity (not community),0.0,NO DATA!,,,0.0,,natural,"The Coach House, Chart Sutton",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2012-08-08 19:49:05,owner-occupied,26.0,4.0,200003723063.0,Address Matched +196491400022008120116062275798478,"53, Mangravet Avenue",,,ME15 9BE,7742015568,E,C,44,74,House,End-Terrace,2008-12-01,E07000110,E14000700,Kent,2008-12-01,rental (social),38,70,464,210.0,6.4,78,2.9,55.0,37.0,725.0,361.0,172.0,89.0,81.92,Single,Y,NO DATA!,,,2101.0,100.0,double glazing installed before 2002,Normal,1.0,4.0,4.0,50.0,0.0,From main system,Average,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Average,Good,No time or thermostatic control of room temperature,Very Poor,Very Poor,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,0.0,N,natural,"53, Mangravet Avenue",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2008-12-01 16:06:22,rental (social),,,200003713747.0,Address Matched +1526267959602017040610220553030858,"15, Gentian Close",Weavering,,ME14 5UE,670550578,C,B,71,88,House,Mid-Terrace,2017-04-05,E07000110,E14000700,Kent,2017-04-06,marketed sale,71,87,202,67.0,2.1,36,0.7,85.0,43.0,369.0,353.0,92.0,59.0,60.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"15, Gentian Close, Weavering",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2017-04-06 10:22:05,owner-occupied,,,200003689182.0,Address Matched +1623753749922018041610092957378678,"8, Hextable Close",,,ME16 0TN,7584447578,C,B,69,82,House,Detached,2018-04-13,E07000110,E14000804,Kent,2018-04-16,marketed sale,65,78,196,107.0,3.6,35,2.0,68.0,68.0,586.0,532.0,139.0,83.0,104.0,Unknown,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,2.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, insulated (assumed)",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"8, Hextable Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2018-04-16 10:09:29,owner-occupied,,,200003662211.0,Address Matched +1433220024912016041306335699960240,"10, Regent Drive",,,ME15 6DG,2041493478,D,B,59,82,Bungalow,Detached,2016-04-12,E07000110,E14000804,Kent,2016-04-13,marketed sale,53,79,307,124.0,4.0,54,1.7,85.0,50.0,678.0,530.0,172.0,73.0,74.0,Single,Y,NODATA!,,,2107.0,100.0,double glazing installed during or after 2002,More Than Typical,0.0,4.0,4.0,29.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 29% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,2.37,,N,natural,"10, Regent Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2016-04-13 06:33:56,owner-occupied,,,200003676598.0,Address Matched +287384219002015040714422166250698,"19, Chartwell Drive",,,ME16 0WR,20412668,D,B,57,83,House,Semi-Detached,2015-04-01,E07000110,E14000804,Kent,2015-04-07,ECO assessment,48,79,277,94.0,6.4,49,2.2,112.0,75.0,1102.0,610.0,174.0,78.0,131.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,6.0,6.0,50.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"19, Chartwell Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2015-04-07 14:42:21,owner-occupied,,,10022901774.0,Address Matched +1568896559102017082107005350339938,"47, Devon Road",,,ME15 7EW,9150553578,C,B,71,84,House,Semi-Detached,2017-08-17,E07000110,E14000700,Kent,2017-08-21,marketed sale,68,82,198,100.0,3.1,35,1.6,59.0,59.0,511.0,475.0,140.0,82.0,89.0,Unknown,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 270 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"47, Devon Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2017-08-21 07:00:53,owner-occupied,,,200003711482.0,Address Matched +213661490962009011318003836578351,41 Hawley Court,London Road,,ME16 8QJ,5388936568,D,D,57,66,Flat,Semi-Detached,2009-01-13,E07000110,E14000804,Kent,2009-01-13,rental (social),51,60,419,331.0,3.6,70,2.8,39.0,24.0,472.0,421.0,136.0,85.0,51.33,Unknown,Y,7th,Y,8.0,2107.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,40.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Flat, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Poor,Poor,Low energy lighting in 40% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,unheated corridor,2.0,2.35,0.0,N,natural,"41 Hawley Court, London Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2009-01-13 18:00:38,rental (social),,,200003668476.0,Address Matched +629563509962011051613201086368629,"48, Lenside Drive",Bearsted,,ME15 8UE,2891076868,D,C,68,75,House,Mid-Terrace,2011-05-16,E07000110,E14000700,Kent,2011-05-16,rental (social),68,78,219,153.0,2.5,42,1.8,43.0,33.0,357.0,300.0,153.0,90.0,60.26,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,71.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 71% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,2.32,0.0,,natural,"48, Lenside Drive, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1991-1995,2011-05-16 13:20:10,rental (social),7.0,5.0,200003691663.0,Address Matched +235812544552009030316401506010158,"10, Dover Street",,,ME16 8LE,1889468568,D,C,61,69,House,Mid-Terrace,2009-03-03,E07000110,E14000804,Kent,2009-03-03,rental (private),55,64,347,274.0,3.6,58,2.9,49.0,32.0,489.0,410.0,120.0,97.0,62.51,dual,Y,NO DATA!,,,2104.0,80.0,"double glazing, unknown install date",Normal,1.0,3.0,3.0,50.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Partial double glazing,Poor,Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Poor,Poor,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.45,0.0,N,natural,"10, Dover Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2009-03-03 16:40:15,rental (private),,,200003655512.0,Address Matched +1666730215252018092812585895280562,"24, Garden Close",,,ME15 8AX,5297550678,D,C,66,76,House,End-Terrace,2018-09-27,E07000110,E14000700,Kent,2018-09-28,marketed sale,58,69,214,155.0,6.1,38,4.5,157.0,100.0,1003.0,970.0,137.0,84.0,163.0,dual,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,7.0,7.0,43.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, insulated at rafters",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 43% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"24, Garden Close",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2018-09-28 12:58:58,owner-occupied,,,200003684498.0,Address Matched +941416319102013053110565904972778,Flat 4,Villa Apartments,49 Lower Fant Road,ME16 8DP,5167419078,D,C,65,75,Flat,Semi-Detached,2013-05-23,E07000110,E14000804,Kent,2013-05-31,rental (private),69,81,296,177.0,1.6,57,1.0,34.0,19.0,331.0,225.0,57.0,58.0,28.0,Single,Y,1st,Y,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,25.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 25% of fixed outlets,Average,Average,mains gas (not community),0.0,unheated corridor,7.45,,0.0,,natural,"Flat 4, Villa Apartments, 49 Lower Fant Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2013-05-31 10:56:59,rental (private),4.0,1.0,200003658050.0,Address Matched +104636169222018112615311477368228,Apartment 8,"68, College Road",,ME15 6SJ,2731667468,D,C,65,76,Flat,Semi-Detached,2018-11-26,E07000110,E14000804,Kent,2018-11-26,ECO assessment,54,60,346,297.0,3.4,59,2.9,52.0,52.0,355.0,288.0,321.0,140.0,58.0,Unknown,N,4th,Y,,2401.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,100.0,0.0,"Electric immersion, off-peak",Very Poor,Poor,(another dwelling below),NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,Portable electric heaters (assumed),,,"Pitched, insulated (assumed)",Good,Good,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,no corridor,,,,N,natural,"Apartment 8, 68, College Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2018-11-26 15:31:14,owner-occupied,,,10022895283.0,Address Matched +894931730512013030820552299070402,11 Hope Street,,,ME14 2TF,4268095078,E,B,53,83,House,Mid-Terrace,2013-03-07,E07000110,E14000804,Kent,2013-03-08,marketed sale,48,82,276,82.0,5.3,53,1.6,94.0,54.0,909.0,500.0,103.0,65.0,100.0,Single,Y,NODATA!,,,2107.0,85.0,double glazing installed before 2002,Normal,1.0,5.0,5.0,25.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Mostly double glazing,Poor,Poor,"Sandstone, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 25% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,11 Hope Street,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2013-03-08 20:55:22,owner-occupied,12.0,3.0,200003669867.0,Address Matched +258426460062009040120415730898421,"5a, Byron Road",Penenden Heath,,ME14 2HA,2330600668,E,D,54,57,Flat,Detached,2009-04-01,E07000110,E14000804,Kent,2009-04-01,rental (private),48,50,400,380.0,4.5,66,4.2,66.0,33.0,639.0,628.0,79.0,79.0,66.65,Single,Y,Ground,Y,2.0,2107.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,0.0,0.0,From main system,Very Good,Very Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 100mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, TRVs and bypass",Poor,Poor,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.59,0.0,N,natural,"5a, Byron Road, Penenden Heath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2009-04-01 20:41:57,rental (private),,,200003707467.0,Address Matched +804434719222012062118063479198222,"121, Lower Boxley Road",,,ME14 2UT,2749159968,G,C,16,76,House,Mid-Terrace,2012-06-21,E07000110,E14000804,Kent,2012-06-21,rental (social),22,44,640,363.0,7.1,125,3.9,50.0,54.0,1092.0,475.0,407.0,67.0,57.0,Single,N,NODATA!,,,2601.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,0.0,50.0,1.0,"Electric immersion, standard tariff",Very Poor,Very Poor,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, coal",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, electric",Very Poor,Very Poor,No thermostatic control of room temperature,Poor,Poor,Low energy lighting in 50% of fixed outlets,Good,Good,electricity (not community),0.0,NO DATA!,,,0.0,,natural,"121, Lower Boxley Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2012-06-21 18:06:34,rental (social),4.0,2.0,200003703559.0,Address Matched +687e8f7c9ca31c30294ad7ddad7b18bbadbbfaf28d6f471773671cfef8116c1b,21 TENACRE COURT,ASHFORD ROAD,HARRIETSHAM,ME17 1AH,10001459950,D,D,66,66,Flat,Mid-Terrace,2021-08-05,E07000110,E14000700,Kent,2021-08-05,not sale or rental,69,69,237,237.0,2.1,40,2.1,58.0,58.0,500.0,500.0,203.0,203.0,52.0,standard tariff,,3,Y,,,100.0,,,,,,100.0,0.0,Electric instantaneous at point of use,Very Poor,Poor,(other premises below),,,Fully double glazed,Good,Good,Average thermal transmittance 0.47 W/m-¦K,Good,Good,,,,Average thermal transmittance 0.32 W/m-¦K,Average,Average,"Boiler and radiators, electric",Very Poor,Poor,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",0.0,,,2.47,,,,"21 TENACRE COURT, ASHFORD ROAD, HARRIETSHAM",Maidstone,Faversham and Mid Kent,MAIDSTONE,2020,2021-08-05 14:06:43,Owner-occupied,4.0,,10095449486.0,Energy Assessor +1576428299222017092116111254798573,"3, Tovil Green Lane",Tovil,,ME15 6AN,7511904578,B,B,89,91,House,Mid-Terrace,2017-09-21,E07000110,E14000804,Kent,2017-09-21,new dwelling,92,94,49,35.0,0.6,9,0.4,50.0,50.0,184.0,184.0,84.0,55.0,68.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Very Good,Good,Average thermal transmittance 0.12 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.21 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"3, Tovil Green Lane, Tovil",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2017-09-21 16:11:12,unknown,12.0,12.0,10093302860.0,Address Matched +1117570935352014033117270896740625,"26, Robins Close",Lenham,,ME17 2LD,6541561278,D,B,65,82,House,Semi-Detached,2014-03-31,E07000110,E14000700,Kent,2014-03-31,assessment for green deal,65,82,183,83.0,3.8,35,1.8,122.0,61.0,666.0,569.0,149.0,83.0,110.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,2.0,6.0,4.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"26, Robins Close, Lenham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2014-03-31 17:27:08,owner-occupied,14.0,0.0,200003707233.0,Address Matched +1607368642832018021221570278978007,"46, Mill Bank",Headcorn,,TN27 9RD,4798036578,B,B,83,86,House,Semi-Detached,2018-02-12,E07000110,E14000700,Kent,2018-02-12,marketed sale,75,79,93,73.0,2.5,19,2.0,102.0,76.0,846.0,766.0,93.0,93.0,132.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,3.0,6.0,6.0,67.0,1.0,"From main system, plus solar",Very Good,Very Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Poor,Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 67% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,Y,natural,"46, Mill Bank, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,England and Wales: before 1900,2018-02-12 21:57:02,owner-occupied,,,200003699942.0,Address Matched +725577049402011112015503192399718,"23, Thatch Barn Road",Headcorn,,TN27 9UB,4471943968,C,C,72,73,Flat,Semi-Detached,2011-11-19,E07000110,E14000700,Kent,2011-11-20,rental (private),75,75,173,167.0,2.0,33,2.0,53.0,36.0,367.0,371.0,75.0,75.0,61.8,Single,Y,Ground,Y,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,50.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,no corridor,,2.225,0.0,,natural,"23, Thatch Barn Road, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,England and Wales: 1967-1975,2011-11-20 15:50:31,rental (private),6.0,3.0,200003726910.0,Address Matched +1384800721912015111214542895959745,Flat 102,Miller House,43-51 Lower Stone Street,ME15 6GB,7593150478,C,C,80,80,Flat,NO DATA!,2015-11-12,E07000110,E14000804,Kent,2015-11-12,none of the above,83,83,131,131.0,1.2,23,1.2,36.0,36.0,247.0,247.0,70.0,70.0,52.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Good,Good,Average thermal transmittance 0.89 W/m-¦K,Average,Average,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Flat 102, Miller House, 43-51 Lower Stone Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2015-11-12 14:54:28,unknown,4.0,4.0,10091196199.0,Address Matched +1534072249252020070512005420000051,Petty Platt,Vicarage Road,Yalding,ME18 6DS,146901578,C,B,76,84,House,Detached,2020-07-03,E07000110,E14000804,Kent,2020-07-05,marketed sale,75,83,132,88.0,4.5,21,2.9,119.0,119.0,890.0,768.0,95.0,95.0,212.0,Unknown,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,8.0,8.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, partial insulation (assumed)",Average,Average,"Room heaters, wood logs",,,"Roof room(s), insulated (assumed)",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"Petty Platt, Vicarage Road, Yalding",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1976-1982,2020-07-05 12:00:54,owner-occupied,,,200003661544.0,Address Matched +1262699789812015012920472298250237,The Lodge,Headcorn Road,Lenham,ME17 2HS,2703981378,E,A,51,94,House,Detached,2015-01-29,E07000110,E14000700,Kent,2015-01-29,marketed sale,43,84,227,8.0,7.3,58,1.7,107.0,77.0,1144.0,735.0,222.0,103.0,126.0,dual,N,NODATA!,,,2107.0,100.0,double glazing installed before 2002,Normal,1.0,5.0,5.0,62.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, oil",Average,Average,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 62% of fixed outlets,Good,Good,oil (not community),0.0,NO DATA!,,,,N,natural,"The Lodge, Headcorn Road, Lenham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2015-01-29 20:47:22,owner-occupied,,,10014307993.0,Address Matched +158857240832008100813275841068496,"11, Gladstone Road",Penenden Heath,,ME14 2AU,4661402568,D,C,66,71,House,Mid-Terrace,2008-10-08,E07000110,E14000804,Kent,2008-10-08,marketed sale,60,66,340,288.0,2.8,57,2.4,33.0,22.0,351.0,313.0,93.0,81.0,49.36,Single,Y,NO DATA!,,,2104.0,95.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,50.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Partial double glazing,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Poor,Poor,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,6.86,0.0,N,natural,"11, Gladstone Road, Penenden Heath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2008-10-08 13:27:58,owner-occupied,,,200003701706.0,Address Matched +1056120339022013120520332747248547,"78, Plains Avenue",,,ME15 7AU,4497337178,E,B,49,82,House,Semi-Detached,2013-12-04,E07000110,E14000700,Kent,2013-12-05,none of the above,52,86,318,92.0,4.3,53,1.1,96.0,48.0,811.0,500.0,203.0,73.0,82.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,0.0,1.0,"From main system, no cylinder thermostat",Average,Average,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, wood logs",,,"Pitched, 75mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"78, Plains Avenue",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2013-12-05 20:33:27,owner-occupied,9.0,0.0,200003714188.0,Address Matched +1813430902222020072715241721538770,"22, Braganza Drive",Staplehurst,,TN12 0GS,7260021778,B,A,84,97,House,Mid-Terrace,2020-07-27,E07000110,E14000804,Kent,2020-07-27,new dwelling,87,99,86,-12.0,1.0,15,-0.1,58.0,58.0,191.0,191.0,69.0,41.0,70.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.27 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"22, Braganza Drive, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,NO DATA!,2020-07-27 15:24:17,unknown,18.0,18.0,10094442158.0,Address Matched +467060469942010040911091775400818,"81, Willington Street",,,ME15 8JU,3963764768,D,C,66,77,House,Mid-Terrace,2010-04-09,E07000110,E14000700,Kent,2010-04-09,marketed sale,65,76,248,169.0,3.3,41,2.3,75.0,42.0,465.0,366.0,168.0,110.0,81.08,Unknown,Y,NO DATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,20.0,0.0,"From main system, no cylinder thermostat",Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, partial insulation (assumed)",Average,Average,"Room heaters, electric",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 20% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.36,0.0,N,natural,"81, Willington Street",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1976-1982,2010-04-09 11:09:17,owner-occupied,,,200003685803.0,Address Matched +68a8389dfebec1f09b0511a85093e271a05ccff5de63a23efb7aaf39c57de4e9,FLAT 2,BURDOCK HOUSE,NORTHUMBERLAND ROAD,ME15 7TX,10001693690,E,C,52,72,Flat,Semi-Detached,2021-06-29,E07000110,E14000700,Kent,2021-07-01,ECO assessment,50,76,442,209.0,3.1,77,1.5,75.0,38.0,612.0,315.0,85.0,71.0,40.0,Single,Y,00,N,,,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,0.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Average,Average,"Room heaters, electric",,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,unheated corridor,8.5,2.79,0.0,N,natural,"FLAT 2, BURDOCK HOUSE, NORTHUMBERLAND ROAD",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2021-07-01 18:14:51,Rented (social),8.0,,200003714118.0,Energy Assessor +1261248279262015012518164341978885,18 Newlyn Court,Tufton Street,,ME14 1EZ,8478771378,C,C,72,79,Flat,Mid-Terrace,2015-01-23,E07000110,E14000804,Kent,2015-01-25,rental (social),57,82,280,118.0,3.5,47,1.5,57.0,52.0,357.0,263.0,171.0,117.0,73.0,dual,Y,2nd,N,,2401.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,100.0,0.0,"Electric immersion, off-peak",Average,Poor,(another dwelling below),NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,"Pitched, 100 mm loft insulation",Average,Average,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,no corridor,,,,N,natural,"18 Newlyn Court, Tufton Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1991-1995,2015-01-25 18:16:43,rental (social),,,200003688139.0,Address Matched +233975143412019061219365294910759,"13, Twyford Court",,,ME14 5RX,7984348568,C,C,70,76,Maisonette,Enclosed End-Terrace,2019-06-12,E07000110,E14000804,Kent,2019-06-12,marketed sale,68,76,218,161.0,2.4,38,1.8,71.0,49.0,409.0,307.0,91.0,91.0,63.0,Single,Y,1st,N,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,3.0,3.0,57.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 57% of fixed outlets,Good,Good,mains gas (not community),0.0,no corridor,,,,N,natural,"13, Twyford Court",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2019-06-12 19:36:52,owner-occupied,,,200003727473.0,Address Matched +276251390212019102420242993219264,"81b, Gladstone Road",Penenden Heath,,ME14 2AX,2468031668,C,B,73,86,House,Semi-Detached,2019-10-23,E07000110,E14000804,Kent,2019-10-24,marketed sale,71,85,182,79.0,2.4,32,1.1,58.0,58.0,432.0,401.0,82.0,53.0,76.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"81b, Gladstone Road, Penenden Heath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2019-10-24 20:24:29,owner-occupied,,,200003703584.0,Address Matched +68bc2e64d6a9a28adb5e962c700791b8459aa097668642befb2f0c53a6dd3d72,"FLAT 9, HARRIET HOUSE, WEST STREET",HARRIETSHAM,,ME17 1JZ,10001665524,D,C,62,74,Flat,End-Terrace,2021-07-13,E07000110,E14000700,Kent,2021-07-13,rental,56,74,372,217.0,2.8,66,1.6,39.0,39.0,446.0,244.0,111.0,111.0,42.0,Single,Y,01,Y,,,100.0,"double glazing, unknown install date",Less Than Typical,0.0,2.0,2.0,100.0,0.0,Community scheme,Good,Good,(another dwelling below),,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 200 mm loft insulation",Good,Good,Community scheme,Good,Good,"Flat rate charging, programmer and TRVs",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (community),0.0,heated corridor,,2.77,0.0,N,natural,"FLAT 9, HARRIET HOUSE, WEST STREET, HARRIETSHAM",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2021-07-13 22:22:32,Rented (private),3.0,,10095449914.0,Address Matched +341477247652009080911081908010665,"27, Chancery Lane",,,ME15 6EG,6516785668,E,C,47,73,House,End-Terrace,2009-08-07,E07000110,E14000804,Kent,2009-08-09,rental (private),39,67,416,210.0,6.4,76,3.2,51.0,41.0,871.0,449.0,111.0,94.0,82.7,Single,Y,NO DATA!,,,2107.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,77.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, coal",,,"Pitched, no insulation",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Poor,Poor,Low energy lighting in 77% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.47,0.0,N,natural,"27, Chancery Lane",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2009-08-09 11:08:19,rental (private),,,200003696833.0,Address Matched +1067846169062014010823022278888454,"11, Shaftesbury Drive",,,ME16 0JS,5755618178,G,D,19,62,Bungalow,Detached,2014-01-08,E07000110,E14000804,Kent,2014-01-08,marketed sale,19,55,586,229.0,10.0,113,4.1,83.0,54.0,1694.0,904.0,360.0,162.0,91.0,Single,Y,NODATA!,,,2102.0,0.0,single glazing,Normal,2.0,6.0,4.0,44.0,0.0,"From main system, no cylinder thermostat",Poor,Poor,"Solid, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,Low energy lighting in 44% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"11, Shaftesbury Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2014-01-08 23:02:22,owner-occupied,9.0,4.0,200003726299.0,Address Matched +507708833012010070112045795200579,Flat 5,Elmsdale House,10 Buckland Hill,ME16 0SB,5939357768,D,C,65,73,Flat,NO DATA!,2010-06-29,E07000110,E14000804,Kent,2010-07-01,marketed sale,60,68,331,261.0,2.9,55,2.3,50.0,27.0,434.0,366.0,116.0,99.0,52.73,Unknown,Y,3rd,Y,4.0,2104.0,0.0,single glazing,Normal,0.0,3.0,3.0,14.0,0.0,From main system,Good,Good,(other premises below),,,Single glazed,Very Poor,Very Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 14% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.4,0.0,N,natural,"Flat 5, Elmsdale House, 10 Buckland Hill",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2010-07-01 12:04:57,owner-occupied,,,200003728334.0,Address Matched +320606959212009070315323903010665,"12, Pinewood Drive",,,ME5 8XU,6565934668,D,C,67,78,House,End-Terrace,2009-07-03,E07000110,E14000700,Kent,2009-07-03,rental (private),62,75,366,241.0,2.4,61,1.6,37.0,19.0,275.0,246.0,157.0,78.0,39.16,Single,Y,NO DATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,2.0,2.0,0.0,0.0,"From main system, no cylinderstat",Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Poor,Poor,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,0.0,N,natural,"12, Pinewood Drive",Maidstone,Faversham and Mid Kent,CHATHAM,England and Wales: 1983-1990,2009-07-03 15:32:39,rental (private),,,200003673554.0,Address Matched +598365790012017051212172493930884,"15, Cornwallis Avenue",Linton,,ME17 4BW,8486034868,C,C,74,76,Flat,Semi-Detached,2017-05-10,E07000110,E14000804,Kent,2017-05-12,rental (social),74,76,176,158.0,2.2,31,1.9,85.0,51.0,361.0,342.0,101.0,101.0,70.0,Single,Y,1st,Y,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,33.0,0.0,From main system,Good,Good,(another dwelling below),NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, limited insulation (assumed)",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 33% of fixed outlets,Average,Average,mains gas (not community),0.0,no corridor,,,,N,natural,"15, Cornwallis Avenue, Linton",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1976-1982,2017-05-12 12:17:24,rental (social),,,200003662989.0,Address Matched +800020860852018070810264592080393,Lowenva,The Street,Ulcombe,ME17 1DP,3359029968,F,E,35,51,House,Detached,2018-07-06,E07000110,E14000700,Kent,2018-07-08,marketed sale,16,26,631,488.0,17.0,107,13.0,127.0,127.0,2621.0,2250.0,250.0,120.0,160.0,dual,N,NODATA!,,,2706.0,100.0,double glazing installed during or after 2002,Normal,1.0,7.0,7.0,71.0,0.0,"Electric immersion, off-peak",Average,Poor,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,Portable electric heaters (assumed),,,"Pitched, limited insulation (assumed)",Very Poor,Very Poor,Electric underfloor heating,Average,Very Poor,Time and temperature zone control,Very Good,Very Good,Low energy lighting in 71% of fixed outlets,Very Good,Very Good,electricity (not community),0.0,NO DATA!,,,,N,natural,"Lowenva, The Street, Ulcombe",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2018-07-08 10:26:45,owner-occupied,,,200003701199.0,Address Matched +688500400732013102117205505268993,"17, The Farrows",,,ME15 9ZJ,345980968,B,B,83,83,Flat,Detached,2013-10-21,E07000110,E14000700,Kent,2013-10-21,new dwelling,87,87,86,86.0,1.1,16,1.1,50.0,50.0,231.0,231.0,80.0,80.0,65.0,standard tariff,,top floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.31 W/m?K,Good,Good,,,,Average thermal transmittance 0.11 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"17, The Farrows",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2013-10-21 17:20:55,NO DATA!,8.0,6.0,10014312551.0,Address Matched +1727082661352020011012155329900969,"11, Boyson Drive",Otham,,ME15 8YH,9983194678,B,A,84,97,House,Semi-Detached,2020-01-10,E07000110,E14000700,Kent,2020-01-10,new dwelling,87,100,85,-11.0,1.1,15,-0.1,60.0,60.0,193.0,193.0,70.0,42.0,70.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.10 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.19 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"11, Boyson Drive, Otham",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2020-01-10 12:15:53,unknown,10.0,10.0,10094440478.0,Address Matched +1680745259442019021413453564119648,24 Saturn Road,Coxheath,,ME17 4FX,3402751678,B,A,84,95,House,Semi-Detached,2019-02-14,E07000110,E14000804,Kent,2019-02-14,new dwelling,86,96,87,11.0,1.4,15,0.2,68.0,68.0,232.0,232.0,75.0,44.0,91.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.10 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"24 Saturn Road, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2019-02-14 13:45:35,unknown,20.0,20.0,10094440282.0,Address Matched +6904c83870dd5d9c5e68c4eb41a1054fb89f887d0ea25a486f79b887b6687fbd,76 Florence Road,,,ME16 8EN,10001599959,D,B,62,88,House,End-Terrace,2021-09-08,E07000110,E14000804,Kent,2021-09-08,marketed sale,55,87,280,60.0,3.6,49,0.8,59.0,59.0,646.0,346.0,94.0,64.0,74.0,Unknown,Y,,,,,100.0,double glazing installed during or after 2002,Normal,1.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.38,0.0,N,natural,76 Florence Road,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2021-09-08 20:54:44,Owner-occupied,9.0,,200003667731.0,Energy Assessor +600158959942015061622042788459958,1 The Old Corn Stores,The Street,Bearsted,ME14 4EW,1971054868,C,C,80,80,Flat,Semi-Detached,2015-06-15,E07000110,E14000700,Kent,2015-06-16,marketed sale,84,84,126,122.0,1.1,22,1.0,49.0,37.0,215.0,216.0,74.0,74.0,48.0,Single,Y,Ground,N,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,67.0,0.0,From main system,Good,Good,"Solid, limited insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Solid brick, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 67% of fixed outlets,Good,Good,mains gas (not community),0.0,no corridor,,,,N,natural,"1 The Old Corn Stores, The Street, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1996-2002,2015-06-16 22:04:27,owner-occupied,,,200003694614.0,Address Matched +187899734352008111008165500089458,24 Roland House,Harris Place,Tovil,ME15 6BP,4869404568,C,C,70,80,Flat,Enclosed End-Terrace,2008-11-09,E07000110,E14000804,Kent,2008-11-10,rental (private),75,74,228,235.0,1.9,34,1.9,38.0,29.0,239.0,135.0,109.0,109.0,54.06,Single,N,2nd,Y,3.0,2603.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,70.0,0.0,"Electric immersion, standard tariff",Poor,Poor,(other premises below),,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Room heaters, electric",Very Poor,Poor,Programmer and appliance thermostats,Good,Good,Low energy lighting in 70% of fixed outlets,Very Good,Very Good,electricity - this is for backwards compatibility only and should not be used,0.0,heated corridor,,2.36,0.0,N,natural,"24 Roland House, Harris Place, Tovil",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2008-11-10 08:16:55,rental (private),,,10022901592.0,Address Matched +1341909197552015071010020894050338,1b Brunswick Street East,,,ME15 7UX,3852747378,C,A,77,92,House,Detached,2015-07-09,E07000110,E14000804,Kent,2015-07-10,new dwelling,79,94,155,30.0,1.5,27,0.3,36.0,36.0,285.0,285.0,87.0,55.0,55.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.17 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.31 W/m-¦K,Good,Good,,,,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,1b Brunswick Street East,Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2015-07-10 10:02:08,unknown,15.0,15.0,10091194727.0,Address Matched +616496614932011041300031557968301,"56, Hereford Road",,,ME15 7NB,1107375868,D,D,56,68,House,Mid-Terrace,2011-04-12,E07000110,E14000700,Kent,2011-04-13,marketed sale,48,63,364,257.0,5.1,61,3.6,50.0,50.0,781.0,576.0,173.0,123.0,83.3,Unknown,Y,NO DATA!,,,2104.0,90.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,89.0,0.0,From main system,Average,Good,"Solid, no insulation (assumed)",,,Mostly double glazing,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, mains gas",,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Average,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 89% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.43,0.0,N,natural,"56, Hereford Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2011-04-13 00:03:15,owner-occupied,,,200003712369.0,Address Matched +1481306449262016092108080807608256,"13, Grasslands",Langley,,ME17 3JJ,5046437478,D,B,57,83,House,Semi-Detached,2016-09-20,E07000110,E14000700,Kent,2016-09-21,ECO assessment,49,80,313,107.0,5.3,55,1.8,123.0,61.0,964.0,558.0,97.0,62.0,95.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"System built, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Roof room(s), no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,2.35,,N,natural,"13, Grasslands, Langley",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2016-09-21 08:08:08,owner-occupied,,,200003697790.0,Address Matched +263910274132009041218432126068101,19 Hawley Court,London Road,,ME16 8QJ,7136140668,C,B,71,84,Flat,Semi-Detached,2009-04-08,E07000110,E14000804,Kent,2009-04-12,rental (social),68,82,280,157.0,2.2,47,1.3,41.0,23.0,282.0,192.0,126.0,83.0,47.99,Unknown,Y,2nd,N,8.0,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,20.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 20% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,unheated corridor,5.0,2.39,0.0,N,natural,"19 Hawley Court, London Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2009-04-12 18:43:21,rental (social),,,200003668451.0,Address Matched +1678147635352019100912315893089966,Flat 507,Kent House,Romney Place,ME15 6LA,9685531678,D,D,64,64,Flat,Detached,2018-11-09,E07000110,E14000804,Kent,2019-10-09,non marketed sale,68,68,254,254.0,2.0,43,2.0,39.0,39.0,395.0,395.0,257.0,257.0,48.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,"Electric immersion, standard tariff",Very Poor,Poor,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.34 W/m-¦K,Good,Good,,,,(other premises above),,,Electric underfloor heating,Very Poor,Poor,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"Flat 507, Kent House, Romney Place",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2019-10-09 12:31:58,unknown,21.0,21.0,, +478661099262018042315380315578548,2 The Terrace,Smarden Road,Headcorn,TN27 9TA,4131945768,D,B,68,88,House,Mid-Terrace,2018-04-23,E07000110,E14000700,Kent,2018-04-23,RHI application,71,89,201,56.0,2.1,34,0.6,72.0,49.0,381.0,309.0,211.0,132.0,63.0,Single,N,NODATA!,,,2206.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,54.0,0.0,From main system,Poor,Good,"To external air, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Roof room(s), ceiling insulated",Good,Good,"Air source heat pump, radiators, electric",Poor,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 54% of fixed outlets,Good,Good,electricity (not community),0.0,NO DATA!,,,,N,natural,"2 The Terrace, Smarden Road, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,England and Wales: 2003-2006,2018-04-23 15:38:03,rental (private),,,10014309167.0,Address Matched +351977358132009082512501042268906,5 Grangehouse,Fernhill Road,,ME16 9BN,5612956668,B,B,83,85,Flat,Semi-Detached,2009-08-25,E07000110,E14000804,Kent,2009-08-25,rental (social),83,84,133,122.0,1.4,22,1.3,66.0,33.0,206.0,210.0,82.0,82.0,62.76,Single,Y,1st,N,4.0,2106.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,0.0,0.0,From main system,Very Good,Very Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,unheated corridor,1.62,2.32,0.0,N,natural,"5 Grangehouse, Fernhill Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1976-1982,2009-08-25 12:50:10,rental (social),,,200003722457.0,Address Matched +692bf832300d95626b6a34df5e2c07b41434d0c47b75a89fed103a99a7472dc6,18 Northdown Close,Penenden Heath,,ME14 2ER,10001424279,E,C,52,80,House,Semi-Detached,2021-09-24,E07000110,E14000804,Kent,2021-09-24,marketed sale,44,75,332,125.0,5.8,59,2.2,113.0,77.0,884.0,561.0,169.0,71.0,98.0,Single,Y,,,,,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,54.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 54% of fixed outlets,Good,Good,mains gas (not community),0.0,,,2.42,0.0,N,natural,"18 Northdown Close, Penenden Heath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2021-09-24 14:29:07,Owner-occupied,13.0,,200003706620.0,Energy Assessor +655464759642011101417561486899448,Flat 25 Tennyson Lodge,James Whatman Way,,ME14 1FR,8683358868,C,B,80,81,Flat,Mid-Terrace,2011-10-14,E07000110,E14000804,Kent,2011-10-14,new dwelling,91,91,103,99.0,0.6,14,0.6,37.0,28.0,166.0,166.0,93.0,93.0,46.47,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,4.0,,"Community scheme, no cylinder thermostat",Good,Very Good,(other premises below),,,Fully double glazed,Good,Good,Average thermal transmittance 0.28 W/m?K,Very Good,Very Good,,,,(other premises above),,,Community scheme,Good,Very Good,"Flat rate charging, programmer and TRVs",Average,Average,Low energy lighting in 67% of fixed outlets,Good,Good,NO DATA!,0.0,NO DATA!,,2.4,,,NO DATA!,"Flat 25 Tennyson Lodge, James Whatman Way",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2011-10-14 17:56:14,,6.0,4.0,10014312747.0,Address Matched +69152e129e7135c75c4913289d35001f4f6ea87e9dc9e16b8ccf4098c5813900,72 Gilbert Way,,,ME17 3TT,10001582962,B,A,83,95,House,Semi-Detached,2021-09-20,E07000110,E14000700,Kent,2021-09-20,new dwelling,86,98,91,3.0,1.3,16,0.1,68.0,68.0,218.0,218.0,68.0,41.0,78.0,standard tariff,,,N,,,100.0,,,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.33,,,,72 Gilbert Way,Maidstone,Faversham and Mid Kent,MAIDSTONE,2017,2021-09-20 14:31:18,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,7.0,,10094441907.0,Energy Assessor +1811034402102020071722111275109258,"43, Bedgebury Close",,,ME14 5QZ,160501778,C,C,77,79,Flat,Mid-Terrace,2020-07-15,E07000110,E14000804,Kent,2020-07-17,marketed sale,80,81,133,125.0,1.6,23,1.5,115.0,67.0,267.0,271.0,84.0,84.0,69.0,dual,Y,2nd,Y,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,29.0,0.0,From main system,Good,Good,(another dwelling below),NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 29% of fixed outlets,Average,Average,mains gas (not community),0.0,no corridor,,,,N,natural,"43, Bedgebury Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1976-1982,2020-07-17 22:11:12,owner-occupied,,,200003672042.0,Address Matched +776647972812012041714252695920398,"30, Leonard Gould Way",Loose,,ME15 9FX,3894257968,B,B,82,82,House,Semi-Detached,2012-04-17,E07000110,E14000700,Kent,2012-04-17,new dwelling,84,84,87,87.0,2.1,16,2.1,77.0,77.0,348.0,348.0,100.0,100.0,131.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,10.0,,From main system,Good,Good,Average thermal transmittance 0.12 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m?K,Very Good,Very Good,"Room heaters, electric",,,Average thermal transmittance 0.12 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in 77% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.45,,,NO DATA!,"30, Leonard Gould Way, Loose",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2012-04-17 14:25:26,,13.0,10.0,10014311147.0,Address Matched +1098216429702014090417311727040848,"34, Fieldfare Drive",,,ME15 6XL,5731620278,B,A,83,95,House,Semi-Detached,2014-09-04,E07000110,E14000804,Kent,2014-09-04,new dwelling,86,97,92,5.0,1.3,16,0.1,51.0,51.0,244.0,244.0,81.0,48.0,80.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.10 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"34, Fieldfare Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2014-09-04 17:31:17,owner-occupied,11.0,11.0,10014315290.0,Address Matched +686474802652012121416574797929095,"24, Hawkes Way",,,ME15 9ZL,587270968,B,B,85,85,Flat,Detached,2012-12-14,E07000110,E14000700,Kent,2012-12-14,new dwelling,89,89,75,72.0,0.9,14,0.9,50.0,40.0,214.0,215.0,79.0,79.0,66.0,standard tariff,,ground floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.32 W/m?K,Good,Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"24, Hawkes Way",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2012-12-14 16:57:47,NO DATA!,8.0,6.0,10014312510.0,Address Matched +1765571499132019111320452874978298,"8, Sunburst Close",Marden,,TN12 9TS,9814277678,D,B,65,86,House,End-Terrace,2019-11-13,E07000110,E14000804,Kent,2019-11-13,rental (private),62,84,243,82.0,3.0,43,1.1,104.0,55.0,445.0,378.0,146.0,67.0,70.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,13.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 13% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"8, Sunburst Close, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1991-1995,2019-11-13 20:45:28,rental (private),,,200003711250.0,Address Matched +1446582889102016052409542243462348,"59, High Street",Lenham,,ME17 2QB,197984478,D,B,56,83,House,End-Terrace,2016-05-24,E07000110,E14000700,Kent,2016-05-24,marketed sale,48,80,346,119.0,4.6,61,1.6,50.0,50.0,810.0,518.0,175.0,73.0,75.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,4.0,4.0,100.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,2.4,,N,natural,"59, High Street, Lenham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2016-05-24 09:54:22,owner-occupied,,,200003711185.0,Address Matched +1156160919752014061217284293940127,"31, Button Lane",Bearsted,,ME15 8DW,1787934278,D,C,63,75,House,Detached,2014-06-12,E07000110,E14000700,Kent,2014-06-12,marketed sale,58,71,197,128.0,5.0,38,3.3,86.0,66.0,886.0,820.0,140.0,89.0,131.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,8.0,7.0,69.0,1.0,From main system,Good,Good,"Suspended, limited insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, mains gas",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 69% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"31, Button Lane, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1996-2002,2014-06-12 17:28:42,owner-occupied,16.0,11.0,200003691683.0,Address Matched +796812379062012060122310378998452,"33, Valley Drive",Loose,,ME15 9TL,5792798968,D,B,59,82,Bungalow,Detached,2012-06-01,E07000110,E14000804,Kent,2012-06-01,marketed sale,53,80,226,87.0,5.9,44,2.3,74.0,74.0,883.0,565.0,188.0,70.0,135.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,1.0,5.0,5.0,83.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 83% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"33, Valley Drive, Loose",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2012-06-01 22:31:03,owner-occupied,12.0,10.0,200003664045.0,Address Matched +907772709062013040320285076978567,"177, Merton Road",Bearsted,,ME15 8LP,6784086078,D,A,66,92,House,Mid-Terrace,2013-04-03,E07000110,E14000700,Kent,2013-04-03,marketed sale,66,94,218,19.0,2.5,42,0.3,69.0,37.0,353.0,277.0,175.0,63.0,61.0,Single,Y,NODATA!,,,2107.0,100.0,double glazing installed before 2002,Normal,4.0,3.0,3.0,12.0,0.0,"From main system, no cylinder thermostat",Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, partial insulation (assumed)",Average,Average,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 12% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"177, Merton Road, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1976-1982,2013-04-03 20:28:50,owner-occupied,8.0,1.0,200003686080.0,Address Matched +757146779812017101619031290939198,"4, Burns Road",,,ME16 8NU,1894906968,D,B,67,85,House,Semi-Detached,2017-10-16,E07000110,E14000804,Kent,2017-10-16,marketed sale,62,83,209,79.0,3.8,38,1.5,101.0,65.0,652.0,463.0,108.0,72.0,101.0,Unknown,Y,NODATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,1.0,5.0,5.0,43.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Poor,Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 43% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"4, Burns Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2017-10-16 19:03:12,owner-occupied,,,200003656065.0,Address Matched +1606508129802018020811291958680588,"54, Edmett Way",,,ME17 3GD,1869326578,B,A,85,94,House,Semi-Detached,2018-02-08,E07000110,E14000700,Kent,2018-02-08,new dwelling,86,95,81,20.0,1.7,14,0.4,79.0,79.0,258.0,259.0,101.0,55.0,118.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.23 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.19 W/m-¦K,Good,Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"54, Edmett Way",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2018-02-08 11:29:19,unknown,7.0,7.0,10093304041.0,Address Matched +775898604232012041715154312968003,"17, Shepway Court",Norfolk Road,,ME15 7JF,302057968,D,B,65,83,Bungalow,Semi-Detached,2012-04-17,E07000110,E14000700,Kent,2012-04-17,rental (social),66,85,204,76.0,2.8,39,1.1,40.0,40.0,495.0,398.0,102.0,68.0,72.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"17, Shepway Court, Norfolk Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2012-04-17 15:15:43,rental (social),8.0,8.0,200003713195.0,Address Matched +1707982429222019032210240823798691,"114, Loose Road",,,ME15 7UB,9217253678,C,B,70,84,Bungalow,Semi-Detached,2019-03-21,E07000110,E14000804,Kent,2019-03-22,rental (private),66,81,195,98.0,3.8,34,1.9,74.0,74.0,660.0,540.0,86.0,55.0,110.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"114, Loose Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2019-03-22 10:24:08,rental (private),,,200003685880.0,Address Matched +238651739962012101622075318828392,"17, Cornwall Close",,,ME15 8HS,9148318568,D,C,65,79,House,Mid-Terrace,2012-10-12,E07000110,E14000700,Kent,2012-10-16,rental (social),64,78,204,109.0,3.2,39,1.7,74.0,45.0,516.0,500.0,105.0,70.0,81.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,More Than Typical,0.0,4.0,4.0,36.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"System built, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 36% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"17, Cornwall Close",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2012-10-16 22:07:53,rental (social),11.0,4.0,200003684921.0,Address Matched +69792395a6224b905b1c51620675ceec058f972b88a8c780575027ddd4838b9f,71 Lyngs Close,Yalding,,ME18 6JT,10001581573,C,B,70,84,House,Semi-Detached,2021-09-06,E07000110,E14000804,Kent,2021-09-06,marketed sale,68,82,202,101.0,2.9,36,1.5,99.0,68.0,479.0,450.0,94.0,65.0,83.0,Single,Y,,,,,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,56.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 56% of fixed outlets,Good,Good,mains gas (not community),0.0,,,2.27,0.0,N,natural,"71 Lyngs Close, Yalding",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2021-09-06 18:10:41,Owner-occupied,9.0,,200003660422.0,Energy Assessor +781426089022012050221563587398212,"8, Walnut Tree Avenue",Loose,,ME15 9RN,1860887968,D,B,64,88,House,Semi-Detached,2012-05-01,E07000110,E14000804,Kent,2012-05-02,marketed sale,62,89,220,50.0,3.1,42,0.7,48.0,48.0,518.0,327.0,90.0,56.0,72.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,82.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Sandstone, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 82% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"8, Walnut Tree Avenue, Loose",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2012-05-02 21:56:35,owner-occupied,11.0,9.0,200003675897.0,Address Matched +1598260049062018010212332135328378,"31, Chartwell Drive",,,ME16 0WR,7345465578,D,B,68,82,House,Mid-Terrace,2018-01-02,E07000110,E14000804,Kent,2018-01-02,marketed sale,63,78,203,107.0,3.6,36,1.9,73.0,73.0,582.0,527.0,140.0,74.0,101.0,Single,Y,NODATA!,,,,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,,0.0,From main system,Good,Good,"Suspended, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 88% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"31, Chartwell Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,,2018-01-02 12:33:21,owner-occupied,,,10022901768.0,Address Matched +639755449002011060918322186790718,"5, Bellgrove Court",,,ME5 9PQ,1023547868,E,D,54,64,House,Detached,2011-06-09,E07000110,E14000700,Kent,2011-06-09,marketed sale,51,63,277,207.0,5.6,53,4.1,77.0,51.0,857.0,689.0,174.0,125.0,105.1,Single,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,6.0,6.0,50.0,0.0,From main system,Average,Average,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Average,Programmer and room thermostat,Average,Average,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,2.3,0.0,,natural,"5, Bellgrove Court",Maidstone,Faversham and Mid Kent,CHATHAM,England and Wales: 1983-1990,2011-06-09 18:32:21,owner-occupied,10.0,5.0,200003708154.0,Address Matched +405549039902017022813410771032588,"11, Norway Terrace",Invicta Park,,ME14 2PH,5998430768,C,B,69,87,House,Mid-Terrace,2017-02-28,E07000110,E14000804,Kent,2017-02-28,rental (social),66,86,220,71.0,2.8,39,0.9,49.0,49.0,507.0,379.0,100.0,66.0,72.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,,,,"Flat, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"11, Norway Terrace, Invicta Park",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2017-02-28 13:41:07,rental (social),,,200003723997.0,Address Matched +1238717819902014112007354733049518,"20, Raynham Villas",Hunton Road,,TN12 9SZ,1973810378,D,B,65,81,House,Mid-Terrace,2014-11-19,E07000110,E14000804,Kent,2014-11-20,assessment for green deal,67,83,194,93.0,3.1,34,1.4,91.0,55.0,492.0,445.0,272.0,181.0,89.0,Single,N,NODATA!,,,2206.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,33.0,0.0,From main system,Poor,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Average,Average,"Air source heat pump, radiators, electric",Average,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 33% of fixed outlets,Average,Average,electricity (not community),0.0,NO DATA!,,,0.0,,natural,"20, Raynham Villas, Hunton Road",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1983-1990,2014-11-20 07:35:47,rental (social),12.0,4.0,200003723881.0,Address Matched +1392981109022015120418495031048545,"35, Timbertops",,,ME5 8XQ,4326011478,D,B,67,88,House,Semi-Detached,2015-12-04,E07000110,E14000700,Kent,2015-12-04,non marketed sale,64,87,229,68.0,3.1,40,1.0,84.0,51.0,471.0,389.0,198.0,73.0,77.0,Single,Y,NODATA!,,,2107.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,36.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 36% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"35, Timbertops",Maidstone,Faversham and Mid Kent,CHATHAM,England and Wales: 1976-1982,2015-12-04 18:49:50,owner-occupied,,,200003673768.0,Address Matched +6991084fb34757dadd118c4ff81611e40cf5c59d22f1bbbd6c7aad1990c749e4,5 SHIRLEY COURT,WALLIS AVENUE,,ME15 9JW,8050106868,E,C,45,78,Maisonette,End-Terrace,2021-08-04,E07000110,E14000700,Kent,2021-08-04,marketed sale,52,64,463,340.0,2.9,78,2.1,35.0,39.0,739.0,231.0,294.0,152.0,37.0,Single,N,00,N,,,100.0,"double glazing, unknown install date",Normal,0.0,2.0,1.0,100.0,0.0,"Electric immersion, standard tariff",Very Poor,Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, partial insulation (assumed)",Average,Average,Portable electric heaters (assumed),,,(another dwelling above),,,"Room heaters, electric",Very Poor,Poor,Appliance thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,no corridor,,2.3,0.0,N,natural,"5 SHIRLEY COURT, WALLIS AVENUE",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1976-1982,2021-08-04 12:57:10,Owner-occupied,7.0,,200003683154.0,Energy Assessor +1039025109022013110714244166438737,"18, Brockenhurst Avenue",,,ME15 7ED,3647016178,B,B,83,89,House,Semi-Detached,2013-11-07,E07000110,E14000700,Kent,2013-11-07,FiT application,81,89,87,44.0,1.7,18,0.9,71.0,55.0,519.0,452.0,139.0,73.0,97.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,5.0,5.0,70.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 70% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,,natural,"18, Brockenhurst Avenue",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2013-11-07 14:24:41,owner-occupied,10.0,7.0,200003715513.0,Address Matched +1234544299842014111212534425949728,"16, Sheridan Close",,,ME14 2QP,6822099278,E,A,47,94,House,Enclosed End-Terrace,2014-11-12,E07000110,E14000804,Kent,2014-11-12,none of the above,32,78,630,151.0,4.7,112,1.1,57.0,32.0,535.0,248.0,262.0,69.0,42.0,dual,N,NODATA!,,,2402.0,100.0,double glazing installed before 2002,Normal,0.0,2.0,1.0,20.0,0.0,"Electric immersion, off-peak",Poor,Very Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,Portable electric heaters (assumed),,,"Pitched, 25 mm loft insulation",Poor,Poor,Electric storage heaters,Average,Very Poor,Automatic charge control,Average,Average,Low energy lighting in 20% of fixed outlets,Poor,Poor,electricity (not community),0.0,NO DATA!,,,0.0,,natural,"16, Sheridan Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2014-11-12 12:53:44,rental (private),5.0,1.0,200003670670.0,Address Matched +1804315742962020061915331430188850,"16, Holtye Crescent",,,ME15 7DB,5380450778,D,B,64,81,House,Semi-Detached,2020-06-18,E07000110,E14000700,Kent,2020-06-19,marketed sale,58,78,253,122.0,4.1,45,2.0,70.0,70.0,734.0,564.0,91.0,61.0,92.0,Single,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,1.0,6.0,5.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"16, Holtye Crescent",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2020-06-19 15:33:14,owner-occupied,,,200003683837.0,Address Matched +699edc1c1d89f1e3f419a37045403ef5a878d635d6d76fd5ec12713171b37b3b,FLAT 8,FOLKESTONE HOUSE,FONTWELL CLOSE,ME15 8XB,10001679877,C,C,75,78,Flat,Enclosed End-Terrace,2021-07-06,E07000110,E14000700,Kent,2021-07-06,rental,63,66,374,345.0,2.1,63,1.9,45.0,45.0,257.0,209.0,147.0,147.0,33.0,dual,N,01,Y,,,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,71.0,0.0,"Electric immersion, off-peak",Average,Poor,(another dwelling below),,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,Portable electric heaters (assumed),,,"Pitched, 200 mm loft insulation",Good,Good,Electric storage heaters,Average,Very Poor,Automatic charge control,Average,Average,Low energy lighting in 71% of fixed outlets,Very Good,Very Good,electricity (not community),0.0,no corridor,,2.32,0.0,N,natural,"FLAT 8, FOLKESTONE HOUSE, FONTWELL CLOSE",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2021-07-06 14:43:49,Rented (private),7.0,,200003681283.0,Energy Assessor +1765090469442019111316510562719078,"49, Hastings Road",,,ME15 7SH,5409967678,D,C,55,73,Flat,Semi-Detached,2019-11-13,E07000110,E14000804,Kent,2019-11-13,rental (private),47,70,327,176.0,5.8,58,3.1,77.0,77.0,1014.0,521.0,106.0,107.0,101.0,Single,Y,1st,Y,,2107.0,100.0,double glazing installed during or after 2002,Normal,1.0,3.0,3.0,100.0,0.0,From main system,Good,Good,(another dwelling below),NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,no corridor,,,,N,natural,"49, Hastings Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2019-11-13 16:51:05,rental (private),,,200003695444.0,Address Matched +1391470209602015120213021849150398,The Grange,East Street,Hunton,ME15 0RA,602001478,B,B,86,87,House,NO DATA!,2015-12-01,E07000110,E14000804,Kent,2015-12-02,new dwelling,84,86,53,47.0,3.1,13,2.7,100.0,100.0,640.0,644.0,161.0,88.0,239.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,1.0,From main system,Average,Average,Average thermal transmittance 0.17 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,"Room heaters, wood logs",,,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,"Boiler & underfloor, oil",Average,Average,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,oil - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"The Grange, East Street, Hunton",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2015-12-02 13:02:18,unknown,20.0,20.0,10091194259.0,Address Matched +398688680502009111710000565919638,"106, Merton Road",Bearsted,,ME15 8LL,3559989668,D,C,60,72,House,Mid-Terrace,2009-11-17,E07000110,E14000700,Kent,2009-11-17,marketed sale,58,71,333,233.0,3.3,55,2.3,54.0,30.0,541.0,409.0,97.0,79.0,60.35,Single,Y,NO DATA!,,,2102.0,90.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,20.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Mostly double glazing,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,Low energy lighting in 20% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.41,0.0,N,natural,"106, Merton Road, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2009-11-17 10:00:05,owner-occupied,,,200003686009.0,Address Matched +887957749942013022413541305572148,"50, McKenzie Court",,,ME14 1JU,902045078,B,B,87,89,Flat,Mid-Terrace,2013-02-24,E07000110,E14000804,Kent,2013-02-24,rental,82,84,128,110.0,1.4,23,1.2,61.0,44.0,54.0,57.0,118.0,99.0,62.0,dual,N,3rd,N,,2402.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,62.0,0.0,"Electric immersion, off-peak",Average,Very Poor,(other premises below),,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,Portable electric heaters (assumed),,,(another dwelling above),,,Electric storage heaters,Average,Very Poor,Automatic charge control,Average,Average,Low energy lighting in 62% of fixed outlets,Good,Good,electricity (not community),0.0,heated corridor,,,0.0,,natural,"50, McKenzie Court",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2013-02-24 13:54:13,owner-occupied,8.0,5.0,10014306657.0,Address Matched +1564384839022017080209184913698203,"20, Beacon Road",Lenham,,ME17 2HJ,165323578,D,B,67,83,House,Semi-Detached,2017-08-01,E07000110,E14000700,Kent,2017-08-02,marketed sale,62,79,211,104.0,4.2,38,2.2,122.0,69.0,689.0,574.0,142.0,84.0,112.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,2.0,7.0,7.0,22.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 22% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"20, Beacon Road, Lenham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2017-08-02 09:18:49,owner-occupied,,,200003708324.0,Address Matched +518255629802010072616244772802578,"291b, Upper Fant Road",,,ME16 8DD,1823928768,C,C,76,80,House,Mid-Terrace,2010-07-23,E07000110,E14000804,Kent,2010-07-26,rental (private),73,78,212,175.0,2.1,35,1.7,42.0,42.0,309.0,271.0,125.0,104.0,58.1,dual,Y,NO DATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,86.0,0.0,From main system,Good,Good,"Suspended, limited insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 86% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.37,0.0,N,natural,"291b, Upper Fant Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2010-07-26 16:24:47,rental (private),,,200003656716.0,Address Matched +256680810722009033016005139708521,"2, Buckland Rise",,,ME16 0YN,2386199568,B,B,83,84,Flat,End-Terrace,2009-03-30,E07000110,E14000804,Kent,2009-03-30,rental (private),82,82,144,139.0,1.4,24,1.4,47.0,31.0,210.0,212.0,74.0,74.0,59.46,Single,Y,Ground,N,3.0,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,50.0,0.0,From main system,Very Good,Very Good,"Solid, insulated (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,unheated corridor,4.9,2.3,0.0,N,natural,"2, Buckland Rise",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2009-03-30 16:00:51,rental (private),,,10014308197.0,Address Matched +779236639962018121810563337538238,"20, Oak Lane",Headcorn,,TN27 9TP,3388377968,D,B,63,83,House,Mid-Terrace,2018-12-17,E07000110,E14000700,Kent,2018-12-18,marketed sale,55,80,241,93.0,5.0,42,2.0,75.0,75.0,835.0,517.0,135.0,83.0,118.0,Unknown,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,6.0,6.0,100.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"20, Oak Lane, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,England and Wales: 1930-1949,2018-12-18 10:56:33,owner-occupied,,,200003699472.0,Address Matched +173572740252008102711425903289057,6 Ruby House,Coral Park,,ME14 5HQ,760033568,C,C,71,76,Flat,Semi-Detached,2008-10-27,E07000110,E14000804,Kent,2008-10-27,rental (private),67,70,282,255.0,2.7,43,2.4,68.0,34.0,187.0,185.0,141.0,118.0,63.15,Unknown,N,Ground,N,3.0,2402.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,0.0,0.0,"Electric immersion, standard tariff",Poor,Poor,"Solid, insulated (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,(another dwelling above),,,Electric storage heaters,Poor,Very Poor,Automatic charge control,Average,Average,No low energy lighting,Very Poor,Very Poor,electricity - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.25,0.0,N,natural,"6 Ruby House, Coral Park",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2008-10-27 11:42:59,rental (private),,,10022893772.0,Address Matched +69b8939f035c102578a4d5967c2772c6e2c35234a1550058cdc97aa00183a79e,20 TENACRE COURT,ASHFORD ROAD,HARRIETSHAM,ME17 1AH,10001416778,D,D,62,62,Flat,End-Terrace,2021-08-05,E07000110,E14000700,Kent,2021-08-05,not sale or rental,65,65,258,258.0,2.4,44,2.4,55.0,55.0,612.0,612.0,208.0,208.0,54.0,standard tariff,,3,Y,,,100.0,,,,,,100.0,0.0,Electric instantaneous at point of use,Very Poor,Poor,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.47 W/m-¦K,Good,Good,,,,Average thermal transmittance 0.32 W/m-¦K,Average,Average,"Boiler and radiators, electric",Very Poor,Poor,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",0.0,,,2.92,,,,"20 TENACRE COURT, ASHFORD ROAD, HARRIETSHAM",Maidstone,Faversham and Mid Kent,MAIDSTONE,2020,2021-08-05 14:08:17,Owner-occupied,4.0,,10095449485.0,Energy Assessor +181793599832008110321074134068490,The Orchard House,Chart Road,Sutton Valence,ME17 3AW,9034473568,F,E,34,48,House,Detached,2008-11-03,E07000110,E14000700,Kent,2008-11-03,marketed sale,38,52,423,315.0,13.0,62,9.5,204.0,102.0,1842.0,1444.0,190.0,137.0,232.22,Single,Y,NO DATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,8.0,8.0,0.0,1.0,From main system,Average,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Timber frame, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Average,Good,"Programmer, room thermostat and TRVs",Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.65,0.0,N,natural,"The Orchard House, Chart Road, Sutton Valence",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2008-11-03 21:07:41,owner-occupied,,,200003732652.0,Address Matched +952465075052013061711493099970106,"65, Whitebeam Drive",Coxheath,,ME17 4QY,1608599078,D,B,59,89,House,Semi-Detached,2013-06-17,E07000110,E14000804,Kent,2013-06-17,marketed sale,56,90,255,41.0,3.7,49,0.6,68.0,48.0,588.0,319.0,145.0,71.0,75.0,dual,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,56.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, partial insulation (assumed)",Average,Average,,,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 56% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"65, Whitebeam Drive, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1976-1982,2013-06-17 11:49:30,owner-occupied,9.0,5.0,200003672421.0,Address Matched +1455714833312016070409061195060840,Flat 2 Chelsfield House,Queens Avenue,,ME16 0EP,8017355478,D,C,62,74,Maisonette,Semi-Detached,2016-07-04,E07000110,E14000804,Kent,2016-07-04,marketed sale,61,75,257,166.0,3.1,45,2.0,98.0,49.0,596.0,391.0,104.0,105.0,69.0,Single,Y,Ground,N,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,no corridor,0.0,2.4,,N,natural,"Flat 2 Chelsfield House, Queens Avenue",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2016-07-04 09:06:11,owner-occupied,,,200003659579.0,Address Matched +631520059962011051919492456818449,Flat 3,63a Brewer Street,,ME14 1RY,4595586868,D,C,63,69,Flat,Semi-Detached,2011-05-19,E07000110,E14000804,Kent,2011-05-19,rental (private),61,68,234,188.0,3.8,45,3.1,73.0,46.0,605.0,516.0,97.0,83.0,49.75,Single,Y,1st,Y,,2107.0,33.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,40.0,0.0,From main system,Good,Good,(other premises below),,,Partial double glazing,Poor,Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 40% of fixed outlets,Average,Average,mains gas (not community),0.0,unheated corridor,1.0,2.32,0.0,,natural,"Flat 3, 63a Brewer Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2011-05-19 19:49:24,rental (private),15.0,6.0,200003728308.0,Address Matched +459437867612020031315283421900171,"56, Boxley Road",,,ME14 2TW,1197714768,D,C,58,74,Maisonette,Semi-Detached,2020-03-12,E07000110,E14000804,Kent,2020-03-13,marketed sale,51,73,322,172.0,4.0,57,2.1,57.0,57.0,710.0,367.0,94.0,95.0,71.0,Single,Y,1st,Y,,2107.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,(another dwelling below),NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,no corridor,,,,N,natural,"56, Boxley Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2020-03-13 15:28:34,owner-occupied,,,200003703342.0,Address Matched +69df240c3c56df1c44083b755ec9343e4ad4a238c4804a10d239b94ef9b7e733,"Flat 20 Adeline Heights, Rosalind Drive",,,ME14 2FP,10001640495,B,B,86,86,Flat,Mid-Terrace,2021-07-06,E07000110,E14000804,Kent,2021-07-06,new dwelling,89,89,69,69.0,1.0,12,1.0,71.0,71.0,178.0,178.0,74.0,74.0,85.0,standard tariff,,2,N,,,100.0,,,,,,100.0,0.0,From main system,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.53 W/m-¦K,Good,Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.5,,,,"Flat 20 Adeline Heights, Rosalind Drive",Maidstone,Maidstone and The Weald,Maidstone,2018,2021-07-06 09:20:16,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,10.0,,10094441283.0,Address Matched +69e69127f172445b0442041e2a840fd144329ab5f77f53f40d7c847325bf4ff5,2 Hallwards,Staplehurst,,TN12 0NT,10001407936,D,B,68,85,Bungalow,Semi-Detached,2021-08-27,E07000110,E14000804,Kent,2021-08-31,marketed sale,65,83,215,93.0,3.1,38,1.4,89.0,67.0,513.0,427.0,89.0,63.0,81.0,Single,Y,,,,,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,67.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 67% of fixed outlets,Good,Good,mains gas (not community),0.0,,,2.36,0.0,N,natural,"2 Hallwards, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1967-1975,2021-08-31 08:38:54,Owner-occupied,15.0,,200003677227.0,Energy Assessor +674269704852011090512522498090783,2 Banks Yard,West Street,Harrietsham,ME17 1HX,7369489868,B,B,84,84,House,Mid-Terrace,2011-09-05,E07000110,E14000700,Kent,2011-09-05,new dwelling,87,87,76,74.0,1.4,14,1.4,69.0,55.0,246.0,248.0,70.0,70.0,99.28,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,15.0,,"From main system, plus solar",Very Good,Very Good,Average thermal transmittance 0.18 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.26 W/m?K,Very Good,Very Good,"Room heaters, mains gas",,,Average thermal transmittance 0.15 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.36,,,NO DATA!,"2 Banks Yard, West Street, Harrietsham",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2011-09-05 12:52:24,,20.0,15.0,10014307754.0,Address Matched +1138496239062014051119183473718004,Fifth Quarter Cottage,Lenham Road,Headcorn,TN27 9LE,721313278,D,B,64,86,House,Semi-Detached,2014-05-09,E07000110,E14000700,Kent,2014-05-11,marketed sale,56,81,180,63.0,5.5,41,2.2,88.0,69.0,1012.0,661.0,214.0,116.0,135.0,Single,N,NODATA!,,,2106.0,50.0,double glazing installed before 2002,Normal,2.0,9.0,9.0,71.0,1.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Partial double glazing,Poor,Poor,"Sandstone, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, oil",Average,Average,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 71% of fixed outlets,Very Good,Very Good,oil (not community),0.0,NO DATA!,,,0.0,,natural,"Fifth Quarter Cottage, Lenham Road, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,England and Wales: before 1900,2014-05-11 19:18:34,owner-occupied,14.0,10.0,200003701056.0,Address Matched +119334063532015071415255523968805,"7, Woodlands Close",Penenden Heath,,ME14 2EX,6513838468,D,C,61,74,House,Semi-Detached,2015-07-14,E07000110,E14000804,Kent,2015-07-14,marketed sale,53,67,249,164.0,5.8,44,3.9,125.0,73.0,1045.0,938.0,122.0,81.0,132.0,Unknown,Y,NODATA!,,,2107.0,100.0,"double glazing, unknown install date",Normal,2.0,5.0,5.0,30.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 30% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"7, Woodlands Close, Penenden Heath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2015-07-14 15:25:55,owner-occupied,,,200003706667.0,Address Matched +69f9dbcd777f0d4679966c979ebb1771995a9fb729dcd4f65911e63e00e426e2,FLAT 1,1-3,LOWER FANT ROAD,ME16 8DP,10001643434,C,C,75,79,Flat,Enclosed End-Terrace,2021-07-09,E07000110,E14000804,Kent,2021-07-09,rental,74,81,168,126.0,2.1,30,1.5,62.0,62.0,344.0,254.0,94.0,95.0,70.0,Unknown,Y,-1,N,,,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,no corridor,,2.0,0.0,N,natural,"FLAT 1, 1-3, LOWER FANT ROAD",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2021-07-09 10:49:15,Rented (private),6.0,,200003668338.0,Energy Assessor +60639489352015051213053991950142,"23, Headcorn Road",Platts Heath,,ME17 2NH,1229914468,E,B,39,81,House,Detached,2015-05-12,E07000110,E14000700,Kent,2015-05-12,marketed sale,39,78,262,68.0,12.0,58,3.6,113.0,113.0,2258.0,1310.0,280.0,104.0,199.0,Single,N,NODATA!,,,2107.0,100.0,double glazing installed before 2002,Normal,0.0,8.0,8.0,75.0,1.0,"From main system, no cylinder thermostat",Poor,Poor,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, wood logs",,,"Pitched, insulated at rafters",Average,Average,"Boiler and radiators, oil",Average,Average,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,oil (not community),0.0,NO DATA!,,,,N,natural,"23, Headcorn Road, Platts Heath",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2015-05-12 13:05:39,owner-occupied,,,200003703755.0,Address Matched +50105219132009010515225841068903,6 Wilson Court,Yalding,,ME18 6JU,1301906568,B,B,81,82,House,Detached,2009-01-05,E07000110,E14000804,Kent,2009-01-05,new dwelling,80,80,128,126.0,2.3,21,2.3,63.0,51.0,270.0,272.0,93.0,93.0,108.94,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,30.0,,From main system,Very Good,Very Good,Average thermal transmittance = 0.21 W/m?K,Good,Good,Fully double glazed,Good,Good,Average thermal transmittance = 0.29 W/m?K,Very Good,Very Good,"Room heaters, mains gas",,,Average thermal transmittance = 0.15 W/m?K,Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.31,,,NO DATA!,"6 Wilson Court, Yalding",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2009-01-05 15:22:58,,40.0,30.0,10022896419.0,Address Matched +17ef8e738d16435351da45df3897a6742d9c9f3f8df99c420419ad24cdb3a9cb,FLAT 9,SWALLOW HOUSE,SPRINGVALE,ME16 0AZ,10001271450,E,C,44,78,Flat,Semi-Detached,2021-05-29,E07000110,E14000804,Kent,2021-08-03,ECO assessment,50,81,399,144.0,3.3,67,1.3,88.0,44.0,719.0,205.0,421.0,93.0,49.0,Unknown,Y,01,N,,,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,0.0,0.0,"Electric immersion, standard tariff",Very Poor,Poor,(another dwelling below),,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,(another dwelling above),,,"Room heaters, electric",Very Poor,Poor,No thermostatic control of room temperature,Poor,Poor,No low energy lighting,Very Poor,Very Poor,electricity (not community),0.0,heated corridor,,2.7,0.0,N,natural,"FLAT 9, SWALLOW HOUSE, SPRINGVALE",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2021-08-03 06:58:26,Rented (private),6.0,,200003667132.0,Energy Assessor +1315804259262015042916391505388925,Cherry Tree House,Church Lane,Bearsted,ME14 4EF,2014565378,F,C,21,75,House,Detached,2015-04-28,E07000110,E14000700,Kent,2015-04-29,marketed sale,16,67,602,158.0,16.0,106,4.1,142.0,76.0,2638.0,982.0,402.0,78.0,147.0,Single,Y,NODATA!,,,2102.0,20.0,secondary glazing,Normal,0.0,7.0,7.0,11.0,1.0,"From main system, no cylinder thermostat",Very Poor,Very Poor,"Solid, no insulation (assumed)",NO DATA!,,Some secondary glazing,Poor,Poor,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Average,Average,"Programmer, no room thermostat",Very Poor,Very Poor,Low energy lighting in 11% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"Cherry Tree House, Church Lane, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2015-04-29 16:39:15,owner-occupied,,,200003694960.0,Address Matched +351070050542009082411451968612448,Flat 4 Llandaff House,Nottingham Avenue,,ME15 7PP,3520456668,C,B,78,81,Flat,Semi-Detached,2009-08-24,E07000110,E14000700,Kent,2009-08-24,rental (social),76,79,184,160.0,1.9,31,1.6,57.0,32.0,293.0,271.0,82.0,82.0,61.72,Single,Y,1st,Y,2.0,2106.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,20.0,0.0,From main system,Very Good,Very Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 20% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.33,0.0,N,natural,"Flat 4 Llandaff House, Nottingham Avenue",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2009-08-24 11:45:19,rental (social),,,200003713144.0,Address Matched +374943729142014112718443969842738,"2, Fagus Close",,,ME5 9DD,6187328668,D,C,63,78,House,Detached,2014-11-27,E07000110,E14000700,Kent,2014-11-27,marketed sale,61,76,211,114.0,3.7,41,2.0,106.0,55.0,686.0,627.0,103.0,72.0,90.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,6.0,6.0,8.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, mains gas",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 8% of fixed outlets,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"2, Fagus Close",Maidstone,Faversham and Mid Kent,CHATHAM,England and Wales: 1983-1990,2014-11-27 18:44:39,owner-occupied,13.0,1.0,200003709195.0,Address Matched +803944664512012062208543794220399,"1a, Gatland Lane",,,ME16 8PG,3978449968,D,B,63,85,House,Detached,2012-06-20,E07000110,E14000804,Kent,2012-06-22,marketed sale,59,85,215,67.0,4.1,41,1.3,73.0,52.0,594.0,412.0,166.0,69.0,99.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,58.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 58% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"1a, Gatland Lane",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2012-06-22 08:54:37,owner-occupied,12.0,7.0,200003676081.0,Address Matched +72dcc6a41e879a52defd32b876f7d89902a07018efde844458a3b6d6a8dce7da,1 Lower Farm Holiday Lets,Babylon Lane,,ME17 3ER,10001324389,D,A,66,112,Bungalow,Semi-Detached,2021-07-22,E07000110,E14000700,Kent,2021-07-22,rental,78,118,133,-200.0,1.5,28,-1.5,47.0,47.0,326.0,326.0,129.0,76.0,53.0,standard tariff,,,N,,,100.0,,,,,,100.0,0.0,From main system,Poor,Good,Average thermal transmittance 0.20 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.26 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.15 W/m-¦K,Good,Good,"Boiler and radiators, LPG",Poor,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: bulk LPG,0.0,,,2.74,,,,"1 Lower Farm Holiday Lets, Babylon Lane",Maidstone,Faversham and Mid Kent,Sutton Valance,2021,2021-07-22 08:46:35,Rented (private),25.0,,, +320803281132019092008165546968402,"29b, Postley Road",,,ME15 6TP,8206444668,D,C,65,77,Flat,Mid-Terrace,2019-09-19,E07000110,E14000804,Kent,2019-09-20,rental (private),63,79,298,168.0,2.4,53,1.4,38.0,38.0,450.0,252.0,75.0,76.0,46.0,Single,Y,Ground,N,,2107.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,2.95,,,N,natural,"29b, Postley Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2019-09-20 08:16:55,rental (private),,,10014310039.0,Address Matched +476232103112010042709314503089072,"30, Albany Street",,,ME14 5AJ,200335768,B,B,84,86,House,Semi-Detached,2008-10-01,E07000110,E14000804,Kent,2010-04-27,new dwelling,85,87,101,92.0,1.6,16,1.5,108.0,61.0,252.0,258.0,70.0,70.0,105.25,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,,From main system,Very Good,Very Good,Average thermal transmittance 0.20 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m?K,Very Good,Very Good,"Room heaters, wood logs",,,Average thermal transmittance 0.20 W/m?K,Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in 25% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,,,NO DATA!,"30, Albany Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2010-04-27 09:31:45,,,,10014309471.0,Address Matched +1774085339142019122015394764812408,14 Wrens Cross,Upper Stone Street,,ME15 6YU,6138438678,C,C,70,70,Flat,Mid-Terrace,2019-12-20,E07000110,E14000804,Kent,2019-12-20,new dwelling,77,77,162,162.0,1.9,27,1.9,55.0,55.0,422.0,422.0,283.0,283.0,71.0,standard tariff,,ground floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,"Electric immersion, standard tariff",Very Poor,Poor,Average thermal transmittance 0.14 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.23 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,"Room heaters, electric",Very Poor,Poor,Programmer and appliance thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"14 Wrens Cross, Upper Stone Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2019-12-20 15:39:47,unknown,24.0,24.0,10094440948.0,Address Matched +840703171232012092814081202278507,26 Astley Terrace,Hastings Road,,ME15 7BF,7712502078,B,B,83,83,House,End-Terrace,2012-09-28,E07000110,E14000700,Kent,2012-09-28,new dwelling,86,86,85,85.0,1.4,16,1.4,48.0,48.0,247.0,247.0,84.0,84.0,85.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,11.0,,From main system,Good,Good,Average thermal transmittance 0.12 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.37,,,NO DATA!,"26 Astley Terrace, Hastings Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2012-09-28 14:08:12,,11.0,11.0,10014313977.0,Address Matched +1487071879102016101211144344769328,Flat 9,Miller Heights,43-51 Lower Stone Street,ME15 6LN,104877478,C,C,70,70,Flat,NO DATA!,2016-10-12,E07000110,E14000804,Kent,2016-10-12,none of the above,57,57,311,311.0,3.4,53,3.4,53.0,53.0,442.0,442.0,166.0,166.0,64.0,off-peak 10 hour,,mid floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Poor,Poor,Average thermal transmittance 0.22 W/m-¦K,Good,Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.62 W/m-¦K,Average,Average,,,,Average thermal transmittance 0.22 W/m-¦K,Good,Good,"Boiler and radiators, electric",Poor,Very Poor,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"Flat 9, Miller Heights, 43-51 Lower Stone Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2016-10-12 11:14:43,unknown,4.0,4.0,10093303789.0,Address Matched +1222077362352014101619303990949728,"22, The Mallows",,,ME14 2PX,7850209278,D,B,68,82,House,Detached,2014-10-16,E07000110,E14000804,Kent,2014-10-16,marketed sale,69,84,179,79.0,2.5,34,1.1,60.0,47.0,534.0,493.0,83.0,56.0,74.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,73.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 73% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"22, The Mallows",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1991-1995,2014-10-16 19:30:39,owner-occupied,11.0,8.0,200003671947.0,Address Matched +6a25398742ebd78b98c4e88f228d04eb034a0c825b203c97e07c3341cfd5dd1b,13 CLOVER TERRACE,NORTHUMBERLAND ROAD,,ME15 7SY,10001378910,E,B,54,84,House,Mid-Terrace,2021-06-28,E07000110,E14000700,Kent,2021-07-01,ECO assessment,51,84,340,90.0,4.1,60,1.1,117.0,58.0,698.0,443.0,188.0,74.0,69.0,Single,Y,,,,,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,0.0,0.0,"From main system, no cylinder thermostat",Average,Average,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,"Pitched, insulated (assumed)",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,,,2.75,0.0,N,natural,"13 CLOVER TERRACE, NORTHUMBERLAND ROAD",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2021-07-01 10:48:57,Rented (social),8.0,,200003714093.0,Energy Assessor +1708153889262019032619171903668701,"11, The Nook",Yalding Hill,,ME18 6AW,94853678,D,B,63,88,Bungalow,Semi-Detached,2019-03-26,E07000110,E14000804,Kent,2019-03-26,rental (social),61,88,311,75.0,2.6,55,0.7,62.0,37.0,417.0,314.0,113.0,67.0,47.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,33.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 33% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"11, The Nook, Yalding Hill",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2019-03-26 19:17:19,rental (social),,,200003660709.0,Address Matched +6a31e0ecede9b3d34a27ce82a2bba132eb2df9197e49e2bc1826160b99570ae8,23 TENACRE COURT,ASHFORD ROAD,HARRIETSHAM,ME17 1AH,10001425019,E,E,45,45,Flat,Mid-Terrace,2021-08-05,E07000110,E14000700,Kent,2021-08-05,not sale or rental,51,51,315,315.0,4.3,53,4.3,84.0,84.0,1251.0,1251.0,251.0,251.0,81.0,standard tariff,,1,N,,,100.0,,,,,,100.0,0.0,Electric instantaneous at point of use,Very Poor,Poor,Average thermal transmittance 0.41 W/m-¦K,Average,Average,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.22 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.32 W/m-¦K,Average,Average,"Boiler and radiators, electric",Very Poor,Poor,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",0.0,,,3.66,,,,"23 TENACRE COURT, ASHFORD ROAD, HARRIETSHAM",Maidstone,Faversham and Mid Kent,MAIDSTONE,2020,2021-08-05 13:47:53,Owner-occupied,5.0,,10095449488.0,Energy Assessor +369923130222009092422301487548171,"115, Reculver Walk",,,ME15 8TT,7819387668,C,C,79,80,House,Mid-Terrace,2009-09-24,E07000110,E14000700,Kent,2009-09-24,rental (social),77,77,159,154.0,2.3,26,2.2,66.0,44.0,320.0,323.0,115.0,115.0,87.48,Single,Y,NO DATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,50.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.34,0.0,N,natural,"115, Reculver Walk",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2009-09-24 22:30:14,rental (social),,,200003725796.0,Address Matched +1547691509102017052612274751232058,26b The Street,Detling,,ME14 3JT,8125402578,B,A,83,94,House,Semi-Detached,2017-05-25,E07000110,E14000700,Kent,2017-05-26,new dwelling,84,95,91,19.0,1.6,16,0.4,70.0,70.0,256.0,257.0,113.0,62.0,103.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.11 W/m+é-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.18 W/m+é-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m+é-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"26b The Street, Detling",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2017-05-26 12:27:47,unknown,20.0,20.0,10093305411.0,Address Matched +207462980962009051914422575408238,"34, McAlpine Crescent",Loose,,ME15 0AU,3796845568,C,C,73,74,Bungalow,Mid-Terrace,2008-12-10,E07000110,E14000804,Kent,2009-05-19,rental (social),70,70,276,270.0,2.0,46,1.9,33.0,20.0,308.0,310.0,67.0,67.0,43.16,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,2.0,2.0,40.0,2.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 40% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.27,0.0,N,natural,"34, McAlpine Crescent, Loose",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2009-05-19 14:42:25,rental (social),,,200003663370.0,Address Matched +193054499842019080319410755410628,4 Harrietsham House,Burdock Court,,ME16 0GN,3883894568,C,B,73,81,Flat,Semi-Detached,2019-08-02,E07000110,E14000804,Kent,2019-08-03,rental (private),69,68,201,203.0,2.6,34,2.6,62.0,70.0,376.0,245.0,219.0,173.0,77.0,Unknown,N,1st,N,,2603.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,100.0,0.0,"Electric immersion, off-peak",Poor,Poor,(another dwelling below),NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Room heaters, electric",Very Poor,Poor,Programmer and appliance thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,unheated corridor,5.82,,,N,natural,"4 Harrietsham House, Burdock Court",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2019-08-03 19:41:07,rental (private),,,10022897198.0,Address Matched +325144726212009071317432107910166,"51, Sandling Road",,,ME14 2RH,1635674668,E,D,43,56,House,Mid-Terrace,2009-07-13,E07000110,E14000804,Kent,2009-07-13,rental (private),37,49,457,342.0,7.2,77,5.4,49.0,49.0,1021.0,765.0,103.0,93.0,82.6,Single,Y,NO DATA!,,,2107.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,90.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Roof room(s), no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Poor,Poor,Low energy lighting in 90% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,1.9,0.0,N,natural,"51, Sandling Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2009-07-13 17:43:21,rental (private),,,200003669450.0,Address Matched +389675520142009102900130063912588,"14, Huntington Road",Coxheath,,ME17 4EA,8123629668,D,C,61,78,Flat,Mid-Terrace,2009-10-28,E07000110,E14000804,Kent,2009-10-29,marketed sale,55,75,360,201.0,3.5,60,2.0,39.0,30.0,526.0,320.0,112.0,81.0,58.31,Single,Y,Ground,N,2.0,2107.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,67.0,0.0,From main system,Average,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 67% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,no corridor,,,0.0,N,natural,"14, Huntington Road, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,,2009-10-29 00:13:00,owner-occupied,,,200003671672.0,Address Matched +719821579062016020914334813418236,"68, Sandling Lane",Penenden Heath,,ME14 2EA,3158703968,C,B,70,83,House,Detached,2016-02-09,E07000110,E14000804,Kent,2016-02-09,marketed sale,66,80,203,103.0,3.1,36,1.6,56.0,56.0,572.0,514.0,109.0,72.0,86.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"68, Sandling Lane, Penenden Heath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2016-02-09 14:33:48,owner-occupied,,,200003726189.0,Address Matched +157383835752010101310360497909154,"15, Castle Dene",,,ME14 2NH,1433571568,E,D,39,60,Bungalow,Detached,2010-10-13,E07000110,E14000804,Kent,2010-10-13,marketed sale,34,53,375,240.0,21.0,62,14.0,381.0,190.0,3142.0,2046.0,234.0,190.0,309.06,Single,Y,NO DATA!,,,2103.0,100.0,double glazing installed before 2002,Normal,0.0,6.0,6.0,0.0,0.0,Gas multipoint,Average,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, limited insulation (assumed)",Poor,Poor,"Boiler and radiators, mains gas",Average,Good,Room thermostat only,Poor,Poor,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,0.0,N,natural,"15, Castle Dene",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2010-10-13 10:36:04,owner-occupied,,,200003670540.0,Address Matched +901233139402013032715544606672538,"32, Lushington Road",,,ME14 2QS,2421336078,E,B,52,84,House,End-Terrace,2013-03-27,E07000110,E14000804,Kent,2013-03-27,marketed sale,48,84,321,79.0,4.2,62,1.1,40.0,40.0,702.0,401.0,142.0,67.0,68.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,100.0,0.0,From main system,Average,Average,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"32, Lushington Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2013-03-27 15:54:46,owner-occupied,8.0,8.0,200003670934.0,Address Matched +145967939652008100218455005089154,Flat 3,"229, Boxley Road",Penenden Heath,ME14 2BH,1415951568,C,C,69,73,Flat,Semi-Detached,2008-10-02,E07000110,E14000804,Kent,2008-10-02,rental (private),64,69,340,294.0,2.2,57,1.9,32.0,18.0,311.0,286.0,62.0,54.0,39.68,Single,Y,2nd,Y,3.0,2107.0,100.0,double glazing installed before 2002,Normal,0.0,2.0,2.0,20.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Poor,Poor,Low energy lighting in 20% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,unheated corridor,4.8,2.35,0.0,N,natural,"Flat 3, 229, Boxley Road, Penenden Heath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2008-10-02 18:45:50,rental (private),,,200003703602.0,Address Matched +447921939062013110821145783188497,"28, St. Lukes Road",,,ME14 5AW,9862333768,E,C,42,75,House,Semi-Detached,2013-11-08,E07000110,E14000804,Kent,2013-11-08,marketed sale,38,71,338,133.0,7.8,65,3.1,118.0,68.0,1361.0,763.0,117.0,80.0,119.0,dual,Y,NODATA!,,,2105.0,80.0,"double glazing, unknown install date",Normal,3.0,7.0,7.0,25.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Mostly double glazing,Poor,Poor,"Granite or whinstone, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, mains gas",,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Programmer and at least two room thermostats,Good,Good,Low energy lighting in 25% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"28, St. Lukes Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2013-11-08 21:14:57,owner-occupied,8.0,2.0,200003705972.0,Address Matched +598179039942013041221470582479728,"47, Foord Road",Lenham,,ME17 2QN,4983034868,D,B,68,87,Bungalow,Detached,2013-04-12,E07000110,E14000700,Kent,2013-04-12,rental (social),69,89,198,52.0,2.2,38,0.6,55.0,35.0,400.0,350.0,79.0,56.0,58.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,43.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 43% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"47, Foord Road, Lenham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2013-04-12 21:47:05,rental (social),7.0,3.0,200003711674.0,Address Matched +1308241680152015041415065591950630,New Lodge Barn,Hunton Road,Marden,TN12 9SL,6003015378,F,B,32,89,House,Detached,2015-04-14,E07000110,E14000804,Kent,2015-04-14,marketed sale,34,86,294,26.0,12.0,65,1.8,173.0,87.0,2287.0,901.0,325.0,104.0,187.0,Single,N,NODATA!,,,2107.0,50.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,0.0,1.0,"From main system, no cylinder thermostat",Poor,Poor,"Solid, no insulation (assumed)",NO DATA!,,Partial double glazing,Poor,Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, oil",Average,Average,"Programmer, TRVs and bypass",Average,Average,No low energy lighting,Very Poor,Very Poor,oil (not community),0.0,NO DATA!,,,,N,natural,"New Lodge Barn, Hunton Road, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1930-1949,2015-04-14 15:06:55,owner-occupied,,,200003669522.0,Address Matched +6a502ae18cf67caa5ab8bdf2655e10ccc527f17d7932df4ed3e36a04f0f7ff39,14 Yew Tree Close,,,ME5 8XN,10001365353,C,B,70,90,House,Mid-Terrace,2021-09-14,E07000110,E14000700,Kent,2021-09-14,rental,70,92,244,44.0,1.9,43,0.4,40.0,40.0,348.0,285.0,75.0,50.0,44.0,Single,Y,,,,,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.3,0.0,N,natural,14 Yew Tree Close,Maidstone,Faversham and Mid Kent,CHATHAM,England and Wales: 1983-1990,2021-09-14 20:41:15,Rented (private),7.0,,200003676744.0,Energy Assessor +217486490262009012216491946598471,"92, Roseholme",,,ME16 8DS,7485976568,C,B,73,84,Flat,Detached,2009-01-21,E07000110,E14000804,Kent,2009-01-22,marketed sale,70,82,247,144.0,2.3,41,1.3,48.0,26.0,327.0,212.0,82.0,71.0,55.1,Unknown,Y,1st,N,3.0,2107.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,20.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Poor,Poor,Low energy lighting in 20% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,unheated corridor,4.4,2.2,0.0,N,natural,"92, Roseholme",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2009-01-22 16:49:19,owner-occupied,,,200003656379.0,Address Matched +6a620a6d82f4082b53666d47a3ca893c2b2eef6a0e6055de5ded2d8f1b9211f6,98 KINGSLEY ROAD,,,ME15 7UP,10001565568,D,B,65,84,House,Mid-Terrace,2021-08-04,E07000110,E14000804,Kent,2021-08-05,marketed sale,60,82,262,102.0,3.4,46,1.4,62.0,62.0,577.0,429.0,95.0,65.0,74.0,Unknown,Y,,,,,100.0,double glazing installed during or after 2002,Normal,2.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"To unheated space, no insulation (assumed)",,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 270 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.54,0.0,N,natural,98 KINGSLEY ROAD,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2021-08-05 05:04:28,Owner-occupied,9.0,,200003695926.0,Energy Assessor +951229619752013061810543398970008,"20, North Way",Penenden Heath,,ME14 2ET,832989078,D,C,63,78,House,Detached,2013-06-18,E07000110,E14000804,Kent,2013-06-18,marketed sale,58,76,215,113.0,4.2,41,2.3,54.0,54.0,715.0,588.0,111.0,74.0,101.0,Unknown,Y,NODATA!,,,2106.0,50.0,double glazing installed before 2002,Normal,1.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Partial double glazing,Poor,Poor,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"20, North Way, Penenden Heath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2013-06-18 10:54:33,owner-occupied,10.0,10.0,200003707418.0,Address Matched +91704819022013080222540836628067,"52, Quarry Road",,,ME15 6UD,6372196468,C,B,74,88,House,Mid-Terrace,2013-08-02,E07000110,E14000804,Kent,2013-08-02,rental (social),75,89,143,51.0,2.2,27,0.8,75.0,52.0,394.0,370.0,92.0,66.0,81.0,dual,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,56.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 56% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"52, Quarry Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2013-08-02 22:54:08,rental (social),9.0,5.0,200003682061.0,Address Matched +568056989202010112313052186102378,"14, Galena Close",,,ME5 9NE,7292781868,C,C,72,75,House,Detached,2010-11-23,E07000110,E14000700,Kent,2010-11-23,rental (private),69,72,206,188.0,3.2,34,2.9,99.0,50.0,477.0,464.0,104.0,104.0,108.65,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,6.0,6.0,0.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.33,0.0,N,natural,"14, Galena Close",Maidstone,Faversham and Mid Kent,CHATHAM,England and Wales: 1983-1990,2010-11-23 13:05:21,rental (private),,,200003708746.0,Address Matched +1253757959062015010618032381268055,"43, Stanley Close",Staplehurst,,TN12 0TA,5899521378,C,B,70,86,House,Semi-Detached,2015-01-06,E07000110,E14000804,Kent,2015-01-06,marketed sale,68,84,215,86.0,2.4,38,1.0,42.0,42.0,421.0,392.0,129.0,80.0,63.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"43, Stanley Close, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1967-1975,2015-01-06 18:03:23,owner-occupied,,,200003678740.0,Address Matched +6a8eab695f40f917ba2218f9d70de50053f2c66d76b6eb3052e94b85a4540f0f,"81, Stagshaw Close",,,ME15 6TE,1870047768,C,C,77,77,Flat,End-Terrace,2021-08-22,E07000110,E14000804,Kent,2021-08-27,rental,79,79,149,149.0,1.7,26,1.7,61.0,61.0,282.0,282.0,91.0,91.0,64.0,Single,Y,00,N,,,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,7.9,2.41,0.0,N,natural,"81, Stagshaw Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2021-08-27 08:40:53,Rented (social),8.0,,10022893323.0,Address Matched +6a9f3acfad776e50e3a1e7ce048bbbb2e66b914850face6223e8850dbc7864c5,101 DICKENS ROAD,,,ME14 2QT,10001340328,C,C,73,75,Flat,Mid-Terrace,2021-07-07,E07000110,E14000804,Kent,2021-07-07,rental,76,79,214,189.0,1.4,38,1.3,52.0,35.0,256.0,235.0,75.0,75.0,38.0,Single,Y,00,N,,,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,50.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,no corridor,,2.38,0.0,N,natural,101 DICKENS ROAD,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2021-07-07 17:26:38,Rented (social),6.0,,200003670976.0,Energy Assessor +1508342269962017101312091579878683,Apartment 42 Kings Lodge,"71, King Street",,ME14 1BG,8776629478,B,B,82,82,Flat,Enclosed Mid-Terrace,2017-10-13,E07000110,E14000804,Kent,2017-10-13,new dwelling,92,92,67,67.0,0.5,11,0.5,36.0,36.0,147.0,147.0,94.0,94.0,47.0,standard tariff,,top floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,Community scheme,Good,Very Good,Average thermal transmittance 0.25 W/m-¦K,Good,Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,Community scheme,Good,Very Good,"Charging system linked to use of community heating, programmer and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,NO DATA!,,NO DATA!,,,,,NO DATA!,"Apartment 42 Kings Lodge, 71, King Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2017-10-13 12:09:15,owner-occupied,5.0,5.0,10093302774.0,Address Matched +774398859922012041719244377238232,"643, Loose Road",Loose,,ME15 9UT,3793537968,E,C,52,79,House,Semi-Detached,2012-04-17,E07000110,E14000804,Kent,2012-04-17,marketed sale,46,76,268,104.0,7.3,52,2.9,118.0,64.0,1093.0,664.0,180.0,72.0,141.0,Single,Y,NODATA!,,,2106.0,95.0,"double glazing, unknown install date",Normal,0.0,6.0,6.0,15.0,1.0,"From main system, no cylinder thermostat",Poor,Poor,"Suspended, no insulation (assumed)",,,Mostly double glazing,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 15% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"643, Loose Road, Loose",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2012-04-17 19:24:43,owner-occupied,13.0,2.0,200003724647.0,Address Matched +1032188386432014062414063487278100,"18, Grecian Street",,,ME14 2TS,8077165178,D,B,64,87,House,Mid-Terrace,2014-06-24,E07000110,E14000804,Kent,2014-06-24,marketed sale,57,86,209,54.0,4.1,43,1.2,111.0,56.0,673.0,407.0,113.0,71.0,96.0,Unknown,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,4.0,0.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, coal",,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"18, Grecian Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2014-06-24 14:06:34,owner-occupied,21.0,0.0,200003703237.0,Address Matched +1809905025352020071321275729900577,"70, Greenhill",Staplehurst,,TN12 0SU,5706590778,D,C,62,72,House,Detached,2020-07-13,E07000110,E14000804,Kent,2020-07-13,marketed sale,54,63,231,178.0,6.3,41,4.9,178.0,115.0,1044.0,1057.0,143.0,86.0,155.0,dual,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,8.0,8.0,45.0,0.0,From main system,Good,Good,"Solid, limited insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, mains gas",,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 45% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"70, Greenhill, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1996-2002,2020-07-13 21:27:57,owner-occupied,,,200003723125.0,Address Matched +726107659642011112217372194392878,"9, Bower Close",,,ME16 8BD,1612553968,B,B,81,81,House,End-Terrace,2011-03-23,E07000110,E14000804,Kent,2011-11-22,new dwelling,84,84,97,97.0,1.5,18,1.5,49.0,49.0,281.0,281.0,60.0,60.0,40.11,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,20.0,,From main system,Good,Good,Average thermal transmittance 0.16 W/mA?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.20 W/mA?K,Very Good,Very Good,,,,Average thermal transmittance 0.12 W/mA?K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.46,,,NO DATA!,"9, Bower Close",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2011-11-22 17:37:21,,20.0,20.0,10014313067.0,Address Matched +1612640336412018030511293596080850,Flat 2,"36, Melville Road",,ME15 7UR,8010666578,C,C,79,79,Flat,NO DATA!,2018-03-04,E07000110,E14000804,Kent,2018-03-05,new dwelling,84,84,148,148.0,0.9,26,0.9,27.0,27.0,213.0,213.0,60.0,60.0,36.0,standard tariff,,ground floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.22 W/m+é-¦K,Good,Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.29 W/m+é-¦K,Good,Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Flat 2, 36, Melville Road",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2018-03-05 11:29:35,unknown,6.0,6.0,10093303797.0,Address Matched +643756069642011061715514983799038,"14, Barned Court",,,ME16 9EL,9679967868,D,D,57,68,House,Semi-Detached,2011-06-17,E07000110,E14000804,Kent,2011-06-17,marketed sale,52,65,269,193.0,5.3,52,3.8,84.0,51.0,793.0,608.0,153.0,113.0,102.87,Single,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,1.0,4.0,4.0,33.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 33% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,2.45,0.0,,natural,"14, Barned Court",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2011-06-17 15:51:49,owner-occupied,9.0,3.0,200003665371.0,Address Matched +18001700052012022211394598220443,112 Wallis Place,Hart Street,,ME16 8FD,4377088468,B,B,81,81,Flat,NO DATA!,2012-02-22,E07000110,E14000804,Kent,2012-02-22,new dwelling,84,84,104,104.0,1.4,20,1.4,39.0,39.0,240.0,240.0,88.0,88.0,70.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,6.0,,From main system,Good,Good,Average thermal transmittance 0.19 W/m?K,Very Good,Very Good,Fully double glazed,Good,Good,Average thermal transmittance 0.32 W/m?K,Good,Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,,,NO DATA!,"112 Wallis Place, Hart Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2012-02-22 11:39:45,,6.0,6.0,10022900713.0,Address Matched +986983779062013080815071172588687,"3, Beckworth Place",St. Andrews Road,,ME16 9LS,8781732178,D,B,65,84,House,Detached,2013-08-08,E07000110,E14000804,Kent,2013-08-08,marketed sale,63,84,216,77.0,3.0,41,1.1,77.0,45.0,502.0,419.0,127.0,71.0,73.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,27.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 27% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"3, Beckworth Place, St. Andrews Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1991-1995,2013-08-08 15:07:11,owner-occupied,11.0,3.0,200003699598.0,Address Matched +475338216752010042815311692200670,"21, Littlebourne Road",,,ME14 5QP,6036625768,D,C,61,74,House,Detached,2010-04-28,E07000110,E14000804,Kent,2010-04-28,marketed sale,54,70,321,208.0,4.2,54,2.7,41.0,41.0,635.0,418.0,133.0,109.0,78.86,Unknown,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, partial insulation (assumed)",Average,Average,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.41,0.0,N,natural,"21, Littlebourne Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1976-1982,2010-04-28 15:31:16,owner-occupied,,,200003671729.0,Address Matched +466866104032010040911222772068709,"17, Blunden Lane",Yalding,,ME18 6JQ,902764768,F,E,38,50,House,Semi-Detached,2010-04-08,E07000110,E14000804,Kent,2010-04-09,marketed sale,32,37,622,561.0,6.8,95,6.1,41.0,41.0,724.0,612.0,236.0,132.0,70.93,Unknown,N,NO DATA!,,,2402.0,100.0,secondary glazing,Normal,0.0,5.0,5.0,100.0,1.0,"Electric immersion, off-peak",Very Poor,Poor,"Solid, no insulation (assumed)",,,Full secondary glazing,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 200 mm loft insulation",Good,Good,Electric storage heaters,Poor,Very Poor,Automatic charge control,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.31,0.0,N,natural,"17, Blunden Lane, Yalding",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2010-04-09 11:22:27,owner-occupied,,,200003661520.0,Address Matched +596877260512012111920402092929586,"11, Essex Road",,,ME15 7QL,5626024868,D,B,66,84,House,Mid-Terrace,2012-11-19,E07000110,E14000700,Kent,2012-11-19,rental (social),67,85,177,69.0,3.3,34,1.3,73.0,57.0,601.0,460.0,108.0,74.0,99.0,dual,Y,NODATA!,,,2106.0,0.0,not defined,Normal,0.0,5.0,5.0,70.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 70% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"11, Essex Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2012-11-19 20:40:20,rental (social),10.0,7.0,200003680426.0,Address Matched +805977310652012082913351896220993,"2, Shortlands Green",,,ME15 9HD,9357069968,E,B,44,91,House,Mid-Terrace,2012-06-26,E07000110,E14000700,Kent,2012-08-29,marketed sale,45,93,372,24.0,4.3,66,0.4,62.0,41.0,878.0,296.0,62.0,55.0,64.0,dual,Y,NODATA!,,,2602.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,29.0,0.0,Gas multipoint,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"System built, with internal insulation",Good,Good,,,,"Pitched, no insulation",Very Poor,Very Poor,"Room heaters, electric",Poor,Very Poor,Appliance thermostats,Good,Good,Low energy lighting in 29% of fixed outlets,Average,Average,electricity (not community),0.0,NO DATA!,,,0.0,,natural,"2, Shortlands Green",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2012-08-29 13:35:18,owner-occupied,7.0,2.0,200003682188.0,Address Matched +76099749042017061318524945539878,"7, Queen Elizabeth Square",,,ME15 9DE,9048545468,D,B,68,81,House,Semi-Detached,2017-06-13,E07000110,E14000700,Kent,2017-06-13,marketed sale,57,76,208,110.0,5.4,39,2.9,104.0,75.0,1142.0,815.0,204.0,79.0,139.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,6.0,6.0,62.0,1.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 62% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"7, Queen Elizabeth Square",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2017-06-13 18:52:49,owner-occupied,,,200003710382.0,Address Matched +542841701032010092109313110268404,Flat 8 Plymouth House,Ruskin Grove,,ME15 9WG,470400868,C,C,77,78,Flat,Mid-Terrace,2010-09-21,E07000110,E14000700,Kent,2010-09-21,new dwelling,83,84,143,136.0,1.4,22,1.3,57.0,35.0,163.0,167.0,162.0,162.0,63.61,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,,,From main system,Poor,Good,(other premises below),,,Fully double glazed,Very Good,Very Good,Average thermal transmittance 0.27 W/m?K,Very Good,Very Good,,,,(other premises above),,,"Air source heat pump, radiators, electric",Poor,Good,Programmer and room thermostat,Poor,Poor,Low energy lighting in 38% of fixed outlets,Average,Average,"Electricity: electricity, unspecified tariff",0.0,NO DATA!,,2.7,,,NO DATA!,"Flat 8 Plymouth House, Ruskin Grove",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2010-09-21 09:31:31,,,,10014311619.0,Address Matched +6ac2326e8d1b251ee6a0c03757efbb383f9ba8a036633eb641f4f8d6ad47ad56,2 Maxted Road,,,ME14 4FN,10001402545,B,A,82,92,House,Detached,2021-09-15,E07000110,E14000804,Kent,2021-09-15,new dwelling,83,92,98,34.0,2.0,17,0.7,84.0,84.0,315.0,316.0,99.0,57.0,116.0,standard tariff,,,N,,,100.0,,,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.18 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.41,,,,2 Maxted Road,Maidstone,Maidstone and The Weald,Thurnham,2019,2021-09-15 15:12:47,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,1.0,,10094444645.0,Address Matched +586117539402011012811395589392488,"17, Melrose Close",,,ME15 6BD,6495033868,B,B,89,90,House,Mid-Terrace,2011-01-28,E07000110,E14000804,Kent,2011-01-28,new dwelling,88,89,75,73.0,1.4,12,1.3,80.0,68.0,226.0,227.0,119.0,119.0,115.35,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,9.0,,From main system,Very Good,Very Good,Average thermal transmittance 0.20 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.21 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.10 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Very Good,Very Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in 82% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.3,,,NO DATA!,"17, Melrose Close",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2011-01-28 11:39:55,,11.0,9.0,10014307034.0,Address Matched +1809069013032020070922222574078006,"16, Lodge Gardens",Ulcombe,,ME17 1DZ,1624090778,E,D,44,60,House,Semi-Detached,2020-07-09,E07000110,E14000700,Kent,2020-07-09,marketed sale,61,74,197,109.0,3.7,43,2.3,69.0,69.0,888.0,835.0,170.0,110.0,87.0,Single,N,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,100.0,0.0,From main system,Poor,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, LPG",Poor,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,LPG (not community),0.0,NO DATA!,,,,N,natural,"16, Lodge Gardens, Ulcombe",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2020-07-09 22:22:25,owner-occupied,,,200003701091.0,Address Matched +117641576532015060613142674068806,"8, Farnborough Close",,,ME16 8UE,7654858468,C,B,71,90,House,Semi-Detached,2015-06-06,E07000110,E14000804,Kent,2015-06-06,marketed sale,71,91,202,38.0,2.0,36,0.4,71.0,39.0,362.0,309.0,102.0,57.0,57.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,17.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 17% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"8, Farnborough Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2015-06-06 13:14:26,owner-occupied,,,200003656087.0,Address Matched +1082252936352016021517453991960018,"15c, Hartnup Street",,,ME16 8LR,830619178,E,C,52,78,Flat,Semi-Detached,2016-02-15,E07000110,E14000804,Kent,2016-02-15,marketed sale,32,65,779,347.0,4.1,132,1.8,27.0,27.0,558.0,169.0,115.0,115.0,31.0,dual,N,Ground,N,,2401.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,100.0,0.0,"Electric immersion, off-peak",Average,Poor,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,Portable electric heaters (assumed),,,(another dwelling above),,,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,no corridor,,,,N,natural,"15c, Hartnup Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2016-02-15 17:45:39,rental (private),,,200003655287.0,Address Matched +6adcef126d877e6229cd061176f4ca0c443428a39f9b72e1ad76b080b27c04d2,"3, Lincoln Road",,,ME15 7JH,10001453739,C,A,69,103,House,Semi-Detached,2021-07-14,E07000110,E14000700,Kent,2021-07-14,non marketed sale,68,100,194,-18.0,3.1,34,-0.2,87.0,87.0,602.0,554.0,93.0,64.0,90.0,Single,Y,,,,,100.0,"double glazing, unknown install date",Normal,0.0,6.0,6.0,80.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,"Room heaters, electric",,,"Pitched, 270 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.42,0.0,N,natural,"3, Lincoln Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2021-07-14 17:26:29,Owner-occupied,10.0,,200003712124.0,Address Matched +1384457519262016042716091120838606,Flat 101,Miller House,43-51 Lower Stone Street,ME15 6GB,262150478,C,C,73,73,Flat,NO DATA!,2016-04-27,E07000110,E14000804,Kent,2016-04-27,none of the above,62,62,280,280.0,2.9,47,2.9,44.0,44.0,355.0,355.0,160.0,160.0,61.0,off-peak 10 hour,,mid floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Poor,Poor,(other premises below),,,Fully double glazed,Good,Good,Average thermal transmittance 0.72 W/m-¦K,Average,Average,,,,(other premises above),,,"Boiler and radiators, electric",Poor,Very Poor,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"Flat 101, Miller House, 43-51 Lower Stone Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2016-04-27 16:09:11,unknown,4.0,4.0,10091196198.0,Address Matched +583795900432014100310152744068692,"6, Mamignot Close",Bearsted,,ME14 4PT,244613868,D,C,66,78,House,Detached,2014-10-02,E07000110,E14000700,Kent,2014-10-03,none of the above,62,76,194,112.0,4.0,37,2.4,72.0,72.0,772.0,678.0,107.0,75.0,107.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,83.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, mains gas",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 83% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"6, Mamignot Close, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2014-10-03 10:15:27,owner-occupied,12.0,10.0,200003693811.0,Address Matched +1432557079022016041107150653518876,"9, Anerley Close",,,ME16 0RR,7588783478,E,C,45,78,Bungalow,Semi-Detached,2016-04-09,E07000110,E14000804,Kent,2016-04-11,marketed sale,38,74,428,146.0,5.5,75,1.9,99.0,49.0,971.0,583.0,165.0,72.0,73.0,Unknown,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,2.28,,N,natural,"9, Anerley Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2016-04-11 07:15:06,owner-occupied,,,200003660976.0,Address Matched +669195318932011082610532637268301,"7, Mynn Crescent",Bearsted,,ME14 4AS,1137359868,C,C,71,74,House,Detached,2011-08-26,E07000110,E14000700,Kent,2011-08-26,marketed sale,68,72,163,142.0,4.3,31,3.8,105.0,62.0,648.0,605.0,133.0,116.0,137.76,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,8.0,8.0,31.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 31% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,2.3,0.0,,natural,"7, Mynn Crescent, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1976-1982,2011-08-26 10:53:26,owner-occupied,13.0,4.0,200003691810.0,Address Matched +437334939852015022407455895250170,"7, Stanford Drive",,,ME16 8TD,1022952768,E,C,53,78,House,Semi-Detached,2015-02-22,E07000110,E14000804,Kent,2015-02-24,none of the above,45,73,313,133.0,6.4,55,2.8,132.0,66.0,1132.0,724.0,126.0,74.0,115.0,Single,Y,NODATA!,,,2103.0,100.0,"double glazing, unknown install date",Normal,2.0,5.0,5.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Room thermostat only,Poor,Poor,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"7, Stanford Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2015-02-24 07:45:58,owner-occupied,,,200003657566.0,Address Matched +795425728412012053017594998720291,Stepping Stones,Hackney Road,,ME16 8LN,2174888968,D,C,65,79,House,Detached,2012-05-30,E07000110,E14000804,Kent,2012-05-30,marketed sale,67,81,179,104.0,4.9,29,2.6,130.0,70.0,925.0,744.0,126.0,111.0,168.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,8.0,8.0,16.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, wood logs",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 16% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"Stepping Stones, Hackney Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2012-05-30 17:59:49,owner-occupied,19.0,3.0,200003723282.0,Address Matched +1309617529902015041415191933559848,"4, Wood Court",,,ME16 9DD,905125378,C,B,75,90,House,End-Terrace,2015-04-14,E07000110,E14000804,Kent,2015-04-14,marketed sale,76,90,162,44.0,1.8,28,0.5,62.0,46.0,317.0,324.0,108.0,58.0,64.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,64.0,0.0,From main system,Good,Good,"Suspended, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 64% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"4, Wood Court",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2015-04-14 15:19:19,owner-occupied,,,10022900387.0,Address Matched +1708946651312019032717332796210063,Flat 14,Cornwallis House,Pudding Lane,ME14 1NY,319163678,D,D,64,64,Flat,Detached,2019-02-21,E07000110,E14000804,Kent,2019-03-27,new dwelling,67,67,223,223.0,2.2,38,2.2,44.0,44.0,484.0,484.0,180.0,180.0,58.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,Electric instantaneous at point of use,Very Poor,Very Poor,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.30 W/m-¦K,Good,Good,,,,(other premises above),,,"Room heaters, electric",Very Poor,Poor,Programmer and appliance thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"Flat 14, Cornwallis House, Pudding Lane",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2019-03-27 17:33:27,owner-occupied,8.0,8.0,, +369984480642009092412511660712328,"28, Maidstone Road",Lenham,,ME17 2QJ,8620587668,E,C,46,73,House,Semi-Detached,2009-09-22,E07000110,E14000700,Kent,2009-09-24,marketed sale,43,71,439,211.0,5.2,73,2.5,58.0,36.0,745.0,409.0,192.0,103.0,71.64,Single,Y,NO DATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,36.0,0.0,"From main system, no cylinderstat",Poor,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Average,Good,Programmer and room thermostat,Poor,Poor,Low energy lighting in 36% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.32,0.0,N,natural,"28, Maidstone Road, Lenham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2009-09-24 12:51:16,owner-occupied,,,200003711602.0,Address Matched +6b031093f36fbd431a84a78f4704f9468724bfffae313d82eccd8e7331ac72d0,"2a, Holland Road",,,ME14 1UH,10001497201,D,C,58,72,Flat,Enclosed End-Terrace,2021-07-21,E07000110,E14000804,Kent,2021-07-21,rental,56,75,452,255.0,2.3,80,1.3,46.0,29.0,421.0,253.0,71.0,72.0,29.0,Single,Y,01,N,,,80.0,double glazing installed before 2002,Normal,1.0,2.0,2.0,40.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Mostly double glazing,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 40% of fixed outlets,Average,Average,mains gas (not community),0.0,no corridor,,2.58,0.0,N,natural,"2a, Holland Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2021-07-21 17:28:00,Rented (private),5.0,,200003706164.0,Address Matched +6b03f038fafa76ec190f76903a0f2c5540e394580e89d3232b002279d7900dda,4 Stanley Close,Staplehurst,,TN12 0TA,10001551027,C,B,76,88,House,Semi-Detached,2021-08-11,E07000110,E14000804,Kent,2021-08-13,rental,75,87,141,62.0,2.4,25,1.1,78.0,78.0,399.0,374.0,98.0,68.0,98.0,Single,Y,,,,,100.0,double glazing installed during or after 2002,Normal,2.0,6.0,6.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.29,0.0,N,natural,"4 Stanley Close, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1976-1982,2021-08-13 16:55:58,Rented (private),11.0,,200003678736.0,Energy Assessor +1147069679902016041920063526369518,Russett,Maidstone Road,Marden,TN12 9AE,3936173278,D,B,67,85,House,Mid-Terrace,2016-04-19,E07000110,E14000804,Kent,2016-04-19,marketed sale,67,86,207,72.0,2.9,36,1.0,98.0,54.0,559.0,443.0,91.0,57.0,80.0,Single,Y,NODATA!,,,2106.0,100.0,triple glazing,Normal,0.0,5.0,5.0,20.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully triple glazed,Good,Good,"Cavity wall, as built, partial insulation (assumed)",Average,Average,"Room heaters, electric",,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 20% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,2.4,,N,natural,"Russett, Maidstone Road, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1976-1982,2016-04-19 20:06:35,owner-occupied,,,, +130850689022019011417515059518571,3 Mill Farm Cottages,Claygate,Marden,TN12 9PD,7543879468,F,A,29,98,House,Semi-Detached,2019-01-09,E07000110,E14000804,Kent,2019-01-14,rental (private),13,64,735,178.0,11.0,129,2.7,126.0,67.0,1503.0,756.0,325.0,107.0,83.0,dual,N,NODATA!,,,2401.0,83.0,"double glazing, unknown install date",Normal,2.0,5.0,3.0,13.0,1.0,"Electric immersion, off-peak",Very Poor,Poor,"Suspended, no insulation (assumed)",NO DATA!,,Mostly double glazing,Average,Average,"Cavity wall, filled cavity",Average,Average,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 13% of fixed outlets,Poor,Poor,electricity (not community),0.0,NO DATA!,,,,N,natural,"3 Mill Farm Cottages, Claygate, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1900-1929,2019-01-14 17:51:50,rental (private),,,10014308719.0,Address Matched +1428274259342016040709041641360838,"69, Gladstone Road",Penenden Heath,,ME14 2AX,5329953478,D,B,67,86,House,Mid-Terrace,2016-04-07,E07000110,E14000804,Kent,2016-04-07,marketed sale,65,85,256,86.0,2.5,45,0.9,39.0,39.0,481.0,394.0,94.0,59.0,55.0,Single,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,1.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,2.4,,N,natural,"69, Gladstone Road, Penenden Heath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2016-04-07 09:04:16,owner-occupied,,,200003701785.0,Address Matched +1487681389702016101912082840769418,"32, Pope Street",,,ME16 8LQ,4706087478,E,B,54,82,House,Mid-Terrace,2016-10-19,E07000110,E14000804,Kent,2016-10-19,marketed sale,48,79,335,113.0,4.4,59,1.5,102.0,51.0,808.0,501.0,103.0,68.0,75.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, mains gas",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,2.4,,N,natural,"32, Pope Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2016-10-19 12:08:28,owner-occupied,,,200003655821.0,Address Matched +1680757359742019102116003866112498,3 James Grieve Mews,Coxheath,,ME17 4FZ,3762751678,B,A,83,96,House,End-Terrace,2019-10-21,E07000110,E14000804,Kent,2019-10-21,new dwelling,86,99,94,-6.0,1.1,16,0.0,56.0,56.0,201.0,201.0,68.0,40.0,68.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.10 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"3 James Grieve Mews, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2019-10-21 16:00:38,unknown,20.0,20.0,10094440234.0,Address Matched +262400420442009040618583465010568,"40, Hartnup Street",,,ME16 8LR,8473720668,G,G,14,16,House,Mid-Terrace,2009-04-06,E07000110,E14000804,Kent,2009-04-06,marketed sale,15,17,966,926.0,9.3,152,8.9,63.0,63.0,1365.0,1305.0,135.0,135.0,60.6,dual,Y,NO DATA!,,,2601.0,100.0,double glazing installed before 2002,Normal,1.0,4.0,2.0,0.0,1.0,"Electric immersion, off-peak",Poor,Poor,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, mains gas",Very Poor,Very Poor,No thermostatic control of room temperature,Poor,Poor,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.5,0.0,N,natural,"40, Hartnup Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2009-04-06 18:58:34,owner-occupied,,,200003655864.0,Address Matched +1535960032332017120612031024078291,Flat 2,"13, Cascade Close",Marden,TN12 9FW,3174221578,B,B,83,83,Flat,End-Terrace,2017-12-06,E07000110,E14000804,Kent,2017-12-06,new dwelling,87,87,96,96.0,0.9,17,0.9,38.0,38.0,169.0,169.0,65.0,65.0,51.0,standard tariff,,ground floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.12 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.28 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Flat 2, 13, Cascade Close, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,NO DATA!,2017-12-06 12:03:10,owner-occupied,10.0,10.0,10093303387.0,Address Matched +6b1fafa958b7661be80e0adf828b225d1887e07f23d5e9b2a4d97eb1bdd9a6e1,114 BICKNOR ROAD,,,ME15 9PD,10001365767,D,B,67,83,House,Mid-Terrace,2021-08-04,E07000110,E14000700,Kent,2021-08-04,rental,63,80,246,119.0,3.1,43,1.5,76.0,60.0,521.0,461.0,90.0,63.0,71.0,Single,Y,,,,,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,75.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"System built, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.38,0.0,N,natural,114 BICKNOR ROAD,Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2021-08-04 08:23:41,Rented (social),8.0,,200003679929.0,Energy Assessor +1795518279812020032709110528900269,Flat 29 Tovil Green Court,Tovil Green Lane,Tovil,ME15 6NE,2975989678,B,B,83,83,Flat,Mid-Terrace,2020-03-18,E07000110,E14000804,Kent,2020-03-27,marketed sale,87,87,96,96.0,1.0,17,1.0,52.0,52.0,123.0,123.0,213.0,213.0,57.0,Unknown,Y,1st,N,,2303.0,100.0,triple glazing,Normal,0.0,2.0,2.0,100.0,0.0,Community scheme,Good,Good,(another dwelling below),NO DATA!,,Fully triple glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,Community scheme,Good,Good,"Flat rate charging, room thermostat only",Poor,Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (community),0.0,heated corridor,,,,N,natural,"Flat 29 Tovil Green Court, Tovil Green Lane, Tovil",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2020-03-27 09:11:05,owner-occupied,,,10014306979.0,Address Matched +1168311059022014070401121275328934,"10, Beacon Road",Lenham,,ME17 2HJ,3778525278,B,B,82,87,House,Semi-Detached,2014-07-02,E07000110,E14000700,Kent,2014-07-04,FiT application,81,87,93,58.0,1.6,19,1.0,77.0,57.0,517.0,446.0,98.0,69.0,86.0,dual,Y,NODATA!,,,2107.0,100.0,double glazing installed before 2002,Normal,1.0,5.0,5.0,64.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 64% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,,natural,"10, Beacon Road, Lenham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2014-07-04 01:12:12,owner-occupied,11.0,7.0,200003708314.0,Address Matched +306094949042019070408355866310278,6 Yew Tree Place,The Street,Bredhurst,ME7 3LJ,2010043668,D,B,60,84,House,Semi-Detached,2019-07-03,E07000110,E14000700,Kent,2019-07-04,rental (private),53,82,289,97.0,4.1,51,1.4,61.0,61.0,705.0,435.0,101.0,74.0,80.0,Single,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,100.0,0.0,From main system,Very Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"6 Yew Tree Place, The Street, Bredhurst",Maidstone,Faversham and Mid Kent,GILLINGHAM,England and Wales: 1900-1929,2019-07-04 08:35:58,rental (private),,,200003727272.0,Address Matched +6b493aee78d3e3bb1a3ce647ac024bea7bf532cdd56a89723cffe99ab0457fce,101 LACOCK GARDENS,,,ME15 6GT,10001334148,C,A,79,93,House,Mid-Terrace,2021-07-17,E07000110,E14000804,Kent,2021-07-17,rental,81,95,134,21.0,1.4,24,0.3,55.0,55.0,257.0,257.0,79.0,53.0,60.0,Unknown,Y,,,,,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,"Solid, limited insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.3,0.0,N,natural,101 LACOCK GARDENS,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2021-07-17 22:38:28,Rented (private),9.0,,10012891072.0,Energy Assessor +762842159102012032622142498622058,"34, Felderland Drive",,,ME15 9YB,139256968,C,C,70,75,House,Mid-Terrace,2012-03-25,E07000110,E14000700,Kent,2012-03-26,marketed sale,70,75,178,148.0,2.9,34,2.4,67.0,46.0,425.0,374.0,145.0,126.0,77.68,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,55.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 55% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,2.37,0.0,,natural,"34, Felderland Drive",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2012-03-26 22:14:24,owner-occupied,11.0,6.0,200003682816.0,Address Matched +882057489962013021016091604408227,"29, Chancery Lane",,,ME15 6EG,2046894078,D,B,65,87,House,Mid-Terrace,2013-02-10,E07000110,E14000804,Kent,2013-02-10,rental (social),63,89,207,51.0,3.2,40,0.8,56.0,56.0,567.0,352.0,83.0,61.0,80.0,Single,Y,NODATA!,,,2104.0,90.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,78.0,0.0,Gas multipoint,Average,Average,"Suspended, no insulation (assumed)",,,Mostly double glazing,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 78% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"29, Chancery Lane",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2013-02-10 16:09:16,rental (social),9.0,7.0,200003691123.0,Address Matched +1706724104312019031913290294910861,"24, St. Lawrence Crescent",Coxheath,,ME17 4FS,8174443678,B,A,83,94,House,Detached,2019-03-19,E07000110,E14000804,Kent,2019-03-19,new dwelling,84,95,94,20.0,1.5,17,0.4,67.0,67.0,261.0,261.0,75.0,44.0,93.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.20 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.27 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.15 W/m-¦K,Good,Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"24, St. Lawrence Crescent, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2019-03-19 13:29:02,unknown,18.0,18.0,10093306416.0,Address Matched +833431669962012091020370911108212,"11, Tilling Close",,,ME15 6RW,1186651078,B,B,81,82,Flat,Semi-Detached,2012-09-10,E07000110,E14000804,Kent,2012-09-10,rental (private),85,87,96,86.0,1.1,18,1.0,71.0,41.0,182.0,186.0,90.0,90.0,63.0,Unknown,Y,1st,N,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,25.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 25% of fixed outlets,Average,Average,mains gas (not community),0.0,heated corridor,,,0.0,,natural,"11, Tilling Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2012-09-10 20:37:09,rental (private),20.0,5.0,10022895677.0,Address Matched +1611741999062018040322291886678788,"218, Upper Fant Road",,,ME16 8DH,8866956578,E,C,51,77,House,Mid-Terrace,2018-04-03,E07000110,E14000804,Kent,2018-04-03,marketed sale,39,67,315,128.0,6.5,66,2.9,130.0,65.0,988.0,628.0,104.0,71.0,98.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,0.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, smokeless fuel",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"218, Upper Fant Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2018-04-03 22:29:18,owner-occupied,,,200003656298.0,Address Matched +412268652132009121413075977968290,"13, Quarry Road",,,ME15 6UA,5037280768,D,D,66,67,House,End-Terrace,2009-12-14,E07000110,E14000804,Kent,2009-12-14,rental (social),61,61,278,272.0,3.6,46,3.5,65.0,38.0,506.0,511.0,123.0,123.0,76.72,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,30.0,0.0,From main system,Very Good,Very Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 30% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.45,0.0,N,natural,"13, Quarry Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2009-12-14 13:07:59,rental (social),,,200003681972.0,Address Matched +6b45be3ea9e73781ea0db6255d95f4545a2befd692c2a1db4b1db1352f4a44bf,64 Gilbert Way,,,ME17 3TT,10001529453,B,A,83,97,House,Mid-Terrace,2021-09-06,E07000110,E14000700,Kent,2021-09-06,new dwelling,87,101,91,-22.0,1.0,16,-0.2,55.0,55.0,181.0,181.0,61.0,37.0,60.0,standard tariff,,,N,,,100.0,,,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.33,,,,64 Gilbert Way,Maidstone,Faversham and Mid Kent,MAIDSTONE,2017,2021-09-06 12:43:29,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,7.0,,10094441903.0,Energy Assessor +1186141669062014080610424536358844,"5, Carpinus Close",,,ME5 9SS,4329646278,D,C,68,77,House,Detached,2014-08-05,E07000110,E14000700,Kent,2014-08-06,marketed sale,64,73,165,114.0,5.3,32,3.8,114.0,83.0,1016.0,919.0,110.0,111.0,168.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,0.0,10.0,10.0,63.0,1.0,From main system,Good,Good,"Solid, limited insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 63% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"5, Carpinus Close",Maidstone,Faversham and Mid Kent,CHATHAM,England and Wales: 1996-2002,2014-08-06 10:42:45,owner-occupied,19.0,12.0,200003709257.0,Address Matched +505625800152019052407382994210178,"81, Stagshaw Close",,,ME15 6TE,1870047768,C,C,77,77,Flat,End-Terrace,2019-05-20,E07000110,E14000804,Kent,2019-05-24,rental (social),78,78,150,150.0,1.7,26,1.7,61.0,61.0,279.0,279.0,95.0,95.0,64.0,Single,Y,Ground,N,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,88.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 88% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,7.9,,,N,natural,"81, Stagshaw Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2019-05-24 07:38:29,rental (social),,,10022893323.0,Address Matched +6b4e47594e1ab52058c64e39cdf9387ef0084c37dc1e22de38fe8abca19b698c,10 COPSEWOOD WAY,BEARSTED,,ME15 8PL,10001345073,D,B,60,83,House,Semi-Detached,2021-07-02,E07000110,E14000700,Kent,2021-07-02,marketed sale,54,80,287,113.0,4.5,51,1.8,110.0,78.0,695.0,501.0,169.0,80.0,88.0,dual,Y,,,,,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,60.0,0.0,"From main system, no cylinder thermostat",Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 60% of fixed outlets,Good,Good,mains gas (not community),0.0,,,2.4,0.0,N,natural,"10 COPSEWOOD WAY, BEARSTED",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2021-07-02 13:26:42,Owner-occupied,10.0,,200003693119.0,Energy Assessor +1664550539042018091916135968089418,Flat 2 Iona,Warwick Place,,ME16 8SG,4096930678,B,B,84,84,Maisonette,NO DATA!,2018-09-19,E07000110,E14000804,Kent,2018-09-19,new dwelling,87,87,86,86.0,1.0,15,1.0,53.0,53.0,163.0,163.0,83.0,83.0,67.0,standard tariff,,top floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.14 W/m+é-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.17 W/m+é-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.17 W/m+é-¦K,Good,Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Flat 2 Iona, Warwick Place",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2018-09-19 16:13:59,unknown,25.0,25.0,10093304877.0,Address Matched +341808790962009081011041025708131,"20, Merton Road",Bearsted,,ME15 8LJ,3253985668,D,C,60,79,House,Mid-Terrace,2009-08-10,E07000110,E14000700,Kent,2009-08-10,marketed sale,54,76,359,186.0,3.7,60,1.9,61.0,31.0,507.0,276.0,143.0,116.0,61.28,Single,Y,NO DATA!,,,2107.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 0 mm loft insulation",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Poor,Poor,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.41,0.0,N,natural,"20, Merton Road, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2009-08-10 11:04:10,owner-occupied,,,200003685977.0,Address Matched +328468133132009071713503983968704,Flat 4,"34, Ashford Road",,ME14 5BH,3443794668,C,C,70,72,Maisonette,Detached,2009-07-17,E07000110,E14000804,Kent,2009-07-17,marketed sale,71,72,208,198.0,2.7,34,2.5,97.0,49.0,421.0,431.0,96.0,96.0,78.2,dual,Y,1st,Y,2.0,2106.0,95.0,double glazing installed before 2002,Normal,0.0,4.0,3.0,0.0,0.0,From main system,Good,Good,(other premises below),,,Partial double glazing,Average,Average,"Solid brick, as built, insulated (assumed)",Good,Good,Portable electric heaters,,,"Pitched, insulated (assumed)",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.5,0.0,N,natural,"Flat 4, 34, Ashford Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2009-07-17 13:50:39,owner-occupied,,,200003687333.0,Address Matched +460114022742020071018213575409008,"7, Dixon Close",,,ME15 6SS,772324768,D,B,63,83,House,Detached,2020-07-10,E07000110,E14000804,Kent,2020-07-10,rental (private),57,80,272,112.0,3.8,48,1.6,65.0,65.0,675.0,483.0,101.0,72.0,80.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, partial insulation (assumed)",Average,Average,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"7, Dixon Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1976-1982,2020-07-10 18:21:35,rental (private),,,200003664919.0,Address Matched +395469850062009111010001359718171,14 Melrose Close,,,ME15 6ZE,7534569668,B,B,89,89,Flat,NO DATA!,2009-11-09,E07000110,E14000804,Kent,2009-11-10,new dwelling,88,89,109,106.0,0.8,17,0.8,37.0,30.0,189.0,190.0,68.0,68.0,47.98,standard tariff,,mid floor,,,2106.0,,NO DATA!,NO DATA!,,,,9.0,0.0,From main system,Very Good,Very Good,Average thermal transmittance 0.20 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.20 W/m?K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,14 Melrose Close,Maidstone,Maidstone and The Weald,MAIDSTONE,,2009-11-10 10:00:13,,,,10014307000.0,Address Matched +1536047729062017060209401021328453,"8, Admiral Way",Marden,,TN12 9FN,5243221578,B,A,86,93,House,Detached,2017-06-02,E07000110,E14000804,Kent,2017-06-02,new dwelling,85,92,72,31.0,2.3,13,1.0,88.0,88.0,369.0,371.0,110.0,59.0,179.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.12 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.27 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.15 W/m-¦K,Good,Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"8, Admiral Way, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,NO DATA!,2017-06-02 09:40:10,owner-occupied,18.0,18.0,10093303248.0,Address Matched +1181576759962019011109574426098281,"163, Coombe Road",,,ME15 6UR,8237516278,D,C,60,79,House,End-Terrace,2019-01-11,E07000110,E14000804,Kent,2019-01-11,marketed sale,56,77,275,132.0,4.1,48,2.0,61.0,61.0,763.0,598.0,130.0,78.0,85.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, electric",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"163, Coombe Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2019-01-11 09:57:44,owner-occupied,,,200003665277.0,Address Matched +898414205652013031417350491970404,"25, Barton Road",,,ME15 7BU,4491516078,D,C,56,75,House,Mid-Terrace,2013-03-14,E07000110,E14000804,Kent,2013-03-14,marketed sale,51,72,270,139.0,4.5,52,2.4,74.0,47.0,761.0,612.0,85.0,61.0,86.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,43.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 43% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"25, Barton Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2013-03-14 17:35:04,rental (private),7.0,3.0,200003683733.0,Address Matched +1706159117132019031820342961978303,"17, Rawdon Road",,,ME15 6PT,1311343678,D,B,55,86,House,End-Terrace,2019-03-18,E07000110,E14000804,Kent,2019-03-18,rental (private),46,84,327,81.0,6.0,58,1.5,71.0,71.0,993.0,444.0,153.0,73.0,104.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,3.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"17, Rawdon Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2019-03-18 20:34:29,rental (private),,,200003692808.0,Address Matched +1321521939262015052014241216208275,Keepers Cottage,Friningham,Detling,ME14 3JD,7195306378,F,B,27,83,Bungalow,Detached,2015-05-20,E07000110,E14000700,Kent,2015-05-20,marketed sale,6,102,490,92.0,13.0,158,-0.3,51.0,51.0,1302.0,435.0,293.0,99.0,79.0,Single,N,NODATA!,,,2602.0,15.0,double glazing installed before 2002,Normal,1.0,5.0,5.0,100.0,0.0,"Electric immersion, standard tariff",Very Poor,Poor,"Solid, no insulation (assumed)",NO DATA!,,Some double glazing,Very Poor,Very Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 270 mm loft insulation",Good,Good,"Room heaters, smokeless fuel",Poor,Very Poor,Appliance thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,smokeless coal,0.0,NO DATA!,,,,N,natural,"Keepers Cottage, Friningham, Detling",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2015-05-20 14:24:12,owner-occupied,,,200003698154.0,Address Matched +1417263489502016022513494448262458,"26, Chaplin Drive",Headcorn,,TN27 9TN,8573182478,C,B,69,85,House,Detached,2016-02-25,E07000110,E14000700,Kent,2016-02-25,non marketed sale,66,83,203,84.0,3.0,36,1.3,100.0,56.0,526.0,449.0,110.0,73.0,84.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,20.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 20% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"26, Chaplin Drive, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,England and Wales: 1976-1982,2016-02-25 13:49:44,owner-occupied,,,200003699432.0,Address Matched +493211584032010060118551766268200,"207, Tonbridge Road",,,ME16 8NA,8026256768,D,D,66,68,House,Mid-Terrace,2010-04-28,E07000110,E14000804,Kent,2010-06-01,marketed sale,60,63,264,250.0,4.0,44,3.8,69.0,46.0,593.0,574.0,116.0,116.0,84.22,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,50.0,0.0,From main system,Very Good,Very Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 75 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.65,0.0,N,natural,"207, Tonbridge Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2010-06-01 18:55:17,owner-occupied,,,200003657462.0,Address Matched +597265929142014070816572187440888,"8, Cross Keys",Bearsted,,ME14 4HR,2148424868,C,C,74,75,Flat,Semi-Detached,2014-07-08,E07000110,E14000700,Kent,2014-07-08,rental (social),76,77,157,145.0,1.8,30,1.7,58.0,40.0,302.0,313.0,143.0,117.0,60.0,Single,Y,1st,Y,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,57.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 57% of fixed outlets,Good,Good,mains gas (not community),0.0,no corridor,,,0.0,,natural,"8, Cross Keys, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2014-07-08 16:57:21,rental (social),7.0,4.0,200003694908.0,Address Matched +1806177766032020062618392901278705,"18, Coltsfoot Drive",Weavering,,ME14 5FP,6501760778,C,B,71,83,House,Detached,2020-06-26,E07000110,E14000700,Kent,2020-06-26,non marketed sale,66,80,175,95.0,4.4,31,2.4,97.0,97.0,716.0,614.0,152.0,76.0,144.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,2.0,8.0,8.0,100.0,0.0,From main system,Good,Good,"Solid, limited insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"18, Coltsfoot Drive, Weavering",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1996-2002,2020-06-26 18:39:29,owner-occupied,,,200003688374.0,Address Matched +1825745259652020091615465320900877,"2, Gloucester Road",,,ME15 7HR,8732902778,C,B,70,84,House,Semi-Detached,2020-09-14,E07000110,E14000700,Kent,2020-09-16,none of the above,67,81,201,104.0,3.3,35,1.8,88.0,88.0,516.0,486.0,153.0,81.0,94.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,80.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, 350 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"2, Gloucester Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2020-09-16 15:46:53,rental (social),,,200003711784.0,Address Matched +6b8cf405f56f0a172397caae8491e04f63a194733ee87acdb1b14772ba753196,10 Bridle Way,,,ME16 9GU,10001326885,B,A,83,95,House,Detached,2021-09-03,E07000110,E14000804,Kent,2021-09-03,new dwelling,86,96,84,5.0,1.3,15,0.1,71.0,71.0,228.0,228.0,70.0,43.0,88.0,standard tariff,,,N,,,100.0,,,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.33,,,,10 Bridle Way,Maidstone,Maidstone and The Weald,BARMING,2019,2021-09-03 07:12:49,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,1.0,,10094444734.0,Energy Assessor +727474769502011112511155898392358,"16, Keele Avenue",,,ME15 9WU,3576263968,B,B,81,82,House,Detached,2011-11-25,E07000110,E14000700,Kent,2011-11-25,new dwelling,83,84,97,91.0,1.9,19,1.8,84.0,53.0,344.0,348.0,95.0,95.0,101.8,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,5.0,,From main system,Good,Good,Average thermal transmittance 0.20 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.34 W/m?K,Good,Good,,,,Average thermal transmittance 0.24 W/m?K,Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 42% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.31,,,NO DATA!,"16, Keele Avenue",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2011-11-25 11:15:58,,12.0,5.0,10014311558.0,Address Matched +240576010062009030618001518668711,"19, Westerhill Road",Coxheath,,ME17 4DQ,1119178568,D,C,56,69,House,Detached,2009-03-06,E07000110,E14000804,Kent,2009-03-06,rental (private),50,64,306,215.0,6.7,51,4.7,125.0,63.0,850.0,598.0,159.0,159.0,131.34,Single,Y,NO DATA!,,,2106.0,0.0,INVALID!,Normal,0.0,6.0,6.0,0.0,1.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.34,0.0,N,natural,"19, Westerhill Road, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2009-03-06 18:00:15,rental (private),,,200003712051.0,Address Matched +1054400322732013120316583191078297,"51, River Bank Close",,,ME15 7RZ,2771227178,C,B,77,81,Flat,End-Terrace,2013-12-03,E07000110,E14000804,Kent,2013-12-03,rental (private),80,84,123,96.0,1.7,23,1.3,85.0,48.0,234.0,223.0,139.0,111.0,71.0,Single,Y,1st,N,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,22.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 22% of fixed outlets,Poor,Poor,mains gas (not community),0.0,heated corridor,,,0.0,,natural,"51, River Bank Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2013-12-03 16:58:31,rental (private),9.0,2.0,200003725895.0,Address Matched +1534094221912017040720150291030057,"4, Higham View",Sandling,,ME14 3DG,790111578,D,C,60,80,House,Detached,2017-04-07,E07000110,E14000700,Kent,2017-04-07,marketed sale,54,76,250,111.0,4.9,45,2.3,152.0,76.0,792.0,620.0,169.0,78.0,107.0,dual,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,0.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"4, Higham View, Sandling",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1991-1995,2017-04-07 20:15:02,owner-occupied,,,200003672711.0,Address Matched +1093370623512014021919504299940918,"5, Little Buckland Avenue",,,ME16 0BG,9856399178,E,D,50,67,House,Semi-Detached,2014-02-19,E07000110,E14000804,Kent,2014-02-19,marketed sale,45,61,288,185.0,6.5,55,4.3,104.0,64.0,1214.0,995.0,102.0,103.0,118.0,Unknown,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,3.0,6.0,6.0,36.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 36% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"5, Little Buckland Avenue",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2014-02-19 19:50:42,owner-occupied,11.0,4.0,200003659557.0,Address Matched +48630999222010022415405483148980,"14, Westwood Road",,,ME15 6BG,8805963468,D,C,68,75,House,Semi-Detached,2010-02-24,E07000110,E14000804,Kent,2010-02-24,marketed sale,63,71,241,191.0,3.9,40,3.1,91.0,51.0,542.0,456.0,141.0,123.0,110.62,Single,Y,NO DATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,21.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, partial insulation (assumed)",Average,Average,"Room heaters, mains gas",,,"Flat, limited insulation (assumed)",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 21% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.32,0.0,N,natural,"14, Westwood Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1976-1982,2010-02-24 15:40:54,owner-occupied,,,200003676148.0,Address Matched +1604611360552018020217023091080454,"34, Robins Avenue",Lenham,,ME17 2HP,4406016578,E,C,52,76,House,Semi-Detached,2018-02-02,E07000110,E14000700,Kent,2018-02-02,marketed sale,48,74,344,153.0,4.7,60,2.1,85.0,55.0,837.0,652.0,165.0,70.0,78.0,Single,Y,NODATA!,,,2107.0,,not defined,Much More Than Typical,2.0,5.0,5.0,45.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 45% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,"mechanical, supply and extract","34, Robins Avenue, Lenham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2018-02-02 17:02:30,owner-occupied,,,200003708374.0,Address Matched +1552929711112017061611591594930855,1 Burgess Fields,Lenham Heath,,ME17 2DZ,8570142578,B,A,82,98,House,Detached,2017-06-16,E07000110,E14000700,Kent,2017-06-16,new dwelling,84,98,80,2.0,3.2,14,0.1,99.0,99.0,626.0,626.0,240.0,147.0,239.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Poor,Good,Average thermal transmittance 0.12 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.28 W/m-¦K,Very Good,Very Good,"Room heaters, wood logs",,,Average thermal transmittance 0.16 W/m-¦K,Good,Good,"Air source heat pump, underfloor, electric",Good,Very Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"1 Burgess Fields, Lenham Heath",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2017-06-16 11:59:15,unknown,25.0,25.0,10093304818.0,Address Matched +160664522202020030222233150202588,"86, Marion Crescent",,,ME15 7DU,4232122568,E,D,51,67,House,Detached,2020-02-28,E07000110,E14000700,Kent,2020-03-02,marketed sale,47,62,330,219.0,5.7,58,3.8,94.0,74.0,1153.0,1012.0,104.0,75.0,98.0,Single,Y,NODATA!,,,2106.0,77.0,"double glazing, unknown install date",Normal,2.0,5.0,4.0,73.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Partial double glazing,Average,Average,"Cavity wall, filled cavity",Average,Average,Portable electric heaters (assumed),,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 73% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"86, Marion Crescent",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2020-03-02 22:23:31,owner-occupied,,,200003677413.0,Address Matched +6bcaf3ea9f0aa7d1431964639aaab6397e0a6bee0a78ab39d24bd57c758b8dfc,"Flat 13 Adeline Heights, Rosalind Drive",,,ME14 2FP,10001663767,B,B,84,84,Flat,End-Terrace,2021-07-02,E07000110,E14000804,Kent,2021-07-02,new dwelling,88,88,81,81.0,1.0,14,1.0,58.0,58.0,181.0,181.0,71.0,71.0,69.0,standard tariff,,2,N,,,100.0,,,,,,100.0,0.0,From main system,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.52 W/m-¦K,Good,Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.5,,,,"Flat 13 Adeline Heights, Rosalind Drive",Maidstone,Maidstone and The Weald,Maidstone,2018,2021-07-02 16:02:53,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,10.0,,10094441276.0,Address Matched +610096347932011032823551348268106,Nephin,Leeds Road,Langley,ME17 3JQ,4618125868,D,C,65,72,Bungalow,Detached,2011-03-28,E07000110,E14000700,Kent,2011-03-28,marketed sale,60,67,267,220.0,4.0,44,3.3,98.0,49.0,595.0,510.0,141.0,141.0,89.15,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,0.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 50 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.37,0.0,N,natural,"Nephin, Leeds Road, Langley",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1976-1982,2011-03-28 23:55:13,owner-occupied,,,200003697892.0,Address Matched +1384494119922015111214541400828815,Flat 92,Miller House,43-51 Lower Stone Street,ME15 6GB,1093150478,C,C,74,74,Flat,NO DATA!,2015-11-12,E07000110,E14000804,Kent,2015-11-12,none of the above,80,80,256,256.0,1.0,45,1.0,19.0,19.0,224.0,224.0,56.0,56.0,21.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Good,Good,Average thermal transmittance 0.86 W/m-¦K,Average,Average,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Flat 92, Miller House, 43-51 Lower Stone Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2015-11-12 14:54:14,unknown,4.0,4.0,10091196189.0,Address Matched +1522733489852020072714363922200057,"9, The Mews",Lesley Place,,ME16 0TU,716920578,E,C,48,70,House,End-Terrace,2020-07-25,E07000110,E14000804,Kent,2020-07-27,marketed sale,30,45,519,339.0,6.5,88,4.3,68.0,68.0,1033.0,899.0,323.0,143.0,74.0,dual,N,NODATA!,,,2704.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,100.0,0.0,"Electric immersion, off-peak",Very Poor,Poor,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,Portable electric heaters (assumed),,,"Pitched, 100 mm loft insulation",Average,Average,Electric underfloor heating,Average,Very Poor,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,NO DATA!,,,,N,natural,"9, The Mews, Lesley Place",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2020-07-27 14:36:39,owner-occupied,,,200003670307.0,Address Matched +1578263429542017092814425854432438,"47, Trevor Drive",,,ME16 0QW,523324578,C,B,71,89,Bungalow,Semi-Detached,2017-09-27,E07000110,E14000804,Kent,2017-09-28,marketed sale,71,90,214,48.0,1.9,38,0.5,44.0,44.0,358.0,299.0,83.0,53.0,52.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,83.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 270 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 83% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"47, Trevor Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2017-09-28 14:42:58,owner-occupied,,,200003659281.0,Address Matched +1681939253032020072409225023278408,4 Kintons Walk,Yalding,,ME18 6FF,5843461678,B,A,85,97,House,Mid-Terrace,2020-07-24,E07000110,E14000804,Kent,2020-07-24,new dwelling,88,100,76,-9.0,1.1,13,-0.1,70.0,70.0,189.0,189.0,77.0,47.0,81.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.22 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"4 Kintons Walk, Yalding",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2020-07-24 09:22:50,unknown,10.0,10.0,10094439991.0,Address Matched +368271640222009092311252507728871,Flat 6 The Square,"4, Square Hill Road",,ME15 7TL,7056477668,E,D,54,55,Flat,Semi-Detached,2009-09-22,E07000110,E14000804,Kent,2009-09-23,new dwelling,65,66,268,265.0,3.3,40,3.2,67.0,45.0,569.0,578.0,149.0,149.0,81.0,off-peak 7 hour,,top floor,,,,,NO DATA!,NO DATA!,,,,,,From main system,Poor,Poor,(other premises below),,,Fully double glazed,Good,Good,Average thermal transmittance 0.23 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.18 W/m?K,Good,Good,"Boiler and radiators, electric",Very Poor,Poor,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 50% of fixed outlets,Good,Good,"Electricity: electricity, unspecified tariff",0.0,NO DATA!,,3.0,,,NO DATA!,"Flat 6 The Square, 4, Square Hill Road",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2009-09-23 11:25:25,,,,10014308787.0,Address Matched +17294930932011100315505807068096,130 Wallis Place,Hart Street,,ME16 8FD,3637088468,B,B,82,82,Flat,NO DATA!,2011-10-03,E07000110,E14000804,Kent,2011-10-03,new dwelling,86,86,95,95.0,1.2,18,1.2,35.0,35.0,206.0,206.0,82.0,82.0,64.0,standard tariff,,top floor,,,,,NO DATA!,NO DATA!,,,,6.0,,From main system,Good,Good,(other premises below),,,Fully double glazed,Good,Good,Average thermal transmittance 0.25 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.23 W/m?K,Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,,,NO DATA!,"130 Wallis Place, Hart Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2011-10-03 15:50:58,,6.0,6.0,10022900734.0,Address Matched +176852940022008110512593953458698,Flat 3 St. Davids House,Nottingham Avenue,,ME15 7PR,9545483568,C,C,72,74,Flat,Semi-Detached,2008-11-05,E07000110,E14000700,Kent,2008-11-05,rental (social),69,70,253,244.0,2.2,42,2.2,48.0,24.0,297.0,301.0,65.0,65.0,53.36,Single,Y,Ground,N,2.0,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,0.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.33,0.0,N,natural,"Flat 3 St. Davids House, Nottingham Avenue",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2008-11-05 12:59:39,rental (social),,,200003713147.0,Address Matched +643962046932011061909403301968204,"66, Corner Farm Road",Staplehurst,,TN12 0PS,4461277868,D,C,59,69,House,Detached,2011-06-19,E07000110,E14000804,Kent,2011-06-19,marketed sale,54,65,242,182.0,6.0,47,4.5,109.0,58.0,868.0,721.0,176.0,109.0,129.24,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,2.0,7.0,7.0,13.0,0.0,"From main system, no cylinder thermostat",Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, partial insulation (assumed)",Average,Average,"Room heaters, mains gas",,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 13% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,2.38,0.0,,natural,"66, Corner Farm Road, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1976-1982,2011-06-19 09:40:33,owner-occupied,23.0,3.0,200003679424.0,Address Matched +6be22693c5e00cecf84414c31e2ac025b3ce76eb48959ef63db488c490b44993,Flat 107,Scotney Gardens,St. Peters Street,ME16 0GT,10001649015,B,B,81,81,Flat,Mid-Terrace,2021-08-24,E07000110,E14000804,Kent,2021-08-25,rental,69,71,207,194.0,2.4,35,2.3,71.0,71.0,242.0,242.0,195.0,165.0,69.0,dual,N,01,N,,,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,"Electric immersion, off-peak",Average,Poor,"To external air, insulated (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,(another dwelling above),,,"Electric storage heaters, Electric storage heaters",Average,Very Poor,Automatic charge control,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,heated corridor,,2.27,0.0,N,natural,"Flat 107, Scotney Gardens, St. Peters Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2021-08-25 12:25:53,Rented (private),7.0,,10022893475.0,Energy Assessor +6be2a76b72bfa333bcf2d24ec75a8ca1a2e240d27050e3b105717d9ffe39f439,9 Freshland Road,,,ME16 0WH,10001586386,C,C,78,79,Flat,End-Terrace,2021-08-28,E07000110,E14000804,Kent,2021-08-28,marketed sale,80,81,131,122.0,1.6,23,1.5,74.0,74.0,283.0,264.0,77.0,77.0,71.0,Single,Y,03,Y,,,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,90.0,0.0,From main system,Good,Good,(another dwelling below),,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 90% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,8.14,2.36,0.0,N,natural,9 Freshland Road,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2021-08-28 14:30:35,Owner-occupied,10.0,,10022901679.0,Energy Assessor +6beb6b1bb7f574f6018ad5cfd05dc8d2d153ef72b3a100122be581a9cb9f8081,"Flat 6 Adeline Heights, Rosalind Drive",,,ME14 2FP,10001691831,B,B,84,84,Flat,Mid-Terrace,2021-07-15,E07000110,E14000804,Kent,2021-07-15,new dwelling,87,87,82,82.0,1.1,14,1.1,68.0,68.0,168.0,168.0,93.0,93.0,75.0,standard tariff,,1,N,,,100.0,,,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.14 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.43 W/m-¦K,Good,Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.5,,,,"Flat 6 Adeline Heights, Rosalind Drive",Maidstone,Maidstone and The Weald,Maidstone,2018,2021-07-15 09:54:12,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,10.0,,10094441269.0,Address Matched +1416725089142016022420003640262848,"1, Allington Way",,,ME16 0HH,1130082478,D,C,59,79,House,Detached,2016-02-24,E07000110,E14000804,Kent,2016-02-24,marketed sale,50,73,249,121.0,7.8,44,3.8,147.0,87.0,1363.0,924.0,193.0,81.0,176.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,2.0,8.0,8.0,32.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Roof room(s), ceiling insulated",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 32% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"1, Allington Way",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2016-02-24 20:00:36,owner-occupied,,,200003706592.0,Address Matched +743858119602017050810515191530188,Malvern,Harple Lane,Detling,ME14 3EU,9688215968,C,B,71,85,Bungalow,Detached,2017-05-08,E07000110,E14000700,Kent,2017-05-08,marketed sale,68,82,188,90.0,3.1,33,1.5,61.0,61.0,571.0,491.0,97.0,63.0,95.0,Unknown,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"Malvern, Harple Lane, Detling",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2017-05-08 10:51:51,owner-occupied,,,200003723371.0,Address Matched +1015100321732013092708021063278900,"67, The Quarries",Boughton Monchelsea,,ME17 4NJ,2003934178,D,B,60,84,House,End-Terrace,2013-09-25,E07000110,E14000700,Kent,2013-09-27,marketed sale,61,86,238,83.0,3.4,42,1.1,82.0,48.0,663.0,530.0,102.0,69.0,81.0,Unknown,Y,NODATA!,,,2107.0,100.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,27.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Granite or whinstone, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 27% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"67, The Quarries, Boughton Monchelsea",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2013-09-27 08:02:10,owner-occupied,11.0,3.0,200003709816.0,Address Matched +1157980859502014062500134129449828,23c Elizabeth House,Alexandra Street,,ME14 2BX,1526254278,E,C,51,75,Flat,End-Terrace,2014-06-12,E07000110,E14000804,Kent,2014-06-25,assessment for green deal,35,57,654,379.0,4.1,116,2.4,40.0,27.0,488.0,214.0,172.0,102.0,35.0,dual,N,2nd,Y,,2401.0,100.0,double glazing installed before 2002,Normal,0.0,1.0,1.0,50.0,0.0,"Electric immersion, off-peak",Poor,Very Poor,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,"Pitched, 75 mm loft insulation",Average,Average,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 50% of fixed outlets,Good,Good,electricity (not community),0.0,no corridor,,,0.0,,natural,"23c Elizabeth House, Alexandra Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2014-06-25 00:13:41,rental (private),4.0,2.0,200003704652.0,Address Matched +546773929922010092918290360868060,"34, Cornhill Place",,,ME15 6GX,6622230868,C,C,73,74,Flat,Mid-Terrace,2010-09-16,E07000110,E14000804,Kent,2010-09-29,new dwelling,82,82,152,144.0,1.5,23,1.4,62.0,40.0,175.0,177.0,265.0,265.0,64.9,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,,,"Electric immersion, standard tariff",Very Poor,Poor,(other premises below),,,Fully double glazed,Good,Good,Average thermal transmittance 0.32 W/m?K,Good,Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 43% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.3,,,NO DATA!,"34, Cornhill Place",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2010-09-29 18:29:03,,,,10022895039.0,Address Matched +904497259742013032609520203672568,"2, The Morlings",Bearsted,,ME14 4FG,2785556078,B,B,85,85,House,Detached,2013-03-26,E07000110,E14000700,Kent,2013-03-26,new dwelling,86,86,69,69.0,2.4,13,2.4,89.0,89.0,429.0,429.0,62.0,62.0,185.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,"From main system, plus solar",Very Good,Very Good,Average thermal transmittance 0.18 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m?K,Very Good,Very Good,"Room heaters, mains gas",,,Average thermal transmittance 0.11 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in 83% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"2, The Morlings, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2013-03-26 09:52:02,NO DATA!,23.0,19.0,10014312639.0,Address Matched +505915291712020062916183424200676,9 Dudley House,Church Street,,ME14 1BF,6656147768,D,C,62,77,Flat,Semi-Detached,2020-06-29,E07000110,E14000804,Kent,2020-06-29,rental (private),57,79,297,146.0,3.2,52,1.6,58.0,59.0,570.0,271.0,86.0,88.0,60.0,Single,Y,Ground,N,,2106.0,0.0,not defined,Normal,0.0,2.0,2.0,86.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Single glazed,Very Poor,Very Poor,"Sandstone or limestone, as built, no insulation (assumed)",Poor,Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 86% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,6.38,,,N,natural,"9 Dudley House, Church Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2020-06-29 16:18:34,rental (private),,,10014306338.0,Address Matched +1372965579062015112418261369888165,"15c, Ashford Road",,,ME14 5DA,6637769378,D,C,57,75,Flat,Semi-Detached,2015-10-08,E07000110,E14000804,Kent,2015-11-24,marketed sale,62,60,277,286.0,2.7,47,2.8,40.0,45.0,517.0,307.0,230.0,114.0,58.0,Single,N,1st,Y,,2603.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,"Electric immersion, standard tariff",Very Poor,Poor,(another dwelling below),NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,,,,"Flat, insulated",Good,Good,"Room heaters, electric",Very Poor,Poor,Programmer and appliance thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,no corridor,,,,N,"mechanical, extract only","15c, Ashford Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2015-11-24 18:26:13,owner-occupied,,,10091194372.0,Address Matched +597666514852016091621524392960988,"45, Rosemary Road",Bearsted,,ME15 8NP,9848424868,C,B,72,89,Bungalow,Semi-Detached,2016-09-16,E07000110,E14000700,Kent,2016-09-16,rental (social),73,90,217,57.0,1.8,38,0.5,59.0,35.0,298.0,306.0,127.0,73.0,48.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,29.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 29% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,2.34,,N,natural,"45, Rosemary Road, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1976-1982,2016-09-16 21:52:43,rental (social),,,200003693057.0,Address Matched +6c25ff229d1abe6fbcb22173971b5208fd7957a9d70f71f8878f6f7e8da9dc1a,Flat 1,229 Boxley Road,Penenden Heath,ME14 2BH,10001678722,D,C,67,77,Flat,Semi-Detached,2021-09-24,E07000110,E14000804,Kent,2021-09-26,marketed sale,63,77,229,145.0,3.3,40,2.1,71.0,71.0,559.0,348.0,90.0,90.0,82.0,Single,Y,-1,N,,,100.0,"double glazing, unknown install date",Normal,1.0,3.0,3.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,8.2,2.3,0.0,N,natural,"Flat 1, 229 Boxley Road, Penenden Heath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2021-09-26 10:21:37,Owner-occupied,8.0,,200003704698.0,Energy Assessor +1703600322352019030817261892010967,"12, Bermelie Fields",Barming,,ME16 9FP,9775223678,B,A,84,96,House,End-Terrace,2019-03-08,E07000110,E14000804,Kent,2019-03-08,new dwelling,86,98,83,-3.0,1.2,14,0.0,64.0,64.0,202.0,202.0,72.0,42.0,80.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"12, Bermelie Fields, Barming",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2019-03-08 17:26:18,unknown,1.0,1.0,10093305968.0,Address Matched +1276769692532015021111344427978702,"44, Calder Road",,,ME14 2QG,9267782378,D,B,64,87,House,End-Terrace,2015-02-11,E07000110,E14000804,Kent,2015-02-11,marketed sale,61,86,271,72.0,2.9,48,0.8,41.0,41.0,519.0,365.0,129.0,75.0,60.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 270 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"44, Calder Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2015-02-11 11:34:44,owner-occupied,,,200003670807.0,Address Matched +1785167322032020021510144948078409,"15, Dhekelia Close",Invicta Park,,ME14 2NX,2918419678,D,B,61,81,House,Mid-Terrace,2020-02-07,E07000110,E14000804,Kent,2020-02-15,Stock Condition Survey,55,78,295,125.0,3.6,52,1.6,57.0,57.0,651.0,490.0,92.0,62.0,70.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Flat, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"15, Dhekelia Close, Invicta Park",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2020-02-15 10:14:49,rental (social),,,200003723942.0,Address Matched +1333126046532015061611413863978502,24 Pearl House,Coral Park,,ME14 5HQ,4253586378,C,C,80,80,Flat,Enclosed End-Terrace,2015-06-16,E07000110,E14000804,Kent,2015-06-16,rental (private),72,72,195,195.0,2.2,33,2.2,54.0,54.0,204.0,204.0,142.0,142.0,66.0,dual,N,1st,N,,2401.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,100.0,0.0,"Electric immersion, off-peak",Average,Poor,(another dwelling below),NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,(another dwelling above),,,Electric storage heaters,Poor,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,unheated corridor,6.06,,,N,natural,"24 Pearl House, Coral Park",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2015-06-16 11:41:38,rental (private),,,10022893763.0,Address Matched +276377539542019021908071165119788,"25, Stagshaw Close",,,ME15 6TE,5527231668,C,A,79,92,House,Mid-Terrace,2019-02-18,E07000110,E14000804,Kent,2019-02-19,marketed sale,81,94,125,26.0,1.6,22,0.4,76.0,59.0,251.0,253.0,98.0,66.0,73.0,Unknown,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,70.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Timber frame, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 70% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"25, Stagshaw Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2019-02-19 08:07:11,owner-occupied,,,10022893267.0,Address Matched +165708760832008102022251621268298,"9, Horton Downs",Downswood,,ME15 8TN,6811292568,E,C,54,73,Bungalow,Detached,2008-10-20,E07000110,E14000700,Kent,2008-10-20,marketed sale,48,69,378,219.0,4.9,63,2.8,70.0,35.0,551.0,343.0,144.0,104.0,87.62,Unknown,Y,NO DATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,0.0,0.0,From main system,Average,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, partial insulation (assumed)",Average,Average,"Room heaters, mains gas",,,"Pitched, 100mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Average,Good,Programmer and room thermostat,Poor,Poor,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.34,0.0,N,natural,"9, Horton Downs, Downswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1976-1982,2008-10-20 22:25:16,owner-occupied,,,200003686533.0,Address Matched +654322013932011071508320121968501,Flat 16 The Cloisters,Ham Lane,Lenham,ME17 2PZ,1161548868,D,C,61,79,Maisonette,NO DATA!,2011-07-14,E07000110,E14000700,Kent,2011-07-15,marketed sale,64,64,342,343.0,2.2,60,2.2,44.0,24.0,294.0,171.0,181.0,88.0,35.7,Single,N,1st,Y,,2601.0,100.0,double glazing installed before 2002,Normal,0.0,2.0,2.0,0.0,0.0,"Electric immersion, standard tariff",Very Poor,Very Poor,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Average,Average,"Room heaters, electric",Very Poor,Very Poor,No thermostatic control of room temperature,Poor,Poor,No low energy lighting,Very Poor,Very Poor,electricity (not community),0.0,no corridor,,2.3,0.0,,natural,"Flat 16 The Cloisters, Ham Lane, Lenham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2011-07-15 08:32:01,owner-occupied,6.0,0.0,200003712565.0,Address Matched +1633499745832018052220024622278404,"73, York Road",,,ME15 7QU,4432418578,C,B,71,87,House,Mid-Terrace,2018-05-21,E07000110,E14000700,Kent,2018-05-22,rental (social),70,87,203,73.0,2.4,36,0.9,91.0,49.0,371.0,348.0,121.0,75.0,68.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,2.0,5.0,5.0,13.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 13% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"73, York Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2018-05-22 20:02:46,rental (social),,,200003715705.0,Address Matched +1730178519142019061911245369519318,"8, Longsole Way",,,ME16 9FF,3148415678,B,B,88,89,House,Detached,2019-06-19,E07000110,E14000804,Kent,2019-06-19,new dwelling,88,90,55,46.0,1.6,10,1.3,90.0,90.0,321.0,323.0,104.0,57.0,163.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.17 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"8, Longsole Way",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2019-06-19 11:24:53,unknown,15.0,15.0,10093303539.0,Address Matched +6c3c27b53b19e901a255325c3142a3617553c866acb0d374537d762d3cf11ebe,11 Broadclough Way,Maidstone,,ME17 3UX,10001338614,B,A,84,93,House,Detached,2021-08-05,E07000110,E14000700,Kent,2021-08-05,new dwelling,84,94,88,26.0,1.8,16,0.6,85.0,85.0,284.0,285.0,94.0,53.0,118.0,standard tariff,,,N,,,100.0,,,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.28 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.14 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.82,,,,"11 Broadclough Way, Maidstone",Maidstone,Faversham and Mid Kent,KENT,2021,2021-08-05 13:09:49,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,10.0,,10095449049.0,Address Matched +858690739042012112711412204322338,"4, Bilberry Close",Weavering,,ME14 5UR,9087033078,D,B,61,89,House,Mid-Terrace,2012-11-27,E07000110,E14000700,Kent,2012-11-27,marketed sale,59,91,242,40.0,3.5,46,0.6,85.0,43.0,506.0,311.0,162.0,67.0,75.0,Single,Y,NODATA!,,,2102.0,0.0,single glazing,Normal,0.0,4.0,4.0,0.0,0.0,"From main system, no cylinder thermostat",Average,Average,"Solid, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"4, Bilberry Close, Weavering",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2012-11-27 11:41:22,owner-occupied,8.0,0.0,200003689240.0,Address Matched +220082879152019071311341799910955,Wagoners Cottage,Church Road,Chart Sutton,ME17 3RE,9516996568,E,A,40,104,House,Detached,2019-07-13,E07000110,E14000700,Kent,2019-07-13,rental (private),34,98,513,-13.0,6.1,91,0.0,53.0,53.0,1074.0,544.0,102.0,46.0,67.0,Single,Y,NODATA!,,,2104.0,80.0,"double glazing, unknown install date",Normal,0.0,1.0,1.0,100.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Mostly double glazing,Poor,Poor,"Timber frame, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Roof room(s), no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"Wagoners Cottage, Church Road, Chart Sutton",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2019-07-13 11:34:17,rental (private),,,200003694473.0,Address Matched +597112301452011060923484292090983,"31, Coombe Road",,,ME15 6UE,9330124868,D,D,58,62,House,Semi-Detached,2011-06-09,E07000110,E14000804,Kent,2011-06-09,rental (social),55,59,295,267.0,3.6,57,3.3,61.0,35.0,566.0,529.0,115.0,115.0,64.1,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,2.0,3.0,3.0,25.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"System built, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 25% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,2.48,0.0,,natural,"31, Coombe Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2011-06-09 23:48:42,rental (social),8.0,2.0,200003682107.0,Address Matched +1431618689602016041117443744360158,Flat 52,Concorde House,London Road,ME16 8QA,7618183478,C,C,73,73,Flat,Mid-Terrace,2016-04-05,E07000110,E14000804,Kent,2016-04-11,rental (private),69,69,278,278.0,1.7,47,1.7,28.0,28.0,243.0,243.0,148.0,148.0,37.0,dual,N,4th,N,,2107.0,100.0,double glazing installed during or after 2002,Normal,0.0,1.0,1.0,100.0,0.0,From main system,Poor,Poor,(another dwelling below),NO DATA!,,Fully double glazed,Good,Good,"System built, with internal insulation",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, electric",Very Poor,Poor,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,unheated corridor,6.19,2.5,,N,natural,"Flat 52, Concorde House, London Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2016-04-11 17:44:37,rental (private),,,, +1679519227752018111717051394989169,Jasmine Cottage,Albion Road,Marden,TN12 9EF,1997741678,E,A,52,95,House,End-Terrace,2018-11-17,E07000110,E14000804,Kent,2018-11-17,marketed sale,51,90,371,56.0,3.7,60,0.4,46.0,46.0,738.0,691.0,92.0,60.0,61.0,Unknown,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,4.0,4.0,100.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Timber frame, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"Jasmine Cottage, Albion Road, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: before 1900,2018-11-17 17:05:13,owner-occupied,,,200003665074.0,Address Matched +1667186989262018092909043820968808,Bens Oak,Goudhurst Road,Marden,TN12 9LT,290850678,D,C,57,70,House,Detached,2018-09-26,E07000110,E14000804,Kent,2018-09-29,marketed sale,51,63,180,116.0,7.3,44,5.2,160.0,92.0,928.0,832.0,109.0,74.0,168.0,Single,N,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,8.0,8.0,25.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, insulated (assumed)",Average,Average,"Boiler and radiators, oil",Average,Average,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 25% of fixed outlets,Average,Average,oil (not community),0.0,NO DATA!,,,,N,natural,"Bens Oak, Goudhurst Road, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1983-1990,2018-09-29 09:04:38,owner-occupied,,,200003730587.0,Address Matched +597264339022016030121091114498926,"3, St. Ronans Close",,,ME15 9AZ,2115324868,C,B,70,88,Bungalow,Mid-Terrace,2016-03-01,E07000110,E14000700,Kent,2016-03-01,rental (social),69,88,247,78.0,2.0,44,0.7,33.0,33.0,356.0,343.0,126.0,73.0,46.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"3, St. Ronans Close",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2016-03-01 21:09:11,rental (social),,,200003713915.0,Address Matched +1016758669062013100117390504998707,The Haven,Hunton Road,Marden,TN12 9QX,59654178,D,C,60,79,Bungalow,Detached,2013-10-01,E07000110,E14000804,Kent,2013-10-01,marketed sale,56,78,208,98.0,5.8,39,2.8,109.0,73.0,1036.0,743.0,144.0,78.0,147.0,Unknown,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,7.0,7.0,50.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"The Haven, Hunton Road, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1991-1995,2013-10-01 17:39:05,owner-occupied,20.0,10.0,200003669299.0,Address Matched +239652895512009022514470603210556,"113, Wheeler Street",,,ME14 2UA,5649538568,D,C,60,72,House,Mid-Terrace,2009-02-25,E07000110,E14000804,Kent,2009-02-25,rental (private),54,67,353,248.0,3.8,59,2.7,52.0,30.0,538.0,398.0,88.0,77.0,64.06,Single,Y,NO DATA!,,,2105.0,100.0,double glazing installed before 2002,Normal,1.0,4.0,4.0,30.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Sandstone, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and at least two room thermostats,Average,Average,Low energy lighting in 30% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.51,0.0,N,natural,"113, Wheeler Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2009-02-25 14:47:06,rental (private),,,200003703461.0,Address Matched +426229899222010012611095411068680,"10, Willow Crescent",Staplehurst,,TN12 0QS,8132971768,C,C,69,73,House,End-Terrace,2010-01-26,E07000110,E14000804,Kent,2010-01-26,marketed sale,64,69,239,206.0,3.7,40,3.2,48.0,48.0,563.0,493.0,116.0,102.0,92.7,Unknown,Y,NO DATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.27,0.0,N,natural,"10, Willow Crescent, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1950-1966,2010-01-26 11:09:54,owner-occupied,,,200003679360.0,Address Matched +1244232239352014122316574895249433,"60, Wallis Avenue",,,ME15 9FU,4387950378,B,A,83,94,House,Mid-Terrace,2014-12-23,E07000110,E14000700,Kent,2014-12-23,new dwelling,85,95,95,21.0,1.6,17,0.4,60.0,60.0,288.0,288.0,87.0,55.0,94.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.18 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"60, Wallis Avenue",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2014-12-23 16:57:48,unknown,10.0,10.0,10014315856.0,Address Matched +1784655802022020021307084829468630,"48, Perryfield Street",,,ME14 2SX,3234019678,D,B,65,84,House,Mid-Terrace,2020-02-06,E07000110,E14000804,Kent,2020-02-13,marketed sale,60,82,247,97.0,3.4,44,1.4,62.0,62.0,593.0,443.0,98.0,67.0,77.0,Single,Y,NODATA!,,,2106.0,80.0,"double glazing, unknown install date",Normal,2.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"To unheated space, no insulation (assumed)",NO DATA!,,Mostly double glazing,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"48, Perryfield Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2020-02-13 07:08:48,owner-occupied,,,200003669699.0,Address Matched +747755239802012020713090894520438,"20, Balliol Grove",,,ME15 9WQ,8897835968,B,B,81,82,House,Detached,2012-02-07,E07000110,E14000700,Kent,2012-02-07,new dwelling,82,83,96,90.0,2.2,18,2.1,94.0,58.0,396.0,401.0,95.0,95.0,118.49,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,5.0,,From main system,Good,Good,Average thermal transmittance 0.21 W/m?K,Good,Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.36 W/m?K,Good,Good,,,,Average thermal transmittance 0.24 W/m?K,Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 38% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.31,,,NO DATA!,"20, Balliol Grove",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2012-02-07 13:09:08,,13.0,5.0,10014311664.0,Address Matched +1384528759802015111214531845059528,Flat 55,Miller House,43-51 Lower Stone Street,ME15 6GB,1826150478,B,B,81,81,Flat,NO DATA!,2015-11-12,E07000110,E14000804,Kent,2015-11-12,none of the above,85,85,115,115.0,1.1,20,1.1,37.0,37.0,223.0,223.0,70.0,70.0,53.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Good,Good,Average thermal transmittance 0.68 W/m-¦K,Average,Average,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Flat 55, Miller House, 43-51 Lower Stone Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2015-11-12 14:53:18,unknown,4.0,4.0,10091196152.0,Address Matched +6c64d8c43425e0f6f37f9ff6ce72916eb3e964d213b10bc6410b2baefd4f800c,25 BYCHURCH PLACE,WATERLOO STREET,,ME15 7UQ,10001432654,E,C,52,75,Flat,End-Terrace,2021-06-09,E07000110,E14000804,Kent,2021-07-09,rental,47,76,414,177.0,4.0,73,1.7,100.0,50.0,551.0,293.0,226.0,99.0,55.0,Single,Y,00,N,,,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,0.0,0.0,"From main system, no cylinder thermostat",Poor,Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,no corridor,,2.4,0.0,N,natural,"25 BYCHURCH PLACE, WATERLOO STREET",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1976-1982,2021-07-09 11:29:24,Rented (social),6.0,,200003696665.0,Energy Assessor +6c61d3efdd4d37181c6aae570beb62358b458c42828acd62a855cda5421bb440,14 NEATH COURT,NORTHUMBERLAND ROAD,,ME15 7JS,10001368634,C,C,70,73,Maisonette,End-Terrace,2021-07-14,E07000110,E14000700,Kent,2021-07-14,marketed sale,52,56,408,374.0,3.1,69,2.9,66.0,47.0,416.0,373.0,172.0,172.0,45.0,dual,N,01,Y,,,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,60.0,0.0,"Electric immersion, off-peak",Average,Poor,(another dwelling below),,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,"Pitched, 200 mm loft insulation",Good,Good,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 60% of fixed outlets,Good,Good,electricity (not community),0.0,no corridor,,2.31,0.0,N,natural,"14 NEATH COURT, NORTHUMBERLAND ROAD",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2021-07-14 14:57:01,Owner-occupied,5.0,,200003684361.0,Energy Assessor +597993202222020072215454754098110,"47, Lower Road",,,ME15 7RH,1565034868,D,B,63,86,House,Semi-Detached,2020-07-21,E07000110,E14000804,Kent,2020-07-22,none of the above,59,84,280,94.0,3.3,49,1.2,71.0,71.0,474.0,398.0,214.0,76.0,68.0,dual,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,88.0,0.0,"From main system, no cylinder thermostat",Average,Average,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, 350 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 88% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"47, Lower Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2020-07-22 15:45:47,rental (social),,,200003695288.0,Address Matched +1594528679022017120513460795058173,"28, Yeoman Way",Bearsted,,ME15 8PH,7922735578,C,B,71,82,Bungalow,Detached,2017-12-05,E07000110,E14000700,Kent,2017-12-05,marketed sale,64,77,180,111.0,5.5,32,3.4,115.0,89.0,932.0,766.0,138.0,112.0,173.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,8.0,8.0,70.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 70% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"28, Yeoman Way, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2017-12-05 13:46:07,owner-occupied,,,200003690927.0,Address Matched +69472987312009051418373808910749,"31, Bankfields",Headcorn,,TN27 9QY,7961784468,D,C,59,73,House,Detached,2009-05-14,E07000110,E14000700,Kent,2009-05-14,marketed sale,52,69,312,199.0,5.4,52,3.5,61.0,50.0,704.0,468.0,156.0,113.0,104.1,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,6.0,6.0,80.0,0.0,From main system,Average,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, partial insulation (assumed)",Average,Average,"Room heaters, mains gas",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Average,Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,0.0,N,natural,"31, Bankfields, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,England and Wales: 1976-1982,2009-05-14 18:37:38,owner-occupied,,,200003699700.0,Address Matched +252480050222009032311521269308641,"3, St. Andrews Park",Tarragon Road,,ME16 0WD,4691559568,C,C,73,78,Flat,Detached,2009-03-20,E07000110,E14000804,Kent,2009-03-23,rental (private),70,75,189,156.0,3.4,31,2.8,108.0,54.0,361.0,333.0,117.0,100.0,108.6,Single,Y,Ground,N,3.0,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Granite or whin, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,unheated corridor,5.5,2.95,0.0,N,natural,"3, St. Andrews Park, Tarragon Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1991-1995,2009-03-23 11:52:12,rental (private),,,200003654959.0,Address Matched +1763559189062019110616464737568401,"4, The Paddocks",Lenham,,ME17 2FD,352857678,B,A,83,119,House,End-Terrace,2019-11-06,E07000110,E14000700,Kent,2019-11-06,new dwelling,85,119,97,-150.0,1.3,17,-1.8,59.0,59.0,202.0,203.0,93.0,51.0,74.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.12 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.21 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.10 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"4, The Paddocks, Lenham",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2019-11-06 16:46:47,unknown,10.0,10.0,10093307271.0,Address Matched +1541153228312017050508111595030856,Goldsmith Cottage,Lower Road,East Farleigh,ME15 0JN,8636851578,C,A,76,98,House,Detached,2017-05-04,E07000110,E14000804,Kent,2017-05-05,marketed sale,64,86,385,120.0,1.9,65,0.6,28.0,28.0,193.0,195.0,116.0,65.0,30.0,Unknown,N,NODATA!,,,2404.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,100.0,0.0,"Electric immersion, off-peak",Average,Poor,"Solid, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Solid brick, as built, insulated (assumed)",Very Good,Very Good,Portable electric heaters (assumed),,,"Pitched, insulated (assumed)",Good,Good,Electric storage heaters,Average,Poor,Controls for high heat retention storage heaters,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,NO DATA!,,,,N,"mechanical, extract only","Goldsmith Cottage, Lower Road, East Farleigh",Maidstone,Maidstone and The Weald,MAIDSTONE,INVALID!,2017-05-05 08:11:15,owner-occupied,,,10014316046.0,Address Matched +473647040652010042113192791200879,1 Brushwood Close,Mangravet,,ME15 9AY,8953015768,B,B,87,87,Bungalow,End-Terrace,2010-04-21,E07000110,E14000700,Kent,2010-04-21,new dwelling,86,87,107,104.0,1.1,18,1.1,44.0,35.0,234.0,235.0,42.0,42.0,62.6,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,,From main system |O'r brif system,Very Good,Very Good,Average thermal transmittance 0.18 W/m??K|Trawsyriannedd thermol cyfartalog 0.18 W/m??K,Very Good,Very Good,Fully double glazed|Gwydrau dwbl llawn,Good,Good,Average thermal transmittance 0.25 W/m??K|Trawsyriannedd thermol cyfartalog 0.25 W/m??K,Very Good,Very Good,None|Dim,,,Average thermal transmittance 0.16 W/m??K|Trawsyriannedd thermol cyfartalog 0.16 W/m??K,Good,Good,"Boiler and radiators, |Bwyler a rheiddiaduron, |mains gas|nwy prif gyflenwad",Very Good,Very Good,Time and temperature zone control,Good,Good,Low energy lighting in 75% of fixed outlets|Goleuadau ynni-isel mewn 75% o'r mannau gosod,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,,,NO DATA!,"1 Brushwood Close, Mangravet",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2010-04-21 13:19:27,,,,10014311089.0,Address Matched +828124719602012082810383104122588,"41, Alkham Road",,,ME14 5PA,2613811078,C,C,72,78,Maisonette,Mid-Terrace,2012-08-28,E07000110,E14000804,Kent,2012-08-28,rental (private),73,81,171,122.0,2.1,33,1.5,37.0,37.0,341.0,253.0,112.0,98.0,63.0,Unknown,Y,1st,Y,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,no corridor,,,0.0,,natural,"41, Alkham Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2012-08-28 10:38:31,rental (private),6.0,6.0,200003716238.0,Address Matched +825537679922012081516305540548192,"48, Maxwell Drive",,,ME16 0QH,9479790078,D,C,66,78,House,Semi-Detached,2012-08-14,E07000110,E14000804,Kent,2012-08-15,marketed sale,64,76,193,116.0,3.4,37,2.1,74.0,50.0,546.0,551.0,112.0,76.0,91.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,50.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"48, Maxwell Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2012-08-15 16:30:55,owner-occupied,10.0,5.0,200003704269.0,Address Matched +1095904299922014022615285310878294,21 Wicken House,London Road,,ME16 8QP,9186900278,D,B,68,82,Flat,Mid-Terrace,2014-02-13,E07000110,E14000804,Kent,2014-02-26,none of the above,56,69,321,225.0,2.9,57,2.1,49.0,37.0,303.0,154.0,196.0,115.0,52.0,dual,N,4th,N,,2401.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,2.0,67.0,0.0,"Electric immersion, off-peak",Poor,Very Poor,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,Portable electric heaters (assumed),,,(another dwelling above),,,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 67% of fixed outlets,Good,Good,electricity (not community),0.0,unheated corridor,2.21,,0.0,,natural,"21 Wicken House, London Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2014-02-26 15:28:53,rental (private),6.0,4.0,200003668504.0,Address Matched +003d5f65faafd8a7ec2cc3f1c35cdcd45fd44acb568d4b9a11c18cb8c391c7e3,13 Sheals Crescent,,,ME15 6TW,10001381996,C,B,70,88,House,Mid-Terrace,2021-08-27,E07000110,E14000804,Kent,2021-08-30,rental,65,87,199,65.0,3.7,35,1.3,82.0,82.0,622.0,396.0,99.0,69.0,107.0,Unknown,Y,,,,,100.0,double glazing installed during or after 2002,Normal,1.0,8.0,8.0,100.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 350 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.32,0.0,N,natural,13 Sheals Crescent,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2021-08-30 12:27:19,Rented (private),13.0,,200003681935.0,Energy Assessor +576745059402012080107391088227698,"124, Courtenay Road",,,ME15 6UN,3403652868,D,B,64,83,Bungalow,End-Terrace,2012-07-31,E07000110,E14000804,Kent,2012-08-01,rental (social),66,86,237,77.0,2.2,45,0.8,45.0,30.0,432.0,378.0,73.0,52.0,50.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,More Than Typical,0.0,2.0,2.0,50.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"124, Courtenay Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2012-08-01 07:39:10,rental (social),6.0,3.0,200003682587.0,Address Matched +605836979922011031714453214538849,"7, Shaw Close",,,ME14 5DN,4109784868,C,C,69,73,House,Semi-Detached,2011-03-17,E07000110,E14000804,Kent,2011-03-17,marketed sale,66,70,216,190.0,3.7,35,3.3,101.0,60.0,551.0,521.0,149.0,130.0,102.56,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,30.0,1.0,From main system,Good,Good,"Suspended, limited insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 250 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 30% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.33,0.0,N,natural,"7, Shaw Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2011-03-17 14:45:32,owner-occupied,,,10022892484.0,Address Matched +201212103452018121317141199989554,6 Tallow Court,High Street,Headcorn,TN27 9NE,5418394568,C,B,75,86,House,End-Terrace,2018-12-13,E07000110,E14000700,Kent,2018-12-13,rental (private),73,84,152,74.0,2.4,27,1.2,67.0,67.0,393.0,393.0,109.0,73.0,91.0,Unknown,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, mains gas",,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"6 Tallow Court, High Street, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,England and Wales: 2007 onwards,2018-12-13 17:14:11,rental (private),,,10022900313.0,Address Matched +142349972652019053104091994210058,"4, Worsfold Court",Enterprise Road,,ME15 6HW,826241568,D,C,68,74,Flat,Semi-Detached,2019-05-29,E07000110,E14000804,Kent,2019-05-31,none of the above,50,59,489,393.0,3.0,83,2.4,34.0,34.0,380.0,298.0,161.0,134.0,36.0,dual,N,Ground,N,,2401.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,100.0,0.0,"Electric immersion, off-peak",Average,Poor,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,Electric storage heaters,Poor,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,unheated corridor,6.37,,,N,natural,"4, Worsfold Court, Enterprise Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2019-05-31 04:09:19,rental (private),,,200003683348.0,Address Matched +6c9d8e904a0416440b37be0ad14faae90dc5ced9c973eda10486900fca8cef8f,13 Marden Road,Staplehurst,,TN12 0NF,10001358697,C,C,72,79,House,End-Terrace,2021-09-23,E07000110,E14000804,Kent,2021-09-23,marketed sale,66,74,164,121.0,5.0,29,3.8,141.0,141.0,797.0,801.0,131.0,83.0,175.0,dual,Y,,,,,100.0,triple glazing,Normal,1.0,7.0,7.0,85.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully triple glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Flat, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 85% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.42,0.0,N,natural,"13 Marden Road, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1930-1949,2021-09-23 15:13:34,Owner-occupied,41.0,,200003678228.0,Energy Assessor +780793269062015060811504257578605,Flat 14 Hobart House,Ruskin Grove,,ME15 9WL,510687968,B,B,85,85,Flat,Mid-Terrace,2015-06-03,E07000110,E14000700,Kent,2015-06-08,rental (social),88,88,92,92.0,0.9,15,0.9,46.0,46.0,127.0,127.0,109.0,109.0,61.0,dual,N,2nd,Y,,2206.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,"From main system, no cylinder thermostat",Poor,Average,(another dwelling below),NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Very Good,Very Good,"Room heaters, electric",,,"Pitched, insulated (assumed)",Good,Good,"Air source heat pump, radiators, electric",Good,Very Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,unheated corridor,2.0,,,N,natural,"Flat 14 Hobart House, Ruskin Grove",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2007 onwards,2015-06-08 11:50:42,rental (social),,,10014311643.0,Address Matched +1516324493512017020220122898030841,"2, Apple Tree Close",Barming,,ME16 9HQ,8193389478,E,B,52,85,Bungalow,Semi-Detached,2017-02-02,E07000110,E14000804,Kent,2017-02-02,marketed sale,36,85,490,78.0,5.2,83,0.9,49.0,44.0,685.0,395.0,268.0,68.0,63.0,dual,Y,NODATA!,,,2401.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,"Electric immersion, off-peak",Very Poor,Poor,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,"Pitched, 250 mm loft insulation",Good,Good,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,NO DATA!,,,,N,natural,"2, Apple Tree Close, Barming",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2017-02-02 20:12:28,owner-occupied,,,200003666349.0,Address Matched +1315554529262015043015525445538875,"127, Tonbridge Road",,,ME16 8JS,7482265378,E,D,44,67,House,Detached,2015-04-27,E07000110,E14000804,Kent,2015-04-30,rental (private),35,56,342,199.0,12.0,60,7.1,171.0,91.0,2199.0,1503.0,155.0,126.0,202.0,Single,Y,NODATA!,,,2106.0,50.0,double glazing installed during or after 2002,Normal,2.0,10.0,10.0,10.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Partial double glazing,Poor,Poor,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 10% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"127, Tonbridge Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2015-04-30 15:52:54,rental (private),,,200003657371.0,Address Matched +596576231252019031819103592910180,"30, Quarry Road",,,ME15 6UD,1029124868,D,B,61,85,House,Mid-Terrace,2019-03-18,E07000110,E14000804,Kent,2019-03-18,rental (social),54,82,263,90.0,5.0,46,1.8,135.0,73.0,830.0,490.0,104.0,71.0,108.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,14.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 14% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"30, Quarry Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2019-03-18 19:10:35,rental (social),,,200003682049.0,Address Matched +1174242487312014071520435396940220,"72, Newbury Avenue",,,ME16 0RD,2048765278,C,B,70,88,Bungalow,Semi-Detached,2014-07-15,E07000110,E14000804,Kent,2014-07-15,marketed sale,73,91,187,41.0,1.8,35,0.4,39.0,39.0,400.0,345.0,85.0,70.0,52.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,88.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 88% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"72, Newbury Avenue",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2014-07-15 20:43:53,owner-occupied,8.0,7.0,200003659345.0,Address Matched +1636712747352018060110234893080553,"28, Gates Drive",,,ME17 3GE,5326738578,B,A,83,97,House,Mid-Terrace,2018-06-01,E07000110,E14000700,Kent,2018-06-01,new dwelling,87,100,93,-20.0,1.0,16,-0.2,46.0,46.0,175.0,175.0,72.0,43.0,60.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"28, Gates Drive",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2018-06-01 10:23:48,unknown,7.0,7.0,10093304005.0,Address Matched +1772961829342019121609385866819668,"4, Crouch Road",Staplehurst,,TN12 0GJ,6394528678,B,A,83,96,House,End-Terrace,2019-12-16,E07000110,E14000804,Kent,2019-12-16,new dwelling,86,98,93,-4.0,1.1,16,0.0,54.0,54.0,204.0,204.0,68.0,40.0,70.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.14 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.27 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"4, Crouch Road, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,NO DATA!,2019-12-16 09:38:58,unknown,18.0,18.0,10094442097.0,Address Matched +762755617232012031818120294968201,21 Barden Court,St. Lukes Avenue,,ME14 5AP,1174256968,C,C,77,78,Flat,End-Terrace,2012-03-15,E07000110,E14000804,Kent,2012-03-18,marketed sale,67,68,265,260.0,2.3,47,2.3,52.0,33.0,213.0,218.0,109.0,109.0,49.1,dual,N,1st,N,,2401.0,100.0,double glazing installed before 2002,Normal,0.0,2.0,2.0,42.0,0.0,"Electric immersion, off-peak",Average,Very Poor,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,(another dwelling above),,,Electric storage heaters,Poor,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 43% of fixed outlets,Average,Average,electricity (not community),0.0,heated corridor,,2.34,0.0,,natural,"21 Barden Court, St. Lukes Avenue",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1991-1995,2012-03-18 18:12:02,owner-occupied,7.0,3.0,200003720840.0,Address Matched +1559722109062017092818400132818713,"8, Wood Court",,,ME16 9DD,1349092578,C,B,77,90,House,End-Terrace,2017-05-09,E07000110,E14000804,Kent,2017-09-28,rental (social),77,90,146,43.0,1.8,26,0.6,51.0,51.0,290.0,290.0,102.0,66.0,68.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Very Good,Very Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"8, Wood Court",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2017-09-28 18:40:01,rental (social),,,10022900391.0,Address Matched +1092140149922014021819311329798334,9 Wicken House,London Road,,ME16 8QP,3276489178,E,C,44,78,Flat,End-Terrace,2014-02-11,E07000110,E14000804,Kent,2014-02-18,assessment for green deal,49,62,428,316.0,3.1,76,2.3,43.0,30.0,580.0,196.0,211.0,106.0,41.0,Single,N,2nd,N,,2602.0,100.0,double glazing installed during or after 2002,Normal,1.0,2.0,2.0,40.0,0.0,"Electric immersion, standard tariff",Very Poor,Very Poor,(other premises below),,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,(another dwelling above),,,"Room heaters, electric",Very Poor,Very Poor,Appliance thermostats,Good,Good,Low energy lighting in 40% of fixed outlets,Average,Average,electricity (not community),0.0,unheated corridor,6.88,,0.0,,natural,"9 Wicken House, London Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2014-02-18 19:31:13,owner-occupied,5.0,2.0,200003668517.0,Address Matched +1626424469222018042613465207258748,2 Kingsland Cottages,Benover Road,Yalding,ME18 6EL,4031667578,D,C,55,78,House,Mid-Terrace,2018-04-25,E07000110,E14000804,Kent,2018-04-26,marketed sale,49,74,343,156.0,4.5,61,2.1,78.0,52.0,739.0,568.0,138.0,68.0,74.0,Single,Y,NODATA!,,,2104.0,0.0,not defined,Normal,0.0,4.0,4.0,50.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Single glazed,Very Poor,Very Poor,"Solid brick, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"2 Kingsland Cottages, Benover Road, Yalding",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2018-04-26 13:46:52,owner-occupied,,,200003660501.0,Address Matched +802583539002012062117003592922298,"324, Upper Fant Road",,,ME16 8DB,24939968,D,B,67,81,House,Mid-Terrace,2012-06-21,E07000110,E14000804,Kent,2012-06-21,marketed sale,71,84,197,96.0,2.3,34,1.1,48.0,48.0,458.0,436.0,78.0,54.0,68.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,4.0,4.0,75.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, wood logs",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"324, Upper Fant Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2012-06-21 17:00:35,owner-occupied,8.0,6.0,200003656224.0,Address Matched +506552325852010070115185294000771,"48, Crownfields",Weavering,,ME14 5TH,7129547768,D,C,64,74,House,Detached,2010-07-01,E07000110,E14000700,Kent,2010-07-01,marketed sale,58,70,275,193.0,4.5,46,3.1,64.0,52.0,613.0,460.0,173.0,123.0,96.91,Single,Y,NO DATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,6.0,6.0,75.0,0.0,From main system,Average,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Average,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.36,0.0,N,natural,"48, Crownfields, Weavering",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1991-1995,2010-07-01 15:18:52,owner-occupied,,,200003685170.0,Address Matched +1480900822452017060817585193030048,"15, Hop Pocket Way",Headcorn,,TN27 9AF,896237478,B,A,83,95,House,Semi-Detached,2017-06-08,E07000110,E14000700,Kent,2017-06-08,new dwelling,86,97,88,8.0,1.3,15,0.2,59.0,59.0,233.0,233.0,83.0,49.0,86.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.26 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.10 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"15, Hop Pocket Way, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,NO DATA!,2017-06-08 17:58:51,unknown,20.0,20.0,10093302563.0,Address Matched +1593662239902017113012195559537208,"11, Broke Wood Way",,,ME16 9FA,9953035578,B,B,89,90,House,Detached,2017-11-30,E07000110,E14000804,Kent,2017-11-30,new dwelling,90,92,51,40.0,1.1,9,0.9,72.0,72.0,248.0,250.0,104.0,55.0,124.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.18 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"11, Broke Wood Way",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2017-11-30 12:19:55,unknown,20.0,20.0,10093303490.0,Address Matched +6cd08807b39a8577ec8e87209a464a822d35341b10cc224a0f3c82d1de034059,Flat 2,Kentish Court,London Road,ME16 8AA,10001686281,E,D,51,59,Flat,Enclosed End-Terrace,2021-09-23,E07000110,E14000804,Kent,2021-09-23,rental,56,63,298,252.0,3.4,50,2.8,92.0,63.0,803.0,695.0,343.0,288.0,67.0,Unknown,N,00,N,,,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,55.0,0.0,From main system,Very Poor,Poor,"Suspended, limited insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, electric",Very Poor,Poor,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 55% of fixed outlets,Good,Good,electricity (not community),0.0,unheated corridor,7.85,2.38,0.0,N,natural,"Flat 2, Kentish Court, London Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2021-09-23 10:40:25,Rented (private),11.0,,200003728881.0,Energy Assessor +6ce0b777379bac04875173ef264193896cc27caf8a0ef13bba4c17034fd0c705,84 Kingfisher Meadow,,,ME16 8RB,10001553806,C,B,78,85,Flat,Semi-Detached,2021-08-10,E07000110,E14000804,Kent,2021-08-10,rental,75,79,210,176.0,1.6,35,1.3,42.0,48.0,195.0,100.0,185.0,140.0,44.0,dual,N,03,N,,,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,100.0,0.0,"Electric immersion, off-peak",Poor,Poor,(another dwelling below),,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Room heaters, electric",Very Poor,Poor,Programmer and appliance thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,unheated corridor,6.51,2.45,0.0,N,natural,84 Kingfisher Meadow,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2021-08-10 11:38:03,Rented (private),12.0,,10022892295.0,Energy Assessor +6ce39a5bbf639b87bb7fcf890fb0b49bf8314ddeecc3e31602655e11f6533c42,10 South Bank,Staplehurst,,TN12 0BD,10001350803,D,C,61,77,House,Semi-Detached,2021-08-23,E07000110,E14000804,Kent,2021-08-23,marketed sale,54,71,258,147.0,4.5,47,2.6,75.0,75.0,742.0,637.0,121.0,78.0,96.0,Single,Y,,,,,100.0,double glazing installed during or after 2002,Normal,1.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Average,Average,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.4,0.0,N,natural,"10 South Bank, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1967-1975,2021-08-23 18:20:16,Owner-occupied,11.0,,200003676989.0,Energy Assessor +828821998232012082408210724278908,"65, Oxford Road",,,ME15 8DG,9874911078,E,C,47,72,House,Semi-Detached,2012-08-24,E07000110,E14000700,Kent,2012-08-24,marketed sale,43,68,327,161.0,5.6,63,2.8,85.0,49.0,877.0,684.0,160.0,69.0,89.0,Single,Y,NODATA!,,,2107.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,25.0,1.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 25% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"65, Oxford Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2012-08-24 08:21:07,owner-occupied,8.0,2.0,200003716102.0,Address Matched +337532760142009080315313761510878,"10, Hill Crescent",Lenham,,ME17 2PT,1160165668,C,C,74,74,House,End-Terrace,2009-08-03,E07000110,E14000700,Kent,2009-08-03,rental (social),70,70,211,211.0,2.8,35,2.8,48.0,48.0,415.0,415.0,107.0,107.0,79.92,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,80.0,1.0,From main system,Very Good,Very Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.43,0.0,N,natural,"10, Hill Crescent, Lenham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2009-08-03 15:31:37,rental (social),,,200003723667.0,Address Matched +1803340488512020061711271224900472,"15, Mamignot Close",Bearsted,,ME14 4PT,4280840778,C,B,71,83,House,Detached,2020-06-15,E07000110,E14000700,Kent,2020-06-17,marketed sale,67,80,176,96.0,3.9,31,2.2,150.0,85.0,602.0,556.0,138.0,83.0,127.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,7.0,7.0,23.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 270 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 23% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"15, Mamignot Close, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2020-06-17 11:27:12,owner-occupied,,,200003688888.0,Address Matched +780283221652012042517594098220196,"10, The Chantry",Headcorn,,TN27 9TF,1656187968,C,B,74,85,House,Detached,2012-04-25,E07000110,E14000700,Kent,2012-04-25,marketed sale,72,84,133,68.0,3.8,25,2.0,131.0,67.0,557.0,571.0,114.0,71.0,148.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,7.0,7.0,5.0,0.0,From main system,Good,Good,"Suspended, insulated (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, mains gas",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 5% of fixed outlets,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"10, The Chantry, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,England and Wales: 2003-2006,2012-04-25 17:59:40,owner-occupied,22.0,1.0,10022896214.0,Address Matched +1264492199902015012911342439152618,"118, Merton Road",Bearsted,,ME15 8LR,9988091378,E,B,40,88,House,Semi-Detached,2015-01-29,E07000110,E14000700,Kent,2015-01-29,marketed sale,35,87,523,73.0,5.6,92,0.8,60.0,45.0,790.0,378.0,384.0,67.0,61.0,dual,Y,NODATA!,,,2102.0,100.0,double glazing installed before 2002,Normal,1.0,3.0,3.0,67.0,0.0,"From main system, no cylinder thermostat",Very Poor,Very Poor,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Average,Average,"Programmer, no room thermostat",Very Poor,Very Poor,Low energy lighting in 67% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"118, Merton Road, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2015-01-29 11:34:24,owner-occupied,,,200003686100.0,Address Matched +1539621068052017042816481494230753,"25, Chiltern Close",Downswood,,ME15 8XG,7323841578,C,B,70,90,House,Mid-Terrace,2017-04-28,E07000110,E14000700,Kent,2017-04-28,marketed sale,71,90,219,57.0,2.1,38,0.6,87.0,43.0,375.0,329.0,88.0,57.0,55.0,dual,Y,NODATA!,,,2102.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"25, Chiltern Close, Downswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2017-04-28 16:48:14,owner-occupied,,,200003687125.0,Address Matched +1386248869242015112608451147052048,"7, Exton Gardens",Weavering,,ME14 5AT,6251260478,D,C,64,79,House,Detached,2015-11-24,E07000110,E14000700,Kent,2015-11-26,marketed sale,54,73,214,120.0,8.9,38,5.0,120.0,120.0,1578.0,1078.0,195.0,130.0,235.0,Unknown,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,8.0,8.0,75.0,0.0,From main system,Good,Good,"Solid, limited insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"7, Exton Gardens, Weavering",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1996-2002,2015-11-26 08:45:11,owner-occupied,,,200003690092.0,Address Matched +512665289922010071413124017748840,3 Almond House,Springwood Road,Barming,ME16 9PQ,4188887768,D,C,68,79,Flat,Detached,2010-07-14,E07000110,E14000804,Kent,2010-07-14,rental (private),63,76,240,153.0,4.0,40,2.6,80.0,57.0,515.0,374.0,214.0,130.0,100.8,Single,Y,Ground,N,2.0,2107.0,100.0,double glazing installed before 2002,Normal,0.0,6.0,6.0,60.0,0.0,"From main system, no cylinder thermostat",Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, partial insulation (assumed)",Average,Average,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 60% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,unheated corridor,8.2,2.4,0.0,N,natural,"3 Almond House, Springwood Road, Barming",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1976-1982,2010-07-14 13:12:40,rental (private),,,200003697306.0,Address Matched +236877969062012060717175778538152,"6, Hazlitt Drive",,,ME16 0EG,5719678568,C,B,72,82,House,Detached,2012-06-07,E07000110,E14000804,Kent,2012-06-07,marketed sale,71,80,140,86.0,4.0,27,2.5,132.0,66.0,585.0,598.0,120.0,75.0,149.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,2.0,6.0,6.0,0.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"6, Hazlitt Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2012-06-07 17:17:57,owner-occupied,33.0,0.0,200003658879.0,Address Matched +17110640452017102813462898239147,184 Wallis Place,Hart Street,,ME16 8FE,1767088468,C,C,80,80,Flat,Enclosed Mid-Terrace,2017-10-28,E07000110,E14000804,Kent,2017-10-28,non marketed sale,83,83,113,113.0,1.4,20,1.4,66.0,66.0,240.0,240.0,85.0,85.0,70.0,dual,Y,1st,N,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,90.0,0.0,From main system,Good,Good,"To external air, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 90% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,18.75,,,N,natural,"184 Wallis Place, Hart Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2017-10-28 13:46:28,owner-occupied,,,10022900792.0,Address Matched +480384269802010050519372279500958,"82, Hastings Road",,,ME15 7SR,3820065768,D,C,63,75,Maisonette,Semi-Detached,2010-05-05,E07000110,E14000804,Kent,2010-05-05,marketed sale,57,72,380,253.0,2.9,63,1.9,46.0,23.0,464.0,334.0,80.0,71.0,45.17,Single,Y,Ground,Y,2.0,2104.0,17.0,double glazing installed before 2002,Normal,1.0,2.0,2.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Some double glazing,Very Poor,Very Poor,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Flat, limited insulation (assumed)",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.57,0.0,N,natural,"82, Hastings Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2010-05-05 19:37:22,owner-occupied,,,200003695699.0,Address Matched +597206169722012053123523304498712,Flat 11 Hardwick House,Northumberland Road,,ME15 7TH,1033624868,C,C,74,77,Flat,End-Terrace,2012-05-31,E07000110,E14000700,Kent,2012-05-31,rental (social),76,80,185,158.0,1.4,36,1.2,25.0,25.0,234.0,201.0,88.0,88.0,39.0,Unknown,Y,Ground,N,,2301.0,100.0,double glazing installed before 2002,Normal,0.0,2.0,2.0,100.0,0.0,Community scheme,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,Community scheme,Good,Good,"Flat rate charging, no thermostatic control of room temperature",Very Poor,Very Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (community),0.0,heated corridor,,,0.0,,natural,"Flat 11 Hardwick House, Northumberland Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2012-05-31 23:52:33,rental (social),7.0,7.0,200003684317.0,Address Matched +1463111715652016071817282590960746,"20, Chervilles",,,ME16 9JE,7688506478,D,C,67,77,House,Semi-Detached,2016-07-18,E07000110,E14000804,Kent,2016-07-18,marketed sale,61,71,211,144.0,4.3,37,3.0,100.0,68.0,751.0,757.0,138.0,88.0,116.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,More Than Typical,2.0,5.0,5.0,53.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 53% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,2.4,,N,natural,"20, Chervilles",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2016-07-18 17:28:25,owner-occupied,,,200003686913.0,Address Matched +1587173266752017110411483898039058,"21, Prospect Place",,,ME16 8EG,871684578,D,B,67,86,House,Mid-Terrace,2017-11-04,E07000110,E14000804,Kent,2017-11-04,rental (private),64,84,237,82.0,2.8,42,1.0,71.0,47.0,494.0,390.0,94.0,62.0,67.0,Single,Y,NODATA!,,,2106.0,83.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,50.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Mostly double glazing,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"21, Prospect Place",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2017-11-04 11:48:38,rental (private),,,200003667561.0,Address Matched +209843360542009051916001953619418,"28, Longparish Close",,,ME15 8PU,4513866568,B,B,82,83,Flat,Semi-Detached,2009-01-19,E07000110,E14000700,Kent,2009-05-19,rental (social),81,82,161,156.0,1.3,27,1.3,41.0,28.0,210.0,212.0,68.0,68.0,49.76,dual,Y,1st,Y,2.0,2106.0,100.0,double glazing installed before 2002,Normal,0.0,2.0,2.0,50.0,0.0,From main system,Very Good,Very Good,(other premises below),,,Fully double glazed,Average,Average,"System built, with external insulation",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,unheated corridor,4.15,2.3,0.0,N,natural,"28, Longparish Close",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2009-05-19 16:00:19,rental (social),,,200003684965.0,Address Matched +627588685452011051110264395990386,"33, Lenside Drive",Bearsted,,ME15 8UE,3626556868,D,C,60,71,House,End-Terrace,2011-05-11,E07000110,E14000700,Kent,2011-05-11,marketed sale,57,71,269,181.0,3.7,52,2.5,77.0,39.0,571.0,411.0,114.0,99.0,72.26,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,2.36,0.0,,natural,"33, Lenside Drive, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2011-05-11 10:26:43,owner-occupied,8.0,0.0,200003691273.0,Address Matched +1355640549642015081916304033859618,2 Surrenden Court,High Street,Staplehurst,TN12 0EZ,7665448378,B,B,88,88,House,Detached,2015-08-19,E07000110,E14000804,Kent,2015-08-19,new dwelling,90,90,57,57.0,1.9,9,1.9,95.0,95.0,634.0,634.0,113.0,113.0,211.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,1.0,From main system,Good,Good,Average thermal transmittance 0.14 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.23 W/m-¦K,Very Good,Very Good,"Room heaters, wood logs",,,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"2 Surrenden Court, High Street, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,NO DATA!,2015-08-19 16:30:40,unknown,50.0,50.0,10014316067.0,Address Matched +192858480022008120314390385528388,"10, Lockswood",,,ME16 0NX,8886805568,D,C,66,76,House,End-Terrace,2008-12-02,E07000110,E14000804,Kent,2008-12-03,marketed sale,62,72,309,223.0,2.9,52,2.1,54.0,27.0,364.0,291.0,83.0,64.0,56.104,dual,Y,NO DATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,0.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Poor,Poor,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,0.0,N,natural,"10, Lockswood",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1991-1995,2008-12-03 14:39:03,owner-occupied,,,200003662356.0,Address Matched +824333071452013041609172899070203,"2, Canning Street",,,ME14 2RU,2320190078,B,B,84,84,House,Mid-Terrace,2013-04-02,E07000110,E14000804,Kent,2013-04-16,new dwelling,87,87,73,73.0,1.3,14,1.3,54.0,54.0,236.0,236.0,80.0,80.0,92.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.18 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.22 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.17 W/m?K,Good,Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"2, Canning Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2013-04-16 09:17:28,NO DATA!,12.0,12.0,10014313831.0,Address Matched +16936689242011061808545345899768,39 Wallis Place,Hart Street,,ME16 8FB,4245088468,C,B,80,81,Flat,NO DATA!,2011-06-16,E07000110,E14000804,Kent,2011-06-18,rental (private),86,87,116,108.0,0.9,22,0.8,41.0,25.0,174.0,176.0,62.0,62.0,39.95,Unknown,Y,3rd,N,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,38.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Very Good,Very Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 38% of fixed outlets,Average,Average,mains gas (not community),0.0,unheated corridor,7.68,2.42,0.0,,natural,"39 Wallis Place, Hart Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2011-06-18 08:54:53,rental (private),8.0,3.0,10022900638.0,Address Matched +1457270569302016062711140546562738,"43, Sandling Road",,,ME14 2RH,4363465478,D,C,55,71,Flat,Mid-Terrace,2016-06-27,E07000110,E14000804,Kent,2016-06-27,rental (private),57,77,379,207.0,2.7,59,1.4,65.0,33.0,583.0,338.0,100.0,83.0,45.0,Single,Y,Basement,N,,2102.0,100.0,"double glazing, unknown install date",Normal,1.0,4.0,4.0,0.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,no corridor,,2.3,,N,natural,"43, Sandling Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2016-06-27 11:14:05,rental (private),,,200003669442.0,Address Matched +354227327512009082814551707210469,"5, Kendal Place",,,ME15 7JL,4956776668,C,C,72,74,Bungalow,Semi-Detached,2009-08-28,E07000110,E14000700,Kent,2009-08-28,rental (social),68,69,289,273.0,2.2,48,2.1,34.0,22.0,344.0,333.0,88.0,88.0,44.95,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,2.0,2.0,50.0,1.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.36,0.0,N,natural,"5, Kendal Place",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2009-08-28 14:55:17,rental (social),,,10022895776.0,Address Matched +1462783109442016080318041045660578,Flat 20 Allin Place,Fairmeadow,,ME14 1FT,9450206478,B,B,88,88,Flat,End-Terrace,2016-08-03,E07000110,E14000804,Kent,2016-08-03,new dwelling,88,88,66,66.0,1.2,12,1.2,67.0,67.0,280.0,280.0,109.0,109.0,99.0,standard tariff,,top floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.30 W/m-¦K,Good,Good,,,,Average thermal transmittance 0.17 W/m-¦K,Good,Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Flat 20 Allin Place, Fairmeadow",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2016-08-03 18:04:10,unknown,15.0,15.0,10091194293.0,Address Matched +1489908599202016102015012749762708,"4, Downton Court",,,ME15 8WU,2269697478,B,B,81,81,Flat,NO DATA!,2016-10-20,E07000110,E14000700,Kent,2016-10-20,new dwelling,86,86,112,112.0,0.9,20,0.9,36.0,36.0,196.0,196.0,67.0,67.0,47.0,standard tariff,,ground floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.28 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"4, Downton Court",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2016-10-20 15:01:27,unknown,1.0,1.0,10091194500.0,Address Matched +1410907947312016021211023893060244,Flat B,"135, Upper Stone Street",,ME15 6HJ,2470732478,F,D,34,56,Flat,Enclosed Mid-Terrace,2016-02-08,E07000110,E14000804,Kent,2016-02-12,rental (private),24,44,837,519.0,6.0,142,3.7,34.0,34.0,1027.0,617.0,60.0,60.0,42.0,Unknown,N,1st,Y,,2401.0,50.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,100.0,0.0,Gas instantaneous at point of use,Good,Good,(another dwelling below),NO DATA!,,Partial double glazing,Poor,Poor,"Solid brick, as built, no insulation (assumed)",Poor,Poor,Portable electric heaters (assumed),,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,unheated corridor,8.13,,,N,natural,"Flat B, 135, Upper Stone Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2016-02-12 11:02:38,rental (private),,,10014311359.0,Address Matched +1629757705832018050815255613078904,"15, Saxon Way",Tovil,,ME15 6AL,433987578,B,A,83,96,House,Semi-Detached,2018-05-08,E07000110,E14000804,Kent,2018-05-08,new dwelling,86,98,93,1.0,1.3,16,0.1,56.0,56.0,204.0,205.0,97.0,52.0,79.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.10 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"15, Saxon Way, Tovil",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2018-05-08 15:25:56,owner-occupied,45.0,45.0,10093304969.0,Address Matched +199681965612008121221353206989151,"8, Holland Road",,,ME14 1UH,1113565568,G,F,1,34,House,Mid-Terrace,2008-12-12,E07000110,E14000804,Kent,2008-12-12,marketed sale,27,26,706,719.0,8.0,106,8.2,68.0,73.0,1529.0,810.0,308.0,121.0,69.2,Single,N,NO DATA!,,,2601.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,4.0,0.0,0.0,"Electric immersion, standard tariff",Very Poor,Poor,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,Portable electric heaters,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, electric",Very Poor,Poor,No thermostatic control of room temperature,Poor,Poor,No low energy lighting,Very Poor,Very Poor,electricity - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.5,0.0,N,natural,"8, Holland Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2008-12-12 21:35:32,owner-occupied,,,200003698947.0,Address Matched +6d5ad3ce5bf6c5952e11887806ee64f4d9d57cd29af0c5be76d063ca9c6cde08,"Flat 8 Adeline Heights, Rosalind Drive",,,ME14 2FP,10001647426,B,B,83,83,Flat,End-Terrace,2021-07-15,E07000110,E14000804,Kent,2021-07-15,new dwelling,86,86,90,90.0,1.2,16,1.2,65.0,65.0,196.0,196.0,94.0,94.0,79.0,standard tariff,,1,N,,,100.0,,,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.14 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.38 W/m-¦K,Good,Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.5,,,,"Flat 8 Adeline Heights, Rosalind Drive",Maidstone,Maidstone and The Weald,Maidstone,2018,2021-07-15 09:58:49,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,10.0,,10094441271.0,Address Matched +6d65362e3168a31b8cda03fd0419739b5ce1716fbc3a0387cb1375713085ec72,25 PERRY STREET,,,ME14 2RP,10001427678,C,B,70,84,House,Semi-Detached,2021-06-25,E07000110,E14000804,Kent,2021-07-30,not sale or rental,66,81,199,93.0,3.0,35,1.5,82.0,82.0,485.0,435.0,130.0,79.0,87.0,Single,Y,,,,,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,86.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 86% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.6,0.0,N,natural,25 PERRY STREET,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1991-1995,2021-07-30 14:42:32,Rented (social),14.0,,200003669983.0,Energy Assessor +1112773039002017010317053623130478,"33, Trevor Drive",,,ME16 0QW,2077331278,D,B,64,86,Bungalow,Semi-Detached,2017-01-03,E07000110,E14000804,Kent,2017-01-03,none of the above,60,84,269,85.0,3.0,47,1.0,75.0,45.0,540.0,395.0,100.0,65.0,64.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,33.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 33% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"33, Trevor Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2017-01-03 17:05:36,owner-occupied,,,200003659274.0,Address Matched +1600337579902018011411282252589678,"23, Westborough Mews",,,ME16 8TU,946975578,C,B,78,91,House,Mid-Terrace,2018-01-13,E07000110,E14000804,Kent,2018-01-14,marketed sale,79,92,128,30.0,1.8,22,0.5,99.0,61.0,257.0,265.0,120.0,71.0,81.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,37.0,0.0,From main system,Good,Good,"Suspended, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 37% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"23, Westborough Mews",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2018-01-14 11:28:22,owner-occupied,,,10022896509.0,Address Matched +590496499022011020914365403118149,"14, Waterloo Street",,,ME15 7UH,4073963868,E,D,46,58,House,Mid-Terrace,2011-02-09,E07000110,E14000804,Kent,2011-02-09,rental (private),44,46,457,436.0,5.4,69,5.2,73.0,49.0,624.0,558.0,281.0,143.0,57.66,dual,N,NO DATA!,,,2401.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,3.0,50.0,0.0,"Electric immersion, off-peak",Very Poor,Poor,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,Portable electric heaters,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,Electric storage heaters,Poor,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 50% of fixed outlets,Good,Good,electricity - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.46,0.0,N,natural,"14, Waterloo Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2011-02-09 14:36:54,rental (private),,,200003695827.0,Address Matched +1d061bb25a4633e067a97a730ca74e534315d0ca72479e8885f6a01be03eda73,58 Cranford Road,,,ME16 9FZ,10001517082,B,B,87,88,House,Detached,2021-08-13,E07000110,E14000804,Kent,2021-08-13,new dwelling,86,87,66,58.0,2.2,12,1.9,107.0,107.0,399.0,400.0,97.0,55.0,184.0,standard tariff,,,N,,,100.0,,,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.19 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.16 W/m-¦K,Good,Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.61,,,,58 Cranford Road,Maidstone,Maidstone and The Weald,ALLINGTON,2018,2021-08-13 14:24:13,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,52.0,,10094440379.0,Energy Assessor +1649157629142018100321082951989118,Dragonfly Barn,Hunton Hill,Hunton,ME15 0QX,167929578,B,A,82,92,House,Detached,2018-07-19,E07000110,E14000804,Kent,2018-10-03,non marketed sale,77,87,142,75.0,2.5,23,1.3,76.0,76.0,365.0,366.0,138.0,91.0,111.0,dual (24 hour),N,NODATA!,,,2207.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Very Good,Very Good,"Room heaters, wood logs",,,"Pitched, insulated (assumed)",Good,Good,"Air source heat pump, radiators, electric",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,NO DATA!,,,,N,natural,"Dragonfly Barn, Hunton Hill, Hunton",Maidstone,Maidstone and The Weald,MAIDSTONE,INVALID!,2018-10-03 21:08:29,owner-occupied,,,10093305608.0,Address Matched +1470723209022016081316251566818286,Moastley Oast,Mill Lane,Yalding,ME18 6AR,8632066478,D,B,60,90,House,Enclosed End-Terrace,2016-08-09,E07000110,E14000804,Kent,2016-08-13,marketed sale,56,86,238,67.0,8.4,38,2.2,178.0,100.0,1715.0,1019.0,149.0,150.0,220.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,3.0,7.0,7.0,21.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 21% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,2.2,,N,natural,"Moastley Oast, Mill Lane, Yalding",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2016-08-13 16:25:15,owner-occupied,,,200003661389.0,Address Matched +851365789302012102922555202222118,Den Farm Oast,Den Lane,Collier Street,TN12 9PX,4335282078,C,C,72,79,House,Semi-Detached,2012-10-29,E07000110,E14000804,Kent,2012-10-29,FiT application,72,78,133,100.0,6.6,23,4.9,188.0,104.0,1185.0,1107.0,124.0,124.0,290.0,dual,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,2.0,9.0,9.0,20.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Solid brick, as built, insulated (assumed)",Good,Good,"Room heaters, wood logs",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 20% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"Den Farm Oast, Den Lane, Collier Street",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1983-1990,2012-10-29 22:55:52,owner-occupied,25.0,5.0,200003722032.0,Address Matched +1145252339222014052222145163128834,"14, Sandling Lane",Penenden Heath,,ME14 2DX,3671363278,E,C,49,79,House,Semi-Detached,2014-05-22,E07000110,E14000804,Kent,2014-05-22,none of the above,44,77,303,105.0,6.2,58,2.2,120.0,60.0,942.0,627.0,296.0,77.0,106.0,Single,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,0.0,0.0,"From main system, no cylinder thermostat",Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"14, Sandling Lane, Penenden Heath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2014-05-22 22:14:51,owner-occupied,11.0,0.0,200003706467.0,Address Matched +1536089929962018011210054761428068,"7, Cascade Close",Marden,,TN12 9FW,6654221578,B,A,85,96,House,Semi-Detached,2018-01-12,E07000110,E14000804,Kent,2018-01-12,new dwelling,87,98,75,1.0,1.2,13,0.1,63.0,63.0,201.0,201.0,82.0,49.0,93.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.28 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"7, Cascade Close, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,NO DATA!,2018-01-12 10:05:47,owner-occupied,10.0,10.0,10093303353.0,Address Matched +466232869442010040807310373400768,"6, The Chenies",,,ME15 6EE,1406164768,C,B,80,84,Flat,Detached,2010-04-06,E07000110,E14000804,Kent,2010-04-08,rental (private),79,83,148,120.0,2.0,24,1.6,65.0,47.0,282.0,252.0,119.0,97.0,82.68,Single,Y,2nd,Y,3.0,2107.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,61.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 250mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 61% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,unheated corridor,6.8,2.16,0.0,N,natural,"6, The Chenies",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2010-04-08 07:31:03,rental (private),,,10022895742.0,Address Matched +47988052832008121714423276968493,Flat 40,Broadway Heights,23 The Broadway,ME16 8GJ,5336465568,B,B,83,84,Flat,Detached,2008-12-17,E07000110,E14000804,Kent,2008-12-17,new dwelling,84,84,148,146.0,1.1,0,1.1,26.0,21.0,184.0,184.0,58.0,58.0,0.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,12.0,,SAP05:Hot-Water,,,SAP05:Floor,,,SAP05:Windows,,,SAP05:Walls,,,SAP05:Secondary-Heating,,,SAP05:Roof,,,SAP05:Main-Heating,,,SAP05:Main-Heating-Controls,,,SAP05:Lighting,,,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,,,,NO DATA!,"Flat 40, Broadway Heights, 23 The Broadway",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2008-12-17 14:42:32,,16.0,12.0,10022896864.0,Address Matched +766694799222012032907024446518672,"1a, Hollingworth Road",,,ME15 9HN,7430976968,C,B,76,81,Flat,Semi-Detached,2012-03-29,E07000110,E14000700,Kent,2012-03-29,rental (social),80,85,142,103.0,1.6,27,1.2,85.0,47.0,253.0,205.0,77.0,78.0,58.74,Single,Y,1st,Y,,2106.0,100.0,double glazing installed before 2002,More Than Typical,0.0,3.0,3.0,20.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Poor,Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 20% of fixed outlets,Poor,Poor,mains gas (not community),0.0,no corridor,,2.34,0.0,,natural,"1a, Hollingworth Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2012-03-29 07:02:44,rental (social),5.0,1.0,200003683025.0,Address Matched +6d8f31ede827829d18c0a944f14c04d659253129c39a1422d0a4b21e0db1c964,41 Heath Grove,,,ME16 9AS,10001512777,D,B,58,86,House,End-Terrace,2021-09-01,E07000110,E14000804,Kent,2021-09-01,marketed sale,51,85,302,76.0,4.2,53,1.1,94.0,65.0,650.0,377.0,139.0,67.0,78.0,Single,Y,,,,,100.0,double glazing installed during or after 2002,Normal,1.0,4.0,4.0,56.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 56% of fixed outlets,Good,Good,mains gas (not community),0.0,,,2.4,0.0,N,natural,41 Heath Grove,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2021-09-01 17:17:52,Owner-occupied,9.0,,200003676242.0,Energy Assessor +1374567729632016010511073811078001,Flat 7 Pioneer Place,Cobb Way,,ME15 9XF,2181089378,B,B,82,82,Flat,NO DATA!,2016-01-04,E07000110,E14000700,Kent,2016-01-05,new dwelling,84,84,104,104.0,1.4,18,1.4,56.0,56.0,251.0,251.0,93.0,93.0,76.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.22 W/m-¦K,Good,Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.19 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Flat 7 Pioneer Place, Cobb Way",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2016-01-05 11:07:38,unknown,10.0,10.0,10014315892.0,Address Matched +1491290849222016102510484268448086,Victoria Stables,Victoria Court,East Farleigh,ME15 0BW,8692408478,C,A,74,103,House,Detached,2016-10-24,E07000110,E14000804,Kent,2016-10-25,new dwelling,68,96,127,-45.0,3.4,33,0.2,76.0,76.0,340.0,340.0,145.0,105.0,104.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Average,Average,Average thermal transmittance 0.16 W/m+é-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.37 W/m+é-¦K,Good,Good,,,,Average thermal transmittance 0.14 W/m+é-¦K,Very Good,Very Good,"Boiler and underfloor heating, oil",Average,Average,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,oil - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Victoria Stables, Victoria Court, East Farleigh",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2016-10-25 10:48:42,unknown,20.0,20.0,10091193494.0,Address Matched +429380809142010020222574173200798,4 Grosvenor House,Wallis Avenue,,ME15 9HZ,1158402768,C,C,72,80,Flat,Mid-Terrace,2010-02-01,E07000110,E14000700,Kent,2010-02-02,rental (social),68,77,239,172.0,2.6,40,1.9,61.0,35.0,382.0,312.0,120.0,86.0,66.45,Single,Y,Ground,N,4.0,2107.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,25.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 25% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.32,0.0,N,natural,"4 Grosvenor House, Wallis Avenue",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2010-02-02 22:57:41,rental (social),,,200003683069.0,Address Matched +1287873169262015030113323053688605,Merton,Thorn Road,Marden,TN12 9EJ,532663378,E,A,45,100,House,Semi-Detached,2015-02-28,E07000110,E14000804,Kent,2015-03-01,marketed sale,38,92,403,4.0,6.0,71,0.2,77.0,53.0,1012.0,594.0,210.0,73.0,84.0,Single,Y,NODATA!,,,2106.0,67.0,double glazing installed before 2002,Normal,2.0,4.0,4.0,56.0,2.0,"From main system, no cylinder thermostat",Average,Average,"Suspended, no insulation (assumed)",NO DATA!,,Partial double glazing,Poor,Poor,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 56% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"Merton, Thorn Road, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1900-1929,2015-03-01 13:32:30,owner-occupied,,,200003708394.0,Address Matched +6dad14d27884a9a5e00556f6efe98037d26536d3638764d84758891fe1900012,2 The Lodge,Amsbury Farm House,East Street,ME15 0QY,10001447911,C,A,72,128,Bungalow,Detached,2021-07-14,E07000110,E14000804,Kent,2021-07-15,rental,52,104,466,-77.0,2.8,79,-0.5,39.0,39.0,351.0,359.0,147.0,86.0,35.0,Unknown,N,,,,,100.0,double glazing installed during or after 2002,Normal,1.0,2.0,2.0,100.0,0.0,"Electric immersion, off-peak",Average,Poor,"Solid, insulated (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,Portable electric heaters (assumed),,,"Roof room(s), insulated (assumed)",Good,Good,Electric storage heaters,Average,Very Poor,Automatic charge control,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,,,2.3,0.0,N,natural,"2 The Lodge, Amsbury Farm House, East Street",Maidstone,Maidstone and The Weald,Maidstone,England and Wales: 2003-2006,2021-07-15 18:25:53,Rented (private),5.0,,, +189238581152008111817231805989358,"126, College Road",,,ME15 6SU,3802154568,E,D,50,61,House,Semi-Detached,2008-11-18,E07000110,E14000804,Kent,2008-11-18,rental (private),44,54,364,286.0,7.1,61,5.6,107.0,53.0,842.0,696.0,124.0,101.0,117.3,Single,Y,NO DATA!,,,2107.0,100.0,double glazing installed before 2002,Normal,0.0,6.0,6.0,0.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Poor,Poor,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.67,0.0,N,natural,"126, College Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2008-11-18 17:23:18,rental (private),,,200003664933.0,Address Matched +507812373032010070122430776068607,Flat 3,"18-20, Hartnup Street",,ME16 8LR,7716657768,C,B,77,83,Flat,Detached,2010-07-01,E07000110,E14000804,Kent,2010-07-01,marketed sale,75,81,216,163.0,1.7,36,1.3,52.0,28.0,278.0,238.0,90.0,73.0,48.32,dual,Y,1st,Y,2.0,2107.0,85.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,14.0,0.0,From main system,Good,Good,(other premises below),,,Mostly double glazing,Good,Good,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 14% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,unheated corridor,6.46,2.29,0.0,N,natural,"Flat 3, 18-20, Hartnup Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2010-07-01 22:43:07,owner-occupied,,,200003656710.0,Address Matched +161926782062020070914083192118810,"34, Newenden Close",,,ME14 5RU,1927842568,C,B,71,86,House,Semi-Detached,2020-07-09,E07000110,E14000804,Kent,2020-07-09,rental (private),69,85,191,77.0,2.6,34,1.1,63.0,63.0,450.0,390.0,103.0,70.0,78.0,Unknown,Y,NODATA!,,,2107.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"34, Newenden Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2020-07-09 14:08:31,rental (private),,,200003672527.0,Address Matched +203299889132019012313183088268808,Flat 8 Lee Heights,Bambridge Court,,ME14 2LG,8858806568,B,B,82,87,Flat,Mid-Terrace,2019-01-23,E07000110,E14000804,Kent,2019-01-23,rental (private),78,80,158,143.0,1.6,27,1.4,50.0,56.0,140.0,92.0,191.0,136.0,59.0,dual,N,2nd,N,,2603.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,100.0,0.0,"Electric immersion, off-peak",Poor,Poor,(another dwelling below),NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Room heaters, electric",Very Poor,Poor,Programmer and appliance thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,unheated corridor,3.34,,,N,natural,"Flat 8 Lee Heights, Bambridge Court",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2019-01-23 13:18:30,rental (private),,,10022892980.0,Address Matched +986650069062013080813434952788247,"8, Manor Close",Bearsted,,ME14 4BY,4564632178,B,B,90,90,House,Detached,2013-08-08,E07000110,E14000700,Kent,2013-08-08,new dwelling,90,90,50,50.0,1.4,10,1.4,74.0,74.0,404.0,404.0,79.0,79.0,141.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.12 W/mA?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/mA?K,Very Good,Very Good,,,,Average thermal transmittance 0.15 W/mA?K,Good,Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"8, Manor Close, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2013-08-08 13:43:49,NO DATA!,25.0,25.0,10014314507.0,Address Matched +1280752165312015021209462691940730,3 Nightingale Close,Laddingford,,ME18 6AA,7054513378,B,A,83,115,House,Mid-Terrace,2014-04-14,E07000110,E14000804,Kent,2015-02-12,new dwelling,85,114,93,-108.0,1.5,16,-1.6,59.0,59.0,266.0,266.0,78.0,47.0,89.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.18 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.20 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"3 Nightingale Close, Laddingford",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2015-02-12 09:46:26,unknown,1.0,1.0,10091194143.0,Address Matched +1603305809222018012520030176058888,26 Bishops Terrace,Bishops Way,,ME14 1LA,8753006578,D,D,62,62,Flat,Mid-Terrace,2018-01-25,E07000110,E14000804,Kent,2018-01-25,new dwelling,65,65,222,222.0,2.6,38,2.6,58.0,58.0,478.0,478.0,269.0,269.0,69.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Very Poor,Poor,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.29 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, electric",Very Poor,Poor,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"26 Bishops Terrace, Bishops Way",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2018-01-25 20:03:01,unknown,10.0,10.0,, +724559559962011111717360423838239,"9, Jaggard Way",Staplehurst,,TN12 0LF,3240543968,C,C,69,71,House,Semi-Detached,2011-11-17,E07000110,E14000804,Kent,2011-11-17,marketed sale,70,72,210,193.0,2.4,40,2.2,59.0,33.0,382.0,369.0,97.0,97.0,58.5,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,21.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 21% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,2.31,0.0,,natural,"9, Jaggard Way, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1967-1975,2011-11-17 17:36:04,owner-occupied,14.0,3.0,200003677683.0,Address Matched +6dd15137248d914c56fe5c4b7a6e8203a661928c3c2f0064a55f538c682f7bca,40 Anglesey Avenue,,,ME15 9SU,10001484396,D,C,58,78,House,Semi-Detached,2021-08-24,E07000110,E14000804,Kent,2021-08-25,marketed sale,51,72,314,160.0,4.6,55,2.4,69.0,69.0,758.0,596.0,124.0,76.0,84.0,Unknown,Y,,,,,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.48,0.0,N,natural,40 Anglesey Avenue,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2021-08-25 06:21:58,Owner-occupied,11.0,,200003678525.0,Energy Assessor +1077328229432014012417430524278400,"4, Marion Crescent",,,ME15 7DY,2034488178,D,B,57,83,House,Semi-Detached,2014-01-23,E07000110,E14000700,Kent,2014-01-24,none of the above,52,82,257,84.0,4.6,49,1.6,104.0,54.0,827.0,512.0,111.0,70.0,93.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,1.0,5.0,5.0,8.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 8% of fixed outlets,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"4, Marion Crescent",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2014-01-24 17:43:05,owner-occupied,13.0,1.0,200003684229.0,Address Matched +1284446329222015022313592603678235,"19, Grampian Way",Downswood,,ME15 8TG,3007243378,C,C,69,75,House,Mid-Terrace,2015-02-23,E07000110,E14000700,Kent,2015-02-23,marketed sale,92,101,28,-47.0,0.3,7,-0.3,37.0,37.0,393.0,320.0,91.0,50.0,45.0,Single,Y,NODATA!,,,2107.0,100.0,double glazing installed during or after 2002,Normal,1.0,2.0,2.0,80.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"19, Grampian Way, Downswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2015-02-23 13:59:26,owner-occupied,,,200003691066.0,Address Matched +1431680019022016041115003103958696,Flat 34,Concorde House,London Road,ME16 8QA,9057183478,C,C,70,70,Flat,Mid-Terrace,2016-04-05,E07000110,E14000804,Kent,2016-04-11,rental (private),66,66,250,250.0,2.3,42,2.3,41.0,41.0,358.0,358.0,170.0,170.0,55.0,dual,N,3rd,N,,2107.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,100.0,0.0,From main system,Poor,Poor,(another dwelling below),NO DATA!,,Fully double glazed,Good,Good,"System built, with internal insulation",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, electric",Very Poor,Poor,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,unheated corridor,9.68,2.5,,N,natural,"Flat 34, Concorde House, London Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2016-04-11 15:00:31,rental (private),,,, +1644774736832018063008545691778605,"12, Beech Hurst Close",,,ME15 7PG,3521698578,C,A,74,92,House,Mid-Terrace,2018-06-30,E07000110,E14000804,Kent,2018-06-30,marketed sale,75,93,192,31.0,1.8,34,0.3,51.0,51.0,265.0,251.0,134.0,63.0,53.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,80.0,0.0,From main system,Good,Good,"Suspended, limited insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"12, Beech Hurst Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2018-06-30 08:54:56,owner-occupied,,,200003686818.0,Address Matched +499673048412010061721140999900275,"441, Willington Street",,,ME15 8HD,2547896768,D,C,58,72,House,Semi-Detached,2010-06-17,E07000110,E14000700,Kent,2010-06-17,marketed sale,55,71,315,201.0,4.3,52,2.7,78.0,42.0,629.0,452.0,165.0,109.0,82.26,Single,Y,NO DATA!,,,2101.0,100.0,secondary glazing,Normal,0.0,4.0,4.0,17.0,1.0,From main system,Average,Good,"Solid, no insulation (assumed)",,,Full secondary glazing,Good,Good,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Average,Good,No time or thermostatic control of room temperature,Very Poor,Very Poor,Low energy lighting in 17% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.37,0.0,N,natural,"441, Willington Street",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2010-06-17 21:14:09,owner-occupied,,,200003680554.0,Address Matched +1693324889262019020100204422338591,Flat 6,"15, Station Road",,ME14 1QJ,9202842678,D,D,57,57,Flat,Detached,2019-01-27,E07000110,E14000804,Kent,2019-02-01,new dwelling,62,62,363,363.0,2.0,61,2.0,28.0,28.0,404.0,404.0,220.0,220.0,33.0,standard tariff,,ground floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,"Electric immersion, standard tariff",Very Poor,Poor,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.64 W/m-¦K,Average,Average,,,,(other premises above),,,"Room heaters, electric",Very Poor,Poor,Appliance thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"Flat 6, 15, Station Road",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2019-02-01 00:20:44,unknown,6.0,6.0,10094439953.0,Address Matched +1287998169502015070821473334350038,3 New Lodge Cottages,Hunton Road,Marden,TN12 9SL,541763378,E,B,47,86,House,Semi-Detached,2015-07-07,E07000110,E14000804,Kent,2015-07-08,marketed sale,43,78,232,34.0,7.1,55,2.1,116.0,72.0,1076.0,836.0,269.0,126.0,129.0,Single,N,NODATA!,,,2107.0,100.0,double glazing installed before 2002,Normal,2.0,6.0,6.0,38.0,1.0,"From main system, no cylinder thermostat",Poor,Poor,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, wood logs",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, oil",Average,Average,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 38% of fixed outlets,Average,Average,oil (not community),0.0,NO DATA!,,,,N,natural,"3 New Lodge Cottages, Hunton Road, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1930-1949,2015-07-08 21:47:33,owner-occupied,,,200003669529.0,Address Matched +735974696952012011017254892920693,"49, Melville Road",,,ME15 7UR,6389624968,D,C,56,69,House,Mid-Terrace,2012-01-10,E07000110,E14000804,Kent,2012-01-10,marketed sale,53,68,306,204.0,4.0,59,2.7,65.0,39.0,543.0,457.0,222.0,95.0,68.7,Single,Y,NODATA!,,,2107.0,100.0,double glazing installed during or after 2002,Normal,2.0,4.0,4.0,33.0,0.0,"From main system, no cylinderstat",Poor,Poor,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 33% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,2.2,0.0,,natural,"49, Melville Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2012-01-10 17:25:48,owner-occupied,9.0,3.0,200003695953.0,Address Matched +6df1ebdf96ff5438d5cd2b2837056586c16d5aa998804d54e0843c2a6150fda1,2,Bella Rosa Drive,Langley,ME17 3US,10001436877,B,A,84,95,House,End-Terrace,2021-08-24,E07000110,E14000700,Kent,2021-08-24,new dwelling,86,97,89,9.0,1.3,16,0.2,74.0,74.0,234.0,234.0,69.0,42.0,86.0,standard tariff,,,N,,,100.0,,,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.39,,,,"2, Bella Rosa Drive, Langley",Maidstone,Faversham and Mid Kent,Maidstone,2021,2021-08-24 09:02:29,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,15.0,,10095448349.0,Address Matched +6dfbe10fd8530987ea0d88316b245b75f82c07a60166512f7f05f4b364f8b967,LITTLE BARN,NEW BARN ROAD,HAWKENBURY,TN12 0ED,10001684556,B,A,81,99,House,Detached,2021-07-09,E07000110,E14000700,Kent,2021-07-09,new dwelling,77,94,70,-20.0,3.5,18,0.3,132.0,132.0,374.0,375.0,111.0,62.0,201.0,standard tariff,,,N,,,100.0,,,,,,100.0,0.0,From main system,Average,Average,Average thermal transmittance 0.16 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.19 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.09 W/m-¦K,Very Good,Very Good,"Boiler and radiators, oil",Average,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Oil: heating oil,0.0,,,2.3,,,,"LITTLE BARN, NEW BARN ROAD, HAWKENBURY",Maidstone,Faversham and Mid Kent,TONBRIDGE,2021,2021-07-09 08:36:53,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,1.0,,10094441460.0,Energy Assessor +1159210679922014061715534254438874,Faraway,Green Lane,Platts Heath,ME17 2NT,7582754278,C,B,69,88,Bungalow,Detached,2014-06-17,E07000110,E14000700,Kent,2014-06-17,marketed sale,59,81,185,61.0,3.4,46,1.4,52.0,52.0,509.0,372.0,185.0,119.0,73.0,Single,N,NODATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,85.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, oil",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 85% of fixed outlets,Very Good,Very Good,oil (not community),0.0,NO DATA!,,,0.0,,natural,"Faraway, Green Lane, Platts Heath",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1976-1982,2014-06-17 15:53:42,owner-occupied,13.0,11.0,200003703840.0,Address Matched +1341956836652015071008021094050530,"52, Northumberland Road",,,ME15 7LR,5049647378,E,C,52,80,House,Semi-Detached,2015-07-09,E07000110,E14000700,Kent,2015-07-10,marketed sale,45,76,382,147.0,4.7,67,1.9,78.0,47.0,797.0,569.0,188.0,70.0,70.0,Unknown,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,1.0,4.0,4.0,33.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 33% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"52, Northumberland Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2015-07-10 08:02:10,owner-occupied,,,200003712268.0,Address Matched +502642929542014120311452475740878,"14, Weld Close",Staplehurst,,TN12 0SJ,5511027768,D,B,63,87,House,Mid-Terrace,2014-12-03,E07000110,E14000804,Kent,2014-12-03,none of the above,63,89,217,52.0,3.2,41,0.8,97.0,49.0,628.0,399.0,100.0,71.0,77.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,"Pitched, 12 mm loft insulation",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"14, Weld Close, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1967-1975,2014-12-03 11:45:24,owner-occupied,9.0,0.0,200003678702.0,Address Matched +983050909022013080208455922498217,"31, Tintern Road",,,ME16 0RH,1209012178,E,C,48,80,Bungalow,Semi-Detached,2013-08-01,E07000110,E14000804,Kent,2013-08-02,marketed sale,32,81,487,95.0,6.6,86,1.4,80.0,45.0,753.0,499.0,247.0,69.0,76.0,dual,Y,NODATA!,,,2401.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,38.0,0.0,"Electric immersion, off-peak",Very Poor,Very Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, 100 mm loft insulation",Average,Average,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 38% of fixed outlets,Average,Average,electricity (not community),0.0,NO DATA!,,,0.0,,natural,"31, Tintern Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2013-08-02 08:45:59,owner-occupied,8.0,3.0,200003660849.0,Address Matched +1614587679442018031510031656689058,16 Warnford Gardens,,,ME15 6PH,9477976578,B,B,89,89,House,Detached,2018-03-15,E07000110,E14000804,Kent,2018-03-15,new dwelling,88,88,57,57.0,1.6,10,1.6,83.0,83.0,338.0,338.0,90.0,90.0,156.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.20 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,16 Warnford Gardens,Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2018-03-15 10:03:16,owner-occupied,13.0,13.0,10093306565.0,Address Matched +1538100379222017042417042501848363,"The Annex,Cold Blow Farm",Cold Blow Lane,Thurnham,ME14 3LR,6095731578,D,B,66,88,Bungalow,Enclosed End-Terrace,2017-04-24,E07000110,E14000700,Kent,2017-04-24,rental (private),47,74,263,60.0,3.5,75,1.5,58.0,36.0,372.0,304.0,122.0,79.0,46.0,Single,N,NODATA!,,,2305.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,40.0,0.0,Community scheme,Good,Poor,"Suspended, limited insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Timber frame, as built, insulated (assumed)",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,Community scheme,Good,Poor,"Flat rate charging, programmer and TRVs",Average,Average,Low energy lighting in 40% of fixed outlets,Average,Average,oil (community),0.0,NO DATA!,,,,N,natural,"The Annex,Cold Blow Farm, Cold Blow Lane, Thurnham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1996-2002,2017-04-24 17:04:25,rental (private),,,200003698525.0,Address Matched +1244339699962015091716331000338665,"80, Wallis Avenue",,,ME15 9FU,6058950378,B,A,82,94,House,NO DATA!,2015-09-17,E07000110,E14000700,Kent,2015-09-17,new dwelling,84,95,98,20.0,1.5,17,0.3,59.0,59.0,282.0,282.0,91.0,55.0,89.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.18 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"80, Wallis Avenue",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2015-09-17 16:33:10,unknown,10.0,10.0,10014315866.0,Address Matched +1557848079022017070616555092358673,"10, Woodcut",Penenden Heath,,ME14 2EQ,7930772578,D,B,61,84,Bungalow,Detached,2017-07-05,E07000110,E14000804,Kent,2017-07-06,marketed sale,53,82,265,92.0,4.9,47,1.8,131.0,66.0,782.0,516.0,185.0,77.0,105.0,Unknown,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,0.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"10, Woodcut, Penenden Heath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2017-07-06 16:55:50,owner-occupied,,,200003707825.0,Address Matched +1f62092109d59abc9c2d1ceaac4dcbaaac756383f0c3f6b42ebd114b7652f046,Hurst Green Barn Staplehurst Road,,,TN12 9BW,10001655406,C,C,71,78,House,Detached,2021-08-27,E07000110,E14000804,Kent,2021-09-02,marketed sale,68,74,154,120.0,9.4,25,7.3,183.0,183.0,1817.0,1584.0,130.0,130.0,382.0,dual,Y,,,,,100.0,double glazing installed during or after 2002,Normal,1.0,10.0,10.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Timber frame, as built, insulated (assumed)",Good,Good,"Room heaters, wood logs",,,"Pitched, insulated (assumed)",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.8,0.0,N,natural,Hurst Green Barn Staplehurst Road,Maidstone,Maidstone and The Weald,MARDEN,England and Wales: 1983-1990,2021-09-02 11:07:25,Owner-occupied,30.0,,200003730692.0,Address Matched +508001407652015030418350595050170,Flat 28 Lee Heights,Bambridge Court,,ME14 2LG,1096757768,C,C,70,79,Flat,End-Terrace,2015-03-04,E07000110,E14000804,Kent,2015-03-04,marketed sale,66,66,230,232.0,2.7,39,2.7,74.0,56.0,364.0,229.0,170.0,138.0,69.0,dual,N,Ground,N,,2602.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,57.0,0.0,"Electric immersion, off-peak",Poor,Poor,"Solid, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Room heaters, electric",Very Poor,Poor,Appliance thermostats,Good,Good,Low energy lighting in 57% of fixed outlets,Good,Good,electricity (not community),0.0,unheated corridor,10.74,,,N,natural,"Flat 28 Lee Heights, Bambridge Court",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2015-03-04 18:35:05,owner-occupied,,,10022892999.0,Address Matched +1478863401632016092609081881278901,"85, Grecian Street",,,ME14 2TT,111917478,D,B,57,88,House,Mid-Terrace,2016-09-26,E07000110,E14000804,Kent,2016-09-26,marketed sale,50,88,336,62.0,4.0,59,0.8,47.0,47.0,767.0,364.0,112.0,65.0,68.0,Unknown,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Granite or whinstone, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Roof room(s), no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,2.4,,N,natural,"85, Grecian Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2016-09-26 09:08:18,owner-occupied,,,200003703335.0,Address Matched +1085393047212019052018001393210711,"73, Quarry Road",,,ME15 6UB,7137739178,D,B,64,84,House,End-Terrace,2019-05-20,E07000110,E14000804,Kent,2019-05-20,rental (private),58,81,261,105.0,3.7,46,1.5,74.0,59.0,651.0,474.0,85.0,56.0,81.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,4.0,4.0,75.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,"Room heaters, mains gas",,,"Pitched, 270 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"73, Quarry Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2019-05-20 18:00:13,rental (private),,,200003682020.0,Address Matched +990085078732013081515463796978005,"37, Chaplin Drive",Headcorn,,TN27 9TN,7536062178,C,B,70,83,House,Detached,2013-08-15,E07000110,E14000700,Kent,2013-08-15,marketed sale,67,81,163,83.0,3.6,31,1.9,61.0,61.0,622.0,529.0,133.0,89.0,116.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,6.0,6.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"37, Chaplin Drive, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,England and Wales: 1967-1975,2013-08-15 15:46:37,owner-occupied,12.0,12.0,200003699444.0,Address Matched +596519529142011101015460685499108,"5, Winchs Garth",Staplehurst,,TN12 0QX,100124868,D,D,67,68,Bungalow,Mid-Terrace,2011-10-10,E07000110,E14000804,Kent,2011-10-10,rental (social),71,71,240,236.0,1.9,45,1.8,34.0,24.0,363.0,364.0,70.0,70.0,41.29,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,2.0,2.0,60.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 60% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,2.27,0.0,,natural,"5, Winchs Garth, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1950-1966,2011-10-10 15:46:06,rental (social),5.0,3.0,200003728025.0,Address Matched +407652580022009120315422010278691,15 Stafford Gardens,,,ME15 6GZ,9134840768,B,B,87,87,Flat,Enclosed End-Terrace,2009-12-03,E07000110,E14000804,Kent,2009-12-03,rental (social),86,86,127,127.0,0.9,21,0.9,23.0,23.0,167.0,167.0,72.0,72.0,42.2,Unknown,Y,1st,N,3.0,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,100.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Good,Good,"Timber frame, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,unheated corridor,3.2,2.33,0.0,N,natural,15 Stafford Gardens,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2009-12-03 15:42:20,rental (social),,,10022895077.0,Address Matched +1655353879642018081320445855989878,"9, Lower Fant Road",,,ME16 8DP,2632479578,E,C,45,80,House,Semi-Detached,2018-08-13,E07000110,E14000804,Kent,2018-08-13,non marketed sale,41,78,344,106.0,7.1,60,2.2,150.0,75.0,1360.0,634.0,105.0,75.0,118.0,Single,Y,NODATA!,,,2107.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,4.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,Portable electric heaters (assumed),,,"Roof room(s), no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"9, Lower Fant Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2018-08-13 20:44:58,owner-occupied,,,200003668367.0,Address Matched +778161522062020030322434467678490,"26, Gorham Drive",Downswood,,ME15 8UU,9663267968,C,A,77,92,House,Mid-Terrace,2020-03-03,E07000110,E14000700,Kent,2020-03-03,rental (private),79,93,154,31.0,1.5,27,0.3,46.0,46.0,280.0,280.0,73.0,47.0,55.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"26, Gorham Drive, Downswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2020-03-03 22:43:44,rental (private),,,200003691408.0,Address Matched +1373043989922015101908212739938315,"33, St. Philips Avenue",,,ME15 7SL,1358869378,E,C,50,74,House,Mid-Terrace,2015-10-17,E07000110,E14000804,Kent,2015-10-19,marketed sale,46,71,335,160.0,5.9,59,2.9,98.0,62.0,1194.0,814.0,105.0,71.0,101.0,Unknown,Y,NODATA!,,,2104.0,95.0,"double glazing, unknown install date",Normal,3.0,5.0,5.0,42.0,1.0,From main system,Very Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Mostly double glazing,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, electric",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 42% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"33, St. Philips Avenue",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2015-10-19 08:21:27,owner-occupied,,,200003686740.0,Address Matched +1791668012922020031111231089398620,"21, Wolfe Road",,,ME16 8NX,2826169678,D,C,57,76,House,Semi-Detached,2020-03-11,E07000110,E14000804,Kent,2020-03-11,rental (private),49,70,315,166.0,4.7,56,2.5,66.0,66.0,803.0,633.0,130.0,84.0,84.0,Unknown,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,6.0,6.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"21, Wolfe Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2020-03-11 11:23:10,rental (private),,,200003674500.0,Address Matched +1814751893032020080309122750778902,"25, Celestine Close",,,ME5 9NG,9210921778,D,B,65,81,House,Detached,2020-07-31,E07000110,E14000700,Kent,2020-08-03,marketed sale,59,76,220,122.0,5.0,39,2.8,178.0,89.0,754.0,671.0,172.0,87.0,128.0,Single,Y,NODATA!,,,2107.0,100.0,double glazing installed during or after 2002,Normal,1.0,6.0,6.0,0.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, mains gas",,,"Pitched, insulated (assumed)",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"25, Celestine Close",Maidstone,Faversham and Mid Kent,CHATHAM,England and Wales: 1983-1990,2020-08-03 09:12:27,owner-occupied,,,200003708778.0,Address Matched +617181038352011041918442297990289,"4b, Grecian Street",,,ME14 2TS,2990875868,C,C,79,79,House,Mid-Terrace,2011-04-19,E07000110,E14000804,Kent,2011-04-19,none of the above,81,81,116,113.0,1.8,22,1.8,53.0,42.0,298.0,299.0,83.0,83.0,61.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,0.0,,From main system,Good,Good,Average thermal transmittance 0.20 W/m?K,Very Good,Very Good,Fully double glazed,Good,Good,Average thermal transmittance 0.31 W/m?K,Good,Good,,,,Average thermal transmittance 0.18 W/m?K,Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.43,,,NO DATA!,"4b, Grecian Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2011-04-19 18:44:22,,2.0,0.0,10014312193.0,Address Matched +6e49f26413e382243758a8b0130dee9d4179284a61a37c54e2f9ebdee1ee4485,39 Hardy Street,,,ME14 2SH,10001480367,E,B,51,83,House,Mid-Terrace,2021-02-19,E07000110,E14000804,Kent,2021-09-28,marketed sale,46,81,417,113.0,3.6,75,1.0,49.0,49.0,645.0,399.0,74.0,50.0,47.0,Single,Y,,,,,100.0,"double glazing, unknown install date",Normal,2.0,7.0,7.0,83.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 83% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.51,0.0,N,natural,39 Hardy Street,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2021-09-28 17:37:41,Owner-occupied,12.0,,200003702703.0,Energy Assessor +1494464029842016110613534549860458,"34, Holtye Crescent",,,ME15 7DD,9820828478,D,C,64,75,House,Semi-Detached,2016-11-05,E07000110,E14000700,Kent,2016-11-06,marketed sale,57,69,252,173.0,4.6,44,3.2,79.0,79.0,845.0,801.0,115.0,80.0,104.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,78.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 78% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,2.4,,N,natural,"34, Holtye Crescent",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2016-11-06 13:53:45,owner-occupied,,,200003683868.0,Address Matched +639013404012013020608222593070880,23 Crystal House,Coral Park,,ME14 5HQ,8069437868,C,C,75,77,Flat,End-Terrace,2013-02-06,E07000110,E14000804,Kent,2013-02-06,rental (social),60,62,312,298.0,2.5,55,2.4,34.0,34.0,230.0,201.0,104.0,104.0,45.0,dual,N,2nd,Y,,2401.0,100.0,double glazing installed before 2002,Normal,0.0,2.0,2.0,100.0,0.0,"Electric immersion, off-peak",Average,Very Poor,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,Portable electric heaters (assumed),,,"Pitched, insulated (assumed)",Good,Good,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,unheated corridor,6.5,,0.0,,natural,"23 Crystal House, Coral Park",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2013-02-06 08:22:25,rental (social),5.0,5.0,10022893732.0,Address Matched +818277949702012072611340700022268,"33, Keele Avenue",,,ME15 9WU,1788740078,B,B,81,82,House,Detached,2012-07-26,E07000110,E14000700,Kent,2012-07-26,new dwelling,82,83,97,91.0,2.2,19,2.1,94.0,58.0,404.0,409.0,96.0,96.0,117.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,5.0,,From main system,Good,Good,Average thermal transmittance 0.21 W/m?K,Good,Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.35 W/m?K,Good,Good,,,,Average thermal transmittance 0.24 W/m?K,Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 38% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.31,,,NO DATA!,"33, Keele Avenue",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2012-07-26 11:34:07,,13.0,5.0,10014311580.0,Address Matched +1063231293212013121913342098979010,"19, Iona Road",,,ME15 9SX,10387178,D,C,55,78,House,Semi-Detached,2013-12-19,E07000110,E14000804,Kent,2013-12-19,none of the above,57,81,250,109.0,4.8,40,1.9,110.0,61.0,1013.0,693.0,138.0,77.0,120.0,Single,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,1.0,6.0,6.0,19.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, wood logs",,,"Pitched, 75mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 19% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"19, Iona Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2013-12-19 13:34:20,owner-occupied,16.0,3.0,200003675326.0,Address Matched +1364766909142015091615154932959468,"66, Chapman Avenue",,,ME15 8EL,6196809378,E,C,51,80,House,Semi-Detached,2015-09-16,E07000110,E14000700,Kent,2015-09-16,none of the above,44,76,334,124.0,6.1,61,2.3,122.0,61.0,1090.0,649.0,125.0,74.0,99.0,Single,Y,NODATA!,,,2103.0,100.0,double glazing installed during or after 2002,Normal,1.0,7.0,6.0,0.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Room thermostat only,Poor,Poor,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"66, Chapman Avenue",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2015-09-16 15:15:49,owner-occupied,,,200003684682.0,Address Matched +1786568253912020022111544322900863,Flat 5 The Old Bakery,"2a, Heathorn Street",,ME14 5AQ,8326329678,C,C,72,72,Flat,Detached,2020-02-19,E07000110,E14000804,Kent,2020-02-21,new dwelling,76,76,227,227.0,1.3,40,1.3,33.0,33.0,266.0,266.0,57.0,57.0,32.0,standard tariff,,top floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Good,Good,Average thermal transmittance 0.30 W/m-¦K,Good,Good,,,,Average thermal transmittance 0.28 W/m-¦K,Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Flat 5 The Old Bakery, 2a, Heathorn Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2020-02-21 11:54:43,unknown,10.0,10.0,10014315334.0,Address Matched +664432735112011080916582791090988,"16, Olivine Close",,,ME5 9NQ,9857519868,C,C,69,71,House,Semi-Detached,2011-08-09,E07000110,E14000700,Kent,2011-08-09,marketed sale,69,71,188,178.0,2.8,36,2.7,82.0,43.0,419.0,424.0,125.0,125.0,78.67,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,5.0,5.0,8.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 8% of fixed outlets,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,2.33,0.0,,natural,"16, Olivine Close",Maidstone,Faversham and Mid Kent,CHATHAM,England and Wales: 1983-1990,2011-08-09 16:58:27,owner-occupied,13.0,1.0,200003708106.0,Address Matched +308466160922009061823580793888371,1a Hamilton House,Heath Road,Coxheath,ME17 4DF,7915653668,D,C,64,76,Flat,Detached,2009-06-18,E07000110,E14000804,Kent,2009-06-18,marketed sale,59,73,288,190.0,3.8,48,2.5,79.0,40.0,516.0,363.0,100.0,87.0,79.77,Single,Y,1st,Y,2.0,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,0.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 150mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.38,0.0,N,natural,"1a Hamilton House, Heath Road, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2009-06-18 23:58:07,owner-occupied,,,200003718487.0,Address Matched +1784575712842020021318272363900568,"2, Dhekelia Close",Invicta Park,,ME14 2NX,824219678,D,B,55,81,House,End-Terrace,2020-02-06,E07000110,E14000804,Kent,2020-02-13,Stock Condition Survey,47,77,338,129.0,4.8,60,1.9,63.0,63.0,848.0,533.0,97.0,66.0,80.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Flat, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"2, Dhekelia Close, Invicta Park",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2020-02-13 18:27:23,rental (social),,,200003723911.0,Address Matched +176276670222008102712431433148358,"6, Neville Close",Penenden Heath,,ME14 2DS,5374723568,E,D,49,59,House,Semi-Detached,2008-10-24,E07000110,E14000804,Kent,2008-10-27,rental (private),51,62,328,260.0,7.4,48,5.7,106.0,71.0,996.0,832.0,170.0,128.0,154.5,Single,Y,NO DATA!,,,2106.0,70.0,double glazing installed before 2002,Normal,2.0,4.0,4.0,50.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Partial double glazing,Poor,Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Flat, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.45,0.0,N,natural,"6, Neville Close, Penenden Heath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2008-10-27 12:43:14,rental (private),,,200003706398.0,Address Matched +1471435369702016081519231748669758,"6, Sage Court",,,ME16 0ZQ,6727566478,C,B,75,89,House,Mid-Terrace,2016-08-15,E07000110,E14000804,Kent,2016-08-15,marketed sale,76,89,158,52.0,1.8,28,0.6,49.0,49.0,291.0,291.0,135.0,101.0,65.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,2.49,,N,natural,"6, Sage Court",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2016-08-15 19:23:17,owner-occupied,,,10022896403.0,Address Matched +775129978012012041813451993920992,5 Mill Cottages,Tutsham Farm,West Farleigh,ME15 0NF,9267837968,D,B,66,88,House,Mid-Terrace,2012-04-18,E07000110,E14000804,Kent,2012-04-18,marketed sale,58,83,198,58.0,3.8,45,1.4,59.0,46.0,517.0,392.0,152.0,89.0,85.0,Single,N,NODATA!,,,2106.0,25.0,double glazing installed during or after 2002,Normal,1.0,5.0,5.0,71.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Some double glazing,Poor,Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, no insulation",Very Poor,Very Poor,"Boiler and radiators, oil",Average,Average,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 71% of fixed outlets,Very Good,Very Good,oil (not community),0.0,NO DATA!,,,0.0,,natural,"5 Mill Cottages, Tutsham Farm, West Farleigh",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2012-04-18 13:45:19,owner-occupied,7.0,5.0,10022893681.0,Address Matched +783466205232012050217061694068408,"17, Eynsford Road",,,ME16 0TD,814408968,D,B,62,86,Bungalow,Semi-Detached,2012-05-02,E07000110,E14000804,Kent,2012-05-02,marketed sale,63,88,237,56.0,2.7,45,0.7,42.0,42.0,516.0,359.0,74.0,52.0,61.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,82.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 82% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"17, Eynsford Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2012-05-02 17:06:16,owner-occupied,11.0,9.0,200003661066.0,Address Matched +1566250239602017080910240356330148,Tile Barn Farmhouse,Hollingbourne,,ME17 1QL,3612633578,E,C,44,80,House,Detached,2017-08-04,E07000110,E14000700,Kent,2017-08-09,marketed sale,74,98,206,49.0,4.4,23,0.0,102.0,102.0,1680.0,1172.0,307.0,137.0,188.0,Single,N,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,8.0,8.0,90.0,1.0,From main system,Poor,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, insulated at rafters",Good,Good,"Boiler and radiators, LPG",Poor,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 90% of fixed outlets,Very Good,Very Good,LPG (not community),0.0,NO DATA!,,,,N,natural,"Tile Barn Farmhouse, Hollingbourne",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2017-08-09 10:24:03,owner-occupied,,,200003725852.0,Address Matched +384827226032020061916550227968109,"26, Stagshaw Close",,,ME15 6TN,2997198668,C,A,78,92,House,Mid-Terrace,2020-06-19,E07000110,E14000804,Kent,2020-06-19,rental (private),80,94,138,27.0,1.6,24,0.3,71.0,57.0,258.0,260.0,95.0,64.0,64.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,75.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Timber frame, as built, insulated (assumed)",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"26, Stagshaw Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2020-06-19 16:55:02,rental (private),,,10022893268.0,Address Matched +1708432859102019032618214364312268,Silver Cedars,Harple Lane,Detling,ME14 3EU,7159753678,D,A,66,103,House,Detached,2019-03-26,E07000110,E14000700,Kent,2019-03-26,marketed sale,62,98,226,-16.0,3.5,40,-0.1,105.0,63.0,586.0,509.0,85.0,55.0,87.0,Single,Y,NODATA!,,,2103.0,100.0,"double glazing, unknown install date",Normal,1.0,5.0,4.0,33.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, mains gas",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Room thermostat only,Poor,Poor,Low energy lighting in 33% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"Silver Cedars, Harple Lane, Detling",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2019-03-26 18:21:43,owner-occupied,,,200003723378.0,Address Matched +735152509262011122117532244298869,Flat 2 Pippin Court,"105, Tonbridge Road",,ME16 8JN,6448024968,B,B,82,82,Flat,NO DATA!,2011-12-21,E07000110,E14000804,Kent,2011-12-21,new dwelling,87,87,100,100.0,0.9,19,0.9,27.0,27.0,204.0,204.0,73.0,73.0,46.56,standard tariff,,ground floor,,,,,NO DATA!,NO DATA!,,,,8.0,,From main system,Good,Good,Average thermal transmittance 0.18 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.27 W/m?K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.54,,,NO DATA!,"Flat 2 Pippin Court, 105, Tonbridge Road",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2011-12-21 17:53:22,,8.0,8.0,10014313004.0,Address Matched +164200409022017090913560772738243,"8, The Street",Detling,,ME14 3JT,4771052568,C,C,72,78,House,Detached,2017-09-07,E07000110,E14000700,Kent,2017-09-09,marketed sale,65,71,160,125.0,6.8,28,5.3,100.0,100.0,1204.0,1121.0,144.0,144.0,239.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,9.0,9.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"8, The Street, Detling",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1991-1995,2017-09-09 13:56:07,owner-occupied,,,200003731835.0,Address Matched +483679979922010051214505555328800,67 Roman Way,Boughton Monchelsea,,ME17 4SH,501785768,B,B,83,85,House,End-Terrace,2010-05-12,E07000110,E14000700,Kent,2010-05-12,new dwelling,83,83,138,132.0,1.4,23,1.3,51.0,31.0,221.0,224.0,82.0,82.0,60.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,,From main system,Very Good,Very Good,Average thermal transmittance 0.19 W/m?K,Very Good,Very Good,Fully double glazed,Good,Good,Average thermal transmittance 0.29 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.16 W/m?K,Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 38% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.33,,,NO DATA!,"67 Roman Way, Boughton Monchelsea",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2010-05-12 14:50:55,,,,10022896593.0,Address Matched +144127179242011060706455352090198,"113, Tonbridge Road",,,ME16 8JS,7269070568,E,D,40,55,House,Detached,2011-06-01,E07000110,E14000804,Kent,2011-06-07,marketed sale,37,49,318,236.0,17.0,61,12.0,168.0,89.0,2774.0,2156.0,184.0,118.0,234.6,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,2.0,8.0,8.0,10.0,0.0,"From main system, no cylinder thermostat",Average,Average,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 10% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,2.8,0.0,,natural,"113, Tonbridge Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2011-06-07 06:45:53,owner-occupied,21.0,2.0,200003657367.0,Address Matched +1740865339062019080216052145528151,Lilac Cottage,Otham Street,Otham,ME15 8RL,5410395678,F,A,24,100,House,Semi-Detached,2019-08-02,E07000110,E14000700,Kent,2019-08-02,rental (private),27,93,728,23.0,5.9,125,0.2,38.0,38.0,1358.0,712.0,216.0,103.0,47.0,dual,N,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,100.0,0.0,From main system,Poor,Poor,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, dual fuel (mineral and wood)",,,"Roof room(s), ceiling insulated",Very Poor,Very Poor,"Boiler and radiators, electric",Very Poor,Poor,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,NO DATA!,,,,N,natural,"Lilac Cottage, Otham Street, Otham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2019-08-02 16:05:21,rental (private),,,200003690541.0,Address Matched +859824599262012112311553423878272,"39, St. Catherines Road",,,ME15 9WP,7268933078,C,B,80,81,House,End-Terrace,2012-11-23,E07000110,E14000700,Kent,2012-11-23,new dwelling,83,84,108,101.0,1.5,21,1.4,70.0,41.0,287.0,290.0,86.0,86.0,72.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.20 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.34 W/m?K,Good,Good,,,,Average thermal transmittance 0.24 W/m?K,Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 30% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"39, St. Catherines Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2012-11-23 11:55:34,NO DATA!,10.0,3.0,10014311706.0,Address Matched +1393842825652015120813391291059147,"20, Queens Road",,,ME16 0LJ,1739511478,D,B,68,82,House,End-Terrace,2015-12-08,E07000110,E14000804,Kent,2015-12-08,rental (private),61,77,187,101.0,6.0,33,3.3,175.0,87.0,1012.0,800.0,150.0,89.0,181.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,6.0,6.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Roof room(s), insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"20, Queens Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2015-12-08 13:39:12,rental (private),,,200003691842.0,Address Matched +305830039742010082914331364302618,"13, Somner Walk",,,ME15 9PR,8746533668,C,C,79,79,Bungalow,Mid-Terrace,2010-08-29,E07000110,E14000700,Kent,2010-08-29,rental (social),76,76,210,210.0,1.7,35,1.7,25.0,25.0,302.0,302.0,78.0,78.0,48.24,Single,Y,NO DATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,100.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"System built, with external insulation",Good,Good,,,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.39,0.0,N,natural,"13, Somner Walk",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2010-08-29 14:33:13,rental (social),,,200003680072.0,Address Matched +1504451842632016121311193195978899,"24, Becksbourne Close",Penenden Heath,,ME14 2ED,4925898478,C,B,69,84,House,Mid-Terrace,2016-12-13,E07000110,E14000804,Kent,2016-12-13,marketed sale,66,83,175,75.0,4.3,31,1.9,111.0,78.0,791.0,575.0,150.0,89.0,141.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,6.0,5.0,56.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,Portable electric heaters (assumed),,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 56% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"24, Becksbourne Close, Penenden Heath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2016-12-13 11:19:31,owner-occupied,,,200003706515.0,Address Matched +691583926852011101816473990999494,"15, Eyhorne Street",Hollingbourne,,ME17 1TR,4479601968,E,E,46,54,House,Detached,2011-10-18,E07000110,E14000700,Kent,2011-10-18,marketed sale,40,46,304,260.0,13.0,59,11.0,158.0,79.0,2070.0,1827.0,164.0,143.0,220.81,Single,Y,NODATA!,,,2106.0,0.0,not defined,Normal,1.0,9.0,9.0,0.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,2.55,0.0,,natural,"15, Eyhorne Street, Hollingbourne",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2011-10-18 16:47:39,owner-occupied,16.0,0.0,200003722218.0,Address Matched +1426511749242016032208215640362798,Lane Side Cottage,Frittenden Road,Staplehurst,TN12 0DH,5226543478,F,C,23,79,House,Detached,2016-03-21,E07000110,E14000804,Kent,2016-03-22,rental (private),22,74,397,83.0,11.0,100,2.5,98.0,66.0,1584.0,534.0,299.0,90.0,107.0,Single,N,NODATA!,,,2102.0,100.0,double glazing installed during or after 2002,Normal,1.0,6.0,5.0,50.0,0.0,"From main system, no cylinder thermostat",Very Poor,Very Poor,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,"Roof room(s), ceiling insulated",Very Poor,Very Poor,"Boiler and radiators, oil",Poor,Average,"Programmer, no room thermostat",Very Poor,Very Poor,Low energy lighting in 50% of fixed outlets,Good,Good,oil (not community),0.0,NO DATA!,,2.25,,N,natural,"Lane Side Cottage, Frittenden Road, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1950-1966,2016-03-22 08:21:56,rental (private),,,200003722797.0,Address Matched +142632222022020030715164571738460,"146, Union Street",,,ME14 1EE,6780241568,E,B,54,87,House,End-Terrace,2020-03-07,E07000110,E14000804,Kent,2020-03-07,rental (private),47,86,380,76.0,3.9,67,0.8,69.0,48.0,692.0,372.0,96.0,45.0,58.0,Single,Y,NODATA!,,,2102.0,100.0,"double glazing, unknown install date",Normal,1.0,4.0,4.0,57.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,Low energy lighting in 57% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"146, Union Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2020-03-07 15:16:45,rental (private),,,200003687388.0,Address Matched +1663544139102018091415425960089948,"7, Perrymede Road",Allington,,ME16 9FT,9176130678,B,B,86,88,House,Semi-Detached,2018-09-14,E07000110,E14000804,Kent,2018-09-14,new dwelling,88,91,68,52.0,1.0,12,0.8,64.0,64.0,202.0,202.0,92.0,50.0,85.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.19 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.16 W/m-¦K,Good,Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"7, Perrymede Road, Allington",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2018-09-14 15:42:59,unknown,14.0,14.0,10093306539.0,Address Matched +157411500022008100210405621828508,"51, Cranborne Avenue",,,ME15 7EE,212061568,D,C,68,78,House,Semi-Detached,2008-10-02,E07000110,E14000700,Kent,2008-10-02,marketed sale,64,75,209,144.0,5.4,35,3.7,114.0,71.0,551.0,410.0,177.0,128.0,153.8,Unknown,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,9.0,9.0,40.0,0.0,From main system,Average,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Average,Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 40% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.43,0.0,N,natural,"51, Cranborne Avenue",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2008-10-02 10:40:56,owner-occupied,,,200003715525.0,Address Matched +947362006732013061016102670978305,Flat 5,"21, Brewer Street",,ME14 1RU,560369078,E,B,44,82,Flat,Mid-Terrace,2013-06-10,E07000110,E14000804,Kent,2013-06-10,rental (private),49,72,341,186.0,4.0,60,2.2,40.0,44.0,723.0,174.0,250.0,101.0,66.0,Single,N,3rd,Y,,2603.0,40.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,"Electric immersion, standard tariff",Very Poor,Very Poor,(other premises below),,,Partial double glazing,Poor,Poor,"Solid brick, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 150 mm loft insulation",Good,Good,"Room heaters, electric",Very Poor,Very Poor,Programmer and appliance thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,heated corridor,,,0.0,,natural,"Flat 5, 21, Brewer Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2013-06-10 16:10:26,rental (private),16.0,16.0,10014315004.0,Address Matched +1419012665832018052316242378278306,"12, The Parade",Staplehurst,,TN12 0LA,6668392478,C,C,76,76,Flat,Mid-Terrace,2018-05-23,E07000110,E14000804,Kent,2018-05-23,rental (private),75,75,146,146.0,2.4,26,2.4,66.0,66.0,406.0,406.0,91.0,91.0,92.0,Unknown,Y,1st,Y,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,100.0,0.0,From main system,Good,Good,(other premises below),NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,no corridor,,,,N,natural,"12, The Parade, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1967-1975,2018-05-23 16:24:23,rental (private),,,200003730963.0,Address Matched +716760129852017020914450498030095,Flat 1 The Cricket House,"10-12, Hayle Road",,ME15 6PF,510982968,D,C,57,74,Flat,Mid-Terrace,2017-02-08,E07000110,E14000804,Kent,2017-02-09,rental (private),52,75,377,195.0,3.3,66,1.7,73.0,37.0,619.0,327.0,84.0,85.0,50.0,Unknown,Y,Ground,N,,2102.0,100.0,"double glazing, unknown install date",Normal,2.0,2.0,2.0,0.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,no corridor,,,,N,natural,"Flat 1 The Cricket House, 10-12, Hayle Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2017-02-09 14:45:04,rental (private),,,200003693597.0,Address Matched +640697899922012031916440397418092,"42, Northumberland Court",Northumberland Road,,ME15 7LL,9942947868,C,C,71,72,Maisonette,Semi-Detached,2012-03-19,E07000110,E14000700,Kent,2012-03-19,rental (social),71,71,176,171.0,2.8,34,2.7,69.0,46.0,467.0,470.0,85.0,85.0,83.66,Single,Y,2nd,Y,,2106.0,100.0,double glazing installed before 2002,More Than Typical,0.0,4.0,4.0,50.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,,,,"Flat, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,no corridor,,2.39,0.0,,natural,"42, Northumberland Court, Northumberland Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2012-03-19 16:44:03,rental (social),10.0,5.0,200003729040.0,Address Matched +2588623352008120814255305089548,8 Roman Way,Boughton Monchelsea,,ME17 4SG,5828356468,B,B,82,83,House,Semi-Detached,2008-12-08,E07000110,E14000700,Kent,2008-12-08,new dwelling,81,82,113,108.0,2.5,19,2.4,96.0,66.0,267.0,271.0,101.0,101.0,133.19,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,6.0,,From main system,Very Good,Very Good,Average thermal transmittance = 0.19 W/m?K,Very Good,Very Good,Fully double glazed,Good,Good,Average thermal transmittance = 0.28 W/m?K,Very Good,Very Good,,,,Average thermal transmittance = 0.17 W/m?K,Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 55% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.33,,,NO DATA!,"8 Roman Way, Boughton Monchelsea",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2008-12-08 14:25:53,,11.0,6.0,10022896534.0,Address Matched +1285015049202015110409460932350348,Ushant,Gravelly Bottom Road,Kingswood,ME17 3PZ,9261543378,D,A,66,103,Bungalow,Detached,2015-11-04,E07000110,E14000700,Kent,2015-11-04,ECO assessment,61,98,229,-11.0,4.0,40,-0.1,122.0,61.0,715.0,560.0,92.0,57.0,99.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,4.0,4.0,0.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, limited insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"Ushant, Gravelly Bottom Road, Kingswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2015-11-04 09:46:09,owner-occupied,,,200003700252.0,Address Matched +6ef4ca42f65d6138801a8a8ae23987eeebcf20fc1b90d3711fe897f3ddd0aa20,FLAT 9,RAYLEIGH HOUSE,KINGS REACH,ME15 7QR,10001650711,E,C,53,71,Flat,Semi-Detached,2021-06-29,E07000110,E14000700,Kent,2021-07-01,ECO assessment,52,75,427,222.0,3.0,75,1.6,75.0,38.0,589.0,335.0,86.0,71.0,40.0,Single,Y,01,Y,,,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,0.0,0.0,From main system,Good,Good,(another dwelling below),,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Average,Average,"Room heaters, electric",,,"Pitched, insulated (assumed)",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,unheated corridor,4.5,2.85,0.0,N,natural,"FLAT 9, RAYLEIGH HOUSE, KINGS REACH",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2021-07-01 18:35:42,Rented (social),5.0,,200003714055.0,Energy Assessor +1297738059222015032314432054778275,"9, Coriander Drive",,,ME16 0ZD,7564534378,C,B,73,89,House,Mid-Terrace,2015-03-23,E07000110,E14000804,Kent,2015-03-23,rental (private),73,88,172,55.0,2.1,30,0.7,91.0,50.0,333.0,317.0,134.0,100.0,71.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,17.0,0.0,From main system,Good,Good,"Solid, limited insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 17% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"9, Coriander Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2015-03-23 14:43:20,rental (private),,,10014306153.0,Address Matched +17110510352017022718592998230446,183 Wallis Place,Hart Street,,ME16 8FE,4667088468,C,C,79,80,Flat,Enclosed End-Terrace,2017-02-27,E07000110,E14000804,Kent,2017-02-27,rental (private),81,82,126,120.0,1.5,22,1.4,79.0,51.0,245.0,249.0,86.0,86.0,66.0,Single,Y,1st,N,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,44.0,0.0,From main system,Good,Good,"To external air, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 44% of fixed outlets,Average,Average,mains gas (not community),0.0,unheated corridor,9.32,,,N,natural,"183 Wallis Place, Hart Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2017-02-27 18:59:29,rental (private),,,10022900791.0,Address Matched +244376410962009031709111419468031,"3, Gladstone Road",Penenden Heath,,ME14 2AU,3123129568,D,C,66,74,House,Mid-Terrace,2009-03-16,E07000110,E14000804,Kent,2009-03-17,rental (private),62,69,319,255.0,2.8,53,2.2,50.0,25.0,398.0,346.0,85.0,69.0,52.3,Unknown,Y,NO DATA!,,,2107.0,100.0,double glazing installed during or after 2002,Normal,1.0,4.0,4.0,0.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Poor,Poor,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.41,0.0,N,natural,"3, Gladstone Road, Penenden Heath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2009-03-17 09:11:14,rental (private),,,200003701725.0,Address Matched +1681919149762019093012184221508851,8 Alan's Gardens,Yalding,,ME18 6FA,5246461678,B,A,86,94,House,Detached,2019-09-30,E07000110,E14000804,Kent,2019-09-30,new dwelling,86,94,74,23.0,1.9,13,0.6,87.0,87.0,295.0,296.0,102.0,56.0,145.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.22 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"8 Alan's Gardens, Yalding",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2019-09-30 12:18:42,unknown,15.0,15.0,10094439976.0,Address Matched +1149442215812014053010054898740928,Westcot,The Priory,East Farleigh,ME15 0HA,9885583278,G,D,2,59,Bungalow,Detached,2014-05-30,E07000110,E14000804,Kent,2014-05-30,marketed sale,1,32,1455,549.0,14.0,258,5.2,66.0,38.0,1859.0,784.0,282.0,147.0,53.0,dual,N,NODATA!,,,2401.0,0.0,single glazing,Normal,1.0,2.0,2.0,25.0,1.0,"Electric immersion, standard tariff",Very Poor,Very Poor,"Suspended, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Sandstone, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, electric",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 25% of fixed outlets,Average,Average,electricity (not community),0.0,NO DATA!,,,0.0,,natural,"Westcot, The Priory, East Farleigh",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2014-05-30 10:05:48,owner-occupied,4.0,1.0,200003727070.0,Address Matched +1377979210112015102316070190259748,3 Alexander Court,Mote Park,,ME15 8WY,7807000478,C,C,78,78,Flat,Mid-Terrace,2015-10-23,E07000110,E14000700,Kent,2015-10-23,new dwelling,86,86,75,75.0,1.3,16,1.3,58.0,58.0,242.0,242.0,199.0,199.0,81.0,standard tariff,,ground floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Poor,Good,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.19 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, LPG",Poor,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,LPG - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"3 Alexander Court, Mote Park",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2015-10-23 16:07:01,unknown,9.0,9.0,10091195117.0,Address Matched +725693909222011112216433993628519,"6, Langton Close",,,ME14 5PG,1915053968,D,C,66,72,House,Semi-Detached,2011-11-22,E07000110,E14000804,Kent,2011-11-22,marketed sale,64,71,215,171.0,3.5,41,2.8,78.0,46.0,542.0,461.0,126.0,107.0,97.69,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,4.0,4.0,29.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 29% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,2.4,0.0,,natural,"6, Langton Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2011-11-22 16:43:39,owner-occupied,14.0,4.0,200003671319.0,Address Matched +1462295799642016071309472844569278,"19, Oakapple Lane",Barming,,ME16 9NW,7623895478,B,B,88,90,House,NO DATA!,2016-07-13,E07000110,E14000804,Kent,2016-07-13,new dwelling,90,92,60,40.0,0.8,11,0.5,52.0,52.0,227.0,229.0,110.0,61.0,71.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.14 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.19 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"19, Oakapple Lane, Barming",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2016-07-13 09:47:28,unknown,15.0,15.0,10091195866.0,Address Matched +1488203289742018092708042142782738,"7, Greensand Meadow",Sutton Valence,,ME17 3FP,7736387478,B,B,85,91,House,Detached,2018-09-27,E07000110,E14000700,Kent,2018-09-27,new dwelling,83,90,82,43.0,2.8,14,1.5,96.0,96.0,428.0,431.0,110.0,62.0,190.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.14 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.26 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and underfloor heating, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"7, Greensand Meadow, Sutton Valence",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2018-09-27 08:04:21,owner-occupied,10.0,10.0,10093303726.0,Address Matched +1339838429922015081817564277788465,23 Hook Lane,Harrietsham,,ME17 1JN,6738237378,B,B,88,89,House,Mid-Terrace,2015-08-18,E07000110,E14000700,Kent,2015-08-18,new dwelling,90,92,58,46.0,0.9,10,0.7,61.0,61.0,225.0,225.0,93.0,59.0,88.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.17 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.17 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"23 Hook Lane, Harrietsham",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2015-08-18 17:56:42,unknown,7.0,7.0,10091195154.0,Address Matched +438679368852010021615143396900475,The Coach House,Ulcombe Hill,Ulcombe,ME17 1DN,4544862768,F,E,31,45,House,Detached,2010-02-16,E07000110,E14000700,Kent,2010-02-16,rental (private),28,41,419,313.0,12.0,84,9.0,182.0,91.0,1676.0,1294.0,269.0,192.0,78.92,dual,N,NO DATA!,,,2106.0,0.0,not defined,Normal,0.0,4.0,4.0,0.0,0.0,From main system,Average,Poor,"Solid, no insulation (assumed)",,,Some double glazing,Very Poor,Very Poor,"Granite or whin, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Roof room(s), limited insulation (assumed)",Average,Average,"Boiler and radiators, oil",Average,Poor,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,oil - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.21,0.0,N,natural,"The Coach House, Ulcombe Hill, Ulcombe",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2010-02-16 15:14:33,rental (private),,,200003701211.0,Address Matched +1791839287032020031212014151978302,"4, Goldstone Walk",,,ME5 9QB,8251369678,D,B,68,85,House,Detached,2020-03-12,E07000110,E14000700,Kent,2020-03-12,marketed sale,65,83,219,94.0,3.0,39,1.3,125.0,63.0,498.0,438.0,98.0,67.0,79.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"4, Goldstone Walk",Maidstone,Faversham and Mid Kent,CHATHAM,England and Wales: 1983-1990,2020-03-12 12:01:41,owner-occupied,,,200003708890.0,Address Matched +1676082229022018110420365201248968,"74, Moncktons Avenue",,,ME14 2QF,6036221678,D,C,67,79,House,Semi-Detached,2018-11-04,E07000110,E14000804,Kent,2018-11-04,ECO assessment,61,73,215,134.0,3.8,38,2.4,67.0,67.0,649.0,611.0,110.0,74.0,101.0,Unknown,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,6.0,6.0,100.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"74, Moncktons Avenue",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2018-11-04 20:36:52,owner-occupied,,,200003670794.0,Address Matched +1460242089042016070615213742560168,4 Cross Street,,,ME14 2SL,9086485478,E,C,41,73,House,End-Terrace,2016-07-06,E07000110,E14000804,Kent,2016-07-06,marketed sale,29,60,395,163.0,9.2,84,4.0,134.0,67.0,1471.0,842.0,113.0,76.0,109.0,Single,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,2.0,6.0,6.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, smokeless fuel",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,2.4,,N,natural,4 Cross Street,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2016-07-06 15:21:37,owner-occupied,,,200003702829.0,Address Matched +957559745512013062719395693270113,"6, Beckworth Place",St. Andrews Road,,ME16 9LS,1375530178,C,B,72,90,House,Semi-Detached,2013-06-27,E07000110,E14000804,Kent,2013-06-27,marketed sale,73,92,162,35.0,2.2,31,0.5,69.0,42.0,355.0,303.0,116.0,66.0,72.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,36.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity and internal insulation",Very Good,Very Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 36% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"6, Beckworth Place, St. Andrews Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2013-06-27 19:39:56,owner-occupied,11.0,4.0,200003689569.0,Address Matched +35723790962008101608522922648278,2 Wood Court,Fountain Lane,,ME16 9AR,7233952568,B,B,86,86,House,Detached,2008-10-14,E07000110,E14000804,Kent,2008-10-16,new dwelling,85,85,116,,1.19,0,1.19,29.0,29.0,,,,,0.0,standard tariff,,ground floor,,,,,NO DATA!,NO DATA!,,,,0.0,,From main system,Very Good,Very Good,Average thermal transmittance 0.21 W/m2K,Good,Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.26 W/m2K,Very Good,Very Good,,,,Average thermal transmittance 0.15 W/m2K,Very Good,Very Good,"Boiler and radiators, mains gas",Very Good,Very Good,Time and temperature zone control,Good,Good,Low energy lighting in 100% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,0.0,,,NO DATA!,"2 Wood Court, Fountain Lane",Maidstone,Maidstone and The Weald,MAIDSTONE,,2008-10-16 08:52:29,,0.0,0.0,, +625835549642011050616383980690958,"43, Huntington Road",Coxheath,,ME17 4DU,8695346868,D,C,63,70,House,Semi-Detached,2011-05-05,E07000110,E14000804,Kent,2011-05-06,non marketed sale,61,69,240,190.0,3.6,46,2.9,76.0,46.0,539.0,460.0,130.0,106.0,78.87,Single,Y,NODATA!,,,2106.0,,not defined,Much More Than Typical,2.0,6.0,5.0,33.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 33% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,2.3,0.0,,natural,"43, Huntington Road, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2011-05-06 16:38:39,owner-occupied,12.0,4.0,200003671592.0,Address Matched +549900739922014041711090520058134,Flat 5,"24, Melville Road",,ME15 7UY,3228350868,C,B,75,81,Flat,Mid-Terrace,2014-04-15,E07000110,E14000804,Kent,2014-04-17,marketed sale,78,86,154,102.0,1.5,30,1.0,33.0,33.0,296.0,209.0,87.0,78.0,50.0,Unknown,Y,2nd,Y,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,4.6,,0.0,,natural,"Flat 5, 24, Melville Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2014-04-17 11:09:05,owner-occupied,5.0,5.0,200003728980.0,Address Matched +1434695886012016041919240690960247,"19, Perry Street",,,ME14 2RP,2735604478,D,B,65,89,House,Mid-Terrace,2016-04-19,E07000110,E14000804,Kent,2016-04-19,marketed sale,60,89,243,53.0,3.5,43,0.8,60.0,60.0,655.0,353.0,109.0,76.0,81.0,dual,Y,NODATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,2.11,,N,natural,"19, Perry Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2016-04-19 19:24:06,owner-occupied,,,200003669559.0,Address Matched +1407443409262016102913173832238546,"14, Chestnut Drive",Coxheath,,ME17 4QX,4327012478,C,B,75,88,House,Semi-Detached,2016-10-27,E07000110,E14000804,Kent,2016-10-29,marketed sale,74,88,169,64.0,2.3,30,0.9,51.0,51.0,382.0,358.0,135.0,85.0,76.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,6.0,6.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,2.3,,N,natural,"14, Chestnut Drive, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2016-10-29 13:17:38,owner-occupied,,,200003671884.0,Address Matched +1076665879702014012409224212842978,"14, Salem Street",,,ME15 6NS,2784878178,B,B,83,83,Flat,NO DATA!,2014-01-23,E07000110,E14000804,Kent,2014-01-24,new dwelling,88,88,82,82.0,1.0,16,1.0,51.0,51.0,217.0,217.0,71.0,71.0,67.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.19 W/mA?K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"14, Salem Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2014-01-24 09:22:42,NO DATA!,20.0,20.0,10014314849.0,Address Matched +564164467012010111115073095900983,The Nightingales,Ware Street,Weavering,ME14 5LA,9314751868,B,B,85,86,House,Detached,2010-03-16,E07000110,E14000700,Kent,2010-11-11,new dwelling,85,85,86,83.0,2.5,14,2.4,133.0,106.0,366.0,370.0,80.0,80.0,175.93,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,,From main system,Very Good,Very Good,Average thermal transmittance 0.20 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.27 W/m?K,Very Good,Very Good,"Room heaters, mains gas",,,Average thermal transmittance 0.16 W/m?K,Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,,,NO DATA!,"The Nightingales, Ware Street, Weavering",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2010-11-11 15:07:30,,,,, +582395309222011012110171453308859,"8, Freshland Road",,,ME16 0WJ,5509003868,C,C,73,79,House,Detached,2011-01-20,E07000110,E14000804,Kent,2011-01-21,marketed sale,71,77,180,142.0,3.6,30,2.9,140.0,70.0,477.0,424.0,177.0,143.0,121.09,Unknown,Y,NO DATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,7.0,7.0,0.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.26,0.0,N,natural,"8, Freshland Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2011-01-21 10:17:14,owner-occupied,,,10022901707.0,Address Matched +561324088552010110415131793009488,"29, Corben Close",Allington,,ME16 0FH,4840831868,C,C,74,79,House,Detached,2010-11-04,E07000110,E14000804,Kent,2010-11-04,marketed sale,72,76,168,141.0,3.9,28,3.3,160.0,80.0,501.0,469.0,167.0,147.0,142.2,Unknown,Y,NO DATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,7.0,7.0,0.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",,,Fully double glazed,Good,Good,"Solid brick, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.3,0.0,N,natural,"29, Corben Close, Allington",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2010-11-04 15:13:17,owner-occupied,,,10022901484.0,Address Matched +889190549842013022615281100572268,Knowle Cottage,The Green,Bearsted,ME14 4DN,8839645078,D,C,56,76,House,Detached,2013-02-26,E07000110,E14000700,Kent,2013-02-26,marketed sale,49,72,227,117.0,9.3,44,4.9,147.0,83.0,1545.0,981.0,128.0,128.0,211.0,Single,Y,NODATA!,,,2106.0,5.0,double glazing installed during or after 2002,Normal,2.0,9.0,9.0,19.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Some double glazing,Very Poor,Very Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 19% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"Knowle Cottage, The Green, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2013-02-26 15:28:11,owner-occupied,32.0,6.0,200003694946.0,Address Matched +496827316032010060915471561068002,"57, Gorham Drive",Downswood,,ME15 8UU,1271086768,D,C,65,79,House,Mid-Terrace,2010-06-09,E07000110,E14000700,Kent,2010-06-09,rental (private),59,76,347,205.0,2.9,58,1.7,47.0,26.0,360.0,276.0,191.0,98.0,50.4,Single,Y,NO DATA!,,,2104.0,0.0,not defined,Normal,0.0,3.0,3.0,16.0,0.0,"From main system, no cylinder thermostat",Poor,Average,"Solid, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Timber frame, as built, insulated (assumed)",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Average,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 16% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.34,0.0,N,natural,"57, Gorham Drive, Downswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2010-06-09 15:47:15,rental (private),,,200003691442.0,Address Matched +6f797c8fdf4d7a705a25dd2ed66fc9ca0a004a7db191c18c069debacbe9208c2,17 TENACRE COURT,ASHFORD ROAD,HARRIETSHAM,ME17 1AH,10001384680,E,E,40,40,Flat,End-Terrace,2021-08-05,E07000110,E14000700,Kent,2021-08-05,not sale or rental,47,47,358,358.0,4.5,60,4.5,74.0,74.0,1340.0,1340.0,242.0,242.0,74.0,standard tariff,,1,N,,,100.0,,,,,,100.0,0.0,Electric instantaneous at point of use,Very Poor,Poor,Average thermal transmittance 0.47 W/m-¦K,Poor,Poor,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.32 W/m-¦K,Average,Average,"Boiler and radiators, electric",Very Poor,Poor,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",0.0,,,3.66,,,,"17 TENACRE COURT, ASHFORD ROAD, HARRIETSHAM",Maidstone,Faversham and Mid Kent,MAIDSTONE,2020,2021-08-05 13:55:50,Owner-occupied,5.0,,10095449482.0,Energy Assessor +340437962022020081014233445088880,"20, Tennison Way",,,ME15 9GE,8471675668,C,C,79,80,Flat,Detached,2020-08-08,E07000110,E14000700,Kent,2020-08-10,marketed sale,80,80,124,121.0,1.9,22,1.9,94.0,77.0,277.0,278.0,132.0,132.0,88.0,Single,Y,1st,Y,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,78.0,0.0,From main system,Good,Good,(another dwelling below),NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 78% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,10.0,,,N,natural,"20, Tennison Way",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2007 onwards,2020-08-10 14:23:34,owner-occupied,,,10022895423.0,Address Matched +183914019842019041620305252419668,6 Ruth House,Lesley Place,Buckland Hill,ME16 0UB,3874314568,C,B,79,82,Flat,Enclosed End-Terrace,2019-04-16,E07000110,E14000804,Kent,2019-04-16,marketed sale,69,72,271,244.0,1.8,46,1.6,59.0,37.0,180.0,148.0,131.0,131.0,40.0,dual,N,2nd,N,,2401.0,100.0,double glazing installed before 2002,Normal,0.0,2.0,2.0,40.0,0.0,"Electric immersion, off-peak",Average,Poor,(another dwelling below),NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,Portable electric heaters (assumed),,,(another dwelling above),,,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 40% of fixed outlets,Average,Average,electricity (not community),0.0,unheated corridor,0.94,,,N,natural,"6 Ruth House, Lesley Place, Buckland Hill",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2019-04-16 20:30:52,owner-occupied,,,10014311988.0,Address Matched +16473300262009012212335588728931,224 Wallis Place,Hart Street,,ME16 8FF,3894088468,B,B,87,87,Flat,Detached,2009-01-22,E07000110,E14000804,Kent,2009-01-22,new dwelling,87,87,122,122.0,0.9,0,0.9,19.0,19.0,125.0,125.0,54.0,54.0,0.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,6.0,,SAP05:Hot-Water,,,(other premises below),,,Fully double glazed,Good,Good,Average thermal transmittance 0.27 W/m²K,Very Good,Very Good,SAP05:Secondary-Heating,,,Average thermal transmittance 0.00 W/m²K,Very Good,Very Good,SAP05:Main-Heating,,,SAP05:Main-Heating-Controls,,,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,,,,NO DATA!,"224 Wallis Place, Hart Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2009-01-22 12:33:55,,6.0,6.0,10022900832.0,Address Matched +723588739932011111517491544968695,Jupesa,The Priory,East Farleigh,ME15 0JH,3524633968,C,C,71,76,House,Detached,2011-11-15,E07000110,E14000804,Kent,2011-11-15,marketed sale,67,74,155,124.0,6.1,30,4.9,146.0,77.0,972.0,817.0,93.0,93.0,206.05,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,5.0,5.0,12.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 12% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,2.4,0.0,,natural,"Jupesa, The Priory, East Farleigh",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2011-11-15 17:49:15,owner-occupied,32.0,4.0,200003727074.0,Address Matched +623023659262011042816091986698819,"18, Twyford Court",,,ME14 5RX,1899526868,C,C,70,76,Flat,NO DATA!,2011-04-21,E07000110,E14000804,Kent,2011-04-28,rental (private),73,80,182,137.0,2.2,34,1.6,63.0,36.0,381.0,305.0,74.0,74.0,62.91,Single,Y,1st,Y,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,27.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, partial insulation (assumed)",Average,Average,"Room heaters, electric",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 27% of fixed outlets,Average,Average,mains gas (not community),0.0,no corridor,,2.33,0.0,,natural,"18, Twyford Court",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1976-1982,2011-04-28 16:09:19,rental (private),11.0,3.0,200003727464.0,Address Matched +918904514732013042417512221278206,"20, Birch Drive",,,ME5 8YU,1641267078,C,B,71,87,House,End-Terrace,2013-04-24,E07000110,E14000700,Kent,2013-04-24,marketed sale,72,89,168,51.0,2.3,32,0.8,83.0,41.0,359.0,333.0,109.0,74.0,71.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"20, Birch Drive",Maidstone,Faversham and Mid Kent,CHATHAM,England and Wales: 1976-1982,2013-04-24 17:51:22,owner-occupied,11.0,0.0,200003673589.0,Address Matched +247583900802009032312270158919898,"5, St. Andrews Park",Tarragon Road,,ME16 0WD,8828709568,C,B,79,84,Flat,Detached,2009-03-11,E07000110,E14000804,Kent,2009-03-23,rental (private),78,82,140,114.0,2.5,23,2.0,108.0,54.0,246.0,233.0,117.0,100.0,108.6,Single,Y,1st,N,3.0,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,0.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Granite or whin, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,unheated corridor,5.5,2.81,0.0,N,natural,"5, St. Andrews Park, Tarragon Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1991-1995,2009-03-23 12:27:01,rental (private),,,200003654961.0,Address Matched +6f9d2ed5324a3e848d97912225b4406996613e40536c03afe41dc5ef37cae77f,5 Chimney Avenue,,,ME14 1GY,10001521690,B,A,85,95,House,Semi-Detached,2021-07-22,E07000110,E14000804,Kent,2021-07-22,new dwelling,86,96,79,13.0,1.5,14,0.3,85.0,85.0,233.0,234.0,94.0,53.0,111.0,standard tariff,,,N,,,100.0,,,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.26 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.18 W/m-¦K,Good,Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.54,,,,5 Chimney Avenue,Maidstone,Maidstone and The Weald,MAIDSTONE,2021,2021-07-22 12:58:17,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,10.0,,10094443129.0,Address Matched +13874429242017092817572841839608,"21, Tennison Way",,,ME15 9GE,6298028468,C,B,78,89,House,Mid-Terrace,2017-05-10,E07000110,E14000700,Kent,2017-09-28,rental (social),78,88,131,56.0,2.3,23,1.0,67.0,67.0,358.0,360.0,120.0,70.0,98.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Very Good,Very Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"21, Tennison Way",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2007 onwards,2017-09-28 17:57:28,rental (social),,,10022895438.0,Address Matched +687932591652011101411301198999893,"415, Willington Street",,,ME15 8HD,8330180968,E,C,54,72,House,Semi-Detached,2011-10-14,E07000110,E14000700,Kent,2011-10-14,rental (private),50,72,306,171.0,4.8,59,2.7,61.0,44.0,749.0,439.0,149.0,106.0,81.2,Single,Y,NODATA!,,,2107.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,60.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 60% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,2.4,0.0,,natural,"415, Willington Street",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2011-10-14 11:30:11,rental (private),10.0,6.0,200003680543.0,Address Matched +481445069642010050606500676500168,"4, Lenham Road",Kingswood,,ME17 1LZ,9687465768,B,B,83,83,House,Mid-Terrace,2010-05-06,E07000110,E14000700,Kent,2010-05-06,marketed sale,81,82,123,121.0,2.0,20,1.9,64.0,53.0,277.0,279.0,114.0,114.0,96.8,Single,Y,NO DATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,80.0,0.0,From main system,Very Good,Very Good,"Solid, insulated (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,0.0,N,natural,"4, Lenham Road, Kingswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2007 onwards,2010-05-06 06:50:06,owner-occupied,,,10022895803.0,Address Matched +6fb3ecb9b04f832edec240c15dc67fa35d403bf06a1c376870a74ca3bcb614ca,FLAT 8,BURDOCK HOUSE,NORTHUMBERLAND ROAD,ME15 7TX,10001647566,E,C,54,71,Flat,Semi-Detached,2021-06-29,E07000110,E14000700,Kent,2021-07-01,ECO assessment,53,75,413,222.0,2.9,72,1.6,75.0,38.0,569.0,334.0,86.0,71.0,40.0,Single,Y,01,Y,,,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,0.0,0.0,From main system,Good,Good,(another dwelling below),,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Average,Average,"Room heaters, electric",,,"Pitched, insulated (assumed)",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,unheated corridor,8.5,2.85,0.0,N,natural,"FLAT 8, BURDOCK HOUSE, NORTHUMBERLAND ROAD",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2021-07-01 18:14:50,Rented (social),5.0,,200003714124.0,Energy Assessor +6fbe3484102d522a6d1915d0217907c0d56a570f89e77ca3f904d773b39b44ce,8 Council Cottages,Gallants Lane,East Farleigh,ME15 0LL,10001546439,D,B,62,81,House,Semi-Detached,2021-08-10,E07000110,E14000804,Kent,2021-08-12,marketed sale,56,77,203,86.0,3.9,49,1.9,67.0,67.0,467.0,405.0,149.0,74.0,81.0,Unknown,N,,,,,100.0,"double glazing, unknown install date",Normal,2.0,4.0,4.0,100.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, with external insulation",Good,Good,"Room heaters, wood logs",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, oil",Average,Average,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,oil (not community),0.0,,,2.46,0.0,N,natural,"8 Council Cottages, Gallants Lane, East Farleigh",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2021-08-12 05:00:42,Owner-occupied,11.0,,200003671173.0,Energy Assessor +659702089242011072917010181892188,"11, Heath Grove",,,ME16 9AS,225688868,D,C,60,71,House,Semi-Detached,2011-07-28,E07000110,E14000804,Kent,2011-07-29,marketed sale,56,70,245,168.0,4.9,47,3.4,83.0,52.0,779.0,554.0,130.0,107.0,104.58,Single,Y,NODATA!,,,2107.0,95.0,double glazing installed before 2002,Normal,1.0,5.0,5.0,42.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Mostly double glazing,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, insulated at rafters",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 42% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,2.2,0.0,,natural,"11, Heath Grove",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2011-07-29 17:01:01,owner-occupied,12.0,5.0,200003676126.0,Address Matched +623898039502011050420385481690148,"43a, Randall Street",,,ME14 2TB,2533236868,E,D,43,57,Maisonette,Mid-Terrace,2011-05-04,E07000110,E14000804,Kent,2011-05-04,marketed sale,28,38,727,565.0,5.8,129,4.5,37.0,27.0,601.0,431.0,177.0,155.0,45.409,dual,N,Ground,N,,2401.0,45.0,double glazing installed during or after 2002,Normal,1.0,3.0,1.0,67.0,0.0,"Electric immersion, off-peak, no cylinder thermostat",Very Poor,Very Poor,"To unheated space, limited insulation (assumed)",,,Partial double glazing,Poor,Poor,"Solid brick, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,(another dwelling above),,,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 67% of fixed outlets,Good,Good,electricity (not community),0.0,unheated corridor,9.955,2.46,0.0,,natural,"43a, Randall Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2011-05-04 20:38:54,owner-occupied,12.0,8.0,200003670005.0,Address Matched +794478788152012052811051797220597,Groveland,Ulcombe Road,Langley,ME17 3JE,5752878968,B,B,85,85,House,Detached,2012-05-28,E07000110,E14000700,Kent,2012-05-28,new dwelling,86,86,71,71.0,2.2,14,2.2,70.0,70.0,347.0,347.0,92.0,92.0,159.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,20.0,,From main system,Good,Good,Average thermal transmittance 0.11 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.20 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.13 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,,,NO DATA!,"Groveland, Ulcombe Road, Langley",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2012-05-28 11:05:17,,20.0,20.0,10014312966.0,Address Matched +553620782432014022815265849268708,17 Hawley Court,London Road,,ME16 8QJ,8869770868,C,C,70,79,Flat,Mid-Terrace,2014-02-26,E07000110,E14000804,Kent,2014-02-28,none of the above,72,83,198,121.0,1.8,38,1.1,45.0,32.0,356.0,242.0,93.0,77.0,49.0,Single,Y,1st,N,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,60.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 60% of fixed outlets,Good,Good,mains gas (not community),0.0,unheated corridor,1.85,,0.0,,natural,"17 Hawley Court, London Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2014-02-28 15:26:58,rental (social),5.0,3.0,200003668449.0,Address Matched +413714364252009121711385709919279,"39, Campbell Road",,,ME15 6PY,2973490768,D,C,59,69,House,Mid-Terrace,2009-12-17,E07000110,E14000804,Kent,2009-12-17,rental (private),51,63,330,247.0,5.0,55,3.7,45.0,45.0,692.0,541.0,165.0,122.0,89.82,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,3.0,3.0,100.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.54,0.0,N,natural,"39, Campbell Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2009-12-17 11:38:57,rental (private),,,200003692836.0,Address Matched +817734149342012073012525203022758,"142, Courtenay Road",,,ME15 6UN,1361440078,D,B,68,88,Bungalow,Mid-Terrace,2012-07-25,E07000110,E14000804,Kent,2012-07-30,rental (social),70,90,208,49.0,2.0,40,0.5,55.0,30.0,355.0,316.0,73.0,52.0,50.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,More Than Typical,0.0,2.0,2.0,17.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 17% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"142, Courtenay Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2012-07-30 12:52:52,rental (social),6.0,1.0,200003682596.0,Address Matched +597979909222014030410494134158014,29 Hawley Court,London Road,,ME16 8QJ,1325034868,C,C,70,78,Flat,Mid-Terrace,2014-02-25,E07000110,E14000804,Kent,2014-03-04,none of the above,72,83,203,127.0,1.8,39,1.1,30.0,30.0,361.0,244.0,91.0,75.0,46.0,Single,Y,5th,N,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,100.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,1.856,,0.0,,natural,"29 Hawley Court, London Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2014-03-04 10:49:41,rental (social),5.0,5.0,200003668462.0,Address Matched +1548081309142017053010520151237508,"4, Hayward Road",,,ME17 3GA,5115702578,B,A,83,95,House,Detached,2017-05-30,E07000110,E14000700,Kent,2017-05-30,new dwelling,85,97,93,9.0,1.3,16,0.2,54.0,54.0,235.0,235.0,84.0,50.0,81.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"4, Hayward Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2017-05-30 10:52:01,unknown,7.0,7.0,10093303944.0,Address Matched +6fdf4d2774cbb6349879390dd3d8a7941a3b199924988cad698ac679356a83b1,Flat 134,Scotney Gardens,St. Peters Street,ME16 0GT,10001683581,C,C,75,78,Flat,Mid-Terrace,2021-08-24,E07000110,E14000804,Kent,2021-08-30,rental,59,64,228,204.0,4.2,38,3.7,118.0,118.0,571.0,450.0,212.0,212.0,109.0,dual,N,03,Y,,,100.0,double glazing installed during or after 2002,Normal,1.0,4.0,4.0,81.0,0.0,"Electric immersion, off-peak",Average,Poor,(another dwelling below),,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,"Pitched, insulated (assumed)",Good,Good,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 81% of fixed outlets,Very Good,Very Good,electricity (not community),0.0,heated corridor,,2.19,0.0,N,natural,"Flat 134, Scotney Gardens, St. Peters Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2021-08-30 16:12:40,Rented (private),16.0,,10022893501.0,Energy Assessor +492588545032010053010092098268704,"98, The Landway",Bearsted,,ME14 4LB,4498746768,D,D,58,61,House,Detached,2010-05-20,E07000110,E14000700,Kent,2010-05-30,marketed sale,58,61,267,251.0,4.8,44,4.6,122.0,64.0,792.0,776.0,127.0,127.0,110.6,dual,Y,NO DATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,2.0,8.0,8.0,10.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, partial insulation (assumed)",Average,Average,"Room heaters, electric",,,"Pitched, limited insulation (assumed)",Poor,Poor,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 10% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.7,0.0,N,natural,"98, The Landway, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2010-05-30 10:09:20,owner-occupied,,,200003692691.0,Address Matched +803888026232012062010095524268509,"28, Barham Mews",Teston,,ME18 5BL,2974549968,D,C,64,76,Flat,Semi-Detached,2012-06-20,E07000110,E14000804,Kent,2012-06-20,marketed sale,45,60,333,229.0,5.5,59,3.8,97.0,58.0,554.0,329.0,143.0,143.0,92.0,dual,N,1st,Y,,2402.0,0.0,single glazing,Normal,0.0,3.0,3.0,30.0,1.0,"Electric immersion, off-peak",Average,Very Poor,(other premises below),,,Single glazed,Very Poor,Very Poor,"Solid brick, with internal insulation",Good,Good,Portable electric heaters (assumed),,,"Pitched, 100 mm loft insulation",Average,Average,Electric storage heaters,Average,Very Poor,Automatic charge control,Average,Average,Low energy lighting in 30% of fixed outlets,Average,Average,electricity (not community),0.0,unheated corridor,8.795,,0.0,,natural,"28, Barham Mews, Teston",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1991-1995,2012-06-20 10:09:55,owner-occupied,10.0,3.0,10014308642.0,Address Matched +1366280661532015092116365623278008,Apartment 83 Sandling Park,Sandling Lane,,ME14 2NY,6813029378,C,B,78,83,Flat,End-Terrace,2015-09-21,E07000110,E14000804,Kent,2015-09-21,marketed sale,74,74,212,214.0,1.6,36,1.6,48.0,52.0,161.0,103.0,153.0,124.0,45.0,dual,N,2nd,N,,2603.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,67.0,0.0,"Electric immersion, off-peak",Poor,Poor,(another dwelling below),NO DATA!,,Fully double glazed,Good,Good,"System built, as built, insulated (assumed)",Very Good,Very Good,,,,(another dwelling above),,,"Room heaters, electric",Very Poor,Poor,Programmer and appliance thermostats,Good,Good,Low energy lighting in 67% of fixed outlets,Good,Good,electricity (not community),0.0,unheated corridor,1.39,,,N,natural,"Apartment 83 Sandling Park, Sandling Lane",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2015-09-21 16:36:56,owner-occupied,,,10014307178.0,Address Matched +1521732429402017022210380356032928,"1, Dhekelia Close",Invicta Park,,ME14 2NX,6482020578,D,B,67,85,House,End-Terrace,2017-02-22,E07000110,E14000804,Kent,2017-02-22,rental (social),62,83,230,89.0,3.4,41,1.3,74.0,55.0,602.0,450.0,105.0,70.0,83.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,67.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,,,,"Flat, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 67% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"1, Dhekelia Close, Invicta Park",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2017-02-22 10:38:03,rental (social),,,200003723910.0,Address Matched +6ff3a63c166a64676388633ad9678ac526d213851c8fa24ef23c66e87dbd7f59,9 CANNING STREET,,,ME14 2RU,10001619767,D,B,59,88,House,Semi-Detached,2021-07-02,E07000110,E14000804,Kent,2021-07-04,rental,53,87,325,70.0,3.4,57,0.8,51.0,51.0,615.0,344.0,88.0,61.0,60.0,Single,Y,,,,,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.4,0.0,N,natural,9 CANNING STREET,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2021-07-04 18:40:17,Rented (social),28.0,,200003702326.0,Energy Assessor +1641851975712018062006473097980058,"16, St. Stephens Square",,,ME15 6RE,820578578,C,B,70,89,House,Mid-Terrace,2018-06-19,E07000110,E14000804,Kent,2018-06-20,marketed sale,68,89,227,64.0,2.4,40,0.7,43.0,43.0,386.0,316.0,124.0,72.0,59.0,Unknown,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, partial insulation (assumed)",Average,Average,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"16, St. Stephens Square",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1976-1982,2018-06-20 06:47:30,owner-occupied,,,200003666037.0,Address Matched +1345082358052016052422331196260937,"44, Wilberforce Road",Coxheath,,ME17 4HD,9726867378,E,C,52,75,House,Semi-Detached,2016-05-24,E07000110,E14000804,Kent,2016-05-24,ECO assessment,44,68,344,170.0,6.4,61,3.2,107.0,64.0,1122.0,826.0,192.0,79.0,106.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,1.0,5.0,5.0,33.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 33% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,2.3,,N,natural,"44, Wilberforce Road, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2016-05-24 22:33:11,owner-occupied,,,200003713615.0,Address Matched +1577287319902017092509484758432128,"69, Heath Road",,,ME16 9LD,1998414578,D,B,57,86,House,End-Terrace,2017-09-22,E07000110,E14000804,Kent,2017-09-25,rental (private),50,84,318,78.0,4.3,56,1.1,68.0,52.0,720.0,392.0,144.0,70.0,76.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,2.0,4.0,4.0,70.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 70% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"69, Heath Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2017-09-25 09:48:47,rental (private),,,200003681642.0,Address Matched +582599999932011011915421023968206,"22, Friars Court",Queen Anne Road,,ME14 1ER,9603203868,B,B,84,85,Flat,Enclosed Mid-Terrace,2011-01-19,E07000110,E14000804,Kent,2011-01-19,rental (private),79,80,214,206.0,1.4,32,1.3,29.0,29.0,92.0,80.0,116.0,116.0,42.27,dual,N,1st,N,4.0,2401.0,100.0,double glazing installed before 2002,Normal,0.0,2.0,2.0,100.0,0.0,"Electric immersion, off-peak",Poor,Poor,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,(another dwelling above),,,Electric storage heaters,Poor,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity - this is for backwards compatibility only and should not be used,0.0,heated corridor,,2.38,0.0,N,natural,"22, Friars Court, Queen Anne Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2011-01-19 15:42:10,rental (private),,,200003688635.0,Address Matched +266760660442009041515512862019758,"22, Bushy Grove",Kingswood,,ME17 3QL,4409160668,E,D,47,55,House,Semi-Detached,2009-04-15,E07000110,E14000700,Kent,2009-04-15,marketed sale,44,51,483,414.0,4.9,73,4.2,39.0,39.0,505.0,390.0,221.0,221.0,66.64,Single,N,NO DATA!,,,2401.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,2.0,88.0,0.0,"Electric immersion, off-peak",Very Poor,Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, 100 mm loft insulation",Average,Average,Electric storage heaters,Poor,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 88% of fixed outlets,Very Good,Very Good,electricity - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.38,0.0,N,natural,"22, Bushy Grove, Kingswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2009-04-15 15:51:28,owner-occupied,,,200003701366.0,Address Matched +1360269959762015090308163578498265,"130, Merton Road",Bearsted,,ME15 8LS,6707578378,D,B,62,87,House,Semi-Detached,2015-08-31,E07000110,E14000700,Kent,2015-09-03,marketed sale,56,86,270,75.0,4.2,48,1.2,114.0,57.0,690.0,431.0,179.0,76.0,89.0,Unknown,Y,NODATA!,,,2102.0,100.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"130, Merton Road, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2015-09-03 08:16:35,owner-occupied,,,200003686111.0,Address Matched +1716993469712020030409055021000763,Flat 53 Guinevere Point,Waterhouse Avenue,,ME14 2FJ,7313914678,B,B,86,86,Flat,End-Terrace,2020-03-04,E07000110,E14000804,Kent,2020-03-04,new dwelling,90,90,66,66.0,0.8,12,0.8,58.0,58.0,153.0,153.0,70.0,70.0,72.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.18 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Flat 53 Guinevere Point, Waterhouse Avenue",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2020-03-04 09:05:50,unknown,10.0,10.0,10094440161.0,Address Matched +1558409461612017071011355798930154,"9, Acorn Close",,,ME16 8FX,1473182578,B,A,84,95,House,End-Terrace,2017-07-10,E07000110,E14000804,Kent,2017-07-10,new dwelling,86,97,84,8.0,1.3,15,0.2,62.0,62.0,237.0,237.0,80.0,46.0,91.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.10 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"9, Acorn Close",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2017-07-10 11:35:57,owner-occupied,12.0,12.0,10093303858.0,Address Matched +719433369062011111017274143978849,Flat 6,62-66 Lower Stone Street,,ME15 6NA,4462603968,D,D,65,65,Flat,NO DATA!,2011-11-03,E07000110,E14000804,Kent,2011-11-10,new dwelling,68,68,288,288.0,2.1,51,2.1,29.0,29.0,299.0,299.0,169.0,169.0,40.45,standard tariff,,top floor,,,,,NO DATA!,NO DATA!,,,,4.0,,"Electric immersion, standard tariff",Very Poor,Very Poor,(other premises below),,,Single glazed,Very Poor,Very Poor,Average thermal transmittance 0.44 W/m?K,Good,Good,,,,Average thermal transmittance 0.15 W/m?K,Good,Good,"Room heaters, electric",Very Poor,Very Poor,Programmer and appliance thermostats,Good,Good,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",0.0,NO DATA!,,2.22,,,NO DATA!,"Flat 6, 62-66 Lower Stone Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2011-11-10 17:27:41,,5.0,4.0,, +1737711389922019071909200495318221,"7, Wenham Drive",,,ME17 3GN,2983865678,B,A,84,93,House,Detached,2019-07-19,E07000110,E14000700,Kent,2019-07-19,new dwelling,84,94,88,27.0,1.8,16,0.6,78.0,78.0,288.0,288.0,98.0,55.0,118.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"7, Wenham Drive",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2019-07-19 09:20:04,unknown,7.0,7.0,10093307085.0,Address Matched +70265a6a36f8d7d7dd69d9361d5f54238fe082539dbe9a2c2e84a22e05b45ebe,10 GABRIELS HILL,MAIDSTONE,,ME15 6JG,10000017206,E,C,47,72,Maisonette,Semi-Detached,2021-02-10,E07000110,E14000804,Kent,2021-09-13,rental,39,69,398,186.0,6.7,70,3.2,80.0,80.0,1138.0,498.0,143.0,136.0,96.0,Single,Y,00,N,,,100.0,double glazing installed during or after 2002,Normal,0.0,6.0,6.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Granite or whinstone, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,TRVs and bypass,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,no corridor,,2.0,0.0,N,natural,"10 GABRIELS HILL, MAIDSTONE",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2021-09-13 08:43:43,Rented (social),29.0,,200003693622.0,Energy Assessor +469923899342010041522062277409548,Wisteria Cottage,Tumblers Hill,Sutton Valence,ME17 3AE,1301294768,E,D,47,56,House,Mid-Terrace,2010-04-14,E07000110,E14000700,Kent,2010-04-15,marketed sale,47,55,397,331.0,5.5,61,4.5,106.0,53.0,905.0,795.0,116.0,101.0,75.01,Single,Y,NO DATA!,,,2106.0,,not defined,Much More Than Typical,1.0,4.0,4.0,0.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Partial double glazing,Poor,Poor,"Timber frame, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.18,0.0,N,natural,"Wisteria Cottage, Tumblers Hill, Sutton Valence",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2010-04-15 22:06:22,owner-occupied,,,200003696389.0,Address Matched +539380492962020022406075739388130,Warwick House,The Priory,East Farleigh,ME15 0EX,3322979768,D,C,56,72,House,Detached,2020-02-18,E07000110,E14000804,Kent,2020-02-24,rental (private),45,62,276,175.0,13.0,49,8.1,140.0,140.0,2210.0,1554.0,149.0,141.0,259.0,Unknown,Y,NODATA!,,,2111.0,100.0,"double glazing, unknown install date",Normal,3.0,8.0,8.0,91.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,TRVs and bypass,Average,Average,Low energy lighting in 91% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"Warwick House, The Priory, East Farleigh",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2020-02-24 06:07:57,rental (private),,,200003730268.0,Address Matched +1596433659742017121414174559539448,Flat 9 The Cooperage,"10, Buckland Road",,ME16 0SL,4700255578,B,B,83,83,Flat,Mid-Terrace,2017-12-14,E07000110,E14000804,Kent,2017-12-14,new dwelling,91,91,96,96.0,0.5,17,0.5,24.0,24.0,121.0,121.0,46.0,46.0,28.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.26 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Flat 9 The Cooperage, 10, Buckland Road",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2017-12-14 14:17:45,owner-occupied,5.0,5.0,10093302845.0,Address Matched +1139673819962014051916340413318834,"26, Birch Tree Way",,,ME15 7RR,3153123278,E,C,54,78,House,Semi-Detached,2014-05-19,E07000110,E14000804,Kent,2014-05-19,marketed sale,45,72,289,119.0,4.8,63,2.1,46.0,46.0,819.0,572.0,115.0,77.0,75.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,100.0,3.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, smokeless fuel",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"26, Birch Tree Way",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2014-05-19 16:34:04,owner-occupied,8.0,8.0,200003696155.0,Address Matched +1002423567812014010114255594779710,"23, Long Rede Lane",Barming,,ME16 9LB,7091743178,D,B,56,83,House,Detached,2013-12-31,E07000110,E14000804,Kent,2014-01-01,none of the above,51,82,256,82.0,5.2,49,1.7,66.0,66.0,898.0,505.0,137.0,74.0,105.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,5.0,5.0,86.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 86% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"23, Long Rede Lane, Barming",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2014-01-01 14:25:55,owner-occupied,14.0,12.0,200003667586.0,Address Matched +745439554912013112900042392279095,1 Hopgarden Oast,Oast Court,Yalding,ME18 6JX,570425968,D,C,56,76,House,End-Terrace,2013-11-28,E07000110,E14000804,Kent,2013-11-29,assessment for green deal,48,70,217,118.0,13.0,42,7.0,208.0,106.0,2135.0,1382.0,186.0,138.0,304.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,4.0,9.0,8.0,3.0,1.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, partial insulation (assumed)",Average,Average,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 3% of fixed outlets,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"1 Hopgarden Oast, Oast Court, Yalding",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1976-1982,2013-11-29 00:04:23,owner-occupied,36.0,1.0,200003660774.0,Address Matched +704f9a3d0a011426843e423127bd1dfd7573d6d2b678a1f24bf8ae840a4ececf,42 Reginald Road,,,ME16 8HA,10001488769,D,B,63,87,House,Semi-Detached,2021-09-17,E07000110,E14000804,Kent,2021-09-20,rental,62,88,252,62.0,3.3,41,0.8,67.0,67.0,652.0,372.0,85.0,59.0,81.0,Single,Y,,,,,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.3,0.0,N,natural,42 Reginald Road,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2021-09-20 12:11:13,Owner-occupied,10.0,,200003667878.0,Energy Assessor +55165150252009011713044606910751,"4, John Day Close",Coxheath,,ME17 4GU,7109066568,B,B,82,82,Flat,Detached,2009-01-16,E07000110,E14000804,Kent,2009-01-17,new dwelling,82,82,140,140.0,1.4,0,1.4,28.0,28.0,274.0,274.0,74.0,74.0,0.0,standard tariff,,top floor,,,,,NO DATA!,NO DATA!,,,,17.0,,SAP05:Hot-Water,,,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.20 W/m²K,Very Good,Very Good,SAP05:Secondary-Heating,,,Average thermal transmittance 0.19 W/m²K,Good,Good,SAP05:Main-Heating,,,SAP05:Main-Heating-Controls,,,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,,,,NO DATA!,"4, John Day Close, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2009-01-17 13:04:46,,17.0,17.0,10022900449.0,Address Matched +417785629842010010710172374100638,"45, Pine Grove",Penenden Heath,,ME14 2AJ,8880021768,E,E,45,47,Bungalow,Detached,2010-01-07,E07000110,E14000804,Kent,2010-01-07,marketed sale,40,40,420,413.0,7.0,70,6.9,99.0,51.0,1021.0,1034.0,126.0,126.0,100.1,Single,Y,NO DATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,4.0,4.0,4.0,1.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, mains gas",,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 4% of fixed outlets,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,0.0,N,natural,"45, Pine Grove, Penenden Heath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2010-01-07 10:17:23,owner-occupied,,,200003701680.0,Address Matched +358842400022009090722223857438581,"17a, Brishing Lane",,,ME15 9EZ,8571017668,C,B,80,81,Flat,Semi-Detached,2009-09-07,E07000110,E14000700,Kent,2009-09-07,rental (social),78,79,199,195.0,1.4,33,1.4,32.0,22.0,247.0,248.0,72.0,72.0,43.2,Single,Y,1st,Y,2.0,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,50.0,0.0,From main system,Very Good,Very Good,(other premises below),,,Fully double glazed,Average,Average,"System built, with external insulation",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.27,0.0,N,natural,"17a, Brishing Lane",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2009-09-07 22:22:38,rental (social),,,200003682991.0,Address Matched +7068d714fafecfe9f6cbb5e5026677a4ada8c2fe8be78f75de5bb688942f2719,29 THOMAS PLACE,JAMES WHATMAN WAY,,ME14 1FP,8112358868,B,B,83,83,Flat,Mid-Terrace,2021-07-20,E07000110,E14000804,Kent,2021-08-02,rental,85,85,99,99.0,1.2,17,1.2,66.0,66.0,156.0,156.0,111.0,111.0,70.0,Single,N,05,N,,,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,Community scheme,Good,Good,(another dwelling below),,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Very Good,Very Good,,,,(another dwelling above),,,Community scheme,Good,Good,"Flat rate charging, programmer and room thermostat",Poor,Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (community),0.0,unheated corridor,9.7,2.39,0.0,N,natural,"29 THOMAS PLACE, JAMES WHATMAN WAY",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2012 onwards,2021-08-02 10:25:08,Rented (social),7.0,,10014312695.0,Energy Assessor +706c3a12c5033db10f999c5a225ada7f060331175cc2c4d5a77041b12382437f,9 CLOVER TERRACE,NORTHUMBERLAND ROAD,,ME15 7SY,10001620158,E,B,54,84,House,Mid-Terrace,2021-06-29,E07000110,E14000700,Kent,2021-07-01,ECO assessment,51,84,340,90.0,4.1,60,1.1,117.0,58.0,698.0,443.0,188.0,74.0,69.0,Single,Y,,,,,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,0.0,0.0,"From main system, no cylinder thermostat",Average,Average,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,"Pitched, insulated (assumed)",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,,,2.75,0.0,N,natural,"9 CLOVER TERRACE, NORTHUMBERLAND ROAD",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2021-07-01 10:48:55,Rented (social),8.0,,200003714089.0,Energy Assessor +1577624889222017092617010474368503,"21, Birkdale Court",Buckland Road,,ME16 0UH,735814578,C,B,77,81,Flat,Mid-Terrace,2017-09-26,E07000110,E14000804,Kent,2017-09-26,rental (private),63,68,278,242.0,2.5,47,2.2,46.0,46.0,220.0,153.0,160.0,160.0,54.0,dual,N,Ground,N,,2402.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,"Electric immersion, off-peak",Average,Poor,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,(another dwelling above),,,Electric storage heaters,Average,Very Poor,Automatic charge control,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,unheated corridor,4.52,,,N,natural,"21, Birkdale Court, Buckland Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2017-09-26 17:01:04,rental (private),,,200003667046.0,Address Matched +1171093184712014071010492594940026,Annexe,Ridings,"Claygate, Marden",TN12 9PG,642445278,D,A,68,96,House,Detached,2014-07-10,E07000110,E14000804,Kent,2014-07-10,new dwelling,78,103,97,-60.0,2.4,21,-0.7,65.0,65.0,583.0,583.0,210.0,127.0,114.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Poor,Good,Average thermal transmittance 0.18 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.22 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.23 W/m-¦K,Good,Good,"Boiler and radiators, LPG",Poor,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,LPG - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Annexe, Ridings, Claygate, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,NO DATA!,2014-07-10 10:49:25,owner-occupied,12.0,12.0,10022895619.0,Address Matched +1324115229262015092409090976258435,Flat 6,24 Ashford Road,Bearsted,ME14 4LP,3782226378,D,D,64,64,Flat,NO DATA!,2015-05-25,E07000110,E14000700,Kent,2015-09-24,new dwelling,67,67,280,280.0,1.9,47,1.9,31.0,31.0,321.0,321.0,197.0,197.0,41.0,standard tariff,,top floor,,,,,NO DATA!,NO DATA!,,,,,0.0,"Electric immersion, standard tariff",Very Poor,Poor,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.30 W/m+é-¦K,Good,Good,,,,Average thermal transmittance 0.13 W/m+é-¦K,Very Good,Very Good,"Room heaters, electric",Very Poor,Poor,Appliance thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"Flat 6, 24 Ashford Road, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2015-09-24 09:09:09,unknown,16.0,16.0,10091194981.0,Address Matched +752322149262012022910463645318502,"14, Regent Close",,,ME15 6ZP,442475968,B,B,89,89,House,End-Terrace,2012-02-29,E07000110,E14000804,Kent,2012-02-29,new dwelling,91,91,48,48.0,1.0,9,1.0,54.0,54.0,260.0,260.0,98.0,98.0,109.89,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,11.0,,From main system,Good,Good,Average thermal transmittance 0.15 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.19 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.12 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.39,,,NO DATA!,"14, Regent Close",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2012-02-29 10:46:36,,11.0,11.0,10014313161.0,Address Matched +914257319922013041507013567528097,"20, Lancet Lane",,,ME15 9RX,9610127078,C,B,69,83,Bungalow,Detached,2013-04-12,E07000110,E14000804,Kent,2013-04-15,marketed sale,67,82,168,79.0,3.6,32,1.8,87.0,58.0,569.0,499.0,133.0,75.0,112.0,Unknown,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,5.0,5.0,50.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"20, Lancet Lane",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2013-04-15 07:01:35,owner-occupied,12.0,6.0,200003675281.0,Address Matched +1390850594552015112812285399259844,"33, Yew Tree Close",,,ME5 8XN,8401490478,C,B,71,89,House,Mid-Terrace,2015-11-28,E07000110,E14000700,Kent,2015-11-28,rental (private),70,88,200,61.0,2.4,35,0.8,52.0,52.0,458.0,361.0,99.0,65.0,69.0,Single,Y,NODATA!,,,2102.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,89.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,Low energy lighting in 89% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"33, Yew Tree Close",Maidstone,Faversham and Mid Kent,CHATHAM,England and Wales: 1967-1975,2015-11-28 12:28:53,rental (private),,,200003676765.0,Address Matched +70a1818a464462b0847d4afb1eb5a06effe144230da09da47b1d6e7cfe4756df,42B CHANCERY LANE,,,ME15 6EG,10001578281,C,C,71,75,Flat,Detached,2021-07-28,E07000110,E14000804,Kent,2021-07-28,marketed sale,72,77,225,189.0,1.8,40,1.6,46.0,46.0,319.0,285.0,89.0,73.0,47.0,Single,Y,01,Y,,,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,(another dwelling below),,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,7.8,2.4,0.0,N,natural,42B CHANCERY LANE,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2021-07-28 13:03:30,Owner-occupied,8.0,,200003697321.0,Energy Assessor +848074589262012102116485782508952,"21, Northumberland Road",,,ME15 7JX,5820852078,E,C,40,77,Maisonette,Semi-Detached,2012-10-20,E07000110,E14000700,Kent,2012-10-21,marketed sale,35,61,470,250.0,6.0,83,3.2,47.0,53.0,978.0,271.0,142.0,117.0,72.0,dual,N,1st,N,,2602.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,87.0,0.0,"Electric immersion, off-peak",Average,Very Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,(another dwelling above),,,"Room heaters, electric",Poor,Very Poor,Appliance thermostats,Good,Good,Low energy lighting in 87% of fixed outlets,Very Good,Very Good,electricity (not community),0.0,no corridor,,,0.0,,natural,"21, Northumberland Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2012-10-21 16:48:57,unknown,15.0,13.0,200003712247.0,Address Matched +91382029942010121500244348609348,"151, Chatham Road",,,ME14 2ND,3947026468,E,C,53,75,House,Semi-Detached,2010-12-14,E07000110,E14000804,Kent,2010-12-15,marketed sale,46,71,374,196.0,5.6,63,2.9,79.0,47.0,808.0,446.0,171.0,121.0,100.9,Single,Y,NO DATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,33.0,2.0,From main system,Average,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Average,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 33% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.5,0.0,N,natural,"151, Chatham Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2010-12-15 00:24:43,owner-occupied,,,200003670516.0,Address Matched +760186952022020090423233356148940,"3, Birchington Close",,,ME14 5PF,4570536968,C,C,74,76,Flat,End-Terrace,2020-09-04,E07000110,E14000804,Kent,2020-09-04,marketed sale,75,78,179,158.0,1.8,32,1.6,51.0,51.0,327.0,286.0,90.0,91.0,58.0,Single,Y,Ground,N,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,no corridor,0.0,,,N,natural,"3, Birchington Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2020-09-04 23:23:33,owner-occupied,,,200003716856.0,Address Matched +1360193279042015090314283636850678,Flat 114 Lee Heights,Bambridge Court,,ME14 2LD,5070778378,D,C,67,78,Flat,End-Terrace,2015-09-03,E07000110,E14000804,Kent,2015-09-03,rental (private),63,63,255,249.0,2.9,43,2.9,52.0,56.0,459.0,261.0,177.0,141.0,68.0,dual,N,3rd,Y,,2603.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,"Electric immersion, off-peak",Poor,Poor,(another dwelling below),NO DATA!,,Fully double glazed,Good,Good,"System built, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Room heaters, electric",Very Poor,Poor,Programmer and appliance thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,unheated corridor,5.53,,,N,natural,"Flat 114 Lee Heights, Bambridge Court",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2015-09-03 14:28:36,rental (private),,,10022892950.0,Address Matched +587117411812011020112211294090283,1 The Malthouse,Farleigh Bridge,East Farleigh,ME16 9NB,2303143868,C,C,73,78,House,End-Terrace,2011-02-01,E07000110,E14000804,Kent,2011-02-01,marketed sale,70,75,211,175.0,2.8,35,2.3,92.0,46.0,401.0,370.0,138.0,118.0,79.12,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,0.0,0.0,From main system,Good,Good,"Suspended, limited insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.3,0.0,N,natural,"1 The Malthouse, Farleigh Bridge, East Farleigh",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2011-02-01 12:21:12,owner-occupied,,,200003722298.0,Address Matched +1285239249142015022711260136352438,"3, Rosemary Road",Bearsted,,ME15 8NN,4189843378,D,B,61,86,House,Semi-Detached,2015-02-27,E07000110,E14000700,Kent,2015-02-27,marketed sale,54,85,292,83.0,4.1,51,1.2,51.0,51.0,776.0,442.0,103.0,68.0,80.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 270 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"3, Rosemary Road, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2015-02-27 11:26:01,owner-occupied,,,200003693031.0,Address Matched +597115620352016120722185592069983,"22, Cambridge Way",,,ME15 7QW,9386024868,C,C,79,80,Flat,Semi-Detached,2016-12-01,E07000110,E14000700,Kent,2016-12-07,rental (social),82,82,131,126.0,1.4,23,1.3,67.0,47.0,221.0,223.0,113.0,113.0,61.0,Single,Y,2nd,Y,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,57.0,0.0,From main system,Good,Good,(another dwelling below),NO DATA!,,Fully double glazed,Good,Good,"Timber frame, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 57% of fixed outlets,Good,Good,mains gas (not community),0.0,unheated corridor,5.0,,,N,natural,"22, Cambridge Way",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2003-2006,2016-12-07 22:18:55,rental (social),,,10022893898.0,Address Matched +1276148044912015020312532698250138,"17, Saracen Fields",Walderslade,,ME5 9DG,1812482378,D,B,58,87,House,Detached,2015-01-29,E07000110,E14000700,Kent,2015-02-03,ECO assessment,51,84,290,79.0,5.2,51,1.5,91.0,70.0,900.0,471.0,164.0,77.0,101.0,dual,Y,NODATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,0.0,6.0,6.0,69.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 69% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"17, Saracen Fields, Walderslade",Maidstone,Faversham and Mid Kent,CHATHAM,England and Wales: 1991-1995,2015-02-03 12:53:26,owner-occupied,,,200003673845.0,Address Matched +851535429262012102923272352818082,Flat 4 Belfast House,Cornwall Close,,ME15 8HT,8555282078,C,C,77,78,Flat,Detached,2012-10-29,E07000110,E14000700,Kent,2012-10-29,rental (social),80,81,128,123.0,1.5,24,1.5,53.0,37.0,269.0,271.0,80.0,80.0,62.0,Single,Y,1st,N,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,57.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"System built, with external insulation",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 57% of fixed outlets,Good,Good,mains gas (not community),0.0,unheated corridor,5.3,,0.0,,natural,"Flat 4 Belfast House, Cornwall Close",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2012-10-29 23:27:23,rental (social),7.0,4.0,200003685555.0,Address Matched +1678292759552018111422483293989460,Loves House,Goudhurst Road,Marden,TN12 9NB,4027931678,F,C,33,76,House,Semi-Detached,2018-11-13,E07000110,E14000804,Kent,2018-11-14,marketed sale,36,73,260,79.0,17.0,57,5.8,236.0,141.0,2588.0,1346.0,158.0,74.0,304.0,dual,N,NODATA!,,,2102.0,100.0,double glazing installed before 2002,Normal,3.0,10.0,10.0,33.0,2.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, oil",Average,Average,"Programmer, no room thermostat",Very Poor,Very Poor,Low energy lighting in 33% of fixed outlets,Average,Average,oil (not community),0.0,NO DATA!,,,,N,natural,"Loves House, Goudhurst Road, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: before 1900,2018-11-14 22:48:32,owner-occupied,,,200003667936.0,Address Matched +549115975852011050711465294090887,"7, Willow Rise",Downswood,,ME15 8XR,8747540868,C,C,72,72,House,Enclosed End-Terrace,2011-05-06,E07000110,E14000700,Kent,2011-05-07,marketed sale,75,75,207,207.0,1.6,40,1.6,23.0,23.0,302.0,302.0,67.0,67.0,40.19,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,2.39,0.0,,natural,"7, Willow Rise, Downswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2011-05-07 11:46:52,owner-occupied,6.0,6.0,200003687133.0,Address Matched +1003629359602013090821054413370138,"36, Orache Drive",Weavering,,ME14 5UG,2629853178,C,B,75,88,House,Mid-Terrace,2013-09-07,E07000110,E14000700,Kent,2013-09-08,marketed sale,76,89,141,48.0,1.9,27,0.7,77.0,47.0,325.0,330.0,105.0,81.0,72.0,Single,Y,NODATA!,,,2109.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,35.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and boiler energy manager",Good,Good,Low energy lighting in 35% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"36, Orache Drive, Weavering",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2003-2006,2013-09-08 21:05:44,owner-occupied,17.0,6.0,200003689224.0,Address Matched +166540975052008101923235308989155,4 Invicta Villas,The Green,Bearsted,ME14 4DT,1540582568,D,C,67,73,House,Mid-Terrace,2008-10-17,E07000110,E14000700,Kent,2008-10-19,rental (private),63,68,248,214.0,3.6,41,3.2,76.0,39.0,438.0,406.0,92.0,81.0,88.06,Single,Y,NO DATA!,,,2107.0,45.0,double glazing installed before 2002,Normal,1.0,4.0,4.0,8.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Partial double glazing,Poor,Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 100mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Poor,Poor,Low energy lighting in 8% of fixed outlets,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.42,0.0,N,natural,"4 Invicta Villas, The Green, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1900-1929,2008-10-19 23:23:53,rental (private),,,200003695085.0,Address Matched +832814740912012090712352695020100,161b Boxley Road,,,ME14 2TJ,1005051078,C,C,73,73,Flat,Enclosed Mid-Terrace,2012-09-07,E07000110,E14000804,Kent,2012-09-07,rental (private),78,78,181,181.0,1.3,35,1.3,23.0,23.0,272.0,272.0,62.0,62.0,37.0,Single,Y,Basement,N,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,100.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,no corridor,,,0.0,,natural,161b Boxley Road,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2012-09-07 12:35:26,rental (private),3.0,3.0,, +299526699542016040406480665260528,"3, Forestdale Road",,,ME5 9NB,3575492668,D,B,59,81,House,Detached,2016-04-02,E07000110,E14000700,Kent,2016-04-04,marketed sale,60,84,292,117.0,3.4,45,1.2,75.0,50.0,685.0,532.0,159.0,73.0,74.0,Unknown,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,50.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, wood logs",,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,2.35,,N,natural,"3, Forestdale Road",Maidstone,Faversham and Mid Kent,CHATHAM,England and Wales: 1983-1990,2016-04-04 06:48:06,owner-occupied,,,200003708011.0,Address Matched +369717657832018031416115375968501,Hop Cottage,Stilebridge Lane,Marden,TN12 9BB,5135587668,D,A,62,105,House,Detached,2018-03-14,E07000110,E14000804,Kent,2018-03-14,rental (private),61,104,262,-42.0,3.5,42,-0.7,61.0,61.0,693.0,446.0,100.0,67.0,82.0,Single,Y,NODATA!,,,2103.0,100.0,double glazing installed during or after 2002,Normal,2.0,4.0,4.0,93.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Poor,Poor,"Room heaters, wood logs",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Room thermostat only,Poor,Poor,Low energy lighting in 93% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"Hop Cottage, Stilebridge Lane, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: before 1900,2018-03-14 16:11:53,rental (private),,,200003662966.0,Address Matched +372393970262009092917312218718321,"64, Cambridge Crescent",,,ME15 7NG,2100708668,D,D,57,66,House,Semi-Detached,2009-09-29,E07000110,E14000700,Kent,2009-09-29,marketed sale,50,59,371,295.0,4.5,62,3.5,54.0,36.0,652.0,543.0,125.0,101.0,71.92,Unknown,Y,NO DATA!,,,2106.0,85.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,50.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Partial double glazing,Good,Good,"System built, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.43,0.0,N,natural,"64, Cambridge Crescent",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2009-09-29 17:31:22,owner-occupied,,,200003712474.0,Address Matched +1585168870332017102611115368278093,"5, Laight Road",,,ME17 3FU,7388074578,B,B,84,84,Flat,Detached,2017-10-26,E07000110,E14000700,Kent,2017-10-26,new dwelling,88,88,88,88.0,1.0,15,1.0,51.0,51.0,174.0,174.0,75.0,75.0,64.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.26 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"5, Laight Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2017-10-26 11:11:53,unknown,7.0,7.0,10093303891.0,Address Matched +1592321842312017112513133492239555,Evergreen Cottage,Howland Road,Marden,TN12 9EP,5525225578,B,A,84,93,House,Detached,2017-11-24,E07000110,E14000804,Kent,2017-11-25,new dwelling,85,94,82,26.0,1.8,14,0.6,78.0,78.0,298.0,298.0,84.0,50.0,124.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.12 W/m+é-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.19 W/m+é-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.10 W/m+é-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Evergreen Cottage, Howland Road, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,NO DATA!,2017-11-25 13:13:34,unknown,25.0,25.0,10093304137.0,Address Matched +13723231712020020520424922000542,"11, Tennison Way",,,ME15 9GE,5270128468,B,A,81,92,House,Mid-Terrace,2020-02-05,E07000110,E14000700,Kent,2020-02-05,rental,82,92,110,33.0,1.8,19,0.6,75.0,75.0,290.0,291.0,104.0,65.0,92.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"11, Tennison Way",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2007 onwards,2020-02-05 20:42:49,owner-occupied,,,10022895433.0,Address Matched +1192021689962014081816091046488484,"12, Holmesdale Close",Loose,,ME15 0BQ,8422886278,B,A,85,95,House,Mid-Terrace,2014-08-18,E07000110,E14000804,Kent,2014-08-18,new dwelling,87,97,79,7.0,1.3,14,0.2,64.0,64.0,240.0,240.0,85.0,51.0,97.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.12 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.22 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"12, Holmesdale Close, Loose",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2014-08-18 16:09:10,owner-occupied,15.0,15.0,10014315580.0,Address Matched +412184632132009121510195008968195,"21, Hedley Street",,,ME14 5AD,3568180768,D,D,61,62,House,End-Terrace,2009-12-14,E07000110,E14000804,Kent,2009-12-15,rental (private),54,55,353,348.0,3.7,59,3.6,50.0,31.0,591.0,595.0,62.0,62.0,62.06,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,38.0,0.0,From main system,Very Good,Very Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 38% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.51,0.0,N,natural,"21, Hedley Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2009-12-15 10:19:50,rental (private),,,200003704752.0,Address Matched +18258209262012022315013508128352,275 Wallis Place,Hart Street,,ME16 8FF,5076088468,B,B,83,83,Flat,NO DATA!,2012-02-22,E07000110,E14000804,Kent,2012-02-23,new dwelling,88,88,81,81.0,0.9,15,0.9,34.0,34.0,172.0,172.0,77.0,77.0,59.15,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,6.0,,From main system,Good,Good,(other premises below),,,Fully double glazed,Good,Good,Average thermal transmittance 0.30 W/m?K,Good,Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,,,NO DATA!,"275 Wallis Place, Hart Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2012-02-23 15:01:35,,6.0,6.0,10022900883.0,Address Matched +891701637732013030215582848078600,"9, Thatcher Road",Staplehurst,,TN12 0ND,3058665078,D,B,65,84,House,End-Terrace,2013-03-01,E07000110,E14000804,Kent,2013-03-02,marketed sale,63,84,197,71.0,3.6,38,1.4,97.0,52.0,596.0,450.0,103.0,64.0,94.0,Single,Y,NODATA!,,,2107.0,100.0,double glazing installed during or after 2002,Normal,3.0,7.0,7.0,13.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 13% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"9, Thatcher Road, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1950-1966,2013-03-02 15:58:28,owner-occupied,16.0,2.0,200003678215.0,Address Matched +521818698832018082118492548968404,2 Saynden Cottage,Five Oak Lane,Staplehurst,TN12 0HX,9498458768,E,A,39,97,House,Semi-Detached,2018-08-16,E07000110,E14000804,Kent,2018-08-21,rental (private),34,85,302,-22.0,6.8,79,1.0,82.0,82.0,756.0,415.0,101.0,69.0,85.0,dual,N,NODATA!,,,2107.0,100.0,"double glazing, unknown install date",Normal,3.0,5.0,5.0,78.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, oil",Average,Average,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 78% of fixed outlets,Very Good,Very Good,oil (not community),0.0,NO DATA!,,,,N,natural,"2 Saynden Cottage, Five Oak Lane, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: before 1900,2018-08-21 18:49:25,rental (private),,,200003709379.0,Address Matched +70ea944bce551cc00155bc3dfedcc58aeecb226bf84fd4b53b2be79adec5f2c6,23 ELLIS FIELD,OTHAM,,ME15 8YL,10001432582,B,A,85,96,House,Semi-Detached,2021-08-19,E07000110,E14000804,Kent,2021-08-19,new dwelling,88,98,76,2.0,1.2,13,0.1,75.0,75.0,216.0,216.0,72.0,44.0,94.0,standard tariff,,,N,,,100.0,,,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.18 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.39,,,,"23 ELLIS FIELD, OTHAM",Maidstone,Maidstone and The Weald,OTHAM,2021,2021-08-19 10:34:56,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,11.0,,10094440499.0,Address Matched +682476049642011100716250297090838,"23, The Beacons",Coxheath,,ME17 4DL,3636340968,C,C,69,71,Bungalow,Mid-Terrace,2011-10-07,E07000110,E14000804,Kent,2011-10-07,rental (social),72,74,226,208.0,1.8,43,1.7,37.0,25.0,333.0,317.0,70.0,70.0,42.12,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,2.0,2.0,50.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,2.06,0.0,,natural,"23, The Beacons, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2011-10-07 16:25:02,rental (social),6.0,3.0,200003712883.0,Address Matched +1752388205152019091910582897910569,"19, Reynolds Avenue",,,ME17 3GW,5929576678,B,A,84,95,House,End-Terrace,2019-09-19,E07000110,E14000700,Kent,2019-09-19,new dwelling,86,98,87,5.0,1.3,15,0.1,69.0,69.0,216.0,216.0,73.0,43.0,83.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"19, Reynolds Avenue",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2019-09-19 10:58:28,unknown,8.0,8.0,10094441771.0,Address Matched +931610749222014072214145158428284,2 Chapel Cottages,Laddingford,,ME18 6BT,8568448078,D,B,63,88,House,Semi-Detached,2014-07-22,E07000110,E14000804,Kent,2014-07-22,marketed sale,65,91,236,40.0,2.5,45,0.5,35.0,35.0,526.0,358.0,78.0,55.0,55.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,4.0,3.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"2 Chapel Cottages, Laddingford",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2014-07-22 14:14:51,owner-occupied,6.0,6.0,200003724294.0,Address Matched +630290479142011051723074984699638,"181, Bicknor Road",,,ME15 9PE,5177776868,C,C,71,71,House,End-Terrace,2011-05-17,E07000110,E14000700,Kent,2011-05-17,rental (social),71,72,184,179.0,2.5,35,2.5,58.0,39.0,422.0,424.0,80.0,80.0,72.06,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,3.0,3.0,50.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"System built, with external insulation",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,2.31,0.0,,natural,"181, Bicknor Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2011-05-17 23:07:49,rental (social),6.0,3.0,200003679946.0,Address Matched +850129300232012102911094962278498,Flat 1 Mote House,Mote Park,,ME15 8NQ,852472078,C,B,78,81,Flat,Mid-Terrace,2012-10-29,E07000110,E14000700,Kent,2012-10-29,marketed sale,79,83,123,98.0,1.8,24,1.4,47.0,48.0,276.0,215.0,108.0,108.0,76.0,Unknown,Y,Basement,N,,2306.0,0.0,single glazing,Normal,0.0,2.0,2.0,100.0,0.0,Community scheme,Good,Good,"Solid, insulated (assumed)",,,Single glazed,Very Poor,Very Poor,"Granite or whinstone, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,Community scheme,Good,Good,"Charging system linked to the use of community heating, programmer and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (community),0.0,heated corridor,,,0.0,,natural,"Flat 1 Mote House, Mote Park",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2007 onwards,2012-10-29 11:09:49,owner-occupied,6.0,6.0,10014314620.0,Address Matched +205600440812008121714041008989950,"191, Kingfisher Meadow",,,ME16 8RD,9073085568,C,B,73,82,House,End-Terrace,2008-12-16,E07000110,E14000804,Kent,2008-12-17,rental (private),76,75,284,288.0,1.4,43,1.4,31.0,18.0,170.0,101.0,87.0,87.0,33.0,dual,,1st,N,4.0,2603.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,25.0,0.0,"Electric immersion, off-peak",Average,Poor,"To unheated space, insulated (assumed)",,,Fully double glazed,Good,Good,"Timber frame, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Room heaters, electric",Very Poor,Poor,Programmer and appliance thermostats,Good,Good,Low energy lighting in 25% of fixed outlets,Average,Average,electricity - this is for backwards compatibility only and should not be used,0.0,unheated corridor,7.5,2.3,0.0,N,natural,"191, Kingfisher Meadow",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2008-12-17 14:04:10,rental (private),,,10022892402.0,Address Matched +8833856552019091908382993910542,"85, Clifford Way",,,ME16 8GE,5244637468,C,C,79,80,Flat,Enclosed End-Terrace,2019-09-18,E07000110,E14000804,Kent,2019-09-19,rental (private),82,82,127,122.0,1.4,22,1.4,77.0,56.0,191.0,193.0,125.0,125.0,63.0,Unknown,Y,1st,N,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,62.0,0.0,From main system,Good,Good,"To unheated space, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 62% of fixed outlets,Good,Good,mains gas (not community),0.0,heated corridor,,,,N,natural,"85, Clifford Way",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2019-09-19 08:38:29,rental (private),,,10022896098.0,Address Matched +341302380742009081013501766510238,"24d, Kingsley Road",,,ME15 7UN,4745685668,D,C,65,73,Flat,Semi-Detached,2009-08-07,E07000110,E14000804,Kent,2009-08-10,marketed sale,74,74,349,357.0,1.4,53,1.4,13.0,14.0,223.0,142.0,121.0,133.0,25.68,Single,N,1st,N,4.0,2601.0,100.0,double glazing installed during or after 2002,Normal,0.0,1.0,1.0,100.0,0.0,Electric instantaneous at point of use,Very Poor,Poor,"To external air, insulated",,,Fully double glazed,Good,Good,"Solid brick, with internal insulation",Good,Good,,,,(another dwelling above),,,"Room heaters, electric",Very Poor,Poor,No thermostatic control of room temperature,Poor,Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.26,0.0,N,natural,"24d, Kingsley Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2009-08-10 13:50:17,owner-occupied,,,10014310687.0,Address Matched +564445759242015092821195285152888,"126, Howard Drive",,,ME16 0QB,5256951868,E,B,43,81,Bungalow,Semi-Detached,2015-09-28,E07000110,E14000804,Kent,2015-09-28,assessment for green deal,37,77,404,115.0,6.8,71,2.0,130.0,65.0,1251.0,581.0,110.0,75.0,95.0,dual,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,More Than Typical,1.0,4.0,4.0,0.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, no insulation",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"126, Howard Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2015-09-28 21:19:52,owner-occupied,,,200003703216.0,Address Matched +711738f30ecd3d0df02880dc5bb4425c068fe33df61180573e8902b23893b857,7 Bracken Hill,,,ME5 9QQ,10001536186,D,B,62,87,House,Detached,2021-09-08,E07000110,E14000700,Kent,2021-09-08,marketed sale,56,86,278,76.0,3.9,49,1.1,68.0,68.0,542.0,373.0,209.0,68.0,80.0,Single,Y,,,,,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,100.0,0.0,"From main system, no cylinder thermostat",Poor,Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.4,0.0,N,natural,7 Bracken Hill,Maidstone,Faversham and Mid Kent,CHATHAM,England and Wales: 1991-1995,2021-09-08 12:05:06,Owner-occupied,12.0,,200003709065.0,Energy Assessor +374202310542009100112210261810898,"1, Kings Walk",Holland Road,,ME14 1GQ,5560618668,C,C,69,75,House,Semi-Detached,2009-10-01,E07000110,E14000804,Kent,2009-10-01,rental (private),69,75,180,148.0,4.6,29,3.8,164.0,84.0,617.0,559.0,171.0,148.0,157.74,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,8.0,8.0,6.0,0.0,From main system,Good,Good,"Solid, limited insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 6% of fixed outlets,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.75,0.0,N,natural,"1, Kings Walk, Holland Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2009-10-01 12:21:02,rental (private),,,200003655109.0,Address Matched +1208881679222014092209512388228024,"32, James Huxley Avenue",,,ME16 0ZH,2816708278,B,B,88,89,House,Semi-Detached,2014-09-22,E07000110,E14000804,Kent,2014-09-22,new dwelling,90,91,60,47.0,0.9,11,0.7,55.0,55.0,242.0,242.0,91.0,58.0,82.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"32, James Huxley Avenue",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2014-09-22 09:51:23,owner-occupied,14.0,14.0,10014315169.0,Address Matched +1596607159402017122012185553532908,"67, Grecian Street",,,ME14 2TT,1459355578,D,B,62,83,House,Mid-Terrace,2017-12-20,E07000110,E14000804,Kent,2017-12-20,marketed sale,55,80,261,100.0,4.4,46,1.7,62.0,62.0,783.0,505.0,106.0,71.0,94.0,Single,Y,NODATA!,,,2107.0,100.0,"double glazing, unknown install date",Normal,1.0,6.0,6.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Granite or whinstone, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"67, Grecian Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2017-12-20 12:18:55,owner-occupied,,,200003703325.0,Address Matched +323148183132009071212325826968709,Flat 35 Block F,Lindisfarne Gardens,,ME16 8QG,8996754668,B,B,81,84,Flat,Enclosed End-Terrace,2009-07-12,E07000110,E14000804,Kent,2009-07-12,rental (private),79,82,165,138.0,1.7,27,1.4,34.0,34.0,240.0,219.0,118.0,96.0,61.61,Unknown,Y,2nd,Y,3.0,2106.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Timber frame, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,heated corridor,,2.3,0.0,N,natural,"Flat 35 Block F, Lindisfarne Gardens",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2009-07-12 12:32:58,rental (private),,,200003724441.0,Address Matched +1513726639222017012418020479948483,"7, Lower Fant Road",,,ME16 8DP,8724369478,E,C,42,80,House,Detached,2017-01-24,E07000110,E14000804,Kent,2017-01-24,marketed sale,34,74,371,113.0,11.0,66,3.5,149.0,87.0,2140.0,868.0,97.0,61.0,172.0,Single,Y,NODATA!,,,2102.0,100.0,"double glazing, unknown install date",Normal,3.0,9.0,9.0,29.0,0.0,"From main system, no cylinder thermostat",Average,Average,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,Low energy lighting in 29% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"7, Lower Fant Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2017-01-24 18:02:04,owner-occupied,,,200003668974.0,Address Matched +1709110861512019032717334396210560,Flat 25,Cornwallis House,Pudding Lane,ME14 1NY,5039163678,C,C,72,72,Flat,Detached,2019-02-21,E07000110,E14000804,Kent,2019-03-27,new dwelling,75,75,185,185.0,1.4,31,1.4,37.0,37.0,273.0,273.0,163.0,163.0,46.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,Electric instantaneous at point of use,Very Poor,Very Poor,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.27 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,"Room heaters, electric",Very Poor,Poor,Programmer and appliance thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"Flat 25, Cornwallis House, Pudding Lane",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2019-03-27 17:33:43,owner-occupied,8.0,8.0,, +568803459222010112518485471458430,2 Myrtle Cottage,Station Road,Staplehurst,TN12 0PZ,3788591868,D,D,58,62,House,Semi-Detached,2010-11-25,E07000110,E14000804,Kent,2010-11-25,marketed sale,58,61,312,291.0,4.1,47,3.8,103.0,51.0,718.0,697.0,101.0,101.0,65.73,dual,Y,NO DATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,2.0,5.0,5.0,0.0,1.0,From main system,Very Good,Very Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, insulated at rafters",Poor,Poor,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.35,0.0,N,natural,"2 Myrtle Cottage, Station Road, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: before 1900,2010-11-25 18:48:54,owner-occupied,,,200003679467.0,Address Matched +369889528512009092421340408210763,"36, Bychurch Place",Waterloo Street,,ME15 7UQ,7380887668,C,C,71,75,Flat,Semi-Detached,2009-09-24,E07000110,E14000804,Kent,2009-09-24,rental (social),67,71,257,221.0,2.7,43,2.3,50.0,33.0,402.0,354.0,103.0,103.0,63.06,Unknown,Y,1st,N,3.0,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,50.0,0.0,From main system,Very Good,Very Good,"To external air, uninsulated (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, partial insulation (assumed)",Average,Average,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,unheated corridor,3.6,2.3,0.0,N,natural,"36, Bychurch Place, Waterloo Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1976-1982,2009-09-24 21:34:04,rental (social),,,200003696677.0,Address Matched +1010815309502015033010082516457708,"13, Hampton Road",,,ME14 5QW,8556404178,D,B,66,83,House,End-Terrace,2015-03-30,E07000110,E14000804,Kent,2015-03-30,assessment for green deal,57,81,262,108.0,3.4,47,1.4,75.0,48.0,719.0,437.0,152.0,70.0,73.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,43.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 43% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"13, Hampton Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2015-03-30 10:08:25,owner-occupied,,,200003671963.0,Address Matched +1496162699962016111113465088998976,"2, Gravel Pit Lane",Marden,,TN12 9FP,7885938478,B,B,86,87,House,NO DATA!,2016-11-11,E07000110,E14000804,Kent,2016-11-11,new dwelling,85,88,77,64.0,1.5,14,1.2,66.0,66.0,358.0,359.0,107.0,58.0,109.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.19 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.28 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.14 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"2, Gravel Pit Lane, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,NO DATA!,2016-11-11 13:46:50,unknown,1.0,1.0,10014315696.0,Address Matched +258447037132009033117302559768701,"3, Sussex Road",,,ME15 7HY,3109799568,C,C,72,74,House,Semi-Detached,2009-03-31,E07000110,E14000700,Kent,2009-03-31,rental (social),69,70,212,206.0,3.0,35,2.9,68.0,40.0,369.0,374.0,128.0,128.0,83.86,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,30.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"System built, with internal insulation",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 30% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.47,0.0,N,natural,"3, Sussex Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2009-03-31 17:30:25,rental (social),,,200003715664.0,Address Matched +715b094a84035b29d7edd02cede92d8ae7496a8b7f6375ac746924f7b6a2e215,86 SALISBURY ROAD,PENENDEN HEATH,,ME14 2TX,10001610482,D,B,68,88,House,Mid-Terrace,2021-08-05,E07000110,E14000804,Kent,2021-08-07,marketed sale,64,87,213,63.0,3.4,37,1.0,73.0,73.0,559.0,368.0,109.0,67.0,91.0,Single,Y,,,,,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.3,0.0,N,natural,"86 SALISBURY ROAD, PENENDEN HEATH",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2021-08-07 12:06:09,Rented (private),10.0,,200003703394.0,Energy Assessor +783276775232012050819394118068905,The Vanbrugh Suite Colesdane,Stede Hill,Harrietsham,ME17 1NP,7578997968,C,B,74,81,Flat,Semi-Detached,2012-05-07,E07000110,E14000700,Kent,2012-05-08,marketed sale,71,80,130,91.0,4.5,25,3.2,158.0,79.0,638.0,489.0,141.0,114.0,181.0,Unknown,Y,Ground,N,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,6.0,6.0,0.0,1.0,From main system,Good,Good,"Solid, limited insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,heated corridor,,,0.0,,natural,"The Vanbrugh Suite Colesdane, Stede Hill, Harrietsham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1996-2002,2012-05-08 19:39:41,owner-occupied,21.0,0.0,200003715269.0,Address Matched +593940418652011021723310599990585,Flat 1 Dublin House,Cornwall Close,,ME15 8HX,5555893868,C,C,75,76,Flat,Semi-Detached,2011-02-17,E07000110,E14000700,Kent,2011-02-17,rental (social),72,73,215,209.0,2.2,36,2.2,57.0,34.0,374.0,378.0,90.0,90.0,61.89,Single,Y,Ground,N,3.0,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,33.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"System built, with external insulation",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 33% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,unheated corridor,5.3,2.45,0.0,N,natural,"Flat 1 Dublin House, Cornwall Close",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2011-02-17 23:31:05,rental (social),,,200003685570.0,Address Matched +1468574949402016080415561841660148,"6, Shoebridge Drive",,,ME17 3FF,4473546478,B,B,82,82,House,Semi-Detached,2016-08-04,E07000110,E14000700,Kent,2016-08-04,new dwelling,85,85,95,95.0,1.4,17,1.4,57.0,57.0,265.0,265.0,88.0,88.0,87.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"6, Shoebridge Drive",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2016-08-04 15:56:18,unknown,1.0,1.0,10091194060.0,Address Matched +79634763452009021920305402910943,4 Hayle Mill Cottages,Hayle Mill Road,,ME15 6DT,9346325468,E,D,40,55,House,Mid-Terrace,2009-02-18,E07000110,E14000804,Kent,2009-02-19,marketed sale,33,45,525,384.0,6.4,96,4.8,60.0,31.0,814.0,627.0,104.0,79.0,55.25,Single,Y,NO DATA!,,,2102.0,40.0,double glazing installed before 2002,Normal,1.0,4.0,4.0,10.0,2.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Partial double glazing,Poor,Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, coal",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,Low energy lighting in 10% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.27,0.0,N,natural,"4 Hayle Mill Cottages, Hayle Mill Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2009-02-19 20:30:54,owner-occupied,,,200003664212.0,Address Matched +16686289842011032511103643892858,146 Wallis Place,Hart Street,,ME16 8FE,7886088468,B,B,87,87,Flat,NO DATA!,2011-03-25,E07000110,E14000804,Kent,2011-03-25,new dwelling,87,87,119,119.0,0.9,20,0.9,25.0,25.0,183.0,183.0,82.0,82.0,47.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,6.0,,From main system,Very Good,Very Good,(other premises below),,,Fully double glazed,Good,Good,Average thermal transmittance 0.29 W/m?K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,,,NO DATA!,"146 Wallis Place, Hart Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2011-03-25 11:10:36,,6.0,6.0,10022900750.0,Address Matched +717527fe3fdf10c5e549aa1744f7fe1cdb8c589d7636dfc78ec6c36ec2c8e7d3,37 Gatland Lane,,,ME16 8PJ,10001535311,D,B,60,81,House,Detached,2021-08-18,E07000110,E14000804,Kent,2021-08-20,marketed sale,51,77,258,110.0,6.3,46,2.7,106.0,106.0,1013.0,647.0,152.0,74.0,139.0,dual,Y,,,,,100.0,"double glazing, unknown install date",Normal,2.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.4,0.0,N,natural,37 Gatland Lane,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2021-08-20 09:03:26,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,32.0,,200003674761.0,Energy Assessor +1727074596032020061711120725978107,"16, Sendles Field",Otham,,ME15 8YR,9755194678,B,A,84,97,House,Semi-Detached,2020-06-17,E07000110,E14000700,Kent,2020-06-17,new dwelling,87,100,85,-11.0,1.1,15,-0.1,60.0,60.0,193.0,193.0,70.0,42.0,70.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.10 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.19 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"16, Sendles Field, Otham",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2020-06-17 11:12:07,unknown,10.0,10.0,10094440633.0,Address Matched +681423036912011092609231593290499,2 Old Cottages,Tovil Green,,ME15 6RP,4915630968,F,E,36,47,House,Mid-Terrace,2011-09-26,E07000110,E14000804,Kent,2011-09-26,marketed sale,42,52,427,344.0,6.6,68,5.2,56.0,56.0,1409.0,1145.0,100.0,89.0,79.6,Single,Y,NODATA!,,,2102.0,0.0,not defined,Normal,0.0,4.0,4.0,88.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Timber frame, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, no insulation(assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,Low energy lighting in 88% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,1.8,0.0,,natural,"2 Old Cottages, Tovil Green",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2011-09-26 09:23:15,owner-occupied,8.0,7.0,200003666177.0,Address Matched +1681872169842019102908471261112218,2 Galpin Court,Yalding,,ME18 6FE,3819461678,B,A,84,94,House,Detached,2019-10-29,E07000110,E14000804,Kent,2019-10-29,new dwelling,85,94,81,21.0,1.7,14,0.5,80.0,80.0,276.0,277.0,99.0,54.0,122.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.22 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"2 Galpin Court, Yalding",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2019-10-29 08:47:12,unknown,15.0,15.0,10094439978.0,Address Matched +1530287447332017032312380657278106,"4, Hearne Drive",Coxheath,,ME17 4FJ,4627180578,B,A,83,94,House,Detached,2017-03-23,E07000110,E14000804,Kent,2017-03-23,new dwelling,85,95,91,21.0,1.7,16,0.4,66.0,66.0,276.0,278.0,104.0,56.0,103.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.14 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.20 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"4, Hearne Drive, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2017-03-23 12:38:06,unknown,11.0,11.0,10093302646.0,Address Matched +717e647bba34ceb62472b2d5f77c00251a0634c86ed23cc752220a743581243c,374 UPPER FANT ROAD,,,ME16 8DD,10001474488,D,B,67,86,House,Mid-Terrace,2021-07-05,E07000110,E14000804,Kent,2021-07-05,rental,64,84,226,85.0,2.9,40,1.1,95.0,61.0,466.0,388.0,119.0,76.0,73.0,Single,Y,,,,,100.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,44.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 44% of fixed outlets,Average,Average,mains gas (not community),0.0,,,2.41,0.0,N,natural,374 UPPER FANT ROAD,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2021-07-05 10:44:57,Rented (social),9.0,,200003656275.0,Energy Assessor +187017028812019010916023794010851,"12, Garrington Close",,,ME14 5RP,8102844568,D,B,63,87,House,Semi-Detached,2019-01-09,E07000110,E14000804,Kent,2019-01-09,rental (private),58,86,267,72.0,3.4,47,1.0,91.0,55.0,459.0,361.0,211.0,67.0,73.0,Single,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,33.0,0.0,"From main system, no cylinder thermostat",Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 33% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"12, Garrington Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2019-01-09 16:02:37,rental (private),,,200003672179.0,Address Matched +1735436319962019071020193625108391,"22, Westmorland Road",,,ME15 8BQ,9232155678,C,B,73,86,House,Mid-Terrace,2019-07-10,E07000110,E14000700,Kent,2019-07-10,rental (social),71,85,181,83.0,2.6,32,1.2,91.0,62.0,438.0,415.0,91.0,62.0,82.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,55.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 55% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"22, Westmorland Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2019-07-10 20:19:36,rental (social),,,200003684601.0,Address Matched +475849728252010042611552192200476,"95, Dickens Road",,,ME14 2QT,4697825768,B,B,81,81,Flat,Enclosed Mid-Terrace,2010-04-26,E07000110,E14000804,Kent,2010-04-26,rental (social),78,78,219,219.0,1.3,36,1.3,22.0,22.0,241.0,241.0,70.0,70.0,36.11,Single,Y,Ground,N,2.0,2106.0,100.0,double glazing installed before 2002,Normal,0.0,2.0,2.0,80.0,0.0,From main system,Very Good,Very Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.4,0.0,N,natural,"95, Dickens Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2010-04-26 11:55:21,rental (social),,,200003670989.0,Address Matched +1488188089402018051508303740789758,"6, Oast View",Sutton Valence,,ME17 3FS,7429387478,B,B,84,89,House,Detached,2018-05-15,E07000110,E14000700,Kent,2018-05-15,new dwelling,82,87,83,58.0,3.4,15,2.4,106.0,106.0,546.0,546.0,115.0,115.0,227.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,1.0,From main system,Good,Good,Average thermal transmittance 0.16 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.28 W/m-¦K,Very Good,Very Good,"Room heaters, dual fuel (mineral and wood)",,,Average thermal transmittance 0.12 W/m-¦K,Very Good,Very Good,"Boiler and underfloor heating, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"6, Oast View, Sutton Valence",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2018-05-15 08:30:37,owner-occupied,10.0,10.0,10093303753.0,Address Matched +1180616609222014072522024676148264,"80, Lower Road",,,ME15 7RG,6771016278,E,C,53,76,House,Semi-Detached,2014-07-24,E07000110,E14000804,Kent,2014-07-25,marketed sale,52,77,294,126.0,3.9,56,1.7,90.0,45.0,771.0,602.0,121.0,73.0,70.0,Single,Y,NODATA!,,,2107.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"80, Lower Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2014-07-25 22:02:46,owner-occupied,10.0,0.0,200003695236.0,Address Matched +891763669062016110508060855748766,"38, York Road",,,ME15 7QY,6526665078,E,B,49,85,House,Mid-Terrace,2016-11-04,E07000110,E14000700,Kent,2016-11-05,none of the above,42,83,400,96.0,5.4,71,1.3,52.0,52.0,959.0,456.0,183.0,73.0,77.0,Single,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,1.0,4.0,4.0,100.0,0.0,From main system,Average,Average,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, mains gas",,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,2.5,,N,natural,"38, York Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1900-1929,2016-11-05 08:06:08,owner-occupied,,,200003715764.0,Address Matched +1754090289702019092622283661612568,"10, Tall Trees Close",Kingswood,,ME17 3PT,6707986678,D,B,63,87,House,Detached,2019-09-26,E07000110,E14000700,Kent,2019-09-26,marketed sale,57,86,280,77.0,3.6,49,1.0,67.0,67.0,529.0,368.0,194.0,68.0,73.0,Unknown,Y,NODATA!,,,2107.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,82.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 82% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"10, Tall Trees Close, Kingswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1976-1982,2019-09-26 22:28:36,owner-occupied,,,200003700210.0,Address Matched +463273049502010033115091670407198,"78, Linton Road",Loose,,ME15 0AT,1539244768,E,C,51,71,House,Detached,2010-03-31,E07000110,E14000804,Kent,2010-03-31,marketed sale,44,66,329,194.0,9.1,55,5.3,109.0,87.0,1306.0,752.0,198.0,166.0,164.82,Single,Y,NO DATA!,,,2106.0,80.0,secondary glazing,Normal,1.0,7.0,7.0,75.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Mostly secondary glazing,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.77,0.0,N,natural,"78, Linton Road, Loose",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2010-03-31 15:09:16,owner-occupied,,,200003663312.0,Address Matched +1583945569302017102111152352432298,"21, Whitebeam Drive",Coxheath,,ME17 4QY,4359264578,C,B,70,86,House,Semi-Detached,2017-10-21,E07000110,E14000804,Kent,2017-10-21,marketed sale,69,86,200,77.0,2.7,35,1.1,53.0,53.0,480.0,408.0,129.0,79.0,76.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,6.0,6.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"21, Whitebeam Drive, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1976-1982,2017-10-21 11:15:23,owner-occupied,,,200003672329.0,Address Matched +555389449262010102019341080808240,"3, Sissinghurst Drive",,,ME16 0UW,4892490868,D,C,57,72,House,Detached,2010-10-20,E07000110,E14000804,Kent,2010-10-20,marketed sale,51,67,349,231.0,4.7,58,3.1,67.0,41.0,627.0,475.0,191.0,107.0,93.8,Single,Y,NO DATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,36.0,0.0,"From main system, no cylinder thermostat",Average,Average,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 36% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.3,0.0,N,natural,"3, Sissinghurst Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2010-10-20 19:34:10,owner-occupied,,,200003691938.0,Address Matched +71a05605d2ccba6e8813bf1c711e7fcf303db623207618d393c03c238b3a0b2e,5 Brunswick Street East,,,ME15 7UX,10001521171,F,B,22,88,House,Mid-Terrace,2021-08-16,E07000110,E14000804,Kent,2021-08-17,rental,34,87,484,69.0,7.0,82,1.1,69.0,69.0,2015.0,361.0,386.0,69.0,85.0,Unknown,Y,,,,,100.0,double glazing installed during or after 2002,Normal,2.0,4.0,4.0,100.0,0.0,"Electric immersion, standard tariff",Very Poor,Poor,"To unheated space, no insulation (assumed)",,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, mains gas",,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Room heaters, electric",Very Poor,Poor,Programmer and appliance thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,,,2.55,0.0,N,natural,5 Brunswick Street East,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2021-08-17 16:17:01,Rented (private),8.0,,200003696712.0,Energy Assessor +507942496032010070113391703768409,"24, Clifford Way",,,ME16 8GB,9933457768,B,B,83,85,Flat,End-Terrace,2010-06-30,E07000110,E14000804,Kent,2010-07-01,rental (private),83,83,137,129.0,1.4,22,1.3,61.0,35.0,222.0,226.0,79.0,79.0,61.97,Single,Y,1st,N,6.0,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,27.0,0.0,From main system,Very Good,Very Good,"To unheated space, insulated (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 27% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,heated corridor,,2.33,0.0,N,natural,"24, Clifford Way",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2010-07-01 13:39:17,rental (private),,,10022896037.0,Address Matched +590686169062011020907464053588279,"20, Queensgate",,,ME16 0FB,7538663868,B,B,84,84,Flat,Detached,2011-02-08,E07000110,E14000804,Kent,2011-02-09,marketed sale,83,83,157,157.0,1.1,26,1.1,31.0,31.0,214.0,214.0,80.0,80.0,43.0,Unknown,Y,Ground,N,3.0,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,80.0,0.0,From main system,Good,Good,"Suspended, insulated (assumed)",,,Fully double glazed,Average,Average,"Timber frame, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,unheated corridor,0.0,2.3,0.0,N,natural,"20, Queensgate",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2011-02-09 07:46:40,owner-occupied,,,10022896180.0,Address Matched +781949399742012042816203798722338,Meadow Cottage,Goudhurst Road,Marden,TN12 9NB,7718097968,E,C,52,77,House,Detached,2012-04-27,E07000110,E14000804,Kent,2012-04-28,marketed sale,41,66,234,108.0,8.0,57,4.1,131.0,67.0,1161.0,819.0,138.0,89.0,140.0,dual,N,NODATA!,,,2107.0,80.0,secondary glazing,More Than Typical,3.0,6.0,6.0,5.0,0.0,From main system,Average,Average,"Suspended, no insulation (assumed)",,,Mostly secondary glazing,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, oil",Average,Average,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 5% of fixed outlets,Very Poor,Very Poor,oil (not community),0.0,NO DATA!,,,0.0,,natural,"Meadow Cottage, Goudhurst Road, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: before 1900,2012-04-28 16:20:37,owner-occupied,20.0,1.0,200003667939.0,Address Matched +71b95cbbd3f656a00aee1262584a26a85d248e0fdc68f621d0f778ddc2475c50,76 HARTNUP STREET,,,ME16 8LP,10001565414,D,B,65,81,House,Mid-Terrace,2021-07-05,E07000110,E14000804,Kent,2021-07-05,marketed sale,59,76,238,122.0,3.9,42,2.0,74.0,74.0,648.0,535.0,96.0,67.0,92.0,Single,Y,,,,,100.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.44,0.0,N,natural,76 HARTNUP STREET,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2021-07-05 17:01:36,Owner-occupied,14.0,,200003655784.0,Energy Assessor +1384720259902015111116151547050228,Flat 20 William Shipley House,Knightrider Court,Knightrider Street,ME15 6XD,5958050478,D,D,66,66,Flat,NO DATA!,2015-05-02,E07000110,E14000804,Kent,2015-11-11,new dwelling,69,69,268,268.0,1.8,45,1.8,29.0,29.0,292.0,292.0,205.0,205.0,40.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,,0.0,"Electric immersion, standard tariff",Very Poor,Poor,(other premises below),,,Fully double glazed,Average,Average,Average thermal transmittance 0.29 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,"Room heaters, electric",Very Poor,Poor,Programmer and room thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"Flat 20 William Shipley House, Knightrider Court, Knightrider Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2015-11-11 16:15:15,unknown,8.0,8.0,10091195508.0,Address Matched +71c4f41ef99d5f92e4fa08b74ca3e0ab8fe28d65f90b18c2e3e8fae246767351,4 Market Street,Staplehurst,,TN12 0QT,10001548467,D,B,62,83,House,Mid-Terrace,2021-08-12,E07000110,E14000804,Kent,2021-08-12,rental,57,81,252,93.0,3.6,46,1.4,101.0,65.0,622.0,451.0,89.0,63.0,78.0,Unknown,Y,,,,,100.0,"double glazing, unknown install date",Normal,3.0,4.0,4.0,45.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Poor,Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 45% of fixed outlets,Good,Good,mains gas (not community),0.0,,,2.43,0.0,N,natural,"4 Market Street, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: before 1900,2021-08-12 14:25:18,Owner-occupied,11.0,,200003679383.0,Energy Assessor +0d8a1aeaf1034ca19525dca573c8db65d0fa99cf708801f96d5a53529cc58ec6,7 TENACRE COURT,ASHFORD ROAD,HARRIETSHAM,ME17 1AH,10001557101,C,C,72,72,Flat,End-Terrace,2021-08-05,E07000110,E14000700,Kent,2021-08-05,not sale or rental,74,74,195,195.0,1.7,33,1.7,52.0,52.0,367.0,367.0,202.0,202.0,51.0,standard tariff,,3,Y,,,100.0,,,,,,100.0,0.0,Electric instantaneous at point of use,Very Poor,Poor,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.16 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.16 W/m-¦K,Good,Good,"Boiler and radiators, electric",Very Poor,Poor,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",0.0,,,2.19,,,,"7 TENACRE COURT, ASHFORD ROAD, HARRIETSHAM",Maidstone,Faversham and Mid Kent,MAIDSTONE,2020,2021-08-05 14:29:38,Owner-occupied,4.0,,10095449472.0,Energy Assessor +527622305712010081517412299900671,"9, Recreation Close",,,ME14 5AZ,6179598768,C,C,70,75,House,Semi-Detached,2010-08-15,E07000110,E14000804,Kent,2010-08-15,marketed sale,67,72,214,180.0,3.7,36,3.1,97.0,63.0,531.0,472.0,143.0,124.0,103.6,dual,Y,NO DATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,46.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 46% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.41,0.0,N,natural,"9, Recreation Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2010-08-15 17:41:22,owner-occupied,,,200003705266.0,Address Matched +1689854563752019011209581692910266,"53, Marsham Street",,,ME14 1HH,2680322678,E,B,45,83,House,Mid-Terrace,2019-01-11,E07000110,E14000804,Kent,2019-01-12,marketed sale,40,82,389,91.0,5.7,68,1.4,71.0,71.0,1080.0,470.0,94.0,67.0,84.0,Single,Y,NODATA!,,,2601.0,75.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,83.0,0.0,Gas multipoint,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Partial double glazing,Poor,Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, electric",,,"Pitched, 100 mm loft insulation",Average,Average,"Room heaters, mains gas",Average,Average,No thermostatic control of room temperature,Poor,Poor,Low energy lighting in 83% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"53, Marsham Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2019-01-12 09:58:16,owner-occupied,,,200003687530.0,Address Matched +1712229555612019040907024398010766,Bodhi Meadow,South Street Road,Stockbury,ME9 7QS,7665583678,E,C,49,70,House,Detached,2019-04-04,E07000110,E14000700,Kent,2019-04-09,marketed sale,41,55,295,196.0,12.0,51,8.2,214.0,124.0,2556.0,2326.0,186.0,186.0,242.0,dual,N,NODATA!,,,2104.0,100.0,double glazing installed during or after 2002,More Than Typical,2.0,7.0,7.0,28.0,0.0,"Electric immersion, off-peak",Average,Poor,"Solid, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"System built, as built, insulated (assumed)",Good,Good,"Room heaters, dual fuel (mineral and wood)",,,"Flat, insulated (assumed)",Good,Good,"Boiler and underfloor heating, electric",Average,Very Poor,Programmer and room thermostat,Average,Average,Low energy lighting in 28% of fixed outlets,Average,Average,electricity (not community),0.0,NO DATA!,,,,N,natural,"Bodhi Meadow, South Street Road, Stockbury",Maidstone,Faversham and Mid Kent,SITTINGBOURNE,England and Wales: 2003-2006,2019-04-09 07:02:43,owner-occupied,,,10014312245.0,Address Matched +596985871352014011320154792940783,"20, Rycault Close",,,ME16 8SW,7359124868,C,A,71,92,Bungalow,Mid-Terrace,2014-01-13,E07000110,E14000804,Kent,2014-01-13,rental (social),74,97,217,-1.0,1.5,42,0.1,24.0,24.0,291.0,259.0,98.0,66.0,35.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"20, Rycault Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2014-01-13 20:15:47,rental (social),5.0,5.0,200003726143.0,Address Matched +515912729262010072019573768508350,"111, Westmorland Road",,,ME15 8JB,5618218768,C,C,71,74,House,End-Terrace,2010-07-20,E07000110,E14000700,Kent,2010-07-20,rental (social),67,70,220,201.0,3.4,37,3.1,93.0,49.0,493.0,476.0,119.0,119.0,92.08,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,6.0,6.0,10.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"System built, with internal insulation",Good,Good,,,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 10% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.45,0.0,N,natural,"111, Westmorland Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2010-07-20 19:57:37,rental (social),,,200003680607.0,Address Matched +196786930342009051914322454580658,"35, Shepway Court",Norfolk Road,,ME15 7JF,5380235568,D,D,67,68,Bungalow,End-Terrace,2008-12-05,E07000110,E14000700,Kent,2009-05-19,rental (social),62,62,319,316.0,2.7,53,2.7,32.0,24.0,384.0,385.0,102.0,102.0,51.49,Single,Y,NO DATA!,,,2106.0,0.0,single glazing,Normal,0.0,2.0,2.0,67.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 67% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,0.0,N,natural,"35, Shepway Court, Norfolk Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2009-05-19 14:32:24,rental (social),,,200003713211.0,Address Matched +233076414252009022009081601910857,"64, Douglas Road",Lenham,,ME17 2QP,8712418568,E,C,48,76,House,End-Terrace,2009-02-19,E07000110,E14000700,Kent,2009-02-20,rental (private),41,73,428,185.0,6.0,72,2.6,57.0,42.0,784.0,350.0,161.0,108.0,83.74,Unknown,Y,NO DATA!,,,2102.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,66.0,0.0,From main system,Average,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Timber frame, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Average,Good,"Programmer, no room thermostat",Very Poor,Very Poor,Low energy lighting in 66% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.3,0.0,N,natural,"64, Douglas Road, Lenham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2009-02-20 09:08:16,rental (private),,,200003712493.0,Address Matched +1551213709962017061209403202628003,"5, Winch Close",,,ME17 3FY,15032578,B,A,84,96,House,Semi-Detached,2017-06-12,E07000110,E14000700,Kent,2017-06-12,new dwelling,86,98,86,3.0,1.3,15,0.1,61.0,61.0,214.0,214.0,85.0,51.0,83.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"5, Winch Close",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2017-06-12 09:40:32,unknown,7.0,7.0,10093303934.0,Address Matched +779896969222012042414293487908542,"64, West Street",Harrietsham,,ME17 1HU,4893677968,G,F,12,22,House,End-Terrace,2012-04-20,E07000110,E14000700,Kent,2012-04-24,marketed sale,12,19,623,527.0,14.0,121,12.0,94.0,58.0,2390.0,2256.0,114.0,89.0,118.0,Unknown,N,NODATA!,,,2102.0,50.0,double glazing installed during or after 2002,Normal,1.0,5.0,5.0,35.0,0.0,From main system,Average,Good,"Suspended, no insulation (assumed)",,,Partial double glazing,Poor,Poor,"Timber frame, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,Low energy lighting in 35% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"64, West Street, Harrietsham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2012-04-24 14:29:34,owner-occupied,20.0,7.0,200003702526.0,Address Matched +1043264839942013111410175115679348,Flat 22 Thomas Robert Gardens,Church Street,,ME14 1FQ,3986736178,B,B,83,83,Flat,NO DATA!,2013-11-14,E07000110,E14000804,Kent,2013-11-14,marketed sale,87,88,87,84.0,1.0,17,1.0,55.0,44.0,227.0,229.0,68.0,68.0,62.0,standard tariff,,top floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.27 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.12 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Flat 22 Thomas Robert Gardens, Church Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2013-11-14 10:17:51,NO DATA!,0.0,0.0,10014314608.0,Address Matched +100285899022019100716365106738231,Flat 9,Scotney Gardens,St. Peters Street,ME16 0GR,3084956468,B,B,84,86,Flat,Mid-Terrace,2019-10-07,E07000110,E14000804,Kent,2019-10-07,rental (private),76,79,216,192.0,1.4,37,1.2,62.0,39.0,81.0,86.0,142.0,122.0,38.0,dual,N,3rd,N,,2402.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,40.0,0.0,"Electric immersion, off-peak",Average,Poor,(another dwelling below),NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,(another dwelling above),,,Electric storage heaters,Average,Very Poor,Automatic charge control,Average,Average,Low energy lighting in 40% of fixed outlets,Average,Average,electricity (not community),0.0,heated corridor,,,,N,natural,"Flat 9, Scotney Gardens, St. Peters Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2019-10-07 16:36:51,rental (private),,,10022893377.0,Address Matched +1516553589402017020313470342930278,"28, Kingfisher Meadow",,,ME16 8RB,5496489478,C,C,70,79,Flat,End-Terrace,2017-02-03,E07000110,E14000804,Kent,2017-02-03,rental (private),66,66,245,244.0,2.4,41,2.4,69.0,50.0,340.0,218.0,177.0,146.0,57.0,Unknown,N,1st,N,,2602.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,50.0,0.0,"Electric immersion, off-peak",Poor,Poor,"To unheated space, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Room heaters, electric",Very Poor,Poor,Appliance thermostats,Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,electricity (not community),0.0,unheated corridor,6.36,,,N,natural,"28, Kingfisher Meadow",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2017-02-03 13:47:03,rental (private),,,10022892239.0,Address Matched +1595200512452017120806103794039250,Fracombe,Manor Lane,Hollingbourne,ME17 1UN,2036245578,E,C,42,73,Bungalow,Detached,2017-12-07,E07000110,E14000700,Kent,2017-12-08,marketed sale,38,66,283,120.0,7.4,70,3.5,97.0,67.0,894.0,602.0,174.0,71.0,106.0,Unknown,N,NODATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,55.0,1.0,From main system,Poor,Poor,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Timber frame, as built, partial insulation (assumed)",Average,Average,"Room heaters, electric",,,"Pitched, 270 mm loft insulation",Good,Good,"Boiler and radiators, oil",Poor,Average,Programmer and room thermostat,Average,Average,Low energy lighting in 55% of fixed outlets,Good,Good,oil (not community),0.0,NO DATA!,,,,N,natural,"Fracombe, Manor Lane, Hollingbourne",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2017-12-08 06:10:37,owner-occupied,,,200003732244.0,Address Matched +1685374414132019041517311196978006,Flat 13 Coronet House,"11, Queen Anne Road",,ME14 1GD,1646091678,D,D,62,62,Flat,Detached,2019-04-12,E07000110,E14000804,Kent,2019-04-15,new dwelling,66,66,385,385.0,1.5,65,1.5,22.0,22.0,347.0,347.0,135.0,135.0,24.0,standard tariff,,ground floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,Electric instantaneous at point of use,Very Poor,Very Poor,Average thermal transmittance 0.18 W/m-¦K,Very Good,Very Good,Fully double glazed,Good,Good,Average thermal transmittance 0.26 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,"Room heaters, electric",Very Poor,Poor,Programmer and room thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"Flat 13 Coronet House, 11, Queen Anne Road",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2019-04-15 17:31:11,unknown,5.0,5.0,10094441190.0,Address Matched +1280233289452015021011010990050830,"19, Middlesex Road",,,ME15 7PJ,8018903378,E,C,44,79,House,Semi-Detached,2015-02-05,E07000110,E14000700,Kent,2015-02-10,assessment for green deal,37,74,457,160.0,5.9,81,2.1,90.0,53.0,805.0,614.0,384.0,71.0,73.0,dual,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,30.0,0.0,"From main system, no cylinder thermostat",Poor,Poor,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"System built, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, mains gas",,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 30% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"19, Middlesex Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2015-02-10 11:01:09,rental (social),,,200003712736.0,Address Matched +411127743712009121011514407919770,"3, Dickens Close",Langley,,ME17 1TB,7067370768,D,C,61,71,Bungalow,Semi-Detached,2009-12-10,E07000110,E14000700,Kent,2009-12-10,marketed sale,54,66,312,235.0,4.5,52,3.4,64.0,43.0,647.0,515.0,122.0,95.0,59.6,Single,Y,NO DATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,50.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,0.0,N,natural,"3, Dickens Close, Langley",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2009-12-10 11:51:44,owner-occupied,,,200003697389.0,Address Matched +382655460132009101510483406968394,"11, Gatland Lane",,,ME16 8PJ,6416378668,E,C,53,75,House,Semi-Detached,2009-10-14,E07000110,E14000804,Kent,2009-10-15,marketed sale,46,71,386,200.0,5.3,64,2.7,45.0,45.0,714.0,403.0,188.0,106.0,81.3,Single,Y,NO DATA!,,,2104.0,90.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,90.0,0.0,From main system,Average,Good,"Solid, no insulation (assumed)",,,Partial double glazing,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 100mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Average,Good,Programmer and room thermostat,Poor,Poor,Low energy lighting in 90% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,0.0,N,natural,"11, Gatland Lane",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2009-10-15 10:48:34,owner-occupied,,,200003674627.0,Address Matched +274754830262009050522552791888571,"18, Pitt Road",,,ME16 8PA,7931321668,C,C,74,74,House,End-Terrace,2009-04-28,E07000110,E14000804,Kent,2009-05-05,rental (social),70,70,206,206.0,2.8,34,2.8,39.0,39.0,383.0,383.0,105.0,105.0,81.16,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,100.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.53,0.0,N,natural,"18, Pitt Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2009-05-05 22:55:27,rental (social),,,200003674543.0,Address Matched +69685199922010091119514794598130,"15, Mill Walk",,,ME16 9LE,3943974468,D,C,68,79,House,End-Terrace,2010-09-11,E07000110,E14000804,Kent,2010-09-11,rental (private),63,76,252,166.0,3.5,42,2.3,71.0,45.0,529.0,371.0,123.0,99.0,83.8,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,40.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, partial insulation (assumed)",Average,Average,,,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 40% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.44,0.0,N,natural,"15, Mill Walk",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1976-1982,2010-09-11 19:51:47,rental (private),,,200003696811.0,Address Matched +596551861552013121220554092079086,"3, Gullands",Langley,,ME17 1SU,625124868,D,A,62,94,Bungalow,Semi-Detached,2013-12-03,E07000110,E14000700,Kent,2013-12-12,rental (social),63,96,282,-1.0,2.3,54,0.1,43.0,27.0,397.0,298.0,117.0,64.0,42.0,Single,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,40.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 40% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"3, Gullands, Langley",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2013-12-12 20:55:40,rental (social),5.0,2.0,200003697412.0,Address Matched +1778296362442020012112594263802408,"47, Norrington Road",,,ME15 9XD,3493568678,D,B,67,84,House,Detached,2020-01-20,E07000110,E14000804,Kent,2020-01-21,marketed sale,61,81,222,99.0,4.2,39,1.9,97.0,97.0,729.0,524.0,96.0,66.0,107.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,7.0,7.0,77.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 77% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"47, Norrington Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1976-1982,2020-01-21 12:59:42,owner-occupied,,,200003675623.0,Address Matched +7224c1585dfb490dd417da17bba0f31cf2e3fd334d7850ebac83cf082f434fc7,16 BELL WAY,KINGSWOOD,,ME17 3QH,10001373621,C,B,71,83,Bungalow,Detached,2021-08-06,E07000110,E14000700,Kent,2021-08-08,rental,67,80,197,106.0,3.3,35,1.8,77.0,77.0,541.0,493.0,103.0,71.0,95.0,Unknown,Y,,,,,100.0,double glazing installed during or after 2002,Normal,2.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.42,0.0,N,natural,"16 BELL WAY, KINGSWOOD",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1991-1995,2021-08-08 18:59:01,Rented (private),16.0,,200003701430.0,Energy Assessor +396583579742010011512341367909258,17 Morton Way,,,ME15 6ZG,3778479668,C,C,76,77,House,Mid-Terrace,2010-01-15,E07000110,E14000804,Kent,2010-01-15,new dwelling,83,84,129,121.0,1.7,19,1.6,87.0,52.0,178.0,185.0,191.0,191.0,88.8,standard tariff,,NO DATA!,,,2205.0,,NO DATA!,NO DATA!,,,,4.0,0.0,From main system,Poor,Good,Average thermal transmittance 0.16 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.14 W/m?K,Very Good,Very Good,"Air source heat pump, ratiators, electric",Poor,Good,Programmer and at least two room thermostats,Good,Good,Low energy lighting in 33% fixed outlets,Average,Average,"Electricity: electricity, unspecified tariff",0.0,NO DATA!,,2.38,,,NO DATA!,17 Morton Way,Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2010-01-15 12:34:13,,12.0,4.0,10014308116.0,Address Matched +1534845254512017051211223991930052,"30, Heath Road",,,ME16 9LG,289411578,D,B,56,83,House,End-Terrace,2017-05-12,E07000110,E14000804,Kent,2017-05-12,marketed sale,47,80,313,98.0,5.2,55,1.7,61.0,61.0,941.0,506.0,123.0,72.0,93.0,Unknown,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,1.0,6.0,6.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"30, Heath Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2017-05-12 11:22:39,owner-occupied,,,200003681664.0,Address Matched +1610936543812018022607085095280457,"75, Stagshaw Close",,,ME15 6TE,4787356578,C,A,77,93,House,Mid-Terrace,2018-02-24,E07000110,E14000804,Kent,2018-02-26,marketed sale,80,96,142,14.0,1.5,25,0.2,94.0,47.0,222.0,228.0,93.0,62.0,59.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,0.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Timber frame, as built, insulated (assumed)",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"75, Stagshaw Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2018-02-26 07:08:50,owner-occupied,,,10022893317.0,Address Matched +868793185612013010323343090070503,Flat 8 Sycamore House,Belts Wood,,ME15 9GX,5314504078,C,C,79,79,Flat,Detached,2013-01-03,E07000110,E14000700,Kent,2013-01-03,rental (social),82,82,112,112.0,1.4,21,1.4,44.0,44.0,266.0,266.0,84.0,84.0,67.0,Unknown,Y,3rd,Y,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Good,Good,"Timber frame, as built, insulated (assumed)",Good,Good,,,,"Flat, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,9.0,,0.0,,natural,"Flat 8 Sycamore House, Belts Wood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2003-2006,2013-01-03 23:34:30,rental (social),9.0,9.0,10022896428.0,Address Matched +1717031512342020030409484766400448,Flat 42 Guinevere Point,Waterhouse Avenue,,ME14 2FJ,8302914678,B,B,86,86,Flat,Mid-Terrace,2020-03-04,E07000110,E14000804,Kent,2020-03-04,new dwelling,90,90,65,65.0,0.8,11,0.8,62.0,62.0,150.0,150.0,70.0,70.0,73.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.17 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Flat 42 Guinevere Point, Waterhouse Avenue",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2020-03-04 09:48:47,unknown,10.0,10.0,10094440150.0,Address Matched +726bc28a25fb8f78ad19172f5ed38650fb0ebe5e300c3c0585a9e263ef199eff,6,Railway Place,Lenham,ME17 2FQ,10001560950,A,A,94,95,House,Semi-Detached,2021-08-03,E07000110,E14000700,Kent,2021-08-03,new dwelling,96,98,19,5.0,0.3,4,0.1,69.0,69.0,211.0,211.0,67.0,37.0,81.0,standard tariff,,,N,,,100.0,,,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.16 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.17 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.44,,,,"6, Railway Place, Lenham",Maidstone,Faversham and Mid Kent,Maidstone,2020,2021-08-03 09:56:32,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,13.0,,10095449330.0,Address Matched +1796622587552020041412250829000363,4 Tumim House,16 Fairmeadow,,ME14 1JP,3335799678,B,B,81,82,Flat,Mid-Terrace,2020-04-09,E07000110,E14000804,Kent,2020-04-14,rental (social),81,82,208,189.0,1.0,35,0.9,34.0,34.0,30.0,34.0,255.0,220.0,30.0,dual,N,2nd,N,,2401.0,100.0,double glazing installed during or after 2002,Normal,0.0,1.0,1.0,100.0,0.0,"Electric immersion, off-peak",Very Poor,Poor,(another dwelling below),NO DATA!,,Fully double glazed,Good,Good,"Timber frame, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,Electric storage heaters,Poor,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,heated corridor,0.0,,,N,natural,"4 Tumim House, 16 Fairmeadow",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2020-04-14 12:25:08,rental (social),,,10014309956.0,Address Matched +532717968032010082622011736268006,2 Kenilworth House,Woodford Road,,ME16 9BY,6656039768,C,C,79,79,Flat,Semi-Detached,2010-08-26,E07000110,E14000804,Kent,2010-08-26,rental (social),77,77,183,183.0,1.8,30,1.8,32.0,32.0,315.0,315.0,82.0,82.0,59.94,Single,Y,Ground,N,4.0,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,100.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.25,0.0,N,natural,"2 Kenilworth House, Woodford Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2010-08-26 22:01:17,rental (social),,,200003686844.0,Address Matched +946602681552013060708100495070502,"7c, Salts Avenue",Loose,,ME15 0AY,5281159078,C,B,79,85,House,Detached,2013-06-06,E07000110,E14000804,Kent,2013-06-07,marketed sale,77,83,100,70.0,4.2,19,3.0,152.0,86.0,652.0,662.0,105.0,105.0,218.0,Unknown,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,7.0,7.0,24.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 24% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"7c, Salts Avenue, Loose",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2013-06-07 08:10:04,owner-occupied,17.0,4.0,10014311887.0,Address Matched +1281424119702015021210555738359128,"3, James Huxley Avenue",,,ME16 0ZH,8770813378,B,B,87,88,House,End-Terrace,2015-02-12,E07000110,E14000804,Kent,2015-02-12,new dwelling,89,91,63,50.0,0.9,11,0.7,58.0,58.0,233.0,233.0,95.0,60.0,82.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"3, James Huxley Avenue",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2015-02-12 10:55:57,owner-occupied,14.0,14.0,10014315151.0,Address Matched +1351141529022015080617281328068165,"8, Arran Road",,,ME15 9TE,6247218378,C,B,69,83,House,Detached,2015-08-06,E07000110,E14000804,Kent,2015-08-06,marketed sale,64,79,200,105.0,4.4,35,2.3,71.0,71.0,763.0,638.0,159.0,79.0,124.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,7.0,7.0,100.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 270 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"8, Arran Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2015-08-06 17:28:13,owner-occupied,,,200003675963.0,Address Matched +1452900814852016061314350493960244,"18, Highridge Close",Weavering,,ME14 5XQ,2422435478,C,C,71,76,Flat,Mid-Terrace,2016-06-13,E07000110,E14000700,Kent,2016-06-13,RHI application,60,68,367,290.0,2.3,62,1.8,41.0,28.0,240.0,193.0,181.0,151.0,37.0,dual (24 hour),N,Ground,N,,2401.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,57.0,0.0,"Electric immersion, off-peak",Average,Poor,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,Portable electric heaters (assumed),,,(another dwelling above),,,Electric storage heaters,Poor,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 57% of fixed outlets,Good,Good,electricity (not community),0.0,no corridor,,2.36,,N,natural,"18, Highridge Close, Weavering",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2016-06-13 14:35:04,rental (private),,,200003689997.0,Address Matched +598023029732013111201012737968990,28 Crundale,Union Street,,ME14 1TX,2097924868,C,C,74,79,Flat,Mid-Terrace,2013-11-11,E07000110,E14000804,Kent,2013-11-12,rental (social),74,82,147,106.0,2.2,28,1.6,55.0,55.0,407.0,289.0,91.0,92.0,79.0,Unknown,Y,5th,N,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,88.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 88% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,no corridor,,,0.0,,natural,"28 Crundale, Union Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2013-11-12 01:01:27,rental (social),8.0,7.0,200003701444.0,Address Matched +1409147529342016020215432946260928,4First Floor Granada House,Lower Stone Street,,ME15 6JP,9353222478,C,C,71,75,Flat,Mid-Terrace,2016-02-02,E07000110,E14000804,Kent,2016-02-02,rental (private),71,76,211,176.0,2.2,37,1.8,63.0,42.0,406.0,346.0,95.0,95.0,59.0,Single,Y,1st,N,,2106.0,70.0,secondary glazing,Normal,0.0,3.0,3.0,50.0,0.0,From main system,Good,Good,(other premises below),NO DATA!,,Partial secondary glazing,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,no corridor,,,,N,natural,"4First Floor Granada House, Lower Stone Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2016-02-02 15:43:29,rental (private),,,200003719619.0,Address Matched +368327379702019100215424567710598,Flat 1 The Square,"4, Square Hill Road",,ME15 7TL,7756477668,D,C,59,76,Flat,Semi-Detached,2019-10-01,E07000110,E14000804,Kent,2019-10-02,marketed sale,63,63,241,245.0,3.3,41,3.4,88.0,98.0,706.0,399.0,339.0,197.0,82.0,Single,N,1st,N,,2603.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,71.0,0.0,"Electric immersion, standard tariff",Very Poor,Poor,"To unheated space, insulated (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Room heaters, electric",Very Poor,Poor,Programmer and appliance thermostats,Good,Good,Low energy lighting in 71% of fixed outlets,Very Good,Very Good,electricity (not community),0.0,unheated corridor,5.0,,,N,natural,"Flat 1 The Square, 4, Square Hill Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2019-10-02 15:42:45,owner-occupied,,,10014308782.0,Address Matched +1403500389202016011817213245169588,"33, Edmett Way",,,ME17 3FA,287681478,B,A,84,94,House,Semi-Detached,2016-01-18,E07000110,E14000700,Kent,2016-01-18,new dwelling,86,95,82,22.0,1.7,14,0.5,72.0,72.0,298.0,298.0,92.0,55.0,115.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"33, Edmett Way",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2016-01-18 17:21:32,unknown,1.0,1.0,10091193977.0,Address Matched +43650009222019032313415653878781,"47, Beaver Road",Allington,,ME16 0XR,8504053468,C,B,72,81,House,Detached,2019-03-23,E07000110,E14000804,Kent,2019-03-23,marketed sale,68,77,166,112.0,3.7,29,2.5,149.0,84.0,581.0,589.0,104.0,104.0,126.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,7.0,7.0,22.0,0.0,From main system,Very Good,Good,"Solid, limited insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 22% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"47, Beaver Road, Allington",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2019-03-23 13:41:56,owner-occupied,,,200003707071.0,Address Matched +1580218394212017102416345393239950,Flat 3,Chaucer House,25 Knightrider Street,ME15 6ND,9096434578,C,C,79,79,Flat,Detached,2017-10-23,E07000110,E14000804,Kent,2017-10-24,new dwelling,84,84,157,157.0,0.9,28,0.9,27.0,27.0,181.0,181.0,64.0,64.0,32.0,standard tariff,,ground floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.14 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.26 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Flat 3, Chaucer House, 25 Knightrider Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2017-10-24 16:34:53,unknown,10.0,10.0,10093305636.0,Address Matched +1261731529712015012613273697250833,"106, Camp Way",,,ME15 9BB,8335971378,D,B,59,84,House,Mid-Terrace,2015-01-21,E07000110,E14000700,Kent,2015-01-26,ECO assessment,51,81,307,103.0,4.5,54,1.5,67.0,53.0,694.0,499.0,240.0,73.0,82.0,Single,Y,NODATA!,,,2111.0,100.0,double glazing installed before 2002,Normal,2.0,6.0,6.0,72.0,1.0,"From main system, no cylinder thermostat",Poor,Poor,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,TRVs and bypass,Average,Average,Low energy lighting in 72% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"106, Camp Way",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2015-01-26 13:27:36,owner-occupied,,,200003710066.0,Address Matched +72a2cce76b97404ce9f0e30ff095038a58a13512de3c5ca219c35461675ff40e,22 CHARLESFORD AVENUE,KINGSWOOD,,ME17 3PE,10001419111,C,B,70,85,Bungalow,Detached,2021-07-07,E07000110,E14000700,Kent,2021-07-07,marketed sale,68,84,219,95.0,2.5,39,1.1,56.0,56.0,419.0,381.0,105.0,76.0,66.0,Single,Y,,,,,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, 270 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,1.0,0.0,N,natural,"22 CHARLESFORD AVENUE, KINGSWOOD",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2021-07-07 14:51:14,Owner-occupied,7.0,,200003700330.0,Energy Assessor +216177589502018101019131157689208,4 Crisfield Cottages,The Green,Bearsted,ME14 4DY,6596786568,D,B,56,81,House,End-Terrace,2018-10-10,E07000110,E14000700,Kent,2018-10-10,rental (private),52,80,292,104.0,4.5,51,1.6,105.0,61.0,861.0,546.0,84.0,53.0,87.0,Single,Y,NODATA!,,,2102.0,86.0,double glazing installed before 2002,Normal,1.0,3.0,3.0,29.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Mostly double glazing,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, electric",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,Low energy lighting in 29% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"4 Crisfield Cottages, The Green, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2018-10-10 19:13:11,rental (private),,,200003695136.0,Address Matched +374902229502010102108175267802898,"82, Melville Road",,,ME15 7UT,5572328668,D,D,56,57,House,Mid-Terrace,2010-10-21,E07000110,E14000804,Kent,2010-10-21,marketed sale,51,52,383,380.0,3.9,64,3.8,44.0,32.0,646.0,649.0,91.0,91.0,60.2,Single,Y,NO DATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,4.0,4.0,60.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, dual fuel (mineral and wood)",,,"Flat, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 60% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.5,0.0,N,natural,"82, Melville Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2010-10-21 08:17:52,owner-occupied,,,200003695991.0,Address Matched +1319173759062015050808573495588545,"9, Mayes Road",Marden,,TN12 9FA,4935585378,B,B,82,82,Flat,NO DATA!,2015-05-08,E07000110,E14000804,Kent,2015-05-08,new dwelling,89,89,77,77.0,0.8,14,0.8,40.0,40.0,222.0,222.0,77.0,77.0,57.0,standard tariff,,ground floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.19 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.28 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"9, Mayes Road, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,NO DATA!,2015-05-08 08:57:34,unknown,7.0,7.0,10014315644.0,Address Matched +73254909342010020211402342502668,Blue House Farm,Battle Lane,Marden,TN12 9AL,7384705468,E,E,39,48,House,Detached,2010-01-26,E07000110,E14000804,Kent,2010-02-02,rental (private),31,37,302,256.0,25.0,67,21.0,343.0,193.0,2992.0,2588.0,306.0,273.0,385.02,Single,N,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,2.0,12.0,12.0,22.0,0.0,From main system,Average,Average,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, coal",,,"Pitched, 100mm loft insulation",Average,Average,"Boiler and radiators, oil",Average,Average,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 22% of fixed outlets,Poor,Poor,oil - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.7,0.0,N,natural,"Blue House Farm, Battle Lane, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: before 1900,2010-02-02 11:40:23,rental (private),,,200003662847.0,Address Matched +596607809922011031521343344758019,"16, Felderland Road",,,ME15 9YA,1493024868,C,C,78,78,Bungalow,Mid-Terrace,2011-03-15,E07000110,E14000700,Kent,2011-03-15,rental (social),75,75,219,219.0,1.7,37,1.7,25.0,25.0,317.0,317.0,81.0,81.0,46.75,Single,Y,NO DATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,100.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.37,0.0,N,natural,"16, Felderland Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1976-1982,2011-03-15 21:34:33,rental (social),,,200003682790.0,Address Matched +459340419802010032515072876402748,"16, Park Way",Coxheath,,ME17 4EL,9826314768,C,C,75,77,House,Semi-Detached,2010-03-24,E07000110,E14000804,Kent,2010-03-25,marketed sale,72,73,221,216.0,2.1,37,2.0,45.0,29.0,318.0,321.0,103.0,103.0,56.64,Single,Y,NO DATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,43.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 200mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,Programmer and room thermostat,Average,Average,Low energy lighting in 43% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.31,0.0,N,natural,"16, Park Way, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1976-1982,2010-03-25 15:07:28,owner-occupied,,,200003715115.0,Address Matched +427463379262010012707525301068560,Basement Flat,"15, Buckland Hill",,ME16 0SG,6043781768,D,D,65,68,House,End-Terrace,2010-01-26,E07000110,E14000804,Kent,2010-01-27,rental (social),60,63,341,315.0,2.9,57,2.6,45.0,26.0,462.0,443.0,84.0,79.0,50.15,Single,Y,NO DATA!,,,2107.0,0.0,not defined,Normal,0.0,2.0,2.0,25.0,0.0,From main system,Good,Very Good,"Suspended, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Very Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 25% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.42,0.0,N,natural,"Basement Flat, 15, Buckland Hill",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2010-01-27 07:52:53,rental (social),,,200003670130.0,Address Matched +1771890877312019121014352091919968,"16, St. Lawrence Drive",,,ME16 9FH,9836718678,B,A,85,93,House,Detached,2019-12-10,E07000110,E14000804,Kent,2019-12-10,new dwelling,86,94,78,22.0,1.7,14,0.5,80.0,80.0,285.0,285.0,83.0,51.0,124.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.17 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"16, St. Lawrence Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2019-12-10 14:35:20,owner-occupied,15.0,15.0,10093303570.0,Address Matched +356733290802009090314092865610978,"61, Harvesters Way",Weavering,,ME14 5SH,4817496668,D,C,62,76,House,Enclosed End-Terrace,2009-09-03,E07000110,E14000700,Kent,2009-09-03,marketed sale,55,72,392,245.0,3.0,66,1.9,33.0,21.0,318.0,252.0,152.0,79.0,46.22,Single,Y,NO DATA!,,,2106.0,,INVALID!,Normal,1.0,2.0,2.0,38.0,0.0,"From main system, no cylinderstat",Poor,Average,"Solid, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Average,Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 38% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.35,0.0,N,natural,"61, Harvesters Way, Weavering",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2009-09-03 14:09:28,owner-occupied,,,200003716292.0,Address Matched +187497920842009051913304756489828,1 Christchurch House,Wallis Avenue,,ME15 9JT,5840024568,D,D,66,67,Flat,Semi-Detached,2008-11-12,E07000110,E14000700,Kent,2009-05-19,rental (social),61,61,304,299.0,3.1,51,3.1,50.0,30.0,456.0,460.0,77.0,77.0,61.69,Single,Y,Ground,N,4.0,2106.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,33.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"System built, as built, no insulation (assumed)",Very Poor,Very Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 33% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,unheated corridor,6.76,2.48,0.0,N,natural,"1 Christchurch House, Wallis Avenue",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2009-05-19 13:30:47,rental (social),,,200003683128.0,Address Matched +843454330232012100820384498078697,"3, Lynley Close",,,ME15 9GD,3768622078,C,B,80,91,House,Mid-Terrace,2012-10-08,E07000110,E14000700,Kent,2012-10-08,marketed sale,82,93,95,28.0,1.9,18,0.6,71.0,57.0,303.0,307.0,94.0,57.0,102.0,Unknown,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,6.0,6.0,75.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"3, Lynley Close",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2007 onwards,2012-10-08 20:38:44,owner-occupied,16.0,12.0,10022895381.0,Address Matched +269760280222009042316553620528761,"16, Allen Street",,,ME14 5AG,6266880668,D,C,56,70,House,Mid-Terrace,2009-04-22,E07000110,E14000804,Kent,2009-04-23,marketed sale,49,65,385,261.0,4.4,64,3.0,65.0,32.0,594.0,441.0,110.0,80.0,68.15,Single,Y,NO DATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,2.0,4.0,4.0,0.0,0.0,From main system,Average,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Average,Good,Programmer and room thermostat,Poor,Poor,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.49,0.0,N,natural,"16, Allen Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2009-04-23 16:55:36,owner-occupied,,,200003704787.0,Address Matched +890721459242013031214522907572128,Flat 7,27 Ashford Road,,ME14 5DP,6299555078,D,C,61,77,Flat,End-Terrace,2013-02-22,E07000110,E14000804,Kent,2013-03-12,marketed sale,61,81,287,141.0,2.4,55,1.2,44.0,28.0,447.0,251.0,80.0,67.0,44.0,Unknown,Y,Ground,N,,2107.0,0.0,not defined,Normal,0.0,2.0,2.0,40.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 40% of fixed outlets,Average,Average,mains gas (not community),0.0,heated corridor,,,0.0,,natural,"Flat 7, 27 Ashford Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2013-03-12 14:52:29,owner-occupied,5.0,2.0,10014310024.0,Address Matched +252565610962009031912593579218871,"18, Honywood Road",Lenham,,ME17 2HH,7715149568,B,B,81,82,Maisonette,Semi-Detached,2009-03-19,E07000110,E14000700,Kent,2009-03-19,rental (social),80,80,154,150.0,1.6,25,1.6,46.0,34.0,243.0,244.0,78.0,78.0,64.0,dual,Y,1st,Y,2.0,2106.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,67.0,0.0,From main system,Very Good,Very Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 67% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.33,0.0,N,natural,"18, Honywood Road, Lenham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2009-03-19 12:59:35,rental (social),,,200003723749.0,Address Matched +340911829022013080119510435198457,"36, Ragstone Road",Bearsted,,ME15 8PB,5346285668,D,B,63,83,House,Semi-Detached,2013-08-01,E07000110,E14000700,Kent,2013-08-01,marketed sale,63,84,209,79.0,3.3,40,1.3,97.0,49.0,560.0,463.0,136.0,78.0,84.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"36, Ragstone Road, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2013-08-01 19:51:04,owner-occupied,14.0,0.0,200003690799.0,Address Matched +158494400302008100812243458280788,"6a, Hollingworth Road",,,ME15 9HG,7305602568,C,C,70,73,Flat,Mid-Terrace,2008-10-08,E07000110,E14000700,Kent,2008-10-08,rental (social),66,69,267,242.0,2.7,44,2.4,55.0,27.0,344.0,329.0,68.0,68.0,59.83,Single,Y,1st,Y,2.0,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,0.0,0.0,From main system,Very Good,Very Good,"To external air, uninsulated (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.3,0.0,N,natural,"6a, Hollingworth Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2008-10-08 12:24:34,rental (social),,,200003683020.0,Address Matched +72d2f29f5151585421bc2b848cdbbfa51af13033b84f6babfe80d136f5f928c3,8,Bella Rosa Drive,Langley,ME17 3US,10001598934,B,A,84,94,House,Detached,2021-09-21,E07000110,E14000700,Kent,2021-09-21,new dwelling,85,94,85,25.0,1.7,15,0.5,86.0,86.0,292.0,292.0,74.0,45.0,115.0,standard tariff,,,N,,,100.0,,,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.38,,,,"8, Bella Rosa Drive, Langley",Maidstone,Faversham and Mid Kent,Maidstone,2021,2021-09-21 07:56:16,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,15.0,,10095448355.0,Address Matched +797674756232012060622435744068305,1 Gambia Cottages,Upper Street,Leeds,ME17 1RZ,5584309968,E,D,39,68,House,Semi-Detached,2012-06-06,E07000110,E14000700,Kent,2012-06-06,marketed sale,37,63,416,201.0,5.4,80,2.7,76.0,42.0,891.0,686.0,122.0,65.0,68.0,dual,Y,NODATA!,,,2104.0,0.0,single glazing,Normal,2.0,5.0,5.0,17.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Timber frame, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 17% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"1 Gambia Cottages, Upper Street, Leeds",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2012-06-06 22:43:57,owner-occupied,6.0,1.0,200003697985.0,Address Matched +1754200601132019092711375143278001,Flat 3 Lawrence Court,"5, Chapelfield Way",Allington,ME16 9FU,113096678,B,B,83,83,Flat,Semi-Detached,2019-09-27,E07000110,E14000804,Kent,2019-09-27,new dwelling,90,90,77,77.0,0.7,14,0.7,51.0,51.0,143.0,143.0,78.0,78.0,50.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.19 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Flat 3 Lawrence Court, 5, Chapelfield Way, Allington",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2019-09-27 11:37:51,unknown,20.0,20.0,10093306528.0,Address Matched +1710762081132019092317025517278304,"1, Tompsett Close",Boughton Monchelsea,,ME17 4GR,8427373678,B,A,86,93,House,Detached,2019-09-23,E07000110,E14000804,Kent,2019-09-23,new dwelling,86,92,74,33.0,2.3,13,1.1,104.0,104.0,355.0,356.0,104.0,59.0,177.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.14 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.19 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"1, Tompsett Close, Boughton Monchelsea",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2019-09-23 17:02:55,unknown,4.0,4.0,10094441227.0,Address Matched +1685612592832018121221024808078090,Flat 25 Coronet House,"11, Queen Anne Road",,ME14 1GD,9038091678,C,C,78,80,Flat,Mid-Terrace,2018-12-07,E07000110,E14000804,Kent,2018-12-12,rental (private),80,80,265,267.0,0.9,45,0.9,20.0,22.0,126.0,76.0,137.0,151.0,20.0,Unknown,N,1st,N,,2602.0,100.0,"double glazing, unknown install date",Normal,0.0,1.0,1.0,100.0,0.0,Electric instantaneous at point of use,Very Poor,Poor,(another dwelling below),NO DATA!,,Fully double glazed,Average,Average,"Solid brick, with internal insulation",Good,Good,,,,(another dwelling above),,,"Room heaters, electric",Very Poor,Poor,Appliance thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,unheated corridor,4.75,,,N,natural,"Flat 25 Coronet House, 11, Queen Anne Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1976-1982,2018-12-12 21:02:48,rental (private),,,10094441202.0,Address Matched +677071588112011101015374890999190,"67, Mangravet Avenue",,,ME15 9BE,1042800968,D,C,67,69,House,Semi-Detached,2011-10-10,E07000110,E14000700,Kent,2011-10-10,rental (social),67,69,208,194.0,2.9,40,2.8,57.0,40.0,482.0,459.0,102.0,102.0,73.8,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,4.0,4.0,60.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 60% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,2.12,0.0,,natural,"67, Mangravet Avenue",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2011-10-10 15:37:48,rental (social),10.0,6.0,200003713757.0,Address Matched +17fe5238d4366d2512a07b949fb249da8d27dd0becab7ef63eeeade5674c6c4a,33 Marion Crescent,,,ME15 7DZ,10001472292,C,C,72,78,House,Semi-Detached,2021-09-24,E07000110,E14000700,Kent,2021-09-24,marketed sale,65,73,190,144.0,3.5,34,2.7,123.0,80.0,726.0,599.0,81.0,82.0,104.0,Single,Y,,,,,100.0,double glazing installed during or after 2002,Normal,2.0,5.0,3.0,47.0,1.0,"From main system, plus solar",Very Good,Very Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Average,Average,"Room heaters, mains gas",,,"Flat, insulated (assumed)",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 47% of fixed outlets,Good,Good,mains gas (not community),0.0,,,2.46,,Y,natural,33 Marion Crescent,Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2021-09-24 14:16:35,Owner-occupied,15.0,,200003685039.0,Energy Assessor +663588929962017011315514789478933,"1, Oak Lane",Headcorn,,TN27 9TR,3800219868,D,B,60,84,House,Semi-Detached,2017-01-13,E07000110,E14000700,Kent,2017-01-13,marketed sale,56,84,261,82.0,4.1,46,1.3,84.0,59.0,796.0,473.0,108.0,73.0,90.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,5.0,5.0,58.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 58% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"1, Oak Lane, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,England and Wales: 1950-1966,2017-01-13 15:51:47,owner-occupied,,,200003699478.0,Address Matched +1013294829602013092423144810472648,Cavendish House,College Avenue,,ME15 6YJ,7673824178,C,B,78,84,House,Detached,2013-09-24,E07000110,E14000804,Kent,2013-09-24,marketed sale,75,82,105,74.0,4.9,20,3.5,144.0,94.0,819.0,782.0,100.0,100.0,242.0,Single,Y,NODATA!,,,2105.0,100.0,"double glazing, unknown install date",Normal,1.0,7.0,7.0,46.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",,,Fully double glazed,Average,Average,"Timber frame, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and at least two room thermostats,Good,Good,Low energy lighting in 46% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"Cavendish House, College Avenue",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2013-09-24 23:14:48,owner-occupied,41.0,19.0,10014311283.0,Address Matched +7342b61ca1f8dc9bd06b344897e13fdc2eed8385c28ec82024751279b4de6bfb,37 Cranham Square,Marden,,TN12 9TG,10001489330,C,C,75,79,Flat,End-Terrace,2021-08-26,E07000110,E14000804,Kent,2021-08-26,rental,76,82,169,129.0,1.8,30,1.4,94.0,54.0,289.0,235.0,86.0,87.0,60.0,Single,Y,01,N,,,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,25.0,0.0,From main system,Good,Good,(another dwelling below),,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 25% of fixed outlets,Average,Average,mains gas (not community),0.0,unheated corridor,7.48,2.38,0.0,N,natural,"37 Cranham Square, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1950-1966,2021-08-26 15:33:28,Rented (social),8.0,,200003710699.0,Energy Assessor +856867599962012111423532083648092,"10, Ashford Drive",Kingswood,,ME17 3PB,9888913078,E,C,51,78,House,Semi-Detached,2012-11-14,E07000110,E14000700,Kent,2012-11-14,marketed sale,46,75,288,114.0,6.0,56,2.4,107.0,55.0,950.0,621.0,151.0,72.0,108.0,Single,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,1.0,7.0,7.0,6.0,1.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 6% of fixed outlets,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"10, Ashford Drive, Kingswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2012-11-14 23:53:20,owner-occupied,17.0,1.0,200003700304.0,Address Matched +524380079502014121620574471849158,"13, Sandlewood Court",,,ME16 0ZG,583478768,C,C,79,79,Flat,End-Terrace,2014-12-15,E07000110,E14000804,Kent,2014-12-16,rental (social),83,83,127,127.0,1.2,22,1.2,41.0,41.0,189.0,189.0,137.0,137.0,56.0,Single,Y,2nd,Y,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,(another dwelling below),NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,heated corridor,,,,N,natural,"13, Sandlewood Court",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2014-12-16 20:57:44,rental (social),,,10014306176.0,Address Matched +403771620902009112518532371012558,Porters Rest,Green Lane,Langley,ME17 3JS,9906320768,C,C,77,77,Bungalow,Detached,2009-11-25,E07000110,E14000700,Kent,2009-11-25,rental (private),78,78,214,214.0,1.5,31,1.5,31.0,31.0,298.0,298.0,75.0,75.0,49.13,Single,Y,NO DATA!,,,2107.0,100.0,double glazing installed during or after 2002,More Than Typical,0.0,3.0,3.0,77.0,1.0,From main system,Very Good,Very Good,"Solid, insulated (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, wood logs",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 77% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.36,0.0,N,natural,"Porters Rest, Green Lane, Langley",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2007 onwards,2009-11-25 18:53:23,rental (private),,,10022897217.0,Address Matched +850862879042012102616564205222568,"207, Sutton Road",,,ME15 9BJ,6021872078,D,C,56,79,Flat,Semi-Detached,2012-10-26,E07000110,E14000700,Kent,2012-10-26,rental (private),40,64,518,292.0,3.9,92,2.2,28.0,28.0,417.0,182.0,189.0,96.0,43.0,dual,N,2nd,Y,,2401.0,100.0,double glazing installed before 2002,Normal,0.0,2.0,2.0,100.0,0.0,"Electric immersion, off-peak",Poor,Very Poor,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,Portable electric heaters (assumed),,,"Pitched, 50mm loft insulation",Poor,Poor,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,unheated corridor,2.41,,0.0,,natural,"207, Sutton Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2012-10-26 16:56:42,rental (private),4.0,4.0,200003713813.0,Address Matched +226280159222015032317585697108915,Gladwish Barn,Headcorn Road,Sutton Valence,ME17 3EL,1985547568,E,D,52,63,House,Detached,2015-03-20,E07000110,E14000700,Kent,2015-03-23,marketed sale,43,54,189,139.0,15.0,49,11.0,140.0,140.0,2524.0,2138.0,211.0,128.0,298.0,Single,N,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,1.0,11.0,11.0,75.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, insulated (assumed)",Average,Average,"Boiler and radiators, oil",Average,Average,Programmer and room thermostat,Average,Average,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,oil (not community),0.0,NO DATA!,,,,N,natural,"Gladwish Barn, Headcorn Road, Sutton Valence",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2015-03-23 17:58:56,owner-occupied,,,200003706783.0,Address Matched +1276071639022015020322065142428305,"42, Restharrow Road",Weavering,,ME14 5UH,421382378,C,C,71,80,House,Detached,2015-02-02,E07000110,E14000700,Kent,2015-02-03,FiT application,60,72,182,121.0,6.3,33,4.2,139.0,89.0,1421.0,1095.0,177.0,131.0,194.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,3.0,7.0,7.0,43.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 43% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"42, Restharrow Road, Weavering",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2015-02-03 22:06:51,owner-occupied,,,200003687853.0,Address Matched +1127980839442014041708251428249148,"33, Cranborne Avenue",,,ME15 7EA,9418332278,C,C,70,79,House,Detached,2014-04-14,E07000110,E14000700,Kent,2014-04-17,marketed sale,67,76,153,104.0,4.3,29,3.0,105.0,70.0,783.0,747.0,105.0,105.0,148.0,Unknown,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,2.0,8.0,8.0,50.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"33, Cranborne Avenue",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2014-04-17 08:25:14,owner-occupied,14.0,7.0,200003711045.0,Address Matched +402839887252009112510123901219679,15 Astor Park,,,ME16 8FP,6900710768,B,B,84,85,House,Detached,2009-11-24,E07000110,E14000804,Kent,2009-11-25,new dwelling,84,84,94,92.0,2.3,15,2.3,94.0,78.0,304.0,306.0,133.0,133.0,149.89,standard tariff,,NO DATA!,,,2110.0,,NO DATA!,NO DATA!,,,,16.0,0.0,From main system,Very Good,Very Good,Average thermal transmittance 0.18 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.26 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.16 W/m?K,Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,Time and temperature zone control,Good,Good,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.33,,,NO DATA!,15 Astor Park,Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2009-11-25 10:12:39,,20.0,16.0,10014308740.0,Address Matched +1097357143612014032109574192240424,"13, Gosling Walk",,,ME15 6YX,4413320278,B,B,83,83,House,End-Terrace,2014-03-21,E07000110,E14000804,Kent,2014-03-21,new dwelling,86,86,84,84.0,1.3,16,1.3,51.0,51.0,248.0,248.0,84.0,84.0,79.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.10 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"13, Gosling Walk",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2014-03-21 09:57:41,NO DATA!,12.0,12.0,10014315218.0,Address Matched +939364669222013052818401829488427,"23, Goldthorne Close",,,ME14 5NX,2292609078,C,C,72,78,Maisonette,Mid-Terrace,2013-05-28,E07000110,E14000804,Kent,2013-05-28,marketed sale,74,81,158,118.0,2.0,30,1.5,83.0,44.0,352.0,287.0,81.0,82.0,67.0,dual,Y,1st,Y,,2107.0,75.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,13.0,0.0,From main system,Good,Good,(other premises below),,,Partial double glazing,Poor,Poor,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 13% of fixed outlets,Poor,Poor,mains gas (not community),0.0,no corridor,,,0.0,,natural,"23, Goldthorne Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2013-05-28 18:40:18,owner-occupied,8.0,1.0,200003716168.0,Address Matched +1596404559602018012912472651582818,"2, The Oaks",Sutton Valence,,ME17 3GJ,3664155578,B,B,84,91,House,Detached,2018-01-29,E07000110,E14000700,Kent,2018-01-29,new dwelling,84,91,84,45.0,2.6,14,1.4,93.0,93.0,466.0,467.0,107.0,59.0,191.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.12 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.21 W/m-¦K,Very Good,Very Good,"Room heaters, wood logs",,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler & underfloor, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"2, The Oaks, Sutton Valence",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2018-01-29 12:47:26,unknown,20.0,20.0,10093305565.0,Address Matched +1559815509022017092817233172818433,"7, Wood Court",,,ME16 9DD,3749092578,C,B,78,91,House,Mid-Terrace,2017-05-09,E07000110,E14000804,Kent,2017-09-28,rental (social),78,91,138,35.0,1.6,24,0.5,51.0,51.0,270.0,270.0,102.0,66.0,68.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Very Good,Very Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"7, Wood Court",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2017-09-28 17:23:31,rental (social),,,10022900390.0,Address Matched +1065484099002017112712445717732138,"46, Dover Street",,,ME16 8LE,3002997178,E,B,54,83,House,End-Terrace,2017-11-27,E07000110,E14000804,Kent,2017-11-27,marketed sale,45,80,320,97.0,5.9,56,1.8,66.0,66.0,1071.0,520.0,107.0,72.0,105.0,Single,Y,NODATA!,,,2107.0,100.0,"double glazing, unknown install date",Normal,2.0,6.0,6.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, mains gas",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"46, Dover Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2017-11-27 12:44:57,owner-occupied,,,200003655529.0,Address Matched +688525199962012121417085780448702,"11, The Farrows",,,ME15 9ZJ,834980968,B,B,85,85,Flat,Detached,2012-12-14,E07000110,E14000700,Kent,2012-12-14,new dwelling,89,89,72,69.0,0.9,14,0.9,51.0,41.0,207.0,209.0,76.0,76.0,67.0,standard tariff,,ground floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.30 W/m?K,Good,Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"11, The Farrows",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2012-12-14 17:08:57,NO DATA!,8.0,6.0,10014312546.0,Address Matched +1038687779062013110715105996868487,"36, Church Road",Tovil,,ME15 6QX,8983706178,D,B,63,89,House,Mid-Terrace,2013-11-06,E07000110,E14000804,Kent,2013-11-07,none of the above,60,90,228,41.0,3.4,44,0.7,45.0,45.0,555.0,326.0,159.0,74.0,77.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,100.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"36, Church Road, Tovil",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2013-11-07 15:10:59,owner-occupied,10.0,10.0,200003664523.0,Address Matched +60790198712020091222003121900642,Flat 5,Thurnham House,Angelica Square,ME16 0FY,6259814468,B,B,82,82,Flat,Semi-Detached,2020-09-12,E07000110,E14000804,Kent,2020-09-12,marketed sale,85,85,97,97.0,1.3,17,1.3,71.0,71.0,183.0,183.0,133.0,133.0,79.0,Single,Y,1st,N,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,(another dwelling below),NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,heated corridor,,,,N,natural,"Flat 5, Thurnham House, Angelica Square",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2020-09-12 22:00:31,owner-occupied,,,10022895538.0,Address Matched +297697680042009060509201367210758,"9, Gainsborough Drive",,,ME16 0UZ,91682668,D,C,60,71,House,Detached,2009-06-05,E07000110,E14000804,Kent,2009-06-05,marketed sale,53,67,305,214.0,5.1,51,3.6,68.0,50.0,654.0,481.0,160.0,121.0,100.73,Single,Y,NO DATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,6.0,6.0,64.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Poor,Poor,Low energy lighting in 64% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.29,0.0,N,natural,"9, Gainsborough Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1991-1995,2009-06-05 09:20:13,owner-occupied,,,200003722822.0,Address Matched +741544599702012012013202299422408,"206, Roseholme",,,ME16 8DZ,3772694968,D,C,68,75,Flat,NO DATA!,2012-01-20,E07000110,E14000804,Kent,2012-01-20,rental (private),52,57,429,381.0,3.1,76,2.8,48.0,28.0,263.0,244.0,153.0,93.0,40.81,dual,N,3rd,Y,,2401.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,27.0,0.0,"Electric immersion, off-peak",Average,Very Poor,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, partial insulation (assumed)",Average,Average,Portable electric heaters (assumed),,,"Pitched, 150 mm loft insulation",Good,Good,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 27% of fixed outlets,Average,Average,electricity (not community),0.0,no corridor,,2.42,0.0,,natural,"206, Roseholme",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1976-1982,2012-01-20 13:20:22,rental (private),11.0,3.0,200003666299.0,Address Matched +162343512032010120117235442068990,"41a, Cumberland Avenue",,,ME15 7JP,1052952568,D,B,65,81,Maisonette,Semi-Detached,2010-12-01,E07000110,E14000700,Kent,2010-12-01,marketed sale,60,78,318,173.0,3.0,53,1.7,58.0,31.0,442.0,267.0,140.0,104.0,57.34,Single,Y,1st,Y,2.0,2107.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,10.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 10% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.42,0.0,N,natural,"41a, Cumberland Avenue",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2010-12-01 17:23:54,owner-occupied,,,200003712955.0,Address Matched +375526458252010081615352292900069,"1a, Courtenay Road",,,ME15 6UW,908828668,C,C,73,75,Bungalow,End-Terrace,2010-08-16,E07000110,E14000804,Kent,2010-08-16,rental (social),69,72,264,244.0,2.1,44,2.0,36.0,26.0,367.0,348.0,79.0,79.0,48.6,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,2.0,2.0,60.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 60% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.41,0.0,N,natural,"1a, Courtenay Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2010-08-16 15:35:22,rental (social),,,200003666376.0,Address Matched +509535846732013060616330862068005,1 Elm View,Thorn Road,Marden,TN12 9LW,4572077768,E,C,53,76,House,Semi-Detached,2013-06-06,E07000110,E14000804,Kent,2013-06-06,marketed sale,41,66,241,115.0,7.5,59,3.9,126.0,63.0,1222.0,823.0,171.0,102.0,128.0,Single,N,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,6.0,6.0,0.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Poor,Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, oil",Average,Average,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,oil (not community),0.0,NO DATA!,,,0.0,,natural,"1 Elm View, Thorn Road, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1900-1929,2013-06-06 16:33:08,owner-occupied,14.0,0.0,200003662672.0,Address Matched +253070309052009032719563407210155,"17, Alen Square",Staplehurst,,TN12 0SB,1503979568,D,C,65,78,House,End-Terrace,2009-03-27,E07000110,E14000804,Kent,2009-03-27,marketed sale,60,75,286,181.0,3.5,47,2.2,62.0,33.0,429.0,291.0,85.0,74.0,72.8,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,9.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, partial insulation (assumed)",Average,Average,,,,"Pitched, 25mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 9% of fixed outlets,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.3,0.0,N,natural,"17, Alen Square, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1976-1982,2009-03-27 19:56:34,owner-occupied,,,200003678452.0,Address Matched +279658450342009051123002462110368,11a Balmoral House,Bicknor Road,,ME15 9NU,7333651668,B,B,83,84,Flat,Semi-Detached,2009-05-06,E07000110,E14000700,Kent,2009-05-11,rental (social),82,82,166,160.0,1.2,27,1.2,34.0,21.0,195.0,197.0,68.0,68.0,44.24,Single,Y,1st,N,3.0,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,40.0,0.0,From main system,Very Good,Very Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 40% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.34,0.0,N,natural,"11a Balmoral House, Bicknor Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2009-05-11 23:00:24,rental (social),,,200003683516.0,Address Matched +442551759262010022115154012898140,"26, Parkwood Parade",,,ME15 9HL,4108592768,C,C,71,71,Flat,Mid-Terrace,2010-02-21,E07000110,E14000700,Kent,2010-02-21,rental (social),66,66,311,311.0,2.2,52,2.2,26.0,26.0,379.0,379.0,74.0,74.0,42.56,Single,Y,2nd,Y,3.0,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,80.0,0.0,From main system,Very Good,Very Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.28,0.0,N,natural,"26, Parkwood Parade",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2010-02-21 15:15:40,rental (social),,,200003682231.0,Address Matched +733940720c86f0c5673ffc3f66d45a1b300c52ec94a1bfb808b7f781153ea66e,15 HEARNE COURT,,,ME15 6QD,10001400473,B,B,82,82,Flat,,2021-07-15,E07000110,E14000804,Kent,2021-07-15,new dwelling,84,84,122,122.0,1.3,21,1.3,65.0,65.0,148.0,148.0,267.0,267.0,63.0,standard tariff,,1,N,,,100.0,,,,,,100.0,0.0,From main system,Poor,Average,Average thermal transmittance 0.09 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.22 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,"Air source heat pump, radiators, electric",Average,Very Good,2207 Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",0.0,,,2.4,,,,15 HEARNE COURT,Maidstone,Maidstone and The Weald,TOVIL,2021,2021-07-15 08:44:37,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,25.0,,10095448647.0,Energy Assessor +1737744703132019072011263731278008,"12, Postmill Drive",,,ME15 6FY,891075678,C,B,71,90,House,Mid-Terrace,2019-07-20,E07000110,E14000804,Kent,2019-07-20,marketed sale,73,91,234,54.0,1.6,41,0.4,34.0,34.0,303.0,285.0,80.0,58.0,40.0,Single,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"12, Postmill Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2019-07-20 11:26:37,unknown,,,200003666089.0,Address Matched +450571891512014031109471295940874,"2, Senacre Lane",,,ME15 8HB,8482153768,E,C,54,73,House,Semi-Detached,2014-03-11,E07000110,E14000700,Kent,2014-03-11,assessment for green deal,48,69,262,143.0,6.2,51,3.4,65.0,65.0,1109.0,858.0,172.0,81.0,123.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,6.0,6.0,100.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"2, Senacre Lane",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2014-03-11 09:47:12,owner-occupied,12.0,12.0,200003680534.0,Address Matched +639798116632016062220510011268507,Hucking Hill House,Broad Street Hill,Hucking,ME17 1QX,1781547868,F,C,32,78,House,Detached,2016-06-22,E07000110,E14000700,Kent,2016-06-22,marketed sale,31,72,272,76.0,20.0,65,6.5,162.0,165.0,3512.0,1621.0,204.0,96.0,309.0,dual,N,NODATA!,,,2106.0,39.0,double glazing installed during or after 2002,Normal,3.0,9.0,9.0,76.0,0.0,From main system,Average,Average,"Suspended, insulated",NO DATA!,,Partial double glazing,Poor,Poor,"Solid brick, as built, no insulation (assumed)",Poor,Poor,"Room heaters, wood logs",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, oil",Average,Average,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 76% of fixed outlets,Very Good,Very Good,oil (not community),0.0,NO DATA!,,2.89,,N,natural,"Hucking Hill House, Broad Street Hill, Hucking",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2016-06-22 20:51:00,owner-occupied,,,200003700625.0,Address Matched +1496655039922016111415315038648586,"3, Filbert Way",,,ME15 8WT,8363348478,B,A,82,94,House,NO DATA!,2016-11-14,E07000110,E14000700,Kent,2016-11-14,new dwelling,84,95,99,18.0,1.6,17,0.3,59.0,59.0,266.0,267.0,104.0,56.0,89.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.19 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.28 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.14 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"3, Filbert Way",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2016-11-14 15:31:50,unknown,10.0,10.0,10091194505.0,Address Matched +202957770442009051914581056589468,"128, Marion Crescent",,,ME15 7EY,9476675568,C,C,73,76,House,Mid-Terrace,2008-12-16,E07000110,E14000700,Kent,2009-05-19,rental (social),70,73,198,180.0,3.2,33,2.9,93.0,46.0,388.0,376.0,125.0,125.0,96.54,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,0.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.42,0.0,N,natural,"128, Marion Crescent",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2009-05-19 14:58:10,rental (social),,,200003711507.0,Address Matched +1680237319222018112013573151408688,Flat 9,"2, Broke Wood Way",,ME16 9FA,8536151678,B,B,85,85,Flat,Detached,2018-11-20,E07000110,E14000804,Kent,2018-11-20,new dwelling,89,89,77,77.0,0.9,13,0.9,56.0,56.0,145.0,145.0,71.0,71.0,64.0,standard tariff,,top floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.18 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Flat 9, 2, Broke Wood Way",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2018-11-20 13:57:31,unknown,20.0,20.0,10093303654.0,Address Matched +1427780259742016032600565848362998,Chapel Farm,Milstead,,ME9 0SL,5705653478,G,B,1,91,House,Detached,2016-03-21,E07000110,E14000700,Kent,2016-03-26,rental (private),10,64,718,171.0,17.0,121,4.0,128.0,85.0,4557.0,936.0,320.0,104.0,140.0,Single,N,NODATA!,,,2699.0,0.0,not defined,Normal,0.0,7.0,0.0,30.0,0.0,"Electric immersion, standard tariff",Very Poor,Poor,"Solid, no insulation (assumed)",NO DATA!,,Single glazed,Very Poor,Very Poor,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, no insulation",Very Poor,Very Poor,No system present: electric heaters assumed,Very Poor,Poor,,Very Poor,Very Poor,Low energy lighting in 30% of fixed outlets,Average,Average,To be used only when there is no heating/hot-water system,0.0,NO DATA!,,2.6,,N,natural,"Chapel Farm, Milstead",Maidstone,Faversham and Mid Kent,SITTINGBOURNE,England and Wales: 1900-1929,2016-03-26 00:56:58,rental (private),,,10014308619.0,Address Matched +1718638029022019050715450294878401,Lower Deans Farmhouse,Dean Hill,Harrietsham,ME17 1NS,983234678,F,C,36,73,House,Detached,2019-05-03,E07000110,E14000700,Kent,2019-05-07,marketed sale,35,66,263,103.0,15.0,62,6.8,231.0,127.0,2073.0,1425.0,171.0,78.0,239.0,dual,N,NODATA!,,,2107.0,20.0,"double glazing, unknown install date",Normal,3.0,10.0,8.0,14.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Some double glazing,Very Poor,Very Poor,"Timber frame, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, 25 mm loft insulation",Poor,Poor,"Boiler and radiators, oil",Average,Average,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 14% of fixed outlets,Poor,Poor,oil (not community),0.0,NO DATA!,,,,N,natural,"Lower Deans Farmhouse, Dean Hill, Harrietsham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2019-05-07 15:45:02,owner-occupied,,,, +284135350262009052218321761128461,"125, Bathurst Road",Staplehurst,,TN12 0NB,6660581668,D,D,56,68,House,End-Terrace,2009-05-22,E07000110,E14000804,Kent,2009-05-22,marketed sale,50,62,321,237.0,5.8,54,4.3,105.0,53.0,734.0,589.0,159.0,115.0,108.95,Single,Y,NO DATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,2.0,7.0,7.0,0.0,1.0,From main system,Average,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Average,Good,Programmer and room thermostat,Poor,Poor,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,0.0,N,natural,"125, Bathurst Road, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1950-1966,2009-05-22 18:32:17,owner-occupied,,,200003678199.0,Address Matched +802767539242012061814531790929688,"2, Magdalen Gardens",,,ME15 9ZD,3299839968,B,B,83,84,House,Mid-Terrace,2012-06-18,E07000110,E14000700,Kent,2012-06-18,new dwelling,87,88,88,81.0,1.1,17,1.0,61.0,38.0,214.0,217.0,78.0,77.0,63.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,3.0,,From main system,Good,Good,Average thermal transmittance 0.20 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.34 W/m?K,Good,Good,,,,Average thermal transmittance 0.24 W/m?K,Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 38% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.31,,,NO DATA!,"2, Magdalen Gardens",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2012-06-18 14:53:17,,8.0,3.0,10014312904.0,Address Matched +73664a3f4bc664cf368497fb32643d5425c6d0547df3d62a238e7a4259701e67,44 Gilbert Way,,,ME17 3TT,10001508210,B,A,84,97,House,Mid-Terrace,2021-09-20,E07000110,E14000700,Kent,2021-09-20,new dwelling,87,99,85,-8.0,1.1,15,-0.1,67.0,67.0,194.0,194.0,66.0,40.0,74.0,standard tariff,,,N,,,100.0,,,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.33,,,,44 Gilbert Way,Maidstone,Faversham and Mid Kent,MAIDSTONE,2017,2021-09-20 15:56:46,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,8.0,,10094441893.0,Energy Assessor +1599263139022018010916394845318318,Villa Nova,Blind Lane,Bredhurst,ME7 3JR,1431375578,E,C,46,75,House,Detached,2018-01-09,E07000110,E14000700,Kent,2018-01-09,marketed sale,44,73,220,80.0,6.7,56,2.8,119.0,73.0,822.0,549.0,166.0,68.0,119.0,Single,N,NODATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,0.0,7.0,7.0,38.0,0.0,From main system,Poor,Poor,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,"Room heaters, LPG",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, oil",Poor,Average,Programmer and room thermostat,Average,Average,Low energy lighting in 38% of fixed outlets,Average,Average,oil (not community),0.0,NO DATA!,,,,N,natural,"Villa Nova, Blind Lane, Bredhurst",Maidstone,Faversham and Mid Kent,GILLINGHAM,England and Wales: 1983-1990,2018-01-09 16:39:48,owner-occupied,,,10022892833.0,Address Matched +6207902962020071620580307658530,14 Belts Wood,,,ME15 9GL,3006037468,C,B,78,87,House,End-Terrace,2020-07-15,E07000110,E14000700,Kent,2020-07-16,marketed sale,76,85,129,71.0,3.0,23,1.7,117.0,94.0,475.0,481.0,112.0,68.0,130.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,75.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,14 Belts Wood,Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2007 onwards,2020-07-16 20:58:03,owner-occupied,,,10014307516.0,Address Matched +309425450502009100712432565310838,"1, Honywood Close",Lenham,,ME17 2BQ,9549853668,B,B,86,86,House,Semi-Detached,2009-10-07,E07000110,E14000700,Kent,2009-10-07,new dwelling,85,85,123,123.0,1.1,20,1.1,30.0,30.0,219.0,219.0,54.0,54.0,52.7,off-peak 7 hour,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,,From main system,Very Good,Very Good,Average thermal transmittance 0.16 W/m?K,Very Good,Very Good,Fully double glazed,Very Good,Very Good,Average thermal transmittance 0.26 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.13 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,,,NO DATA!,"1, Honywood Close, Lenham",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2009-10-07 12:43:25,,,,10014308652.0,Address Matched +212131942912009011920560506910957,"10, The Cherries",,,ME16 9DJ,9738266568,D,C,58,76,House,Semi-Detached,2009-01-15,E07000110,E14000804,Kent,2009-01-19,marketed sale,52,72,336,190.0,4.7,56,2.6,63.0,39.0,606.0,365.0,139.0,100.0,82.74,Single,N,NO DATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,5.0,5.0,40.0,1.0,From main system,Average,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Average,Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 40% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.3,0.0,N,natural,"10, The Cherries",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2009-01-19 20:56:05,owner-occupied,,,200003686852.0,Address Matched +1508981039842017010512532241930848,"37, Buffkyn Way",,,ME15 8FY,1863239478,B,A,81,93,House,Detached,2017-01-04,E07000110,E14000700,Kent,2017-01-05,new dwelling,83,94,108,24.0,1.6,19,0.4,58.0,58.0,276.0,278.0,101.0,53.0,85.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"37, Buffkyn Way",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2017-01-05 12:53:22,unknown,1.0,1.0,10091193672.0,Address Matched +16684609922017021811515868788943,17 Wallis Place,Hart Street,,ME16 8FB,4643088468,B,B,82,83,Flat,Enclosed Mid-Terrace,2017-02-18,E07000110,E14000804,Kent,2017-02-18,non marketed sale,86,87,93,88.0,1.1,16,1.0,70.0,51.0,176.0,178.0,86.0,86.0,66.0,Single,Y,2nd,N,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,62.0,0.0,From main system,Good,Good,(another dwelling below),NO DATA!,,Fully double glazed,Good,Good,"System built, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 62% of fixed outlets,Good,Good,mains gas (not community),0.0,unheated corridor,9.38,,,N,natural,"17 Wallis Place, Hart Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2017-02-18 11:51:58,owner-occupied,,,10022900616.0,Address Matched +435560569962010021122020562898120,"68, The Cockpit",Marden,,TN12 9TQ,2636642768,B,B,83,84,Flat,Semi-Detached,2010-02-11,E07000110,E14000804,Kent,2010-02-11,rental (social),82,82,162,154.0,1.3,27,1.2,42.0,24.0,214.0,216.0,76.0,76.0,47.0,Single,Y,1st,N,3.0,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,25.0,0.0,From main system,Very Good,Very Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 25% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,unheated corridor,8.35,2.38,0.0,N,natural,"68, The Cockpit, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1967-1975,2010-02-11 22:02:05,rental (social),,,200003726993.0,Address Matched +1371167869062015100709542819568245,"1, Sandlewood Court",,,ME16 0ZG,4190659378,C,C,69,70,Flat,Semi-Detached,2015-10-06,E07000110,E14000804,Kent,2015-10-07,marketed sale,56,57,315,310.0,3.2,53,3.1,74.0,47.0,297.0,304.0,247.0,247.0,60.0,Unknown,N,1st,N,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,42.0,0.0,From main system,Poor,Poor,(other premises below),NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, electric",Poor,Poor,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 42% of fixed outlets,Average,Average,electricity (not community),0.0,heated corridor,,,,N,natural,"1, Sandlewood Court",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2015-10-07 09:54:28,owner-occupied,,,10014306164.0,Address Matched +1683108939722018120111011451708388,"13, Church Crescent",Harrietsham,,ME17 1BB,8562371678,E,B,45,82,House,End-Terrace,2018-11-30,E07000110,E14000700,Kent,2018-12-01,marketed sale,37,79,402,112.0,7.4,71,2.1,108.0,70.0,1143.0,553.0,250.0,73.0,105.0,Single,Y,NODATA!,,,2102.0,97.0,"double glazing, unknown install date",Normal,2.0,5.0,5.0,45.0,0.0,"From main system, no cylinder thermostat",Poor,Poor,"Solid, no insulation (assumed)",NO DATA!,,Mostly double glazing,Average,Average,"Cavity wall, filled cavity",Average,Average,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,Low energy lighting in 45% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"13, Church Crescent, Harrietsham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2018-12-01 11:01:14,rental (private),,,200003703893.0,Address Matched +425971670512012042621153398220472,Flat 1 Swan Place,High Street,Yalding,ME18 6HS,4293081768,D,C,60,73,House,Semi-Detached,2012-04-26,E07000110,E14000804,Kent,2012-04-26,marketed sale,55,73,287,174.0,2.9,59,1.8,43.0,29.0,452.0,304.0,107.0,78.0,50.0,Single,Y,NODATA!,,,2104.0,0.0,not defined,Normal,0.0,2.0,2.0,50.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, coal",,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"Flat 1 Swan Place, High Street, Yalding",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2012-04-26 21:15:33,owner-occupied,10.0,5.0,200003723585.0,Address Matched +172747929842018112620570554382178,"11, Bychurch Place",Waterloo Street,,ME15 7UQ,874823568,C,C,76,76,Flat,Mid-Terrace,2018-11-23,E07000110,E14000804,Kent,2018-11-26,marketed sale,78,78,160,160.0,1.7,28,1.7,48.0,48.0,250.0,250.0,122.0,122.0,59.0,Single,Y,2nd,Y,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,(another dwelling below),NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,1.0,,,N,natural,"11, Bychurch Place, Waterloo Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2018-11-26 20:57:05,owner-occupied,,,200003696650.0,Address Matched +375165270212020022711440222200964,The Annexe,"19, Lansdowne Avenue",,ME15 9DL,9480028668,E,B,39,90,Bungalow,End-Terrace,2020-02-27,E07000110,E14000700,Kent,2020-02-27,rental (private),47,74,587,251.0,3.0,99,1.3,28.0,31.0,862.0,381.0,160.0,73.0,30.0,Single,N,NODATA!,,,2603.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,100.0,0.0,Electric instantaneous at point of use,Very Poor,Poor,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Flat, insulated (assumed)",Average,Average,"Room heaters, electric",Very Poor,Poor,Programmer and appliance thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,NO DATA!,,,,N,natural,"The Annexe, 19, Lansdowne Avenue",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1991-1995,2020-02-27 11:44:02,rental (private),,,10091196302.0,Address Matched +1016680849042013093007122218472388,"172, Coombe Road",,,ME15 6UP,9090644178,E,B,43,84,House,Mid-Terrace,2013-09-28,E07000110,E14000804,Kent,2013-09-30,marketed sale,44,85,366,78.0,4.4,69,1.0,63.0,39.0,814.0,420.0,161.0,63.0,64.0,Single,Y,NODATA!,,,2601.0,100.0,double glazing installed before 2002,Normal,1.0,4.0,3.0,40.0,0.0,Electric instantaneous at point of use,Very Poor,Very Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,Portable electric heaters (assumed),,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, mains gas",Average,Average,No thermostatic control of room temperature,Poor,Poor,Low energy lighting in 40% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"172, Coombe Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2013-09-30 07:12:22,owner-occupied,10.0,4.0,200003665205.0,Address Matched +281828170502009051111243260119398,Spenny Farm,Spenny Lane,Marden,TN12 9PR,2584171668,F,F,28,35,House,Detached,2009-05-11,E07000110,E14000804,Kent,2009-05-11,non marketed sale,15,19,490,435.0,14.0,125,12.0,106.0,53.0,1071.0,958.0,156.0,156.0,118.8,Single,N,NO DATA!,,,2101.0,100.0,secondary glazing,Normal,0.0,5.0,4.0,0.0,1.0,From main system,Average,Poor,"Solid, no insulation (assumed)",,,Full secondary glazing,Good,Good,"Timber frame, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, coal",Average,Very Poor,No time or thermostatic control of room temperature,Very Poor,Very Poor,No low energy lighting,Very Poor,Very Poor,INVALID!,0.0,NO DATA!,,2.1,0.0,N,natural,"Spenny Farm, Spenny Lane, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: before 1900,2009-05-11 11:24:32,owner-occupied,,,200003661295.0,Address Matched +1133281789922018071021051182608938,"39, Stockett Lane",Coxheath,,ME17 4PT,3820872278,D,C,59,78,House,Semi-Detached,2018-07-10,E07000110,E14000804,Kent,2018-07-10,marketed sale,52,72,289,153.0,5.0,51,2.7,71.0,71.0,828.0,661.0,147.0,72.0,99.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,0.0,6.0,6.0,94.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 94% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"39, Stockett Lane, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2018-07-10 21:05:11,owner-occupied,,,200003714350.0,Address Matched +383781630962009101708221918468631,"11, Lansdowne Avenue",,,ME15 9DL,3198388668,D,C,66,69,House,Semi-Detached,2009-10-16,E07000110,E14000700,Kent,2009-10-17,rental (private),65,67,227,214.0,3.8,37,3.6,76.0,51.0,583.0,563.0,123.0,123.0,100.97,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,5.0,5.0,50.0,0.0,From main system,Very Good,Very Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.39,0.0,N,natural,"11, Lansdowne Avenue",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2009-10-17 08:22:19,rental (private),,,200003710589.0,Address Matched +1680076059902018112006510465189118,"28, Stanley Close",Staplehurst,,TN12 0TA,3915051678,C,B,73,89,House,Mid-Terrace,2018-11-19,E07000110,E14000804,Kent,2018-11-20,rental (private),73,89,180,55.0,2.0,32,0.6,76.0,47.0,335.0,319.0,80.0,52.0,62.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,38.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 38% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"28, Stanley Close, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1967-1975,2018-11-20 06:51:04,rental (private),,,200003709408.0,Address Matched +494776022652010060410481996000470,"41, Grecian Street",,,ME14 2TT,4068266768,E,D,50,57,House,End-Terrace,2010-06-04,E07000110,E14000804,Kent,2010-06-04,rental (private),49,56,437,377.0,4.2,67,3.5,51.0,32.0,693.0,625.0,125.0,104.0,61.77,Single,Y,NO DATA!,,,2106.0,75.0,double glazing installed during or after 2002,Normal,1.0,4.0,4.0,40.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Partial double glazing,Average,Average,"Granite or whin, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 40% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.46,0.0,N,natural,"41, Grecian Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2010-06-04 10:48:19,rental (private),,,200003703295.0,Address Matched +73b03cda0f35679e62bd7099d37108d94c35e6381e15515fb1c55409b715a2d1,63 Roman Way,Boughton Monchelsea,,ME17 4SH,10001546975,C,A,79,93,House,Mid-Terrace,2021-09-24,E07000110,E14000700,Kent,2021-09-24,marketed sale,81,95,129,16.0,1.4,23,0.2,58.0,58.0,241.0,241.0,85.0,55.0,62.0,Single,Y,,,,,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.24,0.0,N,natural,"63 Roman Way, Boughton Monchelsea",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2007-2011,2021-09-24 10:55:31,Owner-occupied,8.0,,10022896589.0,Energy Assessor +1317433679442015050515171132550658,"4, Meades Close",Marden,,TN12 9QG,407675378,D,A,65,107,House,Detached,2015-05-05,E07000110,E14000804,Kent,2015-05-05,marketed sale,61,100,240,-32.0,3.3,42,-0.3,101.0,56.0,565.0,494.0,131.0,81.0,78.0,dual,Y,NODATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,1.0,4.0,4.0,20.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, mains gas",,,"Pitched, 350 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 20% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"4, Meades Close, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1983-1990,2015-05-05 15:17:11,owner-occupied,,,200003668946.0,Address Matched +1700423299262019022519003282758881,Flat 26 Lee Heights,Bambridge Court,,ME14 2LG,8847992678,D,B,64,82,Flat,Mid-Terrace,2019-02-25,E07000110,E14000804,Kent,2019-02-25,marketed sale,68,70,252,234.0,2.2,43,2.0,78.0,49.0,344.0,174.0,293.0,149.0,51.0,Unknown,N,3rd,Y,,2603.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,25.0,0.0,"Electric immersion, standard tariff",Very Poor,Poor,(another dwelling below),NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Room heaters, electric",Very Poor,Poor,Programmer and appliance thermostats,Good,Good,Low energy lighting in 25% of fixed outlets,Average,Average,electricity (not community),0.0,unheated corridor,4.32,,,N,natural,"Flat 26 Lee Heights, Bambridge Court",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2019-02-25 19:00:32,owner-occupied,,,10022892997.0,Address Matched +87599749742016012714494945562168,"9, Old School Place",,,ME14 1EQ,9729845468,C,C,74,78,Flat,Enclosed Mid-Terrace,2016-01-26,E07000110,E14000804,Kent,2016-01-27,rental (private),70,70,206,208.0,2.3,35,2.3,52.0,52.0,298.0,227.0,191.0,191.0,67.0,Unknown,N,2nd,Y,,2602.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,"Electric immersion, off-peak",Poor,Poor,(another dwelling below),NO DATA!,,Fully double glazed,Good,Good,"System built, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Room heaters, electric",Very Poor,Poor,Appliance thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,unheated corridor,3.17,,,N,natural,"9, Old School Place",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2016-01-27 14:49:49,rental (private),,,200003729193.0,Address Matched +647425909222011062818571738188709,"29, Hill Brow",Bearsted,,ME14 4AW,390008868,D,D,57,63,House,Semi-Detached,2011-06-28,E07000110,E14000700,Kent,2011-06-28,marketed sale,54,61,294,247.0,4.0,57,3.4,57.0,38.0,644.0,562.0,106.0,95.0,35.7,Unknown,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,50.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Roof room(s), limited insulation (assumed)",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,2.3,0.0,,natural,"29, Hill Brow, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2011-06-28 18:57:17,owner-occupied,18.0,9.0,200003693540.0,Address Matched +760233731612016041211005493960593,"20, Beaconsfield Road",,,ME15 6RU,5389136968,D,B,66,82,House,Mid-Terrace,2016-04-12,E07000110,E14000804,Kent,2016-04-12,marketed sale,62,79,240,117.0,3.4,42,1.7,54.0,54.0,594.0,533.0,156.0,75.0,81.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,100.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,2.4,,N,natural,"20, Beaconsfield Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2016-04-12 11:00:54,owner-occupied,,,200003664724.0,Address Matched +448114359062010030312473463878820,2 New Cottages,Bicknor Lane,Bicknor,ME9 8AY,2611533768,E,E,47,53,House,Semi-Detached,2010-03-03,E07000110,E14000700,Kent,2010-03-03,rental (private),35,40,392,344.0,6.4,89,5.6,41.0,41.0,743.0,649.0,167.0,144.0,72.4,Single,N,NO DATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,90.0,1.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, coal",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, oil",Average,Average,Programmer and room thermostat,Average,Average,Low energy lighting in 90% of fixed outlets,Very Good,Very Good,oil - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.68,0.0,N,natural,"2 New Cottages, Bicknor Lane, Bicknor",Maidstone,Faversham and Mid Kent,SITTINGBOURNE,England and Wales: 1930-1949,2010-03-03 12:47:34,rental (private),,,200003703647.0,Address Matched +277545510062009050219221871398561,Bottom Flat,"46, Bower Lane",,ME16 8EJ,6757141668,E,E,49,50,Flat,Semi-Detached,2009-05-01,E07000110,E14000804,Kent,2009-05-02,rental (private),37,37,688,685.0,4.6,105,4.5,34.0,22.0,332.0,335.0,204.0,204.0,43.19,Single,N,1st,N,3.0,2603.0,0.0,INVALID!,Normal,0.0,2.0,2.0,50.0,1.0,"Electric immersion, off-peak",Average,Poor,(other premises below),,,Single glazed,Very Poor,Very Poor,"Timber frame, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, dual fuel (mineral and wood)",,,(another dwelling above),,,"Room heaters, electric",Average,Poor,Programmer and appliance thermostats,Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,electricity - this is for backwards compatibility only and should not be used,0.0,unheated corridor,7.46,2.68,0.0,N,natural,"Bottom Flat, 46, Bower Lane",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2009-05-02 19:22:18,rental (private),,,200003668630.0,Address Matched +73ddf2f8ffa8615d87075baaab259ff70ba79d34e210eced3c446f817b7fac65,6,Bella Rosa Drive,Langley,ME17 3US,10001531077,B,A,84,95,House,End-Terrace,2021-08-24,E07000110,E14000700,Kent,2021-08-24,new dwelling,86,97,89,9.0,1.3,16,0.2,74.0,74.0,235.0,235.0,69.0,42.0,86.0,standard tariff,,,N,,,100.0,,,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.39,,,,"6, Bella Rosa Drive, Langley",Maidstone,Faversham and Mid Kent,Maidstone,2021,2021-08-24 09:02:27,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,15.0,,10095448353.0,Address Matched +307910319332017111413160394968692,Flat 12 Robin House,Springvale,,ME16 0AT,1274653668,E,D,39,57,Flat,Semi-Detached,2017-11-14,E07000110,E14000804,Kent,2017-11-14,marketed sale,47,58,585,438.0,2.9,99,2.2,47.0,26.0,484.0,450.0,337.0,115.0,29.0,Unknown,N,3rd,Y,,2699.0,100.0,"double glazing, unknown install date",Normal,0.0,1.0,0.0,0.0,0.0,"Electric immersion, standard tariff",Very Poor,Poor,(another dwelling below),NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 50 mm loft insulation",Poor,Poor,No system present: electric heaters assumed,Very Poor,Poor,,Very Poor,Very Poor,No low energy lighting,Very Poor,Very Poor,To be used only when there is no heating/hot-water system,0.0,unheated corridor,6.6,,,N,natural,"Flat 12 Robin House, Springvale",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2017-11-14 13:16:03,owner-occupied,,,200003667123.0,Address Matched +826084309202012082815074500122178,"22, Cranborne Avenue",,,ME15 7EB,1209401078,E,C,50,75,Bungalow,Detached,2012-08-23,E07000110,E14000700,Kent,2012-08-28,marketed sale,49,75,275,120.0,5.4,52,2.4,109.0,55.0,936.0,678.0,152.0,72.0,105.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,0.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"22, Cranborne Avenue",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2012-08-28 15:07:45,owner-occupied,11.0,0.0,200003677470.0,Address Matched +1409782329802016020407434948260578,"34, Burston Road",Coxheath,,ME17 4DT,1832822478,D,B,57,86,House,Semi-Detached,2016-02-03,E07000110,E14000804,Kent,2016-02-04,marketed sale,52,85,335,89.0,3.7,59,1.0,88.0,44.0,587.0,411.0,206.0,69.0,63.0,Single,Y,NODATA!,,,2107.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,0.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"34, Burston Road, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2016-02-04 07:43:49,owner-occupied,,,200003670158.0,Address Matched +1345993493532015072222370438278602,"46, Roseleigh Avenue",,,ME16 0AS,9258677378,D,C,64,80,House,Detached,2015-07-20,E07000110,E14000804,Kent,2015-07-22,marketed sale,56,75,228,117.0,5.1,40,2.7,74.0,74.0,887.0,702.0,182.0,79.0,128.0,Single,Y,NODATA!,,,2107.0,100.0,double glazing installed before 2002,Normal,0.0,6.0,6.0,100.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, mains gas",,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"46, Roseleigh Avenue",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1991-1995,2015-07-22 22:37:04,owner-occupied,,,200003657196.0,Address Matched +118198399022019030111273048098561,"44, Melville Road",,,ME15 7UR,6433998468,D,C,57,78,House,Mid-Terrace,2019-03-01,E07000110,E14000804,Kent,2019-03-01,rental (private),50,73,326,158.0,4.5,58,2.2,58.0,58.0,782.0,585.0,102.0,68.0,78.0,Unknown,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"44, Melville Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2019-03-01 11:27:30,rental (private),,,200003695948.0,Address Matched +1111509029842014032022182021142308,"7, Hyde Road",,,ME16 0BN,9869121278,C,B,80,91,House,Semi-Detached,2014-03-20,E07000110,E14000804,Kent,2014-03-20,FiT application,75,90,107,31.0,2.6,22,0.8,64.0,64.0,823.0,514.0,109.0,77.0,120.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,,natural,"7, Hyde Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2014-03-20 22:18:20,owner-occupied,20.0,20.0,200003658465.0,Address Matched +788699099752012051714463993920599,"43, Merton Road",Bearsted,,ME15 8LL,5961938968,D,B,64,88,House,End-Terrace,2012-05-17,E07000110,E14000700,Kent,2012-05-17,marketed sale,62,90,241,46.0,2.8,46,0.6,43.0,43.0,391.0,310.0,171.0,62.0,60.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,75.0,0.0,"From main system, no cylinder thermostat",Poor,Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"43, Merton Road, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2012-05-17 14:46:39,owner-occupied,8.0,6.0,200003686022.0,Address Matched +826578659962012081910054201438042,"9, Market Street",Staplehurst,,TN12 0QT,4068501078,E,C,51,70,House,Mid-Terrace,2012-08-17,E07000110,E14000804,Kent,2012-08-19,marketed sale,56,75,310,179.0,3.7,48,2.0,56.0,56.0,818.0,691.0,84.0,60.0,76.0,dual,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,79.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 79% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"9, Market Street, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1900-1929,2012-08-19 10:05:42,owner-occupied,14.0,11.0,200003679388.0,Address Matched +391254769222014022811021249048144,72 Sunningdale Court,Square Hill Road,,ME15 7TU,4472639668,D,C,58,77,Flat,End-Terrace,2014-02-24,E07000110,E14000804,Kent,2014-02-28,none of the above,57,82,312,136.0,2.7,60,1.2,53.0,30.0,483.0,230.0,124.0,98.0,45.0,Single,Y,12th,Y,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,20.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Flat, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 20% of fixed outlets,Poor,Poor,mains gas (not community),0.0,unheated corridor,4.597,,0.0,,natural,"72 Sunningdale Court, Square Hill Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2014-02-28 11:02:12,rental (social),5.0,1.0,200003696642.0,Address Matched +740933834cb5f890ef2c952e6cc68de87bd61e61d2f41feb68621298b2db32ec,28 Locks Yard,Headcorn,,TN27 9AD,10001447393,C,C,79,80,Flat,Mid-Terrace,2021-09-17,E07000110,E14000700,Kent,2021-09-21,rental,83,84,122,117.0,1.2,21,1.2,81.0,56.0,197.0,199.0,91.0,91.0,58.0,Single,Y,01,N,,,100.0,double glazing installed during or after 2002,Normal,1.0,3.0,3.0,56.0,0.0,From main system,Good,Good,"To unheated space, insulated (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in 56% of fixed outlets,Good,Good,mains gas (not community),0.0,no corridor,,2.29,0.0,N,natural,"28 Locks Yard, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,England and Wales: 2007-2011,2021-09-21 07:42:12,Rented (private),9.0,,10014312107.0,Energy Assessor +1389483189042015112611071146052268,"82, Sittingbourne Road",,,ME14 5HY,3080780478,F,C,31,76,House,Detached,2015-11-26,E07000110,E14000804,Kent,2015-11-26,ECO assessment,19,64,450,130.0,16.0,93,5.1,172.0,86.0,2565.0,997.0,232.0,80.0,176.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,1.0,6.0,6.0,0.0,1.0,From main system,Average,Average,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, coal",,,"Pitched, no insulation",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"82, Sittingbourne Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2015-11-26 11:07:11,owner-occupied,,,200003716655.0,Address Matched +740f86156ec70fbce3a513fbf98f5a1879929009a676fa3b3cdeb3f8c4c21680,1,Railway Place,Lenham,ME17 2FQ,10001324610,A,A,93,94,House,Detached,2021-08-03,E07000110,E14000700,Kent,2021-08-03,new dwelling,94,95,31,19.0,0.6,6,0.4,79.0,79.0,252.0,252.0,71.0,40.0,103.0,standard tariff,,,N,,,100.0,,,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.16 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.17 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.44,,,,"1, Railway Place, Lenham",Maidstone,Faversham and Mid Kent,Maidstone,2020,2021-08-03 09:40:23,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,13.0,,10095449325.0,Address Matched +581325365832018052016044199268309,"31, King Edward Road",,,ME15 6PN,6949392868,D,B,63,83,House,Mid-Terrace,2018-05-20,E07000110,E14000804,Kent,2018-05-20,marketed sale,57,79,248,110.0,4.8,44,2.2,139.0,70.0,770.0,558.0,128.0,83.0,109.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,6.0,6.0,0.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"31, King Edward Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2018-05-20 16:04:41,owner-occupied,,,200003682689.0,Address Matched +1338841759962015111311400887728565,"322, Upper Fant Road",,,ME16 8DB,6887527378,D,B,62,84,House,End-Terrace,2015-11-12,E07000110,E14000804,Kent,2015-11-13,rental (private),56,81,279,98.0,3.4,49,1.2,46.0,46.0,635.0,441.0,105.0,74.0,68.0,Single,Y,NODATA!,,,2106.0,93.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,100.0,0.0,From main system,Very Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Mostly double glazing,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"322, Upper Fant Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2015-11-13 11:40:08,rental (private),,,200003656223.0,Address Matched +1488546015212017022310344398230747,"13, Godfrey Meadow",Hollingbourne,,ME17 1FZ,7737587478,B,B,84,91,House,Detached,2017-02-23,E07000110,E14000700,Kent,2017-02-23,new dwelling,85,91,78,40.0,2.5,13,1.2,93.0,93.0,459.0,462.0,118.0,65.0,192.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.23 W/m-¦K,Very Good,Very Good,"Room heaters, wood logs",,,Average thermal transmittance 0.12 W/m-¦K,Very Good,Very Good,"Boiler and underfloor heating, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"13, Godfrey Meadow, Hollingbourne",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2017-02-23 10:34:43,owner-occupied,10.0,10.0,10091196226.0,Address Matched +1104729079222014032013445230808304,2 Rock Farm Oast,Gibbs Hill,Nettlestead,ME18 5HT,319770278,C,C,75,77,House,Mid-Terrace,2014-03-20,E07000110,E14000804,Kent,2014-03-20,rental (private),75,76,129,120.0,2.9,25,2.7,134.0,67.0,483.0,493.0,106.0,106.0,118.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,0.0,0.0,From main system,Good,Good,"Solid, limited insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"2 Rock Farm Oast, Gibbs Hill, Nettlestead",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2014-03-20 13:44:52,rental (private),14.0,0.0,200003658861.0,Address Matched +835222181232012091315002120978604,"15, Marigold Way",,,ME16 0ZJ,8450661078,C,B,78,91,House,Mid-Terrace,2012-09-12,E07000110,E14000804,Kent,2012-09-13,marketed sale,81,94,115,24.0,1.5,22,0.4,42.0,42.0,282.0,282.0,74.0,50.0,69.0,Unknown,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"15, Marigold Way",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2012-09-13 15:00:21,owner-occupied,9.0,9.0,10022901860.0,Address Matched +307879850942009061910154060319588,1 The Birkdales,Ware Street,Weavering,ME14 5LA,909453668,B,B,85,86,House,Detached,2009-06-18,E07000110,E14000700,Kent,2009-06-19,new dwelling,84,85,91,88.0,2.5,15,2.5,108.0,86.0,343.0,346.0,70.0,70.0,169.78,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,,From main system,Very Good,Very Good,Average thermal transmittance 0.19 W/m?K,Very Good,Very Good,Fully double glazed,Good,Good,Average thermal transmittance 0.30 W/m?K,Good,Good,,,,Average thermal transmittance 0.14 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Very Good,Very Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.3,,,NO DATA!,"1 The Birkdales, Ware Street, Weavering",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2009-06-19 10:15:40,,,,10014308645.0,Address Matched +465842210552010040717313896000576,"5, Tovil Road",,,ME15 6QL,5663064768,D,D,60,63,House,Semi-Detached,2010-04-07,E07000110,E14000804,Kent,2010-04-07,marketed sale,54,56,321,305.0,4.4,54,4.2,75.0,42.0,631.0,649.0,140.0,109.0,81.76,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,5.0,5.0,22.0,0.0,From main system,Very Good,Very Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 22% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.5,0.0,N,natural,"5, Tovil Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2010-04-07 17:31:38,owner-occupied,,,200003664497.0,Address Matched +278335729252009050519111504010164,Flat 188 Scotney Gardens,St. Peters Street,,ME16 0GT,1478941668,C,C,78,80,Flat,Detached,2009-05-01,E07000110,E14000804,Kent,2009-05-05,rental (private),74,74,199,195.0,2.5,30,2.4,80.0,55.0,161.0,166.0,140.0,140.0,83.2,dual,N,4th,Y,5.0,2402.0,,INVALID!,Much More Than Typical,0.0,3.0,3.0,56.0,0.0,"Electric immersion, off-peak",Average,Poor,(other premises below),,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,"Pitched, 250mm loft insulation",Good,Good,Electric storage heaters,Average,Poor,Automatic charge control,Average,Average,Low energy lighting in 56% of fixed outlets,Good,Good,electricity - this is for backwards compatibility only and should not be used,0.0,heated corridor,,2.35,0.0,N,natural,"Flat 188 Scotney Gardens, St. Peters Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2009-05-05 19:11:15,rental (private),,,10022893555.0,Address Matched +876667009222013012719503374558397,"35, Upper Fant Road",,,ME16 8BP,9712064078,D,B,66,86,House,Mid-Terrace,2013-01-25,E07000110,E14000804,Kent,2013-01-27,marketed sale,64,86,195,63.0,3.5,37,1.2,72.0,51.0,582.0,406.0,106.0,71.0,93.0,Single,N,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,60.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 60% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"35, Upper Fant Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2013-01-27 19:50:33,owner-occupied,10.0,6.0,200003668306.0,Address Matched +1591457469062018011515201875598716,"4, Tolhurst Way",Lenham,,ME17 2BY,1719615578,B,A,85,95,House,Mid-Terrace,2016-08-01,E07000110,E14000700,Kent,2018-01-15,new dwelling,87,96,79,13.0,1.5,14,0.3,72.0,72.0,225.0,225.0,104.0,67.0,107.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.12 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.17 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"4, Tolhurst Way, Lenham",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2018-01-15 15:20:18,unknown,11.0,11.0,10093303674.0,Address Matched +166230925212008102116214009289157,7 The Old Corn Stores,The Street,Bearsted,ME14 4EW,1744592568,C,B,76,82,Flat,Semi-Detached,2008-10-21,E07000110,E14000700,Kent,2008-10-21,rental (private),75,79,179,145.0,2.3,30,1.9,77.0,38.0,271.0,245.0,88.0,77.0,58.95,Unknown,Y,1st,Y,3.0,2104.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,0.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Solid brick, with internal insulation",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Poor,Poor,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,unheated corridor,0.86,2.6,0.0,N,natural,"7 The Old Corn Stores, The Street, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1991-1995,2008-10-21 16:21:40,rental (private),,,200003694611.0,Address Matched +129704119062017091612003909818663,"63, York Road",,,ME15 7QU,6041179468,D,C,57,79,House,Semi-Detached,2017-09-09,E07000110,E14000700,Kent,2017-09-16,rental (private),53,77,306,133.0,4.2,54,1.9,53.0,53.0,823.0,583.0,107.0,71.0,78.0,Single,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,6.0,1.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,Portable electric heaters (assumed),,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"63, York Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2017-09-16 12:00:39,rental (private),,,200003715700.0,Address Matched +1689739121152019011106170292010661,"21, Blendon Road",,,ME14 5QA,6112122678,D,C,65,79,House,Detached,2019-01-09,E07000110,E14000804,Kent,2019-01-11,marketed sale,60,74,239,141.0,3.7,42,2.2,80.0,63.0,630.0,588.0,99.0,67.0,88.0,Unknown,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,73.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 73% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"21, Blendon Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2019-01-11 06:17:02,owner-occupied,,,200003671426.0,Address Matched +1756873809942019100817264263710688,"60a, Mote Road",,,ME15 6ET,9937807678,D,C,67,78,Flat,Mid-Terrace,2019-10-08,E07000110,E14000804,Kent,2019-10-08,rental (private),56,74,433,261.0,2.4,73,1.5,32.0,32.0,375.0,178.0,175.0,175.0,33.0,dual,N,1st,Y,,2401.0,100.0,secondary glazing,Normal,1.0,2.0,2.0,100.0,0.0,Electric instantaneous at point of use,Very Poor,Poor,(another dwelling below),NO DATA!,,Full secondary glazing,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,Portable electric heaters (assumed),,,"Pitched, 200 mm loft insulation",Good,Good,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,unheated corridor,3.13,,,N,natural,"60a, Mote Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2019-10-08 17:26:42,rental (private),,,200003693393.0,Address Matched +743f9612583b7f22fc56cf59c21ff2ff41d4d33a5f1852ca35ed26eb2fe9da7f,1 FRIARS COURT,QUEEN ANNE ROAD,,ME14 1ER,10001319746,C,B,72,81,Flat,End-Terrace,2021-07-08,E07000110,E14000804,Kent,2021-07-10,marketed sale,65,69,306,278.0,2.0,52,1.8,41.0,41.0,215.0,166.0,279.0,151.0,39.0,dual,N,00,N,,,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,100.0,0.0,"Electric immersion, off-peak",Very Poor,Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,Portable electric heaters (assumed),,,(another dwelling above),,,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,heated corridor,,2.3,0.0,N,natural,"1 FRIARS COURT, QUEEN ANNE ROAD",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2021-07-10 15:35:51,Owner-occupied,7.0,,200003688614.0,Energy Assessor +499046799302010061421585370609548,Flat 149 Scotney Gardens,St. Peters Street,,ME16 0GT,2388696768,C,C,78,79,Flat,Mid-Terrace,2010-06-14,E07000110,E14000804,Kent,2010-06-14,rental (private),73,73,223,220.0,2.3,34,2.3,64.0,44.0,166.0,169.0,143.0,143.0,69.8,dual,N,Ground,N,4.0,2402.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,56.0,0.0,"Electric immersion, off-peak",Average,Poor,"Suspended, insulated (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,(another dwelling above),,,Electric storage heaters,Average,Poor,Automatic charge control,Average,Average,Low energy lighting in 56% of fixed outlets,Good,Good,electricity - this is for backwards compatibility only and should not be used,0.0,unheated corridor,1.63,2.32,0.0,N,natural,"Flat 149 Scotney Gardens, St. Peters Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2010-06-14 21:58:53,rental (private),,,10022893516.0,Address Matched +1100756147432014030412314055078402,Russetings Cottage,Albion Road,Marden,TN12 9ED,4255440278,C,B,75,86,House,Mid-Terrace,2014-03-03,E07000110,E14000804,Kent,2014-03-04,marketed sale,76,86,130,61.0,2.4,25,1.2,80.0,60.0,429.0,433.0,108.0,75.0,98.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,67.0,0.0,From main system,Good,Good,"Suspended, insulated (assumed)",,,Fully double glazed,Good,Good,"Solid brick, as built, insulated (assumed)",Good,Good,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 67% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"Russetings Cottage, Albion Road, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 2003-2006,2014-03-04 12:31:40,owner-occupied,12.0,8.0,200003709120.0,Address Matched +242170137132009030914594521068006,"110a, Wrangleden Road",,,ME15 9LD,3621088568,C,B,80,81,Flat,Semi-Detached,2009-03-06,E07000110,E14000700,Kent,2009-03-09,rental (social),78,79,173,166.0,1.7,29,1.6,51.0,28.0,246.0,250.0,75.0,75.0,58.74,Single,Y,1st,Y,2.0,2106.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,20.0,0.0,From main system,Very Good,Very Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 20% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.28,0.0,N,natural,"110a, Wrangleden Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2009-03-09 14:59:45,rental (social),,,200003683176.0,Address Matched +1462559032812016080318041590060346,Flat 3 Allin Place,Fairmeadow,,ME14 1FT,3650206478,B,B,88,88,Flat,Mid-Terrace,2016-08-03,E07000110,E14000804,Kent,2016-08-03,new dwelling,93,93,55,55.0,0.5,10,0.5,42.0,42.0,150.0,150.0,71.0,71.0,50.0,standard tariff,,ground floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.17 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Flat 3 Allin Place, Fairmeadow",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2016-08-03 18:04:15,unknown,12.0,12.0,10091194276.0,Address Matched +598067922432014022814573145268009,3 Hawley Court,London Road,,ME16 8QJ,2935034868,D,C,64,76,Flat,Mid-Terrace,2014-02-25,E07000110,E14000804,Kent,2014-02-28,none of the above,65,80,257,147.0,2.2,49,1.3,48.0,30.0,434.0,275.0,90.0,74.0,45.0,Single,Y,Ground,N,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,40.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 40% of fixed outlets,Average,Average,mains gas (not community),0.0,unheated corridor,9.527,,0.0,,natural,"3 Hawley Court, London Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2014-02-28 14:57:31,rental (social),5.0,2.0,200003668463.0,Address Matched +1692030559752019012216495993210364,"2, Northfields",,,ME16 9JW,3437932678,D,C,67,80,House,Semi-Detached,2019-01-21,E07000110,E14000804,Kent,2019-01-22,marketed sale,62,75,223,131.0,3.5,39,2.1,75.0,75.0,580.0,550.0,121.0,79.0,90.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,83.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 83% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"2, Northfields",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2019-01-22 16:49:59,owner-occupied,,,200003666422.0,Address Matched +1609703879262018022211170756828338,2 Gatehouse Lodge,Mote Park,,ME15 8FN,3579746578,C,B,77,86,House,Detached,2018-02-22,E07000110,E14000700,Kent,2018-02-22,marketed sale,77,86,130,70.0,2.6,23,1.4,76.0,76.0,478.0,478.0,107.0,76.0,114.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"2 Gatehouse Lodge, Mote Park",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2007 onwards,2018-02-22 11:17:07,owner-occupied,,,10014309491.0,Address Matched +1184773287352015111908244493959229,Flat 2,"54, Buckland Road",,ME16 0SH,2918736278,C,C,69,76,Flat,Semi-Detached,2015-11-17,E07000110,E14000804,Kent,2015-11-19,rental (social),69,79,295,202.0,1.6,52,1.1,39.0,24.0,285.0,197.0,101.0,101.0,32.0,Unknown,Y,Ground,N,,2307.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,40.0,0.0,Community scheme,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,(another dwelling above),,,Community scheme,Good,Good,"Flat rate charging, TRVs",Average,Average,Low energy lighting in 40% of fixed outlets,Average,Average,mains gas (community),0.0,heated corridor,,,,N,natural,"Flat 2, 54, Buckland Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2015-11-19 08:24:44,rental (social),,,10014310662.0,Address Matched +592207714112011021620395998990383,"9, Foxglove Rise",,,ME14 2AF,3337483868,C,C,74,79,House,Mid-Terrace,2011-02-16,E07000110,E14000804,Kent,2011-02-16,rental (private),70,77,237,184.0,2.3,39,1.8,48.0,32.0,360.0,307.0,128.0,102.0,58.744,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,50.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.35,0.0,N,natural,"9, Foxglove Rise",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1991-1995,2011-02-16 20:39:59,rental (private),,,200003722736.0,Address Matched +1085736941812014120919170994049118,"15, Horseshoes Lane",Langley,,ME17 1SR,1886149178,D,B,56,82,Bungalow,Detached,2014-12-08,E07000110,E14000700,Kent,2014-12-09,none of the above,52,80,304,110.0,4.7,53,1.7,109.0,55.0,876.0,566.0,115.0,68.0,89.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, 25 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"15, Horseshoes Lane, Langley",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2014-12-09 19:17:09,owner-occupied,,,200003697329.0,Address Matched +1358141344052015082719500496250137,"6, Furfield Chase",Boughton Monchelsea,,ME17 4GD,1748468378,C,B,77,88,House,Mid-Terrace,2015-08-27,E07000110,E14000700,Kent,2015-08-27,marketed sale,76,87,138,66.0,2.5,24,1.2,95.0,66.0,422.0,427.0,112.0,75.0,102.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,56.0,0.0,From main system,Good,Good,"Suspended, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 56% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"6, Furfield Chase, Boughton Monchelsea",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2007 onwards,2015-08-27 19:50:04,owner-occupied,,,10022901144.0,Address Matched +1287407564452015030914130696250233,"1, Farington Close",,,ME16 0WN,2351463378,D,B,57,84,House,End-Terrace,2015-02-27,E07000110,E14000804,Kent,2015-03-09,ECO assessment,53,84,275,77.0,4.6,48,1.3,124.0,62.0,800.0,476.0,161.0,75.0,95.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,6.0,6.0,0.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"1, Farington Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2015-03-09 14:13:06,owner-occupied,,,10022893177.0,Address Matched +1546716889222017052411042141578403,"9, Roseholme",,,ME16 8DY,459891578,D,B,68,86,House,Semi-Detached,2017-05-23,E07000110,E14000804,Kent,2017-05-24,marketed sale,65,85,221,73.0,2.7,39,0.9,54.0,54.0,430.0,369.0,155.0,70.0,69.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,88.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 88% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"9, Roseholme",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2017-05-24 11:04:21,owner-occupied,,,200003656552.0,Address Matched +74782024892aac91b877a562bdca549c6449b1cce86bcbfa50cbb1e42b6d346e,18 OWLETTS CLOSE,,,ME15 7SZ,10001382244,E,B,54,84,House,Mid-Terrace,2021-06-28,E07000110,E14000700,Kent,2021-07-01,ECO assessment,51,84,340,90.0,4.1,60,1.1,117.0,58.0,698.0,443.0,188.0,74.0,69.0,Single,Y,,,,,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,0.0,0.0,"From main system, no cylinder thermostat",Average,Average,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,"Pitched, insulated (assumed)",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,,,2.75,0.0,N,natural,18 OWLETTS CLOSE,Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2021-07-01 10:38:39,Rented (social),8.0,,200003725374.0,Energy Assessor +1779347749032020012718294712278403,"22, Kings Acre",Downswood,,ME15 8UP,4392478678,C,B,72,82,House,Detached,2020-01-23,E07000110,E14000700,Kent,2020-01-27,marketed sale,67,77,174,112.0,4.5,31,2.9,125.0,94.0,739.0,698.0,129.0,84.0,147.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,3.0,7.0,7.0,67.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 67% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"22, Kings Acre, Downswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2020-01-27 18:29:47,owner-occupied,,,200003691352.0,Address Matched +1378084509022015110211402390728175,11 Alexander Court,Mote Park,,ME15 8WY,7915000478,B,B,84,84,Flat,Mid-Terrace,2015-11-02,E07000110,E14000700,Kent,2015-11-02,new dwelling,87,87,86,86.0,1.2,15,1.2,53.0,53.0,199.0,199.0,100.0,100.0,77.0,standard tariff,,ground floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.22 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and boiler energy manager",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"11 Alexander Court, Mote Park",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2015-11-02 11:40:23,unknown,8.0,8.0,10091195125.0,Address Matched +1388989489002015112509181144052348,Flat 13 Nolan Court,"2, Terrace Road",,ME16 8HU,3047280478,B,B,89,89,Flat,NO DATA!,2015-11-24,E07000110,E14000804,Kent,2015-11-25,new dwelling,93,93,47,47.0,0.6,9,0.6,48.0,48.0,206.0,206.0,77.0,77.0,63.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.18 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Flat 13 Nolan Court, 2, Terrace Road",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2015-11-25 09:18:11,unknown,25.0,25.0,10014316096.0,Address Matched +829946211052012090316165993020105,"4, Mountsfield Close",,,ME16 0EZ,1524131078,D,C,67,79,House,Detached,2012-09-03,E07000110,E14000804,Kent,2012-09-03,none of the above,64,76,171,104.0,4.5,33,2.8,131.0,70.0,717.0,678.0,116.0,75.0,138.0,dual,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,7.0,7.0,14.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, partial insulation (assumed)",Average,Average,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 14% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"4, Mountsfield Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1976-1982,2012-09-03 16:16:59,unknown,14.0,2.0,200003659081.0,Address Matched +202021645812009051914565507989858,"17, Medway Avenue",Yalding,,ME18 6JW,8806575568,C,C,72,74,House,Semi-Detached,2008-12-16,E07000110,E14000804,Kent,2009-05-19,rental (social),69,70,225,218.0,2.7,37,2.6,62.0,34.0,350.0,355.0,114.0,114.0,72.27,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,20.0,0.0,From main system,Very Good,Very Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 20% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.43,0.0,N,natural,"17, Medway Avenue, Yalding",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2009-05-19 14:56:55,rental (social),,,200003660631.0,Address Matched +1381086087452015110217182792059141,"10, Clinton Close",Coxheath,,ME17 4DZ,1104720478,D,C,64,76,House,Semi-Detached,2015-11-02,E07000110,E14000804,Kent,2015-11-02,marketed sale,57,69,236,161.0,5.1,42,3.5,108.0,70.0,925.0,875.0,109.0,74.0,122.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,7.0,7.0,45.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Roof room(s), insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 45% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"10, Clinton Close, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2015-11-02 17:18:27,owner-occupied,,,200003671656.0,Address Matched +396673974252009111115290407919561,69a Coombe Road,,,ME15 6UG,5135479668,C,C,73,74,House,End-Terrace,2009-11-11,E07000110,E14000804,Kent,2009-11-11,new dwelling,81,82,142,135.0,1.9,21,1.8,85.0,51.0,226.0,234.0,191.0,191.0,88.8,standard tariff,,NO DATA!,,,2205.0,,NO DATA!,NO DATA!,,,,4.0,0.0,From main system,Poor,Good,Average thermal transmittance 0.19 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.14 W/m?K,Very Good,Very Good,"Air source heat pump, ratiators, electric",Poor,Good,Programmer and at least two room thermostats,Good,Good,Low energy lighting in 33% fixed outlets,Average,Average,"Electricity: electricity, unspecified tariff",0.0,NO DATA!,,2.38,,,NO DATA!,69a Coombe Road,Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2009-11-11 15:29:04,,12.0,4.0,10014307401.0,Address Matched +1805815362262020062609413090068410,"37, Marsham Street",,,ME14 1HG,1921660778,E,C,53,75,Flat,Mid-Terrace,2020-06-26,E07000110,E14000804,Kent,2020-06-26,marketed sale,54,78,313,139.0,4.4,47,2.0,75.0,75.0,941.0,396.0,113.0,103.0,92.0,Unknown,Y,1st,Y,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,100.0,3.0,From main system,Good,Good,(another dwelling below),NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Roof room(s), no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,no corridor,,,,N,natural,"37, Marsham Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2020-06-26 09:41:30,owner-occupied,,,200003687524.0,Address Matched +74a0080610302780ca65b17cc2792f82aaeabdc851bbe78d7f5f233e3d1ac560,"45, Holland Road",,,ME14 1UN,2318195768,D,B,66,82,House,Semi-Detached,2021-08-02,E07000110,E14000804,Kent,2021-08-02,rental,58,78,214,103.0,5.6,38,2.7,117.0,117.0,934.0,610.0,101.0,101.0,148.0,dual,Y,,,,,95.0,double glazing installed before 2002,Normal,4.0,8.0,8.0,93.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Mostly double glazing,Average,Average,"Sandstone or limestone, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 93% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.02,0.0,N,natural,"45, Holland Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2021-08-02 16:03:30,Rented (private),29.0,,200003698983.0,Address Matched +912956857952013041222032991970604,"4a, Cumberland Avenue",,,ME15 7JN,6454717078,D,C,68,71,Flat,Semi-Detached,2013-04-12,E07000110,E14000700,Kent,2013-04-12,rental (social),67,71,191,166.0,2.9,37,2.5,72.0,48.0,462.0,428.0,121.0,104.0,78.0,Single,Y,1st,N,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,50.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,no corridor,,,0.0,,natural,"4a, Cumberland Avenue",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2013-04-12 22:03:29,rental (social),8.0,4.0,200003712930.0,Address Matched +173088428512019112819071694219953,"23, Wrangleden Road",,,ME15 9LW,9342843568,D,B,66,85,Bungalow,Semi-Detached,2019-11-28,E07000110,E14000700,Kent,2019-11-28,marketed sale,67,85,253,94.0,2.3,44,0.9,57.0,43.0,466.0,415.0,80.0,53.0,53.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,67.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,"Room heaters, electric",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 67% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"23, Wrangleden Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2019-11-28 19:07:16,owner-occupied,,,200003682546.0,Address Matched +873089536532015060418434494078503,"77, Robins Close",Lenham,,ME17 2LE,3354534078,D,C,59,80,House,Semi-Detached,2015-06-04,E07000110,E14000700,Kent,2015-06-04,marketed sale,63,82,256,115.0,3.1,43,1.4,84.0,47.0,447.0,395.0,358.0,237.0,72.0,Single,Y,NODATA!,,,2204.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,22.0,0.0,From main system,Very Poor,Poor,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 100 mm loft insulation",Average,Average,"Air source heat pump, radiators, electric",Good,Very Good,Programmer and room thermostat,Average,Average,Low energy lighting in 22% of fixed outlets,Poor,Poor,electricity (not community),0.0,NO DATA!,,,,N,natural,"77, Robins Close, Lenham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2015-06-04 18:43:44,owner-occupied,,,200003707286.0,Address Matched +1418946425552016030121204999060543,21 Amshurst Villas,Gallants Lane,East Farleigh,ME15 0LQ,5342592478,D,A,66,115,Bungalow,Mid-Terrace,2016-03-01,E07000110,E14000804,Kent,2016-03-01,rental (social),69,113,252,-130.0,2.1,43,-1.1,35.0,35.0,358.0,263.0,223.0,223.0,49.0,Single,N,NODATA!,,,2204.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,100.0,0.0,"From main system, plus solar",Poor,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Air source heat pump, radiators, electric",Good,Very Good,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,NO DATA!,,,,Y,natural,"21 Amshurst Villas, Gallants Lane, East Farleigh",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2016-03-01 21:20:49,rental (social),,,200003671205.0,Address Matched +373826800132009100216482533068594,"9, Maidstone Road",Marden,,TN12 9AB,433518668,D,D,63,66,House,Mid-Terrace,2009-10-02,E07000110,E14000804,Kent,2009-10-02,marketed sale,66,68,305,285.0,2.8,43,2.6,54.0,32.0,528.0,508.0,83.0,83.0,65.3,Single,Y,NO DATA!,,,2107.0,100.0,double glazing installed during or after 2002,Normal,1.0,3.0,3.0,33.0,2.0,From main system,Very Good,Very Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Timber frame, as built, partial insulation (assumed)",Average,Average,"Room heaters, wood logs",,,"Flat, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, TRVs and bypass",Poor,Poor,Low energy lighting in 33% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,0.0,N,natural,"9, Maidstone Road, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: before 1900,2009-10-02 16:48:25,owner-occupied,,,200003708423.0,Address Matched +74b25e92f6c4009cc9e43cac03d7e8788620ab772c9f7088fb49e7997bc4f267,FLAT 7,SHERINGHAM HOUSE,OWLETTS CLOSE,ME15 7TP,10001646400,E,C,53,71,Flat,Detached,2021-06-29,E07000110,E14000700,Kent,2021-07-01,ECO assessment,50,71,367,204.0,3.9,64,2.2,114.0,57.0,758.0,424.0,90.0,91.0,61.0,Single,Y,02,Y,,,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,0.0,0.0,From main system,Good,Good,(another dwelling below),,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Average,Average,"Room heaters, electric",,,"Pitched, insulated (assumed)",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,unheated corridor,6.0,2.75,0.0,N,natural,"FLAT 7, SHERINGHAM HOUSE, OWLETTS CLOSE",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2021-07-01 16:30:44,Rented (social),8.0,,200003714114.0,Energy Assessor +1159589399922014061807541044468434,"75, Hildenborough Crescent",,,ME16 0NR,3425954278,C,B,70,83,House,Detached,2014-06-16,E07000110,E14000804,Kent,2014-06-18,marketed sale,68,82,165,82.0,3.4,32,1.7,104.0,59.0,570.0,522.0,130.0,88.0,106.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,6.0,6.0,25.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 25% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"75, Hildenborough Crescent",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2014-06-18 07:54:10,owner-occupied,12.0,3.0,200003706788.0,Address Matched +875315730412013012321270195270901,"14, Gladstone Road",Penenden Heath,,ME14 2AU,9187054078,D,B,59,88,House,Mid-Terrace,2013-01-23,E07000110,E14000804,Kent,2013-01-23,marketed sale,57,89,267,48.0,3.1,51,0.6,73.0,36.0,543.0,347.0,86.0,54.0,61.0,Single,Y,NODATA!,,,2107.0,100.0,double glazing installed during or after 2002,Normal,1.0,4.0,4.0,0.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, mains gas",,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"14, Gladstone Road, Penenden Heath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2013-01-23 21:27:01,owner-occupied,7.0,0.0,200003701709.0,Address Matched +941648912742020060108461608902518,"14, The Spires",,,ME16 0JE,7797819078,C,B,72,81,House,Detached,2020-05-29,E07000110,E14000804,Kent,2020-06-01,marketed sale,65,76,164,107.0,6.7,29,4.4,121.0,121.0,1133.0,891.0,140.0,140.0,231.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,2.0,9.0,9.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"14, The Spires",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2020-06-01 08:46:16,owner-occupied,,,200003657057.0,Address Matched +329575849062018091009213495638138,"9, Marsham Street",,,ME14 1EW,3932405668,E,C,51,80,House,End-Terrace,2018-09-07,E07000110,E14000804,Kent,2018-09-10,rental (private),41,75,326,117.0,8.0,57,2.9,118.0,83.0,1326.0,696.0,172.0,75.0,140.0,Single,Y,NODATA!,,,2106.0,100.0,secondary glazing,Normal,0.0,7.0,7.0,58.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Full secondary glazing,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 58% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"9, Marsham Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2018-09-10 09:21:34,rental (private),,,200003687501.0,Address Matched +673957955612011090611325398090089,"1, Chiddingstone Close",,,ME15 8TP,917589868,D,C,63,71,House,Semi-Detached,2011-09-06,E07000110,E14000700,Kent,2011-09-06,marketed sale,60,71,235,173.0,3.9,45,2.9,71.0,46.0,591.0,471.0,147.0,109.0,86.48,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,45.0,1.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 45% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,2.37,0.0,,natural,"1, Chiddingstone Close",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2011-09-06 11:32:53,owner-occupied,11.0,5.0,200003680942.0,Address Matched +1738712569222019072421225965448271,"2, Bell Way",Kingswood,,ME17 3QH,7625675678,C,B,69,86,Bungalow,Semi-Detached,2019-07-24,E07000110,E14000700,Kent,2019-07-24,marketed sale,66,84,225,91.0,2.8,40,1.2,56.0,56.0,499.0,408.0,90.0,63.0,72.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,3.0,3.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, 270 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"2, Bell Way, Kingswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2019-07-24 21:22:59,owner-occupied,,,200003701347.0,Address Matched +1769696679132019120209361738278194,1 Bull Lane Cottages,Bull Lane,Stockbury,ME9 7UB,7418108678,D,B,61,85,House,Semi-Detached,2019-11-29,E07000110,E14000700,Kent,2019-12-02,rental (social),41,67,404,195.0,4.9,68,2.4,75.0,75.0,722.0,494.0,191.0,105.0,72.0,dual,N,NODATA!,,,2401.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,88.0,0.0,"Electric immersion, off-peak",Average,Poor,"Suspended, limited insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,Portable electric heaters (assumed),,,"Pitched, 300 mm loft insulation",Very Good,Very Good,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 88% of fixed outlets,Very Good,Very Good,electricity (not community),0.0,NO DATA!,,,,N,natural,"1 Bull Lane Cottages, Bull Lane, Stockbury",Maidstone,Faversham and Mid Kent,SITTINGBOURNE,England and Wales: 1996-2002,2019-12-02 09:36:17,rental (social),,,200003702052.0,Address Matched +246440580302009061108033050919398,18 The Old Market,Marden,,TN12 9GD,353089568,B,B,83,85,House,Mid-Terrace,2009-06-11,E07000110,E14000804,Kent,2009-06-11,new dwelling,83,84,106,97.0,2.1,17,2.0,112.0,65.0,238.0,244.0,113.0,113.0,123.03,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,5.0,,From main system,Very Good,Very Good,Average thermal transmittance 0.18 W/m?K,Very Good,Very Good,Fully double glazed,Good,Good,Average thermal transmittance 0.28 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.16 W/m?K,Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 28% fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.39,,,NO DATA!,"18 The Old Market, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,NO DATA!,2009-06-11 08:03:30,,18.0,5.0,10014306434.0,Address Matched +74e58002338399a613959d6ca7b6bc7df81f020de10859fdc61129b1460a7f7c,6 Lasius Drive,Coxheath,,ME17 4UH,10001613166,B,A,84,95,House,Semi-Detached,2021-08-17,E07000110,E14000804,Kent,2021-08-17,new dwelling,87,97,82,5.0,1.3,14,0.1,75.0,75.0,219.0,219.0,71.0,43.0,90.0,standard tariff,,,N,,,100.0,,,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.21 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.10 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.4,,,,"6 Lasius Drive, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,2019,2021-08-17 08:04:09,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,12.0,,10094444138.0,Energy Assessor +834983855952012091314183896920305,"45, Beaver Road",Allington,,ME16 0XR,3587561078,D,B,66,81,House,Semi-Detached,2012-09-12,E07000110,E14000804,Kent,2012-09-13,marketed sale,64,79,182,95.0,4.2,35,2.2,122.0,68.0,627.0,562.0,141.0,80.0,119.0,dual,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,7.0,7.0,19.0,0.0,From main system,Good,Good,"Solid, limited insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, mains gas",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 19% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"45, Beaver Road, Allington",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2012-09-13 14:18:38,owner-occupied,26.0,5.0,200003707070.0,Address Matched +1716762992062020030409393924248800,Flat 39 Guinevere Point,Waterhouse Avenue,,ME14 2FJ,251914678,B,B,86,86,Flat,Mid-Terrace,2020-03-04,E07000110,E14000804,Kent,2020-03-04,new dwelling,91,91,62,62.0,0.8,11,0.8,62.0,62.0,143.0,143.0,70.0,70.0,73.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.17 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Flat 39 Guinevere Point, Waterhouse Avenue",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2020-03-04 09:39:39,unknown,10.0,10.0,10094440147.0,Address Matched +1479765229342018030816070749780838,9 Matthews Avenue,Harrietsham,,ME17 1GJ,4328327478,B,A,85,94,House,Semi-Detached,2018-03-07,E07000110,E14000700,Kent,2018-03-08,new dwelling,86,95,79,18.0,1.7,14,0.4,73.0,73.0,257.0,257.0,101.0,55.0,120.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.27 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.16 W/m-¦K,Good,Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"9 Matthews Avenue, Harrietsham",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2018-03-08 16:07:07,owner-occupied,16.0,16.0,10093303082.0,Address Matched +741470816612012012013413099220290,Far Acre Farm,Goudhurst Road,Marden,TN12 9LT,2054694968,D,D,68,68,Bungalow,Detached,2012-01-20,E07000110,E14000804,Kent,2012-01-20,new dwelling,75,75,161,161.0,4.0,24,4.0,66.0,66.0,837.0,837.0,219.0,219.0,166.67,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,30.0,,From main system,Very Poor,Very Poor,Average thermal transmittance 0.21 W/m?K,Good,Good,Fully double glazed,Good,Good,Average thermal transmittance 0.34 W/m?K,Good,Good,"Room heaters, wood logs",,,Average thermal transmittance 0.16 W/m?K,Good,Good,"Air source heat pump, underfloor, electric",Average,Good,Programmer and at least two room thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",0.0,NO DATA!,,2.26,,,NO DATA!,"Far Acre Farm, Goudhurst Road, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,NO DATA!,2012-01-20 13:41:30,,30.0,30.0,10014307813.0,Address Matched +1223381641012018110306273791289027,Nemorosa,Maidstone Road,Sutton Valence,ME17 3LS,726119278,E,D,41,65,House,Detached,2018-10-29,E07000110,E14000700,Kent,2018-11-03,marketed sale,34,61,414,202.0,7.2,80,3.7,63.0,63.0,1155.0,714.0,246.0,71.0,90.0,Unknown,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,1.0,100.0,0.0,"From main system, no cylinder thermostat",Poor,Poor,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,"Room heaters, coal",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"Nemorosa, Maidstone Road, Sutton Valence",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2018-11-03 06:27:37,owner-occupied,,,200003697184.0,Address Matched +1028043552612013101913031793979215,"47, Orbit Close",,,ME5 9NF,2529235178,D,C,58,77,House,End-Terrace,2013-10-19,E07000110,E14000700,Kent,2013-10-19,marketed sale,50,70,360,196.0,3.5,64,1.9,64.0,35.0,560.0,547.0,140.0,80.0,55.0,dual,N,NODATA!,,,2602.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,1.0,17.0,0.0,"Electric immersion, off-peak",Poor,Very Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,Portable electric heaters (assumed),,,"Roof room(s), limited insulation (assumed)",Good,Good,"Room heaters, electric",Poor,Very Poor,Appliance thermostats,Good,Good,Low energy lighting in 17% of fixed outlets,Poor,Poor,electricity (not community),0.0,NO DATA!,,,0.0,,natural,"47, Orbit Close",Maidstone,Faversham and Mid Kent,CHATHAM,England and Wales: 1983-1990,2013-10-19 13:03:17,owner-occupied,6.0,1.0,200003708091.0,Address Matched +1684836889902018121012564465189608,"8, Covert Way",,,ME16 9FN,2952681678,B,A,85,96,House,Mid-Terrace,2018-12-10,E07000110,E14000804,Kent,2018-12-10,new dwelling,88,99,72,-7.0,1.1,13,-0.1,68.0,68.0,171.0,171.0,85.0,53.0,87.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.18 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"8, Covert Way",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2018-12-10 12:56:44,unknown,20.0,20.0,10093303582.0,Address Matched +805234396232012062216304490268501,Flat 4 Ground Floor Windmill Court,Haste Hill Road,Boughton Monchelsea,ME17 4LP,9140559968,C,C,73,76,Flat,Mid-Terrace,2012-06-22,E07000110,E14000700,Kent,2012-06-22,marketed sale,76,80,182,151.0,1.4,35,1.2,36.0,26.0,279.0,244.0,62.0,63.0,42.0,Single,Y,Ground,N,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,2.0,2.0,60.0,0.0,From main system,Good,Good,"Solid, limited insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 60% of fixed outlets,Good,Good,mains gas (not community),0.0,no corridor,,,0.0,,natural,"Flat 4 Ground Floor Windmill Court, Haste Hill Road, Boughton Monchelsea",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1991-1995,2012-06-22 16:30:44,owner-occupied,5.0,3.0,200003674689.0,Address Matched +1643926699142018062909541850882538,16 Chapelfield Way,Allington,,ME16 9FS,6135098578,B,B,86,87,House,End-Terrace,2018-06-27,E07000110,E14000804,Kent,2018-06-29,new dwelling,86,88,72,60.0,1.6,13,1.3,74.0,74.0,270.0,270.0,99.0,54.0,126.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.20 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.16 W/m-¦K,Good,Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"16 Chapelfield Way, Allington",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2018-06-29 09:54:18,unknown,33.0,33.0,10093306495.0,Address Matched +450195909062010030820271673578500,"The Flat, Crowhurst & Tompsett",High Street,Marden,TN12 9DP,750053768,E,E,40,54,Maisonette,Detached,2010-03-03,E07000110,E14000804,Kent,2010-03-08,rental (private),44,57,367,274.0,11.0,52,8.4,257.0,128.0,1968.0,1522.0,204.0,175.0,219.87,Single,Y,Ground,Y,1.0,2104.0,100.0,"double glazing, unknown install date",Normal,1.0,8.0,7.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, wood logs",,,"Flat, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,unheated corridor,30.87,2.43,0.0,N,natural,"The Flat, Crowhurst & Tompsett, High Street, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1900-1929,2010-03-08 20:27:16,rental (private),,,200003723595.0,Address Matched +1684064209022019090410330961648881,"29, Bower Place",,,ME16 8BG,8665081678,D,B,62,88,House,Mid-Terrace,2019-09-04,E07000110,E14000804,Kent,2019-09-04,rental (private),56,88,263,57.0,3.7,46,0.8,68.0,68.0,668.0,354.0,85.0,57.0,81.0,dual,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"29, Bower Place",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2019-09-04 10:33:09,rental (private),,,200003667330.0,Address Matched +484633814412010051323270999900379,3 Claire House,Lesley Place,Buckland Hill,ME16 0UE,3938495768,C,C,76,78,Flat,Detached,2010-05-13,E07000110,E14000804,Kent,2010-05-13,marketed sale,68,69,428,407.0,1.7,65,1.7,23.0,16.0,152.0,135.0,98.0,98.0,27.1,dual,N,1st,N,5.0,2401.0,100.0,"double glazing, unknown install date",Normal,0.0,1.0,1.0,50.0,0.0,"Electric immersion, off-peak",Average,Poor,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,(another dwelling above),,,Electric storage heaters,Poor,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 50% of fixed outlets,Good,Good,electricity - this is for backwards compatibility only and should not be used,0.0,unheated corridor,6.1,2.3,0.0,N,natural,"3 Claire House, Lesley Place, Buckland Hill",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2010-05-13 23:27:09,owner-occupied,,,200003721284.0,Address Matched +1383512142612015110811571094059643,"15, Galena Close",,,ME5 9NE,6380240478,D,B,66,86,House,Detached,2015-11-06,E07000110,E14000700,Kent,2015-11-08,marketed sale,64,86,222,76.0,3.3,39,1.2,91.0,55.0,620.0,456.0,122.0,71.0,86.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,36.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 36% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"15, Galena Close",Maidstone,Faversham and Mid Kent,CHATHAM,England and Wales: 1983-1990,2015-11-08 11:57:10,owner-occupied,,,200003708747.0,Address Matched +1553352249842017061917124955239118,"3, Cutbush Close",Harrietsham,,ME17 1LY,8850542578,D,C,66,78,House,Semi-Detached,2017-06-19,E07000110,E14000700,Kent,2017-06-19,marketed sale,63,75,214,132.0,3.8,37,2.4,107.0,64.0,674.0,688.0,152.0,85.0,102.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,4.0,4.0,31.0,0.0,From main system,Good,Good,"Solid, limited insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 31% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"3, Cutbush Close, Harrietsham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1996-2002,2017-06-19 17:12:49,owner-occupied,,,10022892561.0,Address Matched +211094750262009022609590756568031,4 Elveys Cottage,High Street,Yalding,ME18 6HY,3588546568,D,C,55,73,House,Mid-Terrace,2009-02-26,E07000110,E14000804,Kent,2009-02-26,rental (private),48,69,369,218.0,4.9,62,2.9,53.0,38.0,555.0,409.0,237.0,99.0,59.32,Single,Y,NO DATA!,,,2102.0,28.0,secondary glazing,Normal,0.0,3.0,3.0,60.0,1.0,"From main system, no cylinderstat",Poor,Average,"Solid, no insulation (assumed)",,,Partial secondary glazing,Poor,Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Roof room(s), insulated",Average,Average,"Boiler and radiators, mains gas",Average,Good,"Programmer, no room thermostat",Very Poor,Very Poor,Low energy lighting in 60% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.22,0.0,N,natural,"4 Elveys Cottage, High Street, Yalding",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2009-02-26 09:59:07,rental (private),,,200003723587.0,Address Matched +148913586952015041712110893950959,"51, Gleaming Wood Drive",,,ME5 8XX,9916631568,D,B,64,87,House,Mid-Terrace,2015-04-17,E07000110,E14000700,Kent,2015-04-17,ECO assessment,59,86,266,76.0,3.4,47,1.0,73.0,47.0,616.0,404.0,101.0,70.0,71.0,Single,Y,NODATA!,,,2107.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,44.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 12 mm loft insulation",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 44% of fixed outlets,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"51, Gleaming Wood Drive",Maidstone,Faversham and Mid Kent,CHATHAM,England and Wales: 1967-1975,2015-04-17 12:11:08,owner-occupied,,,200003673800.0,Address Matched +596379172932011022318062919268306,Elmstone Farm Oast,Elmstone Lane,Grafty Green,ME17 2AJ,7669314868,F,E,32,42,House,Detached,2011-02-22,E07000110,E14000700,Kent,2011-02-23,marketed sale,53,62,228,183.0,6.1,47,5.0,121.0,71.0,1202.0,1016.0,373.0,297.0,172.28,Single,N,NO DATA!,,,2106.0,0.0,not defined,Normal,0.0,5.0,5.0,30.0,0.0,From main system,Very Poor,Average,"Solid, insulated",,,Single glazed,Very Poor,Very Poor,"Sandstone, with internal insulation",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, LPG",Very Poor,Average,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 30% of fixed outlets,Average,Average,LPG - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.2,0.0,N,natural,"Elmstone Farm Oast, Elmstone Lane, Grafty Green",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2011-02-23 18:06:29,owner-occupied,,,, +1660557619242018090709531162080278,"27, Heathfield Road",Penenden Heath,,ME14 2AD,5260110678,C,C,69,78,House,Detached,2018-09-03,E07000110,E14000804,Kent,2018-09-07,marketed sale,66,76,172,119.0,6.4,28,4.3,163.0,105.0,1162.0,1033.0,163.0,126.0,229.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,More Than Typical,2.0,8.0,8.0,44.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,"Room heaters, wood logs",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 44% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"27, Heathfield Road, Penenden Heath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2018-09-07 09:53:11,owner-occupied,,,200003673221.0,Address Matched +924555729022013050318183528478407,"31, Postley Road",,,ME15 6TP,200208078,D,B,65,86,House,Mid-Terrace,2013-05-03,E07000110,E14000804,Kent,2013-05-03,none of the above,63,86,208,65.0,3.4,40,1.1,77.0,48.0,580.0,404.0,85.0,61.0,84.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,5.0,5.0,38.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, mains gas",,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 38% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"31, Postley Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2013-05-03 18:18:35,owner-occupied,8.0,3.0,200003681852.0,Address Matched +1346132579242015072309335437752978,"15, Latter Road",,,ME17 3FD,5292777378,B,A,83,118,House,Semi-Detached,2015-07-23,E07000110,E14000700,Kent,2015-07-23,new dwelling,86,118,90,-137.0,1.2,16,-1.8,54.0,54.0,235.0,235.0,84.0,51.0,79.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"15, Latter Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2015-07-23 09:33:54,unknown,1.0,1.0,10091194031.0,Address Matched +1744670329602019081910593968619118,"4, Millstone Road",Headcorn,,TN27 9DF,2616026678,B,A,85,119,House,Mid-Terrace,2019-08-19,E07000110,E14000700,Kent,2019-08-19,new dwelling,88,120,77,-147.0,1.1,13,-2.0,65.0,65.0,182.0,182.0,76.0,46.0,80.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.16 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"4, Millstone Road, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,NO DATA!,2019-08-19 10:59:39,unknown,20.0,20.0,10093306099.0,Address Matched +7536b5a4d10c188643ff9bee718f5d9abf2398c350f0a6b05ab836212388af95,87 Bramley Crescent,Bearsted,,ME15 8JX,10001610799,D,B,60,82,House,Semi-Detached,2021-08-23,E07000110,E14000700,Kent,2021-08-25,marketed sale,51,78,285,118.0,5.4,50,2.3,89.0,89.0,916.0,573.0,95.0,67.0,108.0,Unknown,Y,,,,,100.0,"double glazing, unknown install date",Normal,1.0,6.0,6.0,92.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 92% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.43,0.0,N,natural,"87 Bramley Crescent, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2021-08-25 06:59:55,Owner-occupied,13.0,,200003688494.0,Energy Assessor +250581720222009032519595279558371,"124, Upper Fant Road",,,ME16 8BU,7737279568,E,D,43,60,House,Mid-Terrace,2009-03-25,E07000110,E14000804,Kent,2009-03-25,rental (private),37,53,408,276.0,9.9,68,6.7,83.0,83.0,1297.0,897.0,194.0,130.0,110.45,Single,Y,NO DATA!,,,2107.0,0.0,INVALID!,Normal,0.0,6.0,6.0,80.0,0.0,From main system,Average,Good,"Solid, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Roof room(s), no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Average,Good,"Programmer, TRVs and bypass",Poor,Poor,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.41,0.0,N,natural,"124, Upper Fant Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2009-03-25 19:59:52,rental (private),,,200003657757.0,Address Matched +745405019022012020215550285928192,"58, Boxley Road",,,ME14 2TW,9840125968,E,D,52,56,House,Semi-Detached,2012-02-02,E07000110,E14000804,Kent,2012-02-02,marketed sale,48,52,334,301.0,4.7,64,4.2,53.0,41.0,792.0,733.0,91.0,81.0,59.17,Single,Y,NODATA!,,,2106.0,90.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,71.0,0.0,From main system,Good,Good,(other premises below),,,Mostly double glazing,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, mains gas",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 71% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,2.4,0.0,,natural,"58, Boxley Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2012-02-02 15:55:02,owner-occupied,7.0,5.0,200003721225.0,Address Matched +1407739509632016012923253807278607,South Surrenden Manor,High Street,Staplehurst,TN12 0BL,707612478,E,C,53,76,House,End-Terrace,2016-01-29,E07000110,E14000804,Kent,2016-01-29,marketed sale,43,68,284,143.0,11.0,50,5.5,161.0,98.0,1970.0,1187.0,190.0,140.0,216.0,Single,Y,NODATA!,,,2107.0,40.0,"double glazing, unknown install date",Normal,0.0,6.0,6.0,33.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Partial double glazing,Poor,Poor,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 33% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"South Surrenden Manor, High Street, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: before 1900,2016-01-29 23:25:38,owner-occupied,,,10022896887.0,Address Matched +7550ff941d928d6cf34663c732c769959805525b4f688fd35df68ec0a0bfbbdb,11 Jeffery Close,Staplehurst,,TN12 0TH,10001329540,D,B,65,86,House,Semi-Detached,2021-08-09,E07000110,E14000804,Kent,2021-08-09,rental,61,84,250,85.0,3.1,44,1.1,87.0,60.0,475.0,383.0,138.0,65.0,71.0,Unknown,Y,,,,,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,56.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 56% of fixed outlets,Good,Good,mains gas (not community),0.0,,,1.0,0.0,N,natural,"11 Jeffery Close, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1967-1975,2021-08-09 15:25:51,Rented (private),9.0,,200003678787.0,Energy Assessor +1738431249922019081516405475258481,"3, Sterns Yard",Yalding,,ME18 6FD,8786475678,B,A,85,96,House,Mid-Terrace,2019-08-15,E07000110,E14000804,Kent,2019-08-15,new dwelling,87,98,75,3.0,1.3,13,0.1,74.0,74.0,204.0,205.0,98.0,54.0,101.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.22 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.12 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"3, Sterns Yard, Yalding",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2019-08-15 16:40:54,unknown,15.0,15.0,10094439984.0,Address Matched +0045a6775a153b798e065ea82480b8d7dafe6d887e300d8819109b08cf8858c8,50 Norrington Road,,,ME15 9XB,10001591885,D,B,60,83,House,Detached,2021-09-08,E07000110,E14000804,Kent,2021-09-08,marketed sale,53,80,281,110.0,4.9,50,2.0,138.0,78.0,779.0,511.0,118.0,78.0,99.0,Single,Y,,,,,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,22.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 25 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 22% of fixed outlets,Poor,Poor,mains gas (not community),0.0,,,2.37,0.0,N,natural,50 Norrington Road,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2021-09-08 18:26:09,Owner-occupied,9.0,,200003675613.0,Energy Assessor +754b55a78192a1fb2aee1047580384ee5c5af32c7bc7bab0009743250912c9e5,74 WRENS CROSS,UPPER STONE STREET,,ME15 6YU,10001593642,C,B,78,88,House,Mid-Terrace,2021-07-08,E07000110,E14000804,Kent,2021-07-08,new dwelling,76,86,134,68.0,2.5,24,1.3,86.0,86.0,400.0,400.0,94.0,63.0,105.0,standard tariff,,,N,,,100.0,,,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.20 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.26 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.12 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.75,,,,"74 WRENS CROSS, UPPER STONE STREET",Maidstone,Maidstone and The Weald,MAIDSTONE,2020,2021-07-08 15:56:08,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,15.0,,10094441008.0,Energy Assessor +1824047392942020090809055574100828,Craigfield,Chart Road,Chart Sutton,ME17 3RB,4931691778,F,C,36,74,House,Detached,2020-09-02,E07000110,E14000700,Kent,2020-09-08,marketed sale,31,66,285,105.0,11.0,76,4.6,109.0,109.0,1527.0,764.0,208.0,86.0,151.0,Unknown,N,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,1.0,7.0,7.0,88.0,0.0,From main system,Poor,Poor,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 270 mm loft insulation",Good,Good,"Boiler and radiators, oil",Poor,Average,Programmer and room thermostat,Average,Average,Low energy lighting in 88% of fixed outlets,Very Good,Very Good,oil (not community),0.0,NO DATA!,,,,N,natural,"Craigfield, Chart Road, Chart Sutton",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2020-09-08 09:05:55,owner-occupied,,,200003694431.0,Address Matched +493761634312010060211125005980772,Flat 6 John Brenchley House,Vinters Road,,ME14 5DH,7230456768,B,B,85,85,Flat,Mid-Terrace,2008-09-17,E07000110,E14000700,Kent,2010-06-02,new dwelling,86,86,141,141.0,1.0,21,1.0,26.0,26.0,120.0,120.0,80.0,80.0,45.07,off-peak 7 hour,,ground floor,,,,,NO DATA!,NO DATA!,,,,,,"Electric immersion, off-peak",Average,Good,Average thermal transmittance 0.17 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.22 W/m?K,Very Good,Very Good,,,,(other premises above),,,"Air source heat pump, underfloor, electric",Average,Very Good,Time and temperature zone control,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",0.0,NO DATA!,,2.5,,,NO DATA!,"Flat 6 John Brenchley House, Vinters Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2010-06-02 11:12:50,,,,10014311075.0,Address Matched +755570b5f89a014f2f24b73831bd63fef11c4ecbdc596a8a25611cd1e9a976fc,547 TONBRIDGE ROAD,,,ME16 9LN,10001610252,D,B,62,86,House,Mid-Terrace,2021-07-23,E07000110,E14000804,Kent,2021-07-24,rental,55,84,264,79.0,4.0,47,1.2,78.0,78.0,666.0,399.0,106.0,66.0,86.0,Single,Y,,,,,100.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,89.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,TRVs and bypass,Average,Average,Low energy lighting in 89% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.47,0.0,N,natural,547 TONBRIDGE ROAD,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2021-07-24 16:43:17,Rented (private),9.0,,200003681738.0,Energy Assessor +1779723272402020012416225168802748,"3, Rhodes Close",Marden,,TN12 9GQ,4460678678,B,A,82,94,House,End-Terrace,2020-01-24,E07000110,E14000804,Kent,2020-01-24,new dwelling,84,96,99,10.0,1.3,17,0.2,61.0,61.0,224.0,224.0,86.0,56.0,77.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.12 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.19 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.1 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"3, Rhodes Close, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,NO DATA!,2020-01-24 16:22:51,owner-occupied,7.0,7.0,10094439910.0,Address Matched +1377629509842015110212205842050128,4 Alexander Court,Mote Park,,ME15 8WY,807000478,B,B,84,84,Flat,Mid-Terrace,2015-11-02,E07000110,E14000700,Kent,2015-11-02,new dwelling,87,87,82,82.0,1.2,14,1.2,57.0,57.0,196.0,196.0,102.0,102.0,81.0,standard tariff,,top floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.23 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.10 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and boiler energy manager",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"4 Alexander Court, Mote Park",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2015-11-02 12:20:58,unknown,8.0,8.0,10091195118.0,Address Matched +7565a715cd7617a0a1b18a944639729b1afe72c933a373334b8fad97eade2e88,10 Willington Green,,,ME15 8AZ,10001351769,C,C,74,74,Flat,End-Terrace,2021-09-07,E07000110,E14000700,Kent,2021-09-07,rental,76,76,203,198.0,1.5,36,1.5,55.0,39.0,274.0,275.0,78.0,78.0,43.0,Single,Y,01,Y,,,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,60.0,0.0,From main system,Good,Good,(another dwelling below),,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 60% of fixed outlets,Good,Good,mains gas (not community),0.0,no corridor,,2.33,0.0,N,natural,10 Willington Green,Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2021-09-07 09:48:04,Rented (social),5.0,,200003684541.0,Energy Assessor +352502667212019070808195696010261,Flat 20 Holmes Court,Lynley Close,,ME15 9GA,2170766668,C,C,78,80,Flat,Mid-Terrace,2019-07-06,E07000110,E14000700,Kent,2019-07-08,rental (private),81,83,136,123.0,1.5,24,1.3,109.0,55.0,189.0,194.0,122.0,122.0,62.0,Unknown,Y,3rd,Y,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,0.0,0.0,From main system,Good,Good,(another dwelling below),NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,unheated corridor,2.18,,,N,natural,"Flat 20 Holmes Court, Lynley Close",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2007 onwards,2019-07-08 08:19:56,rental (private),,,10022895341.0,Address Matched +1384457019962015111214524120428105,Flat 30,Miller House,43-51 Lower Stone Street,ME15 6GB,250150478,B,B,81,81,Flat,NO DATA!,2015-11-12,E07000110,E14000804,Kent,2015-11-12,none of the above,85,85,114,114.0,1.0,20,1.0,35.0,35.0,210.0,210.0,69.0,69.0,50.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Good,Good,Average thermal transmittance 0.54 W/m-¦K,Good,Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Flat 30, Miller House, 43-51 Lower Stone Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2015-11-12 14:52:41,unknown,4.0,4.0,10091196127.0,Address Matched +1535939062712017041311064492930258,"1, Hook Way",,,ME17 3FW,2890221578,B,A,82,95,House,Detached,2017-04-13,E07000110,E14000700,Kent,2017-04-13,new dwelling,84,96,100,13.0,1.5,18,0.2,55.0,55.0,242.0,243.0,99.0,54.0,83.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"1, Hook Way",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2017-04-13 11:06:44,unknown,7.0,7.0,10093303908.0,Address Matched +1068712319802017080810341414832688,"19a, Dover Street",,,ME16 8LF,8884818178,F,B,38,84,House,Enclosed Mid-Terrace,2017-07-28,E07000110,E14000804,Kent,2017-08-08,rental (private),41,80,455,115.0,4.4,77,1.1,45.0,45.0,726.0,405.0,437.0,83.0,58.0,dual,N,NODATA!,,,2401.0,100.0,"double glazing, unknown install date",Normal,1.0,3.0,2.0,100.0,0.0,"Electric immersion, off-peak",Very Poor,Poor,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,Portable electric heaters (assumed),,,"Pitched, 100 mm loft insulation",Average,Average,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,NO DATA!,,,,N,natural,"19a, Dover Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2017-08-08 10:34:14,rental (private),,,200003655545.0,Address Matched +278907140542009050816553162110688,"1, Maxton Close",Bearsted,,ME14 4QD,8521941668,D,C,64,75,House,Detached,2009-05-08,E07000110,E14000700,Kent,2009-05-08,marketed sale,60,71,257,183.0,4.6,43,3.3,103.0,52.0,539.0,421.0,173.0,130.0,107.08,Single,Y,NO DATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,0.0,6.0,6.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Timber frame, as built, insulated (assumed)",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Poor,Poor,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.3,0.0,N,natural,"1, Maxton Close, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2009-05-08 16:55:31,owner-occupied,,,200003688958.0,Address Matched +1726991292602020022515005160402658,"1, Sendles Field",Otham,,ME15 8YR,7645194678,B,A,85,95,House,Semi-Detached,2020-02-25,E07000110,E14000700,Kent,2020-02-25,new dwelling,87,97,79,8.0,1.3,14,0.2,73.0,73.0,233.0,233.0,78.0,47.0,96.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.10 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.19 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"1, Sendles Field, Otham",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2020-02-25 15:00:51,unknown,10.0,10.0,10094440606.0,Address Matched +788908039502012051508433392829408,Fairbourne Manor,Fairbourne Lane,Harrietsham,ME17 1LN,9574638968,F,D,33,64,House,Detached,2012-05-10,E07000110,E14000700,Kent,2012-05-15,marketed sale,25,50,278,145.0,35.0,71,19.0,240.0,130.0,5529.0,3057.0,263.0,193.0,496.0,Single,N,NODATA!,,,2106.0,80.0,secondary glazing,Normal,0.0,11.0,11.0,15.0,3.0,From main system,Average,Poor,"Solid, no insulation (assumed)",,,Mostly secondary glazing,Average,Average,"Granite or whinstone, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, insulated at rafters",Very Poor,Very Poor,"Boiler and radiators, oil",Average,Average,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 15% of fixed outlets,Poor,Poor,oil (not community),0.0,NO DATA!,,,0.0,,natural,"Fairbourne Manor, Fairbourne Lane, Harrietsham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2012-05-15 08:43:33,owner-occupied,59.0,9.0,200003702514.0,Address Matched +758927b836bb42a86be7c7736386f830b793bf01fc920707efd1d3c874a963c2,49 Worcester Road,,,ME15 7LU,10001498677,D,C,66,79,House,Semi-Detached,2021-09-15,E07000110,E14000700,Kent,2021-09-16,marketed sale,61,75,242,147.0,3.5,43,2.2,81.0,81.0,605.0,575.0,80.0,54.0,83.0,Single,Y,,,,,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,81.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"System built, with internal insulation",Good,Good,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 81% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.45,0.0,N,natural,49 Worcester Road,Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2021-09-16 13:42:05,Owner-occupied,16.0,,200003712317.0,Energy Assessor +493485721832010060211150870968406,Flat 8 John Brenchley House,Vinters Road,,ME14 5DH,2630456768,B,B,86,86,Flat,Mid-Terrace,2008-09-17,E07000110,E14000700,Kent,2010-06-02,new dwelling,86,86,137,137.0,0.9,21,0.9,26.0,26.0,113.0,113.0,80.0,80.0,45.07,off-peak 7 hour,,top floor,,,,,NO DATA!,NO DATA!,,,,,,"Electric immersion, off-peak",Average,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.22 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.13 W/m?K,Very Good,Very Good,"Air source heat pump, underfloor, electric",Average,Very Good,Time and temperature zone control,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",0.0,NO DATA!,,2.3,,,NO DATA!,"Flat 8 John Brenchley House, Vinters Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2010-06-02 11:15:08,,,,10014311077.0,Address Matched +767039389302012032821465393622888,"44, Sittingbourne Road",,,ME14 5LP,3319486968,E,E,41,54,House,Detached,2012-03-28,E07000110,E14000804,Kent,2012-03-28,marketed sale,36,47,352,265.0,11.0,68,8.6,104.0,71.0,1804.0,1369.0,192.0,171.0,168.1,Unknown,Y,NODATA!,,,2504.0,95.0,"double glazing, unknown install date",Normal,1.0,4.0,4.0,53.0,0.0,"From main system, no cylinder thermostat",Poor,Poor,"Solid, no insulation (assumed)",,,Mostly double glazing,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Warm air, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 53% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,2.4,0.0,,natural,"44, Sittingbourne Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2012-03-28 21:46:53,owner-occupied,17.0,9.0,200003705611.0,Address Matched +1493140179632016110115054584078893,"14, Orache Drive",Weavering,,ME14 5UG,7314818478,C,B,71,86,House,Mid-Terrace,2016-11-01,E07000110,E14000700,Kent,2016-11-01,marketed sale,70,85,191,81.0,2.5,34,1.1,89.0,50.0,392.0,403.0,139.0,81.0,74.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,23.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 23% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,2.34,,N,natural,"14, Orache Drive, Weavering",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2016-11-01 15:05:45,owner-occupied,,,200003689206.0,Address Matched +377279279222019112816543898438751,"4, Honywood Close",Lenham,,ME17 2BQ,5936738668,C,A,78,92,House,Semi-Detached,2019-11-27,E07000110,E14000700,Kent,2019-11-28,rental (private),82,95,140,22.0,1.2,25,0.2,44.0,44.0,260.0,260.0,43.0,43.0,50.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,2.0,2.0,100.0,0.0,"From main system, plus solar, flue gas heat recovery",Very Good,Very Good,"Suspended, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,Y,natural,"4, Honywood Close, Lenham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2007 onwards,2019-11-28 16:54:38,rental (private),,,10014308655.0,Address Matched +1720897049542019051717223964419158,"31, Snowdon Avenue",,,ME14 5NW,2561944678,E,C,50,79,House,End-Terrace,2019-05-15,E07000110,E14000804,Kent,2019-05-17,marketed sale,45,74,320,130.0,6.5,56,2.7,81.0,81.0,1209.0,653.0,154.0,74.0,115.0,Unknown,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,7.0,6.0,93.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,Portable electric heaters (assumed),,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 93% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"31, Snowdon Avenue",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2019-05-17 17:22:39,owner-occupied,,,200003705777.0,Address Matched +1248990846132019062418192325278003,Parsley Cottage,Lested Lane,Chart Sutton,ME17 3RZ,4385090378,D,C,62,74,House,Semi-Detached,2019-06-21,E07000110,E14000700,Kent,2019-06-24,marketed sale,63,75,223,149.0,5.8,33,3.8,93.0,93.0,1263.0,1067.0,128.0,83.0,176.0,Unknown,Y,NODATA!,,,2106.0,50.0,double glazing installed before 2002,Normal,1.0,8.0,8.0,100.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Partial double glazing,Poor,Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, insulated at rafters",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"Parsley Cottage, Lested Lane, Chart Sutton",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2019-06-24 18:19:23,owner-occupied,,,200003690396.0,Address Matched +448542287532015031607162094968307,"307, Tonbridge Road",,,ME16 8ND,8724333768,F,C,36,78,House,Mid-Terrace,2015-03-14,E07000110,E14000804,Kent,2015-03-16,marketed sale,30,73,483,135.0,7.2,85,2.0,62.0,62.0,1275.0,591.0,192.0,73.0,84.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,83.0,1.0,From main system,Average,Average,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, mains gas",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 83% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"307, Tonbridge Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2015-03-16 07:16:20,owner-occupied,,,200003657505.0,Address Matched +860331839262012112615125423768442,"8, Bramley Gardens",Coxheath,,ME17 4TX,4279343078,D,C,65,73,House,Detached,2012-11-26,E07000110,E14000804,Kent,2012-11-26,marketed sale,61,68,183,140.0,5.3,35,4.1,131.0,70.0,791.0,803.0,151.0,151.0,150.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,7.0,7.0,13.0,1.0,"From main system, no cylinder thermostat",Average,Average,"Solid, limited insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, mains gas",,,"Roof room(s), insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 13% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"8, Bramley Gardens, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2012-11-26 15:12:54,owner-occupied,15.0,2.0,200003715372.0,Address Matched +486338819022019060115000916798861,"25, Elmstone Lane",,,ME16 9LL,6109106768,C,B,78,88,House,Semi-Detached,2019-06-01,E07000110,E14000804,Kent,2019-06-01,marketed sale,77,86,122,60.0,2.5,21,1.3,80.0,80.0,392.0,394.0,117.0,74.0,116.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"25, Elmstone Lane",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2019-06-01 15:00:09,owner-occupied,,,10014311942.0,Address Matched +411550470842009121211320376019798,"23, Station Road",Headcorn,,TN27 9SB,4828770768,F,E,36,53,House,Semi-Detached,2009-12-11,E07000110,E14000700,Kent,2009-12-12,marketed sale,28,43,427,301.0,9.3,93,6.5,96.0,55.0,1159.0,825.0,230.0,163.0,99.69,dual,N,NO DATA!,,,2106.0,95.0,double glazing installed before 2002,More Than Typical,2.0,4.0,4.0,25.0,0.0,From main system,Average,Poor,"Suspended, no insulation (assumed)",,,Mostly double glazing,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, oil",Average,Poor,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 25% of fixed outlets,Average,Average,oil - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.52,0.0,N,natural,"23, Station Road, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,England and Wales: before 1900,2009-12-12 11:32:03,owner-occupied,,,200003698816.0,Address Matched +598260710712012070220522593020685,Flat 4 Walshaw House,Quarry Square,,ME14 2UW,6505034868,C,B,69,81,Flat,Mid-Terrace,2012-07-02,E07000110,E14000804,Kent,2012-07-02,rental (social),70,84,182,98.0,2.3,35,1.2,78.0,39.0,361.0,226.0,99.0,79.0,66.0,Single,Y,Ground,N,,2107.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,no corridor,,,0.0,,natural,"Flat 4 Walshaw House, Quarry Square",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2012-07-02 20:52:25,rental (social),7.0,0.0,200003704358.0,Address Matched +1535322269922017041110203711698053,Cuthbert House,East Street,Harrietsham,ME17 1HJ,5197611578,B,A,85,93,House,Detached,2017-04-11,E07000110,E14000700,Kent,2017-04-11,new dwelling,85,93,80,32.0,2.1,14,0.9,79.0,79.0,358.0,359.0,107.0,57.0,152.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.16 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.21 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Cuthbert House, East Street, Harrietsham",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2017-04-11 10:20:37,unknown,15.0,15.0,10093305078.0,Address Matched +1598525069102018010816444057580488,"24, Halstead Walk",,,ME16 0PN,1174765578,D,B,61,81,House,End-Terrace,2018-01-08,E07000110,E14000804,Kent,2018-01-08,rental (private),56,78,302,128.0,3.2,53,1.4,76.0,43.0,556.0,460.0,82.0,54.0,59.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,25.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 25% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"24, Halstead Walk",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2018-01-08 16:44:40,rental (private),,,200003723300.0,Address Matched +1816176619252020080618464723000973,Upper Little Boy Court,Boy Court Lane,Headcorn,TN27 9LA,9359931778,E,B,40,86,House,Detached,2020-08-06,E07000110,E14000700,Kent,2020-08-06,marketed sale,35,76,260,34.0,9.3,68,2.7,140.0,92.0,1195.0,757.0,205.0,95.0,136.0,Single,N,NODATA!,,,2106.0,0.0,not defined,Normal,2.0,6.0,6.0,45.0,0.0,"From main system, no cylinder thermostat",Poor,Poor,"Solid, no insulation (assumed)",NO DATA!,,Single glazed,Very Poor,Very Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, oil",Average,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 45% of fixed outlets,Good,Good,oil (not community),0.0,NO DATA!,,,,N,natural,"Upper Little Boy Court, Boy Court Lane, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,England and Wales: before 1900,2020-08-06 18:46:47,owner-occupied,,,200003701066.0,Address Matched +373176389812009093010392700210262,"1, Chantry Road",Marden,,TN12 9HT,2286908668,D,C,65,76,House,Semi-Detached,2009-09-29,E07000110,E14000804,Kent,2009-09-30,rental (private),61,73,271,188.0,3.8,45,2.6,77.0,42.0,531.0,403.0,125.0,94.0,83.24,Single,Y,NO DATA!,,,2102.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,15.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,Low energy lighting in 15% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.28,0.0,N,natural,"1, Chantry Road, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1950-1966,2009-09-30 10:39:27,rental (private),,,200003708439.0,Address Matched +1511065156652017011316444194930449,"35, Wrangleden Road",,,ME15 9LJ,4945649478,D,B,68,88,Bungalow,Semi-Detached,2017-01-13,E07000110,E14000700,Kent,2017-01-13,marketed sale,68,88,244,74.0,2.3,43,0.7,62.0,42.0,379.0,341.0,125.0,73.0,53.0,dual,Y,NODATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,50.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 270 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"35, Wrangleden Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2017-01-13 16:44:41,owner-occupied,,,200003682489.0,Address Matched +1063268902732013121922411174978596,Flat 3,"34, Ashford Road",,ME14 5BH,644587178,C,B,75,81,Flat,Semi-Detached,2013-12-19,E07000110,E14000804,Kent,2013-12-19,marketed sale,78,85,148,98.0,1.6,28,1.1,60.0,36.0,296.0,213.0,80.0,82.0,56.0,Single,Y,1st,N,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,33.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 33% of fixed outlets,Average,Average,mains gas (not community),0.0,no corridor,,,0.0,,natural,"Flat 3, 34, Ashford Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2013-12-19 22:41:11,owner-occupied,12.0,4.0,200003687332.0,Address Matched +75e55dbf9413bff3b8875d25fb17200ac2f9b0ebf01db7336d0959266a0e4286,1 SOUTH VIEW VILLAS,HOWLAND ROAD,MARDEN,TN12 9HE,9748579478,E,C,42,79,House,Semi-Detached,2021-07-13,E07000110,E14000804,Kent,2021-07-13,marketed sale,36,75,392,120.0,7.6,72,2.4,111.0,81.0,1210.0,621.0,208.0,71.0,106.0,Single,Y,,,,,67.0,"double glazing, unknown install date",Normal,3.0,4.0,4.0,63.0,0.0,"From main system, no cylinder thermostat",Average,Average,"Solid, no insulation (assumed)",,,Partial double glazing,Poor,Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 63% of fixed outlets,Good,Good,mains gas (not community),0.0,,,2.3,0.0,N,natural,"1 SOUTH VIEW VILLAS, HOWLAND ROAD, MARDEN",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1900-1929,2021-07-13 22:10:24,Owner-occupied,8.0,,200003710752.0,Energy Assessor +278729199022013110812541831238767,5 Orchard Cottages,Hampstead Lane,Nettlestead,ME18 5HN,6327941668,C,B,70,90,House,Semi-Detached,2013-11-07,E07000110,E14000804,Kent,2013-11-08,non marketed sale,71,91,175,37.0,2.3,33,0.6,87.0,46.0,412.0,386.0,84.0,61.0,69.0,dual,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,10.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 10% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"5 Orchard Cottages, Hampstead Lane, Nettlestead",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2013-11-08 12:54:18,rental (social),10.0,1.0,200003656685.0,Address Matched +1558368429922017071115132512198003,The Beeches,Court Lodge Road,Harrietsham,ME17 1AT,121282578,E,A,51,99,Bungalow,Semi-Detached,2017-07-11,E07000110,E14000700,Kent,2017-07-11,marketed sale,49,95,247,-26.0,5.1,54,0.2,92.0,61.0,667.0,425.0,139.0,76.0,94.0,Single,N,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,50.0,1.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, wood logs",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, oil",Average,Average,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,oil (not community),0.0,NO DATA!,,,,N,natural,"The Beeches, Court Lodge Road, Harrietsham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2017-07-11 15:13:25,owner-occupied,,,10014309065.0,Address Matched +1508004036312017101311310892939343,Apartment 14 Kings Lodge,"71, King Street",,ME14 1BG,3356629478,B,B,84,84,Flat,Enclosed Mid-Terrace,2017-10-13,E07000110,E14000804,Kent,2017-10-13,new dwelling,93,93,53,53.0,0.6,9,0.6,49.0,49.0,146.0,146.0,106.0,106.0,68.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,Community scheme,Good,Very Good,Average thermal transmittance 0.25 W/m-¦K,Good,Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,Community scheme,Good,Very Good,"Charging system linked to use of community heating, programmer and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,NO DATA!,,NO DATA!,,,,,NO DATA!,"Apartment 14 Kings Lodge, 71, King Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2017-10-13 11:31:08,owner-occupied,5.0,5.0,10093302746.0,Address Matched +259041454132009040611225976068805,"4, Kingsland Grove",Headcorn,,TN27 9SP,5516800668,D,C,57,71,House,Detached,2009-04-06,E07000110,E14000700,Kent,2009-04-06,marketed sale,51,66,333,224.0,5.1,56,3.4,66.0,44.0,703.0,471.0,110.0,110.0,92.07,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,50.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.42,0.0,N,natural,"4, Kingsland Grove, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,England and Wales: 1967-1975,2009-04-06 11:22:59,owner-occupied,,,200003698836.0,Address Matched +1028709934412013102108123493979416,"8, Sandlewood Court",,,ME16 0ZG,4698435178,C,C,80,80,Flat,Semi-Detached,2013-10-18,E07000110,E14000804,Kent,2013-10-21,marketed sale,84,84,102,102.0,1.2,19,1.2,49.0,49.0,237.0,237.0,74.0,74.0,61.0,Unknown,Y,2nd,Y,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,83.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Timber frame, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 83% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,heated corridor,,,0.0,,natural,"8, Sandlewood Court",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2013-10-21 08:12:34,owner-occupied,6.0,5.0,10014306171.0,Address Matched +596930671652011101015354892999684,"52, Queens Road",,,ME16 0LJ,6449124868,E,D,54,56,House,Mid-Terrace,2011-10-10,E07000110,E14000804,Kent,2011-10-10,rental (social),50,51,294,288.0,5.3,57,5.2,79.0,48.0,863.0,867.0,106.0,106.0,46.99,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,38.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"System built, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Roof room(s), no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 38% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,2.41,0.0,,natural,"52, Queens Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2011-10-10 15:35:48,rental (social),8.0,3.0,200003691859.0,Address Matched +1636471695812018053114595893780757,Windy Post,Church Street,Teston,ME18 5AG,7778538578,C,B,75,88,Bungalow,Detached,2018-05-30,E07000110,E14000804,Kent,2018-05-31,marketed sale,76,88,160,65.0,2.1,28,0.9,67.0,67.0,341.0,341.0,98.0,65.0,73.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,80.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"Windy Post, Church Street, Teston",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2018-05-31 14:59:58,owner-occupied,,,200003661871.0,Address Matched +750360229712012022121151595220195,"3, Bodsham Crescent",Bearsted,,ME15 8NL,1554955968,D,D,68,68,House,Semi-Detached,2012-02-21,E07000110,E14000700,Kent,2012-02-21,marketed sale,70,70,215,212.0,2.2,41,2.2,41.0,32.0,393.0,395.0,100.0,100.0,54.8,Single,Y,NODATA!,,,2106.0,100.0,secondary glazing,Normal,0.0,4.0,4.0,71.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Full secondary glazing,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 71% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,2.3,0.0,,natural,"3, Bodsham Crescent, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2012-02-21 21:15:15,owner-occupied,7.0,5.0,200003693024.0,Address Matched +1206955246952014091720431899940621,"4, Forge Lane",Headcorn,,TN27 9QQ,6181697278,C,B,70,86,Bungalow,Semi-Detached,2014-09-17,E07000110,E14000700,Kent,2014-09-17,FiT application,56,77,156,62.0,3.9,42,1.9,62.0,62.0,999.0,696.0,283.0,141.0,94.0,dual,N,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,5.0,5.0,100.0,0.0,"Electric immersion, off-peak",Very Poor,Very Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, oil",Average,Average,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,oil (not community),0.0,NO DATA!,,,,,natural,"4, Forge Lane, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,England and Wales: 1967-1975,2014-09-17 20:43:18,owner-occupied,8.0,8.0,200003698701.0,Address Matched +1752231679102019091911175961619018,"21, Reynolds Avenue",,,ME17 3GW,1129576678,B,A,84,97,House,Mid-Terrace,2019-09-19,E07000110,E14000700,Kent,2019-09-19,new dwelling,87,100,83,-9.0,1.1,15,-0.1,61.0,61.0,187.0,187.0,70.0,41.0,74.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"21, Reynolds Avenue",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2019-09-19 11:17:59,unknown,8.0,8.0,10094441772.0,Address Matched +1127870934252014041709300593940728,5 Tom Tree Cottages,Grigg Lane,Headcorn,TN27 9TL,7811432278,C,A,78,92,House,Mid-Terrace,2014-04-16,E07000110,E14000700,Kent,2014-04-17,marketed sale,82,95,111,15.0,1.6,21,0.3,98.0,49.0,268.0,275.0,86.0,58.0,74.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,0.0,0.0,From main system,Good,Good,"Suspended, insulated (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"5 Tom Tree Cottages, Grigg Lane, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,England and Wales: 2003-2006,2014-04-17 09:30:05,owner-occupied,10.0,0.0,10014307602.0,Address Matched +187145247652018122415592195289550,"87, Douglas Road",,,ME16 8ER,5021754568,D,B,65,85,House,Semi-Detached,2018-12-24,E07000110,E14000804,Kent,2018-12-24,marketed sale,61,84,252,87.0,3.1,44,1.1,50.0,50.0,493.0,393.0,152.0,67.0,70.0,Single,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,1.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"87, Douglas Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2018-12-24 15:59:21,owner-occupied,,,200003669213.0,Address Matched +527244562232012121114200961968291,"98, Ashford Road",Bearsted,,ME14 4LT,6121298768,D,C,65,77,House,Detached,2012-12-10,E07000110,E14000700,Kent,2012-12-11,marketed sale,59,73,183,113.0,6.2,35,3.9,124.0,74.0,980.0,805.0,135.0,118.0,178.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,7.0,7.0,33.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 33% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"98, Ashford Road, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2012-12-11 14:20:09,owner-occupied,12.0,4.0,200003692445.0,Address Matched +1027415897752014091710551592940118,Flat 2,14 Tonbridge Road,,ME16 8RP,1889725178,D,C,68,79,Flat,Semi-Detached,2014-09-16,E07000110,E14000804,Kent,2014-09-17,rental (private),68,82,191,107.0,2.6,37,1.5,97.0,48.0,479.0,288.0,111.0,98.0,72.0,Single,Y,1st,N,,2102.0,100.0,"double glazing, unknown install date",Normal,1.0,3.0,3.0,0.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,unheated corridor,8.1,,0.0,,natural,"Flat 2, 14 Tonbridge Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2014-09-17 10:55:15,rental (private),6.0,0.0,10014310790.0,Address Matched +1028516079962013102115315225808027,"22, Cobtree Road",Coxheath,,ME17 4QW,2238735178,C,B,71,86,Bungalow,Detached,2013-10-10,E07000110,E14000804,Kent,2013-10-21,FiT application,71,87,172,61.0,2.4,33,0.9,43.0,43.0,447.0,385.0,87.0,61.0,72.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"22, Cobtree Road, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2013-10-21 15:31:52,owner-occupied,10.0,10.0,200003721794.0,Address Matched +1479212019942017052415583342732148,Flat 2,2 Southfields Way,Harrietsham,ME17 1GE,8985917478,B,B,83,83,Flat,Enclosed End-Terrace,2017-05-24,E07000110,E14000700,Kent,2017-05-24,new dwelling,87,87,96,96.0,1.0,17,1.0,45.0,45.0,189.0,189.0,76.0,76.0,61.0,standard tariff,,ground floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.26 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Flat 2, 2 Southfields Way, Harrietsham",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2017-05-24 15:58:33,owner-occupied,11.0,11.0,10093303166.0,Address Matched +563005989022010110921191511518250,74 Mandeville Court,Union Street,,ME14 1JY,5187841868,C,C,70,73,Flat,Enclosed Mid-Terrace,2010-11-09,E07000110,E14000804,Kent,2010-11-09,marketed sale,73,74,283,264.0,1.8,43,1.6,51.0,25.0,147.0,156.0,206.0,185.0,41.46,dual,N,2nd,Y,3.0,2401.0,100.0,double glazing installed before 2002,Normal,0.0,2.0,2.0,0.0,0.0,"Electric immersion, off-peak",Very Poor,Poor,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, 250 mm loft insulation",Good,Good,Electric storage heaters,Poor,Poor,Manual charge control,Poor,Poor,No low energy lighting,Very Poor,Very Poor,electricity - this is for backwards compatibility only and should not be used,0.0,heated corridor,,2.37,0.0,N,natural,"74 Mandeville Court, Union Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1976-1982,2010-11-09 21:19:15,owner-occupied,,,200003700751.0,Address Matched +650370758812011070610303991090780,"10, Higham Close",,,ME15 6RA,7039818868,D,C,62,72,House,End-Terrace,2011-07-05,E07000110,E14000804,Kent,2011-07-06,marketed sale,59,71,239,168.0,4.1,46,2.9,77.0,47.0,637.0,465.0,129.0,113.0,74.31,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,1.0,6.0,6.0,36.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 36% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,2.4,0.0,,natural,"10, Higham Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2011-07-06 10:30:39,owner-occupied,11.0,4.0,200003664613.0,Address Matched +788820728112012051519020793920890,"9, Doddington Court",,,ME16 0SE,8068838968,D,B,60,90,House,End-Terrace,2012-05-15,E07000110,E14000804,Kent,2012-05-15,rental (private),58,92,280,33.0,2.9,54,0.4,64.0,32.0,389.0,277.0,183.0,59.0,54.0,Single,Y,NODATA!,,,2106.0,50.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,0.0,0.0,"From main system, no cylinder thermostat",Poor,Poor,"Solid, no insulation (assumed)",,,Partial double glazing,Poor,Poor,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"9, Doddington Court",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1976-1982,2012-05-15 19:02:07,rental (private),10.0,0.0,200003670127.0,Address Matched +1276278846952015020318564898050431,"40, Bell Road",,,ME15 9EN,4191682378,D,B,68,88,Bungalow,Semi-Detached,2015-02-02,E07000110,E14000700,Kent,2015-02-03,rental (social),68,88,261,74.0,2.1,46,0.6,38.0,38.0,375.0,336.0,122.0,70.0,46.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,80.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"40, Bell Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2015-02-03 18:56:48,rental (social),,,200003681454.0,Address Matched +7656d665929691fa930fce335dad988be24da7adbff0eea056cf416d0aee351f,80 Essex Road,,,ME15 7QN,10001651096,D,C,62,77,House,Mid-Terrace,2021-09-20,E07000110,E14000700,Kent,2021-09-23,marketed sale,56,72,265,158.0,4.5,47,2.7,110.0,76.0,746.0,658.0,97.0,67.0,97.0,Unknown,Y,,,,,100.0,double glazing installed before 2002,Normal,1.0,5.0,5.0,56.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 56% of fixed outlets,Good,Good,mains gas (not community),0.0,,,2.27,0.0,N,natural,80 Essex Road,Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2021-09-23 20:36:00,Rented (private),9.0,,200003680489.0,Energy Assessor +1026969441112014061615314592940611,"20, Fountain Lane",,,ME16 9AR,6167125178,D,B,61,83,House,Semi-Detached,2014-06-16,E07000110,E14000804,Kent,2014-06-16,marketed sale,58,83,236,80.0,3.7,45,1.3,98.0,49.0,672.0,470.0,95.0,67.0,81.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,0.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"20, Fountain Lane",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2014-06-16 15:31:45,owner-occupied,12.0,0.0,200003676094.0,Address Matched +1573976301332017091206271983978101,"69, Heath Road",Coxheath,,ME17 4EH,193193578,D,C,66,77,House,Semi-Detached,2017-09-11,E07000110,E14000804,Kent,2017-09-12,marketed sale,54,66,215,141.0,5.5,45,3.9,91.0,73.0,811.0,772.0,143.0,85.0,123.0,Unknown,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,6.0,6.0,75.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, coal",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"69, Heath Road, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2017-09-12 06:27:19,owner-occupied,,,200003715107.0,Address Matched +1081102609502015010722211918950838,"87, York Road",,,ME15 7QU,6515509178,E,C,42,78,House,Mid-Terrace,2015-01-07,E07000110,E14000700,Kent,2015-01-07,ECO assessment,37,72,384,145.0,8.6,67,3.3,122.0,70.0,1634.0,826.0,154.0,75.0,127.0,Single,Y,NODATA!,,,2111.0,100.0,double glazing installed before 2002,Normal,1.0,6.0,1.0,27.0,0.0,From main system,Average,Average,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,Portable electric heaters (assumed),,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,TRVs and bypass,Average,Average,Low energy lighting in 27% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"87, York Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2015-01-07 22:21:19,rental (private),,,200003715712.0,Address Matched +1396539749962015121517042861348575,The Milliners Oxley Mews,Eyhorne Street,Hollingbourne,ME17 1TR,7663431478,E,B,50,86,House,Semi-Detached,2015-12-14,E07000110,E14000700,Kent,2015-12-15,marketed sale,44,85,409,84.0,4.7,72,1.0,82.0,44.0,844.0,395.0,133.0,78.0,65.0,Single,Y,NODATA!,,,2106.0,0.0,not defined,Normal,0.0,2.0,2.0,13.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Single glazed,Very Poor,Very Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 13% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"The Milliners Oxley Mews, Eyhorne Street, Hollingbourne",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2015-12-15 17:04:28,owner-occupied,,,200003700581.0,Address Matched +1667737719222018102916553560018238,Flat 114,Brenchley House,123-135 Week Street,ME14 1FY,3696160678,C,C,74,74,Flat,End-Terrace,2018-10-29,E07000110,E14000700,Kent,2018-10-29,new dwelling,79,79,192,192.0,1.1,34,1.1,28.0,28.0,201.0,201.0,96.0,96.0,34.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,Community scheme,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.30 W/m-¦K,Good,Good,,,,(other premises above),,,Community scheme,Good,Good,"Charging system linked to use of community heating, programmer and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,NO DATA!,,NO DATA!,,,,,NO DATA!,"Flat 114, Brenchley House, 123-135 Week Street",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2018-10-29 16:55:35,unknown,6.0,6.0,10094440790.0,Address Matched +586411159262011013015354983718619,Beech Court,Lested Lane,Chart Sutton,ME17 3RZ,1812533868,D,C,58,70,Bungalow,Detached,2011-01-29,E07000110,E14000700,Kent,2011-01-30,marketed sale,53,65,305,225.0,5.4,51,4.0,116.0,58.0,768.0,633.0,194.0,128.0,105.18,Single,Y,NO DATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,7.0,7.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.38,0.0,N,natural,"Beech Court, Lested Lane, Chart Sutton",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2011-01-30 15:35:49,owner-occupied,,,200003690384.0,Address Matched +379116850742009101015035463810118,"14, Basing Close",,,ME15 7UZ,6711258668,C,C,72,73,Flat,Semi-Detached,2009-10-09,E07000110,E14000804,Kent,2009-10-10,rental (private),71,72,253,244.0,2.0,42,1.9,51.0,25.0,336.0,342.0,79.0,79.0,47.86,Unknown,Y,Ground,N,3.0,2104.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Poor,Poor,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,unheated corridor,0.88,2.35,0.0,N,natural,"14, Basing Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2009-10-10 15:03:54,rental (private),,,200003696100.0,Address Matched +866793922452012121818402099929004,"36, Church Street",Tovil,,ME15 6RB,433293078,D,B,65,83,House,Detached,2012-12-14,E07000110,E14000804,Kent,2012-12-18,marketed sale,62,82,203,84.0,3.6,39,1.5,81.0,51.0,590.0,469.0,100.0,62.0,92.0,Single,Y,NODATA!,,,2107.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,42.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 42% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"36, Church Street, Tovil",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1991-1995,2012-12-18 18:40:20,owner-occupied,12.0,5.0,200003666369.0,Address Matched +596901860212018062520342492280589,"6, Cranham Square",Marden,,TN12 9TG,5991024868,C,B,70,85,House,End-Terrace,2018-06-25,E07000110,E14000804,Kent,2018-06-25,rental (social),67,83,200,85.0,3.1,35,1.3,81.0,60.0,495.0,418.0,125.0,80.0,87.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,64.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 64% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"6, Cranham Square, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1967-1975,2018-06-25 20:34:24,rental (social),,,200003710705.0,Address Matched +1330242269442015060914482334650818,"2, Adisham Drive",,,ME16 0NL,441766378,D,C,56,74,House,Detached,2015-06-09,E07000110,E14000804,Kent,2015-06-09,marketed sale,48,68,293,165.0,5.4,52,3.1,107.0,62.0,919.0,776.0,164.0,85.0,104.0,Single,Y,NODATA!,,,2106.0,95.0,double glazing installed before 2002,Normal,1.0,6.0,6.0,29.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Mostly double glazing,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 25 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 29% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"2, Adisham Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2015-06-09 14:48:23,owner-occupied,,,200003659870.0,Address Matched +151938302412009051915193107010554,"3, Westmorland Road",,,ME15 8BE,5490271568,C,C,75,77,House,Mid-Terrace,2009-01-09,E07000110,E14000700,Kent,2009-05-19,rental (social),72,73,201,193.0,2.4,33,2.4,61.0,35.0,312.0,316.0,113.0,113.0,73.18,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,25.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 25% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.41,0.0,N,natural,"3, Westmorland Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2009-05-19 15:19:31,rental (social),,,200003684593.0,Address Matched +809470513232012070410275185068505,7 Astley Terrace,Hastings Road,,ME15 7BF,1545589968,B,B,83,83,House,Mid-Terrace,2012-07-04,E07000110,E14000700,Kent,2012-07-04,new dwelling,86,86,86,86.0,1.2,16,1.2,42.0,42.0,220.0,220.0,79.0,79.0,75.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,12.0,,From main system,Good,Good,Average thermal transmittance 0.12 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.37,,,NO DATA!,"7 Astley Terrace, Hastings Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2012-07-04 10:27:51,,12.0,12.0,10014313959.0,Address Matched +1521050819242017022020275756039938,"2, Kings Walk",Holland Road,,ME14 1GQ,8208610578,C,B,75,86,House,Semi-Detached,2017-02-17,E07000110,E14000804,Kent,2017-02-20,marketed sale,72,84,143,74.0,3.4,25,1.8,79.0,79.0,575.0,521.0,147.0,80.0,135.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,6.0,6.0,100.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"2, Kings Walk, Holland Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2017-02-20 20:27:57,owner-occupied,,,200003655110.0,Address Matched +296259179202019112219264465212728,"200, Tonbridge Road",,,ME16 8SR,5258372668,D,B,62,86,House,Mid-Terrace,2019-11-22,E07000110,E14000804,Kent,2019-11-22,marketed sale,54,84,276,75.0,4.0,48,1.1,95.0,70.0,669.0,382.0,102.0,75.0,83.0,dual,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,3.0,5.0,5.0,64.0,0.0,From main system,Very Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Sandstone or limestone, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 64% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"200, Tonbridge Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2019-11-22 19:26:44,owner-occupied,,,200003657536.0,Address Matched +1344057270852015071610393096950835,"102, Forest Hill",,,ME15 6SP,8599067378,E,B,54,91,House,Semi-Detached,2015-07-15,E07000110,E14000804,Kent,2015-07-16,marketed sale,48,91,379,45.0,4.1,67,0.5,72.0,42.0,635.0,310.0,231.0,68.0,62.0,Single,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,29.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 29% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"102, Forest Hill",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2015-07-16 10:39:30,owner-occupied,,,200003664794.0,Address Matched +1083811077332017030317434030078404,"21, Birchington Close",,,ME14 5PF,7400429178,C,C,74,76,Maisonette,Mid-Terrace,2017-03-03,E07000110,E14000804,Kent,2017-03-03,marketed sale,74,77,185,162.0,1.9,33,1.6,41.0,41.0,349.0,302.0,88.0,88.0,57.0,Single,Y,Ground,N,,2107.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,no corridor,,,,N,natural,"21, Birchington Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2017-03-03 17:43:40,owner-occupied,,,200003716847.0,Address Matched +322970145312009070811020905010668,Flat Hollingbourne Manor,Manor Lane,Hollingbourne,ME17 1UN,6897554668,F,E,29,51,Maisonette,Detached,2009-07-08,E07000110,E14000700,Kent,2009-07-08,rental (private),35,55,544,340.0,8.6,77,5.3,81.0,58.0,1525.0,959.0,141.0,120.0,110.5,Single,Y,1st,Y,2.0,2104.0,0.0,single glazing,Normal,0.0,3.0,3.0,62.0,1.0,From main system,Good,Good,(other premises below),,,Single glazed,Very Poor,Very Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, no insulation",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Poor,Poor,Low energy lighting in 62% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.45,0.0,N,natural,"Flat Hollingbourne Manor, Manor Lane, Hollingbourne",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2009-07-08 11:02:09,rental (private),,,10091196843.0,Address Matched +475609860952010042615230693200172,"5, Silver Tree Close",,,ME5 9ST,1232035768,D,C,61,74,House,Mid-Terrace,2010-04-26,E07000110,E14000700,Kent,2010-04-26,marketed sale,57,72,334,221.0,3.4,55,2.2,62.0,31.0,483.0,363.0,146.0,104.0,60.6,Single,Y,NO DATA!,,,2104.0,0.0,not defined,Normal,0.0,3.0,3.0,0.0,0.0,From main system,Average,Good,"Solid, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Average,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.3,0.0,N,"mechanical, extract only","5, Silver Tree Close",Maidstone,Faversham and Mid Kent,CHATHAM,England and Wales: 1983-1990,2010-04-26 15:23:06,owner-occupied,,,200003709205.0,Address Matched +1004675779022013091018172233218827,Flat 4,53a High Street,,ME14 1SY,2350763178,D,C,56,79,Flat,Semi-Detached,2013-09-09,E07000110,E14000804,Kent,2013-09-10,rental (private),48,66,382,241.0,3.6,68,2.3,69.0,37.0,570.0,208.0,138.0,93.0,54.0,dual,N,3rd,Y,,2603.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,0.0,0.0,"Electric immersion, off-peak",Average,Very Poor,(other premises below),,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Room heaters, electric",Poor,Very Poor,Programmer and appliance thermostats,Good,Good,No low energy lighting,Very Poor,Very Poor,electricity (not community),0.0,unheated corridor,11.98,,0.0,,natural,"Flat 4, 53a High Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2013-09-10 18:17:22,rental (private),7.0,0.0,10014315325.0,Address Matched +660489368932011080519155741068809,"67, Longham Copse",Downswood,,ME15 8TL,6901888868,C,C,69,73,House,Semi-Detached,2011-08-05,E07000110,E14000700,Kent,2011-08-05,marketed sale,68,73,190,159.0,3.2,36,2.7,90.0,47.0,470.0,433.0,134.0,113.0,88.1,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,4.0,4.0,8.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Timber frame, as built, insulated (assumed)",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 8% of fixed outlets,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,2.4,0.0,,natural,"67, Longham Copse, Downswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1976-1982,2011-08-05 19:15:57,owner-occupied,12.0,1.0,200003686491.0,Address Matched +80300752312016090121211894260448,"7, Bellgrove Court",,,ME5 9PQ,4889245468,E,B,54,85,House,Detached,2016-08-26,E07000110,E14000700,Kent,2016-09-01,ECO assessment,46,83,316,86.0,6.1,56,1.7,134.0,67.0,994.0,510.0,221.0,79.0,109.0,Single,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,2.34,,N,natural,"7, Bellgrove Court",Maidstone,Faversham and Mid Kent,CHATHAM,England and Wales: 1983-1990,2016-09-01 21:21:18,owner-occupied,,,200003708156.0,Address Matched +76a36ef17ef7c5be7db4c96702982ffc650aac606f5600d5533f13b4ba3cc656,"Flat 18 Adeline Heights, Rosalind Drive",,,ME14 2FP,10001636235,B,B,85,85,Flat,End-Terrace,2021-07-06,E07000110,E14000804,Kent,2021-07-06,new dwelling,89,89,71,71.0,1.0,12,1.0,65.0,65.0,173.0,173.0,72.0,72.0,79.0,standard tariff,,2,N,,,100.0,,,,,,100.0,0.0,From main system,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.43 W/m-¦K,Good,Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.5,,,,"Flat 18 Adeline Heights, Rosalind Drive",Maidstone,Maidstone and The Weald,Maidstone,2018,2021-07-06 09:12:32,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,10.0,,10094441281.0,Address Matched +1459411379602016070812183046560888,"40b, Melville Road",,,ME15 7UR,7619975478,D,C,55,76,Flat,Semi-Detached,2016-07-08,E07000110,E14000804,Kent,2016-07-08,rental (private),48,76,340,150.0,5.0,60,2.2,58.0,58.0,932.0,380.0,113.0,115.0,82.0,Single,Y,Ground,Y,,2107.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,(another dwelling below),NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Poor,Poor,,,,"Roof room(s), no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,no corridor,,2.19,,N,natural,"40b, Melville Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2016-07-08 12:18:30,rental (private),,,200003661289.0,Address Matched +325265839062012050817470524558432,2a Vintners Court,Vintners Way,Weavering,ME14 5JE,3275374668,D,C,63,77,Flat,Detached,2012-05-05,E07000110,E14000700,Kent,2012-05-08,rental (private),61,80,250,131.0,2.9,48,1.5,40.0,40.0,432.0,249.0,146.0,95.0,59.0,Single,Y,1st,Y,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,86.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 86% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,no corridor,,,0.0,,natural,"2a Vintners Court, Vintners Way, Weavering",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2012-05-08 17:47:05,rental (private),7.0,6.0,10014309596.0,Address Matched +1429917719062016040405544733328366,"26, Bicknor Road",,,ME15 9NT,6310173478,D,B,67,85,House,Mid-Terrace,2016-04-02,E07000110,E14000700,Kent,2016-04-04,marketed sale,63,84,238,92.0,3.2,42,1.3,76.0,51.0,598.0,469.0,86.0,53.0,75.0,Unknown,Y,NODATA!,,,2107.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,50.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,2.35,,N,natural,"26, Bicknor Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2016-04-04 05:54:47,owner-occupied,,,200003682758.0,Address Matched +1741472189022019080620303165168601,"59, Springwood Road",Barming,,ME16 9PR,629895678,D,B,67,83,House,Semi-Detached,2019-08-06,E07000110,E14000804,Kent,2019-08-06,rental (social),64,80,228,109.0,3.0,40,1.5,114.0,63.0,422.0,444.0,173.0,81.0,76.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,4.0,4.0,18.0,0.0,From main system,Good,Good,"Solid, limited insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 18% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"59, Springwood Road, Barming",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2019-08-06 20:30:31,rental (social),,,200003699116.0,Address Matched +398116320962009111714090129338281,27 Oxford Gardens,,,ME15 8FJ,8209289668,C,C,74,75,House,Mid-Terrace,2009-11-17,E07000110,E14000700,Kent,2009-11-17,new dwelling,82,82,133,131.0,1.9,20,1.8,58.0,48.0,255.0,257.0,179.0,179.0,92.98,standard tariff,,NO DATA!,,,2207.0,,NO DATA!,NO DATA!,,,,4.0,0.0,From main system,Poor,Good,Average thermal transmittance 0.18 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.28 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.12 W/m?K,Very Good,Very Good,"Air source heat pump, radiators, electric",Poor,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",0.0,NO DATA!,,2.4,,,NO DATA!,27 Oxford Gardens,Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2009-11-17 14:09:01,,5.0,4.0,10014308966.0,Address Matched +183375424032020052008053900968000,Yokes Court Cottage,Frinsted,,ME9 0ST,2060014568,E,B,42,86,House,Detached,2020-04-16,E07000110,E14000700,Kent,2020-05-20,rental (private),39,81,239,34.0,9.9,57,2.4,103.0,103.0,1516.0,819.0,172.0,86.0,174.0,Unknown,N,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,100.0,1.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, oil",Average,Average,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,oil (not community),0.0,NO DATA!,,,,N,natural,"Yokes Court Cottage, Frinsted",Maidstone,Faversham and Mid Kent,SITTINGBOURNE,England and Wales: 1900-1929,2020-05-20 08:05:39,rental (private),,,10022901823.0,Address Matched +76bd2717b7ee8e928a60a8568465d6ae81cf2743cb4b7539c09bf95fce32b633,67 Clifford Way,,,ME16 8GD,10001575599,C,B,79,87,House,Mid-Terrace,2021-09-06,E07000110,E14000804,Kent,2021-09-06,rental,77,85,118,65.0,2.8,21,1.6,109.0,109.0,394.0,394.0,142.0,111.0,132.0,Single,Y,,,,,100.0,double glazing installed during or after 2002,Normal,0.0,6.0,6.0,88.0,0.0,From main system,Good,Good,"To unheated space, insulated (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 88% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.33,0.0,N,natural,67 Clifford Way,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2021-09-06 19:51:59,Rented (private),25.0,,10022896080.0,Energy Assessor +919420029222013072316502147578977,8 Horwood Way,Harrietsham,,ME17 1FH,7470267078,B,B,87,87,House,Detached,2013-07-23,E07000110,E14000700,Kent,2013-07-23,new dwelling,89,89,64,64.0,1.1,12,1.1,49.0,49.0,277.0,277.0,89.0,89.0,84.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.17 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"8 Horwood Way, Harrietsham",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2013-07-23 16:50:21,NO DATA!,12.0,12.0,10014314912.0,Address Matched +614132834932011040622433082068802,"31, Anerley Close",,,ME16 0RR,3242855868,C,C,70,76,Bungalow,Semi-Detached,2011-04-06,E07000110,E14000804,Kent,2011-04-06,marketed sale,65,72,295,237.0,2.4,49,2.0,27.0,27.0,407.0,339.0,115.0,100.0,49.52,Unknown,Y,NO DATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.42,0.0,N,natural,"31, Anerley Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2011-04-06 22:43:30,owner-occupied,,,200003659428.0,Address Matched +275575800222009042922184261388491,4 Livesey Cottages,Livesey Street,Teston,ME18 5AY,9602031668,G,F,13,24,House,Semi-Detached,2009-04-28,E07000110,E14000804,Kent,2009-04-29,rental (private),15,20,883,743.0,17.0,115,15.0,142.0,80.0,2160.0,1745.0,191.0,191.0,151.85,dual,N,NO DATA!,,,2401.0,0.0,INVALID!,Normal,1.0,9.0,9.0,22.0,2.0,"Electric immersion, off-peak",Average,Poor,"Suspended, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,Electric storage heaters,Poor,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 22% of fixed outlets,Poor,Poor,electricity - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,1.92,0.0,N,natural,"4 Livesey Cottages, Livesey Street, Teston",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2009-04-29 22:18:42,rental (private),,,200003656101.0,Address Matched +229612233112009021810510200910655,"12, Barfreston Close",,,ME15 6FG,6504308568,C,C,74,80,House,Mid-Terrace,2009-02-18,E07000110,E14000804,Kent,2009-02-18,marketed sale,71,78,212,163.0,2.5,35,1.9,49.0,34.0,317.0,267.0,127.0,102.0,81.0,Single,Y,NO DATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,57.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Poor,Poor,Low energy lighting in 57% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,0.0,N,natural,"12, Barfreston Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2009-02-18 10:51:02,owner-occupied,,,200003664269.0,Address Matched +1225932089222014102311093019678514,"12, Prospect Place",,,ME16 8EG,1104829278,D,B,62,90,House,Mid-Terrace,2014-10-23,E07000110,E14000804,Kent,2014-10-23,rental,59,92,233,34.0,3.5,45,0.6,99.0,50.0,671.0,335.0,97.0,69.0,79.0,Single,Y,NODATA!,,,2106.0,0.0,not defined,Normal,0.0,4.0,4.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"12, Prospect Place",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2014-10-23 11:09:30,owner-occupied,8.0,0.0,200003667551.0,Address Matched +62292720432014100913503580068099,"2, Oaktree Avenue",,,ME15 9AX,2970004468,D,B,57,83,House,Semi-Detached,2014-10-09,E07000110,E14000700,Kent,2014-10-09,FiT application,60,87,264,83.0,3.7,43,1.0,65.0,65.0,747.0,479.0,210.0,88.0,84.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,75.0,1.0,"From main system, no cylinder thermostat",Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, wood logs",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"2, Oaktree Avenue",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2014-10-09 13:50:35,owner-occupied,8.0,6.0,200003713560.0,Address Matched +1189322079962014081623364056568994,"47, Franklin Drive",Weavering,,ME14 5SY,9509766278,D,C,57,79,House,Detached,2014-08-16,E07000110,E14000700,Kent,2014-08-16,marketed sale,52,77,241,103.0,5.4,46,2.4,128.0,64.0,971.0,679.0,157.0,82.0,116.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,1.0,6.0,6.0,0.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, partial insulation (assumed)",Average,Average,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"47, Franklin Drive, Weavering",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1976-1982,2014-08-16 23:36:40,owner-occupied,25.0,0.0,200003716465.0,Address Matched +1311418539202017021312033736530468,"46, Jeffery Close",Staplehurst,,TN12 0TH,5283135378,D,B,63,83,House,Detached,2017-02-06,E07000110,E14000804,Kent,2017-02-13,ECO assessment,56,79,234,100.0,5.4,41,2.4,151.0,75.0,898.0,610.0,156.0,93.0,131.0,Single,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,1.0,6.0,6.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 12 mm loft insulation",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"46, Jeffery Close, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1950-1966,2017-02-13 12:03:37,owner-occupied,,,200003678821.0,Address Matched +216177597052009012521322708210655,4 Crisfield Cottages,The Green,Bearsted,ME14 4DY,6596786568,D,D,55,64,House,Semi-Detached,2009-01-23,E07000110,E14000700,Kent,2009-01-25,rental (private),53,63,322,257.0,4.6,53,3.7,80.0,43.0,682.0,576.0,103.0,90.0,86.36,Single,Y,NO DATA!,,,2102.0,80.0,double glazing installed before 2002,Less Than Typical,1.0,3.0,3.0,14.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Partial double glazing,Poor,Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, electric",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,Low energy lighting in 14% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.32,0.0,N,natural,"4 Crisfield Cottages, The Green, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2009-01-25 21:32:27,rental (private),,,200003695136.0,Address Matched +1110276019962014032017251391518244,Jubilee Hall Barn,Jubilee Corner,Ulcombe,ME17 1HA,4904111278,D,C,68,78,House,Detached,2014-03-19,E07000110,E14000700,Kent,2014-03-20,none of the above,56,69,133,88.0,8.8,33,6.0,123.0,123.0,2626.0,2084.0,192.0,167.0,264.0,Unknown,N,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,7.0,7.0,83.0,1.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"System built, as built, insulated (assumed)",Good,Good,"Room heaters, wood logs",,,"Pitched, insulated at rafters",Average,Average,"Boiler and radiators, oil",Average,Average,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 83% of fixed outlets,Very Good,Very Good,oil (not community),0.0,NO DATA!,,,30.0,,natural,"Jubilee Hall Barn, Jubilee Corner, Ulcombe",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1991-1995,2014-03-20 17:25:13,owner-occupied,60.0,50.0,10014307835.0,Address Matched +957684439542013062416472216072328,"72, Hastings Road",,,ME15 7SR,2558530178,E,B,53,85,House,Semi-Detached,2013-06-22,E07000110,E14000804,Kent,2013-06-24,marketed sale,49,86,294,66.0,4.6,57,1.1,82.0,46.0,731.0,392.0,147.0,70.0,81.0,Single,Y,NODATA!,,,2104.0,0.0,not defined,Normal,0.0,4.0,4.0,22.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 22% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"72, Hastings Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2013-06-24 16:47:22,owner-occupied,9.0,2.0,200003695490.0,Address Matched +1264111429062015012915213951238175,"148, Coombe Road",,,ME15 6UP,7512291378,D,B,58,86,House,Semi-Detached,2015-01-07,E07000110,E14000804,Kent,2015-01-29,none of the above,51,84,301,88.0,4.8,53,1.4,79.0,57.0,869.0,481.0,130.0,71.0,91.0,Single,Y,NODATA!,,,2107.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,60.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 60% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"148, Coombe Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2015-01-29 15:21:39,owner-occupied,,,200003665193.0,Address Matched +384139006112009101923431308919966,"30, York Road",,,ME15 7QY,9614688668,C,C,74,74,House,End-Terrace,2009-10-19,E07000110,E14000700,Kent,2009-10-19,rental (social),70,70,221,221.0,2.5,37,2.5,34.0,34.0,378.0,378.0,112.0,112.0,69.0,Single,Y,NO DATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,100.0,0.0,From main system,Very Good,Very Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"System built, with external insulation",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,,0.0,N,natural,"30, York Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,,2009-10-19 23:43:13,rental (social),,,200003715760.0,Address Matched +144695779102019112512284853012258,Redstock,Goudhurst Road,Marden,TN12 9JT,7108770568,D,B,66,83,House,Detached,2019-11-25,E07000110,E14000804,Kent,2019-11-25,marketed sale,58,80,212,93.0,5.5,37,2.4,118.0,91.0,890.0,595.0,145.0,84.0,147.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,6.0,6.0,70.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, partial insulation (assumed)",Average,Average,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 70% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"Redstock, Goudhurst Road, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1976-1982,2019-11-25 12:28:48,owner-occupied,,,200003669086.0,Address Matched +910258804732013041313571527978807,"13, Tennison Way",,,ME15 9GE,717896078,C,B,80,91,House,Mid-Terrace,2013-04-13,E07000110,E14000700,Kent,2013-04-13,marketed sale,81,93,100,29.0,2.0,19,0.6,101.0,58.0,301.0,309.0,101.0,63.0,103.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,27.0,0.0,From main system,Good,Good,"Suspended, insulated (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Roof room(s), insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 27% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"13, Tennison Way",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2007 onwards,2013-04-13 13:57:15,owner-occupied,11.0,3.0,10022895434.0,Address Matched +229593129962019011916251487338121,"7, Knowles Walk",Staplehurst,,TN12 0SG,2894297568,C,B,70,89,House,Mid-Terrace,2019-01-17,E07000110,E14000804,Kent,2019-01-19,rental (private),68,88,206,59.0,2.6,36,0.8,79.0,54.0,436.0,325.0,98.0,71.0,73.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,55.0,0.0,From main system,Very Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 25 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 55% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"7, Knowles Walk, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1967-1975,2019-01-19 16:25:14,rental (private),,,200003678671.0,Address Matched +418807612712010021016390793900173,8 Nethermount,Bearsted,,ME14 4FE,1320231768,B,B,85,85,House,Detached,2010-02-10,E07000110,E14000700,Kent,2010-02-10,new dwelling,84,84,93,91.0,2.5,15,2.4,105.0,83.0,312.0,315.0,133.0,133.0,159.7,standard tariff,,NO DATA!,,,2110.0,,NO DATA!,NO DATA!,,,,30.0,0.0,From main system,Very Good,Very Good,Average thermal transmittance 0.17 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.26 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.12 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Very Good,Very Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in 73% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.43,,,NO DATA!,"8 Nethermount, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2010-02-10 16:39:07,,41.0,30.0,10014309102.0,Address Matched +672418979042011083111081683997798,"28, Lushington Road",,,ME14 2QS,2014379868,F,E,22,39,House,Mid-Terrace,2011-08-31,E07000110,E14000804,Kent,2011-08-31,marketed sale,34,48,519,366.0,6.4,93,4.5,55.0,38.0,1476.0,1050.0,64.0,64.0,69.14,Single,Y,NODATA!,,,2699.0,15.0,double glazing installed before 2002,Normal,0.0,4.0,0.0,56.0,0.0,Gas multipoint,Average,Average,"Suspended, no insulation (assumed)",,,Some double glazing,Very Poor,Very Poor,"Cavity wall, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, mains gas",,,"Pitched, no insulation",Very Poor,Very Poor,No system present: electric heaters assumed,Very Poor,Very Poor,,Very Poor,Very Poor,Low energy lighting in 56% of fixed outlets,Good,Good,To be used only when there is no heating/hot-water system,0.0,NO DATA!,,2.4,0.0,,natural,"28, Lushington Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2011-08-31 11:08:16,owner-occupied,9.0,5.0,200003670929.0,Address Matched +1014900396912013101717531093270911,"42a, Chancery Lane",,,ME15 6EG,9101634178,C,C,69,73,Flat,Detached,2013-09-26,E07000110,E14000804,Kent,2013-10-17,marketed sale,71,77,190,152.0,2.1,36,1.7,56.0,41.0,410.0,349.0,90.0,80.0,59.0,Single,Y,Ground,N,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,3.0,3.0,62.0,0.0,From main system,Good,Good,"Solid, limited insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 62% of fixed outlets,Good,Good,mains gas (not community),0.0,no corridor,,,0.0,,natural,"42a, Chancery Lane",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2013-10-17 17:53:10,owner-occupied,8.0,5.0,200003694767.0,Address Matched +813489719042015091611405804059468,"230, Tonbridge Road",,,ME16 8SR,8061310078,D,B,62,85,House,Mid-Terrace,2015-09-16,E07000110,E14000804,Kent,2015-09-16,marketed sale,65,89,258,66.0,2.6,40,0.6,88.0,44.0,558.0,384.0,100.0,65.0,66.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,0.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Sandstone or limestone, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"230, Tonbridge Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2015-09-16 11:40:58,owner-occupied,,,200003657551.0,Address Matched +1356136578652015082023063894950835,"5, Grant Drive",,,ME15 9RZ,8589848378,C,B,74,90,House,Mid-Terrace,2015-08-17,E07000110,E14000700,Kent,2015-08-20,marketed sale,75,91,184,48.0,1.8,32,0.5,62.0,41.0,295.0,301.0,125.0,75.0,55.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,50.0,0.0,From main system,Good,Good,"Solid, limited insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"5, Grant Drive",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1996-2002,2015-08-20 23:06:38,owner-occupied,,,200003722982.0,Address Matched +1076201399262016082211235398928366,"516, Loose Road",,,ME15 9UF,6945968178,E,C,48,80,House,Detached,2016-08-22,E07000110,E14000804,Kent,2016-08-22,assessment for green deal,39,74,336,119.0,10.0,61,3.7,144.0,83.0,1837.0,901.0,207.0,81.0,170.0,Single,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",More Than Typical,2.0,8.0,8.0,28.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, dual fuel (mineral and wood)",,,"Flat, no insulation",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 28% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,2.2,,N,natural,"516, Loose Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2016-08-22 11:23:53,owner-occupied,,,200003675373.0,Address Matched +1673953766052018102519274490289967,"87, Sheppey Road",,,ME15 9SR,9738601678,D,B,57,83,House,Semi-Detached,2018-10-25,E07000110,E14000804,Kent,2018-10-25,marketed sale,50,80,314,110.0,4.9,55,1.7,121.0,61.0,776.0,500.0,157.0,72.0,88.0,Single,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"87, Sheppey Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2018-10-25 19:27:44,owner-occupied,,,200003678096.0,Address Matched +905854889262013032910120936318237,Bevlyn,Heath Road,East Farleigh,ME15 0LS,3309866078,E,B,50,88,Bungalow,Semi-Detached,2013-03-29,E07000110,E14000804,Kent,2013-03-29,marketed sale,30,69,557,193.0,5.9,99,2.0,53.0,39.0,668.0,331.0,119.0,70.0,59.0,dual,N,NODATA!,,,2401.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,62.0,0.0,"Electric immersion, off-peak",Average,Very Poor,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,"Pitched, 200 mm loft insulation",Good,Good,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 62% of fixed outlets,Good,Good,electricity (not community),0.0,NO DATA!,,,0.0,,natural,"Bevlyn, Heath Road, East Farleigh",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2013-03-29 10:12:09,owner-occupied,13.0,8.0,200003663689.0,Address Matched +1098038629602015030309550225050378,"14, Fieldfare Drive",,,ME15 6XL,3604620278,B,A,85,94,House,Detached,2015-03-03,E07000110,E14000804,Kent,2015-03-03,new dwelling,85,94,81,23.0,1.8,14,0.5,72.0,72.0,307.0,308.0,105.0,57.0,126.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.10 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"14, Fieldfare Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2015-03-03 09:55:02,owner-occupied,13.0,13.0,10014315280.0,Address Matched +48271540402009080120071652510398,Flat 2,203 Boxley Road,,ME14 2TL,4460345568,F,C,37,69,Flat,Detached,2009-08-01,E07000110,E14000804,Kent,2009-08-01,marketed sale,56,56,487,481.0,2.7,73,2.6,36.0,20.0,467.0,249.0,205.0,97.0,36.5,Single,N,1st,N,3.0,2603.0,100.0,"double glazing, unknown install date",Normal,1.0,2.0,2.0,0.0,0.0,"Electric immersion, standard tariff",Very Poor,Poor,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Flat, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, electric",Very Poor,Poor,Programmer and appliance thermostats,Good,Good,No low energy lighting,Very Poor,Very Poor,electricity - this is for backwards compatibility only and should not be used,0.0,unheated corridor,4.7,2.7,0.0,N,natural,"Flat 2, 203 Boxley Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2009-08-01 20:07:16,owner-occupied,,,10014310655.0,Address Matched +843487636412012101318521592029405,Fox Pitt,Shingle Barn Lane,West Farleigh,ME15 0PN,4534622078,E,C,54,76,House,Detached,2012-10-08,E07000110,E14000804,Kent,2012-10-13,marketed sale,42,66,189,95.0,20.0,48,10.0,226.0,129.0,3271.0,1875.0,192.0,192.0,411.0,dual,N,NODATA!,,,2110.0,0.0,not defined,Normal,3.0,13.0,13.0,20.0,8.0,From main system,Good,Average,"Solid, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, oil",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in 20% of fixed outlets,Poor,Poor,oil (not community),0.0,NO DATA!,,,0.0,,natural,"Fox Pitt, Shingle Barn Lane, West Farleigh",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2012-10-13 18:52:15,owner-occupied,30.0,6.0,200003662641.0,Address Matched +1710456293752019040413274497010062,"2, Castle Way",Boughton Monchelsea,,ME17 4GQ,297373678,B,A,85,94,House,Detached,2019-04-04,E07000110,E14000804,Kent,2019-04-04,new dwelling,86,95,81,19.0,1.7,14,0.4,75.0,75.0,255.0,256.0,99.0,54.0,117.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.19 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.1 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"2, Castle Way, Boughton Monchelsea",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2019-04-04 13:27:44,unknown,4.0,4.0,10094441250.0,Address Matched +989068662452017042113074295230411,"110, Bathurst Road",Staplehurst,,TN12 0LJ,4126252178,D,B,65,81,House,Semi-Detached,2017-04-20,E07000110,E14000804,Kent,2017-04-21,marketed sale,58,76,224,115.0,4.5,40,2.4,100.0,70.0,805.0,592.0,115.0,115.0,115.0,Single,Y,NODATA!,,,2111.0,100.0,double glazing installed before 2002,Normal,1.0,7.0,7.0,57.0,0.0,From main system,Very Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,TRVs and bypass,Average,Average,Low energy lighting in 57% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"110, Bathurst Road, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1950-1966,2017-04-21 13:07:42,owner-occupied,,,200003677741.0,Address Matched +1439499649212016050312193493060148,5 Bakers Yard,Harrietsham,,ME17 1GD,1841934478,B,A,83,93,House,Mid-Terrace,2016-05-03,E07000110,E14000700,Kent,2016-05-03,new dwelling,85,94,91,25.0,1.5,16,0.4,82.0,66.0,251.0,253.0,87.0,87.0,92.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,"From main system, plus solar",Very Good,Very Good,Average thermal transmittance 0.18 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.26 W/m-¦K,Very Good,Very Good,"Room heaters, mains gas",,,Average thermal transmittance 0.14 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in 76% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"5 Bakers Yard, Harrietsham",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2016-05-03 12:19:34,owner-occupied,25.0,19.0,10091196924.0,Address Matched +1769756829062019120213413678128391,"4, Spindle Close",Headcorn,,TN27 9EZ,9724208678,B,A,90,92,House,Mid-Terrace,2019-12-02,E07000110,E14000700,Kent,2019-12-02,new dwelling,91,94,44,28.0,0.8,8,0.5,72.0,72.0,198.0,200.0,101.0,55.0,97.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"4, Spindle Close, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,NO DATA!,2019-12-02 13:41:36,unknown,15.0,15.0,10094441625.0,Address Matched +680154779722011093016265700708469,"3, Lyle Court",,,ME16 0EQ,6063720968,D,D,60,62,House,Detached,2011-09-30,E07000110,E14000804,Kent,2011-09-30,marketed sale,57,59,256,247.0,4.0,49,3.9,85.0,45.0,638.0,645.0,110.0,110.0,81.8,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,6.0,5.0,10.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, mains gas",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 10% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,2.3,0.0,,natural,"3, Lyle Court",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1991-1995,2011-09-30 16:26:57,owner-occupied,10.0,1.0,200003659663.0,Address Matched +1628329179612018050213001397280050,"107, Ashford Road",Bearsted,,ME14 4BS,66977578,C,B,77,88,House,Detached,2018-04-26,E07000110,E14000700,Kent,2018-05-02,marketed sale,76,86,134,64.0,2.5,23,1.3,94.0,73.0,398.0,401.0,116.0,75.0,108.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,8.0,8.0,71.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 71% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"107, Ashford Road, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2003-2006,2018-05-02 13:00:13,owner-occupied,,,10022896230.0,Address Matched +1565277239312017080413495492030850,"13, King Edward Road",,,ME15 6PN,8071923578,E,B,47,84,House,Mid-Terrace,2017-08-03,E07000110,E14000804,Kent,2017-08-04,rental (private),40,81,374,91.0,6.4,68,1.6,79.0,61.0,1061.0,492.0,213.0,74.0,94.0,Unknown,Y,NODATA!,,,2104.0,17.0,double glazing installed during or after 2002,Normal,2.0,5.0,5.0,70.0,2.0,"From main system, no cylinder thermostat",Average,Average,"To unheated space, no insulation (assumed)",NO DATA!,,Some double glazing,Poor,Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 70% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"13, King Edward Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2017-08-04 13:49:54,rental (private),,,200003682664.0,Address Matched +331723348752020030216002721200260,"63, Campbell Road",,,ME15 6PY,2068815668,D,B,66,86,House,End-Terrace,2020-02-26,E07000110,E14000804,Kent,2020-03-02,rental (private),62,85,243,82.0,3.4,43,1.2,60.0,60.0,604.0,416.0,82.0,53.0,79.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,3.0,3.0,3.0,100.0,0.0,From main system,Good,Good,"To unheated space, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"63, Campbell Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2020-03-02 16:00:27,rental (private),,,200003692849.0,Address Matched +1463405889922016071813450516758716,Flat 1 Clifford House,Vinters Road,,ME14 5YA,1198806478,D,C,64,75,Flat,End-Terrace,2016-07-15,E07000110,E14000804,Kent,2016-07-18,rental (private),45,59,474,342.0,3.5,80,2.6,37.0,37.0,439.0,258.0,135.0,135.0,44.0,dual,N,Ground,N,,2401.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,100.0,0.0,"Electric immersion, off-peak",Average,Poor,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,Portable electric heaters (assumed),,,(another dwelling above),,,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,unheated corridor,4.27,2.34,,N,natural,"Flat 1 Clifford House, Vinters Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1991-1995,2016-07-18 13:45:05,rental (private),,,200003689514.0,Address Matched +1086838169452014021315565094940211,"16, Essex Road",,,ME15 7QL,2114949178,D,B,63,88,House,Mid-Terrace,2014-02-13,E07000110,E14000700,Kent,2014-02-13,none of the above,59,88,206,52.0,4.4,40,1.2,82.0,62.0,749.0,420.0,172.0,78.0,112.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,67.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 67% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"16, Essex Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2014-02-13 15:56:50,owner-occupied,9.0,6.0,200003680431.0,Address Matched +1070476289652014011610102192940911,"17, Aldon Close",,,ME14 5QF,9105928178,D,B,68,83,House,End-Terrace,2014-01-16,E07000110,E14000804,Kent,2014-01-16,none of the above,67,83,184,80.0,3.0,35,1.4,102.0,51.0,537.0,492.0,93.0,55.0,85.0,Single,Y,NODATA!,,,2504.0,100.0,double glazing installed before 2002,Normal,1.0,5.0,5.0,0.0,0.0,Gas multipoint,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Warm air, mains gas",Good,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"17, Aldon Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2014-01-16 10:10:21,owner-occupied,9.0,0.0,200003671484.0,Address Matched +77809663af5c26894909e9d6728c6bad2bccc37cb22868733dfd7724f25bc091,23 Bedell Road,,,ME14 4GE,10001426326,B,A,84,97,House,Mid-Terrace,2021-07-22,E07000110,E14000804,Kent,2021-07-22,new dwelling,87,100,83,-11.0,1.1,14,-0.1,71.0,71.0,191.0,191.0,66.0,40.0,74.0,standard tariff,,,N,,,100.0,,,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.41,,,,23 Bedell Road,Maidstone,Maidstone and The Weald,THURNHAM,2021,2021-07-22 12:34:48,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,1.0,,10094444618.0,Address Matched +529465019962010081918483849518720,Old Comptons,North Pole Road,Barming,ME16 9HH,2483119768,C,C,69,72,House,Detached,2010-08-19,E07000110,E14000804,Kent,2010-08-19,marketed sale,65,67,214,198.0,4.6,35,4.2,126.0,72.0,622.0,602.0,166.0,166.0,128.44,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,6.0,6.0,24.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 24% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.39,0.0,N,natural,"Old Comptons, North Pole Road, Barming",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1991-1995,2010-08-19 18:48:38,owner-occupied,,,200003667691.0,Address Matched +1016025511732013093021094582778201,"5, Ufton Close",,,ME15 8EH,1142254178,C,B,69,83,House,Detached,2013-09-30,E07000110,E14000700,Kent,2013-09-30,rental (private),66,83,174,80.0,3.5,34,1.6,68.0,68.0,586.0,487.0,133.0,78.0,104.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,2.0,5.0,5.0,80.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"5, Ufton Close",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2013-09-30 21:09:45,rental (private),20.0,16.0,200003685749.0,Address Matched +778dac5e1099b00a1e5f1045c108b73e8de27ac1bb1d231530195b3fd8a1f5f3,53 Barnhurst Road,Penenden Heath,,ME14 2EL,10001532645,C,C,71,74,Flat,Detached,2021-09-15,E07000110,E14000804,Kent,2021-09-15,rental,70,75,214,182.0,2.2,38,1.8,51.0,51.0,382.0,324.0,80.0,80.0,57.0,Single,Y,00,N,,,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Average,Average,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,no corridor,0.0,2.33,0.0,N,natural,"53 Barnhurst Road, Penenden Heath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2021-09-15 16:40:57,Rented (social),6.0,,200003706605.0,Energy Assessor +17813088032010081322022692968903,"14, Shaw Close",,,ME14 5DN,8322952468,C,C,69,74,House,Detached,2010-08-13,E07000110,E14000804,Kent,2010-08-13,marketed sale,66,70,220,190.0,3.8,37,3.3,118.0,59.0,524.0,498.0,146.0,125.0,104.2,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,7.0,7.0,0.0,1.0,From main system,Good,Good,"Solid, insulated (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, mains gas",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,0.0,N,natural,"14, Shaw Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2010-08-13 22:02:26,owner-occupied,,,10022892491.0,Address Matched +1f6e53b0ad326830f590447b720c8358a0a45f29f90e4396c18f06e543d09ee3,19 ALLNUTT MILL CLOSE,TOVIL,,ME15 6QU,10001432255,C,B,69,89,House,Mid-Terrace,2021-07-20,E07000110,E14000804,Kent,2021-07-20,rental,66,88,222,62.0,2.8,39,0.8,60.0,60.0,435.0,342.0,162.0,69.0,73.0,Single,Y,,,,,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,From main system,Average,Average,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.31,0.0,N,natural,"19 ALLNUTT MILL CLOSE, TOVIL",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1991-1995,2021-07-20 14:22:27,Rented (private),8.0,,200003666218.0,Energy Assessor +1758489671652019101522312792919967,"3, Birnam Square",,,ME16 8UN,9710127678,D,B,67,83,House,Mid-Terrace,2019-10-15,E07000110,E14000804,Kent,2019-10-15,rental (social),66,82,186,83.0,3.7,33,1.7,104.0,104.0,697.0,535.0,130.0,84.0,112.0,dual,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,6.0,5.0,80.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, partial insulation (assumed)",Average,Average,Portable electric heaters (assumed),,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"3, Birnam Square",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1976-1982,2019-10-15 22:31:27,rental (social),,,200003668220.0,Address Matched +317015920442009082709482466410898,14 Bazalgette Rise,,,ME16 8FL,488024668,B,B,85,85,House,Mid-Terrace,2009-08-01,E07000110,E14000804,Kent,2009-08-27,new dwelling,85,85,110,110.0,1.4,18,1.4,41.0,41.0,223.0,223.0,91.0,91.0,77.28,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,,From main system,Very Good,Very Good,Average thermal transmittance 0.15 W/m??K,Very Good,Very Good,Fully double glazed,Good,Good,Average thermal transmittance 0.19 W/m??K,Very Good,Very Good,,,,Average thermal transmittance 0.20 W/m??K,Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 100% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.6,,,NO DATA!,14 Bazalgette Rise,Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2009-08-27 09:48:24,,,,10014308187.0,Address Matched +248993859062018020308352629628748,"49, West Street",Harrietsham,,ME17 1HX,4207519568,E,B,52,81,House,End-Terrace,2018-02-02,E07000110,E14000700,Kent,2018-02-03,marketed sale,51,81,340,122.0,4.5,54,1.6,114.0,57.0,890.0,548.0,89.0,58.0,82.0,Unknown,Y,NODATA!,,,2106.0,40.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Partial double glazing,Poor,Poor,"Solid brick, as built, no insulation (assumed)",Poor,Poor,"Room heaters, wood logs",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"49, West Street, Harrietsham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2018-02-03 08:35:26,owner-occupied,,,200003702550.0,Address Matched +254671622222020062412143169278080,"25, Old Tovil Road",,,ME15 6PR,8659279568,D,B,67,86,House,Mid-Terrace,2020-06-23,E07000110,E14000804,Kent,2020-06-24,rental (private),62,84,228,84.0,3.7,40,1.4,85.0,85.0,645.0,434.0,98.0,69.0,92.0,Unknown,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,2.0,5.0,5.0,80.0,0.0,From main system,Good,Good,"To unheated space, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"25, Old Tovil Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2020-06-24 12:14:31,rental (private),,,200003683239.0,Address Matched +1039521039062013110807204546038207,"89, Bramley Crescent",Bearsted,,ME15 8JX,484316178,D,C,61,78,House,Detached,2013-11-07,E07000110,E14000700,Kent,2013-11-08,marketed sale,57,76,227,115.0,4.3,44,2.2,90.0,55.0,717.0,603.0,139.0,80.0,99.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,36.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 36% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"89, Bramley Crescent, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2013-11-08 07:20:45,owner-occupied,11.0,4.0,200003688496.0,Address Matched +1410242939142016031919390340260058,"43, Loose Road",,,ME15 7BY,2185332478,D,C,57,79,House,Mid-Terrace,2016-02-05,E07000110,E14000804,Kent,2016-03-19,marketed sale,49,74,306,136.0,5.5,54,2.5,68.0,68.0,1041.0,676.0,116.0,77.0,102.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,2.0,5.0,5.0,93.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, mains gas",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 93% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,2.17,,N,natural,"43, Loose Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2016-03-19 19:39:03,owner-occupied,,,200003683795.0,Address Matched +1756172839022019100512582937548061,"52, Mote Road",,,ME15 6ET,6379307678,E,C,50,76,Flat,Mid-Terrace,2019-10-04,E07000110,E14000804,Kent,2019-10-05,rental (private),51,69,446,271.0,3.1,75,1.9,33.0,38.0,713.0,242.0,164.0,187.0,41.0,dual,N,Ground,N,,2602.0,100.0,secondary glazing,Normal,1.0,2.0,2.0,100.0,0.0,Electric instantaneous at point of use,Very Poor,Poor,"Solid, no insulation (assumed)",NO DATA!,,Full secondary glazing,Good,Good,"Solid brick, as built, no insulation (assumed)",Poor,Poor,,,,(another dwelling above),,,"Room heaters, electric",Very Poor,Poor,Appliance thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,unheated corridor,7.79,,,N,natural,"52, Mote Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2019-10-05 12:58:29,rental (private),,,200003691160.0,Address Matched +77af277584213d7c5488afa8e0ec55fd78b739ff8bad48ee7726b3473c3bad92,6 Warmlake Orchard,,,ME17 3TU,10001540224,B,B,84,88,House,Detached,2021-08-25,E07000110,E14000700,Kent,2021-08-25,new dwelling,82,86,87,65.0,4.0,15,3.0,127.0,127.0,658.0,658.0,103.0,103.0,257.0,standard tariff,,,N,,,100.0,,,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.21 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.14 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.39,,,,6 Warmlake Orchard,Maidstone,Faversham and Mid Kent,SUTTON VALENCE,2018,2021-08-25 11:15:52,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,60.0,,10094443015.0,Energy Assessor +1153321296052014060721414491040525,"6, Kingsdown Close",,,ME16 8QR,5579614278,E,C,52,77,House,Detached,2014-06-05,E07000110,E14000804,Kent,2014-06-07,marketed sale,46,74,274,118.0,6.4,53,2.8,106.0,65.0,1164.0,732.0,131.0,89.0,121.0,Single,Y,NODATA!,,,2106.0,94.0,double glazing installed during or after 2002,Normal,1.0,6.0,6.0,36.0,2.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Mostly double glazing,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 36% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"6, Kingsdown Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2014-06-07 21:41:44,owner-occupied,14.0,5.0,200003668031.0,Address Matched +12864164832018042813394281268307,"1, Grosvenor Court",Oakwood Park,,ME16 8AN,6741342468,D,C,66,78,House,Detached,2018-04-27,E07000110,E14000804,Kent,2018-04-28,rental (private),62,75,192,117.0,5.0,34,3.1,140.0,87.0,821.0,772.0,198.0,109.0,149.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,6.0,6.0,39.0,0.0,From main system,Good,Good,"Solid, limited insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 39% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"1, Grosvenor Court, Oakwood Park",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2018-04-28 13:39:42,rental (private),,,10014309154.0,Address Matched +1088891369502014021819160719949788,"63, McKenzie Court",,,ME14 1JU,7574169178,B,B,82,83,Flat,Mid-Terrace,2014-02-18,E07000110,E14000804,Kent,2014-02-18,marketed sale,72,74,213,203.0,1.8,38,1.7,53.0,38.0,130.0,118.0,115.0,115.0,48.0,dual,N,1st,N,,2401.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,60.0,0.0,"Electric immersion, off-peak",Average,Very Poor,"To unheated space, insulated (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,Portable electric heaters (assumed),,,(another dwelling above),,,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 60% of fixed outlets,Good,Good,electricity (not community),0.0,heated corridor,,,0.0,,natural,"63, McKenzie Court",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2014-02-18 19:16:07,owner-occupied,5.0,3.0,10014306670.0,Address Matched +410758179942011041012562871090118,24 Hayle Mill,Hayle Mill Road,,ME15 6JW,995370768,D,D,67,68,Maisonette,NO DATA!,2011-04-09,E07000110,E14000804,Kent,2011-04-10,marketed sale,71,72,214,208.0,2.9,32,2.9,106.0,62.0,395.0,409.0,167.0,167.0,90.9,dual,N,1st,Y,3.0,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,30.0,0.0,"Electric immersion, off-peak",Average,Poor,(other premises below),,,Fully double glazed,Good,Good,"System built, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, electric",Very Poor,Poor,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 30% of fixed outlets,Average,Average,electricity - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.14,0.0,N,natural,"24 Hayle Mill, Hayle Mill Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2011-04-10 12:56:28,owner-occupied,,,10022896944.0,Address Matched +1153323319702017012019040326432108,Casa Nueva,Headcorn Road,Staplehurst,TN12 0BU,5766614278,D,B,62,83,House,Detached,2017-01-20,E07000110,E14000804,Kent,2017-01-20,marketed sale,57,80,274,110.0,3.5,48,1.5,70.0,56.0,648.0,480.0,99.0,67.0,73.0,dual,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,4.0,75.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, partial insulation (assumed)",Average,Average,"Room heaters, mains gas",,,"Pitched, limited insulation (assumed)",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"Casa Nueva, Headcorn Road, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1976-1982,2017-01-20 19:04:03,owner-occupied,,,200003678937.0,Address Matched +1628449109022018050216110797228228,Flat 1 Challenger Court,"49, Wallis Avenue",,ME15 9HS,2911087578,B,B,82,82,Flat,Detached,2018-05-02,E07000110,E14000700,Kent,2018-05-02,new dwelling,85,85,109,109.0,1.1,19,1.1,40.0,40.0,188.0,188.0,83.0,83.0,55.0,standard tariff,,ground floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.19 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Flat 1 Challenger Court, 49, Wallis Avenue",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2018-05-02 16:11:07,unknown,10.0,10.0,10093304751.0,Address Matched +1166248989062015021014324285868685,"23, Terminus Road",,,ME16 9AU,8833805278,D,B,57,86,House,End-Terrace,2015-02-06,E07000110,E14000804,Kent,2015-02-10,assessment for green deal,55,86,279,60.0,3.6,49,0.8,69.0,53.0,766.0,415.0,84.0,53.0,74.0,dual,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,70.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 70% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"23, Terminus Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2015-02-10 14:32:42,rental (social),,,200003676402.0,Address Matched +923689085732013050116210680078104,"19, Calder Road",,,ME14 2QQ,8480197078,D,B,67,90,House,Mid-Terrace,2013-05-01,E07000110,E14000804,Kent,2013-05-01,none of the above,68,92,200,32.0,2.5,38,0.5,73.0,39.0,410.0,307.0,107.0,65.0,66.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,5.0,5.0,12.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 12% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"19, Calder Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2013-05-01 16:21:06,owner-occupied,8.0,1.0,200003670845.0,Address Matched +516000214712014082618410391240771,4 Magnolia House,Springwood Close,,ME16 9PB,7101418768,D,C,59,75,Flat,Semi-Detached,2014-08-22,E07000110,E14000804,Kent,2014-08-26,assessment for green deal,57,77,276,146.0,3.1,53,1.6,78.0,39.0,593.0,337.0,102.0,88.0,58.0,Single,Y,Ground,N,,2107.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,unheated corridor,7.09,,0.0,,natural,"4 Magnolia House, Springwood Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2014-08-26 18:41:03,rental (social),8.0,0.0,200003697266.0,Address Matched +1554661165212017062321254595230459,"13, Manor Close",Bearsted,,ME14 4BY,4901552578,D,B,66,83,Bungalow,Detached,2017-06-21,E07000110,E14000700,Kent,2017-06-23,marketed sale,60,79,214,99.0,4.8,38,2.3,135.0,74.0,834.0,615.0,112.0,76.0,128.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,6.0,6.0,17.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 17% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"13, Manor Close, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2017-06-23 21:25:45,owner-occupied,,,200003692061.0,Address Matched +596526019202016032020541487469318,"1, Chaucer Close",,,ME15 8HH,209914868,D,B,68,89,Bungalow,End-Terrace,2016-03-19,E07000110,E14000700,Kent,2016-03-20,rental (social),67,90,266,58.0,2.1,47,0.5,33.0,33.0,420.0,322.0,87.0,58.0,45.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,2.43,,N,natural,"1, Chaucer Close",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2016-03-20 20:54:14,rental (social),,,200003684816.0,Address Matched +285837270962009051215434561628391,"64, Norrington Road",,,ME15 9XB,9666771668,D,D,55,66,Bungalow,Semi-Detached,2009-05-12,E07000110,E14000804,Kent,2009-05-12,marketed sale,48,60,355,267.0,5.3,59,4.0,84.0,42.0,675.0,546.0,145.0,110.0,96.11,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,5.0,5.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Flat, limited insulation (assumed)",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.36,0.0,N,natural,"64, Norrington Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2009-05-12 15:43:45,owner-occupied,,,200003675620.0,Address Matched +681231659762011093010432010208219,29 Mandeville Court,Union Street,,ME14 1JR,1165530968,D,D,66,68,Flat,Mid-Terrace,2011-09-30,E07000110,E14000804,Kent,2011-09-30,marketed sale,69,71,273,254.0,2.1,48,1.9,46.0,26.0,250.0,236.0,199.0,199.0,42.58,Unknown,N,1st,N,,2401.0,100.0,double glazing installed before 2002,Normal,0.0,2.0,2.0,25.0,0.0,"Electric immersion, standard tariff",Very Poor,Very Poor,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,Portable electric heaters (assumed),,,(another dwelling above),,,Electric storage heaters,Very Poor,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 25% of fixed outlets,Average,Average,electricity (not community),0.0,heated corridor,,2.3,0.0,,natural,"29 Mandeville Court, Union Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2011-09-30 10:43:20,owner-occupied,8.0,2.0,200003699213.0,Address Matched +278715440102009050523160165112038,7 School Villas,Maidstone Road,Nettlestead,ME18 5ET,6157941668,C,C,74,75,House,Semi-Detached,2009-04-27,E07000110,E14000804,Kent,2009-05-05,rental (social),70,71,222,216.0,2.5,37,2.4,51.0,32.0,339.0,343.0,99.0,99.0,67.46,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,40.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"System built, with external insulation",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 40% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.46,0.0,N,natural,"7 School Villas, Maidstone Road, Nettlestead",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2009-05-05 23:16:01,rental (social),,,200003657996.0,Address Matched +653359899062011071216200958958739,"25, Woodcut",Penenden Heath,,ME14 2EQ,3589938868,D,D,66,67,Bungalow,Detached,2011-07-05,E07000110,E14000804,Kent,2011-07-12,marketed sale,64,65,209,202.0,3.7,40,3.6,81.0,48.0,606.0,611.0,90.0,90.0,92.34,Unknown,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,More Than Typical,0.0,3.0,3.0,30.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Timber frame, as built, partial insulation (assumed)",Average,Average,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 30% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,2.32,0.0,,natural,"25, Woodcut, Penenden Heath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2011-07-12 16:20:09,owner-occupied,10.0,3.0,200003707852.0,Address Matched +914023329222014042616151497048154,"3, Spindle Glade",,,ME14 5RQ,5924227078,D,B,61,83,House,Detached,2014-04-24,E07000110,E14000804,Kent,2014-04-26,assessment for green deal,56,82,204,77.0,6.1,39,2.3,158.0,81.0,1075.0,642.0,122.0,82.0,154.0,dual,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,7.0,7.0,6.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 6% of fixed outlets,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"3, Spindle Glade",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2014-04-26 16:15:14,owner-occupied,17.0,1.0,200003672212.0,Address Matched +598783159222018052220372734398868,"7, Troys Mead",Hollingbourne,,ME17 1UB,6392534868,D,B,67,88,Bungalow,Mid-Terrace,2018-05-21,E07000110,E14000700,Kent,2018-05-22,rental (social),69,90,266,66.0,1.9,47,0.5,44.0,32.0,382.0,333.0,76.0,51.0,41.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,60.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,"Room heaters, electric",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 60% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"7, Troys Mead, Hollingbourne",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2018-05-22 20:37:27,rental (social),,,200003727451.0,Address Matched +1726984292442020081310162363409778,"2, Brown Road",Otham,,ME15 8YU,7446194678,B,A,84,95,House,Detached,2020-08-13,E07000110,E14000700,Kent,2020-08-13,new dwelling,86,96,86,13.0,1.4,15,0.2,75.0,75.0,249.0,249.0,77.0,47.0,94.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.10 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.19 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"2, Brown Road, Otham",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2020-08-13 10:16:23,unknown,10.0,10.0,10094440568.0,Address Matched +1584233359262017102409413624448633,"12, Cricketers Way",Coxheath,,ME17 4FG,3219564578,B,A,85,97,House,Mid-Terrace,2017-10-24,E07000110,E14000804,Kent,2017-10-24,new dwelling,88,99,79,-5.0,1.1,14,0.0,59.0,59.0,193.0,193.0,81.0,47.0,82.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.14 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.20 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"12, Cricketers Way, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2017-10-24 09:41:36,rental (social),10.0,10.0,10093302616.0,Address Matched +57986280442009031012561152819508,Flat 9 Orchard House,Hazlitt Drive,,ME16 0YU,2449888568,B,B,86,87,Flat,Detached,2009-03-10,E07000110,E14000804,Kent,2009-03-10,new dwelling,86,86,104,101.0,1.2,0,1.2,45.0,36.0,170.0,171.0,86.0,86.0,0.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,9.0,,SAP05:Hot-Water,,,(other premises below),,,Fully double glazed,Good,Good,Average thermal transmittance 0.29 W/m²K,Very Good,Very Good,SAP05:Secondary-Heating,,,(another dwelling above),,,SAP05:Main-Heating,,,SAP05:Main-Heating-Controls,,,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,,,,NO DATA!,"Flat 9 Orchard House, Hazlitt Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2009-03-10 12:56:11,,12.0,9.0,10014309046.0,Address Matched +401263000802009112318375775012878,"89, Chapman Avenue",,,ME15 8EL,2881800768,C,B,75,83,House,Mid-Terrace,2009-11-23,E07000110,E14000700,Kent,2009-11-23,marketed sale,73,81,205,140.0,2.3,34,1.6,55.0,33.0,340.0,252.0,95.0,85.0,66.7,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,6.0,6.0,33.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 50 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 33% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.3,0.0,N,natural,"89, Chapman Avenue",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2009-11-23 18:37:57,owner-occupied,,,200003684704.0,Address Matched +976005269242013072216523210172728,"42, Hurst Close",Staplehurst,,TN12 0BX,6282161178,D,C,56,78,House,Semi-Detached,2013-07-22,E07000110,E14000804,Kent,2013-07-22,assessment for green deal,46,71,228,103.0,8.9,49,4.3,132.0,79.0,1358.0,895.0,204.0,76.0,183.0,Single,Y,NODATA!,,,2102.0,100.0,double glazing installed during or after 2002,Normal,2.0,7.0,7.0,33.0,1.0,"From main system, no cylinder thermostat",Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,"Room heaters, smokeless fuel",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,Low energy lighting in 33% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"42, Hurst Close, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1950-1966,2013-07-22 16:52:32,owner-occupied,30.0,10.0,200003679269.0,Address Matched +874410049202018020402062506480778,"68, South Park Road",,,ME15 7AW,9249344078,C,B,69,86,House,Mid-Terrace,2018-02-03,E07000110,E14000700,Kent,2018-02-04,marketed sale,68,87,207,73.0,2.7,36,1.0,73.0,53.0,482.0,380.0,116.0,86.0,75.0,Single,Y,NODATA!,,,2102.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,63.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,"Room heaters, electric",,,"Pitched, 350 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,Low energy lighting in 63% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"68, South Park Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2018-02-04 02:06:25,owner-occupied,,,200003716016.0,Address Matched +847210359502012101815115604229088,"23, Linton Gore",Coxheath,,ME17 4ES,2555252078,D,B,66,83,Bungalow,Semi-Detached,2012-10-18,E07000110,E14000804,Kent,2012-10-18,rental (private),64,82,194,82.0,3.4,37,1.5,100.0,50.0,563.0,463.0,88.0,63.0,93.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,4.0,4.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 75mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"23, Linton Gore, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2012-10-18 15:11:56,rental (private),9.0,0.0,200003715166.0,Address Matched +780b095add1e815f4fb30f833469b52cc3880535cc1e1ab2c70989c99aee724a,"8, CORNFIELD WAY",ALLINGTON,,ME16 9GE,10001551223,B,B,86,88,House,Semi-Detached,2021-07-20,E07000110,E14000804,Kent,2021-07-20,new dwelling,88,90,69,52.0,1.0,12,0.8,68.0,68.0,205.0,205.0,89.0,50.0,83.0,standard tariff,,,N,,,100.0,,,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.18 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.15 W/m-¦K,Good,Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.32,,,,"8, CORNFIELD WAY, ALLINGTON",Maidstone,Maidstone and The Weald,MAIDSTONE,2020,2021-07-20 14:44:23,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,27.0,,10094440322.0,Address Matched +1341528349902015082411494833759208,2 Pear Tree Row,Sutton Road,Langley,ME17 3NF,3966547378,D,A,63,92,House,Mid-Terrace,2015-07-10,E07000110,E14000700,Kent,2015-08-24,marketed sale,60,94,318,24.0,2.7,56,0.2,54.0,33.0,456.0,266.0,139.0,64.0,47.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,1.0,3.0,3.0,38.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 38% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"2 Pear Tree Row, Sutton Road, Langley",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2015-08-24 11:49:48,owner-occupied,,,200003690532.0,Address Matched +533747919762010083119581099898510,"5, Herts Crescent",Loose,,ME15 0AX,1938149768,E,D,45,64,House,Semi-Detached,2010-08-31,E07000110,E14000804,Kent,2010-08-31,marketed sale,42,60,409,264.0,6.4,69,4.1,84.0,49.0,1002.0,670.0,129.0,104.0,93.0,Single,Y,NO DATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,30.0,2.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 30% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,0.0,N,natural,"5, Herts Crescent, Loose",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2010-08-31 19:58:10,owner-occupied,,,200003663435.0,Address Matched +7835c1753b850619bb6a83df986f7048fd21a894499993c970f3eb40f4752414,Harts House,Bottlescrew Hill,Boughton Monchelsea,ME17 4LY,10001655690,E,C,41,71,House,Detached,2021-08-17,E07000110,E14000700,Kent,2021-08-17,rental,32,61,369,178.0,19.0,65,9.3,220.0,145.0,3143.0,1706.0,183.0,115.0,294.0,Single,Y,,,,,0.0,not defined,Normal,1.0,9.0,9.0,45.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Timber frame, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 45% of fixed outlets,Good,Good,mains gas (not community),0.0,,,2.43,0.0,N,natural,"Harts House, Bottlescrew Hill, Boughton Monchelsea",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2021-08-17 10:29:55,Rented (private),31.0,,200003674777.0,Energy Assessor +845609578452014091912192793940909,"17, Fir Tree Grove",,,ME5 8XD,9924832078,E,B,46,89,House,End-Terrace,2014-09-19,E07000110,E14000700,Kent,2014-09-19,FiT application,43,91,361,40.0,4.8,70,0.6,85.0,45.0,762.0,337.0,285.0,73.0,70.0,Single,Y,NODATA!,,,2102.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,12.0,0.0,"From main system, no cylinder thermostat",Poor,Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, partial insulation (assumed)",Average,Average,,,,"Pitched, 12 mm loft insulation",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Average,"Programmer, no room thermostat",Very Poor,Very Poor,Low energy lighting in 12% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"17, Fir Tree Grove",Maidstone,Faversham and Mid Kent,CHATHAM,England and Wales: 1976-1982,2014-09-19 12:19:27,owner-occupied,8.0,1.0,200003676685.0,Address Matched +841673760232012100317035977078195,"37, St. Philips Avenue",,,ME15 7SL,6597112078,D,B,62,86,House,Detached,2012-10-02,E07000110,E14000804,Kent,2012-10-03,rental (private),58,86,219,60.0,4.3,42,1.2,65.0,65.0,725.0,398.0,93.0,66.0,101.0,Single,Y,NODATA!,,,2102.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,78.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,Low energy lighting in 78% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"37, St. Philips Avenue",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2012-10-03 17:03:59,rental (private),18.0,14.0,200003686742.0,Address Matched +380810450132009101515434702968590,"23, Fishers Road",Staplehurst,,TN12 0DD,5042568668,E,C,42,70,House,End-Terrace,2009-10-13,E07000110,E14000804,Kent,2009-10-15,rental (private),36,64,489,245.0,6.8,82,3.4,66.0,42.0,910.0,499.0,222.0,120.0,83.25,Single,Y,NO DATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,1.0,4.0,4.0,40.0,0.0,"From main system, no cylinderstat",Poor,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Average,Good,Programmer and room thermostat,Poor,Poor,Low energy lighting in 40% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,0.0,N,natural,"23, Fishers Road, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1967-1975,2009-10-15 15:43:47,rental (private),,,200003679333.0,Address Matched +1106610819922014031415521000328734,Westdene,Station Road,Staplehurst,TN12 0QG,3042190278,F,C,36,71,House,Semi-Detached,2014-03-12,E07000110,E14000804,Kent,2014-03-14,marketed sale,31,65,352,149.0,14.0,68,5.9,117.0,86.0,2495.0,1267.0,225.0,133.0,201.0,Single,Y,NODATA!,,,2104.0,0.0,not defined,Normal,1.0,8.0,8.0,61.0,2.0,From main system,Average,Average,"Suspended, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 61% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"Westdene, Station Road, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: before 1900,2014-03-14 15:52:10,owner-occupied,18.0,11.0,200003679070.0,Address Matched +302227252712009061019260001910765,"35, Lacock Gardens",,,ME15 6GS,7598213668,C,C,77,78,House,Mid-Terrace,2009-06-10,E07000110,E14000804,Kent,2009-06-10,marketed sale,76,77,188,182.0,1.8,30,1.8,50.0,30.0,278.0,282.0,82.0,82.0,59.2,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,35.0,0.0,From main system,Good,Good,"Solid, limited insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 35% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,0.0,N,natural,"35, Lacock Gardens",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2009-06-10 19:26:00,owner-occupied,,,10012891039.0,Address Matched +653885549342011071319585882899378,"33, Ernest Drive",,,ME16 0QS,3307448868,D,D,55,67,Bungalow,Detached,2011-07-13,E07000110,E14000804,Kent,2011-07-13,marketed sale,52,67,335,228.0,3.8,65,2.6,52.0,33.0,587.0,434.0,141.0,102.0,58.6,Unknown,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,44.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Average,Programmer and room thermostat,Average,Average,Low energy lighting in 44% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,2.5,0.0,,natural,"33, Ernest Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2011-07-13 19:58:58,owner-occupied,9.0,4.0,200003704553.0,Address Matched +1021092319062013100806574154438247,"8, Woodlands",Coxheath,,ME17 4EE,4581184178,D,B,65,86,House,Semi-Detached,2013-10-07,E07000110,E14000804,Kent,2013-10-08,marketed sale,63,86,203,63.0,3.3,39,1.1,62.0,50.0,603.0,407.0,94.0,69.0,85.0,Unknown,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,4.0,4.0,75.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"8, Woodlands, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2013-10-08 06:57:41,owner-occupied,12.0,9.0,200003672826.0,Address Matched +1811627902842020072014321078102608,"13, Bull Orchard",,,ME16 9EU,5801701778,E,B,50,83,House,Semi-Detached,2020-07-20,E07000110,E14000804,Kent,2020-07-20,rental (private),43,80,373,107.0,5.1,66,1.5,97.0,63.0,789.0,463.0,198.0,70.0,77.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,45.0,0.0,"From main system, no cylinder thermostat",Average,Average,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 45% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"13, Bull Orchard",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2020-07-20 14:32:10,rental (private),,,200003665509.0,Address Matched +810086718152012070506514898020391,Spring Grove,Goudhurst Road,Marden,TN12 9NW,3135889968,D,C,60,80,House,Semi-Detached,2012-07-04,E07000110,E14000804,Kent,2012-07-05,marketed sale,58,79,198,98.0,9.0,33,4.4,150.0,101.0,1732.0,1090.0,113.0,114.0,269.0,dual,Y,NODATA!,,,2106.0,45.0,secondary glazing,Normal,2.0,7.0,6.0,50.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Partial secondary glazing,Poor,Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"Spring Grove, Goudhurst Road, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: before 1900,2012-07-05 06:51:48,owner-occupied,24.0,12.0,200003668376.0,Address Matched +598436162612013103123350893779987,6 Crittenden Bungalows,Gallants Lane,East Farleigh,ME15 0TA,9783234868,E,B,53,86,Bungalow,End-Terrace,2013-10-31,E07000110,E14000804,Kent,2013-10-31,rental (social),34,70,563,205.0,4.8,100,1.7,50.0,33.0,509.0,307.0,191.0,111.0,48.0,dual,N,NODATA!,,,2401.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,50.0,0.0,"Electric immersion, off-peak",Poor,Very Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,Portable electric heaters (assumed),,,"Pitched, 200 mm loft insulation",Good,Good,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 50% of fixed outlets,Good,Good,electricity (not community),0.0,NO DATA!,,,0.0,,natural,"6 Crittenden Bungalows, Gallants Lane, East Farleigh",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2013-10-31 23:35:08,rental (social),6.0,3.0,200003671044.0,Address Matched +75063089752018022610311398280347,"17, Lacock Gardens",,,ME15 6GS,3766984468,C,B,69,82,House,Semi-Detached,2018-02-24,E07000110,E14000804,Kent,2018-02-26,marketed sale,66,79,209,118.0,3.1,37,1.8,81.0,58.0,504.0,508.0,122.0,75.0,85.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,60.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 60% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"17, Lacock Gardens",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2018-02-26 10:31:13,owner-occupied,,,10012891030.0,Address Matched +1499401749222016112510360248548806,5 Churchlands,Heathorn Street,,ME14 5AF,441468478,D,D,66,68,Flat,Detached,2016-11-24,E07000110,E14000804,Kent,2016-11-25,rental (social),68,69,307,296.0,1.8,54,1.7,55.0,30.0,336.0,339.0,83.0,83.0,33.0,dual,Y,2nd,Y,,2106.0,100.0,"double glazing, unknown install date",Less Than Typical,0.0,1.0,1.0,17.0,0.0,From main system,Good,Good,(another dwelling below),NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 17% of fixed outlets,Poor,Poor,mains gas (not community),0.0,unheated corridor,4.07,,,N,natural,"5 Churchlands, Heathorn Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2016-11-25 10:36:02,rental (social),,,200003705911.0,Address Matched +7869d9c007a9d5684a762baa896a3439b3266e5e149e167fb39fa3e7160e1929,"FLAT 10, HARRIET HOUSE, WEST STREET",HARRIETSHAM,,ME17 1JZ,10001690974,D,C,63,74,Flat,Mid-Terrace,2021-07-13,E07000110,E14000700,Kent,2021-07-13,rental,60,76,438,262.0,2.1,77,1.2,26.0,26.0,297.0,184.0,141.0,110.0,27.0,Single,Y,01,Y,,,100.0,"double glazing, unknown install date",Less Than Typical,0.0,2.0,2.0,100.0,0.0,Community scheme,Good,Good,(another dwelling below),,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 200 mm loft insulation",Good,Good,Community scheme,Good,Good,"Flat rate charging, programmer and TRVs",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (community),0.0,heated corridor,,2.79,0.0,N,natural,"FLAT 10, HARRIET HOUSE, WEST STREET, HARRIETSHAM",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2021-07-13 22:31:17,Rented (private),3.0,,10095449915.0,Address Matched +1536134172252018083011414592780759,"2, Endeavour Drive",Marden,,TN12 9FS,7904221578,B,A,85,93,House,Detached,2018-08-30,E07000110,E14000804,Kent,2018-08-30,new dwelling,85,94,79,24.0,1.8,14,0.6,78.0,78.0,282.0,283.0,100.0,55.0,131.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.12 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.28 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"2, Endeavour Drive, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,NO DATA!,2018-08-30 11:41:45,owner-occupied,16.0,16.0,10093303309.0,Address Matched +1594158669062017120417513875948553,"12, Cornflower Drive",Marden,,TN12 9GH,5770635578,B,A,84,92,House,Detached,2017-12-04,E07000110,E14000804,Kent,2017-12-04,new dwelling,86,93,79,36.0,2.2,13,0.9,84.0,84.0,394.0,394.0,107.0,59.0,168.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.27 W/m-¦K,Very Good,Very Good,"Room heaters, wood logs",,,Average thermal transmittance 0.10 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"12, Cornflower Drive, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,NO DATA!,2017-12-04 17:51:38,owner-occupied,45.0,45.0,10093305326.0,Address Matched +364091421132009091612094127968604,The Stables,Church Lane,West Farleigh,ME15 0DT,2497647668,F,E,34,41,House,Detached,2009-09-16,E07000110,E14000804,Kent,2009-09-16,marketed sale,32,37,426,377.0,9.0,83,8.0,109.0,54.0,1301.0,1176.0,151.0,144.0,118.59,Single,N,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,0.0,0.0,From main system,Average,Average,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, 100mm loft insulation",Average,Average,"Boiler and radiators, oil",Average,Average,"Programmer, room thermostat and TRVs",Average,Average,No low energy lighting,Very Poor,Very Poor,oil - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,3.0,0.0,N,natural,"The Stables, Church Lane, West Farleigh",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2009-09-16 12:09:41,owner-occupied,,,200003662827.0,Address Matched +532793539262010082623124399268870,Flat 4 St. Davids House,Nottingham Avenue,,ME15 7PR,7962339768,C,B,77,81,Flat,Semi-Detached,2010-08-26,E07000110,E14000700,Kent,2010-08-26,rental (social),75,79,194,164.0,2.0,32,1.7,55.0,33.0,321.0,286.0,86.0,86.0,61.04,Single,Y,1st,Y,2.0,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,33.0,0.0,From main system,Very Good,Very Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 33% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.4,0.0,N,natural,"Flat 4 St. Davids House, Nottingham Avenue",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2010-08-26 23:12:43,rental (social),,,200003713148.0,Address Matched +591789979902011021110111988399298,10c Elizabeth House,Alexandra Street,,ME14 2BX,9968573868,G,F,1,27,Flat,Mid-Terrace,2011-02-11,E07000110,E14000804,Kent,2011-02-11,rental (private),25,19,1121,1301.0,5.4,169,6.3,29.0,33.0,1294.0,756.0,220.0,98.0,31.9,Single,N,2nd,Y,3.0,2602.0,100.0,double glazing installed before 2002,Normal,0.0,1.0,1.0,33.0,0.0,"Electric immersion, standard tariff",Very Poor,Poor,(other premises below),,,Fully double glazed,Average,Average,"System built, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, electric",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, electric",Very Poor,Poor,Appliance thermostats,Good,Good,Low energy lighting in 33% of fixed outlets,Average,Average,electricity - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.4,0.0,N,natural,"10c Elizabeth House, Alexandra Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2011-02-11 10:11:19,rental (private),,,200003704639.0,Address Matched +241476230022009030713420078368521,"14, Mote Avenue",,,ME15 7ST,2769388568,E,E,45,53,House,Semi-Detached,2009-03-06,E07000110,E14000804,Kent,2009-03-07,marketed sale,37,43,406,347.0,7.6,74,6.6,91.0,50.0,898.0,798.0,171.0,150.0,103.1,Single,Y,NO DATA!,,,2107.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,17.0,4.0,"From main system, no cylinderstat",Average,Average,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, coal",,,"Pitched, 75mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Poor,Poor,Low energy lighting in 17% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,0.0,N,natural,"14, Mote Avenue",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2009-03-07 13:42:00,owner-occupied,,,200003695714.0,Address Matched +761637107232012031517284827968608,"15, Willow Rise",Downswood,,ME15 8XR,877646968,C,C,70,72,House,Enclosed End-Terrace,2012-03-15,E07000110,E14000700,Kent,2012-03-15,marketed sale,73,76,216,196.0,1.8,41,1.6,45.0,26.0,277.0,285.0,110.0,89.0,42.39,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,1.0,2.0,2.0,25.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 25% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,2.36,0.0,,natural,"15, Willow Rise, Downswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2012-03-15 17:28:48,owner-occupied,4.0,1.0,200003687141.0,Address Matched +78a00566f3fccae685525a5cb7c73a3c4d94a975988c12db5903a64e944c3592,Acorn Lodge,Oak Lane,,TN27 9TR,10001614627,B,B,89,90,House,End-Terrace,2021-07-30,E07000110,E14000700,Kent,2021-07-30,new dwelling,92,94,48,32.0,0.6,9,0.4,58.0,58.0,185.0,185.0,78.0,52.0,63.0,standard tariff,,,N,,,100.0,,,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.17 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.09 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.5,,,,"Acorn Lodge, Oak Lane",Maidstone,Faversham and Mid Kent,Headcorn,2018,2021-07-30 10:18:18,Owner-occupied,30.0,,, +334019230142009072713513662519308,"15, Fir Tree Grove",Bredhurst,,ME7 3LB,9152235668,D,C,64,77,House,Semi-Detached,2009-07-10,E07000110,E14000700,Kent,2009-07-27,rental (private),57,73,272,171.0,4.9,46,3.1,54.0,54.0,700.0,435.0,140.0,121.0,120.16,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,6.0,6.0,100.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.7,0.0,N,natural,"15, Fir Tree Grove, Bredhurst",Maidstone,Faversham and Mid Kent,GILLINGHAM,England and Wales: 1950-1966,2009-07-27 13:51:36,rental (private),,,200003694217.0,Address Matched +352790834452009082620003506210566,"81, McKenzie Court",,,ME14 1JU,5681466668,B,B,82,84,Flat,Enclosed Mid-Terrace,2009-08-26,E07000110,E14000804,Kent,2009-08-26,rental (private),79,80,211,199.0,1.4,32,1.3,46.0,23.0,90.0,91.0,96.0,96.0,42.74,dual,N,3rd,N,5.0,2401.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,0.0,0.0,"Electric immersion, off-peak",Average,Poor,(other premises below),,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,(another dwelling above),,,Electric storage heaters,Poor,Very Poor,Manual charge control,Poor,Poor,No low energy lighting,Very Poor,Very Poor,electricity - this is for backwards compatibility only and should not be used,0.0,heated corridor,,2.24,0.0,N,"mechanical, supply and extract","81, McKenzie Court",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2009-08-26 20:00:35,rental (private),,,10014306688.0,Address Matched +1547902669222017052919534242218663,"1, Ebony Walk",,,ME16 8TY,6438602578,D,B,67,89,Bungalow,End-Terrace,2017-05-29,E07000110,E14000804,Kent,2017-05-29,rental (social),65,89,269,58.0,2.2,47,0.5,43.0,34.0,413.0,315.0,85.0,57.0,46.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,71.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, partial insulation (assumed)",Average,Average,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 71% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"1, Ebony Walk",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1976-1982,2017-05-29 19:53:42,rental (social),,,200003722135.0,Address Matched +1592525563512017112808254192239450,Flat 2,"7, Campion Way",Marden,TN12 9GE,4056325578,B,B,82,82,Flat,Semi-Detached,2017-11-28,E07000110,E14000804,Kent,2017-11-28,new dwelling,87,87,102,102.0,0.9,18,0.9,41.0,41.0,172.0,172.0,65.0,65.0,49.0,standard tariff,,ground floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.10 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.23 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Flat 2, 7, Campion Way, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,NO DATA!,2017-11-28 08:25:41,owner-occupied,45.0,45.0,10093305242.0,Address Matched +574619309962010121511022152458510,"29, Cornhill Place",,,ME15 6GX,1503042868,C,C,70,71,Flat,Mid-Terrace,2010-12-15,E07000110,E14000804,Kent,2010-12-15,new dwelling,78,79,182,177.0,1.8,28,1.7,54.0,36.0,222.0,225.0,259.0,259.0,61.7,standard tariff,,top floor,,,,,NO DATA!,NO DATA!,,,,,,"Electric immersion, standard tariff",Very Poor,Poor,(other premises below),,,Fully double glazed,Good,Good,Average thermal transmittance 0.32 W/m?K,Good,Good,,,,Average thermal transmittance 0.16 W/m?K,Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.3,,,NO DATA!,"29, Cornhill Place",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2010-12-15 11:02:21,,,,10022895034.0,Address Matched +1385105434552015111214462795959246,"5, Edmett Way",,,ME17 3FA,2660450478,B,B,83,83,Flat,Detached,2015-11-12,E07000110,E14000700,Kent,2015-11-12,new dwelling,87,87,91,91.0,1.1,16,1.1,52.0,52.0,211.0,211.0,78.0,78.0,68.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.27 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,Programmer and at least two room thermostats,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"5, Edmett Way",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2015-11-12 14:46:27,unknown,1.0,1.0,10091193963.0,Address Matched +1509189173512017010515461593030046,"2, Echo Close",,,ME15 8TZ,684339478,D,B,59,91,House,Semi-Detached,2017-01-05,E07000110,E14000700,Kent,2017-01-05,marketed sale,40,74,533,197.0,4.2,90,1.6,63.0,38.0,592.0,301.0,97.0,97.0,47.0,dual,N,NODATA!,,,2401.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,33.0,0.0,"Electric immersion, off-peak, plus solar",Good,Average,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Timber frame, as built, insulated (assumed)",Good,Good,Portable electric heaters (assumed),,,"Pitched, 100 mm loft insulation",Average,Average,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 33% of fixed outlets,Average,Average,electricity (not community),0.0,NO DATA!,,,,Y,natural,"2, Echo Close",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2017-01-05 15:46:15,owner-occupied,,,200003681089.0,Address Matched +234986450062009030213214228328051,"38, Bychurch Place",Waterloo Street,,ME15 7UQ,5264558568,D,B,65,83,Flat,Semi-Detached,2009-03-02,E07000110,E14000804,Kent,2009-03-02,marketed sale,62,81,319,158.0,2.7,53,1.4,46.0,26.0,352.0,204.0,144.0,85.0,51.74,Unknown,Y,1st,Y,2.0,2104.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,1.0,20.0,0.0,From main system,Average,Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, partial insulation (assumed)",Average,Average,Portable electric heaters,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Average,Good,Programmer and room thermostat,Poor,Poor,Low energy lighting in 20% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,unheated corridor,3.7,2.3,0.0,N,natural,"38, Bychurch Place, Waterloo Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1976-1982,2009-03-02 13:21:42,owner-occupied,,,200003696679.0,Address Matched +371697199922014022113390367538524,3 Sunningdale Court,Square Hill Road,,ME15 7TT,2662997668,C,C,69,77,Flat,Mid-Terrace,2014-02-17,E07000110,E14000804,Kent,2014-02-21,none of the above,72,82,209,134.0,1.8,40,1.1,41.0,29.0,317.0,226.0,124.0,98.0,45.0,Single,Y,Ground,N,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,60.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 60% of fixed outlets,Good,Good,mains gas (not community),0.0,unheated corridor,4.597,,0.0,,natural,"3 Sunningdale Court, Square Hill Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2014-02-21 13:39:03,rental (social),5.0,3.0,200003696561.0,Address Matched +77097952642020022417285943502148,School House,Chart Road,Sutton Valence,ME17 3AW,7685455468,E,B,54,84,House,Detached,2020-02-24,E07000110,E14000700,Kent,2020-02-24,rental (private),46,82,341,97.0,5.6,60,1.6,101.0,71.0,983.0,484.0,102.0,71.0,93.0,Unknown,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,6.0,6.0,58.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, mains gas",,,"Flat, limited insulation (assumed)",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 58% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"School House, Chart Road, Sutton Valence",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2020-02-24 17:28:59,rental (private),,,200003694413.0,Address Matched +1481540869222016092117561007408466,Copse End,Chart Road,Chart Sutton,ME17 3RB,6019637478,D,C,65,77,House,Detached,2016-09-20,E07000110,E14000700,Kent,2016-09-21,marketed sale,58,71,225,148.0,6.0,40,4.0,162.0,81.0,1039.0,946.0,139.0,89.0,151.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,6.0,6.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Timber frame, as built, partial insulation (assumed)",Average,Average,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,2.3,,N,natural,"Copse End, Chart Road, Chart Sutton",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2016-09-21 17:56:10,owner-occupied,,,200003694455.0,Address Matched +1004268229222014062017352393308264,"25, Cross Keys",Bearsted,,ME14 4HU,6911263178,E,B,48,82,House,Semi-Detached,2014-06-20,E07000110,E14000700,Kent,2014-06-20,none of the above,44,82,326,86.0,5.4,63,1.5,74.0,51.0,948.0,495.0,170.0,75.0,85.0,Single,Y,NODATA!,,,2107.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,56.0,1.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 56% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"25, Cross Keys, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2014-06-20 17:35:23,owner-occupied,9.0,5.0,200003694924.0,Address Matched +1523067809112017022715124692230957,"21, Fiji Terrace",Invicta Park,,ME14 2NZ,9788920578,C,B,69,87,House,Mid-Terrace,2017-02-27,E07000110,E14000804,Kent,2017-02-27,rental (social),65,85,212,73.0,3.1,37,1.1,81.0,56.0,547.0,406.0,105.0,70.0,84.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,54.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,,,,"Flat, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 54% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"21, Fiji Terrace, Invicta Park",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2017-02-27 15:12:46,rental (social),,,200003723964.0,Address Matched +210740959802011030811315853690888,"16, The Gardens",Stockett Lane,,ME17 4PU,6877856568,C,C,70,80,Flat,Semi-Detached,2011-03-08,E07000110,E14000804,Kent,2011-03-08,marketed sale,67,77,293,202.0,2.3,48,1.6,51.0,25.0,393.0,294.0,88.0,82.0,46.96,Single,Y,Ground,N,2.0,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.33,0.0,N,natural,"16, The Gardens, Stockett Lane",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2011-03-08 11:31:58,owner-occupied,,,200003715315.0,Address Matched +1661465938152018090721075091080265,"36, Upper Road",,,ME15 7RA,2513810678,D,B,66,84,House,Mid-Terrace,2018-09-07,E07000110,E14000804,Kent,2018-09-07,marketed sale,62,81,238,103.0,3.6,42,1.6,105.0,60.0,555.0,458.0,132.0,79.0,85.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,2.0,5.0,5.0,25.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 270 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 25% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"36, Upper Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2018-09-07 21:07:50,owner-occupied,,,200003685085.0,Address Matched +1196697869262014082821112517388214,"86, Camp Way",,,ME15 9BB,1183627278,D,C,55,74,House,End-Terrace,2014-08-28,E07000110,E14000700,Kent,2014-08-28,none of the above,63,80,167,71.0,3.7,37,1.8,92.0,59.0,994.0,801.0,225.0,146.0,99.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,1.0,4.0,4.0,44.0,0.0,From main system,Poor,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, LPG",Average,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 44% of fixed outlets,Average,Average,LPG (not community),0.0,NO DATA!,,,0.0,,natural,"86, Camp Way",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2014-08-28 21:11:25,owner-occupied,9.0,4.0,200003710106.0,Address Matched +1292868855152015043009252990250436,Chaney Court Farm,Chart Hill Road,Staplehurst,TN12 0RW,4663504378,G,C,11,71,House,Detached,2015-04-29,E07000110,E14000700,Kent,2015-04-30,marketed sale,11,58,428,96.0,20.0,110,5.9,166.0,87.0,3490.0,1536.0,325.0,104.0,184.0,Single,N,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,2.0,8.0,7.0,8.0,3.0,"From main system, no cylinder thermostat",Very Poor,Very Poor,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, oil",Poor,Average,Programmer and room thermostat,Average,Average,Low energy lighting in 8% of fixed outlets,Very Poor,Very Poor,oil (not community),0.0,NO DATA!,,,,N,natural,"Chaney Court Farm, Chart Hill Road, Staplehurst",Maidstone,Faversham and Mid Kent,TONBRIDGE,England and Wales: 1900-1929,2015-04-30 09:25:29,owner-occupied,,,200003679701.0,Address Matched +1519499009242017021416251054039248,"9, Beckett Close",,,ME16 9DW,9273400578,B,A,85,94,House,End-Terrace,2017-02-14,E07000110,E14000804,Kent,2017-02-14,new dwelling,87,96,75,14.0,1.5,13,0.3,69.0,69.0,237.0,237.0,109.0,73.0,114.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.14 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.21 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.16 W/m-¦K,Good,Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"9, Beckett Close",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2017-02-14 16:25:10,owner-occupied,4.0,4.0,10091196096.0,Address Matched +945652209922013061419523239948637,"26, Wharfdale Square",Tovil,,ME15 6AU,3385059078,C,C,74,77,Maisonette,End-Terrace,2013-06-14,E07000110,E14000804,Kent,2013-06-14,none of the above,60,66,329,287.0,2.4,58,2.0,30.0,30.0,236.0,192.0,101.0,101.0,40.0,dual,N,Ground,N,,2402.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,100.0,0.0,"Electric immersion, off-peak",Average,Very Poor,"Suspended, limited insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,Electric storage heaters,Poor,Very Poor,Automatic charge control,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,heated corridor,,,0.0,,natural,"26, Wharfdale Square, Tovil",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2013-06-14 19:52:32,owner-occupied,8.0,8.0,10022897239.0,Address Matched +1017997160732013100413181266078992,"56, Church Street",Boughton Monchelsea,,ME17 4HN,6296954178,C,B,73,83,House,Semi-Detached,2013-10-04,E07000110,E14000700,Kent,2013-10-04,marketed sale,75,84,139,82.0,2.8,24,1.6,61.0,61.0,550.0,554.0,120.0,76.0,117.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,6.0,6.0,100.0,2.0,From main system,Good,Good,"Solid, insulated",,,Fully double glazed,Good,Good,"Solid brick, with internal insulation",Good,Good,"Room heaters, wood logs",,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"56, Church Street, Boughton Monchelsea",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2013-10-04 13:18:12,owner-occupied,10.0,10.0,200003674405.0,Address Matched +1683687679062018120620292951448578,Th Old Post Master's House,High Street,Marden,TN12 9DP,7505771678,B,B,81,89,House,Semi-Detached,2018-12-04,E07000110,E14000804,Kent,2018-12-06,new dwelling,79,88,105,50.0,2.3,18,1.2,69.0,69.0,420.0,420.0,87.0,53.0,127.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.16 W/m+é-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.31 W/m+é-¦K,Good,Good,,,,Average thermal transmittance 0.16 W/m+é-¦K,Good,Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Th Old Post Master's House, High Street, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,NO DATA!,2018-12-06 20:29:29,unknown,10.0,10.0,, +1798625712252020052109453621200176,"7, Milton Grove",Penenden Heath,,ME14 2FF,1639210778,A,A,92,93,House,Detached,2020-05-21,E07000110,E14000804,Kent,2020-05-21,new dwelling,90,91,42,34.0,1.5,8,1.3,120.0,120.0,425.0,427.0,108.0,60.0,199.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.12 W/m+é-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.19 W/m+é-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.10 W/m+é-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"7, Milton Grove, Penenden Heath",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2020-05-21 09:45:36,unknown,50.0,50.0,10091194442.0,Address Matched +288321375132009051913130752968100,"38, Farrier Close",Weavering,,ME14 5SR,7092112668,D,C,62,75,House,End-Terrace,2009-05-18,E07000110,E14000700,Kent,2009-05-19,marketed sale,55,71,389,250.0,3.1,65,2.0,38.0,23.0,364.0,293.0,171.0,89.0,47.7,Single,Y,NO DATA!,,,2107.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,33.0,0.0,"From main system, no cylinderstat",Poor,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Average,Average,"Boiler and radiators, mains gas",Average,Good,"Programmer, TRVs and bypass",Poor,Poor,Low energy lighting in 33% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.3,0.0,N,natural,"38, Farrier Close, Weavering",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2009-05-19 13:13:07,owner-occupied,,,200003689105.0,Address Matched +795516199722012053023002478308232,"9, Commodore Road",,,ME14 5PH,3723988968,C,B,74,86,House,Semi-Detached,2012-05-30,E07000110,E14000804,Kent,2012-05-30,rental (private),74,86,138,62.0,2.7,26,1.3,76.0,57.0,439.0,407.0,92.0,66.0,102.0,dual,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,6.0,6.0,67.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Roof room(s), insulated",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 67% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"9, Commodore Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2012-05-30 23:00:24,rental (private),12.0,8.0,200003671340.0,Address Matched +1070018229602014012912150318842418,"3, Pippin Close",Coxheath,,ME17 4DS,2688928178,D,B,61,88,House,Semi-Detached,2014-01-29,E07000110,E14000804,Kent,2014-01-29,none of the above,57,90,247,43.0,3.6,48,0.7,73.0,47.0,526.0,346.0,243.0,70.0,76.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,44.0,0.0,"From main system, no cylinder thermostat",Poor,Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Average,Programmer and room thermostat,Average,Average,Low energy lighting in 44% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"3, Pippin Close, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2014-01-29 12:15:03,owner-occupied,9.0,4.0,200003669963.0,Address Matched +1318803204712020052708574128000831,"33, Loose Road",,,ME15 7BY,8144485378,E,B,49,85,House,End-Terrace,2020-03-09,E07000110,E14000804,Kent,2020-05-27,rental (private),41,83,383,89.0,6.1,68,1.5,70.0,70.0,1071.0,453.0,129.0,70.0,91.0,Single,Y,NODATA!,,,2107.0,100.0,double glazing installed during or after 2002,Normal,1.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"33, Loose Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2020-05-27 08:57:41,rental (private),,,200003683790.0,Address Matched +596716729142013091823233783479188,28 Sunningdale Court,Square Hill Road,,ME15 7TT,3188024868,D,C,68,73,Flat,Semi-Detached,2013-09-18,E07000110,E14000804,Kent,2013-09-18,rental (social),70,75,215,177.0,1.9,41,1.6,47.0,30.0,313.0,302.0,138.0,98.0,47.0,Unknown,Y,4th,N,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,43.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"System built, as built, no insulation (assumed)",Very Poor,Very Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 43% of fixed outlets,Average,Average,mains gas (not community),0.0,unheated corridor,4.55,,0.0,,natural,"28 Sunningdale Court, Square Hill Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2013-09-18 23:23:37,rental (social),7.0,3.0,200003696559.0,Address Matched +1002168438652013121711100094979318,Merchant House,1 Chiltern Place,"The Street, Detling",ME14 3JT,3889843178,B,B,83,83,House,Detached,2013-12-17,E07000110,E14000700,Kent,2013-12-17,new dwelling,84,84,85,85.0,2.0,16,2.0,62.0,62.0,349.0,349.0,100.0,100.0,122.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.18 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.27 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.12 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Merchant House, 1 Chiltern Place, The Street, Detling",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2013-12-17 11:10:00,NO DATA!,0.0,0.0,10014314733.0,Address Matched +459636205452010032412453891200470,"34, Button Lane",Bearsted,,ME15 8DW,4014514768,D,C,63,69,House,Detached,2010-03-24,E07000110,E14000700,Kent,2010-03-24,marketed sale,59,64,242,209.0,5.9,40,5.1,160.0,80.0,783.0,735.0,174.0,146.0,169.4,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,7.0,7.0,0.0,0.0,From main system,Good,Good,"Suspended, limited insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, mains gas",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.3,0.0,N,natural,"34, Button Lane, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1996-2002,2010-03-24 12:45:38,owner-occupied,,,200003691678.0,Address Matched +1509073339842017010509051144930758,Flat 8,12 Tonbridge Road,,ME16 8RP,3832139478,B,B,88,88,Flat,Mid-Terrace,2017-01-05,E07000110,E14000804,Kent,2017-01-05,new dwelling,91,91,84,84.0,0.5,14,0.5,33.0,33.0,54.0,54.0,98.0,98.0,35.0,standard tariff,,ground floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Average,Good,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.20 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.15 W/m-¦K,Good,Good,"Ground source heat pump, underfloor, electric",Good,Very Good,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"Flat 8, 12 Tonbridge Road",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2017-01-05 09:05:11,unknown,4.0,4.0,10093303703.0,Address Matched +383989626552009101922380608919263,"27, Brenchley Road",,,ME15 6UH,2324688668,D,C,56,71,House,Mid-Terrace,2009-10-19,E07000110,E14000804,Kent,2009-10-19,rental (social),49,66,359,240.0,4.8,60,3.2,60.0,40.0,661.0,481.0,163.0,107.0,79.94,Single,Y,NO DATA!,,,2107.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,50.0,0.0,From main system,Average,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Average,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,,0.0,N,natural,"27, Brenchley Road",Maidstone,Maidstone and The Weald,MAIDSTONE,,2009-10-19 22:38:06,rental (social),,,200003665065.0,Address Matched +1077159589962018061817502968188298,Top Flat,"48, Bower Lane",,ME16 8EJ,9693878178,E,C,46,77,Flat,Semi-Detached,2018-06-18,E07000110,E14000804,Kent,2018-06-18,rental (private),28,63,558,231.0,7.5,94,3.1,65.0,65.0,1050.0,336.0,212.0,150.0,80.0,dual,N,1st,Y,,2401.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,100.0,0.0,"Electric immersion, off-peak",Average,Poor,(another dwelling below),NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,Portable electric heaters (assumed),,,"Pitched, 200 mm loft insulation",Good,Good,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,no corridor,,,,N,natural,"Top Flat, 48, Bower Lane",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2018-06-18 17:50:29,rental (private),,,200003668629.0,Address Matched +7915add96959f621fc8d9a06315fad5cd0898d47370664d77a277a225a265b15,34 EGERTON ROAD,,,ME14 2QY,10001475051,D,B,65,84,House,End-Terrace,2021-07-23,E07000110,E14000804,Kent,2021-07-23,marketed sale,62,82,254,100.0,2.9,45,1.2,61.0,61.0,499.0,407.0,87.0,62.0,64.0,dual,Y,,,,,100.0,"double glazing, unknown install date",Normal,1.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.4,0.0,N,natural,34 EGERTON ROAD,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2021-07-23 12:29:33,Owner-occupied,9.0,,200003671025.0,Energy Assessor +470931299942010110916134577400318,"57, Courtenay Road",,,ME15 6UW,6912394768,C,C,73,77,House,Mid-Terrace,2010-11-09,E07000110,E14000804,Kent,2010-11-09,rental (social),70,74,210,180.0,2.9,35,2.4,64.0,43.0,433.0,380.0,114.0,114.0,81.42,Single,Y,NO DATA!,,,2106.0,90.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,50.0,0.0,From main system,Very Good,Very Good,"Suspended, no insulation (assumed)",,,Mostly double glazing,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.42,0.0,N,natural,"57, Courtenay Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2010-11-09 16:13:45,rental (social),,,200003665348.0,Address Matched +1333370469962016101110180106408396,Flat A,101 Sutton Road,,ME15 9AD,9061686378,C,C,73,73,Flat,NO DATA!,2016-10-10,E07000110,E14000700,Kent,2016-10-11,unknown,73,73,205,205.0,1.9,36,1.9,45.0,45.0,380.0,380.0,72.0,72.0,54.0,standard tariff,,ground floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.33 W/m-¦K,Average,Average,Fully double glazed,Good,Good,Average thermal transmittance 0.51 W/m-¦K,Good,Good,,,,Average thermal transmittance 0.17 W/m-¦K,Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Flat A, 101 Sutton Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2016-10-11 10:18:01,unknown,1.0,1.0,10091195935.0,Address Matched +558596959222010102812352811888650,"12, Autumn Glade",,,ME5 8XP,5159511868,D,D,55,65,House,Mid-Terrace,2010-10-28,E07000110,E14000700,Kent,2010-10-28,rental (private),53,64,483,368.0,3.0,72,2.3,25.0,25.0,375.0,253.0,175.0,175.0,49.02,dual,N,NO DATA!,,,2401.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,2.0,100.0,0.0,Electric instantaneous at point of use,Very Poor,Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, partial insulation (assumed)",Average,Average,"Room heaters, electric",,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,Electric storage heaters,Poor,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,0.0,N,natural,"12, Autumn Glade",Maidstone,Faversham and Mid Kent,CHATHAM,England and Wales: 1976-1982,2010-10-28 12:35:28,rental (private),,,200003673506.0,Address Matched +1461118091512016070908465499060842,"52, Oxford Road",,,ME15 8DJ,8226195478,D,B,62,82,House,Semi-Detached,2016-07-06,E07000110,E14000700,Kent,2016-07-09,marketed sale,59,81,257,104.0,3.8,45,1.6,112.0,56.0,687.0,537.0,131.0,71.0,84.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,2.45,,N,natural,"52, Oxford Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2016-07-09 08:46:54,owner-occupied,,,200003685651.0,Address Matched +166454850222008102016112602408348,"52c, Huntington Road",Coxheath,,ME17 4DY,4049582568,C,C,78,79,Bungalow,Detached,2008-10-20,E07000110,E14000804,Kent,2008-10-20,marketed sale,76,77,166,161.0,2.3,28,2.2,60.0,40.0,284.0,287.0,79.0,79.0,95.1,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,50.0,0.0,From main system,Good,Very Good,"Solid, insulated (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.32,0.0,N,natural,"52c, Huntington Road, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2008-10-20 16:11:26,owner-occupied,,,10022901602.0,Address Matched +1072338269962014011612275848758534,"56, Hastings Road",,,ME15 7SP,3476648178,E,C,51,72,House,Semi-Detached,2014-01-15,E07000110,E14000804,Kent,2014-01-16,marketed sale,46,68,295,155.0,5.6,57,3.0,99.0,57.0,1015.0,777.0,122.0,81.0,99.0,Unknown,Y,NODATA!,,,2106.0,85.0,"double glazing, unknown install date",Normal,0.0,6.0,6.0,25.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Mostly double glazing,Poor,Poor,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 25% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"56, Hastings Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2014-01-16 12:27:58,owner-occupied,12.0,3.0,200003695480.0,Address Matched +7933d89d8086c519bc4619b7b690eb87c6fd110fe626e4edefc78b2e1454a2ef,3 Napier Court,Invicta Park,,ME14 2PJ,10001455394,C,B,71,87,House,Mid-Terrace,2021-08-27,E07000110,E14000804,Kent,2021-08-27,Stock condition survey,70,86,194,75.0,2.4,34,1.0,80.0,66.0,379.0,357.0,115.0,73.0,70.0,dual,Y,,,,,100.0,double glazing installed before 2002,Normal,1.0,4.0,4.0,78.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 78% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.44,0.0,N,natural,"3 Napier Court, Invicta Park",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2021-08-27 17:18:15,Rented (social),9.0,,200003724029.0,Energy Assessor +622148236552011042623072191290583,"2, Lenside Drive",Bearsted,,ME15 8UE,5394616868,D,C,59,69,House,Semi-Detached,2011-04-26,E07000110,E14000700,Kent,2011-04-26,marketed sale,54,68,266,188.0,4.6,51,3.3,72.0,46.0,665.0,509.0,172.0,123.0,90.54,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,44.0,0.0,From main system,Average,Average,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Average,Programmer and room thermostat,Average,Average,Low energy lighting in 44% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,2.33,0.0,,natural,"2, Lenside Drive, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2011-04-26 23:07:21,owner-occupied,9.0,4.0,200003691258.0,Address Matched +1122689490952015042416545790250828,"123, Tonbridge Road",,,ME16 8JS,8821002278,D,C,64,80,House,Detached,2015-04-24,E07000110,E14000804,Kent,2015-04-24,none of the above,55,75,212,112.0,7.4,37,4.0,177.0,90.0,1287.0,932.0,147.0,87.0,199.0,Single,Y,NODATA!,,,2104.0,20.0,"double glazing, unknown install date",Normal,0.0,10.0,10.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Some double glazing,Poor,Poor,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"123, Tonbridge Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2015-04-24 16:54:57,owner-occupied,,,200003657369.0,Address Matched +498314070452010061618252699900475,"32, Medway Avenue",Yalding,,ME18 6JN,4550096768,E,D,48,68,House,Semi-Detached,2010-06-11,E07000110,E14000804,Kent,2010-06-16,marketed sale,41,63,401,241.0,6.8,67,4.1,55.0,55.0,976.0,598.0,195.0,137.0,115.33,Single,Y,NO DATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,1.0,5.0,5.0,96.0,0.0,From main system,Average,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Average,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 96% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.44,0.0,N,natural,"32, Medway Avenue, Yalding",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2010-06-16 18:25:26,owner-occupied,,,200003660570.0,Address Matched +7947b019aaaa8bff5b75781a6d0b571a41ad9822cc32a10aad154c2872e36202,24 CAROLINE CRESCENT,,,ME16 0TP,10001427220,C,B,70,86,House,Detached,2021-07-06,E07000110,E14000804,Kent,2021-07-06,marketed sale,68,85,193,75.0,2.7,34,1.1,100.0,67.0,409.0,371.0,125.0,76.0,80.0,Unknown,Y,,,,,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,50.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 270 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,,,2.37,0.0,N,natural,24 CAROLINE CRESCENT,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2021-07-06 11:34:20,Owner-occupied,12.0,,200003662229.0,Energy Assessor +403108710342009112419170473012848,"19, Forge Lane",Headcorn,,TN27 9QN,8379810768,E,D,44,67,House,End-Terrace,2009-11-24,E07000110,E14000700,Kent,2009-11-24,marketed sale,38,61,437,251.0,7.4,73,4.2,89.0,51.0,1030.0,619.0,170.0,121.0,100.63,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,5.0,5.0,25.0,1.0,From main system,Average,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Average,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 25% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.43,0.0,N,natural,"19, Forge Lane, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,England and Wales: 1950-1966,2009-11-24 19:17:04,owner-occupied,,,200003698678.0,Address Matched +794a3f05d36ded7dee4f86a39f3976f3d8d176c8bc4476cd916d93373e2d41b6,Flat 3,213 Boxley Road,Maidstone ,ME14 2TL,10001603233,C,C,74,74,Flat,End-Terrace,2021-07-14,E07000110,E14000804,Kent,2021-07-14,new dwelling,79,79,234,234.0,1.0,41,1.0,29.0,29.0,180.0,180.0,80.0,80.0,24.0,standard tariff,,1,N,,,100.0,,,,,,100.0,0.0,Community scheme,Good,Good,Average thermal transmittance 0.20 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,Community scheme,Good,Good,"Flat rate charging, programmer and TRVs",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,,0.0,,,2.9,,,,"Flat 3, 213 Boxley Road, Maidstone",Maidstone,Maidstone and The Weald,Kent,2020,2021-07-14 08:41:10,Owner-occupied,8.0,,10095449989.0,Address Matched +7952a2e3d368f8f504f095a301a70ed0e1c6422dda5f62cc0222263676f3ac2d,56 Tydeman Road,Bearsted,,ME15 8LU,10001551369,D,B,65,89,House,Mid-Terrace,2021-08-25,E07000110,E14000700,Kent,2021-08-25,rental,60,88,254,64.0,3.5,45,0.9,65.0,65.0,497.0,348.0,190.0,67.0,78.0,Single,Y,,,,,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,100.0,0.0,"From main system, no cylinder thermostat",Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.39,0.0,N,natural,"56 Tydeman Road, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2021-08-25 16:12:15,Rented (private),14.0,,200003686194.0,Energy Assessor +456038289002010031715483170309138,Red Heugh House,Lower Road,Sutton Valence,ME17 3AL,6069783768,F,D,38,57,House,End-Terrace,2010-03-17,E07000110,E14000700,Kent,2010-03-17,marketed sale,38,50,486,359.0,6.2,80,4.6,70.0,39.0,940.0,737.0,207.0,94.0,76.94,Single,Y,NO DATA!,,,2107.0,0.0,not defined,Normal,0.0,3.0,3.0,22.0,0.0,Electric instantaneous at point of use,Very Poor,Poor,"Solid, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 22% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.42,0.0,N,natural,"Red Heugh House, Lower Road, Sutton Valence",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1900-1929,2010-03-17 15:48:31,owner-occupied,,,200003719394.0,Address Matched +199241959202017073119011255537898,"38, Whitebeam Drive",Coxheath,,ME17 4QY,6276255568,C,B,70,87,House,Semi-Detached,2017-07-31,E07000110,E14000804,Kent,2017-07-31,marketed sale,68,86,211,79.0,2.8,37,1.1,63.0,63.0,519.0,414.0,86.0,55.0,75.0,dual,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,89.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, partial insulation (assumed)",Average,Average,,,,"Pitched, 270 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 89% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"38, Whitebeam Drive, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1976-1982,2017-07-31 19:01:12,owner-occupied,,,200003672346.0,Address Matched +999750249022013090311432483428817,"6, Fir Tree Grove",,,ME5 8XD,1822433178,C,B,73,88,House,Mid-Terrace,2013-09-02,E07000110,E14000700,Kent,2013-09-03,none of the above,73,90,148,45.0,2.4,28,0.8,50.0,50.0,440.0,354.0,93.0,66.0,85.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, partial insulation (assumed)",Average,Average,,,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"6, Fir Tree Grove",Maidstone,Faversham and Mid Kent,CHATHAM,England and Wales: 1976-1982,2013-09-03 11:43:24,owner-occupied,11.0,11.0,200003676729.0,Address Matched +313623799402015042920422368359738,Pheasant Farm,Stickfast Lane,Sutton Valence,ME17 3DZ,4486493668,E,C,40,77,House,Detached,2015-04-17,E07000110,E14000700,Kent,2015-04-29,none of the above,34,66,244,83.0,15.0,65,6.5,132.0,135.0,2471.0,1633.0,306.0,105.0,228.0,dual,N,NODATA!,,,2104.0,11.0,secondary glazing,Normal,3.0,6.0,6.0,75.0,1.0,"From main system, no cylinder thermostat",Poor,Poor,"Solid, no insulation (assumed)",NO DATA!,,Some secondary glazing,Very Poor,Very Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, insulated (assumed)",Average,Average,"Boiler and radiators, oil",Average,Average,Programmer and room thermostat,Average,Average,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,oil (not community),0.0,NO DATA!,,,,N,natural,"Pheasant Farm, Stickfast Lane, Sutton Valence",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2015-04-29 20:42:23,owner-occupied,,,10014309729.0,Address Matched +1308667519262016012508153165648946,"124, Old Tovil Road",,,ME15 6QG,4626115378,D,B,63,87,House,Mid-Terrace,2016-01-24,E07000110,E14000804,Kent,2016-01-25,marketed sale,58,86,272,75.0,3.7,48,1.1,81.0,52.0,693.0,415.0,100.0,67.0,78.0,Single,Y,NODATA!,,,2107.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,43.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, no insulation",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 43% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"124, Old Tovil Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2016-01-25 08:15:31,owner-occupied,,,200003665752.0,Address Matched +1420085599922017031614581012968273,"34, Bunyard Way",Allington,,ME16 0BD,7123992478,B,A,84,94,House,Detached,2017-03-16,E07000110,E14000804,Kent,2017-03-16,new dwelling,85,95,81,17.0,1.6,14,0.4,68.0,68.0,261.0,262.0,105.0,57.0,114.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.14 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.26 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"34, Bunyard Way, Allington",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2017-03-16 14:58:10,owner-occupied,14.0,14.0,10091195411.0,Address Matched +685920809062011100518035730958209,"61, St. Lukes Road",,,ME14 5AS,375070968,E,D,52,55,House,Mid-Terrace,2011-10-05,E07000110,E14000804,Kent,2011-10-05,marketed sale,46,49,289,268.0,7.4,56,6.9,78.0,78.0,1237.0,1154.0,126.0,111.0,132.68,dual,Y,NODATA!,,,2106.0,95.0,double glazing installed before 2002,Normal,1.0,6.0,6.0,80.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Mostly double glazing,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,2.53,0.0,,natural,"61, St. Lukes Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2011-10-05 18:03:57,owner-occupied,15.0,12.0,200003705954.0,Address Matched +616627579402011041316344580599078,"1, Peter Pease Close",Kingswood,,ME17 3BZ,3429575868,B,B,85,86,House,Detached,2011-04-13,E07000110,E14000700,Kent,2011-04-13,new dwelling,86,86,92,89.0,1.7,15,1.6,82.0,62.0,268.0,270.0,116.0,116.0,112.8,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,,From main system,Very Good,Very Good,Average thermal transmittance 0.14 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.20 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.13 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Very Good,Very Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in 67% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,,,NO DATA!,"1, Peter Pease Close, Kingswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2011-04-13 16:34:45,,,,10014312158.0,Address Matched +596986971052011041423322892990783,"6, Turgis Close",Langley,,ME17 3HD,7376124868,D,C,66,74,Bungalow,End-Terrace,2011-04-14,E07000110,E14000700,Kent,2011-04-14,rental (social),60,70,400,293.0,2.5,67,1.8,20.0,20.0,382.0,326.0,148.0,91.0,36.73,Single,Y,NO DATA!,,,2107.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.37,0.0,N,natural,"6, Turgis Close, Langley",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2011-04-14 23:32:28,rental (social),,,200003697652.0,Address Matched +864133629022012120717165983438042,"58, Wrangleden Road",,,ME15 9LJ,4890273078,C,B,69,88,House,Semi-Detached,2012-12-07,E07000110,E14000700,Kent,2012-12-07,marketed sale,69,89,176,47.0,2.6,34,0.8,73.0,44.0,445.0,340.0,84.0,59.0,78.0,Single,Y,NODATA!,,,2106.0,0.0,single glazing,Normal,0.0,5.0,5.0,33.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 33% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"58, Wrangleden Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2012-12-07 17:16:59,unknown,6.0,2.0,200003710304.0,Address Matched +892258745732013050308133691078103,"24a, Knights Way",Headcorn,,TN27 9TX,4341175078,B,B,83,83,House,End-Terrace,2013-05-03,E07000110,E14000700,Kent,2013-05-03,new dwelling,86,86,80,80.0,1.4,15,1.4,54.0,54.0,244.0,244.0,92.0,92.0,90.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.18 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.20 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.15 W/m?K,Good,Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"24a, Knights Way, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,NO DATA!,2013-05-03 08:13:36,NO DATA!,11.0,11.0,10014314476.0,Address Matched +1520213029712017021611463290930850,"84, Lower Fant Road",,,ME16 8EA,8072900578,C,C,78,78,Flat,Semi-Detached,2017-02-15,E07000110,E14000804,Kent,2017-02-16,marketed sale,80,80,144,144.0,1.4,25,1.4,48.0,48.0,240.0,240.0,91.0,91.0,54.0,Single,Y,1st,N,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,83.0,0.0,From main system,Good,Good,(another dwelling below),NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 83% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,4.0,,,N,natural,"84, Lower Fant Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2017-02-16 11:46:32,owner-occupied,,,200003656563.0,Address Matched +7995bb1bc880602de86336a922622021194c6abe35df980bf9da5542ac692c69,6 BROADFIELD ROAD,,,ME15 6BS,10001558136,D,B,65,83,House,Semi-Detached,2021-07-30,E07000110,E14000804,Kent,2021-07-30,marketed sale,64,83,244,102.0,2.9,43,1.2,115.0,58.0,512.0,463.0,112.0,71.0,67.0,Single,Y,,,,,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,"Room heaters, electric",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,,,2.35,0.0,N,natural,6 BROADFIELD ROAD,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2021-07-30 12:39:38,Owner-occupied,9.0,,200003676376.0,Energy Assessor +1746087109262019082311105836778771,"22, Raymer Road",Penenden Heath,,ME14 2JQ,7351036678,B,B,87,88,House,Semi-Detached,2019-08-23,E07000110,E14000804,Kent,2019-08-23,new dwelling,87,89,67,55.0,1.5,12,1.2,84.0,84.0,270.0,272.0,103.0,56.0,127.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.21 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.14 W/m-¦K,Very Good,Very Good,"Boiler and underfloor heating, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"22, Raymer Road, Penenden Heath",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2019-08-23 11:10:58,owner-occupied,25.0,25.0,10094441023.0,Address Matched +1120854589442014040916571828140518,"26, Wilberforce Road",Coxheath,,ME17 4HB,6422881278,E,B,46,87,House,Semi-Detached,2014-04-09,E07000110,E14000804,Kent,2014-04-09,marketed sale,51,88,292,53.0,4.3,53,0.9,70.0,49.0,1006.0,385.0,91.0,67.0,81.0,Single,Y,NODATA!,,,2601.0,58.0,double glazing installed before 2002,Normal,0.0,4.0,1.0,56.0,0.0,Gas boiler/circulator,Average,Average,"Solid, no insulation (assumed)",,,Partial double glazing,Poor,Poor,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,Portable electric heaters assumed for most rooms,Very Poor,Very Poor,No thermostatic control of room temperature,Poor,Poor,Low energy lighting in 56% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"26, Wilberforce Road, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2014-04-09 16:57:18,owner-occupied,9.0,5.0,200003713419.0,Address Matched +118423576032010062314135661268009,"11, Stanhope Close",,,ME14 2RB,7941088468,C,C,76,80,House,Mid-Terrace,2010-06-23,E07000110,E14000804,Kent,2010-06-23,marketed sale,74,77,183,155.0,2.5,30,2.2,85.0,43.0,351.0,318.0,116.0,116.0,83.38,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,0.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.27,0.0,N,natural,"11, Stanhope Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2010-06-23 14:13:56,owner-occupied,,,200003671116.0,Address Matched +597514249962011111111574784198569,"5, Cranbrook Close",,,ME15 8ST,6891424868,D,D,57,58,House,Semi-Detached,2011-11-11,E07000110,E14000700,Kent,2011-11-11,rental (social),53,54,294,289.0,4.2,57,4.1,57.0,41.0,691.0,693.0,107.0,107.0,44.2,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,60.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 60% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,2.38,0.0,,natural,"5, Cranbrook Close",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2011-11-11 11:57:47,rental (social),10.0,6.0,200003685444.0,Address Matched +133378958752018103013292891789951,"12, Birkdale Court",Buckland Road,,ME16 0UH,9192810568,B,B,83,84,Flat,Mid-Terrace,2018-10-30,E07000110,E14000804,Kent,2018-10-30,rental (private),76,76,213,210.0,1.4,36,1.4,50.0,37.0,87.0,90.0,140.0,140.0,38.0,dual,N,1st,N,,2402.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,67.0,0.0,"Electric immersion, off-peak",Average,Poor,(another dwelling below),NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,Portable electric heaters (assumed),,,(another dwelling above),,,Electric storage heaters,Average,Very Poor,Automatic charge control,Average,Average,Low energy lighting in 67% of fixed outlets,Good,Good,electricity (not community),0.0,unheated corridor,5.91,,,N,natural,"12, Birkdale Court, Buckland Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2018-10-30 13:29:28,rental (private),,,200003667037.0,Address Matched +1480977339802017081612300640739068,"9, Hop Pocket Way",Headcorn,,TN27 9AF,2857237478,B,A,83,93,House,Detached,2017-08-16,E07000110,E14000700,Kent,2017-08-16,new dwelling,84,94,89,25.0,1.8,16,0.5,71.0,71.0,283.0,284.0,112.0,61.0,115.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.26 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.10 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"9, Hop Pocket Way, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,NO DATA!,2017-08-16 12:30:06,unknown,20.0,20.0,10093302557.0,Address Matched +47920979642019080208195455510398,Flat 28 Bellwood Court,Sutton Road,,ME15 8RB,6668175568,C,C,79,80,Flat,End-Terrace,2019-08-01,E07000110,E14000700,Kent,2019-08-02,rental (social),81,83,132,117.0,1.4,23,1.3,53.0,53.0,245.0,216.0,89.0,89.0,62.0,Single,Y,2nd,Y,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,(another dwelling below),NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,heated corridor,,,,N,natural,"Flat 28 Bellwood Court, Sutton Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2007 onwards,2019-08-02 08:19:54,rental (social),,,10014306273.0,Address Matched +1558522432312017071115200698930554,Brockenhurst,Maidstone Road,Sutton Valence,ME17 3LS,5421282578,D,C,62,76,Bungalow,Detached,2017-07-11,E07000110,E14000700,Kent,2017-07-11,marketed sale,61,75,251,153.0,4.0,40,2.4,70.0,70.0,797.0,701.0,109.0,76.0,98.0,Single,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,1.0,3.0,3.0,88.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, wood logs",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 88% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"Brockenhurst, Maidstone Road, Sutton Valence",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2017-07-11 15:20:06,owner-occupied,,,200003697177.0,Address Matched +1636349059762018053111523478198448,"26, Gates Drive",,,ME17 3GE,4722538578,B,A,83,97,House,Mid-Terrace,2018-05-31,E07000110,E14000700,Kent,2018-05-31,new dwelling,87,100,93,-20.0,1.0,16,-0.2,46.0,46.0,175.0,175.0,72.0,43.0,60.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"26, Gates Drive",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2018-05-31 11:52:34,unknown,7.0,7.0,10093304004.0,Address Matched +299137089262019052112242862198361,"38, Bridgeside Mews",,,ME15 6TB,6678882668,C,C,80,80,Flat,Mid-Terrace,2019-05-21,E07000110,E14000804,Kent,2019-05-21,rental (private),83,83,124,124.0,1.2,22,1.2,49.0,49.0,213.0,213.0,85.0,85.0,57.0,Single,Y,2nd,Y,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,(another dwelling below),NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,6.88,,,N,natural,"38, Bridgeside Mews",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2019-05-21 12:24:28,rental (private),,,10014308048.0,Address Matched +1123037909542016093006401020262518,"11, Evelyn Road",,,ME16 8BL,4573302278,D,B,57,83,House,Mid-Terrace,2016-09-29,E07000110,E14000804,Kent,2016-09-30,marketed sale,49,79,299,102.0,4.8,53,1.7,112.0,59.0,808.0,514.0,165.0,76.0,91.0,Unknown,Y,NODATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,2.0,6.0,6.0,9.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, mains gas",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 9% of fixed outlets,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,2.3,,N,natural,"11, Evelyn Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2016-09-30 06:40:10,owner-occupied,,,200003667474.0,Address Matched +381508471012010082410134397200461,"1, John Street",,,ME14 2SG,4188178668,D,D,62,62,House,End-Terrace,2010-08-23,E07000110,E14000804,Kent,2010-08-24,rental (private),55,55,313,311.0,4.2,52,4.1,52.0,42.0,670.0,673.0,96.0,96.0,79.25,Single,Y,NO DATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,75.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.44,0.0,N,natural,"1, John Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2010-08-24 10:13:43,rental (private),,,200003702666.0,Address Matched +596829309262019062015262194508741,13 Council Houses,Howland Road,Marden,TN12 9ER,4903024868,C,B,69,82,House,Semi-Detached,2019-06-20,E07000110,E14000804,Kent,2019-06-20,none of the above,65,79,204,110.0,3.3,36,1.8,85.0,85.0,528.0,495.0,133.0,80.0,92.0,dual,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,5.0,5.0,83.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 83% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"13 Council Houses, Howland Road, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1950-1966,2019-06-20 15:26:21,rental (social),,,200003662772.0,Address Matched +267006060502009041613430365019868,2 Harrietsham House,Burdock Court,,ME16 0GN,9581760668,E,C,47,69,Flat,Semi-Detached,2009-04-16,E07000110,E14000804,Kent,2009-04-16,rental (private),60,58,317,334.0,3.5,48,3.6,83.0,42.0,593.0,322.0,123.0,123.0,72.39,dual,N,Ground,N,3.0,2603.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,0.0,0.0,"Electric immersion, off-peak",Average,Poor,"Solid, limited insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Room heaters, electric",Very Poor,Poor,Programmer and appliance thermostats,Good,Good,No low energy lighting,Very Poor,Very Poor,electricity - this is for backwards compatibility only and should not be used,0.0,unheated corridor,7.18,2.36,0.0,N,natural,"2 Harrietsham House, Burdock Court",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2009-04-16 13:43:03,rental (private),,,10022897196.0,Address Matched +672040538932011083016573058768102,Arundel Lodge,Manor Lane,Hollingbourne,ME17 1UN,3208179868,D,D,67,68,House,Detached,2011-08-30,E07000110,E14000700,Kent,2011-08-30,marketed sale,63,64,184,177.0,5.6,35,5.4,137.0,71.0,879.0,887.0,117.0,117.0,159.14,dual,Y,NODATA!,,,2106.0,0.0,not defined,Normal,0.0,6.0,6.0,7.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 7% of fixed outlets,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,2.4,0.0,,natural,"Arundel Lodge, Manor Lane, Hollingbourne",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1976-1982,2011-08-30 16:57:30,owner-occupied,29.0,2.0,10022892556.0,Address Matched +785495069062012050813081958388612,"18, The Hurstings",,,ME15 6YN,1565618968,C,B,71,83,House,Detached,2012-05-08,E07000110,E14000804,Kent,2012-05-08,marketed sale,67,82,169,84.0,2.8,33,1.4,76.0,50.0,591.0,463.0,154.0,69.0,84.0,dual,Y,NODATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,1.0,4.0,4.0,47.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 47% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,,natural,"18, The Hurstings",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1976-1982,2012-05-08 13:08:19,owner-occupied,15.0,7.0,200003716443.0,Address Matched +1260183812012015012319005797250234,4 Great Cheveney Farm Cottages,Goudhurst Road,Marden,TN12 9LX,2497271378,D,A,64,109,House,Semi-Detached,2015-01-23,E07000110,E14000804,Kent,2015-01-23,marketed sale,59,104,266,-62.0,3.3,47,-0.7,46.0,46.0,624.0,443.0,105.0,68.0,71.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"4 Great Cheveney Farm Cottages, Goudhurst Road, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1930-1949,2015-01-23 19:00:57,owner-occupied,,,10014314226.0,Address Matched +596690119742016092812514387462558,Flat 3/A Walsingham House,Wheeler Street,,ME14 2UD,2758914868,C,C,71,79,Flat,Mid-Terrace,2016-09-25,E07000110,E14000804,Kent,2016-09-28,rental (social),70,81,202,126.0,2.4,36,1.5,68.0,47.0,427.0,263.0,97.0,97.0,66.0,Single,Y,2nd,Y,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,57.0,0.0,From main system,Good,Good,(another dwelling below),NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Flat, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 57% of fixed outlets,Good,Good,mains gas (not community),0.0,no corridor,,2.31,,N,natural,"Flat 3/A Walsingham House, Wheeler Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2016-09-28 12:51:43,rental (social),,,200003704491.0,Address Matched +157818515852008100811061700089751,"33, Grove Road",,,ME15 9AS,7114502568,D,C,68,76,House,Mid-Terrace,2008-10-08,E07000110,E14000700,Kent,2008-10-08,marketed sale,64,73,262,195.0,3.3,44,2.4,63.0,33.0,364.0,305.0,121.0,89.0,74.58,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,4.0,4.0,10.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 10% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.41,0.0,N,natural,"33, Grove Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2008-10-08 11:06:17,owner-occupied,,,200003713537.0,Address Matched +920448084432014041716392282978408,"4, Butler Close",Harrietsham,,ME17 1FR,8812467078,B,B,89,90,House,Detached,2014-04-17,E07000110,E14000700,Kent,2014-04-17,new dwelling,90,91,55,46.0,1.2,10,1.0,67.0,67.0,257.0,257.0,144.0,108.0,124.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.17 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"4, Butler Close, Harrietsham",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2014-04-17 16:39:22,owner-occupied,12.0,12.0,10014314942.0,Address Matched +522402729922018081617324608768208,1 Saynden Cottage,Five Oak Lane,Staplehurst,TN12 0HX,66268768,E,B,42,88,House,Semi-Detached,2018-08-16,E07000110,E14000804,Kent,2018-08-16,rental (private),36,74,285,25.0,6.4,75,2.1,82.0,82.0,702.0,490.0,101.0,130.0,85.0,dual,N,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,3.0,5.0,5.0,78.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, oil",Average,Average,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 78% of fixed outlets,Very Good,Very Good,oil (not community),0.0,NO DATA!,,,,N,natural,"1 Saynden Cottage, Five Oak Lane, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: before 1900,2018-08-16 17:32:46,rental (private),,,200003709378.0,Address Matched +526156989102010081114404770809898,Tower House,Pleasure House Lane,Sutton Valence,ME17 3NW,6104588768,E,E,41,49,House,Detached,2010-08-11,E07000110,E14000700,Kent,2010-08-11,marketed sale,44,53,372,313.0,10.0,53,8.6,160.0,107.0,1885.0,1643.0,203.0,163.0,172.05,Single,Y,NO DATA!,,,2106.0,50.0,secondary glazing,Normal,1.0,9.0,9.0,50.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Partial secondary glazing,Poor,Poor,"Sandstone, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,0.0,N,natural,"Tower House, Pleasure House Lane, Sutton Valence",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2010-08-11 14:40:47,owner-occupied,,,200003707867.0,Address Matched +1702015912652019030419032891010362,"5, Willow Rise",Downswood,,ME15 8XR,3224213678,C,B,73,91,House,Enclosed End-Terrace,2019-03-04,E07000110,E14000700,Kent,2019-03-04,marketed sale,75,93,215,33.0,1.5,38,0.3,41.0,41.0,280.0,262.0,74.0,48.0,40.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,75.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"5, Willow Rise, Downswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2019-03-04 19:03:28,owner-occupied,,,200003687131.0,Address Matched +1479018499922017061614504447168943,27 Southfields Way,Harrietsham,,ME17 1GE,4446917478,B,A,83,96,House,Semi-Detached,2017-06-16,E07000110,E14000700,Kent,2017-06-16,new dwelling,86,99,92,-6.0,1.1,16,0.0,52.0,52.0,200.0,200.0,80.0,47.0,70.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.27 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"27 Southfields Way, Harrietsham",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2017-06-16 14:50:44,owner-occupied,11.0,11.0,10093303146.0,Address Matched +7a0cad1284317a9d701fac44c88fea273c65f563ef304123e3c63cf46bfabc91,156 WALLIS PLACE,HART STREET,,ME16 8FE,1527088468,C,C,80,80,Flat,Mid-Terrace,2021-08-05,E07000110,E14000804,Kent,2021-08-05,rental,84,84,122,122.0,1.0,21,1.0,47.0,47.0,166.0,166.0,106.0,106.0,49.0,Unknown,Y,04,Y,,,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,(another dwelling below),,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Flat, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,heated corridor,,2.32,0.0,N,natural,"156 WALLIS PLACE, HART STREET",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007-2011,2021-08-05 19:28:30,Rented (private),9.0,,10022900760.0,Energy Assessor +1635340829142018052710462856882668,"17, Burghclere Drive",,,ME16 8UQ,5143828578,C,B,69,87,House,Mid-Terrace,2018-05-26,E07000110,E14000804,Kent,2018-05-27,marketed sale,68,87,224,68.0,2.2,39,0.7,58.0,41.0,384.0,336.0,84.0,55.0,55.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,57.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 57% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"17, Burghclere Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2018-05-27 10:46:28,owner-occupied,,,200003675799.0,Address Matched +7a1cb301ec0418196f05fb3458f4ab058a8dd6f830e8492849b52c4aa3b1aee7,42 PERRY STREET,,,ME14 2RP,10001488730,E,D,53,67,Flat,Mid-Terrace,2021-06-29,E07000110,E14000804,Kent,2021-07-01,ECO assessment,52,69,351,226.0,3.3,61,2.1,95.0,48.0,687.0,462.0,86.0,86.0,54.0,Single,Y,00,N,,,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,0.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,no corridor,,2.8,0.0,N,"mechanical, extract only",42 PERRY STREET,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2021-07-01 18:42:29,Rented (social),7.0,,200003669573.0,Energy Assessor +1565020979062017080710432843238093,"5, Clarendon Close",Bearsted,,ME14 4JD,9440723578,C,B,71,81,House,Detached,2017-08-07,E07000110,E14000700,Kent,2017-08-07,marketed sale,65,76,177,114.0,4.6,31,3.0,80.0,80.0,780.0,719.0,136.0,85.0,147.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,6.0,6.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"5, Clarendon Close, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2017-08-07 10:43:28,owner-occupied,,,200003692193.0,Address Matched +225894089022019030520134657158711,"115, York Road",,,ME15 7QX,1522837568,C,B,69,85,House,Mid-Terrace,2019-03-05,E07000110,E14000700,Kent,2019-03-05,rental (private),67,83,223,98.0,2.8,39,1.2,53.0,53.0,417.0,400.0,154.0,79.0,70.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,3.0,3.0,100.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"115, York Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2019-03-05 20:13:46,rental (private),,,200003715725.0,Address Matched +1424176029242016031506280442369748,"21, McKenzie Court",,,ME14 1JU,8200823478,B,B,81,83,Flat,Enclosed Mid-Terrace,2016-03-14,E07000110,E14000804,Kent,2016-03-15,rental (private),73,74,201,192.0,1.9,34,1.8,94.0,47.0,118.0,128.0,140.0,140.0,55.0,dual,N,3rd,Y,,2401.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,0.0,0.0,"Electric immersion, off-peak",Average,Poor,(another dwelling below),NO DATA!,,Fully double glazed,Good,Good,"System built, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,"Flat, insulated (assumed)",Good,Good,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,No low energy lighting,Very Poor,Very Poor,electricity (not community),0.0,heated corridor,,,,N,natural,"21, McKenzie Court",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2016-03-15 06:28:04,rental (private),,,10014306628.0,Address Matched +7a3f839034b585a1e7b6252cc77fc1db3b20ecae02979abbdd2b9ccb1531ac11,8 ORCHARD GLADE,HEADCORN,,TN27 9SS,10001572716,D,C,61,79,Bungalow,Detached,2021-07-13,E07000110,E14000700,Kent,2021-07-13,non marketed sale,54,74,276,140.0,4.1,49,2.1,73.0,73.0,707.0,576.0,112.0,69.0,83.0,dual,Y,,,,,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,"Room heaters, mains gas",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.35,0.0,N,natural,"8 ORCHARD GLADE, HEADCORN",Maidstone,Faversham and Mid Kent,ASHFORD,England and Wales: 1950-1966,2021-07-13 13:45:30,Owner-occupied,9.0,,200003700889.0,Energy Assessor +272378874132009042417471955268703,Ellisfield,North Pole Road,Barming,ME16 9HH,7345701668,D,D,59,61,House,Detached,2009-04-24,E07000110,E14000804,Kent,2009-04-24,marketed sale,54,55,268,262.0,6.7,44,6.6,115.0,71.0,868.0,877.0,148.0,148.0,124.6,Unknown,Y,NO DATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,2.0,7.0,7.0,38.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, dual fuel (mineral and wood)",,,"Flat, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 38% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.7,0.0,N,natural,"Ellisfield, North Pole Road, Barming",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2009-04-24 17:47:19,owner-occupied,,,200003667630.0,Address Matched +80934678852016061915140794960946,"1, The Laurels",Western Road,,ME16 8PW,9667845468,D,B,65,87,House,End-Terrace,2016-06-13,E07000110,E14000804,Kent,2016-06-19,assessment for green deal,61,85,242,73.0,3.4,43,1.1,106.0,53.0,564.0,396.0,142.0,83.0,79.0,Single,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, partial insulation (assumed)",Average,Average,,,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,2.46,,N,natural,"1, The Laurels, Western Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1976-1982,2016-06-19 15:14:07,owner-occupied,,,200003656639.0,Address Matched +7a5b88575e587dbf2fd3007b7fc5a07ae4cf41d225953d78d3bb18fe81434fd7,FLAT 3,LAVENDER HOUSE,NORTHUMBERLAND ROAD,ME15 7RW,10001672867,E,C,54,72,Flat,Semi-Detached,2021-06-29,E07000110,E14000700,Kent,2021-07-01,ECO assessment,53,75,410,217.0,2.9,72,1.5,75.0,38.0,583.0,316.0,75.0,76.0,40.0,Single,Y,00,N,,,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,0.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Average,Average,"Room heaters, electric",,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,unheated corridor,4.5,2.79,0.0,N,natural,"FLAT 3, LAVENDER HOUSE, NORTHUMBERLAND ROAD",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2021-07-01 18:25:50,Rented (social),8.0,,200003714058.0,Energy Assessor +1765781739922019111415131087448461,"29, Chapelfield Way",Allington,,ME16 9FU,6873377678,B,B,86,88,House,End-Terrace,2019-11-14,E07000110,E14000804,Kent,2019-11-14,new dwelling,86,88,70,59.0,1.6,12,1.3,83.0,83.0,289.0,290.0,96.0,53.0,126.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.19 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.16 W/m-¦K,Good,Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"29, Chapelfield Way, Allington",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2019-11-14 15:13:10,unknown,33.0,33.0,10093306713.0,Address Matched +527228313912010081315500099900578,The Vine,Rectory Lane,Harrietsham,ME17 1HS,5807398768,E,C,53,73,House,Semi-Detached,2010-08-13,E07000110,E14000700,Kent,2010-08-13,marketed sale,48,70,356,203.0,5.3,60,3.0,61.0,47.0,825.0,489.0,135.0,102.0,88.4,Single,Y,NO DATA!,,,2107.0,90.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,70.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Mostly double glazing,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 70% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,0.0,N,natural,"The Vine, Rectory Lane, Harrietsham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2010-08-13 15:50:00,owner-occupied,,,200003704185.0,Address Matched +241154667132009031012164131068504,"47, Hedley Street",,,ME14 5AD,6451598568,D,C,64,72,House,End-Terrace,2009-03-09,E07000110,E14000804,Kent,2009-03-10,rental (private),58,68,346,267.0,3.0,57,2.3,45.0,25.0,403.0,338.0,115.0,92.0,62.4,Single,Y,NO DATA!,,,2104.0,0.0,INVALID!,Normal,0.0,3.0,3.0,16.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 100mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Poor,Poor,Low energy lighting in 16% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.37,0.0,N,natural,"47, Hedley Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2009-03-10 12:16:41,rental (private),,,200003705990.0,Address Matched +296233500062009060516543492658741,"19, Sidney Street",,,ME16 8LH,4959072668,D,C,66,77,House,End-Terrace,2009-06-05,E07000110,E14000804,Kent,2009-06-05,marketed sale,61,73,284,195.0,3.4,47,2.3,64.0,32.0,428.0,308.0,75.0,75.0,71.76,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.3,0.0,N,natural,"19, Sidney Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2009-06-05 16:54:34,owner-occupied,,,200003655613.0,Address Matched +577007059642011010417044085290348,"20, Buckland Gardens",,,ME16 0ZB,612852868,B,B,88,89,Flat,NO DATA!,2011-01-04,E07000110,E14000804,Kent,2011-01-04,new dwelling,88,88,105,99.0,1.0,17,0.9,47.0,31.0,196.0,197.0,80.0,80.0,57.25,standard tariff,,ground floor,,,,,NO DATA!,NO DATA!,,,,7.0,,From main system,Very Good,Very Good,Average thermal transmittance 0.15 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.28 W/m?K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.45,,,NO DATA!,"20, Buckland Gardens",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2011-01-04 17:04:40,,14.0,7.0,10014308676.0,Address Matched +380407860602009101311162066819578,Flat 1,56a Union Street,,ME14 1ED,5659068668,D,D,59,61,Flat,Mid-Terrace,2009-10-13,E07000110,E14000804,Kent,2009-10-13,new dwelling,61,61,408,404.0,2.5,62,2.5,54.0,27.0,273.0,283.0,161.0,161.0,40.8,off-peak 7 hour,,mid floor,,,,,NO DATA!,NO DATA!,,,,,,Electric instantaneous at point of use,Very Poor,Poor,Average thermal transmittance 0.28 W/m?K,Good,Good,Partial double glazing,Good,Good,Average thermal transmittance 0.65 W/m?K,Average,Average,"Room heaters, electric",,,Average thermal transmittance 0.15 W/m?K,Very Good,Very Good,Electric storage heaters,Poor,Very Poor,Automatic charge control,Average,Average,No low energy lighting,Very Poor,Very Poor,"Electricity: electricity, unspecified tariff",0.0,NO DATA!,,2.3,,,NO DATA!,"Flat 1, 56a Union Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2009-10-13 11:16:20,,,,, +900512019922013031919295046318627,Overmist,The Street,Ulcombe,ME17 1DR,2456136078,C,B,76,84,Bungalow,Detached,2013-03-19,E07000110,E14000700,Kent,2013-03-19,marketed sale,69,77,103,68.0,7.0,25,4.9,137.0,98.0,1086.0,999.0,195.0,109.0,280.0,Single,N,NODATA!,,,2105.0,100.0,double glazing installed during or after 2002,Normal,0.0,7.0,7.0,61.0,0.0,From main system,Average,Average,"Solid, insulated (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, dual fuel (mineral and wood)",,,"Roof room(s), insulated",Good,Good,"Boiler and underfloor heating, oil",Average,Average,Programmer and at least two room thermostats,Good,Good,Low energy lighting in 61% of fixed outlets,Good,Good,oil (not community),0.0,NO DATA!,,,0.0,,natural,"Overmist, The Street, Ulcombe",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2003-2006,2013-03-19 19:29:50,owner-occupied,33.0,20.0,200003655278.0,Address Matched +597117700552013062023504592270984,"220, Westmorland Road",,,ME15 8JD,9419024868,C,B,72,87,House,Mid-Terrace,2013-06-20,E07000110,E14000700,Kent,2013-06-20,rental (social),72,88,161,54.0,2.5,31,0.9,78.0,46.0,379.0,358.0,129.0,71.0,80.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,30.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"System built, with external insulation",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 30% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"220, Westmorland Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2013-06-20 23:50:45,rental (social),10.0,3.0,200003680635.0,Address Matched +588916026312011020618541095090689,"22, Keswick Drive",,,ME16 0DQ,6937653868,D,C,63,75,House,Semi-Detached,2011-02-04,E07000110,E14000804,Kent,2011-02-06,marketed sale,58,71,259,179.0,5.1,43,3.5,127.0,67.0,768.0,580.0,146.0,103.0,118.26,Single,Y,NO DATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,1.0,7.0,7.0,11.0,0.0,"From main system, plus solar",Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Average,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 11% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.38,0.0,Y,natural,"22, Keswick Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1991-1995,2011-02-06 18:54:10,owner-occupied,,,200003659645.0,Address Matched +96882519262011082419084516148989,"1, Bell Farm Gardens",Barming,,ME16 9QA,8114176468,D,D,60,65,House,Detached,2011-08-24,E07000110,E14000804,Kent,2011-08-24,marketed sale,56,62,245,212.0,4.8,47,4.2,110.0,55.0,732.0,681.0,133.0,114.0,102.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,0.0,1.0,From main system,Good,Good,"Suspended, limited insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, mains gas",,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,2.3,0.0,,natural,"1, Bell Farm Gardens, Barming",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2011-08-24 19:08:45,owner-occupied,18.0,0.0,200003666776.0,Address Matched +1311388919922015041709424185158535,"37, Spot Lane",Bearsted,,ME15 8NX,3844135378,E,B,50,85,House,Semi-Detached,2015-04-15,E07000110,E14000700,Kent,2015-04-17,marketed sale,43,83,392,96.0,5.2,69,1.3,71.0,49.0,877.0,458.0,188.0,71.0,74.0,Single,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,1.0,4.0,4.0,55.0,1.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 55% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"37, Spot Lane, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2015-04-17 09:42:41,owner-occupied,,,200003690735.0,Address Matched +1667741919222018102916531680418438,Flat 131,Brenchley House,123-135 Week Street,ME14 1FY,3825160678,C,C,75,75,Flat,Mid-Terrace,2018-10-29,E07000110,E14000700,Kent,2018-10-29,new dwelling,80,80,184,184.0,1.1,32,1.1,28.0,28.0,193.0,193.0,96.0,96.0,34.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,Community scheme,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.30 W/m-¦K,Good,Good,,,,Average thermal transmittance 0.18 W/m-¦K,Good,Good,Community scheme,Good,Good,"Charging system linked to use of community heating, programmer and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,NO DATA!,,NO DATA!,,,,,NO DATA!,"Flat 131, Brenchley House, 123-135 Week Street",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2018-10-29 16:53:16,unknown,6.0,6.0,10094440807.0,Address Matched +1817859222962020081710004361648090,"19, Hayle Road",,,ME15 6PD,9616251778,D,C,58,80,House,Mid-Terrace,2020-08-14,E07000110,E14000804,Kent,2020-08-17,marketed sale,48,75,274,122.0,7.8,48,3.5,152.0,101.0,1317.0,794.0,131.0,85.0,160.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,7.0,7.0,50.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"19, Hayle Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2020-08-17 10:00:43,owner-occupied,,,200003692777.0,Address Matched +205811769132009010717043409068109,3 Malt House Cottages,Dean Street,East Farleigh,ME15 0PS,6969116568,E,C,53,73,House,Mid-Terrace,2009-01-07,E07000110,E14000804,Kent,2009-01-07,rental (private),44,64,292,177.0,6.8,63,4.1,104.0,52.0,753.0,431.0,217.0,169.0,91.66,Single,N,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,4.0,4.0,0.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, oil",Average,Average,"Programmer, room thermostat and TRVs",Average,Average,No low energy lighting,Very Poor,Very Poor,oil - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.22,0.0,N,natural,"3 Malt House Cottages, Dean Street, East Farleigh",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2009-01-07 17:04:34,rental (private),,,200003730111.0,Address Matched +371919882852009092817452200210567,Flat 1,"19-21, The Broadway",,ME16 8QX,5701208668,E,C,42,71,Flat,Detached,2009-09-27,E07000110,E14000804,Kent,2009-09-28,marketed sale,61,60,331,332.0,3.2,49,3.2,71.0,39.0,514.0,291.0,265.0,123.0,64.6,Single,N,Ground,N,4.0,2601.0,95.0,secondary glazing,Normal,0.0,4.0,4.0,0.0,0.0,"Electric immersion, standard tariff",Very Poor,Poor,"Solid, limited insulation (assumed)",,,Partial secondary glazing,Average,Average,"Solid brick, as built, insulated (assumed)",Good,Good,Portable electric heaters,,,(another dwelling above),,,"Room heaters, electric",Very Poor,Poor,No thermostatic control of room temperature,Poor,Poor,No low energy lighting,Very Poor,Very Poor,electricity - this is for backwards compatibility only and should not be used,0.0,heated corridor,,1.9,0.0,N,natural,"Flat 1, 19-21, The Broadway",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2009-09-28 17:45:22,owner-occupied,,,10014307877.0,Address Matched +7a8e2d0c95eb9b93f0c387897615e77f68dd49ed42638f566942dca1cd0825a8,52 SPRINGETT WAY,COXHEATH,,ME17 4HQ,10001524704,C,B,70,85,Bungalow,Semi-Detached,2021-08-06,E07000110,E14000804,Kent,2021-08-06,marketed sale,68,83,209,98.0,2.9,37,1.4,72.0,72.0,501.0,446.0,79.0,54.0,78.0,dual,Y,,,,,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.41,0.0,N,natural,"52 SPRINGETT WAY, COXHEATH",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2021-08-06 14:34:22,Owner-occupied,9.0,,200003714077.0,Energy Assessor +406153129262019112017243130108151,"16, St. Philips Avenue",,,ME15 7SN,5386240768,D,C,58,75,House,Mid-Terrace,2019-11-20,E07000110,E14000804,Kent,2019-11-20,rental (private),49,68,289,164.0,6.2,51,3.6,101.0,81.0,1080.0,825.0,97.0,66.0,122.0,Single,Y,NODATA!,,,2104.0,92.0,double glazing installed before 2002,Normal,3.0,6.0,6.0,75.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Mostly double glazing,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, mains gas",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"16, St. Philips Avenue",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2019-11-20 17:24:31,rental (private),,,200003696735.0,Address Matched +1108567347432014031707303991978900,April Cottage,Spenny Lane,Marden,TN12 9PR,4081990278,F,C,35,70,House,Semi-Detached,2014-03-14,E07000110,E14000804,Kent,2014-03-17,marketed sale,17,41,542,303.0,16.0,99,8.6,146.0,83.0,1697.0,1214.0,574.0,102.0,157.0,dual,N,NODATA!,,,2401.0,75.0,double glazing installed during or after 2002,Normal,2.0,6.0,2.0,22.0,2.0,"From secondary system, no cylinder thermostat",Very Poor,Very Poor,"Solid, no insulation (assumed)",,,Partial double glazing,Average,Average,"Cavity wall, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 22% of fixed outlets,Poor,Poor,electricity (not community),0.0,NO DATA!,,,0.0,,natural,"April Cottage, Spenny Lane, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: before 1900,2014-03-17 07:30:39,owner-occupied,9.0,2.0,200003661298.0,Address Matched +413372499002011081016112874099508,"78, Forest Hill",,,ME15 6TH,5035290768,E,D,47,67,House,Mid-Terrace,2011-08-10,E07000110,E14000804,Kent,2011-08-10,marketed sale,44,67,385,216.0,4.9,74,2.7,41.0,41.0,771.0,453.0,163.0,107.0,66.2,Single,Y,NODATA!,,,2107.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,90.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 90% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,2.294,0.0,,natural,"78, Forest Hill",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2011-08-10 16:11:28,owner-occupied,10.0,9.0,200003664991.0,Address Matched +317043106132009071509125830068908,Apartment 12,7 Bazalgette Rise,,ME16 8FJ,800914668,B,B,86,86,Flat,Detached,2009-06-01,E07000110,E14000804,Kent,2009-07-15,new dwelling,86,86,103,103.0,1.2,17,1.2,41.0,41.0,201.0,201.0,88.0,88.0,73.94,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,,From main system,Very Good,Very Good,(other premises below),,,Fully double glazed,Good,Good,Average thermal transmittance 0.19 W/m??K,Very Good,Very Good,,,,Average thermal transmittance 0.20 W/m??K,Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 100% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.5,,,NO DATA!,"Apartment 12, 7 Bazalgette Rise",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2009-07-15 09:12:58,,,,10014308171.0,Address Matched +763709949712012032020075795220695,"36, Chipstead Close",,,ME16 0DH,6548956968,E,D,54,59,House,Semi-Detached,2012-03-20,E07000110,E14000804,Kent,2012-03-20,marketed sale,49,54,294,257.0,5.6,57,4.9,67.0,52.0,913.0,815.0,120.0,108.0,63.9,Unknown,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,2.0,6.0,6.0,70.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, insulated (assumed)",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 70% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,2.3,0.0,,natural,"36, Chipstead Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2012-03-20 20:07:57,owner-occupied,10.0,7.0,200003658704.0,Address Matched +978927193632016071918084217978908,"6, Bell Meadow",,,ME15 9NB,9867971178,C,B,70,84,House,Semi-Detached,2016-07-19,E07000110,E14000700,Kent,2016-07-19,marketed sale,67,82,201,97.0,3.2,35,1.6,77.0,59.0,519.0,489.0,166.0,85.0,90.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,5.0,5.0,70.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 270 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 70% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,2.3,,N,natural,"6, Bell Meadow",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2016-07-19 18:08:42,owner-occupied,,,200003682581.0,Address Matched +979870128052017072016382198230718,High Vistas,Yelsted,,ME9 7UT,7842881178,D,C,65,73,Bungalow,Detached,2017-07-20,E07000110,E14000700,Kent,2017-07-20,non marketed sale,57,65,144,99.0,6.0,37,4.6,83.0,83.0,671.0,674.0,134.0,81.0,163.0,Single,N,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,5.0,5.0,100.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, oil",Average,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,oil (not community),0.0,NO DATA!,,,,N,natural,"High Vistas, Yelsted",Maidstone,Faversham and Mid Kent,SITTINGBOURNE,England and Wales: 1950-1966,2017-07-20 16:38:21,owner-occupied,,,200003732546.0,Address Matched +611539839242011033015023284597208,Orchard House,The Street,Ulcombe,ME17 1DR,9233135868,C,C,70,73,House,Detached,2011-03-30,E07000110,E14000700,Kent,2011-03-30,marketed sale,68,69,143,134.0,6.9,29,6.6,277.0,138.0,852.0,892.0,221.0,221.0,239.9,Single,N,NO DATA!,,,2110.0,100.0,double glazing installed during or after 2002,Normal,0.0,7.0,7.0,0.0,0.0,"From main system, plus solar",Good,Good,"Solid, insulated (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and underfloor heating, oil",Average,Average,Time and temperature zone control,Very Good,Very Good,No low energy lighting,Very Poor,Very Poor,oil - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.47,0.0,Y,natural,"Orchard House, The Street, Ulcombe",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2007 onwards,2011-03-30 15:02:32,owner-occupied,,,200003701180.0,Address Matched +1693924459142019012908175366212318,"3, Sergison Crescent",Staplehurst,,TN12 0FP,9136052678,B,A,84,94,House,Detached,2019-01-29,E07000110,E14000804,Kent,2019-01-29,new dwelling,85,95,85,15.0,1.5,15,0.3,68.0,68.0,241.0,241.0,83.0,51.0,98.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.12 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.28 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.12 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"3, Sergison Crescent, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,NO DATA!,2019-01-29 08:17:53,unknown,10.0,10.0,10093304197.0,Address Matched +973971359442013071900050118179388,"17, Felderland Road",,,ME15 9YA,3437051178,C,B,70,90,Bungalow,End-Terrace,2013-07-18,E07000110,E14000700,Kent,2013-07-19,rental (social),72,93,199,28.0,1.8,38,0.3,42.0,30.0,346.0,306.0,77.0,55.0,47.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,57.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 57% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"17, Felderland Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2013-07-19 00:05:01,rental (social),7.0,4.0,200003682791.0,Address Matched +1737062059962019071718283155568461,"19a, Holland Road",,,ME14 1UN,6555565678,D,C,55,74,Maisonette,End-Terrace,2019-07-16,E07000110,E14000804,Kent,2019-07-17,rental (private),49,74,363,181.0,3.8,64,1.9,86.0,49.0,690.0,355.0,67.0,67.0,60.0,Single,Y,2nd,Y,,2107.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,25.0,0.0,From main system,Good,Good,(other premises below),NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, no insulation",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 25% of fixed outlets,Average,Average,mains gas (not community),0.0,no corridor,,,,N,natural,"19a, Holland Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2019-07-17 18:28:31,rental (private),,,200003728812.0,Address Matched +7ad72881944130785cf18c89bd93491e8fc1345f29af2477f086a20f8ecf12fe,10 PEEL STREET,,,ME14 2SA,10001327771,D,B,62,87,House,End-Terrace,2021-07-02,E07000110,E14000804,Kent,2021-07-04,rental,57,86,281,75.0,3.4,50,1.0,58.0,58.0,602.0,371.0,92.0,64.0,69.0,Unknown,Y,,,,,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.4,0.0,N,natural,10 PEEL STREET,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2021-07-04 18:56:11,Rented (social),26.0,,200003702328.0,Energy Assessor +110171740902009092018151144819918,"74a, Peel Street",,,ME14 2SD,2905448468,D,C,57,76,House,Semi-Detached,2009-09-19,E07000110,E14000804,Kent,2009-09-20,marketed sale,50,73,368,198.0,4.3,62,2.3,58.0,35.0,650.0,368.0,104.0,86.0,70.38,Single,Y,NO DATA!,,,2102.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,35.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,Low energy lighting in 35% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.59,0.0,N,natural,"74a, Peel Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2009-09-20 18:15:11,owner-occupied,,,200003704246.0,Address Matched +1334336301712015070114501099950837,"8, Devon Road",,,ME15 7EN,8783196378,C,B,73,87,House,Semi-Detached,2015-06-18,E07000110,E14000700,Kent,2015-07-01,marketed sale,72,86,170,74.0,2.8,30,1.3,99.0,59.0,461.0,428.0,134.0,85.0,94.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,33.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 33% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"8, Devon Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2015-07-01 14:50:10,owner-occupied,,,200003715569.0,Address Matched +1686022959222018122112231191068128,"4, Keele Way",,,ME15 9WW,2982591678,C,B,77,89,House,End-Terrace,2018-09-26,E07000110,E14000700,Kent,2018-12-21,rental (social),78,89,138,56.0,1.9,24,0.8,87.0,58.0,313.0,317.0,80.0,80.0,76.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,50.0,0.0,"From main system, plus solar",Very Good,Very Good,"Solid, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Very Good,Very Good,,,,"Pitched, 350 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,Y,natural,"4, Keele Way",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2007 onwards,2018-12-21 12:23:11,rental (social),,,10014311582.0,Address Matched +1393006000812015120415513091059449,"2, St. Andrews Park",Tarragon Road,,ME16 0WD,4911011478,C,C,70,74,Flat,End-Terrace,2015-12-03,E07000110,E14000804,Kent,2015-12-04,marketed sale,66,72,189,158.0,3.6,33,3.1,97.0,72.0,602.0,530.0,159.0,131.0,110.0,Single,Y,Ground,N,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,64.0,0.0,From main system,Good,Good,"Solid, limited insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Granite or whinstone, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 64% of fixed outlets,Good,Good,mains gas (not community),0.0,unheated corridor,8.03,,,N,natural,"2, St. Andrews Park, Tarragon Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2015-12-04 15:51:30,owner-occupied,,,200003654958.0,Address Matched +7ad05c963dde58703482a7aa2a8fcd74221492454d1e5b110d04d02e969cd9b2,"Flat 5 Adeline Heights, Rosalind Drive",,,ME14 2FP,10001655215,B,B,85,85,Flat,Mid-Terrace,2021-07-15,E07000110,E14000804,Kent,2021-07-15,new dwelling,88,88,79,79.0,1.1,14,1.1,67.0,67.0,164.0,164.0,94.0,94.0,76.0,standard tariff,,1,N,,,100.0,,,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.14 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.50 W/m-¦K,Good,Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.5,,,,"Flat 5 Adeline Heights, Rosalind Drive",Maidstone,Maidstone and The Weald,Maidstone,2018,2021-07-15 09:51:30,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,10.0,,10094441268.0,Address Matched +538524479942015112313460971952578,"8, Plumpton Walk",,,ME15 8UQ,1965279768,D,B,65,91,House,Mid-Terrace,2015-11-23,E07000110,E14000700,Kent,2015-11-23,ECO assessment,63,91,240,42.0,3.3,42,0.6,77.0,51.0,546.0,319.0,186.0,73.0,78.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,2.0,50.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,Portable electric heaters (assumed),,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"8, Plumpton Walk",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2015-11-23 13:46:09,owner-occupied,,,200003725608.0,Address Matched +1481238829962017071309434957578093,"1, Fuggles Close",Headcorn,,TN27 9AE,9567237478,B,A,84,95,House,Semi-Detached,2017-07-13,E07000110,E14000700,Kent,2017-07-13,new dwelling,86,96,85,10.0,1.4,15,0.2,64.0,64.0,234.0,234.0,83.0,49.0,92.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.26 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.10 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"1, Fuggles Close, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,NO DATA!,2017-07-13 09:43:49,unknown,20.0,20.0,10093302523.0,Address Matched +1418548299262016022911393912818676,"25, Shoebridge Drive",,,ME17 3FF,7125982478,B,A,83,97,House,Mid-Terrace,2016-02-29,E07000110,E14000700,Kent,2016-02-29,new dwelling,87,101,90,-17.0,1.0,16,-0.2,47.0,47.0,195.0,195.0,79.0,46.0,64.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"25, Shoebridge Drive",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2016-02-29 11:39:39,unknown,1.0,1.0,10091194077.0,Address Matched +7ada83d2aa8bb20eaacb38c2baed03a5b7a892513be7a012d4d1b3f790eae83f,48 FOXDEN DRIVE,DOWNSWOOD,,ME15 8TQ,10001577677,D,B,56,86,House,Enclosed End-Terrace,2021-08-03,E07000110,E14000700,Kent,2021-08-03,rental,51,85,417,100.0,3.2,74,0.8,39.0,39.0,496.0,350.0,147.0,57.0,43.0,Single,Y,,,,,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,100.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.33,0.0,N,natural,"48 FOXDEN DRIVE, DOWNSWOOD",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2021-08-03 12:48:06,Rented (private),8.0,,200003686576.0,Energy Assessor +609610909962011032615434605458409,"36, Queen Elizabeth Square",,,ME15 9DG,30025868,C,C,75,75,House,Mid-Terrace,2011-02-15,E07000110,E14000700,Kent,2011-03-26,non marketed sale,71,71,191,189.0,3.0,32,3.0,62.0,51.0,474.0,476.0,118.0,118.0,93.72,Unknown,Y,NO DATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,80.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.32,0.0,N,natural,"36, Queen Elizabeth Square",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2011-03-26 15:43:46,owner-occupied,,,200003710549.0,Address Matched +1568354259942017081711003658339238,"12, Hook Way",,,ME17 3FW,976053578,B,A,83,95,House,Semi-Detached,2017-08-17,E07000110,E14000700,Kent,2017-08-17,new dwelling,86,98,91,3.0,1.2,16,0.1,56.0,56.0,214.0,214.0,81.0,49.0,78.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"12, Hook Way",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2017-08-17 11:00:36,unknown,7.0,7.0,10093303919.0,Address Matched +597058929502011022415575383492548,"12, Leonard Gould Way",Loose,,ME15 9FX,8523124868,B,B,87,87,House,Mid-Terrace,2011-02-24,E07000110,E14000700,Kent,2011-02-24,new dwelling,87,88,92,89.0,1.2,15,1.2,54.0,44.0,212.0,213.0,98.0,98.0,78.82,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,,From main system,Very Good,Very Good,Average thermal transmittance 0.11 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.18 W/m?K,Very Good,Very Good,"Room heaters, electric",,,Average thermal transmittance 0.10 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Very Good,Very Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in 78% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,,,NO DATA!,"12, Leonard Gould Way, Loose",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2011-02-24 15:57:53,,,,10014311129.0,Address Matched +61237367132009031012285358968805,Flat 2 Orchard House,Hazlitt Drive,,ME16 0YU,6578888568,B,B,85,86,Flat,Detached,2009-03-10,E07000110,E14000804,Kent,2009-03-10,new dwelling,85,85,113,111.0,1.3,0,1.3,45.0,36.0,189.0,190.0,86.0,86.0,71.8,standard tariff,,ground floor,,,,,NO DATA!,NO DATA!,,,,9.0,,SAP05:Hot-Water,,,Average thermal transmittance 0.22 W/m²K,Good,Good,Fully double glazed,Good,Good,Average thermal transmittance 0.29 W/m²K,Very Good,Very Good,SAP05:Secondary-Heating,,,(another dwelling above),,,SAP05:Main-Heating,,,SAP05:Main-Heating-Controls,,,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.3,,,NO DATA!,"Flat 2 Orchard House, Hazlitt Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2009-03-10 12:28:53,,12.0,9.0,10014309039.0,Address Matched +378410859742019050513405164810828,1 Lower Deans Farm Cottage,Dean Hill,Harrietsham,ME17 1NS,720158668,F,A,25,101,House,Semi-Detached,2019-05-02,E07000110,E14000700,Kent,2019-05-05,marketed sale,29,96,429,-37.0,7.7,95,0.1,93.0,60.0,1134.0,432.0,150.0,70.0,81.0,Single,N,NODATA!,,,2111.0,0.0,not defined,Normal,1.0,4.0,4.0,43.0,1.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Single glazed,Very Poor,Very Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, oil",Average,Average,TRVs and bypass,Average,Average,Low energy lighting in 43% of fixed outlets,Average,Average,oil (not community),0.0,NO DATA!,,,,N,natural,"1 Lower Deans Farm Cottage, Dean Hill, Harrietsham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2019-05-05 13:40:51,owner-occupied,,,200003722000.0,Address Matched +1144905326752014052119003695240921,"78, Stockett Lane",Coxheath,,ME17 4PY,9164653278,E,B,44,86,House,Semi-Detached,2014-05-20,E07000110,E14000804,Kent,2014-05-21,marketed sale,40,86,354,63.0,5.8,68,1.1,94.0,51.0,992.0,483.0,187.0,77.0,85.0,Single,Y,NODATA!,,,2106.0,95.0,double glazing installed during or after 2002,Normal,3.0,6.0,6.0,15.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Mostly double glazing,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 15% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"78, Stockett Lane, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2014-05-21 19:00:36,owner-occupied,13.0,2.0,200003714373.0,Address Matched +1032732409262013102908074925688807,"2, Aviemore Gardens",Bearsted,,ME14 4BA,281075178,E,B,39,83,House,Semi-Detached,2013-10-28,E07000110,E14000700,Kent,2013-10-29,none of the above,36,82,381,84.0,7.3,74,1.6,100.0,55.0,969.0,393.0,425.0,183.0,99.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,18.0,0.0,"From main system, no cylinder thermostat",Poor,Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Average,Average,Programmer and room thermostat,Average,Average,Low energy lighting in 18% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"2, Aviemore Gardens, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2013-10-29 08:07:49,owner-occupied,11.0,2.0,200003687316.0,Address Matched +688701189302012121417091899029248,"2, The Farrows",,,ME15 9ZJ,4354980968,B,B,85,85,Flat,Detached,2012-12-14,E07000110,E14000700,Kent,2012-12-14,new dwelling,89,89,72,69.0,0.9,14,0.9,51.0,41.0,207.0,209.0,76.0,76.0,67.0,standard tariff,,ground floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.30 W/m?K,Good,Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"2, The Farrows",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2012-12-14 17:09:18,NO DATA!,8.0,6.0,10014312537.0,Address Matched +1432591179062016041106535593688446,"17, Salisbury Road",Penenden Heath,,ME14 2TY,4978783478,F,C,25,75,House,Mid-Terrace,2016-04-08,E07000110,E14000804,Kent,2016-04-11,marketed sale,13,72,755,152.0,11.0,128,2.3,107.0,55.0,1548.0,693.0,294.0,75.0,85.0,dual,Y,NODATA!,,,2401.0,0.0,not defined,Normal,2.0,5.0,3.0,25.0,2.0,"Electric immersion, off-peak",Very Poor,Poor,"Suspended, no insulation (assumed)",NO DATA!,,Single glazed,Very Poor,Very Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, electric",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 25% of fixed outlets,Average,Average,electricity (not community),0.0,NO DATA!,,2.3,,N,natural,"17, Salisbury Road, Penenden Heath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2016-04-11 06:53:55,owner-occupied,,,200003703405.0,Address Matched +727357269302011112517083297392858,Flat 2 The Cloisters,Ham Lane,Lenham,ME17 2PZ,351463968,D,C,59,77,Maisonette,Mid-Terrace,2011-11-25,E07000110,E14000700,Kent,2011-11-25,marketed sale,62,63,336,332.0,2.4,59,2.4,49.0,26.0,315.0,204.0,214.0,94.0,40.38,Single,N,Ground,N,,2602.0,100.0,double glazing installed before 2002,Normal,0.0,2.0,1.0,0.0,0.0,"Electric immersion, standard tariff",Very Poor,Very Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,(another dwelling above),,,"Room heaters, electric",Very Poor,Very Poor,Appliance thermostats,Good,Good,No low energy lighting,Very Poor,Very Poor,electricity (not community),0.0,unheated corridor,3.9,2.34,0.0,,natural,"Flat 2 The Cloisters, Ham Lane, Lenham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1991-1995,2011-11-25 17:08:32,owner-occupied,6.0,0.0,200003712552.0,Address Matched +1201770029022014090821504427688114,"35, Gorham Drive",Downswood,,ME15 8UU,1242267278,D,B,63,88,House,Semi-Detached,2014-09-08,E07000110,E14000700,Kent,2014-09-08,marketed sale,61,89,238,48.0,2.9,46,0.7,59.0,42.0,512.0,369.0,164.0,73.0,64.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,60.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 60% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"35, Gorham Drive, Downswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2014-09-08 21:50:44,owner-occupied,10.0,6.0,200003691418.0,Address Matched +396992592032020021317480744068309,"6, Canada Terrace",Invicta Park,,ME14 2NU,9914379668,D,C,61,80,House,Mid-Terrace,2020-02-07,E07000110,E14000804,Kent,2020-02-13,Stock Condition Survey,54,76,287,130.0,4.0,51,1.9,63.0,63.0,717.0,536.0,97.0,66.0,80.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Flat, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"6, Canada Terrace, Invicta Park",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2020-02-13 17:48:07,rental (social),,,200003723976.0,Address Matched +1458697079402016063016165944562448,Welldishes Oast,Redwall Lane,Linton,ME17 4BA,9433475478,D,B,63,81,House,Detached,2016-06-24,E07000110,E14000804,Kent,2016-06-30,rental,58,76,142,61.0,9.7,33,5.3,233.0,116.0,1509.0,1378.0,181.0,103.0,291.0,Single,N,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,9.0,9.0,0.0,1.0,From main system,Average,Average,"Solid, insulated (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, wood logs",,,"Pitched, insulated (assumed)",Good,Good,"Boiler and underfloor heating, oil",Average,Average,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,oil (not community),0.0,NO DATA!,,2.19,,N,natural,"Welldishes Oast, Redwall Lane, Linton",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2016-06-30 16:16:59,owner-occupied,,,200003660833.0,Address Matched +1138588219702014051119243128340888,"25, Chaplin Drive",Headcorn,,TN27 9TN,5731313278,D,B,67,84,House,Semi-Detached,2014-05-08,E07000110,E14000700,Kent,2014-05-11,marketed sale,64,84,187,75.0,3.6,36,1.5,73.0,73.0,654.0,487.0,112.0,72.0,99.0,dual,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,6.0,6.0,83.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 83% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"25, Chaplin Drive, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,England and Wales: 1967-1975,2014-05-11 19:24:31,owner-occupied,12.0,10.0,200003699431.0,Address Matched +1107266203752014031412455599940122,"17, Silver Tree Close",,,ME5 9ST,1223390278,D,A,62,92,House,Enclosed End-Terrace,2014-03-13,E07000110,E14000700,Kent,2014-03-14,rental (private),63,96,298,3.0,2.2,57,0.1,47.0,28.0,370.0,269.0,147.0,64.0,38.0,dual,Y,NODATA!,,,2104.0,0.0,not defined,Normal,0.0,2.0,2.0,33.0,0.0,From main system,Average,Average,"Suspended, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 33% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"17, Silver Tree Close",Maidstone,Faversham and Mid Kent,CHATHAM,England and Wales: 1983-1990,2014-03-14 12:45:55,rental (private),6.0,2.0,200003709216.0,Address Matched +1298046307532015032012494847978709,"23, Yeoman Way",Bearsted,,ME15 8PH,987734378,D,C,62,72,Bungalow,Detached,2015-03-19,E07000110,E14000700,Kent,2015-03-20,FiT application,53,63,247,185.0,7.1,44,5.3,90.0,90.0,1306.0,1156.0,120.0,121.0,162.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,89.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 89% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"23, Yeoman Way, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2015-03-20 12:49:48,owner-occupied,,,200003690922.0,Address Matched +1108365149512014031711193999940124,Pleydells Bungalow,Sutton Road,Langley,ME17 3ND,1454990278,D,B,61,82,Bungalow,Detached,2014-03-17,E07000110,E14000700,Kent,2014-03-17,rental (private),49,73,177,78.0,8.7,44,4.3,171.0,85.0,1555.0,1032.0,210.0,130.0,198.0,Single,N,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,6.0,6.0,0.0,0.0,From main system,Good,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, oil",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,oil (not community),0.0,NO DATA!,,,0.0,,natural,"Pleydells Bungalow, Sutton Road, Langley",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2014-03-17 11:19:39,rental (private),25.0,0.0,200003694555.0,Address Matched +1690717868852019011811044792910564,1 Bearsby Hill Cottages,Liverton Hill,Sandway,ME17 2NJ,5471822678,E,D,50,64,Bungalow,Semi-Detached,2019-01-18,E07000110,E14000700,Kent,2019-01-18,new dwelling,55,68,259,176.0,4.7,44,3.2,79.0,79.0,1127.0,1133.0,340.0,161.0,108.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,"Electric immersion, standard tariff",Very Poor,Poor,Average thermal transmittance 0.12 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.19 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Room heaters, electric",Very Poor,Poor,Programmer and appliance thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"1 Bearsby Hill Cottages, Liverton Hill, Sandway",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2019-01-18 11:04:47,unknown,8.0,8.0,10094441631.0,Address Matched +7b4de510adcefa0c29bb7d6eca2cb9614be04481d2b1cbba3f986024786626f7,2 Chervilles,,,ME16 9JE,10001437493,C,B,73,87,House,Semi-Detached,2021-09-01,E07000110,E14000804,Kent,2021-09-01,non marketed sale,72,85,170,74.0,2.5,30,1.1,71.0,71.0,421.0,388.0,100.0,70.0,82.0,Single,Y,,,,,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,91.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 91% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.34,0.0,N,natural,2 Chervilles,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2021-09-01 22:19:53,Owner-occupied,11.0,,200003686912.0,Energy Assessor +597141599932011112118374765268098,"6, Bramble Close",,,ME16 0LH,9805024868,E,D,53,55,House,Mid-Terrace,2011-11-21,E07000110,E14000804,Kent,2011-11-21,rental (social),49,50,303,294.0,5.4,58,5.3,91.0,48.0,878.0,883.0,106.0,106.0,46.61,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,11.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"System built, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, mains gas",,,"Roof room(s), no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 11% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,2.46,0.0,,natural,"6, Bramble Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2011-11-21 18:37:47,rental (social),9.0,1.0,200003691168.0,Address Matched +664777868932011081112260288968704,"7, Radnor Close",,,ME14 2PW,6498719868,C,C,76,77,Flat,Detached,2011-08-11,E07000110,E14000804,Kent,2011-08-11,rental (social),80,81,159,146.0,1.3,30,1.2,29.0,29.0,228.0,220.0,99.0,89.0,44.23,Unknown,Y,Ground,Y,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,100.0,0.0,From main system,Good,Good,"Solid, limited insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,1.52,2.27,0.0,,natural,"7, Radnor Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2011-08-11 12:26:02,rental (social),5.0,5.0,10022897035.0,Address Matched +549962249962018101312263720478348,"20, Finglesham Court",,,ME15 7HZ,4272450868,D,B,67,83,House,Detached,2018-10-13,E07000110,E14000700,Kent,2018-10-13,rental (private),66,83,224,102.0,2.8,39,1.3,63.0,63.0,502.0,455.0,127.0,75.0,72.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,82.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 82% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"20, Finglesham Court",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2018-10-13 12:26:37,rental (private),,,200003711929.0,Address Matched +1769669451132019120212595683078204,Flat 8 St. Luke's Court,"50-54, Boxley Road",,ME14 2GA,5413208678,C,B,79,83,Flat,End-Terrace,2019-09-06,E07000110,E14000804,Kent,2019-12-02,rental (private),70,73,260,242.0,1.7,44,1.6,47.0,47.0,154.0,123.0,176.0,142.0,40.0,Unknown,N,2nd,N,,2401.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,83.0,0.0,"Electric immersion, off-peak",Average,Poor,(another dwelling below),NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,Portable electric heaters (assumed),,,(another dwelling above),,,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 83% of fixed outlets,Very Good,Very Good,electricity (not community),0.0,unheated corridor,3.3,,,N,natural,"Flat 8 St. Luke's Court, 50-54, Boxley Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2019-12-02 12:59:56,rental (private),,,200003655103.0,Address Matched +493602643032020073012102902268405,Flat 2 Edward Hunter House,Vinters Road,,ME14 5DB,4582456768,C,C,76,77,Flat,Semi-Detached,2020-07-28,E07000110,E14000700,Kent,2020-07-30,rental (private),78,80,178,168.0,1.4,30,1.3,44.0,44.0,253.0,253.0,197.0,170.0,46.0,Single,N,Ground,N,,2205.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,100.0,0.0,From main system,Poor,Good,"Suspended, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Air source heat pump, underfloor, electric",Poor,Good,Programmer and at least two room thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,unheated corridor,7.68,,,N,natural,"Flat 2 Edward Hunter House, Vinters Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2007 onwards,2020-07-30 12:10:29,rental (private),,,10014311061.0,Address Matched +360184519202010090622420465700268,4 Abberley Park,Sittingbourne Road,,ME14 5GD,5273717668,C,C,72,73,House,Detached,2010-09-06,E07000110,E14000804,Kent,2010-09-06,marketed sale,68,69,186,177.0,4.8,31,4.5,91.0,91.0,666.0,651.0,182.0,156.0,154.4,Unknown,Y,NO DATA!,,,2110.0,100.0,"double glazing, unknown install date",Normal,0.0,8.0,8.0,95.0,1.0,"From main system, no cylinder thermostat",Average,Average,"Suspended, insulated (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, mains gas",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in 95% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,0.0,N,natural,"4 Abberley Park, Sittingbourne Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2010-09-06 22:42:04,owner-occupied,,,10022895265.0,Address Matched +1692686529222019012408034112678031,"373, Sutton Road",,,ME15 9BU,3198242678,D,B,64,84,House,Semi-Detached,2019-01-23,E07000110,E14000700,Kent,2019-01-24,marketed sale,58,81,239,100.0,4.9,42,2.1,153.0,76.0,703.0,549.0,211.0,74.0,118.0,Single,Y,NODATA!,,,2107.0,100.0,"double glazing, unknown install date",Normal,1.0,4.0,4.0,0.0,0.0,"From main system, no cylinder thermostat",Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,"Room heaters, mains gas",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"373, Sutton Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2019-01-24 08:03:41,owner-occupied,,,200003681378.0,Address Matched +219975880402009051915493952612728,"60, Huntington Road",Coxheath,,ME17 4DY,1440386568,C,C,70,74,House,Semi-Detached,2009-01-22,E07000110,E14000804,Kent,2009-05-19,rental (social),67,70,243,215.0,2.9,40,2.6,69.0,35.0,371.0,368.0,123.0,98.0,72.94,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,0.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,0.0,N,natural,"60, Huntington Road, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2009-05-19 15:49:39,rental (social),,,200003671646.0,Address Matched +7b6e3506198c0a88b05d6ae559b25297caa6a7cab4bc165b53ce849df4858069,15,"Pearson Meadow,","Boughton Monchelsea,",ME17 4SX,10001361301,B,A,84,95,House,Detached,2021-08-18,E07000110,E14000700,Kent,2021-08-18,new dwelling,85,96,88,13.0,1.4,15,0.3,74.0,74.0,243.0,243.0,71.0,43.0,92.0,standard tariff,,,N,,,100.0,,,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.39,,,,"15, Pearson Meadow,, Boughton Monchelsea,",Maidstone,Faversham and Mid Kent,"Maidstone,",2020,2021-08-18 12:08:32,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,14.0,,10094442607.0,Address Matched +1542167116552017050916021496030652,"18, Orache Drive",Weavering,,ME14 5UG,6262661578,D,B,67,87,House,Mid-Terrace,2017-05-09,E07000110,E14000700,Kent,2017-05-09,marketed sale,63,86,233,72.0,3.0,41,1.0,67.0,50.0,471.0,379.0,170.0,71.0,73.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,67.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 67% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"18, Orache Drive, Weavering",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2017-05-09 16:02:14,rental (private),,,200003689210.0,Address Matched +821009598852012080219095696020104,"8, Teasel Close",Weavering,,ME14 5FN,1469860078,D,B,66,81,House,Detached,2012-08-02,E07000110,E14000700,Kent,2012-08-02,marketed sale,65,81,176,88.0,4.0,33,2.1,118.0,63.0,648.0,578.0,133.0,71.0,121.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,7.0,7.0,13.0,0.0,From main system,Good,Good,"Suspended, limited insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 13% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"8, Teasel Close, Weavering",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1996-2002,2012-08-02 19:09:56,owner-occupied,15.0,2.0,200003688363.0,Address Matched +1027076785812013102213302492279714,Flat 5 Deal House,Drawbridge Close,,ME15 7DS,7494525178,C,C,76,76,Flat,Semi-Detached,2013-10-22,E07000110,E14000700,Kent,2013-10-22,non marketed sale,80,80,152,152.0,1.2,29,1.2,30.0,30.0,258.0,258.0,70.0,70.0,41.0,Single,Y,3rd,Y,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,2.0,2.0,100.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Timber frame, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,7.74,,0.0,,natural,"Flat 5 Deal House, Drawbridge Close",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1996-2002,2013-10-22 13:30:24,rental (social),5.0,5.0,10022896686.0,Address Matched +565633362102020072713295084102338,"4, Avery Close",,,ME15 6SQ,7159761868,C,B,73,88,House,Semi-Detached,2020-07-27,E07000110,E14000804,Kent,2020-07-27,rental,73,88,186,65.0,2.2,33,0.8,57.0,57.0,367.0,335.0,115.0,75.0,68.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 270 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"4, Avery Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1976-1982,2020-07-27 13:29:50,owner-occupied,,,200003664823.0,Address Matched +876088469732013012516540323278606,"27, Sheridan Close",,,ME14 2QP,6623654078,D,A,58,99,House,Enclosed Mid-Terrace,2013-01-25,E07000110,E14000804,Kent,2013-01-25,marketed sale,61,88,317,74.0,2.4,56,0.5,47.0,29.0,326.0,153.0,229.0,63.0,42.0,Single,N,NODATA!,,,2603.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,20.0,0.0,"Electric immersion, standard tariff",Very Poor,Very Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, partial insulation (assumed)",Average,Average,,,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Room heaters, electric",Very Poor,Very Poor,Programmer and appliance thermostats,Good,Good,Low energy lighting in 20% of fixed outlets,Poor,Poor,electricity (not community),0.0,NO DATA!,,,0.0,,natural,"27, Sheridan Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1976-1982,2013-01-25 16:54:03,owner-occupied,5.0,1.0,200003670682.0,Address Matched +596766769852013082123383591270389,"9, Brishing Lane",,,ME15 9EZ,3999914868,C,C,71,75,Flat,Semi-Detached,2013-08-21,E07000110,E14000700,Kent,2013-08-21,rental (social),72,78,177,142.0,2.1,34,1.7,77.0,39.0,367.0,320.0,84.0,84.0,61.0,Single,Y,Ground,N,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,no corridor,,,0.0,,natural,"9, Brishing Lane",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2013-08-21 23:38:35,rental (social),6.0,0.0,200003681497.0,Address Matched +1427034429222016032417460733848556,"197, Merton Road",Bearsted,,ME15 8LP,5351253478,D,B,68,87,House,Mid-Terrace,2016-03-24,E07000110,E14000700,Kent,2016-03-24,marketed sale,64,86,220,72.0,3.5,39,1.2,104.0,58.0,542.0,425.0,194.0,77.0,91.0,Unknown,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,7.0,7.0,21.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 21% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,2.2,,N,natural,"197, Merton Road, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2016-03-24 17:46:07,owner-occupied,,,200003686090.0,Address Matched +1685405924132019041517310886978005,Flat 11 Coronet House,"11, Queen Anne Road",,ME14 1GD,2556091678,D,D,68,68,Flat,Detached,2019-04-12,E07000110,E14000804,Kent,2019-04-15,new dwelling,72,72,370,370.0,1.2,63,1.2,20.0,20.0,246.0,246.0,133.0,133.0,20.0,standard tariff,,ground floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,Electric instantaneous at point of use,Very Poor,Very Poor,Average thermal transmittance 0.18 W/m-¦K,Very Good,Very Good,Fully double glazed,Good,Good,Average thermal transmittance 0.25 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,"Room heaters, electric",Very Poor,Poor,Programmer and room thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"Flat 11 Coronet House, 11, Queen Anne Road",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2019-04-15 17:31:08,unknown,5.0,5.0,10094441188.0,Address Matched +7b8c94657abbb2a84ebdf67df77504e29c446394337afb39fc87078b4bc92fa4,25 Tintern Road,,,ME16 0RH,10001437747,E,B,45,86,Bungalow,Semi-Detached,2021-08-23,E07000110,E14000804,Kent,2021-08-23,marketed sale,39,86,486,81.0,4.4,86,0.8,44.0,44.0,714.0,348.0,182.0,62.0,52.0,Single,Y,,,,,0.0,not defined,Normal,0.0,4.0,4.0,100.0,0.0,"From main system, no cylinder thermostat",Average,Average,"Solid, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.43,0.0,N,natural,25 Tintern Road,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2021-08-23 15:41:02,Owner-occupied,7.0,,200003660846.0,Energy Assessor +1564677629842017080220395556330798,"25, Tichborne Close",,,ME16 0RY,8814523578,D,C,66,80,Bungalow,Semi-Detached,2017-08-01,E07000110,E14000804,Kent,2017-08-02,rental,61,76,241,132.0,3.1,43,1.7,61.0,61.0,538.0,503.0,102.0,73.0,72.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,78.0,0.0,From main system,Very Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 78% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"25, Tichborne Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2017-08-02 20:39:55,owner-occupied,,,200003727356.0,Address Matched +1543899309962017091714271031868203,The Clock House Thorn Farm,Marden Thorn,Marden,TN12 9LJ,325081578,F,A,35,108,House,Detached,2017-05-16,E07000110,E14000804,Kent,2017-09-17,marketed sale,33,101,350,-81.0,6.5,85,-0.4,98.0,58.0,732.0,298.0,188.0,67.0,77.0,dual,N,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,31.0,0.0,From main system,Poor,Poor,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Poor,Poor,"Room heaters, wood logs",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, oil",Poor,Average,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 31% of fixed outlets,Average,Average,oil (not community),0.0,NO DATA!,,,,N,natural,"The Clock House Thorn Farm, Marden Thorn, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: before 1900,2017-09-17 14:27:10,owner-occupied,,,200003725003.0,Address Matched +1651479622912018072609244294280853,Little Ivy Mill,Loose Valley,Loose,ME15 0ET,8329249578,E,D,48,67,House,Detached,2018-07-23,E07000110,E14000804,Kent,2018-07-26,marketed sale,48,66,310,196.0,9.9,46,6.2,149.0,106.0,2225.0,1582.0,128.0,129.0,218.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,6.0,6.0,60.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Sandstone or limestone, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 60% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"Little Ivy Mill, Loose Valley, Loose",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2018-07-26 09:24:42,owner-occupied,,,10022900357.0,Address Matched +413060670922009121515503900058191,"83, Grecian Street",,,ME14 2TT,9057780768,D,D,56,64,House,Mid-Terrace,2009-12-15,E07000110,E14000804,Kent,2009-12-15,rental (private),50,58,363,299.0,4.7,61,3.8,70.0,38.0,692.0,598.0,103.0,91.0,58.52,Unknown,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,5.0,5.0,17.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Granite or whin, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Roof room(s), no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 17% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.44,0.0,N,natural,"83, Grecian Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2009-12-15 15:50:39,rental (private),,,200003703334.0,Address Matched +1471634979962016082007005356018626,"70, Longham Copse",Downswood,,ME15 8TL,2583766478,C,B,73,89,House,Semi-Detached,2016-08-19,E07000110,E14000700,Kent,2016-08-20,rental (private),72,89,191,62.0,2.2,34,0.7,51.0,51.0,361.0,333.0,136.0,79.0,65.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,86.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 270 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 86% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,2.37,,N,natural,"70, Longham Copse, Downswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1976-1982,2016-08-20 07:00:53,rental (private),,,200003686495.0,Address Matched +1102661847552014030816492395040826,Domus,Fairbourne Lane,Harrietsham,ME17 1LQ,8694750278,B,B,83,83,House,Detached,2014-03-08,E07000110,E14000700,Kent,2014-03-08,new dwelling,83,83,85,85.0,2.4,16,2.4,74.0,74.0,431.0,431.0,105.0,105.0,148.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.16 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.30 W/m?K,Good,Good,,,,Average thermal transmittance 0.18 W/m?K,Good,Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Domus, Fairbourne Lane, Harrietsham",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2014-03-08 16:49:23,NO DATA!,17.0,17.0,10014313778.0,Address Matched +1179955573432014073113330717778402,"32, Monkdown",Downswood,,ME15 8SP,7217406278,D,B,68,88,House,Semi-Detached,2014-07-31,E07000110,E14000700,Kent,2014-07-31,marketed sale,68,89,198,49.0,2.4,38,0.6,45.0,45.0,474.0,381.0,102.0,63.0,62.0,dual,Y,NODATA!,,,2107.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"32, Monkdown, Downswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2014-07-31 13:33:07,owner-occupied,8.0,8.0,200003691503.0,Address Matched +1176999053352014090209442198240821,Maltmans,Tattlebury Lane,Headcorn,TN27 9JU,8185385278,E,D,43,59,House,Detached,2014-08-28,E07000110,E14000700,Kent,2014-09-02,assessment for green deal,92,97,240,170.0,1.5,7,0.4,108.0,111.0,2205.0,1802.0,192.0,118.0,224.0,dual,N,NODATA!,,,2109.0,0.0,not defined,Less Than Typical,1.0,8.0,8.0,100.0,0.0,From main system,Average,Very Good,"Solid, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Timber frame, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, wood pellets",Average,Very Good,"Programmer, TRVs and boiler energy manager",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,bulk wood pellets,0.0,NO DATA!,,,0.0,,natural,"Maltmans, Tattlebury Lane, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,England and Wales: before 1900,2014-09-02 09:44:21,owner-occupied,30.0,30.0,200003726897.0,Address Matched +579915389102011012519131680292758,"41, Knights Way",Headcorn,,TN27 9TY,3189282868,C,C,72,79,Flat,Enclosed End-Terrace,2011-01-25,E07000110,E14000700,Kent,2011-01-25,rental (social),69,76,232,176.0,2.6,39,2.0,60.0,38.0,437.0,344.0,93.0,93.0,67.73,Single,Y,Ground,N,2.0,2106.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,40.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 40% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.28,0.0,N,natural,"41, Knights Way, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,England and Wales: 1967-1975,2011-01-25 19:13:16,rental (social),,,200003699633.0,Address Matched +1575867349962017091908461404318623,"11, Anglesey Avenue",,,ME15 9SH,2066404578,C,B,72,86,House,Semi-Detached,2017-09-19,E07000110,E14000804,Kent,2017-09-19,marketed sale,70,83,183,88.0,2.9,32,1.4,59.0,59.0,487.0,451.0,141.0,83.0,90.0,Single,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,6.0,6.0,100.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"11, Anglesey Avenue",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2017-09-19 08:46:14,owner-occupied,,,200003678015.0,Address Matched +1145150405432014052214202255278809,Flat 2,18 Buckland Road,,ME16 0SL,995853278,C,C,74,77,Flat,Semi-Detached,2014-05-21,E07000110,E14000804,Kent,2014-05-22,rental (private),78,81,167,142.0,1.4,32,1.2,29.0,29.0,306.0,266.0,65.0,65.0,43.0,Single,Y,Ground,N,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,2.0,2.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, with internal insulation",Good,Good,,,,"Flat, insulated",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,no corridor,,,0.0,,natural,"Flat 2, 18 Buckland Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2014-05-22 14:20:22,rental (private),5.0,5.0,10091193460.0,Address Matched +1481197452712017112314102193239748,"4, Fuggles Close",Headcorn,,TN27 9AE,7867237478,C,C,80,80,Maisonette,End-Terrace,2017-11-23,E07000110,E14000700,Kent,2017-11-23,new dwelling,82,82,120,120.0,1.5,21,1.5,50.0,50.0,270.0,270.0,76.0,76.0,70.0,standard tariff,,top floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.19 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.26 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.10 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"4, Fuggles Close, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,NO DATA!,2017-11-23 14:10:21,unknown,15.0,15.0,10093302530.0,Address Matched +1668100640832018100312085622078496,"9, Knoxes Shaw",,,ME16 9FB,4642460678,B,A,85,94,House,Detached,2018-10-03,E07000110,E14000804,Kent,2018-10-03,new dwelling,86,95,74,15.0,1.6,13,0.4,76.0,76.0,244.0,245.0,99.0,54.0,124.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.16 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.18 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"9, Knoxes Shaw",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2018-10-03 12:08:56,unknown,20.0,20.0,10092971801.0,Address Matched +7be9168772468fb851325a6661c4f4f4daba94c8b73618ed8ba2f645684543c3,9 KINGS REACH,,,ME15 7LZ,10001615867,E,B,54,84,House,Mid-Terrace,2021-06-28,E07000110,E14000700,Kent,2021-07-01,ECO assessment,51,84,340,90.0,4.1,60,1.1,117.0,58.0,698.0,443.0,188.0,74.0,69.0,Single,Y,,,,,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,0.0,0.0,"From main system, no cylinder thermostat",Average,Average,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,"Pitched, insulated (assumed)",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,,,2.75,0.0,N,natural,9 KINGS REACH,Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2021-07-01 10:31:12,Rented (social),8.0,,200003724186.0,Energy Assessor +1534290989062017040608312951478663,Little Close,Chart Road,Sutton Valence,ME17 3AW,6587801578,D,B,63,85,Bungalow,Detached,2017-04-03,E07000110,E14000700,Kent,2017-04-06,marketed sale,58,83,264,97.0,3.7,46,1.4,92.0,54.0,615.0,459.0,148.0,73.0,80.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,30.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 30% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"Little Close, Chart Road, Sutton Valence",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2017-04-06 08:31:29,owner-occupied,,,200003694440.0,Address Matched +1584263759262017102316183374578633,Foxberry House,Chartway Street,Sutton Valence,ME17 3JA,3701564578,B,A,85,92,House,Detached,2017-10-23,E07000110,E14000700,Kent,2017-10-23,new dwelling,85,93,80,37.0,2.3,13,1.0,85.0,85.0,400.0,401.0,117.0,66.0,172.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.27 W/m-¦K,Very Good,Very Good,"Room heaters, wood logs",,,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Foxberry House, Chartway Street, Sutton Valence",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2017-10-23 16:18:33,owner-occupied,45.0,45.0,10093304914.0,Address Matched +200344529102019090618591055510168,"63, Knaves Acre",Headcorn,,TN27 9TJ,3117025568,D,B,60,90,House,Mid-Terrace,2019-09-06,E07000110,E14000700,Kent,2019-09-06,marketed sale,54,90,283,48.0,4.1,50,0.7,94.0,68.0,612.0,316.0,181.0,71.0,81.0,dual,Y,NODATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,1.0,4.0,4.0,63.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 63% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"63, Knaves Acre, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,England and Wales: 1967-1975,2019-09-06 18:59:10,owner-occupied,,,200003699370.0,Address Matched +353201120222009082715401076838701,"36, Reinden Grove",Downswood,,ME15 8TH,742276668,D,C,61,76,House,Semi-Detached,2009-08-27,E07000110,E14000700,Kent,2009-08-27,marketed sale,54,72,335,204.0,4.0,56,2.4,60.0,36.0,557.0,369.0,143.0,103.0,71.62,Single,Y,NO DATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,33.0,0.0,From main system,Average,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, partial insulation (assumed)",Average,Average,"Room heaters, mains gas",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Average,Good,Programmer and room thermostat,Poor,Poor,Low energy lighting in 33% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.35,0.0,N,natural,"36, Reinden Grove, Downswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1976-1982,2009-08-27 15:40:10,owner-occupied,,,200003686364.0,Address Matched +208025600142009010909153653610888,Flat 51 Scotney Gardens,St. Peters Street,,ME16 0GR,6184606568,B,B,82,85,Flat,Enclosed Mid-Terrace,2009-01-08,E07000110,E14000804,Kent,2009-01-09,marketed sale,77,78,211,201.0,1.6,32,1.6,55.0,28.0,80.0,83.0,104.0,104.0,51.4,dual,N,2nd,N,4.0,2401.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,0.0,0.0,"Electric immersion, off-peak",Average,Poor,(other premises below),,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,Electric storage heaters,Average,Poor,Manual charge control,Poor,Poor,No low energy lighting,Very Poor,Very Poor,electricity - this is for backwards compatibility only and should not be used,0.0,unheated corridor,6.49,2.31,0.0,N,natural,"Flat 51 Scotney Gardens, St. Peters Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2009-01-09 09:15:36,owner-occupied,,,10022893419.0,Address Matched +1603125909222018012517321436458338,8 Bishops Terrace,Bishops Way,,ME14 1LA,3374006578,D,D,59,59,Flat,Mid-Terrace,2018-01-25,E07000110,E14000804,Kent,2018-01-25,new dwelling,63,63,363,363.0,1.8,61,1.8,27.0,27.0,338.0,338.0,206.0,206.0,30.0,standard tariff,,ground floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Very Poor,Poor,Average thermal transmittance 0.31 W/m-¦K,Average,Average,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.29 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, electric",Very Poor,Poor,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"8 Bishops Terrace, Bishops Way",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2018-01-25 17:32:14,unknown,10.0,10.0,, +635459905932011052909554262268201,"76, Mill Bank",Headcorn,,TN27 9RG,172217868,E,D,52,57,House,End-Terrace,2011-05-29,E07000110,E14000700,Kent,2011-05-29,none of the above,48,52,311,280.0,5.4,60,4.9,83.0,49.0,876.0,811.0,87.0,87.0,71.42,dual,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,30.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 30% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,2.45,0.0,,natural,"76, Mill Bank, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,England and Wales: 1900-1929,2011-05-29 09:55:42,unknown,10.0,3.0,200003698802.0,Address Matched +1023829929922013101221173505398317,Flat 2,63a Brewer Street,,ME14 1RY,1038205178,D,C,67,75,Flat,Semi-Detached,2013-10-11,E07000110,E14000804,Kent,2013-10-12,marketed sale,66,76,199,141.0,2.7,38,1.9,66.0,44.0,481.0,361.0,98.0,87.0,71.0,Single,Y,1st,Y,,2109.0,0.0,not defined,Normal,0.0,3.0,3.0,50.0,0.0,From main system,Good,Good,(other premises below),,,Single glazed,Very Poor,Very Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Roof room(s), insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and boiler energy manager",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,unheated corridor,10.33,,0.0,,natural,"Flat 2, 63a Brewer Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2013-10-12 21:17:35,owner-occupied,8.0,4.0,200003728307.0,Address Matched +1321097105532015051420111268978400,"40, Corner Farm Road",Staplehurst,,TN12 0PS,38406378,D,B,61,81,House,Semi-Detached,2015-05-14,E07000110,E14000804,Kent,2015-05-14,marketed sale,54,76,261,122.0,4.6,46,2.2,114.0,61.0,787.0,603.0,135.0,84.0,99.0,Unknown,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,12.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, partial insulation (assumed)",Average,Average,"Room heaters, mains gas",,,"Pitched, limited insulation (assumed)",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 12% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"40, Corner Farm Road, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1976-1982,2015-05-14 20:11:12,owner-occupied,,,200003679022.0,Address Matched +1399547639632016010511261357078602,"4, The Spinney",,,ME15 7AD,3207651478,C,B,74,82,Flat,Detached,2016-01-05,E07000110,E14000700,Kent,2016-01-05,rental (social),59,70,277,203.0,3.5,47,2.5,82.0,58.0,361.0,208.0,150.0,150.0,74.0,dual,N,1st,N,,2401.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,57.0,0.0,"Electric immersion, off-peak",Average,Poor,(another dwelling below),NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,Portable electric heaters (assumed),,,(another dwelling above),,,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 57% of fixed outlets,Good,Good,electricity (not community),0.0,unheated corridor,5.18,,,N,natural,"4, The Spinney",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2016-01-05 11:26:13,rental (social),,,200003685957.0,Address Matched +1688192319102019010320472162210178,"13, Victoria Court",Victoria Street,,ME16 8JZ,2129112678,C,C,70,77,Flat,Mid-Terrace,2019-01-03,E07000110,E14000804,Kent,2019-01-03,rental (private),51,63,416,312.0,3.0,70,2.2,37.0,37.0,326.0,209.0,151.0,129.0,42.0,dual,N,Ground,N,,2401.0,100.0,secondary glazing,Normal,0.0,1.0,1.0,100.0,0.0,"Electric immersion, off-peak",Average,Poor,"Solid, no insulation (assumed)",NO DATA!,,Full secondary glazing,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,Portable electric heaters (assumed),,,(another dwelling above),,,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,heated corridor,,,,N,natural,"13, Victoria Court, Victoria Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2019-01-03 20:47:21,rental (private),,,200003668700.0,Address Matched +1422889829402016031415402449369498,53 Hubert Walter Drive,,,ME16 0BE,4435223478,B,B,88,88,Flat,NO DATA!,2016-03-11,E07000110,E14000804,Kent,2016-03-14,new dwelling,91,91,56,56.0,0.7,10,0.7,51.0,51.0,158.0,158.0,87.0,87.0,72.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.20 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,53 Hubert Walter Drive,Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2016-03-14 15:40:24,unknown,5.0,5.0,10091196050.0,Address Matched +1677595149922018111218180981228458,"27, Longparish Close",,,ME15 8PU,5883431678,C,C,72,75,Maisonette,Semi-Detached,2018-11-12,E07000110,E14000700,Kent,2018-11-12,rental (social),73,77,208,179.0,1.8,37,1.6,44.0,44.0,324.0,276.0,85.0,86.0,50.0,Single,Y,Ground,N,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,86.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"System built, with external insulation",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 86% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,no corridor,,,,N,natural,"27, Longparish Close",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2018-11-12 18:18:09,rental (social),,,200003684964.0,Address Matched +1307081409342015040711123839550928,"6, The Tail Race",,,ME15 6YL,2348105378,E,B,49,85,House,Detached,2015-04-02,E07000110,E14000804,Kent,2015-04-07,ECO assessment,42,83,377,89.0,6.2,67,1.5,93.0,58.0,1071.0,488.0,186.0,75.0,93.0,Single,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,2.0,5.0,5.0,38.0,0.0,From main system,Average,Average,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 38% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"6, The Tail Race",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2015-04-07 11:12:38,owner-occupied,,,200003665942.0,Address Matched +499561709842010061518454873709058,"38, Yeoman Lane",Bearsted,,ME14 4BX,865007768,E,D,48,59,House,Detached,2010-06-15,E07000110,E14000700,Kent,2010-06-15,rental (private),48,56,330,266.0,7.0,54,5.6,109.0,67.0,1088.0,873.0,185.0,185.0,128.6,Single,Y,NO DATA!,,,2104.0,80.0,double glazing installed before 2002,Normal,2.0,7.0,7.0,38.0,0.0,From main system,Very Good,Very Good,"Suspended, no insulation (assumed)",,,Mostly double glazing,Poor,Poor,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Very Good,Very Good,Programmer and room thermostat,Average,Average,Low energy lighting in 38% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.41,0.0,N,natural,"38, Yeoman Lane, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2010-06-15 18:45:48,rental (private),,,200003692056.0,Address Matched +1633171319842018051909202156889638,"141, Sutton Road",,,ME15 9AA,800318578,D,B,65,83,House,Semi-Detached,2018-05-17,E07000110,E14000700,Kent,2018-05-19,marketed sale,59,79,247,113.0,4.1,44,1.9,64.0,64.0,674.0,531.0,154.0,73.0,95.0,Unknown,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,6.0,6.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,"Room heaters, mains gas",,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"141, Sutton Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2018-05-19 09:20:21,owner-occupied,,,200003713326.0,Address Matched +451214547052010031014481995900375,"20, Friars Court",Queen Anne Road,,ME14 1ER,3525753768,C,C,76,80,Flat,End-Terrace,2010-03-10,E07000110,E14000804,Kent,2010-03-10,marketed sale,72,74,250,230.0,2.2,38,2.0,66.0,36.0,161.0,141.0,143.0,143.0,57.79,dual,N,1st,N,4.0,2401.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,16.0,0.0,"Electric immersion, off-peak",Poor,Poor,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,(another dwelling above),,,Electric storage heaters,Poor,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 16% of fixed outlets,Poor,Poor,electricity - this is for backwards compatibility only and should not be used,0.0,heated corridor,,2.43,0.0,N,natural,"20, Friars Court, Queen Anne Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2010-03-10 14:48:19,owner-occupied,,,200003688633.0,Address Matched +335756234452009073112315305710065,Studio 90,118a London Road,,ME16 0DJ,588455668,D,C,56,73,Flat,Semi-Detached,2009-07-30,E07000110,E14000804,Kent,2009-07-31,rental (private),48,66,486,310.0,3.9,73,2.5,48.0,48.0,415.0,209.0,120.0,120.0,52.71,Single,,1st,Y,2.0,2402.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,35.0,0.0,"Electric immersion, standard tariff",Poor,Poor,(other premises below),,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,"Pitched, 150 mm loft insulation",Good,Good,Electric storage heaters,Poor,Very Poor,Automatic charge control,Average,Average,Low energy lighting in 35% of fixed outlets,Average,Average,electricity - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.44,0.0,N,natural,"Studio 90, 118a London Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2009-07-31 12:31:53,rental (private),,,200003717703.0,Address Matched +418744052212010011114194493900075,"9, Howard Drive",,,ME16 0QG,571231768,E,D,45,62,Bungalow,Detached,2010-01-11,E07000110,E14000804,Kent,2010-01-11,marketed sale,39,54,626,428.0,4.3,105,2.9,42.0,21.0,620.0,482.0,149.0,85.0,40.6,Single,Y,NO DATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,0.0,0.0,From main system,Average,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Average,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.5,0.0,N,natural,"9, Howard Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1976-1982,2010-01-11 14:19:44,owner-occupied,,,200003704268.0,Address Matched +173155469262018112611261373568418,Flat 3 Foley Court,"31, Foley Street",,ME14 5BD,1721643568,C,B,76,81,Flat,Semi-Detached,2018-11-26,E07000110,E14000804,Kent,2018-11-26,rental (private),64,68,284,253.0,2.4,48,2.1,47.0,47.0,229.0,186.0,198.0,142.0,50.0,dual,N,1st,Y,,2401.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,"Electric immersion, off-peak",Poor,Poor,(another dwelling below),NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,Portable electric heaters (assumed),,,"Pitched, insulated (assumed)",Good,Good,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,unheated corridor,5.46,,,N,natural,"Flat 3 Foley Court, 31, Foley Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2018-11-26 11:26:13,rental (private),,,10014307214.0,Address Matched +629592779442011051613255681699168,"82, Melrose Close",,,ME15 6ZE,3419076868,B,B,84,85,House,End-Terrace,2011-05-16,E07000110,E14000804,Kent,2011-05-16,new dwelling,86,86,77,74.0,1.7,15,1.6,76.0,59.0,283.0,285.0,94.0,94.0,114.81,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,10.0,,From main system,Good,Good,Average thermal transmittance 0.20 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.21 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in 71% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.3,,,NO DATA!,"82, Melrose Close",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2011-05-16 13:25:56,,14.0,10.0,10014307068.0,Address Matched +611811137932011040516365558768707,"29, Tarragon Road",,,ME16 0UR,3738735868,C,C,71,78,House,Mid-Terrace,2011-03-31,E07000110,E14000804,Kent,2011-04-05,marketed sale,71,78,190,145.0,3.3,31,2.5,121.0,60.0,430.0,405.0,203.0,134.0,104.4,Single,Y,NO DATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,0.0,0.0,"From main system, no cylinder thermostat",Average,Average,"Solid, insulated (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.6,0.0,N,natural,"29, Tarragon Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2011-04-05 16:36:55,owner-occupied,,,200003726887.0,Address Matched +081372fa8f263d21eb25e4819bb363d469e4cac8c63afdef8fb6624d258d822f,94 Cambridge Crescent,,,ME15 7NQ,10001681683,D,B,65,82,House,Semi-Detached,2021-09-14,E07000110,E14000700,Kent,2021-09-14,rental,60,79,262,126.0,3.4,46,1.7,86.0,62.0,538.0,474.0,121.0,74.0,74.0,Single,Y,,,,,100.0,"double glazing, unknown install date",Normal,1.0,4.0,4.0,63.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 63% of fixed outlets,Good,Good,mains gas (not community),0.0,,,2.45,0.0,N,natural,94 Cambridge Crescent,Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2021-09-14 12:29:53,Rented (social),8.0,,200003712722.0,Energy Assessor +577810179932011011321242842068507,"35, Queen Elizabeth Square",,,ME15 9DG,7732562868,C,C,71,72,House,Mid-Terrace,2011-01-07,E07000110,E14000700,Kent,2011-01-13,rental (social),69,69,204,202.0,3.2,34,3.1,69.0,58.0,531.0,533.0,107.0,107.0,92.85,dual,Y,NO DATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,80.0,1.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.26,0.0,N,natural,"35, Queen Elizabeth Square",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2011-01-13 21:24:28,rental (social),,,200003710548.0,Address Matched +406382449842010082315361773002408,"48, Northumberland Road",,,ME15 7LR,8841040768,D,C,62,72,House,Semi-Detached,2010-08-20,E07000110,E14000700,Kent,2010-08-23,marketed sale,57,68,289,216.0,4.4,48,3.3,94.0,49.0,671.0,520.0,120.0,113.0,92.28,Single,Y,NO DATA!,,,2107.0,100.0,double glazing installed during or after 2002,Normal,2.0,5.0,5.0,9.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 9% of fixed outlets,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.39,0.0,N,natural,"48, Northumberland Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2010-08-23 15:36:17,owner-occupied,,,200003712266.0,Address Matched +863384796152012121110503896929501,Flat 13 Caroline Court,"8-28, Brunswick Street",,ME15 6NP,5137663078,C,C,78,78,Flat,Mid-Terrace,2012-12-10,E07000110,E14000804,Kent,2012-12-11,rental (social),82,82,112,112.0,1.4,21,1.4,50.0,50.0,276.0,276.0,81.0,81.0,69.0,Single,Y,2nd,Y,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,86.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 86% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,heated corridor,,,0.0,,"mechanical, extract only","Flat 13 Caroline Court, 8-28, Brunswick Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2012-12-11 10:50:38,rental (social),7.0,6.0,10014311833.0,Address Matched +851242189202012102916432801222818,Longfellow House,Chapmans Place,Ulcombe,ME17 1GB,1268182078,D,B,66,81,House,Detached,2012-10-29,E07000110,E14000700,Kent,2012-10-29,marketed sale,56,73,158,85.0,7.0,38,4.1,156.0,78.0,965.0,787.0,221.0,99.0,186.0,Unknown,N,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,8.0,8.0,0.0,1.0,From main system,Average,Poor,"Solid, insulated (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and underfloor heating, oil",Average,Poor,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,oil (not community),0.0,NO DATA!,,,0.0,,natural,"Longfellow House, Chapmans Place, Ulcombe",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2003-2006,2012-10-29 16:43:28,unknown,16.0,0.0,10014306538.0,Address Matched +1234600489942014111110141423949998,"31, Whitmore Street",,,ME16 8JX,7921789278,D,B,64,86,House,Mid-Terrace,2014-11-11,E07000110,E14000804,Kent,2014-11-11,marketed sale,63,87,214,59.0,3.2,41,0.9,96.0,49.0,593.0,410.0,112.0,69.0,78.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,5.0,5.0,6.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 6% of fixed outlets,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"31, Whitmore Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2014-11-11 10:14:14,owner-occupied,18.0,1.0,200003655346.0,Address Matched +526423889602010081214124570809728,"57, Melrose Close",,,ME15 6BD,671988768,B,B,88,89,House,Mid-Terrace,2010-08-12,E07000110,E14000804,Kent,2010-08-12,new dwelling,88,88,83,80.0,1.3,13,1.3,76.0,60.0,218.0,220.0,108.0,108.0,100.74,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,6.0,,From main system,Very Good,Very Good,Average thermal transmittance 0.20 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.21 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Very Good,Very Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.3,,,NO DATA!,"57, Melrose Close",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2010-08-12 14:12:45,,8.0,6.0,10014307056.0,Address Matched +1195292369262014082715154017468624,Aysgarth,The Street,Ulcombe,ME17 1DR,2169617278,D,C,59,74,House,Detached,2014-08-26,E07000110,E14000700,Kent,2014-08-27,marketed sale,50,66,192,113.0,6.9,45,4.4,163.0,83.0,1186.0,983.0,272.0,199.0,152.0,dual,N,NODATA!,,,2107.0,100.0,double glazing installed before 2002,Normal,2.0,7.0,7.0,5.0,0.0,"From main system, no cylinder thermostat",Poor,Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, oil",Good,Average,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 5% of fixed outlets,Very Poor,Very Poor,oil (not community),0.0,NO DATA!,,,0.0,,natural,"Aysgarth, The Street, Ulcombe",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2014-08-27 15:15:40,owner-occupied,44.0,2.0,200003701168.0,Address Matched +578604979542011011009435182299908,"105, Bower Street",,,ME16 8BB,4524072868,D,C,67,74,House,Mid-Terrace,2011-01-10,E07000110,E14000804,Kent,2011-01-10,marketed sale,63,70,272,223.0,3.1,45,2.6,73.0,36.0,481.0,425.0,104.0,91.0,69.05,Single,Y,NO DATA!,,,2106.0,90.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,0.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Mostly double glazing,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 100 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,0.0,N,natural,"105, Bower Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2011-01-10 09:43:51,owner-occupied,,,200003667188.0,Address Matched +994248789902013083014122612277608,"83, Hartnup Street",,,ME16 8LT,6995982178,E,C,53,71,House,Mid-Terrace,2013-08-30,E07000110,E14000804,Kent,2013-08-30,marketed sale,43,62,282,161.0,5.6,62,3.4,52.0,52.0,936.0,764.0,96.0,68.0,90.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,4.0,4.0,100.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, smokeless fuel",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"83, Hartnup Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2013-08-30 14:12:26,owner-occupied,8.0,8.0,200003655904.0,Address Matched +7c2bab6e04e616d1a60c8a32261a4af1c32a6d13df49818ea1085f14ac9255b0,73 The Cockpit,Marden,,TN12 9TQ,10001639717,C,C,73,77,Flat,Semi-Detached,2021-09-29,E07000110,E14000804,Kent,2021-09-29,rental,75,80,201,158.0,1.6,35,1.3,42.0,42.0,297.0,235.0,79.0,80.0,46.0,Single,Y,01,N,,,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,100.0,0.0,From main system,Good,Good,(another dwelling below),,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,7.09,2.37,0.0,N,natural,"73 The Cockpit, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1967-1975,2021-09-29 13:06:54,Rented (social),7.0,,200003726973.0,Energy Assessor +578858639962011011017404962208599,"7, Barn Meadow",Staplehurst,,TN12 0SY,9664372868,C,C,70,74,House,Detached,2011-01-10,E07000110,E14000804,Kent,2011-01-10,marketed sale,69,74,180,152.0,6.2,28,5.1,141.0,141.0,963.0,828.0,222.0,179.0,220.25,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,8.0,8.0,90.0,0.0,From main system,Good,Good,"Suspended, limited insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, wood logs",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 90% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.48,0.0,N,natural,"7, Barn Meadow, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1996-2002,2011-01-10 17:40:49,owner-occupied,,,200003720870.0,Address Matched +430576692962020091807170772338680,"24, Darwin Avenue",,,ME15 9FP,8737902768,C,B,78,89,House,Mid-Terrace,2020-09-17,E07000110,E14000700,Kent,2020-09-18,marketed sale,77,88,131,60.0,2.4,23,1.2,84.0,84.0,446.0,392.0,66.0,67.0,106.0,Unknown,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,2.0,5.0,5.0,100.0,0.0,"From main system, plus solar",Very Good,Very Good,"Solid, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,Y,natural,"24, Darwin Avenue",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2007 onwards,2020-09-18 07:17:07,owner-occupied,,,10014311401.0,Address Matched +445081343412010022510041091200272,"24, Wykeham Grove",Leeds,,ME17 1RP,2250313768,D,D,55,67,Maisonette,Semi-Detached,2010-02-24,E07000110,E14000700,Kent,2010-02-25,marketed sale,49,62,393,288.0,4.3,66,3.1,67.0,38.0,663.0,509.0,98.0,85.0,64.6,dual,Y,1st,Y,2.0,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,25.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 25% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.3,0.0,N,natural,"24, Wykeham Grove, Leeds",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2010-02-25 10:04:10,owner-occupied,,,200003698425.0,Address Matched +1507956766652017092814161992230246,Apartment 54 Kings Lodge,"71, King Street",,ME14 1BG,2686629478,B,B,84,84,Flat,Enclosed Mid-Terrace,2017-09-28,E07000110,E14000804,Kent,2017-09-28,new dwelling,93,93,56,56.0,0.5,10,0.5,40.0,40.0,123.0,123.0,96.0,96.0,51.0,standard tariff,,top floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,Community scheme,Good,Very Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,Community scheme,Good,Very Good,"Charging system linked to use of community heating, programmer and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,NO DATA!,,NO DATA!,,,,,NO DATA!,"Apartment 54 Kings Lodge, 71, King Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2017-09-28 14:16:19,owner-occupied,5.0,5.0,10093302786.0,Address Matched +1432725763552016042709561599260143,"97, Ashford Road",Bearsted,,ME14 4BS,1386393478,E,C,51,80,House,Semi-Detached,2016-04-27,E07000110,E14000700,Kent,2016-04-27,ECO assessment,42,74,299,112.0,9.3,54,3.6,173.0,86.0,1690.0,837.0,151.0,118.0,173.0,Single,Y,NODATA!,,,2102.0,100.0,"double glazing, unknown install date",Normal,2.0,6.0,6.0,0.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, dual fuel (mineral and wood)",,,"Roof room(s), insulated (assumed)",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,2.49,,N,natural,"97, Ashford Road, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2016-04-27 09:56:15,owner-occupied,,,200003692014.0,Address Matched +1595770549402017121210541653539498,Flat 5 Sycamore House,Belts Wood,,ME15 9GX,1461745578,C,C,78,79,Flat,Detached,2017-12-11,E07000110,E14000700,Kent,2017-12-12,rental (social),80,81,135,129.0,1.7,24,1.6,82.0,55.0,264.0,268.0,100.0,100.0,70.0,Single,Y,2nd,N,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,50.0,0.0,From main system,Good,Good,(another dwelling below),NO DATA!,,Fully double glazed,Average,Average,"System built, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,unheated corridor,7.95,,,N,natural,"Flat 5 Sycamore House, Belts Wood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2017-12-12 10:54:16,rental (social),,,10022896425.0,Address Matched +641861558212011061421121495990680,42 Stanhope House,Rockwell Court,Tovil,ME15 6FP,6048857868,C,C,72,72,Flat,Enclosed Mid-Terrace,2011-06-14,E07000110,E14000804,Kent,2011-06-14,marketed sale,74,74,168,168.0,2.5,30,2.5,55.0,55.0,303.0,303.0,235.0,235.0,85.3,Unknown,N,Ground,Y,,2603.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,86.0,0.0,"Electric immersion, standard tariff",Very Poor,Very Poor,(other premises below),,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Room heaters, electric",Very Poor,Very Poor,Programmer and appliance thermostats,Good,Good,Low energy lighting in 86% of fixed outlets,Very Good,Very Good,electricity (not community),0.0,heated corridor,,2.38,0.0,,natural,"42 Stanhope House, Rockwell Court, Tovil",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2011-06-14 21:12:14,owner-occupied,7.0,6.0,10022901555.0,Address Matched +1449299289512016060120384490060441,"70, Cayser Drive",Kingswood,,ME17 3QF,4127905478,D,A,63,104,Bungalow,Detached,2016-06-01,E07000110,E14000700,Kent,2016-06-01,marketed sale,55,92,200,-54.0,3.8,52,0.4,74.0,56.0,478.0,458.0,153.0,94.0,74.0,dual,N,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,67.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, oil",Average,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 67% of fixed outlets,Good,Good,oil (not community),0.0,NO DATA!,,2.42,,N,natural,"70, Cayser Drive, Kingswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2016-06-01 20:38:44,owner-occupied,,,200003701333.0,Address Matched +830404329062012090313530381278012,Chart Place,Church Road,Chart Sutton,ME17 3RE,1888231078,E,B,45,91,Bungalow,Semi-Detached,2012-09-03,E07000110,E14000700,Kent,2012-09-03,rental (private),41,92,352,27.0,5.6,68,0.5,92.0,46.0,897.0,342.0,138.0,69.0,83.0,Unknown,Y,NODATA!,,,2107.0,0.0,single glazing,Normal,0.0,2.0,2.0,0.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"Chart Place, Church Road, Chart Sutton",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2012-09-03 13:53:03,rental (private),6.0,0.0,200003694457.0,Address Matched +573635219922010121018324392808960,"23, Brunell Close",,,ME16 0YW,6963132868,C,C,80,80,House,End-Terrace,2010-12-10,E07000110,E14000804,Kent,2010-12-10,rental (private),78,78,138,138.0,2.8,23,2.8,77.0,77.0,400.0,400.0,127.0,127.0,121.3,Single,Y,NO DATA!,,,2106.0,100.0,triple glazing,Normal,0.0,6.0,6.0,90.0,0.0,From main system,Very Good,Very Good,"Suspended, insulated (assumed)",,,Fully triple glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 90% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.43,0.0,N,natural,"23, Brunell Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2010-12-10 18:32:43,rental (private),,,10022895917.0,Address Matched +485678599402011111422590371599548,"29, Ravens Dane Close",Downswood,,ME15 8XL,9471695768,D,C,67,69,House,Semi-Detached,2011-11-14,E07000110,E14000700,Kent,2011-11-14,marketed sale,67,69,222,205.0,2.7,43,2.5,61.0,36.0,436.0,420.0,105.0,106.0,64.1,Single,Y,NODATA!,,,2104.0,15.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,29.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Some double glazing,Very Poor,Very Poor,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 29% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,2.3,0.0,,natural,"29, Ravens Dane Close, Downswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2011-11-14 22:59:03,owner-occupied,7.0,2.0,200003691618.0,Address Matched +1053062009602013120618223512770168,"38, Franklin Drive",Weavering,,ME14 5SY,4604907178,C,B,71,85,House,Semi-Detached,2013-12-06,E07000110,E14000700,Kent,2013-12-06,marketed sale,71,85,161,69.0,2.7,31,1.2,73.0,51.0,457.0,420.0,120.0,81.0,89.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,6.0,6.0,57.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 57% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"38, Franklin Drive, Weavering",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2013-12-06 18:22:35,owner-occupied,14.0,8.0,200003716455.0,Address Matched +317924420702009070115171366410098,"38, Fauchons Lane",Bearsted,,ME14 4AH,728624668,D,D,59,61,House,Detached,2009-07-01,E07000110,E14000700,Kent,2009-07-01,marketed sale,63,64,268,261.0,4.7,37,4.6,112.0,60.0,759.0,772.0,103.0,103.0,124.6,Single,Y,NO DATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,2.0,6.0,6.0,15.0,1.0,From main system,Very Good,Very Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, wood logs",,,"Pitched, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 15% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.5,0.0,N,natural,"38, Fauchons Lane, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2009-07-01 15:17:13,owner-occupied,,,200003687249.0,Address Matched +773851419962012041722045377678812,5 Milestone Buildings,High Street,Staplehurst,TN12 0AB,1726137968,C,C,73,80,Flat,Mid-Terrace,2012-04-13,E07000110,E14000804,Kent,2012-04-17,marketed sale,73,82,154,103.0,2.4,29,1.6,70.0,47.0,371.0,262.0,102.0,92.0,80.0,Single,Y,1st,N,,2104.0,100.0,double glazing installed during or after 2002,Normal,2.0,3.0,3.0,50.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Poor,Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,heated corridor,,,0.0,,natural,"5 Milestone Buildings, High Street, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1900-1929,2012-04-17 22:04:53,owner-occupied,20.0,10.0,200003679107.0,Address Matched +596531829342014030109173785442488,"24a, Wrangleden Road",,,ME15 9LR,306124868,C,C,72,72,Flat,Semi-Detached,2014-02-28,E07000110,E14000700,Kent,2014-03-01,rental (social),74,74,166,166.0,1.9,32,1.9,40.0,40.0,355.0,355.0,117.0,117.0,61.0,Single,Y,1st,Y,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,no corridor,,,0.0,,natural,"24a, Wrangleden Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2014-03-01 09:17:37,rental (social),8.0,8.0,200003710576.0,Address Matched +1481091322212017012008032593230349,"16, Hop Pocket Way",Headcorn,,TN27 9AF,3966237478,B,A,85,93,House,Detached,2017-01-20,E07000110,E14000700,Kent,2017-01-20,new dwelling,85,93,76,31.0,2.2,13,0.9,86.0,86.0,347.0,348.0,116.0,64.0,161.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.26 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.10 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"16, Hop Pocket Way, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,NO DATA!,2017-01-20 08:03:25,unknown,20.0,20.0,10093302564.0,Address Matched +1824993483552020091114150920900977,4 Parsonage Farm Cottages,The Street,Stockbury,ME9 7UH,9737302778,F,C,36,72,House,Semi-Detached,2020-09-11,E07000110,E14000700,Kent,2020-09-11,marketed sale,31,63,324,119.0,7.3,83,3.2,139.0,70.0,916.0,579.0,200.0,82.0,88.0,Single,N,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,2.0,5.0,5.0,0.0,0.0,From main system,Poor,Poor,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, oil",Poor,Average,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,oil (not community),0.0,NO DATA!,,,,N,natural,"4 Parsonage Farm Cottages, The Street, Stockbury",Maidstone,Faversham and Mid Kent,SITTINGBOURNE,England and Wales: before 1900,2020-09-11 14:15:09,owner-occupied,,,200003732622.0,Address Matched +23c9d90e90b567b6f5f20f118fcaff56d406b87c362a57e9106a9d8184d573af,269 PLAINS AVENUE,,,ME15 7BQ,10001441162,C,B,74,86,House,Mid-Terrace,2021-07-21,E07000110,E14000700,Kent,2021-07-29,marketed sale,72,84,166,87.0,2.9,29,1.6,78.0,78.0,480.0,451.0,97.0,68.0,99.0,Unknown,Y,,,,,100.0,double glazing installed during or after 2002,Normal,1.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Average,Average,"Room heaters, mains gas",,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.4,0.0,N,natural,269 PLAINS AVENUE,Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2021-07-29 06:37:20,Owner-occupied,14.0,,200003714449.0,Energy Assessor +267569980262009042017070880608651,"55, King Edward Road",,,ME15 6PN,5878860668,E,D,54,63,House,Mid-Terrace,2009-04-20,E07000110,E14000804,Kent,2009-04-20,rental (private),48,56,332,270.0,6.4,56,5.2,89.0,56.0,852.0,721.0,138.0,113.0,101.68,Single,Y,NO DATA!,,,2107.0,100.0,double glazing installed before 2002,Normal,0.0,6.0,6.0,41.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Roof room(s), insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Poor,Poor,Low energy lighting in 41% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.45,0.0,N,natural,"55, King Edward Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2009-04-20 17:07:08,rental (private),,,200003665603.0,Address Matched +577146188552013071500273995970685,"11, Buckland Gardens",,,ME16 0ZB,6503852868,B,B,82,82,Flat,Mid-Terrace,2013-07-12,E07000110,E14000804,Kent,2013-07-15,rental (social),87,87,91,91.0,0.8,17,0.8,33.0,33.0,181.0,181.0,71.0,71.0,49.0,Single,Y,2nd,N,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,100.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Good,Good,"System built, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 100% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,12.1,,0.0,,natural,"11, Buckland Gardens",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2013-07-15 00:27:39,rental (social),7.0,7.0,10014308667.0,Address Matched +1785464312502020021714424767909438,"62, Tovil Road",,,ME15 6QJ,5587619678,C,B,69,90,House,Mid-Terrace,2020-02-17,E07000110,E14000804,Kent,2020-02-17,rental (private),67,90,210,52.0,2.8,37,0.7,113.0,61.0,470.0,328.0,95.0,66.0,76.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,14.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, mains gas",,,"Pitched, 270 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 14% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"62, Tovil Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2020-02-17 14:42:47,rental (private),,,200003664477.0,Address Matched +1394942652532015121019221276078495,"40a, Fordwich Close",,,ME16 0NU,5526421478,C,B,69,87,House,Mid-Terrace,2015-12-09,E07000110,E14000804,Kent,2015-12-10,rental,66,85,204,71.0,3.0,36,1.1,54.0,54.0,499.0,409.0,166.0,75.0,84.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"40a, Fordwich Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2015-12-10 19:22:12,owner-occupied,,,10022897221.0,Address Matched +1260619209532015012312265354278409,"8, Wagoners Close",Weavering,,ME14 5SG,944471378,D,B,58,87,Bungalow,Detached,2015-01-23,E07000110,E14000700,Kent,2015-01-23,marketed sale,52,86,330,72.0,3.7,58,0.9,64.0,43.0,586.0,380.0,209.0,67.0,64.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,50.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"8, Wagoners Close, Weavering",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2015-01-23 12:26:53,owner-occupied,,,200003687746.0,Address Matched +1238834751012014112016164392949337,4 Orchard Villas,Dairy Lane,Marden,TN12 9SW,3733120378,D,C,59,79,House,Semi-Detached,2014-11-19,E07000110,E14000804,Kent,2014-11-20,assessment for green deal,62,81,230,105.0,3.5,41,1.6,107.0,53.0,517.0,476.0,359.0,189.0,86.0,Single,N,NODATA!,,,2206.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,0.0,0.0,"From main system, no cylinder thermostat",Very Poor,Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Air source heat pump, radiators, electric",Average,Good,"Programmer, TRVs and bypass",Average,Average,No low energy lighting,Very Poor,Very Poor,electricity (not community),0.0,NO DATA!,,,0.0,,natural,"4 Orchard Villas, Dairy Lane, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1983-1990,2014-11-20 16:16:43,rental (social),10.0,0.0,200003721988.0,Address Matched +1085393039142014031608323112949278,"73, Quarry Road",,,ME15 6UB,7137739178,E,B,49,86,House,End-Terrace,2014-03-13,E07000110,E14000804,Kent,2014-03-16,assessment for green deal,45,86,318,64.0,5.2,61,1.1,56.0,56.0,864.0,413.0,225.0,76.0,85.0,Single,Y,NODATA!,,,2107.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,89.0,0.0,"From main system, no cylinder thermostat",Poor,Poor,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 89% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"73, Quarry Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2014-03-16 08:32:31,owner-occupied,9.0,8.0,200003682020.0,Address Matched +1350627619542015080616345138850768,"88, Union Street",,,ME14 1EH,6541018378,E,D,47,64,House,End-Terrace,2015-08-06,E07000110,E14000804,Kent,2015-08-06,rental (private),39,53,367,251.0,7.3,65,5.0,73.0,73.0,1377.0,1168.0,116.0,77.0,112.0,Single,Y,NODATA!,,,2102.0,100.0,double glazing installed during or after 2002,Normal,1.0,5.0,5.0,90.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,Low energy lighting in 90% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"88, Union Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2015-08-06 16:34:51,rental (private),,,200003697554.0,Address Matched +1524618911152017030813041494030458,"37, Henley Fields",Weavering,,ME14 5UY,4868140578,D,C,58,76,House,Detached,2017-03-08,E07000110,E14000700,Kent,2017-03-08,marketed sale,56,77,245,130.0,6.8,38,3.4,89.0,89.0,1436.0,971.0,185.0,127.0,180.0,Single,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,1.0,8.0,8.0,100.0,1.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, wood logs",,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"37, Henley Fields, Weavering",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2017-03-08 13:04:14,owner-occupied,,,200003689713.0,Address Matched +828010467152013053011080391970000,"78, Sittingbourne Road",,,ME14 5HY,63711078,D,B,57,81,House,Semi-Detached,2013-05-17,E07000110,E14000804,Kent,2013-05-30,assessment for green deal,52,79,237,95.0,5.9,46,2.4,118.0,63.0,959.0,602.0,117.0,80.0,128.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,2.0,7.0,7.0,12.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, no insulation",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 12% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"78, Sittingbourne Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2013-05-30 11:08:03,owner-occupied,17.0,2.0,200003716653.0,Address Matched +1786586942222020022014204299708580,"1, Long Strakes",Staplehurst,,TN12 0GT,8932429678,B,A,84,93,House,Detached,2020-02-20,E07000110,E14000804,Kent,2020-02-20,new dwelling,85,94,84,22.0,1.6,15,0.5,78.0,78.0,284.0,284.0,78.0,47.0,111.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.17 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.12 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"1, Long Strakes, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,NO DATA!,2020-02-20 14:20:42,owner-occupied,20.0,20.0,10094443846.0,Address Matched +7cbda365ae7f7816f9e07dbcfb84e250337e1826294dd915d2be977169e9afc1,FLAT 3,RAYLEIGH HOUSE,KINGS REACH,ME15 7QR,10001663503,E,C,54,72,Flat,Semi-Detached,2021-06-29,E07000110,E14000700,Kent,2021-07-01,ECO assessment,53,75,410,217.0,2.9,72,1.5,75.0,38.0,583.0,316.0,75.0,76.0,40.0,Single,Y,00,N,,,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,0.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Average,Average,"Room heaters, electric",,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,unheated corridor,4.5,2.79,0.0,N,natural,"FLAT 3, RAYLEIGH HOUSE, KINGS REACH",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2021-07-01 18:20:24,Rented (social),8.0,,200003713940.0,Energy Assessor +181355210262008110422113193538488,Flat 7,"201, Boxley Road",,ME14 2TL,8927183568,B,B,84,85,Flat,Detached,2008-10-27,E07000110,E14000804,Kent,2008-11-04,rental (private),81,82,275,270.0,0.9,46,0.9,13.0,9.0,130.0,131.0,19.0,19.0,19.3,Unknown,Y,1st,N,4.0,2305.0,100.0,"double glazing, unknown install date",Normal,0.0,1.0,1.0,50.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,(another dwelling above),,,Community scheme,Good,Good,"Flat rate charging, programmer and TRVs",Average,Average,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,heated corridor,,3.1,0.0,N,natural,"Flat 7, 201, Boxley Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2008-11-04 22:11:31,rental (private),,,200003704275.0,Address Matched +505825612022020070711240517238650,Flat 65 Scotney Gardens,St. Peters Street,,ME16 0GR,5178147768,B,B,87,87,Flat,Mid-Terrace,2020-07-07,E07000110,E14000804,Kent,2020-07-07,marketed sale,81,81,177,177.0,1.1,30,1.1,42.0,42.0,42.0,42.0,151.0,151.0,38.0,dual,N,3rd,N,,2401.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,100.0,0.0,"Electric immersion, off-peak",Average,Poor,(another dwelling below),NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,Portable electric heaters (assumed),,,(another dwelling above),,,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,heated corridor,,,,N,natural,"Flat 65 Scotney Gardens, St. Peters Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2020-07-07 11:24:05,owner-occupied,,,10022893433.0,Address Matched +1153844919062014060915252574048404,Monksfield,Goudhurst Road,Staplehurst,TN12 0HG,709124278,C,B,71,83,Bungalow,Detached,2014-06-04,E07000110,E14000804,Kent,2014-06-09,marketed sale,64,78,142,79.0,4.9,32,2.9,98.0,76.0,878.0,705.0,186.0,160.0,152.0,Unknown,N,NODATA!,,,2107.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,71.0,0.0,From main system,Average,Average,"Solid, insulated (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, wood logs",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, oil",Average,Average,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 71% of fixed outlets,Very Good,Very Good,oil (not community),0.0,NO DATA!,,,0.0,,natural,"Monksfield, Goudhurst Road, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 2003-2006,2014-06-09 15:25:25,owner-occupied,14.0,10.0,200003722945.0,Address Matched +1740575719062019080116022635898851,88 Fennel Close,,,ME16 0XT,5301195678,C,C,76,76,Flat,Semi-Detached,2019-08-01,E07000110,E14000804,Kent,2019-08-01,marketed sale,77,77,160,160.0,1.7,28,1.7,63.0,63.0,280.0,280.0,93.0,93.0,60.0,Unknown,Y,2nd,Y,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,80.0,0.0,From main system,Very Good,Good,(another dwelling below),NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,4.92,,,N,natural,88 Fennel Close,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2019-08-01 16:02:26,owner-occupied,,,200003722445.0,Address Matched +367527760402009092112595965719688,"17, Stoneacre Court",Enterprise Road,,ME15 6AB,7434867668,C,C,72,76,Flat,Detached,2009-09-18,E07000110,E14000804,Kent,2009-09-21,rental (private),65,67,310,290.0,2.6,46,2.5,62.0,36.0,222.0,200.0,115.0,115.0,56.0,dual,N,2nd,Y,3.0,2401.0,,INVALID!,Much More Than Typical,0.0,3.0,3.0,25.0,0.0,"Electric immersion, off-peak",Average,Poor,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,"Pitched, 200mm loft insulation",Good,Good,Electric storage heaters,Poor,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 25% of fixed outlets,Average,Average,electricity - this is for backwards compatibility only and should not be used,0.0,unheated corridor,5.5,2.36,0.0,N,natural,"17, Stoneacre Court, Enterprise Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2009-09-21 12:59:59,rental (private),,,200003686874.0,Address Matched +1142550930852014051817452394940425,Flat 2 Haynes House,Vinters Road,,ME14 5XB,4529043278,E,D,52,63,Flat,Semi-Detached,2014-05-15,E07000110,E14000804,Kent,2014-05-18,rental (private),56,66,347,272.0,2.7,61,2.1,31.0,31.0,564.0,406.0,139.0,139.0,44.0,Single,N,Ground,N,,2602.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,100.0,0.0,Electric instantaneous at point of use,Very Poor,Very Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Room heaters, electric",Very Poor,Very Poor,Appliance thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,unheated corridor,4.55,,0.0,,natural,"Flat 2 Haynes House, Vinters Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2014-05-18 17:45:23,rental (private),6.0,6.0,200003689497.0,Address Matched +1383679839532015111014551032978491,"55, Lower Road",,,ME15 7RH,3162440478,D,C,63,79,House,Semi-Detached,2015-11-10,E07000110,E14000804,Kent,2015-11-10,marketed sale,57,74,269,148.0,4.0,47,2.3,73.0,55.0,743.0,640.0,110.0,72.0,85.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,1.0,6.0,6.0,67.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 67% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"55, Lower Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2015-11-10 14:55:10,owner-occupied,,,200003695293.0,Address Matched +356343870062009090210450396098491,"32, Wildfell Close",,,ME5 9RU,9959786668,C,B,73,81,House,Mid-Terrace,2009-09-01,E07000110,E14000700,Kent,2009-09-02,rental (private),68,79,261,177.0,2.4,44,1.6,27.0,27.0,335.0,254.0,126.0,91.0,53.79,Unknown,Y,NO DATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,100.0,0.0,From main system,Average,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Timber frame, as built, insulated (assumed)",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Average,Good,Programmer and room thermostat,Poor,Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.33,0.0,N,natural,"32, Wildfell Close",Maidstone,Faversham and Mid Kent,CHATHAM,England and Wales: 1983-1990,2009-09-02 10:45:03,rental (private),,,200003727972.0,Address Matched +729967110152011120617232398099998,"85, Milton Street",,,ME16 8LD,9867083968,C,C,72,73,House,Mid-Terrace,2011-12-06,E07000110,E14000804,Kent,2011-12-06,rental (private),71,73,166,156.0,3.0,32,2.8,63.0,49.0,502.0,481.0,88.0,88.0,94.28,Single,Y,NODATA!,,,2104.0,90.0,double glazing installed during or after 2002,Normal,1.0,5.0,5.0,70.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Mostly double glazing,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 70% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,2.45,0.0,,natural,"85, Milton Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2011-12-06 17:23:23,rental (private),10.0,7.0,200003655499.0,Address Matched +1085352889022016110414180469698866,"43, Lushington Road",,,ME14 2QS,6610839178,F,C,27,80,House,Mid-Terrace,2016-11-01,E07000110,E14000804,Kent,2016-11-04,ECO assessment,18,61,538,98.0,8.4,123,2.7,83.0,47.0,1195.0,475.0,314.0,72.0,69.0,Single,Y,NODATA!,,,2602.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,2.0,25.0,0.0,"Electric immersion, standard tariff",Very Poor,Poor,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,Portable electric heaters (assumed),,,"Pitched, 250 mm loft insulation",Good,Good,"Room heaters, mains gas",Very Poor,Very Poor,Appliance thermostats,Good,Good,Low energy lighting in 25% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,2.4,,N,natural,"43, Lushington Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2016-11-04 14:18:04,owner-occupied,,,200003670946.0,Address Matched +7cfcec6fcddd9746ea092e888547c1932eca48170904646a2d601c5f790a3748,18 PASSMORE WAY,TOVIL,,ME15 6AD,10001396083,D,C,63,80,Flat,End-Terrace,2021-07-23,E07000110,E14000804,Kent,2021-07-23,rental,67,67,301,300.0,2.0,51,2.0,80.0,44.0,361.0,204.0,306.0,155.0,40.0,Single,N,00,N,,,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,0.0,0.0,"Electric immersion, standard tariff",Very Poor,Poor,"Solid, insulated (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Room heaters, electric",Very Poor,Poor,Programmer and appliance thermostats,Good,Good,No low energy lighting,Very Poor,Very Poor,electricity (not community),0.0,no corridor,,2.35,0.0,N,natural,"18 PASSMORE WAY, TOVIL",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2021-07-23 14:55:15,Rented (private),8.0,,10022892096.0,Energy Assessor +1697174479102019021213170868219328,"4, Bermelie Fields",Barming,,ME16 9FP,4142672678,B,A,84,96,House,Semi-Detached,2019-02-12,E07000110,E14000804,Kent,2019-02-12,new dwelling,87,98,82,-2.0,1.2,14,0.0,64.0,64.0,200.0,200.0,79.0,48.0,83.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"4, Bermelie Fields, Barming",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2019-02-12 13:17:08,unknown,1.0,1.0,10093305964.0,Address Matched +1440307605632016050506020876078406,"34, Sherbourne Drive",,,ME16 8UG,606444478,D,B,66,85,House,End-Terrace,2016-05-04,E07000110,E14000804,Kent,2016-05-05,marketed sale,66,86,241,80.0,2.4,42,0.8,81.0,40.0,429.0,392.0,132.0,76.0,58.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,3.0,3.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Timber frame, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,2.37,,N,natural,"34, Sherbourne Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1976-1982,2016-05-05 06:02:08,owner-occupied,,,200003675049.0,Address Matched +1074110689712014061616595795940017,"43, Threshers Drive",Weavering,,ME14 5UA,737958178,E,B,53,86,House,Semi-Detached,2014-06-16,E07000110,E14000700,Kent,2014-06-16,none of the above,48,86,288,62.0,5.1,55,1.1,71.0,54.0,846.0,424.0,215.0,76.0,92.0,Single,Y,NODATA!,,,2102.0,100.0,double glazing installed during or after 2002,Normal,1.0,5.0,5.0,69.0,0.0,"From main system, no cylinder thermostat",Poor,Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, partial insulation (assumed)",Average,Average,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,Low energy lighting in 69% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"43, Threshers Drive, Weavering",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1976-1982,2014-06-16 16:59:57,owner-occupied,13.0,9.0,200003673063.0,Address Matched +1429578869302016040115311346367798,"2, Birkdale Court",Buckland Road,,ME16 0UH,3398863478,D,C,63,74,Flat,End-Terrace,2016-03-31,E07000110,E14000804,Kent,2016-04-01,rental (private),45,59,431,306.0,4.0,73,2.8,58.0,58.0,488.0,279.0,146.0,146.0,55.0,dual,N,Ground,N,,2401.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,75.0,0.0,"Electric immersion, off-peak",Average,Poor,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,(another dwelling above),,,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,electricity (not community),0.0,unheated corridor,5.85,2.34,,N,natural,"2, Birkdale Court, Buckland Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2016-04-01 15:31:13,rental (private),,,200003667027.0,Address Matched +478927759402010100714510170500138,"122, London Road",,,ME16 0BX,8472155768,G,G,1,6,House,Semi-Detached,2010-10-07,E07000110,E14000804,Kent,2010-10-07,marketed sale,24,31,679,575.0,10.4,102,8.8,109.0,109.0,2551.0,2106.0,250.0,250.0,101.9,Single,Y,NO DATA!,,,2601.0,100.0,double glazing installed before 2002,Normal,1.0,6.0,6.0,0.0,0.0,Electric instantaneous at point of use,Very Poor,Poor,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, electric",Very Poor,Poor,No thermostatic control of room temperature,Poor,Poor,No low energy lighting,Very Poor,Very Poor,electricity - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.63,0.0,N,natural,"122, London Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2010-10-07 14:51:01,owner-occupied,,,200003658541.0,Address Matched +1420004957632016030317111040078209,"14, Cobnut Avenue",,,ME15 8WH,5910203478,B,B,81,81,Flat,NO DATA!,2016-03-03,E07000110,E14000700,Kent,2016-03-03,new dwelling,84,84,108,108.0,1.3,19,1.3,48.0,48.0,262.0,262.0,80.0,80.0,71.0,standard tariff,,ground floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.19 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.26 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"14, Cobnut Avenue",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2016-03-03 17:11:10,unknown,1.0,1.0,10091194552.0,Address Matched +828331879222012082312560721178272,"59, Howard Drive",,,ME16 0QF,7233711078,D,C,55,78,Bungalow,Semi-Detached,2012-08-23,E07000110,E14000804,Kent,2012-08-23,rental (private),50,76,284,120.0,4.4,55,1.9,70.0,45.0,704.0,531.0,138.0,68.0,81.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,46.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 46% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"59, Howard Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2012-08-23 12:56:07,rental (private),13.0,6.0,200003704115.0,Address Matched +454224425732013060921222581768006,Flat 4 Millennium House,"77, Courtenay Road",,ME15 6UJ,2621083768,C,C,75,77,Maisonette,Semi-Detached,2013-05-31,E07000110,E14000804,Kent,2013-06-09,rental (private),78,80,142,130.0,1.6,27,1.5,86.0,43.0,276.0,282.0,80.0,80.0,60.0,dual,Y,1st,Y,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,0.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,unheated corridor,3.12,,0.0,,natural,"Flat 4 Millennium House, 77, Courtenay Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2013-06-09 21:22:25,rental (private),6.0,0.0,200003661262.0,Address Matched +265765470962009041420012870848021,"11, Barham Mews",Teston,,ME18 5BL,2777750668,E,E,40,50,Flat,Mid-Terrace,2009-04-14,E07000110,E14000804,Kent,2009-04-14,marketed sale,34,40,667,579.0,5.6,101,4.8,58.0,29.0,588.0,475.0,141.0,141.0,55.43,dual,N,1st,Y,2.0,2401.0,0.0,single glazing,Normal,0.0,2.0,2.0,0.0,0.0,"Electric immersion, off-peak",Poor,Poor,(other premises below),,,Single glazed,Very Poor,Very Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, electric",,,"Pitched, 100 mm loft insulation",Average,Average,Electric storage heaters,Poor,Very Poor,Manual charge control,Poor,Poor,No low energy lighting,Very Poor,Very Poor,electricity - this is for backwards compatibility only and should not be used,0.0,unheated corridor,4.93,2.47,0.0,N,natural,"11, Barham Mews, Teston",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2009-04-14 20:01:28,owner-occupied,,,10022892642.0,Address Matched +1804208852102020061807225974009858,"36, Hayle Road",,,ME15 6PG,2109250778,E,C,51,77,House,Detached,2020-06-15,E07000110,E14000804,Kent,2020-06-18,marketed sale,42,71,342,151.0,7.4,60,3.3,99.0,99.0,1309.0,771.0,109.0,75.0,123.0,Unknown,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,6.0,6.0,83.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 83% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"36, Hayle Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2020-06-18 07:22:59,owner-occupied,,,200003681673.0,Address Matched +1470999169302016081208145949669898,"26, Discovery Road",Bearsted,,ME15 8HF,7365066478,C,B,71,81,House,Detached,2016-08-11,E07000110,E14000700,Kent,2016-08-12,marketed sale,66,76,185,124.0,4.1,33,2.8,120.0,76.0,655.0,662.0,175.0,137.0,126.0,Unknown,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,6.0,6.0,43.0,0.0,From main system,Good,Good,"Solid, limited insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 43% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,2.28,,N,natural,"26, Discovery Road, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1996-2002,2016-08-12 08:14:59,owner-occupied,,,200003722085.0,Address Matched +1771943692222020082409544188248110,"5, Broad Drive",Boughton Monchelsea,,ME17 4SW,1836918678,B,A,84,96,House,Semi-Detached,2020-08-24,E07000110,E14000804,Kent,2020-08-24,new dwelling,87,99,83,-7.0,1.1,14,-0.1,65.0,65.0,195.0,195.0,73.0,44.0,77.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.20 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"5, Broad Drive, Boughton Monchelsea",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2020-08-24 09:54:41,unknown,14.0,14.0,10094442581.0,Address Matched +1097198724432014042415060893278000,"14, Redstart Avenue",,,ME15 6ZY,2073020278,B,A,83,94,House,Semi-Detached,2014-04-24,E07000110,E14000804,Kent,2014-04-24,new dwelling,85,96,89,16.0,1.6,16,0.3,58.0,58.0,265.0,266.0,96.0,51.0,99.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.10 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"14, Redstart Avenue",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2014-04-24 15:06:08,owner-occupied,13.0,13.0,10014315262.0,Address Matched +655471439922011101417310028348299,47 Thomas Place,James Whatman Way,,ME14 1FP,9291358868,C,B,80,81,Flat,Mid-Terrace,2011-10-14,E07000110,E14000804,Kent,2011-10-14,new dwelling,90,90,96,93.0,0.8,13,0.8,47.0,37.0,200.0,201.0,102.0,102.0,63.9,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,5.0,,"Community scheme, no cylinder thermostat",Good,Very Good,(other premises below),,,Fully double glazed,Good,Good,Average thermal transmittance 0.29 W/m?K,Very Good,Very Good,,,,(other premises above),,,Community scheme,Good,Very Good,"Flat rate charging, programmer and TRVs",Average,Average,Low energy lighting in 71% of fixed outlets,Very Good,Very Good,NO DATA!,0.0,NO DATA!,,2.4,,,NO DATA!,"47 Thomas Place, James Whatman Way",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2011-10-14 17:31:00,,7.0,5.0,10014312713.0,Address Matched +1323062919042015051916212233659518,"81, Boughton Lane",,,ME15 9QP,3062616378,D,B,68,87,House,Mid-Terrace,2015-05-19,E07000110,E14000804,Kent,2015-05-19,marketed sale,64,86,210,69.0,3.6,38,1.3,81.0,59.0,627.0,427.0,136.0,85.0,96.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,63.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 63% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"81, Boughton Lane",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2015-05-19 16:21:22,owner-occupied,,,200003677946.0,Address Matched +70531959222010052515291764858440,"38, Roseholme",,,ME16 8DR,4652574468,D,C,67,79,Flat,Enclosed End-Terrace,2010-05-25,E07000110,E14000804,Kent,2010-05-25,marketed sale,61,76,308,191.0,3.0,51,3.0,30.0,30.0,472.0,309.0,103.0,84.0,58.18,Single,Y,Ground,N,2.0,2104.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.4,0.0,N,natural,"38, Roseholme",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2010-05-25 15:29:17,owner-occupied,,,200003656342.0,Address Matched +1f6a34b12d0a1355dda6111d751408f9ca4721587fc7ae839365f96d8f9c2ed2,26 Pearwood Road,,,ME16 9FY,10001479725,B,A,84,96,House,Semi-Detached,2021-09-23,E07000110,E14000804,Kent,2021-09-23,new dwelling,86,98,83,1.0,1.3,14,0.0,71.0,71.0,207.0,207.0,80.0,45.0,87.0,standard tariff,,,N,,,100.0,,,,,,100.0,0.0,"From main system, waste water heat recovery",Very Good,Very Good,Average thermal transmittance 0.18 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.15 W/m-¦K,Good,Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.32,,,,26 Pearwood Road,Maidstone,Maidstone and The Weald,ALLINGTON,2021,2021-09-23 10:32:08,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,26.0,,10095449713.0,Energy Assessor +146069490022008100310384871878238,"11, St. Andrews Park",Tarragon Road,,ME16 0WD,3705961568,C,B,78,83,Maisonette,Semi-Detached,2008-10-03,E07000110,E14000804,Kent,2008-10-03,marketed sale,77,81,146,119.0,2.7,24,2.2,113.0,57.0,243.0,230.0,148.0,127.0,113.79,Single,Y,2nd,N,3.0,2106.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,0.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Granite or whinstone, with internal insulation",Good,Good,,,,Pitched,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,unheated corridor,2.672,2.51,0.0,N,natural,"11, St. Andrews Park, Tarragon Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2008-10-03 10:38:48,owner-occupied,,,200003654967.0,Address Matched +528998509142010081818410179909388,"6, Raynham Villas",Hunton Road,,TN12 9SZ,4193709768,E,D,53,64,House,Mid-Terrace,2010-08-18,E07000110,E14000804,Kent,2010-08-18,marketed sale,45,53,428,352.0,5.6,65,4.6,100.0,52.0,624.0,468.0,150.0,150.0,87.0,dual,N,NO DATA!,,,2401.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,2.0,10.0,0.0,"Electric immersion, off-peak",Average,Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, partial insulation (assumed)",Average,Average,Portable electric heaters,,,"Pitched, limited insulation (assumed)",Poor,Poor,Electric storage heaters,Poor,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 10% of fixed outlets,Poor,Poor,electricity - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,0.0,N,natural,"6, Raynham Villas, Hunton Road",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1976-1982,2010-08-18 18:41:01,owner-occupied,,,200003723892.0,Address Matched +1538337339602017092515204357132758,11 Parks Road,Harrietsham,,ME17 1GR,2660931578,B,A,84,93,House,Detached,2017-09-25,E07000110,E14000700,Kent,2017-09-25,new dwelling,85,93,84,29.0,2.0,15,0.7,74.0,74.0,319.0,321.0,104.0,56.0,132.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.2 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.2 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.1 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"11 Parks Road, Harrietsham",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2017-09-25 15:20:43,unknown,15.0,15.0,10093305144.0,Address Matched +595285225952011022111153890290789,"58, Wheeler Street",,,ME14 1UA,7914504868,F,E,36,45,House,Mid-Terrace,2011-02-21,E07000110,E14000804,Kent,2011-02-21,marketed sale,31,38,565,467.0,7.6,94,6.3,65.0,43.0,1240.0,1059.0,130.0,101.0,64.6,Single,Y,NO DATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,2.0,4.0,4.0,50.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, mains gas",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,0.0,N,natural,"58, Wheeler Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2011-02-21 11:15:38,owner-occupied,,,200003698864.0,Address Matched +1454157429922016061611033515768426,"3, The Bartons",Staplehurst,,TN12 0EF,2189245478,B,A,84,93,House,Detached,2016-06-16,E07000110,E14000804,Kent,2016-06-16,new dwelling,84,93,85,28.0,1.9,15,0.7,77.0,77.0,316.0,319.0,116.0,62.0,129.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"3, The Bartons, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,NO DATA!,2016-06-16 11:03:35,owner-occupied,21.0,21.0,10014315502.0,Address Matched +284431370102009051208380563119228,"17, The Stampers",,,ME15 6FF,7183671668,C,C,74,80,House,Mid-Terrace,2009-05-12,E07000110,E14000804,Kent,2009-05-12,marketed sale,71,77,250,197.0,2.0,41,1.6,32.0,23.0,273.0,238.0,108.0,85.0,48.2,Single,Y,NO DATA!,,,2107.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,60.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Poor,Poor,Low energy lighting in 60% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.3,0.0,N,natural,"17, The Stampers",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2009-05-12 08:38:05,owner-occupied,,,200003716372.0,Address Matched +1452383436632016061022442656978106,"13, Foxden Drive",Downswood,,ME15 8TQ,3636135478,C,B,72,88,House,Semi-Detached,2016-06-10,E07000110,E14000700,Kent,2016-06-10,marketed sale,71,88,192,66.0,2.4,34,0.9,84.0,49.0,442.0,388.0,91.0,57.0,72.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,27.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Timber frame, as built, insulated (assumed)",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 27% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,2.36,,N,natural,"13, Foxden Drive, Downswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2016-06-10 22:44:26,owner-occupied,,,200003686538.0,Address Matched +1065703309022014010717333718838204,"23, Little Buckland Avenue",,,ME16 0BG,164008178,E,C,48,79,House,Semi-Detached,2014-01-07,E07000110,E14000804,Kent,2014-01-07,none of the above,47,81,311,103.0,5.7,54,1.8,72.0,72.0,1118.0,618.0,202.0,78.0,106.0,Single,Y,NODATA!,,,2102.0,100.0,double glazing installed before 2002,Normal,2.0,4.0,4.0,78.0,0.0,"From main system, no cylinder thermostat",Average,Average,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, wood logs",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,Low energy lighting in 78% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"23, Little Buckland Avenue",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2014-01-07 17:33:37,owner-occupied,9.0,7.0,200003659548.0,Address Matched +1619997339312018033113064691280154,Fairmeadow Cottage,Bletchenden Road,Headcorn,TN27 9JB,1446917578,F,E,25,45,Bungalow,Detached,2018-03-26,E07000110,E14000700,Kent,2018-03-31,marketed sale,29,44,357,235.0,10.0,78,6.8,152.0,77.0,1388.0,1122.0,158.0,129.0,129.0,Single,N,NODATA!,,,2104.0,0.0,not defined,Normal,0.0,7.0,7.0,0.0,1.0,From main system,Average,Average,"Suspended, no insulation (assumed)",NO DATA!,,Single glazed,Very Poor,Very Poor,"Solid brick, as built, no insulation (assumed)",Poor,Poor,"Room heaters, wood logs",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, oil",Average,Average,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,oil (not community),0.0,NO DATA!,,,,N,natural,"Fairmeadow Cottage, Bletchenden Road, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,England and Wales: before 1900,2018-03-31 13:06:46,owner-occupied,,,200003721072.0,Address Matched +1685001226752018121012564698989868,"10, Covert Way",,,ME16 9FN,8872681678,B,A,84,96,House,End-Terrace,2018-12-10,E07000110,E14000804,Kent,2018-12-10,new dwelling,87,98,79,0.0,1.2,14,0.0,67.0,67.0,191.0,191.0,85.0,53.0,87.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.18 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"10, Covert Way",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2018-12-10 12:56:46,unknown,20.0,20.0,10093303583.0,Address Matched +737856469922012011023094824508722,"17, Tasker Close",Bearsted,,ME15 8NZ,2271654968,D,D,60,61,Bungalow,Detached,2012-01-10,E07000110,E14000700,Kent,2012-01-10,marketed sale,59,59,287,280.0,3.1,55,3.1,56.0,33.0,544.0,548.0,72.0,72.0,57.0,Unknown,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,30.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, mains gas",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 30% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,2.3,0.0,,natural,"17, Tasker Close, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2012-01-10 23:09:48,owner-occupied,10.0,3.0,200003693226.0,Address Matched +508851164252010070514562096000278,9 Rowan House,Springwood Road,Barming,ME16 9NX,2852467768,D,C,64,78,Flat,Detached,2010-07-05,E07000110,E14000804,Kent,2010-07-05,rental (private),57,74,307,184.0,3.8,51,2.3,62.0,40.0,483.0,301.0,183.0,140.0,74.2,Single,Y,2nd,Y,3.0,2301.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,44.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,Community scheme,Good,Good,"Flat rate charging, no thermostatic control of room temperature",Very Poor,Very Poor,Low energy lighting in 44% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,heated corridor,,2.4,0.0,N,natural,"9 Rowan House, Springwood Road, Barming",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2010-07-05 14:56:20,rental (private),,,200003697253.0,Address Matched +1080403384612014012921283890240712,"615, Loose Road",Loose,,ME15 9UT,7251409178,E,B,49,87,House,Mid-Terrace,2014-01-29,E07000110,E14000804,Kent,2014-01-29,marketed sale,47,89,389,51.0,3.6,75,0.5,47.0,31.0,581.0,346.0,208.0,67.0,48.0,Single,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,1.0,3.0,3.0,50.0,0.0,"From main system, no cylinder thermostat",Poor,Poor,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"615, Loose Road, Loose",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2014-01-29 21:28:38,owner-occupied,10.0,5.0,200003675451.0,Address Matched +7d6e584d492a15971c0585996e3634785bab3e533099dbbe85e59110539ed001,14 Blackmanstone Way,,,ME16 0NT,10001387032,D,B,62,87,House,Detached,2021-09-14,E07000110,E14000804,Kent,2021-09-14,marketed sale,55,86,270,70.0,3.9,48,1.1,69.0,69.0,572.0,370.0,189.0,68.0,83.0,Single,Y,,,,,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,100.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.32,0.0,N,natural,14 Blackmanstone Way,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1976-1982,2021-09-14 20:01:37,Owner-occupied,10.0,,200003706898.0,Energy Assessor +317047203132019070821123538068908,"3, Malthouse Close",Lenham,,ME17 2LQ,848914668,D,B,68,85,House,Semi-Detached,2019-07-08,E07000110,E14000700,Kent,2019-07-08,marketed sale,68,86,231,86.0,2.3,40,0.9,60.0,46.0,464.0,410.0,82.0,56.0,58.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,71.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 71% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"3, Malthouse Close, Lenham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1976-1982,2019-07-08 21:12:35,owner-occupied,,,200003707313.0,Address Matched +73908329502014122314402743542478,"14, Barrel Arch Close",Marden,,TN12 9QQ,8511225468,C,B,73,90,House,Mid-Terrace,2014-12-23,E07000110,E14000804,Kent,2014-12-23,none of the above,73,90,185,46.0,1.9,32,0.5,78.0,39.0,334.0,313.0,92.0,64.0,59.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, partial insulation (assumed)",Average,Average,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"14, Barrel Arch Close, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1976-1982,2014-12-23 14:40:27,owner-occupied,,,200003709611.0,Address Matched +323777610022009070919585374718361,Flat 3 Canterbury House,Cambridge Crescent,,ME15 7NZ,6756164668,D,C,66,76,Flat,Semi-Detached,2009-07-09,E07000110,E14000700,Kent,2009-07-09,rental (social),61,72,374,272.0,2.4,62,1.7,31.0,19.0,383.0,311.0,89.0,64.0,38.5,Single,Y,Ground,N,2.0,2107.0,100.0,"double glazing, unknown install date",Normal,0.0,1.0,1.0,40.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"System built, with external insulation",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Poor,Poor,Low energy lighting in 40% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.35,0.0,N,natural,"Flat 3 Canterbury House, Cambridge Crescent",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2009-07-09 19:58:53,rental (social),,,200003713118.0,Address Matched +1142812659962014051916455313618924,"27, Whitmore Street",,,ME16 8JX,2133543278,D,B,61,88,House,Mid-Terrace,2014-05-19,E07000110,E14000804,Kent,2014-05-19,rental (private),58,90,241,45.0,3.4,46,0.7,58.0,45.0,648.0,367.0,87.0,51.0,73.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,1.0,5.0,5.0,70.0,0.0,Gas multipoint,Average,Average,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Average,Programmer and room thermostat,Average,Average,Low energy lighting in 70% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"27, Whitmore Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2014-05-19 16:45:53,rental (private),10.0,7.0,200003655343.0,Address Matched +325209059222018022622205154668128,"13, Littlebourne Road",,,ME14 5QP,2507574668,C,B,73,88,House,End-Terrace,2018-02-26,E07000110,E14000804,Kent,2018-02-26,marketed sale,73,87,174,66.0,2.3,31,0.9,70.0,53.0,390.0,363.0,87.0,58.0,74.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,2.0,4.0,4.0,67.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 67% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"13, Littlebourne Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2018-02-26 22:20:51,owner-occupied,,,200003671720.0,Address Matched +54500300132009100519063531068198,Adarth,Tyland Lane,Sandling,ME14 3BL,801193468,F,D,38,61,House,Semi-Detached,2009-10-05,E07000110,E14000700,Kent,2009-10-05,marketed sale,33,54,537,322.0,7.2,90,4.3,70.0,40.0,896.0,555.0,292.0,206.0,80.0,Unknown,Y,NO DATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,25.0,1.0,"From main system, no cylinderstat",Poor,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Average,Good,Programmer and room thermostat,Poor,Poor,Low energy lighting in 25% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.5,0.0,N,natural,"Adarth, Tyland Lane, Sandling",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2009-10-05 19:06:35,owner-occupied,,,200003672365.0,Address Matched +177698501852011041309394099990550,"66, Roseacre Lane",Bearsted,,ME14 4JG,5040193568,D,D,55,66,House,Detached,2011-04-13,E07000110,E14000700,Kent,2011-04-13,marketed sale,49,60,273,212.0,11.0,45,8.9,291.0,149.0,1585.0,1331.0,290.0,206.0,250.0,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,9.0,9.0,5.0,0.0,From main system,Average,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, mains gas",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Average,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 5% of fixed outlets,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,0.0,N,natural,"66, Roseacre Lane, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1991-1995,2011-04-13 09:39:40,owner-occupied,,,200003692993.0,Address Matched +1715449809742019042314453165412278,114 Edmett Way,,,ME17 3GD,2706804678,B,B,82,82,Flat,Detached,2019-04-23,E07000110,E14000700,Kent,2019-04-23,new dwelling,86,86,113,113.0,0.9,20,0.9,37.0,37.0,179.0,179.0,57.0,57.0,45.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.26 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,114 Edmett Way,Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2019-04-23 14:45:31,unknown,7.0,7.0,10093307058.0,Address Matched +7d9b412b2bf069becebd985a3ce7865431831abf2459cfa7e5e4a134b9690627,3 RUSHMORE GROVE,,,ME17 2FJ,10001507788,B,B,83,83,Flat,Detached,2021-07-27,E07000110,E14000700,Kent,2021-07-27,new dwelling,87,87,92,92.0,1.0,16,1.0,63.0,63.0,186.0,186.0,68.0,68.0,65.0,standard tariff,,3,Y,,,100.0,,,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.19 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.19 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.1 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.75,,,,3 RUSHMORE GROVE,Maidstone,Faversham and Mid Kent,LENHAM,2019,2021-07-27 08:33:46,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,1.0,,10094444433.0,Energy Assessor +7dc9a1775d4753e1ddf045f5fd4c478b1e7e4d0c80a4ea8384772e6ec1f11c4d,68 Pine Lodge,Tonbridge Road,,ME16 8TB,8540677668,C,C,70,70,Flat,Semi-Detached,2021-09-06,E07000110,E14000804,Kent,2021-09-08,rental,68,68,222,222.0,2.4,39,2.4,53.0,53.0,411.0,411.0,82.0,82.0,60.0,Single,Y,01,N,,,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,"To unheated space, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,4.64,2.36,0.0,N,natural,"68 Pine Lodge, Tonbridge Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2021-09-08 10:46:56,Rented (private),8.0,,200003657946.0,Energy Assessor +1307793664532015041510514739078509,2 Longridge Grove,Thorn Road,Marden,TN12 9LR,6939505378,G,A,11,104,House,Semi-Detached,2015-04-08,E07000110,E14000804,Kent,2015-04-15,ECO assessment,1,121,639,-27.0,21.0,230,-2.3,97.0,63.0,2100.0,502.0,288.0,88.0,93.0,dual,N,NODATA!,,,2101.0,45.0,double glazing installed during or after 2002,Normal,1.0,5.0,1.0,45.0,0.0,"Solid fuel range cooker, no cylinder thermostat",Very Poor,Very Poor,"Solid, no insulation (assumed)",NO DATA!,,Partial double glazing,Poor,Poor,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,Portable electric heaters (assumed),,,"Pitched, no insulation",Very Poor,Very Poor,"Boiler and radiators, coal",Poor,Very Poor,No time or thermostatic control of room temperature,Very Poor,Very Poor,Low energy lighting in 45% of fixed outlets,Good,Good,house coal (not community),0.0,NO DATA!,,,,N,natural,"2 Longridge Grove, Thorn Road, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1900-1929,2015-04-15 10:51:47,rental (private),,,200003727318.0,Address Matched +848988359262012102315472502328222,"18, Lewis Court Drive",Boughton Monchelsea,,ME17 4LQ,2062562078,D,B,67,87,House,Semi-Detached,2012-10-22,E07000110,E14000700,Kent,2012-10-23,marketed sale,67,88,194,55.0,2.7,37,0.8,55.0,55.0,483.0,351.0,82.0,58.0,74.0,dual,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,78.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 78% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"18, Lewis Court Drive, Boughton Monchelsea",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2012-10-23 15:47:25,owner-occupied,9.0,7.0,200003709749.0,Address Matched +449240499062010030414060233348580,"9, Downlands",Harrietsham,,ME17 1LE,8358933768,D,C,66,71,House,Detached,2010-03-04,E07000110,E14000700,Kent,2010-03-04,marketed sale,65,70,206,175.0,5.4,34,4.6,88.0,88.0,804.0,694.0,191.0,164.0,159.38,Single,Y,NO DATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,8.0,8.0,100.0,0.0,From main system,Good,Good,"Solid, limited insulation (assumed)",,,Fully double glazed,Average,Average,"Timber frame, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.37,0.0,N,natural,"9, Downlands, Harrietsham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1996-2002,2010-03-04 14:06:02,owner-occupied,,,200003704087.0,Address Matched +206716649712009022716304907280355,"3, Firtree Close",Staplehurst,,TN12 0AT,3578975568,B,B,81,83,House,NO DATA!,2008-04-28,E07000110,E14000804,Kent,2009-02-27,new dwelling,80,81,135,,1.93,0,1.83,,,,,,,0.0,NO DATA!,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,,From main system,Very Good,Very Good,Average thermal transmittance 0.21 W/m2K,Good,Good,Partial double glazing,Good,Good,Average thermal transmittance 0.27 W/m2K,Very Good,Very Good,,,,Average thermal transmittance 0.15 W/m2K,Very Good,Very Good,"Boiler and radiators, mains gas",Very Good,Very Good,Time and temperature zone control,Good,Good,Low energy lighting in 25% of fixed outlets,Average,Average,NO DATA!,,NO DATA!,,,,,NO DATA!,"3, Firtree Close, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,,2009-02-27 16:30:49,,,,200003677267.0,Address Matched +1825590302242020091405591472209508,Kenward Park Cottage,Kenward Road,Yalding,ME18 6AG,4245702778,F,D,22,66,House,Detached,2020-09-10,E07000110,E14000804,Kent,2020-09-14,marketed sale,23,61,379,144.0,13.0,93,4.8,105.0,105.0,1841.0,921.0,245.0,85.0,134.0,Unknown,N,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,6.0,6.0,86.0,0.0,From main system,Poor,Poor,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, oil",Poor,Poor,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 86% of fixed outlets,Very Good,Very Good,oil (not community),0.0,NO DATA!,,,,N,natural,"Kenward Park Cottage, Kenward Road, Yalding",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2020-09-14 05:59:14,owner-occupied,,,200003660811.0,Address Matched +1082091219502014020111470016942618,7 Oakwood Road,,,ME16 8AL,3595419178,C,B,77,91,Bungalow,Detached,2014-01-29,E07000110,E14000804,Kent,2014-02-01,marketed sale,81,93,122,26.0,1.5,23,0.4,54.0,43.0,311.0,313.0,62.0,62.0,64.0,Unknown,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,75.0,0.0,"From main system, plus solar",Very Good,Very Good,"Solid, insulated (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,7 Oakwood Road,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2014-02-01 11:47:00,owner-occupied,8.0,6.0,10014315045.0,Address Matched +436722759702010021216521475209628,Flat 1,"53, Tonbridge Road",,ME16 8SA,5798652768,F,E,38,46,Flat,Enclosed Mid-Terrace,2010-02-12,E07000110,E14000804,Kent,2010-02-12,rental (private),32,35,879,807.0,4.8,132,4.4,41.0,21.0,569.0,490.0,108.0,108.0,35.9,dual,N,1st,Y,2.0,2401.0,0.0,not defined,Normal,0.0,2.0,2.0,0.0,0.0,"Electric immersion, off-peak",Average,Poor,(other premises below),,,Single glazed,Very Poor,Very Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, electric",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,Electric storage heaters,Poor,Very Poor,Manual charge control,Poor,Poor,No low energy lighting,Very Poor,Very Poor,electricity - this is for backwards compatibility only and should not be used,0.0,unheated corridor,3.47,2.61,0.0,N,natural,"Flat 1, 53, Tonbridge Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2010-02-12 16:52:14,rental (private),,,200003668067.0,Address Matched +1727052119262019102412500714948791,"4, Walter Close",Otham,,ME15 8YX,9117194678,B,A,85,96,House,Semi-Detached,2019-10-24,E07000110,E14000700,Kent,2019-10-24,new dwelling,87,98,78,5.0,1.3,14,0.1,74.0,74.0,217.0,217.0,77.0,46.0,94.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.10 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.19 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"4, Walter Close, Otham",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2019-10-24 12:50:07,owner-occupied,10.0,10.0,10094440601.0,Address Matched +582557839022012010416140973448882,"13, Lockham Farm Avenue",Boughton Monchelsea,,ME17 4SE,8784303868,C,C,69,72,House,Detached,2012-01-04,E07000110,E14000700,Kent,2012-01-04,marketed sale,67,71,184,161.0,3.8,35,3.3,92.0,58.0,579.0,540.0,126.0,109.0,107.99,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,6.0,6.0,42.0,0.0,From main system,Good,Good,"Solid, limited insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, mains gas",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 42% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,2.33,0.0,,natural,"13, Lockham Farm Avenue, Boughton Monchelsea",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1996-2002,2012-01-04 16:14:09,owner-occupied,12.0,5.0,200003724580.0,Address Matched +402405749262014062313150420908884,"7, Milton Street",,,ME16 8JT,8216410768,D,B,61,83,House,Mid-Terrace,2014-06-20,E07000110,E14000804,Kent,2014-06-23,marketed sale,66,88,231,81.0,3.0,37,0.9,77.0,49.0,695.0,487.0,96.0,67.0,81.0,Unknown,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,5.0,5.0,43.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 43% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"7, Milton Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2014-06-23 13:15:04,owner-occupied,21.0,9.0,200003657391.0,Address Matched +592315074452011021421431598990583,"6, Beaufort Walk",,,ME15 9PJ,5339483868,C,C,78,79,House,Mid-Terrace,2011-02-14,E07000110,E14000700,Kent,2011-02-14,rental (social),75,76,180,174.0,2.1,30,2.1,65.0,39.0,352.0,356.0,95.0,95.0,71.69,Single,Y,NO DATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,3.0,3.0,33.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"System built, with external insulation",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 33% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.39,0.0,N,natural,"6, Beaufort Walk",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2011-02-14 21:43:15,rental (social),,,200003680007.0,Address Matched +597317249962012071623534814168532,"6, Fawley Close",,,ME14 2RD,3130424868,C,B,69,91,Bungalow,Mid-Terrace,2012-07-16,E07000110,E14000804,Kent,2012-07-16,rental (social),71,94,205,19.0,1.8,39,0.2,38.0,28.0,313.0,270.0,104.0,62.0,47.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,67.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 67% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"6, Fawley Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2012-07-16 23:53:48,rental (social),6.0,4.0,200003722316.0,Address Matched +1384546610912015111116153295050242,Flat 30 William Shipley House,Knightrider Court,Knightrider Street,ME15 6XD,2209050478,D,D,58,58,Flat,NO DATA!,2015-05-02,E07000110,E14000804,Kent,2015-11-11,new dwelling,62,62,259,259.0,3.0,44,3.0,48.0,48.0,565.0,565.0,250.0,250.0,68.0,standard tariff,,top floor,,,,,NO DATA!,NO DATA!,,,,,0.0,"Electric immersion, standard tariff",Very Poor,Poor,(other premises below),,,Fully double glazed,Average,Average,Average thermal transmittance 0.23 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.19 W/m-¦K,Good,Good,"Room heaters, electric",Very Poor,Poor,Programmer and room thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"Flat 30 William Shipley House, Knightrider Court, Knightrider Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2015-11-11 16:15:32,unknown,8.0,8.0,10091195518.0,Address Matched +1234811229962014111808332429788214,"32, Lenside Drive",Bearsted,,ME15 8UE,1250299278,C,B,73,90,House,Mid-Terrace,2014-11-18,E07000110,E14000700,Kent,2014-11-18,marketed sale,75,92,157,31.0,1.9,30,0.4,45.0,45.0,375.0,321.0,104.0,80.0,63.0,dual,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, partial insulation (assumed)",Average,Average,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"32, Lenside Drive, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1976-1982,2014-11-18 08:33:24,owner-occupied,8.0,8.0,200003691272.0,Address Matched +147895299742018012511463257089588,"20, Reginald Road",,,ME16 8HA,4751790568,C,B,73,85,House,Semi-Detached,2018-01-18,E07000110,E14000804,Kent,2018-01-25,rental (social),71,83,167,83.0,2.5,29,1.3,62.0,62.0,439.0,439.0,77.0,43.0,83.0,Unknown,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,6.0,6.0,100.0,0.0,From main system,Good,Good,"Suspended, insulated (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, insulated (assumed)",Good,Good,,,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"20, Reginald Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2018-01-25 11:46:32,rental (social),,,200003667866.0,Address Matched +222762719022017070313371897978773,"21, Hazlitt Drive",,,ME16 0EG,7905157568,D,C,66,78,House,Detached,2017-07-03,E07000110,E14000804,Kent,2017-07-03,marketed sale,56,69,209,130.0,4.9,41,3.2,71.0,71.0,779.0,713.0,140.0,86.0,119.0,Unknown,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,2.0,6.0,6.0,100.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, coal",,,"Pitched, 270 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"21, Hazlitt Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2017-07-03 13:37:18,owner-occupied,,,200003658872.0,Address Matched +7df69184e98e988927c46964657763b6bff92201c1dc0f3819669f0300cc46a8,52 THOMAS PLACE,JAMES WHATMAN WAY,,ME14 1FP,4981358868,C,C,79,79,Flat,Enclosed End-Terrace,2021-07-21,E07000110,E14000804,Kent,2021-07-29,rental,80,80,135,135.0,1.5,24,1.5,62.0,62.0,214.0,214.0,108.0,108.0,65.0,Single,N,08,Y,,,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,Community scheme,Good,Good,(another dwelling below),,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Very Good,Very Good,,,,"Flat, insulated (assumed)",Good,Good,Community scheme,Good,Good,"Flat rate charging, programmer and room thermostat",Poor,Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (community),0.0,unheated corridor,8.26,2.39,0.0,N,natural,"52 THOMAS PLACE, JAMES WHATMAN WAY",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2012 onwards,2021-07-29 14:10:25,Rented (social),7.0,,10014312718.0,Energy Assessor +1795178967612020032509385128200167,"8, Malden Drive",Invicta Park,,ME14 2NW,1791789678,D,C,60,73,House,Semi-Detached,2020-02-21,E07000110,E14000804,Kent,2020-03-25,Stock Condition Survey,50,66,265,171.0,6.4,47,4.2,88.0,88.0,1106.0,927.0,127.0,83.0,136.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,More Than Typical,1.0,7.0,7.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"8, Malden Drive, Invicta Park",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2020-03-25 09:38:51,rental (social),,,200003724041.0,Address Matched +596726009062013100316242634378837,70 Midhurst Court,Mote Road,,ME15 6EJ,3322024868,D,C,62,79,Flat,End-Terrace,2013-10-03,E07000110,E14000804,Kent,2013-10-03,none of the above,66,83,231,112.0,2.5,43,1.2,73.0,37.0,346.0,228.0,261.0,100.0,58.0,Single,Y,11th,N,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,2.0,2.0,0.0,0.0,"Electric immersion, standard tariff",Very Poor,Very Poor,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,unheated corridor,10.17,,0.0,,natural,"70 Midhurst Court, Mote Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2013-10-03 16:24:26,rental (social),5.0,0.0,200003693384.0,Address Matched +1359432120452015090113232097050737,"57, Amsbury Road",Coxheath,,ME17 4DR,7755078378,E,D,52,67,Bungalow,Semi-Detached,2015-09-01,E07000110,E14000804,Kent,2015-09-01,non marketed sale,50,64,345,229.0,4.2,61,2.8,52.0,52.0,918.0,869.0,87.0,56.0,69.0,dual,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"57, Amsbury Road, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2015-09-01 13:23:20,owner-occupied,,,200003669933.0,Address Matched +810244789612012070512240798020690,"25, Hampson Way",Bearsted,,ME14 4AP,6097989968,C,C,80,80,House,Detached,2012-07-04,E07000110,E14000700,Kent,2012-07-05,new dwelling,83,83,106,106.0,1.8,19,1.8,66.0,66.0,334.0,334.0,88.0,88.0,94.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,15.0,,From main system,Good,Good,Average thermal transmittance 0.20 W/mA?K,Very Good,Very Good,Fully double glazed,Good,Good,Average thermal transmittance 0.23 W/mA?K,Very Good,Very Good,"Room heaters, wood logs",,,Average thermal transmittance 0.20 W/mA?K,Good,Good,"Boiler and underfloor heating, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.5,,,NO DATA!,"25, Hampson Way, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2012-07-05 12:24:07,,20.0,15.0,200003691766.0,Address Matched +1555795639222017062914081832118953,Weald View,Windmill Hill,Ulcombe,ME17 1ER,5343362578,D,B,56,88,House,Detached,2017-06-29,E07000110,E14000700,Kent,2017-06-29,marketed sale,48,78,195,33.0,7.3,50,2.7,123.0,80.0,841.0,698.0,165.0,83.0,147.0,Single,N,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,7.0,7.0,47.0,0.0,From main system,Average,Average,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 270 mm loft insulation",Good,Good,"Boiler and radiators, oil",Average,Average,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 47% of fixed outlets,Good,Good,oil (not community),0.0,NO DATA!,,,,N,natural,"Weald View, Windmill Hill, Ulcombe",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1900-1929,2017-06-29 14:08:18,owner-occupied,,,200003702161.0,Address Matched +1596579059902017121414172553539448,Flat 3 The Cooperage,"10, Buckland Road",,ME16 0SL,9989155578,B,B,82,82,Flat,End-Terrace,2017-12-14,E07000110,E14000804,Kent,2017-12-14,new dwelling,86,86,102,102.0,0.9,18,0.9,36.0,36.0,184.0,184.0,56.0,56.0,50.0,standard tariff,,ground floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.17 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Flat 3 The Cooperage, 10, Buckland Road",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2017-12-14 14:17:25,owner-occupied,7.0,7.0,10093302839.0,Address Matched +1735054073132019071001154180078109,"8a, Moncktons Drive",,,ME14 2QD,7930155678,C,B,72,86,Bungalow,Detached,2019-07-09,E07000110,E14000804,Kent,2019-07-10,marketed sale,70,85,187,81.0,2.6,33,1.2,65.0,65.0,436.0,399.0,111.0,66.0,80.0,Unknown,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Suspended, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"8a, Moncktons Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2019-07-10 01:15:41,owner-occupied,,,10014310603.0,Address Matched +614299049022011040609400935468669,"13, Leigh Avenue",,,ME15 9UY,6387455868,D,C,66,72,House,Semi-Detached,2011-04-06,E07000110,E14000804,Kent,2011-04-06,marketed sale,65,71,259,213.0,3.0,42,2.5,61.0,38.0,504.0,445.0,133.0,113.0,71.15,Single,Y,NO DATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,40.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 40% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.33,0.0,N,natural,"13, Leigh Avenue",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2011-04-06 09:40:09,owner-occupied,,,200003675514.0,Address Matched +859770899222012112310483973478352,"10, Astor Park",,,ME16 8FP,5755933078,B,B,82,82,House,Detached,2012-11-23,E07000110,E14000804,Kent,2012-11-23,new dwelling,84,84,84,84.0,2.4,16,2.4,85.0,85.0,397.0,397.0,108.0,108.0,152.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.20 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.16 W/m?K,Good,Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"10, Astor Park",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2012-11-23 10:48:39,NO DATA!,20.0,16.0,10014308735.0,Address Matched +1722290669222019052009491124408651,"111, Northumberland Road",,,ME15 7TA,5216654678,D,B,66,87,House,Mid-Terrace,2019-05-20,E07000110,E14000700,Kent,2019-05-20,ECO assessment,63,86,235,74.0,3.3,41,1.1,113.0,63.0,513.0,378.0,118.0,65.0,79.0,Unknown,Y,NODATA!,,,2102.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,20.0,0.0,From main system,Good,Good,"Suspended, limited insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,Low energy lighting in 20% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"111, Northumberland Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1996-2002,2019-05-20 09:49:11,owner-occupied,,,200003685631.0,Address Matched +248963350002009032112174054912098,"65, Postley Road",,,ME15 6TP,9097159568,C,C,76,80,House,Mid-Terrace,2009-03-21,E07000110,E14000804,Kent,2009-03-21,rental (private),73,77,216,182.0,2.1,35,1.8,43.0,26.0,244.0,226.0,100.0,85.0,57.9,Single,Y,NO DATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,33.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 250mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 33% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.36,0.0,N,natural,"65, Postley Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1991-1995,2009-03-21 12:17:40,rental (private),,,200003686797.0,Address Matched +216574709202015042820252554752588,"2, Mynn Crescent",Bearsted,,ME14 4AS,3200707568,D,C,67,79,House,Detached,2015-04-28,E07000110,E14000700,Kent,2015-04-28,ECO assessment,59,72,202,129.0,6.4,36,4.1,151.0,85.0,1144.0,943.0,110.0,110.0,180.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,7.0,7.0,22.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 22% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"2, Mynn Crescent, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2015-04-28 20:25:25,owner-occupied,,,200003691805.0,Address Matched +1340987429022015070817150667188725,"9, Dane Court",Coxheath,,ME17 4HJ,2648247378,E,B,43,85,House,Semi-Detached,2015-07-08,E07000110,E14000804,Kent,2015-07-08,none of the above,36,71,418,146.0,7.6,74,2.8,123.0,70.0,1346.0,1084.0,199.0,102.0,104.0,dual,Y,NODATA!,,,2501.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,25.0,1.0,"From main system, no cylinder thermostat",Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Warm air, mains gas",Good,Good,No time or thermostatic control of room temperature,Very Poor,Very Poor,Low energy lighting in 25% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"9, Dane Court, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2015-07-08 17:15:06,owner-occupied,,,200003712242.0,Address Matched +1097372629602014052214471226042228,"12, Moorhen Road",,,ME15 6XJ,4641320278,B,A,85,93,House,End-Terrace,2014-05-22,E07000110,E14000804,Kent,2014-05-22,new dwelling,85,94,78,29.0,2.0,14,0.8,81.0,81.0,332.0,334.0,101.0,53.0,148.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.2 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.3 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.2 W/m-¦K,Good,Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in 93% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"12, Moorhen Road",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2014-05-22 14:47:12,owner-occupied,14.0,13.0,10014315306.0,Address Matched +1559820680712017092817080699930358,"5, Wood Court",,,ME16 9DD,3886092578,C,B,76,90,House,End-Terrace,2017-05-10,E07000110,E14000804,Kent,2017-09-28,rental (social),77,90,150,43.0,1.8,26,0.6,68.0,51.0,288.0,290.0,102.0,66.0,68.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,67.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Very Good,Very Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 67% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"5, Wood Court",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2017-09-28 17:08:06,rental (social),,,10022900388.0,Address Matched +1562655199222017072522330063548293,Spilsill Court Cottage,Frittenden Road,Staplehurst,TN12 0DJ,9620903578,F,C,26,72,House,Detached,2017-07-24,E07000110,E14000804,Kent,2017-07-25,marketed sale,26,59,441,149.0,9.4,90,3.8,111.0,66.0,1667.0,1246.0,354.0,177.0,104.0,Single,N,NODATA!,,,2601.0,50.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,30.0,0.0,"Electric immersion, standard tariff",Very Poor,Poor,"Solid, no insulation (assumed)",NO DATA!,,Partial double glazing,Poor,Poor,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, dual fuel (mineral and wood)",Poor,Average,No thermostatic control of room temperature,Poor,Poor,Low energy lighting in 30% of fixed outlets,Average,Average,dual fuel - mineral + wood,0.0,NO DATA!,,,,N,natural,"Spilsill Court Cottage, Frittenden Road, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1930-1949,2017-07-25 22:33:00,owner-occupied,,,, +618620089262017113008113855518763,"47, Waterlow Road",,,ME14 2TP,6582885868,D,B,63,84,House,Mid-Terrace,2017-11-29,E07000110,E14000804,Kent,2017-11-30,marketed sale,59,81,284,109.0,3.0,50,1.2,48.0,48.0,511.0,412.0,126.0,73.0,60.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,3.0,3.0,88.0,0.0,From main system,Good,Good,"To unheated space, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Sandstone or limestone, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 270 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 88% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"47, Waterlow Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2017-11-30 08:11:38,owner-occupied,,,200003703070.0,Address Matched +526514189342010081207124973809528,"11, Fullers Close",Bearsted,,ME14 4LJ,2353788768,D,D,67,68,House,Semi-Detached,2010-08-12,E07000110,E14000700,Kent,2010-08-12,marketed sale,66,66,233,230.0,3.4,38,3.4,66.0,47.0,587.0,592.0,102.0,102.0,89.4,Single,Y,NO DATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,60.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 60% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.3,0.0,N,natural,"11, Fullers Close, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2010-08-12 07:12:49,owner-occupied,,,200003692344.0,Address Matched +1534929634332017041013035458978400,"12, Trapham Road",,,ME16 0EL,3028411578,D,B,67,81,House,Detached,2017-04-10,E07000110,E14000804,Kent,2017-04-10,rental,59,77,203,106.0,5.8,36,3.1,97.0,97.0,1027.0,744.0,146.0,87.0,163.0,Unknown,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,4.0,6.0,6.0,86.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, partial insulation (assumed)",Average,Average,,,,"Pitched, 270 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 86% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"12, Trapham Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1976-1982,2017-04-10 13:03:54,owner-occupied,,,200003658910.0,Address Matched +7e503fb6d2e28f39b5bad763307d6c7b231071f76f42d486cbdca60b23659307,17,"Pearson Meadow,","Boughton Monchelsea,",ME17 4SX,10001383754,B,A,84,93,House,Detached,2021-08-18,E07000110,E14000700,Kent,2021-08-18,new dwelling,85,94,85,24.0,1.7,15,0.5,86.0,86.0,281.0,281.0,74.0,45.0,114.0,standard tariff,,,N,,,100.0,,,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.09 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.39,,,,"17, Pearson Meadow,, Boughton Monchelsea,",Maidstone,Faversham and Mid Kent,"Maidstone,",2020,2021-08-18 12:08:31,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,14.0,,10094442608.0,Address Matched +1095607809502014022415212729042848,"1a, Willington Street",,,ME15 8JW,5554800278,D,C,57,75,House,Semi-Detached,2014-02-24,E07000110,E14000700,Kent,2014-02-24,none of the above,52,72,241,131.0,5.6,46,3.1,130.0,65.0,1021.0,773.0,102.0,103.0,122.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,1.0,6.0,6.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"1a, Willington Street",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2014-02-24 15:21:27,owner-occupied,11.0,0.0,200003688860.0,Address Matched +1094497732312014022116164490240527,53 Sunningdale Court,Square Hill Road,,ME15 7TU,5769200278,D,C,68,78,Flat,End-Terrace,2014-02-20,E07000110,E14000804,Kent,2014-02-21,none of the above,70,82,220,134.0,1.9,42,1.1,29.0,29.0,330.0,222.0,133.0,98.0,44.0,Single,Y,9th,N,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,100.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,4.3,,0.0,,natural,"53 Sunningdale Court, Square Hill Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2014-02-21 16:16:44,rental (social),5.0,5.0,200003696623.0,Address Matched +364090270962009091614113347468621,"48, Cornhill Place",,,ME15 6GX,2482747668,C,C,71,72,Flat,End-Terrace,2009-09-16,E07000110,E14000804,Kent,2009-09-16,new dwelling,79,79,177,169.0,1.7,27,1.7,56.0,33.0,206.0,209.0,248.0,248.0,63.09,standard tariff,,ground floor,,,,,NO DATA!,NO DATA!,,,,,,"Electric immersion, standard tariff",Very Poor,Poor,Average thermal transmittance 0.18 W/m?K,Very Good,Very Good,Fully double glazed,Good,Good,Average thermal transmittance 0.30 W/m?K,Good,Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 29% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.34,,,NO DATA!,"48, Cornhill Place",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2009-09-16 14:11:33,,,,10022895053.0,Address Matched +322929250022009070810510644488261,"33, Barnhurst Road",Penenden Heath,,ME14 2EL,6417554668,C,B,74,84,Flat,Semi-Detached,2009-07-08,E07000110,E14000804,Kent,2009-07-08,rental (social),70,82,238,142.0,2.3,40,1.3,33.0,33.0,342.0,215.0,106.0,90.0,57.0,Single,Y,1st,N,3.0,2104.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,85.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Poor,Poor,Low energy lighting in 85% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,unheated corridor,3.3,2.4,0.0,N,natural,"33, Barnhurst Road, Penenden Heath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2009-07-08 10:51:06,rental (social),,,200003706578.0,Address Matched +1398024349642015122110222748152998,"32, The Bartons",Staplehurst,,TN12 0EF,3688441478,B,B,88,89,House,Detached,2015-12-21,E07000110,E14000804,Kent,2015-12-21,new dwelling,87,89,63,52.0,1.6,11,1.3,74.0,74.0,363.0,365.0,116.0,63.0,140.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"32, The Bartons, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,NO DATA!,2015-12-21 10:22:27,owner-occupied,21.0,21.0,10014315531.0,Address Matched +1137442829022014050810374303068464,"2, Vicary Way",,,ME16 0EJ,6095203278,D,B,67,84,House,Detached,2014-05-06,E07000110,E14000804,Kent,2014-05-08,marketed sale,63,82,173,77.0,5.1,33,2.3,127.0,81.0,860.0,631.0,174.0,88.0,154.0,dual,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,43.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 43% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"2, Vicary Way",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2014-05-08 10:37:43,owner-occupied,14.0,6.0,200003658899.0,Address Matched +762975459602014060311061997640028,"26, Ham Lane",Lenham,,ME17 2LL,2642656968,E,C,53,79,House,Detached,2014-06-02,E07000110,E14000700,Kent,2014-06-03,none of the above,50,79,252,97.0,6.0,48,2.3,122.0,66.0,1165.0,657.0,105.0,105.0,125.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,7.0,6.0,16.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,Portable electric heaters (assumed),,,"Pitched, 12 mm loft insulation",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 16% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"26, Ham Lane, Lenham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2014-06-03 11:06:19,owner-occupied,19.0,3.0,200003711100.0,Address Matched +385991766752009102115372609219768,"21, Furfield Close",,,ME15 9JR,7845698668,D,C,64,76,House,End-Terrace,2009-10-21,E07000110,E14000700,Kent,2009-10-21,marketed sale,59,73,293,193.0,3.6,49,2.4,75.0,37.0,492.0,357.0,144.0,110.0,74.64,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,0.0,0.0,"From main system, no cylinder thermostat",Average,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,,0.0,N,natural,"21, Furfield Close",Maidstone,Faversham and Mid Kent,MAIDSTONE,,2009-10-21 15:37:26,owner-occupied,,,200003682372.0,Address Matched +7e70a779dcfe3a347cf4c011dc9137a5cf55b568812429b069d3a132f049a83e,Flat 2,29 High Street,,ME14 1JF,10001692837,E,C,52,75,Flat,Mid-Terrace,2021-08-23,E07000110,E14000804,Kent,2021-08-23,marketed sale,33,75,467,150.0,7.3,79,2.4,101.0,94.0,1234.0,423.0,247.0,109.0,92.0,Unknown,Y,01,N,,,0.0,not defined,Normal,0.0,3.0,3.0,80.0,0.0,"Electric immersion, off-peak",Average,Poor,(other premises below),,,Single glazed,Very Poor,Very Poor,"Solid brick, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,(another dwelling above),,,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,electricity (not community),0.0,unheated corridor,9.2,2.3,0.0,N,natural,"Flat 2, 29 High Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2021-08-23 16:59:42,Owner-occupied,10.0,,10014310682.0,Energy Assessor +221837749062013100718524367738687,"15, Plantation Lane",Bearsted,,ME14 4BH,8690417568,D,B,61,82,House,Mid-Terrace,2013-10-07,E07000110,E14000700,Kent,2013-10-07,marketed sale,58,82,232,88.0,3.6,45,1.4,78.0,47.0,652.0,479.0,91.0,67.0,80.0,Single,Y,NODATA!,,,2107.0,100.0,double glazing installed during or after 2002,Normal,1.0,4.0,4.0,36.0,2.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 36% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"15, Plantation Lane, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1900-1929,2013-10-07 18:52:43,owner-occupied,14.0,5.0,200003691963.0,Address Matched +671387059262011082609300469168539,"22, Keele Avenue",,,ME15 9WU,3673569868,B,B,82,84,House,Detached,2011-08-26,E07000110,E14000700,Kent,2011-08-26,new dwelling,83,84,88,82.0,2.1,17,2.0,97.0,58.0,379.0,384.0,96.0,96.0,123.55,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,5.0,,From main system,Good,Good,Average thermal transmittance 0.20 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.34 W/m?K,Good,Good,,,,Average thermal transmittance 0.24 W/m?K,Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 33% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.31,,,NO DATA!,"22, Keele Avenue",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2011-08-26 09:30:04,,15.0,5.0,10014311561.0,Address Matched +323937921952009071016265306910867,"6, The Laurels",Western Road,,ME16 8PW,8746164668,C,C,71,80,House,Mid-Terrace,2009-07-10,E07000110,E14000804,Kent,2009-07-10,marketed sale,67,77,276,194.0,2.3,46,1.6,36.0,23.0,272.0,216.0,108.0,81.0,50.51,Single,Y,NO DATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,40.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Poor,Poor,Low energy lighting in 40% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.39,0.0,N,natural,"6, The Laurels, Western Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1991-1995,2009-07-10 16:26:53,owner-occupied,,,200003656644.0,Address Matched +409661160702009120818234771010388,"36, Albany Street",,,ME14 5AJ,1762860768,E,D,53,65,House,Mid-Terrace,2009-12-08,E07000110,E14000804,Kent,2009-12-08,marketed sale,54,68,394,287.0,3.8,58,2.7,37.0,37.0,666.0,509.0,110.0,83.0,65.5,Unknown,Y,NO DATA!,,,2102.0,100.0,double glazing installed during or after 2002,Normal,1.0,4.0,4.0,85.0,2.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,Low energy lighting in 85% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.47,0.0,N,natural,"36, Albany Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2009-12-08 18:23:47,owner-occupied,,,200003705004.0,Address Matched +741344592042020030519304693400558,1 Carrie House,Lesley Place,Buckland Hill,ME16 0UD,9027394968,D,C,66,79,Flat,Semi-Detached,2020-03-05,E07000110,E14000804,Kent,2020-03-05,marketed sale,47,66,394,241.0,3.9,67,2.4,57.0,57.0,557.0,260.0,198.0,176.0,58.0,Unknown,N,Ground,N,,2401.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,"Electric immersion, off-peak",Average,Poor,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, partial insulation (assumed)",Average,Average,Portable electric heaters (assumed),,,(another dwelling above),,,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,unheated corridor,13.5,,,N,natural,"1 Carrie House, Lesley Place, Buckland Hill",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1976-1982,2020-03-05 19:30:46,owner-occupied,,,200003721316.0,Address Matched +789874249202012051708125796829668,Fair View,Battle Lane,Marden,TN12 9DE,4278448968,E,C,40,79,House,Detached,2012-05-16,E07000110,E14000804,Kent,2012-05-17,marketed sale,29,65,330,109.0,8.6,85,3.3,82.0,53.0,1237.0,649.0,124.0,86.0,102.0,Single,N,NODATA!,,,2106.0,95.0,double glazing installed during or after 2002,Normal,3.0,6.0,6.0,45.0,3.0,From main system,Good,Average,"Suspended, no insulation (assumed)",,,Mostly double glazing,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, coal",,,"Pitched, no insulation",Very Poor,Very Poor,"Boiler and radiators, oil",Good,Average,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 45% of fixed outlets,Good,Good,oil (not community),0.0,NO DATA!,,,0.0,,natural,"Fair View, Battle Lane, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1900-1929,2012-05-17 08:12:57,owner-occupied,11.0,5.0,200003674006.0,Address Matched +568958859262010112519010131458670,Portnall,Station Road,Staplehurst,TN12 0QG,7329591868,E,D,45,67,House,Semi-Detached,2010-11-25,E07000110,E14000804,Kent,2010-11-25,marketed sale,50,69,371,222.0,6.4,52,3.9,132.0,66.0,1218.0,735.0,119.0,119.0,123.08,Single,Y,NO DATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,0.0,4.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, wood logs",,,"Pitched, no insulation",Very Poor,Very Poor,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.6,0.0,N,natural,"Portnall, Station Road, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1900-1929,2010-11-25 19:01:01,owner-occupied,,,200003679067.0,Address Matched +580161541352011011310520798990885,"18, Cinnabar Close",,,ME5 9PF,8523182868,D,C,67,78,House,Detached,2011-01-13,E07000110,E14000700,Kent,2011-01-13,marketed sale,63,75,292,195.0,2.9,49,2.0,74.0,37.0,436.0,336.0,144.0,103.0,68.54,dual,Y,NO DATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,0.0,0.0,From main system,Average,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Average,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.31,0.0,N,natural,"18, Cinnabar Close",Maidstone,Faversham and Mid Kent,CHATHAM,England and Wales: 1983-1990,2011-01-13 10:52:07,owner-occupied,,,200003708800.0,Address Matched +1082286112902020060220080513900128,"45, Hartnup Street",,,ME16 8LR,2940619178,D,C,64,77,House,Mid-Terrace,2020-06-02,E07000110,E14000804,Kent,2020-06-02,marketed sale,59,76,222,124.0,3.8,39,2.1,73.0,73.0,909.0,593.0,88.0,58.0,97.0,Single,Y,NODATA!,,,2107.0,50.0,double glazing installed before 2002,Normal,2.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Partial double glazing,Poor,Poor,"Sandstone or limestone, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, electric",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"45, Hartnup Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2020-06-02 20:08:05,owner-occupied,,,200003655869.0,Address Matched +1342345603532015071310515894078100,"16, Celestine Close",,,ME5 9NG,84157378,D,C,63,79,House,Detached,2015-07-08,E07000110,E14000700,Kent,2015-07-13,marketed sale,57,74,250,137.0,4.3,44,2.4,120.0,60.0,736.0,658.0,145.0,85.0,99.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,5.0,5.0,0.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, mains gas",,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"16, Celestine Close",Maidstone,Faversham and Mid Kent,CHATHAM,England and Wales: 1983-1990,2015-07-13 10:51:58,owner-occupied,,,200003708768.0,Address Matched +106544151152017110706471695039045,"14, Fisher Street",,,ME14 2SW,545157468,D,C,61,80,House,Mid-Terrace,2017-11-06,E07000110,E14000804,Kent,2017-11-07,marketed sale,55,76,272,131.0,4.3,48,2.1,79.0,59.0,755.0,580.0,105.0,72.0,89.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,67.0,0.0,From main system,Good,Good,"To unheated space, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 67% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"14, Fisher Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2017-11-07 06:47:16,owner-occupied,,,200003702884.0,Address Matched +240831123132019072317010353268401,West Lea,West End,Marden,TN12 9HY,2143498568,E,C,54,76,House,Semi-Detached,2019-07-23,E07000110,E14000804,Kent,2019-07-23,rental (private),45,70,305,148.0,6.9,54,3.4,88.0,88.0,1146.0,776.0,155.0,75.0,127.0,Single,Y,NODATA!,,,2106.0,93.0,"double glazing, unknown install date",Normal,2.0,6.0,6.0,94.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Mostly double glazing,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 94% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"West Lea, West End, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1900-1929,2019-07-23 17:01:03,rental (private),,,200003710263.0,Address Matched +982167619762013073113310742298997,"10, Mamignot Close",Bearsted,,ME14 4PT,9437102178,D,B,68,82,House,Detached,2013-07-31,E07000110,E14000700,Kent,2013-07-31,marketed sale,68,82,165,83.0,3.4,31,1.7,102.0,58.0,585.0,536.0,123.0,83.0,108.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,2.0,6.0,6.0,25.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 25% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"10, Mamignot Close, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2013-07-31 13:31:07,owner-occupied,24.0,6.0,200003688883.0,Address Matched +1425731749302016032216291845369758,The Old Granary,Clapper Lane,Staplehurst,TN12 0JT,329143478,F,B,34,84,House,Detached,2016-03-15,E07000110,E14000804,Kent,2016-03-22,marketed sale,30,73,283,46.0,11.0,75,3.4,147.0,91.0,1644.0,937.0,250.0,92.0,154.0,dual,N,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,4.0,6.0,6.0,39.0,1.0,"From main system, no cylinder thermostat",Poor,Poor,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, oil",Average,Average,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 39% of fixed outlets,Average,Average,oil (not community),0.0,NO DATA!,,2.3,,N,natural,"The Old Granary, Clapper Lane, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: before 1900,2016-03-22 16:29:18,owner-occupied,,,200003679691.0,Address Matched +69555279102019081214471540419428,"14, Buckland Place",,,ME16 0SJ,9110274468,C,B,72,88,House,Mid-Terrace,2019-08-12,E07000110,E14000804,Kent,2019-08-12,rental (private),69,87,176,56.0,3.0,31,1.0,96.0,71.0,515.0,373.0,87.0,57.0,98.0,Unknown,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,6.0,6.0,64.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 64% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"14, Buckland Place",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2019-08-12 14:47:15,rental (private),,,200003666847.0,Address Matched +1667392400832018100116500436078099,"2, Headcorn Road",Platts Heath,,ME17 2NH,916060678,E,C,47,78,House,Semi-Detached,2018-10-01,E07000110,E14000700,Kent,2018-10-01,marketed sale,40,70,274,101.0,5.9,71,2.6,78.0,78.0,644.0,413.0,135.0,67.0,84.0,dual,N,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,4.0,4.0,82.0,0.0,From main system,Average,Average,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 270 mm loft insulation",Good,Good,"Boiler and radiators, oil",Average,Average,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 82% of fixed outlets,Very Good,Very Good,oil (not community),0.0,NO DATA!,,,,N,natural,"2, Headcorn Road, Platts Heath",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2018-10-01 16:50:04,owner-occupied,,,, +1279188392532015020822113442078506,1 Yew Tree Place,The Street,Bredhurst,ME7 3LJ,9672503378,D,B,65,84,House,Semi-Detached,2015-02-08,E07000110,E14000700,Kent,2015-02-08,marketed sale,58,81,229,92.0,4.6,40,1.9,114.0,66.0,778.0,561.0,160.0,77.0,115.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,4.0,8.0,8.0,28.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 28% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"1 Yew Tree Place, The Street, Bredhurst",Maidstone,Faversham and Mid Kent,GILLINGHAM,England and Wales: before 1900,2015-02-08 22:11:34,owner-occupied,,,200003727262.0,Address Matched +1566315716212017080912480393030555,12 Penenden Court,Boxley Road,Penenden Heath,ME14 2HW,5564633578,D,C,67,76,Maisonette,Enclosed End-Terrace,2017-08-09,E07000110,E14000804,Kent,2017-08-09,rental (private),66,79,258,158.0,2.2,45,1.3,71.0,39.0,378.0,250.0,95.0,81.0,48.0,dual,Y,Ground,N,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,17.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 17% of fixed outlets,Poor,Poor,mains gas (not community),0.0,no corridor,,,,N,natural,"12 Penenden Court, Boxley Road, Penenden Heath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2017-08-09 12:48:03,rental (private),,,200003707526.0,Address Matched +1377666941452015102315265490259145,"37, Park Wood Walk",,,ME15 9ZT,1556100478,B,B,83,83,Flat,NO DATA!,2015-10-22,E07000110,E14000700,Kent,2015-10-23,new dwelling,86,86,88,88.0,1.2,15,1.2,53.0,53.0,218.0,218.0,93.0,93.0,78.0,standard tariff,,ground floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.12 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.17 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.18 W/m-¦K,Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"37, Park Wood Walk",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2015-10-23 15:26:54,unknown,10.0,10.0,10014315833.0,Address Matched +1532679280752017033117394890730257,Flat 13 Block E,Lindisfarne Gardens,,ME16 8NF,2790001578,C,C,78,80,Flat,Mid-Terrace,2017-03-30,E07000110,E14000804,Kent,2017-03-31,marketed sale,81,83,132,118.0,1.4,23,1.2,46.0,46.0,210.0,202.0,132.0,112.0,59.0,Single,Y,Ground,N,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,"Suspended, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,heated corridor,,,,N,natural,"Flat 13 Block E, Lindisfarne Gardens",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2017-03-31 17:39:48,owner-occupied,,,200003724410.0,Address Matched +189489689242014031221175557449128,"14, Gullands",Langley,,ME17 1SU,6280784568,C,B,72,91,House,Semi-Detached,2014-03-12,E07000110,E14000700,Kent,2014-03-12,rental (social),72,91,159,32.0,2.4,30,0.5,47.0,47.0,404.0,376.0,142.0,78.0,77.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"14, Gullands, Langley",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2014-03-12 21:17:55,rental (social),9.0,9.0,200003697403.0,Address Matched +422654177652010011821524195900778,"7, Poyntell Road",Staplehurst,,TN12 0SA,7822751768,D,C,68,75,House,Detached,2010-01-18,E07000110,E14000804,Kent,2010-01-18,marketed sale,63,71,266,208.0,3.2,44,2.5,75.0,37.0,460.0,389.0,124.0,106.0,72.38,Single,Y,NO DATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.3,0.0,N,natural,"7, Poyntell Road, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1976-1982,2010-01-18 21:52:41,owner-occupied,,,200003678441.0,Address Matched +295654457312020082019384726200461,Flat 5 Walsingham House,Wheeler Street,,ME14 2UD,4163762668,C,C,73,76,Maisonette,End-Terrace,2020-08-20,E07000110,E14000804,Kent,2020-08-20,none of the above,72,76,188,157.0,2.2,33,1.8,64.0,64.0,387.0,321.0,86.0,86.0,66.0,Single,Y,Ground,N,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,88.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 88% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,no corridor,,,,N,natural,"Flat 5 Walsingham House, Wheeler Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2020-08-20 19:38:47,rental (social),,,200003704306.0,Address Matched +1611279546452018022707283995280450,"14, Lenham Road",Platts Heath,,ME17 2NX,4056656578,F,C,23,73,House,Mid-Terrace,2018-02-26,E07000110,E14000700,Kent,2018-02-27,marketed sale,42,83,300,63.0,6.5,65,1.6,131.0,66.0,1506.0,591.0,163.0,108.0,100.0,Unknown,N,NODATA!,,,2106.0,30.0,double glazing installed before 2002,Normal,1.0,4.0,4.0,0.0,1.0,From main system,Poor,Good,"Solid, no insulation (assumed)",NO DATA!,,Some double glazing,Poor,Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, dual fuel (mineral and wood)",,,"Roof room(s), no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, LPG",Poor,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,LPG (not community),0.0,NO DATA!,,,,N,natural,"14, Lenham Road, Platts Heath",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2018-02-27 07:28:39,owner-occupied,,,200003703813.0,Address Matched +934b8624de6700e0d98bf26325b0b744620ffef9546fdc6b2256c246df0b7e63,29 THOMAS PLACE,JAMES WHATMAN WAY,,ME14 1FP,8112358868,B,B,83,83,Flat,Mid-Terrace,2021-07-20,E07000110,E14000804,Kent,2021-08-02,rental,85,85,99,99.0,1.2,17,1.2,66.0,66.0,156.0,156.0,111.0,111.0,70.0,Single,N,04,N,,,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,Community scheme,Good,Good,(another dwelling below),,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Very Good,Very Good,,,,(another dwelling above),,,Community scheme,Good,Good,"Flat rate charging, programmer and room thermostat",Poor,Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (community),0.0,unheated corridor,9.7,2.39,0.0,N,natural,"29 THOMAS PLACE, JAMES WHATMAN WAY",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2012 onwards,2021-08-02 10:28:02,Rented (social),7.0,,10014312695.0,Energy Assessor +249456330962009031821234589088831,"1, Hayrick Close",Weavering,,ME14 5TE,3846339568,C,C,70,73,House,Semi-Detached,2009-03-18,E07000110,E14000700,Kent,2009-03-18,marketed sale,70,72,216,199.0,2.7,35,2.5,65.0,34.0,349.0,338.0,96.0,96.0,88.56,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,10.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 10% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.37,0.0,N,natural,"1, Hayrick Close, Weavering",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2009-03-18 21:23:45,owner-occupied,,,200003689904.0,Address Matched +569120226252010112610482599209181,"7, Garden of England Park",Forstal Lane,,ME17 1LD,1169691868,E,E,41,44,Bungalow,Detached,2010-11-26,E07000110,E14000700,Kent,2010-11-26,marketed sale,62,64,236,223.0,3.0,49,2.8,52.0,35.0,645.0,621.0,136.0,136.0,61.8,Single,Y,NO DATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,50.0,0.0,From main system,Poor,Good,"Suspended, limited insulation (assumed)",,,Fully double glazed,Average,Average,"Timber frame, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, LPG",Poor,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 50% of fixed outlets,Good,Good,LPG - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.26,0.0,N,natural,"7, Garden of England Park, Forstal Lane",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1996-2002,2010-11-26 10:48:25,owner-occupied,,,200003722629.0,Address Matched +920361869842015120221590909757108,"21, Larchwood Close",,,ME5 8XB,7873567078,D,B,67,84,House,End-Terrace,2015-11-30,E07000110,E14000700,Kent,2015-12-02,rental (private),65,82,237,101.0,2.8,42,1.2,86.0,45.0,503.0,453.0,101.0,65.0,67.0,Unknown,Y,NODATA!,,,2103.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,11.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Room thermostat only,Poor,Poor,Low energy lighting in 11% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"21, Larchwood Close",Maidstone,Faversham and Mid Kent,CHATHAM,England and Wales: 1967-1975,2015-12-02 21:59:09,rental (private),,,200003676314.0,Address Matched +1440407635632016051105243823978500,Flat 5,Globe House,13a Pudding Lane,ME14 1PA,3043544478,B,B,81,81,Flat,NO DATA!,2016-05-11,E07000110,E14000804,Kent,2016-05-11,new dwelling,78,78,296,296.0,0.9,50,0.9,17.0,17.0,82.0,82.0,106.0,106.0,18.0,24 hour,,mid floor,,,,,NO DATA!,NO DATA!,,,,,0.0,"Electric immersion, off-peak",Average,Poor,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.26 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,"Room heaters, electric",Average,Poor,Programmer and appliance thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"Flat 5, Globe House, 13a Pudding Lane",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2016-05-11 05:24:38,unknown,1.0,1.0,10091195948.0,Address Matched +1814218322842020073114453879102918,Flat 2,215 Sutton Road,,ME15 9BJ,843621778,C,C,71,75,Flat,Semi-Detached,2020-07-29,E07000110,E14000700,Kent,2020-07-31,rental (social),71,78,237,180.0,1.8,42,1.4,43.0,43.0,351.0,269.0,75.0,75.0,44.0,dual,Y,1st,Y,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,100.0,0.0,From main system,Good,Good,(another dwelling below),NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,no corridor,,,,N,natural,"Flat 2, 215 Sutton Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2020-07-31 14:45:38,rental (social),,,, +1789999189312020030418034924000866,"8, The Crescent",Invicta Park,,ME14 2NP,8627949678,D,B,66,85,House,Semi-Detached,2020-03-04,E07000110,E14000804,Kent,2020-03-04,Stock Condition Survey,67,87,214,80.0,3.4,32,1.2,78.0,78.0,707.0,474.0,130.0,83.0,105.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,6.0,6.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, wood logs",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"8, The Crescent, Invicta Park",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2020-03-04 18:03:49,rental (social),,,200003724103.0,Address Matched +1597858729262017122119411475098393,4 Crittenden Cottages,Gallants Lane,East Farleigh,ME15 0LN,9720265578,E,B,52,84,House,Semi-Detached,2017-12-21,E07000110,E14000804,Kent,2017-12-21,marketed sale,38,63,497,249.0,5.3,84,2.7,68.0,49.0,694.0,478.0,271.0,86.0,63.0,dual,N,NODATA!,,,2401.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,63.0,0.0,"Electric immersion, off-peak",Very Poor,Poor,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,Portable electric heaters (assumed),,,"Pitched, 300 mm loft insulation",Very Good,Very Good,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 63% of fixed outlets,Good,Good,electricity (not community),0.0,NO DATA!,,,,N,natural,"4 Crittenden Cottages, Gallants Lane, East Farleigh",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2017-12-21 19:41:14,owner-occupied,,,200003670968.0,Address Matched +6598411712018111315515493989149,Flat 8,Yew Tree House,Belts Wood,ME15 9GP,1924137468,C,C,79,79,Flat,Detached,2018-11-13,E07000110,E14000700,Kent,2018-11-13,rental (social),80,80,131,131.0,1.7,23,1.7,66.0,66.0,268.0,268.0,97.0,97.0,72.0,Single,Y,4th,Y,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,88.0,0.0,From main system,Good,Good,(another dwelling below),NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 88% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,8.12,,,N,natural,"Flat 8, Yew Tree House, Belts Wood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2003-2006,2018-11-13 15:51:54,rental (social),,,10014307525.0,Address Matched +425306549222010012217194431698080,"53, Stagshaw Close",,,ME15 6TE,8339471768,B,B,83,83,House,Mid-Terrace,2010-01-21,E07000110,E14000804,Kent,2010-01-22,rental (private),81,81,145,145.0,1.5,24,1.5,39.0,39.0,246.0,246.0,92.0,92.0,63.84,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,90.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 90% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,0.0,N,natural,"53, Stagshaw Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2010-01-22 17:19:44,rental (private),,,10022893295.0,Address Matched +791169559202012052108071392829518,"44, Foxden Drive",Downswood,,ME15 8TQ,232658968,D,A,58,93,House,Mid-Terrace,2012-05-19,E07000110,E14000700,Kent,2012-05-21,rental (social),41,97,509,1.0,3.8,90,0.1,50.0,26.0,370.0,241.0,170.0,56.0,42.0,Unknown,Y,NODATA!,,,2401.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,1.0,20.0,0.0,"Electric immersion, off-peak",Poor,Very Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, partial insulation (assumed)",Average,Average,Portable electric heaters (assumed),,,"Pitched, 75 mm loft insulation",Very Poor,Very Poor,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 20% of fixed outlets,Poor,Poor,electricity (not community),0.0,NO DATA!,,,0.0,,natural,"44, Foxden Drive, Downswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1976-1982,2012-05-21 08:07:13,rental (social),5.0,1.0,200003686572.0,Address Matched +478948910312014110616410495049878,"24, Greenside",,,ME15 7RU,8820055768,D,B,59,85,House,Semi-Detached,2014-11-06,E07000110,E14000804,Kent,2014-11-06,marketed sale,59,87,240,70.0,4.0,42,1.1,62.0,62.0,806.0,473.0,173.0,83.0,95.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,92.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 92% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"24, Greenside",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2014-11-06 16:41:04,owner-occupied,13.0,12.0,200003696224.0,Address Matched +791844119962015042110083288468715,"3, Chippendayle Drive",Harrietsham,,ME17 1AD,1865168968,D,B,59,84,House,Semi-Detached,2015-04-16,E07000110,E14000700,Kent,2015-04-21,ECO assessment,51,82,307,99.0,4.7,54,1.5,58.0,58.0,806.0,496.0,171.0,73.0,86.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Solid, limited insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"3, Chippendayle Drive, Harrietsham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1996-2002,2015-04-21 10:08:32,owner-occupied,,,200003702994.0,Address Matched +1287615384412015022714583996250733,"23, Saltwood Road",,,ME15 6UY,7320463378,D,B,68,87,House,Semi-Detached,2015-02-27,E07000110,E14000804,Kent,2015-02-27,marketed sale,67,87,222,75.0,2.8,39,1.0,88.0,47.0,445.0,404.0,156.0,70.0,71.0,Unknown,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,13.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 13% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"23, Saltwood Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2015-02-27 14:58:39,owner-occupied,,,200003665383.0,Address Matched +173177909062019070111245073198211,9 Claire House,Lesley Place,Buckland Hill,ME16 0UE,1778043568,C,B,79,82,Flat,Enclosed End-Terrace,2019-07-01,E07000110,E14000804,Kent,2019-07-01,rental (private),69,73,270,241.0,1.8,46,1.6,72.0,36.0,158.0,132.0,138.0,138.0,39.0,dual,N,2nd,N,,2401.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,0.0,0.0,"Electric immersion, off-peak",Average,Poor,(another dwelling below),NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,Portable electric heaters (assumed),,,(another dwelling above),,,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,No low energy lighting,Very Poor,Very Poor,electricity (not community),0.0,heated corridor,,,,N,natural,"9 Claire House, Lesley Place, Buckland Hill",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2019-07-01 11:24:50,rental (private),,,200003721273.0,Address Matched +7ef64eefdc9cc9e53837c6ca6050a5e0af770dd304ae81b6b7181e07d56aa87d,17 CLOVER TERRACE,NORTHUMBERLAND ROAD,,ME15 7SY,10001418055,E,B,52,84,House,Mid-Terrace,2021-06-28,E07000110,E14000700,Kent,2021-07-01,ECO assessment,48,83,359,98.0,4.4,63,1.2,117.0,58.0,721.0,450.0,203.0,79.0,69.0,Single,Y,,,,,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,0.0,0.0,"From main system, no cylinder thermostat",Average,Average,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,"Pitched, insulated (assumed)",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,,,2.75,0.0,N,natural,"17 CLOVER TERRACE, NORTHUMBERLAND ROAD",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2021-07-01 10:48:56,Rented (social),8.0,,200003714097.0,Energy Assessor +683382811932011092815393412268209,"6, Trevor Drive",,,ME16 0QW,1942250968,E,D,53,64,House,Semi-Detached,2011-09-28,E07000110,E14000804,Kent,2011-09-28,non marketed sale,48,61,309,227.0,5.4,60,4.0,86.0,48.0,888.0,681.0,103.0,88.0,59.96,Single,Y,NODATA!,,,2107.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,20.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 20% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,2.44,0.0,,natural,"6, Trevor Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2011-09-28 15:39:34,owner-occupied,10.0,2.0,200003704974.0,Address Matched +262575414032010050313204267768807,"26, Brunell Close",,,ME16 0YW,1707830668,C,B,77,85,House,Mid-Terrace,2010-04-30,E07000110,E14000804,Kent,2010-05-03,marketed sale,75,84,156,98.0,3.2,26,2.0,98.0,68.0,484.0,312.0,85.0,85.0,123.26,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,6.0,6.0,55.0,0.0,"From main system, plus solar",Very Good,Very Good,"Solid, insulated (assumed)",,,Fully double glazed,Good,Good,"Timber frame, as built, insulated (assumed)",Good,Good,,,,"Pitched, no insulation",Very Poor,Very Poor,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 55% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.44,0.0,Y,natural,"26, Brunell Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2010-05-03 13:20:42,owner-occupied,,,10022895920.0,Address Matched +1299447479262015032417160104378045,1 Laurel Cottage,Five Oak Lane,Staplehurst,TN12 0HT,4013744378,F,C,36,80,House,Semi-Detached,2015-03-23,E07000110,E14000804,Kent,2015-03-24,ECO assessment,11,105,570,141.0,7.6,190,-0.4,43.0,28.0,662.0,402.0,254.0,80.0,40.0,Single,N,NODATA!,,,2601.0,100.0,"double glazing, unknown install date",Normal,1.0,4.0,4.0,50.0,0.0,"Electric immersion, standard tariff",Very Poor,Poor,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 50 mm loft insulation",Poor,Poor,"Room heaters, coal",Average,Very Poor,No thermostatic control of room temperature,Poor,Poor,Low energy lighting in 50% of fixed outlets,Good,Good,house coal (not community),0.0,NO DATA!,,,,N,natural,"1 Laurel Cottage, Five Oak Lane, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: before 1900,2015-03-24 17:16:01,rental (private),,,200003722528.0,Address Matched +432349549062010020710020812658530,"5, Jamaica Terrace",Invicta Park,,ME14 2PE,3161422768,C,C,69,69,House,Mid-Terrace,2010-02-05,E07000110,E14000804,Kent,2010-02-07,marketed sale,68,68,226,226.0,3.1,37,3.1,41.0,41.0,521.0,521.0,94.0,94.0,83.1,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,100.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.3,0.0,N,natural,"5, Jamaica Terrace, Invicta Park",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2010-02-07 10:02:08,owner-occupied,,,200003724092.0,Address Matched +427137889202010012718410077102638,"79, Lower Boxley Road",,,ME14 2UU,1241881768,D,D,56,57,House,Mid-Terrace,2010-01-27,E07000110,E14000804,Kent,2010-01-27,marketed sale,55,55,258,254.0,7.5,42,7.4,137.0,88.0,1167.0,1178.0,140.0,140.0,203.55,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,9.0,7.0,44.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Sandstone, as built, no insulation (assumed)",Very Poor,Very Poor,Portable electric heaters,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 44% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,0.0,N,natural,"79, Lower Boxley Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2010-01-27 18:41:00,owner-occupied,,,, +926069509442013050719103602870538,"13, Newington Walk",,,ME14 5RJ,7493908078,C,B,75,91,House,Mid-Terrace,2013-05-07,E07000110,E14000804,Kent,2013-05-07,rental,77,94,145,23.0,1.7,28,0.3,54.0,36.0,282.0,268.0,100.0,66.0,60.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,4.0,4.0,50.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"13, Newington Walk",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2013-05-07 19:10:36,owner-occupied,8.0,4.0,200003725221.0,Address Matched +1454874049142016061814354547569688,"47, Church Green",Staplehurst,,TN12 0BG,9147745478,D,B,55,84,Bungalow,Semi-Detached,2016-06-18,E07000110,E14000804,Kent,2016-06-18,marketed sale,47,81,337,97.0,4.6,60,1.4,75.0,51.0,849.0,485.0,117.0,53.0,77.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,55.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 55% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,2.42,,N,natural,"47, Church Green, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1930-1949,2016-06-18 14:35:45,owner-occupied,,,200003677043.0,Address Matched +1149091789942014053009350727347108,"46, Salts Avenue",Loose,,ME15 0AY,3977583278,B,B,81,90,House,Detached,2014-05-30,E07000110,E14000804,Kent,2014-05-30,new dwelling,82,91,104,48.0,2.2,17,1.0,67.0,67.0,407.0,409.0,109.0,61.0,131.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.18 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.20 W/m-¦K,Very Good,Very Good,"Room heaters, wood logs",,,Average thermal transmittance 0.14 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"46, Salts Avenue, Loose",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2014-05-30 09:35:07,owner-occupied,25.0,25.0,10014315360.0,Address Matched +1006608809962013091222421163128677,"93, Bathurst Road",Staplehurst,,TN12 0LH,7624083178,D,B,58,86,House,Mid-Terrace,2013-09-12,E07000110,E14000804,Kent,2013-09-12,rental (private),55,87,270,62.0,3.6,52,0.9,65.0,42.0,562.0,370.0,173.0,71.0,69.0,Unknown,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,1.0,3.0,3.0,44.0,1.0,From main system,Average,Average,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 44% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"93, Bathurst Road, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1950-1966,2013-09-12 22:42:11,rental (private),9.0,4.0,200003677731.0,Address Matched +451643729262018122112333623368908,"5, Keele Way",,,ME15 9WW,202263768,C,B,78,88,House,Mid-Terrace,2018-09-26,E07000110,E14000700,Kent,2018-12-21,rental (social),79,87,128,63.0,2.0,22,1.1,66.0,66.0,355.0,355.0,86.0,86.0,91.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,100.0,0.0,"From main system, plus solar",Very Good,Very Good,"Solid, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Very Good,Very Good,,,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,Y,natural,"5, Keele Way",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2007 onwards,2018-12-21 12:33:36,rental (social),,,10014311592.0,Address Matched +1391546119022015120120433641898725,"5, Jenkins Drive",,,ME15 9LG,2426101478,D,B,68,88,Bungalow,Semi-Detached,2015-12-01,E07000110,E14000700,Kent,2015-12-01,rental (social),68,88,264,77.0,2.1,46,0.6,44.0,32.0,402.0,354.0,85.0,57.0,45.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,60.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 60% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"5, Jenkins Drive",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2015-12-01 20:43:36,rental (social),,,200003682473.0,Address Matched +1637796349342018060608221555880668,"19, Saxon Way",Tovil,,ME15 6AL,2373548578,B,A,85,97,House,Mid-Terrace,2018-06-06,E07000110,E14000804,Kent,2018-06-06,new dwelling,88,100,80,-12.0,1.1,14,-0.1,55.0,55.0,181.0,181.0,76.0,45.0,75.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.09 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.22 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"19, Saxon Way, Tovil",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2018-06-06 08:22:15,owner-occupied,45.0,45.0,10093304973.0,Address Matched +244096930922009031115571349798901,"3, Belts Wood",,,ME15 9GL,468309568,B,B,84,85,House,Mid-Terrace,2009-03-11,E07000110,E14000700,Kent,2009-03-11,new dwelling,84,84,112,108.0,1.6,0,1.6,59.0,46.0,212.0,213.0,98.0,98.0,44.4,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,3.0,,SAP05:Hot-Water,,,Average thermal transmittance 0.19 W/m²K,Very Good,Very Good,Fully double glazed,Good,Good,Average thermal transmittance 0.30 W/m²K,Good,Good,SAP05:Secondary-Heating,,,Average thermal transmittance 0.16 W/m²K,Good,Good,SAP05:Main-Heating,,,SAP05:Main-Heating-Controls,,,Low energy lighting in 71% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.67,,,NO DATA!,"3, Belts Wood",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2009-03-11 15:57:13,,17.0,3.0,10014307505.0,Address Matched +310528660442009062213061465312028,"3, Kilndown Close",,,ME16 0PL,8443863668,D,C,59,76,House,Semi-Detached,2009-06-22,E07000110,E14000804,Kent,2009-06-22,rental (private),53,73,325,184.0,4.6,54,2.6,61.0,41.0,629.0,375.0,118.0,90.0,85.5,NO DATA!,,NO DATA!,,,2107.0,,NO DATA!,NO DATA!,,,,50.0,,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Poor,Poor,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,0.0,,NO DATA!,"3, Kilndown Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2009-06-22 13:06:14,rental (private),,,200003660197.0,Address Matched +881826399402013020821170200470188,1 Old Mill Cottages,Old Mill Road,Hollingbourne,ME17 1XD,8480794078,F,C,29,73,House,End-Terrace,2013-02-08,E07000110,E14000700,Kent,2013-02-08,marketed sale,22,60,393,132.0,10.0,99,4.0,91.0,56.0,1746.0,908.0,254.0,106.0,105.0,Single,N,NODATA!,,,2107.0,100.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,36.0,0.0,From main system,Average,Poor,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, oil",Average,Average,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 36% of fixed outlets,Average,Average,oil (not community),0.0,NO DATA!,,,0.0,,natural,"1 Old Mill Cottages, Old Mill Road, Hollingbourne",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2013-02-08 21:17:02,unknown,11.0,4.0,200003725343.0,Address Matched +1471410769902016081516454847669558,16 Kings Cottages,Maidstone Road,Wateringbury,ME18 5ER,5983566478,D,B,61,83,House,Semi-Detached,2016-08-15,E07000110,E14000804,Kent,2016-08-15,marketed sale,54,80,273,106.0,4.7,48,1.9,120.0,62.0,845.0,548.0,112.0,78.0,98.0,Unknown,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,2.0,5.0,5.0,7.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 7% of fixed outlets,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,2.45,,N,natural,"16 Kings Cottages, Maidstone Road, Wateringbury",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2016-08-15 16:45:48,owner-occupied,,,200003658857.0,Address Matched +991033159962013081515250382958097,66a Melville Road,,,ME15 7UT,9844562178,D,D,56,56,Flat,Detached,2013-08-15,E07000110,E14000804,Kent,2013-08-15,new dwelling,59,59,265,265.0,3.8,47,3.8,65.0,65.0,669.0,669.0,270.0,270.0,81.0,standard tariff,,ground floor,,,,,NO DATA!,NO DATA!,,,,,0.0,"Electric immersion, standard tariff",Very Poor,Very Poor,Average thermal transmittance 0.62 W/m?K,Poor,Poor,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.28 W/m?K,Very Good,Very Good,,,,(other premises above),,,"Room heaters, electric",Very Poor,Very Poor,Programmer and appliance thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,66a Melville Road,Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2013-08-15 15:25:03,NO DATA!,5.0,5.0,10014315553.0,Address Matched +455118462922020051816512353588740,"38, Poyntell Road",Staplehurst,,TN12 0SA,4535683768,D,C,60,78,House,Semi-Detached,2020-05-18,E07000110,E14000804,Kent,2020-05-18,marketed sale,56,76,265,128.0,4.0,46,2.0,83.0,67.0,801.0,627.0,94.0,65.0,86.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,1.0,6.0,5.0,75.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,Portable electric heaters (assumed),,,"Pitched, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"38, Poyntell Road, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1967-1975,2020-05-18 16:51:23,owner-occupied,,,200003678427.0,Address Matched +1744953608132019082010351051278304,Boxley Cottage,Boxley Road,Walderslade,ME5 9JE,401326678,C,B,70,84,Bungalow,Detached,2019-08-20,E07000110,E14000700,Kent,2019-08-20,marketed sale,67,81,185,94.0,3.8,32,2.0,168.0,84.0,574.0,517.0,130.0,83.0,117.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,0.0,0.0,From main system,Good,Good,"Solid, limited insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"Boxley Cottage, Boxley Road, Walderslade",Maidstone,Faversham and Mid Kent,CHATHAM,England and Wales: 1996-2002,2019-08-20 10:35:10,owner-occupied,,,200003721217.0,Address Matched +1548209509902017053010552554237108,"19, Hayward Road",,,ME17 3GA,7925702578,B,A,83,97,House,Semi-Detached,2017-05-30,E07000110,E14000700,Kent,2017-05-30,new dwelling,86,100,99,-15.0,1.0,17,-0.1,44.0,44.0,192.0,192.0,75.0,44.0,60.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"19, Hayward Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2017-05-30 10:55:25,unknown,7.0,7.0,10093303953.0,Address Matched +1766472249852020022716530627200761,"7, Church Walk",Headcorn,,TN27 9NP,7170977678,E,B,47,83,House,End-Terrace,2020-02-27,E07000110,E14000700,Kent,2020-02-27,rental (private),24,58,633,259.0,6.7,111,2.7,68.0,68.0,970.0,523.0,179.0,99.0,61.0,dual,N,NODATA!,,,2401.0,71.0,secondary glazing,Normal,2.0,3.0,3.0,78.0,1.0,"Electric immersion, off-peak",Average,Poor,"Solid, no insulation (assumed)",NO DATA!,,Partial secondary glazing,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, insulated at rafters",Good,Good,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 78% of fixed outlets,Very Good,Very Good,electricity (not community),0.0,NO DATA!,,,,N,natural,"7, Church Walk, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,England and Wales: before 1900,2020-02-27 16:53:06,rental (private),,,200003721693.0,Address Matched +1086464745452015042406231594250913,"4, Ashford Road",Bearsted,,ME14 4LP,9376549178,D,B,57,86,House,Semi-Detached,2015-04-23,E07000110,E14000700,Kent,2015-04-24,ECO assessment,49,83,289,78.0,5.8,51,1.6,132.0,66.0,944.0,499.0,208.0,78.0,114.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,7.0,7.0,0.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, mains gas",,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"4, Ashford Road, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1900-1929,2015-04-24 06:23:15,owner-occupied,,,200003687679.0,Address Matched +597042830552017042221274592230882,"9, Hampshire Drive",,,ME15 7EU,8277024868,D,B,66,87,House,Semi-Detached,2017-04-21,E07000110,E14000700,Kent,2017-04-22,rental (social),63,85,244,81.0,3.3,43,1.1,84.0,52.0,522.0,398.0,157.0,81.0,76.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,38.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, partial insulation (assumed)",Average,Average,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 38% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"9, Hampshire Drive",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1976-1982,2017-04-22 21:27:45,rental (social),,,200003711450.0,Address Matched +399578099802014061123212063949608,"25, Caernarvon Drive",,,ME15 6FJ,6847399668,C,B,72,86,House,Semi-Detached,2014-06-10,E07000110,E14000804,Kent,2014-06-11,marketed sale,73,87,165,62.0,2.1,32,0.8,45.0,45.0,389.0,391.0,113.0,75.0,67.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Solid, limited insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"25, Caernarvon Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2014-06-11 23:21:20,owner-occupied,13.0,13.0,200003664363.0,Address Matched +1535901408132019082110142404278207,"4, Minstrel Close",Marden,,TN12 9FU,734221578,B,A,86,93,House,Detached,2019-08-21,E07000110,E14000804,Kent,2019-08-21,new dwelling,86,93,71,30.0,2.2,13,1.0,99.0,99.0,347.0,348.0,103.0,57.0,179.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.12 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.27 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.15 W/m-¦K,Good,Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"4, Minstrel Close, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,NO DATA!,2019-08-21 10:14:24,owner-occupied,18.0,18.0,10093303338.0,Address Matched +1727289872612019060711551599280660,"23, Albert Street",,,ME14 2RN,6068294678,B,A,81,93,House,Detached,2018-09-20,E07000110,E14000804,Kent,2019-06-07,new dwelling,82,94,111,22.0,1.5,20,0.3,62.0,62.0,263.0,263.0,72.0,42.0,78.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.12 W/m+é-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.18 W/m+é-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.13 W/m+é-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"23, Albert Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2019-06-07 11:55:15,unknown,20.0,20.0,10093306636.0,Address Matched +1686694240832018121811352463978995,Lower Flat,Elsfield Cottages,"Ashford Road, Hollingbourne",ME17 1PA,4593991678,D,C,64,75,Flat,Semi-Detached,2018-10-17,E07000110,E14000700,Kent,2018-12-18,rental (private),65,80,400,227.0,1.8,71,1.0,23.0,23.0,355.0,211.0,64.0,65.0,26.0,Unknown,Y,Ground,N,,2107.0,100.0,"double glazing, unknown install date",Normal,0.0,1.0,1.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,no corridor,,,,N,natural,"Lower Flat, Elsfield Cottages, Ashford Road, Hollingbourne",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1900-1929,2018-12-18 11:35:24,rental (private),,,200003698513.0,Address Matched +548014349402010100212541080007308,"17, Lime Trees",Staplehurst,,TN12 0SS,6432040868,D,C,65,70,House,Detached,2010-09-30,E07000110,E14000804,Kent,2010-10-02,marketed sale,64,69,220,190.0,4.5,36,3.9,118.0,71.0,686.0,639.0,155.0,133.0,124.88,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,8.0,8.0,33.0,0.0,From main system,Good,Good,"Solid, limited insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 33% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.38,0.0,N,natural,"17, Lime Trees, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1996-2002,2010-10-02 12:54:10,owner-occupied,,,200003724384.0,Address Matched +295476269642016101007215964260438,"187a, Boxley Road",,,ME14 2TL,6657662668,E,C,47,79,Flat,Mid-Terrace,2016-10-07,E07000110,E14000804,Kent,2016-10-10,marketed sale,53,84,442,145.0,2.7,75,0.9,27.0,27.0,527.0,161.0,259.0,101.0,37.0,Single,Y,1st,Y,,2601.0,100.0,double glazing installed during or after 2002,Normal,0.0,1.0,1.0,100.0,0.0,"Electric immersion, standard tariff",Very Poor,Poor,(another dwelling below),NO DATA!,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 75 mm loft insulation",Average,Average,"Room heaters, electric",Very Poor,Poor,No thermostatic control of room temperature,Poor,Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,unheated corridor,1.0,2.49,,N,natural,"187a, Boxley Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2016-10-10 07:21:59,owner-occupied,,,200003704278.0,Address Matched +7f91206b1edef5aacb092b0b53466321a771c5a1e45aff40c302fea1ce19c01a,27 Kings Walk,Holland Road,,ME14 1GQ,10001492006,D,C,67,79,Flat,Semi-Detached,2021-09-10,E07000110,E14000804,Kent,2021-09-10,rental,64,67,253,231.0,2.8,43,2.5,59.0,68.0,508.0,284.0,215.0,194.0,65.0,dual,N,01,N,,,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,100.0,0.0,"Electric immersion, off-peak",Poor,Poor,"Suspended, insulated (assumed)",,,Fully double glazed,Average,Average,"Timber frame, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Room heaters, electric",Very Poor,Poor,Programmer and appliance thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,heated corridor,,2.43,0.0,N,natural,"27 Kings Walk, Holland Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2021-09-10 12:10:19,Rented (private),22.0,,200003655135.0,Energy Assessor +389658341352009110315480702019768,"15, Tarragon Road",,,ME16 0UR,7859129668,C,C,70,76,House,End-Terrace,2009-11-03,E07000110,E14000804,Kent,2009-11-03,marketed sale,65,72,205,165.0,4.8,34,3.9,106.0,71.0,637.0,547.0,166.0,133.0,137.67,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,7.0,7.0,50.0,0.0,From main system,Good,Good,"Solid, limited insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,,0.0,N,natural,"15, Tarragon Road",Maidstone,Maidstone and The Weald,MAIDSTONE,,2009-11-03 15:48:07,owner-occupied,,,200003726875.0,Address Matched +1449341209052016060218152090060542,"16, Underwood Close",,,ME15 6SR,5282905478,D,B,59,87,House,Mid-Terrace,2016-06-01,E07000110,E14000804,Kent,2016-06-02,marketed sale,54,86,318,81.0,3.7,56,1.0,62.0,45.0,611.0,398.0,190.0,70.0,66.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,62.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, insulated at rafters",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 62% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,2.27,,N,natural,"16, Underwood Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2016-06-02 18:15:20,owner-occupied,,,200003664836.0,Address Matched +96304889102013120411521140670648,"37, Felderland Drive",,,ME15 9YB,6175886468,D,B,64,83,House,Mid-Terrace,2013-12-04,E07000110,E14000700,Kent,2013-12-04,none of the above,63,84,200,74.0,3.5,38,1.3,84.0,52.0,646.0,474.0,100.0,70.0,92.0,Single,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,2.0,5.0,5.0,38.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,"Pitched, 75mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 38% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"37, Felderland Drive",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2013-12-04 11:52:11,owner-occupied,13.0,5.0,200003682819.0,Address Matched +1610717352832018022517295665278305,"6, North Street",Barming,,ME16 9HF,5565356578,D,B,55,82,House,Semi-Detached,2018-02-25,E07000110,E14000804,Kent,2018-02-25,marketed sale,48,79,335,111.0,4.3,59,1.5,64.0,51.0,703.0,456.0,147.0,68.0,72.0,Single,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,6.0,6.0,75.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, mains gas",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"6, North Street, Barming",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2018-02-25 17:29:56,owner-occupied,,,200003665719.0,Address Matched +459103652052010112914530891209675,"6, Trinity Way",,,ME15 9FY,6541214768,B,B,86,87,House,End-Terrace,2010-11-29,E07000110,E14000700,Kent,2010-11-29,new dwelling,87,87,105,101.0,1.1,17,1.0,46.0,34.0,224.0,226.0,55.0,55.0,63.14,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,,From main system,Very Good,Very Good,Average thermal transmittance 0.18 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m?K,Very Good,Very Good,"Room heaters, electric",,,Average thermal transmittance 0.10 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Very Good,Very Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in 67% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.31,,,NO DATA!,"6, Trinity Way",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2010-11-29 14:53:08,,,,10014311460.0,Address Matched +471914939222019092420103165548871,"16, Victoria Orchard",Queens Road,,ME16 0ED,7650305768,C,C,75,79,Maisonette,End-Terrace,2019-09-24,E07000110,E14000804,Kent,2019-09-24,marketed sale,75,80,152,125.0,2.1,27,1.7,106.0,66.0,315.0,280.0,111.0,97.0,78.0,Single,Y,1st,Y,,2107.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,40.0,0.0,From main system,Good,Good,(another dwelling below),NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Roof room(s), insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 40% of fixed outlets,Average,Average,mains gas (not community),0.0,no corridor,,,,N,natural,"16, Victoria Orchard, Queens Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2019-09-24 20:10:31,owner-occupied,,,10022893165.0,Address Matched +1677940539832019100912322696078592,Flat 601,Kent House,Romney Place,ME15 6LA,3206531678,C,C,69,69,Flat,Detached,2018-11-09,E07000110,E14000804,Kent,2019-10-09,non marketed sale,72,72,187,187.0,2.2,32,2.2,54.0,54.0,384.0,384.0,298.0,298.0,69.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,"Electric immersion, standard tariff",Very Poor,Poor,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.35 W/m-¦K,Good,Good,,,,(other premises above),,,Electric underfloor heating,Very Poor,Poor,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"Flat 601, Kent House, Romney Place",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2019-10-09 12:32:26,unknown,21.0,21.0,, +1575904859962017091910130904718733,"26, Edmett Way",,,ME17 3GD,3040504578,B,A,85,94,House,Semi-Detached,2017-09-19,E07000110,E14000700,Kent,2017-09-19,new dwelling,86,95,79,20.0,1.6,14,0.5,77.0,77.0,268.0,268.0,89.0,54.0,118.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.23 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.19 W/m-¦K,Good,Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"26, Edmett Way",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2017-09-19 10:13:09,unknown,7.0,7.0,10093304027.0,Address Matched +1594419852332017120610044261078890,"89, Arundel Square",,,ME15 6HB,5001835578,C,C,80,80,Flat,End-Terrace,2017-12-05,E07000110,E14000804,Kent,2017-12-06,rental (social),84,84,117,117.0,1.3,21,1.3,53.0,53.0,209.0,209.0,101.0,101.0,61.0,dual,Y,1st,Y,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,(another dwelling below),NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,7.06,,,N,natural,"89, Arundel Square",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2017-12-06 10:04:42,rental (social),,,10022895189.0,Address Matched +1618140309602019030314485558710378,"422b, Loose Road",,,ME15 9TX,4691607578,E,E,52,52,Flat,Semi-Detached,2019-03-03,E07000110,E14000804,Kent,2019-03-03,new dwelling,57,57,349,349.0,2.8,59,2.8,41.0,41.0,617.0,617.0,266.0,266.0,48.0,standard tariff,,top floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,"Electric immersion, standard tariff",Very Poor,Poor,Average thermal transmittance 0.17 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.50 W/m-¦K,Good,Good,,,,Average thermal transmittance 0.14 W/m-¦K,Very Good,Very Good,"Room heaters, electric",Very Poor,Poor,Programmer and appliance thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"422b, Loose Road",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2019-03-03 14:48:55,unknown,15.0,15.0,10093306613.0,Address Matched +548162900032010100515232646068390,"13, Beaumont Road",,,ME16 8NG,86340868,C,C,75,76,House,Mid-Terrace,2010-10-05,E07000110,E14000804,Kent,2010-10-05,rental (social),71,72,215,211.0,2.4,36,2.3,48.0,35.0,370.0,372.0,105.0,105.0,65.68,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,4.0,4.0,60.0,0.0,From main system,Very Good,Very Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 60% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.44,0.0,N,natural,"13, Beaumont Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2010-10-05 15:23:26,rental (social),,,200003674267.0,Address Matched +1488429789142016120716401048760838,"4, Godfrey Meadow",Hollingbourne,,ME17 1FZ,4137587478,B,B,84,91,House,Detached,2016-12-07,E07000110,E14000700,Kent,2016-12-07,new dwelling,85,92,79,36.0,2.2,13,1.0,85.0,85.0,411.0,413.0,120.0,66.0,170.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,"Room heaters, wood logs",,,Average thermal transmittance 0.12 W/m-¦K,Very Good,Very Good,"Boiler and underfloor heating, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"4, Godfrey Meadow, Hollingbourne",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2016-12-07 16:40:10,owner-occupied,10.0,10.0,10091196217.0,Address Matched +921861344732013042915372740278004,Flat 8 Mauritius House,Balliol Grove,,ME15 9WQ,4440087078,B,B,81,81,Flat,Mid-Terrace,2013-04-29,E07000110,E14000700,Kent,2013-04-29,new dwelling,82,82,122,122.0,1.5,22,1.5,54.0,54.0,225.0,225.0,105.0,105.0,69.0,standard tariff,,top floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Average,Good,(other premises below),,,Fully double glazed,Good,Good,Average thermal transmittance 0.28 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.14 W/m?K,Very Good,Very Good,"Air source heat pump, radiators, electric",Good,Very Good,Programmer and room thermostat,Average,Average,Low energy lighting in 78% of fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"Flat 8 Mauritius House, Balliol Grove",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2013-04-29 15:37:27,NO DATA!,9.0,7.0,10014311676.0,Address Matched +979870173732013081610220092978808,High Vistas,Yelsted,,ME9 7UT,7842881178,F,D,32,63,Bungalow,Detached,2013-07-19,E07000110,E14000700,Kent,2013-08-16,marketed sale,24,47,386,199.0,9.9,94,5.5,111.0,58.0,1721.0,1249.0,250.0,119.0,106.0,Single,N,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,8.0,1.0,From main system,Average,Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, oil",Average,Average,Programmer and room thermostat,Average,Average,Low energy lighting in 8% of fixed outlets,Very Poor,Very Poor,oil (not community),0.0,NO DATA!,,,0.0,,natural,"High Vistas, Yelsted",Maidstone,Faversham and Mid Kent,SITTINGBOURNE,England and Wales: 1950-1966,2013-08-16 10:22:00,owner-occupied,12.0,1.0,200003732546.0,Address Matched +1448480009042016060107465741562668,"42, Roseholme",,,ME16 8DR,56205478,E,C,52,74,Maisonette,End-Terrace,2016-05-26,E07000110,E14000804,Kent,2016-06-01,marketed sale,37,77,535,173.0,4.7,90,1.6,41.0,37.0,607.0,296.0,247.0,109.0,52.0,dual,Y,Ground,N,,2401.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,100.0,0.0,"Electric immersion, off-peak",Very Poor,Poor,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,(another dwelling above),,,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,no corridor,0.0,2.38,,N,natural,"42, Roseholme",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2016-06-01 07:46:57,owner-occupied,,,200003656345.0,Address Matched +1087570359802014021119562015949498,"2, Victoria Orchard",Queens Road,,ME16 0ED,1880759178,D,B,68,83,House,Semi-Detached,2014-02-11,E07000110,E14000804,Kent,2014-02-11,marketed sale,66,82,172,81.0,3.7,33,1.8,131.0,66.0,638.0,550.0,117.0,72.0,114.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,6.0,6.0,0.0,0.0,From main system,Good,Good,"Solid, limited insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Flat, insulated (assumed)",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"2, Victoria Orchard, Queens Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2014-02-11 19:56:20,owner-occupied,18.0,0.0,10022893158.0,Address Matched +413569690842009121615085472019568,"54, Hengist Court",Marsham Street,,ME14 1BU,8866190768,C,C,71,76,Flat,NO DATA!,2009-12-16,E07000110,E14000804,Kent,2009-12-16,rental (private),62,67,324,280.0,3.0,49,2.6,68.0,38.0,250.0,210.0,126.0,126.0,62.25,dual,N,2nd,Y,3.0,2401.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,20.0,0.0,"Electric immersion, off-peak",Average,Poor,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,"Pitched, 100 mm loft insulation",Average,Average,Electric storage heaters,Average,Poor,Manual charge control,Poor,Poor,Low energy lighting in 20% of fixed outlets,Poor,Poor,electricity - this is for backwards compatibility only and should not be used,0.0,heated corridor,,2.44,0.0,N,natural,"54, Hengist Court, Marsham Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2009-12-16 15:08:54,rental (private),,,200003688733.0,Address Matched +984293089022013081011294662218647,"315, Willington Street",,,ME15 8AS,4600812178,D,B,58,83,House,Semi-Detached,2013-08-09,E07000110,E14000700,Kent,2013-08-10,marketed sale,52,81,233,82.0,5.8,45,2.1,113.0,63.0,868.0,570.0,240.0,82.0,129.0,Single,Y,NODATA!,,,2107.0,100.0,double glazing installed before 2002,Normal,2.0,5.0,5.0,22.0,0.0,"From main system, no cylinder thermostat",Poor,Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 22% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"315, Willington Street",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2013-08-10 11:29:46,owner-occupied,18.0,4.0,200003684440.0,Address Matched +7fcf56de090bad56217acfb522027742806a0fbab13ce5cb116c8466222068e3,1 Wealden Way,Headcorn,,TN27 9DQ,10001326702,B,A,85,106,House,Detached,2021-08-17,E07000110,E14000700,Kent,2021-08-17,marketed sale,86,105,74,-40.0,2.1,13,-1.0,101.0,101.0,330.0,331.0,99.0,56.0,161.0,standard tariff,,,N,,,100.0,,,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.17 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.33,,,,"1 Wealden Way, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,2021,2021-08-17 09:28:54,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,20.0,,10093306084.0,Energy Assessor +286946808812009051821250000910364,"15, Higham Close",,,ME15 6SE,3408802668,D,B,66,82,House,Mid-Terrace,2009-05-18,E07000110,E14000804,Kent,2009-05-18,rental (private),61,80,287,149.0,3.2,48,1.7,62.0,32.0,434.0,253.0,110.0,80.0,68.0,Single,Y,NO DATA!,,,2107.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,9.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 25 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Poor,Poor,Low energy lighting in 9% of fixed outlets,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.41,0.0,N,natural,"15, Higham Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2009-05-18 21:25:00,rental (private),,,200003664765.0,Address Matched +435180554012010021219390094900777,Cornwells,Sheephurst Lane,Marden,TN12 9NS,7724442768,F,F,27,38,House,Detached,2010-02-10,E07000110,E14000804,Kent,2010-02-12,marketed sale,30,40,389,311.0,22.0,71,17.0,346.0,176.0,3390.0,2760.0,294.0,261.0,267.12,dual,N,NO DATA!,,,2107.0,62.0,double glazing installed during or after 2002,Normal,2.0,10.0,10.0,4.0,3.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Partial double glazing,Average,Average,"Timber frame, with external insulation",Very Poor,Very Poor,"Room heaters, wood logs",,,"Roof room(s), no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, oil",Average,Average,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 4% of fixed outlets,Very Poor,Very Poor,oil - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.14,0.0,N,natural,"Cornwells, Sheephurst Lane, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: before 1900,2010-02-12 19:39:00,owner-occupied,,,200003668125.0,Address Matched +1225293052832018020606570319078500,"17, Brockenhurst Avenue",,,ME15 7ED,5019529278,E,C,53,74,House,Semi-Detached,2018-02-01,E07000110,E14000700,Kent,2018-02-06,marketed sale,44,67,336,177.0,6.3,59,3.4,88.0,69.0,1065.0,797.0,156.0,74.0,107.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,2.0,5.0,5.0,71.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 71% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"17, Brockenhurst Avenue",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2018-02-06 06:57:03,owner-occupied,,,200003685050.0,Address Matched +1727028251652019111108481699919865,"5, Pentecost Lane",Otham,,ME15 8YF,8502194678,B,A,85,94,House,Semi-Detached,2019-11-11,E07000110,E14000700,Kent,2019-11-11,new dwelling,86,95,78,19.0,1.7,14,0.4,89.0,89.0,262.0,263.0,101.0,55.0,125.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.10 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.20 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.12 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"5, Pentecost Lane, Otham",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2019-11-11 08:48:16,unknown,10.0,10.0,10094440426.0,Address Matched +1775471442022020010716171088038370,"22, Coleman Way",,,ME17 3TS,7825448678,B,A,83,95,House,Semi-Detached,2020-01-07,E07000110,E14000700,Kent,2020-01-07,new dwelling,86,98,91,3.0,1.2,16,0.1,63.0,63.0,216.0,216.0,71.0,42.0,78.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"22, Coleman Way",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2020-01-07 16:17:10,unknown,7.0,7.0,10094441823.0,Address Matched +7fe451a95e285d2860f0e876f1ad91a2d2108e94b21805a5c21cc9b667570899,1 WHITE HORSE ORCHARD,HERMITAGE LANE,BOUGHTON MONCHELSEA,ME17 4DA,10001324906,C,A,72,105,Bungalow,Detached,2021-06-30,E07000110,E14000700,Kent,2021-07-19,RHI application,75,105,157,-42.0,2.6,27,-0.7,66.0,66.0,481.0,424.0,225.0,143.0,98.0,Single,N,,,,,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,4.0,100.0,0.0,From main system,Poor,Good,"Suspended, insulated (assumed)",,,Fully double glazed,Good,Good,"Timber frame, as built, insulated (assumed)",Good,Good,Portable electric heaters (assumed),,,"Pitched, insulated (assumed)",Good,Good,"Air source heat pump, radiators, electric",Average,Good,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,,,2.55,0.0,N,natural,"1 WHITE HORSE ORCHARD, HERMITAGE LANE, BOUGHTON MONCHELSEA",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2007-2011,2021-07-19 05:43:16,Owner-occupied,11.0,,10091196516.0,Energy Assessor +1718994515132019050914301084078502,"32, Oliver Road",Staplehurst,,TN12 0TG,1224534678,C,B,72,89,House,Mid-Terrace,2019-05-09,E07000110,E14000804,Kent,2019-05-09,marketed sale,73,89,183,55.0,2.0,32,0.6,106.0,53.0,294.0,301.0,121.0,76.0,63.0,dual,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"32, Oliver Road, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1983-1990,2019-05-09 14:30:10,owner-occupied,,,200003678783.0,Address Matched +973126154612015030308025894050219,"63, Hengist Court",Marsham Street,,ME14 1BU,2958441178,C,C,74,74,Flat,Enclosed Mid-Terrace,2015-03-02,E07000110,E14000804,Kent,2015-03-03,marketed sale,58,58,364,361.0,2.5,61,2.5,46.0,33.0,237.0,240.0,123.0,123.0,41.0,Unknown,N,3rd,Y,,2401.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,60.0,0.0,"Electric immersion, off-peak",Average,Poor,(another dwelling below),NO DATA!,,Fully double glazed,Average,Average,"System built, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,"Pitched, 250 mm loft insulation",Good,Good,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 60% of fixed outlets,Good,Good,electricity (not community),0.0,heated corridor,,,,N,natural,"63, Hengist Court, Marsham Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2015-03-03 08:02:58,owner-occupied,,,200003688742.0,Address Matched +7fe3060ac8916b506d672c650f6ae91c0fa98d9e7f47d108418f75cec6f66d08,6 ST. HELIERS CLOSE,,,ME16 8QZ,10001540042,C,B,71,85,House,Detached,2021-08-05,E07000110,E14000804,Kent,2021-08-06,marketed sale,66,83,181,80.0,3.7,32,1.7,86.0,86.0,555.0,455.0,142.0,72.0,115.0,Single,Y,,,,,100.0,"double glazing, unknown install date",Normal,1.0,6.0,6.0,100.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 270 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.41,0.0,N,natural,6 ST. HELIERS CLOSE,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1976-1982,2021-08-06 09:51:23,Owner-occupied,15.0,,200003656629.0,Energy Assessor +7fe320ae861d989bacf3f6b3de46e3032e28f49292d03ded195051599639bba0,464 Loose Road,,,ME15 9UA,10001495263,E,C,50,80,House,Detached,2021-09-10,E07000110,E14000804,Kent,2021-09-10,marketed sale,41,75,338,125.0,8.2,60,3.0,152.0,94.0,1186.0,698.0,260.0,73.0,137.0,Single,Y,,,,,100.0,"double glazing, unknown install date",Normal,1.0,7.0,7.0,38.0,1.0,"From main system, no cylinder thermostat",Poor,Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 38% of fixed outlets,Average,Average,mains gas (not community),0.0,,,2.42,0.0,N,natural,464 Loose Road,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2021-09-10 15:34:48,Owner-occupied,13.0,,200003680252.0,Energy Assessor +437667427032020032513421499268104,"23, Crownfields",Weavering,,ME14 5TH,2429162768,C,B,77,88,House,End-Terrace,2020-03-24,E07000110,E14000700,Kent,2020-03-25,rental (private),77,88,133,57.0,2.3,23,1.0,86.0,86.0,347.0,352.0,137.0,83.0,99.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,8.0,8.0,87.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 87% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"23, Crownfields, Weavering",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1991-1995,2020-03-25 13:42:14,rental (private),,,200003688249.0,Address Matched +425679379742010012423210271102648,"31, Parkwood Parade",,,ME15 9HL,9712771768,B,B,81,81,Flat,Mid-Terrace,2010-01-24,E07000110,E14000700,Kent,2010-01-24,rental (social),78,78,211,211.0,1.4,35,1.4,20.0,20.0,255.0,255.0,65.0,65.0,38.73,Single,Y,1st,N,3.0,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,100.0,0.0,From main system,Very Good,Very Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.3,0.0,N,natural,"31, Parkwood Parade",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2010-01-24 23:21:02,rental (social),,,200003682237.0,Address Matched +453337637032010031718590101968304,"76, Bower Lane",,,ME16 8EH,3411373768,E,E,47,51,House,End-Terrace,2010-03-17,E07000110,E14000804,Kent,2010-03-17,marketed sale,44,46,427,403.0,6.2,64,5.9,89.0,56.0,630.0,623.0,315.0,272.0,96.48,dual,N,NO DATA!,,,2705.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,40.0,0.0,"Electric immersion, off-peak",Very Poor,Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, 100mm loft insulation",Average,Average,Electric underfloor heating,Poor,Very Poor,Temperature zone control,Average,Average,Low energy lighting in 40% of fixed outlets,Average,Average,electricity - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.11,0.0,N,natural,"76, Bower Lane",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2010-03-17 18:59:01,owner-occupied,,,200003666285.0,Address Matched +1035500959762013103117185515698277,"2, Tichborne Close",,,ME16 0RY,7165585178,D,B,68,87,Bungalow,Semi-Detached,2013-10-31,E07000110,E14000804,Kent,2013-10-31,marketed sale,68,88,198,56.0,2.5,38,0.8,63.0,40.0,427.0,361.0,112.0,76.0,66.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,1.0,4.0,4.0,42.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 42% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"2, Tichborne Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2013-10-31 17:18:55,owner-occupied,12.0,5.0,200003727333.0,Address Matched +1244628419432014120308143248278093,"3, Tollgate Place",Headcorn,,TN27 9SU,1388060378,E,B,51,84,House,Semi-Detached,2014-11-28,E07000110,E14000700,Kent,2014-12-03,none of the above,46,83,288,78.0,6.1,55,1.7,86.0,63.0,1044.0,533.0,259.0,93.0,110.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,64.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 64% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"3, Tollgate Place, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,England and Wales: 1950-1966,2014-12-03 08:14:32,owner-occupied,14.0,9.0,200003700960.0,Address Matched +1027927429922013101822212495588687,"11, Cross Street",,,ME14 2SL,8972235178,D,B,63,90,House,Mid-Terrace,2013-10-18,E07000110,E14000804,Kent,2013-10-18,marketed sale,62,92,239,33.0,2.8,46,0.4,41.0,41.0,509.0,312.0,103.0,70.0,60.0,dual,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Granite or whinstone, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"11, Cross Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2013-10-18 22:21:24,owner-occupied,10.0,10.0,200003702745.0,Address Matched +280875189942019032115470662112408,Flat 108 Lee Heights,Bambridge Court,,ME14 2LD,900981668,B,B,82,87,Flat,Mid-Terrace,2019-03-20,E07000110,E14000804,Kent,2019-03-21,rental (private),79,79,172,172.0,1.4,29,1.4,61.0,45.0,91.0,63.0,176.0,144.0,47.0,dual,N,1st,N,,2602.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,50.0,0.0,"Electric immersion, off-peak",Poor,Poor,(another dwelling below),NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Room heaters, electric",Very Poor,Poor,Appliance thermostats,Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,electricity (not community),0.0,unheated corridor,3.7,,,N,natural,"Flat 108 Lee Heights, Bambridge Court",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2019-03-21 15:47:06,rental (private),,,10022893079.0,Address Matched +811903540352014012020434090240604,"26, Banky Meadow",,,ME16 9LA,6403000078,E,B,39,84,Bungalow,Detached,2014-01-20,E07000110,E14000804,Kent,2014-01-20,assessment for green deal,43,88,476,84.0,3.9,81,0.7,59.0,32.0,857.0,414.0,104.0,66.0,49.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,12.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, wood logs",,,"Pitched, no insulation",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 12% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"26, Banky Meadow",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2014-01-20 20:43:40,owner-occupied,33.0,4.0,200003667266.0,Address Matched +80090789bf8b0cd253681965ed1cbf4eb90faef0ad19866301066decd65a35e0,"Flat 19 Adeline Heights, Rosalind Drive",,,ME14 2FP,10001620877,B,B,85,85,Flat,End-Terrace,2021-07-06,E07000110,E14000804,Kent,2021-07-06,new dwelling,88,88,74,74.0,1.0,13,1.0,65.0,65.0,180.0,180.0,72.0,72.0,79.0,standard tariff,,2,N,,,100.0,,,,,,100.0,0.0,From main system,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.44 W/m-¦K,Good,Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.5,,,,"Flat 19 Adeline Heights, Rosalind Drive",Maidstone,Maidstone and The Weald,Maidstone,2018,2021-07-06 09:16:07,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,10.0,,10094441282.0,Address Matched +549225831112010100619595595009088,"13, The Mallows",,,ME14 2PX,857150868,D,C,65,72,House,Detached,2010-10-06,E07000110,E14000804,Kent,2010-10-06,rental (private),60,67,300,245.0,3.3,50,2.7,66.0,35.0,541.0,454.0,81.0,88.0,66.4,Single,Y,NO DATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,12.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 12% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.3,0.0,N,natural,"13, The Mallows",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1991-1995,2010-10-06 19:59:55,rental (private),,,200003669975.0,Address Matched +98640552112016062909194894260847,Flat 2,Otham House,Angelica Square,ME16 0FX,8768247468,C,C,79,79,Flat,End-Terrace,2016-06-29,E07000110,E14000804,Kent,2016-06-29,marketed sale,80,80,130,130.0,1.7,23,1.7,55.0,55.0,258.0,258.0,141.0,141.0,73.0,Unknown,Y,Ground,N,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,7.0,2.4,,N,natural,"Flat 2, Otham House, Angelica Square",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2016-06-29 09:19:48,owner-occupied,,,10022895545.0,Address Matched +977002076452013072317513296270712,"84, Hillary Road",Penenden Heath,,ME14 2JX,7219661178,D,C,56,80,House,Semi-Detached,2013-07-23,E07000110,E14000804,Kent,2013-07-23,rental (private),51,78,263,101.0,5.1,51,2.0,91.0,56.0,695.0,559.0,296.0,81.0,100.0,Single,N,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,36.0,1.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 36% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"84, Hillary Road, Penenden Heath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2013-07-23 17:51:32,rental (private),14.0,5.0,200003707140.0,Address Matched +337699769642010041108560360500918,"16, Park Way",,,ME15 7DL,3632465668,D,C,67,70,House,Semi-Detached,2010-04-09,E07000110,E14000700,Kent,2010-04-11,marketed sale,70,72,217,203.0,3.8,31,3.5,106.0,63.0,661.0,645.0,117.0,117.0,122.72,Single,Y,NO DATA!,,,2106.0,87.0,double glazing installed during or after 2002,More Than Typical,2.0,6.0,6.0,31.0,2.0,From main system,Very Good,Very Good,"Suspended, no insulation (assumed)",,,Mostly double glazing,Good,Good,"Cavity wall, filled cavity",Good,Good,"Room heaters, wood logs",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 31% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.62,0.0,N,natural,"16, Park Way",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2010-04-11 08:56:03,owner-occupied,,,200003684152.0,Address Matched +420533541252010011317062294900775,"11, Rhodewood Close",Downswood,,ME15 8UR,7526141768,C,C,69,77,House,Semi-Detached,2010-01-13,E07000110,E14000700,Kent,2010-01-13,marketed sale,64,74,271,200.0,2.9,45,2.1,36.0,36.0,415.0,328.0,142.0,105.0,63.8,Single,Y,NO DATA!,,,2107.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,90.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 90% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.36,0.0,N,natural,"11, Rhodewood Close, Downswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2010-01-13 17:06:22,owner-occupied,,,200003691365.0,Address Matched +1404736729962017021517250391948473,"41, Edmett Way",,,ME17 3FA,7908291478,B,B,81,90,House,End-Terrace,2017-02-14,E07000110,E14000700,Kent,2017-02-15,rental (social),81,90,107,46.0,2.1,19,0.9,72.0,72.0,370.0,370.0,94.0,60.0,113.0,Single,Y,NODATA!,,,2110.0,100.0,double glazing installed during or after 2002,Normal,0.0,6.0,6.0,100.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Very Good,Very Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"41, Edmett Way",Maidstone,Faversham and Mid Kent,MAIDSTONE,INVALID!,2017-02-15 17:25:03,rental (social),,,10091193981.0,Address Matched +751110565712012021617310196920796,"70, Church Green",Staplehurst,,TN12 0BE,7640565968,C,C,70,73,House,Semi-Detached,2012-02-16,E07000110,E14000804,Kent,2012-02-16,marketed sale,70,73,178,161.0,2.8,34,2.6,86.0,46.0,458.0,441.0,85.0,85.0,83.16,Unknown,Y,NODATA!,,,2107.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,13.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 13% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,2.27,0.0,,natural,"70, Church Green, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1976-1982,2012-02-16 17:31:01,owner-occupied,30.0,4.0,200003677023.0,Address Matched +1133006118212014042910112596240928,"51, Postley Road",,,ME15 6TP,9821862278,D,C,58,80,House,Mid-Terrace,2014-04-29,E07000110,E14000804,Kent,2014-04-29,marketed sale,58,82,255,103.0,3.7,45,1.4,61.0,61.0,780.0,539.0,109.0,74.0,83.0,Single,Y,NODATA!,,,2107.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,78.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 78% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"51, Postley Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2014-04-29 10:11:25,owner-occupied,9.0,7.0,200003681862.0,Address Matched +1346534589742015072412470136752048,2 Cedar Court,Ardenlee Drive,,ME14 5LT,1762187378,C,C,73,79,Flat,Enclosed End-Terrace,2015-07-24,E07000110,E14000804,Kent,2015-07-24,rental (private),71,78,169,126.0,2.9,30,2.2,133.0,67.0,487.0,388.0,104.0,104.0,98.0,Single,Y,Ground,N,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,0.0,0.0,From main system,Very Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,unheated corridor,6.59,,,N,natural,"2 Cedar Court, Ardenlee Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2015-07-24 12:47:01,rental (private),,,200003705882.0,Address Matched +55885840962009011412110666278631,72 Clock House Rise,Coxheath,,ME17 4GS,3605446568,B,B,82,82,Flat,Detached,2009-01-13,E07000110,E14000804,Kent,2009-01-14,new dwelling,82,82,161,161.0,1.3,0,1.3,23.0,23.0,257.0,257.0,66.0,66.0,0.0,standard tariff,,top floor,,,,,NO DATA!,NO DATA!,,,,14.0,,SAP05:Hot-Water,,,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.20 W/m²K,Very Good,Very Good,SAP05:Secondary-Heating,,,Average thermal transmittance 0.19 W/m²K,Good,Good,SAP05:Main-Heating,,,SAP05:Main-Heating-Controls,,,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,,,,NO DATA!,"72 Clock House Rise, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2009-01-14 12:11:06,,14.0,14.0,10022900583.0,Address Matched +275248277352009042809495201210661,2 Forge Lodge Bungalow,Mote Park,,ME15 7BE,6109711668,E,D,48,60,Bungalow,Semi-Detached,2009-04-24,E07000110,E14000700,Kent,2009-04-28,rental (private),41,53,508,382.0,4.7,85,3.5,33.0,33.0,640.0,507.0,129.0,93.0,70.9,Single,Y,NO DATA!,,,2104.0,,INVALID!,Much More Than Typical,0.0,4.0,4.0,75.0,0.0,From main system,Average,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Sandstone, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, mains gas",,,"Pitched, 200mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Average,Good,Programmer and room thermostat,Poor,Poor,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.99,0.0,N,natural,"2 Forge Lodge Bungalow, Mote Park",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2009-04-28 09:49:52,rental (private),,,200003725180.0,Address Matched +478622211212020090113211825000375,High Meadows,Stede Hill,Harrietsham,ME17 1NR,3500155768,D,C,59,75,House,Detached,2020-09-01,E07000110,E14000700,Kent,2020-09-01,marketed sale,55,70,157,88.0,13.2,37,8.5,264.0,159.0,2054.0,1851.0,162.0,99.0,360.0,Single,N,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,3.0,10.0,10.0,34.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Timber frame, with additional insulation",Good,Good,"Room heaters, wood logs",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, oil",Average,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 34% of fixed outlets,Average,Average,oil (not community),0.0,NO DATA!,,,,N,natural,"High Meadows, Stede Hill, Harrietsham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1900-1929,2020-09-01 13:21:18,owner-occupied,,,200003704219.0,Address Matched +203199090202008122313123458582478,"11, Challock Walk",,,ME14 5RD,293995568,D,B,59,81,House,Mid-Terrace,2008-12-23,E07000110,E14000804,Kent,2008-12-23,rental (private),53,78,347,158.0,4.2,58,1.9,64.0,32.0,408.0,239.0,194.0,87.0,72.0,Single,Y,NO DATA!,,,2104.0,100.0,secondary glazing,Normal,0.0,4.0,4.0,0.0,0.0,"From main system, no cylinderstat",Poor,Poor,"Solid, no insulation (assumed)",,,Full secondary glazing,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Average,Average,Programmer and room thermostat,Poor,Poor,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.3,0.0,N,natural,"11, Challock Walk",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2008-12-23 13:12:34,rental (private),,,200003721403.0,Address Matched +933987069602013052023491308872108,"17, Egerton Road",,,ME14 2QY,2675868078,C,C,72,76,Flat,Semi-Detached,2013-05-20,E07000110,E14000804,Kent,2013-05-20,rental (social),75,79,176,143.0,1.7,34,1.4,43.0,30.0,318.0,272.0,72.0,73.0,50.0,Single,Y,Ground,N,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,60.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 60% of fixed outlets,Good,Good,mains gas (not community),0.0,no corridor,,,0.0,,natural,"17, Egerton Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2013-05-20 23:49:13,rental (social),5.0,3.0,200003671009.0,Address Matched +291166339642014022811541260242558,16 Sunningdale Court,Square Hill Road,,ME15 7TT,625732668,C,C,69,78,Flat,End-Terrace,2014-02-25,E07000110,E14000804,Kent,2014-02-28,none of the above,71,82,217,133.0,1.8,41,1.1,58.0,29.0,311.0,220.0,123.0,98.0,44.0,Single,Y,3rd,N,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,0.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,unheated corridor,4.3,,0.0,,natural,"16 Sunningdale Court, Square Hill Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2014-02-28 11:54:12,rental (social),5.0,0.0,200003696546.0,Address Matched +1431536754632016040708522183078108,The Chauffeurs Apartment Butlers Cottage,The Priory,East Farleigh,ME15 0EX,5803183478,E,C,49,72,Flat,End-Terrace,2016-04-05,E07000110,E14000804,Kent,2016-04-07,rental (private),44,75,487,211.0,3.5,90,1.5,29.0,29.0,711.0,307.0,76.0,77.0,39.0,Single,Y,Ground,N,,2106.0,0.0,not defined,Normal,1.0,2.0,2.0,100.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Single glazed,Very Poor,Very Poor,"Sandstone or limestone, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, dual fuel (mineral and wood)",,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,no corridor,,2.25,,N,natural,"The Chauffeurs Apartment Butlers Cottage, The Priory, East Farleigh",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2016-04-07 08:52:21,rental (private),,,200003730179.0,Address Matched +597038819222011022823275224488889,"257, Plains Avenue",,,ME15 7BQ,8221124868,C,C,76,77,House,Mid-Terrace,2011-02-28,E07000110,E14000700,Kent,2011-02-28,rental (social),72,73,186,178.0,2.9,31,2.8,51.0,51.0,427.0,438.0,155.0,122.0,92.94,Single,Y,NO DATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,100.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.43,0.0,N,natural,"257, Plains Avenue",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2011-02-28 23:27:52,rental (social),,,200003714443.0,Address Matched +109369018452009030422230204010448,Apartment 12,Bluecoats Yard,Knightrider Street,ME15 6LD,4876848468,B,B,82,84,Flat,End-Terrace,2009-03-04,E07000110,E14000804,Kent,2009-03-04,rental (private),81,82,137,131.0,1.6,23,1.6,59.0,38.0,226.0,229.0,82.0,82.0,71.64,Unknown,Y,2nd,N,3.0,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,3.0,3.0,44.0,0.0,From main system,Very Good,Very Good,(other premises below),,,Fully double glazed,Good,Good,"System built, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 44% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,heated corridor,,2.5,0.0,N,natural,"Apartment 12, Bluecoats Yard, Knightrider Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2009-03-04 22:23:02,rental (private),,,10014307470.0,Address Matched +1766745089742019111915543563719118,"43, Ramsden Way",Marden,,TN12 9GL,5744187678,B,A,84,95,House,End-Terrace,2019-11-19,E07000110,E14000804,Kent,2019-11-19,new dwelling,86,97,80,8.0,1.3,14,0.2,76.0,76.0,215.0,215.0,82.0,51.0,95.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.16 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.19 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"43, Ramsden Way, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,NO DATA!,2019-11-19 15:54:35,unknown,15.0,15.0,10093305368.0,Address Matched +4457172642020031109155643609808,"35, Clock House Rise",Coxheath,,ME17 4GS,695676468,C,B,78,91,House,Mid-Terrace,2020-03-10,E07000110,E14000804,Kent,2020-03-11,marketed sale,79,92,133,38.0,1.8,23,0.5,65.0,65.0,293.0,295.0,100.0,61.0,75.0,Unknown,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"35, Clock House Rise, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2020-03-11 09:15:56,owner-occupied,,,10022900554.0,Address Matched +236950260002009030317571751810278,"50, Lacock Gardens",,,ME15 6GQ,48568568,B,B,81,83,House,Mid-Terrace,2009-03-03,E07000110,E14000804,Kent,2009-03-03,rental (private),78,82,158,134.0,1.9,26,1.6,37.0,37.0,255.0,227.0,108.0,94.0,73.2,Single,Y,NO DATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Poor,Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,0.0,N,natural,"50, Lacock Gardens",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2009-03-03 17:57:17,rental (private),,,10034134525.0,Address Matched +1676853599022018110722281491238038,"26, Sherbourne Drive",,,ME16 8UG,3915921678,C,B,75,91,House,Mid-Terrace,2018-11-07,E07000110,E14000804,Kent,2018-11-07,marketed sale,76,92,169,32.0,1.8,30,0.4,47.0,47.0,276.0,252.0,115.0,72.0,59.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,94.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Timber frame, as built, insulated (assumed)",Good,Good,,,,"Pitched, 270 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 94% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"26, Sherbourne Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2018-11-07 22:28:14,owner-occupied,,,200003675022.0,Address Matched +725124549902011111823462198399888,"4, Lady Shaw",,,ME15 9GW,971843968,C,C,79,80,House,Mid-Terrace,2011-11-18,E07000110,E14000700,Kent,2011-11-18,rental (social),82,83,112,107.0,1.6,21,1.5,64.0,44.0,235.0,238.0,113.0,113.0,75.66,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,56.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",,,Fully double glazed,Good,Good,"Timber frame, as built, insulated (assumed)",Good,Good,,,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 56% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,2.3,0.0,,natural,"4, Lady Shaw",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2007 onwards,2011-11-18 23:46:21,rental (social),9.0,5.0,10022896360.0,Address Matched +1715226369022019041918450864718251,1 Austin Heights,"25, Hartnup Street",,ME16 8GZ,5699604678,C,C,75,76,Flat,Detached,2019-04-09,E07000110,E14000804,Kent,2019-04-19,rental (private),79,80,189,181.0,1.2,33,1.2,54.0,33.0,223.0,225.0,70.0,70.0,37.0,Unknown,Y,Ground,N,,2111.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,38.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,TRVs and bypass,Average,Average,Low energy lighting in 38% of fixed outlets,Average,Average,mains gas (not community),0.0,no corridor,,,,N,natural,"1 Austin Heights, 25, Hartnup Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2019-04-19 18:45:08,rental (private),,,10014307763.0,Address Matched +426172112922020012019305821638270,"28, High Street",Lenham,,ME17 2QD,7276181768,D,C,55,79,House,End-Terrace,2020-01-17,E07000110,E14000700,Kent,2020-01-20,rental (private),46,73,305,135.0,6.8,54,3.1,123.0,94.0,1164.0,728.0,139.0,86.0,127.0,dual,Y,NODATA!,,,2106.0,94.0,"double glazing, unknown install date",More Than Typical,3.0,5.0,5.0,68.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Mostly double glazing,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 68% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"28, High Street, Lenham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2020-01-20 19:30:58,rental (private),,,200003711210.0,Address Matched +425231639222010012216133311828870,1 The Friars,Ashford Road,Harrietsham,ME17 1AJ,7193371768,B,B,83,84,House,Detached,2010-01-22,E07000110,E14000700,Kent,2010-01-22,new dwelling,83,83,100,96.0,2.7,16,2.6,127.0,90.0,386.0,392.0,100.0,100.0,164.67,standard tariff,,NO DATA!,,,2110.0,,NO DATA!,NO DATA!,,,,7.0,0.0,From main system,Very Good,Very Good,Average thermal transmittance 0.21 W/m?K,Good,Good,Fully double glazed,Good,Good,Average thermal transmittance 0.23 W/m?K,Very Good,Very Good,"Room heaters, mains gas",,,Average thermal transmittance 0.09 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Very Good,Very Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in 58% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.34,,,NO DATA!,"1 The Friars, Ashford Road, Harrietsham",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2010-01-22 16:13:33,,12.0,7.0,10014311266.0,Address Matched +877577374112013012911362296270708,"29, Hawkes Way",,,ME15 9ZL,7827464078,B,B,85,85,Flat,Detached,2013-01-29,E07000110,E14000700,Kent,2013-01-29,new dwelling,89,89,75,72.0,0.9,14,0.9,52.0,41.0,211.0,212.0,80.0,80.0,64.0,standard tariff,,top floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.32 W/m?K,Good,Good,,,,Average thermal transmittance 0.11 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"29, Hawkes Way",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2013-01-29 11:36:22,NO DATA!,8.0,6.0,10014312515.0,Address Matched +1021074659062013100820484934288947,"14, Lower Road",,,ME15 7RG,4338584178,D,B,60,85,House,Semi-Detached,2013-10-08,E07000110,E14000804,Kent,2013-10-08,none of the above,57,85,252,72.0,3.5,48,1.1,58.0,44.0,490.0,400.0,240.0,76.0,73.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,67.0,0.0,From main system,Average,Average,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Average,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 67% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"14, Lower Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2013-10-08 20:48:49,owner-occupied,9.0,6.0,200003695203.0,Address Matched +1620862336212018042518261792280257,"13, St. Margarets Close",,,ME16 8QN,2749627578,D,B,67,86,House,Detached,2018-04-25,E07000110,E14000804,Kent,2018-04-25,marketed sale,64,84,222,79.0,3.0,39,1.1,93.0,55.0,456.0,390.0,150.0,70.0,78.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,29.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 29% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"13, St. Margarets Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2018-04-25 18:26:17,owner-occupied,,,200003676053.0,Address Matched +1547982976212017053005435490230059,4 Roland House,Harris Place,Tovil,ME15 6BP,969602578,C,B,75,82,Flat,End-Terrace,2017-05-27,E07000110,E14000804,Kent,2017-05-30,rental (private),71,71,225,223.0,2.1,38,2.1,65.0,47.0,252.0,163.0,174.0,140.0,54.0,dual,N,Ground,N,,2603.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,50.0,0.0,"Electric immersion, off-peak",Poor,Poor,"Suspended, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Room heaters, electric",Very Poor,Poor,Programmer and appliance thermostats,Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,electricity (not community),0.0,heated corridor,,,,N,natural,"4 Roland House, Harris Place, Tovil",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2017-05-30 05:43:54,rental (private),,,10022901572.0,Address Matched +598305609922013021807542334448377,"20, Bychurch Place",Waterloo Street,,ME15 7UQ,7370034868,C,B,69,91,Bungalow,Mid-Terrace,2013-02-14,E07000110,E14000804,Kent,2013-02-18,rental (social),71,94,207,22.0,1.9,40,0.3,42.0,29.0,353.0,290.0,74.0,53.0,47.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,57.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, partial insulation (assumed)",Average,Average,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 57% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"20, Bychurch Place, Waterloo Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1976-1982,2013-02-18 07:54:23,rental (social),7.0,4.0,200003696660.0,Address Matched +1244243199022014120216041350428844,"128, Glebe Lane",,,ME16 9BA,4550950378,C,B,76,85,House,End-Terrace,2014-12-02,E07000110,E14000804,Kent,2014-12-02,rental (private),75,84,123,70.0,3.2,24,1.8,109.0,74.0,564.0,573.0,120.0,74.0,134.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,2.0,6.0,6.0,53.0,0.0,From main system,Good,Good,"Suspended, insulated (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, mains gas",,,"Pitched, insulated at rafters",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 53% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"128, Glebe Lane",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2014-12-02 16:04:13,rental (private),15.0,8.0,10014306587.0,Address Matched +220867012602020061117103456709498,"76, The Cockpit",Marden,,TN12 9TQ,668617568,C,C,72,76,Flat,Detached,2020-06-11,E07000110,E14000804,Kent,2020-06-11,none of the above,72,78,204,161.0,2.0,36,1.6,56.0,56.0,353.0,275.0,89.0,89.0,56.0,Single,Y,2nd,Y,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,2.0,2.0,86.0,0.0,From main system,Good,Good,(another dwelling below),NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, partial insulation (assumed)",Average,Average,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 86% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,5.4,,,N,natural,"76, The Cockpit, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1976-1982,2020-06-11 17:10:34,rental (social),,,200003726981.0,Address Matched +597425553152017091311071592930581,"21, Acorn Place",,,ME15 9LX,5176324868,C,C,74,77,Flat,Mid-Terrace,2017-09-11,E07000110,E14000700,Kent,2017-09-13,rental (social),77,80,195,170.0,1.4,34,1.2,48.0,31.0,250.0,227.0,84.0,84.0,41.0,Single,Y,Ground,N,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,43.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 43% of fixed outlets,Average,Average,mains gas (not community),0.0,no corridor,,,,N,natural,"21, Acorn Place",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2017-09-13 11:07:15,rental (social),,,200003683535.0,Address Matched +329002461512018100313235890089060,"11, Barn Meadow",Staplehurst,,TN12 0SY,85105668,D,C,64,74,House,Detached,2018-10-03,E07000110,E14000804,Kent,2018-10-03,marketed sale,55,66,226,160.0,5.4,40,3.9,85.0,85.0,896.0,848.0,137.0,88.0,135.0,Unknown,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,9.0,9.0,100.0,1.0,From main system,Good,Good,"Suspended, limited insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, mains gas",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"11, Barn Meadow, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1996-2002,2018-10-03 13:23:58,owner-occupied,,,200003720874.0,Address Matched +897540006012018081709291790980206,"42, Flaxman Drive",,,ME16 0RU,2653606078,D,B,63,84,Bungalow,Semi-Detached,2018-08-16,E07000110,E14000804,Kent,2018-08-17,marketed sale,63,85,275,89.0,2.5,48,0.8,74.0,39.0,433.0,378.0,117.0,69.0,52.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,13.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Average,Average,"Room heaters, electric",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 13% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"42, Flaxman Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2018-08-17 09:29:17,owner-occupied,,,200003659469.0,Address Matched +809851c37915707e18a36dde850bf0bdb2d5577f0b7c7bdc6672396ccd034ad2,49 GILBERT WAY,,,ME17 3TT,10001497996,B,A,85,94,House,Detached,2021-07-20,E07000110,E14000700,Kent,2021-07-20,new dwelling,85,94,83,25.0,1.8,15,0.6,92.0,92.0,283.0,284.0,94.0,54.0,127.0,standard tariff,,,N,,,100.0,,,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.31,,,,49 GILBERT WAY,Maidstone,Faversham and Mid Kent,MAIDSTONE,2017,2021-07-20 09:02:09,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,12.0,,10094441871.0,Address Matched +1550259429342017062812351756232788,Sawyers,Kenward Road,Yalding,ME18 6JP,5320322578,B,A,84,93,House,Detached,2017-06-28,E07000110,E14000804,Kent,2017-06-28,new dwelling,85,93,82,27.0,1.9,14,0.7,73.0,73.0,308.0,310.0,110.0,58.0,132.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.14 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.18 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.12 W/m-¦K,Very Good,Very Good,"Boiler & underfloor, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Sawyers, Kenward Road, Yalding",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2017-06-28 12:35:17,unknown,13.0,13.0,10093303455.0,Address Matched +413400872512016121512262399969575,"11, Ashford Drive",Kingswood,,ME17 3PA,5589290768,D,C,65,79,Bungalow,Detached,2016-12-15,E07000110,E14000700,Kent,2016-12-15,marketed sale,67,80,216,127.0,3.8,33,2.1,76.0,76.0,839.0,724.0,122.0,82.0,115.0,dual,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,5.0,5.0,100.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,"Room heaters, wood logs",,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"11, Ashford Drive, Kingswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2016-12-15 12:26:23,owner-occupied,,,200003700296.0,Address Matched +38897889402018092207332352382708,Flat 1,203 Boxley Road,,ME14 2TL,494683568,C,C,69,79,Flat,End-Terrace,2018-09-20,E07000110,E14000804,Kent,2018-09-22,rental (private),66,65,278,281.0,2.2,47,2.2,40.0,43.0,317.0,201.0,207.0,138.0,46.0,dual,N,Ground,N,,2603.0,100.0,"double glazing, unknown install date",Normal,1.0,2.0,2.0,100.0,0.0,"Electric immersion, off-peak",Poor,Poor,"Suspended, insulated (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Room heaters, electric",Very Poor,Poor,Programmer and appliance thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,no corridor,,,,N,natural,"Flat 1, 203 Boxley Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2018-09-22 07:33:23,rental (private),,,10014310654.0,Address Matched +1378439549222015102518301970378685,8 Tithe Mews,Harrietsham,,ME17 1FU,8741400478,C,B,79,89,House,Mid-Terrace,2015-10-23,E07000110,E14000700,Kent,2015-10-25,marketed sale,78,88,123,58.0,2.3,22,1.1,72.0,72.0,413.0,413.0,105.0,71.0,106.0,dual,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,More Than Typical,0.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Suspended, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"8 Tithe Mews, Harrietsham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2007 onwards,2015-10-25 18:30:19,owner-occupied,,,10091193430.0,Address Matched +462465836312010033109475593200073,1 Orchard View,Further Fields,Caring Lane,ME17 1TJ,365634768,F,D,37,62,Bungalow,Semi-Detached,2010-03-24,E07000110,E14000700,Kent,2010-03-31,marketed sale,54,51,501,540.0,2.9,75,3.1,42.0,23.0,616.0,322.0,106.0,106.0,37.94,dual,N,NO DATA!,,,2603.0,100.0,double glazing installed before 2002,Normal,0.0,2.0,2.0,20.0,0.0,"Electric immersion, off-peak",Average,Poor,"Solid, limited insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, insulated (assumed)",Good,Good,,,,"Pitched, 200mm loft insulation",Good,Good,"Room heaters, electric",Very Poor,Poor,Programmer and appliance thermostats,Good,Good,Low energy lighting in 20% of fixed outlets,Poor,Poor,electricity - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.44,0.0,N,natural,"1 Orchard View, Further Fields, Caring Lane",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1996-2002,2010-03-31 09:47:55,owner-occupied,,,, +825248399102012081517520907029258,"5, Foxden Drive",Downswood,,ME15 8TQ,3122890078,D,B,58,87,House,Semi-Detached,2012-08-15,E07000110,E14000700,Kent,2012-08-15,rental (private),56,88,275,54.0,3.4,53,0.7,69.0,37.0,450.0,337.0,195.0,63.0,64.0,Single,Y,NODATA!,,,2109.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,12.0,0.0,"From main system, no cylinder thermostat",Poor,Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, mains gas",,,"Pitched, 100mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and boiler energy manager",Good,Good,Low energy lighting in 12% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"5, Foxden Drive, Downswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2012-08-15 17:52:09,rental (private),8.0,1.0,200003686578.0,Address Matched +1679887350252018112000281595989863,"19, The Chenies",,,ME15 6EE,8374051678,C,C,77,79,Flat,End-Terrace,2018-11-19,E07000110,E14000804,Kent,2018-11-20,marketed sale,79,82,150,130.0,1.5,26,1.3,55.0,55.0,254.0,225.0,99.0,86.0,59.0,Unknown,Y,Ground,N,,2107.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,89.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 89% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,3.6,,,N,natural,"19, The Chenies",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2018-11-20 00:28:15,owner-occupied,,,10022895755.0,Address Matched +1716990382222020052617010624368770,Flat 17 Guinevere Point,Waterhouse Avenue,,ME14 2FJ,7208814678,B,B,86,86,Flat,End-Terrace,2020-05-26,E07000110,E14000804,Kent,2020-05-26,new dwelling,90,90,66,66.0,0.8,12,0.8,58.0,58.0,153.0,153.0,70.0,70.0,72.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.18 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Flat 17 Guinevere Point, Waterhouse Avenue",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2020-05-26 17:01:06,unknown,10.0,10.0,10094440125.0,Address Matched +1817209998032020081108274236978506,"23, College Court",Hayle Road,,ME15 6PB,9686541778,D,C,67,77,Flat,Semi-Detached,2020-08-10,E07000110,E14000804,Kent,2020-08-11,marketed sale,66,81,297,166.0,2.1,52,1.2,36.0,36.0,316.0,211.0,157.0,94.0,41.0,Unknown,Y,3rd,N,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,100.0,0.0,From main system,Average,Average,(another dwelling below),NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,4.57,,,N,natural,"23, College Court, Hayle Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2020-08-11 08:27:42,owner-occupied,,,200003693665.0,Address Matched +384932790202009102009552761819718,The Tatt,High Street,Yalding,ME18 6HT,4283098668,F,E,29,40,House,Detached,2009-10-19,E07000110,E14000804,Kent,2009-10-20,marketed sale,33,45,529,419.0,9.9,76,7.5,131.0,65.0,1671.0,1387.0,174.0,130.0,143.91,Single,Y,NO DATA!,,,2106.0,70.0,double glazing installed before 2002,Normal,1.0,8.0,8.0,0.0,2.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Partial double glazing,Poor,Poor,"Cavity wall, as built, partial insulation (assumed)",Average,Average,"Room heaters, wood logs",,,"Pitched, limited insulation (assumed)",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,,0.0,N,natural,"The Tatt, High Street, Yalding",Maidstone,Maidstone and The Weald,MAIDSTONE,,2009-10-20 09:55:27,owner-occupied,,,200003660726.0,Address Matched +1522595187852019022807374292210657,142 Ashford Road,Bearsted,,ME14 4NA,6772720578,C,B,77,86,Bungalow,Detached,2019-02-26,E07000110,E14000700,Kent,2019-02-28,marketed sale,74,83,128,73.0,4.1,23,2.4,98.0,98.0,660.0,576.0,126.0,84.0,181.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,8.0,8.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, with internal insulation",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"142 Ashford Road, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2019-02-28 07:37:42,owner-occupied,,,200003692466.0,Address Matched +79498389062015020616044125668385,"10, St. Philips Avenue",,,ME15 7SN,8258835468,E,C,44,77,House,Mid-Terrace,2015-02-06,E07000110,E14000804,Kent,2015-02-06,marketed sale,37,72,379,137.0,7.6,70,2.8,108.0,71.0,1390.0,738.0,124.0,75.0,109.0,dual,Y,NODATA!,,,2106.0,25.0,double glazing installed before 2002,Normal,0.0,5.0,4.0,46.0,2.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Some double glazing,Poor,Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 46% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"10, St. Philips Avenue",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2015-02-06 16:04:41,owner-occupied,,,200003696732.0,Address Matched +1536622655352017041809121192030556,"26, Orchard Close",Coxheath,,ME17 4HE,5605521578,D,B,56,86,Bungalow,Detached,2017-04-05,E07000110,E14000804,Kent,2017-04-18,marketed sale,49,84,320,88.0,5.1,56,1.5,120.0,60.0,868.0,463.0,154.0,75.0,91.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,1.0,4.0,4.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"26, Orchard Close, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2017-04-18 09:12:11,owner-occupied,,,200003713692.0,Address Matched +677508009742015042322193799052528,3 Priory House,The Priory,East Farleigh,ME15 0EX,9755800968,C,B,69,82,Flat,Semi-Detached,2015-04-22,E07000110,E14000804,Kent,2015-04-23,marketed sale,64,81,193,101.0,5.1,34,2.7,162.0,83.0,832.0,442.0,161.0,132.0,150.0,Single,Y,Ground,N,,2106.0,0.0,not defined,Normal,0.0,5.0,5.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Single glazed,Very Poor,Very Poor,"Sandstone or limestone, as built, no insulation (assumed)",Very Poor,Very Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,no corridor,,,,N,natural,"3 Priory House, The Priory, East Farleigh",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2015-04-23 22:19:37,owner-occupied,,,200003727065.0,Address Matched +1372679969742019062507211331912348,"17, Shirley Way",Bearsted,,ME15 8PP,5718669378,D,B,55,82,House,Semi-Detached,2019-06-24,E07000110,E14000700,Kent,2019-06-25,marketed sale,46,78,323,115.0,5.9,57,2.1,124.0,71.0,907.0,557.0,186.0,73.0,103.0,Unknown,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,25.0,1.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 25% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"17, Shirley Way, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2019-06-25 07:21:13,owner-occupied,,,200003693158.0,Address Matched +513445942552012101710543399929678,"48, Chamberlain Avenue",,,ME16 8NY,6868297768,C,B,69,85,House,Semi-Detached,2012-10-17,E07000110,E14000804,Kent,2012-10-17,marketed sale,69,87,162,67.0,4.0,28,1.5,65.0,65.0,711.0,509.0,134.0,73.0,139.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,7.0,7.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"48, Chamberlain Avenue",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2012-10-17 10:54:33,owner-occupied,10.0,10.0,200003674522.0,Address Matched +855626319002012111413334102329748,"14, Wildfell Close",,,ME5 9RU,30213078,C,A,70,93,House,Mid-Terrace,2012-11-14,E07000110,E14000700,Kent,2012-11-14,marketed sale,72,96,187,7.0,1.9,36,0.1,65.0,32.0,296.0,248.0,120.0,64.0,55.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"14, Wildfell Close",Maidstone,Faversham and Mid Kent,CHATHAM,England and Wales: 1991-1995,2012-11-14 13:33:41,owner-occupied,8.0,0.0,200003727980.0,Address Matched +1818743392962020081815015191588710,Flat 13 Ulysses House,Rosalind Drive,,ME14 2FL,1917951778,B,B,84,84,Flat,End-Terrace,2020-08-18,E07000110,E14000804,Kent,2020-08-18,new dwelling,86,86,87,87.0,1.2,15,1.2,64.0,64.0,191.0,191.0,100.0,100.0,79.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.42 W/m-¦K,Good,Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Flat 13 Ulysses House, Rosalind Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2020-08-18 15:01:51,unknown,14.0,14.0,10094441401.0,Address Matched +920159548352015010617491096050506,"4, Beauworth Park",,,ME15 8EU,5665867078,C,B,71,85,House,Detached,2015-01-06,E07000110,E14000700,Kent,2015-01-06,marketed sale,68,83,193,88.0,3.3,34,1.5,60.0,60.0,568.0,477.0,141.0,90.0,96.0,Single,Y,NODATA!,,,2106.0,100.0,triple glazing,Normal,0.0,7.0,7.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully triple glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"4, Beauworth Park",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2015-01-06 17:49:10,owner-occupied,,,200003684767.0,Address Matched +402800069962018051523404100258068,"88, McKenzie Court",,,ME14 1JU,6045610768,C,B,77,83,Flat,Semi-Detached,2018-05-15,E07000110,E14000804,Kent,2018-05-15,rental,73,73,226,228.0,1.7,38,1.7,38.0,41.0,189.0,116.0,176.0,127.0,44.0,Unknown,N,5th,Y,,2602.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,100.0,0.0,"Electric immersion, off-peak",Poor,Poor,(another dwelling below),NO DATA!,,Fully double glazed,Good,Good,"System built, as built, insulated (assumed)",Good,Good,,,,"Flat, insulated (assumed)",Good,Good,"Room heaters, electric",Very Poor,Poor,Appliance thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,heated corridor,,,,N,natural,"88, McKenzie Court",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2018-05-15 23:40:41,owner-occupied,,,10014306695.0,Address Matched +772203074232012041211510891968005,"85, Perryfield Street",,,ME14 2SZ,7541027968,G,B,3,83,House,End-Terrace,2012-04-12,E07000110,E14000804,Kent,2012-04-12,marketed sale,19,82,603,84.0,11.0,107,1.7,54.0,54.0,2732.0,488.0,73.0,63.0,105.0,Single,Y,NODATA!,,,2601.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,100.0,0.0,Gas multipoint,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, electric",Very Poor,Very Poor,No thermostatic control of room temperature,Poor,Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,NO DATA!,,,0.0,,natural,"85, Perryfield Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2012-04-12 11:51:08,owner-occupied,9.0,9.0,200003669747.0,Address Matched +953449376952014061616364890940215,"21, Park Way",Coxheath,,ME17 4EL,2508600178,C,B,69,89,Bungalow,Semi-Detached,2014-06-16,E07000110,E14000804,Kent,2014-06-16,assessment for green deal,69,91,190,37.0,2.4,36,0.5,67.0,42.0,473.0,358.0,73.0,48.0,67.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,40.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 40% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"21, Park Way, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2014-06-16 16:36:48,owner-occupied,10.0,4.0,200003715120.0,Address Matched +839887899402015101223430101150618,Beult Cottage,Gooseneck Lane,Headcorn,TN27 9NS,8443791078,D,B,64,81,House,End-Terrace,2015-10-09,E07000110,E14000700,Kent,2015-10-12,marketed sale,54,74,220,104.0,5.1,43,2.6,103.0,69.0,826.0,618.0,137.0,88.0,120.0,Single,Y,NODATA!,,,2106.0,50.0,double glazing installed before 2002,Normal,1.0,6.0,6.0,50.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Partial double glazing,Poor,Poor,"Solid brick, as built, no insulation (assumed)",Poor,Poor,"Room heaters, coal",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"Beult Cottage, Gooseneck Lane, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,England and Wales: before 1900,2015-10-12 23:43:01,owner-occupied,,,200003722897.0,Address Matched +1020665838612013100714491897079817,"87, Badger Road",,,ME5 8XR,8721874178,E,B,53,89,House,End-Terrace,2013-10-07,E07000110,E14000700,Kent,2013-10-07,none of the above,49,91,317,41.0,4.0,61,0.6,59.0,40.0,655.0,333.0,155.0,68.0,65.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,50.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"87, Badger Road",Maidstone,Faversham and Mid Kent,CHATHAM,England and Wales: 1950-1966,2013-10-07 14:49:18,owner-occupied,6.0,3.0,200003673537.0,Address Matched +1776653154952020011316262425900261,2 Neverend Farm Barns,Pye Corner,Ulcombe,ME17 1EF,2113458678,C,B,74,88,House,Semi-Detached,2020-01-13,E07000110,E14000700,Kent,2020-01-13,new dwelling,85,96,74,3.0,1.5,15,0.3,76.0,76.0,307.0,307.0,271.0,163.0,98.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,"From main system, flue gas heat recovery",Poor,Very Good,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.18 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, LPG",Very Poor,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,bottled LPG,,NO DATA!,,,,,NO DATA!,"2 Neverend Farm Barns, Pye Corner, Ulcombe",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2020-01-13 16:26:24,unknown,5.0,5.0,10094444490.0,Address Matched +118817569222018052417173218048628,Flat 15 Park House,Park Avenue,,ME14 5HW,2126688468,D,C,66,80,Flat,Semi-Detached,2018-04-24,E07000110,E14000804,Kent,2018-05-24,marketed sale,48,68,387,232.0,3.8,65,2.3,48.0,48.0,487.0,232.0,150.0,127.0,59.0,dual,N,1st,N,,2401.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,100.0,0.0,"Electric immersion, off-peak",Average,Poor,(another dwelling below),NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,Portable electric heaters (assumed),,,(another dwelling above),,,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,unheated corridor,1.88,,,N,natural,"Flat 15 Park House, Park Avenue",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2018-05-24 17:17:32,owner-occupied,,,200003705832.0,Address Matched +733379518112011121517471290999695,10 Oak Mews,Bicknor Road,,ME15 9PS,6533804968,B,B,81,88,Flat,Mid-Terrace,2011-12-15,E07000110,E14000700,Kent,2011-12-15,rental (private),82,83,166,157.0,1.1,29,1.0,45.0,27.0,44.0,53.0,174.0,81.0,37.19,Single,N,1st,N,,2605.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,17.0,0.0,"Electric immersion, standard tariff",Very Poor,Very Poor,(other premises below),,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,(another dwelling above),,,"Room heaters, electric",Very Poor,Very Poor,Programmer and room thermostats,Good,Good,Low energy lighting in 17% of fixed outlets,Poor,Poor,electricity (not community),0.0,heated corridor,,2.3,0.0,,natural,"10 Oak Mews, Bicknor Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2007 onwards,2011-12-15 17:47:12,rental (private),6.0,1.0,10022897008.0,Address Matched +597356635012016012622485092260388,4 Goulsden,Charlton Lane,West Farleigh,ME15 0NR,3899524868,D,A,60,121,Bungalow,End-Terrace,2016-01-26,E07000110,E14000804,Kent,2016-01-26,rental (social),30,86,343,-157.0,5.4,119,0.6,49.0,33.0,379.0,282.0,238.0,90.0,46.0,Single,N,NODATA!,,,2101.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,50.0,0.0,"From main system, no cylinder thermostat",Poor,Very Poor,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, coal",Average,Very Poor,No time or thermostatic control of room temperature,Very Poor,Very Poor,Low energy lighting in 50% of fixed outlets,Good,Good,house coal (not community),0.0,NO DATA!,,,,N,natural,"4 Goulsden, Charlton Lane, West Farleigh",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2016-01-26 22:48:50,rental (social),,,200003663883.0,Address Matched +813870bda1dce4ed26ba451f6c836980dbcc8ead7e8e3359d9592374c09dd497,9 Fishers Road,Staplehurst,,TN12 0DD,10001606435,C,B,70,84,House,End-Terrace,2021-09-22,E07000110,E14000804,Kent,2021-09-23,marketed sale,67,82,199,95.0,3.0,35,1.5,70.0,70.0,506.0,443.0,91.0,64.0,85.0,Single,Y,,,,,100.0,double glazing installed during or after 2002,Normal,1.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.41,0.0,N,natural,"9 Fishers Road, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1967-1975,2021-09-23 20:42:27,Owner-occupied,18.0,,200003679347.0,Energy Assessor +1422403632632016031017345047078908,"127, Sutton Road",,,ME15 9AA,3817913478,D,B,65,88,House,Semi-Detached,2016-02-05,E07000110,E14000700,Kent,2016-03-10,FiT application,59,87,247,67.0,4.1,44,1.1,60.0,60.0,798.0,445.0,77.0,44.0,93.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"127, Sutton Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2016-03-10 17:34:50,owner-occupied,,,200003713319.0,Address Matched +483335383112015040109105798750573,"22, Meades Close",Marden,,TN12 9QG,5387385768,D,B,68,83,House,End-Terrace,2015-03-30,E07000110,E14000804,Kent,2015-04-01,marketed sale,65,81,217,105.0,2.9,38,1.5,85.0,50.0,525.0,490.0,102.0,67.0,77.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,1.0,4.0,4.0,29.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 29% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"22, Meades Close, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1983-1990,2015-04-01 09:10:57,owner-occupied,,,200003668941.0,Address Matched +541178199902010091622171474909768,"108, Abingdon Road",,,ME16 9EH,3923499768,D,C,60,71,House,Detached,2010-09-16,E07000110,E14000804,Kent,2010-09-16,marketed sale,53,67,305,215.0,5.2,51,3.7,61.0,61.0,743.0,549.0,188.0,136.0,101.42,dual,Y,NO DATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,100.0,0.0,From main system,Average,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Average,Good,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.37,0.0,N,natural,"108, Abingdon Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2010-09-16 22:17:14,owner-occupied,,,200003665270.0,Address Matched +814a8c0b6e4eb052abaa4230b2c3fe3efcfa42eb72df2c2fdd85423f7f6c38ee,12 ROUND WOOD CLOSE,WALDERSLADE,,ME5 9UL,10001354889,D,A,62,103,House,Detached,2021-07-10,E07000110,E14000700,Kent,2021-07-10,marketed sale,57,99,249,-14.0,4.5,44,-0.1,84.0,84.0,775.0,473.0,165.0,71.0,103.0,Single,Y,,,,,100.0,"double glazing, unknown install date",Normal,0.0,6.0,5.0,100.0,0.0,From main system,Average,Average,"Suspended, limited insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,Portable electric heaters (assumed),,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.37,0.0,N,natural,"12 ROUND WOOD CLOSE, WALDERSLADE",Maidstone,Faversham and Mid Kent,CHATHAM,England and Wales: 1996-2002,2021-07-10 10:13:00,Owner-occupied,14.0,,200003725948.0,Energy Assessor +788979909922012051613573678168702,"15, Pope Street",,,ME16 8LQ,773048968,E,B,41,82,House,End-Terrace,2012-05-16,E07000110,E14000804,Kent,2012-05-16,marketed sale,38,82,391,89.0,5.7,75,1.3,63.0,42.0,920.0,418.0,119.0,73.0,75.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,50.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"15, Pope Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2012-05-16 13:57:36,owner-occupied,10.0,5.0,200003655802.0,Address Matched +1535999429842018083011415352187208,"20, Admiral Way",Marden,,TN12 9FN,3833221578,B,A,86,93,House,Detached,2018-08-30,E07000110,E14000804,Kent,2018-08-30,new dwelling,85,92,72,31.0,2.3,13,1.0,93.0,93.0,348.0,349.0,103.0,56.0,179.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.12 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.27 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.15 W/m-¦K,Good,Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"20, Admiral Way, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,NO DATA!,2018-08-30 11:41:53,owner-occupied,18.0,18.0,10093303260.0,Address Matched +817114199222012072323373940378092,"20, Woolley Road",,,ME15 8PZ,9483930078,C,B,72,87,House,Semi-Detached,2012-07-23,E07000110,E14000700,Kent,2012-07-23,rental (social),71,88,161,55.0,2.6,31,0.9,61.0,46.0,370.0,352.0,156.0,76.0,83.0,Single,Y,NODATA!,,,,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 67% of fixed outlets,,Good,mains gas (not community),0.0,NO DATA!,,,,,natural,"20, Woolley Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2012-07-23 23:37:39,rental (social),,,200003685007.0,Address Matched +1059199082152013121214282395979413,"17, Usborne Close",Staplehurst,,TN12 0LD,4364257178,E,B,51,85,House,End-Terrace,2013-12-12,E07000110,E14000804,Kent,2013-12-12,marketed sale,46,85,297,69.0,5.6,57,1.3,78.0,55.0,895.0,443.0,198.0,76.0,97.0,Unknown,Y,NODATA!,,,2107.0,100.0,double glazing installed before 2002,Normal,0.0,6.0,6.0,57.0,0.0,From main system,Average,Average,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 57% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"17, Usborne Close, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1950-1966,2013-12-12 14:28:23,owner-occupied,7.0,4.0,200003677633.0,Address Matched +1131258644432014042620115927278100,"27, Radnor Close",,,ME14 2PW,4097162278,C,B,80,81,Flat,Semi-Detached,2014-04-26,E07000110,E14000804,Kent,2014-04-26,rental (private),85,87,111,100.0,1.0,21,0.9,33.0,33.0,165.0,162.0,122.0,106.0,46.0,Single,Y,1st,N,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,100.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,heated corridor,,,0.0,,natural,"27, Radnor Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2014-04-26 20:11:59,rental (private),6.0,6.0,10022897054.0,Address Matched +1703543429062019030817275273588271,"10, Bermelie Fields",Barming,,ME16 9FP,7785223678,B,A,84,96,House,Semi-Detached,2019-03-08,E07000110,E14000804,Kent,2019-03-08,new dwelling,87,98,82,-4.0,1.2,14,0.0,64.0,64.0,201.0,201.0,72.0,42.0,80.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"10, Bermelie Fields, Barming",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2019-03-08 17:27:52,unknown,1.0,1.0,10093305967.0,Address Matched +504912749222010062510043817928330,"23, Micawber Close",,,ME5 9JZ,3159437768,D,C,65,76,House,Detached,2010-06-22,E07000110,E14000700,Kent,2010-06-25,marketed sale,60,73,230,160.0,5.7,38,4.0,158.0,79.0,759.0,554.0,173.0,147.0,148.613,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,6.0,6.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, partial insulation (assumed)",Average,Average,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.459,0.0,N,natural,"23, Micawber Close",Maidstone,Faversham and Mid Kent,CHATHAM,England and Wales: 1976-1982,2010-06-25 10:04:38,owner-occupied,,,200003708572.0,Address Matched +668355649002011081914262887999518,"6, Perry Street",,,ME14 2RP,7090449868,D,D,61,66,House,Mid-Terrace,2011-08-19,E07000110,E14000804,Kent,2011-08-19,marketed sale,66,71,248,210.0,3.2,40,2.7,66.0,44.0,663.0,576.0,90.0,90.0,81.26,Single,Y,NODATA!,,,2102.0,100.0,double glazing installed during or after 2002,Normal,1.0,3.0,3.0,50.0,2.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,2.41,0.0,,natural,"6, Perry Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2011-08-19 14:26:28,owner-occupied,10.0,5.0,200003669577.0,Address Matched +1393385292912016021709025291960140,"15, Lambert Drive",,,ME15 8WN,1022211478,B,B,82,82,Flat,NO DATA!,2016-02-17,E07000110,E14000700,Kent,2016-02-17,new dwelling,85,85,104,104.0,1.1,18,1.1,47.0,47.0,228.0,228.0,77.0,77.0,63.0,standard tariff,,top floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.27 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.14 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"15, Lambert Drive",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2016-02-17 09:02:52,unknown,1.0,1.0,10091194530.0,Address Matched +964784629962015011912270970918885,1 Crismill Cottage,Crismill Lane,Bearsted,ME14 4NT,8738280178,E,C,53,70,Bungalow,Semi-Detached,2015-01-19,E07000110,E14000700,Kent,2015-01-19,marketed sale,50,67,287,183.0,7.0,46,4.4,155.0,77.0,1408.0,1165.0,139.0,87.0,152.0,Single,Y,NODATA!,,,2106.0,80.0,double glazing installed before 2002,Normal,0.0,7.0,7.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Mostly double glazing,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"1 Crismill Cottage, Crismill Lane, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1900-1929,2015-01-19 12:27:09,owner-occupied,,,200003721944.0,Address Matched +740140541452012012315350398220293,"3, Disraeli Close",,,ME15 9LE,2318184968,C,C,69,70,Bungalow,Semi-Detached,2012-01-23,E07000110,E14000700,Kent,2012-01-23,rental (social),71,72,227,220.0,2.0,43,1.9,43.0,27.0,354.0,356.0,70.0,70.0,45.13,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,2.0,2.0,40.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 40% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,2.47,0.0,,natural,"3, Disraeli Close",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2012-01-23 15:35:03,rental (social),5.0,2.0,200003682450.0,Address Matched +816c3502e6b9b955dd521994a293cd4f7001f6fdfa84bbedf8d0bc68894eba23,4 Fiji Terrace,Invicta Park,,ME14 2NZ,10001479862,D,B,67,86,House,Mid-Terrace,2021-08-25,E07000110,E14000804,Kent,2021-08-25,Stock condition survey,65,85,230,80.0,2.8,41,1.0,77.0,77.0,482.0,375.0,88.0,61.0,70.0,dual,Y,,,,,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,82.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Average,Average,,,,"Flat, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 82% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.28,0.0,N,natural,"4 Fiji Terrace, Invicta Park",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2021-08-25 15:28:12,Rented (social),11.0,,200003724062.0,Energy Assessor +816c2f8684f0380cd8b547d968e834f5790da44c25d89bd6f0c80b2a573068b8,Flat 14,Tovil Green Court,Tovil Green Lane,ME15 6NE,10001684079,B,B,83,83,Flat,Mid-Terrace,2021-08-20,E07000110,E14000804,Kent,2021-08-20,rental,87,87,100,100.0,0.9,17,0.9,53.0,53.0,122.0,122.0,109.0,109.0,54.0,Unknown,Y,01,N,,,100.0,triple glazing,Normal,1.0,2.0,2.0,100.0,0.0,Community scheme,Good,Good,(another dwelling below),,,Fully triple glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,Community scheme,Good,Good,"Flat rate charging, room thermostat only",Poor,Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (community),0.0,heated corridor,,2.45,0.0,N,natural,"Flat 14, Tovil Green Court, Tovil Green Lane",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007-2011,2021-08-20 15:18:50,Rented (private),6.0,,10014306963.0,Energy Assessor +570914449852010120211230590009188,Yew Tree Cottage,Lenham Road,Harrietsham,ME17 1NA,1865902868,E,D,53,56,House,Semi-Detached,2010-12-02,E07000110,E14000700,Kent,2010-12-02,marketed sale,45,47,325,306.0,5.4,67,5.2,85.0,42.0,699.0,683.0,150.0,150.0,80.6,Unknown,N,NO DATA!,,,2104.0,95.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,0.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Mostly double glazing,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, oil",Good,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,oil - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.0,0.0,N,natural,"Yew Tree Cottage, Lenham Road, Harrietsham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2010-12-02 11:23:05,owner-occupied,,,200003702486.0,Address Matched +1009556809942019032811100212412338,2 Poultry Farm Cottages,Plain Road,Marden,TN12 9LS,2946304178,D,A,55,94,House,Semi-Detached,2019-03-27,E07000110,E14000804,Kent,2019-03-28,marketed sale,60,95,256,4.0,3.3,42,0.0,52.0,52.0,612.0,618.0,279.0,134.0,78.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,"Electric immersion, standard tariff",Very Poor,Poor,Average thermal transmittance 0.35 W/m+é-¦K,Average,Average,Fully double glazed,Good,Good,Average thermal transmittance 0.26 W/m+é-¦K,Good,Good,"Room heaters, wood logs",,,Average thermal transmittance 0.21 W/m+é-¦K,Good,Good,"Boiler and radiators, electric",Very Poor,Poor,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"2 Poultry Farm Cottages, Plain Road, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,NO DATA!,2019-03-28 11:10:02,unknown,9.0,9.0,200003708409.0,Address Matched +859578409232012112312593316278993,"78, Trevor Drive",,,ME16 0QX,306933078,E,C,49,77,House,Detached,2012-11-23,E07000110,E14000804,Kent,2012-11-23,marketed sale,44,74,311,123.0,5.8,60,2.4,56.0,56.0,873.0,597.0,220.0,69.0,97.0,Single,Y,NODATA!,,,2107.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,92.0,0.0,"From main system, no cylinder thermostat",Poor,Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 92% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"78, Trevor Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2012-11-23 12:59:33,owner-occupied,12.0,11.0,200003705352.0,Address Matched +103036879222016052315424617278596,5 Fancy Row,Thurnham Lane,Bearsted,ME14 4PL,9188747468,D,A,66,114,House,Mid-Terrace,2016-05-23,E07000110,E14000700,Kent,2016-05-23,marketed sale,63,112,255,-120.0,2.7,45,-1.1,50.0,50.0,499.0,352.0,106.0,60.0,60.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,1.0,3.0,3.0,79.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 79% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,2.29,,N,natural,"5 Fancy Row, Thurnham Lane, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1900-1929,2016-05-23 15:42:46,owner-occupied,,,200003695503.0,Address Matched +1717017619142019042907355161412658,"20, Adam Close",Coxheath,,ME17 4QU,8109714678,D,C,65,75,House,Detached,2019-04-25,E07000110,E14000804,Kent,2019-04-29,marketed sale,52,63,216,150.0,6.6,46,4.9,101.0,101.0,958.0,894.0,137.0,83.0,145.0,Unknown,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,8.0,8.0,83.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,"Room heaters, coal",,,"Pitched, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 83% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"20, Adam Close, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2019-04-29 07:35:51,owner-occupied,,,200003714956.0,Address Matched +818dc75b0746ed0cb32dee04d99eba7dffa2b81d62633530beadcc5d8aeeb699,47 Bower Lane,,,ME16 8EJ,10001526354,C,B,69,88,House,Mid-Terrace,2021-08-27,E07000110,E14000804,Kent,2021-08-30,rental,65,86,193,63.0,3.6,34,1.2,82.0,82.0,604.0,391.0,99.0,69.0,107.0,Unknown,Y,,,,,100.0,"double glazing, unknown install date",Normal,1.0,8.0,8.0,100.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 350 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.32,0.0,N,natural,47 Bower Lane,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2021-08-30 12:24:28,Rented (private),13.0,,200003667615.0,Energy Assessor +1710684739962019071710242633238961,"4, Parker Road",Boughton Monchelsea,,ME17 4SN,6387373678,B,B,84,84,Flat,Detached,2019-07-17,E07000110,E14000804,Kent,2019-07-17,new dwelling,87,87,82,82.0,1.1,14,1.1,63.0,63.0,185.0,185.0,70.0,70.0,75.0,standard tariff,,top floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.19 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.1 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"4, Parker Road, Boughton Monchelsea",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2019-07-17 10:24:26,unknown,4.0,4.0,10094441234.0,Address Matched +81a93bd81c405a86b21646cff5fbee5d15753eaf586865a6078603c6bdeceece,2 ASH WAY,,,TN27 9FT,10001391775,B,A,85,93,House,Detached,2021-08-09,E07000110,E14000700,Kent,2021-08-09,new dwelling,85,94,80,25.0,1.9,14,0.6,92.0,92.0,289.0,290.0,97.0,54.0,135.0,standard tariff,,,N,,,100.0,,,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.12 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.43,,,,2 ASH WAY,Maidstone,Faversham and Mid Kent,HEADCORN,2018,2021-08-09 12:35:24,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,10.0,,10094443434.0,Energy Assessor +397795030922009111715234369938121,62 Oxford Gardens,,,ME15 8FJ,2610389668,C,C,69,69,House,End-Terrace,2009-11-17,E07000110,E14000700,Kent,2009-11-17,new dwelling,79,79,146,144.0,2.5,22,2.5,70.0,56.0,391.0,394.0,198.0,198.0,113.29,standard tariff,,NO DATA!,,,2207.0,,NO DATA!,NO DATA!,,,,6.0,0.0,From main system,Poor,Good,Average thermal transmittance 0.18 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.28 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.12 W/m?K,Very Good,Very Good,"Air source heat pump, radiators, electric",Poor,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",0.0,NO DATA!,,2.4,,,NO DATA!,62 Oxford Gardens,Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2009-11-17 15:23:43,,8.0,6.0,10014309001.0,Address Matched +793750549222012052514521898178852,Burrcott,Gravelly Bottom Road,Kingswood,ME17 3PZ,5944478968,D,B,68,86,Bungalow,Detached,2012-05-23,E07000110,E14000700,Kent,2012-05-25,marketed sale,66,84,165,67.0,4.2,32,1.8,134.0,67.0,632.0,531.0,122.0,79.0,133.0,dual,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,7.0,7.0,0.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 75 mm loft insulation",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"Burrcott, Gravelly Bottom Road, Kingswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2012-05-25 14:52:18,owner-occupied,18.0,0.0,, +597209529042011102720072882492038,"24, Leicester Road",,,ME15 7QA,1091624868,C,C,73,74,House,Semi-Detached,2011-10-27,E07000110,E14000700,Kent,2011-10-27,rental (social),73,74,159,154.0,2.7,30,2.6,68.0,47.0,429.0,432.0,107.0,107.0,89.4,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,56.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 56% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,2.38,0.0,,natural,"24, Leicester Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2011-10-27 20:07:28,rental (social),9.0,5.0,200003712838.0,Address Matched +1099656906432014062607534982278908,"1, Forest Hill",,,ME15 6UU,832930278,D,B,58,87,House,Semi-Detached,2014-06-25,E07000110,E14000804,Kent,2014-06-26,none of the above,55,88,269,58.0,3.7,52,0.8,69.0,44.0,671.0,373.0,121.0,76.0,72.0,Single,Y,NODATA!,,,2107.0,90.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,44.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Mostly double glazing,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Roof room(s), ceiling insulated",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 44% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"1, Forest Hill",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2014-06-26 07:53:49,owner-occupied,9.0,4.0,200003682617.0,Address Matched +927855329022013050922590598018077,"7, Rookery Court",Marden,,TN12 9AZ,7956228078,B,B,82,83,Flat,Detached,2013-05-09,E07000110,E14000804,Kent,2013-05-09,new dwelling,85,86,90,81.0,1.4,17,1.3,92.0,54.0,235.0,240.0,81.0,81.0,85.0,standard tariff,,top floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.29 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.13 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 29% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"7, Rookery Court, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,NO DATA!,2013-05-09 22:59:05,NO DATA!,21.0,6.0,10014313265.0,Address Matched +146170792832018120714440033068794,"4, Tasker Close",Bearsted,,ME15 8NZ,9413761568,D,B,64,88,House,Semi-Detached,2018-12-07,E07000110,E14000700,Kent,2018-12-07,marketed sale,62,88,281,67.0,2.8,49,0.7,87.0,43.0,394.0,326.0,171.0,63.0,57.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"4, Tasker Close, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2018-12-07 14:44:00,owner-occupied,,,200003693213.0,Address Matched +14019392922020062220492538338480,Apartment 20 Bluecoats Yard,Knightrider Street,,ME15 6LD,8352948468,B,B,82,83,Flat,End-Terrace,2020-06-17,E07000110,E14000804,Kent,2020-06-22,rental (private),85,85,103,97.0,1.3,18,1.2,98.0,65.0,198.0,201.0,97.0,97.0,73.0,Single,Y,1st,N,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,50.0,0.0,From main system,Good,Good,(another dwelling below),NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,heated corridor,,,,N,natural,"Apartment 20 Bluecoats Yard, Knightrider Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2020-06-22 20:49:25,rental (private),,,10014307478.0,Address Matched +829210929602012082816511507122848,1 Hillside,Maidstone Road,Headcorn,TN27 9RP,3655521078,D,B,63,83,House,Semi-Detached,2012-08-24,E07000110,E14000700,Kent,2012-08-28,rental (private),62,84,205,75.0,3.5,39,1.3,74.0,49.0,582.0,451.0,135.0,70.0,91.0,Unknown,Y,NODATA!,,,2107.0,100.0,double glazing installed before 2002,Normal,1.0,5.0,5.0,50.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"1 Hillside, Maidstone Road, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,England and Wales: 1900-1929,2012-08-28 16:51:15,rental (private),10.0,5.0,200003698239.0,Address Matched +998706142262020032712243103038420,"144, Merton Road",Bearsted,,ME15 8LS,2010423178,C,B,73,89,House,Mid-Terrace,2020-03-27,E07000110,E14000700,Kent,2020-03-27,rental (private),73,89,191,58.0,2.1,34,0.7,51.0,51.0,369.0,327.0,94.0,62.0,62.0,Unknown,Y,NODATA!,,,2107.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"144, Merton Road, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1976-1982,2020-03-27 12:24:31,rental (private),,,200003686118.0,Address Matched +605296989402019040309254186410628,"2, North Street",Headcorn,,TN27 9NN,5444384868,D,C,61,79,House,Mid-Terrace,2019-04-02,E07000110,E14000700,Kent,2019-04-03,marketed sale,55,75,298,148.0,3.5,53,1.8,75.0,50.0,553.0,492.0,128.0,75.0,66.0,Single,Y,NODATA!,,,2106.0,95.0,double glazing installed before 2002,Normal,1.0,4.0,4.0,50.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Mostly double glazing,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"2, North Street, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,England and Wales: before 1900,2019-04-03 09:25:41,owner-occupied,,,200003699905.0,Address Matched +1024284609202013101621275817579978,Flat A,"44, Bower Lane",,ME16 8EJ,1218505178,E,E,42,42,Flat,NO DATA!,2013-10-13,E07000110,E14000804,Kent,2013-10-16,marketed sale,48,48,435,435.0,3.7,77,3.7,32.0,32.0,777.0,777.0,165.0,165.0,48.0,standard tariff,,ground floor,,,,,NO DATA!,NO DATA!,,,,,0.0,"Electric immersion, standard tariff",Very Poor,Very Poor,Average thermal transmittance 1.16 W/m?K,Very Poor,Very Poor,Fully double glazed,Very Good,Very Good,Average thermal transmittance 0.42 W/m?K,Good,Good,,,,Average thermal transmittance 0 W/m?K,Very Good,Very Good,Electric storage heaters,Very Poor,Very Poor,Celect-type controls,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"Flat A, 44, Bower Lane",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2013-10-16 21:27:58,NO DATA!,0.0,0.0,10014315384.0,Address Matched +1683866299062018120515401671658628,"8, College Walk",,,ME15 6PA,2719971678,E,B,42,83,Bungalow,Detached,2018-12-05,E07000110,E14000804,Kent,2018-12-05,rental (private),44,64,472,270.0,4.1,80,2.3,60.0,43.0,934.0,508.0,179.0,81.0,51.0,dual,N,NODATA!,,,2602.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,50.0,0.0,Electric instantaneous at point of use,Very Poor,Poor,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,,,,"Flat, insulated",Good,Good,"Room heaters, electric",Very Poor,Poor,Appliance thermostats,Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,electricity (not community),0.0,NO DATA!,,,,N,natural,"8, College Walk",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2018-12-05 15:40:16,rental (private),,,200003728538.0,Address Matched +170445519762012033120052072198212,"18, Gorham Drive",Downswood,,ME15 8UU,1734172568,C,C,71,74,Flat,Semi-Detached,2012-03-31,E07000110,E14000700,Kent,2012-03-31,rental (private),54,57,400,376.0,3.0,71,2.8,46.0,29.0,269.0,238.0,110.0,110.0,42.0,dual,N,1st,Y,,2401.0,0.0,not defined,Normal,0.0,2.0,2.0,40.0,0.0,"Electric immersion, off-peak",Average,Very Poor,(other premises below),,,Single glazed,Very Poor,Very Poor,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,"Pitched, insulated (assumed)",Good,Good,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 40% of fixed outlets,Average,Average,electricity (not community),0.0,no corridor,,2.35,0.0,,natural,"18, Gorham Drive, Downswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1996-2002,2012-03-31 20:05:20,rental (private),5.0,2.0,200003691399.0,Address Matched +384301980542009102018210669812108,"7, Fauchons Close",Bearsted,,ME14 4BB,3566888668,E,D,54,63,Bungalow,Detached,2009-10-20,E07000110,E14000700,Kent,2009-10-20,marketed sale,47,56,332,270.0,6.7,56,5.4,88.0,61.0,952.0,809.0,148.0,112.0,88.84,Single,Y,NO DATA!,,,2107.0,100.0,double glazing installed before 2002,Normal,1.0,4.0,4.0,57.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Roof room(s), insulated",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 57% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,,0.0,N,natural,"7, Fauchons Close, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,,2009-10-20 18:21:06,owner-occupied,,,200003687630.0,Address Matched +1002110967312013090515463794920311,The Yeoman,3 Chiltern Place,"The Street, Detling",ME14 3JT,3168743178,B,B,86,86,House,Detached,2012-05-10,E07000110,E14000700,Kent,2013-09-05,new dwelling,85,85,68,68.0,3.1,13,3.1,91.0,91.0,531.0,531.0,102.0,102.0,238.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.17 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.28 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.15 W/m?K,Good,Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"The Yeoman, 3 Chiltern Place, The Street, Detling",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2013-09-05 15:46:37,NO DATA!,0.0,0.0,10014314735.0,Address Matched +816501045912012072116083393220406,"15, Meadow Walk",,,ME15 7RY,4641530078,F,B,38,81,House,Semi-Detached,2012-07-21,E07000110,E14000804,Kent,2012-07-21,marketed sale,35,80,410,96.0,6.5,79,1.6,81.0,46.0,1029.0,470.0,158.0,69.0,82.0,Single,Y,NODATA!,,,2107.0,90.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,22.0,1.0,From main system,Average,Average,"Suspended, no insulation (assumed)",,,Mostly double glazing,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 22% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"15, Meadow Walk",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2012-07-21 16:08:33,owner-occupied,9.0,2.0,200003695384.0,Address Matched +1694634629132019020107173452778705,"20, Belmont Close",,,ME16 9DY,2522752678,D,C,64,80,House,Semi-Detached,2019-01-31,E07000110,E14000804,Kent,2019-02-01,marketed sale,58,75,240,129.0,4.1,42,2.2,106.0,68.0,705.0,601.0,84.0,53.0,97.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,2.0,6.0,6.0,43.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 43% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"20, Belmont Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2019-02-01 07:17:34,owner-occupied,,,200003664781.0,Address Matched +1519878869922017021511393030698993,Flat 16 Scotney Gardens,St. Peters Street,,ME16 0GR,9324600578,C,B,78,82,Flat,End-Terrace,2017-02-11,E07000110,E14000804,Kent,2017-02-15,marketed sale,67,70,229,213.0,2.4,39,2.2,53.0,53.0,218.0,170.0,173.0,142.0,61.0,dual,N,1st,N,,2401.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,"Electric immersion, off-peak",Poor,Poor,"To external air, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,(another dwelling above),,,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,unheated corridor,1.54,,,N,natural,"Flat 16 Scotney Gardens, St. Peters Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2017-02-15 11:39:30,owner-occupied,,,10022893384.0,Address Matched +1728638209342019061317245563519178,"191, Linton Road",Loose,,ME15 0AS,309505678,C,B,74,85,House,Detached,2019-06-13,E07000110,E14000804,Kent,2019-06-13,marketed sale,71,82,152,88.0,4.2,27,2.5,183.0,94.0,628.0,604.0,127.0,76.0,156.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,8.0,8.0,4.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Timber frame, as built, insulated (assumed)",Good,Good,"Room heaters, mains gas",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 4% of fixed outlets,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"191, Linton Road, Loose",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2019-06-13 17:24:55,owner-occupied,,,200003663305.0,Address Matched +1513284069332017012316371319278100,"4, Farleigh Heights",Tovil,,ME15 6XN,6069169478,B,A,83,95,House,Semi-Detached,2017-01-23,E07000110,E14000804,Kent,2017-01-23,new dwelling,85,96,93,12.0,1.4,16,0.2,59.0,59.0,248.0,248.0,79.0,46.0,85.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.12 W/m+é-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.19 W/m+é-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.10 W/m+é-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"4, Farleigh Heights, Tovil",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2017-01-23 16:37:13,unknown,30.0,30.0,10091195965.0,Address Matched +81e7f3714f62db8a682ee0279342c857264f9eb9bf94878ace8c8d7740062dc8,9 Sapphire Park,Sutton Valence,,ME17 3XZ,10001559374,B,A,85,95,House,Detached,2021-08-25,E07000110,E14000700,Kent,2021-08-25,new dwelling,86,97,80,9.0,1.5,14,0.2,85.0,85.0,218.0,220.0,95.0,53.0,103.0,standard tariff,,,N,,,100.0,,,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.19 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.1 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.385,,,,"9 Sapphire Park, Sutton Valence",Maidstone,Faversham and Mid Kent,MAIDSTONE,2021,2021-08-25 11:06:14,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,4.0,,10095449279.0,Address Matched +225481185912009020315553403010357,"28, Old School Place",,,ME14 1EQ,3766537568,D,D,65,67,Flat,Detached,2009-02-03,E07000110,E14000804,Kent,2009-02-03,rental (private),61,62,376,370.0,2.7,56,2.6,54.0,27.0,273.0,282.0,106.0,106.0,47.4,dual,N,Ground,N,3.0,2402.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,0.0,0.0,"Electric immersion, off-peak",Average,Poor,"Solid, limited insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,Portable electric heaters,,,(another dwelling above),,,Electric storage heaters,Poor,Poor,Automatic charge control,Average,Average,No low energy lighting,Very Poor,Very Poor,electricity - this is for backwards compatibility only and should not be used,0.0,unheated corridor,5.2,2.4,0.0,N,natural,"28, Old School Place",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2009-02-03 15:55:34,rental (private),,,200003729197.0,Address Matched +967904624452016072916380690260112,"59, Bower Lane",,,ME16 8ED,1280401178,D,C,68,79,House,Semi-Detached,2016-07-29,E07000110,E14000804,Kent,2016-07-29,marketed sale,63,75,189,111.0,4.0,35,2.4,69.0,69.0,723.0,654.0,114.0,76.0,114.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,2.0,5.0,5.0,100.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, with external insulation",Good,Good,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,2.64,,N,natural,"59, Bower Lane",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2016-07-29 16:38:06,owner-occupied,,,200003667545.0,Address Matched +203510110202009010720234654610938,"85, Heath Road",,,ME16 9LD,8278516568,D,C,57,74,House,Semi-Detached,2009-01-07,E07000110,E14000804,Kent,2009-01-07,none of the above,51,70,302,188.0,6.0,50,3.7,109.0,58.0,764.0,485.0,149.0,129.0,133.6,Single,Y,NO DATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,1.0,6.0,6.0,10.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, mains gas",,,"Pitched, 75mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Poor,Poor,Low energy lighting in 10% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,0.0,N,natural,"85, Heath Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2009-01-07 20:23:46,unknown,,,200003681651.0,Address Matched +586291719932011012913274843268405,"10, Victoria Street",,,ME16 8HY,1583433868,C,C,70,72,House,Mid-Terrace,2011-01-29,E07000110,E14000804,Kent,2011-01-29,marketed sale,66,67,234,227.0,3.2,38,3.2,79.0,45.0,523.0,529.0,102.0,102.0,82.92,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,25.0,0.0,From main system,Very Good,Very Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 100 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 25% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.53,0.0,N,natural,"10, Victoria Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2011-01-29 13:27:48,owner-occupied,,,200003667891.0,Address Matched +920035314612014051309554096940403,"3, Butler Close",Harrietsham,,ME17 1FR,4302467078,B,B,87,89,House,Detached,2014-05-13,E07000110,E14000700,Kent,2014-05-13,new dwelling,88,90,66,54.0,1.5,12,1.2,65.0,65.0,334.0,335.0,99.0,53.0,128.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.17 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"3, Butler Close, Harrietsham",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2014-05-13 09:55:40,owner-occupied,17.0,17.0,10014314941.0,Address Matched +81f44658f486e6cd4d99a8a09b2628c37edb88373f0dea41760309d7a047b54e,1 Timbertops,,,ME5 8XF,10001329243,C,B,72,88,House,End-Terrace,2021-09-16,E07000110,E14000700,Kent,2021-09-17,marketed sale,70,87,195,69.0,2.5,34,0.9,65.0,65.0,423.0,356.0,83.0,57.0,71.0,Single,Y,,,,,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,93.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 93% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.32,0.0,N,natural,1 Timbertops,Maidstone,Faversham and Mid Kent,CHATHAM,England and Wales: 1976-1982,2021-09-17 14:44:29,Owner-occupied,15.0,,200003673734.0,Energy Assessor +1619089752812018040318410591080958,"4, Redsells Close",Downswood,,ME15 8SN,9845217578,C,B,69,86,House,Semi-Detached,2018-04-03,E07000110,E14000700,Kent,2018-04-03,marketed sale,66,85,218,87.0,2.9,38,1.2,87.0,54.0,477.0,410.0,109.0,65.0,76.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",More Than Typical,2.0,4.0,4.0,37.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Timber frame, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 37% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"4, Redsells Close, Downswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2018-04-03 18:41:05,owner-occupied,,,200003691009.0,Address Matched +1459976189602017021518380045539248,"16, Buffkyn Way",,,ME15 8FY,1604585478,B,B,81,81,Flat,Semi-Detached,2017-02-14,E07000110,E14000700,Kent,2017-02-15,rental (social),84,84,114,114.0,1.1,20,1.1,45.0,45.0,201.0,201.0,91.0,91.0,57.0,Unknown,Y,Ground,N,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,100.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Very Good,Very Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,heated corridor,,,,N,natural,"16, Buffkyn Way",Maidstone,Faversham and Mid Kent,MAIDSTONE,INVALID!,2017-02-15 18:38:00,rental (social),,,10091193651.0,Address Matched +1098467075952015030309550492050827,"22, Fieldfare Drive",,,ME15 6XL,8737520278,B,A,85,94,House,Semi-Detached,2015-03-03,E07000110,E14000804,Kent,2015-03-03,new dwelling,86,96,80,17.0,1.6,14,0.4,71.0,71.0,278.0,279.0,105.0,56.0,116.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.27 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.17 W/m-¦K,Good,Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"22, Fieldfare Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2015-03-03 09:55:04,owner-occupied,16.0,16.0,10014315284.0,Address Matched +1131933569602014042907332520242288,Glyndale,Laddingford,,ME18 6BU,5621762278,G,D,2,61,House,End-Terrace,2014-04-28,E07000110,E14000804,Kent,2014-04-29,marketed sale,17,37,540,324.0,20.0,96,12.0,114.0,125.0,5067.0,1659.0,309.0,199.0,212.0,Single,N,NODATA!,,,2601.0,80.0,double glazing installed before 2002,Normal,4.0,7.0,7.0,71.0,1.0,"Electric immersion, standard tariff",Very Poor,Very Poor,"Suspended, no insulation (assumed)",,,Mostly double glazing,Poor,Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 150 mm loft insulation",Good,Good,"Room heaters, electric",Very Poor,Very Poor,No thermostatic control of room temperature,Poor,Poor,Low energy lighting in 71% of fixed outlets,Very Good,Very Good,electricity (not community),0.0,NO DATA!,,,0.0,,natural,"Glyndale, Laddingford",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2014-04-29 07:33:25,owner-occupied,7.0,5.0,200003724300.0,Address Matched +597579729102014101507492283449848,4 Bocton House,Haste Hill Road,Boughton Monchelsea,ME17 4LL,8188424868,C,C,74,77,Flat,Semi-Detached,2014-10-14,E07000110,E14000700,Kent,2014-10-15,rental (social),77,81,165,138.0,1.4,32,1.2,34.0,34.0,305.0,255.0,85.0,85.0,45.0,dual,Y,1st,Y,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,100.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,6.3,,0.0,,natural,"4 Bocton House, Haste Hill Road, Boughton Monchelsea",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2014-10-15 07:49:22,rental (social),6.0,6.0,200003674791.0,Address Matched +373382610802009100114251760810298,"36, Chestnut Drive",Coxheath,,ME17 4QX,4857118668,D,C,62,74,House,Semi-Detached,2009-10-01,E07000110,E14000804,Kent,2009-10-01,marketed sale,56,70,314,213.0,3.9,52,2.7,66.0,37.0,522.0,391.0,163.0,117.0,86.3,Single,Y,NO DATA!,,,2104.0,85.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,22.0,0.0,From main system,Average,Good,"Solid, no insulation (assumed)",,,Partial double glazing,Poor,Poor,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 75mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Average,Good,Programmer and room thermostat,Poor,Poor,Low energy lighting in 22% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,0.0,N,natural,"36, Chestnut Drive, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2009-10-01 14:25:17,owner-occupied,,,200003714978.0,Address Matched +1246499739922015031905211880838145,Gallants Court,Gallants Lane,East Farleigh,ME15 0LE,4818370378,D,A,58,101,House,Detached,2015-03-17,E07000110,E14000804,Kent,2015-03-19,FiT application,46,92,120,-45.0,18.0,40,0.8,209.0,144.0,6094.0,3038.0,293.0,129.0,453.0,Single,N,NODATA!,,,2105.0,20.0,secondary glazing,Normal,2.0,12.0,12.0,52.0,1.0,"From main system, no cylinder thermostat",Poor,Poor,"Suspended, no insulation (assumed)",NO DATA!,,Some secondary glazing,Poor,Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, oil",Average,Average,Programmer and at least two room thermostats,Good,Good,Low energy lighting in 52% of fixed outlets,Good,Good,oil (not community),0.0,NO DATA!,,,,N,natural,"Gallants Court, Gallants Lane, East Farleigh",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2015-03-19 05:21:18,owner-occupied,,,200003722847.0,Address Matched +12ec754d027ca9d74adfecd2be91164a3dbf5a1db63c896dac56bb9041b66f8d,66 CUMBERLAND AVENUE,,,ME15 7JJ,10001639293,E,B,54,84,House,Mid-Terrace,2021-06-29,E07000110,E14000700,Kent,2021-07-01,ECO assessment,51,84,339,90.0,4.1,59,1.1,117.0,58.0,696.0,442.0,187.0,74.0,69.0,Single,Y,,,,,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,0.0,0.0,"From main system, no cylinder thermostat",Average,Average,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,"Pitched, insulated (assumed)",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,,,2.75,0.0,N,natural,66 CUMBERLAND AVENUE,Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2021-07-01 10:11:40,Rented (social),8.0,,200003714148.0,Energy Assessor +1466680719262016072814575676288746,"23, Cornflower Close",Weavering,,ME14 5UL,4792136478,D,C,58,78,House,Detached,2016-07-28,E07000110,E14000700,Kent,2016-07-28,rental (private),48,73,254,118.0,7.8,46,3.7,91.0,91.0,1379.0,901.0,209.0,81.0,168.0,Single,Y,NODATA!,,,2106.0,95.0,double glazing installed before 2002,Normal,1.0,7.0,7.0,94.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Mostly double glazing,Average,Average,"Cavity wall, as built, partial insulation (assumed)",Average,Average,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 94% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,2.34,,N,natural,"23, Cornflower Close, Weavering",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1976-1982,2016-07-28 14:57:56,rental (private),,,200003687881.0,Address Matched +380810485352014042316273696240560,"23, Fishers Road",Staplehurst,,TN12 0DD,5042568668,E,B,45,82,House,End-Terrace,2014-04-23,E07000110,E14000804,Kent,2014-04-23,marketed sale,41,82,350,87.0,5.8,68,1.5,75.0,51.0,953.0,497.0,244.0,75.0,86.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,2.0,5.0,5.0,54.0,0.0,"From main system, no cylinder thermostat",Poor,Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 54% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"23, Fishers Road, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1967-1975,2014-04-23 16:27:36,owner-occupied,13.0,7.0,200003679333.0,Address Matched +1457270544252018121822460596989443,"43, Sandling Road",,,ME14 2RH,4363465478,D,C,66,73,Maisonette,Mid-Terrace,2018-12-18,E07000110,E14000804,Kent,2018-12-18,marketed sale,65,74,273,199.0,2.3,48,1.7,48.0,38.0,410.0,301.0,82.0,83.0,48.0,Unknown,Y,Basement,N,,2104.0,100.0,double glazing installed before 2002,Normal,2.0,2.0,2.0,71.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 71% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,no corridor,,,,N,natural,"43, Sandling Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2018-12-18 22:46:05,rental (private),,,200003669442.0,Address Matched +364357490962009091617305487068751,"15, The Tail Race",,,ME15 6YL,5831947668,C,C,70,76,House,Semi-Detached,2009-09-16,E07000110,E14000804,Kent,2009-09-16,marketed sale,67,72,250,207.0,2.8,42,2.3,60.0,30.0,328.0,295.0,100.0,89.0,67.48,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.31,0.0,N,natural,"15, The Tail Race",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2009-09-16 17:30:54,owner-occupied,,,200003665885.0,Address Matched +772211479022012040320545857778672,"16, Firmin Avenue",Boughton Monchelsea,,ME17 4NN,7560717968,D,B,63,82,House,Detached,2012-04-03,E07000110,E14000700,Kent,2012-04-03,marketed sale,63,83,217,83.0,3.2,41,1.2,75.0,45.0,502.0,420.0,129.0,74.0,77.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,1.0,5.0,5.0,33.0,0.0,From main system,Good,Good,"Suspended, limited insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 33% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"16, Firmin Avenue, Boughton Monchelsea",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1996-2002,2012-04-03 20:54:58,owner-occupied,9.0,3.0,200003722508.0,Address Matched +1211992640112014092809142493240026,"14, School Lane",Platts Heath,,ME17 2NU,633038278,D,B,59,85,House,Semi-Detached,2014-09-28,E07000110,E14000700,Kent,2014-09-28,marketed sale,52,82,233,76.0,4.6,50,1.5,90.0,55.0,793.0,485.0,255.0,113.0,92.0,Single,N,NODATA!,,,2104.0,77.0,secondary glazing,Normal,0.0,4.0,4.0,38.0,1.0,From main system,Average,Poor,"Solid, no insulation (assumed)",,,Partial secondary glazing,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, wood logs",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, oil",Average,Average,Programmer and room thermostat,Average,Average,Low energy lighting in 38% of fixed outlets,Average,Average,oil (not community),0.0,NO DATA!,,,0.0,,natural,"14, School Lane, Platts Heath",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2014-09-28 09:14:24,owner-occupied,16.0,6.0,200003703795.0,Address Matched +1374197359962016121013071659108446,Flat 18 The Cloisters,Ham Lane,Lenham,ME17 2PZ,4507579378,D,C,67,76,Maisonette,End-Terrace,2016-12-10,E07000110,E14000700,Kent,2016-12-10,marketed sale,50,62,443,336.0,3.2,75,2.4,71.0,35.0,348.0,242.0,145.0,127.0,42.0,dual,N,2nd,Y,,2401.0,100.0,double glazing installed before 2002,Normal,0.0,2.0,2.0,0.0,0.0,"Electric immersion, off-peak",Average,Poor,(another dwelling below),NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,Portable electric heaters (assumed),,,"Pitched, 100 mm loft insulation",Average,Average,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,No low energy lighting,Very Poor,Very Poor,electricity (not community),0.0,no corridor,,,,N,natural,"Flat 18 The Cloisters, Ham Lane, Lenham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1991-1995,2016-12-10 13:07:16,owner-occupied,,,200003712567.0,Address Matched +1099899163112014030416344294040327,"40, Hedley Street",,,ME14 5AD,3710340278,G,E,1,54,House,Semi-Detached,2014-03-03,E07000110,E14000804,Kent,2014-03-04,marketed sale,1,22,784,456.0,25.0,161,14.0,146.0,82.0,5108.0,1659.0,506.0,103.0,156.0,Single,N,NODATA!,,,2699.0,0.0,not defined,Normal,1.0,7.0,0.0,0.0,2.0,No system present: electric immersion assumed,Very Poor,Very Poor,"Suspended, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, smokeless fuel",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,No system present: electric heaters assumed,Very Poor,Very Poor,,Very Poor,Very Poor,No low energy lighting,Very Poor,Very Poor,To be used only when there is no heating/hot-water system,0.0,NO DATA!,,,0.0,,natural,"40, Hedley Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2014-03-04 16:34:42,owner-occupied,10.0,0.0,200003704778.0,Address Matched +665990529742011081311151186999378,"21, Tufton Street",,,ME14 1ES,7763729868,D,C,61,70,House,Mid-Terrace,2011-08-13,E07000110,E14000804,Kent,2011-08-13,rental (private),59,70,272,200.0,3.2,52,2.4,50.0,35.0,540.0,425.0,96.0,76.0,61.69,Unknown,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,57.0,1.0,From main system,Good,Good,"Suspended, insulated",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 57% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,2.35,0.0,,natural,"21, Tufton Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2011-08-13 11:15:11,rental (private),7.0,4.0,200003687448.0,Address Matched +235872258212019070515095797010254,"17, The Quern",,,ME15 6FT,2403878568,C,B,70,87,House,End-Terrace,2019-07-05,E07000110,E14000804,Kent,2019-07-05,rental (private),69,86,226,82.0,2.3,40,0.9,55.0,55.0,362.0,340.0,120.0,71.0,57.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,78.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 270 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 78% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"17, The Quern",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2019-07-05 15:09:57,rental (private),,,200003666130.0,Address Matched +1494288889632016110410491484078596,"6, James Street",,,ME14 2UR,8634528478,D,B,58,83,House,Mid-Terrace,2016-11-04,E07000110,E14000804,Kent,2016-11-04,marketed sale,51,81,310,104.0,4.0,55,1.4,50.0,50.0,736.0,487.0,124.0,51.0,73.0,Single,Y,NODATA!,,,2107.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,2.32,,N,natural,"6, James Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2016-11-04 10:49:14,owner-occupied,,,200003703545.0,Address Matched +840909167152014020418593890040003,"8, St. Heliers Close",,,ME16 8QZ,315702078,D,B,57,82,House,Detached,2014-02-04,E07000110,E14000804,Kent,2014-02-04,assessment for green deal,52,80,249,90.0,5.1,48,1.9,100.0,60.0,858.0,561.0,185.0,85.0,107.0,Single,Y,NODATA!,,,2107.0,100.0,double glazing installed before 2002,Normal,2.0,5.0,5.0,33.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 75 mm loft insulation",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 33% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"8, St. Heliers Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2014-02-04 18:59:38,owner-occupied,15.0,5.0,200003656630.0,Address Matched +1460068589142016070616401948560268,Flat 4 Ringlestone House,Tarragon Road,,ME16 0FP,4164585478,B,B,82,82,Flat,Mid-Terrace,2016-07-06,E07000110,E14000804,Kent,2016-07-06,marketed sale,85,85,98,98.0,1.2,17,1.2,53.0,53.0,165.0,165.0,143.0,143.0,70.0,Single,Y,1st,N,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,(another dwelling below),NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,heated corridor,,2.52,,N,natural,"Flat 4 Ringlestone House, Tarragon Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2016-07-06 16:40:19,owner-occupied,,,10022900338.0,Address Matched +206830719922014022111463446788784,14 Sunningdale Court,Square Hill Road,,ME15 7TT,8439126568,C,C,72,79,Flat,End-Terrace,2014-02-18,E07000110,E14000804,Kent,2014-02-21,none of the above,74,83,173,115.0,1.9,33,1.3,64.0,38.0,318.0,228.0,134.0,115.0,58.0,Single,Y,2nd,N,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,33.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 33% of fixed outlets,Average,Average,mains gas (not community),0.0,unheated corridor,4.866,,0.0,,natural,"14 Sunningdale Court, Square Hill Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2014-02-21 11:46:34,rental (social),6.0,2.0,200003696544.0,Address Matched +1466355709222016072808475476958856,"3, Maidstone Road",Marden,,TN12 9AB,5772036478,D,B,64,83,House,Detached,2016-07-25,E07000110,E14000804,Kent,2016-07-28,marketed sale,58,80,228,99.0,4.9,40,2.2,112.0,72.0,900.0,612.0,115.0,77.0,123.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,6.0,6.0,43.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 43% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,2.3,,N,natural,"3, Maidstone Road, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1950-1966,2016-07-28 08:47:54,owner-occupied,,,200003708420.0,Address Matched +556101471032010102115222979968608,"30, Cornhill Place",,,ME15 6GX,7879690868,C,C,72,73,Flat,End-Terrace,2010-09-16,E07000110,E14000804,Kent,2010-10-21,new dwelling,79,80,169,164.0,1.7,26,1.6,51.0,34.0,212.0,213.0,264.0,264.0,64.6,standard tariff,,top floor,,,,,NO DATA!,NO DATA!,,,,,,"Electric immersion, standard tariff",Very Poor,Poor,(other premises below),,,Fully double glazed,Good,Good,Average thermal transmittance 0.32 W/m?K,Good,Good,,,,Average thermal transmittance 0.16 W/m?K,Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.3,,,NO DATA!,"30, Cornhill Place",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2010-10-21 15:22:29,,,,10022895035.0,Address Matched +521325719262012012313444948978302,"103, Fennel Close",,,ME16 0XT,469158768,C,C,71,75,House,End-Terrace,2012-01-23,E07000110,E14000804,Kent,2012-01-23,marketed sale,72,76,161,140.0,3.0,30,2.6,94.0,54.0,462.0,441.0,125.0,110.0,65.33,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,27.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,"Roof room(s), insulated",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 27% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,2.3,0.0,,natural,"103, Fennel Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2012-01-23 13:44:49,owner-occupied,11.0,3.0,200003717391.0,Address Matched +82567ccf3097852a4e8275655256b3288646a3a24df9e03aebd205c8a3b56416,44B PERRY STREET,,,ME14 2RP,10001570706,E,D,52,57,Flat,End-Terrace,2021-06-29,E07000110,E14000804,Kent,2021-07-01,ECO assessment,49,54,380,338.0,3.6,67,3.2,48.0,48.0,751.0,666.0,85.0,86.0,55.0,Single,Y,01,N,,,100.0,"double glazing, unknown install date",Normal,1.0,2.0,2.0,100.0,0.0,From main system,Good,Good,(another dwelling below),,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, electric",,,"Pitched, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,no corridor,,2.8,0.0,N,natural,44B PERRY STREET,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2021-07-01 18:44:48,Rented (social),7.0,,200003669913.0,Energy Assessor +1666002829812018100113490394280367,"The Annexe, Oaklands",Headcorn Road,Sutton Valence,ME17 3EL,3752940678,D,B,65,91,Bungalow,Detached,2018-09-21,E07000110,E14000700,Kent,2018-10-01,marketed sale,56,81,163,13.0,5.1,43,2.0,76.0,76.0,518.0,518.0,110.0,74.0,120.0,Single,N,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,100.0,0.0,From main system,Average,Average,"Suspended, insulated",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, with internal insulation",Good,Good,,,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, oil",Average,Average,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,oil (not community),0.0,NO DATA!,,,,N,natural,"The Annexe, Oaklands, Headcorn Road, Sutton Valence",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2018-10-01 13:49:03,owner-occupied,,,200003695609.0,Address Matched +1479993996832018061308582978978306,1 Matthews Avenue,Harrietsham,,ME17 1GJ,9628327478,B,A,84,95,House,Detached,2018-06-12,E07000110,E14000700,Kent,2018-06-13,new dwelling,86,97,86,8.0,1.3,15,0.2,60.0,60.0,222.0,222.0,82.0,50.0,89.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.27 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"1 Matthews Avenue, Harrietsham",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2018-06-13 08:58:29,owner-occupied,16.0,16.0,10093303074.0,Address Matched +360269919302011032315461567792878,3 Abberley Park,Sittingbourne Road,,ME14 5GD,6312717668,C,C,80,80,House,Detached,2011-03-23,E07000110,E14000804,Kent,2011-03-23,marketed sale,77,77,131,131.0,3.4,21,3.4,91.0,91.0,489.0,489.0,158.0,158.0,157.02,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,9.0,9.0,100.0,0.0,From main system,Very Good,Very Good,"Suspended, insulated (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.34,0.0,N,natural,"3 Abberley Park, Sittingbourne Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2011-03-23 15:46:15,owner-occupied,,,10022895264.0,Address Matched +397778473152009111715135708919263,66 Oxford Gardens,,,ME15 8FJ,2320389668,C,C,75,75,House,Mid-Terrace,2009-11-17,E07000110,E14000700,Kent,2009-11-17,new dwelling,82,82,138,138.0,1.7,21,1.7,50.0,50.0,225.0,225.0,167.0,167.0,80.0,standard tariff,,NO DATA!,,,2207.0,,NO DATA!,NO DATA!,,,,4.0,0.0,From main system,Poor,Good,Average thermal transmittance 0.18 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.28 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.12 W/m?K,Very Good,Very Good,"Air source heat pump, radiators, electric",Poor,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",0.0,NO DATA!,,2.4,,,NO DATA!,66 Oxford Gardens,Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2009-11-17 15:13:57,,5.0,4.0,10014309005.0,Address Matched +1451524129502016060815494646560588,"12, Doddington Court",,,ME16 0SE,4546425478,D,B,66,87,House,Semi-Detached,2016-06-08,E07000110,E14000804,Kent,2016-06-08,marketed sale,61,86,236,68.0,3.3,41,1.0,79.0,53.0,602.0,396.0,106.0,70.0,79.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,4.0,4.0,50.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,2.54,,N,natural,"12, Doddington Court",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2016-06-08 15:49:46,owner-occupied,,,200003670349.0,Address Matched +82753a1b9ab2eba89b549f965c9ff70fb3c7afa4c44e4f5da3732182ff281728,4 ARLOTT CLOSE,,,ME14 2XJ,10001478036,C,B,71,84,House,End-Terrace,2021-06-26,E07000110,E14000804,Kent,2021-07-30,not sale or rental,67,81,189,93.0,3.2,33,1.6,88.0,88.0,507.0,454.0,125.0,80.0,95.0,Single,Y,,,,,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,86.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Roof room(s), insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 86% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.6,0.0,N,natural,4 ARLOTT CLOSE,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1991-1995,2021-07-30 15:19:34,Rented (social),14.0,,200003669982.0,Energy Assessor +827a333aef44e55341515d6e8ce7ee307d34b32f0ff340a0b796ef242cc6095b,54 Seymour Drive,,,TN12 9GT,10001549581,B,A,86,92,House,Detached,2021-09-03,E07000110,E14000804,Kent,2021-09-03,new dwelling,87,92,68,37.0,2.1,11,1.1,111.0,111.0,356.0,356.0,96.0,96.0,189.0,standard tariff,,,N,,,100.0,,,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.22 W/m-¦K,Very Good,Very Good,"Room heaters, wood logs",,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.39,,,,54 Seymour Drive,Maidstone,Maidstone and The Weald,MARDEN,2021,2021-09-03 14:52:53,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,10.0,,10094441133.0,Energy Assessor +627899589922011051219522876098089,"65, Bower Lane",,,ME16 8EH,8701856868,E,D,48,58,House,End-Terrace,2011-05-11,E07000110,E14000804,Kent,2011-05-12,marketed sale,44,54,351,275.0,5.7,68,4.5,63.0,44.0,947.0,752.0,82.0,82.0,84.5,Single,Y,NODATA!,,,2107.0,100.0,"double glazing, unknown install date",Normal,1.0,4.0,4.0,57.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 57% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,2.0,0.0,,natural,"65, Bower Lane",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2011-05-12 19:52:28,owner-occupied,7.0,4.0,200003666275.0,Address Matched +875478759802013012523510404472248,"3, Chantry Road",Marden,,TN12 9HT,2870454078,C,B,73,87,House,Semi-Detached,2013-01-24,E07000110,E14000804,Kent,2013-01-25,rental (social),73,88,151,54.0,2.4,29,0.9,68.0,47.0,392.0,361.0,105.0,69.0,82.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,55.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 55% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"3, Chantry Road, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1950-1966,2013-01-25 23:51:04,rental (social),11.0,6.0,200003708500.0,Address Matched +1501081749632016120118554623278496,Flat 1,60-61 High Street,,ME14 1SR,4683478478,D,C,60,71,Flat,Mid-Terrace,2016-11-23,E07000110,E14000804,Kent,2016-12-01,rental (private),59,73,400,257.0,2.3,70,1.5,50.0,25.0,437.0,294.0,77.0,78.0,32.0,Single,Y,3rd,Y,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,0.0,0.0,From main system,Good,Good,(another dwelling below),NO DATA!,,Fully double glazed,Average,Average,"System built, as built, no insulation (assumed)",Poor,Poor,,,,"Flat, no insulation",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,unheated corridor,8.5,,,N,natural,"Flat 1, 60-61 High Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2016-12-01 18:55:46,rental (private),,,10093306459.0,Address Matched +1135181189022014050605382532178144,"11, Kennington Close",,,ME15 8QG,4378882278,D,B,66,82,House,Semi-Detached,2014-05-03,E07000110,E14000700,Kent,2014-05-06,marketed sale,64,81,192,88.0,3.3,37,1.6,53.0,53.0,632.0,484.0,102.0,102.0,91.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,100.0,0.0,From main system,Very Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"11, Kennington Close",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2014-05-06 05:38:25,owner-occupied,9.0,9.0,200003685272.0,Address Matched +829563101c8ca0a2e4b239fba3ad01fd440e8710ad3ae4a77df50f1774ead393,36 Gilbert Way,,,ME17 3TT,10001481748,B,A,83,96,House,End-Terrace,2021-09-20,E07000110,E14000700,Kent,2021-09-20,new dwelling,86,98,91,-2.0,1.2,16,0.0,67.0,67.0,208.0,208.0,66.0,40.0,74.0,standard tariff,,,N,,,100.0,,,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.33,,,,36 Gilbert Way,Maidstone,Faversham and Mid Kent,MAIDSTONE,2017,2021-09-20 15:48:26,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,8.0,,10094441889.0,Energy Assessor +779948959962012061317194687478652,1 Astley Terrace,Hastings Road,,ME15 7BF,5803577968,B,B,83,83,House,Semi-Detached,2012-06-13,E07000110,E14000700,Kent,2012-06-13,new dwelling,85,85,84,84.0,1.6,16,1.6,54.0,54.0,267.0,267.0,88.0,88.0,100.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,11.0,,From main system,Good,Good,Average thermal transmittance 0.12 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.27 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.37,,,NO DATA!,"1 Astley Terrace, Hastings Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2012-06-13 17:19:46,,11.0,11.0,10014313953.0,Address Matched +1707688059142019032210345864312698,Flat 3,"32, Pudding Lane",,ME14 1LT,1108253678,D,C,68,77,Flat,Mid-Terrace,2019-03-21,E07000110,E14000804,Kent,2019-03-22,rental (private),66,77,219,149.0,2.8,38,1.9,111.0,57.0,457.0,326.0,86.0,86.0,72.0,Single,Y,1st,N,,2106.0,0.0,not defined,Normal,0.0,3.0,3.0,0.0,0.0,From main system,Good,Good,(other premises below),NO DATA!,,Single glazed,Very Poor,Very Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,unheated corridor,1.84,,,N,natural,"Flat 3, 32, Pudding Lane",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2019-03-22 10:34:58,rental (private),,,10022900296.0,Address Matched +1681168589222018112312035891478348,1 The Brye,Southernden Road,Headcorn,TN27 9LL,4966851678,C,A,73,94,House,End-Terrace,2018-11-23,E07000110,E14000700,Kent,2018-11-23,new dwelling,81,100,73,-32.0,2.6,15,-0.5,89.0,89.0,532.0,532.0,169.0,106.0,171.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Poor,Good,Average thermal transmittance 0.10 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.12 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.08 W/m-¦K,Very Good,Very Good,"Boiler and radiators, LPG",Poor,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,LPG - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"1 The Brye, Southernden Road, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,NO DATA!,2018-11-23 12:03:58,unknown,20.0,20.0,10093305970.0,Address Matched +205056089132009010816434200068409,"16, Langdale Rise",,,ME16 0EU,8960426568,E,D,48,57,House,Detached,2009-01-08,E07000110,E14000804,Kent,2009-01-08,marketed sale,42,50,440,364.0,5.5,73,4.6,71.0,35.0,746.0,651.0,120.0,99.0,74.8,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,0.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 75mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,0.0,N,natural,"16, Langdale Rise",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2009-01-08 16:43:42,owner-occupied,,,200003658954.0,Address Matched +0ae2f03bf5ea3252a8e228965eb5b7f6a40c6bdeff172bbd6d761083c3671b6c,17 EDELIN ROAD,BEARSTED,,ME14 4RD,10001391793,C,B,78,85,House,End-Terrace,2021-07-23,E07000110,E14000700,Kent,2021-07-23,marketed sale,74,81,119,83.0,4.3,21,3.0,120.0,120.0,672.0,676.0,122.0,74.0,203.0,Unknown,Y,,,,,100.0,double glazing installed during or after 2002,Normal,1.0,8.0,8.0,100.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.38,0.0,N,natural,"17 EDELIN ROAD, BEARSTED",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2003-2006,2021-07-23 12:32:26,Owner-occupied,14.0,,10022895485.0,Energy Assessor +389658361212013040914213992070768,"15, Tarragon Road",,,ME16 0UR,7859129668,C,B,72,84,House,End-Terrace,2013-04-09,E07000110,E14000804,Kent,2013-04-09,marketed sale,70,83,141,71.0,4.2,27,2.2,129.0,68.0,605.0,562.0,172.0,78.0,156.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,6.0,6.0,10.0,0.0,From main system,Good,Good,"Suspended, limited insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 10% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"15, Tarragon Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2013-04-09 14:21:39,owner-occupied,20.0,2.0,200003726875.0,Address Matched +537359656512010091211443196900272,First Floor Flat,"3, Rowland Close",,ME16 8PU,2280669768,B,B,81,84,Flat,Detached,2010-09-10,E07000110,E14000804,Kent,2010-09-12,rental (social),80,82,160,141.0,1.6,27,1.4,45.0,35.0,237.0,226.0,116.0,101.0,60.35,Single,Y,1st,N,3.0,2106.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,71.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 71% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,unheated corridor,5.4,2.33,0.0,N,natural,"First Floor Flat, 3, Rowland Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2010-09-12 11:44:31,rental (social),,,200003725972.0,Address Matched +1586931509332017110316111886078591,"63, South Park Road",,,ME15 7AL,116584578,F,B,31,85,House,End-Terrace,2017-11-03,E07000110,E14000700,Kent,2017-11-03,marketed sale,31,84,537,94.0,6.6,94,1.2,80.0,49.0,1160.0,413.0,322.0,68.0,70.0,Single,Y,NODATA!,,,2601.0,100.0,double glazing installed before 2002,Normal,1.0,4.0,2.0,38.0,0.0,"Electric immersion, standard tariff",Very Poor,Poor,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,Portable electric heaters (assumed),,,"Pitched, 100 mm loft insulation",Average,Average,"Room heaters, mains gas",Average,Average,No thermostatic control of room temperature,Poor,Poor,Low energy lighting in 38% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"63, South Park Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2017-11-03 16:11:18,owner-occupied,,,200003715873.0,Address Matched +650911222252011070616444192090087,"26, Willow Rise",Downswood,,ME15 8XR,787228868,D,C,67,72,Flat,Detached,2011-07-06,E07000110,E14000700,Kent,2011-07-06,marketed sale,47,53,604,528.0,2.9,107,2.6,23.0,23.0,288.0,227.0,86.0,86.0,27.29,dual,N,Ground,Y,,2401.0,0.0,not defined,Normal,0.0,1.0,1.0,80.0,0.0,"Electric immersion, off-peak",Average,Very Poor,(other premises below),,,Single glazed,Very Poor,Very Poor,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,"Pitched, 100 mm loft insulation",Average,Average,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,electricity (not community),0.0,unheated corridor,1.8,2.35,0.0,,natural,"26, Willow Rise, Downswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2011-07-06 16:44:41,owner-occupied,5.0,4.0,200003687152.0,Address Matched +1558651919922017071011360762108993,"12, Acorn Close",,,ME16 8FX,9673182578,B,A,85,95,House,Mid-Terrace,2017-07-10,E07000110,E14000804,Kent,2017-07-10,new dwelling,87,96,74,10.0,1.4,13,0.2,67.0,67.0,246.0,246.0,83.0,48.0,109.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.12 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"12, Acorn Close",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2017-07-10 11:36:07,owner-occupied,12.0,12.0,10093303861.0,Address Matched +688660699922011101218280150128039,Willow Farm,Tyland Lane,Sandling,ME14 3BL,3547980968,F,D,35,57,House,Detached,2011-10-12,E07000110,E14000700,Kent,2011-10-12,marketed sale,31,50,383,240.0,15.0,74,9.3,151.0,75.0,2431.0,1570.0,161.0,117.0,200.0,Single,Y,NODATA!,,,2103.0,45.0,"double glazing, unknown install date",Normal,0.0,7.0,7.0,0.0,1.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Partial double glazing,Poor,Poor,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Room thermostat only,Poor,Poor,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,2.5,0.0,,natural,"Willow Farm, Tyland Lane, Sandling",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2011-10-12 18:28:01,owner-occupied,16.0,0.0,200003672377.0,Address Matched +597535929302013031410313584479048,"8, Titchfield Close",,,ME15 8TA,7316424868,C,C,77,78,Flat,Enclosed End-Terrace,2013-03-14,E07000110,E14000700,Kent,2013-03-14,rental (social),81,82,135,128.0,1.2,26,1.2,49.0,30.0,237.0,240.0,74.0,74.0,48.0,Single,Y,2nd,Y,,2106.0,100.0,double glazing installed during or after 2002,More Than Typical,0.0,2.0,2.0,38.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Good,Good,"System built, with internal insulation",Good,Good,,,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 38% of fixed outlets,Average,Average,mains gas (not community),0.0,no corridor,,,0.0,,natural,"8, Titchfield Close",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2013-03-14 10:31:35,rental (social),8.0,3.0,200003727391.0,Address Matched +1819451745252020082015143826200077,"21, Orchard Street",,,ME15 6NR,742561778,B,B,86,87,House,Mid-Terrace,2020-08-20,E07000110,E14000804,Kent,2020-08-20,new dwelling,92,94,38,26.0,0.8,7,0.6,85.0,85.0,248.0,250.0,102.0,56.0,122.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.10 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.20 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.12 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"21, Orchard Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2020-08-20 15:14:38,unknown,16.0,16.0,10095448088.0,Address Matched +927863529022013050922575708518487,"3, Rookery Court",Marden,,TN12 9AZ,8046228078,B,B,81,82,Flat,Detached,2013-05-09,E07000110,E14000804,Kent,2013-05-09,new dwelling,84,86,97,89.0,1.5,18,1.4,91.0,53.0,243.0,249.0,80.0,80.0,80.0,standard tariff,,ground floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.25 W/m?K,Good,Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.29 W/m?K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 28% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"3, Rookery Court, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,NO DATA!,2013-05-09 22:57:57,NO DATA!,18.0,5.0,10014313261.0,Address Matched +82b7013ba304996f87cb2e66e1bc22a44860107412b60f373a2b155b43d6687d,FLAT 4G,HARBLEDOWN HOUSE,FANT LANE,ME16 8NZ,10001639021,C,C,71,75,Flat,Semi-Detached,2021-07-14,E07000110,E14000804,Kent,2021-07-14,rental,69,74,217,182.0,2.2,38,1.9,92.0,52.0,315.0,276.0,104.0,104.0,58.0,Unknown,N,00,N,,,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,22.0,0.0,Community scheme,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,,,,(another dwelling above),,,Community scheme,Good,Good,"Flat rate charging, TRVs",Average,Average,Low energy lighting in 22% of fixed outlets,Poor,Poor,mains gas (community),0.0,heated corridor,,2.27,0.0,N,natural,"FLAT 4G, HARBLEDOWN HOUSE, FANT LANE",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2021-07-14 16:41:23,Rented (social),9.0,,200003689465.0,Energy Assessor +82bc88cd40d331729f3e8c03ed0672ce26b46fbf5c0ba0a70526898cb1bea857,35 ELLIS FIELD,OTHAM,,ME15 8YL,10001489913,B,A,85,94,House,Detached,2021-08-04,E07000110,E14000804,Kent,2021-08-04,new dwelling,86,95,76,19.0,1.7,13,0.5,91.0,91.0,266.0,268.0,97.0,54.0,128.0,standard tariff,,,N,,,100.0,,,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.18 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.38,,,,"35 ELLIS FIELD, OTHAM",Maidstone,Maidstone and The Weald,OTHAM,2021,2021-08-04 08:50:19,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,14.0,,10094440505.0,Address Matched +460316439262010032519191654258730,"59, Roseacre Lane",Bearsted,,ME14 4JG,3540324768,D,D,61,67,House,Detached,2010-03-25,E07000110,E14000700,Kent,2010-03-25,rental (private),57,64,244,206.0,6.7,40,6.7,130.0,87.0,959.0,810.0,155.0,161.0,118.56,Single,Y,NO DATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,1.0,8.0,8.0,50.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,0.0,N,natural,"59, Roseacre Lane, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2010-03-25 19:19:16,rental (private),,,200003692216.0,Address Matched +340658812932011121615340951068394,"33, Hockers Lane",Detling,,ME14 3JN,1471385668,D,C,60,69,House,Detached,2011-12-05,E07000110,E14000700,Kent,2011-12-16,marketed sale,55,66,236,179.0,5.8,45,4.4,88.0,58.0,909.0,722.0,146.0,111.0,128.0,Single,Y,NODATA!,,,2106.0,0.0,not defined,Normal,0.0,5.0,5.0,50.0,0.0,From main system,Average,Average,"Suspended, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,2.4,0.0,,natural,"33, Hockers Lane, Detling",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1900-1929,2011-12-16 15:34:09,owner-occupied,10.0,5.0,200003694006.0,Address Matched +86713029962015061213503765398605,"16, Forest Hill",,,ME15 6UX,608295468,D,B,63,86,House,Semi-Detached,2015-06-11,E07000110,E14000804,Kent,2015-06-12,marketed sale,57,84,264,87.0,3.9,47,1.3,73.0,54.0,634.0,460.0,195.0,73.0,85.0,Single,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,1.0,6.0,6.0,64.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 270 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 64% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"16, Forest Hill",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2015-06-12 13:50:37,rental (private),,,200003682627.0,Address Matched +421024275212011091319064794990574,"11, Micawber Close",,,ME5 9JZ,5476541768,D,C,59,69,House,End-Terrace,2011-09-13,E07000110,E14000700,Kent,2011-09-13,rental (private),59,72,349,237.0,2.5,67,1.7,23.0,23.0,363.0,301.0,170.0,93.0,37.4,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,2.0,2.0,100.0,0.0,"From main system, no cylinder thermostat",Poor,Poor,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,2.4,0.0,,natural,"11, Micawber Close",Maidstone,Faversham and Mid Kent,CHATHAM,England and Wales: 1983-1990,2011-09-13 19:06:47,rental (private),5.0,5.0,200003708559.0,Address Matched +1611174779222018032722354576338208,Flat 2 Hepworth Court,"77, Buckland Road",,ME16 0LZ,739756578,C,C,78,78,Flat,Semi-Detached,2018-03-27,E07000110,E14000804,Kent,2018-03-27,marketed sale,80,80,131,131.0,1.6,23,1.6,55.0,55.0,243.0,243.0,118.0,118.0,69.0,Single,Y,Ground,N,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,"Suspended, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,4.06,,,N,natural,"Flat 2 Hepworth Court, 77, Buckland Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2018-03-27 22:35:45,owner-occupied,,,10022892808.0,Address Matched +1217519069332017020205422108978808,"4, Lenfield Avenue",,,ME14 5DU,6848868278,C,B,69,84,Bungalow,Semi-Detached,2017-01-11,E07000110,E14000804,Kent,2017-02-02,rental (private),64,82,202,91.0,3.9,36,1.8,77.0,77.0,696.0,519.0,107.0,73.0,109.0,Unknown,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,2.0,6.0,6.0,86.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Roof room(s), no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 86% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"4, Lenfield Avenue",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2017-02-02 05:42:21,rental (private),,,200003689385.0,Address Matched +47744119062019011217364635788251,Flat 27,Bellwood Court,Sutton Road,ME15 8RB,5348175568,B,B,81,81,Flat,Mid-Terrace,2019-01-08,E07000110,E14000700,Kent,2019-01-12,rental (social),87,87,115,115.0,0.8,20,0.8,34.0,34.0,153.0,153.0,76.0,76.0,40.0,Single,Y,3rd,Y,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,100.0,0.0,From main system,Good,Good,(another dwelling below),NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,heated corridor,,,,N,natural,"Flat 27, Bellwood Court, Sutton Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2007 onwards,2019-01-12 17:36:46,rental (social),,,10014306272.0,Address Matched +1666299429222018092708343680468328,1 Pymps Court Cottages,Busbridge Road,Loose,ME15 0HZ,2806250678,C,A,70,108,House,End-Terrace,2018-09-26,E07000110,E14000804,Kent,2018-09-27,rental (private),67,105,204,-54.0,3.1,36,-0.7,98.0,61.0,524.0,397.0,89.0,59.0,87.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,2.0,5.0,5.0,40.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 40% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"1 Pymps Court Cottages, Busbridge Road, Loose",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2018-09-27 08:34:36,rental (private),,,200003721365.0,Address Matched +1602012951852018012111241399980058,95 Farleigh Court,Farleigh Lane,,ME16 9BH,854195578,C,C,69,75,Flat,Semi-Detached,2018-01-19,E07000110,E14000804,Kent,2018-01-21,rental (social),67,76,218,162.0,2.5,38,1.9,61.0,49.0,436.0,323.0,93.0,94.0,66.0,Single,Y,Ground,N,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,75.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,no corridor,,,,N,natural,"95 Farleigh Court, Farleigh Lane",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2018-01-21 11:24:13,rental (social),,,200003683775.0,Address Matched +639798165612012091121505794920187,Hucking Hill House,Broad Street Hill,Hucking,ME17 1QX,1781547868,F,D,22,60,House,Detached,2012-09-11,E07000110,E14000700,Kent,2012-09-11,marketed sale,20,51,373,174.0,22.0,85,10.0,157.0,92.0,4159.0,2158.0,211.0,105.0,261.0,Single,N,NODATA!,,,2111.0,0.0,not defined,Normal,4.0,11.0,9.0,25.0,4.0,From main system,Average,Average,"Suspended, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, oil",Average,Average,TRVs and bypass,Average,Average,Low energy lighting in 25% of fixed outlets,Average,Average,oil (not community),0.0,NO DATA!,,,0.0,,natural,"Hucking Hill House, Broad Street Hill, Hucking",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2012-09-11 21:50:57,owner-occupied,24.0,6.0,200003700625.0,Address Matched +1305931129062015040912192774718745,"373, Willington Street",,,ME15 8HL,4747294378,D,B,63,87,House,Semi-Detached,2015-04-09,E07000110,E14000700,Kent,2015-04-09,assessment for green deal,57,86,270,79.0,3.8,48,1.1,51.0,51.0,632.0,425.0,181.0,72.0,80.0,Unknown,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,100.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"373, Willington Street",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2015-04-09 12:19:27,owner-occupied,,,200003684847.0,Address Matched +109603082032010021714240870968602,"7, Oaklands",,,ME15 6SD,8210648468,C,B,77,81,House,Semi-Detached,2010-02-17,E07000110,E14000804,Kent,2010-02-17,marketed sale,75,79,178,150.0,2.4,30,2.0,76.0,43.0,304.0,285.0,133.0,116.0,93.96,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,23.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 23% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.39,0.0,N,natural,"7, Oaklands",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2010-02-17 14:24:08,owner-occupied,,,10022901643.0,Address Matched +413624920962009121616522390268991,"30, King Edward Road",,,ME15 6PJ,9943290768,D,D,58,60,House,Mid-Terrace,2009-12-16,E07000110,E14000804,Kent,2009-12-16,marketed sale,50,53,330,310.0,5.2,55,4.9,48.0,48.0,784.0,741.0,115.0,108.0,94.6,Unknown,Y,NO DATA!,,,2107.0,100.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.6,0.0,N,natural,"30, King Edward Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2009-12-16 16:52:23,owner-occupied,,,200003682656.0,Address Matched +830f20532d737f0b8445ae11939335d234e333378f0c6f3d61ad7e6dd6dee3ab,33 DERBY ROAD,,,ME15 7JB,10001480031,D,C,64,80,House,Semi-Detached,2021-07-05,E07000110,E14000700,Kent,2021-07-05,marketed sale,57,76,240,123.0,4.5,43,2.4,79.0,79.0,770.0,605.0,99.0,69.0,104.0,Single,Y,,,,,100.0,double glazing installed during or after 2002,Normal,1.0,6.0,6.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,1.5,0.0,N,natural,33 DERBY ROAD,Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2021-07-05 16:40:54,Owner-occupied,10.0,,200003712027.0,Energy Assessor +596584611452011041322204392990181,"46, Queens Road",,,ME16 0LJ,1149124868,D,D,63,64,House,Semi-Detached,2011-04-13,E07000110,E14000804,Kent,2011-04-13,rental (social),57,58,285,280.0,4.3,48,4.3,74.0,50.0,661.0,665.0,154.0,154.0,91.19,Single,Y,NO DATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,50.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"System built, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.48,0.0,N,natural,"46, Queens Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2011-04-13 22:20:43,rental (social),,,200003691856.0,Address Matched +485320199602019062111234078512398,70 Pine Lodge,Tonbridge Road,,ME16 8TB,3601695768,C,C,74,79,Flat,Semi-Detached,2019-06-21,E07000110,E14000804,Kent,2019-06-21,rental (private),76,81,170,129.0,1.8,30,1.4,83.0,47.0,278.0,234.0,102.0,87.0,60.0,Single,Y,1st,N,,2104.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,25.0,0.0,From main system,Good,Good,(another dwelling below),NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Average,Average,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 25% of fixed outlets,Average,Average,mains gas (not community),0.0,unheated corridor,5.13,,,N,natural,"70 Pine Lodge, Tonbridge Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2019-06-21 11:23:40,rental (private),,,200003657948.0,Address Matched +1678080359022019100912330951418378,Flat 703,Kent House,Romney Place,ME15 6LA,7575531678,C,C,70,70,Flat,Detached,2018-11-09,E07000110,E14000804,Kent,2019-10-09,non marketed sale,73,73,193,193.0,1.8,33,1.8,46.0,46.0,303.0,303.0,275.0,275.0,57.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,"Electric immersion, standard tariff",Very Poor,Poor,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.29 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,Electric underfloor heating,Very Poor,Poor,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"Flat 703, Kent House, Romney Place",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2019-10-09 12:33:09,unknown,21.0,21.0,, +1475227591252016083014261299760747,"7, Robinson Avenue",Barming,,ME16 9BF,7703196478,B,B,87,89,House,NO DATA!,2016-08-30,E07000110,E14000804,Kent,2016-08-30,new dwelling,89,91,65,47.0,0.9,12,0.6,55.0,55.0,258.0,259.0,98.0,53.0,74.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.14 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.19 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"7, Robinson Avenue, Barming",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2016-08-30 14:26:12,unknown,25.0,25.0,10091195824.0,Address Matched +8334cbd85bef1c44c607219c5b7d65465c83ce42febe92b9465a60ef138630b4,26 Barty Way,,,ME14 4GB,10001444448,B,A,85,92,House,Detached,2021-09-15,E07000110,E14000700,Kent,2021-09-15,new dwelling,85,92,78,33.0,2.2,14,1.0,102.0,102.0,354.0,355.0,100.0,57.0,165.0,standard tariff,,,N,,,100.0,,,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.18 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.41,,,,26 Barty Way,Maidstone,Faversham and Mid Kent,Thurnham,2018,2021-09-15 15:12:41,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,1.0,,10094444546.0,Address Matched +809298889242012070317301091920178,"29, Cotswold Gardens",Downswood,,ME15 8TB,8237389968,D,C,66,78,Flat,End-Terrace,2012-07-03,E07000110,E14000700,Kent,2012-07-03,rental (private),53,64,381,294.0,2.8,67,2.2,58.0,29.0,277.0,199.0,164.0,80.0,42.0,dual,N,1st,Y,,2401.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,0.0,0.0,"Electric immersion, off-peak",Poor,Very Poor,(other premises below),,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,"Pitched, 75 mm loft insulation",Average,Average,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,No low energy lighting,Very Poor,Very Poor,electricity (not community),0.0,no corridor,,,0.0,,natural,"29, Cotswold Gardens, Downswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2012-07-03 17:30:10,rental (private),6.0,0.0,200003691638.0,Address Matched +927621022302020091408182905809908,"11, Rookery Court",Marden,,TN12 9AZ,5386228078,B,B,82,82,Flat,Mid-Terrace,2020-09-10,E07000110,E14000804,Kent,2020-09-14,marketed sale,84,84,94,94.0,1.4,16,1.4,75.0,75.0,230.0,230.0,92.0,92.0,84.0,Unknown,Y,Ground,N,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Very Good,Very Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,no corridor,,,,N,natural,"11, Rookery Court, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,INVALID!,2020-09-14 08:18:29,owner-occupied,,,10014313269.0,Address Matched +31355591912019051317531190910849,Mobo,Tyland Lane,Sandling,ME14 3BH,8909103468,E,D,46,67,House,Semi-Detached,2019-05-13,E07000110,E14000700,Kent,2019-05-13,marketed sale,37,56,353,216.0,9.1,62,5.6,135.0,87.0,1445.0,1178.0,233.0,75.0,146.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,6.0,6.0,45.0,0.0,"From main system, no cylinder thermostat",Average,Average,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,"Room heaters, mains gas",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 45% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"Mobo, Tyland Lane, Sandling",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2019-05-13 17:53:11,owner-occupied,,,200003672634.0,Address Matched +83440faa2791d6d5fc9ba0f002fce360d7abf9c885eb6453ac66b667cfcdb29f,44A PERRY STREET,,,ME14 2RP,10001570699,E,D,54,58,Flat,Mid-Terrace,2021-06-29,E07000110,E14000804,Kent,2021-07-01,ECO assessment,53,57,349,317.0,3.3,61,3.0,48.0,48.0,713.0,647.0,85.0,86.0,54.0,Single,Y,01,N,,,100.0,"double glazing, unknown install date",Normal,1.0,2.0,2.0,100.0,0.0,From main system,Good,Good,(another dwelling below),,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,"Pitched, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,no corridor,,2.8,0.0,N,"mechanical, extract only",44A PERRY STREET,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2021-07-01 18:44:10,Rented (social),7.0,,200003669912.0,Energy Assessor +121831756452018091900243491980543,"4, Tarragon Road",,,ME16 0NG,5310619468,F,C,29,69,House,Detached,2018-09-18,E07000110,E14000804,Kent,2018-09-19,marketed sale,32,70,455,171.0,12.0,68,4.2,107.0,110.0,2580.0,1183.0,158.0,76.0,171.0,Unknown,Y,NODATA!,,,2106.0,0.0,not defined,Normal,0.0,6.0,6.0,79.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Single glazed,Very Poor,Very Poor,"Granite or whinstone, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 79% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"4, Tarragon Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2018-09-19 00:24:34,owner-occupied,,,200003726878.0,Address Matched +1167383478412015011612092491950320,"178, Westmorland Road",,,ME15 8JE,3025815278,C,B,73,89,House,Mid-Terrace,2015-01-16,E07000110,E14000700,Kent,2015-01-16,ECO assessment,72,89,179,55.0,2.6,31,0.8,103.0,53.0,386.0,353.0,166.0,85.0,83.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,7.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"System built, with internal insulation",Good,Good,,,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 7% of fixed outlets,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"178, Westmorland Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2015-01-16 12:09:24,owner-occupied,,,200003680644.0,Address Matched +72216099022015062918301174618265,"7, Mote Avenue",,,ME15 7SU,6772994468,D,C,56,80,House,Detached,2015-06-09,E07000110,E14000804,Kent,2015-06-29,assessment for green deal,45,74,285,124.0,9.7,50,4.2,104.0,104.0,1752.0,978.0,166.0,79.0,192.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,1.0,7.0,7.0,83.0,2.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 83% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"7, Mote Avenue",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2015-06-29 18:30:11,owner-occupied,,,200003695758.0,Address Matched +1600052819832018011214325143978808,"29, London Road",,,ME16 8JE,1823875578,D,C,65,78,House,Semi-Detached,2018-01-11,E07000110,E14000804,Kent,2018-01-12,rental (private),57,71,199,125.0,6.3,35,4.0,140.0,99.0,1068.0,897.0,135.0,85.0,181.0,dual,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,2.0,7.0,7.0,58.0,0.0,From main system,Good,Good,(another dwelling below),NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 58% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"29, London Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2018-01-12 14:32:51,rental (private),,,200003667968.0,Address Matched +753371679222012022819425595468762,"3, Clarence Court",Weavering,,ME14 5UP,6988775968,C,C,71,73,House,Detached,2012-02-26,E07000110,E14000700,Kent,2012-02-28,marketed sale,70,71,165,155.0,3.6,32,3.4,74.0,56.0,549.0,524.0,130.0,130.0,113.03,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,1.0,7.0,7.0,69.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 69% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,2.34,0.0,,natural,"3, Clarence Court, Weavering",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2012-02-28 19:42:55,owner-occupied,13.0,9.0,200003687918.0,Address Matched +452237329222011052715510103238189,"22, Clare Place",,,ME15 9ZF,8057263768,B,B,84,84,House,End-Terrace,2011-05-27,E07000110,E14000700,Kent,2011-05-27,new dwelling,87,87,71,71.0,1.4,13,1.4,60.0,60.0,283.0,283.0,44.0,44.0,108.06,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,16.0,,"From main system, plus solar",Very Good,Very Good,Average thermal transmittance 0.18 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.23 W/m?K,Very Good,Very Good,"Room heaters, electric",,,Average thermal transmittance 0.10 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 89% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.31,,,NO DATA!,"22, Clare Place",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2011-05-27 15:51:01,,18.0,16.0,10014311512.0,Address Matched +1683886309062018120518044431758638,Ivyholme,High Street,Marden,TN12 9DR,3324081678,D,B,58,81,House,Semi-Detached,2018-12-05,E07000110,E14000804,Kent,2018-12-05,non marketed sale,52,78,315,127.0,3.9,56,1.6,51.0,51.0,660.0,469.0,119.0,75.0,70.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"Ivyholme, High Street, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1900-1929,2018-12-05 18:04:44,owner-occupied,,,200003709013.0,Address Matched +989848341732013090209435205078003,"1, Rockwell Court",Tovil,,ME15 6EQ,4375062178,C,C,71,77,Maisonette,End-Terrace,2013-09-02,E07000110,E14000804,Kent,2013-09-02,marketed sale,65,63,214,223.0,3.0,38,3.2,53.0,57.0,435.0,281.0,164.0,142.0,80.0,dual,N,1st,Y,,2602.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,"Electric immersion, off-peak",Poor,Very Poor,(other premises below),,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Roof room(s), insulated (assumed)",Good,Good,"Room heaters, electric",Poor,Very Poor,Appliance thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,no corridor,,,0.0,,natural,"1, Rockwell Court, Tovil",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2013-09-02 09:43:52,owner-occupied,8.0,8.0,10022901559.0,Address Matched +1784791522252020021317532221000763,"6, Barbados Terrace",Invicta Park,,ME14 2NT,7393219678,D,C,61,80,House,Mid-Terrace,2020-02-07,E07000110,E14000804,Kent,2020-02-13,Stock Condition Survey,54,76,287,130.0,4.0,51,1.9,63.0,63.0,717.0,536.0,97.0,66.0,80.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Flat, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"6, Barbados Terrace, Invicta Park",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2020-02-13 17:53:22,rental (social),,,200003724087.0,Address Matched +1742918682962020031216225066828820,"2, The Wickets",Marden,,TN12 9GR,2610806678,B,A,84,94,House,Detached,2020-03-12,E07000110,E14000804,Kent,2020-03-12,new dwelling,85,95,82,19.0,1.7,14,0.4,80.0,80.0,258.0,260.0,100.0,55.0,114.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.22 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"2, The Wickets, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,NO DATA!,2020-03-12 16:22:50,unknown,10.0,10.0,10094441048.0,Address Matched +526567938032010081219403176968803,2a Balmoral House,Bicknor Road,,ME15 9NU,3346888768,B,B,86,86,Flat,Mid-Terrace,2010-08-12,E07000110,E14000700,Kent,2010-08-12,rental (social),86,86,132,132.0,1.0,22,1.0,23.0,23.0,185.0,185.0,76.0,76.0,43.73,Single,Y,1st,N,3.0,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,100.0,0.0,From main system,Very Good,Very Good,(other premises below),,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.35,0.0,N,natural,"2a Balmoral House, Bicknor Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2010-08-12 19:40:31,rental (social),,,200003683498.0,Address Matched +597471629002012031311501187429478,"13, Cobfields",Chart Sutton,,ME17 3SH,6049424868,E,D,52,56,Flat,Semi-Detached,2012-03-13,E07000110,E14000700,Kent,2012-03-13,rental (social),56,59,314,287.0,3.5,58,3.2,59.0,36.0,485.0,501.0,296.0,229.0,60.11,Single,Y,Ground,N,,2601.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,1.0,33.0,0.0,"Electric immersion, standard tariff",Very Poor,Very Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,(another dwelling above),,,"Room heaters, mains gas",Average,Average,No thermostatic control of room temperature,Poor,Poor,Low energy lighting in 33% of fixed outlets,Average,Average,mains gas (not community),0.0,no corridor,,2.2,0.0,,natural,"13, Cobfields, Chart Sutton",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2012-03-13 11:50:11,rental (social),6.0,2.0,200003721768.0,Address Matched +1781582218112020013114420028700964,Flat 63 Guinevere Point,Waterhouse Avenue,,ME14 2FJ,9481888678,B,B,86,86,Flat,Mid-Terrace,2020-01-31,E07000110,E14000804,Kent,2020-01-31,new dwelling,90,90,65,65.0,0.8,11,0.8,62.0,62.0,150.0,150.0,70.0,70.0,73.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.17 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Flat 63 Guinevere Point, Waterhouse Avenue",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2020-01-31 14:42:00,unknown,10.0,10.0,10094440171.0,Address Matched +533668649302017020907200574930168,Flat 77 Pevensey Court,St. Peters Street,,ME16 0GQ,357149768,C,C,72,74,Flat,Mid-Terrace,2017-02-06,E07000110,E14000804,Kent,2017-02-09,marketed sale,55,57,315,298.0,3.3,53,3.1,75.0,53.0,341.0,346.0,150.0,126.0,61.0,dual,N,3rd,Y,,2401.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,57.0,0.0,"Electric immersion, off-peak",Average,Poor,(another dwelling below),NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,Portable electric heaters (assumed),,,"Pitched, insulated (assumed)",Good,Good,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 57% of fixed outlets,Good,Good,electricity (not community),0.0,unheated corridor,5.53,,,N,natural,"Flat 77 Pevensey Court, St. Peters Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2017-02-09 07:20:05,owner-occupied,,,10022893674.0,Address Matched +988389168112014033120095494740413,"1, Connaught Close",,,ME15 9PX,4364842178,D,B,62,83,House,End-Terrace,2014-03-31,E07000110,E14000700,Kent,2014-03-31,assessment for green deal,59,82,230,87.0,3.5,44,1.4,48.0,48.0,669.0,483.0,96.0,67.0,79.0,Single,Y,NODATA!,,,2103.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Room thermostat only,Poor,Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"1, Connaught Close",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2014-03-31 20:09:54,unknown,9.0,9.0,200003680123.0,Address Matched +768761949722012033022123266608092,"2, Brooks Close",Staplehurst,,TN12 0PP,9664496968,F,F,37,38,House,Semi-Detached,2012-03-30,E07000110,E14000804,Kent,2012-03-30,marketed sale,36,36,447,441.0,7.3,80,7.2,86.0,46.0,1226.0,1238.0,162.0,162.0,54.36,dual,Y,NODATA!,,,2603.0,100.0,double glazing installed during or after 2002,Normal,1.0,5.0,4.0,15.0,0.0,"Electric immersion, off-peak",Average,Very Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Flat, insulated (assumed)",Average,Average,"Room heaters, electric",Poor,Very Poor,Programmer and appliance thermostats,Good,Good,Low energy lighting in 15% of fixed outlets,Poor,Poor,electricity (not community),0.0,NO DATA!,,2.33,0.0,,natural,"2, Brooks Close, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1967-1975,2012-03-30 22:12:32,owner-occupied,13.0,2.0,200003678379.0,Address Matched +617183279002018071710300880582758,"3, Peter Pease Close",Kingswood,,ME17 3BZ,3026975868,C,A,76,112,House,Mid-Terrace,2018-04-25,E07000110,E14000700,Kent,2018-07-17,rental (social),77,110,145,-88.0,2.0,25,-1.1,102.0,60.0,308.0,314.0,107.0,71.0,80.0,dual (24 hour),Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,30.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Very Good,Very Good,,,,"Pitched, 270 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 30% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"3, Peter Pease Close, Kingswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2007 onwards,2018-07-17 10:30:08,rental (social),,,10014312160.0,Address Matched +675684084412011091217284699990489,"56, Salisbury Road",Penenden Heath,,ME14 2TX,4939499868,D,D,60,65,House,Mid-Terrace,2011-09-12,E07000110,E14000804,Kent,2011-09-12,marketed sale,56,62,257,224.0,4.3,50,3.8,76.0,46.0,663.0,613.0,150.0,126.0,87.42,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,2.0,4.0,4.0,36.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 36% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,2.45,0.0,,natural,"56, Salisbury Road, Penenden Heath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2011-09-12 17:28:46,owner-occupied,11.0,4.0,200003703377.0,Address Matched +83ab1c02fd1f49e1b059e83e1e8c5af2f3d274a18d15d252d7912a9e2ab90d8c,Wayside,Weavering Street,Weavering,ME14 5JR,10001684217,C,C,75,79,House,Detached,2021-08-16,E07000110,E14000700,Kent,2021-08-16,marketed sale,68,72,145,123.0,6.9,26,5.9,139.0,139.0,1106.0,1106.0,128.0,128.0,269.0,Single,Y,,,,,100.0,"double glazing, unknown install date",Normal,4.0,9.0,9.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,,,,"Roof room(s), insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.49,0.0,N,natural,"Wayside, Weavering Street, Weavering",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2021-08-16 16:45:19,Owner-occupied,33.0,,200003689292.0,Energy Assessor +431771429842010020818021174200788,"26, Woodville Road",,,ME15 7BS,4814022768,C,C,73,75,House,End-Terrace,2010-02-08,E07000110,E14000804,Kent,2010-02-08,marketed sale,70,72,211,197.0,2.8,35,2.6,61.0,41.0,432.0,415.0,94.0,94.0,79.67,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,50.0,0.0,From main system,Very Good,Very Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.38,0.0,N,natural,"26, Woodville Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2010-02-08 18:02:11,owner-occupied,,,200003683703.0,Address Matched +1021316139022013100813121464088077,"23, St. Andrews Road",,,ME16 9AN,7652384178,D,B,56,84,House,End-Terrace,2013-10-08,E07000110,E14000804,Kent,2013-10-08,marketed sale,52,84,268,75.0,4.5,52,1.3,89.0,50.0,784.0,451.0,103.0,65.0,87.0,Single,Y,NODATA!,,,2106.0,95.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,22.0,2.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Mostly double glazing,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 22% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"23, St. Andrews Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2013-10-08 13:12:14,owner-occupied,9.0,2.0,200003682168.0,Address Matched +237581535132019050214340765068406,"48, Linden Road",Coxheath,,ME17 4QS,3605458568,D,C,67,78,Maisonette,Mid-Terrace,2019-05-02,E07000110,E14000804,Kent,2019-05-02,rental (private),63,66,387,359.0,2.0,65,1.9,31.0,35.0,321.0,180.0,162.0,137.0,31.0,dual,N,Ground,N,,2602.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,80.0,0.0,"Electric immersion, off-peak",Poor,Poor,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Room heaters, electric",Very Poor,Poor,Appliance thermostats,Good,Good,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,electricity (not community),0.0,no corridor,,,,N,natural,"48, Linden Road, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2019-05-02 14:34:07,rental (private),,,200003714886.0,Address Matched +1662222129242018091120205462089498,Bow Hill Oast,Hunt Street,Yalding,ME18 6AB,3232420678,F,C,27,75,House,Detached,2018-09-11,E07000110,E14000804,Kent,2018-09-11,marketed sale,28,70,292,85.0,27.0,69,8.9,254.0,149.0,3782.0,1580.0,159.0,124.0,397.0,Single,N,NODATA!,,,2105.0,100.0,"double glazing, unknown install date",Normal,4.0,10.0,10.0,30.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, oil",Average,Average,Programmer and at least two room thermostats,Good,Good,Low energy lighting in 30% of fixed outlets,Average,Average,oil (not community),0.0,NO DATA!,,,,N,natural,"Bow Hill Oast, Hunt Street, Yalding",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2018-09-11 20:20:54,owner-occupied,,,10014311307.0,Address Matched +790991505412012051922315495920692,Flat 17 Pevensey Court,St. Peters Street,,ME16 0GQ,6292558968,B,B,83,84,Flat,Semi-Detached,2012-05-19,E07000110,E14000804,Kent,2012-05-19,marketed sale,74,75,185,179.0,1.8,33,1.8,65.0,39.0,111.0,116.0,109.0,109.0,56.0,dual,N,2nd,N,,2402.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,33.0,0.0,"Electric immersion, off-peak",Average,Very Poor,(other premises below),,,Fully double glazed,Good,Good,"Timber frame, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,(another dwelling above),,,Electric storage heaters,Average,Very Poor,Automatic charge control,Average,Average,Low energy lighting in 33% of fixed outlets,Average,Average,electricity (not community),0.0,unheated corridor,9.16,,0.0,,natural,"Flat 17 Pevensey Court, St. Peters Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2012-05-19 22:31:54,owner-occupied,6.0,2.0,10022893614.0,Address Matched +1439225379722016043011152624708926,"373, Tonbridge Road",,,ME16 8NH,2232734478,D,B,67,87,House,Mid-Terrace,2016-04-30,E07000110,E14000804,Kent,2016-04-30,none of the above,71,91,218,50.0,2.2,33,0.4,45.0,45.0,500.0,344.0,99.0,64.0,66.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,100.0,1.0,From main system,Good,Good,"Suspended, insulated",NO DATA!,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,2.41,,N,natural,"373, Tonbridge Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2016-04-30 11:15:26,owner-occupied,,,200003695398.0,Address Matched +162671099802019031214281259119928,"130, Milton Street",,,ME16 8LL,9817391568,D,C,58,75,House,Mid-Terrace,2019-03-12,E07000110,E14000804,Kent,2019-03-12,marketed sale,49,68,287,165.0,5.3,51,3.1,79.0,79.0,909.0,728.0,110.0,75.0,104.0,dual,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,6.0,6.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"130, Milton Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2019-03-12 14:28:12,owner-occupied,,,200003655707.0,Address Matched +136336129402018040515060253080368,"43, Forest Hill",,,ME15 6TH,3424320568,C,B,73,86,House,Semi-Detached,2018-02-06,E07000110,E14000804,Kent,2018-04-05,marketed sale,72,84,174,86.0,2.7,31,1.4,114.0,60.0,436.0,442.0,91.0,60.0,88.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,5.0,5.0,9.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, 270 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 9% of fixed outlets,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"43, Forest Hill",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2018-04-05 15:06:02,owner-occupied,,,200003664973.0,Address Matched +1410032362632016020423293784078109,"80, Cayser Drive",Kingswood,,ME17 3QF,6984132478,E,C,49,69,House,Semi-Detached,2016-02-03,E07000110,E14000700,Kent,2016-02-04,marketed sale,46,66,342,199.0,5.5,60,3.3,125.0,65.0,1123.0,935.0,124.0,81.0,92.0,dual,Y,NODATA!,,,2107.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,9.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 9% of fixed outlets,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"80, Cayser Drive, Kingswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2016-02-04 23:29:37,owner-occupied,,,200003701338.0,Address Matched +1482368002752016092317573694260848,"7, Denton Close",,,ME15 8ER,8825247478,D,B,63,82,House,Detached,2016-09-23,E07000110,E14000700,Kent,2016-09-23,marketed sale,56,78,247,114.0,5.2,44,2.5,129.0,71.0,852.0,657.0,197.0,79.0,120.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,6.0,6.0,18.0,0.0,From main system,Average,Average,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Timber frame, as built, insulated (assumed)",Good,Good,"Room heaters, mains gas",,,"Pitched, insulated (assumed)",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 18% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,2.38,,N,natural,"7, Denton Close",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2016-09-23 17:57:36,rental (private),,,200003685628.0,Address Matched +1562781192152017072614191791230259,"2, North Way",Penenden Heath,,ME14 2ET,2973213578,E,C,52,75,Bungalow,Detached,2017-07-26,E07000110,E14000804,Kent,2017-07-26,marketed sale,43,69,322,151.0,6.8,57,3.2,108.0,70.0,1198.0,788.0,124.0,74.0,120.0,Single,Y,NODATA!,,,2104.0,95.0,double glazing installed before 2002,Normal,1.0,7.0,7.0,47.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Mostly double glazing,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, no insulation",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 47% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"2, North Way, Penenden Heath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2017-07-26 14:19:17,owner-occupied,,,200003707417.0,Address Matched +1581482249142017101118574558439398,Flat 1 Lavender House,Northumberland Road,,ME15 7RW,6165444578,C,C,77,78,Flat,Detached,2017-10-11,E07000110,E14000700,Kent,2017-10-11,rental (social),77,79,154,141.0,1.9,27,1.7,53.0,53.0,334.0,304.0,84.0,85.0,69.0,Single,Y,Ground,N,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Solid, limited insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,7.4,,,N,natural,"Flat 1 Lavender House, Northumberland Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1996-2002,2017-10-11 18:57:45,rental (social),,,200003714056.0,Address Matched +1036904599042013111415241611570338,"36, Edelin Road",Bearsted,,ME14 4RD,4060495178,C,C,78,80,House,Detached,2013-11-07,E07000110,E14000700,Kent,2013-11-14,new dwelling,77,78,111,105.0,4.0,21,3.8,141.0,80.0,644.0,653.0,110.0,110.0,186.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.20 W/m?K,Very Good,Very Good,Fully double glazed,Good,Good,Average thermal transmittance 0.35 W/m?K,Good,Good,,,,Average thermal transmittance 0.18 W/m?K,Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 25% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"36, Edelin Road, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2013-11-14 15:24:16,NO DATA!,0.0,0.0,10022895505.0,Address Matched +301427900342009060917152167310658,Flat 2,"20, Ashford Road",,ME14 5BH,6376203668,E,D,53,64,Flat,Semi-Detached,2009-06-05,E07000110,E14000804,Kent,2009-06-09,rental (private),47,57,516,398.0,3.6,86,2.7,39.0,20.0,527.0,432.0,75.0,62.0,41.2,Single,Y,Ground,N,4.0,2101.0,100.0,double glazing installed before 2002,Normal,0.0,2.0,2.0,0.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,No time or thermostatic control of room temperature,Very Poor,Very Poor,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,unheated corridor,5.0,2.4,0.0,N,natural,"Flat 2, 20, Ashford Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2009-06-09 17:15:21,rental (private),,,200003689410.0,Address Matched +655391039922011101417104598548219,26 Thomas Place,James Whatman Way,,ME14 1FP,1920358868,C,C,79,79,Flat,Mid-Terrace,2011-10-14,E07000110,E14000804,Kent,2011-10-14,new dwelling,89,90,115,111.0,0.8,15,0.7,41.0,31.0,201.0,202.0,96.0,96.0,51.1,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,4.0,,"Community scheme, no cylinder thermostat",Good,Very Good,(other premises below),,,Fully double glazed,Good,Good,Average thermal transmittance 0.42 W/m?K,Good,Good,,,,(other premises above),,,Community scheme,Good,Very Good,"Flat rate charging, programmer and TRVs",Average,Average,Low energy lighting in 67% of fixed outlets,Good,Good,NO DATA!,0.0,NO DATA!,,2.4,,,NO DATA!,"26 Thomas Place, James Whatman Way",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2011-10-14 17:10:45,,6.0,4.0,10014312692.0,Address Matched +673268189022011090118082449598499,"52, Richmond Way",,,ME15 6BW,9488879868,C,C,69,73,House,Semi-Detached,2011-09-01,E07000110,E14000804,Kent,2011-09-01,marketed sale,69,74,194,161.0,2.9,37,2.4,77.0,42.0,460.0,412.0,95.0,84.0,76.98,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,6.0,6.0,17.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 17% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,2.33,0.0,,natural,"52, Richmond Way",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2011-09-01 18:08:24,owner-occupied,12.0,2.0,200003676411.0,Address Matched +1537268444332017042009573355978004,"23, Farleigh Heights",Tovil,,ME15 6XN,4445031578,B,A,85,96,House,Mid-Terrace,2017-04-19,E07000110,E14000804,Kent,2017-04-20,new dwelling,87,98,81,3.0,1.3,14,0.1,66.0,66.0,216.0,216.0,81.0,46.0,89.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.12 W/m+é-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.19 W/m+é-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.10 W/m+é-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"23, Farleigh Heights, Tovil",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2017-04-20 09:57:33,unknown,30.0,30.0,10091195984.0,Address Matched +1571378119722017083107334293608143,"4, Beckenham Drive",,,ME16 0TG,4915173578,D,B,60,86,Bungalow,Semi-Detached,2017-08-30,E07000110,E14000804,Kent,2017-08-31,marketed sale,59,87,315,74.0,2.7,55,0.7,45.0,45.0,457.0,349.0,151.0,62.0,48.0,Single,Y,NODATA!,,,2107.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,71.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 71% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"4, Beckenham Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2017-08-31 07:33:42,owner-occupied,,,200003662159.0,Address Matched +842428fcd8ed4311e4ed99484f651804d525f2cfabfee1f6646745bd0d8b777b,Fairway,Old Drive,,ME15 9SE,5293325968,C,B,75,81,House,Detached,2021-09-27,E07000110,E14000804,Kent,2021-09-30,marketed sale,68,75,147,111.0,7.7,26,5.8,175.0,175.0,1193.0,1080.0,171.0,132.0,297.0,Unknown,Y,,,,,100.0,double glazing installed during or after 2002,More Than Typical,3.0,8.0,8.0,73.0,0.0,"From main system, no cylinder thermostat",Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, partial insulation (assumed)",Average,Average,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 73% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,1.0,0.0,N,natural,"Fairway, Old Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1976-1982,2021-09-30 13:25:45,Owner-occupied,55.0,,200003664141.0,Energy Assessor +406585312132009120219560053068799,Havenfield,The Street,Teston,ME18 5AQ,1903740768,D,D,63,68,Bungalow,Detached,2009-12-02,E07000110,E14000804,Kent,2009-12-02,marketed sale,58,62,278,251.0,4.3,46,3.9,94.0,47.0,614.0,582.0,114.0,114.0,106.13,Single,Y,NO DATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,3.0,3.0,0.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.42,0.0,N,natural,"Havenfield, The Street, Teston",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2009-12-02 19:56:00,owner-occupied,,,200003661872.0,Address Matched +420748919032010011415390990968502,"56, Sheppey Road",,,ME15 9SS,1290541768,D,C,65,76,House,Semi-Detached,2010-01-14,E07000110,E14000804,Kent,2010-01-14,marketed sale,60,73,269,183.0,4.1,44,2.8,84.0,45.0,524.0,405.0,170.0,112.0,90.44,Single,Y,NO DATA!,,,2107.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,15.0,0.0,From main system,Average,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 150mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Average,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 15% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.39,0.0,N,natural,"56, Sheppey Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2010-01-14 15:39:09,owner-occupied,,,200003678477.0,Address Matched +786351675232012050914002153068004,"15, Farmers Close",Leeds,,ME17 1SB,7463028968,D,B,65,86,House,End-Terrace,2012-05-08,E07000110,E14000700,Kent,2012-05-09,rental (private),64,87,223,60.0,2.7,43,0.8,69.0,37.0,421.0,351.0,110.0,63.0,63.0,Unknown,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,10.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 10% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"15, Farmers Close, Leeds",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1991-1995,2012-05-09 14:00:21,rental (private),21.0,2.0,200003698361.0,Address Matched +227827970922009021317104707678601,"26, John Street",,,ME14 2SQ,77767568,D,C,64,74,House,Mid-Terrace,2009-02-13,E07000110,E14000804,Kent,2009-02-13,rental (private),59,70,258,186.0,4.8,43,3.5,92.0,54.0,617.0,482.0,141.0,102.0,94.45,Single,Y,NO DATA!,,,2107.0,60.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,30.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Partial double glazing,Poor,Poor,"Granite or whin, with internal insulation",Good,Good,,,,"Roof room(s), insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Poor,Poor,Low energy lighting in 30% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.35,0.0,N,natural,"26, John Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2009-02-13 17:10:47,rental (private),,,200003702843.0,Address Matched +640857126932011061311403055968007,"17, Terminus Road",,,ME16 9AU,2735057868,D,D,61,68,House,Mid-Terrace,2011-06-12,E07000110,E14000804,Kent,2011-06-13,marketed sale,58,67,267,210.0,3.5,51,2.7,53.0,37.0,541.0,447.0,121.0,102.0,67.8,Unknown,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,56.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, mains gas",,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 56% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,2.4,0.0,,natural,"17, Terminus Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2011-06-13 11:40:30,owner-occupied,9.0,5.0,200003676265.0,Address Matched +1063432789442013121916503011779318,"7, Edna Road",,,ME14 2QJ,3403487178,E,C,39,80,House,Semi-Detached,2013-12-19,E07000110,E14000804,Kent,2013-12-19,marketed sale,36,80,448,110.0,5.1,86,1.3,55.0,37.0,878.0,475.0,149.0,66.0,59.0,Unknown,Y,NODATA!,,,2106.0,75.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,50.0,0.0,From main system,Average,Average,"Suspended, no insulation (assumed)",,,Partial double glazing,Poor,Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, mains gas",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"7, Edna Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2013-12-19 16:50:30,owner-occupied,6.0,3.0,200003670618.0,Address Matched +337519060942009081122193864519898,Plum Cottage,Weavering Street,Weavering,ME14 5JQ,955465668,D,C,61,71,Bungalow,Detached,2009-08-11,E07000110,E14000700,Kent,2009-08-11,marketed sale,55,66,316,238.0,4.2,53,3.2,58.0,36.0,515.0,394.0,93.0,93.0,88.5,Single,Y,NO DATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,37.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,Programmer and room thermostat,Poor,Poor,Low energy lighting in 37% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.5,0.0,N,natural,"Plum Cottage, Weavering Street, Weavering",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2009-08-11 22:19:38,owner-occupied,,,200003687984.0,Address Matched +778859954232012042116363258968802,"41, Curzon Road",,,ME14 5BB,5288867968,E,C,52,78,House,Detached,2012-04-17,E07000110,E14000804,Kent,2012-04-21,marketed sale,46,75,273,113.0,6.4,53,2.7,82.0,59.0,971.0,643.0,187.0,69.0,122.0,Single,Y,NODATA!,,,2104.0,60.0,double glazing installed before 2002,Normal,0.0,6.0,6.0,60.0,0.0,From main system,Average,Average,"Suspended, no insulation (assumed)",,,Partial double glazing,Poor,Poor,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 25 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 60% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"41, Curzon Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2012-04-21 16:36:32,owner-occupied,10.0,6.0,200003705301.0,Address Matched +598023029042013111811014086470078,28 Crundale,Union Street,,ME14 1TX,2097924868,C,C,75,79,Flat,End-Terrace,2013-10-03,E07000110,E14000804,Kent,2013-11-18,none of the above,77,82,135,107.0,2.0,26,1.6,54.0,54.0,336.0,254.0,127.0,129.0,79.0,Single,Y,6th,N,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,89.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 89% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,1.5,,0.0,,natural,"28 Crundale, Union Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2013-11-18 11:01:40,rental (social),9.0,8.0,200003701444.0,Address Matched +239498030062009030521071388858921,"190a, Loose Road",,,ME15 7UF,2831378568,D,C,64,71,Flat,Semi-Detached,2009-03-05,E07000110,E14000804,Kent,2009-03-05,rental (private),59,67,293,240.0,3.6,49,2.9,62.0,37.0,449.0,388.0,84.0,74.0,73.34,dual,Y,1st,Y,2.0,2107.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,33.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Poor,Poor,Low energy lighting in 33% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.62,0.0,N,natural,"190a, Loose Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2009-03-05 21:07:13,rental (private),,,200003685942.0,Address Matched +399190229262014012709351329948114,1c Elizabeth House,Alexandra Street,,ME14 2BX,1277299668,E,D,41,65,Flat,End-Terrace,2014-01-24,E07000110,E14000804,Kent,2014-01-27,marketed sale,27,42,798,551.0,5.0,141,3.4,53.0,27.0,597.0,360.0,198.0,102.0,35.0,dual,N,1st,Y,,2401.0,50.0,double glazing installed before 2002,Normal,0.0,1.0,1.0,0.0,0.0,"Electric immersion, off-peak",Poor,Very Poor,(other premises below),,,Partial double glazing,Poor,Poor,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,Portable electric heaters (assumed),,,"Pitched, limited insulation (assumed)",Very Poor,Very Poor,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,No low energy lighting,Very Poor,Very Poor,electricity (not community),0.0,no corridor,,,0.0,,natural,"1c Elizabeth House, Alexandra Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2014-01-27 09:35:13,owner-occupied,4.0,0.0,200003728111.0,Address Matched +597134429602014022812413383449738,40 Sunningdale Court,Square Hill Road,,ME15 7TT,9688024868,C,C,70,77,Flat,End-Terrace,2014-02-17,E07000110,E14000804,Kent,2014-02-28,none of the above,72,82,202,133.0,1.9,39,1.2,31.0,31.0,336.0,236.0,125.0,100.0,48.0,Single,Y,1st,N,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,100.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,4.529,,0.0,,natural,"40 Sunningdale Court, Square Hill Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2014-02-28 12:41:33,rental (social),5.0,5.0,200003696573.0,Address Matched +203528902022020031010505416218360,"108a, Wrangleden Road",,,ME15 9LD,6143026568,C,C,71,72,Flat,Mid-Terrace,2020-03-09,E07000110,E14000700,Kent,2020-03-10,rental (social),70,71,212,204.0,2.3,37,2.2,86.0,51.0,383.0,387.0,91.0,91.0,61.0,Single,Y,1st,Y,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,33.0,0.0,From main system,Good,Good,(another dwelling below),NO DATA!,,Fully double glazed,Average,Average,"System built, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 33% of fixed outlets,Average,Average,mains gas (not community),0.0,no corridor,,,,N,natural,"108a, Wrangleden Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2020-03-10 10:50:54,rental (social),,,200003683175.0,Address Matched +1740702099702019080111374664510798,Flat 8 Sweet Briar Court,"80, London Road",,ME16 0DR,8710095678,C,C,80,80,Flat,Semi-Detached,2019-08-01,E07000110,E14000804,Kent,2019-08-01,marketed sale,82,82,114,114.0,1.5,20,1.5,61.0,61.0,271.0,271.0,65.0,65.0,73.0,Unknown,Y,1st,N,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,(another dwelling below),NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,17.2,,,N,natural,"Flat 8 Sweet Briar Court, 80, London Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1991-1995,2019-08-01 11:37:46,owner-occupied,,,10014307938.0,Address Matched +275543844132009042920552760268001,9 Robins Court,Wordsworth Road,Penenden Heath,ME14 2HJ,4120031668,E,D,40,56,Flat,Semi-Detached,2009-04-29,E07000110,E14000804,Kent,2009-04-29,rental (private),37,51,717,507.0,4.4,109,3.1,42.0,21.0,626.0,469.0,66.0,66.0,40.49,dual,Y,Ground,N,2.0,2401.0,100.0,double glazing installed before 2002,Normal,0.0,2.0,2.0,0.0,0.0,Gas multipoint,Average,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,(another dwelling above),,,Electric storage heaters,Poor,Very Poor,Manual charge control,Poor,Poor,No low energy lighting,Very Poor,Very Poor,electricity - this is for backwards compatibility only and should not be used,0.0,unheated corridor,10.56,2.38,0.0,N,natural,"9 Robins Court, Wordsworth Road, Penenden Heath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2009-04-29 20:55:27,rental (private),,,200003707514.0,Address Matched +1524566471052017030317094294030957,Sunny View,Station Road,Staplehurst,TN12 0PZ,9751140578,D,B,56,81,Bungalow,Detached,2017-03-03,E07000110,E14000804,Kent,2017-03-03,marketed sale,49,78,314,119.0,4.8,56,1.9,58.0,58.0,801.0,541.0,196.0,74.0,87.0,Unknown,Y,NODATA!,,,2107.0,100.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,100.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"Sunny View, Station Road, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1950-1966,2017-03-03 17:09:42,owner-occupied,,,200003679056.0,Address Matched +1653217198832018080222553631078703,"16, Rivers Walk",Lenham,,ME17 2JT,9361759578,C,B,74,88,House,Mid-Terrace,2018-08-02,E07000110,E14000700,Kent,2018-08-02,marketed sale,73,88,174,65.0,2.4,31,0.9,80.0,55.0,384.0,351.0,98.0,66.0,77.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,56.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 56% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"16, Rivers Walk, Lenham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2018-08-02 22:55:36,owner-occupied,,,200003710455.0,Address Matched +135787846412018081108482192080154,"225, Upper Fant Road",,,ME16 8DA,1403620568,D,C,59,79,House,Mid-Terrace,2018-08-09,E07000110,E14000804,Kent,2018-08-11,marketed sale,53,75,307,142.0,3.7,54,1.8,67.0,51.0,645.0,513.0,95.0,63.0,69.0,Single,Y,NODATA!,,,2107.0,85.0,"double glazing, unknown install date",Normal,2.0,4.0,4.0,67.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Mostly double glazing,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 67% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"225, Upper Fant Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2018-08-11 08:48:21,owner-occupied,,,200003656154.0,Address Matched +1684064289642018120519401161180278,"29, Bower Place",,,ME16 8BG,8665081678,E,B,41,87,House,Mid-Terrace,2018-12-03,E07000110,E14000804,Kent,2018-12-05,marketed sale,39,86,407,72.0,5.5,71,1.0,107.0,61.0,1076.0,387.0,91.0,52.0,77.0,dual,Y,NODATA!,,,2102.0,0.0,not defined,Normal,2.0,4.0,3.0,25.0,0.0,Gas multipoint,Average,Average,"To unheated space, no insulation (assumed)",NO DATA!,,Single glazed,Very Poor,Very Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,Portable electric heaters (assumed),,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,Low energy lighting in 25% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"29, Bower Place",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2018-12-05 19:40:11,owner-occupied,,,200003667330.0,Address Matched +50666242102020080423281057600378,"14, Clock House Rise",Coxheath,,ME17 4GS,2110846568,C,A,80,93,House,Mid-Terrace,2020-08-03,E07000110,E14000804,Kent,2020-08-04,marketed sale,81,94,119,25.0,1.6,21,0.4,67.0,67.0,258.0,261.0,108.0,63.0,77.0,Unknown,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"14, Clock House Rise, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2020-08-04 23:28:10,owner-occupied,,,10022900534.0,Address Matched +1776149499962020011008412358298811,"6, Dunster Terrace",Westmorland Road,,ME15 8NH,1593948678,C,B,76,90,House,Mid-Terrace,2019-12-11,E07000110,E14000700,Kent,2020-01-10,rental (social),77,91,156,45.0,1.9,27,0.6,95.0,61.0,284.0,290.0,122.0,76.0,69.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,43.0,0.0,From main system,Good,Good,"Suspended, limited insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 43% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"6, Dunster Terrace, Westmorland Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1996-2002,2020-01-10 08:41:23,rental (social),,,200003685643.0,Address Matched +1659441318832018083007250699278100,"4, Orchard Close",Orchard Street,,ME15 6NU,1049100678,B,B,83,83,Flat,End-Terrace,2018-08-29,E07000110,E14000804,Kent,2018-08-30,marketed sale,85,85,97,97.0,1.3,17,1.3,62.0,62.0,203.0,203.0,99.0,99.0,77.0,Single,Y,1st,N,,2110.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,(another dwelling below),NO DATA!,,Fully double glazed,Good,Good,"System built, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and underfloor heating, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,2.61,,,N,natural,"4, Orchard Close, Orchard Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2018-08-30 07:25:06,owner-occupied,,,10022896242.0,Address Matched +181355289942018121415162151389578,Flat 7,"201, Boxley Road",,ME14 2TL,8927183568,C,C,70,70,Flat,Mid-Terrace,2018-12-13,E07000110,E14000804,Kent,2018-12-14,rental (private),72,73,373,365.0,1.3,66,1.3,30.0,20.0,128.0,129.0,174.0,174.0,20.0,Unknown,Y,1st,N,,2307.0,100.0,"double glazing, unknown install date",Normal,1.0,2.0,2.0,50.0,0.0,Community scheme,Good,Good,(another dwelling below),NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Poor,Poor,,,,(another dwelling above),,,Community scheme,Good,Good,"Flat rate charging, TRVs",Average,Average,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (community),0.0,heated corridor,,,,N,natural,"Flat 7, 201, Boxley Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2018-12-14 15:16:21,rental (private),,,200003704275.0,Address Matched +1719911989062019051009295244818881,1 The Courtyard Cowstead Farm,Cowstead Road,Stockbury,ME9 7UA,8469834678,F,C,37,78,House,Semi-Detached,2019-05-09,E07000110,E14000700,Kent,2019-05-10,marketed sale,35,72,246,70.0,13.0,60,4.7,116.0,116.0,1801.0,1084.0,198.0,76.0,224.0,Single,N,NODATA!,,,2107.0,100.0,"double glazing, unknown install date",Normal,0.0,10.0,10.0,100.0,0.0,From main system,Poor,Poor,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, insulated (assumed)",Good,Good,"Room heaters, wood logs",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, oil",Poor,Average,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,oil (not community),0.0,NO DATA!,,,,N,natural,"1 The Courtyard Cowstead Farm, Cowstead Road, Stockbury",Maidstone,Faversham and Mid Kent,SITTINGBOURNE,England and Wales: 1991-1995,2019-05-10 09:29:52,owner-occupied,,,10014307851.0,Address Matched +362093220962009091207311257728731,"12, Orchard Close",Coxheath,,ME17 4HE,3500237668,D,C,67,72,Bungalow,Semi-Detached,2009-09-12,E07000110,E14000804,Kent,2009-09-12,marketed sale,63,67,277,243.0,3.1,46,2.7,74.0,37.0,440.0,418.0,116.0,101.0,74.78,dual,Y,NO DATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.42,0.0,N,natural,"12, Orchard Close, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2009-09-12 07:31:12,owner-occupied,,,200003713641.0,Address Matched +1488516245412017062710152698230648,"1, Godfrey Meadow",Hollingbourne,,ME17 1FZ,6827587478,B,A,84,93,Bungalow,Detached,2017-06-26,E07000110,E14000700,Kent,2017-06-27,new dwelling,85,94,84,26.0,1.9,15,0.6,73.0,73.0,312.0,314.0,114.0,61.0,125.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.12 W/m-¦K,Very Good,Very Good,"Boiler and underfloor heating, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"1, Godfrey Meadow, Hollingbourne",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2017-06-27 10:15:26,owner-occupied,10.0,10.0,10091196214.0,Address Matched +1536028929902018062113101858182998,"15, Phoenix Road",Marden,,TN12 9FR,1963221578,B,A,84,96,House,End-Terrace,2018-06-21,E07000110,E14000804,Kent,2018-06-21,new dwelling,87,98,79,-2.0,1.2,14,0.0,61.0,61.0,193.0,193.0,80.0,48.0,84.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.28 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"15, Phoenix Road, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,NO DATA!,2018-06-21 13:10:18,owner-occupied,10.0,10.0,10093303297.0,Address Matched +734104212932011121915365126968597,"47, Spot Lane",Bearsted,,ME15 8NX,1746514968,E,D,46,57,House,Semi-Detached,2011-12-19,E07000110,E14000700,Kent,2011-12-19,rental (private),42,52,352,273.0,6.6,68,5.1,107.0,54.0,1050.0,850.0,135.0,114.0,59.75,dual,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,2.0,5.0,4.0,0.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Flat, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,2.26,0.0,,natural,"47, Spot Lane, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2011-12-19 15:36:51,rental (private),12.0,0.0,200003690745.0,Address Matched +1106689089902014032123494821042108,"36, Tovil Road",,,ME15 6QJ,3993980278,E,B,51,85,House,Mid-Terrace,2014-03-20,E07000110,E14000804,Kent,2014-03-21,none of the above,47,85,302,68.0,5.0,58,1.2,103.0,52.0,922.0,444.0,111.0,69.0,87.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,0.0,2.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, no insulation",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"36, Tovil Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2014-03-21 23:49:48,owner-occupied,11.0,0.0,200003664462.0,Address Matched +84887545bb48f248d2b98861b5bd64f0cd9398fbd587cd7c689bca233ca344f2,62 CUMBERLAND AVENUE,,,ME15 7JJ,10001546968,E,B,54,83,House,Mid-Terrace,2021-06-29,E07000110,E14000700,Kent,2021-07-01,ECO assessment,51,82,339,106.0,4.1,60,1.3,117.0,58.0,667.0,471.0,204.0,79.0,69.0,Single,Y,,,,,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,0.0,0.0,"From main system, no cylinder thermostat",Average,Average,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,"Pitched, insulated (assumed)",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,,,2.75,0.0,N,natural,62 CUMBERLAND AVENUE,Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2021-07-01 10:11:41,Rented (social),8.0,,200003714146.0,Energy Assessor +47915970642008121607495655589858,Flat 6,Bellwood Court,Sutton Road,ME15 8RB,645175568,B,B,84,85,Flat,Semi-Detached,2008-12-15,E07000110,E14000700,Kent,2008-12-16,new dwelling,84,84,129,124.0,1.3,21,1.2,42.0,28.0,172.0,174.0,69.0,69.0,60.46,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,3.0,,From main system,Very Good,Very Good,Average thermal transmittance = 0.19 W/m?K,Very Good,Very Good,Fully double glazed,Good,Good,Average thermal transmittance = 0.29 W/m?K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,,,NO DATA!,"Flat 6, Bellwood Court, Sutton Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2008-12-16 07:49:56,,6.0,3.0,10014306251.0,Address Matched +1276904689922015021812394442388335,"10, Skinners Way",Langley,,ME17 3LB,3481882378,D,C,63,75,Maisonette,Mid-Terrace,2015-02-18,E07000110,E14000700,Kent,2015-02-18,marketed sale,58,76,308,175.0,3.0,54,1.7,38.0,38.0,428.0,309.0,245.0,112.0,55.0,Single,Y,Ground,N,,2107.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,100.0,0.0,"From main system, no cylinder thermostat",Poor,Poor,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,no corridor,,,,N,natural,"10, Skinners Way, Langley",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2015-02-18 12:39:44,owner-occupied,,,200003697709.0,Address Matched +1677192861512019100912102893089364,Flat 10 Kent House,Romney Place,,ME15 6LA,3427131678,D,D,57,57,Flat,Detached,2018-11-09,E07000110,E14000804,Kent,2019-10-09,non marketed sale,61,61,322,322.0,2.4,54,2.4,37.0,37.0,533.0,533.0,251.0,251.0,45.0,standard tariff,,ground floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,"Electric immersion, standard tariff",Very Poor,Poor,Average thermal transmittance 0.31 W/m-¦K,Average,Average,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.34 W/m-¦K,Good,Good,,,,(other premises above),,,Electric underfloor heating,Very Poor,Poor,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"Flat 10 Kent House, Romney Place",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2019-10-09 12:10:28,unknown,21.0,21.0,10094442252.0,Address Matched +848a1ff13cfbc1c409e09f8d62e7d5bc67b582221a9dc03bf68e55e9f0da241b,176 Loose Road,,,ME15 7UD,10001420670,C,B,69,84,House,Semi-Detached,2021-08-19,E07000110,E14000804,Kent,2021-08-19,marketed sale,64,80,201,102.0,4.1,35,2.1,105.0,105.0,620.0,497.0,147.0,101.0,115.0,Single,Y,,,,,100.0,double glazing installed during or after 2002,Normal,1.0,5.0,5.0,77.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, 270 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 77% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.41,0.0,N,natural,176 Loose Road,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2021-08-19 16:01:46,Owner-occupied,13.0,,200003685911.0,Energy Assessor +1575953184752017091909093890930452,North Lodge,West Street,Hunton,ME15 0RP,4296404578,F,A,30,98,Bungalow,Detached,2017-09-19,E07000110,E14000804,Kent,2017-09-19,marketed sale,26,89,371,-17.0,9.5,96,0.9,67.0,67.0,1194.0,470.0,194.0,74.0,100.0,Single,N,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,95.0,1.0,"From main system, no cylinder thermostat",Very Poor,Poor,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Sandstone or limestone, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, oil",Average,Average,Programmer and room thermostat,Average,Average,Low energy lighting in 95% of fixed outlets,Very Good,Very Good,oil (not community),0.0,NO DATA!,,,,N,natural,"North Lodge, West Street, Hunton",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2017-09-19 09:09:38,owner-occupied,,,200003663620.0,Address Matched +290519171752009052217230003210466,"207, Loose Road",,,ME15 7DR,4667132668,G,G,13,14,Bungalow,Detached,2009-05-22,E07000110,E14000700,Kent,2009-05-22,marketed sale,12,12,876,875.0,15.0,132,15.0,104.0,58.0,1916.0,1934.0,90.0,90.0,110.8,dual,Y,NO DATA!,,,2401.0,0.0,INVALID!,Normal,0.0,5.0,4.0,20.0,0.0,Gas instantaneous at point of use,Good,Good,"Solid, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Cavity wall, filled cavity",Good,Good,Portable electric heaters,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,Electric storage heaters,Poor,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 20% of fixed outlets,Poor,Poor,electricity - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,0.0,N,natural,"207, Loose Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2009-05-22 17:23:00,owner-occupied,,,200003684193.0,Address Matched +1187712059842014080822001329640138,Mill Stone Cottage,Ulcombe Road,Headcorn,TN27 9JX,9841956278,D,B,58,85,House,Semi-Detached,2014-08-07,E07000110,E14000700,Kent,2014-08-08,marketed sale,49,78,219,75.0,5.9,51,2.3,84.0,84.0,789.0,500.0,502.0,284.0,115.0,dual,N,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,7.0,7.0,83.0,1.0,From main system,Poor,Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Poor,Poor,"Room heaters, wood logs",,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, oil",Good,Average,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 83% of fixed outlets,Very Good,Very Good,oil (not community),0.0,NO DATA!,,,0.0,,natural,"Mill Stone Cottage, Ulcombe Road, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,England and Wales: before 1900,2014-08-08 22:00:13,owner-occupied,12.0,10.0,200003708674.0,Address Matched +928300829642013051018413302879308,"86, Hastings Road",,,ME15 7SR,3673728078,D,B,60,85,House,Semi-Detached,2013-05-10,E07000110,E14000804,Kent,2013-05-10,marketed sale,56,85,243,70.0,3.9,47,1.2,47.0,47.0,638.0,411.0,145.0,69.0,84.0,Single,Y,NODATA!,,,2106.0,0.0,not defined,Normal,0.0,6.0,6.0,100.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"86, Hastings Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2013-05-10 18:41:33,owner-occupied,12.0,12.0,200003695701.0,Address Matched +167306960832008102010542226268695,Flat 1 Aberdeen House,Highland Road,,ME15 7QG,6566682568,C,C,77,77,Flat,End-Terrace,2008-10-20,E07000110,E14000700,Kent,2008-10-20,rental (social),74,74,254,251.0,1.7,42,1.6,25.0,18.0,245.0,247.0,54.0,54.0,39.22,Single,Y,Ground,N,2.0,2106.0,100.0,double glazing installed before 2002,Normal,0.0,1.0,1.0,60.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 60% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.36,0.0,N,natural,"Flat 1 Aberdeen House, Highland Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2008-10-20 10:54:22,rental (social),,,200003684301.0,Address Matched +146578459002019081312145652119278,"9, Tufton Street",,,ME14 1ES,1041651568,C,B,69,87,House,Mid-Terrace,2019-08-13,E07000110,E14000804,Kent,2019-08-13,marketed sale,67,87,236,73.0,2.3,42,0.8,43.0,43.0,410.0,338.0,87.0,59.0,56.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"9, Tufton Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2019-08-13 12:14:56,owner-occupied,,,200003687459.0,Address Matched +1072391849002014011620533712849868,"352, Loose Road",,,ME15 9TT,4064748178,F,D,34,64,House,Semi-Detached,2014-01-16,E07000110,E14000804,Kent,2014-01-16,assessment for green deal,30,56,370,187.0,13.0,72,6.5,121.0,80.0,2316.0,1448.0,196.0,79.0,177.0,Single,Y,NODATA!,,,2104.0,0.0,not defined,Normal,1.0,7.0,7.0,46.0,2.0,From main system,Average,Average,"Suspended, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 46% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"352, Loose Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2014-01-16 20:53:37,owner-occupied,13.0,6.0,200003678558.0,Address Matched +203633250062009010714413356268041,Fairview,Vicarage Road,Yalding,ME18 6DW,4588516568,E,D,41,62,House,Semi-Detached,2009-01-06,E07000110,E14000804,Kent,2009-01-07,rental (private),35,54,468,295.0,7.8,78,4.9,91.0,47.0,975.0,678.0,210.0,115.0,109.44,Single,Y,NO DATA!,,,2104.0,20.0,secondary glazing,Normal,1.0,4.0,4.0,7.0,1.0,"From main system, no cylinderstat",Poor,Average,"Suspended, no insulation (assumed)",,,Partial secondary glazing,Poor,Poor,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Flat, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Average,Good,Programmer and room thermostat,Poor,Poor,Low energy lighting in 7% of fixed outlets,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.6,0.0,N,natural,"Fairview, Vicarage Road, Yalding",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2009-01-07 14:41:33,rental (private),,,200003661552.0,Address Matched +115527299962011021722584588638279,"11, Sylvan Glade",,,ME5 9PW,7899988468,D,C,56,76,House,Detached,2011-02-17,E07000110,E14000700,Kent,2011-02-17,marketed sale,50,73,332,180.0,5.4,55,2.9,100.0,53.0,786.0,452.0,184.0,130.0,96.52,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,6.0,6.0,11.0,0.0,From main system,Average,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, partial insulation (assumed)",Average,Average,,,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Average,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 11% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.36,0.0,N,natural,"11, Sylvan Glade",Maidstone,Faversham and Mid Kent,CHATHAM,England and Wales: 1976-1982,2011-02-17 22:58:45,owner-occupied,,,200003708161.0,Address Matched +1044567648912014071816230494940719,Grassmere,Hampstead Lane,Yalding,ME18 6HJ,7956846178,G,B,6,87,Bungalow,Detached,2014-07-15,E07000110,E14000804,Kent,2014-07-18,assessment for green deal,19,86,601,60.0,11.0,106,1.3,118.0,59.0,2673.0,515.0,198.0,71.0,104.0,Single,Y,NODATA!,,,2601.0,100.0,double glazing installed before 2002,Normal,1.0,5.0,5.0,0.0,0.0,Electric instantaneous at point of use,Very Poor,Very Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, no insulation",Very Poor,Very Poor,"Room heaters, electric",Very Poor,Very Poor,No thermostatic control of room temperature,Poor,Poor,No low energy lighting,Very Poor,Very Poor,electricity (not community),0.0,NO DATA!,,,0.0,,natural,"Grassmere, Hampstead Lane, Yalding",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2014-07-18 16:23:04,unknown,9.0,0.0,200003656843.0,Address Matched +564129359602016101719144182169878,"12, Kemsley Street Road",Bredhurst,,ME7 3LR,8612851868,C,B,71,85,House,End-Terrace,2016-10-13,E07000110,E14000700,Kent,2016-10-17,rental (social),68,83,192,88.0,3.0,34,1.4,83.0,58.0,487.0,452.0,145.0,85.0,88.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,56.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 56% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,2.4,,N,natural,"12, Kemsley Street Road, Bredhurst",Maidstone,Faversham and Mid Kent,GILLINGHAM,England and Wales: 1950-1966,2016-10-17 19:14:41,rental (social),,,200003694238.0,Address Matched +108534563912016062120004990260240,"12, Maple Avenue",,,ME16 0DD,2032308468,D,C,61,80,House,Semi-Detached,2016-06-21,E07000110,E14000804,Kent,2016-06-21,marketed sale,54,76,247,113.0,4.8,44,2.3,93.0,66.0,813.0,624.0,182.0,88.0,108.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,3.0,6.0,6.0,58.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 58% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,2.42,,N,natural,"12, Maple Avenue",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2016-06-21 20:00:49,owner-occupied,,,200003658573.0,Address Matched +1622699689262018052114450917598328,Lime Kiln Cottage,Hollingbourne Hill,Hollingbourne,ME17 1QH,2185837578,D,A,55,119,House,Semi-Detached,2018-05-21,E07000110,E14000700,Kent,2018-05-21,rental (private),52,97,379,-4.0,3.4,64,0.0,40.0,43.0,659.0,358.0,188.0,81.0,53.0,dual,N,NODATA!,,,2603.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,"Electric immersion, off-peak",Poor,Poor,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Solid brick, with internal insulation",Good,Good,,,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Room heaters, electric",Very Poor,Poor,Programmer and appliance thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,NO DATA!,,,,N,natural,"Lime Kiln Cottage, Hollingbourne Hill, Hollingbourne",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2018-05-21 14:45:09,rental (private),,,200003701885.0,Address Matched +666105909962011081518065799828509,"1, Ravens Dane Close",Downswood,,ME15 8XL,909039868,D,C,64,70,House,Semi-Detached,2011-08-12,E07000110,E14000700,Kent,2011-08-15,marketed sale,64,72,254,199.0,2.7,49,2.1,40.0,40.0,430.0,358.0,126.0,95.0,55.62,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,75.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,2.41,0.0,,natural,"1, Ravens Dane Close, Downswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1991-1995,2011-08-15 18:06:57,owner-occupied,8.0,6.0,200003691590.0,Address Matched +646469419262011062422084007748169,"12, Lucks Way",Marden,,TN12 9QW,6023197868,C,C,72,73,House,Semi-Detached,2011-06-24,E07000110,E14000804,Kent,2011-06-24,marketed sale,72,72,161,157.0,3.1,31,3.0,76.0,53.0,492.0,495.0,88.0,88.0,99.32,dual,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,2.0,6.0,6.0,57.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 57% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,2.26,0.0,,natural,"12, Lucks Way, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1976-1982,2011-06-24 22:08:40,owner-occupied,14.0,8.0,200003669042.0,Address Matched +1377761030532015102207394294278094,"13, Button Lane",Bearsted,,ME15 8NJ,3434000478,D,B,59,81,Bungalow,Detached,2015-10-21,E07000110,E14000700,Kent,2015-10-22,marketed sale,53,78,314,133.0,4.0,55,1.7,70.0,48.0,689.0,548.0,162.0,71.0,72.0,Single,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,2.0,5.0,5.0,55.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, mains gas",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 55% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"13, Button Lane, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2015-10-22 07:39:42,owner-occupied,,,200003690696.0,Address Matched +685972479302011100521174294090758,"47, Milton Street",,,ME16 8JY,1312270968,D,D,58,62,House,Mid-Terrace,2011-10-05,E07000110,E14000804,Kent,2011-10-05,marketed sale,61,67,269,236.0,3.9,43,3.3,66.0,51.0,798.0,719.0,98.0,88.0,89.87,dual,Y,NODATA!,,,2107.0,100.0,"double glazing, unknown install date",Normal,1.0,4.0,4.0,70.0,3.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 70% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,2.28,0.0,,natural,"47, Milton Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2011-10-05 21:17:42,owner-occupied,10.0,7.0,200003655382.0,Address Matched +648339619022011070222475898828359,"28, Tovil Road",,,ME15 6QJ,5984108868,E,D,51,56,House,Mid-Terrace,2011-07-02,E07000110,E14000804,Kent,2011-07-02,marketed sale,46,52,327,284.0,5.6,63,4.9,70.0,45.0,912.0,821.0,95.0,84.0,88.26,Single,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,4.0,44.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 44% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,1.87,0.0,,natural,"28, Tovil Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2011-07-02 22:47:58,owner-occupied,9.0,4.0,200003664397.0,Address Matched +199631440202008120913153756580418,"71, Haste Hill Road",Boughton Monchelsea,,ME17 4LN,7256445568,E,D,54,66,Bungalow,Semi-Detached,2008-12-09,E07000110,E14000700,Kent,2008-12-09,marketed sale,48,60,353,264.0,5.4,59,4.0,82.0,41.0,602.0,504.0,148.0,93.0,103.44,Single,Y,NO DATA!,,,2103.0,90.0,double glazing installed during or after 2002,Normal,1.0,5.0,5.0,0.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Partial double glazing,Good,Good,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Room thermostat only,Poor,Poor,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,0.0,N,natural,"71, Haste Hill Road, Boughton Monchelsea",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2008-12-09 13:15:37,owner-occupied,,,200003674661.0,Address Matched +132077279502015043013182941957808,2 Spenney Arch Cottages,Claygate,Marden,TN12 9PH,5512879468,E,A,48,111,House,Mid-Terrace,2015-04-30,E07000110,E14000804,Kent,2015-04-30,ECO assessment,23,121,333,-81.0,8.3,103,-2.1,97.0,57.0,773.0,321.0,260.0,100.0,81.0,dual,N,NODATA!,,,2101.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,4.0,30.0,0.0,"Electric immersion, off-peak",Very Poor,Poor,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, coal",Average,Very Poor,No time or thermostatic control of room temperature,Very Poor,Very Poor,Low energy lighting in 30% of fixed outlets,Average,Average,house coal (not community),0.0,NO DATA!,,,,N,natural,"2 Spenney Arch Cottages, Claygate, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1900-1929,2015-04-30 13:18:29,rental (private),,,200003733019.0,Address Matched +1702999159652019030713300091010164,"2, Worsfold Court",Enterprise Road,,ME15 6HW,1421913678,D,C,66,74,Flat,End-Terrace,2019-03-07,E07000110,E14000804,Kent,2019-03-07,rental,48,56,366,299.0,4.5,62,3.7,122.0,67.0,592.0,435.0,170.0,170.0,73.0,dual,N,1st,Y,,2401.0,100.0,double glazing installed during or after 2002,Normal,1.0,3.0,3.0,18.0,0.0,"Electric immersion, off-peak",Average,Poor,(another dwelling below),NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,"Pitched, 150 mm loft insulation",Good,Good,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 18% of fixed outlets,Poor,Poor,electricity (not community),0.0,unheated corridor,3.53,,,N,natural,"2, Worsfold Court, Enterprise Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2019-03-07 13:30:00,owner-occupied,,,200003683346.0,Address Matched +1716812688552020052616542521200167,Flat 11 Guinevere Point,Waterhouse Avenue,,ME14 2FJ,1797814678,B,B,86,86,Flat,End-Terrace,2020-05-26,E07000110,E14000804,Kent,2020-05-26,new dwelling,90,90,66,66.0,0.8,12,0.8,58.0,58.0,153.0,153.0,70.0,70.0,72.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.18 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Flat 11 Guinevere Point, Waterhouse Avenue",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2020-05-26 16:54:25,unknown,10.0,10.0,10094440119.0,Address Matched +84dfcf8669bc1a029fbe1125e98db877b4d6f1542c24479acba3f3b683cb63ed,19 THE BENTLETTS,COLLIER STREET,,ME18 6FH,10001409551,B,A,85,93,House,Detached,2021-07-30,E07000110,E14000804,Kent,2021-07-30,new dwelling,85,93,78,29.0,2.0,14,0.8,98.0,98.0,310.0,311.0,99.0,57.0,150.0,standard tariff,,,N,,,100.0,,,,,,100.0,0.0,"From main system, flue gas heat recovery",Very Good,Very Good,Average thermal transmittance 0.18 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.41,,,,"19 THE BENTLETTS, COLLIER STREET",Maidstone,Maidstone and The Weald,YALDING,2021,2021-07-30 08:56:07,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,1.0,,10094444019.0,Energy Assessor +794278309262012052919285898288312,"6, Royston Road",Bearsted,,ME15 8NS,1996088968,D,B,59,82,House,Semi-Detached,2012-05-28,E07000110,E14000700,Kent,2012-05-29,marketed sale,55,80,227,88.0,5.2,44,2.1,116.0,58.0,797.0,522.0,127.0,80.0,119.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,6.0,6.0,0.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"6, Royston Road, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2012-05-29 19:28:58,owner-occupied,16.0,0.0,200003693098.0,Address Matched +158351489202019060913494952110138,Warren Lodge,Warren Street,Lenham,ME17 2EG,2282481568,F,C,36,73,House,Detached,2019-06-07,E07000110,E14000700,Kent,2019-06-09,marketed sale,34,66,285,100.0,11.0,69,4.8,125.0,92.0,1473.0,1120.0,176.0,75.0,161.0,Unknown,N,NODATA!,,,2106.0,72.0,double glazing installed during or after 2002,Normal,3.0,7.0,7.0,63.0,0.0,From main system,Poor,Poor,"Suspended, no insulation (assumed)",NO DATA!,,Partial double glazing,Average,Average,"Timber frame, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, oil",Poor,Average,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 63% of fixed outlets,Good,Good,oil (not community),0.0,NO DATA!,,,,N,natural,"Warren Lodge, Warren Street, Lenham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2019-06-09 13:49:49,owner-occupied,,,200003734686.0,Address Matched +1322702219242015051819170231659288,2 Trumans Farm Cottages,Willow Lane,Paddock Wood,TN12 6PF,3278216378,D,A,55,97,House,Semi-Detached,2015-05-18,E07000110,E14000804,Kent,2015-05-18,ECO assessment,47,89,201,-14.0,6.4,51,0.9,140.0,70.0,938.0,587.0,212.0,103.0,126.0,Single,N,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,4.0,4.0,0.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, oil",Average,Average,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,oil (not community),0.0,NO DATA!,,,,N,natural,"2 Trumans Farm Cottages, Willow Lane, Paddock Wood",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1930-1949,2015-05-18 19:17:02,owner-occupied,,,200003659890.0,Address Matched +398025984452009111316440108919666,"13, Blean Square",,,ME14 5QU,6635489668,E,C,53,71,House,Semi-Detached,2009-11-13,E07000110,E14000804,Kent,2009-11-13,marketed sale,47,66,391,242.0,4.9,65,3.0,63.0,37.0,692.0,455.0,145.0,107.0,74.8,Single,Y,NO DATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,30.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 30% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,0.0,N,natural,"13, Blean Square",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2009-11-13 16:44:01,owner-occupied,,,200003721067.0,Address Matched +1446516389842016052410151947462578,"17, Iden Crescent",Staplehurst,,TN12 0NX,8832784478,D,B,64,85,House,Semi-Detached,2016-05-23,E07000110,E14000804,Kent,2016-05-24,marketed sale,62,84,237,82.0,3.3,42,1.2,85.0,53.0,588.0,455.0,162.0,75.0,80.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,4.0,4.0,40.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 40% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,2.32,,N,natural,"17, Iden Crescent, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1967-1975,2016-05-24 10:15:19,owner-occupied,,,200003677136.0,Address Matched +768326199902012033016330891627108,"1, Massey Close",,,ME15 6ZR,2989296968,B,B,88,88,House,End-Terrace,2012-03-30,E07000110,E14000804,Kent,2012-03-30,new dwelling,90,90,55,55.0,1.2,11,1.2,54.0,54.0,285.0,285.0,97.0,97.0,109.64,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,11.0,,From main system,Good,Good,Average thermal transmittance 0.15 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.19 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.12 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.39,,,NO DATA!,"1, Massey Close",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2012-03-30 16:33:08,,11.0,11.0,10014313170.0,Address Matched +283513553232012073114354391768705,"3, Church Lane",Bearsted,,ME14 4EF,5561761668,C,B,70,82,House,Detached,2012-07-31,E07000110,E14000700,Kent,2012-07-31,marketed sale,66,80,152,86.0,5.2,29,3.0,74.0,74.0,877.0,668.0,92.0,93.0,178.0,Unknown,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,6.0,6.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"3, Church Lane, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2012-07-31 14:35:43,owner-occupied,10.0,10.0,200003694629.0,Address Matched +108327112022020080718481777838440,"42, Halstead Walk",,,ME16 0PW,4763167468,C,B,71,87,House,Mid-Terrace,2020-08-07,E07000110,E14000804,Kent,2020-08-07,marketed sale,70,86,203,76.0,2.2,36,0.9,75.0,52.0,378.0,361.0,91.0,62.0,61.0,Unknown,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,4.0,4.0,56.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 56% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"42, Halstead Walk",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2020-08-07 18:48:17,owner-occupied,,,200003723309.0,Address Matched +1181372552952014072809092491240425,"43, York Road",,,ME15 7QT,4508216278,C,B,79,90,House,Mid-Terrace,2014-07-25,E07000110,E14000700,Kent,2014-07-28,marketed sale,77,92,116,32.0,1.9,23,0.6,75.0,49.0,488.0,359.0,180.0,77.0,80.0,Unknown,Y,NODATA!,,,2107.0,100.0,double glazing installed during or after 2002,Normal,1.0,5.0,5.0,46.0,0.0,From main system,Average,Average,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 46% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,,natural,"43, York Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2014-07-28 09:09:24,owner-occupied,13.0,6.0,200003715690.0,Address Matched +886483349812013022020013592270506,"37, Newbury Avenue",,,ME16 0RG,5627925078,E,B,54,88,Bungalow,Semi-Detached,2013-02-20,E07000110,E14000804,Kent,2013-02-20,marketed sale,51,89,314,51.0,3.6,60,0.6,64.0,38.0,502.0,338.0,206.0,63.0,60.0,dual,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,1.0,3.0,3.0,33.0,0.0,"From main system, no cylinder thermostat",Poor,Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 33% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"37, Newbury Avenue",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2013-02-20 20:01:35,owner-occupied,9.0,3.0,200003659363.0,Address Matched +338719737952009080611050406010669,3 Price Court,Church Street,,ME14 1DT,6911765668,B,B,83,83,Flat,NO DATA!,2009-08-04,E07000110,E14000804,Kent,2009-08-06,new dwelling,81,81,176,176.0,1.2,29,1.2,26.0,26.0,226.0,226.0,66.0,66.0,42.5,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,4.0,,From main system,Very Good,Very Good,(other premises below),,,Single glazed,Very Poor,Very Poor,Average thermal transmittance 0.28 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.20 W/m?K,Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.8,,,NO DATA!,"3 Price Court, Church Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2009-08-06 11:05:04,,5.0,4.0,10014306410.0,Address Matched +1535950037832018032911400154278200,Flat 6,"3, Cascade Close",Marden,TN12 9FW,3054221578,B,B,84,84,Flat,End-Terrace,2018-03-29,E07000110,E14000804,Kent,2018-03-29,new dwelling,88,88,85,85.0,0.8,15,0.8,41.0,41.0,153.0,153.0,66.0,66.0,55.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.28 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Flat 6, 3, Cascade Close, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,NO DATA!,2018-03-29 11:40:01,owner-occupied,10.0,10.0,10093303370.0,Address Matched +818469449402012072610335802022868,"33, Oriel Grove",,,ME15 9WR,5495740078,B,B,83,84,House,Mid-Terrace,2012-07-26,E07000110,E14000700,Kent,2012-07-26,new dwelling,87,88,88,81.0,1.1,17,1.0,62.0,38.0,221.0,224.0,78.0,78.0,63.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,3.0,,From main system,Good,Good,Average thermal transmittance 0.20 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.34 W/m?K,Good,Good,,,,Average thermal transmittance 0.24 W/m?K,Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 38% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.31,,,NO DATA!,"33, Oriel Grove",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2012-07-26 10:33:58,,8.0,3.0,10014311547.0,Address Matched +1730244319842019061913020663519118,"5, Vickery Court",Staplehurst,,TN12 0GQ,4822515678,B,A,85,96,House,Mid-Terrace,2019-06-19,E07000110,E14000804,Kent,2019-06-19,new dwelling,87,98,78,-2.0,1.2,14,0.0,71.0,71.0,194.0,194.0,73.0,43.0,86.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.27 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"5, Vickery Court, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,NO DATA!,2019-06-19 13:02:06,unknown,18.0,18.0,10094441942.0,Address Matched +1420132799442017030208493840230198,"24, Bluebell Way",Allington,,ME16 0ZU,8484992478,B,A,84,95,House,Detached,2017-03-01,E07000110,E14000804,Kent,2017-03-02,new dwelling,85,96,86,9.0,1.4,15,0.2,59.0,59.0,234.0,234.0,87.0,52.0,90.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.14 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.27 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"24, Bluebell Way, Allington",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2017-03-02 08:49:38,owner-occupied,15.0,15.0,10091195350.0,Address Matched +36709929102018102915090249382918,"124, Ashford Road",Bearsted,,ME14 4LX,7141623468,D,C,61,75,House,Semi-Detached,2018-10-29,E07000110,E14000700,Kent,2018-10-29,ECO assessment,55,71,238,148.0,5.6,42,3.5,81.0,81.0,1008.0,586.0,162.0,106.0,134.0,Unknown,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,7.0,6.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,Portable electric heaters (assumed),,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"124, Ashford Road, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2018-10-29 15:09:02,owner-occupied,,,200003692462.0,Address Matched +293417869022018100814022252688838,"Pondside, Great Cheveney",Goudhurst Road,Marden,TN12 9LX,3536652668,F,A,22,110,Bungalow,Semi-Detached,2018-10-08,E07000110,E14000804,Kent,2018-10-08,rental (private),37,85,513,78.0,5.6,79,0.8,52.0,57.0,1531.0,480.0,339.0,98.0,71.0,Single,N,NODATA!,,,2602.0,100.0,"double glazing, unknown install date",Normal,1.0,3.0,3.0,100.0,0.0,"Electric immersion, standard tariff",Very Poor,Poor,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,"Room heaters, wood logs",,,"Pitched, 100 mm loft insulation",Average,Average,"Room heaters, electric",Very Poor,Poor,Appliance thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,NO DATA!,,,,N,natural,"Pondside, Great Cheveney, Goudhurst Road, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1950-1966,2018-10-08 14:02:22,rental (private),,,200003668131.0,Address Matched +254321327732013030722081749068100,11 Hanover Court,Snowdon Avenue,,ME14 5NP,2059179568,D,C,65,70,Flat,Mid-Terrace,2013-03-07,E07000110,E14000804,Kent,2013-03-07,rental (social),65,71,271,224.0,2.2,50,1.8,42.0,30.0,332.0,298.0,142.0,121.0,44.0,dual,Y,Ground,N,,2504.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,60.0,0.0,"Electric immersion, off-peak",Average,Very Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Warm air, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 60% of fixed outlets,Good,Good,mains gas (not community),0.0,no corridor,,,0.0,,natural,"11 Hanover Court, Snowdon Avenue",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2013-03-07 22:08:17,rental (social),5.0,3.0,200003705889.0,Address Matched +1335292599842015062212104036659568,White House Farm,Stilebridge Lane,Linton,ME17 4DE,5858996378,D,C,57,70,House,Detached,2015-06-16,E07000110,E14000804,Kent,2015-06-22,FiT application,48,61,178,116.0,9.6,47,6.7,91.0,91.0,1437.0,1331.0,366.0,112.0,205.0,Single,N,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,8.0,8.0,100.0,0.0,"From main system, no cylinder thermostat",Poor,Poor,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Timber frame, as built, partial insulation (assumed)",Average,Average,,,,"Pitched, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, oil",Average,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,oil (not community),0.0,NO DATA!,,,,N,natural,"White House Farm, Stilebridge Lane, Linton",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2015-06-22 12:10:40,owner-occupied,,,200003674174.0,Address Matched +533096559222010082715361879638730,"66, Hereford Road",,,ME15 7NB,3796539768,C,C,69,75,House,Semi-Detached,2010-08-27,E07000110,E14000700,Kent,2010-08-27,marketed sale,66,71,224,190.0,3.7,37,3.2,107.0,53.0,510.0,476.0,151.0,127.0,113.8,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,2.0,5.0,5.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, mains gas",,,"Flat, insulated (assumed)",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.5,0.0,N,natural,"66, Hereford Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2010-08-27 15:36:18,owner-occupied,,,200003712379.0,Address Matched +1685523850452019041517313799910662,Flat 35 Coronet House,"11, Queen Anne Road",,ME14 1GD,6258091678,D,D,67,67,Flat,Detached,2019-04-12,E07000110,E14000804,Kent,2019-04-15,new dwelling,70,70,395,395.0,1.3,67,1.3,20.0,20.0,258.0,258.0,133.0,133.0,19.0,standard tariff,,top floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,Electric instantaneous at point of use,Very Poor,Very Poor,(other premises below),,,Fully double glazed,Good,Good,Average thermal transmittance 0.26 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.24 W/m-¦K,Good,Good,"Room heaters, electric",Very Poor,Poor,Programmer and room thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"Flat 35 Coronet House, 11, Queen Anne Road",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2019-04-15 17:31:37,unknown,5.0,5.0,10094441212.0,Address Matched +16938089042018101610343845889558,59 Wallis Place,Hart Street,,ME16 8FB,1026088468,C,C,80,80,Flat,Semi-Detached,2018-10-15,E07000110,E14000804,Kent,2018-10-16,rental (private),81,81,116,116.0,1.6,20,1.6,62.0,62.0,229.0,229.0,123.0,123.0,78.0,Single,Y,4th,Y,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,(another dwelling below),NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Flat, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,heated corridor,,,,N,natural,"59 Wallis Place, Hart Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2018-10-16 10:34:38,rental (private),,,10022900659.0,Address Matched +597414249922012111920372694018542,"23, Plumpton Walk",,,ME15 8UQ,4963424868,C,B,72,87,House,Mid-Terrace,2012-11-19,E07000110,E14000700,Kent,2012-11-19,rental (social),74,89,153,51.0,2.2,29,0.8,78.0,44.0,373.0,354.0,105.0,70.0,78.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,More Than Typical,0.0,3.0,3.0,22.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 22% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"23, Plumpton Walk",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1976-1982,2012-11-19 20:37:26,rental (social),9.0,2.0,200003725605.0,Address Matched +1571976086812017090409180797030350,6 Broadway Heights,"23, The Broadway",,ME16 8GJ,3067673578,C,C,80,80,Flat,Enclosed Mid-Terrace,2017-09-01,E07000110,E14000804,Kent,2017-09-04,rental (social),83,83,121,121.0,1.2,21,1.2,44.0,44.0,198.0,198.0,93.0,93.0,55.0,Single,Y,1st,N,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,"To external air, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"System built, as built, insulated (assumed)",Very Good,Very Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,1.8,,,N,natural,"6 Broadway Heights, 23, The Broadway",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2017-09-04 09:18:07,rental (social),,,10022896830.0,Address Matched +8560a7ccce82a8dd82dfc50ad17a249a1496ee16ad28380f8156a86aca40433d,1 KINGS REACH,,,ME15 7LZ,10001321861,E,C,53,80,House,End-Terrace,2021-06-28,E07000110,E14000700,Kent,2021-07-01,ECO assessment,48,77,314,121.0,5.8,55,2.3,160.0,80.0,1072.0,649.0,142.0,86.0,105.0,Single,Y,,,,,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,0.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,"Pitched, insulated (assumed)",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,,,2.75,0.0,N,natural,1 KINGS REACH,Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2021-07-01 10:31:14,Rented (social),10.0,,200003724192.0,Energy Assessor +1735137343052019071116402995010063,"11, Chapman Avenue",,,ME15 8EN,322355678,E,C,54,80,House,Detached,2019-07-09,E07000110,E14000700,Kent,2019-07-11,marketed sale,45,75,286,115.0,8.2,52,3.4,164.0,104.0,1367.0,790.0,165.0,77.0,156.0,dual,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,1.0,7.0,6.0,42.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 42% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"11, Chapman Avenue",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2019-07-11 16:40:29,owner-occupied,,,200003685754.0,Address Matched +1409002734152016020415235592060548,Winchmore,Ashford Road,Hollingbourne,ME17 1XH,5810422478,C,B,71,91,Bungalow,Detached,2016-02-04,E07000110,E14000700,Kent,2016-02-04,marketed sale,65,84,176,70.0,6.0,31,2.5,107.0,107.0,1045.0,1012.0,193.0,94.0,194.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,2.0,9.0,9.0,84.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Timber frame, as built, partial insulation (assumed)",Average,Average,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 84% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"Winchmore, Ashford Road, Hollingbourne",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2016-02-04 15:23:55,owner-occupied,,,200003698122.0,Address Matched +376869537552009100815533303019063,Flat 66 Lee Heights,Bambridge Court,,ME14 2LD,358738668,E,C,54,74,Flat,Semi-Detached,2009-10-08,E07000110,E14000804,Kent,2009-10-08,marketed sale,69,68,244,250.0,2.8,37,2.9,84.0,46.0,368.0,238.0,283.0,164.0,75.65,Single,N,Ground,N,5.0,2603.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,0.0,0.0,"Electric immersion, standard tariff",Very Poor,Poor,"Solid, insulated (assumed)",,,Fully double glazed,Good,Good,"Timber frame, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Room heaters, electric",Very Poor,Poor,Programmer and appliance thermostats,Good,Good,No low energy lighting,Very Poor,Very Poor,electricity - this is for backwards compatibility only and should not be used,0.0,unheated corridor,8.49,2.29,0.0,N,natural,"Flat 66 Lee Heights, Bambridge Court",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2009-10-08 15:53:33,owner-occupied,,,10022893037.0,Address Matched +1203187257712014091018425196940223,"5, North Down",Staplehurst,,TN12 0PG,2333767278,F,B,38,87,House,Semi-Detached,2014-09-10,E07000110,E14000804,Kent,2014-09-10,none of the above,35,88,426,56.0,6.1,82,0.8,82.0,47.0,1012.0,388.0,286.0,74.0,74.0,Single,Y,NODATA!,,,2102.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,25.0,0.0,"From main system, no cylinder thermostat",Poor,Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, no insulation",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Average,"Programmer, no room thermostat",Very Poor,Very Poor,Low energy lighting in 25% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"5, North Down, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1950-1966,2014-09-10 18:42:51,owner-occupied,8.0,2.0,200003678350.0,Address Matched +1717070697032020030409295081078905,Flat 34 Guinevere Point,Waterhouse Avenue,,ME14 2FJ,9531914678,B,B,86,86,Flat,End-Terrace,2020-03-04,E07000110,E14000804,Kent,2020-03-04,new dwelling,91,91,62,62.0,0.8,11,0.8,58.0,58.0,142.0,142.0,70.0,70.0,72.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.18 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Flat 34 Guinevere Point, Waterhouse Avenue",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2020-03-04 09:29:50,unknown,10.0,10.0,10094440142.0,Address Matched +744395776252012012920590591220298,3 The Red Houses,Old Ashford Road,Lenham,ME17 2DG,2889615968,F,E,34,40,House,Semi-Detached,2012-01-29,E07000110,E14000700,Kent,2012-01-29,marketed sale,27,31,416,373.0,9.0,101,8.1,90.0,48.0,1327.0,1224.0,164.0,143.0,89.1,Unknown,N,NODATA!,,,2106.0,90.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,11.0,2.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Mostly double glazing,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, oil",Average,Average,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 11% of fixed outlets,Poor,Poor,oil (not community),0.0,NO DATA!,,2.0,0.0,,natural,"3 The Red Houses, Old Ashford Road, Lenham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2012-01-29 20:59:05,owner-occupied,9.0,1.0,200003725287.0,Address Matched +85890d3e06174d30e4a395236953b44204c18ec774f83156eabc9be0d76adffe,28 Clock House Rise,Coxheath,,ME17 4GS,1035446568,B,A,81,93,House,Mid-Terrace,2021-09-11,E07000110,E14000804,Kent,2021-09-12,rental,82,95,113,21.0,1.5,20,0.3,69.0,69.0,248.0,249.0,95.0,60.0,77.0,Single,Y,,,,,100.0,double glazing installed during or after 2002,Normal,1.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",,,Fully double glazed,Good,Good,"Timber frame, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.38,0.0,N,natural,"28 Clock House Rise, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007-2011,2021-09-12 10:26:41,Rented (private),11.0,,10022900547.0,Energy Assessor +53524099842012052812223042322448,"156, Merton Road",Bearsted,,ME15 8LS,2862393468,D,C,58,77,House,Semi-Detached,2012-05-24,E07000110,E14000700,Kent,2012-05-28,marketed sale,53,75,251,120.0,4.7,48,2.3,71.0,51.0,764.0,568.0,104.0,80.0,97.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,5.0,5.0,60.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 60% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"156, Merton Road, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2012-05-28 12:22:30,owner-occupied,10.0,6.0,200003686126.0,Address Matched +361194926452009091019422602910768,4 Dawsons Cottages,The Green,West Farleigh,ME15 0NN,7885627668,E,E,43,44,House,End-Terrace,2009-09-10,E07000110,E14000804,Kent,2009-09-10,rental (private),42,42,405,401.0,5.5,73,5.5,57.0,38.0,860.0,865.0,119.0,119.0,84.06,Single,N,NO DATA!,,,2106.0,80.0,double glazing installed during or after 2002,Normal,2.0,4.0,4.0,50.0,2.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Partial double glazing,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, oil",Good,Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 50% of fixed outlets,Good,Good,oil - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,0.0,N,natural,"4 Dawsons Cottages, The Green, West Farleigh",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2009-09-10 19:42:26,rental (private),,,200003663925.0,Address Matched +1781174416312020013116423728700665,"1, Amsbury Road",Coxheath,,ME17 4DW,6575688678,D,C,65,74,House,Detached,2020-01-31,E07000110,E14000804,Kent,2020-01-31,marketed sale,57,67,207,153.0,6.6,38,5.0,180.0,104.0,1149.0,1069.0,97.0,97.0,173.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,3.0,9.0,9.0,27.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, partial insulation (assumed)",Average,Average,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, limited insulation (assumed)",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 27% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"1, Amsbury Road, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1976-1982,2020-01-31 16:42:37,owner-occupied,,,200003712108.0,Address Matched +1198678339142014090215011825742638,"10, Winifred Road",Bearsted,,ME15 8NR,9168537278,D,B,62,88,Bungalow,Semi-Detached,2014-08-27,E07000110,E14000700,Kent,2014-09-02,marketed sale,61,90,243,45.0,3.0,47,0.6,62.0,41.0,558.0,350.0,122.0,83.0,64.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,3.0,3.0,50.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"10, Winifred Road, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2014-09-02 15:01:18,owner-occupied,6.0,3.0,200003688831.0,Address Matched +984847656152013080818043192070118,27 Newlyn Court,Tufton Street,,ME14 1EZ,1800622178,D,C,63,79,Maisonette,Mid-Terrace,2013-08-08,E07000110,E14000804,Kent,2013-08-08,rental (social),53,67,314,213.0,3.7,56,2.5,69.0,46.0,416.0,197.0,281.0,148.0,67.0,dual,N,3rd,Y,,2602.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,1.0,38.0,0.0,"Electric immersion, off-peak",Poor,Very Poor,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,"Pitched, 100 mm loft insulation",Average,Average,"Room heaters, electric",Poor,Very Poor,Appliance thermostats,Good,Good,Low energy lighting in 38% of fixed outlets,Average,Average,electricity (not community),0.0,no corridor,,,0.0,,natural,"27 Newlyn Court, Tufton Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2013-08-08 18:04:31,rental (social),8.0,3.0,200003688149.0,Address Matched +1210862829042014092515411426842858,"55, Newbury Avenue",,,ME16 0RG,3056328278,E,B,48,84,Bungalow,Detached,2014-09-25,E07000110,E14000804,Kent,2014-09-25,marketed sale,45,84,356,78.0,4.5,69,1.0,75.0,43.0,707.0,445.0,284.0,78.0,66.0,Single,Y,NODATA!,,,2101.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,25.0,0.0,"From main system, no cylinder thermostat",Poor,Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,No time or thermostatic control of room temperature,Very Poor,Very Poor,Low energy lighting in 25% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"55, Newbury Avenue",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2014-09-25 15:41:14,owner-occupied,8.0,2.0,200003659372.0,Address Matched +85b46e859d035f46d748c4647905872b246a571a4d8e320dc014e9e4b34071cf,"26, Eyhorne Street",Hollingbourne,,ME17 1TR,9411782078,D,B,60,86,House,Mid-Terrace,2021-07-13,E07000110,E14000700,Kent,2021-07-13,marketed sale,59,87,276,80.0,4.0,44,1.1,90.0,72.0,782.0,444.0,82.0,55.0,89.0,Single,Y,,,,,100.0,double glazing installed during or after 2002,Normal,3.0,5.0,5.0,75.0,0.0,From main system,Good,Good,"To unheated space, no insulation (assumed)",,,Fully double glazed,Good,Good,"Timber frame, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Flat, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.32,0.0,N,natural,"26, Eyhorne Street, Hollingbourne",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2021-07-13 16:48:13,Owner-occupied,16.0,,200003722198.0,Address Matched +1047754009222013112613061866268857,"8, Stockton Close",Penenden Heath,,ME14 2DW,5685076178,D,B,64,85,House,Semi-Detached,2013-11-26,E07000110,E14000804,Kent,2013-11-26,marketed sale,61,85,216,70.0,3.4,42,1.1,47.0,47.0,621.0,423.0,90.0,64.0,81.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"8, Stockton Close, Penenden Heath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2013-11-26 13:06:18,owner-occupied,8.0,8.0,200003706429.0,Address Matched +85bf8413bba89f9b274e483c122dfebd6dc6ca8addc190aa0530802985aa15f6,APARTMENT 30,SANDLING PARK,SANDLING LANE,ME14 2NY,10001630322,D,C,64,80,Flat,Mid-Terrace,2021-07-06,E07000110,E14000804,Kent,2021-07-06,marketed sale,68,67,254,261.0,2.1,43,2.2,49.0,54.0,412.0,222.0,327.0,166.0,50.0,Single,N,03,Y,,,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,100.0,0.0,"Electric immersion, standard tariff",Very Poor,Poor,(another dwelling below),,,Fully double glazed,Good,Good,"System built, as built, insulated (assumed)",Good,Good,,,,"Flat, insulated (assumed)",Good,Good,"Room heaters, electric",Very Poor,Poor,Programmer and appliance thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,unheated corridor,8.9,2.3,0.0,N,natural,"APARTMENT 30, SANDLING PARK, SANDLING LANE",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2021-07-06 13:14:59,Owner-occupied,7.0,,10014307126.0,Energy Assessor +821241169742012080222565207020228,"18, Hillary Road",Penenden Heath,,ME14 2JR,6742960078,D,B,62,82,House,Semi-Detached,2012-08-02,E07000110,E14000804,Kent,2012-08-02,none of the above,56,79,223,83.0,4.0,46,1.7,70.0,51.0,556.0,458.0,189.0,74.0,87.0,Single,Y,NODATA!,,,2107.0,100.0,double glazing installed before 2002,Less Than Typical,1.0,4.0,4.0,62.0,1.0,"From main system, no cylinder thermostat",Poor,Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, smokeless fuel",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 62% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"18, Hillary Road, Penenden Heath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2012-08-02 22:56:52,unknown,13.0,8.0,200003707012.0,Address Matched +1054968382312013120316432492079912,"9, Hampton Road",,,ME14 5QW,9270227178,D,B,64,89,House,End-Terrace,2013-12-03,E07000110,E14000804,Kent,2013-12-03,assessment for green deal,63,91,218,40.0,3.1,42,0.6,77.0,44.0,483.0,316.0,153.0,76.0,73.0,Single,Y,NODATA!,,,2106.0,40.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,25.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Partial double glazing,Poor,Poor,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 25% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"9, Hampton Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2013-12-03 16:43:24,rental (private),8.0,2.0,200003671977.0,Address Matched +1301151519222015040714174034938835,"2, Melford Drive",,,ME16 0UN,3360164378,E,C,47,75,House,Detached,2015-03-27,E07000110,E14000804,Kent,2015-04-07,ECO assessment,38,69,350,148.0,8.2,62,3.5,91.0,91.0,1458.0,812.0,192.0,117.0,133.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,7.0,7.0,80.0,0.0,From main system,Average,Average,"Solid, limited insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"2, Melford Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2015-04-07 14:17:40,owner-occupied,,,200003725093.0,Address Matched +496336904752015072807191697250476,2 Orchard Cottages,Lughorse Lane,Yalding,ME18 6EB,4664476768,D,B,56,87,House,Semi-Detached,2015-07-27,E07000110,E14000804,Kent,2015-07-28,marketed sale,51,80,196,36.0,6.3,46,2.2,89.0,89.0,1066.0,870.0,155.0,101.0,136.0,Unknown,N,NODATA!,,,2107.0,100.0,double glazing installed before 2002,Normal,1.0,7.0,7.0,81.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, wood logs",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, oil",Average,Average,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 81% of fixed outlets,Very Good,Very Good,oil (not community),0.0,NO DATA!,,,,N,natural,"2 Orchard Cottages, Lughorse Lane, Yalding",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2015-07-28 07:19:16,owner-occupied,,,200003661614.0,Address Matched +596515999962014111411541204678804,"7, Woollett Street",,,ME14 1UX,39914868,C,B,71,90,House,Mid-Terrace,2014-11-13,E07000110,E14000804,Kent,2014-11-14,assessment for green deal,73,93,191,30.0,1.7,37,0.3,36.0,36.0,372.0,317.0,68.0,45.0,46.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,2.0,2.0,2.0,86.0,0.0,From main system,Good,Good,"To unheated space, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 86% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"7, Woollett Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2014-11-14 11:54:12,rental (social),7.0,6.0,200003701495.0,Address Matched +864722349062019050807030913438271,"44, Stagshaw Close",,,ME15 6TN,7124473078,C,C,72,80,Flat,Semi-Detached,2019-05-07,E07000110,E14000804,Kent,2019-05-08,marketed sale,69,69,224,227.0,2.4,38,2.5,53.0,60.0,378.0,247.0,197.0,171.0,64.0,dual,N,Ground,N,,2603.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,100.0,0.0,"Electric immersion, off-peak",Poor,Poor,"Solid, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Room heaters, electric",Very Poor,Poor,Programmer and appliance thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,unheated corridor,11.49,,,N,natural,"44, Stagshaw Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2019-05-08 07:03:09,owner-occupied,,,10022893286.0,Address Matched +55532770242009012015125456612008,"32, Arundel Square",,,ME15 6HB,5234176568,C,C,73,74,Flat,Semi-Detached,2009-01-20,E07000110,E14000804,Kent,2009-01-20,new dwelling,81,82,158,150.0,1.5,24,1.4,50.0,29.0,159.0,161.0,233.0,233.0,61.24,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,5.0,,"Electric immersion, standard tariff",,,(other premises below),,,Fully double glazed,Good,Good,Average thermal transmittance = 0.30 W/m?K,Good,Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Very Good,Very Good,Time and temperature zone control,Good,Good,Low energy lighting in 29% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.3,,,NO DATA!,"32, Arundel Square",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2009-01-20 15:12:54,,17.0,5.0,10022895132.0,Address Matched +859382566312015020810184893050507,"30, Perry Street",,,ME14 2RP,5733633078,D,A,65,93,House,End-Terrace,2015-02-06,E07000110,E14000804,Kent,2015-02-08,assessment for green deal,63,94,286,19.0,2.5,50,0.2,56.0,37.0,443.0,250.0,112.0,73.0,49.0,dual,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,2.0,2.0,50.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"30, Perry Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2015-02-08 10:18:48,rental (social),,,200003669566.0,Address Matched +1371693959542015100721031834950538,"11, Henley Fields",Weavering,,ME14 5UY,5511759378,D,B,68,83,House,Detached,2015-10-07,E07000110,E14000700,Kent,2015-10-07,rental (private),64,80,217,106.0,3.3,38,1.6,82.0,55.0,549.0,510.0,151.0,83.0,86.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,More Than Typical,1.0,4.0,4.0,50.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"11, Henley Fields, Weavering",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2015-10-07 21:03:18,rental (private),,,200003689700.0,Address Matched +681773799262011092309541100978329,"36, Locks Yard",Headcorn,,TN27 9AD,2082930968,B,B,82,82,Flat,NO DATA!,2011-09-23,E07000110,E14000700,Kent,2011-09-23,new dwelling,87,87,90,90.0,1.0,17,1.0,43.0,43.0,213.0,213.0,78.0,78.0,58.47,standard tariff,,top floor,,,,,NO DATA!,NO DATA!,,,,6.0,,From main system,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.36 W/m?K,Good,Good,"Room heaters, electric",,,Average thermal transmittance 0.11 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in 86% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.31,,,NO DATA!,"36, Locks Yard, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,NO DATA!,2011-09-23 09:54:11,,7.0,6.0,10014312115.0,Address Matched +1765080789922019111211320907198551,"10, Sandstone Rise",,,ME5 9DH,5094867678,C,B,73,86,House,Detached,2019-11-11,E07000110,E14000700,Kent,2019-11-12,marketed sale,70,84,174,83.0,2.9,31,1.4,82.0,82.0,460.0,422.0,134.0,81.0,96.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,5.0,5.0,83.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 83% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"10, Sandstone Rise",Maidstone,Faversham and Mid Kent,CHATHAM,England and Wales: 1983-1990,2019-11-12 11:32:09,owner-occupied,,,200003674117.0,Address Matched +675346899102011091508533784999658,"1, Cedar Gardens",The Street,,ME9 7UG,7144499868,D,D,57,60,Bungalow,End-Terrace,2011-09-15,E07000110,E14000700,Kent,2011-09-15,rental (social),40,42,488,465.0,4.9,86,4.7,35.0,35.0,429.0,444.0,270.0,199.0,56.5,dual,N,NODATA!,,,2401.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,100.0,0.0,"Electric immersion, off-peak",Poor,Very Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, 250 mm loft insulation",Good,Good,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,NO DATA!,,2.31,0.0,,natural,"1, Cedar Gardens, The Street",Maidstone,Faversham and Mid Kent,SITTINGBOURNE,England and Wales: 1950-1966,2011-09-15 08:53:37,rental (social),7.0,7.0,200003702024.0,Address Matched +688525789922011101215495380328309,"13, Locks Yard",Headcorn,,TN27 9AD,849880968,B,B,82,82,House,End-Terrace,2011-10-12,E07000110,E14000700,Kent,2011-10-12,new dwelling,85,85,86,86.0,1.7,16,1.7,64.0,64.0,281.0,281.0,95.0,95.0,105.96,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,12.0,,From main system,Good,Good,Average thermal transmittance 0.17 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.27 W/m?K,Very Good,Very Good,"Room heaters, electric",,,Average thermal transmittance 0.14 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.33,,,NO DATA!,"13, Locks Yard, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,NO DATA!,2011-10-12 15:49:53,,15.0,12.0,10014312092.0,Address Matched +877222369902019020708543403410168,"419, Tonbridge Road",,,ME16 8NJ,979364078,E,B,54,81,House,Mid-Terrace,2019-02-06,E07000110,E14000804,Kent,2019-02-07,marketed sale,46,77,328,117.0,5.0,58,1.8,62.0,62.0,857.0,500.0,112.0,75.0,86.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"419, Tonbridge Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2019-02-07 08:54:34,owner-occupied,,,200003695765.0,Address Matched +426798359262010012617020831968860,"28, Downs Close",Headcorn,,TN27 9UG,6344581768,C,C,70,75,House,Semi-Detached,2010-01-26,E07000110,E14000700,Kent,2010-01-26,rental (private),65,71,283,233.0,2.6,47,2.1,42.0,28.0,387.0,341.0,113.0,96.0,54.35,Single,Y,NO DATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,1.0,3.0,3.0,50.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.3,0.0,N,natural,"28, Downs Close, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,England and Wales: 1991-1995,2010-01-26 17:02:08,rental (private),,,200003701034.0,Address Matched +1549650047012017060609403191030759,Flat 1,Holbrook House,72 Bank Street,ME14 4SN,7918712578,C,C,78,78,Flat,NO DATA!,2017-06-05,E07000110,E14000700,Kent,2017-06-06,new dwelling,63,63,289,289.0,2.5,49,2.5,41.0,41.0,179.0,179.0,176.0,176.0,50.0,off-peak 7 hour,,mid floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Average,Poor,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.59 W/m+é-¦K,Good,Good,,,,(other premises above),,,"Boiler and radiators, electric",Average,Very Poor,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"Flat 1, Holbrook House, 72 Bank Street",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2017-06-06 09:40:31,unknown,10.0,10.0,10093304695.0,Address Matched +85f0617e4e6c23a3926c18128246bbe3bd982e5c651128bb771bc04285960919,200 Upper Fant Road,,,ME16 8DH,10001409803,C,A,74,92,House,Mid-Terrace,2021-09-13,E07000110,E14000804,Kent,2021-09-14,marketed sale,75,94,171,21.0,1.9,30,0.3,54.0,54.0,339.0,260.0,71.0,47.0,62.0,Single,Y,,,,,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Suspended, insulated",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and underfloor heating, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.41,0.0,N,natural,200 Upper Fant Road,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2021-09-14 09:03:13,Owner-occupied,18.0,,200003656289.0,Energy Assessor +85f85bf58ebb492432a51e985816248f8ca9703ddda67576c81a7517a1f54a69,37 Clifford Way,,,ME16 8GD,10001474821,C,B,72,88,House,End-Terrace,2021-09-15,E07000110,E14000804,Kent,2021-09-17,marketed sale,73,89,208,60.0,1.7,37,0.5,44.0,44.0,261.0,261.0,120.0,96.0,46.0,Single,Y,,,,,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"To external air, insulated (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Flat, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.33,0.0,N,natural,37 Clifford Way,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007-2011,2021-09-17 07:47:51,Owner-occupied,11.0,,10022896050.0,Energy Assessor +1071898839302014011612433413849668,"1, Cornflower Close",Weavering,,ME14 5UL,8337938178,E,C,49,78,House,Detached,2014-01-16,E07000110,E14000700,Kent,2014-01-16,none of the above,49,81,271,104.0,8.4,45,2.8,126.0,82.0,1725.0,937.0,218.0,80.0,184.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,7.0,7.0,46.0,1.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, wood logs",,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Average,Average,Programmer and room thermostat,Average,Average,Low energy lighting in 46% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"1, Cornflower Close, Weavering",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2014-01-16 12:43:34,owner-occupied,24.0,11.0,200003687867.0,Address Matched +85fcda99e8ce2d1765fd961629e7f69f35caa6c7d646e70bb4566fc039b36d03,41 ELLIS FIELD,OTHAM,,ME15 8YL,10001485776,B,A,85,94,House,Detached,2021-09-30,E07000110,E14000804,Kent,2021-09-30,new dwelling,86,95,76,22.0,1.8,13,0.5,92.0,92.0,282.0,284.0,97.0,54.0,136.0,standard tariff,,,N,,,100.0,,,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.19 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.38,,,,"41 ELLIS FIELD, OTHAM",Maidstone,Maidstone and The Weald,OTHAM,2021,2021-09-30 07:45:03,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,15.0,,10094440508.0,Address Matched +1776082442842020010918251165800918,"100a, Salisbury Road",Penenden Heath,,ME14 2TX,8891848678,E,C,44,73,Flat,End-Terrace,2020-01-09,E07000110,E14000804,Kent,2020-01-09,rental (private),30,65,751,315.0,4.7,127,2.0,36.0,36.0,826.0,266.0,187.0,187.0,37.0,dual,N,Ground,N,,2401.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,100.0,0.0,Electric instantaneous at point of use,Very Poor,Poor,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, electric",,,(another dwelling above),,,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,no corridor,,,,N,natural,"100a, Salisbury Road, Penenden Heath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2020-01-09 18:25:11,rental (private),,,200003729377.0,Address Matched +499987410912010061519190990900773,"42, Bedgebury Close",,,ME14 5QZ,7306007768,E,D,52,57,House,End-Terrace,2010-06-15,E07000110,E14000804,Kent,2010-06-15,rental (private),58,63,301,270.0,4.0,48,3.6,52.0,52.0,598.0,560.0,292.0,249.0,82.8,dual,Y,NO DATA!,,,2504.0,100.0,double glazing installed during or after 2002,Normal,1.0,4.0,3.0,90.0,0.0,"Electric immersion, off-peak",Very Poor,Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,"Flat, insulated (assumed)",Average,Average,"Warm air, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 90% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.37,0.0,N,natural,"42, Bedgebury Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2010-06-15 19:19:09,rental (private),,,200003672041.0,Address Matched +1217412700012014100917071197049525,"14, St. Stephens Square",,,ME15 6RE,5522078278,D,B,68,87,House,End-Terrace,2014-10-08,E07000110,E14000804,Kent,2014-10-09,marketed sale,71,90,189,46.0,2.1,35,0.6,82.0,41.0,432.0,396.0,69.0,45.0,58.0,Single,Y,NODATA!,,,2107.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,0.0,0.0,From main system,Good,Good,"Suspended, limited insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"14, St. Stephens Square",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2014-10-09 17:07:11,owner-occupied,7.0,0.0,200003666018.0,Address Matched +845664309922012101313323632878452,"66a, Northumberland Road",,,ME15 7TG,5377042078,D,D,60,68,Flat,Semi-Detached,2012-10-13,E07000110,E14000700,Kent,2012-10-13,marketed sale,60,70,301,227.0,2.5,58,1.9,48.0,26.0,391.0,336.0,132.0,97.0,43.0,Single,Y,1st,Y,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,20.0,0.0,From main system,Average,Average,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 20% of fixed outlets,Poor,Poor,mains gas (not community),0.0,no corridor,,,0.0,,natural,"66a, Northumberland Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2012-10-13 13:32:36,owner-occupied,5.0,1.0,200003684313.0,Address Matched +1680712972222020032712221241538220,9 Saturn Road,Coxheath,,ME17 4FX,2471751678,B,A,85,94,House,Detached,2020-03-27,E07000110,E14000804,Kent,2020-03-27,new dwelling,85,94,82,24.0,1.8,14,0.6,93.0,93.0,279.0,280.0,99.0,56.0,125.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"9 Saturn Road, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2020-03-27 12:22:12,unknown,30.0,30.0,10094440267.0,Address Matched +599168871412011030216390494090386,"69, Bramley Crescent",Bearsted,,ME15 8JX,3641144868,C,C,71,73,House,Semi-Detached,2011-03-02,E07000110,E14000700,Kent,2011-03-02,marketed sale,68,69,233,225.0,2.8,38,2.7,71.0,39.0,461.0,468.0,96.0,96.0,48.16,Single,Y,NO DATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,20.0,0.0,From main system,Very Good,Very Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 250 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 20% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.33,0.0,N,natural,"69, Bramley Crescent, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2011-03-02 16:39:04,owner-occupied,,,200003688480.0,Address Matched +1178788523432014072417204132278904,"37, Mount Avenue",Yalding,,ME18 6JF,2412995278,D,B,66,87,House,Mid-Terrace,2014-07-23,E07000110,E14000804,Kent,2014-07-24,none of the above,60,86,204,53.0,3.5,42,1.0,52.0,52.0,595.0,385.0,147.0,83.0,83.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,4.0,4.0,100.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, coal",,,"Pitched, 25 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"37, Mount Avenue, Yalding",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2014-07-24 17:20:41,owner-occupied,10.0,10.0,200003661481.0,Address Matched +1285650090352015022410464395950139,"35, Harvesters Way",Weavering,,ME14 5SH,1925053378,D,B,59,81,House,Semi-Detached,2015-02-13,E07000110,E14000700,Kent,2015-02-24,FiT application,53,78,303,121.0,3.7,53,1.5,68.0,46.0,623.0,505.0,164.0,69.0,69.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,50.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"35, Harvesters Way, Weavering",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2015-02-24 10:46:43,owner-occupied,,,200003716278.0,Address Matched +421543849002013091821203679179838,"19, Postley Road",,,ME15 6TG,4005841768,D,B,58,87,House,Mid-Terrace,2013-09-17,E07000110,E14000804,Kent,2013-09-18,marketed sale,54,88,258,56.0,4.2,50,0.9,98.0,49.0,667.0,380.0,157.0,71.0,84.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,1.0,4.0,4.0,0.0,1.0,From main system,Average,Average,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"19, Postley Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2013-09-18 21:20:36,owner-occupied,9.0,0.0,200003681769.0,Address Matched +1726860911252020072111251129200467,"10, Wiles Road",Otham,,ME15 8YW,4786194678,A,A,92,93,House,Semi-Detached,2020-07-21,E07000110,E14000700,Kent,2020-07-21,new dwelling,94,96,31,18.0,0.5,6,0.3,70.0,70.0,205.0,205.0,73.0,44.0,78.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.10 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.19 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"10, Wiles Road, Otham",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2020-07-21 11:25:11,unknown,10.0,10.0,10094440582.0,Address Matched +1129251419262014042322343632778214,"16, Clement Court",,,ME16 0EW,1321152278,D,B,55,87,House,End-Terrace,2014-04-23,E07000110,E14000804,Kent,2014-04-23,none of the above,51,88,289,53.0,4.2,56,0.8,93.0,47.0,714.0,372.0,162.0,73.0,76.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,0.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"16, Clement Court",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2014-04-23 22:34:36,unknown,10.0,0.0,200003658984.0,Address Matched +221003529102019091913595758719118,Flat 4,"223, Boxley Road",Penenden Heath,ME14 2BH,4111327568,D,C,59,76,Flat,Semi-Detached,2019-09-19,E07000110,E14000804,Kent,2019-09-19,marketed sale,40,64,499,275.0,4.4,84,2.4,95.0,48.0,605.0,311.0,204.0,142.0,52.0,Unknown,N,Ground,N,,2401.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,0.0,0.0,"Electric immersion, off-peak",Average,Poor,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Poor,Poor,Portable electric heaters (assumed),,,(another dwelling above),,,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,No low energy lighting,Very Poor,Very Poor,electricity (not community),0.0,no corridor,,,,N,natural,"Flat 4, 223, Boxley Road, Penenden Heath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2019-09-19 13:59:57,owner-occupied,,,200003704697.0,Address Matched +1243204339432014120320374754278093,Flat 2 Bedford House,"3, Bedford Place",,ME16 8JB,3344050378,D,D,60,60,Flat,NO DATA!,2014-11-29,E07000110,E14000804,Kent,2014-12-03,new dwelling,42,42,442,442.0,4.3,75,4.3,38.0,38.0,542.0,542.0,118.0,118.0,57.0,24 hour,,ground floor,,,,,NO DATA!,NO DATA!,,,,,0.0,"Electric immersion, off-peak",Average,Poor,Average thermal transmittance 0.67 W/m-¦K,Poor,Poor,Full secondary glazing,Good,Good,Average thermal transmittance 0.47 W/m-¦K,Good,Good,,,,(other premises above),,,Electric storage heaters,Average,Very Poor,Celect-type controls,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"Flat 2 Bedford House, 3, Bedford Place",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2014-12-03 20:37:47,owner-occupied,1.0,1.0,10091193469.0,Address Matched +1727131033712019060712483899010165,"12, Kilndown Close",,,ME16 0PL,1556394678,D,B,67,85,House,Semi-Detached,2019-06-07,E07000110,E14000804,Kent,2019-06-07,marketed sale,63,82,212,86.0,3.6,37,1.5,91.0,67.0,567.0,436.0,127.0,80.0,95.0,Unknown,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,5.0,5.0,63.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 63% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"12, Kilndown Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2019-06-07 12:48:38,owner-occupied,,,200003660165.0,Address Matched +1807184064252020070112014927000372,"19, Tower Lane",Bearsted,,ME14 4JH,3215470778,F,C,22,79,House,Detached,2020-07-01,E07000110,E14000700,Kent,2020-07-01,marketed sale,18,74,664,141.0,10.0,117,2.2,107.0,68.0,1537.0,580.0,340.0,71.0,85.0,Single,Y,NODATA!,,,2111.0,65.0,"double glazing, unknown install date",Normal,0.0,6.0,6.0,42.0,0.0,"From main system, no cylinder thermostat",Very Poor,Very Poor,"Suspended, no insulation (assumed)",NO DATA!,,Partial double glazing,Poor,Poor,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Average,Average,TRVs and bypass,Average,Average,Low energy lighting in 42% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"19, Tower Lane, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2020-07-01 12:01:49,unknown,,,200003692239.0,Address Matched +217096161032020090514282956068100,"26, St. Lukes Road",,,ME14 5AW,6036176568,E,B,50,85,House,End-Terrace,2020-09-04,E07000110,E14000804,Kent,2020-09-05,marketed sale,42,82,350,87.0,6.1,62,1.5,83.0,83.0,1082.0,469.0,103.0,72.0,98.0,dual,Y,NODATA!,,,2106.0,30.0,secondary glazing,More Than Typical,1.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Some secondary glazing,Poor,Poor,"Sandstone or limestone, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 12 mm loft insulation",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"26, St. Lukes Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2020-09-05 14:28:29,owner-occupied,,,200003705971.0,Address Matched +1365787966352015092012123691950134,2 Orchard View,Collier Street,,TN12 9QA,1468619378,C,C,69,75,House,Semi-Detached,2015-09-18,E07000110,E14000804,Kent,2015-09-20,marketed sale,65,73,149,111.0,4.5,28,3.4,115.0,78.0,1126.0,932.0,87.0,87.0,158.0,Single,Y,NODATA!,,,2106.0,95.0,"double glazing, unknown install date",Normal,2.0,8.0,8.0,52.0,2.0,"From main system, plus solar",Very Good,Very Good,"Solid, no insulation (assumed)",NO DATA!,,Mostly double glazing,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 52% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,Y,natural,"2 Orchard View, Collier Street",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1930-1949,2015-09-20 12:12:36,owner-occupied,,,10014306718.0,Address Matched +1784816922022020021317441319238180,"10, Dhekelia Close",Invicta Park,,ME14 2NX,8183219678,D,C,61,80,House,Mid-Terrace,2020-02-07,E07000110,E14000804,Kent,2020-02-13,Stock Condition Survey,54,76,287,130.0,4.0,51,1.9,63.0,63.0,717.0,536.0,97.0,66.0,80.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Flat, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"10, Dhekelia Close, Invicta Park",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2020-02-13 17:44:13,rental (social),,,200003724100.0,Address Matched +1541532351612017050809251596030653,Fairview Cottage,Warren Street,Lenham,ME17 2EE,6395161578,E,B,43,90,House,Detached,2017-05-04,E07000110,E14000700,Kent,2017-05-08,marketed sale,35,80,376,87.0,10.0,68,2.6,160.0,90.0,1803.0,1031.0,202.0,80.0,152.0,dual,Y,NODATA!,,,2104.0,31.0,double glazing installed during or after 2002,Normal,1.0,7.0,7.0,20.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Partial double glazing,Poor,Poor,"Timber frame, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 20% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"Fairview Cottage, Warren Street, Lenham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2017-05-08 09:25:15,owner-occupied,,,200003727697.0,Address Matched +1722440769222019052011094294408081,"19, Foord Road",Lenham,,ME17 2QN,8919654678,C,C,71,75,Maisonette,Semi-Detached,2019-05-20,E07000110,E14000700,Kent,2019-05-20,marketed sale,71,76,202,167.0,2.3,36,1.9,92.0,50.0,370.0,323.0,88.0,89.0,63.0,Unknown,Y,Ground,N,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,17.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 17% of fixed outlets,Poor,Poor,mains gas (not community),0.0,no corridor,,,,N,natural,"19, Foord Road, Lenham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2019-05-20 11:09:42,owner-occupied,,,200003711643.0,Address Matched +596874229502011022419593088492848,The Elms,The Street,Ulcombe,ME17 1DR,5577224868,E,E,42,47,House,Semi-Detached,2011-02-24,E07000110,E14000700,Kent,2011-02-24,marketed sale,35,38,302,275.0,15.0,65,14.0,243.0,132.0,2144.0,2019.0,273.0,260.0,232.47,Single,N,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,9.0,9.0,16.0,0.0,From main system,Average,Average,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 100 mm loft insulation",Good,Good,"Boiler and radiators, oil",Average,Average,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 16% of fixed outlets,Poor,Poor,oil - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,0.0,N,natural,"The Elms, The Street, Ulcombe",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2011-02-24 19:59:30,owner-occupied,,,200003701200.0,Address Matched +1665838086652018092411593394280869,"104a, Wrangleden Road",,,ME15 9LD,8917640678,D,C,68,76,Maisonette,End-Terrace,2018-09-24,E07000110,E14000700,Kent,2018-09-24,marketed sale,66,77,244,166.0,2.6,43,1.8,62.0,46.0,444.0,300.0,93.0,93.0,60.0,Single,Y,1st,Y,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,67.0,0.0,From main system,Very Good,Good,(another dwelling below),NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 67% of fixed outlets,Good,Good,mains gas (not community),0.0,no corridor,,,,N,natural,"104a, Wrangleden Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2018-09-24 11:59:33,owner-occupied,,,200003683173.0,Address Matched +651939976212011070808043392090987,"4, Bramley Court",Marden,,TN12 9QN,9755628868,D,D,60,68,Bungalow,Semi-Detached,2011-07-07,E07000110,E14000804,Kent,2011-07-08,marketed sale,40,46,486,412.0,5.1,86,4.3,65.0,35.0,489.0,383.0,109.0,109.0,59.3,dual,N,NODATA!,,,2401.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,14.0,0.0,"Electric immersion, off-peak",Average,Very Poor,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,Portable electric heaters (assumed),,,"Pitched, 100 mm loft insulation",Average,Average,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 14% of fixed outlets,Poor,Poor,electricity (not community),0.0,NO DATA!,,2.2,0.0,,natural,"4, Bramley Court, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1991-1995,2011-07-08 08:04:33,owner-occupied,7.0,1.0,200003668985.0,Address Matched +1058397609112014010718485294040315,"80, Eyhorne Street",Hollingbourne,,ME17 1TS,3552947178,D,B,56,86,House,Semi-Detached,2014-01-02,E07000110,E14000700,Kent,2014-01-07,marketed sale,52,87,275,60.0,4.1,53,0.9,54.0,54.0,760.0,396.0,119.0,66.0,77.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,86.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 86% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"80, Eyhorne Street, Hollingbourne",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2014-01-07 18:48:52,owner-occupied,7.0,6.0,200003722193.0,Address Matched +796716806612012060815452599020396,Shepherds,Lenham Forstal Road,Lenham Heath,ME17 2JG,3656698968,D,B,59,84,Bungalow,Detached,2012-06-08,E07000110,E14000700,Kent,2012-06-08,marketed sale,50,79,205,73.0,6.3,47,2.4,84.0,84.0,917.0,565.0,196.0,95.0,133.0,dual,N,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,1.0,6.0,6.0,75.0,0.0,From main system,Average,Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, wood logs",,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, oil",Average,Average,Programmer and room thermostat,Average,Average,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,oil (not community),0.0,NO DATA!,,,0.0,,natural,"Shepherds, Lenham Forstal Road, Lenham Heath",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2012-06-08 15:45:25,owner-occupied,8.0,6.0,10022897164.0,Address Matched +1399100959142016022216193344162828,"3, Curzon Road",,,ME14 5BA,8189251478,E,D,51,67,House,Detached,2016-02-22,E07000110,E14000804,Kent,2016-02-22,marketed sale,43,58,307,199.0,7.6,56,5.0,75.0,75.0,1426.0,1172.0,130.0,77.0,134.0,Single,Y,NODATA!,,,2103.0,100.0,"double glazing, unknown install date",Normal,1.0,6.0,6.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Room thermostat only,Poor,Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"3, Curzon Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2016-02-22 16:19:33,owner-occupied,,,200003705282.0,Address Matched +538013929962010091012460809308430,"14, Foxden Drive",Downswood,,ME15 8TQ,3015279768,D,C,65,78,House,Semi-Detached,2010-09-10,E07000110,E14000700,Kent,2010-09-10,marketed sale,60,75,295,186.0,3.5,49,2.2,68.0,36.0,454.0,340.0,172.0,102.0,81.98,Single,Y,NO DATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,11.0,0.0,From main system,Average,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Timber frame, as built, insulated (assumed)",Good,Good,,,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Average,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 11% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.35,0.0,N,natural,"14, Foxden Drive, Downswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1976-1982,2010-09-10 12:46:08,owner-occupied,,,200003686539.0,Address Matched +1554863359202017062321305855232398,"15, Tasker Close",Bearsted,,ME15 8NZ,9211552578,D,B,60,83,House,Semi-Detached,2017-06-21,E07000110,E14000700,Kent,2017-06-23,marketed sale,55,81,320,117.0,3.4,56,1.3,58.0,42.0,564.0,448.0,157.0,66.0,60.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,63.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, insulated (assumed)",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 63% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"15, Tasker Close, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2017-06-23 21:30:58,owner-occupied,,,200003693224.0,Address Matched +381254170642009101509042365819648,"8, Copsewood Way",Bearsted,,ME15 8PL,1601278668,E,C,52,69,House,Semi-Detached,2009-10-14,E07000110,E14000700,Kent,2009-10-15,marketed sale,46,64,355,229.0,6.3,59,4.1,87.0,60.0,945.0,611.0,105.0,105.0,118.12,dual,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,55.0,2.0,From main system,Very Good,Very Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, no insulation",Very Poor,Very Poor,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 55% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.38,0.0,N,natural,"8, Copsewood Way, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2009-10-15 09:04:23,owner-occupied,,,200003693137.0,Address Matched +1572673839062017090618571933268233,"14, Otteridge Road",Bearsted,,ME14 4JR,3374383578,E,C,52,77,House,Semi-Detached,2017-09-06,E07000110,E14000700,Kent,2017-09-06,marketed sale,45,74,301,126.0,6.8,53,2.8,117.0,75.0,1196.0,775.0,198.0,77.0,128.0,Single,Y,NODATA!,,,2104.0,95.0,double glazing installed before 2002,Normal,2.0,8.0,8.0,44.0,0.0,From main system,Average,Average,"Suspended, no insulation (assumed)",NO DATA!,,Mostly double glazing,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 44% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"14, Otteridge Road, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2017-09-06 18:57:19,owner-occupied,,,200003692276.0,Address Matched +847081359702012101800052207229738,"19, Hawkwood",,,ME16 0JQ,9748052078,C,B,73,84,House,Detached,2012-10-17,E07000110,E14000804,Kent,2012-10-18,marketed sale,72,83,141,75.0,3.1,27,1.7,112.0,58.0,530.0,498.0,51.0,51.0,115.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,6.0,6.0,6.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, insulated (assumed)",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 6% of fixed outlets,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"19, Hawkwood",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2012-10-18 00:05:22,owner-occupied,17.0,1.0,200003705714.0,Address Matched +860791279962013121208202453898037,"179, Plains Avenue",,,ME15 7AX,3505743078,D,B,60,84,House,Mid-Terrace,2013-12-11,E07000110,E14000700,Kent,2013-12-12,marketed sale,59,85,226,69.0,3.7,43,1.2,67.0,50.0,719.0,453.0,92.0,65.0,87.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,5.0,5.0,67.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, electric",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 67% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"179, Plains Avenue",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1900-1929,2013-12-12 08:20:24,owner-occupied,12.0,8.0,200003714225.0,Address Matched +1420219699022017030209041792698793,"28, Bunyard Way",Allington,,ME16 0BD,9933992478,B,A,84,95,House,Detached,2017-03-01,E07000110,E14000804,Kent,2017-03-02,new dwelling,86,96,85,8.0,1.3,15,0.2,59.0,59.0,231.0,231.0,87.0,52.0,90.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.14 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.27 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"28, Bunyard Way, Allington",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2017-03-02 09:04:17,owner-occupied,15.0,15.0,10091195408.0,Address Matched +1304861709722015033118054464408215,"41, Lullingstone Road",,,ME16 0TF,1693094378,D,B,64,83,Bungalow,Semi-Detached,2015-03-30,E07000110,E14000804,Kent,2015-03-31,non marketed sale,60,81,262,104.0,3.0,46,1.2,63.0,43.0,507.0,442.0,143.0,76.0,64.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,55.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 270 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 55% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"41, Lullingstone Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1976-1982,2015-03-31 18:05:44,owner-occupied,,,200003662126.0,Address Matched +1528712140952017032810292997230755,"17, Shillingheld Close",Bearsted,,ME14 4QA,7542070578,D,C,62,80,House,Detached,2017-03-28,E07000110,E14000700,Kent,2017-03-28,marketed sale,58,78,249,118.0,3.9,44,1.9,58.0,58.0,712.0,590.0,154.0,75.0,89.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,6.0,6.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,"Pitched, insulated (assumed)",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"17, Shillingheld Close, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2017-03-28 10:29:29,owner-occupied,,,200003688936.0,Address Matched +1431575639022016040816211193938846,"10, Old School Close",Lenham,,ME17 2HD,4906383478,D,C,68,80,House,Detached,2016-04-07,E07000110,E14000700,Kent,2016-04-08,marketed sale,63,75,193,119.0,4.9,35,3.1,168.0,90.0,846.0,781.0,144.0,91.0,142.0,dual,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,6.0,6.0,12.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 350 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 12% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,2.32,,N,natural,"10, Old School Close, Lenham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1991-1995,2016-04-08 16:21:11,owner-occupied,,,200003708276.0,Address Matched +1316407479402015050118301639557208,"673, Tonbridge Road",,,ME16 9DQ,450075378,D,B,55,82,House,Semi-Detached,2015-04-30,E07000110,E14000804,Kent,2015-05-01,marketed sale,49,80,299,92.0,4.5,55,1.5,70.0,52.0,836.0,488.0,104.0,69.0,82.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,5.0,5.0,67.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 67% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"673, Tonbridge Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2015-05-01 18:30:16,owner-occupied,,,200003664455.0,Address Matched +1813284978552020072707180321200372,"15, Chipstead Close",,,ME16 0DH,3228811778,C,B,72,87,House,Semi-Detached,2020-07-20,E07000110,E14000804,Kent,2020-07-27,marketed sale,71,86,187,72.0,2.2,33,0.9,56.0,56.0,393.0,365.0,92.0,62.0,68.0,Unknown,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, 270 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"15, Chipstead Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2020-07-27 07:18:03,owner-occupied,,,200003658664.0,Address Matched +1653809269642018080720141156980068,"40, Worcester Road",,,ME15 7LU,7634169578,D,B,65,83,House,Semi-Detached,2018-08-06,E07000110,E14000700,Kent,2018-08-07,marketed sale,63,82,233,99.0,3.4,41,1.5,113.0,59.0,569.0,486.0,140.0,78.0,83.0,Single,Y,NODATA!,,,2107.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,9.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"System built, with internal insulation",Good,Good,"Room heaters, electric",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 9% of fixed outlets,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"40, Worcester Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2018-08-07 20:14:11,owner-occupied,,,200003683906.0,Address Matched +1700210479262019022505275572378811,"13, Woodcut",Penenden Heath,,ME14 2EQ,1779792678,E,B,54,85,Bungalow,Detached,2019-02-23,E07000110,E14000804,Kent,2019-02-25,marketed sale,46,83,350,93.0,4.8,62,1.3,63.0,63.0,744.0,420.0,193.0,68.0,78.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,90.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 90% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"13, Woodcut, Penenden Heath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2019-02-25 05:27:55,owner-occupied,,,200003707828.0,Address Matched +1453872759312016061510205893960541,"4, Henley Fields",Weavering,,ME14 5UY,5158935478,D,B,65,84,House,Semi-Detached,2016-06-14,E07000110,E14000700,Kent,2016-06-15,marketed sale,59,82,247,97.0,3.6,44,1.4,72.0,54.0,602.0,481.0,167.0,75.0,82.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,67.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 67% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,2.42,,N,natural,"4, Henley Fields, Weavering",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2016-06-15 10:20:58,owner-occupied,,,200003689717.0,Address Matched +1603010909832018012519141914278000,55 Bishops Terrace,Bishops Way,,ME14 1LA,64006578,D,D,58,58,Flat,Mid-Terrace,2018-01-25,E07000110,E14000804,Kent,2018-01-25,new dwelling,62,62,275,275.0,2.5,46,2.5,45.0,45.0,479.0,479.0,255.0,255.0,54.0,standard tariff,,top floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Very Poor,Poor,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.28 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.28 W/m-¦K,Good,Good,"Boiler and radiators, electric",Very Poor,Poor,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"55 Bishops Terrace, Bishops Way",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2018-01-25 19:14:19,unknown,10.0,10.0,, +1399936609412016010720415295060345,"16, Westborough Mews",,,ME16 8TU,3519951478,D,B,64,86,House,End-Terrace,2016-01-07,E07000110,E14000804,Kent,2016-01-07,marketed sale,58,85,250,74.0,3.6,44,1.1,55.0,55.0,626.0,416.0,169.0,75.0,83.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, partial insulation (assumed)",Average,Average,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"16, Westborough Mews",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1976-1982,2016-01-07 20:41:52,unknown,,,10022896502.0,Address Matched +86af44766903ae4483740672cf5a946c6d9cc801be3d89cf7f5bb585055c913b,4 OWLETTS CLOSE,,,ME15 7SZ,10001486452,E,B,54,84,House,Mid-Terrace,2021-06-28,E07000110,E14000700,Kent,2021-07-01,ECO assessment,50,84,341,92.0,4.3,60,1.2,121.0,60.0,730.0,453.0,190.0,75.0,72.0,Single,Y,,,,,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,0.0,0.0,"From main system, no cylinder thermostat",Average,Average,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,"Pitched, insulated (assumed)",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,,,2.75,0.0,N,natural,4 OWLETTS CLOSE,Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2021-07-01 10:38:42,Rented (social),10.0,,200003725379.0,Energy Assessor +994320199842013082117141113272008,"77, Holtye Crescent",,,ME15 7DD,7800192178,D,B,61,82,House,Semi-Detached,2013-08-20,E07000110,E14000700,Kent,2013-08-21,marketed sale,64,86,222,87.0,3.6,37,1.2,103.0,59.0,624.0,524.0,209.0,76.0,96.0,dual,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,6.0,4.0,25.0,1.0,"From main system, no cylinder thermostat",Average,Average,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,"Room heaters, wood logs",,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 25% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"77, Holtye Crescent",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2013-08-21 17:14:11,owner-occupied,12.0,3.0,200003683895.0,Address Matched +1416816460452016030223194398060340,2 Coronation Villas,Church Green,Marden,TN12 9HS,3070082478,D,B,56,85,House,Semi-Detached,2016-03-02,E07000110,E14000804,Kent,2016-03-02,ECO assessment,50,83,325,89.0,4.0,57,1.1,90.0,48.0,735.0,432.0,114.0,67.0,70.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,4.0,4.0,11.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 270 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 11% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"2 Coronation Villas, Church Green, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1900-1929,2016-03-02 23:19:43,owner-occupied,,,200003730674.0,Address Matched +132450579232012013121003111768009,"64, Wrangleden Road",,,ME15 9LJ,7961079468,D,C,66,72,House,Semi-Detached,2012-01-31,E07000110,E14000700,Kent,2012-01-31,marketed sale,63,71,200,158.0,4.5,39,3.5,84.0,57.0,733.0,591.0,90.0,90.0,100.67,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,1.0,5.0,5.0,54.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Roof room(s), insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 54% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,2.25,0.0,,natural,"64, Wrangleden Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2012-01-31 21:00:31,owner-occupied,13.0,7.0,200003710307.0,Address Matched +1358246684652016010511080296060431,"9, Wallis Oaks Avenue",,,ME15 9GS,4164468378,B,A,83,95,House,NO DATA!,2016-01-04,E07000110,E14000700,Kent,2016-01-05,new dwelling,86,97,92,7.0,1.3,16,0.1,58.0,58.0,234.0,234.0,96.0,60.0,82.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.14 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.17 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"9, Wallis Oaks Avenue",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2016-01-05 11:08:02,unknown,10.0,10.0,10014315770.0,Address Matched +317416700062009082709412404898751,11 Bazalgette Rise,,,ME16 8FL,5088024668,B,B,84,84,House,End-Terrace,2009-08-01,E07000110,E14000804,Kent,2009-08-27,new dwelling,83,83,120,120.0,1.5,20,1.5,41.0,41.0,242.0,242.0,91.0,91.0,77.28,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,,From main system,Very Good,Very Good,Average thermal transmittance 0.15 W/m??K,Very Good,Very Good,Fully double glazed,Good,Good,Average thermal transmittance 0.19 W/m??K,Very Good,Very Good,,,,Average thermal transmittance 0.20 W/m??K,Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 100% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.6,,,NO DATA!,11 Bazalgette Rise,Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2009-08-27 09:41:24,,,,10014308184.0,Address Matched +86dceb917d0e17f0069b87909bf40abdaa31f4abbeba58c4cd31f744ebbf008d,50 Gilbert Way,,,ME17 3TT,10001528276,B,A,84,97,House,Mid-Terrace,2021-09-16,E07000110,E14000700,Kent,2021-09-16,new dwelling,87,99,85,-8.0,1.1,15,-0.1,67.0,67.0,194.0,194.0,66.0,40.0,74.0,standard tariff,,,N,,,100.0,,,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.33,,,,50 Gilbert Way,Maidstone,Faversham and Mid Kent,MAIDSTONE,2017,2021-09-16 14:17:36,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,8.0,,10094441896.0,Energy Assessor +155097751412008100622033209089255,"1, Chestnut Drive",Kingswood,,ME17 3PD,2543191568,G,F,20,32,Bungalow,Detached,2008-10-06,E07000110,E14000700,Kent,2008-10-06,marketed sale,18,28,582,457.0,11.0,123,8.9,41.0,41.0,1396.0,1036.0,230.0,230.0,103.34,Single,Y,NO DATA!,,,2102.0,100.0,double glazing installed before 2002,Normal,1.0,3.0,3.0,100.0,0.0,"From main system, no cylinderstat",Poor,Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,"Pitched, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, oil",Average,Average,"Programmer, no room thermostat",Very Poor,Very Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,oil - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.37,0.0,N,natural,"1, Chestnut Drive, Kingswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2008-10-06 22:03:32,owner-occupied,,,200003700056.0,Address Matched +1375793927612015101616340298959732,Flat 5 Robin House,Springvale,,ME16 0AT,7277789378,C,B,78,84,Flat,Enclosed End-Terrace,2015-10-16,E07000110,E14000804,Kent,2015-10-16,marketed sale,65,74,312,233.0,2.0,53,1.5,31.0,31.0,176.0,90.0,124.0,124.0,38.0,Unknown,N,1st,N,,2402.0,0.0,not defined,Normal,0.0,2.0,2.0,100.0,0.0,"Electric immersion, off-peak",Average,Poor,(another dwelling below),NO DATA!,,Single glazed,Very Poor,Very Poor,"Cavity wall, as built, insulated (assumed)",Good,Good,Portable electric heaters (assumed),,,(another dwelling above),,,Electric storage heaters,Average,Very Poor,Automatic charge control,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,unheated corridor,1.0,,,N,natural,"Flat 5 Robin House, Springvale",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2015-10-16 16:34:02,owner-occupied,,,200003667116.0,Address Matched +412099680002009121510332970019348,3 Ruth House,Lesley Place,Buckland Hill,ME16 0UB,2078180768,D,B,68,82,Flat,Enclosed Mid-Terrace,2009-12-14,E07000110,E14000804,Kent,2009-12-15,rental (private),61,72,509,359.0,2.1,77,1.5,30.0,15.0,136.0,106.0,172.0,95.0,27.65,dual,N,1st,N,5.0,2401.0,100.0,double glazing installed before 2002,Normal,0.0,1.0,1.0,0.0,0.0,"Electric immersion, off-peak",Poor,Poor,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,Portable electric heaters,,,(another dwelling above),,,Electric storage heaters,Poor,Very Poor,Manual charge control,Poor,Poor,No low energy lighting,Very Poor,Very Poor,electricity - this is for backwards compatibility only and should not be used,0.0,unheated corridor,6.37,2.33,0.0,N,natural,"3 Ruth House, Lesley Place, Buckland Hill",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2009-12-15 10:33:29,rental (private),,,10014311985.0,Address Matched +1554760076332017062313031150278400,Shieling Oast,Horseshoes Lane,Langley,ME17 3JZ,7030452578,C,A,79,94,House,Semi-Detached,2017-06-21,E07000110,E14000700,Kent,2017-06-23,marketed sale,78,92,114,37.0,4.3,18,1.3,172.0,105.0,794.0,805.0,125.0,125.0,234.0,Unknown,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,8.0,8.0,37.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Solid brick, as built, insulated (assumed)",Good,Good,"Room heaters, wood logs",,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 37% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"Shieling Oast, Horseshoes Lane, Langley",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2007 onwards,2017-06-23 13:03:11,owner-occupied,,,200003732262.0,Address Matched +587533589022011020221161013728909,"72, Queen Elizabeth Square",,,ME15 9DA,126843868,B,B,82,84,House,Mid-Terrace,2011-02-02,E07000110,E14000700,Kent,2011-02-02,marketed sale,81,83,121,113.0,2.1,19,1.9,105.0,60.0,286.0,292.0,124.0,124.0,103.18,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,25.0,0.0,From main system,Very Good,Very Good,"Suspended, insulated (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 25% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.28,0.0,N,natural,"72, Queen Elizabeth Square",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2007 onwards,2011-02-02 21:16:10,owner-occupied,,,200003710559.0,Address Matched +1612850529212018030614225996080450,Byways,Charlton Lane,West Farleigh,ME15 0PA,4040966578,E,B,52,91,House,Semi-Detached,2018-03-06,E07000110,E14000804,Kent,2018-03-06,marketed sale,53,90,338,76.0,4.5,51,0.7,61.0,61.0,1004.0,812.0,109.0,73.0,89.0,Unknown,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,6.0,6.0,100.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, wood logs",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"Byways, Charlton Lane, West Farleigh",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2018-03-06 14:22:59,owner-occupied,,,200003662831.0,Address Matched +547776472262020062213311200528960,Safari,Boxley Road,,ME5 9JD,6089730868,D,B,63,87,House,Detached,2020-06-22,E07000110,E14000700,Kent,2020-06-22,marketed sale,57,85,253,77.0,4.2,45,1.3,119.0,73.0,718.0,427.0,102.0,70.0,95.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,36.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Roof room(s), limited insulation (assumed)",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 36% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"Safari, Boxley Road",Maidstone,Faversham and Mid Kent,CHATHAM,England and Wales: 1976-1982,2020-06-22 13:31:12,owner-occupied,,,200003708909.0,Address Matched +1060514232732013121316200558978398,"53, Anglesey Avenue",,,ME15 9TB,3808367178,D,B,62,82,House,Detached,2013-12-13,E07000110,E14000804,Kent,2013-12-13,none of the above,62,83,208,86.0,4.5,36,1.8,97.0,64.0,870.0,591.0,124.0,76.0,124.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,6.0,6.0,48.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, wood logs",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 48% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"53, Anglesey Avenue",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2013-12-13 16:20:05,owner-occupied,23.0,11.0,200003675346.0,Address Matched +40965316212015091616302894950449,Ferndale,Station Road,Staplehurst,TN12 0QG,4985643468,E,C,52,79,House,Semi-Detached,2015-09-16,E07000110,E14000804,Kent,2015-09-16,none of the above,53,81,287,109.0,6.0,42,2.2,86.0,86.0,1411.0,700.0,114.0,115.0,141.0,Single,Y,NODATA!,,,2105.0,100.0,secondary glazing,Normal,1.0,7.0,7.0,87.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Full secondary glazing,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and at least two room thermostats,Good,Good,Low energy lighting in 87% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"Ferndale, Station Road, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: before 1900,2015-09-16 16:30:28,rental (private),,,200003679058.0,Address Matched +04e83ea8a11f2552f0a11bd50c35632b3885bf2af663de8c6c675c2e563ccc47,14 TENACRE COURT,ASHFORD ROAD,HARRIETSHAM,ME17 1AH,10001390206,E,E,49,49,Flat,Mid-Terrace,2021-08-05,E07000110,E14000700,Kent,2021-08-05,not sale or rental,54,54,310,310.0,3.7,52,3.7,71.0,71.0,1051.0,1051.0,236.0,236.0,70.0,standard tariff,,1,N,,,100.0,,,,,,100.0,0.0,Electric instantaneous at point of use,Very Poor,Poor,Average thermal transmittance 0.38 W/m-¦K,Average,Average,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.32 W/m-¦K,Average,Average,"Boiler and radiators, electric",Very Poor,Poor,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",0.0,,,3.66,,,,"14 TENACRE COURT, ASHFORD ROAD, HARRIETSHAM",Maidstone,Faversham and Mid Kent,MAIDSTONE,2020,2021-08-05 14:11:35,Owner-occupied,5.0,,10095449479.0,Energy Assessor +1119810819062014040318425391378554,"34, Park Way",Coxheath,,ME17 4EN,5987181278,E,B,53,81,House,Detached,2014-04-03,E07000110,E14000804,Kent,2014-04-03,marketed sale,50,81,260,85.0,5.9,49,2.0,134.0,71.0,988.0,553.0,256.0,152.0,119.0,dual,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,2.0,6.0,6.0,11.0,0.0,"Electric immersion, off-peak",Very Poor,Very Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, partial insulation (assumed)",Average,Average,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 11% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"34, Park Way, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1976-1982,2014-04-03 18:42:53,owner-occupied,9.0,1.0,200003715137.0,Address Matched +1508782890552017010412133993030142,"17, Market Street",Staplehurst,,TN12 0QT,1277039478,D,B,61,87,House,Semi-Detached,2017-01-04,E07000110,E14000804,Kent,2017-01-04,marketed sale,53,85,262,69.0,5.0,46,1.4,100.0,67.0,830.0,434.0,168.0,78.0,107.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,1.0,5.0,5.0,50.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"17, Market Street, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1950-1966,2017-01-04 12:13:39,owner-occupied,,,200003679533.0,Address Matched +682093039442011092309563697092578,"38, Locks Yard",Headcorn,,TN27 9AD,9492930968,B,B,84,84,Flat,NO DATA!,2011-09-23,E07000110,E14000700,Kent,2011-09-23,new dwelling,89,89,77,77.0,0.9,15,0.9,43.0,43.0,192.0,192.0,79.0,79.0,58.96,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,6.0,,From main system,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.35 W/m?K,Good,Good,"Room heaters, electric",,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in 86% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.31,,,NO DATA!,"38, Locks Yard, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,NO DATA!,2011-09-23 09:56:36,,7.0,6.0,10014312117.0,Address Matched +312046789742012111920533760329718,"4, Knights Way",Headcorn,,TN27 9TX,735883668,C,C,73,76,Flat,Enclosed End-Terrace,2012-11-19,E07000110,E14000700,Kent,2012-11-19,rental (social),77,80,168,146.0,1.5,32,1.3,51.0,31.0,281.0,261.0,73.0,73.0,47.0,dual,Y,2nd,Y,,2106.0,100.0,double glazing installed before 2002,More Than Typical,0.0,2.0,2.0,33.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 33% of fixed outlets,Average,Average,mains gas (not community),0.0,no corridor,,,0.0,,natural,"4, Knights Way, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,England and Wales: 1967-1975,2012-11-19 20:53:37,rental (social),6.0,2.0,200003699615.0,Address Matched +962428779042013070120024818070198,Homewinds,Charlton Lane,West Farleigh,ME15 0NU,14070178,D,C,60,80,House,Semi-Detached,2013-07-01,E07000110,E14000804,Kent,2013-07-01,marketed sale,48,70,221,101.0,5.1,55,2.7,106.0,53.0,774.0,632.0,226.0,112.0,94.0,Single,N,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,2.0,6.0,6.0,0.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, oil",Average,Average,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,oil (not community),0.0,NO DATA!,,,0.0,,natural,"Homewinds, Charlton Lane, West Farleigh",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2013-07-01 20:02:48,owner-occupied,15.0,0.0,200003663810.0,Address Matched +628610769302011051318104489699178,"8, Robins Avenue",Lenham,,ME17 2HN,347666868,E,D,51,61,House,Semi-Detached,2011-05-13,E07000110,E14000700,Kent,2011-05-13,marketed sale,47,57,313,243.0,5.8,60,4.5,80.0,48.0,939.0,745.0,91.0,91.0,96.3,Single,Y,NODATA!,,,2107.0,100.0,"double glazing, unknown install date",Normal,1.0,6.0,6.0,33.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 33% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,2.3,0.0,,natural,"8, Robins Avenue, Lenham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2011-05-13 18:10:44,owner-occupied,12.0,4.0,200003708368.0,Address Matched +1016804979722013100119032864908507,"7, Greenwich Close",,,ME16 0JA,653754178,C,B,72,84,House,Detached,2013-09-30,E07000110,E14000804,Kent,2013-10-01,marketed sale,70,82,145,76.0,3.7,28,2.0,101.0,66.0,613.0,550.0,119.0,79.0,133.0,Unknown,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,7.0,7.0,47.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 47% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"7, Greenwich Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2013-10-01 19:03:28,owner-occupied,15.0,7.0,200003659482.0,Address Matched +1066761209202014101310162116849878,"17, Froyle Close",,,ME16 0RQ,8251408178,D,B,56,89,Bungalow,Semi-Detached,2014-10-13,E07000110,E14000804,Kent,2014-10-13,assessment for green deal,52,91,296,40.0,3.7,57,0.6,42.0,42.0,714.0,333.0,132.0,89.0,65.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, no insulation",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"17, Froyle Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2014-10-13 10:16:21,owner-occupied,9.0,9.0,200003659396.0,Address Matched +503737099062010070509504847358330,"17, Church Street",Tovil,,ME15 6RB,3414927768,C,B,79,81,Flat,Mid-Terrace,2010-07-05,E07000110,E14000804,Kent,2010-07-05,rental (social),78,78,190,184.0,1.6,31,1.5,44.0,28.0,247.0,249.0,94.0,94.0,50.25,Single,Y,Ground,N,2.0,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,40.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 40% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,unheated corridor,5.95,2.26,0.0,N,natural,"17, Church Street, Tovil",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2010-07-05 09:50:48,rental (social),,,200003664638.0,Address Matched +1397354859552015121715240193959844,"73a, Charlesford Avenue",Kingswood,,ME17 3PH,8488931478,A,A,93,94,House,Detached,2015-12-17,E07000110,E14000700,Kent,2015-12-17,new dwelling,92,93,31,23.0,1.0,6,0.8,104.0,104.0,503.0,505.0,111.0,60.0,180.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,1.0,From main system,Good,Good,Average thermal transmittance 0.16 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.20 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,"Boiler and underfloor heating, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in 85% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"73a, Charlesford Avenue, Kingswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2015-12-17 15:24:01,unknown,40.0,34.0,10014312957.0,Address Matched +397509370802009111214344464919028,51 Roman Way,Boughton Monchelsea,,ME17 4SG,7897879668,B,B,83,84,House,End-Terrace,2009-11-12,E07000110,E14000700,Kent,2009-11-12,new dwelling,82,83,128,122.0,1.7,21,1.6,67.0,41.0,250.0,254.0,94.0,94.0,81.71,standard tariff,,NO DATA!,,,2106.0,,NO DATA!,NO DATA!,,,,,0.0,From main system,Very Good,Very Good,Average thermal transmittance 0.19 W/m?K,Very Good,Very Good,Fully double glazed,Good,Good,Average thermal transmittance 0.29 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.16 W/m?K,Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 36% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.33,,,NO DATA!,"51 Roman Way, Boughton Monchelsea",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2009-11-12 14:34:44,,,,10022896577.0,Address Matched +407027682132009120213022370068495,"78, Roman Way",Boughton Monchelsea,,ME17 4SH,8570440768,B,B,84,85,House,Mid-Terrace,2009-12-02,E07000110,E14000700,Kent,2009-12-02,new dwelling,83,84,119,112.0,1.6,20,1.5,68.0,42.0,227.0,231.0,96.0,96.0,81.71,standard tariff,,NO DATA!,,,2106.0,,NO DATA!,NO DATA!,,,,,0.0,From main system,Very Good,Very Good,Average thermal transmittance 0.19 W/m?K,Very Good,Very Good,Fully double glazed,Good,Good,Average thermal transmittance 0.29 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.16 W/m?K,Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 36% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.33,,,NO DATA!,"78, Roman Way, Boughton Monchelsea",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2009-12-02 13:02:23,,,,10022896604.0,Address Matched +1008353499502013091622033411379568,3 Council Cottages,Redwall Lane,Hunton,ME15 0RH,7597293178,F,D,36,66,House,Semi-Detached,2013-09-16,E07000110,E14000804,Kent,2013-09-16,rental (social),43,69,300,116.0,4.7,71,2.2,60.0,40.0,1063.0,885.0,270.0,117.0,66.0,Single,N,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,50.0,1.0,From main system,Poor,Average,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"System built, with external insulation",Good,Good,"Room heaters, coal",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, LPG",Poor,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 50% of fixed outlets,Good,Good,LPG (not community),0.0,NO DATA!,,,0.0,,natural,"3 Council Cottages, Redwall Lane, Hunton",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2013-09-16 22:03:34,rental (social),10.0,5.0,200003663933.0,Address Matched +863499202018040517215647180758,1 Church Cottages,Chart Road,Sutton Valence,ME17 3AW,6299991468,D,B,55,87,House,End-Terrace,2018-04-05,E07000110,E14000700,Kent,2018-04-05,marketed sale,47,86,336,74.0,5.2,59,1.2,119.0,60.0,902.0,408.0,91.0,60.0,88.0,Single,Y,NODATA!,,,2104.0,0.0,not defined,Normal,0.0,5.0,5.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Single glazed,Very Poor,Very Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"1 Church Cottages, Chart Road, Sutton Valence",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2018-04-05 17:21:56,owner-occupied,,,200003696918.0,Address Matched +596680328532015081112172336968006,"27, Devon Road",,,ME15 7EW,2606024868,C,B,70,86,House,Semi-Detached,2015-08-11,E07000110,E14000700,Kent,2015-08-11,non marketed sale,68,84,194,85.0,3.1,34,1.4,128.0,64.0,481.0,461.0,165.0,86.0,91.0,dual,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"27, Devon Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2015-08-11 12:17:23,rental (social),,,200003711456.0,Address Matched +71535955612017072119472590230242,1 Prospect Cottages,Fant,,ME16 9LU,2277505468,F,A,32,92,House,Semi-Detached,2017-07-21,E07000110,E14000804,Kent,2017-07-21,marketed sale,31,85,337,-4.0,7.5,81,1.0,71.0,71.0,1029.0,444.0,124.0,142.0,93.0,Single,N,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,6.0,6.0,82.0,0.0,From main system,Poor,Average,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, oil",Average,Average,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 82% of fixed outlets,Very Good,Very Good,oil (not community),0.0,NO DATA!,,,,N,natural,"1 Prospect Cottages, Fant",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2017-07-21 19:47:25,owner-occupied,,,10014309666.0,Address Matched +343945230812009081219582600910965,Dyffrhyn View,Ware Street,Weavering,ME14 5LA,9532006668,D,C,55,70,Bungalow,Semi-Detached,2009-08-12,E07000110,E14000700,Kent,2009-08-12,marketed sale,58,72,387,262.0,3.2,56,2.2,51.0,28.0,499.0,358.0,74.0,65.0,64.93,dual,Y,NO DATA!,,,2104.0,80.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,17.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Partial double glazing,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, wood logs",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Poor,Poor,Low energy lighting in 17% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.49,0.0,N,natural,"Dyffrhyn View, Ware Street, Weavering",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1900-1929,2009-08-12 19:58:26,owner-occupied,,,200003689630.0,Address Matched +171048141512016011518485198960952,Magnolia Cottage,Linton Park,Linton,ME17 4AN,9297182568,F,A,25,96,House,Detached,2016-01-15,E07000110,E14000804,Kent,2016-01-15,rental (private),23,87,371,-10.0,11.0,99,1.2,74.0,75.0,1559.0,565.0,300.0,90.0,113.0,Single,N,NODATA!,,,2106.0,0.0,not defined,Normal,0.0,5.0,5.0,89.0,1.0,"From main system, no cylinder thermostat",Very Poor,Very Poor,"Solid, no insulation (assumed)",NO DATA!,,Single glazed,Very Poor,Very Poor,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, oil",Poor,Average,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 89% of fixed outlets,Very Good,Very Good,oil (not community),0.0,NO DATA!,,,,N,natural,"Magnolia Cottage, Linton Park, Linton",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2016-01-15 18:48:51,rental (private),,,10014309585.0,Address Matched +1214604149602014100220440125840128,"1, Sutton Heights",,,ME15 8SF,6679948278,C,B,71,84,House,End-Terrace,2014-10-02,E07000110,E14000700,Kent,2014-10-02,rental (private),71,84,150,71.0,3.1,28,1.5,105.0,66.0,514.0,524.0,183.0,83.0,108.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,41.0,0.0,"From main system, no cylinder thermostat",Average,Average,"Suspended, insulated (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 41% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"1, Sutton Heights",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2003-2006,2014-10-02 20:44:01,rental (private),17.0,7.0,10022892961.0,Address Matched +597322766352011031521590692990382,"33, Nottingham Avenue",,,ME15 7PS,3234624868,C,C,72,75,House,Semi-Detached,2011-03-15,E07000110,E14000700,Kent,2011-03-15,rental (social),69,71,217,201.0,2.9,36,2.7,77.0,44.0,428.0,445.0,149.0,116.0,81.58,Single,Y,NO DATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,25.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"System built, with external insulation",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 25% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.45,0.0,N,natural,"33, Nottingham Avenue",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2011-03-15 21:59:06,rental (social),,,200003712807.0,Address Matched +1031500427452013102423381795279814,"45, Leicester Road",,,ME15 7QJ,8439755178,F,B,31,86,House,Mid-Terrace,2013-10-24,E07000110,E14000700,Kent,2013-10-24,rental (social),41,86,367,62.0,6.1,66,1.2,59.0,59.0,1223.0,411.0,394.0,73.0,93.0,Single,Y,NODATA!,,,2601.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,1.0,88.0,0.0,"Electric immersion, standard tariff",Very Poor,Very Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 250 mm loft insulation",Good,Good,Portable electric heaters assumed for most rooms,Very Poor,Very Poor,No thermostatic control of room temperature,Poor,Poor,Low energy lighting in 88% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"45, Leicester Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2013-10-24 23:38:17,rental (social),8.0,7.0,200003683976.0,Address Matched +754046249222012022406523195248062,Flat 3 Oaklands House,"12-14, Ashford Road",,ME14 5DG,6935485968,E,D,50,57,Flat,Semi-Detached,2012-02-24,E07000110,E14000804,Kent,2012-02-24,rental (private),29,33,746,682.0,5.4,132,4.9,53.0,27.0,579.0,496.0,99.0,99.0,40.61,dual,N,1st,N,,2401.0,100.0,double glazing installed before 2002,Normal,0.0,2.0,2.0,0.0,0.0,"Electric immersion, off-peak",Average,Very Poor,(other premises below),,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, electric",,,(another dwelling above),,,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,No low energy lighting,Very Poor,Very Poor,electricity (not community),0.0,unheated corridor,7.56,2.7,0.0,,natural,"Flat 3 Oaklands House, 12-14, Ashford Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2012-02-24 06:52:31,rental (private),7.0,0.0,200003661318.0,Address Matched +317478752432014122712305059268897,Apartment 5,"7, Bazalgette Rise",,ME16 8FJ,5799814668,B,B,82,82,Flat,End-Terrace,2014-12-27,E07000110,E14000804,Kent,2014-12-27,rental (social),86,86,104,104.0,0.9,18,0.9,37.0,37.0,182.0,182.0,83.0,83.0,49.0,Single,Y,1st,N,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,100.0,0.0,From main system,Good,Good,(another dwelling below),NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,no corridor,,,,N,natural,"Apartment 5, 7, Bazalgette Rise",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2014-12-27 12:30:50,rental (social),,,10014308164.0,Address Matched +1409084829022016020215343492028376,15Second Floor Granada House,Lower Stone Street,,ME15 6JS,7943222478,D,C,62,79,Flat,Mid-Terrace,2016-02-02,E07000110,E14000804,Kent,2016-02-02,rental (private),57,81,310,136.0,3.2,55,1.4,42.0,42.0,628.0,266.0,91.0,91.0,59.0,Single,Y,2nd,Y,,2107.0,65.0,secondary glazing,Normal,0.0,3.0,3.0,100.0,0.0,From main system,Very Good,Good,(another dwelling below),NO DATA!,,Partial secondary glazing,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Flat, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,no corridor,,,,N,natural,"15Second Floor Granada House, Lower Stone Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2016-02-02 15:34:34,rental (private),,,200003693636.0,Address Matched +138561639102017060614581757030368,21 Boarley Court,Sandling Lane,,ME14 2NL,8136130568,D,C,67,76,Flat,Enclosed End-Terrace,2017-06-06,E07000110,E14000700,Kent,2017-06-06,marketed sale,71,71,217,216.0,2.0,37,2.0,66.0,44.0,372.0,214.0,171.0,189.0,55.0,Single,N,6th,N,,2603.0,85.0,double glazing installed before 2002,Normal,0.0,3.0,2.0,33.0,0.0,Electric instantaneous at point of use,Very Poor,Poor,(another dwelling below),NO DATA!,,Mostly double glazing,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,(another dwelling above),,,"Room heaters, electric",Very Poor,Poor,Programmer and appliance thermostats,Good,Good,Low energy lighting in 33% of fixed outlets,Average,Average,electricity (not community),0.0,unheated corridor,2.08,,,N,natural,"21 Boarley Court, Sandling Lane",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2017-06-06 14:58:17,owner-occupied,,,200003731540.0,Address Matched +1769258399112019120208120899019169,"2, Millstone Road",Headcorn,,TN27 9DF,1907997678,B,A,83,115,House,Detached,2019-12-02,E07000110,E14000700,Kent,2019-12-02,new dwelling,85,114,90,-106.0,1.4,16,-1.6,67.0,67.0,246.0,246.0,79.0,48.0,91.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.17 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"2, Millstone Road, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,NO DATA!,2019-12-02 08:12:08,unknown,20.0,20.0,10093306097.0,Address Matched +596987550352015020810112792050783,"36, Perry Street",,,ME14 2RP,7384024868,C,A,72,94,House,Mid-Terrace,2015-02-06,E07000110,E14000804,Kent,2015-02-08,assessment for green deal,72,96,212,9.0,1.8,37,0.1,44.0,44.0,303.0,229.0,138.0,74.0,49.0,dual,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,2.0,2.0,83.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 83% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"36, Perry Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2015-02-08 10:11:27,rental (social),,,200003669569.0,Address Matched +563516559902016090516054685160128,16 North Street,Sutton Valence,,ME17 3AP,5983551868,E,D,45,66,House,Mid-Terrace,2016-09-02,E07000110,E14000700,Kent,2016-09-05,marketed sale,37,55,339,210.0,10.0,63,6.5,108.0,110.0,1970.0,1399.0,112.0,112.0,165.0,dual,Y,NODATA!,,,2104.0,15.0,"double glazing, unknown install date",Normal,0.0,7.0,6.0,83.0,3.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Some double glazing,Very Poor,Very Poor,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 83% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,2.07,,N,natural,"16 North Street, Sutton Valence",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1900-1929,2016-09-05 16:05:46,owner-occupied,,,10014309423.0,Address Matched +776660659142017011413341493739248,"60, Tonbridge Road",Teston,,ME18 5BT,4107057968,C,B,71,86,House,Semi-Detached,2017-01-14,E07000110,E14000804,Kent,2017-01-14,marketed sale,70,84,183,82.0,2.9,32,1.3,117.0,58.0,447.0,429.0,131.0,84.0,89.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,4.0,4.0,0.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 270 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"60, Tonbridge Road, Teston",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2017-01-14 13:34:14,owner-occupied,,,200003661220.0,Address Matched +182095870402008110322145459382238,Flat 6,"35, Tonbridge Road",,ME16 8SA,4417473568,C,C,76,79,Flat,Detached,2008-10-27,E07000110,E14000804,Kent,2008-11-03,rental (private),72,75,348,310.0,1.5,58,1.3,23.0,11.0,198.0,184.0,20.0,20.0,25.7,Unknown,Y,3rd,Y,4.0,2305.0,100.0,"double glazing, unknown install date",Normal,0.0,1.0,1.0,0.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, electric",,,"Pitched, 75mm loft insulation",Average,Average,Community scheme,Good,Good,"Flat rate charging, programmer and TRVs",Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,heated corridor,,2.2,0.0,N,natural,"Flat 6, 35, Tonbridge Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2008-11-03 22:14:54,rental (private),,,200003668548.0,Address Matched +1329690869002015060917044631650418,"635, Loose Road",Loose,,ME15 9UT,8012166378,E,B,53,85,House,End-Terrace,2015-06-09,E07000110,E14000804,Kent,2015-06-09,marketed sale,47,84,416,105.0,3.8,73,1.0,63.0,36.0,722.0,439.0,97.0,42.0,52.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,25.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 25% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"635, Loose Road, Loose",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2015-06-09 17:04:46,owner-occupied,,,200003675461.0,Address Matched +1739766069722019073016384945008401,"137, Edmett Way",,,ME17 3FA,453685678,B,A,84,93,House,Detached,2019-07-30,E07000110,E14000700,Kent,2019-07-30,new dwelling,84,94,88,27.0,1.8,16,0.6,78.0,78.0,288.0,289.0,98.0,55.0,118.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"137, Edmett Way",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2019-07-30 16:38:49,unknown,7.0,7.0,10093307068.0,Address Matched +8784667268ef3c93c1ce09b806daf19579733f7636a33fcb1c3db798fa7dd92d,6 OWLETTS CLOSE,,,ME15 7SZ,10001561450,E,B,54,81,House,End-Terrace,2021-06-28,E07000110,E14000700,Kent,2021-07-01,ECO assessment,50,80,305,110.0,5.1,53,1.9,151.0,75.0,963.0,589.0,131.0,80.0,96.0,Single,Y,,,,,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,0.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,"Pitched, insulated (assumed)",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,,,2.75,0.0,N,natural,6 OWLETTS CLOSE,Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2021-07-01 10:38:44,Rented (social),10.0,,200003725386.0,Energy Assessor +597086729902017083016591288432558,"4, Brogden Crescent",Leeds,,ME17 1RA,8928124868,C,B,75,89,House,Mid-Terrace,2017-08-25,E07000110,E14000700,Kent,2017-08-30,rental (social),74,89,164,55.0,2.3,29,0.8,66.0,66.0,393.0,333.0,98.0,67.0,79.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,78.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 78% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"4, Brogden Crescent, Leeds",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2017-08-30 16:59:12,rental (social),,,200003698020.0,Address Matched +753359909222012022217450485928962,Oakfield House,Ashford Road,Hollingbourne,ME17 1PF,6842085968,G,G,1,1,House,Detached,2012-02-22,E07000110,E14000700,Kent,2012-02-22,marketed sale,9,17,668,545.0,37.0,118,30.0,175.0,175.0,9987.0,8061.0,155.0,155.0,311.02,dual,N,NODATA!,,,2699.0,0.0,not defined,Normal,0.0,9.0,0.0,34.0,0.0,"Electric immersion, off-peak",Average,Very Poor,"Solid, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation",Very Poor,Very Poor,No system present: electric heaters assumed,Very Poor,Very Poor,,Very Poor,Very Poor,Low energy lighting in 34% of fixed outlets,Average,Average,To be used only when there is no heating/hot-water system,0.0,NO DATA!,,2.75,0.0,,natural,"Oakfield House, Ashford Road, Hollingbourne",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2012-02-22 17:45:04,owner-occupied,29.0,10.0,200003700550.0,Address Matched +971177529942014082023173718142908,"12, South Crescent",Coxheath,,ME17 4QB,9973621178,C,B,70,86,House,Semi-Detached,2014-08-20,E07000110,E14000804,Kent,2014-08-20,marketed sale,70,86,173,65.0,2.7,33,1.1,92.0,50.0,444.0,418.0,156.0,85.0,81.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,18.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 18% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"12, South Crescent, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2014-08-20 23:17:37,owner-occupied,11.0,2.0,200003714482.0,Address Matched +1667877569702018101516401064089158,Flat 49,Brenchley House,123-135 Week Street,ME14 1FX,7796160678,C,C,76,76,Flat,Mid-Terrace,2018-10-15,E07000110,E14000804,Kent,2018-10-15,new dwelling,82,82,195,195.0,0.9,34,0.9,22.0,22.0,150.0,150.0,92.0,92.0,25.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,Community scheme,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.30 W/m-¦K,Good,Good,,,,(other premises above),,,Community scheme,Good,Good,"Charging system linked to use of community heating, programmer and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,NO DATA!,,NO DATA!,,,,,NO DATA!,"Flat 49, Brenchley House, 123-135 Week Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2018-10-15 16:40:10,unknown,6.0,6.0,10094440725.0,Address Matched +1061504619962013121619405507668847,"36, Farmers Close",Leeds,,ME17 1SB,4056177178,D,B,63,88,House,Semi-Detached,2013-12-16,E07000110,E14000700,Kent,2013-12-16,marketed sale,62,90,236,47.0,2.9,45,0.6,59.0,39.0,482.0,344.0,140.0,70.0,64.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,50.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"36, Farmers Close, Leeds",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2013-12-16 19:40:55,owner-occupied,8.0,4.0,200003698384.0,Address Matched +87c2152449f4cad349370cd2a49c7fb6b0d972a361d41530f2fb80a95b7ea525,12 Bridle Way,,,ME16 9GU,10001366099,B,A,84,94,House,Detached,2021-09-03,E07000110,E14000804,Kent,2021-09-03,new dwelling,85,95,79,15.0,1.5,14,0.3,88.0,88.0,253.0,253.0,74.0,45.0,108.0,standard tariff,,,N,,,100.0,,,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.33,,,,12 Bridle Way,Maidstone,Maidstone and The Weald,BARMING,2019,2021-09-03 07:05:51,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,1.0,,10094444735.0,Energy Assessor +478452699722010050412054775708600,3 The Terrace,Smarden Road,Headcorn,TN27 9TA,731945768,C,C,80,80,House,Mid-Terrace,2010-04-30,E07000110,E14000700,Kent,2010-05-04,new dwelling,86,86,115,115.0,1.1,17,1.1,40.0,40.0,150.0,150.0,147.0,147.0,65.13,off-peak 7 hour,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,,From main system |O'r brif system,Poor,Good,Average thermal transmittance 0.16 W/m??K|Trawsyriannedd thermol cyfartalog 0.16 W/m??K,Very Good,Very Good,Fully double glazed|Gwydrau dwbl llawn,Good,Good,Average thermal transmittance 0.24 W/m??K|Trawsyriannedd thermol cyfartalog 0.24 W/m??K,Very Good,Very Good,None|Dim,,,Average thermal transmittance 0.14 W/m??K|Trawsyriannedd thermol cyfartalog 0.14 W/m??K,Very Good,Very Good,"Air source heat pump, |Pwmp gwres sy'n tarddu yn yr awyr, |, underfloor, |, dan y llawr, |electric|trydan",Average,Very Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in 100% of fixed outlets|Goleuadau ynni-isel mewn 100% o'r mannau gosod,Very Good,Very Good,"Electricity: electricity, unspecified tariff",0.0,NO DATA!,,2.9,,,NO DATA!,"3 The Terrace, Smarden Road, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,NO DATA!,2010-05-04 12:05:47,,,,10014309168.0,Address Matched +517299829262010072216204138998680,"55, Marion Crescent",,,ME15 7EH,8351228768,C,C,71,73,House,Detached,2010-07-21,E07000110,E14000700,Kent,2010-07-22,rental (social),67,69,222,211.0,3.3,37,3.2,50.0,50.0,523.0,501.0,108.0,102.0,89.5,Single,Y,NO DATA!,,,2107.0,100.0,double glazing installed before 2002,Less Than Typical,0.0,5.0,5.0,100.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 250 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.5,0.0,N,natural,"55, Marion Crescent",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2010-07-22 16:20:41,rental (social),,,200003677482.0,Address Matched +87a437515d5a420485a297e82a1d0eaf75e135c834b199f853b63d72e0766fcb,89 Wallis Avenue,,,ME15 9HS,10001602311,C,C,73,76,Maisonette,End-Terrace,2021-08-12,E07000110,E14000700,Kent,2021-08-12,marketed sale,74,77,189,164.0,2.0,33,1.7,64.0,64.0,351.0,306.0,75.0,75.0,60.0,Single,Y,00,N,,,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,80.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,no corridor,,2.35,0.0,N,natural,89 Wallis Avenue,Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2021-08-12 15:30:52,Owner-occupied,5.0,,200003682287.0,Energy Assessor +1327641039452015060217540794050132,"29, Mangravet Avenue",,,ME15 9BG,1265946378,C,B,72,87,House,Mid-Terrace,2015-06-02,E07000110,E14000700,Kent,2015-06-02,FiT application,70,86,192,74.0,2.5,34,1.0,59.0,59.0,470.0,401.0,102.0,67.0,75.0,Single,Y,NODATA!,,,2111.0,100.0,double glazing installed before 2002,Normal,1.0,6.0,6.0,80.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,TRVs and bypass,Average,Average,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"29, Mangravet Avenue",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2015-06-02 17:54:07,owner-occupied,,,200003713782.0,Address Matched +1098056886752014102117175892249328,"1, Gosling Walk",,,ME15 6YX,3820620278,B,B,82,82,Flat,Detached,2014-10-21,E07000110,E14000804,Kent,2014-10-21,new dwelling,85,85,101,101.0,1.2,18,1.2,47.0,47.0,224.0,224.0,90.0,90.0,68.0,standard tariff,,ground floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"1, Gosling Walk",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2014-10-21 17:17:58,owner-occupied,15.0,15.0,10014315206.0,Address Matched +1644266939262018062816393328988758,"5, Roy Hood Court",Boughton Monchelsea,,ME17 4FN,5223398578,B,A,85,93,House,Detached,2018-06-28,E07000110,E14000804,Kent,2018-06-28,new dwelling,85,93,82,29.0,2.0,14,0.7,79.0,79.0,312.0,314.0,102.0,55.0,137.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.20 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.08 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"5, Roy Hood Court, Boughton Monchelsea",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2018-06-28 16:39:33,unknown,10.0,10.0,10093304947.0,Address Matched +582516989932011011920535584968300,"10, Murrain Drive",Downswood,,ME15 8XJ,8014303868,D,C,67,77,House,End-Terrace,2011-01-19,E07000110,E14000700,Kent,2011-01-19,marketed sale,63,74,305,215.0,2.8,51,2.0,53.0,34.0,426.0,334.0,144.0,106.0,54.63,dual,Y,NO DATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,43.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 43% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.38,0.0,N,natural,"10, Murrain Drive, Downswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2011-01-19 20:53:55,owner-occupied,,,200003691459.0,Address Matched +470219189642010042012310576409058,Flat,"16, Bull Orchard",,ME16 9EU,5643984768,D,D,63,64,Maisonette,Semi-Detached,2010-04-15,E07000110,E14000804,Kent,2010-04-20,marketed sale,57,58,376,368.0,3.0,63,2.9,49.0,24.0,488.0,493.0,73.0,73.0,47.3,Single,Y,1st,Y,2.0,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,0.0,0.0,From main system,Very Good,Very Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.4,0.0,N,natural,"Flat, 16, Bull Orchard",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2010-04-20 12:31:05,owner-occupied,,,, +536732739062011060712265089338419,"8, Rhodewood Close",Downswood,,ME15 8UR,1885369768,F,F,30,35,House,Semi-Detached,2011-06-07,E07000110,E14000700,Kent,2011-06-07,marketed sale,44,48,331,298.0,4.9,72,4.5,70.0,37.0,1032.0,959.0,236.0,236.0,68.1,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,10.0,0.0,From main system,Poor,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, LPG",Poor,Average,Programmer and room thermostat,Average,Average,Low energy lighting in 10% of fixed outlets,Poor,Poor,LPG (not community),0.0,NO DATA!,,2.375,0.0,,natural,"8, Rhodewood Close, Downswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2011-06-07 12:26:50,owner-occupied,10.0,1.0,200003691388.0,Address Matched +1108598409402018082822185725182488,Lynwood House,Headcorn Road,Grafty Green,ME17 2AP,4481301278,F,E,31,45,House,Detached,2018-08-28,E07000110,E14000700,Kent,2018-08-28,marketed sale,52,65,223,156.0,7.2,43,5.1,111.0,112.0,1916.0,1661.0,173.0,113.0,166.0,Single,N,NODATA!,,,2107.0,65.0,double glazing installed during or after 2002,Normal,2.0,7.0,7.0,78.0,0.0,From main system,Poor,Good,"Suspended, no insulation (assumed)",NO DATA!,,Partial double glazing,Average,Average,"Timber frame, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, LPG",Poor,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 78% of fixed outlets,Very Good,Very Good,LPG (not community),0.0,NO DATA!,,,,N,natural,"Lynwood House, Headcorn Road, Grafty Green",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2018-08-28 22:18:57,owner-occupied,,,200003703676.0,Address Matched +221057210042009012920491451712418,Fourwent,Weavering Street,Weavering,ME14 5JS,3075517568,D,D,57,64,House,Detached,2009-01-29,E07000110,E14000700,Kent,2009-01-29,marketed sale,51,57,310,264.0,5.8,52,5.0,98.0,51.0,655.0,590.0,147.0,127.0,128.94,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,2.0,6.0,6.0,8.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 8% of fixed outlets,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.6,0.0,N,natural,"Fourwent, Weavering Street, Weavering",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1900-1929,2009-01-29 20:49:14,owner-occupied,,,200003686705.0,Address Matched +346244220842009081421173368619448,3 Bakery Cottages,Chatham Road,Sandling,ME14 3BE,8842226668,E,C,54,73,House,End-Terrace,2009-08-14,E07000110,E14000700,Kent,2009-08-14,marketed sale,47,68,339,199.0,6.4,56,3.7,101.0,57.0,900.0,536.0,141.0,124.0,112.3,Single,Y,NO DATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,1.0,5.0,5.0,23.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, partial insulation (assumed)",Average,Average,,,,"Pitched, 100mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Poor,Poor,Low energy lighting in 23% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.5,0.0,N,natural,"3 Bakery Cottages, Chatham Road, Sandling",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2009-08-14 21:17:33,owner-occupied,,,200003672758.0,Address Matched +1402941780012016011418071498960849,6 Little Mill Farm Cottages,Underlyn Lane,Marden,TN12 9AU,8961081478,E,A,43,103,House,Semi-Detached,2016-01-14,E07000110,E14000804,Kent,2016-01-14,rental (private),23,73,599,144.0,9.0,104,2.2,106.0,63.0,1068.0,593.0,276.0,96.0,86.0,dual,N,NODATA!,,,2401.0,0.0,not defined,Normal,3.0,5.0,3.0,30.0,0.0,"Electric immersion, off-peak",Very Poor,Poor,"Solid, no insulation (assumed)",NO DATA!,,Single glazed,Very Poor,Very Poor,"Timber frame, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 250 mm loft insulation",Good,Good,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 30% of fixed outlets,Average,Average,electricity (not community),0.0,NO DATA!,,,,N,natural,"6 Little Mill Farm Cottages, Underlyn Lane, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: before 1900,2016-01-14 18:07:14,rental (private),,,200003711560.0,Address Matched +1793386713112020031713290727900868,Flat 4,"7, Crouch Road",Staplehurst,TN12 0GJ,8812379678,B,B,82,82,Flat,Semi-Detached,2020-03-17,E07000110,E14000804,Kent,2020-03-17,new dwelling,87,87,110,110.0,0.9,19,0.9,43.0,43.0,183.0,183.0,57.0,57.0,45.0,standard tariff,,ground floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.14 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Flat 4, 7, Crouch Road, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,NO DATA!,2020-03-17 13:29:07,unknown,7.0,7.0,10094442109.0,Address Matched +404786630842009113016332072017408,Flat 2,211 Boxley Road,,ME14 2TL,6862130768,B,B,83,86,Flat,Detached,2009-11-30,E07000110,E14000804,Kent,2009-11-30,rental (private),83,85,149,132.0,1.2,24,1.1,47.0,27.0,200.0,194.0,76.0,71.0,48.97,Single,Y,2nd,Y,3.0,2107.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,25.0,0.0,From main system,Very Good,Very Good,(other premises below),,,Fully double glazed,Good,Good,"Solid brick, with internal insulation",Very Good,Very Good,,,,"Pitched, insulated at rafters",Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 25% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.36,0.0,N,natural,"Flat 2, 211 Boxley Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2009-11-30 16:33:20,rental (private),,,, +87f90af5d460c31378d23bdbc66f4a45cbee4499e21d5cd0929311739fd4f467,10a Marsham Street,,,ME14 1EP,10001339055,D,C,67,77,Maisonette,End-Terrace,2021-08-25,E07000110,E14000804,Kent,2021-08-26,rental,66,79,242,150.0,2.5,43,1.5,63.0,63.0,440.0,275.0,79.0,80.0,58.0,dual,Y,01,N,,,81.0,secondary glazing,Normal,1.0,3.0,3.0,90.0,0.0,From main system,Good,Good,(another dwelling below),,,Mostly secondary glazing,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 90% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,no corridor,,2.35,0.0,N,natural,10a Marsham Street,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2021-08-26 15:57:52,Rented (private),10.0,,200003688787.0,Energy Assessor +674818881232012092415225361268801,"68, Loose Road",,,ME15 7UA,8101889868,D,B,64,86,House,Semi-Detached,2012-09-24,E07000110,E14000804,Kent,2012-09-24,marketed sale,62,86,201,62.0,3.8,39,1.2,85.0,53.0,683.0,426.0,50.0,50.0,100.0,Single,Y,NODATA!,,,2107.0,100.0,double glazing installed during or after 2002,Normal,1.0,4.0,4.0,40.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 40% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"68, Loose Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2012-09-24 15:22:53,owner-occupied,10.0,4.0,200003685861.0,Address Matched +1351635219302015080712071032850638,"16, The Bartons",Staplehurst,,TN12 0EF,5361618378,B,B,88,89,House,Mid-Terrace,2015-08-07,E07000110,E14000804,Kent,2015-08-07,new dwelling,90,92,57,43.0,0.8,10,0.6,54.0,54.0,200.0,200.0,95.0,61.0,75.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"16, The Bartons, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,NO DATA!,2015-08-07 12:07:10,owner-occupied,14.0,14.0,10014315515.0,Address Matched +266170529222013042608244930258477,Broom Hill House,Old Lenham Road,Wichling,ME9 0DS,7376260668,D,B,56,84,House,Detached,2013-04-25,E07000110,E14000700,Kent,2013-04-26,rental (private),49,78,209,73.0,7.7,46,3.0,115.0,73.0,1454.0,783.0,150.0,103.0,167.0,Unknown,N,NODATA!,,,2106.0,45.0,double glazing installed during or after 2002,Normal,2.0,7.0,7.0,40.0,2.0,From main system,Good,Average,"Suspended, no insulation (assumed)",,,Partial double glazing,Poor,Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, oil",Good,Average,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 40% of fixed outlets,Average,Average,oil (not community),0.0,NO DATA!,,,0.0,,natural,"Broom Hill House, Old Lenham Road, Wichling",Maidstone,Faversham and Mid Kent,SITTINGBOURNE,England and Wales: before 1900,2013-04-26 08:24:49,rental (private),15.0,6.0,200003725333.0,Address Matched +841216799962013121717161912898017,"43, Sandling Lane",Penenden Heath,,ME14 2HU,1159902078,D,C,65,80,House,Semi-Detached,2013-12-11,E07000110,E14000804,Kent,2013-12-17,marketed sale,61,78,188,98.0,4.9,36,2.6,134.0,67.0,837.0,646.0,98.0,98.0,136.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,2.0,8.0,8.0,0.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"43, Sandling Lane, Penenden Heath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2013-12-17 17:16:19,owner-occupied,17.0,0.0,200003726213.0,Address Matched +1742968109442019091816213262619288,"13, Seymour Drive",Marden,,TN12 9GS,4430806678,B,A,84,93,House,Semi-Detached,2019-09-18,E07000110,E14000804,Kent,2019-09-18,new dwelling,84,93,84,26.0,1.8,15,0.6,83.0,83.0,283.0,286.0,99.0,54.0,124.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.22 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.12 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"13, Seymour Drive, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,NO DATA!,2019-09-18 16:21:32,unknown,10.0,10.0,10094441056.0,Address Matched +1377937091152015102314462590259741,"92, Wallis Avenue",,,ME15 9FU,7186100478,B,B,85,85,Flat,NO DATA!,2015-10-22,E07000110,E14000700,Kent,2015-10-23,new dwelling,89,89,75,75.0,1.0,13,1.0,50.0,50.0,177.0,177.0,92.0,92.0,75.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.20 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"92, Wallis Avenue",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2015-10-23 14:46:25,unknown,10.0,10.0,10014315872.0,Address Matched +282628360052009051111064307910369,"3, Bushy Grove",Kingswood,,ME17 3QL,3998071668,C,C,74,76,Bungalow,Semi-Detached,2009-05-11,E07000110,E14000700,Kent,2009-05-11,rental (social),70,73,234,215.0,2.3,39,2.1,39.0,28.0,343.0,322.0,75.0,75.0,59.15,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,60.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 60% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.42,0.0,N,natural,"3, Bushy Grove, Kingswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1900-1929,2009-05-11 11:06:43,rental (social),,,200003700180.0,Address Matched +447293699022010030210504073698700,"17, Shelley Road",,,ME16 8NS,774923768,D,C,62,77,House,Mid-Terrace,2010-03-01,E07000110,E14000804,Kent,2010-03-02,marketed sale,56,73,336,205.0,3.6,56,2.2,65.0,32.0,495.0,336.0,149.0,105.0,63.4,Single,Y,NO DATA!,,,2106.0,75.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,0.0,0.0,From main system,Average,Good,"Suspended, no insulation (assumed)",,,Partial double glazing,Poor,Poor,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Average,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.45,0.0,N,natural,"17, Shelley Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2010-03-02 10:50:40,owner-occupied,,,200003656029.0,Address Matched +528220493252017030813231190030075,"52, Holland Road",,,ME14 1UT,599309768,E,B,51,81,House,End-Terrace,2017-03-08,E07000110,E14000804,Kent,2017-03-08,marketed sale,43,77,352,124.0,5.8,62,2.1,91.0,60.0,1000.0,580.0,175.0,84.0,94.0,Unknown,Y,NODATA!,,,2105.0,64.0,double glazing installed during or after 2002,Normal,2.0,5.0,5.0,50.0,0.0,"From main system, no cylinder thermostat",Average,Average,"To unheated space, no insulation (assumed)",NO DATA!,,Partial double glazing,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and at least two room thermostats,Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"52, Holland Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2017-03-08 13:23:11,owner-occupied,,,200003699053.0,Address Matched +1069203172652014011011372892940615,"3, Finch Court",,,ME14 2FD,6582228178,B,B,88,88,House,Mid-Terrace,2014-01-10,E07000110,E14000804,Kent,2014-01-10,rental (social) - this is for backwards compatibility only and should not be used,90,90,55,55.0,1.0,11,1.0,55.0,55.0,266.0,266.0,106.0,106.0,94.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.16 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.27 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"3, Finch Court",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2014-01-10 11:37:28,NO DATA!,0.0,0.0,10014314342.0,Address Matched +1694379386052019020408481295010368,Flat 3,"20, Calder Road",,ME14 2QQ,3821652678,D,D,56,57,Flat,Detached,2019-02-04,E07000110,E14000804,Kent,2019-02-04,new dwelling,61,61,260,256.0,2.9,44,2.8,78.0,52.0,664.0,674.0,203.0,203.0,66.0,standard tariff,,top floor,,,,,NO DATA!,NO DATA!,,,,50.0,0.0,Electric instantaneous at point of use,Very Poor,Poor,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.23 W/m-¦K,Very Good,Very Good,"Room heaters, electric",,,Average thermal transmittance 0.21 W/m-¦K,Good,Good,Electric storage heaters,Very Poor,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 50% of fixed outlets,Good,Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"Flat 3, 20, Calder Road",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2019-02-04 08:48:12,unknown,10.0,5.0,10014314791.0,Address Matched +1498060259642016111813061348869788,"45, Waterlow Road",,,ME14 2TP,5655358478,E,C,50,80,House,Mid-Terrace,2016-11-18,E07000110,E14000804,Kent,2016-11-18,rental (social),43,77,411,139.0,4.6,73,1.6,50.0,50.0,817.0,515.0,163.0,68.0,64.0,Unknown,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,1.0,3.0,3.0,87.0,0.0,From main system,Average,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Granite or whinstone, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 87% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,2.6,,N,natural,"45, Waterlow Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2016-11-18 13:06:13,rental (social),,,200003703068.0,Address Matched +419885539702010011214375278109228,"3, Granary Close",Weavering,,ME14 5UB,5777631768,D,C,64,80,House,Mid-Terrace,2010-01-12,E07000110,E14000700,Kent,2010-01-12,marketed sale,58,77,297,164.0,3.7,49,2.1,76.0,38.0,446.0,305.0,205.0,108.0,85.46,Single,Y,NO DATA!,,,2102.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,0.0,0.0,"From main system, no cylinder thermostat",Poor,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Average,Good,"Programmer, no room thermostat",Very Poor,Very Poor,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.37,0.0,N,natural,"3, Granary Close, Weavering",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2010-01-12 14:37:52,owner-occupied,,,200003673071.0,Address Matched +1002501959042013090519212710370558,"56, Shaw Close",,,ME14 5DN,8085053178,C,B,73,87,House,End-Terrace,2013-09-05,E07000110,E14000804,Kent,2013-09-05,marketed sale,73,88,148,55.0,2.7,28,1.1,100.0,57.0,400.0,382.0,150.0,83.0,95.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,25.0,0.0,From main system,Good,Good,"Suspended, insulated (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 25% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"56, Shaw Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2013-09-05 19:21:27,owner-occupied,12.0,3.0,10022892533.0,Address Matched +902666417732013032223163738278702,"54, Gatland Lane",,,ME16 9DB,1298746078,D,B,67,87,Bungalow,Semi-Detached,2013-03-22,E07000110,E14000804,Kent,2013-03-22,rental (social),68,89,227,52.0,2.1,44,0.5,30.0,30.0,380.0,326.0,96.0,65.0,48.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"54, Gatland Lane",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2013-03-22 23:16:37,rental (social),6.0,6.0,200003678597.0,Address Matched +1681859952922020081410101941248030,13 The Glebe,Yalding,,ME18 6BF,3440561678,B,A,84,96,House,Semi-Detached,2020-08-14,E07000110,E14000804,Kent,2020-08-14,new dwelling,87,99,82,-3.0,1.2,14,0.0,69.0,69.0,204.0,204.0,77.0,47.0,81.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.22 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"13 The Glebe, Yalding",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2020-08-14 10:10:19,unknown,10.0,10.0,10094440004.0,Address Matched +1480245271632016091616283125978708,"26, Murdoch Chase",Coxheath,,ME17 4AA,7815727478,B,A,84,96,House,NO DATA!,2016-09-16,E07000110,E14000804,Kent,2016-09-16,new dwelling,87,99,81,-3.0,1.2,14,0.0,58.0,58.0,210.0,210.0,84.0,49.0,82.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.14 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.20 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"26, Murdoch Chase, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2016-09-16 16:28:31,unknown,10.0,10.0,10093302683.0,Address Matched +1637217401452018060414053894080656,"20, MacGrory Drive",,,ME14 5GF,6682148578,B,A,85,95,House,Semi-Detached,2018-06-04,E07000110,E14000700,Kent,2018-06-04,new dwelling,86,96,78,13.0,1.5,14,0.3,72.0,72.0,242.0,242.0,79.0,46.0,106.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.18 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.28 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.19 W/m-¦K,Good,Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"20, MacGrory Drive",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2018-06-04 14:05:38,owner-occupied,13.0,13.0,10093305870.0,Address Matched +251093160742009032418134451912048,"31, Charlesford Avenue",Kingswood,,ME17 3PH,8755569568,E,D,46,57,Bungalow,Semi-Detached,2009-03-24,E07000110,E14000700,Kent,2009-03-24,marketed sale,49,60,391,310.0,5.6,56,4.3,85.0,45.0,805.0,667.0,111.0,97.0,99.3,Single,Y,NO DATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,6.0,6.0,10.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, wood logs",,,"Pitched, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Poor,Poor,Low energy lighting in 10% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.3,0.0,N,natural,"31, Charlesford Avenue, Kingswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2009-03-24 18:13:44,owner-occupied,,,200003700349.0,Address Matched +886570d7139b0e9385f707bbbd7e4fe4d98ad0bfe9ef72ae258ecae4ad7bee08,FLAT 7,BURDOCK HOUSE,NORTHUMBERLAND ROAD,ME15 7TX,10001699024,E,C,49,71,Flat,Detached,2021-06-29,E07000110,E14000700,Kent,2021-07-01,ECO assessment,46,73,407,197.0,4.3,71,2.1,114.0,57.0,823.0,419.0,103.0,85.0,61.0,Single,Y,00,Y,,,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,0.0,0.0,From main system,Good,Good,(another dwelling below),,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Average,Average,"Room heaters, electric",,,"Pitched, insulated (assumed)",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,unheated corridor,6.0,2.75,0.0,N,natural,"FLAT 7, BURDOCK HOUSE, NORTHUMBERLAND ROAD",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2021-07-01 16:30:49,Rented (social),8.0,,200003714123.0,Energy Assessor +1456379459242016062311265242562798,"4, Edelin Road",Bearsted,,ME14 4RD,4211855478,C,C,79,79,Flat,Semi-Detached,2016-06-21,E07000110,E14000700,Kent,2016-06-23,marketed sale,82,82,133,133.0,1.3,23,1.3,48.0,48.0,207.0,207.0,117.0,117.0,54.0,Unknown,Y,Ground,N,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,86.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Timber frame, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 86% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,3.85,2.31,,N,natural,"4, Edelin Road, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2003-2006,2016-06-23 11:26:52,owner-occupied,,,10022895489.0,Address Matched +649909819642012011906195481829218,"82, Forest Hill",,,ME15 6TH,1636618868,D,D,60,67,House,End-Terrace,2012-01-19,E07000110,E14000804,Kent,2012-01-19,marketed sale,57,65,267,216.0,3.9,51,3.1,67.0,42.0,634.0,525.0,99.0,99.0,65.86,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,3.0,40.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 40% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,2.25,0.0,,natural,"82, Forest Hill",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2012-01-19 06:19:54,owner-occupied,10.0,4.0,200003664993.0,Address Matched +932756599922013051807553578838017,"13, Restharrow Road",Weavering,,ME14 5UH,1723958078,C,B,71,83,House,Detached,2013-05-17,E07000110,E14000700,Kent,2013-05-18,none of the above,68,82,152,77.0,4.4,29,2.3,87.0,87.0,702.0,571.0,144.0,79.0,152.0,Single,Y,NODATA!,,,2106.0,,not defined,Much More Than Typical,2.0,7.0,7.0,75.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, insulated (assumed)",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"13, Restharrow Road, Weavering",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2013-05-18 07:55:35,owner-occupied,16.0,12.0,200003687826.0,Address Matched +886b91846c86f58f9892a5195a2530721c145f451d40cc51b190d4882c47ab6a,60 CUMBERLAND AVENUE,,,ME15 7JJ,10001569996,E,B,54,83,House,Mid-Terrace,2021-06-28,E07000110,E14000700,Kent,2021-07-01,ECO assessment,51,82,339,106.0,4.1,60,1.3,117.0,58.0,667.0,471.0,204.0,79.0,69.0,Single,Y,,,,,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,0.0,0.0,"From main system, no cylinder thermostat",Average,Average,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,"Pitched, insulated (assumed)",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,,,2.75,0.0,N,natural,60 CUMBERLAND AVENUE,Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2021-07-01 10:11:47,Rented (social),8.0,,200003714145.0,Energy Assessor +596594719932011111021313024968092,"9, South Road",Marden,,TN12 9EN,1294024868,C,C,69,70,House,Semi-Detached,2011-11-10,E07000110,E14000804,Kent,2011-11-10,rental (social),68,68,190,184.0,3.2,36,3.2,75.0,47.0,509.0,513.0,113.0,113.0,89.02,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,40.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 40% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,2.42,0.0,,natural,"9, South Road, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1950-1966,2011-11-10 21:31:30,rental (social),10.0,4.0,200003662724.0,Address Matched +658983679802012081611552180829168,3 Priory Quay,The Priory,East Farleigh,ME15 0JH,5897978868,C,B,79,81,Flat,End-Terrace,2012-08-16,E07000110,E14000804,Kent,2012-08-16,marketed sale,82,84,103,92.0,1.6,19,1.4,101.0,50.0,245.0,253.0,87.0,87.0,82.0,Unknown,Y,1st,N,,2102.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,0.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and underfloor heating, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,unheated corridor,2.0,,0.0,,natural,"3 Priory Quay, The Priory, East Farleigh",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2012-08-16 11:55:21,owner-occupied,8.0,0.0,10014306241.0,Address Matched +1516582589442017020318484444930878,Flat 1 Hedley Court,"27, Hedley Street",,ME14 5GE,6436589478,C,C,80,80,Flat,Semi-Detached,2017-02-03,E07000110,E14000804,Kent,2017-02-03,rental (private),85,85,129,129.0,0.9,23,0.9,32.0,32.0,172.0,172.0,78.0,78.0,39.0,Single,Y,Ground,N,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Very Good,Very Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,5.57,,,N,natural,"Flat 1 Hedley Court, 27, Hedley Street",Maidstone,Maidstone and The Weald,MAIDSTONE,INVALID!,2017-02-03 18:48:44,rental (private),,,10022896373.0,Address Matched +829399681232012090109233330078509,"63, Stagshaw Close",,,ME15 6TE,8960521078,C,A,77,93,House,Mid-Terrace,2012-09-01,E07000110,E14000804,Kent,2012-09-01,marketed sale,80,96,133,6.0,1.4,25,0.1,36.0,36.0,268.0,260.0,78.0,48.0,56.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,"Solid, limited insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"63, Stagshaw Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2012-09-01 09:23:33,owner-occupied,7.0,7.0,10022893305.0,Address Matched +810200528712012070509413798020592,"94, Wheeler Street",,,ME14 1UB,5269889968,D,B,67,84,House,Mid-Terrace,2012-07-04,E07000110,E14000804,Kent,2012-07-05,marketed sale,65,84,196,75.0,3.1,38,1.2,55.0,55.0,532.0,411.0,85.0,60.0,81.0,Unknown,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,5.0,5.0,78.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 78% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"94, Wheeler Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2012-07-05 09:41:37,owner-occupied,9.0,7.0,200003698894.0,Address Matched +1452900326632016061316163879978303,"4, Cannock Drive",,,ME15 8GE,2399335478,C,B,76,88,House,NO DATA!,2016-06-13,E07000110,E14000700,Kent,2016-06-13,new dwelling,82,94,98,15.0,1.7,19,0.4,56.0,56.0,372.0,374.0,104.0,55.0,87.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,wood chips,,NO DATA!,,,,,NO DATA!,"4, Cannock Drive",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2016-06-13 16:16:38,unknown,1.0,1.0,10091193711.0,Address Matched +751556168412012021722550996920890,"30, The Grove",Bearsted,,ME14 4JB,8066865968,D,C,67,72,House,Semi-Detached,2012-02-17,E07000110,E14000700,Kent,2012-02-17,marketed sale,64,70,187,159.0,4.6,36,3.9,108.0,60.0,685.0,618.0,139.0,122.0,143.48,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,1.0,7.0,7.0,22.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 22% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,2.44,0.0,,natural,"30, The Grove, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2012-02-17 22:55:09,owner-occupied,18.0,4.0,200003692553.0,Address Matched +1055958339062013120521203137558627,"59, Roseleigh Avenue",,,ME16 0AS,2329337178,D,C,57,76,House,Detached,2013-12-05,E07000110,E14000804,Kent,2013-12-05,marketed sale,55,75,247,122.0,4.3,47,2.2,108.0,54.0,749.0,639.0,138.0,75.0,92.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,7.0,7.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"59, Roseleigh Avenue",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1991-1995,2013-12-05 21:20:31,owner-occupied,19.0,0.0,200003657201.0,Address Matched +888fba128697e06d2dc10d2f21d4074a80e50aaf18d7e7a66fd6208116a6100e,"Flat 14 Adeline Heights, Rosalind Drive",,,ME14 2FP,10001633562,B,B,85,85,Flat,End-Terrace,2021-07-02,E07000110,E14000804,Kent,2021-07-02,new dwelling,89,89,71,71.0,0.9,12,0.9,58.0,58.0,159.0,159.0,71.0,71.0,69.0,standard tariff,,2,N,,,100.0,,,,,,100.0,0.0,From main system,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.46 W/m-¦K,Good,Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.5,,,,"Flat 14 Adeline Heights, Rosalind Drive",Maidstone,Maidstone and The Weald,Maidstone,2018,2021-07-02 16:05:39,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,10.0,,10094441277.0,Address Matched +452067802612010031016300296900578,"44, Cherry Orchard Way",,,ME16 8TH,5816263768,D,D,64,65,House,End-Terrace,2010-03-10,E07000110,E14000804,Kent,2010-03-10,rental (social),58,59,276,271.0,4.3,46,4.2,77.0,48.0,637.0,643.0,117.0,117.0,92.88,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,40.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"System built, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 40% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.41,0.0,N,natural,"44, Cherry Orchard Way",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2010-03-10 16:30:02,rental (social),,,200003696498.0,Address Matched +655377953852011101417075795999087,18 Thomas Place,James Whatman Way,,ME14 1FP,720358868,C,C,79,79,Flat,Mid-Terrace,2011-10-14,E07000110,E14000804,Kent,2011-10-14,new dwelling,89,90,115,111.0,0.8,15,0.7,41.0,31.0,201.0,202.0,96.0,96.0,51.1,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,4.0,,"Community scheme, no cylinder thermostat",Good,Very Good,(other premises below),,,Fully double glazed,Good,Good,Average thermal transmittance 0.42 W/m?K,Good,Good,,,,(other premises above),,,Community scheme,Good,Very Good,"Flat rate charging, programmer and TRVs",Average,Average,Low energy lighting in 67% of fixed outlets,Good,Good,NO DATA!,0.0,NO DATA!,,2.4,,,NO DATA!,"18 Thomas Place, James Whatman Way",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2011-10-14 17:07:57,,6.0,4.0,10014312684.0,Address Matched +1113476059262014032508505601348414,"36, Anglesey Avenue",,,ME15 9SU,1007531278,D,C,64,79,House,Semi-Detached,2014-03-24,E07000110,E14000804,Kent,2014-03-25,marketed sale,68,82,196,106.0,3.4,31,1.7,97.0,59.0,732.0,647.0,131.0,88.0,108.0,Unknown,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,6.0,6.0,36.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, wood logs",,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 36% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"36, Anglesey Avenue",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2014-03-25 08:50:56,owner-occupied,14.0,5.0,200003678522.0,Address Matched +154115897452008101509552201989955,"32, Bower Mount Road",,,ME16 8AU,9525712568,E,C,51,70,House,Semi-Detached,2008-10-15,E07000110,E14000804,Kent,2008-10-15,marketed sale,45,65,325,202.0,8.9,54,5.5,117.0,76.0,1041.0,644.0,145.0,127.0,163.1,Single,Y,NO DATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,1.0,8.0,8.0,45.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Poor,Poor,Low energy lighting in 45% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.74,0.0,N,natural,"32, Bower Mount Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2008-10-15 09:55:22,owner-occupied,,,200003657687.0,Address Matched +591089479142011021019342382399208,"229, Willington Street",,,ME15 8EW,5195173868,D,D,63,68,House,Detached,2011-02-10,E07000110,E14000700,Kent,2011-02-10,marketed sale,57,63,233,205.0,7.7,39,6.8,162.0,112.0,1118.0,1022.0,214.0,183.0,222.99,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,2.0,10.0,10.0,55.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 55% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.64,0.0,N,natural,"229, Willington Street",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2011-02-10 19:34:23,owner-occupied,,,200003684784.0,Address Matched +1758221079812019110612082291019165,"1, Mayfield",Harrietsham,,ME17 1US,1598917678,B,A,83,93,House,Detached,2019-11-06,E07000110,E14000700,Kent,2019-11-06,new dwelling,84,93,90,30.0,1.9,16,0.7,79.0,79.0,309.0,311.0,100.0,55.0,122.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.10 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.19 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.12 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"1, Mayfield, Harrietsham",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2019-11-06 12:08:22,unknown,10.0,10.0,10094442191.0,Address Matched +1645124399102019090912341259889728,7 Broadway Heights,"23, The Broadway",,ME16 8GJ,8175898578,C,B,80,81,Flat,Semi-Detached,2018-03-12,E07000110,E14000804,Kent,2019-09-09,rental (social),84,85,121,112.0,1.0,21,1.0,75.0,44.0,163.0,167.0,86.0,86.0,49.0,dual (24 hour),Y,2nd,Y,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,3.0,30.0,0.0,From main system,Good,Good,(another dwelling below),NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Very Good,Very Good,Portable electric heaters (assumed),,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 30% of fixed outlets,Average,Average,mains gas (not community),0.0,heated corridor,,,,N,natural,"7 Broadway Heights, 23, The Broadway",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2019-09-09 12:34:12,rental (social),,,10022896831.0,Address Matched +624702122752018021201145393980880,"5, Buckingham Row",,,ME15 8BT,8079236868,C,B,70,84,House,Semi-Detached,2018-02-10,E07000110,E14000700,Kent,2018-02-12,rental (private),71,85,200,96.0,2.6,32,1.2,70.0,56.0,489.0,453.0,100.0,67.0,79.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,75.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,"Room heaters, wood logs",,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"5, Buckingham Row",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2018-02-12 01:14:53,rental (private),,,200003684626.0,Address Matched +812467409242012071314195804029778,"58, Bedgebury Close",,,ME14 5QZ,7282400078,C,B,69,81,House,Semi-Detached,2012-07-13,E07000110,E14000804,Kent,2012-07-13,marketed sale,66,80,174,94.0,3.5,33,1.9,65.0,65.0,552.0,499.0,134.0,91.0,105.0,Single,Y,NODATA!,,,2504.0,100.0,double glazing installed before 2002,Normal,1.0,6.0,6.0,80.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Warm air, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"58, Bedgebury Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2012-07-13 14:19:58,owner-occupied,10.0,8.0,200003672057.0,Address Matched +316002366132009062717455878268904,Flat 95 Lee Heights,Bambridge Court,,ME14 2LD,6468904668,C,B,69,83,Flat,Mid-Terrace,2009-06-26,E07000110,E14000804,Kent,2009-06-27,marketed sale,78,76,185,201.0,1.8,28,1.9,36.0,36.0,222.0,120.0,188.0,114.0,62.9,dual,N,3rd,N,5.0,2602.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,100.0,0.0,"Electric immersion, off-peak",Very Poor,Poor,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Room heaters, electric",Very Poor,Poor,Appliance thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity - this is for backwards compatibility only and should not be used,0.0,unheated corridor,5.34,2.23,0.0,N,natural,"Flat 95 Lee Heights, Bambridge Court",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2009-06-27 17:45:58,owner-occupied,,,10022893066.0,Address Matched +824507981952013011609255599970604,"4, Canning Street",,,ME14 2RU,6420190078,B,B,84,84,House,Mid-Terrace,2013-01-15,E07000110,E14000804,Kent,2013-01-16,new dwelling,87,87,75,75.0,1.3,14,1.3,54.0,54.0,241.0,241.0,80.0,80.0,92.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.18 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.22 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.17 W/m?K,Good,Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"4, Canning Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2013-01-16 09:25:55,NO DATA!,12.0,12.0,10014313832.0,Address Matched +1785320945012020021706405521900068,"7, Tichborne Close",,,ME16 0RY,887519678,D,B,63,87,Bungalow,Semi-Detached,2020-02-10,E07000110,E14000804,Kent,2020-02-17,marketed sale,58,87,283,70.0,3.2,50,0.8,59.0,59.0,501.0,347.0,165.0,66.0,65.0,Unknown,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,89.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 89% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"7, Tichborne Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2020-02-17 06:40:55,owner-occupied,,,200003727338.0,Address Matched +1538279839652018011511475093980154,9 Parks Road,Harrietsham,,ME17 1GR,1460931578,B,A,84,94,House,Detached,2018-01-15,E07000110,E14000700,Kent,2018-01-15,new dwelling,85,95,86,19.0,1.6,15,0.4,70.0,70.0,261.0,261.0,83.0,49.0,103.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.16 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.21 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"9 Parks Road, Harrietsham",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2018-01-15 11:47:50,owner-occupied,15.0,15.0,10093305140.0,Address Matched +681120939342011092600153194092478,Flat 36 Block F,Lindisfarne Gardens,,ME16 8QG,9322130968,C,C,75,77,Flat,Enclosed End-Terrace,2011-09-23,E07000110,E14000804,Kent,2011-09-26,rental (private),78,81,150,136.0,1.7,28,1.5,46.0,46.0,257.0,247.0,122.0,104.0,58.7,Single,Y,Ground,Y,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,75.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,heated corridor,,2.31,0.0,,natural,"Flat 36 Block F, Lindisfarne Gardens",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2011-09-26 00:15:31,rental (private),8.0,6.0,200003724406.0,Address Matched +88d4a5cfe272174da191299a8163a6dafc09dd57367e03004f12156cbd170a79,16 BRIDLE WAY,,,ME16 9GU,10001373650,B,A,84,96,House,Semi-Detached,2021-07-20,E07000110,E14000804,Kent,2021-07-20,new dwelling,87,99,80,-5.0,1.1,14,0.0,71.0,71.0,201.0,201.0,69.0,42.0,80.0,standard tariff,,,N,,,100.0,,,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.33,,,,16 BRIDLE WAY,Maidstone,Maidstone and The Weald,BARMING,2019,2021-07-20 11:40:57,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,1.0,,10094444737.0,Energy Assessor +597373744732013042221473513268602,Flat 9 Hardwick House,Northumberland Road,,ME15 7TH,4223624868,C,C,72,75,Flat,Semi-Detached,2013-04-22,E07000110,E14000700,Kent,2013-04-22,rental (social),74,79,218,178.0,1.4,42,1.2,31.0,22.0,249.0,211.0,88.0,88.0,34.0,Unknown,N,Ground,N,,2301.0,100.0,double glazing installed before 2002,Normal,0.0,2.0,2.0,60.0,0.0,Community scheme,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,Community scheme,Good,Good,"Flat rate charging, no thermostatic control of room temperature",Very Poor,Very Poor,Low energy lighting in 60% of fixed outlets,Good,Good,mains gas (community),0.0,heated corridor,,,0.0,,natural,"Flat 9 Hardwick House, Northumberland Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2013-04-22 21:47:35,rental (social),5.0,3.0,200003684345.0,Address Matched +1820426058032020090407401650278206,"3, The Stampers",,,ME15 6FF,5690271778,C,B,71,88,House,Mid-Terrace,2020-08-25,E07000110,E14000804,Kent,2020-09-04,rental (private),70,87,201,70.0,2.4,35,0.9,99.0,56.0,410.0,365.0,82.0,55.0,67.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,1.0,4.0,4.0,25.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 25% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"3, The Stampers",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2020-09-04 07:40:16,rental (private),,,200003716374.0,Address Matched +316447540222009062917133624318631,"18, Hedley Street",,,ME14 1UG,3289414668,E,D,47,55,House,Mid-Terrace,2009-06-29,E07000110,E14000804,Kent,2009-06-29,marketed sale,39,45,463,390.0,5.4,85,4.6,49.0,33.0,699.0,614.0,95.0,77.0,63.4,dual,Y,NO DATA!,,,2106.0,0.0,INVALID!,Normal,1.0,3.0,3.0,50.0,2.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, coal",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.5,0.0,N,natural,"18, Hedley Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2009-06-29 17:13:36,owner-occupied,,,200003698926.0,Address Matched +407008440062009120212541520128481,"74, Roman Way",Boughton Monchelsea,,ME17 4SH,8280440768,B,B,84,85,House,Mid-Terrace,2009-12-02,E07000110,E14000700,Kent,2009-12-02,new dwelling,83,84,119,112.0,1.6,20,1.5,68.0,42.0,227.0,231.0,96.0,96.0,81.71,standard tariff,,NO DATA!,,,2106.0,,NO DATA!,NO DATA!,,,,,0.0,From main system,Very Good,Very Good,Average thermal transmittance 0.19 W/m?K,Very Good,Very Good,Fully double glazed,Good,Good,Average thermal transmittance 0.29 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.16 W/m?K,Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 36% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.33,,,NO DATA!,"74, Roman Way, Boughton Monchelsea",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2009-12-02 12:54:15,,,,10022896600.0,Address Matched +927639252432014021818271984078005,"22, Postley Road",,,ME15 6TR,5584028078,E,C,50,79,House,End-Terrace,2014-02-04,E07000110,E14000804,Kent,2014-02-18,assessment for green deal,44,76,281,106.0,7.1,54,2.7,88.0,68.0,1335.0,689.0,110.0,110.0,132.0,Single,Y,NODATA!,,,2106.0,95.0,"double glazing, unknown install date",Normal,1.0,6.0,6.0,71.0,2.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Mostly double glazing,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 71% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"22, Postley Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2014-02-18 18:27:19,owner-occupied,14.0,10.0,200003681879.0,Address Matched +1422987639922016031123473473498466,"1, Coalpit Lane",Frinsted,,ME9 0SS,6782323478,F,A,33,99,House,Semi-Detached,2016-03-11,E07000110,E14000700,Kent,2016-03-11,rental (private),29,88,352,-36.0,7.2,89,0.6,87.0,53.0,1005.0,423.0,208.0,170.0,80.0,Single,N,NODATA!,,,2106.0,0.0,not defined,Normal,1.0,5.0,5.0,36.0,1.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Single glazed,Very Poor,Very Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, oil",Average,Average,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 36% of fixed outlets,Average,Average,oil (not community),0.0,NO DATA!,,,,N,natural,"1, Coalpit Lane, Frinsted",Maidstone,Faversham and Mid Kent,SITTINGBOURNE,England and Wales: before 1900,2016-03-11 23:47:34,rental (private),,,200003721732.0,Address Matched +491128186032020061019374630068503,"32a, Tilling Close",,,ME15 6RW,8340536768,C,B,80,81,Flat,End-Terrace,2020-06-09,E07000110,E14000804,Kent,2020-06-10,marketed sale,84,85,122,111.0,1.1,21,1.0,49.0,49.0,208.0,189.0,78.0,78.0,53.0,Unknown,Y,2nd,Y,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,100.0,0.0,From main system,Good,Good,(another dwelling below),NO DATA!,,Fully double glazed,Good,Good,"Timber frame, as built, insulated (assumed)",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,4.4,,,N,natural,"32a, Tilling Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2020-06-10 19:37:46,owner-occupied,,,10014311226.0,Address Matched +1398534017412015122206554894259849,"97, Tintern Road",,,ME16 0RP,8962741478,D,B,56,81,House,Mid-Terrace,2015-12-21,E07000110,E14000804,Kent,2015-12-22,marketed sale,51,78,358,132.0,3.5,63,1.4,78.0,39.0,608.0,481.0,146.0,65.0,56.0,Single,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"97, Tintern Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2015-12-22 06:55:48,owner-occupied,,,200003660932.0,Address Matched +521850459002010080422374070800348,Flat 2 Harbledown House,Fant Lane,,ME16 8NZ,81858768,B,B,83,83,Flat,Mid-Terrace,2010-08-04,E07000110,E14000804,Kent,2010-08-04,rental (social),79,79,165,165.0,1.6,28,1.6,30.0,30.0,234.0,234.0,107.0,107.0,56.72,Single,Y,Ground,N,3.0,2306.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,(another dwelling above),,,Community scheme,Good,Good,"Unit charging, programmer and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,heated corridor,,2.24,0.0,N,natural,"Flat 2 Harbledown House, Fant Lane",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2010-08-04 22:37:40,rental (social),,,, +1516777169022017020413490169648893,"24, Coombe Road",,,ME15 6UE,9611689478,D,B,64,87,House,Semi-Detached,2017-02-04,E07000110,E14000804,Kent,2017-02-04,marketed sale,60,86,267,81.0,3.4,47,1.1,99.0,49.0,570.0,416.0,121.0,51.0,72.0,Unknown,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,1.0,3.0,3.0,0.0,0.0,From main system,Good,Good,"Solid, insulated",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"24, Coombe Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2017-02-04 13:49:01,owner-occupied,,,200003682100.0,Address Matched +456308099602010031823272374309888,"2, Gleneagles Drive",,,ME15 6FH,9644293768,C,C,69,76,House,Semi-Detached,2010-03-18,E07000110,E14000804,Kent,2010-03-18,marketed sale,66,72,253,203.0,2.9,42,2.4,68.0,36.0,417.0,363.0,127.0,109.0,81.85,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,10.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 10% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.37,0.0,N,natural,"2, Gleneagles Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2010-03-18 23:27:23,owner-occupied,,,200003681535.0,Address Matched +88ffe9927c4e041f6be571a840b94a14c67a92278f3c26aedd941fc83e7ae053,13 TENACRE COURT,ASHFORD ROAD,HARRIETSHAM,ME17 1AH,10001357228,E,E,41,41,Flat,Mid-Terrace,2021-08-05,E07000110,E14000700,Kent,2021-08-05,not sale or rental,48,48,359,359.0,4.3,61,4.3,75.0,75.0,1277.0,1277.0,237.0,237.0,71.0,standard tariff,,1,N,,,100.0,,,,,,100.0,0.0,Electric instantaneous at point of use,Very Poor,Poor,Average thermal transmittance 0.50 W/m-¦K,Poor,Poor,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.37 W/m-¦K,Good,Good,,,,Average thermal transmittance 0.32 W/m-¦K,Average,Average,"Boiler and radiators, electric",Very Poor,Poor,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",0.0,,,3.66,,,,"13 TENACRE COURT, ASHFORD ROAD, HARRIETSHAM",Maidstone,Faversham and Mid Kent,MAIDSTONE,2020,2021-08-05 14:12:56,Owner-occupied,5.0,,10095449478.0,Energy Assessor +1622855399962018101811072687688558,"8, Woollen Way",Headcorn,,TN27 9BF,5897937578,B,B,89,91,House,Mid-Terrace,2018-10-18,E07000110,E14000700,Kent,2018-10-18,new dwelling,92,94,50,32.0,0.7,9,0.5,63.0,63.0,167.0,168.0,94.0,52.0,80.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.14 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.21 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"8, Woollen Way, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,NO DATA!,2018-10-18 11:07:26,unknown,15.0,15.0,10093304409.0,Address Matched +809028089902012070615221992920968,"40, Spot Lane",Bearsted,,ME15 8NX,2938389968,D,B,66,84,House,Semi-Detached,2012-07-06,E07000110,E14000700,Kent,2012-07-06,marketed sale,63,83,188,75.0,3.9,36,1.6,55.0,56.0,671.0,473.0,90.0,64.0,108.0,Single,Y,NODATA!,,,2106.0,60.0,double glazing installed before 2002,Normal,1.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Partial double glazing,Poor,Poor,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"40, Spot Lane, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2012-07-06 15:22:19,owner-occupied,8.0,8.0,200003690738.0,Address Matched +845526589922012101621411072528872,"52, Cambridge Crescent",,,ME15 7NG,7723832078,D,B,58,81,House,Semi-Detached,2012-10-12,E07000110,E14000700,Kent,2012-10-16,rental (social),58,83,250,88.0,3.5,47,1.3,74.0,42.0,615.0,448.0,102.0,68.0,74.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,3.0,3.0,25.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 25% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"52, Cambridge Crescent",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2012-10-16 21:41:10,rental (social),8.0,2.0,200003712467.0,Address Matched +228348953452009021920521501910957,"24, Basing Close",,,ME15 7UZ,9704318568,C,C,72,79,Flat,Detached,2009-02-19,E07000110,E14000804,Kent,2009-02-19,marketed sale,71,78,252,189.0,2.1,41,1.5,37.0,24.0,299.0,240.0,104.0,90.0,49.6,Unknown,Y,1st,Y,2.0,2104.0,0.0,INVALID!,Normal,0.0,2.0,2.0,50.0,0.0,From main system,Good,Good,(other premises below),,,Single glazed,Very Poor,Very Poor,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,"Pitched, 75mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Poor,Poor,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,unheated corridor,0.9,2.3,0.0,N,natural,"24, Basing Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2009-02-19 20:52:15,owner-occupied,,,200003696111.0,Address Matched +123280519842014022508460041942358,"6, Sissinghurst Drive",,,ME16 0UW,7857519468,D,C,67,78,House,Detached,2014-02-25,E07000110,E14000804,Kent,2014-02-25,marketed sale,64,75,185,113.0,3.9,36,2.5,82.0,63.0,697.0,664.0,130.0,88.0,111.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,0.0,7.0,7.0,70.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 70% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"6, Sissinghurst Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1991-1995,2014-02-25 08:46:00,owner-occupied,30.0,21.0,200003693234.0,Address Matched +33557310842009091618524647319868,"6, Glebe Gardens",Lenham,,ME17 2QA,2808013468,C,C,70,77,House,Semi-Detached,2009-09-16,E07000110,E14000700,Kent,2009-09-16,marketed sale,65,73,213,162.0,4.4,35,3.4,88.0,63.0,573.0,468.0,178.0,134.0,136.7,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,6.0,6.0,62.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 62% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.44,0.0,N,natural,"6, Glebe Gardens, Lenham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2009-09-16 18:52:46,owner-occupied,,,200003713993.0,Address Matched +1013932339202013092513065818472648,"2, Goudhurst Close",,,ME16 8QT,6234034178,E,C,43,74,Bungalow,Detached,2013-09-24,E07000110,E14000804,Kent,2013-09-25,rental (private),28,51,548,293.0,7.1,97,3.8,69.0,48.0,809.0,550.0,290.0,134.0,73.0,dual,N,NODATA!,,,2401.0,100.0,double glazing installed before 2002,Normal,1.0,3.0,3.0,57.0,0.0,"Electric immersion, off-peak",Very Poor,Very Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,Portable electric heaters (assumed),,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 57% of fixed outlets,Good,Good,electricity (not community),0.0,NO DATA!,,,0.0,,natural,"2, Goudhurst Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2013-09-25 13:06:58,rental (private),14.0,8.0,200003668044.0,Address Matched +8916611325c1b7fb36fb1f7187bfe190ce269b9599724ff1ad0d53b862b63485,2 FRANKLIN DRIVE,WEAVERING,,ME14 5SY,10001439141,D,C,67,79,House,Detached,2021-08-04,E07000110,E14000700,Kent,2021-08-04,marketed sale,65,78,207,126.0,3.8,34,2.3,96.0,96.0,699.0,643.0,123.0,80.0,114.0,Unknown,Y,,,,,100.0,"double glazing, unknown install date",Normal,1.0,7.0,7.0,87.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, wood logs",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 87% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.4,0.0,N,natural,"2 FRANKLIN DRIVE, WEAVERING",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2021-08-04 12:56:09,Owner-occupied,15.0,,200003716405.0,Energy Assessor +613566759542011040516252187590158,"24, Pennine Way",Downswood,,ME15 8UG,2520355868,D,D,59,63,House,Detached,2011-04-05,E07000110,E14000700,Kent,2011-04-05,marketed sale,53,56,289,269.0,5.6,48,5.2,128.0,64.0,836.0,809.0,166.0,166.0,116.6,Unknown,Y,NO DATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,6.0,6.0,0.0,1.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, mains gas",,,"Pitched, insulated (assumed)",Average,Average,"Boiler and radiators, mains gas",Very Good,Very Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.3,0.0,N,natural,"24, Pennine Way, Downswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2011-04-05 16:25:21,owner-occupied,,,200003691323.0,Address Matched +1309684729002015120216081834559548,"14, Newman Close",,,ME16 0ZN,3040225378,B,B,88,89,House,Semi-Detached,2015-04-14,E07000110,E14000804,Kent,2015-12-02,new dwelling,89,91,62,49.0,0.9,11,0.7,62.0,62.0,244.0,244.0,97.0,62.0,85.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"14, Newman Close",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2015-12-02 16:08:18,owner-occupied,14.0,14.0,10014315147.0,Address Matched +735917629642012011013543692429408,24 Shipley Court,Wyatt Street,,ME14 1HF,7647524968,C,B,78,81,Flat,Detached,2012-01-10,E07000110,E14000804,Kent,2012-01-10,rental (social),64,69,270,237.0,2.7,48,2.4,36.0,36.0,191.0,183.0,156.0,115.0,56.5,dual,N,Ground,Y,,2401.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,100.0,0.0,"Electric immersion, off-peak",Average,Very Poor,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,(another dwelling above),,,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,unheated corridor,5.95,2.4,0.0,,natural,"24 Shipley Court, Wyatt Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2012-01-10 13:54:36,rental (social),7.0,7.0,200003688177.0,Address Matched +1469534159942016080906584241660398,Five Oaks,Dickley Lane,Lenham,ME17 2DD,8945156478,E,B,49,82,House,Detached,2016-08-01,E07000110,E14000700,Kent,2016-08-09,marketed sale,39,77,339,109.0,10.0,60,3.3,139.0,86.0,1705.0,816.0,314.0,81.0,170.0,Single,Y,NODATA!,,,2107.0,93.0,double glazing installed before 2002,Normal,2.0,7.0,7.0,38.0,0.0,"From main system, no cylinder thermostat",Poor,Poor,"Suspended, no insulation (assumed)",NO DATA!,,Mostly double glazing,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 38% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,2.35,,N,natural,"Five Oaks, Dickley Lane, Lenham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2016-08-09 06:58:42,owner-occupied,,,200003705062.0,Address Matched +18002509722012013113244908898432,120 Wallis Place,Hart Street,,ME16 8FD,3057088468,B,B,82,82,Flat,NO DATA!,2012-01-31,E07000110,E14000804,Kent,2012-01-31,new dwelling,86,86,93,93.0,1.1,18,1.1,36.0,36.0,200.0,200.0,85.0,85.0,64.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,6.0,,From main system,Good,Good,Average thermal transmittance 0.19 W/m?K,Very Good,Very Good,Fully double glazed,Good,Good,Average thermal transmittance 0.25 W/m?K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,,,NO DATA!,"120 Wallis Place, Hart Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2012-01-31 13:24:49,,6.0,6.0,10022900721.0,Address Matched +1600400751012018011617373698980057,"2, Roseleigh Avenue",,,ME16 0AR,777185578,E,C,47,79,Bungalow,Semi-Detached,2018-01-12,E07000110,E14000804,Kent,2018-01-16,rental (private),40,74,391,141.0,5.8,69,2.1,104.0,58.0,957.0,574.0,153.0,71.0,84.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,22.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 22% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"2, Roseleigh Avenue",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2018-01-16 17:37:36,rental (private),,,200003658337.0,Address Matched +430236189062010020512142962058830,2 The Boatyard,Wharf Road,,ME15 6GY,3690802768,B,B,81,82,House,Mid-Terrace,2010-02-05,E07000110,E14000804,Kent,2010-02-05,new dwelling,80,80,127,122.0,2.5,21,2.4,92.0,61.0,342.0,346.0,119.0,119.0,119.3,standard tariff,,mid floor,,,2110.0,,NO DATA!,NO DATA!,,,,8.0,0.0,From main system,Very Good,Very Good,Average thermal transmittance 0.31 W/m?K,Average,Average,Fully double glazed,Good,Good,Average thermal transmittance 0.24 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.17 W/m?K,Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,Time and temperature zone control,Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.02,,,NO DATA!,"2 The Boatyard, Wharf Road",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2010-02-05 12:14:29,,16.0,8.0,10014306497.0,Address Matched +1097136129102016050410041928060128,"13, Cranleigh Gardens",,,ME16 0TX,1152220278,C,B,73,85,House,Semi-Detached,2016-05-02,E07000110,E14000804,Kent,2016-05-04,marketed sale,71,82,168,89.0,2.8,30,1.5,81.0,61.0,476.0,481.0,137.0,87.0,95.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,6.0,6.0,67.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 67% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,2.3,,N,natural,"13, Cranleigh Gardens",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2016-05-04 10:04:19,owner-occupied,,,200003662270.0,Address Matched +224804210022009020612134127258881,"1b, Spencer Way",,,ME15 8AU,8264157568,D,C,66,69,Flat,Semi-Detached,2009-02-05,E07000110,E14000700,Kent,2009-02-06,rental (private),67,68,371,354.0,2.0,56,1.9,41.0,21.0,163.0,172.0,173.0,155.0,36.27,dual,Y,Ground,N,2.0,2401.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,0.0,0.0,"Electric immersion, off-peak",Very Poor,Poor,"Suspended, insulated (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,(another dwelling above),,,Electric storage heaters,Poor,Very Poor,Manual charge control,Poor,Poor,No low energy lighting,Very Poor,Very Poor,electricity - this is for backwards compatibility only and should not be used,0.0,unheated corridor,3.38,2.44,0.0,N,natural,"1b, Spencer Way",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2003-2006,2009-02-06 12:13:41,rental (private),,,10022896896.0,Address Matched +1524313322332017030307164380278908,Medway Cottage,Forstal Road,Sandling,ME14 3AR,2800930578,D,C,58,72,House,Detached,2017-02-27,E07000110,E14000700,Kent,2017-03-03,marketed sale,58,73,230,145.0,8.4,34,5.2,150.0,107.0,1997.0,1461.0,96.0,97.0,249.0,Unknown,Y,NODATA!,,,2106.0,85.0,double glazing installed during or after 2002,Normal,2.0,10.0,10.0,60.0,2.0,"From main system, plus solar",Very Good,Very Good,"To unheated space, no insulation (assumed)",NO DATA!,,Mostly double glazing,Good,Good,"Sandstone or limestone, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 60% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,Y,natural,"Medway Cottage, Forstal Road, Sandling",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2017-03-03 07:16:43,owner-occupied,,,200003672291.0,Address Matched +783933539022012050213594238128282,4 The Elders,Rectory Lane,Sutton Valence,ME17 3BS,8392308968,C,C,74,75,Flat,Semi-Detached,2012-05-02,E07000110,E14000700,Kent,2012-05-02,rental (private),78,79,164,155.0,1.3,31,1.3,48.0,29.0,267.0,270.0,49.0,49.0,43.0,Single,Y,2nd,Y,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,2.0,2.0,33.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, mains gas",,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 33% of fixed outlets,Average,Average,mains gas (not community),0.0,unheated corridor,7.96,,0.0,,natural,"4 The Elders, Rectory Lane, Sutton Valence",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1996-2002,2012-05-02 13:59:42,rental (private),6.0,2.0,200003696930.0,Address Matched +895a9c480d25264e53b29f86126bd6a1864fdb8e2b37a5602354944b87faeed4,24 ELLIS FIELD,OTHAM,,ME15 8YL,10001427749,B,A,86,95,House,Detached,2021-07-19,E07000110,E14000804,Kent,2021-07-19,new dwelling,87,96,73,16.0,1.6,13,0.4,91.0,91.0,254.0,256.0,97.0,54.0,128.0,standard tariff,,,N,,,100.0,,,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.18 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.38,,,,"24 ELLIS FIELD, OTHAM",Maidstone,Maidstone and The Weald,OTHAM,2021,2021-07-19 13:08:44,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,14.0,,10094440520.0,Address Matched +290751819962019041616342372168361,"8, Madginford Road",Bearsted,,ME15 8LG,6736132668,D,B,67,86,Bungalow,Semi-Detached,2019-04-16,E07000110,E14000700,Kent,2019-04-16,marketed sale,64,85,260,92.0,2.7,46,1.0,46.0,46.0,454.0,366.0,118.0,76.0,60.0,Unknown,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, partial insulation (assumed)",Average,Average,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"8, Madginford Road, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1976-1982,2019-04-16 16:34:23,owner-occupied,,,200003690646.0,Address Matched +1416233165052016022916062897260140,"42, Ashford Road",Bearsted,,ME14 4LP,1006572478,D,C,59,76,House,Semi-Detached,2016-02-29,E07000110,E14000700,Kent,2016-02-29,marketed sale,50,69,256,146.0,7.8,45,4.5,173.0,87.0,1395.0,1057.0,151.0,90.0,173.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,8.0,8.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"42, Ashford Road, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2016-02-29 16:06:28,owner-occupied,,,200003687681.0,Address Matched +619179909242011041918200585699488,"16, Church Road",Otham,,ME15 8SQ,1259006868,D,D,59,61,House,Detached,2011-04-18,E07000110,E14000700,Kent,2011-04-19,marketed sale,56,57,251,242.0,4.7,48,4.6,104.0,52.0,730.0,739.0,110.0,110.0,98.1,dual,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,6.0,6.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, mains gas",,,"Pitched, insulated (assumed)",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,2.3,0.0,,natural,"16, Church Road, Otham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2011-04-19 18:20:05,owner-occupied,11.0,0.0,200003686308.0,Address Matched +1375352629962015101512051639148675,Flat 10,"24, Tonbridge Road",,ME16 8RT,7374289378,B,B,88,88,Flat,NO DATA!,2015-10-14,E07000110,E14000804,Kent,2015-10-15,new dwelling,92,92,50,50.0,0.6,10,0.6,48.0,48.0,215.0,215.0,75.0,75.0,67.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.19 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Flat 10, 24, Tonbridge Road",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2015-10-15 12:05:16,unknown,25.0,25.0,10014316080.0,Address Matched +1689047569062019010814081712688281,"1, Bermelie Fields",Barming,,ME16 9FP,8115612678,B,A,83,94,House,Detached,2019-01-08,E07000110,E14000804,Kent,2019-01-08,new dwelling,85,95,88,20.0,1.6,15,0.4,69.0,69.0,270.0,270.0,77.0,45.0,102.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"1, Bermelie Fields, Barming",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2019-01-08 14:08:17,unknown,1.0,1.0,10093305959.0,Address Matched +89744b71b10de3c582826323e0c091cc42d57f5ab3be1441b3ffb489d0233a5a,47 Dixon Close,,,ME15 6SS,10001508114,C,B,72,91,House,Mid-Terrace,2021-09-23,E07000110,E14000804,Kent,2021-09-27,marketed sale,71,91,190,44.0,2.5,34,0.6,63.0,63.0,438.0,311.0,79.0,53.0,75.0,Single,Y,,,,,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,100.0,0.0,From main system,Good,Good,(another dwelling below),,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.3,0.0,N,natural,47 Dixon Close,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2021-09-27 14:39:55,Owner-occupied,9.0,,200003664897.0,Energy Assessor +1462131898752016071309473399960440,"1c, Springwood Road",Barming,,ME16 9PP,4023895478,B,B,88,90,House,NO DATA!,2016-07-13,E07000110,E14000804,Kent,2016-07-13,new dwelling,90,92,54,38.0,0.9,10,0.7,65.0,65.0,221.0,223.0,119.0,66.0,97.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.12 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.19 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"1c, Springwood Road, Barming",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2016-07-13 09:47:33,unknown,15.0,15.0,10091195870.0,Address Matched +1749001319062019090516511886258791,"33, Reynolds Avenue",,,ME17 3GW,9866156678,B,A,83,97,House,Mid-Terrace,2019-09-05,E07000110,E14000700,Kent,2019-09-05,new dwelling,87,101,91,-21.0,1.0,16,-0.2,50.0,50.0,178.0,178.0,64.0,37.0,60.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"33, Reynolds Avenue",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2019-09-05 16:51:18,unknown,7.0,7.0,10094441778.0,Address Matched +1826432632922020091609534602768080,"18, Gilbert Way",,,ME17 3TT,8080312778,B,A,84,95,House,End-Terrace,2020-09-16,E07000110,E14000700,Kent,2020-09-16,new dwelling,86,97,89,6.0,1.3,16,0.1,74.0,74.0,224.0,224.0,73.0,44.0,83.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"18, Gilbert Way",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2020-09-16 09:53:46,unknown,8.0,8.0,10094441880.0,Address Matched +954939509962013061913100390818367,"2, Round Wood Close",Walderslade,,ME5 9UL,6958010178,D,C,57,75,House,Detached,2013-06-19,E07000110,E14000700,Kent,2013-06-19,marketed sale,51,71,243,130.0,6.0,47,3.3,104.0,65.0,975.0,754.0,134.0,79.0,128.0,Unknown,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,7.0,7.0,40.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 40% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"2, Round Wood Close, Walderslade",Maidstone,Faversham and Mid Kent,CHATHAM,England and Wales: 1991-1995,2013-06-19 13:10:03,owner-occupied,15.0,6.0,200003725942.0,Address Matched +392029460022009110322504189678601,"11, Matfield Crescent",,,ME14 5NH,842649668,E,D,54,68,House,Detached,2009-11-03,E07000110,E14000804,Kent,2009-11-03,marketed sale,51,66,315,213.0,5.9,52,4.0,102.0,58.0,780.0,623.0,248.0,134.0,114.01,Single,Y,NO DATA!,,,2107.0,100.0,double glazing installed before 2002,Normal,2.0,7.0,7.0,22.0,0.0,"From main system, no cylinder thermostat",Poor,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, 250mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Average,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 22% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,,0.0,N,natural,"11, Matfield Crescent",Maidstone,Maidstone and The Weald,MAIDSTONE,,2009-11-03 22:50:41,owner-occupied,,,200003716702.0,Address Matched +42729639142012052608193645322658,"85, Corner Farm Road",Staplehurst,,TN12 0PS,7123833468,D,B,64,83,House,Semi-Detached,2012-05-25,E07000110,E14000804,Kent,2012-05-26,marketed sale,60,82,196,78.0,4.7,38,1.9,117.0,61.0,686.0,503.0,160.0,78.0,126.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,2.0,8.0,8.0,8.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 8% of fixed outlets,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"85, Corner Farm Road, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1976-1982,2012-05-26 08:19:36,owner-occupied,25.0,2.0,200003679432.0,Address Matched +879360799722013020415242314208417,"12a, Coverdale Avenue",,,ME15 9DR,1108974078,A,A,94,94,House,Detached,2013-01-30,E07000110,E14000700,Kent,2013-02-04,new dwelling,96,96,21,21.0,0.5,5,0.5,62.0,62.0,315.0,315.0,63.0,63.0,113.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.16 W/mA?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.19 W/mA?K,Very Good,Very Good,,,,Average thermal transmittance 0.09 W/mA?K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"12a, Coverdale Avenue",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2013-02-04 15:24:23,NO DATA!,25.0,25.0,10014314618.0,Address Matched +1491273894352016111612081190969841,"4, Rufus Walk",Allington,,ME16 0XJ,8186408478,B,A,85,95,House,NO DATA!,2016-11-16,E07000110,E14000804,Kent,2016-11-16,new dwelling,86,96,78,11.0,1.5,14,0.2,70.0,70.0,240.0,241.0,112.0,60.0,111.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.12 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.22 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.17 W/m-¦K,Good,Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"4, Rufus Walk, Allington",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2016-11-16 12:08:11,unknown,10.0,10.0,10092970763.0,Address Matched +537977079252010090910242496000273,Flat 4 Plymouth House,Ruskin Grove,,ME15 9WG,2381969768,C,C,74,75,Flat,End-Terrace,2010-09-09,E07000110,E14000700,Kent,2010-09-09,new dwelling,81,82,184,176.0,1.3,28,1.3,50.0,30.0,174.0,179.0,145.0,145.0,47.71,standard tariff,,ground floor,,,,,NO DATA!,NO DATA!,,,,,,From main system,Poor,Good,Average thermal transmittance 0.19 W/m?K,Very Good,Very Good,Fully double glazed,Very Good,Very Good,Average thermal transmittance 0.28 W/m?K,Very Good,Very Good,,,,(other premises above),,,"Air source heat pump, radiators, electric",Poor,Good,Programmer and room thermostat,Poor,Poor,Low energy lighting in 33% of fixed outlets,Average,Average,"Electricity: electricity, unspecified tariff",0.0,NO DATA!,,2.31,,,NO DATA!,"Flat 4 Plymouth House, Ruskin Grove",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2010-09-09 10:24:24,,,,10014311615.0,Address Matched +1554688856332017062311582877278305,Flat 3,"34, Fullingpits Avenue",,ME16 9DZ,5527352578,B,B,84,84,Flat,Detached,2017-06-23,E07000110,E14000804,Kent,2017-06-23,new dwelling,88,88,81,81.0,0.9,14,0.9,50.0,50.0,162.0,162.0,75.0,75.0,64.0,standard tariff,,ground floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.18 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Flat 3, 34, Fullingpits Avenue",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2017-06-23 11:58:28,unknown,20.0,20.0,10093303633.0,Address Matched +639753695352011061317424794090089,West Kent NHS & Social Care Trust,49-50 Marsham Street,,ME14 1HH,991547868,D,D,61,63,House,Mid-Terrace,2011-06-08,E07000110,E14000804,Kent,2011-06-13,marketed sale,55,57,212,201.0,8.6,41,8.1,75.0,75.0,1361.0,1286.0,180.0,180.0,211.22,Unknown,Y,NODATA!,,,2104.0,0.0,not defined,Normal,1.0,11.0,11.0,100.0,0.0,Electric instantaneous at point of use,Very Poor,Very Poor,"Suspended, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,2.57,0.0,,natural,"West Kent NHS & Social Care Trust, 49-50 Marsham Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2011-06-13 17:42:47,owner-occupied,23.0,23.0,, +829528628232012082921435601278900,"6, Melville Road",,,ME15 7UY,2081921078,D,B,62,81,House,Mid-Terrace,2012-08-29,E07000110,E14000804,Kent,2012-08-29,marketed sale,58,79,227,100.0,3.9,44,1.8,81.0,49.0,633.0,498.0,105.0,70.0,89.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,4.0,4.0,33.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 33% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"6, Melville Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2012-08-29 21:43:56,owner-occupied,6.0,2.0,200003696091.0,Address Matched +931796839962013051618014468968607,"6, Tattershall Road",,,ME15 6GD,659358078,C,B,70,90,House,Semi-Detached,2013-05-16,E07000110,E14000804,Kent,2013-05-16,marketed sale,70,93,189,29.0,2.2,36,0.4,57.0,40.0,316.0,298.0,164.0,63.0,62.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,56.0,0.0,"From main system, no cylinder thermostat",Average,Average,"Solid, insulated (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 56% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"6, Tattershall Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2013-05-16 18:01:44,owner-occupied,9.0,5.0,10022892174.0,Address Matched +1541924595332017051213021910978404,"36, Blacksmith Drive",Weavering,,ME14 5SZ,9480461578,D,B,68,85,House,End-Terrace,2017-05-12,E07000110,E14000700,Kent,2017-05-12,marketed sale,66,83,226,95.0,2.8,40,1.2,96.0,48.0,446.0,421.0,127.0,78.0,70.0,Single,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"36, Blacksmith Drive, Weavering",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2017-05-12 13:02:19,owner-occupied,,,200003672981.0,Address Matched +523929561032010090711141481068907,"3, Dean Street",East Farleigh,,ME15 0PU,6741968768,C,C,72,73,House,Semi-Detached,2010-09-07,E07000110,E14000804,Kent,2010-09-07,rental (social),68,69,229,224.0,2.8,38,2.8,59.0,39.0,438.0,442.0,110.0,110.0,74.5,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,50.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"System built, with external insulation",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.45,0.0,N,natural,"3, Dean Street, East Farleigh",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2010-09-07 11:14:14,rental (social),,,200003670427.0,Address Matched +89ac824c5a5001afc5956eb3dd2babad5b02ffd1577aa6c059cb947e77dd3fd5,4 Wealden Way,Headcorn,,TN27 9DQ,10001502210,B,A,86,105,House,Detached,2021-08-17,E07000110,E14000700,Kent,2021-08-17,marketed sale,86,104,70,-30.0,2.2,12,-0.9,114.0,114.0,358.0,359.0,99.0,56.0,184.0,standard tariff,,,N,,,100.0,,,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.17 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.33,,,,"4 Wealden Way, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,2021,2021-08-17 09:28:53,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,20.0,,10093306086.0,Energy Assessor +1057215489022013120706430737068467,"42, Shaw Close",,,ME14 5DN,6383837178,C,B,74,91,House,Semi-Detached,2013-12-06,E07000110,E14000804,Kent,2013-12-07,marketed sale,76,93,151,27.0,1.8,29,0.4,47.0,47.0,307.0,290.0,126.0,74.0,64.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,89.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",,,Fully double glazed,Good,Good,"System built, as built, insulated (assumed)",Good,Good,,,,"Pitched, 150mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 89% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"42, Shaw Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2013-12-07 06:43:07,owner-occupied,9.0,8.0,10022892519.0,Address Matched +968462158912014121915411490949811,"8, The Thatchers",,,ME16 0XA,8128801178,E,B,54,85,House,Semi-Detached,2014-12-16,E07000110,E14000804,Kent,2014-12-19,ECO assessment,47,83,352,89.0,4.4,62,1.1,60.0,60.0,725.0,415.0,179.0,67.0,71.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,78.0,0.0,From main system,Average,Average,"Solid, limited insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 78% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"8, The Thatchers",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2014-12-19 15:41:14,owner-occupied,,,200003706233.0,Address Matched +391853210022009110221005329028781,"24, Pope Drive",Staplehurst,,TN12 0TL,8223149668,C,B,75,81,House,Mid-Terrace,2009-11-02,E07000110,E14000804,Kent,2009-11-02,rental (private),74,79,199,157.0,2.2,33,1.7,73.0,37.0,324.0,284.0,96.0,84.0,66.75,dual,Y,NO DATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,,0.0,N,natural,"24, Pope Drive, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,,2009-11-02 21:00:53,rental (private),,,200003678893.0,Address Matched +286342900442009051809302966219668,"53, West Street",Harrietsham,,ME17 1HX,9489102668,E,D,44,57,House,Mid-Terrace,2009-05-16,E07000110,E14000700,Kent,2009-05-18,marketed sale,46,60,461,343.0,5.0,68,3.5,50.0,35.0,766.0,604.0,142.0,102.0,73.06,Single,Y,NO DATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,55.0,1.0,From main system,Average,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, 100mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Average,Good,Programmer and room thermostat,Poor,Poor,Low energy lighting in 55% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.43,0.0,N,natural,"53, West Street, Harrietsham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2009-05-18 09:30:29,owner-occupied,,,200003702552.0,Address Matched +973641294312013071720133794970913,"13, The Weavers",,,ME16 0NZ,9337441178,D,B,63,86,House,Semi-Detached,2013-07-17,E07000110,E14000804,Kent,2013-07-17,marketed sale,61,86,225,65.0,3.3,43,1.0,61.0,45.0,519.0,374.0,148.0,76.0,77.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,64.0,0.0,From main system,Average,Average,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 64% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"13, The Weavers",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1991-1995,2013-07-17 20:13:37,owner-occupied,11.0,7.0,200003706142.0,Address Matched +662487109002011081209045285999628,"58, Hengist Court",Marsham Street,,ME14 1BU,4091309868,C,B,78,83,Flat,Mid-Terrace,2011-08-12,E07000110,E14000804,Kent,2011-08-12,marketed sale,67,74,306,238.0,2.0,54,1.6,50.0,25.0,151.0,105.0,106.0,106.0,37.65,dual,N,2nd,N,,2401.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,0.0,0.0,"Electric immersion, off-peak",Average,Very Poor,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, partial insulation (assumed)",Average,Average,Portable electric heaters (assumed),,,(another dwelling above),,,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,No low energy lighting,Very Poor,Very Poor,electricity (not community),0.0,heated corridor,,2.3,0.0,,natural,"58, Hengist Court, Marsham Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1976-1982,2011-08-12 09:04:52,owner-occupied,6.0,0.0,200003688737.0,Address Matched +1757712414312019101114573091919767,Flat 2 Chapelfield Heights,"1-3, Chapelfield Way",Allington,ME16 9FU,7744417678,B,B,83,83,Flat,Detached,2019-10-11,E07000110,E14000804,Kent,2019-10-11,new dwelling,89,89,78,78.0,0.8,14,0.8,46.0,46.0,154.0,154.0,79.0,79.0,55.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.19 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Flat 2 Chapelfield Heights, 1-3, Chapelfield Way, Allington",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2019-10-11 14:57:30,unknown,21.0,21.0,10093306520.0,Address Matched +562170184652010110822211294009284,Flat 8/A Walsingham House,Wheeler Street,,ME14 2UD,2426441868,D,C,61,71,Flat,Mid-Terrace,2010-11-08,E07000110,E14000804,Kent,2010-11-08,rental (social),54,66,345,252.0,3.8,58,2.8,45.0,36.0,597.0,466.0,122.0,88.0,66.4,Single,Y,2nd,Y,4.0,2107.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,75.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Flat, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.31,0.0,N,natural,"Flat 8/A Walsingham House, Wheeler Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2010-11-08 22:21:12,rental (social),,,200003704496.0,Address Matched +605393989942011031623543187499868,"25, Peel Street",,,ME14 2SB,6967484868,C,C,69,71,House,Mid-Terrace,2011-03-16,E07000110,E14000804,Kent,2011-03-16,marketed sale,64,66,270,256.0,3.0,45,2.8,56.0,36.0,479.0,466.0,115.0,115.0,65.96,Single,Y,NO DATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,1.0,4.0,4.0,43.0,0.0,From main system,Very Good,Very Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, mains gas",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Very Good,Very Good,Programmer and room thermostat,Average,Average,Low energy lighting in 43% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.36,0.0,N,natural,"25, Peel Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2011-03-16 23:54:31,owner-occupied,,,200003702356.0,Address Matched +34490535712008102218043108289259,"5, Brunell Close",,,ME16 0YW,2934582568,B,B,87,88,Flat,Enclosed Mid-Terrace,2008-10-22,E07000110,E14000804,Kent,2008-10-22,marketed sale,87,87,106,100.0,1.0,17,1.0,45.0,30.0,141.0,142.0,66.0,66.0,59.46,Single,Y,1st,N,4.0,2106.0,100.0,triple glazing,Normal,0.0,3.0,3.0,50.0,0.0,From main system,Very Good,Very Good,(other premises below),,,Fully triple glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,unheated corridor,5.03,2.34,0.0,N,natural,"5, Brunell Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2008-10-22 18:04:31,owner-occupied,,,10022895899.0,Address Matched +1283267439902015022010402639352708,4 Walmer Court,Wheeler Street,,ME14 1TY,9932133378,C,C,78,80,Flat,End-Terrace,2015-02-20,E07000110,E14000804,Kent,2015-02-20,marketed sale,81,82,134,122.0,1.5,23,1.4,87.0,44.0,250.0,257.0,98.0,98.0,64.0,Single,Y,1st,N,,2107.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,0.0,0.0,From main system,Good,Good,(another dwelling below),NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,no corridor,,,,N,natural,"4 Walmer Court, Wheeler Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2015-02-20 10:40:26,owner-occupied,,,200003700789.0,Address Matched +1412303442632016021107380352978500,"55, Tintern Road",,,ME16 0RH,4042542478,D,B,67,84,Bungalow,Semi-Detached,2016-02-10,E07000110,E14000804,Kent,2016-02-11,marketed sale,65,83,247,99.0,2.5,44,1.0,61.0,40.0,470.0,421.0,98.0,64.0,58.0,Unknown,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,50.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 270 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"55, Tintern Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2016-02-11 07:38:03,owner-occupied,,,200003660875.0,Address Matched +1094390999262014022108542719798044,"3, Ash Tree Gardens",Weavering,,ME14 5LB,4125999178,C,B,74,85,House,Detached,2014-02-21,E07000110,E14000700,Kent,2014-02-21,marketed sale,74,85,132,66.0,3.0,25,1.6,135.0,68.0,477.0,491.0,135.0,86.0,121.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,6.0,6.0,0.0,0.0,From main system,Good,Good,"Suspended, insulated (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"3, Ash Tree Gardens, Weavering",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2003-2006,2014-02-21 08:54:27,owner-occupied,15.0,0.0,10022896237.0,Address Matched +37394592052008103114205505789359,Little Rabbits Cross Barn,Little Rabbits Cross,Chart Hill Road,ME17 3EX,3942253568,E,D,53,63,Bungalow,Detached,2008-10-30,E07000110,E14000700,Kent,2008-10-31,rental (private),48,57,271,220.0,7.0,54,5.7,126.0,63.0,774.0,658.0,184.0,152.0,113.63,Unknown,N,NO DATA!,,,2107.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,0.0,1.0,From main system,Average,Average,"Solid, insulated (assumed)",,,Fully double glazed,Good,Good,"Timber frame, as built, insulated (assumed)",Good,Good,"Room heaters, wood logs",,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, oil",Average,Average,"Programmer, TRVs and bypass",Poor,Poor,No low energy lighting,Very Poor,Very Poor,oil - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,5.25,0.0,N,natural,"Little Rabbits Cross Barn, Little Rabbits Cross, Chart Hill Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2007 onwards,2008-10-31 14:20:55,rental (private),,,10014309531.0,Address Matched +1618135509242018041918560353782948,"93, Marion Crescent",,,ME15 7EH,4223607578,D,B,67,83,House,Semi-Detached,2018-03-24,E07000110,E14000700,Kent,2018-04-19,RHI application,64,80,223,114.0,3.3,39,1.7,100.0,64.0,519.0,490.0,144.0,85.0,85.0,dual,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,45.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,"Room heaters, mains gas",,,"Pitched, insulated at rafters",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 45% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"93, Marion Crescent",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2018-04-19 18:56:03,owner-occupied,,,200003711086.0,Address Matched +1677858159022019100912103941618408,Flat 303,Kent House,Romney Place,ME15 6LA,455531678,C,C,70,70,Flat,Detached,2018-11-09,E07000110,E14000804,Kent,2019-10-09,non marketed sale,73,73,193,193.0,1.8,33,1.8,46.0,46.0,303.0,303.0,275.0,275.0,57.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,"Electric immersion, standard tariff",Very Poor,Poor,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.29 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,Electric underfloor heating,Very Poor,Poor,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"Flat 303, Kent House, Romney Place",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2019-10-09 12:10:39,unknown,21.0,21.0,, +1037400709942014110808282713640548,Oak House,The Street,Ulcombe,ME17 1DU,904106178,C,C,69,80,House,Detached,2014-11-04,E07000110,E14000700,Kent,2014-11-08,assessment for green deal,63,74,145,91.0,5.5,32,3.7,150.0,90.0,1007.0,930.0,198.0,122.0,173.0,dual,N,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,3.0,7.0,7.0,34.0,0.0,From main system,Good,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, wood logs",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, oil",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 34% of fixed outlets,Average,Average,oil (not community),0.0,NO DATA!,,,0.0,,natural,"Oak House, The Street, Ulcombe",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2014-11-08 08:28:27,owner-occupied,32.0,11.0,200003701142.0,Address Matched +591583679442011021413355489399978,"15, Western Road",,,ME16 8NE,5423773868,D,C,63,69,House,Mid-Terrace,2011-02-13,E07000110,E14000804,Kent,2011-02-14,marketed sale,58,63,332,287.0,3.3,55,2.9,64.0,32.0,480.0,487.0,166.0,102.0,59.7,Single,Y,NO DATA!,,,2106.0,0.0,not defined,Normal,0.0,4.0,4.0,0.0,1.0,"From main system, no cylinder thermostat",Very Good,Very Good,"Suspended, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 100 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.5,0.0,N,natural,"15, Western Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2011-02-14 13:35:54,owner-occupied,,,200003655926.0,Address Matched +165504338712008102218320105289454,Flat 2,"24, Bower Place",,ME16 8BH,4403852568,E,D,40,57,Flat,Mid-Terrace,2008-10-22,E07000110,E14000804,Kent,2008-10-22,rental (private),57,53,671,746.0,2.1,101,2.3,14.0,15.0,380.0,242.0,101.0,109.0,20.61,Single,N,1st,N,4.0,2603.0,100.0,double glazing installed during or after 2002,Normal,0.0,1.0,1.0,50.0,0.0,Electric instantaneous at point of use,Very Poor,Poor,(other premises below),,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,(another dwelling above),,,"Room heaters, electric",Very Poor,Poor,Programmer and appliance thermostats,Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,electricity - this is for backwards compatibility only and should not be used,0.0,unheated corridor,5.53,2.44,0.0,N,natural,"Flat 2, 24, Bower Place",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2008-10-22 18:32:01,rental (private),,,200003668819.0,Address Matched +1553895609222017062210221992728033,"1, Stevens Walk",,,ME17 3GB,3978052578,B,A,84,94,House,Semi-Detached,2017-06-22,E07000110,E14000700,Kent,2017-06-22,new dwelling,86,95,83,19.0,1.7,15,0.4,70.0,70.0,265.0,266.0,105.0,57.0,113.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"1, Stevens Walk",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2017-06-22 10:22:19,unknown,7.0,7.0,10093303880.0,Address Matched +1183483329842014090813301429640388,"67, Sandling Lane",Penenden Heath,,ME14 2HU,6823826278,D,C,59,75,House,Semi-Detached,2014-09-08,E07000110,E14000804,Kent,2014-09-08,assessment for green deal,57,74,236,130.0,3.9,45,2.2,108.0,54.0,779.0,700.0,106.0,74.0,88.0,Unknown,Y,NODATA!,,,2107.0,100.0,double glazing installed before 2002,Normal,1.0,5.0,5.0,0.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"67, Sandling Lane, Penenden Heath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2014-09-08 13:30:14,owner-occupied,8.0,0.0,200003726184.0,Address Matched +361294649762013060921005517698497,Flat 3 Millennium House,"77, Courtenay Road",,ME15 6UJ,9150427668,C,C,76,77,Maisonette,Semi-Detached,2013-05-31,E07000110,E14000804,Kent,2013-06-09,rental (private),79,80,133,129.0,1.5,25,1.5,53.0,39.0,276.0,278.0,80.0,80.0,60.0,Single,Y,1st,Y,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,67.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 67% of fixed outlets,Good,Good,mains gas (not community),0.0,unheated corridor,3.12,,0.0,,natural,"Flat 3 Millennium House, 77, Courtenay Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2013-06-09 21:00:55,rental (private),6.0,4.0,200003661261.0,Address Matched +13797809022017092819374418518373,"6, Lynley Close",,,ME15 9GD,7196028468,C,B,79,89,House,Mid-Terrace,2017-05-09,E07000110,E14000700,Kent,2017-09-28,rental (social),77,87,127,61.0,2.5,22,1.2,73.0,73.0,399.0,401.0,122.0,72.0,112.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Very Good,Very Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"6, Lynley Close",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2007 onwards,2017-09-28 19:37:44,rental (social),,,10022895384.0,Address Matched +398074852752013090514172998070764,52 Oxford Gardens,,,ME15 8FJ,7489289668,B,B,81,81,Flat,Semi-Detached,2013-09-05,E07000110,E14000700,Kent,2013-09-05,rental (social),72,72,187,187.0,2.3,33,2.3,53.0,53.0,132.0,132.0,218.0,218.0,70.0,Unknown,N,1st,N,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,89.0,0.0,From main system,Average,Very Poor,(other premises below),,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, electric",Poor,Very Poor,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 89% of fixed outlets,Very Good,Very Good,electricity (not community),0.0,unheated corridor,2.54,,0.0,,natural,52 Oxford Gardens,Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2007 onwards,2013-09-05 14:17:29,rental (social),9.0,8.0,10014308991.0,Address Matched +171208538952008101616504406989952,Bowley Oast East,Sandway,,ME17 2BG,9289862568,C,C,71,73,House,Detached,2008-10-13,E07000110,E14000700,Kent,2008-10-16,rental (private),63,65,169,158.0,5.2,36,4.9,94.0,69.0,475.0,457.0,185.0,175.0,144.04,Single,N,NO DATA!,,,2110.0,100.0,double glazing installed during or after 2002,Normal,1.0,7.0,7.0,63.0,0.0,From main system,Average,Average,"Solid, insulated (assumed)",,,Fully double glazed,Good,Good,"Solid brick, with internal insulation",Very Good,Very Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and underfloor heating, oil",Average,Average,Time and temperature zone control,Good,Good,Low energy lighting in 63% of fixed outlets,Good,Good,oil - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,3.08,0.0,N,natural,"Bowley Oast East, Sandway",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2003-2006,2008-10-16 16:50:44,rental (private),,,10014309235.0,Address Matched +596999360412011060922330092090785,13 Sunningdale Court,Square Hill Road,,ME15 7TT,7578024868,C,C,73,76,Flat,Semi-Detached,2011-06-09,E07000110,E14000804,Kent,2011-06-09,rental (social),74,78,167,145.0,2.1,32,1.9,62.0,37.0,312.0,297.0,118.0,105.0,66.83,Unknown,Y,2nd,N,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,33.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"System built, as built, no insulation (assumed)",Poor,Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 33% of fixed outlets,Average,Average,mains gas (not community),0.0,unheated corridor,5.65,2.28,0.0,,natural,"13 Sunningdale Court, Square Hill Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2011-06-09 22:33:00,rental (social),6.0,2.0,200003696543.0,Address Matched +1513428412812017012410343196230340,"3, Chaplin Drive",Headcorn,,TN27 9TN,3087269478,G,B,18,88,House,Semi-Detached,2017-01-24,E07000110,E14000700,Kent,2017-01-24,marketed sale,30,87,509,61.0,7.4,87,1.0,113.0,57.0,1733.0,363.0,337.0,75.0,85.0,Single,Y,NODATA!,,,2603.0,0.0,not defined,Normal,0.0,5.0,5.0,0.0,0.0,"Electric immersion, standard tariff",Very Poor,Poor,"Suspended, no insulation (assumed)",NO DATA!,,Single glazed,Very Poor,Very Poor,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Roof room(s), limited insulation (assumed)",Poor,Poor,"Room heaters, electric",Very Poor,Poor,Programmer and appliance thermostats,Good,Good,No low energy lighting,Very Poor,Very Poor,electricity (not community),0.0,NO DATA!,,,,N,natural,"3, Chaplin Drive, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,England and Wales: 1967-1975,2017-01-24 10:34:31,owner-occupied,,,200003699436.0,Address Matched +1091592029962014021717414929038464,"31, Greystones Road",Bearsted,,ME15 8PD,6295289178,D,B,65,87,House,Semi-Detached,2014-02-17,E07000110,E14000700,Kent,2014-02-17,none of the above,63,87,211,58.0,3.2,41,0.9,68.0,48.0,572.0,389.0,123.0,75.0,79.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,60.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 60% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"31, Greystones Road, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2014-02-17 17:41:49,owner-occupied,15.0,9.0,200003690864.0,Address Matched +1659979896512018083119492990780865,"6, Valley Drive",Loose,,ME15 9TJ,8513600678,D,C,62,79,Bungalow,Semi-Detached,2018-08-30,E07000110,E14000804,Kent,2018-08-31,marketed sale,56,75,277,144.0,4.1,49,2.2,105.0,60.0,624.0,568.0,174.0,83.0,85.0,Single,Y,NODATA!,,,2107.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,25.0,0.0,"From main system, no cylinder thermostat",Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,"Room heaters, mains gas",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 25% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"6, Valley Drive, Loose",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2018-08-31 19:49:29,owner-occupied,,,200003664036.0,Address Matched +191223760842009051913401755482198,"326, Upper Fant Road",,,ME16 8DD,4801864568,C,C,74,76,House,Mid-Terrace,2008-11-21,E07000110,E14000804,Kent,2009-05-19,rental (social),72,73,204,195.0,2.5,34,2.4,70.0,35.0,316.0,322.0,115.0,115.0,74.25,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,4.0,4.0,0.0,0.0,From main system,Very Good,Very Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.44,0.0,N,natural,"326, Upper Fant Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2009-05-19 13:40:17,rental (social),,,200003656242.0,Address Matched +993632499002013082200310814272098,"5, Stuart Close",,,ME14 5HG,25292178,E,C,44,69,House,Detached,2013-08-21,E07000110,E14000804,Kent,2013-08-22,marketed sale,39,63,311,166.0,8.5,60,4.6,137.0,68.0,1474.0,1031.0,123.0,79.0,142.0,Unknown,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,2.0,5.0,5.0,0.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"5, Stuart Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2013-08-22 00:31:08,owner-occupied,45.0,0.0,200003705441.0,Address Matched +1385122949922015111214465810228735,"1, Edmett Way",,,ME17 3FA,3160450478,B,B,82,82,Flat,Detached,2015-11-12,E07000110,E14000700,Kent,2015-11-12,new dwelling,85,85,100,100.0,1.2,18,1.2,49.0,49.0,236.0,236.0,78.0,78.0,68.0,standard tariff,,top floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.27 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,Programmer and at least two room thermostats,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"1, Edmett Way",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2015-11-12 14:46:58,unknown,1.0,1.0,10091193961.0,Address Matched +8a2df05bdc15736b460925c5361a9fee5818f3282430df5d832087a9e08082c3,12 Forge Meadow,Harrietsham,,ME17 1JE,10001349047,D,B,64,85,House,End-Terrace,2021-08-17,E07000110,E14000700,Kent,2021-08-17,rental,60,83,261,100.0,3.4,46,1.4,113.0,63.0,530.0,417.0,121.0,74.0,74.0,Single,Y,,,,,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,20.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 20% of fixed outlets,Poor,Poor,mains gas (not community),0.0,,,2.28,0.0,N,natural,"12 Forge Meadow, Harrietsham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2021-08-17 13:56:39,Rented (social),10.0,,200003702579.0,Energy Assessor +84225863512016060922023396060940,"43, Lyngs Close",Yalding,,ME18 6JS,9079365468,C,C,70,75,Flat,End-Terrace,2016-06-08,E07000110,E14000804,Kent,2016-06-09,marketed sale,69,77,225,172.0,2.2,40,1.7,49.0,49.0,368.0,294.0,139.0,110.0,55.0,Single,Y,Ground,N,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,75.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,no corridor,,2.3,,N,natural,"43, Lyngs Close, Yalding",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2016-06-09 22:02:33,owner-occupied,,,200003660387.0,Address Matched +645715589342011062318473889792178,"97, Linton Road",Loose,,ME15 0AL,1354787868,F,D,38,63,House,Detached,2011-06-23,E07000110,E14000804,Kent,2011-06-23,marketed sale,37,61,386,216.0,8.2,74,4.5,95.0,53.0,1330.0,781.0,150.0,106.0,110.9,Unknown,Y,NODATA!,,,2107.0,100.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,20.0,0.0,From main system,Average,Average,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 20% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,2.4,0.0,,natural,"97, Linton Road, Loose",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2011-06-23 18:47:38,owner-occupied,5.0,1.0,200003663280.0,Address Matched +777049169222012042615023757678502,"35, St. Annes Court",,,ME16 0UQ,591657968,D,C,68,77,Maisonette,Semi-Detached,2012-04-23,E07000110,E14000804,Kent,2012-04-26,marketed sale,50,63,418,302.0,3.0,74,2.2,44.0,28.0,293.0,182.0,102.0,102.0,41.0,dual,N,2nd,Y,,2401.0,100.0,double glazing installed before 2002,Normal,0.0,2.0,2.0,40.0,0.0,"Electric immersion, off-peak",Average,Very Poor,(other premises below),,,Fully double glazed,Average,Average,"Timber frame, as built, insulated (assumed)",Good,Good,Portable electric heaters (assumed),,,"Pitched, 50 mm loft insulation",Poor,Poor,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 40% of fixed outlets,Average,Average,electricity (not community),0.0,unheated corridor,7.08,,0.0,,natural,"35, St. Annes Court",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2012-04-26 15:02:37,owner-occupied,5.0,2.0,200003667006.0,Address Matched +276084609262019042617530091568761,"10, Aldington Road",Bearsted,,ME14 4AN,6901031668,D,B,59,85,Bungalow,Detached,2019-04-26,E07000110,E14000700,Kent,2019-04-26,rental (private),53,83,295,92.0,4.2,52,1.3,95.0,65.0,647.0,428.0,164.0,70.0,80.0,dual,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,1.0,4.0,4.0,54.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 54% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"10, Aldington Road, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2019-04-26 17:53:00,rental (private),,,200003687277.0,Address Matched +268619472942020082712102167002158,Coachmans Cottage,Wierton Hill,Boughton Monchelsea,ME17 4JS,8963870668,E,A,49,106,House,End-Terrace,2020-08-25,E07000110,E14000700,Kent,2020-08-27,rental (private),41,98,260,-63.0,6.0,67,-0.1,70.0,70.0,784.0,359.0,156.0,82.0,89.0,Single,N,NODATA!,,,2106.0,0.0,not defined,Normal,0.0,4.0,4.0,100.0,0.0,From main system,Average,Average,"Suspended, no insulation (assumed)",NO DATA!,,Single glazed,Very Poor,Very Poor,"Sandstone or limestone, as built, no insulation (assumed)",Poor,Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, oil",Average,Average,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,oil (not community),0.0,NO DATA!,,,,N,natural,"Coachmans Cottage, Wierton Hill, Boughton Monchelsea",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2020-08-27 12:10:21,rental (private),,,200003679754.0,Address Matched +1767341849222019112109400157298231,13 Heath Wood Drive,,,ME14 5GU,3594487678,B,B,83,85,House,Mid-Terrace,2019-11-21,E07000110,E14000700,Kent,2019-11-21,new dwelling,91,93,61,45.0,0.6,11,0.5,48.0,48.0,169.0,169.0,63.0,37.0,58.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.17 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.28 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.15 W/m-¦K,Good,Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,13 Heath Wood Drive,Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2019-11-21 09:40:01,unknown,18.0,18.0,10094443373.0,Address Matched +569504134232012043021345746768905,"70, Hillary Road",Penenden Heath,,ME14 2JU,3526991868,E,B,54,83,House,Semi-Detached,2012-04-30,E07000110,E14000804,Kent,2012-04-30,marketed sale,50,83,299,83.0,4.3,58,1.2,83.0,41.0,589.0,407.0,199.0,66.0,74.0,Unknown,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,0.0,0.0,"From main system, no cylinder thermostat",Poor,Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"70, Hillary Road, Penenden Heath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2012-04-30 21:34:57,owner-occupied,12.0,0.0,200003707105.0,Address Matched +8a4a9c77f7b365f527b86fa7cdde42548916706ed1c84a0be3402891c40aced5,10 Robson Chase,Boughton Monchelsea,,ME17 4SR,10001333138,B,A,85,94,House,Detached,2021-08-03,E07000110,E14000700,Kent,2021-08-03,new dwelling,86,94,77,25.0,1.9,14,0.6,99.0,99.0,293.0,294.0,99.0,56.0,141.0,standard tariff,,,N,,,100.0,,,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.12 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.39,,,,"10 Robson Chase, Boughton Monchelsea",Maidstone,Faversham and Mid Kent,MAIDSTONE,2021,2021-08-03 15:37:54,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,14.0,,10094442558.0,Address Matched +192186520402008120719484358580448,"8, Eyhorne Street",Hollingbourne,,ME17 1TR,2472625568,D,D,57,63,House,Mid-Terrace,2008-12-04,E07000110,E14000700,Kent,2008-12-07,rental (private),49,56,451,382.0,3.6,76,3.0,21.0,21.0,453.0,397.0,94.0,80.0,47.0,Single,Y,NO DATA!,,,2104.0,0.0,single glazing,Normal,0.0,3.0,3.0,100.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Poor,Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.05,0.0,N,natural,"8, Eyhorne Street, Hollingbourne",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2008-12-07 19:48:43,rental (private),,,200003722204.0,Address Matched +204870049062013030721020136738987,6 Hanover Court,Snowdon Avenue,,ME14 5NP,8392426568,D,D,65,68,Flat,Mid-Terrace,2013-03-07,E07000110,E14000804,Kent,2013-03-07,rental (social),65,69,272,245.0,2.2,50,2.0,29.0,29.0,376.0,335.0,108.0,108.0,43.0,dual,Y,Ground,N,,2504.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,100.0,0.0,"Electric immersion, off-peak",Average,Very Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Warm air, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,no corridor,,,0.0,,"mechanical, extract only","6 Hanover Court, Snowdon Avenue",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2013-03-07 21:02:01,rental (social),6.0,6.0,200003705900.0,Address Matched +858228489232012112711513821278999,"4, Lockswood",,,ME16 0NX,8981923078,D,B,68,87,House,Semi-Detached,2012-11-27,E07000110,E14000804,Kent,2012-11-27,rental (private),69,89,202,55.0,2.2,39,0.7,60.0,34.0,384.0,345.0,84.0,57.0,58.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,22.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 22% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"4, Lockswood",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2012-11-27 11:51:38,rental (private),9.0,2.0,200003662343.0,Address Matched +596996770452015100721423292059785,52 Farleigh Court,Farleigh Lane,,ME16 9BJ,7537024868,C,C,70,71,Flat,Mid-Terrace,2015-10-07,E07000110,E14000804,Kent,2015-10-07,rental (social),68,70,216,203.0,2.4,38,2.2,56.0,44.0,445.0,425.0,95.0,95.0,63.0,Single,Y,1st,Y,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,71.0,0.0,From main system,Good,Good,(another dwelling below),NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 71% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,no corridor,,,,N,natural,"52 Farleigh Court, Farleigh Lane",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2015-10-07 21:42:32,rental (social),,,200003684271.0,Address Matched +404931249852017022713522092230978,"5, Libya Terrace",Invicta Park,,ME14 2PG,9859920768,C,B,69,86,House,Mid-Terrace,2017-02-27,E07000110,E14000804,Kent,2017-02-27,rental (social),65,85,212,77.0,3.1,37,1.2,63.0,63.0,551.0,410.0,105.0,70.0,83.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,86.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,,,,"Flat, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 86% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"5, Libya Terrace, Invicta Park",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2017-02-27 13:52:20,rental (social),,,200003723917.0,Address Matched +270293079062019040310391980478391,"49, St. Andrews Park",Tarragon Road,,ME16 0WD,9869780668,C,C,70,79,Flat,Mid-Terrace,2019-04-03,E07000110,E14000804,Kent,2019-04-03,rental (private),68,81,220,129.0,2.4,39,1.4,61.0,49.0,366.0,218.0,133.0,109.0,62.0,Single,Y,1st,N,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,75.0,0.0,From main system,Good,Good,(another dwelling below),NO DATA!,,Fully double glazed,Average,Average,"Sandstone or limestone, as built, no insulation (assumed)",Poor,Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,2.93,,,N,natural,"49, St. Andrews Park, Tarragon Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2019-04-03 10:39:19,rental (private),,,200003655006.0,Address Matched +1093732699702014022100235715942408,"3, Avery Close",,,ME15 6SQ,4741699178,D,B,67,87,House,Semi-Detached,2014-02-20,E07000110,E14000804,Kent,2014-02-21,marketed sale,66,89,206,51.0,2.6,40,0.7,52.0,52.0,440.0,359.0,157.0,73.0,66.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,75.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"3, Avery Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2014-02-21 00:23:57,owner-occupied,8.0,6.0,200003664822.0,Address Matched +1341121053532015070921353986078305,"60, Corner Farm Road",Staplehurst,,TN12 0PS,5516347378,E,B,47,90,House,Detached,2015-07-05,E07000110,E14000804,Kent,2015-07-09,ECO assessment,38,82,330,70.0,12.0,58,2.7,188.0,94.0,2032.0,1053.0,325.0,81.0,207.0,Single,Y,NODATA!,,,2101.0,100.0,double glazing installed before 2002,Normal,0.0,7.0,7.0,0.0,0.0,"From main system, no cylinder thermostat",Average,Average,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,No time or thermostatic control of room temperature,Very Poor,Very Poor,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"60, Corner Farm Road, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1950-1966,2015-07-09 21:35:39,owner-occupied,,,200003679421.0,Address Matched +1129519189962015012313072012818555,"26, Chillington Street",,,ME14 2RT,5157842278,D,B,63,86,House,Mid-Terrace,2015-01-19,E07000110,E14000804,Kent,2015-01-23,marketed sale,56,84,256,82.0,4.2,45,1.4,57.0,57.0,763.0,466.0,123.0,71.0,92.0,Single,Y,NODATA!,,,2107.0,100.0,double glazing installed before 2002,Normal,0.0,7.0,7.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"26, Chillington Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2015-01-23 13:07:20,owner-occupied,,,200003669605.0,Address Matched +259795688712012062717192091220667,"84, Mill Bank",Headcorn,,TN27 9RG,6731810668,E,B,53,85,House,Semi-Detached,2012-06-27,E07000110,E14000700,Kent,2012-06-27,marketed sale,49,84,299,73.0,4.4,58,1.1,85.0,43.0,699.0,422.0,112.0,89.0,76.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,2.0,4.0,4.0,0.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, mains gas",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"84, Mill Bank, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,England and Wales: 1900-1929,2012-06-27 17:19:20,owner-occupied,8.0,0.0,200003698806.0,Address Matched +1771815227512019121014351891919760,Flat 1,"21, St. Lawrence Drive",,ME16 9FH,7026718678,B,B,83,83,Flat,Detached,2019-12-10,E07000110,E14000804,Kent,2019-12-10,new dwelling,87,87,88,88.0,1.0,15,1.0,57.0,57.0,172.0,172.0,70.0,70.0,64.0,standard tariff,,ground floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.18 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Flat 1, 21, St. Lawrence Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2019-12-10 14:35:18,unknown,20.0,20.0,10093303661.0,Address Matched +1695203769642019020417161468210048,"19, Cliveden Close",Allington,,ME16 0PQ,7666162678,D,C,67,79,House,Detached,2019-02-04,E07000110,E14000804,Kent,2019-02-04,marketed sale,59,74,197,118.0,6.1,35,3.7,184.0,100.0,920.0,821.0,177.0,76.0,175.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,2.0,9.0,9.0,15.0,0.0,From main system,Good,Good,"Suspended, limited insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, mains gas",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 15% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"19, Cliveden Close, Allington",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2019-02-04 17:16:14,owner-occupied,,,200003659830.0,Address Matched +161566940742008102118561751282798,"101, Robins Close",Lenham,,ME17 2LE,7736942568,C,B,80,85,Flat,Semi-Detached,2008-10-21,E07000110,E14000700,Kent,2008-10-21,marketed sale,79,84,163,130.0,1.6,27,1.3,56.0,28.0,199.0,182.0,77.0,66.0,59.84,Single,Y,1st,N,3.0,2104.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,0.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Poor,Poor,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,unheated corridor,7.21,2.33,0.0,N,natural,"101, Robins Close, Lenham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1976-1982,2008-10-21 18:56:17,owner-occupied,,,200003707267.0,Address Matched +25dc756c42c65c9fb06a0c7231abedf10d5253a5c9fba5efcc582aae9fdbe8c5,Sunnyside Farm,Chalky Road,Stockbury,ME9 7QP,10001659275,E,D,43,68,House,Detached,2021-08-24,E07000110,E14000700,Kent,2021-08-25,marketed sale,40,63,239,121.0,9.0,56,4.9,188.0,103.0,1197.0,872.0,201.0,79.0,159.0,Single,N,,,,,100.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,17.0,0.0,"From main system, no cylinder thermostat",Poor,Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, wood logs",,,"Pitched, insulated (assumed)",Average,Average,"Boiler and radiators, oil",Average,Average,"Programmer, no room thermostat",Very Poor,Very Poor,Low energy lighting in 17% of fixed outlets,Poor,Poor,oil (not community),0.0,,,2.8,0.0,N,natural,"Sunnyside Farm, Chalky Road, Stockbury",Maidstone,Faversham and Mid Kent,SITTINGBOURNE,England and Wales: 1983-1990,2021-08-25 18:27:19,Owner-occupied,12.0,,200003700654.0,Energy Assessor +869260709402013010709471603470648,1 Railway Cottages,Maidstone Road,Marden,TN12 9AF,1423804078,D,B,57,81,House,End-Terrace,2013-01-04,E07000110,E14000804,Kent,2013-01-07,rental (private),54,79,291,108.0,3.4,56,1.3,73.0,39.0,570.0,502.0,105.0,72.0,60.0,dual,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,4.0,4.0,13.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Roof room(s), ceiling insulated",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 13% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"1 Railway Cottages, Maidstone Road, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: before 1900,2013-01-07 09:47:16,rental (private),8.0,1.0,200003710736.0,Address Matched +976572369742013072314103311172378,"14, Cheriton Way",,,ME16 0PH,1729561178,E,B,52,82,House,Semi-Detached,2013-07-23,E07000110,E14000804,Kent,2013-07-23,none of the above,50,83,276,79.0,4.8,52,1.4,95.0,52.0,848.0,491.0,147.0,72.0,92.0,Single,Y,NODATA!,,,2107.0,100.0,double glazing installed before 2002,Normal,1.0,6.0,6.0,17.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,"Pitched, 25 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 17% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"14, Cheriton Way",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2013-07-23 14:10:33,owner-occupied,12.0,2.0,200003660112.0,Address Matched +8aa04c2dbd7026fd2b1a69d37931b093be86914921d73d4cb420800fd8809bd1,19 Pearson Meadow,Boughton Monchelsea,,ME17 4SX,10001395780,B,A,85,93,House,Detached,2021-08-03,E07000110,E14000700,Kent,2021-08-03,new dwelling,85,94,81,26.0,1.8,14,0.6,96.0,96.0,296.0,296.0,74.0,45.0,127.0,standard tariff,,,N,,,100.0,,,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.39,,,,"19 Pearson Meadow, Boughton Monchelsea",Maidstone,Faversham and Mid Kent,MAIDSTONE,2021,2021-08-03 15:38:00,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,14.0,,10094442609.0,Address Matched +833673726752012091021093095920606,"53, Greenhill",Staplehurst,,TN12 0SU,6656651078,C,B,73,89,House,Mid-Terrace,2012-09-10,E07000110,E14000804,Kent,2012-09-10,marketed sale,74,91,156,38.0,2.1,30,0.6,81.0,44.0,309.0,294.0,125.0,73.0,71.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,14.0,0.0,From main system,Good,Good,"Solid, limited insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 14% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"53, Greenhill, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1996-2002,2012-09-10 21:09:30,owner-occupied,7.0,1.0,200003723124.0,Address Matched +8aaf332fa50b4a43e3aea8c5b33be73cdba51267b772f8177443fdd06a7f675e,24 TENACRE COURT,ASHFORD ROAD,HARRIETSHAM,ME17 1AH,10001439508,D,D,60,60,Flat,End-Terrace,2021-08-05,E07000110,E14000700,Kent,2021-08-05,not sale or rental,64,64,268,268.0,2.5,45,2.5,63.0,63.0,647.0,647.0,210.0,210.0,55.0,standard tariff,,3,Y,,,100.0,,,,,,100.0,0.0,Electric instantaneous at point of use,Very Poor,Poor,(other premises below),,,Fully double glazed,Good,Good,Average thermal transmittance 0.32 W/m-¦K,Good,Good,,,,Average thermal transmittance 0.32 W/m-¦K,Average,Average,"Boiler and radiators, electric",Very Poor,Poor,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",0.0,,,2.67,,,,"24 TENACRE COURT, ASHFORD ROAD, HARRIETSHAM",Maidstone,Faversham and Mid Kent,MAIDSTONE,2020,2021-08-05 13:50:16,Owner-occupied,4.0,,10095449489.0,Energy Assessor +1362883576352015091520043599950937,"12, St. Stephens Square",,,ME15 6RE,9703698378,C,C,73,76,Flat,Enclosed End-Terrace,2015-09-10,E07000110,E14000804,Kent,2015-09-15,rental (social),74,78,206,172.0,1.7,36,1.5,34.0,34.0,278.0,249.0,151.0,123.0,48.0,Single,Y,Ground,N,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,2.0,2.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,no corridor,,,,N,natural,"12, St. Stephens Square",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2015-09-15 20:04:35,rental (social),,,200003665826.0,Address Matched +1363871221212020080816173920000734,Norton Hall,Rigshill Road,Otterden,ME13 0JD,7451109378,E,A,41,97,House,Detached,2020-08-07,E07000110,E14000700,Kent,2020-08-08,marketed sale,39,91,257,-17.0,7.6,61,0.5,87.0,89.0,1171.0,483.0,155.0,94.0,126.0,Unknown,N,NODATA!,,,2106.0,7.0,"double glazing, unknown install date",Normal,3.0,5.0,5.0,100.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Some double glazing,Very Poor,Very Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, oil",Average,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,oil (not community),0.0,NO DATA!,,,,N,natural,"Norton Hall, Rigshill Road, Otterden",Maidstone,Faversham and Mid Kent,FAVERSHAM,England and Wales: before 1900,2020-08-08 16:17:39,owner-occupied,,,200003725844.0,Address Matched +462113639342012052417493674422548,"381, Willington Street",,,ME15 8HL,5369434768,C,B,73,84,House,Detached,2012-05-24,E07000110,E14000700,Kent,2012-05-24,marketed sale,71,82,134,74.0,4.5,26,2.6,138.0,73.0,684.0,606.0,112.0,74.0,177.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,7.0,7.0,11.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 11% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"381, Willington Street",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1976-1982,2012-05-24 17:49:36,owner-occupied,19.0,2.0,200003685604.0,Address Matched +1481140739042016092020212747769518,"5, Harrow Way",Weavering,,ME14 5TU,7053437478,C,B,72,86,House,Semi-Detached,2016-09-19,E07000110,E14000700,Kent,2016-09-20,marketed sale,70,85,183,77.0,2.6,32,1.1,73.0,55.0,431.0,404.0,130.0,82.0,80.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,0.0,6.0,6.0,67.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 67% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,2.3,,N,natural,"5, Harrow Way, Weavering",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1991-1995,2016-09-20 20:21:27,owner-occupied,,,200003689796.0,Address Matched +1491261344552016111612073990969748,"1, Old Farm Close",Allington,,ME16 0TS,7856408478,B,A,84,95,House,NO DATA!,2016-11-16,E07000110,E14000804,Kent,2016-11-16,new dwelling,86,96,84,12.0,1.5,15,0.2,64.0,64.0,245.0,246.0,111.0,59.0,103.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.12 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.22 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.17 W/m-¦K,Good,Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"1, Old Farm Close, Allington",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2016-11-16 12:07:39,unknown,10.0,10.0,10092970749.0,Address Matched +14019429912009010716223204010441,Apartment 21 Bluecoats Yard,Knightrider Street,,ME15 6LD,4185948468,B,B,86,88,Flat,Detached,2009-01-05,E07000110,E14000804,Kent,2009-01-07,rental (private),86,87,108,98.0,1.1,17,1.0,60.0,33.0,158.0,160.0,76.0,76.0,63.4,Unknown,Y,2nd,N,4.0,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,21.0,0.0,From main system,Very Good,Very Good,(other premises below),,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 21% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,heated corridor,,2.31,0.0,N,natural,"Apartment 21 Bluecoats Yard, Knightrider Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2009-01-07 16:22:32,rental (private),,,10014307479.0,Address Matched +1a53cb1b02b63762224d4cf3ca455ff6d3c8e6ba13ac6e5b8d3ff060da87edfd,10 Blean Square,,,ME14 5QU,10003390949,C,B,70,89,House,Mid-Terrace,2022-09-29,E07000110,E14000804,Kent,2022-09-30,marketed sale,71,90,206,49.0,2.1,36,0.5,55.0,55.0,389.0,330.0,125.0,71.0,59.0,Single,Y,,,,,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,"Room heaters, electric",,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.41,0.0,N,natural,10 Blean Square,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2022-09-30 16:19:06,Owner-occupied,7.0,,200003721062.0,Energy Assessor +214434569702015031813450352659388,"1, Fareham Walk",,,ME15 8UW,7761166568,D,B,66,82,House,End-Terrace,2015-03-18,E07000110,E14000700,Kent,2015-03-18,assessment for green deal,63,80,231,110.0,3.5,41,1.7,55.0,55.0,695.0,571.0,90.0,57.0,87.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, partial insulation (assumed)",Average,Average,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,"mechanical, extract only","1, Fareham Walk",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1976-1982,2015-03-18 13:45:03,owner-occupied,,,200003722255.0,Address Matched +1537510449262017042115030461598423,"90, Fennel Close",,,ME16 0XT,2620431578,C,C,73,75,Flat,Detached,2017-04-21,E07000110,E14000804,Kent,2017-04-21,rental (private),75,76,190,178.0,1.7,33,1.6,82.0,41.0,289.0,295.0,91.0,91.0,52.0,Unknown,Y,1st,Y,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,0.0,0.0,From main system,Good,Good,"To unheated space, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,no corridor,,,,N,natural,"90, Fennel Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2017-04-21 15:03:04,rental (private),,,200003722341.0,Address Matched +1765815454452019111416480097919769,"48, Eyhorne Street",Hollingbourne,,ME17 1TR,7991477678,E,C,49,73,House,End-Terrace,2019-11-14,E07000110,E14000700,Kent,2019-11-14,marketed sale,41,66,356,180.0,7.3,65,3.7,98.0,77.0,1261.0,851.0,125.0,82.0,112.0,Unknown,Y,NODATA!,,,2106.0,0.0,not defined,Normal,0.0,6.0,6.0,71.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Single glazed,Very Poor,Very Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 71% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"48, Eyhorne Street, Hollingbourne",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1900-1929,2019-11-14 16:48:00,owner-occupied,,,200003719241.0,Address Matched +522033667752010080317553895000373,"63, Wallis Avenue",,,ME15 9HS,3389758768,D,C,67,76,House,Mid-Terrace,2010-08-03,E07000110,E14000700,Kent,2010-08-03,marketed sale,61,72,249,181.0,4.2,42,3.1,54.0,54.0,622.0,465.0,154.0,123.0,101.63,Single,Y,NO DATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,6.0,6.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,0.0,N,natural,"63, Wallis Avenue",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2010-08-03 17:55:38,owner-occupied,,,200003682274.0,Address Matched +568271041212010112413585199209189,"1, Cloudberry Close",,,ME16 0LY,1971191868,C,C,72,77,House,End-Terrace,2010-11-24,E07000110,E14000804,Kent,2010-11-24,marketed sale,70,73,187,164.0,3.7,31,3.2,129.0,67.0,505.0,488.0,138.0,121.0,118.5,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,7.0,0.0,From main system,Good,Good,"Solid, limited insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, mains gas",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 7% of fixed outlets,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.3,0.0,N,natural,"1, Cloudberry Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2010-11-24 13:58:51,owner-occupied,,,200003721727.0,Address Matched +1419800599962016061615362512768526,"10, Nightingale Road",Allington,,ME16 0FQ,2183992478,B,A,85,97,House,Mid-Terrace,2016-06-16,E07000110,E14000804,Kent,2016-06-16,new dwelling,88,99,72,-9.0,1.1,13,-0.1,62.0,62.0,184.0,184.0,88.0,52.0,86.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.12 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.27 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"10, Nightingale Road, Allington",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2016-06-16 15:36:25,owner-occupied,10.0,10.0,10091195294.0,Address Matched +347721339062012081501004266268032,Woodlands,Lughorse Lane,Yalding,ME18 6EB,3676336668,D,D,55,65,House,Detached,2012-08-06,E07000110,E14000804,Kent,2012-08-15,marketed sale,61,71,132,94.0,10.0,30,7.4,118.0,118.0,2639.0,2322.0,213.0,140.0,334.0,Single,N,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,3.0,10.0,10.0,88.0,1.0,From main system,Poor,Average,"Solid, insulated",,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, LPG",Poor,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 88% of fixed outlets,Very Good,Very Good,LPG (not community),0.0,NO DATA!,,,0.0,,natural,"Woodlands, Lughorse Lane, Yalding",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2012-08-15 01:00:42,owner-occupied,17.0,15.0,200003661633.0,Address Matched +393944826552009110609050805019861,Flat 26 Hardwick House,Northumberland Road,,ME15 7TH,8170659668,B,B,81,81,Flat,Semi-Detached,2009-11-05,E07000110,E14000700,Kent,2009-11-06,rental (social),77,77,242,242.0,1.4,41,1.4,17.0,17.0,209.0,209.0,96.0,96.0,33.78,Unknown,N,1st,Y,2.0,2301.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,100.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,Community scheme,Good,Good,"Flat rate charging, no thermostatic control of room temperature",Very Poor,Very Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,heated corridor,,,0.0,N,natural,"Flat 26 Hardwick House, Northumberland Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,,2009-11-06 09:05:08,rental (social),,,200003684333.0,Address Matched +1677974535412019100912113693089464,Flat 316,Kent House,Romney Place,ME15 6LA,4435531678,D,D,64,64,Flat,Detached,2018-11-09,E07000110,E14000804,Kent,2019-10-09,non marketed sale,67,67,256,256.0,2.1,43,2.1,40.0,40.0,413.0,413.0,259.0,259.0,49.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,"Electric immersion, standard tariff",Very Poor,Poor,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.33 W/m-¦K,Good,Good,,,,(other premises above),,,Electric underfloor heating,Very Poor,Poor,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"Flat 316, Kent House, Romney Place",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2019-10-09 12:11:36,unknown,21.0,21.0,, +1374625889142015101423382831959448,"39a, South Street",Barming,,ME16 9EX,3157189378,F,C,37,80,House,Detached,2015-10-14,E07000110,E14000804,Kent,2015-10-14,marketed sale,40,83,479,114.0,5.2,73,1.1,78.0,48.0,1148.0,516.0,155.0,71.0,72.0,Single,Y,NODATA!,,,2104.0,10.0,double glazing installed before 2002,Normal,2.0,3.0,3.0,38.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Some double glazing,Very Poor,Very Poor,"Sandstone or limestone, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 38% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"39a, South Street, Barming",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2015-10-14 23:38:28,owner-occupied,,,200003666773.0,Address Matched +13448613132009070722242933068201,"20, Spindle Glade",,,ME14 5RQ,1113242468,C,C,77,77,House,Detached,2009-07-07,E07000110,E14000804,Kent,2009-07-07,marketed sale,74,74,167,167.0,3.0,28,3.0,63.0,63.0,461.0,461.0,85.0,85.0,107.89,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,7.0,7.0,85.0,1.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 85% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.29,0.0,Y,natural,"20, Spindle Glade",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2009-07-07 22:24:29,owner-occupied,,,200003672210.0,Address Matched +8af50f8940416a67484ec05a4e5fcf0c7f52cfc745fdd074b344c59731f72d2d,3 KINGS REACH,,,ME15 7LZ,10001448700,E,B,54,84,House,Mid-Terrace,2021-06-28,E07000110,E14000700,Kent,2021-07-01,ECO assessment,50,84,340,91.0,4.3,60,1.2,121.0,60.0,729.0,453.0,189.0,75.0,72.0,Single,Y,,,,,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,0.0,0.0,"From main system, no cylinder thermostat",Average,Average,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,"Pitched, insulated (assumed)",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,,,2.75,0.0,N,natural,3 KINGS REACH,Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2021-07-01 10:31:08,Rented (social),10.0,,200003724188.0,Energy Assessor +1184896408152014090423522193040528,The Stable,Gore Court,Otham,ME15 8RF,5861836278,E,D,40,63,Bungalow,Mid-Terrace,2014-09-04,E07000110,E14000700,Kent,2014-09-04,rental (private),36,52,353,210.0,6.3,78,4.0,98.0,51.0,1267.0,1139.0,171.0,109.0,81.0,Unknown,N,NODATA!,,,2104.0,0.0,not defined,Normal,1.0,3.0,3.0,7.0,0.0,From main system,Good,Average,"Suspended, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Solid brick, with internal insulation",Good,Good,"Room heaters, wood logs",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, oil",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 7% of fixed outlets,Very Poor,Very Poor,oil (not community),0.0,NO DATA!,,,0.0,,natural,"The Stable, Gore Court, Otham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2014-09-04 23:52:21,rental (private),14.0,1.0,10091194613.0,Address Matched +1191811489922014081815350816188354,"13, Holmesdale Close",Loose,,ME15 0BQ,5112886278,B,A,85,95,House,Mid-Terrace,2014-08-18,E07000110,E14000804,Kent,2014-08-18,new dwelling,87,97,78,7.0,1.3,14,0.1,64.0,64.0,237.0,237.0,85.0,51.0,97.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.12 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.22 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"13, Holmesdale Close, Loose",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2014-08-18 15:35:08,owner-occupied,15.0,15.0,10014315581.0,Address Matched +1701051662132019022710400732278308,"16, Wenham Drive",,,ME17 3GN,6852303678,B,A,84,96,House,End-Terrace,2019-02-27,E07000110,E14000700,Kent,2019-02-27,new dwelling,86,98,88,0.0,1.2,15,0.0,61.0,61.0,207.0,207.0,71.0,42.0,78.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"16, Wenham Drive",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2019-02-27 10:40:07,unknown,7.0,7.0,10093307094.0,Address Matched +397823480142009111612025166919868,12 Greenfields View,Oxford Gardens,,ME15 8FJ,3108289668,B,B,83,83,Flat,NO DATA!,2009-11-16,E07000110,E14000700,Kent,2009-11-16,new dwelling,86,87,129,127.0,1.0,19,0.9,35.0,29.0,85.0,86.0,135.0,135.0,49.6,standard tariff,,mid floor,,,2207.0,,NO DATA!,NO DATA!,,,,4.0,0.0,From main system,Poor,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.28 W/m?K,Very Good,Very Good,,,,(another dwelling above),,,"Air source heat pump, underfloor, electric",Average,Very Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",0.0,NO DATA!,,2.5,,,NO DATA!,"12 Greenfields View, Oxford Gardens",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2009-11-16 12:02:51,,5.0,4.0,10014309013.0,Address Matched +1329085059142015060515045134650248,1 Redwall Bungalow,Redwall Lane,Linton,ME17 4AZ,130956378,E,A,41,92,Bungalow,End-Terrace,2015-06-04,E07000110,E14000804,Kent,2015-06-05,marketed sale,56,100,221,-51.0,4.3,47,-0.2,102.0,57.0,1184.0,742.0,192.0,120.0,91.0,Single,N,NODATA!,,,2106.0,9.0,double glazing installed during or after 2002,Normal,2.0,6.0,6.0,18.0,0.0,From main system,Poor,Good,"Solid, no insulation (assumed)",NO DATA!,,Some double glazing,Very Poor,Very Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, LPG",Poor,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 18% of fixed outlets,Poor,Poor,LPG (not community),0.0,NO DATA!,,,,N,natural,"1 Redwall Bungalow, Redwall Lane, Linton",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2015-06-05 15:04:51,owner-occupied,,,200003711819.0,Address Matched +1183507199062014081023571216998774,Lone Oak,Otham Lane,Bearsted,ME15 8SJ,7116926278,C,B,80,83,House,Detached,2014-08-01,E07000110,E14000700,Kent,2014-08-10,marketed sale,77,79,92,80.0,8.1,18,7.1,187.0,187.0,1509.0,1509.0,130.0,130.0,461.0,Single,Y,NODATA!,,,2110.0,100.0,triple glazing,Normal,2.0,11.0,11.0,71.0,1.0,From main system,Good,Good,"Solid, insulated (assumed)",,,Fully triple glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, mains gas",,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in 71% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"Lone Oak, Otham Lane, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2007 onwards,2014-08-10 23:57:12,owner-occupied,35.0,25.0,200003695131.0,Address Matched +192107712302020042912162451502018,Apartment 58 Sandling Park,Sandling Lane,,ME14 2NY,390015568,C,C,72,80,Flat,Enclosed Mid-Terrace,2020-04-29,E07000110,E14000804,Kent,2020-04-29,rental (private),68,69,205,202.0,2.7,35,2.7,113.0,77.0,398.0,280.0,219.0,196.0,79.0,dual,N,1st,N,,2603.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,30.0,0.0,"Electric immersion, off-peak",Poor,Poor,"Solid, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"System built, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Room heaters, electric",Very Poor,Poor,Programmer and appliance thermostats,Good,Good,Low energy lighting in 30% of fixed outlets,Average,Average,electricity (not community),0.0,unheated corridor,9.79,,,N,natural,"Apartment 58 Sandling Park, Sandling Lane",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2020-04-29 12:16:24,rental (private),,,10014307153.0,Address Matched +1509638655452017010615213993030943,"51, Cross Keys",Bearsted,,ME14 4HS,9303539478,D,B,61,84,House,Semi-Detached,2017-01-06,E07000110,E14000700,Kent,2017-01-06,non marketed sale,55,81,270,98.0,4.3,48,1.6,79.0,60.0,739.0,481.0,142.0,84.0,91.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,2.0,5.0,5.0,67.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 67% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"51, Cross Keys, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2017-01-06 15:21:39,rental (social),,,200003694920.0,Address Matched +765920986612018113014413597289396,"16a, Penfold Close",,,ME15 9LU,3610676968,C,C,72,74,Flat,End-Terrace,2018-11-29,E07000110,E14000700,Kent,2018-11-30,marketed sale,74,77,217,194.0,1.7,38,1.5,39.0,39.0,304.0,271.0,74.0,74.0,43.0,Unknown,Y,1st,Y,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,2.0,2.0,86.0,0.0,From main system,Good,Good,(another dwelling below),NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 86% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,no corridor,,,,N,natural,"16a, Penfold Close",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2018-11-30 14:41:35,owner-occupied,,,200003683217.0,Address Matched +596563029842011071422355886499048,"82, Mangravet Avenue",,,ME15 9BE,803024868,D,D,66,68,House,Mid-Terrace,2011-07-14,E07000110,E14000700,Kent,2011-07-14,rental (social),65,66,217,209.0,3.1,42,3.0,69.0,40.0,494.0,497.0,102.0,102.0,73.8,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,4.0,4.0,30.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 30% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,2.17,0.0,,natural,"82, Mangravet Avenue",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2011-07-14 22:35:58,rental (social),10.0,3.0,200003713765.0,Address Matched +1490931119222016102613025598548366,"7, Iden Crescent",Staplehurst,,TN12 0NX,6989108478,D,C,62,78,House,Semi-Detached,2016-10-24,E07000110,E14000804,Kent,2016-10-26,ECO assessment,57,75,236,124.0,4.6,41,2.4,90.0,67.0,892.0,702.0,114.0,77.0,111.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,7.0,7.0,67.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 25 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 67% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,2.34,,N,natural,"7, Iden Crescent, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1967-1975,2016-10-26 13:02:55,owner-occupied,,,200003677150.0,Address Matched +774906239642012041816352498729788,"27, Franklin Drive",Weavering,,ME14 5SY,3630837968,D,B,65,82,House,Detached,2012-04-18,E07000110,E14000700,Kent,2012-04-18,marketed sale,63,80,194,91.0,3.9,37,1.9,112.0,56.0,572.0,502.0,141.0,77.0,106.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,5.0,5.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"27, Franklin Drive, Weavering",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1991-1995,2012-04-18 16:35:24,owner-occupied,16.0,0.0,200003716412.0,Address Matched +840909179262014090611254832038104,"8, St. Heliers Close",,,ME16 8QZ,315702078,D,B,56,83,House,Detached,2014-08-27,E07000110,E14000804,Kent,2014-09-06,none of the above,51,82,266,84.0,4.7,51,1.5,92.0,55.0,852.0,516.0,151.0,79.0,91.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,More Than Typical,2.0,5.0,5.0,33.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 33% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"8, St. Heliers Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2014-09-06 11:25:48,owner-occupied,33.0,11.0,200003656630.0,Address Matched +8b40328477dbab3a1eda738b81fff69cbaf126b24d5f3693e663d9ae6a03214e,2 Biddenden Close,Bearsted,,ME15 8JP,10001406219,C,B,71,85,House,Semi-Detached,2021-08-31,E07000110,E14000700,Kent,2021-08-31,marketed sale,68,83,206,98.0,2.8,36,1.3,63.0,63.0,442.0,415.0,116.0,74.0,76.0,Unknown,Y,,,,,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.4,0.0,N,natural,"2 Biddenden Close, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2021-08-31 12:01:41,Owner-occupied,9.0,,200003688421.0,Energy Assessor +831762550352012090510443994020902,"11, St. Annes Court",,,ME16 0UQ,9212041078,E,C,53,77,Flat,Mid-Terrace,2012-09-05,E07000110,E14000804,Kent,2012-09-05,marketed sale,32,63,687,325.0,4.4,122,2.1,25.0,25.0,499.0,182.0,100.0,100.0,36.0,dual,N,2nd,Y,,2401.0,100.0,double glazing installed before 2002,Normal,0.0,2.0,2.0,100.0,0.0,"Electric immersion, off-peak",Average,Very Poor,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,Portable electric heaters (assumed),,,"Pitched, no insulation",Very Poor,Very Poor,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,unheated corridor,6.6,,0.0,,natural,"11, St. Annes Court",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2012-09-05 10:44:39,owner-occupied,5.0,5.0,200003666932.0,Address Matched +1361879989302015091409224631859748,"199, Willington Street",,,ME15 8EE,8377888378,D,C,61,75,House,Detached,2015-09-14,E07000110,E14000700,Kent,2015-09-14,marketed sale,50,67,247,153.0,10.0,44,6.2,99.0,99.0,1868.0,1323.0,141.0,141.0,229.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,2.0,9.0,9.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Roof room(s), no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"199, Willington Street",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2015-09-14 09:22:46,owner-occupied,,,200003685726.0,Address Matched +477909449002010042919375370502218,"34, Oak Lane",Headcorn,,TN27 9TH,3091745768,C,C,70,74,House,Detached,2010-04-29,E07000110,E14000700,Kent,2010-04-29,marketed sale,66,70,233,208.0,3.3,39,3.0,84.0,44.0,499.0,465.0,98.0,98.0,99.95,Unknown,Y,NO DATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,10.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 10% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.32,0.0,N,natural,"34, Oak Lane, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,England and Wales: 1967-1975,2010-04-29 19:37:53,owner-occupied,,,200003699299.0,Address Matched +1571616149062017090319323153698443,"70, Murrain Drive",Downswood,,ME15 8XN,4585473578,D,B,67,89,House,Semi-Detached,2017-09-01,E07000110,E14000700,Kent,2017-09-03,marketed sale,66,89,251,66.0,2.4,44,0.7,78.0,39.0,407.0,336.0,96.0,55.0,54.0,Single,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"70, Murrain Drive, Downswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2017-09-03 19:32:31,owner-occupied,,,200003691550.0,Address Matched +766628587112012040311553397020692,"13, Tilling Close",,,ME15 6RW,6294776968,C,C,79,80,Flat,Semi-Detached,2012-04-02,E07000110,E14000804,Kent,2012-04-03,marketed sale,84,84,104,101.0,1.3,20,1.2,52.0,41.0,220.0,222.0,84.0,84.0,64.0,Unknown,Y,2nd,Y,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,71.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Good,Good,"Timber frame, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 71% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,8.91,,0.0,,natural,"13, Tilling Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2012-04-03 11:55:33,owner-occupied,7.0,5.0,10022895679.0,Address Matched +1681300559832018112418024144278097,"20, College Road",,,ME15 6YF,5704061678,F,B,28,83,House,Mid-Terrace,2018-11-21,E07000110,E14000804,Kent,2018-11-24,rental (private),38,69,469,197.0,5.7,79,2.4,52.0,58.0,1550.0,536.0,206.0,100.0,71.0,Single,N,NODATA!,,,2602.0,75.0,secondary glazing,Normal,2.0,4.0,4.0,100.0,0.0,Electric instantaneous at point of use,Very Poor,Poor,"Suspended, no insulation (assumed)",NO DATA!,,Partial secondary glazing,Average,Average,"Sandstone or limestone, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 200 mm loft insulation",Good,Good,"Room heaters, electric",Very Poor,Poor,Appliance thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,NO DATA!,,,,N,"mechanical, extract only","20, College Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2018-11-24 18:02:41,rental (private),,,200003693289.0,Address Matched +597309049962012111921151194768522,"37, Plumpton Walk",,,ME15 8UQ,2973424868,C,B,73,88,House,Mid-Terrace,2012-11-16,E07000110,E14000700,Kent,2012-11-19,rental (social),75,90,147,43.0,2.1,28,0.7,83.0,44.0,352.0,332.0,105.0,70.0,78.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,More Than Typical,0.0,3.0,3.0,10.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 10% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"37, Plumpton Walk",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1976-1982,2012-11-19 21:15:11,rental (social),10.0,1.0,200003725613.0,Address Matched +1437454416252016042617145792960046,17 Eccleston Court,Tovil,,ME15 6QZ,628624478,B,B,84,84,Flat,NO DATA!,2016-04-19,E07000110,E14000804,Kent,2016-04-26,new dwelling,85,85,86,86.0,1.5,15,1.5,62.0,62.0,278.0,278.0,91.0,91.0,101.0,standard tariff,,top floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.22 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.1 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"17 Eccleston Court, Tovil",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2016-04-26 17:14:57,unknown,15.0,15.0,10091193853.0,Address Matched +1662285332452018091111470292980464,"7, Blossom Way",Marden,,TN12 9GA,4455220678,B,A,83,96,House,Semi-Detached,2018-09-11,E07000110,E14000804,Kent,2018-09-11,new dwelling,86,99,92,-5.0,1.2,16,0.0,54.0,54.0,188.0,189.0,97.0,53.0,75.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.23 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.10 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"7, Blossom Way, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,NO DATA!,2018-09-11 11:47:02,owner-occupied,45.0,45.0,10093305194.0,Address Matched +1796055813352020040113234629000866,"57, Lasius Drive",Coxheath,,ME17 4UH,8604399678,B,A,84,96,House,Semi-Detached,2020-04-01,E07000110,E14000804,Kent,2020-04-01,new dwelling,87,97,81,5.0,1.3,14,0.1,72.0,72.0,219.0,219.0,75.0,45.0,90.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.21 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.10 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"57, Lasius Drive, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2020-04-01 13:23:46,unknown,12.0,12.0,10094444185.0,Address Matched +1184161221952014080612312593040920,Primula Cottage,Leeds Road,Langley,ME17 3JG,9086136278,D,C,59,79,House,Detached,2014-08-05,E07000110,E14000700,Kent,2014-08-06,marketed sale,54,77,238,109.0,4.8,46,2.2,104.0,61.0,891.0,655.0,129.0,83.0,104.0,Single,Y,NODATA!,,,2106.0,60.0,secondary glazing,Normal,2.0,5.0,5.0,28.0,2.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Partial secondary glazing,Poor,Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, mains gas",,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 28% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"Primula Cottage, Leeds Road, Langley",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2014-08-06 12:31:25,owner-occupied,18.0,5.0,200003697783.0,Address Matched +735042622932012010316473635268997,"12, Salisbury Road",Penenden Heath,,ME14 2TX,2725914968,E,D,39,56,House,Mid-Terrace,2011-12-22,E07000110,E14000804,Kent,2012-01-03,marketed sale,36,52,425,292.0,6.8,82,4.7,75.0,44.0,1130.0,807.0,108.0,85.0,83.27,Single,Y,NODATA!,,,2102.0,0.0,not defined,Normal,1.0,3.0,3.0,30.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation(assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,Low energy lighting in 30% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,2.55,0.0,,natural,"12, Salisbury Road, Penenden Heath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2012-01-03 16:47:36,owner-occupied,10.0,3.0,200003703353.0,Address Matched +1234617469222018012222541629428288,"30, Brewer Street",,,ME14 1RY,8266689278,F,D,30,59,House,Mid-Terrace,2018-01-22,E07000110,E14000804,Kent,2018-01-22,marketed sale,30,51,441,231.0,7.0,89,3.9,95.0,61.0,1258.0,945.0,300.0,151.0,79.0,dual,N,NODATA!,,,2601.0,95.0,double glazing installed before 2002,Normal,1.0,4.0,3.0,43.0,1.0,"Electric immersion, off-peak",Very Poor,Poor,"Suspended, no insulation (assumed)",NO DATA!,,Mostly double glazing,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,Portable electric heaters (assumed),,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, dual fuel (mineral and wood)",Poor,Average,No thermostatic control of room temperature,Poor,Poor,Low energy lighting in 43% of fixed outlets,Average,Average,dual fuel - mineral + wood,0.0,NO DATA!,,,,N,natural,"30, Brewer Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2018-01-22 22:54:16,owner-occupied,,,200003697607.0,Address Matched +755061704712014022721285099240398,3 The Oasts,The Green,Bearsted,ME14 4EB,3892495968,D,B,62,82,House,Semi-Detached,2014-02-27,E07000110,E14000700,Kent,2014-02-27,marketed sale,55,79,199,85.0,7.3,39,3.1,93.0,95.0,1330.0,773.0,140.0,90.0,188.0,Single,Y,NODATA!,,,2106.0,5.0,double glazing installed before 2002,Normal,3.0,7.0,7.0,85.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Some double glazing,Very Poor,Very Poor,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 85% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"3 The Oasts, The Green, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2014-02-27 21:28:50,owner-occupied,48.0,41.0,200003695112.0,Address Matched +1589001528012017111209254899039456,Lamorna,Maidstone Road,Marden,TN12 9AG,4658894578,G,C,15,75,Bungalow,Detached,2017-11-08,E07000110,E14000804,Kent,2017-11-12,marketed sale,14,60,452,87.0,13.0,120,4.0,100.0,100.0,1449.0,811.0,229.0,71.0,108.0,dual,N,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,67.0,0.0,"From main system, no cylinder thermostat",Very Poor,Very Poor,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, oil",Poor,Average,Programmer and room thermostat,Average,Average,Low energy lighting in 67% of fixed outlets,Good,Good,oil (not community),0.0,NO DATA!,,,,N,natural,"Lamorna, Maidstone Road, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1950-1966,2017-11-12 09:25:48,owner-occupied,,,, +1293657609642015031306555336459528,Flat 4,Pine Lodge,Somerfield Road,ME16 8JJ,8635604378,B,B,82,84,Flat,Mid-Terrace,2015-03-12,E07000110,E14000804,Kent,2015-03-13,rental (private),86,88,91,79.0,1.2,16,1.0,105.0,53.0,152.0,158.0,111.0,111.0,73.0,Single,Y,1st,N,,2107.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,0.0,0.0,From main system,Good,Good,(another dwelling below),NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Very Good,Very Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,heated corridor,,,,N,natural,"Flat 4, Pine Lodge, Somerfield Road",Maidstone,Maidstone and The Weald,MAIDSTONE,INVALID!,2015-03-13 06:55:53,rental (private),,,10091193890.0,Address Matched +1309184069962015041309131055208975,"139, Upper Fant Road",,,ME16 8BT,7501615378,D,B,66,87,House,Semi-Detached,2015-04-10,E07000110,E14000804,Kent,2015-04-13,ECO assessment,61,85,223,69.0,3.7,39,1.2,102.0,64.0,550.0,426.0,218.0,76.0,93.0,dual,Y,NODATA!,,,2107.0,100.0,double glazing installed before 2002,Normal,1.0,5.0,5.0,40.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 40% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"139, Upper Fant Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2015-04-13 09:13:10,rental (private),,,200003656093.0,Address Matched +1431340214632016041117223628078101,Flat 50,Concorde House,London Road,ME16 8QA,1118183478,C,C,70,70,Flat,Mid-Terrace,2016-04-05,E07000110,E14000804,Kent,2016-04-11,rental (private),67,67,247,247.0,2.3,42,2.3,41.0,41.0,352.0,352.0,170.0,170.0,55.0,dual,N,4th,N,,2107.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,100.0,0.0,From main system,Poor,Poor,(another dwelling below),NO DATA!,,Fully double glazed,Good,Good,"System built, with internal insulation",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, electric",Very Poor,Poor,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,unheated corridor,9.15,2.5,,N,natural,"Flat 50, Concorde House, London Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2016-04-11 17:22:36,rental (private),,,, +861744969232012112915250929278396,18c Charlton Street,,,ME16 8LA,6619353078,D,C,57,74,Flat,Mid-Terrace,2012-11-29,E07000110,E14000804,Kent,2012-11-29,rental (private),60,67,406,337.0,2.0,72,1.7,19.0,20.0,372.0,175.0,112.0,121.0,28.0,Single,N,2nd,Y,,2602.0,100.0,double glazing installed before 2002,Normal,1.0,2.0,2.0,100.0,0.0,Electric instantaneous at point of use,Very Poor,Very Poor,(other premises below),,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 200 mm loft insulation",Good,Good,"Room heaters, electric",Very Poor,Very Poor,Appliance thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,unheated corridor,5.08,,0.0,,natural,18c Charlton Street,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2012-11-29 15:25:09,rental (private),4.0,4.0,10014311859.0,Address Matched +765528442612012032414513697920393,"49, Milton Street",,,ME16 8JY,3301276968,D,C,66,70,House,Mid-Terrace,2012-03-19,E07000110,E14000804,Kent,2012-03-24,marketed sale,63,68,214,184.0,3.7,41,3.2,49.0,49.0,593.0,527.0,129.0,106.0,90.9,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,2.4,0.0,,natural,"49, Milton Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2012-03-24 14:51:36,owner-occupied,7.0,7.0,200003655384.0,Address Matched +596865029402013052822182686472388,"42, Forge Lane",Headcorn,,TN27 9TS,5432024868,D,C,68,75,Flat,Semi-Detached,2013-05-28,E07000110,E14000700,Kent,2013-05-28,rental (social),69,78,201,142.0,2.3,39,1.6,48.0,36.0,407.0,307.0,85.0,76.0,59.0,Single,Y,Ground,N,,2107.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,67.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 67% of fixed outlets,Good,Good,mains gas (not community),0.0,no corridor,,,0.0,,natural,"42, Forge Lane, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,England and Wales: 1950-1966,2013-05-28 22:18:26,rental (social),6.0,4.0,200003699494.0,Address Matched +1436288119402016042107334549462208,"16, Sportsfield",,,ME14 5LR,7440414478,E,B,46,82,Bungalow,Detached,2016-04-20,E07000110,E14000804,Kent,2016-04-21,marketed sale,47,84,370,103.0,5.2,57,1.3,104.0,59.0,979.0,538.0,281.0,85.0,91.0,Unknown,Y,NODATA!,,,2106.0,0.0,not defined,Normal,0.0,4.0,4.0,20.0,1.0,"From main system, no cylinder thermostat",Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Single glazed,Very Poor,Very Poor,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, wood logs",,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 20% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,2.44,,N,natural,"16, Sportsfield",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2016-04-21 07:33:45,owner-occupied,,,200003705873.0,Address Matched +1399308759642016010423465347160848,"22, Bychurch Place",Waterloo Street,,ME15 7UQ,1632651478,D,C,64,75,Flat,Detached,2016-01-04,E07000110,E14000804,Kent,2016-01-04,rental (social),62,77,301,182.0,2.6,53,1.6,55.0,39.0,497.0,301.0,92.0,93.0,49.0,dual,Y,1st,Y,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,57.0,0.0,From main system,Good,Good,(another dwelling below),NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 57% of fixed outlets,Good,Good,mains gas (not community),0.0,no corridor,,,,N,natural,"22, Bychurch Place, Waterloo Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2016-01-04 23:46:53,rental (social),,,200003696662.0,Address Matched +1203293347012015051212514096950329,"163, Sutton Road",,,ME15 9AB,3943767278,D,B,57,82,House,Semi-Detached,2015-05-12,E07000110,E14000700,Kent,2015-05-12,none of the above,54,81,301,108.0,4.2,53,1.5,102.0,51.0,810.0,537.0,103.0,68.0,79.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,"Pitched, 270 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"163, Sutton Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2015-05-12 12:51:40,owner-occupied,,,200003713337.0,Address Matched +8b8fba5b5160ca00c3b5bf86c6f3860e5d05fcf15a7d798393f8a3a51409111a,JUNIPERS,ORCHARD CLOSE,,ME17 3LL,10001695425,B,B,84,91,House,Detached,2021-07-12,E07000110,E14000700,Kent,2021-07-12,new dwelling,84,91,89,45.0,2.0,16,1.1,104.0,104.0,328.0,328.0,80.0,80.0,131.0,standard tariff,,,N,,,100.0,,,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.16 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.35,,,,"JUNIPERS, ORCHARD CLOSE",Maidstone,Faversham and Mid Kent,LANGLEY,2021,2021-07-12 15:19:53,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,25.0,,10095449516.0,Energy Assessor +89042149202014061612475844649948,Flat 15a,Elizabeth House,Alexandra Street,ME14 2BU,3249546468,C,C,69,80,Flat,Mid-Terrace,2014-06-14,E07000110,E14000804,Kent,2014-06-16,none of the above,60,76,363,221.0,2.2,64,1.3,32.0,32.0,251.0,132.0,139.0,114.0,34.0,dual,N,Ground,N,,2402.0,100.0,double glazing installed during or after 2002,Normal,0.0,1.0,1.0,75.0,0.0,Electric instantaneous at point of use,Very Poor,Very Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,Portable electric heaters (assumed),,,(another dwelling above),,,Electric storage heaters,Average,Very Poor,Automatic charge control,Average,Average,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,electricity (not community),0.0,no corridor,,,0.0,,natural,"Flat 15a, Elizabeth House, Alexandra Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2014-06-16 12:47:58,rental (private),4.0,3.0,200003704581.0,Address Matched +1565235299022017080417025573348963,"17, Cricketers Way",Coxheath,,ME17 4FG,6759923578,B,A,84,94,House,Detached,2017-08-04,E07000110,E14000804,Kent,2017-08-04,new dwelling,85,95,85,21.0,1.7,15,0.4,70.0,70.0,277.0,279.0,103.0,55.0,113.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.14 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.20 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"17, Cricketers Way, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2017-08-04 17:02:55,unknown,11.0,11.0,10093302621.0,Address Matched +1067399519022014010817424378338684,"21, Autumn Glade",,,ME5 8XP,8781118178,D,B,61,84,House,Mid-Terrace,2014-01-07,E07000110,E14000700,Kent,2014-01-08,marketed sale,63,87,227,67.0,3.1,42,1.0,78.0,50.0,503.0,376.0,236.0,139.0,74.0,dual,Y,NODATA!,,,2504.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,44.0,0.0,"Electric immersion, off-peak",Very Poor,Very Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, partial insulation (assumed)",Average,Average,,,,"Pitched, 250 mm loft insulation",Good,Good,"Warm air, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 44% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"21, Autumn Glade",Maidstone,Faversham and Mid Kent,CHATHAM,England and Wales: 1976-1982,2014-01-08 17:42:43,owner-occupied,9.0,4.0,200003673516.0,Address Matched +1164048275912014062618005799240023,"18, Finglesham Court",,,ME15 7HZ,388594278,C,B,71,87,House,Mid-Terrace,2014-06-26,E07000110,E14000700,Kent,2014-06-26,marketed sale,72,88,166,54.0,2.3,32,0.8,90.0,45.0,380.0,358.0,122.0,82.0,72.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, mains gas",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"18, Finglesham Court",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2014-06-26 18:00:57,owner-occupied,8.0,0.0,200003711926.0,Address Matched +1384998752612015111214543595959842,Flat 106,Miller House,43-51 Lower Stone Street,ME15 6GB,8267250478,C,C,80,80,Flat,NO DATA!,2015-11-12,E07000110,E14000804,Kent,2015-11-12,none of the above,83,83,122,122.0,1.2,21,1.2,41.0,41.0,237.0,237.0,71.0,71.0,55.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Good,Good,Average thermal transmittance 0.81 W/m-¦K,Average,Average,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Flat 106, Miller House, 43-51 Lower Stone Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2015-11-12 14:54:35,unknown,4.0,4.0,10091196203.0,Address Matched +221129700062009051916383947428721,"85, Eyhorne Street",Hollingbourne,,ME17 1TX,2481037568,C,C,71,74,House,Semi-Detached,2009-02-02,E07000110,E14000700,Kent,2009-05-19,rental (social),68,70,242,225.0,2.7,40,2.5,56.0,32.0,348.0,361.0,120.0,96.0,67.32,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,25.0,1.0,From main system,Very Good,Very Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"System built, with external insulation",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 25% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,0.0,N,natural,"85, Eyhorne Street, Hollingbourne",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2009-05-19 16:38:39,rental (social),,,200003722240.0,Address Matched +425559227752010012422525097200070,Flat 1 Winchester House,Cambridge Crescent,,ME15 7NR,22771768,C,C,71,77,Flat,End-Terrace,2010-01-24,E07000110,E14000700,Kent,2010-01-24,rental (social),66,74,346,272.0,2.0,58,1.6,22.0,22.0,339.0,289.0,83.0,63.0,34.52,Single,Y,Ground,N,2.0,2107.0,100.0,"double glazing, unknown install date",Normal,0.0,1.0,1.0,75.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.34,0.0,N,natural,"Flat 1 Winchester House, Cambridge Crescent",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2010-01-24 22:52:50,rental (social),,,200003713081.0,Address Matched +1666948426312018101916282395780167,"13, Blumer Lock",Yalding,,ME18 6AD,1798650678,B,A,85,93,House,Semi-Detached,2018-08-31,E07000110,E14000804,Kent,2018-10-19,new dwelling,85,94,79,24.0,1.7,14,0.6,76.0,76.0,275.0,275.0,91.0,59.0,126.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.12 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.19 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,"Boiler & underfloor, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"13, Blumer Lock, Yalding",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2018-10-19 16:28:23,unknown,11.0,11.0,10093305735.0,Address Matched +1220660289742014101411165629849548,"35, The Weavers",,,ME16 0NZ,9718788278,D,B,61,89,House,End-Terrace,2014-10-14,E07000110,E14000804,Kent,2014-10-14,rental (private),60,92,285,33.0,2.6,55,0.4,55.0,32.0,450.0,322.0,161.0,68.0,48.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,30.0,0.0,From main system,Average,Average,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 30% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"35, The Weavers",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2014-10-14 11:16:56,rental (private),10.0,3.0,200003694777.0,Address Matched +440580133712010021813415898900077,"331, Queens Road",,,ME16 0ET,702382768,D,D,57,68,House,Detached,2010-02-17,E07000110,E14000804,Kent,2010-02-18,rental (private),52,63,272,206.0,8.4,45,6.4,192.0,106.0,1160.0,917.0,194.0,162.0,184.63,dual,Y,NO DATA!,,,2106.0,95.0,double glazing installed before 2002,More Than Typical,2.0,9.0,9.0,20.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Mostly double glazing,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 20% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.5,0.0,N,natural,"331, Queens Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2010-02-18 13:41:58,rental (private),,,200003658943.0,Address Matched +243390600802009031023233757919508,"95, Marion Crescent",,,ME15 7EH,2810009568,E,D,49,65,House,Semi-Detached,2009-03-10,E07000110,E14000700,Kent,2009-03-10,rental (social),41,56,385,268.0,6.3,71,4.4,86.0,43.0,766.0,555.0,124.0,107.0,98.84,Single,Y,NO DATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,0.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, coal",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Poor,Poor,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,0.0,N,natural,"95, Marion Crescent",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2009-03-10 23:23:37,rental (social),,,200003711087.0,Address Matched +200808372832009051914281041068794,7 Cleveland House,Woodford Road,,ME16 9BU,7491725568,B,B,83,85,Flat,Semi-Detached,2008-12-04,E07000110,E14000804,Kent,2009-05-19,rental (social),83,84,136,126.0,1.4,22,1.3,61.0,31.0,197.0,200.0,77.0,77.0,62.56,Single,Y,1st,N,4.0,2106.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,0.0,0.0,From main system,Very Good,Very Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,unheated corridor,3.05,2.28,0.0,N,natural,"7 Cleveland House, Woodford Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2009-05-19 14:28:10,rental (social),,,200003685193.0,Address Matched +1773963075352019122016365093219066,51 Wrens Cross,Upper Stone Street,,ME15 6YU,630538678,C,C,72,72,Flat,Mid-Terrace,2019-12-20,E07000110,E14000804,Kent,2019-12-20,new dwelling,79,79,166,166.0,1.5,28,1.5,43.0,43.0,314.0,314.0,252.0,252.0,53.0,standard tariff,,top floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,"Electric immersion, standard tariff",Very Poor,Poor,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.20 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.15 W/m-¦K,Good,Good,"Room heaters, electric",Very Poor,Poor,Appliance thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"51 Wrens Cross, Upper Stone Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2019-12-20 16:36:50,unknown,24.0,24.0,10094440985.0,Address Matched +619113579262011042917480035118509,"108, Forest Hill",,,ME15 6SP,356795868,D,C,62,75,House,Semi-Detached,2011-04-29,E07000110,E14000804,Kent,2011-04-29,marketed sale,60,76,265,157.0,3.2,51,1.9,69.0,34.0,474.0,320.0,131.0,91.0,63.26,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 25 mm loft insulation",,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,2.29,0.0,,natural,"108, Forest Hill",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2011-04-29 17:48:00,owner-occupied,9.0,0.0,200003664797.0,Address Matched +8bb14e5bd61aaa7b778f8c88311e18594538143c0a81554909ad971fe0ca25a8,14 Halstow Close,,,ME15 9XA,10001387192,B,B,81,86,Bungalow,Detached,2021-08-10,E07000110,E14000804,Kent,2021-08-10,marketed sale,76,83,143,99.0,1.8,26,1.2,64.0,64.0,520.0,459.0,76.0,52.0,68.0,dual,Y,,,,,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,"Room heaters, mains gas",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.31,30.0,N,natural,14 Halstow Close,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2021-08-10 11:56:23,Owner-occupied,8.0,,200003675566.0,Energy Assessor +1080498781032020090313224020078205,"45, Shaftesbury Drive",,,ME16 0JR,8500209178,D,B,67,84,Bungalow,Detached,2020-09-03,E07000110,E14000804,Kent,2020-09-03,marketed sale,62,81,209,92.0,3.9,37,1.8,125.0,78.0,649.0,501.0,104.0,72.0,105.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,40.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 40% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"45, Shaftesbury Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1976-1982,2020-09-03 13:22:40,owner-occupied,,,200003726300.0,Address Matched +254412097132009032521190650268300,"225, Boxley Road",Penenden Heath,,ME14 2BH,9070379568,E,D,48,63,House,Semi-Detached,2009-03-25,E07000110,E14000804,Kent,2009-03-25,rental (private),42,57,362,254.0,8.8,61,6.1,90.0,70.0,1190.0,842.0,141.0,115.0,144.4,Single,Y,NO DATA!,,,2107.0,64.0,double glazing installed before 2002,Normal,0.0,6.0,6.0,71.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Partial double glazing,Poor,Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Poor,Poor,Low energy lighting in 71% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.55,0.0,N,natural,"225, Boxley Road, Penenden Heath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2009-03-25 21:19:06,rental (private),,,200003701970.0,Address Matched +579532829712011011316211297990487,31a High Street,,,ME14 1JF,4753972868,D,D,61,62,Maisonette,Mid-Terrace,2011-01-13,E07000110,E14000804,Kent,2011-01-13,rental (private),54,55,278,270.0,5.8,47,5.6,72.0,72.0,941.0,911.0,125.0,125.0,124.6,Single,Y,1st,Y,3.0,2104.0,0.0,not defined,Normal,0.0,4.0,4.0,100.0,0.0,From main system,Very Good,Very Good,(other premises below),,,Single glazed,Very Poor,Very Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Very Good,Very Good,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.94,0.0,N,natural,31a High Street,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2011-01-13 16:21:12,rental (private),,,200003728800.0,Address Matched +1392802599062015120413355841248005,"11, The Bartons",Staplehurst,,TN12 0EF,445901478,B,B,87,88,House,Semi-Detached,2015-12-04,E07000110,E14000804,Kent,2015-12-04,new dwelling,89,91,65,52.0,1.0,12,0.8,62.0,62.0,231.0,231.0,97.0,62.0,83.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"11, The Bartons, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,NO DATA!,2015-12-04 13:35:58,owner-occupied,14.0,14.0,10014315510.0,Address Matched +789273741112012051611461394920595,"37, Reinden Grove",Downswood,,ME15 8TH,5581148968,D,C,66,80,House,Detached,2012-05-15,E07000110,E14000700,Kent,2012-05-16,marketed sale,63,79,191,99.0,3.9,37,2.1,113.0,56.0,580.0,536.0,130.0,75.0,107.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,6.0,6.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"37, Reinden Grove, Downswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1991-1995,2012-05-16 11:46:13,owner-occupied,17.0,0.0,200003686365.0,Address Matched +754901829222012022812421385488002,"6, All Angels Close",,,ME16 8FR,854295968,B,B,84,84,House,End-Terrace,2012-02-28,E07000110,E14000804,Kent,2012-02-28,new dwelling,87,87,72,72.0,1.4,14,1.4,68.0,68.0,252.0,252.0,53.0,53.0,99.86,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,12.0,,"From main system, plus solar",Very Good,Very Good,Average thermal transmittance 0.13 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.23 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.10 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,,,NO DATA!,"6, All Angels Close",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2012-02-28 12:42:13,,16.0,12.0,10014312878.0,Address Matched +1487415489962016101211135327928286,Flat 1,Miller Heights,43-51 Lower Stone Street,ME15 6LN,8283877478,C,C,77,77,Flat,NO DATA!,2016-10-12,E07000110,E14000804,Kent,2016-10-12,none of the above,67,67,232,232.0,2.4,39,2.4,44.0,44.0,277.0,277.0,164.0,164.0,62.0,off-peak 10 hour,,mid floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Poor,Poor,Average thermal transmittance 0.22 W/m-¦K,Good,Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.56 W/m-¦K,Good,Good,,,,(other premises above),,,"Boiler and radiators, electric",Poor,Very Poor,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"Flat 1, Miller Heights, 43-51 Lower Stone Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2016-10-12 11:13:53,unknown,4.0,4.0,10093303781.0,Address Matched +325451379702014050215415764440128,"21, Basing Close",,,ME15 7UZ,5783374668,C,C,73,76,Flat,End-Terrace,2014-05-02,E07000110,E14000804,Kent,2014-05-02,rental (private),75,79,176,147.0,1.6,34,1.4,33.0,33.0,334.0,281.0,81.0,81.0,48.0,Single,Y,Ground,N,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,no corridor,,,0.0,,natural,"21, Basing Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2014-05-02 15:41:57,rental (private),4.0,4.0,200003696108.0,Address Matched +853970859232012110614581984078990,"10, Prospect Place",,,ME16 8EG,5044992078,C,B,73,90,House,Mid-Terrace,2012-11-06,E07000110,E14000804,Kent,2012-11-06,marketed sale,74,92,152,35.0,2.2,29,0.6,75.0,43.0,353.0,288.0,100.0,77.0,76.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,25.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 25% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"10, Prospect Place",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2012-11-06 14:58:19,owner-occupied,8.0,2.0,200003667549.0,Address Matched +1649058229402018071712564156989038,"2, Parchment Close",,,ME14 5GB,7481629578,B,A,84,95,House,Semi-Detached,2018-07-17,E07000110,E14000700,Kent,2018-07-17,new dwelling,86,97,86,5.0,1.3,15,0.1,63.0,63.0,216.0,216.0,74.0,43.0,85.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.18 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.28 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.19 W/m-¦K,Good,Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"2, Parchment Close",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2018-07-17 12:56:41,owner-occupied,13.0,13.0,10093305845.0,Address Matched +345533023812009081408474201910362,"32, St. Philips Avenue",,,ME15 7SW,3258316668,D,D,60,68,House,Mid-Terrace,2009-08-13,E07000110,E14000804,Kent,2009-08-14,rental (private),54,62,314,258.0,4.5,53,3.7,73.0,43.0,637.0,550.0,136.0,116.0,86.07,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,31.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 31% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.59,0.0,N,natural,"32, St. Philips Avenue",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2009-08-14 08:47:42,rental (private),,,200003686760.0,Address Matched +8bdee76ce42075016842ef8131ab9804f4e8c502379a5ca080e6c4588ee5ef4b,28 Longparish Close,,,ME15 8PU,10001447395,C,C,77,77,Flat,Semi-Detached,2021-08-25,E07000110,E14000700,Kent,2021-08-25,rental,80,80,161,161.0,1.4,28,1.4,44.0,44.0,250.0,250.0,81.0,81.0,49.0,Single,Y,01,Y,,,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,(another dwelling below),,,Fully double glazed,Good,Good,"System built, with external insulation",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,4.15,2.3,0.0,N,natural,28 Longparish Close,Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2021-08-25 12:16:55,Rented (social),5.0,,200003684965.0,Energy Assessor +1674503871052018110112371691289269,Middle Floor Flat,"237, Boxley Road",Penenden Heath,ME14 2BG,2936111678,C,C,69,79,Flat,Semi-Detached,2018-10-29,E07000110,E14000804,Kent,2018-11-01,rental (private),66,80,262,150.0,2.3,46,1.3,38.0,38.0,359.0,189.0,104.0,104.0,49.0,Single,Y,1st,N,,2304.0,100.0,double glazing installed during or after 2002,Normal,1.0,3.0,3.0,100.0,0.0,Community scheme,Good,Good,(another dwelling below),NO DATA!,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Poor,Poor,,,,(another dwelling above),,,Community scheme,Good,Good,"Flat rate charging, programmer and room thermostat",Poor,Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (community),0.0,heated corridor,,,,N,natural,"Middle Floor Flat, 237, Boxley Road, Penenden Heath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2018-11-01 12:37:16,rental (private),,,200003728280.0,Address Matched +1380487919202015102916334142052818,"4, Wealden Square",Lenham,,ME17 2AA,9257910478,C,B,79,88,House,Detached,2015-10-29,E07000110,E14000700,Kent,2015-10-29,new dwelling,80,89,121,62.0,2.5,20,1.2,64.0,64.0,467.0,470.0,105.0,56.0,125.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.21 W/m-¦K,Good,Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.28 W/m-¦K,Very Good,Very Good,"Room heaters, wood logs",,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler & underfloor, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"4, Wealden Square, Lenham",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2015-10-29 16:33:41,unknown,1.0,1.0,10091194218.0,Address Matched +768981569762012033119595046198272,"38, Willow Rise",Downswood,,ME15 8XR,7464696968,C,C,73,78,Flat,Enclosed End-Terrace,2012-03-31,E07000110,E14000700,Kent,2012-03-31,rental (private),58,65,458,378.0,2.3,81,1.9,37.0,21.0,209.0,157.0,86.0,86.0,28.3,dual,N,1st,Y,,2401.0,0.0,not defined,Normal,0.0,1.0,0.0,25.0,0.0,"Electric immersion, off-peak, no cylinder thermostat",Poor,Very Poor,(other premises below),,,Single glazed,Very Poor,Very Poor,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,"Pitched, 100 mm loft insulation",Average,Average,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 25% of fixed outlets,Average,Average,electricity (not community),0.0,unheated corridor,1.81,2.35,0.0,,natural,"38, Willow Rise, Downswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1996-2002,2012-03-31 19:59:50,rental (private),4.0,1.0,200003687164.0,Address Matched +1669348980832018100819425977078392,Red Roof,Boxley Road,Walderslade,ME5 9JG,8237370678,E,B,52,81,Bungalow,Detached,2018-10-08,E07000110,E14000700,Kent,2018-10-08,marketed sale,46,77,321,122.0,5.6,56,2.2,108.0,66.0,965.0,567.0,177.0,72.0,99.0,Single,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,4.0,36.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,Portable electric heaters (assumed),,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 36% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"Red Roof, Boxley Road, Walderslade",Maidstone,Faversham and Mid Kent,CHATHAM,England and Wales: 1950-1966,2018-10-08 19:42:59,owner-occupied,,,200003673835.0,Address Matched +82080035852014071015245498740549,"8, Napoleon Drive",Marden,,TN12 9TR,5995585468,D,B,58,82,House,Detached,2014-06-30,E07000110,E14000804,Kent,2014-07-10,none of the above,56,84,234,85.0,5.4,41,1.9,85.0,85.0,1118.0,629.0,170.0,91.0,132.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,7.0,7.0,83.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, wood logs",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 83% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"8, Napoleon Drive, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1991-1995,2014-07-10 15:24:54,owner-occupied,12.0,10.0,200003711232.0,Address Matched +191766950612008112710285309289350,9 Tallow Court,High Street,Headcorn,TN27 9NE,3049094568,B,B,83,84,House,Mid-Terrace,2008-11-27,E07000110,E14000700,Kent,2008-11-27,new dwelling,82,83,126,120.0,1.7,0,1.6,59.0,36.0,206.0,209.0,77.0,77.0,42.83,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,5.0,,SAP05:Hot-Water,,,SAP05:Floor,,,SAP05:Windows,,,SAP05:Walls,,,SAP05:Secondary-Heating,,,SAP05:Roof,,,SAP05:Main-Heating,,,SAP05:Main-Heating-Controls,,,SAP05:Lighting,,,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.44,,,NO DATA!,"9 Tallow Court, High Street, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,NO DATA!,2008-11-27 10:28:53,,13.0,5.0,10022900316.0,Address Matched +0ae90362deee3bb736749ebdaa87c10cb592910345f6d6100be87bce3d026a44,11 Thornhill Place,,,ME14 2SF,10001345633,D,B,63,82,House,Mid-Terrace,2021-08-27,E07000110,E14000804,Kent,2021-08-27,rental,58,80,302,124.0,2.9,53,1.2,47.0,47.0,483.0,409.0,102.0,67.0,54.0,Single,Y,,,,,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.38,0.0,N,natural,11 Thornhill Place,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2021-08-27 15:08:07,Rented (social),7.0,,200003702433.0,Energy Assessor +8c2481bad416bdd797dc000bedccd5812418b153bf6abd8a3373084c4d0610b5,1 PORTSDOWN CLOSE,,,ME16 8UH,10001325794,C,A,76,94,House,Enclosed End-Terrace,2021-07-20,E07000110,E14000804,Kent,2021-07-22,rental,79,97,172,-9.0,1.2,30,0.0,37.0,37.0,243.0,226.0,60.0,40.0,40.0,Single,Y,,,,,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Timber frame, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.4,0.0,N,natural,1 PORTSDOWN CLOSE,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2021-07-22 06:22:59,Rented (private),7.0,,200003675261.0,Energy Assessor +157260022502020031318075752109478,"19, Campbell Road",,,ME15 6PY,2554621568,D,B,62,87,House,Mid-Terrace,2020-03-13,E07000110,E14000804,Kent,2020-03-13,rental (private),56,86,274,72.0,4.0,48,1.1,65.0,65.0,709.0,388.0,100.0,69.0,83.0,Single,Y,NODATA!,,,2102.0,83.0,"double glazing, unknown install date",Normal,2.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"To unheated space, no insulation (assumed)",NO DATA!,,Mostly double glazing,Poor,Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"19, Campbell Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2020-03-13 18:07:57,rental (private),,,200003692825.0,Address Matched +276986484132009043023142333768505,"24, Langham Grove",,,ME16 0LA,8533531668,D,C,66,71,Bungalow,Semi-Detached,2009-04-30,E07000110,E14000804,Kent,2009-04-30,marketed sale,64,70,297,250.0,2.6,48,2.2,46.0,25.0,379.0,345.0,106.0,92.0,59.82,Single,Y,NO DATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,17.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, 250mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Poor,Poor,Low energy lighting in 17% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.42,0.0,N,natural,"24, Langham Grove",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2009-04-30 23:14:23,owner-occupied,,,200003656975.0,Address Matched +1189553539922014081316443616178834,"28, Church Street",,,ME14 1EN,3178376278,E,B,48,85,House,End-Terrace,2014-08-13,E07000110,E14000804,Kent,2014-08-13,marketed sale,42,84,296,68.0,7.4,57,1.7,114.0,69.0,1370.0,537.0,168.0,91.0,129.0,Single,Y,NODATA!,,,2104.0,40.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,33.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Partial double glazing,Poor,Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 33% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"28, Church Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2014-08-13 16:44:36,owner-occupied,12.0,4.0,200003687416.0,Address Matched +1419787579212016041816100599960147,"2, Bluebell Way",Allington,,ME16 0ZU,1774992478,B,A,84,95,House,Semi-Detached,2016-04-18,E07000110,E14000804,Kent,2016-04-18,new dwelling,86,97,81,2.0,1.2,14,0.1,57.0,57.0,221.0,221.0,89.0,53.0,88.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.27 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"2, Bluebell Way, Allington",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2016-04-18 16:10:05,owner-occupied,12.0,12.0,10091195333.0,Address Matched +152027257132009030515445331068702,"2, Orchard Close",Coxheath,,ME17 4HE,5271711568,D,D,61,64,Bungalow,Semi-Detached,2009-03-05,E07000110,E14000804,Kent,2009-03-05,marketed sale,55,57,323,304.0,4.0,54,3.8,66.0,33.0,489.0,478.0,92.0,92.0,63.22,Single,Y,NO DATA!,,,2106.0,65.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,0.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Partial double glazing,Poor,Poor,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Roof room(s), no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.5,0.0,N,natural,"2, Orchard Close, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2009-03-05 15:44:53,owner-occupied,,,200003713649.0,Address Matched +830903239142012090416502801120578,"26, The Weavers",,,ME16 0NZ,177631078,D,B,68,81,House,Detached,2012-09-03,E07000110,E14000804,Kent,2012-09-04,marketed sale,64,78,160,90.0,5.8,31,3.3,155.0,80.0,878.0,734.0,131.0,82.0,187.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,8.0,8.0,5.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 5% of fixed outlets,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"26, The Weavers",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1991-1995,2012-09-04 16:50:28,owner-occupied,20.0,1.0,200003694741.0,Address Matched +1562158189222017072418121613448563,"28, Button Lane",Bearsted,,ME15 8DW,6102803578,C,B,69,82,House,Detached,2017-07-24,E07000110,E14000700,Kent,2017-07-24,marketed sale,66,79,213,118.0,3.1,37,1.7,112.0,60.0,490.0,497.0,122.0,86.0,82.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,12.0,0.0,From main system,Good,Good,"Solid, limited insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 12% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"28, Button Lane, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1996-2002,2017-07-24 18:12:16,owner-occupied,,,200003691675.0,Address Matched +1559820609962017092816301982608033,"5, Wood Court",,,ME16 9DD,3886092578,C,B,76,90,House,End-Terrace,2017-05-10,E07000110,E14000804,Kent,2017-09-28,rental (social),77,90,150,43.0,1.8,26,0.6,68.0,51.0,288.0,290.0,102.0,66.0,68.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,67.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Very Good,Very Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 67% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"5, Wood Court",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2017-09-28 16:30:19,rental (social),,,10022900388.0,Address Matched +1315922369102015042912201036552318,Flat 2 The Old School,"92a, Melville Road",,ME15 7UT,4159365378,D,D,65,65,Flat,NO DATA!,2015-04-29,E07000110,E14000804,Kent,2015-04-29,new dwelling,69,69,323,323.0,1.7,55,1.7,24.0,24.0,267.0,267.0,185.0,185.0,31.0,standard tariff,,ground floor,,,,,NO DATA!,NO DATA!,,,,,0.0,"Electric immersion, standard tariff",Very Poor,Poor,Average thermal transmittance 0.29 W/m-¦K,Good,Good,Fully double glazed,Good,Good,Average thermal transmittance 0.27 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.17 W/m-¦K,Good,Good,"Room heaters, electric",Very Poor,Poor,Programmer and room thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"Flat 2 The Old School, 92a, Melville Road",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2015-04-29 12:20:10,unknown,1.0,1.0,10091194261.0,Address Matched +33428670962008101515241372928078,"44, Clifford Way",,,ME16 8GD,7704752568,B,B,83,85,Flat,End-Terrace,2008-10-12,E07000110,E14000804,Kent,2008-10-15,rental (private),83,84,134,124.0,1.3,22,1.3,56.0,30.0,178.0,181.0,63.0,63.0,61.43,Unknown,Y,3rd,N,4.0,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,14.0,0.0,From main system,Very Good,Very Good,(other premises below),,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Flat, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 14% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,heated corridor,0.0,2.31,0.0,N,natural,"44, Clifford Way",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2008-10-15 15:24:13,rental (private),,,10022896057.0,Address Matched +253417370102009040918291753910718,"27, Brunell Close",,,ME16 0YW,3165979568,B,B,82,82,House,Mid-Terrace,2009-04-09,E07000110,E14000804,Kent,2009-04-09,rental (private),80,80,122,122.0,2.5,20,2.5,62.0,62.0,307.0,307.0,122.0,122.0,122.31,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,6.0,6.0,100.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.43,0.0,N,natural,"27, Brunell Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2009-04-09 18:29:17,rental (private),,,10022895921.0,Address Matched +898041269962013031309362316128197,Harbourland House,Boxley Road,Boxley,ME14 3DN,9135606078,D,C,55,78,House,Detached,2013-03-12,E07000110,E14000700,Kent,2013-03-13,marketed sale,42,69,231,111.0,13.0,50,6.3,149.0,92.0,1941.0,1172.0,112.0,112.0,256.0,Unknown,Y,NODATA!,,,2106.0,95.0,double glazing installed before 2002,Normal,1.0,8.0,8.0,39.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Mostly double glazing,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, coal",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 39% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"Harbourland House, Boxley Road, Boxley",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2013-03-13 09:36:23,owner-occupied,23.0,9.0,200003673311.0,Address Matched +1357675169302015082614153137852368,"18, Sidney Street",,,ME16 8LJ,1324068378,D,B,64,87,House,Semi-Detached,2015-08-26,E07000110,E14000804,Kent,2015-08-26,marketed sale,58,85,228,70.0,4.7,40,1.5,100.0,67.0,756.0,473.0,211.0,79.0,117.0,Unknown,Y,NODATA!,,,2104.0,100.0,double glazing installed during or after 2002,More Than Typical,1.0,5.0,5.0,50.0,0.0,"From main system, no cylinder thermostat",Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"18, Sidney Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2015-08-26 14:15:31,owner-occupied,,,200003655639.0,Address Matched +801143596232012061317204407968508,3 Astley Terrace,Hastings Road,,ME15 7BF,9887529968,B,B,83,83,House,Semi-Detached,2012-06-13,E07000110,E14000700,Kent,2012-06-13,new dwelling,85,85,84,84.0,1.6,16,1.6,54.0,54.0,268.0,268.0,88.0,88.0,100.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,11.0,,From main system,Good,Good,Average thermal transmittance 0.12 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.27 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.37,,,NO DATA!,"3 Astley Terrace, Hastings Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2012-06-13 17:20:44,,11.0,11.0,10014313955.0,Address Matched +1779128292062020030415470288548090,"5, Old School Place",Headcorn,,TN27 9FZ,9810968678,B,A,85,97,House,Mid-Terrace,2020-03-04,E07000110,E14000700,Kent,2020-03-04,new dwelling,88,100,77,-13.0,1.0,14,-0.1,65.0,65.0,179.0,179.0,71.0,42.0,76.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.20 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and underfloor heating, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"5, Old School Place, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,NO DATA!,2020-03-04 15:47:02,unknown,20.0,20.0,10094443677.0,Address Matched +1718958539142019050819042160410638,"20, Cranborne Avenue",,,ME15 7EB,168534678,D,B,67,81,House,Detached,2019-05-07,E07000110,E14000700,Kent,2019-05-08,marketed sale,62,77,225,125.0,3.8,40,2.1,98.0,67.0,603.0,556.0,133.0,80.0,96.0,Unknown,Y,NODATA!,,,2106.0,90.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,55.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Mostly double glazing,Average,Average,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 55% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"20, Cranborne Avenue",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2019-05-08 19:04:21,owner-occupied,,,200003677468.0,Address Matched +8c767c41d884c32e618d596b41c6ec036eebc81550569a8b05bb89dcfa06daf5,68 Mayfair Avenue,,,ME15 6DS,10001628117,C,B,69,89,Bungalow,Mid-Terrace,2021-08-18,E07000110,E14000804,Kent,2021-08-18,rental,70,90,257,59.0,1.9,45,0.5,54.0,38.0,340.0,298.0,77.0,54.0,42.0,Single,Y,,,,,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,60.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 60% of fixed outlets,Good,Good,mains gas (not community),0.0,,,2.4,0.0,N,natural,68 Mayfair Avenue,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2021-08-18 18:47:56,Rented (social),5.0,,200003676933.0,Energy Assessor +922762389342013050100140608777408,"20, Mill Bank",Headcorn,,TN27 9RD,5345787078,D,B,57,82,House,Semi-Detached,2013-04-30,E07000110,E14000700,Kent,2013-05-01,marketed sale,49,79,217,85.0,11.0,42,4.4,141.0,95.0,1839.0,898.0,166.0,119.0,268.0,Single,Y,NODATA!,,,2106.0,50.0,double glazing installed before 2002,Normal,0.0,10.0,10.0,50.0,2.0,From main system,Average,Average,"Suspended, no insulation (assumed)",,,Partial double glazing,Poor,Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Average,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"20, Mill Bank, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,England and Wales: before 1900,2013-05-01 00:14:06,owner-occupied,16.0,8.0,200003698774.0,Address Matched +673773882952014060615500598040588,"36, West Street",Harrietsham,,ME17 1HX,5879289868,B,A,83,92,House,Detached,2014-02-05,E07000110,E14000700,Kent,2014-06-06,new dwelling,83,91,92,39.0,2.1,16,0.9,71.0,71.0,357.0,357.0,101.0,66.0,132.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.17 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.29 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"36, West Street, Harrietsham",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2014-06-06 15:50:05,unknown,14.0,14.0,200003702541.0,Address Matched +653002286352011071122052593990684,2 Bockingford Mill Cottages,Bockingford Lane,,ME15 6DP,6409638868,D,D,62,63,House,Enclosed Mid-Terrace,2011-07-11,E07000110,E14000804,Kent,2011-07-11,marketed sale,60,61,247,238.0,3.6,48,3.5,50.0,50.0,603.0,580.0,109.0,109.0,55.88,dual,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,88.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cob, as built",Average,Average,,,,"Pitched, no insulation",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 88% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,2.31,0.0,,natural,"2 Bockingford Mill Cottages, Bockingford Lane",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2011-07-11 22:05:25,owner-occupied,8.0,7.0,200003664208.0,Address Matched +1723503379222019052400574204478181,"15, The Quern",,,ME15 6FT,8090764678,D,B,66,89,House,Mid-Terrace,2019-05-23,E07000110,E14000804,Kent,2019-05-24,marketed sale,64,90,287,56.0,2.4,51,0.5,43.0,43.0,353.0,291.0,150.0,60.0,47.0,Unknown,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,83.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 83% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"15, The Quern",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2019-05-24 00:57:42,owner-occupied,,,200003666128.0,Address Matched +861852359202012120308420904320478,8 Price Court,Church Street,,ME14 1FL,9280353078,C,C,77,80,Flat,Mid-Terrace,2012-12-03,E07000110,E14000804,Kent,2012-12-03,rental (social),82,86,143,113.0,1.1,27,0.9,53.0,27.0,212.0,191.0,63.0,64.0,40.0,Unknown,Y,2nd,Y,,2106.0,0.0,single glazing,Normal,0.0,1.0,1.0,0.0,0.0,From main system,Good,Good,(other premises below),,,Single glazed,Very Poor,Very Poor,"Cavity wall, as built, insulated (assumed)",Very Good,Very Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,unheated corridor,6.0,,0.0,,natural,"8 Price Court, Church Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2012-12-03 08:42:09,rental (social),4.0,0.0,10014306415.0,Address Matched +1685474109062018121220145061538448,Flat 18 Coronet House,"11, Queen Anne Road",,ME14 1GD,4695091678,C,C,78,80,Flat,Mid-Terrace,2018-12-07,E07000110,E14000804,Kent,2018-12-12,rental (private),80,80,265,267.0,0.9,45,0.9,20.0,22.0,126.0,76.0,137.0,151.0,20.0,Unknown,N,1st,N,,2602.0,100.0,"double glazing, unknown install date",Normal,0.0,1.0,1.0,100.0,0.0,Electric instantaneous at point of use,Very Poor,Poor,(another dwelling below),NO DATA!,,Fully double glazed,Average,Average,"Solid brick, with internal insulation",Good,Good,,,,(another dwelling above),,,"Room heaters, electric",Very Poor,Poor,Appliance thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,unheated corridor,4.75,,,N,natural,"Flat 18 Coronet House, 11, Queen Anne Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1976-1982,2018-12-12 20:14:50,rental (private),,,10094441195.0,Address Matched +598560945312012061422165293920281,"6, Bourneside Terrace",Eyhorne Street,,ME17 1TN,2172534868,D,B,68,91,Bungalow,Semi-Detached,2012-06-14,E07000110,E14000700,Kent,2012-06-14,rental (social),69,92,202,27.0,2.2,39,0.4,34.0,34.0,362.0,323.0,117.0,63.0,58.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"6, Bourneside Terrace, Eyhorne Street",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2012-06-14 22:16:52,rental (social),6.0,6.0,200003722241.0,Address Matched +423016998452013111114174695079375,31 Crundale,Union Street,,ME14 1TX,3520851768,C,C,76,78,Flat,Mid-Terrace,2013-10-04,E07000110,E14000804,Kent,2013-11-11,none of the above,80,82,146,130.0,1.3,28,1.2,30.0,30.0,245.0,218.0,99.0,99.0,47.0,Single,Y,5th,N,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,2.0,2.0,100.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,4.3,,0.0,,natural,"31 Crundale, Union Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2013-11-11 14:17:46,rental (social),5.0,5.0,200003701448.0,Address Matched +209582140702009011411441150619048,"18, Cross Street",,,ME14 2SL,5794546568,D,D,61,63,House,Mid-Terrace,2009-01-14,E07000110,E14000804,Kent,2009-01-14,rental (private),55,56,333,325.0,3.8,56,3.7,61.0,32.0,541.0,547.0,80.0,80.0,68.08,Single,Y,NO DATA!,,,2106.0,33.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,12.0,2.0,From main system,Very Good,Very Good,"Suspended, no insulation (assumed)",,,Partial double glazing,Poor,Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 12% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.52,0.0,N,natural,"18, Cross Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2009-01-14 11:44:11,rental (private),,,200003702752.0,Address Matched +469394379922010041422502364648530,"1, Spurway",Bearsted,,ME14 4BN,3693784768,E,E,47,49,House,Semi-Detached,2010-04-14,E07000110,E14000700,Kent,2010-04-14,marketed sale,45,47,431,417.0,5.6,65,5.4,77.0,50.0,609.0,597.0,275.0,275.0,85.6,dual,Y,NO DATA!,,,2401.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,2.0,45.0,0.0,"Electric immersion, off-peak",Very Poor,Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,Portable electric heaters,,,"Pitched, 150 mm loft insulation",Good,Good,Electric storage heaters,Poor,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 45% of fixed outlets,Good,Good,electricity - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.27,0.0,N,natural,"1, Spurway, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2010-04-14 22:50:23,owner-occupied,,,200003692501.0,Address Matched +654680905052011071421061694990880,"16, The Beacons",Coxheath,,ME17 4DL,8094548868,C,C,71,71,Bungalow,Mid-Terrace,2011-07-14,E07000110,E14000804,Kent,2011-07-14,rental (social),74,74,212,207.0,1.7,41,1.7,37.0,25.0,314.0,316.0,70.0,70.0,42.12,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,2.0,2.0,50.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,2.06,0.0,,natural,"16, The Beacons, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2011-07-14 21:06:16,rental (social),6.0,3.0,200003712875.0,Address Matched +1783013187112020020708500429000961,Rufflers Oast,Lower Road,East Farleigh,ME15 0JN,9175798678,D,B,67,83,House,Semi-Detached,2020-02-07,E07000110,E14000804,Kent,2020-02-07,rental (private),64,81,235,111.0,3.0,41,1.4,81.0,59.0,499.0,443.0,114.0,82.0,72.0,Single,Y,NODATA!,,,2107.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,64.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, with internal insulation",Good,Good,,,,"Pitched, insulated (assumed)",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 64% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"Rufflers Oast, Lower Road, East Farleigh",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1991-1995,2020-02-07 08:50:04,rental (private),,,200003718508.0,Address Matched +8ca45b9b84b17164df04b159daa27200663e3486d00a5168caa66dc9d91f5c07,13 Broadclough Way,Maidstone,,ME17 3UX,10001378490,B,A,84,94,House,Detached,2021-08-19,E07000110,E14000700,Kent,2021-08-19,new dwelling,85,95,84,19.0,1.7,15,0.4,82.0,82.0,255.0,256.0,95.0,53.0,112.0,standard tariff,,,N,,,100.0,,,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.12 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.28 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.12 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.535,,,,"13 Broadclough Way, Maidstone",Maidstone,Faversham and Mid Kent,KENT,2021,2021-08-19 10:34:26,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,10.0,,10095449050.0,Address Matched +182458982022020080410311283878330,Flat 3,"35, Tonbridge Road",,ME16 8SA,3818863568,C,C,75,77,Flat,Mid-Terrace,2020-08-03,E07000110,E14000804,Kent,2020-08-04,rental (private),80,82,260,230.0,0.9,46,0.8,30.0,30.0,147.0,128.0,90.0,90.0,20.0,Unknown,Y,1st,N,,2305.0,100.0,"double glazing, unknown install date",Normal,0.0,1.0,1.0,67.0,0.0,Community scheme,Good,Good,(another dwelling below),NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,(another dwelling above),,,Community scheme,Good,Good,"Flat rate charging, programmer and TRVs",Average,Average,Low energy lighting in 67% of fixed outlets,Good,Good,mains gas (community),0.0,heated corridor,,,,N,natural,"Flat 3, 35, Tonbridge Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2020-08-04 10:31:12,rental (private),,,200003668545.0,Address Matched +275116103132009072316434130268202,8 Tovil Green Court,Tovil Green Lane,Tovil,ME15 6NE,210221668,B,B,81,82,Flat,NO DATA!,2009-07-22,E07000110,E14000804,Kent,2009-07-23,new dwelling,83,84,137,132.0,1.2,22,1.2,44.0,32.0,203.0,204.0,91.0,91.0,55.2,standard tariff,,ground floor,,,,,NO DATA!,NO DATA!,,,,5.0,,From main system,Good,Very Good,Average thermal transmittance 0.21 W/m?K,Good,Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.31 W/m?K,Good,Good,,,,(another dwelling above),,,Community scheme,Good,Very Good,"Unit charging, programmer and TRVs",Good,Good,Low energy lighting in 63% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.95,,,NO DATA!,"8 Tovil Green Court, Tovil Green Lane, Tovil",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2009-07-23 16:43:41,,8.0,5.0,10014306957.0,Address Matched +411780270342009121116245971019598,"64, Fennel Close",,,ME16 0FG,9363870768,C,C,74,78,House,Mid-Terrace,2009-12-11,E07000110,E14000804,Kent,2009-12-11,marketed sale,71,75,207,176.0,2.6,34,2.2,74.0,40.0,355.0,332.0,118.0,101.0,75.19,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,7.0,7.0,17.0,0.0,From main system,Good,Good,"Solid, limited insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 17% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.3,0.0,N,natural,"64, Fennel Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2009-12-11 16:24:59,owner-occupied,,,200003722434.0,Address Matched +176674474052008110618334609089159,"13, Marian Square",Staplehurst,,TN12 0SQ,1964493568,D,C,55,73,House,Detached,2008-11-06,E07000110,E14000804,Kent,2008-11-06,marketed sale,48,70,318,184.0,6.8,53,3.9,89.0,64.0,770.0,456.0,164.0,118.0,127.4,dual,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,7.0,7.0,61.0,0.0,From main system,Average,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 75mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Average,Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 61% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.3,0.0,N,natural,"13, Marian Square, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1976-1982,2008-11-06 18:33:46,owner-occupied,,,200003678720.0,Address Matched +369102220222009101315371327648871,"16, Farningham Close",,,ME14 5QX,7288287668,F,E,29,41,House,Mid-Terrace,2009-09-24,E07000110,E14000804,Kent,2009-10-13,marketed sale,50,59,443,352.0,4.0,67,3.2,57.0,30.0,714.0,529.0,276.0,276.0,59.44,Single,Y,NO DATA!,,,2705.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,7.0,0.0,"Electric immersion, standard tariff",Very Poor,Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,Electric ceiling heating,Very Poor,Poor,Temperature zone control,Average,Average,Low energy lighting in 7% of fixed outlets,Very Poor,Very Poor,electricity - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.37,0.0,N,natural,"16, Farningham Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2009-10-13 15:37:13,owner-occupied,,,200003671985.0,Address Matched +741206599922019121013234514508561,"14, Mercer Drive",Harrietsham,,ME17 1AY,6125984968,D,C,64,79,Bungalow,Detached,2019-12-10,E07000110,E14000700,Kent,2019-12-10,rental (private),57,74,247,140.0,4.5,44,2.6,86.0,86.0,733.0,625.0,134.0,81.0,102.0,Unknown,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,5.0,5.0,82.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Average,Average,"Room heaters, mains gas",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 82% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"14, Mercer Drive, Harrietsham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2019-12-10 13:23:45,rental (private),,,200003703876.0,Address Matched +138665039102013123023252058077608,"47, Mynn Crescent",Bearsted,,ME14 4AR,4152730568,D,B,67,87,House,Semi-Detached,2013-12-30,E07000110,E14000700,Kent,2013-12-30,none of the above,65,88,191,55.0,3.4,37,1.0,77.0,52.0,598.0,394.0,93.0,66.0,92.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,4.0,4.0,53.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 53% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"47, Mynn Crescent, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2013-12-30 23:25:20,owner-occupied,17.0,9.0,200003693512.0,Address Matched +8cb5f97e547406f19fac61c18d2bc2056e26d8f4a749c4f73ddf34a085a5fa12,8 THE CRESCENT,INVICTA PARK,,ME14 2NP,10001578627,D,C,65,78,House,Semi-Detached,2021-06-22,E07000110,E14000804,Kent,2021-07-06,rental,54,68,219,131.0,4.9,45,3.2,82.0,82.0,696.0,643.0,138.0,84.0,108.0,Single,Y,,,,,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,"Room heaters, smokeless fuel",,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.4,0.0,N,natural,"8 THE CRESCENT, INVICTA PARK",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2021-07-06 15:50:17,Rented (private),13.0,,200003724103.0,Energy Assessor +8cba25bd6b5dd6f2b4ea1410ae6a9c0d6cea4206b74af21d8d77eb74b5d5efac,36 BECKSBOURNE CLOSE,PENENDEN HEATH,,ME14 2ED,10001492338,D,B,55,83,House,Mid-Terrace,2021-08-06,E07000110,E14000804,Kent,2021-08-06,marketed sale,46,79,294,100.0,7.1,52,2.4,178.0,104.0,1076.0,598.0,180.0,74.0,136.0,dual,Y,,,,,100.0,double glazing installed during or after 2002,Normal,0.0,6.0,6.0,29.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 29% of fixed outlets,Average,Average,mains gas (not community),0.0,,,2.32,0.0,N,natural,"36 BECKSBOURNE CLOSE, PENENDEN HEATH",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2021-08-06 14:33:56,Owner-occupied,14.0,,200003706521.0,Energy Assessor +1419776999712016120816244999069147,"22, Bunyard Way",Allington,,ME16 0BD,1733992478,B,A,85,95,House,Semi-Detached,2016-12-08,E07000110,E14000804,Kent,2016-12-08,new dwelling,87,97,76,8.0,1.4,13,0.2,66.0,66.0,230.0,231.0,107.0,57.0,108.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.27 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.14 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"22, Bunyard Way, Allington",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2016-12-08 16:24:49,owner-occupied,14.0,14.0,10091195405.0,Address Matched +1735596855212019071117542095910461,"17, Butcher Close",Staplehurst,,TN12 0TJ,4174555678,D,B,67,90,House,Mid-Terrace,2019-07-11,E07000110,E14000804,Kent,2019-07-11,marketed sale,50,75,360,153.0,3.7,61,1.6,54.0,54.0,530.0,364.0,173.0,96.0,61.0,dual,N,NODATA!,,,2401.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,100.0,0.0,"Electric immersion, off-peak",Average,Poor,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Timber frame, as built, insulated (assumed)",Good,Good,Portable electric heaters (assumed),,,"Pitched, limited insulation (assumed)",Poor,Poor,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,NO DATA!,,,,N,natural,"17, Butcher Close, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1976-1982,2019-07-11 17:54:20,owner-occupied,,,200003678845.0,Address Matched +8cbe84cf2e7146423e9b7bfe3403c0bcaa6417f6065073420ac73b77cf45729d,4 DAWSONS COTTAGES,THE GREEN,WEST FARLEIGH,ME15 0NN,7885627668,E,C,45,77,House,End-Terrace,2021-07-21,E07000110,E14000804,Kent,2021-07-22,marketed sale,41,72,288,102.0,5.8,68,2.4,69.0,69.0,817.0,467.0,115.0,78.0,85.0,Unknown,Y,,,,,80.0,double glazing installed during or after 2002,Normal,1.0,4.0,4.0,100.0,0.0,From main system,Average,Average,"Suspended, no insulation (assumed)",,,Mostly double glazing,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, oil",Average,Average,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,oil (not community),0.0,,,2.4,0.0,N,natural,"4 DAWSONS COTTAGES, THE GREEN, WEST FARLEIGH",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2021-07-22 22:55:29,Owner-occupied,16.0,,200003663925.0,Energy Assessor +920107754312018110714002596089500,"12, Horwood Way",Harrietsham,,ME17 1FH,5095467078,B,B,87,88,House,Detached,2018-11-07,E07000110,E14000700,Kent,2018-11-07,ECO assessment,85,87,78,64.0,1.2,14,1.0,63.0,63.0,344.0,344.0,106.0,70.0,83.0,Unknown,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,6.0,6.0,100.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"12, Horwood Way, Harrietsham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2007 onwards,2018-11-07 14:00:25,owner-occupied,,,10014314914.0,Address Matched +405401330642009113022301873017008,"86, The Cockpit",Marden,,TN12 9TQ,3602830768,C,C,75,79,Flat,Semi-Detached,2009-11-30,E07000110,E14000804,Kent,2009-11-30,rental (social),72,76,246,206.0,2.0,41,1.6,33.0,24.0,324.0,281.0,74.0,74.0,47.54,Single,Y,2nd,Y,3.0,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,60.0,0.0,From main system,Very Good,Very Good,(other premises below),,,Fully double glazed,Average,Average,"Timber frame, as built, partial insulation (assumed)",Average,Average,,,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 60% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,unheated corridor,6.2,2.4,0.0,N,natural,"86, The Cockpit, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1967-1975,2009-11-30 22:30:18,rental (social),,,200003726952.0,Address Matched +786918329342012051014032399829708,"6, Edmund Close",Barming,,ME16 9PS,7357428968,C,C,74,77,Flat,Detached,2012-05-10,E07000110,E14000804,Kent,2012-05-10,rental (social),76,81,164,134.0,1.6,31,1.3,32.0,32.0,303.0,252.0,68.0,69.0,51.0,Single,Y,Ground,N,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,5.44,,0.0,,natural,"6, Edmund Close, Barming",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1991-1995,2012-05-10 14:03:23,rental (social),6.0,6.0,200003699223.0,Address Matched +597224069722015051221200134908915,"11, Oxford Road",,,ME15 8DA,1364624868,D,B,67,86,House,Semi-Detached,2015-04-30,E07000110,E14000700,Kent,2015-05-12,rental (social),63,84,224,84.0,3.6,39,1.4,107.0,63.0,626.0,470.0,121.0,72.0,90.0,dual,Y,NODATA!,,,2107.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,30.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 30% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"11, Oxford Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2015-05-12 21:20:01,rental (social),,,200003713242.0,Address Matched +1764869969802019111116295967719398,Flat 82 Guinevere Point,Waterhouse Avenue,,ME14 2FJ,7883767678,B,B,84,84,Flat,End-Terrace,2019-11-11,E07000110,E14000804,Kent,2019-11-11,new dwelling,88,88,79,79.0,1.1,14,1.1,59.0,59.0,189.0,189.0,70.0,70.0,77.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.18 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.17 W/m-¦K,Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Flat 82 Guinevere Point, Waterhouse Avenue",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2019-11-11 16:29:59,unknown,10.0,10.0,10094440190.0,Address Matched +1774172674652019122015553393219968,23 Wrens Cross,Upper Stone Street,,ME15 6YU,9829438678,C,C,76,76,Flat,Semi-Detached,2019-12-20,E07000110,E14000804,Kent,2019-12-20,new dwelling,82,82,138,138.0,1.2,23,1.2,43.0,43.0,229.0,229.0,252.0,252.0,53.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,"Electric immersion, standard tariff",Very Poor,Poor,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.22 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,"Room heaters, electric",Very Poor,Poor,Programmer and appliance thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"23 Wrens Cross, Upper Stone Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2019-12-20 15:55:33,unknown,24.0,24.0,10094440957.0,Address Matched +1685692413452018121317080699989167,"First Floor Flat, Allingham Oast",Summerhill Road,Marden,TN12 9DB,1735391678,D,D,57,66,Flat,Detached,2018-12-12,E07000110,E14000804,Kent,2018-12-13,rental (private),30,42,291,222.0,7.9,85,5.9,74.0,74.0,830.0,611.0,131.0,131.0,93.0,Unknown,N,1st,Y,,2308.0,100.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,93.0,0.0,Community scheme,Good,Poor,(another dwelling below),NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, insulated",Average,Average,Community scheme,Good,Poor,"Charging system linked to use of community heating, room thermostat only",Poor,Poor,Low energy lighting in 93% of fixed outlets,Very Good,Very Good,oil (community),0.0,no corridor,,,,N,natural,"First Floor Flat, Allingham Oast, Summerhill Road, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1950-1966,2018-12-13 17:08:06,rental (private),,,10014312401.0,Address Matched +8cdfc874009171c39ad92b93054445d49f931889493c17e5f65db1ebd05c647e,8 ABBERLEY PARK,SITTINGBOURNE ROAD,,ME14 5GD,10001569424,C,B,78,88,House,Mid-Terrace,2021-07-07,E07000110,E14000804,Kent,2021-07-07,marketed sale,77,86,122,61.0,2.5,22,1.3,88.0,88.0,361.0,361.0,154.0,121.0,115.0,Unknown,Y,,,,,100.0,double glazing installed during or after 2002,Normal,1.0,6.0,6.0,100.0,0.0,From main system,Good,Good,"Suspended, insulated (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.3,0.0,N,natural,"8 ABBERLEY PARK, SITTINGBOURNE ROAD",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007-2011,2021-07-07 22:09:08,Owner-occupied,13.0,,10022896987.0,Energy Assessor +1427286997632016032315304065278108,"12, Lambert Drive",,,ME15 8WN,9835153478,B,B,81,81,Flat,NO DATA!,2016-03-23,E07000110,E14000700,Kent,2016-03-23,new dwelling,86,86,113,113.0,1.0,20,1.0,39.0,39.0,210.0,210.0,70.0,70.0,51.0,standard tariff,,ground floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.26 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.14 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"12, Lambert Drive",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2016-03-23 15:30:40,unknown,1.0,1.0,10091194527.0,Address Matched +8ceec31b8180fe35cc5b91282285a9a2039e18098bbc8622804bc8cc49ac3757,27 Westwood Road,,,ME15 6BG,10001449937,E,C,51,76,House,Detached,2021-08-16,E07000110,E14000804,Kent,2021-08-16,marketed sale,43,69,356,170.0,6.4,63,3.1,143.0,78.0,991.0,710.0,154.0,71.0,101.0,Single,Y,,,,,100.0,double glazing installed before 2002,Normal,2.0,6.0,6.0,18.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,"Room heaters, mains gas",,,"Pitched, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 18% of fixed outlets,Poor,Poor,mains gas (not community),0.0,,,2.23,0.0,N,natural,27 Westwood Road,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2021-08-16 15:51:59,Owner-occupied,11.0,,200003676160.0,Energy Assessor +1135372189402014050613511926240798,Kingsbrooke,Cranbrook Road,Staplehurst,TN12 0EU,3424982278,D,C,59,75,House,Detached,2014-05-01,E07000110,E14000804,Kent,2014-05-06,marketed sale,52,70,208,123.0,9.0,40,5.5,176.0,88.0,1627.0,1251.0,132.0,133.0,225.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,More Than Typical,4.0,9.0,9.0,0.0,2.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"Kingsbrooke, Cranbrook Road, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1900-1929,2014-05-06 13:51:19,owner-occupied,51.0,0.0,200003676834.0,Address Matched +1554693059602017062311583756232578,Flat 9,"34, Fullingpits Avenue",,ME16 9DZ,5618352578,B,B,84,84,Flat,Detached,2017-06-23,E07000110,E14000804,Kent,2017-06-23,new dwelling,88,88,80,80.0,0.9,14,0.9,50.0,50.0,159.0,159.0,75.0,75.0,64.0,standard tariff,,top floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.18 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Flat 9, 34, Fullingpits Avenue",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2017-06-23 11:58:37,unknown,20.0,20.0,10093303639.0,Address Matched +453525573552016042509190497260673,"67, Bower Lane",,,ME16 8EH,6311373768,D,A,58,92,House,Mid-Terrace,2016-04-22,E07000110,E14000804,Kent,2016-04-25,marketed sale,38,73,472,164.0,4.4,86,1.6,51.0,51.0,388.0,259.0,338.0,78.0,52.0,Unknown,N,NODATA!,,,2401.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,75.0,0.0,"Electric immersion, off-peak",Very Poor,Poor,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Timber frame, with additional insulation",Good,Good,"Room heaters, anthracite",,,"Pitched, 75 mm loft insulation",Average,Average,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,electricity (not community),0.0,NO DATA!,,2.4,,N,natural,"67, Bower Lane",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2016-04-25 09:19:04,owner-occupied,,,200003666276.0,Address Matched +1665778149042018100112354361080798,"77, York Road",,,ME15 7QU,7038740678,D,B,63,86,House,Semi-Detached,2018-10-01,E07000110,E14000700,Kent,2018-10-01,ECO assessment,57,85,275,84.0,3.7,49,1.2,76.0,54.0,639.0,399.0,104.0,69.0,77.0,Unknown,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,60.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 60% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"77, York Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2018-10-01 12:35:43,owner-occupied,,,200003715707.0,Address Matched +1250515309242014121709482038149568,Flat 10,Romney Court,25 Romney Place,ME15 6LG,3208101378,B,B,86,86,Flat,NO DATA!,2014-12-16,E07000110,E14000804,Kent,2014-12-17,new dwelling,78,78,195,195.0,1.4,34,1.4,35.0,35.0,67.0,67.0,102.0,102.0,41.0,off-peak 7 hour,,mid floor,,,,,NO DATA!,NO DATA!,,,,,0.0,"Electric immersion, off-peak",Average,Very Poor,(other premises below),,,Fully double glazed,Average,Average,Average thermal transmittance 0.26 W/m-¦K,Good,Good,,,,Average thermal transmittance 0.18 W/m-¦K,Good,Good,Electric storage heaters,Average,Very Poor,Celect control,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"Flat 10, Romney Court, 25 Romney Place",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2014-12-17 09:48:20,unknown,15.0,15.0,10091193902.0,Address Matched +529991619102010082314253170902178,The Flat,3 The Parade,Staplehurst,TN12 0LA,2132219768,E,D,40,56,Maisonette,NO DATA!,2010-08-23,E07000110,E14000804,Kent,2010-08-23,rental (private),45,62,391,267.0,5.8,63,3.9,68.0,53.0,872.0,551.0,346.0,346.0,91.44,Single,Y,1st,Y,3.0,2601.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,1.0,70.0,0.0,"Electric immersion, standard tariff",Very Poor,Poor,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,Portable electric heaters,,,"Pitched, 50 mm loft insulation",Poor,Poor,"Room heaters, mains gas",Average,Average,No thermostatic control of room temperature,Poor,Poor,Low energy lighting in 70% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.39,0.0,N,natural,"The Flat, 3 The Parade, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1950-1966,2010-08-23 14:25:31,rental (private),,,10034134547.0,Address Matched +1249821126852014122214453799249830,"5, Dargate Close",,,ME16 0TH,8078690378,D,B,65,87,Bungalow,Semi-Detached,2014-12-22,E07000110,E14000804,Kent,2014-12-22,assessment for green deal,62,87,283,70.0,2.5,50,0.7,34.0,34.0,421.0,348.0,147.0,61.0,50.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 270 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"5, Dargate Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2014-12-22 14:45:37,owner-occupied,,,200003662179.0,Address Matched +1461440394212016071119234999960647,"33, Melville Road",,,ME15 7UY,6759495478,D,B,57,84,House,Mid-Terrace,2016-07-11,E07000110,E14000804,Kent,2016-07-11,marketed sale,49,81,316,103.0,5.1,56,1.7,67.0,67.0,944.0,518.0,125.0,73.0,91.0,Single,Y,NODATA!,,,2107.0,90.0,double glazing installed before 2002,Normal,0.0,6.0,6.0,88.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Mostly double glazing,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 350 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 88% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,1.99,,N,natural,"33, Melville Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2016-07-11 19:23:49,owner-occupied,,,200003696083.0,Address Matched +8d242260641c7fd4a0dcd1b12d860d68db3980764fe997220dbe03fffb4b1a47,16 ELLIS FIELD,OTHAM,,ME15 8YL,10001380996,B,A,85,97,House,Semi-Detached,2021-08-31,E07000110,E14000804,Kent,2021-08-31,new dwelling,88,101,78,-18.0,1.0,14,-0.2,65.0,65.0,179.0,179.0,65.0,40.0,71.0,standard tariff,,,N,,,100.0,,,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.18 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.39,,,,"16 ELLIS FIELD, OTHAM",Maidstone,Maidstone and The Weald,OTHAM,2021,2021-08-31 08:33:15,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,11.0,,10094440516.0,Address Matched +8d2c60c98e7b32d1562bfdcf4cd7cb6f2e607c581b8cedd7cc5c60eeffdacd5e,1B JUDGES HOUSE,WRENS CROSS,UPPER STONE STREET,ME15 6YU,10001390524,C,B,73,86,House,End-Terrace,2021-07-08,E07000110,E14000804,Kent,2021-07-08,new dwelling,72,84,181,88.0,2.4,32,1.2,63.0,63.0,400.0,400.0,85.0,56.0,75.0,standard tariff,,,N,,,0.0,,,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.19 W/m-¦K,Very Good,Very Good,Single glazed,Poor,Poor,Average thermal transmittance 0.25 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.12 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.76,,,,"1B JUDGES HOUSE, WRENS CROSS, UPPER STONE STREET",Maidstone,Maidstone and The Weald,MAIDSTONE,2020,2021-07-08 16:02:10,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,15.0,,10094444310.0,Energy Assessor +761850349742012031516410599629158,"3, Chestnut Close",,,ME15 9ZS,4795646968,B,B,84,84,House,Mid-Terrace,2012-03-15,E07000110,E14000700,Kent,2012-03-15,new dwelling,88,88,76,73.0,1.1,14,1.1,60.0,48.0,192.0,193.0,82.0,82.0,77.76,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,9.0,,From main system,Good,Good,Average thermal transmittance 0.10 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.19 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,,,NO DATA!,"3, Chestnut Close",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2012-03-15 16:41:05,,12.0,9.0,10014313578.0,Address Matched +637745729042011060417064689790878,"20, Lushington Road",,,ME14 2QS,50927868,D,C,60,71,House,Semi-Detached,2011-06-03,E07000110,E14000804,Kent,2011-06-04,marketed sale,57,72,279,184.0,3.6,54,2.4,41.0,41.0,555.0,386.0,142.0,102.0,67.72,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,89.0,0.0,From main system,Average,Average,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Average,Programmer and room thermostat,Average,Average,Low energy lighting in 89% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,2.39,0.0,,natural,"20, Lushington Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2011-06-04 17:06:46,owner-occupied,9.0,8.0,200003670921.0,Address Matched +8d34dba5bc75891af13d9e170d9f1c24906846dbd8efeebea07f629cbf3dd8f3,FLAT 2,SHERINGHAM HOUSE,OWLETTS CLOSE,ME15 7TP,10001693909,E,C,52,72,Flat,Semi-Detached,2021-06-29,E07000110,E14000700,Kent,2021-07-01,ECO assessment,50,76,442,209.0,3.1,77,1.5,75.0,38.0,612.0,315.0,85.0,71.0,40.0,Single,Y,00,N,,,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,0.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Average,Average,"Room heaters, electric",,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,unheated corridor,8.5,2.79,0.0,N,natural,"FLAT 2, SHERINGHAM HOUSE, OWLETTS CLOSE",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2021-07-01 17:30:42,Rented (social),8.0,,200003714109.0,Energy Assessor +646088789202011062318443881792378,"26, Ravens Dane Close",Downswood,,ME15 8XL,8205787868,C,C,75,78,Maisonette,NO DATA!,2011-06-23,E07000110,E14000700,Kent,2011-06-23,marketed sale,62,65,363,335.0,2.3,64,2.1,41.0,23.0,188.0,164.0,86.0,86.0,36.2,dual,N,Ground,N,,2401.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,25.0,0.0,"Electric immersion, off-peak",Average,Very Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,Portable electric heaters (assumed),,,(another dwelling above),,,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 25% of fixed outlets,Average,Average,electricity (not community),0.0,no corridor,,2.3,0.0,,natural,"26, Ravens Dane Close, Downswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2011-06-23 18:44:38,owner-occupied,4.0,1.0,200003691615.0,Address Matched +447921997032010030222514792068308,"28, St. Lukes Road",,,ME14 5AW,9862333768,F,E,34,53,House,Semi-Detached,2010-03-02,E07000110,E14000804,Kent,2010-03-02,marketed sale,29,45,498,335.0,12.0,84,7.8,130.0,73.0,1693.0,1174.0,201.0,145.0,119.89,Unknown,Y,NO DATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,1.0,7.0,6.0,23.0,1.0,From main system,Average,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Sandstone, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, mains gas",,,"Pitched, no insulation",Very Poor,Very Poor,"Boiler and radiators, mains gas",Average,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 23% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.56,0.0,N,natural,"28, St. Lukes Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2010-03-02 22:51:47,owner-occupied,,,200003705972.0,Address Matched +176416310832008102413320441268494,"8, Milford Close",,,ME16 0EY,1441413568,D,D,57,62,House,Detached,2008-10-24,E07000110,E14000804,Kent,2008-10-24,rental (private),52,57,293,262.0,5.9,49,5.3,89.0,55.0,662.0,608.0,165.0,158.0,139.52,Single,Y,NO DATA!,,,2503.0,100.0,double glazing installed during or after 2002,Normal,0.0,6.0,6.0,38.0,1.0,"From main system, no cylinderstat",Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 100 mm loft insulation",Average,Average,"Warm air, mains gas",Good,Good,Room thermostat only,Poor,Poor,Low energy lighting in 38% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.3,0.0,N,natural,"8, Milford Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2008-10-24 13:32:04,rental (private),,,200003659076.0,Address Matched +799361983552018122112333991289292,"12, Keele Way",,,ME15 9WW,2209319968,C,B,78,88,House,Mid-Terrace,2018-10-24,E07000110,E14000700,Kent,2018-12-21,rental (social),78,87,130,67.0,2.1,23,1.1,67.0,67.0,371.0,371.0,82.0,82.0,93.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,100.0,0.0,"From main system, plus solar",Very Good,Very Good,"Solid, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Very Good,Very Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,Y,natural,"12, Keele Way",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2007 onwards,2018-12-21 12:33:39,rental (social),,,10014311586.0,Address Matched +305356990962009061523414783858921,"6, Westwood Road",,,ME15 6BB,2850933668,D,C,62,69,House,Detached,2009-06-15,E07000110,E14000804,Kent,2009-06-15,marketed sale,64,71,252,206.0,4.6,36,3.7,92.0,60.0,705.0,601.0,124.0,107.0,142.0,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,7.0,7.0,47.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,"Room heaters, wood logs",,,"Pitched, 75mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 47% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.29,0.0,N,natural,"6, Westwood Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2009-06-15 23:41:47,owner-occupied,,,200003676135.0,Address Matched +549708119022010100621141590368290,"25, Yew Tree Close",,,ME5 8XN,9979150868,C,B,74,83,House,Mid-Terrace,2010-10-06,E07000110,E14000700,Kent,2010-10-06,marketed sale,71,81,209,140.0,2.5,35,1.7,66.0,38.0,359.0,267.0,123.0,96.0,73.0,Single,Y,NO DATA!,,,2102.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,25.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, partial insulation (assumed)",Average,Average,,,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,Low energy lighting in 25% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,0.0,N,natural,"25, Yew Tree Close",Maidstone,Faversham and Mid Kent,CHATHAM,England and Wales: 1976-1982,2010-10-06 21:14:15,owner-occupied,,,200003676756.0,Address Matched +8d56577c1c4bdf9c3de56cc923d32a578b081bbb94139ab828119ecaab6c770b,56 Curzon Road,,,ME14 5BB,10001611353,D,B,60,86,House,End-Terrace,2021-08-25,E07000110,E14000804,Kent,2021-08-27,marketed sale,53,84,280,77.0,4.4,49,1.3,132.0,72.0,728.0,410.0,90.0,63.0,90.0,Single,Y,,,,,100.0,double glazing installed before 2002,Normal,1.0,4.0,4.0,18.0,0.0,From main system,Good,Good,"To unheated space, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, mains gas",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 18% of fixed outlets,Poor,Poor,mains gas (not community),0.0,,,2.53,0.0,N,natural,56 Curzon Road,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2021-08-27 15:03:59,Owner-occupied,11.0,,200003705316.0,Energy Assessor +8d529f434dad52126441394cad2f437a3f0e2ba9cc51a56d0cfb0355b870255e,21,Albertine Road,Langley,ME17 3UP,10001410754,B,A,84,95,House,End-Terrace,2021-09-09,E07000110,E14000700,Kent,2021-09-09,new dwelling,86,97,90,9.0,1.3,16,0.2,74.0,74.0,236.0,236.0,69.0,42.0,86.0,standard tariff,,,N,,,100.0,,,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.39,,,,"21, Albertine Road, Langley",Maidstone,Faversham and Mid Kent,Maidstone,2021,2021-09-09 08:28:55,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,15.0,,10095448305.0,Address Matched +1709276391512019032717330796210967,Flat 1,Cornwallis House,Pudding Lane,ME14 1NY,9748163678,D,D,63,63,Maisonette,Detached,2019-02-21,E07000110,E14000804,Kent,2019-03-27,new dwelling,67,67,338,338.0,1.6,57,1.6,27.0,27.0,368.0,368.0,139.0,139.0,29.0,standard tariff,,ground floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,Electric instantaneous at point of use,Very Poor,Very Poor,Average thermal transmittance 0.52 W/m-¦K,Poor,Poor,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.27 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.14 W/m-¦K,Very Good,Very Good,"Room heaters, electric",Very Poor,Poor,Programmer and appliance thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"Flat 1, Cornwallis House, Pudding Lane",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2019-03-27 17:33:07,owner-occupied,8.0,8.0,, +1161776753552014062023504097240826,"11, Jenkins Drive",,,ME15 9LG,8629374278,C,B,70,88,Bungalow,Semi-Detached,2014-06-20,E07000110,E14000700,Kent,2014-06-20,rental (social),71,90,188,43.0,2.1,36,0.5,62.0,37.0,405.0,354.0,80.0,57.0,58.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,33.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 33% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"11, Jenkins Drive",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2014-06-20 23:50:40,rental (social),6.0,2.0,200003682459.0,Address Matched +873512389262013011815111524728539,"1, Howley Way",,,ME15 6ZU,3268834078,B,B,83,83,House,End-Terrace,2011-11-22,E07000110,E14000804,Kent,2013-01-18,rental (social) - this is for backwards compatibility only and should not be used,86,86,82,82.0,1.4,15,1.4,53.0,53.0,244.0,244.0,95.0,95.0,89.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.14 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.20 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.09 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"1, Howley Way",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2013-01-18 15:11:15,NO DATA!,0.0,0.0,10014313848.0,Address Matched +548781849302010100514285283000658,"8, Lower Fant Road",,,ME16 8EA,2306640868,D,D,58,58,House,End-Terrace,2010-10-05,E07000110,E14000804,Kent,2010-10-05,marketed sale,51,51,383,380.0,4.0,64,4.0,48.0,37.0,659.0,662.0,87.0,87.0,62.3,dual,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,3.0,3.0,70.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 70% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.44,0.0,N,natural,"8, Lower Fant Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2010-10-05 14:28:52,owner-occupied,,,200003668372.0,Address Matched +1111042929262014032108002521508144,"25, Bell Road",,,ME15 9ED,4240221278,C,B,76,89,House,End-Terrace,2014-03-20,E07000110,E14000700,Kent,2014-03-21,rental (social),77,90,125,44.0,2.2,24,0.8,73.0,58.0,376.0,355.0,126.0,84.0,93.0,Unknown,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,75.0,0.0,From main system,Good,Good,"Suspended, insulated (assumed)",,,Fully double glazed,Good,Good,"Timber frame, as built, insulated (assumed)",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"25, Bell Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2003-2006,2014-03-21 08:00:25,rental (social),8.0,6.0,10022896388.0,Address Matched +216534880042009012617263355612568,"18, Quested Way",Harrietsham,,ME17 1JJ,5686568,D,C,60,75,Bungalow,Semi-Detached,2009-01-26,E07000110,E14000700,Kent,2009-01-26,marketed sale,53,71,322,201.0,4.5,54,2.8,72.0,40.0,606.0,400.0,109.0,88.0,83.23,Single,Y,NO DATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,20.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Poor,Poor,Low energy lighting in 20% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.37,0.0,N,natural,"18, Quested Way, Harrietsham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2009-01-26 17:26:33,owner-occupied,,,200003702641.0,Address Matched +1450535319802016061411364543569148,Cormorant,Lords Wood Close,,ME5 8JR,4800715478,E,D,50,65,Bungalow,Detached,2016-06-14,E07000110,E14000700,Kent,2016-06-14,marketed sale,42,55,210,137.0,8.8,55,6.2,83.0,83.0,1264.0,1132.0,204.0,66.0,160.0,Single,N,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,6.0,6.0,100.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, oil",Average,Average,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,oil (not community),0.0,NO DATA!,,2.4,,N,natural,"Cormorant, Lords Wood Close",Maidstone,Faversham and Mid Kent,CHATHAM,England and Wales: 1950-1966,2016-06-14 11:36:45,owner-occupied,,,200003724713.0,Address Matched +421169079032010011416441831968306,1 Oak Mews,Bicknor Road,,ME15 9PS,7681341768,D,D,61,62,Flat,Semi-Detached,2010-01-14,E07000110,E14000700,Kent,2010-01-14,new dwelling,73,73,259,253.0,1.9,39,1.9,45.0,27.0,235.0,243.0,235.0,235.0,48.72,standard tariff,,ground floor,,,2605.0,,NO DATA!,NO DATA!,,,,,0.0,"Electric immersion, standard tariff",Very Poor,Poor,Average thermal transmittance 0.19 W/m?K,Very Good,Very Good,Fully double glazed,Good,Good,Average thermal transmittance 0.30 W/m?K,Very Good,Very Good,,,,(other premises above),,,"Room heaters, electric",Very Poor,Poor,Programmer and room thermostats,Good,Good,Low energy lighting in 33% of fixed outlets,Average,Average,"Electricity: electricity, unspecified tariff",0.0,NO DATA!,,2.4,,,NO DATA!,"1 Oak Mews, Bicknor Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2010-01-14 16:44:18,,,,10022896999.0,Address Matched +8d7cb043f0033d8458f38902795c566aec1024641d4ed9254a223fb5c0e1fb01,50 Flaxman Drive,,,ME16 0RU,10001599508,D,B,60,84,Bungalow,Semi-Detached,2021-09-13,E07000110,E14000804,Kent,2021-09-13,marketed sale,56,82,320,105.0,2.9,56,1.0,84.0,46.0,467.0,373.0,111.0,67.0,52.0,Single,Y,,,,,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,17.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 17% of fixed outlets,Poor,Poor,mains gas (not community),0.0,,,2.41,0.0,N,natural,50 Flaxman Drive,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2021-09-13 19:17:50,Owner-occupied,6.0,,200003661000.0,Energy Assessor +8da0de3d2aaa8d06b3eb136a79cdc64d7e18908e533b14a40593a448d73c5432,66 St. Andrews Park,Tarragon Road,,ME16 0WD,10001626087,C,C,78,80,Flat,Mid-Terrace,2021-09-07,E07000110,E14000804,Kent,2021-09-07,rental,78,81,131,116.0,2.0,23,1.8,78.0,78.0,280.0,267.0,145.0,117.0,88.0,Unknown,Y,01,N,,,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,(another dwelling below),,,Fully double glazed,Average,Average,"Granite or whinstone, with internal insulation",Very Good,Very Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,8.17,3.15,0.0,N,natural,"66 St. Andrews Park, Tarragon Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1991-1995,2021-09-07 14:00:54,Rented (private),9.0,,200003655023.0,Energy Assessor +1157731779922014061507142324948624,"96, The Quarries",Boughton Monchelsea,,ME17 4NJ,2226744278,G,B,19,84,Bungalow,Detached,2014-06-14,E07000110,E14000700,Kent,2014-06-15,marketed sale,16,82,619,74.0,9.9,127,1.3,62.0,48.0,1511.0,427.0,367.0,81.0,78.0,Unknown,Y,NODATA!,,,2104.0,10.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,70.0,1.0,"From main system, no cylinder thermostat",Poor,Poor,"Solid, no insulation (assumed)",,,Some double glazing,Very Poor,Very Poor,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, coal",,,"Pitched, no insulation",Very Poor,Very Poor,"Boiler and radiators, mains gas",Average,Average,Programmer and room thermostat,Average,Average,Low energy lighting in 70% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"96, The Quarries, Boughton Monchelsea",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2014-06-15 07:14:23,owner-occupied,10.0,7.0,200003709834.0,Address Matched +1548562299962017061909165402618593,23a Forge Lane,Headcorn,,TN27 9QN,9017902578,B,A,83,95,House,End-Terrace,2017-06-19,E07000110,E14000700,Kent,2017-06-19,new dwelling,85,97,92,2.0,1.2,16,0.1,52.0,52.0,219.0,219.0,81.0,48.0,77.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.12 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.12 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"23a Forge Lane, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,NO DATA!,2017-06-19 09:16:54,unknown,9.0,9.0,10093305406.0,Address Matched +1209386419442018110212165124889038,Flat 7,The Mews,37 High Street,ME14 1JH,432218278,D,D,59,65,Flat,Detached,2018-10-17,E07000110,E14000804,Kent,2018-11-02,non marketed sale,53,62,312,253.0,3.8,55,3.1,58.0,58.0,670.0,538.0,98.0,98.0,69.0,dual,Y,1st,Y,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,3.0,3.0,100.0,0.0,From main system,Good,Good,(other premises below),NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,no corridor,,,,N,natural,"Flat 7, The Mews, 37 High Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2018-11-02 12:16:51,rental (private),,,200003654906.0,Address Matched +04eabf4fd32f1839cc482968415ded62375d6f0cf7db455564f63b1b9cdf21b7,9 Jamaica Terrace,Invicta Park,,ME14 2PE,10001615417,D,B,67,85,House,Mid-Terrace,2021-08-25,E07000110,E14000804,Kent,2021-08-25,Stock condition survey,63,83,225,90.0,3.2,40,1.3,86.0,86.0,542.0,420.0,93.0,65.0,81.0,dual,Y,,,,,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,83.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Average,Average,,,,"Flat, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 83% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.28,0.0,N,natural,"9 Jamaica Terrace, Invicta Park",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2021-08-25 15:35:56,Rented (social),12.0,,200003723992.0,Energy Assessor +424459009262010012117023221798350,"89, Milton Street",,,ME16 8LD,5260071768,E,D,52,61,House,Mid-Terrace,2010-01-21,E07000110,E14000804,Kent,2010-01-21,marketed sale,49,59,346,277.0,5.3,57,4.2,65.0,46.0,824.0,694.0,141.0,113.0,92.8,Single,Y,NO DATA!,,,2106.0,50.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,60.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Partial double glazing,Poor,Poor,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,Portable electric heaters,,,"Flat, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 60% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,0.0,N,natural,"89, Milton Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2010-01-21 17:02:32,owner-occupied,,,200003655503.0,Address Matched +1314322274532015042413332261278207,3 Little Abbey Gate,Stockett Lane,,ME15 0PP,7721255378,E,C,45,80,House,Detached,2015-04-24,E07000110,E14000804,Kent,2015-04-24,marketed sale,36,74,363,123.0,12.0,64,4.1,131.0,88.0,2106.0,967.0,246.0,79.0,188.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,2.0,9.0,9.0,50.0,0.0,"From main system, no cylinder thermostat",Poor,Poor,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, insulated at rafters",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"3 Little Abbey Gate, Stockett Lane",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2015-04-24 13:33:22,owner-occupied,,,200003726751.0,Address Matched +726874759222011112310493633178799,"1, Charlbury Close",,,ME16 8TE,9347553968,E,D,49,67,House,Detached,2011-11-23,E07000110,E14000804,Kent,2011-11-23,marketed sale,45,66,349,208.0,5.4,67,3.2,86.0,43.0,914.0,555.0,69.0,85.0,80.3,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,0.0,0.0,Gas multipoint,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,2.367,0.0,,natural,"1, Charlbury Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2011-11-23 10:49:36,owner-occupied,10.0,0.0,200003657568.0,Address Matched +1677218791352019100910010393089369,Flat 6,Kent House,Romney Place,ME15 6LA,3916131678,D,D,58,58,Flat,Detached,2018-11-09,E07000110,E14000804,Kent,2019-10-09,non marketed sale,62,62,291,291.0,2.6,49,2.6,43.0,43.0,573.0,573.0,268.0,268.0,53.0,standard tariff,,ground floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,"Electric immersion, standard tariff",Very Poor,Poor,Average thermal transmittance 0.29 W/m-¦K,Good,Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.34 W/m-¦K,Good,Good,,,,(other premises above),,,Electric underfloor heating,Very Poor,Poor,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"Flat 6, Kent House, Romney Place",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2019-10-09 10:01:03,unknown,21.0,21.0,10094442248.0,Address Matched +0af095e5bac17c8a9fa25bbac97bf56e79f542195029e48f4e402b69cde2a868,Flat 144,Scotney Gardens,St. Peters Street,ME16 0GT,10001684160,B,B,87,88,Flat,Mid-Terrace,2021-09-14,E07000110,E14000804,Kent,2021-09-14,rental,80,82,133,119.0,1.6,23,1.5,75.0,75.0,81.0,81.0,191.0,160.0,72.0,Unknown,N,03,N,,,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,"Electric immersion, off-peak",Average,Poor,(another dwelling below),,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,Portable electric heaters (assumed),,,(another dwelling above),,,Electric storage heaters,Average,Very Poor,Automatic charge control,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,heated corridor,,2.3,0.0,N,natural,"Flat 144, Scotney Gardens, St. Peters Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007-2011,2021-09-14 19:29:40,Rented (private),8.0,,10022893511.0,Energy Assessor +1726837748132019080711462127078101,"2, Sears Grove",Otham,,ME15 8YY,4177194678,B,A,84,95,House,Detached,2019-08-07,E07000110,E14000700,Kent,2019-08-07,new dwelling,86,96,84,12.0,1.4,15,0.2,70.0,70.0,244.0,244.0,77.0,46.0,96.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.10 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.19 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"2, Sears Grove, Otham",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2019-08-07 11:46:21,owner-occupied,10.0,10.0,10094440651.0,Address Matched +927621029062013050922560538818157,"11, Rookery Court",Marden,,TN12 9AZ,5386228078,C,B,79,81,Flat,Detached,2013-05-09,E07000110,E14000804,Kent,2013-05-09,new dwelling,82,83,108,100.0,1.7,20,1.6,89.0,52.0,290.0,296.0,81.0,81.0,85.0,standard tariff,,ground floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.25 W/m?K,Good,Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.29 W/m?K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 29% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"11, Rookery Court, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,NO DATA!,2013-05-09 22:56:05,NO DATA!,21.0,6.0,10014313269.0,Address Matched +866922342232012121810302405978091,3 Price Court,Church Street,,ME14 1FL,4105093078,C,C,78,80,Flat,Mid-Terrace,2012-12-18,E07000110,E14000804,Kent,2012-12-18,marketed sale,83,85,128,112.0,1.1,24,1.0,29.0,30.0,228.0,203.0,66.0,66.0,45.0,Unknown,Y,1st,Y,,2106.0,0.0,single glazing,Normal,0.0,2.0,2.0,100.0,0.0,From main system,Good,Good,(other premises below),,,Single glazed,Very Poor,Very Poor,"Solid brick, as built, insulated (assumed)",Very Good,Very Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,6.7,,0.0,,natural,"3 Price Court, Church Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2012-12-18 10:30:24,owner-occupied,5.0,5.0,10014306410.0,Address Matched +1801206951852020060509145523000078,"180, Boxley Road",Penenden Heath,,ME14 2HG,836130778,E,C,51,74,House,Semi-Detached,2020-06-02,E07000110,E14000804,Kent,2020-06-05,marketed sale,42,67,333,167.0,7.0,59,3.6,95.0,95.0,1190.0,821.0,158.0,75.0,120.0,Unknown,Y,NODATA!,,,2104.0,95.0,"double glazing, unknown install date",Normal,0.0,7.0,7.0,87.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Mostly double glazing,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 87% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"180, Boxley Road, Penenden Heath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2020-06-05 09:14:55,owner-occupied,,,200003706711.0,Address Matched +216574787552009012716184500210352,"2, Mynn Crescent",Bearsted,,ME14 4AS,3200707568,D,C,63,77,House,Detached,2009-01-27,E07000110,E14000700,Kent,2009-01-27,marketed sale,58,74,233,145.0,7.1,39,4.5,167.0,85.0,798.0,513.0,134.0,116.0,203.79,Single,Y,NO DATA!,,,2105.0,100.0,double glazing installed during or after 2002,Normal,2.0,7.0,7.0,4.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and at least two room thermostats,Average,Average,Low energy lighting in 4% of fixed outlets,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.7,0.0,N,natural,"2, Mynn Crescent, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2009-01-27 16:18:45,owner-occupied,,,200003691805.0,Address Matched +12f303178ee3ab21181f61aa050067ef7cbc7b7d06116c014cce6648a15fd324,309 Queens Road,,,ME16 0JN,10001477259,D,B,60,83,House,Semi-Detached,2021-09-23,E07000110,E14000804,Kent,2021-09-23,marketed sale,53,80,266,97.0,4.9,47,1.8,80.0,80.0,824.0,497.0,94.0,67.0,104.0,Unknown,Y,,,,,100.0,"double glazing, unknown install date",Normal,2.0,7.0,7.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, mains gas",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.1,0.0,N,natural,309 Queens Road,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2021-09-23 12:51:30,Owner-occupied,12.0,,200003656827.0,Energy Assessor +8dfd353289f6c39ff8df8ea9135153b68ef79c050e747fa6217f3f761202202a,40A PERRY STREET,,,ME14 2RP,10001485358,E,D,54,59,Flat,End-Terrace,2021-06-29,E07000110,E14000804,Kent,2021-07-01,ECO assessment,51,58,369,314.0,3.4,65,2.9,47.0,47.0,709.0,601.0,84.0,84.0,53.0,Single,Y,01,Y,,,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,100.0,0.0,From main system,Good,Good,(another dwelling below),,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,"Pitched, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,no corridor,,2.8,0.0,N,natural,40A PERRY STREET,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2021-07-01 18:41:45,Rented (social),7.0,,200003669910.0,Energy Assessor +1423270929902016031319421541369278,"20, Watersmeet Close",,,ME15 6GU,4925423478,C,B,69,87,House,Semi-Detached,2016-03-13,E07000110,E14000804,Kent,2016-03-13,marketed sale,68,86,226,83.0,2.5,40,0.9,70.0,47.0,410.0,392.0,145.0,69.0,63.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,50.0,0.0,From main system,Good,Good,"Solid, limited insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"20, Watersmeet Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2016-03-13 19:42:15,owner-occupied,,,10022892196.0,Address Matched +821825379442012080609001607020728,"The Barn, Rear of Westwood House",Thurnham Lane,Bearsted,ME14 4QZ,8479170078,D,B,61,85,House,Detached,2012-08-02,E07000110,E14000700,Kent,2012-08-06,marketed sale,64,86,312,97.0,2.1,55,0.6,26.0,26.0,319.0,320.0,179.0,77.0,38.0,Unknown,N,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,From main system,Very Poor,Very Poor,"Solid, insulated (assumed)",,,Fully double glazed,Good,Good,"Solid brick, with internal insulation",Very Good,Very Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, electric",Very Poor,Very Poor,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,NO DATA!,,,0.0,,natural,"The Barn, Rear of Westwood House, Thurnham Lane, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2007 onwards,2012-08-06 09:00:16,owner-occupied,5.0,5.0,200003706968.0,Address Matched +267593579142019051619352960019268,"30a, Maidstone Road",Lenham,,ME17 2QJ,1192070668,D,B,63,83,House,Semi-Detached,2019-05-16,E07000110,E14000700,Kent,2019-05-16,rental (private),60,82,251,102.0,3.8,44,1.6,95.0,63.0,677.0,506.0,137.0,82.0,87.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,4.0,4.0,50.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, partial insulation (assumed)",Average,Average,"Room heaters, electric",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"30a, Maidstone Road, Lenham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1976-1982,2019-05-16 19:35:29,rental (private),,,200003712514.0,Address Matched +1488251189902018051508303242789158,"9, Greensand Meadow",Sutton Valence,,ME17 3FP,8936387478,B,B,84,89,House,Detached,2018-05-15,E07000110,E14000700,Kent,2018-05-15,new dwelling,82,86,85,59.0,3.5,15,2.5,106.0,106.0,558.0,558.0,115.0,115.0,227.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,1.0,From main system,Good,Good,Average thermal transmittance 0.16 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.28 W/m-¦K,Very Good,Very Good,"Room heaters, dual fuel (mineral and wood)",,,Average thermal transmittance 0.12 W/m-¦K,Very Good,Very Good,"Boiler and underfloor heating, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"9, Greensand Meadow, Sutton Valence",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2018-05-15 08:30:32,owner-occupied,10.0,10.0,10093303728.0,Address Matched +564634559242010111211340586109198,Stede Court,Stede Hill,Harrietsham,ME17 1NR,9277951868,F,F,25,37,House,Detached,2010-11-11,E07000110,E14000700,Kent,2010-11-12,marketed sale,25,35,374,298.0,52.0,74,41.0,796.0,398.0,8210.0,6789.0,476.0,334.0,703.71,Unknown,N,NO DATA!,,,2104.0,62.0,secondary glazing,Normal,0.0,12.0,12.0,0.0,3.0,"From main system, no cylinder thermostat",Poor,Poor,"Solid, no insulation (assumed)",,,Partial secondary glazing,Poor,Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, oil",Average,Average,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,oil - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.96,0.0,N,natural,"Stede Court, Stede Hill, Harrietsham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2010-11-12 11:34:05,owner-occupied,,,200003704198.0,Address Matched +8df55e0b0d47ad492400754aae0d32af14e66cb38769579e05f47563ee830c4e,4 Libya Terrace,Invicta Park,,ME14 2PG,10001565998,D,B,67,86,House,Mid-Terrace,2021-08-26,E07000110,E14000804,Kent,2021-08-27,Stock condition survey,64,84,221,85.0,3.2,39,1.2,92.0,74.0,540.0,421.0,82.0,56.0,81.0,dual,Y,,,,,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,75.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Average,Average,,,,"Flat, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.28,0.0,N,natural,"4 Libya Terrace, Invicta Park",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2021-08-27 17:02:31,Rented (social),12.0,,200003724094.0,Energy Assessor +1703504129402019030815103562310158,Barn Oast,Symonds Lane,Yalding,ME18 6HA,6441223678,C,B,76,81,House,Semi-Detached,2019-03-05,E07000110,E14000804,Kent,2019-03-08,marketed sale,69,75,137,109.0,8.0,24,6.4,167.0,167.0,1345.0,1227.0,124.0,124.0,332.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,8.0,8.0,78.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, with internal insulation",Very Good,Very Good,,,,"Pitched, insulated (assumed)",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 78% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"Barn Oast, Symonds Lane, Yalding",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2019-03-08 15:10:35,owner-occupied,,,200003726868.0,Address Matched +18255409222012022210531438128022,245 Wallis Place,Hart Street,,ME16 8FF,2375088468,B,B,85,85,Flat,NO DATA!,2012-02-22,E07000110,E14000804,Kent,2012-02-22,new dwelling,89,89,71,71.0,1.1,14,1.1,42.0,42.0,181.0,181.0,87.0,87.0,78.18,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,6.0,,From main system,Good,Good,(other premises below),,,Fully double glazed,Good,Good,Average thermal transmittance 0.29 W/m?K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,,,NO DATA!,"245 Wallis Place, Hart Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2012-02-22 10:53:14,,6.0,6.0,10022900853.0,Address Matched +1231326897112014110418492096049523,"45, Northfleet Close",,,ME14 5QD,5314769278,D,C,64,76,Maisonette,Enclosed End-Terrace,2014-11-04,E07000110,E14000804,Kent,2014-11-04,marketed sale,64,79,229,134.0,2.6,44,1.5,63.0,44.0,514.0,314.0,99.0,89.0,59.0,dual,Y,Ground,N,,2107.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,57.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 57% of fixed outlets,Good,Good,mains gas (not community),0.0,no corridor,,,0.0,,natural,"45, Northfleet Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2014-11-04 18:49:20,owner-occupied,7.0,4.0,200003671465.0,Address Matched +1744973629002019082017191967612908,"20, Dawkins Drive",Staplehurst,,TN12 0FZ,2055426678,B,A,84,96,House,Mid-Terrace,2019-08-20,E07000110,E14000804,Kent,2019-08-20,new dwelling,87,98,79,0.0,1.2,14,0.0,73.0,73.0,199.0,199.0,74.0,44.0,86.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.27 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"20, Dawkins Drive, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,NO DATA!,2019-08-20 17:19:19,unknown,18.0,18.0,10094442078.0,Address Matched +195063742152008112621561708289856,2 Egypt Place,The Street,Bearsted,ME14 4EN,8611284568,D,C,60,71,House,Mid-Terrace,2008-11-25,E07000110,E14000700,Kent,2008-11-26,rental (private),54,66,358,265.0,3.6,60,2.7,54.0,27.0,432.0,347.0,102.0,82.0,60.2,Single,Y,NO DATA!,,,2104.0,0.0,single glazing,Normal,0.0,4.0,4.0,0.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Poor,Poor,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.45,0.0,N,natural,"2 Egypt Place, The Street, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2008-11-26 21:56:17,rental (private),,,200003695004.0,Address Matched +1070082339502014011415432815849708,"8, Butcher Close",Staplehurst,,TN12 0TJ,3583038178,C,A,69,92,House,Mid-Terrace,2014-01-10,E07000110,E14000804,Kent,2014-01-14,marketed sale,70,95,191,16.0,2.3,37,0.2,50.0,39.0,378.0,273.0,144.0,79.0,61.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,71.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, partial insulation (assumed)",Average,Average,,,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 71% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"8, Butcher Close, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1976-1982,2014-01-14 15:43:28,owner-occupied,7.0,5.0,200003678875.0,Address Matched +277013815152009043018370203710960,"3, McKenzie Court",,,ME14 1JU,9086531668,B,B,81,82,Flat,Enclosed End-Terrace,2009-04-30,E07000110,E14000804,Kent,2009-04-30,rental (private),79,80,165,159.0,2.0,25,1.9,73.0,45.0,118.0,122.0,142.0,142.0,78.72,dual,N,1st,N,5.0,2402.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,38.0,0.0,"Electric immersion, off-peak",Poor,Poor,(other premises below),,,Fully double glazed,Good,Good,"System built, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,Electric storage heaters,Poor,Poor,Automatic charge control,Average,Average,Low energy lighting in 38% of fixed outlets,Average,Average,electricity - this is for backwards compatibility only and should not be used,0.0,heated corridor,,2.2,0.0,N,natural,"3, McKenzie Court",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2009-04-30 18:37:02,rental (private),,,10014306610.0,Address Matched +1729599399222019061709062125598661,Flat 29 The Pavilion,"17-21, Pudding Lane",,ME14 1PA,6294905678,D,D,58,58,Flat,Detached,2019-02-21,E07000110,E14000804,Kent,2019-06-17,marketed sale,63,63,216,216.0,3.3,37,3.3,77.0,77.0,779.0,779.0,219.0,219.0,90.0,standard tariff,,top floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,Electric instantaneous at point of use,Very Poor,Very Poor,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.28 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.14 W/m-¦K,Very Good,Very Good,"Room heaters, electric",Very Poor,Poor,Programmer and appliance thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"Flat 29 The Pavilion, 17-21, Pudding Lane",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2019-06-17 09:06:21,owner-occupied,8.0,8.0,10094441562.0,Address Matched +1739585193612019072912241198210368,"2, Fynamour Close",,,ME16 9FG,3873385678,B,A,84,95,House,Semi-Detached,2019-07-29,E07000110,E14000804,Kent,2019-07-29,new dwelling,86,97,83,4.0,1.3,15,0.1,71.0,71.0,203.0,203.0,85.0,54.0,87.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.18 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"2, Fynamour Close",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2019-07-29 12:24:11,unknown,20.0,20.0,10093303545.0,Address Matched +387520509642013061408061861979828,"97, Park Way",Coxheath,,ME17 4EX,9687609668,C,B,72,86,House,Semi-Detached,2013-06-12,E07000110,E14000804,Kent,2013-06-14,marketed sale,73,87,155,60.0,2.4,30,1.0,66.0,46.0,412.0,381.0,87.0,61.0,80.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,56.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 56% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"97, Park Way, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2013-06-14 08:06:18,owner-occupied,9.0,5.0,200003715219.0,Address Matched +687201679042011100711464790090638,"1, Toppesfield Park",,,ME14 5BF,6060770968,B,B,83,83,House,Detached,2011-10-07,E07000110,E14000700,Kent,2011-10-07,new dwelling,85,85,82,82.0,1.7,15,1.7,58.0,58.0,278.0,278.0,105.0,105.0,109.3,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,18.0,,From main system,Good,Good,Average thermal transmittance 0.16 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.13 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in 95% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.33,,,NO DATA!,"1, Toppesfield Park",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2011-10-07 11:46:47,,19.0,18.0,10014312065.0,Address Matched +655441139922011101417050158648769,10 Thomas Place,James Whatman Way,,ME14 1FP,6520358868,C,C,79,79,Flat,Mid-Terrace,2011-10-14,E07000110,E14000804,Kent,2011-10-14,new dwelling,89,90,115,111.0,0.8,15,0.7,41.0,31.0,201.0,202.0,96.0,96.0,51.1,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,4.0,,"Community scheme, no cylinder thermostat",Good,Very Good,(other premises below),,,Fully double glazed,Good,Good,Average thermal transmittance 0.42 W/m?K,Good,Good,,,,(other premises above),,,Community scheme,Good,Very Good,"Flat rate charging, programmer and TRVs",Average,Average,Low energy lighting in 67% of fixed outlets,Good,Good,NO DATA!,0.0,NO DATA!,,2.4,,,NO DATA!,"10 Thomas Place, James Whatman Way",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2011-10-14 17:05:01,,6.0,4.0,10014312676.0,Address Matched +158368370502008100615482054180648,The Barn,Goddington Lane,Harrietsham,ME17 1JX,5508671568,F,F,27,27,House,Detached,2008-10-04,E07000110,E14000700,Kent,2008-10-06,marketed sale,48,49,392,388.0,5.4,59,5.3,76.0,41.0,923.0,944.0,271.0,271.0,121.86,Single,N,NO DATA!,,,2106.0,0.0,single glazing,More Than Typical,0.0,4.0,4.0,14.0,0.0,From main system,Very Poor,Poor,"Solid, insulated (assumed)",,,Single glazed,Very Poor,Very Poor,"Granite or whinstone, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,"Pitched, no insulation",Good,Good,"Boiler and radiators, electric",Very Poor,Poor,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 14% of fixed outlets,Poor,Poor,electricity - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.3,0.0,N,natural,"The Barn, Goddington Lane, Harrietsham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2003-2006,2008-10-06 15:48:20,owner-occupied,,,10014308932.0,Address Matched +679061309012011091800292591990795,"6, Hawkwood",,,ME16 0JQ,7597910968,D,C,66,69,House,Detached,2011-09-18,E07000110,E14000804,Kent,2011-09-18,marketed sale,64,67,207,189.0,3.6,40,3.3,90.0,48.0,562.0,540.0,112.0,112.0,91.12,Single,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,11.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 11% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,2.37,0.0,,natural,"6, Hawkwood",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2011-09-18 00:29:25,owner-occupied,18.0,2.0,200003705701.0,Address Matched +612085339242015091419163685559848,"20, Odiham Drive",,,ME16 0TW,8293735868,D,B,55,87,House,Semi-Detached,2015-09-14,E07000110,E14000804,Kent,2015-09-14,ECO assessment,48,87,345,67.0,4.2,61,0.9,92.0,46.0,700.0,373.0,169.0,70.0,69.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,0.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"20, Odiham Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2015-09-14 19:16:36,owner-occupied,,,200003662256.0,Address Matched +1677188232242020022018091366102308,Windyridge,Busbridge Road,Loose,ME15 0ES,4229131678,E,D,45,67,House,Detached,2020-02-20,E07000110,E14000804,Kent,2020-02-20,marketed sale,40,62,332,199.0,15.0,55,8.6,266.0,133.0,2741.0,1944.0,244.0,122.0,273.0,Single,Y,NODATA!,,,2107.0,100.0,"double glazing, unknown install date",Normal,0.0,9.0,9.0,0.0,2.0,"From main system, no cylinder thermostat",Poor,Poor,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,"Room heaters, wood logs",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"Windyridge, Busbridge Road, Loose",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2020-02-20 18:09:13,owner-occupied,,,200003663746.0,Address Matched +17111180402009012212125340810328,189 Wallis Place,Hart Street,,ME16 8FE,8477088468,B,B,88,88,Flat,Detached,2009-01-02,E07000110,E14000804,Kent,2009-01-22,new dwelling,87,87,116,116.0,0.8,0,0.8,19.0,19.0,120.0,120.0,54.0,54.0,44.14,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,6.0,,SAP05:Hot-Water,,,Average thermal transmittance 0.19 W/m²K,Very Good,Very Good,Fully double glazed,Good,Good,Average thermal transmittance 0.32 W/m²K,Good,Good,SAP05:Secondary-Heating,,,Average thermal transmittance 0.00 W/m²K,Very Good,Very Good,SAP05:Main-Heating,,,SAP05:Main-Heating-Controls,,,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,,,NO DATA!,"189 Wallis Place, Hart Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2009-01-22 12:12:53,,6.0,6.0,10022900797.0,Address Matched +163245992062020090413460822778690,10 Roland House,Harris Place,Tovil,ME15 6BP,9255902568,D,C,65,78,Flat,Mid-Terrace,2020-09-03,E07000110,E14000804,Kent,2020-09-04,marketed sale,60,69,300,229.0,3.0,51,2.3,53.0,53.0,541.0,280.0,212.0,183.0,59.0,Unknown,N,2nd,Y,,2602.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,"Electric immersion, off-peak",Poor,Poor,(another dwelling below),NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Room heaters, electric",Very Poor,Poor,Appliance thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,heated corridor,,,,N,natural,"10 Roland House, Harris Place, Tovil",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2020-09-04 13:46:08,rental (private),,,10022901578.0,Address Matched +1758226279512020032716102321200168,"9, Mayfield",Harrietsham,,ME17 1US,1888917678,B,A,85,95,House,Semi-Detached,2020-03-27,E07000110,E14000700,Kent,2020-03-27,new dwelling,87,96,77,14.0,1.5,13,0.3,83.0,83.0,253.0,253.0,80.0,48.0,110.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.10 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.19 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"9, Mayfield, Harrietsham",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2020-03-27 16:10:23,unknown,10.0,10.0,10094442195.0,Address Matched +596972020052012041612470592920781,"40, Forge Lane",Headcorn,,TN27 9TS,7132024868,C,C,76,77,Flat,Enclosed Mid-Terrace,2012-04-16,E07000110,E14000700,Kent,2012-04-16,rental (social),79,79,132,128.0,1.7,25,1.6,51.0,38.0,285.0,286.0,81.0,81.0,66.0,Single,Y,1st,Y,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,67.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 67% of fixed outlets,Good,Good,mains gas (not community),0.0,no corridor,,,0.0,,natural,"40, Forge Lane, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,England and Wales: 1950-1966,2012-04-16 12:47:05,rental (social),6.0,4.0,200003699493.0,Address Matched +1357307569262015082611065228068635,"21, St. Andrews Road",,,ME16 9AN,3221658378,E,C,45,70,House,Semi-Detached,2015-08-26,E07000110,E14000804,Kent,2015-08-26,marketed sale,42,67,349,180.0,7.1,56,3.6,93.0,69.0,1486.0,1011.0,129.0,76.0,126.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,67.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 67% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"21, St. Andrews Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2015-08-26 11:06:52,owner-occupied,,,200003682166.0,Address Matched +1559815599702017092818520055230518,"7, Wood Court",,,ME16 9DD,3749092578,C,B,78,91,House,Mid-Terrace,2017-05-09,E07000110,E14000804,Kent,2017-09-28,rental (social),78,91,138,35.0,1.6,24,0.5,51.0,51.0,270.0,270.0,102.0,66.0,68.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Very Good,Very Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"7, Wood Court",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2017-09-28 18:52:00,rental (social),,,10022900390.0,Address Matched +686912992232012121416580958968293,"27, Hawkes Way",,,ME15 9ZL,9308270968,B,B,86,87,Flat,Detached,2012-12-14,E07000110,E14000700,Kent,2012-12-14,new dwelling,91,91,61,58.0,0.8,12,0.7,53.0,42.0,181.0,182.0,80.0,80.0,66.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.32 W/m?K,Good,Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"27, Hawkes Way",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2012-12-14 16:58:09,NO DATA!,8.0,6.0,10014312513.0,Address Matched +818324623232012072608060699278606,"12, Stoneacre Court",Enterprise Road,,ME15 6AB,2689640078,D,C,68,72,Flat,Detached,2012-07-26,E07000110,E14000804,Kent,2012-07-26,marketed sale,48,51,338,314.0,4.2,60,3.9,86.0,49.0,411.0,364.0,116.0,116.0,71.0,dual,N,2nd,Y,,2401.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,25.0,0.0,"Electric immersion, off-peak",Average,Very Poor,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,"Pitched, insulated (assumed)",Average,Average,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 25% of fixed outlets,Average,Average,electricity (not community),0.0,unheated corridor,5.7,,0.0,,natural,"12, Stoneacre Court, Enterprise Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2012-07-26 08:06:06,owner-occupied,8.0,2.0,200003686869.0,Address Matched +1395193600832018101717500026978790,"3, Cranham Square",Marden,,TN12 9TG,66721478,D,C,64,78,Flat,Semi-Detached,2018-10-16,E07000110,E14000804,Kent,2018-10-17,rental (social),46,66,448,273.0,3.7,76,2.2,77.0,41.0,476.0,221.0,152.0,152.0,49.0,dual,N,1st,N,,2401.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,14.0,0.0,"Electric immersion, off-peak",Average,Poor,(another dwelling below),NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,Portable electric heaters (assumed),,,(another dwelling above),,,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 14% of fixed outlets,Poor,Poor,electricity (not community),0.0,unheated corridor,6.28,,,N,natural,"3, Cranham Square, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1967-1975,2018-10-17 17:50:00,rental (social),,,200003710690.0,Address Matched +159518040142008101321350951289208,"2, Ellenswood Close",Downswood,,ME15 8SG,6124542568,C,C,71,80,Flat,Enclosed End-Terrace,2008-10-10,E07000110,E14000700,Kent,2008-10-13,rental (private),67,78,400,265.0,1.8,67,1.2,15.0,15.0,237.0,179.0,84.0,64.0,26.82,Unknown,Y,Ground,N,2.0,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,1.0,1.0,80.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, partial insulation (assumed)",Average,Average,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Poor,Poor,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,unheated corridor,1.9,2.36,0.0,N,natural,"2, Ellenswood Close, Downswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1976-1982,2008-10-13 21:35:09,rental (private),,,200003690977.0,Address Matched +8e6a3283ac59d3dc38233144e38b23c8e960a115af20f498c59257bfb026fdc1,FLAT 1,292 UPPER FANT ROAD,,ME16 8DA,5054561668,C,C,79,80,Flat,Mid-Terrace,2021-07-07,E07000110,E14000804,Kent,2021-07-08,marketed sale,83,83,124,120.0,1.1,22,1.1,68.0,51.0,206.0,208.0,70.0,70.0,52.0,Single,Y,01,N,,,100.0,double glazing installed during or after 2002,Normal,1.0,3.0,3.0,67.0,0.0,From main system,Good,Good,(another dwelling below),,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 67% of fixed outlets,Good,Good,mains gas (not community),0.0,unheated corridor,4.17,2.44,0.0,N,natural,"FLAT 1, 292 UPPER FANT ROAD",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007-2011,2021-07-08 08:26:06,Owner-occupied,6.0,,10014309282.0,Energy Assessor +864570349022012121011520603158832,Belmont House,South Green,,ME9 7RR,3065473078,B,B,85,85,House,Detached,2012-09-05,E07000110,E14000700,Kent,2012-12-10,new dwelling,82,82,75,75.0,3.1,17,3.1,73.0,73.0,428.0,428.0,136.0,136.0,183.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Average,Average thermal transmittance 0.17 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.17 W/m?K,Very Good,Very Good,"Room heaters, wood logs",,,Average thermal transmittance 0.11 W/m?K,Very Good,Very Good,"Boiler and underfloor heating, oil",Good,Average,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,oil - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Belmont House, South Green",Maidstone,Faversham and Mid Kent,SITTINGBOURNE,NO DATA!,2012-12-10 11:52:06,NO DATA!,0.0,0.0,10014314388.0,Address Matched +1774142763112019122010001693919768,Flat 5 Chilham House,Drawbridge Close,,ME15 7BP,7888338678,C,C,77,77,Flat,Detached,2019-12-19,E07000110,E14000700,Kent,2019-12-20,rental (social),80,80,171,171.0,1.3,30,1.3,39.0,39.0,248.0,248.0,64.0,64.0,42.0,Single,Y,2nd,Y,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,100.0,0.0,From main system,Good,Good,(another dwelling below),NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,6.98,,,N,natural,"Flat 5 Chilham House, Drawbridge Close",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1996-2002,2019-12-20 10:00:16,rental (social),,,10022896693.0,Address Matched +1522600872332017022509392632278704,Maple Cottage,Liverton Hill,Sandway,ME17 2NR,7442720578,D,A,66,94,House,Detached,2017-02-23,E07000110,E14000700,Kent,2017-02-25,marketed sale,63,89,153,6.0,4.8,35,1.2,141.0,80.0,559.0,541.0,141.0,84.0,136.0,Single,N,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,8.0,8.0,24.0,0.0,From main system,Average,Average,"Solid, limited insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, wood logs",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, oil",Average,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 24% of fixed outlets,Poor,Poor,oil (not community),0.0,NO DATA!,,,,N,natural,"Maple Cottage, Liverton Hill, Sandway",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1996-2002,2017-02-25 09:39:26,owner-occupied,,,200003724512.0,Address Matched +368495049262019102509331087548591,Flat 4 The Square,"4, Square Hill Road",,ME15 7TL,9866477668,C,B,70,83,Flat,Semi-Detached,2019-10-24,E07000110,E14000804,Kent,2019-10-25,marketed sale,73,73,172,174.0,2.5,29,2.5,106.0,78.0,390.0,225.0,342.0,185.0,85.0,Single,N,2nd,N,,2603.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,50.0,0.0,"Electric immersion, standard tariff",Very Poor,Poor,(another dwelling below),NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Room heaters, electric",Very Poor,Poor,Programmer and appliance thermostats,Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,electricity (not community),0.0,unheated corridor,5.0,,,N,natural,"Flat 4 The Square, 4, Square Hill Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2019-10-25 09:33:10,owner-occupied,,,10014308785.0,Address Matched +1550726586852017060815302292030854,"4, Goldthorne Close",,,ME14 5NX,8482622578,C,C,74,76,Maisonette,End-Terrace,2017-06-08,E07000110,E14000804,Kent,2017-06-08,marketed sale,74,78,179,155.0,1.9,31,1.6,43.0,43.0,333.0,296.0,105.0,92.0,60.0,Single,Y,1st,Y,,2107.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,(another dwelling below),NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,no corridor,0.0,,,N,natural,"4, Goldthorne Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2017-06-08 15:30:22,owner-occupied,,,200003716771.0,Address Matched +24055572132019030208152780968509,"2, Ridgepoint Court",Wheeler Street,,ME14 2UL,7990500568,D,C,61,75,Flat,Semi-Detached,2019-02-18,E07000110,E14000804,Kent,2019-03-02,rental (private),57,60,307,283.0,3.2,52,2.9,68.0,57.0,578.0,334.0,193.0,167.0,61.0,Unknown,N,Ground,N,,2602.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,2.0,67.0,0.0,"Electric immersion, off-peak",Poor,Poor,"Solid, limited insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,Portable electric heaters (assumed),,,(another dwelling above),,,"Room heaters, electric",Very Poor,Poor,Appliance thermostats,Good,Good,Low energy lighting in 67% of fixed outlets,Good,Good,electricity (not community),0.0,unheated corridor,5.4,,,N,natural,"2, Ridgepoint Court, Wheeler Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2019-03-02 08:15:27,rental (private),,,10022901964.0,Address Matched +465785709022010040717081384438240,58 Pine Lodge,Tonbridge Road,,ME16 8TB,4832064768,C,B,74,85,Flat,Mid-Terrace,2010-04-07,E07000110,E14000804,Kent,2010-04-07,rental (private),71,84,225,126.0,2.3,37,2.3,57.0,32.0,293.0,201.0,158.0,101.0,61.87,Single,Y,1st,N,3.0,2104.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,25.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 25% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,unheated corridor,5.09,2.4,0.0,N,natural,"58 Pine Lodge, Tonbridge Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2010-04-07 17:08:13,rental (private),,,200003657936.0,Address Matched +1574437399202017091509194658339378,Bramleys,Benover Road,Yalding,ME18 6ES,3200593578,D,C,61,79,Bungalow,Detached,2017-09-13,E07000110,E14000804,Kent,2017-09-15,marketed sale,51,73,246,125.0,8.7,43,4.5,174.0,95.0,1498.0,989.0,138.0,86.0,200.0,Single,Y,NODATA!,,,2104.0,75.0,"double glazing, unknown install date",Normal,1.0,6.0,6.0,17.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Partial double glazing,Poor,Poor,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 17% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"Bramleys, Benover Road, Yalding",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2017-09-15 09:19:46,owner-occupied,,,200003660446.0,Address Matched +633520755932011052500004261268709,"1a, Westmorland Road",,,ME15 8BE,5981796868,C,C,74,76,Flat,Semi-Detached,2011-05-25,E07000110,E14000700,Kent,2011-05-25,rental (social),77,80,179,159.0,1.5,34,1.3,40.0,25.0,273.0,255.0,69.0,69.0,44.0,Single,Y,1st,Y,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,40.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 40% of fixed outlets,Average,Average,mains gas (not community),0.0,no corridor,,2.29,0.0,,natural,"1a, Westmorland Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2011-05-25 00:00:42,rental (social),5.0,2.0,200003685465.0,Address Matched +1482217849602018071710275141780398,"14, St. Catherines Road",,,ME15 9WP,4642147478,C,B,71,88,House,Detached,2018-05-01,E07000110,E14000700,Kent,2018-07-17,rental (social),68,87,197,69.0,3.1,35,1.1,65.0,65.0,326.0,387.0,310.0,68.0,90.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,6.0,6.0,100.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"14, St. Catherines Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2007 onwards,2018-07-17 10:27:51,rental (social),,,10014311728.0,Address Matched +851734893552016080315423098060304,"66, Tarragon Road",,,ME16 0NG,3410382078,C,B,75,87,House,End-Terrace,2016-08-03,E07000110,E14000804,Kent,2016-08-03,rental (private),74,85,149,71.0,2.3,26,1.1,67.0,67.0,412.0,412.0,103.0,69.0,88.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,92.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 92% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,2.5,,N,natural,"66, Tarragon Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2016-08-03 15:42:30,rental (private),,,10022901795.0,Address Matched +270033680142009042208300460012898,"56, Quarry Road",,,ME15 6UD,125580668,C,C,79,79,House,Mid-Terrace,2009-04-21,E07000110,E14000804,Kent,2009-04-22,rental (social),76,76,165,165.0,2.2,27,2.2,38.0,38.0,320.0,320.0,86.0,86.0,80.8,Single,Y,NO DATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,100.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.43,0.0,N,natural,"56, Quarry Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2009-04-22 08:30:04,rental (social),,,200003682063.0,Address Matched +1559356099962017072814554202178203,Ambleside,Ulcombe Road,Langley,ME17 3JE,71982578,D,B,65,82,Bungalow,Detached,2017-07-13,E07000110,E14000700,Kent,2017-07-28,marketed sale,64,82,223,102.0,3.4,39,1.6,64.0,64.0,639.0,531.0,138.0,82.0,86.0,dual,Y,NODATA!,,,2106.0,100.0,triple glazing,Normal,0.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully triple glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"Ambleside, Ulcombe Road, Langley",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2017-07-28 14:55:42,owner-occupied,,,200003697773.0,Address Matched +1729577880352019061712041391910467,"10, Bergamot Road",Allington,,ME16 9FX,4790015678,B,B,86,87,House,Detached,2019-06-17,E07000110,E14000804,Kent,2019-06-17,new dwelling,85,87,75,64.0,1.8,13,1.5,80.0,80.0,316.0,317.0,103.0,57.0,133.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.19 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.16 W/m-¦K,Good,Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"10, Bergamot Road, Allington",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2019-06-17 12:04:13,unknown,38.0,38.0,10093306663.0,Address Matched +1670002879142018101015232962089608,"3, Dale Court",Boxley Road,,ME5 9GX,5171870678,C,B,72,81,House,Detached,2018-10-10,E07000110,E14000700,Kent,2018-10-10,marketed sale,66,75,163,114.0,6.3,29,4.5,167.0,109.0,996.0,901.0,159.0,128.0,220.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,8.0,8.0,47.0,0.0,From main system,Good,Good,"Suspended, limited insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 47% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"3, Dale Court, Boxley Road",Maidstone,Faversham and Mid Kent,CHATHAM,England and Wales: 1996-2002,2018-10-10 15:23:29,owner-occupied,,,10014309288.0,Address Matched +246937459222017112022370149608883,"68, Hardy Street",,,ME14 2SJ,8498549568,D,C,61,80,House,Mid-Terrace,2017-11-20,E07000110,E14000804,Kent,2017-11-20,marketed sale,61,82,255,113.0,3.7,40,1.5,73.0,73.0,724.0,556.0,159.0,74.0,93.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,6.0,6.0,80.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"68, Hardy Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2017-11-20 22:37:01,owner-occupied,,,200003702734.0,Address Matched +412925462062020070810184360338360,"42, Arundel Square",,,ME15 6HB,6649680768,C,C,79,80,Flat,End-Terrace,2020-07-07,E07000110,E14000804,Kent,2020-07-08,rental (private),82,83,127,123.0,1.4,22,1.4,76.0,59.0,225.0,227.0,98.0,98.0,63.0,Unknown,Y,Ground,N,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,71.0,0.0,From main system,Good,Good,"Suspended, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 71% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,3.9,,,N,natural,"42, Arundel Square",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2020-07-08 10:18:43,rental (private),,,10022895142.0,Address Matched +533591034232012040417311876068804,Ivens Oast,New House Lane,Headcorn,TN27 9JL,3446839768,D,C,60,80,House,Semi-Detached,2012-04-04,E07000110,E14000700,Kent,2012-04-04,marketed sale,51,75,169,82.0,13.0,39,6.3,155.0,106.0,2062.0,1226.0,214.0,162.0,330.0,Single,N,NODATA!,,,2106.0,10.0,double glazing installed before 2002,Normal,0.0,9.0,9.0,50.0,4.0,From main system,Average,Poor,"Solid, no insulation (assumed)",,,Some double glazing,Very Poor,Very Poor,"Solid brick, with internal insulation",Good,Good,"Room heaters, wood logs",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, oil",Average,Average,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,oil (not community),0.0,NO DATA!,,,0.0,,natural,"Ivens Oast, New House Lane, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,England and Wales: 1991-1995,2012-04-04 17:31:18,owner-occupied,18.0,9.0,200003698570.0,Address Matched +970979696612015030515114092050014,"46, Birch Drive",,,ME5 8YU,494621178,D,B,62,87,House,Mid-Terrace,2015-03-05,E07000110,E14000700,Kent,2015-03-05,marketed sale,63,87,248,71.0,3.0,43,0.9,58.0,58.0,453.0,378.0,303.0,69.0,70.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,75.0,0.0,"Electric immersion, standard tariff",Very Poor,Poor,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, partial insulation (assumed)",Average,Average,,,,"Pitched, 350 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"46, Birch Drive",Maidstone,Faversham and Mid Kent,CHATHAM,England and Wales: 1976-1982,2015-03-05 15:11:40,owner-occupied,,,200003676646.0,Address Matched +597082229842012111200032681429298,"10, Turgis Close",Langley,,ME17 3HD,8866124868,D,B,64,91,Bungalow,Mid-Terrace,2012-11-11,E07000110,E14000700,Kent,2012-11-12,rental (social),63,93,235,27.0,2.7,45,0.4,52.0,35.0,404.0,286.0,148.0,65.0,60.0,Single,Y,NODATA!,,,2107.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,50.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"10, Turgis Close, Langley",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2012-11-12 00:03:26,rental (social),8.0,4.0,200003697426.0,Address Matched +946687319022017040410332449928863,"2, York Road",,,ME15 7QS,6418159078,D,C,57,71,House,End-Terrace,2017-04-02,E07000110,E14000700,Kent,2017-04-04,marketed sale,50,64,323,216.0,4.4,57,3.0,53.0,53.0,818.0,771.0,103.0,68.0,77.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,100.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"2, York Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2017-04-04 10:33:24,owner-occupied,,,200003685062.0,Address Matched +1750592121132019091213002918978307,"22, Monkdown",Downswood,,ME15 8SP,2798366678,D,B,68,88,House,Semi-Detached,2019-09-12,E07000110,E14000700,Kent,2019-09-12,rental (private),67,87,244,79.0,2.4,43,0.8,61.0,49.0,386.0,341.0,119.0,71.0,55.0,dual,Y,NODATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,75.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"22, Monkdown, Downswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2019-09-12 13:00:29,rental (private),,,200003691492.0,Address Matched +386593759222019102114162389698851,Flat 5 The Sovereigns,Queens Road,,ME16 0JG,5868509668,D,C,65,76,Flat,Mid-Terrace,2019-10-21,E07000110,E14000804,Kent,2019-10-21,rental (private),47,61,393,275.0,4.0,66,2.8,80.0,58.0,558.0,318.0,169.0,169.0,60.0,dual,N,Ground,N,,2401.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,63.0,0.0,"Electric immersion, off-peak",Average,Poor,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,(another dwelling above),,,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 63% of fixed outlets,Good,Good,electricity (not community),0.0,unheated corridor,14.75,,,N,natural,"Flat 5 The Sovereigns, Queens Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2019-10-21 14:16:23,rental (private),,,200003657108.0,Address Matched +1458116656632016062907364313278906,"11, Florence Road",,,ME16 8EN,5653965478,E,C,53,77,House,Mid-Terrace,2016-06-28,E07000110,E14000804,Kent,2016-06-29,marketed sale,54,79,298,130.0,5.0,45,2.0,134.0,67.0,1069.0,717.0,158.0,88.0,111.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,0.0,1.0,From main system,Good,Good,"To unheated space, insulated",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,2.46,,N,natural,"11, Florence Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2016-06-29 07:36:43,owner-occupied,,,200003667706.0,Address Matched +741737476812016120909440099069894,"169, Plains Avenue",,,ME15 7AX,8410694968,D,B,67,85,House,Mid-Terrace,2016-12-09,E07000110,E14000700,Kent,2016-12-09,marketed sale,67,85,232,91.0,2.6,41,1.1,90.0,45.0,455.0,423.0,137.0,84.0,65.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, 270 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"169, Plains Avenue",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2016-12-09 09:44:00,owner-occupied,,,200003714220.0,Address Matched +183406922442020060111511955400098,Flat 5 Dunkeld House,Westmorland Road,,ME15 8JH,5454724568,C,C,69,76,Flat,Mid-Terrace,2020-06-01,E07000110,E14000700,Kent,2020-06-01,none of the above,71,79,254,181.0,1.8,45,1.3,79.0,39.0,334.0,256.0,73.0,73.0,41.0,dual,Y,Ground,N,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,2.0,2.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,no corridor,,,,N,natural,"Flat 5 Dunkeld House, Westmorland Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2020-06-01 11:51:19,rental (social),,,200003685592.0,Address Matched +8f7f3c7abd86bded412cdc707081345698f6ea45ba46da2d9bfea6de66cfb8e8,60 FAUCHONS LANE,BEARSTED,,ME14 4AY,10001542429,E,C,52,76,House,Detached,2021-08-06,E07000110,E14000700,Kent,2021-08-09,marketed sale,37,63,328,151.0,6.9,69,3.5,78.0,78.0,961.0,685.0,184.0,78.0,100.0,Unknown,Y,,,,,100.0,"double glazing, unknown install date",Normal,2.0,6.0,6.0,100.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, coal",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.47,0.0,N,natural,"60 FAUCHONS LANE, BEARSTED",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2021-08-09 06:43:55,Owner-occupied,11.0,,200003687730.0,Energy Assessor +959581959002016062320041316069388,Pastorale,Ulcombe Hill,Ulcombe,ME17 1DN,1050150178,D,B,59,81,Bungalow,Detached,2016-06-18,E07000110,E14000700,Kent,2016-06-23,RHI application,63,85,122,19.0,5.2,33,1.9,91.0,91.0,1099.0,882.0,129.0,93.0,159.0,dual,N,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,8.0,8.0,100.0,1.0,"From main system, plus solar",Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, wood logs",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, oil",Average,Average,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,oil (not community),0.0,NO DATA!,,2.48,,Y,natural,"Pastorale, Ulcombe Hill, Ulcombe",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2016-06-23 20:04:13,owner-occupied,,,200003701198.0,Address Matched +629435005932011051617244753968205,"19, Bridge Mill Way",Tovil,,ME15 6FD,583276868,C,C,70,74,House,Detached,2011-05-16,E07000110,E14000804,Kent,2011-05-16,marketed sale,69,74,183,152.0,3.2,35,2.6,82.0,46.0,490.0,438.0,96.0,85.0,90.0,Unknown,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,6.0,6.0,22.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, insulated (assumed)",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 22% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,2.3,0.0,,natural,"19, Bridge Mill Way, Tovil",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2011-05-16 17:24:47,owner-occupied,9.0,2.0,200003715972.0,Address Matched +232065688452009021112484306910252,"64, Quarry Road",,,ME15 6UD,2275867568,E,D,53,66,House,Semi-Detached,2009-02-10,E07000110,E14000804,Kent,2009-02-11,marketed sale,47,59,391,288.0,5.0,65,3.7,59.0,36.0,653.0,517.0,137.0,99.0,75.8,Single,Y,NO DATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,35.0,0.0,From main system,Average,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Average,Good,Programmer and room thermostat,Poor,Poor,Low energy lighting in 35% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.5,0.0,N,natural,"64, Quarry Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2009-02-11 12:48:43,owner-occupied,,,200003682068.0,Address Matched +1172368419922014071110252955508284,"19, Mallings Drive",Bearsted,,ME14 4HE,8540155278,D,B,68,83,House,Detached,2014-07-10,E07000110,E14000700,Kent,2014-07-11,marketed sale,65,81,174,82.0,4.0,33,1.9,131.0,66.0,697.0,579.0,137.0,93.0,119.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,6.0,6.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"19, Mallings Drive, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2014-07-11 10:25:29,owner-occupied,22.0,0.0,200003694698.0,Address Matched +8f00898aaa2303bf005619af08ffcb0b01d1778c315b57171ef4af85b72e1103,7 Campbell Road,,,ME15 6PY,10001552131,D,B,62,84,House,Mid-Terrace,2021-08-23,E07000110,E14000804,Kent,2021-08-23,marketed sale,61,84,256,96.0,3.9,41,1.4,106.0,75.0,709.0,476.0,120.0,78.0,93.0,Single,Y,,,,,100.0,"double glazing, unknown install date",Normal,1.0,4.0,4.0,58.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 58% of fixed outlets,Good,Good,mains gas (not community),0.0,,,2.017,0.0,N,natural,7 Campbell Road,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2021-08-23 18:11:09,Owner-occupied,12.0,,200003692853.0,Energy Assessor +1644138199742018063016310156882668,"8, Headcorn Road",Platts Heath,,ME17 2NH,1727398578,D,A,56,97,Bungalow,Detached,2018-06-26,E07000110,E14000700,Kent,2018-06-30,FiT application,48,88,200,-9.0,6.5,52,1.2,119.0,77.0,630.0,420.0,141.0,68.0,125.0,Unknown,N,NODATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,44.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, oil",Average,Average,Programmer and room thermostat,Average,Average,Low energy lighting in 44% of fixed outlets,Average,Average,oil (not community),0.0,NO DATA!,,,,N,natural,"8, Headcorn Road, Platts Heath",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1976-1982,2018-06-30 16:31:01,owner-occupied,,,200003703766.0,Address Matched +882057489062015021110524404318625,"29, Chancery Lane",,,ME15 6EG,2046894078,D,B,61,85,House,Mid-Terrace,2015-02-09,E07000110,E14000804,Kent,2015-02-11,marketed sale,55,84,287,90.0,4.0,51,1.3,51.0,51.0,739.0,459.0,125.0,68.0,80.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"29, Chancery Lane",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2015-02-11 10:52:44,owner-occupied,,,200003691123.0,Address Matched +8f0a5d3f243d766afb38f045db2aed338ffe92b09d7caab487adbd1ee60f1feb,25 TENACRE COURT,ASHFORD ROAD,HARRIETSHAM,ME17 1AH,10001437661,D,D,60,60,Flat,Mid-Terrace,2021-08-05,E07000110,E14000700,Kent,2021-08-05,not sale or rental,64,64,239,239.0,2.9,40,2.9,78.0,78.0,768.0,768.0,240.0,240.0,73.0,standard tariff,,3,Y,,,100.0,,,,,,100.0,0.0,Electric instantaneous at point of use,Very Poor,Poor,(other premises below),,,Fully double glazed,Good,Good,Average thermal transmittance 0.47 W/m-¦K,Good,Good,,,,Average thermal transmittance 0.32 W/m-¦K,Average,Average,"Boiler and radiators, electric",Very Poor,Poor,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",0.0,,,2.43,,,,"25 TENACRE COURT, ASHFORD ROAD, HARRIETSHAM",Maidstone,Faversham and Mid Kent,MAIDSTONE,2020,2021-08-05 13:51:57,Owner-occupied,5.0,,10095449490.0,Energy Assessor +902925649902013032620045801672268,"132, Merton Road",Bearsted,,ME15 8LS,4934346078,D,B,63,86,House,Semi-Detached,2013-03-26,E07000110,E14000700,Kent,2013-03-26,marketed sale,61,86,216,62.0,3.6,42,1.1,75.0,48.0,592.0,382.0,113.0,77.0,86.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,4.0,4.0,45.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 45% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"132, Merton Road, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2013-03-26 20:04:58,owner-occupied,11.0,5.0,200003686112.0,Address Matched +324262560302009071017022063419408,Flat 3 Bank View,Church Street,Tovil,ME15 6RB,3364964668,D,D,57,62,Maisonette,Mid-Terrace,2009-07-10,E07000110,E14000804,Kent,2009-07-10,marketed sale,54,57,501,468.0,2.8,75,2.6,38.0,21.0,285.0,252.0,172.0,172.0,37.1,dual,N,1st,N,3.0,2401.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,17.0,0.0,"Electric immersion, off-peak",Very Poor,Poor,"To external air, uninsulated (assumed)",,,Fully double glazed,Good,Good,"Timber frame, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,(another dwelling above),,,Electric storage heaters,Poor,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 17% of fixed outlets,Poor,Poor,electricity - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.36,0.0,N,natural,"Flat 3 Bank View, Church Street, Tovil",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2009-07-10 17:02:20,owner-occupied,,,200003721659.0,Address Matched +115527299222015050321203988618975,"11, Sylvan Glade",,,ME5 9PW,7899988468,D,B,57,87,House,Detached,2015-04-29,E07000110,E14000700,Kent,2015-05-03,ECO assessment,49,85,305,74.0,5.2,54,1.3,99.0,59.0,859.0,448.0,197.0,75.0,97.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,6.0,6.0,33.0,0.0,From main system,Average,Average,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 33% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"11, Sylvan Glade",Maidstone,Faversham and Mid Kent,CHATHAM,England and Wales: 1983-1990,2015-05-03 21:20:39,owner-occupied,,,200003708161.0,Address Matched +749764184232012053014471800068300,Flat 201 Scotney Gardens,St. Peters Street,,ME16 0GW,8050355968,C,C,76,80,Flat,End-Terrace,2012-04-01,E07000110,E14000804,Kent,2012-05-30,marketed sale,65,67,278,264.0,2.2,49,2.1,64.0,32.0,176.0,160.0,117.0,96.0,45.0,dual,N,3rd,Y,,2401.0,100.0,double glazing installed before 2002,Normal,0.0,2.0,2.0,0.0,0.0,"Electric immersion, off-peak",Average,Very Poor,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,Portable electric heaters (assumed),,,"Pitched, 200 mm loft insulation",Good,Good,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,No low energy lighting,Very Poor,Very Poor,electricity (not community),0.0,unheated corridor,4.5,,0.0,,natural,"Flat 201 Scotney Gardens, St. Peters Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2012-05-30 14:47:18,owner-occupied,6.0,0.0,10022893568.0,Address Matched +723950539842011111912564596399788,"37, Hockers Lane",Detling,,ME14 3JN,1898733968,E,D,53,64,Bungalow,Detached,2011-11-18,E07000110,E14000700,Kent,2011-11-19,marketed sale,47,60,293,214.0,6.4,56,4.7,87.0,55.0,969.0,773.0,183.0,107.0,66.55,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,1.0,6.0,6.0,42.0,0.0,"From main system, no cylinderstat",Poor,Poor,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Flat, insulated (assumed)",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 42% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,2.43,0.0,,natural,"37, Hockers Lane, Detling",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2011-11-19 12:56:45,owner-occupied,12.0,5.0,200003693936.0,Address Matched +1187938609062019020912193136388541,"301, Willington Street",,,ME15 8AS,4346066278,C,B,70,85,House,Semi-Detached,2019-02-08,E07000110,E14000700,Kent,2019-02-09,FiT application,68,83,214,95.0,2.7,38,1.3,55.0,55.0,433.0,406.0,135.0,75.0,73.0,Single,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"301, Willington Street",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2019-02-09 12:19:31,owner-occupied,,,200003684433.0,Address Matched +608027709302017021316494483539678,Flat 1 Wykeham Court,"2, Cornwallis Road",,ME16 8BA,335505868,C,C,78,79,Flat,Semi-Detached,2017-02-13,E07000110,E14000804,Kent,2017-02-13,rental (private),82,82,138,134.0,1.2,24,1.2,51.0,40.0,222.0,224.0,79.0,79.0,50.0,Unknown,Y,Ground,N,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,3.0,3.0,71.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Very Good,Very Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 71% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,6.25,,,N,natural,"Flat 1 Wykeham Court, 2, Cornwallis Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2017-02-13 16:49:44,rental (private),,,10014307884.0,Address Matched +337482320062009080517451045058601,"35, Marigold Way",,,ME16 0ZJ,412265668,B,B,82,83,House,Mid-Terrace,2009-08-05,E07000110,E14000804,Kent,2009-08-05,rental (private),81,82,139,134.0,1.6,23,1.5,53.0,37.0,250.0,252.0,80.0,80.0,69.3,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,56.0,0.0,From main system,Very Good,Very Good,"Solid, insulated (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 56% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.47,0.0,N,natural,"35, Marigold Way",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2009-08-05 17:45:10,rental (private),,,10022901868.0,Address Matched +8f33929abac9d0fbaff5f7c8aadbc0cfd081ccd1f7b24c044a5aa43ba4ba047d,Rhossili,Weavering Street,Weavering,ME14 5JP,10001658385,D,C,66,80,House,Semi-Detached,2021-07-23,E07000110,E14000700,Kent,2021-07-23,marketed sale,63,79,205,108.0,3.9,36,2.1,94.0,94.0,772.0,639.0,83.0,55.0,108.0,Single,Y,,,,,100.0,double glazing installed before 2002,Normal,1.0,6.0,6.0,86.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,"Room heaters, electric",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 86% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.44,0.0,N,natural,"Rhossili, Weavering Street, Weavering",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2021-07-23 14:15:19,Owner-occupied,14.0,,200003689279.0,Address Matched +1086464749342014112016054111942008,"4, Ashford Road",Bearsted,,ME14 4LP,9376549178,C,B,69,85,House,Semi-Detached,2014-11-20,E07000110,E14000700,Kent,2014-11-20,none of the above,65,84,170,68.0,4.1,33,1.7,68.0,68.0,721.0,530.0,178.0,89.0,124.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,8.0,8.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"4, Ashford Road, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1900-1929,2014-11-20 16:05:41,owner-occupied,18.0,18.0,200003687679.0,Address Matched +737118249302012010611213191420868,"53, Stanley Close",Staplehurst,,TN12 0TA,9382144968,C,C,71,74,House,Semi-Detached,2012-01-06,E07000110,E14000804,Kent,2012-01-06,marketed sale,72,76,182,158.0,2.3,35,2.0,50.0,39.0,374.0,327.0,106.0,106.0,65.61,dual,Y,NODATA!,,,2106.0,90.0,double glazing installed during or after 2002,Normal,1.0,3.0,3.0,73.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Mostly double glazing,Good,Good,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 25 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 73% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,2.3,0.0,,natural,"53, Stanley Close, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1967-1975,2012-01-06 11:21:31,owner-occupied,11.0,8.0,200003678751.0,Address Matched +1826807652962020091707333442248680,"27, Elm Grove",,,ME15 7RT,8462512778,D,B,55,89,House,Semi-Detached,2020-09-14,E07000110,E14000804,Kent,2020-09-17,marketed sale,48,89,351,58.0,4.5,62,0.8,60.0,60.0,720.0,334.0,176.0,69.0,73.0,Unknown,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,100.0,0.0,From main system,Average,Average,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 270 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"27, Elm Grove",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2020-09-17 07:33:34,owner-occupied,,,200003695346.0,Address Matched +1094728809762014073116144530498894,"33, Bell Meadow",,,ME15 9ND,9326000278,E,B,46,83,House,Semi-Detached,2014-07-31,E07000110,E14000700,Kent,2014-07-31,marketed sale,45,82,305,82.0,6.2,58,1.7,124.0,62.0,1011.0,550.0,384.0,86.0,107.0,Single,Y,NODATA!,,,2106.0,75.0,double glazing installed before 2002,Normal,1.0,6.0,6.0,0.0,1.0,"Electric immersion, standard tariff",Very Poor,Very Poor,"Solid, no insulation (assumed)",,,Partial double glazing,Poor,Poor,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 25 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"33, Bell Meadow",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2014-07-31 16:14:45,owner-occupied,20.0,0.0,200003682724.0,Address Matched +166654280922008101717384952448798,3 Park Cottages,Wagon Lane,Paddock Wood,TN12 6PU,9570872568,F,E,26,47,House,Semi-Detached,2008-10-14,E07000110,E14000804,Kent,2008-10-17,marketed sale,15,34,609,388.0,9.6,151,6.1,57.0,28.0,771.0,501.0,196.0,163.0,74.52,Single,Y,NO DATA!,,,2601.0,90.0,double glazing installed during or after 2002,Normal,1.0,5.0,2.0,0.0,0.0,"From main system, no cylinderstat",Poor,Very Poor,"Suspended, no insulation (assumed)",,,Partial double glazing,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, mains gas",,,"Flat, limited insulation (assumed)",Very Poor,Very Poor,"Room heaters, coal",Average,Very Poor,No thermostatic control of room temperature,Poor,Poor,No low energy lighting,Very Poor,Very Poor,INVALID!,0.0,NO DATA!,,2.56,0.0,N,natural,"3 Park Cottages, Wagon Lane, Paddock Wood",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1900-1929,2008-10-17 17:38:49,owner-occupied,,,200003655049.0,Address Matched +1572625452012017090615253998030158,"66, Howard Drive",,,ME16 0QD,1864283578,D,B,59,87,Bungalow,Semi-Detached,2017-09-06,E07000110,E14000804,Kent,2017-09-06,marketed sale,53,87,311,66.0,3.7,55,0.8,68.0,47.0,604.0,349.0,155.0,68.0,68.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,56.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 56% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"66, Howard Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2017-09-06 15:25:39,owner-occupied,,,200003703503.0,Address Matched +534190185352010090119304794000076,"101, Madginford Road",Bearsted,,ME15 8ND,666549768,E,C,45,69,Bungalow,Semi-Detached,2010-09-01,E07000110,E14000700,Kent,2010-09-01,marketed sale,39,64,552,301.0,4.8,93,2.6,43.0,27.0,585.0,334.0,283.0,191.0,58.54,Single,Y,NO DATA!,,,2102.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,40.0,0.0,"From main system, no cylinder thermostat",Poor,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Average,Good,"Programmer, no room thermostat",Very Poor,Very Poor,Low energy lighting in 40% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.44,0.0,N,natural,"101, Madginford Road, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2010-09-01 19:30:47,owner-occupied,,,200003686266.0,Address Matched +1048922880352013112419030898279215,"14, Saltwood Road",,,ME15 6UY,2526086178,E,C,48,74,House,Semi-Detached,2013-11-22,E07000110,E14000804,Kent,2013-11-24,marketed sale,47,74,325,141.0,4.5,62,2.0,81.0,44.0,807.0,613.0,133.0,70.0,73.0,Single,Y,NODATA!,,,2104.0,90.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,14.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Mostly double glazing,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,"Roof room(s), limited insulation (assumed)",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 14% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"14, Saltwood Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2013-11-24 19:03:08,owner-occupied,7.0,1.0,200003665374.0,Address Matched +277417827252009050713264303010469,"158, Boxley Road",Penenden Heath,,ME14 2HE,4981731668,D,D,63,66,House,Semi-Detached,2009-05-07,E07000110,E14000804,Kent,2009-05-07,marketed sale,58,61,263,246.0,4.9,44,4.6,103.0,59.0,636.0,615.0,126.0,126.0,111.01,dual,Y,NO DATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,2.0,6.0,6.0,25.0,1.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,Programmer and room thermostat,Poor,Poor,Low energy lighting in 25% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,0.0,N,natural,"158, Boxley Road, Penenden Heath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2009-05-07 13:26:43,owner-occupied,,,200003706709.0,Address Matched +804257249402012062215340296922428,Flat 21 Lynx Gate,Massey Close,,ME15 6ZR,9495849968,B,B,88,88,Flat,NO DATA!,2012-06-22,E07000110,E14000804,Kent,2012-06-22,new dwelling,92,92,49,49.0,0.7,9,0.7,44.0,44.0,191.0,191.0,88.0,88.0,79.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,9.0,,From main system,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.21 W/m?K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,,,NO DATA!,"Flat 21 Lynx Gate, Massey Close",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2012-06-22 15:34:02,,9.0,9.0,10014313191.0,Address Matched +497238279402010060914264473600118,"32, Barton Road",,,ME15 7BX,7426976768,D,C,65,78,House,End-Terrace,2010-06-09,E07000110,E14000804,Kent,2010-06-09,marketed sale,60,75,266,169.0,4.0,44,2.6,96.0,52.0,594.0,396.0,115.0,101.0,90.41,dual,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,5.0,5.0,17.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 17% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.41,0.0,N,natural,"32, Barton Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2010-06-09 14:26:44,owner-occupied,,,200003683752.0,Address Matched +10640287212008111410454306989445,"7, Furfield Chase",Boughton Monchelsea,,ME17 4GD,4596767468,B,B,83,85,House,Mid-Terrace,2008-11-14,E07000110,E14000700,Kent,2008-11-14,new dwelling,83,84,105,99.0,2.0,17,1.9,88.0,57.0,226.0,230.0,90.0,90.0,116.75,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,5.0,,From main system,Very Good,Very Good,Average thermal transmittance = 0.19 W/m?K,Very Good,Very Good,Fully double glazed,Good,Good,Average thermal transmittance = 0.24 W/m?K,Very Good,Very Good,,,,Average thermal transmittance = 0.14 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 45% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.31,,,NO DATA!,"7, Furfield Chase, Boughton Monchelsea",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2007 onwards,2008-11-14 10:45:43,,11.0,5.0,10022901145.0,Address Matched +1389119182712015112509063298259640,Flat 7 Nolan Court,"2, Terrace Road",,ME16 8HU,6096280478,B,B,87,87,Flat,NO DATA!,2015-11-24,E07000110,E14000804,Kent,2015-11-25,new dwelling,92,92,56,56.0,0.5,11,0.5,45.0,45.0,206.0,206.0,69.0,69.0,48.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.17 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.18 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Flat 7 Nolan Court, 2, Terrace Road",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2015-11-25 09:06:32,unknown,25.0,25.0,10014316090.0,Address Matched +1786775562222020022115485159098750,"14, Hallwards",Staplehurst,,TN12 0NT,5568629678,D,C,60,77,Bungalow,Semi-Detached,2020-02-21,E07000110,E14000804,Kent,2020-02-21,marketed sale,54,72,293,161.0,3.7,52,2.1,58.0,58.0,648.0,569.0,100.0,67.0,71.0,Unknown,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,100.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, limited insulation (assumed)",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"14, Hallwards, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1976-1982,2020-02-21 15:48:51,owner-occupied,,,200003677222.0,Address Matched +173377410942008102410461950382248,"77, Queen Elizabeth Square",,,ME15 9DH,3992813568,B,B,81,83,House,End-Terrace,2008-10-24,E07000110,E14000700,Kent,2008-10-24,marketed sale,81,82,127,119.0,2.1,0,1.9,87.0,49.0,231.0,236.0,85.0,85.0,37.56,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,3.0,,SAP05:Hot-Water,,,SAP05:Floor,,,SAP05:Windows,,,SAP05:Walls,,,SAP05:Secondary-Heating,,,SAP05:Roof,,,SAP05:Main-Heating,,,SAP05:Main-Heating-Controls,,,SAP05:Lighting,,,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,,,NO DATA!,"77, Queen Elizabeth Square",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2008-10-24 10:46:19,,13.0,3.0,200003710564.0,Address Matched +1709201119222019032717332453798871,Flat 12,Cornwallis House,Pudding Lane,ME14 1NY,7588163678,D,D,66,66,Flat,Detached,2019-02-21,E07000110,E14000804,Kent,2019-03-27,new dwelling,69,69,233,233.0,1.8,39,1.8,37.0,37.0,395.0,395.0,163.0,163.0,46.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,Electric instantaneous at point of use,Very Poor,Very Poor,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.27 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,"Room heaters, electric",Very Poor,Poor,Programmer and appliance thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"Flat 12, Cornwallis House, Pudding Lane",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2019-03-27 17:33:24,owner-occupied,8.0,8.0,, +796422499042013021209504595879928,"8, Parisfield Close",Staplehurst,,TN12 0BF,8034198968,B,B,83,83,House,Mid-Terrace,2013-02-12,E07000110,E14000804,Kent,2013-02-12,new dwelling,86,86,85,85.0,1.2,16,1.2,48.0,48.0,224.0,224.0,86.0,86.0,76.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.14 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.17 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.13 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"8, Parisfield Close, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,NO DATA!,2013-02-12 09:50:45,NO DATA!,13.0,13.0,10014314214.0,Address Matched +358897709242014071009020961749508,Flat 38 Pine Lodge,Tonbridge Road,,ME16 8TA,9281807668,C,C,76,78,Flat,Mid-Terrace,2014-07-10,E07000110,E14000804,Kent,2014-07-10,marketed sale,78,82,138,118.0,1.6,26,1.3,40.0,40.0,342.0,294.0,73.0,74.0,60.0,Unknown,Y,Ground,N,,2107.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,3.5,,0.0,,natural,"Flat 38 Pine Lodge, Tonbridge Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2014-07-10 09:02:09,owner-occupied,7.0,7.0,200003657901.0,Address Matched +604625618212011031512233897990482,Orchard House,Otham Lane,Bearsted,ME15 8SJ,4269874868,E,E,48,50,House,Detached,2011-03-15,E07000110,E14000700,Kent,2011-03-15,marketed sale,45,46,314,309.0,10.0,52,10.0,184.0,115.0,1565.0,1579.0,177.0,177.0,176.78,dual,Y,NO DATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,7.0,7.0,40.0,2.0,From main system,Very Good,Very Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 40% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,0.0,N,natural,"Orchard House, Otham Lane, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1900-1929,2011-03-15 12:23:38,owner-occupied,,,200003694597.0,Address Matched +434431099022010020921002512718380,"30, Sheals Crescent",,,ME15 6TJ,8192932768,E,D,48,55,House,Mid-Terrace,2010-02-09,E07000110,E14000804,Kent,2010-02-09,rental (private),44,50,387,335.0,6.0,64,5.2,74.0,48.0,923.0,825.0,117.0,102.0,92.25,Single,Y,NO DATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,1.0,4.0,4.0,44.0,2.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 44% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.45,0.0,N,natural,"30, Sheals Crescent",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2010-02-09 21:00:25,rental (private),,,200003681818.0,Address Matched +797310726232012060514041394068902,"21, Strachan Close",,,ME15 6ZT,2284998968,B,B,90,90,House,Mid-Terrace,2012-06-05,E07000110,E14000804,Kent,2012-06-05,new dwelling,94,94,37,37.0,0.5,7,0.5,42.0,42.0,189.0,189.0,90.0,90.0,75.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,9.0,,From main system,Good,Good,Average thermal transmittance 0.18 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.19 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.12 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.39,,,NO DATA!,"21, Strachan Close",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2012-06-05 14:04:13,,9.0,9.0,10014313105.0,Address Matched +563774375852010111108125695909184,"33, St. Welcumes Way",Harrietsham,,ME17 1BD,1439551868,D,C,65,74,House,End-Terrace,2010-11-10,E07000110,E14000700,Kent,2010-11-11,marketed sale,64,73,254,188.0,3.4,42,2.5,83.0,46.0,489.0,423.0,168.0,110.0,80.79,Unknown,Y,NO DATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,18.0,0.0,From main system,Good,Good,"Solid, limited insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 18% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.29,0.0,N,natural,"33, St. Welcumes Way, Harrietsham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1996-2002,2010-11-11 08:12:56,owner-occupied,,,200003704152.0,Address Matched +1131684535252016112310223596969220,"82, Allington Way",,,ME16 0HN,2068562278,C,B,71,87,House,Semi-Detached,2016-11-18,E07000110,E14000804,Kent,2016-11-23,ECO assessment,54,80,195,63.0,4.1,45,1.5,60.0,60.0,865.0,500.0,154.0,86.0,92.0,Single,Y,NODATA!,,,2102.0,100.0,double glazing installed during or after 2002,Normal,2.0,5.0,5.0,100.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, coal",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"82, Allington Way",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2016-11-23 10:22:35,owner-occupied,,,200003702804.0,Address Matched +442661487412010022123032199200079,"1, Willington Green",,,ME15 8AZ,901792768,C,C,77,77,Flat,End-Terrace,2010-02-21,E07000110,E14000700,Kent,2010-02-21,rental (social),74,74,253,253.0,1.6,42,1.6,22.0,22.0,289.0,289.0,72.0,72.0,37.94,dual,Y,Ground,N,2.0,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,100.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.34,0.0,N,natural,"1, Willington Green",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2010-02-21 23:03:21,rental (social),,,200003684540.0,Address Matched +231685270042009021112434255719198,6a Grosvenor House,Wallis Avenue,,ME15 9HZ,3087177568,D,C,66,75,Maisonette,Semi-Detached,2009-02-11,E07000110,E14000700,Kent,2009-02-11,rental (social),61,72,289,210.0,3.3,48,2.4,51.0,34.0,450.0,357.0,111.0,80.0,68.73,Single,Y,2nd,Y,4.0,2107.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,50.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Flat, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Poor,Poor,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.26,0.0,N,natural,"6a Grosvenor House, Wallis Avenue",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2009-02-11 12:43:42,rental (social),,,200003729575.0,Address Matched +1462487632312016080318033390060148,Flat 11 Allin Place,Fairmeadow,,ME14 1FT,1830206478,B,B,88,88,Flat,Mid-Terrace,2016-08-03,E07000110,E14000804,Kent,2016-08-03,new dwelling,91,91,59,59.0,0.7,11,0.7,54.0,54.0,184.0,184.0,102.0,102.0,71.0,standard tariff,,ground floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.17 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Flat 11 Allin Place, Fairmeadow",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2016-08-03 18:03:33,unknown,12.0,12.0,10091194284.0,Address Matched +1730641446132019062016542778278809,Flat 6 Block A,Maybourne Place,Staplehurst,TN12 0GP,4988815678,B,B,83,83,Flat,Detached,2019-06-20,E07000110,E14000804,Kent,2019-06-20,new dwelling,86,86,96,96.0,1.2,17,1.2,61.0,61.0,211.0,211.0,68.0,68.0,70.0,standard tariff,,top floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.19 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Flat 6 Block A, Maybourne Place, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,NO DATA!,2019-06-20 16:54:27,unknown,7.0,7.0,10094442120.0,Address Matched +384827210922009102012445898218421,"26, Stagshaw Close",,,ME15 6TN,2997198668,B,B,82,83,House,Mid-Terrace,2009-10-19,E07000110,E14000804,Kent,2009-10-20,rental (private),81,81,146,143.0,1.5,24,1.5,43.0,34.0,244.0,245.0,86.0,86.0,63.84,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,75.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,,0.0,N,natural,"26, Stagshaw Close",Maidstone,Maidstone and The Weald,MAIDSTONE,,2009-10-20 12:44:58,rental (private),,,10022893268.0,Address Matched +709408299222011102620370812368939,"67, Maxwell Drive",,,ME16 0QY,3113922968,D,D,62,65,House,Detached,2011-10-26,E07000110,E14000804,Kent,2011-10-26,marketed sale,59,62,232,214.0,4.3,45,4.0,87.0,48.0,695.0,668.0,83.0,83.0,62.51,Unknown,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,6.0,6.0,18.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 19% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,2.46,0.0,,natural,"67, Maxwell Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2011-10-26 20:37:08,owner-occupied,16.0,3.0,200003705516.0,Address Matched +1625184636512018042016325795980652,"206, Tonbridge Road",,,ME16 8SR,6205657578,E,C,43,80,House,Mid-Terrace,2018-04-18,E07000110,E14000804,Kent,2018-04-20,marketed sale,40,78,397,110.0,5.4,70,1.5,91.0,55.0,941.0,512.0,182.0,69.0,78.0,Single,Y,NODATA!,,,2103.0,100.0,"double glazing, unknown install date",Normal,2.0,4.0,4.0,33.0,2.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, electric",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Room thermostat only,Poor,Poor,Low energy lighting in 33% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"206, Tonbridge Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2018-04-20 16:32:57,owner-occupied,,,200003657539.0,Address Matched +749527259042012021319302895529178,"28, Bell Lane",Staplehurst,,TN12 0BB,3082555968,D,D,61,66,House,Semi-Detached,2012-02-13,E07000110,E14000804,Kent,2012-02-13,marketed sale,64,71,262,216.0,3.2,44,2.6,49.0,49.0,585.0,501.0,154.0,126.0,73.92,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,83.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, wood logs",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 83% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,2.28,0.0,,natural,"28, Bell Lane, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1950-1966,2012-02-13 19:30:28,owner-occupied,12.0,10.0,200003677287.0,Address Matched +8fb8a799905f2bd47d33bd50452eea07e7506af35a873b56fa7ddd941df3e4fb,"Flat 3 Adeline Heights, Rosalind Drive",,,ME14 2FP,10001604272,B,B,82,82,Flat,End-Terrace,2021-07-15,E07000110,E14000804,Kent,2021-07-15,new dwelling,84,84,104,104.0,1.3,18,1.3,60.0,60.0,210.0,210.0,89.0,89.0,69.0,standard tariff,,1,N,,,100.0,,,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.14 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.42 W/m-¦K,Good,Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.5,,,,"Flat 3 Adeline Heights, Rosalind Drive",Maidstone,Maidstone and The Weald,Maidstone,2018,2021-07-15 09:43:54,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,10.0,,10094441266.0,Address Matched +596673929442011062701075686492438,"24, Sutton Court",Marden,,TN12 9TF,2494024868,C,C,72,74,Flat,Semi-Detached,2011-06-27,E07000110,E14000804,Kent,2011-06-27,rental (social),74,77,194,178.0,1.8,37,1.6,34.0,27.0,318.0,299.0,70.0,70.0,47.17,Single,Y,2nd,Y,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,71.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Timber frame, as built, partial insulation (assumed)",Average,Average,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 71% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,8.0,2.39,0.0,,natural,"24, Sutton Court, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1967-1975,2011-06-27 01:07:56,rental (social),7.0,5.0,200003710594.0,Address Matched +298940647132019031519355222968007,"15, Staffa Road",,,ME15 9ST,4732092668,C,B,71,85,House,Semi-Detached,2019-03-15,E07000110,E14000804,Kent,2019-03-15,rental (private),67,83,191,91.0,3.6,34,1.8,73.0,73.0,563.0,489.0,155.0,73.0,108.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,2.0,6.0,6.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"15, Staffa Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2019-03-15 19:35:52,rental (private),,,200003678490.0,Address Matched +946614652442020012816031304902448,Flat 7,Holly Bush,38 Fisher Street,ME14 2SU,5443259078,D,C,66,77,Flat,Semi-Detached,2020-01-24,E07000110,E14000804,Kent,2020-01-28,rental (private),62,63,399,387.0,2.0,67,1.9,26.0,31.0,343.0,234.0,159.0,119.0,29.0,dual,N,1st,N,,2603.0,50.0,secondary glazing,Normal,0.0,2.0,2.0,100.0,0.0,"Electric immersion, off-peak",Poor,Poor,(another dwelling below),NO DATA!,,Partial secondary glazing,Poor,Poor,"Solid brick, as built, no insulation (assumed)",Poor,Poor,,,,(another dwelling above),,,"Room heaters, electric",Very Poor,Poor,Programmer and appliance thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,unheated corridor,2.66,,,N,natural,"Flat 7, Holly Bush, 38 Fisher Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2020-01-28 16:03:13,rental (private),,,10095448172.0,Address Matched +1505452226252016121614551590969647,"11, Filbert Way",,,ME15 8WT,6701609478,B,A,82,94,House,Semi-Detached,2016-12-16,E07000110,E14000700,Kent,2016-12-16,new dwelling,84,96,97,16.0,1.5,17,0.3,59.0,59.0,259.0,260.0,104.0,56.0,89.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.19 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.28 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.14 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"11, Filbert Way",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2016-12-16 14:55:15,unknown,10.0,10.0,10091194512.0,Address Matched +1491699609842016102616024547862868,"5, Downton Court",,,ME15 8WU,9800808478,B,B,82,82,Flat,NO DATA!,2016-10-26,E07000110,E14000700,Kent,2016-10-26,new dwelling,86,86,101,101.0,1.1,18,1.1,43.0,43.0,214.0,214.0,75.0,75.0,61.0,standard tariff,,ground floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.26 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.14 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"5, Downton Court",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2016-10-26 16:02:45,unknown,1.0,1.0,10091194501.0,Address Matched +1768665549222019112714120077538741,"8, Eastwell Close",,,ME14 5NQ,4717497678,D,B,65,86,House,Semi-Detached,2019-11-27,E07000110,E14000804,Kent,2019-11-27,marketed sale,61,84,249,84.0,3.2,44,1.1,113.0,57.0,498.0,385.0,126.0,75.0,73.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"8, Eastwell Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2019-11-27 14:12:00,owner-occupied,,,200003716745.0,Address Matched +812724947352012071217224190920201,Cannero,Somerfield Road,,ME16 8JJ,2145700078,D,C,61,77,Bungalow,Detached,2012-07-12,E07000110,E14000804,Kent,2012-07-12,marketed sale,58,76,198,107.0,5.8,38,3.2,124.0,68.0,956.0,754.0,143.0,91.0,154.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,6.0,6.0,18.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 18% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"Cannero, Somerfield Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2012-07-12 17:22:41,owner-occupied,17.0,3.0,200003657809.0,Address Matched +1399580796452017031016210395930746,Farthings,Honey Lane,Otham,ME15 8RJ,7672651478,D,B,64,82,Bungalow,Detached,2017-03-10,E07000110,E14000700,Kent,2017-03-10,rental (private),57,75,173,76.0,4.6,45,2.5,84.0,66.0,463.0,393.0,158.0,83.0,104.0,Single,N,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,6.0,6.0,71.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, oil",Average,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 71% of fixed outlets,Very Good,Very Good,oil (not community),0.0,NO DATA!,,,,N,natural,"Farthings, Honey Lane, Otham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2017-03-10 16:21:03,rental (private),,,200003690467.0,Address Matched +526910698032010081214111761968906,"29, Melrose Close",,,ME15 6BD,9661988768,B,B,88,88,House,Mid-Terrace,2010-08-12,E07000110,E14000804,Kent,2010-08-12,new dwelling,87,87,84,81.0,1.6,14,1.5,82.0,65.0,238.0,240.0,116.0,116.0,115.35,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,8.0,,From main system,Very Good,Very Good,Average thermal transmittance 0.20 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.21 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.10 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Very Good,Very Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in 73% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.3,,,NO DATA!,"29, Melrose Close",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2010-08-12 14:11:17,,11.0,8.0,10014307040.0,Address Matched +1486290009022016100718114717338126,"30, Mallet Avenue",,,ME15 8GT,2102077478,A,A,96,96,Maisonette,NO DATA!,2016-10-07,E07000110,E14000700,Kent,2016-10-07,new dwelling,98,98,-1,-1.0,0.0,1,0.0,39.0,39.0,239.0,239.0,69.0,69.0,54.0,standard tariff,,ground floor,,,,,NO DATA!,NO DATA!,,,,,0.0,"From main system, flue gas heat recovery",Very Good,Very Good,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.18 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"30, Mallet Avenue",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2016-10-07 18:11:47,unknown,1.0,1.0,10091193702.0,Address Matched +1005607973412013091209051897970416,"40, Merton Road",Bearsted,,ME15 8LJ,4650373178,D,B,60,90,House,Mid-Terrace,2013-09-11,E07000110,E14000700,Kent,2013-09-12,none of the above,57,92,251,35.0,3.5,48,0.5,88.0,44.0,559.0,307.0,151.0,73.0,73.0,Single,Y,NODATA!,,,2103.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,0.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,Room thermostat only,Poor,Poor,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"40, Merton Road, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2013-09-12 09:05:18,owner-occupied,8.0,0.0,200003685992.0,Address Matched +1035755099962014081219514375828404,"10, Oak Farm Gardens",Headcorn,,TN27 9TZ,706985178,E,C,42,78,Bungalow,Semi-Detached,2014-08-12,E07000110,E14000700,Kent,2014-08-12,marketed sale,21,74,383,120.0,8.3,116,1.9,51.0,51.0,974.0,570.0,228.0,75.0,71.0,Single,Y,NODATA!,,,2101.0,84.0,double glazing installed during or after 2002,Normal,1.0,4.0,4.0,88.0,0.0,From main system,Average,Very Poor,"Solid, no insulation (assumed)",,,Mostly double glazing,Good,Good,"Cavity wall, filled cavity",Good,Good,"Room heaters, smokeless fuel",,,"Roof room(s), no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, smokeless fuel",Average,Very Poor,No time or thermostatic control of room temperature,Very Poor,Very Poor,Low energy lighting in 88% of fixed outlets,Very Good,Very Good,smokeless coal,0.0,NO DATA!,,,0.0,,natural,"10, Oak Farm Gardens, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,England and Wales: 1950-1966,2014-08-12 19:51:43,owner-occupied,8.0,7.0,200003699751.0,Address Matched +589217089022011020617513163668239,6 Adelaide Cottages,Lower Road,East Farleigh,ME15 0JN,3628853868,E,D,44,57,House,Semi-Detached,2011-02-06,E07000110,E14000804,Kent,2011-02-06,marketed sale,39,50,444,337.0,6.7,74,5.1,101.0,55.0,1080.0,854.0,130.0,107.0,90.07,dual,Y,NO DATA!,,,2102.0,0.0,not defined,Normal,1.0,5.0,5.0,17.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Timber frame, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,Low energy lighting in 17% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.2,0.0,N,natural,"6 Adelaide Cottages, Lower Road, East Farleigh",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2011-02-06 17:51:31,owner-occupied,,,200003673865.0,Address Matched +18002189002012013113252944827198,116 Wallis Place,Hart Street,,ME16 8FD,6077088468,B,B,83,83,Flat,NO DATA!,2012-01-31,E07000110,E14000804,Kent,2012-01-31,new dwelling,87,87,87,87.0,1.1,16,1.1,38.0,38.0,194.0,194.0,88.0,88.0,68.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,6.0,,From main system,Good,Good,(other premises below),,,Fully double glazed,Good,Good,Average thermal transmittance 0.26 W/m?K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,,,NO DATA!,"116 Wallis Place, Hart Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2012-01-31 13:25:29,,6.0,6.0,10022900717.0,Address Matched +280629660402009050820165169110888,"2, Broadmere Terrace",St. Georges Square,,ME16 8JW,467761668,C,C,70,78,House,Mid-Terrace,2009-05-08,E07000110,E14000804,Kent,2009-05-08,rental (private),66,75,283,210.0,2.4,47,1.8,41.0,24.0,328.0,268.0,106.0,85.0,51.24,Single,Y,NO DATA!,,,2104.0,0.0,INVALID!,Normal,0.0,3.0,3.0,30.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Poor,Poor,Low energy lighting in 30% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,0.0,N,natural,"2, Broadmere Terrace, St. Georges Square",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2009-05-08 20:16:51,rental (private),,,200003658029.0,Address Matched +90080619211ab8c06ad12157b0a16f988ea9af50a1ab6771ee0d9390660a6a00,6 GROVELANDS,OLD ASHFORD ROAD,LENHAM,ME17 2QR,10001521561,C,C,73,76,Flat,End-Terrace,2021-08-04,E07000110,E14000700,Kent,2021-08-06,marketed sale,70,74,176,154.0,3.0,31,2.6,105.0,84.0,491.0,434.0,90.0,90.0,97.0,Unknown,Y,00,N,,,100.0,"double glazing, unknown install date",Normal,1.0,4.0,4.0,75.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, mains gas",,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,no corridor,,2.4,0.0,N,natural,"6 GROVELANDS, OLD ASHFORD ROAD, LENHAM",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1991-1995,2021-08-06 11:45:47,Owner-occupied,16.0,,200003715463.0,Energy Assessor +1392729509602015120412435946150048,"17, Freeman Way",,,ME15 8AN,8685701478,F,B,34,86,House,Semi-Detached,2015-12-04,E07000110,E14000700,Kent,2015-12-04,ECO assessment,32,85,486,82.0,7.6,85,1.3,113.0,57.0,1257.0,449.0,387.0,76.0,89.0,Single,Y,NODATA!,,,2602.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,1.0,0.0,0.0,"Electric immersion, standard tariff",Very Poor,Poor,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Room heaters, mains gas",Poor,Poor,Appliance thermostats,Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"17, Freeman Way",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2015-12-04 12:43:59,owner-occupied,,,200003684385.0,Address Matched +1639842369702018061316392656889478,17 Chestnut Road,Allington,,ME16 9FR,1737168578,B,B,86,88,House,Semi-Detached,2018-06-13,E07000110,E14000804,Kent,2018-06-13,new dwelling,89,91,69,51.0,0.9,12,0.6,52.0,52.0,187.0,187.0,89.0,48.0,72.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.19 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.16 W/m-¦K,Good,Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"17 Chestnut Road, Allington",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2018-06-13 16:39:26,unknown,25.0,25.0,10093306550.0,Address Matched +8ffb2e118abe2597482af1d009aebb9fb6f6693776eb41bd57227a2c7131288d,44 REGINALD ROAD,,,ME16 8HA,10001500137,D,C,55,80,House,Enclosed Mid-Terrace,2021-08-03,E07000110,E14000804,Kent,2021-08-03,marketed sale,48,76,354,141.0,4.1,62,1.7,57.0,57.0,683.0,477.0,115.0,75.0,66.0,Single,Y,,,,,80.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Mostly double glazing,Poor,Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.5,0.0,N,natural,44 REGINALD ROAD,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2021-08-03 12:06:00,Owner-occupied,4.0,,200003667879.0,Energy Assessor +1191238243252014081607510298940227,"32, Pear Tree Lane",,,ME15 9QX,2767386278,D,B,67,82,House,Semi-Detached,2014-08-12,E07000110,E14000804,Kent,2014-08-16,marketed sale,64,81,179,85.0,4.1,34,2.0,94.0,66.0,762.0,603.0,127.0,84.0,119.0,Single,Y,NODATA!,,,2106.0,65.0,"double glazing, unknown install date",Normal,1.0,7.0,7.0,57.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Partial double glazing,Poor,Poor,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 57% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"32, Pear Tree Lane",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2014-08-16 07:51:02,owner-occupied,14.0,8.0,200003675854.0,Address Matched +663269598252014052819225590240585,"31, Giddy Horn Lane",,,ME16 0JX,5558809868,E,B,52,84,House,Mid-Terrace,2014-05-28,E07000110,E14000804,Kent,2014-05-28,assessment for green deal,49,83,333,86.0,3.7,64,1.0,58.0,37.0,656.0,487.0,138.0,67.0,57.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,43.0,0.0,From main system,Average,Average,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, mains gas",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 43% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"31, Giddy Horn Lane",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2014-05-28 19:22:55,owner-occupied,7.0,3.0,200003657087.0,Address Matched +1526739069922017031308325500608003,"61, Bridge Mill Way",Tovil,,ME15 6FD,48650578,C,B,71,88,House,End-Terrace,2017-03-10,E07000110,E14000804,Kent,2017-03-13,marketed sale,70,88,200,69.0,2.4,35,0.9,81.0,48.0,380.0,353.0,135.0,78.0,69.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,5.0,5.0,30.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 30% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"61, Bridge Mill Way, Tovil",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2017-03-13 08:32:55,owner-occupied,,,200003716267.0,Address Matched +94806269262012082007485836308812,"37, Stratford Drive",,,ME15 9HJ,1309666468,C,A,77,94,House,Mid-Terrace,2012-08-20,E07000110,E14000700,Kent,2012-08-20,marketed sale,81,98,128,-3.0,1.4,24,0.0,74.0,37.0,227.0,234.0,91.0,55.0,58.0,Unknown,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,0.0,0.0,From main system,Good,Good,"Suspended, insulated (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"37, Stratford Drive",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2007 onwards,2012-08-20 07:48:58,owner-occupied,8.0,0.0,200003726788.0,Address Matched +834774191432014092123024258978303,"35, Northleigh Close",Loose,,ME15 9RP,9328361078,D,B,63,85,House,Semi-Detached,2014-09-17,E07000110,E14000804,Kent,2014-09-21,assessment for green deal,61,85,213,71.0,3.8,41,1.3,112.0,56.0,702.0,442.0,108.0,107.0,92.0,Single,Y,NODATA!,,,2102.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,0.0,0.0,From main system,Very Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 12 mm loft insulation",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"35, Northleigh Close, Loose",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2014-09-21 23:02:42,owner-occupied,13.0,0.0,200003675089.0,Address Matched +1378674279262015102508004030178475,"5, Tithe Mews",Harrietsham,,ME17 1FU,7335700478,C,B,78,88,House,End-Terrace,2015-10-23,E07000110,E14000700,Kent,2015-10-25,marketed sale,78,87,128,62.0,2.4,22,1.2,72.0,72.0,429.0,429.0,105.0,71.0,106.0,dual,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,More Than Typical,0.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Suspended, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"5, Tithe Mews, Harrietsham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2007 onwards,2015-10-25 08:00:40,owner-occupied,,,10091193427.0,Address Matched +1600351699962018011411454895678258,"63, Roseholme",,,ME16 8DX,5956975578,C,C,70,74,Flat,End-Terrace,2018-01-13,E07000110,E14000804,Kent,2018-01-14,rental (private),70,75,219,183.0,2.1,39,1.8,62.0,41.0,369.0,316.0,86.0,87.0,55.0,Single,Y,Ground,N,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,50.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,unheated corridor,5.93,,,N,natural,"63, Roseholme",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2018-01-14 11:45:48,rental (private),,,200003656524.0,Address Matched +196363690062008120418570915248418,Flat 162 Scotney Gardens,St. Peters Street,,ME16 0GT,1162925568,C,C,76,78,Flat,Enclosed End-Terrace,2008-12-04,E07000110,E14000804,Kent,2008-12-04,rental (private),72,73,274,268.0,1.9,41,1.8,45.0,24.0,150.0,155.0,98.0,98.0,45.72,Unknown,N,1st,N,5.0,2401.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,17.0,0.0,"Electric immersion, off-peak",Average,Poor,"To external air, insulated (assumed)",,,Fully double glazed,Good,Good,"Timber frame, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,(another dwelling above),,,Electric storage heaters,Poor,Poor,Manual charge control,Poor,Poor,Low energy lighting in 17% of fixed outlets,Poor,Poor,electricity - this is for backwards compatibility only and should not be used,0.0,unheated corridor,1.5,2.3,0.0,N,natural,"Flat 162 Scotney Gardens, St. Peters Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2008-12-04 18:57:09,rental (private),,,10022893529.0,Address Matched +661731859262019102723155108068991,3 West Pike Fish Farm Cottages,Pike Fish Lane,Laddingford,ME18 6BH,9051598868,F,C,31,74,House,Semi-Detached,2019-10-26,E07000110,E14000804,Kent,2019-10-27,unknown,31,68,372,116.0,7.0,89,2.5,67.0,67.0,1044.0,502.0,116.0,78.0,79.0,dual,N,NODATA!,,,2107.0,0.0,not defined,Normal,1.0,5.0,5.0,100.0,1.0,From main system,Average,Average,"Suspended, no insulation (assumed)",NO DATA!,,Single glazed,Very Poor,Very Poor,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, wood logs",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, oil",Average,Average,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,oil (not community),0.0,NO DATA!,,,,N,natural,"3 West Pike Fish Farm Cottages, Pike Fish Lane, Laddingford",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2019-10-27 23:15:51,unknown,,,200003725504.0,Address Matched +227470960962009021810252457738701,"20, Lullingstone Road",,,ME16 0TE,551697568,D,D,61,68,Bungalow,Detached,2009-02-17,E07000110,E14000804,Kent,2009-02-18,marketed sale,54,63,344,278.0,3.9,57,3.1,48.0,32.0,526.0,442.0,115.0,100.0,67.29,Single,Y,NO DATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,50.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Poor,Poor,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,0.0,N,natural,"20, Lullingstone Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2009-02-18 10:25:24,owner-occupied,,,200003662082.0,Address Matched +301356060552020061117141021900569,"27, Willington Green",,,ME15 8AY,5923013668,C,C,71,74,Flat,Semi-Detached,2020-06-11,E07000110,E14000700,Kent,2020-06-11,none of the above,72,76,232,199.0,1.8,41,1.6,57.0,43.0,335.0,294.0,83.0,83.0,45.0,dual,Y,Ground,N,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,2.0,2.0,67.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 67% of fixed outlets,Good,Good,mains gas (not community),0.0,no corridor,,,,N,natural,"27, Willington Green",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2020-06-11 17:14:10,rental (social),,,200003684530.0,Address Matched +223110147232012032308350355268404,"1, Bridge Street",Loose,,ME15 0BY,4465417568,F,D,38,61,House,Semi-Detached,2012-03-21,E07000110,E14000804,Kent,2012-03-23,marketed sale,32,53,414,242.0,8.1,88,4.8,78.0,48.0,1208.0,738.0,153.0,112.0,91.34,Single,Y,NODATA!,,,2104.0,0.0,not defined,Normal,1.0,4.0,4.0,40.0,1.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, smokeless fuel",,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 40% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,2.72,0.0,,natural,"1, Bridge Street, Loose",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2012-03-23 08:35:03,owner-occupied,10.0,4.0,200003663608.0,Address Matched +1050916147812013112718005199279213,4 Rock Farm Oast,Gibbs Hill,Nettlestead,ME18 5HT,2337796178,D,C,64,78,House,Mid-Terrace,2013-11-27,E07000110,E14000804,Kent,2013-11-27,marketed sale,60,74,192,115.0,5.0,37,3.1,134.0,67.0,852.0,790.0,98.0,98.0,135.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,5.0,5.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"4 Rock Farm Oast, Gibbs Hill, Nettlestead",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2013-11-27 18:00:51,owner-occupied,21.0,0.0,200003658863.0,Address Matched +850112401632016092006314845978405,"5, Charlock Close",Allington,,ME16 0UA,545472078,D,B,67,84,House,Detached,2016-09-19,E07000110,E14000804,Kent,2016-09-20,marketed sale,62,81,209,89.0,4.0,37,1.8,142.0,71.0,630.0,523.0,173.0,79.0,110.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,6.0,6.0,0.0,0.0,From main system,Good,Good,"Solid, limited insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,2.32,,N,natural,"5, Charlock Close, Allington",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2016-09-20 06:31:48,owner-occupied,,,200003659837.0,Address Matched +198082329062018050917342765218738,"88, Salisbury Road",Penenden Heath,,ME14 2TX,3603245568,D,B,68,84,House,Mid-Terrace,2018-05-09,E07000110,E14000804,Kent,2018-05-09,rental (private),63,82,212,90.0,3.6,37,1.6,64.0,64.0,621.0,462.0,108.0,78.0,97.0,Single,Y,NODATA!,,,2106.0,90.0,"double glazing, unknown install date",Normal,1.0,6.0,6.0,100.0,0.0,From main system,Very Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Mostly double glazing,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"88, Salisbury Road, Penenden Heath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2018-05-09 17:34:27,rental (private),,,200003703395.0,Address Matched +178441833552008103117213206789754,"16, Brogden Crescent",Leeds,,ME17 1RA,7440363568,D,C,62,72,Bungalow,Semi-Detached,2008-10-31,E07000110,E14000700,Kent,2008-10-31,rental (social),55,67,383,278.0,3.2,64,2.3,27.0,27.0,418.0,322.0,80.0,60.0,49.66,Single,Y,NO DATA!,,,2107.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,80.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Poor,Poor,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,0.0,N,natural,"16, Brogden Crescent, Leeds",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2008-10-31 17:21:32,rental (social),,,200003697929.0,Address Matched +489843289222010052415463526948570,"31, Northumberland Road",,,ME15 7LF,7231826768,E,E,49,51,House,Semi-Detached,2010-05-24,E07000110,E14000700,Kent,2010-05-24,marketed sale,51,53,354,339.0,4.7,57,4.7,42.0,42.0,658.0,625.0,303.0,303.0,81.62,Single,Y,NO DATA!,,,2601.0,90.0,secondary glazing,Normal,1.0,4.0,4.0,100.0,0.0,"Electric immersion, standard tariff",Very Poor,Poor,"Solid, no insulation (assumed)",,,Mostly secondary glazing,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 75 mm loft insulation",Good,Good,"Room heaters, mains gas",Average,Average,No thermostatic control of room temperature,Poor,Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.5,0.0,N,natural,"31, Northumberland Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2010-05-24 15:46:35,owner-occupied,,,200003712252.0,Address Matched +683164489262011092714384960648679,2 Borden Cottages,East Street,Harrietsham,ME17 1HL,7603840968,E,D,53,60,House,Semi-Detached,2011-09-24,E07000110,E14000700,Kent,2011-09-27,rental (private),50,58,351,288.0,3.8,67,3.2,61.0,32.0,651.0,564.0,82.0,73.0,56.794,Single,Y,NODATA!,,,2104.0,0.0,not defined,Normal,1.0,3.0,3.0,12.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 12% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,2.468,0.0,,natural,"2 Borden Cottages, East Street, Harrietsham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2011-09-27 14:38:49,rental (private),8.0,1.0,200003704070.0,Address Matched +967803178952014061713271190940010,9b Elizabeth House,Alexandra Street,,ME14 2BX,36801178,C,B,73,84,Flat,Mid-Terrace,2014-06-12,E07000110,E14000804,Kent,2014-06-17,none of the above,66,75,314,235.0,1.9,56,1.4,36.0,26.0,183.0,85.0,190.0,101.0,34.0,dual,N,1st,N,,2603.0,100.0,double glazing installed during or after 2002,Normal,0.0,1.0,1.0,50.0,0.0,"Electric immersion, off-peak",Poor,Very Poor,(other premises below),,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,(another dwelling above),,,"Room heaters, electric",Poor,Very Poor,Programmer and appliance thermostats,Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,electricity (not community),0.0,no corridor,,,0.0,,natural,"9b Elizabeth House, Alexandra Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2014-06-17 13:27:11,owner-occupied,4.0,2.0,200003728126.0,Address Matched +304072522742020060919150765300188,"42, St. Andrews Park",Tarragon Road,,ME16 0WD,7776523668,D,C,68,71,Flat,Detached,2020-06-08,E07000110,E14000804,Kent,2020-06-09,rental (private),66,70,235,208.0,2.5,41,2.2,62.0,62.0,393.0,367.0,139.0,112.0,60.0,Unknown,Y,2nd,Y,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,88.0,0.0,From main system,Good,Good,(another dwelling below),NO DATA!,,Fully double glazed,Average,Average,"Sandstone or limestone, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 88% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,5.05,,,N,natural,"42, St. Andrews Park, Tarragon Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2020-06-09 19:15:07,rental (private),,,200003654999.0,Address Matched +1445900332852016052010590598260944,"55, Ragstone Road",Bearsted,,ME15 8PB,9453284478,D,B,56,83,House,Semi-Detached,2016-05-20,E07000110,E14000700,Kent,2016-05-20,ECO assessment,51,82,295,98.0,5.0,52,1.7,61.0,61.0,981.0,537.0,145.0,93.0,96.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,"Pitched, 12 mm loft insulation",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,2.41,,N,natural,"55, Ragstone Road, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2016-05-20 10:59:05,owner-occupied,,,200003690818.0,Address Matched +334142000222009072818563775088001,"11, Len Valley Walk",Downswood,,ME15 8XQ,758045668,C,C,75,77,House,End-Terrace,2009-07-28,E07000110,E14000700,Kent,2009-07-28,marketed sale,73,74,225,215.0,2.1,37,2.0,55.0,27.0,326.0,330.0,75.0,75.0,55.0,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,0.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.3,0.0,N,natural,"11, Len Valley Walk, Downswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1991-1995,2009-07-28 18:56:37,owner-occupied,,,200003687186.0,Address Matched +905741a24388fbd0663e30dd897c6c771bfe348e048c7a6c1dbd112c2a6f95a1,595 TONBRIDGE ROAD,,,ME16 9DG,10001619601,D,C,65,74,House,Detached,2021-07-08,E07000110,E14000804,Kent,2021-07-08,marketed sale,66,75,190,136.0,5.1,28,3.5,109.0,109.0,1102.0,1029.0,128.0,84.0,178.0,Unknown,Y,,,,,100.0,double glazing installed during or after 2002,Normal,1.0,6.0,6.0,100.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Average,Average,"Room heaters, wood logs",,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas, Boiler and underfloor heating, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.4,0.0,N,natural,595 TONBRIDGE ROAD,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2021-07-08 14:52:57,Owner-occupied,48.0,,200003680325.0,Energy Assessor +1715774501512019042414433191210360,Flat 5 Clifford House,Vinters Road,,ME14 5YA,3034114678,C,C,71,74,Flat,Mid-Terrace,2019-04-24,E07000110,E14000804,Kent,2019-04-24,rental (private),60,67,324,273.0,2.5,55,2.1,41.0,41.0,330.0,261.0,188.0,188.0,45.0,dual,N,Ground,N,,2404.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,100.0,0.0,Electric instantaneous at point of use,Very Poor,Poor,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,(another dwelling above),,,Electric storage heaters,Average,Poor,Controls for high heat retention storage heaters,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,unheated corridor,4.31,,,N,natural,"Flat 5 Clifford House, Vinters Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1991-1995,2019-04-24 14:43:31,rental (private),,,200003689518.0,Address Matched +1509163729022017010512515969748293,"4, Colyn Drive",,,ME15 8FZ,9653239478,B,A,81,95,House,Semi-Detached,2017-01-04,E07000110,E14000700,Kent,2017-01-05,new dwelling,84,97,108,4.0,1.3,19,0.1,51.0,51.0,225.0,227.0,95.0,50.0,69.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"4, Colyn Drive",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2017-01-05 12:51:59,unknown,1.0,1.0,10091193604.0,Address Matched +589250359802014031416263288349348,"93, The Quarries",Boughton Monchelsea,,ME17 4NJ,6859853868,B,A,89,96,Bungalow,Detached,2014-03-14,E07000110,E14000700,Kent,2014-03-14,FiT application,91,98,44,-5.0,0.5,6,-0.2,60.0,60.0,547.0,464.0,77.0,77.0,81.0,Single,Y,NODATA!,,,2109.0,100.0,double glazing installed before 2002,Normal,1.0,5.0,5.0,78.0,1.0,"From main system, plus solar",Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, wood logs",,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and boiler energy manager",Good,Good,Low energy lighting in 78% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,,natural,"93, The Quarries, Boughton Monchelsea",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2014-03-14 16:26:32,owner-occupied,9.0,7.0,200003709892.0,Address Matched +1358491591532015090410095284078405,"22, Cobb Way",,,ME15 9XF,9514468378,B,A,83,95,House,NO DATA!,2015-09-03,E07000110,E14000700,Kent,2015-09-04,new dwelling,85,97,96,9.0,1.3,17,0.2,57.0,57.0,241.0,241.0,93.0,59.0,79.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.14 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.18 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"22, Cobb Way",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2015-09-04 10:09:52,unknown,10.0,10.0,10014315876.0,Address Matched +1757127620052019100916255691019860,"2, Dawkins Drive",Staplehurst,,TN12 0FZ,8067017678,B,A,85,96,House,Semi-Detached,2019-10-09,E07000110,E14000804,Kent,2019-10-09,new dwelling,87,98,75,1.0,1.2,13,0.0,71.0,71.0,203.0,203.0,75.0,45.0,93.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.14 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.27 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"2, Dawkins Drive, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,NO DATA!,2019-10-09 16:25:56,unknown,13.0,13.0,10094442069.0,Address Matched +906d735ed565b4b54a0887820bf1ed303fe4c76bdef3a8be35df0e715602a928,29 WOLFE ROAD,,,ME16 8NX,10001464144,D,B,61,83,House,Semi-Detached,2021-07-07,E07000110,E14000804,Kent,2021-07-08,marketed sale,54,80,270,101.0,4.5,48,1.7,90.0,90.0,654.0,439.0,188.0,100.0,94.0,Single,Y,,,,,100.0,double glazing installed during or after 2002,Normal,1.0,5.0,5.0,80.0,0.0,Gas boiler/circulator,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.41,0.0,N,natural,29 WOLFE ROAD,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2021-07-08 08:27:55,Owner-occupied,10.0,,200003674508.0,Energy Assessor +878129289762013013012531994908287,"35, Barnhurst Road",Penenden Heath,,ME14 2EL,8972864078,C,C,72,78,Flat,End-Terrace,2013-01-30,E07000110,E14000804,Kent,2013-01-30,rental (social),74,82,171,120.0,1.8,33,1.2,33.0,33.0,341.0,245.0,77.0,78.0,55.0,Single,Y,2nd,N,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,2.0,2.0,100.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,5.4,,0.0,,natural,"35, Barnhurst Road, Penenden Heath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2013-01-30 12:53:19,rental (social),6.0,6.0,200003706579.0,Address Matched +1627631279442018043013472254787608,"15, Clement Court",,,ME16 0EW,424477578,C,B,71,85,House,End-Terrace,2018-04-30,E07000110,E14000804,Kent,2018-04-30,marketed sale,70,84,172,77.0,2.9,30,1.3,125.0,65.0,467.0,452.0,138.0,82.0,97.0,Unknown,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,4.0,4.0,7.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 7% of fixed outlets,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"15, Clement Court",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1976-1982,2018-04-30 13:47:22,owner-occupied,,,200003658983.0,Address Matched +907273a013fe872e1d50ceab4b7fb067b090a2c72a28dc29c91440b18b751591,36 THOMAS PLACE,JAMES WHATMAN WAY,,ME14 1FP,3081358868,B,B,82,82,Flat,Enclosed End-Terrace,2021-07-21,E07000110,E14000804,Kent,2021-07-29,rental,84,84,110,110.0,1.2,19,1.2,62.0,62.0,165.0,165.0,108.0,108.0,65.0,Single,N,06,N,,,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,Community scheme,Good,Good,(another dwelling below),,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Very Good,Very Good,,,,(another dwelling above),,,Community scheme,Good,Good,"Flat rate charging, programmer and room thermostat",Poor,Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (community),0.0,unheated corridor,8.26,2.39,0.0,N,natural,"36 THOMAS PLACE, JAMES WHATMAN WAY",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2012 onwards,2021-07-29 14:03:17,Rented (social),7.0,,10014312702.0,Energy Assessor +505825649142010062818045277702788,Flat 65 Scotney Gardens,St. Peters Street,,ME16 0GR,5178147768,B,B,81,84,Flat,Enclosed Mid-Terrace,2010-06-28,E07000110,E14000804,Kent,2010-06-28,marketed sale,76,78,254,233.0,1.6,38,1.4,41.0,26.0,92.0,98.0,123.0,108.0,40.87,dual,N,3rd,N,5.0,2401.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,40.0,0.0,"Electric immersion, off-peak",Average,Poor,(other premises below),,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,(another dwelling above),,,Electric storage heaters,Poor,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 40% of fixed outlets,Average,Average,electricity - this is for backwards compatibility only and should not be used,0.0,unheated corridor,8.06,2.31,0.0,N,natural,"Flat 65 Scotney Gardens, St. Peters Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2010-06-28 18:04:52,owner-occupied,,,10022893433.0,Address Matched +1611692269042018022819250151682288,"376, Loose Road",,,ME15 9TT,7008066578,D,C,61,74,House,Semi-Detached,2018-02-28,E07000110,E14000804,Kent,2018-02-28,marketed sale,54,67,268,182.0,4.8,47,3.3,117.0,66.0,821.0,791.0,105.0,71.0,102.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,23.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,"Room heaters, mains gas",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 23% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"376, Loose Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2018-02-28 19:25:01,owner-occupied,,,200003678569.0,Address Matched +1151751526552014060419181190040724,"4a, Byron Road",Penenden Heath,,ME14 2HA,7432604278,D,C,58,71,Maisonette,Detached,2014-06-04,E07000110,E14000804,Kent,2014-06-04,marketed sale,55,72,266,169.0,3.5,51,2.2,73.0,45.0,665.0,433.0,92.0,93.0,69.0,Single,Y,1st,Y,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,38.0,1.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 38% of fixed outlets,Average,Average,mains gas (not community),0.0,no corridor,,,0.0,,natural,"4a, Byron Road, Penenden Heath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2014-06-04 19:18:11,owner-occupied,8.0,3.0,200003707466.0,Address Matched +241766880942009032620243550810038,Flat 6 Inverness House,Lancashire Road,,ME15 7QE,3937488568,C,C,77,77,Flat,Semi-Detached,2009-03-07,E07000110,E14000700,Kent,2009-03-26,rental (social),74,74,254,254.0,1.6,42,1.6,18.0,18.0,265.0,265.0,65.0,65.0,38.11,Unknown,Y,Ground,N,2.0,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,1.0,1.0,100.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.36,0.0,N,natural,"Flat 6 Inverness House, Lancashire Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2009-03-26 20:24:35,rental (social),,,200003684024.0,Address Matched +423566106112010012120193996200270,"8, Highridge Close",Weavering,,ME14 5XQ,2005661768,D,C,66,77,House,Mid-Terrace,2010-01-20,E07000110,E14000700,Kent,2010-01-21,marketed sale,61,74,277,183.0,3.5,46,2.3,75.0,39.0,454.0,341.0,161.0,114.0,76.47,Single,Y,NO DATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,8.0,0.0,From main system,Average,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Average,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 8% of fixed outlets,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.3,0.0,N,natural,"8, Highridge Close, Weavering",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1991-1995,2010-01-21 20:19:39,owner-occupied,,,200003689992.0,Address Matched +1363352899902015092412130632852848,"2, Braunstone Drive",Allington,,ME16 0UG,9982998378,C,B,69,81,House,Detached,2015-09-24,E07000110,E14000804,Kent,2015-09-24,marketed sale,62,75,183,111.0,5.2,32,3.2,85.0,85.0,919.0,802.0,165.0,80.0,162.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,7.0,7.0,100.0,0.0,From main system,Good,Good,"Solid, limited insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, mains gas",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"2, Braunstone Drive, Allington",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2015-09-24 12:13:06,owner-occupied,,,200003662413.0,Address Matched +166882790642008102116095857282698,"39, Barnhurst Road",Penenden Heath,,ME14 2EL,5629792568,C,C,71,78,Flat,End-Terrace,2008-10-21,E07000110,E14000804,Kent,2008-10-21,rental (social),67,75,9796,7298.0,1.1,1640,0.8,0.0,0.0,186.0,157.0,59.0,51.0,6.15,dual,Y,2nd,Y,3.0,2104.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,85.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Poor,Poor,Low energy lighting in 85% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,unheated corridor,6.15,2.3,0.0,N,natural,"39, Barnhurst Road, Penenden Heath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2008-10-21 16:09:58,rental (social),,,200003706581.0,Address Matched +502551736032010062114460200268909,"11, Tufton Street",,,ME14 1ES,3980917768,D,D,58,65,House,Mid-Terrace,2010-06-21,E07000110,E14000804,Kent,2010-06-21,rental (private),52,58,373,319.0,3.9,62,3.3,58.0,33.0,567.0,513.0,139.0,117.0,62.52,Single,Y,NO DATA!,,,2106.0,50.0,double glazing installed before 2002,Normal,1.0,4.0,4.0,25.0,2.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Partial double glazing,Poor,Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 25% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.28,0.0,N,natural,"11, Tufton Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2010-06-21 14:46:02,rental (private),,,200003687437.0,Address Matched +1324854629942015052316545438652278,"24, Morris Close",Boughton Monchelsea,,ME17 4UU,3946726378,C,B,72,90,House,Semi-Detached,2015-05-23,E07000110,E14000700,Kent,2015-05-23,marketed sale,72,90,183,53.0,2.5,32,0.8,107.0,53.0,387.0,349.0,135.0,72.0,77.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,5.0,5.0,0.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"24, Morris Close, Boughton Monchelsea",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2003-2006,2015-05-23 16:54:54,owner-occupied,,,10022892738.0,Address Matched +909ac25b075ebfc9f444af4eb345fe3d0e8db3016136e5d5a9275528d6fb1eb8,13 ELLIS FIELD,OTHAM,,ME15 8YL,10001349769,B,A,85,96,House,Semi-Detached,2021-09-21,E07000110,E14000804,Kent,2021-09-21,new dwelling,87,98,76,2.0,1.2,13,0.1,75.0,75.0,216.0,216.0,72.0,44.0,94.0,standard tariff,,,N,,,100.0,,,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.18 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.39,,,,"13 ELLIS FIELD, OTHAM",Maidstone,Maidstone and The Weald,OTHAM,2021,2021-09-21 08:49:52,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,11.0,,10094440494.0,Address Matched +490428132742020071318575878609078,"75, Bedgebury Close",,,ME14 5QZ,6713336768,C,C,75,77,Maisonette,End-Terrace,2020-07-13,E07000110,E14000804,Kent,2020-07-13,rental (private),76,78,169,154.0,1.9,30,1.7,54.0,54.0,295.0,264.0,123.0,124.0,62.0,Single,Y,1st,Y,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,(another dwelling below),NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,no corridor,,,,N,natural,"75, Bedgebury Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2020-07-13 18:57:58,rental (private),,,200003672071.0,Address Matched +939581944912013052814544290270408,"71, Heath Road",Coxheath,,ME17 4EH,4885409078,D,C,66,78,House,Semi-Detached,2013-05-28,E07000110,E14000804,Kent,2013-05-28,FiT application,63,75,183,113.0,4.2,35,2.6,87.0,61.0,694.0,655.0,111.0,72.0,119.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,6.0,6.0,56.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 56% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"71, Heath Road, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2013-05-28 14:54:42,owner-occupied,16.0,9.0,200003659968.0,Address Matched +368924870102009092312023263712178,"30, Gatland Lane",,,ME16 8PF,5123877668,D,C,68,78,House,Mid-Terrace,2009-09-23,E07000110,E14000804,Kent,2009-09-23,marketed sale,64,75,347,235.0,2.3,58,1.6,39.0,22.0,378.0,283.0,78.0,65.0,39.8,dual,Y,NO DATA!,,,2102.0,100.0,double glazing installed before 2002,Normal,0.0,2.0,2.0,20.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, partial insulation (assumed)",Average,Average,,,,"Pitched, limited insulation (assumed)",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,Low energy lighting in 20% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.37,0.0,N,natural,"30, Gatland Lane",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1976-1982,2009-09-23 12:02:32,owner-occupied,,,200003674620.0,Address Matched +1292224699742015031015083833359608,"15, Chattenden Court",Penenden Heath,,ME14 2AW,6758593378,E,C,51,78,House,Detached,2015-03-10,E07000110,E14000804,Kent,2015-03-10,marketed sale,43,72,327,136.0,6.6,58,2.8,119.0,65.0,1146.0,731.0,173.0,77.0,115.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,1.0,5.0,5.0,17.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, partial insulation (assumed)",Average,Average,"Room heaters, mains gas",,,"Pitched, 270 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 17% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"15, Chattenden Court, Penenden Heath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1976-1982,2015-03-10 15:08:38,owner-occupied,,,200003701752.0,Address Matched +172821850542008110413234853380148,"11, Redsells Close",Downswood,,ME15 8SN,2546153568,C,C,71,77,Bungalow,Semi-Detached,2008-11-04,E07000110,E14000700,Kent,2008-11-04,rental (private),67,73,319,261.0,2.0,53,1.7,30.0,17.0,277.0,245.0,67.0,59.0,38.14,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,2.0,2.0,25.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Timber frame, as built, insulated (assumed)",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 25% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.36,0.0,N,natural,"11, Redsells Close, Downswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2008-11-04 13:23:48,rental (private),,,200003690991.0,Address Matched +762357047232012031607121167968706,"5, Berwyn Grove",,,ME15 9RD,4667746968,D,D,59,59,House,Semi-Detached,2012-03-16,E07000110,E14000804,Kent,2012-03-16,marketed sale,56,56,278,278.0,3.9,54,3.9,45.0,45.0,644.0,644.0,106.0,106.0,72.44,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,2.0,5.0,5.0,89.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, mains gas",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 89% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,2.42,0.0,,natural,"5, Berwyn Grove",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2012-03-16 07:12:11,owner-occupied,9.0,8.0,200003675009.0,Address Matched +1692717849222019012419472912448341,Eyrie,Broomfield Road,Kingswood,ME17 3NZ,4188442678,D,B,57,83,Bungalow,Detached,2019-01-24,E07000110,E14000700,Kent,2019-01-24,rental (private),51,80,327,118.0,4.1,58,1.5,108.0,54.0,701.0,469.0,92.0,62.0,72.0,Unknown,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"Eyrie, Broomfield Road, Kingswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2019-01-24 19:47:29,rental (private),,,200003700205.0,Address Matched +1036474599542013110312001610570598,"102, Howard Drive",,,ME16 0QB,1552295178,E,C,43,75,House,Detached,2013-11-01,E07000110,E14000804,Kent,2013-11-03,marketed sale,39,72,352,135.0,6.6,68,2.6,92.0,59.0,1020.0,675.0,253.0,76.0,97.0,dual,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,6.0,6.0,45.0,0.0,"From main system, no cylinder thermostat",Poor,Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 45% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"102, Howard Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2013-11-03 12:00:16,owner-occupied,11.0,5.0,200003703204.0,Address Matched +1080365449222014012921443779018464,"107, Reculver Walk",,,ME15 8TT,6751409178,D,B,68,81,House,Mid-Terrace,2014-01-29,E07000110,E14000700,Kent,2014-01-29,marketed sale,69,82,174,90.0,2.8,33,1.5,72.0,51.0,553.0,528.0,101.0,76.0,86.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,2.0,60.0,0.0,From main system,Very Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,Portable electric heaters (assumed),,,"Pitched, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 60% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"107, Reculver Walk",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2014-01-29 21:44:37,owner-occupied,10.0,6.0,200003725767.0,Address Matched +1290537039022015030607542543558545,"67, Franklin Drive",Weavering,,ME14 5SY,4426383378,D,B,62,82,House,Detached,2015-03-05,E07000110,E14000700,Kent,2015-03-06,marketed sale,53,77,234,105.0,7.5,41,3.4,102.0,102.0,1281.0,824.0,215.0,79.0,180.0,dual,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,2.0,8.0,8.0,91.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 91% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"67, Franklin Drive, Weavering",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2015-03-06 07:54:25,owner-occupied,,,200003716479.0,Address Matched +90aa3c145ef8aa160a96d7101b30bc499a1ddda97cdbec51716efb87cac6894f,4 Brunswick Street East,,,ME15 7UX,10001495614,D,C,60,77,House,Mid-Terrace,2021-09-06,E07000110,E14000804,Kent,2021-09-07,rental,53,72,283,157.0,4.8,50,2.7,103.0,76.0,791.0,646.0,99.0,72.0,96.0,Unknown,Y,,,,,100.0,"double glazing, unknown install date",Normal,2.0,4.0,4.0,64.0,0.0,From main system,Good,Good,"To unheated space, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 64% of fixed outlets,Good,Good,mains gas (not community),0.0,,,2.68,0.0,N,natural,4 Brunswick Street East,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2021-09-07 19:38:42,Rented (private),11.0,,200003696722.0,Energy Assessor +1290497495252015030814261298050335,Hacienda,Maidstone Road,Marden,TN12 9BQ,3587583378,F,C,30,73,House,Semi-Detached,2015-03-05,E07000110,E14000804,Kent,2015-03-08,marketed sale,30,63,389,149.0,10.0,74,4.3,121.0,83.0,1915.0,1370.0,361.0,168.0,141.0,dual,N,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,2.0,8.0,8.0,53.0,1.0,"From main system, no cylinder thermostat",Very Poor,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, insulated at rafters",Average,Average,"Boiler and radiators, LPG",Poor,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 53% of fixed outlets,Good,Good,LPG (not community),0.0,NO DATA!,,,,N,natural,"Hacienda, Maidstone Road, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1950-1966,2015-03-08 14:26:12,owner-occupied,,,200003674099.0,Address Matched +417006919342010010519374974100358,"26, Old School Close",Lenham,,ME17 2HD,7363711768,D,C,55,71,House,Detached,2010-01-05,E07000110,E14000700,Kent,2010-01-05,marketed sale,50,66,365,242.0,4.6,61,3.1,87.0,43.0,658.0,476.0,153.0,107.0,89.88,dual,Y,NO DATA!,,,2107.0,10.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Some double glazing,Very Poor,Very Poor,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.34,0.0,N,natural,"26, Old School Close, Lenham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2010-01-05 19:37:49,owner-occupied,,,200003708291.0,Address Matched +90c09a9e6157707c273179c405073fb3d5ad508c74a602881c8269f8c19da5e4,1 KENILWORTH HOUSE,WOODFORD ROAD,,ME16 9BY,9280870868,C,C,73,77,Flat,Semi-Detached,2021-08-05,E07000110,E14000804,Kent,2021-08-05,rental,74,78,181,153.0,1.9,32,1.6,84.0,53.0,323.0,288.0,78.0,78.0,60.0,Single,Y,00,N,,,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,43.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 43% of fixed outlets,Average,Average,mains gas (not community),0.0,no corridor,,2.25,0.0,N,natural,"1 KENILWORTH HOUSE, WOODFORD ROAD",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2021-08-05 18:18:15,Rented (social),7.0,,200003686713.0,Energy Assessor +1208208319062014091909410348918264,"20, Sunburst Close",Marden,,TN12 9TS,6448108278,D,B,62,89,House,Semi-Detached,2014-09-09,E07000110,E14000804,Kent,2014-09-19,assessment for green deal,61,91,240,40.0,3.1,46,0.6,51.0,51.0,586.0,352.0,132.0,75.0,67.0,dual,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Solid, limited insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"20, Sunburst Close, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1996-2002,2014-09-19 09:41:03,owner-occupied,9.0,9.0,200003711262.0,Address Matched +1742868609132019112811413752278896,"25, Seymour Drive",Marden,,TN12 9GS,632806678,B,A,84,95,House,Semi-Detached,2019-11-28,E07000110,E14000804,Kent,2019-11-28,new dwelling,85,96,83,11.0,1.5,15,0.2,73.0,73.0,223.0,225.0,98.0,53.0,100.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.22 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.12 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"25, Seymour Drive, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,NO DATA!,2019-11-28 11:41:37,unknown,10.0,10.0,10094441062.0,Address Matched +809901282602020052213173397902498,Flat,"1, Mid Kent Shopping Centre",Castle Road,ME16 0PT,9651689968,D,C,64,74,Maisonette,End-Terrace,2020-05-21,E07000110,E14000804,Kent,2020-05-22,marketed sale,59,74,262,169.0,3.3,46,2.1,59.0,59.0,577.0,363.0,95.0,96.0,70.0,Single,Y,1st,Y,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,4.0,4.0,100.0,0.0,From main system,Good,Good,(other premises below),NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Flat, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,no corridor,,,,N,natural,"Flat, 1, Mid Kent Shopping Centre, Castle Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2020-05-22 13:17:33,rental (private),,,200003662319.0,Address Matched +523222944432014041110225666068301,"9, Chiddingstone Close",,,ME15 8TP,4146368768,E,C,43,80,House,Semi-Detached,2014-04-09,E07000110,E14000700,Kent,2014-04-11,none of the above,40,79,363,103.0,5.9,70,1.7,102.0,51.0,877.0,542.0,314.0,74.0,84.0,Single,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,0.0,0.0,"From main system, no cylinder thermostat",Poor,Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"9, Chiddingstone Close",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2014-04-11 10:22:56,owner-occupied,10.0,0.0,200003680955.0,Address Matched +629070860102011051315285785619978,"6, Rosemount Gardens",Weavering,,ME14 4FL,9199566868,B,B,84,84,House,Semi-Detached,2009-11-13,E07000110,E14000700,Kent,2011-05-13,new dwelling,86,86,76,76.0,1.9,14,1.9,62.0,62.0,343.0,343.0,44.0,44.0,129.41,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,30.0,,"From main system, plus solar",Very Good,Very Good,Average thermal transmittance 0.21 W/mA?K,Good,Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.23 W/mA?K,Very Good,Very Good,,,,Average thermal transmittance 0.14 W/mA?K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.45,,,NO DATA!,"6, Rosemount Gardens, Weavering",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2011-05-13 15:28:57,,30.0,30.0,10014311096.0,Address Matched +90dcf90a49e02aa10e913b4910b71374eec7d0927ca9f8e10923797f5dde8b94,1 Tong Villas,Great Tong Farm,Great Tong,TN27 9PP,10001324004,E,B,42,85,House,Semi-Detached,2021-09-23,E07000110,E14000700,Kent,2021-09-23,rental,36,72,289,41.0,6.8,73,2.4,107.0,74.0,846.0,657.0,164.0,130.0,93.0,Single,N,,,,,56.0,"double glazing, unknown install date",Normal,2.0,5.0,5.0,56.0,1.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Partial double glazing,Poor,Poor,"Solid brick, as built, no insulation (assumed)",Poor,Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, oil",Average,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 56% of fixed outlets,Good,Good,oil (not community),0.0,,,2.49,0.0,N,natural,"1 Tong Villas, Great Tong Farm, Great Tong",Maidstone,Faversham and Mid Kent,ASHFORD,England and Wales: before 1900,2021-09-23 13:55:41,Rented (private),9.0,,200003700008.0,Energy Assessor +363961008132019082320261534268608,"57, Cornhill Place",,,ME15 6GX,864647668,C,B,78,81,Flat,Semi-Detached,2019-08-23,E07000110,E14000804,Kent,2019-08-23,marketed sale,79,82,129,111.0,2.0,23,1.8,125.0,70.0,271.0,276.0,133.0,107.0,90.0,Unknown,Y,4th,Y,,2106.0,100.0,double glazing installed during or after 2002,More Than Typical,0.0,4.0,4.0,21.0,0.0,"From main system, no cylinder thermostat",Average,Average,(another dwelling below),NO DATA!,,Fully double glazed,Good,Good,"System built, as built, insulated (assumed)",Good,Good,,,,"Flat, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 21% of fixed outlets,Poor,Poor,mains gas (not community),0.0,unheated corridor,3.71,,,N,natural,"57, Cornhill Place",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2019-08-23 20:26:15,owner-occupied,,,10022895062.0,Address Matched +442706699642010022121244477202698,"21a, Northumberland Road",,,ME15 7JX,4690792768,C,B,78,82,Flat,Semi-Detached,2010-02-21,E07000110,E14000700,Kent,2010-02-21,rental (social),77,79,186,162.0,1.8,31,1.6,54.0,31.0,290.0,268.0,83.0,83.0,59.02,Single,Y,1st,Y,2.0,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,25.0,0.0,From main system,Very Good,Very Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 25% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.42,0.0,N,natural,"21a, Northumberland Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2010-02-21 21:24:44,rental (social),,,200003712964.0,Address Matched +1710464233252020021014335327900065,"5, Castle Way",Boughton Monchelsea,,ME17 4GQ,517373678,B,A,87,94,House,Detached,2020-02-10,E07000110,E14000804,Kent,2020-02-10,new dwelling,87,94,68,24.0,2.0,12,0.8,101.0,101.0,311.0,312.0,102.0,56.0,169.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.19 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.1 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"5, Castle Way, Boughton Monchelsea",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2020-02-10 14:33:53,unknown,4.0,4.0,10094441245.0,Address Matched +597299129742011071820412980499488,"18, Bicknor Road",,,ME15 9NS,2791424868,C,C,72,73,House,Mid-Terrace,2011-07-18,E07000110,E14000700,Kent,2011-07-18,rental (social),72,74,169,160.0,2.6,32,2.5,82.0,44.0,403.0,409.0,105.0,105.0,81.06,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,11.0,0.0,From main system,Good,Good,"To external air, limited insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 11% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,2.34,0.0,,natural,"18, Bicknor Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2011-07-18 20:41:29,rental (social),9.0,1.0,200003682741.0,Address Matched +1582620493552019091814111495910954,Flat 7,"74, London Road",,ME16 0DT,9452354578,E,B,42,81,Flat,Mid-Terrace,2019-09-18,E07000110,E14000804,Kent,2019-09-18,rental (social),49,69,544,327.0,2.7,92,1.6,26.0,29.0,626.0,139.0,258.0,133.0,29.0,Unknown,N,1st,Y,,2602.0,0.0,not defined,Normal,0.0,3.0,3.0,100.0,0.0,"Electric immersion, standard tariff",Very Poor,Poor,(another dwelling below),NO DATA!,,Single glazed,Very Poor,Very Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 75 mm loft insulation",Average,Average,"Room heaters, electric",Very Poor,Poor,Appliance thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,unheated corridor,3.5,,,N,natural,"Flat 7, 74, London Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2019-09-18 14:11:14,rental (social),,,200003670155.0,Address Matched +6105989262016030208035972918256,2 Worsley Cottages,Collier Street,,TN12 9RN,5745812468,C,B,69,81,House,Semi-Detached,2016-02-29,E07000110,E14000804,Kent,2016-03-02,marketed sale,67,80,187,106.0,3.7,30,2.1,83.0,83.0,734.0,642.0,135.0,85.0,122.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,7.0,7.0,83.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 83% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"2 Worsley Cottages, Collier Street",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: before 1900,2016-03-02 08:03:59,owner-occupied,,,10014306832.0,Address Matched +188368010042008120421025553480348,21 Walmer Court,Wheeler Street,,ME14 1TY,2007314568,C,C,80,80,Flat,Semi-Detached,2008-12-04,E07000110,E14000804,Kent,2008-12-04,rental (social),77,77,165,165.0,2.0,27,2.0,34.0,34.0,246.0,246.0,91.0,91.0,72.54,Single,Y,Ground,N,3.0,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,100.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.26,0.0,N,natural,"21 Walmer Court, Wheeler Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2008-12-04 21:02:55,rental (social),,,200003700772.0,Address Matched +443288519262010022301090793028970,The Old Vicarage,The Street,Boxley,ME14 3DX,7997103768,E,D,41,58,House,Detached,2010-02-22,E07000110,E14000700,Kent,2010-02-23,marketed sale,46,62,333,231.0,17.0,47,12.0,363.0,191.0,2916.0,2060.0,255.0,218.0,393.68,Single,Y,NO DATA!,,,2104.0,0.0,not defined,Normal,1.0,10.0,10.0,10.0,6.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Solid brick, with internal insulation",Good,Good,"Room heaters, wood logs",,,"Pitched, 12 mm loft insulation",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 10% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,3.0,0.0,N,natural,"The Old Vicarage, The Street, Boxley",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2010-02-23 01:09:07,owner-occupied,,,200003673354.0,Address Matched +00639b7e18225194762d37dabe46b6de822c2fd6305cd87c5c3a2b81fb73c91b,5 Sovereigns Way,Marden,,TN12 9QF,10001547715,C,B,69,88,House,Mid-Terrace,2021-08-13,E07000110,E14000804,Kent,2021-08-15,marketed sale,68,88,206,60.0,2.7,36,0.8,115.0,63.0,386.0,332.0,137.0,66.0,75.0,Unknown,Y,,,,,100.0,"double glazing, unknown install date",Normal,1.0,4.0,4.0,18.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 18% of fixed outlets,Poor,Poor,mains gas (not community),0.0,,,2.29,0.0,N,natural,"5 Sovereigns Way, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1976-1982,2021-08-15 16:39:50,Rented (private),17.0,,200003708882.0,Energy Assessor +1618544478812018032619525590280657,"36, Tintern Road",,,ME16 0RS,6720807578,E,C,40,79,Bungalow,Semi-Detached,2018-03-26,E07000110,E14000804,Kent,2018-03-26,rental (private),36,77,441,125.0,6.0,77,1.7,109.0,55.0,980.0,556.0,246.0,69.0,78.0,Unknown,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,3.0,3.0,0.0,0.0,"From main system, no cylinder thermostat",Poor,Poor,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,"Room heaters, electric",,,"Pitched, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"36, Tintern Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2018-03-26 19:52:55,rental (private),,,200003660990.0,Address Matched +910846effd709e8c4603ff48d03e34569c2670a889628feb70f322f382ef1948,8 Arrow Way,Lenham,,ME17 2FP,10001589493,A,A,93,94,House,Detached,2021-09-20,E07000110,E14000700,Kent,2021-09-20,new dwelling,93,95,31,20.0,0.6,6,0.4,79.0,79.0,263.0,263.0,71.0,40.0,105.0,standard tariff,,,N,,,100.0,,,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.16 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.17 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.44,,,,"8 Arrow Way, Lenham",Maidstone,Faversham and Mid Kent,MAIDSTONE,2020,2021-09-20 10:38:52,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,13.0,,10095449369.0,Energy Assessor +910e19e3bb33068cc5f9e14efcb6e4c8adaf22041f974832aa2f36784d6e348a,16 Bannister Road,Penenden Heath,,ME14 2JZ,10001407702,D,B,68,84,House,Semi-Detached,2021-09-23,E07000110,E14000804,Kent,2021-09-23,marketed sale,64,81,201,91.0,4.0,35,1.8,118.0,85.0,627.0,487.0,120.0,80.0,113.0,Single,Y,,,,,100.0,double glazing installed during or after 2002,Normal,1.0,4.0,4.0,62.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 62% of fixed outlets,Good,Good,mains gas (not community),0.0,,,2.39,0.0,N,natural,"16 Bannister Road, Penenden Heath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2021-09-23 11:25:12,Owner-occupied,13.0,,200003707170.0,Energy Assessor +592712689922011021520115003258139,7 Bearsted Views,St. Faiths Lane,Bearsted,ME14 4FB,3037883868,B,B,81,81,House,Mid-Terrace,2011-02-15,E07000110,E14000700,Kent,2011-02-15,marketed sale,79,79,124,124.0,2.8,20,2.8,78.0,78.0,421.0,421.0,130.0,130.0,135.45,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,6.0,6.0,100.0,0.0,From main system,Very Good,Very Good,"Solid, insulated (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,0.0,N,natural,"7 Bearsted Views, St. Faiths Lane, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2007 onwards,2011-02-15 20:11:50,owner-occupied,,,10022896903.0,Address Matched +500950216032010061715545249968804,"39, Lullingstone Road",,,ME16 0TF,1419807768,C,C,69,71,Bungalow,Detached,2010-06-17,E07000110,E14000804,Kent,2010-06-17,marketed sale,65,66,259,254.0,2.9,43,2.9,56.0,35.0,465.0,469.0,87.0,87.0,77.17,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,40.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 40% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.39,0.0,N,natural,"39, Lullingstone Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2010-06-17 15:54:52,owner-occupied,,,200003662125.0,Address Matched +445332552032010022620090663268704,"9, Rhodewood Close",Downswood,,ME15 8UR,5483713768,C,C,74,76,House,Semi-Detached,2010-02-26,E07000110,E14000700,Kent,2010-02-26,rental (private),71,72,216,207.0,2.4,36,2.4,70.0,35.0,377.0,383.0,87.0,87.0,78.18,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,0.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.34,0.0,N,natural,"9, Rhodewood Close, Downswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2010-02-26 20:09:06,rental (private),,,200003691389.0,Address Matched +780088885232012050115144831068702,"16, Tovil Green",,,ME15 6RJ,8261777968,C,B,72,86,House,Semi-Detached,2012-05-01,E07000110,E14000804,Kent,2012-05-01,marketed sale,73,88,158,58.0,2.2,30,0.9,51.0,51.0,378.0,345.0,81.0,57.0,73.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,75.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"16, Tovil Green",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2012-05-01 15:14:48,owner-occupied,8.0,6.0,200003664665.0,Address Matched +1209054199312014092811091090240524,"65, Douglas Road",,,ME16 8ER,5427908278,E,B,48,81,House,Semi-Detached,2014-09-27,E07000110,E14000804,Kent,2014-09-28,marketed sale,44,80,322,95.0,5.4,62,1.6,95.0,53.0,1010.0,541.0,143.0,80.0,87.0,Single,Y,NODATA!,,,2104.0,85.0,double glazing installed before 2002,Normal,1.0,5.0,2.0,22.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Mostly double glazing,Poor,Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, mains gas",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 22% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"65, Douglas Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2014-09-28 11:09:10,owner-occupied,9.0,2.0,200003667772.0,Address Matched +91299f947d1143a3f0562bf2731c0196578d8481c158fb366fa18dc87ba52e75,6 CLOVER TERRACE,NORTHUMBERLAND ROAD,,ME15 7SY,10001621523,E,B,54,83,House,Mid-Terrace,2021-06-28,E07000110,E14000700,Kent,2021-07-01,ECO assessment,51,82,339,106.0,4.1,60,1.3,117.0,58.0,667.0,471.0,204.0,79.0,69.0,Single,Y,,,,,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,0.0,0.0,"From main system, no cylinder thermostat",Average,Average,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,"Pitched, insulated (assumed)",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,,,2.75,0.0,N,natural,"6 CLOVER TERRACE, NORTHUMBERLAND ROAD",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2021-07-01 10:48:46,Rented (social),8.0,,200003714086.0,Energy Assessor +509299369502010070617115075707608,"63, Bargrove Road",,,ME14 5RT,501967768,C,C,75,75,House,Detached,2010-06-30,E07000110,E14000804,Kent,2010-07-06,marketed sale,71,71,171,171.0,3.9,29,3.9,88.0,88.0,547.0,547.0,142.0,142.0,135.45,dual,Y,NO DATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,7.0,7.0,90.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 90% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.32,0.0,N,natural,"63, Bargrove Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2010-07-06 17:11:50,owner-occupied,,,200003672491.0,Address Matched +1635586220752018052917405693280458,"29, Blossom Way",Marden,,TN12 9GA,4879038578,C,C,80,80,Flat,Detached,2018-05-29,E07000110,E14000804,Kent,2018-05-29,new dwelling,83,83,117,117.0,1.3,21,1.3,47.0,47.0,246.0,246.0,72.0,72.0,65.0,standard tariff,,top floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.19 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.09 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"29, Blossom Way, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,NO DATA!,2018-05-29 17:40:56,owner-occupied,45.0,45.0,10093305205.0,Address Matched +60203880262009062423313534048851,"1, Palmar Road",,,ME16 0DL,5395814468,C,C,76,77,House,Semi-Detached,2009-06-24,E07000110,E14000804,Kent,2009-06-24,marketed sale,73,74,160,154.0,3.8,26,3.7,109.0,69.0,476.0,483.0,114.0,114.0,157.52,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,2.0,8.0,8.0,43.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 43% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.46,0.0,N,natural,"1, Palmar Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2009-06-24 23:31:35,owner-occupied,,,200003658718.0,Address Matched +534112741412011101220181994999971,"19, Tintern Road",,,ME16 0RH,9194149768,D,C,68,71,Bungalow,Semi-Detached,2011-10-12,E07000110,E14000804,Kent,2011-10-12,marketed sale,69,71,215,194.0,2.5,41,2.2,53.0,33.0,419.0,395.0,72.0,72.0,59.75,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,37.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 38% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,2.4,0.0,,natural,"19, Tintern Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2011-10-12 20:18:19,owner-occupied,8.0,3.0,200003660843.0,Address Matched +1785940412942020021820255363909188,"3, Trotwood Close",,,ME5 9JU,9983819678,D,B,65,88,House,Semi-Detached,2020-02-18,E07000110,E14000700,Kent,2020-02-18,marketed sale,63,88,274,67.0,2.6,48,0.7,71.0,45.0,410.0,328.0,136.0,63.0,54.0,Single,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,43.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 43% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"3, Trotwood Close",Maidstone,Faversham and Mid Kent,CHATHAM,England and Wales: 1983-1990,2020-02-18 20:25:53,owner-occupied,,,200003707998.0,Address Matched +769026596612012033120043599720991,Silvanus,Busbridge Road,Loose,ME15 0ER,9164696968,E,D,53,67,Bungalow,Semi-Detached,2012-03-30,E07000110,E14000804,Kent,2012-03-31,marketed sale,52,69,332,214.0,4.1,59,2.6,66.0,40.0,700.0,455.0,146.0,138.0,69.96,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,33.0,1.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, wood logs",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 33% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,2.41,0.0,,natural,"Silvanus, Busbridge Road, Loose",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2012-03-31 20:04:35,owner-occupied,9.0,3.0,200003663741.0,Address Matched +1269312339502015013015290634257508,"17, Springett Way",Coxheath,,ME17 4HQ,3581332378,C,B,71,87,Bungalow,Semi-Detached,2015-01-30,E07000110,E14000804,Kent,2015-01-30,FiT application,69,85,201,83.0,2.6,35,1.1,48.0,48.0,489.0,427.0,100.0,66.0,74.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"17, Springett Way, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2015-01-30 15:29:06,owner-occupied,,,200003713900.0,Address Matched +203528900052009010912022702010651,"108a, Wrangleden Road",,,ME15 9LD,6143026568,C,C,72,77,Flat,Semi-Detached,2009-01-09,E07000110,E14000700,Kent,2009-01-09,rental (social),69,74,243,202.0,2.5,40,2.0,49.0,30.0,359.0,310.0,76.0,76.0,60.79,Single,Y,1st,Y,2.0,2106.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,33.0,0.0,From main system,Very Good,Very Good,(other premises below),,,Fully double glazed,Average,Average,"System built, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 33% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.32,0.0,N,natural,"108a, Wrangleden Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2009-01-09 12:02:27,rental (social),,,200003683175.0,Address Matched +416479304652010010617452291000272,"2, Arundel Street",,,ME14 2RS,2223411768,D,C,68,74,House,End-Terrace,2010-01-06,E07000110,E14000804,Kent,2010-01-06,marketed sale,64,70,287,239.0,2.7,47,2.2,54.0,28.0,417.0,368.0,84.0,80.0,56.25,Single,Y,NO DATA!,,,2102.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,6.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 150mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,Low energy lighting in 6% of fixed outlets,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.41,0.0,N,natural,"2, Arundel Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1976-1982,2010-01-06 17:45:22,owner-occupied,,,200003669995.0,Address Matched +340600903752009080713084008010065,"11, Blunden Lane",Yalding,,ME18 6JQ,585385668,D,C,55,75,House,Semi-Detached,2009-08-07,E07000110,E14000804,Kent,2009-08-07,marketed sale,47,69,365,203.0,4.9,66,2.7,59.0,37.0,629.0,374.0,152.0,110.0,74.2,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,6.0,6.0,40.0,1.0,From main system,Average,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, coal",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Average,Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 40% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.39,0.0,N,natural,"11, Blunden Lane, Yalding",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2009-08-07 13:08:40,owner-occupied,,,200003661517.0,Address Matched +142349940802008100218361053180428,"4, Worsfold Court",Enterprise Road,,ME15 6HW,826241568,C,C,78,79,Flat,Semi-Detached,2008-10-02,E07000110,E14000804,Kent,2008-10-02,rental (private),68,69,356,349.0,1.9,54,1.9,38.0,19.0,120.0,124.0,94.0,94.0,35.27,dual,N,Ground,N,2.0,2402.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,0.0,0.0,"Electric immersion, off-peak",Average,Poor,"Solid, insulated (assumed)",,,Fully double glazed,Good,Good,"Timber frame, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,Electric storage heaters,Poor,Very Poor,Automatic charge control,Average,Average,No low energy lighting,Very Poor,Very Poor,electricity - this is for backwards compatibility only and should not be used,0.0,unheated corridor,6.47,2.54,0.0,N,natural,"4, Worsfold Court, Enterprise Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2008-10-02 18:36:10,rental (private),,,200003683348.0,Address Matched +627688785752011051111473095990582,"68, Egremont Road",Bearsted,,ME15 8NA,5259556868,E,D,41,68,Bungalow,Detached,2011-05-11,E07000110,E14000700,Kent,2011-05-11,marketed sale,38,67,416,200.0,6.3,80,3.0,79.0,42.0,855.0,498.0,259.0,98.0,78.93,Single,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,10.0,0.0,"From main system, no cylinderstat",Poor,Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Average,Programmer and room thermostat,Average,Average,Low energy lighting in 10% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,2.4,0.0,,natural,"68, Egremont Road, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2011-05-11 11:47:30,owner-occupied,10.0,1.0,200003686255.0,Address Matched +9147ae18455c146ec3723727b604d05185aa843a2f8b5039c66685995e2eff49,1 Hollander Mews,,,ME14 1HW,10001324251,B,A,84,96,House,End-Terrace,2021-08-06,E07000110,E14000804,Kent,2021-08-06,new dwelling,87,98,80,-3.0,1.2,14,0.0,71.0,71.0,200.0,200.0,69.0,42.0,83.0,standard tariff,,,N,,,100.0,,,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.12 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.28 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.31,,,,1 Hollander Mews,Maidstone,Maidstone and The Weald,MAIDSTONE,2021,2021-08-06 15:00:11,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,9.0,,10094443060.0,Address Matched +1595812832332017121208120589978692,"9, Hatherall Road",,,ME14 5HE,3209645578,E,C,43,75,House,Semi-Detached,2017-12-11,E07000110,E14000804,Kent,2017-12-12,marketed sale,36,69,433,173.0,6.6,77,2.7,87.0,58.0,1107.0,689.0,189.0,72.0,86.0,Single,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,50.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"9, Hatherall Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2017-12-12 08:12:05,owner-occupied,,,200003705410.0,Address Matched +473389419102010042118465876509348,Weald House,Wheelers Lane,Linton,ME17 4BN,6189315768,D,D,61,65,House,Detached,2010-04-14,E07000110,E14000804,Kent,2010-04-21,marketed sale,58,61,225,207.0,9.0,37,8.4,244.0,128.0,1217.0,1179.0,214.0,214.0,240.83,Unknown,Y,NO DATA!,,,2106.0,65.0,double glazing installed before 2002,Normal,0.0,9.0,9.0,9.0,1.0,From main system,Very Good,Very Good,"Suspended, no insulation (assumed)",,,Partial double glazing,Poor,Poor,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 9% of fixed outlets,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,0.0,N,natural,"Weald House, Wheelers Lane, Linton",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2010-04-21 18:46:58,owner-occupied,,,200003663086.0,Address Matched +624359525932011050418392744068501,"6, Saxons Drive",,,ME14 5HS,2104536868,D,C,66,72,House,Semi-Detached,2011-05-04,E07000110,E14000804,Kent,2011-05-04,marketed sale,63,71,198,155.0,4.7,38,3.7,77.0,59.0,771.0,613.0,82.0,82.0,123.54,dual,Y,NODATA!,,,2106.0,,not defined,Much More Than Typical,0.0,7.0,7.0,69.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Flat, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 69% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,2.32,0.0,,natural,"6, Saxons Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2011-05-04 18:39:27,owner-occupied,16.0,11.0,200003707887.0,Address Matched +782582599302012043007553195722768,"29, Whiteheads Lane",Bearsted,,ME14 4DE,6383297968,D,B,68,91,Bungalow,Semi-Detached,2012-04-26,E07000110,E14000700,Kent,2012-04-30,marketed sale,70,94,208,18.0,2.0,40,0.2,57.0,29.0,303.0,262.0,113.0,59.0,50.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"29, Whiteheads Lane, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2012-04-30 07:55:31,owner-occupied,7.0,0.0,200003692134.0,Address Matched +1588424049332017111610533525978596,"22, Oaktree Avenue",,,ME15 9AX,4665594578,D,C,62,76,House,Mid-Terrace,2017-11-16,E07000110,E14000700,Kent,2017-11-16,marketed sale,60,74,263,158.0,3.5,46,2.1,52.0,52.0,691.0,651.0,99.0,65.0,76.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"22, Oaktree Avenue",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2017-11-16 10:53:35,owner-occupied,,,200003713563.0,Address Matched +1308705764532015041007082636078106,"35, Old School Place",,,ME14 1EQ,6616115378,D,C,59,77,Flat,End-Terrace,2015-04-08,E07000110,E14000804,Kent,2015-04-10,marketed sale,55,78,317,150.0,3.5,54,1.7,70.0,48.0,579.0,298.0,169.0,112.0,64.0,Unknown,Y,2nd,Y,,2602.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,56.0,0.0,"Electric immersion, off-peak",Poor,Poor,(another dwelling below),NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Room heaters, electric",Very Poor,Poor,Appliance thermostats,Good,Good,Low energy lighting in 56% of fixed outlets,Good,Good,electricity (not community),0.0,unheated corridor,11.7,,,N,natural,"35, Old School Place",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2015-04-10 07:08:26,owner-occupied,,,200003729204.0,Address Matched +91695dd29253ad1d79ba5e28ccfe5a4dd9cf541abf76c3954cd5be659d1b0df9,3 THOMAS PLACE,JAMES WHATMAN WAY,,ME14 1FP,790358868,B,B,82,82,Flat,Enclosed End-Terrace,2021-07-21,E07000110,E14000804,Kent,2021-07-29,rental,84,84,107,107.0,1.2,19,1.2,62.0,62.0,161.0,161.0,108.0,108.0,65.0,Single,N,02,N,,,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,Community scheme,Good,Good,(another dwelling below),,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Very Good,Very Good,,,,(another dwelling above),,,Community scheme,Good,Good,"Flat rate charging, programmer and room thermostat",Poor,Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (community),0.0,unheated corridor,8.26,2.39,0.0,N,natural,"3 THOMAS PLACE, JAMES WHATMAN WAY",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2012 onwards,2021-07-29 13:45:22,Rented (social),7.0,,10014312669.0,Energy Assessor +298808990022009060517225242458631,"67, Badger Road",,,ME5 8TY,3427982668,E,D,51,64,House,End-Terrace,2009-06-05,E07000110,E14000700,Kent,2009-06-05,marketed sale,49,62,411,294.0,4.2,68,3.0,55.0,28.0,550.0,438.0,105.0,76.0,61.77,Single,Y,NO DATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,0.0,0.0,From main system,Average,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Average,Good,Programmer and room thermostat,Poor,Poor,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.3,0.0,N,natural,"67, Badger Road",Maidstone,Faversham and Mid Kent,CHATHAM,England and Wales: 1967-1975,2009-06-05 17:22:52,owner-occupied,,,200003673491.0,Address Matched +816198143232012072012104528978104,83a The Quarries,Boughton Monchelsea,,ME17 4NJ,4488130078,B,B,83,83,House,Semi-Detached,2012-07-12,E07000110,E14000700,Kent,2012-07-20,new dwelling,84,84,81,81.0,2.2,15,2.2,68.0,68.0,373.0,373.0,90.0,90.0,145.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,10.0,,From main system,Good,Good,Average thermal transmittance 0.19 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.29 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.20 W/m?K,Good,Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,,,NO DATA!,"83a The Quarries, Boughton Monchelsea",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2012-07-20 12:10:45,,10.0,10.0,10014314456.0,Address Matched +495819672302020010210135570600028,"20, Brogden Crescent",Leeds,,ME17 1RA,7399076768,C,B,71,86,House,Semi-Detached,2020-01-02,E07000110,E14000700,Kent,2020-01-02,marketed sale,68,84,198,87.0,3.0,35,1.4,77.0,77.0,510.0,425.0,100.0,68.0,87.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,80.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"20, Brogden Crescent, Leeds",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2020-01-02 10:13:55,owner-occupied,,,200003698016.0,Address Matched +377729430062009100814093308638121,"195, Queens Road",,,ME16 0WA,2030348668,B,B,83,85,Flat,Detached,2009-10-07,E07000110,E14000804,Kent,2009-10-08,rental (private),83,84,134,123.0,1.4,22,1.3,71.0,36.0,205.0,209.0,89.0,90.0,64.7,Single,Y,1st,N,3.0,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,0.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,unheated corridor,7.5,2.35,0.0,N,natural,"195, Queens Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2009-10-08 14:09:33,rental (private),,,200003655235.0,Address Matched +814836709062015010419044440848875,"14, Quinion Close",,,ME5 9JS,7489020078,E,B,52,86,House,Detached,2015-01-04,E07000110,E14000700,Kent,2015-01-04,none of the above,44,85,367,80.0,5.2,65,1.2,52.0,52.0,933.0,430.0,157.0,72.0,80.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"14, Quinion Close",Maidstone,Faversham and Mid Kent,CHATHAM,England and Wales: 1976-1982,2015-01-04 19:04:44,owner-occupied,,,200003707955.0,Address Matched +256419530762009033021014029708791,"675, Tonbridge Road",,,ME16 9DQ,9296399568,D,D,64,67,House,Semi-Detached,2009-03-30,E07000110,E14000804,Kent,2009-03-30,non marketed sale,58,61,301,281.0,3.7,50,3.4,57.0,38.0,529.0,504.0,83.0,83.0,73.06,dual,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,50.0,0.0,From main system,Very Good,Very Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.47,0.0,N,natural,"675, Tonbridge Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2009-03-30 21:01:40,owner-occupied,,,200003664456.0,Address Matched +473014709262010042113194615298120,2 Brushwood Close,Mangravet,,ME15 9AY,2163015768,B,B,87,88,Bungalow,Mid-Terrace,2010-04-21,E07000110,E14000700,Kent,2010-04-21,new dwelling,87,87,102,99.0,1.0,17,1.0,44.0,35.0,215.0,217.0,52.0,52.0,62.6,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,,From main system |O'r brif system,Very Good,Very Good,Average thermal transmittance 0.15 W/m??K|Trawsyriannedd thermol cyfartalog 0.15 W/m??K,Very Good,Very Good,Multiple glazing throughout|Gwydrau lluosog ym mhobman,Good,Good,Average thermal transmittance 0.25 W/m??K|Trawsyriannedd thermol cyfartalog 0.25 W/m??K,Very Good,Very Good,None|Dim,,,Average thermal transmittance 0.16 W/m??K|Trawsyriannedd thermol cyfartalog 0.16 W/m??K,Good,Good,"Boiler and radiators, |Bwyler a rheiddiaduron, |mains gas|nwy prif gyflenwad",Very Good,Very Good,Time and temperature zone control,Good,Good,Low energy lighting in 75% of fixed outlets|Goleuadau ynni-isel mewn 75% o'r mannau gosod,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,,,NO DATA!,"2 Brushwood Close, Mangravet",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2010-04-21 13:19:46,,,,10014311090.0,Address Matched +781108689042012050412055292722168,"Studio Flat, Graynoth Place",Otham Street,Otham,ME15 8RL,6051387968,C,C,74,75,Flat,Detached,2012-04-26,E07000110,E14000700,Kent,2012-05-04,rental (private),76,77,250,237.0,1.3,44,1.2,42.0,21.0,164.0,167.0,111.0,111.0,29.0,Single,N,1st,Y,,2504.0,100.0,double glazing installed during or after 2002,Normal,0.0,1.0,1.0,0.0,0.0,Electric instantaneous at point of use,Very Poor,Very Poor,"To unheated space, limited insulation (assumed)",,,Fully double glazed,Good,Good,"Timber frame, as built, insulated (assumed)",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Air source heat pump, warm air, electric",Good,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,electricity (not community),0.0,no corridor,,,0.0,,natural,"Studio Flat, Graynoth Place, Otham Street, Otham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1996-2002,2012-05-04 12:05:52,rental (private),6.0,0.0,10014309597.0,Address Matched +547445515612010093017481193700889,"7, Riverside Park",Farleigh Bridge,,ME16 9ND,8948530868,E,E,43,51,House,Detached,2010-09-30,E07000110,E14000804,Kent,2010-09-30,marketed sale,64,70,214,178.0,3.3,42,2.8,89.0,44.0,629.0,558.0,203.0,180.0,78.6,Unknown,N,NO DATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,0.0,0.0,From main system,Poor,Good,"Suspended, insulated (assumed)",,,Fully double glazed,Average,Average,"Timber frame, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, LPG",Poor,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,LPG - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.2,0.0,N,natural,"7, Riverside Park, Farleigh Bridge",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2010-09-30 17:48:11,owner-occupied,,,200003722273.0,Address Matched +811229319312015093018194399750291,"2, Lansdowne Avenue",,,ME15 9DJ,2165999968,E,B,52,83,House,Detached,2015-09-30,E07000110,E14000700,Kent,2015-09-30,none of the above,42,79,321,104.0,9.4,57,3.1,147.0,83.0,1720.0,737.0,140.0,116.0,166.0,Unknown,Y,NODATA!,,,2103.0,100.0,double glazing installed during or after 2002,Normal,0.0,7.0,7.0,24.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 25 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,Room thermostat only,Poor,Poor,Low energy lighting in 24% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"2, Lansdowne Avenue",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2015-09-30 18:19:43,owner-occupied,,,200003710165.0,Address Matched +502297456012010062022230391200873,"31, Cumberland Avenue",,,ME15 7JP,8378617768,C,C,75,76,Flat,Semi-Detached,2010-06-20,E07000110,E14000700,Kent,2010-06-20,rental (social),72,72,235,228.0,2.0,39,2.0,45.0,27.0,334.0,338.0,80.0,80.0,52.44,Single,Y,Ground,N,2.0,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,33.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 33% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.37,0.0,N,natural,"31, Cumberland Avenue",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2010-06-20 22:23:03,rental (social),,,200003712191.0,Address Matched +638733639242011060718275286790938,"14, Westway",Coxheath,,ME17 4EZ,3261737868,D,D,58,65,House,Semi-Detached,2011-06-07,E07000110,E14000804,Kent,2011-06-07,marketed sale,57,66,281,224.0,3.5,54,2.8,56.0,36.0,570.0,489.0,121.0,96.0,65.6,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,43.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 43% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,2.4,0.0,,natural,"14, Westway, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2011-06-07 18:27:52,owner-occupied,7.0,3.0,200003715226.0,Address Matched +1551195929102017061108334458239508,"6, Waldron Drive",Loose,,ME15 9TG,8168922578,D,B,55,84,House,Semi-Detached,2017-06-10,E07000110,E14000804,Kent,2017-06-11,marketed sale,42,77,321,97.0,5.7,68,1.9,77.0,57.0,873.0,479.0,140.0,83.0,85.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,64.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, coal",,,"Pitched, 12 mm loft insulation",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 64% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"6, Waldron Drive, Loose",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2017-06-11 08:33:44,owner-occupied,,,200003664006.0,Address Matched +34244225052012050511445698020155,"71, Arundel Square",,,ME15 6HB,1564582568,C,C,77,79,Flat,End-Terrace,2012-05-05,E07000110,E14000804,Kent,2012-05-05,marketed sale,81,82,127,117.0,1.4,24,1.3,66.0,37.0,237.0,241.0,73.0,73.0,58.0,Unknown,Y,Ground,N,,,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,,0.0,From main system,Good,Good,"Suspended, insulated (assumed)",,,,Average,Average,"Timber frame, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 22% of fixed outlets,,Poor,mains gas (not community),0.0,unheated corridor,11.7,,,,natural,"71, Arundel Square",Maidstone,Maidstone and The Weald,MAIDSTONE,,2012-05-05 11:44:56,owner-occupied,,,10022895171.0,Address Matched +1045961469502014071910545117649688,"16, Beckenham Drive",,,ME16 0TG,4542066178,C,B,72,89,Bungalow,Semi-Detached,2014-07-18,E07000110,E14000804,Kent,2014-07-19,marketed sale,74,91,180,40.0,1.8,34,0.5,37.0,37.0,377.0,333.0,79.0,70.0,52.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,92.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 92% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"16, Beckenham Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2014-07-19 10:54:51,owner-occupied,12.0,11.0,200003662142.0,Address Matched +1793537672602020031808024162909508,2 Russetting Cottages,Albion Road,Marden,TN12 9ED,3607479678,C,B,77,88,House,Mid-Terrace,2020-03-10,E07000110,E14000804,Kent,2020-03-18,marketed sale,76,86,131,63.0,2.3,23,1.2,80.0,80.0,395.0,395.0,96.0,66.0,102.0,Unknown,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"2 Russetting Cottages, Albion Road, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 2003-2006,2020-03-18 08:02:41,owner-occupied,,,10014306783.0,Address Matched +1794264072742020032009404766902008,"5, Heath Wood Drive",,,ME14 5GU,5798979678,B,B,87,88,House,Mid-Terrace,2020-03-20,E07000110,E14000700,Kent,2020-03-20,new dwelling,90,93,63,47.0,0.7,11,0.5,50.0,50.0,173.0,173.0,64.0,37.0,58.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.17 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.28 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.15 W/m-¦K,Good,Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"5, Heath Wood Drive",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2020-03-20 09:40:47,unknown,18.0,18.0,10094443369.0,Address Matched +596794799262011022412311744448849,"58, Leonard Gould Way",Loose,,ME15 9FX,4405914868,B,B,84,84,House,Semi-Detached,2011-02-24,E07000110,E14000700,Kent,2011-02-24,new dwelling,84,84,109,106.0,1.7,18,1.7,65.0,52.0,276.0,277.0,112.0,112.0,95.04,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,,From main system,Very Good,Very Good,Average thermal transmittance 0.12 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m?K,Very Good,Very Good,"Room heaters, electric",,,Average thermal transmittance 0.10 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Very Good,Very Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.45,,,NO DATA!,"58, Leonard Gould Way, Loose",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2011-02-24 12:31:17,,,,10014311175.0,Address Matched +91c806e962c4b8342d6781365bb99beb06ecddb6af0b6985b572be903f09d1f7,15 RUSHMORE GROVE,,,ME17 2FJ,10001361351,B,A,85,97,House,Mid-Terrace,2021-07-28,E07000110,E14000700,Kent,2021-07-28,new dwelling,88,99,78,-9.0,1.1,14,-0.1,73.0,73.0,188.0,188.0,65.0,41.0,78.0,standard tariff,,,N,,,100.0,,,,,,100.0,0.0,"From main system, flue gas heat recovery",Very Good,Very Good,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.19 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.1 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.4,,,,15 RUSHMORE GROVE,Maidstone,Faversham and Mid Kent,LENHAM,2019,2021-07-28 09:46:43,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,1.0,,10094444439.0,Energy Assessor +1384945929962015111214531920928635,Flat 56,Miller House,43-51 Lower Stone Street,ME15 6GB,3257250478,B,B,82,82,Flat,NO DATA!,2015-11-12,E07000110,E14000804,Kent,2015-11-12,none of the above,86,86,103,103.0,1.0,18,1.0,38.0,38.0,203.0,203.0,71.0,71.0,55.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Good,Good,Average thermal transmittance 0.68 W/m-¦K,Average,Average,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Flat 56, Miller House, 43-51 Lower Stone Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2015-11-12 14:53:19,unknown,4.0,4.0,10091196153.0,Address Matched +1340479628052015070712101193050132,"20, Iden Crescent",Staplehurst,,TN12 0NU,1281837378,D,B,67,83,Bungalow,Semi-Detached,2015-07-06,E07000110,E14000804,Kent,2015-07-07,marketed sale,64,80,221,107.0,3.1,39,1.6,83.0,53.0,560.0,499.0,108.0,75.0,80.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,43.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 43% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"20, Iden Crescent, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1950-1966,2015-07-07 12:10:11,owner-occupied,,,200003677107.0,Address Matched +1389126572652015112509012898259642,Flat 4 Nolan Court,"2, Terrace Road",,ME16 8HU,6266280478,B,B,87,87,Flat,NO DATA!,2015-11-24,E07000110,E14000804,Kent,2015-11-25,new dwelling,91,91,61,61.0,0.7,12,0.7,54.0,54.0,237.0,237.0,76.0,76.0,62.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.17 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.18 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Flat 4 Nolan Court, 2, Terrace Road",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2015-11-25 09:01:28,unknown,25.0,25.0,10014316087.0,Address Matched +890084959942014053009301103542198,"46, Poyntell Road",Staplehurst,,TN12 0SA,8979255078,D,B,65,88,House,Semi-Detached,2014-05-21,E07000110,E14000804,Kent,2014-05-30,assessment for green deal,64,89,212,48.0,3.0,41,0.7,50.0,50.0,560.0,353.0,112.0,75.0,73.0,dual,Y,NODATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,1.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"46, Poyntell Road, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1976-1982,2014-05-30 09:30:11,owner-occupied,10.0,10.0,200003678433.0,Address Matched +493745343452015102012132195259679,Ringlestone Lodge,Ringlestone Road,Harrietsham,ME17 1NX,6956356768,D,C,60,76,House,Detached,2015-10-20,E07000110,E14000700,Kent,2015-10-20,marketed sale,55,72,229,134.0,12.0,36,6.8,232.0,120.0,2427.0,1620.0,151.0,151.0,321.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,8.0,8.0,7.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Poor,Poor,"Room heaters, wood logs",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 7% of fixed outlets,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"Ringlestone Lodge, Ringlestone Road, Harrietsham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2015-10-20 12:13:21,owner-occupied,,,10014309523.0,Address Matched +92b118e834dc09e74490733336d727fca029ad0dc033dd730a35e6b4c4dd5219,14 HEARNE COURT,,,ME15 6QD,10001355342,B,B,81,81,Flat,,2021-07-15,E07000110,E14000804,Kent,2021-07-15,new dwelling,83,83,119,119.0,1.5,20,1.5,71.0,71.0,191.0,191.0,281.0,281.0,74.0,standard tariff,,3,Y,,,100.0,,,,,,100.0,0.0,From main system,Poor,Average,Average thermal transmittance 0.09 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.22 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.10 W/m-¦K,Very Good,Very Good,"Air source heat pump, radiators, electric",Good,Very Good,2207 Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",0.0,,,2.4,,,,14 HEARNE COURT,Maidstone,Maidstone and The Weald,TOVIL,2021,2021-07-15 08:43:19,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,25.0,,10095448646.0,Energy Assessor +1421512619942016030816031144360488,"4, Bridger Way",,,ME17 3FE,4972213478,B,A,83,117,House,Semi-Detached,2016-03-08,E07000110,E14000700,Kent,2016-03-08,new dwelling,85,117,92,-135.0,1.3,16,-1.8,55.0,55.0,238.0,238.0,85.0,50.0,79.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"4, Bridger Way",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2016-03-08 16:03:11,unknown,1.0,1.0,10091194040.0,Address Matched +746942227812013032619342793270190,10 The Quarter,Cranbrook Road,Staplehurst,TN12 0EP,1073735968,E,B,54,81,House,Semi-Detached,2013-03-26,E07000110,E14000804,Kent,2013-03-26,marketed sale,49,79,268,97.0,5.5,52,2.0,110.0,61.0,930.0,567.0,110.0,70.0,106.0,dual,Y,NODATA!,,,2107.0,100.0,double glazing installed during or after 2002,Normal,4.0,5.0,5.0,18.0,3.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 18% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"10 The Quarter, Cranbrook Road, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1900-1929,2013-03-26 19:34:27,owner-occupied,11.0,2.0,200003661960.0,Address Matched +1815858362062020080510401881458590,"6, Poplar Close",Weavering,,ME14 4FA,9843631778,B,B,82,90,House,Detached,2020-08-05,E07000110,E14000700,Kent,2020-08-05,new dwelling,84,91,85,40.0,2.4,14,1.1,110.0,110.0,519.0,520.0,235.0,139.0,168.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Average,Good,Average thermal transmittance 0.13 W/m+é-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.19 W/m+é-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.10 W/m+é-¦K,Very Good,Very Good,"Air source heat pump, radiators, electric",Good,Very Good,2207 Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"6, Poplar Close, Weavering",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2020-08-05 10:40:18,unknown,25.0,25.0,10094441509.0,Address Matched +453159839922010031217513763228900,"30, Bridge Mill Way",Tovil,,ME15 6FD,667373768,C,C,76,78,House,Mid-Terrace,2010-03-12,E07000110,E14000804,Kent,2010-03-12,marketed sale,74,75,213,204.0,2.0,35,1.9,63.0,32.0,294.0,298.0,103.0,103.0,55.4,dual,Y,NO DATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,0.0,0.0,From main system,Very Good,Very Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Average,Average,"Boiler and radiators, mains gas",Very Good,Very Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.3,0.0,N,natural,"30, Bridge Mill Way, Tovil",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2010-03-12 17:51:37,owner-occupied,,,200003716017.0,Address Matched +212517230922009011321020106278151,"20, Ham Lane",Lenham,,ME17 2LL,5047346568,E,D,39,65,House,Detached,2009-01-13,E07000110,E14000700,Kent,2009-01-13,rental (private),33,58,490,271.0,8.2,82,4.5,72.0,48.0,1092.0,611.0,168.0,127.0,100.2,Unknown,Y,NO DATA!,,,2104.0,90.0,"double glazing, unknown install date",Normal,2.0,5.0,4.0,50.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Partial double glazing,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, mains gas",,,"Pitched, 75mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Poor,Poor,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.3,0.0,N,natural,"20, Ham Lane, Lenham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2009-01-13 21:02:01,rental (private),,,200003710522.0,Address Matched +655434039962011101418204388548159,Flat 51 Tennyson Lodge,James Whatman Way,,ME14 1FR,5874358868,C,B,80,81,Flat,End-Terrace,2011-10-14,E07000110,E14000804,Kent,2011-10-14,new dwelling,91,91,103,99.0,0.6,14,0.6,39.0,29.0,161.0,162.0,92.0,92.0,45.2,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,4.0,,"Community scheme, no cylinder thermostat",Good,Very Good,(other premises below),,,Fully double glazed,Good,Good,Average thermal transmittance 0.38 W/m?K,Good,Good,,,,(other premises above),,,Community scheme,Good,Very Good,"Flat rate charging, programmer and TRVs",Average,Average,Low energy lighting in 67% of fixed outlets,Good,Good,NO DATA!,0.0,NO DATA!,,2.4,,,NO DATA!,"Flat 51 Tennyson Lodge, James Whatman Way",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2011-10-14 18:20:43,,6.0,4.0,10014312773.0,Address Matched +121214819262014072516462989758794,"15, Beechwood Road",,,ME16 9HN,9806109468,D,B,68,86,House,Semi-Detached,2014-07-25,E07000110,E14000804,Kent,2014-07-25,marketed sale,66,87,185,59.0,3.3,36,1.1,55.0,55.0,617.0,423.0,127.0,84.0,92.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"15, Beechwood Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2014-07-25 16:46:29,owner-occupied,13.0,13.0,200003666897.0,Address Matched +1358066244412016010511080496060030,"8, Wallis Oaks Avenue",,,ME15 9GS,64468378,B,A,83,95,House,NO DATA!,2016-01-04,E07000110,E14000700,Kent,2016-01-05,new dwelling,86,97,92,7.0,1.3,16,0.1,58.0,58.0,234.0,234.0,96.0,60.0,82.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.14 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.17 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"8, Wallis Oaks Avenue",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2016-01-05 11:08:04,unknown,10.0,10.0,10014315769.0,Address Matched +970855519922013071308140631108087,The Red House,Chapmans Place,Ulcombe,ME17 1GB,8364121178,C,B,73,83,House,Detached,2013-07-10,E07000110,E14000700,Kent,2013-07-13,marketed sale,68,77,127,77.0,5.1,28,3.4,130.0,82.0,902.0,916.0,180.0,113.0,185.0,Single,N,NODATA!,,,2105.0,100.0,double glazing installed during or after 2002,Normal,0.0,8.0,8.0,41.0,1.0,From main system,Average,Average,"Solid, insulated (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, wood logs",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and underfloor heating, oil",Good,Average,Programmer and at least two room thermostats,Good,Good,Low energy lighting in 41% of fixed outlets,Average,Average,oil (not community),0.0,NO DATA!,,,0.0,,natural,"The Red House, Chapmans Place, Ulcombe",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2003-2006,2013-07-13 08:14:06,owner-occupied,17.0,7.0,10014306540.0,Address Matched +1210971522212018120307031792789426,"134, Milton Street",,,ME16 8LL,4650228278,D,B,66,88,House,Mid-Terrace,2018-11-30,E07000110,E14000804,Kent,2018-12-03,rental (private),61,87,235,63.0,3.3,41,0.9,58.0,58.0,599.0,373.0,77.0,47.0,81.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,2.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"134, Milton Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2018-12-03 07:03:17,rental (private),,,200003655711.0,Address Matched +1295073377452015031522475691950138,Flat 2 Rayleigh House,Kings Reach,,ME15 7QR,1877714378,C,C,73,75,Flat,End-Terrace,2015-03-13,E07000110,E14000700,Kent,2015-03-15,rental (social),75,78,218,186.0,1.6,38,1.3,30.0,30.0,326.0,280.0,76.0,77.0,41.0,Single,Y,Ground,N,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,2.0,2.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,9.5,,,N,natural,"Flat 2 Rayleigh House, Kings Reach",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1991-1995,2015-03-15 22:47:56,rental (social),,,200003713939.0,Address Matched +455360926012010031620594198900773,"78, Calder Road",,,ME14 2RA,7397683768,D,C,62,78,House,Mid-Terrace,2010-03-16,E07000110,E14000804,Kent,2010-03-16,rental (private),62,76,290,182.0,3.2,48,2.0,66.0,38.0,547.0,335.0,100.0,87.0,75.69,dual,Y,NO DATA!,,,2107.0,100.0,double glazing installed during or after 2002,Normal,1.0,5.0,4.0,28.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,Portable electric heaters,,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 28% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.42,0.0,N,natural,"78, Calder Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2010-03-16 20:59:41,rental (private),,,200003671099.0,Address Matched +485680099442010051413001072509348,"31, Beauworth Park",,,ME15 8EU,9495695768,D,C,63,75,House,Detached,2010-05-14,E07000110,E14000700,Kent,2010-05-14,rental (private),58,71,271,186.0,4.7,45,3.2,108.0,54.0,622.0,471.0,177.0,126.0,104.02,Single,Y,NO DATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,7.0,7.0,0.0,0.0,From main system,Average,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Timber frame, as built, insulated (assumed)",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Average,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.35,0.0,N,natural,"31, Beauworth Park",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2010-05-14 13:00:10,rental (private),,,200003684762.0,Address Matched +686068079042012012316434597022578,"59, The Farrows",,,ME15 9ZJ,3073170968,B,B,83,83,House,Detached,2012-01-23,E07000110,E14000700,Kent,2012-01-23,new dwelling,85,85,81,81.0,1.9,15,1.9,72.0,72.0,342.0,342.0,62.0,62.0,125.2,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,14.0,,"From main system, plus solar",Very Good,Very Good,Average thermal transmittance 0.15 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.15 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in 82% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.3,,,NO DATA!,"59, The Farrows",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2012-01-23 16:43:45,,17.0,14.0,10014312593.0,Address Matched +921ef55c2921d0136b7102e13026ead6ce148ccd6504da04e782acddc1a71600,26 SHAW CLOSE,,,ME14 5DN,10001447561,C,B,72,81,House,Detached,2021-07-07,E07000110,E14000804,Kent,2021-07-07,marketed sale,74,83,163,100.0,2.9,25,1.6,90.0,90.0,583.0,586.0,114.0,72.0,116.0,Unknown,Y,,,,,100.0,"double glazing, unknown install date",Normal,0.0,7.0,7.0,100.0,1.0,From main system,Good,Good,"Suspended, insulated (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, wood logs",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.4,0.0,N,natural,26 SHAW CLOSE,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2021-07-07 12:21:52,Owner-occupied,12.0,,10022892503.0,Energy Assessor +799274323452018122112333591280096,"1, Clare Place",,,ME15 9ZF,658319968,C,B,78,87,House,Mid-Terrace,2018-09-26,E07000110,E14000700,Kent,2018-12-21,rental (social),78,86,126,71.0,2.3,22,1.4,72.0,72.0,404.0,404.0,90.0,90.0,106.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,7.0,7.0,100.0,0.0,"From main system, plus solar",Very Good,Very Good,"Solid, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Very Good,Very Good,,,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,Y,natural,"1, Clare Place",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2007 onwards,2018-12-21 12:33:35,rental (social),,,10014311513.0,Address Matched +818111645352012072517161994220805,"10, Lime Trees",Staplehurst,,TN12 0SS,8588540078,D,B,65,84,House,Detached,2012-07-24,E07000110,E14000804,Kent,2012-07-25,marketed sale,63,83,199,78.0,3.8,38,1.5,104.0,56.0,542.0,449.0,161.0,78.0,99.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,6.0,6.0,13.0,0.0,From main system,Average,Average,"Suspended, limited insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, mains gas",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 13% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"10, Lime Trees, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1996-2002,2012-07-25 17:16:19,owner-occupied,15.0,2.0,200003724392.0,Address Matched +1665431749702018092212051962082708,4 Council Houses,Malling Road,Teston,ME18 5AR,1726540678,D,C,67,78,House,Semi-Detached,2018-09-20,E07000110,E14000804,Kent,2018-09-22,marketed sale,66,76,208,137.0,4.0,33,2.6,98.0,77.0,772.0,692.0,109.0,108.0,121.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,1.0,8.0,8.0,71.0,0.0,From main system,Very Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,"Room heaters, wood logs",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 71% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"4 Council Houses, Malling Road, Teston",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2018-09-22 12:05:19,owner-occupied,,,, +1285038802532015022315453950278802,"8, Old Trafford Close",,,ME16 0HT,240843378,D,B,59,83,House,Semi-Detached,2015-02-23,E07000110,E14000804,Kent,2015-02-23,ECO assessment,52,81,289,96.0,4.2,51,1.4,65.0,65.0,787.0,475.0,105.0,72.0,83.0,Single,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,78.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 78% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"8, Old Trafford Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2015-02-23 15:45:39,owner-occupied,,,200003705528.0,Address Matched +1391439499842015120107182842057908,"7, Baldwin's Place",Harrietsham,,ME17 1JT,7894890478,C,B,70,83,House,End-Terrace,2015-11-30,E07000110,E14000700,Kent,2015-12-01,marketed sale,67,80,189,102.0,3.6,33,2.0,96.0,68.0,602.0,567.0,142.0,78.0,107.0,Unknown,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,58.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, mains gas",,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 58% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"7, Baldwin's Place, Harrietsham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2003-2006,2015-12-01 07:18:28,owner-occupied,,,10022895235.0,Address Matched +16936189842010072617035444802668,34 Wallis Place,Hart Street,,ME16 8FB,1805088468,B,B,86,86,Flat,NO DATA!,2010-07-26,E07000110,E14000804,Kent,2010-07-26,new dwelling,86,86,103,103.0,1.3,17,1.3,40.0,40.0,202.0,202.0,98.0,98.0,76.62,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,6.0,,From main system,Very Good,Very Good,Average thermal transmittance 0.19 W/m?K,Very Good,Very Good,Fully double glazed,Good,Good,Average thermal transmittance 0.32 W/m?K,Good,Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.36,,,NO DATA!,"34 Wallis Place, Hart Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2010-07-26 17:03:54,,6.0,6.0,10022900633.0,Address Matched +1509992027012017011710531293930748,"11, Lambourne Road",Bearsted,,ME15 8LZ,7820739478,C,B,72,90,House,Mid-Terrace,2017-01-17,E07000110,E14000700,Kent,2017-01-17,rental (private),71,91,209,46.0,2.2,37,0.5,42.0,42.0,349.0,291.0,150.0,76.0,60.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"11, Lambourne Road, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2017-01-17 10:53:12,rental (private),,,200003686240.0,Address Matched +1435980219842016042115284649462998,451 Paygate,Sutton Road,,ME15 8RB,878514478,C,B,75,86,House,Semi-Detached,2016-04-21,E07000110,E14000700,Kent,2016-04-21,marketed sale,73,83,149,85.0,3.2,26,1.9,117.0,75.0,538.0,546.0,130.0,80.0,123.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,7.0,7.0,44.0,0.0,From main system,Good,Good,"Suspended, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 44% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,2.3,,N,natural,"451 Paygate, Sutton Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2003-2006,2016-04-21 15:28:46,owner-occupied,,,10022895647.0,Address Matched +923b72cd04de43e574ee7356e9a63396e9da24ef10a352643aed326419d552d0,38 ARUNDEL SQUARE,,,ME15 6HB,5728936568,C,C,78,79,Flat,Semi-Detached,2021-07-01,E07000110,E14000804,Kent,2021-07-02,marketed sale,81,81,135,130.0,1.5,24,1.5,88.0,60.0,242.0,245.0,96.0,96.0,64.0,Single,Y,05,Y,,,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,55.0,0.0,From main system,Good,Good,(another dwelling below),,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Flat, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 55% of fixed outlets,Good,Good,mains gas (not community),0.0,unheated corridor,5.0,2.39,0.0,N,natural,38 ARUNDEL SQUARE,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007-2011,2021-07-02 07:10:48,Owner-occupied,11.0,,10022895138.0,Energy Assessor +924772226d9600a3469e55906bce342ca2c2492fe858bb883f02d41827e56cbe,16 The Spillway,,,ME15 6FE,10001413305,C,B,75,91,House,Mid-Terrace,2021-08-13,E07000110,E14000804,Kent,2021-08-13,rental,77,92,172,39.0,1.7,30,0.4,51.0,51.0,297.0,275.0,91.0,67.0,55.0,Single,Y,,,,,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,90.0,0.0,From main system,Very Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 90% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.31,0.0,N,natural,16 The Spillway,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1976-1982,2021-08-13 20:34:23,Rented (private),10.0,,200003716332.0,Energy Assessor +340196890062009080616275355568551,"2, Buston Manor Farm Cottages",Lughorse Lane,,ME18 6EF,5523975668,G,G,13,20,House,Mid-Terrace,2009-08-06,E07000110,E14000804,Kent,2009-08-06,rental (private),66,71,613,529.0,3.3,38,2.9,82.0,44.0,1344.0,1147.0,321.0,321.0,87.57,Single,N,NO DATA!,,,2601.0,0.0,INVALID!,Normal,2.0,5.0,2.0,11.0,1.0,"Electric immersion, standard tariff",Very Poor,Poor,"Solid, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,"Pitched, no insulation",Very Poor,Very Poor,"Room heaters, wood logs",Poor,Very Good,No thermostatic control of room temperature,Poor,Poor,Low energy lighting in 11% of fixed outlets,Poor,Poor,INVALID!,0.0,NO DATA!,,2.44,0.0,N,natural,"2, Buston Manor Farm Cottages, Lughorse Lane",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2009-08-06 16:27:53,rental (private),,,200003661582.0,Address Matched +360493870062009090913022407818991,3 Frigenti Place,Sittingbourne Road,,ME14 5GJ,9037717668,B,B,85,86,Flat,NO DATA!,2009-09-09,E07000110,E14000804,Kent,2009-09-09,new dwelling,85,85,116,112.0,1.3,19,1.3,47.0,35.0,204.0,205.0,84.0,84.0,67.43,standard tariff,,ground floor,,,,,NO DATA!,NO DATA!,,,,6.0,,From main system,Very Good,Very Good,Average thermal transmittance 0.18 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m?K,Very Good,Very Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 67% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.55,,,NO DATA!,"3 Frigenti Place, Sittingbourne Road",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2009-09-09 13:02:24,,9.0,6.0,10014307276.0,Address Matched +614837219022011040717241455338859,"31, Monkdown",Downswood,,ME15 8SP,5556165868,C,C,74,75,House,Semi-Detached,2011-04-07,E07000110,E14000700,Kent,2011-04-07,marketed sale,73,74,221,219.0,2.0,36,2.0,38.0,29.0,374.0,376.0,86.0,86.0,54.17,Single,Y,NO DATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,70.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, 250 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 70% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.33,0.0,N,natural,"31, Monkdown, Downswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2011-04-07 17:24:14,owner-occupied,,,200003691502.0,Address Matched +870604819542013011014374806479808,"7, Allens",Albion Road,,TN12 9DU,2530814078,C,C,75,75,Flat,End-Terrace,2013-01-10,E07000110,E14000804,Kent,2013-01-10,rental (social),78,78,156,156.0,1.5,30,1.5,30.0,30.0,264.0,264.0,102.0,102.0,50.0,Single,Y,1st,Y,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,100.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,4.4,,0.0,,natural,"7, Allens, Albion Road",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1950-1966,2013-01-10 14:37:48,rental (social),6.0,6.0,200003710342.0,Address Matched +1313758037552015042821350994250631,"20, Queensway",Detling,,ME14 3LA,6112745378,D,B,62,86,House,End-Terrace,2015-04-28,E07000110,E14000700,Kent,2015-04-28,marketed sale,56,85,273,77.0,3.8,48,1.1,103.0,51.0,649.0,414.0,138.0,81.0,80.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"20, Queensway, Detling",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2015-04-28 21:35:09,owner-occupied,,,200003694127.0,Address Matched +596635309922014022115400084318214,34 Sunningdale Court,Square Hill Road,,ME15 7TT,1898024868,C,C,69,78,Flat,End-Terrace,2014-02-19,E07000110,E14000804,Kent,2014-02-21,none of the above,71,82,214,134.0,1.8,41,1.1,52.0,29.0,312.0,222.0,123.0,98.0,44.0,Single,Y,5th,N,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,20.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 20% of fixed outlets,Poor,Poor,mains gas (not community),0.0,unheated corridor,4.6,,0.0,,natural,"34 Sunningdale Court, Square Hill Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2014-02-21 15:40:00,rental (social),5.0,1.0,200003696566.0,Address Matched +1574901727252017091410525399930557,7b Elizabeth House,Alexandra Street,,ME14 2BX,5762793578,C,B,79,83,Flat,Mid-Terrace,2017-09-11,E07000110,E14000804,Kent,2017-09-14,rental (private),69,74,300,248.0,1.7,51,1.4,28.0,28.0,160.0,104.0,111.0,111.0,33.0,dual,N,1st,N,,2402.0,100.0,double glazing installed before 2002,Normal,0.0,1.0,1.0,100.0,0.0,"Electric immersion, off-peak",Average,Poor,(another dwelling below),NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,Portable electric heaters (assumed),,,(another dwelling above),,,Electric storage heaters,Average,Very Poor,Automatic charge control,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,no corridor,,,,N,natural,"7b Elizabeth House, Alexandra Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2017-09-14 10:52:53,rental (private),,,200003728122.0,Address Matched +319596530402009070217104168417408,"19, Burston Road",Coxheath,,ME17 4DT,7459434668,D,D,67,68,Flat,Semi-Detached,2009-06-30,E07000110,E14000804,Kent,2009-07-02,rental (social),62,62,310,306.0,2.9,52,2.9,38.0,27.0,431.0,433.0,74.0,74.0,55.92,Single,Y,1st,Y,2.0,2106.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,60.0,1.0,From main system,Very Good,Very Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 60% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,unheated corridor,4.38,2.31,0.0,N,natural,"19, Burston Road, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2009-07-02 17:10:41,rental (social),,,200003670045.0,Address Matched +377923092312015061614031894950466,7 Providence Place,Stonestile Road,Headcorn,TN27 9PG,4615248668,E,B,52,83,House,End-Terrace,2015-06-16,E07000110,E14000700,Kent,2015-06-16,assessment for green deal,48,82,196,24.0,7.4,46,1.9,110.0,80.0,1264.0,870.0,229.0,104.0,160.0,dual (24 hour),N,NODATA!,,,2106.0,79.0,double glazing installed before 2002,Normal,1.0,8.0,8.0,62.0,2.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Partial double glazing,Average,Average,"Granite or whinstone, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, no insulation",Very Poor,Very Poor,"Boiler and radiators, oil",Average,Average,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 62% of fixed outlets,Good,Good,oil (not community),0.0,NO DATA!,,,,N,natural,"7 Providence Place, Stonestile Road, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,England and Wales: before 1900,2015-06-16 14:03:18,owner-occupied,,,200003698250.0,Address Matched +67398759602019010309054847410728,"159, Upper Fant Road",,,ME16 8BT,3689854468,E,C,49,80,House,Mid-Terrace,2019-01-02,E07000110,E14000804,Kent,2019-01-03,marketed sale,37,71,359,118.0,5.9,75,2.2,56.0,56.0,878.0,515.0,174.0,78.0,80.0,Single,Y,NODATA!,,,2106.0,70.0,"double glazing, unknown install date",Normal,2.0,4.0,4.0,100.0,1.0,"From main system, no cylinder thermostat",Average,Average,"To unheated space, no insulation (assumed)",NO DATA!,,Partial double glazing,Poor,Poor,"Sandstone or limestone, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, smokeless fuel",,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"159, Upper Fant Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2019-01-03 09:05:48,owner-occupied,,,200003656104.0,Address Matched +257488709542011061409575166090118,Flat 1 Robin House,Springvale,,ME16 0AT,7541300668,D,D,63,67,Flat,End-Terrace,2011-06-09,E07000110,E14000804,Kent,2011-06-14,rental (private),42,45,444,416.0,5.0,79,4.7,42.0,45.0,477.0,409.0,107.0,107.0,63.67,Unknown,N,Ground,N,,2401.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,86.0,0.0,"Electric immersion, off-peak",Average,Very Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,(another dwelling above),,,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 86% of fixed outlets,Very Good,Very Good,electricity (not community),0.0,unheated corridor,9.09,2.37,0.0,,natural,"Flat 1 Robin House, Springvale",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1991-1995,2011-06-14 09:57:51,rental (private),7.0,6.0,200003667112.0,Address Matched +92a6e386da5015668de753cd28e0ea7fce35c38f19018606715e074ab74f019d,1 Barn Meadow Cottages,Forge Lane,Boxley,ME14 3DU,10001323691,E,A,40,109,House,End-Terrace,2021-08-12,E07000110,E14000700,Kent,2021-08-15,rental,19,106,361,-64.0,10.0,110,-0.9,102.0,74.0,1185.0,343.0,423.0,70.0,93.0,Single,Y,,,,,100.0,double glazing installed during or after 2002,Normal,1.0,5.0,4.0,63.0,0.0,"Electric immersion, standard tariff",Very Poor,Poor,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,Portable electric heaters (assumed),,,"Pitched, 270 mm loft insulation",Good,Good,"Boiler and radiators, coal",Average,Very Poor,No time or thermostatic control of room temperature,Very Poor,Very Poor,Low energy lighting in 63% of fixed outlets,Good,Good,house coal (not community),0.0,,,2.36,0.0,N,natural,"1 Barn Meadow Cottages, Forge Lane, Boxley",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1900-1929,2021-08-15 13:58:58,Rented (private),8.0,,200003673388.0,Energy Assessor +599069141252011030217072594090188,"4, Star Court",,,ME15 0DS,1833144868,B,B,86,87,House,Mid-Terrace,2011-03-02,E07000110,E14000804,Kent,2011-03-02,new dwelling,87,87,100,95.0,1.1,16,1.1,60.0,45.0,201.0,202.0,82.0,82.0,69.21,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,3.0,,From main system,Very Good,Very Good,Average thermal transmittance 0.12 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.14 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Very Good,Very Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in 67% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.32,,,NO DATA!,"4, Star Court",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2011-03-02 17:07:25,,9.0,3.0,10014312154.0,Address Matched +1531714929222017032820380050888883,"27, Calder Road",,,ME14 2QQ,8511290578,C,B,72,88,House,Mid-Terrace,2017-03-28,E07000110,E14000804,Kent,2017-03-28,marketed sale,72,88,186,61.0,2.1,33,0.7,78.0,46.0,368.0,348.0,96.0,63.0,65.0,Single,Y,NODATA!,,,2107.0,100.0,double glazing installed during or after 2002,Normal,1.0,4.0,4.0,29.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 29% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"27, Calder Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2017-03-28 20:38:00,owner-occupied,,,200003670853.0,Address Matched +260786078052009040317515101010866,"27, Shaw Close",,,ME14 5DN,8613810668,D,C,68,74,House,Detached,2009-04-03,E07000110,E14000804,Kent,2009-04-03,marketed sale,64,70,223,185.0,4.4,37,3.6,120.0,60.0,520.0,479.0,150.0,121.0,117.7,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,7.0,7.0,0.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, mains gas",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.33,0.0,N,natural,"27, Shaw Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2009-04-03 17:51:51,owner-occupied,,,10022892504.0,Address Matched +611433549022013121717435755638977,"22, Slaney Road",Staplehurst,,TN12 0SE,7543435868,F,C,33,69,House,End-Terrace,2013-11-07,E07000110,E14000804,Kent,2013-12-17,none of the above,37,69,414,166.0,5.9,77,2.4,66.0,46.0,896.0,660.0,462.0,143.0,77.0,Single,Y,NODATA!,,,2504.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,56.0,0.0,No system present: electric immersion assumed,Very Poor,Very Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,"Pitched, 50 mm loft insulation",Poor,Poor,"Warm air, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 56% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"22, Slaney Road, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1967-1975,2013-12-17 17:43:57,rental (private),9.0,5.0,200003678622.0,Address Matched +928d0b82b40bc839644409bae78bb4d4f227e45ec9fbf3d0ed200a73be15454a,4 TENACRE COURT,ASHFORD ROAD,HARRIETSHAM,ME17 1AH,10001516285,D,D,67,67,Flat,End-Terrace,2021-08-05,E07000110,E14000700,Kent,2021-08-05,not sale or rental,70,70,191,191.0,2.3,32,2.3,68.0,68.0,551.0,551.0,239.0,239.0,72.0,standard tariff,,2,N,,,100.0,,,,,,100.0,0.0,Electric instantaneous at point of use,Very Poor,Poor,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.49 W/m-¦K,Good,Good,,,,(other premises above),,,"Boiler and radiators, electric",Very Poor,Poor,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",0.0,,,2.55,,,,"4 TENACRE COURT, ASHFORD ROAD, HARRIETSHAM",Maidstone,Faversham and Mid Kent,MAIDSTONE,2020,2021-08-05 14:26:52,Owner-occupied,5.0,,10095449469.0,Energy Assessor +1217764079142014101315183727840418,"112, Newbury Avenue",,,ME16 0RD,125578278,D,B,58,86,Bungalow,Semi-Detached,2014-10-09,E07000110,E14000804,Kent,2014-10-13,none of the above,55,86,276,65.0,3.4,53,0.9,42.0,42.0,685.0,424.0,103.0,63.0,64.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,100.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"112, Newbury Avenue",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2014-10-13 15:18:37,owner-occupied,6.0,6.0,200003659330.0,Address Matched +490553139702010052515185975602158,"9, Waterlow Road",,,ME14 2TR,8779136768,E,D,53,58,House,Mid-Terrace,2010-05-25,E07000110,E14000804,Kent,2010-05-25,marketed sale,46,50,420,385.0,4.6,70,4.6,60.0,33.0,712.0,669.0,92.0,92.0,65.16,Single,Y,NO DATA!,,,2602.0,50.0,double glazing installed before 2002,Normal,1.0,4.0,4.0,20.0,0.0,Gas multipoint,Average,Good,"Solid, no insulation (assumed)",,,Partial double glazing,Poor,Poor,"Granite or whin, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, mains gas",Average,Average,Appliance thermostats,Good,Good,Low energy lighting in 20% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.53,0.0,N,natural,"9, Waterlow Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2010-05-25 15:18:59,owner-occupied,,,200003703230.0,Address Matched +824851248232012081512595378978303,"302, Upper Fant Road",,,ME16 8DA,4318390078,D,B,61,85,House,End-Terrace,2012-08-15,E07000110,E14000804,Kent,2012-08-15,marketed sale,56,84,231,71.0,4.3,45,1.4,51.0,51.0,721.0,427.0,107.0,72.0,96.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,6.0,6.0,100.0,2.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"302, Upper Fant Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2012-08-15 12:59:53,owner-occupied,8.0,8.0,200003656195.0,Address Matched +1358289569142015090410100138850778,"28, Cobb Way",,,ME15 9XF,5124468378,B,A,83,95,House,NO DATA!,2015-09-03,E07000110,E14000700,Kent,2015-09-04,new dwelling,87,98,88,1.0,1.2,15,0.0,60.0,60.0,218.0,218.0,93.0,59.0,79.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.14 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.17 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"28, Cobb Way",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2015-09-04 10:10:01,unknown,10.0,10.0,10014315882.0,Address Matched +325390970902009071421113167419678,5 Oliver North House,Charlton Lane,West Farleigh,ME15 0PA,4966774668,C,C,77,77,Flat,Semi-Detached,2009-07-13,E07000110,E14000804,Kent,2009-07-14,rental (social),74,74,239,239.0,1.8,40,1.8,26.0,26.0,284.0,284.0,88.0,88.0,44.1,Single,Y,Ground,N,2.0,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,80.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,unheated corridor,5.0,2.28,0.0,N,natural,"5 Oliver North House, Charlton Lane, West Farleigh",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2009-07-14 21:11:31,rental (social),,,200003662901.0,Address Matched +1684470389302018120710084363180538,"34, St. Lawrence Crescent",Coxheath,,ME17 4FS,2374381678,B,A,83,94,House,Detached,2018-12-07,E07000110,E14000804,Kent,2018-12-07,new dwelling,85,95,93,19.0,1.5,16,0.3,65.0,65.0,258.0,258.0,75.0,44.0,93.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.20 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.27 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.15 W/m-¦K,Good,Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"34, St. Lawrence Crescent, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2018-12-07 10:08:43,unknown,18.0,18.0,10093306421.0,Address Matched +1165140309222014062718005445838774,26a Cotswold Gardens,Downswood,,ME15 8TB,7413005278,B,A,83,94,House,End-Terrace,2014-06-27,E07000110,E14000700,Kent,2014-06-27,new dwelling,84,95,92,22.0,1.7,16,0.4,59.0,59.0,284.0,285.0,98.0,52.0,104.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.17 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.19 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.14 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"26a Cotswold Gardens, Downswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2014-06-27 18:00:54,owner-occupied,12.0,12.0,10014314300.0,Address Matched +1700690119222019022614241903068761,"8, Maxton Close",Bearsted,,ME14 4QD,6014103678,D,B,56,83,House,Detached,2019-02-26,E07000110,E14000700,Kent,2019-02-26,marketed sale,48,80,298,98.0,5.7,53,1.9,133.0,73.0,875.0,520.0,189.0,73.0,109.0,Unknown,Y,NODATA!,,,2107.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,19.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 19% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"8, Maxton Close, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2019-02-26 14:24:19,owner-occupied,,,200003688965.0,Address Matched +18000860412019032015035298210340,103 Wallis Place,Hart Street,,ME16 8FD,3028088468,B,B,81,82,Flat,End-Terrace,2019-03-20,E07000110,E14000804,Kent,2019-03-20,rental (private),85,85,103,97.0,1.2,18,1.1,82.0,56.0,191.0,194.0,80.0,79.0,66.0,Single,Y,2nd,N,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,3.0,3.0,54.0,0.0,From main system,Good,Good,(another dwelling below),NO DATA!,,Fully double glazed,Good,Good,"System built, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 54% of fixed outlets,Good,Good,mains gas (not community),0.0,unheated corridor,10.31,,,N,natural,"103 Wallis Place, Hart Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2019-03-20 15:03:52,rental (private),,,10022900704.0,Address Matched +1550650866332017060814485909078503,Flat 1,1a Queen Anne Road,,ME14 1HU,6399522578,C,C,76,76,Flat,Detached,2017-06-08,E07000110,E14000804,Kent,2017-06-08,new dwelling,78,78,174,174.0,1.3,31,1.3,32.0,32.0,262.0,262.0,77.0,77.0,43.0,standard tariff,,ground floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.73 W/m-¦K,Very Poor,Very Poor,Fully double glazed,Good,Good,Average thermal transmittance 0.27 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Flat 1, 1a Queen Anne Road",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2017-06-08 14:48:59,owner-occupied,8.0,8.0,, +535127899062010090217141149428370,Flat 7 Block D,Lindisfarne Gardens,,ME16 8NF,7462949768,B,B,82,86,Flat,Mid-Terrace,2010-09-02,E07000110,E14000804,Kent,2010-09-02,rental (private),82,86,143,115.0,1.4,23,1.1,69.0,35.0,191.0,188.0,120.0,100.0,59.52,Single,Y,1st,N,3.0,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,0.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,heated corridor,,2.36,0.0,N,natural,"Flat 7 Block D, Lindisfarne Gardens",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2010-09-02 17:14:11,rental (private),,,200003724442.0,Address Matched +17294320152011103115165698799445,124 Wallis Place,Hart Street,,ME16 8FD,4547088468,B,B,84,84,Flat,NO DATA!,2011-10-31,E07000110,E14000804,Kent,2011-10-31,new dwelling,88,88,79,79.0,1.0,15,1.0,36.0,36.0,170.0,170.0,86.0,86.0,64.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,6.0,,From main system,Good,Good,(other premises below),,,Fully double glazed,Good,Good,Average thermal transmittance 0.25 W/m?K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,,,NO DATA!,"124 Wallis Place, Hart Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2011-10-31 15:16:56,,6.0,6.0,10022900725.0,Address Matched +551263669302010120107261789009638,Flat 3 Aintree House,Epsom Close,,ME15 8XE,5319360868,D,D,67,67,Flat,Detached,2010-11-17,E07000110,E14000700,Kent,2010-12-01,rental (social),57,57,492,492.0,2.5,74,2.5,25.0,25.0,248.0,248.0,117.0,117.0,33.89,dual,Y,Ground,N,2.0,2402.0,100.0,double glazing installed before 2002,Normal,0.0,2.0,2.0,80.0,0.0,"Electric immersion, off-peak",Average,Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,(another dwelling above),,,Electric storage heaters,Poor,Very Poor,Automatic charge control,Average,Average,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,electricity - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.32,0.0,N,natural,"Flat 3 Aintree House, Epsom Close",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2010-12-01 07:26:17,rental (social),,,200003681231.0,Address Matched +294285759642019070512030163210198,"12, Hughenden Reach",Tovil,,ME15 6ZL,8675752668,B,B,81,81,Flat,Mid-Terrace,2019-07-01,E07000110,E14000804,Kent,2019-07-05,marketed sale,82,82,114,114.0,1.8,20,1.8,72.0,72.0,279.0,279.0,102.0,102.0,88.0,Unknown,Y,1st,N,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,"To external air, insulated (assumed)",NO DATA!,,Fully double glazed,Average,Average,"System built, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,3.7,,,N,natural,"12, Hughenden Reach, Tovil",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2019-07-05 12:03:01,owner-occupied,,,10014308475.0,Address Matched +1420172799042017071109034343239808,"2, Heron Place",Allington,,ME16 0FD,9063992478,B,A,87,93,House,Detached,2017-07-10,E07000110,E14000804,Kent,2017-07-11,new dwelling,86,93,66,28.0,2.2,12,1.0,90.0,90.0,350.0,351.0,113.0,63.0,193.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.14 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.26 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.16 W/m-¦K,Good,Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"2, Heron Place, Allington",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2017-07-11 09:03:43,owner-occupied,14.0,14.0,10091195367.0,Address Matched +1767948419132019112519234443278198,"10, Sissinghurst Drive",,,ME16 0UW,1853197678,C,B,70,91,House,Mid-Terrace,2019-11-25,E07000110,E14000804,Kent,2019-11-25,marketed sale,68,93,217,27.0,2.3,38,0.3,54.0,54.0,329.0,252.0,163.0,65.0,61.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,90.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 90% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"10, Sissinghurst Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1991-1995,2019-11-25 19:23:44,owner-occupied,,,200003693236.0,Address Matched +190182570602009051913471058482548,"94, Camp Way",,,ME15 9BB,6626874568,C,C,73,74,House,Mid-Terrace,2008-11-24,E07000110,E14000700,Kent,2009-05-19,rental (social),70,70,218,212.0,2.7,36,2.7,59.0,36.0,368.0,373.0,98.0,98.0,75.0,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,4.0,4.0,33.0,1.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and underfloor heating, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 33% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.45,0.0,N,natural,"94, Camp Way",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2009-05-19 13:47:10,rental (social),,,200003710110.0,Address Matched +1290841289842015031218474530359328,"2, Wedgewood Close",,,ME16 0NJ,2841783378,E,B,42,86,House,Detached,2015-03-12,E07000110,E14000804,Kent,2015-03-12,none of the above,35,84,419,79.0,7.1,74,1.4,119.0,60.0,1190.0,460.0,220.0,75.0,96.0,Single,Y,NODATA!,,,2104.0,0.0,not defined,Normal,0.0,5.0,5.0,0.0,0.0,"From main system, no cylinder thermostat",Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Single glazed,Very Poor,Very Poor,"Cavity wall, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"2, Wedgewood Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1991-1995,2015-03-12 18:47:45,owner-occupied,,,200003706024.0,Address Matched +530749119502016050318535473960478,"5, Shearers Close",Weavering,,ME14 5UQ,2512719768,D,C,67,79,House,Detached,2016-05-03,E07000110,E14000700,Kent,2016-05-03,ECO assessment,60,74,199,118.0,5.3,36,3.2,77.0,77.0,952.0,806.0,166.0,93.0,149.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,9.0,9.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,2.36,,N,natural,"5, Shearers Close, Weavering",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2016-05-03 18:53:54,owner-occupied,,,200003687941.0,Address Matched +623000629442011042821181088692888,"15, The Waldens",Kingswood,,ME17 3QG,1430726868,D,C,64,72,House,Semi-Detached,2011-04-28,E07000110,E14000700,Kent,2011-04-28,marketed sale,61,72,224,162.0,4.1,43,3.0,88.0,48.0,641.0,493.0,98.0,86.0,95.32,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,2.0,6.0,6.0,15.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 15% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,2.32,0.0,,natural,"15, The Waldens, Kingswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2011-04-28 21:18:10,owner-occupied,13.0,2.0,200003701415.0,Address Matched +894956699602015022411265001552548,"14, Knowle Road",Penenden Heath,,ME14 2BB,4671095078,D,B,65,86,House,Semi-Detached,2015-02-24,E07000110,E14000804,Kent,2015-02-24,ECO assessment,61,84,233,79.0,3.7,41,1.3,124.0,62.0,650.0,451.0,108.0,76.0,90.0,dual,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,0.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"14, Knowle Road, Penenden Heath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2015-02-24 11:26:50,owner-occupied,,,200003701938.0,Address Matched +9303b174a07f3c492df37c3acb9adcd9ccfaefd61fcb9051cf17d4262a298485,1 Goring Place,Church Street,,ME14 1FJ,191765668,C,C,70,72,Flat,Enclosed End-Terrace,2021-08-30,E07000110,E14000804,Kent,2021-08-30,marketed sale,73,75,219,205.0,1.8,37,1.7,71.0,47.0,329.0,334.0,253.0,227.0,48.0,Unknown,N,00,N,,,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,50.0,0.0,"From main system, no cylinder thermostat",Very Poor,Average,"Suspended, insulated (assumed)",,,Fully double glazed,Good,Good,"Timber frame, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Air source heat pump, radiators, electric",Poor,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 50% of fixed outlets,Good,Good,electricity (not community),0.0,unheated corridor,6.75,2.3,0.0,N,"mechanical, supply and extract","1 Goring Place, Church Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007-2011,2021-08-30 12:13:05,Owner-occupied,8.0,,10014306400.0,Energy Assessor +1110008449022015020911443161318315,"4, Silver Tree Close",,,ME5 9ST,1621411278,C,A,71,108,House,End-Terrace,2015-02-09,E07000110,E14000700,Kent,2015-02-09,assessment for green deal,68,105,198,-54.0,2.8,35,-0.7,66.0,52.0,485.0,425.0,138.0,81.0,82.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,5.0,5.0,75.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"4, Silver Tree Close",Maidstone,Faversham and Mid Kent,CHATHAM,England and Wales: 1983-1990,2015-02-09 11:44:31,owner-occupied,,,200003709204.0,Address Matched +439436209962010021719460652068020,"103, Lower Boxley Road",,,ME14 2UT,2582082768,D,D,59,66,House,Mid-Terrace,2010-02-16,E07000110,E14000804,Kent,2010-02-17,marketed sale,52,60,356,298.0,4.0,59,3.4,64.0,35.0,620.0,547.0,101.0,87.0,67.8,Single,Y,NO DATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,1.0,3.0,3.0,15.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 15% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.2,0.0,N,natural,"103, Lower Boxley Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2010-02-17 19:46:06,owner-occupied,,,200003703550.0,Address Matched +1174471469102014072214085023542228,"74, Murrain Drive",Downswood,,ME15 8XN,5166465278,D,A,67,92,House,Mid-Terrace,2014-07-22,E07000110,E14000700,Kent,2014-07-22,marketed sale,67,95,221,11.0,2.2,43,0.2,35.0,35.0,381.0,276.0,170.0,72.0,53.0,Single,Y,NODATA!,,,2107.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,100.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"74, Murrain Drive, Downswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2014-07-22 14:08:50,owner-occupied,7.0,7.0,200003691552.0,Address Matched +316084530312009062921420601210165,Flat 114 Scotney Gardens,St. Peters Street,,ME16 0GT,1517014668,D,C,67,71,Flat,Mid-Terrace,2009-06-29,E07000110,E14000804,Kent,2009-06-29,marketed sale,64,66,291,274.0,3.0,44,2.9,64.0,40.0,302.0,279.0,132.0,132.0,69.28,dual,N,3rd,N,4.0,2401.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,40.0,0.0,"Electric immersion, off-peak",Poor,Poor,(other premises below),,,Fully double glazed,Good,Good,"Timber frame, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,"Pitched, insulated (assumed)",Good,Good,Electric storage heaters,Poor,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 40% of fixed outlets,Average,Average,electricity - this is for backwards compatibility only and should not be used,0.0,unheated corridor,3.02,3.54,0.0,N,"mechanical, extract only","Flat 114 Scotney Gardens, St. Peters Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2009-06-29 21:42:06,owner-occupied,,,10022893482.0,Address Matched +305162439402010083011104863307508,"12, Somner Walk",,,ME15 9PR,426533668,C,C,79,79,Bungalow,Mid-Terrace,2010-08-30,E07000110,E14000700,Kent,2010-08-30,rental (social),76,76,210,210.0,1.7,35,1.7,25.0,25.0,302.0,302.0,78.0,78.0,48.24,Single,Y,NO DATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,100.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"System built, with external insulation",Good,Good,,,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.39,0.0,N,natural,"12, Somner Walk",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2010-08-30 11:10:48,rental (social),,,200003680071.0,Address Matched +1592837626612017112812525292239357,"16, Farleigh Heights",Tovil,,ME15 6XN,3782625578,B,A,84,96,House,Mid-Terrace,2017-11-27,E07000110,E14000804,Kent,2017-11-28,new dwelling,87,98,84,3.0,1.3,15,0.1,64.0,64.0,214.0,214.0,78.0,45.0,85.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.12 W/m+é-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.19 W/m+é-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.10 W/m+é-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"16, Farleigh Heights, Tovil",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2017-11-28 12:52:52,unknown,30.0,30.0,10091195977.0,Address Matched +1793970972502020031916391761909118,"23, Pickers Road",Allington,,ME16 9GB,6538879678,B,B,87,88,House,Mid-Terrace,2020-03-19,E07000110,E14000804,Kent,2020-03-19,new dwelling,89,92,65,47.0,0.9,12,0.6,66.0,66.0,180.0,181.0,89.0,50.0,74.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.16 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.16 W/m-¦K,Good,Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"23, Pickers Road, Allington",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2020-03-19 16:39:17,unknown,16.0,16.0,10093306739.0,Address Matched +405698432442020062417164472002628,Flat 8 St. Georges House,St. Georges Square,,ME16 8JQ,8419630768,D,D,65,68,Flat,Semi-Detached,2020-06-22,E07000110,E14000804,Kent,2020-06-24,rental (private),64,67,272,248.0,2.4,48,2.2,86.0,43.0,424.0,405.0,81.0,81.0,50.0,Unknown,Y,2nd,N,,2111.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,0.0,0.0,From main system,Good,Good,(another dwelling below),NO DATA!,,Fully double glazed,Average,Average,"Timber frame, as built, no insulation (assumed)",Very Poor,Very Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,TRVs and bypass,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,unheated corridor,3.55,,,N,natural,"Flat 8 St. Georges House, St. Georges Square",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2020-06-24 17:16:44,rental (private),,,10014306493.0,Address Matched +1800835366032020060314343068078805,"14, Whatman Drive",,,ME14 5FZ,6588820778,B,A,84,97,House,Mid-Terrace,2020-06-03,E07000110,E14000700,Kent,2020-06-03,new dwelling,88,100,79,-16.0,1.0,14,-0.2,62.0,62.0,178.0,178.0,70.0,41.0,72.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.16 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.28 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.14 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"14, Whatman Drive",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2020-06-03 14:34:30,owner-occupied,13.0,13.0,10093305893.0,Address Matched +363838240342009091520080363719858,1 The Wychlings,Gravelly Bottom Road,Kingswood,ME17 3PZ,9323447668,D,C,68,73,House,Detached,2009-09-15,E07000110,E14000700,Kent,2009-09-15,marketed sale,63,68,208,179.0,5.9,35,5.1,125.0,87.0,775.0,700.0,175.0,148.0,195.17,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,9.0,9.0,56.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 56% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.62,0.0,N,natural,"1 The Wychlings, Gravelly Bottom Road, Kingswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2009-09-15 20:08:03,owner-occupied,,,200003700263.0,Address Matched +637707448712011060319371792090981,"27, Ravens Dane Close",Downswood,,ME15 8XL,9151827868,D,C,67,78,Flat,NO DATA!,2011-06-03,E07000110,E14000700,Kent,2011-06-03,rental (private),48,66,467,299.0,3.5,83,2.2,31.0,31.0,296.0,168.0,127.0,96.0,42.04,dual,N,1st,Y,,2401.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,83.0,0.0,"Electric immersion, off-peak",Average,Very Poor,(other premises below),,,Fully double glazed,Good,Good,"Cavity wall, as built, partial insulation (assumed)",Average,Average,"Room heaters, electric",,,"Pitched, 100 mm loft insulation",Average,Average,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 83% of fixed outlets,Very Good,Very Good,electricity (not community),0.0,no corridor,,2.36,0.0,,natural,"27, Ravens Dane Close, Downswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1976-1982,2011-06-03 19:37:17,rental (private),6.0,5.0,200003691616.0,Address Matched +332834882222020022115360885708760,"42, Merton Road",Bearsted,,ME15 8LJ,6808825668,C,B,70,88,House,Mid-Terrace,2020-02-20,E07000110,E14000700,Kent,2020-02-21,rental (social),69,88,221,71.0,2.3,39,0.8,50.0,50.0,420.0,351.0,86.0,58.0,60.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"42, Merton Road, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2020-02-21 15:36:08,rental (social),,,200003685993.0,Address Matched +147897677152008100711213409980551,Apartment 8,Rocklands,31 Tonbridge Road,ME16 8RX,5114790568,B,B,83,84,Flat,Detached,2008-09-19,E07000110,E14000804,Kent,2008-10-07,marketed sale,82,82,151,147.0,1.3,0,1.3,34.0,24.0,160.0,162.0,62.0,62.0,52.07,standard tariff,,ground floor,,,,,NO DATA!,NO DATA!,,,,3.0,,SAP05:Hot-Water,,,SAP05:Floor,,,SAP05:Windows,,,SAP05:Walls,,,SAP05:Secondary-Heating,,,SAP05:Roof,,,SAP05:Main-Heating,,,SAP05:Main-Heating-Controls,,,SAP05:Lighting,,,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,,,NO DATA!,"Apartment 8, Rocklands, 31 Tonbridge Road",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2008-10-07 11:21:34,,5.0,3.0,10022896446.0,Address Matched +652629803912011071020315893090285,"26, Halstead Walk",,,ME16 0PN,2597338868,D,C,56,71,House,End-Terrace,2011-07-08,E07000110,E14000804,Kent,2011-07-10,marketed sale,54,72,319,189.0,3.6,61,2.1,48.0,32.0,469.0,357.0,216.0,94.0,58.72,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,50.0,0.0,"From main system, no cylinder thermostat",Poor,Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 25 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,2.43,0.0,,natural,"26, Halstead Walk",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2011-07-10 20:31:58,owner-occupied,8.0,4.0,200003723301.0,Address Matched +1579192129742017100320014758430328,Hill View,Harple Lane,Detling,ME14 3EU,6765924578,D,C,65,80,House,Semi-Detached,2017-10-02,E07000110,E14000700,Kent,2017-10-03,rental (private),62,78,204,112.0,5.4,33,2.9,83.0,83.0,1059.0,807.0,159.0,86.0,166.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,6.0,6.0,100.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, wood logs",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"Hill View, Harple Lane, Detling",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2017-10-03 20:01:47,rental (private),,,200003731771.0,Address Matched +1070018299022014090516055468458224,"3, Pippin Close",Coxheath,,ME17 4DS,2688928178,D,B,59,87,House,Semi-Detached,2014-09-05,E07000110,E14000804,Kent,2014-09-05,assessment for green deal,56,88,262,58.0,3.6,50,0.9,92.0,46.0,552.0,387.0,238.0,78.0,72.0,Unknown,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,0.0,0.0,"From main system, no cylinder thermostat",Poor,Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Average,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"3, Pippin Close, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2014-09-05 16:05:54,owner-occupied,8.0,0.0,200003669963.0,Address Matched +1677472262352019100910012993089167,Flat 107,Kent House,Romney Place,ME15 6LA,1724231678,D,D,63,63,Flat,Detached,2018-11-09,E07000110,E14000804,Kent,2019-10-09,non marketed sale,67,67,262,262.0,2.1,44,2.1,39.0,39.0,417.0,417.0,257.0,257.0,48.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,"Electric immersion, standard tariff",Very Poor,Poor,Average thermal transmittance 0.26 W/m-¦K,Good,Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.34 W/m-¦K,Good,Good,,,,(other premises above),,,Electric underfloor heating,Very Poor,Poor,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"Flat 107, Kent House, Romney Place",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2019-10-09 10:01:29,unknown,21.0,21.0,10094442349.0,Address Matched +364831511132019091816340726968002,"107, Robins Close",Lenham,,ME17 2LE,1246057668,C,C,71,75,Flat,Semi-Detached,2019-09-17,E07000110,E14000700,Kent,2019-09-18,rental (private),70,76,220,171.0,2.3,39,1.8,48.0,48.0,408.0,314.0,85.0,85.0,59.0,Unknown,Y,2nd,Y,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,(another dwelling below),NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,7.27,,,N,natural,"107, Robins Close, Lenham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2019-09-18 16:34:07,rental (private),,,200003707270.0,Address Matched +405250826312009120112190803719171,Arron House,Dean Street,East Farleigh,ME15 0PT,1158630768,C,C,70,74,House,Detached,2009-11-30,E07000110,E14000804,Kent,2009-12-01,marketed sale,67,70,208,191.0,3.8,35,3.6,107.0,56.0,507.0,491.0,142.0,142.0,111.392,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,6.0,6.0,11.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 11% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,0.0,N,natural,"Arron House, Dean Street, East Farleigh",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2009-12-01 12:19:08,owner-occupied,,,200003670449.0,Address Matched +763023237232012032619422351268405,"11, Mill Lane",Coxheath,,ME17 4HG,3551456968,D,C,67,74,Bungalow,Semi-Detached,2012-03-25,E07000110,E14000804,Kent,2012-03-26,marketed sale,68,76,214,162.0,2.6,41,2.0,64.0,37.0,437.0,357.0,87.0,77.0,64.07,Single,Y,NODATA!,,,2107.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,25.0,0.0,From main system,Good,Good,"Solid, insulated",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 25% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,2.41,0.0,,natural,"11, Mill Lane, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2012-03-26 19:42:23,owner-occupied,8.0,2.0,200003713879.0,Address Matched +780557429262012042521315047358862,"38, Heath Grove",,,ME16 9AS,6423287968,D,B,65,86,House,Mid-Terrace,2012-04-25,E07000110,E14000804,Kent,2012-04-25,rental (private),63,87,217,64.0,3.0,42,0.9,59.0,41.0,486.0,352.0,106.0,72.0,72.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,2.0,3.0,3.0,55.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 55% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"38, Heath Grove",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2012-04-25 21:31:50,rental (private),11.0,6.0,200003676238.0,Address Matched +1681483069002018112615133562182868,"2, Little Knoxes Close",,,ME16 9FD,3090261678,B,A,84,96,House,Semi-Detached,2018-11-26,E07000110,E14000804,Kent,2018-11-26,new dwelling,86,98,84,-3.0,1.2,15,0.0,58.0,58.0,200.0,200.0,76.0,45.0,79.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.18 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"2, Little Knoxes Close",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2018-11-26 15:13:35,unknown,15.0,15.0,10093303517.0,Address Matched +261040210022009040316033580878961,"13, Tattershall Road",,,ME15 6GA,6875110668,D,C,65,74,House,Semi-Detached,2009-04-03,E07000110,E14000804,Kent,2009-04-03,marketed sale,64,73,272,202.0,3.0,45,2.2,65.0,32.0,347.0,311.0,133.0,86.0,67.32,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,0.0,0.0,"From main system, no cylinderstat",Average,Average,"Solid, limited insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.36,0.0,N,natural,"13, Tattershall Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2009-04-03 16:03:35,owner-occupied,,,10022892154.0,Address Matched +1744845709922019081910593726918871,"3, Millstone Road",Headcorn,,TN27 9DF,7216026678,B,A,84,118,House,End-Terrace,2019-08-19,E07000110,E14000700,Kent,2019-08-19,new dwelling,87,118,85,-139.0,1.2,15,-1.8,64.0,64.0,204.0,204.0,76.0,46.0,80.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.18 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"3, Millstone Road, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,NO DATA!,2019-08-19 10:59:37,unknown,20.0,20.0,10093306098.0,Address Matched +550446859102010100915342681000218,Flat 4 Rydal House,Westmorland Green,,ME15 8BJ,3170850868,B,B,81,82,Flat,Detached,2010-10-09,E07000110,E14000700,Kent,2010-10-09,rental (social),80,81,155,150.0,1.6,26,1.5,50.0,33.0,263.0,266.0,86.0,86.0,61.89,Single,Y,1st,N,3.0,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,50.0,0.0,From main system,Very Good,Very Good,(other premises below),,,Fully double glazed,Average,Average,"System built, with external insulation",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,unheated corridor,5.3,2.45,0.0,N,natural,"Flat 4 Rydal House, Westmorland Green",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2010-10-09 15:34:26,rental (social),,,200003685487.0,Address Matched +93610907a8308eb547aaffa1fd5f0a10ba03c5f0145a94dc21b4348b50af609c,17 Lower Fant Road,,,ME16 8DP,10001389614,D,C,62,80,House,Semi-Detached,2021-08-12,E07000110,E14000804,Kent,2021-08-12,rental,56,76,268,126.0,3.8,47,1.8,67.0,67.0,649.0,510.0,89.0,63.0,80.0,Unknown,Y,,,,,100.0,double glazing installed during or after 2002,Normal,2.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.66,0.0,N,natural,17 Lower Fant Road,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2021-08-12 15:18:22,Rented (private),12.0,,200003668352.0,Energy Assessor +673284179802011090123203784990398,"14a, Brishing Lane",,,ME15 9EZ,9813979868,C,C,74,75,Flat,Semi-Detached,2011-09-01,E07000110,E14000700,Kent,2011-09-01,rental (social),79,80,172,164.0,1.4,33,1.3,41.0,25.0,253.0,256.0,70.0,70.0,42.0,Single,Y,1st,Y,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,33.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"System built, with external insulation",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 33% of fixed outlets,Average,Average,mains gas (not community),0.0,unheated corridor,6.0,2.25,0.0,,natural,"14a, Brishing Lane",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2011-09-01 23:20:37,rental (social),6.0,2.0,200003682988.0,Address Matched +1600525549832018011512234668978005,Flat 1,139-141 Upper Stone Street,,ME15 6HJ,4578085578,E,C,48,78,Flat,Mid-Terrace,2018-01-10,E07000110,E14000804,Kent,2018-01-15,rental (private),54,63,579,458.0,2.3,98,1.8,21.0,23.0,459.0,156.0,231.0,113.0,23.0,Single,N,1st,Y,,2602.0,100.0,"double glazing, unknown install date",Normal,0.0,1.0,1.0,100.0,0.0,"Electric immersion, standard tariff",Very Poor,Poor,(another dwelling below),NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Room heaters, electric",Very Poor,Poor,Appliance thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,unheated corridor,4.67,,,N,natural,"Flat 1, 139-141 Upper Stone Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2018-01-15 12:23:46,rental (private),,,, +201760386412008121712454307989151,"13, Eversley Close",,,ME16 0RZ,1115675568,D,C,59,72,Bungalow,Detached,2008-12-15,E07000110,E14000804,Kent,2008-12-17,marketed sale,52,68,354,237.0,4.1,59,2.7,34.0,34.0,520.0,362.0,93.0,72.0,69.4,Single,Y,NO DATA!,,,2104.0,100.0,secondary glazing,Normal,0.0,3.0,3.0,90.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Full secondary glazing,Good,Good,"Cavity wall, as built, partial insulation (assumed)",Average,Average,"Room heaters, mains gas",,,"Pitched, 250mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Poor,Poor,Low energy lighting in 90% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.41,0.0,N,natural,"13, Eversley Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1976-1982,2008-12-17 12:45:43,owner-occupied,,,200003661016.0,Address Matched +1423167463852016031218234992960444,"32, Queens House",Fennel Close,,ME16 0SZ,4439323478,C,C,70,74,Flat,Mid-Terrace,2016-03-12,E07000110,E14000804,Kent,2016-03-12,rental (private),70,75,206,174.0,2.1,36,1.8,89.0,46.0,372.0,334.0,100.0,100.0,59.0,Single,Y,Ground,N,,2106.0,0.0,not defined,Normal,0.0,3.0,3.0,0.0,0.0,From main system,Good,Good,"Solid, limited insulation (assumed)",NO DATA!,,Single glazed,Very Poor,Very Poor,"Granite or whinstone, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,no corridor,,,,N,natural,"32, Queens House, Fennel Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2016-03-12 18:23:49,rental (private),,,200003722361.0,Address Matched +1581077730332017101006471046078197,"42, Chamberlain Avenue",,,ME16 8NT,3756144578,D,B,60,88,House,Semi-Detached,2017-10-09,E07000110,E14000804,Kent,2017-10-10,marketed sale,54,87,290,65.0,3.9,51,0.9,63.0,63.0,629.0,344.0,177.0,79.0,77.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,80.0,0.0,"From main system, no cylinder thermostat",Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"42, Chamberlain Avenue",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2017-10-10 06:47:10,owner-occupied,,,200003656051.0,Address Matched +1785787082962020021815323759488850,"15, Pickers Road",Allington,,ME16 9GB,5523819678,B,B,86,86,Maisonette,Semi-Detached,2020-02-18,E07000110,E14000804,Kent,2020-02-18,new dwelling,89,89,73,73.0,0.8,13,0.8,52.0,52.0,179.0,179.0,82.0,82.0,59.0,standard tariff,,ground floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.18 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.28 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"15, Pickers Road, Allington",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2020-02-18 15:32:37,unknown,18.0,18.0,10093306731.0,Address Matched +229914330442009022623113553812668,"304, Willington Street",,,ME15 8HL,3401038568,C,C,76,77,Flat,Semi-Detached,2009-02-26,E07000110,E14000700,Kent,2009-02-26,rental (social),73,74,259,255.0,1.7,43,1.6,26.0,18.0,268.0,269.0,65.0,65.0,38.64,Single,Y,Ground,N,2.0,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,1.0,1.0,60.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,(another dwelling above),,,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 60% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.35,0.0,N,natural,"304, Willington Street",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2009-02-26 23:11:35,rental (social),,,200003684835.0,Address Matched +503146375712010062312273492200377,"1a, Spencer Way",,,ME15 8AU,3714527768,D,C,66,78,Flat,Semi-Detached,2010-06-22,E07000110,E14000700,Kent,2010-06-23,rental (private),66,68,376,353.0,2.0,57,1.9,45.0,23.0,173.0,158.0,190.0,100.0,36.08,dual,N,Ground,N,2.0,2401.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,0.0,0.0,"Electric immersion, off-peak",Very Poor,Poor,"Suspended, insulated (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,(another dwelling above),,,Electric storage heaters,Poor,Very Poor,Manual charge control,Poor,Poor,No low energy lighting,Very Poor,Very Poor,electricity - this is for backwards compatibility only and should not be used,0.0,unheated corridor,4.38,2.44,0.0,N,natural,"1a, Spencer Way",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2003-2006,2010-06-23 12:27:34,rental (private),,,10022896895.0,Address Matched +721398129642011110823552893390288,Delamere House,Weavering Street,Weavering,ME14 5JP,5657023968,D,D,64,67,House,Detached,2011-11-08,E07000110,E14000700,Kent,2011-11-08,marketed sale,60,63,210,194.0,5.0,41,4.6,116.0,58.0,773.0,753.0,125.0,125.0,122.6,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,6.0,6.0,0.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,2.3,0.0,,natural,"Delamere House, Weavering Street, Weavering",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2011-11-08 23:55:28,owner-occupied,14.0,0.0,200003689980.0,Address Matched +430350056032010061814102787968903,"9, Darwin Avenue",,,ME15 9FP,5377902768,B,B,85,85,House,Detached,2010-06-18,E07000110,E14000700,Kent,2010-06-18,new dwelling,85,86,87,85.0,2.1,14,2.1,98.0,82.0,350.0,353.0,77.0,77.0,129.99,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,,From main system,Very Good,Very Good,Average thermal transmittance 0.20 W/m?K,Good,Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.26 W/m?K,Very Good,Very Good,"Room heaters, electric",,,Average thermal transmittance 0.13 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Very Good,Very Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in 81% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.31,,,NO DATA!,"9, Darwin Avenue",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2010-06-18 14:10:27,,,,10014311384.0,Address Matched +1667911881712018101516403796989868,Flat 62,Brenchley House,123-135 Week Street,ME14 1FX,8847160678,C,C,76,76,Flat,Mid-Terrace,2018-10-15,E07000110,E14000804,Kent,2018-10-15,new dwelling,82,82,186,186.0,0.9,33,0.9,24.0,24.0,162.0,162.0,93.0,93.0,28.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,Community scheme,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.30 W/m-¦K,Good,Good,,,,(other premises above),,,Community scheme,Good,Good,"Charging system linked to use of community heating, programmer and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,NO DATA!,,NO DATA!,,,,,NO DATA!,"Flat 62, Brenchley House, 123-135 Week Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2018-10-15 16:40:37,unknown,6.0,6.0,10094440738.0,Address Matched +402746960222009112416305790148241,"35, Bell Shaw",,,ME15 9GJ,4901610768,B,B,84,85,House,Mid-Terrace,2009-11-24,E07000110,E14000700,Kent,2009-11-24,rental (social),83,84,109,107.0,1.8,18,1.7,66.0,53.0,242.0,244.0,110.0,110.0,98.28,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,75.0,0.0,From main system,Very Good,Very Good,"Solid, insulated (assumed)",,,Fully double glazed,Good,Good,"Timber frame, as built, insulated (assumed)",Good,Good,,,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.37,0.0,N,natural,"35, Bell Shaw",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2007 onwards,2009-11-24 16:30:57,rental (social),,,10022896355.0,Address Matched +741655899442012012018595990422208,"95, Sutton Road",,,ME15 9AD,6436794968,D,C,62,71,House,Semi-Detached,2012-01-20,E07000110,E14000700,Kent,2012-01-20,marketed sale,58,70,236,168.0,4.7,45,3.3,89.0,53.0,739.0,560.0,115.0,89.0,103.0,Single,Y,NODATA!,,,2107.0,100.0,double glazing installed before 2002,Normal,1.0,6.0,6.0,33.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 33% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,2.27,0.0,,natural,"95, Sutton Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2012-01-20 18:59:59,owner-occupied,18.0,6.0,200003713399.0,Address Matched +1623224249042018041314054453789578,"7, Gates Drive",,,ME17 3GF,7000247578,B,A,83,96,House,Semi-Detached,2018-04-13,E07000110,E14000700,Kent,2018-04-13,new dwelling,86,98,90,2.0,1.2,16,0.1,58.0,58.0,207.0,207.0,79.0,48.0,78.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"7, Gates Drive",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2018-04-13 14:05:44,unknown,7.0,7.0,10093303974.0,Address Matched +333659244012009080104451003010463,"64, St. Andrews Park",Tarragon Road,,ME16 0WD,4301435668,E,D,53,60,Flat,Mid-Terrace,2009-08-01,E07000110,E14000804,Kent,2009-08-01,marketed sale,50,56,354,309.0,4.7,59,4.1,76.0,38.0,597.0,555.0,107.0,94.0,80.0,Single,Y,Ground,N,3.0,2106.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,unheated corridor,10.97,3.06,0.0,N,"mechanical, supply and extract","64, St. Andrews Park, Tarragon Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2009-08-01 04:45:10,owner-occupied,,,200003655021.0,Address Matched +722172429342011111016001792399408,The Cottage Toke Place,Linton Hill,Linton,ME17 4AP,3390623968,D,C,66,71,Flat,Detached,2011-11-10,E07000110,E14000804,Kent,2011-11-10,rental (private),67,74,229,184.0,2.5,44,2.0,33.0,33.0,403.0,355.0,129.0,95.0,56.57,Single,Y,1st,Y,,2106.0,100.0,secondary glazing,Normal,0.0,3.0,3.0,100.0,0.0,From main system,Average,Average,(other premises below),,,Full secondary glazing,Good,Good,"Solid brick, with internal insulation",Good,Good,"Room heaters, electric",,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,no corridor,,2.45,0.0,,natural,"The Cottage Toke Place, Linton Hill, Linton",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2011-11-10 16:00:17,rental (private),6.0,6.0,200003663164.0,Address Matched +596741319502014112017510985442008,"2, Cedar Gardens",The Street,,ME9 7UG,3577914868,D,B,61,84,Bungalow,Semi-Detached,2014-11-20,E07000110,E14000700,Kent,2014-11-20,assessment for green deal,64,86,253,88.0,2.6,45,0.9,38.0,38.0,427.0,312.0,254.0,171.0,57.0,Single,N,NODATA!,,,2206.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,From main system,Poor,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Air source heat pump, radiators, electric",Average,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,NO DATA!,,,0.0,,natural,"2, Cedar Gardens, The Street",Maidstone,Faversham and Mid Kent,SITTINGBOURNE,England and Wales: 1976-1982,2014-11-20 17:51:09,rental (social),10.0,10.0,200003702025.0,Address Matched +516611419142010072122232075802598,"12, Barncroft Close",Weavering,,ME14 5TJ,7172618768,C,C,71,80,House,Mid-Terrace,2010-07-21,E07000110,E14000700,Kent,2010-07-21,marketed sale,68,77,262,184.0,2.4,43,1.7,49.0,32.0,330.0,278.0,156.0,99.0,54.64,dual,Y,NO DATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,50.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Timber frame, as built, insulated (assumed)",Good,Good,,,,"Pitched, 100 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.34,0.0,N,natural,"12, Barncroft Close, Weavering",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2010-07-21 22:23:20,owner-occupied,,,200003688236.0,Address Matched +1433154399542016041314595047369878,"5, Goldstone Walk",,,ME5 9QB,527593478,C,B,71,83,House,Detached,2016-04-13,E07000110,E14000700,Kent,2016-04-13,marketed sale,64,78,181,103.0,5.3,32,3.1,84.0,84.0,920.0,778.0,183.0,81.0,166.0,Unknown,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,7.0,7.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,2.34,,N,natural,"5, Goldstone Walk",Maidstone,Faversham and Mid Kent,CHATHAM,England and Wales: 1983-1990,2016-04-13 14:59:50,owner-occupied,,,200003708891.0,Address Matched +1624902359842018041910252755789218,"17, Saxon Way",Tovil,,ME15 6AL,7866257578,B,A,83,96,House,Semi-Detached,2018-04-19,E07000110,E14000804,Kent,2018-04-19,new dwelling,85,98,97,1.0,1.3,17,0.0,53.0,53.0,205.0,206.0,96.0,52.0,75.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.10 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.10 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"17, Saxon Way, Tovil",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2018-04-19 10:25:27,owner-occupied,45.0,45.0,10093304971.0,Address Matched +1486923859922016101020303317508336,The Little Limes,The Green,Bearsted,ME14 4DR,3196577478,C,B,77,82,House,Detached,2016-10-10,E07000110,E14000700,Kent,2016-10-10,marketed sale,73,78,117,92.0,5.0,21,4.0,117.0,117.0,890.0,890.0,128.0,128.0,235.0,Single,Y,NODATA!,,,2110.0,100.0,double glazing installed during or after 2002,Normal,0.0,8.0,8.0,88.0,1.0,From main system,Good,Good,"Solid, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, dual fuel (mineral and wood)",,,"Roof room(s), ceiling insulated",Good,Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in 88% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,2.4,,N,natural,"The Little Limes, The Green, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2007 onwards,2016-10-10 20:30:33,owner-occupied,,,10022901953.0,Address Matched +341309560062009080922164715388351,"7, Bell Road",,,ME15 9DY,5149685668,C,C,75,76,House,End-Terrace,2009-08-08,E07000110,E14000700,Kent,2009-08-09,rental (social),72,73,207,198.0,2.4,35,2.3,35.0,35.0,343.0,352.0,129.0,103.0,70.4,Single,Y,NO DATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,100.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.31,0.0,N,natural,"7, Bell Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2009-08-09 22:16:47,rental (social),,,200003681416.0,Address Matched +1000637639452013090320024593070410,"59, Roseholme",,,ME16 8DX,4086933178,D,C,63,69,Flat,Semi-Detached,2013-09-03,E07000110,E14000804,Kent,2013-09-03,marketed sale,62,70,246,197.0,2.7,47,2.2,60.0,36.0,499.0,416.0,82.0,82.0,57.0,Unknown,Y,2nd,Y,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,33.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 33% of fixed outlets,Average,Average,mains gas (not community),0.0,unheated corridor,4.9,,0.0,,natural,"59, Roseholme",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2013-09-03 20:02:45,owner-occupied,6.0,2.0,200003656522.0,Address Matched +93e6d870e28f8865a0523a57b6f86aae84e0f5eb8c1bcaf69139d01ba9209382,81 GREAT THREADS,,,TN12 0FJ,10001670363,B,A,84,95,House,Semi-Detached,2021-08-05,E07000110,E14000804,Kent,2021-08-05,new dwelling,86,97,80,4.0,1.3,14,0.1,73.0,73.0,215.0,215.0,71.0,43.0,90.0,standard tariff,,,N,,,100.0,,,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.28 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.54,,,,81 GREAT THREADS,Maidstone,Maidstone and The Weald,STAPLEHURST,2021,2021-08-05 13:02:39,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,10.0,,10093304275.0,Energy Assessor +521815059022010080222234148028390,Elmstone Hole Farm,Elmstone Lane,Grafty Green,ME17 2AJ,9430558768,E,E,52,54,House,Detached,2010-08-02,E07000110,E14000700,Kent,2010-08-02,marketed sale,52,52,262,256.0,7.3,47,7.2,149.0,83.0,1119.0,1142.0,198.0,198.0,177.05,Single,N,NO DATA!,,,2110.0,0.0,not defined,Normal,1.0,7.0,7.0,20.0,2.0,From main system,Good,Good,"Solid, insulated",,,Single glazed,Very Poor,Very Poor,"Cob, with internal insulation",Good,Good,"Room heaters, wood logs",,,"Pitched, insulated at rafters",Poor,Poor,"Boiler and underfloor heating, oil",Average,Average,Time and temperature zone control,Very Good,Very Good,Low energy lighting in 20% of fixed outlets,Poor,Poor,oil - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,3.0,0.0,N,natural,"Elmstone Hole Farm, Elmstone Lane, Grafty Green",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2010-08-02 22:23:41,owner-occupied,,,10014307964.0,Address Matched +1667865551312018101516395096989764,Flat 40,Brenchley House,123-135 Week Street,ME14 1FX,7436160678,C,C,73,73,Flat,Mid-Terrace,2018-10-15,E07000110,E14000804,Kent,2018-10-15,new dwelling,77,77,207,207.0,1.3,36,1.3,29.0,29.0,227.0,227.0,96.0,96.0,36.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,Community scheme,Good,Good,Average thermal transmittance 0.24 W/m-¦K,Good,Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.30 W/m-¦K,Good,Good,,,,(other premises above),,,Community scheme,Good,Good,"Charging system linked to use of community heating, programmer and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,NO DATA!,,NO DATA!,,,,,NO DATA!,"Flat 40, Brenchley House, 123-135 Week Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2018-10-15 16:39:50,unknown,6.0,6.0,10094440716.0,Address Matched +1297511539602015031916592331459518,"21, Westree Court",,,ME16 8FU,1661534378,B,B,88,88,Flat,NO DATA!,2015-03-19,E07000110,E14000804,Kent,2015-03-19,new dwelling,93,93,53,53.0,0.5,10,0.5,34.0,34.0,212.0,212.0,66.0,66.0,50.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.18 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.15 W/m-¦K,Good,Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"21, Westree Court",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2015-03-19 16:59:23,unknown,25.0,25.0,10014315999.0,Address Matched +1465827255052016072613542892260441,"13, Cooling Close",,,ME14 5RA,4175526478,C,B,70,87,House,Mid-Terrace,2016-07-26,E07000110,E14000804,Kent,2016-07-26,marketed sale,70,86,211,78.0,2.2,37,0.9,88.0,47.0,400.0,383.0,94.0,64.0,60.0,dual,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,12.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 12% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,2.39,,N,natural,"13, Cooling Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2016-07-26 13:54:28,rental (private),,,200003672084.0,Address Matched +471673209142010041921431673509518,"80, Bower Street",,,ME16 8BE,4100305768,C,C,69,77,House,Mid-Terrace,2010-04-19,E07000110,E14000804,Kent,2010-04-19,rental (private),63,74,244,174.0,3.9,40,3.9,49.0,49.0,531.0,400.0,172.0,124.0,94.71,Single,Y,NO DATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,1.0,5.0,5.0,100.0,0.0,From main system,Average,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 250 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Average,Good,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,0.0,N,natural,"80, Bower Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2010-04-19 21:43:16,rental (private),,,200003667311.0,Address Matched +691867459922011101816323761088759,"85, Birling Avenue",Bearsted,,ME14 4LL,5634501968,D,C,67,69,House,Semi-Detached,2011-10-18,E07000110,E14000700,Kent,2011-10-18,marketed sale,64,67,196,181.0,4.0,38,3.7,104.0,57.0,652.0,630.0,91.0,91.0,106.92,dual,Y,NODATA!,,,2106.0,90.0,double glazing installed before 2002,Normal,1.0,6.0,6.0,18.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Mostly double glazing,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 18% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,2.29,0.0,,natural,"85, Birling Avenue, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2011-10-18 16:32:37,owner-occupied,17.0,3.0,200003693583.0,Address Matched +184961887312009051913335402989958,"23, Medway Avenue",Yalding,,ME18 6JW,9890724568,C,C,74,76,House,Semi-Detached,2008-11-13,E07000110,E14000804,Kent,2009-05-19,rental (social),71,72,217,209.0,2.4,36,2.4,57.0,32.0,315.0,319.0,110.0,110.0,67.3,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,20.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 20% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.58,0.0,N,natural,"23, Medway Avenue, Yalding",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2009-05-19 13:33:54,rental (social),,,200003660638.0,Address Matched +512368879922010071507051237248590,"5, Barrel Arch Close",Marden,,TN12 9QQ,9347787768,D,C,61,71,House,Semi-Detached,2010-07-14,E07000110,E14000804,Kent,2010-07-15,marketed sale,55,67,326,240.0,4.0,54,2.9,63.0,38.0,638.0,481.0,94.0,94.0,73.26,Single,Y,NO DATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,1.0,4.0,4.0,36.0,0.0,From main system,Very Good,Very Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Very Good,Very Good,Programmer and room thermostat,Average,Average,Low energy lighting in 36% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.31,0.0,N,natural,"5, Barrel Arch Close, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1967-1975,2010-07-15 07:05:12,owner-occupied,,,200003709618.0,Address Matched +941db963802f0f2dd03e6057e36c1f7600f81c89d7b543c8d52f2e6a2a307f8f,5 Disraeli Close,,,ME15 9LE,10001500456,D,B,68,89,Bungalow,Semi-Detached,2021-08-24,E07000110,E14000700,Kent,2021-08-26,not sale or rental,68,89,241,69.0,2.3,42,0.7,103.0,52.0,348.0,319.0,111.0,68.0,53.0,dual,Y,,,,,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, 350 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,,,2.37,0.0,N,natural,5 Disraeli Close,Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2021-08-26 08:07:02,Rented (social),7.0,,200003682452.0,Energy Assessor +822619568232012081411361658078700,"18, Meadowdown",Weavering,,ME14 5TN,6058770078,D,A,68,93,House,Mid-Terrace,2012-08-07,E07000110,E14000700,Kent,2012-08-14,rental (private),68,97,214,2.0,2.3,41,0.1,37.0,37.0,332.0,237.0,156.0,62.0,55.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,86.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, partial insulation (assumed)",Average,Average,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 86% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"18, Meadowdown, Weavering",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1976-1982,2012-08-14 11:36:16,rental (private),7.0,6.0,200003688337.0,Address Matched +1729417506132019061709031165978904,"9, Saunders Field",,,ME17 3GR,465905678,B,A,84,95,House,Detached,2019-06-17,E07000110,E14000700,Kent,2019-06-17,new dwelling,86,96,84,14.0,1.5,15,0.3,74.0,74.0,242.0,242.0,76.0,45.0,100.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"9, Saunders Field",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2019-06-17 09:03:11,unknown,7.0,7.0,10093307132.0,Address Matched +516325619542010072114044377802398,"55, St. Catherines Road",,,ME15 9WP,2509618768,B,B,89,89,House,Mid-Terrace,2010-07-21,E07000110,E14000700,Kent,2010-07-21,new dwelling,89,89,76,74.0,1.2,12,1.1,65.0,55.0,213.0,214.0,59.0,59.0,94.62,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,,From main system,Very Good,Very Good,Average thermal transmittance 0.18 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.23 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.10 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Very Good,Very Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in 83% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.31,,,NO DATA!,"55, St. Catherines Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2010-07-21 14:04:43,,,,10014311714.0,Address Matched +1479409922352016091416551692960541,"6, Filbert Way",,,ME15 8WT,5102227478,B,A,83,95,House,NO DATA!,2016-09-14,E07000110,E14000700,Kent,2016-09-14,new dwelling,85,98,96,4.0,1.3,17,0.1,54.0,54.0,224.0,225.0,101.0,54.0,78.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.16 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.28 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.14 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"6, Filbert Way",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2016-09-14 16:55:16,unknown,1.0,1.0,10091194508.0,Address Matched +1314412529922016081509134575528496,"5, Chippendayle Drive",Harrietsham,,ME17 1AD,9781255378,D,B,63,82,House,Semi-Detached,2016-08-12,E07000110,E14000700,Kent,2016-08-15,marketed sale,60,81,243,105.0,3.9,43,1.7,102.0,60.0,654.0,555.0,185.0,76.0,90.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,5.0,5.0,30.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 30% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,2.36,,N,natural,"5, Chippendayle Drive, Harrietsham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1991-1995,2016-08-15 09:13:45,owner-occupied,,,200003702995.0,Address Matched +9435312f1246a3b054468d0435e64c5cb979b55b3fade31fca5f950b6b7fafdc,The Hobbit,Amber Lane,Chart Sutton,ME17 3SE,10001687795,C,B,69,89,Bungalow,Detached,2021-08-09,E07000110,E14000700,Kent,2021-08-11,marketed sale,68,90,256,59.0,2.1,45,0.5,41.0,41.0,377.0,308.0,72.0,48.0,46.0,Single,Y,,,,,100.0,secondary glazing,Normal,1.0,2.0,2.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Full secondary glazing,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.34,0.0,N,natural,"The Hobbit, Amber Lane, Chart Sutton",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2021-08-11 07:34:27,Owner-occupied,7.0,,10014314649.0,Energy Assessor +1315908859222015050609252195478935,9 Tonbridge Court,Tonbridge Road,,ME16 8SX,3914565378,C,B,76,82,Flat,Semi-Detached,2015-04-23,E07000110,E14000804,Kent,2015-05-06,marketed sale,76,84,154,101.0,2.0,27,1.3,74.0,51.0,272.0,220.0,186.0,119.0,75.0,Single,Y,1st,N,,2104.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,57.0,0.0,From main system,Average,Average,(another dwelling below),NO DATA!,,Fully double glazed,Good,Good,"Solid brick, with external insulation",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 57% of fixed outlets,Good,Good,mains gas (not community),0.0,unheated corridor,6.53,,,N,natural,"9 Tonbridge Court, Tonbridge Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2015-05-06 09:25:21,owner-occupied,,,200003657858.0,Address Matched +658170679542011072517303481892158,"63, Cross Keys",Bearsted,,ME14 4HR,2546278868,D,C,64,73,House,Semi-Detached,2011-07-25,E07000110,E14000700,Kent,2011-07-25,marketed sale,62,72,220,162.0,4.0,42,2.9,71.0,48.0,602.0,477.0,150.0,109.0,94.24,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,More Than Typical,1.0,4.0,4.0,53.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 53% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,2.4,0.0,,natural,"63, Cross Keys, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2011-07-25 17:30:34,owner-occupied,19.0,10.0,200003694893.0,Address Matched +1563893510812017073118134392730357,"13, Joy Wood",Boughton Monchelsea,,ME17 4JY,3796023578,D,B,68,83,House,Detached,2017-07-31,E07000110,E14000700,Kent,2017-07-31,marketed sale,63,80,211,104.0,4.2,37,2.1,98.0,74.0,636.0,571.0,206.0,76.0,114.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,7.0,7.0,67.0,0.0,From main system,Good,Good,"Solid, limited insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, mains gas",,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 67% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"13, Joy Wood, Boughton Monchelsea",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1996-2002,2017-07-31 18:13:43,owner-occupied,,,200003724125.0,Address Matched +943f6c437e4e2e01e29e03d45164f96a0d773d40d04c01d41627411e79a67b84,34 Lincoln Road,,,ME15 7JH,10001487778,C,B,69,83,House,Semi-Detached,2021-08-31,E07000110,E14000700,Kent,2021-08-31,non marketed sale,67,82,205,102.0,3.0,36,1.5,84.0,84.0,541.0,502.0,125.0,76.0,84.0,Single,Y,,,,,100.0,double glazing installed before 2002,Normal,0.0,5.0,4.0,78.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"System built, with internal insulation",Good,Good,"Room heaters, electric",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 78% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.46,0.0,N,natural,34 Lincoln Road,Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2021-08-31 17:07:29,Rented (social),9.0,,200003712129.0,Energy Assessor +1559545189962017071315171402778563,"5, Windmill Heights",Bearsted,,ME14 4QE,6044882578,D,C,63,77,House,Detached,2017-07-13,E07000110,E14000700,Kent,2017-07-13,marketed sale,55,70,227,140.0,6.2,40,3.9,121.0,92.0,1049.0,887.0,159.0,87.0,154.0,dual,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,1.0,6.0,6.0,68.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 68% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"5, Windmill Heights, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2017-07-13 15:17:14,owner-occupied,,,200003692926.0,Address Matched +33621840962009121211240993328721,"23, Larchwood Close",,,ME5 8XB,2947413468,D,C,62,79,House,End-Terrace,2009-12-12,E07000110,E14000700,Kent,2009-12-12,marketed sale,56,76,312,172.0,3.9,52,2.2,66.0,38.0,512.0,319.0,171.0,108.0,86.4,Single,Y,NO DATA!,,,2102.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,25.0,0.0,"From main system, no cylinder thermostat",Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, partial insulation (assumed)",Average,Average,,,,"Pitched, 100mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,Low energy lighting in 25% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.33,0.0,N,natural,"23, Larchwood Close",Maidstone,Faversham and Mid Kent,CHATHAM,England and Wales: 1976-1982,2009-12-12 11:24:09,owner-occupied,,,200003676316.0,Address Matched +242375662512009030918153709010355,"88, Lower Fant Road",,,ME16 8EA,3553298568,F,E,22,42,Flat,Semi-Detached,2009-03-07,E07000110,E14000804,Kent,2009-03-09,marketed sale,44,60,536,359.0,4.3,81,2.9,52.0,52.0,793.0,431.0,249.0,249.0,53.82,Single,Y,2nd,Y,3.0,2699.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,0.0,0.0,"Electric immersion, standard tariff",Very Poor,Poor,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,No system present: electric heaters assumed,Very Poor,Poor,,Very Poor,Very Poor,No low energy lighting,Very Poor,Very Poor,electricity - this is for backwards compatibility only and should not be used,0.0,unheated corridor,3.85,2.48,0.0,N,natural,"88, Lower Fant Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2009-03-09 18:15:37,owner-occupied,,,200003656565.0,Address Matched +830916957252012090617575993020004,"7, Essex Road",,,ME15 7QL,493731078,E,C,54,80,House,End-Terrace,2012-09-05,E07000110,E14000700,Kent,2012-09-06,marketed sale,50,79,294,107.0,4.2,57,1.6,74.0,42.0,719.0,490.0,99.0,66.0,74.0,Single,Y,NODATA!,,,2106.0,95.0,double glazing installed during or after 2002,Normal,1.0,3.0,3.0,25.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Mostly double glazing,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 25% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"7, Essex Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2012-09-06 17:57:59,owner-occupied,8.0,2.0,200003680451.0,Address Matched +1211535959262014092607420238548844,"8a, Douglas Road",,,ME16 8ES,4336528278,F,D,30,68,Flat,Semi-Detached,2014-09-24,E07000110,E14000804,Kent,2014-09-26,marketed sale,18,46,754,382.0,8.2,133,4.2,62.0,46.0,986.0,445.0,409.0,128.0,62.0,Unknown,N,1st,Y,,2401.0,0.0,not defined,Normal,1.0,3.0,2.0,63.0,0.0,No system present: electric immersion assumed,Average,Very Poor,(other premises below),,,Single glazed,Very Poor,Very Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,Portable electric heaters (assumed),,,"Pitched, insulated at rafters",Average,Average,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 63% of fixed outlets,Good,Good,electricity (not community),0.0,no corridor,,,0.0,,natural,"8a, Douglas Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2014-09-26 07:42:02,owner-occupied,8.0,5.0,200003728555.0,Address Matched +1825754802002020091419480973209048,7 Bridge Cottages,The Quarries,Boughton Monchelsea,ME17 4NH,9016902778,D,A,55,104,House,Mid-Terrace,2020-09-14,E07000110,E14000700,Kent,2020-09-14,rental (private),51,100,334,-27.0,4.0,59,-0.2,57.0,57.0,782.0,545.0,123.0,80.0,68.0,Single,Y,NODATA!,,,2106.0,0.0,not defined,Normal,2.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Single glazed,Very Poor,Very Poor,"Sandstone or limestone, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, electric",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"7 Bridge Cottages, The Quarries, Boughton Monchelsea",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2020-09-14 19:48:09,rental (private),,,200003674799.0,Address Matched +1298680721712015032307260594250830,"27, Sittingbourne Road",,,ME14 5EU,8009144378,E,B,42,82,House,Detached,2015-03-20,E07000110,E14000804,Kent,2015-03-23,marketed sale,34,78,393,102.0,8.7,69,2.3,102.0,68.0,1247.0,632.0,484.0,78.0,125.0,Unknown,Y,NODATA!,,,2102.0,,not defined,Much More Than Typical,1.0,5.0,5.0,50.0,0.0,"From main system, no cylinder thermostat",Very Poor,Very Poor,"Suspended, no insulation (assumed)",NO DATA!,,Mostly multiple glazing,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 270 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Average,Average,"Programmer, no room thermostat",Very Poor,Very Poor,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"27, Sittingbourne Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2015-03-23 07:26:05,owner-occupied,,,200003705371.0,Address Matched +1109656889922019070408531541818171,Little New Barn,New Barn Road,Hawkenbury,TN12 0ED,7430801278,B,A,81,99,House,Detached,2019-03-19,E07000110,E14000700,Kent,2019-07-04,new dwelling,77,94,70,-20.0,3.5,18,0.3,122.0,122.0,366.0,368.0,110.0,61.0,201.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Average,Average,Average thermal transmittance 0.16 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.19 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.09 W/m-¦K,Very Good,Very Good,"Boiler and radiators, oil",Average,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,oil - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Little New Barn, New Barn Road, Hawkenbury",Maidstone,Faversham and Mid Kent,TONBRIDGE,NO DATA!,2019-07-04 08:53:15,unknown,1.0,1.0,200003725210.0,Address Matched +606508222212011031815374699990686,"5, Clare Way",,,ME15 9ZE,6669294868,B,B,87,87,House,Mid-Terrace,2011-03-18,E07000110,E14000700,Kent,2011-03-18,new dwelling,88,88,89,87.0,1.1,14,1.1,57.0,49.0,225.0,226.0,62.0,62.0,77.32,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,,From main system,Very Good,Very Good,Average thermal transmittance 0.18 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.23 W/m?K,Very Good,Very Good,"Room heaters, electric",,,Average thermal transmittance 0.10 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 83% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.31,,,NO DATA!,"5, Clare Way",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2011-03-18 15:37:46,,,,10014311496.0,Address Matched +297702091152009060413173308010061,"92, Harvesters Way",Weavering,,ME14 5SJ,149182668,D,C,63,78,House,Mid-Terrace,2009-06-04,E07000110,E14000700,Kent,2009-06-04,marketed sale,56,74,403,235.0,2.9,67,1.7,28.0,20.0,341.0,251.0,166.0,86.0,42.6,Single,Y,NO DATA!,,,2102.0,100.0,double glazing installed before 2002,Normal,0.0,2.0,2.0,60.0,0.0,"From main system, no cylinderstat",Poor,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 200mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Average,Good,"Programmer, no room thermostat",Very Poor,Very Poor,Low energy lighting in 60% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,0.0,N,natural,"92, Harvesters Way, Weavering",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2009-06-04 13:17:33,owner-occupied,,,200003687765.0,Address Matched +146794710022008100111061831598338,Scragged Oak Farmhouse,Scragged Oak Road,Detling,ME14 3HJ,3322151568,E,D,51,55,House,Detached,2008-10-01,E07000110,E14000700,Kent,2008-10-01,rental (private),48,51,234,216.0,15.0,45,14.0,319.0,159.0,1829.0,1796.0,252.0,240.0,219.19,Single,N,NO DATA!,,,2106.0,65.0,double glazing installed during or after 2002,Normal,2.0,9.0,9.0,0.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Partial double glazing,Average,Average,"Timber frame, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, oil",Average,Average,"Programmer, room thermostat and TRVs",Average,Average,No low energy lighting,Very Poor,Very Poor,oil - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,3.0,0.0,N,natural,"Scragged Oak Farmhouse, Scragged Oak Road, Detling",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2008-10-01 11:06:18,rental (private),,,200003695576.0,Address Matched +918905769642013110610471601772558,"2, Shrubwood Close",Harrietsham,,ME17 1FJ,1653267078,B,B,88,88,House,Detached,2013-04-25,E07000110,E14000700,Kent,2013-11-06,new dwelling,90,90,54,54.0,1.0,10,1.0,56.0,56.0,284.0,284.0,88.0,88.0,100.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.17 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"2, Shrubwood Close, Harrietsham",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2013-11-06 10:47:16,NO DATA!,12.0,12.0,10014314950.0,Address Matched +398549919132009111621344655968893,"112a, Wrangleden Road",,,ME15 9LD,1395889668,C,C,73,76,Flat,Semi-Detached,2009-11-16,E07000110,E14000700,Kent,2009-11-16,rental (social),70,73,233,212.0,2.4,39,2.2,50.0,31.0,372.0,350.0,81.0,81.0,61.0,Single,Y,1st,Y,2.0,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,40.0,0.0,From main system,Very Good,Very Good,(other premises below),,,Fully double glazed,Average,Average,"System built, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 40% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.31,0.0,N,natural,"112a, Wrangleden Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2009-11-16 21:34:46,rental (social),,,200003683177.0,Address Matched +760002907232012031215180867968309,"44, Ashford Road",,,ME14 5BH,977336968,D,D,65,67,House,Mid-Terrace,2012-03-12,E07000110,E14000804,Kent,2012-03-12,marketed sale,64,65,221,210.0,3.4,42,3.2,88.0,44.0,550.0,556.0,83.0,83.0,79.8,Unknown,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,0.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation(assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,2.2,0.0,,natural,"44, Ashford Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2012-03-12 15:18:08,owner-occupied,8.0,0.0,200003689366.0,Address Matched +967378143732013071320514768978208,"19, Pippin Close",Coxheath,,ME17 4DS,4828201178,C,B,69,84,House,Semi-Detached,2013-07-13,E07000110,E14000804,Kent,2013-07-13,non marketed sale,70,85,170,71.0,2.8,32,1.2,101.0,50.0,506.0,460.0,94.0,66.0,88.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,5.0,5.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"19, Pippin Close, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2013-07-13 20:51:47,owner-occupied,18.0,0.0,200003671262.0,Address Matched +398196580642009111611403767919368,9 Greenfields View,Oxford Gardens,,ME15 8FJ,9608289668,C,C,77,77,Flat,NO DATA!,2009-11-16,E07000110,E14000700,Kent,2009-11-16,new dwelling,84,84,140,140.0,1.3,21,1.3,39.0,39.0,163.0,163.0,149.0,149.0,62.93,standard tariff,,ground floor,,,2207.0,,NO DATA!,NO DATA!,,,,4.0,0.0,From main system,Poor,Good,Average thermal transmittance 0.18 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.28 W/m?K,Very Good,Very Good,,,,(another dwelling above),,,"Air source heat pump, underfloor, electric",Average,Very Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",0.0,NO DATA!,,2.5,,,NO DATA!,"9 Greenfields View, Oxford Gardens",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2009-11-16 11:40:37,,5.0,4.0,10014309010.0,Address Matched +1281553949222015022010105313308415,"37, Eddington Close",,,ME15 9XG,1111423378,D,C,55,71,Bungalow,Semi-Detached,2015-02-20,E07000110,E14000804,Kent,2015-02-20,marketed sale,50,67,312,194.0,4.9,55,3.1,56.0,56.0,993.0,853.0,111.0,79.0,90.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,1.0,6.0,6.0,100.0,0.0,From main system,Very Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"37, Eddington Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2015-02-20 10:10:53,owner-occupied,,,200003675816.0,Address Matched +1354504439242015081718111438859138,"23, Tydeman Road",Bearsted,,ME15 8LU,2254838378,C,B,75,83,House,End-Terrace,2015-08-17,E07000110,E14000700,Kent,2015-08-17,marketed sale,68,79,181,116.0,2.9,32,1.9,69.0,69.0,689.0,578.0,167.0,75.0,90.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,4.0,4.0,79.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 79% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"23, Tydeman Road, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2015-08-17 18:11:14,owner-occupied,,,200003686174.0,Address Matched +1536070682112017122009574392239652,"12, Minstrel Close",Marden,,TN12 9FU,6244221578,B,A,84,95,House,Detached,2017-12-20,E07000110,E14000804,Kent,2017-12-20,new dwelling,86,96,82,12.0,1.4,14,0.3,63.0,63.0,244.0,244.0,80.0,47.0,98.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.12 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.28 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.12 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"12, Minstrel Close, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,NO DATA!,2017-12-20 09:57:43,owner-occupied,10.0,10.0,10093303346.0,Address Matched +650496354012020031217375421900885,The Laurels,Maidstone Road,Nettlestead,ME18 5HG,8503418868,E,C,45,76,House,Semi-Detached,2020-03-11,E07000110,E14000804,Kent,2020-03-12,marketed sale,31,64,355,146.0,10.0,76,4.3,168.0,89.0,1546.0,829.0,91.0,91.0,132.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,2.0,6.0,5.0,11.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, smokeless fuel",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 11% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"The Laurels, Maidstone Road, Nettlestead",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2020-03-12 17:37:54,owner-occupied,,,200003656468.0,Address Matched +1355000938532015081821334884978205,"16, Fordcombe Close",,,ME15 8SU,3564248378,C,B,69,88,Bungalow,End-Terrace,2015-08-18,E07000110,E14000700,Kent,2015-08-18,rental (social),69,88,252,74.0,2.1,44,0.6,51.0,33.0,391.0,351.0,89.0,59.0,46.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,43.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 270 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 43% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"16, Fordcombe Close",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2015-08-18 21:33:48,rental (social),,,200003685451.0,Address Matched +481632249012010050709275696000278,"12, Cornwallis Avenue",Linton,,ME17 4BW,2844965768,D,D,57,58,Maisonette,Detached,2010-05-06,E07000110,E14000804,Kent,2010-05-07,rental (private),55,56,369,362.0,3.8,56,3.8,53.0,41.0,390.0,399.0,247.0,226.0,68.87,dual,Y,Ground,N,2.0,2402.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,71.0,0.0,"Electric immersion, off-peak",Very Poor,Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,Portable electric heaters,,,(another dwelling above),,,Electric storage heaters,Poor,Very Poor,Automatic charge control,Average,Average,Low energy lighting in 71% of fixed outlets,Very Good,Very Good,electricity - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.21,0.0,N,natural,"12, Cornwallis Avenue, Linton",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2010-05-07 09:27:56,rental (private),,,200003662986.0,Address Matched +1682627970352018120913120397289467,"1, College Walk",,,ME15 6PA,4749071678,E,B,53,82,House,Semi-Detached,2018-11-29,E07000110,E14000804,Kent,2018-12-09,rental (private),46,79,399,130.0,4.1,70,1.4,50.0,50.0,732.0,440.0,93.0,67.0,59.0,Single,Y,NODATA!,,,2104.0,83.0,double glazing installed during or after 2002,Normal,2.0,2.0,2.0,88.0,0.0,From main system,Very Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Mostly double glazing,Good,Good,"Sandstone or limestone, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 88% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"1, College Walk",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2018-12-09 13:12:03,rental (private),,,200003728531.0,Address Matched +545720629202010092917411782002588,Flat 13 Caroline Court,"8-28, Brunswick Street",,ME15 6NP,7265320868,B,B,88,89,Flat,Detached,2010-09-28,E07000110,E14000804,Kent,2010-09-29,new dwelling,88,89,88,85.0,1.0,14,1.0,48.0,38.0,187.0,187.0,90.0,90.0,69.13,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,,From main system,Very Good,Very Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m??K,Very Good,Very Good,"Room heaters, electric",,,Average thermal transmittance 0.10 W/m??K,Very Good,Very Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.47,,,NO DATA!,"Flat 13 Caroline Court, 8-28, Brunswick Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2010-09-29 17:41:17,,,,10014311833.0,Address Matched +1816273912062020080715564501038330,"34, Ware Street",Bearsted,,ME14 4PQ,3006141778,C,B,69,90,House,Mid-Terrace,2020-08-07,E07000110,E14000700,Kent,2020-08-07,rental (private),69,91,229,42.0,2.0,40,0.4,73.0,43.0,354.0,291.0,80.0,56.0,49.0,Single,Y,NODATA!,,,2107.0,100.0,double glazing installed during or after 2002,Normal,1.0,3.0,3.0,29.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 29% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"34, Ware Street, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2020-08-07 15:56:45,rental (private),,,200003693784.0,Address Matched +1159751683512014061816512696940521,"8, Brogden Crescent",Leeds,,ME17 1RA,5173364278,D,B,66,84,House,Semi-Detached,2014-06-17,E07000110,E14000700,Kent,2014-06-18,marketed sale,67,86,195,77.0,3.0,35,1.1,72.0,51.0,568.0,472.0,138.0,75.0,86.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,60.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, wood logs",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 60% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"8, Brogden Crescent, Leeds",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2014-06-18 16:51:26,owner-occupied,10.0,6.0,200003698024.0,Address Matched +1542872779502017051209114054130948,Studio Flat,9a John Street,,ME14 2SG,4573171578,G,C,18,75,Flat,Mid-Terrace,2017-05-04,E07000110,E14000804,Kent,2017-05-12,none of the above,30,58,761,383.0,4.8,129,2.4,34.0,37.0,1155.0,230.0,239.0,120.0,37.0,Single,N,Ground,Y,,2601.0,100.0,double glazing installed during or after 2002,Normal,1.0,1.0,1.0,80.0,0.0,"Electric immersion, standard tariff",Very Poor,Poor,"To external air, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 200 mm loft insulation",Good,Good,"Room heaters, electric",Very Poor,Poor,No thermostatic control of room temperature,Poor,Poor,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,electricity (not community),0.0,no corridor,,,,N,natural,"Studio Flat, 9a John Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2017-05-12 09:11:40,owner-occupied,,,200003704248.0,Address Matched +556008899102010102111454482002398,Flat 10 Plymouth House,Ruskin Grove,,ME15 9WG,6130690868,C,C,75,76,Flat,End-Terrace,2010-10-21,E07000110,E14000804,Kent,2010-10-21,new dwelling,82,82,157,151.0,1.5,24,1.4,55.0,34.0,193.0,198.0,161.0,161.0,61.97,standard tariff,,top floor,,,,,NO DATA!,NO DATA!,,,,,,From main system,Poor,Good,(other premises below),,,Fully double glazed,Very Good,Very Good,Average thermal transmittance 0.28 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.14 W/m?K,Very Good,Very Good,"Air source heat pump, radiators, electric",Poor,Good,Programmer and room thermostat,Poor,Poor,Low energy lighting in 38% of fixed outlets,Average,Average,"Electricity: electricity, unspecified tariff",0.0,NO DATA!,,2.33,,,NO DATA!,"Flat 10 Plymouth House, Ruskin Grove",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2010-10-21 11:45:44,,,,10014311621.0,Address Matched +742004229022013080209253315428107,Flat 4 Gower House,Canning Street,,ME14 2RY,117205968,C,B,80,83,Flat,Enclosed End-Terrace,2013-08-02,E07000110,E14000804,Kent,2013-08-02,rental (social),71,72,228,221.0,1.8,40,1.8,52.0,34.0,131.0,117.0,127.0,104.0,45.0,Unknown,N,Ground,N,,2401.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,50.0,0.0,"Electric immersion, off-peak",Average,Very Poor,"Solid, insulated (assumed)",,,Fully double glazed,Good,Good,"System built, as built, insulated (assumed)",Good,Good,Portable electric heaters (assumed),,,(another dwelling above),,,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 50% of fixed outlets,Good,Good,electricity (not community),0.0,no corridor,,,0.0,,natural,"Flat 4 Gower House, Canning Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2013-08-02 09:25:33,rental (social),12.0,6.0,200003706172.0,Address Matched +1492798569722016103121200618508586,"33, Talbot Road",,,ME16 0HB,8168618478,D,B,64,84,House,Mid-Terrace,2016-10-30,E07000110,E14000804,Kent,2016-10-31,marketed sale,58,81,237,92.0,4.2,42,1.7,105.0,63.0,767.0,528.0,97.0,62.0,101.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,4.0,4.0,33.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 25 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 33% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,2.36,,N,natural,"33, Talbot Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2016-10-31 21:20:06,owner-occupied,,,200003659138.0,Address Matched +76125481332017090113592719068103,"4, Roberts Orchard Road",Barming,,ME16 9HP,8319105468,C,B,73,84,House,Semi-Detached,2017-09-01,E07000110,E14000804,Kent,2017-09-01,marketed sale,69,81,165,89.0,3.6,29,2.0,72.0,72.0,594.0,531.0,135.0,85.0,122.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Flat, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"4, Roberts Orchard Road, Barming",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2017-09-01 13:59:27,owner-occupied,,,200003667441.0,Address Matched +244389610702009031921382558919128,5a Balmoral House,Bicknor Road,,ME15 9NU,781219568,B,B,83,84,Flat,Semi-Detached,2009-03-12,E07000110,E14000700,Kent,2009-03-19,rental (social),82,82,170,162.0,1.2,28,1.2,37.0,20.0,193.0,195.0,67.0,67.0,43.12,Single,Y,1st,N,3.0,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,20.0,0.0,From main system,Very Good,Very Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 20% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.34,0.0,N,natural,"5a Balmoral House, Bicknor Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2009-03-19 21:38:25,rental (social),,,200003683504.0,Address Matched +1423313194752016031323331792960945,"84, Postley Road",,,ME15 6TR,9566423478,D,C,64,77,House,Mid-Terrace,2016-03-10,E07000110,E14000804,Kent,2016-03-13,rental (social),58,71,242,157.0,4.5,43,3.0,97.0,65.0,797.0,764.0,140.0,87.0,106.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,6.0,6.0,50.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"84, Postley Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2016-03-13 23:33:17,rental (social),,,200003681912.0,Address Matched +1252956569532015010917370377078909,"17, Regent Drive",,,ME15 6DF,6947911378,D,C,65,78,House,Semi-Detached,2015-01-09,E07000110,E14000804,Kent,2015-01-09,marketed sale,59,73,240,148.0,4.2,42,2.6,60.0,60.0,778.0,704.0,117.0,77.0,100.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,6.0,6.0,100.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"17, Regent Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2015-01-09 17:37:03,owner-occupied,,,200003676586.0,Address Matched +1405515198152016012709144199260646,"35, Greenfields",,,ME15 8ET,6642891478,D,B,60,81,Bungalow,Detached,2016-01-27,E07000110,E14000700,Kent,2016-01-27,marketed sale,56,80,264,110.0,4.5,46,1.9,61.0,61.0,882.0,597.0,148.0,87.0,98.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,6.0,6.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"35, Greenfields",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2016-01-27 09:14:41,owner-occupied,,,200003687068.0,Address Matched +1477215125652016090618114490060849,"50, Fauchons Lane",Bearsted,,ME14 4AH,8997507478,F,D,35,68,Bungalow,Detached,2016-09-06,E07000110,E14000700,Kent,2016-09-06,marketed sale,28,57,442,210.0,11.0,78,5.2,150.0,77.0,2040.0,1167.0,131.0,115.0,140.0,Single,Y,NODATA!,,,2107.0,95.0,"double glazing, unknown install date",Normal,0.0,6.0,5.0,6.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Mostly double glazing,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 6% of fixed outlets,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,2.59,,N,natural,"50, Fauchons Lane, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2016-09-06 18:11:44,owner-occupied,,,200003687255.0,Address Matched +1771887919702019121201045963819208,"24, Drawbridge Close",,,ME15 7PD,9725818678,C,B,73,88,House,Mid-Terrace,2019-12-10,E07000110,E14000700,Kent,2019-12-12,rental (social),72,88,187,64.0,2.3,33,0.8,66.0,66.0,364.0,323.0,119.0,75.0,70.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,88.0,0.0,From main system,Good,Good,"Suspended, limited insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 88% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"24, Drawbridge Close",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1996-2002,2019-12-12 01:04:59,rental (social),,,10014306207.0,Address Matched +1593106929332017112910455210278894,"21, Hayward Road",,,ME17 3GA,2480825578,B,A,82,94,House,Detached,2017-11-29,E07000110,E14000700,Kent,2017-11-29,new dwelling,84,96,101,14.0,1.5,18,0.2,56.0,56.0,242.0,243.0,97.0,53.0,83.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"21, Hayward Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2017-11-29 10:45:52,unknown,7.0,7.0,10093303954.0,Address Matched +1746920439542019082908070266612288,"10, Tichborne Close",,,ME16 0RY,1578636678,D,B,59,86,Bungalow,Semi-Detached,2019-08-28,E07000110,E14000804,Kent,2019-08-29,marketed sale,54,84,317,85.0,3.5,56,1.0,95.0,48.0,504.0,371.0,170.0,64.0,62.0,Single,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,0.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,"Room heaters, mains gas",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"10, Tichborne Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2019-08-29 08:07:02,owner-occupied,,,200003727341.0,Address Matched +356971450062009090315454176578871,"69, St. Lukes Road",,,ME14 5AS,7784596668,F,F,31,37,House,Semi-Detached,2009-09-03,E07000110,E14000804,Kent,2009-09-03,marketed sale,33,38,479,421.0,9.4,79,8.3,126.0,66.0,1560.0,1433.0,129.0,112.0,119.5,dual,Y,NO DATA!,,,2104.0,10.0,"double glazing, unknown install date",Normal,2.0,6.0,6.0,10.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Partial double glazing,Very Poor,Very Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,Portable electric heaters,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Poor,Poor,Low energy lighting in 10% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.5,0.0,N,natural,"69, St. Lukes Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2009-09-03 15:45:41,owner-occupied,,,200003705958.0,Address Matched +1218931256352014101519133897949824,"14, McKenzie Court",,,ME14 1JU,8478678278,B,B,85,86,Flat,Mid-Terrace,2014-10-14,E07000110,E14000804,Kent,2014-10-15,marketed sale,79,80,148,144.0,1.5,26,1.4,69.0,46.0,69.0,73.0,129.0,129.0,57.0,dual,N,2nd,N,,2401.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,50.0,0.0,"Electric immersion, off-peak",Average,Very Poor,(other premises below),,,Fully double glazed,Good,Good,"System built, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,(another dwelling above),,,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 50% of fixed outlets,Good,Good,electricity (not community),0.0,heated corridor,,,0.0,,natural,"14, McKenzie Court",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2014-10-15 19:13:38,owner-occupied,6.0,3.0,10014306621.0,Address Matched +1235794059922014111307212249598264,Martlets,The Street,Bearsted,ME14 4EX,6476599278,E,B,44,84,Bungalow,Detached,2014-11-11,E07000110,E14000700,Kent,2014-11-13,marketed sale,40,84,352,74.0,6.1,68,1.3,88.0,55.0,1111.0,467.0,183.0,87.0,89.0,Unknown,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,40.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 25 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 40% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"Martlets, The Street, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2014-11-13 07:21:22,owner-occupied,10.0,4.0,200003695031.0,Address Matched +173193910832008102916511051268690,Flat 1 Foley Court,"31, Foley Street",,ME14 5BD,1021643568,C,C,69,72,Flat,Semi-Detached,2008-10-29,E07000110,E14000804,Kent,2008-10-29,rental (private),67,68,324,310.0,2.3,49,2.2,47.0,25.0,147.0,155.0,178.0,161.0,46.92,dual,Y,Ground,N,2.0,2401.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,14.0,0.0,"Electric immersion, off-peak",Very Poor,Poor,"Solid, insulated (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,Electric storage heaters,Poor,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 14% of fixed outlets,Poor,Poor,electricity - this is for backwards compatibility only and should not be used,0.0,unheated corridor,4.34,2.32,0.0,N,natural,"Flat 1 Foley Court, 31, Foley Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2008-10-29 16:51:10,rental (private),,,10014307212.0,Address Matched +300424406132009062417060558968900,"17, Cleavesland",Laddingford,,ME18 6BS,58903668,C,C,77,78,Flat,Semi-Detached,2009-06-10,E07000110,E14000804,Kent,2009-06-24,rental (social),75,76,214,207.0,1.8,36,1.7,47.0,26.0,270.0,274.0,71.0,71.0,50.01,dual,Y,Ground,N,2.0,2106.0,100.0,double glazing installed before 2002,Normal,0.0,2.0,2.0,20.0,1.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 20% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.31,0.0,N,natural,"17, Cleavesland, Laddingford",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2009-06-24 17:06:05,rental (social),,,200003659967.0,Address Matched +305842132802020012221255761302328,Middle Floor Flat,20 Charlton Street,,ME16 8LA,8898433668,C,C,75,78,Flat,Mid-Terrace,2020-01-22,E07000110,E14000804,Kent,2020-01-22,marketed sale,80,84,200,165.0,1.1,35,0.9,49.0,28.0,208.0,185.0,67.0,68.0,30.0,Unknown,Y,2nd,N,,2107.0,100.0,double glazing installed before 2002,Normal,0.0,1.0,1.0,25.0,0.0,From main system,Good,Good,(another dwelling below),NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 25% of fixed outlets,Average,Average,mains gas (not community),0.0,unheated corridor,2.17,,,N,natural,"Middle Floor Flat, 20 Charlton Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2020-01-22 21:25:57,rental (private),,,200003655405.0,Address Matched +1480177829542016092014490249769018,14 Frampton Place,6 Tonbridge Road,,ME16 8RP,5567627478,B,B,81,81,Flat,NO DATA!,2016-09-19,E07000110,E14000804,Kent,2016-09-20,new dwelling,68,68,234,234.0,2.6,41,2.6,51.0,51.0,179.0,179.0,144.0,144.0,62.0,off-peak 7 hour,,top floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Average,Very Poor,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.31 W/m+é-¦K,Good,Good,,,,Average thermal transmittance 0.14 W/m+é-¦K,Very Good,Very Good,"Boiler and radiators, electric",Average,Very Poor,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"14 Frampton Place, 6 Tonbridge Road",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2016-09-20 14:49:02,unknown,12.0,12.0,10093302911.0,Address Matched +1529652779442017032107375155039388,"105, Milton Street",,,ME16 8LD,9440570578,D,B,60,82,House,Mid-Terrace,2017-03-18,E07000110,E14000804,Kent,2017-03-21,marketed sale,53,79,288,108.0,4.1,51,1.6,66.0,66.0,709.0,473.0,139.0,82.0,80.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,2.0,5.0,5.0,78.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 78% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"105, Milton Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2017-03-21 07:37:51,owner-occupied,,,200003655467.0,Address Matched +1377959421812015102316054290259744,9 Alexander Court,Mote Park,,ME15 8WY,7411100478,C,C,79,79,Flat,Semi-Detached,2015-10-23,E07000110,E14000700,Kent,2015-10-23,new dwelling,86,86,73,73.0,1.2,15,1.2,59.0,59.0,232.0,232.0,200.0,200.0,82.0,standard tariff,,top floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Poor,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.20 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.10 W/m-¦K,Very Good,Very Good,"Boiler and radiators, LPG",Poor,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,LPG - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"9 Alexander Court, Mote Park",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2015-10-23 16:05:42,unknown,9.0,9.0,10091195123.0,Address Matched +451854529922010031016331093508720,"1, Keele Way",,,ME15 9WW,2991263768,B,B,85,85,House,End-Terrace,2010-03-10,E07000110,E14000700,Kent,2010-03-10,new dwelling,86,86,97,97.0,1.4,16,1.4,54.0,54.0,262.0,262.0,56.0,56.0,87.46,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,,From main system,Very Good,Very Good,Average thermal transmittance 0.18 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.23 W/m?K,Very Good,Very Good,"Room heaters, electric",,,Average thermal transmittance 0.10 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 86% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.31,,,NO DATA!,"1, Keele Way",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2010-03-10 16:33:10,,,,10014311590.0,Address Matched +9521c117a2595f51f13ac8ca3bd5804180065cfceea4560e9594ab4635b96946,35 THOMAS PLACE,JAMES WHATMAN WAY,,ME14 1FP,4041358868,B,B,82,82,Flat,Enclosed End-Terrace,2021-07-21,E07000110,E14000804,Kent,2021-07-28,rental,84,84,110,110.0,1.2,19,1.2,62.0,62.0,165.0,165.0,108.0,108.0,65.0,Single,N,06,N,,,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,Community scheme,Good,Good,(another dwelling below),,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Very Good,Very Good,,,,(another dwelling above),,,Community scheme,Good,Good,"Flat rate charging, programmer and room thermostat",Poor,Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (community),0.0,unheated corridor,8.26,2.39,0.0,N,natural,"35 THOMAS PLACE, JAMES WHATMAN WAY",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2012 onwards,2021-07-28 11:45:25,Rented (social),7.0,,10014312701.0,Energy Assessor +629182469342011051500004781699948,"7, Hill Brow",Bearsted,,ME14 4AW,4394766868,D,D,60,65,House,Semi-Detached,2011-05-14,E07000110,E14000700,Kent,2011-05-15,marketed sale,57,62,265,230.0,3.9,51,3.4,61.0,41.0,580.0,555.0,152.0,105.0,38.65,Single,Y,NODATA!,,,2106.0,80.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,50.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Mostly double glazing,Poor,Poor,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Roof room(s), ceiling insulated",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,2.28,0.0,,natural,"7, Hill Brow, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2011-05-15 00:00:47,owner-occupied,10.0,5.0,200003693563.0,Address Matched +1384755559642016042716085649062438,Flat 89,Miller House,43-51 Lower Stone Street,ME15 6GB,6683150478,C,C,80,80,Flat,NO DATA!,2016-04-27,E07000110,E14000804,Kent,2016-04-27,none of the above,72,72,214,214.0,2.0,36,2.0,40.0,40.0,199.0,199.0,154.0,154.0,55.0,off-peak 10 hour,,mid floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Poor,Poor,(other premises below),,,Fully double glazed,Good,Good,Average thermal transmittance 0.68 W/m-¦K,Average,Average,,,,(other premises above),,,"Boiler and radiators, electric",Poor,Very Poor,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"Flat 89, Miller House, 43-51 Lower Stone Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2016-04-27 16:08:56,unknown,4.0,4.0,10091196186.0,Address Matched +974826059602013072416285218172448,"4, Little Orchard",Coxheath,,ME17 4EP,4653551178,D,B,66,83,Bungalow,Detached,2013-07-24,E07000110,E14000804,Kent,2013-07-24,marketed sale,64,82,195,84.0,3.3,37,1.5,88.0,51.0,559.0,470.0,120.0,81.0,89.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,2.0,4.0,4.0,27.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 27% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"4, Little Orchard, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2013-07-24 16:28:52,owner-occupied,11.0,3.0,200003713276.0,Address Matched +1744831909962019081908032376668461,"32, Horton Downs",Downswood,,ME15 8TN,6791026678,D,B,58,85,House,Detached,2019-08-16,E07000110,E14000700,Kent,2019-08-19,marketed sale,49,82,285,89.0,6.3,50,2.0,125.0,83.0,1001.0,528.0,180.0,75.0,125.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,1.0,6.0,6.0,50.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, partial insulation (assumed)",Average,Average,,,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"32, Horton Downs, Downswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1976-1982,2019-08-19 08:03:23,owner-occupied,,,200003686523.0,Address Matched +1632273279262018052310265168378158,"18, Barham Close",,,ME15 9JY,5661708578,E,B,54,85,Bungalow,Semi-Detached,2018-05-23,E07000110,E14000700,Kent,2018-05-23,marketed sale,34,65,577,254.0,5.3,98,2.3,44.0,44.0,718.0,441.0,163.0,80.0,54.0,dual,N,NODATA!,,,2401.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,2.0,100.0,0.0,"Electric immersion, off-peak",Average,Poor,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,Portable electric heaters (assumed),,,"Pitched, 150 mm loft insulation",Good,Good,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,NO DATA!,,,,N,natural,"18, Barham Close",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2018-05-23 10:26:51,owner-occupied,,,200003682397.0,Address Matched +1418641809222016022915290852718586,"37, Roseacre Lane",Bearsted,,ME14 4JG,8545092478,G,F,10,36,House,Semi-Detached,2016-02-29,E07000110,E14000700,Kent,2016-02-29,none of the above,9,31,721,382.0,12.0,147,6.8,74.0,75.0,1975.0,1496.0,323.0,96.0,81.0,dual,Y,NODATA!,,,2101.0,10.0,secondary glazing,Normal,2.0,4.0,4.0,75.0,1.0,"Electric immersion, off-peak",Average,Poor,"Solid, no insulation (assumed)",NO DATA!,,Some secondary glazing,Very Poor,Very Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, dual fuel (mineral and wood)",Poor,Poor,No time or thermostatic control of room temperature,Very Poor,Very Poor,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,dual fuel - mineral + wood,0.0,NO DATA!,,,,N,natural,"37, Roseacre Lane, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2016-02-29 15:29:08,owner-occupied,,,200003692201.0,Address Matched +603863304232012041715200138968606,"11, James Street",,,ME14 2UR,698674868,C,B,74,91,House,Mid-Terrace,2012-04-17,E07000110,E14000804,Kent,2012-04-17,marketed sale,76,93,149,23.0,1.8,28,0.3,60.0,36.0,300.0,281.0,81.0,55.0,62.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,33.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 33% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"11, James Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2012-04-17 15:20:01,owner-occupied,9.0,3.0,200003703531.0,Address Matched +1580334339242019033008124954412318,"76, Sutton Road",,,ME15 9AL,3250834578,D,D,55,65,Bungalow,Detached,2019-03-29,E07000110,E14000700,Kent,2019-03-30,marketed sale,44,54,299,232.0,8.9,53,7.0,111.0,111.0,1561.0,1388.0,95.0,95.0,169.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",More Than Typical,0.0,5.0,5.0,79.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 79% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"76, Sutton Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2019-03-30 08:12:49,owner-occupied,,,200003713458.0,Address Matched +955b88e73b3a7b690390dc2e8b8bb008b724cf0edacd6227b4268db6823c90d4,"FLAT 4, HARRIET HOUSE, WEST STREET",HARRIETSHAM,,ME17 1JZ,10001636690,D,C,61,71,Flat,Semi-Detached,2021-07-13,E07000110,E14000700,Kent,2021-07-13,rental,56,70,390,265.0,2.7,69,1.8,36.0,36.0,396.0,276.0,147.0,116.0,39.0,Single,Y,00,N,,,100.0,"double glazing, unknown install date",Less Than Typical,0.0,2.0,2.0,100.0,0.0,Community scheme,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,(another dwelling above),,,Community scheme,Good,Good,"Flat rate charging, programmer and TRVs",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (community),0.0,no corridor,,2.88,0.0,N,natural,"FLAT 4, HARRIET HOUSE, WEST STREET, HARRIETSHAM",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2021-07-13 21:32:37,Rented (private),3.0,,10095449909.0,Address Matched +964251579602013070916330810070618,"513, Loose Road",,,ME15 9UQ,2602970178,D,B,65,86,House,Mid-Terrace,2013-07-09,E07000110,E14000804,Kent,2013-07-09,marketed sale,64,86,221,67.0,2.8,42,0.9,69.0,40.0,549.0,420.0,42.0,42.0,66.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,2.0,4.0,4.0,27.0,0.0,From main system,Very Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 27% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"513, Loose Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2013-07-09 16:33:08,owner-occupied,11.0,3.0,200003680308.0,Address Matched +903799827732013032621451999278005,"30, The Tail Race",,,ME15 6YL,2529056078,C,B,74,91,House,Semi-Detached,2013-03-25,E07000110,E14000804,Kent,2013-03-26,assessment for green deal,76,93,145,26.0,1.9,28,0.4,76.0,47.0,330.0,299.0,83.0,60.0,68.0,dual,Y,NODATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,1.0,5.0,5.0,38.0,0.0,From main system,Good,Good,"Solid, limited insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 38% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"30, The Tail Race",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2013-03-26 21:45:19,rental (private),8.0,3.0,200003665914.0,Address Matched +1590017649922017111513273145958293,"6, Oaken Wood Drive",,,ME16 9FE,9407405578,B,B,89,90,House,Detached,2017-11-15,E07000110,E14000804,Kent,2017-11-15,new dwelling,89,91,52,42.0,1.5,9,1.2,83.0,83.0,302.0,304.0,109.0,60.0,163.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.18 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"6, Oaken Wood Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2017-11-15 13:27:31,unknown,20.0,20.0,10093303601.0,Address Matched +600737867932011030610111786068100,"16, Bramshott Close",,,ME16 0RX,6086154868,D,C,68,72,Bungalow,Semi-Detached,2011-03-05,E07000110,E14000804,Kent,2011-03-06,marketed sale,64,68,256,226.0,3.3,43,3.0,75.0,42.0,541.0,498.0,100.0,100.0,59.97,Single,Y,NO DATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,21.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Very Good,Very Good,Programmer and room thermostat,Average,Average,Low energy lighting in 21% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.38,0.0,N,natural,"16, Bramshott Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2011-03-06 10:11:17,owner-occupied,,,200003659486.0,Address Matched +1076593999222014012411445578548514,"1, The Dunnings",,,ME16 9AQ,1775978178,C,B,72,87,House,End-Terrace,2014-01-24,E07000110,E14000804,Kent,2014-01-24,marketed sale,73,88,154,58.0,2.4,29,0.9,105.0,53.0,413.0,393.0,97.0,71.0,81.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,0.0,0.0,From main system,Good,Good,"Suspended, limited insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"1, The Dunnings",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2014-01-24 11:44:55,owner-occupied,8.0,0.0,200003688700.0,Address Matched +658498679942019030621344685810558,"11, Melrose Close",,,ME15 6BD,5968378868,C,C,79,80,House,Semi-Detached,2019-03-05,E07000110,E14000804,Kent,2019-03-06,marketed sale,77,80,131,115.0,2.2,23,2.0,72.0,72.0,384.0,388.0,124.0,73.0,97.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Suspended, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Roof room(s), insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"11, Melrose Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2019-03-06 21:34:46,owner-occupied,,,10014307031.0,Address Matched +776702159842012041713030198729738,"35, Leonard Gould Way",Loose,,ME15 9FX,4801257968,B,B,84,84,House,Mid-Terrace,2012-04-17,E07000110,E14000700,Kent,2012-04-17,new dwelling,86,86,76,76.0,1.9,14,1.9,76.0,76.0,294.0,294.0,101.0,101.0,130.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,10.0,,From main system,Good,Good,Average thermal transmittance 0.12 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m?K,Very Good,Very Good,"Room heaters, electric",,,Average thermal transmittance 0.10 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in 77% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.45,,,NO DATA!,"35, Leonard Gould Way, Loose",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2012-04-17 13:03:01,,13.0,10.0,10014311152.0,Address Matched +803977779222012062017183059508842,1 Honywood Farm Cottages,West Street,Lenham,ME17 2EP,4560749968,C,C,76,76,House,Mid-Terrace,2012-06-20,E07000110,E14000700,Kent,2012-06-20,new dwelling,84,84,123,123.0,1.2,22,1.2,36.0,36.0,261.0,261.0,88.0,88.0,54.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,12.0,,Community scheme,Good,Very Good,Average thermal transmittance 0.19 W/m?K,Very Good,Very Good,Fully double glazed,Good,Good,Average thermal transmittance 0.21 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.27 W/m?K,Good,Good,Community scheme,Good,Very Good,"Flat rate charging, programmer and TRVs",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,NO DATA!,0.0,NO DATA!,,2.23,,,NO DATA!,"1 Honywood Farm Cottages, West Street, Lenham",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2012-06-20 17:18:30,,12.0,12.0,, +192584719512009051913551400089254,"14, Cross Keys",Bearsted,,ME14 4HR,2498905568,C,C,72,74,House,Semi-Detached,2008-12-01,E07000110,E14000700,Kent,2009-05-19,rental (social),69,70,213,203.0,3.0,35,2.9,82.0,41.0,378.0,385.0,120.0,120.0,85.65,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,0.0,1.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.41,0.0,N,natural,"14, Cross Keys, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2009-05-19 13:55:14,rental (social),,,200003694877.0,Address Matched +1063939616812013122012443898279217,"5, Barned Court",,,ME16 9EL,2758687178,D,B,64,86,House,Semi-Detached,2013-12-20,E07000110,E14000804,Kent,2013-12-20,none of the above,62,87,215,59.0,3.3,41,1.0,96.0,48.0,562.0,386.0,111.0,72.0,81.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"5, Barned Court",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2013-12-20 12:44:38,owner-occupied,16.0,0.0,200003665468.0,Address Matched +955d407b2ba247f5adaf0ad7ee3852319fb730fe8341652e29326e9b14844598,5 WILLOW COURT,PICKERING STREET,,ME15 9RU,5094158868,C,C,69,74,Flat,Semi-Detached,2021-07-05,E07000110,E14000804,Kent,2021-07-05,rental,68,77,262,192.0,2.1,46,1.5,41.0,41.0,381.0,284.0,71.0,72.0,45.0,Single,Y,00,N,,,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,5.04,2.35,0.0,N,natural,"5 WILLOW COURT, PICKERING STREET",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2021-07-05 18:06:36,Rented (private),7.0,,200003676008.0,Energy Assessor +669065298932011082215150965268804,Kingsley,Gallants Lane,East Farleigh,ME15 0LJ,9475849868,E,D,41,58,House,Detached,2011-08-22,E07000110,E14000804,Kent,2011-08-22,marketed sale,32,46,315,225.0,12.0,77,8.2,112.0,65.0,1651.0,1229.0,272.0,151.0,150.6,Single,N,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,1.0,6.0,6.0,27.0,1.0,"From main system, no cylinder thermostat",Very Poor,Very Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, oil",Average,Average,Programmer and room thermostat,Average,Average,Low energy lighting in 27% of fixed outlets,Average,Average,oil (not community),0.0,NO DATA!,,2.4,0.0,,natural,"Kingsley, Gallants Lane, East Farleigh",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2011-08-22 15:15:09,owner-occupied,15.0,4.0,200003670770.0,Address Matched +276702939802019062615002962112058,"10, Crowther Close",Staplehurst,,TN12 0NQ,2839431668,D,B,68,84,House,Semi-Detached,2019-06-25,E07000110,E14000804,Kent,2019-06-26,rental (private),64,82,226,97.0,3.0,40,1.3,56.0,56.0,486.0,415.0,128.0,76.0,75.0,Single,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"10, Crowther Close, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1967-1975,2019-06-26 15:00:29,rental (private),,,200003678300.0,Address Matched +1031730190652013110414012696079113,Dolphins,Chart Road,Sutton Valence,ME17 3AW,1346065178,D,B,64,88,House,Detached,2013-11-04,E07000110,E14000700,Kent,2013-11-04,marketed sale,59,87,193,53.0,5.7,37,1.6,140.0,71.0,858.0,545.0,210.0,74.0,153.0,Single,Y,NODATA!,,,2104.0,0.0,not defined,Normal,1.0,7.0,7.0,0.0,0.0,"From main system, no cylinder thermostat",Average,Average,"Solid, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"Dolphins, Chart Road, Sutton Valence",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2013-11-04 14:01:26,owner-occupied,19.0,0.0,200003694404.0,Address Matched +1812752342222020072316342371998590,"11, Turgis Close",Langley,,ME17 3HD,9755411778,D,C,66,78,House,Mid-Terrace,2020-07-21,E07000110,E14000700,Kent,2020-07-23,rental (social),61,73,238,154.0,3.7,42,2.4,101.0,70.0,625.0,629.0,104.0,71.0,88.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,57.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 57% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"11, Turgis Close, Langley",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2020-07-23 16:34:23,rental (social),,,200003697427.0,Address Matched +465727990452010040716532596000379,"62, Finglesham Court",,,ME15 7JE,3980064768,D,C,67,72,House,Detached,2010-04-07,E07000110,E14000700,Kent,2010-04-07,marketed sale,62,67,274,238.0,3.3,46,2.9,69.0,37.0,478.0,446.0,124.0,106.0,72.24,Unknown,Y,NO DATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,15.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, mains gas",,,"Pitched, 250mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 15% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.31,0.0,N,natural,"62, Finglesham Court",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2010-04-07 16:53:25,owner-occupied,,,200003712072.0,Address Matched +1795398282942020032609264866902708,"5, Kenya Terrace",Invicta Park,,ME14 2PF,4944889678,D,C,60,80,House,Mid-Terrace,2020-02-20,E07000110,E14000804,Kent,2020-03-26,Stock Condition Survey,53,76,291,133.0,4.1,51,1.9,63.0,63.0,726.0,543.0,98.0,67.0,80.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Flat, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"5, Kenya Terrace, Invicta Park",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2020-03-26 09:26:48,rental (social),,,200003723958.0,Address Matched +1418542320512016030111534899260649,Flat 22 Star House,Pudding Lane,,ME14 1LT,6912092478,B,B,81,81,Flat,End-Terrace,2016-02-29,E07000110,E14000804,Kent,2016-03-01,new dwelling,83,83,111,111.0,1.4,20,1.4,56.0,56.0,247.0,247.0,103.0,103.0,74.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,(other premises below),,,Full secondary glazing,Average,Average,Average thermal transmittance 0.30 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Flat 22 Star House, Pudding Lane",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2016-03-01 11:53:48,owner-occupied,5.0,5.0,10091195014.0,Address Matched +1773894182132019121912061432978293,"19, Victoria Court",Victoria Street,,ME16 8JZ,8372238678,C,B,71,81,Flat,Mid-Terrace,2019-12-19,E07000110,E14000804,Kent,2019-12-19,marketed sale,55,70,459,302.0,2.4,78,1.6,30.0,31.0,311.0,145.0,134.0,134.0,30.0,dual,N,1st,Y,,2401.0,0.0,not defined,Normal,0.0,1.0,1.0,100.0,0.0,"Electric immersion, off-peak",Average,Poor,(another dwelling below),NO DATA!,,Single glazed,Very Poor,Very Poor,"Timber frame, as built, insulated (assumed)",Good,Good,Portable electric heaters (assumed),,,"Pitched, 100 mm loft insulation",Average,Average,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,heated corridor,0.0,,,N,natural,"19, Victoria Court, Victoria Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1976-1982,2019-12-19 12:06:14,owner-occupied,,,200003668706.0,Address Matched +1504766819962016121415331109848446,"22, Fullingpits Avenue",,,ME16 9DZ,4019109478,B,B,89,90,House,Semi-Detached,2016-12-14,E07000110,E14000804,Kent,2016-12-14,new dwelling,91,93,50,32.0,0.7,9,0.5,54.0,54.0,189.0,190.0,103.0,55.0,79.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.18 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"22, Fullingpits Avenue",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2016-12-14 15:33:11,unknown,20.0,20.0,10093303430.0,Address Matched +596756729842012071122130482429598,"36, The Cockpit",Marden,,TN12 9TQ,3835024868,C,C,78,78,Flat,Semi-Detached,2012-07-11,E07000110,E14000804,Kent,2012-07-11,rental (social),82,82,128,128.0,1.2,24,1.2,33.0,33.0,229.0,229.0,73.0,73.0,47.0,Single,Y,1st,N,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,86.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 86% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,6.7,,0.0,,natural,"36, The Cockpit, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1967-1975,2012-07-11 22:13:04,rental (social),7.0,6.0,200003726989.0,Address Matched +1681506341912018112609452296289365,"62, Madginford Road",Bearsted,,ME15 8JS,3512161678,C,B,69,83,Bungalow,Detached,2018-11-23,E07000110,E14000700,Kent,2018-11-26,marketed sale,65,81,218,110.0,3.2,38,1.6,71.0,71.0,544.0,476.0,98.0,66.0,83.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,80.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"62, Madginford Road, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2018-11-26 09:45:22,owner-occupied,,,200003685773.0,Address Matched +959ac7cc9821841ee2dcb6d19bd018ae6935eef35b5770699a1bbc9596aa1a1e,14 Sycamore Crescent,,,ME16 0AG,10001369265,E,C,41,79,House,Semi-Detached,2021-08-27,E07000110,E14000804,Kent,2021-08-27,marketed sale,33,74,427,132.0,8.2,75,2.6,91.0,91.0,1158.0,627.0,333.0,72.0,109.0,dual,Y,,,,,100.0,double glazing installed during or after 2002,Normal,1.0,6.0,6.0,100.0,0.0,"From main system, no cylinder thermostat",Poor,Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.4,0.0,N,natural,14 Sycamore Crescent,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2021-08-27 13:39:53,Owner-occupied,27.0,,200003658188.0,Energy Assessor +718398199702012031212121196229428,Fourth Floor Flat,14 Clifford Way,,ME16 8GB,3722992968,B,B,81,81,Flat,Detached,2012-03-12,E07000110,E14000804,Kent,2012-03-12,marketed sale,84,85,102,97.0,1.3,19,1.3,62.0,44.0,232.0,234.0,74.0,74.0,69.33,Unknown,Y,4th,N,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,57.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Good,Good,"System built, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 57% of fixed outlets,Good,Good,mains gas (not community),0.0,unheated corridor,10.43,2.31,0.0,,natural,"Fourth Floor Flat, 14 Clifford Way",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2012-03-12 12:12:11,owner-occupied,7.0,4.0,10022896027.0,Address Matched +683318459602012070518240099020458,Holm Mill Cottage,Holm Mill Lane,Harrietsham,ME17 1LA,660350968,E,C,46,70,House,Detached,2012-07-05,E07000110,E14000700,Kent,2012-07-05,marketed sale,41,64,317,168.0,6.9,61,3.7,114.0,57.0,1161.0,854.0,102.0,66.0,113.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,2.0,5.0,5.0,0.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Granite or whinstone, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"Holm Mill Cottage, Holm Mill Lane, Harrietsham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2012-07-05 18:24:00,owner-occupied,24.0,0.0,200003702199.0,Address Matched +647609409642013031221144683879228,Roytta House,Chart Road,Sutton Valence,ME17 3AW,3601008868,D,C,64,79,House,Detached,2013-03-12,E07000110,E14000700,Kent,2013-03-12,marketed sale,66,80,178,102.0,7.4,28,4.1,191.0,95.0,1528.0,1138.0,134.0,134.0,268.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,10.0,10.0,0.0,2.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, partial insulation (assumed)",Average,Average,"Room heaters, wood logs",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"Roytta House, Chart Road, Sutton Valence",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1976-1982,2013-03-12 21:14:46,owner-occupied,31.0,0.0,200003694412.0,Address Matched +1470338959042016081113472743660318,2b Courtenay Road,,,ME15 6UL,3044756478,B,B,81,81,Flat,NO DATA!,2016-08-09,E07000110,E14000804,Kent,2016-08-11,new dwelling,85,85,113,113.0,1.1,20,1.1,41.0,41.0,189.0,189.0,91.0,91.0,54.0,standard tariff,,top floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.21 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,2b Courtenay Road,Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2016-08-11 13:47:27,unknown,1.0,1.0,10093304046.0,Address Matched +203291881412010021114295491900250,"19, Kingfisher Meadow",,,ME16 8RB,2042116568,C,B,79,81,Flat,Mid-Terrace,2010-02-11,E07000110,E14000804,Kent,2010-02-11,marketed sale,74,75,249,239.0,1.9,38,1.8,31.0,31.0,154.0,135.0,120.0,120.0,49.68,dual,N,1st,N,4.0,2401.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,100.0,0.0,"Electric immersion, off-peak",Poor,Poor,"To unheated space, insulated (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,(another dwelling above),,,Electric storage heaters,Poor,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity - this is for backwards compatibility only and should not be used,0.0,unheated corridor,6.76,2.4,0.0,N,natural,"19, Kingfisher Meadow",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2010-02-11 14:29:54,owner-occupied,,,10022892230.0,Address Matched +1728809846132019061314354753978509,"10, Longsole Way",,,ME16 9FF,4973505678,B,B,88,89,House,Detached,2019-06-13,E07000110,E14000804,Kent,2019-06-13,new dwelling,89,90,55,46.0,1.2,10,1.0,78.0,78.0,279.0,279.0,83.0,50.0,124.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.17 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"10, Longsole Way",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2019-06-13 14:35:47,unknown,15.0,15.0,10093303541.0,Address Matched +9043878432014080517390603068508,"96, Clifford Way",,,ME16 8GE,7803547468,B,B,82,82,Flat,End-Terrace,2014-08-05,E07000110,E14000804,Kent,2014-08-05,marketed sale,86,86,92,92.0,1.1,18,1.1,44.0,44.0,201.0,201.0,104.0,104.0,61.0,Single,Y,2nd,N,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,4.44,,0.0,,natural,"96, Clifford Way",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2014-08-05 17:39:06,owner-occupied,9.0,9.0,10022896109.0,Address Matched +1584576280332017102414423801278696,Flat D,37 High Street,,ME14 1JH,8641664578,D,C,67,77,Flat,Semi-Detached,2017-10-23,E07000110,E14000804,Kent,2017-10-24,rental (private),56,61,353,317.0,2.8,60,2.5,46.0,46.0,298.0,235.0,242.0,129.0,47.0,dual,N,2nd,Y,,2401.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,83.0,0.0,"Electric immersion, off-peak",Very Poor,Poor,(another dwelling below),NO DATA!,,Fully double glazed,Average,Average,"Timber frame, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,"Flat, insulated (assumed)",Average,Average,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 83% of fixed outlets,Very Good,Very Good,electricity (not community),0.0,unheated corridor,5.8,,,N,natural,"Flat D, 37 High Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1991-1995,2017-10-24 14:42:38,rental (private),,,200003728805.0,Address Matched +1429833154632016040311165015078001,"9, Courtlands",Teston,,ME18 5AS,5195073478,D,B,61,86,Bungalow,Semi-Detached,2016-04-03,E07000110,E14000804,Kent,2016-04-03,marketed sale,55,84,296,88.0,3.8,52,1.2,61.0,61.0,633.0,420.0,178.0,72.0,72.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,75.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,2.3,,N,natural,"9, Courtlands, Teston",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2016-04-03 11:16:50,owner-occupied,,,200003661793.0,Address Matched +86763619962019061814154826188131,Apartment 19,Sandling Park,Sandling Lane,ME14 2NY,3210116468,C,B,80,85,Flat,Enclosed Mid-Terrace,2019-06-18,E07000110,E14000804,Kent,2019-06-18,marketed sale,76,77,152,148.0,2.0,26,2.0,98.0,71.0,196.0,136.0,211.0,183.0,79.0,dual,N,3rd,N,,2603.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,46.0,0.0,"Electric immersion, off-peak",Poor,Poor,(another dwelling below),NO DATA!,,Fully double glazed,Good,Good,"System built, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,(another dwelling above),,,"Room heaters, electric",Very Poor,Poor,Programmer and appliance thermostats,Good,Good,Low energy lighting in 46% of fixed outlets,Good,Good,electricity (not community),0.0,unheated corridor,9.71,,,N,natural,"Apartment 19, Sandling Park, Sandling Lane",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2019-06-18 14:15:48,owner-occupied,,,10014307114.0,Address Matched +389573960132009102821364230268695,Flat 166 Scotney Gardens,St. Peters Street,,ME16 0GT,6560629668,B,B,84,85,Flat,Detached,2009-10-27,E07000110,E14000804,Kent,2009-10-28,rental (private),79,79,209,206.0,1.5,31,1.4,38.0,28.0,86.0,87.0,110.0,110.0,46.5,dual,N,2nd,N,5.0,2402.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,67.0,0.0,"Electric immersion, off-peak",Average,Poor,(other premises below),,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,(another dwelling above),,,Electric storage heaters,Average,Poor,Automatic charge control,Average,Average,Low energy lighting in 67% of fixed outlets,Good,Good,electricity - this is for backwards compatibility only and should not be used,0.0,heated corridor,,,0.0,N,natural,"Flat 166 Scotney Gardens, St. Peters Street",Maidstone,Maidstone and The Weald,MAIDSTONE,,2009-10-28 21:36:42,rental (private),,,10022893533.0,Address Matched +95d327f6a3a2dea438cbc154bd2ac4b78cda50f82e2da6a12229547b3d421e1c,Wellbrook Place,Bunce Court Road,Otterden,ME13 0BY,10001662284,D,C,63,71,House,Detached,2021-08-19,E07000110,E14000700,Kent,2021-08-19,marketed sale,52,61,208,162.0,10.0,37,7.8,199.0,145.0,1598.0,1423.0,136.0,136.0,271.0,Single,Y,,,,,100.0,double glazing installed before 2002,Normal,1.0,9.0,9.0,63.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 63% of fixed outlets,Good,Good,mains gas (not community),0.0,,,2.62,0.0,N,natural,"Wellbrook Place, Bunce Court Road, Otterden",Maidstone,Faversham and Mid Kent,FAVERSHAM,England and Wales: 1991-1995,2021-08-19 16:33:06,Owner-occupied,41.0,,200003715065.0,Energy Assessor +189878960222009051913390254198268,"3, Vanity Lane",Coxheath,,ME17 4NY,6541664568,C,C,72,74,House,Semi-Detached,2008-11-21,E07000110,E14000804,Kent,2009-05-19,rental (social),69,70,227,218.0,2.6,38,2.5,66.0,33.0,339.0,344.0,112.0,112.0,69.94,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,4.0,4.0,0.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"System built, with external insulation",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,0.0,N,natural,"3, Vanity Lane, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2009-05-19 13:39:02,rental (social),,,200003712794.0,Address Matched +816994228112012072316351393220700,"30, Bathurst Road",Staplehurst,,TN12 0LQ,7021830078,C,B,76,91,House,Semi-Detached,2012-07-20,E07000110,E14000804,Kent,2012-07-23,none of the above,70,90,132,32.0,3.1,26,0.8,58.0,58.0,705.0,469.0,225.0,77.0,116.0,Single,Y,NODATA!,,,,100.0,"double glazing, unknown install date",Normal,1.0,6.0,6.0,,0.0,"From main system, no cylinder thermostat",Poor,Poor,"Solid, no insulation (assumed)",,,,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,Low energy lighting in all fixed outlets,,Very Good,mains gas (not community),0.0,NO DATA!,,,,,natural,"30, Bathurst Road, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1967-1975,2012-07-23 16:35:13,unknown,,,200003677801.0,Address Matched +1155344039962014061115441524998214,"4, Skinners Way",Langley,,ME17 3LB,1230334278,C,B,71,84,House,Semi-Detached,2014-06-11,E07000110,E14000700,Kent,2014-06-11,FiT application,71,84,150,72.0,3.2,28,1.6,114.0,62.0,556.0,517.0,131.0,89.0,112.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,7.0,7.0,15.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 15% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"4, Skinners Way, Langley",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2014-06-11 15:44:15,owner-occupied,13.0,2.0,200003697726.0,Address Matched +1074270228332017082119483302278107,"9, Fishers Close",Staplehurst,,TN12 0DB,2762168178,D,B,57,88,House,Semi-Detached,2017-08-21,E07000110,E14000804,Kent,2017-08-21,marketed sale,50,87,307,61.0,4.3,55,0.9,105.0,54.0,705.0,349.0,153.0,80.0,78.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,4.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, dual fuel (mineral and wood)",,,"Roof room(s), ceiling insulated",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 4% of fixed outlets,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"9, Fishers Close, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1950-1966,2017-08-21 19:48:33,owner-occupied,,,200003679318.0,Address Matched +251895107132009031723543388968809,"1, Westmorland Close",,,ME15 8AJ,988829568,C,C,73,73,Bungalow,End-Terrace,2009-03-17,E07000110,E14000700,Kent,2009-03-17,rental (social),69,69,254,251.0,2.3,42,2.3,32.0,26.0,347.0,348.0,73.0,73.0,54.07,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,2.0,2.0,75.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.31,0.0,N,natural,"1, Westmorland Close",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2009-03-17 23:54:33,rental (social),,,200003684364.0,Address Matched +157096338032020081118012244968608,"421, Tonbridge Road",,,ME16 8NJ,3874621568,E,B,47,84,House,End-Terrace,2020-08-11,E07000110,E14000804,Kent,2020-08-11,rental (private),40,82,405,96.0,5.2,72,1.3,101.0,60.0,908.0,445.0,107.0,50.0,73.0,Single,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,1.0,4.0,4.0,33.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 33% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"421, Tonbridge Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2020-08-11 18:01:22,rental (private),,,200003695766.0,Address Matched +128369079142011032222295245992828,"32, Yeoman Way",Bearsted,,ME15 8PH,3141879468,D,D,62,68,Bungalow,Detached,2011-03-22,E07000110,E14000700,Kent,2011-03-22,marketed sale,57,63,260,223.0,5.6,43,4.8,129.0,71.0,830.0,753.0,166.0,145.0,81.13,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,4.0,4.0,19.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 19% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.61,0.0,N,natural,"32, Yeoman Way, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2011-03-22 22:29:52,owner-occupied,,,200003690930.0,Address Matched +1489037269752016102009495698269749,"33, Albert Reed Gardens",Tovil,,ME15 6JY,7955987478,C,B,70,86,House,Semi-Detached,2016-10-20,E07000110,E14000804,Kent,2016-10-20,marketed sale,68,84,205,86.0,2.9,36,1.2,57.0,57.0,472.0,432.0,156.0,74.0,79.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Solid, limited insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,2.4,,N,natural,"33, Albert Reed Gardens, Tovil",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2016-10-20 09:49:56,owner-occupied,,,10022893144.0,Address Matched +596913829102012041923253382429118,"13, Perry Street",,,ME14 2RP,6184024868,C,B,69,90,House,Mid-Terrace,2012-04-19,E07000110,E14000804,Kent,2012-04-19,rental (social),70,93,198,27.0,2.1,38,0.3,53.0,32.0,338.0,270.0,101.0,69.0,55.0,Unknown,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,2.0,2.0,33.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 33% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"13, Perry Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2012-04-19 23:25:33,rental (social),6.0,2.0,200003669555.0,Address Matched +567121529962013081514523751148127,"9, Essex Road",,,ME15 7QL,2590281868,D,B,64,85,House,Semi-Detached,2013-08-14,E07000110,E14000700,Kent,2013-08-15,marketed sale,59,83,213,68.0,3.6,43,1.3,98.0,49.0,526.0,408.0,158.0,81.0,83.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,0.0,1.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,"Room heaters, coal",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"9, Essex Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2013-08-15 14:52:37,owner-occupied,10.0,0.0,200003680453.0,Address Matched +1525997537332017030913531047078108,"11, Friars Court",,,ME15 8GF,3877150578,B,A,82,93,House,Detached,2017-03-09,E07000110,E14000700,Kent,2017-03-09,new dwelling,83,95,105,20.0,1.6,18,0.3,58.0,58.0,267.0,269.0,101.0,53.0,85.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"11, Friars Court",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2017-03-09 13:53:10,unknown,1.0,1.0,10091193561.0,Address Matched +210923560602009012113081758612908,"33, Northway",Penenden Heath,,ME14 2ET,7653866568,E,D,49,66,Bungalow,Detached,2009-01-20,E07000110,E14000804,Kent,2009-01-21,rental (private),43,60,407,270.0,5.9,68,3.9,83.0,42.0,830.0,565.0,90.0,90.0,87.05,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,0.0,0.0,From main system,Very Good,Very Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 50mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.69,0.0,N,natural,"33, Northway, Penenden Heath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2009-01-21 13:08:17,rental (private),,,200003707428.0,Address Matched +1417389389442016030819155442262258,Flat 10,"1-27, St. Faiths Street",,ME14 1LJ,2484382478,D,D,57,57,Flat,NO DATA!,2016-02-25,E07000110,E14000804,Kent,2016-03-08,marketed sale,61,61,288,288.0,2.7,49,2.7,40.0,40.0,505.0,505.0,252.0,252.0,55.0,standard tariff,,top floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Poor,Very Poor,(other premises below),,,Fully double glazed,Good,Good,Average thermal transmittance 0.35 W/m-¦K,Good,Good,,,,Average thermal transmittance 0.27 W/m-¦K,Good,Good,"Boiler and radiators, electric",Very Poor,Very Poor,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"Flat 10, 1-27, St. Faiths Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2016-03-08 19:15:54,unknown,10.0,10.0,10091195064.0,Address Matched +117061572442020011411371141809878,4,St. Philips Avenue,,ME15 7SN,6470078468,C,B,74,90,House,Mid-Terrace,2020-01-13,E07000110,E14000804,Kent,2020-01-14,marketed sale,68,90,200,54.0,2.5,36,0.7,109.0,57.0,537.0,328.0,159.0,68.0,70.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,5.0,5.0,8.0,0.0,From main system,Average,Average,"To unheated space, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 270 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 8% of fixed outlets,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"4, St. Philips Avenue",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2020-01-14 11:37:11,owner-occupied,,,200003696740.0,Address Matched +415394450222009122219201541328151,32 Hawley Court,London Road,,ME16 8QJ,5407501768,C,B,75,83,Flat,Enclosed End-Terrace,2009-12-22,E07000110,E14000804,Kent,2009-12-22,rental (private),73,81,210,147.0,2.2,35,1.6,45.0,32.0,347.0,255.0,90.0,85.0,64.0,Unknown,Y,6th,N,8.0,2107.0,0.0,not defined,Normal,0.0,2.0,2.0,60.0,0.0,From main system,Good,Good,(other premises below),,,Single glazed,Very Poor,Very Poor,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 60% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,unheated corridor,1.83,2.4,0.0,N,natural,"32 Hawley Court, London Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2009-12-22 19:20:15,rental (private),,,200003668466.0,Address Matched +1573952599142017092015161958332308,"12, Cedar Drive",Barming,,ME16 9HD,9130193578,D,C,59,74,House,Detached,2017-09-20,E07000110,E14000804,Kent,2017-09-20,rental (private),54,71,228,133.0,6.6,40,3.9,100.0,100.0,1308.0,1001.0,154.0,92.0,165.0,dual,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,95.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, 270 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 95% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"12, Cedar Drive, Barming",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2017-09-20 15:16:19,rental (private),,,200003665631.0,Address Matched +1555686469002017062805325259232138,"21, Joy Wood",Boughton Monchelsea,,ME17 4JY,3091162578,D,B,67,83,House,Detached,2017-06-27,E07000110,E14000700,Kent,2017-06-28,marketed sale,61,79,217,109.0,4.7,38,2.4,105.0,75.0,775.0,632.0,170.0,78.0,123.0,Unknown,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,7.0,7.0,60.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 60% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"21, Joy Wood, Boughton Monchelsea",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1991-1995,2017-06-28 05:32:52,owner-occupied,,,200003724127.0,Address Matched +1817360228312020081209463324900473,Flat 24 Ulysses House,Rosalind Drive,,ME14 2FL,4343841778,B,B,83,83,Flat,End-Terrace,2020-08-12,E07000110,E14000804,Kent,2020-08-12,new dwelling,86,86,91,91.0,1.3,16,1.3,64.0,64.0,201.0,201.0,99.0,99.0,79.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Good,Good,Average thermal transmittance 0.42 W/m-¦K,Good,Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Flat 24 Ulysses House, Rosalind Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2020-08-12 09:46:33,unknown,14.0,14.0,10094441412.0,Address Matched +928577529542013100413320000870828,16 Midhurst Court,Mote Road,,ME15 6EH,7586728078,D,C,64,79,Flat,End-Terrace,2013-10-02,E07000110,E14000804,Kent,2013-10-04,none of the above,68,83,219,111.0,2.3,40,1.2,37.0,37.0,348.0,226.0,261.0,100.0,58.0,Single,Y,3rd,N,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,2.0,2.0,100.0,0.0,"Electric immersion, standard tariff",Very Poor,Very Poor,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,10.17,,0.0,,natural,"16 Midhurst Court, Mote Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2013-10-04 13:32:00,rental (social),5.0,5.0,200003693322.0,Address Matched +252554562752014050923310591040058,"1, Skinners Way",Langley,,ME17 3LB,802219568,C,B,73,90,House,Semi-Detached,2014-05-09,E07000110,E14000700,Kent,2014-05-09,rental (social),73,91,151,37.0,2.4,29,0.6,50.0,50.0,424.0,386.0,126.0,85.0,82.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"1, Skinners Way, Langley",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2014-05-09 23:31:05,rental (social),9.0,9.0,200003697708.0,Address Matched +1703258719502019030713344262310338,Lilium,Workhouse Lane,East Farleigh,ME15 0PZ,8573813678,A,A,93,112,House,Detached,2019-03-07,E07000110,E14000804,Kent,2019-03-07,new dwelling,93,111,24,-83.0,0.5,4,-1.6,75.0,75.0,510.0,511.0,194.0,114.0,115.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Very Good,Average thermal transmittance 0.16 W/m-¦K,Very Good,Very Good,Fully triple glazed,Good,Good,Average thermal transmittance 0.21 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.17 W/m-¦K,Good,Good,"Air source heat pump, Underfloor heating, pipes in screed above insulation, electric",Very Good,Very Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"Lilium, Workhouse Lane, East Farleigh",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2019-03-07 13:34:42,unknown,20.0,20.0,10094440103.0,Address Matched +1641824879042018062012001758882208,"13, MacGrory Drive",,,ME14 5GF,89578578,B,A,84,95,House,Semi-Detached,2018-06-20,E07000110,E14000700,Kent,2018-06-20,new dwelling,86,97,86,5.0,1.3,15,0.1,62.0,62.0,220.0,220.0,75.0,44.0,85.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.18 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.28 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.19 W/m-¦K,Good,Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"13, MacGrory Drive",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2018-06-20 12:00:17,owner-occupied,13.0,13.0,10093305865.0,Address Matched +521616551412011101112265995999577,"44, Tarragon Road",,,ME16 0NG,5798158768,C,C,80,80,House,Mid-Terrace,2011-10-11,E07000110,E14000804,Kent,2011-10-11,marketed sale,81,81,109,109.0,2.1,21,2.1,58.0,58.0,335.0,335.0,98.0,98.0,100.06,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,92.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 92% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,2.5,0.0,,natural,"44, Tarragon Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2011-10-11 12:26:59,owner-occupied,12.0,11.0,10022901813.0,Address Matched +511076593032010070808314161068503,"14, Frigenti Place",,,ME14 5GJ,9341577768,B,B,83,84,House,End-Terrace,2010-07-08,E07000110,E14000700,Kent,2010-07-08,new dwelling,82,83,107,101.0,2.5,18,2.3,115.0,74.0,322.0,327.0,129.0,129.0,139.12,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,8.0,,From main system,Very Good,Very Good,Average thermal transmittance 0.21 W/m?K,Good,Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.26 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.17 W/m?K,Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 44% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.45,,,NO DATA!,"14, Frigenti Place",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2010-07-08 08:31:41,,18.0,8.0,10014307287.0,Address Matched +1046492969222014102020250306508014,Laxey,Gravelly Bottom Road,Kingswood,ME17 3NX,1041666178,B,B,83,86,House,Detached,2014-10-20,E07000110,E14000700,Kent,2014-10-20,new dwelling,86,89,72,56.0,4.3,11,3.3,119.0,119.0,959.0,959.0,188.0,188.0,374.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Average,Good,Average thermal transmittance 0.17 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,"Room heaters, wood logs",,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Air source heat pump, underfloor, electric",Good,Very Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"Laxey, Gravelly Bottom Road, Kingswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2014-10-20 20:25:03,owner-occupied,80.0,80.0,200003700242.0,Address Matched +964219823732013070410510338078202,"26, The Cherries",,,ME16 9DJ,2238280178,D,B,55,83,House,Semi-Detached,2013-07-03,E07000110,E14000804,Kent,2013-07-04,marketed sale,51,83,290,83.0,4.1,56,1.2,86.0,43.0,571.0,424.0,219.0,67.0,74.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,0.0,0.0,"From main system, no cylinder thermostat",Poor,Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"26, The Cherries",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2013-07-04 10:51:03,owner-occupied,10.0,0.0,200003686895.0,Address Matched +407152350502009120417290773010848,"31, Marlow Copse",,,ME5 9DR,511150768,D,C,66,77,House,Semi-Detached,2009-12-04,E07000110,E14000700,Kent,2009-12-04,marketed sale,61,74,298,203.0,3.1,49,2.1,46.0,34.0,421.0,319.0,153.0,108.0,62.55,dual,Y,NO DATA!,,,2104.0,90.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,67.0,0.0,From main system,Average,Good,"Solid, no insulation (assumed)",,,Mostly double glazing,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Average,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 67% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.3,0.0,N,natural,"31, Marlow Copse",Maidstone,Faversham and Mid Kent,CHATHAM,England and Wales: 1976-1982,2009-12-04 17:29:07,owner-occupied,,,200003725023.0,Address Matched +1128037789962014041809563102538314,"7, Burleigh Drive",,,ME14 2HY,1006832278,C,B,69,82,House,Detached,2014-04-17,E07000110,E14000700,Kent,2014-04-18,marketed sale,65,79,159,86.0,5.5,31,3.0,144.0,80.0,926.0,765.0,157.0,83.0,179.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,9.0,9.0,20.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 20% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"7, Burleigh Drive",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2014-04-18 09:56:31,owner-occupied,10.0,2.0,200003672275.0,Address Matched +1559722170752017092818374199030153,"8, Wood Court",,,ME16 9DD,1349092578,C,B,77,90,House,End-Terrace,2017-05-09,E07000110,E14000804,Kent,2017-09-28,rental (social),77,90,146,43.0,1.8,26,0.6,51.0,51.0,290.0,290.0,102.0,66.0,68.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Very Good,Very Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"8, Wood Court",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2017-09-28 18:37:41,rental (social),,,10022900391.0,Address Matched +643756096932011061715491929968906,"14, Barned Court",,,ME16 9EL,9679967868,E,D,49,68,House,Semi-Detached,2011-06-17,E07000110,E14000804,Kent,2011-06-17,marketed sale,44,65,323,193.0,6.4,62,3.8,84.0,51.0,971.0,608.0,153.0,113.0,102.87,Single,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,1.0,4.0,4.0,33.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 33% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,2.37,0.0,,natural,"14, Barned Court",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2011-06-17 15:49:19,owner-occupied,9.0,3.0,200003665371.0,Address Matched +417049115412010010512414591000874,Fern Bank,Old Loose Hill,Loose,ME15 0BN,8478511768,E,E,48,50,House,Detached,2010-01-05,E07000110,E14000804,Kent,2010-01-05,marketed sale,43,43,364,357.0,8.0,61,7.9,126.0,68.0,1119.0,1131.0,200.0,200.0,131.1,Single,Y,NO DATA!,,,2107.0,0.0,not defined,Normal,0.0,7.0,7.0,14.0,1.0,"From main system, no cylinder thermostat",Average,Good,"Solid, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, mains gas",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Very Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 14% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.27,0.0,N,natural,"Fern Bank, Old Loose Hill, Loose",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2010-01-05 12:41:45,owner-occupied,,,200003725334.0,Address Matched +495122656552010060609493896000276,"14, Hillden Shaw",,,ME15 6DD,2636666768,C,C,77,80,Flat,Mid-Terrace,2010-06-06,E07000110,E14000804,Kent,2010-06-06,rental (social),73,78,234,195.0,1.8,39,1.5,25.0,25.0,280.0,250.0,112.0,91.0,46.65,Single,Y,Ground,N,2.0,2107.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.39,0.0,N,natural,"14, Hillden Shaw",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2010-06-06 09:49:38,rental (social),,,200003676967.0,Address Matched +582659509932011012015285541268608,"18, Campbell Road",,,ME15 6QA,831603868,F,F,31,32,House,End-Terrace,2011-01-20,E07000110,E14000804,Kent,2011-01-20,marketed sale,23,23,783,781.0,8.7,118,8.6,87.0,44.0,1055.0,1072.0,101.0,101.0,73.5,dual,Y,NO DATA!,,,2401.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,0.0,0.0,Gas multipoint,Average,Very Poor,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, electric",,,"Pitched, 200 mm loft insulation",Good,Good,Electric storage heaters,Poor,Very Poor,Manual charge control,Poor,Poor,No low energy lighting,Very Poor,Very Poor,electricity - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,0.0,N,natural,"18, Campbell Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2011-01-20 15:28:55,owner-occupied,,,200003693257.0,Address Matched +448876439022010030511554833048730,Charity Barn,Pilgrims Way,Hollingbourne,ME17 1RB,3360343768,E,D,51,59,House,Detached,2010-03-04,E07000110,E14000700,Kent,2010-03-05,marketed sale,44,49,243,209.0,13.0,52,12.0,287.0,147.0,1626.0,1458.0,285.0,257.0,255.33,dual,N,NO DATA!,,,2106.0,40.0,double glazing installed before 2002,More Than Typical,2.0,8.0,8.0,5.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Partial double glazing,Poor,Poor,"Cavity wall, as built, partial insulation (assumed)",Average,Average,"Room heaters, oil",,,"Pitched, limited insulation (assumed)",Poor,Poor,"Boiler and radiators, oil",Average,Average,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 5% of fixed outlets,Very Poor,Very Poor,oil - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,3.75,0.0,N,natural,"Charity Barn, Pilgrims Way, Hollingbourne",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1976-1982,2010-03-05 11:55:48,owner-occupied,,,200003712393.0,Address Matched +452555469302010031114224378309898,10 Ruth House,Lesley Place,Buckland Hill,ME16 0UB,2340763768,C,B,80,81,Flat,End-Terrace,2010-03-11,E07000110,E14000804,Kent,2010-03-11,marketed sale,75,75,271,262.0,1.6,41,1.5,29.0,29.0,115.0,102.0,120.0,120.0,39.18,dual,N,2nd,N,5.0,2401.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,75.0,0.0,"Electric immersion, off-peak",Average,Poor,(other premises below),,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,(another dwelling above),,,Electric storage heaters,Poor,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,electricity - this is for backwards compatibility only and should not be used,0.0,unheated corridor,2.0,2.33,0.0,N,natural,"10 Ruth House, Lesley Place, Buckland Hill",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2010-03-11 14:22:43,owner-occupied,,,10014311992.0,Address Matched +96ace3125262820cfa9657159fa48ec82f2bca633077bca0b5c87cff5c7d7307,Flat 3,Rydal House,Westmorland Green,ME15 8BJ,10001645823,C,C,69,69,Flat,Detached,2021-08-25,E07000110,E14000700,Kent,2021-08-25,rental,67,67,235,235.0,2.6,41,2.6,56.0,56.0,447.0,447.0,86.0,86.0,63.0,Single,Y,01,N,,,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,(another dwelling below),,,Fully double glazed,Average,Average,"System built, as built, no insulation (assumed)",Very Poor,Very Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,4.22,2.46,0.0,N,natural,"Flat 3, Rydal House, Westmorland Green",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2021-08-25 11:27:31,Rented (social),7.0,,200003685486.0,Energy Assessor +1641602039262018062209354968428748,Flat 8 Faith House,"2, St. Faiths Street",,ME14 1LL,4653378578,C,C,72,72,Flat,Mid-Terrace,2018-06-22,E07000110,E14000804,Kent,2018-06-22,new dwelling,75,75,150,150.0,1.9,25,1.9,57.0,57.0,245.0,245.0,294.0,294.0,76.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,"Electric immersion, standard tariff",Very Poor,Poor,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.29 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,"Room heaters, electric",Very Poor,Poor,Programmer and room thermostat,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"Flat 8 Faith House, 2, St. Faiths Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2018-06-22 09:35:49,owner-occupied,19.0,19.0,10093305157.0,Address Matched +335632540302009072918503464512018,"9, Highcroft Green",,,ME15 9PN,9324345668,C,C,73,78,House,Mid-Terrace,2009-07-29,E07000110,E14000700,Kent,2009-07-29,rental (social),70,75,226,184.0,2.6,38,2.1,51.0,34.0,378.0,334.0,105.0,85.0,68.08,Single,Y,NO DATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,50.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"System built, with external insulation",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,0.0,N,natural,"9, Highcroft Green",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2009-07-29 18:50:34,rental (social),,,200003723647.0,Address Matched +356023410352009090308354909010565,"12, Broadoak Avenue",,,ME15 6BH,5596096668,E,C,51,72,Bungalow,Detached,2009-09-03,E07000110,E14000804,Kent,2009-09-03,rental (private),46,68,431,247.0,4.6,72,2.6,70.0,35.0,667.0,400.0,120.0,104.0,72.37,dual,Y,NO DATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 25 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Poor,Poor,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.35,0.0,N,natural,"12, Broadoak Avenue",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2009-09-03 08:35:49,rental (private),,,200003676181.0,Address Matched +1454898828052016061920312194960048,"74, Stagshaw Close",,,ME15 6TN,813845478,C,C,76,80,Flat,Mid-Terrace,2016-05-19,E07000110,E14000804,Kent,2016-06-19,rental (private),65,69,281,250.0,2.4,48,2.1,79.0,44.0,224.0,185.0,141.0,141.0,51.0,Unknown,N,2nd,Y,,2401.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,22.0,0.0,"Electric immersion, off-peak",Average,Poor,(another dwelling below),NO DATA!,,Fully double glazed,Average,Average,"Timber frame, as built, insulated (assumed)",Good,Good,Portable electric heaters (assumed),,,"Pitched, insulated (assumed)",Good,Good,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 22% of fixed outlets,Poor,Poor,electricity (not community),0.0,unheated corridor,8.98,2.38,,N,natural,"74, Stagshaw Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2016-06-19 20:31:21,rental (private),,,10022893316.0,Address Matched +96ba27e6a4dc43809287cdd42d8f0ac6972dbdc4abb51c38055913838d254263,10 Hayle Mill,Hayle Mill Road,,ME15 6JW,9820373768,D,D,66,68,Maisonette,Mid-Terrace,2021-08-23,E07000110,E14000804,Kent,2021-08-23,marketed sale,69,71,189,178.0,3.1,32,2.9,80.0,80.0,643.0,643.0,360.0,297.0,97.0,Unknown,N,00,N,,,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,100.0,0.0,From main system,Very Poor,Poor,"Solid, insulated (assumed)",,,Fully double glazed,Good,Good,"Timber frame, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, electric",Very Poor,Poor,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,heated corridor,,2.69,0.0,N,natural,"10 Hayle Mill, Hayle Mill Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007-2011,2021-08-23 15:52:11,Owner-occupied,14.0,,10022896931.0,Energy Assessor +597004609962011071023581964808179,"221, Plains Avenue",,,ME15 7BD,7669024868,D,D,55,66,House,Semi-Detached,2011-07-10,E07000110,E14000700,Kent,2011-07-10,rental (social),50,64,308,220.0,4.6,59,3.3,42.0,42.0,708.0,535.0,165.0,112.0,76.8,Single,Y,NODATA!,,,2107.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,100.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,2.41,0.0,,natural,"221, Plains Avenue",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2011-07-10 23:58:19,rental (social),9.0,9.0,200003714409.0,Address Matched +305771005552009061615521103910860,59 Midhurst Court,Mote Road,,ME15 6EJ,8010533668,C,B,72,83,Flat,Semi-Detached,2009-06-15,E07000110,E14000804,Kent,2009-06-16,rental (social),69,82,268,161.0,2.1,45,1.3,40.0,22.0,282.0,188.0,110.0,89.0,47.42,Unknown,Y,10th,N,13.0,2107.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,20.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Poor,Poor,Low energy lighting in 20% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,unheated corridor,5.0,2.28,0.0,N,natural,"59 Midhurst Court, Mote Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2009-06-16 15:52:11,rental (social),,,200003693373.0,Address Matched +1353373389962015081313525918878795,"6, Bournewood Close",Downswood,,ME15 8TJ,9119828378,D,B,65,88,House,Semi-Detached,2015-08-13,E07000110,E14000700,Kent,2015-08-13,ECO assessment,62,87,257,71.0,3.2,45,0.9,95.0,47.0,538.0,374.0,136.0,79.0,71.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, partial insulation (assumed)",Average,Average,,,,"Pitched, 25 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"6, Bournewood Close, Downswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1976-1982,2015-08-13 13:52:59,owner-occupied,,,200003686424.0,Address Matched +1127632368012014061221344393940423,"4, Fir Tree Grove",Bredhurst,,ME7 3LB,4321832278,C,B,71,87,House,Detached,2014-06-12,E07000110,E14000700,Kent,2014-06-12,FiT application,64,86,163,55.0,3.9,32,1.4,64.0,64.0,984.0,574.0,154.0,82.0,119.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,1.0,5.0,5.0,100.0,0.0,"From main system, plus solar",Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Average,Average,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,,natural,"4, Fir Tree Grove, Bredhurst",Maidstone,Faversham and Mid Kent,GILLINGHAM,England and Wales: 1967-1975,2014-06-12 21:34:43,owner-occupied,27.0,27.0,200003694226.0,Address Matched +305567430402009061510374862319358,"32, Melford Drive",,,ME16 0UN,5473433668,C,C,72,80,House,End-Terrace,2009-06-15,E07000110,E14000804,Kent,2009-06-15,rental (social),68,77,247,175.0,2.6,41,1.8,47.0,29.0,320.0,258.0,128.0,92.0,61.84,Single,Y,NO DATA!,,,2103.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,40.0,0.0,From main system,Average,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 200mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Average,Good,Room thermostat only,Poor,Poor,Low energy lighting in 40% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.35,0.0,N,natural,"32, Melford Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1991-1995,2009-06-15 10:37:48,rental (social),,,200003725067.0,Address Matched +15464038112010071214485494900140,Apartment 24 Bluecoats Yard,Knightrider Street,,ME15 6LD,1048848468,C,B,79,81,Flat,Detached,2010-07-10,E07000110,E14000804,Kent,2010-07-12,rental (private),78,79,148,137.0,2.2,24,2.1,108.0,54.0,319.0,328.0,103.0,103.0,92.28,Unknown,Y,3rd,Y,4.0,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,3.0,3.0,0.0,0.0,From main system,Very Good,Very Good,(other premises below),,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,heated corridor,,3.42,0.0,N,natural,"Apartment 24 Bluecoats Yard, Knightrider Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2010-07-12 14:48:54,rental (private),,,10014307482.0,Address Matched +416278401752020041013402121900371,Flat 131 Scotney Gardens,St. Peters Street,,ME16 0GT,3118111768,B,B,82,86,Flat,Mid-Terrace,2020-04-10,E07000110,E14000804,Kent,2020-04-10,marketed sale,78,80,144,132.0,1.7,24,1.6,61.0,71.0,164.0,111.0,212.0,160.0,72.0,dual,N,3rd,N,,2603.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,100.0,0.0,"Electric immersion, off-peak",Poor,Poor,(another dwelling below),NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Room heaters, electric",Very Poor,Poor,Programmer and appliance thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,heated corridor,,,,N,natural,"Flat 131 Scotney Gardens, St. Peters Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2020-04-10 13:40:21,owner-occupied,,,10022893498.0,Address Matched +48003264032020043022262284768105,Flat 2 Bellwood Court,Sutton Road,,ME15 8RB,6524175568,B,B,81,83,Flat,Semi-Detached,2020-04-30,E07000110,E14000700,Kent,2020-04-30,rental (social),85,86,106,97.0,1.2,18,1.1,102.0,58.0,188.0,193.0,80.0,80.0,64.0,Single,Y,Ground,N,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,25.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 25% of fixed outlets,Average,Average,mains gas (not community),0.0,heated corridor,0.0,,,N,natural,"Flat 2 Bellwood Court, Sutton Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2007 onwards,2020-04-30 22:26:22,rental (social),,,10014306247.0,Address Matched +803304249702012061908222594929688,"177, Loose Road",,,ME15 7DP,2759049968,D,C,66,79,House,Semi-Detached,2012-06-18,E07000110,E14000700,Kent,2012-06-19,marketed sale,63,77,188,106.0,3.8,36,2.2,54.0,54.0,605.0,542.0,132.0,91.0,106.0,Unknown,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,6.0,6.0,100.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"177, Loose Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1900-1929,2012-06-19 08:22:25,owner-occupied,12.0,12.0,200003684185.0,Address Matched +1580058049262017102416352704378743,Flat 40,Chaucer House,25 Knightrider Street,ME15 6ND,4057434578,C,C,78,78,Flat,Detached,2017-10-23,E07000110,E14000804,Kent,2017-10-24,new dwelling,83,83,171,171.0,0.9,30,0.9,24.0,24.0,187.0,187.0,63.0,63.0,30.0,standard tariff,,top floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.27 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.18 W/m-¦K,Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Flat 40, Chaucer House, 25 Knightrider Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2017-10-24 16:35:27,unknown,10.0,10.0,10093305673.0,Address Matched +1758912929042019101713182768719938,"16, Windmill Crescent",Headcorn,,TN27 9DG,3086427678,B,A,83,114,House,Detached,2019-10-17,E07000110,E14000700,Kent,2019-10-17,new dwelling,84,113,95,-104.0,1.5,17,-1.5,66.0,66.0,258.0,258.0,79.0,48.0,90.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.19 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"16, Windmill Crescent, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,NO DATA!,2019-10-17 13:18:27,unknown,20.0,20.0,10093306119.0,Address Matched +996157749262013082608540443048907,Flat 2 Hirst Court,"75, Buckland Road",,ME16 0GY,417403178,C,C,78,80,Flat,Enclosed End-Terrace,2013-08-24,E07000110,E14000804,Kent,2013-08-26,marketed sale,81,82,113,106.0,1.5,21,1.5,78.0,48.0,250.0,253.0,106.0,106.0,72.0,Unknown,Y,Ground,N,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,38.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 38% of fixed outlets,Average,Average,mains gas (not community),0.0,unheated corridor,8.2,,0.0,,natural,"Flat 2 Hirst Court, 75, Buckland Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2013-08-26 08:54:04,owner-occupied,8.0,3.0,10022892799.0,Address Matched +597093850752016021717090292960980,Flat 2,"35, Ashford Road",,ME14 5DP,9043024868,E,C,54,75,Flat,Detached,2016-02-15,E07000110,E14000804,Kent,2016-02-17,rental (social),51,78,464,202.0,2.8,82,1.2,45.0,26.0,554.0,248.0,81.0,81.0,34.0,Single,Y,Ground,N,,2106.0,0.0,not defined,Normal,0.0,1.0,1.0,25.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Single glazed,Very Poor,Very Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 25% of fixed outlets,Average,Average,mains gas (not community),0.0,unheated corridor,8.0,,,N,natural,"Flat 2, 35, Ashford Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2016-02-17 17:09:02,rental (social),,,200003689434.0,Address Matched +96f916cc171e568a50a23da5cfa942da1826e0152360f724134fcbdc88106be7,Flat 68,Miller Heights 43-51,Lower Stone Street,ME15 6LN,10001646566,D,D,57,65,Flat,End-Terrace,2021-08-13,E07000110,E14000804,Kent,2021-08-13,non marketed sale,61,68,289,237.0,2.9,49,2.4,78.0,54.0,601.0,484.0,388.0,337.0,59.0,Single,N,06,N,,,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,56.0,0.0,From main system,Very Poor,Poor,(another dwelling below),,,Fully double glazed,Good,Good,"System built, as built, partial insulation (assumed)",Average,Average,,,,(another dwelling above),,,"Boiler and radiators, electric",Very Poor,Poor,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 56% of fixed outlets,Good,Good,electricity (not community),0.0,unheated corridor,13.0,2.4,0.0,N,natural,"Flat 68, Miller Heights 43-51, Lower Stone Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1976-1982,2021-08-13 16:22:42,Owner-occupied,9.0,,10091196165.0,Energy Assessor +1794454422262020032123285419408870,Greenwoods,Pickering Street,Loose,ME15 9RH,7182289678,D,C,67,79,House,End-Terrace,2020-03-20,E07000110,E14000804,Kent,2020-03-21,marketed sale,63,74,228,149.0,3.5,40,2.3,75.0,75.0,597.0,597.0,104.0,76.0,86.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,89.0,0.0,From main system,Very Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 89% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"Greenwoods, Pickering Street, Loose",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2020-03-21 23:28:54,owner-occupied,,,200003725474.0,Address Matched +1637519349062018060515594398758738,"36, Bathurst Road",Staplehurst,,TN12 0LQ,3950448578,D,B,57,85,House,Mid-Terrace,2018-06-05,E07000110,E14000804,Kent,2018-06-05,marketed sale,51,83,327,91.0,4.0,58,1.1,85.0,49.0,481.0,399.0,301.0,67.0,69.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,1.0,4.0,4.0,29.0,0.0,"From main system, no cylinder thermostat",Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 29% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"36, Bathurst Road, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1967-1975,2018-06-05 15:59:43,owner-occupied,,,200003677804.0,Address Matched +532801039262010082623014609368480,"2d, Wrangleden Road",,,ME15 9LS,8093339768,D,C,66,77,Flat,Semi-Detached,2010-08-26,E07000110,E14000700,Kent,2010-08-26,rental (social),60,74,369,244.0,2.6,62,1.7,26.0,26.0,381.0,287.0,145.0,95.0,42.0,Single,Y,1st,Y,2.0,2107.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,80.0,0.0,From main system,Average,Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Average,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.29,0.0,N,natural,"2d, Wrangleden Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2010-08-26 23:01:46,rental (social),,,200003683200.0,Address Matched +555759399402010102807315384002498,"48, Rushford Close",Headcorn,,TN27 9QD,1435890868,D,C,66,74,House,Semi-Detached,2010-10-21,E07000110,E14000700,Kent,2010-10-28,marketed sale,59,68,259,201.0,3.9,47,3.0,86.0,49.0,545.0,433.0,119.0,119.0,82.46,dual,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,2.0,4.0,4.0,25.0,1.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, coal",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 25% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.33,0.0,N,natural,"48, Rushford Close, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,England and Wales: 1950-1966,2010-10-28 07:31:53,owner-occupied,,,200003698624.0,Address Matched +885711279022014090120301875898924,"16, Lower Road",,,ME15 7RG,2760725078,E,B,40,84,House,Semi-Detached,2014-09-01,E07000110,E14000804,Kent,2014-09-01,none of the above,36,83,382,78.0,6.8,74,1.4,77.0,55.0,1058.0,489.0,382.0,88.0,92.0,Single,Y,NODATA!,,,2104.0,90.0,"double glazing, unknown install date",More Than Typical,1.0,4.0,4.0,60.0,0.0,"From main system, no cylinder thermostat",Poor,Poor,"Solid, no insulation (assumed)",,,Mostly double glazing,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, no insulation",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Average,Programmer and room thermostat,Average,Average,Low energy lighting in 60% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"16, Lower Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2014-09-01 20:30:18,owner-occupied,10.0,6.0,200003695204.0,Address Matched +174674340302008110318474150380578,"405, Willington Street",,,ME15 8HE,3338843568,D,C,64,75,House,Semi-Detached,2008-11-03,E07000110,E14000700,Kent,2008-11-03,marketed sale,58,71,291,199.0,3.9,48,2.7,73.0,36.0,438.0,334.0,126.0,91.0,80.72,Single,Y,NO DATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,0.0,0.0,From main system,Average,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Average,Good,Programmer and room thermostat,Poor,Poor,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.35,0.0,N,natural,"405, Willington Street",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2008-11-03 18:47:41,owner-occupied,,,200003684804.0,Address Matched +126924269102019073116432647917098,71 Sapphire House,Coral Park,,ME14 5HQ,4194969468,B,B,84,86,Flat,End-Terrace,2019-07-31,E07000110,E14000804,Kent,2019-07-31,rental (private),77,79,158,147.0,1.7,27,1.6,79.0,63.0,116.0,96.0,174.0,174.0,65.0,dual,N,1st,N,,2401.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,75.0,0.0,"Electric immersion, off-peak",Average,Poor,(another dwelling below),NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,(another dwelling above),,,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,electricity (not community),0.0,unheated corridor,2.21,,,N,natural,"71 Sapphire House, Coral Park",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2019-07-31 16:43:26,rental (private),,,10022893365.0,Address Matched +443672232032010022321494054268605,Flat 5 Blackhorse Court,Wheeler Street,Headcorn,TN27 9ST,3594603768,D,D,58,64,Maisonette,End-Terrace,2010-02-23,E07000110,E14000700,Kent,2010-02-23,marketed sale,49,53,538,495.0,3.3,81,3.1,49.0,24.0,325.0,310.0,145.0,114.0,41.02,dual,N,Ground,N,2.0,2402.0,100.0,double glazing installed before 2002,Normal,0.0,2.0,2.0,0.0,0.0,"Electric immersion, off-peak",Poor,Poor,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,(another dwelling above),,,Electric storage heaters,Poor,Very Poor,Automatic charge control,Average,Average,No low energy lighting,Very Poor,Very Poor,electricity - this is for backwards compatibility only and should not be used,0.0,unheated corridor,5.4,2.33,0.0,N,natural,"Flat 5 Blackhorse Court, Wheeler Street, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,England and Wales: 1983-1990,2010-02-23 21:49:40,owner-occupied,,,200003727917.0,Address Matched +973a351a26d0e79744a874470782d9d586136858d28524bcc0c04a0055513936,1 Davis Farm Cottages,Redwall Lane,Linton,ME17 4AY,1601221278,E,C,41,78,House,Semi-Detached,2021-09-02,E07000110,E14000804,Kent,2021-09-02,RHI application,61,92,195,13.0,4.5,38,0.7,83.0,83.0,1152.0,985.0,197.0,87.0,118.0,Single,N,,,,,100.0,double glazing installed during or after 2002,Normal,3.0,6.0,6.0,100.0,0.0,From main system,Poor,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, wood logs",,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, LPG",Poor,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,LPG (not community),0.0,,,2.4,0.0,N,natural,"1 Davis Farm Cottages, Redwall Lane, Linton",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2021-09-02 14:01:54,Owner-occupied,10.0,,200003662973.0,Energy Assessor +1488315466652016101417563698969046,Castle View,Tumblers Hill,Sutton Valence,ME17 3DA,667687478,D,B,58,81,House,Detached,2016-10-14,E07000110,E14000700,Kent,2016-10-14,marketed sale,49,77,267,111.0,7.5,48,3.2,125.0,91.0,1349.0,798.0,161.0,81.0,155.0,dual,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,2.0,6.0,6.0,63.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 270 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 63% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,2.28,,N,natural,"Castle View, Tumblers Hill, Sutton Valence",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2016-10-14 17:56:36,owner-occupied,,,200003696448.0,Address Matched +1108546899922014031708184780548334,"21, Greenside",,,ME15 7RU,3813990278,D,B,57,85,House,Semi-Detached,2014-03-14,E07000110,E14000804,Kent,2014-03-17,marketed sale,56,87,263,63.0,3.5,50,0.9,52.0,52.0,695.0,396.0,110.0,73.0,70.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,4.0,80.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,Portable electric heaters (assumed),,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"21, Greenside",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2014-03-17 08:18:47,owner-occupied,10.0,8.0,200003696221.0,Address Matched +1a9770d14bf2ce3dcbfd8c731c626bf684debd7d84466190d7e6e19f24a9a3cc,15 New Hey Road,,,ME17 3XL,10003408742,B,A,84,94,House,Detached,2022-10-21,E07000110,E14000700,Kent,2022-10-21,new dwelling,85,95,85,20.0,1.7,15,0.4,88.0,88.0,260.0,260.0,94.0,54.0,112.0,standard tariff,,,N,,,100.0,,,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.12 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.28 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.12 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.535,,,,15 New Hey Road,Maidstone,Faversham and Mid Kent,MAIDSTONE,2019,2022-10-21 10:27:45,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,10.0,,10095449095.0,Energy Assessor +1056805639642014030413575014740848,"55, Holtye Crescent",,,ME15 7DD,4642837178,E,C,49,76,House,Semi-Detached,2014-03-04,E07000110,E14000700,Kent,2014-03-04,none of the above,43,72,287,125.0,7.3,56,3.2,74.0,74.0,1311.0,814.0,181.0,79.0,132.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,7.0,7.0,91.0,0.0,From main system,Average,Average,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Average,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 91% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"55, Holtye Crescent",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2014-03-04 13:57:50,owner-occupied,11.0,10.0,200003683883.0,Address Matched +1164734328452014063014262499240020,Flat 5,34 Gabriels Hill,,ME15 6JJ,72894278,D,C,57,76,Flat,Mid-Terrace,2014-06-26,E07000110,E14000804,Kent,2014-06-30,rental (private),60,68,320,252.0,2.4,57,1.9,29.0,32.0,491.0,197.0,137.0,151.0,43.0,Unknown,N,Ground,N,,2601.0,100.0,double glazing installed during or after 2002,Normal,1.0,2.0,2.0,100.0,0.0,Electric instantaneous at point of use,Very Poor,Very Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Solid brick, with internal insulation",Good,Good,,,,"Flat, limited insulation",Poor,Poor,"Room heaters, electric",Very Poor,Very Poor,No thermostatic control of room temperature,Poor,Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,no corridor,,,0.0,,natural,"Flat 5, 34 Gabriels Hill",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1991-1995,2014-06-30 14:26:24,rental (private),5.0,5.0,, +1744332768052020061909192121900366,Flat 3,"26, Challenger Way",Marden,TN12 9GN,3621816678,B,B,83,83,Flat,Detached,2020-06-19,E07000110,E14000804,Kent,2020-06-19,new dwelling,89,89,84,84.0,0.7,15,0.7,49.0,49.0,163.0,163.0,60.0,60.0,50.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.27 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Flat 3, 26, Challenger Way, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,NO DATA!,2020-06-19 09:19:21,unknown,10.0,10.0,10094439882.0,Address Matched +1810343392602020071415321871009148,Flat 53 Ulysses House,Rosalind Drive,,ME14 2FL,9601790778,B,B,84,84,Flat,Mid-Terrace,2020-07-14,E07000110,E14000804,Kent,2020-07-14,new dwelling,88,88,80,80.0,1.0,14,1.0,66.0,66.0,158.0,158.0,97.0,97.0,73.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.41 W/m-¦K,Good,Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Flat 53 Ulysses House, Rosalind Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2020-07-14 15:32:18,unknown,14.0,14.0,10094441441.0,Address Matched +1584018369342017102223572452432728,"10, Beauworth Park",,,ME15 8EU,6346364578,E,B,51,85,Bungalow,Detached,2017-10-22,E07000110,E14000700,Kent,2017-10-22,marketed sale,50,87,373,82.0,3.7,65,0.8,71.0,45.0,742.0,393.0,118.0,74.0,57.0,dual,Y,NODATA!,,,2106.0,0.0,not defined,Normal,0.0,3.0,3.0,43.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Single glazed,Very Poor,Very Poor,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 43% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"10, Beauworth Park",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2017-10-22 23:57:24,owner-occupied,,,200003684739.0,Address Matched +407224759742010012013125976002108,"35, Westborough Mews",,,ME16 8TU,1764150768,C,B,80,81,House,End-Terrace,2010-01-20,E07000110,E14000804,Kent,2010-01-20,rental (private),79,79,150,145.0,2.0,25,2.0,67.0,45.0,285.0,289.0,111.0,111.0,81.12,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,50.0,0.0,From main system,Very Good,Very Good,"Solid, insulated (assumed)",,,Fully double glazed,Good,Good,"Timber frame, as built, insulated (assumed)",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.36,0.0,N,natural,"35, Westborough Mews",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2010-01-20 13:12:59,rental (private),,,10022896521.0,Address Matched +1113727999262014032516465301658944,Wynsdale,Walnut Tree Avenue,,ME15 9UU,4005931278,D,C,60,73,House,Semi-Detached,2014-03-25,E07000110,E14000804,Kent,2014-03-25,marketed sale,54,67,208,138.0,7.3,40,4.9,162.0,81.0,1317.0,1108.0,105.0,105.0,180.0,Unknown,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,2.0,7.0,7.0,0.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"Wynsdale, Walnut Tree Avenue",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2014-03-25 16:46:53,owner-occupied,17.0,0.0,200003675987.0,Address Matched +1305837999902015040108103638457298,"17, Alexandra Glen",Walderslade,,ME5 9EB,2932294378,D,B,67,89,House,Mid-Terrace,2015-03-31,E07000110,E14000700,Kent,2015-04-01,marketed sale,65,90,258,54.0,2.5,45,0.6,48.0,37.0,442.0,339.0,120.0,55.0,55.0,Unknown,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,71.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 71% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"17, Alexandra Glen, Walderslade",Maidstone,Faversham and Mid Kent,CHATHAM,England and Wales: 1983-1990,2015-04-01 08:10:36,owner-occupied,,,200003709140.0,Address Matched +1068307619702017091816314314839788,"55, Dover Street",,,ME16 8LF,2794818178,D,B,66,90,House,Mid-Terrace,2017-09-18,E07000110,E14000804,Kent,2017-09-18,rental (private),62,91,251,41.0,2.8,44,0.5,45.0,45.0,481.0,295.0,119.0,60.0,63.0,Unknown,Y,NODATA!,,,2107.0,100.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,100.0,0.0,From main system,Average,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"55, Dover Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2017-09-18 16:31:43,rental (private),,,200003655569.0,Address Matched +1490186679262016102018282677108296,"29, Bathurst Road",Staplehurst,,TN12 0LG,9796797478,D,B,68,83,House,Semi-Detached,2016-10-20,E07000110,E14000804,Kent,2016-10-20,rental (private),65,81,208,97.0,3.1,37,1.5,100.0,56.0,539.0,476.0,112.0,80.0,85.0,Single,Y,NODATA!,,,2106.0,92.0,"double glazing, unknown install date",Normal,3.0,4.0,4.0,23.0,0.0,From main system,Very Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Mostly double glazing,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 23% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,2.24,,N,natural,"29, Bathurst Road, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1950-1966,2016-10-20 18:28:26,rental (private),,,200003677705.0,Address Matched +684582179552011093017521195290792,"11, Castle Road",,,ME16 0PR,7207950968,D,C,62,71,House,Semi-Detached,2011-09-28,E07000110,E14000804,Kent,2011-09-30,marketed sale,58,69,236,172.0,4.7,45,3.4,82.0,50.0,699.0,536.0,138.0,111.0,102.58,Single,Y,NODATA!,,,2102.0,100.0,double glazing installed before 2002,Normal,1.0,6.0,6.0,35.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,Low energy lighting in 36% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,2.43,0.0,,natural,"11, Castle Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2011-09-30 17:52:11,owner-occupied,14.0,5.0,200003660283.0,Address Matched +261094544132009040316185346068701,Flat 27 Pevensey Court,St. Peters Street,,ME16 0GQ,4106710668,C,C,73,77,Flat,Semi-Detached,2009-04-03,E07000110,E14000804,Kent,2009-04-03,rental (social),67,71,288,258.0,2.5,43,2.2,42.0,33.0,216.0,176.0,119.0,119.0,57.42,dual,N,3rd,Y,4.0,2402.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,71.0,0.0,"Electric immersion, off-peak",Poor,Poor,(other premises below),,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,"Pitched, 150 mm loft insulation",Good,Good,Electric storage heaters,Poor,Very Poor,Automatic charge control,Average,Average,Low energy lighting in 71% of fixed outlets,Very Good,Very Good,electricity - this is for backwards compatibility only and should not be used,0.0,unheated corridor,3.0,2.4,0.0,N,natural,"Flat 27 Pevensey Court, St. Peters Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2009-04-03 16:18:53,rental (social),,,10022893624.0,Address Matched +1346856289342015072423382033752978,"709, Tonbridge Road",,,ME16 9DQ,9369287378,D,C,64,78,House,Semi-Detached,2015-07-23,E07000110,E14000804,Kent,2015-07-24,marketed sale,58,74,240,135.0,3.8,42,2.2,65.0,65.0,706.0,618.0,110.0,73.0,91.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,6.0,6.0,83.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 83% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"709, Tonbridge Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2015-07-24 23:38:20,owner-occupied,,,200003664558.0,Address Matched +1156157839742015110712484923450438,Barnjet Priory,Tonbridge Road,Barming,ME16 9NJ,1750734278,C,B,74,82,Bungalow,Detached,2015-11-07,E07000110,E14000804,Kent,2015-11-07,none of the above,70,78,137,98.0,10.0,22,7.0,206.0,151.0,2061.0,2071.0,130.0,130.0,454.0,Unknown,Y,NODATA!,,,2106.0,100.0,triple glazing,Normal,2.0,11.0,11.0,64.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully triple glazed,Good,Good,"Solid brick, with internal insulation",Good,Good,"Room heaters, wood logs",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 64% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"Barnjet Priory, Tonbridge Road, Barming",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2015-11-07 12:48:49,owner-occupied,,,200003662910.0,Address Matched +1422993229902016051217020846369528,31 Hubert Walter Drive,,,ME16 0BE,6914223478,B,B,87,87,Flat,NO DATA!,2016-05-12,E07000110,E14000804,Kent,2016-05-12,new dwelling,91,91,57,57.0,0.8,10,0.8,55.0,55.0,155.0,155.0,89.0,89.0,76.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.20 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.12 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,31 Hubert Walter Drive,Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2016-05-12 17:02:08,unknown,5.0,5.0,10091196028.0,Address Matched +64890807832018031009223639968303,"253b, Boxley Road",Penenden Heath,,ME14 2AS,349364468,D,C,57,77,Bungalow,Detached,2018-03-10,E07000110,E14000804,Kent,2018-03-10,marketed sale,51,74,267,130.0,5.8,47,2.8,84.0,84.0,1006.0,760.0,192.0,75.0,123.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,6.0,6.0,89.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 89% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"253b, Boxley Road, Penenden Heath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1976-1982,2018-03-10 09:22:36,owner-occupied,,,200003704461.0,Address Matched +1710244609062019040206295973398131,"481, Loose Road",,,ME15 9UJ,3760073678,D,C,65,80,House,Detached,2019-04-01,E07000110,E14000804,Kent,2019-04-02,marketed sale,57,75,231,125.0,5.7,41,3.1,85.0,85.0,959.0,724.0,136.0,82.0,141.0,Unknown,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,7.0,7.0,100.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"481, Loose Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2019-04-02 06:29:59,owner-occupied,,,200003680292.0,Address Matched +1121008654432014040622044574078905,"71, Church Street",Boughton Monchelsea,,ME17 4HN,5504981278,D,B,58,84,House,Detached,2014-04-02,E07000110,E14000700,Kent,2014-04-06,marketed sale,52,81,231,79.0,6.2,45,2.2,140.0,70.0,1034.0,674.0,188.0,82.0,139.0,Unknown,Y,NODATA!,,,2107.0,100.0,"double glazing, unknown install date",Normal,0.0,7.0,7.0,0.0,0.0,From main system,Average,Average,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"71, Church Street, Boughton Monchelsea",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2014-04-06 22:04:45,owner-occupied,38.0,0.0,200003674191.0,Address Matched +967857319852015021116121890950017,Flat 5 Park View Court,School Lane,,ME15 8DX,704901178,D,C,62,72,Flat,End-Terrace,2015-02-11,E07000110,E14000700,Kent,2015-02-11,ECO assessment,61,75,312,205.0,2.6,55,1.7,38.0,38.0,540.0,353.0,80.0,81.0,47.0,Single,Y,Ground,N,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,2.0,83.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,Portable electric heaters (assumed),,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 83% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,4.99,,,N,natural,"Flat 5 Park View Court, School Lane",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2015-02-11 16:12:18,owner-occupied,,,200003687101.0,Address Matched +907215374732013040614343955078404,"5, Lushington Road",,,ME14 2QS,7405476078,D,B,63,84,House,Mid-Terrace,2013-04-04,E07000110,E14000804,Kent,2013-04-06,none of the above,92,105,215,69.0,0.7,10,-0.5,47.0,47.0,608.0,455.0,61.0,35.0,69.0,Single,Y,NODATA!,,,2101.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,83.0,0.0,Gas instantaneous at point of use,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, wood logs",Average,Very Good,No time or thermostatic control of room temperature,Very Poor,Very Poor,Low energy lighting in 83% of fixed outlets,Very Good,Very Good,wood logs,0.0,NO DATA!,,,0.0,,natural,"5, Lushington Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2013-04-06 14:34:39,owner-occupied,12.0,10.0,200003670953.0,Address Matched +856630399922012111423560623348242,"53, Grecian Street",,,ME14 2TT,4298913078,E,B,43,81,House,Mid-Terrace,2012-11-14,E07000110,E14000804,Kent,2012-11-14,marketed sale,41,80,401,105.0,4.6,78,1.3,66.0,35.0,760.0,452.0,127.0,63.0,59.0,Single,Y,NODATA!,,,2106.0,0.0,single glazing,Normal,1.0,4.0,4.0,12.0,1.0,From main system,Average,Average,"Suspended, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Granite or whinstone, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 12% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"53, Grecian Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2012-11-14 23:56:06,unknown,8.0,1.0,200003703302.0,Address Matched +389944520132009102912270465268791,"33, Dixon Close",,,ME15 6SS,2145729668,C,C,73,78,House,Mid-Terrace,2009-10-29,E07000110,E14000804,Kent,2009-10-29,marketed sale,71,76,223,185.0,2.4,37,2.0,66.0,33.0,345.0,301.0,109.0,109.0,65.8,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,,0.0,N,natural,"33, Dixon Close",Maidstone,Maidstone and The Weald,MAIDSTONE,,2009-10-29 12:27:04,owner-occupied,,,200003664889.0,Address Matched +1140668649962017062307252953838263,Copes Bungalow Copes Farm,The Street,Frinsted,ME9 0TF,6547423278,E,A,46,101,Bungalow,Detached,2017-06-17,E07000110,E14000700,Kent,2017-06-23,rental (private),28,75,486,111.0,8.6,85,2.0,100.0,71.0,1059.0,589.0,310.0,101.0,101.0,dual,N,NODATA!,,,2401.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,58.0,1.0,"Electric immersion, off-peak",Very Poor,Poor,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 270 mm loft insulation",Good,Good,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 58% of fixed outlets,Good,Good,electricity (not community),0.0,NO DATA!,,,,N,natural,"Copes Bungalow Copes Farm, The Street, Frinsted",Maidstone,Faversham and Mid Kent,SITTINGBOURNE,England and Wales: 1950-1966,2017-06-23 07:25:29,rental (private),,,10014310252.0,Address Matched +1082107349762014020113071029898344,"2, School Lane",,,ME15 8DU,4289419178,D,B,57,81,House,Semi-Detached,2014-01-31,E07000110,E14000700,Kent,2014-02-01,marketed sale,54,80,262,100.0,4.1,50,1.6,98.0,49.0,752.0,531.0,91.0,66.0,81.0,Unknown,Y,NODATA!,,,2104.0,90.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Mostly double glazing,Average,Average,"Granite or whinstone, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"2, School Lane",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2014-02-01 13:07:10,owner-occupied,10.0,0.0,200003685703.0,Address Matched +248996570922009031416083259248101,"6, Jasmine Court",,,ME16 8BZ,523719568,B,B,82,83,Flat,Detached,2009-03-14,E07000110,E14000804,Kent,2009-03-14,rental (private),82,83,143,135.0,1.4,23,1.3,54.0,31.0,212.0,216.0,74.0,74.0,59.24,Single,Y,Ground,N,2.0,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,26.0,0.0,From main system,Very Good,Very Good,"Suspended, insulated (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,(another dwelling above),,,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 26% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.38,0.0,N,natural,"6, Jasmine Court",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2009-03-14 16:08:32,rental (private),,,10014306559.0,Address Matched +451223145252010030914314095000376,"13, The Maltings",Weavering,,ME14 5UF,3661553768,D,D,58,67,House,Detached,2010-03-09,E07000110,E14000700,Kent,2010-03-09,marketed sale,52,61,281,221.0,7.4,47,5.9,157.0,84.0,1017.0,842.0,193.0,162.0,158.8,Single,Y,NO DATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,7.0,7.0,13.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 13% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.36,0.0,N,natural,"13, The Maltings, Weavering",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2010-03-09 14:31:40,owner-occupied,,,200003689636.0,Address Matched +1729553399212019061709061290210563,Flat 22 The Pavilion,"17-21, Pudding Lane",,ME14 1PA,5384905678,C,C,69,69,Flat,Detached,2019-02-21,E07000110,E14000804,Kent,2019-06-17,marketed sale,72,72,205,205.0,1.7,35,1.7,46.0,46.0,334.0,334.0,166.0,166.0,48.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,Electric instantaneous at point of use,Very Poor,Very Poor,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,"Room heaters, electric",Very Poor,Poor,Programmer and appliance thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"Flat 22 The Pavilion, 17-21, Pudding Lane",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2019-06-17 09:06:12,owner-occupied,8.0,8.0,10094441555.0,Address Matched +590335969142011020916041185390918,"37, Mynn Crescent",Bearsted,,ME14 4AR,1127963868,C,C,71,71,House,Semi-Detached,2011-02-09,E07000110,E14000700,Kent,2011-02-09,marketed sale,70,70,195,192.0,3.3,32,3.3,80.0,57.0,558.0,563.0,130.0,130.0,51.82,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,6.0,6.0,60.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, 250 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 60% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.3,0.0,N,natural,"37, Mynn Crescent, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2011-02-09 16:04:11,owner-occupied,,,200003693504.0,Address Matched +1680773769922019021413453991148101,1 Rubens Court,Coxheath,,ME17 4GN,968651678,B,A,84,95,House,Semi-Detached,2019-02-14,E07000110,E14000804,Kent,2019-02-14,new dwelling,86,96,87,11.0,1.4,15,0.2,68.0,68.0,232.0,232.0,75.0,44.0,91.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.10 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"1 Rubens Court, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2019-02-14 13:45:39,unknown,20.0,20.0,10094440240.0,Address Matched +1359510269802016060710231535860378,"2a, Ringwood Road",,,ME15 7EG,9897968378,E,B,44,82,House,Detached,2016-06-03,E07000110,E14000700,Kent,2016-06-07,ECO assessment,36,78,378,103.0,9.4,68,2.6,148.0,74.0,1289.0,698.0,582.0,81.0,138.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,1.0,6.0,6.0,0.0,0.0,"From main system, no cylinder thermostat",Very Poor,Very Poor,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, partial insulation (assumed)",Average,Average,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 270 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,2.44,,N,natural,"2a, Ringwood Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1976-1982,2016-06-07 10:23:15,owner-occupied,,,200003716086.0,Address Matched +899018919142013031509262605679378,"107, Calder Road",,,ME14 2RA,4176616078,D,B,67,86,House,Mid-Terrace,2013-03-13,E07000110,E14000804,Kent,2013-03-15,rental (private),67,87,199,62.0,2.7,38,0.9,59.0,41.0,464.0,374.0,93.0,57.0,70.0,Unknown,Y,NODATA!,,,2107.0,100.0,double glazing installed before 2002,Normal,1.0,4.0,1.0,56.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 56% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"107, Calder Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2013-03-15 09:26:26,rental (private),9.0,5.0,200003671070.0,Address Matched +1493695329042016110306525848860128,"15, Lyngs Close",Yalding,,ME18 6JS,2045228478,D,B,55,85,House,Semi-Detached,2016-11-02,E07000110,E14000804,Kent,2016-11-03,marketed sale,51,86,341,84.0,3.8,60,1.0,88.0,44.0,724.0,419.0,91.0,62.0,63.0,Single,Y,NODATA!,,,2601.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,1.0,0.0,0.0,Gas multipoint,Average,Average,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, 100 mm loft insulation",Average,Average,"Room heaters, mains gas",Average,Average,No thermostatic control of room temperature,Poor,Poor,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,2.35,,N,natural,"15, Lyngs Close, Yalding",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2016-11-03 06:52:58,owner-occupied,,,200003660269.0,Address Matched +1445041879922016051820021184488396,"20, Lombardy Drive",,,ME14 5TA,9859774478,D,B,63,84,House,Detached,2016-05-18,E07000110,E14000804,Kent,2016-05-18,marketed sale,55,80,236,95.0,5.6,42,2.3,75.0,75.0,970.0,635.0,209.0,80.0,135.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,2.0,8.0,8.0,100.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,2.32,,N,natural,"20, Lombardy Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2016-05-18 20:02:11,owner-occupied,,,200003673016.0,Address Matched +577151759702011010417081087290048,"17, Buckland Gardens",,,ME16 0ZB,6743852868,B,B,88,89,Flat,NO DATA!,2011-01-04,E07000110,E14000804,Kent,2011-01-04,new dwelling,88,88,94,89.0,1.1,15,1.0,57.0,38.0,207.0,209.0,92.0,92.0,72.81,standard tariff,,top floor,,,,,NO DATA!,NO DATA!,,,,7.0,,From main system,Very Good,Very Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.07 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.85,,,NO DATA!,"17, Buckland Gardens",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2011-01-04 17:08:10,,14.0,7.0,10014308673.0,Address Matched +97d90c82d2132e6ea04e90a68fe4c715545d656502ffc284a880f1760b2a614b,5 Rayleigh Close,Allington,,ME16 0UP,10001587868,D,C,67,78,House,End-Terrace,2021-08-16,E07000110,E14000804,Kent,2021-08-16,marketed sale,64,76,195,118.0,3.7,34,2.3,102.0,102.0,689.0,651.0,120.0,79.0,109.0,Single,Y,,,,,100.0,"double glazing, unknown install date",Normal,1.0,5.0,4.0,83.0,0.0,From main system,Good,Good,"Solid, limited insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,Portable electric heaters (assumed),,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 83% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.36,0.0,N,natural,"5 Rayleigh Close, Allington",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2021-08-16 15:06:59,Owner-occupied,24.0,,200003660565.0,Energy Assessor +1319878499802015051115101436550188,Glencoe,Grigg Lane,Headcorn,TN27 9TD,6878195378,F,C,33,74,Bungalow,Detached,2015-05-08,E07000110,E14000700,Kent,2015-05-11,marketed sale,30,68,303,100.0,10.0,75,3.8,147.0,74.0,1766.0,829.0,247.0,103.0,139.0,Single,N,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,0.0,0.0,From main system,Poor,Poor,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, oil",Poor,Average,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,oil (not community),0.0,NO DATA!,,,,N,natural,"Glencoe, Grigg Lane, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,England and Wales: 1967-1975,2015-05-11 15:10:14,owner-occupied,,,200003701054.0,Address Matched +1072798649542014012113421312842408,Ingoldsby,Lower Road,East Farleigh,ME15 0JL,8525848178,G,C,1,74,House,Semi-Detached,2014-01-20,E07000110,E14000804,Kent,2014-01-21,marketed sale,19,48,638,301.0,9.7,113,4.6,96.0,57.0,2661.0,673.0,267.0,89.0,86.0,dual,N,NODATA!,,,2699.0,40.0,"double glazing, unknown install date",Normal,2.0,4.0,0.0,30.0,0.0,"Electric immersion, off-peak",Very Poor,Very Poor,"Solid, no insulation (assumed)",,,Partial double glazing,Poor,Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,No system present: electric heaters assumed,Very Poor,Very Poor,,Very Poor,Very Poor,Low energy lighting in 30% of fixed outlets,Average,Average,To be used only when there is no heating/hot-water system,0.0,NO DATA!,,,0.0,,natural,"Ingoldsby, Lower Road, East Farleigh",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2014-01-21 13:42:13,owner-occupied,10.0,3.0,200003724758.0,Address Matched +821676201912012080710265897020802,"417, Willington Street",,,ME15 8HD,8232170078,D,B,63,87,House,Semi-Detached,2012-08-07,E07000110,E14000700,Kent,2012-08-07,marketed sale,61,88,221,53.0,3.4,42,0.9,91.0,45.0,484.0,351.0,167.0,68.0,81.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,0.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"417, Willington Street",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2012-08-07 10:26:58,owner-occupied,8.0,0.0,200003680544.0,Address Matched +596660429242011092300015380492878,"24, Beaumont Road",,,ME16 8NQ,2283024868,C,C,69,70,House,End-Terrace,2011-09-23,E07000110,E14000804,Kent,2011-09-23,rental (social),70,71,198,193.0,2.5,38,2.4,54.0,36.0,421.0,424.0,80.0,80.0,64.69,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,4.0,4.0,50.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,2.44,0.0,,natural,"24, Beaumont Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2011-09-23 00:01:53,rental (social),8.0,4.0,200003674444.0,Address Matched +97dc7f54aebc3a9655577f6f07a15b2d9911e2d0ce724f79e36656035ccbee61,15 Broadclough Way,Maidstone,,ME17 3UX,10001394024,B,A,84,94,House,Detached,2021-08-19,E07000110,E14000700,Kent,2021-08-19,new dwelling,85,95,88,18.0,1.5,15,0.3,77.0,77.0,257.0,257.0,73.0,45.0,99.0,standard tariff,,,N,,,100.0,,,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.12 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.28 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.12 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.535,,,,"15 Broadclough Way, Maidstone",Maidstone,Faversham and Mid Kent,KENT,2021,2021-08-19 10:34:26,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,10.0,,10095449051.0,Address Matched +1058056859022013120921184897668587,Sutton Place,Sutton Road,,ME15 9DU,8941547178,E,D,39,64,House,Detached,2013-12-06,E07000110,E14000700,Kent,2013-12-09,assessment for green deal,38,60,293,168.0,14.0,56,8.3,184.0,105.0,2773.0,1772.0,181.0,181.0,259.0,dual,Y,NODATA!,,,2504.0,100.0,double glazing installed before 2002,Normal,1.0,8.0,8.0,24.0,0.0,"From main system, no cylinder thermostat",Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,"Pitched, 50 mm loft insulation",Poor,Poor,"Warm air, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 24% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"Sutton Place, Sutton Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2013-12-09 21:18:48,owner-occupied,17.0,4.0,200003681209.0,Address Matched +200576257352008120611535901089054,Pendine,Chart Road,Sutton Valence,ME17 3AW,423715568,D,C,67,74,House,Detached,2008-12-05,E07000110,E14000700,Kent,2008-12-06,rental (private),63,71,204,160.0,6.9,34,5.4,180.0,97.0,718.0,608.0,174.0,138.0,202.29,Single,Y,NO DATA!,,,2105.0,100.0,double glazing installed before 2002,Normal,1.0,8.0,8.0,15.0,1.0,From main system,Good,Good,"Solid, limited insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and at least two room thermostats,Average,Average,Low energy lighting in 15% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.41,0.0,N,natural,"Pendine, Chart Road, Sutton Valence",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1996-2002,2008-12-06 11:53:59,rental (private),,,200003694409.0,Address Matched +97e1ee20c39df0e6703e870fd556bc0c890c25af49cba7f9f133c32d43a62cea,66 Gilbert Way,,,ME17 3TT,10001530591,B,A,83,97,House,Mid-Terrace,2021-09-06,E07000110,E14000700,Kent,2021-09-06,new dwelling,87,101,92,-21.0,1.0,16,-0.2,55.0,55.0,182.0,182.0,61.0,37.0,60.0,standard tariff,,,N,,,100.0,,,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.33,,,,66 Gilbert Way,Maidstone,Faversham and Mid Kent,MAIDSTONE,2017,2021-09-06 12:46:43,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,7.0,,10094441904.0,Energy Assessor +1783177690252020020715572320000561,"9, Wickings Close",Staplehurst,,TN12 0FR,5147009678,B,A,84,96,House,End-Terrace,2020-02-07,E07000110,E14000804,Kent,2020-02-07,new dwelling,87,98,82,-1.0,1.2,14,0.0,73.0,73.0,202.0,202.0,73.0,44.0,82.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.28 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.12 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"9, Wickings Close, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,NO DATA!,2020-02-07 15:57:23,unknown,9.0,9.0,10093304214.0,Address Matched +1740542448132019080621405574078002,55b Tonbridge Road,,,ME16 8SA,4224095678,D,C,63,70,Maisonette,Semi-Detached,2019-08-01,E07000110,E14000804,Kent,2019-08-06,rental (social),57,66,243,193.0,4.3,43,3.4,114.0,86.0,747.0,600.0,91.0,91.0,101.0,dual,Y,1st,Y,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,6.0,6.0,67.0,0.0,From main system,Good,Good,(another dwelling below),NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 67% of fixed outlets,Good,Good,mains gas (not community),0.0,no corridor,,,,N,natural,55b Tonbridge Road,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2019-08-06 21:40:55,rental (social),,,10014308928.0,Address Matched +203761010902009010620405555610968,"1, Bargrove Road",,,ME14 5RY,8979016568,F,F,21,24,House,End-Terrace,2009-01-06,E07000110,E14000804,Kent,2009-01-06,marketed sale,43,45,518,496.0,4.7,79,4.5,53.0,27.0,865.0,847.0,230.0,230.0,59.86,Single,Y,NO DATA!,,,2601.0,,INVALID!,Normal,0.0,3.0,3.0,0.0,0.0,"Electric immersion, standard tariff",Very Poor,Poor,"Solid, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Timber frame, as built, partial insulation (assumed)",Average,Average,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Room heaters, electric",Very Poor,Poor,No thermostatic control of room temperature,Poor,Poor,No low energy lighting,Very Poor,Very Poor,electricity - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.38,0.0,N,natural,"1, Bargrove Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2009-01-06 20:40:55,owner-occupied,,,200003672566.0,Address Matched +549724559202012022117024088022698,"1, Kingfisher Meadow",,,ME16 8RB,255550868,C,B,74,85,Flat,Mid-Terrace,2012-02-21,E07000110,E14000804,Kent,2012-02-21,rental (private),76,75,179,189.0,1.8,32,1.9,36.0,39.0,187.0,122.0,214.0,104.0,56.06,Single,N,1st,N,,2603.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,"Electric immersion, standard tariff",Very Poor,Very Poor,"To unheated space, insulated (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,(another dwelling above),,,"Room heaters, electric",Very Poor,Very Poor,Programmer and appliance thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,heated corridor,,2.31,0.0,,natural,"1, Kingfisher Meadow",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2012-02-21 17:02:40,rental (private),6.0,6.0,10022892212.0,Address Matched +1524341121352017030320235494030356,"17, Captains Close",Sutton Valence,,ME17 3BA,3644140578,D,C,64,76,House,End-Terrace,2017-03-03,E07000110,E14000700,Kent,2017-03-03,marketed sale,58,70,246,167.0,4.6,43,3.2,66.0,66.0,837.0,789.0,111.0,74.0,106.0,Unknown,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"17, Captains Close, Sutton Valence",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2017-03-03 20:23:54,owner-occupied,,,200003696242.0,Address Matched +409795847152009120816050906019470,"10, Harling Close",Boughton Monchelsea,,ME17 4UX,4073760768,C,C,73,79,House,Detached,2009-12-08,E07000110,E14000700,Kent,2009-12-08,marketed sale,70,76,192,149.0,3.5,32,2.7,97.0,58.0,421.0,379.0,177.0,122.0,109.2,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,6.0,6.0,33.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 33% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.27,0.0,N,natural,"10, Harling Close, Boughton Monchelsea",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2003-2006,2009-12-08 16:05:09,owner-occupied,,,10022892703.0,Address Matched +1484502397252016100409495095069541,"18, Faraday Road",Penenden Heath,,ME14 2DB,5138757478,D,C,65,74,House,Detached,2016-10-04,E07000110,E14000804,Kent,2016-10-04,marketed sale,57,66,225,168.0,5.6,40,4.2,78.0,78.0,1044.0,970.0,114.0,115.0,141.0,Single,Y,NODATA!,,,2106.0,95.0,"double glazing, unknown install date",Normal,1.0,7.0,7.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Mostly double glazing,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,2.4,,N,natural,"18, Faraday Road, Penenden Heath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2016-10-04 09:49:50,owner-occupied,,,200003706291.0,Address Matched +368495040222009092311214487228291,Flat 4 The Square,"4, Square Hill Road",,ME15 7TL,9866477668,D,D,66,67,Flat,Semi-Detached,2009-09-22,E07000110,E14000804,Kent,2009-09-23,new dwelling,73,73,210,206.0,2.6,32,2.5,70.0,47.0,373.0,382.0,149.0,149.0,81.0,off-peak 7 hour,,mid floor,,,,,NO DATA!,NO DATA!,,,,,,From main system,Poor,Poor,(other premises below),,,Fully double glazed,Good,Good,Average thermal transmittance 0.23 W/m?K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, electric",Very Poor,Poor,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 50% of fixed outlets,Good,Good,"Electricity: electricity, unspecified tariff",0.0,NO DATA!,,2.8,,,NO DATA!,"Flat 4 The Square, 4, Square Hill Road",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2009-09-23 11:21:44,,,,10014308785.0,Address Matched +596573019902014080709194287440438,"23, Brishing Lane",,,ME15 9EZ,979914868,C,C,73,76,Flat,Semi-Detached,2014-08-07,E07000110,E14000700,Kent,2014-08-07,rental (social),77,80,178,151.0,1.4,34,1.2,29.0,29.0,307.0,262.0,83.0,84.0,42.0,Single,Y,Ground,N,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"System built, with external insulation",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,6.0,,0.0,,natural,"23, Brishing Lane",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2014-08-07 09:19:42,rental (social),6.0,6.0,200003681489.0,Address Matched +329904913512009072011134000210865,"83, King Edward Road",,,ME15 6PW,8588305668,D,C,64,71,House,Mid-Terrace,2009-07-20,E07000110,E14000804,Kent,2009-07-20,rental (private),58,67,275,221.0,4.3,46,3.4,70.0,47.0,625.0,522.0,114.0,99.0,93.24,Single,Y,NO DATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,50.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Poor,Poor,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,0.0,N,natural,"83, King Edward Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2009-07-20 11:13:40,rental (private),,,200003665728.0,Address Matched +797343899062012060514075308558352,"33, Strachan Close",,,ME15 6ZT,5064998968,B,B,89,89,House,Semi-Detached,2012-06-05,E07000110,E14000804,Kent,2012-06-05,new dwelling,92,92,47,47.0,0.7,9,0.7,42.0,42.0,214.0,214.0,91.0,91.0,75.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,14.0,,From main system,Good,Good,Average thermal transmittance 0.20 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.19 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.12 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.39,,,NO DATA!,"33, Strachan Close",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2012-06-05 14:07:53,,14.0,14.0,10014313117.0,Address Matched +520421349602018101019182873889008,5 Crisfield Cottages,The Green,Bearsted,ME14 4DY,7611348768,D,B,57,86,House,End-Terrace,2018-10-10,E07000110,E14000700,Kent,2018-10-10,rental (private),54,87,340,71.0,3.1,60,0.7,40.0,40.0,615.0,366.0,92.0,53.0,53.0,Single,Y,NODATA!,,,2102.0,86.0,double glazing installed before 2002,Normal,3.0,3.0,3.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Mostly double glazing,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, electric",,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"5 Crisfield Cottages, The Green, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2018-10-10 19:18:28,rental (private),,,200003729857.0,Address Matched +1008333629962014121114344033798374,14 Little Court,Lower Fant Road,,ME16 8DL,7321293178,D,B,57,85,House,End-Terrace,2014-12-11,E07000110,E14000804,Kent,2014-12-11,marketed sale,50,83,317,87.0,4.1,56,1.2,95.0,47.0,643.0,427.0,185.0,68.0,74.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,0.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, partial insulation (assumed)",Average,Average,,,,"Pitched, limited insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"14 Little Court, Lower Fant Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1976-1982,2014-12-11 14:34:40,owner-occupied,,,200003656325.0,Address Matched +556355199102010111113102587009298,"15a, Otteridge Road",Bearsted,,ME14 4JR,3156990868,B,B,82,82,Bungalow,Detached,2010-11-11,E07000110,E14000700,Kent,2010-11-11,new dwelling,83,83,124,124.0,1.8,19,1.8,55.0,55.0,314.0,314.0,112.0,112.0,98.65,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,,From main system,Very Good,Very Good,Average thermal transmittance 0.19 W/m?K,Very Good,Very Good,Fully double glazed,Very Good,Very Good,Average thermal transmittance 0.27 W/m?K,Very Good,Very Good,"Room heaters, wood logs",,,Average thermal transmittance 0.15 W/m?K,Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.23,,,NO DATA!,"15a, Otteridge Road, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2010-11-11 13:10:25,,,,10014309374.0,Address Matched +596692329702011112122230186492798,"79, Wallis Avenue",,,ME15 9HS,2793124868,C,C,73,74,Flat,Semi-Detached,2011-11-21,E07000110,E14000700,Kent,2011-11-21,rental (social),75,76,171,167.0,1.9,33,1.9,44.0,33.0,337.0,339.0,78.0,78.0,58.74,Single,Y,Ground,N,,2106.0,100.0,double glazing installed before 2002,More Than Typical,0.0,3.0,3.0,67.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 67% of fixed outlets,Good,Good,mains gas (not community),0.0,no corridor,,2.28,0.0,,natural,"79, Wallis Avenue",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2011-11-21 22:23:01,rental (social),6.0,4.0,200003682282.0,Address Matched +1147119961352014052711235797240425,"593, Tonbridge Road",,,ME16 9DG,4556173278,D,B,63,85,House,Semi-Detached,2014-05-27,E07000110,E14000804,Kent,2014-05-27,marketed sale,59,85,214,66.0,4.3,41,1.4,106.0,59.0,625.0,459.0,260.0,84.0,105.0,Single,Y,NODATA!,,,2106.0,,not defined,Much More Than Typical,1.0,5.0,5.0,22.0,0.0,"From main system, no cylinder thermostat",Average,Average,"Suspended, no insulation (assumed)",,,Mostly multiple glazing,Very Poor,Very Poor,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 22% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"593, Tonbridge Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2014-05-27 11:23:57,owner-occupied,9.0,2.0,200003680324.0,Address Matched +687955281052013102308580898279898,"189, Sutton Road",,,ME15 9AB,8838180968,C,B,70,83,House,Detached,2013-10-23,E07000110,E14000700,Kent,2013-10-23,marketed sale,68,82,164,84.0,3.4,32,1.8,58.0,58.0,610.0,500.0,98.0,98.0,106.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,6.0,6.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"189, Sutton Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2013-10-23 08:58:08,owner-occupied,10.0,10.0,200003713394.0,Address Matched +629781779802011051611571182699968,"88, Melrose Close",,,ME15 6ZE,6813076868,C,C,79,79,House,End-Terrace,2011-05-16,E07000110,E14000804,Kent,2011-05-16,new dwelling,81,81,109,107.0,2.1,21,2.0,70.0,56.0,310.0,313.0,118.0,118.0,100.74,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,6.0,,From main system,Good,Good,Average thermal transmittance 0.20 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.21 W/m?K,Very Good,Very Good,"Room heaters, electric",,,Average thermal transmittance 0.11 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.3,,,NO DATA!,"88, Melrose Close",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2011-05-16 11:57:11,,8.0,6.0,10014307071.0,Address Matched +877148913112018041314391996980905,"35, Station Road",Headcorn,,TN27 9SB,9552364078,F,C,21,70,House,Semi-Detached,2018-04-12,E07000110,E14000700,Kent,2018-04-13,marketed sale,25,44,555,332.0,9.1,94,5.4,90.0,96.0,2051.0,888.0,292.0,103.0,97.0,dual,N,NODATA!,,,2603.0,99.0,double glazing installed before 2002,Normal,1.0,5.0,5.0,64.0,0.0,"Electric immersion, off-peak",Poor,Poor,"Suspended, no insulation (assumed)",NO DATA!,,Mostly double glazing,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, electric",Very Poor,Poor,Programmer and appliance thermostats,Good,Good,Low energy lighting in 64% of fixed outlets,Good,Good,electricity (not community),0.0,NO DATA!,,,,N,natural,"35, Station Road, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,England and Wales: before 1900,2018-04-13 14:39:19,owner-occupied,,,200003698820.0,Address Matched +1798027889922020051417173610708181,"2, Clare Place",,,ME15 9ZF,8170800778,B,B,81,83,House,End-Terrace,2019-12-10,E07000110,E14000700,Kent,2020-05-14,rental (social),80,82,110,97.0,2.2,20,1.9,68.0,68.0,449.0,450.0,121.0,73.0,110.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,7.0,7.0,100.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Very Good,Very Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"2, Clare Place",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2007 onwards,2020-05-14 17:17:36,rental (social),,,10014311502.0,Address Matched +291765485132009060212111357268705,74 Sunningdale Court,Square Hill Road,,ME15 7TU,8547732668,D,C,59,71,Flat,Semi-Detached,2009-05-26,E07000110,E14000804,Kent,2009-06-02,rental (social),52,67,352,243.0,4.2,59,2.9,47.0,35.0,554.0,396.0,141.0,114.0,71.72,Unknown,Y,12th,Y,13.0,2107.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,66.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Flat, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Poor,Poor,Low energy lighting in 66% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,unheated corridor,6.2,2.3,0.0,N,natural,"74 Sunningdale Court, Square Hill Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2009-06-02 12:11:13,rental (social),,,200003696644.0,Address Matched +1502799899022016120717021938238106,"9, Filbert Way",,,ME15 8WT,347988478,B,A,83,92,House,Detached,2016-12-07,E07000110,E14000700,Kent,2016-12-07,new dwelling,83,92,91,35.0,2.1,16,0.8,73.0,73.0,358.0,359.0,109.0,59.0,131.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.19 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.28 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.16 W/m-¦K,Good,Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"9, Filbert Way",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2016-12-07 17:02:19,unknown,10.0,10.0,10091194511.0,Address Matched +1023171709922014121718421655138404,"29, Cudham Close",,,ME14 5QG,537005178,D,C,65,80,House,Semi-Detached,2014-12-17,E07000110,E14000804,Kent,2014-12-17,FiT application,63,81,233,109.0,2.9,41,1.4,58.0,45.0,583.0,399.0,275.0,141.0,70.0,Single,Y,NODATA!,,,2504.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,71.0,0.0,"Electric immersion, standard tariff",Very Poor,Poor,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Warm air, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 71% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"29, Cudham Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2014-12-17 18:42:16,owner-occupied,,,200003671533.0,Address Matched +1770607009502019120513264760810448,5 Hertsfield Farm Cottages,Staplehurst Road,Marden,TN12 9BN,6566808678,D,A,65,103,House,Semi-Detached,2019-12-04,E07000110,E14000804,Kent,2019-12-05,rental (private),61,98,226,-29.0,3.5,41,-0.2,71.0,71.0,594.0,486.0,111.0,67.0,84.0,Single,Y,NODATA!,,,2107.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,89.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Average,Average,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 89% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"5 Hertsfield Farm Cottages, Staplehurst Road, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1950-1966,2019-12-05 13:26:47,rental (private),,,200003726663.0,Address Matched +1772131092222020082409542868848570,"3, Broad Drive",Boughton Monchelsea,,ME17 4SW,7636918678,B,A,84,96,House,Semi-Detached,2020-08-24,E07000110,E14000804,Kent,2020-08-24,new dwelling,87,99,83,-7.0,1.1,15,-0.1,65.0,65.0,196.0,196.0,73.0,44.0,77.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.20 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"3, Broad Drive, Boughton Monchelsea",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2020-08-24 09:54:28,unknown,14.0,14.0,10094442580.0,Address Matched +1140395825432014051608260242978809,1 Fern Lea Villas,Goudhurst Road,Marden,TN12 9JG,2972823278,D,C,56,79,House,Semi-Detached,2014-05-15,E07000110,E14000804,Kent,2014-05-16,marketed sale,55,79,233,102.0,6.6,40,2.8,160.0,84.0,1342.0,901.0,135.0,87.0,164.0,dual,Y,NODATA!,,,2104.0,70.0,double glazing installed during or after 2002,Normal,1.0,8.0,8.0,9.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Partial double glazing,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, wood logs",,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 9% of fixed outlets,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"1 Fern Lea Villas, Goudhurst Road, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1900-1929,2014-05-16 08:26:02,owner-occupied,22.0,2.0,200003710005.0,Address Matched +988728ae8296c6647e0b9dfbd9d01369476c4076e242660fe625c51e9a39ad7c,26 WOLFE ROAD,,,ME16 8NX,10001481478,D,C,56,69,House,Semi-Detached,2021-08-04,E07000110,E14000804,Kent,2021-08-04,marketed sale,52,65,295,199.0,4.3,52,2.9,68.0,68.0,856.0,820.0,93.0,64.0,82.0,Single,Y,,,,,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.54,0.0,N,natural,26 WOLFE ROAD,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2021-08-04 15:47:40,Owner-occupied,9.0,,200003674505.0,Energy Assessor +9883762a290f4ca5eb4f21c514a9a852c6c4e9d5fcb2adae3cc65c247789cf06,13 THOMAS PLACE,JAMES WHATMAN WAY,,ME14 1FP,5912358868,B,B,84,84,Flat,Mid-Terrace,2021-07-21,E07000110,E14000804,Kent,2021-07-28,rental,88,88,91,91.0,0.9,16,0.9,68.0,68.0,107.0,107.0,102.0,102.0,55.0,Single,N,03,N,,,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,100.0,0.0,Community scheme,Good,Good,(another dwelling below),,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Very Good,Very Good,,,,(another dwelling above),,,Community scheme,Good,Good,"Flat rate charging, programmer and room thermostat",Poor,Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (community),0.0,unheated corridor,7.07,2.39,0.0,N,natural,"13 THOMAS PLACE, JAMES WHATMAN WAY",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2012 onwards,2021-07-28 08:41:19,Rented (social),6.0,,10014312679.0,Energy Assessor +172211059762018112206321383408068,Flat 168 Scotney Gardens,St. Peters Street,,ME16 0GT,6893553568,B,B,84,84,Flat,Mid-Terrace,2018-10-30,E07000110,E14000804,Kent,2018-11-22,rental (private),75,75,181,181.0,1.7,31,1.7,53.0,53.0,121.0,121.0,154.0,154.0,57.0,Unknown,N,2nd,N,,2401.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,100.0,0.0,"Electric immersion, off-peak",Average,Poor,(another dwelling below),NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,(another dwelling above),,,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,unheated corridor,4.32,,,N,natural,"Flat 168 Scotney Gardens, St. Peters Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2018-11-22 06:32:13,rental (private),,,10022893535.0,Address Matched +1201376759022019040217090427728511,Hill Side House,Westerhill Road,Linton,ME17 4BS,1266557278,E,D,39,59,House,Detached,2019-04-02,E07000110,E14000804,Kent,2019-04-02,marketed sale,54,71,173,92.0,11.0,38,6.5,125.0,125.0,2512.0,2256.0,235.0,145.0,281.0,Single,N,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,10.0,10.0,100.0,0.0,From main system,Poor,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 270 mm loft insulation",Good,Good,"Boiler and radiators, LPG",Poor,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,LPG (not community),0.0,NO DATA!,,,,N,natural,"Hill Side House, Westerhill Road, Linton",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2019-04-02 17:09:04,owner-occupied,,,200003669374.0,Address Matched +246278650702009032313450150912708,Flat A,5 Terrace Road,,ME16 8HU,752459568,G,F,1,25,Flat,Detached,2009-03-20,E07000110,E14000804,Kent,2009-03-23,rental (private),24,19,625,716.0,13.0,94,14.0,104.0,113.0,2513.0,1473.0,371.0,163.0,133.9,Single,N,Ground,N,2.0,2602.0,0.0,INVALID!,Normal,1.0,7.0,7.0,38.0,0.0,"Electric immersion, standard tariff",Very Poor,Poor,"Suspended, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, electric",Very Poor,Poor,Appliance thermostats,Good,Good,Low energy lighting in 38% of fixed outlets,Average,Average,electricity - this is for backwards compatibility only and should not be used,0.0,no corridor,,3.0,0.0,N,natural,"Flat A, 5 Terrace Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2009-03-23 13:45:01,rental (private),,,10094440069.0,Address Matched +1554843945912017062408105395230858,"4, The Spillway",,,ME15 6FE,8802552578,D,B,62,85,House,Semi-Detached,2017-06-23,E07000110,E14000804,Kent,2017-06-24,marketed sale,57,84,291,94.0,3.5,51,1.2,47.0,47.0,556.0,419.0,186.0,69.0,68.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,100.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"4, The Spillway",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2017-06-24 08:10:53,owner-occupied,,,200003716358.0,Address Matched +1665992910112018092517561195280366,"22, River Bank Close",,,ME15 7SE,3600050678,B,B,82,83,Flat,Enclosed Mid-Terrace,2018-09-25,E07000110,E14000804,Kent,2018-09-25,marketed sale,74,75,200,193.0,1.9,34,1.8,91.0,52.0,137.0,146.0,158.0,158.0,56.0,dual,N,3rd,N,,2401.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,25.0,0.0,"Electric immersion, off-peak",Average,Poor,(another dwelling below),NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,(another dwelling above),,,Electric storage heaters,Poor,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 25% of fixed outlets,Average,Average,electricity (not community),0.0,heated corridor,,,,N,natural,"22, River Bank Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2018-09-25 17:56:11,owner-occupied,,,200003725898.0,Address Matched +564074659502010111116501185102058,"3, Nine Oaks Court",Kingswood,,ME17 1LW,7503851868,B,B,84,85,House,Detached,2010-01-25,E07000110,E14000700,Kent,2010-11-11,new dwelling,83,84,98,95.0,2.5,16,2.5,110.0,88.0,400.0,403.0,65.0,65.0,155.4,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,,From main system,Very Good,Very Good,Average thermal transmittance 0.20 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.27 W/m?K,Very Good,Very Good,"Room heaters, mains gas",,,Average thermal transmittance 0.16 W/m?K,Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,,,NO DATA!,"3, Nine Oaks Court, Kingswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2010-11-11 16:50:11,,,,10014311215.0,Address Matched +293279126132009061810425204968707,5 Hughenden Reach,Tovil,,ME15 6ZL,2714752668,B,B,86,87,Flat,NO DATA!,2009-06-18,E07000110,E14000804,Kent,2009-06-18,new dwelling,86,87,115,107.0,1.0,19,0.9,47.0,30.0,120.0,121.0,62.0,62.0,54.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,3.0,,From main system,Very Good,Very Good,(other premises below),,,Fully double glazed,Good,Good,Average thermal transmittance 0.32 W/m?K,Good,Good,,,,Average thermal transmittance 0.00 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 43% fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.26,,,NO DATA!,"5 Hughenden Reach, Tovil",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2009-06-18 10:42:52,,7.0,3.0,10014308468.0,Address Matched +681849139802011092309572691092778,"40, Locks Yard",Headcorn,,TN27 9AD,3833930968,B,B,82,82,Flat,NO DATA!,2011-09-23,E07000110,E14000700,Kent,2011-09-23,new dwelling,86,86,96,96.0,1.1,18,1.1,44.0,44.0,231.0,231.0,78.0,78.0,58.96,standard tariff,,top floor,,,,,NO DATA!,NO DATA!,,,,6.0,,From main system,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.35 W/m?K,Good,Good,"Room heaters, electric",,,Average thermal transmittance 0.11 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in 86% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.39,,,NO DATA!,"40, Locks Yard, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,NO DATA!,2011-09-23 09:57:26,,7.0,6.0,10014312119.0,Address Matched +596541891812015080522004892050084,"5, Willington Green",,,ME15 8AZ,460124868,C,C,71,76,Flat,Mid-Terrace,2015-08-05,E07000110,E14000700,Kent,2015-08-05,rental (social),73,79,243,188.0,1.6,43,1.3,44.0,28.0,313.0,251.0,85.0,86.0,38.0,Single,Y,Ground,N,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,1.0,1.0,40.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 40% of fixed outlets,Average,Average,mains gas (not community),0.0,no corridor,,,,N,natural,"5, Willington Green",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2015-08-05 22:00:48,rental (social),,,200003684547.0,Address Matched +1190556179202014081412311522649248,Flat 1 Bredhurst House,Parsley Way,,ME16 0FW,8248676278,C,C,77,79,Flat,End-Terrace,2014-08-14,E07000110,E14000804,Kent,2014-08-14,rental (private),81,82,121,111.0,1.5,23,1.4,86.0,46.0,273.0,279.0,86.0,86.0,65.0,Unknown,Y,Ground,N,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,14.0,0.0,From main system,Good,Good,"Suspended, insulated (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 14% of fixed outlets,Poor,Poor,mains gas (not community),0.0,unheated corridor,7.74,,0.0,,natural,"Flat 1 Bredhurst House, Parsley Way",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2014-08-14 12:31:15,rental (private),7.0,1.0,10022901785.0,Address Matched +1486384879602016100717594642760438,"32, Broomshaw Road",,,ME16 9HS,5656177478,E,B,52,84,Bungalow,Semi-Detached,2016-10-07,E07000110,E14000804,Kent,2016-10-07,none of the above,45,81,346,96.0,5.1,61,1.5,109.0,56.0,858.0,476.0,187.0,75.0,84.0,Unknown,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,5.0,1.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 25 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 5% of fixed outlets,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,2.43,,N,natural,"32, Broomshaw Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2016-10-07 17:59:46,owner-occupied,,,200003666952.0,Address Matched +1681756242222020072409204821848100,6 Kintons Walk,Yalding,,ME18 6FF,253461678,B,A,85,97,House,Mid-Terrace,2020-07-24,E07000110,E14000804,Kent,2020-07-24,new dwelling,88,100,76,-9.0,1.1,13,-0.1,70.0,70.0,189.0,189.0,77.0,47.0,81.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.22 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"6 Kintons Walk, Yalding",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2020-07-24 09:20:48,unknown,10.0,10.0,10094439992.0,Address Matched +98ce58d9dff80bcb7662ca4bdfd2c4ad78193c615c6bfa354224d56bab42f3f0,"18, CORNFIELD WAY",ALLINGTON,,ME16 9GE,10001426760,B,B,86,88,House,Semi-Detached,2021-09-01,E07000110,E14000804,Kent,2021-09-01,new dwelling,88,90,68,52.0,1.0,12,0.8,68.0,68.0,204.0,205.0,89.0,50.0,83.0,standard tariff,,,N,,,100.0,,,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.18 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.15 W/m-¦K,Good,Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.32,,,,"18, CORNFIELD WAY, ALLINGTON",Maidstone,Maidstone and The Weald,MAIDSTONE,2020,2021-09-01 15:13:09,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,27.0,,10094440327.0,Address Matched +209630849342011020620012654690868,"24, Clock House Rise",Coxheath,,ME17 4GS,7304546568,C,C,79,80,House,End-Terrace,2011-02-06,E07000110,E14000804,Kent,2011-02-06,marketed sale,76,78,145,135.0,2.9,24,2.7,71.0,71.0,427.0,416.0,153.0,131.0,122.0,Unknown,Y,NO DATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,100.0,0.0,"From main system, no cylinder thermostat",Good,Good,"Suspended, insulated (assumed)",,,Fully double glazed,Average,Average,"Timber frame, as built, insulated (assumed)",Good,Good,,,,"Flat, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,0.0,N,natural,"24, Clock House Rise, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2011-02-06 20:01:26,owner-occupied,,,10022900543.0,Address Matched +402540338252009112518125801219074,Flat 4 Deal House,Drawbridge Close,,ME15 7DS,462810768,B,B,83,83,Flat,Enclosed End-Terrace,2009-11-25,E07000110,E14000700,Kent,2009-11-25,rental (social),81,81,174,174.0,1.2,29,1.2,25.0,25.0,217.0,217.0,72.0,72.0,42.1,Single,Y,1st,N,3.0,2104.0,100.0,double glazing installed before 2002,Normal,0.0,2.0,2.0,90.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 90% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,unheated corridor,7.8,2.3,0.0,N,natural,"Flat 4 Deal House, Drawbridge Close",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1996-2002,2009-11-25 18:12:58,rental (social),,,10022896685.0,Address Matched +677430009142011091311404397099228,"89, Madginford Road",Bearsted,,ME15 8ND,8197600968,D,C,63,70,Bungalow,Semi-Detached,2011-09-12,E07000110,E14000700,Kent,2011-09-13,marketed sale,62,71,259,201.0,2.9,50,2.3,57.0,33.0,501.0,405.0,78.0,79.0,52.25,Unknown,Y,NODATA!,,,2107.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,29.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 29% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,2.34,0.0,,natural,"89, Madginford Road, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2011-09-13 11:40:43,owner-occupied,7.0,2.0,200003686286.0,Address Matched +1356511449012015090209435294050833,"89, Melville Road",,,ME15 7UT,8375948378,D,B,55,82,House,Mid-Terrace,2015-09-02,E07000110,E14000804,Kent,2015-09-02,marketed sale,49,79,310,110.0,4.8,57,1.8,120.0,60.0,865.0,545.0,110.0,74.0,84.0,dual,Y,NODATA!,,,2107.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"89, Melville Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2015-09-02 09:43:52,owner-occupied,,,200003695998.0,Address Matched +575120894412010121619004694909686,"75, Florence Road",,,ME16 8EL,6623442868,E,E,42,54,House,End-Terrace,2010-12-16,E07000110,E14000804,Kent,2010-12-16,marketed sale,37,47,455,360.0,7.3,76,5.8,116.0,58.0,1121.0,933.0,136.0,106.0,96.3,dual,Y,NO DATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,6.0,6.0,0.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.6,0.0,N,natural,"75, Florence Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2010-12-16 19:00:46,owner-occupied,,,200003667702.0,Address Matched +1321723905532015052517201208278503,"19, Commodore Road",,,ME14 5PH,308506378,D,B,61,81,House,Semi-Detached,2015-05-22,E07000110,E14000804,Kent,2015-05-25,ECO assessment,53,77,263,117.0,5.0,46,2.2,63.0,63.0,841.0,626.0,194.0,76.0,107.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,1.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"19, Commodore Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2015-05-25 17:20:12,owner-occupied,,,200003671332.0,Address Matched +98e9df256d65f5280fa047ce82e7b78aca0c7c95b95143d8f6c29956deaee5e0,FLAT 4,RAYLEIGH HOUSE,KINGS REACH,ME15 7QR,10001675651,E,C,53,76,Flat,Detached,2021-06-29,E07000110,E14000700,Kent,2021-07-01,ECO assessment,50,78,367,158.0,3.9,64,1.7,114.0,57.0,733.0,330.0,103.0,86.0,61.0,Single,Y,00,N,,,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,0.0,0.0,From main system,Good,Good,(another dwelling below),,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Average,Average,"Room heaters, electric",,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,unheated corridor,6.0,2.75,0.0,N,natural,"FLAT 4, RAYLEIGH HOUSE, KINGS REACH",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2021-07-01 16:30:48,Rented (social),8.0,,200003713941.0,Energy Assessor +1226477649222014102414480679748014,"17, Mercer Drive",Harrietsham,,ME17 1AY,1762439278,D,B,68,82,Bungalow,Detached,2014-10-24,E07000110,E14000700,Kent,2014-10-24,marketed sale,66,81,170,86.0,4.1,33,2.1,125.0,68.0,719.0,612.0,138.0,93.0,124.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,17.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 17% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"17, Mercer Drive, Harrietsham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2014-10-24 14:48:06,owner-occupied,18.0,3.0,200003703879.0,Address Matched +487428780152010051910522791900371,77d Wheeler Street,,,ME14 1UB,3107016768,B,B,85,87,House,Mid-Terrace,2010-05-19,E07000110,E14000804,Kent,2010-05-19,new dwelling,86,87,93,87.0,1.5,15,1.4,84.0,54.0,215.0,218.0,105.0,105.0,101.05,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,,From main system,Very Good,Very Good,Average thermal transmittance 0.19 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.16 W/m?K,Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,Time and temperature zone control,Good,Good,Low energy lighting in 44% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.48,,,NO DATA!,77d Wheeler Street,Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2010-05-19 10:52:27,,,,10014310788.0,Address Matched +1766720199962019111907203997288231,"53, Dixon Close",,,ME15 6SS,3947977678,C,C,69,75,Flat,End-Terrace,2019-11-18,E07000110,E14000804,Kent,2019-11-19,marketed sale,66,75,234,174.0,2.7,41,2.0,52.0,52.0,471.0,346.0,85.0,85.0,64.0,Unknown,Y,1st,Y,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,100.0,0.0,From main system,Good,Good,(another dwelling below),NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,no corridor,,,,N,natural,"53, Dixon Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2019-11-19 07:20:39,owner-occupied,,,200003664901.0,Address Matched +341844480642009081008123868510988,1 Peckham Cottages,Ulcombe Road,Headcorn,TN27 9JX,3654885668,D,D,55,67,House,Semi-Detached,2009-08-08,E07000110,E14000700,Kent,2009-08-10,marketed sale,47,59,257,190.0,7.7,54,5.8,147.0,74.0,860.0,655.0,258.0,201.0,97.33,Single,N,NO DATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,1.0,5.0,4.0,0.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, dual fuel (mineral and wood)",,,"Roof room(s), insulated (assumed)",Good,Good,"Boiler and radiators, oil",Average,Average,Programmer and room thermostat,Poor,Poor,No low energy lighting,Very Poor,Very Poor,oil - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.3,0.0,N,natural,"1 Peckham Cottages, Ulcombe Road, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,England and Wales: before 1900,2009-08-10 08:12:38,owner-occupied,,,200003708673.0,Address Matched +1763673108812019110616474795019367,Flat D,"9, The Paddocks",Lenham,ME17 2FD,3782857678,B,B,82,82,Flat,Detached,2019-11-06,E07000110,E14000700,Kent,2019-11-06,new dwelling,89,89,80,80.0,0.7,14,0.7,42.0,42.0,175.0,175.0,67.0,67.0,49.0,standard tariff,,top floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.19 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.10 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Flat D, 9, The Paddocks, Lenham",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2019-11-06 16:47:47,unknown,6.0,6.0,10093307291.0,Address Matched +404473029302019080717392771010838,Flat 3,"1-5, Pudding Lane",,ME14 1FN,373920768,C,C,69,74,Flat,Mid-Terrace,2019-08-07,E07000110,E14000804,Kent,2019-08-07,rental (social),52,57,334,296.0,3.7,57,3.3,57.0,57.0,493.0,388.0,172.0,172.0,65.0,dual,N,1st,N,,2401.0,100.0,secondary glazing,Normal,0.0,2.0,2.0,100.0,0.0,"Electric immersion, off-peak",Average,Poor,(other premises below),NO DATA!,,Full secondary glazing,Good,Good,"Solid brick, with internal insulation",Very Good,Very Good,Portable electric heaters (assumed),,,(another dwelling above),,,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,unheated corridor,1.0,,,N,natural,"Flat 3, 1-5, Pudding Lane",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2019-08-07 17:39:27,rental (social),,,10014308360.0,Address Matched +1624470349142018041806352852789238,Lillywood,Sittingbourne Road,Detling,ME14 3ES,6172947578,F,B,32,86,House,Detached,2018-04-17,E07000110,E14000700,Kent,2018-04-18,marketed sale,28,75,313,33.0,10.0,82,2.6,151.0,75.0,1069.0,596.0,139.0,68.0,124.0,Unknown,N,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,0.0,0.0,From main system,Average,Average,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, oil",Average,Average,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,oil (not community),0.0,NO DATA!,,,,N,natural,"Lillywood, Sittingbourne Road, Detling",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2018-04-18 06:35:28,owner-occupied,,,10094442452.0,Address Matched +668546769922011082017073629718069,Wrinsted Lodge,Doddington,,ME9 0EA,6260649868,E,D,53,61,Bungalow,Detached,2011-08-19,E07000110,E14000700,Kent,2011-08-20,marketed sale,41,49,278,231.0,6.7,68,5.6,99.0,54.0,855.0,767.0,245.0,171.0,98.8,dual,N,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,1.0,5.0,5.0,17.0,0.0,From main system,Average,Average,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Timber frame, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, oil",Good,Average,Programmer and room thermostat,Average,Average,Low energy lighting in 17% of fixed outlets,Poor,Poor,oil (not community),0.0,NO DATA!,,2.4,0.0,,natural,"Wrinsted Lodge, Doddington",Maidstone,Faversham and Mid Kent,SITTINGBOURNE,England and Wales: 1930-1949,2011-08-20 17:07:36,owner-occupied,12.0,2.0,10014308599.0,Address Matched +780116479702015102815020192752788,"7, Chillington Street",,,ME14 2RT,8745777968,D,B,66,87,Bungalow,Mid-Terrace,2015-10-28,E07000110,E14000804,Kent,2015-10-28,ECO assessment,61,85,229,71.0,3.7,40,1.2,116.0,58.0,645.0,427.0,112.0,75.0,92.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"7, Chillington Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2015-10-28 15:02:01,owner-occupied,,,200003701994.0,Address Matched +1734332105252019070515281994010767,"9, Fir Tree Grove",,,ME5 8XD,7740545678,D,B,68,87,House,Mid-Terrace,2019-07-05,E07000110,E14000700,Kent,2019-07-05,marketed sale,65,86,218,75.0,3.1,38,1.1,83.0,62.0,538.0,393.0,92.0,63.0,82.0,Single,Y,NODATA!,,,2101.0,100.0,double glazing installed during or after 2002,Normal,1.0,5.0,5.0,65.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, 270 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,No time or thermostatic control of room temperature,Very Poor,Very Poor,Low energy lighting in 65% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"9, Fir Tree Grove",Maidstone,Faversham and Mid Kent,CHATHAM,England and Wales: 1967-1975,2019-07-05 15:28:19,owner-occupied,,,200003676738.0,Address Matched +597170906552014060608173292040083,"29, Nottingham Avenue",,,ME15 7PS,334624868,C,B,71,86,House,Semi-Detached,2014-06-05,E07000110,E14000700,Kent,2014-06-06,rental (social),71,87,170,61.0,2.4,33,0.9,51.0,51.0,404.0,377.0,155.0,83.0,75.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,88.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"System built, with external insulation",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 88% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"29, Nottingham Avenue",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2014-06-06 08:17:32,rental (social),8.0,7.0,200003712788.0,Address Matched +218378820222009012920412797568551,"296, Willington Street",,,ME15 8HL,5968207568,C,C,75,77,Flat,Semi-Detached,2009-01-26,E07000110,E14000700,Kent,2009-01-29,rental (social),73,73,270,261.0,1.7,45,1.6,36.0,18.0,266.0,269.0,64.0,64.0,37.6,Single,N,Ground,N,2.0,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,1.0,1.0,0.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.34,0.0,N,natural,"296, Willington Street",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2009-01-29 20:41:27,rental (social),,,200003684831.0,Address Matched +55699939222018021418262963048668,4 Rose Cottages,Lenham Heath,,ME17 2JL,6645383468,F,B,37,82,House,Mid-Terrace,2018-01-24,E07000110,E14000700,Kent,2018-02-14,marketed sale,47,87,367,77.0,4.8,58,0.8,99.0,58.0,1173.0,1004.0,312.0,139.0,83.0,Single,N,NODATA!,,,2107.0,100.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,29.0,1.0,From main system,Very Poor,Poor,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Flat, insulated (assumed)",Average,Average,"Boiler and radiators, electric",Very Poor,Poor,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 29% of fixed outlets,Average,Average,electricity (not community),0.0,NO DATA!,,,,N,natural,"4 Rose Cottages, Lenham Heath",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2018-02-14 18:26:29,owner-occupied,,,10022897170.0,Address Matched +9924b7f144340ae2fae45ca33ce5f1a18ff012195a3e2adb5cf241261427ce7e,16 CAPTAINS CLOSE,SUTTON VALENCE,,ME17 3BA,10001365137,D,B,63,83,House,Semi-Detached,2021-08-04,E07000110,E14000700,Kent,2021-08-04,rental,56,79,263,113.0,4.4,46,1.9,124.0,75.0,692.0,508.0,120.0,78.0,95.0,Single,Y,,,,,100.0,"double glazing, unknown install date",Normal,0.0,6.0,6.0,36.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 36% of fixed outlets,Average,Average,mains gas (not community),0.0,,,2.43,0.0,N,natural,"16 CAPTAINS CLOSE, SUTTON VALENCE",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2021-08-04 10:44:55,Rented (social),14.0,,200003696241.0,Energy Assessor +294314370262009102211063682728781,57 Hughenden Reach,Tovil,,ME15 6ZL,8845752668,B,B,83,84,Flat,NO DATA!,2009-10-22,E07000110,E14000804,Kent,2009-10-22,new dwelling,83,83,130,125.0,1.4,21,1.4,56.0,37.0,226.0,229.0,85.0,85.0,67.6,standard tariff,,mid floor,,,2106.0,,NO DATA!,NO DATA!,,,,4.0,0.0,From main system,Very Good,Very Good,(other premises below),,,Fully double glazed,Good,Good,Average thermal transmittance 0.31 W/m?K,Good,Good,,,,Average thermal transmittance 0.19 W/m?K,Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 50% fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"57 Hughenden Reach, Tovil",Maidstone,Maidstone and The Weald,MAIDSTONE,,2009-10-22 11:06:36,,,,10014308520.0,Address Matched +678577719942011101015370295099508,"6, Quarry Square",,,ME14 2UN,970710968,D,D,62,64,House,End-Terrace,2011-10-10,E07000110,E14000804,Kent,2011-10-10,rental (social),60,62,251,236.0,3.5,48,3.3,60.0,40.0,600.0,579.0,83.0,83.0,73.29,Single,Y,NODATA!,,,2106.0,0.0,not defined,More Than Typical,0.0,3.0,3.0,50.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Cavity wall, filled cavity",Average,Average,,,,"Flat, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,2.28,0.0,,natural,"6, Quarry Square",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2011-10-10 15:37:02,rental (social),8.0,4.0,200003703523.0,Address Matched +1173604489962014071410165445848034,"100, Wheeler Street",,,ME14 1UB,3463855278,D,B,62,85,House,Mid-Terrace,2014-07-14,E07000110,E14000804,Kent,2014-07-14,marketed sale,59,85,218,69.0,3.9,42,1.3,112.0,56.0,695.0,454.0,133.0,90.0,92.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,0.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"100, Wheeler Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2014-07-14 10:16:54,owner-occupied,12.0,0.0,200003698866.0,Address Matched +596552450452015073022501392750086,"17, Maynards",Marden,,TN12 9TE,633024868,C,C,73,76,Flat,Semi-Detached,2015-07-30,E07000110,E14000804,Kent,2015-07-30,rental (social),73,77,190,160.0,2.0,33,1.7,60.0,42.0,374.0,322.0,96.0,97.0,61.0,Single,Y,Ground,N,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,57.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 57% of fixed outlets,Good,Good,mains gas (not community),0.0,unheated corridor,6.0,,,N,natural,"17, Maynards, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1967-1975,2015-07-30 22:50:13,rental (social),,,200003709649.0,Address Matched +60755429342019091017160848419208,"Flat 4, Marquis Court","116, Kingsley Road",,ME15 7UP,8356324468,D,D,62,65,Flat,End-Terrace,2019-09-10,E07000110,E14000804,Kent,2019-09-10,marketed sale,61,65,377,339.0,2.2,67,2.0,41.0,29.0,420.0,385.0,67.0,67.0,34.0,Single,Y,1st,N,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,60.0,0.0,From main system,Good,Good,(another dwelling below),NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 60% of fixed outlets,Good,Good,mains gas (not community),0.0,unheated corridor,6.5,,,N,natural,"Flat 4, Marquis Court, 116, Kingsley Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2019-09-10 17:16:08,owner-occupied,,,200003696821.0,Address Matched +92806610022009050206501456498301,"9, Rockwell Court",Tovil,,ME15 6EQ,502196468,D,D,63,65,Maisonette,Mid-Terrace,2009-05-01,E07000110,E14000804,Kent,2009-05-02,rental (private),69,70,236,229.0,2.9,36,2.8,88.0,44.0,339.0,358.0,131.0,131.0,41.14,Single,N,1st,Y,3.0,2402.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,0.0,0.0,"Electric immersion, off-peak",Very Good,Poor,(other premises below),,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Roof room(s), insulated (assumed)",Good,Good,Electric storage heaters,Very Poor,Poor,Automatic charge control,Average,Average,No low energy lighting,Very Poor,Very Poor,electricity - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.33,0.0,N,natural,"9, Rockwell Court, Tovil",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2009-05-02 06:50:14,rental (private),,,10022901563.0,Address Matched +1385132874412015111215405995250344,Flat 32,Miller House,43-51 Lower Stone Street,ME15 6GB,3433450478,B,B,82,82,Flat,NO DATA!,2015-07-24,E07000110,E14000804,Kent,2015-11-12,none of the above,86,86,106,106.0,1.0,19,1.0,37.0,37.0,205.0,205.0,71.0,71.0,54.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Good,Good,Average thermal transmittance 0.71 W/m-¦K,Average,Average,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Flat 32, Miller House, 43-51 Lower Stone Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2015-11-12 15:40:59,unknown,4.0,4.0,10091196129.0,Address Matched +1393547819242015120712220447150538,"9, Lambert Drive",,,ME15 8WN,5278211478,B,B,83,83,Flat,NO DATA!,2015-12-07,E07000110,E14000700,Kent,2015-12-07,new dwelling,87,87,93,93.0,1.1,16,1.1,46.0,46.0,218.0,218.0,78.0,78.0,67.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.27 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.14 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"9, Lambert Drive",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2015-12-07 12:22:04,unknown,1.0,1.0,10091194524.0,Address Matched +327414803132009071612101571968006,"36, Somerset Road",,,ME15 7EJ,651094668,C,C,75,75,House,Semi-Detached,2009-07-16,E07000110,E14000700,Kent,2009-07-16,rental (social),71,72,197,196.0,2.7,33,2.7,50.0,42.0,419.0,420.0,93.0,93.0,83.46,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,80.0,1.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"System built, with internal insulation",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.45,0.0,N,natural,"36, Somerset Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2009-07-16 12:10:15,rental (social),,,200003711307.0,Address Matched +996291698e0f14def1d98d3a3262a96a05ee9fefc17105d14e4651a2a5ca6d1a,"13, West Walk",,,ME16 8TP,10001364937,E,B,44,84,House,Semi-Detached,2021-07-19,E07000110,E14000804,Kent,2021-07-19,marketed sale,40,83,382,84.0,6.2,67,1.4,140.0,74.0,1041.0,488.0,206.0,70.0,92.0,Single,Y,,,,,100.0,double glazing installed before 2002,Normal,0.0,6.0,3.0,10.0,0.0,"From main system, no cylinder thermostat",Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,"Roof room(s), ceiling insulated",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 10% of fixed outlets,Poor,Poor,mains gas (not community),0.0,,,2.43,0.0,N,natural,"13, West Walk",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2021-07-19 16:41:43,Owner-occupied,10.0,,200003696040.0,Address Matched +1219798239922014101313012028778074,Pollyfields Manor,Scragged Oak Road,Detling,ME14 3HL,7208388278,E,D,51,57,House,Detached,2014-10-13,E07000110,E14000700,Kent,2014-10-13,assessment for green deal,47,52,201,175.0,22.0,41,19.0,183.0,183.0,5336.0,4868.0,254.0,255.0,542.0,dual (24 hour),N,NODATA!,,,2110.0,100.0,double glazing installed before 2002,Normal,2.0,14.0,14.0,83.0,3.0,From main system,Average,Average,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Timber frame, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, insulated (assumed)",Average,Average,"Boiler and radiators, oil",Average,Average,Time and temperature zone control,Very Good,Very Good,Low energy lighting in 83% of fixed outlets,Very Good,Very Good,oil (not community),0.0,NO DATA!,,,0.0,,natural,"Pollyfields Manor, Scragged Oak Road, Detling",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2014-10-13 13:01:20,owner-occupied,48.0,40.0,200003695568.0,Address Matched +1480867872652017111610542493939040,Flat A,"3, Fuggles Close",Headcorn,TN27 9AE,47237478,B,B,82,82,Flat,Semi-Detached,2017-11-16,E07000110,E14000700,Kent,2017-11-16,new dwelling,86,86,97,97.0,1.2,17,1.2,56.0,56.0,207.0,207.0,75.0,75.0,69.0,standard tariff,,ground floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Flat A, 3, Fuggles Close, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,NO DATA!,2017-11-16 10:54:24,unknown,15.0,15.0,10093302526.0,Address Matched +1013188349222013092410510324948667,Flat 8,"122, Boxley Road",Penenden Heath,ME14 2AY,6214424178,B,B,83,83,Flat,Mid-Terrace,2013-09-24,E07000110,E14000804,Kent,2013-09-24,rental (social),73,73,220,220.0,1.6,39,1.6,31.0,31.0,118.0,118.0,105.0,105.0,42.0,dual,N,1st,N,,2401.0,100.0,double glazing installed before 2002,Normal,0.0,2.0,2.0,100.0,0.0,"Electric immersion, off-peak",Average,Very Poor,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,Portable electric heaters (assumed),,,(another dwelling above),,,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,unheated corridor,2.0,,0.0,,natural,"Flat 8, 122, Boxley Road, Penenden Heath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1976-1982,2013-09-24 10:51:03,rental (social),5.0,5.0,200003704449.0,Address Matched +402919110642009112509524378012248,12 Astor Park,,,ME16 8FP,8600710768,B,B,85,86,House,Semi-Detached,2009-11-24,E07000110,E14000804,Kent,2009-11-25,new dwelling,85,86,91,89.0,1.9,15,1.8,81.0,67.0,250.0,251.0,123.0,123.0,125.88,standard tariff,,NO DATA!,,,2110.0,,NO DATA!,NO DATA!,,,,16.0,0.0,From main system,Very Good,Very Good,Average thermal transmittance 0.18 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.26 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.15 W/m?K,Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,Time and temperature zone control,Good,Good,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.33,,,NO DATA!,12 Astor Park,Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2009-11-25 09:52:43,,20.0,16.0,10014308737.0,Address Matched +469347622812010041407105098900370,"5, Kings Acre",Downswood,,ME15 8UP,3027284768,D,D,66,68,House,Detached,2010-04-14,E07000110,E14000700,Kent,2010-04-14,marketed sale,66,67,233,224.0,3.4,38,3.3,92.0,46.0,551.0,561.0,99.0,99.0,88.8,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,6.0,6.0,0.0,0.0,From main system,Very Good,Very Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.3,0.0,N,natural,"5, Kings Acre, Downswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2010-04-14 07:10:50,owner-occupied,,,200003691358.0,Address Matched +779691479202012042419465791722548,"7, Heath Road",Langley,,ME17 3LH,1270877968,D,C,62,77,Bungalow,Detached,2012-04-24,E07000110,E14000700,Kent,2012-04-24,marketed sale,64,80,203,115.0,4.5,33,2.4,96.0,62.0,896.0,708.0,105.0,92.0,138.0,Single,Y,NODATA!,,,2107.0,100.0,double glazing installed before 2002,Normal,1.0,6.0,6.0,46.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, wood logs",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 46% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"7, Heath Road, Langley",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2012-04-24 19:46:57,owner-occupied,13.0,6.0,200003697757.0,Address Matched +660027989602011072917110281892118,"6, St. Andrews Park",Tarragon Road,,ME16 0WD,6671588868,C,C,71,74,Flat,End-Terrace,2011-07-29,E07000110,E14000804,Kent,2011-07-29,marketed sale,72,75,159,140.0,3.1,30,2.8,96.0,58.0,488.0,467.0,126.0,110.0,104.57,Single,Y,3rd,Y,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,33.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Solid brick, with internal insulation",Good,Good,"Room heaters, electric",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 33% of fixed outlets,Average,Average,mains gas (not community),0.0,unheated corridor,5.6,3.1,0.0,,natural,"6, St. Andrews Park, Tarragon Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2011-07-29 17:11:02,owner-occupied,18.0,6.0,200003654962.0,Address Matched +1321771009402016042020571838662108,"54, Arundel Square",,,ME15 6HB,1418706378,C,B,76,87,House,Mid-Terrace,2016-04-20,E07000110,E14000804,Kent,2016-04-20,marketed sale,74,85,136,69.0,3.4,24,1.8,154.0,81.0,529.0,530.0,150.0,71.0,142.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,7.0,7.0,9.0,0.0,"From main system, no cylinder thermostat",Average,Average,"Solid, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 9% of fixed outlets,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,2.33,,N,natural,"54, Arundel Square",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2016-04-20 20:57:18,owner-occupied,,,10022895154.0,Address Matched +920479249262013101611431317358697,13 Horwood Way,Harrietsham,,ME17 1FH,9154467078,B,B,87,87,House,Detached,2013-04-25,E07000110,E14000700,Kent,2013-10-16,new dwelling,89,89,61,61.0,1.1,12,1.1,52.0,52.0,280.0,280.0,87.0,87.0,91.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.16 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"13 Horwood Way, Harrietsham",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2013-10-16 11:43:13,NO DATA!,12.0,12.0,10014314900.0,Address Matched +1210383682762020013019401258608650,"295, Plains Avenue",,,ME15 7BQ,5500818278,C,B,72,85,House,Semi-Detached,2020-01-30,E07000110,E14000700,Kent,2020-01-30,marketed sale,69,82,190,97.0,3.0,33,1.6,75.0,75.0,491.0,458.0,127.0,81.0,90.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,92.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 92% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"295, Plains Avenue",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2020-01-30 19:40:12,owner-occupied,,,200003714462.0,Address Matched +97613010312011072613032796290949,"16b, Fisher Street",,,ME14 2SW,9945066468,C,C,69,73,Flat,Mid-Terrace,2011-07-26,E07000110,E14000804,Kent,2011-07-26,rental (private),71,77,227,186.0,1.9,44,1.5,26.0,26.0,346.0,300.0,78.0,65.0,43.48,Single,Y,1st,Y,,2104.0,25.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,(other premises below),,,Some double glazing,Poor,Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,no corridor,,2.31,0.0,,natural,"16b, Fisher Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2011-07-26 13:03:27,rental (private),6.0,6.0,200003706123.0,Address Matched +863084472232012120412045626078296,"16, Providence Park",Penenden Heath,,ME14 2EZ,7626263078,B,B,83,83,House,End-Terrace,2012-12-03,E07000110,E14000804,Kent,2012-12-04,new dwelling,86,86,83,83.0,1.5,16,1.5,58.0,58.0,264.0,264.0,86.0,86.0,98.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.20 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.22 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.16 W/m?K,Good,Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"16, Providence Park, Penenden Heath",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2012-12-04 12:04:56,NO DATA!,15.0,15.0,10014313050.0,Address Matched +678700499962011101015361470408839,"15, The Beacons",Coxheath,,ME17 4DL,3792910968,D,D,66,67,Bungalow,End-Terrace,2011-10-10,E07000110,E14000804,Kent,2011-10-10,rental (social),67,68,250,242.0,2.2,48,2.2,46.0,27.0,399.0,401.0,72.0,72.0,46.87,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,2.0,2.0,33.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 33% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,2.3,0.0,,natural,"15, The Beacons, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2011-10-10 15:36:14,rental (social),6.0,2.0,200003712874.0,Address Matched +167054689062013050221154902728687,1 Midhurst Court,Mote Road,,ME15 6EH,8061882568,D,C,68,74,Flat,Semi-Detached,2013-05-02,E07000110,E14000804,Kent,2013-05-02,rental (social),68,76,198,150.0,2.5,38,1.9,68.0,41.0,401.0,328.0,124.0,109.0,67.0,Unknown,Y,Ground,N,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,33.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"System built, as built, no insulation (assumed)",Very Poor,Very Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 33% of fixed outlets,Average,Average,mains gas (not community),0.0,unheated corridor,5.65,,0.0,,natural,"1 Midhurst Court, Mote Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2013-05-02 21:15:49,rental (social),6.0,2.0,200003693315.0,Address Matched +281045940962009051311435921778011,"48, Salisbury Road",Penenden Heath,,ME14 2TX,1202481668,F,E,33,40,House,Mid-Terrace,2009-05-13,E07000110,E14000804,Kent,2009-05-13,rental (private),27,31,491,435.0,11.0,91,10.0,120.0,60.0,1381.0,1266.0,145.0,126.0,125.15,Single,Y,NO DATA!,,,2106.0,50.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,0.0,3.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Partial double glazing,Poor,Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, coal",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.0,0.0,N,natural,"48, Salisbury Road, Penenden Heath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2009-05-13 11:43:59,rental (private),,,200003703373.0,Address Matched +217684785512009020320140000710153,Flat 2,"15a, Gabriels Hill",,ME15 6HR,1365507568,D,B,63,81,Flat,Detached,2009-01-30,E07000110,E14000804,Kent,2009-02-03,rental (private),75,74,202,208.0,2.2,30,2.3,64.0,41.0,224.0,154.0,266.0,123.0,72.48,Single,N,2nd,N,4.0,2602.0,50.0,secondary glazing,Normal,0.0,4.0,4.0,29.0,0.0,"Electric immersion, standard tariff",Very Poor,Poor,(other premises below),,,Partial secondary glazing,Poor,Poor,"Solid brick, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Room heaters, electric",Very Poor,Poor,Appliance thermostats,Good,Good,Low energy lighting in 29% of fixed outlets,Average,Average,electricity - this is for backwards compatibility only and should not be used,0.0,unheated corridor,7.65,2.57,0.0,N,natural,"Flat 2, 15a, Gabriels Hill",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2009-02-03 20:14:00,rental (private),,,10014310671.0,Address Matched +357038199642015121022135263650218,"88, Mill Bank",Headcorn,,TN27 9RG,8616696668,D,B,62,83,Bungalow,Detached,2015-12-09,E07000110,E14000700,Kent,2015-12-10,marketed sale,61,83,256,93.0,3.1,45,1.2,66.0,51.0,628.0,485.0,112.0,66.0,69.0,dual,Y,NODATA!,,,2107.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,71.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, 270 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 71% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"88, Mill Bank, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,England and Wales: 1967-1975,2015-12-10 22:13:52,owner-occupied,,,200003698199.0,Address Matched +187788098152008111018125000989751,16 Ruby House,Coral Park,,ME14 5HQ,7155804568,D,C,66,78,Flat,Detached,2008-11-10,E07000110,E14000804,Kent,2008-11-10,rental (private),72,71,235,242.0,2.2,35,2.3,51.0,34.0,294.0,165.0,114.0,114.0,63.11,dual,N,2nd,Y,3.0,2602.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,48.0,0.0,"Electric immersion, off-peak",Average,Poor,(other premises below),,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 250mm loft insulation",Good,Good,"Room heaters, electric",Very Poor,Poor,Appliance thermostats,Good,Good,Low energy lighting in 48% of fixed outlets,Good,Good,electricity - this is for backwards compatibility only and should not be used,0.0,heated corridor,,2.4,0.0,N,natural,"16 Ruby House, Coral Park",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2008-11-10 18:12:50,rental (private),,,10022893777.0,Address Matched +489943179112010052617104192200877,Old Forge House,Upper Street,Hollingbourne,ME17 1UW,8795926768,F,E,37,51,House,Detached,2010-05-26,E07000110,E14000700,Kent,2010-05-26,marketed sale,37,51,391,290.0,15.0,61,11.0,299.0,150.0,2364.0,1843.0,275.0,195.0,213.37,dual,Y,NO DATA!,,,2110.0,0.0,not defined,Normal,0.0,8.0,8.0,0.0,1.0,From main system,Average,Good,"Solid, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Average,Good,Time and temperature zone control,Very Good,Very Good,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.0,0.0,N,natural,"Old Forge House, Upper Street, Hollingbourne",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2010-05-26 17:10:41,owner-occupied,,,200003701893.0,Address Matched +1421220019042016030814593041360688,"25, Pope Street",,,ME16 8LQ,38113478,E,C,39,74,House,Mid-Terrace,2016-03-08,E07000110,E14000804,Kent,2016-03-08,marketed sale,58,86,231,42.0,3.0,50,0.8,50.0,50.0,836.0,496.0,189.0,115.0,60.0,Unknown,Y,NODATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,1.0,4.0,4.0,80.0,0.0,From main system,Poor,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, LPG",Poor,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,LPG (not community),0.0,NO DATA!,,,,N,natural,"25, Pope Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2016-03-08 14:59:30,owner-occupied,,,200003655813.0,Address Matched +16684024032010041722174703968000,11 Wallis Place,Hart Street,,ME16 8FB,2003088468,B,B,87,87,Flat,Enclosed Mid-Terrace,2010-04-17,E07000110,E14000804,Kent,2010-04-17,rental (social),87,87,117,117.0,0.9,19,0.9,27.0,27.0,168.0,168.0,80.0,80.0,48.3,Single,Y,2nd,N,4.0,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,100.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,unheated corridor,6.9,2.38,0.0,N,natural,"11 Wallis Place, Hart Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2010-04-17 22:17:47,rental (social),,,10022900610.0,Address Matched +676208241412011091008433690990692,2 Maplehurst Lodge,Frittenden Road,Staplehurst,TN12 0DL,6280100968,E,E,41,45,House,Semi-Detached,2011-09-10,E07000110,E14000804,Kent,2011-09-10,rental (private),38,42,368,338.0,6.7,76,6.2,88.0,48.0,1159.0,1092.0,161.0,155.0,49.55,Unknown,N,NODATA!,,,2104.0,88.0,double glazing installed before 2002,Normal,2.0,4.0,4.0,17.0,1.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Mostly double glazing,Poor,Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Flat, insulated (assumed)",Average,Average,"Boiler and radiators, oil",Good,Average,Programmer and room thermostat,Average,Average,Low energy lighting in 17% of fixed outlets,Poor,Poor,oil (not community),0.0,NO DATA!,,2.18,0.0,,natural,"2 Maplehurst Lodge, Frittenden Road, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1900-1929,2011-09-10 08:43:36,rental (private),12.0,2.0,200003690196.0,Address Matched +680190461932011092018315763268906,Baldock Wood,Old Ham Lane,Lenham,ME17 2LT,6603920968,F,E,36,42,House,Detached,2011-09-20,E07000110,E14000700,Kent,2011-09-20,marketed sale,34,39,260,231.0,21.0,64,19.0,162.0,101.0,3680.0,3328.0,190.0,170.0,361.0,dual,N,NODATA!,,,2106.0,0.0,not defined,Normal,3.0,10.0,10.0,40.0,2.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Cavity wall, filled cavity",Good,Good,"Room heaters, LPG",,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, oil",Average,Average,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 40% of fixed outlets,Average,Average,oil (not community),0.0,NO DATA!,,2.4,0.0,,natural,"Baldock Wood, Old Ham Lane, Lenham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2011-09-20 18:31:57,owner-occupied,50.0,20.0,200003725317.0,Address Matched +796616699402012060116431695820498,Flat A,79 Lower Boxley Road,,ME14 2UU,1402698968,C,C,77,77,Flat,NO DATA!,2012-06-01,E07000110,E14000804,Kent,2012-06-01,new dwelling,83,83,162,162.0,1.0,31,1.0,21.0,21.0,211.0,211.0,61.0,61.0,32.0,standard tariff,,ground floor,,,,,NO DATA!,NO DATA!,,,,6.0,,From main system,Good,Good,Average thermal transmittance 0.45 W/m?K,Average,Average,Fully double glazed,Average,Average,Average thermal transmittance 0.28 W/m?K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,,,NO DATA!,"Flat A, 79 Lower Boxley Road",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2012-06-01 16:43:16,,6.0,6.0,10014314325.0,Address Matched +1549176349062017060209143202398683,"48, Douglas Road",Lenham,,ME17 2QP,8003412578,D,B,68,88,House,Mid-Terrace,2017-06-01,E07000110,E14000700,Kent,2017-06-02,marketed sale,64,87,222,71.0,3.3,39,1.1,100.0,63.0,475.0,381.0,215.0,96.0,86.0,dual,Y,NODATA!,,,2504.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,40.0,0.0,"From main system, no cylinder thermostat",Poor,Poor,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Timber frame, as built, partial insulation (assumed)",Average,Average,,,,"Pitched, 100 mm loft insulation",Average,Average,"Warm air, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 40% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"48, Douglas Road, Lenham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2017-06-02 09:14:32,owner-occupied,,,200003711707.0,Address Matched +855343138352012110913132590029607,"29, St. Catherines Road",,,ME15 9WP,6792803078,B,B,83,83,House,End-Terrace,2012-11-09,E07000110,E14000700,Kent,2012-11-09,new dwelling,88,88,82,82.0,1.0,15,1.0,38.0,38.0,222.0,222.0,52.0,52.0,63.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,"From main system, plus solar",Very Good,Very Good,Average thermal transmittance 0.19 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.28 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"29, St. Catherines Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2012-11-09 13:13:25,NO DATA!,8.0,8.0,10014311701.0,Address Matched +1242187269262014112723074620568344,"34, Plains Avenue",,,ME15 7AU,4252640378,C,B,70,83,House,Semi-Detached,2014-11-26,E07000110,E14000700,Kent,2014-11-27,FiT application,68,82,162,82.0,3.6,31,1.9,82.0,82.0,716.0,566.0,91.0,91.0,116.0,dual,Y,NODATA!,,,2106.0,90.0,"double glazing, unknown install date",Normal,3.0,7.0,7.0,86.0,0.0,"From main system, plus solar",Very Good,Very Good,"Solid, no insulation (assumed)",,,Mostly double glazing,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 86% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"34, Plains Avenue",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2014-11-27 23:07:46,owner-occupied,14.0,12.0,200003683674.0,Address Matched +1613972179022018031211131046918468,The Hollies,Warren Street,Lenham,ME17 2EE,6473776578,D,B,55,89,Bungalow,Detached,2018-03-09,E07000110,E14000700,Kent,2018-03-12,FiT application,47,79,198,31.0,7.6,52,2.7,105.0,105.0,679.0,594.0,242.0,77.0,146.0,dual,N,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,6.0,6.0,86.0,0.0,"From main system, no cylinder thermostat",Poor,Poor,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Sandstone or limestone, with internal insulation",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, oil",Average,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 86% of fixed outlets,Very Good,Very Good,oil (not community),0.0,NO DATA!,,,,N,natural,"The Hollies, Warren Street, Lenham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1900-1929,2018-03-12 11:13:10,owner-occupied,,,200003714863.0,Address Matched +1740417918132019080209011374078900,"11, Allens",Albion Road,,TN12 9DU,1054985678,D,B,68,89,Bungalow,Mid-Terrace,2019-08-01,E07000110,E14000804,Kent,2019-08-02,rental (social),68,90,260,57.0,2.0,46,0.5,54.0,36.0,322.0,285.0,113.0,67.0,44.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,50.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"11, Allens, Albion Road",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1950-1966,2019-08-02 09:01:13,rental (social),,,200003710300.0,Address Matched +344900750922009081314354706498481,Whittingstall,Collier Street,,TN12 9SB,8089506668,E,E,45,47,House,Detached,2009-08-11,E07000110,E14000804,Kent,2009-08-13,marketed sale,46,47,287,278.0,10.0,50,10.0,214.0,107.0,1562.0,1593.0,209.0,209.0,224.42,Unknown,N,NO DATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,2.0,8.0,8.0,0.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, wood logs",,,"Pitched, 300+mm loft insulation",Very Good,Very Good,"Boiler and radiators, oil",Good,Good,"Programmer, room thermostat and TRVs",Average,Average,No low energy lighting,Very Poor,Very Poor,oil - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.3,0.0,N,natural,"Whittingstall, Collier Street",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: before 1900,2009-08-13 14:35:47,owner-occupied,,,10014307333.0,Address Matched +545071099332017011423293909968601,Sun Cottage,Tumblers Hill,Sutton Valence,ME17 3AD,9159610868,D,B,55,85,House,Mid-Terrace,2017-01-13,E07000110,E14000700,Kent,2017-01-14,marketed sale,46,82,313,90.0,6.5,55,1.9,69.0,70.0,1149.0,538.0,165.0,78.0,117.0,Single,Y,NODATA!,,,2106.0,0.0,not defined,Normal,1.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Single glazed,Very Poor,Very Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, insulated at rafters",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"Sun Cottage, Tumblers Hill, Sutton Valence",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2017-01-14 23:29:39,owner-occupied,,,10022897778.0,Address Matched +1665279364812018092114005194280563,"7, Waters Edge",,,ME15 6SG,5391440678,C,B,72,83,House,Detached,2018-09-21,E07000110,E14000804,Kent,2018-09-21,rental (private),67,78,171,106.0,4.8,30,3.0,153.0,98.0,765.0,701.0,133.0,84.0,159.0,dual,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,9.0,9.0,44.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Roof room(s), insulated",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 44% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"7, Waters Edge",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2018-09-21 14:00:51,rental (private),,,200003666152.0,Address Matched +1092416769062016110816245999188066,3 Wicken House,London Road,,ME16 8QP,6915689178,D,C,64,77,Flat,Semi-Detached,2016-11-08,E07000110,E14000804,Kent,2016-11-08,rental (private),45,63,510,323.0,3.4,86,2.1,32.0,32.0,372.0,199.0,173.0,129.0,39.0,dual,N,Ground,N,,2401.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,100.0,0.0,"Electric immersion, off-peak",Average,Poor,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,(another dwelling above),,,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,unheated corridor,4.12,2.35,,N,natural,"3 Wicken House, London Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2016-11-08 16:24:59,rental (private),,,200003668511.0,Address Matched +602942489962011031023303294608579,"4, Woodlands Close",Penenden Heath,,ME14 2EX,7926864868,E,D,42,61,House,Semi-Detached,2011-03-10,E07000110,E14000804,Kent,2011-03-10,marketed sale,36,54,459,298.0,7.7,77,5.0,87.0,63.0,1128.0,771.0,261.0,170.0,115.48,dual,Y,NO DATA!,,,2102.0,87.0,double glazing installed before 2002,Normal,1.0,6.0,6.0,61.0,1.0,"From main system, no cylinder thermostat",Poor,Average,"Solid, no insulation (assumed)",,,Mostly double glazing,Poor,Poor,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Average,Good,"Programmer, no room thermostat",Very Poor,Very Poor,Low energy lighting in 61% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.38,0.0,N,natural,"4, Woodlands Close, Penenden Heath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2011-03-10 23:30:32,owner-occupied,,,200003706664.0,Address Matched +1182474029242014073011594121647408,Flat 1 Woodville House,"74, York Road",,ME15 7QY,1286126278,B,B,83,83,Flat,End-Terrace,2014-07-30,E07000110,E14000700,Kent,2014-07-30,new dwelling,86,86,96,96.0,1.1,17,1.1,45.0,45.0,219.0,219.0,76.0,76.0,64.0,standard tariff,,ground floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.20 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Flat 1 Woodville House, 74, York Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2014-07-30 11:59:41,unknown,12.0,12.0,10014315445.0,Address Matched +341021984252009081010464008910760,18 Wexford Place,,,ME15 9GF,7035485668,B,B,82,84,House,Mid-Terrace,2009-08-10,E07000110,E14000700,Kent,2009-08-10,new dwelling,82,83,122,114.0,2.0,20,1.8,97.0,55.0,262.0,268.0,101.0,101.0,97.81,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,3.0,,From main system,Very Good,Very Good,Average thermal transmittance 0.25 W/m?K,Good,Good,Fully double glazed,Average,Average,Average thermal transmittance 0.43 W/m?K,Good,Good,,,,Average thermal transmittance 0.30 W/m?K,Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 23% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,,,NO DATA!,18 Wexford Place,Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2009-08-10 10:46:40,,13.0,3.0,10022895468.0,Address Matched +597024680352019101417564292919880,"15, Selby Road",,,ME15 9PT,8008024868,C,B,71,86,House,Mid-Terrace,2019-10-14,E07000110,E14000700,Kent,2019-10-14,rental (social),69,85,197,83.0,2.8,35,1.2,110.0,61.0,425.0,393.0,120.0,78.0,80.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,18.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 18% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"15, Selby Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2019-10-14 17:56:42,rental (social),,,200003680100.0,Address Matched +773409558612012040717231092020496,"15, Hayrick Close",Weavering,,ME14 5TE,4662827968,D,B,62,89,House,Semi-Detached,2012-04-06,E07000110,E14000700,Kent,2012-04-07,none of the above,60,91,241,39.0,3.1,46,0.6,68.0,38.0,419.0,304.0,186.0,67.0,68.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,21.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 21% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"15, Hayrick Close, Weavering",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1991-1995,2012-04-07 17:23:10,unknown,14.0,3.0,200003689918.0,Address Matched +493163829062010060120351726698570,"32, Western Road",,,ME16 8NE,7219256768,E,D,54,63,House,End-Terrace,2010-06-01,E07000110,E14000804,Kent,2010-06-01,marketed sale,47,56,396,317.0,4.9,66,3.9,45.0,45.0,752.0,619.0,113.0,92.0,73.44,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,80.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 75 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.56,0.0,N,natural,"32, Western Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2010-06-01 20:35:17,owner-occupied,,,200003655950.0,Address Matched +674192189742011090512102788990258,"14, Greystones Road",Bearsted,,ME15 8PD,5765489868,D,C,67,71,House,Semi-Detached,2011-09-05,E07000110,E14000700,Kent,2011-09-05,marketed sale,67,71,204,178.0,3.0,39,2.7,84.0,42.0,459.0,438.0,118.0,104.0,77.37,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,2.34,0.0,,natural,"14, Greystones Road, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2011-09-05 12:10:27,owner-occupied,8.0,0.0,200003690845.0,Address Matched +1677540439342019100910020967180818,Flat 113,Kent House,Romney Place,ME15 6LA,4334231678,D,D,65,65,Flat,Detached,2018-11-09,E07000110,E14000804,Kent,2019-10-09,non marketed sale,69,69,294,294.0,1.8,50,1.8,30.0,30.0,329.0,329.0,234.0,234.0,35.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,"Electric immersion, standard tariff",Very Poor,Poor,Average thermal transmittance 0.26 W/m-¦K,Good,Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.35 W/m-¦K,Good,Good,,,,(other premises above),,,Electric underfloor heating,Very Poor,Poor,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"Flat 113, Kent House, Romney Place",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2019-10-09 10:02:09,unknown,21.0,21.0,10094442355.0,Address Matched +1546497715012017052309241699230657,"22, Kilndown Close",,,ME16 0PL,6767591578,C,B,69,85,House,Semi-Detached,2017-05-22,E07000110,E14000804,Kent,2017-05-23,marketed sale,67,82,199,90.0,3.0,35,1.4,106.0,62.0,478.0,448.0,141.0,84.0,85.0,dual,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,30.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 30% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"22, Kilndown Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2017-05-23 09:24:16,owner-occupied,,,200003660176.0,Address Matched +9a2255950c99da616f679ea3ed7aa89fd1796c76144273d8dbf283778c6e4a04,Fair View Farm,Linton Road,Loose,ME15 0AL,10001607207,D,A,56,96,House,Detached,2021-08-19,E07000110,E14000804,Kent,2021-08-19,non marketed sale,52,91,289,33.0,5.2,51,0.7,94.0,94.0,1001.0,711.0,117.0,78.0,102.0,Single,Y,,,,,100.0,"double glazing, unknown install date",Normal,0.0,6.0,6.0,82.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 82% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.52,0.0,N,natural,"Fair View Farm, Linton Road, Loose",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2021-08-19 14:16:47,Owner-occupied,11.0,,200003724466.0,Energy Assessor +488231119302010052022464872602608,"20, Quarry Road",,,ME15 6UD,6380616768,C,B,80,82,Flat,Semi-Detached,2010-05-20,E07000110,E14000804,Kent,2010-05-20,rental (social),78,79,238,222.0,1.3,40,1.2,16.0,16.0,241.0,227.0,67.0,67.0,32.04,Single,Y,1st,Y,2.0,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,100.0,0.0,From main system,Very Good,Very Good,(other premises below),,,Fully double glazed,Average,Average,"System built, with internal insulation",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,unheated corridor,5.0,2.42,0.0,N,natural,"20, Quarry Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2010-05-20 22:46:48,rental (social),,,200003682044.0,Address Matched +513129213032010071415303567968406,1 Hawthorn House,Springwood Road,Barming,ME16 9PW,1677497768,C,C,69,79,Flat,Detached,2010-07-14,E07000110,E14000804,Kent,2010-07-14,rental (private),64,76,232,153.0,3.9,39,2.6,85.0,57.0,527.0,374.0,176.0,130.0,100.8,Single,Y,Ground,N,2.0,2107.0,100.0,double glazing installed before 2002,Normal,0.0,6.0,6.0,50.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, partial insulation (assumed)",Average,Average,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,unheated corridor,8.2,2.4,0.0,N,natural,"1 Hawthorn House, Springwood Road, Barming",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1976-1982,2010-07-14 15:30:35,rental (private),,,200003689591.0,Address Matched +1627690564752018043012063697280251,Top Floor Flat,27 Charlton Street,,ME16 8LB,2170477578,D,D,60,67,Flat,Mid-Terrace,2018-04-27,E07000110,E14000804,Kent,2018-04-30,none of the above,56,65,330,259.0,3.0,58,2.4,47.0,47.0,537.0,449.0,93.0,61.0,52.0,Single,Y,2nd,Y,,2104.0,100.0,"double glazing, unknown install date",Normal,1.0,3.0,3.0,80.0,0.0,From main system,Good,Good,(another dwelling below),NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,no corridor,,,,N,natural,"Top Floor Flat, 27 Charlton Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2018-04-30 12:06:36,rental (private),,,200003721449.0,Address Matched +1681857849222018112712485031438338,1 Abbey Gate Cottages,Sandling,,ME14 3BT,3376461678,E,A,45,103,House,End-Terrace,2018-11-27,E07000110,E14000700,Kent,2018-11-27,rental (private),38,99,386,-24.0,6.6,69,-0.2,113.0,65.0,1048.0,476.0,196.0,72.0,95.0,Single,Y,NODATA!,,,2106.0,20.0,"double glazing, unknown install date",Normal,1.0,4.0,4.0,25.0,0.0,From main system,Average,Average,"Suspended, no insulation (assumed)",NO DATA!,,Some double glazing,Very Poor,Very Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 25% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"1 Abbey Gate Cottages, Sandling",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2018-11-27 12:48:50,rental (private),,,200003731437.0,Address Matched +574317632032010121422320936968990,"5, Woodside Road",,,ME15 9AY,3036932868,C,C,74,74,House,End-Terrace,2010-12-14,E07000110,E14000700,Kent,2010-12-14,rental (social),70,70,212,212.0,2.7,35,2.7,40.0,40.0,406.0,406.0,129.0,129.0,75.94,Single,Y,NO DATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,100.0,0.0,From main system,Very Good,Very Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.42,0.0,N,natural,"5, Woodside Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2010-12-14 22:32:09,rental (social),,,200003713683.0,Address Matched +1141597129042014051511461728349658,1 Fairview Cottages,High Banks,Loose,ME15 0EQ,9007923278,E,A,51,94,House,End-Terrace,2014-05-15,E07000110,E14000804,Kent,2014-05-15,rental (social),48,96,354,6.0,3.7,68,0.1,45.0,45.0,675.0,308.0,139.0,72.0,54.0,dual,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,83.0,0.0,From main system,Average,Average,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Granite or whinstone, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 83% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"1 Fairview Cottages, High Banks, Loose",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2014-05-15 11:46:17,rental (social),6.0,5.0,200003663894.0,Address Matched +9a3f19b41958fc44dbe4ead454041cd55fb23c9e2972a51020d12dc6e81666cc,49 St. Philips Avenue,,,ME15 7SL,10001519727,D,B,63,85,House,Mid-Terrace,2021-09-27,E07000110,E14000804,Kent,2021-09-28,marketed sale,57,83,256,88.0,4.2,45,1.5,143.0,74.0,645.0,431.0,126.0,77.0,93.0,Unknown,Y,,,,,100.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,8.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, mains gas",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 8% of fixed outlets,Very Poor,Very Poor,mains gas (not community),0.0,,,2.6,0.0,N,natural,49 St. Philips Avenue,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2021-09-28 18:18:52,Owner-occupied,12.0,,200003686748.0,Energy Assessor +1545048979962017052306023861018923,"16a, Lower Fant Road",,,ME16 8EA,2687781578,D,C,59,75,Flat,Detached,2017-05-19,E07000110,E14000804,Kent,2017-05-23,marketed sale,52,76,405,201.0,2.8,71,1.4,36.0,36.0,481.0,228.0,117.0,105.0,40.0,Unknown,Y,Basement,N,,2307.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,80.0,0.0,Community scheme,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Sandstone or limestone, as built, no insulation (assumed)",Very Poor,Very Poor,,,,(another dwelling above),,,Community scheme,Good,Good,"Flat rate charging, TRVs",Average,Average,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,mains gas (community),0.0,no corridor,,,,N,natural,"16a, Lower Fant Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2017-05-23 06:02:38,owner-occupied,,,10014309636.0,Address Matched +1533988889022017040521182271258573,"10, Malvern Road",,,ME15 8GB,7705801578,B,A,81,95,House,End-Terrace,2017-04-05,E07000110,E14000700,Kent,2017-04-05,new dwelling,84,97,107,3.0,1.3,19,0.1,51.0,51.0,222.0,224.0,95.0,50.0,69.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"10, Malvern Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2017-04-05 21:18:22,unknown,1.0,1.0,10091193595.0,Address Matched +1344540969222015092312560967778055,Ruby Cottage,Bell Lane,Staplehurst,TN12 0BA,5613667378,F,E,36,49,House,End-Terrace,2015-09-23,E07000110,E14000804,Kent,2015-09-23,new dwelling,44,55,328,242.0,5.7,55,4.2,77.0,77.0,1275.0,1280.0,296.0,143.0,102.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,"Electric immersion, standard tariff",Very Poor,Poor,Average thermal transmittance 0.22 W/m-¦K,Good,Good,Partial multiple glazing,Poor,Poor,Average thermal transmittance 0.50 W/m-¦K,Good,Good,,,,Average thermal transmittance 0.22 W/m-¦K,Good,Good,"Room heaters, electric",Very Poor,Poor,Appliance thermostats,Good,Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"Ruby Cottage, Bell Lane, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,NO DATA!,2015-09-23 12:56:09,owner-occupied,20.0,15.0,10091194413.0,Address Matched +1300790759042015032623525133452858,"100, Mill Bank",Headcorn,,TN27 9RJ,7093854378,E,D,40,68,House,Mid-Terrace,2015-03-25,E07000110,E14000700,Kent,2015-03-26,marketed sale,21,39,702,424.0,8.6,111,5.3,69.0,69.0,1112.0,784.0,157.0,89.0,78.0,dual,N,NODATA!,,,2402.0,100.0,double glazing installed before 2002,Normal,1.0,4.0,4.0,75.0,0.0,"Electric immersion, off-peak",Average,Poor,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Roof room(s), no insulation (assumed)",Very Poor,Very Poor,Electric storage heaters,Average,Very Poor,Automatic charge control,Average,Average,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,electricity (not community),0.0,NO DATA!,,,,N,natural,"100, Mill Bank, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,England and Wales: before 1900,2015-03-26 23:52:51,owner-occupied,,,200003698203.0,Address Matched +1821387682262020082713545611238230,"48, Royston Road",Bearsted,,ME15 8NT,3115871778,D,B,65,90,Bungalow,Semi-Detached,2020-08-27,E07000110,E14000700,Kent,2020-08-27,marketed sale,63,91,290,47.0,2.5,51,0.4,71.0,43.0,461.0,307.0,68.0,44.0,49.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,33.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 33% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"48, Royston Road, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2020-08-27 13:54:56,owner-occupied,,,200003693106.0,Address Matched +1365818047512015092117391991250434,"10, Oak Tree Close",Marden,,TN12 9EW,4432719378,D,A,58,123,House,Enclosed End-Terrace,2015-09-21,E07000110,E14000804,Kent,2015-09-21,ECO assessment,39,121,533,-223.0,4.0,90,-1.6,65.0,32.0,482.0,259.0,143.0,63.0,45.0,dual,Y,NODATA!,,,2401.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,14.0,0.0,"Electric immersion, off-peak",Average,Poor,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, partial insulation (assumed)",Average,Average,Portable electric heaters (assumed),,,"Pitched, limited insulation",Poor,Poor,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 14% of fixed outlets,Poor,Poor,electricity (not community),0.0,NO DATA!,,,,N,natural,"10, Oak Tree Close, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1976-1982,2015-09-21 17:39:19,rental (private),,,200003709286.0,Address Matched +886392989222013022014073405708547,"58, Birch Tree Way",,,ME15 7RR,4083825078,G,B,10,91,House,Mid-Terrace,2013-02-20,E07000110,E14000804,Kent,2013-02-20,marketed sale,24,93,646,26.0,7.2,115,0.4,70.0,37.0,1191.0,292.0,648.0,63.0,62.0,Single,Y,NODATA!,,,2602.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,1.0,11.0,0.0,"Electric immersion, standard tariff",Very Poor,Very Poor,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, mains gas",,,"Pitched, no insulation",Very Poor,Very Poor,Portable electric heaters assumed for most rooms,Very Poor,Very Poor,No thermostatic control of room temperature,Poor,Poor,Low energy lighting in 11% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"58, Birch Tree Way",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2013-02-20 14:07:34,unknown,9.0,1.0,200003696172.0,Address Matched +10467279022018110614583657168468,"13, Furfield Chase",Boughton Monchelsea,,ME17 4GD,6528767468,C,B,76,85,House,Semi-Detached,2018-11-06,E07000110,E14000700,Kent,2018-11-06,marketed sale,74,82,140,87.0,3.2,25,2.0,94.0,94.0,464.0,464.0,168.0,135.0,130.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,6.0,6.0,88.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 88% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"13, Furfield Chase, Boughton Monchelsea",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2007 onwards,2018-11-06 14:58:36,owner-occupied,,,10022901151.0,Address Matched +1646763909542018070905520458980768,"13, Mangravet Avenue",,,ME15 9BQ,5531909578,D,B,67,84,House,Mid-Terrace,2018-07-06,E07000110,E14000700,Kent,2018-07-09,marketed sale,62,82,237,99.0,3.5,42,1.5,70.0,70.0,613.0,456.0,93.0,63.0,85.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,83.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 83% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"13, Mangravet Avenue",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2018-07-09 05:52:04,owner-occupied,,,200003713834.0,Address Matched +1028386439542013102108120417579188,"87, Fennel Close",,,ME16 0XT,598435178,C,C,78,80,Flat,Semi-Detached,2013-10-18,E07000110,E14000804,Kent,2013-10-21,marketed sale,81,84,123,104.0,1.4,23,1.2,62.0,41.0,252.0,238.0,92.0,81.0,61.0,Unknown,Y,1st,N,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,50.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,unheated corridor,6.6,,0.0,,natural,"87, Fennel Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2013-10-21 08:12:04,owner-occupied,10.0,5.0,200003722339.0,Address Matched +1664325739342018091807314463089638,"13, Rede Wood Road",,,ME16 9HR,7317530678,E,D,50,68,Bungalow,Semi-Detached,2018-09-17,E07000110,E14000804,Kent,2018-09-18,marketed sale,42,59,382,235.0,5.2,67,3.2,70.0,56.0,905.0,774.0,102.0,68.0,77.0,Unknown,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,75.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"13, Rede Wood Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2018-09-18 07:31:44,owner-occupied,,,200003667450.0,Address Matched +1384490119962015111214534900328915,Flat 76,Miller House,43-51 Lower Stone Street,ME15 6GB,1006150478,B,B,82,82,Flat,NO DATA!,2015-11-12,E07000110,E14000804,Kent,2015-11-12,none of the above,86,86,106,106.0,1.0,19,1.0,37.0,37.0,205.0,205.0,71.0,71.0,54.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Good,Good,Average thermal transmittance 0.71 W/m-¦K,Average,Average,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Flat 76, Miller House, 43-51 Lower Stone Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2015-11-12 14:53:49,unknown,4.0,4.0,10091196173.0,Address Matched +300204960062009060815534232088371,Flat 52 Lee Heights,Bambridge Court,,ME14 2LG,7345692668,D,B,63,81,Flat,Detached,2009-06-08,E07000110,E14000804,Kent,2009-06-08,rental (private),75,74,199,202.0,2.3,30,2.3,77.0,44.0,225.0,156.0,276.0,126.0,76.5,Single,N,1st,N,4.0,2602.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,9.0,0.0,"Electric immersion, standard tariff",Very Poor,Poor,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Room heaters, electric",Very Poor,Poor,Appliance thermostats,Good,Good,Low energy lighting in 9% of fixed outlets,Very Poor,Very Poor,electricity - this is for backwards compatibility only and should not be used,0.0,unheated corridor,1.52,2.23,0.0,N,natural,"Flat 52 Lee Heights, Bambridge Court",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2009-06-08 15:53:42,rental (private),,,10022893023.0,Address Matched +797384709612012060514084599020895,Flat 11 Leyland Gate,Strachan Close,,ME15 6ZT,8515998968,B,B,88,88,Flat,NO DATA!,2012-06-05,E07000110,E14000804,Kent,2012-06-05,new dwelling,92,92,50,50.0,0.7,10,0.7,45.0,45.0,186.0,186.0,88.0,88.0,78.0,standard tariff,,top floor,,,,,NO DATA!,NO DATA!,,,,8.0,,From main system,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.18 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.12 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,,,NO DATA!,"Flat 11 Leyland Gate, Strachan Close",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2012-06-05 14:08:45,,8.0,8.0,10014313095.0,Address Matched +536319352802020073115371374907698,"239a, Queens Road",,,ME16 0LB,3803959768,D,B,63,84,Bungalow,Detached,2020-07-31,E07000110,E14000804,Kent,2020-07-31,marketed sale,56,81,265,97.0,3.9,47,1.5,67.0,67.0,638.0,453.0,141.0,71.0,83.0,Unknown,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"239a, Queens Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2020-07-31 15:37:13,owner-occupied,,,200003657073.0,Address Matched +915165439842013041706235207779838,"28, Silver Tree Close",,,ME5 9ST,2892037078,C,B,74,88,House,Mid-Terrace,2013-04-17,E07000110,E14000700,Kent,2013-04-17,marketed sale,74,89,140,45.0,2.4,27,0.8,50.0,50.0,387.0,343.0,127.0,71.0,89.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"28, Silver Tree Close",Maidstone,Faversham and Mid Kent,CHATHAM,England and Wales: 1983-1990,2013-04-17 06:23:52,owner-occupied,9.0,9.0,200003709227.0,Address Matched +47916470742008121608015857589058,Flat 20,Bellwood Court,Sutton Road,ME15 8RB,3756175568,B,B,84,85,Flat,Semi-Detached,2008-12-15,E07000110,E14000700,Kent,2008-12-16,new dwelling,83,84,156,149.0,1.1,26,1.0,33.0,21.0,157.0,158.0,60.0,60.0,41.3,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,2.0,,From main system,Very Good,Very Good,Average thermal transmittance = 0.19 W/m?K,Very Good,Very Good,Fully double glazed,Good,Good,Average thermal transmittance = 0.28 W/m?K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 40% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,,,NO DATA!,"Flat 20, Bellwood Court, Sutton Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2008-12-16 08:01:58,,5.0,2.0,10014306265.0,Address Matched +759263444412012031208360092920997,Flat 2 Hardwick House,Northumberland Road,,ME15 7TH,9702426968,C,C,73,74,Flat,Semi-Detached,2012-03-12,E07000110,E14000700,Kent,2012-03-12,rental (social),76,77,214,208.0,1.4,41,1.4,33.0,22.0,232.0,234.0,85.0,85.0,33.85,Unknown,Y,Ground,N,,2307.0,100.0,double glazing installed before 2002,Normal,0.0,2.0,2.0,50.0,0.0,Community scheme,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,Community scheme,Good,Good,"Flat rate charging, TRVs",Average,Average,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (community),0.0,heated corridor,,2.45,0.0,,natural,"Flat 2 Hardwick House, Northumberland Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2012-03-12 08:36:00,rental (social),6.0,3.0,200003684326.0,Address Matched +1137713674512014051913343990940928,Workhouse Cottage,Sittingbourne Road,Detling,ME14 3EP,9854403278,G,D,18,63,House,Detached,2014-05-19,E07000110,E14000700,Kent,2014-05-19,marketed sale,35,74,344,113.0,8.3,71,2.8,125.0,63.0,2598.0,1354.0,268.0,105.0,117.0,Unknown,N,NODATA!,,,2107.0,0.0,single glazing,Normal,0.0,6.0,6.0,0.0,2.0,From main system,Poor,Average,"Solid, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, LPG",Poor,Average,"Programmer, TRVs and bypass",Average,Average,No low energy lighting,Very Poor,Very Poor,LPG (not community),0.0,NO DATA!,,,0.0,,natural,"Workhouse Cottage, Sittingbourne Road, Detling",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2014-05-19 13:34:39,owner-occupied,17.0,0.0,200003690122.0,Address Matched +1288552279402015030314430039350978,"41, Westwood Road",,,ME15 6BG,490273378,E,C,51,75,House,Semi-Detached,2015-03-03,E07000110,E14000804,Kent,2015-03-03,none of the above,44,68,379,189.0,5.4,67,2.7,104.0,52.0,946.0,721.0,147.0,86.0,81.0,Single,Y,NODATA!,,,2103.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Room thermostat only,Poor,Poor,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"41, Westwood Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2015-03-03 14:43:00,owner-occupied,,,200003676167.0,Address Matched +1602310339222018012218505065028788,"2, Cutbush Close",Harrietsham,,ME17 1LY,8628395578,D,C,63,79,House,Semi-Detached,2018-01-22,E07000110,E14000700,Kent,2018-01-22,marketed sale,59,77,238,121.0,4.4,42,2.3,130.0,67.0,737.0,650.0,159.0,75.0,105.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,2.0,5.0,5.0,5.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 5% of fixed outlets,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"2, Cutbush Close, Harrietsham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1991-1995,2018-01-22 18:50:50,owner-occupied,,,10022892560.0,Address Matched +9aad5fa4dd21898c8d6f280d4609ac06dadf812d24ab92c1711f79af53a9b697,31 Sheals Crescent,,,ME15 6TW,10001473843,C,B,70,88,House,Mid-Terrace,2021-08-27,E07000110,E14000804,Kent,2021-08-30,rental,65,87,199,65.0,3.7,35,1.3,82.0,82.0,622.0,396.0,99.0,69.0,107.0,Unknown,Y,,,,,100.0,double glazing installed during or after 2002,Normal,1.0,8.0,8.0,100.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 350 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.32,0.0,N,natural,31 Sheals Crescent,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2021-08-30 12:29:12,Rented (private),13.0,,200003681945.0,Energy Assessor +195571412022020020615104225768260,"14, Lancet Lane",,,ME15 9RX,6229105568,C,C,74,79,House,Detached,2020-02-06,E07000110,E14000804,Kent,2020-02-06,rental (private),67,73,151,121.0,8.1,27,6.5,134.0,134.0,1367.0,1262.0,133.0,133.0,303.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,11.0,11.0,100.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"14, Lancet Lane",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2020-02-06 15:10:42,rental (private),,,200003677878.0,Address Matched +379744459222014022810393708648764,57 Sunningdale Court,Square Hill Road,,ME15 7TU,6033558668,C,C,74,79,Flat,Mid-Terrace,2014-02-24,E07000110,E14000804,Kent,2014-02-28,none of the above,78,84,166,122.0,1.4,32,1.0,35.0,35.0,250.0,200.0,124.0,99.0,45.0,Single,Y,9th,N,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,80.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,4.597,,0.0,,natural,"57 Sunningdale Court, Square Hill Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2014-02-28 10:39:37,rental (social),5.0,4.0,200003696627.0,Address Matched +419519739742010011208484072109098,"23a, Upper Road",,,ME15 7RB,9740331768,C,C,80,80,Flat,Enclosed End-Terrace,2010-01-11,E07000110,E14000804,Kent,2010-01-12,rental (social),77,78,229,226.0,1.4,38,1.4,24.0,18.0,249.0,250.0,70.0,70.0,35.93,Single,Y,Ground,N,2.0,2106.0,100.0,double glazing installed before 2002,Normal,0.0,2.0,2.0,70.0,0.0,From main system,Very Good,Very Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 70% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.35,0.0,N,natural,"23a, Upper Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2010-01-12 08:48:40,rental (social),,,200003686777.0,Address Matched +755648699262015062912050115418255,"158, Roseholme",,,ME16 8DT,5152995968,D,C,63,78,Maisonette,End-Terrace,2015-06-29,E07000110,E14000804,Kent,2015-06-29,marketed sale,59,80,287,141.0,2.9,51,1.4,79.0,39.0,510.0,273.0,113.0,90.0,57.0,Single,Y,2nd,Y,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,0.0,0.0,From main system,Good,Good,(another dwelling below),NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,unheated corridor,4.63,,,N,natural,"158, Roseholme",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2015-06-29 12:05:01,owner-occupied,,,200003656480.0,Address Matched +1339633019022015070319074807778765,"32, Norrington Road",,,ME15 9RA,6029137378,D,B,67,84,House,Semi-Detached,2015-07-03,E07000110,E14000804,Kent,2015-07-03,FiT application,62,81,230,103.0,3.8,41,1.7,58.0,58.0,703.0,537.0,107.0,71.0,94.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,7.0,7.0,100.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, insulated at rafters",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"32, Norrington Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2015-07-03 19:07:48,owner-occupied,,,200003674960.0,Address Matched +1124478849962014041120053782798044,"13, Freeman Way",,,ME15 8AN,4889412278,B,A,90,93,House,Semi-Detached,2014-04-11,E07000110,E14000700,Kent,2014-04-11,FiT application,88,92,41,22.0,1.1,9,0.6,69.0,69.0,529.0,474.0,110.0,77.0,124.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,6.0,6.0,94.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 94% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,,natural,"13, Freeman Way",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2014-04-11 20:05:37,owner-occupied,36.0,34.0,200003684381.0,Address Matched +9ad2544370f238cbff8eb091e929cb4f4e2e4e62398080dbc2868a02ae49c2bd,"29, Salisbury Road",,,ME14 2TY,10001448989,D,B,65,85,House,Mid-Terrace,2021-07-19,E07000110,E14000804,Kent,2021-07-19,rental,62,84,214,76.0,3.9,37,1.4,92.0,92.0,729.0,476.0,129.0,79.0,105.0,Single,Y,,,,,100.0,double glazing installed during or after 2002,Normal,2.0,7.0,7.0,87.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, electric",,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 87% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.63,0.0,N,natural,"29, Salisbury Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2021-07-19 16:55:35,Rented (private),15.0,,200003703410.0,Address Matched +1635803243952018060810360793080055,6 Paint Pot Cottages,Musket Lane,Hollingbourne,ME17 1UU,530338578,B,A,83,94,House,Semi-Detached,2018-06-08,E07000110,E14000700,Kent,2018-06-08,new dwelling,85,96,92,16.0,1.5,15,0.2,64.0,64.0,244.0,246.0,103.0,55.0,96.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,"Room heaters, wood logs",,,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,"Boiler & underfloor, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"6 Paint Pot Cottages, Musket Lane, Hollingbourne",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2018-06-08 10:36:07,unknown,20.0,20.0,10093307344.0,Address Matched +174118910832008102923102665268094,The Lodge,Maidstone Road,Paddock Wood,TN12 6PY,1445053568,E,E,39,45,Bungalow,Detached,2008-10-29,E07000110,E14000804,Kent,2008-10-29,marketed sale,31,36,565,499.0,6.2,104,5.6,53.0,27.0,728.0,669.0,76.0,66.0,77.97,Unknown,Y,NO DATA!,,,2107.0,0.0,INVALID!,Normal,1.0,3.0,3.0,0.0,2.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Cavity wall, with internal insulation",Good,Good,"Room heaters, coal",,,"Flat, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Poor,Poor,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,3.1,0.0,N,natural,"The Lodge, Maidstone Road, Paddock Wood",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1900-1929,2008-10-29 23:10:26,owner-occupied,,,200003654950.0,Address Matched +9adec5659c19b539c82473f6acaf951d775423314b83762f6d06cc29834db2bc,FLAT 9,115 SEYMOUR DRIVE,,TN12 9GS,10001665098,B,B,83,83,Flat,Detached,2021-07-30,E07000110,E14000804,Kent,2021-07-30,new dwelling,88,88,90,90.0,0.8,16,0.8,54.0,54.0,158.0,158.0,62.0,62.0,52.0,standard tariff,,3,Y,,,100.0,,,,,,100.0,0.0,From main system,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.22 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.39,,,,"FLAT 9, 115 SEYMOUR DRIVE",Maidstone,Maidstone and The Weald,MARDEN,2021,2021-07-30 10:48:49,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,10.0,,10094441162.0,Energy Assessor +9ae1cac838938502eb4972f1b45c5ee03267d27cd58f2f45cf3ffc184396b791,3 RAYNHAM VILLAS,HUNTON ROAD,MARDEN,TN12 9SZ,10000236135,D,B,66,83,House,Semi-Detached,2021-08-05,E07000110,E14000804,Kent,2021-08-08,rental,70,86,205,83.0,2.4,35,1.0,55.0,55.0,334.0,335.0,417.0,277.0,68.0,dual,N,,,,,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,100.0,0.0,From main system,Very Poor,Poor,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, with external insulation",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Air source heat pump, radiators, electric",Very Good,Very Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,,,2.4,0.0,N,natural,"3 RAYNHAM VILLAS, HUNTON ROAD, MARDEN",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1900-1929,2021-08-08 14:55:12,Rented (social),9.0,,200003723873.0,Energy Assessor +1637097136832018060420085653078201,1 Reubens Cottages,Battle Lane,Marden,TN12 9AJ,3153248578,F,B,27,86,House,Semi-Detached,2018-06-04,E07000110,E14000804,Kent,2018-06-04,non marketed sale,20,66,639,181.0,9.9,108,2.8,120.0,68.0,1687.0,983.0,313.0,161.0,91.0,dual,N,NODATA!,,,2401.0,92.0,double glazing installed before 2002,Normal,2.0,4.0,2.0,25.0,0.0,"Electric immersion, off-peak",Very Poor,Poor,"Solid, no insulation (assumed)",NO DATA!,,Mostly double glazing,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,"Pitched, 200 mm loft insulation",Good,Good,Electric storage heaters,Poor,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 25% of fixed outlets,Average,Average,electricity (not community),0.0,NO DATA!,,,,N,natural,"1 Reubens Cottages, Battle Lane, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1950-1966,2018-06-04 20:08:56,owner-occupied,,,200003674093.0,Address Matched +9afffc876b22f03d94149ba28538705b945e833a4a62d33b9c17352782e220c5,4a Hollingworth Road,,,ME15 9HG,10001519930,C,C,76,77,Flat,Mid-Terrace,2021-08-23,E07000110,E14000700,Kent,2021-08-23,rental,77,79,166,150.0,1.7,29,1.6,53.0,53.0,302.0,272.0,86.0,86.0,60.0,Single,Y,01,Y,,,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,(another dwelling below),,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,no corridor,,2.31,0.0,N,natural,4a Hollingworth Road,Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2021-08-23 15:39:04,Rented (social),6.0,,200003683019.0,Energy Assessor +1726869081852020022109154429200560,"1, Walter Close",Otham,,ME15 8YX,5017194678,B,A,84,93,House,Detached,2020-02-21,E07000110,E14000700,Kent,2020-02-21,new dwelling,85,94,83,25.0,1.9,14,0.6,86.0,86.0,300.0,302.0,101.0,56.0,128.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.10 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.19 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"1, Walter Close, Otham",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2020-02-21 09:15:44,unknown,10.0,10.0,10094440594.0,Address Matched +51027879642017020111381044337598,Rose Cottage,Chapel Lane,Staplehurst,TN12 0AJ,2659473468,E,D,43,66,House,Detached,2017-01-31,E07000110,E14000804,Kent,2017-02-01,marketed sale,42,63,385,225.0,6.6,61,3.8,107.0,72.0,1393.0,1049.0,111.0,75.0,108.0,Single,Y,NODATA!,,,2106.0,,double glazing installed before 2002,Much More Than Typical,4.0,5.0,5.0,53.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Mostly double glazing,Average,Average,"Timber frame, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 53% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"Rose Cottage, Chapel Lane, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: before 1900,2017-02-01 11:38:10,owner-occupied,,,200003679031.0,Address Matched +1451954129742016060921505544560788,"22, Snowdon Avenue",,,ME14 5NW,2798825478,D,C,55,74,House,Semi-Detached,2016-06-08,E07000110,E14000804,Kent,2016-06-09,marketed sale,49,71,280,147.0,6.1,49,3.2,99.0,72.0,1148.0,909.0,193.0,80.0,124.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,8.0,8.0,63.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 63% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,2.3,,N,"mechanical, supply and extract","22, Snowdon Avenue",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1976-1982,2016-06-09 21:50:55,owner-occupied,,,200003705770.0,Address Matched +1551175929402017061108010250239408,"9, Grove Road",,,ME15 9AR,1458922578,E,C,48,80,House,Semi-Detached,2017-06-10,E07000110,E14000700,Kent,2017-06-11,marketed sale,41,76,410,140.0,5.6,72,1.9,52.0,52.0,958.0,567.0,189.0,72.0,77.0,Unknown,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,100.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"9, Grove Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2017-06-11 08:01:02,owner-occupied,,,200003713522.0,Address Matched +951128934512013061318023098970905,2 Rosemary Corner,Goudhurst Road,Marden,TN12 9JY,9562489078,D,C,60,80,House,Semi-Detached,2013-06-13,E07000110,E14000804,Kent,2013-06-13,marketed sale,55,77,218,100.0,5.5,42,2.6,106.0,63.0,868.0,647.0,157.0,76.0,130.0,Single,Y,NODATA!,,,2106.0,90.0,double glazing installed before 2002,Normal,3.0,6.0,6.0,32.0,1.0,From main system,Average,Average,"Suspended, no insulation (assumed)",,,Mostly double glazing,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 32% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"2 Rosemary Corner, Goudhurst Road, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1930-1949,2013-06-13 18:02:30,owner-occupied,22.0,7.0,200003669226.0,Address Matched +301937599222019052417214553378791,"23, Butcher Close",Staplehurst,,TN12 0TJ,9583903668,C,B,76,91,House,Mid-Terrace,2019-05-23,E07000110,E14000804,Kent,2019-05-24,rental (private),77,92,156,33.0,1.7,28,0.4,48.0,48.0,309.0,279.0,78.0,51.0,63.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,3.0,3.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, 270 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"23, Butcher Close, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1967-1975,2019-05-24 17:21:45,rental (private),,,200003678852.0,Address Matched +238883622442020021810472151809738,"4, St. Davids Gate",,,ME16 9EP,486128568,C,B,74,82,House,Detached,2020-02-17,E07000110,E14000804,Kent,2020-02-18,marketed sale,69,77,143,100.0,4.7,25,3.3,154.0,110.0,749.0,761.0,134.0,79.0,186.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,2.0,8.0,8.0,60.0,0.0,From main system,Good,Good,"Suspended, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, mains gas",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 60% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"4, St. Davids Gate",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2020-02-18 10:47:21,owner-occupied,,,10022895928.0,Address Matched +655889449922011071823534918788789,Bumbles,Workhouse Lane,East Farleigh,ME15 0QB,8150458868,E,D,52,55,Bungalow,Detached,2011-07-18,E07000110,E14000804,Kent,2011-07-18,marketed sale,44,46,249,233.0,8.0,59,7.5,132.0,66.0,1185.0,1155.0,205.0,205.0,135.5,dual,N,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,6.0,6.0,0.0,0.0,From main system,Good,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, oil",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,oil (not community),0.0,NO DATA!,,2.44,0.0,,natural,"Bumbles, Workhouse Lane, East Farleigh",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2011-07-18 23:53:49,owner-occupied,18.0,0.0,200003713034.0,Address Matched +9b28d9c53f1f514f60325d9e9413c7602bfa6f58aaed74e4d3373e0ca59d6b53,"8, Boughton Parade Flats",Loose Road,,ME15 9QE,10001595636,E,E,39,48,Flat,End-Terrace,2021-07-24,E07000110,E14000804,Kent,2021-07-24,rental,41,48,426,355.0,5.5,72,4.6,81.0,81.0,1404.0,1128.0,234.0,234.0,77.0,dual,N,02,Y,,,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,75.0,0.0,Electric instantaneous at point of use,Very Poor,Poor,(other premises below),,,Fully double glazed,Good,Good,"Cavity wall, filled cavity and internal insulation",Good,Good,"Room heaters, electric",,,"Flat, limited insulation",Poor,Poor,"Boiler and radiators, electric",Very Poor,Poor,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,electricity (not community),0.0,no corridor,,2.42,0.0,N,natural,"8, Boughton Parade Flats, Loose Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2021-07-24 11:46:43,Rented (private),8.0,,200003680800.0,Address Matched +1628403909022018050216111107228928,"51, Wallis Avenue",,,ME15 9HS,2065087578,B,B,82,82,Flat,Detached,2018-05-02,E07000110,E14000700,Kent,2018-05-02,new dwelling,85,85,102,102.0,1.3,18,1.3,51.0,51.0,218.0,218.0,95.0,95.0,73.0,standard tariff,,ground floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.19 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"51, Wallis Avenue",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2018-05-02 16:11:11,unknown,10.0,10.0,10093304765.0,Address Matched +823596743652012081012005898920706,Flat 7 Bolingbroke House,"21, London Road",,ME16 8JE,7664380078,C,C,70,78,Flat,Mid-Terrace,2012-08-10,E07000110,E14000804,Kent,2012-08-10,marketed sale,73,83,194,122.0,1.8,37,1.1,59.0,30.0,329.0,232.0,68.0,69.0,49.0,Unknown,Y,Ground,N,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,unheated corridor,2.0,,0.0,,natural,"Flat 7 Bolingbroke House, 21, London Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2012-08-10 12:00:58,owner-occupied,5.0,0.0,200003668774.0,Address Matched +397832680202009111716255563919938,43 Oxford Gardens,,,ME15 8FJ,3269289668,C,C,69,70,House,End-Terrace,2009-11-17,E07000110,E14000700,Kent,2009-11-17,new dwelling,79,79,149,146.0,2.3,22,2.3,68.0,54.0,355.0,358.0,189.0,189.0,103.31,standard tariff,,NO DATA!,,,2207.0,,NO DATA!,NO DATA!,,,,6.0,0.0,From main system,Poor,Good,Average thermal transmittance 0.18 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.28 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.12 W/m?K,Very Good,Very Good,"Air source heat pump, radiators, electric",Poor,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",0.0,NO DATA!,,2.4,,,NO DATA!,43 Oxford Gardens,Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2009-11-17 16:25:55,,8.0,6.0,10014308982.0,Address Matched +380460950702009101409261566819848,"12, Reinden Grove",Downswood,,ME15 8TH,7719958668,C,C,69,77,Bungalow,Semi-Detached,2009-10-14,E07000110,E14000700,Kent,2009-10-14,marketed sale,65,74,312,236.0,2.3,52,1.8,44.0,22.0,360.0,307.0,89.0,68.0,44.7,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.35,0.0,N,natural,"12, Reinden Grove, Downswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1976-1982,2009-10-14 09:26:15,owner-occupied,,,200003686338.0,Address Matched +9b3594bd35637ceb7e6bcc0dba84c0c5be93e95d2c359712eb2a35d26fb2c06f,9 CARLTON GARDENS,,,ME15 6EA,10001613628,C,B,72,87,Bungalow,Semi-Detached,2021-07-13,E07000110,E14000804,Kent,2021-07-13,rental,70,86,198,78.0,2.6,35,1.1,62.0,62.0,406.0,366.0,122.0,74.0,74.0,Single,Y,,,,,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.35,0.0,N,natural,9 CARLTON GARDENS,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2021-07-13 19:04:25,Rented (social),7.0,,200003728433.0,Energy Assessor +65185909922016021921231404918076,"21, Heathfield Road",Penenden Heath,,ME14 2AD,7049064468,D,C,65,78,House,Detached,2016-02-19,E07000110,E14000804,Kent,2016-02-19,marketed sale,57,72,211,129.0,5.8,38,3.7,123.0,81.0,1023.0,900.0,163.0,81.0,154.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,4.0,7.0,7.0,48.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 48% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"21, Heathfield Road, Penenden Heath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2016-02-19 21:23:14,owner-occupied,,,200003673218.0,Address Matched +84356339762018053123492896998478,"315a, Tonbridge Road",,,ME16 8ND,7917306468,E,C,41,72,Flat,End-Terrace,2018-05-31,E07000110,E14000804,Kent,2018-05-31,rental (private),40,72,506,207.0,4.3,86,1.8,49.0,48.0,886.0,306.0,195.0,99.0,51.0,Unknown,Y,1st,Y,,2602.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,75.0,0.0,"Electric immersion, off-peak",Poor,Poor,(another dwelling below),NO DATA!,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, electric",Very Poor,Poor,Appliance thermostats,Good,Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,electricity (not community),0.0,no corridor,,,,N,natural,"315a, Tonbridge Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2018-05-31 23:49:28,rental (private),,,200003695263.0,Address Matched +1527919069802017031515313355039958,"67, Milton Street",,,ME16 8JY,7865460578,D,B,60,86,House,Mid-Terrace,2017-03-15,E07000110,E14000804,Kent,2017-03-15,marketed sale,54,85,272,68.0,3.9,48,1.0,108.0,54.0,660.0,401.0,120.0,54.0,81.0,Unknown,Y,NODATA!,,,2104.0,60.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,0.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Partial double glazing,Poor,Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"67, Milton Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2017-03-15 15:31:33,owner-occupied,,,200003655395.0,Address Matched +1761744354712019103009530194219466,"4, Morton Close",,,ME15 9LY,4646447678,D,B,65,82,House,Semi-Detached,2019-10-29,E07000110,E14000700,Kent,2019-10-30,marketed sale,64,82,231,104.0,3.2,40,1.5,129.0,65.0,526.0,503.0,140.0,69.0,79.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,0.0,0.0,From main system,Good,Good,"Solid, limited insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"4, Morton Close",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1996-2002,2019-10-30 09:53:01,owner-occupied,,,200003725173.0,Address Matched +1568866685552017082122385295230350,"1, Linton Gore",Coxheath,,ME17 4ES,3043553578,C,B,69,83,Bungalow,Semi-Detached,2017-08-21,E07000110,E14000804,Kent,2017-08-21,marketed sale,65,81,207,105.0,3.5,37,1.8,70.0,70.0,600.0,515.0,141.0,88.0,97.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,4.0,4.0,88.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 88% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"1, Linton Gore, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2017-08-21 22:38:52,owner-occupied,,,200003715154.0,Address Matched +57272830922009021811070888588631,4 Wexford Place,,,ME15 9GF,3832308568,C,C,79,80,Flat,Detached,2009-02-18,E07000110,E14000700,Kent,2009-02-18,new dwelling,77,78,185,179.0,1.8,0,1.7,49.0,30.0,265.0,268.0,73.0,73.0,11.48,standard tariff,,top floor,,,,,NO DATA!,NO DATA!,,,,5.0,,SAP05:Hot-Water,,,Average thermal transmittance 0.24 W/m²K,Good,Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.33 W/m²K,Good,Good,SAP05:Secondary-Heating,,,Average thermal transmittance 0.14 W/m²K,Very Good,Very Good,SAP05:Main-Heating,,,SAP05:Main-Heating-Controls,,,Low energy lighting in 33% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,,,NO DATA!,4 Wexford Place,Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2009-02-18 11:07:08,,15.0,5.0,10022895454.0,Address Matched +526971814112010081317583399900078,"15, Reinden Grove",Downswood,,ME15 8TH,823498768,D,C,61,72,House,Semi-Detached,2010-08-13,E07000110,E14000700,Kent,2010-08-13,marketed sale,55,67,351,254.0,3.6,59,2.6,65.0,32.0,523.0,423.0,143.0,102.0,61.4,Single,Y,NO DATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,0.0,1.0,From main system,Average,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, insulated (assumed)",Average,Average,"Boiler and radiators, mains gas",Average,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.3,0.0,N,natural,"15, Reinden Grove, Downswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2010-08-13 17:58:33,owner-occupied,,,200003686341.0,Address Matched +471753989062010120813184224568050,Flat 2,39 High Street,,ME14 1JH,5287894768,F,E,33,52,Flat,Detached,2010-12-06,E07000110,E14000804,Kent,2010-12-08,rental (private),53,49,522,573.0,2.9,79,3.2,39.0,22.0,632.0,383.0,148.0,167.0,37.33,Single,N,2nd,Y,3.0,2603.0,100.0,secondary glazing,Normal,0.0,2.0,2.0,0.0,0.0,Electric instantaneous at point of use,Very Poor,Poor,(other premises below),,,Full secondary glazing,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,(another dwelling above),,,"Room heaters, electric",Very Poor,Poor,Programmer and appliance thermostats,Good,Good,No low energy lighting,Very Poor,Very Poor,electricity - this is for backwards compatibility only and should not be used,0.0,unheated corridor,4.5,2.27,0.0,N,natural,"Flat 2, 39 High Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2010-12-08 13:18:42,rental (private),,,10014311363.0,Address Matched +9b6659849a0f3088aa530efa75fd1ead0a99d672d61091ea953207b0e2a5ac16,FLAT 7,RAYLEIGH HOUSE,KINGS REACH,ME15 7QR,10001692931,E,C,52,70,Flat,Detached,2021-06-29,E07000110,E14000700,Kent,2021-07-01,ECO assessment,49,71,377,210.0,4.0,66,2.2,114.0,57.0,780.0,438.0,90.0,91.0,61.0,Single,Y,02,Y,,,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,0.0,0.0,From main system,Good,Good,(another dwelling below),,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Average,Average,"Room heaters, electric",,,"Pitched, insulated (assumed)",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,unheated corridor,6.0,2.75,0.0,N,natural,"FLAT 7, RAYLEIGH HOUSE, KINGS REACH",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2021-07-01 16:30:47,Rented (social),8.0,,200003714053.0,Energy Assessor +754773091112012022717550499220892,"17, Yew Tree Close",,,ME5 8XN,8295195968,C,C,73,74,House,End-Terrace,2012-02-27,E07000110,E14000700,Kent,2012-02-27,marketed sale,74,76,164,155.0,2.2,31,2.1,72.0,40.0,340.0,344.0,106.0,106.0,70.72,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,20.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 20% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,2.32,0.0,,natural,"17, Yew Tree Close",Maidstone,Faversham and Mid Kent,CHATHAM,England and Wales: 1976-1982,2012-02-27 17:55:04,owner-occupied,10.0,2.0,200003676747.0,Address Matched +130809059022018081118401209918948,Flat 2 Summer Court,Wheeler Street,,ME14 2UX,4027599468,C,C,76,78,Flat,Semi-Detached,2018-08-09,E07000110,E14000804,Kent,2018-08-11,rental (social),78,80,147,135.0,1.7,26,1.6,108.0,54.0,271.0,277.0,76.0,76.0,66.0,Single,Y,Ground,N,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,0.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,no corridor,,,,N,natural,"Flat 2 Summer Court, Wheeler Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2018-08-11 18:40:12,rental (social),,,10022895715.0,Address Matched +165063111352008101417052905989553,"13, Church Walk",Headcorn,,TN27 9NP,5378152568,G,F,20,25,House,End-Terrace,2008-10-13,E07000110,E14000700,Kent,2008-10-14,marketed sale,29,34,546,481.0,7.8,97,6.9,67.0,39.0,1339.0,1259.0,92.0,78.0,80.0,dual,Y,NO DATA!,,,2107.0,0.0,INVALID!,Normal,2.0,4.0,4.0,27.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, bottled gas",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Poor,Poor,Low energy lighting in 27% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.2,0.0,N,natural,"13, Church Walk, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,England and Wales: before 1900,2008-10-14 17:05:29,owner-occupied,,,200003721685.0,Address Matched +1568857259102017082109540356332298,"2, Saxon Way",Tovil,,ME15 6AL,2133553578,B,A,85,92,House,Detached,2017-08-21,E07000110,E14000804,Kent,2017-08-21,new dwelling,86,93,79,35.0,2.2,13,0.9,83.0,83.0,383.0,384.0,109.0,60.0,166.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.10 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.28 W/m-¦K,Very Good,Very Good,"Room heaters, wood logs",,,Average thermal transmittance 0.12 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"2, Saxon Way, Tovil",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2017-08-21 09:54:03,owner-occupied,45.0,45.0,10093304956.0,Address Matched +441754799802010022321044575202328,"27, Merton Road",Bearsted,,ME15 8LL,1825492768,D,C,62,72,House,End-Terrace,2010-02-22,E07000110,E14000700,Kent,2010-02-23,marketed sale,56,68,303,224.0,4.1,51,3.0,80.0,42.0,614.0,465.0,109.0,109.0,81.17,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,5.0,5.0,10.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 10% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.39,0.0,N,natural,"27, Merton Road, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2010-02-23 21:04:45,owner-occupied,,,200003686014.0,Address Matched +397679580502009111713041367919438,6 Greenfields View,Oxford Gardens,,ME15 8FJ,597289668,C,C,75,75,Flat,NO DATA!,2009-11-17,E07000110,E14000700,Kent,2009-11-17,new dwelling,82,82,152,152.0,1.4,23,1.4,42.0,42.0,191.0,191.0,150.0,150.0,63.14,standard tariff,,ground floor,,,2207.0,,NO DATA!,NO DATA!,,,,4.0,0.0,From main system,Poor,Good,Average thermal transmittance 0.18 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.28 W/m?K,Very Good,Very Good,,,,(another dwelling above),,,"Air source heat pump, radiators, electric",Poor,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",0.0,NO DATA!,,2.5,,,NO DATA!,"6 Greenfields View, Oxford Gardens",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2009-11-17 13:04:13,,5.0,4.0,10014309007.0,Address Matched +418645629442017112819265878139958,Gurneys Cottage,Salts Lane,Loose,ME15 0BD,5471821768,E,B,47,83,House,Semi-Detached,2017-08-15,E07000110,E14000804,Kent,2017-11-28,marketed sale,40,80,421,115.0,5.5,74,1.5,76.0,56.0,989.0,482.0,104.0,69.0,73.0,dual,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,64.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Granite or whinstone, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 64% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"Gurneys Cottage, Salts Lane, Loose",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2017-11-28 19:26:58,owner-occupied,,,200003674886.0,Address Matched +502195435712011060719490191090879,"4, Gentian Close",Weavering,,ME14 5UE,8954517768,C,C,75,78,Flat,Semi-Detached,2011-06-07,E07000110,E14000700,Kent,2011-06-07,rental (private),78,82,154,129.0,1.6,29,1.4,62.0,33.0,274.0,253.0,71.0,71.0,55.19,Single,Y,1st,Y,,2106.0,60.0,secondary glazing,Normal,0.0,3.0,3.0,11.0,0.0,From main system,Good,Good,(other premises below),,,Partial secondary glazing,Poor,Poor,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 11% of fixed outlets,Poor,Poor,mains gas (not community),0.0,heated corridor,,2.31,0.0,,natural,"4, Gentian Close, Weavering",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2011-06-07 19:49:01,rental (private),9.0,1.0,200003689195.0,Address Matched +1374534579442015111112093334959508,Flat 14 Phoenix Court,Longshaw Road,,ME15 9JD,1444979378,B,B,82,82,Flat,NO DATA!,2015-11-10,E07000110,E14000700,Kent,2015-11-11,new dwelling,86,86,99,99.0,1.2,17,1.2,48.0,48.0,226.0,226.0,89.0,89.0,69.0,standard tariff,,top floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.19 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.15 W/m-¦K,Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Flat 14 Phoenix Court, Longshaw Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2015-11-11 12:09:33,unknown,10.0,10.0,10014315921.0,Address Matched +481568929952010050707361896000177,21 Mandeville Court,Union Street,,ME14 1JR,1764965768,C,C,75,78,Flat,Detached,2010-05-07,E07000110,E14000804,Kent,2010-05-07,marketed sale,69,71,322,304.0,2.0,49,1.8,38.0,24.0,172.0,154.0,109.0,109.0,40.2,Unknown,N,Ground,N,3.0,2401.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,40.0,0.0,"Electric immersion, standard tariff",Poor,Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,(another dwelling above),,,Electric storage heaters,Poor,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 40% of fixed outlets,Average,Average,electricity - this is for backwards compatibility only and should not be used,0.0,heated corridor,,2.4,0.0,N,natural,"21 Mandeville Court, Union Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2010-05-07 07:36:18,owner-occupied,,,200003699205.0,Address Matched +1559052879962017071217430512898013,53 Farleigh Court,Farleigh Lane,,ME16 9BJ,1162782578,C,C,69,78,Flat,Semi-Detached,2017-07-11,E07000110,E14000804,Kent,2017-07-12,rental (social),68,80,221,134.0,2.4,39,1.5,78.0,45.0,419.0,256.0,91.0,92.0,63.0,Single,Y,Ground,N,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,29.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 29% of fixed outlets,Average,Average,mains gas (not community),0.0,no corridor,,,,N,natural,"53 Farleigh Court, Farleigh Lane",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2017-07-12 17:43:05,rental (social),,,200003684272.0,Address Matched +1298322209262015032113130704808215,5 Daniel House,Lesley Place,,ME16 0TZ,1034044378,C,C,78,80,Flat,Semi-Detached,2015-03-20,E07000110,E14000804,Kent,2015-03-21,rental,67,69,272,255.0,2.0,46,1.8,34.0,34.0,181.0,151.0,120.0,120.0,43.0,Unknown,N,2nd,N,,2402.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,100.0,0.0,"Electric immersion, off-peak",Average,Poor,(another dwelling below),NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,Portable electric heaters (assumed),,,(another dwelling above),,,Electric storage heaters,Average,Very Poor,Automatic charge control,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,no corridor,,,,N,natural,"5 Daniel House, Lesley Place",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1991-1995,2015-03-21 13:13:07,owner-occupied,,,200003721260.0,Address Matched +1427747759942016032523031045362698,Timbold Hill House,Coalpit Lane,Frinsted,ME9 0SS,1994653478,E,C,46,79,House,Detached,2016-03-21,E07000110,E14000700,Kent,2016-03-25,rental (private),39,69,205,63.0,14.0,53,5.7,208.0,107.0,2020.0,1321.0,187.0,93.0,255.0,Single,N,NODATA!,,,2104.0,100.0,secondary glazing,Normal,2.0,10.0,10.0,6.0,1.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Full secondary glazing,Good,Good,"Timber frame, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 25 mm loft insulation",Poor,Poor,"Boiler and radiators, oil",Average,Average,Programmer and room thermostat,Average,Average,Low energy lighting in 6% of fixed outlets,Very Poor,Very Poor,oil (not community),0.0,NO DATA!,,2.38,,N,natural,"Timbold Hill House, Coalpit Lane, Frinsted",Maidstone,Faversham and Mid Kent,SITTINGBOURNE,England and Wales: before 1900,2016-03-25 23:03:10,rental (private),,,200003714563.0,Address Matched +9b853571ed0108392b4b774f04e2480e30f85fc1036777df2ef9fa23352bea73,24 Chartwell Drive,,,ME16 0WS,10001436681,C,B,72,87,House,End-Terrace,2021-08-11,E07000110,E14000804,Kent,2021-08-12,marketed sale,72,87,173,61.0,2.4,30,0.9,71.0,71.0,401.0,387.0,140.0,68.0,80.0,Single,Y,,,,,100.0,double glazing installed during or after 2002,Normal,1.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,"Pitched, 350 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.3,0.0,N,natural,24 Chartwell Drive,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2021-08-12 05:51:58,Owner-occupied,10.0,,10022901761.0,Energy Assessor +9b85a01826befb14e74130400999258ecd2d3ae358515fbed819c1a45633650f,12 Furfield Chase,Boughton Monchelsea,,ME17 4GD,10001349054,C,B,78,88,House,Semi-Detached,2021-08-31,E07000110,E14000700,Kent,2021-09-03,marketed sale,77,86,128,66.0,2.6,22,1.4,114.0,91.0,373.0,375.0,141.0,113.0,117.0,Single,Y,,,,,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,75.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",,,Fully double glazed,Good,Good,"Timber frame, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.35,0.0,N,natural,"12 Furfield Chase, Boughton Monchelsea",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2007-2011,2021-09-03 08:31:45,Owner-occupied,8.0,,10022901150.0,Energy Assessor +896007479062013031022040385738417,"19, Mayfair Avenue",,,ME15 6BX,1833795078,C,B,69,84,House,Semi-Detached,2013-03-07,E07000110,E14000804,Kent,2013-03-10,marketed sale,68,84,185,79.0,2.6,35,1.2,65.0,43.0,456.0,420.0,89.0,62.0,74.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,50.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"19, Mayfair Avenue",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2013-03-10 22:04:03,owner-occupied,10.0,5.0,200003676432.0,Address Matched +97335079402011080916252441690918,4 Danefield Court,Church Lane,Bearsted,ME14 4EF,486376468,D,C,67,72,Flat,NO DATA!,2011-08-09,E07000110,E14000700,Kent,2011-08-09,marketed sale,48,53,448,391.0,3.7,79,3.2,58.0,29.0,318.0,284.0,131.0,104.0,46.36,dual,N,Ground,N,,2401.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,0.0,0.0,"Electric immersion, off-peak",Average,Very Poor,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,(another dwelling above),,,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,No low energy lighting,Very Poor,Very Poor,electricity (not community),0.0,unheated corridor,5.47,2.31,0.0,,natural,"4 Danefield Court, Church Lane, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2011-08-09 16:25:24,owner-occupied,6.0,0.0,200003692919.0,Address Matched +1119685927012014040409163697040423,"10, Little Orchard",Coxheath,,ME17 4EP,4329771278,E,C,44,69,Bungalow,Semi-Detached,2014-04-03,E07000110,E14000804,Kent,2014-04-04,marketed sale,39,64,347,179.0,6.5,67,3.4,57.0,57.0,1148.0,862.0,202.0,79.0,97.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,100.0,1.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"10, Little Orchard, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2014-04-04 09:16:36,owner-occupied,10.0,10.0,200003713273.0,Address Matched +1315702704532015042907581518278202,"9, Prospect Place",,,ME16 8EG,208265378,D,B,57,86,House,Mid-Terrace,2015-04-28,E07000110,E14000804,Kent,2015-04-29,rental (private),54,86,283,64.0,4.0,49,0.9,103.0,51.0,755.0,406.0,110.0,73.0,80.0,Single,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, electric",,,"Pitched, no insulation",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"9, Prospect Place",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2015-04-29 07:58:15,rental (private),,,200003667608.0,Address Matched +806339951052012062609401496220497,"21, Stagshaw Close",,,ME15 6TE,4771169968,C,A,78,94,House,Mid-Terrace,2012-06-25,E07000110,E14000804,Kent,2012-06-26,marketed sale,82,98,117,-2.0,1.3,22,0.0,62.0,37.0,224.0,227.0,79.0,55.0,60.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,33.0,0.0,From main system,Good,Good,"Suspended, insulated (assumed)",,,Fully double glazed,Good,Good,"Timber frame, as built, insulated (assumed)",Good,Good,,,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 33% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"21, Stagshaw Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2012-06-26 09:40:14,owner-occupied,9.0,3.0,10022893263.0,Address Matched +752434385052012022115063797220296,"23c, Gabriels Hill",,,ME15 6HR,2652575968,E,D,52,57,Flat,NO DATA!,2012-02-21,E07000110,E14000804,Kent,2012-02-21,rental (private),36,39,559,517.0,5.2,99,4.8,40.0,40.0,612.0,524.0,148.0,148.0,52.37,dual,N,3rd,Y,,2401.0,,not defined,Much Less Than Typical,0.0,2.0,2.0,100.0,0.0,Electric instantaneous at point of use,Very Poor,Very Poor,(other premises below),,,Fully double glazed,Good,Good,"Timber frame, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, electric",,,"Pitched, 250 mm loft insulation",Good,Good,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,unheated corridor,4.29,2.13,0.0,,natural,"23c, Gabriels Hill",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2012-02-21 15:06:37,rental (private),6.0,6.0,200003728609.0,Address Matched +828538628232012082416172272278102,"31, Valley Drive",Loose,,ME15 9TL,2242121078,D,C,62,77,Bungalow,Detached,2012-08-24,E07000110,E14000804,Kent,2012-08-24,marketed sale,57,73,201,116.0,5.6,39,3.3,118.0,66.0,914.0,727.0,92.0,91.0,144.0,Single,Y,NODATA!,,,2106.0,90.0,double glazing installed before 2002,Normal,1.0,7.0,7.0,21.0,1.0,"From main system, plus solar",Very Good,Very Good,"Solid, no insulation (assumed)",,,Mostly double glazing,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 21% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"31, Valley Drive, Loose",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2012-08-24 16:17:22,owner-occupied,14.0,3.0,200003664044.0,Address Matched +673141879312011090121521097790689,"20, Upper Fant Road",,,ME16 8DN,6942979868,E,E,53,53,House,Semi-Detached,2011-08-30,E07000110,E14000804,Kent,2011-09-01,marketed sale,47,47,266,265.0,8.9,51,8.9,68.0,68.0,1417.0,1417.0,178.0,178.0,142.02,Single,Y,NODATA!,,,2106.0,100.0,secondary glazing,Normal,0.0,8.0,8.0,100.0,0.0,Electric instantaneous at point of use,Very Poor,Very Poor,"Suspended, no insulation (assumed)",,,Full secondary glazing,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Roof room(s), insulated",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 100% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,2.51,0.0,,natural,"20, Upper Fant Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2011-09-01 21:52:10,owner-occupied,14.0,14.0,200003668319.0,Address Matched +648282194152012050322352490020580,3 Forge Cottages,The Green,Bearsted,ME14 4DU,5042408868,D,B,66,84,House,Mid-Terrace,2012-05-02,E07000110,E14000700,Kent,2012-05-03,marketed sale,64,84,185,73.0,3.9,36,1.6,93.0,55.0,633.0,463.0,88.0,63.0,110.0,Single,Y,NODATA!,,,2106.0,0.0,single glazing,Normal,0.0,5.0,5.0,30.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Very Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 30% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"3 Forge Cottages, The Green, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2012-05-03 22:35:24,owner-occupied,10.0,3.0,200003695095.0,Address Matched +1588230899402017110814035450430688,"35, Eddington Close",,,ME15 9XG,9413294578,D,B,68,81,House,Detached,2017-11-08,E07000110,E14000804,Kent,2017-11-08,marketed sale,61,76,197,117.0,6.5,35,3.9,153.0,92.0,1062.0,843.0,165.0,124.0,186.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,2.0,9.0,9.0,33.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 33% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"35, Eddington Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2017-11-08 14:03:54,owner-occupied,,,200003675714.0,Address Matched +276965730102009043014444669117308,"30, Pennine Way",Downswood,,ME15 8UG,8117331668,D,D,55,66,House,Detached,2009-04-30,E07000110,E14000700,Kent,2009-04-30,marketed sale,56,68,311,233.0,5.2,46,3.7,109.0,54.0,746.0,603.0,160.0,121.0,112.8,Single,Y,NO DATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,6.0,6.0,0.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, wood logs",,,"Pitched, insulated (assumed)",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Poor,Poor,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.3,0.0,N,natural,"30, Pennine Way, Downswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2009-04-30 14:44:46,owner-occupied,,,200003691326.0,Address Matched +9bcebd9b7c9385502cfef951def1147e50eb9e4fa0376dc070d1eb2890a65704,20 AVIEMORE GARDENS,BEARSTED,,ME14 4BA,10001411568,D,B,61,84,House,Semi-Detached,2021-07-23,E07000110,E14000700,Kent,2021-07-23,marketed sale,55,82,281,96.0,4.0,49,1.4,132.0,66.0,612.0,424.0,122.0,75.0,80.0,Unknown,Y,,,,,83.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Mostly double glazing,Average,Average,"Cavity wall, filled cavity",Average,Average,,,,"Roof room(s), ceiling insulated",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,Room thermostat only,Poor,Poor,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,,,2.38,0.0,N,natural,"20 AVIEMORE GARDENS, BEARSTED",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2021-07-23 16:12:25,Owner-occupied,11.0,,200003687317.0,Energy Assessor +626536269062011051023590096218259,"11, Knaves Acre",Headcorn,,TN27 9TJ,5987646868,F,D,34,57,House,Semi-Detached,2011-05-09,E07000110,E14000700,Kent,2011-05-10,marketed sale,19,33,689,498.0,11.0,122,7.6,88.0,47.0,1126.0,728.0,200.0,113.0,86.1,Unknown,N,NODATA!,,,2401.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,1.0,14.0,0.0,"Electric immersion, standard tariff",Very Poor,Very Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,Portable electric heaters (assumed),,,"Pitched, limited insulation (assumed)",Very Poor,Very Poor,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 14% of fixed outlets,Poor,Poor,electricity (not community),0.0,NO DATA!,,2.3,0.0,,natural,"11, Knaves Acre, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,England and Wales: 1967-1975,2011-05-10 23:59:00,owner-occupied,7.0,1.0,200003699314.0,Address Matched +611669717932011033122383453768903,"67, Cambridge Crescent",,,ME15 7QZ,1373935868,C,C,79,79,House,End-Terrace,2011-03-31,E07000110,E14000700,Kent,2011-03-31,rental (social),77,77,159,159.0,2.3,26,2.3,49.0,49.0,324.0,324.0,152.0,152.0,85.14,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.32,0.0,N,natural,"67, Cambridge Crescent",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2003-2006,2011-03-31 22:38:34,rental (social),,,10022893906.0,Address Matched +269733964132009042116571164268809,"4, Estate Yard Cottages",Upper Street,,ME17 1PP,6954880668,F,F,21,31,House,Detached,2009-04-21,E07000110,E14000700,Kent,2009-04-21,marketed sale,47,57,280,227.0,11.0,50,8.5,203.0,119.0,2181.0,1795.0,367.0,298.0,241.92,dual,N,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,7.0,7.0,30.0,1.0,From main system,Very Poor,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, LPG",Very Poor,Average,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 30% of fixed outlets,Average,Average,LPG - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.2,0.0,N,natural,"4, Estate Yard Cottages, Upper Street",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2009-04-21 16:57:11,owner-occupied,,,, +1525630478252017032410414294230456,"132, Bower Street",,,ME16 8BE,4604840578,D,C,61,77,House,Mid-Terrace,2017-03-24,E07000110,E14000804,Kent,2017-03-24,marketed sale,54,72,253,135.0,4.3,46,2.4,60.0,60.0,793.0,650.0,109.0,73.0,93.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"132, Bower Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2017-03-24 10:41:42,owner-occupied,,,200003667290.0,Address Matched +1380205418912015102914423091259346,77a Lower Boxley Road,,,ME14 2UU,3688810478,B,B,82,82,Flat,Mid-Terrace,2015-10-29,E07000110,E14000804,Kent,2015-10-29,new dwelling,85,85,104,104.0,1.1,18,1.1,50.0,50.0,201.0,201.0,92.0,92.0,62.0,standard tariff,,top floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.16 W/m-¦K,Very Good,Very Good,Fully double glazed,Good,Good,Average thermal transmittance 0.29 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.21 W/m-¦K,Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,77a Lower Boxley Road,Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2015-10-29 14:42:30,owner-occupied,5.0,5.0,10091195954.0,Address Matched +1747297948132019083011441248778904,"9, Plumtrees",,,ME16 9JH,4418936678,C,B,70,82,House,Semi-Detached,2019-08-30,E07000110,E14000804,Kent,2019-08-30,marketed sale,66,79,199,109.0,3.2,35,1.8,68.0,68.0,536.0,500.0,108.0,73.0,91.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, insulated at rafters",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"9, Plumtrees",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2019-08-30 11:44:12,owner-occupied,,,200003688060.0,Address Matched +503840359262010062323231927878050,"1, Froyle Close",,,ME16 0RQ,5268527768,D,C,62,75,Bungalow,Semi-Detached,2010-06-23,E07000110,E14000804,Kent,2010-06-23,rental (private),56,71,327,216.0,3.7,55,2.5,40.0,40.0,591.0,396.0,100.0,88.0,75.65,Single,Y,NO DATA!,,,2107.0,90.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,85.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Mostly double glazing,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 85% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.38,0.0,N,natural,"1, Froyle Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2010-06-23 23:23:19,rental (private),,,200003659388.0,Address Matched +546831939742014020519285789040758,"25, Cornhill Place",,,ME15 6GX,7702230868,B,B,81,82,Flat,Mid-Terrace,2014-02-05,E07000110,E14000804,Kent,2014-02-05,marketed sale,85,86,96,92.0,1.1,18,1.1,57.0,43.0,201.0,202.0,95.0,95.0,61.0,Single,Y,3rd,N,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,67.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Very Good,Very Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 67% of fixed outlets,Good,Good,mains gas (not community),0.0,unheated corridor,16.5,,0.0,,natural,"25, Cornhill Place",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2014-02-05 19:28:57,owner-occupied,9.0,6.0,10022895030.0,Address Matched +9be8f6e62518369f8de6282554568497102b78376feb5750a903e1372a1604d4,17 Broadclough Way,Maidstone,,ME17 3UX,10001381377,B,A,84,94,House,Detached,2021-09-09,E07000110,E14000700,Kent,2021-09-09,new dwelling,85,95,86,17.0,1.5,15,0.3,77.0,77.0,254.0,254.0,73.0,45.0,99.0,standard tariff,,,N,,,100.0,,,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.12 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.28 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.12 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.535,,,,"17 Broadclough Way, Maidstone",Maidstone,Faversham and Mid Kent,KENT,2019,2021-09-09 14:34:29,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,10.0,,10095449052.0,Address Matched +824474619022013041609190760728857,"63, Peel Street",,,ME14 2SD,5630190078,B,B,84,84,Maisonette,Detached,2013-04-02,E07000110,E14000804,Kent,2013-04-16,new dwelling,87,87,78,78.0,1.3,15,1.3,49.0,49.0,237.0,237.0,78.0,78.0,85.0,standard tariff,,ground floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.16 W/m?K,Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"63, Peel Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2013-04-16 09:19:07,NO DATA!,7.0,7.0,10014313830.0,Address Matched +529600819942010081917560070909518,"8, The Grove",Bearsted,,ME14 4JB,4919019768,E,C,42,70,Bungalow,Semi-Detached,2010-08-19,E07000110,E14000700,Kent,2010-08-19,marketed sale,46,68,467,268.0,4.2,76,2.4,42.0,33.0,611.0,364.0,300.0,127.0,55.88,Single,Y,NO DATA!,,,2107.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,57.0,0.0,"Electric immersion, standard tariff",Very Poor,Poor,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 25 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Average,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 57% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.44,0.0,N,natural,"8, The Grove, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2010-08-19 17:56:00,owner-occupied,,,200003692568.0,Address Matched +1396885462532015121619300377978790,"1, The Valley",Coxheath,,ME17 4EW,6087731478,D,B,63,83,Bungalow,Detached,2015-12-16,E07000110,E14000804,Kent,2015-12-16,marketed sale,57,80,262,111.0,4.2,46,1.8,116.0,58.0,734.0,554.0,124.0,72.0,91.0,Unknown,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,0.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"1, The Valley, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2015-12-16 19:30:03,owner-occupied,,,200003715014.0,Address Matched +1474819778632016082708475338278806,"26, Oxford Road",,,ME15 8DQ,7638886478,E,C,54,70,House,Semi-Detached,2016-08-26,E07000110,E14000700,Kent,2016-08-27,marketed sale,47,61,352,234.0,5.0,62,3.4,70.0,54.0,906.0,849.0,141.0,83.0,81.0,Single,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,70.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"System built, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, mains gas",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 70% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,2.47,,N,natural,"26, Oxford Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2016-08-27 08:47:53,owner-occupied,,,200003716111.0,Address Matched +1570348459222017082516132753458493,Russet House,Clapper Lane,Staplehurst,TN12 0JS,9553563578,F,C,27,70,House,Detached,2017-08-25,E07000110,E14000804,Kent,2017-08-25,marketed sale,24,54,355,112.0,11.0,91,4.9,108.0,72.0,1446.0,1009.0,163.0,128.0,122.0,Single,N,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,7.0,7.0,50.0,1.0,"From main system, no cylinder thermostat",Poor,Poor,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Timber frame, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, no insulation",Very Poor,Very Poor,"Boiler and radiators, oil",Average,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,oil (not community),0.0,NO DATA!,,,,N,natural,"Russet House, Clapper Lane, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1900-1929,2017-08-25 16:13:27,owner-occupied,,,200003679688.0,Address Matched +206412949132009010622395149068502,"24, Westborough Mews",,,ME16 8TU,4269516568,B,B,81,83,House,Mid-Terrace,2009-01-05,E07000110,E14000804,Kent,2009-01-06,rental (private),80,82,153,142.0,1.6,25,1.5,63.0,31.0,207.0,211.0,88.0,88.0,61.6,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,0.0,0.0,From main system,Very Good,Very Good,"Suspended, insulated (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 250mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.37,0.0,N,natural,"24, Westborough Mews",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2009-01-06 22:39:51,rental (private),,,10022896510.0,Address Matched +1168665329142015072309422323552478,"22, Springett Way",Coxheath,,ME17 4HQ,8185025278,D,A,56,105,House,Semi-Detached,2015-07-23,E07000110,E14000804,Kent,2015-07-23,none of the above,52,103,302,-38.0,4.6,53,-0.5,109.0,55.0,839.0,494.0,152.0,74.0,87.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,More Than Typical,0.0,4.0,4.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"22, Springett Way, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2015-07-23 09:42:23,owner-occupied,,,200003713906.0,Address Matched +556007169922010102115512000368160,"31, Cornhill Place",,,ME15 6GX,6099690868,C,C,71,72,Flat,Mid-Terrace,2010-09-16,E07000110,E14000804,Kent,2010-10-21,new dwelling,79,79,177,171.0,1.7,28,1.6,51.0,34.0,211.0,213.0,256.0,256.0,60.4,standard tariff,,top floor,,,,,NO DATA!,NO DATA!,,,,,,"Electric immersion, standard tariff",Very Poor,Poor,(other premises below),,,Fully double glazed,Good,Good,Average thermal transmittance 0.32 W/m?K,Good,Good,,,,Average thermal transmittance 0.16 W/m?K,Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.3,,,NO DATA!,"31, Cornhill Place",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2010-10-21 15:51:20,,,,10022895036.0,Address Matched +256680821132019093014292766968103,"2, Buckland Rise",,,ME16 0YN,2386199568,C,C,79,79,Flat,Semi-Detached,2019-09-11,E07000110,E14000804,Kent,2019-09-30,rental (private),82,82,127,127.0,1.3,22,1.3,65.0,65.0,224.0,224.0,88.0,88.0,60.0,Unknown,Y,Ground,N,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,78.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 78% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,8.39,,,N,natural,"2, Buckland Rise",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2019-09-30 14:29:27,rental (private),,,10014308197.0,Address Matched +1208904619222014092307270118228534,"48a, Hackney Road",,,ME16 8LU,3170118278,C,C,69,76,Maisonette,Enclosed End-Terrace,2014-09-22,E07000110,E14000804,Kent,2014-09-23,marketed sale,71,80,203,141.0,1.9,39,1.3,58.0,33.0,380.0,279.0,83.0,84.0,49.0,Single,Y,1st,Y,,2107.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,25.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 25% of fixed outlets,Average,Average,mains gas (not community),0.0,no corridor,,,0.0,,natural,"48a, Hackney Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2014-09-23 07:27:01,owner-occupied,4.0,1.0,200003733810.0,Address Matched +130900162452018071006570499080445,1 Kiln Cottages,The Green,Boughton Monchelsea,ME17 4LT,4581299468,C,B,78,89,House,Enclosed End-Terrace,2018-07-09,E07000110,E14000700,Kent,2018-07-10,marketed sale,77,88,128,54.0,2.5,22,1.1,154.0,77.0,365.0,376.0,106.0,65.0,112.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,0.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Roof room(s), insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"1 Kiln Cottages, The Green, Boughton Monchelsea",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2007 onwards,2018-07-10 06:57:04,owner-occupied,,,10014307712.0,Address Matched +831312228752012090315051793020905,Flat 18 The Coach Yard,"372a, Tonbridge Road",,ME16 8TT,9513831078,C,C,70,71,Flat,Mid-Terrace,2012-09-03,E07000110,E14000804,Kent,2012-09-03,rental (private),72,73,185,176.0,2.2,33,2.1,43.0,43.0,262.0,262.0,242.0,217.0,67.0,Single,N,1st,N,,2603.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,100.0,0.0,"Electric immersion, standard tariff",Very Poor,Very Poor,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Room heaters, electric",Very Poor,Very Poor,Programmer and appliance thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,unheated corridor,10.94,,0.0,,natural,"Flat 18 The Coach Yard, 372a, Tonbridge Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2012-09-03 15:05:17,rental (private),8.0,8.0,200003655216.0,Address Matched +9c156907147ab8fbe9d96e5dcf7b50a0a9df895a3f621e270ef795d06994ca00,21 Bedell Road,,,ME14 4GE,10001417911,B,A,83,95,House,End-Terrace,2021-07-22,E07000110,E14000804,Kent,2021-07-22,new dwelling,86,98,94,1.0,1.2,16,0.0,71.0,71.0,217.0,217.0,66.0,40.0,74.0,standard tariff,,,N,,,100.0,,,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.18 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.41,,,,21 Bedell Road,Maidstone,Maidstone and The Weald,THURNHAM,2021,2021-07-22 12:25:44,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,1.0,,10094444617.0,Address Matched +647804589722011063010554607708779,Flat 47 Pevensey Court,St. Peters Street,,ME16 0GQ,7007897868,C,C,72,73,Flat,Detached,2011-06-30,E07000110,E14000804,Kent,2011-06-30,rental (social),55,56,307,304.0,3.9,54,3.9,65.0,45.0,327.0,332.0,117.0,117.0,72.0,Unknown,N,Ground,Y,,2401.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,57.0,0.0,"Electric immersion, off-peak",Average,Very Poor,"To external air, limited insulation (assumed)",,,Fully double glazed,Average,Average,"Timber frame, as built, insulated (assumed)",Good,Good,Portable electric heaters (assumed),,,(another dwelling above),,,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 57% of fixed outlets,Good,Good,electricity (not community),0.0,unheated corridor,7.2,2.3,0.0,,natural,"Flat 47 Pevensey Court, St. Peters Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2011-06-30 10:55:46,rental (social),7.0,4.0,10022893644.0,Address Matched +246741440262009032414295919898221,"6, Flume End",,,ME15 6FW,2157459568,C,B,78,81,House,Enclosed End-Terrace,2009-03-21,E07000110,E14000804,Kent,2009-03-24,rental (private),75,79,235,205.0,1.6,39,1.4,27.0,18.0,224.0,210.0,63.0,54.0,39.82,Single,Y,NO DATA!,,,2107.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,50.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 200mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Poor,Poor,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.3,0.0,N,natural,"6, Flume End",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2009-03-24 14:29:59,rental (private),,,200003655284.0,Address Matched +1256598449922015011317104771778795,"10, Downs Road",Yalding,,ME18 6JE,9763441378,E,C,40,71,House,Semi-Detached,2015-01-13,E07000110,E14000804,Kent,2015-01-13,ECO assessment,34,64,431,193.0,7.1,79,3.3,113.0,57.0,1251.0,834.0,163.0,74.0,90.0,Single,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,1.0,6.0,6.0,0.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"10, Downs Road, Yalding",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2015-01-13 17:10:47,owner-occupied,,,200003661429.0,Address Matched +1535952635832018052514062783278201,"19, Admiral Way",Marden,,TN12 9FN,3133221578,B,A,85,92,House,Detached,2018-05-25,E07000110,E14000804,Kent,2018-05-25,new dwelling,84,91,79,37.0,2.4,14,1.2,89.0,89.0,383.0,384.0,105.0,57.0,175.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.28 W/m-¦K,Very Good,Very Good,"Room heaters, mains gas",,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and underfloor heating, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"19, Admiral Way, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,NO DATA!,2018-05-25 14:06:27,owner-occupied,16.0,16.0,10093303259.0,Address Matched +1643991029512018062711444898280853,1 Lock Cottage,Allington Locks,Allington,ME16 0LU,8373988578,D,B,65,85,House,Semi-Detached,2018-06-26,E07000110,E14000804,Kent,2018-06-27,rental (private),63,86,227,77.0,3.5,37,1.1,63.0,63.0,671.0,429.0,110.0,74.0,94.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,2.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Granite or whinstone, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"1 Lock Cottage, Allington Locks, Allington",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2018-06-27 11:44:48,rental (private),,,200003728470.0,Address Matched +9c2bda10f30643a634048407ae395d843f1431d3f002515a69a167a52572d477,46b Gabriels Hill,,,ME15 6JJ,2237283568,D,C,67,74,Flat,Mid-Terrace,2021-09-24,E07000110,E14000804,Kent,2021-09-26,rental,65,73,250,188.0,2.7,44,2.0,55.0,55.0,458.0,339.0,100.0,100.0,62.0,Single,Y,02,Y,,,50.0,secondary glazing,Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,(other premises below),,,Partial secondary glazing,Poor,Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,no corridor,,2.45,0.0,N,natural,46b Gabriels Hill,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2021-09-26 13:33:09,Rented (private),8.0,,200003728630.0,Energy Assessor +1251940119602015010510315037142528,Longridge,Heath Road,Boughton Monchelsea,ME17 4HS,1639311378,F,C,34,78,House,Detached,2014-12-22,E07000110,E14000700,Kent,2015-01-05,ECO assessment,36,78,432,129.0,11.0,66,3.2,140.0,80.0,2444.0,930.0,139.0,110.0,170.0,Single,Y,NODATA!,,,2106.0,0.0,not defined,Normal,0.0,8.0,8.0,23.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Single glazed,Very Poor,Very Poor,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, wood logs",,,"Pitched, no insulation",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 23% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"Longridge, Heath Road, Boughton Monchelsea",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2015-01-05 10:31:50,owner-occupied,,,200003674262.0,Address Matched +49486680002008121714190757589938,37,Albany Street,,ME14 5AJ,8002085568,B,B,82,83,House,Detached,2008-12-17,E07000110,E14000804,Kent,2008-12-17,new dwelling,80,81,136,132.0,1.9,0,1.8,51.0,38.0,231.0,233.0,82.0,82.0,42.35,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,4.0,,SAP05:Hot-Water,,,SAP05:Floor,,,SAP05:Windows,,,SAP05:Walls,,,SAP05:Secondary-Heating,,,SAP05:Roof,,,SAP05:Main-Heating,,,SAP05:Main-Heating-Controls,,,SAP05:Lighting,,,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,,,NO DATA!,"37, Albany Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2008-12-17 14:19:07,,6.0,4.0,10022901691.0,Address Matched +1743701119242019081410544168619178,The Tower House,Stede Hill,Harrietsham,ME17 1NP,4286216678,F,C,35,74,House,Detached,2019-08-13,E07000110,E14000700,Kent,2019-08-14,marketed sale,33,70,304,107.0,9.9,73,3.7,116.0,87.0,1418.0,694.0,182.0,81.0,137.0,Unknown,N,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,3.0,5.0,5.0,67.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, oil",Average,Average,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 67% of fixed outlets,Good,Good,oil (not community),0.0,NO DATA!,,,,N,natural,"The Tower House, Stede Hill, Harrietsham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2019-08-14 10:54:41,owner-occupied,,,200003704197.0,Address Matched +352837160202009082716182568612138,"11, Burdock Court",,,ME16 0GJ,6248766668,C,C,76,80,House,Mid-Terrace,2009-08-27,E07000110,E14000804,Kent,2009-08-27,marketed sale,74,77,159,135.0,3.5,26,3.0,97.0,66.0,446.0,406.0,156.0,134.0,128.22,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,6.0,6.0,53.0,0.0,From main system,Good,Good,"Solid, limited insulation (assumed)",,,Fully double glazed,Good,Good,"Timber frame, as built, insulated (assumed)",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 53% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.58,0.0,N,natural,"11, Burdock Court",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2009-08-27 16:18:25,owner-occupied,,,10022897187.0,Address Matched +662892909502011080511201385990258,"27, Roseholme",,,ME16 8DY,2569509868,E,C,44,70,House,Semi-Detached,2011-08-05,E07000110,E14000804,Kent,2011-08-05,marketed sale,41,70,406,195.0,5.4,78,2.6,77.0,38.0,787.0,427.0,209.0,109.0,69.3,Single,Y,NODATA!,,,2102.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,0.0,0.0,"From main system, no cylinder thermostat",Poor,Poor,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,2.35,0.0,,natural,"27, Roseholme",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2011-08-05 11:20:13,owner-occupied,9.0,0.0,200003656544.0,Address Matched +1678110459062019100912314961518688,Flat 504,Kent House,Romney Place,ME15 6LA,8655531678,D,D,60,60,Flat,Detached,2018-11-09,E07000110,E14000804,Kent,2019-10-09,non marketed sale,64,64,232,232.0,3.0,39,3.0,59.0,59.0,649.0,649.0,311.0,311.0,77.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,"Electric immersion, standard tariff",Very Poor,Poor,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.32 W/m-¦K,Good,Good,,,,(other premises above),,,Electric underfloor heating,Very Poor,Poor,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"Flat 504, Kent House, Romney Place",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2019-10-09 12:31:49,unknown,21.0,21.0,, +9c57ae754e80ad7e88f6b227d5511062bf7050c5a0281dd8053dbd38e9f5ee07,85 GREAT THREADS,,,TN12 0FJ,10001615027,B,A,84,96,House,Semi-Detached,2021-07-15,E07000110,E14000804,Kent,2021-07-15,new dwelling,87,97,79,2.0,1.2,14,0.1,73.0,73.0,212.0,212.0,71.0,43.0,90.0,standard tariff,,,N,,,100.0,,,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.28 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.54,,,,85 GREAT THREADS,Maidstone,Maidstone and The Weald,STAPLEHURST,2021,2021-07-15 12:19:41,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,10.0,,10093304277.0,Energy Assessor +1586143950332017103108560916778796,Teasaucer Cottage,Bockingford Lane,,ME15 6DP,5676774578,C,B,75,86,House,Detached,2017-10-31,E07000110,E14000804,Kent,2017-10-31,new dwelling,73,84,156,85.0,2.7,27,1.5,82.0,82.0,465.0,465.0,85.0,51.0,97.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,78.0,0.0,From main system,Good,Good,Average thermal transmittance 0.38 W/m-¦K,Average,Average,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.22 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.17 W/m-¦K,Good,Good,"Boiler and underfloor heating, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in 78% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Teasaucer Cottage, Bockingford Lane",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2017-10-31 08:56:09,unknown,9.0,7.0,10093303772.0,Address Matched +397932049132009111717062659968299,53 Oxford Gardens,,,ME15 8FJ,4999289668,C,C,78,79,Flat,NO DATA!,2009-11-17,E07000110,E14000700,Kent,2009-11-17,new dwelling,84,84,127,125.0,1.4,19,1.4,45.0,37.0,162.0,163.0,159.0,159.0,72.05,standard tariff,,mid floor,,,2207.0,,NO DATA!,NO DATA!,,,,4.0,0.0,From main system,Poor,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.28 W/m?K,Very Good,Very Good,,,,(another dwelling above),,,"Air source heat pump, radiators, electric",Poor,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",0.0,NO DATA!,,2.5,,,NO DATA!,53 Oxford Gardens,Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2009-11-17 17:06:26,,5.0,4.0,10014308992.0,Address Matched +1211957210952014092717291793240823,"564, Tonbridge Road",,,ME16 9DH,8390038278,C,C,76,79,House,Semi-Detached,2014-09-26,E07000110,E14000804,Kent,2014-09-27,marketed sale,75,79,128,107.0,2.3,25,1.9,55.0,55.0,561.0,515.0,98.0,69.0,90.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,100.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,22.0,,natural,"564, Tonbridge Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2014-09-27 17:29:17,owner-occupied,19.0,19.0,200003664419.0,Address Matched +263702836812009040915512704010469,"13, Lucks Way",Marden,,TN12 9QW,4981640668,D,C,65,78,House,Semi-Detached,2009-04-09,E07000110,E14000804,Kent,2009-04-09,rental (private),60,75,271,172.0,4.0,45,2.5,80.0,40.0,467.0,323.0,104.0,81.0,88.26,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,4.0,4.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, partial insulation (assumed)",Average,Average,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.3,0.0,N,natural,"13, Lucks Way, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1976-1982,2009-04-09 15:51:27,rental (private),,,200003669043.0,Address Matched +499219056032010061711421428968402,"18, Melford Drive",,,ME16 0UN,5258496768,D,C,63,70,House,End-Terrace,2010-06-16,E07000110,E14000804,Kent,2010-06-17,rental (social),63,69,266,220.0,3.5,44,2.9,87.0,46.0,543.0,487.0,134.0,114.0,79.3,dual,Y,NO DATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,13.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 13% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.3,0.0,N,natural,"18, Melford Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1991-1995,2010-06-17 11:42:14,rental (social),,,200003725066.0,Address Matched +1644997367512018070209130499080450,"5, Bluebell Drive",Marden,,TN12 9GG,4071798578,B,B,85,90,House,Detached,2018-07-02,E07000110,E14000804,Kent,2018-07-02,new dwelling,85,90,75,47.0,2.5,12,1.6,96.0,96.0,456.0,456.0,108.0,108.0,205.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.28 W/m-¦K,Very Good,Very Good,"Room heaters, wood logs",,,Average thermal transmittance 0.10 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"5, Bluebell Drive, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,NO DATA!,2018-07-02 09:13:04,owner-occupied,45.0,45.0,10093305308.0,Address Matched +556136699542010102112034286002798,"42, Postley Road",,,ME15 6TR,8545590868,F,E,37,44,House,End-Terrace,2010-10-21,E07000110,E14000804,Kent,2010-10-21,marketed sale,32,37,575,507.0,6.7,97,5.9,59.0,36.0,1075.0,965.0,95.0,90.0,68.9,Single,Y,NO DATA!,,,2102.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,38.0,0.0,From main system,Good,Very Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Very Good,"Programmer, no room thermostat",Very Poor,Very Poor,Low energy lighting in 38% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.44,0.0,N,natural,"42, Postley Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2010-10-21 12:03:42,owner-occupied,,,200003681889.0,Address Matched +1726497389062019060615340564158251,2 Wood Cottages,Maidstone Road,Nettlestead,ME18 5HJ,5650884678,C,B,69,85,House,Semi-Detached,2019-06-05,E07000110,E14000804,Kent,2019-06-06,marketed sale,65,83,197,83.0,3.7,35,1.6,89.0,71.0,623.0,469.0,105.0,75.0,104.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,3.0,4.0,4.0,75.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"2 Wood Cottages, Maidstone Road, Nettlestead",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2019-06-06 15:34:05,owner-occupied,,,200003656473.0,Address Matched +1386994169702017021522484045039058,"23, South Park Road",,,ME15 7AL,2734860478,C,B,69,88,House,Mid-Terrace,2017-02-15,E07000110,E14000700,Kent,2017-02-15,rental (social),67,88,212,65.0,2.8,37,0.9,75.0,51.0,495.0,368.0,103.0,69.0,75.0,Single,Y,NODATA!,,,2107.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,55.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 55% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"23, South Park Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2017-02-15 22:48:40,rental (social),,,200003715853.0,Address Matched +1358178494652016010511081996060233,"16, Livingstone Walk",,,ME15 9JB,2397468378,B,A,83,94,House,NO DATA!,2016-01-04,E07000110,E14000700,Kent,2016-01-05,new dwelling,85,96,91,14.0,1.4,16,0.2,63.0,63.0,251.0,251.0,98.0,62.0,90.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.14 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.17 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"16, Livingstone Walk",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2016-01-05 11:08:19,unknown,10.0,10.0,10014315756.0,Address Matched +1226011889222014102912573189278824,"19, Denning Close",,,ME16 0WT,2829829278,D,B,58,82,House,Detached,2014-10-23,E07000110,E14000804,Kent,2014-10-29,none of the above,52,80,230,86.0,6.0,44,2.3,149.0,75.0,1098.0,651.0,145.0,88.0,137.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,7.0,7.0,0.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"19, Denning Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2014-10-29 12:57:31,owner-occupied,14.0,0.0,10022901746.0,Address Matched +1595834942332017121207274318978690,"8, Clement Court",,,ME16 0EW,4098645578,C,B,71,86,House,Mid-Terrace,2017-12-11,E07000110,E14000804,Kent,2017-12-12,marketed sale,68,85,194,75.0,2.7,34,1.1,65.0,65.0,438.0,376.0,135.0,80.0,79.0,Unknown,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,80.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,"Room heaters, mains gas",,,"Pitched, 270 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"8, Clement Court",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2017-12-12 07:27:43,owner-occupied,,,200003659008.0,Address Matched +396741344812010042712350097200661,5 Morton Way,,,ME15 6ZG,6148479668,B,B,83,84,House,Mid-Terrace,2010-04-27,E07000110,E14000804,Kent,2010-04-27,new dwelling,82,83,122,115.0,1.7,20,1.7,84.0,51.0,245.0,250.0,99.0,99.0,86.9,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,4.0,,From main system,Very Good,Very Good,Average thermal transmittance 0.25 W/m?K,Good,Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.14 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Very Good,Very Good,Programmer and at least two room thermostats,Average,Average,Low energy lighting in 33% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.32,,,NO DATA!,5 Morton Way,Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2010-04-27 12:35:00,,12.0,4.0,10014308103.0,Address Matched +9c8d04d99f4f952c971f1dda3a59de4556e84597f36888e2401cf4f922289e9a,72 WRENS CROSS,UPPER STONE STREET,,ME15 6YU,10001563184,C,B,78,88,House,Mid-Terrace,2021-07-08,E07000110,E14000804,Kent,2021-07-08,new dwelling,76,86,134,68.0,2.5,24,1.3,86.0,86.0,400.0,400.0,94.0,63.0,105.0,standard tariff,,,N,,,100.0,,,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.20 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.26 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.12 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.75,,,,"72 WRENS CROSS, UPPER STONE STREET",Maidstone,Maidstone and The Weald,MAIDSTONE,2020,2021-07-08 16:50:37,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,15.0,,10094441006.0,Energy Assessor +1431512619062016041113381723658956,Flat 27,Concorde House,London Road,ME16 8QA,5247183478,D,D,68,68,Flat,Enclosed End-Terrace,2016-04-05,E07000110,E14000804,Kent,2016-04-11,rental (private),65,65,262,262.0,2.4,44,2.4,40.0,40.0,378.0,378.0,168.0,168.0,54.0,dual,N,2nd,N,,2107.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,100.0,0.0,From main system,Poor,Poor,(another dwelling below),NO DATA!,,Fully double glazed,Good,Good,"System built, with internal insulation",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, electric",Very Poor,Poor,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,unheated corridor,8.97,2.5,,N,natural,"Flat 27, Concorde House, London Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2016-04-11 13:38:17,rental (private),,,, +603804179902011031321225487499478,"14, Scott Street",,,ME14 2TA,7949374868,D,D,58,67,House,Mid-Terrace,2011-03-13,E07000110,E14000804,Kent,2011-03-13,rental (private),52,61,344,277.0,4.4,58,3.5,71.0,41.0,660.0,568.0,167.0,132.0,61.2,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,28.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 28% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,0.0,N,natural,"14, Scott Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2011-03-13 21:22:54,rental (private),,,200003669759.0,Address Matched +831478299752012090408002093020301,"16, Westwood Close",Lenham,,ME17 2BW,3108931078,B,B,82,83,House,Detached,2012-09-04,E07000110,E14000700,Kent,2012-09-04,new dwelling,83,83,84,81.0,3.3,16,3.2,113.0,79.0,534.0,539.0,102.0,102.0,207.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,18.0,,From main system,Good,Good,Average thermal transmittance 0.21 W/m?K,Good,Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.27 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in 58% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.35,,,NO DATA!,"16, Westwood Close, Lenham",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2012-09-04 08:00:20,,31.0,18.0,10014313881.0,Address Matched +29726999962015031022355362308275,"9, Athelstan Green",Hollingbourne,,ME17 1UX,7663992468,D,B,68,81,Bungalow,Detached,2015-03-10,E07000110,E14000700,Kent,2015-03-10,ECO assessment,62,77,188,105.0,5.9,35,3.4,84.0,84.0,1092.0,791.0,113.0,114.0,172.0,Single,Y,NODATA!,,,2110.0,100.0,double glazing installed before 2002,Normal,2.0,6.0,6.0,100.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"9, Athelstan Green, Hollingbourne",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1976-1982,2015-03-10 22:35:53,owner-occupied,,,200003700532.0,Address Matched +1624955774612018041917405995980953,"66, Linden Road",Coxheath,,ME17 4QS,9332457578,C,B,69,85,House,Mid-Terrace,2018-04-19,E07000110,E14000804,Kent,2018-04-19,rental (private),67,84,226,91.0,2.6,40,1.1,47.0,47.0,448.0,410.0,103.0,47.0,65.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"66, Linden Road, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1991-1995,2018-04-19 17:40:59,rental (private),,,200003714900.0,Address Matched +1613500127832018030809385581078300,3 Tyland Cottages,Tyland Lane,Sandling,ME14 3BH,2011376578,E,C,45,79,House,End-Terrace,2018-03-06,E07000110,E14000700,Kent,2018-03-08,rental (private),41,77,387,126.0,5.3,68,1.8,77.0,55.0,1018.0,578.0,94.0,51.0,78.0,Unknown,Y,NODATA!,,,2602.0,25.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,60.0,1.0,Gas multipoint,Average,Average,"Suspended, no insulation (assumed)",NO DATA!,,Some double glazing,Poor,Poor,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,"Pitched, 100 mm loft insulation",Average,Average,"Room heaters, mains gas",Average,Average,Appliance thermostats,Good,Good,Low energy lighting in 60% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"3 Tyland Cottages, Tyland Lane, Sandling",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1900-1929,2018-03-08 09:38:55,rental (private),,,200003672755.0,Address Matched +13874430812017092817124792930642,"21, Tennison Way",,,ME15 9GE,6298028468,C,B,78,89,House,Mid-Terrace,2017-05-10,E07000110,E14000700,Kent,2017-09-28,rental (social),78,88,131,56.0,2.3,23,1.0,67.0,67.0,358.0,360.0,120.0,70.0,98.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Very Good,Very Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"21, Tennison Way",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2007 onwards,2017-09-28 17:12:47,rental (social),,,10022895438.0,Address Matched +590391280152011022220280397990280,"88, Wheeler Street",,,ME14 1UB,2080073868,D,D,67,68,House,Mid-Terrace,2011-02-10,E07000110,E14000804,Kent,2011-02-22,marketed sale,62,62,256,253.0,3.8,43,3.8,69.0,48.0,625.0,629.0,107.0,107.0,89.5,Single,Y,NO DATA!,,,2106.0,65.0,double glazing installed before 2002,Normal,1.0,5.0,5.0,57.0,0.0,From main system,Very Good,Very Good,"Suspended, no insulation (assumed)",,,Partial double glazing,Poor,Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 57% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,0.0,N,natural,"88, Wheeler Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2011-02-22 20:28:03,owner-occupied,,,200003698891.0,Address Matched +136918119302013090511335657070648,"93, Upper Fant Road",,,ME16 8BT,7329710568,D,B,55,83,House,Semi-Detached,2013-09-04,E07000110,E14000804,Kent,2013-09-05,non marketed sale,50,83,266,79.0,5.0,51,1.5,75.0,54.0,846.0,480.0,141.0,75.0,97.0,Unknown,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,63.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 63% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"93, Upper Fant Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2013-09-05 11:33:56,owner-occupied,16.0,10.0,200003657744.0,Address Matched +1169797839602014070720582322540738,Flat 17 The Sovereigns,Queens Road,,ME16 0JG,1663635278,B,B,85,85,Flat,Mid-Terrace,2014-07-07,E07000110,E14000804,Kent,2014-07-07,rental,78,78,149,149.0,1.7,26,1.7,50.0,50.0,106.0,106.0,140.0,140.0,65.0,dual,N,1st,N,,2402.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,"Electric immersion, off-peak",Average,Very Poor,(other premises below),,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,(another dwelling above),,,Electric storage heaters,Average,Very Poor,Automatic charge control,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,heated corridor,,,0.0,,natural,"Flat 17 The Sovereigns, Queens Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1991-1995,2014-07-07 20:58:23,owner-occupied,8.0,8.0,200003657125.0,Address Matched +533414937452010082813312493200175,"6, Shearers Close",Weavering,,ME14 5UQ,1543739768,D,D,57,67,House,Detached,2010-08-28,E07000110,E14000700,Kent,2010-08-28,marketed sale,51,61,304,236.0,6.2,51,4.9,132.0,66.0,896.0,737.0,164.0,138.0,123.22,Single,Y,NO DATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,7.0,7.0,0.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, mains gas",,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.37,0.0,N,natural,"6, Shearers Close, Weavering",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2010-08-28 13:31:24,owner-occupied,,,200003687942.0,Address Matched +933642369642013051913483407879838,"31, Heathside Avenue",Coxheath,,ME17 4PZ,3632268078,D,B,64,85,House,Semi-Detached,2013-05-17,E07000110,E14000804,Kent,2013-05-19,marketed sale,62,85,205,70.0,3.7,39,1.3,98.0,52.0,534.0,427.0,174.0,72.0,94.0,Unknown,Y,NODATA!,,,2107.0,100.0,double glazing installed before 2002,Normal,1.0,5.0,5.0,10.0,0.0,"From main system, no cylinder thermostat",Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 10% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"31, Heathside Avenue, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2013-05-19 13:48:34,owner-occupied,10.0,1.0,200003714385.0,Address Matched +266861710852009041711151507910963,Flat 3 Salisbury House,Cambridge Crescent,,ME15 7NP,9317070668,C,C,70,76,Flat,Semi-Detached,2009-04-17,E07000110,E14000700,Kent,2009-04-17,rental (social),66,72,335,273.0,2.1,56,1.7,29.0,18.0,326.0,288.0,74.0,60.0,38.18,Single,Y,Ground,N,2.0,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,1.0,1.0,40.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 40% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.27,0.0,N,natural,"Flat 3 Salisbury House, Cambridge Crescent",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2009-04-17 11:15:15,rental (social),,,200003713060.0,Address Matched +340371370062009080717154265068371,"11, Leicester Road",,,ME15 7QA,7656775668,D,D,64,66,House,Semi-Detached,2009-08-06,E07000110,E14000700,Kent,2009-08-07,rental (social),59,60,288,281.0,3.8,48,3.7,71.0,39.0,556.0,562.0,107.0,107.0,79.04,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,20.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"System built, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 20% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.49,0.0,N,natural,"11, Leicester Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2009-08-07 17:15:42,rental (social),,,200003712824.0,Address Matched +1308861765912015041117471691950139,"5, St. Marys Close",Laddingford,,ME18 6DG,1920515378,D,A,62,98,House,Detached,2015-04-10,E07000110,E14000804,Kent,2015-04-11,marketed sale,54,92,251,22.0,5.5,44,0.6,138.0,69.0,893.0,662.0,185.0,78.0,123.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,6.0,6.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"5, St. Marys Close, Laddingford",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2015-04-11 17:47:16,owner-occupied,,,200003660183.0,Address Matched +943015289022013060309434729378717,"29, Kingfisher Meadow",,,ME16 8RB,1271829078,B,B,85,87,Flat,Mid-Terrace,2013-06-03,E07000110,E14000804,Kent,2013-06-03,marketed sale,81,81,137,137.0,1.4,24,1.4,38.0,41.0,100.0,70.0,137.0,117.0,57.0,dual,N,2nd,N,,2603.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,"Electric immersion, off-peak",Poor,Very Poor,(other premises below),,,Fully double glazed,Good,Good,"Timber frame, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Room heaters, electric",Poor,Very Poor,Programmer and appliance thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,unheated corridor,6.2,,0.0,,natural,"29, Kingfisher Meadow",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2013-06-03 09:43:47,owner-occupied,6.0,6.0,10022892240.0,Address Matched +9cd07ca7218fa6026f6c539f843615bc4aec818f925963df01698d906d4ca527,20 MOTE AVENUE,,,ME15 7ST,10001405477,D,B,65,81,House,Semi-Detached,2021-07-14,E07000110,E14000804,Kent,2021-07-15,marketed sale,58,76,227,119.0,5.4,40,2.9,100.0,100.0,867.0,653.0,130.0,80.0,134.0,Unknown,Y,,,,,100.0,double glazing installed during or after 2002,Normal,1.0,6.0,6.0,94.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 94% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.42,0.0,N,natural,20 MOTE AVENUE,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2021-07-15 06:22:15,Owner-occupied,16.0,,200003695717.0,Energy Assessor +9ce5736b433c387fda4e39e37cd84461e8a04709cc1d3436b46ce993f10a2e9f,9 RUSHMORE GROVE,,,ME17 2FJ,10001588193,B,B,83,83,Flat,Detached,2021-07-27,E07000110,E14000700,Kent,2021-07-27,new dwelling,87,87,92,92.0,1.0,16,1.0,63.0,63.0,186.0,186.0,68.0,68.0,65.0,standard tariff,,3,Y,,,100.0,,,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.19 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.19 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.1 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.75,,,,9 RUSHMORE GROVE,Maidstone,Faversham and Mid Kent,LENHAM,2019,2021-07-27 08:33:45,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,1.0,,10094444436.0,Energy Assessor +9ce603fb663d126348e7dcf69811cbf4abeab04d1c51e2f591ce2242ed575cff,Flat 7,Chestnut Place,Thurnham Lane,ME14 4QZ,10001647274,C,C,77,77,Flat,Enclosed Mid-Terrace,2021-09-06,E07000110,E14000700,Kent,2021-09-06,rental,79,79,144,144.0,1.6,25,1.6,63.0,63.0,271.0,271.0,85.0,85.0,63.0,Single,Y,01,N,,,100.0,double glazing installed during or after 2002,More Than Typical,1.0,3.0,3.0,90.0,0.0,From main system,Good,Good,"Suspended, limited insulation (assumed)",,,Fully double glazed,Good,Good,"Timber frame, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 90% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,no corridor,,2.34,0.0,N,natural,"Flat 7, Chestnut Place, Thurnham Lane",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1996-2002,2021-09-06 19:38:44,Rented (private),10.0,,200003706971.0,Energy Assessor +1476355188312016090206373199060849,"9, St. Margarets Close",,,ME16 8QN,8920896478,C,B,71,87,House,Detached,2016-09-01,E07000110,E14000804,Kent,2016-09-02,marketed sale,69,85,193,73.0,2.6,34,1.0,70.0,51.0,424.0,384.0,141.0,82.0,76.0,Unknown,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,64.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 64% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,2.4,,N,natural,"9, St. Margarets Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2016-09-02 06:37:31,owner-occupied,,,200003676067.0,Address Matched +828290519302012082809451102122088,"3, Stockbury Drive",,,ME16 0RN,6303811078,C,B,69,91,House,Mid-Terrace,2012-08-28,E07000110,E14000804,Kent,2012-08-28,marketed sale,70,93,196,26.0,2.2,37,0.3,68.0,34.0,357.0,283.0,96.0,64.0,58.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"3, Stockbury Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2012-08-28 09:45:11,owner-occupied,6.0,0.0,200003660910.0,Address Matched +1363448809262015092213075859328175,"29, Edna Road",,,ME14 2QJ,7550009378,D,B,60,82,House,Semi-Detached,2015-09-22,E07000110,E14000804,Kent,2015-09-22,marketed sale,62,84,257,98.0,3.7,39,1.3,60.0,60.0,830.0,540.0,136.0,85.0,96.0,Unknown,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,6.0,6.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"29, Edna Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2015-09-22 13:07:58,owner-occupied,,,200003670602.0,Address Matched +868815709202013010318433401470978,The Firs,Headcorn Road,Sandway,ME17 2NE,6253504078,F,D,32,63,House,Detached,2013-01-03,E07000110,E14000700,Kent,2013-01-03,marketed sale,24,47,360,186.0,11.0,89,6.2,125.0,62.0,1904.0,1340.0,227.0,108.0,126.0,Single,N,NODATA!,,,2104.0,95.0,double glazing installed during or after 2002,Normal,3.0,7.0,7.0,0.0,0.0,From main system,Average,Poor,"Solid, no insulation (assumed)",,,Mostly double glazing,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, oil",Average,Average,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,oil (not community),0.0,NO DATA!,,,0.0,,natural,"The Firs, Headcorn Road, Sandway",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2013-01-03 18:43:34,owner-occupied,38.0,0.0,200003703866.0,Address Matched +892277738812014080108525296740406,Flat 3,"80, Buckland Road",,ME16 0SD,4628865078,E,D,45,56,Flat,Semi-Detached,2014-07-31,E07000110,E14000804,Kent,2014-08-01,assessment for green deal,52,66,473,339.0,2.6,87,1.9,34.0,22.0,312.0,165.0,422.0,422.0,31.0,Single,N,Ground,N,,2307.0,50.0,double glazing installed before 2002,Normal,0.0,2.0,2.0,50.0,0.0,"Electric immersion, standard tariff",Very Poor,Very Poor,"Suspended, no insulation (assumed)",,,Partial double glazing,Poor,Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,(another dwelling above),,,Community scheme,Good,Good,"Flat rate charging, TRVs",Average,Average,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (community),0.0,heated corridor,,,0.0,,natural,"Flat 3, 80, Buckland Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2014-08-01 08:52:52,rental (private),4.0,2.0,200003670094.0,Address Matched +1095007409642014092309480725042878,"182, Kingfisher Meadow",,,ME16 8RD,1606600278,C,C,73,80,Flat,Enclosed Mid-Terrace,2014-09-23,E07000110,E14000804,Kent,2014-09-23,rental (private),65,67,271,249.0,2.3,48,2.1,73.0,40.0,230.0,168.0,193.0,127.0,48.0,dual,N,2nd,Y,,2602.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,0.0,0.0,"Electric immersion, off-peak",Average,Very Poor,(other premises below),,,Fully double glazed,Good,Good,"System built, as built, insulated (assumed)",Good,Good,,,,"Flat, insulated (assumed)",Good,Good,"Room heaters, electric",Poor,Very Poor,Appliance thermostats,Good,Good,No low energy lighting,Very Poor,Very Poor,electricity (not community),0.0,heated corridor,,,0.0,,natural,"182, Kingfisher Meadow",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2014-09-23 09:48:07,rental (private),6.0,0.0,10022892393.0,Address Matched +130094969742018112115034243982008,"18, Ash Grove",,,ME16 0AA,6760169468,D,B,64,81,House,Semi-Detached,2018-11-20,E07000110,E14000804,Kent,2018-11-21,marketed sale,57,76,225,115.0,5.0,40,2.6,76.0,76.0,875.0,608.0,110.0,110.0,126.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,7.0,7.0,100.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"18, Ash Grove",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2018-11-21 15:03:42,owner-occupied,,,200003658119.0,Address Matched +1541608175332017050715252540078208,"16, Frinstead Walk",,,ME16 0NN,7800261578,E,C,54,77,House,Detached,2017-05-05,E07000110,E14000804,Kent,2017-05-07,marketed sale,49,74,279,125.0,5.8,49,2.7,85.0,85.0,1143.0,740.0,155.0,87.0,120.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,7.0,7.0,80.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"16, Frinstead Walk",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2017-05-07 15:25:25,owner-occupied,,,200003660035.0,Address Matched +170564799652008101721070707989457,"59, Whitmore Street",,,ME16 8JX,4763972568,E,E,52,54,House,End-Terrace,2008-10-17,E07000110,E14000804,Kent,2008-10-17,marketed sale,46,46,398,390.0,5.1,67,5.0,69.0,34.0,641.0,648.0,83.0,83.0,88.7,Single,Y,NO DATA!,,,2106.0,75.0,double glazing installed during or after 2002,Normal,1.0,4.0,4.0,0.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Partial double glazing,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.51,0.0,N,natural,"59, Whitmore Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2008-10-17 21:07:07,owner-occupied,,,200003655359.0,Address Matched +366781444552009091908400506910461,"50, West Park Road",,,ME15 7AG,4117467668,D,C,65,74,House,Mid-Terrace,2009-09-17,E07000110,E14000700,Kent,2009-09-19,marketed sale,60,70,281,214.0,3.7,47,2.8,66.0,39.0,554.0,435.0,90.0,90.0,78.1,Single,Y,NO DATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,30.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 30% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,0.0,N,natural,"50, West Park Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2009-09-19 08:40:05,owner-occupied,,,200003686663.0,Address Matched +304554596132009061212545907968708,"154a, Ashford Road",Bearsted,,ME14 4NB,9887723668,D,C,64,73,House,Detached,2009-06-11,E07000110,E14000700,Kent,2009-06-12,marketed sale,60,70,216,163.0,7.6,36,5.7,201.0,105.0,933.0,719.0,163.0,163.0,235.5,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,9.0,9.0,8.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 8% of fixed outlets,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.34,0.0,N,natural,"154a, Ashford Road, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2009-06-12 12:54:59,owner-occupied,,,200003692576.0,Address Matched +598254090312016021811025293960683,"18, Cornwallis Avenue",Linton,,ME17 4BW,6376034868,C,C,73,76,Maisonette,Semi-Detached,2016-02-18,E07000110,E14000804,Kent,2016-02-18,non marketed sale,74,77,179,152.0,2.2,31,1.9,82.0,55.0,350.0,302.0,140.0,141.0,69.0,dual,Y,1st,Y,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,50.0,0.0,From main system,Good,Good,(another dwelling below),NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,no corridor,,,,N,natural,"18, Cornwallis Avenue, Linton",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2016-02-18 11:02:52,owner-occupied,,,200003662992.0,Address Matched +729310579062011120713321193538439,"13, Bodkins Close",Boughton Monchelsea,,ME17 4TS,3954773968,C,C,72,75,House,Enclosed Mid-Terrace,2011-12-07,E07000110,E14000700,Kent,2011-12-07,marketed sale,73,76,171,150.0,2.3,33,2.1,74.0,42.0,351.0,338.0,114.0,103.0,71.68,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,25.0,0.0,From main system,Good,Good,"Solid, limited insulation (assumed)",,,Fully double glazed,Average,Average,"Timber frame, as built, insulated (assumed)",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 25% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,2.35,0.0,,natural,"13, Bodkins Close, Boughton Monchelsea",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1996-2002,2011-12-07 13:32:11,owner-occupied,8.0,2.0,200003721143.0,Address Matched +919634495732013050220061240078909,"11, The Hardwicks",Headcorn,,TN27 9AA,9910957078,B,B,83,83,House,Semi-Detached,2013-05-02,E07000110,E14000700,Kent,2013-05-02,new dwelling,87,87,80,80.0,1.4,15,1.4,55.0,55.0,242.0,242.0,92.0,92.0,90.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.18 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.20 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.15 W/m?K,Good,Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"11, The Hardwicks, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,NO DATA!,2013-05-02 20:06:12,NO DATA!,11.0,11.0,10014314491.0,Address Matched +878038974732013040420442384078801,2 Widehurst Bungalows,Thorn Road,Marden,TN12 9LN,7134864078,D,C,66,78,House,Semi-Detached,2013-04-04,E07000110,E14000804,Kent,2013-04-04,none of the above,93,102,183,120.0,1.0,6,-0.4,98.0,71.0,877.0,812.0,221.0,117.0,159.0,Single,N,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,6.0,6.0,63.0,1.0,From main system,Average,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, wood logs",Average,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 63% of fixed outlets,Good,Good,wood logs,0.0,NO DATA!,,,0.0,,natural,"2 Widehurst Bungalows, Thorn Road, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1930-1949,2013-04-04 20:44:23,owner-occupied,16.0,10.0,200003662659.0,Address Matched +658411125612011072520390797290480,"1, Rushford Close",Headcorn,,TN27 9QE,4069578868,E,D,40,64,Bungalow,Semi-Detached,2011-07-25,E07000110,E14000700,Kent,2011-07-25,marketed sale,25,41,712,491.0,6.8,126,4.7,56.0,33.0,729.0,455.0,219.0,101.0,54.33,dual,N,NODATA!,,,2401.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,2.0,33.0,1.0,"Electric immersion, off-peak",Poor,Very Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,"Pitched, 100 mm loft insulation",Average,Average,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 33% of fixed outlets,Average,Average,electricity (not community),0.0,NO DATA!,,2.4,0.0,,natural,"1, Rushford Close, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,England and Wales: 1967-1975,2011-07-25 20:39:07,owner-occupied,6.0,2.0,200003698628.0,Address Matched +1172736539922014071114281475298844,"4, Bodkins Close",Boughton Monchelsea,,ME17 4TS,4767355278,D,B,66,85,House,End-Terrace,2014-07-11,E07000110,E14000700,Kent,2014-07-11,marketed sale,66,87,199,64.0,2.9,38,1.0,88.0,52.0,478.0,422.0,183.0,79.0,76.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,30.0,0.0,From main system,Good,Good,"Suspended, limited insulation (assumed)",,,Fully double glazed,Average,Average,"Timber frame, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 30% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"4, Bodkins Close, Boughton Monchelsea",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1996-2002,2014-07-11 14:28:14,owner-occupied,20.0,6.0,200003721147.0,Address Matched +326885370922009072009433014458941,"15, Dover Street",,,ME16 8LF,4197784668,C,C,69,78,House,Mid-Terrace,2009-07-15,E07000110,E14000804,Kent,2009-07-20,rental (private),64,75,261,182.0,3.1,44,2.2,58.0,36.0,394.0,331.0,171.0,101.0,71.86,Single,Y,NO DATA!,,,2106.0,33.0,double glazing installed before 2002,Normal,1.0,4.0,4.0,37.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Partial double glazing,Poor,Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 37% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.3,0.0,N,natural,"15, Dover Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2009-07-20 09:43:30,rental (private),,,200003655543.0,Address Matched +1595680972332017121107072441078598,"307, Willington Street",,,ME15 8AS,7811545578,E,C,45,77,House,Semi-Detached,2017-12-09,E07000110,E14000700,Kent,2017-12-11,marketed sale,39,71,404,161.0,6.8,71,2.7,137.0,68.0,1090.0,697.0,221.0,75.0,95.0,dual,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,0.0,0.0,"From main system, no cylinder thermostat",Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"307, Willington Street",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2017-12-11 07:07:24,owner-occupied,,,200003684436.0,Address Matched +1012130219702013092309141512472738,"15, High Street",Lenham,,ME17 2QD,1743814178,D,B,64,81,House,Mid-Terrace,2013-08-27,E07000110,E14000700,Kent,2013-09-23,marketed sale,59,79,187,90.0,5.9,36,2.9,137.0,74.0,1030.0,700.0,96.0,96.0,164.0,Unknown,Y,NODATA!,,,2106.0,0.0,not defined,Normal,0.0,6.0,6.0,12.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 12% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"15, High Street, Lenham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2013-09-23 09:14:15,owner-occupied,24.0,3.0,10091195593.0,Address Matched +1020648880732013100714573954078894,"54, Fir Tree Grove",,,ME5 8XD,8484874178,C,B,69,88,House,Mid-Terrace,2013-10-07,E07000110,E14000700,Kent,2013-10-07,marketed sale,69,89,182,50.0,2.5,35,0.7,55.0,55.0,423.0,337.0,133.0,73.0,73.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,75.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"54, Fir Tree Grove",Maidstone,Faversham and Mid Kent,CHATHAM,England and Wales: 1950-1966,2013-10-07 14:57:39,owner-occupied,12.0,9.0,200003673613.0,Address Matched +818117483232012072516244766278506,"29, Keele Avenue",,,ME15 9WU,8696540078,B,B,82,83,House,Detached,2012-07-25,E07000110,E14000700,Kent,2012-07-25,new dwelling,84,85,92,86.0,1.8,18,1.7,87.0,55.0,338.0,343.0,95.0,95.0,102.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,5.0,,From main system,Good,Good,Average thermal transmittance 0.20 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.34 W/m?K,Good,Good,,,,Average thermal transmittance 0.24 W/m?K,Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 42% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.31,,,NO DATA!,"29, Keele Avenue",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2012-07-25 16:24:47,,12.0,5.0,10014311578.0,Address Matched +384505580202009102112554164819618,"35, Nottingham Avenue",,,ME15 7PS,8257888668,C,C,70,77,House,Semi-Detached,2009-10-19,E07000110,E14000700,Kent,2009-10-21,marketed sale,64,72,231,174.0,3.5,41,2.7,53.0,42.0,437.0,356.0,152.0,115.0,84.3,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,75.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,"Room heaters, coal",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,,0.0,N,natural,"35, Nottingham Avenue",Maidstone,Faversham and Mid Kent,MAIDSTONE,,2009-10-21 12:55:41,owner-occupied,,,200003712809.0,Address Matched +430395102042020091519342071209558,"28, Darwin Avenue",,,ME15 9FP,6047902768,C,A,80,92,House,Mid-Terrace,2020-09-15,E07000110,E14000700,Kent,2020-09-15,marketed sale,77,89,136,52.0,2.4,24,1.0,114.0,81.0,436.0,445.0,178.0,97.0,99.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,6.0,6.0,58.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Micro-cogeneration, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 58% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"28, Darwin Avenue",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2003-2006,2020-09-15 19:34:20,owner-occupied,,,10014311403.0,Address Matched +1394145319802015120813443248150988,"36, Perryfield Street",,,ME14 2SX,8803611478,D,C,60,72,House,Mid-Terrace,2015-12-08,E07000110,E14000804,Kent,2015-12-08,marketed sale,51,63,248,178.0,6.6,44,4.8,131.0,77.0,1208.0,1081.0,117.0,117.0,152.0,Unknown,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",More Than Typical,1.0,7.0,7.0,29.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 29% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"36, Perryfield Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2015-12-08 13:44:32,owner-occupied,,,200003669694.0,Address Matched +1685334099242019041517310064119698,Flat 3 Coronet House,"11, Queen Anne Road",,ME14 1GD,264091678,C,C,71,71,Flat,Detached,2019-04-11,E07000110,E14000804,Kent,2019-04-15,new dwelling,74,74,353,353.0,1.1,60,1.1,19.0,19.0,209.0,209.0,132.0,132.0,18.0,standard tariff,,ground floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,Electric instantaneous at point of use,Very Poor,Very Poor,Average thermal transmittance 0.18 W/m-¦K,Very Good,Very Good,Fully double glazed,Good,Good,Average thermal transmittance 0.25 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,"Room heaters, electric",Very Poor,Poor,Programmer and room thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"Flat 3 Coronet House, 11, Queen Anne Road",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2019-04-15 17:31:00,unknown,5.0,5.0,10094441180.0,Address Matched +391723169132009110218074918068092,"60, Melville Road",,,ME15 7UT,6248049668,D,D,59,59,House,Mid-Terrace,2009-11-02,E07000110,E14000804,Kent,2009-11-02,rental (private),49,49,315,315.0,5.2,58,5.2,45.0,44.0,718.0,718.0,97.0,97.0,88.76,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,100.0,1.0,From main system,Very Good,Very Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, coal",,,"Pitched, 150mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,,0.0,N,natural,"60, Melville Road",Maidstone,Maidstone and The Weald,MAIDSTONE,,2009-11-02 18:07:49,rental (private),,,200003695979.0,Address Matched +1790990572062020030918485889618130,"23, Blenheim Close",Bearsted,,ME15 8LD,3883759678,D,B,66,83,Bungalow,Detached,2020-03-09,E07000110,E14000700,Kent,2020-03-09,marketed sale,62,80,240,115.0,3.6,42,1.8,77.0,77.0,592.0,492.0,131.0,79.0,85.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,83.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,"Room heaters, mains gas",,,"Pitched, 270 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 83% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"23, Blenheim Close, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2020-03-09 18:48:58,owner-occupied,,,200003688822.0,Address Matched +236312684212009022616563704210159,Flat 5 Yalding House,Marigold Way,,ME16 0ZF,1912448568,C,B,80,84,Flat,Detached,2009-02-26,E07000110,E14000804,Kent,2009-02-26,marketed sale,80,82,146,126.0,1.8,24,1.6,80.0,40.0,247.0,237.0,79.0,79.0,76.5,Single,Y,2nd,Y,3.0,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,0.0,0.0,From main system,Very Good,Very Good,(other premises below),,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 150mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,heated corridor,,2.8,0.0,N,natural,"Flat 5 Yalding House, Marigold Way",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2009-02-26 16:56:37,owner-occupied,,,10022901895.0,Address Matched +1245075429062014120314283240978664,"6, Tilefields",Hollingbourne,,ME17 1TZ,6449260378,D,C,58,70,Bungalow,Detached,2014-12-03,E07000110,E14000700,Kent,2014-12-03,marketed sale,55,67,222,155.0,5.2,42,3.6,79.0,79.0,1046.0,977.0,138.0,93.0,123.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,83.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Roof room(s), ceiling insulated",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 83% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"6, Tilefields, Hollingbourne",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2014-12-03 14:28:32,owner-occupied,18.0,15.0,200003700566.0,Address Matched +271005999142012052714305969022258,"22, Pope Street",,,ME16 8LQ,5168390668,D,B,65,88,House,Mid-Terrace,2012-05-25,E07000110,E14000804,Kent,2012-05-27,marketed sale,64,90,221,45.0,2.7,42,0.6,51.0,36.0,455.0,327.0,86.0,52.0,63.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,4.0,4.0,60.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 60% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"22, Pope Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2012-05-27 14:30:59,owner-occupied,10.0,6.0,200003655810.0,Address Matched +397319798412019091408045497910469,"7, Launder Way",,,ME15 6XY,4968879668,C,A,76,92,House,Mid-Terrace,2019-09-13,E07000110,E14000804,Kent,2019-09-14,rental (private),79,94,169,23.0,1.4,30,0.2,38.0,38.0,260.0,260.0,70.0,45.0,46.0,Unknown,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"7, Launder Way",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1991-1995,2019-09-14 08:04:54,rental (private),,,200003665409.0,Address Matched +1076544489222014012409172308878714,"10, Salem Street",,,ME15 6NS,1083878178,B,B,82,82,Flat,NO DATA!,2014-01-23,E07000110,E14000804,Kent,2014-01-24,new dwelling,86,86,95,95.0,1.2,18,1.2,52.0,52.0,248.0,248.0,71.0,71.0,67.0,standard tariff,,ground floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.12 W/mA?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.19 W/mA?K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"10, Salem Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2014-01-24 09:17:23,NO DATA!,20.0,20.0,10014314845.0,Address Matched +678270741932011091520171131968606,"1, Roseleigh Avenue",,,ME16 0AR,4651610968,F,E,23,47,Bungalow,Semi-Detached,2011-09-14,E07000110,E14000804,Kent,2011-09-15,marketed sale,26,43,570,370.0,8.3,107,5.5,79.0,42.0,1399.0,939.0,236.0,101.0,51.7,Single,Y,NODATA!,,,2102.0,0.0,"double glazing, unknown install date",Normal,0.0,4.0,2.0,12.0,0.0,"Electric immersion, standard tariff",Very Poor,Very Poor,"Solid, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,Portable electric heaters (assumed),,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,Low energy lighting in 12% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,2.4,0.0,,natural,"1, Roseleigh Avenue",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2011-09-15 20:17:11,owner-occupied,8.0,1.0,200003658331.0,Address Matched +166779690302008102719292758282438,"52, Kingfisher Meadow",,,ME16 8RB,5373092568,C,C,78,80,Flat,Mid-Terrace,2008-10-27,E07000110,E14000804,Kent,2008-10-27,marketed sale,71,72,274,269.0,2.0,41,2.0,47.0,26.0,127.0,132.0,104.0,104.0,48.9,dual,N,3rd,N,4.0,2402.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,20.0,0.0,"Electric immersion, off-peak",Poor,Poor,(other premises below),,,Fully double glazed,Good,Good,"Timber frame, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,Electric storage heaters,Poor,Very Poor,Automatic charge control,Average,Average,Low energy lighting in 20% of fixed outlets,Poor,Poor,electricity - this is for backwards compatibility only and should not be used,0.0,unheated corridor,5.88,2.41,0.0,N,natural,"52, Kingfisher Meadow",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2008-10-27 19:29:27,owner-occupied,,,10022892263.0,Address Matched +478695599962019111518130265558441,1 The Terrace,Smarden Road,Headcorn,TN27 9TA,4690945768,D,B,66,85,House,End-Terrace,2019-11-15,E07000110,E14000700,Kent,2019-11-15,RHI application,70,86,192,73.0,2.6,32,1.0,92.0,65.0,463.0,448.0,326.0,155.0,80.0,Single,N,NODATA!,,,2206.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,60.0,0.0,"From main system, no cylinder thermostat",Very Poor,Average,"To external air, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Roof room(s), ceiling insulated",Good,Good,"Air source heat pump, radiators, electric",Poor,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 60% of fixed outlets,Good,Good,electricity (not community),0.0,NO DATA!,,,,N,natural,"1 The Terrace, Smarden Road, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,England and Wales: 2003-2006,2019-11-15 18:13:02,owner-occupied,,,10014309166.0,Address Matched +667751411412011081817054794990483,7 Hales Court,Church Street,,ME14 1DG,4357149868,B,B,81,82,Flat,NO DATA!,2011-08-18,E07000110,E14000804,Kent,2011-08-18,new dwelling,83,83,119,116.0,1.5,21,1.5,52.0,40.0,197.0,199.0,100.0,100.0,70.7,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,7.0,,From main system,Average,Good,(other premises below),,,Fully double glazed,Good,Good,Average thermal transmittance 0.25 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.20 W/m?K,Good,Good,"Air source heat pump, underfloor, electric",Good,Very Good,Programmer and at least two room thermostats,Good,Good,Low energy lighting in 70% of fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",0.0,NO DATA!,,2.6,,,NO DATA!,"7 Hales Court, Church Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2011-08-18 17:05:47,,10.0,7.0,10014306369.0,Address Matched +186499882262020022515020234858740,"8, Selbourne Walk",,,ME15 8UN,4314854568,D,B,67,88,House,End-Terrace,2020-02-25,E07000110,E14000700,Kent,2020-02-25,marketed sale,63,87,236,68.0,3.2,42,1.0,77.0,61.0,503.0,364.0,148.0,70.0,77.0,Single,Y,NODATA!,,,2104.0,87.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,75.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Mostly double glazing,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"8, Selbourne Walk",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1976-1982,2020-02-25 15:02:02,owner-occupied,,,200003726261.0,Address Matched +1480068879962016091616283577168516,"30, Murdoch Chase",Coxheath,,ME17 4AA,1725727478,B,A,83,95,House,NO DATA!,2016-09-16,E07000110,E14000804,Kent,2016-09-16,new dwelling,86,98,89,5.0,1.3,16,0.1,57.0,57.0,235.0,235.0,84.0,49.0,82.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.14 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.20 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"30, Murdoch Chase, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2016-09-16 16:28:35,unknown,10.0,10.0,10093302685.0,Address Matched +1573184949922017091818430983068583,Flat 80 Miller Heights,"43-51, Lower Stone Street",,ME15 6LZ,8800483578,B,B,87,87,Flat,Mid-Terrace,2017-09-16,E07000110,E14000804,Kent,2017-09-18,marketed sale,79,79,160,160.0,1.6,27,1.6,52.0,52.0,69.0,69.0,137.0,137.0,59.0,dual,N,7th,N,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,From main system,Average,Poor,(another dwelling below),NO DATA!,,Fully double glazed,Good,Good,"Solid brick, as built, insulated (assumed)",Very Good,Very Good,,,,(another dwelling above),,,"Boiler and radiators, electric",Average,Very Poor,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,unheated corridor,9.38,,,N,natural,"Flat 80 Miller Heights, 43-51, Lower Stone Street",Maidstone,Maidstone and The Weald,MAIDSTONE,INVALID!,2017-09-18 18:43:09,owner-occupied,,,10091196177.0,Address Matched +379162299022010090808385708388770,"24, Shernolds",,,ME15 9QH,7096948668,C,C,73,74,House,Detached,2010-09-08,E07000110,E14000804,Kent,2010-09-08,marketed sale,69,69,182,180.0,4.3,30,4.3,91.0,76.0,639.0,642.0,128.0,128.0,88.08,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,5.0,5.0,80.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,0.0,N,natural,"24, Shernolds",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2010-09-08 08:38:57,owner-occupied,,,200003680367.0,Address Matched +799504548332017082122365794268607,"26, Essex Road",,,ME15 7QL,4744619968,D,B,68,84,House,End-Terrace,2017-08-21,E07000110,E14000700,Kent,2017-08-21,marketed sale,65,82,225,103.0,3.0,40,1.4,104.0,52.0,487.0,456.0,131.0,81.0,76.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 270 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"26, Essex Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2017-08-21 22:36:57,owner-occupied,,,200003680441.0,Address Matched +1419961756632016061609495264978901,"38, Nightingale Road",Allington,,ME16 0FQ,5104992478,B,B,84,84,Flat,Detached,2016-06-13,E07000110,E14000804,Kent,2016-06-16,new dwelling,88,88,84,84.0,0.9,15,0.9,46.0,46.0,172.0,172.0,78.0,78.0,62.0,standard tariff,,top floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.26 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"38, Nightingale Road, Allington",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2016-06-16 09:49:52,owner-occupied,14.0,14.0,10091195311.0,Address Matched +494296869742014022406595770642628,3 Hayle Mill Cottages,Hayle Mill Road,,ME15 6DT,5790066768,D,B,60,87,House,Mid-Terrace,2014-02-22,E07000110,E14000804,Kent,2014-02-24,marketed sale,61,88,250,54.0,2.9,47,0.7,58.0,39.0,589.0,448.0,87.0,60.0,61.0,Single,Y,NODATA!,,,2106.0,0.0,not defined,Normal,1.0,5.0,4.0,50.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Granite or whinstone, as built, no insulation (assumed)",Very Poor,Very Poor,Portable electric heaters (assumed),,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"3 Hayle Mill Cottages, Hayle Mill Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2014-02-24 06:59:57,owner-occupied,8.0,4.0,200003664211.0,Address Matched +915865965152013041806582793970208,"23, Westmorland Road",,,ME15 8BD,2862537078,D,B,65,84,House,Semi-Detached,2013-04-17,E07000110,E14000700,Kent,2013-04-18,marketed sale,65,85,201,72.0,3.0,38,1.1,49.0,49.0,565.0,429.0,86.0,60.0,78.0,Single,Y,NODATA!,,,2106.0,0.0,not defined,Normal,0.0,4.0,4.0,90.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 90% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"23, Westmorland Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2013-04-18 06:58:27,owner-occupied,10.0,9.0,200003684568.0,Address Matched +1099987789022014030310075470528744,"7, Faraday Road",Penenden Heath,,ME14 2DB,4765830278,C,C,72,80,House,Detached,2014-03-02,E07000110,E14000804,Kent,2014-03-03,marketed sale,69,77,143,97.0,4.8,27,3.3,131.0,79.0,823.0,768.0,132.0,133.0,174.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,4.0,7.0,7.0,35.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 35% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"7, Faraday Road, Penenden Heath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2014-03-03 10:07:54,owner-occupied,20.0,7.0,200003673240.0,Address Matched +1628521939552018050216103297080456,Flat 1 Admiral Court,"55-59, Wallis Avenue",,ME15 9HS,4626977578,B,B,85,85,Flat,Detached,2018-05-02,E07000110,E14000700,Kent,2018-05-02,new dwelling,89,89,76,76.0,0.9,13,0.9,49.0,49.0,148.0,148.0,95.0,95.0,70.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.20 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Flat 1 Admiral Court, 55-59, Wallis Avenue",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2018-05-02 16:10:32,unknown,10.0,10.0,10093304771.0,Address Matched +1086262549702014020801090810940358,69a Johns Court,John Street,,ME14 2SQ,9782449178,C,C,69,76,Flat,Semi-Detached,2014-02-05,E07000110,E14000804,Kent,2014-02-08,marketed sale,71,80,219,150.0,1.7,42,1.2,41.0,27.0,380.0,285.0,48.0,47.0,41.0,Unknown,Y,Ground,N,,2103.0,0.0,not defined,Normal,0.0,3.0,3.0,50.0,0.0,From main system,Very Good,Good,"Solid, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,Room thermostat only,Poor,Poor,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,unheated corridor,4.7,,0.0,,natural,"69a Johns Court, John Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2014-02-08 01:09:08,owner-occupied,6.0,3.0,200003704707.0,Address Matched +483049753112014050209081998940171,Flat 6,"24, Melville Road",,ME15 7UY,1143385768,C,C,79,80,Flat,Mid-Terrace,2014-04-15,E07000110,E14000804,Kent,2014-05-02,marketed sale,85,86,127,115.0,0.9,24,0.8,25.0,25.0,198.0,191.0,80.0,70.0,37.0,Unknown,Y,2nd,Y,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,100.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Good,Good,"Solid brick, with internal insulation",Good,Good,,,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,5.6,,0.0,,natural,"Flat 6, 24, Melville Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2014-05-02 09:08:19,owner-occupied,4.0,4.0,200003728981.0,Address Matched +529265507652014022113562590940879,69 Sunningdale Court,Square Hill Road,,ME15 7TU,8911709768,C,C,73,79,Flat,Mid-Terrace,2014-02-18,E07000110,E14000804,Kent,2014-02-21,none of the above,77,84,171,119.0,1.5,33,1.0,53.0,29.0,245.0,199.0,124.0,99.0,45.0,Single,Y,11th,N,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,20.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 20% of fixed outlets,Poor,Poor,mains gas (not community),0.0,unheated corridor,4.597,,0.0,,natural,"69 Sunningdale Court, Square Hill Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2014-02-21 13:56:25,rental (social),5.0,1.0,200003696639.0,Address Matched +290548945132009052216295703268109,"Ground Floor Flat, Wardes Moat",Vicarage Road,Yalding,ME18 6DY,4933132668,D,D,55,64,Flat,Detached,2009-05-22,E07000110,E14000804,Kent,2009-05-22,marketed sale,55,66,421,332.0,3.2,62,2.5,51.0,26.0,494.0,426.0,117.0,88.0,51.6,Unknown,Y,Ground,N,3.0,2106.0,0.0,INVALID!,Normal,0.0,2.0,2.0,0.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Solid brick, as built, insulated (assumed)",Good,Good,"Room heaters, wood logs",,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,unheated corridor,11.3,3.0,0.0,N,natural,"Ground Floor Flat, Wardes Moat, Vicarage Road, Yalding",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2009-05-22 16:29:57,owner-occupied,,,200003731371.0,Address Matched +609033719342011032519555485592748,"5, Orache Drive",Weavering,,ME14 5UG,8340015868,D,C,68,76,House,End-Terrace,2011-03-24,E07000110,E14000700,Kent,2011-03-25,marketed sale,64,72,217,170.0,4.6,36,3.6,125.0,70.0,691.0,557.0,137.0,137.0,144.68,Single,Y,NO DATA!,,,2102.0,100.0,double glazing installed during or after 2002,Normal,1.0,6.0,6.0,23.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,Low energy lighting in 23% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.37,0.0,N,natural,"5, Orache Drive, Weavering",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2011-03-25 19:55:54,owner-occupied,,,200003689227.0,Address Matched +118757909022014070712425408338684,West Bank Cottage,Chart Road,Sutton Valence,ME17 3AW,8056048468,D,B,65,83,House,Detached,2014-07-07,E07000110,E14000700,Kent,2014-07-07,FiT application,55,78,175,82.0,11.0,34,5.4,162.0,118.0,2639.0,1561.0,165.0,133.0,332.0,Unknown,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,1.0,8.0,8.0,62.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 62% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,25.0,,natural,"West Bank Cottage, Chart Road, Sutton Valence",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1900-1929,2014-07-07 12:42:54,owner-occupied,13.0,8.0,200003694400.0,Address Matched +9dcda9855d4bf1ed9b4354eb033d0199e13f28090efa62d4bf95b5d01b9512e3,30 St. Andrews Park,Tarragon Road,,ME16 0WD,10001455827,D,D,59,65,Flat,Mid-Terrace,2021-08-17,E07000110,E14000804,Kent,2021-08-17,rental,54,62,316,258.0,3.5,56,2.9,95.0,56.0,597.0,505.0,76.0,76.0,63.0,Unknown,Y,02,Y,,,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,31.0,0.0,From main system,Good,Good,(another dwelling below),,,Fully double glazed,Average,Average,"Granite or whinstone, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 31% of fixed outlets,Average,Average,mains gas (not community),0.0,unheated corridor,6.54,2.59,0.0,N,natural,"30 St. Andrews Park, Tarragon Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2021-08-17 11:01:49,Rented (private),13.0,,200003654987.0,Energy Assessor +1173901673432014071415530260978103,"48, Reculver Walk",,,ME15 8QW,7350165278,D,B,62,86,House,End-Terrace,2014-07-14,E07000110,E14000700,Kent,2014-07-14,marketed sale,60,86,234,64.0,3.4,45,1.0,81.0,48.0,554.0,410.0,197.0,79.0,75.0,Single,Y,NODATA!,,,2107.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,30.0,1.0,"From main system, no cylinder thermostat",Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 30% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"48, Reculver Walk",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2014-07-14 15:53:02,owner-occupied,10.0,3.0,200003725818.0,Address Matched +9dd398f230ddb019e076839d871dca2bbd5a3898fcd45ddab9504a49610c1b62,Flat 2,The Cloisters,Ham Lane,ME17 2PZ,10001686396,D,B,65,82,Flat,Mid-Terrace,2021-08-23,E07000110,E14000700,Kent,2021-08-23,rental,68,70,288,269.0,1.9,49,1.8,56.0,41.0,358.0,163.0,299.0,155.0,40.0,Single,N,00,N,,,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,50.0,0.0,"Electric immersion, standard tariff",Very Poor,Poor,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Room heaters, electric",Very Poor,Poor,Programmer and appliance thermostats,Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,electricity (not community),0.0,no corridor,,2.34,0.0,N,natural,"Flat 2, The Cloisters, Ham Lane",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1991-1995,2021-08-23 19:09:51,Rented (private),6.0,,200003712552.0,Energy Assessor +1034174459062018100310543245228898,Silver Stone Cottage,Lenham Road,Headcorn,TN27 9LE,9447575178,D,C,61,77,House,Semi-Detached,2018-10-02,E07000110,E14000700,Kent,2018-10-03,marketed sale,50,69,159,85.0,5.5,46,3.2,113.0,83.0,729.0,482.0,128.0,79.0,122.0,dual,N,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,5.0,5.0,64.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Sandstone or limestone, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, oil",Average,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 64% of fixed outlets,Good,Good,oil (not community),0.0,NO DATA!,,,,N,natural,"Silver Stone Cottage, Lenham Road, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,England and Wales: before 1900,2018-10-03 10:54:32,owner-occupied,,,200003700917.0,Address Matched +1667623311312018101518013796989061,Flat 162,Brenchley House,123-135 Week Street,ME14 1FZ,163160678,C,C,75,75,Flat,Mid-Terrace,2018-10-15,E07000110,E14000804,Kent,2018-10-15,new dwelling,80,80,189,189.0,1.1,33,1.1,27.0,27.0,193.0,193.0,95.0,95.0,33.0,standard tariff,,top floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,Community scheme,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.30 W/m-¦K,Good,Good,,,,Average thermal transmittance 0.18 W/m-¦K,Good,Good,Community scheme,Good,Good,"Charging system linked to use of community heating, programmer and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,NO DATA!,,NO DATA!,,,,,NO DATA!,"Flat 162, Brenchley House, 123-135 Week Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2018-10-15 18:01:37,unknown,6.0,6.0,10094440838.0,Address Matched +299142065132019060421245238068807,"19, Bridgeside Mews",,,ME15 6TB,6728882668,C,A,80,94,House,Mid-Terrace,2019-05-03,E07000110,E14000804,Kent,2019-06-04,rental (private),83,97,118,7.0,1.3,21,0.1,51.0,51.0,217.0,217.0,89.0,59.0,62.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"19, Bridgeside Mews",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2019-06-04 21:24:52,rental (private),,,10014308029.0,Address Matched +652208799922011071216041648128859,"79, Upper Road",,,ME15 7RD,5495928868,C,C,74,75,House,Mid-Terrace,2011-07-12,E07000110,E14000804,Kent,2011-07-12,rental (social),76,76,157,152.0,2.1,30,2.0,55.0,39.0,335.0,337.0,101.0,101.0,69.61,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,56.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 56% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,2.39,0.0,,natural,"79, Upper Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2011-07-12 16:04:16,rental (social),9.0,5.0,200003685155.0,Address Matched +1557829369022017070612274832348373,"7, Tonbridge Road",Teston,,ME18 5BU,7370672578,G,F,1,32,House,Semi-Detached,2017-07-04,E07000110,E14000804,Kent,2017-07-06,non marketed sale,1,27,969,415.0,18.0,205,7.8,114.0,57.0,3340.0,1667.0,338.0,166.0,86.0,Single,N,NODATA!,,,2601.0,100.0,"double glazing, unknown install date",Normal,1.0,5.0,2.0,0.0,2.0,"Electric immersion, standard tariff",Very Poor,Poor,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,Portable electric heaters (assumed),,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, dual fuel (mineral and wood)",Very Poor,Very Poor,No thermostatic control of room temperature,Poor,Poor,No low energy lighting,Very Poor,Very Poor,dual fuel - mineral + wood,0.0,NO DATA!,,,,N,natural,"7, Tonbridge Road, Teston",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2017-07-06 12:27:48,unknown,,,200003661152.0,Address Matched +873230894312013012217423293270604,"69, Charlesford Avenue",Kingswood,,ME17 3PH,6415434078,C,C,70,80,Bungalow,Detached,2013-01-22,E07000110,E14000700,Kent,2013-01-22,marketed sale,65,75,143,97.0,8.8,28,6.1,203.0,114.0,1433.0,1236.0,116.0,116.0,320.0,dual,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,14.0,14.0,22.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 22% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"69, Charlesford Avenue, Kingswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2013-01-22 17:42:32,owner-occupied,32.0,7.0,200003701591.0,Address Matched +1104736804112014031109580897040024,14 Broadway Heights,"23, The Broadway",,ME16 8GJ,417470278,C,C,79,79,Flat,Semi-Detached,2014-03-08,E07000110,E14000804,Kent,2014-03-11,rental (social),85,85,115,115.0,1.0,22,1.0,33.0,33.0,217.0,217.0,75.0,75.0,46.0,Single,Y,4th,Y,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,100.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Good,Good,"System built, as built, insulated (assumed)",Good,Good,,,,"Flat, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,9.5,,0.0,,natural,"14 Broadway Heights, 23, The Broadway",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2014-03-11 09:58:08,rental (social),6.0,6.0,10022896838.0,Address Matched +403468740262009112600011250158141,"27, Pennine Way",Downswood,,ME15 8UF,4512420768,E,E,51,54,House,Mid-Terrace,2009-11-25,E07000110,E14000700,Kent,2009-11-26,marketed sale,58,60,420,401.0,2.6,67,2.5,39.0,19.0,374.0,383.0,234.0,210.0,38.9,Single,Y,NO DATA!,,,2601.0,75.0,secondary glazing,Normal,0.0,2.0,1.0,0.0,0.0,"Electric immersion, standard tariff",Very Poor,Poor,"Solid, no insulation (assumed)",,,Partial secondary glazing,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,"Pitched, 200 mm loft insulation",Good,Good,"Room heaters, mains gas",Average,Average,No thermostatic control of room temperature,Poor,Poor,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.36,0.0,N,natural,"27, Pennine Way, Downswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2009-11-26 00:01:12,owner-occupied,,,200003691295.0,Address Matched +234046313152009022321262301210455,"5, Crispin Court",Coxheath,,ME17 4RB,4548318568,B,B,81,82,Flat,Semi-Detached,2009-02-23,E07000110,E14000804,Kent,2009-02-23,rental (social),79,80,167,162.0,1.6,28,1.5,44.0,30.0,236.0,238.0,75.0,75.0,57.3,Single,Y,1st,Y,2.0,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,50.0,0.0,From main system,Very Good,Very Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.36,0.0,N,natural,"5, Crispin Court, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2009-02-23 21:26:23,rental (social),,,200003715334.0,Address Matched +1225747330432014102307085041278790,"115, Ashford Road",Bearsted,,ME14 4BT,3081729278,D,B,65,83,Bungalow,Detached,2014-10-21,E07000110,E14000700,Kent,2014-10-23,marketed sale,63,82,207,84.0,3.4,40,1.4,74.0,53.0,625.0,490.0,132.0,89.0,85.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,4.0,4.0,60.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 60% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"115, Ashford Road, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2014-10-23 07:08:50,owner-occupied,10.0,6.0,200003692018.0,Address Matched +100570187112015042213591895250748,"2, Cornflower Close",Weavering,,ME14 5UL,7871756468,D,C,57,75,House,Detached,2015-04-22,E07000110,E14000700,Kent,2015-04-22,ECO assessment,47,68,273,149.0,8.0,48,4.4,111.0,82.0,1421.0,1036.0,177.0,78.0,167.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,1.0,7.0,7.0,64.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, mains gas",,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 64% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"2, Cornflower Close, Weavering",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2015-04-22 13:59:18,owner-occupied,,,200003687877.0,Address Matched +365626730922009091720151927738281,"17, Crispin Court",Coxheath,,ME17 4RB,8220357668,B,B,81,82,Flat,Semi-Detached,2009-09-17,E07000110,E14000804,Kent,2009-09-17,rental (social),79,80,167,161.0,1.5,28,1.5,48.0,30.0,249.0,252.0,79.0,79.0,55.96,Single,Y,1st,Y,2.0,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,40.0,0.0,From main system,Very Good,Very Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 40% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.37,0.0,N,natural,"17, Crispin Court, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2009-09-17 20:15:19,rental (social),,,200003715341.0,Address Matched +408709359502013050210045872070828,"9, Lockswood",,,ME16 0NX,9545750768,C,A,72,92,House,Mid-Terrace,2013-05-02,E07000110,E14000804,Kent,2013-05-02,non marketed sale,74,95,178,13.0,1.8,34,0.2,43.0,32.0,326.0,278.0,87.0,49.0,53.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,67.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 67% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"9, Lockswood",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2013-05-02 10:04:58,owner-occupied,18.0,12.0,200003662339.0,Address Matched +1248682790812014121122382499949731,"57, Bicknor Road",,,ME15 9NX,7182090378,C,B,70,86,House,Mid-Terrace,2014-12-11,E07000110,E14000700,Kent,2014-12-11,rental (social),68,85,205,86.0,2.9,36,1.2,62.0,50.0,480.0,427.0,134.0,78.0,79.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,75.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"57, Bicknor Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2014-12-11 22:38:24,rental (social),,,200003679842.0,Address Matched +1683786899062018120518231321358108,Flat 4,Trinity Foyer,20 Church Street,ME14 1LY,274971678,C,C,80,80,Flat,Mid-Terrace,2018-12-05,E07000110,E14000804,Kent,2018-12-05,rental (social),98,98,146,146.0,0.9,26,0.9,27.0,27.0,129.0,129.0,97.0,97.0,34.0,Unknown,N,1st,N,,2307.0,100.0,"double glazing, unknown install date",Normal,0.0,1.0,1.0,100.0,0.0,Community scheme,Good,Very Good,(another dwelling below),NO DATA!,,Fully double glazed,Average,Average,"Granite or whinstone, as built, no insulation (assumed)",Poor,Poor,,,,(another dwelling above),,,Community scheme,Good,Very Good,"Flat rate charging, TRVs",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (community),0.0,heated corridor,,,,N,natural,"Flat 4, Trinity Foyer, 20 Church Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2018-12-05 18:23:13,rental (social),,,, +1602288299802018012207064758589118,"18, Bargrove Road",,,ME14 5RR,7878195578,C,B,71,84,House,End-Terrace,2018-01-19,E07000110,E14000804,Kent,2018-01-22,marketed sale,68,81,187,97.0,3.1,33,1.6,72.0,72.0,522.0,471.0,106.0,74.0,94.0,Unknown,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,86.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 86% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"18, Bargrove Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2018-01-22 07:06:47,owner-occupied,,,200003672225.0,Address Matched +783528239022012050215254888628812,"38, Chipstead Close",,,ME16 0DH,1818308968,E,B,53,83,House,Semi-Detached,2012-05-02,E07000110,E14000804,Kent,2012-05-02,marketed sale,50,83,301,82.0,4.2,58,1.2,76.0,40.0,645.0,394.0,130.0,70.0,72.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,11.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 11% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"38, Chipstead Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2012-05-02 15:25:48,owner-occupied,9.0,1.0,200003658705.0,Address Matched +503667489222010062317325717978420,Bell House,The Green,Bearsted,ME14 4ED,2167827768,E,E,39,44,House,Detached,2010-06-23,E07000110,E14000700,Kent,2010-06-23,marketed sale,35,38,363,336.0,27.0,61,25.0,510.0,255.0,3894.0,3727.0,240.0,227.0,426.0,dual,Y,NO DATA!,,,2107.0,0.0,not defined,Normal,0.0,10.0,10.0,0.0,5.0,From main system,Very Good,Very Good,"Suspended, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Timber frame, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, TRVs and bypass",Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,0.0,N,natural,"Bell House, The Green, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2010-06-23 17:32:57,owner-occupied,,,200003694952.0,Address Matched +1592853229202017112812474855532638,"12, Farleigh Heights",Tovil,,ME15 6XN,4282625578,B,A,84,94,House,Semi-Detached,2017-11-27,E07000110,E14000804,Kent,2017-11-28,new dwelling,85,95,86,22.0,1.6,15,0.4,74.0,74.0,274.0,274.0,82.0,48.0,107.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.12 W/m+é-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.19 W/m+é-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.10 W/m+é-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"12, Farleigh Heights, Tovil",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2017-11-28 12:47:48,unknown,30.0,30.0,10091195973.0,Address Matched +1667746369942018101516405068089658,Flat 68,Brenchley House,123-135 Week Street,ME14 1FX,3957160678,C,C,77,77,Flat,Mid-Terrace,2018-10-15,E07000110,E14000804,Kent,2018-10-15,new dwelling,82,82,166,166.0,1.0,29,1.0,28.0,28.0,170.0,170.0,95.0,95.0,34.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,Community scheme,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.30 W/m-¦K,Good,Good,,,,(other premises above),,,Community scheme,Good,Good,"Charging system linked to use of community heating, programmer and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,NO DATA!,,NO DATA!,,,,,NO DATA!,"Flat 68, Brenchley House, 123-135 Week Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2018-10-15 16:40:50,unknown,6.0,6.0,10094440744.0,Address Matched +1687026452912019010709405090010469,Flat 10 Lenworth House,"4, Ashford Road",,ME14 5GP,4996202678,B,B,83,83,Flat,Detached,2019-01-07,E07000110,E14000700,Kent,2019-01-07,new dwelling,87,87,89,89.0,0.9,16,0.9,46.0,46.0,173.0,173.0,79.0,79.0,59.0,standard tariff,,ground floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.12 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.14 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Flat 10 Lenworth House, 4, Ashford Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2019-01-07 09:40:50,unknown,5.0,5.0,10093306603.0,Address Matched +862861622232012121107381721078291,"34, Roseacre Lane",Bearsted,,ME14 4HZ,2161263078,C,C,72,78,House,Detached,2012-12-04,E07000110,E14000700,Kent,2012-12-11,marketed sale,68,73,134,106.0,7.6,26,6.1,147.0,98.0,1224.0,1232.0,101.0,101.0,294.0,Unknown,Y,NODATA!,,,2109.0,100.0,double glazing installed during or after 2002,Normal,3.0,11.0,11.0,50.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Solid brick, with internal insulation",Good,Good,,,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and boiler energy manager",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"34, Roseacre Lane, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2012-12-11 07:38:17,owner-occupied,34.0,17.0,200003692184.0,Address Matched +562515359062010110810184341438450,Croftside,Pilgrims Way,Detling,ME14 3JY,5472541868,D,C,61,73,House,Detached,2010-11-07,E07000110,E14000700,Kent,2010-11-08,marketed sale,60,69,217,170.0,7.6,35,6.1,219.0,118.0,1158.0,879.0,178.0,157.0,213.6,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,2.0,34.0,2.0,14.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,Portable electric heaters,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 14% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,0.0,N,natural,"Croftside, Pilgrims Way, Detling",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2010-11-08 10:18:43,owner-occupied,,,200003694149.0,Address Matched +1364174066512015091516490290950430,"1, Woodcocks",Headcorn,,TN27 9HB,4015609378,D,C,68,78,House,Detached,2015-09-15,E07000110,E14000700,Kent,2015-09-15,marketed sale,59,72,190,127.0,6.6,34,4.5,94.0,94.0,1187.0,987.0,165.0,129.0,198.0,Unknown,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,8.0,8.0,100.0,0.0,From main system,Good,Good,"Solid, limited insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, mains gas",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"1, Woodcocks, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,England and Wales: 1996-2002,2015-09-15 16:49:02,owner-occupied,,,200003728042.0,Address Matched +1793634467032020031816222673978605,"6, Allfrey Road",,,ME17 3SZ,6513679678,B,A,84,94,House,Detached,2020-03-18,E07000110,E14000700,Kent,2020-03-18,new dwelling,86,96,86,17.0,1.5,15,0.3,80.0,80.0,254.0,254.0,77.0,46.0,100.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"6, Allfrey Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2020-03-18 16:22:26,unknown,7.0,7.0,10094441759.0,Address Matched +1798732903252020052009405021200971,"23, Horseshoe Close",Weavering,,ME14 5TT,9141310778,D,B,63,87,House,Semi-Detached,2020-05-20,E07000110,E14000700,Kent,2020-05-20,rental (private),58,85,266,75.0,3.5,47,1.0,60.0,60.0,552.0,379.0,165.0,69.0,75.0,Single,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,100.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"23, Horseshoe Close, Weavering",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2020-05-20 09:40:50,rental (private),,,200003689861.0,Address Matched +1543662566252017051508564897930257,"58, Murdoch Chase",Coxheath,,ME17 4AA,2740671578,B,A,85,96,House,Mid-Terrace,2017-05-15,E07000110,E14000804,Kent,2017-05-15,new dwelling,88,99,79,-5.0,1.1,14,0.0,58.0,58.0,197.0,197.0,83.0,48.0,82.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.14 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.20 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"58, Murdoch Chase, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2017-05-15 08:56:48,unknown,10.0,10.0,10093302699.0,Address Matched +252706909222017043015282349388383,"50, Buckland Road",,,ME16 0SH,8474089568,D,C,59,75,Flat,Semi-Detached,2017-04-28,E07000110,E14000804,Kent,2017-04-30,marketed sale,52,74,272,148.0,4.7,48,2.6,112.0,67.0,838.0,445.0,109.0,110.0,98.0,Single,Y,Ground,N,,2107.0,0.0,not defined,Normal,0.0,4.0,4.0,29.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Single glazed,Very Poor,Very Poor,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 29% of fixed outlets,Average,Average,mains gas (not community),0.0,no corridor,,,,N,natural,"50, Buckland Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2017-04-30 15:28:23,owner-occupied,,,200003666826.0,Address Matched +219709080142009012218112757612028,"49, Allen Street",,,ME14 5AH,9127686568,D,D,55,61,House,Mid-Terrace,2009-01-22,E07000110,E14000804,Kent,2009-01-22,marketed sale,47,54,378,324.0,5.0,63,4.3,42.0,42.0,713.0,621.0,100.0,87.0,79.3,Single,Y,NO DATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,1.0,4.0,4.0,89.0,4.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Poor,Poor,Low energy lighting in 89% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.3,0.0,N,natural,"49, Allen Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2009-01-22 18:11:27,owner-occupied,,,200003704922.0,Address Matched +1494279729342016110406510942860178,"11, Linden Road",Coxheath,,ME17 4QS,8332528478,D,B,57,85,Bungalow,Semi-Detached,2016-11-03,E07000110,E14000804,Kent,2016-11-04,marketed sale,53,85,330,89.0,3.7,58,1.0,61.0,45.0,639.0,433.0,193.0,69.0,64.0,Single,Y,NODATA!,,,2107.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,62.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 62% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,2.46,,N,natural,"11, Linden Road, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2016-11-04 06:51:09,owner-occupied,,,200003714787.0,Address Matched +233675530222009022518443568658781,"11, Pine Place",Tovil,,ME15 6EF,8661338568,C,C,72,77,House,Semi-Detached,2009-02-25,E07000110,E14000804,Kent,2009-02-25,marketed sale,68,74,245,201.0,2.5,41,2.1,56.0,30.0,299.0,267.0,95.0,83.0,73.95,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,11.0,0.0,From main system,Good,Good,"Suspended, limited insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 11% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.77,0.0,N,natural,"11, Pine Place, Tovil",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2009-02-25 18:44:35,owner-occupied,,,200003666329.0,Address Matched +9e603a944ad0fa404b04730cfec4b6e16fd36cfa7994825c076a60f6ae20887a,60 Gilbert Way,,,ME17 3TT,10001632011,B,A,84,96,House,End-Terrace,2021-09-01,E07000110,E14000700,Kent,2021-09-01,new dwelling,86,98,88,3.0,1.2,16,0.1,73.0,73.0,215.0,215.0,68.0,42.0,80.0,standard tariff,,,N,,,100.0,,,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.33,,,,60 Gilbert Way,Maidstone,Faversham and Mid Kent,MAIDSTONE,2017,2021-09-01 11:28:50,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,8.0,,10094441901.0,Energy Assessor +149667029152012101819501493929157,"91, Howard Drive",,,ME16 0QF,1743931568,D,B,63,83,Bungalow,Semi-Detached,2012-10-18,E07000110,E14000804,Kent,2012-10-18,marketed sale,63,85,217,77.0,3.0,41,1.1,56.0,41.0,558.0,427.0,80.0,58.0,73.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,1.0,4.0,4.0,64.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 64% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"91, Howard Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2012-10-18 19:50:14,owner-occupied,11.0,7.0,200003704132.0,Address Matched +753990289442013050915284994570918,Hurley,Weavering Street,Weavering,ME14 5JJ,5460785968,E,B,54,85,House,Semi-Detached,2013-05-09,E07000110,E14000700,Kent,2013-05-09,assessment for green deal,49,86,289,66.0,4.6,56,1.1,83.0,47.0,651.0,400.0,220.0,65.0,82.0,Single,Y,NODATA!,,,2106.0,55.0,double glazing installed before 2002,Normal,1.0,5.0,5.0,22.0,0.0,"From main system, no cylinder thermostat",Poor,Poor,"Suspended, no insulation (assumed)",,,Partial double glazing,Poor,Poor,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Average,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 22% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"Hurley, Weavering Street, Weavering",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1900-1929,2013-05-09 15:28:49,owner-occupied,9.0,2.0,200003687967.0,Address Matched +538013979002019052612085274912948,"14, Foxden Drive",Downswood,,ME15 8TQ,3015279768,C,B,73,87,House,Semi-Detached,2019-05-24,E07000110,E14000700,Kent,2019-05-26,marketed sale,72,86,191,77.0,2.3,34,1.0,62.0,62.0,405.0,376.0,76.0,48.0,68.0,Unknown,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,80.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"14, Foxden Drive, Downswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2019-05-26 12:08:52,owner-occupied,,,200003686539.0,Address Matched +9e4689069b1500e557ccd4f50bf746dcf709652b4b9c0e21cd27818273ab2ba3,122 Upper Stone Street,,,ME15 6HD,10001355512,E,B,52,82,House,Semi-Detached,2021-08-18,E07000110,E14000804,Kent,2021-08-18,rental,48,60,364,259.0,4.4,61,3.1,58.0,67.0,995.0,681.0,225.0,114.0,72.0,dual,N,,,,,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,"Electric immersion, off-peak",Poor,Poor,"Suspended, insulated",,,Fully double glazed,Good,Good,"Solid brick, with internal insulation",Good,Good,,,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Room heaters, electric",Very Poor,Poor,Programmer and appliance thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,,,2.5,0.0,N,natural,122 Upper Stone Street,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2021-08-18 16:29:01,Rented (private),12.0,,200003683344.0,Energy Assessor +635811825932011053119403224768407,"4, Vanity Lane",Coxheath,,ME17 4NY,2714417868,D,C,66,72,House,Semi-Detached,2011-05-31,E07000110,E14000804,Kent,2011-05-31,marketed sale,63,71,207,161.0,4.1,40,3.2,85.0,50.0,643.0,518.0,90.0,90.0,102.1,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,5.0,5.0,30.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 30% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,2.42,0.0,,natural,"4, Vanity Lane, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2011-05-31 19:40:32,owner-occupied,10.0,3.0,200003712795.0,Address Matched +41746439062017070519573543158063,The Kia,Ashford Road,Harrietsham,ME17 1BL,6435343468,D,A,57,93,Bungalow,Detached,2017-07-05,E07000110,E14000700,Kent,2017-07-05,marketed sale,48,86,281,57.0,7.9,50,1.7,123.0,85.0,1413.0,804.0,111.0,111.0,160.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,6.0,6.0,56.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, mains gas",,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 56% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"The Kia, Ashford Road, Harrietsham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2017-07-05 19:57:35,owner-occupied,,,200003705057.0,Address Matched +905014269642013041017373904679208,"69, Postley Road",,,ME15 6TP,604066078,C,B,71,89,House,Semi-Detached,2013-04-10,E07000110,E14000804,Kent,2013-04-10,marketed sale,72,91,176,38.0,2.1,34,0.5,49.0,49.0,344.0,302.0,125.0,70.0,63.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,78.0,0.0,From main system,Good,Good,"Solid, limited insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 78% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"69, Postley Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2013-04-10 17:37:39,owner-occupied,9.0,7.0,200003686799.0,Address Matched +201267789262019082113333715698601,"21, The Head Race",,,ME15 6FN,110865568,C,B,72,89,House,Mid-Terrace,2019-08-21,E07000110,E14000804,Kent,2019-08-21,rental (social),74,90,209,60.0,1.8,37,0.5,68.0,43.0,313.0,315.0,77.0,51.0,48.0,dual,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,42.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 42% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"21, The Head Race",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2019-08-21 13:33:37,rental (social),,,200003716587.0,Address Matched +444856729222010022518012533458290,"28, Freeman Way",,,ME15 8AN,9361213768,E,E,44,47,Bungalow,Semi-Detached,2010-02-25,E07000110,E14000700,Kent,2010-02-25,marketed sale,43,45,498,483.0,5.0,75,4.8,66.0,38.0,524.0,548.0,278.0,228.0,73.8,dual,Y,NO DATA!,,,2402.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,25.0,0.0,"Electric immersion, off-peak",Very Poor,Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, 200mm loft insulation",Good,Good,Electric storage heaters,Poor,Very Poor,Automatic charge control,Average,Average,Low energy lighting in 25% of fixed outlets,Average,Average,electricity - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.37,0.0,N,natural,"28, Freeman Way",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2010-02-25 18:01:25,owner-occupied,,,200003684396.0,Address Matched +52924822902020080619475358700668,"29a, Brewer Street",,,ME14 1RU,1903427568,E,C,48,72,Maisonette,Mid-Terrace,2020-08-06,E07000110,E14000804,Kent,2020-08-06,marketed sale,42,71,412,189.0,4.9,73,2.2,86.0,58.0,852.0,415.0,103.0,70.0,67.0,Single,Y,1st,Y,,2104.0,17.0,"double glazing, unknown install date",Normal,1.0,3.0,3.0,50.0,0.0,From main system,Good,Good,(another dwelling below),NO DATA!,,Some double glazing,Very Poor,Very Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,no corridor,,,,N,natural,"29a, Brewer Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2020-08-06 19:47:53,owner-occupied,,,200003733274.0,Address Matched +249090789412018122219533493289957,88 Pine Lodge,Tonbridge Road,,ME16 8TB,9774939568,C,C,75,80,Flat,Detached,2018-12-22,E07000110,E14000804,Kent,2018-12-22,rental (private),76,82,161,121.0,1.8,28,1.4,58.0,58.0,310.0,223.0,94.0,95.0,65.0,Single,Y,1st,N,,2107.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,83.0,0.0,From main system,Good,Good,(another dwelling below),NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, partial insulation (assumed)",Average,Average,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 83% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,4.89,,,N,natural,"88 Pine Lodge, Tonbridge Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1976-1982,2018-12-22 19:53:34,rental (private),,,200003657966.0,Address Matched +823261665252014022110470498940004,1 Sunningdale Court,Square Hill Road,,ME15 7TT,442580078,D,C,68,77,Flat,Semi-Detached,2014-02-17,E07000110,E14000804,Kent,2014-02-21,none of the above,68,80,206,132.0,2.3,39,1.5,45.0,45.0,407.0,263.0,133.0,114.0,58.0,Single,Y,Ground,N,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,83.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 83% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,4.866,,0.0,,natural,"1 Sunningdale Court, Square Hill Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2014-02-21 10:47:04,rental (social),6.0,5.0,200003696539.0,Address Matched +1219742539962014101413463948648664,"13, Tudor Avenue",,,ME14 5HH,6418388278,D,B,66,83,House,Semi-Detached,2014-10-14,E07000110,E14000804,Kent,2014-10-14,marketed sale,62,81,179,80.0,5.1,35,2.3,83.0,83.0,911.0,663.0,192.0,85.0,147.0,dual,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,8.0,8.0,100.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Average,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"13, Tudor Avenue",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2014-10-14 13:46:39,owner-occupied,12.0,12.0,200003705446.0,Address Matched +785711087052012050814350991990596,1 Valley View,Charlton Lane,West Farleigh,ME15 0NU,5662718968,C,C,79,79,House,End-Terrace,2011-07-14,E07000110,E14000804,Kent,2012-05-08,new dwelling,82,82,113,113.0,2.1,19,2.1,61.0,61.0,309.0,309.0,173.0,173.0,114.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,30.0,,From main system,Average,Good,Average thermal transmittance 0.11 W/mA?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.22 W/mA?K,Very Good,Very Good,"Room heaters, wood logs",,,Average thermal transmittance 0.16 W/mA?K,Good,Good,"Air source heat pump, radiators, electric",Average,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",0.0,NO DATA!,,2.3,,,NO DATA!,"1 Valley View, Charlton Lane, West Farleigh",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2012-05-08 14:35:09,,30.0,30.0,10014314296.0,Address Matched +9e8198e934e936c4d59c1d591bcb6f9609d76d4a1219f7eab0fc48ccbe987d80,37 Gilbert Way,,,ME17 3GU,10001549069,B,A,83,95,House,Semi-Detached,2021-08-20,E07000110,E14000700,Kent,2021-08-20,new dwelling,86,98,91,3.0,1.2,16,0.1,68.0,68.0,218.0,218.0,68.0,41.0,78.0,standard tariff,,,N,,,100.0,,,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.33,,,,37 Gilbert Way,Maidstone,Faversham and Mid Kent,MAIDSTONE,2017,2021-08-20 15:41:34,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,7.0,,10094441865.0,Energy Assessor +430584809802010042314150075202178,7 Darwin Avenue,,,ME15 9FP,8857902768,B,B,84,85,House,Detached,2010-04-23,E07000110,E14000700,Kent,2010-04-23,new dwelling,85,86,94,88.0,1.9,15,1.8,104.0,66.0,303.0,309.0,68.0,68.0,122.05,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,,From main system,Very Good,Very Good,Average thermal transmittance 0.18 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m?K,Very Good,Very Good,"Room heaters, electric",,,Average thermal transmittance 0.12 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Very Good,Very Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in 42% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.31,,,NO DATA!,7 Darwin Avenue,Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2010-04-23 14:15:00,,,,10014311383.0,Address Matched +243569090742009031019334456819308,"11, Farningham Close",,,ME14 5QX,6702998568,D,C,68,79,House,Mid-Terrace,2009-03-10,E07000110,E14000804,Kent,2009-03-10,rental (private),63,76,287,186.0,2.9,48,1.9,58.0,29.0,374.0,272.0,120.0,92.0,60.69,Single,Y,NO DATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, partial insulation (assumed)",Average,Average,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Poor,Poor,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.39,0.0,N,natural,"11, Farningham Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1976-1982,2009-03-10 19:33:44,rental (private),,,200003671980.0,Address Matched +658605339222011072511490528358789,"98, Melrose Close",,,ME15 6ZE,8288378868,B,B,85,85,House,End-Terrace,2011-07-25,E07000110,E14000804,Kent,2011-07-25,new dwelling,87,87,74,72.0,1.4,14,1.4,70.0,56.0,246.0,248.0,97.0,97.0,100.74,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,6.0,,From main system,Good,Good,Average thermal transmittance 0.20 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.21 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.3,,,NO DATA!,"98, Melrose Close",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2011-07-25 11:49:05,,8.0,6.0,10014307076.0,Address Matched +961693759002014041811411217049988,"29, Whitebeam Drive",Coxheath,,ME17 4QY,6005750178,E,C,51,72,House,Semi-Detached,2014-04-18,E07000110,E14000804,Kent,2014-04-18,none of the above,45,67,271,152.0,7.3,52,4.1,136.0,75.0,1256.0,871.0,182.0,182.0,141.0,dual,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,5.0,5.0,19.0,0.0,"Electric immersion, off-peak",Poor,Very Poor,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 19% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"29, Whitebeam Drive, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2014-04-18 11:41:12,owner-occupied,27.0,5.0,200003672337.0,Address Matched +1578555042212017092807005892230955,"14, Goldthorne Close",,,ME14 5NX,9521224578,D,D,60,67,Flat,End-Terrace,2017-09-27,E07000110,E14000804,Kent,2017-09-28,marketed sale,46,57,418,321.0,3.9,71,3.0,57.0,44.0,540.0,393.0,190.0,190.0,55.0,Unknown,N,Ground,N,,2401.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,71.0,0.0,Electric instantaneous at point of use,Very Poor,Poor,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,(another dwelling above),,,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 71% of fixed outlets,Very Good,Very Good,electricity (not community),0.0,no corridor,,,,N,natural,"14, Goldthorne Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2017-09-28 07:00:58,owner-occupied,,,200003716162.0,Address Matched +9e8f6e309355e340a37a9295fc57714e9520c13f39bc9025e805ff7ce9795e2f,Flat 1,5 Bower Terrace,,ME16 8RY,10001627066,D,C,65,78,Flat,Semi-Detached,2021-09-15,E07000110,E14000804,Kent,2021-09-15,marketed sale,63,79,216,121.0,3.5,38,2.0,78.0,79.0,704.0,377.0,84.0,85.0,94.0,Unknown,Y,-1,N,,,25.0,secondary glazing,Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Some secondary glazing,Poor,Poor,"Sandstone or limestone, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, electric",,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,no corridor,,2.3,0.0,N,natural,"Flat 1, 5 Bower Terrace",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2021-09-15 12:19:50,Owner-occupied,8.0,,10022895942.0,Energy Assessor +327331493132009071517474850968806,"70, Forest Hill",,,ME15 6TH,9640884668,D,C,66,76,House,Semi-Detached,2009-07-15,E07000110,E14000804,Kent,2009-07-15,marketed sale,60,72,306,211.0,3.2,51,2.2,41.0,32.0,470.0,343.0,124.0,99.0,63.2,Single,Y,NO DATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,70.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, partial insulation (assumed)",Average,Average,,,,"Pitched, limited insulation (assumed)",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 70% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.2,0.0,N,natural,"70, Forest Hill",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1976-1982,2009-07-15 17:47:48,owner-occupied,,,200003664987.0,Address Matched +1578980089962017101111450514898603,"19, Buckland Hill",,,ME16 0SG,107824578,E,C,52,77,House,Semi-Detached,2017-10-11,E07000110,E14000804,Kent,2017-10-11,marketed sale,42,70,296,134.0,9.7,52,4.4,90.0,92.0,1733.0,984.0,144.0,86.0,185.0,Single,Y,NODATA!,,,2106.0,0.0,not defined,Normal,0.0,9.0,9.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Single glazed,Very Poor,Very Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, mains gas",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"19, Buckland Hill",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2017-10-11 11:45:05,owner-occupied,,,200003670134.0,Address Matched +1097836425652014121512482092949121,"28, Fieldfare Drive",,,ME15 6XL,1186520278,B,A,85,94,House,Semi-Detached,2014-12-15,E07000110,E14000804,Kent,2014-12-15,new dwelling,86,95,80,18.0,1.6,14,0.4,70.0,70.0,277.0,278.0,102.0,55.0,116.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.27 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.17 W/m-¦K,Good,Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"28, Fieldfare Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2014-12-15 12:48:20,owner-occupied,16.0,16.0,10014315287.0,Address Matched +1469600518632016080907311230078201,"9, Boughton Lane",,,ME15 9QN,1110256478,E,C,53,80,Bungalow,Detached,2016-08-08,E07000110,E14000804,Kent,2016-08-09,ECO assessment,45,76,352,134.0,5.8,62,2.2,96.0,60.0,976.0,616.0,203.0,85.0,93.0,Single,Y,NODATA!,,,2106.0,100.0,secondary glazing,Normal,0.0,5.0,5.0,40.0,0.0,"From main system, no cylinder thermostat",Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Full secondary glazing,Good,Good,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 40% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,2.45,,N,natural,"9, Boughton Lane",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2016-08-09 07:31:12,owner-occupied,,,200003677934.0,Address Matched +145754179832018111317254622968195,Ward & Partners,Loose Road,Loose,ME15 0AA,7552161568,C,C,74,77,Flat,Mid-Terrace,2018-11-13,E07000110,E14000804,Kent,2018-11-13,rental (private),75,79,182,152.0,1.9,32,1.6,45.0,45.0,337.0,280.0,76.0,77.0,58.0,Unknown,Y,1st,Y,,2106.0,65.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,(other premises below),NO DATA!,,Partial double glazing,Poor,Poor,"Solid brick, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,no corridor,,,,N,natural,"Ward & Partners, Loose Road, Loose",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2018-11-13 17:25:46,rental (private),,,200003668244.0,Address Matched +406648544812010030519082804019278,"15, Norway Terrace",Invicta Park,,ME14 2PH,2856440768,D,D,64,64,House,End-Terrace,2009-12-02,E07000110,E14000804,Kent,2010-03-05,marketed sale,63,63,248,248.0,3.9,40,3.9,51.0,51.0,655.0,655.0,103.0,103.0,94.4,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,6.0,6.0,95.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 95% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.3,0.0,N,natural,"15, Norway Terrace, Invicta Park",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2010-03-05 19:08:28,owner-occupied,,,200003724021.0,Address Matched +9ea374400c155c70473a0e7bd0ba91042a5834c07c75a2f3e95523b68e1fbfc2,"FLAT 1, HARRIET HOUSE,WEST STREET",HARRIETSHAM,,ME17 1JZ,10001680400,C,C,71,73,Flat,End-Terrace,2021-07-13,E07000110,E14000700,Kent,2021-07-13,rental,71,75,232,206.0,1.9,41,1.7,45.0,45.0,353.0,313.0,76.0,76.0,46.0,Single,Y,00,N,,,100.0,"double glazing, unknown install date",Less Than Typical,0.0,2.0,2.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,no corridor,,2.37,0.0,N,natural,"FLAT 1, HARRIET HOUSE,WEST STREET, HARRIETSHAM",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1991-1995,2021-07-13 20:35:14,Rented (private),3.0,,10095449906.0,Address Matched +544791679222010092412214230648430,"7, Waverley Close",Coxheath,,ME17 4HL,3344710868,C,C,75,77,House,Mid-Terrace,2010-09-24,E07000110,E14000804,Kent,2010-09-24,rental (social),73,74,202,193.0,2.2,34,2.2,71.0,35.0,338.0,344.0,106.0,106.0,66.94,Single,Y,NO DATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,0.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.39,0.0,N,natural,"7, Waverley Close, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1976-1982,2010-09-24 12:21:42,rental (social),,,200003713889.0,Address Matched +469330939922010041411545274848320,"9, Bannister Road",Penenden Heath,,ME14 2JY,2788384768,D,D,60,67,House,Semi-Detached,2010-04-14,E07000110,E14000804,Kent,2010-04-14,marketed sale,60,66,271,227.0,4.1,45,3.5,98.0,54.0,648.0,583.0,141.0,120.0,92.36,dual,Y,NO DATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,18.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 18% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.41,0.0,N,natural,"9, Bannister Road, Penenden Heath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2010-04-14 11:54:52,owner-occupied,,,200003707167.0,Address Matched +942656735732013060112444020778607,"22, Highridge Close",Weavering,,ME14 5XQ,3720629078,D,C,68,78,Maisonette,End-Terrace,2013-05-30,E07000110,E14000700,Kent,2013-06-01,marketed sale,48,64,428,291.0,3.2,76,2.2,33.0,33.0,360.0,208.0,63.0,63.0,42.0,dual,N,Ground,N,,2402.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,89.0,0.0,"From main system, no cylinder thermostat",Poor,Very Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, partial insulation (assumed)",Average,Average,"Room heaters, electric",,,(another dwelling above),,,Electric storage heaters,Average,Very Poor,Automatic charge control,Average,Average,Low energy lighting in 89% of fixed outlets,Very Good,Very Good,electricity (not community),0.0,unheated corridor,2.5,,0.0,,natural,"22, Highridge Close, Weavering",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1976-1982,2013-06-01 12:44:40,owner-occupied,9.0,8.0,200003689999.0,Address Matched +412521010962009121413393240698991,Flat 25,"1-5, Pudding Lane",,ME14 1FN,9459180768,C,C,75,75,Flat,Mid-Terrace,2009-12-11,E07000110,E14000804,Kent,2009-12-14,rental (private),71,71,218,218.0,2.7,33,2.7,54.0,54.0,257.0,257.0,148.0,148.0,83.4644,dual,N,2nd,Y,3.0,2402.0,100.0,secondary glazing,Less Than Typical,0.0,3.0,3.0,100.0,0.0,"Electric immersion, off-peak",Average,Poor,(other premises below),,,Full secondary glazing,Good,Good,"Solid brick, with internal insulation",Very Good,Very Good,"Room heaters, electric",,,"Flat, insulated (assumed)",Good,Good,Electric storage heaters,Poor,Poor,Automatic charge control,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.48,0.0,N,natural,"Flat 25, 1-5, Pudding Lane",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2009-12-14 13:39:32,rental (private),,,10014308382.0,Address Matched +224811118752009020318084303010258,"54, St. Andrews Park",Tarragon Road,,ME16 0WD,2801837568,C,B,77,82,House,Enclosed End-Terrace,2009-02-03,E07000110,E14000804,Kent,2009-02-03,rental (private),76,79,162,135.0,2.6,27,2.2,98.0,49.0,294.0,278.0,129.0,113.0,96.03,Single,Y,1st,N,3.0,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,0.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Good,Good,"Sandstone, with internal insulation",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,unheated corridor,7.73,3.14,0.0,N,natural,"54, St. Andrews Park, Tarragon Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2009-02-03 18:08:43,rental (private),,,200003655011.0,Address Matched +595198528652011022120072590290681,"39, Church Green",Staplehurst,,TN12 0BG,6161804868,C,C,69,71,House,Semi-Detached,2011-02-21,E07000110,E14000804,Kent,2011-02-21,marketed sale,65,66,228,223.0,3.8,38,3.7,81.0,54.0,577.0,583.0,134.0,134.0,99.0,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,5.0,5.0,50.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.42,0.0,N,natural,"39, Church Green, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1950-1966,2011-02-21 20:07:25,owner-occupied,,,200003677039.0,Address Matched +513428429022011070410234457928869,"34, Edna Road",,,ME14 2QJ,6578297768,D,C,56,70,House,Semi-Detached,2011-07-02,E07000110,E14000804,Kent,2011-07-04,marketed sale,52,70,319,198.0,3.9,61,2.4,43.0,43.0,603.0,387.0,129.0,100.0,62.92,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,5.0,5.0,75.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,2.4,0.0,,natural,"34, Edna Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2011-07-04 10:23:44,owner-occupied,8.0,6.0,200003670608.0,Address Matched +1472381338632016081818043912978305,"5, Betsham Road",,,ME15 8TX,3522376478,D,B,68,82,House,Semi-Detached,2016-08-18,E07000110,E14000700,Kent,2016-08-18,marketed sale,67,82,206,103.0,3.1,36,1.6,103.0,57.0,580.0,540.0,109.0,72.0,86.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,18.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, 350 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 18% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,2.4,,N,natural,"5, Betsham Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2016-08-18 18:04:39,owner-occupied,,,200003681039.0,Address Matched +608189459962017021317022025978633,Flat 3 Wykeham Court,"2, Cornwallis Road",,ME16 8BA,3206505868,C,C,80,80,Flat,Semi-Detached,2017-02-13,E07000110,E14000804,Kent,2017-02-13,rental (private),84,84,121,118.0,1.1,21,1.0,51.0,40.0,193.0,195.0,80.0,80.0,50.0,Unknown,Y,1st,N,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,3.0,3.0,71.0,0.0,From main system,Good,Good,(another dwelling below),NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Very Good,Very Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 71% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,6.25,,,N,natural,"Flat 3 Wykeham Court, 2, Cornwallis Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2017-02-13 17:02:20,rental (private),,,10014307886.0,Address Matched +1473731699022016090109440406898296,"62, Peel Street",,,ME14 2SB,9076976478,D,B,63,81,House,Mid-Terrace,2016-09-01,E07000110,E14000804,Kent,2016-09-01,marketed sale,57,77,258,123.0,4.0,45,2.0,58.0,58.0,750.0,577.0,109.0,73.0,88.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,2.3,,N,natural,"62, Peel Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2016-09-01 09:44:04,owner-occupied,,,200003702402.0,Address Matched +1040804029702013111314273514679078,"23, Shaftesbury Drive",,,ME16 0JS,3716126178,D,B,62,88,Bungalow,Semi-Detached,2013-11-13,E07000110,E14000804,Kent,2013-11-13,marketed sale,61,90,256,44.0,2.8,49,0.5,70.0,35.0,451.0,333.0,133.0,66.0,56.0,Unknown,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,0.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"23, Shaftesbury Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2013-11-13 14:27:35,owner-occupied,8.0,0.0,200003726302.0,Address Matched +791935683412012052220294396220395,"29, Lullingstone Road",,,ME16 0TF,3537368968,D,B,67,84,Bungalow,Semi-Detached,2012-05-22,E07000110,E14000804,Kent,2012-05-22,marketed sale,68,84,204,79.0,2.4,39,1.0,63.0,35.0,407.0,385.0,75.0,60.0,61.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,21.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 21% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"29, Lullingstone Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2012-05-22 20:29:43,owner-occupied,19.0,4.0,200003662119.0,Address Matched +522325259602011091400502277899778,"382, Loose Road",,,ME15 9TX,8668658768,C,C,70,73,House,Detached,2011-09-13,E07000110,E14000804,Kent,2011-09-14,marketed sale,68,71,169,152.0,4.3,32,3.9,118.0,61.0,656.0,630.0,122.0,115.0,133.68,Single,Y,NODATA!,,,2107.0,100.0,double glazing installed during or after 2002,Normal,1.0,8.0,8.0,6.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 6% of fixed outlets,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,2.55,0.0,,natural,"382, Loose Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2011-09-14 00:50:22,owner-occupied,18.0,1.0,200003678572.0,Address Matched +1431786089802016062010431047369168,"1, Netley Close",,,ME14 5SA,1845483478,E,B,49,86,House,End-Terrace,2016-06-16,E07000110,E14000804,Kent,2016-06-20,marketed sale,43,84,388,82.0,5.1,68,1.1,95.0,50.0,889.0,421.0,170.0,73.0,74.0,Single,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,1.0,4.0,4.0,11.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 11% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,2.3,,N,natural,"1, Netley Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2016-06-20 10:43:10,owner-occupied,,,200003672572.0,Address Matched +9f06e0f51eb864a950103de1bb113715971bbede544270bcd9025f92dd29f875,7 Broadclough Way,Maidstone,,ME17 3UX,10001578531,B,A,84,94,House,Detached,2021-07-22,E07000110,E14000700,Kent,2021-07-22,new dwelling,85,95,83,18.0,1.6,15,0.4,82.0,82.0,251.0,252.0,95.0,53.0,112.0,standard tariff,,,N,,,100.0,,,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.12 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.28 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.12 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.535,,,,"7 Broadclough Way, Maidstone",Maidstone,Faversham and Mid Kent,KENT,2021,2021-07-22 13:04:58,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,10.0,,10095449047.0,Address Matched +541115599802010092918151275909168,"1, Cornhill Place",,,ME15 6GX,2816199768,C,C,70,72,Flat,Mid-Terrace,2010-09-16,E07000110,E14000804,Kent,2010-09-29,new dwelling,78,79,180,171.0,1.8,28,1.7,68.0,40.0,221.0,224.0,265.0,265.0,64.9,standard tariff,,ground floor,,,,,NO DATA!,NO DATA!,,,,,,"Electric immersion, standard tariff",Very Poor,Poor,Average thermal transmittance 0.20 W/m?K,Very Good,Very Good,Fully double glazed,Good,Good,Average thermal transmittance 0.32 W/m?K,Good,Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 29% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.3,,,NO DATA!,"1, Cornhill Place",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2010-09-29 18:15:12,,,,10022895006.0,Address Matched +1193832811012014082920003190240426,"13, Queen Elizabeth Square",,,ME15 9DF,4690107278,C,B,71,88,House,Semi-Detached,2014-08-29,E07000110,E14000700,Kent,2014-08-29,marketed sale,71,89,165,50.0,2.5,32,0.8,63.0,63.0,443.0,364.0,131.0,77.0,78.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,80.0,0.0,From main system,Good,Good,"Solid, limited insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"13, Queen Elizabeth Square",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1996-2002,2014-08-29 20:00:31,owner-occupied,10.0,8.0,200003710385.0,Address Matched +878259839722013013119530664498417,Church Lodge,Willington Street,,ME15 8EB,1676374078,D,B,65,82,House,Detached,2013-01-31,E07000110,E14000700,Kent,2013-01-31,rental (private),61,80,192,88.0,4.3,37,2.1,104.0,60.0,705.0,554.0,126.0,81.0,117.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,2.0,6.0,6.0,25.0,1.0,From main system,Good,Good,"Suspended, insulated",,,Fully double glazed,Good,Good,"Sandstone, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 25% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"Church Lodge, Willington Street",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2013-01-31 19:53:06,rental (private),24.0,6.0,200003687075.0,Address Matched +9ef47ff913edd6301e630ccc739962142ed1d3c0faabca7b1d6c84ba32794d55,1,Bella Rosa Drive,Langley,ME17 3US,10001319399,B,A,84,95,House,End-Terrace,2021-08-17,E07000110,E14000700,Kent,2021-08-17,new dwelling,86,97,87,7.0,1.3,15,0.1,74.0,74.0,229.0,229.0,69.0,42.0,86.0,standard tariff,,,N,,,100.0,,,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.39,,,,"1, Bella Rosa Drive, Langley",Maidstone,Faversham and Mid Kent,Maidstone,2021,2021-08-17 14:10:28,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,15.0,,10095448348.0,Address Matched +188584600922008111820013124128628,2-3 Chapel Cottages,Upper Street,Leeds,ME17 1SN,2247024568,D,C,60,72,House,Mid-Terrace,2008-11-12,E07000110,E14000700,Kent,2008-11-18,rental (private),54,68,327,227.0,4.3,55,3.0,59.0,35.0,495.0,369.0,122.0,94.0,78.0,Single,Y,NO DATA!,,,2104.0,0.0,single glazing,Normal,0.0,4.0,4.0,30.0,2.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Poor,Poor,Low energy lighting in 30% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.0,0.0,N,natural,"2-3 Chapel Cottages, Upper Street, Leeds",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2008-11-18 20:01:31,rental (private),,,200003697996.0,Address Matched +1774000522132019122015454558278492,8 Wrens Cross,Upper Stone Street,,ME15 6YU,2278438678,C,C,76,76,Flat,Mid-Terrace,2019-12-20,E07000110,E14000804,Kent,2019-12-20,new dwelling,82,82,126,126.0,1.5,21,1.5,55.0,55.0,278.0,278.0,283.0,283.0,71.0,standard tariff,,ground floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,"Electric immersion, standard tariff",Very Poor,Poor,Average thermal transmittance 0.14 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.22 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,"Room heaters, electric",Very Poor,Poor,Appliance thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"8 Wrens Cross, Upper Stone Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2019-12-20 15:45:45,unknown,24.0,24.0,10094440942.0,Address Matched +660088889802011072817460387892988,2 Barns Cottages,Barnes Lane,Linton,ME17 4BQ,7877388868,E,E,47,54,House,Semi-Detached,2011-07-28,E07000110,E14000804,Kent,2011-07-28,rental (private),36,42,286,250.0,9.7,70,8.5,94.0,67.0,1465.0,1301.0,156.0,126.0,96.44,dual,N,NODATA!,,,2107.0,100.0,double glazing installed during or after 2002,Normal,1.0,4.0,4.0,58.0,1.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, no insulation(assumed)",Very Poor,Very Poor,"Boiler and radiators, oil",Average,Average,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 58% of fixed outlets,Good,Good,oil (not community),0.0,NO DATA!,,2.4,0.0,,natural,"2 Barns Cottages, Barnes Lane, Linton",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2011-07-28 17:46:03,rental (private),12.0,7.0,200003711872.0,Address Matched +748543349042012020917172990520118,4 Court Lodge Farm Oast,Lower Road,East Farleigh,ME15 0JL,5051745968,C,C,72,75,House,Mid-Terrace,2012-02-09,E07000110,E14000804,Kent,2012-02-09,marketed sale,67,71,148,129.0,8.0,28,7.0,181.0,93.0,1221.0,1126.0,128.0,115.0,279.26,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,8.0,8.0,5.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Solid brick, as built, insulated (assumed)",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 5% of fixed outlets,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,2.54,0.0,,natural,"4 Court Lodge Farm Oast, Lower Road, East Farleigh",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2012-02-09 17:17:29,owner-occupied,22.0,1.0,200003673906.0,Address Matched +545265229202018071418194380089778,2 Kelsham Cottages,Four Oaks Road,Headcorn,TN27 9NY,3246020868,E,A,45,108,House,Semi-Detached,2018-07-13,E07000110,E14000700,Kent,2018-07-14,marketed sale,39,97,289,-81.0,5.4,75,-0.1,87.0,58.0,562.0,289.0,118.0,72.0,72.0,dual,N,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,4.0,4.0,50.0,0.0,From main system,Average,Average,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Roof room(s), ceiling insulated",Poor,Poor,"Boiler and radiators, oil",Average,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,oil (not community),0.0,NO DATA!,,,,N,natural,"2 Kelsham Cottages, Four Oaks Road, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,England and Wales: 1900-1929,2018-07-14 18:19:43,owner-occupied,,,200003695595.0,Address Matched +625128177252011050508383693090585,"40, Glebe Lane",,,ME16 9BD,5511736868,D,C,62,70,House,Semi-Detached,2011-05-05,E07000110,E14000804,Kent,2011-05-05,marketed sale,60,70,252,187.0,3.5,49,2.6,63.0,38.0,579.0,445.0,77.0,77.0,71.08,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,33.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 33% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,2.38,0.0,,natural,"40, Glebe Lane",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2011-05-05 08:38:36,owner-occupied,9.0,3.0,200003664400.0,Address Matched +1188661869542014081119151923649298,"21, Rosemary Road",Bearsted,,ME15 8NP,9571566278,D,B,64,86,House,Mid-Terrace,2014-08-11,E07000110,E14000700,Kent,2014-08-11,marketed sale,62,86,206,61.0,3.7,40,1.1,82.0,62.0,681.0,428.0,134.0,92.0,92.0,dual,Y,NODATA!,,,2106.0,95.0,double glazing installed during or after 2002,Normal,2.0,5.0,5.0,67.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Mostly double glazing,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, mains gas",,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 67% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"21, Rosemary Road, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2014-08-11 19:15:19,owner-occupied,9.0,6.0,200003693042.0,Address Matched +493522404552010060211132705980372,Flat 7 John Brenchley House,Vinters Road,,ME14 5DH,3250456768,B,B,86,86,Flat,Mid-Terrace,2008-09-17,E07000110,E14000700,Kent,2010-06-02,new dwelling,86,86,124,124.0,1.0,19,1.0,30.0,30.0,116.0,116.0,85.0,85.0,53.08,off-peak 7 hour,,top floor,,,,,NO DATA!,NO DATA!,,,,,,"Electric immersion, off-peak",Average,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.22 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.13 W/m?K,Very Good,Very Good,"Air source heat pump, underfloor, electric",Average,Very Good,Time and temperature zone control,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",0.0,NO DATA!,,2.3,,,NO DATA!,"Flat 7 John Brenchley House, Vinters Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2010-06-02 11:13:27,,,,10014311076.0,Address Matched +1667686120832018101518023883978190,Flat 190,Brenchley House,123-135 Week Street,ME14 1FZ,2033160678,C,C,73,73,Flat,Semi-Detached,2018-10-15,E07000110,E14000804,Kent,2018-10-15,new dwelling,78,78,219,219.0,1.1,39,1.1,25.0,25.0,199.0,199.0,93.0,93.0,29.0,standard tariff,,top floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,Community scheme,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.30 W/m-¦K,Good,Good,,,,Average thermal transmittance 0.18 W/m-¦K,Good,Good,Community scheme,Good,Good,"Charging system linked to use of community heating, programmer and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,NO DATA!,,NO DATA!,,,,,NO DATA!,"Flat 190, Brenchley House, 123-135 Week Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2018-10-15 18:02:38,unknown,6.0,6.0,10094440866.0,Address Matched +401225046552009112411402100219272,3 Spurgeons Cottages,Heath Road,Linton,ME17 4NU,2208600768,E,D,48,59,House,Mid-Terrace,2009-11-24,E07000110,E14000804,Kent,2009-11-24,marketed sale,42,51,515,414.0,4.4,86,3.5,50.0,25.0,525.0,464.0,237.0,181.0,50.51,Unknown,Y,NO DATA!,,,2107.0,100.0,double glazing installed before 2002,Normal,1.0,4.0,4.0,0.0,0.0,"From main system, no cylinder thermostat",Average,Average,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, mains gas",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,0.0,N,natural,"3 Spurgeons Cottages, Heath Road, Linton",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2009-11-24 11:40:21,owner-occupied,,,200003663190.0,Address Matched +59633019242012092216122545422528,"5, Caernarvon Drive",,,ME15 6FJ,1222914468,D,B,68,88,Bungalow,Semi-Detached,2012-09-22,E07000110,E14000804,Kent,2012-09-22,marketed sale,69,90,204,47.0,2.2,39,0.6,34.0,34.0,394.0,325.0,96.0,64.0,57.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"5, Caernarvon Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2012-09-22 16:12:25,owner-occupied,7.0,7.0,200003664382.0,Address Matched +642888587412011061621420396990386,Spitzbrook Cottage,Collier Street,,TN12 9RH,3672767868,D,C,67,72,House,Semi-Detached,2011-06-16,E07000110,E14000804,Kent,2011-06-16,marketed sale,60,66,175,150.0,5.5,39,4.7,122.0,61.0,772.0,698.0,131.0,120.0,87.4,Unknown,N,NODATA!,,,2107.0,88.0,"double glazing, unknown install date",Normal,2.0,5.0,5.0,0.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Mostly double glazing,Poor,Poor,"Solid brick, as built, insulated (assumed)",Good,Good,"Room heaters, wood logs",,,"Flat, insulated (assumed)",Good,Good,"Boiler and radiators, oil",Average,Average,"Programmer, TRVs and bypass",Average,Average,No low energy lighting,Very Poor,Very Poor,oil (not community),0.0,NO DATA!,,2.32,0.0,,natural,"Spitzbrook Cottage, Collier Street",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1983-1990,2011-06-16 21:42:03,owner-occupied,36.0,0.0,200003723418.0,Address Matched +1440332555612016051211421194960143,"6, Downs View Road",Penenden Heath,,ME14 2JD,1384544478,D,C,61,77,Bungalow,Semi-Detached,2016-05-12,E07000110,E14000804,Kent,2016-05-12,assessment for green deal,54,71,272,155.0,4.5,48,2.6,60.0,60.0,849.0,711.0,111.0,74.0,94.0,Single,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,2.4,,N,natural,"6, Downs View Road, Penenden Heath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2016-05-12 11:42:11,owner-occupied,,,200003707763.0,Address Matched +350971449022010010812281416588620,Flat 5 Windermere House,Westmorland Green,,ME15 8BL,2145456668,C,C,70,70,Flat,Enclosed End-Terrace,2010-01-08,E07000110,E14000700,Kent,2010-01-08,rental (social),65,65,270,270.0,2.8,45,2.8,39.0,39.0,455.0,455.0,85.0,85.0,62.25,Single,Y,2nd,Y,3.0,2106.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,80.0,0.0,From main system,Very Good,Very Good,(other premises below),,,Fully double glazed,Average,Average,"System built, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,unheated corridor,4.3,2.46,0.0,N,natural,"Flat 5 Windermere House, Westmorland Green",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2010-01-08 12:28:14,rental (social),,,200003685494.0,Address Matched +1038689149922015091614292106468395,"1, Hill Brow",Bearsted,,ME14 4AW,9005406178,D,B,61,87,House,Semi-Detached,2015-09-16,E07000110,E14000700,Kent,2015-09-16,ECO assessment,55,86,282,68.0,3.9,50,1.0,88.0,52.0,667.0,393.0,157.0,73.0,79.0,Single,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,31.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, no insulation",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 31% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"1, Hill Brow, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2015-09-16 14:29:21,owner-occupied,,,200003693519.0,Address Matched +996266909242013082622140918372078,"21, Warden Close",,,ME16 0JL,5251603178,E,B,45,84,House,Detached,2013-08-23,E07000110,E14000804,Kent,2013-08-26,marketed sale,41,83,325,77.0,6.8,63,1.7,128.0,64.0,1135.0,500.0,170.0,85.0,109.0,dual,Y,NODATA!,,,2104.0,59.0,secondary glazing,Normal,0.0,5.0,5.0,0.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Partial secondary glazing,Poor,Poor,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"21, Warden Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2013-08-26 22:14:09,owner-occupied,18.0,0.0,200003659198.0,Address Matched +1095668479222014022411582320648164,"4, Redstart Avenue",,,ME15 6ZY,6297700278,B,B,81,81,Maisonette,Detached,2014-02-24,E07000110,E14000804,Kent,2014-02-24,new dwelling,85,85,102,102.0,1.2,19,1.2,42.0,42.0,257.0,257.0,78.0,78.0,64.0,standard tariff,,ground floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.17 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.10 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"4, Redstart Avenue",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2014-02-24 11:58:23,NO DATA!,8.0,8.0,10014315257.0,Address Matched +1065827019062014010711392078838134,"25, Middlesex Road",,,ME15 7PL,3732108178,D,C,60,76,House,Semi-Detached,2014-01-07,E07000110,E14000700,Kent,2014-01-07,assessment for green deal,58,76,232,120.0,3.8,44,2.0,52.0,52.0,728.0,629.0,138.0,77.0,86.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"25, Middlesex Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2014-01-07 11:39:20,owner-occupied,8.0,8.0,200003712750.0,Address Matched +219363279132009012719022087268609,Flat 5 Inverness House,Lancashire Road,,ME15 7QE,7967696568,C,C,72,78,Flat,Semi-Detached,2009-01-25,E07000110,E14000700,Kent,2009-01-27,rental (social),67,75,318,245.0,2.0,53,1.6,22.0,22.0,310.0,260.0,79.0,60.0,38.11,Single,Y,Ground,N,2.0,2107.0,100.0,"double glazing, unknown install date",Normal,0.0,1.0,1.0,80.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Poor,Poor,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.36,0.0,N,natural,"Flat 5 Inverness House, Lancashire Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2009-01-27 19:02:20,rental (social),,,200003684023.0,Address Matched +1034174079402013110114265017570498,"19, Brooker Close",Boughton Monchelsea,,ME17 4UY,9442275178,C,B,69,82,House,Detached,2013-11-01,E07000110,E14000700,Kent,2013-11-01,marketed sale,66,81,165,86.0,3.9,32,2.1,67.0,67.0,659.0,570.0,145.0,82.0,124.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,8.0,8.0,100.0,0.0,From main system,Good,Good,"Solid, limited insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, mains gas",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"19, Brooker Close, Boughton Monchelsea",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1996-2002,2013-11-01 14:26:50,owner-occupied,14.0,14.0,10022892693.0,Address Matched +301499700802009061115133263319798,"32, Kingsley Road",,,ME15 7UN,6827103668,D,C,67,73,House,Mid-Terrace,2009-06-11,E07000110,E14000804,Kent,2009-06-11,rental (private),63,69,247,203.0,3.8,41,3.1,96.0,48.0,502.0,444.0,105.0,93.0,77.04,dual,Y,NO DATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,0.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Roof room(s), insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Poor,Poor,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.07,0.0,N,natural,"32, Kingsley Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2009-06-11 15:13:32,rental (private),,,200003695876.0,Address Matched +252361020922009031416513529028151,"33, Wallis Avenue",,,ME15 9JL,5232219568,C,C,75,76,Flat,Semi-Detached,2009-03-12,E07000110,E14000700,Kent,2009-03-14,rental (social),72,73,257,249.0,1.8,43,1.7,36.0,20.0,279.0,282.0,67.0,67.0,42.0,Single,Y,Ground,N,2.0,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,20.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"System built, with external insulation",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 20% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.3,0.0,N,natural,"33, Wallis Avenue",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2009-03-14 16:51:35,rental (social),,,200003682351.0,Address Matched +1035775569022017080511225205478813,"43, Heathfield Road",Penenden Heath,,ME14 2AD,1079685178,C,B,77,82,House,Detached,2017-08-03,E07000110,E14000804,Kent,2017-08-05,marketed sale,73,78,127,100.0,4.9,22,3.9,100.0,100.0,846.0,846.0,137.0,137.0,218.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,11.0,11.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"43, Heathfield Road, Penenden Heath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2017-08-05 11:22:52,owner-occupied,,,200003707892.0,Address Matched +76012062112018051719550695980840,"104, Kingfisher Meadow",,,ME16 8RD,8047255468,C,C,69,77,Flat,Mid-Terrace,2018-05-17,E07000110,E14000804,Kent,2018-05-17,marketed sale,65,67,302,287.0,2.0,51,1.9,34.0,37.0,300.0,227.0,160.0,108.0,39.0,Unknown,N,3rd,Y,,2602.0,100.0,double glazing installed during or after 2002,Normal,0.0,1.0,1.0,100.0,0.0,"Electric immersion, off-peak",Poor,Poor,(another dwelling below),NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Room heaters, electric",Very Poor,Poor,Appliance thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,unheated corridor,5.57,,,N,"mechanical, supply and extract","104, Kingfisher Meadow",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2018-05-17 19:55:06,owner-occupied,,,10022892315.0,Address Matched +1814631459312020073115461422700471,"6, Caldecott Road",Allington,,ME16 9GD,4186921778,B,B,87,88,House,Semi-Detached,2020-07-31,E07000110,E14000804,Kent,2020-07-31,new dwelling,87,89,66,54.0,1.4,12,1.1,86.0,86.0,263.0,264.0,99.0,55.0,121.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.18 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.23 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.19 W/m-¦K,Good,Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"6, Caldecott Road, Allington",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2020-07-31 15:46:14,unknown,34.0,34.0,10093306746.0,Address Matched +895000140652013030716084799070503,"39, Oaktree Avenue",,,ME15 9AX,5370095078,D,B,63,84,House,Mid-Terrace,2013-03-07,E07000110,E14000700,Kent,2013-03-07,marketed sale,60,84,223,78.0,3.5,43,1.3,73.0,51.0,539.0,422.0,158.0,78.0,82.0,dual,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,5.0,5.0,56.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 56% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"39, Oaktree Avenue",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2013-03-07 16:08:47,owner-occupied,9.0,5.0,200003713581.0,Address Matched +1817294842442020081209332677109628,Flat 21 Ulysses House,Rosalind Drive,,ME14 2FL,2403841778,B,B,85,85,Flat,Mid-Terrace,2020-08-12,E07000110,E14000804,Kent,2020-08-12,new dwelling,90,90,71,71.0,0.9,12,0.9,59.0,59.0,135.0,135.0,97.0,97.0,71.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.34 W/m-¦K,Good,Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Flat 21 Ulysses House, Rosalind Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2020-08-12 09:33:26,unknown,14.0,14.0,10094441409.0,Address Matched +1519304524312019031509573290280357,"5, Beckett Close",,,ME16 9DW,3763400578,C,B,75,90,House,Mid-Terrace,2018-04-25,E07000110,E14000804,Kent,2019-03-15,rental (social),77,91,154,37.0,1.7,27,0.5,89.0,53.0,270.0,274.0,95.0,62.0,64.0,dual (24 hour),Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,30.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Very Good,Very Good,,,,"Flat, insulated",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 30% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"5, Beckett Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2019-03-15 09:57:32,rental (social),,,10091196092.0,Address Matched +817529449402012072518462808022358,"117, Reculver Walk",,,ME15 8TT,7448140078,C,B,76,89,House,Mid-Terrace,2012-07-25,E07000110,E14000700,Kent,2012-07-25,rental (private),77,90,128,40.0,2.1,24,0.7,80.0,48.0,351.0,330.0,88.0,62.0,87.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,33.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 33% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"117, Reculver Walk",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2012-07-25 18:46:28,rental (private),12.0,4.0,200003725768.0,Address Matched +1307044839062015040719100855638815,3 The Bungalows,Church Street,Teston,ME18 5AH,1559305378,E,B,48,81,Bungalow,Detached,2015-04-07,E07000110,E14000804,Kent,2015-04-07,marketed sale,42,78,411,130.0,5.0,73,1.6,82.0,46.0,940.0,530.0,98.0,64.0,70.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,1.0,4.0,4.0,20.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 20% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"3 The Bungalows, Church Street, Teston",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2015-04-07 19:10:08,owner-occupied,,,200003661892.0,Address Matched +956468729842013102322092116072278,"66, Allen Street",,,ME14 5AG,3803520178,E,B,50,83,House,Mid-Terrace,2013-10-23,E07000110,E14000804,Kent,2013-10-23,none of the above,49,84,268,72.0,6.1,51,1.7,125.0,62.0,901.0,463.0,363.0,155.0,120.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,6.0,6.0,0.0,0.0,"Electric immersion, standard tariff",Very Poor,Very Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"66, Allen Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2013-10-23 22:09:21,owner-occupied,13.0,0.0,200003704812.0,Address Matched +107225059262013040208004017588177,"28, Whitebeam Drive",Coxheath,,ME17 4QY,7117537468,C,B,70,83,House,Semi-Detached,2013-03-28,E07000110,E14000804,Kent,2013-04-02,marketed sale,71,84,160,75.0,2.8,30,1.4,76.0,51.0,486.0,461.0,110.0,74.0,93.0,Unknown,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,5.0,5.0,50.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"28, Whitebeam Drive, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2013-04-02 08:00:40,owner-occupied,10.0,5.0,200003672336.0,Address Matched +1124477219022019020407412582798341,"32, Freshland Road",,,ME16 0WJ,4860112278,C,B,75,82,House,Detached,2019-02-01,E07000110,E14000804,Kent,2019-02-04,marketed sale,69,76,137,99.0,5.5,24,4.1,123.0,123.0,900.0,828.0,136.0,120.0,229.0,Unknown,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,2.0,10.0,10.0,92.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, mains gas",,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 92% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"32, Freshland Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2019-02-04 07:41:25,owner-occupied,,,10022901719.0,Address Matched +662701182712011081113591690990883,"27, Waterlow Road",,,ME14 2TR,8335209868,D,D,59,63,House,Mid-Terrace,2011-08-11,E07000110,E14000804,Kent,2011-08-11,marketed sale,55,60,270,238.0,4.4,52,3.9,62.0,45.0,731.0,666.0,98.0,86.0,84.62,Single,Y,NODATA!,,,2106.0,90.0,"double glazing, unknown install date",Normal,1.0,4.0,4.0,62.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Mostly double glazing,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 62% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,2.2,0.0,,natural,"27, Waterlow Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2011-08-11 13:59:16,owner-occupied,8.0,5.0,200003703128.0,Address Matched +1113906825212018122218400893289621,"9, Neath Court",Northumberland Road,,ME15 7JS,6125531278,C,B,72,81,Flat,Mid-Terrace,2018-12-21,E07000110,E14000700,Kent,2018-12-22,rental (private),65,69,311,272.0,2.2,53,1.9,37.0,37.0,225.0,156.0,219.0,125.0,42.0,Unknown,N,1st,Y,,2402.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,100.0,0.0,"Electric immersion, off-peak",Very Poor,Poor,(another dwelling below),NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,Portable electric heaters (assumed),,,"Pitched, 150 mm loft insulation",Good,Good,Electric storage heaters,Average,Very Poor,Automatic charge control,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,no corridor,,,,N,natural,"9, Neath Court, Northumberland Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2018-12-22 18:40:08,rental (private),,,200003684356.0,Address Matched +438228769922010021815471852158180,4 Chantry Place,Church Green,Marden,TN12 9HL,8581662768,D,D,56,64,House,Detached,2010-02-15,E07000110,E14000804,Kent,2010-02-18,marketed sale,54,63,255,206.0,8.3,42,6.7,196.0,104.0,1228.0,1054.0,213.0,178.0,198.66,Single,Y,NO DATA!,,,2104.0,10.0,double glazing installed before 2002,Normal,0.0,9.0,9.0,11.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Some double glazing,Very Poor,Very Poor,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,"Roof room(s), insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 11% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.28,0.0,N,natural,"4 Chantry Place, Church Green, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1983-1990,2010-02-18 15:47:18,owner-occupied,,,200003710267.0,Address Matched +643403579062019060718091167338821,"15, Reginald Road",,,ME16 8EX,2678767868,D,B,66,86,House,Semi-Detached,2019-06-07,E07000110,E14000804,Kent,2019-06-07,marketed sale,61,85,232,75.0,3.6,41,1.2,64.0,64.0,626.0,399.0,101.0,72.0,89.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,2.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"To unheated space, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"15, Reginald Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2019-06-07 18:09:11,owner-occupied,,,200003667841.0,Address Matched +1748769359502019090520414767610158,Flat 2 Ragstone Lodge,Peel Street,,ME14 2WB,4510256678,B,B,81,81,Flat,Semi-Detached,2019-09-05,E07000110,E14000804,Kent,2019-09-05,rental (social),83,83,113,113.0,1.3,20,1.3,56.0,56.0,211.0,211.0,91.0,91.0,64.0,Single,Y,1st,N,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,"To external air, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,heated corridor,,,,N,natural,"Flat 2 Ragstone Lodge, Peel Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2019-09-05 20:41:47,rental (social),,,10022896731.0,Address Matched +596708209922014112015475304988234,"18, Raynham Villas",Hunton Road,,TN12 9SZ,3044024868,D,B,57,82,Bungalow,Semi-Detached,2014-11-18,E07000110,E14000804,Kent,2014-11-20,assessment for green deal,60,84,276,99.0,2.9,49,1.0,45.0,45.0,441.0,348.0,336.0,172.0,60.0,Single,N,NODATA!,,,2206.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,86.0,0.0,"From main system, no cylinder thermostat",Very Poor,Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Air source heat pump, radiators, electric",Average,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 86% of fixed outlets,Very Good,Very Good,electricity (not community),0.0,NO DATA!,,,0.0,,natural,"18, Raynham Villas, Hunton Road",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1983-1990,2014-11-20 15:47:53,rental (social),7.0,6.0,200003723868.0,Address Matched +1392263739022015120214535411328285,2 Shirley Court,Wallis Avenue,,ME15 9JW,8194301478,D,B,66,81,Maisonette,Mid-Terrace,2015-12-02,E07000110,E14000700,Kent,2015-12-02,rental,56,69,387,272.0,2.7,65,1.9,51.0,34.0,281.0,151.0,225.0,118.0,42.0,dual,N,1st,Y,,2401.0,100.0,double glazing installed before 2002,Normal,0.0,2.0,2.0,50.0,0.0,"Electric immersion, off-peak",Very Poor,Poor,(another dwelling below),NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, partial insulation (assumed)",Average,Average,"Room heaters, electric",,,"Pitched, 100 mm loft insulation",Average,Average,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 50% of fixed outlets,Good,Good,electricity (not community),0.0,no corridor,,,,N,natural,"2 Shirley Court, Wallis Avenue",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1976-1982,2015-12-02 14:53:54,owner-occupied,,,200003683151.0,Address Matched +778052139222012042000063977708072,2 Hillside Cottage,Malling Road,Teston,ME18 5AN,7761367968,E,C,44,79,House,Semi-Detached,2012-04-20,E07000110,E14000804,Kent,2012-04-20,rental (social),41,78,413,126.0,4.3,80,1.4,31.0,31.0,749.0,462.0,90.0,53.0,54.0,Single,Y,NODATA!,,,2107.0,0.0,not defined,Normal,1.0,3.0,3.0,100.0,0.0,From main system,Good,Good,"To unheated space, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Timber frame, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"2 Hillside Cottage, Malling Road, Teston",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2012-04-20 00:06:39,rental (social),6.0,6.0,200003724932.0,Address Matched +776458929962012041714284777238702,"52, Leonard Gould Way",Loose,,ME15 9FX,725257968,B,B,83,83,House,Semi-Detached,2012-04-17,E07000110,E14000700,Kent,2012-04-17,new dwelling,84,84,84,84.0,2.1,16,2.1,75.0,75.0,332.0,332.0,100.0,100.0,130.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,10.0,,From main system,Good,Good,Average thermal transmittance 0.12 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m?K,Very Good,Very Good,"Room heaters, electric",,,Average thermal transmittance 0.10 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in 77% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.45,,,NO DATA!,"52, Leonard Gould Way, Loose",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2012-04-17 14:28:47,,13.0,10.0,10014311169.0,Address Matched +9fac3b79ae5eb3cd384d69631ccfd698597ddb9ddc5c9b5fa6f01f5ccdfa1aa3,5 FONTWELL CLOSE,,,ME15 8UY,10001500659,C,B,72,88,House,Mid-Terrace,2020-08-19,E07000110,E14000700,Kent,2021-07-07,rental,72,88,201,71.0,2.1,35,0.8,58.0,58.0,388.0,358.0,72.0,46.0,59.0,Single,Y,,,,,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,86.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 86% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.32,0.0,N,natural,5 FONTWELL CLOSE,Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2021-07-07 11:16:26,Rented (private),7.0,,200003681249.0,Energy Assessor +6674211252020011608284223900648,"28, Brishing Lane",,,ME15 9JH,6879137468,C,C,74,77,Maisonette,Semi-Detached,2020-01-15,E07000110,E14000700,Kent,2020-01-16,marketed sale,77,79,184,160.0,1.6,32,1.4,86.0,47.0,285.0,268.0,70.0,70.0,50.0,Single,Y,Ground,N,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,2.0,2.0,17.0,0.0,From main system,Good,Good,"Solid, limited insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 17% of fixed outlets,Poor,Poor,mains gas (not community),0.0,no corridor,,,,N,natural,"28, Brishing Lane",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1996-2002,2020-01-16 08:28:42,owner-occupied,,,10014307536.0,Address Matched +597471666232012090317442829268400,"13, Cobfields",Chart Sutton,,ME17 3SH,6049424868,C,C,70,74,Flat,Enclosed End-Terrace,2012-06-29,E07000110,E14000700,Kent,2012-09-03,rental (social),73,77,175,144.0,2.0,33,1.7,48.0,36.0,384.0,324.0,79.0,79.0,61.0,Single,Y,Ground,N,,2106.0,100.0,double glazing installed before 2002,More Than Typical,0.0,3.0,3.0,67.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 67% of fixed outlets,Good,Good,mains gas (not community),0.0,no corridor,,,0.0,,natural,"13, Cobfields, Chart Sutton",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2012-09-03 17:44:28,rental (social),6.0,4.0,200003721768.0,Address Matched +1556177253332017070117424912078608,"16, Barned Court",,,ME16 9EL,5842662578,D,B,60,81,House,Semi-Detached,2017-07-01,E07000110,E14000804,Kent,2017-07-01,marketed sale,53,77,276,115.0,4.4,49,1.9,59.0,59.0,624.0,525.0,301.0,98.0,91.0,Single,Y,NODATA!,,,2504.0,100.0,double glazing installed during or after 2002,More Than Typical,1.0,4.0,4.0,100.0,0.0,"From main system, no cylinder thermostat",Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 25 mm loft insulation",Poor,Poor,"Warm air, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"16, Barned Court",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2017-07-01 17:42:49,owner-occupied,,,200003665373.0,Address Matched +562930949602010110911585389100618,"33, McKenzie Court",,,ME14 1JU,3678941868,C,C,77,80,Flat,Mid-Terrace,2010-11-09,E07000110,E14000804,Kent,2010-11-09,marketed sale,79,79,163,165.0,1.9,24,2.0,52.0,52.0,234.0,170.0,152.0,152.0,78.99,dual,N,1st,N,5.0,2603.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,"Electric immersion, off-peak",Average,Poor,(other premises below),,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Room heaters, electric",Very Poor,Poor,Programmer and appliance thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity - this is for backwards compatibility only and should not be used,0.0,heated corridor,,2.36,0.0,N,"mechanical, supply and extract","33, McKenzie Court",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2010-11-09 11:58:53,owner-occupied,,,10014306640.0,Address Matched +578566939932011011014414404968207,"22a, Queen Elizabeth Square",,,ME15 9DG,3764272868,C,B,80,82,House,Mid-Terrace,2011-01-10,E07000110,E14000700,Kent,2011-01-10,rental (private),77,80,180,159.0,1.8,30,1.5,34.0,34.0,285.0,265.0,115.0,99.0,58.4,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,"Suspended, limited insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.3,0.0,N,natural,"22a, Queen Elizabeth Square",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1996-2002,2011-01-10 14:41:44,rental (private),,,200003661744.0,Address Matched +1552880021212017061613095494930750,Flat 3,"17, Buckland Hill",,ME16 0SG,7005142578,C,C,69,78,Flat,Semi-Detached,2017-06-16,E07000110,E14000804,Kent,2017-06-16,rental (social),69,82,243,143.0,2.0,43,1.1,67.0,34.0,355.0,219.0,81.0,81.0,46.0,Unknown,Y,2nd,Y,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,0.0,0.0,From main system,Good,Good,(another dwelling below),NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,unheated corridor,5.8,,,N,natural,"Flat 3, 17, Buckland Hill",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2017-06-16 13:09:54,rental (social),,,200003670132.0,Address Matched +53864601212019071612425295910158,"22, Hazlitt Drive",,,ME16 0EG,1815157568,C,B,75,84,House,Semi-Detached,2019-07-15,E07000110,E14000804,Kent,2019-07-16,marketed sale,72,81,141,87.0,3.4,25,2.1,99.0,99.0,534.0,536.0,128.0,83.0,136.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,90.0,0.0,From main system,Good,Good,"Solid, limited insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Roof room(s), insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 90% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"22, Hazlitt Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2019-07-16 12:42:52,owner-occupied,,,10022895305.0,Address Matched +1801442651352020060508212023900978,Flat 21 Tovil Green Court,Tovil Green Lane,Tovil,ME15 6NE,9855130778,B,B,82,82,Flat,End-Terrace,2020-03-18,E07000110,E14000804,Kent,2020-06-05,marketed sale,85,85,111,111.0,1.1,19,1.1,53.0,53.0,148.0,148.0,214.0,214.0,56.0,Unknown,Y,1st,N,,2303.0,100.0,triple glazing,Normal,0.0,3.0,3.0,100.0,0.0,Community scheme,Good,Good,(another dwelling below),NO DATA!,,Fully triple glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,Community scheme,Good,Good,"Flat rate charging, room thermostat only",Poor,Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (community),0.0,heated corridor,,,,N,natural,"Flat 21 Tovil Green Court, Tovil Green Lane, Tovil",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2020-06-05 08:21:20,owner-occupied,,,10014306970.0,Address Matched +302101681152009061016323601910363,"9, Nutwood Close",Weavering,,ME14 5TL,3328113668,C,C,70,73,House,Detached,2009-06-10,E07000110,E14000700,Kent,2009-06-10,marketed sale,67,69,217,199.0,3.6,36,3.4,89.0,47.0,424.0,409.0,98.0,98.0,101.08,Single,Y,NO DATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,0.0,7.0,7.0,11.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,Programmer and room thermostat,Poor,Poor,Low energy lighting in 11% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.34,0.0,N,natural,"9, Nutwood Close, Weavering",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1991-1995,2009-06-10 16:32:36,owner-occupied,,,200003688217.0,Address Matched +1071623349542014011516283410849258,Smithy at West Forge,Back Street,Leeds,ME17 1TF,4598148178,C,A,69,93,Bungalow,Detached,2014-01-15,E07000110,E14000700,Kent,2014-01-15,rental (private),63,87,239,36.0,2.3,54,0.6,30.0,30.0,395.0,366.0,121.0,75.0,42.0,Single,N,NODATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,100.0,1.0,From main system,Average,Average,"Solid, insulated (assumed)",,,Fully double glazed,Good,Good,"Timber frame, as built, insulated (assumed)",Good,Good,"Room heaters, wood logs",,,"Pitched, insulated (assumed)",Good,Good,"Boiler and underfloor heating, oil",Average,Average,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,oil (not community),0.0,NO DATA!,,,0.0,,natural,"Smithy at West Forge, Back Street, Leeds",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2007 onwards,2014-01-15 16:28:34,rental (private),6.0,6.0,, +1422926229962016051217015633928956,22 Hubert Walter Drive,,,ME16 0BE,5304223478,B,B,86,86,Flat,NO DATA!,2016-05-12,E07000110,E14000804,Kent,2016-05-12,new dwelling,91,91,64,64.0,0.6,11,0.6,39.0,39.0,141.0,141.0,78.0,78.0,53.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.20 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,22 Hubert Walter Drive,Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2016-05-12 17:01:56,unknown,5.0,5.0,10091196019.0,Address Matched +597955929802013083000153787472718,"103, Upper Road",,,ME15 7RE,898924868,C,B,70,89,House,Mid-Terrace,2013-08-29,E07000110,E14000804,Kent,2013-08-30,rental (social),71,90,178,43.0,2.3,34,0.6,60.0,41.0,397.0,317.0,114.0,77.0,68.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,56.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 56% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"103, Upper Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2013-08-30 00:15:37,rental (social),9.0,5.0,200003685165.0,Address Matched +1633648895312018052115071891280850,"11, Roy Hood Court",Boughton Monchelsea,,ME17 4FN,8018518578,B,A,84,94,House,Semi-Detached,2018-05-21,E07000110,E14000804,Kent,2018-05-21,new dwelling,85,94,86,24.0,1.8,15,0.5,72.0,72.0,280.0,281.0,101.0,55.0,119.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.20 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.09 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"11, Roy Hood Court, Boughton Monchelsea",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2018-05-21 15:07:18,unknown,10.0,10.0,10093304953.0,Address Matched +1299767759242015051412371534459948,"22, Hazelwood Drive",,,ME16 0EA,288354378,D,B,63,82,House,Detached,2015-05-14,E07000110,E14000804,Kent,2015-05-14,assessment for green deal,58,78,247,111.0,3.9,43,1.8,115.0,58.0,642.0,548.0,154.0,74.0,90.0,Unknown,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,2.0,5.0,5.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"22, Hazelwood Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1991-1995,2015-05-14 12:37:15,owner-occupied,,,200003691889.0,Address Matched +410461570742009121716193078010818,"5, Malta Terrace",Invicta Park,,ME14 2PQ,5755070768,D,D,68,68,House,Mid-Terrace,2009-12-09,E07000110,E14000804,Kent,2009-12-17,marketed sale,67,67,244,244.0,2.8,40,2.8,35.0,35.0,487.0,487.0,86.0,86.0,70.5,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.3,0.0,N,natural,"5, Malta Terrace, Invicta Park",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2009-12-17 16:19:30,owner-occupied,,,200003724096.0,Address Matched +9ff3d161e2a7a204a3e1837f04b763803663b1f7550176cebc1cbf3160930245,"FLAT 5, HARRIET HOUSE, WEST STREET",HARRIETSHAM,,ME17 1JZ,10001677150,D,C,67,73,Flat,Mid-Terrace,2021-07-13,E07000110,E14000700,Kent,2021-07-13,rental,63,72,281,208.0,2.7,50,2.0,47.0,47.0,380.0,290.0,156.0,125.0,54.0,Single,Y,00,N,,,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,100.0,0.0,Community scheme,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,(another dwelling above),,,Community scheme,Good,Good,"Flat rate charging, programmer and TRVs",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (community),0.0,heated corridor,,2.93,0.0,N,natural,"FLAT 5, HARRIET HOUSE, WEST STREET, HARRIETSHAM",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2021-07-13 21:39:37,Rented (private),3.0,,10095449910.0,Address Matched +9ff6a0a039b77860f795fd615c4a4269f8746db9958719c092e041f8393bacf0,Flat 18,Cavendish Place,Cavendish Way,ME15 8FW,10001620433,B,B,81,81,Flat,Semi-Detached,2021-08-11,E07000110,E14000700,Kent,2021-08-12,marketed sale,85,85,109,109.0,1.1,19,1.1,70.0,70.0,182.0,182.0,89.0,89.0,60.0,Single,Y,01,N,,,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,78.0,0.0,From main system,Good,Good,(another dwelling below),,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Very Good,Very Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 78% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,5.5,2.3,0.0,N,natural,"Flat 18, Cavendish Place, Cavendish Way",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2007-2011,2021-08-12 06:01:33,Owner-occupied,9.0,,10014312995.0,Energy Assessor +17871209962010031515591838858670,98 Wallis Place,Hart Street,,ME16 8FD,7315088468,B,B,86,86,Flat,NO DATA!,2010-03-15,E07000110,E14000804,Kent,2010-03-15,new dwelling,86,86,107,107.0,1.2,18,1.2,36.0,36.0,196.0,196.0,93.0,93.0,69.94,standard tariff,,top floor,,,,,NO DATA!,NO DATA!,,,,6.0,,From main system,Very Good,Very Good,(other premises below),,,Fully double glazed,Good,Good,Average thermal transmittance 0.29 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.23 W/m?K,Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.36,,,NO DATA!,"98 Wallis Place, Hart Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2010-03-15 15:59:18,,6.0,6.0,10022900699.0,Address Matched +327543839922016101717552824138026,"12, Corner Farm Road",Staplehurst,,TN12 0PN,2207394668,E,B,45,87,Bungalow,Semi-Detached,2016-10-17,E07000110,E14000804,Kent,2016-10-17,ECO assessment,38,86,426,69.0,5.9,75,1.0,74.0,53.0,1030.0,384.0,183.0,74.0,78.0,Single,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,60.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Roof room(s), no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 60% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,2.4,,N,natural,"12, Corner Farm Road, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1950-1966,2016-10-17 17:55:28,owner-occupied,,,200003678996.0,Address Matched +1253400129002015010516440938147898,"10, Alexandra Street",,,ME14 2TE,7020321378,C,B,73,89,House,Mid-Terrace,2014-12-31,E07000110,E14000804,Kent,2015-01-05,marketed sale,72,89,177,51.0,2.3,31,0.7,59.0,59.0,440.0,353.0,90.0,58.0,75.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,5.0,5.0,80.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Sandstone or limestone, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"10, Alexandra Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2015-01-05 16:44:09,owner-occupied,,,200003669830.0,Address Matched +176685880102008111118514655389598,Dodges Farmhouse,Goudhurst Road,Marden,TN12 9NQ,1169283568,E,D,43,65,House,Detached,2008-11-11,E07000110,E14000804,Kent,2008-11-11,marketed sale,38,59,358,223.0,7.7,72,4.6,53.0,53.0,922.0,530.0,175.0,136.0,105.87,dual,N,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,5.0,5.0,100.0,2.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, partial insulation (assumed)",Average,Average,"Room heaters, wood logs",,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, oil",Average,Average,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,oil - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.32,0.0,N,natural,"Dodges Farmhouse, Goudhurst Road, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1976-1982,2008-11-11 18:51:46,owner-occupied,,,200003668001.0,Address Matched +207677010902009010611374952610068,"4, Green Lane",Boughton Monchelsea,,ME17 4JQ,9930316568,D,C,61,73,House,Semi-Detached,2009-01-06,E07000110,E14000700,Kent,2009-01-06,rental (social),54,69,331,224.0,4.1,55,2.8,39.0,39.0,546.0,382.0,135.0,104.0,74.2,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,90.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 90% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.43,0.0,N,natural,"4, Green Lane, Boughton Monchelsea",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2009-01-06 11:37:49,rental (social),,,200003723048.0,Address Matched +1217499530952014100818415197049625,"62, Bedgebury Close",,,ME14 5QZ,6581078278,D,B,63,82,House,Mid-Terrace,2014-10-08,E07000110,E14000804,Kent,2014-10-08,marketed sale,64,83,215,87.0,3.0,41,1.2,70.0,46.0,609.0,501.0,99.0,69.0,73.0,Single,Y,NODATA!,,,2104.0,95.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,50.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Mostly double glazing,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,"Pitched, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"62, Bedgebury Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2014-10-08 18:41:51,owner-occupied,8.0,4.0,200003672061.0,Address Matched +1466562739302016072814271648662888,"75, Edmett Way",,,ME17 3FA,332136478,C,C,80,80,Flat,Detached,2016-07-28,E07000110,E14000700,Kent,2016-07-28,new dwelling,85,85,122,122.0,1.0,21,1.0,33.0,33.0,204.0,204.0,66.0,66.0,45.0,standard tariff,,ground floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.27 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,Programmer and at least two room thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"75, Edmett Way",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2016-07-28 14:27:16,unknown,1.0,1.0,10091193998.0,Address Matched +1374582589402015111112095834959808,Flat 15 Pioneer Place,Cobb Way,,ME15 9XF,2471089378,B,B,84,84,Flat,NO DATA!,2015-11-10,E07000110,E14000700,Kent,2015-11-11,new dwelling,88,88,81,81.0,1.1,14,1.1,50.0,50.0,197.0,197.0,92.0,92.0,75.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.17 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Flat 15 Pioneer Place, Cobb Way",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2015-11-11 12:09:58,unknown,10.0,10.0,10014315900.0,Address Matched +1366535104712015092220261692250332,"68, McKenzie Court",,,ME14 1JU,3232429378,B,B,85,87,Flat,End-Terrace,2015-09-22,E07000110,E14000804,Kent,2015-09-22,rental (private),78,81,158,136.0,1.6,27,1.4,52.0,52.0,93.0,75.0,140.0,119.0,60.0,dual,N,1st,N,,2401.0,100.0,triple glazing,Normal,0.0,3.0,3.0,100.0,0.0,"Electric immersion, off-peak",Average,Poor,(another dwelling below),NO DATA!,,Fully triple glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,(another dwelling above),,,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,heated corridor,,,,N,natural,"68, McKenzie Court",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2015-09-22 20:26:16,rental (private),,,10014306675.0,Address Matched +379608220132009101221104863968696,"15, Willington Green",,,ME15 8AY,2613658668,C,C,75,76,Flat,Semi-Detached,2009-10-12,E07000110,E14000700,Kent,2009-10-12,rental (social),72,72,278,273.0,1.8,46,1.7,28.0,19.0,308.0,310.0,63.0,63.0,37.94,Single,Y,Ground,N,2.0,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,1.0,1.0,50.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.37,0.0,N,natural,"15, Willington Green",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2009-10-12 21:10:48,rental (social),,,200003684518.0,Address Matched +764375969502012032612111596622668,"53, Charlton Street",,,ME16 8LB,8564066968,D,D,64,68,House,Mid-Terrace,2012-03-26,E07000110,E14000804,Kent,2012-03-26,rental (private),62,67,235,206.0,3.4,45,3.0,45.0,45.0,574.0,515.0,93.0,81.0,74.42,dual,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,100.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Granite or whin, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,2.38,0.0,,natural,"53, Charlton Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2012-03-26 12:11:15,rental (private),9.0,9.0,200003655451.0,Address Matched +502240919802010062009304678702908,"14, Plumtrees",,,ME16 9JH,2803617768,E,C,54,71,House,Semi-Detached,2010-06-20,E07000110,E14000804,Kent,2010-06-20,rental (private),48,66,359,225.0,5.4,59,3.4,88.0,47.0,786.0,508.0,141.0,122.0,90.12,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,12.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 12% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.35,0.0,N,natural,"14, Plumtrees",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2010-06-20 09:30:46,rental (private),,,200003687467.0,Address Matched +653929729922011071313192708678049,"52, Foxden Drive",Downswood,,ME15 8TQ,4087248868,C,C,71,71,House,Enclosed End-Terrace,2011-07-13,E07000110,E14000700,Kent,2011-07-13,marketed sale,73,74,212,206.0,1.8,41,1.7,38.0,26.0,323.0,325.0,68.0,68.0,43.36,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,2.0,2.0,50.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,2.4,0.0,,natural,"52, Foxden Drive, Downswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2011-07-13 13:19:27,owner-occupied,4.0,2.0,200003686581.0,Address Matched +397955030962009111313394949278051,"71, Newbury Avenue",,,ME16 0RG,5402389668,D,C,66,74,Bungalow,Semi-Detached,2009-11-13,E07000110,E14000804,Kent,2009-11-13,marketed sale,62,70,314,249.0,2.8,52,2.3,51.0,27.0,404.0,353.0,122.0,97.0,54.3,Single,Y,NO DATA!,,,2104.0,90.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,10.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Mostly double glazing,Good,Good,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 10% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.42,0.0,N,natural,"71, Newbury Avenue",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2009-11-13 13:39:49,owner-occupied,,,200003659380.0,Address Matched +491098939842014070814325777640788,"49, Bell Lane",Staplehurst,,TN12 0BB,7856636768,D,A,66,95,House,Mid-Terrace,2014-07-08,E07000110,E14000804,Kent,2014-07-08,non marketed sale,67,97,230,-7.0,2.3,44,0.0,69.0,34.0,395.0,295.0,135.0,71.0,51.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,3.0,3.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"49, Bell Lane, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1900-1929,2014-07-08 14:32:57,owner-occupied,10.0,0.0,200003679244.0,Address Matched +123306932712013030421161391070548,"4, Cross Keys",Bearsted,,ME14 4HR,5828219468,C,C,72,77,Flat,End-Terrace,2013-03-04,E07000110,E14000700,Kent,2013-03-04,marketed sale,75,80,164,128.0,1.9,31,1.5,73.0,37.0,316.0,282.0,88.0,76.0,60.0,Single,Y,1st,Y,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,4.0,4.0,0.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,no corridor,,,0.0,,natural,"4, Cross Keys, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2013-03-04 21:16:13,owner-occupied,19.0,0.0,200003694882.0,Address Matched +689512699442016070318292290062338,"152, Upper Fant Road",,,ME16 8DJ,442890968,E,C,54,77,House,Detached,2016-06-27,E07000110,E14000804,Kent,2016-07-03,assessment for green deal,40,66,285,125.0,7.0,61,3.3,84.0,84.0,1125.0,705.0,108.0,72.0,115.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,78.0,4.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, coal",,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 78% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,2.56,,N,natural,"152, Upper Fant Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2016-07-03 18:29:22,owner-occupied,,,200003656309.0,Address Matched +1301246159542016080315374632460978,"37, Charlton Street",,,ME16 8LB,4525954378,D,B,63,81,House,Mid-Terrace,2016-08-03,E07000110,E14000804,Kent,2016-08-03,marketed sale,60,80,238,103.0,3.6,42,1.6,85.0,56.0,694.0,542.0,107.0,71.0,86.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,50.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, electric",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,2.32,,N,natural,"37, Charlton Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2016-08-03 15:37:46,owner-occupied,,,200003655441.0,Address Matched +18321769222019042317532282678751,"28, Chantry Road",Marden,,TN12 9HT,5899652468,D,C,66,79,House,End-Terrace,2019-04-23,E07000110,E14000804,Kent,2019-04-23,marketed sale,60,74,239,140.0,3.6,42,2.1,61.0,61.0,583.0,551.0,129.0,83.0,84.0,Unknown,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"28, Chantry Road, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1967-1975,2019-04-23 17:53:22,owner-occupied,,,200003708498.0,Address Matched +614167959062011040619340295168139,The Flat,197 Upper Fant Road,,ME16 8BX,3920555868,E,D,43,56,Maisonette,NO DATA!,2011-04-06,E07000110,E14000804,Kent,2011-04-06,rental (social),42,55,427,314.0,5.9,71,4.3,84.0,52.0,996.0,796.0,173.0,123.0,82.876,dual,Y,1st,Y,4.0,2104.0,100.0,double glazing installed during or after 2002,More Than Typical,1.0,3.0,3.0,38.0,0.0,From main system,Average,Good,(other premises below),,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,Portable electric heaters,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Average,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 38% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.52,0.0,N,natural,"The Flat, 197 Upper Fant Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2011-04-06 19:34:02,rental (social),,,200003656125.0,Address Matched +a0462288a955ebe50d6b89a71a93af0a97670768a181e1cd8ce336a9eef737da,6 THE MEADOWS,TOVIL,,ME15 6QW,10001616399,C,B,70,87,House,Mid-Terrace,2021-07-02,E07000110,E14000804,Kent,2021-07-02,marketed sale,67,87,211,73.0,2.8,37,1.0,84.0,63.0,434.0,375.0,143.0,69.0,75.0,Single,Y,,,,,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,67.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 67% of fixed outlets,Good,Good,mains gas (not community),0.0,,,2.32,0.0,N,natural,"6 THE MEADOWS, TOVIL",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1991-1995,2021-07-02 20:32:15,Owner-occupied,9.0,,200003666223.0,Energy Assessor +245710080002009061108141350919398,4 The Old Market,Marden,,TN12 9GD,7092089568,B,B,81,83,House,End-Terrace,2009-06-11,E07000110,E14000804,Kent,2009-06-11,new dwelling,80,81,128,120.0,2.2,21,2.1,89.0,52.0,273.0,278.0,105.0,105.0,105.67,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,5.0,,From main system,Very Good,Very Good,Average thermal transmittance 0.19 W/m?K,Very Good,Very Good,Fully double glazed,Good,Good,Average thermal transmittance 0.29 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.14 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 28% fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.39,,,NO DATA!,"4 The Old Market, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,NO DATA!,2009-06-11 08:14:13,,18.0,5.0,10014306420.0,Address Matched +a04f85bc7a7a33bf14735ba4aee00605cc56522f9e1ef2fab3a846394c6ddf89,1 HALLS PLACE,RIGSHILL ROAD,OTTERDEN,ME13 0JD,1751877868,E,A,50,103,House,End-Terrace,2021-08-03,E07000110,E14000700,Kent,2021-08-05,rental,46,96,242,-61.0,4.8,57,-0.2,84.0,84.0,624.0,346.0,136.0,82.0,84.0,Unknown,N,,,,,100.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,78.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, oil",Average,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 78% of fixed outlets,Very Good,Very Good,oil (not community),0.0,,,2.38,0.0,N,natural,"1 HALLS PLACE, RIGSHILL ROAD, OTTERDEN",Maidstone,Faversham and Mid Kent,FAVERSHAM,England and Wales: before 1900,2021-08-05 16:27:27,Rented (private),9.0,,200003725845.0,Energy Assessor +1655318318832018082320171671278206,"73, Sherbourne Drive",,,ME16 8UG,1601279578,D,A,57,93,House,Enclosed End-Terrace,2018-08-23,E07000110,E14000804,Kent,2018-08-23,marketed sale,53,77,405,164.0,2.7,68,1.1,51.0,34.0,469.0,257.0,194.0,74.0,40.0,dual,N,NODATA!,,,2603.0,100.0,triple glazing,Normal,0.0,2.0,2.0,40.0,0.0,"Electric immersion, off-peak",Poor,Poor,"Solid, no insulation (assumed)",NO DATA!,,Fully triple glazed,Good,Good,"Timber frame, as built, insulated (assumed)",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Room heaters, electric",Very Poor,Poor,Programmer and appliance thermostats,Good,Good,Low energy lighting in 40% of fixed outlets,Average,Average,electricity (not community),0.0,NO DATA!,,,,N,natural,"73, Sherbourne Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2018-08-23 20:17:16,owner-occupied,,,200003675258.0,Address Matched +1362164199242015100620382133850658,"20, Charlbury Close",,,ME16 8TE,4234198378,D,B,66,84,House,Semi-Detached,2015-10-05,E07000110,E14000804,Kent,2015-10-06,ECO assessment,61,82,227,92.0,3.6,40,1.5,112.0,57.0,618.0,492.0,125.0,72.0,90.0,Single,Y,NODATA!,,,2107.0,100.0,double glazing installed during or after 2002,Normal,1.0,5.0,5.0,4.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 4% of fixed outlets,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"20, Charlbury Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2015-10-06 20:38:21,owner-occupied,,,200003657575.0,Address Matched +476578639262010042710375075438540,"82, Hardy Street",,,ME14 2SJ,4792335768,E,E,41,54,House,Mid-Terrace,2010-04-27,E07000110,E14000804,Kent,2010-04-27,marketed sale,43,57,433,322.0,6.8,64,4.8,82.0,55.0,1105.0,871.0,212.0,149.0,88.35,Single,Y,NO DATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,50.0,2.0,From main system,Average,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Granite or whin, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Average,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.37,0.0,N,natural,"82, Hardy Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2010-04-27 10:37:50,owner-occupied,,,200003702741.0,Address Matched +1685567350252019041517310699910766,Flat 9 Coronet House,"11, Queen Anne Road",,ME14 1GD,7628091678,D,D,67,67,Flat,Detached,2019-04-12,E07000110,E14000804,Kent,2019-04-15,new dwelling,70,70,390,390.0,1.3,66,1.3,20.0,20.0,261.0,261.0,133.0,133.0,19.0,standard tariff,,ground floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,Electric instantaneous at point of use,Very Poor,Very Poor,Average thermal transmittance 0.18 W/m-¦K,Very Good,Very Good,Fully double glazed,Good,Good,Average thermal transmittance 0.26 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,"Room heaters, electric",Very Poor,Poor,Programmer and room thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"Flat 9 Coronet House, 11, Queen Anne Road",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2019-04-15 17:31:06,unknown,5.0,5.0,10094441186.0,Address Matched +1553876058812017062106350194230354,"4, Leonard Close",,,ME16 0QU,3411842578,D,B,61,86,Bungalow,Semi-Detached,2017-06-20,E07000110,E14000804,Kent,2017-06-21,marketed sale,57,85,302,82.0,3.1,53,0.9,83.0,42.0,490.0,375.0,166.0,66.0,59.0,Single,Y,NODATA!,,,2107.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,0.0,0.0,From main system,Average,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, insulated at rafters",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"4, Leonard Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2017-06-21 06:35:01,owner-occupied,,,200003704954.0,Address Matched +404847490262009112713313210268081,Flat 11,1-5 Pudding Lane,,ME14 1FN,8122920768,C,C,70,70,Flat,Mid-Terrace,2009-11-26,E07000110,E14000804,Kent,2009-11-27,rental (social),69,69,286,286.0,2.3,43,2.3,32.0,32.0,266.0,266.0,121.0,121.0,53.0159,dual,N,1st,Y,2.0,2402.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,"Electric immersion, off-peak",Poor,Poor,(other premises below),,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,"Flat, insulated",Good,Good,Electric storage heaters,Poor,Poor,Automatic charge control,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity - this is for backwards compatibility only and should not be used,0.0,unheated corridor,11.93,2.896,0.0,N,"mechanical, supply and extract","Flat 11, 1-5 Pudding Lane",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2009-11-27 13:31:32,rental (social),,,10014308368.0,Address Matched +1482920891632016092817041866278409,"39, Marlow Copse",,,ME5 9DR,9976447478,E,B,40,84,House,Semi-Detached,2016-09-26,E07000110,E14000700,Kent,2016-09-28,ECO assessment,34,82,433,90.0,7.8,78,1.7,126.0,63.0,1169.0,516.0,403.0,78.0,101.0,Single,Y,NODATA!,,,2102.0,0.0,not defined,Normal,1.0,6.0,6.0,0.0,0.0,"From main system, no cylinder thermostat",Poor,Poor,"Solid, no insulation (assumed)",NO DATA!,,Single glazed,Very Poor,Very Poor,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,2.5,,N,natural,"39, Marlow Copse",Maidstone,Faversham and Mid Kent,CHATHAM,England and Wales: 1967-1975,2016-09-28 17:04:18,owner-occupied,,,200003725022.0,Address Matched +584809939262011012615285313858500,"6, Nine Oaks Court",Kingswood,,ME17 1LW,165323868,B,B,87,88,House,Semi-Detached,2010-01-25,E07000110,E14000700,Kent,2011-01-26,new dwelling,87,87,92,89.0,1.3,15,1.3,64.0,51.0,254.0,256.0,44.0,44.0,88.62,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,,From main system,Very Good,Very Good,Average thermal transmittance 0.20 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.27 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.15 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Very Good,Very Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,,,NO DATA!,"6, Nine Oaks Court, Kingswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2011-01-26 15:28:53,,,,10014311218.0,Address Matched +596884529702015032310411781452408,"16, Raynham Villas",Hunton Road,,TN12 9SZ,5734024868,D,B,62,85,Bungalow,Semi-Detached,2015-03-20,E07000110,E14000804,Kent,2015-03-23,RHI application,66,86,253,84.0,2.6,43,0.9,58.0,41.0,293.0,283.0,386.0,203.0,61.0,Single,N,NODATA!,,,2207.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,57.0,0.0,"From main system, no cylinder thermostat",Very Poor,Poor,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Air source heat pump, radiators, electric",Good,Very Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in 57% of fixed outlets,Good,Good,electricity (not community),0.0,NO DATA!,,,,N,natural,"16, Raynham Villas, Hunton Road",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1976-1982,2015-03-23 10:41:17,rental (social),,,200003723891.0,Address Matched +a077ae537d6a7d4cb15c12d8711eb11580816efe1e39274b9aa52f9d2603254e,64 Stockett Lane,Coxheath,,ME17 4PY,10001625199,D,B,68,85,House,Semi-Detached,2021-08-11,E07000110,E14000804,Kent,2021-08-11,marketed sale,63,82,226,95.0,3.6,40,1.6,74.0,74.0,623.0,466.0,85.0,57.0,92.0,Single,Y,,,,,100.0,"double glazing, unknown install date",Normal,1.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.4,0.0,N,natural,"64 Stockett Lane, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2021-08-11 12:32:21,Owner-occupied,9.0,,200003714365.0,Energy Assessor +971081862922020041413393831348350,"24, Birch Drive",,,ME5 8YU,5384621178,B,B,81,83,House,End-Terrace,2020-04-14,E07000110,E14000700,Kent,2020-04-14,non marketed sale,76,78,119,106.0,2.5,21,2.2,80.0,80.0,600.0,602.0,132.0,84.0,114.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,6.0,6.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"24, Birch Drive",Maidstone,Faversham and Mid Kent,CHATHAM,England and Wales: 1983-1990,2020-04-14 13:39:38,owner-occupied,,,200003673593.0,Address Matched +1414562112112016021717543096960948,"11, Aston Close",,,ME5 9JW,9812262478,D,B,67,88,House,Detached,2016-02-16,E07000110,E14000700,Kent,2016-02-17,marketed sale,62,86,230,69.0,3.8,41,1.2,78.0,61.0,537.0,419.0,271.0,78.0,94.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,0.0,6.0,6.0,73.0,0.0,"From main system, no cylinder thermostat",Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 73% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"11, Aston Close",Maidstone,Faversham and Mid Kent,CHATHAM,England and Wales: 1991-1995,2016-02-17 17:54:30,owner-occupied,,,200003708533.0,Address Matched +a08edf431740619e068d246ee059bcc3f644d99dec9f989718d8f12eaab300e8,31 Hermitage Lane,,,ME16 9NR,10001513771,D,C,59,80,House,End-Terrace,2021-09-17,E07000110,E14000804,Kent,2021-09-17,marketed sale,54,79,262,107.0,4.7,46,2.0,80.0,80.0,907.0,608.0,112.0,68.0,103.0,Unknown,Y,,,,,100.0,"double glazing, unknown install date",Normal,1.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.35,0.0,N,natural,31 Hermitage Lane,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2021-09-17 12:08:42,Owner-occupied,9.0,,200003697042.0,Energy Assessor +1595417449962017121818210495888113,"58b, Milton Street",,,ME16 8LD,1964445578,F,B,22,84,House,End-Terrace,2017-12-18,E07000110,E14000804,Kent,2017-12-18,marketed sale,32,81,465,91.0,7.3,80,1.5,95.0,60.0,1881.0,460.0,101.0,70.0,91.0,Single,Y,NODATA!,,,2602.0,100.0,double glazing installed before 2002,Normal,1.0,4.0,1.0,42.0,0.0,Gas multipoint,Average,Average,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,Portable electric heaters assumed for most rooms,Very Poor,Poor,No thermostatic control of room temperature,Poor,Poor,Low energy lighting in 42% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"58b, Milton Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2017-12-18 18:21:04,owner-occupied,,,200003656584.0,Address Matched +878041409962018061421462414148178,"3, Cranbrook Close",,,ME15 8ST,7181074078,E,C,47,79,Bungalow,Semi-Detached,2018-06-14,E07000110,E14000700,Kent,2018-06-14,marketed sale,43,77,367,129.0,5.9,64,2.1,92.0,61.0,1114.0,615.0,134.0,80.0,91.0,Single,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,50.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,"Room heaters, electric",,,"Roof room(s), no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"3, Cranbrook Close",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2018-06-14 21:46:24,owner-occupied,,,200003685443.0,Address Matched +457992809742015091008151176452138,"19, St. Francis Close",Penenden Heath,,ME14 2TQ,753504768,D,C,68,80,House,Semi-Detached,2015-08-27,E07000110,E14000804,Kent,2015-09-10,marketed sale,64,75,199,123.0,3.7,35,2.3,98.0,62.0,626.0,631.0,136.0,86.0,104.0,Unknown,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,6.0,6.0,43.0,0.0,From main system,Good,Good,"Solid, limited insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 43% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"19, St. Francis Close, Penenden Heath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2015-09-10 08:15:11,owner-occupied,,,10022892033.0,Address Matched +1497106299962016111618284338468606,"30, Camden Street",,,ME14 1UU,353948478,D,B,61,90,House,Mid-Terrace,2016-11-16,E07000110,E14000804,Kent,2016-11-16,marketed sale,57,90,301,46.0,3.2,53,0.5,84.0,42.0,541.0,300.0,132.0,77.0,60.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,3.0,3.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,2.55,,N,natural,"30, Camden Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2016-11-16 18:28:43,owner-occupied,,,200003699126.0,Address Matched +608702427932011032420512697268403,"6, Clewson Rise",Penenden Heath,,ME14 2DR,2367415868,D,C,67,71,House,Semi-Detached,2011-03-24,E07000110,E14000804,Kent,2011-03-24,marketed sale,61,66,262,231.0,3.8,43,3.3,54.0,54.0,584.0,530.0,156.0,133.0,86.35,dual,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.43,0.0,N,natural,"6, Clewson Rise, Penenden Heath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2011-03-24 20:51:26,owner-occupied,,,200003706389.0,Address Matched +1164252299302014062612362524442968,"36b, Florence Road",,,ME16 8EL,3337394278,C,B,72,91,House,End-Terrace,2014-06-26,E07000110,E14000804,Kent,2014-06-26,marketed sale,58,94,286,24.0,3.1,51,0.3,98.0,45.0,279.0,280.0,160.0,69.0,61.0,Unknown,Y,NODATA!,,,2402.0,100.0,double glazing installed during or after 2002,Less Than Typical,0.0,3.0,3.0,0.0,0.0,"Electric immersion, off-peak",Average,Very Poor,"Solid, insulated (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,Portable electric heaters (assumed),,,"Pitched, insulated (assumed)",Good,Good,Electric storage heaters,Average,Very Poor,Automatic charge control,Average,Average,No low energy lighting,Very Poor,Very Poor,electricity (not community),0.0,NO DATA!,,,0.0,,natural,"36b, Florence Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2014-06-26 12:36:25,owner-occupied,21.0,0.0,200003668878.0,Address Matched +1246770756712015022513341597049339,"5, Otteridge Road",Bearsted,,ME14 4JR,3940670378,D,B,61,83,Bungalow,Semi-Detached,2014-12-03,E07000110,E14000700,Kent,2015-02-25,assessment for green deal,53,79,261,102.0,5.4,46,2.2,85.0,66.0,947.0,585.0,129.0,83.0,117.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,2.0,5.0,5.0,71.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 71% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"5, Otteridge Road, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2015-02-25 13:34:15,owner-occupied,,,200003692298.0,Address Matched +871780017852013011418440292970409,"217, Upper Fant Road",,,ME16 8DA,4960724078,E,C,54,80,House,Mid-Terrace,2013-01-14,E07000110,E14000804,Kent,2013-01-14,marketed sale,51,79,313,114.0,3.7,60,1.4,57.0,36.0,674.0,495.0,76.0,53.0,61.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,4.0,4.0,45.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 45% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"217, Upper Fant Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2013-01-14 18:44:02,owner-occupied,11.0,5.0,200003656150.0,Address Matched +947241366732013060912150138078701,"46, Lombardy Drive",,,ME14 5TB,6148759078,D,B,66,82,House,Detached,2013-06-07,E07000110,E14000804,Kent,2013-06-09,marketed sale,64,80,190,92.0,3.7,37,1.9,109.0,59.0,597.0,514.0,117.0,80.0,102.0,dual,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,6.0,6.0,17.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 17% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"46, Lombardy Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2013-06-09 12:15:01,owner-occupied,12.0,2.0,200003673040.0,Address Matched +1818945402962020081821415141288570,"74, Lower Fant Road",,,ME16 8EA,7477061778,E,C,50,75,House,Semi-Detached,2020-08-18,E07000110,E14000804,Kent,2020-08-18,marketed sale,42,68,335,156.0,6.5,61,3.1,102.0,80.0,1110.0,758.0,155.0,74.0,108.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,1.0,6.0,6.0,73.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 73% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"74, Lower Fant Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2020-08-18 21:41:51,owner-occupied,,,200003656558.0,Address Matched +843599124952016081612594092060701,Flat 2 St. Davids House,Nottingham Avenue,,ME15 7PR,7131422078,C,C,71,75,Maisonette,Semi-Detached,2016-08-04,E07000110,E14000700,Kent,2016-08-16,ECO assessment,73,77,194,165.0,2.1,34,1.8,61.0,45.0,427.0,369.0,85.0,85.0,63.0,Single,Y,1st,Y,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,67.0,0.0,From main system,Good,Good,(another dwelling below),NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 67% of fixed outlets,Good,Good,mains gas (not community),0.0,no corridor,,2.41,,N,natural,"Flat 2 St. Davids House, Nottingham Avenue",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2016-08-16 12:59:40,owner-occupied,,,200003713146.0,Address Matched +290175332602020030223454662200128,"36, Thornhill Place",,,ME14 2SE,1615232668,C,B,72,88,House,Semi-Detached,2020-03-02,E07000110,E14000804,Kent,2020-03-02,marketed sale,72,88,199,63.0,2.0,35,0.7,53.0,53.0,361.0,331.0,85.0,56.0,57.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,89.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 89% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"36, Thornhill Place",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1991-1995,2020-03-02 23:45:46,owner-occupied,,,200003704740.0,Address Matched +1285989859902017012918142835332048,"5, Blackmanstone Way",,,ME16 0NT,7905353378,D,B,68,86,House,Semi-Detached,2017-01-24,E07000110,E14000804,Kent,2017-01-29,ECO assessment,63,84,202,76.0,3.9,36,1.5,87.0,67.0,675.0,459.0,119.0,79.0,108.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,70.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 12 mm loft insulation",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 70% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"5, Blackmanstone Way",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2017-01-29 18:14:28,owner-occupied,,,200003706902.0,Address Matched +1826307252512020091717275021900474,The Birches,Maidstone Road,Sutton Valence,ME17 3LS,4479212778,D,C,67,73,House,Detached,2020-09-17,E07000110,E14000700,Kent,2020-09-17,marketed sale,58,65,188,150.0,9.0,35,7.2,135.0,135.0,1631.0,1492.0,87.0,87.0,258.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,2.0,10.0,10.0,100.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Timber frame, as built, insulated (assumed)",Good,Good,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"The Birches, Maidstone Road, Sutton Valence",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1991-1995,2020-09-17 17:27:50,owner-occupied,,,200003697223.0,Address Matched +1437789566752017021220063392930840,1 Eccleston Court,Tovil,,ME15 6QZ,8066624478,C,C,80,80,Flat,End-Terrace,2017-02-10,E07000110,E14000804,Kent,2017-02-12,rental (social),82,82,121,121.0,1.4,21,1.4,51.0,51.0,241.0,241.0,98.0,98.0,66.0,Unknown,Y,1st,N,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,"To external air, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"System built, as built, insulated (assumed)",Very Good,Very Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,heated corridor,,,,N,natural,"1 Eccleston Court, Tovil",Maidstone,Maidstone and The Weald,MAIDSTONE,INVALID!,2017-02-12 20:06:33,rental (social),,,10091193837.0,Address Matched +233687533952009022617185004210159,Flat 210 Scotney Gardens,St. Peters Street,,ME16 0GW,1915348568,B,B,81,84,Flat,Mid-Terrace,2009-02-26,E07000110,E14000804,Kent,2009-02-26,rental (private),76,77,211,200.0,1.9,32,1.8,53.0,34.0,113.0,103.0,117.0,117.0,59.34,dual,N,2nd,N,4.0,2401.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,44.0,0.0,"Electric immersion, off-peak",Average,Poor,(other premises below),,,Fully double glazed,Good,Good,"System built, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,(another dwelling above),,,Electric storage heaters,Poor,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 44% of fixed outlets,Average,Average,electricity - this is for backwards compatibility only and should not be used,0.0,unheated corridor,2.8,2.31,0.0,N,natural,"Flat 210 Scotney Gardens, St. Peters Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2009-02-26 17:18:50,rental (private),,,10022893577.0,Address Matched +1320957699302015092513374337552058,Broadstone House,Headcorn Road,Grafty Green,ME17 2AT,7363995378,E,B,44,84,House,Semi-Detached,2015-09-25,E07000110,E14000700,Kent,2015-09-25,marketed sale,89,110,272,67.0,1.7,10,-1.7,84.0,84.0,1850.0,1033.0,166.0,166.0,170.0,Single,N,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,7.0,7.0,100.0,1.0,"From main system, plus solar",Average,Very Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Poor,Poor,"Room heaters, wood logs",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, wood pellets",Poor,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,bulk wood pellets,0.0,NO DATA!,,,,Y,natural,"Broadstone House, Headcorn Road, Grafty Green",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2015-09-25 13:37:43,owner-occupied,,,10014308066.0,Address Matched +1203336689712014091712001296940428,The Bungalow,Lenham Heath,,ME17 2JP,4866967278,B,A,86,104,Bungalow,Detached,2014-09-17,E07000110,E14000700,Kent,2014-09-17,marketed sale,71,96,58,-43.0,2.5,25,0.0,119.0,59.0,823.0,466.0,242.0,111.0,100.0,Single,N,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,0.0,0.0,From main system,Average,Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, oil",Average,Average,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,oil (not community),0.0,NO DATA!,,,50.0,,natural,"The Bungalow, Lenham Heath",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1976-1982,2014-09-17 12:00:12,owner-occupied,8.0,0.0,200003725924.0,Address Matched +885527909942013021318311106579378,"16, Threshers Drive",Weavering,,ME14 5UA,9949605078,D,B,58,87,House,End-Terrace,2013-02-13,E07000110,E14000700,Kent,2013-02-13,none of the above,54,88,268,57.0,4.0,52,0.9,57.0,44.0,563.0,364.0,219.0,66.0,77.0,Single,Y,NODATA!,,,2102.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,71.0,0.0,"From main system, no cylinder thermostat",Poor,Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,Low energy lighting in 71% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"16, Threshers Drive, Weavering",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2013-02-13 18:31:11,rental (private),14.0,10.0,200003673050.0,Address Matched +293977626952009052921391805210668,"102, Postley Road",,,ME15 6TR,6851652668,E,C,41,71,House,Mid-Terrace,2009-05-29,E07000110,E14000804,Kent,2009-05-29,rental (private),40,66,432,223.0,6.9,72,3.6,73.0,50.0,937.0,487.0,216.0,113.0,80.49,dual,Y,NO DATA!,,,2104.0,92.0,double glazing installed during or after 2002,Normal,0.0,6.0,4.0,54.0,0.0,From main system,Average,Good,"Solid, no insulation (assumed)",,,Partial double glazing,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,Portable electric heaters,,,"Roof room(s), no insulation",Very Poor,Very Poor,"Boiler and radiators, mains gas",Average,Good,Programmer and room thermostat,Poor,Poor,Low energy lighting in 54% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.43,0.0,N,natural,"102, Postley Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2009-05-29 21:39:18,rental (private),,,200003681868.0,Address Matched +1502338189402016120517064243860558,"32, Buffkyn Way",,,ME15 8FY,8450488478,B,B,88,89,House,Semi-Detached,2016-12-05,E07000110,E14000700,Kent,2016-12-05,new dwelling,88,90,61,49.0,1.3,11,1.1,79.0,79.0,298.0,300.0,110.0,58.0,125.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.18 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"32, Buffkyn Way",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2016-12-05 17:06:42,unknown,1.0,1.0,10091193667.0,Address Matched +380720135732013051711031467968404,"30, Stafford Gardens",,,ME15 6GZ,3477468668,C,C,75,78,Flat,Mid-Terrace,2013-05-17,E07000110,E14000804,Kent,2013-05-17,rental (private),79,83,170,139.0,1.3,32,1.1,31.0,31.0,186.0,169.0,149.0,124.0,40.0,Single,Y,1st,N,,2111.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,88.0,0.0,"From main system, no cylinder thermostat",Average,Average,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,TRVs and bypass,Average,Average,Low energy lighting in 88% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,no corridor,,,0.0,,natural,"30, Stafford Gardens",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2013-05-17 11:03:14,rental (private),8.0,7.0,10022895092.0,Address Matched +1359859371532015090221241863078507,"4, Chislehurst Close",,,ME15 8TS,7783578378,C,B,71,86,House,Semi-Detached,2015-09-02,E07000110,E14000700,Kent,2015-09-02,rental (social),69,84,192,90.0,2.9,34,1.4,83.0,56.0,495.0,462.0,136.0,84.0,87.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,50.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"4, Chislehurst Close",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2015-09-02 21:24:18,rental (social),,,200003680986.0,Address Matched +750460869702015011618002291559168,"5, Bull Orchard",,,ME16 9EU,3756165968,D,B,68,82,House,Semi-Detached,2015-01-16,E07000110,E14000804,Kent,2015-01-16,marketed sale,61,78,203,104.0,4.4,36,2.3,69.0,69.0,770.0,614.0,144.0,92.0,122.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"5, Bull Orchard",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2015-01-16 18:00:22,owner-occupied,,,200003665516.0,Address Matched +1729587999262019061709060015998961,Flat 15 The Pavilion,"17-21, Pudding Lane",,ME14 1PA,6174905678,D,D,60,60,Flat,Detached,2019-02-21,E07000110,E14000804,Kent,2019-06-17,marketed sale,64,64,255,255.0,2.4,43,2.4,49.0,49.0,548.0,548.0,177.0,177.0,55.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,Electric instantaneous at point of use,Very Poor,Very Poor,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.27 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,"Room heaters, electric",Very Poor,Poor,Programmer and appliance thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"Flat 15 The Pavilion, 17-21, Pudding Lane",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2019-06-17 09:06:00,owner-occupied,8.0,8.0,10094441548.0,Address Matched +570369749022010120709200852838880,"2, Kendal Place",,,ME15 7JL,8540402868,C,C,74,77,Bungalow,Mid-Terrace,2010-12-07,E07000110,E14000700,Kent,2010-12-07,rental (social),71,73,259,238.0,1.9,43,1.8,38.0,24.0,337.0,320.0,76.0,76.0,44.95,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,2.0,2.0,40.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 40% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.36,0.0,N,natural,"2, Kendal Place",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2010-12-07 09:20:08,rental (social),,,10022895773.0,Address Matched +596778219062015021014361714168245,"82, Queens Road",,,ME16 0LG,4169124868,D,B,55,84,House,Mid-Terrace,2015-02-06,E07000110,E14000804,Kent,2015-02-10,assessment for green deal,47,81,317,96.0,5.2,56,1.6,63.0,63.0,886.0,506.0,188.0,75.0,93.0,Unknown,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,90.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"System built, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, mains gas",,,"Roof room(s), ceiling insulated",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 90% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"82, Queens Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2015-02-10 14:36:17,rental (social),,,200003690596.0,Address Matched +1240077501752015101109541793959039,"4, Aston Close",,,ME5 9JW,910130378,C,B,69,83,House,Detached,2015-10-11,E07000110,E14000700,Kent,2015-10-11,marketed sale,65,80,196,105.0,3.7,35,2.0,97.0,72.0,676.0,591.0,112.0,75.0,108.0,dual,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,6.0,6.0,67.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, limited insulation (assumed)",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 67% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"4, Aston Close",Maidstone,Faversham and Mid Kent,CHATHAM,England and Wales: 1976-1982,2015-10-11 09:54:17,unknown,,,200003708536.0,Address Matched +1097736039062014090417304790848494,"18, Moorhen Road",,,ME15 6XJ,9982320278,B,A,83,95,House,Semi-Detached,2014-09-04,E07000110,E14000804,Kent,2014-09-04,new dwelling,86,97,91,4.0,1.3,16,0.1,52.0,52.0,232.0,232.0,88.0,56.0,79.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.10 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"18, Moorhen Road",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2014-09-04 17:30:47,owner-occupied,12.0,12.0,10014315312.0,Address Matched +689908060932011101413352133968598,"56, Gatland Lane",,,ME16 9DB,6853590968,C,C,69,70,Bungalow,Semi-Detached,2011-10-14,E07000110,E14000804,Kent,2011-10-14,rental (social),70,72,220,211.0,2.1,42,2.0,33.0,33.0,337.0,343.0,114.0,92.0,49.28,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,83.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 83% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,2.3,0.0,,natural,"56, Gatland Lane",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2011-10-14 13:35:21,rental (social),6.0,5.0,200003678598.0,Address Matched +619702609302011042207271180692728,"47, Glebe Lane",,,ME16 9BB,8381106868,D,D,55,64,House,Semi-Detached,2011-04-22,E07000110,E14000804,Kent,2011-04-22,marketed sale,51,62,298,229.0,4.7,57,3.6,64.0,42.0,742.0,577.0,107.0,107.0,81.16,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,50.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,2.48,0.0,,natural,"47, Glebe Lane",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2011-04-22 07:27:11,owner-occupied,12.0,6.0,200003677420.0,Address Matched +222277567752009052008210903010751,"73, Grove Road",,,ME15 9AU,7167737568,C,C,72,74,House,End-Terrace,2009-02-03,E07000110,E14000700,Kent,2009-05-20,rental (social),69,69,223,218.0,2.8,37,2.8,54.0,36.0,384.0,387.0,98.0,98.0,75.44,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,4.0,4.0,50.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,0.0,N,natural,"73, Grove Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2009-05-20 08:21:09,rental (social),,,200003709982.0,Address Matched +a115d5c3738c8eb1a219514b8ea7fcbd1083f1ef29d361a93400b9e9136ca45e,12 Toppesfield Park,,,ME14 5BF,10001352916,B,B,81,90,House,Semi-Detached,2021-09-24,E07000110,E14000804,Kent,2021-09-25,rental,80,89,105,45.0,2.1,18,1.0,90.0,90.0,345.0,345.0,94.0,65.0,116.0,Single,Y,,,,,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Suspended, insulated (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.3,0.0,N,natural,12 Toppesfield Park,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007-2011,2021-09-25 02:05:53,Rented (private),11.0,,10014312076.0,Energy Assessor +1105265318352014031119400897940629,"3, Calehill Close",,,ME14 5QQ,6948870278,E,B,43,85,House,Detached,2014-03-11,E07000110,E14000804,Kent,2014-03-11,none of the above,39,85,369,71.0,5.9,71,1.2,100.0,50.0,924.0,436.0,278.0,77.0,84.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,0.0,0.0,"From main system, no cylinder thermostat",Poor,Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"3, Calehill Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2014-03-11 19:40:08,owner-occupied,12.0,0.0,200003671758.0,Address Matched +686775022752013011116554097970695,"34, Hawkes Way",,,ME15 9ZL,6557270968,B,B,85,86,Flat,Detached,2013-01-11,E07000110,E14000700,Kent,2013-01-11,new dwelling,90,90,70,67.0,0.8,13,0.8,52.0,41.0,187.0,188.0,76.0,76.0,60.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.29 W/m?K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"34, Hawkes Way",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2013-01-11 16:55:40,NO DATA!,8.0,6.0,10014312520.0,Address Matched +379166649252009100914320704019761,"3, Portsdown Close",,,ME16 8UH,7134948668,C,C,72,76,House,Mid-Terrace,2009-10-09,E07000110,E14000804,Kent,2009-10-09,marketed sale,69,73,292,257.0,2.0,48,1.7,31.0,22.0,334.0,311.0,74.0,65.0,40.4,dual,Y,NO DATA!,,,2107.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,60.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Poor,Poor,Low energy lighting in 60% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,0.0,N,natural,"3, Portsdown Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2009-10-09 14:32:07,owner-occupied,,,200003675446.0,Address Matched +1022362199022013100915141364598797,9 Crundale,Union Street,,ME14 1TX,9616984178,C,B,76,81,Flat,End-Terrace,2013-10-01,E07000110,E14000804,Kent,2013-10-09,none of the above,78,84,129,95.0,1.9,24,1.4,87.0,49.0,307.0,240.0,113.0,114.0,79.0,Single,Y,1st,N,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,22.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 22% of fixed outlets,Poor,Poor,mains gas (not community),0.0,unheated corridor,1.5,,0.0,,natural,"9 Crundale, Union Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2013-10-09 15:14:13,rental (social),9.0,2.0,200003701468.0,Address Matched +997659329262013082811203403338287,"37, Highland Road",,,ME15 7QQ,8046213178,D,B,64,86,House,Semi-Detached,2013-08-27,E07000110,E14000700,Kent,2013-08-28,none of the above,61,86,209,62.0,3.7,40,1.1,84.0,53.0,571.0,412.0,173.0,72.0,92.0,Single,Y,NODATA!,,,2107.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,40.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 40% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"37, Highland Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2013-08-28 11:20:34,owner-occupied,10.0,4.0,200003680503.0,Address Matched +432243325612020022717595522200175,"20, Grecian Street",,,ME14 2TS,1520522768,D,B,56,87,House,Mid-Terrace,2020-02-27,E07000110,E14000804,Kent,2020-02-27,rental (private),52,86,295,70.0,4.3,52,1.1,79.0,79.0,854.0,380.0,111.0,68.0,84.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,2.0,6.0,4.0,80.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,Portable electric heaters (assumed),,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"20, Grecian Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2020-02-27 17:59:55,rental (private),,,200003703238.0,Address Matched +a1368bdb8b9e647c890075417012097c1a87a370644b66f4eaf7f415d9fec286,Top Flat,25 St. Lukes Road,,ME14 5AS,10001640097,D,C,60,77,Flat,Mid-Terrace,2021-09-06,E07000110,E14000804,Kent,2021-09-23,rental,55,79,334,155.0,3.1,59,1.4,47.0,47.0,481.0,240.0,139.0,94.0,52.0,Unknown,Y,01,Y,,,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,100.0,0.0,From main system,Good,Good,(another dwelling below),,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,no corridor,,2.56,0.0,N,natural,"Top Flat, 25 St. Lukes Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2021-09-23 06:29:53,Rented (private),7.0,,200003705983.0,Energy Assessor +922313832012014101608001798949208,18 Lymington Court,Bicknor Road,,ME15 9PQ,2897287078,D,A,68,93,House,Mid-Terrace,2014-10-15,E07000110,E14000700,Kent,2014-10-16,marketed sale,68,97,202,3.0,2.3,39,0.1,39.0,39.0,394.0,256.0,171.0,74.0,60.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,100.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, partial insulation (assumed)",Average,Average,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"18 Lymington Court, Bicknor Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1976-1982,2014-10-16 08:00:17,owner-occupied,6.0,6.0,200003680139.0,Address Matched +1422723329962016031415403943998506,63 Hubert Walter Drive,,,ME16 0BE,455223478,B,B,85,85,Flat,NO DATA!,2016-03-11,E07000110,E14000804,Kent,2016-03-14,new dwelling,88,88,74,74.0,1.0,13,1.0,55.0,55.0,206.0,206.0,88.0,88.0,74.0,standard tariff,,top floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.20 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.12 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,63 Hubert Walter Drive,Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2016-03-14 15:40:39,unknown,5.0,5.0,10091196060.0,Address Matched +731926236352011121010143799099096,"10, Orchard Close",Orchard Street,,ME15 6NU,631693968,C,C,76,78,Flat,NO DATA!,2011-12-09,E07000110,E14000804,Kent,2011-12-10,rental (private),79,81,136,124.0,1.7,26,1.6,83.0,41.0,276.0,282.0,80.0,80.0,67.2,Single,Y,3rd,Y,,2105.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,0.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Good,Good,"System built, as built, insulated (assumed)",Good,Good,,,,"Flat, insulated (assumed)",Good,Good,"Boiler and underfloor heating, mains gas",Good,Good,Programmer and at least two room thermostats,Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,unheated corridor,8.05,2.31,0.0,,natural,"10, Orchard Close, Orchard Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2011-12-10 10:14:37,rental (private),18.0,0.0,10022896248.0,Address Matched +142297479502018111607053253189848,"14, Fant Lane",,,ME16 8NL,4569071568,D,B,63,84,House,Mid-Terrace,2018-11-14,E07000110,E14000804,Kent,2018-11-16,rental (private),58,83,281,95.0,3.1,50,1.1,46.0,46.0,491.0,390.0,143.0,64.0,62.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,1.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"14, Fant Lane",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2018-11-16 07:05:32,rental (private),,,200003674343.0,Address Matched +863148892232012120412010426078292,"14, Providence Park",Penenden Heath,,ME14 2EZ,9206263078,B,B,82,82,Flat,Mid-Terrace,2012-12-04,E07000110,E14000804,Kent,2012-12-04,new dwelling,88,88,95,95.0,0.8,18,0.8,29.0,29.0,184.0,184.0,64.0,64.0,46.0,standard tariff,,ground floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.22 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.07 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"14, Providence Park, Penenden Heath",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2012-12-04 12:01:04,NO DATA!,15.0,15.0,10014313048.0,Address Matched +1318741294612015050716062198949639,Flat B,46 College Road,,ME15 6YF,6921485378,C,C,76,76,Flat,NO DATA!,2014-12-11,E07000110,E14000804,Kent,2015-05-07,new dwelling,79,79,163,163.0,1.4,29,1.4,42.0,42.0,281.0,281.0,75.0,75.0,48.0,standard tariff,,ground floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.21 W/m-¦K,Good,Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.28 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Flat B, 46 College Road",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2015-05-07 16:06:21,unknown,8.0,6.0,10091194456.0,Address Matched +689737499002011101619461995099648,Fairbourne Court,Fairbourne Lane,Harrietsham,ME17 1LQ,4090790968,F,E,26,44,House,Detached,2011-10-14,E07000110,E14000700,Kent,2011-10-16,marketed sale,19,34,359,251.0,30.0,92,21.0,181.0,99.0,4738.0,3390.0,329.0,182.0,237.73,Single,N,NODATA!,,,2106.0,0.0,not defined,Normal,0.0,10.0,10.0,17.0,0.0,"From main system, no cylinderstat",Poor,Very Poor,"Suspended, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation",Very Poor,Very Poor,"Boiler and radiators, oil",Average,Average,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 17% of fixed outlets,Poor,Poor,oil (not community),0.0,NO DATA!,,2.63,0.0,,natural,"Fairbourne Court, Fairbourne Lane, Harrietsham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2011-10-16 19:46:19,owner-occupied,30.0,5.0,200003702509.0,Address Matched +172028690112008102311440601289058,Flat 7 Scotney Gardens,St. Peters Street,,ME16 0GR,809013568,C,B,80,81,Flat,Detached,2008-10-23,E07000110,E14000804,Kent,2008-10-23,rental (private),77,78,246,238.0,1.5,37,1.4,38.0,21.0,109.0,111.0,92.0,92.0,39.25,dual,N,2nd,N,5.0,2402.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,17.0,0.0,"Electric immersion, off-peak",Average,Poor,(other premises below),,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,(another dwelling above),,,Electric storage heaters,Poor,Poor,Automatic charge control,Average,Average,Low energy lighting in 17% of fixed outlets,Poor,Poor,electricity - this is for backwards compatibility only and should not be used,0.0,unheated corridor,4.25,2.29,0.0,N,"mechanical, extract only","Flat 7 Scotney Gardens, St. Peters Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2008-10-23 11:44:06,rental (private),,,10022893375.0,Address Matched +1250983132432014121908425673978790,"Flat 2, Justcroft House",High Street,Staplehurst,TN12 0AH,3063701378,D,D,57,57,Flat,NO DATA!,2014-12-17,E07000110,E14000804,Kent,2014-12-19,new dwelling,61,61,293,293.0,2.2,49,2.2,38.0,38.0,371.0,371.0,204.0,204.0,44.0,standard tariff,,ground floor,,,,,NO DATA!,NO DATA!,,,,,0.0,"Electric immersion, standard tariff",Very Poor,Poor,Average thermal transmittance 0.18 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.33 W/m-¦K,Good,Good,,,,(other premises above),,,"Room heaters, electric",Very Poor,Poor,Programmer and room thermostats,Good,Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"Flat 2, Justcroft House, High Street, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,NO DATA!,2014-12-19 08:42:56,unknown,20.0,15.0,10091193879.0,Address Matched +797440519962012061323070479828002,"40a, Wallis Avenue",,,ME15 9LB,784109968,E,D,51,65,Maisonette,Semi-Detached,2012-06-12,E07000110,E14000700,Kent,2012-06-13,marketed sale,35,42,583,498.0,4.5,103,3.8,28.0,28.0,477.0,369.0,186.0,95.0,43.0,Unknown,N,1st,Y,,2401.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,100.0,0.0,"Electric immersion, off-peak",Poor,Very Poor,(other premises below),,,Fully double glazed,Average,Average,"System built, as built, no insulation (assumed)",Very Poor,Very Poor,Portable electric heaters (assumed),,,"Pitched, 100 mm loft insulation",Average,Average,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,no corridor,,,0.0,,natural,"40a, Wallis Avenue",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2012-06-13 23:07:04,owner-occupied,5.0,5.0,200003683167.0,Address Matched +707592399262011102416130232748409,"9, Rayleigh Close",Allington,,ME16 0UP,331932968,D,C,68,72,House,Detached,2011-10-24,E07000110,E14000804,Kent,2011-10-24,marketed sale,65,70,180,155.0,4.6,35,4.0,128.0,64.0,690.0,647.0,135.0,117.0,134.59,Unknown,Y,NODATA!,,,2106.0,95.0,double glazing installed during or after 2002,Normal,0.0,7.0,7.0,0.0,0.0,From main system,Good,Good,"Suspended, limited insulation (assumed)",,,Mostly double glazing,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, mains gas",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,2.31,0.0,,natural,"9, Rayleigh Close, Allington",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2011-10-24 16:13:02,owner-occupied,16.0,0.0,200003659757.0,Address Matched +162994210062008100917522342718338,Flat 63 Lee Heights,Bambridge Court,,ME14 2LD,3471122568,C,C,76,80,Flat,Enclosed Mid-Terrace,2008-10-09,E07000110,E14000804,Kent,2008-10-09,marketed sale,73,73,216,220.0,2.3,33,2.4,59.0,38.0,159.0,159.0,138.0,115.0,71.24,dual,N,Ground,N,5.0,2603.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,45.0,0.0,"Electric immersion, off-peak",Very Poor,Poor,"Suspended, insulated (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,(another dwelling above),,,"Room heaters, electric",Average,Poor,Programmer and appliance thermostats,Good,Good,Low energy lighting in 45% of fixed outlets,Good,Good,electricity - this is for backwards compatibility only and should not be used,0.0,unheated corridor,2.12,2.4,0.0,N,natural,"Flat 63 Lee Heights, Bambridge Court",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2008-10-09 17:52:23,owner-occupied,,,10022893034.0,Address Matched +1377549099262015102312165339578395,1 Samuel Court,Mote Park,,ME15 8YB,9304999378,C,C,76,76,Flat,Semi-Detached,2015-10-23,E07000110,E14000700,Kent,2015-10-23,new dwelling,85,85,82,82.0,1.4,17,1.4,56.0,56.0,294.0,294.0,199.0,199.0,81.0,standard tariff,,ground floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Poor,Good,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.23 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, LPG",Poor,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,LPG - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"1 Samuel Court, Mote Park",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2015-10-23 12:16:53,unknown,8.0,8.0,10091195089.0,Address Matched +1260975874412015012315224197250839,1 Hop Villas,Wilden Park Road,Staplehurst,TN12 0HP,8916471378,F,B,35,83,House,Semi-Detached,2015-01-23,E07000110,E14000804,Kent,2015-01-23,none of the above,30,70,298,48.0,9.2,78,3.0,121.0,74.0,1498.0,997.0,226.0,102.0,118.0,dual,N,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,4.0,4.0,38.0,1.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, oil",Average,Average,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 38% of fixed outlets,Average,Average,oil (not community),0.0,NO DATA!,,,,N,natural,"1 Hop Villas, Wilden Park Road, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1900-1929,2015-01-23 15:22:41,rental (private),,,10000071691.0,Address Matched +917131669962013042215020507118207,J W Building Designs,43 Orchard Glade,Headcorn,TN27 9SR,54647078,C,B,69,87,Bungalow,Detached,2013-04-19,E07000110,E14000700,Kent,2013-04-22,marketed sale,67,86,167,58.0,3.7,32,1.4,97.0,64.0,614.0,467.0,106.0,93.0,116.0,dual,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,6.0,6.0,50.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"J W Building Designs, 43 Orchard Glade, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,England and Wales: 1950-1966,2013-04-22 15:02:05,owner-occupied,16.0,8.0,200003699257.0,Address Matched +492077535032010052807423770268306,"40, Chantry Road",Marden,,TN12 9HU,3670346768,D,C,68,72,House,Semi-Detached,2010-05-27,E07000110,E14000804,Kent,2010-05-28,marketed sale,68,70,225,206.0,3.1,37,2.8,87.0,43.0,492.0,481.0,107.0,101.0,83.96,Single,Y,NO DATA!,,,2107.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,4.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,Portable electric heaters,,,"Pitched, insulated at rafters",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.3,0.0,N,natural,"40, Chantry Road, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1950-1966,2010-05-28 07:42:37,owner-occupied,,,200003708554.0,Address Matched +1006476560612013091309400898970518,"37, Anglesey Avenue",,,ME15 9SU,5891083178,E,B,50,83,House,Semi-Detached,2013-09-12,E07000110,E14000804,Kent,2013-09-13,none of the above,52,87,293,80.0,5.0,48,1.2,78.0,57.0,1019.0,515.0,161.0,78.0,103.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,64.0,1.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, wood logs",,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 64% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"37, Anglesey Avenue",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2013-09-13 09:40:08,owner-occupied,14.0,9.0,200003678523.0,Address Matched +190605510062009051913531695198498,"114, Wrangleden Road",,,ME15 9LD,9947115568,C,C,77,79,Flat,Semi-Detached,2008-12-01,E07000110,E14000700,Kent,2009-05-19,rental (social),75,76,200,190.0,1.9,33,1.9,57.0,28.0,280.0,285.0,75.0,75.0,58.74,Single,Y,Ground,N,2.0,2106.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,0.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.26,0.0,N,natural,"114, Wrangleden Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2009-05-19 13:53:16,rental (social),,,200003682433.0,Address Matched +729476979342011121121254892399098,15 Midhurst Court,Mote Road,,ME15 6EH,9385773968,C,C,73,75,Flat,Semi-Detached,2011-12-11,E07000110,E14000804,Kent,2011-12-11,rental (social),76,79,191,164.0,1.6,37,1.4,31.0,31.0,243.0,239.0,128.0,93.0,44.05,Unknown,Y,2nd,N,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,80.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"System built, as built, no insulation (assumed)",Poor,Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,5.25,2.28,0.0,,natural,"15 Midhurst Court, Mote Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2011-12-11 21:25:48,rental (social),5.0,4.0,200003693321.0,Address Matched +214716120222009013010431677868461,"118, Reculver Walk",,,ME15 8SZ,6758207568,C,C,74,76,Bungalow,End-Terrace,2009-01-26,E07000110,E14000700,Kent,2009-01-30,rental (social),71,73,256,236.0,2.0,43,1.9,30.0,23.0,316.0,298.0,70.0,70.0,47.95,Single,Y,NO DATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,66.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 66% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.32,0.0,N,natural,"118, Reculver Walk",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2009-01-30 10:43:16,rental (social),,,200003725800.0,Address Matched +44077359302012101022025443329608,Hazel Copse,Goudhurst Road,Marden,TN12 9NG,1393253468,D,C,56,80,Bungalow,Detached,2012-10-10,E07000110,E14000804,Kent,2012-10-10,marketed sale,50,77,211,91.0,7.3,45,3.1,131.0,71.0,1200.0,824.0,238.0,111.0,162.0,Single,N,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,6.0,6.0,14.0,1.0,From main system,Average,Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,"Room heaters, wood logs",,,"Flat, insulated",Good,Good,"Boiler and radiators, oil",Average,Average,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 14% of fixed outlets,Poor,Poor,oil (not community),0.0,NO DATA!,,,0.0,,natural,"Hazel Copse, Goudhurst Road, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1950-1966,2012-10-10 22:02:54,owner-occupied,22.0,3.0,200003667981.0,Address Matched +239382439222019103102004098618761,"579, Loose Road",,,ME15 9UH,6912388568,C,B,74,91,House,Mid-Terrace,2019-10-29,E07000110,E14000804,Kent,2019-10-31,rental (private),75,92,176,43.0,1.9,31,0.5,61.0,61.0,328.0,277.0,94.0,69.0,63.0,Unknown,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,78.0,0.0,From main system,Very Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 78% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"579, Loose Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2019-10-31 02:00:40,rental (private),,,200003675410.0,Address Matched +a1ba1ff22a7e468032ca87de291eaa75e0abb7ea9d01d13233b79c9c77828bf8,"Flat 22 Adeline Heights, Rosalind Drive",,,ME14 2FP,10001694508,B,B,86,86,Flat,Mid-Terrace,2021-07-06,E07000110,E14000804,Kent,2021-07-06,new dwelling,90,90,65,65.0,0.9,11,0.9,67.0,67.0,154.0,154.0,71.0,71.0,76.0,standard tariff,,2,N,,,100.0,,,,,,100.0,0.0,From main system,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.50 W/m-¦K,Good,Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.5,,,,"Flat 22 Adeline Heights, Rosalind Drive",Maidstone,Maidstone and The Weald,Maidstone,2018,2021-07-06 09:24:30,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,10.0,,10094441285.0,Address Matched +1601526889642018011808204550589368,Cedar Lodge,Spenny Lane,Marden,TN12 9PR,5649685578,E,A,40,104,Bungalow,Detached,2018-01-16,E07000110,E14000804,Kent,2018-01-18,rental (private),26,76,608,132.0,7.1,103,1.5,75.0,54.0,996.0,594.0,286.0,91.0,69.0,dual,N,NODATA!,,,2401.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,63.0,0.0,"Electric immersion, off-peak",Very Poor,Poor,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Timber frame, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,"Pitched, 100 mm loft insulation",Average,Average,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 63% of fixed outlets,Good,Good,electricity (not community),0.0,NO DATA!,,,,N,natural,"Cedar Lodge, Spenny Lane, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1983-1990,2018-01-18 08:20:45,rental (private),,,200003726532.0,Address Matched +373050193152009093018325401710067,"1, Victoria Court",Victoria Street,,ME16 8JZ,710318668,D,C,64,71,Flat,Detached,2009-09-30,E07000110,E14000804,Kent,2009-09-30,rental (private),55,60,473,426.0,2.8,71,2.5,31.0,22.0,267.0,229.0,136.0,100.0,39.15,dual,N,Ground,N,2.0,2401.0,0.0,INVALID!,Normal,0.0,2.0,1.0,57.0,0.0,"Electric immersion, off-peak",Poor,Poor,"Solid, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Cavity wall, as built, insulated (assumed)",Good,Good,Portable electric heaters,,,(another dwelling above),,,Electric storage heaters,Poor,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 57% of fixed outlets,Good,Good,electricity - this is for backwards compatibility only and should not be used,0.0,heated corridor,,2.37,0.0,N,natural,"1, Victoria Court, Victoria Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1991-1995,2009-09-30 18:32:54,rental (private),,,200003668688.0,Address Matched +a1b99c34711f04947f4f4682da7bf0c95dccf0e933008c8149005a8b2877c5bc,6 SANDLEWOOD COURT,,,ME16 0ZG,10001567783,C,C,77,77,Flat,Mid-Terrace,2021-07-20,E07000110,E14000804,Kent,2021-07-20,rental,79,79,158,158.0,1.5,28,1.5,50.0,50.0,236.0,236.0,112.0,112.0,53.0,Unknown,Y,01,N,,,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,heated corridor,,2.3,0.0,N,natural,6 SANDLEWOOD COURT,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007-2011,2021-07-20 20:28:29,Rented (private),8.0,,10014306169.0,Energy Assessor +1681655819262018112615132141968378,"9, Little Knoxes Close",,,ME16 9FD,7449161678,B,A,83,96,House,End-Terrace,2018-11-26,E07000110,E14000804,Kent,2018-11-26,new dwelling,86,98,89,-3.0,1.2,16,0.0,58.0,58.0,192.0,192.0,81.0,51.0,75.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.16 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"9, Little Knoxes Close",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2018-11-26 15:13:21,unknown,20.0,20.0,10093303524.0,Address Matched +464477768252010040116262094000977,"527, Tonbridge Road",,,ME16 9LH,9747844768,D,D,59,63,Bungalow,Detached,2010-04-01,E07000110,E14000804,Kent,2010-04-01,marketed sale,53,56,347,325.0,4.0,58,3.8,71.0,35.0,626.0,609.0,88.0,88.0,69.28,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,0.0,0.0,From main system,Very Good,Very Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.51,0.0,N,natural,"527, Tonbridge Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2010-04-01 16:26:20,owner-occupied,,,200003681728.0,Address Matched +1182574829802014073012003127647008,Flat 9 Woodville House,"74, York Road",,ME15 7QY,2896126278,B,B,82,82,Flat,End-Terrace,2014-07-30,E07000110,E14000700,Kent,2014-07-30,new dwelling,86,86,99,99.0,1.1,17,1.1,45.0,45.0,226.0,226.0,76.0,76.0,64.0,standard tariff,,top floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.21 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.10 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Flat 9 Woodville House, 74, York Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2014-07-30 12:00:31,unknown,12.0,12.0,10014315453.0,Address Matched +1308000299652015040912445890050131,"24, Richmond Way",,,ME15 6BL,1133905378,E,B,54,88,House,Semi-Detached,2015-04-03,E07000110,E14000804,Kent,2015-04-09,marketed sale,48,87,368,70.0,4.4,65,0.9,81.0,45.0,740.0,380.0,172.0,69.0,68.0,Single,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,1.0,4.0,4.0,20.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 20% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"24, Richmond Way",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2015-04-09 12:44:58,owner-occupied,,,200003676216.0,Address Matched +1618662809742018083122401059787198,"17, Charles Street",,,ME16 8ET,9756907578,C,B,71,89,House,Mid-Terrace,2018-08-31,E07000110,E14000804,Kent,2018-08-31,marketed sale,68,88,185,53.0,2.8,33,0.8,64.0,64.0,477.0,333.0,101.0,68.0,86.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,91.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 91% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"17, Charles Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2018-08-31 22:40:10,owner-occupied,,,200003667812.0,Address Matched +738826049922012011215070534698542,"667, Loose Road",Loose,,ME15 9UX,4339464968,D,D,58,64,House,End-Terrace,2012-01-11,E07000110,E14000804,Kent,2012-01-12,rental (social),54,62,287,239.0,4.1,55,3.4,62.0,42.0,677.0,593.0,99.0,81.0,74.51,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,4.0,4.0,50.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,1.8,0.0,,natural,"667, Loose Road, Loose",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2012-01-12 15:07:05,rental (social),8.0,4.0,200003724643.0,Address Matched +1770165369022019120414402028848821,"7, Hegarty Way",Staplehurst,,TN12 0FY,2237608678,B,A,85,94,House,Semi-Detached,2019-12-04,E07000110,E14000804,Kent,2019-12-04,new dwelling,86,96,79,14.0,1.5,14,0.3,79.0,79.0,242.0,242.0,77.0,46.0,106.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.14 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.14 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"7, Hegarty Way, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,NO DATA!,2019-12-04 14:40:20,unknown,13.0,13.0,10094442007.0,Address Matched +795571147452012053013392798720496,"169a, Tonbridge Road",,,ME16 8NA,4661788968,G,E,1,39,Flat,Detached,2012-05-30,E07000110,E14000804,Kent,2012-05-30,rental (private),13,45,728,337.0,11.0,129,5.2,49.0,50.0,2450.0,975.0,250.0,247.0,87.0,Single,N,1st,Y,,2401.0,0.0,not defined,Normal,0.0,5.0,5.0,100.0,0.0,"Electric immersion, standard tariff",Very Poor,Very Poor,(other premises below),,,Single glazed,Very Poor,Very Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, electric",,,"Pitched, 250 mm loft insulation",Good,Good,Electric storage heaters,Very Poor,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,no corridor,,,0.0,,natural,"169a, Tonbridge Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2012-05-30 13:39:27,rental (private),10.0,10.0,200003729470.0,Address Matched +1158736924152014061710483095940825,"20, Gentian Close",Weavering,,ME14 5UE,8573454278,C,C,70,79,Flat,Enclosed End-Terrace,2014-06-17,E07000110,E14000700,Kent,2014-06-17,marketed sale,72,83,186,119.0,1.9,36,1.2,69.0,37.0,330.0,229.0,121.0,107.0,55.0,Single,Y,Ground,N,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,14.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, partial insulation (assumed)",Average,Average,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 14% of fixed outlets,Poor,Poor,mains gas (not community),0.0,heated corridor,,,0.0,,natural,"20, Gentian Close, Weavering",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1976-1982,2014-06-17 10:48:30,owner-occupied,7.0,1.0,200003689188.0,Address Matched +1770514409402019120507515662810448,"42, Birling Avenue",Bearsted,,ME14 4LN,3487708678,D,B,63,83,House,Semi-Detached,2019-12-04,E07000110,E14000700,Kent,2019-12-05,marketed sale,56,81,250,99.0,4.4,44,1.8,97.0,71.0,623.0,477.0,217.0,93.0,99.0,Unknown,Y,NODATA!,,,2504.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,64.0,0.0,"From main system, no cylinder thermostat",Poor,Poor,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, 75 mm loft insulation",Average,Average,"Warm air, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 64% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"42, Birling Avenue, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2019-12-05 07:51:56,owner-occupied,,,200003692387.0,Address Matched +a1f8550edc4d520213bc70584a8318ceedbe372edc3d6e0b1e87d9df50fd7397,10 CLOVER TERRACE,NORTHUMBERLAND ROAD,,ME15 7SY,10001345061,E,B,54,83,House,Mid-Terrace,2021-06-28,E07000110,E14000700,Kent,2021-07-01,ECO assessment,51,83,333,99.0,4.0,58,1.2,117.0,58.0,779.0,469.0,96.0,65.0,69.0,Single,Y,,,,,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,0.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,"Pitched, insulated (assumed)",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,,,2.77,0.0,N,natural,"10 CLOVER TERRACE, NORTHUMBERLAND ROAD",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2021-07-01 10:48:44,Rented (social),8.0,,200003714090.0,Energy Assessor +1370967239062015100415533339448585,"35, Badger Road",,,ME5 8TY,8342359378,C,B,70,88,House,Mid-Terrace,2015-10-04,E07000110,E14000700,Kent,2015-10-04,non marketed sale,68,87,220,71.0,2.4,39,0.8,66.0,42.0,433.0,364.0,101.0,72.0,62.0,Single,Y,NODATA!,,,2111.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,43.0,0.0,From main system,Very Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, partial insulation (assumed)",Average,Average,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,TRVs and bypass,Average,Average,Low energy lighting in 43% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"35, Badger Road",Maidstone,Faversham and Mid Kent,CHATHAM,England and Wales: 1976-1982,2015-10-04 15:53:33,owner-occupied,,,200003675190.0,Address Matched +1126491729142014051414033821249348,"42, Sovereigns Way",Marden,,TN12 9QF,9197422278,D,B,65,87,House,End-Terrace,2014-05-14,E07000110,E14000804,Kent,2014-05-14,assessment for green deal,63,88,213,56.0,3.1,41,0.9,72.0,52.0,538.0,373.0,143.0,82.0,76.0,dual,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,2.0,4.0,4.0,60.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 75 mm loft insulation",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 60% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"42, Sovereigns Way, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1976-1982,2014-05-14 14:03:38,owner-occupied,10.0,6.0,200003708878.0,Address Matched +16684840112013072108552498970847,19 Wallis Place,Hart Street,,ME16 8FB,8743088468,B,B,81,82,Flat,Enclosed Mid-Terrace,2013-07-19,E07000110,E14000804,Kent,2013-07-21,rental (private),87,88,95,89.0,0.8,18,0.8,48.0,32.0,171.0,172.0,73.0,73.0,46.0,Single,Y,2nd,N,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,50.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Good,Good,"System built, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,unheated corridor,6.93,,0.0,,natural,"19 Wallis Place, Hart Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2013-07-21 08:55:24,rental (private),6.0,3.0,10022900618.0,Address Matched +470305564032010041506354656968709,"121, Melville Road",,,ME15 7UT,6916784768,F,D,27,57,Flat,End-Terrace,2010-04-14,E07000110,E14000804,Kent,2010-04-15,rental (private),47,53,874,762.0,2.6,131,2.6,10.0,11.0,593.0,271.0,114.0,128.0,20.05,Single,N,Ground,Y,1.0,2603.0,100.0,"double glazing, unknown install date",Less Than Typical,0.0,1.0,1.0,100.0,0.0,Electric instantaneous at point of use,Very Poor,Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Flat, limited insulation",Average,Average,"Room heaters, electric",Very Poor,Poor,Programmer and appliance thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.73,0.0,N,natural,"121, Melville Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2010-04-15 06:35:46,rental (private),,,200003671238.0,Address Matched +496009005112010060919001997000073,12 Longwood,Boxley Road,Walderslade,ME5 9JG,328576768,D,D,55,63,House,Detached,2010-06-09,E07000110,E14000700,Kent,2010-06-09,marketed sale,49,57,265,220.0,14.0,44,12.0,356.0,185.0,1936.0,1694.0,239.0,205.0,322.11,Single,Y,NO DATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,10.0,10.0,7.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, mains gas",,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 7% of fixed outlets,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.55,0.0,N,natural,"12 Longwood, Boxley Road, Walderslade",Maidstone,Faversham and Mid Kent,CHATHAM,England and Wales: 1991-1995,2010-06-09 19:00:19,owner-occupied,,,200003724621.0,Address Matched +1469251249852016081509540294960148,"10, Madginford Close",Bearsted,,ME15 8LF,1848946478,D,B,57,83,Bungalow,Detached,2016-08-15,E07000110,E14000700,Kent,2016-08-15,marketed sale,52,82,302,97.0,4.7,53,1.5,58.0,58.0,899.0,522.0,151.0,76.0,88.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,2.4,,N,natural,"10, Madginford Close, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2016-08-15 09:54:02,owner-occupied,,,200003690631.0,Address Matched +164521230062008101008235102518958,Flat 4,"26, Bower Place",,ME16 8BH,5047322568,F,F,22,22,Flat,Detached,2008-10-09,E07000110,E14000804,Kent,2008-10-10,marketed sale,44,44,778,778.0,3.2,118,3.2,24.0,24.0,656.0,656.0,40.0,40.0,26.8,Single,Y,2nd,Y,3.0,2602.0,100.0,double glazing installed during or after 2002,Normal,0.0,1.0,1.0,0.0,0.0,Gas instantaneous at point of use,Good,Good,"To external air, uninsulated (assumed)",,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, electric",Very Poor,Poor,Appliance thermostats,Good,Good,No low energy lighting,Very Poor,Very Poor,electricity - this is for backwards compatibility only and should not be used,0.0,unheated corridor,1.5,2.0,0.0,N,natural,"Flat 4, 26, Bower Place",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2008-10-10 08:23:51,owner-occupied,,,200003668825.0,Address Matched +1159516359542014061808553826449968,"27, Hereford Road",,,ME15 7NE,2527954278,D,B,59,87,House,Semi-Detached,2014-06-16,E07000110,E14000700,Kent,2014-06-18,none of the above,55,87,238,58.0,4.6,46,1.2,116.0,58.0,820.0,432.0,112.0,71.0,101.0,Single,Y,NODATA!,,,2102.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"27, Hereford Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2014-06-18 08:55:38,owner-occupied,14.0,0.0,200003712421.0,Address Matched +1667226178012018092911220595280564,"4, Hydes Orchard",Headcorn,,TN27 9UE,5482850678,C,B,70,81,House,Detached,2018-09-27,E07000110,E14000700,Kent,2018-09-29,marketed sale,69,80,168,102.0,4.3,27,2.5,141.0,102.0,772.0,700.0,137.0,85.0,158.0,dual,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,1.0,8.0,8.0,61.0,0.0,From main system,Good,Good,"Suspended, limited insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, wood logs",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 61% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"4, Hydes Orchard, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,England and Wales: 1996-2002,2018-09-29 11:22:05,owner-occupied,,,200003700976.0,Address Matched +494866352722020063016334376208250,"1, Cudham Close",,,ME14 5QG,5796566768,C,B,70,85,House,End-Terrace,2020-06-30,E07000110,E14000804,Kent,2020-06-30,marketed sale,66,82,188,89.0,3.8,33,1.8,82.0,82.0,673.0,528.0,89.0,58.0,115.0,Unknown,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, partial insulation (assumed)",Average,Average,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"1, Cudham Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1976-1982,2020-06-30 16:33:43,owner-occupied,,,200003671512.0,Address Matched +1098091986912014091617314892940422,"38, Fieldfare Drive",,,ME15 6XL,4241620278,B,A,82,95,House,Semi-Detached,2014-09-16,E07000110,E14000804,Kent,2014-09-16,new dwelling,85,97,98,7.0,1.4,17,0.1,51.0,51.0,242.0,244.0,101.0,53.0,80.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.10 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"38, Fieldfare Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2014-09-16 17:31:48,owner-occupied,11.0,11.0,10014315292.0,Address Matched +278457648112009050515185604010269,Flat 216 Scotney Gardens,St. Peters Street,,ME16 0GW,2981841668,C,C,74,77,Flat,Detached,2009-05-05,E07000110,E14000804,Kent,2009-05-05,rental (private),69,71,268,257.0,2.4,40,2.3,57.0,34.0,192.0,180.0,121.0,121.0,58.9,dual,N,1st,N,4.0,2402.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,30.0,0.0,"Electric immersion, off-peak",Poor,Poor,"To unheated space, limited insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,Portable electric heaters,,,(another dwelling above),,,Electric storage heaters,Poor,Very Poor,Automatic charge control,Average,Average,Low energy lighting in 30% of fixed outlets,Average,Average,electricity - this is for backwards compatibility only and should not be used,0.0,unheated corridor,6.1,2.2,0.0,N,natural,"Flat 216 Scotney Gardens, St. Peters Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2009-05-05 15:18:56,rental (private),,,10022893583.0,Address Matched +1091203479542014021708350017949858,"16, Linden Road",Coxheath,,ME17 4QS,1503879178,C,B,71,89,Bungalow,Semi-Detached,2014-02-15,E07000110,E14000804,Kent,2014-02-17,marketed sale,73,91,165,40.0,2.2,31,0.6,76.0,47.0,420.0,368.0,74.0,50.0,69.0,dual,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,38.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 38% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"16, Linden Road, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2014-02-17 08:35:00,owner-occupied,8.0,3.0,200003714792.0,Address Matched +1387594873352015112000003297959447,"14, Uptons",Headcorn,,TN27 9QF,4740370478,C,B,71,84,House,Semi-Detached,2015-11-16,E07000110,E14000700,Kent,2015-11-20,marketed sale,69,82,181,88.0,2.6,32,1.3,98.0,56.0,451.0,458.0,101.0,68.0,80.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,25.0,0.0,From main system,Good,Good,"Solid, limited insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 25% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"14, Uptons, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,England and Wales: 1996-2002,2015-11-20 00:00:32,owner-occupied,,,200003699958.0,Address Matched +1437044929262016042513422024558526,"5, Reader Drive",Marden,,TN12 9FD,2206224478,B,B,86,87,House,NO DATA!,2016-04-25,E07000110,E14000804,Kent,2016-04-25,new dwelling,85,87,78,66.0,1.8,14,1.5,73.0,73.0,407.0,408.0,109.0,59.0,128.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.19 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.28 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.15 W/m-¦K,Good,Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"5, Reader Drive, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,NO DATA!,2016-04-25 13:42:20,unknown,1.0,1.0,10014315688.0,Address Matched +222658920842009012921041156712818,"39, Cross Keys",Bearsted,,ME14 4HU,4822127568,C,C,69,70,House,Semi-Detached,2009-01-29,E07000110,E14000700,Kent,2009-01-29,rental (social),64,65,237,234.0,3.6,40,3.6,55.0,44.0,480.0,482.0,123.0,123.0,92.0,Single,Y,NO DATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,75.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.44,0.0,N,natural,"39, Cross Keys, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2009-01-29 21:04:11,rental (social),,,200003694932.0,Address Matched +818064423152012072511101194220706,Flat 29 Ragstone Lodge,Peel Street,,ME14 2WB,7689340078,B,B,81,81,Flat,Enclosed Mid-Terrace,2012-07-21,E07000110,E14000804,Kent,2012-07-25,rental (private),86,86,95,95.0,1.1,18,1.1,38.0,38.0,209.0,209.0,76.0,76.0,59.0,Single,Y,3rd,Y,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,2.0,100.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,Portable electric heaters (assumed),,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,heated corridor,,,0.0,,natural,"Flat 29 Ragstone Lodge, Peel Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2012-07-25 11:10:11,rental (private),7.0,7.0,10022896758.0,Address Matched +1191203505532015052608395977278405,"15, Pope Drive",Staplehurst,,TN12 0TL,517486278,D,B,60,81,House,Semi-Detached,2015-05-23,E07000110,E14000804,Kent,2015-05-26,rental (private),55,78,325,136.0,3.2,57,1.4,54.0,38.0,612.0,491.0,89.0,60.0,56.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,57.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 57% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"15, Pope Drive, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1950-1966,2015-05-26 08:39:59,rental (private),,,200003678883.0,Address Matched +a244f257515ecc934a6d05ceb0447d3a64d21758a5fdfe836bcd401bd902af54,29 Wallis Place,Hart Street,,ME16 8FB,1105088468,B,B,82,82,Flat,Mid-Terrace,2021-08-13,E07000110,E14000804,Kent,2021-08-13,marketed sale,85,85,99,99.0,1.1,17,1.1,62.0,62.0,190.0,190.0,87.0,87.0,65.0,Single,Y,03,N,,,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,(another dwelling below),,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,5.0,2.4,0.0,N,natural,"29 Wallis Place, Hart Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2021-08-13 14:04:18,Owner-occupied,7.0,,10022900628.0,Energy Assessor +484471319962010051312401485178010,"9, Canning Street",,,ME14 2RU,1823195768,E,D,53,61,House,Semi-Detached,2010-05-13,E07000110,E14000804,Kent,2010-05-13,rental (private),47,54,369,311.0,5.4,62,4.6,93.0,46.0,771.0,687.0,151.0,130.0,87.36,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,5.0,5.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.34,0.0,N,natural,"9, Canning Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2010-05-13 12:40:14,rental (private),,,200003702326.0,Address Matched +1165904236432014063020105739778708,"60, Holland Road",,,ME14 1UT,3809705278,E,B,54,84,House,Mid-Terrace,2014-06-30,E07000110,E14000804,Kent,2014-06-30,none of the above,49,83,280,78.0,4.8,54,1.4,58.0,58.0,837.0,458.0,176.0,86.0,89.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,4.0,90.0,1.0,From main system,Average,Average,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, mains gas",,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 90% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"60, Holland Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2014-06-30 20:10:57,rental (private),10.0,9.0,200003699057.0,Address Matched +744414416752012012920560691220498,"52, Halstead Walk",,,ME16 0PW,4879615968,E,D,51,66,House,Mid-Terrace,2012-01-29,E07000110,E14000804,Kent,2012-01-29,marketed sale,34,43,556,452.0,5.7,98,4.6,36.0,36.0,639.0,455.0,183.0,106.0,57.9,dual,N,NODATA!,,,2402.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,100.0,0.0,"Electric immersion, off-peak",Poor,Very Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,Portable electric heaters (assumed),,,"Pitched, limited insulation (assumed)",Very Poor,Very Poor,Electric storage heaters,Average,Very Poor,Automatic charge control,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,NO DATA!,,2.4,0.0,,natural,"52, Halstead Walk",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2012-01-29 20:56:06,owner-occupied,4.0,4.0,200003723314.0,Address Matched +919631098732013080810001200078208,4 Horwood Way,Harrietsham,,ME17 1FH,9870267078,B,B,86,86,House,Detached,2013-08-08,E07000110,E14000700,Kent,2013-08-08,new dwelling,89,89,64,64.0,1.0,12,1.0,47.0,47.0,265.0,265.0,88.0,88.0,81.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.17 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"4 Horwood Way, Harrietsham",Maidstone,Faversham and Mid Kent,KENT,NO DATA!,2013-08-08 10:00:12,NO DATA!,12.0,12.0,10014314910.0,Address Matched +776827529922012041816515597888062,"32, The Tail Race",,,ME15 6YL,6906257968,C,B,71,87,House,Semi-Detached,2012-04-18,E07000110,E14000804,Kent,2012-04-18,marketed sale,72,89,168,53.0,2.2,32,0.7,68.0,39.0,343.0,320.0,106.0,71.0,69.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,29.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 29% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"32, The Tail Race",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1991-1995,2012-04-18 16:51:55,owner-occupied,7.0,2.0,200003665915.0,Address Matched +1580049034832018040917224538078502,The Squirrels,Hubbards Lane,Boughton Monchelsea,ME17 4HY,3288534578,A,A,93,94,Bungalow,Detached,2018-04-09,E07000110,E14000804,Kent,2018-04-09,new dwelling,93,95,30,18.0,0.5,6,0.3,59.0,59.0,242.0,242.0,91.0,59.0,86.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.12 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.21 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"The Squirrels, Hubbards Lane, Boughton Monchelsea",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2018-04-09 17:22:45,owner-occupied,10.0,10.0,10093304834.0,Address Matched +1250178199402014122317045935042378,Cowstead Farmhouse,Cowstead Road,Stockbury,ME9 7UA,5430990378,E,B,50,85,Bungalow,Detached,2014-12-23,E07000110,E14000700,Kent,2014-12-23,assessment for green deal,17,38,281,83.0,13.0,102,7.5,116.0,70.0,1125.0,910.0,211.0,111.0,130.0,Single,N,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,6.0,6.0,33.0,0.0,From main system,Average,Very Poor,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, coal",Average,Very Poor,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 33% of fixed outlets,Average,Average,house coal (not community),0.0,NO DATA!,,,,N,natural,"Cowstead Farmhouse, Cowstead Road, Stockbury",Maidstone,Faversham and Mid Kent,SITTINGBOURNE,England and Wales: 1950-1966,2014-12-23 17:04:59,owner-occupied,,,10014307853.0,Address Matched +1526804359902017031322440556039378,Flat 3 St. Asaph House,Middlesex Road,,ME15 7PW,1980950578,C,C,72,76,Flat,Semi-Detached,2017-03-13,E07000110,E14000700,Kent,2017-03-13,rental (social),72,77,195,158.0,2.2,34,1.8,79.0,46.0,377.0,318.0,94.0,94.0,64.0,Single,Y,Ground,N,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,29.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 29% of fixed outlets,Average,Average,mains gas (not community),0.0,no corridor,,,,N,natural,"Flat 3 St. Asaph House, Middlesex Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2017-03-13 22:44:05,rental (social),,,200003713155.0,Address Matched +477926049302011081606524370599958,"42, Franklin Drive",Weavering,,ME14 5SY,3325445768,C,C,72,72,House,Semi-Detached,2011-08-15,E07000110,E14000700,Kent,2011-08-16,marketed sale,72,72,169,166.0,2.7,32,2.6,57.0,44.0,429.0,431.0,105.0,105.0,82.17,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,71.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 100mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 71% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,2.31,0.0,,natural,"42, Franklin Drive, Weavering",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2011-08-16 06:52:43,owner-occupied,14.0,10.0,200003716460.0,Address Matched +1753863679262019092606510696548331,"116e, Boxley Road",Penenden Heath,,ME14 2BD,3902786678,D,C,65,77,House,Semi-Detached,2019-09-24,E07000110,E14000804,Kent,2019-09-26,marketed sale,59,72,241,152.0,3.9,43,2.5,74.0,74.0,679.0,639.0,101.0,69.0,93.0,Unknown,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,92.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 92% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"116e, Boxley Road, Penenden Heath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2019-09-26 06:51:06,owner-occupied,,,200003703589.0,Address Matched +5555662222020062909481476058130,"49, Clock House Rise",Coxheath,,ME17 4GS,3770676468,C,B,78,90,House,Mid-Terrace,2020-06-25,E07000110,E14000804,Kent,2020-06-29,marketed sale,78,90,136,50.0,2.0,24,0.8,69.0,69.0,330.0,331.0,102.0,63.0,83.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Flat, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"49, Clock House Rise, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2020-06-29 09:48:14,owner-occupied,,,10022900568.0,Address Matched +919085139252013042414485295270306,"19, The Hardwicks",Headcorn,,TN27 9AA,3691957078,B,B,85,85,House,Mid-Terrace,2013-04-24,E07000110,E14000700,Kent,2013-04-24,new dwelling,88,88,75,75.0,1.1,14,1.1,48.0,48.0,249.0,249.0,88.0,88.0,76.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.22 W/m?K,Good,Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.20 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.18 W/m?K,Good,Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"19, The Hardwicks, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,NO DATA!,2013-04-24 14:48:52,NO DATA!,11.0,11.0,10014314499.0,Address Matched +1677902359062019100912340781318418,Flat 808,Kent House,Romney Place,ME15 6LA,1866531678,D,D,57,57,Flat,Detached,2018-11-09,E07000110,E14000804,Kent,2019-10-09,non marketed sale,61,61,248,248.0,3.3,42,3.3,61.0,61.0,743.0,743.0,314.0,314.0,79.0,standard tariff,,top floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,"Electric immersion, standard tariff",Very Poor,Poor,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.29 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,Electric underfloor heating,Very Poor,Poor,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"Flat 808, Kent House, Romney Place",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2019-10-09 12:34:07,unknown,21.0,21.0,, +1418587089042016030111520547262818,Flat 1 Star House,Pudding Lane,,ME14 1LT,9019982478,C,C,75,75,Flat,Enclosed Mid-Terrace,2016-02-29,E07000110,E14000804,Kent,2016-03-01,new dwelling,77,77,184,184.0,1.4,32,1.4,34.0,34.0,275.0,275.0,87.0,87.0,44.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.87 W/m-¦K,Very Poor,Very Poor,Full secondary glazing,Average,Average,Average thermal transmittance 0.28 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Flat 1 Star House, Pudding Lane",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2016-03-01 11:52:05,owner-occupied,5.0,5.0,10091194993.0,Address Matched +1084947769922016011214403729528716,4 Bow Hill Cottages,Bow Hill,Wateringbury,ME18 5EG,1295639178,E,C,39,77,House,Semi-Detached,2016-01-12,E07000110,E14000804,Kent,2016-01-12,marketed sale,40,74,302,101.0,6.5,66,2.4,62.0,62.0,1140.0,571.0,170.0,99.0,99.0,Single,Y,NODATA!,,,2107.0,100.0,"double glazing, unknown install date",Normal,2.0,5.0,5.0,100.0,1.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Roof room(s), no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, oil",Average,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,oil (not community),0.0,NO DATA!,,,,N,natural,"4 Bow Hill Cottages, Bow Hill, Wateringbury",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2016-01-12 14:40:37,owner-occupied,,,200003661102.0,Address Matched +596657129242011052710055485492438,"27, Greenborough Close",,,ME15 8JN,2237024868,C,C,75,76,Flat,Semi-Detached,2011-05-27,E07000110,E14000700,Kent,2011-05-27,rental (social),81,82,188,176.0,1.1,36,1.0,38.0,19.0,217.0,219.0,59.0,59.0,30.78,Single,Y,1st,Y,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,2.0,2.0,0.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,no corridor,,2.39,0.0,,natural,"27, Greenborough Close",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2011-05-27 10:05:54,rental (social),5.0,0.0,200003723085.0,Address Matched +1331089989552015061011311196950730,"2, Gaskin Way",Marden,,TN12 9FE,7039966378,B,B,87,88,House,Detached,2015-06-10,E07000110,E14000804,Kent,2015-06-10,new dwelling,88,90,67,52.0,1.1,12,0.8,56.0,56.0,265.0,266.0,102.0,56.0,91.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.19 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.28 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.14 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"2, Gaskin Way, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,NO DATA!,2015-06-10 11:31:11,unknown,10.0,10.0,10014315720.0,Address Matched +1538079439342017042414303658132928,Flat 1,14 Tonbridge Road,,ME16 8RP,5329631578,D,C,64,76,Flat,Semi-Detached,2017-04-22,E07000110,E14000804,Kent,2017-04-24,marketed sale,59,76,279,161.0,3.0,49,1.7,44.0,44.0,551.0,315.0,106.0,93.0,61.0,Single,Y,Ground,N,,2104.0,100.0,"double glazing, unknown install date",Normal,1.0,3.0,3.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,no corridor,,,,N,natural,"Flat 1, 14 Tonbridge Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2017-04-24 14:30:36,owner-occupied,,,10014309573.0,Address Matched +1520767349922017021910280810558283,"85, Trevor Drive",,,ME16 0QN,8162410578,D,B,55,82,Bungalow,Semi-Detached,2017-02-15,E07000110,E14000804,Kent,2017-02-19,ECO assessment,48,79,312,108.0,5.3,55,1.9,124.0,62.0,873.0,533.0,175.0,84.0,96.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,6.0,6.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"85, Trevor Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2017-02-19 10:28:08,owner-occupied,,,200003659231.0,Address Matched +577101068752011030113061095090486,"21, Buckland Rise",,,ME16 0YN,4616852868,B,B,84,84,Flat,Semi-Detached,2011-03-01,E07000110,E14000804,Kent,2011-03-01,rental (private),83,83,136,133.0,1.4,22,1.3,47.0,36.0,239.0,240.0,87.0,87.0,60.64,Single,Y,2nd,Y,3.0,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,71.0,0.0,From main system,Very Good,Very Good,(other premises below),,,Fully double glazed,Good,Good,"System built, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 71% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,unheated corridor,5.42,2.5,0.0,N,natural,"21, Buckland Rise",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2011-03-01 13:06:10,rental (private),,,10014308216.0,Address Matched +1681517072312018112615133096289368,"10, Little Knoxes Close",,,ME16 9FD,3811261678,B,A,84,97,House,Mid-Terrace,2018-11-26,E07000110,E14000804,Kent,2018-11-26,new dwelling,87,99,80,-12.0,1.1,14,-0.1,58.0,58.0,170.0,170.0,81.0,51.0,75.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.16 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"10, Little Knoxes Close",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2018-11-26 15:13:30,unknown,20.0,20.0,10093303525.0,Address Matched +1307678675512015041314515890950438,"52, Ragstone Road",Bearsted,,ME15 8PB,4899505378,C,B,70,84,House,Semi-Detached,2015-04-13,E07000110,E14000700,Kent,2015-04-13,marketed sale,67,82,205,101.0,3.0,36,1.5,64.0,64.0,525.0,485.0,131.0,82.0,82.0,dual,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,90.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 90% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"52, Ragstone Road, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2015-04-13 14:51:58,owner-occupied,,,200003690815.0,Address Matched +1378084509902015102315584248052078,11 Alexander Court,Mote Park,,ME15 8WY,7915000478,C,C,78,78,Flat,Mid-Terrace,2015-10-23,E07000110,E14000700,Kent,2015-10-23,new dwelling,86,86,75,75.0,1.2,16,1.2,53.0,53.0,232.0,232.0,197.0,197.0,77.0,standard tariff,,ground floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Poor,Good,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.19 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, LPG",Poor,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,LPG - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"11 Alexander Court, Mote Park",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2015-10-23 15:58:42,unknown,9.0,9.0,10091195125.0,Address Matched +566487179542010111809564882109988,Orchard House Rear of 1,Plains Avenue,,ME15 7AT,5552571868,C,C,76,78,House,Detached,2010-11-18,E07000110,E14000700,Kent,2010-11-18,marketed sale,76,77,131,126.0,4.6,21,4.4,186.0,120.0,639.0,652.0,174.0,174.0,166.2,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,11.0,11.0,45.0,0.0,From main system,Very Good,Very Good,"Solid, insulated (assumed)",,,Fully double glazed,Good,Good,"Timber frame, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,"Pitched, 250 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 45% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.36,0.0,N,natural,"Orchard House Rear of 1, Plains Avenue",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2003-2006,2010-11-18 09:56:48,owner-occupied,,,10022901460.0,Address Matched +1644851556652018070116483699280558,"11, Lime Trees",Staplehurst,,TN12 0SS,5808698578,C,B,70,84,House,Detached,2018-06-29,E07000110,E14000804,Kent,2018-07-01,marketed sale,66,81,193,96.0,3.4,34,1.7,99.0,70.0,524.0,485.0,140.0,74.0,99.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,7.0,7.0,57.0,0.0,From main system,Good,Good,"Solid, limited insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 57% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"11, Lime Trees, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1996-2002,2018-07-01 16:48:36,owner-occupied,,,200003724381.0,Address Matched +1012644589962013092310224274248687,"7, Maidstone Road",Lenham,,ME17 2QH,8767814178,D,B,58,89,House,End-Terrace,2013-08-14,E07000110,E14000700,Kent,2013-09-23,marketed sale,58,92,324,35.0,2.6,62,0.3,46.0,27.0,351.0,304.0,225.0,65.0,42.0,Unknown,Y,NODATA!,,,2105.0,20.0,double glazing installed before 2002,Normal,1.0,3.0,3.0,29.0,0.0,"From main system, no cylinder thermostat",Average,Average,"Solid, no insulation (assumed)",,,Some double glazing,Very Poor,Very Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and at least two room thermostats,Good,Good,Low energy lighting in 29% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"7, Maidstone Road, Lenham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2013-09-23 10:22:42,owner-occupied,7.0,2.0,200003711595.0,Address Matched +67173479042014060519262342440358,"8, Marion Crescent",,,ME15 7DY,2007574468,D,C,62,77,House,Semi-Detached,2014-06-05,E07000110,E14000700,Kent,2014-06-05,marketed sale,56,74,205,115.0,5.6,40,3.2,114.0,78.0,1043.0,789.0,104.0,105.0,141.0,dual,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,6.0,6.0,54.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 54% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"8, Marion Crescent",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1900-1929,2014-06-05 19:26:23,owner-occupied,24.0,13.0,200003684252.0,Address Matched +1796978902222020042208371230898540,Chain Dene,Tilden Lane,Marden,TN12 9AX,4322000778,F,C,26,80,Bungalow,Detached,2020-04-21,E07000110,E14000804,Kent,2020-04-22,marketed sale,27,71,361,70.0,10.0,85,3.0,178.0,94.0,1577.0,942.0,170.0,85.0,121.0,dual,N,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,4.0,4.0,10.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, wood logs",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, oil",Average,Average,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 10% of fixed outlets,Poor,Poor,oil (not community),0.0,NO DATA!,,,,N,natural,"Chain Dene, Tilden Lane, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1950-1966,2020-04-22 08:37:12,owner-occupied,,,200003727358.0,Address Matched +42659230402009061021593048319508,"23, Rivers Walk",Lenham,,ME17 2JT,6498933468,D,C,55,75,House,End-Terrace,2009-06-10,E07000110,E14000700,Kent,2009-06-10,marketed sale,48,71,369,200.0,4.9,62,2.7,76.0,38.0,641.0,373.0,137.0,99.0,80.08,Unknown,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,0.0,0.0,From main system,Average,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Average,Good,"Programmer, room thermostat and TRVs",Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,0.0,N,natural,"23, Rivers Walk, Lenham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2009-06-10 21:59:30,owner-occupied,,,200003710463.0,Address Matched +447326219022011111014564623948410,Lynrick,Orchard Close,Langley,ME17 3LL,1246133768,B,B,83,83,House,Detached,2010-10-04,E07000110,E14000700,Kent,2011-11-10,new dwelling,86,86,79,79.0,1.8,14,1.8,77.0,77.0,354.0,354.0,50.0,50.0,129.47,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,30.0,,"From main system, plus solar",Very Good,Very Good,Average thermal transmittance 0.21 W/mA?K,Good,Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/mA?K,Very Good,Very Good,"Room heaters, wood logs",,,Average thermal transmittance 0.17 W/mA?K,Good,Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,,,NO DATA!,"Lynrick, Orchard Close, Langley",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2011-11-10 14:56:46,,40.0,30.0,10014314070.0,Address Matched +1056324382752013120516360093079712,"2, Wickham Place",Lenham,,ME17 2PF,7203237178,C,B,71,89,House,Mid-Terrace,2013-12-05,E07000110,E14000700,Kent,2013-12-05,non marketed sale,72,90,177,45.0,2.1,34,0.6,74.0,42.0,353.0,333.0,112.0,76.0,62.0,dual,Y,NODATA!,,,2104.0,100.0,secondary glazing,Normal,0.0,3.0,3.0,22.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Full secondary glazing,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 22% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"2, Wickham Place, Lenham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1991-1995,2013-12-05 16:36:00,owner-occupied,9.0,2.0,200003712545.0,Address Matched +761336039542012031407514591629948,"34a, Stanley Close",Staplehurst,,TN12 0TA,5568936968,B,B,84,84,House,End-Terrace,2012-03-14,E07000110,E14000804,Kent,2012-03-14,new dwelling,88,88,77,77.0,1.1,13,1.1,49.0,49.0,260.0,260.0,38.0,38.0,83.62,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,18.0,,"From main system, plus solar",Very Good,Very Good,Average thermal transmittance 0.17 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.30 W/m?K,Good,Good,"Room heaters, wood logs",,,Average thermal transmittance 0.15 W/m?K,Good,Good,"Boiler and radiators, mains gas",Very Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.3,,,NO DATA!,"34a, Stanley Close, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,NO DATA!,2012-03-14 07:51:45,,18.0,18.0,10014314024.0,Address Matched +1008521399902013091620373218379448,First Floor Flat,66 Boxley Road,,ME14 2TW,9926093178,D,D,66,67,Flat,End-Terrace,2013-09-14,E07000110,E14000804,Kent,2013-09-16,rental (private),65,65,205,201.0,3.0,39,2.9,66.0,50.0,542.0,544.0,88.0,88.0,76.0,Unknown,Y,1st,Y,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,67.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 67% of fixed outlets,Good,Good,mains gas (not community),0.0,no corridor,,,0.0,,natural,"First Floor Flat, 66 Boxley Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2013-09-16 20:37:32,rental (private),12.0,8.0,200003697459.0,Address Matched +325972970602009071411400866419048,"23, Grace Avenue",,,ME16 0BS,2692974668,E,D,52,55,House,Semi-Detached,2009-07-14,E07000110,E14000804,Kent,2009-07-14,marketed sale,46,47,347,340.0,6.5,58,6.4,114.0,57.0,944.0,960.0,111.0,111.0,112.1,Single,Y,NO DATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,4.0,4.0,0.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.6,0.0,N,natural,"23, Grace Avenue",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2009-07-14 11:40:08,owner-occupied,,,200003658473.0,Address Matched +947767950432014102911394501278990,"7, Groombridge Square",,,ME15 8TR,5021959078,D,B,65,88,House,Semi-Detached,2014-10-28,E07000110,E14000700,Kent,2014-10-29,none of the above,63,89,204,51.0,3.4,39,0.9,74.0,53.0,598.0,383.0,154.0,83.0,86.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,60.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 25 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 60% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"7, Groombridge Square",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2014-10-29 11:39:45,owner-occupied,10.0,6.0,200003680973.0,Address Matched +1386620139962015111716102370538145,"81, Postley Road",,,ME15 6TP,4742360478,C,B,72,89,House,Mid-Terrace,2015-11-17,E07000110,E14000804,Kent,2015-11-17,marketed sale,71,89,204,57.0,2.2,36,0.7,47.0,47.0,359.0,336.0,156.0,68.0,62.0,Single,Y,NODATA!,,,2106.0,100.0,triple glazing,Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,"Solid, limited insulation (assumed)",NO DATA!,,Fully triple glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"81, Postley Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2015-11-17 16:10:23,owner-occupied,,,200003686805.0,Address Matched +598211799062013100915374554898657,12 Crundale,Union Street,,ME14 1TX,5577924868,C,C,73,78,Flat,Mid-Terrace,2013-10-01,E07000110,E14000804,Kent,2013-10-09,none of the above,76,83,175,126.0,1.6,33,1.1,30.0,30.0,262.0,217.0,129.0,94.0,47.0,Single,Y,2nd,N,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,2.0,2.0,100.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,4.3,,0.0,,natural,"12 Crundale, Union Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2013-10-09 15:37:45,rental (social),5.0,5.0,200003700831.0,Address Matched +401396200202009112013595878012208,"3, Grampian Way",Downswood,,ME15 8TG,5254700768,D,C,64,76,House,Semi-Detached,2009-11-20,E07000110,E14000700,Kent,2009-11-20,rental (private),59,72,307,205.0,3.5,51,2.3,67.0,34.0,463.0,350.0,147.0,104.0,67.6,Single,Y,NO DATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,0.0,0.0,From main system,Average,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Average,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.36,0.0,N,natural,"3, Grampian Way, Downswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2009-11-20 13:59:58,rental (private),,,200003691078.0,Address Matched +194548590222008112418023054348318,Flat 3 Maison Des Fleurs,Hartnup Street,,ME16 8PD,1587974568,D,C,66,70,Flat,End-Terrace,2008-11-24,E07000110,E14000804,Kent,2008-11-24,marketed sale,66,68,410,384.0,2.0,62,1.8,27.0,15.0,157.0,150.0,155.0,138.0,31.68,dual,N,1st,N,3.0,2402.0,100.0,double glazing installed before 2002,Normal,0.0,1.0,1.0,25.0,0.0,"Electric immersion, off-peak",Very Poor,Poor,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,(another dwelling above),,,Electric storage heaters,Poor,Very Poor,Automatic charge control,Average,Average,Low energy lighting in 25% of fixed outlets,Average,Average,electricity - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.46,0.0,N,natural,"Flat 3 Maison Des Fleurs, Hartnup Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1991-1995,2008-11-24 18:02:30,owner-occupied,,,200003656664.0,Address Matched +337259248132009080116054457068809,The Bungalow Eastdean Farm,Smarden Road,Headcorn,TN27 9HP,4997855668,E,D,45,59,Bungalow,Semi-Detached,2009-08-01,E07000110,E14000700,Kent,2009-08-01,marketed sale,42,47,527,470.0,4.8,79,4.3,47.0,33.0,534.0,435.0,215.0,119.0,68.6,dual,N,NO DATA!,,,2401.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,60.0,0.0,"Electric immersion, off-peak",Very Poor,Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,"Pitched, 150mm loft insulation",Good,Good,Electric storage heaters,Poor,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 60% of fixed outlets,Good,Good,electricity - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.3,0.0,N,natural,"The Bungalow Eastdean Farm, Smarden Road, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,England and Wales: 1983-1990,2009-08-01 16:05:44,owner-occupied,,,200003732115.0,Address Matched +658599839262011072511434418058389,"9, Melrose Close",,,ME15 6BD,8168378868,B,B,84,84,House,Semi-Detached,2011-07-25,E07000110,E14000804,Kent,2011-07-25,new dwelling,86,87,79,76.0,1.4,15,1.4,66.0,52.0,245.0,247.0,94.0,94.0,94.66,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,8.0,,From main system,Good,Good,Average thermal transmittance 0.20 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.21 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in 73% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.3,,,NO DATA!,"9, Melrose Close",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2011-07-25 11:43:44,,11.0,8.0,10014307030.0,Address Matched +481564179602016042117281577562298,"51, Florence Road",,,ME16 8EL,1682075768,D,B,60,84,House,Semi-Detached,2016-04-21,E07000110,E14000804,Kent,2016-04-21,non marketed sale,54,81,292,100.0,3.6,52,1.3,63.0,48.0,681.0,461.0,101.0,66.0,70.0,Single,Y,NODATA!,,,2107.0,100.0,"double glazing, unknown install date",More Than Typical,0.0,4.0,4.0,67.0,0.0,From main system,Good,Good,"To unheated space, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 67% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,2.42,,N,natural,"51, Florence Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2016-04-21 17:28:15,owner-occupied,,,200003667655.0,Address Matched +501093119912010061810293890900377,"5, Cherry Orchard Way",,,ME16 8TJ,3708907768,D,D,58,67,House,End-Terrace,2010-06-18,E07000110,E14000804,Kent,2010-06-18,marketed sale,51,60,309,248.0,5.7,52,4.5,108.0,57.0,791.0,678.0,163.0,129.0,109.6,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,11.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 11% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,0.0,N,natural,"5, Cherry Orchard Way",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2010-06-18 10:29:38,owner-occupied,,,200003696602.0,Address Matched +820626828232012080609510631078409,"23, Mayfair Avenue",,,ME15 6BX,2921460078,C,B,70,86,House,Semi-Detached,2012-08-06,E07000110,E14000804,Kent,2012-08-06,marketed sale,70,87,175,62.0,2.5,34,1.0,43.0,43.0,425.0,365.0,109.0,68.0,75.0,Single,Y,NODATA!,,,2107.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"23, Mayfair Avenue",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2012-08-06 09:51:06,owner-occupied,8.0,8.0,200003676434.0,Address Matched +531318626532015070113051390268507,Foxcroft,Wilsons Lane,East Farleigh,ME15 0LU,2790529768,D,D,55,68,Bungalow,Detached,2015-06-24,E07000110,E14000804,Kent,2015-07-01,RHI application,56,69,139,86.0,12.0,35,8.3,122.0,122.0,2780.0,2421.0,127.0,107.0,344.0,Single,N,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,13.0,13.0,100.0,0.0,"From main system, plus solar",Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, wood logs",,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, oil",Average,Average,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,oil (not community),0.0,NO DATA!,,,,Y,natural,"Foxcroft, Wilsons Lane, East Farleigh",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2015-07-01 13:05:13,owner-occupied,,,200003727994.0,Address Matched +1044260508652013111522590594979715,"3a, Penfold Close",,,ME15 9LU,7510846178,C,C,72,73,Flat,Mid-Terrace,2013-11-15,E07000110,E14000700,Kent,2013-11-15,rental (social),74,74,166,162.0,1.9,32,1.9,53.0,39.0,361.0,363.0,84.0,84.0,61.0,Single,Y,1st,Y,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,63.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"System built, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 63% of fixed outlets,Good,Good,mains gas (not community),0.0,no corridor,,,0.0,,natural,"3a, Penfold Close",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2013-11-15 22:59:05,rental (social),8.0,5.0,200003683222.0,Address Matched +1354585242832018052217190378278701,3 Surrenden Cottage,High Street,Staplehurst,TN12 0BJ,4168738378,F,D,21,65,House,Mid-Terrace,2018-02-27,E07000110,E14000804,Kent,2018-05-22,marketed sale,48,82,271,62.0,4.2,59,1.2,76.0,51.0,1261.0,641.0,262.0,139.0,71.0,Single,Y,NODATA!,,,2104.0,0.0,not defined,Normal,0.0,4.0,4.0,50.0,1.0,From main system,Very Poor,Good,"Suspended, no insulation (assumed)",NO DATA!,,Single glazed,Very Poor,Very Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, LPG",Very Poor,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 50% of fixed outlets,Good,Good,bottled LPG,0.0,NO DATA!,,,,N,natural,"3 Surrenden Cottage, High Street, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1900-1929,2018-05-22 17:19:03,owner-occupied,,,200003679095.0,Address Matched +a31d073872afa1fcfc5e121c2a096c8717325bd17c870341439de1b99c2418ff,13 HEARNE COURT,,,ME15 6QD,10001349826,B,B,81,81,Flat,,2021-07-15,E07000110,E14000804,Kent,2021-07-15,new dwelling,83,83,126,126.0,1.3,21,1.3,63.0,63.0,162.0,162.0,267.0,267.0,63.0,standard tariff,,1,N,,,100.0,,,,,,100.0,0.0,From main system,Poor,Average,Average thermal transmittance 0.09 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.22 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,"Air source heat pump, radiators, electric",Good,Very Good,2207 Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",0.0,,,2.4,,,,13 HEARNE COURT,Maidstone,Maidstone and The Weald,TOVIL,2021,2021-07-15 08:41:52,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,25.0,,10095448645.0,Energy Assessor +471554324032010041910562635968903,"25, Butcher Close",Staplehurst,,TN12 0TJ,2355994768,D,C,55,69,House,Semi-Detached,2010-04-19,E07000110,E14000804,Kent,2010-04-19,marketed sale,49,64,359,246.0,5.1,60,3.5,68.0,43.0,720.0,527.0,164.0,117.0,84.4,Single,Y,NO DATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,42.0,0.0,From main system,Average,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Average,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 42% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.3,0.0,N,natural,"25, Butcher Close, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1967-1975,2010-04-19 10:56:26,owner-occupied,,,200003678854.0,Address Matched +299239920062009060719534862558871,"2, Sheridan Close",,,ME14 2QP,7698292668,C,C,72,74,House,Mid-Terrace,2009-06-05,E07000110,E14000804,Kent,2009-06-07,marketed sale,69,70,226,218.0,2.7,38,2.6,64.0,34.0,373.0,378.0,85.0,85.0,80.7,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,10.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Timber frame, as built, partial insulation (assumed)",Average,Average,,,,"Pitched, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 10% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.3,0.0,N,natural,"2, Sheridan Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2009-06-07 19:53:48,owner-occupied,,,200003670674.0,Address Matched +729476979022013100509210333728697,15 Midhurst Court,Mote Road,,ME15 6EH,9385773968,D,C,65,78,Flat,Mid-Terrace,2013-10-02,E07000110,E14000804,Kent,2013-10-05,none of the above,72,82,219,132.0,1.8,40,1.1,28.0,28.0,267.0,219.0,240.0,93.0,45.0,Single,Y,2nd,N,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,2.0,2.0,100.0,0.0,"Electric immersion, standard tariff",Very Poor,Very Poor,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,6.16,,0.0,,natural,"15 Midhurst Court, Mote Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2013-10-05 09:21:03,rental (social),5.0,5.0,200003693321.0,Address Matched +652427739542011070917221386890288,"142, Kingfisher Meadow",,,ME16 8RD,501338868,C,B,79,83,Flat,NO DATA!,2011-07-08,E07000110,E14000804,Kent,2011-07-09,rental (private),74,75,198,192.0,2.0,35,1.9,69.0,37.0,169.0,141.0,120.0,102.0,57.43,dual,N,2nd,N,,2603.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,0.0,0.0,"Electric immersion, off-peak",Average,Very Poor,(other premises below),,,Fully double glazed,Good,Good,"System built, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Room heaters, electric",Poor,Very Poor,Programmer and appliance thermostats,Good,Good,No low energy lighting,Very Poor,Very Poor,electricity (not community),0.0,unheated corridor,6.3,2.45,0.0,,"mechanical, extract only","142, Kingfisher Meadow",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2011-07-09 17:22:13,rental (private),12.0,0.0,10022892353.0,Address Matched +21c787e3e991191427b56f79dbe0ab649fc4f1a5d480f52f6588d135575d37f8,166 Wallis Place,Hart Street,,ME16 8FE,6537088468,C,C,79,79,Flat,End-Terrace,2021-09-07,E07000110,E14000804,Kent,2021-09-07,marketed sale,83,83,133,133.0,1.1,23,1.1,46.0,46.0,204.0,204.0,74.0,74.0,47.0,Single,Y,01,N,,,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,100.0,0.0,From main system,Good,Good,"To external air, insulated (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,9.5,2.35,0.0,N,natural,"166 Wallis Place, Hart Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007-2011,2021-09-07 12:16:28,Owner-occupied,7.0,,10022900771.0,Energy Assessor +597918939102011062822450186492388,"13, The Beacons",Coxheath,,ME17 4DL,180134868,C,C,71,72,Bungalow,Mid-Terrace,2011-06-28,E07000110,E14000804,Kent,2011-06-28,rental (social),74,75,209,198.0,1.7,40,1.6,48.0,24.0,298.0,301.0,68.0,68.0,42.12,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,2.0,2.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,2.06,0.0,,natural,"13, The Beacons, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2011-06-28 22:45:01,rental (social),6.0,0.0,200003712872.0,Address Matched +1685363504132019041517310548978008,Flat 8 Coronet House,"11, Queen Anne Road",,ME14 1GD,868091678,D,D,66,66,Flat,Detached,2019-04-12,E07000110,E14000804,Kent,2019-04-15,new dwelling,69,69,421,421.0,1.3,71,1.3,19.0,19.0,268.0,268.0,132.0,132.0,18.0,standard tariff,,ground floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,Electric instantaneous at point of use,Very Poor,Very Poor,Average thermal transmittance 0.18 W/m-¦K,Very Good,Very Good,Fully double glazed,Good,Good,Average thermal transmittance 0.26 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,"Room heaters, electric",Very Poor,Poor,Programmer and room thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"Flat 8 Coronet House, 11, Queen Anne Road",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2019-04-15 17:31:05,unknown,5.0,5.0,10094441185.0,Address Matched +1521102892332017022112573365278607,"46, Bargrove Road",,,ME14 5RT,9715610578,D,B,65,85,Bungalow,Detached,2017-02-21,E07000110,E14000804,Kent,2017-02-21,marketed sale,65,87,245,80.0,2.7,40,0.8,47.0,47.0,504.0,399.0,145.0,69.0,68.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, wood logs",,,"Pitched, 270 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"46, Bargrove Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1976-1982,2017-02-21 12:57:33,owner-occupied,,,200003672475.0,Address Matched +a349d969524e526449e54a90f2177290e58dd20f9f9b50b6c5a2a1c1480e1c88,3 Chapel Farm Cottage,Lenham Heath Road,Lenham Heath,ME17 2BJ,10001459328,D,B,67,81,House,Semi-Detached,2021-09-12,E07000110,E14000700,Kent,2021-09-17,marketed sale,63,77,143,75.0,5.0,34,2.9,98.0,98.0,620.0,536.0,155.0,80.0,146.0,Single,N,,,,,100.0,double glazing installed during or after 2002,Normal,1.0,6.0,6.0,100.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Granite or whinstone, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, 270 mm loft insulation",Good,Good,"Boiler and radiators, oil",Average,Average,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,oil (not community),0.0,,,2.38,0.0,N,natural,"3 Chapel Farm Cottage, Lenham Heath Road, Lenham Heath",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2021-09-17 07:43:51,Owner-occupied,18.0,,10014309689.0,Energy Assessor +1404120249632016011912131240978805,Dirt House,Summerhill Road,Marden,TN12 9DB,4580881478,C,A,71,98,House,Detached,2016-01-19,E07000110,E14000804,Kent,2016-01-19,RHI application,59,93,65,-59.0,6.1,27,-0.3,113.0,115.0,2078.0,1353.0,247.0,99.0,231.0,dual (24 hour),N,NODATA!,,,2106.0,0.0,not defined,Normal,2.0,7.0,7.0,85.0,4.0,From main system,Poor,Poor,"Suspended, no insulation (assumed)",NO DATA!,,Single glazed,Very Poor,Very Poor,"Solid brick, with internal insulation",Good,Good,"Room heaters, wood logs",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, oil",Poor,Average,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 85% of fixed outlets,Very Good,Very Good,oil (not community),0.0,NO DATA!,,,,N,natural,"Dirt House, Summerhill Road, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: before 1900,2016-01-19 12:13:12,owner-occupied,,,200003726811.0,Address Matched +612051879722011040516310475298779,"12, Vicarage Lane",East Farleigh,,ME15 0LY,7747735868,D,C,62,70,House,Semi-Detached,2011-03-31,E07000110,E14000804,Kent,2011-04-05,marketed sale,57,65,281,229.0,4.6,47,3.8,108.0,54.0,714.0,621.0,129.0,112.0,98.8,Single,Y,NO DATA!,,,2103.0,100.0,"double glazing, unknown install date",Normal,2.0,4.0,4.0,0.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,Room thermostat only,Poor,Poor,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.5,0.0,N,natural,"12, Vicarage Lane, East Farleigh",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2011-04-05 16:31:04,owner-occupied,,,200003672998.0,Address Matched +1661962119102018091009581668089208,"1, Oaken Reach",Barming,,ME16 9GN,5168910678,B,A,83,94,House,Semi-Detached,2018-09-10,E07000110,E14000804,Kent,2018-09-10,new dwelling,85,96,92,9.0,1.3,16,0.2,59.0,59.0,230.0,230.0,80.0,49.0,84.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"1, Oaken Reach, Barming",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2018-09-10 09:58:16,unknown,1.0,1.0,10093305940.0,Address Matched +417149519032010010620171525068903,Flat 167 Scotney Gardens,St. Peters Street,,ME16 0GT,1365911768,B,B,85,86,Flat,Enclosed Mid-Terrace,2010-01-06,E07000110,E14000804,Kent,2010-01-06,rental (private),79,79,237,233.0,1.3,36,1.2,31.0,22.0,66.0,67.0,102.0,102.0,35.22,dual,N,2nd,N,5.0,2402.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,60.0,0.0,"Electric immersion, off-peak",Average,Poor,(other premises below),,,Fully double glazed,Good,Good,"System built, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,Electric storage heaters,Average,Poor,Automatic charge control,Average,Average,Low energy lighting in 60% of fixed outlets,Good,Good,electricity - this is for backwards compatibility only and should not be used,0.0,unheated corridor,4.14,2.33,0.0,N,natural,"Flat 167 Scotney Gardens, St. Peters Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2010-01-06 20:17:15,rental (private),,,10022893534.0,Address Matched +a34d9534993ba20cb53716a0cc623d38493221476c0d2104382308be95150709,Bramleigh,Heath Road,East Farleigh,ME15 0LP,10001604533,F,B,33,88,House,Detached,2021-08-23,E07000110,E14000804,Kent,2021-08-25,marketed sale,29,75,365,31.0,7.9,93,2.1,116.0,69.0,1040.0,666.0,137.0,83.0,85.0,Single,N,,,,,90.0,"double glazing, unknown install date",Normal,2.0,4.0,4.0,33.0,2.0,From main system,Average,Average,"Suspended, no insulation (assumed)",,,Mostly double glazing,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, oil",Average,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 33% of fixed outlets,Average,Average,oil (not community),0.0,,,2.61,0.0,N,natural,"Bramleigh, Heath Road, East Farleigh",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2021-08-25 18:12:22,Owner-occupied,9.0,,200003670441.0,Energy Assessor +1384731790252015111116145395050449,Flat 6 William Shipley House,Knightrider Court,Knightrider Street,ME15 6XD,4928050478,D,D,60,60,Flat,NO DATA!,2015-05-02,E07000110,E14000804,Kent,2015-11-11,new dwelling,64,64,317,317.0,2.1,54,2.1,29.0,29.0,388.0,388.0,205.0,205.0,40.0,standard tariff,,ground floor,,,,,NO DATA!,NO DATA!,,,,,0.0,"Electric immersion, standard tariff",Very Poor,Poor,Average thermal transmittance 0.19 W/m-¦K,Very Good,Very Good,Fully double glazed,Good,Good,Average thermal transmittance 0.28 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,"Room heaters, electric",Very Poor,Poor,Programmer and room thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"Flat 6 William Shipley House, Knightrider Court, Knightrider Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2015-11-11 16:14:53,unknown,8.0,8.0,10091195494.0,Address Matched +404556569952009112711340202219271,"14, High Street",Headcorn,,TN27 9NE,2106920768,G,G,1,1,House,Mid-Terrace,2009-11-27,E07000110,E14000700,Kent,2009-11-27,rental (private),24,24,781,781.0,9.7,105,9.7,58.0,58.0,2392.0,2392.0,312.0,312.0,67.86,dual,Y,NO DATA!,,,2699.0,0.0,not defined,Normal,0.0,5.0,1.0,85.0,2.0,"Electric immersion, standard tariff",Very Poor,Poor,"Solid, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,No system present: electric heaters assumed,Very Poor,Poor,,Very Poor,Very Poor,Low energy lighting in 85% of fixed outlets,Very Good,Very Good,electricity - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,1.98,0.0,N,natural,"14, High Street, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,England and Wales: before 1900,2009-11-27 11:34:02,rental (private),,,200003698579.0,Address Matched +1774007359222019122016555458008221,45 Wrens Cross,Upper Stone Street,,ME15 6YU,2570538678,B,B,81,81,Flat,Mid-Terrace,2019-12-20,E07000110,E14000804,Kent,2019-12-20,new dwelling,87,87,102,102.0,0.9,17,0.9,44.0,44.0,126.0,126.0,254.0,254.0,54.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,"Electric immersion, standard tariff",Very Poor,Poor,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.22 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,"Room heaters, electric",Very Poor,Poor,Appliance thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"45 Wrens Cross, Upper Stone Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2019-12-20 16:55:54,unknown,24.0,24.0,10094440979.0,Address Matched +a368c0412f262e1ab243b4a8e00d520bc9938c7e3c8078ce513486fb07f982bd,8 Abigail Crescent,Walderslade,,ME5 9DZ,10001645005,C,B,71,82,House,Detached,2021-09-08,E07000110,E14000700,Kent,2021-09-09,marketed sale,67,78,176,105.0,3.8,32,2.3,142.0,92.0,615.0,593.0,100.0,70.0,120.0,Single,Y,,,,,100.0,"double glazing, unknown install date",Normal,0.0,7.0,7.0,47.0,0.0,From main system,Good,Good,"Solid, limited insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 47% of fixed outlets,Good,Good,mains gas (not community),0.0,,,2.42,0.0,N,natural,"8 Abigail Crescent, Walderslade",Maidstone,Faversham and Mid Kent,CHATHAM,England and Wales: 1996-2002,2021-09-09 12:36:22,Owner-occupied,15.0,,200003673948.0,Energy Assessor +473057719642010042120350171502898,"15, Copsewood Way",Bearsted,,ME15 8PL,2625415768,D,C,60,76,House,Semi-Detached,2010-04-21,E07000110,E14000700,Kent,2010-04-21,marketed sale,55,73,300,179.0,4.7,50,2.8,97.0,48.0,652.0,400.0,152.0,131.0,93.22,Single,Y,NO DATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, no insulation",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.41,0.0,N,natural,"15, Copsewood Way, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2010-04-21 20:35:01,owner-occupied,,,200003690952.0,Address Matched +102799461512010111511095495909740,Hammond Oast,Vicarage Road,Yalding,ME18 6DY,7061157468,F,E,37,47,House,Semi-Detached,2010-11-15,E07000110,E14000804,Kent,2010-11-15,marketed sale,58,66,201,161.0,5.9,41,4.7,124.0,77.0,1107.0,919.0,340.0,279.0,112.3,Single,N,NO DATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,40.0,0.0,From main system,Very Poor,Average,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, insulated (assumed)",Good,Good,,,,"Pitched, 100 mm loft insulation",Good,Good,"Boiler and radiators, LPG",Very Poor,Average,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 40% of fixed outlets,Average,Average,LPG - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.3,0.0,N,natural,"Hammond Oast, Vicarage Road, Yalding",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2010-11-15 11:09:54,owner-occupied,,,200003727829.0,Address Matched +336620449002019010416464768510548,"55, Longham Copse",Downswood,,ME15 8TL,8000945668,D,C,60,80,Flat,Semi-Detached,2019-01-04,E07000110,E14000700,Kent,2019-01-04,rental (private),54,69,522,354.0,2.4,88,1.6,24.0,26.0,352.0,131.0,208.0,122.0,27.0,dual,N,1st,Y,,2603.0,0.0,not defined,Normal,0.0,1.0,1.0,100.0,0.0,"Electric immersion, off-peak",Poor,Poor,(another dwelling below),NO DATA!,,Single glazed,Very Poor,Very Poor,"Timber frame, as built, insulated (assumed)",Good,Good,,,,"Pitched, 75 mm loft insulation",Average,Average,"Room heaters, electric",Very Poor,Poor,Programmer and appliance thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,unheated corridor,1.23,,,N,natural,"55, Longham Copse, Downswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1976-1982,2019-01-04 16:46:47,rental (private),,,200003686478.0,Address Matched +1784861612502020021321053561909578,"88, Hartnup Street",,,ME16 8LP,9536219678,D,B,63,82,House,End-Terrace,2020-02-13,E07000110,E14000804,Kent,2020-02-13,marketed sale,59,81,224,93.0,4.2,39,1.8,120.0,78.0,773.0,557.0,136.0,83.0,108.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,1.0,6.0,6.0,47.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 47% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"88, Hartnup Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2020-02-13 21:05:35,owner-occupied,,,200003655791.0,Address Matched +1056871352732013120701005673078897,"3, Plains Avenue",,,ME15 7AT,5763837178,D,C,57,77,House,Semi-Detached,2013-12-05,E07000110,E14000700,Kent,2013-12-07,none of the above,52,75,256,120.0,5.0,49,2.4,87.0,56.0,788.0,632.0,190.0,77.0,101.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,5.0,5.0,45.0,0.0,"From main system, no cylinder thermostat",Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 45% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"3, Plains Avenue",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1900-1929,2013-12-07 01:00:56,owner-occupied,20.0,9.0,200003683658.0,Address Matched +665925587852011081313185192990084,4 Medway Cottages,Pattenden Lane,Marden,TN12 9QE,415729868,F,E,27,48,House,Mid-Terrace,2011-08-13,E07000110,E14000804,Kent,2011-08-13,marketed sale,35,51,533,359.0,5.5,98,3.8,39.0,39.0,535.0,574.0,729.0,258.0,56.66,Single,Y,NODATA!,,,2601.0,0.0,not defined,Normal,1.0,3.0,3.0,80.0,0.0,"Electric immersion, standard tariff",Very Poor,Very Poor,"Solid, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Solid brick, with internal insulation",Good,Good,"Room heaters, electric",,,"Pitched, 50 mm loft insulation",Poor,Poor,"Room heaters, mains gas",Average,Average,No thermostatic control of room temperature,Poor,Poor,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,2.28,0.0,,natural,"4 Medway Cottages, Pattenden Lane, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: before 1900,2011-08-13 13:18:51,owner-occupied,5.0,4.0,200003710727.0,Address Matched +854096909222012110620480473948472,"56, High Street",Lenham,,ME17 2QB,7767003078,E,D,47,65,House,Detached,2012-10-24,E07000110,E14000700,Kent,2012-11-06,marketed sale,47,65,247,155.0,9.7,46,6.1,126.0,81.0,1859.0,1409.0,164.0,131.0,210.0,Unknown,Y,NODATA!,,,2106.0,66.0,double glazing installed before 2002,Normal,2.0,8.0,8.0,43.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Partial double glazing,Poor,Poor,"Solid brick, as built, insulated (assumed)",Good,Good,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 43% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"56, High Street, Lenham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2012-11-06 20:48:04,owner-occupied,23.0,10.0,200003711183.0,Address Matched +398755749132009111622382404968196,36 Midhurst Court,Mote Road,,ME15 6EH,4604199668,C,B,79,85,Flat,Mid-Terrace,2009-11-16,E07000110,E14000804,Kent,2009-11-16,rental (social),76,83,217,150.0,1.6,36,1.1,22.0,22.0,245.0,186.0,107.0,87.0,44.05,Single,Y,6th,N,13.0,2107.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,100.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,unheated corridor,5.25,2.28,0.0,N,natural,"36 Midhurst Court, Mote Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2009-11-16 22:38:24,rental (social),,,200003693344.0,Address Matched +393489150502009110611222160910158,"23, Abigail Crescent",Walderslade,,ME5 9DZ,1588159668,D,C,68,74,House,Detached,2009-11-05,E07000110,E14000700,Kent,2009-11-06,marketed sale,64,70,211,174.0,5.1,35,4.2,129.0,78.0,652.0,580.0,176.0,141.0,144.9,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,7.0,7.0,34.0,1.0,From main system,Good,Good,"Suspended, limited insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, mains gas",,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 34% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,,0.0,N,natural,"23, Abigail Crescent, Walderslade",Maidstone,Faversham and Mid Kent,CHATHAM,,2009-11-06 11:22:21,owner-occupied,,,200003709330.0,Address Matched +1489870310632016102015340277278692,7 Merve Apartments,26-28 Albion Place,,ME14 5DZ,1227697478,B,B,82,82,Flat,Mid-Terrace,2016-10-20,E07000110,E14000804,Kent,2016-10-20,new dwelling,83,83,101,101.0,1.5,18,1.5,55.0,55.0,263.0,263.0,84.0,84.0,81.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.77 W/m-¦K,Average,Average,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"7 Merve Apartments, 26-28 Albion Place",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2016-10-20 15:34:02,owner-occupied,7.0,7.0,10093304330.0,Address Matched +388415619202014041816071862949138,3 Shingle Barn Cottages,Smiths Hill,West Farleigh,ME15 0PH,9294319668,E,C,44,72,House,Semi-Detached,2014-04-17,E07000110,E14000804,Kent,2014-04-18,marketed sale,38,65,268,128.0,10.0,60,4.9,155.0,78.0,2048.0,1245.0,221.0,122.0,167.0,Single,N,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,3.0,7.0,7.0,0.0,2.0,From main system,Average,Average,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Poor,Poor,"Room heaters, wood logs",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, oil",Average,Average,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,oil (not community),0.0,NO DATA!,,,0.0,,natural,"3 Shingle Barn Cottages, Smiths Hill, West Farleigh",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2014-04-18 16:07:18,owner-occupied,19.0,0.0,10014311026.0,Address Matched +a38f0199fea661563f1f6120104be0129c72c945eb2687f895cbfeb69a82e6f9,1 THOMAS PLACE,JAMES WHATMAN WAY,,ME14 1FP,883497868,B,B,84,84,Flat,Mid-Terrace,2021-07-21,E07000110,E14000804,Kent,2021-07-28,rental,88,88,91,91.0,0.9,16,0.9,68.0,68.0,107.0,107.0,102.0,102.0,55.0,Single,N,01,N,,,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,100.0,0.0,Community scheme,Good,Good,(another dwelling below),,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Very Good,Very Good,,,,(another dwelling above),,,Community scheme,Good,Good,"Flat rate charging, programmer and room thermostat",Poor,Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (community),0.0,unheated corridor,7.07,2.39,0.0,N,natural,"1 THOMAS PLACE, JAMES WHATMAN WAY",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2012 onwards,2021-07-28 08:35:42,Rented (social),6.0,,10014312667.0,Energy Assessor +1717011979452020030410031521000769,Flat 47 Guinevere Point,Waterhouse Avenue,,ME14 2FJ,7922914678,B,B,86,86,Flat,End-Terrace,2020-03-04,E07000110,E14000804,Kent,2020-03-04,new dwelling,90,90,66,66.0,0.8,12,0.8,58.0,58.0,153.0,153.0,70.0,70.0,72.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.18 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Flat 47 Guinevere Point, Waterhouse Avenue",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2020-03-04 10:03:15,unknown,10.0,10.0,10094440155.0,Address Matched +1201348349962014091113290387898394,"27, Talbot Road",,,ME16 0HB,9802457278,C,B,72,89,House,Mid-Terrace,2014-09-11,E07000110,E14000804,Kent,2014-09-11,assessment for green deal,72,90,155,41.0,2.4,30,0.7,51.0,51.0,428.0,348.0,153.0,81.0,82.0,Unknown,Y,NODATA!,,,2107.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"27, Talbot Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2014-09-11 13:29:03,owner-occupied,8.0,8.0,200003659131.0,Address Matched +11781079262011052913293172138189,"23, Goldstone Walk",,,ME5 9QB,8706732468,D,C,66,69,House,Detached,2011-05-27,E07000110,E14000700,Kent,2011-05-29,marketed sale,63,67,209,188.0,3.9,40,3.5,78.0,49.0,597.0,568.0,120.0,106.0,97.92,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,5.0,5.0,40.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, mains gas",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 40% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,2.3,0.0,,natural,"23, Goldstone Walk",Maidstone,Faversham and Mid Kent,CHATHAM,England and Wales: 1983-1990,2011-05-29 13:29:31,owner-occupied,10.0,4.0,200003708870.0,Address Matched +1628780689702018050313555956780178,"35, Braunstone Drive",Allington,,ME16 0QZ,718287578,C,B,70,82,House,Detached,2018-05-03,E07000110,E14000804,Kent,2018-05-03,marketed sale,63,77,176,101.0,5.3,31,3.1,156.0,94.0,832.0,731.0,164.0,77.0,172.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,8.0,8.0,33.0,0.0,From main system,Good,Good,"Suspended, limited insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, mains gas",,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 33% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"35, Braunstone Drive, Allington",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2018-05-03 13:55:59,owner-occupied,,,200003659851.0,Address Matched +1624637329962018041910565757818408,"34, St. Lukes Road",,,ME14 5AW,576257578,E,C,40,78,House,Semi-Detached,2018-04-19,E07000110,E14000804,Kent,2018-04-19,rental (private),37,75,408,128.0,6.6,72,2.1,81.0,62.0,1281.0,628.0,117.0,69.0,93.0,Unknown,Y,NODATA!,,,2107.0,100.0,double glazing installed before 2002,Normal,1.0,5.0,5.0,70.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, electric",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 70% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"34, St. Lukes Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2018-04-19 10:56:57,rental (private),,,200003705975.0,Address Matched +219709089142019092811082554612838,"49, Allen Street",,,ME14 5AH,9127686568,E,C,52,80,House,Mid-Terrace,2019-09-27,E07000110,E14000804,Kent,2019-09-28,marketed sale,45,77,365,131.0,4.9,64,1.8,59.0,59.0,856.0,534.0,112.0,49.0,76.0,Single,Y,NODATA!,,,2107.0,100.0,"double glazing, unknown install date",Normal,2.0,4.0,4.0,100.0,0.0,From main system,Good,Good,(other premises below),NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"49, Allen Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2019-09-28 11:08:25,owner-occupied,,,200003704922.0,Address Matched +1002159939532015012017225273278907,"74, Queens Road",,,ME16 0LG,3783943178,E,B,46,82,House,Mid-Terrace,2015-01-20,E07000110,E14000804,Kent,2015-01-20,marketed sale,48,84,362,97.0,5.1,54,1.3,58.0,58.0,1185.0,536.0,115.0,76.0,94.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,100.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, wood logs",,,"Roof room(s), no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"74, Queens Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2015-01-20 17:22:52,owner-occupied,,,200003690592.0,Address Matched +1795992532022020040113185799398110,"53, Lasius Drive",Coxheath,,ME17 4UH,1993399678,B,A,85,96,House,Semi-Detached,2020-04-01,E07000110,E14000804,Kent,2020-04-01,new dwelling,87,98,80,4.0,1.3,14,0.1,72.0,72.0,218.0,218.0,75.0,45.0,90.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.21 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.10 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"53, Lasius Drive, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2020-04-01 13:18:57,unknown,12.0,12.0,10094444183.0,Address Matched +635435275932011052810114596268103,"7, Bramley Crescent",Bearsted,,ME15 8LA,7386117868,D,D,60,68,Bungalow,Semi-Detached,2011-05-28,E07000110,E14000700,Kent,2011-05-28,marketed sale,56,66,251,194.0,4.7,48,3.6,91.0,48.0,688.0,584.0,145.0,105.0,62.52,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,4.0,4.0,11.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Average,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 11% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,2.4,0.0,,natural,"7, Bramley Crescent, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2011-05-28 10:11:45,owner-occupied,9.0,1.0,200003688569.0,Address Matched +a3a272d04f6c05b9daeaaa7b6fe8265d6a1e1d9bf34ea9e2fb18065ce59e6d5b,19 Windmill Heights,Bearsted,,ME14 4QE,10001395944,D,C,55,75,House,Detached,2021-09-02,E07000110,E14000700,Kent,2021-09-05,marketed sale,46,67,285,154.0,7.8,50,4.2,193.0,106.0,1198.0,900.0,166.0,73.0,155.0,Single,Y,,,,,100.0,"double glazing, unknown install date",Normal,3.0,7.0,7.0,17.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 17% of fixed outlets,Poor,Poor,mains gas (not community),0.0,,,2.4,0.0,N,natural,"19 Windmill Heights, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1991-1995,2021-09-05 19:39:53,Owner-occupied,29.0,,200003692933.0,Energy Assessor +531458429242010082411510375902348,"41, Buckland Hill",,,ME16 0SA,5200229768,F,D,38,64,House,Detached,2010-08-24,E07000110,E14000804,Kent,2010-08-24,marketed sale,35,60,409,224.0,13.0,69,6.9,119.0,99.0,1907.0,1041.0,230.0,164.0,183.22,Single,Y,NO DATA!,,,2106.0,40.0,"double glazing, unknown install date",Normal,0.0,8.0,8.0,80.0,1.0,From main system,Average,Good,"Suspended, no insulation (assumed)",,,Partial double glazing,Poor,Poor,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Average,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.6,0.0,N,natural,"41, Buckland Hill",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2010-08-24 11:51:03,owner-occupied,,,200003666814.0,Address Matched +1415145469962016022417004252518416,"14, Thatch Barn Road",Headcorn,,TN27 9UB,1576662478,D,B,62,87,House,End-Terrace,2016-02-19,E07000110,E14000700,Kent,2016-02-24,non marketed sale,57,86,271,68.0,3.6,48,1.0,64.0,64.0,493.0,375.0,298.0,74.0,76.0,Single,Y,NODATA!,,,2107.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,75.0,0.0,"From main system, no cylinder thermostat",Poor,Poor,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"14, Thatch Barn Road, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,England and Wales: 1967-1975,2016-02-24 17:00:42,owner-occupied,,,200003726906.0,Address Matched +1781018819032020013114395935778506,"25, Worcester Road",,,ME15 7LU,1635588678,D,B,64,87,House,Semi-Detached,2020-01-30,E07000110,E14000700,Kent,2020-01-31,marketed sale,59,86,258,75.0,3.9,45,1.2,96.0,67.0,626.0,382.0,133.0,80.0,85.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,56.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 56% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"25, Worcester Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2020-01-31 14:39:59,owner-occupied,,,200003712285.0,Address Matched +1517863899642017020822092141930888,"19, Bodsham Crescent",Bearsted,,ME15 8NL,8643499478,D,B,63,89,Bungalow,Detached,2017-02-08,E07000110,E14000700,Kent,2017-02-08,marketed sale,59,89,312,67.0,2.9,55,0.7,37.0,37.0,487.0,339.0,162.0,65.0,53.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,100.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"19, Bodsham Crescent, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2017-02-08 22:09:21,owner-occupied,,,200003693231.0,Address Matched +596724919342011102813273182492488,"44, Cambridge Crescent",,,ME15 7NG,3308914868,D,D,68,68,House,Semi-Detached,2011-10-28,E07000110,E14000700,Kent,2011-10-28,rental (social),67,67,208,208.0,3.0,40,3.0,51.0,51.0,482.0,482.0,108.0,108.0,73.9,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,4.0,4.0,75.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,2.44,0.0,,natural,"44, Cambridge Crescent",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2011-10-28 13:27:31,rental (social),8.0,6.0,200003712463.0,Address Matched +831802055912012090517551494020000,"1, Cross Keys",Bearsted,,ME14 4HR,58541078,E,B,53,83,House,Semi-Detached,2012-09-05,E07000110,E14000700,Kent,2012-09-05,marketed sale,50,84,274,74.0,5.0,52,1.4,73.0,51.0,831.0,459.0,149.0,71.0,95.0,Single,Y,NODATA!,,,2104.0,85.0,double glazing installed before 2002,Normal,4.0,5.0,5.0,58.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Mostly double glazing,Poor,Poor,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Flat, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 58% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"1, Cross Keys, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2012-09-05 17:55:14,owner-occupied,12.0,7.0,200003694872.0,Address Matched +257153400402009040422483960010828,9 Mallard Apartments,Wallis Avenue,,ME15 9JL,1433800668,B,B,82,83,Flat,Semi-Detached,2009-04-02,E07000110,E14000700,Kent,2009-04-04,rental (social),81,81,159,153.0,1.4,26,1.4,42.0,26.0,216.0,218.0,73.0,73.0,54.18,Unknown,Y,2nd,N,4.0,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,40.0,0.0,From main system,Very Good,Very Good,(other premises below),,,Fully double glazed,Average,Average,"System built, with external insulation",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 40% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,unheated corridor,9.0,2.34,0.0,N,natural,"9 Mallard Apartments, Wallis Avenue",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2009-04-04 22:48:39,rental (social),,,200003683581.0,Address Matched +165793046512008102215275709289952,"175, Kingfisher Meadow",,,ME16 8RD,9224692568,C,B,74,82,Flat,Enclosed End-Terrace,2008-10-22,E07000110,E14000804,Kent,2008-10-22,marketed sale,77,76,206,213.0,1.7,31,1.7,29.0,29.0,196.0,111.0,113.0,113.0,54.52,Unknown,N,2nd,N,4.0,2603.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,100.0,0.0,"Electric immersion, off-peak",Poor,Poor,(other premises below),,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Room heaters, electric",Very Poor,Poor,Programmer and appliance thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity - this is for backwards compatibility only and should not be used,0.0,unheated corridor,2.16,2.45,0.0,N,natural,"175, Kingfisher Meadow",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2008-10-22 15:27:57,owner-occupied,,,10022892386.0,Address Matched +1446520769222016052505545494148686,"2, Somerset Road",,,ME15 7EJ,8931684478,D,B,57,86,House,Semi-Detached,2016-05-24,E07000110,E14000700,Kent,2016-05-25,marketed sale,50,85,325,83.0,4.6,57,1.2,69.0,53.0,625.0,432.0,342.0,75.0,80.0,Unknown,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,70.0,0.0,"From main system, no cylinder thermostat",Poor,Poor,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 70% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,2.43,,N,natural,"2, Somerset Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2016-05-25 05:54:54,owner-occupied,,,200003711289.0,Address Matched +1726509289022019070811171394788551,Sunny Bank,Lenham Road,Headcorn,TN27 9LJ,5981884678,C,B,74,83,Bungalow,Semi-Detached,2019-07-08,E07000110,E14000700,Kent,2019-07-08,new dwelling,68,78,112,57.0,3.6,29,2.3,83.0,83.0,313.0,313.0,187.0,149.0,124.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Average,Average,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.21 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.15 W/m-¦K,Good,Good,"Boiler and underfloor heating, oil",Average,Average,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,oil - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Sunny Bank, Lenham Road, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,NO DATA!,2019-07-08 11:17:13,unknown,15.0,15.0,10094441021.0,Address Matched +944127989062013060509305439378657,6 Spring Grove Cottages,Goudhurst Road,Marden,TN12 9JU,5359839078,C,B,72,88,House,Mid-Terrace,2013-06-03,E07000110,E14000804,Kent,2013-06-05,marketed sale,74,90,152,49.0,2.6,27,0.8,87.0,52.0,442.0,426.0,123.0,78.0,96.0,Single,Y,NODATA!,,,2106.0,67.0,double glazing installed during or after 2002,Normal,2.0,5.0,5.0,33.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Partial double glazing,Average,Average,"Timber frame, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 33% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"6 Spring Grove Cottages, Goudhurst Road, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1900-1929,2013-06-05 09:30:54,owner-occupied,15.0,5.0,200003669248.0,Address Matched +417488360052010010712395992000176,Flat 3 Ennerdale House,Westmorland Green,,ME15 8BW,1635021768,C,C,72,72,Flat,Enclosed End-Terrace,2010-01-07,E07000110,E14000700,Kent,2010-01-07,rental (social),68,68,246,246.0,2.6,41,2.6,33.0,33.0,419.0,419.0,85.0,85.0,62.25,Single,Y,1st,N,3.0,2106.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,100.0,0.0,From main system,Very Good,Very Good,(other premises below),,,Fully double glazed,Average,Average,"System built, as built, no insulation (assumed)",Very Poor,Very Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,unheated corridor,4.27,2.46,0.0,N,natural,"Flat 3 Ennerdale House, Westmorland Green",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2010-01-07 12:39:59,rental (social),,,200003685510.0,Address Matched +742294949222012012717302735638542,"82, Lacock Gardens",,,ME15 6GQ,4372405968,C,C,69,73,House,End-Terrace,2012-01-27,E07000110,E14000804,Kent,2012-01-27,marketed sale,69,73,190,165.0,2.9,36,2.6,96.0,48.0,441.0,422.0,113.0,101.0,94.88,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,0.0,0.0,From main system,Good,Good,"Solid, limited insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,2.48,0.0,,natural,"82, Lacock Gardens",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2012-01-27 17:30:27,owner-occupied,15.0,0.0,10034134541.0,Address Matched +a3e1cdb7753b8f5c15a73bfeb405bc4f54e370f8b8b78e22af4febfb55e873f1,15 PROSPECT PLACE,,,ME16 8EG,10001398160,D,B,64,84,House,Mid-Terrace,2021-07-09,E07000110,E14000804,Kent,2021-07-09,marketed sale,62,84,224,80.0,3.4,39,1.2,71.0,71.0,683.0,478.0,83.0,56.0,87.0,Unknown,Y,,,,,100.0,"double glazing, unknown install date",Normal,1.0,4.0,3.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,Portable electric heaters (assumed),,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.4,0.0,N,natural,15 PROSPECT PLACE,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2021-07-09 12:48:22,Owner-occupied,10.0,,200003667554.0,Energy Assessor +254930119742019071019563050919308,"2a, Wrangleden Road",,,ME15 9LS,4732219568,D,C,68,71,Flat,Semi-Detached,2019-07-10,E07000110,E14000700,Kent,2019-07-10,rental (social),67,72,278,233.0,2.1,49,1.8,36.0,36.0,385.0,322.0,81.0,81.0,43.0,Single,Y,Ground,N,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"System built, as built, no insulation (assumed)",Very Poor,Very Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,no corridor,,,,N,natural,"2a, Wrangleden Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2019-07-10 19:56:30,rental (social),,,200003683197.0,Address Matched +1625744259042018042313531756782178,"58, Longham Copse",Downswood,,ME15 8TL,7010957578,C,C,70,79,Flat,Enclosed End-Terrace,2018-04-23,E07000110,E14000700,Kent,2018-04-23,marketed sale,53,66,549,394.0,2.4,93,1.7,25.0,25.0,282.0,156.0,115.0,115.0,26.0,dual,N,Ground,N,,2401.0,100.0,"double glazing, unknown install date",Normal,0.0,1.0,1.0,100.0,0.0,"Electric immersion, off-peak",Average,Poor,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Timber frame, as built, insulated (assumed)",Good,Good,Portable electric heaters (assumed),,,(another dwelling above),,,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,unheated corridor,2.4,,,N,natural,"58, Longham Copse, Downswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2018-04-23 13:53:17,owner-occupied,,,200003686481.0,Address Matched +1292007999202015032512130331359608,"10, Abbots Field",,,ME16 8QQ,1241793378,D,B,55,83,House,Detached,2015-03-10,E07000110,E14000804,Kent,2015-03-25,ECO assessment,51,82,299,89.0,4.6,52,1.4,66.0,66.0,917.0,496.0,106.0,71.0,87.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,80.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"10, Abbots Field",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2015-03-25 12:13:03,owner-occupied,,,200003674859.0,Address Matched +a4261fa54fc0b5e3a19da5f28adc61e10b43125757ec2f44b60ebd92a795b047,4 WELLINGTON PLACE,PERRY STREET,,ME14 2RZ,10001488653,E,C,54,75,House,Mid-Terrace,2021-07-01,E07000110,E14000804,Kent,2021-07-01,ECO assessment,49,72,324,156.0,4.6,57,2.2,65.0,65.0,872.0,659.0,136.0,82.0,80.0,Single,Y,,,,,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,"Pitched, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.55,0.0,N,natural,"4 WELLINGTON PLACE, PERRY STREET",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2021-07-01 18:50:56,Rented (social),11.0,,200003669922.0,Energy Assessor +642279169242011061617162087799968,"35, Bedgebury Close",,,ME14 5QZ,3202367868,D,D,61,65,House,End-Terrace,2011-06-16,E07000110,E14000804,Kent,2011-06-16,marketed sale,57,62,247,219.0,4.3,48,3.8,61.0,46.0,606.0,592.0,182.0,127.0,90.05,Single,Y,NODATA!,,,2504.0,90.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,67.0,0.0,"From main system, no cylinder thermostat",Poor,Poor,"Solid, no insulation (assumed)",,,Mostly double glazing,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Warm air, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 67% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,2.38,0.0,,natural,"35, Bedgebury Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2011-06-16 17:16:20,owner-occupied,12.0,8.0,200003672034.0,Address Matched +112993155512009020520101708010448,"46, Clifford Way",,,ME16 8GD,4888587468,B,B,86,88,Flat,Semi-Detached,2009-02-04,E07000110,E14000804,Kent,2009-02-05,rental (private),87,88,101,93.0,1.1,16,1.1,62.0,36.0,162.0,165.0,74.0,74.0,69.32,Unknown,Y,3rd,N,5.0,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,31.0,0.0,From main system,Very Good,Very Good,(other premises below),,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 31% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,heated corridor,,2.32,0.0,N,natural,"46, Clifford Way",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2009-02-05 20:10:17,rental (private),,,10022896059.0,Address Matched +a41327bdedad7f8fbcaee4ee960fc63a5ec7b4fd26324a1cff1a081dcd8186f7,20 High Street,Lenham,,ME17 2QD,10001404893,D,B,59,82,House,Mid-Terrace,2021-08-10,E07000110,E14000700,Kent,2021-08-10,rental,51,79,292,116.0,5.2,52,2.1,107.0,86.0,840.0,534.0,121.0,79.0,100.0,dual,Y,,,,,0.0,not defined,Normal,0.0,6.0,6.0,75.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.127,0.0,N,natural,"20 High Street, Lenham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2021-08-10 12:44:22,Owner-occupied,16.0,,200003711205.0,Energy Assessor +1040368919442013110912565918670618,"75, Postley Road",,,ME15 6TP,9468816178,C,B,71,87,House,Semi-Detached,2013-11-09,E07000110,E14000804,Kent,2013-11-09,rental (private),71,88,167,55.0,2.5,32,0.9,74.0,49.0,382.0,358.0,146.0,77.0,77.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,5.0,5.0,50.0,0.0,From main system,Good,Good,"Solid, limited insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"75, Postley Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2013-11-09 12:56:59,rental (private),10.0,5.0,200003686802.0,Address Matched +1536135129962019071916181391118271,"16, Admiral Way",Marden,,TN12 9FN,7933221578,B,A,85,93,House,Detached,2019-07-19,E07000110,E14000804,Kent,2019-07-19,new dwelling,85,93,76,26.0,1.9,13,0.7,89.0,89.0,299.0,299.0,100.0,56.0,144.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.12 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.28 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"16, Admiral Way, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,NO DATA!,2019-07-19 16:18:13,owner-occupied,14.0,14.0,10093303256.0,Address Matched +597358737732013031208111785068409,"19, Titchfield Close",,,ME15 8TA,3945424868,C,B,75,90,House,Enclosed Mid-Terrace,2013-03-04,E07000110,E14000700,Kent,2013-03-12,rental (social),77,92,143,30.0,1.8,27,0.4,51.0,40.0,312.0,286.0,103.0,68.0,67.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,More Than Typical,0.0,3.0,3.0,71.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"System built, with internal insulation",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 71% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"19, Titchfield Close",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2013-03-12 08:11:17,rental (social),7.0,5.0,200003727393.0,Address Matched +316405414512009070615305401010267,Apartment 4,55-57 Hartnup Street,,ME16 8FH,2753414668,B,B,87,87,Flat,Detached,2009-06-01,E07000110,E14000804,Kent,2009-07-06,new dwelling,86,86,117,117.0,1.0,19,1.0,26.0,26.0,183.0,183.0,73.0,73.0,51.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,,From main system,Very Good,Very Good,(other premises below),,,Fully double glazed,Good,Good,Average thermal transmittance 0.18 W/m??K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 100% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,,,NO DATA!,"Apartment 4, 55-57 Hartnup Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2009-07-06 15:30:54,,,,10014308151.0,Address Matched +738622099232012011112433572968801,"147, Trevor Drive",,,ME16 0QL,9152854968,D,D,58,67,Bungalow,Detached,2012-01-11,E07000110,E14000804,Kent,2012-01-11,marketed sale,55,65,270,206.0,4.4,52,3.3,87.0,50.0,662.0,554.0,145.0,105.0,84.04,dual,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,25.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 25% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,2.43,0.0,,natural,"147, Trevor Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2012-01-11 12:43:35,owner-occupied,12.0,3.0,200003704375.0,Address Matched +1135864392042020022710060826202468,Flat 109 Lee Heights,Bambridge Court,,ME14 2LD,4054292278,C,B,78,84,Flat,Semi-Detached,2020-02-26,E07000110,E14000804,Kent,2020-02-27,marketed sale,75,76,166,162.0,1.9,28,1.9,89.0,69.0,216.0,153.0,211.0,191.0,69.0,dual,N,1st,N,,2602.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,50.0,0.0,"Electric immersion, off-peak",Poor,Poor,(another dwelling below),NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Room heaters, electric",Very Poor,Poor,Appliance thermostats,Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,electricity (not community),0.0,unheated corridor,5.0,,,N,natural,"Flat 109 Lee Heights, Bambridge Court",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2020-02-27 10:06:08,owner-occupied,,,10022893080.0,Address Matched +1418974129062016030111551182798156,Flat 39 Star House,Pudding Lane,,ME14 1LT,5898292478,C,C,77,77,Flat,Enclosed Mid-Terrace,2016-03-01,E07000110,E14000804,Kent,2016-03-01,new dwelling,78,78,157,157.0,1.5,28,1.5,38.0,38.0,281.0,281.0,93.0,93.0,55.0,standard tariff,,top floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,(other premises below),,,Full secondary glazing,Average,Average,Average thermal transmittance 0.29 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.17 W/m-¦K,Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Flat 39 Star House, Pudding Lane",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2016-03-01 11:55:11,owner-occupied,5.0,5.0,10091195031.0,Address Matched +400957300842009111917523676019518,"The Cottage, Linden House",Biddenden Road,Headcorn,TN27 9JE,7834300768,D,C,66,73,House,Detached,2009-11-19,E07000110,E14000700,Kent,2009-11-19,marketed sale,62,66,189,161.0,5.0,38,4.5,135.0,67.0,566.0,494.0,186.0,175.0,71.28,Single,N,NO DATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,0.0,0.0,From main system,Average,Average,"Solid, insulated",,,Fully double glazed,Good,Good,"Solid brick, with internal insulation",Good,Good,"Room heaters, electric",,,"Roof room(s), insulated",Good,Good,"Boiler and radiators, oil",Average,Average,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,oil - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,0.0,N,natural,"The Cottage, Linden House, Biddenden Road, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,England and Wales: before 1900,2009-11-19 17:52:36,owner-occupied,,,200003700711.0,Address Matched +373250428412020062418013420200362,Beam End,High Street,Lenham,ME17 2QD,3208808668,D,B,66,83,House,End-Terrace,2020-06-24,E07000110,E14000700,Kent,2020-06-24,marketed sale,66,83,217,99.0,3.7,35,1.6,104.0,77.0,711.0,542.0,105.0,72.0,105.0,Unknown,Y,NODATA!,,,2107.0,100.0,"double glazing, unknown install date",Normal,3.0,5.0,5.0,65.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 65% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"Beam End, High Street, Lenham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2020-06-24 18:01:34,owner-occupied,,,200003712525.0,Address Matched +385896860222009102113420058798561,"5, Edmund Close",Barming,,ME16 9PS,6583698668,D,C,66,77,House,Semi-Detached,2009-10-21,E07000110,E14000804,Kent,2009-10-21,marketed sale,62,74,277,191.0,3.4,46,2.3,68.0,37.0,450.0,346.0,144.0,107.0,72.56,Single,Y,NO DATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,14.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 100mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 14% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,,0.0,N,natural,"5, Edmund Close, Barming",Maidstone,Maidstone and The Weald,MAIDSTONE,,2009-10-21 13:42:00,owner-occupied,,,200003699222.0,Address Matched +1420013659152016061615375899960642,"6, Nightingale Road",Allington,,ME16 0FQ,6283992478,B,A,84,96,House,End-Terrace,2016-06-16,E07000110,E14000804,Kent,2016-06-16,new dwelling,87,98,79,-1.0,1.2,14,0.0,60.0,60.0,209.0,209.0,88.0,52.0,86.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.27 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"6, Nightingale Road, Allington",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2016-06-16 15:37:58,owner-occupied,10.0,10.0,10091195290.0,Address Matched +1282531829302016072308140238362828,"36, Felderland Drive",,,ME15 9YB,6355923378,C,B,71,86,House,End-Terrace,2016-07-22,E07000110,E14000700,Kent,2016-07-23,marketed sale,69,84,197,87.0,2.8,35,1.3,53.0,53.0,505.0,440.0,106.0,73.0,80.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,2.38,,N,natural,"36, Felderland Drive",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2016-07-23 08:14:02,owner-occupied,,,200003682818.0,Address Matched +811262023232012070919170147068908,"47, Sandling Road",,,ME14 2RH,2877999968,E,B,48,88,House,Mid-Terrace,2012-07-09,E07000110,E14000804,Kent,2012-07-09,marketed sale,54,88,258,51.0,4.5,47,1.0,99.0,55.0,1015.0,376.0,73.0,63.0,97.0,Unknown,Y,NODATA!,,,2601.0,85.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,20.0,0.0,Gas multipoint,Average,Average,"Suspended, limited insulation (assumed)",,,Mostly double glazing,Poor,Poor,"Solid brick, as built, insulated (assumed)",Good,Good,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, insulated (assumed)",Good,Good,"Room heaters, electric",Very Poor,Very Poor,No thermostatic control of room temperature,Poor,Poor,Low energy lighting in 20% of fixed outlets,Poor,Poor,electricity (not community),0.0,NO DATA!,,,0.0,,natural,"47, Sandling Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2012-07-09 19:17:01,owner-occupied,10.0,2.0,200003669446.0,Address Matched +177698559832008110810345370068190,"66, Roseacre Lane",Bearsted,,ME14 4JG,5040193568,D,C,66,73,House,Detached,2008-11-07,E07000110,E14000700,Kent,2008-11-08,marketed sale,62,69,203,164.0,8.2,33,6.7,241.0,121.0,857.0,757.0,178.0,144.0,267.21,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,9.0,9.0,0.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, mains gas",,,"Pitched, 200mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,0.0,N,natural,"66, Roseacre Lane, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1991-1995,2008-11-08 10:34:53,owner-occupied,,,200003692993.0,Address Matched +538977979062010091116484029918620,"17, Ballard Close",Marden,,TN12 9HW,2200779768,D,C,65,71,House,Enclosed End-Terrace,2010-09-09,E07000110,E14000804,Kent,2010-09-11,rental (private),55,60,465,417.0,2.9,70,2.6,39.0,24.0,284.0,233.0,126.0,126.0,40.88,dual,N,NO DATA!,,,2401.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,40.0,0.0,"Electric immersion, off-peak",Average,Poor,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Timber frame, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,"Pitched, 100 mm loft insulation",Average,Average,Electric storage heaters,Poor,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 40% of fixed outlets,Average,Average,electricity - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.38,0.0,N,natural,"17, Ballard Close, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1976-1982,2010-09-11 16:48:40,rental (private),,,200003708698.0,Address Matched +302083272612009061121300201910267,The Rookery,Lughorse Lane,Hunton,ME15 0QU,2705213668,F,E,30,43,House,Detached,2009-06-10,E07000110,E14000804,Kent,2009-06-11,marketed sale,30,43,407,309.0,14.0,77,9.8,177.0,94.0,1908.0,1477.0,288.0,208.0,193.62,dual,N,NO DATA!,,,2107.0,95.0,double glazing installed before 2002,Normal,1.0,7.0,2.0,12.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Partial double glazing,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, wood logs",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, oil",Average,Average,"Programmer, TRVs and bypass",Poor,Poor,Low energy lighting in 12% of fixed outlets,Poor,Poor,oil - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.3,0.0,N,natural,"The Rookery, Lughorse Lane, Hunton",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2009-06-11 21:30:02,owner-occupied,,,200003663640.0,Address Matched +390033939402014082214264069942328,"9, Milstead Close",,,ME14 5PQ,3451039668,E,C,52,76,Flat,Mid-Terrace,2014-08-22,E07000110,E14000804,Kent,2014-08-22,none of the above,49,78,313,133.0,4.1,60,1.7,91.0,46.0,798.0,345.0,96.0,98.0,68.0,Single,Y,2nd,Y,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,0.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, no insulation",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,no corridor,,,0.0,,natural,"9, Milstead Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2014-08-22 14:26:40,owner-occupied,6.0,0.0,200003671384.0,Address Matched +877407569502013012917253308472418,Harts Cottage,Bottlescrew Hill,Boughton Monchelsea,ME17 4LY,4555564078,C,B,69,81,House,Detached,2013-01-29,E07000110,E14000700,Kent,2013-01-29,marketed sale,68,81,157,94.0,5.3,27,3.1,131.0,80.0,991.0,894.0,120.0,75.0,198.0,Single,Y,NODATA!,,,2106.0,5.0,double glazing installed before 2002,Normal,1.0,7.0,7.0,33.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Some double glazing,Very Poor,Very Poor,"Cavity wall, filled cavity",Good,Good,"Room heaters, wood logs",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 33% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"Harts Cottage, Bottlescrew Hill, Boughton Monchelsea",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2013-01-29 17:25:33,owner-occupied,18.0,6.0,200003674776.0,Address Matched +13797850912017092819342492030741,"6, Lynley Close",,,ME15 9GD,7196028468,C,B,79,89,House,Mid-Terrace,2017-05-09,E07000110,E14000700,Kent,2017-09-28,rental (social),77,87,127,61.0,2.5,22,1.2,73.0,73.0,399.0,401.0,122.0,72.0,112.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Very Good,Very Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"6, Lynley Close",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2007 onwards,2017-09-28 19:34:24,rental (social),,,10022895384.0,Address Matched +1640305059962018061420413078128328,Willow Wood,Vicarage Lane,East Farleigh,ME15 0LX,2745568578,C,B,72,84,House,Detached,2018-06-12,E07000110,E14000804,Kent,2018-06-14,marketed sale,65,76,159,99.0,9.0,29,5.8,155.0,155.0,1558.0,1491.0,133.0,133.0,312.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,11.0,11.0,77.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Average,Average,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 77% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"Willow Wood, Vicarage Lane, East Farleigh",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2018-06-14 20:41:30,owner-occupied,,,200003673167.0,Address Matched +195791630642008120511070852580658,"129, York Road",,,ME15 7QX,1693135568,C,C,75,76,House,Mid-Terrace,2008-12-05,E07000110,E14000700,Kent,2008-12-05,rental (social),71,72,216,207.0,2.5,36,2.4,31.0,31.0,297.0,283.0,109.0,109.0,69.6,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,100.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.41,0.0,N,natural,"129, York Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1900-1929,2008-12-05 11:07:08,rental (social),,,200003715732.0,Address Matched +452086329222011072117155003798069,2 Cape Verde Gardens,,,ME15 9WT,6060263768,B,B,81,81,House,End-Terrace,2011-07-21,E07000110,E14000700,Kent,2011-07-21,new dwelling,85,85,91,91.0,1.5,17,1.5,63.0,63.0,298.0,298.0,41.0,41.0,87.2,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,9.0,,"From main system, plus solar",Very Good,Very Good,Average thermal transmittance 0.18 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.23 W/m?K,Very Good,Very Good,"Room heaters, electric",,,Average thermal transmittance 0.10 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.33,,,NO DATA!,2 Cape Verde Gardens,Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2011-07-21 17:15:50,,12.0,9.0,, +686130111752012100511203597029492,"40, The Farrows",,,ME15 9ZJ,4220170968,B,B,85,85,House,Semi-Detached,2012-10-05,E07000110,E14000700,Kent,2012-10-05,new dwelling,87,87,69,69.0,1.7,13,1.7,79.0,79.0,298.0,298.0,63.0,63.0,126.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,"From main system, plus solar",Very Good,Very Good,Average thermal transmittance 0.15 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.12 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in 82% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"40, The Farrows",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2012-10-05 11:20:35,NO DATA!,17.0,14.0,10014312574.0,Address Matched +45352771712011062823032690290950,17 Hayle Mill,Hayle Mill Road,,ME15 6JW,9026105568,C,C,77,78,House,End-Terrace,2011-06-28,E07000110,E14000804,Kent,2011-06-28,marketed sale,80,81,133,125.0,1.7,25,1.6,69.0,39.0,281.0,285.0,77.0,77.0,68.04,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,26.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",,,Fully double glazed,Good,Good,"Timber frame, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 26% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,2.19,0.0,,natural,"17 Hayle Mill, Hayle Mill Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2011-06-28 23:03:26,owner-occupied,19.0,5.0,10022896937.0,Address Matched +808209579722012063019254079008602,"6, Brooker Close",Boughton Monchelsea,,ME17 4UY,780779968,D,C,68,80,House,Detached,2012-06-30,E07000110,E14000700,Kent,2012-06-30,marketed sale,65,77,170,100.0,4.4,33,2.6,125.0,66.0,652.0,624.0,141.0,85.0,134.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,7.0,7.0,11.0,1.0,From main system,Good,Good,"Solid, insulated (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, mains gas",,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 11% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"6, Brooker Close, Boughton Monchelsea",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2003-2006,2012-06-30 19:25:40,owner-occupied,18.0,2.0,10022892680.0,Address Matched +1669899679922018101014330340308318,"8, Whatman Drive",,,ME14 5FZ,1479770678,B,B,81,81,Flat,Detached,2018-10-10,E07000110,E14000700,Kent,2018-10-10,new dwelling,83,83,116,116.0,1.4,20,1.4,52.0,52.0,242.0,242.0,67.0,67.0,66.0,standard tariff,,top floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.17 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.27 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.14 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"8, Whatman Drive",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2018-10-10 14:33:03,owner-occupied,7.0,7.0,10093305890.0,Address Matched +13874400852017092817332592930642,"21, Tennison Way",,,ME15 9GE,6298028468,C,B,78,89,House,Mid-Terrace,2017-05-10,E07000110,E14000700,Kent,2017-09-28,rental (social),78,88,131,56.0,2.3,23,1.0,67.0,67.0,358.0,360.0,120.0,70.0,98.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Very Good,Very Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"21, Tennison Way",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2007 onwards,2017-09-28 17:33:25,rental (social),,,10022895438.0,Address Matched +504082729542010062417593773702378,"231, Willington Street",,,ME15 8EW,9591927768,E,D,42,64,House,Detached,2010-06-23,E07000110,E14000700,Kent,2010-06-24,marketed sale,37,57,376,232.0,13.0,63,8.3,196.0,109.0,1893.0,1197.0,250.0,178.0,185.41,Single,Y,NO DATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,2.0,8.0,8.0,20.0,0.0,From main system,Average,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Average,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 20% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.61,0.0,N,natural,"231, Willington Street",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2010-06-24 17:59:37,owner-occupied,,,200003684785.0,Address Matched +679731954252011091922542592990996,"28, West Street",Harrietsham,,ME17 1HX,9689420968,G,F,7,33,House,Mid-Terrace,2011-09-15,E07000110,E14000700,Kent,2011-09-19,rental (private),1,74,771,491.0,20.0,244,2.4,79.0,44.0,2103.0,1327.0,342.0,169.0,68.06,Unknown,N,NODATA!,,,2101.0,80.0,secondary glazing,Normal,1.0,5.0,4.0,18.0,1.0,"From main system, no cylinder thermostat",Very Poor,Very Poor,"Suspended, no insulation (assumed)",,,Mostly secondary glazing,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, smokeless fuel",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, smokeless fuel",Poor,Very Poor,No time or thermostatic control of room temperature,Very Poor,Very Poor,Low energy lighting in 18% of fixed outlets,Poor,Poor,smokeless coal,0.0,NO DATA!,,2.37,0.0,,natural,"28, West Street, Harrietsham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2011-09-19 22:54:25,rental (private),11.0,2.0,200003703623.0,Address Matched +1407562051212016020309245691060549,"103, Postley Road",,,ME15 6GE,5980112478,C,B,72,87,House,Semi-Detached,2016-02-03,E07000110,E14000804,Kent,2016-02-03,assessment for green deal,71,87,190,73.0,2.5,34,1.0,55.0,55.0,433.0,394.0,143.0,74.0,76.0,Unknown,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"103, Postley Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2016-02-03 09:24:56,owner-occupied,,,200003680822.0,Address Matched +1194060949222014082222585437298584,Flat 3 Linden House,Bell Road,,ME15 9GU,8385407278,B,B,81,81,Flat,Detached,2014-08-21,E07000110,E14000700,Kent,2014-08-22,rental (social),84,85,97,93.0,1.2,18,1.2,62.0,48.0,228.0,230.0,98.0,98.0,67.0,Unknown,Y,1st,N,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,71.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Good,Good,"Timber frame, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 71% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,9.0,,0.0,,natural,"Flat 3 Linden House, Bell Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2003-2006,2014-08-22 22:58:54,rental (social),7.0,5.0,10022896382.0,Address Matched +1686320579922018121713011801338528,Flat 9 Valley Heights,"10, Whatman Drive",,ME14 5FZ,2009791678,B,B,84,84,Flat,End-Terrace,2018-12-17,E07000110,E14000700,Kent,2018-12-17,new dwelling,88,88,79,79.0,1.1,14,1.1,57.0,57.0,190.0,190.0,72.0,72.0,78.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.26 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Flat 9 Valley Heights, 10, Whatman Drive",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2018-12-17 13:01:18,owner-occupied,9.0,9.0,10093305914.0,Address Matched +449982194932011041418502840968609,"40, Hampshire Drive",,,ME15 7ET,9990643768,D,C,67,75,House,Semi-Detached,2011-04-14,E07000110,E14000700,Kent,2011-04-14,marketed sale,63,71,234,180.0,4.2,39,3.3,104.0,60.0,664.0,527.0,117.0,117.0,108.97,Single,Y,NO DATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,6.0,6.0,27.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 27% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.66,0.0,N,natural,"40, Hampshire Drive",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2011-04-14 18:50:28,owner-occupied,,,200003711429.0,Address Matched +1242763249432014112807074183278691,"16, Sunburst Close",Marden,,TN12 9TS,4173640378,C,B,75,91,House,Mid-Terrace,2014-11-26,E07000110,E14000804,Kent,2014-11-28,none of the above,77,93,141,27.0,1.8,27,0.4,75.0,44.0,310.0,295.0,127.0,79.0,68.0,Unknown,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,30.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 30% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"16, Sunburst Close, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1991-1995,2014-11-28 07:07:41,rental (social),10.0,3.0,200003711257.0,Address Matched +1639628289922018061213231158528068,"47, Salisbury Road",Penenden Heath,,ME14 2TY,6543858578,D,B,61,85,House,Mid-Terrace,2018-06-12,E07000110,E14000804,Kent,2018-06-12,rental (private),55,82,263,88.0,4.3,46,1.5,125.0,63.0,711.0,448.0,110.0,74.0,93.0,Unknown,Y,NODATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,0.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"47, Salisbury Road, Penenden Heath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2018-06-12 13:23:11,rental (private),,,200003703435.0,Address Matched +495306066852010060609590196000673,5c Elizabeth House,Alexandra Street,,ME14 2BX,6367666768,G,D,15,59,Flat,Detached,2010-06-04,E07000110,E14000804,Kent,2010-06-06,rental (private),39,46,745,628.0,3.9,112,3.3,33.0,33.0,933.0,340.0,188.0,99.0,35.15,dual,N,2nd,Y,3.0,2603.0,,not defined,Much More Than Typical,0.0,1.0,1.0,50.0,0.0,"Electric immersion, off-peak",Very Poor,Poor,(other premises below),,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, limited insulation (assumed)",Very Poor,Very Poor,"Room heaters, electric",Very Poor,Poor,Programmer and appliance thermostats,Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,electricity - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.41,0.0,N,natural,"5c Elizabeth House, Alexandra Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2010-06-06 09:59:01,rental (private),,,200003728119.0,Address Matched +1789401047252020030320135824000065,1 Bank Cottages,Pilgrims Way,Hollingbourne,ME17 1UP,505749678,D,C,56,75,House,End-Terrace,2020-03-03,E07000110,E14000700,Kent,2020-03-03,rental (private),49,70,360,195.0,4.0,63,2.2,78.0,52.0,704.0,599.0,96.0,70.0,63.0,Single,Y,NODATA!,,,2106.0,0.0,not defined,Normal,4.0,4.0,4.0,50.0,0.0,From main system,Very Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Single glazed,Very Poor,Very Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, mains gas",,,"Pitched, insulated (assumed)",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"1 Bank Cottages, Pilgrims Way, Hollingbourne",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2020-03-03 20:13:58,rental (private),,,200003701896.0,Address Matched +719158782952011110718335090099892,"122, Fennel Close",,,ME16 0XT,8294203968,C,C,71,74,House,Mid-Terrace,2011-11-04,E07000110,E14000804,Kent,2011-11-07,rental (private),72,76,163,141.0,3.0,31,2.6,106.0,53.0,472.0,455.0,101.0,90.0,65.6,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,0.0,0.0,From main system,Good,Good,"Suspended, limited insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,"Roof room(s), ceiling insulated",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,2.3,0.0,,natural,"122, Fennel Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2011-11-07 18:33:50,rental (private),11.0,0.0,200003722421.0,Address Matched +306133720012020022813102624200264,"2, St. Heliers Close",,,ME16 8QZ,2485043668,D,B,67,84,House,Detached,2020-02-28,E07000110,E14000804,Kent,2020-02-28,rental (private),62,81,219,94.0,3.8,39,1.6,90.0,90.0,655.0,481.0,95.0,65.0,97.0,Single,Y,NODATA!,,,2102.0,100.0,"double glazing, unknown install date",Normal,0.0,6.0,6.0,77.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,Low energy lighting in 77% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"2, St. Heliers Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2020-02-28 13:10:26,rental (private),,,200003676079.0,Address Matched +314289892922020022317363793418790,"69, Kingfisher Meadow",,,ME16 8RB,9962983668,C,C,70,77,Flat,End-Terrace,2020-02-19,E07000110,E14000804,Kent,2020-02-23,rental (private),66,68,355,337.0,1.7,60,1.6,32.0,38.0,267.0,211.0,158.0,118.0,29.0,dual,N,1st,N,,2603.0,100.0,double glazing installed during or after 2002,Normal,0.0,1.0,1.0,86.0,0.0,"Electric immersion, off-peak",Poor,Poor,"To external air, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"System built, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Room heaters, electric",Very Poor,Poor,Programmer and appliance thermostats,Good,Good,Low energy lighting in 86% of fixed outlets,Very Good,Very Good,electricity (not community),0.0,unheated corridor,7.24,,,N,"mechanical, supply and extract","69, Kingfisher Meadow",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2020-02-23 17:36:37,rental (private),,,10022892280.0,Address Matched +761263609922012031613544236268242,"6, Garden Close",,,ME15 8AX,4300046968,D,D,57,59,House,Semi-Detached,2012-03-16,E07000110,E14000700,Kent,2012-03-16,marketed sale,59,61,260,250.0,3.7,48,3.6,92.0,46.0,592.0,600.0,206.0,206.0,76.86,dual,Y,NODATA!,,,2602.0,95.0,"double glazing, unknown install date",Normal,0.0,5.0,2.0,0.0,0.0,"Electric immersion, off-peak",Very Poor,Very Poor,"Suspended, no insulation (assumed)",,,Mostly double glazing,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, 250 mm loft insulation",Good,Good,"Room heaters, mains gas",Average,Average,Appliance thermostats,Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,2.3,0.0,,natural,"6, Garden Close",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2012-03-16 13:54:42,owner-occupied,9.0,0.0,200003684512.0,Address Matched +a4feca8410d7f488ba6c3d4975fe8375e1c23a9edc5a6818ea2ce84c05545cbf,58 CUMBERLAND AVENUE,,,ME15 7JJ,10001555788,E,B,54,84,House,Mid-Terrace,2021-06-29,E07000110,E14000700,Kent,2021-07-01,ECO assessment,51,84,340,90.0,4.1,60,1.1,117.0,58.0,698.0,443.0,188.0,74.0,69.0,Single,Y,,,,,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,0.0,0.0,"From main system, no cylinder thermostat",Average,Average,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,"Pitched, insulated (assumed)",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,,,2.75,0.0,N,natural,58 CUMBERLAND AVENUE,Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2021-07-01 10:11:42,Rented (social),8.0,,200003714144.0,Energy Assessor +632458440552011052112051799290883,"3, Benden Close",Staplehurst,,TN12 0SD,8375096868,D,D,55,64,House,Mid-Terrace,2011-05-20,E07000110,E14000804,Kent,2011-05-21,marketed sale,48,57,364,294.0,4.7,64,3.8,64.0,38.0,660.0,507.0,166.0,166.0,72.7,dual,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,33.0,0.0,"Electric immersion, off-peak",Poor,Very Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, electric",Poor,Very Poor,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 33% of fixed outlets,Average,Average,electricity (not community),0.0,NO DATA!,,2.32,0.0,,natural,"3, Benden Close, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1967-1975,2011-05-21 12:05:17,owner-occupied,9.0,3.0,200003678466.0,Address Matched +a5004f44653e97d1ffb33afd6e58081e7293a4a762c4e5f9b34a98b6213eb839,7 CLOVER TERRACE,NORTHUMBERLAND ROAD,,ME15 7SY,10001581213,E,B,54,83,House,Mid-Terrace,2021-06-29,E07000110,E14000700,Kent,2021-07-01,ECO assessment,51,82,339,106.0,4.1,60,1.3,117.0,58.0,667.0,471.0,204.0,79.0,69.0,Single,Y,,,,,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,0.0,0.0,"From main system, no cylinder thermostat",Average,Average,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,"Pitched, insulated (assumed)",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,,,2.75,0.0,N,natural,"7 CLOVER TERRACE, NORTHUMBERLAND ROAD",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2021-07-01 10:48:58,Rented (social),8.0,,200003714087.0,Energy Assessor +1603658939832018012711282434278306,11 Walmer Court,Wheeler Street,,ME14 1TY,3604306578,C,C,72,76,Flat,Semi-Detached,2018-01-25,E07000110,E14000804,Kent,2018-01-27,rental (social),72,76,185,154.0,2.3,32,1.9,101.0,53.0,348.0,303.0,123.0,123.0,72.0,Single,Y,Ground,N,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,10.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 10% of fixed outlets,Poor,Poor,mains gas (not community),0.0,no corridor,,,,N,natural,"11 Walmer Court, Wheeler Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2018-01-27 11:28:24,rental (social),,,200003700761.0,Address Matched +1688819469062019010814100032888501,"5, Bermelie Fields",Barming,,ME16 9FP,325612678,B,A,85,94,House,Detached,2019-01-08,E07000110,E14000804,Kent,2019-01-08,new dwelling,86,94,74,23.0,1.8,13,0.6,87.0,87.0,290.0,291.0,100.0,55.0,142.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"5, Bermelie Fields, Barming",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2019-01-08 14:10:00,unknown,1.0,1.0,10093305961.0,Address Matched +497814542452010061006351198000673,"5, Lansdowne Avenue",,,ME15 9DJ,6303286768,F,D,36,66,House,Detached,2010-06-09,E07000110,E14000700,Kent,2010-06-10,marketed sale,33,62,468,229.0,9.7,79,4.8,109.0,64.0,1437.0,715.0,185.0,132.0,124.0,Single,Y,NO DATA!,,,2104.0,0.0,not defined,Normal,0.0,6.0,6.0,30.0,1.0,From main system,Average,Good,"Solid, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 25 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Average,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 30% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.38,0.0,N,natural,"5, Lansdowne Avenue",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2010-06-10 06:35:11,owner-occupied,,,200003710199.0,Address Matched +122961586132019061615142918968005,"3, Bridgeside Mews",,,ME15 6TB,8528019468,C,B,75,91,House,Mid-Terrace,2019-06-13,E07000110,E14000804,Kent,2019-06-16,marketed sale,75,92,170,36.0,1.9,30,0.4,58.0,58.0,276.0,264.0,143.0,68.0,65.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,6.0,6.0,90.0,0.0,From main system,Good,Good,"Suspended, limited insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 90% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"3, Bridgeside Mews",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2019-06-16 15:14:29,owner-occupied,,,10022896628.0,Address Matched +242266470342009030516225454810058,"41, Longham Copse",Downswood,,ME15 8TL,3362778568,D,C,64,77,House,Semi-Detached,2009-03-05,E07000110,E14000700,Kent,2009-03-05,marketed sale,60,74,248,161.0,5.0,41,3.3,117.0,59.0,595.0,425.0,166.0,120.0,121.0,Single,Y,NO DATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,2.0,6.0,6.0,0.0,0.0,From main system,Average,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Average,Average,"Boiler and radiators, mains gas",Average,Good,Programmer and room thermostat,Poor,Poor,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.3,0.0,N,natural,"41, Longham Copse, Downswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2009-03-05 16:22:54,owner-occupied,,,200003686463.0,Address Matched +1277667839922015021109512092398395,Cottagewood,Castle Hill,Detling,ME14 3JE,9934392378,B,B,81,81,House,Detached,2015-02-11,E07000110,E14000700,Kent,2015-02-11,new dwelling,101,101,72,72.0,-0.5,-2,-0.5,98.0,98.0,1197.0,1190.0,53.0,61.0,252.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,"From main system, plus solar",Average,Very Good,Average thermal transmittance 0.22 W/m-¦K,Good,Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.12 W/m-¦K,Very Good,Very Good,"Boiler & underfloor, wood logs",Average,Very Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (community),,NO DATA!,,,,,NO DATA!,"Cottagewood, Castle Hill, Detling",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2015-02-11 09:51:20,unknown,10.0,10.0,10022897616.0,Address Matched +634342191452011052513034090290988,"20, Hedley Street",,,ME14 1UG,9838107868,D,C,65,69,House,Mid-Terrace,2011-05-25,E07000110,E14000804,Kent,2011-05-25,marketed sale,64,69,236,201.0,2.9,45,2.5,60.0,35.0,484.0,438.0,83.0,75.0,64.93,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,4.0,4.0,29.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 29% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,2.3,0.0,,natural,"20, Hedley Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2011-05-25 13:03:40,owner-occupied,7.0,2.0,200003698928.0,Address Matched +596893890212012051522223792920588,17 Sunningdale Court,Square Hill Road,,ME15 7TT,5878024868,C,C,69,73,Flat,Semi-Detached,2012-05-15,E07000110,E14000804,Kent,2012-05-15,rental (social),71,76,205,174.0,1.9,39,1.6,45.0,28.0,296.0,282.0,110.0,86.0,47.0,Single,Y,3rd,N,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,40.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"System built, as built, no insulation (assumed)",Very Poor,Very Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 40% of fixed outlets,Average,Average,mains gas (not community),0.0,unheated corridor,4.55,,0.0,,natural,"17 Sunningdale Court, Square Hill Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2012-05-15 22:22:37,rental (social),5.0,2.0,200003696547.0,Address Matched +1679253849002018111616065063189148,14 Newlyn Court,Tufton Street,,ME14 1EZ,2037641678,C,C,70,74,Maisonette,Mid-Terrace,2018-11-14,E07000110,E14000804,Kent,2018-11-16,non marketed sale,53,57,317,282.0,3.8,54,3.4,103.0,60.0,447.0,397.0,175.0,175.0,72.0,dual,N,Ground,N,,2401.0,100.0,double glazing installed before 2002,Normal,1.0,3.0,2.0,29.0,0.0,"Electric immersion, off-peak",Average,Poor,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,"Room heaters, electric",,,(another dwelling above),,,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 29% of fixed outlets,Average,Average,electricity (not community),0.0,no corridor,,,,N,natural,"14 Newlyn Court, Tufton Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2018-11-16 16:06:50,rental (private),,,200003688135.0,Address Matched +1562575419402017072514535257332258,"35, Church Green",Staplehurst,,TN12 0BG,7411013578,D,B,63,81,House,Semi-Detached,2017-07-25,E07000110,E14000804,Kent,2017-07-25,marketed sale,55,77,250,117.0,4.7,44,2.2,67.0,67.0,811.0,584.0,139.0,89.0,107.0,Unknown,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,6.0,6.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"35, Church Green, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1967-1975,2017-07-25 14:53:52,owner-occupied,,,200003677037.0,Address Matched +1013146369262015112315562264308055,"34, Maple Avenue",,,ME16 0DD,5641624178,D,C,61,80,House,Semi-Detached,2015-11-20,E07000110,E14000804,Kent,2015-11-23,marketed sale,53,76,263,120.0,4.6,46,2.2,74.0,74.0,798.0,580.0,138.0,81.0,100.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,2.0,6.0,6.0,75.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"34, Maple Avenue",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2015-11-23 15:56:22,owner-occupied,,,200003658595.0,Address Matched +316259385812019040408354591010068,Flat 116 Lee Heights,Bambridge Court,,ME14 2LD,887514668,C,B,71,81,Flat,Mid-Terrace,2019-04-03,E07000110,E14000804,Kent,2019-04-04,marketed sale,69,69,213,212.0,2.5,36,2.5,113.0,63.0,331.0,223.0,218.0,166.0,68.0,dual,N,3rd,Y,,2602.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,0.0,0.0,"Electric immersion, off-peak",Poor,Poor,(another dwelling below),NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Room heaters, electric",Very Poor,Poor,Appliance thermostats,Good,Good,No low energy lighting,Very Poor,Very Poor,electricity (not community),0.0,unheated corridor,5.58,,,N,natural,"Flat 116 Lee Heights, Bambridge Court",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2019-04-04 08:35:45,owner-occupied,,,10022893086.0,Address Matched +1236463381352014111413493690949933,"1, Bournewood Close",Downswood,,ME15 8TJ,9326100378,D,B,64,89,House,Semi-Detached,2014-11-14,E07000110,E14000700,Kent,2014-11-14,marketed sale,62,91,229,41.0,2.9,44,0.6,43.0,43.0,516.0,348.0,164.0,78.0,66.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,1.0,3.0,3.0,100.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"1, Bournewood Close, Downswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1976-1982,2014-11-14 13:49:36,owner-occupied,8.0,8.0,200003686390.0,Address Matched +1156157867412015100511583493750127,Barnjet Priory,Tonbridge Road,Barming,ME16 9NJ,1750734278,E,B,49,83,House,Detached,2015-09-30,E07000110,E14000804,Kent,2015-10-05,none of the above,34,67,291,97.0,14.0,61,5.4,201.0,100.0,2167.0,1304.0,142.0,117.0,226.0,Single,Y,NODATA!,,,2104.0,80.0,triple glazing,Normal,1.0,9.0,9.0,0.0,3.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Mostly triple glazing,Good,Good,"Cavity wall, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, coal",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"Barnjet Priory, Tonbridge Road, Barming",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2015-10-05 11:58:34,owner-occupied,,,200003662910.0,Address Matched +806444875412012062618521796220692,"91, Bathurst Road",Staplehurst,,TN12 0LH,6291569968,C,B,79,84,House,End-Terrace,2012-06-26,E07000110,E14000804,Kent,2012-06-26,none of the above,76,81,99,72.0,3.4,19,2.5,116.0,70.0,869.0,841.0,115.0,77.0,176.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,More Than Typical,4.0,8.0,8.0,34.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 34% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,,natural,"91, Bathurst Road, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1950-1966,2012-06-26 18:52:17,unknown,38.0,13.0,200003677730.0,Address Matched +73099019142011070500001440590248,"32, St. Lukes Road",,,ME14 5AW,5150315468,E,D,52,55,House,Semi-Detached,2011-07-04,E07000110,E14000804,Kent,2011-07-05,marketed sale,49,52,274,254.0,7.1,52,6.6,118.0,59.0,1207.0,1162.0,89.0,89.0,102.99,Single,Y,NODATA!,,,2104.0,50.0,double glazing installed during or after 2002,Normal,0.0,6.0,3.0,0.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Partial double glazing,Poor,Poor,"Sandstone, as built, no insulation (assumed)",Very Poor,Very Poor,Portable electric heaters (assumed),,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,2.57,0.0,,natural,"32, St. Lukes Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2011-07-05 00:00:14,owner-occupied,20.0,0.0,200003705974.0,Address Matched +1772499714812019121315054592919068,"14, Drawbridge Close",,,ME15 7PD,880428678,C,B,73,89,House,Mid-Terrace,2019-12-10,E07000110,E14000700,Kent,2019-12-13,rental (social),72,88,190,63.0,2.3,33,0.8,75.0,59.0,365.0,326.0,120.0,75.0,70.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,71.0,0.0,From main system,Good,Good,"Suspended, limited insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 71% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"14, Drawbridge Close",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1996-2002,2019-12-13 15:05:45,rental (social),,,10014306197.0,Address Matched +737355802222020012222002504398800,Flat 26 Block F,Lindisfarne Gardens,,ME16 8QG,57054968,C,C,76,78,Flat,Semi-Detached,2020-01-21,E07000110,E14000804,Kent,2020-01-22,marketed sale,76,80,161,134.0,1.8,28,1.5,65.0,65.0,252.0,233.0,147.0,111.0,63.0,Unknown,Y,Ground,N,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,88.0,0.0,From main system,Good,Good,"Solid, limited insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 88% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,6.3,,,N,natural,"Flat 26 Block F, Lindisfarne Gardens",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2020-01-22 22:00:25,rental (private),,,200003724440.0,Address Matched +a54c3720485de25d96e185975e0c06c724ce1f828b69c65adee5e04949aee70d,1 Valley Court,69 Tonbridge Road,Teston,ME18 5BT,7351875668,C,C,77,79,Flat,Enclosed End-Terrace,2021-09-16,E07000110,E14000804,Kent,2021-09-16,marketed sale,63,68,240,206.0,3.2,41,2.8,80.0,80.0,400.0,344.0,212.0,177.0,79.0,dual,N,00,N,,,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,"Electric immersion, off-peak",Average,Poor,"Solid, insulated (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,Portable electric heaters (assumed),,,(another dwelling above),,,Electric underfloor heating,Average,Very Poor,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,no corridor,,2.2,0.0,N,natural,"1 Valley Court, 69 Tonbridge Road, Teston",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2021-09-16 15:30:21,Owner-occupied,6.0,,10014307892.0,Energy Assessor +1248922281352014122912333999249237,"4, Grey Wethers",Sandling,,ME14 3DW,2790190378,D,B,57,84,House,Detached,2014-12-24,E07000110,E14000700,Kent,2014-12-29,assessment for green deal,49,81,293,91.0,5.7,52,1.8,74.0,74.0,965.0,524.0,170.0,74.0,110.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,5.0,5.0,83.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 83% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"4, Grey Wethers, Sandling",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2014-12-29 12:33:39,owner-occupied,,,200003672726.0,Address Matched +1771984592262020082409510028448630,"19, Broad Drive",Boughton Monchelsea,,ME17 4SW,3246918678,B,A,84,95,House,Detached,2020-08-24,E07000110,E14000804,Kent,2020-08-24,new dwelling,86,96,82,11.0,1.4,14,0.2,77.0,77.0,238.0,238.0,76.0,45.0,97.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.16 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.20 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"19, Broad Drive, Boughton Monchelsea",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2020-08-24 09:51:00,unknown,12.0,12.0,10094442588.0,Address Matched +a56da806ca2d10402b532d240ff5f8ae38345cc60ae98fb65ead8d0b150efbc5,5 TENACRE COURT,ASHFORD ROAD,HARRIETSHAM,ME17 1AH,10001539762,C,C,71,71,Flat,Mid-Terrace,2021-08-05,E07000110,E14000700,Kent,2021-08-05,not sale or rental,73,73,171,171.0,2.1,29,2.1,67.0,67.0,473.0,473.0,241.0,241.0,73.0,standard tariff,,2,N,,,100.0,,,,,,100.0,0.0,Electric instantaneous at point of use,Very Poor,Poor,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.49 W/m-¦K,Good,Good,,,,(other premises above),,,"Boiler and radiators, electric",Very Poor,Poor,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",0.0,,,2.55,,,,"5 TENACRE COURT, ASHFORD ROAD, HARRIETSHAM",Maidstone,Faversham and Mid Kent,MAIDSTONE,2020,2021-08-05 14:25:35,Owner-occupied,5.0,,10095449470.0,Energy Assessor +480274819922010051109342225608020,Flat 8 Scotney Gardens,St. Peters Street,,ME16 0GR,2231165768,B,B,81,82,Flat,Mid-Terrace,2010-05-10,E07000110,E14000804,Kent,2010-05-11,rental (private),76,77,212,205.0,1.9,32,1.8,65.0,37.0,111.0,115.0,131.0,131.0,58.21,dual,N,2nd,N,4.0,2402.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,25.0,0.0,"Electric immersion, off-peak",Average,Poor,(other premises below),,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,(another dwelling above),,,Electric storage heaters,Average,Poor,Automatic charge control,Average,Average,Low energy lighting in 25% of fixed outlets,Average,Average,electricity - this is for backwards compatibility only and should not be used,0.0,unheated corridor,6.41,2.31,0.0,N,natural,"Flat 8 Scotney Gardens, St. Peters Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2010-05-11 09:34:22,rental (private),,,10022893376.0,Address Matched +1518577899042017021509464442939358,"4, Fulbert Drive",Bearsted,,ME14 4PU,8077899478,C,B,72,84,House,Detached,2017-02-15,E07000110,E14000700,Kent,2017-02-15,marketed sale,68,81,173,95.0,3.5,30,2.0,77.0,77.0,603.0,549.0,139.0,88.0,116.0,dual,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,6.0,6.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 270 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"4, Fulbert Drive, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2017-02-15 09:46:44,owner-occupied,,,200003693815.0,Address Matched +1097587270432014102117181353278397,"4, Wagtail Place",,,ME15 6GL,7793320278,B,A,84,96,House,Mid-Terrace,2014-10-21,E07000110,E14000804,Kent,2014-10-21,new dwelling,87,98,86,-1.0,1.2,15,0.0,52.0,52.0,218.0,218.0,89.0,56.0,79.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.10 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"4, Wagtail Place",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2014-10-21 17:18:13,owner-occupied,12.0,12.0,10014315200.0,Address Matched +415421246552009122219351700219671,"184, Boxley Road",Penenden Heath,,ME14 2HG,6115601768,D,D,55,59,House,Semi-Detached,2009-12-22,E07000110,E14000804,Kent,2009-12-22,marketed sale,54,58,283,260.0,5.9,46,5.4,106.0,64.0,921.0,868.0,130.0,130.0,126.26,Single,Y,NO DATA!,,,2106.0,90.0,double glazing installed before 2002,Normal,1.0,7.0,6.0,35.0,1.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Mostly double glazing,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, 25mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 35% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.38,0.0,N,natural,"184, Boxley Road, Penenden Heath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2009-12-22 19:35:17,owner-occupied,,,200003706713.0,Address Matched +250189020402009031820123353919188,"39, Bell Meadow",,,ME15 9ND,1431729568,E,C,50,74,House,Semi-Detached,2009-03-18,E07000110,E14000700,Kent,2009-03-18,marketed sale,43,70,390,192.0,6.5,65,3.2,68.0,47.0,832.0,413.0,176.0,127.0,99.2,Single,Y,NO DATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,57.0,0.0,From main system,Average,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 25mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Average,Good,Programmer and room thermostat,Poor,Poor,Low energy lighting in 57% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.26,0.0,N,natural,"39, Bell Meadow",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2009-03-18 20:12:33,owner-occupied,,,200003682730.0,Address Matched +628069401552011051215373096990184,Park Cottage,Park Road,Marden,TN12 9LG,1469166868,D,C,63,69,House,Detached,2011-05-12,E07000110,E14000804,Kent,2011-05-12,rental (private),61,67,198,167.0,9.0,34,7.5,172.0,86.0,1571.0,1390.0,128.0,110.0,264.16,Single,Y,NODATA!,,,2106.0,75.0,double glazing installed during or after 2002,Normal,1.0,8.0,8.0,0.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Partial double glazing,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, wood logs",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,2.25,0.0,,natural,"Park Cottage, Park Road, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1900-1929,2011-05-12 15:37:30,rental (private),23.0,0.0,200003725421.0,Address Matched +210142300962009011912061436968631,2 Rose Cottages,Lenham Forstal Road,Lenham Heath,ME17 2JL,3374066568,E,E,40,45,House,Mid-Terrace,2009-01-16,E07000110,E14000700,Kent,2009-01-19,rental (private),49,53,452,413.0,3.6,73,3.3,28.0,28.0,416.0,380.0,242.0,219.0,49.76,Single,,NO DATA!,,,2601.0,40.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,83.0,1.0,"Electric immersion, standard tariff",Very Poor,Poor,"Solid, no insulation (assumed)",,,Partial double glazing,Poor,Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, electric",,,"Pitched, 50 mm loft insulation",Poor,Poor,"Room heaters, dual fuel (mineral and wood)",Poor,Average,No thermostatic control of room temperature,Poor,Poor,Low energy lighting in 83% of fixed outlets,Very Good,Very Good,INVALID!,0.0,NO DATA!,,2.19,0.0,N,natural,"2 Rose Cottages, Lenham Forstal Road, Lenham Heath",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2009-01-19 12:06:14,rental (private),,,10022897168.0,Address Matched +225519830302009021310522358710448,"45, James Street",,,ME14 2UP,326937568,C,C,70,72,House,End-Terrace,2009-02-04,E07000110,E14000804,Kent,2009-02-13,rental (social),66,67,243,236.0,3.0,41,2.9,63.0,35.0,421.0,426.0,83.0,83.0,73.74,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,More Than Typical,0.0,3.0,3.0,20.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Flat, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 20% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.28,0.0,N,natural,"45, James Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2009-02-13 10:52:23,rental (social),,,200003703528.0,Address Matched +a589c5c5216a798901a4326e41fe550a45d42249b9bdcc4ddb9fb8f57eae60ab,71 St. Andrews Park,Tarragon Road,,ME16 0WD,10001581885,C,C,72,80,Flat,Mid-Terrace,2021-08-16,E07000110,E14000804,Kent,2021-08-16,marketed sale,70,82,194,114.0,2.5,34,1.5,64.0,64.0,372.0,219.0,137.0,113.0,73.0,Unknown,Y,01,N,,,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,(another dwelling below),,,Fully double glazed,Average,Average,"Sandstone or limestone, as built, no insulation (assumed)",Very Poor,Very Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,5.0,2.77,0.0,N,natural,"71 St. Andrews Park, Tarragon Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2021-08-16 13:42:54,Owner-occupied,8.0,,200003655028.0,Energy Assessor +a594ab89016c43b20dd68bf707bc8aa3e2b6f76ba02348c80e20060d6b82610e,46A PERRY STREET,,,ME14 2RP,10001584887,E,D,54,62,Flat,Mid-Terrace,2021-06-29,E07000110,E14000804,Kent,2021-07-01,ECO assessment,51,61,364,287.0,3.5,64,2.7,48.0,48.0,715.0,559.0,85.0,86.0,54.0,Single,Y,01,N,,,100.0,"double glazing, unknown install date",Normal,1.0,2.0,2.0,100.0,0.0,From main system,Good,Good,(another dwelling below),,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,"Pitched, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,no corridor,,2.8,0.0,N,natural,46A PERRY STREET,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2021-07-01 18:45:52,Rented (social),7.0,,200003669914.0,Energy Assessor +a5a01ca6e5ec14d9a48844c82b9fd4b4debc92112d8fde4c73fdf01a5733087f,7 DARGATE CLOSE,,,ME16 0TH,10001644935,D,B,60,87,Bungalow,Semi-Detached,2021-07-08,E07000110,E14000804,Kent,2021-07-08,marketed sale,56,86,321,74.0,2.9,57,0.7,79.0,46.0,405.0,330.0,179.0,60.0,52.0,Single,Y,,,,,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,29.0,0.0,"From main system, no cylinder thermostat",Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Average,Average,"Room heaters, mains gas",,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 29% of fixed outlets,Average,Average,mains gas (not community),0.0,,,2.39,0.0,N,natural,7 DARGATE CLOSE,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2021-07-08 18:57:53,Owner-occupied,7.0,,200003662180.0,Energy Assessor +1249143819962014121915314790528674,"10, Leamington Drive",,,ME16 0WP,7948190378,D,B,66,83,House,Semi-Detached,2014-12-12,E07000110,E14000804,Kent,2014-12-19,ECO assessment,53,76,205,86.0,5.7,43,2.6,73.0,73.0,871.0,577.0,116.0,77.0,132.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,7.0,7.0,100.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, coal",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"10, Leamington Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2014-12-19 15:31:47,owner-occupied,,,10022901733.0,Address Matched +1384883259002015111116151648050528,Flat 21 William Shipley House,Knightrider Court,Knightrider Street,ME15 6XD,9068050478,D,D,64,64,Flat,NO DATA!,2015-05-02,E07000110,E14000804,Kent,2015-11-11,new dwelling,68,68,273,273.0,2.0,46,2.0,30.0,30.0,331.0,331.0,209.0,209.0,42.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,,0.0,"Electric immersion, standard tariff",Very Poor,Poor,(other premises below),,,Fully double glazed,Average,Average,Average thermal transmittance 0.27 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,"Room heaters, electric",Very Poor,Poor,Programmer and room thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"Flat 21 William Shipley House, Knightrider Court, Knightrider Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2015-11-11 16:15:16,unknown,8.0,8.0,10091195509.0,Address Matched +1460476289902016070720572440560138,"8, North Street",Barming,,ME16 9HF,1928885478,E,B,49,83,House,Semi-Detached,2016-07-07,E07000110,E14000804,Kent,2016-07-07,marketed sale,42,80,380,102.0,5.3,67,1.4,77.0,53.0,925.0,473.0,163.0,74.0,79.0,Single,Y,NODATA!,,,2106.0,85.0,double glazing installed during or after 2002,Normal,1.0,4.0,4.0,55.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Mostly double glazing,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, mains gas",,,"Pitched, 270 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 55% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,2.48,,N,natural,"8, North Street, Barming",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2016-07-07 20:57:24,owner-occupied,,,200003665762.0,Address Matched +257562764132009040117300264068508,"195, Sutton Road",,,ME15 9BJ,6814500668,E,D,52,68,House,Detached,2009-04-01,E07000110,E14000700,Kent,2009-04-01,marketed sale,44,60,359,234.0,6.2,64,4.2,68.0,47.0,712.0,518.0,199.0,109.0,96.9,Unknown,Y,NO DATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,1.0,5.0,4.0,55.0,1.0,"From main system, no cylinderstat",Poor,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, coal",,,"Flat, insulated (assumed)",Average,Average,"Boiler and radiators, mains gas",Average,Good,Programmer and room thermostat,Poor,Poor,Low energy lighting in 55% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,0.0,N,natural,"195, Sutton Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2009-04-01 17:30:02,owner-occupied,,,200003713808.0,Address Matched +529264889732013020114271271768409,"26, Bryant Close",Nettlestead,,ME18 5EX,8901409768,D,B,65,87,House,Mid-Terrace,2013-01-30,E07000110,E14000804,Kent,2013-02-01,marketed sale,63,89,214,52.0,3.0,41,0.8,51.0,51.0,497.0,341.0,126.0,66.0,74.0,Unknown,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,80.0,0.0,From main system,Good,Good,"Solid, insulated",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"26, Bryant Close, Nettlestead",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2013-02-01 14:27:12,owner-occupied,10.0,8.0,200003657270.0,Address Matched +1641690439922018062011585898618868,Clock House,Boarden Lane,Staplehurst,TN12 0EB,6950378578,G,F,18,33,Bungalow,Detached,2018-06-19,E07000110,E14000700,Kent,2018-06-20,marketed sale,22,34,495,362.0,17.0,85,13.0,171.0,99.0,4193.0,3423.0,234.0,129.0,205.0,dual,N,NODATA!,,,2706.0,100.0,double glazing installed before 2002,More Than Typical,0.0,6.0,3.0,27.0,0.0,"Electric immersion, off-peak",Poor,Poor,"Solid, insulated",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Poor,Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 100 mm loft insulation",Average,Average,Electric underfloor heating,Very Poor,Very Poor,Time and temperature zone control,Very Good,Very Good,Low energy lighting in 27% of fixed outlets,Average,Average,electricity (not community),0.0,NO DATA!,,,,N,natural,"Clock House, Boarden Lane, Staplehurst",Maidstone,Faversham and Mid Kent,TONBRIDGE,England and Wales: before 1900,2018-06-20 11:58:58,owner-occupied,,,200003721085.0,Address Matched +a5a9687a45cbab9076a8d360fd8a3f4614f0ebe6ad0a053e1298d380d18bbb98,17 RUSHMORE GROVE,,,ME17 2FJ,10001386333,B,A,84,96,House,End-Terrace,2021-07-28,E07000110,E14000700,Kent,2021-07-28,new dwelling,87,98,87,0.0,1.2,15,0.0,71.0,71.0,210.0,210.0,64.0,40.0,78.0,standard tariff,,,N,,,100.0,,,,,,100.0,0.0,"From main system, flue gas heat recovery",Very Good,Very Good,Average thermal transmittance 0.16 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.19 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.1 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.4,,,,17 RUSHMORE GROVE,Maidstone,Faversham and Mid Kent,LENHAM,2019,2021-07-28 09:46:43,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,1.0,,10094444440.0,Energy Assessor +222669112132009020611580904068108,"347b, Willington Street",,,ME15 8AS,1844157568,D,C,67,70,Flat,Semi-Detached,2009-02-05,E07000110,E14000700,Kent,2009-02-06,rental (private),68,69,350,333.0,2.0,53,1.9,43.0,21.0,154.0,164.0,175.0,157.0,37.42,dual,Y,1st,N,2.0,2401.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,0.0,0.0,"Electric immersion, off-peak",Very Poor,Poor,(other premises below),,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,"Pitched, 200 mm loft insulation",Good,Good,Electric storage heaters,Poor,Very Poor,Manual charge control,Poor,Poor,No low energy lighting,Very Poor,Very Poor,electricity - this is for backwards compatibility only and should not be used,0.0,unheated corridor,5.46,2.29,0.0,N,natural,"347b, Willington Street",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2003-2006,2009-02-06 11:58:09,rental (private),,,10022896894.0,Address Matched +1339566780552015070308445193050335,"58, Northumberland Road",,,ME15 7LS,3593037378,D,B,65,85,House,Semi-Detached,2015-07-02,E07000110,E14000700,Kent,2015-07-03,FiT application,59,82,240,92.0,4.3,42,1.7,63.0,63.0,808.0,523.0,111.0,74.0,102.0,Single,Y,NODATA!,,,2102.0,100.0,double glazing installed during or after 2002,Normal,1.0,6.0,6.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"58, Northumberland Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2015-07-03 08:44:51,owner-occupied,,,200003683900.0,Address Matched +1613201829062018030716400276838738,"14, Tolhurst Way",Lenham,,ME17 2BY,3761276578,B,A,86,92,House,Detached,2018-03-07,E07000110,E14000700,Kent,2018-03-07,new dwelling,86,92,70,38.0,2.2,12,1.3,92.0,92.0,371.0,371.0,90.0,90.0,183.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.18 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"14, Tolhurst Way, Lenham",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2018-03-07 16:40:02,unknown,14.0,14.0,10093303684.0,Address Matched +761634249842014112016495498649118,5 Three Tees,White Horse Lane,Otham,ME15 8RG,823446968,D,B,63,84,Bungalow,End-Terrace,2014-11-19,E07000110,E14000700,Kent,2014-11-20,assessment for green deal,66,85,256,98.0,2.2,45,0.8,47.0,33.0,414.0,319.0,154.0,154.0,48.0,Single,N,NODATA!,,,2206.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,57.0,0.0,"From main system, plus solar",Average,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Air source heat pump, radiators, electric",Average,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 57% of fixed outlets,Good,Good,electricity (not community),0.0,NO DATA!,,,0.0,,natural,"5 Three Tees, White Horse Lane, Otham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2014-11-20 16:49:54,rental (social),7.0,4.0,200003690501.0,Address Matched +133040409702010012017550655002108,Flat 93 Lee Heights,Bambridge Court,,ME14 2LD,748400568,C,B,79,85,Flat,Enclosed Mid-Terrace,2010-01-20,E07000110,E14000804,Kent,2010-01-20,marketed sale,80,81,195,191.0,1.4,29,1.3,52.0,29.0,141.0,83.0,111.0,111.0,46.15,Unknown,N,2nd,N,5.0,2602.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,20.0,0.0,"Electric immersion, off-peak",Poor,Poor,(other premises below),,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Room heaters, electric",Very Poor,Poor,Appliance thermostats,Good,Good,Low energy lighting in 20% of fixed outlets,Poor,Poor,electricity - this is for backwards compatibility only and should not be used,0.0,unheated corridor,3.6,2.24,0.0,N,natural,"Flat 93 Lee Heights, Bambridge Court",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2010-01-20 17:55:06,owner-occupied,,,10022893064.0,Address Matched +768721052452012033016300199720990,"21, Monarch Close",,,ME15 6ZS,9037296968,B,B,88,88,House,End-Terrace,2012-03-30,E07000110,E14000804,Kent,2012-03-30,new dwelling,90,90,55,55.0,1.2,11,1.2,54.0,54.0,286.0,286.0,97.0,97.0,109.64,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,11.0,,From main system,Good,Good,Average thermal transmittance 0.15 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.19 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.12 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.39,,,NO DATA!,"21, Monarch Close",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2012-03-30 16:30:01,,11.0,11.0,10014313147.0,Address Matched +928607159022017080320241708178183,13 Lymington Court,Bicknor Road,,ME15 9PQ,8003528078,C,B,72,91,House,Enclosed End-Terrace,2017-08-03,E07000110,E14000700,Kent,2017-08-03,marketed sale,75,93,225,37.0,1.5,40,0.3,33.0,33.0,300.0,282.0,72.0,46.0,38.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,86.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 86% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"13 Lymington Court, Bicknor Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1976-1982,2017-08-03 20:24:17,owner-occupied,,,200003680134.0,Address Matched +478775849252010050412060594700670,4 The Terrace,Smarden Road,Headcorn,TN27 9TA,6001945768,C,C,80,80,House,Mid-Terrace,2010-04-30,E07000110,E14000700,Kent,2010-05-04,new dwelling,86,86,115,115.0,1.1,17,1.1,40.0,40.0,150.0,150.0,147.0,147.0,65.13,off-peak 7 hour,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,,From main system |O'r brif system,Poor,Good,Average thermal transmittance 0.16 W/m??K|Trawsyriannedd thermol cyfartalog 0.16 W/m??K,Very Good,Very Good,Fully double glazed|Gwydrau dwbl llawn,Good,Good,Average thermal transmittance 0.24 W/m??K|Trawsyriannedd thermol cyfartalog 0.24 W/m??K,Very Good,Very Good,None|Dim,,,Average thermal transmittance 0.14 W/m??K|Trawsyriannedd thermol cyfartalog 0.14 W/m??K,Very Good,Very Good,"Air source heat pump, |Pwmp gwres sy'n tarddu yn yr awyr, |, underfloor, |, dan y llawr, |electric|trydan",Average,Very Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in 100% of fixed outlets|Goleuadau ynni-isel mewn 100% o'r mannau gosod,Very Good,Very Good,"Electricity: electricity, unspecified tariff",0.0,NO DATA!,,2.9,,,NO DATA!,"4 The Terrace, Smarden Road, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,NO DATA!,2010-05-04 12:06:05,,,,10014309169.0,Address Matched +1148047469022017030712552713638983,Treetops,Wierton Hill,Boughton Monchelsea,ME17 4JT,8166673278,F,A,35,98,House,Detached,2017-03-07,E07000110,E14000700,Kent,2017-03-07,RHI application,33,93,320,-21.0,8.4,78,0.5,78.0,78.0,1091.0,436.0,184.0,75.0,108.0,Single,N,NODATA!,,,2107.0,95.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,83.0,1.0,From main system,Poor,Poor,"Solid, no insulation (assumed)",NO DATA!,,Mostly double glazing,Average,Average,"Sandstone or limestone, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, oil",Poor,Average,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 83% of fixed outlets,Very Good,Very Good,oil (not community),0.0,NO DATA!,,,,N,natural,"Treetops, Wierton Hill, Boughton Monchelsea",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2017-03-07 12:55:27,owner-occupied,,,200003679756.0,Address Matched +8767569542015042106223947752708,"22, Thomas Rider Way",Boughton Monchelsea,,ME17 4GA,6598767468,C,B,72,87,House,End-Terrace,2015-04-20,E07000110,E14000700,Kent,2015-04-21,marketed sale,72,86,189,78.0,2.3,33,1.0,90.0,49.0,344.0,350.0,151.0,117.0,68.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,14.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 14% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"22, Thomas Rider Way, Boughton Monchelsea",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2007 onwards,2015-04-21 06:22:39,owner-occupied,,,10022901100.0,Address Matched +1814960722062020080419401891848310,"49, Dixon Close",,,ME15 6SS,1938231778,C,C,72,79,Maisonette,Mid-Terrace,2020-08-04,E07000110,E14000804,Kent,2020-08-04,marketed sale,73,82,176,118.0,2.4,31,1.6,73.0,73.0,460.0,287.0,99.0,100.0,78.0,Single,Y,1st,Y,,2104.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,89.0,0.0,From main system,Good,Good,(another dwelling below),NO DATA!,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, electric",,,"Pitched, 270 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 89% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,no corridor,,,,N,natural,"49, Dixon Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2020-08-04 19:40:18,owner-occupied,,,200003664898.0,Address Matched +1069647089022014011300012058318614,"11, Lancashire Road",,,ME15 7QD,1575828178,C,B,71,88,House,Mid-Terrace,2014-01-09,E07000110,E14000700,Kent,2014-01-13,none of the above,71,89,162,46.0,2.6,31,0.8,51.0,51.0,479.0,368.0,119.0,68.0,85.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"11, Lancashire Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2014-01-13 00:01:20,owner-occupied,12.0,12.0,200003683947.0,Address Matched +994695685112013082618423999270213,St. Marys,Dawks Meadow,Headcorn,TN27 9NJ,2390592178,B,B,89,89,Bungalow,Detached,2013-08-22,E07000110,E14000700,Kent,2013-08-26,non marketed sale,87,88,49,46.0,1.9,10,1.8,115.0,84.0,598.0,602.0,96.0,96.0,195.0,Single,Y,NODATA!,,,2110.0,100.0,double glazing installed during or after 2002,Normal,0.0,6.0,6.0,63.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",,,Fully double glazed,Good,Good,"Timber frame, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and underfloor heating, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in 63% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,20.0,,natural,"St. Marys, Dawks Meadow, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,England and Wales: 2007 onwards,2013-08-26 18:42:39,owner-occupied,27.0,17.0,10022893828.0,Address Matched +598112950312016062007371693960387,"60, Lower Road",,,ME15 7RG,3795034868,C,B,73,90,House,Mid-Terrace,2016-06-16,E07000110,E14000804,Kent,2016-06-20,rental (social),72,91,186,45.0,2.3,33,0.6,76.0,47.0,353.0,307.0,149.0,81.0,69.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,38.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"System built, with external insulation",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 38% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,2.4,,N,natural,"60, Lower Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2016-06-20 07:37:16,rental (social),,,200003695226.0,Address Matched +413445662132009121614452044968194,"99, Lower Boxley Road",,,ME14 2UT,6454190768,F,E,26,42,House,Mid-Terrace,2009-12-16,E07000110,E14000804,Kent,2009-12-16,marketed sale,29,39,764,595.0,6.2,115,4.8,55.0,30.0,552.0,558.0,480.0,193.0,60.83,dual,Y,NO DATA!,,,2401.0,100.0,double glazing installed before 2002,Normal,1.0,4.0,2.0,14.0,2.0,"Electric immersion, off-peak",Very Poor,Poor,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,Portable electric heaters,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,Electric storage heaters,Poor,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 14% of fixed outlets,Poor,Poor,electricity - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,0.0,N,natural,"99, Lower Boxley Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2009-12-16 14:45:20,owner-occupied,,,200003703567.0,Address Matched +1286657559142015022514311836352858,"31, Saltwood Road",,,ME15 6UY,9117553378,D,C,66,80,House,Semi-Detached,2015-02-25,E07000110,E14000804,Kent,2015-02-25,FiT application,60,76,243,132.0,3.7,43,2.0,59.0,59.0,692.0,604.0,92.0,59.0,85.0,Single,Y,NODATA!,,,2106.0,95.0,double glazing installed during or after 2002,Normal,1.0,4.0,4.0,91.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Mostly double glazing,Good,Good,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 91% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"31, Saltwood Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2015-02-25 14:31:18,owner-occupied,,,200003665391.0,Address Matched +456605099902010031813435370309188,"20, Gladstone Road",Penenden Heath,,ME14 2AU,3924493768,D,D,62,64,House,Mid-Terrace,2010-03-18,E07000110,E14000804,Kent,2010-03-18,rental (private),56,57,335,328.0,3.5,56,3.4,56.0,32.0,552.0,557.0,87.0,87.0,62.36,Single,Y,NO DATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,25.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 25% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.48,0.0,N,natural,"20, Gladstone Road, Penenden Heath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2010-03-18 13:43:53,rental (private),,,200003701716.0,Address Matched +1115144349642014040313314327140378,Fir Tree Cottage,The Street,Ulcombe,ME17 1DR,688841278,E,C,40,79,House,Semi-Detached,2014-04-03,E07000110,E14000700,Kent,2014-04-03,marketed sale,31,71,300,98.0,11.0,73,3.7,159.0,80.0,1860.0,845.0,346.0,120.0,147.0,dual,N,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,7.0,7.0,0.0,1.0,"From main system, no cylinder thermostat",Poor,Very Poor,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, oil",Average,Average,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,oil (not community),0.0,NO DATA!,,,0.0,,natural,"Fir Tree Cottage, The Street, Ulcombe",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2014-04-03 13:31:43,owner-occupied,10.0,0.0,200003701177.0,Address Matched +985038349922017101823422152288443,"42, Reginald Road",,,ME16 8HA,4500422178,C,B,74,87,House,Mid-Terrace,2017-10-18,E07000110,E14000804,Kent,2017-10-18,marketed sale,72,86,168,68.0,2.3,30,1.0,59.0,59.0,399.0,370.0,102.0,68.0,78.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,90.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 90% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"42, Reginald Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2017-10-18 23:42:21,owner-occupied,,,200003667878.0,Address Matched +1224848590432014102111295134278795,"27, Farningham Close",,,ME14 5QX,9554719278,C,B,76,90,House,Mid-Terrace,2014-10-21,E07000110,E14000804,Kent,2014-10-21,rental (private),78,93,138,28.0,1.6,26,0.4,40.0,40.0,328.0,328.0,89.0,61.0,60.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"27, Farningham Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2014-10-21 11:29:51,rental (private),7.0,7.0,200003673206.0,Address Matched +544599406412010092322494491200984,"54, Lacock Gardens",,,ME15 6GQ,9413610868,C,B,79,82,House,Semi-Detached,2010-09-23,E07000110,E14000804,Kent,2010-09-23,marketed sale,76,79,177,150.0,2.1,30,1.8,41.0,41.0,324.0,285.0,117.0,102.0,71.85,Single,Y,NO DATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",,,Fully double glazed,Good,Good,"Timber frame, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.39,0.0,N,natural,"54, Lacock Gardens",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2010-09-23 22:49:44,owner-occupied,,,10034134527.0,Address Matched +163389140922009081313500242678171,Apartment 9 Sandling Park,Sandling Lane,,ME14 2NY,7461422568,C,B,76,83,Flat,Detached,2009-08-13,E07000110,E14000804,Kent,2009-08-13,marketed sale,78,79,170,166.0,2.0,25,1.9,85.0,47.0,199.0,115.0,142.0,142.0,77.3,dual,N,1st,N,4.0,2602.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,20.0,0.0,"Electric immersion, off-peak",Average,Poor,(other premises below),,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Room heaters, electric",Very Poor,Poor,Appliance thermostats,Good,Good,Low energy lighting in 20% of fixed outlets,Poor,Poor,electricity - this is for backwards compatibility only and should not be used,0.0,unheated corridor,2.0,2.4,0.0,N,natural,"Apartment 9 Sandling Park, Sandling Lane",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2009-08-13 13:50:02,owner-occupied,,,10014307104.0,Address Matched +343936195332017051209263696968104,"12, Willow Rise",Downswood,,ME15 8XR,9416106668,C,B,70,87,House,Semi-Detached,2017-05-12,E07000110,E14000700,Kent,2017-05-12,marketed sale,69,86,229,87.0,2.3,40,0.9,40.0,40.0,393.0,368.0,121.0,74.0,56.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"12, Willow Rise, Downswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2017-05-12 09:26:36,owner-occupied,,,200003687138.0,Address Matched +1329355859302015060515232737650558,3 Stable Cottages Otterden Place,Bunce Court Road,Otterden,ME13 0BU,6393956378,D,B,60,82,House,End-Terrace,2015-06-05,E07000110,E14000700,Kent,2015-06-05,rental (private),52,75,216,68.0,3.5,55,1.6,70.0,46.0,504.0,396.0,142.0,88.0,64.0,Single,N,NODATA!,,,2106.0,0.0,not defined,Normal,0.0,3.0,3.0,43.0,0.0,From main system,Average,Average,"Solid, limited insulation (assumed)",NO DATA!,,Single glazed,Very Poor,Very Poor,"Solid brick, as built, insulated (assumed)",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, oil",Average,Average,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 43% of fixed outlets,Average,Average,oil (not community),0.0,NO DATA!,,,,N,natural,"3 Stable Cottages Otterden Place, Bunce Court Road, Otterden",Maidstone,Faversham and Mid Kent,FAVERSHAM,England and Wales: 1996-2002,2015-06-05 15:23:27,rental (private),,,10014308914.0,Address Matched +885469099022013090609363275758697,"28, Woodville Road",,,ME15 7BS,9746915078,E,B,45,85,House,Semi-Detached,2013-09-05,E07000110,E14000804,Kent,2013-09-06,none of the above,41,86,354,66.0,5.6,68,1.1,80.0,48.0,923.0,403.0,176.0,75.0,82.0,Single,Y,NODATA!,,,2102.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,33.0,0.0,From main system,Average,Average,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,Low energy lighting in 33% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"28, Woodville Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2013-09-06 09:36:32,owner-occupied,9.0,3.0,200003683705.0,Address Matched +1491905540632016102807163932278196,"4, Bourneside Terrace",Eyhorne Street,,ME17 1TN,4642118478,D,A,67,117,Bungalow,Semi-Detached,2016-10-24,E07000110,E14000700,Kent,2016-10-28,rental (social),65,114,277,-145.0,2.4,49,-1.1,35.0,35.0,418.0,349.0,126.0,73.0,48.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,2.4,,N,natural,"4, Bourneside Terrace, Eyhorne Street",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2016-10-28 07:16:39,rental (social),,,200003722209.0,Address Matched +400340492402020032515054868902708,"10, Honduras Terrace",Invicta Park,,ME14 2PA,8492799668,D,B,61,81,House,Mid-Terrace,2020-02-20,E07000110,E14000804,Kent,2020-03-25,Stock Condition Survey,55,78,297,126.0,3.7,52,1.6,57.0,57.0,654.0,493.0,92.0,62.0,70.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Flat, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"10, Honduras Terrace, Invicta Park",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2020-03-25 15:05:48,rental (social),,,200003724081.0,Address Matched +1049123514412017040613271298030017,Captains Farm,Bicknor Lane,Bicknor,ME9 8AU,701486178,F,B,24,88,House,Detached,2017-04-06,E07000110,E14000700,Kent,2017-04-06,rental (private),25,80,380,18.0,9.6,90,1.6,132.0,66.0,1340.0,602.0,119.0,79.0,106.0,Unknown,N,NODATA!,,,2107.0,100.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,0.0,1.0,From main system,Average,Average,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, oil",Average,Average,"Programmer, TRVs and bypass",Average,Average,No low energy lighting,Very Poor,Very Poor,oil (not community),0.0,NO DATA!,,,,N,natural,"Captains Farm, Bicknor Lane, Bicknor",Maidstone,Faversham and Mid Kent,SITTINGBOURNE,England and Wales: before 1900,2017-04-06 13:27:12,rental (private),,,200003720991.0,Address Matched +933783959062016110219345018228606,"5, Kenward Road",,,ME16 0AP,198568078,E,C,44,77,Bungalow,Semi-Detached,2016-11-02,E07000110,E14000804,Kent,2016-11-02,ECO assessment,37,72,420,156.0,6.1,74,2.3,97.0,61.0,1122.0,638.0,129.0,81.0,82.0,dual,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,40.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 40% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,2.4,,N,natural,"5, Kenward Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2016-11-02 19:34:50,owner-occupied,,,200003658300.0,Address Matched +735598429642011122322511797492378,"48, Edna Road",,,ME14 2QN,4681424968,G,E,1,50,House,End-Terrace,2011-12-23,E07000110,E14000804,Kent,2011-12-23,marketed sale,1,38,999,338.0,21.0,273,6.1,71.0,40.0,2263.0,709.0,253.0,245.0,75.6,Single,N,NODATA!,,,2601.0,0.0,not defined,Normal,0.0,5.0,4.0,22.0,4.0,"Electric immersion, standard tariff",Very Poor,Very Poor,"Suspended, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,Portable electric heaters (assumed),,,"Pitched, no insulation",Very Poor,Very Poor,"Room heaters, coal",Very Poor,Very Poor,No thermostatic control of room temperature,Poor,Poor,Low energy lighting in 22% of fixed outlets,Poor,Poor,house coal (not community),0.0,NO DATA!,,2.5,0.0,,natural,"48, Edna Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2011-12-23 22:51:17,owner-occupied,9.0,2.0,200003670639.0,Address Matched +1437582829402017021220181448439108,2 Eccleston Court,Tovil,,ME15 6QZ,3466624478,B,B,81,81,Flat,Mid-Terrace,2017-02-10,E07000110,E14000804,Kent,2017-02-12,rental (social),83,83,110,110.0,1.4,19,1.4,56.0,56.0,239.0,239.0,103.0,103.0,74.0,Unknown,Y,1st,N,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,"To external air, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"System built, as built, insulated (assumed)",Very Good,Very Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,heated corridor,,,,N,natural,"2 Eccleston Court, Tovil",Maidstone,Maidstone and The Weald,MAIDSTONE,INVALID!,2017-02-12 20:18:14,rental (social),,,10091193838.0,Address Matched +1615881209962018031612590536568248,"38, Edmett Way",,,ME17 3GD,4342096578,B,B,82,82,Flat,Detached,2018-03-16,E07000110,E14000700,Kent,2018-03-16,new dwelling,87,87,108,108.0,0.9,19,0.9,39.0,39.0,168.0,168.0,65.0,65.0,47.0,standard tariff,,top floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"38, Edmett Way",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2018-03-16 12:59:05,unknown,7.0,7.0,10093304033.0,Address Matched +596702719902018032720375587482568,Flat 3 Truro House,Cambridge Crescent,,ME15 7NW,2957914868,C,C,70,76,Flat,Semi-Detached,2018-03-26,E07000110,E14000700,Kent,2018-03-27,rental (social),69,78,220,158.0,2.4,39,1.7,70.0,47.0,418.0,307.0,86.0,86.0,62.0,Single,Y,Ground,N,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,50.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,no corridor,,,,N,natural,"Flat 3 Truro House, Cambridge Crescent",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2018-03-27 20:37:55,rental (social),,,200003713103.0,Address Matched +1624789752212018041915140095980457,"9b, Warwick Place",,,ME16 8SG,4767257578,B,B,82,82,Maisonette,Semi-Detached,2018-04-19,E07000110,E14000804,Kent,2018-04-19,new dwelling,86,86,101,101.0,1.0,18,1.0,41.0,41.0,168.0,168.0,82.0,82.0,55.0,standard tariff,,ground floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.16 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.14 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.14 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"9b, Warwick Place",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2018-04-19 15:14:00,owner-occupied,27.0,27.0,10091195905.0,Address Matched +504196229962019031509563147148018,Flat 12 Galapagos House,St. Catherines Road,,ME15 9WP,1434237768,C,C,76,76,Flat,Semi-Detached,2018-05-14,E07000110,E14000700,Kent,2019-03-15,rental (social),73,73,218,215.0,2.0,37,2.0,58.0,46.0,118.0,120.0,329.0,329.0,54.0,dual,N,2nd,Y,,2206.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,75.0,0.0,From main system,Good,Good,(another dwelling below),NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Very Good,Very Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Air source heat pump, radiators, electric",Average,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,electricity (not community),0.0,unheated corridor,8.7,,,N,natural,"Flat 12 Galapagos House, St. Catherines Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2007 onwards,2019-03-15 09:56:31,rental (social),,,10014311752.0,Address Matched +1354282658532015081507335722978500,"51, Moncktons Avenue",,,ME14 2QF,5012538378,E,B,39,83,House,Semi-Detached,2015-08-10,E07000110,E14000804,Kent,2015-08-15,marketed sale,33,80,467,98.0,6.6,82,1.4,99.0,52.0,943.0,477.0,393.0,73.0,80.0,Single,Y,NODATA!,,,2103.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,11.0,1.0,"From main system, no cylinder thermostat",Poor,Poor,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,Room thermostat only,Poor,Poor,Low energy lighting in 11% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"51, Moncktons Avenue",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2015-08-15 07:33:57,owner-occupied,,,200003670758.0,Address Matched +1500727929262016112915095368318546,"16, Greensands",Walderslade,,ME5 9DQ,4648278478,C,B,70,82,House,Detached,2016-11-29,E07000110,E14000700,Kent,2016-11-29,marketed sale,65,78,199,114.0,3.7,35,2.2,68.0,68.0,643.0,595.0,152.0,90.0,106.0,Unknown,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,6.0,6.0,100.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, mains gas",,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"16, Greensands, Walderslade",Maidstone,Faversham and Mid Kent,CHATHAM,England and Wales: 1991-1995,2016-11-29 15:09:53,owner-occupied,,,200003674106.0,Address Matched +716917689042011102719390093292738,"29, Brenchley Road",,,ME15 6UH,4077782968,C,C,73,74,House,Mid-Terrace,2011-10-27,E07000110,E14000804,Kent,2011-10-27,rental (social),73,75,162,150.0,2.6,31,2.4,60.0,44.0,411.0,390.0,105.0,105.0,82.84,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,64.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 64% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,2.43,0.0,,natural,"29, Brenchley Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2011-10-27 19:39:00,rental (social),11.0,7.0,200003665067.0,Address Matched +a65625a7dc1da3337477f838043dba6c17d0fff51235ef5bd0f192714914d57a,10 Norway Terrace,Invicta Park,,ME14 2PH,10001349515,D,B,67,85,House,Mid-Terrace,2021-08-27,E07000110,E14000804,Kent,2021-08-27,Stock condition survey,64,83,223,88.0,3.2,39,1.3,74.0,74.0,543.0,421.0,93.0,65.0,81.0,dual,Y,,,,,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Average,Average,,,,"Flat, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.28,0.0,N,natural,"10 Norway Terrace, Invicta Park",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2021-08-27 17:10:15,Rented (social),12.0,,200003724020.0,Energy Assessor +a6678ef24ab08bc88d369bf32597f3eb00b21dad68c525ed40e6df948f4acab0,2 Lower Farm Holiday Lets,Babylon Lane,,ME17 3ER,10001396134,C,A,69,127,Bungalow,Semi-Detached,2021-07-22,E07000110,E14000700,Kent,2021-07-22,rental,81,133,155,-416.0,1.0,33,-2.0,30.0,30.0,218.0,218.0,111.0,67.0,31.0,standard tariff,,,N,,,100.0,,,,,,100.0,0.0,From main system,Poor,Good,Average thermal transmittance 0.20 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.26 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.15 W/m-¦K,Good,Good,"Boiler and radiators, LPG",Poor,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: bulk LPG,0.0,,,2.74,,,,"2 Lower Farm Holiday Lets, Babylon Lane",Maidstone,Faversham and Mid Kent,Sutton Valance,2021,2021-07-22 08:46:46,Rented (private),25.0,,, +321891732922020011613222914968540,"7, Burghclere Drive",,,ME16 8UQ,4177354668,C,B,73,90,House,Mid-Terrace,2020-01-16,E07000110,E14000804,Kent,2020-01-16,rental (private),74,90,186,45.0,1.8,33,0.5,69.0,46.0,311.0,293.0,88.0,62.0,55.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,50.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Timber frame, as built, insulated (assumed)",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"7, Burghclere Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1991-1995,2020-01-16 13:22:29,rental (private),,,200003675940.0,Address Matched +988388249302013081310511412279128,6 Highgrove Cottages,Maidstone Road,Wateringbury,ME18 5GA,4352842178,C,B,76,90,House,Semi-Detached,2013-08-12,E07000110,E14000804,Kent,2013-08-13,marketed sale,76,90,124,39.0,2.6,24,0.9,126.0,63.0,362.0,353.0,162.0,77.0,112.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,0.0,0.0,From main system,Good,Good,"Suspended, insulated (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"6 Highgrove Cottages, Maidstone Road, Wateringbury",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2013-08-13 10:51:14,owner-occupied,16.0,0.0,10014307223.0,Address Matched +841259869012012100117522090029305,"85, Kingsley Road",,,ME15 7UP,3559902078,E,D,44,67,House,Mid-Terrace,2012-10-01,E07000110,E14000804,Kent,2012-10-01,marketed sale,40,61,350,196.0,6.1,67,3.5,98.0,49.0,996.0,794.0,112.0,71.0,90.0,Unknown,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,4.0,4.0,0.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, mains gas",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"85, Kingsley Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2012-10-01 17:52:20,unknown,23.0,0.0,200003695913.0,Address Matched +627491359002011051618395584699148,"31, Hatherall Road",,,ME14 5HF,2040956868,D,D,64,65,House,Semi-Detached,2011-05-14,E07000110,E14000804,Kent,2011-05-16,marketed sale,61,61,215,212.0,4.4,41,4.4,65.0,51.0,660.0,663.0,153.0,153.0,106.37,Single,Y,NODATA!,,,2106.0,75.0,double glazing installed before 2002,Normal,2.0,4.0,4.0,73.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Partial double glazing,Poor,Poor,"Cavity wall, filled cavity",Good,Good,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 73% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,2.47,0.0,,natural,"31, Hatherall Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2011-05-16 18:39:55,owner-occupied,11.0,8.0,200003705416.0,Address Matched +406591513912009120318413004019179,"8, Norway Terrace",Invicta Park,,ME14 2PH,1995340768,D,D,68,68,House,Mid-Terrace,2009-12-02,E07000110,E14000804,Kent,2009-12-03,marketed sale,67,67,231,231.0,3.1,38,3.1,43.0,43.0,516.0,516.0,93.0,93.0,80.4,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,93.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 93% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.3,0.0,N,natural,"8, Norway Terrace, Invicta Park",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2009-12-03 18:41:30,owner-occupied,,,200003723959.0,Address Matched +1024344009002013101417271419570138,35 Crundale,Union Street,,ME14 1TX,2032905178,C,C,74,78,Flat,Mid-Terrace,2013-10-07,E07000110,E14000804,Kent,2013-10-14,none of the above,77,82,160,127.0,1.6,31,1.2,38.0,38.0,287.0,227.0,100.0,102.0,51.0,Single,Y,6th,N,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,2.0,2.0,83.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 83% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,heated corridor,,,0.0,,natural,"35 Crundale, Union Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2013-10-14 17:27:14,rental (social),6.0,5.0,200003701452.0,Address Matched +1403476189242016011812500343159838,All Saints Vicarage,Priory Road,,ME15 6NL,9281481478,D,C,60,74,House,Detached,2015-12-17,E07000110,E14000804,Kent,2016-01-18,none of the above,49,65,254,164.0,10.0,45,6.7,132.0,101.0,1920.0,1490.0,161.0,91.0,230.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,8.0,8.0,70.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 70% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"All Saints Vicarage, Priory Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2016-01-18 12:50:03,owner-occupied,,,200003693649.0,Address Matched +828275519942012082418254907122748,"105, Ashford Road",Bearsted,,ME14 4BS,5972711078,D,B,63,83,House,Semi-Detached,2012-08-24,E07000110,E14000700,Kent,2012-08-24,marketed sale,59,82,211,82.0,4.4,40,1.7,97.0,56.0,709.0,498.0,103.0,64.0,108.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,25.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 25% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"105, Ashford Road, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2012-08-24 18:25:49,owner-occupied,12.0,3.0,200003691998.0,Address Matched +1238000754312014111908460791949036,"173, Sutton Road",,,ME15 9AB,680410378,E,B,45,84,House,Semi-Detached,2014-11-15,E07000110,E14000700,Kent,2014-11-19,none of the above,41,82,339,80.0,6.1,65,1.5,114.0,57.0,1159.0,579.0,127.0,78.0,94.0,Single,Y,NODATA!,,,2102.0,100.0,"double glazing, unknown install date",Normal,2.0,4.0,4.0,0.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"173, Sutton Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2014-11-19 08:46:07,owner-occupied,9.0,0.0,200003713342.0,Address Matched +1634071699222018052221375438428388,"36, Bramley Crescent",Bearsted,,ME15 8JZ,8327918578,C,B,72,83,Bungalow,Semi-Detached,2018-05-22,E07000110,E14000700,Kent,2018-05-22,FiT application,69,80,175,105.0,3.5,31,2.1,130.0,72.0,584.0,550.0,87.0,87.0,113.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,5.0,5.0,18.0,0.0,"From main system, plus solar",Very Good,Very Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, insulated at rafters",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 18% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,,Y,natural,"36, Bramley Crescent, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2018-05-22 21:37:54,owner-occupied,,,200003688515.0,Address Matched +1595535869922017121320063695498813,"15, Banky Meadow",,,ME16 9JX,1907645578,E,C,48,76,House,Detached,2017-12-11,E07000110,E14000804,Kent,2017-12-13,marketed sale,39,69,331,144.0,8.9,58,3.9,137.0,80.0,1498.0,901.0,198.0,77.0,152.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,4.0,7.0,7.0,29.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 29% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"15, Banky Meadow",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2017-12-13 20:06:36,owner-occupied,,,200003667067.0,Address Matched +177755172922020081610243963748340,"1, Corben Close",Allington,,ME16 0FH,4652753568,C,B,70,83,House,Semi-Detached,2020-08-14,E07000110,E14000804,Kent,2020-08-16,marketed sale,68,80,191,101.0,2.9,34,1.6,116.0,68.0,471.0,475.0,100.0,68.0,85.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,29.0,0.0,From main system,Good,Good,"Suspended, limited insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Timber frame, as built, insulated (assumed)",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 29% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"1, Corben Close, Allington",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2020-08-16 10:24:39,owner-occupied,,,10022901462.0,Address Matched +1210029485252014092319202491240927,"4, Corrance Green",,,ME15 6BU,9734518278,E,C,51,73,Bungalow,Detached,2014-09-23,E07000110,E14000804,Kent,2014-09-23,marketed sale,51,74,294,141.0,4.1,56,2.0,96.0,51.0,888.0,710.0,80.0,54.0,73.0,dual,Y,NODATA!,,,2107.0,100.0,double glazing installed before 2002,Normal,1.0,5.0,5.0,12.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,"Pitched, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 12% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"4, Corrance Green",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2014-09-23 19:20:24,owner-occupied,16.0,2.0,200003676392.0,Address Matched +1632358809842019061100022354810888,"61, Springwood Road",Barming,,ME16 9PR,7886708578,C,B,74,87,House,End-Terrace,2019-06-08,E07000110,E14000804,Kent,2019-06-11,rental (social),72,87,170,65.0,2.4,30,0.9,60.0,60.0,374.0,346.0,123.0,77.0,79.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"61, Springwood Road, Barming",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1991-1995,2019-06-11 00:02:23,rental (social),,,200003699118.0,Address Matched +321306960022009070721153644038811,Moors Oast,Spenny Lane,Marden,TN12 9PR,1418644668,E,E,47,53,House,Semi-Detached,2009-07-07,E07000110,E14000804,Kent,2009-07-07,rental (private),66,70,156,135.0,5.8,31,5.1,190.0,98.0,935.0,893.0,343.0,306.0,143.26,Single,N,NO DATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,8.0,8.0,6.0,0.0,From main system,Poor,Good,"Solid, limited insulation (assumed)",,,Fully double glazed,Good,Good,"Solid brick, with internal insulation",Good,Good,"Room heaters, LPG",,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, LPG",Poor,Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 6% of fixed outlets,Very Poor,Very Poor,LPG - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.39,0.0,N,natural,"Moors Oast, Spenny Lane, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1996-2002,2009-07-07 21:15:36,rental (private),,,10014310068.0,Address Matched +1445121189402016051916434749469318,"12, Ashford Drive",Kingswood,,ME17 3PB,1422084478,D,B,61,81,House,Semi-Detached,2016-05-19,E07000110,E14000700,Kent,2016-05-19,marketed sale,54,77,253,113.0,5.2,46,2.4,123.0,67.0,888.0,648.0,169.0,88.0,112.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,3.0,6.0,6.0,17.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, dual fuel (mineral and wood)",,,"Roof room(s), ceiling insulated",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 17% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,2.37,,N,natural,"12, Ashford Drive, Kingswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2016-05-19 16:43:47,owner-occupied,,,200003700305.0,Address Matched +558001829222010102716291831238430,"43, Thomas Rider Way",Boughton Monchelsea,,ME17 4GA,3380211868,C,B,80,81,Flat,End-Terrace,2010-10-27,E07000110,E14000700,Kent,2010-10-27,new dwelling,80,81,157,152.0,1.6,26,1.5,54.0,36.0,272.0,274.0,83.0,83.0,60.59,standard tariff,,top floor,,,,,NO DATA!,NO DATA!,,,,,,From main system,Very Good,Very Good,(other premises below),,,Fully double glazed,Good,Good,Average thermal transmittance 0.32 W/m?K,Good,Good,,,,Average thermal transmittance 0.13 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.55,,,NO DATA!,"43, Thomas Rider Way, Boughton Monchelsea",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2010-10-27 16:29:18,,,,10022901121.0,Address Matched +414683350452009122312265100219976,3 Christchurch House,Wallis Avenue,,ME15 9JT,9604001768,D,C,62,73,Flat,Detached,2009-12-22,E07000110,E14000700,Kent,2009-12-23,rental (private),56,69,338,236.0,3.6,56,2.5,46.0,32.0,464.0,386.0,175.0,95.0,63.14,Single,Y,1st,N,4.0,2104.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,57.0,0.0,From main system,Average,Good,(other premises below),,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, mains gas",,,(another dwelling above),,,"Boiler and radiators, mains gas",Average,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 57% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,unheated corridor,5.23,2.46,0.0,N,natural,"3 Christchurch House, Wallis Avenue",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2009-12-23 12:26:51,rental (private),,,200003683137.0,Address Matched +1552783481252017061614155094930357,"199, Queens Road",,,ME16 0WA,3795142578,C,C,79,79,Flat,Detached,2017-06-16,E07000110,E14000804,Kent,2017-06-16,marketed sale,83,83,127,127.0,1.2,22,1.2,42.0,42.0,208.0,208.0,95.0,95.0,54.0,Unknown,Y,2nd,Y,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,(another dwelling below),NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Very Good,Very Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,7.56,,,N,natural,"199, Queens Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2017-06-16 14:15:50,owner-occupied,,,200003655237.0,Address Matched +632244500612012120519175499229882,Arnold Yoke,Back Street,Leeds,ME17 1TF,8260096868,E,D,47,67,House,Detached,2012-11-23,E07000110,E14000700,Kent,2012-12-05,FiT application,36,53,234,146.0,15.0,57,10.0,91.0,94.0,2681.0,1936.0,97.0,86.0,270.0,Unknown,N,NODATA!,,,2106.0,0.0,not defined,Normal,2.0,9.0,9.0,100.0,1.0,"From main system, plus solar",Good,Good,"Suspended, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Timber frame, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, oil",Average,Average,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,oil (not community),0.0,NO DATA!,,,0.0,,natural,"Arnold Yoke, Back Street, Leeds",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2012-12-05 19:17:54,owner-occupied,20.0,20.0,200003697973.0,Address Matched +63644490512011011814355293990449,"2, Trotwood Close",,,ME5 9JU,4944034468,C,C,74,78,House,Semi-Detached,2011-01-18,E07000110,E14000700,Kent,2011-01-18,marketed sale,71,75,282,244.0,1.8,47,1.6,31.0,22.0,320.0,289.0,78.0,74.0,38.8,Single,Y,NO DATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,60.0,0.0,From main system,Good,Good,"Solid, limited insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 100 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 60% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.3,0.0,N,natural,"2, Trotwood Close",Maidstone,Faversham and Mid Kent,CHATHAM,England and Wales: 1996-2002,2011-01-18 14:35:52,owner-occupied,,,200003707997.0,Address Matched +688674699222013102117202280498637,"19, The Farrows",,,ME15 9ZJ,3825980968,B,B,84,84,Flat,Detached,2013-10-21,E07000110,E14000700,Kent,2013-10-21,new dwelling,88,88,76,76.0,1.0,15,1.0,50.0,50.0,208.0,208.0,81.0,81.0,66.0,standard tariff,,top floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.27 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"19, The Farrows",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2013-10-21 17:20:22,NO DATA!,8.0,6.0,10014312553.0,Address Matched +780887389142018122112334495782358,Flat 7 Hobart House,Ruskin Grove,,ME15 9WL,2160687968,C,C,77,78,Flat,Semi-Detached,2018-09-25,E07000110,E14000700,Kent,2018-12-21,rental (social),77,78,192,184.0,1.6,32,1.5,68.0,41.0,235.0,242.0,123.0,123.0,48.0,dual,Y,Ground,Y,,2206.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,33.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Timber frame, as built, insulated (assumed)",Very Good,Very Good,,,,(another dwelling above),,,"Water source heat pump, radiators, electric",Average,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 33% of fixed outlets,Average,Average,electricity (not community),0.0,unheated corridor,11.9,,,N,"mechanical, extract only","Flat 7 Hobart House, Ruskin Grove",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2007 onwards,2018-12-21 12:33:44,rental (social),,,10014311636.0,Address Matched +772203002922020032923481457488570,"85, Perryfield Street",,,ME14 2SZ,7541027968,D,B,60,85,House,Mid-Terrace,2020-03-18,E07000110,E14000804,Kent,2020-03-29,rental (private),53,82,267,85.0,4.9,47,1.6,77.0,77.0,866.0,472.0,103.0,71.0,104.0,Single,Y,NODATA!,,,2107.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"85, Perryfield Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2020-03-29 23:48:14,rental (private),,,200003669747.0,Address Matched +525932089342010081115071775809098,"92a, Queens Road",,,ME16 0LG,2306588768,B,B,81,82,Flat,Semi-Detached,2010-08-11,E07000110,E14000804,Kent,2010-08-11,rental (private),79,80,170,163.0,1.5,28,1.5,52.0,31.0,236.0,238.0,104.0,104.0,55.0,Single,Y,1st,Y,2.0,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,33.0,0.0,From main system,Very Good,Very Good,(other premises below),,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 33% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.3,0.0,N,natural,"92a, Queens Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2010-08-11 15:07:17,rental (private),,,200003691867.0,Address Matched +6884544032010041909243078968905,Flat 8,Goudhurst House,Coombe Road,ME15 6UP,4598927468,B,B,83,85,Flat,Detached,2010-04-19,E07000110,E14000804,Kent,2010-04-19,rental (social),83,84,132,124.0,1.4,22,1.3,65.0,37.0,219.0,222.0,85.0,85.0,65.52,Single,Y,3rd,Y,4.0,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,25.0,0.0,From main system,Very Good,Very Good,(other premises below),,,Fully double glazed,Good,Good,"Timber frame, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 25% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,unheated corridor,8.7,2.3,0.0,N,natural,"Flat 8, Goudhurst House, Coombe Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2010-04-19 09:24:30,rental (social),,,10022901293.0,Address Matched +49978659022010060921142283488660,"10, Coppice View",Weavering,,ME14 5TX,6866563468,C,C,72,77,House,Detached,2010-06-08,E07000110,E14000700,Kent,2010-06-09,marketed sale,69,74,171,145.0,5.6,28,4.8,200.0,108.0,704.0,653.0,179.0,157.0,196.09,Single,Y,NO DATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,8.0,8.0,15.0,0.0,From main system,Good,Good,"Solid, limited insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 15% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.34,0.0,N,natural,"10, Coppice View, Weavering",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1996-2002,2010-06-09 21:14:22,owner-occupied,,,200003689694.0,Address Matched +1029468149242013102218304414572998,"513, Tonbridge Road",,,ME16 9LH,4201545178,E,C,54,80,House,Semi-Detached,2013-10-21,E07000110,E14000804,Kent,2013-10-22,marketed sale,49,79,282,100.0,5.0,54,1.8,79.0,52.0,785.0,530.0,201.0,79.0,92.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,50.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"513, Tonbridge Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2013-10-22 18:30:44,owner-occupied,10.0,5.0,200003681721.0,Address Matched +1142475839742014051711514326349658,"23, Scott Street",,,ME14 2TA,9717933278,C,B,73,86,House,Mid-Terrace,2014-05-15,E07000110,E14000804,Kent,2014-05-17,marketed sale,73,87,147,61.0,2.5,28,1.1,68.0,52.0,458.0,420.0,95.0,68.0,87.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,70.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, with internal insulation",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 70% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"23, Scott Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2014-05-17 11:51:43,owner-occupied,10.0,7.0,200003669768.0,Address Matched +204870029302013031921104653679718,6 Hanover Court,Snowdon Avenue,,ME14 5NP,8392426568,C,C,73,78,Flat,Enclosed End-Terrace,2013-03-19,E07000110,E14000804,Kent,2013-03-19,rental (social),77,83,168,125.0,1.5,32,1.1,44.0,31.0,233.0,219.0,136.0,91.0,47.0,Single,Y,1st,Y,,2104.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,57.0,0.0,From main system,Average,Average,(other premises below),,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 57% of fixed outlets,Good,Good,mains gas (not community),0.0,unheated corridor,5.96,,0.0,,natural,"6 Hanover Court, Snowdon Avenue",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2013-03-19 21:10:46,rental (social),7.0,4.0,200003705900.0,Address Matched +1778752162202020012118343165802798,Flat 181 Scotney Gardens,St. Peters Street,,ME16 0GT,8264768678,B,B,86,86,Flat,Mid-Terrace,2020-01-21,E07000110,E14000804,Kent,2020-01-21,rental (private),79,79,127,127.0,1.9,22,1.9,83.0,83.0,116.0,116.0,194.0,194.0,88.0,dual,N,2nd,N,,2401.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,"Electric immersion, off-peak",Average,Poor,(another dwelling below),NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,Portable electric heaters (assumed),,,(another dwelling above),,,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,heated corridor,0.0,,,N,natural,"Flat 181 Scotney Gardens, St. Peters Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2020-01-21 18:34:31,rental (private),,,10022893548.0,Address Matched +245606209222017062614051689878083,"50a, Buckland Road",,,ME16 0SH,8838089568,F,B,35,81,Flat,Semi-Detached,2017-06-23,E07000110,E14000804,Kent,2017-06-26,marketed sale,45,82,365,110.0,4.9,62,1.5,55.0,56.0,1339.0,249.0,98.0,105.0,78.0,Single,Y,2nd,N,,2603.0,0.0,not defined,Normal,1.0,3.0,3.0,100.0,0.0,Gas multipoint,Average,Average,(another dwelling below),NO DATA!,,Single glazed,Very Poor,Very Poor,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,(another dwelling above),,,"Room heaters, electric",Very Poor,Poor,Programmer and appliance thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,heated corridor,,,,N,natural,"50a, Buckland Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2017-06-26 14:05:16,owner-occupied,,,10014309547.0,Address Matched +186324780922008111814475984488908,"18, Bryant Close",Nettlestead,,ME18 5EX,849844568,E,C,47,69,House,Semi-Detached,2008-11-18,E07000110,E14000804,Kent,2008-11-18,marketed sale,41,64,431,246.0,6.2,72,3.5,46.0,46.0,665.0,440.0,216.0,91.0,86.07,Single,Y,NO DATA!,,,2102.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,80.0,1.0,"From main system, no cylinderstat",Poor,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Average,Good,"Programmer, no room thermostat",Very Poor,Very Poor,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.38,0.0,N,natural,"18, Bryant Close, Nettlestead",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2008-11-18 14:47:59,owner-occupied,,,200003657260.0,Address Matched +418541529402018101519343570189558,"9, Springfield Avenue",,,ME14 2QA,6446721768,D,C,61,75,House,Semi-Detached,2018-10-15,E07000110,E14000804,Kent,2018-10-15,rental (private),56,70,260,162.0,4.1,46,2.6,63.0,63.0,725.0,684.0,133.0,79.0,90.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,"mechanical, extract only","9, Springfield Avenue",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2018-10-15 19:34:35,rental (private),,,200003670732.0,Address Matched +452498169502010031123021778309798,"4, West Marsh Close",,,ME15 8QS,1559463768,C,C,72,74,House,Mid-Terrace,2010-03-11,E07000110,E14000700,Kent,2010-03-11,marketed sale,68,70,218,202.0,3.1,36,2.9,73.0,44.0,473.0,454.0,98.0,98.0,96.46,Single,Y,NO DATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,3.0,36.0,1.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,Programmer and room thermostat,Average,Average,Low energy lighting in 36% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.37,0.0,N,natural,"4, West Marsh Close",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2010-03-11 23:02:17,owner-occupied,,,200003685595.0,Address Matched +1498341559142016112122260045862698,"7, Beech Tree Road",,,ME15 8GS,1164758478,B,B,88,89,House,Detached,2016-11-21,E07000110,E14000700,Kent,2016-11-21,new dwelling,88,89,63,52.0,1.6,11,1.3,80.0,80.0,360.0,362.0,112.0,60.0,139.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.18 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"7, Beech Tree Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2016-11-21 22:26:00,unknown,1.0,1.0,10091193632.0,Address Matched +594506029962011021821585104488379,Flat 4/A Walsingham House,Wheeler Street,,ME14 2UD,7063204868,D,C,63,73,Flat,End-Terrace,2011-02-18,E07000110,E14000804,Kent,2011-02-18,rental (social),57,68,324,239.0,3.6,54,2.7,37.0,37.0,587.0,458.0,127.0,92.0,66.4,Single,Y,2nd,Y,4.0,2107.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Flat, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.31,0.0,N,natural,"Flat 4/A Walsingham House, Wheeler Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2011-02-18 21:58:51,rental (social),,,200003704492.0,Address Matched +841820219022012100518015482058392,Horseshoe Farm House,Dean Street,East Farleigh,ME15 0PU,9842112078,E,C,49,79,House,Detached,2012-10-05,E07000110,E14000804,Kent,2012-10-05,marketed sale,38,70,244,96.0,9.6,60,4.0,75.0,75.0,1502.0,783.0,222.0,102.0,159.0,dual,N,NODATA!,,,2106.0,70.0,double glazing installed during or after 2002,Normal,1.0,8.0,8.0,100.0,0.0,From main system,Average,Poor,"Solid, insulated",,,Partial double glazing,Average,Average,"Granite or whinstone, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, oil",Average,Average,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,oil (not community),0.0,NO DATA!,,,0.0,,natural,"Horseshoe Farm House, Dean Street, East Farleigh",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2012-10-05 18:01:54,unknown,15.0,15.0,200003671252.0,Address Matched +149812649922019071109123031708341,"38, Kings Walk",Holland Road,,ME14 1GQ,4351411568,C,B,74,85,House,Mid-Terrace,2019-07-10,E07000110,E14000804,Kent,2019-07-11,marketed sale,70,83,157,80.0,3.5,28,1.8,87.0,87.0,533.0,489.0,151.0,75.0,126.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,2.0,6.0,6.0,100.0,0.0,From main system,Good,Good,"Solid, limited insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 270 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"38, Kings Walk, Holland Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2019-07-11 09:12:30,owner-occupied,,,200003655146.0,Address Matched +633499099722011100109071966308459,"97, Bower Street",,,ME16 8BB,5617996868,E,D,44,60,House,Mid-Terrace,2011-09-30,E07000110,E14000804,Kent,2011-10-01,marketed sale,49,65,403,275.0,4.4,66,2.9,42.0,42.0,898.0,629.0,99.0,78.0,66.26,Single,Y,NODATA!,,,2101.0,0.0,single glazing,Normal,1.0,4.0,4.0,86.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,No time or thermostatic control of room temperature,Very Poor,Very Poor,Low energy lighting in 86% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,2.57,0.0,,natural,"97, Bower Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2011-10-01 09:07:19,owner-occupied,7.0,6.0,200003667232.0,Address Matched +1170787899062014070910304715788164,"19, Stagshaw Close",,,ME15 6TE,6153935278,C,A,78,94,House,Mid-Terrace,2014-07-08,E07000110,E14000804,Kent,2014-07-09,marketed sale,82,98,115,-2.0,1.3,22,0.0,72.0,43.0,245.0,249.0,95.0,66.0,61.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,33.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",,,Fully double glazed,Good,Good,"Timber frame, as built, insulated (assumed)",Good,Good,,,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 33% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"19, Stagshaw Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2014-07-09 10:30:47,owner-occupied,9.0,3.0,10022893261.0,Address Matched +598307029342013111114033886470948,32 Crundale,Union Street,,ME14 1TX,7397924868,C,C,73,78,Flat,Mid-Terrace,2013-10-04,E07000110,E14000804,Kent,2013-11-11,none of the above,75,82,175,128.0,1.7,33,1.3,38.0,38.0,277.0,221.0,138.0,108.0,51.0,Single,Y,5th,N,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,2.0,2.0,83.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 83% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,1.0,,0.0,,natural,"32 Crundale, Union Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2013-11-11 14:03:38,rental (social),6.0,5.0,200003701449.0,Address Matched +655424139962011101418174898748749,Flat 50 Tennyson Lodge,James Whatman Way,,ME14 1FR,4964358868,B,B,81,82,Flat,End-Terrace,2011-10-14,E07000110,E14000804,Kent,2011-10-14,new dwelling,91,91,93,89.0,0.7,12,0.7,45.0,34.0,176.0,177.0,99.0,99.0,57.9,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,4.0,,"Community scheme, no cylinder thermostat",Good,Very Good,(other premises below),,,Fully double glazed,Good,Good,Average thermal transmittance 0.26 W/m?K,Very Good,Very Good,,,,(other premises above),,,Community scheme,Good,Very Good,"Flat rate charging, programmer and TRVs",Average,Average,Low energy lighting in 67% of fixed outlets,Good,Good,NO DATA!,0.0,NO DATA!,,2.4,,,NO DATA!,"Flat 50 Tennyson Lodge, James Whatman Way",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2011-10-14 18:17:48,,6.0,4.0,10014312772.0,Address Matched +452118642352010102016493796209674,"1, Oriel Grove",,,ME15 9WR,6489263768,B,B,85,85,House,End-Terrace,2010-10-20,E07000110,E14000700,Kent,2010-10-20,new dwelling,86,86,100,98.0,1.4,16,1.4,63.0,51.0,276.0,278.0,55.0,55.0,87.2,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,,From main system,Very Good,Very Good,Average thermal transmittance 0.18 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.23 W/m?K,Very Good,Very Good,"Room heaters, electric",,,Average thermal transmittance 0.10 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.33,,,NO DATA!,"1, Oriel Grove",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2010-10-20 16:49:37,,,,10014311531.0,Address Matched +222447722132009021616021692968005,"9, Cooling Close",,,ME14 5RA,2592057568,C,C,69,79,House,Mid-Terrace,2009-02-16,E07000110,E14000804,Kent,2009-02-16,rental (social),64,77,278,181.0,2.8,46,1.9,32.0,32.0,337.0,234.0,114.0,86.0,61.29,Single,Y,NO DATA!,,,2107.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,85.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, partial insulation (assumed)",Average,Average,,,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Poor,Poor,Low energy lighting in 85% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,0.0,N,natural,"9, Cooling Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1976-1982,2009-02-16 16:02:16,rental (social),,,200003672093.0,Address Matched +a705f22a3d86d983a453b45259403b5e2cd175337e3a2bdd5b5828a3edabb4d4,KNOLE FARM HOUSE,MALLING ROAD,TESTON,ME18 5BH,10001684361,E,D,40,63,House,Detached,2021-07-14,E07000110,E14000804,Kent,2021-07-21,marketed sale,60,76,175,95.0,7.6,34,4.2,124.0,124.0,2090.0,1445.0,221.0,140.0,222.0,Unknown,N,,,,,100.0,double glazing installed during or after 2002,Normal,0.0,9.0,9.0,100.0,0.0,From main system,Poor,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, wood logs",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, LPG",Poor,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,LPG (not community),0.0,,,2.3,0.0,N,natural,"KNOLE FARM HOUSE, MALLING ROAD, TESTON",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2021-07-21 08:57:19,Owner-occupied,16.0,,200003724938.0,Energy Assessor +1694687649132019020106113771778704,"5, Adam Close",Coxheath,,ME17 4QU,4491752678,C,B,70,84,House,Semi-Detached,2019-01-30,E07000110,E14000804,Kent,2019-02-01,marketed sale,67,82,208,101.0,2.9,37,1.5,64.0,64.0,464.0,435.0,130.0,77.0,79.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,91.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 91% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"5, Adam Close, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2019-02-01 06:11:37,owner-occupied,,,200003714959.0,Address Matched +12378029242017092816192547839808,"5, Tennison Way",,,ME15 9GE,287028468,C,B,78,89,House,Mid-Terrace,2017-05-10,E07000110,E14000700,Kent,2017-09-28,rental (social),78,89,130,55.0,2.2,23,1.0,67.0,67.0,354.0,357.0,120.0,70.0,98.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Very Good,Very Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"5, Tennison Way",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2007 onwards,2017-09-28 16:19:25,rental (social),,,10022895430.0,Address Matched +950123486732013061217491123978806,The Wentways,West End,Marden,TN12 9JA,8603879078,F,C,35,70,House,Detached,2013-06-11,E07000110,E14000804,Kent,2013-06-12,marketed sale,39,71,317,129.0,9.6,59,3.9,149.0,78.0,1969.0,1091.0,136.0,74.0,163.0,dual,Y,NODATA!,,,2106.0,69.0,double glazing installed before 2002,Normal,2.0,7.0,7.0,8.0,2.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Partial double glazing,Poor,Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, mains gas",,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 8% of fixed outlets,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"The Wentways, West End, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: before 1900,2013-06-12 17:49:11,owner-occupied,26.0,2.0,200003710000.0,Address Matched +596699429832018010422001131068009,"67, Chantry Road",Marden,,TN12 9HU,2901024868,D,B,68,90,Bungalow,Mid-Terrace,2018-01-04,E07000110,E14000804,Kent,2018-01-04,rental (social),68,91,267,45.0,1.9,47,0.4,47.0,31.0,349.0,281.0,75.0,50.0,41.0,Single,Y,NODATA!,,,,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"67, Chantry Road, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1930-1949,2018-01-04 22:00:11,rental (social),,,200003708682.0,Address Matched +a70fcb3923a9de43feb18ccb39a5cd0b1760866f532104ddb6f0d47ac6c22531,FLAT 1,SHERINGHAM HOUSE,OWLETTS CLOSE,ME15 7TP,10001588243,E,C,52,72,Flat,Detached,2021-06-29,E07000110,E14000700,Kent,2021-07-01,ECO assessment,50,74,370,188.0,3.9,65,2.0,114.0,57.0,792.0,408.0,76.0,76.0,61.0,Single,Y,00,N,,,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,0.0,0.0,"From main system, no cylinder thermostat",Average,Average,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Average,Average,"Room heaters, electric",,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,unheated corridor,6.0,2.75,0.0,N,natural,"FLAT 1, SHERINGHAM HOUSE, OWLETTS CLOSE",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2021-07-01 13:51:45,Rented (social),8.0,,200003714108.0,Energy Assessor +a71176a42c3812d00380723aea7b3dde30fbc197428e3200ab548dde4c6c08e2,26 WILDFELL CLOSE,,,ME5 9RU,10001440730,C,B,72,89,House,End-Terrace,2021-07-07,E07000110,E14000700,Kent,2021-07-08,rental,71,89,210,64.0,2.0,37,0.7,47.0,47.0,343.0,317.0,113.0,72.0,55.0,Single,Y,,,,,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.32,0.0,N,natural,26 WILDFELL CLOSE,Maidstone,Faversham and Mid Kent,CHATHAM,England and Wales: 1983-1990,2021-07-08 00:18:35,Rented (private),7.0,,200003727965.0,Energy Assessor +910734528312013040914273999070700,"6, Ragstone Road",Bearsted,,ME15 8PA,7075896078,E,B,52,87,House,Semi-Detached,2013-04-09,E07000110,E14000700,Kent,2013-04-09,rental (private),47,87,290,58.0,5.3,56,1.1,103.0,52.0,807.0,389.0,173.0,74.0,94.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,0.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 25 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"6, Ragstone Road, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2013-04-09 14:27:39,rental (private),12.0,0.0,200003690792.0,Address Matched +1155810345752014061123460893940723,"24, West Park Road",,,ME15 7AG,7316534278,A,A,94,98,House,Mid-Terrace,2014-06-11,E07000110,E14000700,Kent,2014-06-11,FiT application,94,99,10,-16.0,0.3,3,-0.2,60.0,60.0,403.0,322.0,84.0,83.0,84.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,83.0,0.0,"From main system, plus solar",Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, partial insulation (assumed)",Average,Average,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 83% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,75.0,,natural,"24, West Park Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1976-1982,2014-06-11 23:46:08,owner-occupied,24.0,20.0,200003686650.0,Address Matched +630247914852014100619075597049485,Flat 3 York House,Nottingham Avenue,,ME15 7PX,4518476868,D,C,68,77,Flat,Semi-Detached,2014-10-06,E07000110,E14000700,Kent,2014-10-06,marketed sale,69,80,198,127.0,2.4,38,1.5,62.0,41.0,461.0,302.0,93.0,94.0,62.0,Single,Y,Ground,N,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,50.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,no corridor,,,0.0,,natural,"Flat 3 York House, Nottingham Avenue",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2014-10-06 19:07:55,owner-occupied,6.0,3.0,200003713159.0,Address Matched +1362327131912015090914051499050736,"2, Tippen Way",Marden,,TN12 9FB,7623198378,B,B,86,88,House,NO DATA!,2015-09-09,E07000110,E14000804,Kent,2015-09-09,new dwelling,87,89,72,57.0,1.2,13,0.9,57.0,57.0,308.0,309.0,103.0,55.0,91.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.19 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.28 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.14 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"2, Tippen Way, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,NO DATA!,2015-09-09 14:05:14,unknown,1.0,1.0,10014315654.0,Address Matched +1136569545432014050709105817078603,"44, Camp Way",,,ME15 9BB,4387692278,C,B,70,88,House,Mid-Terrace,2014-05-05,E07000110,E14000700,Kent,2014-05-07,marketed sale,70,89,176,49.0,2.5,34,0.7,71.0,46.0,463.0,364.0,93.0,65.0,74.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,4.0,4.0,44.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 44% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"44, Camp Way",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2014-05-07 09:10:58,owner-occupied,9.0,4.0,200003710070.0,Address Matched +1191638089442014081815212325649988,"22, Holmesdale Close",Loose,,ME15 0BQ,2411886278,B,A,85,95,House,Mid-Terrace,2014-08-18,E07000110,E14000804,Kent,2014-08-18,new dwelling,87,97,78,7.0,1.3,14,0.2,62.0,62.0,239.0,239.0,85.0,51.0,97.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.12 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.22 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"22, Holmesdale Close, Loose",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2014-08-18 15:21:23,owner-occupied,15.0,15.0,10014315590.0,Address Matched +515660319302015021913555073859038,6 Magnolia House,Springwood Close,,ME16 9PB,1342418768,C,C,72,75,Flat,Detached,2015-02-17,E07000110,E14000804,Kent,2015-02-19,rental (social),71,76,201,170.0,2.1,35,1.7,40.0,40.0,401.0,339.0,88.0,88.0,58.0,Single,Y,Ground,N,,2111.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,TRVs and bypass,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,6.07,,,N,natural,"6 Magnolia House, Springwood Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2015-02-19 13:55:50,rental (social),,,200003697268.0,Address Matched +1512253799332017011814092931978304,"12, Lamkin Way",,,ME17 3FL,9471359478,B,B,83,83,House,Semi-Detached,2017-01-18,E07000110,E14000700,Kent,2017-01-18,new dwelling,85,85,93,93.0,1.4,16,1.4,62.0,62.0,242.0,242.0,85.0,85.0,84.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"12, Lamkin Way",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2017-01-18 14:09:29,unknown,1.0,1.0,10091194091.0,Address Matched +12562529842017092816173641839208,"9, Tennison Way",,,ME15 9GE,4890128468,C,B,79,89,House,Mid-Terrace,2017-05-10,E07000110,E14000700,Kent,2017-09-28,rental (social),78,89,130,55.0,2.2,23,1.0,67.0,67.0,354.0,356.0,120.0,70.0,98.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Very Good,Very Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"9, Tennison Way",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2007 onwards,2017-09-28 16:17:36,rental (social),,,10022895432.0,Address Matched +597122509262014072621464644528594,"16, Winchs Garth",Staplehurst,,TN12 0QX,9489024868,C,B,73,91,House,Semi-Detached,2014-07-22,E07000110,E14000804,Kent,2014-07-26,rental (social),73,91,150,34.0,2.4,29,0.6,65.0,52.0,432.0,394.0,125.0,82.0,83.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,75.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"16, Winchs Garth, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1950-1966,2014-07-26 21:46:46,rental (social),8.0,6.0,200003728024.0,Address Matched +1803848061312020061810382125900074,Tewkesbury Cottage,Forsham Lane,Sutton Valence,ME17 3EW,410150778,G,E,5,53,House,End-Terrace,2020-06-17,E07000110,E14000700,Kent,2020-06-18,marketed sale,21,60,694,245.0,8.2,124,2.9,60.0,60.0,2459.0,1191.0,385.0,159.0,66.0,dual,N,NODATA!,,,2601.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,1.0,100.0,1.0,"Electric immersion, off-peak",Very Poor,Poor,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, no insulation",Very Poor,Very Poor,Portable electric heaters assumed for most rooms,Very Poor,Poor,No thermostatic control of room temperature,Poor,Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,dual fuel - mineral + wood,0.0,NO DATA!,,,,N,natural,"Tewkesbury Cottage, Forsham Lane, Sutton Valence",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2020-06-18 10:38:21,owner-occupied,,,200003694388.0,Address Matched +1082663112432014020412401202078905,"35, Merton Road",Bearsted,,ME15 8LL,1592919178,D,B,58,88,House,Mid-Terrace,2014-02-04,E07000110,E14000700,Kent,2014-02-04,marketed sale,56,90,286,45.0,3.2,55,0.6,37.0,37.0,542.0,344.0,174.0,70.0,58.0,Unknown,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,100.0,0.0,"From main system, no cylinder thermostat",Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"35, Merton Road, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2014-02-04 12:40:12,owner-occupied,8.0,8.0,200003686018.0,Address Matched +1ad1ab7e45c0df4103f073124b0d0824da9e8173c1c3adce87fb732aecae3cc0,11 Conway Road,,,ME16 0HD,10003395428,D,C,59,73,House,Detached,2022-10-24,E07000110,E14000804,Kent,2022-10-25,marketed sale,54,70,242,151.0,7.2,39,4.5,126.0,126.0,1409.0,1108.0,139.0,82.0,187.0,Single,Y,,,,,70.0,double glazing installed during or after 2002,Normal,3.0,7.0,7.0,95.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Partial double glazing,Average,Average,"Cavity wall, filled cavity",Average,Average,"Room heaters, wood logs",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 95% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.4,0.0,N,natural,11 Conway Road,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2022-10-25 17:54:11,Owner-occupied,19.0,,200003659146.0,Energy Assessor +416978385652010010711064991000676,"34, Fulbert Drive",Bearsted,,ME14 4PU,6605511768,E,C,44,71,House,Detached,2010-01-07,E07000110,E14000700,Kent,2010-01-07,marketed sale,39,66,416,211.0,7.8,70,3.9,111.0,57.0,1106.0,580.0,183.0,130.0,111.5,Single,Y,NO DATA!,,,2106.0,0.0,not defined,Normal,0.0,6.0,6.0,5.0,0.0,From main system,Average,Good,"Solid, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Average,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 5% of fixed outlets,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.32,0.0,N,natural,"34, Fulbert Drive, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2010-01-07 11:06:49,owner-occupied,,,200003688917.0,Address Matched +1171595983432014070907330468078100,High View,Boxley Road,,ME5 9JD,8048145278,E,C,53,79,House,Semi-Detached,2014-07-08,E07000110,E14000700,Kent,2014-07-09,marketed sale,47,77,267,104.0,6.7,51,2.7,131.0,69.0,1203.0,730.0,190.0,91.0,130.0,Single,Y,NODATA!,,,2104.0,0.0,single glazing,Normal,1.0,6.0,6.0,8.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 8% of fixed outlets,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"High View, Boxley Road",Maidstone,Faversham and Mid Kent,CHATHAM,England and Wales: 1967-1975,2014-07-09 07:33:04,owner-occupied,13.0,1.0,200003709025.0,Address Matched +1406303456952016012914385290260043,"56, Wheeler Street",,,ME14 1UA,345602478,D,B,61,85,House,End-Terrace,2016-01-29,E07000110,E14000804,Kent,2016-01-29,marketed sale,53,82,271,89.0,4.5,48,1.5,60.0,60.0,890.0,524.0,78.0,45.0,95.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Roof room(s), insulated",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"56, Wheeler Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2016-01-29 14:38:52,owner-occupied,,,200003698863.0,Address Matched +15939149802019031315574743819478,2,Rocklands,31 Tonbridge Road,ME16 8RX,4898448468,C,C,76,77,Flat,Semi-Detached,2019-03-13,E07000110,E14000804,Kent,2019-03-13,rental (private),80,81,149,143.0,1.4,26,1.3,68.0,46.0,247.0,250.0,82.0,82.0,53.0,Single,Y,Ground,N,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,50.0,0.0,From main system,Good,Good,"Suspended, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,unheated corridor,6.79,,,N,natural,"2, Rocklands, 31 Tonbridge Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2019-03-13 15:57:47,rental (private),,,10022896440.0,Address Matched +1782233222022020020408364378448460,"11, Wickings Close",Staplehurst,,TN12 0FR,6770298678,B,A,84,95,House,End-Terrace,2020-02-04,E07000110,E14000804,Kent,2020-02-04,new dwelling,86,97,86,4.0,1.3,15,0.1,67.0,67.0,216.0,216.0,79.0,48.0,84.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.28 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"11, Wickings Close, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,NO DATA!,2020-02-04 08:36:43,unknown,9.0,9.0,10093304215.0,Address Matched +1466291909222016072807333866038346,"9, Denstead Walk",,,ME15 8UJ,4651036478,C,B,71,87,House,End-Terrace,2016-07-27,E07000110,E14000700,Kent,2016-07-28,rental (social),69,86,200,79.0,2.7,35,1.1,70.0,52.0,420.0,402.0,177.0,82.0,78.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,67.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 270 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 67% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,2.34,,N,natural,"9, Denstead Walk",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2016-07-28 07:33:38,rental (social),,,200003722048.0,Address Matched +1824138492002020090808114474100848,Larchmont,Vicarage Lane,East Farleigh,ME15 0LX,7040691778,C,C,71,80,House,Detached,2020-09-04,E07000110,E14000804,Kent,2020-09-08,marketed sale,65,74,177,125.0,5.9,31,4.3,111.0,111.0,999.0,928.0,138.0,85.0,190.0,Unknown,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,2.0,8.0,8.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"Larchmont, Vicarage Lane, East Farleigh",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2020-09-08 08:11:44,owner-occupied,,,200003673152.0,Address Matched +530810730532015102115251341268096,"92, The Quarries",Boughton Monchelsea,,ME17 4NJ,3631029768,E,C,49,72,Bungalow,Detached,2015-10-21,E07000110,E14000700,Kent,2015-10-21,marketed sale,42,65,422,226.0,4.9,75,2.7,44.0,44.0,949.0,737.0,93.0,62.0,66.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Sandstone or limestone, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Roof room(s), no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"92, The Quarries, Boughton Monchelsea",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2015-10-21 15:25:13,owner-occupied,,,200003709831.0,Address Matched +395034960102009110910515560910768,"45, Kingfisher Meadow",,,ME16 8RB,1112369668,D,B,64,82,Flat,Detached,2009-11-06,E07000110,E14000804,Kent,2009-11-09,rental (private),76,76,190,190.0,2.2,28,2.2,84.0,48.0,215.0,149.0,293.0,135.0,78.45,Single,N,2nd,N,5.0,2605.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,7.0,0.0,"Electric immersion, standard tariff",Very Poor,Poor,(other premises below),,,Fully double glazed,Good,Good,"System built, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Room heaters, electric",Very Poor,Poor,Programmer and room thermostat,Good,Good,Low energy lighting in 7% of fixed outlets,Very Poor,Very Poor,electricity - this is for backwards compatibility only and should not be used,0.0,unheated corridor,2.78,,0.0,N,natural,"45, Kingfisher Meadow",Maidstone,Maidstone and The Weald,MAIDSTONE,,2009-11-09 10:51:55,rental (private),,,10022892256.0,Address Matched +a7607eee63fa62b3689749b0b50fdb0a615a045544dfe1c8ccd49f76ad731954,Quested Cottage,Quested Way,Harrietsham,ME17 1JJ,9952707568,E,D,46,63,Bungalow,Detached,2021-09-16,E07000110,E14000700,Kent,2021-09-17,marketed sale,44,59,361,246.0,7.6,58,5.1,106.0,106.0,1475.0,1230.0,130.0,80.0,132.0,Single,Y,,,,,100.0,"double glazing, unknown install date",Normal,0.0,6.0,6.0,86.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, wood logs",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 86% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.56,0.0,N,natural,"Quested Cottage, Quested Way, Harrietsham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2021-09-17 06:41:03,Owner-occupied,14.0,,200003702939.0,Energy Assessor +1476299599002016093006235846660098,Flat 7,"58, Buckland Road",,ME16 0SH,7020896478,D,C,56,70,Flat,End-Terrace,2016-09-01,E07000110,E14000804,Kent,2016-09-30,marketed sale,39,60,616,372.0,3.7,104,2.2,30.0,30.0,436.0,226.0,222.0,193.0,36.0,Unknown,N,Ground,N,,2401.0,75.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,100.0,0.0,"Electric immersion, off-peak",Very Poor,Poor,"Solid, no insulation (assumed)",NO DATA!,,Partial double glazing,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,Portable electric heaters (assumed),,,(another dwelling above),,,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,no corridor,,2.33,,N,natural,"Flat 7, 58, Buckland Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2016-09-30 06:23:58,owner-occupied,,,200003667149.0,Address Matched +46254772312018093019530496280540,"7, Rosslyn Green",,,ME16 0BZ,5040263468,D,C,64,78,House,Detached,2018-09-28,E07000110,E14000804,Kent,2018-09-30,marketed sale,58,72,223,135.0,4.4,39,2.7,144.0,72.0,686.0,656.0,137.0,82.0,113.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,6.0,6.0,0.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"7, Rosslyn Green",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2018-09-30 19:53:04,owner-occupied,,,200003705733.0,Address Matched +1726970539512019060608205998010864,"11, Downlands",Harrietsham,,ME17 1LE,8475984678,D,C,64,79,House,Detached,2019-06-03,E07000110,E14000700,Kent,2019-06-06,marketed sale,63,80,216,119.0,5.4,34,2.7,130.0,96.0,1029.0,833.0,173.0,75.0,162.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,8.0,8.0,65.0,1.0,From main system,Average,Average,"Suspended, limited insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, wood logs",,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 65% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"11, Downlands, Harrietsham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1996-2002,2019-06-06 08:20:59,owner-occupied,,,200003704089.0,Address Matched +594619009922011021813141654388999,"9, Rosemary Gardens",,,ME15 9ZG,9553004868,B,B,85,85,Bungalow,Mid-Terrace,2011-02-18,E07000110,E14000700,Kent,2011-02-18,new dwelling,85,85,118,118.0,1.3,20,1.3,37.0,37.0,232.0,232.0,87.0,87.0,64.5,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,6.0,,From main system,Very Good,Very Good,Average thermal transmittance 0.17 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.18 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.19 W/m?K,Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,3.2,,,NO DATA!,"9, Rosemary Gardens",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2011-02-18 13:14:16,,6.0,6.0,10014312031.0,Address Matched +294521790262009053120593372588601,Flat 3,"17, Hayle Road",,ME15 6PD,713952668,G,G,1,1,Flat,Detached,2009-05-28,E07000110,E14000804,Kent,2009-05-31,rental (private),20,20,1009,1009.0,7.4,152,7.4,46.0,46.0,1524.0,1524.0,280.0,280.0,48.4,Unknown,Y,2nd,Y,3.0,2699.0,0.0,INVALID!,Normal,1.0,2.0,2.0,0.0,1.0,No system present: electric immersion assumed,Very Poor,Poor,(other premises below),,,Single glazed,Very Poor,Very Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Roof room(s), no insulation",Very Poor,Very Poor,No system present: electric heaters assumed,Very Poor,Poor,,Very Poor,Very Poor,No low energy lighting,Very Poor,Very Poor,electricity - this is for backwards compatibility only and should not be used,0.0,unheated corridor,2.5,2.67,0.0,N,natural,"Flat 3, 17, Hayle Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2009-05-31 20:59:33,rental (private),,,200003697288.0,Address Matched +405245142022020070809542700038710,"15, Bargrove Road",,,ME14 5RR,1066430768,C,B,71,87,House,Semi-Detached,2020-07-07,E07000110,E14000804,Kent,2020-07-08,rental (private),69,85,193,75.0,2.6,34,1.1,89.0,63.0,462.0,401.0,81.0,52.0,77.0,Single,Y,NODATA!,,,2111.0,100.0,"double glazing, unknown install date",Normal,1.0,4.0,4.0,60.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 270 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,TRVs and bypass,Average,Average,Low energy lighting in 60% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"15, Bargrove Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1976-1982,2020-07-08 09:54:27,rental (private),,,200003672223.0,Address Matched +1016114226712013093008013594270212,"8, Waterside Gate",St. Peters Street,,ME16 0GB,2231644178,C,B,74,86,House,Mid-Terrace,2013-09-27,E07000110,E14000804,Kent,2013-09-30,rental (private),73,86,136,60.0,3.2,26,1.5,124.0,66.0,485.0,454.0,136.0,77.0,122.0,Unknown,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,12.0,0.0,From main system,Good,Good,"Solid, limited insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 12% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"8, Waterside Gate, St. Peters Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2013-09-30 08:01:35,rental (private),34.0,4.0,200003654872.0,Address Matched +1496936549802016111509175544869698,"4, Cambridge Way",,,ME15 7QW,5853448478,C,C,78,78,Flat,Semi-Detached,2016-11-11,E07000110,E14000700,Kent,2016-11-15,rental (social),80,80,145,145.0,1.6,25,1.6,47.0,47.0,249.0,249.0,128.0,128.0,61.0,Single,Y,Ground,N,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Timber frame, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,5.0,2.32,,N,natural,"4, Cambridge Way",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2003-2006,2016-11-15 09:17:55,rental (social),,,10022895003.0,Address Matched +1504939819922017021015340119008293,3 The Stables,Mote Park,,ME15 8AA,9166109478,C,B,77,89,House,End-Terrace,2017-02-10,E07000110,E14000700,Kent,2017-02-10,new dwelling,77,88,137,58.0,2.2,24,1.0,59.0,59.0,383.0,385.0,102.0,55.0,92.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.25 W/m-¦K,Good,Good,Fully double glazed,Good,Good,Average thermal transmittance 0.20 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.17 W/m-¦K,Good,Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"3 The Stables, Mote Park",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2017-02-10 15:34:01,unknown,37.0,37.0,10091195105.0,Address Matched +847926959142012102314450801222978,"14, The Weavers",,,ME16 0NZ,9192452078,D,B,64,82,House,Detached,2012-10-23,E07000110,E14000804,Kent,2012-10-23,marketed sale,64,84,207,81.0,3.2,39,1.3,48.0,48.0,549.0,443.0,122.0,68.0,81.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Solid, limited insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"14, The Weavers",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2012-10-23 14:45:08,owner-occupied,8.0,8.0,200003694734.0,Address Matched +1721893139962019051711472174438681,"64, Chapelfield Way",Allington,,ME16 9FS,8727354678,B,B,86,88,House,End-Terrace,2019-05-17,E07000110,E14000804,Kent,2019-05-17,new dwelling,87,89,69,58.0,1.5,12,1.3,80.0,80.0,284.0,285.0,96.0,53.0,126.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.19 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.16 W/m-¦K,Good,Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"64, Chapelfield Way, Allington",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2019-05-17 11:47:21,unknown,33.0,33.0,10093306695.0,Address Matched +907883784732013040308461079078606,"22, Edelin Road",Bearsted,,ME14 4RD,8659676078,C,B,76,88,House,End-Terrace,2013-04-02,E07000110,E14000700,Kent,2013-04-03,marketed sale,76,88,118,52.0,3.0,23,1.4,135.0,67.0,434.0,436.0,131.0,65.0,134.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,0.0,0.0,"From main system, no cylinder thermostat",Average,Average,"To external air, insulated (assumed)",,,Fully double glazed,Average,Average,"Timber frame, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"22, Edelin Road, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2007 onwards,2013-04-03 08:46:10,owner-occupied,25.0,0.0,10022895498.0,Address Matched +1774092262132019122016341920278594,40 Wrens Cross,Upper Stone Street,,ME15 6YU,6430538678,C,C,72,72,Flat,Mid-Terrace,2019-12-20,E07000110,E14000804,Kent,2019-12-20,new dwelling,79,79,166,166.0,1.5,28,1.5,43.0,43.0,314.0,314.0,252.0,252.0,53.0,standard tariff,,top floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,"Electric immersion, standard tariff",Very Poor,Poor,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.20 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.15 W/m-¦K,Good,Good,"Room heaters, electric",Very Poor,Poor,Appliance thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"40 Wrens Cross, Upper Stone Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2019-12-20 16:34:19,unknown,24.0,24.0,10094440974.0,Address Matched +1779058869152020030415465226000866,"2, Old School Place",Headcorn,,TN27 9FZ,8610968678,B,A,85,97,House,Mid-Terrace,2020-03-04,E07000110,E14000700,Kent,2020-03-04,new dwelling,88,100,77,-13.0,1.0,14,-0.1,65.0,65.0,179.0,179.0,71.0,42.0,76.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.20 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and underfloor heating, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"2, Old School Place, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,NO DATA!,2020-03-04 15:46:52,unknown,20.0,20.0,10094443674.0,Address Matched +1795601247032020032707312534978908,"24, Matterdale Gardens",Barming,,ME16 9HW,4874989678,D,B,63,88,Bungalow,Semi-Detached,2020-03-18,E07000110,E14000804,Kent,2020-03-27,marketed sale,58,88,288,63.0,3.1,51,0.7,50.0,50.0,469.0,330.0,171.0,65.0,61.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"24, Matterdale Gardens, Barming",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2020-03-27 07:31:25,owner-occupied,,,200003666720.0,Address Matched +596936070512013111219545292079685,21 Midhurst Court,Mote Road,,ME15 6EH,6541024868,D,C,65,79,Flat,Mid-Terrace,2013-10-02,E07000110,E14000804,Kent,2013-11-12,none of the above,72,84,219,119.0,1.8,40,1.0,28.0,28.0,267.0,198.0,240.0,94.0,45.0,Single,Y,3rd,N,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,2.0,2.0,100.0,0.0,"Electric immersion, standard tariff",Very Poor,Very Poor,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,6.16,,0.0,,natural,"21 Midhurst Court, Mote Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2013-11-12 19:54:52,rental (social),5.0,5.0,200003693328.0,Address Matched +452508689962010031116211173098810,"9, Hedley Street",,,ME14 1UG,1700863768,D,C,65,69,House,Mid-Terrace,2010-03-11,E07000110,E14000804,Kent,2010-03-11,marketed sale,60,63,291,272.0,3.4,49,3.2,71.0,35.0,522.0,509.0,88.0,88.0,69.31,Single,Y,NO DATA!,,,2106.0,63.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,0.0,2.0,From main system,Very Good,Very Good,"Suspended, no insulation (assumed)",,,Partial double glazing,Poor,Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.44,0.0,N,natural,"9, Hedley Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2010-03-11 16:21:11,owner-occupied,,,200003698940.0,Address Matched +1452664339142016061112344742569508,9 The Quarter,Cranbrook Road,Staplehurst,TN12 0EP,9129135478,E,C,48,76,House,Semi-Detached,2016-06-10,E07000110,E14000804,Kent,2016-06-11,marketed sale,41,70,365,151.0,5.9,64,2.5,108.0,59.0,1046.0,682.0,164.0,77.0,92.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,17.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 17% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,2.23,,N,natural,"9 The Quarter, Cranbrook Road, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1900-1929,2016-06-11 12:34:47,owner-occupied,,,200003661981.0,Address Matched +503445519222010062208352947498580,"35, Farmers Close",Leeds,,ME17 1SB,8415127768,D,C,68,74,House,Semi-Detached,2010-06-21,E07000110,E14000700,Kent,2010-06-22,marketed sale,63,70,280,224.0,3.0,47,2.4,49.0,33.0,448.0,378.0,117.0,101.0,64.18,Single,Y,NO DATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,50.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.38,0.0,N,natural,"35, Farmers Close, Leeds",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2010-06-22 08:35:29,owner-occupied,,,200003698383.0,Address Matched +596928309022011050123453444498369,"16a, Durham Close",,,ME15 8DS,6416024868,C,C,73,75,Flat,Semi-Detached,2011-05-01,E07000110,E14000700,Kent,2011-05-01,rental (social),75,78,170,152.0,1.9,33,1.7,48.0,33.0,292.0,268.0,115.0,116.0,59.33,Single,Y,1st,Y,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,57.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 57% of fixed outlets,Good,Good,mains gas (not community),0.0,no corridor,,2.42,0.0,,natural,"16a, Durham Close",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2011-05-01 23:45:34,rental (social),7.0,4.0,200003687008.0,Address Matched +155694600062008100510555501628728,Hubbards Farm Cottage,Hook Lane,Lenham Heath,ME17 2BX,2023081568,F,E,27,43,House,Detached,2008-10-02,E07000110,E14000700,Kent,2008-10-05,marketed sale,25,39,439,316.0,15.0,88,11.0,141.0,79.0,1878.0,1361.0,249.0,180.0,170.87,Single,N,NO DATA!,,,2107.0,100.0,double glazing installed before 2002,Normal,1.0,9.0,9.0,22.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, wood logs",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, oil",Average,Average,"Programmer, TRVs and bypass",Poor,Poor,Low energy lighting in 22% of fixed outlets,Poor,Poor,oil - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.42,0.0,N,natural,"Hubbards Farm Cottage, Hook Lane, Lenham Heath",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2008-10-05 10:55:55,owner-occupied,,,10014308330.0,Address Matched +318936320942009070218440867410698,"17, Grovelands",Old Ashford Road,,ME17 2QR,9968924668,C,C,73,79,House,Mid-Terrace,2009-07-01,E07000110,E14000700,Kent,2009-07-02,marketed sale,71,76,195,156.0,3.1,32,2.5,97.0,49.0,364.0,329.0,135.0,109.0,95.62,Single,Y,NO DATA!,,,2107.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,0.0,0.0,From main system,Good,Good,"Solid, limited insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, mains gas",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Poor,Poor,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.36,0.0,N,natural,"17, Grovelands, Old Ashford Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1996-2002,2009-07-02 18:44:08,owner-occupied,,,200003715473.0,Address Matched +989880459802014071114242315249298,Wakerobin,Cripple Street,,ME15 6BA,4805852178,B,B,83,85,House,Detached,2014-07-11,E07000110,E14000804,Kent,2014-07-11,FiT application,80,82,81,69.0,2.8,16,2.5,106.0,80.0,845.0,791.0,108.0,108.0,175.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,9.0,9.0,67.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 67% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,,natural,"Wakerobin, Cripple Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2014-07-11 14:24:23,owner-occupied,18.0,12.0,200003721941.0,Address Matched +237351163212013112209300295979451,"164, Roseholme",,,ME16 8DT,4142358568,C,C,75,80,Flat,Semi-Detached,2013-11-13,E07000110,E14000804,Kent,2013-11-22,none of the above,78,84,145,109.0,1.5,28,1.1,40.0,40.0,297.0,227.0,76.0,77.0,54.0,Single,Y,1st,N,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,83.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 83% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,5.7,,0.0,,natural,"164, Roseholme",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2013-11-22 09:30:02,rental (private),6.0,5.0,200003656483.0,Address Matched +470842334552010041615044899900574,"55, Robins Close",Lenham,,ME17 2LD,5438494768,D,C,67,75,House,Semi-Detached,2010-04-16,E07000110,E14000700,Kent,2010-04-16,marketed sale,60,71,295,217.0,3.3,49,2.4,38.0,38.0,464.0,370.0,151.0,107.0,66.54,Single,Y,NO DATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,89.0,0.0,From main system,Average,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Average,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 89% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.37,0.0,N,natural,"55, Robins Close, Lenham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2010-04-16 15:04:48,owner-occupied,,,200003707261.0,Address Matched +1283786077152015021819442793950935,"5, Halden Close",,,ME15 8SX,9571733378,C,B,69,83,House,Semi-Detached,2015-02-18,E07000110,E14000700,Kent,2015-02-18,FiT application,68,82,195,98.0,3.0,34,1.5,75.0,55.0,575.0,532.0,106.0,70.0,87.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,4.0,63.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 63% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"5, Halden Close",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2015-02-18 19:44:27,owner-occupied,,,200003680865.0,Address Matched +410747202132009121019034925968698,"3, Malta Terrace",Invicta Park,,ME14 2PQ,815670768,D,D,68,68,House,Mid-Terrace,2009-12-10,E07000110,E14000804,Kent,2009-12-10,marketed sale,67,67,243,243.0,2.8,40,2.8,38.0,38.0,494.0,494.0,86.0,86.0,70.0,dual,Y,NO DATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,100.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.3,0.0,N,natural,"3, Malta Terrace, Invicta Park",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2009-12-10 19:03:49,owner-occupied,,,200003723928.0,Address Matched +1369398052112015092919561194250839,"39, Church Street",,,ME14 1EN,8990249378,D,B,65,90,House,Mid-Terrace,2015-09-29,E07000110,E14000804,Kent,2015-09-29,rental (private),63,90,257,52.0,2.8,45,0.6,46.0,46.0,535.0,337.0,93.0,61.0,61.0,dual,Y,NODATA!,,,2107.0,40.0,secondary glazing,Normal,1.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"To unheated space, no insulation (assumed)",NO DATA!,,Partial secondary glazing,Poor,Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"39, Church Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2015-09-29 19:56:11,rental (private),,,200003687423.0,Address Matched +1310006509022015061015010045288685,"33, Chippendayle Drive",Harrietsham,,ME17 1AD,8413025378,C,B,69,85,House,Detached,2015-06-08,E07000110,E14000700,Kent,2015-06-10,FiT application,64,82,206,94.0,3.8,36,1.8,93.0,66.0,613.0,535.0,180.0,76.0,105.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,6.0,6.0,60.0,0.0,From main system,Good,Good,"Solid, limited insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 60% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"33, Chippendayle Drive, Harrietsham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1996-2002,2015-06-10 15:01:00,owner-occupied,,,200003703008.0,Address Matched +1678400489922018111309545611378278,"4, St. Martins Close",Detling,,ME14 3JS,7180831678,C,B,69,86,House,End-Terrace,2018-11-13,E07000110,E14000700,Kent,2018-11-13,marketed sale,66,85,215,80.0,2.9,38,1.1,56.0,56.0,448.0,386.0,147.0,68.0,76.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"4, St. Martins Close, Detling",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2018-11-13 09:54:56,owner-occupied,,,200003693988.0,Address Matched +597429329242012010919574082420718,"7, Northumberland Court",Northumberland Road,,ME15 7LL,5253624868,C,C,69,69,Flat,Semi-Detached,2012-01-09,E07000110,E14000700,Kent,2012-01-09,rental (social),68,68,191,191.0,3.1,37,3.1,48.0,48.0,529.0,529.0,86.0,86.0,84.18,Single,Y,1st,Y,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,100.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,no corridor,,2.42,0.0,,natural,"7, Northumberland Court, Northumberland Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2012-01-09 19:57:40,rental (social),9.0,9.0,200003729018.0,Address Matched +832154446612012090519150794020701,"6, Brooklands",Headcorn,,TN27 9QS,7110641078,D,C,55,72,House,Semi-Detached,2012-09-05,E07000110,E14000700,Kent,2012-09-05,marketed sale,50,66,257,160.0,5.1,50,3.2,115.0,57.0,833.0,782.0,111.0,111.0,102.0,dual,Y,NODATA!,,,2106.0,90.0,double glazing installed before 2002,Normal,1.0,5.0,2.0,0.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Mostly double glazing,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"6, Brooklands, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,England and Wales: 1950-1966,2012-09-05 19:15:07,owner-occupied,8.0,0.0,200003699685.0,Address Matched +158368386252015051610204597950555,The Barn,Goddington Lane,Harrietsham,ME17 1JX,5508671568,F,E,36,52,House,Detached,2015-05-15,E07000110,E14000700,Kent,2015-05-16,marketed sale,46,59,328,237.0,7.0,53,5.0,106.0,106.0,1595.0,1491.0,366.0,172.0,131.0,Single,N,NODATA!,,,2104.0,100.0,double glazing installed during or after 2002,Less Than Typical,1.0,5.0,5.0,67.0,0.0,From main system,Very Poor,Poor,"Solid, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"System built, as built, insulated (assumed)",Good,Good,"Room heaters, wood logs",,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, electric",Very Poor,Poor,Programmer and room thermostat,Average,Average,Low energy lighting in 67% of fixed outlets,Good,Good,electricity (not community),0.0,NO DATA!,,,,N,natural,"The Barn, Goddington Lane, Harrietsham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2003-2006,2015-05-16 10:20:45,owner-occupied,,,10014308932.0,Address Matched +596909419222012082023473514608562,"37, Farmers Close",Leeds,,ME17 1SB,6118124868,D,B,68,87,House,Semi-Detached,2012-08-20,E07000110,E14000700,Kent,2012-08-20,rental (social),68,89,196,52.0,2.5,38,0.7,49.0,49.0,448.0,347.0,81.0,57.0,68.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,75.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, partial insulation (assumed)",Average,Average,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"37, Farmers Close, Leeds",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1976-1982,2012-08-20 23:47:35,rental (social),8.0,6.0,200003698385.0,Address Matched +a804defc04c5c621ff7085959a5fb2f5a6f5eb744c28b93421651a817d1b4226,11,Pearson Meadow,Boughton Monchelsea,ME17 4SX,10001361755,B,A,83,96,House,Semi-Detached,2021-07-14,E07000110,E14000700,Kent,2021-07-14,new dwelling,86,98,93,-4.0,1.2,16,0.0,65.0,65.0,204.0,204.0,67.0,41.0,71.0,standard tariff,,,N,,,100.0,,,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.39,,,,"11, Pearson Meadow, Boughton Monchelsea",Maidstone,Faversham and Mid Kent,MAIDSTONE,2021,2021-07-14 09:24:11,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,14.0,,10094442605.0,Address Matched +611658017932011033112485118268601,"18, Beaumont Road",,,ME16 8NQ,1188635868,D,C,55,76,House,Mid-Terrace,2011-03-25,E07000110,E14000804,Kent,2011-03-31,marketed sale,48,73,398,201.0,4.4,67,2.2,43.0,43.0,625.0,358.0,216.0,113.0,65.72,Unknown,Y,NO DATA!,,,2102.0,100.0,"double glazing, unknown install date",Normal,1.0,4.0,4.0,78.0,1.0,"From main system, no cylinder thermostat",Poor,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Average,Good,"Programmer, no room thermostat",Very Poor,Very Poor,Low energy lighting in 78% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.44,0.0,N,natural,"18, Beaumont Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2011-03-31 12:48:51,owner-occupied,,,200003674424.0,Address Matched +a974383a7f50aa22cd1236a011490fbd9f842ddd93977f990f6c10ad8de8fa1a,160 Wallis Place,Hart Street,,ME16 8FE,6827088468,C,C,78,79,Flat,Mid-Terrace,2021-08-17,E07000110,E14000804,Kent,2021-08-17,rental,80,81,133,125.0,1.5,23,1.4,97.0,61.0,230.0,234.0,91.0,91.0,64.0,Single,Y,04,Y,,,100.0,double glazing installed during or after 2002,Normal,1.0,3.0,3.0,40.0,0.0,From main system,Good,Good,(another dwelling below),,,Fully double glazed,Good,Good,"System built, as built, insulated (assumed)",Good,Good,,,,"Flat, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 40% of fixed outlets,Average,Average,mains gas (not community),0.0,unheated corridor,9.17,2.38,0.0,N,natural,"160 Wallis Place, Hart Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007-2011,2021-08-17 17:01:48,Rented (private),10.0,,10022900764.0,Energy Assessor +1151389823852015121111545690959227,"21, Northdown Close",Penenden Heath,,ME14 2ER,2726304278,D,B,59,82,House,Semi-Detached,2015-12-11,E07000110,E14000804,Kent,2015-12-11,marketed sale,55,81,260,95.0,4.4,46,1.7,87.0,60.0,825.0,537.0,154.0,86.0,97.0,Single,Y,NODATA!,,,2106.0,95.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,56.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Mostly double glazing,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 56% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"21, Northdown Close, Penenden Heath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2015-12-11 11:54:56,owner-occupied,,,200003706624.0,Address Matched +166541455552015110317401398059559,"14, Sandlewood Court",,,ME16 0ZG,5954582568,C,C,78,79,Flat,Semi-Detached,2015-11-02,E07000110,E14000804,Kent,2015-11-03,marketed sale,82,82,139,136.0,1.2,24,1.2,49.0,39.0,199.0,200.0,120.0,120.0,51.0,Single,Y,3rd,Y,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,75.0,0.0,From main system,Good,Good,(another dwelling below),NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,heated corridor,,,,N,natural,"14, Sandlewood Court",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2015-11-03 17:40:13,owner-occupied,,,10014306177.0,Address Matched +324787000962009071108363554808941,Yenale,Ulcombe Road,Langley,ME17 3JE,4556074668,G,E,14,40,Bungalow,Detached,2009-07-10,E07000110,E14000700,Kent,2009-07-11,marketed sale,19,44,841,462.0,8.6,138,4.7,53.0,31.0,1346.0,704.0,261.0,261.0,62.5,Single,Y,NO DATA!,,,2601.0,90.0,"double glazing, unknown install date",Normal,0.0,3.0,1.0,30.0,0.0,"Electric immersion, standard tariff",Very Poor,Poor,"Solid, no insulation (assumed)",,,Partial double glazing,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,Portable electric heaters,,,"Pitched, no insulation",Very Poor,Very Poor,"Room heaters, mains gas",Average,Average,No thermostatic control of room temperature,Poor,Poor,Low energy lighting in 30% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.5,0.0,N,natural,"Yenale, Ulcombe Road, Langley",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2009-07-11 08:36:35,owner-occupied,,,, +1769811239062019120217040498168881,Flat 13 The Coach Yard,"372a, Tonbridge Road",,ME16 8TT,8960308678,C,B,77,83,Flat,Mid-Terrace,2019-09-06,E07000110,E14000804,Kent,2019-12-02,rental (private),74,74,178,180.0,1.9,30,2.0,55.0,62.0,240.0,161.0,209.0,185.0,64.0,Unknown,N,1st,N,,2603.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,100.0,0.0,"Electric immersion, off-peak",Poor,Poor,(another dwelling below),NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Room heaters, electric",Very Poor,Poor,Programmer and appliance thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,unheated corridor,10.94,,,N,natural,"Flat 13 The Coach Yard, 372a, Tonbridge Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2019-12-02 17:04:04,rental (private),,,200003655185.0,Address Matched +596810129602014092222213483442228,"8, The Cockpit",Marden,,TN12 9TQ,4625024868,C,C,72,75,Flat,Detached,2014-09-22,E07000110,E14000804,Kent,2014-09-22,rental (social),74,78,165,142.0,1.9,32,1.6,63.0,40.0,368.0,330.0,93.0,93.0,60.0,Single,Y,2nd,Y,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,43.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Timber frame, as built, partial insulation (assumed)",Average,Average,,,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 43% of fixed outlets,Average,Average,mains gas (not community),0.0,unheated corridor,7.5,,0.0,,natural,"8, The Cockpit, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1967-1975,2014-09-22 22:21:34,rental (social),7.0,3.0,200003727017.0,Address Matched +1726900381852020082812554829200567,"3, Brown Road",Otham,,ME15 8YU,5746194678,B,A,91,93,House,Semi-Detached,2020-08-28,E07000110,E14000700,Kent,2020-08-28,new dwelling,93,95,35,24.0,0.6,6,0.4,79.0,79.0,225.0,225.0,77.0,47.0,94.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.10 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.19 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"3, Brown Road, Otham",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2020-08-28 12:55:48,unknown,10.0,10.0,10094440569.0,Address Matched +249983203552009040123383507210359,"57, Grove Road",,,ME15 9AU,3982379568,C,C,76,77,House,Mid-Terrace,2009-03-25,E07000110,E14000700,Kent,2009-04-01,rental (social),73,73,197,193.0,2.4,33,2.4,53.0,35.0,327.0,330.0,102.0,102.0,74.21,Single,Y,NO DATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,50.0,0.0,From main system,Very Good,Very Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.43,0.0,N,natural,"57, Grove Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2009-04-01 23:38:35,rental (social),,,200003709974.0,Address Matched +1622775948832018080112305259078900,"4, Artisan Road",Headcorn,,TN27 9AZ,4059937578,B,A,85,93,House,Detached,2018-08-01,E07000110,E14000700,Kent,2018-08-01,new dwelling,85,94,78,24.0,1.8,14,0.6,82.0,82.0,287.0,288.0,100.0,54.0,135.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.16 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.21 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.12 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"4, Artisan Road, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,NO DATA!,2018-08-01 12:30:52,unknown,20.0,20.0,10093304380.0,Address Matched +293884959342010030417452767200848,"58, Upper Fant Road",,,ME16 8DN,6301752668,E,D,46,57,House,Mid-Terrace,2010-03-04,E07000110,E14000804,Kent,2010-03-04,marketed sale,50,59,433,344.0,4.5,61,3.6,74.0,37.0,836.0,681.0,98.0,98.0,72.66,Single,Y,NO DATA!,,,2104.0,0.0,not defined,Normal,0.0,4.0,4.0,0.0,4.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Sandstone, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, no insulation",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,0.0,N,natural,"58, Upper Fant Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2010-03-04 17:45:27,owner-occupied,,,200003657800.0,Address Matched +1623525659962018042016502307468218,Oakdene Farm Bungalow,Leeds Road,Langley,ME17 3JN,1088547578,E,A,49,100,Bungalow,Detached,2018-04-16,E07000110,E14000700,Kent,2018-04-20,rental (private),33,74,484,149.0,7.5,82,2.3,69.0,69.0,1075.0,704.0,293.0,101.0,92.0,dual,N,NODATA!,,,2402.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,"Electric immersion, off-peak",Very Poor,Poor,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Average,Average,Portable electric heaters (assumed),,,"Pitched, 300 mm loft insulation",Very Good,Very Good,Electric storage heaters,Average,Very Poor,Automatic charge control,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,NO DATA!,,,,N,natural,"Oakdene Farm Bungalow, Leeds Road, Langley",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2018-04-20 16:50:23,rental (private),,,200003697824.0,Address Matched +462258082112010032914520193200774,"6, Brookbank",Penenden Heath,,ME14 2EP,7425234768,C,C,75,77,House,Semi-Detached,2010-03-29,E07000110,E14000804,Kent,2010-03-29,rental (social),73,74,197,187.0,2.5,33,2.4,78.0,39.0,357.0,363.0,109.0,109.0,76.26,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,More Than Typical,0.0,4.0,4.0,0.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,0.0,N,natural,"6, Brookbank, Penenden Heath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1976-1982,2010-03-29 14:52:01,rental (social),,,200003707382.0,Address Matched +1504433099962016121314150338978546,Little Moatenden Barn,Maidstone Road,Headcorn,TN27 9PT,4371998478,C,B,70,88,House,Detached,2016-12-13,E07000110,E14000700,Kent,2016-12-13,FiT application,63,80,121,29.0,6.0,31,2.8,95.0,95.0,714.0,714.0,183.0,143.0,194.0,Single,N,NODATA!,,,2110.0,100.0,double glazing installed during or after 2002,Normal,2.0,7.0,5.0,100.0,0.0,From main system,Average,Average,"Solid, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Timber frame, as built, insulated (assumed)",Good,Good,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, insulated",Good,Good,"Boiler and underfloor heating, oil",Average,Average,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,oil (not community),0.0,NO DATA!,,,,N,natural,"Little Moatenden Barn, Maidstone Road, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,England and Wales: 2007 onwards,2016-12-13 14:15:03,owner-occupied,,,10014308754.0,Address Matched +596581810932011102122521004268091,"3, Felderland Road",,,ME15 9YA,1104024868,C,C,72,73,Bungalow,Mid-Terrace,2011-10-21,E07000110,E14000700,Kent,2011-10-21,rental (social),74,76,196,183.0,1.8,38,1.7,28.0,28.0,332.0,311.0,72.0,72.0,47.41,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,2.35,0.0,,natural,"3, Felderland Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2011-10-21 22:52:10,rental (social),6.0,6.0,200003682803.0,Address Matched +596667829402013053123492684479778,Flat 5 Derwent House,Westmorland Green,,ME15 8BH,2407024868,C,C,76,77,Flat,Detached,2013-05-13,E07000110,E14000700,Kent,2013-05-31,rental (social),79,80,131,125.0,1.5,25,1.5,60.0,38.0,276.0,279.0,81.0,81.0,62.0,Single,Y,1st,N,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,43.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"System built, with external insulation",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 43% of fixed outlets,Average,Average,mains gas (not community),0.0,unheated corridor,5.3,,0.0,,natural,"Flat 5 Derwent House, Westmorland Green",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2013-05-31 23:49:26,rental (social),7.0,3.0,200003685476.0,Address Matched +1430274591012016040412435297060944,"42, Bonnington Road",,,ME14 5QR,9469173478,D,B,59,88,House,End-Terrace,2016-04-04,E07000110,E14000804,Kent,2016-04-04,rental (private),52,87,304,65.0,4.1,54,0.9,92.0,51.0,647.0,374.0,202.0,73.0,76.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,1.0,5.0,5.0,18.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 18% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,2.21,,N,natural,"42, Bonnington Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2016-04-04 12:43:52,rental (private),,,200003671799.0,Address Matched +598366039442012101716292283429738,"10, Raggatt Place",,,ME15 7AB,8491034868,D,B,66,88,Bungalow,Semi-Detached,2012-10-17,E07000110,E14000700,Kent,2012-10-17,rental (social),68,91,236,41.0,2.0,45,0.4,35.0,35.0,376.0,293.0,71.0,51.0,44.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,More Than Typical,0.0,2.0,2.0,71.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, partial insulation (assumed)",Average,Average,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 71% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"10, Raggatt Place",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1976-1982,2012-10-17 16:29:22,rental (social),7.0,5.0,200003727798.0,Address Matched +48527842832008121607480974968198,Flat 4,Bellwood Court,Sutton Road,ME15 8RB,4824175568,B,B,85,86,Flat,Semi-Detached,2008-12-15,E07000110,E14000700,Kent,2008-12-16,new dwelling,84,85,125,119.0,1.2,21,1.2,44.0,29.0,162.0,164.0,68.0,68.0,58.88,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,3.0,,From main system,Very Good,Very Good,Average thermal transmittance = 0.18 W/m?K,Very Good,Very Good,Fully double glazed,Good,Good,Average thermal transmittance = 0.28 W/m?K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,,,NO DATA!,"Flat 4, Bellwood Court, Sutton Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2008-12-16 07:48:09,,6.0,3.0,10014306249.0,Address Matched +589540209222014082018193263808854,"5, Medway Avenue",Yalding,,ME18 6JW,5619063868,D,C,55,79,House,Semi-Detached,2014-08-20,E07000110,E14000804,Kent,2014-08-20,marketed sale,52,77,289,118.0,3.8,56,1.6,67.0,44.0,762.0,558.0,94.0,67.0,69.0,Single,Y,NODATA!,,,2107.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,50.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"5, Medway Avenue, Yalding",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2014-08-20 18:19:32,owner-occupied,6.0,3.0,200003660652.0,Address Matched +391071330042009103112211163917608,"44, Gloucester Road",,,ME15 7HS,27539668,D,C,64,75,House,Semi-Detached,2009-10-30,E07000110,E14000700,Kent,2009-10-31,marketed sale,57,71,274,185.0,4.6,46,3.1,67.0,51.0,671.0,447.0,123.0,123.0,101.0,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,70.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 70% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,,0.0,N,natural,"44, Gloucester Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,,2009-10-31 12:21:11,owner-occupied,,,200003711829.0,Address Matched +1815494532022020080409301841948480,"12, Barty Way",Thurnham,,ME14 4GB,8417331778,B,A,84,94,House,Semi-Detached,2020-08-04,E07000110,E14000700,Kent,2020-08-04,new dwelling,86,96,83,13.0,1.4,15,0.3,82.0,82.0,252.0,252.0,72.0,42.0,98.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,"From main system, flue gas heat recovery",Very Good,Very Good,Average thermal transmittance 0.19 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"12, Barty Way, Thurnham",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2020-08-04 09:30:18,unknown,1.0,1.0,10094444532.0,Address Matched +1745044522502020032708494668602638,"9, Brickfields Close",Hollingbourne,,ME17 1SF,3594326678,B,A,83,95,House,Detached,2020-03-27,E07000110,E14000700,Kent,2020-03-27,new dwelling,85,97,95,6.0,1.4,17,0.1,64.0,64.0,217.0,218.0,102.0,58.0,82.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.18 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.1 W/m-¦K,Very Good,Very Good,"Boiler & underfloor, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"9, Brickfields Close, Hollingbourne",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2020-03-27 08:49:46,unknown,4.0,4.0,10094441489.0,Address Matched +655402620932011101417341531968399,56 Thomas Place,James Whatman Way,,ME14 1FP,2991358868,C,C,78,79,Flat,Mid-Terrace,2011-10-14,E07000110,E14000804,Kent,2011-10-14,new dwelling,89,89,113,110.0,0.9,15,0.9,47.0,37.0,240.0,242.0,102.0,102.0,63.9,standard tariff,,top floor,,,,,NO DATA!,NO DATA!,,,,5.0,,"Community scheme, no cylinder thermostat",Good,Very Good,(other premises below),,,Fully double glazed,Good,Good,Average thermal transmittance 0.27 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.22 W/m?K,Good,Good,Community scheme,Good,Very Good,"Flat rate charging, programmer and TRVs",Average,Average,Low energy lighting in 71% of fixed outlets,Very Good,Very Good,NO DATA!,0.0,NO DATA!,,2.4,,,NO DATA!,"56 Thomas Place, James Whatman Way",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2011-10-14 17:34:15,,7.0,5.0,10014312722.0,Address Matched +1058694899962013121017115057708577,3 Daniel House,Lesley Place,,ME16 0TZ,7515947178,C,C,75,77,Flat,Semi-Detached,2013-12-10,E07000110,E14000804,Kent,2013-12-10,rental (private),62,63,303,292.0,2.3,54,2.2,53.0,32.0,211.0,197.0,108.0,108.0,43.0,dual,N,1st,N,,2402.0,100.0,double glazing installed before 2002,Normal,0.0,2.0,2.0,33.0,0.0,"Electric immersion, off-peak",Average,Very Poor,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,(another dwelling above),,,Electric storage heaters,Average,Very Poor,Automatic charge control,Average,Average,Low energy lighting in 33% of fixed outlets,Average,Average,electricity (not community),0.0,unheated corridor,6.79,,0.0,,natural,"3 Daniel House, Lesley Place",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2013-12-10 17:11:50,rental (private),6.0,2.0,200003721288.0,Address Matched +113304159062019060621414897868191,"82, Old Tovil Road",,,ME15 6QG,9979577468,D,C,58,78,House,End-Terrace,2019-06-06,E07000110,E14000804,Kent,2019-06-06,marketed sale,51,73,321,162.0,4.3,57,2.2,63.0,63.0,700.0,585.0,149.0,68.0,76.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,89.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 89% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"82, Old Tovil Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2019-06-06 21:41:48,owner-occupied,,,200003683328.0,Address Matched +237581550642009030210482155810028,"48, Linden Road",Coxheath,,ME17 4QS,3605458568,C,C,78,80,Maisonette,Semi-Detached,2009-03-02,E07000110,E14000804,Kent,2009-03-02,rental (private),71,72,363,349.0,1.6,55,1.6,15.0,15.0,129.0,115.0,100.0,100.0,29.7,Single,N,Ground,N,2.0,2401.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,100.0,0.0,"Electric immersion, off-peak",Average,Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Timber frame, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,(another dwelling above),,,Electric storage heaters,Poor,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.3,0.0,N,natural,"48, Linden Road, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2009-03-02 10:48:21,rental (private),,,200003714886.0,Address Matched +1682070169702018112800445162182238,"4, Plains Avenue",,,ME15 7AT,9789561678,D,B,60,85,House,Semi-Detached,2018-11-27,E07000110,E14000700,Kent,2018-11-28,marketed sale,52,83,295,93.0,4.5,52,1.5,68.0,69.0,782.0,433.0,115.0,79.0,87.0,Single,Y,NODATA!,,,2106.0,0.0,not defined,Normal,1.0,5.0,5.0,85.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Single glazed,Very Poor,Very Poor,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 85% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"4, Plains Avenue",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2018-11-28 00:44:51,owner-occupied,,,200003683659.0,Address Matched +720099379062011110407302543348699,"36, Adisham Drive",,,ME16 0NP,9452703968,C,C,71,72,House,Semi-Detached,2011-11-04,E07000110,E14000804,Kent,2011-11-04,rental (social),70,71,169,166.0,3.2,33,3.1,68.0,50.0,528.0,531.0,89.0,89.0,98.16,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,5.0,5.0,64.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 64% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,2.41,0.0,,natural,"36, Adisham Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2011-11-04 07:30:25,rental (social),11.0,7.0,200003706773.0,Address Matched +761447249542012111511285692629758,"88, West Street",Harrietsham,,ME17 1HU,7518146968,C,B,71,87,Bungalow,Detached,2012-11-15,E07000110,E14000700,Kent,2012-11-15,marketed sale,70,87,161,57.0,3.0,31,1.1,51.0,51.0,498.0,442.0,108.0,72.0,96.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,5.0,5.0,100.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"88, West Street, Harrietsham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2012-11-15 11:28:56,owner-occupied,8.0,8.0,200003702535.0,Address Matched +913734539022013050715475437338217,"30, Bell Meadow",,,ME15 9ND,1373327078,D,B,56,89,House,Semi-Detached,2013-05-07,E07000110,E14000700,Kent,2013-05-07,none of the above,52,90,282,42.0,4.1,54,0.7,79.0,44.0,619.0,327.0,176.0,64.0,76.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,20.0,0.0,"From main system, no cylinder thermostat",Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 25 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 20% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"30, Bell Meadow",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2013-05-07 15:47:54,owner-occupied,10.0,2.0,200003682721.0,Address Matched +823990189602012081018070802029708,"23, Bychurch Place",Waterloo Street,,ME15 7UQ,7680880078,D,C,66,79,Maisonette,End-Terrace,2012-08-10,E07000110,E14000804,Kent,2012-08-10,rental (social),68,84,233,117.0,2.0,45,1.0,48.0,29.0,376.0,212.0,69.0,69.0,46.0,Single,Y,Ground,N,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,2.0,2.0,33.0,0.0,From main system,Very Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, partial insulation (assumed)",Average,Average,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 33% of fixed outlets,Average,Average,mains gas (not community),0.0,no corridor,,,0.0,,natural,"23, Bychurch Place, Waterloo Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1976-1982,2012-08-10 18:07:08,rental (social),6.0,2.0,200003696663.0,Address Matched +147387220962009041415481440318361,"46, Perryfield Street",,,ME14 2SX,6464290568,D,D,60,62,House,Mid-Terrace,2009-03-19,E07000110,E14000804,Kent,2009-04-14,marketed sale,54,54,324,319.0,4.3,54,4.2,59.0,37.0,604.0,609.0,89.0,89.0,78.9,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,42.0,0.0,From main system,Good,Very Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 42% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.69,0.0,N,natural,"46, Perryfield Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2009-04-14 15:48:14,owner-occupied,,,200003669698.0,Address Matched +577170559502011010417071581290848,"15, Buckland Gardens",,,ME16 0ZB,7533852868,B,B,87,89,Flat,NO DATA!,2011-01-04,E07000110,E14000804,Kent,2011-01-04,new dwelling,87,88,101,95.0,1.1,16,1.1,61.0,40.0,211.0,213.0,89.0,89.0,69.22,standard tariff,,top floor,,,,,NO DATA!,NO DATA!,,,,7.0,,From main system,Very Good,Very Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.07 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.85,,,NO DATA!,"15, Buckland Gardens",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2011-01-04 17:07:15,,14.0,7.0,10014308671.0,Address Matched +758096769062012030710155356638272,"63, Harvesters Way",Weavering,,ME14 5SH,7504616968,D,D,59,61,House,Mid-Terrace,2012-03-07,E07000110,E14000700,Kent,2012-03-07,marketed sale,59,61,270,259.0,3.4,51,3.2,75.0,38.0,575.0,579.0,103.0,103.0,56.6,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,2.323,0.0,,natural,"63, Harvesters Way, Weavering",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1976-1982,2012-03-07 10:15:53,owner-occupied,10.0,0.0,200003716293.0,Address Matched +640697899962011061316515397578599,"42, Northumberland Court",Northumberland Road,,ME15 7LL,9942947868,C,C,69,69,Flat,Semi-Detached,2011-06-13,E07000110,E14000700,Kent,2011-06-13,rental (social),67,67,195,195.0,3.2,37,3.2,47.0,47.0,531.0,531.0,83.0,83.0,84.76,Single,Y,2nd,Y,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,100.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,,,,"Flat, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,no corridor,,2.4,0.0,,natural,"42, Northumberland Court, Northumberland Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2011-06-13 16:51:53,rental (social),9.0,9.0,200003729040.0,Address Matched +615478471632016100212304019268502,Kariliam,Stanley Road,Marden,TN12 9EL,7229565868,E,C,50,76,House,Semi-Detached,2016-09-29,E07000110,E14000804,Kent,2016-10-02,marketed sale,41,69,316,142.0,7.9,57,3.6,141.0,77.0,1424.0,844.0,140.0,115.0,138.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,3.0,7.0,7.0,17.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 17% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,2.22,,N,natural,"Kariliam, Stanley Road, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1930-1949,2016-10-02 12:30:40,owner-occupied,,,200003709159.0,Address Matched +634791547912011052618235190290881,"5, Westmorland Road",,,ME15 8BE,8162707868,D,C,59,71,House,Semi-Detached,2011-05-26,E07000110,E14000700,Kent,2011-05-26,marketed sale,56,72,281,182.0,3.7,54,2.4,68.0,37.0,551.0,401.0,143.0,95.0,69.42,Unknown,Y,NODATA!,,,2102.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,17.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,Low energy lighting in 17% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,2.37,0.0,,natural,"5, Westmorland Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2011-05-26 18:23:51,owner-occupied,12.0,2.0,200003684595.0,Address Matched +210506901412009011017185103910650,"12, Chamberlain Avenue",,,ME16 8NR,6013136568,D,D,58,67,House,Semi-Detached,2009-01-10,E07000110,E14000804,Kent,2009-01-10,marketed sale,57,66,287,230.0,4.4,47,3.5,88.0,44.0,639.0,525.0,116.0,116.0,75.6,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,4.0,0.0,0.0,From main system,Very Good,Very Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,Portable electric heaters,,,"Pitched, 75mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.5,0.0,N,natural,"12, Chamberlain Avenue",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2009-01-10 17:18:51,owner-occupied,,,200003655988.0,Address Matched +299388280102009060813320363210458,"33, Bridgeside Mews",,,ME15 6TB,9168882668,B,B,84,86,Flat,Detached,2009-06-05,E07000110,E14000804,Kent,2009-06-08,new dwelling,84,85,133,124.0,1.2,22,1.1,54.0,31.0,179.0,181.0,70.0,70.0,54.88,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,,From main system,Very Good,Very Good,Average thermal transmittance 0.21 W/m??K,Good,Good,Fully double glazed,Good,Good,Average thermal transmittance 0.24 W/m??K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Very Good,Very Good,Time and temperature zone control,Good,Good,Low energy lighting in 25% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,,,NO DATA!,"33, Bridgeside Mews",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2009-06-08 13:32:03,,,,10014308043.0,Address Matched +1410451751452016020511161893060748,Pentire,The Street,Frinsted,ME9 0TF,7819132478,E,B,44,81,Bungalow,Detached,2016-02-04,E07000110,E14000700,Kent,2016-02-05,marketed sale,38,74,270,72.0,6.5,70,2.2,121.0,60.0,731.0,439.0,314.0,89.0,93.0,Single,N,NODATA!,,,2104.0,,not defined,Much More Than Typical,0.0,4.0,4.0,0.0,0.0,"From main system, no cylinder thermostat, plus solar",Poor,Poor,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, oil",Poor,Average,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,oil (not community),0.0,NO DATA!,,,,Y,natural,"Pentire, The Street, Frinsted",Maidstone,Faversham and Mid Kent,SITTINGBOURNE,England and Wales: 1967-1975,2016-02-05 11:16:18,owner-occupied,,,200003731887.0,Address Matched +800732339962017041915030399718133,Flat 9 Valence House,Sutton Road,,ME15 9AW,3966329968,D,C,64,75,Flat,Mid-Terrace,2017-04-19,E07000110,E14000700,Kent,2017-04-19,rental (private),45,61,398,274.0,4.6,67,3.2,56.0,56.0,597.0,334.0,159.0,159.0,69.0,dual,N,1st,N,,2401.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,100.0,0.0,"Electric immersion, off-peak",Average,Poor,(other premises below),NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, partial insulation (assumed)",Average,Average,"Room heaters, electric",,,"Pitched, 100 mm loft insulation",Average,Average,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,no corridor,,,,N,natural,"Flat 9 Valence House, Sutton Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1976-1982,2017-04-19 15:03:03,rental (private),,,200003713866.0,Address Matched +179550610062008110315233843098108,Old Library,Lower Road,Sutton Valence,ME17 3BN,456173568,C,C,69,75,Flat,Enclosed Mid-Terrace,2008-11-01,E07000110,E14000700,Kent,2008-11-03,rental (private),64,71,441,359.0,1.9,74,1.6,16.0,12.0,282.0,247.0,56.0,46.0,25.91,Single,Y,Ground,N,2.0,2107.0,100.0,double glazing installed during or after 2002,Normal,1.0,2.0,2.0,60.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Poor,Poor,Low energy lighting in 60% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.11,0.0,N,natural,"Old Library, Lower Road, Sutton Valence",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2008-11-03 15:23:38,rental (private),,,200003732693.0,Address Matched +268365416412009041900581707910063,Flat 5 Canterbury House,Cambridge Crescent,,ME15 7NZ,306670668,C,C,70,78,Flat,Semi-Detached,2009-04-18,E07000110,E14000700,Kent,2009-04-19,rental (social),67,75,332,249.0,2.0,55,1.5,35.0,18.0,307.0,260.0,78.0,59.0,37.0,Single,Y,Ground,N,2.0,2107.0,100.0,"double glazing, unknown install date",Normal,0.0,1.0,1.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Poor,Poor,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.37,0.0,N,natural,"Flat 5 Canterbury House, Cambridge Crescent",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2009-04-19 00:58:17,rental (social),,,200003713120.0,Address Matched +274369434132009042817102046268700,65 Farleigh Court,Farleigh Lane,,ME16 9BH,3056711668,C,C,76,78,Flat,End-Terrace,2009-04-28,E07000110,E14000804,Kent,2009-04-28,marketed sale,74,74,204,196.0,2.1,34,2.0,55.0,31.0,299.0,303.0,83.0,83.0,62.56,Single,Y,Ground,N,2.0,2106.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,20.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 20% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.32,0.0,N,natural,"65 Farleigh Court, Farleigh Lane",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2009-04-28 17:10:20,owner-occupied,,,200003683292.0,Address Matched +846404140232012101623515234978796,7 Christchurch House,Wallis Avenue,,ME15 9JT,4654742078,C,C,75,77,Flat,Detached,2012-10-16,E07000110,E14000700,Kent,2012-10-16,rental (social),77,80,147,129.0,1.7,28,1.5,37.0,37.0,320.0,284.0,79.0,80.0,62.0,Single,Y,3rd,Y,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"System built, with external insulation",Good,Good,,,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,5.0,,0.0,,natural,"7 Christchurch House, Wallis Avenue",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2012-10-16 23:51:52,rental (social),6.0,6.0,200003683141.0,Address Matched +677512498652011091317395690990998,1 Bell Cottages,Maidstone Road,Paddock Wood,TN12 6QF,9846800968,E,E,48,54,House,Semi-Detached,2011-09-13,E07000110,E14000804,Kent,2011-09-13,marketed sale,44,49,345,303.0,5.9,67,5.2,73.0,46.0,974.0,884.0,99.0,87.0,70.097,Single,Y,NODATA!,,,2106.0,22.0,double glazing installed during or after 2002,Normal,1.0,4.0,4.0,42.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Some double glazing,Poor,Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 42% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,2.13,0.0,,natural,"1 Bell Cottages, Maidstone Road, Paddock Wood",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: before 1900,2011-09-13 17:39:56,owner-occupied,12.0,5.0,200003655073.0,Address Matched +350344280962009082611502696628271,14 Crown Wood Court,Wallis Avenue,,ME15 9DX,7926846668,B,B,91,91,Flat,Enclosed End-Terrace,2009-05-12,E07000110,E14000700,Kent,2009-08-26,new dwelling,90,90,88,88.0,0.6,14,0.6,24.0,24.0,129.0,129.0,56.0,56.0,46.3,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,,,From main system,Very Good,Very Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.19 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.15 W/m?K,Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.3,,,NO DATA!,"14 Crown Wood Court, Wallis Avenue",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2009-08-26 11:50:26,,,,10014307317.0,Address Matched +1153409218712014060815265391040123,"33, Woodcut",Penenden Heath,,ME14 2EN,1341814278,C,B,73,86,House,End-Terrace,2014-06-07,E07000110,E14000804,Kent,2014-06-08,rental (social),74,87,153,62.0,2.3,29,1.0,82.0,51.0,382.0,388.0,124.0,83.0,78.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,40.0,0.0,From main system,Good,Good,"Solid, limited insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 40% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"33, Woodcut, Penenden Heath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2014-06-08 15:26:53,rental (social),10.0,4.0,200003707352.0,Address Matched +814167369962014121721241580538454,The Barn Cronks Farm,Hampstead Lane,Nettlestead,ME18 5HN,5808610078,D,B,68,86,House,Detached,2014-12-17,E07000110,E14000804,Kent,2014-12-17,RHI application,55,77,194,92.0,15.0,34,7.4,191.0,191.0,2988.0,1984.0,241.0,100.0,446.0,dual,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,3.0,10.0,10.0,76.0,1.0,"From main system, plus solar",Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 76% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,Y,natural,"The Barn Cronks Farm, Hampstead Lane, Nettlestead",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2014-12-17 21:24:15,owner-occupied,,,200003656693.0,Address Matched +8247748912016041508235093960448,"82, Clifford Way",,,ME16 8GE,4824837468,C,C,80,80,Flat,Mid-Terrace,2016-04-12,E07000110,E14000804,Kent,2016-04-15,marketed sale,84,84,123,119.0,1.2,22,1.1,52.0,42.0,174.0,176.0,124.0,124.0,54.0,Single,Y,2nd,N,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,75.0,0.0,From main system,Good,Good,(another dwelling below),NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,heated corridor,,2.33,,N,natural,"82, Clifford Way",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2016-04-15 08:23:50,owner-occupied,,,10022896095.0,Address Matched +1812733812242020080509311877100258,"46, Lancet Lane",,,ME15 9SD,9208411778,B,A,85,93,House,Detached,2020-08-05,E07000110,E14000804,Kent,2020-08-05,non marketed sale,85,92,77,32.0,2.2,14,1.0,99.0,99.0,349.0,351.0,105.0,59.0,164.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.23 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"46, Lancet Lane",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2020-08-05 09:31:18,unknown,4.0,4.0,10093305413.0,Address Matched +a93125993896c0b9e91b11316bcdba14e2739a613332a1348a943fb25ddb95fa,10 Dickens Close,Langley,,ME17 1TB,10001327314,D,B,62,82,Bungalow,Detached,2021-08-09,E07000110,E14000700,Kent,2021-08-10,marketed sale,55,78,263,116.0,4.9,46,2.2,113.0,81.0,776.0,549.0,122.0,79.0,105.0,Unknown,Y,,,,,100.0,double glazing installed during or after 2002,Normal,1.0,4.0,4.0,60.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 60% of fixed outlets,Good,Good,mains gas (not community),0.0,,,2.41,0.0,N,natural,"10 Dickens Close, Langley",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2021-08-10 08:38:26,Owner-occupied,15.0,,200003697371.0,Energy Assessor +1152027309962014061013591914208514,"8, Pope Street",,,ME16 8LQ,1162014278,D,B,58,89,House,End-Terrace,2014-06-10,E07000110,E14000804,Kent,2014-06-10,marketed sale,55,91,275,38.0,3.5,53,0.5,70.0,42.0,627.0,322.0,127.0,70.0,66.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,33.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 33% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"8, Pope Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2014-06-10 13:59:19,owner-occupied,6.0,2.0,200003655840.0,Address Matched +114334919962014121214324898328634,"10, Staffa Road",,,ME15 9ST,3927138468,C,B,75,84,House,Semi-Detached,2014-12-12,E07000110,E14000804,Kent,2014-12-12,marketed sale,72,81,158,96.0,3.3,28,2.1,72.0,72.0,556.0,562.0,140.0,83.0,120.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,5.0,5.0,92.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 92% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"10, Staffa Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2014-12-12 14:32:48,owner-occupied,,,200003678485.0,Address Matched +1316377269042015043018435532557308,"45, Reculver Walk",,,ME15 8QP,38965378,F,C,35,76,House,End-Terrace,2015-04-30,E07000110,E14000700,Kent,2015-04-30,none of the above,27,68,459,156.0,13.0,81,4.4,154.0,80.0,2109.0,1035.0,394.0,78.0,159.0,Single,Y,NODATA!,,,2102.0,100.0,double glazing installed before 2002,Normal,0.0,6.0,6.0,7.0,1.0,"From main system, no cylinder thermostat",Poor,Poor,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,Low energy lighting in 7% of fixed outlets,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"45, Reculver Walk",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2015-04-30 18:43:55,owner-occupied,,,200003725745.0,Address Matched +1491241949922016111612075328868276,"6, Romney Road",Allington,,ME16 0XU,7276408478,B,A,86,95,House,NO DATA!,2016-11-16,E07000110,E14000804,Kent,2016-11-16,new dwelling,87,96,69,12.0,1.6,12,0.3,75.0,75.0,250.0,251.0,113.0,60.0,130.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.12 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.20 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"6, Romney Road, Allington",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2016-11-16 12:07:53,unknown,10.0,10.0,10092970757.0,Address Matched +1209092961432014092209041763978700,"34, Maxwell Drive",,,ME16 0QJ,6063708278,D,C,61,76,Bungalow,Semi-Detached,2014-09-19,E07000110,E14000804,Kent,2014-09-22,non marketed sale,58,73,238,135.0,3.7,46,2.2,70.0,56.0,731.0,661.0,97.0,71.0,81.0,dual,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,75.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"34, Maxwell Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2014-09-22 09:04:17,owner-occupied,8.0,6.0,200003704365.0,Address Matched +1332598751452015061517283498950235,"1, Brooks Close",Staplehurst,,TN12 0PP,2599186378,E,B,52,87,House,Semi-Detached,2015-06-15,E07000110,E14000804,Kent,2015-06-15,marketed sale,45,86,358,69.0,4.9,63,1.0,73.0,50.0,821.0,393.0,189.0,72.0,77.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,55.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Roof room(s), insulated",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 55% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"1, Brooks Close, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1967-1975,2015-06-15 17:28:34,owner-occupied,,,200003678373.0,Address Matched +265832560922009041417252260348741,"291, Boxley Road",Penenden Heath,,ME14 2HB,4626650668,D,C,56,73,House,Detached,2009-04-14,E07000110,E14000804,Kent,2009-04-14,marketed sale,50,69,324,195.0,5.8,54,3.5,89.0,51.0,763.0,465.0,135.0,118.0,122.4,Single,Y,NO DATA!,,,2106.0,90.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,27.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Partial double glazing,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 27% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.51,0.0,N,natural,"291, Boxley Road, Penenden Heath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2009-04-14 17:25:22,owner-occupied,,,200003706697.0,Address Matched +1729409999922019061708503325338801,"131, Edmett Way",,,ME17 3FA,225905678,B,A,85,94,House,Semi-Detached,2019-06-17,E07000110,E14000700,Kent,2019-06-17,new dwelling,86,95,77,19.0,1.6,14,0.4,83.0,83.0,261.0,261.0,78.0,47.0,118.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.23 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.19 W/m-¦K,Good,Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"131, Edmett Way",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2019-06-17 08:50:33,unknown,7.0,7.0,10093307065.0,Address Matched +1732426596132019062711071151278003,"9, Bergamot Road",Allington,,ME16 9FX,9381035678,B,A,83,96,House,End-Terrace,2019-06-27,E07000110,E14000804,Kent,2019-06-27,new dwelling,86,98,90,-5.0,1.2,16,0.0,62.0,62.0,195.0,196.0,75.0,42.0,74.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,"From main system, waste water heat recovery",Very Good,Very Good,Average thermal transmittance 0.18 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.16 W/m-¦K,Good,Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"9, Bergamot Road, Allington",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2019-06-27 11:07:11,unknown,16.0,16.0,10093306689.0,Address Matched +847625259702012101909173008229438,"7, Knaves Acre",Headcorn,,TN27 9TJ,1783452078,D,B,60,89,House,Semi-Detached,2012-10-17,E07000110,E14000700,Kent,2012-10-19,marketed sale,45,73,366,161.0,4.4,65,1.9,64.0,43.0,424.0,316.0,267.0,74.0,69.0,dual,N,NODATA!,,,2401.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,50.0,0.0,"Electric immersion, off-peak",Very Poor,Very Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,Portable electric heaters (assumed),,,"Pitched, 250 mm loft insulation",Good,Good,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 50% of fixed outlets,Good,Good,electricity (not community),0.0,NO DATA!,,,0.0,,natural,"7, Knaves Acre, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,England and Wales: 1976-1982,2012-10-19 09:17:30,unknown,8.0,4.0,200003699371.0,Address Matched +1583184489962017101818394464988463,"14, Colyn Drive",,,ME15 8FZ,6671854578,B,A,84,93,House,End-Terrace,2017-10-18,E07000110,E14000700,Kent,2017-10-18,new dwelling,85,94,88,23.0,1.7,15,0.5,72.0,72.0,282.0,284.0,103.0,55.0,114.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.12 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"14, Colyn Drive",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2017-10-18 18:39:44,unknown,1.0,1.0,10091193614.0,Address Matched +1039509919302013110900590315670238,"31, Gloucester Road",,,ME15 7HS,322816178,C,B,71,86,House,Semi-Detached,2013-11-07,E07000110,E14000700,Kent,2013-11-09,rental (social),71,86,162,64.0,2.6,31,1.1,87.0,49.0,431.0,401.0,113.0,75.0,84.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,22.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"System built, with external insulation",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 22% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"31, Gloucester Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2013-11-09 00:59:03,rental (social),9.0,2.0,200003711802.0,Address Matched +1579248099022017100218041844228183,"5, Sycamore Road",,,ME15 8GQ,8482924578,B,B,83,83,Maisonette,Detached,2017-10-02,E07000110,E14000700,Kent,2017-10-02,new dwelling,84,84,102,102.0,1.3,18,1.3,54.0,54.0,258.0,258.0,78.0,78.0,71.0,standard tariff,,ground floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"5, Sycamore Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2017-10-02 18:04:18,unknown,1.0,1.0,10091193581.0,Address Matched +1782709172062020021315494308168200,Flat 18 Hardwick House,Northumberland Road,,ME15 7TH,36798678,C,B,71,89,Bungalow,Mid-Terrace,2020-02-06,E07000110,E14000700,Kent,2020-02-13,none of the above,72,90,225,57.0,1.8,40,0.5,44.0,44.0,335.0,305.0,76.0,52.0,45.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,2.0,2.0,86.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 350 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 86% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"Flat 18 Hardwick House, Northumberland Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2020-02-13 15:49:43,rental (social),,,200003684324.0,Address Matched +1309343074532015041315524860978802,"10, Worsfold Court",Enterprise Road,,ME15 6HW,7270815378,D,C,64,73,Flat,Enclosed Mid-Terrace,2015-04-13,E07000110,E14000804,Kent,2015-04-13,marketed sale,47,57,381,305.0,4.4,64,3.5,111.0,55.0,496.0,360.0,154.0,154.0,68.0,dual,N,2nd,Y,,2401.0,100.0,double glazing installed before 2002,Normal,1.0,3.0,3.0,0.0,0.0,"Electric immersion, off-peak",Average,Poor,(another dwelling below),NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,"Pitched, 150 mm loft insulation",Good,Good,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,No low energy lighting,Very Poor,Very Poor,electricity (not community),0.0,unheated corridor,6.44,,,N,natural,"10, Worsfold Court, Enterprise Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2015-04-13 15:52:48,owner-occupied,,,200003683354.0,Address Matched +69227659922017051706250944028113,Mannamead,Pilgrims Way,Harrietsham,ME17 1BT,1445574468,E,C,54,76,Bungalow,Detached,2017-05-12,E07000110,E14000700,Kent,2017-05-17,marketed sale,35,53,407,254.0,11.0,64,7.3,106.0,106.0,1585.0,1107.0,325.0,107.0,179.0,dual,N,NODATA!,,,2401.0,100.0,"double glazing, unknown install date",Normal,1.0,9.0,9.0,88.0,0.0,"Electric immersion, off-peak",Very Poor,Poor,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, wood logs",,,"Pitched, 300 mm loft insulation",Very Good,Very Good,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 88% of fixed outlets,Very Good,Very Good,electricity (not community),0.0,NO DATA!,,,,N,natural,"Mannamead, Pilgrims Way, Harrietsham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2017-05-17 06:25:09,owner-occupied,,,200003705109.0,Address Matched +308104845912019103019084995719365,"47, Peel Street",,,ME14 2SB,3598553668,D,B,55,81,House,Mid-Terrace,2019-10-30,E07000110,E14000804,Kent,2019-10-30,rental (private),53,80,321,117.0,3.6,56,1.3,101.0,51.0,710.0,511.0,76.0,49.0,64.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,4.0,4.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, electric",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"47, Peel Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2019-10-30 19:08:49,rental (private),,,200003702388.0,Address Matched +1610869649222018022612064216868938,"7, Saxon Way",Tovil,,ME15 6AL,3116456578,B,A,83,96,House,Semi-Detached,2018-02-26,E07000110,E14000804,Kent,2018-02-26,new dwelling,86,98,94,2.0,1.3,16,0.1,57.0,57.0,201.0,202.0,102.0,56.0,79.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.10 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"7, Saxon Way, Tovil",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2018-02-26 12:06:42,owner-occupied,45.0,45.0,10093304961.0,Address Matched +1098672293912015010512383593050124,"57, Egremont Road",Bearsted,,ME15 8LX,1497330278,D,B,59,83,House,Mid-Terrace,2015-01-05,E07000110,E14000700,Kent,2015-01-05,none of the above,54,80,290,109.0,4.4,51,1.7,118.0,59.0,771.0,522.0,109.0,73.0,87.0,dual,Y,NODATA!,,,2103.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 25 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,Room thermostat only,Poor,Poor,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"57, Egremont Road, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2015-01-05 12:38:35,owner-occupied,,,200003686230.0,Address Matched +848535609222012102310415382478932,Flat 2 Burdock House,Northumberland Road,,ME15 7TX,3896062078,C,C,75,76,Flat,Semi-Detached,2012-10-23,E07000110,E14000700,Kent,2012-10-23,rental (social),79,81,166,150.0,1.2,32,1.1,27.0,27.0,259.0,237.0,62.0,62.0,39.0,Single,Y,Ground,N,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,2.0,2.0,100.0,0.0,From main system,Good,Good,"Solid, limited insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,8.5,,0.0,,natural,"Flat 2 Burdock House, Northumberland Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1996-2002,2012-10-23 10:41:53,rental (social),5.0,5.0,200003714118.0,Address Matched +252883700262009032719295599768021,"519, Loose Road",,,ME15 9UQ,2940089568,E,D,50,57,House,End-Terrace,2009-03-26,E07000110,E14000804,Kent,2009-03-27,rental (private),42,47,460,405.0,4.6,84,4.1,47.0,25.0,599.0,550.0,81.0,70.0,53.83,Single,Y,NO DATA!,,,2107.0,100.0,double glazing installed before 2002,Normal,1.0,3.0,3.0,15.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, coal",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Poor,Poor,Low energy lighting in 15% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.35,0.0,N,natural,"519, Loose Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2009-03-27 19:29:55,rental (private),,,200003680311.0,Address Matched +585839039402011012821233284392588,"7, Turgis Close",Langley,,ME17 3HD,431033868,D,C,59,77,House,End-Terrace,2011-01-28,E07000110,E14000700,Kent,2011-01-28,marketed sale,51,74,335,176.0,4.9,56,2.6,49.0,49.0,743.0,400.0,176.0,127.0,86.94,Unknown,Y,NO DATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,95.0,0.0,From main system,Average,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 100 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Average,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 95% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.35,0.0,N,natural,"7, Turgis Close, Langley",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2011-01-28 21:23:32,owner-occupied,,,200003697653.0,Address Matched +72850209702019061015573840519508,5 Kings Cottages,Upper Street,Leeds,ME17 1SG,6718705468,D,A,64,115,House,Mid-Terrace,2019-06-10,E07000110,E14000700,Kent,2019-06-10,rental (private),61,112,290,-123.0,2.8,51,-1.1,42.0,42.0,446.0,345.0,132.0,61.0,54.0,Unknown,Y,NODATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,1.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"5 Kings Cottages, Upper Street, Leeds",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1900-1929,2019-06-10 15:57:38,rental (private),,,200003697993.0,Address Matched +392077350062009110318134459178811,"26, Church Street",Tovil,,ME15 6RB,1527549668,C,C,72,79,House,Mid-Terrace,2009-11-03,E07000110,E14000804,Kent,2009-11-03,marketed sale,68,77,265,193.0,2.3,44,1.7,39.0,26.0,329.0,271.0,123.0,92.0,52.6,Single,Y,NO DATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,50.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,,0.0,N,natural,"26, Church Street, Tovil",Maidstone,Maidstone and The Weald,MAIDSTONE,,2009-11-03 18:13:44,owner-occupied,,,200003666041.0,Address Matched +1629356545832018050511545178078605,"1, Barham Mews",Teston,,ME18 5BL,4588687578,E,C,39,75,Flat,Enclosed End-Terrace,2018-05-05,E07000110,E14000804,Kent,2018-05-05,marketed sale,22,60,777,307.0,7.0,131,2.8,44.0,44.0,1011.0,293.0,162.0,140.0,53.0,dual,N,Ground,N,,2401.0,0.0,not defined,Normal,0.0,3.0,3.0,100.0,0.0,"Electric immersion, off-peak",Average,Poor,"Solid, no insulation (assumed)",NO DATA!,,Single glazed,Very Poor,Very Poor,"Solid brick, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,(another dwelling above),,,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,heated corridor,,,,N,natural,"1, Barham Mews, Teston",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2018-05-05 11:54:51,owner-occupied,,,10022892631.0,Address Matched +225258650222009012916572217618131,"16, Farrier Close",Weavering,,ME14 5SR,3195517568,D,C,59,76,House,End-Terrace,2009-01-29,E07000110,E14000700,Kent,2009-01-29,marketed sale,52,72,418,243.0,3.3,70,1.9,28.0,21.0,363.0,257.0,153.0,80.0,57.46,Single,Y,NO DATA!,,,2102.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,71.0,0.0,"From main system, no cylinderstat",Poor,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Average,Good,"Programmer, no room thermostat",Very Poor,Very Poor,Low energy lighting in 71% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.35,0.0,N,natural,"16, Farrier Close, Weavering",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2009-01-29 16:57:22,owner-occupied,,,200003689088.0,Address Matched +596986919022013040309212934188777,"6, Turgis Close",Langley,,ME17 3HD,7376124868,D,B,68,88,Bungalow,End-Terrace,2013-03-08,E07000110,E14000700,Kent,2013-04-03,rental (social),69,90,217,48.0,2.0,42,0.5,45.0,30.0,359.0,323.0,94.0,63.0,49.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,More Than Typical,0.0,2.0,2.0,50.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"6, Turgis Close, Langley",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2013-04-03 09:21:29,rental (social),6.0,3.0,200003697652.0,Address Matched +a99c0819a0a3c2e07840520e601ef8752e66e5627456c7b6bf1b9c424ec8627f,LITTLE SPRINGS,CHURCH STREET,LOOSE,ME15 0BT,3464560478,D,C,60,79,House,Semi-Detached,2021-07-16,E07000110,E14000804,Kent,2021-07-18,marketed sale,61,81,256,122.0,4.5,39,2.0,121.0,87.0,932.0,670.0,128.0,80.0,118.0,Single,Y,,,,,100.0,"double glazing, unknown install date",Normal,3.0,5.0,5.0,60.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Poor,Poor,"Room heaters, wood logs",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and at least two room thermostats,Good,Good,Low energy lighting in 60% of fixed outlets,Good,Good,mains gas (not community),0.0,,,2.4,0.0,N,natural,"LITTLE SPRINGS, CHURCH STREET, LOOSE",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2021-07-18 17:45:18,Owner-occupied,10.0,,200003663783.0,Energy Assessor +a98c4fde4e67c8e01c71f12f5b04dfc1043fca5a643232a46134049947d69c6d,Flat 8,Swift House,Springvale,ME16 0AF,7782808468,B,B,81,81,Flat,Semi-Detached,2021-08-20,E07000110,E14000804,Kent,2021-08-20,rental,72,72,249,249.0,1.5,42,1.5,39.0,39.0,146.0,146.0,153.0,153.0,37.0,dual,Y,02,N,,,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,100.0,0.0,"Electric immersion, off-peak",Average,Poor,(another dwelling below),,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,Portable electric heaters (assumed),,,(another dwelling above),,,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,no corridor,,2.3,0.0,N,natural,"Flat 8, Swift House, Springvale",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2021-08-20 12:39:38,Rented (private),6.0,,200003667143.0,Energy Assessor +1569288059602017082221160953332198,8 Aldon Court,Aldon Close,,ME14 5QS,4643953578,C,C,74,78,Flat,Mid-Terrace,2017-08-21,E07000110,E14000804,Kent,2017-08-22,marketed sale,60,65,325,285.0,2.6,55,2.2,48.0,48.0,258.0,210.0,152.0,133.0,46.0,dual,N,1st,Y,,2401.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,80.0,0.0,"Electric immersion, off-peak",Average,Poor,(another dwelling below),NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,"Pitched, insulated (assumed)",Average,Average,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,electricity (not community),0.0,no corridor,,,,N,natural,"8 Aldon Court, Aldon Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2017-08-22 21:16:09,rental (private),,,200003673093.0,Address Matched +946113859062013060607381589268287,"67, Finglesham Court",,,ME15 7JE,8861549078,D,B,63,83,House,Detached,2013-06-06,E07000110,E14000700,Kent,2013-06-06,marketed sale,61,83,223,82.0,3.4,43,1.3,72.0,46.0,571.0,433.0,106.0,71.0,80.0,Unknown,Y,NODATA!,,,2106.0,75.0,"double glazing, unknown install date",Normal,1.0,6.0,6.0,43.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Partial double glazing,Poor,Poor,"Cavity wall, as built, partial insulation (assumed)",Average,Average,,,,"Pitched, limited insulation (assumed)",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 43% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"67, Finglesham Court",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1976-1982,2013-06-06 07:38:15,owner-occupied,7.0,3.0,200003712077.0,Address Matched +623347739222011042909055446888989,"88, Bramley Crescent",Bearsted,,ME15 8JX,8447326868,D,C,66,70,Bungalow,Semi-Detached,2011-04-28,E07000110,E14000700,Kent,2011-04-29,marketed sale,63,68,206,181.0,4.0,39,3.5,100.0,50.0,617.0,575.0,92.0,92.0,62.3,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,6.0,6.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Flat, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,2.4,0.0,,natural,"88, Bramley Crescent, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2011-04-29 09:05:54,owner-occupied,11.0,0.0,200003688495.0,Address Matched +1200658328712020011616450224900724,2 Manor Farm Cottages,Battle Lane,Marden,TN12 9DG,7435847278,C,A,74,103,House,Semi-Detached,2020-01-16,E07000110,E14000804,Kent,2020-01-16,RHI application,73,100,156,-21.0,2.8,26,-0.4,81.0,81.0,499.0,501.0,211.0,145.0,105.0,dual,N,NODATA!,,,2207.0,100.0,double glazing installed during or after 2002,Normal,1.0,5.0,5.0,89.0,0.0,From main system,Good,Good,"Solid, insulated",NO DATA!,,Fully double glazed,Good,Good,"Solid brick, with internal insulation",Good,Good,,,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Air source heat pump, radiators, electric",Average,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in 89% of fixed outlets,Very Good,Very Good,electricity (not community),0.0,NO DATA!,,,,N,natural,"2 Manor Farm Cottages, Battle Lane, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: before 1900,2020-01-16 16:45:02,owner-occupied,,,200003674012.0,Address Matched +934945779102013052116181807872598,"40, Bathurst Road",Staplehurst,,TN12 0LQ,3125478078,C,B,74,91,House,End-Terrace,2013-05-21,E07000110,E14000804,Kent,2013-05-21,marketed sale,77,93,155,23.0,1.6,30,0.3,48.0,32.0,332.0,308.0,36.0,36.0,52.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,50.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"40, Bathurst Road, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1967-1975,2013-05-21 16:18:18,owner-occupied,10.0,5.0,200003677806.0,Address Matched +754124489942012022410121291522678,"20, Knowle Road",Penenden Heath,,ME14 2BB,8951585968,D,C,68,71,House,Semi-Detached,2012-02-23,E07000110,E14000804,Kent,2012-02-24,marketed sale,66,69,193,174.0,3.7,37,3.3,72.0,52.0,572.0,539.0,119.0,105.0,98.6,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,60.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 60% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,2.4,0.0,,natural,"20, Knowle Road, Penenden Heath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2012-02-24 10:12:12,owner-occupied,10.0,6.0,200003701942.0,Address Matched +608922639262011032515164825448069,Flat 1,"147a, London Road",,ME16 0HA,6252315868,C,C,78,78,Flat,Detached,2011-03-24,E07000110,E14000804,Kent,2011-03-25,marketed sale,75,75,215,212.0,1.7,36,1.7,37.0,26.0,319.0,321.0,78.0,78.0,48.8,Unknown,Y,Ground,N,3.0,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,60.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 60% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,unheated corridor,1.6,2.4,0.0,N,natural,"Flat 1, 147a, London Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2011-03-25 15:16:48,owner-occupied,,,200003659629.0,Address Matched +679764289222011092210543520828209,"89, Marion Crescent",,,ME15 7EH,209820968,E,D,51,57,House,Semi-Detached,2011-09-22,E07000110,E14000700,Kent,2011-09-22,marketed sale,49,55,281,241.0,6.5,53,5.6,93.0,61.0,1178.0,1051.0,104.0,92.0,87.73,dual,Y,NODATA!,,,2107.0,100.0,double glazing installed during or after 2002,More Than Typical,0.0,6.0,5.0,46.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, electric",,,"Pitched, limited insulation (assumed)",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 46% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,2.39,0.0,,natural,"89, Marion Crescent",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2011-09-22 10:54:35,owner-occupied,13.0,6.0,200003711084.0,Address Matched +1069095629922014011011360088208744,"6, Finch Court",,,ME14 2FD,4882228178,B,B,88,88,House,End-Terrace,2014-01-10,E07000110,E14000804,Kent,2014-01-10,rental (social) - this is for backwards compatibility only and should not be used,90,90,57,57.0,1.1,11,1.1,55.0,55.0,293.0,293.0,106.0,106.0,94.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.16 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.27 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"6, Finch Court",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2014-01-10 11:36:00,NO DATA!,0.0,0.0,10014314345.0,Address Matched +1792216123552020031208040826200862,"81, College Road",,,ME15 6TF,8287369678,D,C,56,76,House,Semi-Detached,2020-02-27,E07000110,E14000804,Kent,2020-03-12,marketed sale,49,70,331,179.0,4.8,58,2.6,70.0,70.0,845.0,661.0,103.0,76.0,82.0,Single,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,1.0,4.0,4.0,91.0,0.0,From main system,Very Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 91% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"81, College Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2020-03-12 08:04:08,owner-occupied,,,200003664952.0,Address Matched +588099002932011020416063224068209,"31, Camp Way",,,ME15 9BD,994253868,C,C,70,76,House,Mid-Terrace,2011-02-04,E07000110,E14000700,Kent,2011-02-04,marketed sale,67,73,238,193.0,3.0,40,2.4,81.0,47.0,496.0,419.0,99.0,99.0,75.78,dual,Y,NO DATA!,,,2107.0,100.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,28.0,1.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 28% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.44,0.0,N,natural,"31, Camp Way",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2011-02-04 16:06:32,owner-occupied,,,200003713734.0,Address Matched +399185472212009111711324209919162,Flat 11 Stockbury House,Marigold Way,,ME16 0ZE,1207299668,B,B,84,84,Flat,Semi-Detached,2009-11-17,E07000110,E14000804,Kent,2009-11-17,rental (private),82,82,115,115.0,1.9,19,1.9,55.0,55.0,284.0,284.0,96.0,96.0,100.17,Unknown,Y,2nd,Y,3.0,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,From main system,Very Good,Very Good,(other premises below),,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,heated corridor,,2.78,0.0,N,natural,"Flat 11 Stockbury House, Marigold Way",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2009-11-17 11:32:42,rental (private),,,10022901885.0,Address Matched +a9bccd76564a6991fdca93546bc370fdcf1c1d2bfe39cd85fa40f71cca3b1ad1,75 WRENS CROSS,UPPER STONE STREET,,ME15 6YU,10001657277,C,C,78,78,Flat,Mid-Terrace,2021-07-08,E07000110,E14000804,Kent,2021-07-08,new dwelling,80,80,136,136.0,1.6,24,1.6,59.0,59.0,266.0,266.0,81.0,81.0,66.0,standard tariff,,3,Y,,,100.0,,,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.20 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.26 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.12 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.73,,,,"75 WRENS CROSS, UPPER STONE STREET",Maidstone,Maidstone and The Weald,MAIDSTONE,2020,2021-07-08 16:53:13,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,15.0,,10094441009.0,Energy Assessor +1011768319202013092117204216479378,"3, Ellenswood Close",Downswood,,ME15 8SG,6275614178,D,C,64,74,Flat,Semi-Detached,2013-09-13,E07000110,E14000700,Kent,2013-09-21,rental,67,80,325,195.0,1.7,62,1.0,39.0,20.0,339.0,237.0,70.0,60.0,27.0,Unknown,Y,Ground,N,,2102.0,0.0,not defined,Normal,0.0,1.0,1.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Cavity wall, as built, partial insulation (assumed)",Average,Average,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,unheated corridor,4.5,,0.0,,natural,"3, Ellenswood Close, Downswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1976-1982,2013-09-21 17:20:42,owner-occupied,3.0,0.0,200003690983.0,Address Matched +1080078529432014012908495143278909,"4, Crowther Close",Staplehurst,,TN12 0NQ,2983998178,C,B,71,88,House,Semi-Detached,2014-01-28,E07000110,E14000804,Kent,2014-01-29,marketed sale,71,90,169,46.0,2.4,32,0.7,65.0,47.0,413.0,346.0,134.0,77.0,75.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,60.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 60% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"4, Crowther Close, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1976-1982,2014-01-29 08:49:51,owner-occupied,10.0,6.0,200003678315.0,Address Matched +1384659945532015111116153799078006,Flat 33 William Shipley House,Knightrider Court,Knightrider Street,ME15 6XD,4609050478,D,D,61,61,Flat,NO DATA!,2015-05-02,E07000110,E14000804,Kent,2015-11-11,new dwelling,65,65,274,274.0,2.3,46,2.3,36.0,36.0,414.0,414.0,221.0,221.0,50.0,standard tariff,,top floor,,,,,NO DATA!,NO DATA!,,,,,0.0,"Electric immersion, standard tariff",Very Poor,Poor,(other premises below),,,Fully double glazed,Average,Average,Average thermal transmittance 0.22 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.19 W/m-¦K,Good,Good,"Room heaters, electric",Very Poor,Poor,Programmer and room thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"Flat 33 William Shipley House, Knightrider Court, Knightrider Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2015-11-11 16:15:37,unknown,8.0,8.0,10091195521.0,Address Matched +83636199762010033111052665198820,"50, Park Way",Coxheath,,ME17 4HH,2600975468,D,C,55,72,Bungalow,Detached,2010-03-31,E07000110,E14000804,Kent,2010-03-31,marketed sale,49,67,391,244.0,4.3,65,2.7,68.0,34.0,561.0,420.0,203.0,106.0,66.19,Single,Y,NO DATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,0.0,0.0,"From main system, no cylinder thermostat",Poor,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Average,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.36,0.0,N,natural,"50, Park Way, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2010-03-31 11:05:26,owner-occupied,,,200003715264.0,Address Matched +939713629062013060422452749348967,"42, Bicknor Road",,,ME15 9NY,6452209078,D,B,64,83,House,End-Terrace,2013-06-04,E07000110,E14000700,Kent,2013-06-04,assessment for green deal,63,84,203,73.0,3.6,39,1.3,89.0,51.0,598.0,457.0,132.0,72.0,93.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,27.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 27% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"42, Bicknor Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2013-06-04 22:45:27,owner-occupied,11.0,3.0,200003679844.0,Address Matched +a9d52b6bfddc0dc5316d2ccbb346374c04f8ef85b8999a12b5fb8a2cd30fa125,21 HENGIST COURT,MARSHAM STREET,,ME14 1BT,10001418852,B,B,84,85,Flat,Mid-Terrace,2021-07-02,E07000110,E14000804,Kent,2021-07-02,marketed sale,77,78,196,191.0,1.4,33,1.4,65.0,43.0,85.0,89.0,157.0,157.0,42.0,dual,N,01,N,,,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,50.0,0.0,"Electric immersion, off-peak",Average,Poor,(another dwelling below),,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,Portable electric heaters (assumed),,,(another dwelling above),,,Electric storage heaters,Average,Very Poor,Automatic charge control,Average,Average,Low energy lighting in 50% of fixed outlets,Good,Good,electricity (not community),0.0,heated corridor,,2.33,0.0,N,natural,"21 HENGIST COURT, MARSHAM STREET",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2021-07-02 15:38:19,Owner-occupied,4.0,,200003688684.0,Energy Assessor +1134592084812014050307555098240127,"8, Tower Lane",Bearsted,,ME14 4JJ,1701482278,C,B,71,83,House,Detached,2014-04-28,E07000110,E14000700,Kent,2014-05-03,assessment for green deal,66,80,146,80.0,6.3,28,3.5,101.0,101.0,1164.0,813.0,122.0,123.0,225.0,dual,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,2.0,7.0,7.0,100.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 25 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"8, Tower Lane, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2014-05-03 07:55:50,owner-occupied,15.0,15.0,200003692265.0,Address Matched +349323142132009082110162600068403,2 Oriel Close,Hockers Lane,Detling,ME14 3BF,4370446668,C,B,79,81,House,Semi-Detached,2009-02-08,E07000110,E14000700,Kent,2009-08-21,new dwelling,79,80,132,125.0,2.4,22,2.3,98.0,60.0,333.0,340.0,117.0,117.0,110.4,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,,From main system,Very Good,Very Good,Average thermal transmittance 0.25 W/m?K,Good,Good,Fully double glazed,Good,Good,Average thermal transmittance 0.28 W/m?K,Very Good,Very Good,"Room heaters, electric",,,Average thermal transmittance 0.16 W/m?K,Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,Time and temperature zone control,Good,Good,Low energy lighting in 35% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,,,NO DATA!,"2 Oriel Close, Hockers Lane, Detling",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2009-08-21 10:16:26,,,,10014308863.0,Address Matched +492663268512010053112121994200374,"34, Reinden Grove",Downswood,,ME15 8TH,3494846768,D,C,67,71,House,Semi-Detached,2010-05-24,E07000110,E14000700,Kent,2010-05-31,marketed sale,66,70,257,225.0,2.9,42,2.5,62.0,35.0,455.0,431.0,120.0,104.0,68.6,Unknown,Y,NO DATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,25.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,"Pitched, insulated (assumed)",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 25% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.3,0.0,N,natural,"34, Reinden Grove, Downswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2010-05-31 12:12:19,owner-occupied,,,200003686362.0,Address Matched +1384854741312016042716071895260847,Flat 18,Miller House,43-51 Lower Stone Street,ME15 6GB,8740150478,D,D,58,58,Flat,NO DATA!,2016-04-27,E07000110,E14000804,Kent,2016-04-27,none of the above,42,42,480,480.0,4.4,81,4.4,43.0,43.0,651.0,651.0,154.0,154.0,55.0,off-peak 10 hour,,mid floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Poor,Poor,Average thermal transmittance 1.20 W/m-¦K,Very Poor,Very Poor,Fully double glazed,Good,Good,Average thermal transmittance 0.81 W/m-¦K,Average,Average,,,,(other premises above),,,"Boiler and radiators, electric",Poor,Very Poor,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"Flat 18, Miller House, 43-51 Lower Stone Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2016-04-27 16:07:18,unknown,4.0,4.0,10091196115.0,Address Matched +592682089402011021519022189399358,9 Bearsted Views,St. Faiths Lane,Bearsted,ME14 4FB,2446883868,B,B,81,81,House,End-Terrace,2011-02-15,E07000110,E14000700,Kent,2011-02-15,marketed sale,79,79,124,124.0,2.8,20,2.8,78.0,78.0,421.0,421.0,130.0,130.0,135.45,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,6.0,6.0,100.0,0.0,From main system,Very Good,Very Good,"Solid, insulated (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,0.0,N,natural,"9 Bearsted Views, St. Faiths Lane, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2007 onwards,2011-02-15 19:02:21,owner-occupied,,,10022896905.0,Address Matched +465612799062010040716445624438820,"71, Brewer Street",,,ME14 1RZ,2289954768,C,C,77,78,House,Mid-Terrace,2010-04-07,E07000110,E14000804,Kent,2010-04-07,marketed sale,74,75,185,180.0,2.4,31,2.3,59.0,39.0,363.0,366.0,93.0,93.0,76.81,Single,Y,NO DATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,4.0,4.0,50.0,1.0,From main system,Very Good,Very Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Flat, insulated",Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.35,0.0,N,natural,"71, Brewer Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2010-04-07 16:44:56,owner-occupied,,,200003697635.0,Address Matched +1589961809742017111513272258539958,"12, Oaken Wood Drive",,,ME16 9FE,7736405578,B,B,90,91,House,Mid-Terrace,2017-11-15,E07000110,E14000804,Kent,2017-11-15,new dwelling,92,95,41,24.0,0.6,7,0.3,56.0,56.0,160.0,161.0,97.0,52.0,79.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.18 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"12, Oaken Wood Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2017-11-15 13:27:22,unknown,20.0,20.0,10093303607.0,Address Matched +745304329742012013114234897527798,"42, Tovil Road",,,ME15 6QJ,7722225968,D,D,60,68,House,Mid-Terrace,2012-01-31,E07000110,E14000804,Kent,2012-01-31,rental (social),57,67,261,205.0,3.9,50,3.1,70.0,47.0,641.0,531.0,100.0,83.0,77.76,dual,Y,NODATA!,,,2107.0,95.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,50.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Mostly double glazing,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,2.7,0.0,,natural,"42, Tovil Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2012-01-31 14:23:48,rental (social),8.0,4.0,200003664466.0,Address Matched +999513229702013121808153710379978,"24, Brockenhurst Avenue",,,ME15 7ED,3722923178,D,B,61,82,House,Semi-Detached,2013-12-13,E07000110,E14000700,Kent,2013-12-18,none of the above,56,81,222,86.0,4.7,43,1.9,104.0,59.0,812.0,549.0,110.0,68.0,111.0,Single,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,1.0,6.0,6.0,25.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 100mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 25% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"24, Brockenhurst Avenue",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2013-12-18 08:15:37,owner-occupied,12.0,3.0,200003715517.0,Address Matched +192971000202008120123080658580098,"23, Farmers Close",Leeds,,ME17 1SB,8228905568,C,C,75,77,Maisonette,Semi-Detached,2008-12-01,E07000110,E14000700,Kent,2008-12-01,rental (social),72,73,243,233.0,1.9,40,1.9,45.0,23.0,257.0,261.0,64.0,64.0,47.57,Single,Y,Ground,N,2.0,2106.0,100.0,double glazing installed before 2002,Normal,0.0,2.0,2.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.43,0.0,N,natural,"23, Farmers Close, Leeds",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2008-12-01 23:08:06,rental (social),,,200003698370.0,Address Matched +596544206932011060122061011068005,"7, Disraeli Close",,,ME15 9LE,501024868,D,C,60,69,Bungalow,Semi-Detached,2011-06-01,E07000110,E14000700,Kent,2011-06-01,rental (social),58,69,294,218.0,3.1,57,2.3,40.0,30.0,427.0,376.0,173.0,99.0,54.05,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,67.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 67% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,2.36,0.0,,natural,"7, Disraeli Close",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2011-06-01 22:06:10,rental (social),6.0,4.0,200003682454.0,Address Matched +605559216112011031723073398990985,"21, Stockett Lane",Coxheath,,ME17 4PT,9583684868,E,C,51,71,Bungalow,Detached,2011-03-17,E07000110,E14000804,Kent,2011-03-17,marketed sale,46,66,360,214.0,6.3,60,3.8,116.0,58.0,883.0,592.0,247.0,135.0,116.66,Single,Y,NO DATA!,,,2107.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,0.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Average,Average,"Programmer, TRVs and bypass",Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.49,0.0,N,natural,"21, Stockett Lane, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2011-03-17 23:07:33,owner-occupied,,,200003714342.0,Address Matched +1448942256812016053117253890260641,"32, Silverdale",,,ME16 9JG,6153605478,D,B,59,81,House,Semi-Detached,2016-05-27,E07000110,E14000804,Kent,2016-05-31,marketed sale,53,77,282,117.0,4.1,50,1.7,76.0,54.0,661.0,537.0,206.0,75.0,82.0,Single,Y,NODATA!,,,2107.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,60.0,1.0,"From main system, no cylinder thermostat",Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 60% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,2.46,,N,natural,"32, Silverdale",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2016-05-31 17:25:38,owner-occupied,,,200003666384.0,Address Matched +430616809302010021211083575202688,Polehill Oast,Scragged Oak Road,Detling,ME14 3HL,9333902768,E,D,50,64,House,Detached,2010-01-28,E07000110,E14000700,Kent,2010-02-12,non marketed sale,41,54,267,193.0,12.0,58,8.4,109.0,109.0,1381.0,1009.0,358.0,220.0,224.26,Single,N,NO DATA!,,,2106.0,0.0,not defined,Normal,2.0,7.0,7.0,100.0,1.0,"From main system, no cylinder thermostat",Poor,Poor,"Solid, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, oil",Average,Average,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,oil - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,0.0,N,natural,"Polehill Oast, Scragged Oak Road, Detling",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1991-1995,2010-02-12 11:08:35,owner-occupied,,,200003695569.0,Address Matched +667559230952012100116123594220087,"7, Royton Avenue",Lenham,,ME17 2PS,783049868,D,C,67,77,Bungalow,Detached,2012-09-28,E07000110,E14000700,Kent,2012-10-01,marketed sale,63,73,175,119.0,4.8,34,3.3,114.0,65.0,808.0,764.0,66.0,65.0,142.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,2.0,7.0,7.0,25.0,0.0,"From main system, plus solar",Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 25% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"7, Royton Avenue, Lenham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2012-10-01 16:12:35,owner-occupied,16.0,4.0,200003711143.0,Address Matched +880739582732013020616152002078800,"46, Iden Crescent",Staplehurst,,TN12 0NU,8052884078,C,B,72,86,House,Semi-Detached,2013-02-06,E07000110,E14000804,Kent,2013-02-06,marketed sale,71,86,157,64.0,2.7,30,1.2,69.0,50.0,446.0,401.0,110.0,73.0,90.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,62.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 62% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"46, Iden Crescent, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1967-1975,2013-02-06 16:15:20,unknown,13.0,8.0,200003677119.0,Address Matched +1326316015112015052809064393250637,"5, Davies Close",Staplehurst,,TN12 0EH,6776536378,B,B,87,88,House,Semi-Detached,2015-05-28,E07000110,E14000804,Kent,2015-05-28,new dwelling,90,92,65,49.0,0.7,12,0.5,49.0,49.0,208.0,208.0,87.0,56.0,62.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"5, Davies Close, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,NO DATA!,2015-05-28 09:06:43,owner-occupied,14.0,14.0,10014315496.0,Address Matched +aa1d815009ee81a2737662a820aecd483603fb903f417ec74046ab00d1e4067a,FLAT 1,GLEESK HOUSE 50-52,GRECIAN STREET,ME14 2TS,10001679694,C,C,76,76,Flat,Mid-Terrace,2021-07-09,E07000110,E14000804,Kent,2021-07-09,marketed sale,78,78,160,160.0,1.6,28,1.6,49.0,49.0,281.0,281.0,79.0,79.0,56.0,Single,Y,00,N,,,100.0,"double glazing, unknown install date",Normal,1.0,3.0,3.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, partial insulation (assumed)",Average,Average,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,3.0,1.0,0.0,N,natural,"FLAT 1, GLEESK HOUSE 50-52, GRECIAN STREET",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2021-07-09 12:51:38,Owner-occupied,8.0,,10014309428.0,Energy Assessor +1562145609642017072416444852332248,"177, Ashford Road",Bearsted,,ME14 4NE,5658703578,C,B,69,82,House,Detached,2017-07-24,E07000110,E14000700,Kent,2017-07-24,marketed sale,63,78,181,99.0,5.6,32,3.1,157.0,90.0,905.0,742.0,165.0,86.0,177.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,1.0,7.0,7.0,25.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Roof room(s), insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 25% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"177, Ashford Road, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2017-07-24 16:44:48,owner-occupied,,,200003694847.0,Address Matched +280390229812010102917270297209060,Flat 3 Chandler Court,Upper Fant Road,,ME16 8DA,44971668,C,C,71,78,House,Enclosed End-Terrace,2010-10-29,E07000110,E14000804,Kent,2010-10-29,marketed sale,67,76,277,207.0,2.3,46,1.7,39.0,26.0,344.0,284.0,119.0,93.0,50.3,Unknown,Y,NO DATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,2.0,2.0,50.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.32,0.0,N,natural,"Flat 3 Chandler Court, Upper Fant Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2010-10-29 17:27:02,owner-occupied,,,200003727521.0,Address Matched +1385555027412015111318021995959540,"34, Heathfield Road",Penenden Heath,,ME14 2AD,5059750478,F,C,32,69,House,Detached,2015-11-13,E07000110,E14000804,Kent,2015-11-13,marketed sale,30,65,439,173.0,11.0,77,4.3,150.0,84.0,1929.0,1159.0,401.0,80.0,141.0,dual,Y,NODATA!,,,2106.0,90.0,double glazing installed before 2002,Normal,3.0,7.0,7.0,21.0,0.0,"From main system, no cylinder thermostat",Poor,Poor,"Solid, no insulation (assumed)",NO DATA!,,Mostly double glazing,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 21% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"34, Heathfield Road, Penenden Heath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2015-11-13 18:02:19,owner-occupied,,,200003707201.0,Address Matched +aa2a5d5f2afe3bc7e5a771361d4266b5f044a158c988d6f75775aed74792893f,57 RECULVER WALK,,,ME15 8QP,10001604163,C,B,70,84,House,Mid-Terrace,2021-07-14,E07000110,E14000700,Kent,2021-07-14,rental,67,81,188,98.0,3.9,33,2.1,160.0,86.0,579.0,524.0,129.0,79.0,117.0,Single,Y,,,,,100.0,"double glazing, unknown install date",Normal,2.0,5.0,5.0,14.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 14% of fixed outlets,Poor,Poor,mains gas (not community),0.0,,,2.37,0.0,N,natural,57 RECULVER WALK,Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2021-07-14 16:43:28,Rented (social),14.0,,200003725823.0,Energy Assessor +449053878452010030421243093000577,"The Annex, 1 Stone Cottages",Sutton Road,Langley,ME17 3NQ,5797833768,E,E,41,42,Bungalow,Detached,2010-03-04,E07000110,E14000700,Kent,2010-03-04,marketed sale,36,37,721,717.0,4.6,109,4.6,49.0,24.0,504.0,511.0,187.0,187.0,42.45,dual,N,NO DATA!,,,2401.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,0.0,0.0,"Electric immersion, off-peak",Very Poor,Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,"Pitched, insulated (assumed)",Good,Good,Electric storage heaters,Average,Poor,Manual charge control,Poor,Poor,No low energy lighting,Very Poor,Very Poor,electricity - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.29,0.0,N,natural,"The Annex, 1 Stone Cottages, Sutton Road, Langley",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1991-1995,2010-03-04 21:24:30,owner-occupied,,,200003690442.0,Address Matched +1090600979002014021406573318949378,"47, Morris Close",Boughton Monchelsea,,ME17 4UW,9006079178,C,B,74,90,House,End-Terrace,2014-02-13,E07000110,E14000700,Kent,2014-02-14,marketed sale,75,92,151,35.0,2.0,29,0.5,72.0,46.0,320.0,305.0,134.0,79.0,68.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,44.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 44% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"47, Morris Close, Boughton Monchelsea",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2003-2006,2014-02-14 06:57:33,owner-occupied,9.0,4.0,10022892762.0,Address Matched +1554739239262017062311582152678663,Flat 1,"34, Fullingpits Avenue",,ME16 9DZ,6586352578,B,B,85,85,Flat,Detached,2017-06-23,E07000110,E14000804,Kent,2017-06-23,new dwelling,89,89,77,77.0,0.9,13,0.9,51.0,51.0,152.0,152.0,75.0,75.0,64.0,standard tariff,,ground floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.18 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Flat 1, 34, Fullingpits Avenue",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2017-06-23 11:58:21,unknown,20.0,20.0,10093303631.0,Address Matched +1126013423832018070506203586078508,"35, Marion Crescent",,,ME15 7DZ,2836522278,D,B,68,81,House,Semi-Detached,2018-07-04,E07000110,E14000700,Kent,2018-07-05,marketed sale,64,78,217,124.0,3.5,38,2.0,74.0,74.0,554.0,526.0,133.0,79.0,90.0,Unknown,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,82.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, 270 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 82% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"35, Marion Crescent",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2018-07-05 06:20:35,owner-occupied,,,200003685040.0,Address Matched +323222348512009070817390405010968,"20, Rosemary Road",Bearsted,,ME15 8NP,9869854668,G,G,6,17,House,Semi-Detached,2009-07-08,E07000110,E14000700,Kent,2009-07-08,marketed sale,26,36,681,540.0,8.4,105,6.7,75.0,75.0,1934.0,1514.0,100.0,100.0,80.0,Single,Y,NO DATA!,,,2601.0,30.0,"double glazing, unknown install date",Normal,0.0,4.0,1.0,12.0,0.0,Gas multipoint,Average,Good,"Solid, no insulation (assumed)",,,Partial double glazing,Poor,Poor,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,Portable electric heating assumed for most rooms,Very Poor,Poor,No thermostatic control of room temperature,Poor,Poor,Low energy lighting in 12% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,0.0,N,natural,"20, Rosemary Road, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2009-07-08 17:39:04,owner-occupied,,,200003693041.0,Address Matched +1697945542132019021411245827978009,"16, Little Knoxes Close",,,ME16 9FD,4947082678,B,A,85,93,House,Detached,2019-02-14,E07000110,E14000804,Kent,2019-02-14,new dwelling,85,94,78,22.0,1.7,14,0.5,78.0,78.0,285.0,285.0,83.0,50.0,124.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.17 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"16, Little Knoxes Close",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2019-02-14 11:24:58,unknown,15.0,15.0,10093303531.0,Address Matched +152082140832008100218543427068297,Flat 19 Teston House,Tonbridge Road,Teston,ME18 5BU,4727241568,C,C,73,79,Flat,Semi-Detached,2008-10-02,E07000110,E14000804,Kent,2008-10-02,rental (private),70,70,339,342.0,1.8,51,1.8,17.0,17.0,126.0,133.0,144.0,87.0,35.05,dual,N,1st,N,2.0,2402.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,100.0,0.0,"Electric immersion, off-peak",Very Poor,Poor,(other premises below),,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,Electric storage heaters,Poor,Very Poor,Automatic charge control,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity - this is for backwards compatibility only and should not be used,0.0,unheated corridor,7.82,2.37,0.0,N,natural,"Flat 19 Teston House, Tonbridge Road, Teston",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2008-10-02 18:54:34,rental (private),,,200003661916.0,Address Matched +aa475f4dba1e46a37269ba223048cbba63022feb391061808cddb47af0e965f8,10 Tomlin Close,Staplehurst,,TN12 0PH,10001339815,D,B,68,83,House,Mid-Terrace,2021-08-23,E07000110,E14000804,Kent,2021-08-23,marketed sale,65,80,204,100.0,3.1,36,1.5,93.0,93.0,489.0,441.0,118.0,77.0,85.0,dual,Y,,,,,100.0,double glazing installed during or after 2002,Normal,1.0,5.0,5.0,80.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, partial insulation (assumed)",Average,Average,"Room heaters, mains gas",,,"Pitched, limited insulation (assumed)",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.36,0.0,N,natural,"10 Tomlin Close, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1976-1982,2021-08-23 18:19:40,Owner-occupied,15.0,,200003678356.0,Energy Assessor +330829304212009072213022801210164,"6, Iris Close",,,ME5 9QD,1405415668,C,C,69,71,House,Semi-Detached,2009-07-20,E07000110,E14000700,Kent,2009-07-22,marketed sale,69,70,237,228.0,2.6,39,2.5,66.0,33.0,393.0,399.0,114.0,114.0,66.6,Single,Y,NO DATA!,,,2106.0,,INVALID!,Much More Than Typical,1.0,4.0,4.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, 100mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,8.92,0.0,N,natural,"6, Iris Close",Maidstone,Faversham and Mid Kent,CHATHAM,England and Wales: 1983-1990,2009-07-22 13:02:28,owner-occupied,,,200003708193.0,Address Matched +1663317019922018091415465630648318,"3, Perrymede Road",Allington,,ME16 9FT,1386130678,B,B,86,87,House,Detached,2018-09-14,E07000110,E14000804,Kent,2018-09-14,new dwelling,87,90,73,57.0,1.1,13,0.9,61.0,61.0,221.0,222.0,92.0,50.0,87.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.20 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.16 W/m-¦K,Good,Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"3, Perrymede Road, Allington",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2018-09-14 15:46:56,unknown,34.0,34.0,10093306535.0,Address Matched +aa72516069693342d5e16dfd424ec4e696ba17553ab35069910bc1100380c10a,54 Holland Road,,,ME14 1UT,10001533536,C,B,70,87,House,Mid-Terrace,2021-08-17,E07000110,E14000804,Kent,2021-08-17,marketed sale,67,86,197,66.0,3.1,35,1.1,96.0,72.0,472.0,361.0,126.0,77.0,89.0,Single,Y,,,,,100.0,double glazing installed during or after 2002,Normal,1.0,4.0,4.0,67.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 67% of fixed outlets,Good,Good,mains gas (not community),0.0,,,2.41,0.0,N,natural,54 Holland Road,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2021-08-17 18:17:05,Owner-occupied,12.0,,200003699054.0,Energy Assessor +145259499432014111218265786968096,11 The Manor,Hayle Place,Cripple Street,ME15 6DW,9606060568,F,E,33,42,Flat,Semi-Detached,2014-11-12,E07000110,E14000804,Kent,2014-11-12,marketed sale,40,49,457,380.0,5.5,73,4.4,83.0,53.0,1325.0,1163.0,111.0,68.0,75.0,Unknown,Y,3rd,Y,,2107.0,95.0,"double glazing, unknown install date",Less Than Typical,0.0,3.0,3.0,44.0,1.0,From main system,Good,Good,(other premises below),,,Mostly double glazing,Average,Average,"Timber frame, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 44% of fixed outlets,Average,Average,mains gas (not community),0.0,unheated corridor,10.52,,0.0,,natural,"11 The Manor, Hayle Place, Cripple Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2014-11-12 18:26:57,owner-occupied,9.0,4.0,200003664197.0,Address Matched +1815638228032020080522110588078708,"6, Mountsfield Close",,,ME16 0EZ,2818731778,C,B,72,85,House,Detached,2020-08-05,E07000110,E14000804,Kent,2020-08-05,marketed sale,69,82,167,84.0,3.6,29,1.8,165.0,97.0,553.0,504.0,137.0,85.0,122.0,dual,Y,NODATA!,,,2106.0,90.0,double glazing installed during or after 2002,Normal,0.0,6.0,6.0,29.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Mostly double glazing,Good,Good,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 29% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"6, Mountsfield Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1976-1982,2020-08-05 22:11:05,owner-occupied,,,200003659083.0,Address Matched +1258522209532015012614505277978901,"33, Chartwell Drive",,,ME16 0WR,197951378,C,B,69,86,House,Mid-Terrace,2015-01-19,E07000110,E14000804,Kent,2015-01-26,ECO assessment,66,85,184,66.0,3.6,32,1.3,69.0,69.0,647.0,472.0,165.0,77.0,113.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,"Pitched, 270 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"33, Chartwell Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2015-01-26 14:50:52,owner-occupied,,,10022900243.0,Address Matched +1501895692632016120509565993078997,Flat 6/A Elizabeth House,Alexandra Street,,ME14 2BU,9713978478,E,C,50,70,Maisonette,End-Terrace,2016-12-05,E07000110,E14000804,Kent,2016-12-05,marketed sale,28,48,796,502.0,5.0,135,3.2,62.0,31.0,465.0,163.0,284.0,284.0,37.0,dual,N,Ground,N,,2401.0,100.0,"double glazing, unknown install date",Normal,0.0,1.0,1.0,0.0,0.0,No system present: electric immersion assumed,Average,Poor,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,Portable electric heaters (assumed),,,(another dwelling above),,,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,No low energy lighting,Very Poor,Very Poor,electricity (not community),0.0,no corridor,0.0,,,N,natural,"Flat 6/A Elizabeth House, Alexandra Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2016-12-05 09:56:59,owner-occupied,,,200003704572.0,Address Matched +1750734671132019091220590738978404,"10, Biddenden Close",Bearsted,,ME15 8JP,7498466678,D,C,57,76,House,Semi-Detached,2019-09-12,E07000110,E14000700,Kent,2019-09-12,marketed sale,53,73,266,140.0,5.8,47,3.1,181.0,91.0,1060.0,867.0,163.0,76.0,124.0,dual,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,3.0,7.0,6.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,"Pitched, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"10, Biddenden Close, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2019-09-12 20:59:07,owner-occupied,,,200003688411.0,Address Matched +1655945189962018081609304019058008,"8, Atwater Court",Lenham,,ME17 2PW,131879578,D,C,67,77,Flat,Enclosed End-Terrace,2018-08-15,E07000110,E14000700,Kent,2018-08-16,marketed sale,49,64,352,246.0,4.4,60,3.1,89.0,67.0,584.0,360.0,177.0,148.0,74.0,dual,N,Ground,N,,2401.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,67.0,0.0,"Electric immersion, off-peak",Average,Poor,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,(another dwelling above),,,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 67% of fixed outlets,Good,Good,electricity (not community),0.0,heated corridor,,,,N,natural,"8, Atwater Court, Lenham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2018-08-16 09:30:40,owner-occupied,,,200003711167.0,Address Matched +672875569062011090108191659698419,"8, Downs Close",Headcorn,,TN27 9UG,1570679868,D,C,64,70,House,Detached,2011-09-01,E07000110,E14000700,Kent,2011-09-01,marketed sale,61,68,229,185.0,3.9,44,3.1,67.0,48.0,602.0,508.0,129.0,112.0,87.62,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,58.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 58% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,2.31,0.0,,natural,"8, Downs Close, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,England and Wales: 1991-1995,2011-09-01 08:19:16,owner-occupied,12.0,7.0,200003701015.0,Address Matched +292326569922014031313501502128744,"2, Hadley Gardens",Hollingbourne,,ME17 1UF,4009642668,C,B,72,83,House,Semi-Detached,2014-03-12,E07000110,E14000700,Kent,2014-03-13,none of the above,68,82,161,83.0,2.9,32,1.5,55.0,55.0,721.0,483.0,105.0,74.0,92.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,30.0,,natural,"2, Hadley Gardens, Hollingbourne",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2014-03-13 13:50:15,owner-occupied,25.0,25.0,200003701648.0,Address Matched +1705349039402019031513041761319558,"281, Queens Road",,,ME16 0JN,1410533678,D,B,64,84,Bungalow,Detached,2019-03-15,E07000110,E14000804,Kent,2019-03-15,marketed sale,59,82,259,99.0,3.4,46,1.4,56.0,56.0,594.0,428.0,100.0,72.0,75.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,100.0,0.0,From main system,Very Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"281, Queens Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2019-03-15 13:04:17,owner-occupied,,,200003656825.0,Address Matched +1181451469222014072923210806888364,"46, Lyngs Close",Yalding,,ME18 6JS,6074616278,C,C,72,75,Flat,Semi-Detached,2014-07-28,E07000110,E14000804,Kent,2014-07-29,rental (social),74,78,171,142.0,1.9,33,1.6,45.0,45.0,378.0,313.0,91.0,92.0,57.0,Single,Y,Ground,N,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,83.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 83% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,no corridor,,,0.0,,natural,"46, Lyngs Close, Yalding",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2014-07-29 23:21:08,rental (social),6.0,5.0,200003660390.0,Address Matched +55948189442019022817433241312188,"3, Apple Tree Close",Barming,,ME16 9HQ,9437383468,D,B,56,86,Bungalow,Semi-Detached,2019-02-28,E07000110,E14000804,Kent,2019-02-28,marketed sale,37,68,479,204.0,5.1,81,2.2,107.0,54.0,731.0,454.0,167.0,95.0,63.0,dual,N,NODATA!,,,2401.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,0.0,0.0,"Electric immersion, off-peak",Average,Poor,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Timber frame, as built, insulated (assumed)",Good,Good,Portable electric heaters (assumed),,,"Pitched, 270 mm loft insulation",Good,Good,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,No low energy lighting,Very Poor,Very Poor,electricity (not community),0.0,NO DATA!,,,,N,natural,"3, Apple Tree Close, Barming",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2019-02-28 17:43:32,owner-occupied,,,200003666350.0,Address Matched +845864982212012101511512494929108,"21, Eynsford Road",,,ME16 0TD,1834242078,D,B,58,84,Bungalow,Detached,2012-10-15,E07000110,E14000804,Kent,2012-10-15,marketed sale,55,84,273,83.0,3.5,53,1.1,49.0,38.0,589.0,407.0,104.0,71.0,66.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,71.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 71% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"21, Eynsford Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2012-10-15 11:51:24,owner-occupied,7.0,5.0,200003661071.0,Address Matched +1241058939042014120817174633040488,"2a, Bedford Place",,,ME16 8JB,7005630378,B,A,85,97,House,Semi-Detached,2014-12-08,E07000110,E14000804,Kent,2014-12-08,new dwelling,88,99,72,-9.0,1.1,13,-0.1,54.0,54.0,205.0,205.0,77.0,45.0,85.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.12 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.20 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.12 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"2a, Bedford Place",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2014-12-08 17:17:46,owner-occupied,5.0,5.0,10091193478.0,Address Matched +1324288729442015092409071631652358,Flat 1,24 Ashford Road,Bearsted,ME14 4LP,7472226378,E,E,54,54,Flat,NO DATA!,2015-05-25,E07000110,E14000700,Kent,2015-09-24,new dwelling,58,58,357,357.0,2.4,60,2.4,32.0,32.0,461.0,461.0,196.0,196.0,40.0,standard tariff,,ground floor,,,,,NO DATA!,NO DATA!,,,,,0.0,"Electric immersion, standard tariff",Very Poor,Poor,Average thermal transmittance 0.26 W/m+é-¦K,Good,Good,Partial double glazing,Average,Average,Average thermal transmittance 0.41 W/m+é-¦K,Good,Good,,,,(other premises above),,,"Room heaters, electric",Very Poor,Poor,Appliance thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"Flat 1, 24 Ashford Road, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2015-09-24 09:07:16,unknown,18.0,18.0,10091194976.0,Address Matched +797383199302012060514031799820058,"25, Strachan Close",,,ME15 6ZT,8374998968,B,B,88,88,House,End-Terrace,2012-06-05,E07000110,E14000804,Kent,2012-06-05,new dwelling,89,89,55,55.0,1.4,11,1.4,60.0,60.0,325.0,325.0,96.0,96.0,132.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,14.0,,From main system,Good,Good,Average thermal transmittance 0.19 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.19 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.12 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.39,,,NO DATA!,"25, Strachan Close",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2012-06-05 14:03:17,,14.0,14.0,10014313109.0,Address Matched +aaaa42605dea6b3f908ab0cc8d4360ac7ef0186961d57a1a61667071f16566b5,44 Robins Avenue,Lenham,,ME17 2HP,10001579822,D,B,66,83,House,Semi-Detached,2021-08-31,E07000110,E14000700,Kent,2021-09-01,marketed sale,61,80,228,106.0,4.0,40,1.9,102.0,102.0,635.0,497.0,127.0,79.0,99.0,dual,Y,,,,,100.0,double glazing installed during or after 2002,Normal,2.0,4.0,4.0,81.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Average,Average,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 81% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.28,0.0,N,natural,"44 Robins Avenue, Lenham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2021-09-01 12:10:31,Owner-occupied,16.0,,200003705203.0,Energy Assessor +aab7b058f4987c0304bc9fb8fc890fc2599447e516daaaad6fe4962e6e9b4dc5,The Gardens,Leeds Road,Sutton Valence,ME17 3LT,10001638447,B,A,86,102,House,Detached,2021-09-17,E07000110,E14000700,Kent,2021-09-20,new dwelling,86,100,70,-10.0,2.6,12,-0.2,115.0,115.0,460.0,460.0,36.0,36.0,211.0,standard tariff,,,N,,,100.0,,,,,,100.0,0.0,"From main system, flue gas heat recovery",Very Good,Very Good,Average thermal transmittance 0.17 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.19 W/m-¦K,Good,Good,"Boiler & underfloor, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.49,,,,"The Gardens, Leeds Road, Sutton Valence",Maidstone,Faversham and Mid Kent,MAIDSTONE,2021,2021-09-20 10:35:28,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,12.0,,10094443691.0,Energy Assessor +862862629022012120411570213648222,"10, Providence Park",Penenden Heath,,ME14 2EZ,2185263078,B,B,83,83,Flat,Mid-Terrace,2012-12-04,E07000110,E14000804,Kent,2012-12-04,new dwelling,87,87,86,86.0,1.0,16,1.0,37.0,37.0,205.0,205.0,75.0,75.0,64.0,standard tariff,,ground floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.20 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.22 W/m?K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"10, Providence Park, Penenden Heath",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2012-12-04 11:57:02,NO DATA!,15.0,15.0,10014313044.0,Address Matched +690292699902011101717465494099338,"19, Mitchell Close",Lenham,,ME17 2AE,4973990968,D,C,67,73,House,End-Terrace,2011-10-17,E07000110,E14000700,Kent,2011-10-17,marketed sale,66,74,213,166.0,3.0,41,2.3,86.0,43.0,448.0,381.0,119.0,105.0,73.16,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,1.0,5.0,5.0,0.0,0.0,From main system,Good,Good,"To external air, limited insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,2.3,0.0,,natural,"19, Mitchell Close, Lenham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1996-2002,2011-10-17 17:46:54,owner-occupied,10.0,0.0,200003725137.0,Address Matched +457961179262014102313512024308004,"1, Leamington Drive",,,ME16 0WP,294704768,D,B,58,83,House,Detached,2014-10-20,E07000110,E14000804,Kent,2014-10-23,none of the above,48,78,232,84.0,6.7,49,2.6,144.0,75.0,1127.0,620.0,133.0,110.0,138.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,7.0,7.0,8.0,1.0,From main system,Good,Good,"Solid, insulated (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, coal",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 8% of fixed outlets,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"1, Leamington Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2014-10-23 13:51:20,owner-occupied,13.0,1.0,10022901725.0,Address Matched +272292209642018080712542967180338,"62a, Dover Street",,,ME16 8LE,7674301668,E,A,42,94,House,End-Terrace,2018-08-07,E07000110,E14000804,Kent,2018-08-07,rental (private),22,78,886,159.0,6.1,140,1.1,44.0,44.0,854.0,256.0,162.0,78.0,43.0,dual,N,NODATA!,,,2401.0,,not defined,Much More Than Typical,1.0,2.0,2.0,100.0,0.0,"Electric immersion, off-peak",Average,Poor,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, 200 mm loft insulation",Good,Good,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,NO DATA!,,,,N,natural,"62a, Dover Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2018-08-07 12:54:29,rental (private),,,200003656588.0,Address Matched +928141539022013051009150948018517,"1, Penfold Way",Loose,,ME15 9TP,1412328078,D,C,62,78,Bungalow,Semi-Detached,2013-05-09,E07000110,E14000804,Kent,2013-05-10,marketed sale,59,76,217,115.0,4.1,42,2.2,71.0,53.0,691.0,586.0,103.0,67.0,97.0,Unknown,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,67.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 67% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"1, Penfold Way, Loose",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2013-05-10 09:15:09,owner-occupied,9.0,6.0,200003664070.0,Address Matched +597497885452014112522243892249685,"22, Chestnut Close",Ulcombe,,ME17 1EA,6559524868,D,B,68,85,House,Semi-Detached,2014-11-25,E07000110,E14000700,Kent,2014-11-25,rental (social),63,82,207,93.0,3.8,37,1.7,80.0,80.0,663.0,535.0,197.0,137.0,104.0,dual,N,NODATA!,,,2206.0,100.0,double glazing installed during or after 2002,Normal,0.0,6.0,6.0,71.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Air source heat pump, radiators, electric",Average,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 71% of fixed outlets,Very Good,Very Good,electricity (not community),0.0,NO DATA!,,,0.0,,natural,"22, Chestnut Close, Ulcombe",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2014-11-25 22:24:38,rental (social),14.0,10.0,200003701116.0,Address Matched +1221195341712014101505321599949622,Flat 119 Scotney Gardens,St. Peters Street,,ME16 0GT,6269198278,B,B,87,88,Flat,Mid-Terrace,2014-10-14,E07000110,E14000804,Kent,2014-10-15,rental (private),81,83,126,110.0,1.6,22,1.4,71.0,57.0,68.0,70.0,143.0,118.0,72.0,dual,N,2nd,N,,2402.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,75.0,0.0,"Electric immersion, off-peak",Average,Very Poor,(other premises below),,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,(another dwelling above),,,Electric storage heaters,Average,Very Poor,Automatic charge control,Average,Average,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,electricity (not community),0.0,heated corridor,,,0.0,,natural,"Flat 119 Scotney Gardens, St. Peters Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2014-10-15 05:32:15,rental (private),8.0,6.0,10022893486.0,Address Matched +3e87851d8310228d91021047b3cec10f7b9021bbd4819919cfcde25c143e8bba,3 Sharsted Way,Bearsted,,ME14 4PP,10003868533,C,B,70,87,Bungalow,Semi-Detached,2023-01-11,E07000110,E14000700,Kent,2023-01-11,rental,69,86,221,76.0,2.2,39,0.8,66.0,66.0,422.0,379.0,95.0,66.0,56.0,Single,Y,,,,,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,86.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 86% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.28,0.0,N,natural,"3 Sharsted Way, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2023-01-11 16:20:21,Rented (social),7.0,,200003693766.0,Energy Assessor +48324110962008121116545475698388,Flat 4,2 Mill Street,,ME15 6XH,8722155568,C,C,77,78,Flat,Mid-Terrace,2008-12-11,E07000110,E14000804,Kent,2008-12-11,rental (private),71,72,269,264.0,2.0,41,2.0,42.0,25.0,151.0,155.0,105.0,105.0,50.28,Single,N,2nd,N,5.0,2706.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,30.0,0.0,"Electric immersion, off-peak",Poor,Poor,(other premises below),,,Fully double glazed,Good,Good,"Solid brick, with internal insulation",Good,Good,,,,(another dwelling above),,,"Electric Underfloor Heating (Standard tariff), electric",Poor,Poor,Time and temperature zone control,Good,Good,Low energy lighting in 30% of fixed outlets,Average,Average,electricity - this is for backwards compatibility only and should not be used,0.0,unheated corridor,7.35,3.05,0.0,N,natural,"Flat 4, 2 Mill Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2008-12-11 16:54:54,rental (private),,,10014315959.0,Address Matched +1801245042352020060515055523000272,"3, Walnut Tree Avenue",Loose,,ME15 9RN,2296230778,D,B,55,81,House,Detached,2020-06-05,E07000110,E14000804,Kent,2020-06-05,marketed sale,47,76,335,132.0,5.2,59,2.1,123.0,68.0,862.0,569.0,139.0,72.0,88.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,20.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 20% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"3, Walnut Tree Avenue, Loose",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2020-06-05 15:05:55,owner-occupied,,,200003675892.0,Address Matched +55284310262009012015450816308271,Garden Flat,18 Buckland Hill,,ME16 0SG,7113156568,E,E,51,52,Flat,End-Terrace,2009-01-20,E07000110,E14000804,Kent,2009-01-20,marketed sale,36,36,704,701.0,4.8,106,4.8,44.0,22.0,425.0,432.0,81.0,81.0,45.45,Unknown,N,Ground,N,3.0,2401.0,,INVALID!,Normal,0.0,2.0,2.0,0.0,0.0,"Electric immersion, off-peak",Poor,Poor,"Solid, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,(another dwelling above),,,Electric storage heaters,Average,Poor,Manual charge control,Poor,Poor,No low energy lighting,Very Poor,Very Poor,electricity - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.4,0.0,N,natural,"Garden Flat, 18 Buckland Hill",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2009-01-20 15:45:08,owner-occupied,,,200003670133.0,Address Matched +356392190542009090311435564610878,45 Roman Way,Boughton Monchelsea,,ME17 4SG,563296668,B,B,82,84,House,Semi-Detached,2009-09-03,E07000110,E14000700,Kent,2009-09-03,new dwelling,81,82,129,123.0,1.8,21,1.7,68.0,42.0,261.0,264.0,95.0,95.0,85.2,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,,From main system,Very Good,Very Good,Average thermal transmittance 0.19 W/m?K,Very Good,Very Good,Fully double glazed,Good,Good,Average thermal transmittance 0.29 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.16 W/m?K,Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 40% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.33,,,NO DATA!,"45 Roman Way, Boughton Monchelsea",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2009-09-03 11:43:55,,,,10022896571.0,Address Matched +64552122962020021310073884178750,"36, Finglesham Court",,,ME15 7HZ,5822254468,D,B,67,91,House,Enclosed End-Terrace,2020-02-13,E07000110,E14000700,Kent,2020-02-13,rental (private),66,93,285,37.0,2.1,50,0.3,36.0,36.0,330.0,269.0,142.0,60.0,42.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,100.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"36, Finglesham Court",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2020-02-13 10:07:38,rental (private),,,200003711946.0,Address Matched +1426511749242018052517482645382658,Lane Side Cottage,Frittenden Road,Staplehurst,TN12 0DH,5226543478,E,A,45,98,House,Detached,2018-05-25,E07000110,E14000804,Kent,2018-05-25,rental (private),40,91,260,-24.0,6.8,65,0.6,68.0,68.0,791.0,425.0,151.0,67.0,104.0,Unknown,N,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,2.0,6.0,6.0,100.0,0.0,From main system,Poor,Poor,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, electric",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, oil",Poor,Average,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,oil (not community),0.0,NO DATA!,,,,N,natural,"Lane Side Cottage, Frittenden Road, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1900-1929,2018-05-25 17:48:26,rental (private),,,200003722797.0,Address Matched +244389810142009032016011852912208,"1, County Road",,,ME14 1UY,2191219568,E,D,49,59,House,End-Terrace,2009-03-20,E07000110,E14000804,Kent,2009-03-20,rental (social),43,52,438,355.0,5.2,73,4.3,60.0,34.0,734.0,623.0,100.0,82.0,55.68,Single,Y,NO DATA!,,,2107.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,22.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Poor,Poor,Low energy lighting in 22% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.25,0.0,N,natural,"1, County Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2009-03-20 16:01:18,rental (social),,,200003699146.0,Address Matched +390374227012009102911133102219864,Flat 43 Scotney Gardens,St. Peters Street,,ME16 0GR,8422729668,B,B,82,85,Flat,Mid-Terrace,2009-10-29,E07000110,E14000804,Kent,2009-10-29,rental (private),77,80,215,184.0,1.6,32,1.4,41.0,31.0,75.0,81.0,144.0,115.0,50.48,dual,N,1st,N,3.0,2401.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,67.0,0.0,"Electric immersion, off-peak",Average,Poor,(other premises below),,,Fully double glazed,Good,Good,"System built, as built, insulated (assumed)",Good,Good,Portable electric heaters,,,(another dwelling above),,,Electric storage heaters,Poor,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 67% of fixed outlets,Good,Good,electricity - this is for backwards compatibility only and should not be used,0.0,heated corridor,,,0.0,N,natural,"Flat 43 Scotney Gardens, St. Peters Street",Maidstone,Maidstone and The Weald,MAIDSTONE,,2009-10-29 11:13:31,rental (private),,,10022893411.0,Address Matched +589729359702011020711003188390438,"15, Richmond Way",,,ME15 6BL,9785953868,E,D,41,61,Bungalow,Semi-Detached,2011-02-07,E07000110,E14000804,Kent,2011-02-07,marketed sale,41,49,560,462.0,4.8,84,3.9,63.0,35.0,512.0,415.0,309.0,122.0,56.68,Unknown,N,NO DATA!,,,2401.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,1.0,20.0,0.0,"Electric immersion, off-peak",Very Poor,Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, 100 mm loft insulation",Good,Good,Electric storage heaters,Poor,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 20% of fixed outlets,Poor,Poor,electricity - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.36,0.0,N,natural,"15, Richmond Way",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2011-02-07 11:00:31,owner-occupied,,,200003676206.0,Address Matched +1502890129312016120809334098250246,"42, Murdoch Chase",Coxheath,,ME17 4AA,2685988478,B,A,84,94,House,Detached,2015-09-21,E07000110,E14000804,Kent,2016-12-08,new dwelling,85,95,87,22.0,1.7,15,0.5,70.0,70.0,290.0,292.0,108.0,57.0,113.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.14 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.20 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"42, Murdoch Chase, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2016-12-08 09:33:40,unknown,11.0,11.0,10093302691.0,Address Matched +591249129922011021012191233808289,Flat 3 Swallow House,Springvale,,ME16 0AZ,8307273868,F,D,34,66,Flat,Detached,2011-02-10,E07000110,E14000804,Kent,2011-02-10,marketed sale,54,54,390,393.0,3.7,59,3.7,74.0,42.0,689.0,372.0,287.0,128.0,62.5,Single,N,Ground,N,3.0,2601.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,0.0,0.0,"Electric immersion, standard tariff",Very Poor,Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Room heaters, electric",Very Poor,Poor,No thermostatic control of room temperature,Poor,Poor,No low energy lighting,Very Poor,Very Poor,electricity - this is for backwards compatibility only and should not be used,0.0,unheated corridor,0.0,2.4,0.0,N,natural,"Flat 3 Swallow House, Springvale",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2011-02-10 12:19:12,owner-occupied,,,200003667126.0,Address Matched +1374547389642016010511073333960348,Flat 6 Pioneer Place,Cobb Way,,ME15 9XF,1681089378,B,B,83,83,Flat,NO DATA!,2016-01-04,E07000110,E14000700,Kent,2016-01-05,new dwelling,86,86,93,93.0,1.3,16,1.3,56.0,56.0,231.0,231.0,95.0,95.0,79.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.22 W/m-¦K,Good,Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.17 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Flat 6 Pioneer Place, Cobb Way",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2016-01-05 11:07:33,unknown,10.0,10.0,10014315891.0,Address Matched +1553945156332017062108005581278801,"19, West Park Road",,,ME15 7AE,5181842578,C,C,70,80,House,Semi-Detached,2017-06-20,E07000110,E14000700,Kent,2017-06-21,marketed sale,64,78,222,132.0,3.2,39,1.9,54.0,54.0,585.0,462.0,194.0,73.0,80.0,Unknown,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,5.0,5.0,100.0,0.0,From main system,Average,Average,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"19, West Park Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2017-06-21 08:00:55,owner-occupied,,,200003686609.0,Address Matched +ab1018cd352e9424cea90f00be96d5629c09110f3c87c43532d5cb93779f2aee,2 TENACRE COURT,ASHFORD ROAD,HARRIETSHAM,ME17 1AH,10001410050,E,E,42,42,Flat,Mid-Terrace,2021-08-05,E07000110,E14000700,Kent,2021-08-05,not sale or rental,49,49,396,396.0,3.5,67,3.5,47.0,47.0,1042.0,1042.0,205.0,205.0,52.0,standard tariff,,1,N,,,100.0,,,,,,100.0,0.0,Electric instantaneous at point of use,Very Poor,Poor,Average thermal transmittance 0.51 W/m-¦K,Poor,Poor,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.49 W/m-¦K,Good,Good,,,,(other premises above),,,"Boiler and radiators, electric",Very Poor,Poor,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",0.0,,,3.69,,,,"2 TENACRE COURT, ASHFORD ROAD, HARRIETSHAM",Maidstone,Faversham and Mid Kent,MAIDSTONE,2020,2021-08-05 14:22:57,Owner-occupied,4.0,,10095449467.0,Energy Assessor +287003800202009051922540862219418,"62, Whitmore Street",,,ME16 8JU,4273802668,D,D,61,67,House,Mid-Terrace,2009-05-19,E07000110,E14000804,Kent,2009-05-19,marketed sale,54,60,303,258.0,4.3,55,3.7,67.0,37.0,535.0,482.0,98.0,85.0,77.18,Unknown,Y,NO DATA!,,,2107.0,100.0,"double glazing, unknown install date",Normal,1.0,4.0,4.0,17.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, coal",,,"Pitched, 100mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Poor,Poor,Low energy lighting in 17% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.77,0.0,N,natural,"62, Whitmore Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2009-05-19 22:54:08,owner-occupied,,,200003655332.0,Address Matched +597205349262011032721303004538419,7 Balmoral House,Bicknor Road,,ME15 9NU,1020424868,B,B,81,81,Flat,Mid-Terrace,2011-03-27,E07000110,E14000700,Kent,2011-03-27,rental (social),79,79,188,188.0,1.4,31,1.4,24.0,24.0,262.0,262.0,79.0,79.0,43.73,Single,Y,Ground,N,3.0,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,100.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.35,0.0,N,natural,"7 Balmoral House, Bicknor Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2011-03-27 21:30:30,rental (social),,,200003683477.0,Address Matched +130620409262018112617350439068658,Court House Cottage,Rectory Lane,Sutton Valence,ME17 3BS,5336099468,E,C,48,72,Bungalow,Detached,2018-11-26,E07000110,E14000700,Kent,2018-11-26,rental (private),40,64,393,208.0,6.3,69,3.4,63.0,63.0,1114.0,793.0,100.0,68.0,91.0,Single,Y,NODATA!,,,2106.0,40.0,double glazing installed before 2002,Normal,2.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Partial double glazing,Poor,Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"Court House Cottage, Rectory Lane, Sutton Valence",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2018-11-26 17:35:04,rental (private),,,200003696897.0,Address Matched +690011559922012041717085650538782,"61, Church Street",Boughton Monchelsea,,ME17 4HN,8536590968,D,B,60,82,House,Detached,2012-04-17,E07000110,E14000700,Kent,2012-04-17,marketed sale,56,81,233,90.0,4.5,45,1.8,104.0,52.0,683.0,496.0,129.0,65.0,100.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,2.0,6.0,6.0,0.0,0.0,From main system,Average,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, with internal insulation",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"61, Church Street, Boughton Monchelsea",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2012-04-17 17:08:56,owner-occupied,14.0,0.0,200003674186.0,Address Matched +159365210552008101516341706989658,"58, Harvesters Way",Weavering,,ME14 5SJ,6891062568,D,C,63,80,House,Mid-Terrace,2008-10-14,E07000110,E14000700,Kent,2008-10-15,rental (private),58,78,366,195.0,2.9,61,1.6,43.0,23.0,282.0,212.0,174.0,76.0,47.91,dual,Y,NO DATA!,,,2102.0,100.0,double glazing installed before 2002,Normal,1.0,3.0,3.0,13.0,0.0,"From main system, no cylinderstat",Poor,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Average,Good,"Programmer, no room thermostat",Very Poor,Very Poor,Low energy lighting in 13% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.31,0.0,N,natural,"58, Harvesters Way, Weavering",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2008-10-15 16:34:17,rental (private),,,200003716343.0,Address Matched +824952155912012081419515899920605,"1, Kingsbroom Court",Kingswood,,ME17 3ST,6583590078,C,B,71,81,House,Detached,2012-08-14,E07000110,E14000700,Kent,2012-08-14,marketed sale,68,77,139,92.0,6.2,27,4.2,166.0,87.0,940.0,897.0,131.0,116.0,231.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,7.0,7.0,9.0,1.0,From main system,Good,Good,"Solid, insulated (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, mains gas",,,"Pitched, insulated at rafters",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 9% of fixed outlets,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"1, Kingsbroom Court, Kingswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2003-2006,2012-08-14 19:51:58,owner-occupied,22.0,2.0,10014308943.0,Address Matched +332010632222020072215400465898750,"44, Wallis Avenue",,,ME15 9LB,5614325668,C,C,72,76,Flat,Semi-Detached,2020-07-21,E07000110,E14000700,Kent,2020-07-22,none of the above,71,78,208,160.0,2.2,37,1.7,51.0,51.0,388.0,294.0,90.0,91.0,59.0,Single,Y,Ground,N,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,no corridor,,,,N,natural,"44, Wallis Avenue",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2020-07-22 15:40:04,rental (social),,,200003682424.0,Address Matched +95340059742014072417212141642278,"10, Mount Avenue",Yalding,,ME18 6JG,6712656468,D,B,66,88,House,Semi-Detached,2014-07-23,E07000110,E14000804,Kent,2014-07-24,none of the above,64,89,208,48.0,3.0,40,0.7,47.0,47.0,591.0,373.0,97.0,68.0,74.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 25 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"10, Mount Avenue, Yalding",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2014-07-24 17:21:21,owner-occupied,9.0,9.0,200003661494.0,Address Matched +487877388212010052021115291200072,"35, Wallis Avenue",,,ME15 9JL,250816768,C,C,76,77,Flat,Detached,2010-05-20,E07000110,E14000700,Kent,2010-05-20,rental (social),73,74,247,242.0,1.7,41,1.7,32.0,21.0,298.0,300.0,73.0,73.0,42.0,Single,Y,Ground,N,2.0,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,50.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"System built, with external insulation",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,unheated corridor,5.0,2.3,0.0,N,natural,"35, Wallis Avenue",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2010-05-20 21:11:52,rental (social),,,200003682352.0,Address Matched +207319489542015070913365158550918,"47, Pennine Way",Downswood,,ME15 8UF,7565385568,D,B,62,88,House,Semi-Detached,2015-07-09,E07000110,E14000700,Kent,2015-07-09,none of the above,57,88,305,66.0,3.2,54,0.7,81.0,41.0,481.0,360.0,204.0,66.0,61.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,0.0,0.0,"From main system, no cylinder thermostat",Poor,Poor,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Timber frame, as built, insulated (assumed)",Good,Good,,,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"47, Pennine Way, Downswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2015-07-09 13:36:51,owner-occupied,,,200003691306.0,Address Matched +1356918329222015082407404278398265,"29, Chaplin Drive",Headcorn,,TN27 9TN,6759258378,D,B,68,84,House,Detached,2015-08-21,E07000110,E14000700,Kent,2015-08-24,marketed sale,66,81,205,99.0,3.0,36,1.5,89.0,60.0,539.0,493.0,110.0,73.0,83.0,dual,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,50.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"29, Chaplin Drive, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,England and Wales: 1967-1975,2015-08-24 07:40:42,owner-occupied,,,200003699435.0,Address Matched +ab31888ae0c043d4c67c0fbb90622dc437b6fc3b4345d70f118cb62228dcc809,28 WATERLOW ROAD,,,ME14 2TR,10001445252,D,B,68,86,House,Mid-Terrace,2021-07-13,E07000110,E14000804,Kent,2021-07-13,marketed sale,65,85,231,82.0,2.6,41,1.0,54.0,54.0,486.0,396.0,76.0,49.0,65.0,Unknown,Y,,,,,100.0,"double glazing, unknown install date",Normal,1.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Granite or whinstone, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.39,0.0,N,natural,28 WATERLOW ROAD,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2021-07-13 21:30:55,Owner-occupied,11.0,,200003703129.0,Energy Assessor +1655625859962018091119360059098408,"26, Littlebourne Road",,,ME14 5QP,579579578,C,B,70,81,House,Detached,2018-09-11,E07000110,E14000804,Kent,2018-09-11,marketed sale,65,77,180,109.0,4.5,32,2.7,141.0,83.0,695.0,655.0,137.0,83.0,141.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,2.0,6.0,6.0,30.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,"Room heaters, mains gas",,,"Pitched, 270 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 30% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"26, Littlebourne Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2018-09-11 19:36:00,owner-occupied,,,200003671734.0,Address Matched +804544859742012062311345791922608,"16, Coulters Close",Weavering,,ME14 5SU,4782259968,D,B,64,85,House,Semi-Detached,2012-06-20,E07000110,E14000700,Kent,2012-06-23,marketed sale,61,84,209,71.0,4.0,40,1.4,83.0,52.0,518.0,426.0,227.0,70.0,100.0,Single,Y,NODATA!,,,2107.0,100.0,double glazing installed before 2002,Normal,2.0,5.0,5.0,40.0,0.0,"From main system, no cylinder thermostat",Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 40% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"16, Coulters Close, Weavering",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2012-06-23 11:34:57,owner-occupied,15.0,6.0,200003716388.0,Address Matched +476564939642016101916494272569518,"1, Broadoak Avenue",,,ME15 6BH,4611435768,D,B,59,81,House,Detached,2016-10-19,E07000110,E14000804,Kent,2016-10-19,RHI application,51,77,268,112.0,6.0,48,2.6,135.0,73.0,982.0,686.0,221.0,80.0,125.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,3.0,8.0,8.0,14.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 14% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,2.35,,N,natural,"1, Broadoak Avenue",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2016-10-19 16:49:42,owner-occupied,,,200003676178.0,Address Matched +912427709402013041110034702779198,Flat 2 Mauritius House,Balliol Grove,,ME15 9WQ,8414807078,C,C,74,74,Flat,Mid-Terrace,2013-04-11,E07000110,E14000700,Kent,2013-04-11,new dwelling,76,76,166,166.0,2.0,29,2.0,55.0,55.0,340.0,340.0,126.0,126.0,69.0,standard tariff,,ground floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Average,Good,Average thermal transmittance 0.19 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.28 W/m?K,Very Good,Very Good,,,,(other premises above),,,"Air source heat pump, radiators, electric",Average,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 78% of fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"Flat 2 Mauritius House, Balliol Grove",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2013-04-11 10:03:47,NO DATA!,9.0,7.0,10014311670.0,Address Matched +1729638872132019061709062564278904,Flat 32 The Pavilion,"17-21, Pudding Lane",,ME14 1PA,7494905678,D,D,59,59,Flat,Detached,2019-02-21,E07000110,E14000804,Kent,2019-06-17,marketed sale,63,63,250,250.0,2.5,42,2.5,54.0,54.0,583.0,583.0,183.0,183.0,59.0,standard tariff,,top floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,Electric instantaneous at point of use,Very Poor,Very Poor,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.28 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.14 W/m-¦K,Very Good,Very Good,"Room heaters, electric",Very Poor,Poor,Programmer and appliance thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"Flat 32 The Pavilion, 17-21, Pudding Lane",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2019-06-17 09:06:25,owner-occupied,8.0,8.0,10094441565.0,Address Matched +455173989142010031617004778309368,"32, Flaxman Drive",,,ME16 0RU,5187583768,D,C,62,70,Bungalow,Semi-Detached,2010-03-16,E07000110,E14000804,Kent,2010-03-16,marketed sale,60,69,310,243.0,3.2,51,2.5,45.0,32.0,511.0,429.0,132.0,105.0,63.4,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,3.0,3.0,60.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 60% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.45,0.0,N,natural,"32, Flaxman Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2010-03-16 17:00:47,owner-occupied,,,200003659463.0,Address Matched +ab6383ac3ef6524a8d56dcfbd8c74647d4ae55eb9412e2a5db6e0f5dbe03d917,Fair Meadow,Ashford Road,Harrietsham,ME17 1AJ,10001688729,C,B,71,81,House,Detached,2021-09-08,E07000110,E14000700,Kent,2021-09-08,marketed sale,69,80,166,107.0,5.3,27,3.3,157.0,116.0,964.0,853.0,131.0,81.0,198.0,Single,Y,,,,,100.0,double glazing installed during or after 2002,Normal,3.0,8.0,8.0,65.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, wood logs",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 65% of fixed outlets,Good,Good,mains gas (not community),0.0,,,2.6,0.0,N,natural,"Fair Meadow, Ashford Road, Harrietsham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2021-09-08 18:21:29,Owner-occupied,20.0,,200003720794.0,Energy Assessor +1752289559962019091911151196218601,"15, Reynolds Avenue",,,ME17 3GW,989576678,B,A,84,97,House,Mid-Terrace,2019-09-19,E07000110,E14000700,Kent,2019-09-19,new dwelling,87,99,84,-9.0,1.1,15,-0.1,61.0,61.0,189.0,189.0,70.0,41.0,74.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"15, Reynolds Avenue",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2019-09-19 11:15:11,unknown,8.0,8.0,10094441769.0,Address Matched +177217590902008110920563252380088,"65, Ash Grove",,,ME16 0AD,7974993568,D,D,61,67,House,Semi-Detached,2008-11-08,E07000110,E14000804,Kent,2008-11-09,marketed sale,56,61,295,260.0,4.5,49,4.0,83.0,41.0,536.0,490.0,99.0,99.0,64.57,Single,Y,NO DATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,2.0,5.0,5.0,0.0,1.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 25 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Very Good,Very Good,Programmer and room thermostat,Poor,Poor,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.45,0.0,N,natural,"65, Ash Grove",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2008-11-09 20:56:32,owner-occupied,,,200003658164.0,Address Matched +397664773612020032515573128900063,"15, Fiji Terrace",Invicta Park,,ME14 2NZ,342389668,D,C,60,80,House,Mid-Terrace,2020-02-18,E07000110,E14000804,Kent,2020-03-25,Stock Condition Survey,53,76,290,132.0,4.1,51,1.9,63.0,63.0,723.0,541.0,97.0,66.0,80.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Flat, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"15, Fiji Terrace, Invicta Park",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2020-03-25 15:57:31,rental (social),,,200003723963.0,Address Matched +456308092432015010614244584268296,"2, Gleneagles Drive",,,ME15 6FH,9644293768,C,B,69,88,House,Semi-Detached,2014-12-22,E07000110,E14000804,Kent,2015-01-06,non marketed sale,67,87,212,70.0,2.8,37,1.0,83.0,50.0,452.0,394.0,156.0,71.0,76.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,33.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 33% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"2, Gleneagles Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1991-1995,2015-01-06 14:24:45,owner-occupied,,,200003681535.0,Address Matched +ab613e8872730ae241e673f33a6030c4590616721a0f473051c203e28a8a263a,14 Charles Street,,,ME16 8ET,10001353078,D,B,62,83,House,Mid-Terrace,2021-08-25,E07000110,E14000804,Kent,2021-08-26,rental,57,82,226,85.0,4.8,40,1.8,89.0,89.0,915.0,556.0,128.0,80.0,122.0,Single,Y,,,,,100.0,double glazing installed during or after 2002,Normal,3.0,6.0,6.0,100.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, electric",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.31,0.0,N,natural,14 Charles Street,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2021-08-26 08:06:37,Rented (private),42.0,,200003667809.0,Energy Assessor +1465950469262016072619354516368776,Wentbridge,Waldron Drive,Loose,ME15 9TG,7129626478,D,B,61,82,Bungalow,Detached,2016-07-26,E07000110,E14000804,Kent,2016-07-26,marketed sale,53,79,272,112.0,5.1,48,2.2,80.0,80.0,927.0,584.0,140.0,87.0,107.0,Single,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,79.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 79% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,2.34,,N,natural,"Wentbridge, Waldron Drive, Loose",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2016-07-26 19:35:45,owner-occupied,,,200003664144.0,Address Matched +493220309062010060418443516448680,"3, Roseacre Lane",Bearsted,,ME14 4HY,8174056768,D,D,57,68,House,Mid-Terrace,2010-06-04,E07000110,E14000700,Kent,2010-06-04,marketed sale,50,62,329,247.0,5.3,55,4.0,74.0,49.0,768.0,615.0,144.0,104.0,95.72,Single,Y,NO DATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,50.0,0.0,From main system,Average,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, mains gas",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Average,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.69,0.0,N,natural,"3, Roseacre Lane, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1900-1929,2010-06-04 18:44:35,owner-occupied,,,200003692166.0,Address Matched +1043072079922013111813003286388417,"29, Queens House",Fennel Close,,ME16 0SZ,1876736178,E,B,54,81,House,Mid-Terrace,2013-11-18,E07000110,E14000804,Kent,2013-11-18,marketed sale,49,79,288,101.0,4.7,56,1.7,49.0,50.0,860.0,520.0,103.0,69.0,85.0,Single,Y,NODATA!,,,2106.0,0.0,single glazing,Normal,0.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Granite or whinstone, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"29, Queens House, Fennel Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2013-11-18 13:00:32,owner-occupied,8.0,8.0,200003722403.0,Address Matched +823742779922012081013053800508412,"9, Haven Close",Sutton Valence,,ME17 3EQ,1010780078,B,B,83,83,House,Semi-Detached,2012-08-10,E07000110,E14000700,Kent,2012-08-10,new dwelling,86,86,84,84.0,1.5,16,1.5,51.0,51.0,274.0,274.0,73.0,73.0,93.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,12.0,,From main system,Good,Good,Average thermal transmittance 0.15 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.23 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.46,,,NO DATA!,"9, Haven Close, Sutton Valence",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2012-08-10 13:05:38,,12.0,12.0,10014313451.0,Address Matched +1361639031532015090821500156078904,"3, Roseacre Gardens",Bearsted,,ME14 4JF,3426988378,D,C,65,80,House,Detached,2015-09-08,E07000110,E14000700,Kent,2015-09-08,marketed sale,58,75,219,118.0,5.1,39,2.8,131.0,73.0,866.0,719.0,157.0,88.0,132.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,6.0,6.0,20.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 20% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"3, Roseacre Gardens, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2015-09-08 21:50:01,owner-occupied,,,10022892617.0,Address Matched +422077029962010011721260021768740,"58, Edna Road",,,ME14 2QN,4276251768,D,C,64,75,House,End-Terrace,2010-01-16,E07000110,E14000804,Kent,2010-01-17,rental (private),58,71,322,222.0,3.3,54,2.3,49.0,32.0,534.0,379.0,82.0,82.0,61.69,Single,Y,NO DATA!,,,2106.0,70.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,44.0,1.0,From main system,Very Good,Very Good,"Suspended, no insulation (assumed)",,,Partial double glazing,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 25 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 44% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.43,0.0,N,natural,"58, Edna Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2010-01-17 21:26:00,rental (private),,,200003670649.0,Address Matched +336fe1bbbe933a0cc856cff66e58b8c5e225c7dadb0c274e9ccf45d025eeb5e7,FLAT 8,RAYLEIGH HOUSE,KINGS REACH,ME15 7QR,10001647986,E,C,54,71,Flat,Semi-Detached,2021-06-29,E07000110,E14000700,Kent,2021-07-01,ECO assessment,53,75,413,222.0,2.9,72,1.6,75.0,38.0,569.0,334.0,86.0,71.0,40.0,Single,Y,01,Y,,,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,0.0,0.0,From main system,Good,Good,(another dwelling below),,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Average,Average,"Room heaters, electric",,,"Pitched, insulated (assumed)",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,unheated corridor,8.5,2.85,0.0,N,natural,"FLAT 8, RAYLEIGH HOUSE, KINGS REACH",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2021-07-01 18:14:49,Rented (social),5.0,,200003714054.0,Energy Assessor +383863124852012042317581298920861,1a Bicknor Court Cottages,Bicknor Lane,Bicknor,ME9 8AX,8118488668,C,B,76,89,House,Semi-Detached,2012-04-11,E07000110,E14000700,Kent,2012-04-23,rental (private),76,89,119,44.0,2.8,23,1.1,95.0,61.0,413.0,422.0,114.0,71.0,123.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,6.0,6.0,44.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",,,Fully double glazed,Good,Good,"Timber frame, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated at rafters",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 44% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"1a Bicknor Court Cottages, Bicknor Lane, Bicknor",Maidstone,Faversham and Mid Kent,SITTINGBOURNE,England and Wales: 2003-2006,2012-04-23 17:58:12,rental (private),16.0,7.0,10022896257.0,Address Matched +1480994639342016092011114141762208,"5, Mallet Avenue",,,ME15 8GT,4305237478,B,A,82,94,House,NO DATA!,2016-09-20,E07000110,E14000700,Kent,2016-09-20,new dwelling,83,95,102,19.0,1.6,18,0.3,60.0,60.0,267.0,269.0,105.0,55.0,88.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"5, Mallet Avenue",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2016-09-20 11:11:41,unknown,1.0,1.0,10091193685.0,Address Matched +1637415449242018060517354455880548,"8, Odiham Drive",,,ME16 0TW,2297448578,C,B,72,88,House,Semi-Detached,2018-06-04,E07000110,E14000804,Kent,2018-06-05,marketed sale,71,88,197,59.0,2.1,35,0.7,55.0,55.0,327.0,302.0,123.0,72.0,60.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,75.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"8, Odiham Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1976-1982,2018-06-05 17:35:44,owner-occupied,,,200003662264.0,Address Matched +ab956dbdd400073b250fe67d0c3d5249f778e28ae57e9fff86afacfd7965fe46,52 GREENWAY,,,ME16 8TL,10001554870,C,B,70,85,House,Mid-Terrace,2021-07-27,E07000110,E14000804,Kent,2021-07-27,rental,66,82,188,86.0,3.4,33,1.6,114.0,80.0,558.0,464.0,92.0,64.0,103.0,Single,Y,,,,,100.0,"double glazing, unknown install date",Normal,1.0,6.0,6.0,58.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 58% of fixed outlets,Good,Good,mains gas (not community),0.0,,,2.41,0.0,N,natural,52 GREENWAY,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2021-07-27 12:28:49,Owner-occupied,12.0,,200003696610.0,Energy Assessor +1505002029962016121506222709478316,"7, Buckland Place",,,ME16 0SJ,1008209478,C,B,69,83,House,Mid-Terrace,2016-12-13,E07000110,E14000804,Kent,2016-12-15,marketed sale,65,80,201,100.0,3.3,35,1.7,120.0,60.0,588.0,540.0,87.0,53.0,93.0,Unknown,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Timber frame, as built, partial insulation (assumed)",Average,Average,,,,"Pitched, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"7, Buckland Place",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2016-12-15 06:22:27,owner-occupied,,,200003666860.0,Address Matched +1431611321052016041216271998060744,Flat 60,Concorde House,London Road,ME16 8QA,7448183478,E,E,45,45,Flat,End-Terrace,2016-04-05,E07000110,E14000804,Kent,2016-04-12,rental (private),43,43,471,471.0,4.1,80,4.1,85.0,85.0,784.0,784.0,165.0,165.0,51.0,dual,N,5th,N,,2107.0,100.0,double glazing installed during or after 2002,Normal,1.0,2.0,2.0,100.0,0.0,From main system,Poor,Poor,(another dwelling below),NO DATA!,,Fully double glazed,Good,Good,"System built, with internal insulation",Good,Good,,,,"Flat, insulated",Average,Average,"Boiler and radiators, electric",Very Poor,Poor,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,unheated corridor,20.81,2.5,,N,natural,"Flat 60, Concorde House, London Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2016-04-12 16:27:19,rental (private),,,, +1712822389742019041508014667319708,"92, Newbury Avenue",,,ME16 0RD,5773983678,E,C,50,75,Bungalow,Semi-Detached,2019-04-10,E07000110,E14000804,Kent,2019-04-15,marketed sale,43,69,412,189.0,4.5,73,2.1,47.0,47.0,740.0,577.0,149.0,63.0,62.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,100.0,0.0,From main system,Average,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"92, Newbury Avenue",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2019-04-15 08:01:46,rental (social),,,200003659355.0,Address Matched +396740179142011012118282669992898,"11, Rawdon Road",,,ME15 6PT,6130679668,E,E,47,48,House,Mid-Terrace,2011-01-21,E07000110,E14000804,Kent,2011-01-21,marketed sale,41,41,449,443.0,5.8,75,5.7,75.0,42.0,957.0,966.0,103.0,103.0,77.0,Unknown,Y,NO DATA!,,,2106.0,0.0,not defined,Normal,1.0,5.0,5.0,20.0,2.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, mains gas",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 20% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.6,0.0,N,natural,"11, Rawdon Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2011-01-21 18:28:26,owner-occupied,,,200003692787.0,Address Matched +ab9f173a25683d7d574a172fb111b7bb1a79bee64375be8c2ab4fb521ea6b52f,51 Bridge Mill Way,Tovil,,ME15 6FD,10001553177,C,B,75,85,House,Detached,2021-09-16,E07000110,E14000804,Kent,2021-09-16,RHI application,72,82,156,94.0,3.1,27,1.9,85.0,85.0,549.0,509.0,71.0,72.0,115.0,Single,Y,,,,,100.0,double glazing installed during or after 2002,Normal,4.0,6.0,6.0,100.0,0.0,"From main system, plus solar",Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.31,0.0,Y,natural,"51 Bridge Mill Way, Tovil",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2021-09-16 20:23:10,Owner-occupied,12.0,,200003716154.0,Energy Assessor +aba2d8d9591d723bcff775f3fbc033edcccfef5d16bfed60ab5c694ede39e6e3,30 Gorham Drive,Downswood,,ME15 8UU,10001470176,D,B,63,89,House,Semi-Detached,2021-09-20,E07000110,E14000700,Kent,2021-09-20,rental,60,89,293,62.0,2.9,52,0.6,54.0,54.0,495.0,336.0,96.0,44.0,56.0,dual,Y,,,,,0.0,not defined,More Than Typical,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.45,0.0,N,natural,"30 Gorham Drive, Downswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2021-09-20 18:33:06,Owner-occupied,5.0,,200003691413.0,Energy Assessor +336620490722009073113303005498781,"55, Longham Copse",Downswood,,ME15 8TL,8000945668,D,C,55,75,Flat,Semi-Detached,2009-07-31,E07000110,E14000700,Kent,2009-07-31,marketed sale,65,66,468,456.0,1.9,71,1.8,15.0,15.0,350.0,164.0,97.0,97.0,26.67,dual,N,1st,N,2.0,2603.0,0.0,INVALID!,Normal,0.0,1.0,1.0,100.0,0.0,"Electric immersion, off-peak",Average,Poor,(other premises below),,,Single glazed,Very Poor,Very Poor,"Timber frame, as built, insulated (assumed)",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Room heaters, electric",Very Poor,Poor,Programmer and appliance thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity - this is for backwards compatibility only and should not be used,0.0,unheated corridor,1.15,2.36,0.0,N,natural,"55, Longham Copse, Downswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1976-1982,2009-07-31 13:30:30,owner-occupied,,,200003686478.0,Address Matched +1763386559062019110618330487458351,Flat 9,9 Sittingbourne Road,,ME14 5ET,5865557678,E,D,51,61,Flat,Detached,2019-11-05,E07000110,E14000804,Kent,2019-11-06,rental (private),45,57,576,426.0,3.1,102,2.3,27.0,27.0,512.0,373.0,96.0,96.0,30.0,Unknown,Y,3rd,Y,,2307.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,100.0,0.0,Community scheme,Good,Good,(another dwelling below),NO DATA!,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,Community scheme,Good,Good,"Flat rate charging, TRVs",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (community),0.0,unheated corridor,3.0,,,N,natural,"Flat 9, 9 Sittingbourne Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2019-11-06 18:33:04,rental (private),,,10094444668.0,Address Matched +458135958312020012715390420200278,"29, Gleneagles Drive",,,ME15 6FH,2820804768,C,B,69,87,House,Detached,2020-01-27,E07000110,E14000804,Kent,2020-01-27,rental (private),67,85,212,80.0,3.0,37,1.2,115.0,63.0,460.0,392.0,131.0,78.0,80.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,18.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 18% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"29, Gleneagles Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2020-01-27 15:39:04,rental (private),,,200003664333.0,Address Matched +460832107032010032620202949268306,"41, Gladstone Road",Penenden Heath,,ME14 2AU,659324768,D,C,67,72,House,Mid-Terrace,2010-03-26,E07000110,E14000804,Kent,2010-03-26,marketed sale,63,68,295,253.0,2.9,49,2.5,50.0,30.0,457.0,414.0,93.0,81.0,66.02,Single,Y,NO DATA!,,,2107.0,100.0,double glazing installed before 2002,Normal,1.0,4.0,4.0,33.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 33% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.43,0.0,N,natural,"41, Gladstone Road, Penenden Heath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2010-03-26 20:20:29,owner-occupied,,,200003701735.0,Address Matched +947615269302013061019205004970968,"7, Hill Crescent",Lenham,,ME17 2PT,3344469078,D,B,64,84,House,End-Terrace,2013-06-06,E07000110,E14000700,Kent,2013-06-10,marketed sale,60,83,207,76.0,4.1,40,1.6,97.0,55.0,625.0,479.0,164.0,69.0,103.0,Unknown,Y,NODATA!,,,2102.0,100.0,double glazing installed before 2002,Normal,2.0,5.0,5.0,23.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,Low energy lighting in 23% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"7, Hill Crescent, Lenham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2013-06-10 19:20:50,owner-occupied,13.0,3.0,200003723671.0,Address Matched +1622346339102018041217065456789428,"23, Charlesford Avenue",Kingswood,,ME17 3PE,3124737578,D,A,62,97,Bungalow,Semi-Detached,2018-04-12,E07000110,E14000700,Kent,2018-04-12,rental (private),56,91,247,26.0,4.7,45,0.7,122.0,67.0,817.0,674.0,93.0,61.0,104.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,6.0,6.0,18.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 18% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"23, Charlesford Avenue, Kingswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2018-04-12 17:06:54,rental (private),,,200003700331.0,Address Matched +48040082832008121710014076968498,Flat 29,Broadway Heights,23 The Broadway,ME16 8GJ,8886465568,B,B,82,82,Flat,Detached,2008-12-17,E07000110,E14000804,Kent,2008-12-17,new dwelling,82,83,164,161.0,1.2,0,1.2,28.0,22.0,192.0,192.0,57.0,57.0,0.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,12.0,,SAP05:Hot-Water,,,SAP05:Floor,,,SAP05:Windows,,,SAP05:Walls,,,SAP05:Secondary-Heating,,,SAP05:Roof,,,SAP05:Main-Heating,,,SAP05:Main-Heating-Controls,,,SAP05:Lighting,,,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,,,,NO DATA!,"Flat 29, Broadway Heights, 23 The Broadway",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2008-12-17 10:01:40,,16.0,12.0,10022896853.0,Address Matched +47283110962008121117035165798128,Flat 5,2 Mill Street,,ME15 6XH,2632155568,C,C,75,76,Flat,Semi-Detached,2008-12-11,E07000110,E14000804,Kent,2008-12-11,rental (private),68,68,352,347.0,2.0,53,1.9,31.0,18.0,157.0,159.0,92.0,92.0,37.14,Single,N,2nd,N,5.0,2706.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,25.0,0.0,"Electric immersion, off-peak",Average,Poor,(other premises below),,,Fully double glazed,Good,Good,"Solid brick, with internal insulation",Good,Good,,,,(another dwelling above),,,"Electric Underfloor Heating (Standard tariff), electric",Average,Poor,Time and temperature zone control,Good,Good,Low energy lighting in 25% of fixed outlets,Average,Average,electricity - this is for backwards compatibility only and should not be used,0.0,unheated corridor,7.15,3.04,0.0,N,natural,"Flat 5, 2 Mill Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2008-12-11 17:03:51,rental (private),,,, +272038700602009042319124666112878,"23, Pickering Street",,,ME15 9RS,9672201668,D,D,60,65,House,Detached,2009-04-23,E07000110,E14000804,Kent,2009-04-23,marketed sale,54,59,267,236.0,7.1,44,6.3,125.0,78.0,905.0,836.0,158.0,135.0,158.8,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,40.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Roof room(s), insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 40% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,0.0,N,natural,"23, Pickering Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2009-04-23 19:12:46,owner-occupied,,,200003675143.0,Address Matched +792754175232012052517110221268608,Flat 7,"3, Lower Fant Road",,ME16 8DP,7851668968,D,D,61,67,Flat,Semi-Detached,2012-05-23,E07000110,E14000804,Kent,2012-05-25,rental (private),59,67,262,212.0,3.0,50,2.4,53.0,35.0,519.0,433.0,73.0,73.0,59.0,Single,Y,2nd,N,,2107.0,100.0,double glazing installed before 2002,Normal,1.0,3.0,3.0,50.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,unheated corridor,1.99,,0.0,,natural,"Flat 7, 3, Lower Fant Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2012-05-25 17:11:02,rental (private),6.0,3.0,200003728936.0,Address Matched +223110119442017110718170251730238,"1, Bridge Street",Loose,,ME15 0BY,4465417568,E,B,51,82,House,Semi-Detached,2017-11-07,E07000110,E14000804,Kent,2017-11-07,marketed sale,43,78,371,124.0,5.6,66,1.9,82.0,57.0,912.0,540.0,189.0,72.0,85.0,Single,Y,NODATA!,,,2104.0,0.0,not defined,Normal,1.0,4.0,4.0,55.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Single glazed,Very Poor,Very Poor,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 55% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"1, Bridge Street, Loose",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2017-11-07 18:17:02,owner-occupied,,,200003663608.0,Address Matched +471779099642014072214401074442528,Crispin,Maidstone Road,Marden,TN12 9AE,5656894768,C,B,78,87,House,End-Terrace,2014-07-22,E07000110,E14000804,Kent,2014-07-22,none of the above,77,88,120,54.0,1.9,24,0.9,62.0,49.0,532.0,373.0,92.0,66.0,79.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,73.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, partial insulation (assumed)",Average,Average,,,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 73% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,40.0,,natural,"Crispin, Maidstone Road, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1976-1982,2014-07-22 14:40:10,owner-occupied,11.0,8.0,200003708999.0,Address Matched +abea596750064e61032041b9ad44707b2342288c3d4037fe329672ea8c38cad6,Iden Court,Frittenden Road,Staplehurst,TN12 0DH,10001684063,F,C,34,79,House,Semi-Detached,2021-08-18,E07000110,E14000804,Kent,2021-08-19,marketed sale,34,80,392,108.0,15.0,61,3.9,286.0,146.0,2809.0,1082.0,404.0,76.0,250.0,dual,Y,,,,,0.0,not defined,Normal,2.0,7.0,7.0,0.0,0.0,"Gas range cooker, no cylinder thermostat",Poor,Poor,"Solid, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Solid brick, as built, no insulation (assumed)",Poor,Poor,"Room heaters, wood logs",,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,,,2.5,0.0,N,natural,"Iden Court, Frittenden Road, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: before 1900,2021-08-19 13:18:40,Owner-occupied,26.0,,10014310622.0,Energy Assessor +abfb2bc2943213f12bd7b130f71d730bd28ec59df5dcca63b8e75328831f7b30,2 Bargrove Road,,,ME14 5RR,10001439387,D,B,68,89,House,End-Terrace,2021-09-10,E07000110,E14000804,Kent,2021-09-10,rental,66,89,238,55.0,2.5,42,0.6,74.0,52.0,427.0,313.0,84.0,57.0,60.0,Single,Y,,,,,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,57.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, partial insulation (assumed)",Average,Average,,,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 57% of fixed outlets,Good,Good,mains gas (not community),0.0,,,2.36,0.0,N,natural,2 Bargrove Road,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1976-1982,2021-09-10 17:35:41,Rented (private),7.0,,200003672445.0,Energy Assessor +1787165512032020022410320699278807,"27, Crownfields",Weavering,,ME14 5TH,1759829678,C,B,72,87,House,End-Terrace,2020-02-21,E07000110,E14000700,Kent,2020-02-24,marketed sale,71,87,194,70.0,2.2,34,0.8,54.0,54.0,371.0,344.0,115.0,74.0,65.0,Unknown,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"27, Crownfields, Weavering",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2020-02-24 10:32:06,owner-occupied,,,200003688251.0,Address Matched +1776992434212020011412003025900366,"24, Timbertops",,,ME5 8XF,3668458678,C,B,70,87,House,Mid-Terrace,2020-01-14,E07000110,E14000700,Kent,2020-01-14,marketed sale,67,86,210,74.0,2.8,37,1.0,61.0,61.0,493.0,383.0,96.0,66.0,76.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"24, Timbertops",Maidstone,Faversham and Mid Kent,CHATHAM,England and Wales: 1967-1975,2020-01-14 12:00:30,owner-occupied,,,200003673750.0,Address Matched +1808868387112020070815502828000371,"16, Worcester Road",,,ME15 7LU,3156780778,C,B,69,84,House,Semi-Detached,2020-07-07,E07000110,E14000700,Kent,2020-07-08,marketed sale,66,81,208,103.0,3.4,37,1.7,127.0,81.0,569.0,501.0,109.0,75.0,94.0,dual,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,43.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 43% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"16, Worcester Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2020-07-08 15:50:28,owner-occupied,,,200003712276.0,Address Matched +991917355612013081821463897970014,Hillside,Leeds Road,Langley,ME17 3JQ,442572178,C,B,70,87,Bungalow,Detached,2013-08-16,E07000110,E14000700,Kent,2013-08-18,marketed sale,69,89,173,51.0,2.7,33,0.8,57.0,57.0,454.0,353.0,121.0,70.0,80.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,78.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 78% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"Hillside, Leeds Road, Langley",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2013-08-18 21:46:38,owner-occupied,9.0,7.0,200003697891.0,Address Matched +1276316159062015020318224982478945,"10, Cherry Orchard Way",,,ME16 8TJ,4870582378,D,B,58,85,House,Mid-Terrace,2015-02-03,E07000110,E14000804,Kent,2015-02-03,marketed sale,51,83,292,84.0,4.7,51,1.4,108.0,57.0,850.0,470.0,111.0,74.0,92.0,Single,Y,NODATA!,,,2107.0,95.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,11.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Mostly double glazing,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Roof room(s), ceiling insulated",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 11% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"10, Cherry Orchard Way",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2015-02-03 18:22:49,owner-occupied,,,200003696500.0,Address Matched +601180769762011031020342214098779,"5, Uptons",Headcorn,,TN27 9QF,7170654868,C,C,70,77,House,Semi-Detached,2011-01-31,E07000110,E14000700,Kent,2011-03-10,non marketed sale,65,73,256,196.0,3.0,43,2.3,50.0,40.0,441.0,368.0,155.0,115.0,69.28,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,75.0,0.0,From main system,Good,Good,"Suspended, limited insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,0.0,N,natural,"5, Uptons, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,England and Wales: 1996-2002,2011-03-10 20:34:22,owner-occupied,,,200003699950.0,Address Matched +665625449922011081210302079228439,"19, Honywood Road",Lenham,,ME17 2HH,3744429868,E,E,53,53,Flat,Semi-Detached,2011-08-12,E07000110,E14000700,Kent,2011-08-12,rental (private),59,59,307,307.0,3.1,56,3.1,38.0,38.0,334.0,334.0,395.0,395.0,54.3,Single,Y,Ground,N,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,80.0,0.0,No system present: electric immersion assumed,Very Poor,Very Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,no corridor,,2.25,0.0,,natural,"19, Honywood Road, Lenham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2011-08-12 10:30:20,rental (private),5.0,4.0,200003723770.0,Address Matched +259189988432014081317332667968101,"93, South Lane",Sutton Valence,,ME17 3AY,8117120668,C,B,72,84,House,Detached,2014-08-12,E07000110,E14000700,Kent,2014-08-13,marketed sale,70,82,148,77.0,3.6,28,1.9,113.0,68.0,631.0,578.0,131.0,87.0,125.0,Unknown,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,6.0,6.0,33.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 33% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"93, South Lane, Sutton Valence",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2014-08-13 17:33:26,owner-occupied,18.0,6.0,200003695657.0,Address Matched +529635158032010081910155356968805,Hillcrest,Maidstone Road,Wateringbury,ME18 5ER,5526809768,F,C,34,70,House,Detached,2010-08-18,E07000110,E14000804,Kent,2010-08-19,marketed sale,37,65,439,218.0,8.3,71,4.2,123.0,61.0,1129.0,644.0,469.0,130.0,116.0,Single,Y,NO DATA!,,,2104.0,0.0,not defined,Normal,0.0,6.0,6.0,0.0,0.0,"Electric immersion, standard tariff",Very Poor,Poor,"Suspended, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Solid brick, with internal insulation",Good,Good,,,,"Pitched, 12 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Average,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.45,0.0,N,natural,"Hillcrest, Maidstone Road, Wateringbury",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2010-08-19 10:15:53,owner-occupied,,,200003657924.0,Address Matched +830681182632016030415325338278409,Five Oaks,Warren Street,Lenham,ME17 2EG,8968431078,F,D,34,61,Bungalow,Detached,2016-02-25,E07000110,E14000700,Kent,2016-03-04,ECO assessment,51,72,187,93.0,7.5,44,4.0,144.0,95.0,2691.0,1725.0,280.0,161.0,171.0,dual,N,NODATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,1.0,8.0,8.0,48.0,0.0,From main system,Poor,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, LPG",Poor,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 48% of fixed outlets,Good,Good,LPG (not community),0.0,NO DATA!,,,,N,natural,"Five Oaks, Warren Street, Lenham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2016-03-04 15:32:53,owner-occupied,,,200003727682.0,Address Matched +747435709062012020719441395738312,1 Princes Villas,Maidstone Road,Marden,TN12 9AE,1994045968,C,C,71,74,House,Semi-Detached,2012-02-07,E07000110,E14000804,Kent,2012-02-07,marketed sale,68,72,161,144.0,4.5,31,4.0,84.0,65.0,698.0,643.0,126.0,112.0,144.36,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,2.0,8.0,8.0,71.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 71% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,2.32,0.0,,natural,"1 Princes Villas, Maidstone Road, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1983-1990,2012-02-07 19:44:13,owner-occupied,17.0,12.0,200003710755.0,Address Matched +719435806052013102115535890279495,"22, The Cockpit",Marden,,TN12 9TQ,4519603968,B,A,90,93,House,Mid-Terrace,2013-10-21,E07000110,E14000804,Kent,2013-10-21,FiT application,90,94,38,11.0,0.7,8,0.3,78.0,47.0,377.0,352.0,91.0,64.0,80.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,36.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 36% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,,natural,"22, The Cockpit, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1983-1990,2013-10-21 15:53:58,owner-occupied,11.0,4.0,200003726963.0,Address Matched +989481559442017050416591416230528,Lone Barn Farm,Woodside Green,Lenham,ME17 2ES,9486652178,B,A,85,99,House,Detached,2017-05-02,E07000110,E14000700,Kent,2017-05-04,marketed sale,118,128,53,-18.0,-4.1,-19,-6.1,101.0,101.0,1654.0,1576.0,263.0,156.0,215.0,Single,N,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,10.0,10.0,100.0,0.0,From main system,Poor,Very Good,"Solid, limited insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, wood logs",,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, wood pellets",Poor,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,bulk wood pellets,0.0,NO DATA!,,,,N,natural,"Lone Barn Farm, Woodside Green, Lenham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1996-2002,2017-05-04 16:59:14,owner-occupied,,,10022895519.0,Address Matched +277666271712009050717271104010864,"16, Conifer Drive",,,ME5 8XJ,8433141668,F,F,32,34,House,End-Terrace,2009-05-05,E07000110,E14000700,Kent,2009-05-07,marketed sale,50,51,440,422.0,4.0,67,3.9,46.0,46.0,810.0,770.0,155.0,155.0,59.64,dual,Y,NO DATA!,,,2601.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,1.0,50.0,0.0,"Electric immersion, off-peak",Poor,Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 100mm loft insulation",Average,Average,Portable electric heating assumed for most rooms,Very Poor,Poor,No thermostatic control of room temperature,Poor,Poor,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.33,0.0,N,natural,"16, Conifer Drive",Maidstone,Faversham and Mid Kent,CHATHAM,England and Wales: 1976-1982,2009-05-07 17:27:11,owner-occupied,,,200003676336.0,Address Matched +501397109542010071616424376709168,"42, Captains Close",Sutton Valence,,ME17 3BA,8573807768,C,B,77,81,Flat,Enclosed End-Terrace,2010-07-16,E07000110,E14000700,Kent,2010-07-16,rental (social),75,79,183,157.0,2.1,30,1.8,78.0,39.0,331.0,306.0,91.0,91.0,70.93,Single,Y,1st,Y,2.0,2106.0,90.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,0.0,0.0,From main system,Very Good,Very Good,(other premises below),,,Mostly double glazing,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.43,0.0,N,natural,"42, Captains Close, Sutton Valence",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2010-07-16 16:42:43,rental (social),,,200003696270.0,Address Matched +947397024812015030310112596050009,"8, Kenward Road",Yalding,,ME18 6JR,945469078,E,C,47,79,House,Semi-Detached,2015-03-03,E07000110,E14000804,Kent,2015-03-03,none of the above,47,81,356,120.0,5.6,56,1.7,122.0,61.0,1097.0,644.0,210.0,76.0,101.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,1.0,6.0,6.0,0.0,1.0,From main system,Average,Average,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, wood logs",,,"Pitched, insulated at rafters",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"8, Kenward Road, Yalding",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2015-03-03 10:11:25,owner-occupied,,,200003660621.0,Address Matched +486228219922010051707315026038340,Flat 4 Acacia House,"8-10, Ashford Road",,ME14 5DG,4261106768,D,C,68,69,Flat,Detached,2010-05-17,E07000110,E14000804,Kent,2010-05-17,marketed sale,64,64,295,292.0,3.1,44,3.1,64.0,44.0,327.0,333.0,131.0,131.0,70.0,dual,N,1st,N,3.0,2401.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,55.0,0.0,"Electric immersion, off-peak",Average,Poor,(other premises below),,,Fully double glazed,Average,Average,"Solid brick, as built, insulated (assumed)",Good,Good,Portable electric heaters,,,(another dwelling above),,,Electric storage heaters,Poor,Poor,Manual charge control,Poor,Poor,Low energy lighting in 55% of fixed outlets,Good,Good,electricity - this is for backwards compatibility only and should not be used,0.0,unheated corridor,13.2,2.7,0.0,N,natural,"Flat 4 Acacia House, 8-10, Ashford Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2010-05-17 07:31:50,owner-occupied,,,200003661311.0,Address Matched +256596749962019071016000599108181,Flat 89 Lee Heights,Bambridge Court,,ME14 2LD,8951499568,B,B,82,86,Flat,Mid-Terrace,2019-07-10,E07000110,E14000804,Kent,2019-07-10,rental (private),78,78,179,179.0,1.4,30,1.4,41.0,47.0,113.0,78.0,189.0,149.0,47.0,Unknown,N,1st,N,,2603.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,100.0,0.0,"Electric immersion, off-peak",Poor,Poor,(another dwelling below),NO DATA!,,Fully double glazed,Good,Good,"System built, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Room heaters, electric",Very Poor,Poor,Programmer and appliance thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,unheated corridor,7.16,,,N,natural,"Flat 89 Lee Heights, Bambridge Court",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2019-07-10 16:00:05,rental (private),,,10022893060.0,Address Matched +896388989922013031116532575898247,"80, Trevor Drive",,,ME16 0QX,4749895078,D,B,63,91,Bungalow,Semi-Detached,2013-03-11,E07000110,E14000804,Kent,2013-03-11,none of the above,63,93,261,24.0,2.5,50,0.3,40.0,31.0,330.0,282.0,217.0,64.0,51.0,Unknown,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,More Than Typical,0.0,3.0,3.0,71.0,0.0,"From main system, no cylinder thermostat",Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 71% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"80, Trevor Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2013-03-11 16:53:25,owner-occupied,7.0,5.0,200003705353.0,Address Matched +1691563105112019012122054393210265,"29, Huntington Road",Coxheath,,ME17 4DU,2595532678,C,B,69,84,House,End-Terrace,2019-01-21,E07000110,E14000804,Kent,2019-01-21,rental (social),66,81,215,106.0,3.1,38,1.6,103.0,61.0,490.0,462.0,123.0,78.0,83.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,30.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 30% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"29, Huntington Road, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2019-01-21 22:05:43,rental (social),,,200003671585.0,Address Matched +1622639699922018101811095847688708,"4, Woollen Way",Headcorn,,TN27 9BF,448937578,B,B,89,91,House,Mid-Terrace,2018-10-18,E07000110,E14000700,Kent,2018-10-18,new dwelling,92,94,50,32.0,0.7,9,0.5,63.0,63.0,167.0,168.0,94.0,52.0,80.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.14 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.21 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"4, Woollen Way, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,NO DATA!,2018-10-18 11:09:58,unknown,15.0,15.0,10093304407.0,Address Matched +175623740832008102904501084268396,"78, Linden Road",Coxheath,,ME17 4RA,4664343568,E,D,50,66,House,Semi-Detached,2008-10-28,E07000110,E14000804,Kent,2008-10-29,rental (social),44,60,415,285.0,5.3,69,3.6,65.0,37.0,511.0,382.0,243.0,172.0,73.4,dual,Y,NO DATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,25.0,0.0,"From main system, no cylinderstat",Poor,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, partial insulation (assumed)",Average,Average,,,,"Pitched, 100mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Average,Good,Programmer and room thermostat,Poor,Poor,Low energy lighting in 25% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,0.0,N,natural,"78, Linden Road, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1976-1982,2008-10-29 04:50:10,rental (social),,,200003714985.0,Address Matched +1743021489262019082306380346478261,"7, Seymour Drive",Marden,,TN12 9GS,6420806678,B,A,84,94,House,Detached,2019-08-23,E07000110,E14000804,Kent,2019-08-23,new dwelling,85,95,81,17.0,1.6,14,0.4,77.0,77.0,249.0,251.0,99.0,54.0,114.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.22 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"7, Seymour Drive, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,NO DATA!,2019-08-23 06:38:03,unknown,10.0,10.0,10094441053.0,Address Matched +844289481212012112221570793229006,"41, Horseshoes Lane",Langley,,ME17 3JY,615132078,D,B,64,87,House,Semi-Detached,2012-11-22,E07000110,E14000700,Kent,2012-11-22,marketed sale,61,87,216,57.0,3.5,42,1.0,46.0,46.0,585.0,422.0,106.0,71.0,83.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"41, Horseshoes Lane, Langley",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2012-11-22 21:57:07,owner-occupied,8.0,8.0,200003697695.0,Address Matched +1471715657712016081616092696960448,"80, Tonbridge Road",,,ME16 8SL,4892766478,E,B,53,83,House,End-Terrace,2016-08-16,E07000110,E14000804,Kent,2016-08-16,marketed sale,46,79,337,102.0,4.8,59,1.5,87.0,54.0,846.0,476.0,139.0,82.0,80.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,2.0,4.0,4.0,38.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, mains gas",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 38% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,1.93,,N,natural,"80, Tonbridge Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2016-08-16 16:09:26,owner-occupied,,,200003668197.0,Address Matched +ac71a560551111fe63fabd98178519f96c8a7a92077fa74d223bd1117e8e5491,FLAT 4,BURDOCK HOUSE,NORTHUMBERLAND ROAD,ME15 7TX,10001639045,E,C,54,76,Flat,Detached,2021-06-29,E07000110,E14000700,Kent,2021-07-01,ECO assessment,51,78,358,155.0,3.8,63,1.6,114.0,57.0,714.0,322.0,103.0,86.0,61.0,Single,Y,00,N,,,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,0.0,0.0,From main system,Good,Good,(another dwelling below),,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Average,Average,"Room heaters, electric",,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,unheated corridor,6.0,2.75,0.0,N,natural,"FLAT 4, BURDOCK HOUSE, NORTHUMBERLAND ROAD",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2021-07-01 16:30:50,Rented (social),8.0,,200003714120.0,Energy Assessor +888214519222013040215021425908327,"4, Coppice View",Weavering,,ME14 5TX,2283145078,D,C,62,80,House,Detached,2013-03-20,E07000110,E14000700,Kent,2013-04-02,assessment for green deal,65,84,208,97.0,4.0,34,1.7,65.0,65.0,816.0,609.0,133.0,75.0,119.0,dual,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,6.0,6.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, wood logs",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"4, Coppice View, Weavering",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2013-04-02 15:02:14,owner-occupied,15.0,15.0,200003689691.0,Address Matched +1769755009642019120216412863812918,"28a, Courtlands",Teston,,ME18 5AS,9630308678,C,B,69,81,House,Detached,2019-11-29,E07000110,E14000804,Kent,2019-12-02,marketed sale,64,77,197,115.0,4.2,35,2.5,158.0,79.0,649.0,611.0,126.0,82.0,121.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,6.0,6.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"28a, Courtlands, Teston",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2019-12-02 16:41:28,owner-occupied,,,200003661948.0,Address Matched +1329921739262018032719032926238248,3 Rock Cottages,The Street,Ulcombe,ME17 1DT,4290366378,E,A,44,107,House,Mid-Terrace,2018-03-27,E07000110,E14000700,Kent,2018-03-27,marketed sale,29,81,687,144.0,6.3,102,1.1,49.0,49.0,961.0,564.0,153.0,86.0,62.0,dual,N,NODATA!,,,2401.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,100.0,1.0,"Electric immersion, off-peak",Average,Poor,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, 200 mm loft insulation",Good,Good,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,NO DATA!,,,,N,natural,"3 Rock Cottages, The Street, Ulcombe",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2018-03-27 19:03:29,rental (private),,,200003701215.0,Address Matched +1601475489942018011821371054589588,Le Havre,Heath Road,Boughton Monchelsea,ME17 4HR,3909885578,D,C,60,77,House,Detached,2018-01-18,E07000110,E14000804,Kent,2018-01-18,marketed sale,51,70,244,140.0,7.4,44,4.3,124.0,90.0,1229.0,966.0,181.0,77.0,168.0,Single,Y,NODATA!,,,2107.0,100.0,double glazing installed before 2002,Normal,1.0,8.0,8.0,62.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 62% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"Le Havre, Heath Road, Boughton Monchelsea",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2018-01-18 21:37:10,owner-occupied,,,200003674210.0,Address Matched +1782537954512020020507083829000564,"9, Sandy Mount",Bearsted,,ME14 4PJ,5434498678,D,C,60,79,House,Detached,2020-02-04,E07000110,E14000700,Kent,2020-02-05,marketed sale,52,74,259,129.0,5.9,46,3.0,100.0,100.0,854.0,691.0,277.0,97.0,128.0,Unknown,Y,NODATA!,,,2504.0,100.0,"double glazing, unknown install date",Normal,0.0,6.0,6.0,86.0,0.0,"From main system, no cylinder thermostat",Poor,Poor,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, 270 mm loft insulation",Good,Good,"Warm air, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 86% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"9, Sandy Mount, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2020-02-05 07:08:38,owner-occupied,,,200003693763.0,Address Matched +1024310879922013101417094055148217,"77a, College Road",,,ME15 6TF,1579705178,C,B,69,81,House,Semi-Detached,2013-10-14,E07000110,E14000804,Kent,2013-10-14,assessment for green deal,67,79,164,96.0,3.7,31,2.2,96.0,62.0,661.0,592.0,89.0,88.0,119.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,5.0,4.0,45.0,0.0,"From main system, plus solar",Very Good,Very Good,"Suspended, insulated",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 45% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"77a, College Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2013-10-14 17:09:40,owner-occupied,11.0,5.0,200003665846.0,Address Matched +277944992132019121917114857968298,Flat 5 Upnor House,Drawbridge Close,,ME15 7XD,9877241668,C,C,77,77,Flat,Detached,2019-12-19,E07000110,E14000700,Kent,2019-12-19,rental (social),80,80,171,171.0,1.3,30,1.3,39.0,39.0,248.0,248.0,64.0,64.0,42.0,Single,Y,2nd,Y,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,100.0,0.0,From main system,Good,Good,(another dwelling below),NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,6.98,,,N,natural,"Flat 5 Upnor House, Drawbridge Close",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1996-2002,2019-12-19 17:11:48,rental (social),,,10022896679.0,Address Matched +ac8dc6e31d32dd559c934fb315cc6c42643f0979d06e853d62653392678a7255,29 ELLIS FIELD,OTHAM,,ME15 8YL,10001493301,B,A,85,96,House,Semi-Detached,2021-08-04,E07000110,E14000804,Kent,2021-08-04,new dwelling,88,99,76,-3.0,1.2,13,0.0,72.0,72.0,204.0,204.0,71.0,43.0,88.0,standard tariff,,,N,,,100.0,,,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.18 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.39,,,,"29 ELLIS FIELD, OTHAM",Maidstone,Maidstone and The Weald,OTHAM,2021,2021-08-04 08:51:49,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,11.0,,10094440502.0,Address Matched +1402753179922016011407231821738645,"27, Silver Tree Close",,,ME5 9ST,4278771478,C,B,73,82,House,End-Terrace,2015-12-17,E07000110,E14000700,Kent,2016-01-14,FiT application,68,77,167,110.0,4.4,29,2.9,83.0,83.0,780.0,742.0,149.0,93.0,150.0,Single,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,6.0,6.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"27, Silver Tree Close",Maidstone,Faversham and Mid Kent,CHATHAM,England and Wales: 1991-1995,2016-01-14 07:23:18,owner-occupied,,,200003709226.0,Address Matched +1552819719922017061612243792868333,6 Burgess Fields,Lenham Heath,,ME17 2DZ,3970142578,B,A,82,99,House,Detached,2017-06-16,E07000110,E14000700,Kent,2017-06-16,new dwelling,84,99,82,-2.0,3.1,14,-0.1,96.0,96.0,586.0,586.0,239.0,147.0,222.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Poor,Good,Average thermal transmittance 0.12 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.28 W/m-¦K,Very Good,Very Good,"Room heaters, wood logs",,,Average thermal transmittance 0.16 W/m-¦K,Good,Good,"Air source heat pump, underfloor, electric",Good,Very Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"6 Burgess Fields, Lenham Heath",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2017-06-16 12:24:37,unknown,25.0,25.0,10093304823.0,Address Matched +1488258889142018092708042441782338,"2, Oast View",Sutton Valence,,ME17 3FS,9129387478,B,A,85,92,House,Detached,2018-09-27,E07000110,E14000700,Kent,2018-09-27,new dwelling,84,90,81,42.0,2.7,14,1.4,96.0,96.0,419.0,421.0,110.0,62.0,190.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.14 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.26 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and underfloor heating, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"2, Oast View, Sutton Valence",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2018-09-27 08:04:24,owner-occupied,10.0,10.0,10093303749.0,Address Matched +664793057952014111313285691949687,"12, The Spires",,,ME16 0JE,6788719868,C,B,79,83,House,Detached,2014-11-13,E07000110,E14000804,Kent,2014-11-13,FiT application,81,84,88,70.0,2.9,15,2.3,87.0,87.0,864.0,790.0,283.0,188.0,191.0,Single,N,NODATA!,,,2207.0,100.0,double glazing installed during or after 2002,More Than Typical,1.0,7.0,7.0,95.0,0.0,From main system,Poor,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Air source heat pump, underfloor, electric",Average,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in 95% of fixed outlets,Very Good,Very Good,electricity (not community),0.0,NO DATA!,,,,,natural,"12, The Spires",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2014-11-13 13:28:56,owner-occupied,43.0,41.0,200003657056.0,Address Matched +1615875880212018031615053799980450,"13, Harling Close",Boughton Monchelsea,,ME17 4UX,4081096578,C,B,74,86,House,Detached,2018-03-16,E07000110,E14000700,Kent,2018-03-16,marketed sale,71,84,165,81.0,3.3,29,1.7,76.0,76.0,522.0,477.0,150.0,75.0,115.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,7.0,7.0,100.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, mains gas",,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"13, Harling Close, Boughton Monchelsea",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2003-2006,2018-03-16 15:05:37,owner-occupied,,,10022892707.0,Address Matched +3872779222018052207391036598688,"7, Clock House Rise",Coxheath,,ME17 4GS,8350776468,C,B,79,81,Flat,Mid-Terrace,2018-05-21,E07000110,E14000804,Kent,2018-05-22,rental (private),83,84,129,116.0,1.3,22,1.2,93.0,46.0,192.0,198.0,87.0,87.0,57.0,Unknown,Y,Ground,N,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,0.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,unheated corridor,8.6,,,N,natural,"7, Clock House Rise, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2018-05-22 07:39:10,rental (private),,,10022900527.0,Address Matched +175868330002008102716455452382438,"3, Grecian Street",,,ME14 2TT,8083333568,E,D,48,55,House,Mid-Terrace,2008-10-27,E07000110,E14000804,Kent,2008-10-27,marketed sale,42,47,447,389.0,5.5,74,4.8,58.0,33.0,662.0,603.0,123.0,103.0,74.0,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,4.0,4.0,25.0,1.0,From main system,Good,Good,"Suspended, insulated",,,Fully double glazed,Average,Average,,,,"Room heaters, mains gas",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 25% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.51,0.0,N,natural,"3, Grecian Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2008-10-27 16:45:54,owner-occupied,,,200003703290.0,Address Matched +ac9cc86858319c41001f9ef5dca20d0bfa9d91ba6aa1867f59ca71d3153a1ca7,24 Pearwood Road,,,ME16 9FY,10001438746,B,A,84,96,House,Semi-Detached,2021-09-23,E07000110,E14000804,Kent,2021-09-23,new dwelling,86,98,83,1.0,1.3,15,0.0,71.0,71.0,207.0,208.0,80.0,45.0,87.0,standard tariff,,,N,,,100.0,,,,,,100.0,0.0,"From main system, waste water heat recovery",Very Good,Very Good,Average thermal transmittance 0.18 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.15 W/m-¦K,Good,Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.32,,,,24 Pearwood Road,Maidstone,Maidstone and The Weald,ALLINGTON,2021,2021-09-23 10:30:02,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,26.0,,10095449712.0,Energy Assessor +55687469232012110213083572068193,"136, Clifford Way",,,ME16 8GF,6352156568,B,B,82,82,Flat,Mid-Terrace,2012-11-02,E07000110,E14000804,Kent,2012-11-02,marketed sale,87,87,92,92.0,0.9,17,0.9,33.0,33.0,189.0,189.0,65.0,65.0,50.0,Unknown,Y,1st,N,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,"To external air, insulated",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,heated corridor,,,0.0,,natural,"136, Clifford Way",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2012-11-02 13:08:35,owner-occupied,6.0,6.0,10022896149.0,Address Matched +175949940222008102910042593318088,"40, Brewer Street",,,ME14 1RY,8943443568,D,D,56,65,House,Mid-Terrace,2008-10-29,E07000110,E14000804,Kent,2008-10-29,rental (private),50,58,356,289.0,4.8,60,3.9,66.0,36.0,623.0,522.0,62.0,62.0,80.68,Unknown,Y,NO DATA!,,,2106.0,95.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,17.0,2.0,From main system,Good,Very Good,"Suspended, no insulation (assumed)",,,Partial double glazing,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 17% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,0.0,N,natural,"40, Brewer Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2008-10-29 10:04:25,rental (private),,,200003697612.0,Address Matched +298861580942009060516541462210258,"27, Bridgeside Mews",,,ME15 6TB,3948882668,B,B,84,86,House,End-Terrace,2009-06-05,E07000110,E14000804,Kent,2009-06-05,new dwelling,84,85,113,104.0,1.6,19,1.5,78.0,44.0,202.0,206.0,88.0,88.0,85.2,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,,From main system,Very Good,Very Good,Average thermal transmittance 0.20 W/m??K,Very Good,Very Good,Fully double glazed,Good,Good,Average thermal transmittance 0.30 W/m??K,Good,Good,,,,Average thermal transmittance 0.15 W/m??K,Very Good,Very Good,"Boiler and radiators, mains gas",Very Good,Very Good,Time and temperature zone control,Good,Good,Low energy lighting in 25% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,,,NO DATA!,"27, Bridgeside Mews",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2009-06-05 16:54:14,,,,10014308037.0,Address Matched +acb590d878db90401897141f3a79349a9d4a75ba50a0424b4df659ddd8757cac,FLAT 1,RAYLEIGH HOUSE,KINGS REACH,ME15 7QR,10001680183,E,C,50,72,Flat,Detached,2021-06-29,E07000110,E14000700,Kent,2021-07-01,ECO assessment,47,73,394,194.0,4.2,69,2.1,114.0,57.0,820.0,402.0,90.0,91.0,61.0,Single,Y,00,N,,,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,0.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Average,Average,"Room heaters, electric",,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,unheated corridor,6.0,2.75,0.0,N,natural,"FLAT 1, RAYLEIGH HOUSE, KINGS REACH",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2021-07-01 13:51:47,Rented (social),8.0,,200003713938.0,Energy Assessor +68267149302014010216550646440228,"3, Fishers Road",Staplehurst,,TN12 0DD,8349744468,D,B,62,87,House,Mid-Terrace,2014-01-02,E07000110,E14000804,Kent,2014-01-02,marketed sale,59,87,230,57.0,3.5,44,0.9,48.0,48.0,620.0,387.0,151.0,75.0,80.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,100.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"3, Fishers Road, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1967-1975,2014-01-02 16:55:06,owner-occupied,10.0,10.0,200003679337.0,Address Matched +770337338352012080112502190720390,"3, Bower Walk",Staplehurst,,TN12 0LU,3073807968,E,B,39,90,House,Mid-Terrace,2012-07-31,E07000110,E14000804,Kent,2012-08-01,marketed sale,43,93,398,29.0,4.5,74,0.4,40.0,40.0,599.0,292.0,419.0,61.0,61.0,Single,Y,NODATA!,,,2602.0,98.0,"double glazing, unknown install date",Normal,0.0,3.0,1.0,88.0,0.0,"Electric immersion, standard tariff",Very Poor,Very Poor,"Suspended, no insulation (assumed)",,,Mostly double glazing,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,Portable electric heaters (assumed),,,"Pitched, 150 mm loft insulation",Good,Good,"Room heaters, mains gas",Poor,Poor,Appliance thermostats,Good,Good,Low energy lighting in 88% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"3, Bower Walk, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1950-1966,2012-08-01 12:50:21,owner-occupied,8.0,7.0,200003678131.0,Address Matched +1799718492262020052712411040768080,"9, Bramshott Close",,,ME16 0RX,8469910778,D,B,62,82,Bungalow,Detached,2020-05-26,E07000110,E14000804,Kent,2020-05-27,marketed sale,57,79,280,116.0,3.3,49,1.4,93.0,54.0,532.0,445.0,125.0,74.0,66.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,29.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 29% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"9, Bramshott Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2020-05-27 12:41:10,owner-occupied,,,200003659499.0,Address Matched +781838199442012050219335192720128,"14, Waterlow Road",,,ME14 2TR,469097968,D,B,66,86,House,Mid-Terrace,2012-05-02,E07000110,E14000804,Kent,2012-05-02,marketed sale,68,89,189,60.0,3.1,33,0.9,58.0,59.0,602.0,395.0,88.0,63.0,95.0,dual,Y,NODATA!,,,2106.0,30.0,double glazing installed during or after 2002,Normal,1.0,6.0,6.0,92.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Some double glazing,Poor,Poor,"Sandstone, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 92% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"14, Waterlow Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2012-05-02 19:33:51,owner-occupied,12.0,11.0,200003703099.0,Address Matched +1245002024352014120419530796249530,Flat 6 Bedford House,"3, Bedford Place",,ME16 8JB,5068460378,D,D,62,62,Flat,NO DATA!,2014-11-29,E07000110,E14000804,Kent,2014-12-04,new dwelling,44,44,407,407.0,4.2,69,4.2,40.0,40.0,525.0,525.0,121.0,121.0,61.0,24 hour,,ground floor,,,,,NO DATA!,NO DATA!,,,,,0.0,"Electric immersion, off-peak",Average,Poor,Average thermal transmittance 0.60 W/m-¦K,Poor,Poor,Full secondary glazing,Good,Good,Average thermal transmittance 0.50 W/m-¦K,Good,Good,,,,(other premises above),,,Electric storage heaters,Average,Very Poor,Celect-type controls,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"Flat 6 Bedford House, 3, Bedford Place",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2014-12-04 19:53:07,owner-occupied,1.0,1.0,10091193473.0,Address Matched +491442739342010052711411478602838,4a Belvedere House,Connaught Close,,ME15 9HX,3315936768,C,C,74,75,Flat,Mid-Terrace,2010-05-27,E07000110,E14000700,Kent,2010-05-27,rental (social),71,72,220,213.0,2.4,37,2.4,58.0,35.0,381.0,385.0,87.0,87.0,66.4,Single,Y,2nd,Y,4.0,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,33.0,0.0,From main system,Very Good,Very Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Flat, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 33% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.31,0.0,N,natural,"4a Belvedere House, Connaught Close",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2010-05-27 11:41:14,rental (social),,,200003683493.0,Address Matched +1096358132432014022613551806278905,"7, Redstart Avenue",,,ME15 6ZY,3566910278,B,B,84,84,House,Semi-Detached,2014-02-26,E07000110,E14000804,Kent,2014-02-26,new dwelling,87,87,73,73.0,1.6,14,1.6,62.0,62.0,295.0,295.0,90.0,90.0,113.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.10 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"7, Redstart Avenue",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2014-02-26 13:55:18,NO DATA!,14.0,14.0,10014315242.0,Address Matched +1420124188332017080410023603078903,"42, Bunyard Way",Allington,,ME16 0BD,8323992478,B,A,85,94,House,Detached,2017-08-04,E07000110,E14000804,Kent,2017-08-04,new dwelling,86,95,80,15.0,1.6,14,0.3,69.0,69.0,250.0,251.0,103.0,56.0,114.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.14 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.26 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"42, Bunyard Way, Allington",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2017-08-04 10:02:36,owner-occupied,14.0,14.0,10091195415.0,Address Matched +273297712242020030417113361100548,"8, The Laurels",Western Road,,ME16 8PW,261111668,D,A,68,92,House,Mid-Terrace,2020-03-04,E07000110,E14000804,Kent,2020-03-04,marketed sale,66,94,248,18.0,2.2,44,0.2,65.0,43.0,311.0,242.0,167.0,63.0,51.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,50.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"8, The Laurels, Western Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2020-03-04 17:11:33,owner-occupied,,,200003656646.0,Address Matched +1774168639642019122016061366812508,29 Wrens Cross,Upper Stone Street,,ME15 6YU,9659438678,C,C,80,80,Flat,Mid-Terrace,2019-12-20,E07000110,E14000804,Kent,2019-12-20,new dwelling,86,86,101,101.0,1.1,17,1.1,52.0,52.0,161.0,161.0,276.0,276.0,66.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,"Electric immersion, standard tariff",Very Poor,Poor,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.22 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,"Room heaters, electric",Very Poor,Poor,Appliance thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"29 Wrens Cross, Upper Stone Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2019-12-20 16:06:13,unknown,24.0,24.0,10094440963.0,Address Matched +1410655059022016020800442732648326,"2, Meadowdown",Weavering,,ME14 5TN,2385532478,D,B,58,89,House,End-Terrace,2016-02-04,E07000110,E14000700,Kent,2016-02-08,marketed sale,52,88,324,58.0,3.8,57,0.7,91.0,45.0,612.0,345.0,179.0,70.0,66.0,Single,Y,NODATA!,,,2103.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,0.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, partial insulation (assumed)",Average,Average,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Room thermostat only,Poor,Poor,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"2, Meadowdown, Weavering",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1976-1982,2016-02-08 00:44:27,owner-occupied,,,200003688329.0,Address Matched +251538528312009031410080001910753,"28, Merton Road",Bearsted,,ME15 8LJ,7321819568,D,C,67,77,House,End-Terrace,2009-03-14,E07000110,E14000700,Kent,2009-03-14,rental (private),62,73,297,211.0,2.9,50,2.1,44.0,28.0,422.0,310.0,80.0,80.0,58.5,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,42.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 42% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,0.0,N,natural,"28, Merton Road, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2009-03-14 10:08:00,rental (private),,,200003685984.0,Address Matched +672699678932011090112163685768309,"8, The Boatyard",Tovil,,ME15 6GY,7935379868,B,B,81,82,House,Mid-Terrace,2011-08-31,E07000110,E14000804,Kent,2011-09-01,new dwelling,82,83,92,88.0,2.5,18,2.4,89.0,59.0,436.0,428.0,39.0,48.0,54.95,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,0.0,,"From main system, plus solar",Very Good,Very Good,Average thermal transmittance 0.18 W/m?K,Very Good,Very Good,Fully double glazed,Good,Good,Average thermal transmittance 0.24 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.17 W/m?K,Good,Good,"Boiler and underfloor heating, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.37,,,NO DATA!,"8, The Boatyard, Tovil",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2011-09-01 12:16:36,,0.0,0.0,10014306503.0,Address Matched +232345379062013090320005667878277,Chaucers,Upper Street,Hollingbourne,ME17 1UW,7626777568,F,D,37,62,House,Detached,2013-09-03,E07000110,E14000700,Kent,2013-09-03,marketed sale,33,55,367,209.0,9.3,71,5.4,130.0,66.0,1623.0,1185.0,137.0,77.0,131.0,Single,Y,NODATA!,,,2106.0,50.0,"double glazing, unknown install date",Normal,1.0,7.0,7.0,0.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Partial double glazing,Poor,Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, dual fuel (mineral and wood)",,,"Roof room(s), no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"Chaucers, Upper Street, Hollingbourne",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2013-09-03 20:00:56,owner-occupied,11.0,0.0,200003701875.0,Address Matched +308492440922009121322491223098781,"15, Jasmine Court",,,ME16 8BZ,8232453668,B,B,82,83,House,Mid-Terrace,2009-12-11,E07000110,E14000804,Kent,2009-12-13,marketed sale,81,81,130,127.0,2.0,22,1.9,68.0,49.0,268.0,271.0,116.0,116.0,92.34,Unknown,Y,NO DATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,63.0,0.0,From main system,Very Good,Very Good,"Solid, insulated (assumed)",,,Fully double glazed,Good,Good,"Timber frame, as built, insulated (assumed)",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 63% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.36,0.0,N,natural,"15, Jasmine Court",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2009-12-13 22:49:12,owner-occupied,,,10014306568.0,Address Matched +878041460212013013017152697770701,"3, Cranbrook Close",,,ME15 8ST,7181074078,D,C,61,77,Bungalow,Semi-Detached,2013-01-30,E07000110,E14000700,Kent,2013-01-30,marketed sale,57,74,240,129.0,3.8,46,2.1,85.0,47.0,617.0,568.0,119.0,76.0,83.0,Single,Y,NODATA!,,,2104.0,75.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,17.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Partial double glazing,Poor,Poor,"Cavity wall, filled cavity",Good,Good,,,,"Roof room(s), limited insulation (assumed)",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 17% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"3, Cranbrook Close",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2013-01-30 17:15:26,owner-occupied,12.0,2.0,200003685443.0,Address Matched +1825497019252020091519430920900176,"31, Shelley Road",,,ME16 8NS,1624902778,C,B,71,84,House,Semi-Detached,2020-09-15,E07000110,E14000804,Kent,2020-09-15,marketed sale,71,84,174,86.0,3.1,28,1.5,82.0,82.0,622.0,527.0,88.0,58.0,111.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Suspended, insulated",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, wood logs",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"31, Shelley Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2020-09-15 19:43:09,owner-occupied,,,200003656042.0,Address Matched +1320955489262015052109510835698175,"60, Roseholme",,,ME16 8DR,7308895378,C,C,75,78,Maisonette,Mid-Terrace,2015-05-21,E07000110,E14000804,Kent,2015-05-21,marketed sale,76,81,176,140.0,1.7,31,1.3,37.0,37.0,322.0,255.0,93.0,94.0,54.0,Single,Y,1st,Y,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,(another dwelling below),NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 270 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,no corridor,,,,N,natural,"60, Roseholme",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2015-05-21 09:51:08,owner-occupied,,,200003656356.0,Address Matched +47901610962008121608024685458708,Flat 21,Bellwood Court,Sutton Road,ME15 8RB,856175568,B,B,85,86,Flat,Semi-Detached,2008-12-15,E07000110,E14000700,Kent,2008-12-16,new dwelling,84,85,121,114.0,1.2,20,1.2,48.0,31.0,163.0,165.0,70.0,70.0,62.96,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,3.0,,From main system,Very Good,Very Good,Average thermal transmittance = 0.18 W/m?K,Very Good,Very Good,Fully double glazed,Good,Good,Average thermal transmittance = 0.29 W/m?K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 43% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,,,NO DATA!,"Flat 21, Bellwood Court, Sutton Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2008-12-16 08:02:46,,7.0,3.0,10014306266.0,Address Matched +1635682739942018052922451858882918,"64, Reculver Walk",,,ME15 8QW,6974138578,C,B,76,89,House,Mid-Terrace,2018-05-29,E07000110,E14000700,Kent,2018-05-29,non marketed sale,75,89,159,55.0,2.1,28,0.8,69.0,53.0,351.0,329.0,99.0,67.0,76.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,71.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 71% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"64, Reculver Walk",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2018-05-29 22:45:18,owner-occupied,,,200003725772.0,Address Matched +425963719262010012912091211588540,"237b, Queens Road",,,ME16 0LF,4177181768,E,C,54,69,Bungalow,Detached,2010-01-28,E07000110,E14000804,Kent,2010-01-29,marketed sale,49,64,333,230.0,6.0,55,4.2,108.0,60.0,822.0,604.0,167.0,124.0,107.87,dual,Y,NO DATA!,,,2106.0,,not defined,Much More Than Typical,1.0,6.0,6.0,20.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Multiple glazing throughout,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Flat, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 20% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.41,0.0,N,natural,"237b, Queens Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2010-01-29 12:09:12,owner-occupied,,,200003657075.0,Address Matched +133080481952019092110405791210753,"73b, Lower Boxley Road",,,ME14 2UU,7355110568,C,B,73,81,Flat,Mid-Terrace,2019-09-21,E07000110,E14000804,Kent,2019-09-21,rental (private),77,87,218,121.0,1.3,38,0.7,34.0,34.0,250.0,146.0,77.0,70.0,35.0,Single,Y,1st,N,,2107.0,,not defined,Much Less Than Typical,0.0,2.0,2.0,100.0,0.0,From main system,Good,Good,(another dwelling below),NO DATA!,,Multiple glazing throughout,Good,Good,"Sandstone or limestone, as built, no insulation (assumed)",Poor,Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,4.1,,,N,natural,"73b, Lower Boxley Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2019-09-21 10:40:57,rental (private),,,10022897065.0,Address Matched +417143499062010010710280611138310,"16, Highcroft Green",,,ME15 9PN,1171911768,C,C,71,72,House,Mid-Terrace,2010-01-07,E07000110,E14000700,Kent,2010-01-07,rental (social),67,67,243,239.0,2.9,41,2.8,54.0,36.0,450.0,454.0,89.0,89.0,70.54,Single,Y,NO DATA!,,,2106.0,0.0,not defined,More Than Typical,1.0,3.0,3.0,50.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"System built, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.39,0.0,N,natural,"16, Highcroft Green",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2010-01-07 10:28:06,rental (social),,,200003723636.0,Address Matched +666517132302020031114161586909408,"57, River Bank Close",,,ME15 7RZ,335239868,C,C,74,77,Flat,Semi-Detached,2020-03-10,E07000110,E14000804,Kent,2020-03-11,marketed sale,74,77,176,152.0,2.2,31,1.9,103.0,63.0,330.0,297.0,118.0,118.0,70.0,Unknown,Y,2nd,Y,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,36.0,0.0,From main system,Good,Good,(another dwelling below),NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 36% of fixed outlets,Average,Average,mains gas (not community),0.0,unheated corridor,7.97,,,N,natural,"57, River Bank Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2020-03-11 14:16:15,owner-occupied,,,200003725868.0,Address Matched +254502119442019052320514154912378,"9, Fullers Close",Bearsted,,ME14 4LJ,9469519568,D,C,65,78,House,Semi-Detached,2019-05-23,E07000110,E14000700,Kent,2019-05-23,marketed sale,60,73,223,134.0,4.2,40,2.6,96.0,71.0,709.0,648.0,103.0,70.0,103.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,1.0,5.0,5.0,65.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 65% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"9, Fullers Close, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2019-05-23 20:51:41,owner-occupied,,,200003692360.0,Address Matched +658375424412013042908035197270382,"25, Birkdale Court",Buckland Road,,ME16 0UH,3287478868,E,C,54,76,Flat,Semi-Detached,2013-04-29,E07000110,E14000804,Kent,2013-04-29,assessment for green deal,57,59,336,319.0,2.7,59,2.6,59.0,32.0,413.0,216.0,215.0,100.0,45.0,Single,N,2nd,Y,,2602.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,0.0,0.0,"Electric immersion, standard tariff",Very Poor,Very Poor,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Room heaters, electric",Very Poor,Very Poor,Appliance thermostats,Good,Good,No low energy lighting,Very Poor,Very Poor,electricity (not community),0.0,unheated corridor,5.1,,0.0,,natural,"25, Birkdale Court, Buckland Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2013-04-29 08:03:51,owner-occupied,7.0,0.0,200003667050.0,Address Matched +857940509452012112617034092029104,"1, Derby Road",,,ME15 7JA,1475923078,D,B,66,85,House,Semi-Detached,2012-11-09,E07000110,E14000700,Kent,2012-11-26,rental (social),65,85,194,68.0,3.2,37,1.2,96.0,48.0,509.0,399.0,106.0,71.0,87.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"1, Derby Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2012-11-26 17:03:40,rental (social),9.0,0.0,200003711995.0,Address Matched +1320519185532015051217560835978608,"4, Atwater Court",Lenham,,ME17 2PW,8855695378,E,A,49,101,Bungalow,Mid-Terrace,2015-05-11,E07000110,E14000700,Kent,2015-05-12,marketed sale,46,76,347,130.0,5.6,59,2.1,113.0,65.0,1014.0,618.0,214.0,94.0,95.0,Unknown,N,NODATA!,,,2602.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,12.0,0.0,"Electric immersion, off-peak",Poor,Poor,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,"Roof room(s), insulated (assumed)",Good,Good,"Room heaters, electric",Very Poor,Poor,Appliance thermostats,Good,Good,Low energy lighting in 12% of fixed outlets,Poor,Poor,electricity (not community),0.0,NO DATA!,,,,N,natural,"4, Atwater Court, Lenham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2015-05-12 17:56:08,owner-occupied,,,200003711163.0,Address Matched +875414049262013012600203644248017,"67, Cross Keys",Bearsted,,ME14 4HR,1401454078,C,A,70,92,Bungalow,Mid-Terrace,2013-01-24,E07000110,E14000700,Kent,2013-01-26,rental (social),73,96,208,5.0,1.6,40,0.1,41.0,26.0,287.0,252.0,100.0,63.0,41.0,Single,Y,NODATA!,,,2107.0,100.0,double glazing installed before 2002,Normal,0.0,2.0,2.0,40.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 40% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"67, Cross Keys, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2013-01-26 00:20:36,rental (social),5.0,2.0,200003694897.0,Address Matched +990756529962013081507013222548467,"7, Roman Heights",,,ME14 5JA,6280262178,D,B,65,84,House,Detached,2013-08-14,E07000110,E14000804,Kent,2013-08-15,marketed sale,61,84,198,73.0,4.1,38,1.6,82.0,58.0,677.0,475.0,137.0,81.0,107.0,Unknown,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,58.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 25 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 58% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"7, Roman Heights",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2013-08-15 07:01:32,owner-occupied,12.0,7.0,200003716662.0,Address Matched +891531649962013030115325305218587,Flat 1,"45, Upper Stone Street",,ME15 6EU,8096465078,F,C,37,76,Flat,Detached,2013-02-19,E07000110,E14000804,Kent,2013-03-01,marketed sale,44,58,664,466.0,2.8,118,2.0,35.0,19.0,506.0,177.0,180.0,75.0,24.0,Unknown,N,1st,N,,2603.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,0.0,0.0,"Electric immersion, standard tariff",Very Poor,Very Poor,(other premises below),,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Poor,Poor,,,,(another dwelling above),,,"Room heaters, electric",Very Poor,Very Poor,Programmer and appliance thermostats,Good,Good,No low energy lighting,Very Poor,Very Poor,electricity (not community),0.0,unheated corridor,6.68,,0.0,,natural,"Flat 1, 45, Upper Stone Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2013-03-01 15:32:53,owner-occupied,3.0,0.0,200003729542.0,Address Matched +1368758808012017051807212693930633,"12, Broadfield Road",,,ME15 6BT,6343839378,C,B,75,83,Bungalow,Detached,2017-05-17,E07000110,E14000804,Kent,2017-05-18,marketed sale,72,79,152,106.0,3.6,27,2.5,98.0,76.0,623.0,627.0,109.0,109.0,134.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,2.0,5.0,5.0,71.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 71% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"12, Broadfield Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2017-05-18 07:21:26,owner-occupied,,,200003676380.0,Address Matched +410404742712009120918314807019477,"14, Joy Wood",Boughton Monchelsea,,ME17 4JY,4731270768,D,C,68,75,House,Detached,2009-12-09,E07000110,E14000700,Kent,2009-12-09,rental (private),64,71,234,186.0,4.0,39,3.2,106.0,56.0,529.0,459.0,149.0,122.0,122.43,Single,Y,NO DATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,6.0,6.0,9.0,0.0,From main system,Good,Good,"Solid, limited insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 9% of fixed outlets,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.32,0.0,N,natural,"14, Joy Wood, Boughton Monchelsea",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1996-2002,2009-12-09 18:31:48,rental (private),,,200003724136.0,Address Matched +1387911349262015112016164810308325,Hillside,Headcorn Road,Grafty Green,ME17 2AP,2169470478,D,B,62,90,Bungalow,Detached,2015-11-20,E07000110,E14000700,Kent,2015-11-20,FiT application,42,73,479,197.0,4.2,81,1.7,40.0,40.0,535.0,336.0,134.0,74.0,52.0,dual,N,NODATA!,,,2402.0,100.0,double glazing installed during or after 2002,Normal,1.0,3.0,3.0,100.0,0.0,"Electric immersion, off-peak",Average,Poor,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Timber frame, with additional insulation",Good,Good,Portable electric heaters (assumed),,,"Pitched, 100 mm loft insulation",Average,Average,Electric storage heaters,Average,Very Poor,Automatic charge control,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,NO DATA!,,,,N,natural,"Hillside, Headcorn Road, Grafty Green",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2015-11-20 16:16:48,owner-occupied,,,200003703673.0,Address Matched +588609397912011020422071095090085,"81, Allen Street",,,ME14 5AH,542753868,D,D,60,62,House,Mid-Terrace,2011-02-04,E07000110,E14000804,Kent,2011-02-04,marketed sale,63,65,292,278.0,3.7,42,3.5,75.0,48.0,718.0,699.0,128.0,128.0,89.31,Single,Y,NO DATA!,,,2106.0,50.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,44.0,2.0,From main system,Very Good,Very Good,"Suspended, no insulation (assumed)",,,Partial double glazing,Poor,Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 44% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.48,0.0,N,natural,"81, Allen Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2011-02-04 22:07:10,owner-occupied,,,200003704940.0,Address Matched +767945899262017012111240636408173,Sunnydene,Park Road,Marden,TN12 9LG,7356986968,E,C,40,80,Bungalow,Detached,2017-01-20,E07000110,E14000804,Kent,2017-01-21,marketed sale,44,79,428,161.0,5.3,63,1.6,63.0,63.0,1289.0,1115.0,83.0,50.0,85.0,Single,Y,NODATA!,,,2106.0,0.0,not defined,Normal,1.0,3.0,3.0,88.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Single glazed,Very Poor,Very Poor,"Timber frame, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 88% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"Sunnydene, Park Road, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1900-1929,2017-01-21 11:24:06,owner-occupied,,,200003725417.0,Address Matched +589191616932011060300010568068801,Kelsham Farm,Four Oaks Road,Headcorn,TN27 9NY,1178853868,F,E,33,41,House,Detached,2011-06-02,E07000110,E14000700,Kent,2011-06-03,marketed sale,33,39,309,267.0,31.0,63,26.0,248.0,127.0,5684.0,4985.0,201.0,174.0,404.75,dual,N,NODATA!,,,2106.0,0.0,not defined,Normal,2.0,13.0,13.0,4.0,2.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, oil",Average,Average,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 5% of fixed outlets,Very Poor,Very Poor,oil (not community),0.0,NO DATA!,,2.4,0.0,,natural,"Kelsham Farm, Four Oaks Road, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,England and Wales: before 1900,2011-06-03 00:01:05,owner-occupied,42.0,2.0,200003695591.0,Address Matched +597426316212020091615445622900581,"1, Leicester Road",,,ME15 7QA,5191624868,C,B,71,85,House,Semi-Detached,2020-09-14,E07000110,E14000700,Kent,2020-09-16,none of the above,69,83,198,94.0,2.8,35,1.3,79.0,79.0,458.0,427.0,120.0,79.0,79.0,dual,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,90.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 90% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"1, Leicester Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2020-09-16 15:44:56,rental (social),,,200003712822.0,Address Matched +499901019922010061518590307458960,1 Church Cottages,High Street,Yalding,ME18 6HU,6000107768,D,D,60,65,House,Enclosed End-Terrace,2010-06-15,E07000110,E14000804,Kent,2010-06-15,marketed sale,62,67,261,227.0,5.2,38,4.5,72.0,72.0,880.0,781.0,183.0,155.0,104.25,Single,Y,NO DATA!,,,2106.0,0.0,not defined,Normal,1.0,6.0,6.0,100.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Solid brick, with internal insulation",Good,Good,"Room heaters, wood logs",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.81,0.0,N,natural,"1 Church Cottages, High Street, Yalding",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2010-06-15 18:59:03,owner-occupied,,,200003660789.0,Address Matched +644448869222011062020550527108789,"4, Gatcombe Close",,,ME16 0EF,8232677868,D,C,65,71,House,Semi-Detached,2011-06-20,E07000110,E14000804,Kent,2011-06-20,marketed sale,63,70,221,178.0,3.5,42,2.8,82.0,43.0,526.0,456.0,118.0,104.0,82.54,Single,Y,NODATA!,,,2106.0,80.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,10.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Mostly double glazing,Poor,Poor,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 10% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,2.32,0.0,,natural,"4, Gatcombe Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2011-06-20 20:55:05,owner-occupied,10.0,1.0,200003705672.0,Address Matched +510015079502010070719531971700838,"26, Albany Street",,,ME14 5AJ,2514477768,E,E,44,46,House,Mid-Terrace,2010-07-07,E07000110,E14000804,Kent,2010-07-07,marketed sale,48,49,398,391.0,5.9,57,5.8,106.0,54.0,1063.0,1078.0,123.0,123.0,103.83,Single,Y,NO DATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,4.0,4.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 4% of fixed outlets,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.36,0.0,N,natural,"26, Albany Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2010-07-07 19:53:19,owner-occupied,,,200003704994.0,Address Matched +828805619062012090618593341868792,"28, Church Street",Boughton Monchelsea,,ME17 4HW,9436121078,D,B,59,82,House,Semi-Detached,2012-09-06,E07000110,E14000700,Kent,2012-09-06,marketed sale,57,82,279,98.0,3.1,54,1.1,67.0,34.0,530.0,434.0,83.0,55.0,57.0,Single,Y,NODATA!,,,2106.0,40.0,"double glazing, unknown install date",Normal,1.0,3.0,3.0,0.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Partial double glazing,Poor,Poor,"Timber frame, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"28, Church Street, Boughton Monchelsea",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1900-1929,2012-09-06 18:59:33,owner-occupied,8.0,0.0,200003674462.0,Address Matched +1582575039922017101617464514868383,Flat 8,"74a, London Road",,ME16 0DT,8103354578,D,C,68,79,Flat,Semi-Detached,2017-10-16,E07000110,E14000804,Kent,2017-10-16,marketed sale,60,64,504,459.0,1.8,85,1.7,22.0,22.0,171.0,135.0,210.0,111.0,22.0,dual,N,2nd,Y,,2401.0,100.0,double glazing installed before 2002,Normal,0.0,1.0,1.0,100.0,0.0,"Electric immersion, off-peak",Very Poor,Poor,(another dwelling below),NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,Portable electric heaters (assumed),,,"Pitched, insulated (assumed)",Average,Average,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,unheated corridor,7.06,,,N,natural,"Flat 8, 74a, London Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2017-10-16 17:46:45,rental (private),,,200003670320.0,Address Matched +ad6003e643212ef212ea73807cf95de3b5cee553e4c1e587825cd7855375252f,"Flat 3, 2 Holland Road",,,ME14 1UH,10001663580,D,C,56,75,Flat,Semi-Detached,2021-07-21,E07000110,E14000804,Kent,2021-07-21,rental,51,77,387,181.0,3.3,68,1.5,50.0,50.0,583.0,277.0,75.0,76.0,48.0,Single,Y,02,Y,,,86.0,double glazing installed before 2002,Normal,2.0,3.0,3.0,86.0,0.0,From main system,Good,Good,(another dwelling below),,,Mostly double glazing,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 86% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,4.26,2.66,0.0,N,natural,"Flat 3, 2 Holland Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2021-07-21 17:34:27,Rented (private),7.0,,200003728811.0,Address Matched +ad5d8929940e7e56f2b69c66b21e6461b013f396ab66b85625d88769bdae2cfc,128 Wallis Place,Hart Street,,ME16 8FD,9557088468,C,C,80,80,Flat,Mid-Terrace,2021-09-20,E07000110,E14000804,Kent,2021-09-20,rental,84,84,117,117.0,1.2,21,1.2,54.0,54.0,180.0,180.0,105.0,105.0,56.0,Unknown,Y,04,Y,,,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,(another dwelling below),,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Flat, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,heated corridor,,2.32,0.0,N,natural,"128 Wallis Place, Hart Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007-2011,2021-09-20 22:43:24,Rented (private),9.0,,10022900732.0,Energy Assessor +549855829022010100819525740838120,"4, The Medlars",,,ME14 5RZ,2475250868,E,C,49,71,House,Detached,2010-10-07,E07000110,E14000804,Kent,2010-10-08,marketed sale,41,64,346,194.0,8.8,63,5.0,130.0,74.0,1108.0,637.0,234.0,165.0,160.89,Single,Y,NO DATA!,,,2104.0,93.0,secondary glazing,Normal,1.0,8.0,8.0,25.0,1.0,From main system,Average,Good,"Solid, no insulation (assumed)",,,Mostly secondary glazing,Average,Average,"Cavity wall, as built, partial insulation (assumed)",Average,Average,"Room heaters, coal",,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Average,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 25% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.44,0.0,N,natural,"4, The Medlars",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1976-1982,2010-10-08 19:52:57,owner-occupied,,,200003673120.0,Address Matched +333900734452009072716362103910765,Flat 45 Pevensey Court,St. Peters Street,,ME16 0GQ,7556435668,C,C,72,77,Flat,Semi-Detached,2009-03-19,E07000110,E14000804,Kent,2009-07-27,rental (social),67,71,244,215.0,3.2,37,2.9,72.0,54.0,286.0,227.0,161.0,161.0,88.0,dual,N,3rd,Y,4.0,2402.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,66.0,0.0,"Electric immersion, off-peak",Poor,Poor,(other premises below),,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,"Pitched, 150 mm loft insulation",Good,Good,Electric storage heaters,Poor,Very Poor,Automatic charge control,Average,Average,Low energy lighting in 66% of fixed outlets,Good,Good,electricity - this is for backwards compatibility only and should not be used,0.0,unheated corridor,4.8,2.4,0.0,N,natural,"Flat 45 Pevensey Court, St. Peters Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2009-07-27 16:36:21,rental (social),,,10022893642.0,Address Matched +1150358299542014060209200321347408,"40, Mynn Crescent",Bearsted,,ME14 4AR,8541293278,E,B,53,85,House,Semi-Detached,2014-05-30,E07000110,E14000700,Kent,2014-06-02,marketed sale,48,85,301,73.0,4.5,58,1.1,68.0,52.0,786.0,428.0,171.0,82.0,78.0,dual,Y,NODATA!,,,2106.0,80.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,70.0,1.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Mostly double glazing,Poor,Poor,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 25 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 70% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"40, Mynn Crescent, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2014-06-02 09:20:03,owner-occupied,10.0,7.0,200003691799.0,Address Matched +178700387612009081112412407910656,25 Boarley Court,Sandling Lane,,ME14 2NL,6669773568,G,F,17,37,Flat,Semi-Detached,2009-08-11,E07000110,E14000700,Kent,2009-08-11,rental (private),40,34,570,645.0,5.1,87,5.8,60.0,67.0,1115.0,657.0,175.0,193.0,59.46,Unknown,,7th,Y,8.0,2602.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,0.0,0.0,Electric instantaneous at point of use,Very Poor,Poor,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Flat, limited insulation (assumed)",Very Poor,Very Poor,"Room heaters, electric",Very Poor,Poor,Appliance thermostats,Good,Good,No low energy lighting,Very Poor,Very Poor,electricity - this is for backwards compatibility only and should not be used,0.0,unheated corridor,5.1,2.35,0.0,N,natural,"25 Boarley Court, Sandling Lane",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2009-08-11 12:41:24,rental (private),,,200003731544.0,Address Matched +1508240979332017010409441622078601,"154, Clifford Way",,,ME16 8GF,7142629478,C,C,80,80,Flat,Mid-Terrace,2017-01-04,E07000110,E14000804,Kent,2017-01-04,marketed sale,83,83,117,117.0,1.2,21,1.2,47.0,47.0,184.0,184.0,124.0,124.0,60.0,Unknown,Y,3rd,Y,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,(another dwelling below),NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Flat, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,heated corridor,0.0,,,N,natural,"154, Clifford Way",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2017-01-04 09:44:16,owner-occupied,,,10022896167.0,Address Matched +1550807428912017061211140192930057,"83, Alkham Road",,,ME14 5PL,731822578,D,B,67,83,House,Semi-Detached,2017-06-12,E07000110,E14000804,Kent,2017-06-12,marketed sale,61,79,214,102.0,4.1,38,2.0,66.0,66.0,672.0,560.0,174.0,77.0,108.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,6.0,6.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 270 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"83, Alkham Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2017-06-12 11:14:01,owner-occupied,,,200003671346.0,Address Matched +1787872432002020022617351265902768,Burford Farm,Redwall Lane,Linton,ME17 4BD,14639678,D,B,57,84,House,Detached,2020-02-26,E07000110,E14000804,Kent,2020-02-26,rental (private),52,79,179,50.0,9.0,42,3.5,173.0,116.0,1329.0,1008.0,179.0,87.0,215.0,Single,N,NODATA!,,,2106.0,66.0,"double glazing, unknown install date",Normal,1.0,8.0,8.0,50.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Partial double glazing,Poor,Poor,"Cavity wall, filled cavity",Average,Average,"Room heaters, wood logs",,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, oil",Average,Average,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,oil (not community),0.0,NO DATA!,,,,N,natural,"Burford Farm, Redwall Lane, Linton",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2020-02-26 17:35:12,rental (private),,,200003669638.0,Address Matched +491772699262010052713260036238280,"28, Mynn Crescent",Bearsted,,ME14 4AR,8378936768,D,C,57,75,Bungalow,Semi-Detached,2010-05-27,E07000110,E14000700,Kent,2010-05-27,marketed sale,55,71,280,178.0,5.4,46,3.5,104.0,61.0,824.0,498.0,157.0,133.0,116.53,Single,Y,NO DATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,2.0,6.0,5.0,29.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,Portable electric heaters,,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 29% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.41,0.0,N,natural,"28, Mynn Crescent, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2010-05-27 13:26:00,owner-occupied,,,200003691790.0,Address Matched +61087769022014020522112614548964,"54, Willow Rise",Downswood,,ME15 8XR,6196614468,C,B,74,91,House,Mid-Terrace,2014-02-04,E07000110,E14000700,Kent,2014-02-05,marketed sale,76,94,159,18.0,1.7,30,0.2,53.0,35.0,328.0,297.0,80.0,58.0,55.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,50.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"54, Willow Rise, Downswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2014-02-05 22:11:26,owner-occupied,6.0,3.0,200003687170.0,Address Matched +1384717159842015111214543343059328,Flat 104,Miller House,43-51 Lower Stone Street,ME15 6GB,5893150478,B,B,81,81,Flat,NO DATA!,2015-11-12,E07000110,E14000804,Kent,2015-11-12,none of the above,85,85,122,122.0,0.9,22,0.9,30.0,30.0,200.0,200.0,65.0,65.0,43.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Good,Good,Average thermal transmittance 0.66 W/m-¦K,Average,Average,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Flat 104, Miller House, 43-51 Lower Stone Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2015-11-12 14:54:33,unknown,4.0,4.0,10091196201.0,Address Matched +615693764932011040918242893068700,"28, Farningham Close",,,ME14 5QX,6093765868,C,C,70,77,House,End-Terrace,2011-04-09,E07000110,E14000804,Kent,2011-04-09,marketed sale,66,74,263,207.0,2.6,44,2.1,74.0,37.0,429.0,371.0,103.0,87.0,59.92,dual,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,4.0,4.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.36,0.0,N,natural,"28, Farningham Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2011-04-09 18:24:28,owner-occupied,,,200003673207.0,Address Matched +1685384909922019041517311891728311,Flat 20 Coronet House,"11, Queen Anne Road",,ME14 1GD,1977091678,C,C,72,72,Flat,Detached,2019-04-12,E07000110,E14000804,Kent,2019-04-15,new dwelling,75,75,333,333.0,1.0,56,1.0,23.0,23.0,186.0,186.0,132.0,132.0,19.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,Electric instantaneous at point of use,Very Poor,Very Poor,(other premises below),,,Fully double glazed,Good,Good,Average thermal transmittance 0.25 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,"Room heaters, electric",Very Poor,Poor,Programmer and room thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"Flat 20 Coronet House, 11, Queen Anne Road",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2019-04-15 17:31:18,unknown,5.0,5.0,10094441197.0,Address Matched +1071277739942017012609160217832958,"10, Hubbards Lane",Boughton Monchelsea,,ME17 4HY,9907438178,E,C,51,73,House,Semi-Detached,2017-01-25,E07000110,E14000804,Kent,2017-01-26,marketed sale,44,67,350,180.0,5.3,64,2.8,83.0,55.0,940.0,728.0,138.0,81.0,82.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,50.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"10, Hubbards Lane, Boughton Monchelsea",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2017-01-26 09:16:02,owner-occupied,,,200003674591.0,Address Matched +495721719022010060718073586138450,5 Sandling Place Court,Sandling Lane,Sandling,ME14 3AD,5842176768,B,B,81,82,House,Mid-Terrace,2010-06-07,E07000110,E14000804,Kent,2010-06-07,rental (private),79,80,143,138.0,2.0,24,1.9,69.0,46.0,282.0,286.0,106.0,106.0,83.1,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,50.0,0.0,From main system,Good,Good,"Suspended, insulated (assumed)",,,Fully double glazed,Good,Good,"System built, as built, insulated (assumed)",Good,Good,,,,"Flat, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.37,0.0,N,natural,"5 Sandling Place Court, Sandling Lane, Sandling",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2010-06-07 18:07:35,rental (private),,,10022895729.0,Address Matched +ada97748fb10a0d8b8bdb90de288ccc8f1cb02c420178b425f6e01facd98226c,18 THOMAS PLACE,JAMES WHATMAN WAY,,ME14 1FP,720358868,B,B,84,84,Flat,Mid-Terrace,2021-07-21,E07000110,E14000804,Kent,2021-07-28,rental,88,88,92,92.0,0.9,16,0.9,68.0,68.0,109.0,109.0,102.0,102.0,55.0,Single,N,04,N,,,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,100.0,0.0,Community scheme,Good,Good,(another dwelling below),,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Very Good,Very Good,,,,(another dwelling above),,,Community scheme,Good,Good,"Flat rate charging, programmer and room thermostat",Poor,Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (community),0.0,unheated corridor,7.07,2.39,0.0,N,natural,"18 THOMAS PLACE, JAMES WHATMAN WAY",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2012 onwards,2021-07-28 08:45:56,Rented (social),6.0,,10014312684.0,Energy Assessor +1374538299262016111819082459388816,"14, Cooling Close",,,ME14 5RA,1588979378,F,B,23,88,House,End-Terrace,2016-09-28,E07000110,E14000804,Kent,2016-11-18,ECO assessment,34,88,543,61.0,5.5,92,0.7,51.0,51.0,1419.0,337.0,177.0,60.0,60.0,Single,Y,NODATA!,,,2699.0,100.0,double glazing installed during or after 2002,Normal,1.0,3.0,0.0,80.0,0.0,Electric instantaneous at point of use,Very Poor,Poor,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 75 mm loft insulation",Average,Average,No system present: electric heaters assumed,Very Poor,Poor,,Very Poor,Very Poor,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,To be used only when there is no heating/hot-water system,0.0,NO DATA!,,2.4,,N,natural,"14, Cooling Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2016-11-18 19:08:24,owner-occupied,,,200003672085.0,Address Matched +605271389002011031812155182499938,"53, Dover Street",,,ME16 8LF,5040584868,C,C,71,73,House,Mid-Terrace,2011-03-17,E07000110,E14000804,Kent,2011-03-18,marketed sale,66,68,265,249.0,2.6,44,2.5,40.0,32.0,450.0,433.0,96.0,91.0,59.5,Unknown,Y,NO DATA!,,,2107.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,75.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 100 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.3,0.0,N,natural,"53, Dover Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2011-03-18 12:15:51,owner-occupied,,,200003655568.0,Address Matched +1507875226452017080415545592030142,Apartment 5 Kings Lodge,"71, King Street",,ME14 1BG,1246629478,B,B,84,84,Flat,Enclosed Mid-Terrace,2017-08-04,E07000110,E14000804,Kent,2017-08-04,new dwelling,93,93,56,56.0,0.4,10,0.4,34.0,34.0,115.0,115.0,93.0,93.0,46.0,standard tariff,,ground floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,Community scheme,Good,Very Good,Average thermal transmittance 0.12 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,Community scheme,Good,Very Good,"Charging system linked to use of community heating, programmer and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,NO DATA!,,NO DATA!,,,,,NO DATA!,"Apartment 5 Kings Lodge, 71, King Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2017-08-04 15:54:55,owner-occupied,5.0,5.0,10093302738.0,Address Matched +310543647712009062416320606210866,"207, Plains Avenue",,,ME15 7BD,8604763668,C,C,72,73,House,End-Terrace,2009-06-22,E07000110,E14000700,Kent,2009-06-24,rental (social),68,69,219,216.0,3.1,37,3.0,56.0,40.0,416.0,419.0,102.0,102.0,83.73,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,5.0,5.0,60.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 60% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.43,0.0,N,natural,"207, Plains Avenue",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2009-06-24 16:32:06,rental (social),,,200003714402.0,Address Matched +197646170962008121522320725158448,Flat 1 Toppesfield,"64, Sittingbourne Road",,ME14 5HZ,4295765568,D,D,57,67,Maisonette,Enclosed End-Terrace,2008-12-15,E07000110,E14000804,Kent,2008-12-15,rental (private),51,61,317,250.0,5.4,53,4.2,96.0,48.0,642.0,533.0,99.0,86.0,101.06,Single,Y,Ground,N,4.0,2102.0,25.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Partial double glazing,Poor,Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.11,0.0,N,natural,"Flat 1 Toppesfield, 64, Sittingbourne Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2008-12-15 22:32:07,rental (private),,,200003705848.0,Address Matched +997046109222013082719325993938897,2 Southlodge,Barham Court,Teston,ME18 5BZ,9916013178,D,B,62,86,Bungalow,Detached,2013-08-27,E07000110,E14000804,Kent,2013-08-27,marketed sale,58,84,216,69.0,4.4,41,1.5,99.0,65.0,736.0,520.0,130.0,84.0,105.0,dual,Y,NODATA!,,,2106.0,0.0,not defined,Normal,1.0,4.0,4.0,44.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 44% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"2 Southlodge, Barham Court, Teston",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1991-1995,2013-08-27 19:32:59,owner-occupied,16.0,7.0,10022897408.0,Address Matched +1173377459542014071607350522540428,"136, Postley Road",,,ME15 6TT,9568755278,E,B,54,87,House,Semi-Detached,2014-07-02,E07000110,E14000804,Kent,2014-07-16,none of the above,50,88,296,57.0,4.1,57,0.8,62.0,45.0,705.0,378.0,167.0,72.0,72.0,Unknown,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,60.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Average,Programmer and room thermostat,Average,Average,Low energy lighting in 60% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"136, Postley Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2014-07-16 07:35:05,owner-occupied,10.0,6.0,200003681928.0,Address Matched +ae710a1dbd4969b205c3bd36447e5b08698534d5573120c710fefd566e76f8ac,11 CANNING STREET,,,ME14 2RU,10001356470,D,B,61,88,House,End-Terrace,2021-07-02,E07000110,E14000804,Kent,2021-07-04,rental,56,87,313,70.0,3.1,55,0.7,54.0,54.0,560.0,343.0,87.0,59.0,56.0,dual,Y,,,,,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.4,0.0,N,natural,11 CANNING STREET,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2021-07-04 18:36:48,Rented (social),26.0,,200003702322.0,Energy Assessor +709750930932011102411265039268496,Inshalla,Lower Fant Road,,ME16 8DP,3639422968,D,C,57,69,House,Detached,2011-10-24,E07000110,E14000804,Kent,2011-10-24,rental (private),54,68,279,195.0,4.3,54,3.0,93.0,47.0,641.0,493.0,152.0,110.0,34.2,dual,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,0.0,0.0,From main system,Average,Average,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Roof room(s), ceiling insulated",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,2.32,0.0,,natural,"Inshalla, Lower Fant Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2011-10-24 11:26:50,rental (private),8.0,0.0,200003724745.0,Address Matched +1094597650512014022111120390940723,37 Sunningdale Court,Square Hill Road,,ME15 7TT,7307000278,C,C,72,79,Flat,End-Terrace,2014-02-19,E07000110,E14000804,Kent,2014-02-21,none of the above,74,83,172,115.0,1.9,33,1.3,64.0,38.0,317.0,230.0,134.0,115.0,58.0,Single,Y,6th,N,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,33.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 33% of fixed outlets,Average,Average,mains gas (not community),0.0,unheated corridor,4.866,,0.0,,natural,"37 Sunningdale Court, Square Hill Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2014-02-21 11:12:03,rental (social),6.0,2.0,200003696569.0,Address Matched +164669969642010102008121752202908,"34, Medway Avenue",Yalding,,ME18 6JN,4682862568,D,C,67,70,House,Semi-Detached,2010-10-20,E07000110,E14000804,Kent,2010-10-20,marketed sale,64,66,225,216.0,4.1,38,4.0,116.0,58.0,617.0,628.0,111.0,111.0,109.4,Single,Y,NO DATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,4.0,4.0,0.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, insulated (assumed)",Average,Average,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,0.0,N,natural,"34, Medway Avenue, Yalding",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2010-10-20 08:12:17,owner-occupied,,,200003660571.0,Address Matched +1643728599342018062909580257882038,18 Chapelfield Way,Allington,,ME16 9FS,1336098578,B,B,87,88,House,Mid-Terrace,2018-06-27,E07000110,E14000804,Kent,2018-06-29,new dwelling,87,89,63,52.0,1.5,11,1.3,78.0,78.0,278.0,279.0,104.0,56.0,139.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.19 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.16 W/m-¦K,Good,Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"18 Chapelfield Way, Allington",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2018-06-29 09:58:02,unknown,35.0,35.0,10093306496.0,Address Matched +274757980752009042813591302210163,"26, Pickering Street",,,ME15 9RS,1354021668,D,D,57,65,House,Detached,2009-04-28,E07000110,E14000804,Kent,2009-04-28,marketed sale,55,64,270,214.0,6.3,44,5.0,133.0,70.0,859.0,736.0,164.0,133.0,142.8,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,7.0,7.0,10.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,"Pitched, 150mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 10% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,0.0,N,natural,"26, Pickering Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2009-04-28 13:59:13,owner-occupied,,,200003675146.0,Address Matched +ade589ac36ab25bf9aee83902d4e5b407ec746941045e6f49f837646356b3bdf,107B TONBRIDGE ROAD,,,ME16 8JS,10001336439,D,C,65,77,House,Detached,2021-08-03,E07000110,E14000804,Kent,2021-08-03,marketed sale,56,69,202,136.0,8.8,36,5.9,155.0,155.0,1441.0,1116.0,131.0,131.0,247.0,dual,Y,,,,,100.0,"double glazing, unknown install date",Normal,1.0,8.0,8.0,93.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 93% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.505,0.0,N,natural,107B TONBRIDGE ROAD,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2021-08-03 11:44:47,Owner-occupied,41.0,,200003657841.0,Energy Assessor +1608381439102018021515282452689558,"14, Freeman Way",,,ME15 8AN,7176636578,D,B,63,86,Bungalow,Semi-Detached,2018-02-15,E07000110,E14000700,Kent,2018-02-15,marketed sale,60,84,282,94.0,3.1,50,1.1,72.0,51.0,488.0,394.0,154.0,66.0,63.0,dual,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,57.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Average,Average,"Room heaters, mains gas",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 57% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"14, Freeman Way",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2018-02-15 15:28:24,owner-occupied,,,200003684382.0,Address Matched +1713490399402019041218081867319328,Redwall Farmhouse,Redwall Lane,Linton,ME17 4AX,4444593678,F,C,38,70,House,Detached,2019-04-12,E07000110,E14000804,Kent,2019-04-12,marketed sale,33,59,247,109.0,19.0,63,9.9,206.0,131.0,2681.0,1751.0,97.0,97.0,306.0,Single,N,NODATA!,,,2106.0,88.0,"double glazing, unknown install date",Normal,3.0,12.0,12.0,43.0,1.0,"From main system, plus solar",Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Mostly double glazing,Average,Average,"Solid brick, as built, no insulation (assumed)",Poor,Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, oil",Average,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 43% of fixed outlets,Average,Average,oil (not community),0.0,NO DATA!,,,,Y,natural,"Redwall Farmhouse, Redwall Lane, Linton",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2019-04-12 18:08:18,owner-occupied,,,200003663051.0,Address Matched +1443258069042016051318034940469578,"10, Westerhill Road",Coxheath,,ME17 4DG,4041764478,E,B,49,90,House,Mid-Terrace,2016-05-13,E07000110,E14000804,Kent,2016-05-13,marketed sale,32,91,619,46.0,5.1,108,0.5,68.0,34.0,734.0,313.0,80.0,53.0,48.0,dual,Y,NODATA!,,,2401.0,75.0,double glazing installed before 2002,Normal,1.0,3.0,3.0,20.0,0.0,Gas multipoint,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Partial double glazing,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 100 mm loft insulation",Average,Average,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 20% of fixed outlets,Poor,Poor,electricity (not community),0.0,NO DATA!,,2.56,,N,natural,"10, Westerhill Road, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2016-05-13 18:03:49,owner-occupied,,,200003713066.0,Address Matched +329989493132009072108482173268707,"39, Bethersden Court",,,ME15 8SS,9783705668,C,C,74,76,Bungalow,End-Terrace,2009-07-20,E07000110,E14000700,Kent,2009-07-21,rental (social),70,72,259,243.0,2.1,43,2.0,24.0,24.0,350.0,330.0,74.0,74.0,48.14,Single,Y,NO DATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,100.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.38,0.0,N,natural,"39, Bethersden Court",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2009-07-21 08:48:21,rental (social),,,200003720979.0,Address Matched +1323831119042015052017163534659518,"2, Longridge Villas",Thorn Road,,TN12 9LP,8024916378,G,E,8,53,House,Semi-Detached,2015-05-19,E07000110,E14000804,Kent,2015-05-20,ECO assessment,7,40,666,267.0,13.0,147,5.6,57.0,57.0,2179.0,1070.0,340.0,158.0,91.0,Single,N,NODATA!,,,2101.0,60.0,"double glazing, unknown install date",Normal,2.0,3.0,1.0,100.0,1.0,"Solid fuel range cooker, no cylinder thermostat",Very Poor,Very Poor,"Solid, no insulation (assumed)",NO DATA!,,Partial double glazing,Poor,Poor,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, no insulation",Very Poor,Very Poor,"Boiler and radiators, dual fuel (mineral and wood)",Poor,Very Poor,No time or thermostatic control of room temperature,Very Poor,Very Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,dual fuel - mineral + wood,0.0,NO DATA!,,,,N,natural,"2, Longridge Villas, Thorn Road",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: before 1900,2015-05-20 17:16:35,rental (private),,,200003662669.0,Address Matched +470499771512010041520291199900977,"102, Longham Copse",Downswood,,ME15 8TW,9768194768,D,C,66,77,House,Semi-Detached,2010-04-15,E07000110,E14000700,Kent,2010-04-15,marketed sale,61,73,266,184.0,3.8,44,2.6,73.0,44.0,520.0,395.0,158.0,113.0,85.7,Single,Y,NO DATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,1.0,4.0,4.0,35.0,0.0,From main system,Average,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Flat, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Average,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 35% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.6,0.0,N,natural,"102, Longham Copse, Downswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2010-04-15 20:29:11,owner-occupied,,,200003686602.0,Address Matched +537152739922013072008081399718087,"31, Sidney Street",,,ME16 8LH,8906369768,D,B,63,87,House,End-Terrace,2013-07-19,E07000110,E14000804,Kent,2013-07-20,none of the above,62,88,226,53.0,3.1,43,0.8,86.0,43.0,512.0,355.0,120.0,69.0,71.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, partial insulation (assumed)",Average,Average,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"31, Sidney Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1976-1982,2013-07-20 08:08:13,owner-occupied,7.0,0.0,200003655620.0,Address Matched +1459976189642016070616544846560768,"16, Buffkyn Way",,,ME15 8FY,1604585478,B,B,86,86,Flat,NO DATA!,2016-07-06,E07000110,E14000700,Kent,2016-07-06,new dwelling,90,90,70,70.0,0.7,12,0.7,42.0,42.0,191.0,191.0,71.0,71.0,57.0,standard tariff,,ground floor,,,,,NO DATA!,NO DATA!,,,,,0.0,"From main system, flue gas heat recovery",Very Good,Very Good,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.18 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"16, Buffkyn Way",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2016-07-06 16:54:48,unknown,1.0,1.0,10091193651.0,Address Matched +1184040731752014080710230993040627,6 Railway Cottages,Maidstone Road,Marden,TN12 9AF,6737136278,E,C,45,73,Bungalow,Mid-Terrace,2014-08-06,E07000110,E14000804,Kent,2014-08-07,marketed sale,42,70,368,160.0,4.8,71,2.1,58.0,58.0,879.0,668.0,172.0,71.0,67.0,dual,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,More Than Typical,1.0,3.0,3.0,78.0,1.0,From main system,Average,Average,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Roof room(s), no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Average,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 78% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"6 Railway Cottages, Maidstone Road, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: before 1900,2014-08-07 10:23:09,owner-occupied,9.0,7.0,200003710742.0,Address Matched +398720570962009111722030409768741,"32, Cumberland Avenue",,,ME15 7JJ,4058789668,C,C,71,78,Flat,Semi-Detached,2009-11-16,E07000110,E14000700,Kent,2009-11-17,rental (social),67,74,278,213.0,2.4,46,1.8,26.0,26.0,348.0,291.0,129.0,96.0,52.09,Single,Y,Ground,N,2.0,2107.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.43,0.0,N,natural,"32, Cumberland Avenue",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2009-11-17 22:03:04,rental (social),,,200003712152.0,Address Matched +1733816303132019070412431423078203,5 Station Hill Cottages,Station Hill,East Farleigh,ME15 0JD,373245678,D,C,56,71,House,End-Terrace,2019-07-04,E07000110,E14000804,Kent,2019-07-04,marketed sale,53,67,337,216.0,3.7,59,2.4,49.0,49.0,743.0,717.0,90.0,61.0,62.0,Unknown,Y,NODATA!,,,2106.0,60.0,"double glazing, unknown install date",Normal,1.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Partial double glazing,Poor,Poor,"Timber frame, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, electric",,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"5 Station Hill Cottages, Station Hill, East Farleigh",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2019-07-04 12:43:14,owner-occupied,,,200003726671.0,Address Matched +ae19a11b34bad1a830630f0a3fc277a580359e6654ab9ec3bb3440b22f1bbb3a,12,Pearson Meadow,Boughton Monchelsea,ME17 4SX,10001353765,B,A,83,94,House,Detached,2021-09-16,E07000110,E14000700,Kent,2021-09-16,new dwelling,84,95,94,20.0,1.5,17,0.4,74.0,74.0,262.0,262.0,71.0,43.0,92.0,standard tariff,,,N,,,100.0,,,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.39,,,,"12, Pearson Meadow, Boughton Monchelsea",Maidstone,Faversham and Mid Kent,Maidstone,2020,2021-09-16 10:05:30,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,14.0,,10094442615.0,Address Matched +1773749439502019121910214163819798,"8, Drawbridge Close",,,ME15 7PD,2560238678,C,B,73,85,House,End-Terrace,2019-12-11,E07000110,E14000700,Kent,2019-12-19,rental (social),71,83,182,97.0,2.7,32,1.5,84.0,84.0,428.0,431.0,125.0,79.0,85.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,78.0,0.0,From main system,Good,Good,"Suspended, limited insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 78% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"8, Drawbridge Close",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1996-2002,2019-12-19 10:21:41,rental (social),,,10014306191.0,Address Matched +1001366149542013090509402911370858,"11, Mount Lane",Bearsted,,ME14 4DD,3541543178,E,D,50,67,Bungalow,Semi-Detached,2013-09-05,E07000110,E14000700,Kent,2013-09-05,marketed sale,63,79,181,86.0,3.2,40,1.7,58.0,58.0,867.0,771.0,241.0,176.0,80.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,77.0,0.0,From main system,Average,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, LPG",Average,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 77% of fixed outlets,Very Good,Very Good,LPG (not community),0.0,NO DATA!,,,0.0,,natural,"11, Mount Lane, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2013-09-05 09:40:29,owner-occupied,13.0,10.0,200003692105.0,Address Matched +391322128852009110319221703019061,"40, Postmill Drive",,,ME15 6FY,169839668,D,C,61,76,House,Enclosed End-Terrace,2009-11-02,E07000110,E14000804,Kent,2009-11-03,marketed sale,55,72,430,266.0,2.8,72,1.7,39.0,19.0,391.0,284.0,135.0,88.0,38.92,Single,Y,NO DATA!,,,2102.0,0.0,not defined,Normal,0.0,2.0,2.0,0.0,0.0,From main system,Average,Good,"Suspended, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, mains gas",,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Average,Good,"Programmer, no room thermostat",Very Poor,Very Poor,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,,0.0,N,natural,"40, Postmill Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,,2009-11-03 19:22:17,owner-occupied,,,200003666103.0,Address Matched +741643997612012012019011699220691,"42, Old Tovil Road",,,ME15 6PR,6146794968,D,D,56,58,House,Mid-Terrace,2012-01-20,E07000110,E14000804,Kent,2012-01-20,marketed sale,57,59,290,280.0,4.0,50,3.8,89.0,44.0,758.0,764.0,83.0,83.0,66.01,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,4.0,4.0,0.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,2.43,0.0,,natural,"42, Old Tovil Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2012-01-20 19:01:16,owner-occupied,10.0,0.0,200003683256.0,Address Matched +638469440252011060610131893090886,"3, Burghclere Drive",,,ME16 8UQ,8693037868,G,F,1,26,House,Mid-Terrace,2011-06-06,E07000110,E14000804,Kent,2011-06-06,marketed sale,13,36,1156,675.0,7.6,205,4.4,43.0,22.0,1523.0,807.0,204.0,204.0,37.0,Single,Y,NODATA!,,,2401.0,80.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,0.0,0.0,"Electric immersion, standard tariff",Very Poor,Very Poor,"Solid, no insulation (assumed)",,,Mostly double glazing,Average,Average,"Cavity wall, as built, partial insulation (assumed)",Average,Average,"Room heaters, electric",,,"Pitched, no insulation",Very Poor,Very Poor,Electric storage heaters,Very Poor,Very Poor,Manual charge control,Poor,Poor,No low energy lighting,Very Poor,Very Poor,electricity (not community),0.0,NO DATA!,,2.379,0.0,,natural,"3, Burghclere Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1976-1982,2011-06-06 10:13:18,owner-occupied,5.0,0.0,200003675801.0,Address Matched +248736199922016111714064329938946,"7, Farmers Close",Leeds,,ME17 1SB,4246939568,C,B,69,83,House,Mid-Terrace,2016-11-17,E07000110,E14000700,Kent,2016-11-17,marketed sale,68,82,194,98.0,3.1,34,1.6,89.0,58.0,540.0,523.0,146.0,85.0,90.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,More Than Typical,1.0,4.0,4.0,46.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 46% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,2.34,,N,natural,"7, Farmers Close, Leeds",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2016-11-17 14:06:43,owner-occupied,,,200003698389.0,Address Matched +1176121189062018070506330675448678,"78, Northumberland Road",,,ME15 7TQ,7712875278,C,B,71,81,House,Semi-Detached,2018-07-04,E07000110,E14000700,Kent,2018-07-05,marketed sale,65,76,185,121.0,4.7,33,3.1,108.0,84.0,779.0,689.0,107.0,107.0,143.0,Unknown,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,71.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Average,Average,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 71% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"78, Northumberland Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2018-07-05 06:33:06,owner-occupied,,,200003684015.0,Address Matched +53117350102009020614353955710868,29 Hazlitt Drive,,,ME16 0EG,6125157568,B,B,85,85,House,Semi-Detached,2009-02-06,E07000110,E14000804,Kent,2009-02-06,new dwelling,84,84,98,95.0,2.1,0,2.0,82.0,65.0,246.0,247.0,118.0,118.0,43.2,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,9.0,,SAP05:Hot-Water,,,Average thermal transmittance 0.23 W/m²K,Good,Good,Fully double glazed,Good,Good,Average thermal transmittance 0.26 W/m²K,Very Good,Very Good,SAP05:Secondary-Heating,,,Average thermal transmittance 0.18 W/m²K,Good,Good,SAP05:Main-Heating,,,SAP05:Main-Heating-Controls,,,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,-1.0,NO DATA!,,2.3,,,NO DATA!,29 Hazlitt Drive,Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2009-02-06 14:35:39,,12.0,9.0,10022895298.0,Address Matched +568786539032010112616332605268593,"33, Courtenay Road",,,ME15 6UW,3395591868,C,C,74,78,House,Mid-Terrace,2010-11-26,E07000110,E14000804,Kent,2010-11-26,rental (social),70,74,206,178.0,2.8,34,2.4,56.0,43.0,430.0,375.0,114.0,114.0,81.42,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,70.0,0.0,From main system,Very Good,Very Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 70% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.42,0.0,N,natural,"33, Courtenay Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2010-11-26 16:33:26,rental (social),,,200003665335.0,Address Matched +1038243123412013110606495390079217,Flat 17 Block E,Lindisfarne Gardens,,ME16 8NF,2713306178,C,B,77,81,Flat,Mid-Terrace,2013-11-05,E07000110,E14000804,Kent,2013-11-06,marketed sale,81,85,130,98.0,1.4,25,1.1,61.0,38.0,206.0,196.0,139.0,101.0,57.0,Unknown,Y,1st,N,,2107.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,38.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 38% of fixed outlets,Average,Average,mains gas (not community),0.0,heated corridor,,,0.0,,natural,"Flat 17 Block E, Lindisfarne Gardens",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1991-1995,2013-11-06 06:49:53,owner-occupied,8.0,3.0,200003724437.0,Address Matched +736980719922017111312092144878453,"38, Plains Avenue",,,ME15 7AU,5406144968,D,B,60,81,House,Semi-Detached,2017-11-13,E07000110,E14000700,Kent,2017-11-13,marketed sale,53,78,280,116.0,4.4,51,1.9,57.0,57.0,796.0,546.0,104.0,70.0,85.0,Single,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,100.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"38, Plains Avenue",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2017-11-13 12:09:21,owner-occupied,,,200003683676.0,Address Matched +466126491512010040721220296000978,Flat 10 Laker House,Canning Street,,ME14 2RX,9822164768,D,D,58,59,Flat,Detached,2010-04-07,E07000110,E14000804,Kent,2010-04-07,rental (private),66,67,274,267.0,3.0,41,2.9,82.0,41.0,388.0,404.0,153.0,153.0,72.11,dual,N,3rd,Y,4.0,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,0.0,0.0,"Electric immersion, off-peak",Poor,Poor,"To unheated space, insulated",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, electric",Very Poor,Poor,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,electricity - this is for backwards compatibility only and should not be used,0.0,heated corridor,,2.45,0.0,N,natural,"Flat 10 Laker House, Canning Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2010-04-07 21:22:02,rental (private),,,200003661466.0,Address Matched +552340240032010101310023961968999,Hazeldene,Tyland Lane,Sandling,ME14 3BL,4981960868,C,C,70,75,House,Detached,2010-10-13,E07000110,E14000700,Kent,2010-10-13,marketed sale,68,72,180,156.0,5.6,29,4.9,203.0,119.0,739.0,689.0,188.0,164.0,97.76,dual,Y,NO DATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,6.0,6.0,30.0,0.0,From main system,Good,Good,"Suspended, limited insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, mains gas",,,,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 30% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.34,0.0,N,natural,"Hazeldene, Tyland Lane, Sandling",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1996-2002,2010-10-13 10:02:39,owner-occupied,,,200003731581.0,Address Matched +1774066564812019122015490693219562,Apartment 2 Sandling Park,Sandling Lane,,ME14 2NY,5228438678,C,B,76,82,Flat,Enclosed Mid-Terrace,2019-12-20,E07000110,E14000804,Kent,2019-12-20,marketed sale,72,72,227,225.0,1.8,38,1.8,56.0,47.0,218.0,151.0,179.0,152.0,47.0,dual,N,1st,N,,2603.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,63.0,0.0,"Electric immersion, off-peak",Poor,Poor,"Solid, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"System built, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Room heaters, electric",Very Poor,Poor,Programmer and appliance thermostats,Good,Good,Low energy lighting in 63% of fixed outlets,Good,Good,electricity (not community),0.0,unheated corridor,4.67,,,N,natural,"Apartment 2 Sandling Park, Sandling Lane",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2019-12-20 15:49:06,owner-occupied,,,10014307097.0,Address Matched +286040199212009051518302709910162,"12, Neath Court",Northumberland Road,,ME15 7JS,1259991668,C,C,69,76,Flat,Mid-Terrace,2009-04-12,E07000110,E14000700,Kent,2009-05-15,rental (private),66,72,345,284.0,2.3,52,1.9,48.0,24.0,226.0,178.0,105.0,105.0,43.99,dual,N,1st,N,2.0,2401.0,100.0,double glazing installed before 2002,Normal,0.0,2.0,2.0,0.0,0.0,"Electric immersion, off-peak",Poor,Poor,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,"Pitched, 75 mm loft insulation",Average,Average,Electric storage heaters,Poor,Poor,Manual charge control,Poor,Poor,No low energy lighting,Very Poor,Very Poor,electricity - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.32,0.0,N,natural,"12, Neath Court, Northumberland Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2009-05-15 18:30:27,rental (private),,,200003684359.0,Address Matched +482114935032010050815332768068308,"141, Hockers Lane",Weavering,,ME14 5JY,3888375768,D,D,59,61,House,Detached,2010-05-07,E07000110,E14000700,Kent,2010-05-08,marketed sale,54,54,266,260.0,7.3,44,7.1,165.0,97.0,1013.0,1028.0,178.0,178.0,130.55,dual,Y,NO DATA!,,,2106.0,95.0,double glazing installed before 2002,Normal,2.0,7.0,7.0,30.0,0.0,From main system,Very Good,Very Good,"Suspended, no insulation (assumed)",,,Mostly double glazing,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 30% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.55,0.0,N,natural,"141, Hockers Lane, Weavering",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2010-05-08 15:33:27,owner-occupied,,,200003689027.0,Address Matched +ae7b4639cf55a46ed7798d889eb2c793f2f8b1d05e6153afddd9979399cd55ba,97 BOXLEY ROAD,,,ME5 9JD,10001594482,D,C,64,78,House,Detached,2021-07-27,E07000110,E14000700,Kent,2021-07-27,marketed sale,56,72,219,132.0,7.3,39,4.4,142.0,142.0,1232.0,901.0,101.0,102.0,189.0,Single,Y,,,,,100.0,double glazing installed before 2002,Normal,2.0,8.0,8.0,75.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas, Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.53,0.0,N,natural,97 BOXLEY ROAD,Maidstone,Faversham and Mid Kent,CHATHAM,England and Wales: 1950-1966,2021-07-27 19:07:43,Owner-occupied,24.0,,200003708465.0,Energy Assessor +1320223735532015051222152561978706,"14, Marion Crescent",,,ME15 7DY,3631795378,D,C,62,77,House,Semi-Detached,2015-05-11,E07000110,E14000700,Kent,2015-05-12,marketed sale,58,75,225,123.0,5.6,39,3.1,78.0,78.0,969.0,865.0,295.0,87.0,143.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,2.0,6.0,6.0,96.0,1.0,From main system,Average,Average,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 96% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"14, Marion Crescent",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2015-05-12 22:15:25,owner-occupied,,,200003684215.0,Address Matched +1293026589962015031116490133998865,Fairlawns,McAlpine Crescent,Loose,ME15 0AU,6351893378,E,C,40,79,House,Semi-Detached,2015-03-11,E07000110,E14000804,Kent,2015-03-11,none of the above,35,77,392,118.0,10.0,69,3.0,151.0,76.0,1883.0,827.0,192.0,78.0,146.0,Single,Y,NODATA!,,,2102.0,100.0,"double glazing, unknown install date",Normal,1.0,7.0,7.0,0.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,"Pitched, 12 mm loft insulation",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"Fairlawns, McAlpine Crescent, Loose",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2015-03-11 16:49:01,owner-occupied,,,200003725064.0,Address Matched +1772111379552020090310472121000760,"12, Broad Drive",Boughton Monchelsea,,ME17 4SW,7056918678,B,B,83,83,Maisonette,Semi-Detached,2020-09-03,E07000110,E14000804,Kent,2020-09-03,new dwelling,87,87,95,95.0,0.9,17,0.9,52.0,52.0,182.0,182.0,63.0,63.0,57.0,standard tariff,,top floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.17 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.20 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"12, Broad Drive, Boughton Monchelsea",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2020-09-03 10:47:21,unknown,10.0,10.0,10094442594.0,Address Matched +336578589952019092818015394210766,"33, Tower Lane",Bearsted,,ME14 4JH,7639945668,D,B,56,84,House,End-Terrace,2019-09-28,E07000110,E14000700,Kent,2019-09-28,marketed sale,50,83,311,82.0,4.2,57,1.2,75.0,57.0,737.0,405.0,99.0,72.0,73.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,67.0,1.0,From main system,Very Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 67% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"33, Tower Lane, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2019-09-28 18:01:53,owner-occupied,,,200003692251.0,Address Matched +406382480532015102922384041268098,"48, Northumberland Road",,,ME15 7LR,8841040768,D,C,59,73,House,Semi-Detached,2015-10-28,E07000110,E14000700,Kent,2015-10-29,marketed sale,46,63,283,183.0,8.3,50,5.4,166.0,83.0,1802.0,1286.0,115.0,115.0,165.0,Single,Y,NODATA!,,,2107.0,100.0,double glazing installed before 2002,Normal,1.0,4.0,4.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"48, Northumberland Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2015-10-29 22:38:40,owner-occupied,,,200003712266.0,Address Matched +795978899442012060107462997827298,"12, Becket Court",Station Road,,TN27 9SF,1430498968,D,C,62,73,Flat,Mid-Terrace,2012-05-31,E07000110,E14000700,Kent,2012-06-01,marketed sale,53,54,413,400.0,2.7,73,2.6,38.0,25.0,361.0,237.0,108.0,93.0,37.0,dual,N,1st,Y,,2603.0,100.0,double glazing installed before 2002,Normal,0.0,2.0,2.0,30.0,0.0,"Electric immersion, off-peak",Average,Very Poor,"To external air, limited insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Room heaters, electric",Poor,Very Poor,Programmer and appliance thermostats,Good,Good,Low energy lighting in 30% of fixed outlets,Average,Average,electricity (not community),0.0,no corridor,,,0.0,,natural,"12, Becket Court, Station Road",Maidstone,Faversham and Mid Kent,ASHFORD,England and Wales: 1991-1995,2012-06-01 07:46:29,owner-occupied,10.0,3.0,200003699860.0,Address Matched +510884489722015073021015427708465,"17, Knaves Acre",Headcorn,,TN27 9TJ,6223877768,D,C,64,78,House,Detached,2015-07-30,E07000110,E14000700,Kent,2015-07-30,marketed sale,60,75,217,122.0,4.6,38,2.6,77.0,77.0,854.0,719.0,161.0,93.0,120.0,Unknown,Y,NODATA!,,,2107.0,100.0,double glazing installed during or after 2002,Normal,1.0,7.0,7.0,88.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, 270 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 88% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"17, Knaves Acre, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,England and Wales: 1967-1975,2015-07-30 21:01:54,owner-occupied,,,200003699320.0,Address Matched +1658843258752018082821365199280152,"21, Hermitage Lane",,,ME16 9NR,1214899578,D,C,60,76,House,Semi-Detached,2018-08-28,E07000110,E14000804,Kent,2018-08-28,marketed sale,52,70,264,150.0,4.6,47,2.6,95.0,67.0,781.0,657.0,103.0,70.0,99.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,2.0,5.0,5.0,58.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,"Room heaters, mains gas",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 58% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"21, Hermitage Lane",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2018-08-28 21:36:51,owner-occupied,,,200003697037.0,Address Matched +451177559902010031119170277309098,"4, Cornforth Close",Staplehurst,,TN12 0BP,2943853768,D,C,56,70,House,Detached,2010-03-11,E07000110,E14000804,Kent,2010-03-11,marketed sale,50,65,319,220.0,6.1,53,4.2,94.0,66.0,842.0,612.0,193.0,137.0,113.55,dual,Y,NO DATA!,,,2104.0,95.0,double glazing installed before 2002,Normal,0.0,6.0,6.0,59.0,1.0,From main system,Average,Good,"Solid, no insulation (assumed)",,,Mostly double glazing,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 75mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Average,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 59% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,0.0,N,natural,"4, Cornforth Close, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1950-1966,2010-03-11 19:17:02,owner-occupied,,,200003677304.0,Address Matched +1458083119262016062916164905418856,"13, Grove Road",,,ME15 9AR,5062175478,C,B,69,87,House,End-Terrace,2016-06-29,E07000110,E14000700,Kent,2016-06-29,marketed sale,67,86,211,79.0,2.8,37,1.1,89.0,57.0,499.0,423.0,120.0,70.0,77.0,dual,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,44.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 44% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,2.42,,N,natural,"13, Grove Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2016-06-29 16:16:49,owner-occupied,,,200003713498.0,Address Matched +739182119112018031318110196980392,"14, Butcher Close",Staplehurst,,TN12 0TJ,3287964968,C,B,75,91,House,End-Terrace,2018-03-13,E07000110,E14000804,Kent,2018-03-13,marketed sale,76,91,162,38.0,1.8,29,0.4,45.0,45.0,317.0,287.0,80.0,53.0,62.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"14, Butcher Close, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1983-1990,2018-03-13 18:11:01,owner-occupied,,,200003678842.0,Address Matched +1076201399922014012209031998038864,"516, Loose Road",,,ME15 9UF,6945968178,E,C,48,77,House,Detached,2014-01-17,E07000110,E14000804,Kent,2014-01-22,none of the above,48,78,300,118.0,5.9,52,2.2,124.0,62.0,1177.0,716.0,146.0,81.0,113.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,7.0,7.0,0.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, wood logs",,,"Pitched, insulated at rafters",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"516, Loose Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2014-01-22 09:03:19,owner-occupied,18.0,0.0,200003675373.0,Address Matched +198531189612009051914443704989859,"61, Huntington Road",Coxheath,,ME17 4DU,8944945568,C,C,73,76,House,Semi-Detached,2008-12-10,E07000110,E14000804,Kent,2009-05-19,rental (social),70,73,203,182.0,3.0,34,2.7,85.0,42.0,368.0,350.0,121.0,121.0,88.16,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,0.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.27,0.0,N,natural,"61, Huntington Road, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2009-05-19 14:44:37,rental (social),,,200003713232.0,Address Matched +928070216712014081111201192040004,"45b, Scott Street",,,ME14 2TA,404628078,D,C,59,71,Maisonette,End-Terrace,2014-08-09,E07000110,E14000804,Kent,2014-08-11,rental (private),61,75,276,179.0,2.6,52,1.6,40.0,40.0,590.0,391.0,55.0,55.0,49.0,Single,Y,1st,Y,,2104.0,89.0,double glazing installed during or after 2002,Normal,1.0,3.0,2.0,80.0,0.0,From main system,Good,Good,(other premises below),,,Mostly double glazing,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,Portable electric heaters (assumed),,,"Pitched, insulated at rafters",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,no corridor,,,0.0,,natural,"45b, Scott Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2014-08-11 11:20:11,rental (private),10.0,8.0,200003729393.0,Address Matched +16005852902020090723190647200138,Lothlorien Cottage,Bottlescrew Hill,Boughton Monchelsea,ME17 4LZ,9916452468,E,C,52,80,Bungalow,Semi-Detached,2020-09-07,E07000110,E14000700,Kent,2020-09-07,marketed sale,48,79,320,122.0,6.6,52,2.4,121.0,89.0,1262.0,705.0,147.0,76.0,127.0,Single,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,64.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 64% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"Lothlorien Cottage, Bottlescrew Hill, Boughton Monchelsea",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2020-09-07 23:19:06,owner-occupied,,,200003709774.0,Address Matched +1378158609742015102518322143052878,9 Tithe Mews,Harrietsham,,ME17 1FU,1741400478,C,B,79,89,House,Mid-Terrace,2015-10-23,E07000110,E14000700,Kent,2015-10-25,marketed sale,78,88,123,58.0,2.3,22,1.1,72.0,72.0,413.0,413.0,105.0,71.0,106.0,dual,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,More Than Typical,0.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Suspended, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"9 Tithe Mews, Harrietsham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2007 onwards,2015-10-25 18:32:21,owner-occupied,,,10091193431.0,Address Matched +389412302552009102810334802219460,"83, South Park Road",,,ME15 7AN,4074229668,D,C,68,69,House,End-Terrace,2009-10-28,E07000110,E14000700,Kent,2009-10-28,rental (social),63,63,269,264.0,3.3,45,3.3,56.0,37.0,510.0,514.0,88.0,88.0,74.25,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,4.0,4.0,50.0,0.0,From main system,Very Good,Very Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,,0.0,N,natural,"83, South Park Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,,2009-10-28 10:33:48,rental (social),,,200003715985.0,Address Matched +1399172159042016010509311542160448,"22, Hope Street",,,ME14 2TF,2096351478,D,B,60,85,House,Mid-Terrace,2016-01-04,E07000110,E14000804,Kent,2016-01-05,marketed sale,52,82,265,83.0,5.3,47,1.7,77.0,77.0,936.0,512.0,182.0,80.0,114.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,1.0,5.0,5.0,88.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 88% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"22, Hope Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2016-01-05 09:31:15,owner-occupied,,,200003669878.0,Address Matched +1607371239802018021220100854689728,"16, Shearwater",,,ME16 0DW,4877036578,C,B,72,83,House,Semi-Detached,2018-02-12,E07000110,E14000804,Kent,2018-02-12,marketed sale,69,80,168,97.0,3.5,30,2.0,145.0,85.0,526.0,538.0,140.0,85.0,117.0,dual,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,7.0,7.0,29.0,0.0,From main system,Good,Good,"Suspended, limited insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 29% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"16, Shearwater",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2018-02-12 20:10:08,owner-occupied,,,200003705689.0,Address Matched +366259160902009091812290163719788,"23, Melford Drive",,,ME16 0UN,4915167668,D,C,61,72,House,Detached,2009-09-18,E07000110,E14000804,Kent,2009-09-18,marketed sale,55,67,272,201.0,5.7,45,4.2,125.0,66.0,746.0,597.0,171.0,129.0,124.9,Single,Y,NO DATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,1.0,6.0,6.0,10.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 300+mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Poor,Poor,Low energy lighting in 10% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.3,0.0,N,natural,"23, Melford Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1991-1995,2009-09-18 12:29:01,owner-occupied,,,200003725103.0,Address Matched +610454717932011032912435572268701,"1, The Chantry",Headcorn,,TN27 9TF,1192725868,C,C,72,75,House,Detached,2011-03-29,E07000110,E14000700,Kent,2011-03-29,non marketed sale,70,71,167,159.0,5.4,28,5.1,223.0,112.0,744.0,769.0,155.0,155.0,193.3,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,6.0,6.0,0.0,1.0,From main system,Very Good,Very Good,"Solid, insulated (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, mains gas",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.3,0.0,N,natural,"1, The Chantry, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,England and Wales: 2003-2006,2011-03-29 12:43:55,owner-occupied,,,10022896220.0,Address Matched +1592805059262017112806162775248223,"29, Westmorland Road",,,ME15 8BD,2743525578,D,C,56,72,House,End-Terrace,2017-11-24,E07000110,E14000700,Kent,2017-11-28,marketed sale,53,69,306,191.0,4.1,53,2.6,106.0,53.0,783.0,751.0,99.0,66.0,77.0,Unknown,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"System built, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, electric",,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"29, Westmorland Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2017-11-28 06:16:27,owner-occupied,,,200003684571.0,Address Matched +252836880512009032818481208210056,Highbury,Station Road,Staplehurst,TN12 0QG,626089568,F,E,31,41,House,Detached,2009-03-27,E07000110,E14000804,Kent,2009-03-28,marketed sale,24,32,444,355.0,25.0,81,20.0,197.0,145.0,2746.0,2233.0,174.0,131.0,287.9,dual,Y,NO DATA!,,,2106.0,30.0,secondary glazing,Normal,1.0,11.0,11.0,64.0,3.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Partial secondary glazing,Poor,Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, coal",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 64% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,3.0,0.0,Y,natural,"Highbury, Station Road, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: before 1900,2009-03-28 18:48:12,owner-occupied,,,200003679062.0,Address Matched +433834839062010020817235592788790,"31, River Bank Close",,,ME15 7SE,9935332768,C,C,75,80,Flat,Detached,2010-02-08,E07000110,E14000804,Kent,2010-02-08,rental (social),67,72,298,252.0,2.4,44,2.0,42.0,33.0,204.0,149.0,113.0,113.0,53.54,dual,N,3rd,Y,4.0,2402.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,70.0,0.0,"Electric immersion, off-peak",Average,Poor,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,"Pitched, 100mm loft insulation",Average,Average,Electric storage heaters,Poor,Very Poor,Automatic charge control,Average,Average,Low energy lighting in 70% of fixed outlets,Very Good,Very Good,electricity - this is for backwards compatibility only and should not be used,0.0,heated corridor,,2.35,0.0,N,natural,"31, River Bank Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2010-02-08 17:23:55,rental (social),,,200003725904.0,Address Matched +875004129732013012318070057278903,"11f, Yeoman Lane",Bearsted,,ME14 4BX,2307944078,D,B,66,83,House,Detached,2013-01-23,E07000110,E14000700,Kent,2013-01-23,marketed sale,63,81,180,81.0,4.6,35,2.1,88.0,62.0,740.0,563.0,132.0,72.0,133.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,More Than Typical,1.0,7.0,7.0,59.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 59% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"11f, Yeoman Lane, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2013-01-23 18:07:00,owner-occupied,17.0,10.0,200003692526.0,Address Matched +1003964669942016011817371410369188,"21, Timbertops",,,ME5 8XF,2901063178,D,B,63,84,House,Mid-Terrace,2016-01-18,E07000110,E14000700,Kent,2016-01-18,marketed sale,62,83,255,94.0,3.1,45,1.2,84.0,48.0,526.0,465.0,179.0,72.0,70.0,Single,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,25.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, limited insulation (assumed)",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 25% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"21, Timbertops",Maidstone,Faversham and Mid Kent,CHATHAM,England and Wales: 1976-1982,2016-01-18 17:37:14,owner-occupied,,,200003673747.0,Address Matched +1480207966852016092308492892260645,Flat 8,28 Brewer Street,,ME14 1RY,6590627478,B,B,81,81,Flat,NO DATA!,2016-09-23,E07000110,E14000804,Kent,2016-09-23,new dwelling,88,88,117,117.0,0.5,21,0.5,28.0,28.0,184.0,184.0,0.0,0.0,26.0,standard tariff,,top floor,,,,,NO DATA!,NO DATA!,,,,,0.0,Gas boiler/circulator,Very Poor,,(other premises below),,,Partial double glazing,Poor,Poor,Average thermal transmittance 1.04 W/m-¦K,Poor,Poor,,,,Average thermal transmittance 0.43 W/m-¦K,Average,Average,Community scheme,Good,Good,"Flat rate charging, no thermostatic control of room temperature",Very Poor,Very Poor,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,NO DATA!,,NO DATA!,,,,,NO DATA!,"Flat 8, 28 Brewer Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2016-09-23 08:49:28,unknown,8.0,6.0,10093304121.0,Address Matched +519571149752010072820173993200372,"245, Plains Avenue",,,ME15 7BD,3296938768,D,C,55,70,House,Semi-Detached,2010-07-28,E07000110,E14000700,Kent,2010-07-28,marketed sale,53,69,317,207.0,5.7,48,3.7,76.0,63.0,935.0,606.0,174.0,151.0,117.38,Single,Y,NO DATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,1.0,7.0,7.0,79.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, wood logs",,,"Pitched, 100 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 79% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.41,0.0,N,natural,"245, Plains Avenue",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2010-07-28 20:17:39,owner-occupied,,,200003714421.0,Address Matched +412258389842019080715351275010438,Flat 29,"1-5, Pudding Lane",,ME14 1FN,4859180768,D,C,57,80,Flat,Mid-Terrace,2019-08-07,E07000110,E14000804,Kent,2019-08-07,rental (social),37,67,404,186.0,7.7,68,3.6,89.0,89.0,1198.0,391.0,200.0,200.0,113.0,dual,N,2nd,Y,,2401.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,100.0,0.0,"Electric immersion, off-peak",Average,Poor,(another dwelling below),NO DATA!,,Fully double glazed,Average,Average,"Solid brick, with internal insulation",Very Good,Very Good,"Room heaters, electric",,,"Flat, no insulation (assumed)",Very Poor,Very Poor,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,unheated corridor,6.0,,,N,natural,"Flat 29, 1-5, Pudding Lane",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2019-08-07 15:35:12,rental (social),,,10014308386.0,Address Matched +1138075048012014050913440890040620,Flat 1 The Cloisters,Ham Lane,Lenham,ME17 2PZ,6057803278,D,C,68,74,Maisonette,End-Terrace,2014-05-08,E07000110,E14000700,Kent,2014-05-09,marketed sale,52,61,409,328.0,2.9,72,2.3,56.0,31.0,317.0,240.0,114.0,114.0,40.0,dual,N,Ground,N,,2401.0,100.0,double glazing installed before 2002,Normal,0.0,2.0,2.0,17.0,0.0,"Electric immersion, off-peak",Average,Very Poor,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,Electric storage heaters,Poor,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 17% of fixed outlets,Poor,Poor,electricity (not community),0.0,no corridor,,,0.0,,natural,"Flat 1 The Cloisters, Ham Lane, Lenham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2014-05-09 13:44:08,owner-occupied,6.0,1.0,200003709861.0,Address Matched +334080830942009072712005463512738,1-2 St. Helens Cottages,St. Helens Lane,West Farleigh,ME15 0JZ,9984235668,E,E,47,50,House,End-Terrace,2009-07-27,E07000110,E14000804,Kent,2009-07-27,rental (private),44,45,377,361.0,6.6,63,6.4,105.0,53.0,935.0,925.0,155.0,155.0,105.18,Single,Y,NO DATA!,,,2104.0,25.0,double glazing installed before 2002,Normal,1.0,5.0,5.0,0.0,1.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Partial double glazing,Poor,Poor,"Sandstone, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 150mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,Programmer and room thermostat,Poor,Poor,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.2,0.0,N,natural,"1-2 St. Helens Cottages, St. Helens Lane, West Farleigh",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2009-07-27 12:00:54,rental (private),,,200003730345.0,Address Matched +740245839922012011719301884438642,"5, Orchard Place",Heath Road,,ME17 4PF,4885384968,C,C,75,76,Flat,NO DATA!,2012-01-17,E07000110,E14000804,Kent,2012-01-17,marketed sale,78,79,158,150.0,1.6,30,1.6,57.0,35.0,288.0,291.0,71.0,71.0,54.49,Single,Y,2nd,Y,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,3.0,3.0,38.0,0.0,From main system,Good,Good,"To external air, insulated (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 38% of fixed outlets,Average,Average,mains gas (not community),0.0,no corridor,,2.38,0.0,,natural,"5, Orchard Place, Heath Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2012-01-17 19:30:18,owner-occupied,13.0,5.0,10022897137.0,Address Matched +1532519569722017033014253600708883,"44, Charlton Street",,,ME16 8LA,8077690578,D,B,57,81,House,Mid-Terrace,2017-03-30,E07000110,E14000804,Kent,2017-03-30,marketed sale,50,77,295,117.0,4.8,52,2.0,121.0,60.0,829.0,560.0,132.0,78.0,93.0,Unknown,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,3.0,5.0,5.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"44, Charlton Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2017-03-30 14:25:36,owner-occupied,,,200003655418.0,Address Matched +352785769642016092706472862662368,"14a, Douglas Road",,,ME16 8ES,5620566668,D,B,64,85,House,End-Terrace,2016-09-26,E07000110,E14000804,Kent,2016-09-27,marketed sale,58,82,245,89.0,3.9,43,1.4,84.0,58.0,699.0,474.0,109.0,72.0,89.0,Unknown,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,56.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 56% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,2.1,,N,natural,"14a, Douglas Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2016-09-27 06:47:28,owner-occupied,,,200003668397.0,Address Matched +424543289022014120121325251098064,"55, Pope Street",,,ME16 8LG,6574861768,C,B,69,88,House,Mid-Terrace,2014-12-01,E07000110,E14000804,Kent,2014-12-01,marketed sale,69,90,187,45.0,2.5,36,0.7,49.0,49.0,475.0,365.0,120.0,80.0,69.0,dual,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,3.0,3.0,100.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"55, Pope Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2014-12-01 21:32:52,owner-occupied,11.0,11.0,200003655603.0,Address Matched +1657906199042018082220572551982528,"29, Grampian Way",Downswood,,ME15 8TG,7084199578,D,B,68,91,House,Mid-Terrace,2018-08-22,E07000110,E14000700,Kent,2018-08-22,marketed sale,67,91,244,47.0,2.5,43,0.5,75.0,48.0,372.0,291.0,138.0,64.0,57.0,dual,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,43.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 270 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 43% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"29, Grampian Way, Downswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2018-08-22 20:57:25,owner-occupied,,,200003691077.0,Address Matched +352392334152012112214104096229068,"45, Furfield Chase",Boughton Monchelsea,,ME17 4GD,824466668,C,B,76,87,House,Semi-Detached,2012-11-22,E07000110,E14000700,Kent,2012-11-22,marketed sale,76,87,121,57.0,2.6,23,1.3,115.0,61.0,401.0,409.0,100.0,73.0,114.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,6.0,6.0,10.0,0.0,From main system,Good,Good,"Suspended, insulated (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 10% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"45, Furfield Chase, Boughton Monchelsea",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2007 onwards,2012-11-22 14:10:40,owner-occupied,10.0,1.0,10022901183.0,Address Matched +1072083486152014062913273194240016,"22, Chestnut Drive",Kingswood,,ME17 3PP,679648178,E,B,48,85,Bungalow,Detached,2014-06-29,E07000110,E14000700,Kent,2014-06-29,none of the above,37,77,301,76.0,6.1,75,1.9,73.0,49.0,978.0,486.0,293.0,102.0,81.0,Single,N,NODATA!,,,2107.0,100.0,"double glazing, unknown install date",More Than Typical,1.0,4.0,4.0,50.0,0.0,"From main system, no cylinder thermostat",Poor,Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 12 mm loft insulation",Very Poor,Very Poor,"Boiler and radiators, oil",Average,Average,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 50% of fixed outlets,Good,Good,oil (not community),0.0,NO DATA!,,,0.0,,natural,"22, Chestnut Drive, Kingswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2014-06-29 13:27:31,owner-occupied,8.0,4.0,200003700093.0,Address Matched +527583835252010081517543999900175,2 Hillside Cottages,Lughorse Lane,Yalding,ME18 6EH,1579598768,E,D,40,63,House,Mid-Terrace,2010-08-15,E07000110,E14000804,Kent,2010-08-15,rental (private),39,61,454,274.0,7.2,71,4.2,106.0,53.0,1042.0,738.0,283.0,121.0,76.23,Single,Y,NO DATA!,,,2102.0,0.0,not defined,Normal,0.0,5.0,4.0,0.0,0.0,"From main system, no cylinder thermostat",Poor,Average,"Suspended, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Average,Good,"Programmer, no room thermostat",Very Poor,Very Poor,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.1,0.0,N,natural,"2 Hillside Cottages, Lughorse Lane, Yalding",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2010-08-15 17:54:39,rental (private),,,200003661618.0,Address Matched +1422458417312016031810360391060540,"34, High Street",Lenham,,ME17 2QD,5068713478,D,C,61,79,House,Semi-Detached,2016-03-09,E07000110,E14000700,Kent,2016-03-18,marketed sale,54,74,266,140.0,4.8,48,2.6,95.0,62.0,860.0,688.0,128.0,85.0,99.0,Single,Y,NODATA!,,,2107.0,25.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,45.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Some double glazing,Poor,Poor,"Solid brick, with internal insulation",Good,Good,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 45% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,2.23,,N,natural,"34, High Street, Lenham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2016-03-18 10:36:03,owner-occupied,,,200003711214.0,Address Matched +595417229262011022317243944428509,The Old Vicarage,Linton Hill,Linton,ME17 4AW,478214868,F,E,35,51,House,Detached,2011-02-22,E07000110,E14000804,Kent,2011-02-23,marketed sale,38,55,457,317.0,9.6,67,6.4,124.0,78.0,1767.0,1276.0,217.0,154.0,180.75,Single,Y,NO DATA!,,,2104.0,50.0,secondary glazing,Normal,2.0,7.0,7.0,40.0,1.0,From main system,Average,Good,"Solid, no insulation (assumed)",,,Partial secondary glazing,Poor,Poor,"Cob, as built",Average,Average,"Room heaters, wood logs",,,"Pitched, insulated at rafters",Poor,Poor,"Boiler and radiators, mains gas",Average,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 40% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.5,0.0,N,natural,"The Old Vicarage, Linton Hill, Linton",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2011-02-23 17:24:39,owner-occupied,,,200003663145.0,Address Matched +1295280619142016040320385733462918,"26, Chestnut Drive",Kingswood,,ME17 3PP,1119714378,F,B,32,84,Bungalow,Detached,2016-03-29,E07000110,E14000700,Kent,2016-04-03,ECO assessment,28,77,390,71.0,7.3,102,1.8,98.0,49.0,920.0,379.0,283.0,82.0,72.0,Single,N,NODATA!,,,2102.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,0.0,0.0,"From main system, no cylinder thermostat",Very Poor,Very Poor,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 25 mm loft insulation",Poor,Poor,"Boiler and radiators, oil",Poor,Average,"Programmer, no room thermostat",Very Poor,Very Poor,No low energy lighting,Very Poor,Very Poor,oil (not community),0.0,NO DATA!,,2.3,,N,natural,"26, Chestnut Drive, Kingswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2016-04-03 20:38:57,owner-occupied,,,200003700095.0,Address Matched +1087881455252017070617325095030519,"21, Dickens Close",Langley,,ME17 1TB,5998559178,E,B,52,82,Bungalow,Semi-Detached,2017-07-06,E07000110,E14000700,Kent,2017-07-06,marketed sale,47,82,367,109.0,4.5,64,1.4,69.0,49.0,779.0,488.0,182.0,68.0,70.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,57.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 57% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"21, Dickens Close, Langley",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2017-07-06 17:32:50,owner-occupied,,,200003697380.0,Address Matched +491647439402010052709342476602338,"80, Knaves Acre",Headcorn,,TN27 9TJ,6458836768,D,C,60,73,House,Detached,2010-05-27,E07000110,E14000700,Kent,2010-05-27,marketed sale,54,68,293,201.0,5.3,49,3.6,88.0,56.0,797.0,552.0,109.0,109.0,107.76,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,6.0,6.0,43.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 25 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 43% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.31,0.0,N,natural,"80, Knaves Acre, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,England and Wales: 1967-1975,2010-05-27 09:34:24,owner-occupied,,,200003699404.0,Address Matched +277132615132009050121533018068100,"22, Queen Elizabeth Square",,,ME15 9DG,1018141668,C,B,78,81,House,Mid-Terrace,2009-05-01,E07000110,E14000700,Kent,2009-05-01,marketed sale,76,79,183,158.0,2.0,30,1.7,45.0,31.0,236.0,221.0,95.0,82.0,75.51,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,57.0,0.0,From main system,Good,Good,"Suspended, limited insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 57% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.37,0.0,N,natural,"22, Queen Elizabeth Square",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1996-2002,2009-05-01 21:53:30,owner-occupied,,,200003661674.0,Address Matched +1425382949802018052222254743382598,"11, Elm Grove",,,ME15 7RT,843043478,E,C,42,75,House,Semi-Detached,2018-05-21,E07000110,E14000804,Kent,2018-05-22,marketed sale,37,72,416,160.0,6.9,73,2.7,63.0,63.0,1333.0,733.0,126.0,78.0,94.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, electric",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"11, Elm Grove",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2018-05-22 22:25:47,owner-occupied,,,200003695329.0,Address Matched +375600427112009100522342002019169,Flat 14 Teston House,Tonbridge Road,Teston,ME18 5BU,1999728668,C,C,69,72,Flat,Semi-Detached,2009-10-05,E07000110,E14000804,Kent,2009-10-05,rental (social),69,71,296,275.0,2.1,45,2.0,34.0,34.0,175.0,157.0,202.0,183.0,47.51,dual,N,1st,N,4.0,2401.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,75.0,0.0,"Electric immersion, off-peak",Very Poor,Poor,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,(another dwelling above),,,Electric storage heaters,Poor,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,electricity - this is for backwards compatibility only and should not be used,0.0,unheated corridor,7.6,2.38,0.0,N,natural,"Flat 14 Teston House, Tonbridge Road, Teston",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1976-1982,2009-10-05 22:34:20,rental (social),,,200003661911.0,Address Matched +375159849262016092720521848538896,"51, Old Tovil Road",,,ME15 6PU,9400428668,C,B,70,82,House,Semi-Detached,2016-09-27,E07000110,E14000804,Kent,2016-09-27,rental (private),66,77,191,116.0,4.0,34,2.5,83.0,83.0,691.0,643.0,148.0,89.0,119.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,6.0,6.0,82.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 82% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,2.57,,N,natural,"51, Old Tovil Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2016-09-27 20:52:18,rental (private),,,10094442514.0,Address Matched +1522529165752017022412124992230956,"9, Cosford Road",,,ME15 8WS,9683520578,B,A,82,94,House,Semi-Detached,2017-02-24,E07000110,E14000700,Kent,2017-02-24,new dwelling,84,96,97,16.0,1.5,17,0.3,59.0,59.0,255.0,256.0,102.0,55.0,89.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.19 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.28 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.14 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"9, Cosford Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2017-02-24 12:12:49,unknown,10.0,10.0,10091194569.0,Address Matched +398573519132009111621145652968197,"9, Violet Close",,,ME5 9ND,1762199668,D,C,58,74,House,End-Terrace,2009-11-16,E07000110,E14000700,Kent,2009-11-16,rental (private),51,70,385,233.0,3.9,64,2.3,60.0,30.0,496.0,366.0,183.0,96.0,60.22,Single,Y,NO DATA!,,,2104.0,0.0,not defined,Normal,0.0,4.0,4.0,0.0,0.0,"From main system, no cylinder thermostat",Poor,Average,"Solid, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Average,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.29,0.0,N,natural,"9, Violet Close",Maidstone,Faversham and Mid Kent,CHATHAM,England and Wales: 1983-1990,2009-11-16 21:14:56,rental (private),,,200003708050.0,Address Matched +1384627990212015111116151995050349,Flat 23 William Shipley House,Knightrider Court,Knightrider Street,ME15 6XD,3968050478,D,D,64,64,Flat,NO DATA!,2015-05-02,E07000110,E14000804,Kent,2015-11-11,new dwelling,68,68,225,225.0,2.4,38,2.4,49.0,49.0,404.0,404.0,242.0,242.0,63.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,,0.0,"Electric immersion, standard tariff",Very Poor,Poor,(other premises below),,,Fully double glazed,Average,Average,Average thermal transmittance 0.29 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,"Room heaters, electric",Very Poor,Poor,Programmer and room thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"Flat 23 William Shipley House, Knightrider Court, Knightrider Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2015-11-11 16:15:19,unknown,8.0,8.0,10091195511.0,Address Matched +571833689022010120712123472758900,Flat 61 Lee Heights,Bambridge Court,,ME14 2LG,798812868,D,C,56,77,Flat,Enclosed End-Terrace,2010-12-05,E07000110,E14000804,Kent,2010-12-07,rental (private),71,70,232,238.0,2.7,34,2.7,80.0,50.0,355.0,226.0,305.0,149.0,76.0,Single,N,3rd,Y,4.0,2603.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,0.0,20.0,0.0,"Electric immersion, standard tariff",Very Poor,Poor,(other premises below),,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,Portable electric heaters,,,"Pitched, 200 mm loft insulation",Good,Good,"Room heaters, electric",Very Poor,Poor,Programmer and appliance thermostats,Good,Good,Low energy lighting in 20% of fixed outlets,Poor,Poor,electricity - this is for backwards compatibility only and should not be used,0.0,unheated corridor,1.55,2.6,0.0,N,natural,"Flat 61 Lee Heights, Bambridge Court",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2010-12-07 12:12:34,rental (private),,,10022893032.0,Address Matched +1641759079142018061917230352889718,"19, Sunburst Close",Marden,,TN12 9TS,9154478578,C,B,73,89,House,Semi-Detached,2018-06-19,E07000110,E14000804,Kent,2018-06-19,marketed sale,72,89,183,51.0,2.1,32,0.6,53.0,53.0,343.0,293.0,116.0,75.0,66.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,89.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 89% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"19, Sunburst Close, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1991-1995,2018-06-19 17:23:03,owner-occupied,,,200003711261.0,Address Matched +1647495669962018071117103879598038,"16, Norrington Road",,,ME15 9RB,3776619578,D,B,67,81,House,Semi-Detached,2018-07-11,E07000110,E14000804,Kent,2018-07-11,marketed sale,61,76,203,116.0,5.1,36,2.9,143.0,92.0,795.0,699.0,157.0,76.0,142.0,dual,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,4.0,6.0,6.0,46.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,"Room heaters, mains gas",,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 46% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"16, Norrington Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2018-07-11 17:10:38,owner-occupied,,,200003674974.0,Address Matched +570872109102019112816275886212488,"4, Kings Road",Headcorn,,TN27 9QU,1124902868,D,B,64,82,House,Semi-Detached,2019-11-28,E07000110,E14000700,Kent,2019-11-28,rental (private),62,79,232,103.0,2.9,42,1.4,120.0,60.0,494.0,455.0,95.0,64.0,69.0,dual,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,0.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"4, Kings Road, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,England and Wales: 1950-1966,2019-11-28 16:27:58,rental (private),,,200003698723.0,Address Matched +1488564959262017012413582127048183,"6, Godfrey Meadow",Hollingbourne,,ME17 1FZ,8237587478,B,B,84,91,House,Detached,2017-01-24,E07000110,E14000700,Kent,2017-01-24,new dwelling,84,92,83,39.0,2.3,14,1.1,85.0,85.0,426.0,428.0,118.0,65.0,169.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,"Room heaters, wood logs",,,Average thermal transmittance 0.12 W/m-¦K,Very Good,Very Good,"Boiler and underfloor heating, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"6, Godfrey Meadow, Hollingbourne",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2017-01-24 13:58:21,owner-occupied,10.0,10.0,10091196219.0,Address Matched +82572010612016040513222194760642,"8, Cloudberry Close",,,ME16 0LY,6298045468,C,B,77,82,House,Detached,2016-03-31,E07000110,E14000804,Kent,2016-04-05,ECO assessment,68,75,133,95.0,4.8,25,3.4,120.0,93.0,1192.0,1015.0,162.0,97.0,188.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,9.0,9.0,71.0,1.0,From main system,Good,Good,"Solid, limited insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, partial insulation (assumed)",Average,Average,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 71% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,2.41,,N,natural,"8, Cloudberry Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2016-04-05 13:22:21,owner-occupied,,,200003721724.0,Address Matched +1225834627112014102308010892249821,13 Roland House,Harris Place,Tovil,ME15 6BP,8182729278,C,B,76,81,Flat,End-Terrace,2014-10-22,E07000110,E14000804,Kent,2014-10-23,rental (private),70,69,216,222.0,2.1,38,2.1,53.0,58.0,255.0,164.0,151.0,127.0,55.0,dual,N,Ground,N,,2603.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,70.0,0.0,"Electric immersion, off-peak",Average,Very Poor,"Suspended, insulated (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Room heaters, electric",Poor,Very Poor,Programmer and appliance thermostats,Good,Good,Low energy lighting in 70% of fixed outlets,Very Good,Very Good,electricity (not community),0.0,heated corridor,,,0.0,,natural,"13 Roland House, Harris Place, Tovil",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2014-10-23 08:01:08,rental (private),10.0,7.0,10022901581.0,Address Matched +397866180802009111613502365919068,35 Oxford Gardens,,,ME15 8FJ,3849289668,C,C,76,77,House,Mid-Terrace,2009-11-16,E07000110,E14000700,Kent,2009-11-16,new dwelling,83,83,131,128.0,1.6,20,1.5,50.0,41.0,200.0,201.0,167.0,167.0,80.0,standard tariff,,NO DATA!,,,2207.0,,NO DATA!,NO DATA!,,,,4.0,0.0,From main system,Poor,Good,Average thermal transmittance 0.18 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.28 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.12 W/m?K,Very Good,Very Good,"Air source heat pump, underfloor, electric",Average,Very Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",0.0,NO DATA!,,2.4,,,NO DATA!,35 Oxford Gardens,Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2009-11-16 13:50:23,,5.0,4.0,10014308974.0,Address Matched +676265099602011101015394086999608,"33, Brenchley Road",,,ME15 6UH,7668999868,D,D,61,67,House,End-Terrace,2011-10-10,E07000110,E14000804,Kent,2011-10-10,rental (social),61,67,239,198.0,3.7,45,3.1,79.0,44.0,631.0,543.0,105.0,105.0,81.98,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,20.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,"Room heaters, electric",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 20% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,2.49,0.0,,natural,"33, Brenchley Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2011-10-10 15:39:40,rental (social),10.0,2.0,200003665071.0,Address Matched +1568861315952017082109504895230050,"1, Saxon Way",Tovil,,ME15 6AL,23553578,B,A,84,92,House,Detached,2017-08-21,E07000110,E14000804,Kent,2017-08-21,new dwelling,85,93,87,36.0,2.1,14,0.8,77.0,77.0,364.0,365.0,109.0,59.0,143.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.10 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.27 W/m-¦K,Very Good,Very Good,"Room heaters, wood logs",,,Average thermal transmittance 0.18 W/m-¦K,Good,Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"1, Saxon Way, Tovil",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2017-08-21 09:50:48,owner-occupied,45.0,45.0,10093304955.0,Address Matched +162343510832008101515152512968990,"41a, Cumberland Avenue",,,ME15 7JP,1052952568,D,B,67,81,Maisonette,Detached,2008-10-13,E07000110,E14000700,Kent,2008-10-15,marketed sale,61,78,305,173.0,3.0,51,1.7,34.0,26.0,363.0,218.0,100.0,81.0,57.8,Single,Y,1st,Y,2.0,2107.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,70.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 100mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Poor,Poor,Low energy lighting in 70% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.4,0.0,N,natural,"41a, Cumberland Avenue",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2008-10-15 15:15:25,owner-occupied,,,200003712955.0,Address Matched +1419511099502016030215192941260628,"28, Chippendayle Drive",Harrietsham,,ME17 1AD,6555792478,D,B,66,82,House,Detached,2016-03-02,E07000110,E14000700,Kent,2016-03-02,marketed sale,60,78,222,112.0,4.5,39,2.3,83.0,83.0,758.0,625.0,187.0,80.0,115.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,7.0,7.0,85.0,0.0,From main system,Good,Good,"Suspended, limited insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, mains gas",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 85% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"28, Chippendayle Drive, Harrietsham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1996-2002,2016-03-02 15:19:29,owner-occupied,,,200003703027.0,Address Matched +1711489889852019040414032597010769,"251d, Boxley Road",Penenden Heath,,ME14 2AS,7940973678,C,B,69,83,Bungalow,Detached,2019-04-04,E07000110,E14000804,Kent,2019-04-04,marketed sale,65,80,205,104.0,3.5,36,1.8,81.0,81.0,558.0,488.0,134.0,80.0,97.0,Unknown,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,80.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"251d, Boxley Road, Penenden Heath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2019-04-04 14:03:25,owner-occupied,,,200003703579.0,Address Matched +1773111189922019121713142098938501,Flat 3,"21, St. Lawrence Drive",,ME16 9FH,920828678,B,B,85,85,Flat,Detached,2019-12-17,E07000110,E14000804,Kent,2019-12-17,new dwelling,89,89,74,74.0,0.8,13,0.8,57.0,57.0,144.0,144.0,70.0,70.0,64.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Flat 3, 21, St. Lawrence Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2019-12-17 13:14:20,unknown,20.0,20.0,10093303663.0,Address Matched +394320662902020080715240064900438,"81, Gladstone Road",Penenden Heath,,ME14 2AX,3970069668,E,B,54,83,House,End-Terrace,2020-08-07,E07000110,E14000804,Kent,2020-08-07,marketed sale,47,81,360,108.0,4.2,64,1.3,55.0,55.0,760.0,442.0,86.0,59.0,66.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"81, Gladstone Road, Penenden Heath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2020-08-07 15:24:00,owner-occupied,,,200003701791.0,Address Matched +1667723269842018101518015467089658,Flat 170,Brenchley House,123-135 Week Street,ME14 1FZ,2853160678,C,C,75,75,Flat,Mid-Terrace,2018-10-15,E07000110,E14000804,Kent,2018-10-15,new dwelling,81,81,242,242.0,0.9,43,0.9,20.0,20.0,153.0,153.0,91.0,91.0,20.0,standard tariff,,top floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,Community scheme,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.30 W/m-¦K,Good,Good,,,,Average thermal transmittance 0.18 W/m-¦K,Good,Good,Community scheme,Good,Good,"Charging system linked to use of community heating, programmer and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,NO DATA!,,NO DATA!,,,,,NO DATA!,"Flat 170, Brenchley House, 123-135 Week Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2018-10-15 18:01:54,unknown,6.0,6.0,10094440846.0,Address Matched +739581779802013020716163492470738,"98, London Road",,,ME16 0DP,5881374968,E,C,51,73,House,Semi-Detached,2013-02-07,E07000110,E14000804,Kent,2013-02-07,marketed sale,45,68,279,145.0,6.9,54,3.6,117.0,63.0,1140.0,840.0,134.0,74.0,127.0,Single,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,2.0,7.0,7.0,13.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 13% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"98, London Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2013-02-07 16:16:34,owner-occupied,15.0,2.0,200003658843.0,Address Matched +768456699942012033016263798627808,"3, Monarch Close",,,ME15 6ZS,4984296968,B,B,90,90,House,Mid-Terrace,2012-03-30,E07000110,E14000804,Kent,2012-03-30,new dwelling,93,93,39,39.0,0.7,7,0.7,48.0,48.0,201.0,201.0,95.0,95.0,87.22,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,10.0,,From main system,Good,Good,Average thermal transmittance 0.15 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.19 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.12 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.39,,,NO DATA!,"3, Monarch Close",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2012-03-30 16:26:37,,10.0,10.0,10014313129.0,Address Matched +1822757239552020090315293528000175,"15, Gilbert Way",,,ME17 3GU,1571981778,B,A,83,95,House,Detached,2020-09-03,E07000110,E14000700,Kent,2020-09-03,new dwelling,86,97,93,5.0,1.3,16,0.1,67.0,67.0,226.0,226.0,72.0,43.0,78.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"15, Gilbert Way",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2020-09-03 15:29:35,unknown,7.0,7.0,10094441854.0,Address Matched +936797505732013052607170121278701,"14, Ravens Dane Close",Downswood,,ME15 8XL,101788078,E,B,53,84,Bungalow,End-Terrace,2013-05-25,E07000110,E14000700,Kent,2013-05-26,marketed sale,39,70,531,214.0,4.2,94,1.7,60.0,30.0,509.0,372.0,119.0,62.0,44.0,dual,N,NODATA!,,,2401.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,0.0,0.0,"Electric immersion, off-peak",Average,Very Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,"Pitched, 100 mm loft insulation",Average,Average,Electric storage heaters,Poor,Very Poor,Manual charge control,Poor,Poor,No low energy lighting,Very Poor,Very Poor,electricity (not community),0.0,NO DATA!,,,0.0,,natural,"14, Ravens Dane Close, Downswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2013-05-26 07:17:01,owner-occupied,5.0,0.0,200003691603.0,Address Matched +1476457709542016090310375446767398,"14, Rawdon Road",,,ME15 6PT,7534007478,D,B,58,84,House,Mid-Terrace,2016-08-31,E07000110,E14000804,Kent,2016-09-03,marketed sale,51,81,286,100.0,5.3,50,1.9,144.0,72.0,949.0,557.0,113.0,77.0,105.0,dual,Y,NODATA!,,,2106.0,91.0,double glazing installed before 2002,Normal,3.0,4.0,4.0,0.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Mostly double glazing,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, mains gas",,,"Pitched, 270 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,2.55,,N,natural,"14, Rawdon Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2016-09-03 10:37:54,owner-occupied,,,200003692805.0,Address Matched +1215514259062014100517482128248714,"5, Grasslands",Langley,,ME17 3JJ,1296558278,D,C,63,74,House,Semi-Detached,2014-10-04,E07000110,E14000700,Kent,2014-10-05,marketed sale,58,69,194,135.0,5.9,37,4.2,139.0,78.0,1085.0,1096.0,139.0,94.0,158.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,7.0,7.0,21.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Roof room(s), no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 21% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"5, Grasslands, Langley",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2014-10-05 17:48:21,owner-occupied,14.0,3.0,200003697813.0,Address Matched +1100739547432014030416482297078700,"5, Regency Place",,,ME15 6NG,4037740278,B,B,83,83,House,Mid-Terrace,2014-03-04,E07000110,E14000804,Kent,2014-03-04,new dwelling,87,87,82,82.0,1.2,16,1.2,55.0,55.0,239.0,239.0,74.0,74.0,76.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.11 W/mA?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.20 W/mA?K,Very Good,Very Good,,,,Average thermal transmittance 0.12 W/mA?K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"5, Regency Place",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2014-03-04 16:48:22,NO DATA!,23.0,23.0,10014314857.0,Address Matched +597037629242012022707573882422038,"4, Greenborough Close",,,ME15 8JN,8207024868,C,C,70,71,Flat,Semi-Detached,2012-02-27,E07000110,E14000700,Kent,2012-02-27,rental (social),74,75,242,234.0,1.5,46,1.4,33.0,21.0,265.0,266.0,82.0,82.0,31.68,Single,Y,Ground,N,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,40.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 40% of fixed outlets,Average,Average,mains gas (not community),0.0,no corridor,,2.41,0.0,,natural,"4, Greenborough Close",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2012-02-27 07:57:38,rental (social),5.0,2.0,200003723092.0,Address Matched +afa09508ab93912a84c9d73ada8d972d57d2594a17486a13f39a74f769072e52,FLAT 2,53 TONBRIDGE ROAD,,ME16 8SA,10001693264,F,B,34,89,House,Mid-Terrace,2021-07-29,E07000110,E14000804,Kent,2021-07-29,marketed sale,35,69,590,218.0,4.6,100,1.7,39.0,45.0,1094.0,417.0,209.0,95.0,46.0,dual,N,,,,,100.0,double glazing installed during or after 2002,Normal,2.0,2.0,2.0,100.0,0.0,"Electric immersion, off-peak",Poor,Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 150 mm loft insulation",Good,Good,"Room heaters, electric",Very Poor,Poor,Programmer and appliance thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,,,2.4,0.0,N,natural,"FLAT 2, 53 TONBRIDGE ROAD",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2021-07-29 10:42:55,Owner-occupied,9.0,,200003668827.0,Energy Assessor +1766114789132019112912421278978497,"28, Glebe Gardens",Lenham,,ME17 2QA,8718477678,B,B,88,89,House,Detached,2019-11-15,E07000110,E14000700,Kent,2019-11-29,marketed sale,87,89,64,56.0,2.2,11,1.9,101.0,101.0,373.0,374.0,103.0,56.0,192.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.22 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.15 W/m-¦K,Good,Good,"Boiler & underfloor, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"28, Glebe Gardens, Lenham",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2019-11-29 12:42:12,owner-occupied,10.0,10.0,10094441604.0,Address Matched +502255862262020072215440127798240,175 Wallis Place,Hart Street,,ME16 8FE,4278617768,C,C,77,77,Flat,Mid-Terrace,2020-07-21,E07000110,E14000804,Kent,2020-07-22,none of the above,78,78,149,149.0,1.6,26,1.6,62.0,62.0,262.0,262.0,113.0,113.0,62.0,dual,Y,4th,Y,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,(another dwelling below),NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Flat, insulated (assumed)",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,8.8,,,N,natural,"175 Wallis Place, Hart Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1991-1995,2020-07-22 15:44:01,rental (social),,,10022900783.0,Address Matched +896380929412013031116313699970406,"42, Titchfield Close",,,ME15 8TA,4609995078,C,C,73,77,Flat,Enclosed End-Terrace,2013-03-11,E07000110,E14000700,Kent,2013-03-11,rental (social),77,82,166,131.0,1.5,32,1.2,42.0,30.0,293.0,244.0,74.0,74.0,48.0,Single,Y,Ground,N,,2106.0,100.0,double glazing installed during or after 2002,More Than Typical,0.0,2.0,2.0,60.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"System built, with internal insulation",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 60% of fixed outlets,Good,Good,mains gas (not community),0.0,no corridor,,,0.0,,natural,"42, Titchfield Close",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2013-03-11 16:31:36,rental (social),5.0,3.0,200003727395.0,Address Matched +166395689202018112706391251280398,Flat 69 Lee Heights,Bambridge Court,,ME14 2LD,6271382568,C,B,77,83,Flat,Mid-Terrace,2018-11-01,E07000110,E14000804,Kent,2018-11-27,rental (private),74,74,171,169.0,2.2,29,2.1,84.0,66.0,253.0,164.0,203.0,173.0,75.0,Unknown,N,1st,N,,2602.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,64.0,0.0,"Electric immersion, off-peak",Poor,Poor,(another dwelling below),NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Room heaters, electric",Very Poor,Poor,Appliance thermostats,Good,Good,Low energy lighting in 64% of fixed outlets,Good,Good,electricity (not community),0.0,unheated corridor,12.57,,,N,natural,"Flat 69 Lee Heights, Bambridge Court",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2018-11-27 06:39:12,rental (private),,,10022893040.0,Address Matched +874925209732013012319412586278005,"20, Hillary Road",Penenden Heath,,ME14 2JR,566054078,E,B,43,86,House,Semi-Detached,2013-01-23,E07000110,E14000804,Kent,2013-01-23,marketed sale,39,87,355,59.0,6.5,68,1.1,90.0,52.0,965.0,395.0,242.0,72.0,95.0,Single,Y,NODATA!,,,2102.0,45.0,secondary glazing,Normal,0.0,5.0,3.0,27.0,0.0,"From main system, no cylinder thermostat",Poor,Poor,"Solid, no insulation (assumed)",,,Partial secondary glazing,Poor,Poor,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,Low energy lighting in 27% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"20, Hillary Road, Penenden Heath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2013-01-23 19:41:25,owner-occupied,11.0,3.0,200003707014.0,Address Matched +1248634277332017031414455599978901,Marylands,Maidstone Road,Staplehurst,TN12 0RH,7139980378,F,A,38,116,House,Detached,2017-03-13,E07000110,E14000804,Kent,2017-03-14,ECO assessment,29,105,280,-165.0,6.5,87,-1.1,56.0,56.0,1236.0,459.0,163.0,76.0,74.0,Single,N,NODATA!,,,2104.0,65.0,"double glazing, unknown install date",Normal,1.0,4.0,4.0,89.0,0.0,From main system,Poor,Poor,"Suspended, no insulation (assumed)",NO DATA!,,Partial double glazing,Poor,Poor,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, oil",Poor,Average,Programmer and room thermostat,Average,Average,Low energy lighting in 89% of fixed outlets,Very Good,Very Good,oil (not community),0.0,NO DATA!,,,,N,natural,"Marylands, Maidstone Road, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1900-1929,2017-03-14 14:45:55,owner-occupied,,,200003679667.0,Address Matched +1511686759602017011708165748939968,"17, Peverel Drive",Bearsted,,ME14 4PS,1630059478,C,B,72,83,House,Detached,2017-01-16,E07000110,E14000700,Kent,2017-01-17,marketed sale,67,79,169,98.0,4.1,30,2.4,80.0,80.0,695.0,627.0,148.0,88.0,138.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,7.0,7.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"17, Peverel Drive, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1991-1995,2017-01-17 08:16:57,owner-occupied,,,200003693879.0,Address Matched +1813300722502020072720364271102638,Walnut Tree,Morry Lane,East Sutton,ME17 3DR,1558021778,G,C,13,79,House,Detached,2020-07-27,E07000110,E14000700,Kent,2020-07-27,marketed sale,18,76,422,74.0,20.4,96,4.1,191.0,119.0,3410.0,1224.0,274.0,95.0,213.0,Single,N,NODATA!,,,2106.0,21.0,secondary glazing,Normal,1.0,10.0,10.0,36.0,0.0,"From main system, no cylinder thermostat",Very Poor,Very Poor,"Suspended, no insulation (assumed)",NO DATA!,,Some secondary glazing,Poor,Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Roof room(s), no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, oil",Poor,Average,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 36% of fixed outlets,Average,Average,oil (not community),0.0,NO DATA!,,,,N,natural,"Walnut Tree, Morry Lane, East Sutton",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2020-07-27 20:36:42,owner-occupied,,,200003725156.0,Address Matched +afb877de744e4f69c20dbec9a25e396477d5f60ca05d0ddad542e2aa7bf2cc13,FLAT 10,ASCOT HOUSE,EPSOM CLOSE,ME15 8XF,10001614123,C,C,76,80,Flat,Mid-Terrace,2021-07-06,E07000110,E14000700,Kent,2021-07-06,rental,65,68,358,326.0,2.0,61,1.8,64.0,34.0,221.0,186.0,146.0,146.0,32.0,dual,N,01,Y,,,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,14.0,0.0,"Electric immersion, off-peak",Average,Poor,(another dwelling below),,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,Portable electric heaters (assumed),,,"Pitched, 200 mm loft insulation",Good,Good,Electric storage heaters,Average,Very Poor,Automatic charge control,Average,Average,Low energy lighting in 14% of fixed outlets,Poor,Poor,electricity (not community),0.0,no corridor,,2.32,0.0,N,natural,"FLAT 10, ASCOT HOUSE, EPSOM CLOSE",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2021-07-06 15:01:46,Rented (private),7.0,,200003681348.0,Energy Assessor +1673340849262018102417041711748418,East Lyewood House,Green Lane,Boughton Monchelsea,ME17 4LD,1120401678,B,A,83,104,House,Detached,2018-10-24,E07000110,E14000700,Kent,2018-10-24,new dwelling,84,103,89,-24.0,2.2,15,-0.7,88.0,88.0,383.0,383.0,94.0,94.0,149.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.20 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,"Room heaters, wood logs",,,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"East Lyewood House, Green Lane, Boughton Monchelsea",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2018-10-24 17:04:17,owner-occupied,30.0,30.0,200003729963.0,Address Matched +1443794489962016051606485914648126,"35a, Scott Street",,,ME14 2TA,2187864478,F,C,25,71,Flat,Mid-Terrace,2016-05-14,E07000110,E14000804,Kent,2016-05-16,rental (private),13,51,844,341.0,9.8,143,4.0,68.0,54.0,1414.0,432.0,274.0,146.0,69.0,Unknown,N,1st,Y,,2401.0,20.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,71.0,0.0,"Electric immersion, off-peak",Very Poor,Poor,(another dwelling below),NO DATA!,,Some double glazing,Very Poor,Very Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, electric",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 71% of fixed outlets,Very Good,Very Good,electricity (not community),0.0,no corridor,,2.7,,N,natural,"35a, Scott Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2016-05-16 06:48:59,rental (private),,,200003670405.0,Address Matched +1684881242832018121020501706978795,"25, Anerley Close",,,ME16 0RR,4536781678,D,B,60,82,Bungalow,Semi-Detached,2018-12-10,E07000110,E14000804,Kent,2018-12-10,marketed sale,54,79,292,113.0,3.7,51,1.5,93.0,52.0,620.0,456.0,96.0,64.0,72.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,4.0,4.0,22.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 22% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"25, Anerley Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2018-12-10 20:50:17,owner-occupied,,,200003659425.0,Address Matched +441044129922010021822242592488840,"43, Caernarvon Drive",,,ME15 6FJ,4966282768,F,F,34,38,House,Detached,2010-02-18,E07000110,E14000804,Kent,2010-02-18,marketed sale,54,58,353,326.0,4.3,53,4.0,86.0,43.0,752.0,710.0,293.0,293.0,80.52,Unknown,Y,NO DATA!,,,2699.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,0.0,0.0,No system present: electric immersion assumed,Very Poor,Poor,"Solid, insulated (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,No system present: electric heaters assumed,Very Poor,Poor,,Very Poor,Very Poor,No low energy lighting,Very Poor,Very Poor,To be used only when there is no heating/hot-water system,0.0,NO DATA!,,2.35,0.0,N,natural,"43, Caernarvon Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2010-02-18 22:24:25,owner-occupied,,,10022896319.0,Address Matched +263940349202019102108032361019158,Flat 79 Lee Heights,Bambridge Court,,ME14 2LD,4203040668,D,C,64,80,Flat,Mid-Terrace,2019-10-15,E07000110,E14000804,Kent,2019-10-21,rental (private),68,67,221,224.0,2.5,37,2.5,59.0,65.0,440.0,252.0,354.0,171.0,67.0,Single,N,3rd,Y,,2603.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,"Electric immersion, standard tariff",Very Poor,Poor,(another dwelling below),NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Room heaters, electric",Very Poor,Poor,Programmer and appliance thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,unheated corridor,5.55,,,N,natural,"Flat 79 Lee Heights, Bambridge Court",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2019-10-21 08:03:23,rental (private),,,10022893050.0,Address Matched +1575828709002017092105292550439788,Croxons,Somerfield Road,,ME16 8JJ,1036404578,F,D,33,61,House,Detached,2017-09-18,E07000110,E14000804,Kent,2017-09-21,marketed sale,21,42,426,233.0,17.0,88,9.9,136.0,94.0,2536.0,1719.0,339.0,113.0,194.0,Single,Y,NODATA!,,,2504.0,100.0,"double glazing, unknown install date",Normal,1.0,7.0,7.0,56.0,1.0,"Gas boiler/circulator, no cylinder thermostat",Poor,Poor,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, coal",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Warm air, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 56% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"Croxons, Somerfield Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2017-09-21 05:29:25,owner-occupied,,,200003657810.0,Address Matched +1795162782842020032513161062902958,"12, Hawkwood",,,ME16 0JQ,806789678,D,B,66,83,House,Detached,2020-03-25,E07000110,E14000804,Kent,2020-03-25,marketed sale,63,80,208,89.0,3.3,38,1.5,114.0,68.0,533.0,460.0,134.0,81.0,88.0,Single,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,33.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 33% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"12, Hawkwood",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2020-03-25 13:16:10,owner-occupied,,,200003705707.0,Address Matched +614008059802011040617473582590768,5 Gatehouse Lodge,Mote Park,,ME15 8FN,875755868,B,B,82,83,Flat,Detached,2011-04-06,E07000110,E14000700,Kent,2011-04-06,marketed sale,82,83,127,124.0,1.7,21,1.6,58.0,48.0,284.0,285.0,101.0,101.0,79.55,Single,Y,1st,Y,2.0,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,79.0,0.0,From main system,Very Good,Very Good,(other premises below),,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 79% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,heated corridor,,2.39,0.0,N,natural,"5 Gatehouse Lodge, Mote Park",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2003-2006,2011-04-06 17:47:35,owner-occupied,,,10014309494.0,Address Matched +1485584765852016100516214296069642,144 Ashford Road,Bearsted,,ME14 4NA,6215567478,F,C,28,74,Bungalow,Detached,2016-10-05,E07000110,E14000700,Kent,2016-10-05,marketed sale,23,68,524,152.0,10.0,96,3.1,118.0,66.0,1857.0,789.0,192.0,78.0,107.0,Unknown,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,21.0,1.0,From main system,Average,Average,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 21% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,2.56,,N,natural,"144 Ashford Road, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2016-10-05 16:21:42,owner-occupied,,,200003692467.0,Address Matched +1408081219942016013008165944262018,"63, Sherbourne Drive",,,ME16 8UG,947612478,E,B,49,91,House,End-Terrace,2016-01-29,E07000110,E14000804,Kent,2016-01-30,rental (private),35,92,522,35.0,5.0,88,0.4,81.0,39.0,625.0,282.0,254.0,67.0,56.0,dual,Y,NODATA!,,,2401.0,0.0,not defined,Normal,0.0,3.0,2.0,14.0,0.0,"Electric immersion, off-peak",Very Poor,Poor,"Solid, no insulation (assumed)",NO DATA!,,Single glazed,Very Poor,Very Poor,"Timber frame, as built, insulated (assumed)",Good,Good,Portable electric heaters (assumed),,,"Pitched, 100 mm loft insulation",Average,Average,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 14% of fixed outlets,Poor,Poor,electricity (not community),0.0,NO DATA!,,,,N,natural,"63, Sherbourne Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1976-1982,2016-01-30 08:16:59,rental (private),,,200003675252.0,Address Matched +1597736669342017122116421358532498,"11, Campion Way",Marden,,TN12 9GE,4368165578,B,A,85,96,House,Mid-Terrace,2017-12-21,E07000110,E14000804,Kent,2017-12-21,new dwelling,88,98,75,2.0,1.2,13,0.1,67.0,67.0,209.0,209.0,84.0,50.0,94.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.10 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.23 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.09 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"11, Campion Way, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,NO DATA!,2017-12-21 16:42:13,owner-occupied,45.0,45.0,10093305236.0,Address Matched +516173103032010072115561717268700,"26, Lower Road",,,ME15 7RG,27718768,D,C,59,70,House,End-Terrace,2010-07-21,E07000110,E14000804,Kent,2010-07-21,marketed sale,58,69,306,224.0,3.8,50,2.8,79.0,40.0,621.0,495.0,119.0,95.0,75.4,Unknown,Y,NO DATA!,,,2102.0,100.0,"double glazing, unknown install date",Normal,2.0,4.0,4.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.45,0.0,N,natural,"26, Lower Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2010-07-21 15:56:17,owner-occupied,,,200003695209.0,Address Matched +1565796549022017080814380203538513,3 Eastfield House,Woodford Road,,ME16 9BX,1024433578,C,C,73,76,Flat,Semi-Detached,2017-08-07,E07000110,E14000804,Kent,2017-08-08,rental (social),75,78,202,174.0,1.6,35,1.4,49.0,33.0,272.0,240.0,95.0,96.0,45.0,Single,Y,Ground,N,,2105.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,50.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,Programmer and at least two room thermostats,Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,unheated corridor,4.96,,,N,natural,"3 Eastfield House, Woodford Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2017-08-08 14:38:02,rental (social),,,200003686706.0,Address Matched +1359372960632016102515302847278997,"13, Banky Meadow",,,ME16 9JX,6757968378,D,C,66,79,House,Detached,2016-10-25,E07000110,E14000804,Kent,2016-10-25,marketed sale,63,76,180,106.0,6.1,32,3.6,137.0,103.0,1226.0,979.0,150.0,90.0,193.0,dual,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,7.0,7.0,67.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 67% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,2.34,,N,natural,"13, Banky Meadow",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2016-10-25 15:30:28,owner-occupied,,,200003667066.0,Address Matched +798409609502012060721174296920438,"24, Pinewood Drive",,,ME5 8XU,8507709968,C,A,73,93,House,Enclosed End-Terrace,2012-06-07,E07000110,E14000700,Kent,2012-06-07,rental (private),77,97,182,-3.0,1.4,35,0.0,40.0,24.0,264.0,249.0,62.0,45.0,40.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,2.0,2.0,33.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 33% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"24, Pinewood Drive",Maidstone,Faversham and Mid Kent,CHATHAM,England and Wales: 1976-1982,2012-06-07 21:17:42,rental (private),6.0,2.0,200003673564.0,Address Matched +1033743329222013120213401455518237,"10, Riverhead Close",,,ME16 0DG,3529275178,E,B,52,87,House,Semi-Detached,2013-10-29,E07000110,E14000804,Kent,2013-12-02,none of the above,48,89,329,52.0,4.1,64,0.7,44.0,44.0,633.0,356.0,223.0,68.0,65.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,90.0,0.0,"From main system, no cylinder thermostat",Poor,Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 90% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"10, Riverhead Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2013-12-02 13:40:14,rental (private),10.0,9.0,200003658632.0,Address Matched +1466540040752016072807234693260745,"22, Mangravet Avenue",,,ME15 9BQ,7551036478,C,B,70,86,House,Mid-Terrace,2016-07-27,E07000110,E14000700,Kent,2016-07-28,rental (social),68,85,206,84.0,2.8,36,1.2,103.0,51.0,438.0,415.0,140.0,81.0,76.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"System built, with external insulation",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,2.44,,N,natural,"22, Mangravet Avenue",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2016-07-28 07:23:46,rental (social),,,200003713840.0,Address Matched +814315368152016072211161491260801,"32, Pembroke Road",Coxheath,,ME17 4QJ,8129810078,D,C,58,72,House,Semi-Detached,2016-07-22,E07000110,E14000804,Kent,2016-07-22,marketed sale,55,70,280,175.0,4.3,49,2.7,64.0,64.0,880.0,809.0,136.0,85.0,88.0,dual,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,2.4,,N,natural,"32, Pembroke Road, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2016-07-22 11:16:14,owner-occupied,,,200003714706.0,Address Matched +1311879859222016032220503395298306,2 Hop Villas,Wilden Park Road,Staplehurst,TN12 0HP,958535378,E,A,42,95,House,Semi-Detached,2016-03-21,E07000110,E14000804,Kent,2016-03-22,rental (private),36,83,271,-14.0,6.8,70,1.1,126.0,68.0,935.0,561.0,167.0,101.0,96.0,dual,N,NODATA!,,,2106.0,33.0,"double glazing, unknown install date",Normal,1.0,4.0,4.0,13.0,3.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Partial double glazing,Poor,Poor,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, oil",Average,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 13% of fixed outlets,Poor,Poor,oil (not community),0.0,NO DATA!,,2.5,,N,natural,"2 Hop Villas, Wilden Park Road, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1900-1929,2016-03-22 20:50:33,rental (private),,,10000071693.0,Address Matched +1429214406852016033119045096760647,"66, Robins Avenue",Lenham,,ME17 2HP,6798663478,D,B,66,83,House,Semi-Detached,2016-03-30,E07000110,E14000700,Kent,2016-03-31,marketed sale,60,79,239,114.0,4.0,42,1.9,78.0,60.0,678.0,573.0,168.0,77.0,94.0,Unknown,Y,NODATA!,,,2106.0,92.0,"double glazing, unknown install date",Normal,3.0,5.0,5.0,71.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Mostly double glazing,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 71% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,2.34,,N,natural,"66, Robins Avenue, Lenham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2016-03-31 19:04:50,owner-occupied,,,200003705225.0,Address Matched +546714239542010092918533784009868,"8, Cornhill Place",,,ME15 6GX,5513230868,C,C,73,74,Flat,End-Terrace,2010-09-16,E07000110,E14000804,Kent,2010-09-29,new dwelling,81,82,153,148.0,1.6,24,1.6,54.0,36.0,192.0,194.0,271.0,271.0,67.9,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,,,"Electric immersion, standard tariff",Very Poor,Poor,(other premises below),,,Fully double glazed,Good,Good,Average thermal transmittance 0.32 W/m?K,Good,Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.3,,,NO DATA!,"8, Cornhill Place",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2010-09-29 18:53:37,,,,10022895013.0,Address Matched +51232379802018111614301248389168,"83, Ashford Road",Bearsted,,ME14 4BS,4844373468,D,C,63,73,House,Semi-Detached,2018-11-16,E07000110,E14000700,Kent,2018-11-16,marketed sale,54,64,225,166.0,6.3,40,4.7,89.0,89.0,1087.0,974.0,107.0,107.0,158.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,7.0,7.0,100.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,"Room heaters, mains gas",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"83, Ashford Road, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2018-11-16 14:30:12,owner-occupied,,,200003692008.0,Address Matched +1370913659642015100419351236950828,"12, Oliver Road",Staplehurst,,TN12 0TD,2604359378,D,B,58,82,House,Detached,2015-10-02,E07000110,E14000804,Kent,2015-10-04,FiT application,49,78,275,105.0,6.3,49,2.5,106.0,72.0,1109.0,661.0,176.0,79.0,131.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,3.0,6.0,6.0,53.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 53% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"12, Oliver Road, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1967-1975,2015-10-04 19:35:12,owner-occupied,,,200003678762.0,Address Matched +1172368459542016021908262228569528,"19, Mallings Drive",Bearsted,,ME14 4HE,8540155278,D,B,64,84,House,Detached,2016-02-12,E07000110,E14000700,Kent,2016-02-19,ECO assessment,58,81,234,89.0,4.3,42,1.7,103.0,64.0,750.0,516.0,151.0,87.0,103.0,Single,Y,NODATA!,,,2107.0,100.0,double glazing installed during or after 2002,Normal,0.0,6.0,6.0,39.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 12 mm loft insulation",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 39% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"19, Mallings Drive, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2016-02-19 08:26:22,owner-occupied,,,200003694698.0,Address Matched +1129982559262014042419231482128814,13 Three Tees,White Horse Lane,Otham,ME15 8RG,1824552278,F,D,30,66,Bungalow,Semi-Detached,2014-04-22,E07000110,E14000700,Kent,2014-04-24,none of the above,39,69,474,202.0,4.7,84,2.0,51.0,51.0,939.0,626.0,279.0,146.0,56.0,Single,N,NODATA!,,,2699.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,0.0,57.0,0.0,"Electric immersion, standard tariff",Very Poor,Very Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 75 mm loft insulation",Average,Average,No system present: electric heaters assumed,Very Poor,Very Poor,,Very Poor,Very Poor,Low energy lighting in 57% of fixed outlets,Good,Good,To be used only when there is no heating/hot-water system,0.0,NO DATA!,,,0.0,,natural,"13 Three Tees, White Horse Lane, Otham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2014-04-24 19:23:14,owner-occupied,7.0,4.0,200003690509.0,Address Matched +b05927aa60a1a884c6927aef8c7c30daf1806a7b435f6225d54f11adb376fd31,28 CASTLE WAY,,,ME17 4GQ,10001450835,B,A,84,93,House,Detached,2021-07-16,E07000110,E14000700,Kent,2021-07-16,new dwelling,85,94,83,29.0,1.9,15,0.7,91.0,91.0,302.0,302.0,90.0,60.0,127.0,standard tariff,,,N,,,100.0,,,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.1 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.39,,,,28 CASTLE WAY,Maidstone,Faversham and Mid Kent,BOUGHTON MONCHELSEA,2021,2021-07-16 13:32:38,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,4.0,,10095449220.0,Energy Assessor +406831404512009120211430604019576,"23, Highcroft Green",,,ME15 9PN,5612440768,D,D,65,65,House,End-Terrace,2009-12-02,E07000110,E14000700,Kent,2009-12-02,rental (social),59,59,300,296.0,3.6,50,3.6,50.0,36.0,556.0,559.0,87.0,87.0,71.71,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,More Than Typical,1.0,3.0,3.0,60.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"System built, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 60% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.39,0.0,N,natural,"23, Highcroft Green",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2009-12-02 11:43:06,rental (social),,,200003723642.0,Address Matched +503603169222010062309174107578110,"19, Prospect Place",,,ME16 8EG,1021627768,D,D,57,59,House,Mid-Terrace,2010-06-23,E07000110,E14000804,Kent,2010-06-23,marketed sale,53,54,352,346.0,3.9,59,3.8,68.0,38.0,624.0,630.0,86.0,86.0,65.79,dual,Y,NO DATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,20.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 20% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.16,0.0,N,natural,"19, Prospect Place",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2010-06-23 09:17:41,owner-occupied,,,200003667558.0,Address Matched +805983830912012062518203396220994,Hinecorn,Stockbury Valley,Stockbury,ME9 7QD,9482069968,E,C,40,69,Bungalow,Detached,2012-06-25,E07000110,E14000700,Kent,2012-06-25,marketed sale,31,55,325,159.0,8.8,79,4.7,112.0,56.0,1247.0,921.0,202.0,90.0,112.0,Unknown,N,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,0.0,1.0,From main system,Average,Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, oil",Average,Average,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,oil (not community),0.0,NO DATA!,,,0.0,,natural,"Hinecorn, Stockbury Valley, Stockbury",Maidstone,Faversham and Mid Kent,SITTINGBOURNE,England and Wales: 1983-1990,2012-06-25 18:20:33,owner-occupied,18.0,0.0,200003655086.0,Address Matched +1090043079442018061422071211989048,Primrose Cottage,Fairbourne Lane,Harrietsham,ME17 1LN,482379178,E,B,51,89,Bungalow,Detached,2018-06-14,E07000110,E14000700,Kent,2018-06-14,marketed sale,43,80,219,31.0,8.5,56,2.6,164.0,85.0,942.0,628.0,125.0,77.0,154.0,Single,N,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,6.0,6.0,8.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, oil",Average,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 8% of fixed outlets,Very Poor,Very Poor,oil (not community),0.0,NO DATA!,,,,N,natural,"Primrose Cottage, Fairbourne Lane, Harrietsham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2018-06-14 22:07:12,owner-occupied,,,200003702177.0,Address Matched +731731959962011121217311393328239,"77a, Wallis Avenue",,,ME15 9HS,3932593968,C,C,74,76,Flat,Semi-Detached,2011-12-12,E07000110,E14000700,Kent,2011-12-12,rental (social),77,78,156,147.0,1.9,30,1.8,65.0,36.0,315.0,319.0,80.0,80.0,63.62,Single,Y,1st,Y,,2106.0,90.0,double glazing installed before 2002,More Than Typical,0.0,3.0,3.0,17.0,0.0,From main system,Good,Good,(other premises below),,,Mostly double glazing,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 17% of fixed outlets,Poor,Poor,mains gas (not community),0.0,no corridor,,2.36,0.0,,natural,"77a, Wallis Avenue",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2011-12-12 17:31:13,rental (social),6.0,1.0,200003683036.0,Address Matched +234521797132009030516163237068606,"11, Hampshire Drive",,,ME15 7EU,9637678568,D,C,60,73,House,Semi-Detached,2009-03-05,E07000110,E14000700,Kent,2009-03-05,marketed sale,54,69,297,201.0,5.0,49,3.4,96.0,48.0,649.0,473.0,128.0,97.0,114.9,Single,Y,NO DATA!,,,2102.0,54.0,double glazing installed before 2002,Normal,1.0,4.0,4.0,0.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Partial double glazing,Poor,Poor,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.44,0.0,N,natural,"11, Hampshire Drive",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2009-03-05 16:16:32,owner-occupied,,,200003711433.0,Address Matched +1536121042552017041311033492930754,"19, Laight Road",,,ME17 3FU,7490221578,B,A,84,96,House,Semi-Detached,2017-04-13,E07000110,E14000700,Kent,2017-04-13,new dwelling,86,98,89,0.0,1.2,16,0.0,56.0,56.0,211.0,211.0,83.0,49.0,78.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"19, Laight Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2017-04-13 11:03:34,unknown,7.0,7.0,10093303898.0,Address Matched +1363032379222015112515561108358435,"8, Lenside Drive",Bearsted,,ME15 8UE,3025798378,D,B,57,84,House,Semi-Detached,2015-11-25,E07000110,E14000700,Kent,2015-11-25,assessment for green deal,51,82,339,106.0,4.0,60,1.3,90.0,45.0,732.0,462.0,100.0,65.0,67.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,2.0,4.0,4.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"8, Lenside Drive, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2015-11-25 15:56:11,owner-occupied,,,200003691284.0,Address Matched +1561580364512017072120113390230251,"5, Meadow Walk",,,ME15 7RY,2120403578,D,B,60,84,House,Semi-Detached,2017-07-21,E07000110,E14000804,Kent,2017-07-21,marketed sale,52,81,281,100.0,5.1,50,1.9,71.0,71.0,931.0,530.0,111.0,77.0,103.0,Single,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,90.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 90% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"5, Meadow Walk",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2017-07-21 20:11:33,owner-occupied,,,200003695418.0,Address Matched +744262199232012012718560866268509,"6, Waterlow Road",,,ME14 2TR,9906515968,D,D,56,59,House,Mid-Terrace,2012-01-27,E07000110,E14000804,Kent,2012-01-27,marketed sale,51,54,282,263.0,5.1,54,4.8,87.0,50.0,865.0,835.0,90.0,90.0,110.01,Single,Y,NODATA!,,,2106.0,75.0,double glazing installed during or after 2002,Normal,2.0,6.0,5.0,25.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Partial double glazing,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 25% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,2.27,0.0,,natural,"6, Waterlow Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2012-01-27 18:56:08,owner-occupied,12.0,3.0,200003703227.0,Address Matched +1384891371652016042716074595260943,Flat 38,Miller House,43-51 Lower Stone Street,ME15 6GB,9314150478,C,C,79,79,Flat,NO DATA!,2016-04-27,E07000110,E14000804,Kent,2016-04-27,none of the above,70,70,258,258.0,1.9,44,1.9,32.0,32.0,194.0,194.0,141.0,141.0,43.0,off-peak 10 hour,,mid floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Poor,Poor,(other premises below),,,Fully double glazed,Good,Good,Average thermal transmittance 0.66 W/m-¦K,Average,Average,,,,(other premises above),,,"Boiler and radiators, electric",Poor,Very Poor,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"Flat 38, Miller House, 43-51 Lower Stone Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2016-04-27 16:07:45,unknown,4.0,4.0,10091196135.0,Address Matched +597487949962019122015425834318661,"43, Rosemary Road",Bearsted,,ME15 8NP,6368424868,C,B,71,89,Bungalow,Mid-Terrace,2019-12-19,E07000110,E14000700,Kent,2019-12-20,rental (social),72,89,222,64.0,1.9,39,0.6,39.0,39.0,346.0,317.0,77.0,52.0,48.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, with external insulation",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"43, Rosemary Road, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2019-12-20 15:42:58,rental (social),,,200003693056.0,Address Matched +666548049962011081618205299568209,"25, St. Lukes Avenue",,,ME14 5AL,916439868,F,C,38,71,House,Semi-Detached,2011-08-16,E07000110,E14000804,Kent,2011-08-16,rental (private),35,70,416,173.0,7.7,80,3.2,95.0,50.0,1111.0,519.0,267.0,114.0,96.24,Single,Y,NODATA!,,,2104.0,90.0,double glazing installed before 2002,Normal,1.0,5.0,3.0,9.0,0.0,"From main system, no cylinder thermostat",Very Poor,Very Poor,"Solid, no insulation (assumed)",,,Mostly double glazing,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Average,Average,Programmer and room thermostat,Average,Average,Low energy lighting in 9% of fixed outlets,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,2.37,0.0,,natural,"25, St. Lukes Avenue",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2011-08-16 18:20:52,rental (private),11.0,1.0,200003705789.0,Address Matched +1346055879262015072309334947678815,"11, Latter Road",,,ME17 3FD,1482777378,B,A,84,106,House,Detached,2015-07-23,E07000110,E14000700,Kent,2015-07-23,new dwelling,84,104,88,-31.0,2.2,15,-0.7,74.0,74.0,399.0,399.0,93.0,93.0,141.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"11, Latter Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2015-07-23 09:33:49,unknown,1.0,1.0,10091194029.0,Address Matched +1637196420552018060407434294080557,"13, Northumberland Road",,,ME15 7JU,5722048578,E,C,53,73,House,Semi-Detached,2018-06-01,E07000110,E14000700,Kent,2018-06-04,marketed sale,39,58,315,177.0,7.5,65,4.6,108.0,72.0,1100.0,876.0,160.0,75.0,115.0,Unknown,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,2.0,6.0,6.0,50.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Average,Average,"Room heaters, coal",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"13, Northumberland Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2018-06-04 07:43:42,owner-occupied,,,200003712217.0,Address Matched +337477111112009080315292706010063,"7, Sussex Road",,,ME15 7HY,336165668,C,C,74,75,House,Semi-Detached,2009-08-03,E07000110,E14000700,Kent,2009-08-03,rental (social),71,72,201,195.0,2.8,33,2.7,71.0,42.0,414.0,420.0,93.0,93.0,83.86,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,30.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"System built, with internal insulation",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 30% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.47,0.0,N,natural,"7, Sussex Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2009-08-03 15:29:27,rental (social),,,200003715673.0,Address Matched +1680792457352019120309390495019466,9 Braeburn Way,Coxheath,,ME17 4FU,4660751678,B,A,83,94,House,Detached,2019-12-03,E07000110,E14000804,Kent,2019-12-03,new dwelling,84,95,94,21.0,1.6,17,0.4,68.0,68.0,265.0,265.0,75.0,45.0,94.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.14 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.10 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"9 Braeburn Way, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2019-12-03 09:39:04,unknown,20.0,20.0,10094440211.0,Address Matched +283220822652009050723493106010560,"7, Deerhurst Gardens",Bower Mount Road,,ME16 8AY,5044261668,E,D,53,66,House,Detached,2009-05-07,E07000110,E14000804,Kent,2009-05-07,marketed sale,54,68,305,220.0,6.4,44,4.5,112.0,76.0,940.0,706.0,184.0,139.0,164.32,dual,Y,NO DATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,8.0,8.0,53.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, wood logs",,,"Pitched, 100mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Poor,Poor,Low energy lighting in 53% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.39,0.0,N,natural,"7, Deerhurst Gardens, Bower Mount Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2009-05-07 23:49:31,owner-occupied,,,200003722023.0,Address Matched +452841488312010031116584796900672,53 St. Catherine's Road,,,ME15 9WP,6250863768,B,B,87,87,House,Mid-Terrace,2010-03-11,E07000110,E14000700,Kent,2010-03-11,new dwelling,88,88,86,86.0,1.2,14,1.2,61.0,61.0,228.0,228.0,57.0,57.0,87.46,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,,From main system,Very Good,Very Good,Average thermal transmittance 0.18 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.23 W/m?K,Very Good,Very Good,"Room heaters, electric",,,Average thermal transmittance 0.10 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Very Good,Very Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in 86% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.31,,,NO DATA!,53 St. Catherine's Road,Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2010-03-11 16:58:47,,,,10014311713.0,Address Matched +1365871457912015091915092591950937,Well House,Tyland Lane,Sandling,ME14 3BH,9761719378,D,C,57,73,House,Detached,2015-09-18,E07000110,E14000700,Kent,2015-09-19,marketed sale,51,68,251,153.0,7.2,44,4.4,152.0,83.0,1348.0,1123.0,169.0,80.0,164.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,4.0,9.0,9.0,17.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 17% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"Well House, Tyland Lane, Sandling",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2015-09-19 15:09:25,owner-occupied,,,200003676393.0,Address Matched +241115010062009031022320078118751,Grove Mill Cottage,Hasteds,Hollingbourne,ME17 1UQ,5769198568,C,C,70,74,House,Detached,2009-03-09,E07000110,E14000700,Kent,2009-03-10,non marketed sale,66,70,216,193.0,3.9,36,3.5,78.0,52.0,502.0,457.0,124.0,124.0,108.14,Single,Y,NO DATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,50.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Poor,Poor,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,0.0,N,natural,"Grove Mill Cottage, Hasteds, Hollingbourne",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2009-03-10 22:32:00,owner-occupied,,,200003700603.0,Address Matched +1674621141512018102913153591289668,"121, Edmett Way",,,ME17 3FA,6842111678,B,A,85,94,House,Semi-Detached,2018-10-29,E07000110,E14000700,Kent,2018-10-29,new dwelling,86,95,78,20.0,1.6,14,0.4,83.0,83.0,264.0,264.0,79.0,47.0,119.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.23 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.17 W/m-¦K,Good,Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"121, Edmett Way",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2018-10-29 13:15:35,unknown,13.0,13.0,10093307060.0,Address Matched +895367475652013030819290799070105,"7, Smallhythe Close",Bearsted,,ME15 8JJ,1530595078,C,B,69,87,House,Semi-Detached,2013-03-08,E07000110,E14000700,Kent,2013-03-08,marketed sale,70,89,181,53.0,2.5,34,0.8,90.0,45.0,380.0,343.0,119.0,68.0,72.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,4.0,4.0,0.0,0.0,From main system,Good,Good,"Suspended, limited insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"7, Smallhythe Close, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1996-2002,2013-03-08 19:29:07,owner-occupied,14.0,0.0,200003726448.0,Address Matched +544783819142010092414314487002348,Flat 198 Scotney Gardens,St. Peters Street,,ME16 0GW,3183810868,B,B,83,83,Flat,Mid-Terrace,2010-09-24,E07000110,E14000804,Kent,2010-09-24,marketed sale,77,78,214,210.0,1.6,32,1.6,46.0,33.0,102.0,104.0,121.0,121.0,50.38,dual,N,2nd,N,4.0,2402.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,60.0,0.0,"Electric immersion, off-peak",Average,Poor,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,(another dwelling above),,,Electric storage heaters,Average,Poor,Automatic charge control,Average,Average,Low energy lighting in 60% of fixed outlets,Good,Good,electricity - this is for backwards compatibility only and should not be used,0.0,heated corridor,,2.34,0.0,N,natural,"Flat 198 Scotney Gardens, St. Peters Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2010-09-24 14:31:44,owner-occupied,,,10022893565.0,Address Matched +596559709262011062822275074588609,"17, Mangravet Avenue",,,ME15 9BG,753024868,D,D,67,68,House,Semi-Detached,2011-06-28,E07000110,E14000700,Kent,2011-06-28,rental (social),66,67,211,204.0,3.1,41,3.0,68.0,41.0,494.0,497.0,99.0,99.0,77.32,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,33.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 33% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,2.49,0.0,,natural,"17, Mangravet Avenue",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2011-06-28 22:27:50,rental (social),9.0,3.0,200003713774.0,Address Matched +1632516809962018051722385918238228,Flat 12 Ragstone Lodge,Peel Street,,ME14 2WB,2104018578,B,B,81,82,Flat,End-Terrace,2018-05-17,E07000110,E14000804,Kent,2018-05-17,rental (social),85,86,106,97.0,1.1,19,1.0,82.0,48.0,161.0,165.0,97.0,97.0,61.0,Single,Y,3rd,N,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,29.0,0.0,From main system,Good,Good,(another dwelling below),NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 29% of fixed outlets,Average,Average,mains gas (not community),0.0,heated corridor,,,,N,natural,"Flat 12 Ragstone Lodge, Peel Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1991-1995,2018-05-17 22:38:59,rental (social),,,10022896741.0,Address Matched +1737737369902019071918582860519518,Kilndown,Weavering Street,Weavering,ME14 5JJ,8928965678,D,B,61,82,House,Semi-Detached,2019-07-19,E07000110,E14000700,Kent,2019-07-19,marketed sale,52,77,247,108.0,6.6,43,2.9,178.0,93.0,1011.0,692.0,195.0,75.0,152.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,2.0,6.0,6.0,8.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, partial insulation (assumed)",Average,Average,,,,"Pitched, limited insulation (assumed)",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 8% of fixed outlets,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"Kilndown, Weavering Street, Weavering",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1976-1982,2019-07-19 18:58:28,owner-occupied,,,200003688021.0,Address Matched +539065681032010091117104039968609,"9, McKenzie Court",,,ME14 1JU,8979679768,B,B,82,85,Flat,Enclosed Mid-Terrace,2010-09-11,E07000110,E14000804,Kent,2010-09-11,rental (private),80,81,173,163.0,1.6,26,1.5,81.0,41.0,90.0,95.0,133.0,133.0,61.6,dual,N,1st,N,5.0,2402.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,0.0,0.0,"Electric immersion, off-peak",Poor,Poor,(other premises below),,,Fully double glazed,Good,Good,"System built, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,(another dwelling above),,,Electric storage heaters,Poor,Very Poor,Automatic charge control,Average,Average,No low energy lighting,Very Poor,Very Poor,electricity - this is for backwards compatibility only and should not be used,0.0,heated corridor,,2.21,0.0,N,natural,"9, McKenzie Court",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2010-09-11 17:10:40,rental (private),,,10014306616.0,Address Matched +614702069442011040719280082590838,"17, North Street",Sutton Valence,,ME17 3AP,3402265868,G,G,2,12,House,Mid-Terrace,2011-04-07,E07000110,E14000700,Kent,2011-04-07,marketed sale,1,7,1117,954.0,22.0,168,19.0,81.0,81.0,2857.0,2218.0,356.0,356.0,129.91,dual,N,NO DATA!,,,2401.0,0.0,not defined,Normal,1.0,2.0,1.0,100.0,0.0,No system present: electric immersion assumed,Poor,Poor,"Solid, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,Portable electric heaters,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,Electric storage heaters,Poor,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,3.35,0.0,N,natural,"17, North Street, Sutton Valence",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1900-1929,2011-04-07 19:28:00,owner-occupied,,,10014309424.0,Address Matched +1721729745132019051915215940978504,"5, Chilston Road",Lenham,,ME17 2PR,4480554678,D,B,63,84,House,Semi-Detached,2019-05-17,E07000110,E14000700,Kent,2019-05-19,marketed sale,57,82,273,100.0,3.8,48,1.4,69.0,69.0,573.0,433.0,171.0,69.0,78.0,Single,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,80.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,"Room heaters, mains gas",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"5, Chilston Road, Lenham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2019-05-19 15:21:59,owner-occupied,,,200003711132.0,Address Matched +1525690349142019012921580353012118,"57, Kingsley Road",,,ME15 7UW,6134840578,D,B,61,81,House,Mid-Terrace,2019-01-29,E07000110,E14000804,Kent,2019-01-29,rental (private),54,77,294,133.0,4.2,52,2.0,60.0,60.0,740.0,540.0,96.0,65.0,82.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,6.0,6.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"57, Kingsley Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2019-01-29 21:58:03,rental (private),,,200003696025.0,Address Matched +624888615932011050513481970068703,"5, Sage Court",,,ME16 0ZQ,1320736868,D,D,62,63,House,Mid-Terrace,2011-05-05,E07000110,E14000804,Kent,2011-05-05,marketed sale,66,67,219,212.0,3.0,40,2.9,69.0,43.0,431.0,435.0,236.0,236.0,75.3,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,40.0,0.0,No system present: electric immersion assumed,Very Poor,Very Poor,"Suspended, insulated (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 40% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,2.491,0.0,,natural,"5, Sage Court",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2011-05-05 13:48:19,owner-occupied,10.0,4.0,10022896402.0,Address Matched +1533619709802017040412541954130248,"101, Edmett Way",,,ME17 3FA,5891401578,B,B,81,81,Flat,Detached,2017-04-04,E07000110,E14000700,Kent,2017-04-04,new dwelling,86,86,112,112.0,0.9,20,0.9,37.0,37.0,187.0,187.0,66.0,66.0,46.0,standard tariff,,ground floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.27 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,Programmer and at least two room thermostats,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"101, Edmett Way",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2017-04-04 12:54:19,unknown,1.0,1.0,10091194011.0,Address Matched +598430829642012051723103385429138,14 Crundale,Union Street,,ME14 1TX,9677924868,C,C,75,79,Flat,End-Terrace,2012-05-17,E07000110,E14000804,Kent,2012-05-17,rental (social),78,84,151,114.0,1.5,29,1.1,45.0,30.0,245.0,193.0,93.0,95.0,51.0,Single,Y,2nd,N,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,50.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,unheated corridor,1.0,,0.0,,natural,"14 Crundale, Union Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2012-05-17 23:10:33,rental (social),6.0,3.0,200003700833.0,Address Matched +887854439042013022308453804572298,"16, St. Francis Close",Penenden Heath,,ME14 2FR,4018835078,C,B,72,83,House,Semi-Detached,2013-02-21,E07000110,E14000804,Kent,2013-02-23,marketed sale,71,82,152,81.0,3.0,29,1.7,94.0,55.0,466.0,475.0,118.0,75.0,104.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,More Than Typical,2.0,6.0,6.0,30.0,0.0,From main system,Good,Good,"Suspended, limited insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 30% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"16, St. Francis Close, Penenden Heath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2013-02-23 08:45:38,owner-occupied,27.0,8.0,10022892030.0,Address Matched +1755122699202019100218575960610828,"8, Cedar Drive",Barming,,ME16 9HD,6220796678,D,C,55,71,House,Detached,2019-10-02,E07000110,E14000804,Kent,2019-10-02,marketed sale,45,62,291,185.0,7.5,51,4.8,126.0,90.0,1258.0,1027.0,136.0,83.0,146.0,Single,Y,NODATA!,,,2106.0,95.0,"double glazing, unknown install date",Normal,3.0,8.0,8.0,60.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Mostly double glazing,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 60% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"8, Cedar Drive, Barming",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2019-10-02 18:57:59,owner-occupied,,,200003665654.0,Address Matched +758779309062012030900060436318802,Flat 5 Telford House,Boxley Road,,ME14 2TN,319026968,C,C,70,75,Flat,Semi-Detached,2012-03-09,E07000110,E14000804,Kent,2012-03-09,rental (social),70,77,196,152.0,2.5,38,1.9,39.0,39.0,421.0,343.0,99.0,78.0,66.4,Single,Y,Ground,N,,2107.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,no corridor,,2.31,0.0,,natural,"Flat 5 Telford House, Boxley Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2012-03-09 00:06:04,rental (social),7.0,7.0,200003704287.0,Address Matched +451739049922010031020083143508810,"8, Knowlton Gardens",,,ME16 8UP,1461463768,C,C,78,80,Flat,Enclosed End-Terrace,2010-03-10,E07000110,E14000804,Kent,2010-03-10,rental (social),72,73,274,262.0,1.9,41,1.8,30.0,30.0,159.0,140.0,115.0,115.0,45.3,Single,N,1st,N,3.0,2401.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,90.0,0.0,"Electric immersion, off-peak",Poor,Poor,(other premises below),,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,(another dwelling above),,,Electric storage heaters,Poor,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 90% of fixed outlets,Very Good,Very Good,electricity - this is for backwards compatibility only and should not be used,0.0,unheated corridor,6.2,2.3,0.0,N,natural,"8, Knowlton Gardens",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2010-03-10 20:08:31,rental (social),,,200003724261.0,Address Matched +341477279262015022408042755678665,"27, Chancery Lane",,,ME15 6EG,6516785668,D,B,60,86,House,End-Terrace,2015-02-23,E07000110,E14000804,Kent,2015-02-24,none of the above,53,85,293,83.0,4.6,52,1.3,56.0,56.0,865.0,462.0,106.0,71.0,89.0,Single,Y,NODATA!,,,2107.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, no insulation",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"27, Chancery Lane",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2015-02-24 08:04:27,owner-occupied,,,200003696833.0,Address Matched +364904452552009091712574205910168,Flat 25 Pine Lodge,Tonbridge Road,,ME16 8TA,1885257668,E,C,52,69,Flat,NO DATA!,2009-09-17,E07000110,E14000804,Kent,2009-09-17,rental (private),46,63,433,284.0,4.5,72,2.9,63.0,32.0,626.0,448.0,142.0,103.0,61.72,Single,Y,1st,N,3.0,2104.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,0.0,0.0,From main system,Average,Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Average,Good,Programmer and room thermostat,Poor,Poor,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,unheated corridor,3.8,2.38,0.0,N,natural,"Flat 25 Pine Lodge, Tonbridge Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2009-09-17 12:57:42,rental (private),,,200003657887.0,Address Matched +1211279398132019080610512989078405,"63, Grove Road",,,ME15 9AU,9519428278,D,C,68,80,House,Mid-Terrace,2019-08-06,E07000110,E14000700,Kent,2019-08-06,marketed sale,64,76,237,142.0,3.0,42,1.9,62.0,62.0,533.0,533.0,84.0,56.0,72.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,90.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 90% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"63, Grove Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2019-08-06 10:51:29,owner-occupied,,,200003709977.0,Address Matched +339473270442009080519300862510558,"43, Gloucester Road",,,ME15 7HS,6431575668,E,E,50,51,House,Semi-Detached,2009-08-05,E07000110,E14000700,Kent,2009-08-05,marketed sale,53,54,368,358.0,4.9,52,4.8,50.0,50.0,902.0,876.0,108.0,108.0,94.44,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,2.0,6.0,6.0,95.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 95% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.41,0.0,N,natural,"43, Gloucester Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2009-08-05 19:30:08,owner-occupied,,,200003711828.0,Address Matched +1465115189332017012511202592278008,September House,Church Lane,Bearsted,ME14 4EE,8832026478,B,B,85,90,House,Detached,2017-01-25,E07000110,E14000700,Kent,2017-01-25,new dwelling,86,90,70,47.0,2.9,12,1.9,102.0,102.0,589.0,589.0,82.0,82.0,249.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,"From main system, flue gas heat recovery, waste water heat recovery",Very Good,Very Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.16 W/m-¦K,Very Good,Very Good,"Room heaters, wood logs",,,Average thermal transmittance 0.12 W/m-¦K,Very Good,Very Good,"Boiler & underfloor, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"September House, Church Lane, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2017-01-25 11:20:25,unknown,20.0,20.0,200003694953.0,Address Matched +527432192742020091815153573809288,"3, Hereford Road",,,ME15 7NE,9746498768,D,B,64,81,House,Semi-Detached,2020-09-18,E07000110,E14000700,Kent,2020-09-18,marketed sale,67,84,239,114.0,3.1,36,1.4,69.0,69.0,694.0,555.0,88.0,58.0,87.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,100.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,"Room heaters, wood logs",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"3, Hereford Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2020-09-18 15:15:35,owner-occupied,,,200003712424.0,Address Matched +1526429249962017031012465560708253,"81, Milton Street",,,ME16 8LD,5613450578,C,C,71,79,House,Mid-Terrace,2017-03-10,E07000110,E14000804,Kent,2017-03-10,marketed sale,65,73,171,122.0,5.1,30,3.7,104.0,104.0,913.0,829.0,118.0,118.0,170.0,Unknown,Y,NODATA!,,,2106.0,95.0,"double glazing, unknown install date",More Than Typical,4.0,5.0,5.0,79.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Mostly double glazing,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 79% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"81, Milton Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2017-03-10 12:46:55,owner-occupied,,,200003655495.0,Address Matched +b14c919d18687340ff1593bcbc18d0a6615722c292b38c85fdc43095f676378c,42 Calder Road,,,ME14 2QG,10001562067,E,C,52,79,House,Semi-Detached,2021-08-09,E07000110,E14000804,Kent,2021-08-10,marketed sale,46,75,377,151.0,4.4,67,1.8,94.0,62.0,664.0,511.0,163.0,64.0,66.0,dual,Y,,,,,100.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,50.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,,,2.4,0.0,N,natural,42 Calder Road,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2021-08-10 07:28:09,Owner-occupied,4.0,,200003670806.0,Energy Assessor +1180532453432014073008514130778705,"27, Queensgate",,,ME16 0FB,5590706278,C,B,76,86,Flat,End-Terrace,2014-07-30,E07000110,E14000804,Kent,2014-07-30,rental,77,77,130,134.0,2.2,23,2.3,63.0,70.0,251.0,146.0,306.0,148.0,96.0,Unknown,N,2nd,N,,2602.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,"Electric immersion, standard tariff",Very Poor,Very Poor,(other premises below),,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Room heaters, electric",Very Poor,Very Poor,Appliance thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,heated corridor,,,0.0,,natural,"27, Queensgate",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2014-07-30 08:51:41,owner-occupied,7.0,7.0,10022896202.0,Address Matched +943551039402013061919012008970478,"58, Oaktree Avenue",,,ME15 9AX,8417139078,C,B,69,88,House,Mid-Terrace,2013-06-03,E07000110,E14000700,Kent,2013-06-19,marketed sale,68,89,183,47.0,2.7,35,0.7,54.0,54.0,404.0,327.0,156.0,70.0,77.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,78.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 78% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"58, Oaktree Avenue",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2013-06-19 19:01:20,owner-occupied,9.0,7.0,200003713602.0,Address Matched +920107769042014031309242204770918,"12, Horwood Way",Harrietsham,,ME17 1FH,5095467078,B,B,86,86,House,Detached,2013-12-09,E07000110,E14000700,Kent,2014-03-13,new dwelling,88,88,70,70.0,1.1,13,1.1,51.0,51.0,272.0,272.0,93.0,93.0,81.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.17 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"12, Horwood Way, Harrietsham",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2014-03-13 09:24:22,NO DATA!,12.0,12.0,10014314914.0,Address Matched +973054349042013071719215713179838,"17, Gleneagles Drive",,,ME15 6FH,2064441178,D,B,64,88,House,Semi-Detached,2013-07-17,E07000110,E14000804,Kent,2013-07-17,rental (private),63,89,223,48.0,2.9,43,0.7,80.0,42.0,470.0,336.0,143.0,72.0,69.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,9.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 9% of fixed outlets,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"17, Gleneagles Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2013-07-17 19:21:57,rental (private),11.0,1.0,200003683413.0,Address Matched +331803903652009072318071802210360,"9, Greensands",Walderslade,,ME5 9DQ,3061325668,D,C,61,70,House,Detached,2009-07-23,E07000110,E14000700,Kent,2009-07-23,marketed sale,57,66,292,230.0,4.3,48,3.4,105.0,52.0,584.0,502.0,145.0,116.0,88.6,dual,Y,NO DATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,0.0,6.0,6.0,0.0,1.0,From main system,Good,Good,"Solid, limited insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, mains gas",,,"Pitched, 200mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Poor,Poor,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.3,0.0,N,natural,"9, Greensands, Walderslade",Maidstone,Faversham and Mid Kent,CHATHAM,England and Wales: 1996-2002,2009-07-23 18:07:18,owner-occupied,,,200003674101.0,Address Matched +917406815732013053006541583278807,"49, Bicknor Road",,,ME15 9NX,1773847078,E,B,54,86,House,End-Terrace,2013-05-29,E07000110,E14000700,Kent,2013-05-30,assessment for green deal,50,87,295,58.0,4.3,57,0.9,70.0,44.0,641.0,357.0,198.0,74.0,76.0,Single,Y,NODATA!,,,2107.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,40.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 40% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"49, Bicknor Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2013-05-30 06:54:15,owner-occupied,15.0,6.0,200003679838.0,Address Matched +b162e6b98aa4b29901264feaca621e127f55e62a110409dfc05b0dcf75f444da,165 Sutton Road,,,ME15 9AB,10001379211,C,B,73,87,House,Semi-Detached,2021-09-14,E07000110,E14000700,Kent,2021-09-14,marketed sale,71,86,181,76.0,2.7,32,1.2,68.0,68.0,410.0,370.0,119.0,76.0,83.0,Single,Y,,,,,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.33,0.0,N,natural,165 Sutton Road,Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2021-09-14 20:43:36,Owner-occupied,11.0,,200003713338.0,Energy Assessor +b16e716466a7362f7eaad6caca8cb3c774aba7d18661f17ce39f8476ec5c89e0,5 KNOTT COURT,MAIDSTONE,,ME14 2XH,10001121657,D,C,68,73,Flat,End-Terrace,2021-06-26,E07000110,E14000804,Kent,2021-07-30,not sale or rental,70,76,279,223.0,1.7,49,1.4,43.0,33.0,294.0,236.0,100.0,101.0,35.0,Single,Y,00,N,,,10.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,67.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Some double glazing,Very Poor,Very Poor,"Cavity wall, filled cavity",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 67% of fixed outlets,Good,Good,mains gas (not community),0.0,no corridor,,2.6,0.0,N,natural,"5 KNOTT COURT, MAIDSTONE",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1991-1995,2021-07-30 14:56:54,Rented (social),6.0,,200003724236.0,Energy Assessor +576826959342011010620480883290848,"26a, Cumberland Avenue",,,ME15 7JJ,3319652868,C,B,75,81,Flat,Semi-Detached,2011-01-04,E07000110,E14000700,Kent,2011-01-06,rental (social),72,78,218,171.0,2.1,36,1.7,49.0,33.0,330.0,281.0,128.0,109.0,59.33,Single,Y,1st,Y,2.0,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,50.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.49,0.0,N,natural,"26a, Cumberland Avenue",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2011-01-06 20:48:08,rental (social),,,200003712915.0,Address Matched +1407334772752016012813421291260243,"9, Bridger Way",,,ME17 3FE,2302212478,B,A,83,95,House,Semi-Detached,2016-01-28,E07000110,E14000700,Kent,2016-01-28,new dwelling,86,98,94,3.0,1.2,16,0.1,55.0,55.0,233.0,233.0,84.0,49.0,76.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"9, Bridger Way",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2016-01-28 13:42:12,unknown,1.0,1.0,10091194045.0,Address Matched +1573897881332017091110403825978907,"4, Chaffinch Drive",Coxheath,,ME17 4FF,8715983578,B,A,83,97,House,Semi-Detached,2017-09-11,E07000110,E14000804,Kent,2017-09-11,new dwelling,87,100,96,-14.0,1.0,17,-0.1,45.0,45.0,193.0,193.0,72.0,42.0,62.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.14 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.20 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"4, Chaffinch Drive, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2017-09-11 10:40:38,owner-occupied,11.0,11.0,10093302633.0,Address Matched +151557589742012041716053459029638,"47, Worcester Road",,,ME15 7LU,6720980568,D,B,64,86,House,Semi-Detached,2012-04-17,E07000110,E14000700,Kent,2012-04-17,marketed sale,63,86,209,64.0,3.3,40,1.1,93.0,49.0,479.0,375.0,145.0,69.0,83.0,dual,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,11.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 11% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"47, Worcester Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2012-04-17 16:05:34,owner-occupied,9.0,1.0,200003712316.0,Address Matched +686979787352017050814081597030097,"2, Malus Close",,,ME5 9SU,761770968,D,B,61,81,House,Detached,2017-05-08,E07000110,E14000700,Kent,2017-05-08,marketed sale,54,77,259,115.0,4.9,47,2.3,78.0,78.0,819.0,619.0,191.0,78.0,104.0,dual,Y,NODATA!,,,2106.0,95.0,double glazing installed during or after 2002,Normal,0.0,6.0,6.0,92.0,1.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Mostly double glazing,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 92% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"2, Malus Close",Maidstone,Faversham and Mid Kent,CHATHAM,England and Wales: 1983-1990,2017-05-08 14:08:15,owner-occupied,,,200003709234.0,Address Matched +1592260629802017112708314355532278,Flat 4,Queen Anne Court,10 Queen Anne Road,ME14 1HB,7849125578,B,B,84,84,Flat,Detached,2017-11-23,E07000110,E14000804,Kent,2017-11-27,new dwelling,90,90,68,68.0,0.8,12,0.8,52.0,52.0,159.0,159.0,80.0,80.0,64.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.18 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Flat 4, Queen Anne Court, 10 Queen Anne Road",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2017-11-27 08:31:43,unknown,8.0,8.0,10093306179.0,Address Matched +b18e2b6156f86d2c2c49ca36cea18c2489d1d8ec9a483184f3290c401ce661f3,27 ELLIS FIELD,OTHAM,,ME15 8YL,10001442500,B,A,85,96,House,Semi-Detached,2021-08-11,E07000110,E14000804,Kent,2021-08-11,new dwelling,88,99,76,-3.0,1.2,13,0.0,72.0,72.0,204.0,204.0,71.0,43.0,88.0,standard tariff,,,N,,,100.0,,,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.18 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.39,,,,"27 ELLIS FIELD, OTHAM",Maidstone,Maidstone and The Weald,OTHAM,2021,2021-08-11 11:40:53,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,11.0,,10094440501.0,Address Matched +b1780e36620d3a72b5ab362e3a643cde7257f829dc9c942d9df582cafb3986d8,FLAT,ROSE VILLA,HIGH STREET,TN12 0AP,10001682288,E,C,41,77,Maisonette,End-Terrace,2021-07-09,E07000110,E14000804,Kent,2021-07-11,rental,34,75,425,137.0,8.4,75,2.7,104.0,104.0,1301.0,414.0,208.0,112.0,111.0,Unknown,Y,01,Y,,,100.0,secondary glazing,Normal,1.0,5.0,5.0,85.0,0.0,"From main system, no cylinder thermostat",Average,Average,(other premises below),,,Full secondary glazing,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Roof room(s), ceiling insulated",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,Low energy lighting in 85% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,no corridor,,2.52,0.0,N,natural,"FLAT, ROSE VILLA, HIGH STREET",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: before 1900,2021-07-11 12:43:36,Rented (private),13.0,,200003679130.0,Energy Assessor +1567963879652017081617001694930552,Top Floor Flat,21 Hardy Street,,ME14 2SH,5212943578,D,C,57,78,Flat,Mid-Terrace,2017-08-16,E07000110,E14000804,Kent,2017-08-16,rental (private),51,81,364,141.0,3.4,64,1.3,39.0,39.0,629.0,240.0,95.0,85.0,53.0,Unknown,Y,1st,Y,,2107.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,100.0,0.0,From main system,Good,Good,(another dwelling below),NO DATA!,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,no corridor,,,,N,natural,"Top Floor Flat, 21 Hardy Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2017-08-16 17:00:16,rental (private),,,200003728682.0,Address Matched +1185899399022014081312152766568204,"21, Wrangleden Close",,,ME15 9LL,601946278,C,B,70,85,Bungalow,Semi-Detached,2014-08-06,E07000110,E14000700,Kent,2014-08-13,none of the above,69,86,174,66.0,2.6,34,1.0,62.0,62.0,479.0,408.0,132.0,83.0,79.0,Unknown,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,75.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"21, Wrangleden Close",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2014-08-13 12:15:27,owner-occupied,20.0,15.0,200003682498.0,Address Matched +1469814159802016090709574549660918,Ewell Manor,Ewell Lane,West Farleigh,ME15 0NG,6861256478,C,C,69,77,House,NO DATA!,2016-08-09,E07000110,E14000804,Kent,2016-09-07,new dwelling,94,102,120,85.0,2.3,4,-0.9,150.0,150.0,2571.0,2576.0,233.0,123.0,517.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Poor,Good,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.10 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Room heaters, wood logs",Poor,Very Good,Programmer and room thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (community),,NO DATA!,,,,,NO DATA!,"Ewell Manor, Ewell Lane, West Farleigh",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2016-09-07 09:57:45,unknown,25.0,25.0,200003654885.0,Address Matched +1834e9f0d2830af980e980722a437ac186e1c8bcf44f624ebe1d4444c269cb0a,6 KNOTT COURT,MAIDSTONE,,ME14 2XH,10001147621,C,C,70,72,Flat,End-Terrace,2021-06-26,E07000110,E14000804,Kent,2021-07-30,not sale or rental,72,74,259,240.0,1.6,46,1.5,44.0,33.0,252.0,237.0,115.0,115.0,35.0,Single,Y,01,Y,,,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,67.0,0.0,From main system,Good,Good,(another dwelling below),,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 67% of fixed outlets,Good,Good,mains gas (not community),0.0,no corridor,,2.7,0.0,N,natural,"6 KNOTT COURT, MAIDSTONE",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1991-1995,2021-07-30 14:58:42,Rented (social),6.0,,200003724235.0,Energy Assessor +1652776539062018080113221939598768,"2, Roberts Close",Marden,,TN12 9GJ,6363359578,B,A,84,96,House,Mid-Terrace,2018-08-01,E07000110,E14000804,Kent,2018-08-01,new dwelling,87,99,79,-6.0,1.1,14,-0.1,62.0,62.0,182.0,182.0,79.0,48.0,80.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.19 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"2, Roberts Close, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,NO DATA!,2018-08-01 13:22:19,unknown,15.0,15.0,10093305386.0,Address Matched +2839159942010060721392448600338,"19, Roman Way",Boughton Monchelsea,,ME17 4SG,2986356468,B,B,83,83,House,Semi-Detached,2010-06-07,E07000110,E14000700,Kent,2010-06-07,marketed sale,81,81,117,117.0,2.3,20,2.3,65.0,65.0,329.0,329.0,118.0,118.0,85.36,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,100.0,0.0,From main system,Very Good,Very Good,"Solid, insulated (assumed)",,,Fully double glazed,Good,Good,"Timber frame, as built, insulated (assumed)",Good,Good,,,,"Roof room(s), insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.3,0.0,N,natural,"19, Roman Way, Boughton Monchelsea",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2007 onwards,2010-06-07 21:39:24,owner-occupied,,,10022896545.0,Address Matched +579384179402011011411574885299948,32 Newlyn Court,Tufton Street,,ME14 1EZ,1438972868,C,C,73,76,Maisonette,Mid-Terrace,2011-01-14,E07000110,E14000804,Kent,2011-01-14,rental (social),67,69,265,246.0,2.9,39,2.7,63.0,45.0,220.0,234.0,191.0,153.0,73.06,dual,N,2nd,Y,4.0,2402.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,60.0,0.0,"Electric immersion, off-peak",Poor,Poor,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, 250 mm loft insulation",Very Good,Very Good,Electric storage heaters,Average,Poor,Automatic charge control,Average,Average,Low energy lighting in 60% of fixed outlets,Good,Good,electricity - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.3,0.0,N,natural,"32 Newlyn Court, Tufton Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2011-01-14 11:57:48,rental (social),,,200003688155.0,Address Matched +788957339962012051914213048718702,"11, Oaklands",,,ME15 6SD,406348968,C,B,73,83,House,Detached,2012-05-19,E07000110,E14000804,Kent,2012-05-19,marketed sale,71,81,136,82.0,4.0,26,2.4,81.0,81.0,582.0,576.0,155.0,73.0,151.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,6.0,6.0,83.0,0.0,"From main system, no cylinder thermostat",Average,Average,"Solid, insulated (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, mains gas",,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 83% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"11, Oaklands",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2012-05-19 14:21:30,owner-occupied,12.0,10.0,10022901647.0,Address Matched +1031215025512013102508491895279512,7-8 St. Helens Cottages,St. Helens Lane,West Farleigh,ME15 0JZ,5207555178,E,B,51,84,House,End-Terrace,2013-10-24,E07000110,E14000804,Kent,2013-10-25,none of the above,45,82,282,77.0,6.6,54,1.9,70.0,70.0,1097.0,588.0,195.0,79.0,122.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,89.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, mains gas",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 89% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"7-8 St. Helens Cottages, St. Helens Lane, West Farleigh",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2013-10-25 08:49:18,owner-occupied,9.0,8.0,10014310126.0,Address Matched +1607618639642018021610181955667708,"17, Tolhurst Way",Lenham,,ME17 2BY,2665236578,B,A,84,96,House,Mid-Terrace,2016-09-30,E07000110,E14000700,Kent,2018-02-16,new dwelling,86,98,89,3.0,1.3,16,0.1,60.0,60.0,200.0,200.0,98.0,62.0,82.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.12 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.18 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"17, Tolhurst Way, Lenham",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2018-02-16 10:18:19,unknown,9.0,9.0,10093303687.0,Address Matched +625350995932011050520260375068004,"17, Twyford Court",,,ME14 5RX,9405046868,C,C,69,73,Flat,NO DATA!,2011-05-05,E07000110,E14000804,Kent,2011-05-05,marketed sale,69,75,204,168.0,2.5,39,2.1,41.0,41.0,387.0,341.0,125.0,96.0,64.89,Single,Y,Ground,N,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,3.0,3.0,86.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 86% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,heated corridor,,2.36,0.0,,natural,"17, Twyford Court",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2011-05-05 20:26:03,owner-occupied,7.0,6.0,200003727455.0,Address Matched +40441749102013110719124347370368,"25, Bensted Close",Hunton,,ME15 0SD,1192143468,E,C,42,77,House,Semi-Detached,2013-11-06,E07000110,E14000804,Kent,2013-11-07,marketed sale,51,82,241,61.0,4.4,53,1.4,91.0,53.0,1012.0,693.0,329.0,134.0,83.0,dual,N,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,27.0,1.0,From main system,Poor,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, LPG",Poor,Average,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 27% of fixed outlets,Average,Average,LPG (not community),0.0,NO DATA!,,,0.0,,natural,"25, Bensted Close, Hunton",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2013-11-07 19:12:43,owner-occupied,11.0,3.0,200003662496.0,Address Matched +1306350928852015040912013499050334,"37, Marion Crescent",,,ME15 7DZ,3423894378,E,B,51,82,Bungalow,Detached,2015-04-09,E07000110,E14000700,Kent,2015-04-09,marketed sale,44,78,370,123.0,5.3,65,1.8,86.0,52.0,821.0,552.0,260.0,72.0,81.0,Single,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,1.0,4.0,3.0,33.0,0.0,"From main system, no cylinder thermostat",Poor,Poor,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 270 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 33% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"37, Marion Crescent",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2015-04-09 12:01:34,owner-occupied,,,200003685041.0,Address Matched +465338389432014111115561255968392,"17, Camden Street",,,ME14 1UU,8215354768,C,B,69,89,House,Mid-Terrace,2014-11-11,E07000110,E14000804,Kent,2014-11-11,assessment for green deal,72,92,199,33.0,1.9,38,0.4,67.0,33.0,385.0,328.0,70.0,46.0,50.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,2.0,2.0,2.0,0.0,0.0,From main system,Good,Good,"To unheated space, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"17, Camden Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2014-11-11 15:56:12,rental (social),6.0,0.0,200003699083.0,Address Matched +1550617956332017060818490088078604,Somerfield,Queens Road,,ME16 0HX,5428622578,D,C,68,76,House,Detached,2017-06-08,E07000110,E14000804,Kent,2017-06-08,marketed sale,64,73,159,115.0,8.1,28,5.9,230.0,129.0,1596.0,1390.0,150.0,150.0,291.0,dual,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,2.0,9.0,9.0,22.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 22% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"Somerfield, Queens Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2017-06-08 18:49:00,owner-occupied,,,200003659592.0,Address Matched +528714309102010081710294770909548,"3, River View",,,ME15 6SN,9186009768,D,C,59,71,House,Detached,2010-08-14,E07000110,E14000804,Kent,2010-08-17,rental (private),52,66,313,218.0,5.4,52,3.8,69.0,55.0,778.0,571.0,181.0,129.0,103.39,Single,Y,NO DATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,7.0,7.0,75.0,0.0,From main system,Average,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Average,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.38,0.0,N,natural,"3, River View",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2010-08-17 10:29:47,rental (private),,,200003666141.0,Address Matched +1139367295432014051206501915978300,Linden,Forsters,Langley,ME17 3JT,9035313278,D,B,64,86,Bungalow,Semi-Detached,2014-05-10,E07000110,E14000700,Kent,2014-05-12,marketed sale,63,87,226,59.0,2.9,43,0.8,71.0,41.0,529.0,401.0,98.0,61.0,66.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,29.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 29% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"Linden, Forsters, Langley",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2014-05-12 06:50:19,owner-occupied,14.0,4.0,200003722703.0,Address Matched +1751031569922019091314551986078161,"4, Reynolds Avenue",,,ME17 3GW,6809666678,B,A,82,96,House,Semi-Detached,2019-09-13,E07000110,E14000700,Kent,2019-09-13,new dwelling,86,99,103,-10.0,1.1,18,-0.1,50.0,50.0,200.0,200.0,64.0,37.0,60.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"4, Reynolds Avenue",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2019-09-13 14:55:19,unknown,7.0,7.0,10094441782.0,Address Matched +664838939412011081015530591990786,The Cottage,Crismill Lane,Thurnham,ME14 3LY,7680919868,E,D,48,68,House,Detached,2011-08-10,E07000110,E14000700,Kent,2011-08-10,marketed sale,37,57,307,191.0,7.1,77,4.4,58.0,58.0,1003.0,556.0,176.0,157.0,91.44,Single,N,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,5.0,5.0,80.0,0.0,From main system,Average,Average,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, oil",Average,Average,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,oil (not community),0.0,NO DATA!,,2.58,0.0,,natural,"The Cottage, Crismill Lane, Thurnham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2011-08-10 15:53:05,owner-occupied,10.0,8.0,200003721947.0,Address Matched +623930509022011050311131526378839,"43, Pembroke Road",Coxheath,,ME17 4QJ,3243036868,D,C,66,69,House,Semi-Detached,2011-05-03,E07000110,E14000804,Kent,2011-05-03,marketed sale,64,68,216,194.0,3.4,42,3.0,46.0,46.0,530.0,491.0,120.0,102.0,80.65,Single,N,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,90.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 90% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,2.33,0.0,,natural,"43, Pembroke Road, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2011-05-03 11:13:15,owner-occupied,10.0,9.0,200003714715.0,Address Matched +868853249062013010312475074678577,"8, Oaklands",,,ME15 6SD,7780404078,C,B,74,89,House,Semi-Detached,2013-01-03,E07000110,E14000804,Kent,2013-01-03,marketed sale,76,91,141,37.0,2.1,27,0.6,70.0,48.0,328.0,311.0,122.0,67.0,78.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,55.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 55% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"8, Oaklands",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2013-01-03 12:47:50,owner-occupied,11.0,6.0,10022901644.0,Address Matched +1576335047832018031410491781978907,"9, Cuthbert Close",Tovil,,ME15 6AY,4731904578,B,B,87,88,House,End-Terrace,2018-03-14,E07000110,E14000804,Kent,2018-03-14,new dwelling,87,89,70,60.0,1.3,12,1.1,73.0,73.0,286.0,286.0,92.0,62.0,106.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Very Good,Good,Average thermal transmittance 0.18 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.23 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"9, Cuthbert Close, Tovil",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2018-03-14 10:49:17,unknown,20.0,20.0,10093302875.0,Address Matched +1306280689062015040218355794598915,"5, The Laxey",Tovil,,ME15 6FX,1905894378,E,B,53,82,House,Detached,2015-04-01,E07000110,E14000804,Kent,2015-04-02,ECO assessment,45,78,326,115.0,6.8,58,2.4,135.0,67.0,1180.0,660.0,165.0,77.0,118.0,Single,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,2.0,6.0,6.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"5, The Laxey, Tovil",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2015-04-02 18:35:57,owner-occupied,,,200003666049.0,Address Matched +8533472832018020117365336068009,"24, Greenhill",Staplehurst,,TN12 0SU,7986032468,C,B,69,81,House,Detached,2018-02-01,E07000110,E14000804,Kent,2018-02-01,marketed sale,63,77,186,105.0,4.5,33,2.6,121.0,83.0,687.0,645.0,171.0,76.0,134.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,8.0,8.0,53.0,0.0,From main system,Good,Good,"Suspended, limited insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 53% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"24, Greenhill, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1996-2002,2018-02-01 17:36:53,owner-occupied,,,200003723126.0,Address Matched +1800416555552020060119034022000973,"11, Chiddingstone Close",,,ME15 8TP,9305520778,D,B,66,83,House,Semi-Detached,2020-06-01,E07000110,E14000700,Kent,2020-06-01,marketed sale,65,82,219,100.0,3.3,38,1.6,107.0,67.0,633.0,534.0,101.0,69.0,87.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,2.0,40.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Average,Average,"Room heaters, electric",,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 40% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"11, Chiddingstone Close",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2020-06-01 19:03:40,owner-occupied,,,200003680944.0,Address Matched +1709114069142019032717393263312238,Flat 176 Scotney Gardens,St. Peters Street,,ME16 0GT,5124363678,C,C,75,77,Flat,Mid-Terrace,2019-03-27,E07000110,E14000804,Kent,2019-03-27,rental (private),65,66,244,237.0,2.5,41,2.4,107.0,57.0,270.0,284.0,164.0,164.0,61.0,dual,N,1st,N,,2401.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,13.0,0.0,"Electric immersion, off-peak",Average,Poor,"To external air, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,(another dwelling above),,,Electric storage heaters,Poor,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 13% of fixed outlets,Poor,Poor,electricity (not community),0.0,heated corridor,,,,N,natural,"Flat 176 Scotney Gardens, St. Peters Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2019-03-27 17:39:32,rental (private),,,10022893543.0,Address Matched +428353685752010012816362499200973,"17, Beacon Road",Lenham,,ME17 2HJ,9321591768,D,C,56,72,House,Semi-Detached,2010-01-28,E07000110,E14000700,Kent,2010-01-28,rental (private),54,71,329,206.0,4.3,54,2.7,78.0,41.0,697.0,464.0,117.0,95.0,79.65,Single,Y,NO DATA!,,,2107.0,100.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,8.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 8% of fixed outlets,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.32,0.0,N,natural,"17, Beacon Road, Lenham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2010-01-28 16:36:24,rental (private),,,200003708320.0,Address Matched +763901700432014100120003651068392,"30, Trevor Drive",,,ME16 0QR,201366968,E,B,51,91,Bungalow,Semi-Detached,2014-10-01,E07000110,E14000804,Kent,2014-10-01,none of the above,49,93,352,24.0,3.5,68,0.3,70.0,35.0,711.0,319.0,82.0,56.0,52.0,Single,Y,NODATA!,,,2102.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, no insulation",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"30, Trevor Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2014-10-01 20:00:36,owner-occupied,10.0,0.0,200003659242.0,Address Matched +1743004609742019121109204563619598,"21, Seymour Drive",Marden,,TN12 9GS,5750806678,B,A,84,95,House,Semi-Detached,2019-12-11,E07000110,E14000804,Kent,2019-12-11,new dwelling,86,96,81,9.0,1.4,14,0.2,73.0,73.0,217.0,219.0,98.0,53.0,100.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.22 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.12 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"21, Seymour Drive, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,NO DATA!,2019-12-11 09:20:45,unknown,10.0,10.0,10094441060.0,Address Matched +590035939962018041115271653298158,The Old Stables,Duckhurst Barn,"Clapper Lane, Staplehurst",TN12 0JW,5502363868,D,A,60,119,Bungalow,Detached,2018-04-11,E07000110,E14000804,Kent,2018-04-11,marketed sale,42,96,473,-13.0,4.0,80,-0.1,67.0,45.0,588.0,351.0,78.0,78.0,50.0,dual,N,NODATA!,,,2401.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,50.0,0.0,"Electric immersion, off-peak, plus solar",Good,Average,"Suspended, limited insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Solid brick, as built, insulated (assumed)",Good,Good,Portable electric heaters (assumed),,,"Pitched, 150 mm loft insulation",Good,Good,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 50% of fixed outlets,Good,Good,electricity (not community),0.0,NO DATA!,,,,Y,natural,"The Old Stables, Duckhurst Barn, Clapper Lane, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1996-2002,2018-04-11 15:27:16,owner-occupied,,,, +390637430642009110409241065910348,"12, Russet Court",Coxheath,,ME17 4PQ,2633239668,E,D,51,58,Bungalow,Mid-Terrace,2009-11-04,E07000110,E14000804,Kent,2009-11-04,marketed sale,44,48,505,467.0,4.5,76,4.2,66.0,33.0,490.0,430.0,133.0,133.0,59.71,dual,N,NO DATA!,,,2401.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,0.0,0.0,"Electric immersion, off-peak",Poor,Poor,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,"Pitched, 250 mm loft insulation",Good,Good,Electric storage heaters,Poor,Very Poor,Manual charge control,Poor,Poor,No low energy lighting,Very Poor,Very Poor,electricity - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,,0.0,N,natural,"12, Russet Court, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,,2009-11-04 09:24:10,owner-occupied,,,200003726139.0,Address Matched +1189030779262014082112511836998854,"16, Cheshire Road",,,ME15 8HN,5318766278,D,B,66,89,House,End-Terrace,2014-08-21,E07000110,E14000700,Kent,2014-08-21,assessment for green deal,65,90,220,43.0,2.6,42,0.6,40.0,40.0,449.0,356.0,162.0,69.0,60.0,Unknown,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,100.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"16, Cheshire Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2014-08-21 12:51:18,owner-occupied,7.0,7.0,200003684858.0,Address Matched +1128452819222014042210472192328424,Runkerry,Maidstone Road,Sutton Valence,ME17 3LS,2986142278,C,B,71,84,Bungalow,Detached,2014-04-22,E07000110,E14000700,Kent,2014-04-22,rental (private),68,82,149,76.0,4.2,29,2.2,92.0,73.0,749.0,678.0,131.0,86.0,148.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,6.0,6.0,73.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 73% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"Runkerry, Maidstone Road, Sutton Valence",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2014-04-22 10:47:21,rental (private),44.0,32.0,200003694483.0,Address Matched +396538749962011061423592919248139,Flat 7,Horsemonden House,Coombe Road,ME15 6ZF,3104479668,D,D,62,62,Flat,Semi-Detached,2011-06-14,E07000110,E14000804,Kent,2011-06-14,rental (social),65,65,247,247.0,2.9,44,2.9,39.0,39.0,378.0,378.0,254.0,254.0,65.82,Single,Y,3rd,Y,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,From main system,Very Poor,Very Poor,(other premises below),,,Fully double glazed,Good,Good,"Timber frame, as built, insulated (assumed)",Very Good,Very Good,,,,"Flat, insulated (assumed)",Good,Good,"Boiler and radiators, electric",Very Poor,Very Poor,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,unheated corridor,7.8,2.3,0.0,,natural,"Flat 7, Horsemonden House, Coombe Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2011-06-14 23:59:29,rental (social),7.0,7.0,10014307390.0,Address Matched +662746898932011080417441232068302,"36, Nottingham Avenue",,,ME15 7PS,9242309868,D,C,67,70,House,Semi-Detached,2011-08-04,E07000110,E14000700,Kent,2011-08-04,marketed sale,43,45,407,388.0,5.3,72,5.0,86.0,43.0,393.0,413.0,163.0,128.0,73.04,dual,N,NODATA!,,,2401.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,1.0,0.0,0.0,"Electric immersion, off-peak",Average,Very Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,Portable electric heaters (assumed),,,"Pitched, 200 mm loft insulation",Good,Good,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,No low energy lighting,Very Poor,Very Poor,electricity (not community),0.0,NO DATA!,,2.44,0.0,,natural,"36, Nottingham Avenue",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2011-08-04 17:44:12,owner-occupied,10.0,0.0,200003712810.0,Address Matched +533156839042010091510205374909248,"3, Hartnup Street",,,ME16 8LR,5033539768,B,B,83,84,Flat,NO DATA!,2010-09-14,E07000110,E14000804,Kent,2010-09-15,new dwelling,82,83,160,152.0,1.2,26,1.1,44.0,26.0,214.0,216.0,72.0,72.0,44.68,standard tariff,,ground floor,,,,,NO DATA!,NO DATA!,,,,2.0,,From main system,Very Good,Very Good,Average thermal transmittance 0.21 W/m?K,Good,Good,Fully double glazed,Good,Good,Average thermal transmittance 0.30 W/m?K,Good,Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 33% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.35,,,NO DATA!,"3, Hartnup Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2010-09-15 10:20:53,,6.0,2.0,200003657427.0,Address Matched +1758365629502019101521401063719308,"12, Sandlewood Court",,,ME16 0ZG,5517027678,B,B,81,81,Flat,Semi-Detached,2019-10-10,E07000110,E14000804,Kent,2019-10-15,marketed sale,84,84,106,106.0,1.2,19,1.2,58.0,58.0,175.0,175.0,119.0,119.0,66.0,Single,Y,2nd,Y,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,(another dwelling below),NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,heated corridor,,,,N,natural,"12, Sandlewood Court",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2019-10-15 21:40:10,owner-occupied,,,10014306175.0,Address Matched +536490471032010090621494925068903,"16, Gorham Drive",Downswood,,ME15 8UU,7335959768,C,C,73,80,Maisonette,Semi-Detached,2010-09-06,E07000110,E14000700,Kent,2010-09-06,marketed sale,70,77,278,215.0,1.9,46,1.5,45.0,22.0,313.0,277.0,89.0,69.0,47.25,Single,Y,Ground,N,2.0,2106.0,100.0,double glazing installed before 2002,Normal,0.0,2.0,2.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.28,0.0,N,natural,"16, Gorham Drive, Downswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2010-09-06 21:49:49,owner-occupied,,,200003691397.0,Address Matched +494437109062010060315474996778070,"39, Melville Road",,,ME15 7UY,7991066768,D,C,66,71,House,Mid-Terrace,2010-06-03,E07000110,E14000804,Kent,2010-06-03,marketed sale,61,67,281,241.0,3.4,47,2.9,66.0,37.0,515.0,470.0,104.0,91.0,72.72,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,2.0,4.0,4.0,22.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 22% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.55,0.0,N,natural,"39, Melville Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2010-06-03 15:47:49,owner-occupied,,,200003696087.0,Address Matched +445319852032010022510110370268303,"25, Crownfields",Weavering,,ME14 5TH,5320313768,C,B,75,81,House,Mid-Terrace,2010-02-24,E07000110,E14000700,Kent,2010-02-25,rental (private),71,79,218,161.0,2.4,36,1.8,33.0,33.0,334.0,270.0,133.0,99.0,65.41,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.36,0.0,N,natural,"25, Crownfields, Weavering",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2010-02-25 10:11:03,rental (private),,,200003688250.0,Address Matched +568359909222014082716464191238334,"1, Horseshoe Close",Weavering,,ME14 5TT,3918091868,D,B,59,87,House,Semi-Detached,2014-08-27,E07000110,E14000700,Kent,2014-08-27,marketed sale,55,88,263,57.0,3.7,51,0.9,48.0,48.0,610.0,390.0,238.0,76.0,74.0,Single,Y,NODATA!,,,2102.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,100.0,0.0,"From main system, no cylinder thermostat",Poor,Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Average,"Programmer, no room thermostat",Very Poor,Very Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"1, Horseshoe Close, Weavering",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1991-1995,2014-08-27 16:46:41,owner-occupied,8.0,8.0,200003689839.0,Address Matched +134140613032010071412481977968904,Flat 8 Summer Court,Wheeler Street,,ME14 2UX,1487900568,B,B,84,84,Flat,End-Terrace,2010-07-14,E07000110,E14000804,Kent,2010-07-14,marketed sale,83,83,126,126.0,1.4,20,1.4,45.0,45.0,231.0,231.0,88.0,88.0,66.5,Single,Y,2nd,Y,3.0,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,83.0,0.0,From main system,Very Good,Very Good,(other premises below),,,Fully double glazed,Good,Good,"Timber frame, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Very Good,Very Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 83% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,unheated corridor,4.23,2.3,0.0,N,natural,"Flat 8 Summer Court, Wheeler Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2010-07-14 12:48:19,owner-occupied,,,10022895721.0,Address Matched +1484636689762016100306372137508296,"19, Rhodewood Close",Downswood,,ME15 8UR,9343857478,E,B,52,82,House,Detached,2016-09-30,E07000110,E14000700,Kent,2016-10-03,marketed sale,45,79,378,122.0,4.8,67,1.6,80.0,49.0,799.0,507.0,191.0,71.0,72.0,Single,Y,NODATA!,,,2104.0,10.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,36.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Some double glazing,Very Poor,Very Poor,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, mains gas",,,"Pitched, insulated (assumed)",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 36% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,2.36,,N,natural,"19, Rhodewood Close, Downswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2016-10-03 06:37:21,owner-occupied,,,200003691373.0,Address Matched +1478822007212016091320230391960940,"127, Milton Street",,,ME16 8LL,9074717478,E,B,50,85,House,End-Terrace,2016-09-12,E07000110,E14000804,Kent,2016-09-13,marketed sale,43,82,360,85.0,5.2,63,1.3,104.0,55.0,953.0,446.0,120.0,71.0,83.0,Single,Y,NODATA!,,,2107.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,10.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Sandstone or limestone, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 10% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,2.47,,N,natural,"127, Milton Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2016-09-13 20:23:03,owner-occupied,,,200003655704.0,Address Matched +1043238422412014091711555694940316,"41, Old Tovil Road",,,ME15 6PR,3695246178,D,B,63,84,House,Mid-Terrace,2014-09-17,E07000110,E14000804,Kent,2014-09-17,assessment for green deal,59,84,209,74.0,4.3,40,1.6,61.0,61.0,845.0,497.0,100.0,100.0,106.0,Unknown,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,5.0,5.0,100.0,0.0,From main system,Very Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, mains gas",,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"41, Old Tovil Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2014-09-17 11:55:56,owner-occupied,8.0,8.0,200003683255.0,Address Matched +800413619302014052916063398942918,"51, Ash Grove",,,ME16 0AD,9350819968,D,B,65,83,Bungalow,Detached,2014-05-29,E07000110,E14000804,Kent,2014-05-29,none of the above,63,82,208,85.0,3.4,40,1.4,94.0,51.0,610.0,491.0,100.0,70.0,85.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,15.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 15% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"51, Ash Grove",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2014-05-29 16:06:33,owner-occupied,13.0,2.0,200003658157.0,Address Matched +1620812411832018091909373749978402,Flat 6,"24, Ashford Road",,ME14 5BH,1299427578,D,D,64,64,Flat,NO DATA!,2018-09-18,E07000110,E14000804,Kent,2018-09-19,new dwelling,67,67,280,280.0,1.9,47,1.9,30.0,30.0,313.0,313.0,192.0,192.0,41.0,standard tariff,,top floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,"Electric immersion, standard tariff",Very Poor,Poor,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.30 W/m+é-¦K,Good,Good,,,,Average thermal transmittance 0.13 W/m+é-¦K,Very Good,Very Good,"Room heaters, electric",Very Poor,Poor,Appliance thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"Flat 6, 24, Ashford Road",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2018-09-19 09:37:37,unknown,16.0,16.0,10091194981.0,Address Matched +463391737032010033119524113768302,"19a, Queen Elizabeth Square",,,ME15 9DG,3253344768,C,C,73,78,House,End-Terrace,2010-03-31,E07000110,E14000700,Kent,2010-03-31,marketed sale,70,75,214,179.0,2.6,35,2.2,82.0,41.0,348.0,326.0,140.0,118.0,74.38,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,0.0,0.0,From main system,Good,Good,"Solid, limited insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.39,0.0,N,natural,"19a, Queen Elizabeth Square",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1996-2002,2010-03-31 19:52:41,owner-occupied,,,200003661741.0,Address Matched +1687602286552018122111195890289668,Flat 10,"539, Loose Road",,ME15 9UQ,6832602678,C,C,76,76,Flat,Detached,2018-12-21,E07000110,E14000804,Kent,2018-12-21,new dwelling,79,79,119,119.0,2.4,21,2.4,93.0,93.0,314.0,314.0,306.0,306.0,117.0,standard tariff,,top floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,"Electric immersion, standard tariff",Poor,,(other premises below),,,Fully double glazed,Average,Average,Average thermal transmittance 0.28 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.17 W/m-¦K,Good,Good,Community scheme,Good,Good,"Flat rate charging, programmer and TRVs",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,NO DATA!,,NO DATA!,,,,,NO DATA!,"Flat 10, 539, Loose Road",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2018-12-21 11:19:58,unknown,10.0,10.0,10093307009.0,Address Matched +397745112252009111715364108919167,37 Oxford Gardens,,,ME15 8FJ,1739289668,C,C,69,70,House,End-Terrace,2009-11-17,E07000110,E14000700,Kent,2009-11-17,new dwelling,79,79,149,146.0,2.3,22,2.3,68.0,54.0,355.0,358.0,189.0,189.0,103.31,standard tariff,,NO DATA!,,,2207.0,,NO DATA!,NO DATA!,,,,6.0,0.0,From main system,Poor,Good,Average thermal transmittance 0.18 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.28 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.12 W/m?K,Very Good,Very Good,"Air source heat pump, radiators, electric",Poor,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",0.0,NO DATA!,,2.4,,,NO DATA!,37 Oxford Gardens,Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2009-11-17 15:36:41,,8.0,6.0,10014308976.0,Address Matched +1479806756832018061308583336978302,12 Buckingham Drive,Harrietsham,,ME17 1GF,5296327478,B,A,85,92,House,Detached,2018-06-12,E07000110,E14000700,Kent,2018-06-13,new dwelling,85,92,80,38.0,2.0,14,1.0,79.0,79.0,321.0,321.0,88.0,88.0,139.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.27 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"12 Buckingham Drive, Harrietsham",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2018-06-13 08:58:33,owner-occupied,11.0,11.0,10093303069.0,Address Matched +872955549962013031322285144168507,"37, Forestdale Road",,,ME5 9NB,457434078,E,B,52,82,House,Detached,2013-02-16,E07000110,E14000700,Kent,2013-03-13,marketed sale,43,78,287,91.0,6.1,60,2.1,55.0,55.0,920.0,521.0,176.0,75.0,102.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,6.0,6.0,100.0,1.0,From main system,Average,Average,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, partial insulation (assumed)",Average,Average,"Room heaters, coal",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"37, Forestdale Road",Maidstone,Faversham and Mid Kent,CHATHAM,England and Wales: 1976-1982,2013-03-13 22:28:51,owner-occupied,11.0,11.0,200003709242.0,Address Matched +1622751048812018041207491093980353,"66, Sutton Road",,,ME15 9AL,3390837578,E,B,52,81,House,Detached,2018-04-11,E07000110,E14000700,Kent,2018-04-12,marketed sale,44,78,364,126.0,5.4,64,1.9,91.0,59.0,793.0,525.0,261.0,84.0,84.0,Unknown,Y,NODATA!,,,2107.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,45.0,0.0,"From main system, no cylinder thermostat",Average,Average,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, 270 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 45% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"66, Sutton Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2018-04-12 07:49:10,owner-occupied,,,200003713453.0,Address Matched +189214870002008112117360257482198,"31, Milton Street",,,ME16 8JY,3099074568,E,D,47,68,House,Mid-Terrace,2008-11-21,E07000110,E14000804,Kent,2008-11-21,marketed sale,41,62,440,266.0,5.9,74,3.6,48.0,36.0,660.0,444.0,175.0,94.0,79.73,Unknown,Y,NO DATA!,,,2102.0,33.0,double glazing installed before 2002,Normal,2.0,4.0,4.0,64.0,0.0,"From main system, no cylinderstat",Poor,Average,"Suspended, no insulation (assumed)",,,Partial double glazing,Poor,Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, mains gas",,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Average,Good,"Programmer, no room thermostat",Very Poor,Very Poor,Low energy lighting in 64% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.7,0.0,N,natural,"31, Milton Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2008-11-21 17:36:02,owner-occupied,,,200003657409.0,Address Matched +177824449852019092611305298210156,9 Ruth House,Lesley Place,Buckland Hill,ME16 0UB,1692983568,B,B,84,85,Flat,Mid-Terrace,2019-09-25,E07000110,E14000804,Kent,2019-09-26,rental (private),78,79,196,187.0,1.3,33,1.2,80.0,44.0,63.0,70.0,150.0,150.0,39.0,Unknown,N,2nd,N,,2401.0,,not defined,Much Less Than Typical,0.0,2.0,2.0,20.0,0.0,"Electric immersion, off-peak",Average,Poor,(another dwelling below),NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,(another dwelling above),,,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 20% of fixed outlets,Poor,Poor,electricity (not community),0.0,unheated corridor,1.1,,,N,natural,"9 Ruth House, Lesley Place, Buckland Hill",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2019-09-26 11:30:52,rental (private),,,10014311991.0,Address Matched +b25ca51f6e5e36792876f84633fa54f25be6a167a6b805f1fcea9aa4dbb39d42,77 Great Threads,,,TN12 0FJ,10001585817,B,A,84,94,House,Detached,2021-08-19,E07000110,E14000804,Kent,2021-08-19,new dwelling,86,95,81,15.0,1.5,14,0.3,79.0,79.0,247.0,247.0,73.0,45.0,104.0,standard tariff,,,N,,,100.0,,,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.12 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.28 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.54,,,,77 Great Threads,Maidstone,Maidstone and The Weald,STAPLEHURST,2021,2021-08-19 11:22:44,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,10.0,,10093304273.0,Energy Assessor +1693992159342019013112582566217108,"27, Foster Street",,,ME15 6NH,1356352678,D,B,63,83,House,Mid-Terrace,2019-01-30,E07000110,E14000804,Kent,2019-01-31,unknown,61,83,264,107.0,3.5,43,1.4,60.0,60.0,675.0,478.0,104.0,70.0,81.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"27, Foster Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2019-01-31 12:58:25,unknown,,,200003691953.0,Address Matched +458771619222010032316485794378010,"71, Moncktons Avenue",,,ME14 2QF,1939114768,F,D,25,56,House,Mid-Terrace,2010-03-23,E07000110,E14000804,Kent,2010-03-23,marketed sale,47,53,440,379.0,4.9,66,4.2,70.0,42.0,1053.0,466.0,202.0,226.0,82.68,Single,N,NO DATA!,,,2602.0,50.0,secondary glazing,Normal,0.0,3.0,1.0,14.0,1.0,Electric instantaneous at point of use,Very Poor,Poor,"Suspended, no insulation (assumed)",,,Partial secondary glazing,Poor,Poor,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,Portable electric heaters,,,"Pitched, 100 mm loft insulation",Average,Average,"Room heaters, electric",Very Poor,Poor,Appliance thermostats,Good,Good,Low energy lighting in 14% of fixed outlets,Poor,Poor,electricity - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.42,0.0,N,natural,"71, Moncktons Avenue",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2010-03-23 16:48:57,owner-occupied,,,200003670791.0,Address Matched +250726162202020011916180253909538,"21, Round Wood Close",Walderslade,,ME5 9UL,1254569568,D,C,62,76,House,Semi-Detached,2020-01-17,E07000110,E14000700,Kent,2020-01-19,marketed sale,58,74,248,143.0,4.0,44,2.3,80.0,80.0,728.0,689.0,153.0,73.0,92.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,86.0,0.0,From main system,Good,Good,"Solid, limited insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 86% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"21, Round Wood Close, Walderslade",Maidstone,Faversham and Mid Kent,CHATHAM,England and Wales: 1996-2002,2020-01-19 16:18:02,owner-occupied,,,200003725937.0,Address Matched +1557557249022017070612292422658493,Nova House,Leeds Road,Langley,ME17 3JQ,9246472578,G,C,18,71,House,Detached,2017-07-05,E07000110,E14000700,Kent,2017-07-06,marketed sale,22,45,571,317.0,12.0,97,6.9,77.0,83.0,2932.0,1113.0,272.0,106.0,129.0,dual,N,NODATA!,,,2602.0,100.0,"double glazing, unknown install date",Normal,2.0,7.0,7.0,100.0,0.0,"Electric immersion, off-peak",Poor,Poor,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 150 mm loft insulation",Good,Good,"Room heaters, electric",Very Poor,Poor,Appliance thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,NO DATA!,,,,N,natural,"Nova House, Leeds Road, Langley",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2017-07-06 12:29:24,owner-occupied,,,200003719252.0,Address Matched +217851390002009012408031358612748,Flat 2,"58, Buckland Road",,ME16 0SH,4081496568,D,C,58,69,Flat,Semi-Detached,2009-01-24,E07000110,E14000804,Kent,2009-01-24,rental (private),54,66,503,365.0,2.9,76,2.1,39.0,20.0,265.0,178.0,163.0,163.0,38.04,dual,N,1st,N,3.0,2402.0,0.0,single glazing,Normal,0.0,2.0,2.0,0.0,0.0,"Electric immersion, off-peak",Very Poor,Poor,(other premises below),,,Single glazed,Very Poor,Very Poor,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,(another dwelling above),,,Electric storage heaters,Average,Poor,Automatic charge control,Average,Average,No low energy lighting,Very Poor,Very Poor,electricity - this is for backwards compatibility only and should not be used,0.0,unheated corridor,2.8,2.72,0.0,N,natural,"Flat 2, 58, Buckland Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2009-01-24 08:03:13,rental (private),,,200003667152.0,Address Matched +b28357a85ae952b1d87f10adfd99d2eb6b9cbde44a1ad093046d2774df273e3e,18 TRINITY WAY,,,ME15 9FY,10001401138,C,C,79,79,Flat,Mid-Terrace,2021-07-09,E07000110,E14000700,Kent,2021-07-09,marketed sale,84,84,133,133.0,1.0,23,1.0,41.0,41.0,210.0,210.0,52.0,52.0,41.0,Single,Y,01,Y,,,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,"From main system, plus solar",Very Good,Very Good,"To external air, insulated (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 270 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,no corridor,,2.35,0.0,Y,natural,18 TRINITY WAY,Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2007-2011,2021-07-09 12:50:15,Owner-occupied,7.0,,10014311466.0,Energy Assessor +1477476397352016090712340790060643,"25, Silver Tree Close",,,ME5 9ST,6392707478,D,B,64,90,House,Mid-Terrace,2016-09-06,E07000110,E14000700,Kent,2016-09-07,marketed sale,62,91,335,52.0,2.2,59,0.4,28.0,28.0,383.0,301.0,151.0,62.0,38.0,Single,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,100.0,0.0,From main system,Average,Average,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,2.3,,N,natural,"25, Silver Tree Close",Maidstone,Faversham and Mid Kent,CHATHAM,England and Wales: 1983-1990,2016-09-07 12:34:07,owner-occupied,,,200003709224.0,Address Matched +1168088409022014070310491885078304,"123, Fennel Close",,,ME16 0XT,884025278,C,B,75,88,House,Mid-Terrace,2014-07-03,E07000110,E14000804,Kent,2014-07-03,marketed sale,75,88,131,50.0,2.6,25,1.0,115.0,64.0,441.0,415.0,122.0,75.0,103.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,20.0,0.0,From main system,Good,Good,"Suspended, limited insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Roof room(s), insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 20% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"123, Fennel Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2014-07-03 10:49:18,owner-occupied,10.0,2.0,200003722422.0,Address Matched +1445720589942016101909464740469388,"35, Wheeler Street",,,ME14 1UA,4903284478,E,B,51,83,House,End-Terrace,2016-10-18,E07000110,E14000804,Kent,2016-10-19,marketed sale,42,79,335,96.0,6.8,59,2.0,69.0,69.0,1294.0,573.0,113.0,76.0,115.0,Single,Y,NODATA!,,,2107.0,100.0,double glazing installed during or after 2002,Normal,1.0,3.0,3.0,100.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, insulated at rafters",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,2.41,,N,natural,"35, Wheeler Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2016-10-19 09:46:47,owner-occupied,,,200003697644.0,Address Matched +1112678739842015072816200720152138,"31, Northfleet Close",,,ME14 5QD,863431278,D,C,65,78,Maisonette,Mid-Terrace,2015-07-27,E07000110,E14000804,Kent,2015-07-28,none of the above,61,79,253,136.0,3.3,44,1.8,89.0,52.0,571.0,318.0,124.0,103.0,74.0,Single,Y,1st,Y,,2103.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,29.0,0.0,From main system,Good,Good,(another dwelling below),NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Room thermostat only,Poor,Poor,Low energy lighting in 29% of fixed outlets,Average,Average,mains gas (not community),0.0,no corridor,0.0,,,N,natural,"31, Northfleet Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2015-07-28 16:20:07,owner-occupied,,,200003671457.0,Address Matched +978355199222016102518032901858936,"8, Bell Meadow",,,ME15 9NB,3077971178,D,B,56,83,House,Semi-Detached,2016-10-25,E07000110,E14000700,Kent,2016-10-25,marketed sale,50,80,298,107.0,5.1,52,1.9,92.0,61.0,893.0,551.0,203.0,77.0,97.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,4.0,50.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,Portable electric heaters (assumed),,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,2.3,,N,natural,"8, Bell Meadow",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2016-10-25 18:03:29,owner-occupied,,,200003682583.0,Address Matched +1746524272252019082715143793210864,"4, Barnhurst Road",Penenden Heath,,ME14 2EL,8456236678,C,B,71,87,House,Semi-Detached,2019-08-27,E07000110,E14000804,Kent,2019-08-27,rental (social),70,86,192,73.0,2.5,34,1.0,89.0,55.0,381.0,357.0,121.0,76.0,74.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,38.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 38% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"4, Barnhurst Road, Penenden Heath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2019-08-27 15:14:37,rental (social),,,200003707904.0,Address Matched +429368749062010020116454692598200,33 Farleigh Court,Farleigh Lane,,ME16 9BJ,965402768,C,C,72,73,Flat,Detached,2010-02-01,E07000110,E14000804,Kent,2010-02-01,rental (social),68,69,243,238.0,2.5,40,2.5,49.0,33.0,407.0,411.0,83.0,83.0,62.56,Unknown,Y,Ground,N,2.0,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,50.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.32,0.0,N,natural,"33 Farleigh Court, Farleigh Lane",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2010-02-01 16:45:46,rental (social),,,200003684126.0,Address Matched +920140394212013042915422496270504,1 Alexander Road,Harrietsham,,ME17 1FG,5452467078,B,B,86,86,House,Detached,2013-04-29,E07000110,E14000700,Kent,2013-04-29,new dwelling,88,88,64,64.0,1.6,12,1.6,61.0,61.0,337.0,337.0,94.0,94.0,128.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.17 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"1 Alexander Road, Harrietsham",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2013-04-29 15:42:24,NO DATA!,17.0,17.0,10014314931.0,Address Matched +1005598244312013091120394997970415,"26, Carmans Close",Loose,,ME15 0DR,4529473178,C,B,79,90,House,End-Terrace,2013-09-10,E07000110,E14000804,Kent,2013-09-11,marketed sale,80,91,108,35.0,1.9,21,0.7,75.0,57.0,325.0,330.0,105.0,65.0,94.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,68.0,0.0,From main system,Good,Good,"Suspended, insulated (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 68% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"26, Carmans Close, Loose",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2013-09-11 20:39:49,rental (private),28.0,19.0,10014306511.0,Address Matched +685015249022012080912470540618422,Little Squerryes,Church Road,Otham,ME15 8SB,2453460968,D,B,64,81,House,Detached,2012-08-09,E07000110,E14000700,Kent,2012-08-09,marketed sale,52,72,161,80.0,8.8,40,4.9,167.0,83.0,1324.0,996.0,180.0,95.0,221.0,Single,N,NODATA!,,,2107.0,100.0,double glazing installed before 2002,Normal,0.0,8.0,8.0,0.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, oil",Average,Average,"Programmer, TRVs and bypass",Average,Average,No low energy lighting,Very Poor,Very Poor,oil (not community),0.0,NO DATA!,,,0.0,,natural,"Little Squerryes, Church Road, Otham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2012-08-09 12:47:05,owner-occupied,15.0,0.0,200003690563.0,Address Matched +b2d24c12b7eafff25c4b661ff48cc1801d2070bc6def117003988f1ba471cccd,13 ELLENSWOOD CLOSE,DOWNSWOOD,,ME15 8SG,10001379414,C,B,69,85,House,Semi-Detached,2021-07-06,E07000110,E14000700,Kent,2021-07-06,marketed sale,67,84,226,96.0,2.5,40,1.1,73.0,55.0,439.0,402.0,75.0,50.0,63.0,Single,Y,,,,,60.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,67.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Partial double glazing,Poor,Poor,"Timber frame, as built, insulated (assumed)",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 67% of fixed outlets,Good,Good,mains gas (not community),0.0,,,1.0,0.0,N,natural,"13 ELLENSWOOD CLOSE, DOWNSWOOD",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2021-07-06 17:57:54,Owner-occupied,9.0,,200003686298.0,Energy Assessor +1479951929642017073114514745737698,Flat 7,14 Mills Court,Harrietsham,ME17 1GP,8639327478,B,B,83,83,Flat,Enclosed End-Terrace,2017-07-31,E07000110,E14000700,Kent,2017-07-31,new dwelling,87,87,91,91.0,1.0,16,1.0,57.0,57.0,167.0,167.0,74.0,74.0,61.0,standard tariff,,top floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.14 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Flat 7, 14 Mills Court, Harrietsham",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2017-07-31 14:51:47,owner-occupied,11.0,11.0,10093303119.0,Address Matched +1031792759202015061618214513559768,"24, Mynn Crescent",Bearsted,,ME14 4AR,2260855178,E,B,39,84,House,Semi-Detached,2015-06-16,E07000110,E14000700,Kent,2015-06-16,assessment for green deal,32,80,432,95.0,8.9,76,2.0,133.0,66.0,1525.0,573.0,217.0,77.0,116.0,Single,Y,NODATA!,,,2102.0,100.0,double glazing installed before 2002,Normal,1.0,4.0,4.0,0.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Roof room(s), limited insulation (assumed)",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"24, Mynn Crescent, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2015-06-16 18:21:45,owner-occupied,,,200003691786.0,Address Matched +1480006239962017121811165397288193,14 Matthews Avenue,Harrietsham,,ME17 1GJ,9918327478,B,A,84,95,House,Semi-Detached,2017-12-18,E07000110,E14000700,Kent,2017-12-18,new dwelling,86,96,83,14.0,1.5,15,0.3,69.0,69.0,238.0,239.0,102.0,55.0,105.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.26 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.16 W/m-¦K,Good,Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"14 Matthews Avenue, Harrietsham",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2017-12-18 11:16:53,owner-occupied,16.0,16.0,10093303086.0,Address Matched +1766473659952019111816200297919762,"9, Keepers Avenue",,,ME16 9FJ,7220977678,B,A,84,95,House,End-Terrace,2019-11-18,E07000110,E14000804,Kent,2019-11-18,new dwelling,86,97,85,5.0,1.3,15,0.1,72.0,72.0,207.0,207.0,85.0,54.0,87.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.18 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"9, Keepers Avenue",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2019-11-18 16:20:02,unknown,20.0,20.0,10093303592.0,Address Matched +848760969742012102220181106222528,"32, John Street",,,ME14 2SQ,7713362078,D,B,58,86,House,Mid-Terrace,2012-10-22,E07000110,E14000804,Kent,2012-10-22,rental (private),55,87,267,63.0,3.7,51,0.9,47.0,47.0,658.0,370.0,81.0,57.0,73.0,Single,Y,NODATA!,,,2102.0,66.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,86.0,3.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Partial double glazing,Poor,Poor,"Granite or whinstone, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,Low energy lighting in 86% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"32, John Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2012-10-22 20:18:11,rental (private),7.0,6.0,200003702849.0,Address Matched +368458050262009092219032337428391,"11, Buckland Place",,,ME16 0SJ,9398577668,E,C,50,75,House,Mid-Terrace,2009-09-22,E07000110,E14000804,Kent,2009-09-22,marketed sale,44,72,391,190.0,6.0,65,2.9,91.0,46.0,777.0,423.0,207.0,113.0,91.1,Single,Y,NO DATA!,,,2107.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,0.0,0.0,"From main system, no cylinderstat",Poor,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 12mm loft insulation",Very Poor,Very Poor,"Boiler and radiators, mains gas",Average,Good,"Programmer, TRVs and bypass",Poor,Poor,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.3,0.0,N,natural,"11, Buckland Place",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2009-09-22 19:03:23,owner-occupied,,,200003666844.0,Address Matched +1542254759022017050914234051518983,"14, Oaklands",,,ME15 6SD,8516561578,D,C,68,79,House,Detached,2017-05-09,E07000110,E14000804,Kent,2017-05-09,marketed sale,63,73,200,135.0,4.6,35,3.2,147.0,73.0,771.0,783.0,131.0,79.0,131.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,6.0,6.0,0.0,1.0,From main system,Good,Good,"Suspended, insulated (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, mains gas",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"14, Oaklands",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2017-05-09 14:23:40,owner-occupied,,,10022901649.0,Address Matched +1075926149222014012218434978698334,"18, Shaw Close",,,ME14 5DN,3783478178,C,B,73,86,House,Detached,2014-01-21,E07000110,E14000804,Kent,2014-01-22,marketed sale,72,86,145,62.0,3.0,28,1.4,119.0,64.0,479.0,451.0,145.0,86.0,110.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,6.0,6.0,14.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 14% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"18, Shaw Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2014-01-22 18:43:49,owner-occupied,14.0,2.0,10022892495.0,Address Matched +371674520222009092817500238588321,3 Gate House Cottages,Hunton Road,Marden,TN12 9SH,2353208668,E,D,50,67,House,Semi-Detached,2009-09-28,E07000110,E14000804,Kent,2009-09-28,marketed sale,46,63,255,173.0,10.0,51,6.9,220.0,116.0,1273.0,859.0,298.0,231.0,176.0,dual,N,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,2.0,7.0,7.0,10.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, oil",Average,Average,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 10% of fixed outlets,Poor,Poor,oil - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.7,0.0,N,natural,"3 Gate House Cottages, Hunton Road, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: before 1900,2009-09-28 17:50:02,owner-occupied,,,200003723861.0,Address Matched +526771378032010081214182121968900,"63, Melrose Close",,,ME15 6BD,7091988768,B,B,88,88,House,End-Terrace,2010-08-12,E07000110,E14000804,Kent,2010-08-12,new dwelling,87,87,87,84.0,1.4,14,1.4,76.0,60.0,229.0,230.0,110.0,110.0,100.74,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,6.0,,From main system,Very Good,Very Good,Average thermal transmittance 0.20 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.21 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Very Good,Very Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.3,,,NO DATA!,"63, Melrose Close",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2010-08-12 14:18:21,,8.0,6.0,10014307059.0,Address Matched +1575836669922017091920501324418513,"39, Bramley Crescent",Bearsted,,ME15 8JZ,1248604578,D,B,64,82,Bungalow,Semi-Detached,2017-09-19,E07000110,E14000700,Kent,2017-09-19,marketed sale,62,81,258,113.0,3.1,45,1.4,48.0,48.0,593.0,477.0,116.0,82.0,69.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,2.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"39, Bramley Crescent, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2017-09-19 20:50:13,owner-occupied,,,200003688518.0,Address Matched +b2d72a8a2ef8e8821f4a8d3860005ea2dd9c0b0ea35316adbbd9fbb7f2efe3d5,FLAT 2,2 HOLLAND ROAD,,ME14 1UH,10001685816,E,C,41,73,Flat,Mid-Terrace,2021-07-21,E07000110,E14000804,Kent,2021-07-21,rental,43,67,652,356.0,3.1,110,1.7,33.0,38.0,760.0,222.0,157.0,181.0,28.0,dual,N,00,N,,,100.0,double glazing installed before 2002,Normal,1.0,1.0,1.0,75.0,0.0,Electric instantaneous at point of use,Very Poor,Poor,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, electric",,,(another dwelling above),,,"Room heaters, electric",Very Poor,Poor,Programmer and appliance thermostats,Good,Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,electricity (not community),0.0,unheated corridor,3.97,2.72,0.0,N,natural,"FLAT 2, 2 HOLLAND ROAD",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2021-07-21 13:11:34,Rented (private),4.0,,200003728810.0,Energy Assessor +b2e3df76efce59f226e728a4e48557683ea5f4d383f61572650b4bd668d0ba8b,16 Trinity Way,,,ME15 9FY,10001378960,B,B,82,91,House,Mid-Terrace,2021-08-24,E07000110,E14000700,Kent,2021-08-24,rental,83,92,101,38.0,1.6,18,0.7,79.0,79.0,300.0,300.0,62.0,62.0,93.0,Single,Y,,,,,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,100.0,0.0,"From main system, plus solar",Very Good,Very Good,"Solid, insulated (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.3,0.0,Y,natural,16 Trinity Way,Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2007-2011,2021-08-24 10:42:38,Rented (private),12.0,,10014311465.0,Energy Assessor +792391079222012052319135378578212,The Stable,Chart Hill Road,Staplehurst,TN12 0RW,1707768968,E,D,43,66,House,Detached,2012-05-23,E07000110,E14000700,Kent,2012-05-23,marketed sale,64,82,158,57.0,3.8,35,1.7,126.0,63.0,1045.0,936.0,292.0,161.0,109.0,dual,N,NODATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,0.0,0.0,From main system,Very Poor,Good,"Solid, insulated (assumed)",,,Fully double glazed,Good,Good,"Timber frame, as built, insulated (assumed)",Good,Good,,,,"Flat, insulated (assumed)",Good,Good,"Boiler and underfloor heating, bottled LPG",Very Poor,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,bottled LPG,0.0,NO DATA!,,,0.0,,natural,"The Stable, Chart Hill Road, Staplehurst",Maidstone,Faversham and Mid Kent,TONBRIDGE,England and Wales: 2007 onwards,2012-05-23 19:13:53,owner-occupied,20.0,0.0,200003662017.0,Address Matched +1454728737652016061717494194960841,"12, Ragstone Road",Bearsted,,ME15 8PA,8180745478,D,B,63,86,House,Semi-Detached,2016-06-17,E07000110,E14000700,Kent,2016-06-17,marketed sale,57,84,270,85.0,3.8,48,1.3,74.0,53.0,624.0,443.0,199.0,75.0,81.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,62.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 270 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 62% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,2.34,,N,natural,"12, Ragstone Road, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2016-06-17 17:49:41,owner-occupied,,,200003690767.0,Address Matched +701387089602012020613103393120668,"28, Betsham Road",,,ME15 8TY,2662681968,C,C,70,73,Bungalow,Mid-Terrace,2012-02-06,E07000110,E14000700,Kent,2012-02-06,rental (social),73,76,208,185.0,1.9,40,1.7,52.0,28.0,334.0,316.0,72.0,72.0,47.49,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,More Than Typical,0.0,2.0,2.0,14.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 14% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,2.35,0.0,,natural,"28, Betsham Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2012-02-06 13:10:33,rental (social),7.0,1.0,200003681076.0,Address Matched +228362122132009021116522467968106,"137, Calder Road",,,ME14 2RA,2627167568,D,C,62,71,House,End-Terrace,2009-02-10,E07000110,E14000804,Kent,2009-02-11,marketed sale,55,67,322,240.0,4.0,53,3.0,51.0,35.0,501.0,401.0,150.0,115.0,73.55,Single,Y,NO DATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,1.0,5.0,5.0,55.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Poor,Poor,Low energy lighting in 55% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,0.0,N,natural,"137, Calder Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2009-02-11 16:52:24,owner-occupied,,,200003671089.0,Address Matched +b2f17eba672d8fff0cc44067b9b4fb2e64747a45aa31e04e963fc1f46be473f5,14 Weyhill Close,,,ME14 5SQ,10001394669,C,B,76,90,House,Detached,2021-08-26,E07000110,E14000804,Kent,2021-09-06,non marketed sale,76,90,141,46.0,2.1,25,0.7,80.0,80.0,329.0,305.0,112.0,78.0,84.0,dual,Y,,,,,100.0,double glazing installed during or after 2002,Less Than Typical,0.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, with internal insulation",Very Good,Very Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.6,0.0,N,natural,14 Weyhill Close,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2021-09-06 08:51:16,Owner-occupied,10.0,,200003673333.0,Energy Assessor +616463704932011041220555355968405,"12, Milford Close",,,ME16 0EY,525475868,E,C,46,74,House,Detached,2011-04-12,E07000110,E14000804,Kent,2011-04-12,marketed sale,41,70,390,185.0,8.0,65,3.8,147.0,76.0,1196.0,587.0,202.0,138.0,122.02,dual,Y,NO DATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,2.0,6.0,6.0,8.0,0.0,From main system,Average,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 75 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Average,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 8% of fixed outlets,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.36,0.0,N,natural,"12, Milford Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2011-04-12 20:55:53,owner-occupied,,,200003659059.0,Address Matched +362872930042009091421331566719448,2 Hawley Court,London Road,,ME16 8QJ,7088837668,D,C,68,79,Flat,Semi-Detached,2009-09-14,E07000110,E14000804,Kent,2009-09-14,rental (social),63,76,311,201.0,2.6,52,1.7,35.0,25.0,347.0,267.0,150.0,93.0,49.91,Single,Y,Ground,N,8.0,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,60.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 60% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,unheated corridor,1.8,2.4,0.0,N,natural,"2 Hawley Court, London Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2009-09-14 21:33:15,rental (social),,,200003668452.0,Address Matched +1512086563812017011814130495930343,"6, Lamkin Way",,,ME17 3FL,3381359478,B,B,82,82,House,Semi-Detached,2017-01-18,E07000110,E14000700,Kent,2017-01-18,new dwelling,85,85,95,95.0,1.3,17,1.3,56.0,56.0,229.0,229.0,82.0,82.0,76.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"6, Lamkin Way",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2017-01-18 14:13:04,unknown,1.0,1.0,10091194085.0,Address Matched +588963178332017080115060589068609,48-50 Mote Road,,,ME15 6ET,7979653868,E,C,41,72,House,End-Terrace,2017-08-01,E07000110,E14000804,Kent,2017-08-01,rental (private),32,63,351,158.0,16.8,65,7.7,167.0,111.0,3011.0,1571.0,220.0,127.0,261.0,Single,Y,NODATA!,,,2106.0,0.0,not defined,Normal,2.0,8.0,8.0,47.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Single glazed,Very Poor,Very Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 47% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,48-50 Mote Road,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2017-08-01 15:06:05,rental (private),,,200003691158.0,Address Matched +1559722109022017092817482632518613,"8, Wood Court",,,ME16 9DD,1349092578,C,B,77,90,House,End-Terrace,2017-05-09,E07000110,E14000804,Kent,2017-09-28,rental (social),77,90,146,43.0,1.8,26,0.6,51.0,51.0,290.0,290.0,102.0,66.0,68.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Very Good,Very Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"8, Wood Court",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2017-09-28 17:48:26,rental (social),,,10022900391.0,Address Matched +288655734312009051918491601910966,"1, Upper Fant Road",,,ME16 8BP,9614412668,E,E,40,45,House,Mid-Terrace,2009-05-19,E07000110,E14000804,Kent,2009-05-19,marketed sale,44,50,401,359.0,8.3,57,7.2,124.0,77.0,1334.0,1229.0,148.0,130.0,145.1,dual,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,6.0,6.0,40.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, wood logs",,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 40% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.7,0.0,N,natural,"1, Upper Fant Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2009-05-19 18:49:16,owner-occupied,,,200003668290.0,Address Matched +521637483052010080216553195000671,"48, Hardy Street",,,ME14 2SH,6179358768,E,D,54,65,House,Mid-Terrace,2010-08-02,E07000110,E14000804,Kent,2010-08-02,marketed sale,48,59,320,248.0,6.7,54,5.2,127.0,76.0,980.0,797.0,168.0,135.0,103.71,dual,Y,NO DATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,1.0,5.0,5.0,33.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 33% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.58,0.0,N,natural,"48, Hardy Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2010-08-02 16:55:31,owner-occupied,,,200003702713.0,Address Matched +1312488609262015062909093475768025,"70, Hastings Road",,,ME15 7SR,2712045378,D,B,57,82,House,Semi-Detached,2015-06-26,E07000110,E14000804,Kent,2015-06-29,none of the above,53,81,290,105.0,4.8,51,1.7,116.0,58.0,842.0,561.0,176.0,84.0,94.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,1.0,6.0,6.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,"Pitched, insulated at rafters",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"70, Hastings Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2015-06-29 09:09:34,owner-occupied,,,200003695489.0,Address Matched +1719633999022019051504453834588701,Flat 1,13 Station Road,,ME14 1QH,362934678,E,E,48,48,Flat,Detached,2019-05-08,E07000110,E14000804,Kent,2019-05-15,unknown,54,54,406,406.0,2.6,69,2.6,31.0,31.0,578.0,578.0,227.0,227.0,37.0,standard tariff,,ground floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,"Electric immersion, standard tariff",Very Poor,Poor,Average thermal transmittance 0.19 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.30 W/m-¦K,Good,Good,,,,Average thermal transmittance 0.18 W/m-¦K,Good,Good,"Room heaters, electric",Very Poor,Poor,Appliance thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"Flat 1, 13 Station Road",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2019-05-15 04:45:38,unknown,6.0,6.0,10094439944.0,Address Matched +808689429452016032914501897060598,"4, Knaves Acre",Headcorn,,TN27 9TJ,5812979968,D,B,55,81,House,Semi-Detached,2016-03-01,E07000110,E14000700,Kent,2016-03-29,none of the above,48,77,320,122.0,4.9,56,1.9,100.0,57.0,914.0,574.0,112.0,75.0,88.0,Single,Y,NODATA!,,,2102.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,25.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,Low energy lighting in 25% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,2.38,,N,natural,"4, Knaves Acre, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,England and Wales: 1967-1975,2016-03-29 14:50:18,owner-occupied,,,200003699345.0,Address Matched +400272680922009112319130949888171,"12, Honduras Terrace",Invicta Park,,ME14 2PA,7430899668,D,D,63,63,House,End-Terrace,2009-11-18,E07000110,E14000804,Kent,2009-11-23,marketed sale,62,62,286,286.0,3.3,47,3.3,35.0,35.0,570.0,570.0,86.0,86.0,70.2,Single,Y,NO DATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,100.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.3,0.0,N,natural,"12, Honduras Terrace, Invicta Park",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2009-11-23 19:13:09,owner-occupied,,,200003723981.0,Address Matched +1345163600412015072309133997250134,"106, Tonbridge Road",,,ME16 8SL,1436077378,C,C,71,79,House,Detached,2015-07-23,E07000110,E14000804,Kent,2015-07-23,marketed sale,64,72,161,118.0,6.2,28,4.6,96.0,97.0,1110.0,993.0,149.0,149.0,218.0,Single,Y,NODATA!,,,2106.0,65.0,double glazing installed before 2002,Normal,0.0,10.0,10.0,100.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Partial double glazing,Poor,Poor,"Cavity wall, filled cavity",Good,Good,,,,"Roof room(s), insulated",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"106, Tonbridge Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2015-07-23 09:13:39,owner-occupied,,,200003657507.0,Address Matched +171130998932011081517122257968803,"30, St. Andrews Park",Tarragon Road,,ME16 0WD,9337872568,D,D,64,68,Flat,Semi-Detached,2011-08-15,E07000110,E14000804,Kent,2011-08-15,marketed sale,63,68,233,203.0,3.2,45,2.8,75.0,44.0,459.0,428.0,156.0,138.0,71.6,Unknown,Y,3rd,Y,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,29.0,0.0,From main system,Good,Good,"Suspended, limited insulation (assumed)",,,Fully double glazed,Average,Average,"Sandstone, with internal insulation",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 29% of fixed outlets,Average,Average,mains gas (not community),0.0,no corridor,,2.548,0.0,,natural,"30, St. Andrews Park, Tarragon Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2011-08-15 17:12:22,owner-occupied,7.0,2.0,200003654987.0,Address Matched +649954857212011070715213291090281,Little Milking Pail,Chickenden Lane,Staplehurst,TN12 0DP,2162718868,D,C,62,72,Bungalow,Semi-Detached,2011-07-06,E07000110,E14000804,Kent,2011-07-07,rental (private),51,63,237,178.0,4.6,58,3.4,65.0,45.0,536.0,402.0,187.0,142.0,79.79,dual,N,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,55.0,0.0,From main system,Average,Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Timber frame, as built, insulated (assumed)",Good,Good,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, oil",Average,Average,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 56% of fixed outlets,Good,Good,oil (not community),0.0,NO DATA!,,2.4,0.0,,natural,"Little Milking Pail, Chickenden Lane, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1976-1982,2011-07-07 15:21:32,rental (private),9.0,5.0,200003721601.0,Address Matched +b34e388df74cc4bde9f319826d6217d935eac371066b314d9605fd0782733aee,13 CASTLE WAY,,,ME17 4GQ,10001357173,B,A,83,94,House,Detached,2021-07-16,E07000110,E14000700,Kent,2021-07-16,new dwelling,85,95,90,19.0,1.5,16,0.4,82.0,82.0,252.0,252.0,87.0,58.0,98.0,standard tariff,,,N,,,100.0,,,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.1 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.39,,,,13 CASTLE WAY,Maidstone,Faversham and Mid Kent,BOUGHTON MONCHELSEA,2021,2021-07-16 13:32:40,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,4.0,,10094441249.0,Energy Assessor +292889050402009102210174461212228,50 Hughenden Reach,Tovil,,ME15 6ZL,405752668,B,B,86,87,Flat,NO DATA!,2009-10-22,E07000110,E14000804,Kent,2009-10-22,new dwelling,86,87,103,95.0,1.2,17,1.2,66.0,42.0,184.0,186.0,88.0,88.0,73.8,standard tariff,,mid floor,,,2106.0,,NO DATA!,NO DATA!,,,,3.0,0.0,From main system,Very Good,Very Good,(other premises below),,,Fully double glazed,Good,Good,Average thermal transmittance 0.31 W/m?K,Good,Good,,,,Average thermal transmittance 0.00 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 43% fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"50 Hughenden Reach, Tovil",Maidstone,Maidstone and The Weald,MAIDSTONE,,2009-10-22 10:17:44,,,,10014308513.0,Address Matched +595387378352011022120254990290988,"45, Jeffery Close",Staplehurst,,TN12 0TH,9881804868,C,C,73,74,House,Semi-Detached,2011-02-21,E07000110,E14000804,Kent,2011-02-21,marketed sale,69,70,205,199.0,3.1,34,3.0,82.0,50.0,477.0,483.0,124.0,124.0,91.14,Single,Y,NO DATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,36.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 36% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.33,0.0,N,natural,"45, Jeffery Close, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1976-1982,2011-02-21 20:25:49,owner-occupied,,,200003678820.0,Address Matched +204556299022013100511153736578937,"5, Garrington Close",,,ME14 5RP,3339906568,C,B,71,88,House,End-Terrace,2013-10-03,E07000110,E14000804,Kent,2013-10-05,marketed sale,73,90,176,44.0,2.0,34,0.5,36.0,36.0,364.0,336.0,99.0,65.0,58.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, limited insulation (assumed)",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"5, Garrington Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1976-1982,2013-10-05 11:15:37,owner-occupied,8.0,8.0,200003672193.0,Address Matched +b3565a97132087eed06d3175b3a02d8a0d0cd7781f46effbb30ac58b52358b6a,74 THE COCKPIT,MARDEN,,TN12 9TQ,10001565378,C,C,72,77,Flat,Detached,2021-08-04,E07000110,E14000804,Kent,2021-08-04,rental,72,79,197,150.0,2.1,35,1.6,66.0,66.0,353.0,265.0,86.0,86.0,60.0,Single,Y,01,N,,,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,75.0,0.0,From main system,Good,Good,(another dwelling below),,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,4.84,2.37,0.0,N,natural,"74 THE COCKPIT, MARDEN",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1950-1966,2021-08-04 11:33:23,Rented (social),8.0,,200003726959.0,Energy Assessor +944256769022017031410450089768563,"89, Badger Road",,,ME5 8XR,6870639078,D,C,56,76,House,End-Terrace,2017-03-06,E07000110,E14000700,Kent,2017-03-14,ECO assessment,52,73,292,149.0,4.7,51,2.4,59.0,59.0,941.0,711.0,106.0,71.0,91.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,1.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,"Pitched, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"89, Badger Road",Maidstone,Faversham and Mid Kent,CHATHAM,England and Wales: 1967-1975,2017-03-14 10:45:00,owner-occupied,,,200003673538.0,Address Matched +612296039762011040118005635498329,"6, Woodlands",,,ME5 9JX,2335345868,D,C,65,73,House,Detached,2011-03-31,E07000110,E14000700,Kent,2011-04-01,marketed sale,59,69,223,169.0,7.2,37,5.5,184.0,110.0,1057.0,862.0,181.0,129.0,103.78,Single,Y,NO DATA!,,,2110.0,100.0,double glazing installed before 2002,Normal,0.0,9.0,9.0,33.0,0.0,"From main system, plus solar",Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Roof room(s), ceiling insulated",Good,Good,"Boiler and radiators, mains gas",Average,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in 33% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.33,0.0,Y,natural,"6, Woodlands",Maidstone,Faversham and Mid Kent,CHATHAM,England and Wales: 1976-1982,2011-04-01 18:00:56,owner-occupied,,,200003708962.0,Address Matched +b370ac2e127e02491ad34ad33b3e273a5c3f9f36ce8656890d38133aba4969c9,42 Gilbert Way,,,ME17 3TT,10001503670,B,A,83,96,House,End-Terrace,2021-09-20,E07000110,E14000700,Kent,2021-09-20,new dwelling,86,98,91,-2.0,1.2,16,0.0,67.0,67.0,208.0,208.0,66.0,40.0,74.0,standard tariff,,,N,,,100.0,,,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.33,,,,42 Gilbert Way,Maidstone,Faversham and Mid Kent,MAIDSTONE,2017,2021-09-20 15:53:10,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,8.0,,10094441892.0,Energy Assessor +1523729667332017030117495167078509,"11, Madginford Close",Bearsted,,ME15 8LF,6987530578,D,B,60,87,Bungalow,Detached,2017-03-01,E07000110,E14000700,Kent,2017-03-01,marketed sale,51,85,290,76.0,5.1,51,1.4,63.0,63.0,854.0,444.0,198.0,77.0,100.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,6.0,6.0,100.0,0.0,"From main system, no cylinder thermostat",Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 270 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"11, Madginford Close, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2017-03-01 17:49:51,owner-occupied,,,200003690632.0,Address Matched +1596396859302018012912472459582218,"1, The Oaks",Sutton Valence,,ME17 3GJ,3374155578,B,B,83,91,House,Detached,2018-01-29,E07000110,E14000700,Kent,2018-01-29,new dwelling,84,91,87,45.0,2.5,14,1.2,88.0,88.0,438.0,439.0,106.0,59.0,173.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.12 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.21 W/m-¦K,Very Good,Very Good,"Room heaters, wood logs",,,Average thermal transmittance 0.12 W/m-¦K,Very Good,Very Good,"Boiler & underfloor, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"1, The Oaks, Sutton Valence",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2018-01-29 12:47:24,unknown,20.0,20.0,10093305564.0,Address Matched +1373792679802015101219483934959428,"19, Millers Wharf",,,ME15 6YW,5864479378,D,B,67,89,House,End-Terrace,2015-10-12,E07000110,E14000804,Kent,2015-10-12,marketed sale,65,89,279,65.0,2.3,49,0.6,33.0,33.0,407.0,334.0,137.0,63.0,47.0,Single,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,1.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"19, Millers Wharf",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2015-10-12 19:48:39,owner-occupied,,,200003665421.0,Address Matched +417298899062010010620081911468160,"146, Kingfisher Meadow",,,ME16 8RD,6106911768,D,C,67,79,Flat,Mid-Terrace,2010-01-06,E07000110,E14000804,Kent,2010-01-06,rental (private),73,72,218,226.0,2.3,33,2.4,57.0,45.0,347.0,183.0,139.0,139.0,70.15,dual,N,3rd,Y,4.0,2603.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,71.0,0.0,"Electric immersion, off-peak",Average,Poor,(other premises below),,,Fully double glazed,Good,Good,"System built, as built, insulated (assumed)",Good,Good,,,,"Flat, insulated (assumed)",Good,Good,"Room heaters, electric",Very Poor,Poor,Programmer and appliance thermostats,Good,Good,Low energy lighting in 71% of fixed outlets,Very Good,Very Good,electricity - this is for backwards compatibility only and should not be used,0.0,heated corridor,,2.47,0.0,N,natural,"146, Kingfisher Meadow",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2010-01-06 20:08:19,rental (private),,,10022892357.0,Address Matched +1000001629402013090208291911377008,"6, Cobham Close",,,ME16 8QS,5429923178,C,B,69,82,House,Semi-Detached,2013-08-30,E07000110,E14000804,Kent,2013-09-02,marketed sale,67,80,161,89.0,3.9,31,2.2,111.0,64.0,631.0,586.0,144.0,93.0,128.0,Single,Y,NODATA!,,,2107.0,100.0,double glazing installed before 2002,Normal,1.0,7.0,7.0,27.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 27% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"6, Cobham Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2013-09-02 08:29:19,owner-occupied,15.0,4.0,200003668039.0,Address Matched +1080447699262014012907391688518374,"34, Woolley Road",,,ME15 8PZ,7832998178,E,B,48,84,House,Semi-Detached,2014-01-29,E07000110,E14000700,Kent,2014-01-29,none of the above,44,84,334,77.0,5.1,64,1.2,96.0,48.0,729.0,448.0,313.0,73.0,79.0,Single,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,0.0,0.0,"From main system, no cylinder thermostat",Poor,Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"34, Woolley Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2014-01-29 07:39:16,owner-occupied,13.0,0.0,200003685014.0,Address Matched +578514230852020012316290527200286,Flat 28 Scotney Gardens,St. Peters Street,,ME16 0GR,2671072868,B,B,85,85,Flat,End-Terrace,2020-01-22,E07000110,E14000804,Kent,2020-01-23,rental (private),77,77,168,168.0,1.5,28,1.5,56.0,56.0,104.0,104.0,168.0,168.0,55.0,dual,N,2nd,N,,2402.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,"Electric immersion, off-peak",Average,Poor,(another dwelling below),NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,(another dwelling above),,,Electric storage heaters,Average,Very Poor,Automatic charge control,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,heated corridor,,,,N,natural,"Flat 28 Scotney Gardens, St. Peters Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2020-01-23 16:29:05,rental (private),,,10022893396.0,Address Matched +598224409222011052623461284268359,"21, Honywood Road",Lenham,,ME17 2HH,5806034868,C,C,71,72,House,Semi-Detached,2011-05-26,E07000110,E14000700,Kent,2011-05-26,rental (social),71,71,176,173.0,2.7,34,2.6,52.0,42.0,395.0,396.0,134.0,134.0,79.52,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,75.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,2.34,0.0,,natural,"21, Honywood Road, Lenham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2011-05-26 23:46:12,rental (social),8.0,6.0,200003723722.0,Address Matched +1023870509002013102011013913579218,"73, Queen Elizabeth Square",,,ME15 9DA,3008305178,C,B,76,88,House,End-Terrace,2013-10-19,E07000110,E14000700,Kent,2013-10-20,marketed sale,76,88,125,51.0,2.4,24,1.0,85.0,59.0,376.0,390.0,137.0,72.0,102.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,57.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 57% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"73, Queen Elizabeth Square",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2007 onwards,2013-10-20 11:01:39,owner-occupied,14.0,8.0,200003710560.0,Address Matched +287829400962009052015325032518831,"1, Disraeli Close",,,ME15 9LE,3381012668,D,C,65,75,Bungalow,Semi-Detached,2009-05-19,E07000110,E14000700,Kent,2009-05-20,rental (social),58,71,369,254.0,2.8,62,1.9,22.0,22.0,349.0,293.0,152.0,82.0,45.6,Single,Y,NO DATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,100.0,0.0,From main system,Average,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Average,Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.43,0.0,N,natural,"1, Disraeli Close",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2009-05-20 15:32:50,rental (social),,,200003682445.0,Address Matched +1432307489962016101215533663128416,"1, Cranbrook Close",,,ME15 8ST,1682883478,D,B,55,83,House,Semi-Detached,2016-10-12,E07000110,E14000700,Kent,2016-10-12,ECO assessment,48,81,346,111.0,4.7,61,1.5,63.0,63.0,866.0,475.0,124.0,88.0,77.0,Single,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,80.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,2.4,,N,natural,"1, Cranbrook Close",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2016-10-12 15:53:36,owner-occupied,,,200003685441.0,Address Matched +1709201719262019032717331863298971,Flat 8,Cornwallis House,Pudding Lane,ME14 1NY,7609163678,D,D,61,61,Maisonette,Detached,2019-02-21,E07000110,E14000804,Kent,2019-03-27,new dwelling,65,65,361,361.0,1.7,61,1.7,27.0,27.0,405.0,405.0,139.0,139.0,29.0,standard tariff,,ground floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,Electric instantaneous at point of use,Very Poor,Very Poor,Average thermal transmittance 0.52 W/m-¦K,Poor,Poor,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.27 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.14 W/m-¦K,Very Good,Very Good,"Room heaters, electric",Very Poor,Poor,Programmer and appliance thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"Flat 8, Cornwallis House, Pudding Lane",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2019-03-27 17:33:18,owner-occupied,8.0,8.0,, +781450925232012050220150720068803,"31, Surrey Road",,,ME15 7HN,2360887968,E,B,53,85,House,Semi-Detached,2012-05-01,E07000110,E14000700,Kent,2012-05-02,marketed sale,39,86,388,66.0,5.9,69,1.1,85.0,46.0,612.0,385.0,279.0,66.0,85.0,dual,Y,NODATA!,,,2401.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,2.0,30.0,0.0,"Electric immersion, off-peak",Very Poor,Very Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 30% of fixed outlets,Average,Average,electricity (not community),0.0,NO DATA!,,,0.0,,natural,"31, Surrey Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2012-05-02 20:15:07,owner-occupied,10.0,3.0,200003711741.0,Address Matched +255887780002009041621494452917608,"95, Mote Road",,,ME15 6EL,4047889568,C,C,76,79,House,Mid-Terrace,2009-03-30,E07000110,E14000804,Kent,2009-04-16,rental (social),75,76,180,171.0,2.3,30,2.2,74.0,37.0,299.0,305.0,104.0,104.0,78.28,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,0.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"System built, with internal insulation",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,0.0,N,natural,"95, Mote Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2009-04-16 21:49:44,rental (social),,,200003691140.0,Address Matched +238475974632016041312183176968602,"16, Oakapple Lane",Barming,,ME16 9NW,7216628568,B,B,88,90,Bungalow,Detached,2016-04-13,E07000110,E14000804,Kent,2016-04-13,marketed sale,84,86,70,56.0,1.6,13,1.3,72.0,72.0,661.0,602.0,81.0,81.0,126.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,6.0,6.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,2.4,,N,natural,"16, Oakapple Lane, Barming",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2016-04-13 12:18:31,owner-occupied,,,200003697048.0,Address Matched +652501939962011071210502258428649,"163, South Park Road",,,ME15 7AN,4510338868,D,C,66,69,House,End-Terrace,2011-07-12,E07000110,E14000700,Kent,2011-07-12,marketed sale,67,70,208,192.0,2.9,39,2.7,68.0,41.0,501.0,481.0,102.0,102.0,74.91,Single,Y,NODATA!,,,2104.0,90.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,33.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Mostly double glazing,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 33% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,2.36,0.0,,natural,"163, South Park Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1900-1929,2011-07-12 10:50:22,owner-occupied,9.0,3.0,200003715961.0,Address Matched +1257578369532015011511022947978007,"30, Morris Close",Boughton Monchelsea,,ME17 4UU,6717051378,C,B,69,86,House,Mid-Terrace,2015-01-12,E07000110,E14000700,Kent,2015-01-15,marketed sale,67,85,221,86.0,2.7,39,1.1,69.0,49.0,441.0,418.0,153.0,69.0,69.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,60.0,0.0,From main system,Good,Good,"Solid, limited insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 60% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"30, Morris Close, Boughton Monchelsea",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1996-2002,2015-01-15 11:02:29,owner-occupied,,,10022892744.0,Address Matched +1107065840912015031913341299950825,"17, Timbertops",,,ME5 8XF,8561090278,D,B,65,88,House,Mid-Terrace,2015-03-19,E07000110,E14000700,Kent,2015-03-19,marketed sale,62,88,253,63.0,3.1,45,0.8,66.0,46.0,528.0,367.0,145.0,69.0,70.0,Unknown,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,56.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 56% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"17, Timbertops",Maidstone,Faversham and Mid Kent,CHATHAM,England and Wales: 1967-1975,2015-03-19 13:34:12,owner-occupied,,,200003673742.0,Address Matched +1612653487832018031210511770978604,Flat 4,"36, Melville Road",,ME15 7UR,8420666578,C,C,79,79,Flat,NO DATA!,2018-03-11,E07000110,E14000804,Kent,2018-03-12,new dwelling,83,83,141,141.0,1.0,25,1.0,29.0,29.0,230.0,230.0,63.0,63.0,42.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.29 W/m+é-¦K,Good,Good,,,,Average thermal transmittance 0.16 W/m+é-¦K,Good,Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Flat 4, 36, Melville Road",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2018-03-12 10:51:17,unknown,5.0,5.0,10093303799.0,Address Matched +1546239759962017052307492171418323,"3, Hornbeam Close",,,ME15 8GN,2763591578,B,B,87,88,House,Detached,2017-05-19,E07000110,E14000700,Kent,2017-05-23,new dwelling,87,89,67,56.0,1.6,12,1.4,80.0,80.0,348.0,351.0,109.0,58.0,139.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.18 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"3, Hornbeam Close",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2017-05-23 07:49:21,unknown,1.0,1.0,10091193564.0,Address Matched +146304852262020052320543691278580,"26, Kingfisher Meadow",,,ME16 8RB,8938551568,C,B,72,83,Flat,Semi-Detached,2020-05-23,E07000110,E14000804,Kent,2020-05-23,ECO assessment,73,75,173,162.0,2.1,29,2.0,71.0,71.0,425.0,199.0,184.0,153.0,72.0,Unknown,N,1st,N,,2603.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,"Electric immersion, off-peak",Average,Poor,(another dwelling below),NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Room heaters, electric",Very Poor,Poor,Programmer and appliance thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,no corridor,,,,N,natural,"26, Kingfisher Meadow",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2020-05-23 20:54:36,owner-occupied,,,10022892237.0,Address Matched +688956692232012121417092975968994,"3, The Farrows",,,ME15 9ZJ,9455980968,B,B,84,84,Flat,Detached,2012-12-14,E07000110,E14000700,Kent,2012-12-14,new dwelling,88,88,78,78.0,1.0,15,1.0,49.0,49.0,218.0,218.0,75.0,75.0,65.0,standard tariff,,ground floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.30 W/m?K,Good,Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"3, The Farrows",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2012-12-14 17:09:29,NO DATA!,8.0,6.0,10014312538.0,Address Matched +b3d06edc73df2aa8a58016cf5bdc55034795cf511cac788a9095226452d7b215,"12, CORNFIELD WAY",ALLINGTON,,ME16 9GE,10001345722,B,B,86,88,House,Semi-Detached,2021-09-01,E07000110,E14000804,Kent,2021-09-01,new dwelling,88,91,68,52.0,1.0,12,0.8,68.0,68.0,204.0,204.0,89.0,50.0,83.0,standard tariff,,,N,,,100.0,,,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.18 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.15 W/m-¦K,Good,Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.32,,,,"12, CORNFIELD WAY, ALLINGTON",Maidstone,Maidstone and The Weald,MAIDSTONE,2020,2021-09-01 15:21:02,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,27.0,,10094440324.0,Address Matched +597057150012012112221054592229884,"9, Knowles Gardens",Headcorn,,TN27 9SW,8493024868,D,B,58,86,Bungalow,End-Terrace,2012-11-22,E07000110,E14000700,Kent,2012-11-22,rental (social),37,67,476,212.0,4.9,84,2.2,37.0,37.0,508.0,352.0,156.0,72.0,58.0,dual,N,NODATA!,,,2401.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,100.0,0.0,"Electric immersion, off-peak",Average,Very Poor,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,"Pitched, 200 mm loft insulation",Good,Good,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,NO DATA!,,,0.0,,natural,"9, Knowles Gardens, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,England and Wales: 1983-1990,2012-11-22 21:05:45,rental (social),7.0,7.0,200003724247.0,Address Matched +867849399802012122112424707322098,"7, Edmund Close",Barming,,ME16 9PS,1823893078,C,C,75,79,Flat,Detached,2012-12-21,E07000110,E14000804,Kent,2012-12-21,rental (social),77,82,146,112.0,1.7,28,1.3,52.0,39.0,352.0,290.0,39.0,39.0,63.0,Single,Y,Ground,N,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,67.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 67% of fixed outlets,Good,Good,mains gas (not community),0.0,unheated corridor,10.2,,0.0,,natural,"7, Edmund Close, Barming",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1991-1995,2012-12-21 12:42:47,rental (social),6.0,4.0,200003699224.0,Address Matched +1456597889222016062314162025878896,"7, Barming Walk",Barming,,ME16 9AH,9298855478,B,B,89,91,House,NO DATA!,2016-06-23,E07000110,E14000804,Kent,2016-06-23,new dwelling,90,92,49,37.0,1.2,9,0.9,78.0,78.0,284.0,286.0,126.0,69.0,133.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.12 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.19 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"7, Barming Walk, Barming",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2016-06-23 14:16:20,unknown,25.0,25.0,10091195809.0,Address Matched +482319695032010050917470930068503,"20, Bracken Hill",,,ME5 9QQ,9310575768,D,D,55,67,House,Detached,2010-05-08,E07000110,E14000700,Kent,2010-05-09,marketed sale,50,61,318,242.0,6.1,53,6.1,131.0,67.0,840.0,687.0,185.0,140.0,115.26,dual,Y,NO DATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,1.0,7.0,7.0,5.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, mains gas",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 5% of fixed outlets,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.36,0.0,N,natural,"20, Bracken Hill",Maidstone,Faversham and Mid Kent,CHATHAM,England and Wales: 1983-1990,2010-05-09 17:47:09,owner-occupied,,,200003709077.0,Address Matched +916845849942013042916204300772818,Flat 34 Scotney Gardens,St. Peters Street,,ME16 0GR,7992247078,C,B,80,82,Flat,Mid-Terrace,2013-04-29,E07000110,E14000804,Kent,2013-04-29,marketed sale,71,73,244,232.0,1.7,43,1.6,46.0,29.0,123.0,113.0,99.0,99.0,39.0,dual,N,3rd,Y,,2401.0,100.0,double glazing installed before 2002,Normal,0.0,2.0,2.0,43.0,0.0,"Electric immersion, off-peak",Average,Very Poor,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,"Pitched, 250 mm loft insulation",Good,Good,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 43% of fixed outlets,Average,Average,electricity (not community),0.0,heated corridor,,,0.0,,natural,"Flat 34 Scotney Gardens, St. Peters Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2013-04-29 16:20:43,owner-occupied,7.0,3.0,10022893402.0,Address Matched +256188290942009033019034153917008,"3, Country Ways",Lenham,,ME17 2JF,941399568,D,C,65,71,House,Detached,2009-03-30,E07000110,E14000700,Kent,2009-03-30,marketed sale,57,63,190,162.0,6.9,40,6.0,169.0,87.0,724.0,646.0,225.0,213.0,95.53,Single,N,NO DATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,7.0,7.0,7.0,0.0,From main system,Average,Average,"Solid, limited insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, oil",Average,Average,Programmer and room thermostat,Poor,Poor,Low energy lighting in 7% of fixed outlets,Very Poor,Very Poor,oil - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.36,0.0,N,natural,"3, Country Ways, Lenham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1996-2002,2009-03-30 19:03:41,owner-occupied,,,10012891013.0,Address Matched +830350173252012090413353293020005,"491, Loose Road",,,ME15 9UQ,500331078,D,B,56,84,House,Mid-Terrace,2012-09-04,E07000110,E14000804,Kent,2012-09-04,marketed sale,53,84,284,78.0,3.6,55,1.1,83.0,42.0,633.0,421.0,80.0,58.0,66.0,dual,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,0.0,2.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Granite or whinstone, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"491, Loose Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2012-09-04 13:35:32,owner-occupied,9.0,0.0,200003680297.0,Address Matched +b3ee343945f2dd422eff9c9daf209d8b41ba56fd1d79789f2cb9c0bf764ec415,18a Hayle Road,,,ME15 6PG,10001399361,C,C,71,76,Flat,Semi-Detached,2021-08-24,E07000110,E14000804,Kent,2021-08-25,rental,74,82,296,207.0,1.3,52,0.9,26.0,26.0,256.0,195.0,69.0,61.0,25.0,Single,Y,00,N,,,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,no corridor,,2.3,0.0,N,natural,18a Hayle Road,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2021-08-25 08:02:05,Rented (private),6.0,,200003683422.0,Energy Assessor +267292900922009042020551980438581,"15, Sutton Court",Marden,,TN12 9TF,8817070668,C,B,79,81,Flat,Semi-Detached,2009-04-17,E07000110,E14000804,Kent,2009-04-20,rental (social),77,79,205,183.0,1.6,34,1.4,35.0,23.0,248.0,230.0,69.0,69.0,46.8,Single,Y,2nd,Y,3.0,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,50.0,0.0,From main system,Very Good,Very Good,(other premises below),,,Fully double glazed,Average,Average,"Timber frame, as built, insulated (assumed)",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,unheated corridor,6.0,2.42,0.0,N,natural,"15, Sutton Court, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1976-1982,2009-04-20 20:55:19,rental (social),,,200003710536.0,Address Matched +1076538419432014012419013450278600,"45, Camomile Drive",Weavering,,ME14 5FL,1000678178,D,B,63,85,House,Semi-Detached,2014-01-24,E07000110,E14000700,Kent,2014-01-24,marketed sale,61,85,220,70.0,3.6,42,1.2,110.0,57.0,583.0,432.0,167.0,84.0,85.0,dual,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,8.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, mains gas",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 8% of fixed outlets,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"45, Camomile Drive, Weavering",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1991-1995,2014-01-24 19:01:34,owner-occupied,12.0,1.0,200003688351.0,Address Matched +1824038682062020090817063471288340,Flat 8,"12, Caldecott Road",Allington,ME16 9GD,4733891778,B,B,82,82,Flat,Semi-Detached,2020-09-08,E07000110,E14000804,Kent,2020-09-08,new dwelling,88,88,86,86.0,0.8,15,0.8,55.0,55.0,167.0,167.0,79.0,79.0,53.0,standard tariff,,top floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.21 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.16 W/m-¦K,Good,Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Flat 8, 12, Caldecott Road, Allington",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2020-09-08 17:06:34,unknown,20.0,20.0,10093306759.0,Address Matched +210517539242019010818043053610488,"18, Pope Street",,,ME16 8LQ,5222636568,D,B,68,84,House,Mid-Terrace,2019-01-08,E07000110,E14000804,Kent,2019-01-08,rental (private),59,79,180,85.0,8.4,32,4.0,206.0,131.0,1386.0,827.0,124.0,109.0,264.0,Single,Y,NODATA!,,,2102.0,100.0,"double glazing, unknown install date",Normal,2.0,4.0,4.0,43.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,Low energy lighting in 43% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"18, Pope Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2019-01-08 18:04:30,rental (private),,,200003655805.0,Address Matched +1055319279062013120418235387748437,3 Edwin Villas,Goudhurst Road,Marden,TN12 9JX,3828727178,D,B,66,81,House,Semi-Detached,2013-12-04,E07000110,E14000804,Kent,2013-12-04,rental (private),65,80,197,99.0,3.0,38,1.6,82.0,47.0,536.0,506.0,91.0,64.0,80.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,3.0,5.0,5.0,27.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 27% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"3 Edwin Villas, Goudhurst Road, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1930-1949,2013-12-04 18:23:53,rental (private),11.0,3.0,200003710734.0,Address Matched +1419747399002016061612200041269068,"34, Nightingale Road",Allington,,ME16 0FQ,1004992478,B,B,84,84,Flat,Detached,2016-06-16,E07000110,E14000804,Kent,2016-06-16,new dwelling,88,88,82,82.0,1.0,14,1.0,50.0,50.0,179.0,179.0,81.0,81.0,68.0,standard tariff,,top floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.27 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"34, Nightingale Road, Allington",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2016-06-16 12:20:00,owner-occupied,14.0,14.0,10091195309.0,Address Matched +7359919922018111315564427478518,Flat 3,Yew Tree House,Belts Wood,ME15 9GP,1224137468,C,C,78,79,Flat,Detached,2018-11-13,E07000110,E14000700,Kent,2018-11-13,rental (social),83,83,141,133.0,1.2,25,1.1,65.0,40.0,190.0,193.0,85.0,85.0,47.0,Single,Y,2nd,N,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,2.0,2.0,40.0,0.0,From main system,Good,Good,(another dwelling below),NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 40% of fixed outlets,Average,Average,mains gas (not community),0.0,unheated corridor,8.69,,,N,natural,"Flat 3, Yew Tree House, Belts Wood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2003-2006,2018-11-13 15:56:44,rental (social),,,10014307520.0,Address Matched +249754350802009032322151951912478,"18, Cornflower Close",Weavering,,ME14 5UL,3849359568,D,D,56,66,House,Detached,2009-03-23,E07000110,E14000700,Kent,2009-03-23,marketed sale,51,60,282,225.0,7.7,47,6.2,165.0,83.0,869.0,732.0,151.0,132.0,187.36,dual,Y,NO DATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,1.0,7.0,7.0,0.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Poor,Poor,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.34,0.0,N,natural,"18, Cornflower Close, Weavering",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2009-03-23 22:15:19,owner-occupied,,,200003687875.0,Address Matched +596864419442019090318463785410278,"108, Cambridge Crescent",,,ME15 7NQ,5418914868,D,B,65,83,House,Semi-Detached,2019-09-03,E07000110,E14000700,Kent,2019-09-03,rental (social),61,80,260,120.0,3.3,46,1.6,92.0,57.0,533.0,467.0,126.0,75.0,73.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,4.0,4.0,38.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 38% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"108, Cambridge Crescent",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2019-09-03 18:46:37,rental (social),,,200003712481.0,Address Matched +1363850111452015091406294190950636,"81, Heath Road",Coxheath,,ME17 4EH,6620109378,E,C,44,78,House,Detached,2015-09-12,E07000110,E14000804,Kent,2015-09-14,marketed sale,30,54,515,272.0,8.4,87,4.4,97.0,66.0,1124.0,705.0,298.0,97.0,96.0,Unknown,N,NODATA!,,,2401.0,100.0,"double glazing, unknown install date",Normal,1.0,4.0,3.0,55.0,0.0,"Electric immersion, off-peak",Very Poor,Poor,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,Portable electric heaters (assumed),,,"Pitched, 75 mm loft insulation",Average,Average,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 55% of fixed outlets,Good,Good,electricity (not community),0.0,NO DATA!,,,,N,natural,"81, Heath Road, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2015-09-14 06:29:41,owner-occupied,,,200003669614.0,Address Matched +1815414542762020080418523001708060,29a Postley Road,,,ME15 6TP,6084431778,D,D,63,67,Flat,Mid-Terrace,2020-07-30,E07000110,E14000804,Kent,2020-08-04,rental (private),59,65,307,266.0,2.9,54,2.5,56.0,56.0,539.0,466.0,74.0,74.0,54.0,Unknown,Y,1st,Y,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,82.0,0.0,From main system,Good,Good,(another dwelling below),NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 82% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,no corridor,,,,N,natural,29a Postley Road,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2020-08-04 18:52:30,rental (private),,,10014310748.0,Address Matched +1796033832062020040113212429698560,"55, Lasius Drive",Coxheath,,ME17 4UH,6204399678,B,A,85,96,House,Semi-Detached,2020-04-01,E07000110,E14000804,Kent,2020-04-01,new dwelling,87,98,79,3.0,1.3,14,0.1,72.0,72.0,215.0,215.0,75.0,45.0,90.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.21 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.10 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"55, Lasius Drive, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2020-04-01 13:21:24,unknown,12.0,12.0,10094444184.0,Address Matched +589191689022011020618580013558619,Kelsham Farm,Four Oaks Road,Headcorn,TN27 9NY,1178853868,F,F,21,37,House,Detached,2011-02-05,E07000110,E14000700,Kent,2011-02-06,marketed sale,21,35,419,307.0,39.0,83,28.0,612.0,322.0,6442.0,4786.0,390.0,301.0,494.93,dual,N,NO DATA!,,,2105.0,0.0,not defined,Less Than Typical,1.0,11.0,11.0,10.0,3.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, oil",Average,Average,Programmer and at least two room thermostats,Good,Good,Low energy lighting in 10% of fixed outlets,Poor,Poor,oil - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.7,0.0,N,natural,"Kelsham Farm, Four Oaks Road, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,England and Wales: before 1900,2011-02-06 18:58:00,owner-occupied,,,200003695591.0,Address Matched +435167449542010021116121072209998,"11, Thomas Rider Way",Boughton Monchelsea,,ME17 4GA,7563542768,C,C,75,78,House,Semi-Detached,2010-02-11,E07000110,E14000700,Kent,2010-02-11,rental (private),73,76,165,146.0,3.6,27,3.2,138.0,71.0,482.0,459.0,118.0,118.0,152.66,Single,Y,NO DATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,0.0,7.0,7.0,6.0,1.0,From main system,Very Good,Very Good,"Suspended, insulated (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, mains gas",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,Programmer and room thermostat,Average,Average,Low energy lighting in 6% of fixed outlets,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.32,0.0,N,natural,"11, Thomas Rider Way, Boughton Monchelsea",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2007 onwards,2010-02-11 16:12:10,rental (private),,,10022901090.0,Address Matched +1097852069222014032109580830498514,"1, Grebe Way",,,ME15 6YP,1370620278,B,B,83,83,House,Semi-Detached,2014-03-21,E07000110,E14000804,Kent,2014-03-21,new dwelling,86,86,86,86.0,1.3,16,1.3,49.0,49.0,266.0,266.0,77.0,77.0,80.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.10 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"1, Grebe Way",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2014-03-21 09:58:08,NO DATA!,11.0,11.0,10014315228.0,Address Matched +b432e787e912a896808655e97aa93603c194640d99ef158ff1bda3bd3f182944,5 Well Street,Loose,,ME15 0EJ,10001548860,E,B,53,86,House,Semi-Detached,2021-09-14,E07000110,E14000804,Kent,2021-09-14,marketed sale,46,84,342,86.0,5.6,60,1.5,135.0,74.0,828.0,433.0,195.0,70.0,94.0,Single,Y,,,,,92.0,"double glazing, unknown install date",More Than Typical,1.0,4.0,4.0,17.0,0.0,"From main system, no cylinder thermostat",Average,Average,"Solid, no insulation (assumed)",,,Mostly double glazing,Average,Average,"Solid brick, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 17% of fixed outlets,Poor,Poor,mains gas (not community),0.0,,,2.37,0.0,N,natural,"5 Well Street, Loose",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2021-09-14 20:06:14,Owner-occupied,23.0,,200003663488.0,Energy Assessor +1807411926352020070212225727000276,Flat 65 Ulysses House,Rosalind Drive,,ME14 2FL,2637670778,B,B,83,83,Flat,Mid-Terrace,2020-07-02,E07000110,E14000804,Kent,2020-07-02,new dwelling,85,85,97,97.0,1.2,17,1.2,64.0,64.0,201.0,201.0,96.0,96.0,73.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.32 W/m-¦K,Good,Good,,,,Average thermal transmittance 0.14 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Flat 65 Ulysses House, Rosalind Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2020-07-02 12:22:57,unknown,14.0,14.0,10094441453.0,Address Matched +65470159442012081613012044429268,"7, Connaught Close",,,ME15 9PX,1410654468,C,B,74,87,House,End-Terrace,2012-08-16,E07000110,E14000700,Kent,2012-08-16,marketed sale,78,90,140,57.0,1.9,24,0.7,44.0,44.0,420.0,385.0,45.0,45.0,78.0,Unknown,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, wood logs",,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"7, Connaught Close",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2012-08-16 13:01:20,owner-occupied,8.0,8.0,200003680125.0,Address Matched +1255331569062015011111394531688545,"1, Clarendon Close",Bearsted,,ME14 4JD,4322631378,C,B,70,86,Bungalow,Detached,2015-01-08,E07000110,E14000700,Kent,2015-01-11,marketed sale,68,84,198,82.0,2.8,35,1.2,71.0,52.0,508.0,441.0,103.0,68.0,80.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,62.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 270 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 62% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"1, Clarendon Close, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2015-01-11 11:39:45,owner-occupied,,,200003692189.0,Address Matched +b43ca4ba2c2031de1df7dca2780c22931d2b44d02705540bda6b5426666c22fb,10 Linden Road,Coxheath,,ME17 4QS,10001338215,C,B,70,87,Bungalow,Semi-Detached,2021-09-29,E07000110,E14000804,Kent,2021-09-29,rental,69,87,211,76.0,2.4,37,0.9,90.0,56.0,415.0,370.0,74.0,49.0,66.0,Single,Y,,,,,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,40.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, 270 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 40% of fixed outlets,Average,Average,mains gas (not community),0.0,,,2.45,0.0,N,natural,"10 Linden Road, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2021-09-29 13:34:09,Rented (private),15.0,,200003714786.0,Energy Assessor +1691492985952019011918011593910263,Trafalgar Cottage,Southernden Road,Egerton,TN27 9BT,2302532678,D,C,55,70,House,Semi-Detached,2019-01-14,E07000110,E14000700,Kent,2019-01-19,marketed sale,20,30,263,170.0,12.0,100,8.6,90.0,90.0,957.0,848.0,261.0,160.0,117.0,Single,N,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,6.0,6.0,83.0,0.0,From main system,Poor,Very Poor,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, coal",Poor,Very Poor,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 83% of fixed outlets,Very Good,Very Good,house coal (not community),0.0,NO DATA!,,,,N,natural,"Trafalgar Cottage, Southernden Road, Egerton",Maidstone,Faversham and Mid Kent,ASHFORD,England and Wales: 1950-1966,2019-01-19 18:01:15,owner-occupied,,,10014310773.0,Address Matched +337868960102009081218064563519128,"11, Madginford Road",Bearsted,,ME15 8LQ,6141165668,D,C,67,73,Bungalow,Semi-Detached,2009-08-12,E07000110,E14000700,Kent,2009-08-12,rental (private),62,68,250,208.0,3.9,42,3.3,95.0,48.0,568.0,497.0,99.0,99.0,61.9,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,2.0,4.0,4.0,0.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.42,0.0,N,natural,"11, Madginford Road, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2009-08-12 18:06:45,rental (private),,,200003690669.0,Address Matched +1081363999432014013108550304778809,"7, Chiltern Close",Downswood,,ME15 8XG,9984809178,F,E,31,51,House,Mid-Terrace,2014-01-30,E07000110,E14000700,Kent,2014-01-31,marketed sale,33,48,508,334.0,5.5,96,3.7,73.0,36.0,1084.0,1005.0,119.0,76.0,57.0,Single,Y,NODATA!,,,2107.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,0.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"7, Chiltern Close, Downswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1991-1995,2014-01-31 08:55:03,owner-occupied,8.0,0.0,200003687109.0,Address Matched +396210090912009111021113907919862,"65, Willington Street",,,ME15 8JR,8239079668,E,D,45,67,House,Detached,2009-11-10,E07000110,E14000700,Kent,2009-11-10,marketed sale,44,66,393,232.0,7.2,61,4.2,75.0,59.0,1098.0,655.0,190.0,144.0,111.94,Single,Y,NO DATA!,,,2106.0,95.0,"double glazing, unknown install date",Normal,1.0,7.0,6.0,73.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Mostly double glazing,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, wood logs",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 73% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,,0.0,N,natural,"65, Willington Street",Maidstone,Faversham and Mid Kent,MAIDSTONE,,2009-11-10 21:11:39,owner-occupied,,,200003685770.0,Address Matched +515833212242020082411362276802248,5 Magnolia House,Springwood Close,,ME16 9PB,4271418768,C,C,72,75,Flat,Semi-Detached,2020-08-24,E07000110,E14000804,Kent,2020-08-24,rental (social),76,80,233,193.0,1.3,41,1.1,55.0,33.0,261.0,231.0,61.0,61.0,32.0,dual,Y,Ground,N,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,33.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 33% of fixed outlets,Average,Average,mains gas (not community),0.0,unheated corridor,5.04,,,N,natural,"5 Magnolia House, Springwood Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2020-08-24 11:36:22,rental (social),,,200003697267.0,Address Matched +900761839842013032112335506672808,"14, Tarragon Road",,,ME16 0NG,5871236078,C,B,79,87,House,Mid-Terrace,2013-03-20,E07000110,E14000804,Kent,2013-03-21,marketed sale,80,87,103,56.0,2.3,20,1.3,74.0,74.0,394.0,394.0,87.0,87.0,117.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,82.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 82% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"14, Tarragon Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2013-03-21 12:33:55,owner-occupied,11.0,9.0,10022901799.0,Address Matched +b4797a6bd1bc18ce66c0a85478d212c389b3b3e5b0d98146edf180d08d5f441e,8 CLERKS FIELD,HEADCORN,,TN27 9QJ,10001662916,F,C,35,79,House,Semi-Detached,2021-08-02,E07000110,E14000700,Kent,2021-08-03,marketed sale,21,57,574,230.0,10.0,97,4.2,113.0,89.0,1853.0,852.0,425.0,129.0,107.0,dual,N,,,,,100.0,double glazing installed before 2002,Normal,1.0,5.0,5.0,73.0,0.0,"Electric immersion, off-peak",Very Poor,Poor,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,Portable electric heaters (assumed),,,"Pitched, 200 mm loft insulation",Good,Good,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 73% of fixed outlets,Very Good,Very Good,electricity (not community),0.0,,,1.0,0.0,N,natural,"8 CLERKS FIELD, HEADCORN",Maidstone,Faversham and Mid Kent,ASHFORD,England and Wales: 1950-1966,2021-08-03 09:51:45,Owner-occupied,11.0,,200003698674.0,Energy Assessor +330714459262012012322365905678702,"1, Vicarage Lane",East Farleigh,,ME15 0LY,44515668,D,C,68,70,House,Semi-Detached,2012-01-23,E07000110,E14000804,Kent,2012-01-23,marketed sale,68,71,183,167.0,3.4,34,3.1,96.0,52.0,615.0,595.0,62.0,62.0,111.17,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,5.0,5.0,15.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 15% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,2.43,0.0,,natural,"1, Vicarage Lane, East Farleigh",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2012-01-23 22:36:59,owner-occupied,13.0,2.0,200003672995.0,Address Matched +1529825239812017032216043897230356,"2, Hearne Drive",Coxheath,,ME17 4FJ,3637970578,B,A,84,95,House,Semi-Detached,2017-03-22,E07000110,E14000804,Kent,2017-03-22,new dwelling,86,97,87,7.0,1.3,15,0.1,57.0,57.0,234.0,234.0,84.0,49.0,87.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.14 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.20 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"2, Hearne Drive, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2017-03-22 16:04:38,unknown,11.0,11.0,10093302644.0,Address Matched +759308159062012030915052966188602,The Spinney,Dickley Lane,Lenham,ME17 2DD,649526968,F,D,36,55,Bungalow,Detached,2012-03-08,E07000110,E14000700,Kent,2012-03-09,marketed sale,34,52,391,256.0,10.0,74,6.6,106.0,63.0,1716.0,1172.0,159.0,115.0,135.98,Unknown,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,1.0,5.0,5.0,31.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,"Pitched, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Average,Programmer and room thermostat,Average,Average,Low energy lighting in 31% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,2.53,0.0,,natural,"The Spinney, Dickley Lane, Lenham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2012-03-09 15:05:29,owner-occupied,13.0,4.0,200003705070.0,Address Matched +1763882989022019110616484357768591,Flat C,"9, The Paddocks",Lenham,ME17 2FD,9582857678,B,B,82,82,Flat,Detached,2019-11-06,E07000110,E14000700,Kent,2019-11-06,new dwelling,89,89,80,80.0,0.7,14,0.7,41.0,41.0,179.0,179.0,67.0,67.0,50.0,standard tariff,,top floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.19 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.10 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Flat C, 9, The Paddocks, Lenham",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2019-11-06 16:48:43,unknown,6.0,6.0,10093307290.0,Address Matched +1118616079022014040222571301228614,"14, Farrier Close",Weavering,,ME14 5SR,1082771278,C,A,74,93,House,Mid-Terrace,2014-04-02,E07000110,E14000700,Kent,2014-04-02,marketed sale,77,97,165,-1.0,1.5,32,0.0,31.0,31.0,306.0,255.0,85.0,64.0,47.0,Single,Y,NODATA!,,,2106.0,30.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,From main system,Very Good,Good,"Solid, no insulation (assumed)",,,Some double glazing,Poor,Poor,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"14, Farrier Close, Weavering",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2014-04-02 22:57:13,owner-occupied,7.0,7.0,200003689086.0,Address Matched +1534298309742017040610435454130168,M J Missing,40 Knaves Acre,Headcorn,TN27 9TJ,6798801578,D,B,62,83,House,Semi-Detached,2017-04-06,E07000110,E14000700,Kent,2017-04-06,marketed sale,56,80,269,107.0,3.9,47,1.6,55.0,55.0,580.0,494.0,245.0,73.0,82.0,Single,Y,NODATA!,,,2107.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,100.0,0.0,"From main system, no cylinder thermostat",Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 350 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"M J Missing, 40 Knaves Acre, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,England and Wales: 1950-1966,2017-04-06 10:43:54,owner-occupied,,,200003699934.0,Address Matched +1374780279442015111112090131959208,Flat 3 Phoenix Court,Longshaw Road,,ME15 9JD,6454979378,B,B,82,82,Flat,NO DATA!,2015-11-10,E07000110,E14000700,Kent,2015-11-11,new dwelling,85,85,98,98.0,1.3,17,1.3,50.0,50.0,242.0,242.0,92.0,92.0,75.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.22 W/m-¦K,Good,Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.17 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Flat 3 Phoenix Court, Longshaw Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2015-11-11 12:09:01,unknown,10.0,10.0,10014315910.0,Address Matched +168242493752008101605392406989355,Flat 1 Swallow House,Springvale,,ME16 0AZ,3598362568,D,C,68,75,Flat,Detached,2008-10-14,E07000110,E14000804,Kent,2008-10-16,rental (social),59,66,530,441.0,2.2,80,1.9,23.0,14.0,196.0,146.0,93.0,93.0,28.0,dual,N,Ground,N,4.0,2401.0,100.0,double glazing installed before 2002,Normal,0.0,1.0,1.0,35.0,0.0,"Electric immersion, off-peak",Average,Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, partial insulation (assumed)",Average,Average,"Room heaters, electric",,,(another dwelling above),,,Electric storage heaters,Poor,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 35% of fixed outlets,Average,Average,electricity - this is for backwards compatibility only and should not be used,0.0,unheated corridor,6.6,2.3,0.0,N,natural,"Flat 1 Swallow House, Springvale",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1976-1982,2008-10-16 05:39:24,rental (social),,,200003667124.0,Address Matched +b4a89fee118161f85082c86d3c009867d6e5c1e663273cb44c334addef76c4be,101 LINTON ROAD,LOOSE,,ME15 0AL,10001334151,E,C,50,76,Bungalow,Detached,2021-08-02,E07000110,E14000804,Kent,2021-08-04,marketed sale,43,70,403,185.0,5.2,71,2.4,68.0,68.0,890.0,623.0,85.0,48.0,72.0,Single,Y,,,,,70.0,double glazing installed during or after 2002,Normal,1.0,5.0,5.0,89.0,0.0,Gas multipoint,Average,Average,"Solid, no insulation (assumed)",,,Partial double glazing,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 89% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.48,0.0,N,natural,"101 LINTON ROAD, LOOSE",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2021-08-04 07:07:53,Owner-occupied,9.0,,200003663265.0,Energy Assessor +1165841069722014070114232585108224,Charnwood,Chapel Lane,Staplehurst,TN12 0AJ,2898605278,D,B,55,81,House,Detached,2014-06-30,E07000110,E14000804,Kent,2014-07-01,marketed sale,44,76,261,97.0,6.8,52,2.6,109.0,70.0,1654.0,921.0,181.0,85.0,133.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,6.0,6.0,44.0,1.0,From main system,Average,Average,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 44% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,,natural,"Charnwood, Chapel Lane, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1967-1975,2014-07-01 14:23:25,owner-occupied,27.0,12.0,200003679027.0,Address Matched +b49f1730bdbae817478c81c713cf7c6a323bb1efd2634cc79d873fb9d5f3576e,"Flat 12 Adeline Heights, Rosalind Drive",,,ME14 2FP,10001682560,B,B,86,86,Flat,Mid-Terrace,2021-07-02,E07000110,E14000804,Kent,2021-07-02,new dwelling,90,90,65,65.0,0.9,11,0.9,66.0,66.0,154.0,154.0,74.0,74.0,76.0,standard tariff,,2,N,,,100.0,,,,,,100.0,0.0,From main system,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.50 W/m-¦K,Good,Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.5,,,,"Flat 12 Adeline Heights, Rosalind Drive",Maidstone,Maidstone and The Weald,Maidstone,2018,2021-07-02 15:53:53,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,10.0,,10094441275.0,Address Matched +562178139032010110719184394068495,"2d, Mote Road",,,ME15 6EP,3564441868,C,C,75,78,Flat,Mid-Terrace,2010-11-04,E07000110,E14000804,Kent,2010-11-07,rental (private),72,75,305,268.0,1.6,51,1.4,22.0,17.0,301.0,281.0,71.0,62.0,32.05,Single,Y,Ground,N,2.0,2106.0,100.0,double glazing installed before 2002,Normal,0.0,2.0,2.0,67.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 67% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.37,0.0,N,natural,"2d, Mote Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2010-11-07 19:18:43,rental (private),,,10014309941.0,Address Matched +1533887409842017040521175959130258,"6, Malvern Road",,,ME15 8GB,4805801578,B,A,82,94,House,End-Terrace,2017-04-05,E07000110,E14000700,Kent,2017-04-05,new dwelling,84,95,102,17.0,1.5,18,0.3,58.0,58.0,256.0,258.0,101.0,53.0,85.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"6, Malvern Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2017-04-05 21:17:59,unknown,1.0,1.0,10091193591.0,Address Matched +1628442799022018050216104277928828,Flat 8 Admiral Court,"55-59, Wallis Avenue",,ME15 9HS,2756977578,B,B,85,85,Flat,Detached,2018-05-02,E07000110,E14000700,Kent,2018-05-02,new dwelling,88,88,79,79.0,1.1,14,1.1,52.0,52.0,166.0,166.0,98.0,98.0,77.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.19 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Flat 8 Admiral Court, 55-59, Wallis Avenue",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2018-05-02 16:10:42,unknown,10.0,10.0,10093304778.0,Address Matched +1635604939202018052918325751882218,"28, Bargrove Road",,,ME14 5RT,5218038578,C,B,71,85,House,Detached,2018-05-29,E07000110,E14000804,Kent,2018-05-29,marketed sale,68,82,183,89.0,3.1,32,1.6,80.0,80.0,497.0,447.0,136.0,81.0,97.0,Single,Y,NODATA!,,,2104.0,92.0,double glazing installed before 2002,Normal,0.0,6.0,6.0,77.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Mostly double glazing,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 77% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"28, Bargrove Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1976-1982,2018-05-29 18:32:57,owner-occupied,,,200003672461.0,Address Matched +663340199062011080711043239338429,Redpits,Leeds Road,Langley,ME17 3JN,2300909868,C,C,70,74,House,Detached,2011-08-07,E07000110,E14000700,Kent,2011-08-07,marketed sale,67,71,161,141.0,5.8,31,5.1,129.0,74.0,909.0,826.0,116.0,117.0,181.13,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,4.0,7.0,7.0,25.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 25% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,2.12,0.0,,natural,"Redpits, Leeds Road, Langley",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2011-08-07 11:04:32,owner-occupied,28.0,7.0,200003697827.0,Address Matched +1205072639962014100810292107208604,"25, Wyatt Street",,,ME14 1EU,1387278,D,A,60,93,House,Mid-Terrace,2014-09-10,E07000110,E14000804,Kent,2014-10-08,none of the above,44,79,421,132.0,3.9,74,1.2,39.0,39.0,446.0,250.0,232.0,76.0,52.0,dual,N,NODATA!,,,2401.0,100.0,double glazing installed before 2002,Normal,0.0,2.0,2.0,100.0,0.0,"Electric immersion, off-peak",Poor,Very Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, partial insulation (assumed)",Average,Average,Portable electric heaters (assumed),,,"Pitched, 75 mm loft insulation",Average,Average,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,NO DATA!,,,0.0,,natural,"25, Wyatt Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1976-1982,2014-10-08 10:29:21,owner-occupied,5.0,5.0,200003687478.0,Address Matched +1422987629702018082910052948382388,"1, Coalpit Lane",Frinsted,,ME9 0SS,6782323478,E,A,44,105,House,Semi-Detached,2018-08-28,E07000110,E14000700,Kent,2018-08-29,rental (private),44,98,276,-57.0,5.4,61,-0.2,98.0,68.0,692.0,283.0,146.0,118.0,88.0,dual,N,NODATA!,,,2106.0,0.0,not defined,Normal,0.0,5.0,5.0,56.0,1.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Single glazed,Very Poor,Very Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, oil",Average,Average,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 56% of fixed outlets,Good,Good,oil (not community),0.0,NO DATA!,,,,N,natural,"1, Coalpit Lane, Frinsted",Maidstone,Faversham and Mid Kent,SITTINGBOURNE,England and Wales: before 1900,2018-08-29 10:05:29,rental (private),,,200003721732.0,Address Matched +151844240922008101017201111608548,"1, Peel Street",,,ME14 2SA,4113471568,D,D,59,66,House,Semi-Detached,2008-10-10,E07000110,E14000804,Kent,2008-10-10,rental (private),53,59,398,339.0,3.4,66,2.9,46.0,23.0,444.0,401.0,70.0,61.0,51.15,Single,Y,NO DATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,0.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Poor,Poor,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.3,0.0,N,natural,"1, Peel Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2008-10-10 17:20:11,rental (private),,,200003702327.0,Address Matched +663938016152011080919342091090088,"12, Downs Close",Headcorn,,TN27 9UG,893619868,D,C,64,71,House,Detached,2011-08-08,E07000110,E14000700,Kent,2011-08-09,non marketed sale,61,71,241,182.0,3.4,46,2.6,44.0,44.0,537.0,425.0,133.0,103.0,73.32,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,92.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 92% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,2.4,0.0,,natural,"12, Downs Close, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,England and Wales: 1991-1995,2011-08-09 19:34:20,owner-occupied,12.0,11.0,200003701019.0,Address Matched +863035369442012120411583601320248,"60, Charlbury Close",,,ME16 8TE,6417163078,E,C,50,76,House,Semi-Detached,2012-12-04,E07000110,E14000804,Kent,2012-12-04,marketed sale,46,72,303,134.0,5.4,58,2.4,108.0,54.0,881.0,625.0,107.0,63.0,92.0,dual,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,1.0,5.0,5.0,0.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"60, Charlbury Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2012-12-04 11:58:36,owner-occupied,12.0,0.0,200003657597.0,Address Matched +1638958059242018061021242451880588,"17, Hildenborough Crescent",,,ME16 0PJ,6292458578,D,B,65,89,House,Mid-Terrace,2018-06-08,E07000110,E14000804,Kent,2018-06-10,marketed sale,62,89,258,56.0,2.8,45,0.6,70.0,44.0,407.0,311.0,165.0,65.0,61.0,Unknown,Y,NODATA!,,,2107.0,100.0,"double glazing, unknown install date",Normal,1.0,4.0,4.0,43.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 43% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"17, Hildenborough Crescent",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2018-06-10 21:24:24,owner-occupied,,,200003660143.0,Address Matched +398098920922009111611473599068771,10 Greenfields View,Oxford Gardens,,ME15 8FJ,7908289668,C,C,80,80,Flat,NO DATA!,2009-11-16,E07000110,E14000700,Kent,2009-11-16,new dwelling,85,85,129,126.0,1.2,19,1.2,42.0,35.0,133.0,133.0,150.0,150.0,63.14,standard tariff,,mid floor,,,2207.0,,NO DATA!,NO DATA!,,,,4.0,0.0,From main system,Poor,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.28 W/m?K,Very Good,Very Good,,,,(another dwelling above),,,"Air source heat pump, underfloor, electric",Average,Very Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",0.0,NO DATA!,,2.5,,,NO DATA!,"10 Greenfields View, Oxford Gardens",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2009-11-16 11:47:35,,5.0,4.0,10014309011.0,Address Matched +1814874200112020080207264123700671,"8, Birch Tree Way",,,ME15 7RR,6127031778,D,B,65,89,House,Semi-Detached,2020-07-30,E07000110,E14000804,Kent,2020-08-02,marketed sale,61,89,280,59.0,3.0,49,0.7,51.0,51.0,540.0,330.0,83.0,57.0,60.0,Unknown,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"8, Birch Tree Way",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2020-08-02 07:26:41,owner-occupied,,,200003696177.0,Address Matched +1509784639742017011019435242930048,1 Marsham Street,,,ME14 1EW,770739478,D,B,58,83,House,End-Terrace,2017-01-04,E07000110,E14000804,Kent,2017-01-10,rental (private),48,78,252,94.0,9.1,44,3.4,188.0,96.0,1560.0,808.0,180.0,89.0,204.0,Single,Y,NODATA!,,,2106.0,0.0,not defined,Normal,1.0,9.0,9.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Single glazed,Very Poor,Very Poor,"Solid brick, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 25 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,1 Marsham Street,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2017-01-10 19:43:52,rental (private),,,200003687488.0,Address Matched +1513602839222017012413484969448443,Sheppey Cottage,Heath Road,East Farleigh,ME15 0LR,4636369478,F,A,35,93,House,End-Terrace,2017-01-24,E07000110,E14000804,Kent,2017-01-24,marketed sale,53,100,240,-43.0,5.0,50,-0.3,91.0,63.0,1344.0,682.0,190.0,124.0,100.0,Single,N,NODATA!,,,2107.0,100.0,"double glazing, unknown install date",Normal,1.0,6.0,5.0,56.0,0.0,From main system,Poor,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, electric",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, LPG",Poor,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 56% of fixed outlets,Good,Good,LPG (not community),0.0,NO DATA!,,,,N,natural,"Sheppey Cottage, Heath Road, East Farleigh",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2017-01-24 13:48:49,owner-occupied,,,200003663688.0,Address Matched +1764469639062019110813543827688481,"4, Orache Drive",Weavering,,ME14 5UG,8297367678,C,C,71,76,Flat,Semi-Detached,2019-11-08,E07000110,E14000700,Kent,2019-11-08,marketed sale,72,78,215,165.0,1.9,38,1.5,69.0,46.0,282.0,249.0,135.0,98.0,51.0,Unknown,Y,Ground,N,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,50.0,0.0,From main system,Good,Good,"Solid, limited insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,no corridor,0.0,,,N,natural,"4, Orache Drive, Weavering",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1996-2002,2019-11-08 13:54:38,owner-occupied,,,200003689226.0,Address Matched +b4da6881e033f1f02c34122b20d1d8fad26c32ececd9919efffe233e43d7b940,9 Maxton Close,Bearsted,,ME14 4QD,10001588446,D,C,57,76,House,Detached,2021-08-26,E07000110,E14000700,Kent,2021-08-26,marketed sale,47,69,277,146.0,7.0,49,3.7,97.0,97.0,1098.0,814.0,172.0,73.0,143.0,Unknown,Y,,,,,100.0,"double glazing, unknown install date",Normal,2.0,7.0,7.0,100.0,1.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.4,0.0,N,natural,"9 Maxton Close, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2021-08-26 12:43:08,Owner-occupied,13.0,,200003688966.0,Energy Assessor +1772533929242019121306381068819328,Flat 4/A Ladbrooke House,Wheeler Street,,ME14 2UF,3239228678,D,C,65,77,Maisonette,Mid-Terrace,2019-12-12,E07000110,E14000804,Kent,2019-12-13,rental (private),60,78,267,149.0,3.1,47,1.7,53.0,53.0,541.0,299.0,85.0,85.0,65.0,Unknown,Y,1st,Y,,2504.0,100.0,"double glazing, unknown install date",Normal,1.0,3.0,3.0,100.0,0.0,Gas multipoint,Average,Average,(another dwelling below),NO DATA!,,Fully double glazed,Average,Average,"Timber frame, as built, partial insulation (assumed)",Average,Average,,,,"Flat, no insulation (assumed)",Very Poor,Very Poor,"Warm air, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,no corridor,,,,N,natural,"Flat 4/A Ladbrooke House, Wheeler Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2019-12-13 06:38:10,rental (private),,,200003704685.0,Address Matched +620961409442011050420461685690648,1 Natal Cottages,Plough Wents Road,Chart Sutton,ME17 3RY,9448906868,C,C,70,73,House,Semi-Detached,2011-05-04,E07000110,E14000700,Kent,2011-05-04,marketed sale,67,70,170,152.0,4.5,33,4.1,111.0,60.0,691.0,649.0,112.0,112.0,138.66,Unknown,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,3.0,7.0,7.0,16.0,2.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 16% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,2.35,0.0,,natural,"1 Natal Cottages, Plough Wents Road, Chart Sutton",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2011-05-04 20:46:16,owner-occupied,25.0,4.0,200003690412.0,Address Matched +720985279022011110717282153838229,Flat 18 Cavendish Place,Cavendish Way,Bearsted,ME15 8FW,2500713968,B,B,85,86,Flat,NO DATA!,2011-11-07,E07000110,E14000700,Kent,2011-11-07,new dwelling,89,90,70,67.0,0.9,13,0.8,48.0,38.0,186.0,187.0,80.0,80.0,65.1,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,6.0,,From main system,Good,Good,(other premises below),,,Fully double glazed,Good,Good,Average thermal transmittance 0.21 W/m?K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,,,NO DATA!,"Flat 18 Cavendish Place, Cavendish Way, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2011-11-07 17:28:21,,8.0,6.0,10014312995.0,Address Matched +618024059922018121019574455908768,Flat 5,"6a, Bower Mount Road",,ME16 8AU,6526585868,C,C,75,76,Flat,Mid-Terrace,2018-12-10,E07000110,E14000804,Kent,2018-12-10,rental (social),80,81,152,145.0,1.4,26,1.3,69.0,43.0,276.0,278.0,84.0,84.0,52.0,Unknown,Y,1st,Y,,2105.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,40.0,0.0,From main system,Good,Good,(another dwelling below),NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and underfloor heating, mains gas",Good,Good,Programmer and at least two room thermostats,Good,Good,Low energy lighting in 40% of fixed outlets,Average,Average,mains gas (not community),0.0,heated corridor,,,,N,"mechanical, supply and extract","Flat 5, 6a, Bower Mount Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2018-12-10 19:57:44,rental (social),,,10014312051.0,Address Matched +230162812132009030223373401268104,"67, Wallis Avenue",,,ME15 9HS,1471148568,D,C,63,74,House,End-Terrace,2009-02-26,E07000110,E14000700,Kent,2009-03-02,rental (social),57,70,275,195.0,4.7,46,3.3,98.0,49.0,609.0,443.0,118.0,118.0,101.99,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,6.0,6.0,0.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.34,0.0,N,natural,"67, Wallis Avenue",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2009-03-02 23:37:34,rental (social),,,200003682276.0,Address Matched +654393249542011071412430282899428,"28, Radnor Close",,,ME14 2PW,2535648868,C,C,77,78,Flat,End-Terrace,2011-07-12,E07000110,E14000804,Kent,2011-07-14,marketed sale,81,83,147,135.0,1.3,28,1.2,30.0,30.0,222.0,214.0,97.0,86.0,46.39,Unknown,Y,Ground,Y,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,100.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,4.85,2.4,0.0,,natural,"28, Radnor Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2011-07-14 12:43:02,owner-occupied,6.0,6.0,10022897055.0,Address Matched +b4fcfc4a9df025b2a1bc5d4b8863215b74c4e5d8e2676cec96bcf6083607f3d9,9 Lenfield Avenue,,,ME14 5DU,10001607577,D,B,55,88,House,Semi-Detached,2021-08-16,E07000110,E14000804,Kent,2021-08-17,marketed sale,48,87,338,64.0,4.5,60,0.9,63.0,63.0,758.0,350.0,101.0,62.0,75.0,Single,Y,,,,,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.29,0.0,N,natural,9 Lenfield Avenue,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2021-08-17 09:21:30,Owner-occupied,20.0,,200003689390.0,Energy Assessor +971449149962013071616251911668227,"61, Perryfield Street",,,ME14 2SZ,2150431178,D,B,67,88,House,Mid-Terrace,2013-07-16,E07000110,E14000804,Kent,2013-07-16,rental (private),67,90,214,47.0,2.4,41,0.6,62.0,36.0,408.0,317.0,109.0,88.0,58.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,2.0,4.0,4.0,25.0,1.0,From main system,Very Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 25% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"61, Perryfield Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2013-07-16 16:25:19,rental (private),12.0,3.0,200003669735.0,Address Matched +b5000651e16728cbe4fd2d5529b3c477683955f491012259f7d9c24d267a6ef7,53 Curzon Road,,,ME14 5BB,10001546071,D,C,56,72,House,Detached,2021-08-11,E07000110,E14000804,Kent,2021-08-11,marketed sale,46,63,280,177.0,8.1,49,5.2,175.0,105.0,1304.0,1054.0,130.0,80.0,164.0,Single,Y,,,,,100.0,double glazing installed during or after 2002,Normal,2.0,6.0,6.0,33.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 33% of fixed outlets,Average,Average,mains gas (not community),0.0,,,2.52,0.0,N,natural,53 Curzon Road,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2021-08-11 14:28:39,Owner-occupied,15.0,,200003705313.0,Energy Assessor +597106498232012081420081257068002,Flat 1 Dunkeld House,Westmorland Road,,ME15 8JH,9237024868,C,C,72,76,Flat,Enclosed End-Terrace,2012-08-06,E07000110,E14000700,Kent,2012-08-14,rental (social),75,80,186,149.0,1.6,35,1.3,46.0,27.0,297.0,256.0,71.0,72.0,45.0,Single,Y,Ground,N,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,2.0,2.0,33.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 33% of fixed outlets,Average,Average,mains gas (not community),0.0,no corridor,,,0.0,,natural,"Flat 1 Dunkeld House, Westmorland Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2012-08-14 20:08:12,rental (social),6.0,2.0,200003685588.0,Address Matched +536110481032010090612171787068507,1 Little Loddenden,High Street,Staplehurst,TN12 0AD,8797559768,E,D,40,55,House,Semi-Detached,2010-09-02,E07000110,E14000804,Kent,2010-09-06,marketed sale,43,58,363,265.0,13.0,53,9.2,250.0,135.0,2235.0,1718.0,262.0,187.0,203.34,Single,Y,NO DATA!,,,2104.0,21.0,secondary glazing,Normal,0.0,8.0,8.0,15.0,5.0,From main system,Average,Good,"Solid, no insulation (assumed)",,,Some secondary glazing,Poor,Poor,"Timber frame, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Average,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 15% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.23,0.0,N,natural,"1 Little Loddenden, High Street, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: before 1900,2010-09-06 12:17:17,owner-occupied,,,200003679114.0,Address Matched +677508091932011091914193595968807,3 Priory House,The Priory,East Farleigh,ME15 0EX,9755800968,F,E,33,40,Flat,Detached,2011-09-19,E07000110,E14000804,Kent,2011-09-19,marketed sale,33,38,408,357.0,10.0,78,8.8,125.0,63.0,1727.0,1575.0,137.0,115.0,129.38,Single,Y,Ground,Y,,2106.0,0.0,not defined,Normal,0.0,4.0,4.0,0.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Granite or whin, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, electric",,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,unheated corridor,19.7,4.38,0.0,,natural,"3 Priory House, The Priory, East Farleigh",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2011-09-19 14:19:35,owner-occupied,9.0,0.0,200003727065.0,Address Matched +440524489142010021819230871209088,"67, Wheeler Street",,,ME14 1UB,191882768,D,D,57,62,House,Mid-Terrace,2010-02-18,E07000110,E14000804,Kent,2010-02-18,rental (private),53,57,360,326.0,3.8,60,3.5,52.0,33.0,622.0,577.0,85.0,85.0,63.82,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,40.0,1.0,From main system,Very Good,Very Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, no insulation",Very Poor,Very Poor,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 40% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.37,0.0,N,natural,"67, Wheeler Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2010-02-18 19:23:08,rental (private),,,200003698879.0,Address Matched +875512139732013012811115869278306,"87, Tonbridge Road",,,ME16 8JN,3629354078,E,C,52,80,Flat,Enclosed End-Terrace,2013-01-25,E07000110,E14000804,Kent,2013-01-28,rental (private),32,67,554,232.0,5.6,98,2.3,38.0,38.0,648.0,201.0,122.0,89.0,57.0,dual,N,1st,N,,2401.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,100.0,0.0,"Electric immersion, off-peak",Average,Very Poor,(other premises below),,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,Portable electric heaters (assumed),,,"Pitched, 100 mm loft insulation",Average,Average,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,no corridor,,,0.0,,natural,"87, Tonbridge Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2013-01-28 11:11:58,rental (private),4.0,4.0,200003668007.0,Address Matched +474539494032010042218233271268001,"23, Tovil Road",,,ME15 6QL,9161025768,C,C,71,76,House,Semi-Detached,2010-04-22,E07000110,E14000804,Kent,2010-04-22,marketed sale,67,73,222,186.0,3.2,37,3.2,62.0,44.0,451.0,396.0,132.0,115.0,97.07,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,5.0,5.0,58.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 58% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.45,0.0,N,natural,"23, Tovil Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2010-04-22 18:23:32,owner-occupied,,,200003664489.0,Address Matched +754321589842012022719480798522738,1 Manor Cottages,Howland Road,Marden,TN12 9EZ,4803885968,B,B,83,83,House,End-Terrace,2012-02-27,E07000110,E14000804,Kent,2012-02-27,new dwelling,86,86,88,88.0,1.3,17,1.3,50.0,50.0,241.0,241.0,66.0,66.0,78.27,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,15.0,,From main system,Good,Good,Average thermal transmittance 0.18 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.19 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.13 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.35,,,NO DATA!,"1 Manor Cottages, Howland Road, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,NO DATA!,2012-02-27 19:48:07,,15.0,15.0,10014313822.0,Address Matched +446385921012010022709414592200676,"30, Hazelwood Drive",,,ME16 0EA,6639123768,D,D,55,64,House,Detached,2010-02-27,E07000110,E14000804,Kent,2010-02-27,marketed sale,53,63,280,221.0,6.7,46,5.3,117.0,78.0,1016.0,845.0,182.0,146.0,144.6,Single,Y,NO DATA!,,,2104.0,30.0,double glazing installed during or after 2002,Normal,1.0,8.0,8.0,50.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Some double glazing,Poor,Poor,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.26,0.0,N,natural,"30, Hazelwood Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1991-1995,2010-02-27 09:41:45,owner-occupied,,,200003691897.0,Address Matched +1179210999602014072321441826542278,"58, Oak Lane",Headcorn,,TN27 9TB,7643595278,D,C,66,77,Bungalow,Detached,2014-07-23,E07000110,E14000700,Kent,2014-07-23,FiT application,42,54,290,212.0,11.0,51,7.6,99.0,99.0,1257.0,1125.0,211.0,140.0,205.0,dual,N,NODATA!,,,2402.0,100.0,double glazing installed during or after 2002,Normal,2.0,7.0,7.0,100.0,0.0,"Electric immersion, off-peak",Average,Very Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,Portable electric heaters (assumed),,,"Pitched, 200 mm loft insulation",Good,Good,Electric storage heaters,Average,Very Poor,Automatic charge control,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,NO DATA!,,,0.0,,natural,"58, Oak Lane, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,England and Wales: 1967-1975,2014-07-23 21:44:18,owner-occupied,17.0,17.0,200003699278.0,Address Matched +1429282569342016033107031847367408,"12b, Bower Place",,,ME16 8BH,8312463478,E,D,47,57,Flat,Semi-Detached,2016-03-30,E07000110,E14000804,Kent,2016-03-31,marketed sale,40,49,374,302.0,6.3,66,5.1,130.0,65.0,1186.0,988.0,98.0,98.0,96.0,Unknown,Y,1st,Y,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,0.0,0.0,From main system,Good,Good,(another dwelling below),NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,no corridor,,2.7,,N,natural,"12b, Bower Place",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2016-03-31 07:03:18,owner-occupied,,,200003668281.0,Address Matched +938152937132019030816370059078402,"57, John Street",,,ME14 2SQ,3289498078,C,B,70,86,House,Mid-Terrace,2019-03-08,E07000110,E14000804,Kent,2019-03-08,marketed sale,69,86,181,68.0,2.9,32,1.1,65.0,65.0,554.0,429.0,94.0,64.0,91.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,3.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Solid brick, with external insulation",Good,Good,"Room heaters, electric",,,"Pitched, 270 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"57, John Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2019-03-08 16:37:00,owner-occupied,,,200003702864.0,Address Matched +473856189812010042216175791200172,"14, Sovereigns Way",Marden,,TN12 9QF,1283915768,D,C,65,75,House,End-Terrace,2010-04-22,E07000110,E14000804,Kent,2010-04-22,marketed sale,64,75,283,201.0,2.8,47,2.0,57.0,31.0,467.0,357.0,95.0,82.0,60.06,Single,Y,NO DATA!,,,2106.0,100.0,secondary glazing,Normal,0.0,3.0,3.0,14.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Full secondary glazing,Good,Good,"Cavity wall, as built, partial insulation (assumed)",Average,Average,"Room heaters, electric",,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 14% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.3,0.0,N,natural,"14, Sovereigns Way, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1976-1982,2010-04-22 16:17:57,owner-occupied,,,200003708840.0,Address Matched +1425728497332017032120350766278109,1 Torry Hill Cottages,Milstead,,ME9 0SR,9986143478,G,B,11,86,House,Semi-Detached,2017-03-21,E07000110,E14000700,Kent,2017-03-21,assessment for green deal,34,97,347,-43.0,7.0,75,-0.1,100.0,60.0,1526.0,698.0,432.0,100.0,92.0,Single,N,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,33.0,0.0,"From main system, no cylinder thermostat",Very Poor,Poor,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, LPG",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, LPG",Very Poor,Average,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 33% of fixed outlets,Average,Average,LPG (not community),0.0,NO DATA!,,,,N,natural,"1 Torry Hill Cottages, Milstead",Maidstone,Faversham and Mid Kent,SITTINGBOURNE,England and Wales: 1967-1975,2017-03-21 20:35:07,rental (private),,,10014310756.0,Address Matched +1599381729922018011011411035808868,Brunswick Cottage,"13, Doddington Court",,ME16 0SE,6365275578,D,B,63,87,House,Semi-Detached,2018-01-10,E07000110,E14000804,Kent,2018-01-10,marketed sale,55,86,248,67.0,4.6,44,1.3,67.0,68.0,809.0,411.0,106.0,72.0,106.0,Single,Y,NODATA!,,,2104.0,0.0,not defined,Normal,1.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Single glazed,Very Poor,Very Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"Brunswick Cottage, 13, Doddington Court",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2018-01-10 11:41:10,owner-occupied,,,200003670350.0,Address Matched +b546585464a7cca6f6730d93e269807635c71a5ca43621fb803b90e35d5b4034,4 Collington Terrace,,,ME15 9PP,10001562561,C,B,69,82,House,Mid-Terrace,2021-08-18,E07000110,E14000700,Kent,2021-08-18,rental,66,79,226,124.0,2.8,40,1.6,86.0,60.0,467.0,470.0,90.0,62.0,71.0,Single,Y,,,,,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,57.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"System built, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 57% of fixed outlets,Good,Good,mains gas (not community),0.0,,,2.41,0.0,N,natural,4 Collington Terrace,Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2021-08-18 18:35:17,Rented (social),7.0,,200003680063.0,Energy Assessor +1147083619222014052716590713438444,The Dower House,Boughton Road,Sandway,ME17 2BE,4158173278,F,D,34,58,House,Detached,2014-05-27,E07000110,E14000700,Kent,2014-05-27,FiT application,91,97,264,158.0,2.9,7,0.8,134.0,136.0,4552.0,3005.0,339.0,207.0,420.0,Single,N,NODATA!,,,2105.0,0.0,not defined,Normal,2.0,8.0,8.0,94.0,2.0,From main system,Poor,Very Good,"Suspended, no insulation (assumed)",,,Single glazed,Poor,Poor,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, wood logs",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, wood pellets",Poor,Very Good,Programmer and at least two room thermostats,Good,Good,Low energy lighting in 94% of fixed outlets,Very Good,Very Good,bulk wood pellets,0.0,NO DATA!,,,0.0,,natural,"The Dower House, Boughton Road, Sandway",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2014-05-27 16:59:07,owner-occupied,32.0,30.0,10014307979.0,Address Matched +1098232452432014022717152023278909,"114, Wallis Avenue",,,ME15 9HT,5923920278,D,B,66,84,House,Mid-Terrace,2014-02-27,E07000110,E14000700,Kent,2014-02-27,none of the above,63,86,194,63.0,4.0,36,1.3,126.0,68.0,641.0,443.0,178.0,141.0,111.0,dual,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,6.0,6.0,14.0,1.0,"Electric immersion, off-peak",Poor,Very Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 14% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"114, Wallis Avenue",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2014-02-27 17:15:20,owner-occupied,29.0,4.0,200003682293.0,Address Matched +b54bea775ccd383314541cd704f4b206fc38ea3b2dc821d6e7cc56d767b157b0,9 Leonard Close,,,ME16 0QU,10001586809,D,B,66,81,Bungalow,Semi-Detached,2021-08-23,E07000110,E14000804,Kent,2021-08-23,marketed sale,67,82,231,114.0,2.6,38,1.2,59.0,59.0,484.0,455.0,110.0,72.0,69.0,Single,Y,,,,,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,"Room heaters, wood logs",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,1.0,0.0,N,natural,9 Leonard Close,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2021-08-23 18:22:12,Owner-occupied,15.0,,200003704966.0,Energy Assessor +1380668191652015103010585392759444,"10, Cobnut Avenue",,,ME15 8WH,4447120478,B,A,83,94,House,NO DATA!,2015-10-30,E07000110,E14000700,Kent,2015-10-30,new dwelling,85,94,90,23.0,1.7,16,0.5,65.0,65.0,297.0,298.0,106.0,57.0,109.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.12 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.28 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"10, Cobnut Avenue",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2015-10-30 10:58:53,unknown,10.0,10.0,10091194548.0,Address Matched +16938309922019121709271468468411,63 Wallis Place,Hart Street,,ME16 8FB,1606088468,C,B,79,81,Flat,Mid-Terrace,2019-12-16,E07000110,E14000804,Kent,2019-12-17,marketed sale,81,83,124,113.0,1.5,22,1.4,115.0,59.0,192.0,198.0,119.0,119.0,69.0,Single,Y,1st,N,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,7.0,0.0,From main system,Good,Good,"To external air, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 7% of fixed outlets,Very Poor,Very Poor,mains gas (not community),0.0,unheated corridor,6.42,,,N,natural,"63 Wallis Place, Hart Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2019-12-17 09:27:14,rental (private),,,10022900664.0,Address Matched +1119773179442014040811203323140988,"12, Arran Road",,,ME15 9TE,5485971278,D,C,68,78,House,Detached,2014-04-08,E07000110,E14000804,Kent,2014-04-08,marketed sale,64,74,167,112.0,5.2,32,3.5,76.0,76.0,950.0,868.0,125.0,84.0,162.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,2.0,9.0,9.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"12, Arran Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2014-04-08 11:20:33,owner-occupied,15.0,15.0,200003675952.0,Address Matched +1431499644632016041118113388078108,Flat 57,Concorde House,London Road,ME16 8QA,4838183478,C,C,71,71,Flat,Mid-Terrace,2016-04-05,E07000110,E14000804,Kent,2016-04-11,rental (private),68,68,242,242.0,2.2,41,2.2,40.0,40.0,331.0,331.0,169.0,169.0,54.0,dual,N,4th,N,,2107.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,100.0,0.0,From main system,Poor,Poor,(another dwelling below),NO DATA!,,Fully double glazed,Good,Good,"System built, with internal insulation",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, electric",Very Poor,Poor,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,unheated corridor,8.99,2.5,,N,natural,"Flat 57, Concorde House, London Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2016-04-11 18:11:33,rental (private),,,, +1590974419742017112113321154532208,"45, The Weavers",,,ME16 0NZ,3719215578,D,B,68,89,House,Mid-Terrace,2017-11-20,E07000110,E14000804,Kent,2017-11-21,marketed sale,68,90,243,53.0,2.0,43,0.5,65.0,35.0,324.0,289.0,120.0,70.0,48.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,1.0,3.0,3.0,14.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 14% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"45, The Weavers",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1991-1995,2017-11-21 13:32:11,owner-occupied,,,200003694784.0,Address Matched +765434687232012032322282533268109,"65, Church Street",Boughton Monchelsea,,ME17 4HN,8993176968,F,E,33,45,House,Semi-Detached,2012-03-23,E07000110,E14000700,Kent,2012-03-23,marketed sale,30,40,449,353.0,9.7,87,7.6,103.0,56.0,1560.0,1266.0,135.0,110.0,92.86,Single,Y,NODATA!,,,2107.0,100.0,double glazing installed during or after 2002,Normal,2.0,6.0,6.0,15.0,3.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 15% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,2.1,0.0,,natural,"65, Church Street, Boughton Monchelsea",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1900-1929,2012-03-23 22:28:25,owner-occupied,13.0,2.0,200003674188.0,Address Matched +1314585349222015050610180855098945,"7, Stuart Close",,,ME14 5HG,4527455378,B,B,81,82,House,Detached,2015-03-21,E07000110,E14000804,Kent,2015-05-06,none of the above,74,75,109,104.0,4.7,20,4.5,174.0,96.0,1034.0,1046.0,147.0,147.0,240.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,More Than Typical,3.0,9.0,9.0,19.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 19% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"7, Stuart Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2015-05-06 10:18:08,owner-occupied,,,200003716605.0,Address Matched +384595899102019031313131969819078,Flat 111 Scotney Gardens,St. Peters Street,,ME16 0GT,180198668,C,B,79,82,Flat,Mid-Terrace,2019-03-13,E07000110,E14000804,Kent,2019-03-13,rental (private),76,80,159,136.0,1.8,27,1.5,54.0,54.0,206.0,172.0,200.0,171.0,67.0,dual,N,2nd,N,,2102.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,"Electric immersion, off-peak",Poor,Poor,(another dwelling below),NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, electric",Very Poor,Poor,"Programmer, no room thermostat",Very Poor,Very Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,unheated corridor,2.34,,,N,natural,"Flat 111 Scotney Gardens, St. Peters Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1991-1995,2019-03-13 13:13:19,rental (private),,,10022893479.0,Address Matched +1782358292442020020520314066800658,"7, Poplar Grove",,,ME16 0DF,448498678,C,B,70,83,House,Semi-Detached,2020-02-05,E07000110,E14000804,Kent,2020-02-05,marketed sale,65,79,183,100.0,4.1,32,2.3,87.0,87.0,704.0,588.0,107.0,73.0,127.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,3.0,7.0,7.0,100.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"7, Poplar Grove",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2020-02-05 20:31:40,owner-occupied,,,200003658630.0,Address Matched +592636212932011021513354189968606,"67, Melrose Close",,,ME15 6BD,1609683868,B,B,88,89,House,Mid-Terrace,2011-02-15,E07000110,E14000804,Kent,2011-02-15,new dwelling,87,87,84,81.0,1.5,13,1.5,88.0,68.0,250.0,252.0,120.0,120.0,114.81,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,10.0,,From main system,Very Good,Very Good,Average thermal transmittance 0.20 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.20 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Very Good,Very Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in 71% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.3,,,NO DATA!,"67, Melrose Close",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2011-02-15 13:35:41,,14.0,10.0,10014307061.0,Address Matched +210202890922009051915304666878201,"9, Shepway Court",Norfolk Road,,ME15 7JF,632936568,C,C,79,79,Flat,Semi-Detached,2009-01-13,E07000110,E14000700,Kent,2009-05-19,rental (social),76,76,191,191.0,1.8,32,1.8,35.0,35.0,239.0,239.0,105.0,105.0,56.11,Single,Y,Ground,N,2.0,2106.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,80.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.36,0.0,N,natural,"9, Shepway Court, Norfolk Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2009-05-19 15:30:46,rental (social),,,200003713183.0,Address Matched +197322573452008121118412105989351,"63, Bell Road",,,ME15 9HB,3157355568,B,B,83,84,House,Mid-Terrace,2008-12-10,E07000110,E14000700,Kent,2008-12-11,rental (social),82,83,132,129.0,1.5,22,1.5,42.0,33.0,197.0,198.0,70.0,70.0,68.28,Single,Y,NO DATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,71.0,0.0,From main system,Very Good,Very Good,"Solid, insulated (assumed)",,,Fully double glazed,Average,Average,"Timber frame, as built, insulated (assumed)",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 71% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.41,0.0,N,natural,"63, Bell Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2007 onwards,2008-12-11 18:41:21,rental (social),,,200003681508.0,Address Matched +452053869642018071710313276389808,"23, Oriel Grove",,,ME15 9WR,5631363768,C,B,77,89,House,Mid-Terrace,2018-05-10,E07000110,E14000700,Kent,2018-07-17,rental (social),77,88,138,57.0,2.3,24,1.0,84.0,67.0,353.0,358.0,119.0,69.0,94.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,75.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Very Good,Very Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"23, Oriel Grove",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2007 onwards,2018-07-17 10:31:32,rental (social),,,10014311542.0,Address Matched +510814415012010070810574097000570,"72, Old Tovil Road",,,ME15 6QG,5078577768,D,D,63,63,House,End-Terrace,2010-07-07,E07000110,E14000804,Kent,2010-07-08,rental (private),56,56,300,297.0,4.2,50,4.2,58.0,44.0,672.0,674.0,99.0,99.0,83.86,Single,Y,NO DATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,1.0,4.0,4.0,70.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Very Good,Very Good,Programmer and room thermostat,Average,Average,Low energy lighting in 70% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.49,0.0,N,natural,"72, Old Tovil Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2010-07-08 10:57:40,rental (private),,,200003683322.0,Address Matched +833140259742012090715124600120038,"12, Oakwood Road",,,ME16 8AB,8767151078,E,B,52,81,House,Mid-Terrace,2012-09-07,E07000110,E14000804,Kent,2012-09-07,marketed sale,48,80,302,98.0,4.5,58,1.5,88.0,44.0,755.0,484.0,106.0,59.0,78.0,Single,Y,NODATA!,,,2107.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,0.0,4.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"12, Oakwood Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2012-09-07 15:12:46,owner-occupied,12.0,0.0,200003657234.0,Address Matched +1379148819642015102717272544052038,"2, Latter Road",,,ME17 3FD,628310478,B,A,84,93,House,Semi-Detached,2015-10-27,E07000110,E14000700,Kent,2015-10-27,new dwelling,85,94,85,28.0,1.8,15,0.6,68.0,68.0,336.0,336.0,91.0,55.0,123.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"2, Latter Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2015-10-27 17:27:25,unknown,1.0,1.0,10091194021.0,Address Matched +597101209262016092616233014968496,"10, Cranham Square",Marden,,TN12 9TG,9151024868,C,C,73,78,Maisonette,Enclosed End-Terrace,2016-09-26,E07000110,E14000804,Kent,2016-09-26,non marketed sale,74,80,185,143.0,2.0,32,1.5,68.0,43.0,345.0,273.0,98.0,99.0,60.0,Single,Y,Ground,N,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,43.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 43% of fixed outlets,Average,Average,mains gas (not community),0.0,no corridor,,2.4,,N,natural,"10, Cranham Square, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1967-1975,2016-09-26 16:23:30,rental (private),,,200003710668.0,Address Matched +514903155552010071711425090900973,30 Stanhope House,Rockwell Court,Tovil,ME15 6FP,9325508768,C,B,79,84,Flat,Enclosed Mid-Terrace,2010-07-17,E07000110,E14000804,Kent,2010-07-17,rental (private),81,81,152,156.0,1.7,23,1.7,47.0,47.0,189.0,102.0,145.0,145.0,71.85,dual,N,2nd,N,4.0,2603.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,"Electric immersion, off-peak",Poor,Poor,(other premises below),,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Room heaters, electric",Very Poor,Poor,Programmer and appliance thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity - this is for backwards compatibility only and should not be used,0.0,heated corridor,,2.35,0.0,N,natural,"30 Stanhope House, Rockwell Court, Tovil",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2010-07-17 11:42:50,rental (private),,,10022901549.0,Address Matched +1808927782842020070813421275000288,"1, Wickings Close",Staplehurst,,TN12 0FR,5880780778,B,A,84,95,House,Semi-Detached,2020-07-08,E07000110,E14000804,Kent,2020-07-08,new dwelling,86,97,81,4.0,1.3,14,0.1,70.0,70.0,216.0,216.0,80.0,49.0,89.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.28 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.12 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"1, Wickings Close, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,NO DATA!,2020-07-08 13:42:12,unknown,10.0,10.0,10093304210.0,Address Matched +1536139222312018032911403492280850,Flat 6,"9, Cascade Close",Marden,TN12 9FW,8064221578,B,B,84,84,Flat,End-Terrace,2018-03-29,E07000110,E14000804,Kent,2018-03-29,new dwelling,88,88,81,81.0,1.0,14,1.0,53.0,53.0,177.0,177.0,74.0,74.0,72.0,standard tariff,,top floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.28 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.15 W/m-¦K,Good,Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Flat 6, 9, Cascade Close, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,NO DATA!,2018-03-29 11:40:34,owner-occupied,10.0,10.0,10093303379.0,Address Matched +1735650749922019071119384875198951,"13, Farningham Close",,,ME14 5QX,5746455678,D,B,62,89,House,Mid-Terrace,2019-07-11,E07000110,E14000804,Kent,2019-07-11,rental (private),58,90,294,50.0,3.0,52,0.6,75.0,47.0,454.0,299.0,160.0,63.0,59.0,Single,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,40.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 40% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"13, Farningham Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2019-07-11 19:38:48,rental (private),,,200003671982.0,Address Matched +824507964732013041609163020078104,"4, Canning Street",,,ME14 2RU,6420190078,B,B,84,84,House,Mid-Terrace,2013-04-02,E07000110,E14000804,Kent,2013-04-16,new dwelling,87,87,73,73.0,1.3,14,1.3,54.0,54.0,236.0,236.0,80.0,80.0,92.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.18 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.22 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.17 W/m?K,Good,Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"4, Canning Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2013-04-16 09:16:30,NO DATA!,12.0,12.0,10014313832.0,Address Matched +336540373132009073023134663768903,"16, Eling Court",,,ME15 6DE,7313945668,C,B,78,83,Flat,Semi-Detached,2009-07-30,E07000110,E14000804,Kent,2009-07-30,rental (social),76,81,257,200.0,1.4,43,1.1,17.0,17.0,222.0,189.0,105.0,87.0,33.0,Single,Y,1st,Y,2.0,2107.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,100.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Poor,Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,unheated corridor,6.5,2.36,0.0,N,natural,"16, Eling Court",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1976-1982,2009-07-30 23:13:46,rental (social),,,10022901449.0,Address Matched +681831939442014111207272496049298,"34, Camden Street",,,ME14 1UU,3435930968,D,B,66,82,House,Mid-Terrace,2014-11-11,E07000110,E14000804,Kent,2014-11-12,assessment for green deal,65,82,207,91.0,2.8,40,1.3,62.0,44.0,557.0,497.0,79.0,53.0,69.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,2.0,3.0,3.0,60.0,0.0,From main system,Good,Good,"To unheated space, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 60% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"34, Camden Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2014-11-12 07:27:24,rental (social),10.0,6.0,200003699128.0,Address Matched +488872693612010052218084892200578,Finedon,Heath Road,Boughton Monchelsea,ME17 4HR,5875326768,D,C,66,69,House,Semi-Detached,2010-05-21,E07000110,E14000804,Kent,2010-05-22,marketed sale,67,69,230,214.0,3.3,38,3.1,80.0,50.0,561.0,538.0,98.0,98.0,98.93,dual,Y,NO DATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,40.0,0.0,From main system,Very Good,Very Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,"Flat, insulated (assumed)",Average,Average,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 40% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.58,0.0,N,natural,"Finedon, Heath Road, Boughton Monchelsea",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2010-05-22 18:08:48,owner-occupied,,,200003674207.0,Address Matched +184571370962008111311584964178118,"104, Milton Street",,,ME16 8LL,1632724568,E,D,53,63,House,Mid-Terrace,2008-11-13,E07000110,E14000804,Kent,2008-11-13,rental (private),46,56,417,330.0,4.7,70,3.7,45.0,30.0,568.0,473.0,111.0,89.0,67.06,Single,Y,NO DATA!,,,2104.0,70.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,50.0,2.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Partial double glazing,Poor,Poor,"Granite or whinstone, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Poor,Poor,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.46,0.0,N,natural,"104, Milton Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2008-11-13 11:58:49,rental (private),,,200003655690.0,Address Matched +594007848152011021720282999990687,"9, Lenham Road",Headcorn,,TN27 9TU,6772893868,C,C,73,74,House,Mid-Terrace,2011-02-17,E07000110,E14000700,Kent,2011-02-17,marketed sale,73,74,162,157.0,3.9,26,3.8,127.0,85.0,599.0,608.0,157.0,157.0,114.9,Single,Y,NO DATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,7.0,7.0,50.0,0.0,From main system,Very Good,Very Good,"Suspended, limited insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.42,0.0,N,natural,"9, Lenham Road, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,England and Wales: 1996-2002,2011-02-17 20:28:29,owner-occupied,,,10014307903.0,Address Matched +316829510222009062908564614758681,"18, Rutland Way",,,ME15 8DR,8162114668,E,C,47,71,House,Semi-Detached,2009-06-25,E07000110,E14000700,Kent,2009-06-29,marketed sale,41,67,462,242.0,5.6,77,2.9,65.0,34.0,734.0,408.0,141.0,102.0,71.87,Single,Y,NO DATA!,,,2104.0,90.0,double glazing installed before 2002,Normal,1.0,4.0,4.0,10.0,0.0,From main system,Average,Good,"Solid, no insulation (assumed)",,,Partial double glazing,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Average,Good,Programmer and room thermostat,Poor,Poor,Low energy lighting in 10% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.43,0.0,N,natural,"18, Rutland Way",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2009-06-29 08:56:46,owner-occupied,,,200003684639.0,Address Matched +1731488829042019062418181267512648,"18, Harling Close",Boughton Monchelsea,,ME17 4UX,9030425678,D,B,64,82,House,Detached,2019-06-24,E07000110,E14000700,Kent,2019-06-24,marketed sale,58,79,241,110.0,4.4,42,2.1,140.0,76.0,683.0,546.0,146.0,73.0,105.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,6.0,5.0,15.0,0.0,From main system,Good,Good,"Solid, limited insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, mains gas",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 15% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"18, Harling Close, Boughton Monchelsea",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1996-2002,2019-06-24 18:18:12,owner-occupied,,,10022892712.0,Address Matched +1097464543012014111012473392949529,"5, Fieldfare Drive",,,ME15 6XL,5990320278,B,A,84,94,House,Semi-Detached,2014-11-10,E07000110,E14000804,Kent,2014-11-10,new dwelling,85,95,88,19.0,1.6,15,0.4,67.0,67.0,279.0,280.0,102.0,55.0,106.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.27 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.17 W/m-¦K,Good,Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"5, Fieldfare Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2014-11-10 12:47:33,owner-occupied,13.0,13.0,10014315266.0,Address Matched +1741264399702019080516590960510458,"47, Chestnut Road",Allington,,ME16 9FR,3703695678,B,B,86,87,House,Detached,2019-08-05,E07000110,E14000804,Kent,2019-08-05,new dwelling,85,87,75,63.0,1.8,13,1.5,83.0,83.0,316.0,317.0,103.0,57.0,133.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.19 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.16 W/m-¦K,Good,Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"47, Chestnut Road, Allington",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2019-08-05 16:59:09,unknown,38.0,38.0,10093306643.0,Address Matched +596830549232012010521384869068109,"63, Quarry Road",,,ME15 6UB,4919124868,D,D,59,59,House,Mid-Terrace,2012-01-05,E07000110,E14000804,Kent,2012-01-05,rental (social),56,56,288,284.0,3.7,55,3.7,49.0,37.0,638.0,639.0,80.0,80.0,42.17,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,6.0,6.0,67.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 67% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,2.41,0.0,,natural,"63, Quarry Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2012-01-05 21:38:48,rental (social),12.0,8.0,200003682015.0,Address Matched +597026229002013071723205182479338,"33, Chantry Road",Marden,,TN12 9HT,8030024868,C,C,73,77,Flat,Semi-Detached,2013-07-17,E07000110,E14000804,Kent,2013-07-17,rental (social),75,80,166,133.0,1.8,32,1.4,54.0,36.0,338.0,284.0,82.0,83.0,57.0,Single,Y,Ground,N,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,50.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,no corridor,,,0.0,,natural,"33, Chantry Road, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1950-1966,2013-07-17 23:20:51,rental (social),8.0,4.0,200003708504.0,Address Matched +1487218438312016101211143897969347,Flat 12,Miller Heights,43-51 Lower Stone Street,ME15 6LN,3704877478,C,C,72,72,Flat,NO DATA!,2016-10-12,E07000110,E14000804,Kent,2016-10-12,none of the above,60,60,316,316.0,2.7,53,2.7,37.0,37.0,347.0,347.0,153.0,153.0,51.0,off-peak 10 hour,,mid floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Poor,Poor,Average thermal transmittance 0.22 W/m-¦K,Good,Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.44 W/m-¦K,Good,Good,,,,(other premises above),,,"Boiler and radiators, electric",Poor,Very Poor,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"Flat 12, Miller Heights, 43-51 Lower Stone Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2016-10-12 11:14:38,unknown,4.0,4.0,10093303792.0,Address Matched +1020737859712013100716251097079917,12 Danefield Court,Church Lane,Bearsted,ME14 4EF,9714974178,D,B,68,82,Flat,Enclosed Mid-Terrace,2013-10-07,E07000110,E14000700,Kent,2013-10-07,marketed sale,57,69,307,217.0,3.0,54,2.1,76.0,38.0,267.0,177.0,218.0,92.0,55.0,dual,N,1st,Y,,2401.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,0.0,0.0,"Electric immersion, off-peak",Poor,Very Poor,(other premises below),,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,"Pitched, 250 mm loft insulation",Good,Good,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,No low energy lighting,Very Poor,Very Poor,electricity (not community),0.0,unheated corridor,3.59,,0.0,,natural,"12 Danefield Court, Church Lane, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2013-10-07 16:25:10,owner-occupied,6.0,0.0,200003692916.0,Address Matched +553447879922010111108204460398850,"37, Melrose Close",,,ME15 6BD,5626770868,B,B,87,88,House,End-Terrace,2010-11-11,E07000110,E14000804,Kent,2010-11-11,new dwelling,86,87,84,81.0,1.9,13,1.8,97.0,78.0,275.0,277.0,126.0,126.0,137.82,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,9.0,,From main system,Very Good,Very Good,Average thermal transmittance 0.20 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.21 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.10 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Very Good,Very Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.3,,,NO DATA!,"37, Melrose Close",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2010-11-11 08:20:44,,12.0,9.0,10014307045.0,Address Matched +7854810152020012309230523200948,"30a, Coombe Road",,,ME15 6YR,9813037468,C,B,74,85,House,End-Terrace,2020-01-21,E07000110,E14000804,Kent,2020-01-23,none of the above,71,82,162,92.0,3.5,29,2.0,105.0,105.0,560.0,529.0,138.0,85.0,122.0,dual,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,92.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 270 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 92% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"30a, Coombe Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1991-1995,2020-01-23 09:23:05,rental (social),,,10022901264.0,Address Matched +1716753519802019042814261867412468,"14, Moncktons Lane",,,ME14 2PY,9885714678,C,B,71,86,House,Semi-Detached,2019-04-26,E07000110,E14000804,Kent,2019-04-28,marketed sale,69,85,193,80.0,2.5,34,1.1,61.0,61.0,409.0,374.0,121.0,76.0,75.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,92.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 92% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"14, Moncktons Lane",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2019-04-28 14:26:18,owner-occupied,,,200003670547.0,Address Matched +1025273459962013101610392255758547,"54, Charlton Street",,,ME16 8LA,4596515178,D,B,58,85,House,Mid-Terrace,2013-10-15,E07000110,E14000804,Kent,2013-10-16,marketed sale,62,90,261,66.0,3.2,43,0.7,44.0,44.0,662.0,402.0,144.0,73.0,74.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,100.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"54, Charlton Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2013-10-16 10:39:22,owner-occupied,20.0,20.0,200003655423.0,Address Matched +469499679962010041423375614248150,"18, Watersmeet Close",,,ME15 6GU,5194784768,C,C,75,79,House,Semi-Detached,2010-04-14,E07000110,E14000804,Kent,2010-04-14,marketed sale,73,76,198,172.0,2.5,33,2.1,64.0,41.0,340.0,318.0,128.0,113.0,74.5,Unknown,Y,NO DATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,45.0,0.0,From main system,Good,Good,"Solid, limited insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 45% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.35,0.0,N,natural,"18, Watersmeet Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2010-04-14 23:37:56,owner-occupied,,,10022892195.0,Address Matched +1171465549242014071009411124540618,"22, Foxden Drive",Downswood,,ME15 8TQ,6243445278,D,B,68,87,House,Semi-Detached,2014-07-09,E07000110,E14000700,Kent,2014-07-10,none of the above,64,86,173,58.0,4.5,33,1.5,104.0,71.0,769.0,501.0,182.0,88.0,134.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,5.0,5.0,54.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, partial insulation (assumed)",Average,Average,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 54% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"22, Foxden Drive, Downswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1976-1982,2014-07-10 09:41:11,owner-occupied,13.0,7.0,200003686548.0,Address Matched +1707077427952019042909035394210760,Flat 2,16 Gabriels Hill,,ME15 6JG,7075743678,D,D,64,64,Flat,NO DATA!,2019-04-25,E07000110,E14000804,Kent,2019-04-29,new dwelling,67,67,324,324.0,1.8,55,1.8,29.0,29.0,346.0,346.0,207.0,207.0,32.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,"Electric immersion, standard tariff",Very Poor,Poor,Average thermal transmittance 0.22 W/m+é-¦K,Good,Good,Single glazed,Very Poor,Very Poor,Average thermal transmittance 0.27 W/m+é-¦K,Good,Good,,,,(other premises above),,,"Room heaters, electric",Very Poor,Poor,Programmer and appliance thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"Flat 2, 16 Gabriels Hill",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2019-04-29 09:03:53,unknown,100.0,100.0,10094444502.0,Address Matched +1480094829802016091621572641769868,"51, Terminus Road",,,ME16 9DA,2829727478,C,B,71,91,Bungalow,Mid-Terrace,2016-09-16,E07000110,E14000804,Kent,2016-09-16,rental (social),71,93,217,30.0,1.9,38,0.3,56.0,36.0,312.0,261.0,127.0,74.0,50.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,43.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 270 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 43% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,2.32,,N,natural,"51, Terminus Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2016-09-16 21:57:26,rental (social),,,200003677891.0,Address Matched +329956209342019071816472860519488,"25, Alkham Road",,,ME14 5PA,9311605668,D,C,63,74,Maisonette,Mid-Terrace,2019-07-18,E07000110,E14000804,Kent,2019-07-18,rental (private),59,74,273,173.0,3.2,48,2.0,61.0,61.0,554.0,340.0,92.0,92.0,66.0,Single,Y,2nd,Y,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,86.0,1.0,From main system,Good,Good,(another dwelling below),NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 25 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 86% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,no corridor,,,,N,natural,"25, Alkham Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2019-07-18 16:47:28,rental (private),,,200003716222.0,Address Matched +351523450262009082414205586148091,"473, Tonbridge Road",,,ME16 9LH,9866556668,E,C,43,71,House,Detached,2009-08-24,E07000110,E14000804,Kent,2009-08-24,marketed sale,35,64,390,192.0,10.0,71,5.1,120.0,66.0,1101.0,554.0,154.0,111.0,143.55,Single,Y,NO DATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,0.0,7.0,7.0,18.0,1.0,From main system,Average,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, coal",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Average,Good,Programmer and room thermostat,Poor,Poor,Low energy lighting in 18% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.5,0.0,N,natural,"473, Tonbridge Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2009-08-24 14:20:55,owner-occupied,,,200003681707.0,Address Matched +931610794212013052917155894970805,2 Chapel Cottages,Laddingford,,ME18 6BT,8568448078,E,A,50,93,House,Semi-Detached,2013-05-15,E07000110,E14000804,Kent,2013-05-29,assessment for green deal,47,95,356,13.0,4.0,69,0.2,49.0,35.0,573.0,306.0,219.0,69.0,58.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,1.0,3.0,3.0,60.0,0.0,From main system,Average,Average,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 60% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"2 Chapel Cottages, Laddingford",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2013-05-29 17:15:58,owner-occupied,10.0,6.0,200003724294.0,Address Matched +1131307569702014042614175327242248,"77, Abingdon Road",,,ME16 9EH,6792162278,D,C,57,76,House,Semi-Detached,2014-04-24,E07000110,E14000804,Kent,2014-04-26,assessment for green deal,55,76,226,110.0,5.2,43,2.6,130.0,72.0,982.0,767.0,164.0,81.0,122.0,dual,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,5.0,5.0,18.0,0.0,"From main system, no cylinder thermostat",Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 18% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"77, Abingdon Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2014-04-26 14:17:53,owner-occupied,17.0,3.0,200003665314.0,Address Matched +b61d19a47e1a40afe2601d8ae958fcb19d2449da5916e338840f3cb339bac17b,Bicknor Oast Cottage,Bicknor Lane,Bicknor,ME9 8AX,422533768,D,B,60,89,House,Detached,2021-08-26,E07000110,E14000700,Kent,2021-08-27,rental,74,98,125,-19.0,3.2,24,-0.1,187.0,107.0,704.0,723.0,213.0,126.0,133.0,dual,N,,,,,100.0,double glazing installed during or after 2002,Normal,4.0,6.0,6.0,26.0,0.0,From main system,Poor,Good,"Suspended, insulated (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, wood logs",,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, LPG",Poor,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 26% of fixed outlets,Average,Average,LPG (not community),0.0,,,2.46,0.0,N,natural,"Bicknor Oast Cottage, Bicknor Lane, Bicknor",Maidstone,Faversham and Mid Kent,SITTINGBOURNE,England and Wales: 2003-2006,2021-08-27 14:30:59,Rented (private),19.0,,10022896259.0,Energy Assessor +719253869022011110219174043828209,Flat 4,81-83 Upper Stone Street,,ME15 6HE,470603968,E,E,50,50,Flat,Semi-Detached,2011-11-02,E07000110,E14000804,Kent,2011-11-02,rental (private),47,47,385,385.0,4.7,68,4.7,43.0,43.0,763.0,763.0,146.0,146.0,38.63,dual,Y,2nd,Y,,2603.0,100.0,secondary glazing,Normal,0.0,3.0,3.0,87.0,0.0,Electric instantaneous at point of use,Very Poor,Very Poor,(other premises below),,,Full secondary glazing,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Roof room(s), insulated (assumed)",Good,Good,"Room heaters, electric",Poor,Very Poor,Programmer and appliance thermostats,Good,Good,Low energy lighting in 88% of fixed outlets,Very Good,Very Good,electricity (not community),0.0,unheated corridor,3.95,2.54,0.0,,natural,"Flat 4, 81-83 Upper Stone Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2011-11-02 19:17:40,rental (private),8.0,7.0,200003729548.0,Address Matched +604971906932011062108470950268503,"9, Ravens Dane Close",Downswood,,ME15 8XL,320584868,D,D,60,68,House,End-Terrace,2011-06-21,E07000110,E14000700,Kent,2011-06-21,marketed sale,58,69,294,222.0,3.1,57,2.3,49.0,30.0,463.0,388.0,134.0,99.0,54.72,Single,Y,NODATA!,,,2106.0,33.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,38.0,0.0,From main system,Average,Average,"Suspended, no insulation (assumed)",,,Partial double glazing,Poor,Poor,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 38% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,2.38,0.0,,natural,"9, Ravens Dane Close, Downswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2011-06-21 08:47:09,owner-occupied,8.0,3.0,200003691598.0,Address Matched +1024991119802013101510554213579598,"36, Fir Tree Grove",,,ME5 8XD,834115178,D,C,60,80,House,Mid-Terrace,2013-10-11,E07000110,E14000700,Kent,2013-10-15,marketed sale,56,78,234,104.0,4.0,45,1.8,101.0,50.0,681.0,538.0,103.0,69.0,88.0,Single,Y,NODATA!,,,2107.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"36, Fir Tree Grove",Maidstone,Faversham and Mid Kent,CHATHAM,England and Wales: 1967-1975,2013-10-15 10:55:42,owner-occupied,7.0,0.0,200003676706.0,Address Matched +1035918938052013110112350898079316,"157, London Road",,,ME16 0HA,3672885178,E,C,54,78,House,Semi-Detached,2013-11-01,E07000110,E14000804,Kent,2013-11-01,marketed sale,52,78,266,108.0,4.6,50,1.9,81.0,52.0,862.0,586.0,113.0,76.0,91.0,Unknown,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,1.0,6.0,6.0,44.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 44% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"157, London Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2013-11-01 12:35:08,owner-occupied,9.0,4.0,200003659092.0,Address Matched +214726955752009011914024806910655,"12, Bray Gardens",,,ME15 9TR,6517566568,E,C,47,69,House,Detached,2009-01-19,E07000110,E14000804,Kent,2009-01-19,marketed sale,46,68,358,207.0,6.4,59,3.7,88.0,52.0,931.0,546.0,133.0,114.0,107.8,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,6.0,6.0,30.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,"Pitched, 75mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 30% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,0.0,N,natural,"12, Bray Gardens",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2009-01-19 14:02:48,owner-occupied,,,200003664083.0,Address Matched +589121768112011020522141095090580,Elsfield House,Ashford Road,Hollingbourne,ME17 1PA,5072853868,E,D,50,58,House,Detached,2011-02-04,E07000110,E14000700,Kent,2011-02-05,rental (private),46,52,334,287.0,7.7,56,6.6,152.0,76.0,1180.0,1054.0,170.0,160.0,137.01,Single,Y,NO DATA!,,,2107.0,100.0,double glazing installed before 2002,Normal,2.0,7.0,7.0,0.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, partial insulation (assumed)",Average,Average,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.7,0.0,N,natural,"Elsfield House, Ashford Road, Hollingbourne",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2011-02-05 22:14:10,rental (private),,,200003698508.0,Address Matched +851249602012012103013260298229104,"77, Fennel Close",,,ME16 0FG,1452282078,C,B,77,90,House,Mid-Terrace,2012-10-29,E07000110,E14000804,Kent,2012-10-30,marketed sale,79,91,116,34.0,2.2,22,0.7,112.0,56.0,292.0,308.0,136.0,74.0,100.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,0.0,0.0,From main system,Good,Good,"Suspended, insulated (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"77, Fennel Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2012-10-30 13:26:02,owner-occupied,20.0,0.0,200003722332.0,Address Matched +1055661129342013120420545512770548,"142, Merton Road",Bearsted,,ME15 8LS,8377527178,D,B,66,91,House,Semi-Detached,2013-12-04,E07000110,E14000700,Kent,2013-12-04,none of the above,65,94,220,22.0,2.5,42,0.3,64.0,37.0,467.0,300.0,82.0,57.0,60.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,27.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 27% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"142, Merton Road, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2013-12-04 20:54:55,owner-occupied,11.0,3.0,200003686117.0,Address Matched +1228853049142014102906443622942188,"23, Coverdale Avenue",,,ME15 9DR,7134649278,C,B,70,90,House,Semi-Detached,2014-10-28,E07000110,E14000700,Kent,2014-10-29,marketed sale,71,92,192,33.0,2.1,37,0.4,53.0,41.0,385.0,325.0,129.0,71.0,58.0,Single,Y,NODATA!,,,2103.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,71.0,0.0,From main system,Good,Good,"Solid, limited insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,Room thermostat only,Poor,Poor,Low energy lighting in 71% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"23, Coverdale Avenue",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1996-2002,2014-10-29 06:44:36,owner-occupied,7.0,5.0,200003710637.0,Address Matched +1699662439262019022112094242398061,"12, Smith Way",Headcorn,,TN27 9EQ,6427392678,B,A,87,94,House,Detached,2019-02-21,E07000110,E14000700,Kent,2019-02-21,new dwelling,87,94,63,20.0,1.9,11,0.6,99.0,99.0,271.0,273.0,107.0,59.0,169.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.17 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.18 W/m-¦K,Good,Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"12, Smith Way, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,NO DATA!,2019-02-21 12:09:42,unknown,20.0,20.0,10093306441.0,Address Matched +165217252842020080809044359200668,"2, Hurst Villas",Howland Road,,TN12 9HF,1875852568,C,B,71,83,House,Semi-Detached,2020-08-06,E07000110,E14000804,Kent,2020-08-08,marketed sale,71,83,175,95.0,2.9,28,1.5,77.0,77.0,561.0,522.0,95.0,65.0,101.0,Unknown,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,6.0,6.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Solid brick, with internal insulation",Good,Good,"Room heaters, wood logs",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"2, Hurst Villas, Howland Road",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1900-1929,2020-08-08 09:04:43,owner-occupied,,,200003709889.0,Address Matched +719248256312019061100082990010093,"14, Nicholas Close",Barming,,ME16 9PN,345603968,C,B,76,90,House,Mid-Terrace,2019-06-08,E07000110,E14000804,Kent,2019-06-11,rental (social),77,90,150,45.0,1.8,26,0.6,53.0,53.0,285.0,288.0,121.0,75.0,70.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"14, Nicholas Close, Barming",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1991-1995,2019-06-11 00:08:29,rental (social),,,200003697549.0,Address Matched +663588919802011080817041488990988,"1, Oak Lane",Headcorn,,TN27 9TR,3800219868,F,D,37,55,House,Semi-Detached,2011-08-08,E07000110,E14000700,Kent,2011-08-08,marketed sale,23,39,649,438.0,9.2,115,6.2,57.0,57.0,984.0,649.0,299.0,227.0,80.42,dual,Y,NODATA!,,,2402.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,78.0,2.0,"Electric immersion, off-peak",Very Poor,Very Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,"Pitched, 50 mm loft insulation",Poor,Poor,Electric storage heaters,Average,Very Poor,Automatic charge control,Average,Average,Low energy lighting in 78% of fixed outlets,Very Good,Very Good,electricity (not community),0.0,NO DATA!,,2.27,0.0,,natural,"1, Oak Lane, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,England and Wales: 1950-1966,2011-08-08 17:04:14,owner-occupied,9.0,7.0,200003699478.0,Address Matched +667678619922011121914384809918939,10 Hales Court,Church Street,,ME14 1DG,3008149868,B,B,83,83,Flat,NO DATA!,2011-12-19,E07000110,E14000804,Kent,2011-12-19,new dwelling,84,84,131,128.0,1.1,23,1.1,38.0,29.0,132.0,134.0,99.0,99.0,48.1,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,4.0,,From main system,Average,Good,(other premises below),,,Fully double glazed,Good,Good,Average thermal transmittance 0.24 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.20 W/m?K,Good,Good,"Air source heat pump, underfloor, electric",Good,Very Good,Programmer and at least two room thermostats,Good,Good,Low energy lighting in 67% of fixed outlets,Good,Good,"Electricity: electricity, unspecified tariff",0.0,NO DATA!,,2.6,,,NO DATA!,"10 Hales Court, Church Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2011-12-19 14:38:48,,6.0,4.0,10014306372.0,Address Matched +b63b328c1ace18ee8f8d2b65210014dda4b257a92fa6e05dc0f320eb1cd2af83,16 Fiji Terrace,Invicta Park,,ME14 2NZ,10001404792,D,B,66,85,House,End-Terrace,2021-08-25,E07000110,E14000804,Kent,2021-08-25,Stock condition survey,63,83,243,92.0,3.0,43,1.2,65.0,65.0,525.0,413.0,77.0,53.0,70.0,dual,Y,,,,,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Average,Average,,,,"Flat, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.28,0.0,N,natural,"16 Fiji Terrace, Invicta Park",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2021-08-25 15:31:09,Rented (social),11.0,,200003724104.0,Energy Assessor +b64c28021959c721b47fcbb6ea81fd14000e1f8f61c6fb01ab5e4f1e72692a20,5 AVIEMORE GARDENS,BEARSTED,,ME14 4BA,10001516191,D,B,64,82,House,Semi-Detached,2021-07-22,E07000110,E14000700,Kent,2021-07-22,marketed sale,58,78,250,115.0,3.9,44,1.8,72.0,72.0,661.0,508.0,96.0,66.0,89.0,Unknown,Y,,,,,100.0,"double glazing, unknown install date",Normal,1.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.35,0.0,N,natural,"5 AVIEMORE GARDENS, BEARSTED",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2021-07-22 14:01:51,Owner-occupied,9.0,,200003687584.0,Energy Assessor +b653ada527b76fbaa90a974633e22926cccd80af042f011c0d9e0cd3234dc5f7,27,Albertine Road,Langley,ME17 3UP,10001489130,B,A,84,94,House,End-Terrace,2021-09-22,E07000110,E14000700,Kent,2021-09-22,new dwelling,85,95,85,19.0,1.6,15,0.4,82.0,82.0,268.0,268.0,73.0,44.0,105.0,standard tariff,,,N,,,100.0,,,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.17 W/m-¦K,Good,Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.43,,,,"27, Albertine Road, Langley",Maidstone,Faversham and Mid Kent,Maidstone,2021,2021-09-22 13:06:23,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,15.0,,10095448311.0,Address Matched +1535758719962017041220110871728063,"12, The Weavers",,,ME16 0NZ,6782121578,C,B,70,82,House,Detached,2017-04-12,E07000110,E14000804,Kent,2017-04-12,marketed sale,65,78,185,104.0,4.0,33,2.3,118.0,75.0,659.0,609.0,146.0,87.0,124.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,3.0,5.0,5.0,43.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 43% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"12, The Weavers",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1991-1995,2017-04-12 20:11:08,owner-occupied,,,200003706141.0,Address Matched +1752218915712019091908165897910066,"3, Cumberland Avenue",,,ME15 7JW,663576678,C,C,71,76,Maisonette,Mid-Terrace,2019-09-18,E07000110,E14000700,Kent,2019-09-19,rental (private),70,78,209,156.0,2.3,37,1.7,66.0,66.0,402.0,297.0,87.0,88.0,62.0,dual,Y,Ground,N,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,3.0,3.0,83.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 83% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,no corridor,,,,N,natural,"3, Cumberland Avenue",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2019-09-19 08:16:58,rental (private),,,200003712226.0,Address Matched +1346927489642015072820314533752288,"15, St. Andrews Road",,,ME16 9AN,4680387378,D,B,62,84,House,Semi-Detached,2015-07-28,E07000110,E14000804,Kent,2015-07-28,marketed sale,55,81,257,93.0,4.3,45,1.6,92.0,60.0,793.0,511.0,104.0,69.0,95.0,Unknown,Y,NODATA!,,,2106.0,95.0,double glazing installed during or after 2002,Normal,1.0,4.0,4.0,45.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Mostly double glazing,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 270 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 45% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"15, St. Andrews Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2015-07-28 20:31:45,owner-occupied,,,200003682083.0,Address Matched +1315601912512015042820571196250833,Wolsey Place,Claygate Road,Yalding,ME18 6BD,8334265378,F,E,24,51,House,Detached,2015-04-28,E07000110,E14000804,Kent,2015-04-28,marketed sale,29,50,322,184.0,20.0,70,12.0,211.0,112.0,4400.0,3332.0,113.0,88.0,290.0,Single,N,NODATA!,,,2107.0,100.0,secondary glazing,Normal,2.0,8.0,8.0,11.0,1.0,"From main system, plus solar",Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Full secondary glazing,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, oil",Average,Average,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 11% of fixed outlets,Poor,Poor,oil (not community),0.0,NO DATA!,,,,Y,natural,"Wolsey Place, Claygate Road, Yalding",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2015-04-28 20:57:11,owner-occupied,,,200003661347.0,Address Matched +972864139702016053112343116167698,"16, Hockers Lane",Detling,,ME14 3JN,9701431178,E,A,51,95,Bungalow,Detached,2016-05-31,E07000110,E14000700,Kent,2016-05-31,ECO assessment,42,89,332,39.0,7.4,59,1.0,97.0,97.0,1364.0,725.0,158.0,80.0,127.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,6.0,6.0,67.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 67% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,2.41,,N,natural,"16, Hockers Lane, Detling",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2016-05-31 12:34:31,owner-occupied,,,200003693921.0,Address Matched +1383470452452015110810493794059243,"11, Yeoman Park",Bearsted,,ME15 8PT,2330240478,C,B,71,84,House,Detached,2015-11-06,E07000110,E14000700,Kent,2015-11-08,marketed sale,66,81,185,95.0,4.2,33,2.2,108.0,76.0,704.0,607.0,159.0,79.0,129.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,8.0,8.0,57.0,0.0,From main system,Good,Good,"Solid, limited insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 57% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"11, Yeoman Park, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1996-2002,2015-11-08 10:49:37,owner-occupied,,,200003728106.0,Address Matched +1591411459262017112208055065298083,1 Rose Cottages,Old Loose Hill,Loose,ME15 0BN,8607515578,E,C,42,74,House,Semi-Detached,2017-11-21,E07000110,E14000804,Kent,2017-11-22,marketed sale,30,61,415,167.0,8.7,85,3.9,76.0,76.0,1327.0,779.0,194.0,75.0,103.0,Unknown,Y,NODATA!,,,2106.0,25.0,"double glazing, unknown install date",Normal,4.0,6.0,6.0,83.0,1.0,From main system,Average,Average,"Suspended, no insulation (assumed)",NO DATA!,,Some double glazing,Poor,Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, coal",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 83% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"1 Rose Cottages, Old Loose Hill, Loose",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2017-11-22 08:05:50,owner-occupied,,,200003663588.0,Address Matched +1387544979142015112218142549059218,"51a, Melrose Close",,,ME15 6BD,4158270478,B,A,83,95,Bungalow,NO DATA!,2015-11-19,E07000110,E14000804,Kent,2015-11-22,new dwelling,85,97,92,11.0,1.4,16,0.2,55.0,55.0,248.0,248.0,91.0,56.0,85.0,24 hour,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.12 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.29 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.1 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"51a, Melrose Close",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2015-11-22 18:14:25,owner-occupied,7.0,7.0,10091194428.0,Address Matched +1614325827832018031219503119078001,Ground Floor Flat,"18, Rowland Close",,ME16 8PU,2109086578,C,C,72,74,Flat,Detached,2018-03-09,E07000110,E14000804,Kent,2018-03-12,rental (social),74,77,212,189.0,1.6,37,1.5,55.0,37.0,253.0,232.0,116.0,116.0,44.0,Unknown,Y,Ground,N,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,50.0,0.0,From main system,Good,Good,"Solid, limited insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,unheated corridor,5.1,,,N,natural,"Ground Floor Flat, 18, Rowland Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2018-03-12 19:50:31,rental (social),,,200003726053.0,Address Matched +107408758132019082209140026268301,"65, Shaftesbury Drive",,,ME16 0JR,5116327468,D,B,60,88,Bungalow,Semi-Detached,2019-08-21,E07000110,E14000804,Kent,2019-08-22,marketed sale,56,87,333,68.0,2.9,59,0.6,40.0,40.0,470.0,317.0,136.0,61.0,49.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"65, Shaftesbury Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2019-08-22 09:14:00,owner-occupied,,,200003726349.0,Address Matched +1137622009542014050817144823340588,"7, Orchard Place",,,ME16 8BW,8587403278,D,B,62,86,House,Mid-Terrace,2014-05-08,E07000110,E14000804,Kent,2014-05-08,marketed sale,60,87,231,61.0,3.5,44,1.0,83.0,48.0,612.0,386.0,123.0,83.0,78.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,1.0,4.0,4.0,25.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 25% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"7, Orchard Place",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2014-05-08 17:14:48,owner-occupied,8.0,2.0,200003667537.0,Address Matched +748697142222020062414015025548280,104 Farleigh Court,Farleigh Lane,,ME16 9BH,8255445968,D,D,58,65,Maisonette,Mid-Terrace,2020-06-24,E07000110,E14000804,Kent,2020-06-24,rental (private),51,61,339,267.0,3.7,60,2.9,52.0,52.0,667.0,520.0,87.0,87.0,61.0,Single,Y,1st,Y,,2102.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,(another dwelling below),NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,7.04,,,N,natural,"104 Farleigh Court, Farleigh Lane",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2020-06-24 14:01:50,rental (private),,,200003682679.0,Address Matched +329978852922020031318092465178090,"37, Hedley Street",,,ME14 5AD,9633505668,D,B,65,85,House,Mid-Terrace,2020-03-13,E07000110,E14000804,Kent,2020-03-13,rental (private),61,83,251,93.0,3.2,44,1.2,80.0,58.0,554.0,419.0,96.0,66.0,72.0,Single,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,2.0,4.0,4.0,63.0,0.0,From main system,Good,Good,"To unheated space, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 63% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"37, Hedley Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2020-03-13 18:09:24,rental (private),,,200003704776.0,Address Matched +621995479262011042809342346188629,"18, Fant Lane",,,ME16 8NL,2416716868,D,C,68,72,House,Mid-Terrace,2011-04-28,E07000110,E14000804,Kent,2011-04-28,marketed sale,69,73,207,181.0,2.6,40,2.2,55.0,35.0,420.0,391.0,85.0,75.0,64.2,Unknown,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,43.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 43% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,2.1,0.0,,natural,"18, Fant Lane",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2011-04-28 09:34:23,owner-occupied,7.0,3.0,200003674347.0,Address Matched +664181436852011080918344391090583,"6, Cades Place",,,ME16 0YG,5303619868,D,C,68,72,House,End-Terrace,2011-08-09,E07000110,E14000804,Kent,2011-08-09,marketed sale,68,74,204,165.0,2.7,39,2.2,52.0,52.0,400.0,368.0,167.0,108.0,70.6,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,75.0,0.0,"From main system, no cylinder thermostat",Average,Average,"Suspended, insulated (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,2.4,0.0,,natural,"6, Cades Place",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2011-08-09 18:34:43,owner-occupied,8.0,6.0,10014308950.0,Address Matched +658411172002020021615045886809278,"1, Rushford Close",Headcorn,,TN27 9QE,4069578868,D,B,67,85,House,Semi-Detached,2020-02-13,E07000110,E14000700,Kent,2020-02-16,marketed sale,66,84,245,93.0,2.3,43,0.9,50.0,50.0,426.0,379.0,88.0,61.0,54.0,dual,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,"Room heaters, mains gas",,,"Pitched, 270 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"1, Rushford Close, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,England and Wales: 1967-1975,2020-02-16 15:04:58,owner-occupied,,,200003698628.0,Address Matched +66590244452015031909280496950249,"6, Cranleigh Gardens",,,ME16 0TX,2957464468,D,B,63,86,House,End-Terrace,2015-03-19,E07000110,E14000804,Kent,2015-03-19,none of the above,57,84,260,77.0,3.8,46,1.2,80.0,53.0,641.0,420.0,158.0,82.0,83.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,50.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, no insulation",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"6, Cranleigh Gardens",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2015-03-19 09:28:04,owner-occupied,,,200003662276.0,Address Matched +1576748319222017092117454684498863,Flat 5 Sweet Briar Court,"80, London Road",,ME16 0DR,6808114578,C,B,79,81,Flat,Enclosed End-Terrace,2017-09-21,E07000110,E14000804,Kent,2017-09-21,marketed sale,81,84,124,104.0,1.5,22,1.3,93.0,54.0,215.0,209.0,112.0,98.0,70.0,Single,Y,2nd,N,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,27.0,0.0,From main system,Good,Good,(another dwelling below),NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 27% of fixed outlets,Average,Average,mains gas (not community),0.0,unheated corridor,5.91,,,N,natural,"Flat 5 Sweet Briar Court, 80, London Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2017-09-21 17:45:46,owner-occupied,,,10014307935.0,Address Matched +1600768819832018011622091026978407,"235, Bicknor Road",,,ME15 9PG,1706485578,D,B,61,82,House,Mid-Terrace,2018-01-16,E07000110,E14000700,Kent,2018-01-16,marketed sale,55,79,297,125.0,3.7,52,1.6,82.0,50.0,637.0,501.0,89.0,49.0,70.0,Single,Y,NODATA!,,,2504.0,100.0,double glazing installed before 2002,Normal,1.0,3.0,3.0,38.0,0.0,Gas multipoint,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"System built, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 200 mm loft insulation",Good,Good,"Warm air, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 38% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"235, Bicknor Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2018-01-16 22:09:10,owner-occupied,,,200003679973.0,Address Matched +589060859002011020512375089390748,"61, Abingdon Road",,,ME16 9EE,48753868,C,C,79,80,House,Semi-Detached,2011-02-04,E07000110,E14000804,Kent,2011-02-05,rental (private),76,77,162,154.0,2.4,27,2.3,48.0,48.0,394.0,373.0,106.0,106.0,88.5,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,100.0,0.0,From main system,Very Good,Very Good,"Solid, insulated",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.38,0.0,N,natural,"61, Abingdon Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2011-02-05 12:37:50,rental (private),,,200003665084.0,Address Matched +1489896469262016102015004897308216,"1, Downton Court",,,ME15 8WU,1939697478,B,B,82,82,Flat,NO DATA!,2016-10-20,E07000110,E14000700,Kent,2016-10-20,new dwelling,86,86,101,101.0,1.1,18,1.1,44.0,44.0,218.0,218.0,76.0,76.0,63.0,standard tariff,,ground floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.19 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.26 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"1, Downton Court",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2016-10-20 15:00:48,unknown,1.0,1.0,10091194497.0,Address Matched +340109241132009092308581431268804,2 Valley Court,69 Tonbridge Road,Teston,ME18 5BT,4451875668,D,D,67,68,Maisonette,NO DATA!,2009-09-22,E07000110,E14000804,Kent,2009-09-23,new dwelling,79,80,172,167.0,2.0,24,1.9,67.0,42.0,286.0,295.0,288.0,288.0,80.4,standard tariff,,ground floor,,,,,NO DATA!,NO DATA!,,,,4.0,,"Electric immersion, standard tariff",Very Poor,Poor,Average thermal transmittance 0.19 W/m?K,Very Good,Very Good,Fully double glazed,Good,Good,Average thermal transmittance 0.28 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.20 W/m?K,Good,Good,Electric underfloor heating,Very Poor,Poor,Temperature zone control,Average,Average,Low energy lighting in 40% of fixed outlets,Average,Average,"Electricity: electricity, unspecified tariff",0.0,NO DATA!,,2.4,,,NO DATA!,"2 Valley Court, 69 Tonbridge Road, Teston",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2009-09-23 08:58:14,,10.0,4.0,10014307893.0,Address Matched +834421739962012091219175341228422,"20, The Weavers",,,ME16 0NZ,2407361078,D,C,64,79,House,Detached,2012-09-12,E07000110,E14000804,Kent,2012-09-12,rental (private),61,76,199,107.0,4.3,38,2.4,102.0,59.0,698.0,606.0,116.0,79.0,113.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,7.0,7.0,27.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 27% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"20, The Weavers",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1991-1995,2012-09-12 19:17:53,rental (private),15.0,4.0,200003706145.0,Address Matched +655461339922011101417161238548889,31 Thomas Place,James Whatman Way,,ME14 1FP,8381358868,C,B,80,81,Flat,Mid-Terrace,2011-10-14,E07000110,E14000804,Kent,2011-10-14,new dwelling,90,90,96,93.0,0.8,13,0.8,47.0,37.0,200.0,201.0,102.0,102.0,63.9,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,5.0,,"Community scheme, no cylinder thermostat",Good,Very Good,(other premises below),,,Fully double glazed,Good,Good,Average thermal transmittance 0.29 W/m?K,Very Good,Very Good,,,,(other premises above),,,Community scheme,Good,Very Good,"Flat rate charging, programmer and TRVs",Average,Average,Low energy lighting in 71% of fixed outlets,Very Good,Very Good,NO DATA!,0.0,NO DATA!,,2.4,,,NO DATA!,"31 Thomas Place, James Whatman Way",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2011-10-14 17:16:12,,7.0,5.0,10014312697.0,Address Matched +1496892562762020063016490478408240,Pett Wood Cottage,Pett Road,Stockbury,ME9 7RL,4757648478,F,D,32,66,Bungalow,Detached,2020-06-30,E07000110,E14000700,Kent,2020-06-30,rental (private),32,56,315,125.0,9.1,75,4.7,92.0,92.0,1389.0,1164.0,184.0,145.0,122.0,Single,N,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,92.0,0.0,From main system,Average,Average,"To external air, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Timber frame, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, oil",Average,Average,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 92% of fixed outlets,Very Good,Very Good,oil (not community),0.0,NO DATA!,,,,N,natural,"Pett Wood Cottage, Pett Road, Stockbury",Maidstone,Faversham and Mid Kent,SITTINGBOURNE,England and Wales: 1930-1949,2020-06-30 16:49:04,rental (private),,,10014308710.0,Address Matched +366634630922009091817202027188191,"8, Gooch Close",Allington,,ME16 0GE,9209367668,C,C,73,80,House,Mid-Terrace,2009-09-18,E07000110,E14000804,Kent,2009-09-18,rental (private),70,77,232,176.0,2.4,39,1.8,66.0,33.0,323.0,278.0,121.0,98.0,61.4,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,0.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.29,0.0,N,natural,"8, Gooch Close, Allington",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2009-09-18 17:20:20,rental (private),,,200003662435.0,Address Matched +593897469022017020308245783728743,Flat 190 Scotney Gardens,St. Peters Street,,ME16 0GW,4802693868,B,B,81,81,Flat,Mid-Terrace,2017-02-02,E07000110,E14000804,Kent,2017-02-03,rental (private),71,71,253,253.0,1.7,43,1.7,35.0,35.0,124.0,124.0,130.0,130.0,39.0,dual,N,1st,N,,2402.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,100.0,0.0,"Electric immersion, off-peak",Average,Poor,"To external air, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,Portable electric heaters (assumed),,,(another dwelling above),,,Electric storage heaters,Average,Very Poor,Automatic charge control,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,heated corridor,,,,N,natural,"Flat 190 Scotney Gardens, St. Peters Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2017-02-03 08:24:57,rental (private),,,10022893557.0,Address Matched +1370027849802015100208391836950098,11 Grebe Apartments,Wallis Avenue,,ME15 9JL,2871949378,D,D,62,63,Flat,Semi-Detached,2015-10-01,E07000110,E14000700,Kent,2015-10-02,rental (social),59,59,310,304.0,3.0,55,2.9,57.0,38.0,564.0,566.0,90.0,90.0,54.0,Single,Y,3rd,Y,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,50.0,0.0,From main system,Good,Good,(another dwelling below),NO DATA!,,Fully double glazed,Good,Good,"Timber frame, as built, partial insulation (assumed)",Average,Average,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,unheated corridor,5.0,,,N,natural,"11 Grebe Apartments, Wallis Avenue",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2015-10-02 08:39:18,rental (social),,,200003683595.0,Address Matched +1636625639442018060110250458880098,"30, Gates Drive",,,ME17 3GE,2426738578,B,A,82,96,House,Semi-Detached,2018-06-01,E07000110,E14000700,Kent,2018-06-01,new dwelling,86,99,102,-11.0,1.1,18,-0.1,46.0,46.0,192.0,192.0,72.0,43.0,60.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"30, Gates Drive",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2018-06-01 10:25:04,unknown,7.0,7.0,10093304006.0,Address Matched +589890916152019022118530396910288,Tawny Barn,Church Lane,West Farleigh,ME15 0DT,2811663868,D,C,66,72,House,Semi-Detached,2019-02-19,E07000110,E14000804,Kent,2019-02-21,marketed sale,62,69,128,100.0,11.0,30,8.6,207.0,141.0,1424.0,1394.0,158.0,87.0,355.0,Single,N,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,8.0,8.0,53.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Solid brick, as built, insulated (assumed)",Good,Good,"Room heaters, wood logs",,,"Pitched, insulated (assumed)",Average,Average,"Boiler and radiators, oil",Average,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 53% of fixed outlets,Good,Good,oil (not community),0.0,NO DATA!,,,,N,natural,"Tawny Barn, Church Lane, West Farleigh",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2019-02-21 18:53:03,owner-occupied,,,200003662914.0,Address Matched +65691069902018060717211541480238,1 Daniel House,Lesley Place,Buckland Hill,ME16 0TZ,6997164468,D,C,55,74,Flat,Semi-Detached,2018-06-07,E07000110,E14000804,Kent,2018-06-07,marketed sale,41,55,531,378.0,3.9,90,2.8,76.0,38.0,489.0,285.0,221.0,126.0,43.0,dual,N,Ground,N,,2401.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,0.0,0.0,"Electric immersion, off-peak",Very Poor,Poor,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,Portable electric heaters (assumed),,,(another dwelling above),,,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,No low energy lighting,Very Poor,Very Poor,electricity (not community),0.0,unheated corridor,6.83,,,N,natural,"1 Daniel House, Lesley Place, Buckland Hill",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2018-06-07 17:21:15,owner-occupied,,,200003721287.0,Address Matched +1799136272222020052617290950278410,"9, Bonnington Road",,,ME14 5QR,1593710778,D,B,62,82,House,Detached,2020-05-23,E07000110,E14000804,Kent,2020-05-26,marketed sale,55,78,266,115.0,4.4,47,1.9,91.0,71.0,725.0,530.0,141.0,81.0,94.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,73.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 73% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"9, Bonnington Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2020-05-26 17:29:09,owner-occupied,,,200003671809.0,Address Matched +b6d43058c14f80434af12cfc4c646c775f152995e09ac9358f66df6bbdee9758,"FLAT 6, HARRIET HOUSE, WEST STREET",HARRIETSHAM,,ME17 1JZ,10001644986,D,C,62,76,Flat,End-Terrace,2021-07-13,E07000110,E14000700,Kent,2021-07-13,rental,56,76,342,188.0,3.0,60,1.7,44.0,44.0,448.0,239.0,154.0,123.0,50.0,Single,Y,00,N,,,50.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,100.0,0.0,Community scheme,Good,Good,"Solid, no insulation (assumed)",,,Partial double glazing,Poor,Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,(another dwelling above),,,Community scheme,Good,Good,"Flat rate charging, programmer and TRVs",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (community),0.0,heated corridor,,2.53,0.0,N,natural,"FLAT 6, HARRIET HOUSE, WEST STREET, HARRIETSHAM",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2021-07-13 21:50:56,Rented (private),4.0,,10095449911.0,Address Matched +401384609042011110710301473090038,Apartment 5 Bluecoats Yard,Knightrider Street,,ME15 6LD,5049500768,C,B,80,81,Flat,Semi-Detached,2011-11-07,E07000110,E14000804,Kent,2011-11-07,marketed sale,85,86,110,105.0,1.0,21,1.0,43.0,30.0,193.0,194.0,67.0,67.0,48.93,Single,Y,Ground,N,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,57.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 57% of fixed outlets,Good,Good,mains gas (not community),0.0,heated corridor,,2.3,0.0,,natural,"Apartment 5 Bluecoats Yard, Knightrider Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2011-11-07 10:30:14,owner-occupied,7.0,4.0,10014307463.0,Address Matched +b6e6c01d557838ca7cdf072505a3b8383139383d0b16c962022d24807dd3d17e,34 Gilbert Way,,,ME17 3TT,10001482963,B,A,83,96,House,End-Terrace,2021-09-20,E07000110,E14000700,Kent,2021-09-20,new dwelling,86,98,91,-2.0,1.2,16,0.0,67.0,67.0,208.0,208.0,66.0,40.0,74.0,standard tariff,,,N,,,100.0,,,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.33,,,,34 Gilbert Way,Maidstone,Faversham and Mid Kent,MAIDSTONE,2017,2021-09-20 15:46:31,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,8.0,,10094441888.0,Energy Assessor +1493600509062016110216252908828296,"22, Queensgate",,,ME16 0FB,9032028478,C,C,79,79,Flat,Mid-Terrace,2016-11-02,E07000110,E14000804,Kent,2016-11-02,FiT application,83,83,138,138.0,1.1,24,1.1,35.0,35.0,206.0,206.0,83.0,83.0,44.0,Unknown,Y,Ground,N,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,100.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,heated corridor,,2.33,,N,natural,"22, Queensgate",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2016-11-02 16:25:29,owner-occupied,,,10022896181.0,Address Matched +1471760406352016081608141196960642,"3, Abigail Crescent",Walderslade,,ME5 9DZ,6211666478,C,B,70,86,House,Detached,2016-08-15,E07000110,E14000700,Kent,2016-08-16,marketed sale,68,85,207,81.0,2.8,36,1.1,103.0,51.0,439.0,406.0,140.0,82.0,76.0,Unknown,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, with internal insulation",Good,Good,,,,"Pitched, insulated (assumed)",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,2.32,,N,natural,"3, Abigail Crescent, Walderslade",Maidstone,Faversham and Mid Kent,CHATHAM,England and Wales: 1983-1990,2016-08-16 08:14:11,owner-occupied,,,200003709263.0,Address Matched +1003373569022013090623021383458397,"69, Hartnup Street",,,ME16 8LT,9844653178,D,B,61,89,House,Mid-Terrace,2013-09-05,E07000110,E14000804,Kent,2013-09-06,marketed sale,56,90,232,41.0,4.2,45,0.8,53.0,53.0,678.0,343.0,181.0,76.0,94.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,100.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Sandstone, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Average,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"69, Hartnup Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2013-09-06 23:02:13,owner-occupied,8.0,8.0,200003655899.0,Address Matched +b6ec97ec928dd17c0b9dc7cd173cf15cf54045dcc081e318c8fbc58180db9b21,41 Harrow Way,Weavering,,ME14 5TU,10001574600,C,C,74,78,House,Detached,2021-08-13,E07000110,E14000700,Kent,2021-08-16,marketed sale,67,71,143,123.0,7.5,25,6.5,147.0,147.0,1223.0,1223.0,118.0,118.0,298.0,Unknown,Y,,,,,100.0,double glazing installed during or after 2002,Normal,2.0,9.0,9.0,100.0,1.0,From main system,Good,Good,"Solid, insulated (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, mains gas",,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.46,0.0,N,natural,"41 Harrow Way, Weavering",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2003-2006,2021-08-16 15:54:36,Owner-occupied,24.0,,200003689814.0,Energy Assessor +56505209642011120314544943490378,"23, Larking Drive",Allington,,ME16 0UT,2623204468,D,C,68,73,House,End-Terrace,2011-12-03,E07000110,E14000804,Kent,2011-12-03,marketed sale,68,74,204,164.0,2.8,39,2.2,71.0,42.0,423.0,371.0,121.0,101.0,71.16,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,33.0,0.0,From main system,Good,Good,"Solid, limited insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 33% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,2.31,0.0,,natural,"23, Larking Drive, Allington",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2011-12-03 14:54:49,owner-occupied,15.0,5.0,200003662509.0,Address Matched +598075539042016031116181587469898,2 Amshurst Villas,Gallants Lane,East Farleigh,ME15 0LQ,3075134868,C,A,69,116,Bungalow,Mid-Terrace,2016-03-11,E07000110,E14000804,Kent,2016-03-11,rental (social),72,114,233,-144.0,1.9,39,-1.1,34.0,34.0,293.0,247.0,221.0,221.0,47.0,Single,N,NODATA!,,,2204.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,"From main system, plus solar",Poor,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Air source heat pump, radiators, electric",Good,Very Good,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,NO DATA!,,,,Y,natural,"2 Amshurst Villas, Gallants Lane, East Farleigh",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2016-03-11 16:18:15,rental (social),,,200003671186.0,Address Matched +610087475312011032823085792290484,"3, Downs Road",Penenden Heath,,ME14 2JL,4460525868,E,D,53,67,House,Semi-Detached,2011-03-25,E07000110,E14000804,Kent,2011-03-28,marketed sale,51,62,307,235.0,6.1,51,4.8,100.0,67.0,1020.0,745.0,171.0,145.0,91.22,Single,Y,NO DATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,0.0,6.0,5.0,50.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,Portable electric heaters,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.5,0.0,N,natural,"3, Downs Road, Penenden Heath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2011-03-28 23:08:57,owner-occupied,,,200003706872.0,Address Matched +323964573812009070915572306010960,4 California Row,Hawkenbury Road,Hawkenbury,TN12 0DU,9077364668,D,D,56,64,House,Mid-Terrace,2009-07-09,E07000110,E14000700,Kent,2009-07-09,marketed sale,52,56,455,395.0,4.0,61,3.6,73.0,36.0,432.0,360.0,139.0,139.0,65.2,dual,N,NO DATA!,,,2401.0,100.0,"double glazing, unknown install date",Normal,1.0,3.0,3.0,0.0,1.0,"Electric immersion, off-peak",Poor,Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, insulated (assumed)",Good,Good,"Room heaters, wood logs",,,"Pitched, insulated (assumed)",Average,Average,Electric storage heaters,Poor,Very Poor,Manual charge control,Poor,Poor,No low energy lighting,Very Poor,Very Poor,electricity - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.8,0.0,N,natural,"4 California Row, Hawkenbury Road, Hawkenbury",Maidstone,Faversham and Mid Kent,TONBRIDGE,England and Wales: before 1900,2009-07-09 15:57:23,owner-occupied,,,200003694336.0,Address Matched +245710360412009061107590708910152,16 The Old Market,Marden,,TN12 9GD,1263089568,B,B,82,84,House,End-Terrace,2009-06-11,E07000110,E14000804,Kent,2009-06-11,new dwelling,81,82,117,110.0,2.4,19,2.2,108.0,63.0,275.0,282.0,113.0,113.0,123.03,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,5.0,,From main system,Very Good,Very Good,Average thermal transmittance 0.20 W/m?K,Very Good,Very Good,Fully double glazed,Good,Good,Average thermal transmittance 0.28 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.16 W/m?K,Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 28% fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.39,,,NO DATA!,"16 The Old Market, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,NO DATA!,2009-06-11 07:59:07,,18.0,5.0,10014306432.0,Address Matched +b6f817adfb039ff5896b724f04ab0e34bbe0da357d03bf269c65367c7b8787a6,5 Matterdale Gardens,Barming,,ME16 9HW,10001538038,C,B,71,89,House,Mid-Terrace,2021-08-23,E07000110,E14000804,Kent,2021-08-24,marketed sale,68,89,182,50.0,3.0,32,0.9,94.0,94.0,385.0,322.0,201.0,70.0,94.0,Unknown,Y,,,,,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,78.0,0.0,"From main system, no cylinder thermostat",Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 400+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 78% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.36,0.0,N,natural,"5 Matterdale Gardens, Barming",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1991-1995,2021-08-24 08:17:50,Owner-occupied,9.0,,200003666641.0,Energy Assessor +444996812032010022514530422268401,"1, Bensted Close",Hunton,,ME15 0SD,1162413768,D,C,66,71,House,Semi-Detached,2010-02-25,E07000110,E14000804,Kent,2010-02-25,marketed sale,64,70,243,205.0,3.5,40,3.0,75.0,46.0,567.0,507.0,113.0,100.0,88.32,Single,Y,NO DATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,37.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 37% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.42,0.0,N,natural,"1, Bensted Close, Hunton",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2010-02-25 14:53:04,owner-occupied,,,200003662393.0,Address Matched +196573630742008120517202855580658,"28, Barton Road",,,ME15 7BX,1741435568,E,C,54,76,House,Mid-Terrace,2008-12-05,E07000110,E14000804,Kent,2008-12-05,non marketed sale,48,73,366,186.0,5.3,61,2.7,71.0,38.0,604.0,325.0,134.0,97.0,85.7,Single,Y,NO DATA!,,,2104.0,0.0,INVALID!,Normal,0.0,5.0,5.0,15.0,2.0,From main system,Average,Good,"Suspended, no insulation (assumed)",,,Partial double glazing,Poor,Poor,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 25mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Average,Good,Programmer and room thermostat,Poor,Poor,Low energy lighting in 15% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.3,0.0,N,natural,"28, Barton Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2008-12-05 17:20:28,owner-occupied,,,200003683750.0,Address Matched +1667915419922018101516382390058288,Flat 1,Brenchley House,123-135 Week Street,ME14 1FX,8955160678,C,C,75,75,Flat,Mid-Terrace,2018-10-15,E07000110,E14000804,Kent,2018-10-15,new dwelling,81,81,220,220.0,0.9,39,0.9,22.0,22.0,161.0,161.0,91.0,91.0,23.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,Community scheme,Good,Good,Average thermal transmittance 0.24 W/m-¦K,Good,Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.30 W/m-¦K,Good,Good,,,,(other premises above),,,Community scheme,Good,Good,"Charging system linked to use of community heating, programmer and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,NO DATA!,,NO DATA!,,,,,NO DATA!,"Flat 1, Brenchley House, 123-135 Week Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2018-10-15 16:38:23,unknown,6.0,6.0,10094440677.0,Address Matched +1547440009742017052509514756232458,"73, South Park Road",,,ME15 7AL,9742102578,D,B,65,82,House,Semi-Detached,2017-05-25,E07000110,E14000700,Kent,2017-05-25,marketed sale,63,81,235,107.0,3.2,41,1.5,52.0,52.0,606.0,516.0,117.0,68.0,77.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,100.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"73, South Park Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2017-05-25 09:51:47,owner-occupied,,,200003715879.0,Address Matched +b706ab193ed6d4557a629623d830804ea4cc9a60a4a52ed0a9c205481d4362a3,25 Lenham House,Glebe Gardens,Lenham,ME17 2PY,417372868,D,C,64,76,Flat,Detached,2021-08-26,E07000110,E14000700,Kent,2021-08-26,rental,57,75,280,165.0,3.8,49,2.2,91.0,67.0,564.0,319.0,114.0,114.0,76.0,Single,N,01,Y,,,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,64.0,0.0,Community scheme,Good,Good,(another dwelling below),,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,,,,"Flat, limited insulation (assumed)",Very Poor,Very Poor,Community scheme,Good,Good,"Flat rate charging, TRVs",Average,Average,Low energy lighting in 64% of fixed outlets,Good,Good,mains gas (community),0.0,heated corridor,,2.12,0.0,N,natural,"25 Lenham House, Glebe Gardens, Lenham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2021-08-26 15:29:17,Rented (social),11.0,,200003714532.0,Energy Assessor +334323630002009072809400861512038,"56, Upper Fant Road",,,ME16 8DN,3059635668,D,D,59,63,House,Mid-Terrace,2009-07-27,E07000110,E14000804,Kent,2009-07-28,marketed sale,53,56,312,290.0,5.0,52,4.7,75.0,48.0,747.0,714.0,106.0,100.0,96.6,Single,Y,NO DATA!,,,2107.0,20.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,45.0,0.0,From main system,Good,Very Good,"Solid, no insulation (assumed)",,,Partial double glazing,Poor,Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Very Good,"Programmer, TRVs and bypass",Poor,Poor,Low energy lighting in 45% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,1.9,0.0,N,natural,"56, Upper Fant Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2009-07-28 09:40:08,owner-occupied,,,200003657799.0,Address Matched +915971739302013041821213704779788,Vine Farm Barn,Waterman Quarters,Headcorn,TN27 9JJ,4377937078,E,C,52,71,House,Detached,2013-04-18,E07000110,E14000700,Kent,2013-04-18,marketed sale,40,58,220,128.0,11.0,55,6.7,153.0,79.0,1796.0,1432.0,206.0,117.0,193.0,Single,N,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,4.0,6.0,6.0,6.0,0.0,From main system,Average,Average,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, insulated (assumed)",Good,Good,"Room heaters, oil",,,"Pitched, insulated (assumed)",Average,Average,"Boiler and radiators, oil",Average,Average,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 6% of fixed outlets,Very Poor,Very Poor,oil (not community),0.0,NO DATA!,,,0.0,,natural,"Vine Farm Barn, Waterman Quarters, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,England and Wales: 1983-1990,2013-04-18 21:21:37,owner-occupied,34.0,2.0,200003732008.0,Address Matched +3875609962014011413022472348664,"64, Poplar Grove",,,ME16 0AN,6730012468,C,B,71,90,Bungalow,Semi-Detached,2014-01-14,E07000110,E14000804,Kent,2014-01-14,rental,73,93,180,29.0,1.9,34,0.4,50.0,36.0,356.0,311.0,107.0,68.0,56.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,62.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 62% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"64, Poplar Grove",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2014-01-14 13:02:24,owner-occupied,8.0,5.0,200003658272.0,Address Matched +1461784099702016071222522148569028,"37, Captains Close",Sutton Valence,,ME17 3BA,5768795478,D,A,63,104,House,Semi-Detached,2016-07-12,E07000110,E14000700,Kent,2016-07-12,rental (social),57,99,260,-17.0,4.4,46,-0.2,86.0,62.0,771.0,506.0,146.0,86.0,96.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,2.0,5.0,5.0,60.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 60% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,2.47,,N,natural,"37, Captains Close, Sutton Valence",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2016-07-12 22:52:21,rental (social),,,200003696264.0,Address Matched +1772083112002020062911071263802718,"8, Barton Drive",Boughton Monchelsea,,ME17 4SU,6026918678,B,A,85,96,House,Semi-Detached,2020-06-29,E07000110,E14000804,Kent,2020-06-29,new dwelling,87,98,80,2.0,1.2,14,0.1,73.0,73.0,211.0,211.0,74.0,44.0,88.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.20 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"8, Barton Drive, Boughton Monchelsea",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2020-06-29 11:07:12,unknown,12.0,12.0,10094442576.0,Address Matched +230591300542009021914073656819188,"51, Woolley Road",,,ME15 8PX,2538708568,C,C,73,74,Bungalow,Mid-Terrace,2009-02-18,E07000110,E14000700,Kent,2009-02-19,rental (social),69,70,274,269.0,2.1,46,2.1,33.0,22.0,322.0,325.0,69.0,69.0,45.87,Single,Y,NO DATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,50.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.36,0.0,N,natural,"51, Woolley Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2009-02-19 14:07:36,rental (social),,,200003684991.0,Address Matched +1117908217252014040313350796040121,78 Pine Lodge,Tonbridge Road,,ME16 8TB,1151761278,D,D,60,67,Flat,Mid-Terrace,2014-04-03,E07000110,E14000804,Kent,2014-04-03,marketed sale,57,67,270,208.0,3.1,52,2.4,39.0,39.0,597.0,494.0,95.0,62.0,59.0,Unknown,Y,2nd,Y,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,3.7,,0.0,,natural,"78 Pine Lodge, Tonbridge Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2014-04-03 13:35:07,owner-occupied,7.0,7.0,200003657956.0,Address Matched +1192210319022015021618214646018215,Murrain Place Bungalow,Detling Hill,Detling,ME14 3HS,1415196278,F,A,24,103,Bungalow,Detached,2015-02-09,E07000110,E14000700,Kent,2015-02-16,ECO assessment,22,91,429,-53.0,8.6,112,0.4,98.0,55.0,1312.0,524.0,307.0,94.0,77.0,dual,N,NODATA!,,,2102.0,100.0,"double glazing, unknown install date",Normal,1.0,3.0,3.0,22.0,0.0,"From main system, no cylinder thermostat",Very Poor,Very Poor,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, oil",Poor,Average,"Programmer, no room thermostat",Very Poor,Very Poor,Low energy lighting in 22% of fixed outlets,Poor,Poor,oil (not community),0.0,NO DATA!,,,,N,natural,"Murrain Place Bungalow, Detling Hill, Detling",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2015-02-16 18:21:46,rental (private),,,200003695544.0,Address Matched +532617011112010082620570093200478,"5, Hollingworth Road",,,ME15 9HN,4891139768,C,C,79,79,Flat,Mid-Terrace,2010-08-26,E07000110,E14000700,Kent,2010-08-26,rental (social),76,76,188,188.0,1.9,31,1.9,33.0,33.0,325.0,325.0,86.0,86.0,61.0,Single,Y,Ground,N,2.0,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,100.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.26,0.0,N,natural,"5, Hollingworth Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2010-08-26 20:57:00,rental (social),,,200003682257.0,Address Matched +1237899423712014111820391391949835,"22, Hampson Way",Bearsted,,ME14 4AP,8523310378,C,C,70,75,House,Detached,2014-11-18,E07000110,E14000700,Kent,2014-11-18,marketed sale,65,72,158,127.0,4.4,31,3.5,91.0,72.0,938.0,824.0,133.0,84.0,144.0,Single,Y,NODATA!,,,2107.0,100.0,double glazing installed before 2002,More Than Typical,3.0,8.0,8.0,73.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 73% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,12.0,,natural,"22, Hampson Way, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2014-11-18 20:39:13,owner-occupied,26.0,19.0,200003691764.0,Address Matched +1485847087612016100611435796069245,"3a, Milton Street",,,ME16 8JT,2572767478,E,B,43,87,House,End-Terrace,2016-10-04,E07000110,E14000804,Kent,2016-10-06,marketed sale,38,87,483,71.0,4.8,85,0.7,79.0,40.0,892.0,374.0,101.0,46.0,56.0,Single,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,1.0,3.0,3.0,0.0,0.0,From main system,Good,Good,"To unheated space, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,2.55,,N,natural,"3a, Milton Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2016-10-06 11:43:57,owner-occupied,,,200003657843.0,Address Matched +1487381878412017011612124997969744,Flat 5,Miller Heights,43-51 Lower Stone Street,ME15 6LN,7493877478,C,C,80,80,Flat,Detached,2016-10-12,E07000110,E14000804,Kent,2017-01-16,none of the above,83,83,123,123.0,1.3,22,1.3,42.0,42.0,233.0,233.0,87.0,87.0,60.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.22 W/m-¦K,Good,Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.42 W/m-¦K,Good,Good,,,,Average thermal transmittance 0.22 W/m-¦K,Good,Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Flat 5, Miller Heights, 43-51 Lower Stone Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2017-01-16 12:12:49,unknown,4.0,4.0,10093303785.0,Address Matched +527686379922010081822141468188700,"22, Cambridge Crescent",,,ME15 7NG,605798768,D,C,62,71,House,Semi-Detached,2010-08-18,E07000110,E14000700,Kent,2010-08-18,rental (social),56,67,318,239.0,3.9,53,2.9,68.0,39.0,568.0,464.0,152.0,113.0,73.85,Single,Y,NO DATA!,,,2107.0,100.0,"double glazing, unknown install date",Normal,1.0,4.0,4.0,25.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 25% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.43,0.0,N,natural,"22, Cambridge Crescent",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2010-08-18 22:14:14,rental (social),,,200003712451.0,Address Matched +1603316709042018012517194751682758,5 Bishops Terrace,Bishops Way,,ME14 1LA,9054006578,D,D,59,59,Flat,Mid-Terrace,2018-01-25,E07000110,E14000804,Kent,2018-01-25,new dwelling,63,63,368,368.0,1.9,62,1.9,27.0,27.0,347.0,347.0,206.0,206.0,30.0,standard tariff,,ground floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Very Poor,Poor,Average thermal transmittance 0.32 W/m-¦K,Average,Average,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.29 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, electric",Very Poor,Poor,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"5 Bishops Terrace, Bishops Way",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2018-01-25 17:19:47,unknown,10.0,10.0,, +681194139442019022806020095012738,"94, Alkham Road",,,ME14 5PE,434630968,D,C,61,75,House,Semi-Detached,2019-02-27,E07000110,E14000804,Kent,2019-02-28,marketed sale,57,71,248,154.0,4.2,43,2.6,79.0,79.0,797.0,723.0,109.0,73.0,97.0,Unknown,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,83.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,"Room heaters, electric",,,"Pitched, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 83% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"94, Alkham Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2019-02-28 06:02:00,owner-occupied,,,200003716832.0,Address Matched +218418010842009012917522153712918,"10, Courtlands",Teston,,ME18 5AS,4855517568,D,C,56,71,Bungalow,Semi-Detached,2009-01-29,E07000110,E14000804,Kent,2009-01-29,marketed sale,49,66,360,235.0,4.8,60,3.1,72.0,36.0,572.0,390.0,108.0,94.0,88.84,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.43,0.0,N,natural,"10, Courtlands, Teston",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2009-01-29 17:52:21,owner-occupied,,,200003661750.0,Address Matched +275030182952009072315592902210461,16 Tovil Green Court,Tovil Green Lane,Tovil,ME15 6NE,4140221668,B,B,84,85,Flat,NO DATA!,2009-07-22,E07000110,E14000804,Kent,2009-07-23,new dwelling,86,87,113,108.0,1.0,18,1.0,44.0,32.0,162.0,163.0,91.0,91.0,55.2,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,5.0,,From main system,Good,Very Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.31 W/m?K,Good,Good,,,,(another dwelling above),,,Community scheme,Good,Very Good,"Unit charging, programmer and TRVs",Good,Good,Low energy lighting in 63% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.49,,,NO DATA!,"16 Tovil Green Court, Tovil Green Lane, Tovil",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2009-07-23 15:59:29,,8.0,5.0,10014306965.0,Address Matched +238995100042009021719273950819138,"19, Buckland Rise",,,ME16 0YN,5054108568,B,B,85,87,Flat,Enclosed End-Terrace,2009-02-17,E07000110,E14000804,Kent,2009-02-17,rental (private),85,86,113,107.0,1.2,19,1.1,52.0,34.0,172.0,174.0,77.0,77.0,64.0,Unknown,Y,1st,N,3.0,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,44.0,0.0,From main system,Very Good,Very Good,(other premises below),,,Fully double glazed,Good,Good,"Timber frame, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 44% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,unheated corridor,10.0,2.4,0.0,N,natural,"19, Buckland Rise",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2009-02-17 19:27:39,rental (private),,,10014308214.0,Address Matched +472098206032010060408073205068503,"28, Richmond Way",,,ME15 6BL,315505768,E,D,47,64,House,End-Terrace,2010-06-02,E07000110,E14000804,Kent,2010-06-04,marketed sale,41,58,470,313.0,5.3,79,3.5,55.0,34.0,786.0,553.0,138.0,103.0,66.85,Unknown,Y,NO DATA!,,,2104.0,87.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,38.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Mostly double glazing,Poor,Poor,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 38% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.37,0.0,N,natural,"28, Richmond Way",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2010-06-04 08:07:32,owner-occupied,,,200003676219.0,Address Matched +1262304239222017022718463731128283,"29, Burgess Hall Drive",Leeds,,ME17 1SH,8301381378,D,B,61,84,House,Detached,2017-02-22,E07000110,E14000700,Kent,2017-02-27,ECO assessment,54,81,281,106.0,4.5,50,1.7,58.0,58.0,804.0,515.0,143.0,84.0,90.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"29, Burgess Hall Drive, Leeds",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2017-02-27 18:46:37,owner-occupied,,,200003697952.0,Address Matched +732203399142011121415393098399448,29 Midhurst Court,Mote Road,,ME15 6EH,4156993968,D,C,68,72,Flat,Semi-Detached,2011-12-14,E07000110,E14000804,Kent,2011-12-14,rental (social),69,74,235,195.0,2.1,45,1.8,44.0,28.0,308.0,302.0,144.0,100.0,47.34,Unknown,Y,5th,N,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,40.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"System built, as built, no insulation (assumed)",Poor,Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 40% of fixed outlets,Average,Average,mains gas (not community),0.0,unheated corridor,4.55,2.27,0.0,,natural,"29 Midhurst Court, Mote Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2011-12-14 15:39:30,rental (social),5.0,2.0,200003693336.0,Address Matched +1535463889222017042113592021498893,"12, St. Annes Court",,,ME16 0UQ,9204811578,D,C,68,75,Flat,End-Terrace,2017-04-21,E07000110,E14000804,Kent,2017-04-21,marketed sale,51,60,439,349.0,2.9,74,2.3,34.0,34.0,347.0,231.0,131.0,131.0,40.0,dual,N,2nd,Y,,2401.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,100.0,0.0,"Electric immersion, off-peak",Average,Poor,(another dwelling below),NO DATA!,,Fully double glazed,Average,Average,"Timber frame, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,"Pitched, 100 mm loft insulation",Average,Average,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,unheated corridor,7.2,,,N,natural,"12, St. Annes Court",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2017-04-21 13:59:20,owner-occupied,,,200003666933.0,Address Matched +519176239502010072717032272802938,"31, Clifford Way",,,ME16 8GB,5516538768,B,B,82,83,Flat,Detached,2010-07-27,E07000110,E14000804,Kent,2010-07-27,rental (private),81,82,150,142.0,1.5,25,1.5,62.0,36.0,252.0,256.0,80.0,80.0,61.98,Single,Y,5th,Y,6.0,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,27.0,0.0,From main system,Very Good,Very Good,(other premises below),,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Flat, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 27% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,unheated corridor,4.75,2.34,0.0,N,natural,"31, Clifford Way",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2010-07-27 17:03:22,rental (private),,,10022896044.0,Address Matched +1176361140352020030310501728000122,"11, Oakwood Court",,,ME16 8AF,1278085278,C,B,72,84,House,Detached,2020-03-02,E07000110,E14000804,Kent,2020-03-03,marketed sale,69,81,172,91.0,3.2,30,1.7,80.0,80.0,558.0,506.0,90.0,60.0,105.0,Unknown,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,8.0,8.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"11, Oakwood Court",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1991-1995,2020-03-03 10:50:17,owner-occupied,,,200003657310.0,Address Matched +1580053339442017102416332757432778,Flat 2,Chaucer House,25 Knightrider Street,ME15 6ND,3437434578,C,C,79,79,Flat,Detached,2017-10-23,E07000110,E14000804,Kent,2017-10-24,new dwelling,83,83,137,137.0,1.0,24,1.0,32.0,32.0,203.0,203.0,69.0,69.0,44.0,standard tariff,,ground floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.14 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.22 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.25 W/m-¦K,Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Flat 2, Chaucer House, 25 Knightrider Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2017-10-24 16:33:27,unknown,10.0,10.0,10093305635.0,Address Matched +1604696970712018020110500991780852,"417, Sutton Road",,,ME15 9BX,8204016578,D,B,59,81,House,Semi-Detached,2018-01-31,E07000110,E14000700,Kent,2018-02-01,marketed sale,52,77,294,130.0,4.8,52,2.1,93.0,62.0,766.0,571.0,158.0,72.0,92.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,6.0,5.0,50.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"417, Sutton Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2018-02-01 10:50:09,owner-occupied,,,200003681399.0,Address Matched +1282252029602015021713082531359238,"3, Madginford Close",Bearsted,,ME15 8LF,2639823378,E,B,44,86,Bungalow,Detached,2015-02-17,E07000110,E14000700,Kent,2015-02-17,none of the above,37,84,443,86.0,6.5,78,1.3,63.0,63.0,1062.0,445.0,258.0,73.0,83.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,80.0,0.0,"From main system, no cylinder thermostat",Poor,Poor,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, no insulation",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"3, Madginford Close, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2015-02-17 13:08:25,owner-occupied,,,200003693006.0,Address Matched +881848049022013020821221394988887,The Bugalow,The Willows,Collier Street,TN12 9RP,8942494078,E,B,43,83,Bungalow,Detached,2013-02-08,E07000110,E14000804,Kent,2013-02-08,marketed sale,27,63,534,212.0,7.7,94,3.0,86.0,51.0,891.0,435.0,219.0,81.0,82.0,dual,N,NODATA!,,,2401.0,35.0,"double glazing, unknown install date",Normal,1.0,4.0,4.0,29.0,0.0,"Electric immersion, off-peak",Very Poor,Very Poor,"Solid, no insulation (assumed)",,,Partial double glazing,Poor,Poor,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, 250 mm loft insulation",Good,Good,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 29% of fixed outlets,Average,Average,electricity (not community),0.0,NO DATA!,,,0.0,,natural,"The Bugalow, The Willows, Collier Street",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: before 1900,2013-02-08 21:22:13,owner-occupied,7.0,2.0,10014306813.0,Address Matched +374902230022009100715333358628751,"82, Melville Road",,,ME15 7UT,5572328668,D,C,66,70,House,Mid-Terrace,2009-10-02,E07000110,E14000804,Kent,2009-10-07,rental (private),66,69,252,228.0,3.0,41,2.7,60.0,36.0,496.0,465.0,87.0,87.0,72.01,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,33.0,0.0,From main system,Very Good,Very Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, electric",,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 33% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.05,0.0,N,natural,"82, Melville Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2009-10-07 15:33:33,rental (private),,,200003695991.0,Address Matched +677118189262011092110140090598819,"6, Rawdon Road",,,ME15 6PT,1965800968,D,D,56,63,House,Mid-Terrace,2011-09-21,E07000110,E14000804,Kent,2011-09-21,marketed sale,51,60,288,234.0,4.9,56,3.9,88.0,46.0,771.0,663.0,126.0,107.0,87.24,Single,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,9.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 9% of fixed outlets,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,2.4,0.0,,natural,"6, Rawdon Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2011-09-21 10:14:00,owner-occupied,11.0,1.0,200003692812.0,Address Matched +839951039412012092715125299220907,"21a, High Street",Headcorn,,TN27 9NH,9706991078,D,C,64,69,Flat,Mid-Terrace,2012-09-26,E07000110,E14000700,Kent,2012-09-27,rental (private),64,70,234,196.0,2.6,45,2.1,44.0,35.0,466.0,399.0,74.0,74.0,57.0,Single,Y,2nd,Y,,2104.0,0.0,single glazing,Normal,0.0,3.0,3.0,71.0,0.0,From main system,Good,Good,(other premises below),,,Single glazed,Very Poor,Very Poor,"Timber frame, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 71% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,no corridor,,,0.0,,natural,"21a, High Street, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,England and Wales: before 1900,2012-09-27 15:12:52,rental (private),7.0,5.0,200003732060.0,Address Matched +624146175932011050315481484068009,"36, Bournewood Close",Downswood,,ME15 8TJ,7964036868,D,C,66,71,Bungalow,Semi-Detached,2011-05-03,E07000110,E14000700,Kent,2011-05-03,rental (private),67,74,255,201.0,2.2,49,1.8,52.0,26.0,381.0,330.0,72.0,64.0,45.48,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,0.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,2.35,0.0,,natural,"36, Bournewood Close, Downswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2011-05-03 15:48:14,rental (private),6.0,0.0,200003686418.0,Address Matched +513408404112010071413001499900672,13 Hanover Court,Snowdon Avenue,,ME14 5NP,6253497768,C,C,70,74,Flat,NO DATA!,2010-07-14,E07000110,E14000804,Kent,2010-07-14,rental (private),66,69,299,270.0,2.3,50,2.1,43.0,24.0,330.0,323.0,130.0,116.0,45.87,dual,Y,Ground,N,2.0,2504.0,100.0,double glazing installed before 2002,Normal,0.0,2.0,2.0,20.0,0.0,From main system,Average,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,(another dwelling above),,,"Warm air, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 20% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.36,0.0,N,natural,"13 Hanover Court, Snowdon Avenue",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2010-07-14 13:00:14,rental (private),,,200003705891.0,Address Matched +1711584909022019051509083043848001,1 Fishers Court,"22, Scott Street",,ME14 2TA,426083678,D,C,61,79,Flat,Mid-Terrace,2019-04-04,E07000110,E14000804,Kent,2019-05-15,rental (private),65,64,203,206.0,3.6,34,3.7,79.0,87.0,728.0,407.0,380.0,188.0,106.0,Unknown,N,Ground,N,,2605.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,100.0,0.0,"Electric immersion, standard tariff",Very Poor,Poor,"Solid, insulated (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Room heaters, electric",Very Poor,Poor,Programmer and room thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,no corridor,,,,N,natural,"1 Fishers Court, 22, Scott Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2019-05-15 09:08:30,rental (private),,,10014308403.0,Address Matched +1361251289102015090722023534850438,Challenge Farm,Cox Street,Detling,ME14 3HF,5191688378,D,B,64,81,House,Detached,2015-09-07,E07000110,E14000700,Kent,2015-09-07,FiT application,88,100,140,59.0,1.7,7,-0.8,107.0,107.0,2044.0,1742.0,227.0,139.0,243.0,Single,N,NODATA!,,,2103.0,100.0,"double glazing, unknown install date",Normal,2.0,9.0,9.0,96.0,2.0,From main system,Average,Very Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, wood logs",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, wood logs",Poor,Very Good,Room thermostat only,Poor,Poor,Low energy lighting in 96% of fixed outlets,Very Good,Very Good,wood logs,0.0,NO DATA!,,,,N,natural,"Challenge Farm, Cox Street, Detling",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1976-1982,2015-09-07 22:02:35,owner-occupied,,,200003695564.0,Address Matched +1098379169922014061311250760078674,"11, Fieldfare Drive",,,ME15 6XL,7683620278,B,A,85,94,House,Detached,2014-06-13,E07000110,E14000804,Kent,2014-06-13,new dwelling,86,95,80,22.0,1.8,14,0.5,68.0,68.0,293.0,294.0,98.0,53.0,126.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.10 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"11, Fieldfare Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2014-06-13 11:25:07,owner-occupied,13.0,13.0,10014315269.0,Address Matched +525891689602010081112320874809798,"24, Waterlow Road",,,ME14 2TR,1620488768,C,C,69,70,House,Mid-Terrace,2010-08-11,E07000110,E14000804,Kent,2010-08-11,marketed sale,64,65,245,236.0,3.6,41,3.4,55.0,55.0,564.0,542.0,105.0,105.0,87.16,Single,Y,NO DATA!,,,2106.0,95.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,80.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Mostly double glazing,Good,Good,"Granite or whin, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,1.89,0.0,N,natural,"24, Waterlow Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2010-08-11 12:32:08,owner-occupied,,,200003703125.0,Address Matched +1362732939022015091006422448718865,"2, Halden Close",,,ME15 8SX,6441398378,E,B,49,85,House,Semi-Detached,2015-09-09,E07000110,E14000700,Kent,2015-09-10,marketed sale,42,83,399,97.0,5.6,70,1.4,72.0,52.0,962.0,471.0,193.0,73.0,79.0,Single,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,62.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 62% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"2, Halden Close",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2015-09-10 06:42:24,owner-occupied,,,200003680862.0,Address Matched +1668224580832018100321123567078593,"55, Bower Street",,,ME16 8BB,8377560678,D,C,57,80,House,End-Terrace,2018-10-02,E07000110,E14000804,Kent,2018-10-03,marketed sale,51,76,334,140.0,3.6,59,1.6,46.0,46.0,662.0,497.0,73.0,45.0,62.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,2.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"55, Bower Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2018-10-03 21:12:35,owner-occupied,,,200003667211.0,Address Matched +442584299042010022114051775202798,"37, Northumberland Court",Northumberland Road,,ME15 7LL,6036592768,G,E,18,51,Flat,Mid-Terrace,2010-02-21,E07000110,E14000700,Kent,2010-02-21,rental (social),40,38,1025,1071.0,3.2,154,3.3,14.0,16.0,604.0,363.0,248.0,85.0,20.67,Single,N,3rd,Y,4.0,2601.0,100.0,"double glazing, unknown install date",Normal,0.0,1.0,1.0,66.0,0.0,"Electric immersion, standard tariff",Very Poor,Poor,"To unheated space, uninsulated (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Flat, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, electric",Very Poor,Poor,No thermostatic control of room temperature,Poor,Poor,Low energy lighting in 66% of fixed outlets,Good,Good,electricity - this is for backwards compatibility only and should not be used,0.0,unheated corridor,5.35,2.31,0.0,N,natural,"37, Northumberland Court, Northumberland Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2010-02-21 14:05:17,rental (social),,,200003729035.0,Address Matched +326185479402010060409302363400148,"71, Campbell Road",,,ME15 6PY,5422874668,D,C,56,69,House,Mid-Terrace,2010-06-04,E07000110,E14000804,Kent,2010-06-04,rental (private),50,63,352,253.0,4.8,59,3.4,84.0,42.0,674.0,530.0,155.0,110.0,81.38,Single,Y,NO DATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,0.0,0.0,From main system,Average,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, mains gas",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Average,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.6,0.0,N,natural,"71, Campbell Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2010-06-04 09:30:23,rental (private),,,200003693247.0,Address Matched +459345401812012042618251991220978,"2, Ruskin Grove",,,ME15 9WE,9895114768,B,B,82,82,House,Detached,2012-04-26,E07000110,E14000700,Kent,2012-04-26,new dwelling,84,84,83,83.0,2.0,16,2.0,75.0,75.0,397.0,397.0,44.0,44.0,131.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,10.0,,"From main system, plus solar",Very Good,Very Good,Average thermal transmittance 0.20 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m?K,Very Good,Very Good,"Room heaters, electric",,,Average thermal transmittance 0.09 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in 77% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.31,,,NO DATA!,"2, Ruskin Grove",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2012-04-26 18:25:19,,13.0,10.0,10014311604.0,Address Matched +1551663139742017061408582253239178,"19, Eylesden Court",Bearsted,,ME14 4BF,2712432578,D,C,66,76,House,Semi-Detached,2017-06-13,E07000110,E14000700,Kent,2017-06-14,marketed sale,47,57,297,224.0,6.2,50,4.7,112.0,84.0,748.0,761.0,216.0,166.0,123.0,dual,N,NODATA!,,,2703.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,67.0,0.0,"Electric immersion, off-peak",Poor,Poor,"Suspended, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,"Pitched, insulated (assumed)",Good,Good,Electric underfloor heating,Average,Very Poor,Room thermostat only,Poor,Poor,Low energy lighting in 67% of fixed outlets,Good,Good,electricity (not community),0.0,NO DATA!,,,,N,natural,"19, Eylesden Court, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2003-2006,2017-06-14 08:58:22,owner-occupied,,,10022896306.0,Address Matched +943356582552013060322015793070508,"17, Ham Lane",Lenham,,ME17 2LL,5828239078,D,C,56,79,House,Detached,2013-06-03,E07000110,E14000700,Kent,2013-06-03,marketed sale,51,77,260,108.0,4.9,50,2.1,91.0,53.0,827.0,575.0,105.0,64.0,99.0,Single,Y,NODATA!,,,2104.0,,not defined,Much More Than Typical,1.0,5.0,5.0,27.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Mostly double glazing,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 27% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"17, Ham Lane, Lenham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2013-06-03 22:01:57,owner-occupied,11.0,3.0,200003710519.0,Address Matched +766150246212012032620491097220799,"30, Freshland Road",,,ME16 0WJ,7916676968,C,C,69,72,House,Detached,2012-03-26,E07000110,E14000804,Kent,2012-03-26,marketed sale,66,69,172,153.0,5.2,33,4.6,139.0,76.0,764.0,728.0,146.0,128.0,156.17,dual,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,8.0,8.0,18.0,0.0,From main system,Good,Good,"Suspended, limited insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, mains gas",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 18% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,2.26,0.0,,natural,"30, Freshland Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2012-03-26 20:49:10,owner-occupied,22.0,4.0,10022901718.0,Address Matched +1236906018052016071723224390960138,"35, Marston Drive",,,ME14 5NB,1896800378,D,B,57,82,House,Detached,2016-07-12,E07000110,E14000804,Kent,2016-07-17,assessment for green deal,48,77,286,110.0,6.4,50,2.5,136.0,74.0,991.0,660.0,297.0,92.0,128.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,15.0,0.0,"From main system, no cylinder thermostat",Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 15% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,2.79,,N,natural,"35, Marston Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2016-07-17 23:22:43,owner-occupied,,,200003716667.0,Address Matched +1068360234132019040220102294078805,"1a, Dover Street",,,ME16 8LF,3584818178,D,A,68,92,House,End-Terrace,2019-04-02,E07000110,E14000804,Kent,2019-04-02,rental (private),68,94,254,22.0,2.1,45,0.2,66.0,37.0,361.0,251.0,76.0,51.0,46.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,20.0,0.0,From main system,Good,Good,(another dwelling below),NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 20% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"1a, Dover Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2019-04-02 20:10:22,rental (private),,,10014309628.0,Address Matched +249773960202009032415460052912308,3 Orchard Cottages,Hampstead Lane,Nettlestead,ME18 5HN,9292469568,C,C,74,75,House,Semi-Detached,2009-03-20,E07000110,E14000804,Kent,2009-03-24,rental (social),71,71,217,214.0,2.4,36,2.4,44.0,32.0,339.0,341.0,94.0,94.0,67.0,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,60.0,1.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 60% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.49,0.0,N,natural,"3 Orchard Cottages, Hampstead Lane, Nettlestead",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2009-03-24 15:46:00,rental (social),,,200003656608.0,Address Matched +429667944012010020116502890000577,"11a, Hollingworth Road",,,ME15 9HN,5776402768,C,C,69,79,Flat,Semi-Detached,2010-02-01,E07000110,E14000700,Kent,2010-02-01,rental (social),65,76,274,183.0,2.8,46,1.9,48.0,32.0,363.0,295.0,165.0,97.0,60.7,Single,Y,1st,Y,2.0,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,50.0,0.0,From main system,Average,Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Average,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.35,0.0,N,natural,"11a, Hollingworth Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2010-02-01 16:50:28,rental (social),,,200003683026.0,Address Matched +227254518552020051819044428900350,"7, Cliveden Close",Allington,,ME16 0PQ,3032887568,C,B,69,81,House,Detached,2020-05-18,E07000110,E14000804,Kent,2020-05-18,marketed sale,64,76,186,110.0,4.2,33,2.5,140.0,91.0,638.0,614.0,157.0,89.0,127.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,7.0,6.0,47.0,0.0,From main system,Good,Good,"Solid, limited insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, mains gas",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 47% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"7, Cliveden Close, Allington",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2020-05-18 19:04:44,owner-occupied,,,200003660594.0,Address Matched +1774112372132019122019351391278591,"139, Tonbridge Road",,,ME16 8JS,7141538678,D,C,56,70,House,Detached,2019-12-20,E07000110,E14000804,Kent,2019-12-20,marketed sale,56,71,249,163.0,6.5,37,4.1,110.0,110.0,1420.0,1154.0,131.0,85.0,175.0,dual,Y,NODATA!,,,2106.0,95.0,"double glazing, unknown install date",Normal,1.0,7.0,7.0,100.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Mostly double glazing,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, wood logs",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"139, Tonbridge Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2019-12-20 19:35:13,owner-occupied,,,200003658058.0,Address Matched +416076452132010011010370302268090,"4, Norway Terrace",Invicta Park,,ME14 2PH,5042011768,D,D,68,68,House,Mid-Terrace,2009-12-29,E07000110,E14000804,Kent,2010-01-10,marketed sale,67,67,232,232.0,3.1,38,3.1,43.0,43.0,523.0,523.0,93.0,93.0,81.4,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,93.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 93% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.3,0.0,N,natural,"4, Norway Terrace, Invicta Park",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2010-01-10 10:37:03,owner-occupied,,,200003724074.0,Address Matched +611762624932011041309481544968809,Cobham,Orchard Drive,Weavering,ME14 5JG,2904835868,E,D,41,58,Bungalow,Detached,2011-04-12,E07000110,E14000700,Kent,2011-04-13,marketed sale,43,60,433,300.0,6.7,64,4.4,109.0,57.0,1171.0,865.0,209.0,151.0,104.47,Unknown,Y,NO DATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,10.0,1.0,From main system,Average,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, wood logs",,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Average,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 10% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.56,0.0,N,natural,"Cobham, Orchard Drive, Weavering",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2011-04-13 09:48:15,owner-occupied,,,, +1353881102132019021910402848978203,"23, Holland Road",,,ME14 1UN,318238378,D,C,63,73,House,Mid-Terrace,2019-02-19,E07000110,E14000804,Kent,2019-02-19,rental (social),54,65,232,171.0,6.1,41,4.6,98.0,98.0,1064.0,957.0,105.0,105.0,150.0,dual,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,6.0,6.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"23, Holland Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2019-02-19 10:40:28,rental (social),,,200003698958.0,Address Matched +174810223052008112111230204289757,1 Malthouse Cottages,Maidstone Road,Wateringbury,ME18 5EJ,7780343568,F,E,31,43,House,Semi-Detached,2008-10-28,E07000110,E14000804,Kent,2008-11-21,marketed sale,35,47,579,449.0,7.0,85,5.2,55.0,37.0,986.0,821.0,151.0,92.0,82.72,Single,Y,NO DATA!,,,2104.0,12.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,50.0,1.0,"From main system, no cylinderstat",Average,Average,"Suspended, no insulation (assumed)",,,Partial double glazing,Very Poor,Very Poor,"Granite or whinstone, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Poor,Poor,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.27,0.0,N,natural,"1 Malthouse Cottages, Maidstone Road, Wateringbury",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2008-11-21 11:23:02,owner-occupied,,,200003658776.0,Address Matched +88044879702013090207540841577008,"4, The Mews",Lesley Place,,ME16 0TU,6737475468,E,C,42,79,House,End-Terrace,2013-08-30,E07000110,E14000804,Kent,2013-09-02,marketed sale,43,55,370,258.0,5.3,66,3.7,104.0,52.0,1020.0,532.0,130.0,84.0,81.0,dual,N,NODATA!,,,2602.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,0.0,0.0,"Electric immersion, off-peak",Average,Very Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,Portable electric heaters (assumed),,,"Roof room(s), insulated (assumed)",Good,Good,"Room heaters, electric",Very Poor,Very Poor,Appliance thermostats,Good,Good,No low energy lighting,Very Poor,Very Poor,electricity (not community),0.0,NO DATA!,,,0.0,,natural,"4, The Mews, Lesley Place",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2013-09-02 07:54:08,owner-occupied,9.0,0.0,200003670302.0,Address Matched +68860687052013101117360394979940,"2, Wellington Place",Perry Street,,ME14 2RZ,9053744468,C,B,70,82,House,Semi-Detached,2013-10-11,E07000110,E14000804,Kent,2013-10-11,marketed sale,68,80,161,88.0,3.6,31,2.0,81.0,61.0,620.0,563.0,104.0,73.0,116.0,Unknown,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,5.0,5.0,67.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 67% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,20.0,,natural,"2, Wellington Place, Perry Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2013-10-11 17:36:03,owner-occupied,18.0,12.0,200003669920.0,Address Matched +1457132539222016062709083765278406,"22, Reinden Grove",Downswood,,ME15 8TH,688365478,D,B,68,85,House,Semi-Detached,2016-06-23,E07000110,E14000700,Kent,2016-06-27,marketed sale,66,84,240,99.0,2.6,42,1.1,86.0,43.0,443.0,418.0,128.0,80.0,62.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,2.3,,N,natural,"22, Reinden Grove, Downswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2016-06-27 09:08:37,owner-occupied,,,200003686349.0,Address Matched +1048288784452013112211250397279412,"16, Hadlow Close",Oakwood Park,,ME16 8FS,4247476178,B,B,85,85,House,Semi-Detached,2013-11-22,E07000110,E14000804,Kent,2013-11-22,new dwelling,86,86,73,73.0,1.7,14,1.7,64.0,64.0,292.0,292.0,101.0,101.0,122.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.19 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"16, Hadlow Close, Oakwood Park",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2013-11-22 11:25:03,NO DATA!,0.0,0.0,10014314527.0,Address Matched +b855b8f01a8af21e1b654f4ac746e68282cb3ce99ca9825ec824baa2b614bb4f,15 TENACRE COURT,ASHFORD ROAD,HARRIETSHAM,ME17 1AH,10001378114,D,D,61,61,Flat,Mid-Terrace,2021-08-05,E07000110,E14000700,Kent,2021-08-05,not sale or rental,65,65,234,234.0,2.9,39,2.9,74.0,74.0,752.0,752.0,241.0,241.0,73.0,standard tariff,,3,Y,,,100.0,,,,,,100.0,0.0,Electric instantaneous at point of use,Very Poor,Poor,(other premises below),,,Fully double glazed,Good,Good,Average thermal transmittance 0.47 W/m-¦K,Good,Good,,,,Average thermal transmittance 0.32 W/m-¦K,Average,Average,"Boiler and radiators, electric",Very Poor,Poor,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",0.0,,,2.35,,,,"15 TENACRE COURT, ASHFORD ROAD, HARRIETSHAM",Maidstone,Faversham and Mid Kent,MAIDSTONE,2020,2021-08-05 14:14:22,Owner-occupied,5.0,,10095449480.0,Energy Assessor +1536042156832018062113122423278200,"19, Phoenix Road",Marden,,TN12 9FR,5073221578,B,A,85,97,House,Mid-Terrace,2018-06-21,E07000110,E14000804,Kent,2018-06-21,new dwelling,88,100,75,-14.0,1.0,13,-0.2,63.0,63.0,165.0,165.0,77.0,46.0,77.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.10 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.28 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.12 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"19, Phoenix Road, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,NO DATA!,2018-06-21 13:12:24,owner-occupied,10.0,10.0,10093303301.0,Address Matched +541795744352019031509235099930576,Flat 15 Plymouth House,Ruskin Grove,,ME15 9WG,5676499768,B,B,82,82,Flat,Semi-Detached,2017-09-15,E07000110,E14000700,Kent,2019-03-15,rental (social),81,81,132,132.0,1.5,22,1.5,56.0,56.0,210.0,210.0,146.0,146.0,68.0,dual,N,1st,Y,,2206.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,"From main system, no cylinder thermostat",Average,Average,(another dwelling below),NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Very Good,Very Good,,,,(another dwelling above),,,"Air source heat pump, radiators, electric",Average,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,unheated corridor,6.0,,,N,"mechanical, extract only","Flat 15 Plymouth House, Ruskin Grove",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2007 onwards,2019-03-15 09:23:50,rental (social),,,10014311626.0,Address Matched +1463537809442016071814545548669688,"27, Cannock Drive",,,ME15 8GE,2491906478,B,B,86,88,House,NO DATA!,2016-07-18,E07000110,E14000700,Kent,2016-07-18,new dwelling,89,91,69,55.0,0.9,12,0.7,51.0,51.0,218.0,218.0,79.0,45.0,73.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,"From main system, flue gas heat recovery",Very Good,Very Good,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.18 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"27, Cannock Drive",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2016-07-18 14:54:55,unknown,1.0,1.0,10091193729.0,Address Matched +72604949922018101609311885558808,"22, Roseholme",,,ME16 8DR,890415468,D,C,67,76,Flat,Semi-Detached,2018-10-15,E07000110,E14000804,Kent,2018-10-16,rental (private),65,78,263,162.0,2.4,46,1.5,40.0,40.0,383.0,248.0,134.0,99.0,52.0,Single,Y,Ground,N,,2104.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,no corridor,,,,N,natural,"22, Roseholme",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2018-10-16 09:31:18,rental (private),,,200003656334.0,Address Matched +365347330922009091720302377038851,"4, Eling Court",,,ME15 6DE,5771357668,C,B,77,83,Flat,Semi-Detached,2009-09-17,E07000110,E14000804,Kent,2009-09-17,rental (social),75,81,262,198.0,1.4,43,1.1,29.0,17.0,218.0,187.0,105.0,87.0,33.0,Single,Y,1st,Y,2.0,2107.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,25.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Poor,Poor,Low energy lighting in 25% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,unheated corridor,6.0,2.36,0.0,N,natural,"4, Eling Court",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2009-09-17 20:30:23,rental (social),,,10022901437.0,Address Matched +1592947916552017112814373392239753,New Lodge,Ashford Road,Weavering,ME14 4AE,7393625578,F,B,33,82,Bungalow,Detached,2017-11-28,E07000110,E14000700,Kent,2017-11-28,marketed sale,29,80,591,109.0,5.7,109,1.1,38.0,38.0,1078.0,421.0,90.0,63.0,52.0,Unknown,Y,NODATA!,,,2106.0,10.0,"double glazing, unknown install date",Normal,1.0,3.0,3.0,100.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Some double glazing,Very Poor,Very Poor,"Granite or whinstone, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, no insulation",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"New Lodge, Ashford Road, Weavering",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2017-11-28 14:37:33,owner-occupied,,,, +726805559742011112310523492392478,Apartment 41 Sandling Park,Sandling Lane,,ME14 2NY,7723653968,C,C,69,72,Flat,Enclosed End-Terrace,2011-11-23,E07000110,E14000804,Kent,2011-11-23,marketed sale,51,53,376,354.0,3.8,67,3.6,51.0,38.0,364.0,320.0,107.0,107.0,56.84,Unknown,N,Ground,Y,,2401.0,100.0,double glazing installed before 2002,Normal,0.0,2.0,2.0,67.0,0.0,"Electric immersion, off-peak",Average,Very Poor,"To unheated space, limited insulation (assumed)",,,Fully double glazed,Average,Average,"System built, as built, insulated (assumed)",Good,Good,Portable electric heaters (assumed),,,(another dwelling above),,,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 67% of fixed outlets,Good,Good,electricity (not community),0.0,unheated corridor,9.8,2.4,0.0,,natural,"Apartment 41 Sandling Park, Sandling Lane",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2011-11-23 10:52:34,owner-occupied,6.0,4.0,10014307137.0,Address Matched +1425497549302018042107392243382608,"17, Elm Grove",,,ME15 7RT,6353043478,D,B,63,88,House,Semi-Detached,2018-04-20,E07000110,E14000804,Kent,2018-04-21,marketed sale,58,87,273,69.0,3.5,48,0.9,62.0,62.0,612.0,355.0,95.0,64.0,72.0,Unknown,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,4.0,80.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, mains gas",,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"17, Elm Grove",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2018-04-21 07:39:22,owner-occupied,,,200003695335.0,Address Matched +525586368032010081014173639968008,Flat 21 The Coach Yard,"372a, Tonbridge Road",,ME16 8TT,6829088768,D,C,65,78,Flat,Enclosed Mid-Terrace,2010-08-10,E07000110,E14000804,Kent,2010-08-10,rental (private),73,72,220,227.0,2.3,33,2.4,68.0,45.0,386.0,202.0,144.0,144.0,70.4,dual,N,2nd,N,4.0,2603.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,50.0,0.0,"Electric immersion, off-peak",Poor,Poor,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Room heaters, electric",Very Poor,Poor,Programmer and appliance thermostats,Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,electricity - this is for backwards compatibility only and should not be used,0.0,unheated corridor,11.0,2.46,0.0,N,natural,"Flat 21 The Coach Yard, 372a, Tonbridge Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1991-1995,2010-08-10 14:17:36,rental (private),,,200003655219.0,Address Matched +798673589262012061721544339608839,"1b, King Edward Road",,,ME15 6PN,3382809968,B,B,87,87,Flat,Detached,2011-11-20,E07000110,E14000804,Kent,2012-06-17,new dwelling,93,93,62,62.0,0.4,12,0.4,23.0,23.0,196.0,196.0,56.0,56.0,33.0,standard tariff,,top floor,,,,,NO DATA!,NO DATA!,,,,0.0,,From main system,Good,Good,Average thermal transmittance 0.21 W/m?K,Good,Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.22 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.16 W/m?K,Good,Good,"Boiler and underfloor heating, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.85,,,NO DATA!,"1b, King Edward Road",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2012-06-17 21:54:43,,0.0,0.0,10014314203.0,Address Matched +1667927519222018102916531430618098,Flat 130,Brenchley House,123-135 Week Street,ME14 1FY,9335160678,C,C,74,74,Flat,Mid-Terrace,2018-10-29,E07000110,E14000700,Kent,2018-10-29,new dwelling,77,77,192,192.0,1.3,34,1.3,31.0,31.0,221.0,221.0,97.0,97.0,37.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,Community scheme,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.30 W/m-¦K,Good,Good,,,,Average thermal transmittance 0.18 W/m-¦K,Good,Good,Community scheme,Good,Good,"Charging system linked to use of community heating, programmer and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,NO DATA!,,NO DATA!,,,,,NO DATA!,"Flat 130, Brenchley House, 123-135 Week Street",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2018-10-29 16:53:14,unknown,6.0,6.0,10094440806.0,Address Matched +1729703196132019061713172283978004,"10, Hegarty Way",Staplehurst,,TN12 0FY,9423015678,B,B,82,82,Flat,Detached,2019-06-17,E07000110,E14000804,Kent,2019-06-17,new dwelling,88,88,102,102.0,0.8,18,0.8,43.0,43.0,160.0,160.0,56.0,56.0,43.0,standard tariff,,ground floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"10, Hegarty Way, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,NO DATA!,2019-06-17 13:17:22,unknown,7.0,7.0,10094442024.0,Address Matched +1826370312242020091609343071209668,"12, Gilbert Way",,,ME17 3TT,6299212778,B,A,84,95,House,End-Terrace,2020-09-16,E07000110,E14000700,Kent,2020-09-16,new dwelling,86,98,87,5.0,1.3,15,0.1,74.0,74.0,221.0,221.0,73.0,44.0,83.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"12, Gilbert Way",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2020-09-16 09:34:30,unknown,8.0,8.0,10094441877.0,Address Matched +16859429132009012114405968068008,202 Wallis Place,Hart Street,,ME16 8FE,2818088468,B,B,88,88,Flat,Detached,2009-01-02,E07000110,E14000804,Kent,2009-01-21,new dwelling,87,87,95,95.0,1.1,0,1.1,31.0,31.0,127.0,127.0,72.0,72.0,0.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,6.0,,SAP05:Hot-Water,,,(other premises below),,,Fully double glazed,Good,Good,Average thermal transmittance 0.28 W/m²K,Very Good,Very Good,SAP05:Secondary-Heating,,,Average thermal transmittance 0.00 W/m²K,Very Good,Very Good,SAP05:Main-Heating,,,SAP05:Main-Heating-Controls,,,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,,,,NO DATA!,"202 Wallis Place, Hart Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2009-01-21 14:40:59,,6.0,6.0,10022900810.0,Address Matched +1714111894132019051509144400978903,3 Fishers Court,"22, Scott Street",,ME14 2TA,9300993678,D,C,56,77,Flat,End-Terrace,2019-04-15,E07000110,E14000804,Kent,2019-05-15,rental (private),61,61,340,336.0,2.4,57,2.4,74.0,41.0,416.0,245.0,291.0,139.0,42.0,Single,N,1st,Y,,2602.0,100.0,"double glazing, unknown install date",Normal,0.0,1.0,1.0,0.0,0.0,"Electric immersion, standard tariff",Very Poor,Poor,(another dwelling below),NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Room heaters, electric",Very Poor,Poor,Appliance thermostats,Good,Good,No low energy lighting,Very Poor,Very Poor,electricity (not community),0.0,unheated corridor,8.82,,,N,natural,"3 Fishers Court, 22, Scott Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2019-05-15 09:14:44,rental (private),,,10014308405.0,Address Matched +b87bbe40237f7bfac0e0a17ceff7bdd552f8d1a039b3bb9c9b0913a60d593965,30 Felderland Drive,,,ME15 9YB,10001467240,C,B,75,88,House,Mid-Terrace,2021-09-09,E07000110,E14000700,Kent,2021-09-09,marketed sale,74,88,160,65.0,2.3,28,1.0,69.0,69.0,370.0,349.0,115.0,76.0,83.0,Unknown,Y,,,,,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.4,0.0,N,natural,30 Felderland Drive,Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1976-1982,2021-09-09 15:42:44,Owner-occupied,14.0,,200003682812.0,Energy Assessor +b883044516da73781ccae70d2edfc3d3be1c89dc03e0ee93f94e4c7f67ea93e7,10 Hollander Mews,,,ME14 1HW,10001329859,B,A,84,96,House,End-Terrace,2021-08-06,E07000110,E14000804,Kent,2021-08-06,new dwelling,87,99,84,-7.0,1.1,15,-0.1,70.0,70.0,195.0,195.0,67.0,41.0,76.0,standard tariff,,,N,,,100.0,,,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.12 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.28 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.12 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.31,,,,10 Hollander Mews,Maidstone,Maidstone and The Weald,MAIDSTONE,2021,2021-08-06 15:00:13,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,9.0,,10094443068.0,Address Matched +884161952732013021719140721978802,"57, Cross Keys",Bearsted,,ME14 4HR,5261815078,D,B,59,84,House,Semi-Detached,2013-02-15,E07000110,E14000700,Kent,2013-02-17,marketed sale,55,83,241,78.0,4.3,46,1.5,105.0,56.0,730.0,471.0,100.0,64.0,93.0,dual,Y,NODATA!,,,2107.0,80.0,double glazing installed during or after 2002,Normal,2.0,5.0,5.0,10.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Mostly double glazing,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 10% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"57, Cross Keys, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2013-02-17 19:14:07,owner-occupied,10.0,1.0,200003694886.0,Address Matched +360658270962009091022205307008411,"8, Allen Street",,,ME14 5AG,1080727668,E,E,42,44,House,Mid-Terrace,2009-09-10,E07000110,E14000804,Kent,2009-09-10,marketed sale,36,38,496,480.0,6.5,83,6.3,70.0,39.0,935.0,923.0,148.0,148.0,78.45,Single,Y,NO DATA!,,,2104.0,29.0,"double glazing, unknown install date",Normal,2.0,4.0,4.0,22.0,2.0,From main system,Average,Good,"Suspended, no insulation (assumed)",,,Partial double glazing,Poor,Poor,"Solid brick, with internal insulation",Good,Good,"Room heaters, mains gas",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Average,Good,Programmer and room thermostat,Poor,Poor,Low energy lighting in 22% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.45,0.0,N,natural,"8, Allen Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2009-09-10 22:20:53,owner-occupied,,,200003704819.0,Address Matched +597145910812014022022435192240988,"23, Jenkins Drive",,,ME15 9LG,9875024868,D,B,67,89,Bungalow,Semi-Detached,2014-02-20,E07000110,E14000700,Kent,2014-02-20,rental (social),69,92,232,38.0,2.0,45,0.4,35.0,35.0,350.0,310.0,134.0,70.0,45.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,80.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"23, Jenkins Drive",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2014-02-20 22:43:51,rental (social),5.0,4.0,200003682467.0,Address Matched +1335648744212015062316304390250333,"17, Weld Close",Staplehurst,,TN12 0SJ,3349407378,C,B,71,84,House,Mid-Terrace,2015-06-23,E07000110,E14000804,Kent,2015-06-23,marketed sale,69,82,204,101.0,2.5,36,1.3,46.0,46.0,447.0,450.0,127.0,78.0,70.0,Unknown,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"17, Weld Close, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1967-1975,2015-06-23 16:30:43,owner-occupied,,,200003678705.0,Address Matched +824792749962012081417175490448222,"51, Bankfields",Headcorn,,TN27 9QY,2999490078,D,B,55,86,House,Semi-Detached,2012-08-14,E07000110,E14000700,Kent,2012-08-14,marketed sale,48,82,272,76.0,4.6,58,1.3,44.0,44.0,696.0,386.0,236.0,90.0,78.0,Single,N,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,100.0,1.0,"From main system, no cylinder thermostat",Poor,Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, wood logs",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, oil",Average,Average,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,oil (not community),0.0,NO DATA!,,,0.0,,natural,"51, Bankfields, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,England and Wales: 1967-1975,2012-08-14 17:17:54,owner-occupied,11.0,11.0,200003699711.0,Address Matched +1479079757012016091414540991960641,"7, Orchard Glade",Headcorn,,TN27 9SS,6157717478,F,D,36,67,Bungalow,Detached,2016-09-13,E07000110,E14000700,Kent,2016-09-14,marketed sale,31,56,316,144.0,7.5,83,3.9,58.0,58.0,903.0,654.0,219.0,78.0,90.0,Unknown,N,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,100.0,0.0,From main system,Average,Average,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, oil",Average,Average,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,oil (not community),0.0,NO DATA!,,2.34,,N,natural,"7, Orchard Glade, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,England and Wales: 1967-1975,2016-09-14 14:54:09,owner-occupied,,,200003700888.0,Address Matched +1500485231252016112819531597269743,"18, Anerley Close",,,ME16 0RR,7362178478,D,B,67,83,Bungalow,Semi-Detached,2016-11-28,E07000110,E14000804,Kent,2016-11-28,rental (private),64,80,216,104.0,3.2,38,1.6,103.0,55.0,554.0,503.0,108.0,71.0,84.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,3.0,5.0,5.0,13.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 270 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 13% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"18, Anerley Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2016-11-28 19:53:15,rental (private),,,200003660943.0,Address Matched +925945087412013051522203290970508,"10, Courtenay Road",,,ME15 6UL,5808708078,D,B,61,84,House,Mid-Terrace,2013-05-14,E07000110,E14000804,Kent,2013-05-15,assessment for green deal,61,87,224,62.0,3.5,42,1.0,51.0,51.0,545.0,369.0,228.0,128.0,82.0,dual,Y,NODATA!,,,2103.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,100.0,0.0,"Electric immersion, off-peak",Very Poor,Very Poor,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Room thermostat only,Poor,Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"10, Courtenay Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2013-05-15 22:20:32,owner-occupied,10.0,10.0,200003665095.0,Address Matched +1419859599102016120816194146260788,"16, Bluebell Way",Allington,,ME16 0ZU,3184992478,B,A,85,96,House,End-Terrace,2016-12-08,E07000110,E14000804,Kent,2016-12-08,new dwelling,87,98,79,-2.0,1.2,14,0.0,61.0,61.0,204.0,204.0,87.0,52.0,86.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.27 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"16, Bluebell Way, Allington",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2016-12-08 16:19:41,owner-occupied,10.0,10.0,10091195346.0,Address Matched +477889757112018090718534894080278,West Pike Fish Oast,Pike Fish Lane,Laddingford,ME18 6BH,2818745768,C,B,69,86,House,Detached,2018-09-07,E07000110,E14000804,Kent,2018-09-07,marketed sale,66,81,124,45.0,7.0,28,3.6,215.0,127.0,850.0,864.0,121.0,73.0,247.0,dual,N,NODATA!,,,2110.0,100.0,double glazing installed during or after 2002,Normal,1.0,7.0,7.0,31.0,0.0,From main system,Average,Average,"Solid, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Solid brick, as built, insulated (assumed)",Good,Good,"Room heaters, wood logs",,,"Pitched, insulated (assumed)",Good,Good,"Boiler and underfloor heating, oil",Average,Average,Time and temperature zone control,Very Good,Very Good,Low energy lighting in 31% of fixed outlets,Average,Average,oil (not community),0.0,NO DATA!,,,,N,natural,"West Pike Fish Oast, Pike Fish Lane, Laddingford",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2018-09-07 18:53:48,owner-occupied,,,10022895371.0,Address Matched +1552663749712017061515382093930959,Holly Bank,Lenham Heath Road,Sandway,ME17 2NB,9934932578,D,A,65,106,House,Semi-Detached,2017-06-13,E07000110,E14000700,Kent,2017-06-15,none of the above,60,102,238,-34.0,4.0,42,-0.4,92.0,61.0,679.0,455.0,132.0,73.0,95.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,50.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"Holly Bank, Lenham Heath Road, Sandway",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2017-06-15 15:38:20,owner-occupied,,,200003724348.0,Address Matched +268317670202009041722072763019538,"20, Trapfield Close",Bearsted,,ME14 4HT,6246570668,E,C,48,70,Bungalow,Semi-Detached,2009-04-17,E07000110,E14000700,Kent,2009-04-17,marketed sale,42,64,451,261.0,5.3,76,3.1,54.0,32.0,629.0,389.0,129.0,90.0,77.77,Single,Y,NO DATA!,,,2107.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,29.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Poor,Poor,Low energy lighting in 29% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,0.0,N,natural,"20, Trapfield Close, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2009-04-17 22:07:27,owner-occupied,,,200003694835.0,Address Matched +1488152539022017090811433457488163,5 Greensand Meadow,Sutton Valence,,ME17 3FP,6536387478,B,A,85,95,House,End-Terrace,2017-09-08,E07000110,E14000700,Kent,2017-09-08,new dwelling,87,97,80,10.0,1.4,14,0.2,63.0,63.0,233.0,233.0,84.0,50.0,100.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.12 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"5 Greensand Meadow, Sutton Valence",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2017-09-08 11:43:34,owner-occupied,10.0,10.0,10093303724.0,Address Matched +1403531206152016011817231598960049,"39, Edmett Way",,,ME17 3FA,987681478,B,A,84,94,House,Semi-Detached,2016-01-18,E07000110,E14000700,Kent,2016-01-18,new dwelling,86,95,82,22.0,1.7,14,0.5,72.0,72.0,298.0,298.0,92.0,55.0,115.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"39, Edmett Way",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2016-01-18 17:23:15,unknown,1.0,1.0,10091193980.0,Address Matched +324787070512011051209090697990465,Yenale,Ulcombe Road,Langley,ME17 3JE,4556074668,D,D,56,61,Bungalow,Detached,2011-05-12,E07000110,E14000700,Kent,2011-05-12,marketed sale,56,62,241,211.0,5.3,45,4.6,89.0,55.0,627.0,541.0,432.0,432.0,117.9,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,5.0,5.0,38.0,0.0,No system present: electric immersion assumed,Very Poor,Very Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 38% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,2.447,0.0,,natural,"Yenale, Ulcombe Road, Langley",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2011-05-12 09:09:06,owner-occupied,13.0,5.0,, +1166681589062014070209215705928654,"78, Mote Road",,,ME15 6EW,5058805278,E,C,49,77,House,Semi-Detached,2014-07-02,E07000110,E14000804,Kent,2014-07-02,marketed sale,44,75,326,124.0,5.2,63,2.0,51.0,51.0,967.0,620.0,172.0,80.0,82.0,Unknown,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,1.0,4.0,4.0,100.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"78, Mote Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2014-07-02 09:21:57,owner-occupied,9.0,9.0,200003691184.0,Address Matched +1654351764412018080808544396080458,"349c, Loose Road",,,ME15 9PY,4823469578,D,B,66,82,House,Detached,2018-08-06,E07000110,E14000804,Kent,2018-08-08,marketed sale,65,81,214,108.0,4.3,34,2.2,101.0,79.0,849.0,610.0,92.0,92.0,126.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,7.0,7.0,71.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, partial insulation (assumed)",Average,Average,"Room heaters, wood logs",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 71% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"349c, Loose Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1976-1982,2018-08-08 08:54:43,owner-occupied,,,200003680319.0,Address Matched +b8b4a5cc67d0e96ebe1634d1423d66e89345c7a1a1056f1adbf4ce37bbfe3d57,7 Ploughmans Way,,,ME5 9DE,10001633897,D,C,63,77,House,Detached,2021-09-01,E07000110,E14000700,Kent,2021-09-02,marketed sale,55,71,245,146.0,5.4,43,3.3,98.0,98.0,860.0,729.0,146.0,79.0,126.0,Single,Y,,,,,100.0,"double glazing, unknown install date",Normal,1.0,7.0,7.0,96.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, mains gas",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 96% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.35,0.0,N,natural,7 Ploughmans Way,Maidstone,Faversham and Mid Kent,CHATHAM,England and Wales: 1991-1995,2021-09-02 11:57:23,Owner-occupied,23.0,,200003709087.0,Energy Assessor +1732760839262019062818390455768291,"5, Heather Drive",,,ME15 7DG,9527335678,D,C,63,78,House,Semi-Detached,2019-06-26,E07000110,E14000700,Kent,2019-06-28,marketed sale,55,72,242,143.0,5.7,43,3.4,133.0,83.0,960.0,786.0,105.0,72.0,134.0,Single,Y,NODATA!,,,2104.0,90.0,double glazing installed before 2002,Normal,2.0,7.0,7.0,40.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Mostly double glazing,Average,Average,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 40% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"5, Heather Drive",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2019-06-28 18:39:04,owner-occupied,,,200003684100.0,Address Matched +553797081912013022809373598270081,"78, Alkham Road",,,ME14 5PE,158180868,D,C,62,78,House,Detached,2013-02-28,E07000110,E14000804,Kent,2013-02-28,marketed sale,61,78,211,105.0,3.7,40,1.9,51.0,51.0,681.0,564.0,110.0,73.0,93.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,2.0,7.0,7.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"78, Alkham Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2013-02-28 09:37:35,owner-occupied,13.0,13.0,200003716823.0,Address Matched +1329665669902015060811493734650488,"41, The Landway",Bearsted,,ME14 4BG,4902166378,D,B,58,86,House,Semi-Detached,2015-06-08,E07000110,E14000700,Kent,2015-06-08,marketed sale,50,84,270,74.0,6.3,48,1.8,144.0,72.0,1067.0,526.0,167.0,78.0,132.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,6.0,6.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,,,,"Flat, limited insulation (assumed)",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"41, The Landway, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2015-06-08 11:49:37,owner-occupied,,,200003692619.0,Address Matched +1485622249022016100711313917548976,"1, Robinson Avenue",Barming,,ME16 9BF,7104467478,B,B,83,83,Flat,NO DATA!,2016-10-04,E07000110,E14000804,Kent,2016-10-07,new dwelling,90,90,70,70.0,0.8,12,0.8,45.0,45.0,183.0,183.0,81.0,81.0,62.0,standard tariff,,ground floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.12 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.20 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"1, Robinson Avenue, Barming",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2016-10-07 11:31:39,unknown,15.0,15.0,10091195818.0,Address Matched +1308241680052017101116054091939630,New Lodge Barn,Hunton Road,Marden,TN12 9SL,6003015378,D,A,59,94,House,Detached,2017-10-11,E07000110,E14000804,Kent,2017-10-11,rental (private),50,85,177,2.0,6.5,46,1.6,79.0,79.0,662.0,485.0,180.0,79.0,141.0,Single,N,NODATA!,,,2107.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,100.0,0.0,"From main system, no cylinder thermostat",Poor,Poor,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Timber frame, as built, insulated (assumed)",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, oil",Average,Average,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,oil (not community),0.0,NO DATA!,,,,N,natural,"New Lodge Barn, Hunton Road, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1983-1990,2017-10-11 16:05:40,rental (private),,,200003669522.0,Address Matched +1283622286652015021816020093950536,"2, The Bartons",Staplehurst,,TN12 0EF,5632633378,B,B,87,89,House,Detached,2015-02-18,E07000110,E14000804,Kent,2015-02-18,new dwelling,88,90,63,51.0,1.4,11,1.1,75.0,75.0,274.0,276.0,114.0,62.0,126.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.14 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"2, The Bartons, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,NO DATA!,2015-02-18 16:02:00,owner-occupied,21.0,21.0,10014315501.0,Address Matched +1726693919222019082013122524908911,"4, Sears Grove",Otham,,ME15 8YY,1277194678,B,A,84,95,House,Detached,2019-08-20,E07000110,E14000700,Kent,2019-08-20,new dwelling,86,96,87,12.0,1.4,15,0.2,69.0,69.0,241.0,241.0,76.0,46.0,92.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.10 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.19 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"4, Sears Grove, Otham",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2019-08-20 13:12:25,owner-occupied,10.0,10.0,10094440652.0,Address Matched +341077344252019100705444498019768,19 Wexford Place,,,ME15 9GF,7884485668,C,B,78,88,House,End-Terrace,2019-10-05,E07000110,E14000700,Kent,2019-10-07,rental (private),77,87,134,66.0,2.5,24,1.3,79.0,79.0,407.0,408.0,106.0,66.0,106.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,19 Wexford Place,Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2007 onwards,2019-10-07 05:44:44,rental (private),,,10022895469.0,Address Matched +843599129142012100815533808220888,Flat 2 St. Davids House,Nottingham Avenue,,ME15 7PR,7131422078,C,C,71,74,Maisonette,Semi-Detached,2012-10-08,E07000110,E14000700,Kent,2012-10-08,marketed sale,75,78,178,155.0,1.7,34,1.5,52.0,30.0,326.0,302.0,72.0,72.0,50.0,Single,Y,1st,Y,,2107.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,27.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 27% of fixed outlets,Average,Average,mains gas (not community),0.0,no corridor,,,0.0,,natural,"Flat 2 St. Davids House, Nottingham Avenue",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2012-10-08 15:53:38,owner-occupied,11.0,3.0,200003713146.0,Address Matched +655478139962011101417052298148899,11 Thomas Place,James Whatman Way,,ME14 1FP,9921358868,C,B,80,81,Flat,Mid-Terrace,2011-10-14,E07000110,E14000804,Kent,2011-10-14,new dwelling,90,90,97,94.0,0.8,13,0.8,47.0,37.0,202.0,203.0,102.0,102.0,63.9,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,5.0,,"Community scheme, no cylinder thermostat",Good,Very Good,(other premises below),,,Fully double glazed,Good,Good,Average thermal transmittance 0.27 W/m?K,Very Good,Very Good,,,,(other premises above),,,Community scheme,Good,Very Good,"Flat rate charging, programmer and TRVs",Average,Average,Low energy lighting in 71% of fixed outlets,Very Good,Very Good,NO DATA!,0.0,NO DATA!,,2.4,,,NO DATA!,"11 Thomas Place, James Whatman Way",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2011-10-14 17:05:22,,7.0,5.0,10014312677.0,Address Matched +682681949902012032907200091022818,"65, Chantry Road",Marden,,TN12 9HU,7921640968,C,C,69,70,Bungalow,End-Terrace,2012-03-29,E07000110,E14000804,Kent,2012-03-29,rental (social),70,72,215,203.0,2.2,41,2.0,37.0,37.0,389.0,368.0,74.0,74.0,52.34,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,80.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,2.27,0.0,,natural,"65, Chantry Road, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1950-1966,2012-03-29 07:20:00,rental (social),5.0,4.0,200003708680.0,Address Matched +b8ebb62b36bd91c774ce9aed245b863c56f755caa649aaf9cb977cc24b3d0cc9,63 Hereford Road,,,ME15 7NB,10001528956,C,B,73,86,House,Semi-Detached,2021-08-22,E07000110,E14000700,Kent,2021-08-22,marketed sale,71,84,179,85.0,2.7,31,1.3,77.0,77.0,445.0,411.0,95.0,65.0,85.0,Single,Y,,,,,100.0,double glazing installed during or after 2002,More Than Typical,0.0,5.0,5.0,89.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 89% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.35,0.0,N,natural,63 Hereford Road,Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2021-08-22 13:31:46,Owner-occupied,9.0,,200003712376.0,Energy Assessor +1576390199962017092016493544388163,2 Catchment Cottages,Hampstead Lane,Yalding,ME18 6HL,6431904578,C,B,70,85,House,Semi-Detached,2017-09-18,E07000110,E14000804,Kent,2017-09-20,rental (private),72,87,210,84.0,2.1,34,0.8,43.0,43.0,413.0,381.0,97.0,70.0,61.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,100.0,0.0,From main system,Very Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,"Room heaters, wood logs",,,"Pitched, 270 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"2 Catchment Cottages, Hampstead Lane, Yalding",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2017-09-20 16:49:35,rental (private),,,200003656848.0,Address Matched +1420445809802016030413214647360848,Windyridge,Penenden Heath Road,Penenden Heath,ME14 2DE,5890403478,E,C,45,75,House,Detached,2016-03-04,E07000110,E14000804,Kent,2016-03-04,marketed sale,37,68,373,154.0,8.2,66,3.4,144.0,72.0,1511.0,855.0,141.0,88.0,125.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,2.0,7.0,7.0,0.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"Windyridge, Penenden Heath Road, Penenden Heath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2016-03-04 13:21:46,owner-occupied,,,200003673301.0,Address Matched +1436065069262016042119330164198426,"11, Weyhill Close",,,ME14 5SQ,2678614478,D,B,62,86,House,Detached,2016-04-21,E07000110,E14000804,Kent,2016-04-21,marketed sale,55,84,272,81.0,4.1,48,1.2,62.0,62.0,693.0,443.0,191.0,77.0,85.0,dual,Y,NODATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,2.0,5.0,5.0,100.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,2.31,,N,natural,"11, Weyhill Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1976-1982,2016-04-21 19:33:01,owner-occupied,,,200003672929.0,Address Matched +1553710696332017062010073450278602,"23, Cricketers Way",Coxheath,,ME17 4FG,9280642578,B,A,84,94,House,Detached,2017-06-20,E07000110,E14000804,Kent,2017-06-20,new dwelling,85,95,87,23.0,1.7,15,0.5,71.0,71.0,287.0,289.0,105.0,56.0,113.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.14 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.20 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"23, Cricketers Way, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2017-06-20 10:07:34,unknown,11.0,11.0,10093302627.0,Address Matched +1764735347312020011010561026900360,Flat 78 Guinevere Point,Waterhouse Avenue,,ME14 2FJ,3083767678,B,B,85,85,Flat,Mid-Terrace,2020-01-10,E07000110,E14000804,Kent,2020-01-10,new dwelling,91,91,72,72.0,0.6,13,0.6,45.0,45.0,134.0,134.0,60.0,60.0,51.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.17 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Flat 78 Guinevere Point, Waterhouse Avenue",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2020-01-10 10:56:10,unknown,10.0,10.0,10094440186.0,Address Matched +933908669702013053110594804872778,Flat 1,Villa Apartments,49 Lower Fant Road,ME16 8DP,1719868078,C,C,72,76,Flat,Semi-Detached,2013-05-23,E07000110,E14000804,Kent,2013-05-31,rental (private),76,80,181,144.0,1.5,34,1.2,49.0,28.0,299.0,258.0,66.0,66.0,45.0,Single,Y,Ground,N,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,2.0,2.0,25.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Flat, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 25% of fixed outlets,Average,Average,mains gas (not community),0.0,no corridor,,,0.0,,natural,"Flat 1, Villa Apartments, 49 Lower Fant Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2013-05-31 10:59:48,rental (private),4.0,1.0,200003658047.0,Address Matched +1130136459222014042507374192548434,"64a, Bell Road",,,ME15 9HP,3999552278,C,B,74,91,House,Mid-Terrace,2014-04-24,E07000110,E14000700,Kent,2014-04-25,rental (social),77,93,149,24.0,1.7,29,0.3,52.0,39.0,335.0,308.0,89.0,62.0,61.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,67.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 67% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"64a, Bell Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2014-04-25 07:37:41,rental (social),6.0,4.0,200003683034.0,Address Matched +840148309142012092800310303222288,"20, Corben Close",Allington,,ME16 0FH,4176302078,D,C,58,71,House,Detached,2012-09-28,E07000110,E14000804,Kent,2012-09-28,marketed sale,52,66,218,145.0,7.0,42,4.7,137.0,69.0,1096.0,991.0,134.0,71.0,166.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,2.0,8.0,8.0,0.0,1.0,From main system,Good,Good,"Suspended, limited insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, mains gas",,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"20, Corben Close, Allington",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2012-09-28 00:31:03,owner-occupied,27.0,0.0,10022901478.0,Address Matched +749321772752014010310374795279397,"32, Queen Elizabeth Square",,,ME15 9DG,3760255968,C,B,74,88,House,Mid-Terrace,2013-10-22,E07000110,E14000700,Kent,2014-01-03,rental (social),74,88,136,50.0,2.7,26,1.0,97.0,57.0,455.0,394.0,97.0,68.0,103.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,30.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 75mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 30% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"32, Queen Elizabeth Square",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2014-01-03 10:37:47,rental (social),10.0,3.0,200003710545.0,Address Matched +1640397669502018061417004952889648,"30, Jeffery Close",Staplehurst,,TN12 0TH,5530568578,D,B,67,81,House,Detached,2018-06-14,E07000110,E14000804,Kent,2018-06-14,marketed sale,62,76,211,122.0,4.0,37,2.4,121.0,68.0,633.0,597.0,139.0,83.0,108.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",More Than Typical,3.0,6.0,6.0,22.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 22% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"30, Jeffery Close, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1967-1975,2018-06-14 17:00:49,owner-occupied,,,200003678804.0,Address Matched +b90b0809fba8ba96fc955322bbd8ba292c58a6b0d6ee077c5762b2d4f57c39e8,10 Hallwards,Staplehurst,,TN12 0NT,10001321182,C,B,69,86,Bungalow,Semi-Detached,2021-09-30,E07000110,E14000804,Kent,2021-09-30,marketed sale,67,85,208,82.0,2.8,37,1.1,90.0,60.0,464.0,391.0,101.0,74.0,75.0,Single,Y,,,,,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,50.0,0.0,From main system,Very Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,,,2.32,0.0,N,natural,"10 Hallwards, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1967-1975,2021-09-30 14:45:05,Owner-occupied,8.0,,200003677218.0,Energy Assessor +597295162062020051512543674678020,"35, Surrey Road",,,ME15 7HN,2705624868,D,C,56,74,House,Semi-Detached,2020-04-03,E07000110,E14000700,Kent,2020-05-15,marketed sale,48,67,312,186.0,5.3,55,3.2,120.0,72.0,936.0,785.0,89.0,59.0,97.0,Single,Y,NODATA!,,,2107.0,100.0,"double glazing, unknown install date",More Than Typical,0.0,6.0,6.0,33.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 33% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"35, Surrey Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2020-05-15 12:54:36,owner-occupied,,,200003711745.0,Address Matched +b93255cc6cc4433cacbd5ab417a8e154664f01863426d71b837567f4c520d995,7 ACOTT FIELDS,YALDING,,ME18 6DQ,10001577625,D,B,64,82,House,Mid-Terrace,2021-07-14,E07000110,E14000804,Kent,2021-07-15,marketed sale,63,82,243,108.0,3.6,40,1.5,118.0,74.0,577.0,512.0,196.0,81.0,90.0,Unknown,Y,,,,,100.0,"double glazing, unknown install date",Normal,3.0,4.0,4.0,42.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, wood logs",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 42% of fixed outlets,Average,Average,mains gas (not community),0.0,,,2.27,0.0,N,natural,"7 ACOTT FIELDS, YALDING",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2021-07-15 14:13:15,Owner-occupied,36.0,,200003660480.0,Energy Assessor +1040674659222019112617121206168821,"354, Willington Street",,,ME15 8HJ,2017526178,D,B,66,84,House,Semi-Detached,2019-11-26,E07000110,E14000700,Kent,2019-11-26,rental (private),60,81,239,103.0,4.0,42,1.8,82.0,82.0,683.0,490.0,102.0,70.0,95.0,Unknown,Y,NODATA!,,,2105.0,100.0,"double glazing, unknown install date",Normal,1.0,6.0,6.0,82.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and at least two room thermostats,Good,Good,Low energy lighting in 82% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"354, Willington Street",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2019-11-26 17:12:12,rental (private),,,200003680575.0,Address Matched +181816339922018101021421123808368,2 Oak Cottages,The Green,Bearsted,ME14 4DX,6295353568,D,C,58,79,House,End-Terrace,2018-10-10,E07000110,E14000700,Kent,2018-10-10,rental (private),51,74,289,137.0,4.9,51,2.4,115.0,66.0,816.0,598.0,114.0,76.0,97.0,Single,Y,NODATA!,,,2104.0,89.0,double glazing installed before 2002,Normal,3.0,4.0,4.0,25.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Mostly double glazing,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Roof room(s), insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 25% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"2 Oak Cottages, The Green, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2018-10-10 21:42:11,rental (private),,,200003695097.0,Address Matched +1713608683512019041209213499910860,"4, Parsonage Close",Allington,,ME16 9FW,8095393678,B,B,85,87,House,Detached,2019-04-12,E07000110,E14000804,Kent,2019-04-12,new dwelling,87,89,77,61.0,1.1,14,0.9,60.0,60.0,227.0,228.0,90.0,50.0,83.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.20 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.16 W/m-¦K,Good,Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"4, Parsonage Close, Allington",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2019-04-12 09:21:34,unknown,29.0,29.0,10093306668.0,Address Matched +911180627732013071717235651278408,"192, Plains Avenue",,,ME15 7BB,2811407078,D,C,65,80,House,Mid-Terrace,2013-03-27,E07000110,E14000700,Kent,2013-07-17,FiT application,66,81,202,97.0,2.8,38,1.4,74.0,43.0,513.0,485.0,89.0,62.0,74.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,7.0,6.0,28.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,Portable electric heaters (assumed),,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 28% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"192, Plains Avenue",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2013-07-17 17:23:56,owner-occupied,18.0,5.0,200003714307.0,Address Matched +244657539602013072913174859972118,"13, Lambourne Road",Bearsted,,ME15 8LZ,4650439568,D,B,64,88,House,End-Terrace,2013-07-29,E07000110,E14000700,Kent,2013-07-29,marketed sale,63,89,231,47.0,2.9,44,0.7,74.0,40.0,423.0,343.0,179.0,73.0,65.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,1.0,3.0,3.0,14.0,0.0,"From main system, no cylinder thermostat",Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 14% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"13, Lambourne Road, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1976-1982,2013-07-29 13:17:48,owner-occupied,14.0,2.0,200003686242.0,Address Matched +58774860042009071515534551819158,"68, Arundel Square",,,ME15 6HB,8064868568,B,B,81,84,House,Mid-Terrace,2009-07-15,E07000110,E14000804,Kent,2009-07-15,marketed sale,81,82,123,114.0,2.2,20,2.1,105.0,58.0,281.0,287.0,116.0,116.0,126.54,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,6.0,6.0,20.0,0.0,From main system,Very Good,Very Good,"Solid, insulated (assumed)",,,Fully double glazed,Good,Good,"Timber frame, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 20% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.35,0.0,N,natural,"68, Arundel Square",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2009-07-15 15:53:45,owner-occupied,,,10022895168.0,Address Matched +372515100642009092911591662812018,"14, Victoria Orchard",Queens Road,,ME16 0ED,3698408668,C,B,78,83,Maisonette,Mid-Terrace,2009-09-29,E07000110,E14000804,Kent,2009-09-29,marketed sale,78,82,171,138.0,1.8,28,1.4,66.0,35.0,266.0,248.0,100.0,81.0,35.0,Single,Y,1st,Y,3.0,2107.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,10.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,"Roof room(s), insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Poor,Poor,Low energy lighting in 10% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.3,0.0,N,natural,"14, Victoria Orchard, Queens Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2009-09-29 11:59:16,owner-occupied,,,10022893164.0,Address Matched +727861189932011112722185307268592,"75, Westmorland Road",,,ME15 8HR,8207563968,C,C,71,72,House,Mid-Terrace,2011-11-27,E07000110,E14000700,Kent,2011-11-27,rental (social),71,72,174,170.0,2.7,33,2.7,64.0,47.0,405.0,407.0,139.0,139.0,81.68,dual,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,64.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"System built, with external insulation",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 64% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,2.44,0.0,,natural,"75, Westmorland Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2011-11-27 22:18:53,rental (social),11.0,7.0,200003684916.0,Address Matched +56217440902009011412144655619678,"42, Clock House Rise",Coxheath,,ME17 4GS,2935446568,C,C,78,78,House,End-Terrace,2009-01-13,E07000110,E14000804,Kent,2009-01-14,new dwelling,77,77,162,162.0,2.1,0,2.1,37.0,37.0,370.0,370.0,87.0,87.0,78.56,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,19.0,,SAP05:Hot-Water,,,Average thermal transmittance 0.20 W/m²K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.20 W/m²K,Very Good,Very Good,SAP05:Secondary-Heating,,,Average thermal transmittance 0.19 W/m²K,Good,Good,SAP05:Main-Heating,,,SAP05:Main-Heating-Controls,,,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,-1.0,NO DATA!,,2.4,,,NO DATA!,"42, Clock House Rise, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2009-01-14 12:14:46,,19.0,19.0,10022900561.0,Address Matched +196138566132009062506532636268801,"2, Brenchley Road",,,ME15 6UT,6116894568,E,D,50,58,House,Semi-Detached,2009-06-24,E07000110,E14000804,Kent,2009-06-25,rental (private),44,51,418,356.0,5.3,70,4.5,67.0,38.0,738.0,654.0,97.0,84.0,75.4,Single,Y,NO DATA!,,,2104.0,,INVALID!,Much More Than Typical,1.0,5.0,5.0,25.0,2.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Flat, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Poor,Poor,Low energy lighting in 25% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,0.0,N,natural,"2, Brenchley Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2009-06-25 06:53:26,rental (private),,,200003665299.0,Address Matched +494102199962012121412064476148422,"74, Boxley Road",,,ME14 2TW,2732956768,D,C,55,79,House,Semi-Detached,2012-12-14,E07000110,E14000804,Kent,2012-12-14,rental (private),50,77,230,98.0,7.6,44,3.3,73.0,73.0,1384.0,761.0,99.0,99.0,173.0,Single,Y,NODATA!,,,2106.0,100.0,secondary glazing,Normal,0.0,8.0,8.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Full secondary glazing,Good,Good,"Solid brick, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"74, Boxley Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2012-12-14 12:06:44,rental (private),16.0,16.0,200003703347.0,Address Matched +1013487301732013092513165132278003,"Cottage, Upper 2",Wanshurst Green Farm,"Battle Road, Marden",TN12 9DF,302034178,D,D,61,67,Maisonette,Semi-Detached,2013-09-25,E07000110,E14000804,Kent,2013-09-25,rental,42,50,286,231.0,4.5,77,3.7,60.0,37.0,505.0,416.0,117.0,117.0,58.0,Single,N,1st,Y,,2304.0,100.0,double glazing installed before 2002,Normal,0.0,2.0,2.0,38.0,1.0,Community scheme,Good,Poor,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,Community scheme,Good,Poor,"Flat rate charging, programmer and room thermostat",Poor,Poor,Low energy lighting in 38% of fixed outlets,Average,Average,oil (community),0.0,no corridor,,,0.0,,natural,"Cottage, Upper 2, Wanshurst Green Farm, Battle Road, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1900-1929,2013-09-25 13:16:51,owner-occupied,8.0,3.0,200003674016.0,Address Matched +1675241859922020011511545541148551,2 Newlyn Court,Tufton Street,,ME14 1EZ,5445511678,C,C,77,77,Maisonette,Mid-Terrace,2019-02-14,E07000110,E14000804,Kent,2020-01-15,ECO assessment,80,80,128,128.0,1.6,22,1.6,67.0,67.0,334.0,334.0,74.0,74.0,72.0,dual,Y,Ground,N,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,3.0,3.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,"Room heaters, electric",,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,no corridor,,,,N,natural,"2 Newlyn Court, Tufton Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2020-01-15 11:54:55,rental (social),,,200003688141.0,Address Matched +16685500962009051114215518998901,75 Wallis Place,Hart Street,,ME16 8FD,174088468,B,B,87,87,Flat,NO DATA!,2009-05-11,E07000110,E14000804,Kent,2009-05-11,new dwelling,86,86,100,100.0,1.2,17,1.2,32.0,32.0,154.0,154.0,76.0,76.0,69.94,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,6.0,,From main system,Very Good,Very Good,Average thermal transmittance 0.12 W/m?K,Very Good,Very Good,Fully double glazed,Good,Good,Average thermal transmittance 0.29 W/m?K,Very Good,Very Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.36,,,NO DATA!,"75 Wallis Place, Hart Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2009-05-11 14:21:55,,6.0,6.0,10022900676.0,Address Matched +1406249609442016012505410949262078,"21, Matfield Crescent",,,ME14 5NH,9420102478,D,B,66,81,House,Detached,2016-01-23,E07000110,E14000804,Kent,2016-01-25,rental (private),59,76,215,117.0,5.0,38,2.7,126.0,74.0,841.0,721.0,172.0,80.0,131.0,Unknown,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,6.0,6.0,29.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 29% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"21, Matfield Crescent",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2016-01-25 05:41:09,rental (private),,,200003716707.0,Address Matched +1347422597612017031520524998930737,"78, Upper Fant Road",,,ME16 8BU,7781787378,D,B,68,87,House,Mid-Terrace,2017-03-15,E07000110,E14000804,Kent,2017-03-15,marketed sale,66,87,238,68.0,2.4,42,0.7,41.0,41.0,460.0,357.0,82.0,53.0,58.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Sandstone or limestone, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"78, Upper Fant Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2017-03-15 20:52:49,owner-occupied,,,200003657771.0,Address Matched +106549502032010020109401435068301,Seymour,Ashford Road,Harrietsham,ME17 1AJ,195317468,C,C,72,75,Bungalow,Detached,2010-02-01,E07000110,E14000700,Kent,2010-02-01,marketed sale,69,71,180,171.0,4.4,30,4.2,156.0,78.0,582.0,597.0,144.0,144.0,147.69,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,6.0,5.0,0.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.38,0.0,N,natural,"Seymour, Ashford Road, Harrietsham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2010-02-01 09:40:14,owner-occupied,,,200003703934.0,Address Matched +1074541139212014012019384495240611,"38, Allington Way",,,ME16 0HJ,6197958178,D,B,63,83,House,Semi-Detached,2014-01-20,E07000110,E14000804,Kent,2014-01-20,assessment for green deal,59,82,211,83.0,4.3,41,1.8,120.0,60.0,726.0,534.0,148.0,82.0,106.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,4.0,4.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"38, Allington Way",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2014-01-20 19:38:44,owner-occupied,11.0,0.0,200003702770.0,Address Matched +147516898252019071309014799910156,Flat,"327, Boxley Road",Penenden Heath,ME14 2HN,1690890568,E,C,51,71,Flat,End-Terrace,2019-07-12,E07000110,E14000804,Kent,2019-07-13,rental (private),42,67,347,184.0,6.5,61,3.4,80.0,80.0,1134.0,578.0,106.0,107.0,106.0,Unknown,Y,1st,Y,,2107.0,100.0,"double glazing, unknown install date",Normal,1.0,4.0,4.0,100.0,0.0,From main system,Good,Good,(other premises below),NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,no corridor,,,,N,natural,"Flat, 327, Boxley Road, Penenden Heath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2019-07-13 09:01:47,rental (private),,,200003721187.0,Address Matched +1318048589142015050616083336550728,"16, Wildfell Close",,,ME5 9RU,3103085378,E,C,48,77,House,End-Terrace,2015-05-02,E07000110,E14000700,Kent,2015-05-06,ECO assessment,45,75,382,149.0,4.6,67,1.8,76.0,45.0,830.0,601.0,166.0,68.0,68.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,3.0,3.0,30.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 30% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"16, Wildfell Close",Maidstone,Faversham and Mid Kent,CHATHAM,England and Wales: 1983-1990,2015-05-06 16:08:33,owner-occupied,,,200003727976.0,Address Matched +886777402732013022116262409278306,"152, Linden Road",Coxheath,,ME17 4RA,689335078,E,C,50,76,Flat,Enclosed End-Terrace,2013-02-21,E07000110,E14000804,Kent,2013-02-21,rental (private),54,61,504,417.0,2.3,89,1.9,26.0,28.0,350.0,160.0,210.0,90.0,26.0,Single,N,Ground,N,,2602.0,100.0,"double glazing, unknown install date",Normal,0.0,1.0,1.0,60.0,0.0,"Electric immersion, standard tariff",Very Poor,Very Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Room heaters, electric",Very Poor,Very Poor,Appliance thermostats,Good,Good,Low energy lighting in 60% of fixed outlets,Good,Good,electricity (not community),0.0,unheated corridor,1.95,,0.0,,natural,"152, Linden Road, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2013-02-21 16:26:24,rental (private),5.0,3.0,200003672700.0,Address Matched +503770129002015111619150173759928,"20, The Spillway",,,ME15 6FE,4005927768,C,B,70,86,House,End-Terrace,2015-11-12,E07000110,E14000804,Kent,2015-11-16,marketed sale,69,85,224,91.0,2.3,40,1.0,44.0,44.0,445.0,414.0,92.0,60.0,58.0,dual,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"20, The Spillway",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1991-1995,2015-11-16 19:15:01,owner-occupied,,,200003716337.0,Address Matched +774251739202012041120533192729198,"27, St. Annes Court",,,ME16 0UQ,9259237968,D,C,66,76,Flat,Detached,2012-04-11,E07000110,E14000804,Kent,2012-04-11,marketed sale,47,59,462,339.0,3.3,82,2.4,38.0,27.0,327.0,207.0,95.0,95.0,40.0,dual,N,Ground,N,,2401.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,1.0,60.0,0.0,"Electric immersion, off-peak",Average,Very Poor,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,(another dwelling above),,,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 60% of fixed outlets,Good,Good,electricity (not community),0.0,no corridor,,,0.0,,natural,"27, St. Annes Court",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2012-04-11 20:53:31,owner-occupied,5.0,3.0,200003666981.0,Address Matched +1418749142512016030111542199060048,Flat 29 Star House,Pudding Lane,,ME14 1LT,818292478,C,C,80,80,Flat,Enclosed End-Terrace,2016-03-01,E07000110,E14000804,Kent,2016-03-01,new dwelling,83,83,130,130.0,1.1,23,1.1,34.0,34.0,201.0,201.0,89.0,89.0,47.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,(other premises below),,,Full secondary glazing,Average,Average,Average thermal transmittance 0.30 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Flat 29 Star House, Pudding Lane",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2016-03-01 11:54:21,owner-occupied,5.0,5.0,10091195021.0,Address Matched +370042005012009092422024808210963,"114, Courtenay Road",,,ME15 6UN,9372587668,D,C,63,72,Bungalow,End-Terrace,2009-09-24,E07000110,E14000804,Kent,2009-09-24,rental (social),57,68,361,270.0,3.1,60,2.3,38.0,25.0,467.0,383.0,101.0,73.0,50.66,Single,Y,NO DATA!,,,2107.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,50.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Poor,Poor,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.33,0.0,N,natural,"114, Courtenay Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2009-09-24 22:02:48,rental (social),,,200003683393.0,Address Matched +b94f37531ce9f901f57506f94ee848a56d0eacdf3a6f0bf65263cf8cdd06302b,48B PERRY STREET,,,ME14 2RP,10001537257,E,D,52,57,Flat,End-Terrace,2021-06-29,E07000110,E14000804,Kent,2021-07-01,ECO assessment,49,54,380,338.0,3.6,67,3.2,48.0,48.0,751.0,666.0,85.0,86.0,55.0,Single,Y,01,N,,,100.0,"double glazing, unknown install date",Normal,1.0,2.0,2.0,100.0,0.0,From main system,Good,Good,(another dwelling below),,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, electric",,,"Pitched, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,no corridor,,2.8,0.0,N,natural,48B PERRY STREET,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2021-07-01 18:49:35,Rented (social),7.0,,200003669917.0,Energy Assessor +424447356412010012112450096200570,2 West View Cottages,Plough Wents Road,Chart Sutton,ME17 3RX,5078661768,E,D,48,58,House,Semi-Detached,2010-01-20,E07000110,E14000700,Kent,2010-01-21,rental (private),41,48,366,298.0,7.4,67,6.1,119.0,62.0,974.0,831.0,130.0,108.0,110.58,dual,Y,NO DATA!,,,2107.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,8.0,2.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, coal",,,"Pitched, 75mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 8% of fixed outlets,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.05,0.0,N,natural,"2 West View Cottages, Plough Wents Road, Chart Sutton",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2010-01-21 12:45:00,rental (private),,,200003694503.0,Address Matched +351909732022020070119010976598740,"15, Church Road",Tovil,,ME15 6QX,4757366668,E,C,45,71,House,Detached,2020-07-01,E07000110,E14000804,Kent,2020-07-01,marketed sale,46,71,310,159.0,14.0,46,7.0,219.0,136.0,3117.0,1794.0,149.0,127.0,304.0,Single,Y,NODATA!,,,2106.0,72.0,double glazing installed during or after 2002,Normal,1.0,8.0,8.0,39.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Partial double glazing,Average,Average,"Solid brick, as built, no insulation (assumed)",Poor,Poor,"Room heaters, wood logs",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 39% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"15, Church Road, Tovil",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2020-07-01 19:01:09,owner-occupied,,,200003664509.0,Address Matched +349756880962009082611385326628201,8 Crown Wood Court,Wallis Avenue,,ME15 9DX,226846668,B,B,89,89,Flat,Enclosed End-Terrace,2009-05-12,E07000110,E14000700,Kent,2009-08-26,new dwelling,89,89,93,93.0,0.9,15,0.9,27.0,27.0,159.0,159.0,64.0,64.0,61.49,standard tariff,,top floor,,,,,NO DATA!,NO DATA!,,,,,,From main system,Very Good,Very Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.18 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.16 W/m?K,Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.35,,,NO DATA!,"8 Crown Wood Court, Wallis Avenue",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2009-08-26 11:38:53,,,,10014307311.0,Address Matched +331083120262009072206465745198841,Springvale,Shepherds Way,Langley,ME17 3LJ,4407215668,E,C,48,71,Bungalow,Detached,2009-07-21,E07000110,E14000700,Kent,2009-07-22,marketed sale,42,66,458,253.0,5.3,77,2.9,52.0,35.0,769.0,451.0,138.0,100.0,69.35,Single,Y,NO DATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,50.0,1.0,From main system,Average,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Average,Good,Programmer and room thermostat,Poor,Poor,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.46,0.0,N,natural,"Springvale, Shepherds Way, Langley",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2009-07-22 06:46:57,owner-occupied,,,200003726386.0,Address Matched +1054367822732013120408563707078293,"63, Northumberland Road",,,ME15 7LG,2397227178,D,C,57,74,House,Semi-Detached,2013-12-03,E07000110,E14000700,Kent,2013-12-04,marketed sale,52,71,239,134.0,5.8,46,3.3,116.0,65.0,906.0,737.0,207.0,144.0,126.0,Single,Y,NODATA!,,,2502.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,20.0,0.0,"From main system, no cylinder thermostat",Poor,Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Warm air, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,Low energy lighting in 20% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"63, Northumberland Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2013-12-04 08:56:37,owner-occupied,10.0,2.0,200003683634.0,Address Matched +159235329252008100417414607089052,"58, West Street",Harrietsham,,ME17 1HU,252971568,E,D,50,60,House,Mid-Terrace,2008-10-03,E07000110,E14000700,Kent,2008-10-04,rental (private),41,50,505,401.0,4.3,92,3.5,26.0,26.0,497.0,415.0,105.0,80.0,46.92,Single,Y,NO DATA!,,,2104.0,0.0,single glazing,Normal,0.0,2.0,2.0,75.0,2.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Granite or whinstone, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, coal",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Poor,Poor,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.23,0.0,N,natural,"58, West Street, Harrietsham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2008-10-04 17:41:46,rental (private),,,200003702524.0,Address Matched +1143795142712014052020540095940426,"4, Bower Walk",Staplehurst,,TN12 0LU,4600253278,F,A,34,92,House,Mid-Terrace,2014-05-19,E07000110,E14000804,Kent,2014-05-20,marketed sale,44,95,396,15.0,4.3,71,0.2,72.0,39.0,895.0,281.0,273.0,69.0,61.0,Single,Y,NODATA!,,,2601.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,1.0,13.0,0.0,"Electric immersion, standard tariff",Very Poor,Very Poor,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 12 mm loft insulation",Very Poor,Very Poor,Portable electric heaters assumed for most rooms,Very Poor,Very Poor,No thermostatic control of room temperature,Poor,Poor,Low energy lighting in 13% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"4, Bower Walk, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1950-1966,2014-05-20 20:54:00,owner-occupied,8.0,1.0,200003678132.0,Address Matched +161184950962008101214514352228188,"10, Thornhill Place",,,ME14 2SF,8596532568,E,E,40,45,House,End-Terrace,2008-10-12,E07000110,E14000804,Kent,2008-10-12,rental (private),40,44,489,443.0,5.3,81,4.8,56.0,30.0,763.0,714.0,77.0,72.0,79.15,Single,Y,NO DATA!,,,2107.0,100.0,double glazing installed during or after 2002,Normal,1.0,4.0,4.0,12.0,0.0,From main system,Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, electric",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Very Good,"Programmer, TRVs and bypass",Poor,Poor,Low energy lighting in 12% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.25,0.0,N,natural,"10, Thornhill Place",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2008-10-12 14:51:43,rental (private),,,200003702432.0,Address Matched +598407293932011072222412977268002,"2, Eling Court",,,ME15 6DE,9247034868,C,C,69,73,Flat,Semi-Detached,2011-07-22,E07000110,E14000804,Kent,2011-07-22,rental (social),72,78,255,201.0,1.6,49,1.3,31.0,20.0,270.0,232.0,103.0,88.0,33.0,Single,Y,1st,Y,,2107.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,50.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,unheated corridor,6.0,2.35,0.0,,natural,"2, Eling Court",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2011-07-22 22:41:29,rental (social),6.0,3.0,10022901435.0,Address Matched +687735431352011101014012598099399,"26, Queens House",Fennel Close,,ME16 0SZ,3907180968,E,E,45,50,House,End-Terrace,2011-10-07,E07000110,E14000804,Kent,2011-10-10,rental (private),40,45,359,320.0,7.1,69,6.3,73.0,50.0,1150.0,1049.0,97.0,86.0,102.29,Single,Y,NODATA!,,,2106.0,0.0,not defined,Normal,0.0,4.0,4.0,52.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Sandstone, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 52% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,3.0,0.0,,natural,"26, Queens House, Fennel Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2011-10-10 14:01:25,rental (private),21.0,11.0,200003722358.0,Address Matched +1337886999062015070319020847678855,"2, Pearce Gardens",,,ME15 9UZ,5439917378,B,B,84,85,House,Mid-Terrace,2015-07-03,E07000110,E14000700,Kent,2015-07-03,new dwelling,86,87,87,75.0,1.5,15,1.3,62.0,62.0,218.0,218.0,135.0,97.0,97.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.14 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.20 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.10 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"2, Pearce Gardens",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2015-07-03 19:02:08,unknown,10.0,10.0,10091194203.0,Address Matched +b97df4a208a3e4d877117522cca03ed58972aa9241ad01e7e7ae3d1e65def6d9,FLAT 9,ROBIN HOUSE,SPRINGVALE,ME16 0AT,10001626373,C,C,75,77,Flat,Semi-Detached,2021-07-15,E07000110,E14000804,Kent,2021-07-15,marketed sale,62,64,384,365.0,1.9,65,1.8,32.0,32.0,239.0,218.0,146.0,146.0,30.0,Unknown,Y,02,N,,,100.0,double glazing installed during or after 2002,Normal,0.0,1.0,1.0,100.0,0.0,"Electric immersion, off-peak",Average,Poor,(another dwelling below),,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,Portable electric heaters (assumed),,,(another dwelling above),,,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,no corridor,,2.4,0.0,N,natural,"FLAT 9, ROBIN HOUSE, SPRINGVALE",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2021-07-15 08:32:59,Owner-occupied,9.0,,200003667120.0,Energy Assessor +392313661112009110319304904019469,"27, Castle Dene",,,ME14 2NH,4909149668,C,C,80,80,House,Detached,2009-11-03,E07000110,E14000804,Kent,2009-11-03,new dwelling,78,78,124,121.0,4.2,21,4.1,130.0,101.0,532.0,537.0,150.0,150.0,202.31,standard tariff,,NO DATA!,,,2110.0,,NO DATA!,NO DATA!,,,,,0.0,From main system,Very Good,Very Good,Average thermal transmittance 0.23 W/m?K,Good,Good,Fully double glazed,Good,Good,Average thermal transmittance 0.28 W/m?K,Very Good,Very Good,"Room heaters, mains gas",,,Average thermal transmittance 0.17 W/m?K,Good,Good,"Boiler and underfloor heating, mains gas",Very Good,Very Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in 71% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"27, Castle Dene",Maidstone,Maidstone and The Weald,MAIDSTONE,,2009-11-03 19:30:49,,,,10022897081.0,Address Matched +1645800129062018070414130829048288,"77, West Park Road",,,ME15 7AF,8268209578,C,B,69,84,House,Semi-Detached,2018-07-04,E07000110,E14000700,Kent,2018-07-04,marketed sale,65,81,215,106.0,3.2,38,1.6,61.0,61.0,524.0,466.0,132.0,79.0,86.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,1.0,6.0,6.0,100.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"77, West Park Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2018-07-04 14:13:08,owner-occupied,,,200003686647.0,Address Matched +1260244719962015012213532271718935,"35, Emsworth Grove",,,ME14 5SE,3702171378,D,B,66,84,House,End-Terrace,2015-01-19,E07000110,E14000804,Kent,2015-01-22,marketed sale,64,81,240,104.0,2.9,42,1.3,62.0,50.0,505.0,451.0,135.0,83.0,68.0,dual,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,4.0,4.0,75.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"35, Emsworth Grove",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2015-01-22 13:53:22,owner-occupied,,,200003672912.0,Address Matched +1463566499922016071814545006488346,"21, Cannock Drive",,,ME15 8GE,4030906478,B,B,86,88,House,NO DATA!,2016-07-18,E07000110,E14000700,Kent,2016-07-18,new dwelling,89,91,69,55.0,0.9,12,0.7,51.0,51.0,218.0,218.0,79.0,45.0,73.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,"From main system, flue gas heat recovery",Very Good,Very Good,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.18 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"21, Cannock Drive",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2016-07-18 14:54:50,unknown,1.0,1.0,10091193726.0,Address Matched +171536880202008101910365154289718,"29, Bedgebury Close",,,ME14 5QZ,3208282568,C,C,72,74,House,Semi-Detached,2008-10-19,E07000110,E14000804,Kent,2008-10-19,rental (private),72,73,201,193.0,2.6,33,2.5,65.0,35.0,349.0,355.0,77.0,77.0,78.0,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,2.0,3.0,3.0,14.0,0.0,From main system,Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 14% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,0.0,N,natural,"29, Bedgebury Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2008-10-19 10:36:51,rental (private),,,200003672028.0,Address Matched +1435884484632016042210113540278308,Flat 115,Miller Heights,43-51 Lower Stone Street,ME15 6LZ,8830314478,D,D,64,64,Flat,NO DATA!,2016-04-20,E07000110,E14000804,Kent,2016-04-22,none of the above,68,68,291,291.0,1.9,49,1.9,29.0,29.0,320.0,320.0,221.0,221.0,39.0,standard tariff,,top floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Very Poor,Poor,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.31 W/m-¦K,Good,Good,,,,Average thermal transmittance 0.16 W/m-¦K,Good,Good,"Boiler and radiators, electric",Very Poor,Very Poor,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"Flat 115, Miller Heights, 43-51 Lower Stone Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2016-04-22 10:11:35,unknown,6.0,6.0,10093302713.0,Address Matched +1590168338552017111621015290939452,Flat 4 Oxden Court,Pine Grove,Penenden Heath,ME14 2JH,4263805578,D,C,62,77,Flat,End-Terrace,2017-11-16,E07000110,E14000804,Kent,2017-11-16,marketed sale,61,82,392,181.0,2.0,69,0.9,30.0,30.0,389.0,188.0,76.0,69.0,29.0,Single,Y,Ground,N,,2106.0,0.0,not defined,Normal,0.0,1.0,1.0,75.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Single glazed,Very Poor,Very Poor,"Solid brick, as built, no insulation (assumed)",Poor,Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,5.67,,,N,natural,"Flat 4 Oxden Court, Pine Grove, Penenden Heath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2017-11-16 21:01:52,owner-occupied,,,200003704479.0,Address Matched +433271914552010021310525493000274,"1, Howland Villas",Howland Road,,TN12 9HG,2414432768,E,D,39,66,House,Semi-Detached,2010-02-08,E07000110,E14000804,Kent,2010-02-13,marketed sale,34,60,506,269.0,7.4,85,3.9,85.0,45.0,1032.0,601.0,211.0,113.0,74.76,Single,Y,NO DATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,2.0,5.0,4.0,11.0,0.0,"From main system, no cylinder thermostat",Poor,Average,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, mains gas",,,"Pitched, insulated at rafters",Poor,Poor,"Boiler and radiators, mains gas",Average,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 11% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.32,0.0,N,natural,"1, Howland Villas, Howland Road",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: before 1900,2010-02-13 10:52:54,owner-occupied,,,200003709987.0,Address Matched +351793910222009082521273926758231,"The Annex, Gore Court",Church Road,Otham,ME15 8RF,3295166668,D,C,68,72,Flat,Semi-Detached,2009-08-25,E07000110,E14000700,Kent,2009-08-25,rental (private),56,61,300,267.0,3.0,65,2.7,25.0,25.0,326.0,289.0,135.0,119.0,46.7,Single,N,Ground,Y,1.0,2104.0,0.0,single glazing,Normal,0.0,2.0,2.0,100.0,0.0,From main system,Average,Average,"Suspended, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Flat, insulated",Average,Average,"Boiler and radiators, oil",Average,Average,Programmer and room thermostat,Poor,Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,oil - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.4,0.0,N,natural,"The Annex, Gore Court, Church Road, Otham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1996-2002,2009-08-25 21:27:39,rental (private),,,10093306802.0,Address Matched +1551803949922017061316205952378363,"6, Button Lane",Bearsted,,ME15 8NJ,6592432578,D,B,68,86,House,Semi-Detached,2017-06-13,E07000110,E14000700,Kent,2017-06-13,marketed sale,67,85,244,94.0,2.5,43,1.0,70.0,41.0,404.0,385.0,128.0,74.0,57.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,29.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 29% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"6, Button Lane, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2017-06-13 16:20:59,owner-occupied,,,200003691623.0,Address Matched +529191709642010081819184179909188,"1, Whatman Close",,,ME14 5HX,7615709768,E,E,39,47,Bungalow,Detached,2010-08-18,E07000110,E14000804,Kent,2010-08-18,rental (private),39,46,459,388.0,6.3,75,5.3,79.0,44.0,1080.0,928.0,119.0,119.0,82.92,Single,Y,NO DATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,3.0,20.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,Portable electric heaters,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 20% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.45,0.0,N,natural,"1, Whatman Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2010-08-18 19:18:41,rental (private),,,200003716648.0,Address Matched +497109089022010060910172946818050,"63, Calder Road",,,ME14 2QG,5490876768,C,C,71,75,House,Mid-Terrace,2010-06-09,E07000110,E14000804,Kent,2010-06-09,rental (social),66,71,252,216.0,2.8,42,2.4,50.0,34.0,420.0,366.0,107.0,107.0,65.71,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,4.0,4.0,50.0,0.0,From main system,Very Good,Very Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.42,0.0,N,natural,"63, Calder Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2010-06-09 10:17:29,rental (social),,,200003670824.0,Address Matched +1366268519502015092112022233952298,The Presbytery,Bicknor Road,,ME15 9PS,6599819378,D,B,68,84,House,Detached,2015-09-21,E07000110,E14000700,Kent,2015-09-21,ECO assessment,59,79,200,95.0,7.5,35,3.6,95.0,95.0,1382.0,809.0,139.0,140.0,213.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,8.0,8.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 270 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"The Presbytery, Bicknor Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2015-09-21 12:02:22,rental (private),,,200003680160.0,Address Matched +873443739302013011815064507492428,"12, Howley Way",,,ME15 6ZU,1328834078,B,B,83,83,House,End-Terrace,2011-11-22,E07000110,E14000804,Kent,2013-01-18,rental (social) - this is for backwards compatibility only and should not be used,86,86,82,82.0,1.4,16,1.4,53.0,53.0,245.0,245.0,95.0,95.0,89.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.14 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.20 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.09 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"12, Howley Way",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2013-01-18 15:06:45,NO DATA!,0.0,0.0,10014313859.0,Address Matched +419755969962010011215420561628430,"63, Bryant Close",Nettlestead,,ME18 5EX,3602631768,C,B,79,81,Flat,Enclosed End-Terrace,2010-01-12,E07000110,E14000804,Kent,2010-01-12,rental (social),78,79,197,188.0,1.5,33,1.5,48.0,24.0,255.0,259.0,76.0,76.0,47.11,Single,Y,1st,Y,2.0,2106.0,100.0,double glazing installed before 2002,More Than Typical,0.0,2.0,2.0,0.0,0.0,From main system,Very Good,Very Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,unheated corridor,6.58,2.4,0.0,N,natural,"63, Bryant Close, Nettlestead",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2010-01-12 15:42:05,rental (social),,,200003657421.0,Address Matched +1197733029102014083118510022742718,Little Longend Cottage,Burtons Lane,Marden,TN12 9PN,9132827278,D,B,56,82,House,Detached,2014-08-29,E07000110,E14000804,Kent,2014-08-31,FiT application,47,76,229,87.0,6.2,52,2.5,66.0,66.0,1206.0,669.0,199.0,113.0,119.0,Single,N,NODATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,3.0,5.0,5.0,100.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, insulated at rafters",Average,Average,"Boiler and radiators, oil",Average,Average,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,oil (not community),0.0,NO DATA!,,,0.0,,natural,"Little Longend Cottage, Burtons Lane, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: before 1900,2014-08-31 18:51:00,owner-occupied,15.0,15.0,200003662013.0,Address Matched +313238590302009062523133062312558,"10, Penfold Close",,,ME15 9LU,1319193668,C,C,72,73,Flat,Semi-Detached,2009-06-25,E07000110,E14000700,Kent,2009-06-25,rental (social),68,69,250,243.0,2.5,42,2.5,51.0,29.0,365.0,369.0,76.0,76.0,60.2,Single,Y,Ground,N,2.0,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,25.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"System built, as built, no insulation (assumed)",Very Poor,Very Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 25% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.28,0.0,N,natural,"10, Penfold Close",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2009-06-25 23:13:30,rental (social),,,200003682527.0,Address Matched +218957125412009012216181008210559,Langdale,New Road,Headcorn,TN27 9SE,5992586568,D,D,57,68,House,Semi-Detached,2009-01-22,E07000110,E14000700,Kent,2009-01-22,rental (private),50,62,324,244.0,5.5,54,4.1,90.0,49.0,723.0,583.0,128.0,97.0,101.38,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,15.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, insulated at rafters",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 15% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.36,0.0,N,natural,"Langdale, New Road, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,England and Wales: 1950-1966,2009-01-22 16:18:10,rental (private),,,200003699915.0,Address Matched +317110220542009071015024866419608,Bowhill House Cottage,Bow Hill,Yalding,ME18 6AJ,1570124668,F,E,33,48,Bungalow,Detached,2009-07-10,E07000110,E14000804,Kent,2009-07-10,rental (private),32,37,649,578.0,6.6,98,5.9,70.0,35.0,721.0,600.0,213.0,119.0,67.37,dual,N,NO DATA!,,,2401.0,0.0,INVALID!,Normal,0.0,3.0,3.0,0.0,1.0,"Electric immersion, off-peak",Very Poor,Poor,"Solid, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, 100 mm loft insulation",Average,Average,Electric storage heaters,Poor,Very Poor,Manual charge control,Poor,Poor,No low energy lighting,Very Poor,Very Poor,electricity - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.44,0.0,N,natural,"Bowhill House Cottage, Bow Hill, Yalding",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2009-07-10 15:02:48,rental (private),,,200003721159.0,Address Matched +1377959409402015110211471044050328,9 Alexander Court,Mote Park,,ME15 8WY,7411100478,B,B,84,84,Flat,Mid-Terrace,2015-11-02,E07000110,E14000700,Kent,2015-11-02,new dwelling,87,87,86,86.0,1.2,15,1.2,59.0,59.0,205.0,205.0,101.0,101.0,82.0,standard tariff,,top floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.22 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.10 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and boiler energy manager",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"9 Alexander Court, Mote Park",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2015-11-02 11:47:10,unknown,8.0,8.0,10091195123.0,Address Matched +337061370222009073118330875018461,3 Abbey Court Cottages,Boarley Lane,Sandling,ME14 3BU,6772755668,E,D,50,56,House,Semi-Detached,2009-07-29,E07000110,E14000700,Kent,2009-07-31,marketed sale,50,55,378,335.0,5.1,57,4.5,75.0,44.0,849.0,769.0,100.0,100.0,100.36,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,2.0,5.0,5.0,30.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 30% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.37,0.0,N,natural,"3 Abbey Court Cottages, Boarley Lane, Sandling",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2009-07-31 18:33:08,owner-occupied,,,200003672430.0,Address Matched +843169569432014112416454175978390,"9, Church Road",Grafty Green,,ME17 2BA,6025322078,E,D,52,68,House,Semi-Detached,2014-11-19,E07000110,E14000700,Kent,2014-11-24,assessment for green deal,58,73,263,163.0,4.0,43,2.4,57.0,57.0,869.0,775.0,274.0,183.0,93.0,Single,N,NODATA!,,,2206.0,100.0,double glazing installed during or after 2002,Normal,2.0,5.0,5.0,100.0,1.0,From main system,Poor,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,"Room heaters, wood logs",,,"Pitched, limited insulation (assumed)",Poor,Poor,"Air source heat pump, radiators, electric",Average,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,NO DATA!,,,0.0,,natural,"9, Church Road, Grafty Green",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1976-1982,2014-11-24 16:45:41,rental (social),10.0,10.0,200003703714.0,Address Matched +1726784231152019091217210999910362,Flat 5 Forster Place,"1, Sears Grove",Otham,ME15 8YZ,3267194678,B,B,84,84,Flat,Detached,2019-09-12,E07000110,E14000700,Kent,2019-09-12,new dwelling,88,88,81,81.0,1.0,14,1.0,65.0,65.0,181.0,181.0,71.0,71.0,73.0,standard tariff,,top floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.19 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Flat 5 Forster Place, 1, Sears Grove, Otham",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2019-09-12 17:21:09,owner-occupied,10.0,10.0,10094440668.0,Address Matched +667105059962012021013330459808812,"8, Manor Rise",Bearsted,,ME14 4DB,1557539868,D,D,64,64,House,Detached,2012-02-10,E07000110,E14000700,Kent,2012-02-10,marketed sale,67,67,154,154.0,12.0,27,12.0,155.0,155.0,2685.0,2685.0,168.0,168.0,231.77,Single,N,NODATA!,,,2207.0,100.0,double glazing installed during or after 2002,Normal,0.0,11.0,11.0,73.0,0.0,"From main system, plus solar",Average,Good,"Suspended, insulated (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Roof room(s), insulated (assumed)",Good,Good,"Air source heat pump, underfloor, electric",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in 73% of fixed outlets,Very Good,Very Good,electricity (not community),0.0,NO DATA!,,2.99,0.0,,"mechanical, supply and extract","8, Manor Rise, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2007 onwards,2012-02-10 13:33:04,owner-occupied,44.0,32.0,10014313503.0,Address Matched +1816136332102020080616485677100668,"8, Eynsford Road",,,ME16 0TD,8188931778,D,B,66,85,Bungalow,Semi-Detached,2020-08-06,E07000110,E14000804,Kent,2020-08-06,marketed sale,68,87,258,87.0,2.2,42,0.7,45.0,45.0,458.0,386.0,73.0,48.0,52.0,Single,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,"Room heaters, wood logs",,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"8, Eynsford Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2020-08-06 16:48:56,owner-occupied,,,200003662075.0,Address Matched +1066ce508a8fcc58ec75981127a3e9a64f4bdb88eb3ca7b68f3598bcdc22a1ba,42 THOMAS PLACE,JAMES WHATMAN WAY,,ME14 1FP,2830358868,B,B,82,82,Flat,Mid-Terrace,2021-07-20,E07000110,E14000804,Kent,2021-07-28,rental,86,86,108,108.0,1.0,19,1.0,50.0,50.0,133.0,133.0,100.0,100.0,51.0,Single,N,07,N,,,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,100.0,0.0,Community scheme,Good,Good,(another dwelling below),,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Very Good,Very Good,,,,(another dwelling above),,,Community scheme,Good,Good,"Flat rate charging, programmer and room thermostat",Poor,Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (community),0.0,unheated corridor,7.07,2.39,0.0,N,natural,"42 THOMAS PLACE, JAMES WHATMAN WAY",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2012 onwards,2021-07-28 10:13:46,Rented (social),7.0,,10014312708.0,Energy Assessor +1304907389052015040110141598050231,Apartment 2 Idenden House,Medway Street,,ME14 1JS,2179984378,C,C,79,79,Flat,End-Terrace,2015-04-01,E07000110,E14000804,Kent,2015-04-01,new dwelling,84,84,141,141.0,0.9,25,0.9,26.0,26.0,191.0,191.0,74.0,74.0,36.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.24 W/m-¦K,Good,Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.23 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Apartment 2 Idenden House, Medway Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2015-04-01 10:14:15,owner-occupied,12.0,12.0,10091193910.0,Address Matched +1504416109922016121320312219478836,"14, Mote Road",,,ME15 6EP,3122009478,C,C,79,79,Maisonette,Mid-Terrace,2016-12-13,E07000110,E14000804,Kent,2016-12-13,rental (private),82,82,140,140.0,1.2,25,1.2,37.0,37.0,222.0,222.0,82.0,82.0,48.0,off-peak 10 hour,,NODATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.22 W/m-¦K,Good,Good,Fully double glazed,Good,Good,Average thermal transmittance 0.29 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"14, Mote Road",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2016-12-13 20:31:22,rental (private),7.0,7.0,10093304789.0,Address Matched +767442458112012032920125698220091,"28a, Manor Rise",Bearsted,,ME14 4DB,189886968,D,D,58,65,House,Detached,2012-03-29,E07000110,E14000700,Kent,2012-03-29,marketed sale,51,59,235,193.0,9.4,45,7.8,140.0,82.0,1471.0,1261.0,158.0,129.0,202.32,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,3.0,10.0,10.0,29.0,1.0,From main system,Good,Good,"Solid, limited insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, mains gas",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 29% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,2.4,0.0,,natural,"28a, Manor Rise, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1996-2002,2012-03-29 20:12:56,owner-occupied,34.0,10.0,200003692968.0,Address Matched +ba07714ece6d42d49e5c86ba2a88209303beab35e2a575bb5528b56b098695a7,9 Hedley Street,,,ME14 1UG,10001586649,D,B,67,84,House,Mid-Terrace,2021-09-20,E07000110,E14000804,Kent,2021-09-20,rental,63,82,226,92.0,3.1,40,1.3,65.0,65.0,531.0,421.0,92.0,63.0,79.0,Single,Y,,,,,100.0,double glazing installed during or after 2002,Normal,1.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.01,0.0,N,natural,9 Hedley Street,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2021-09-20 11:31:35,Rented (private),25.0,,200003698940.0,Energy Assessor +659801149022011080511133818258429,Tumbleweeds,Dairy Lane,Marden,TN12 9ST,2181488868,D,C,68,71,House,End-Terrace,2011-08-05,E07000110,E14000804,Kent,2011-08-05,marketed sale,58,62,185,168.0,4.6,45,4.2,93.0,52.0,565.0,539.0,166.0,156.0,102.67,Single,N,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,6.0,6.0,20.0,0.0,From main system,Average,Average,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, oil",Average,Average,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 20% of fixed outlets,Poor,Poor,oil (not community),0.0,NO DATA!,,2.3,0.0,,natural,"Tumbleweeds, Dairy Lane, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: before 1900,2011-08-05 11:13:38,owner-occupied,15.0,3.0,200003721973.0,Address Matched +1078518199842014100915135017840318,"466, Loose Road",,,ME15 9UA,2817298178,D,C,63,75,House,Detached,2014-10-09,E07000110,E14000804,Kent,2014-10-09,rental (private),57,69,188,128.0,7.9,36,5.4,147.0,93.0,1485.0,1226.0,139.0,139.0,218.0,Single,Y,NODATA!,,,2106.0,0.0,not defined,Normal,0.0,9.0,9.0,38.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 38% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"466, Loose Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2014-10-09 15:13:50,rental (private),16.0,6.0,200003680253.0,Address Matched +1461276329062016071106232825288726,"5, Queen Anne Road",,,ME14 1HB,2207295478,G,B,16,81,House,End-Terrace,2016-07-08,E07000110,E14000804,Kent,2016-07-11,marketed sale,15,79,697,106.0,11.0,123,1.8,94.0,60.0,2296.0,571.0,106.0,73.0,93.0,Single,Y,NODATA!,,,2601.0,35.0,"double glazing, unknown install date",Normal,2.0,5.0,1.0,42.0,0.0,Gas multipoint,Average,Average,"To unheated space, no insulation (assumed)",NO DATA!,,Partial double glazing,Poor,Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, electric",,,"Roof room(s), no insulation (assumed)",Very Poor,Very Poor,"Room heaters, mains gas",Average,Average,No thermostatic control of room temperature,Poor,Poor,Low energy lighting in 42% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,2.58,,N,natural,"5, Queen Anne Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2016-07-11 06:23:28,owner-occupied,,,200003688163.0,Address Matched +598016320212012080220161593020189,"71, Lower Road",,,ME15 7RH,1975034868,D,B,67,85,House,Mid-Terrace,2012-08-02,E07000110,E14000804,Kent,2012-08-02,non marketed sale,69,87,192,63.0,2.5,36,0.9,64.0,38.0,386.0,356.0,136.0,72.0,69.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,33.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 33% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"71, Lower Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2012-08-02 20:16:15,owner-occupied,9.0,3.0,200003695302.0,Address Matched +1635970239502018053015503953887908,11 Chestnut Road,Allington,,ME16 9FR,3524238578,B,A,83,95,House,Detached,2018-05-30,E07000110,E14000804,Kent,2018-05-30,new dwelling,85,97,90,4.0,1.3,16,0.1,57.0,57.0,216.0,216.0,85.0,46.0,83.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,"From main system, waste water heat recovery",Very Good,Very Good,Average thermal transmittance 0.20 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"11 Chestnut Road, Allington",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2018-05-30 15:50:39,unknown,29.0,29.0,10093306547.0,Address Matched +690037499902011101417461196099648,"8, Bychurch Place",Waterloo Street,,ME15 7UQ,8955690968,D,C,68,72,Flat,Semi-Detached,2011-10-14,E07000110,E14000804,Kent,2011-10-14,rental (social),70,74,226,195.0,2.1,43,1.8,50.0,29.0,314.0,308.0,127.0,98.0,48.29,Unknown,Y,1st,N,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,29.0,0.0,From main system,Good,Good,"To external air, uninsulated (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, partial insulation (assumed)",Average,Average,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 29% of fixed outlets,Average,Average,mains gas (not community),0.0,unheated corridor,1.2,2.39,0.0,,natural,"8, Bychurch Place, Waterloo Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1976-1982,2011-10-14 17:46:11,rental (social),7.0,2.0,200003696684.0,Address Matched +1191223789702014081623152222649968,"20, Radnor Close",,,ME14 2PW,1758486278,C,C,79,80,Flat,End-Terrace,2014-08-16,E07000110,E14000804,Kent,2014-08-16,marketed sale,82,83,112,108.0,1.4,21,1.4,63.0,48.0,245.0,247.0,116.0,116.0,66.0,Single,Y,Ground,N,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,67.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 67% of fixed outlets,Good,Good,mains gas (not community),0.0,unheated corridor,1.15,,0.0,,natural,"20, Radnor Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2014-08-16 23:15:22,owner-occupied,6.0,4.0,10022897047.0,Address Matched +635813119702011053113044282797798,"50, Cranborne Avenue",,,ME15 7EE,2740517868,E,D,50,58,House,Semi-Detached,2011-05-31,E07000110,E14000700,Kent,2011-05-31,marketed sale,46,54,363,297.0,4.6,70,3.8,64.0,36.0,766.0,647.0,78.0,78.0,66.14,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,5.0,5.0,22.0,9.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 22% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,2.38,0.0,,natural,"50, Cranborne Avenue",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1900-1929,2011-05-31 13:04:42,owner-occupied,9.0,2.0,200003715524.0,Address Matched +785701458312012050822153391020594,"21, The Chenies",,,ME15 6EE,5479818968,C,C,72,76,Flat,Detached,2012-05-08,E07000110,E14000804,Kent,2012-05-08,marketed sale,74,79,171,138.0,1.8,33,1.5,69.0,36.0,303.0,274.0,82.0,72.0,56.0,Unknown,Y,2nd,Y,,2107.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,10.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 10% of fixed outlets,Poor,Poor,mains gas (not community),0.0,unheated corridor,6.6,,0.0,,natural,"21, The Chenies",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2012-05-08 22:15:33,owner-occupied,10.0,1.0,10022895757.0,Address Matched +891578569842013030120262701572488,"11, Conway Road",,,ME16 0HD,8867565078,D,C,60,76,House,Detached,2013-02-28,E07000110,E14000804,Kent,2013-03-01,marketed sale,54,72,207,120.0,7.2,40,4.3,145.0,75.0,1176.0,882.0,117.0,118.0,180.0,Single,Y,NODATA!,,,2106.0,48.0,secondary glazing,Normal,2.0,8.0,8.0,4.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Partial secondary glazing,Poor,Poor,"Cavity wall, filled cavity",Good,Good,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 4% of fixed outlets,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"11, Conway Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2013-03-01 20:26:27,owner-occupied,23.0,1.0,200003659146.0,Address Matched +1756596609402019100822330269710988,Bridfel,The Street,Bredhurst,ME7 3LJ,1490907678,E,C,49,74,House,Semi-Detached,2019-10-08,E07000110,E14000700,Kent,2019-10-08,marketed sale,40,65,317,160.0,9.5,56,4.8,165.0,94.0,1552.0,1035.0,182.0,76.0,169.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,25.0,0.0,From main system,Average,Average,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,"Room heaters, mains gas",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 25% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"Bridfel, The Street, Bredhurst",Maidstone,Faversham and Mid Kent,GILLINGHAM,England and Wales: 1950-1966,2019-10-08 22:33:02,owner-occupied,,,200003731602.0,Address Matched +1009272291732013091718452465978603,"58, Castle Road",,,ME16 0PP,9325693178,D,B,65,84,House,Semi-Detached,2013-09-16,E07000110,E14000804,Kent,2013-09-17,FiT application,63,83,201,77.0,3.7,39,1.4,94.0,54.0,575.0,465.0,157.0,74.0,95.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,1.0,6.0,6.0,25.0,0.0,"From main system, no cylinder thermostat",Average,Average,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 25% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"58, Castle Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2013-09-17 18:45:24,owner-occupied,8.0,2.0,200003660259.0,Address Matched +1457975291812016062920201197260240,"23, Boughton Lane",,,ME15 9QN,2078175478,C,B,73,84,House,Semi-Detached,2016-06-29,E07000110,E14000804,Kent,2016-06-29,marketed sale,70,81,171,96.0,3.4,30,1.9,94.0,67.0,561.0,531.0,153.0,115.0,112.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,2.0,7.0,7.0,60.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 60% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,2.41,,N,natural,"23, Boughton Lane",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2016-06-29 20:20:11,owner-occupied,,,200003677924.0,Address Matched +92644979742010053109554842602698,"8, Kerry Hill Way",,,ME14 2GZ,2785076468,C,C,71,79,House,End-Terrace,2010-05-21,E07000110,E14000804,Kent,2010-05-31,marketed sale,69,76,209,158.0,3.2,35,2.5,103.0,51.0,397.0,359.0,177.0,118.0,67.3,Single,Y,NO DATA!,,,2107.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,0.0,0.0,"From main system, no cylinder thermostat",Average,Average,"Suspended, insulated (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.5,0.0,N,natural,"8, Kerry Hill Way",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2010-05-31 09:55:48,owner-occupied,,,10022896273.0,Address Matched +1025789689962015051317483735678515,"5, Somerset Road",,,ME15 7EJ,1380815178,D,C,55,72,House,Semi-Detached,2015-05-13,E07000110,E14000700,Kent,2015-05-13,none of the above,51,68,299,183.0,5.1,52,3.2,97.0,60.0,1003.0,870.0,109.0,72.0,98.0,Single,Y,NODATA!,,,2103.0,100.0,"double glazing, unknown install date",Normal,1.0,6.0,6.0,38.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"System built, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, electric",,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,Room thermostat only,Poor,Poor,Low energy lighting in 38% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"5, Somerset Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2015-05-13 17:48:37,owner-occupied,,,200003711318.0,Address Matched +ba3e18f230e3e4c16a907328f3787dbe3c2c8933aa372575e8f22f7c4a23fb72,51 THOMAS PLACE,JAMES WHATMAN WAY,,ME14 1FP,9051358868,C,C,79,79,Flat,Enclosed End-Terrace,2021-07-21,E07000110,E14000804,Kent,2021-07-28,rental,80,80,135,135.0,1.5,24,1.5,62.0,62.0,214.0,214.0,108.0,108.0,65.0,Single,N,08,Y,,,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,Community scheme,Good,Good,(another dwelling below),,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Very Good,Very Good,,,,"Flat, insulated (assumed)",Good,Good,Community scheme,Good,Good,"Flat rate charging, programmer and room thermostat",Poor,Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (community),0.0,unheated corridor,8.26,2.39,0.0,N,natural,"51 THOMAS PLACE, JAMES WHATMAN WAY",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2012 onwards,2021-07-28 15:41:37,Rented (social),7.0,,10014312717.0,Energy Assessor +110088379922010081615321608468120,"1, The Gardens",Stockett Lane,Coxheath,ME17 4PU,2062748468,C,C,73,74,Flat,Semi-Detached,2010-08-16,E07000110,E14000804,Kent,2010-08-16,marketed sale,69,70,253,248.0,2.2,42,2.2,45.0,28.0,374.0,377.0,82.0,82.0,52.9,Single,Y,Ground,N,2.0,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,40.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 40% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.39,0.0,N,natural,"1, The Gardens, Stockett Lane, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2010-08-16 15:32:16,owner-occupied,,,200003715304.0,Address Matched +ba6756c1f9131b39266037b06c2ffe9f32a44c00ba59d546f83c78bb8d5e4363,Flat 162,Scotney Gardens,St. Peters Street,ME16 0GT,10001684661,B,B,82,82,Flat,Mid-Terrace,2021-09-24,E07000110,E14000804,Kent,2021-09-25,rental,71,71,232,232.0,1.8,39,1.8,51.0,51.0,165.0,165.0,162.0,162.0,47.0,Unknown,N,01,N,,,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,100.0,0.0,"Electric immersion, off-peak",Average,Poor,"To external air, insulated (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,Portable electric heaters (assumed),,,(another dwelling above),,,Electric storage heaters,Average,Very Poor,Automatic charge control,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,heated corridor,,2.3,0.0,N,natural,"Flat 162, Scotney Gardens, St. Peters Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007-2011,2021-09-25 01:35:34,Rented (private),6.0,,10022893529.0,Energy Assessor +363489139902013121115585463779408,"87, Plains Avenue",,,ME15 7AR,4935937668,D,B,62,85,House,Semi-Detached,2013-12-10,E07000110,E14000700,Kent,2013-12-11,none of the above,59,85,226,72.0,3.7,43,1.2,77.0,49.0,639.0,421.0,108.0,80.0,84.0,Single,Y,NODATA!,,,2107.0,100.0,"double glazing, unknown install date",Normal,1.0,4.0,4.0,44.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 200mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 44% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"87, Plains Avenue",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2013-12-11 15:58:54,owner-occupied,9.0,4.0,200003714172.0,Address Matched +276915974832018042417352206268301,1 Ashurst Cottages,Forsham Lane,Chart Sutton,ME17 3ER,7116331668,E,B,39,91,House,Semi-Detached,2018-04-23,E07000110,E14000700,Kent,2018-04-24,rental (private),33,76,333,17.0,6.6,88,1.9,59.0,59.0,666.0,466.0,150.0,124.0,75.0,dual,N,NODATA!,,,2104.0,56.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,100.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Partial double glazing,Poor,Poor,"Solid brick, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, oil",Average,Average,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,oil (not community),0.0,NO DATA!,,,,N,natural,"1 Ashurst Cottages, Forsham Lane, Chart Sutton",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2018-04-24 17:35:22,rental (private),,,200003690236.0,Address Matched +1662859791832018091209031726978408,"15, Great Threads",Staplehurst,,TN12 0FJ,9876420678,B,A,84,93,House,Detached,2018-09-12,E07000110,E14000804,Kent,2018-09-12,new dwelling,85,94,84,22.0,1.7,15,0.5,73.0,73.0,266.0,267.0,99.0,54.0,116.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.28 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.15 W/m-¦K,Good,Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"15, Great Threads, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,NO DATA!,2018-09-12 09:03:17,unknown,10.0,10.0,10093304242.0,Address Matched +656801419922011101417492148848359,Flat 14 Tennyson Lodge,James Whatman Way,,ME14 1FR,5468168868,C,B,80,81,Flat,End-Terrace,2011-10-14,E07000110,E14000804,Kent,2011-10-14,new dwelling,90,91,99,95.0,0.8,13,0.7,45.0,34.0,188.0,190.0,99.0,99.0,57.9,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,4.0,,"Community scheme, no cylinder thermostat",Good,Very Good,(other premises below),,,Fully double glazed,Good,Good,Average thermal transmittance 0.26 W/m?K,Very Good,Very Good,,,,(other premises above),,,Community scheme,Good,Very Good,"Flat rate charging, programmer and TRVs",Average,Average,Low energy lighting in 67% of fixed outlets,Good,Good,NO DATA!,0.0,NO DATA!,,2.4,,,NO DATA!,"Flat 14 Tennyson Lodge, James Whatman Way",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2011-10-14 17:49:21,,6.0,4.0,10014312736.0,Address Matched +1510048238312018120512314693089041,Lilly Hoo House,Whetsted Road,Five Oak Green,TN12 6PZ,148839478,E,C,40,70,House,Semi-Detached,2018-12-04,E07000110,E14000804,Kent,2018-12-05,rental,57,80,170,67.0,6.0,37,2.6,90.0,90.0,1432.0,841.0,173.0,113.0,162.0,Unknown,N,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,8.0,8.0,100.0,0.0,From main system,Poor,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, LPG",Poor,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,LPG (not community),0.0,NO DATA!,,,,N,natural,"Lilly Hoo House, Whetsted Road, Five Oak Green",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: before 1900,2018-12-05 12:31:46,owner-occupied,,,10022897680.0,Address Matched +1658979199842018082809235751982388,"7, Smith Way",Headcorn,,TN27 9EQ,5888799578,B,A,88,94,House,Detached,2018-08-28,E07000110,E14000700,Kent,2018-08-28,new dwelling,88,94,59,22.0,2.1,10,0.8,101.0,101.0,306.0,308.0,104.0,57.0,198.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.12 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.16 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.18 W/m-¦K,Good,Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"7, Smith Way, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,NO DATA!,2018-08-28 09:23:57,owner-occupied,15.0,15.0,10093306435.0,Address Matched +1684111202832018120614090939078192,"5, Covert Way",,,ME16 9FN,229181678,B,B,88,90,House,End-Terrace,2018-12-06,E07000110,E14000804,Kent,2018-12-06,new dwelling,91,94,51,33.0,0.6,9,0.4,47.0,47.0,168.0,168.0,86.0,54.0,63.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.18 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"5, Covert Way",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2018-12-06 14:09:09,unknown,20.0,20.0,10093303580.0,Address Matched +329956236552009072017570000210963,"25, Alkham Road",,,ME14 5PA,9311605668,D,B,65,81,Flat,Detached,2009-07-20,E07000110,E14000804,Kent,2009-07-20,rental (private),59,79,305,158.0,3.3,50,1.7,56.0,34.0,440.0,265.0,160.0,98.0,65.59,Single,Y,1st,Y,2.0,2104.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,33.0,1.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 25mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Poor,Poor,Low energy lighting in 33% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.39,0.0,N,natural,"25, Alkham Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2009-07-20 17:57:00,rental (private),,,200003716222.0,Address Matched +202019248312008121722532407989051,Flat 9 Laker House,Canning Street,,ME14 2RX,139875568,E,E,49,53,Flat,Enclosed End-Terrace,2008-12-17,E07000110,E14000804,Kent,2008-12-17,rental (private),53,56,391,370.0,3.9,59,3.7,65.0,32.0,165.0,150.0,425.0,425.0,65.48,Unknown,N,2nd,Y,3.0,2104.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,0.0,0.0,From main system,Very Good,Poor,(other premises below),,,Fully double glazed,Good,Good,"Timber frame, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, electric",Very Poor,Poor,Programmer and room thermostat,Poor,Poor,No low energy lighting,Very Poor,Very Poor,electricity - this is for backwards compatibility only and should not be used,0.0,heated corridor,,2.31,0.0,N,natural,"Flat 9 Laker House, Canning Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2008-12-17 22:53:24,rental (private),,,200003661465.0,Address Matched +597152329942014022812254080449538,22 Sunningdale Court,Square Hill Road,,ME15 7TT,9978024868,C,C,70,77,Flat,End-Terrace,2014-02-17,E07000110,E14000804,Kent,2014-02-28,none of the above,72,82,202,133.0,1.9,39,1.2,31.0,31.0,336.0,236.0,125.0,100.0,48.0,Single,Y,3rd,N,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,100.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,4.529,,0.0,,natural,"22 Sunningdale Court, Square Hill Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2014-02-28 12:25:40,rental (social),5.0,5.0,200003696553.0,Address Matched +447024769022010030209581273598660,Flat 1,31-32 Marsham Street,,ME14 1HG,6763623768,C,C,70,72,Flat,Detached,2010-03-01,E07000110,E14000804,Kent,2010-03-02,marketed sale,66,66,264,258.0,3.3,40,3.2,105.0,60.0,272.0,284.0,147.0,147.0,82.18,off-peak 7 hour,,NO DATA!,,,2403.0,,NO DATA!,NO DATA!,,,,,0.0,"Electric immersion, off-peak",Average,Poor,Average thermal transmittance 0.14 W/m?K,Very Good,Very Good,Partial double glazing,Poor,Poor,Average thermal transmittance 0.49 W/m?K,Good,Good,"Room heaters, electric",,,(other premises above),,,Electric storage heaters,Average,Poor,Celect control,Good,Good,Low energy lighting in 25% of fixed outlets,Average,Average,"Electricity: electricity, unspecified tariff",0.0,NO DATA!,,2.25,,,NO DATA!,"Flat 1, 31-32 Marsham Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2010-03-02 09:58:12,,,,10014312297.0,Address Matched +946329659062013060720274669438217,"5, Barham Mews",Teston,,ME18 5BL,1609559078,E,C,50,75,Flat,End-Terrace,2013-06-07,E07000110,E14000804,Kent,2013-06-07,marketed sale,43,65,362,210.0,5.4,64,3.1,59.0,61.0,791.0,338.0,210.0,126.0,84.0,dual,N,Ground,N,,2401.0,0.0,not defined,Normal,0.0,5.0,5.0,96.0,0.0,"Electric immersion, off-peak",Very Poor,Very Poor,"Solid, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Solid brick, as built, insulated (assumed)",Good,Good,Portable electric heaters (assumed),,,(another dwelling above),,,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 96% of fixed outlets,Very Good,Very Good,electricity (not community),0.0,no corridor,,,0.0,,natural,"5, Barham Mews, Teston",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2013-06-07 20:27:46,owner-occupied,25.0,24.0,10022892636.0,Address Matched +221178850452009020413462203010752,"9, Cornflower Close",Weavering,,ME14 5UL,7275037568,E,D,54,68,House,Detached,2009-02-04,E07000110,E14000700,Kent,2009-02-04,marketed sale,52,67,272,189.0,8.2,45,5.6,179.0,89.0,1073.0,810.0,199.0,144.0,181.8,Single,Y,NO DATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,1.0,7.0,7.0,0.0,0.0,From main system,Average,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Average,Good,Programmer and room thermostat,Poor,Poor,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.32,0.0,N,natural,"9, Cornflower Close, Weavering",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2009-02-04 13:46:22,owner-occupied,,,200003687896.0,Address Matched +761627069262012032217312366628802,"52, Yew Tree Close",,,ME5 8XN,695646968,D,C,61,72,House,Mid-Terrace,2012-03-22,E07000110,E14000700,Kent,2012-03-22,marketed sale,59,72,262,175.0,3.6,50,2.4,71.0,40.0,556.0,389.0,122.0,109.0,70.9,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,22.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 22% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,2.32,0.0,,natural,"52, Yew Tree Close",Maidstone,Faversham and Mid Kent,CHATHAM,England and Wales: 1967-1975,2012-03-22 17:31:23,owner-occupied,9.0,2.0,200003676779.0,Address Matched +1404119689542016011908571948169818,"13, Bridger Way",,,ME17 3FE,4566781478,B,A,84,96,House,Mid-Terrace,2016-01-19,E07000110,E14000700,Kent,2016-01-19,new dwelling,87,99,85,-3.0,1.2,15,0.0,55.0,55.0,217.0,217.0,85.0,50.0,79.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"13, Bridger Way",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2016-01-19 08:57:19,unknown,1.0,1.0,10091194047.0,Address Matched +229734420962009021918273908218401,Apartment 45 Sandling Park,Sandling Lane,,ME14 2NY,29218568,C,B,75,83,Flat,Detached,2009-02-19,E07000110,E14000804,Kent,2009-02-19,rental (private),78,78,193,192.0,1.8,29,1.7,57.0,35.0,185.0,108.0,118.0,118.0,60.26,dual,N,2nd,N,4.0,2603.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,35.0,0.0,"Electric immersion, off-peak",Average,Poor,(other premises below),,,Fully double glazed,Good,Good,"System built, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Room heaters, electric",Very Poor,Poor,Programmer and appliance thermostats,Good,Good,Low energy lighting in 35% of fixed outlets,Average,Average,electricity - this is for backwards compatibility only and should not be used,0.0,unheated corridor,8.629,2.38,0.0,N,natural,"Apartment 45 Sandling Park, Sandling Lane",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2009-02-19 18:27:39,rental (private),,,10014307141.0,Address Matched +1125438190212014041414482592940428,"23, Dorset Way",,,ME15 7ER,4890022278,C,B,73,86,House,Semi-Detached,2014-04-14,E07000110,E14000700,Kent,2014-04-14,marketed sale,73,86,147,63.0,2.6,28,1.2,65.0,65.0,461.0,418.0,120.0,80.0,92.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,80.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"23, Dorset Way",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2014-04-14 14:48:25,owner-occupied,10.0,8.0,200003711386.0,Address Matched +1111891239222014032711392371198254,Flat 7,2 Albion Place,,ME14 5DY,5780321278,C,C,75,77,Flat,End-Terrace,2014-03-21,E07000110,E14000804,Kent,2014-03-27,marketed sale,70,71,237,228.0,1.9,42,1.8,66.0,33.0,217.0,228.0,131.0,131.0,44.0,Unknown,N,3rd,Y,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,0.0,0.0,From main system,Average,Very Poor,(other premises below),,,Fully double glazed,Good,Good,"Timber frame, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, electric",Poor,Very Poor,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,electricity (not community),0.0,no corridor,,,0.0,,natural,"Flat 7, 2 Albion Place",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2014-03-27 11:39:23,owner-occupied,5.0,0.0,10091194249.0,Address Matched +20085935412018122111520794989944,Flat 2 Holmes Court,Lynley Close,,ME15 9GA,9443549468,C,C,80,80,Flat,Semi-Detached,2018-10-16,E07000110,E14000700,Kent,2018-12-21,rental (social),83,83,118,118.0,1.3,21,1.3,51.0,51.0,213.0,213.0,98.0,98.0,63.0,Single,Y,Ground,Y,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Very Good,Very Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,1.0,,,N,natural,"Flat 2 Holmes Court, Lynley Close",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2007 onwards,2018-12-21 11:52:07,rental (social),,,10022895323.0,Address Matched +641478159542015061716300280759538,"19, Chervilles",,,ME16 9JF,9538457868,D,C,56,70,House,Semi-Detached,2015-06-17,E07000110,E14000804,Kent,2015-06-17,marketed sale,57,71,250,168.0,6.5,37,4.2,176.0,92.0,1391.0,1238.0,169.0,88.0,173.0,dual,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,7.0,7.0,10.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, wood logs",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 10% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"19, Chervilles",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2015-06-17 16:30:02,owner-occupied,,,200003686923.0,Address Matched +597201229902013081123045786470918,"27, Bryant Close",Nettlestead,,ME18 5EX,945324868,C,B,78,89,House,Mid-Terrace,2013-08-09,E07000110,E14000804,Kent,2013-08-11,marketed sale,79,91,116,39.0,1.8,22,0.7,53.0,53.0,371.0,343.0,54.0,53.0,82.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,90.0,0.0,"From main system, plus solar",Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 90% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"27, Bryant Close, Nettlestead",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2013-08-11 23:04:57,owner-occupied,10.0,9.0,200003657271.0,Address Matched +577056889222018122111511672668928,"2, Buckland Gardens",,,ME16 0ZB,2722852868,C,C,78,79,Flat,Semi-Detached,2018-09-26,E07000110,E14000804,Kent,2018-12-21,rental (social),80,82,124,116.0,1.6,22,1.5,57.0,57.0,275.0,258.0,104.0,104.0,72.0,Single,Y,Ground,Y,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,100.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"System built, as built, insulated (assumed)",Very Good,Very Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,14.0,,,N,"mechanical, extract only","2, Buckland Gardens",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2018-12-21 11:51:16,rental (social),,,10014308658.0,Address Matched +1817389382922020081209563931328650,Flat 26 Ulysses House,Rosalind Drive,,ME14 2FL,5373841778,B,B,84,84,Flat,Mid-Terrace,2020-08-12,E07000110,E14000804,Kent,2020-08-12,new dwelling,88,88,81,81.0,1.0,14,1.0,61.0,61.0,157.0,157.0,95.0,95.0,69.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.45 W/m-¦K,Good,Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Flat 26 Ulysses House, Rosalind Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2020-08-12 09:56:39,unknown,14.0,14.0,10094441414.0,Address Matched +366972046512019030416030396010766,Flat 41 Lee Heights,Bambridge Court,,ME14 2LG,7644667668,C,C,72,80,Flat,Enclosed End-Terrace,2019-03-04,E07000110,E14000804,Kent,2019-03-04,rental (private),69,69,196,199.0,2.7,33,2.7,65.0,72.0,417.0,272.0,215.0,189.0,80.0,dual,N,3rd,Y,,2602.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,100.0,0.0,"Electric immersion, off-peak",Poor,Poor,(another dwelling below),NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Room heaters, electric",Very Poor,Poor,Appliance thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,heated corridor,,,,N,natural,"Flat 41 Lee Heights, Bambridge Court",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2019-03-04 16:03:03,rental (private),,,10022893012.0,Address Matched +1358395678532015082719475353278403,"24b, Selby Road",,,ME15 9PT,7383468378,B,A,83,96,House,NO DATA!,2015-08-27,E07000110,E14000700,Kent,2015-08-27,new dwelling,87,98,88,0.0,1.2,15,0.0,58.0,58.0,216.0,216.0,93.0,58.0,78.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.18 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"24b, Selby Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2015-08-27 19:47:53,unknown,10.0,10.0,10014315759.0,Address Matched +843169529042015031611595809259578,"9, Church Road",Grafty Green,,ME17 2BA,6025322078,D,B,55,84,House,Semi-Detached,2015-03-13,E07000110,E14000700,Kent,2015-03-16,RHI application,60,85,252,81.0,4.1,43,1.3,101.0,59.0,412.0,369.0,652.0,227.0,96.0,Single,N,NODATA!,,,2207.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,30.0,0.0,"From main system, no cylinder thermostat",Very Poor,Poor,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, wood logs",,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Air source heat pump, radiators, electric",Good,Very Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in 30% of fixed outlets,Average,Average,electricity (not community),0.0,NO DATA!,,,,N,natural,"9, Church Road, Grafty Green",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1976-1982,2015-03-16 11:59:58,rental (social),,,200003703714.0,Address Matched +1726321589252019060600210898010066,The Woolshed Street Farm,The Street,Boxley,ME14 3DR,644984678,D,A,62,104,Bungalow,Semi-Detached,2019-06-05,E07000110,E14000700,Kent,2019-06-06,marketed sale,66,103,247,-53.0,2.6,42,-0.6,51.0,51.0,560.0,568.0,232.0,132.0,62.0,Unknown,N,NODATA!,,,2207.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,From main system,Poor,Good,"Solid, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Timber frame, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Air source heat pump, underfloor, electric",Poor,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,NO DATA!,,,,N,natural,"The Woolshed Street Farm, The Street, Boxley",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2003-2006,2019-06-06 00:21:08,owner-occupied,,,10014315131.0,Address Matched +1142615649142014051811473628349368,"15, Leybourne Close",,,ME5 9JN,8145043278,D,B,68,82,House,Detached,2014-05-16,E07000110,E14000700,Kent,2014-05-18,marketed sale,65,81,180,87.0,3.6,35,1.8,74.0,59.0,668.0,520.0,102.0,102.0,104.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,6.0,6.0,75.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, partial insulation (assumed)",Average,Average,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"15, Leybourne Close",Maidstone,Faversham and Mid Kent,CHATHAM,England and Wales: 1976-1982,2014-05-18 11:47:36,owner-occupied,12.0,9.0,200003708485.0,Address Matched +1503791739062016120922541598288076,"79, South Park Road",,,ME15 7AL,7929398478,C,B,72,86,House,Mid-Terrace,2016-12-08,E07000110,E14000700,Kent,2016-12-09,rental (social),71,85,190,87.0,2.3,33,1.1,75.0,48.0,417.0,420.0,99.0,66.0,70.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,44.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 44% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"79, South Park Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1900-1929,2016-12-09 22:54:15,rental (social),,,200003715882.0,Address Matched +690293440932011101719273474968099,"81, Lacock Gardens",,,ME15 6GT,4994001968,C,C,73,77,House,Semi-Detached,2011-10-17,E07000110,E14000804,Kent,2011-10-17,marketed sale,74,78,153,131.0,2.6,29,2.2,100.0,50.0,403.0,377.0,88.0,89.0,88.9,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,0.0,0.0,From main system,Good,Good,"Suspended, insulated (assumed)",,,Fully double glazed,Average,Average,"Timber frame, as built, insulated (assumed)",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,2.4,0.0,,natural,"81, Lacock Gardens",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2011-10-17 19:27:34,owner-occupied,11.0,0.0,10012891062.0,Address Matched +340939430062009100210533075128651,24 Tennison Way,,,ME15 9GE,5770385668,C,B,80,83,House,Mid-Terrace,2009-10-02,E07000110,E14000700,Kent,2009-10-02,new dwelling,80,81,131,123.0,2.3,22,2.2,101.0,56.0,304.0,310.0,113.0,113.0,107.75,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,3.0,,From main system,Very Good,Very Good,Average thermal transmittance 0.27 W/m?K,Good,Good,Fully double glazed,Average,Average,Average thermal transmittance 0.45 W/m?K,Good,Good,,,,Average thermal transmittance 0.22 W/m?K,Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 20% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,,,NO DATA!,24 Tennison Way,Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2009-10-02 10:53:30,,15.0,3.0,10022895425.0,Address Matched +602380839062011030918591724118689,"70, McKenzie Court",,,ME14 1JU,8298364868,B,B,83,83,Flat,Detached,2011-03-09,E07000110,E14000804,Kent,2011-03-09,rental (private),80,80,196,196.0,1.4,30,1.4,32.0,32.0,105.0,105.0,119.0,119.0,47.78,dual,N,2nd,N,5.0,2401.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,100.0,0.0,"Electric immersion, off-peak",Average,Poor,(other premises below),,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,(another dwelling above),,,Electric storage heaters,Poor,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity - this is for backwards compatibility only and should not be used,0.0,heated corridor,,2.25,0.0,N,"mechanical, extract only","70, McKenzie Court",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2011-03-09 18:59:17,rental (private),,,10014306677.0,Address Matched +1537999839042017042409253757132848,"43, Fullingpits Avenue",,,ME16 9DZ,3001631578,B,B,89,90,House,Detached,2017-04-24,E07000110,E14000804,Kent,2017-04-24,new dwelling,89,90,53,43.0,1.5,9,1.3,82.0,82.0,314.0,315.0,112.0,61.0,163.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.18 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"43, Fullingpits Avenue",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2017-04-24 09:25:37,unknown,20.0,20.0,10093303447.0,Address Matched +1440868649502016050611523148460368,Green Meadows,The Street,Teston,ME18 5AQ,4526844478,D,C,63,80,Bungalow,Detached,2016-05-06,E07000110,E14000804,Kent,2016-05-06,marketed sale,57,76,250,128.0,4.4,44,2.3,109.0,63.0,801.0,645.0,113.0,76.0,100.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,27.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 27% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,2.39,,N,natural,"Green Meadows, The Street, Teston",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2016-05-06 11:52:31,owner-occupied,,,200003661899.0,Address Matched +615005429062011040721113025358489,Tudor Cottage,Green Lane,Boughton Monchelsea,ME17 4LF,8254265868,C,C,74,76,House,Detached,2011-04-05,E07000110,E14000700,Kent,2011-04-07,marketed sale,75,75,157,152.0,4.1,24,4.0,144.0,96.0,645.0,654.0,162.0,162.0,171.05,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,2.0,7.0,7.0,50.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Timber frame, as built, insulated (assumed)",Very Good,Very Good,"Room heaters, wood logs",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.1,0.0,N,natural,"Tudor Cottage, Green Lane, Boughton Monchelsea",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2011-04-07 21:11:30,owner-occupied,,,200003709723.0,Address Matched +baf5824de9501e86be210005ac53e4a85a4b45e7fcb35f74a1454dcbb443bb7c,12 Oak Lane,Headcorn,,TN27 9TP,10001353169,F,B,33,83,House,Mid-Terrace,2021-08-17,E07000110,E14000700,Kent,2021-08-19,marketed sale,20,62,658,216.0,8.4,111,2.8,125.0,70.0,1480.0,598.0,355.0,117.0,76.0,Unknown,N,,,,,100.0,"double glazing, unknown install date",Normal,1.0,5.0,3.0,22.0,1.0,"Electric immersion, off-peak",Very Poor,Poor,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, electric",,,"Pitched, 200 mm loft insulation",Good,Good,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 22% of fixed outlets,Poor,Poor,electricity (not community),0.0,,,2.8,0.0,N,natural,"12 Oak Lane, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,England and Wales: before 1900,2021-08-19 17:31:04,Owner-occupied,9.0,,200003699467.0,Energy Assessor +1787566732502020022517014869902948,"31, Albany Street",,,ME14 5AJ,558339678,F,B,26,89,Bungalow,End-Terrace,2020-02-24,E07000110,E14000804,Kent,2020-02-25,marketed sale,36,74,478,155.0,5.7,81,1.9,115.0,63.0,1473.0,410.0,415.0,108.0,70.0,Single,N,NODATA!,,,2699.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,0.0,0.0,0.0,"Electric immersion, standard tariff",Very Poor,Poor,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, partial insulation (assumed)",Average,Average,,,,"Roof room(s), limited insulation (assumed)",Average,Average,No system present: electric heaters assumed,Very Poor,Poor,,Very Poor,Very Poor,No low energy lighting,Very Poor,Very Poor,To be used only when there is no heating/hot-water system,0.0,NO DATA!,,,,N,natural,"31, Albany Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1976-1982,2020-02-25 17:01:48,owner-occupied,,,200003704999.0,Address Matched +1116073159942014032807455022142938,"11, Warden Close",,,ME16 0JL,1925351278,B,A,84,93,Bungalow,Detached,2014-03-27,E07000110,E14000804,Kent,2014-03-28,marketed sale,80,91,80,24.0,1.6,17,0.6,92.0,55.0,667.0,535.0,122.0,81.0,96.0,Unknown,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,2.0,6.0,6.0,33.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 33% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,40.0,,natural,"11, Warden Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2014-03-28 07:45:50,owner-occupied,9.0,3.0,200003656808.0,Address Matched +508536169102010070313394070700578,1 Lewis Row Cottages,Hermitage Lane,Boughton Monchelsea,ME17 4DA,7109067768,F,D,33,55,House,End-Terrace,2010-07-03,E07000110,E14000700,Kent,2010-07-03,marketed sale,25,44,482,308.0,9.0,105,5.7,66.0,44.0,1151.0,718.0,202.0,144.0,85.29,Single,N,NO DATA!,,,2102.0,100.0,double glazing installed before 2002,Normal,1.0,4.0,4.0,50.0,2.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, oil",Average,Average,"Programmer, no room thermostat",Very Poor,Very Poor,Low energy lighting in 50% of fixed outlets,Good,Good,oil - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,0.0,N,natural,"1 Lewis Row Cottages, Hermitage Lane, Boughton Monchelsea",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2010-07-03 13:39:40,owner-occupied,,,200003679746.0,Address Matched +1675746929832018110620152269078990,Flat 4,"63, Brewer Street",,ME14 1RY,2099911678,D,C,58,74,Flat,Semi-Detached,2018-11-02,E07000110,E14000804,Kent,2018-11-06,rental (social),52,73,317,172.0,4.0,56,2.2,110.0,55.0,657.0,391.0,109.0,73.0,72.0,Unknown,Y,Ground,N,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,3.0,3.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,no corridor,,,,N,natural,"Flat 4, 63, Brewer Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2018-11-06 20:15:22,rental (social),,,200003728309.0,Address Matched +1686992109802019010711524569210238,Flat 8 Lenworth House,"4, Ashford Road",,ME14 5GP,3849102678,B,B,82,82,Flat,Detached,2019-01-07,E07000110,E14000700,Kent,2019-01-07,new dwelling,85,85,102,102.0,1.1,18,1.1,48.0,48.0,185.0,185.0,80.0,80.0,61.0,standard tariff,,top floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Flat 8 Lenworth House, 4, Ashford Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2019-01-07 11:52:45,unknown,5.0,5.0,10093306601.0,Address Matched +566971289842011072520540686192258,"35, Chancery Lane",,,ME15 6EG,6866081868,D,C,66,71,House,Mid-Terrace,2011-07-25,E07000110,E14000804,Kent,2011-07-25,marketed sale,66,72,206,167.0,3.3,39,2.7,78.0,45.0,569.0,480.0,88.0,88.0,83.9,Single,Y,NODATA!,,,2106.0,33.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,25.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Partial double glazing,Poor,Poor,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 25% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,2.44,0.0,,natural,"35, Chancery Lane",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2011-07-25 20:54:06,owner-occupied,16.0,4.0,200003691129.0,Address Matched +1677387719062019100910010591718278,Flat 7,Kent House,Romney Place,ME15 6LA,7995131678,D,D,58,58,Flat,Detached,2018-11-09,E07000110,E14000804,Kent,2019-10-09,non marketed sale,62,62,380,380.0,2.0,64,2.0,28.0,28.0,433.0,433.0,229.0,229.0,32.0,standard tariff,,ground floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,"Electric immersion, standard tariff",Very Poor,Poor,Average thermal transmittance 0.33 W/m-¦K,Average,Average,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.32 W/m-¦K,Good,Good,,,,(other premises above),,,Electric underfloor heating,Very Poor,Poor,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"Flat 7, Kent House, Romney Place",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2019-10-09 10:01:05,unknown,21.0,21.0,10094442249.0,Address Matched +66513855312010120618455596009241,3 Hertsfield Oast,Staplehurst Road,Marden,TN12 9BW,2158564468,D,C,68,76,House,Semi-Detached,2010-12-06,E07000110,E14000804,Kent,2010-12-06,marketed sale,66,73,185,147.0,7.0,31,5.6,285.0,142.0,873.0,764.0,237.0,191.0,218.5,dual,Y,NO DATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,7.0,7.0,0.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Solid brick, with internal insulation",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.35,0.0,N,natural,"3 Hertsfield Oast, Staplehurst Road, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: before 1900,2010-12-06 18:45:55,owner-occupied,,,200003674168.0,Address Matched +bb11acce27ecdeea925a7a841ff2b6c4932e74e4693e2880bfb9d05361d9e3a1,92 MELROSE CLOSE,,,ME15 6ZE,10001629127,C,C,78,79,House,Mid-Terrace,2021-07-26,E07000110,E14000804,Kent,2021-07-26,rental,80,82,114,100.0,2.0,20,1.8,96.0,96.0,359.0,360.0,110.0,71.0,100.0,Single,Y,,,,,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,83.0,0.0,From main system,Good,Good,"Suspended, insulated (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 83% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.28,15.0,N,natural,92 MELROSE CLOSE,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2021-07-26 09:30:03,Rented (private),12.0,,10014307073.0,Energy Assessor +398116380242009111613142566919868,27 Oxford Gardens,,,ME15 8FJ,8209289668,C,C,76,76,House,Mid-Terrace,2009-11-16,E07000110,E14000700,Kent,2009-11-16,new dwelling,83,83,125,123.0,1.8,19,1.7,58.0,48.0,227.0,228.0,179.0,179.0,92.98,standard tariff,,NO DATA!,,,2207.0,,NO DATA!,NO DATA!,,,,4.0,0.0,From main system,Poor,Good,Average thermal transmittance 0.18 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.28 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.12 W/m?K,Very Good,Very Good,"Air source heat pump, underfloor, electric",Average,Very Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",0.0,NO DATA!,,2.4,,,NO DATA!,27 Oxford Gardens,Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2009-11-16 13:14:25,,5.0,4.0,10014308966.0,Address Matched +968500327012015011811520090950815,"1, Hampshire Drive",,,ME15 7EU,8599701178,E,C,43,79,House,Semi-Detached,2015-01-18,E07000110,E14000700,Kent,2015-01-18,none of the above,36,73,428,146.0,7.5,76,2.6,60.0,60.0,1349.0,696.0,178.0,76.0,99.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,1.0,5.0,5.0,100.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"1, Hampshire Drive",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2015-01-18 11:52:00,owner-occupied,,,200003711432.0,Address Matched +1598134639262017122913114445118323,"31, Little Buckland Avenue",,,ME16 0BG,2499365578,E,C,41,76,House,Semi-Detached,2017-12-29,E07000110,E14000804,Kent,2017-12-29,marketed sale,34,70,419,152.0,7.2,74,2.6,108.0,64.0,1173.0,662.0,189.0,73.0,97.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,2.0,5.0,4.0,30.0,1.0,From main system,Average,Average,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, mains gas",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 30% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"31, Little Buckland Avenue",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2017-12-29 13:11:44,owner-occupied,,,200003670145.0,Address Matched +1577917119902017092707292155432368,"5, Halstow Close",,,ME15 9XA,955914578,D,B,55,86,House,Semi-Detached,2017-09-26,E07000110,E14000804,Kent,2017-09-27,marketed sale,51,87,337,73.0,4.2,59,0.9,60.0,60.0,759.0,387.0,156.0,69.0,71.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,78.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Roof room(s), ceiling insulated",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 78% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"5, Halstow Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2017-09-27 07:29:21,owner-occupied,,,200003675598.0,Address Matched +1796644672062020041409360719218190,9 Tumim House,16 Fairmeadow,,ME14 1JP,9135799678,C,C,76,78,Flat,Mid-Terrace,2020-04-09,E07000110,E14000804,Kent,2020-04-14,rental (social),74,75,262,247.0,1.4,44,1.3,43.0,43.0,102.0,110.0,258.0,224.0,32.0,dual,N,3rd,Y,,2401.0,100.0,double glazing installed during or after 2002,Normal,0.0,1.0,1.0,80.0,0.0,"Electric immersion, off-peak",Very Poor,Poor,(another dwelling below),NO DATA!,,Fully double glazed,Good,Good,"Timber frame, as built, insulated (assumed)",Good,Good,,,,"Flat, insulated (assumed)",Good,Good,Electric storage heaters,Poor,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,electricity (not community),0.0,heated corridor,0.0,,,N,natural,"9 Tumim House, 16 Fairmeadow",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2020-04-14 09:36:07,rental (social),,,10014309961.0,Address Matched +824302199542012081400360403029878,"11, Newington Walk",,,ME14 5RJ,1598090078,D,B,64,88,House,End-Terrace,2012-08-13,E07000110,E14000804,Kent,2012-08-14,marketed sale,63,90,237,46.0,2.6,45,0.6,57.0,34.0,466.0,335.0,76.0,52.0,58.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,1.0,4.0,4.0,33.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 33% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"11, Newington Walk",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2012-08-14 00:36:04,owner-occupied,9.0,3.0,200003725223.0,Address Matched +1152070119062014060520351284658414,Lombard,The Street,Stockbury,ME9 7UD,1801114278,D,B,59,84,Bungalow,Semi-Detached,2014-06-05,E07000110,E14000700,Kent,2014-06-05,none of the above,47,75,223,79.0,5.7,53,2.4,100.0,60.0,973.0,646.0,174.0,109.0,106.0,Single,N,NODATA!,,,2107.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,33.0,1.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, oil",Average,Average,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 33% of fixed outlets,Average,Average,oil (not community),0.0,NO DATA!,,,0.0,,natural,"Lombard, The Street, Stockbury",Maidstone,Faversham and Mid Kent,SITTINGBOURNE,England and Wales: 1950-1966,2014-06-05 20:35:12,owner-occupied,12.0,4.0,200003732615.0,Address Matched +bb32bda46becfa1c859762019551ac1f1a8e7c3f9c4d94628a8deb702ce7c4d3,12 AMSHURST VILLAS,GALLANTS LANE,EAST FARLEIGH,ME15 0LQ,10001347181,D,C,63,78,House,End-Terrace,2021-08-04,E07000110,E14000804,Kent,2021-08-05,marketed sale,55,70,185,94.0,4.3,48,2.7,73.0,73.0,490.0,444.0,118.0,79.0,90.0,Unknown,N,,,,,100.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,100.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Average,Average,"Boiler and radiators, oil",Average,Average,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,oil (not community),0.0,,,2.41,0.0,N,natural,"12 AMSHURST VILLAS, GALLANTS LANE, EAST FARLEIGH",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2021-08-05 09:33:38,Owner-occupied,8.0,,200003656977.0,Energy Assessor +813963519642012071921260403029088,"13, Northdown Close",Penenden Heath,,ME14 2ER,2624810078,C,B,75,86,House,Semi-Detached,2012-07-18,E07000110,E14000804,Kent,2012-07-19,marketed sale,74,87,134,59.0,2.6,26,1.2,57.0,57.0,444.0,406.0,89.0,64.0,100.0,dual,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"13, Northdown Close, Penenden Heath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2012-07-19 21:26:04,owner-occupied,8.0,8.0,200003706615.0,Address Matched +719071473612011112714591890299692,"18, Durham Close",,,ME15 8DT,6267303968,C,C,70,71,Flat,Semi-Detached,2011-11-27,E07000110,E14000700,Kent,2011-11-27,rental (social),72,73,205,200.0,2.0,39,1.9,41.0,29.0,353.0,354.0,74.0,74.0,50.13,Single,Y,Ground,N,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,60.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 60% of fixed outlets,Good,Good,mains gas (not community),0.0,no corridor,,2.43,0.0,,natural,"18, Durham Close",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2011-11-27 14:59:18,rental (social),5.0,3.0,200003685683.0,Address Matched +1099047239042014022814515822042068,13 Hawley Court,London Road,,ME16 8QJ,7098330278,C,C,69,78,Flat,Mid-Terrace,2014-02-26,E07000110,E14000804,Kent,2014-02-28,none of the above,71,82,212,129.0,1.8,40,1.1,48.0,30.0,356.0,244.0,90.0,75.0,45.0,Single,Y,1st,N,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,40.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 40% of fixed outlets,Average,Average,mains gas (not community),0.0,unheated corridor,9.527,,0.0,,natural,"13 Hawley Court, London Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2014-02-28 14:51:58,rental (social),5.0,2.0,200003668445.0,Address Matched +1058056895652014030108234894240819,Sutton Place,Sutton Road,,ME15 9DU,8941547178,E,C,50,74,House,Detached,2014-02-28,E07000110,E14000700,Kent,2014-03-01,none of the above,43,69,258,128.0,11.0,50,5.6,176.0,100.0,1989.0,1258.0,198.0,97.0,225.0,dual,Y,NODATA!,,,2504.0,100.0,double glazing installed before 2002,Normal,1.0,7.0,7.0,25.0,0.0,"From main system, no cylinder thermostat",Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 50 mm loft insulation",Poor,Poor,"Warm air, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 25% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"Sutton Place, Sutton Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2014-03-01 08:23:48,owner-occupied,20.0,5.0,200003681209.0,Address Matched +1558459289102017071012010859239308,"7, Acorn Close",,,ME16 8FX,3173182578,B,A,85,96,House,Mid-Terrace,2017-07-10,E07000110,E14000804,Kent,2017-07-10,new dwelling,88,99,76,-4.0,1.1,13,0.0,60.0,60.0,202.0,202.0,79.0,45.0,86.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.10 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"7, Acorn Close",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2017-07-10 12:01:08,owner-occupied,10.0,10.0,10093303856.0,Address Matched +319950519132019112216534785268690,Bridge House,Collier Street,,TN12 9SD,1085634668,E,C,47,78,House,Detached,2019-11-21,E07000110,E14000804,Kent,2019-11-22,marketed sale,40,71,241,86.0,7.1,63,3.0,116.0,78.0,858.0,495.0,147.0,80.0,113.0,Single,N,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,5.0,5.0,50.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, oil",Average,Average,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,oil (not community),0.0,NO DATA!,,,,N,natural,"Bridge House, Collier Street",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1930-1949,2019-11-22 16:53:47,owner-occupied,,,10014308925.0,Address Matched +1096714119802014022515042226042248,"18, School Lane",Platts Heath,,ME17 2NU,6845510278,B,B,82,89,House,Semi-Detached,2014-02-24,E07000110,E14000700,Kent,2014-02-25,FiT application,69,80,95,51.0,2.8,30,1.7,67.0,67.0,590.0,459.0,217.0,118.0,95.0,Single,N,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,80.0,1.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,"Room heaters, coal",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, oil",Average,Average,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,oil (not community),0.0,NO DATA!,,,,,natural,"18, School Lane, Platts Heath",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2014-02-25 15:04:22,owner-occupied,10.0,8.0,200003703798.0,Address Matched +1758318199962019101510551047058741,"4, Coleman Way",,,ME17 3TS,4462917678,B,A,84,96,House,Semi-Detached,2019-10-15,E07000110,E14000700,Kent,2019-10-15,new dwelling,86,98,90,2.0,1.2,16,0.1,63.0,63.0,213.0,213.0,71.0,42.0,78.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"4, Coleman Way",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2019-10-15 10:55:10,unknown,7.0,7.0,10094441814.0,Address Matched +1480930582052017072414582993230146,"13, Hop Pocket Way",Headcorn,,TN27 9AF,1657237478,B,A,83,95,House,Semi-Detached,2017-07-24,E07000110,E14000700,Kent,2017-07-24,new dwelling,86,97,89,8.0,1.3,16,0.2,59.0,59.0,231.0,231.0,81.0,48.0,86.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.26 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.10 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"13, Hop Pocket Way, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,NO DATA!,2017-07-24 14:58:29,unknown,20.0,20.0,10093302561.0,Address Matched +929041245732013051320505623078005,"59, Hengist Court",Marsham Street,,ME14 1BU,4523038078,C,C,76,79,Flat,Mid-Terrace,2013-05-09,E07000110,E14000804,Kent,2013-05-13,marketed sale,64,66,310,290.0,2.1,55,1.9,54.0,27.0,169.0,154.0,103.0,103.0,38.0,dual,N,3rd,Y,,2401.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,0.0,0.0,"Electric immersion, off-peak",Average,Very Poor,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,"Pitched, insulated (assumed)",Average,Average,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,No low energy lighting,Very Poor,Very Poor,electricity (not community),0.0,heated corridor,,,0.0,,natural,"59, Hengist Court, Marsham Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2013-05-13 20:50:56,owner-occupied,6.0,0.0,200003688738.0,Address Matched +1529584059222017060509545850108573,"7, College Walk",,,ME15 6PA,7524570578,E,B,44,84,Bungalow,Detached,2017-03-20,E07000110,E14000804,Kent,2017-06-05,rental (private),46,66,441,248.0,3.9,74,2.2,38.0,42.0,853.0,451.0,169.0,78.0,53.0,dual,N,NODATA!,,,2602.0,100.0,"double glazing, unknown install date",More Than Typical,0.0,3.0,3.0,100.0,0.0,Electric instantaneous at point of use,Very Poor,Poor,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Flat, insulated",Good,Good,"Room heaters, electric",Very Poor,Poor,Appliance thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,NO DATA!,,,,N,natural,"7, College Walk",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2017-06-05 09:54:58,rental (private),,,200003728537.0,Address Matched +506358142902020070111291972700398,4 Fairfax Court,Church Street,,ME14 1BJ,3953447768,C,C,69,79,Flat,Semi-Detached,2020-07-01,E07000110,E14000804,Kent,2020-07-01,marketed sale,66,81,222,126.0,2.7,39,1.5,58.0,59.0,482.0,261.0,93.0,94.0,70.0,Unknown,Y,2nd,Y,,2106.0,0.0,not defined,Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,(another dwelling below),NO DATA!,,Single glazed,Very Poor,Very Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,6.7,,,N,natural,"4 Fairfax Court, Church Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2020-07-01 11:29:19,owner-occupied,,,10014306345.0,Address Matched +333147099812009072512275502210661,Bell House,East Street,Harrietsham,ME17 1HJ,6105925668,F,E,28,51,House,Semi-Detached,2009-07-25,E07000110,E14000700,Kent,2009-07-25,rental (private),25,44,506,320.0,17.0,84,11.0,255.0,128.0,2361.0,1573.0,279.0,161.0,166.84,Single,Y,NO DATA!,,,2104.0,0.0,INVALID!,Normal,2.0,7.0,7.0,0.0,2.0,"From main system, no cylinderstat",Poor,Average,"Suspended, no insulation (assumed)",,,Partial secondary glazing,Poor,Poor,"Granite or whin, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Average,Good,Programmer and room thermostat,Poor,Poor,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.48,0.0,N,natural,"Bell House, East Street, Harrietsham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2009-07-25 12:27:55,rental (private),,,200003703978.0,Address Matched +992421889702013081922053810279818,"21, Bramshott Close",,,ME16 0RX,3792082178,E,B,42,88,Bungalow,Detached,2013-08-19,E07000110,E14000804,Kent,2013-08-19,marketed sale,39,89,406,51.0,5.1,78,0.7,70.0,40.0,826.0,358.0,197.0,68.0,66.0,Single,Y,NODATA!,,,2102.0,44.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,25.0,0.0,"From main system, no cylinder thermostat",Poor,Poor,"Solid, no insulation (assumed)",,,Partial double glazing,Poor,Poor,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,Low energy lighting in 25% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"21, Bramshott Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2013-08-19 22:05:38,owner-occupied,8.0,2.0,200003659492.0,Address Matched +bb625ed71ed3093185ccfeec299e60df336b7b42c1a71c5fe4ba428d101ff6c6,EVEREST,LINTON HILL,LINTON,ME17 4AW,3677988868,D,A,63,97,House,Detached,2021-08-06,E07000110,E14000804,Kent,2021-08-06,rental,56,90,254,39.0,4.8,45,0.9,80.0,81.0,768.0,633.0,127.0,84.0,106.0,Unknown,Y,,,,,25.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Some double glazing,Poor,Poor,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, mains gas",,,"Pitched, insulated (assumed)",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.4,0.0,N,natural,"EVEREST, LINTON HILL, LINTON",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2021-08-06 15:47:59,Rented (private),8.0,,200003663122.0,Energy Assessor +838007089222012092122314831898842,"2, Iden Crescent",Staplehurst,,TN12 0NU,4342881078,C,B,69,84,Bungalow,Detached,2012-09-21,E07000110,E14000804,Kent,2012-09-21,marketed sale,67,83,172,76.0,3.4,33,1.6,110.0,55.0,520.0,448.0,124.0,86.0,105.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,5.0,5.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"2, Iden Crescent, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1950-1966,2012-09-21 22:31:48,owner-occupied,13.0,0.0,200003677106.0,Address Matched +1055097074952013120411532892079018,Flat 3,"87, Allen Street",,ME14 5AH,868427178,C,C,69,78,Flat,Semi-Detached,2013-12-03,E07000110,E14000804,Kent,2013-12-04,rental (private),73,85,240,137.0,1.5,46,0.8,33.0,22.0,311.0,199.0,64.0,66.0,32.0,Single,Y,1st,N,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,50.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,no corridor,,,0.0,,natural,"Flat 3, 87, Allen Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2013-12-04 11:53:28,rental (private),6.0,3.0,10022896920.0,Address Matched +546715999262010092910192650618450,"29, Georgian Drive",Coxheath,,ME17 4QT,5544920868,D,C,60,73,House,Detached,2010-09-29,E07000110,E14000804,Kent,2010-09-29,marketed sale,54,69,302,207.0,4.8,50,3.3,100.0,50.0,708.0,492.0,132.0,132.0,94.8,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.29,0.0,N,natural,"29, Georgian Drive, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2010-09-29 10:19:26,owner-occupied,,,200003714931.0,Address Matched +1807882400112020070619465428000876,2 Old School Cottages,Maidstone Road,Nettlestead,ME18 5HD,8660080778,C,B,72,89,House,Mid-Terrace,2020-07-06,E07000110,E14000804,Kent,2020-07-06,rental (private),72,90,208,55.0,1.9,37,0.6,53.0,53.0,353.0,311.0,81.0,54.0,53.0,Single,Y,NODATA!,,,2103.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,83.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Room thermostat only,Poor,Poor,Low energy lighting in 83% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"2 Old School Cottages, Maidstone Road, Nettlestead",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2020-07-06 19:46:54,rental (private),,,200003656978.0,Address Matched +272203980262009042321172660478311,"25, Highland Road",,,ME15 7QQ,1618890668,D,C,65,76,House,End-Terrace,2009-04-23,E07000110,E14000700,Kent,2009-04-23,rental (social),60,73,296,201.0,3.4,49,2.3,53.0,33.0,433.0,325.0,144.0,101.0,69.66,Unknown,Y,NO DATA!,,,2107.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,40.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Poor,Poor,Low energy lighting in 40% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.35,0.0,N,natural,"25, Highland Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2009-04-23 21:17:26,rental (social),,,200003680497.0,Address Matched +413986790102009122300315177019088,"59, Clifford Way",,,ME16 8GD,4132690768,B,B,87,88,Flat,Mid-Terrace,2009-12-18,E07000110,E14000804,Kent,2009-12-23,marketed sale,87,88,128,116.0,0.8,21,0.7,42.0,21.0,152.0,154.0,64.0,64.0,38.61,Single,Y,3rd,N,5.0,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,0.0,0.0,From main system,Very Good,Very Good,(other premises below),,,Fully double glazed,Good,Good,"Cavity wall, with internal insulation",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,heated corridor,,2.33,0.0,N,natural,"59, Clifford Way",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2009-12-23 00:31:51,owner-occupied,,,10022896072.0,Address Matched +909068289402013040511022603670558,Flat 4 Mauritius House,Balliol Grove,,ME15 9WQ,7445686078,B,B,84,84,Flat,Mid-Terrace,2013-04-05,E07000110,E14000700,Kent,2013-04-05,new dwelling,85,85,113,113.0,1.1,20,1.1,35.0,35.0,102.0,102.0,151.0,151.0,56.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Average,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.28 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.14 W/m?K,Very Good,Very Good,"Air source heat pump, radiators, electric",Average,Good,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"Flat 4 Mauritius House, Balliol Grove",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2013-04-05 11:02:26,NO DATA!,0.0,0.0,10014311672.0,Address Matched +480246415032010050518010608068308,2 Bicknor Oast,Bicknor Lane,Bicknor,ME9 8AX,1818365768,F,E,38,39,House,Semi-Detached,2010-05-05,E07000110,E14000700,Kent,2010-05-05,rental (private),58,60,203,194.0,5.5,41,5.3,137.0,68.0,1025.0,1050.0,264.0,264.0,132.2,Single,N,NO DATA!,,,2110.0,0.0,not defined,Normal,0.0,4.0,4.0,0.0,0.0,From main system,Poor,Good,"Suspended, insulated",,,Single glazed,Very Poor,Very Poor,"Solid brick, with internal insulation",Good,Good,,,,"Pitched, insulated at rafters",Poor,Poor,"Boiler and radiators, LPG",Poor,Good,Time and temperature zone control,Very Good,Very Good,No low energy lighting,Very Poor,Very Poor,LPG - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.3,0.0,N,natural,"2 Bicknor Oast, Bicknor Lane, Bicknor",Maidstone,Faversham and Mid Kent,SITTINGBOURNE,England and Wales: before 1900,2010-05-05 18:01:06,rental (private),,,10022900274.0,Address Matched +980324502012013072917144699270516,"12, Blacksmith Drive",Weavering,,ME14 5SZ,5696291178,E,B,50,89,House,Mid-Terrace,2013-07-29,E07000110,E14000700,Kent,2013-07-29,rental (private),46,91,329,41.0,4.8,64,0.6,54.0,54.0,681.0,311.0,287.0,79.0,75.0,Single,Y,NODATA!,,,2101.0,30.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,80.0,0.0,"From main system, no cylinder thermostat",Poor,Poor,"Solid, no insulation (assumed)",,,Some double glazing,Poor,Poor,"Cavity wall, as built, partial insulation (assumed)",Average,Average,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,No time or thermostatic control of room temperature,Very Poor,Very Poor,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"12, Blacksmith Drive, Weavering",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1976-1982,2013-07-29 17:14:46,rental (private),10.0,8.0,200003672958.0,Address Matched +688682299222012022710223590738932,"33, The Farrows",,,ME15 9ZJ,3974980968,B,B,81,81,Maisonette,NO DATA!,2012-02-27,E07000110,E14000700,Kent,2012-02-27,new dwelling,86,86,104,104.0,1.1,20,1.1,42.0,42.0,225.0,225.0,52.0,52.0,54.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,6.0,,"From main system, plus solar",Very Good,Very Good,Average thermal transmittance 0.15 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.31 W/m?K,Good,Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.7,,,NO DATA!,"33, The Farrows",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2012-02-27 10:22:35,,8.0,6.0,10014312567.0,Address Matched +1459426509022016070418330045248676,Oakdene Cottage,Maidstone Road,Sutton Valence,ME17 3LS,7422085478,D,B,55,82,House,Detached,2016-07-04,E07000110,E14000700,Kent,2016-07-04,marketed sale,35,60,492,250.0,6.4,83,3.3,62.0,62.0,855.0,553.0,161.0,93.0,77.0,dual,N,NODATA!,,,2401.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,100.0,0.0,"Electric immersion, off-peak",Average,Poor,"Solid, limited insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,"Pitched, 100 mm loft insulation",Average,Average,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,NO DATA!,,2.35,,N,natural,"Oakdene Cottage, Maidstone Road, Sutton Valence",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1996-2002,2016-07-04 18:33:00,owner-occupied,,,200003697233.0,Address Matched +1373336090452015102416472297959230,"18, Oak Tree Close",Marden,,TN12 9EW,2051079378,D,C,59,78,Flat,End-Terrace,2015-10-10,E07000110,E14000804,Kent,2015-10-24,ECO assessment,40,81,493,141.0,4.5,83,1.3,72.0,39.0,539.0,231.0,153.0,108.0,54.0,dual,Y,1st,Y,,2401.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,33.0,0.0,"Electric immersion, off-peak",Average,Poor,(another dwelling below),NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, partial insulation (assumed)",Average,Average,Portable electric heaters (assumed),,,"Pitched, limited insulation",Poor,Poor,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 33% of fixed outlets,Average,Average,electricity (not community),0.0,no corridor,,,,N,natural,"18, Oak Tree Close, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1976-1982,2015-10-24 16:47:22,owner-occupied,,,200003709435.0,Address Matched +1750570004752019091216092296910264,Flat 124 Scotney Gardens,St. Peters Street,,ME16 0GT,2435466678,C,C,71,76,Maisonette,Mid-Terrace,2019-09-12,E07000110,E14000804,Kent,2019-09-12,rental (private),56,61,252,222.0,4.3,43,3.8,110.0,88.0,579.0,461.0,210.0,210.0,101.0,Unknown,N,4th,Y,,2401.0,100.0,"double glazing, unknown install date",Normal,1.0,4.0,4.0,75.0,0.0,"Electric immersion, off-peak",Average,Poor,(another dwelling below),NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,"Pitched, insulated (assumed)",Good,Good,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,electricity (not community),0.0,unheated corridor,5.84,,,N,natural,"Flat 124 Scotney Gardens, St. Peters Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2019-09-12 16:09:22,rental (private),,,10022893491.0,Address Matched +488490629022014040917325076518204,"59, Heath Road",Coxheath,,ME17 4EQ,700226768,E,C,54,73,House,Detached,2014-04-09,E07000110,E14000804,Kent,2014-04-09,marketed sale,50,69,285,158.0,4.5,55,2.5,89.0,49.0,828.0,706.0,100.0,75.0,81.0,Single,Y,NODATA!,,,2106.0,5.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,17.0,2.0,From main system,Very Good,Good,"Suspended, no insulation (assumed)",,,Some double glazing,Very Poor,Very Poor,"Cavity wall, filled cavity",Good,Good,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 17% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"59, Heath Road, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2014-04-09 17:32:50,owner-occupied,12.0,2.0,200003672794.0,Address Matched +1387813220512015111913000597959946,"9, Heath Grove",,,ME16 9AS,9668070478,E,B,48,83,House,Semi-Detached,2015-11-18,E07000110,E14000804,Kent,2015-11-19,marketed sale,28,80,524,100.0,7.2,89,1.5,70.0,63.0,999.0,477.0,101.0,69.0,80.0,dual,Y,NODATA!,,,2402.0,100.0,double glazing installed before 2002,Normal,1.0,5.0,5.0,80.0,0.0,Gas multipoint,Average,Average,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 150 mm loft insulation",Good,Good,Electric storage heaters,Average,Very Poor,Automatic charge control,Average,Average,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,electricity (not community),0.0,NO DATA!,,,,N,natural,"9, Heath Grove",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2015-11-19 13:00:05,owner-occupied,,,200003676253.0,Address Matched +12289389202019011115124942719298,"74, Clifford Way",,,ME16 8GE,5273587468,B,B,82,82,Flat,Enclosed Mid-Terrace,2019-01-11,E07000110,E14000804,Kent,2019-01-11,rental (private),85,85,103,103.0,1.2,18,1.2,55.0,55.0,167.0,167.0,115.0,115.0,65.0,Unknown,Y,2nd,N,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,(another dwelling below),NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,heated corridor,,,,N,natural,"74, Clifford Way",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2019-01-11 15:12:49,rental (private),,,10022896087.0,Address Matched +1755987519062019100409275057748041,"8, Corbens Place",,,ME16 8FY,4558107678,B,B,81,90,House,End-Terrace,2019-10-04,E07000110,E14000804,Kent,2019-10-04,rental (private),80,90,104,40.0,2.0,18,0.8,80.0,80.0,323.0,323.0,96.0,65.0,108.0,Single,Y,NODATA!,,,2110.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Very Good,Very Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"8, Corbens Place",Maidstone,Maidstone and The Weald,MAIDSTONE,INVALID!,2019-10-04 09:27:50,rental (private),,,10094441528.0,Address Matched +1403464382532016011814303611978490,The Vicarage,Church Lane,Bearsted,ME14 4EF,8081481478,D,C,62,77,House,Detached,2015-12-17,E07000110,E14000700,Kent,2016-01-18,none of the above,48,66,229,130.0,6.9,48,4.2,117.0,78.0,1055.0,858.0,167.0,90.0,144.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,2.0,7.0,7.0,50.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,"Room heaters, smokeless fuel",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"The Vicarage, Church Lane, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2016-01-18 14:30:36,owner-occupied,,,200003692903.0,Address Matched +1158491640552014061910334495940824,"61, John Street",,,ME14 2SQ,8429054278,D,B,66,88,House,Mid-Terrace,2014-06-19,E07000110,E14000804,Kent,2014-06-19,marketed sale,64,88,200,51.0,3.2,39,0.9,56.0,56.0,617.0,380.0,100.0,76.0,84.0,dual,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,100.0,0.0,From main system,Very Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"61, John Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2014-06-19 10:33:44,owner-occupied,9.0,9.0,200003702867.0,Address Matched +65450459842015021216012349459028,"28, Alexandra Glen",Walderslade,,ME5 9EB,2875154468,C,B,69,88,House,Mid-Terrace,2015-02-12,E07000110,E14000700,Kent,2015-02-12,marketed sale,68,88,232,71.0,2.2,41,0.7,37.0,37.0,435.0,368.0,90.0,57.0,55.0,Single,Y,NODATA!,,,2107.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"28, Alexandra Glen, Walderslade",Maidstone,Faversham and Mid Kent,CHATHAM,England and Wales: 1983-1990,2015-02-12 16:01:23,owner-occupied,,,200003709180.0,Address Matched +1356165479222015082110335528798595,1 Hanover Cottages,Upper Street,Leeds,ME17 1SE,9231748378,B,A,83,93,House,Semi-Detached,2015-08-21,E07000110,E14000700,Kent,2015-08-21,new dwelling,84,94,92,23.0,1.6,16,0.4,61.0,61.0,293.0,293.0,101.0,65.0,100.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.16 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.20 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.12 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"1 Hanover Cottages, Upper Street, Leeds",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2015-08-21 10:33:55,unknown,17.0,17.0,10091194308.0,Address Matched +757138919222012032007080876008212,"32, Woodcut",Penenden Heath,,ME14 2EQ,1763116968,C,C,69,71,House,Semi-Detached,2012-03-20,E07000110,E14000804,Kent,2012-03-20,rental (social),70,71,190,181.0,2.7,36,2.6,76.0,42.0,429.0,433.0,101.0,101.0,74.92,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,More Than Typical,1.0,4.0,4.0,18.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 18% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,2.21,0.0,,natural,"32, Woodcut, Penenden Heath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2012-03-20 07:08:08,rental (social),11.0,2.0,200003707398.0,Address Matched +172747900832008102700361334268898,"11, Bychurch Place",Waterloo Street,,ME15 7UQ,874823568,C,B,72,82,Flat,End-Terrace,2008-10-25,E07000110,E14000804,Kent,2008-10-27,rental (private),69,80,257,166.0,2.3,43,1.5,45.0,26.0,256.0,199.0,119.0,79.0,54.5,Unknown,Y,2nd,N,3.0,2107.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,22.0,0.0,From main system,Average,Good,(other premises below),,,Fully double glazed,Average,Average,"Solid brick, as built, partial insulation (assumed)",Average,Average,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Average,Good,"Programmer, TRVs and bypass",Poor,Poor,Low energy lighting in 22% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,unheated corridor,0.91,2.31,0.0,N,natural,"11, Bychurch Place, Waterloo Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1976-1982,2008-10-27 00:36:13,rental (private),,,200003696650.0,Address Matched +1669545579102018101807055666089008,The Flat,Bearsted Golf Club,"Ware Street, Bearsted",ME14 4PQ,3172770678,D,C,67,75,Flat,End-Terrace,2018-10-10,E07000110,E14000700,Kent,2018-10-18,marketed sale,68,74,204,164.0,2.8,36,2.3,94.0,63.0,478.0,382.0,121.0,97.0,79.0,Unknown,Y,1st,N,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,50.0,0.0,Community scheme,Good,Good,(other premises below),NO DATA!,,Fully double glazed,Average,Average,"Timber frame, as built, insulated (assumed)",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,unheated corridor,4.0,,,N,natural,"The Flat, Bearsted Golf Club, Ware Street, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1996-2002,2018-10-18 07:05:56,owner-occupied,,,200003732784.0,Address Matched +181243350102008103122244852387798,Flat 80 Lee Heights,Bambridge Court,,ME14 2LD,7122853568,D,D,59,65,Flat,Enclosed End-Terrace,2008-10-31,E07000110,E14000804,Kent,2008-10-31,marketed sale,54,54,389,386.0,3.8,59,3.8,69.0,35.0,189.0,134.0,500.0,310.0,64.66,Unknown,N,4th,Y,5.0,2603.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,0.0,0.0,"Electric immersion, off-peak",Good,Poor,(other premises below),,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Room heaters, electric",Very Poor,Poor,Programmer and appliance thermostats,Good,Good,No low energy lighting,Very Poor,Very Poor,electricity - this is for backwards compatibility only and should not be used,0.0,unheated corridor,5.1,2.59,0.0,N,natural,"Flat 80 Lee Heights, Bambridge Court",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2008-10-31 22:24:48,owner-occupied,,,10022893051.0,Address Matched +bbde3b511562e7f384a2559645433c45104e888992c281cc3d7acdbfc1c4310f,9 KNOTT COURT,,,ME14 2XH,10001607562,D,B,67,86,House,Mid-Terrace,2021-06-26,E07000110,E14000804,Kent,2021-07-30,not sale or rental,64,85,226,75.0,2.9,40,1.0,75.0,75.0,475.0,361.0,125.0,76.0,74.0,Single,Y,,,,,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,80.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.6,0.0,N,natural,9 KNOTT COURT,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1991-1995,2021-07-30 15:03:22,Rented (social),10.0,,200003704730.0,Energy Assessor +820718135512012080622284696020409,1 Iden Court Mews,Frittenden Road,Staplehurst,TN12 0DH,4944560078,D,A,68,94,Bungalow,Semi-Detached,2012-08-01,E07000110,E14000804,Kent,2012-08-06,marketed sale,68,96,194,3.0,2.4,37,0.1,50.0,38.0,430.0,292.0,77.0,54.0,65.0,Single,Y,NODATA!,,,2106.0,0.0,single glazing,Normal,0.0,3.0,3.0,67.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 67% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"1 Iden Court Mews, Frittenden Road, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1976-1982,2012-08-06 22:28:46,owner-occupied,12.0,8.0,200003722811.0,Address Matched +bbe8a3cf396b6e580d8177c8957790ab04ae3000e0b2b38fddc78b3aae3aa423,46 PERRY STREET,,,ME14 2RP,10001494589,E,D,54,67,Flat,Mid-Terrace,2021-06-29,E07000110,E14000804,Kent,2021-07-01,ECO assessment,53,68,343,228.0,3.3,60,2.2,95.0,48.0,670.0,466.0,86.0,86.0,54.0,Single,Y,00,N,,,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,0.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,no corridor,,2.8,0.0,N,"mechanical, extract only",46 PERRY STREET,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2021-07-01 18:45:21,Rented (social),7.0,,200003669575.0,Energy Assessor +513272899042010071520554072709058,5 Chestnut House,Springwood Road,Barming,ME16 9PG,4039597768,C,B,75,81,Flat,Detached,2010-07-15,E07000110,E14000804,Kent,2010-07-15,rental (private),72,79,181,134.0,3.0,30,2.2,97.0,57.0,416.0,312.0,139.0,139.0,100.8,Single,Y,1st,Y,2.0,2106.0,100.0,double glazing installed before 2002,Normal,0.0,6.0,6.0,30.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, partial insulation (assumed)",Average,Average,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 30% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,unheated corridor,8.2,2.4,0.0,N,natural,"5 Chestnut House, Springwood Road, Barming",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1976-1982,2010-07-15 20:55:40,rental (private),,,200003697303.0,Address Matched +941252819342013053110545306972678,Flat 6,Villa Apartments,49 Lower Fant Road,ME16 8DP,3318419078,C,C,71,79,Flat,Semi-Detached,2013-05-23,E07000110,E14000804,Kent,2013-05-31,rental (private),73,84,183,113.0,1.8,35,1.1,64.0,32.0,330.0,230.0,70.0,71.0,52.0,Single,Y,1st,N,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,3.0,3.0,0.0,1.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,unheated corridor,3.47,,0.0,,natural,"Flat 6, Villa Apartments, 49 Lower Fant Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2013-05-31 10:54:53,rental (private),6.0,0.0,200003658052.0,Address Matched +1246960079342016110713454833060538,"10, Forstal Lane",Coxheath,,ME17 4QE,5310870378,D,B,65,82,House,Semi-Detached,2016-11-07,E07000110,E14000804,Kent,2016-11-07,marketed sale,66,84,220,102.0,3.8,34,1.6,103.0,68.0,731.0,596.0,196.0,88.0,113.0,Single,Y,NODATA!,,,2107.0,100.0,double glazing installed during or after 2002,Normal,0.0,6.0,6.0,50.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,"Room heaters, wood logs",,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,2.44,,N,natural,"10, Forstal Lane, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2016-11-07 13:45:48,owner-occupied,,,200003714630.0,Address Matched +566628628052010121222011597909886,"11, Iris Close",,,ME5 9QD,8673871868,C,C,76,78,House,Mid-Terrace,2010-11-18,E07000110,E14000700,Kent,2010-12-12,rental (private),76,77,190,183.0,1.9,31,1.8,56.0,32.0,306.0,311.0,108.0,108.0,60.54,Single,Y,NO DATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,25.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,Programmer and room thermostat,Average,Average,Low energy lighting in 25% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.3,0.0,N,natural,"11, Iris Close",Maidstone,Faversham and Mid Kent,CHATHAM,England and Wales: 1983-1990,2010-12-12 22:01:15,rental (private),,,200003708180.0,Address Matched +294412297852009061810351305910964,4 Hughenden Reach,Tovil,,ME15 6ZL,9424752668,B,B,85,86,Flat,NO DATA!,2009-06-18,E07000110,E14000804,Kent,2009-06-18,new dwelling,85,85,110,104.0,1.4,18,1.3,56.0,37.0,155.0,156.0,72.0,72.0,77.8,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,4.0,,From main system,Very Good,Very Good,(other premises below),,,Fully double glazed,Good,Good,Average thermal transmittance 0.32 W/m?K,Good,Good,,,,Average thermal transmittance 0.00 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 50% fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.26,,,NO DATA!,"4 Hughenden Reach, Tovil",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2009-06-18 10:35:13,,8.0,4.0,10014308467.0,Address Matched +820112323232012073118373874778208,4 Tonbridge Court,Tonbridge Road,,ME16 8SX,2894260078,C,C,77,80,Flat,Enclosed Mid-Terrace,2012-07-31,E07000110,E14000804,Kent,2012-07-31,marketed sale,79,83,123,100.0,1.7,24,1.4,54.0,43.0,275.0,239.0,109.0,96.0,73.0,Single,Y,1st,N,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,75.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,6.5,,0.0,,natural,"4 Tonbridge Court, Tonbridge Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2012-07-31 18:37:38,owner-occupied,8.0,6.0,200003657853.0,Address Matched +237484830062009030217584628498811,"15, Langham Grove",,,ME16 0LA,1225358568,D,D,56,65,Bungalow,Semi-Detached,2009-03-01,E07000110,E14000804,Kent,2009-03-02,rental (private),50,59,308,249.0,6.6,51,5.3,119.0,62.0,858.0,733.0,134.0,108.0,92.8,Single,Y,NO DATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,1.0,4.0,4.0,9.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, insulated at rafters",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Poor,Poor,Low energy lighting in 9% of fixed outlets,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,0.0,N,natural,"15, Langham Grove",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2009-03-02 17:58:46,rental (private),,,200003656967.0,Address Matched +799520969922012061813584909858252,"6, Nursery Avenue",,,ME16 0HP,5033619968,E,C,49,78,House,Semi-Detached,2012-06-15,E07000110,E14000804,Kent,2012-06-18,marketed sale,45,75,310,122.0,5.6,60,2.3,81.0,54.0,698.0,475.0,323.0,168.0,94.0,dual,Y,NODATA!,,,2107.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,50.0,1.0,"From main system, no cylinder thermostat",Poor,Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 75 mm loft insulation",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Average,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"6, Nursery Avenue",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2012-06-18 13:58:49,owner-occupied,10.0,5.0,200003702919.0,Address Matched +1364268109042015091610412433959948,Apartment 2,4 Albion Place,,ME14 5DY,6062409378,D,D,58,58,Flat,NO DATA!,2015-09-14,E07000110,E14000804,Kent,2015-09-16,new dwelling,63,63,328,328.0,2.1,55,2.1,40.0,40.0,352.0,352.0,206.0,206.0,37.0,standard tariff,,ground floor,,,,,NO DATA!,NO DATA!,,,,,0.0,"Electric immersion, standard tariff",Very Poor,Poor,Average thermal transmittance 0.18 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 2.10 W/m-¦K,Very Poor,Very Poor,,,,(other premises above),,,"Boiler and radiators, electric",Very Poor,Poor,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"Apartment 2, 4 Albion Place",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2015-09-16 10:41:24,unknown,20.0,15.0,10091196229.0,Address Matched +1690992352752019081909171693910364,"23, Ashford Drive",Kingswood,,ME17 3PA,3483232678,B,B,90,91,Bungalow,Detached,2019-08-19,E07000110,E14000700,Kent,2019-08-19,new dwelling,91,92,48,37.0,0.9,9,0.7,75.0,75.0,280.0,280.0,87.0,55.0,101.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.18 W/m-¦K,Very Good,Very Good,Mostly double glazing,Very Good,Very Good,Average thermal transmittance 0.18 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.15 W/m-¦K,Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"23, Ashford Drive, Kingswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2019-08-19 09:17:16,owner-occupied,20.0,20.0,10093302895.0,Address Matched +264378380022009040923594390818721,"8, Hever Close",,,ME15 8SR,2951840668,D,C,60,72,House,Semi-Detached,2009-04-09,E07000110,E14000700,Kent,2009-04-09,marketed sale,59,72,281,194.0,4.1,46,2.8,56.0,42.0,638.0,440.0,91.0,91.0,100.8,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,67.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,"Pitched, 75mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 67% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.38,0.0,N,natural,"8, Hever Close",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2009-04-09 23:59:43,owner-occupied,,,200003680857.0,Address Matched +430333799922014021915042812718454,"18, Darwin Avenue",,,ME15 9FP,5137902768,C,B,78,87,House,Mid-Terrace,2014-02-19,E07000110,E14000700,Kent,2014-02-19,marketed sale,78,88,114,52.0,2.3,22,1.1,63.0,63.0,413.0,414.0,115.0,74.0,106.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,6.0,6.0,100.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"18, Darwin Avenue",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2007 onwards,2014-02-19 15:04:28,owner-occupied,12.0,12.0,10014311398.0,Address Matched +581973069222011012110001452208579,"31, Nottingham Avenue",,,ME15 7PS,7538692868,C,C,70,72,House,Semi-Detached,2011-01-20,E07000110,E14000700,Kent,2011-01-21,marketed sale,66,68,218,209.0,3.7,36,3.6,112.0,56.0,567.0,577.0,118.0,118.0,102.43,Unknown,Y,NO DATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,6.0,6.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.43,0.0,N,natural,"31, Nottingham Avenue",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2011-01-21 10:00:14,owner-occupied,,,200003712805.0,Address Matched +47832760542008121710131355589338,Flat 22,Broadway Heights,23 The Broadway,ME16 8GJ,9585465568,B,B,82,83,Flat,Detached,2008-12-17,E07000110,E14000804,Kent,2008-12-17,new dwelling,82,83,161,158.0,1.2,0,1.2,27.0,22.0,191.0,192.0,57.0,57.0,0.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,12.0,,SAP05:Hot-Water,,,SAP05:Floor,,,SAP05:Windows,,,SAP05:Walls,,,SAP05:Secondary-Heating,,,SAP05:Roof,,,SAP05:Main-Heating,,,SAP05:Main-Heating-Controls,,,SAP05:Lighting,,,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,,,,NO DATA!,"Flat 22, Broadway Heights, 23 The Broadway",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2008-12-17 10:13:13,,16.0,12.0,10022896846.0,Address Matched +592717616152011021511571398990381,1 Hanover Court,Snowdon Avenue,,ME14 5NP,3144683868,C,C,72,78,Flat,NO DATA!,2011-02-15,E07000110,E14000804,Kent,2011-02-15,rental (private),68,75,274,217.0,2.3,46,1.8,60.0,32.0,271.0,279.0,200.0,129.0,49.406,dual,Y,1st,Y,2.0,2504.0,100.0,double glazing installed before 2002,Normal,0.0,2.0,2.0,16.0,0.0,"From main system, no cylinder thermostat",Poor,Average,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Warm air, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 16% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.3,0.0,N,natural,"1 Hanover Court, Snowdon Avenue",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2011-02-15 11:57:13,rental (private),,,200003705887.0,Address Matched +670756101412011082508431596290185,3 Aldon Court,Aldon Close,,ME14 5QS,1590169868,C,C,77,79,Maisonette,Mid-Terrace,2011-08-25,E07000110,E14000804,Kent,2011-08-25,rental (private),65,66,318,304.0,2.2,56,2.1,26.0,26.0,195.0,172.0,98.0,98.0,39.68,dual,N,Ground,N,,2401.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,100.0,0.0,"Electric immersion, off-peak",Average,Very Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,(another dwelling above),,,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,no corridor,,2.34,0.0,,natural,"3 Aldon Court, Aldon Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2011-08-25 08:43:15,rental (private),5.0,5.0,200003673088.0,Address Matched +500314053652010061611382590900271,2 Toke Cottage,Wheelers Lane,Linton,ME17 4BJ,2141307768,D,D,63,63,House,Semi-Detached,2010-06-16,E07000110,E14000804,Kent,2010-06-16,rental (private),50,50,271,271.0,4.6,61,4.6,44.0,44.0,507.0,507.0,137.0,137.0,61.78,Single,N,NO DATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,4.0,4.0,86.0,1.0,From main system,Good,Good,"Suspended, insulated",,,Fully double glazed,Good,Good,"Solid brick, with internal insulation",Good,Good,"Room heaters, coal",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, oil",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 86% of fixed outlets,Very Good,Very Good,oil - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,0.0,N,natural,"2 Toke Cottage, Wheelers Lane, Linton",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2010-06-16 11:38:25,rental (private),,,200003727928.0,Address Matched +567541689002010112616242785102368,"41, Courtenay Road",,,ME15 6UW,6015381868,D,D,62,66,House,Mid-Terrace,2010-11-26,E07000110,E14000804,Kent,2010-11-26,rental (social),57,60,273,250.0,5.0,46,4.6,105.0,58.0,742.0,703.0,128.0,128.0,82.63,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,20.0,0.0,From main system,Very Good,Very Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 20% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.42,0.0,N,natural,"41, Courtenay Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2010-11-26 16:24:27,rental (social),,,200003665339.0,Address Matched +bc40cebb5c368971167364f99ba84b54077edff8fdb1a09cb48594118693f6c0,51a Wrangleden Road,,,ME15 9LH,10001508987,D,B,65,83,Bungalow,Semi-Detached,2021-09-29,E07000110,E14000700,Kent,2021-09-29,rental,63,81,297,132.0,2.5,52,1.2,43.0,43.0,449.0,412.0,79.0,55.0,48.0,Single,Y,,,,,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"System built, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.4,0.0,N,natural,51a Wrangleden Road,Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2021-09-29 10:24:54,Rented (social),6.0,,200003683190.0,Energy Assessor +537662945912010090811585596000771,Flat 22 The Sovereigns,Queens Road,,ME16 0JG,7173569768,D,C,64,71,Maisonette,End-Terrace,2010-09-08,E07000110,E14000804,Kent,2010-09-08,marketed sale,54,60,422,358.0,3.4,64,2.9,48.0,33.0,334.0,251.0,133.0,133.0,54.24,dual,N,1st,Y,2.0,2401.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,55.0,0.0,"Electric immersion, off-peak",Average,Poor,(other premises below),,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,"Pitched, 100 mm loft insulation",Average,Average,Electric storage heaters,Poor,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 55% of fixed outlets,Good,Good,electricity - this is for backwards compatibility only and should not be used,0.0,unheated corridor,6.99,2.39,0.0,N,natural,"Flat 22 The Sovereigns, Queens Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1991-1995,2010-09-08 11:58:55,owner-occupied,,,200003657127.0,Address Matched +1693578349042019012815420460212088,"3, Crowther Close",Staplehurst,,TN12 0NQ,8076942678,D,B,63,84,House,Detached,2019-01-28,E07000110,E14000804,Kent,2019-01-28,marketed sale,58,82,268,97.0,3.5,47,1.3,100.0,56.0,535.0,424.0,153.0,68.0,75.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,20.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Average,Average,"Room heaters, mains gas",,,"Pitched, 270 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 20% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"3, Crowther Close, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1967-1975,2019-01-28 15:42:04,owner-occupied,,,200003678314.0,Address Matched +1119176879842014040223391122140798,"3, Garden Close",Staplehurst,,TN12 0EW,7820271278,C,B,71,90,House,Mid-Terrace,2014-04-01,E07000110,E14000804,Kent,2014-04-02,marketed sale,70,92,170,34.0,2.6,33,0.6,54.0,54.0,404.0,311.0,180.0,78.0,79.0,Single,Y,NODATA!,,,2106.0,83.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,90.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Mostly double glazing,Poor,Poor,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 90% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"3, Garden Close, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1991-1995,2014-04-02 23:39:11,owner-occupied,10.0,9.0,200003677238.0,Address Matched +1297477244752015033118392593750037,"56, Bridge Mill Way",Tovil,,ME15 6FD,766434378,D,B,58,86,House,Detached,2015-03-30,E07000110,E14000804,Kent,2015-03-31,ECO assessment,51,85,310,81.0,4.7,55,1.3,74.0,54.0,814.0,443.0,158.0,73.0,85.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,4.0,4.0,64.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 64% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"56, Bridge Mill Way, Tovil",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2015-03-31 18:39:25,owner-occupied,,,200003716261.0,Address Matched +181911941452008110413555705089852,"23, Cedar Drive",Barming,,ME16 9HD,8296153568,D,C,61,71,House,Detached,2008-11-03,E07000110,E14000804,Kent,2008-11-04,marketed sale,55,67,276,201.0,5.6,46,4.1,90.0,60.0,623.0,491.0,155.0,105.0,120.84,dual,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,2.0,4.0,4.0,50.0,0.0,"From main system, no cylinderstat",Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.48,0.0,N,natural,"23, Cedar Drive, Barming",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2008-11-04 13:55:57,owner-occupied,,,200003665644.0,Address Matched +bc5bf57296ec2dfb895c81e947e773ec73aa724d0115416663a6eec3012ebaa0,GLEBE COTTAGE,EAST STREET,HARRIETSHAM,ME17 1HL,5459433768,D,B,68,91,House,Detached,2021-07-06,E07000110,E14000700,Kent,2021-07-06,marketed sale,61,84,193,66.0,6.0,35,2.3,152.0,107.0,974.0,888.0,121.0,81.0,171.0,Single,Y,,,,,89.0,double glazing installed during or after 2002,Normal,2.0,8.0,8.0,59.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Mostly double glazing,Good,Good,"Cavity wall, filled cavity",Average,Average,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 270 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 59% of fixed outlets,Good,Good,mains gas (not community),0.0,,,2.4,0.0,N,natural,"GLEBE COTTAGE, EAST STREET, HARRIETSHAM",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2021-07-06 17:59:04,Owner-occupied,29.0,,200003704007.0,Energy Assessor +505252416752010070508162293200973,"22, Millers Wharf",,,ME15 6YW,9375637768,D,C,64,76,House,End-Terrace,2010-06-28,E07000110,E14000804,Kent,2010-07-05,marketed sale,58,72,320,215.0,3.3,53,2.2,58.0,32.0,456.0,352.0,152.0,100.0,61.92,Unknown,Y,NO DATA!,,,2107.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,17.0,0.0,From main system,Average,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Average,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 17% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.31,0.0,N,natural,"22, Millers Wharf",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2010-07-05 08:16:22,owner-occupied,,,200003715945.0,Address Matched +18362e9d85b2f3c5d6417d2013c9f61af69d6284163c5a290bc4679140eca189,17 KINGS REACH,,,ME15 7LZ,10001373450,E,B,54,84,House,Mid-Terrace,2021-06-28,E07000110,E14000700,Kent,2021-07-01,ECO assessment,51,84,340,90.0,4.1,60,1.1,117.0,58.0,698.0,443.0,188.0,74.0,69.0,Single,Y,,,,,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,0.0,0.0,"From main system, no cylinder thermostat",Average,Average,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,"Pitched, insulated (assumed)",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,,,2.75,0.0,N,natural,17 KINGS REACH,Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2021-07-01 10:31:11,Rented (social),8.0,,200003724187.0,Energy Assessor +868646802102020081819395903409538,"2, Trapham Road",,,ME16 0EL,9176304078,D,C,57,70,House,Detached,2020-08-17,E07000110,E14000804,Kent,2020-08-18,marketed sale,45,59,251,173.0,11.7,44,8.1,129.0,129.0,2052.0,1580.0,130.0,130.0,264.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,4.0,10.0,10.0,98.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 98% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"2, Trapham Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2020-08-18 19:39:59,owner-occupied,,,200003658918.0,Address Matched +733184656552011121505513790999099,Flat 7 Swallow House,Springvale,,ME16 0AZ,960604968,D,D,66,66,Flat,Enclosed End-Terrace,2011-12-15,E07000110,E14000804,Kent,2011-12-15,rental (private),68,69,350,343.0,1.7,62,1.7,33.0,18.0,219.0,226.0,162.0,162.0,27.72,Single,N,2nd,N,,2401.0,100.0,double glazing installed during or after 2002,Normal,0.0,1.0,1.0,20.0,0.0,"Electric immersion, standard tariff",Very Poor,Very Poor,(other premises below),,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,(another dwelling above),,,Electric storage heaters,Very Poor,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 20% of fixed outlets,Poor,Poor,electricity (not community),0.0,unheated corridor,6.6,2.35,0.0,,natural,"Flat 7 Swallow House, Springvale",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1991-1995,2011-12-15 05:51:37,rental (private),5.0,1.0,200003667130.0,Address Matched +1778811202032020020310481360078901,"8, Old School Place",Headcorn,,TN27 9FZ,120968678,B,A,85,97,House,Mid-Terrace,2020-02-03,E07000110,E14000700,Kent,2020-02-03,new dwelling,88,100,76,-15.0,1.0,13,-0.2,65.0,65.0,175.0,175.0,71.0,42.0,76.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.20 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and underfloor heating, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"8, Old School Place, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,NO DATA!,2020-02-03 10:48:13,unknown,20.0,20.0,10094443680.0,Address Matched +1595706982332017121119433787978698,"72, Foxden Drive",Downswood,,ME15 8TF,8857645578,C,B,71,87,House,Semi-Detached,2017-12-11,E07000110,E14000700,Kent,2017-12-11,rental (private),69,87,207,76.0,2.5,36,1.0,86.0,48.0,388.0,363.0,132.0,77.0,69.0,Single,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,22.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Timber frame, as built, insulated (assumed)",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 22% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"72, Foxden Drive, Downswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2017-12-11 19:43:37,rental (private),,,200003686320.0,Address Matched +492766306032010060115530391068005,"149, Boxley Road",,,ME14 2TJ,501056768,D,D,62,66,House,Mid-Terrace,2010-06-01,E07000110,E14000804,Kent,2010-06-01,marketed sale,56,60,265,241.0,5.7,44,5.2,103.0,68.0,848.0,787.0,122.0,122.0,110.88,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,48.0,2.0,From main system,Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Roof room(s), no insulation",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 48% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.45,0.0,N,natural,"149, Boxley Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2010-06-01 15:53:03,owner-occupied,,,200003702902.0,Address Matched +bc812c39b84f48230223bdf13053a03cde5e5c6b21c7a411f6b648746c064ac8,74 Gilbert Way,,,ME17 3TT,10001596764,B,A,83,95,House,Semi-Detached,2021-09-20,E07000110,E14000700,Kent,2021-09-20,new dwelling,86,98,91,3.0,1.3,16,0.1,68.0,68.0,218.0,218.0,68.0,41.0,78.0,standard tariff,,,N,,,100.0,,,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.33,,,,74 Gilbert Way,Maidstone,Faversham and Mid Kent,MAIDSTONE,2017,2021-09-20 15:58:44,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,7.0,,10094441908.0,Energy Assessor +1562795483112017072617295791230354,"3, Troys Mead",Hollingbourne,,ME17 1UB,3412313578,E,C,43,73,House,Semi-Detached,2017-07-26,E07000110,E14000700,Kent,2017-07-26,marketed sale,37,65,448,207.0,6.2,79,2.9,75.0,54.0,1110.0,754.0,113.0,50.0,78.0,Single,Y,NODATA!,,,2107.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,60.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 60% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"3, Troys Mead, Hollingbourne",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2017-07-26 17:29:57,owner-occupied,,,200003727443.0,Address Matched +749139028112012021012233594920990,"32, Tarragon Road",,,ME16 0NG,9088845968,C,C,75,77,House,End-Terrace,2012-02-10,E07000110,E14000804,Kent,2012-02-10,rental (private),76,77,135,127.0,2.8,26,2.7,102.0,58.0,447.0,453.0,83.0,83.0,109.95,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,7.0,7.0,25.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 25% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,2.69,0.0,,natural,"32, Tarragon Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2012-02-10 12:23:35,rental (private),40.0,10.0,10022901808.0,Address Matched +650058213912015073013583191750383,"9, The Hedges",Penenden Heath,,ME14 2JW,3379318868,E,B,50,82,Bungalow,Semi-Detached,2015-07-30,E07000110,E14000804,Kent,2015-07-30,assessment for green deal,41,79,354,106.0,6.5,63,2.0,64.0,64.0,1271.0,611.0,77.0,45.0,104.0,Unknown,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,5.0,5.0,100.0,0.0,From main system,Very Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Roof room(s), no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"9, The Hedges, Penenden Heath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2015-07-30 13:58:31,owner-occupied,,,200003707560.0,Address Matched +579414270712011011319005398990281,"27, Northumberland Road",,,ME15 7LE,2105082868,D,C,65,75,House,Semi-Detached,2011-01-13,E07000110,E14000700,Kent,2011-01-13,marketed sale,59,71,267,193.0,4.2,45,3.0,84.0,50.0,579.0,462.0,175.0,124.0,106.58,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,33.0,0.0,From main system,Average,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Average,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 33% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.47,0.0,N,natural,"27, Northumberland Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2011-01-13 19:00:53,owner-occupied,,,200003712250.0,Address Matched +597452757232012030222272230068407,"3, Egerton Road",,,ME14 2QY,5700424868,C,C,72,73,Flat,Semi-Detached,2012-03-02,E07000110,E14000804,Kent,2012-03-02,rental (social),75,76,191,186.0,1.7,37,1.7,39.0,28.0,311.0,312.0,71.0,71.0,46.53,Single,Y,Ground,N,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,60.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 60% of fixed outlets,Good,Good,mains gas (not community),0.0,no corridor,,2.36,0.0,,natural,"3, Egerton Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2012-03-02 22:27:22,rental (social),5.0,3.0,200003671022.0,Address Matched +1799720402222020052713392210838890,"1, Blenheim Place",Headcorn,,TN27 9GA,9170020778,B,A,84,94,House,Detached,2020-05-27,E07000110,E14000700,Kent,2020-05-27,new dwelling,86,95,80,19.0,1.6,14,0.4,83.0,83.0,265.0,265.0,79.0,47.0,112.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.19 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.28 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.14 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"1, Blenheim Place, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,NO DATA!,2020-05-27 13:39:22,unknown,15.0,15.0,10094443965.0,Address Matched +936988915732013052315063261278908,September Cottage,Leeds Road,Langley,ME17 3JH,1861988078,E,C,54,76,House,Detached,2013-05-23,E07000110,E14000700,Kent,2013-05-23,marketed sale,47,71,250,125.0,7.5,48,3.8,93.0,70.0,1265.0,930.0,141.0,75.0,155.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,7.0,7.0,67.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 67% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"September Cottage, Leeds Road, Langley",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2013-05-23 15:06:32,owner-occupied,12.0,8.0,200003711712.0,Address Matched +511669789342010071122281878709498,Flat 6 Beech House,Belts Wood,,ME15 9GT,3351387768,B,B,85,87,Flat,Detached,2010-07-11,E07000110,E14000700,Kent,2010-07-11,rental (social),85,86,114,105.0,1.3,19,1.2,70.0,40.0,199.0,202.0,89.0,89.0,69.0,Unknown,Y,2nd,N,4.0,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,25.0,0.0,From main system,Very Good,Very Good,(other premises below),,,Fully double glazed,Good,Good,"Timber frame, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 25% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,unheated corridor,9.0,2.31,0.0,N,natural,"Flat 6 Beech House, Belts Wood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2007 onwards,2010-07-11 22:28:18,rental (social),,,10022896435.0,Address Matched +1077799689432014012415272832278305,"13, Sheppey Road",,,ME15 9SL,8542388178,D,C,56,79,House,Semi-Detached,2014-01-22,E07000110,E14000804,Kent,2014-01-24,none of the above,51,78,272,109.0,4.5,52,1.8,75.0,51.0,803.0,564.0,135.0,75.0,85.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,54.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 54% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"13, Sheppey Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2014-01-24 15:27:28,owner-occupied,13.0,7.0,200003678046.0,Address Matched +297917120062009060413592192878421,Dickley Court,Dickley Lane,Lenham,ME17 2DD,2932282668,E,D,50,55,House,Detached,2009-06-03,E07000110,E14000700,Kent,2009-06-04,rental (private),41,43,240,223.0,17.0,53,17.0,322.0,161.0,1938.0,1911.0,286.0,273.0,233.21,Unknown,N,NO DATA!,,,2106.0,0.0,single glazing,Normal,1.0,12.0,12.0,0.0,4.0,From main system,Average,Average,"Suspended, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Cavity wall, filled cavity",Good,Good,"Room heaters, coal",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, oil",Average,Average,"Programmer, room thermostat and TRVs",Average,Average,No low energy lighting,Very Poor,Very Poor,oil - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.8,0.0,N,natural,"Dickley Court, Dickley Lane, Lenham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1900-1929,2009-06-04 13:59:21,rental (private),,,200003705073.0,Address Matched +963359639062013070214462410528827,"13, Regent Drive",,,ME15 6DF,2199370178,D,B,68,86,House,Semi-Detached,2013-07-02,E07000110,E14000804,Kent,2013-07-02,marketed sale,68,87,195,63.0,2.6,37,0.9,50.0,50.0,457.0,371.0,106.0,68.0,69.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,4.0,4.0,80.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, partial insulation (assumed)",Average,Average,"Room heaters, mains gas",,,"Pitched, limited insulation (assumed)",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"13, Regent Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1976-1982,2013-07-02 14:46:24,owner-occupied,10.0,8.0,200003676584.0,Address Matched +1685383999942019041517312268119628,Flat 24 Coronet House,"11, Queen Anne Road",,ME14 1GD,1948091678,C,C,72,72,Flat,Detached,2019-04-12,E07000110,E14000804,Kent,2019-04-15,new dwelling,75,75,321,321.0,1.1,54,1.1,20.0,20.0,202.0,202.0,133.0,133.0,20.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,Electric instantaneous at point of use,Very Poor,Very Poor,Average thermal transmittance 0.25 W/m-¦K,Good,Good,Fully double glazed,Good,Good,Average thermal transmittance 0.25 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.24 W/m-¦K,Good,Good,"Room heaters, electric",Very Poor,Poor,Programmer and room thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"Flat 24 Coronet House, 11, Queen Anne Road",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2019-04-15 17:31:22,unknown,5.0,5.0,10094441201.0,Address Matched +204741000842008123020320354687608,"34, Waterlow Road",,,ME14 2TR,3802506568,E,D,49,60,House,Mid-Terrace,2008-12-30,E07000110,E14000804,Kent,2008-12-30,marketed sale,41,50,334,267.0,7.9,64,6.4,107.0,56.0,845.0,706.0,110.0,95.0,137.2,Single,Y,NO DATA!,,,2107.0,15.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,8.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Partial double glazing,Very Poor,Very Poor,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, smokeless fuel",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Poor,Poor,Low energy lighting in 8% of fixed outlets,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,0.0,N,natural,"34, Waterlow Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2008-12-30 20:32:03,owner-occupied,,,200003703136.0,Address Matched +1124622484432014041111491183978201,"19, Friars Court",Queen Anne Road,,ME14 1ER,8103212278,B,B,84,85,Flat,Mid-Terrace,2014-04-11,E07000110,E14000804,Kent,2014-04-11,marketed sale,77,78,203,197.0,1.3,36,1.3,48.0,28.0,81.0,84.0,106.0,106.0,37.0,dual,N,1st,N,,2401.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,33.0,0.0,"Electric immersion, off-peak",Average,Very Poor,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,(another dwelling above),,,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 33% of fixed outlets,Average,Average,electricity (not community),0.0,heated corridor,,,0.0,,natural,"19, Friars Court, Queen Anne Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2014-04-11 11:49:11,owner-occupied,6.0,2.0,200003688632.0,Address Matched +1442881133712016051310504596960540,Flat 5,Westbrook House,18-20 Albion Place,ME14 5DZ,5006364478,B,B,83,83,Flat,Detached,2016-05-13,E07000110,E14000804,Kent,2016-05-13,new dwelling,74,74,184,184.0,1.8,31,1.8,47.0,47.0,141.0,141.0,129.0,129.0,58.0,off-peak 7 hour,,mid floor,,,,,NO DATA!,NO DATA!,,,,,0.0,"Electric immersion, off-peak",Average,Poor,(other premises below),,,Full secondary glazing,Good,Good,Average thermal transmittance 0.44 W/m-¦K,Good,Good,"Room heaters, electric",,,(other premises above),,,Electric storage heaters,Average,Very Poor,Automatic charge control,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"Flat 5, Westbrook House, 18-20 Albion Place",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2016-05-13 10:50:45,unknown,14.0,14.0,10093302955.0,Address Matched +883744309842013021211505405579228,"14, Woodford Road",,,ME16 9BS,3828205078,D,B,66,90,House,Mid-Terrace,2013-02-12,E07000110,E14000804,Kent,2013-02-12,marketed sale,65,92,210,31.0,2.8,40,0.5,40.0,40.0,394.0,290.0,191.0,66.0,69.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,100.0,0.0,"From main system, no cylinder thermostat",Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"14, Woodford Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2013-02-12 11:50:54,owner-occupied,10.0,10.0,200003677568.0,Address Matched +bce78893ef33ba753230eb356781f695ab7c32837098710ae0af8f23f1157be8,5 Acorn Place,,,ME15 9LX,10001523447,C,C,69,72,Flat,End-Terrace,2021-08-24,E07000110,E14000700,Kent,2021-08-24,rental,69,73,265,231.0,1.9,47,1.7,53.0,38.0,352.0,315.0,69.0,69.0,41.0,Single,Y,00,N,,,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,60.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"System built, as built, no insulation (assumed)",Very Poor,Very Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 60% of fixed outlets,Good,Good,mains gas (not community),0.0,no corridor,,2.27,0.0,N,natural,5 Acorn Place,Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2021-08-24 19:03:10,Rented (social),5.0,,200003682558.0,Energy Assessor +1553204846332017062110004318278301,"35, Bridge Mill Way",Tovil,,ME15 6FD,4118342578,D,B,68,90,House,Enclosed End-Terrace,2017-06-21,E07000110,E14000804,Kent,2017-06-21,marketed sale,69,91,272,52.0,1.9,48,0.4,59.0,30.0,345.0,304.0,87.0,48.0,40.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"35, Bridge Mill Way, Tovil",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2017-06-21 10:00:43,owner-occupied,,,200003716022.0,Address Matched +349529640142009082017343267612408,"73, Stagshaw Close",,,ME15 6TE,7162446668,B,B,81,83,House,Mid-Terrace,2009-08-20,E07000110,E14000804,Kent,2009-08-20,marketed sale,80,82,155,145.0,1.5,25,1.4,64.0,32.0,232.0,236.0,84.0,84.0,60.0,Unknown,Y,NO DATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,0.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 250mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,0.0,N,natural,"73, Stagshaw Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2009-08-20 17:34:32,owner-occupied,,,10022893315.0,Address Matched +bd021f21ced1a90a01184801be7f7d205c40784d8c4f221098db17e11e850f20,41 South Street,Barming,,ME16 9EX,10001486868,D,B,61,82,House,Detached,2021-08-25,E07000110,E14000804,Kent,2021-08-26,marketed sale,58,81,223,95.0,6.3,36,2.6,193.0,109.0,1159.0,713.0,131.0,81.0,177.0,Single,Y,,,,,20.0,double glazing installed during or after 2002,Normal,3.0,7.0,7.0,20.0,1.0,From main system,Good,Good,"To unheated space, no insulation (assumed)",,,Some double glazing,Poor,Poor,"Solid brick, as built, no insulation (assumed)",Poor,Poor,"Room heaters, wood logs",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 20% of fixed outlets,Poor,Poor,mains gas (not community),0.0,,,2.24,0.0,N,natural,"41 South Street, Barming",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2021-08-26 08:06:25,Owner-occupied,25.0,,200003665552.0,Energy Assessor +538072629022010090920281509418240,"97, Lacock Gardens",,,ME15 6GT,4021279768,C,C,78,80,House,Mid-Terrace,2010-09-09,E07000110,E14000804,Kent,2010-09-09,rental (private),78,79,176,166.0,1.7,29,1.6,67.0,34.0,283.0,289.0,92.0,92.0,59.6,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,0.0,0.0,From main system,Good,Good,"Solid, limited insulation (assumed)",,,Fully double glazed,Good,Good,"Timber frame, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.42,0.0,N,natural,"97, Lacock Gardens",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2010-09-09 20:28:15,rental (private),,,10012891070.0,Address Matched +bd2c425bc4aadc236c20dfd30d1b576bfd1ab19e6e99590f1e3c1e1fb59a9f9a,9 THE CHENIES,,,ME15 6EE,10001618554,B,B,81,82,Flat,Mid-Terrace,2021-07-15,E07000110,E14000804,Kent,2021-07-15,marketed sale,85,87,112,101.0,1.0,20,0.9,51.0,51.0,175.0,169.0,96.0,84.0,53.0,Unknown,Y,01,N,,,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,(another dwelling below),,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,7.18,2.29,0.0,N,natural,9 THE CHENIES,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007-2011,2021-07-15 18:20:19,Owner-occupied,8.0,,10022895745.0,Energy Assessor +1379567282012015102711241291259947,"17, Middlesex Road",,,ME15 7PJ,9751210478,D,B,57,87,House,Semi-Detached,2015-10-26,E07000110,E14000700,Kent,2015-10-27,marketed sale,51,86,328,79.0,4.3,58,1.1,98.0,49.0,744.0,401.0,137.0,81.0,74.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, mains gas",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"17, Middlesex Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2015-10-27 11:24:12,owner-occupied,,,200003712734.0,Address Matched +1352609039222015082011244868108425,"6, St. Andrews Road",,,ME16 9AN,2609328378,D,B,57,85,House,End-Terrace,2015-08-20,E07000110,E14000804,Kent,2015-08-20,marketed sale,49,83,293,81.0,5.3,52,1.5,62.0,62.0,979.0,484.0,127.0,75.0,102.0,Single,Y,NODATA!,,,2107.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, mains gas",,,"Pitched, 270 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"6, St. Andrews Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2015-08-20 11:24:48,owner-occupied,,,200003682176.0,Address Matched +1459411359612018022116462097280746,"40b, Melville Road",,,ME15 7UR,7619975478,D,C,60,79,Flat,Semi-Detached,2018-02-21,E07000110,E14000804,Kent,2018-02-21,rental (private),53,80,296,125.0,4.3,52,1.8,60.0,60.0,785.0,317.0,82.0,82.0,83.0,Unknown,Y,1st,Y,,2106.0,75.0,double glazing installed during or after 2002,Normal,1.0,4.0,4.0,100.0,0.0,From main system,Good,Good,(another dwelling below),NO DATA!,,Partial double glazing,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Roof room(s), no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,no corridor,,,,N,natural,"40b, Melville Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2018-02-21 16:46:20,rental (private),,,200003661289.0,Address Matched +1735991056812019071211335695910765,Flat 1,33 Pudding Lane,,ME14 1PA,7531655678,C,C,69,74,Flat,Semi-Detached,2019-07-11,E07000110,E14000804,Kent,2019-07-12,rental (private),68,75,239,186.0,2.2,42,1.7,42.0,43.0,393.0,303.0,85.0,86.0,52.0,Unknown,Y,1st,N,,2106.0,0.0,not defined,Normal,0.0,4.0,4.0,100.0,0.0,From main system,Good,Good,(other premises below),NO DATA!,,Single glazed,Very Poor,Very Poor,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,no corridor,,,,N,natural,"Flat 1, 33 Pudding Lane",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2019-07-12 11:33:56,rental (private),,,10014310011.0,Address Matched +169290692232012020817232904068408,4 Prospect Place,Collier Street,,TN12 9RP,9844492568,D,D,55,59,House,Mid-Terrace,2012-02-08,E07000110,E14000804,Kent,2012-02-08,marketed sale,52,57,340,302.0,3.5,66,3.1,58.0,31.0,623.0,574.0,71.0,71.0,53.7,Single,Y,NODATA!,,,2107.0,60.0,"double glazing, unknown install date",Normal,1.0,3.0,3.0,17.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Partial double glazing,Poor,Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 17% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,2.4,0.0,,natural,"4 Prospect Place, Collier Street",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: before 1900,2012-02-08 17:23:29,owner-occupied,12.0,2.0,10022900422.0,Address Matched +1685430821212018121213411599989364,"38, Beaumont Road",,,ME16 8NQ,3480191678,D,B,68,83,House,End-Terrace,2018-12-12,E07000110,E14000804,Kent,2018-12-12,non marketed sale,65,80,230,113.0,2.6,41,1.3,60.0,48.0,453.0,436.0,92.0,62.0,65.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,2.0,5.0,5.0,75.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"38, Beaumont Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2018-12-12 13:41:15,rental (social),,,200003674451.0,Address Matched +747317559062012020612360345668592,"18, Ashford Drive",Kingswood,,ME17 3PB,9454535968,D,D,59,67,Bungalow,Detached,2012-02-06,E07000110,E14000700,Kent,2012-02-06,marketed sale,54,63,247,197.0,5.8,48,4.6,104.0,58.0,894.0,759.0,152.0,117.0,74.01,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,6.0,6.0,20.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 20% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,2.34,0.0,,natural,"18, Ashford Drive, Kingswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2012-02-06 12:36:03,owner-occupied,20.0,4.0,200003700308.0,Address Matched +1591786399262017112709035395628423,43b Scott Street,,,ME14 2TA,2975915578,C,C,74,75,Flat,Mid-Terrace,2017-11-22,E07000110,E14000804,Kent,2017-11-27,rental (private),79,80,240,223.0,1.1,42,1.0,22.0,22.0,215.0,200.0,71.0,72.0,25.0,Unknown,Y,Basement,N,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,1.0,1.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,no corridor,,,,N,natural,43b Scott Street,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2017-11-27 09:03:53,rental (private),,,10093306146.0,Address Matched +1684383419062018120611055581468488,"1, Keepers Avenue",,,ME16 9FJ,8832181678,B,A,83,95,House,Semi-Detached,2018-12-06,E07000110,E14000804,Kent,2018-12-06,new dwelling,86,98,85,-3.0,1.2,15,0.0,59.0,59.0,201.0,201.0,76.0,45.0,79.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.18 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"1, Keepers Avenue",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2018-12-06 11:05:55,unknown,15.0,15.0,10093303584.0,Address Matched +bd2c64dc19cbb8a5d1fecf77162216960e4408e0323864bc04ba3d4028546c2c,11 ELLIS FIELD,OTHAM,,ME15 8YL,10001339497,B,A,85,96,House,Semi-Detached,2021-09-15,E07000110,E14000804,Kent,2021-09-15,new dwelling,87,98,76,2.0,1.2,13,0.1,75.0,75.0,216.0,216.0,72.0,44.0,94.0,standard tariff,,,N,,,100.0,,,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.18 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.39,,,,"11 ELLIS FIELD, OTHAM",Maidstone,Maidstone and The Weald,OTHAM,2021,2021-09-15 15:33:03,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,11.0,,10094440493.0,Address Matched +577094559302018080712155585282818,"18, Buckland Gardens",,,ME16 0ZB,4343852868,C,C,79,79,Flat,Semi-Detached,2018-05-29,E07000110,E14000804,Kent,2018-08-07,rental (social),83,83,129,125.0,1.1,23,1.1,60.0,45.0,188.0,190.0,87.0,87.0,49.0,dual,Y,4th,Y,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,67.0,0.0,From main system,Good,Good,(another dwelling below),NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 67% of fixed outlets,Good,Good,mains gas (not community),0.0,unheated corridor,4.5,,,N,natural,"18, Buckland Gardens",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2018-08-07 12:15:55,rental (social),,,10014308674.0,Address Matched +277813629062019070413521201878521,"22, Waterlow Road",,,ME14 2TR,2057241668,D,B,61,83,House,Mid-Terrace,2019-07-03,E07000110,E14000804,Kent,2019-07-04,rental (private),56,80,297,110.0,3.2,52,1.2,73.0,48.0,521.0,411.0,122.0,72.0,61.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,3.0,3.0,50.0,1.0,From main system,Good,Good,"To unheated space, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Granite or whinstone, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"22, Waterlow Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2019-07-04 13:52:12,rental (private),,,200003703123.0,Address Matched +451309652262020022616322103068850,"37, Bower Lane",,,ME16 8EJ,5008553768,D,B,59,85,House,Mid-Terrace,2020-02-26,E07000110,E14000804,Kent,2020-02-26,rental (private),55,83,321,93.0,3.0,57,0.9,86.0,44.0,484.0,371.0,124.0,63.0,53.0,Single,Y,NODATA!,,,2106.0,80.0,double glazing installed before 2002,Normal,1.0,4.0,4.0,7.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Mostly double glazing,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 7% of fixed outlets,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"37, Bower Lane",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2020-02-26 16:32:21,rental (private),,,200003667609.0,Address Matched +1579615729602017100306284554437808,"48, Knowle Road",Penenden Heath,,ME14 2BB,9607924578,C,B,71,84,House,Semi-Detached,2017-09-30,E07000110,E14000804,Kent,2017-10-03,marketed sale,68,82,185,90.0,3.1,32,1.6,80.0,63.0,499.0,462.0,141.0,83.0,96.0,Unknown,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,73.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 73% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"48, Knowle Road, Penenden Heath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2017-10-03 06:28:45,owner-occupied,,,200003701955.0,Address Matched +250123930922009032623185789288511,"20, Captains Close",Sutton Valence,,ME17 3BA,1897339568,C,C,71,74,House,End-Terrace,2009-03-18,E07000110,E14000700,Kent,2009-03-26,rental (social),68,70,203,187.0,3.7,34,3.4,100.0,57.0,458.0,442.0,131.0,131.0,109.1,dual,Y,NO DATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,25.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 25% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.45,0.0,N,natural,"20, Captains Close, Sutton Valence",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2009-03-26 23:18:57,rental (social),,,200003696246.0,Address Matched +1675019629262018103006511791818388,Merrybrow,North Pole Road,Barming,ME16 9HH,8985211678,C,C,70,80,House,Detached,2018-10-29,E07000110,E14000804,Kent,2018-10-30,marketed sale,63,75,183,115.0,5.2,32,3.3,105.0,105.0,841.0,741.0,138.0,83.0,160.0,Unknown,Y,NODATA!,,,2106.0,75.0,"double glazing, unknown install date",Normal,1.0,7.0,7.0,82.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Partial double glazing,Average,Average,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 82% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"Merrybrow, North Pole Road, Barming",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2018-10-30 06:51:17,owner-occupied,,,200003667635.0,Address Matched +11781017112017011317030793930847,"23, Goldstone Walk",,,ME5 9QB,8706732468,D,D,57,63,House,Detached,2017-01-13,E07000110,E14000700,Kent,2017-01-13,none of the above,74,81,138,93.0,2.3,25,1.6,60.0,60.0,713.0,569.0,315.0,315.0,91.0,Single,Y,NODATA!,,,2204.0,100.0,"double glazing, unknown install date",Normal,1.0,4.0,4.0,100.0,0.0,"From main system, plus solar",Poor,Very Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, mains gas",,,"Pitched, 250 mm loft insulation",Good,Good,"Air source heat pump, radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,Y,natural,"23, Goldstone Walk",Maidstone,Faversham and Mid Kent,CHATHAM,England and Wales: 1983-1990,2017-01-13 17:03:07,owner-occupied,,,200003708870.0,Address Matched +1512922589222017012015395879408993,"24, Yew Tree Close",,,ME5 8XN,9784859478,E,B,54,90,House,Enclosed End-Terrace,2017-01-20,E07000110,E14000700,Kent,2017-01-20,marketed sale,35,71,624,222.0,4.5,106,1.6,56.0,35.0,597.0,333.0,134.0,72.0,43.0,dual,N,NODATA!,,,2401.0,100.0,double glazing installed before 2002,Normal,0.0,2.0,2.0,40.0,0.0,"Electric immersion, off-peak",Average,Poor,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, partial insulation (assumed)",Average,Average,Portable electric heaters (assumed),,,"Pitched, 100 mm loft insulation",Average,Average,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 40% of fixed outlets,Average,Average,electricity (not community),0.0,NO DATA!,,,,N,natural,"24, Yew Tree Close",Maidstone,Faversham and Mid Kent,CHATHAM,England and Wales: 1976-1982,2017-01-20 15:39:58,owner-occupied,,,200003676755.0,Address Matched +618070369922011041415540635948679,"23, Reinden Grove",Downswood,,ME15 8TH,7383685868,D,C,59,70,House,Semi-Detached,2011-04-14,E07000110,E14000700,Kent,2011-04-14,marketed sale,52,65,349,255.0,4.2,58,3.1,78.0,39.0,630.0,509.0,157.0,112.0,72.0,Single,Y,NO DATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,0.0,0.0,From main system,Average,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, mains gas",,,"Pitched, insulated (assumed)",Average,Average,"Boiler and radiators, mains gas",Average,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,0.0,N,natural,"23, Reinden Grove, Downswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2011-04-14 15:54:06,owner-occupied,,,200003686350.0,Address Matched +581135699922011011707144832938449,77 Farleigh Court,Farleigh Lane,,ME16 9BH,4348982868,D,C,66,77,Flat,Detached,2011-01-17,E07000110,E14000804,Kent,2011-01-17,marketed sale,61,74,305,208.0,3.0,51,2.1,61.0,33.0,503.0,367.0,99.0,87.0,59.6,Unknown,Y,Ground,N,2.0,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,15.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 15% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,unheated corridor,7.3,2.3,0.0,N,natural,"77 Farleigh Court, Farleigh Lane",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2011-01-17 07:14:48,owner-occupied,,,200003683371.0,Address Matched +882434950512013021115591390970509,"34, Cornwallis Road",,,ME16 8BA,5930005078,E,C,48,71,House,Mid-Terrace,2013-02-11,E07000110,E14000804,Kent,2013-02-11,marketed sale,44,66,311,164.0,5.8,60,3.1,95.0,53.0,1028.0,761.0,50.0,50.0,97.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,20.0,1.0,From main system,Good,Good,"To unheated space, no insulation (assumed)",,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, mains gas",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 20% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"34, Cornwallis Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2013-02-11 15:59:13,owner-occupied,10.0,2.0,200003657354.0,Address Matched +292428070262009052723235922138451,"6b, James Street",,,ME14 2UR,5240742668,D,C,64,78,Flat,Detached,2009-05-27,E07000110,E14000804,Kent,2009-05-27,marketed sale,57,75,412,239.0,2.7,68,1.5,29.0,18.0,339.0,238.0,134.0,80.0,38.5,Unknown,Y,1st,Y,2.0,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,40.0,0.0,From main system,Average,Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 100mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Average,Good,Programmer and room thermostat,Poor,Poor,Low energy lighting in 40% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.26,0.0,N,natural,"6b, James Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2009-05-27 23:23:59,owner-occupied,,,200003728824.0,Address Matched +1418366459312017031219540698030340,"3, Bridger Way",,,ME17 3FE,3025982478,C,A,78,92,House,Detached,2017-03-09,E07000110,E14000700,Kent,2017-03-12,rental (social),80,93,142,32.0,1.5,25,0.4,47.0,47.0,289.0,289.0,79.0,49.0,62.0,Single,Y,NODATA!,,,2110.0,100.0,double glazing installed during or after 2002,Normal,1.0,3.0,3.0,100.0,0.0,From main system,Good,Good,"To external air, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Very Good,Very Good,,,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"3, Bridger Way",Maidstone,Faversham and Mid Kent,MAIDSTONE,INVALID!,2017-03-12 19:54:06,rental (social),,,10091194039.0,Address Matched +256188299902018100711075552980168,"3, Country Ways",Lenham,,ME17 2JF,941399568,D,B,68,90,House,Detached,2018-10-06,E07000110,E14000700,Kent,2018-10-07,marketed sale,64,86,129,25.0,6.4,30,2.3,106.0,106.0,739.0,660.0,159.0,72.0,210.0,Single,N,NODATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,0.0,8.0,8.0,100.0,0.0,"From main system, no cylinder thermostat",Poor,Poor,"Suspended, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, wood logs",,,"Roof room(s), insulated (assumed)",Good,Good,"Boiler and radiators, oil",Average,Good,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,oil (not community),0.0,NO DATA!,,,,N,natural,"3, Country Ways, Lenham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2003-2006,2018-10-07 11:07:55,owner-occupied,,,10012891013.0,Address Matched +1377807940532015102206470273278093,"36, Bannister Road",Penenden Heath,,ME14 2JZ,4373000478,D,B,58,83,House,Semi-Detached,2015-10-21,E07000110,E14000804,Kent,2015-10-22,marketed sale,51,80,292,100.0,4.7,51,1.6,109.0,58.0,814.0,508.0,142.0,84.0,91.0,Single,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,11.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 25 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 11% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"36, Bannister Road, Penenden Heath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2015-10-22 06:47:02,owner-occupied,,,200003707180.0,Address Matched +1485217709022016100406195917478576,"9, Raymer Road",Penenden Heath,,ME14 2JQ,7138067478,E,C,52,75,House,Detached,2016-10-03,E07000110,E14000804,Kent,2016-10-04,marketed sale,37,62,320,154.0,7.4,68,3.8,110.0,67.0,1140.0,790.0,148.0,87.0,110.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,36.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, coal",,,"Pitched, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 36% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,2.44,,N,natural,"9, Raymer Road, Penenden Heath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2016-10-04 06:19:59,owner-occupied,,,200003706997.0,Address Matched +bd53b77cd50031e0c1a653024a0264d9c19ebb358ccb75e0b3b7ec19d79d2efd,8 Penny Cress Gardens,,,ME16 8JP,10001603218,C,B,76,86,House,Detached,2021-09-22,E07000110,E14000804,Kent,2021-09-23,marketed sale,74,83,138,76.0,2.9,24,1.6,91.0,91.0,452.0,453.0,112.0,72.0,118.0,Unknown,Y,,,,,100.0,"double glazing, unknown install date",Normal,0.0,7.0,7.0,100.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.39,0.0,N,natural,8 Penny Cress Gardens,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2021-09-23 11:19:37,Owner-occupied,14.0,,200003729262.0,Energy Assessor +816220143232012072415280127278109,12 Court Lodge Cottages,Lower Road,East Farleigh,ME15 0JL,4977130078,D,B,66,90,House,Semi-Detached,2012-07-24,E07000110,E14000804,Kent,2012-07-24,marketed sale,65,93,228,27.0,2.4,44,0.3,33.0,33.0,431.0,285.0,94.0,63.0,56.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,1.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"12 Court Lodge Cottages, Lower Road, East Farleigh",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2012-07-24 15:28:01,owner-occupied,8.0,8.0,200003673730.0,Address Matched +260448504132009040415003942068003,14c Elizabeth House,Alexandra Street,,ME14 2BX,352020668,D,C,59,72,Flat,Mid-Terrace,2009-04-04,E07000110,E14000804,Kent,2009-04-04,marketed sale,71,73,327,308.0,1.7,49,1.6,32.0,18.0,274.0,159.0,130.0,142.0,35.15,Single,N,2nd,Y,3.0,2602.0,100.0,double glazing installed before 2002,Normal,0.0,1.0,1.0,10.0,0.0,Electric instantaneous at point of use,Very Poor,Poor,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,"Pitched, 200 mm loft insulation",Good,Good,"Room heaters, electric",Very Poor,Poor,Appliance thermostats,Good,Good,Low energy lighting in 10% of fixed outlets,Poor,Poor,electricity - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.4,0.0,N,natural,"14c Elizabeth House, Alexandra Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2009-04-04 15:00:39,owner-occupied,,,200003704643.0,Address Matched +1260937149262015012316552151778285,"29, Reculver Walk",,,ME15 8QP,8540471378,C,B,70,83,House,Mid-Terrace,2015-01-23,E07000110,E14000700,Kent,2015-01-23,marketed sale,70,82,196,104.0,2.6,34,1.4,49.0,49.0,514.0,514.0,98.0,66.0,75.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"29, Reculver Walk",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2015-01-23 16:55:21,owner-occupied,,,200003725715.0,Address Matched +1699929936452019022215142199210661,"1, Garden Close",,,ME15 8AX,6193692678,E,C,52,78,House,Semi-Detached,2019-02-21,E07000110,E14000700,Kent,2019-02-22,marketed sale,43,72,355,153.0,6.0,63,2.6,78.0,78.0,929.0,641.0,209.0,72.0,95.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,5.0,5.0,85.0,0.0,From main system,Average,Average,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Average,Average,"Room heaters, mains gas",,,"Pitched, 270 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 85% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"1, Garden Close",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2019-02-22 15:14:21,owner-occupied,,,200003684482.0,Address Matched +224837586912009021208281707910256,"11, Church Road",Tovil,,ME15 6QX,2670677568,D,C,60,70,House,Mid-Terrace,2009-02-10,E07000110,E14000804,Kent,2009-02-12,rental (private),54,65,340,258.0,3.9,56,3.0,66.0,33.0,548.0,440.0,92.0,80.0,69.2,Single,Y,NO DATA!,,,2102.0,100.0,"double glazing, unknown install date",Normal,1.0,4.0,4.0,0.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.44,0.0,N,natural,"11, Church Road, Tovil",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2009-02-12 08:28:17,rental (private),,,200003664505.0,Address Matched +478783699722010050412044015608160,18 Sherway Close,Headcorn,,TN27 9SQ,6128945768,B,B,81,81,House,Mid-Terrace,2010-04-30,E07000110,E14000700,Kent,2010-05-04,new dwelling,87,87,103,103.0,1.3,15,1.3,51.0,51.0,164.0,164.0,164.0,164.0,89.5,off-peak 7 hour,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,,From main system |O'r brif system,Poor,Good,Average thermal transmittance 0.16 W/m??K|Trawsyriannedd thermol cyfartalog 0.16 W/m??K,Very Good,Very Good,Fully double glazed|Gwydrau dwbl llawn,Good,Good,Average thermal transmittance 0.25 W/m??K|Trawsyriannedd thermol cyfartalog 0.25 W/m??K,Very Good,Very Good,None|Dim,,,Average thermal transmittance 0.17 W/m??K|Trawsyriannedd thermol cyfartalog 0.17 W/m??K,Good,Good,"Air source heat pump, |Pwmp gwres sy'n tarddu yn yr awyr, |, underfloor, |, dan y llawr, |electric|trydan",Average,Very Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in 100% of fixed outlets|Goleuadau ynni-isel mewn 100% o'r mannau gosod,Very Good,Very Good,"Electricity: electricity, unspecified tariff",0.0,NO DATA!,,0.0,,,NO DATA!,"18 Sherway Close, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,NO DATA!,2010-05-04 12:04:40,,,,10014309163.0,Address Matched +1383256469532015110623090481078192,"3, Sterry Gardens",,,ME15 8AB,6251140478,C,B,71,86,Bungalow,Detached,2015-11-06,E07000110,E14000700,Kent,2015-11-06,rental (social),70,85,205,88.0,2.4,36,1.1,55.0,55.0,441.0,411.0,104.0,67.0,67.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,86.0,0.0,From main system,Good,Good,"Solid, limited insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Timber frame, as built, insulated (assumed)",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 86% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"3, Sterry Gardens",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1996-2002,2015-11-06 23:09:04,rental (social),,,10022895845.0,Address Matched +596839599222015102922183504538055,"85, Medway Avenue",Yalding,,ME18 6JN,5037914868,D,A,67,105,House,Semi-Detached,2015-10-27,E07000110,E14000804,Kent,2015-10-29,rental (social),63,100,228,-26.0,3.6,40,-0.3,95.0,57.0,598.0,490.0,152.0,84.0,89.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,33.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 33% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"85, Medway Avenue, Yalding",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2015-10-29 22:18:35,rental (social),,,200003660602.0,Address Matched +1004734532432014121419243689978491,"21, The Hurstings",,,ME15 6YN,3149463178,D,B,61,90,House,End-Terrace,2014-12-14,E07000110,E14000804,Kent,2014-12-14,assessment for green deal,56,90,316,52.0,3.2,56,0.6,51.0,38.0,513.0,324.0,170.0,63.0,57.0,Single,Y,NODATA!,,,2106.0,0.0,not defined,Normal,0.0,3.0,3.0,67.0,0.0,From main system,Average,Average,"Suspended, no insulation (assumed)",NO DATA!,,Single glazed,Very Poor,Very Poor,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 67% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"21, The Hurstings",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2014-12-14 19:24:36,rental (private),,,200003716446.0,Address Matched +229466690812009021217374208910653,"5, Greenfields",,,ME15 8ET,6345087568,F,D,37,58,House,Detached,2009-02-12,E07000110,E14000700,Kent,2009-02-12,marketed sale,36,50,466,329.0,7.5,77,5.3,93.0,46.0,1071.0,747.0,163.0,109.0,112.06,Single,Y,NO DATA!,,,2103.0,100.0,double glazing installed before 2002,Normal,1.0,4.0,4.0,0.0,0.0,"From main system, no cylinderstat",Average,Average,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,Room thermostat only,Poor,Poor,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.7,0.0,N,natural,"5, Greenfields",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2009-02-12 17:37:42,owner-occupied,,,200003685536.0,Address Matched +376929999262013082312551118378917,"17, Stansted Close",,,ME16 0RL,1178938668,D,B,57,88,Bungalow,Semi-Detached,2013-08-23,E07000110,E14000804,Kent,2013-08-23,marketed sale,56,92,300,36.0,3.0,57,0.4,33.0,33.0,487.0,326.0,190.0,65.0,52.0,Single,Y,NODATA!,,,2102.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,100.0,0.0,"From main system, no cylinder thermostat",Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"17, Stansted Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2013-08-23 12:55:11,owner-occupied,7.0,7.0,200003660894.0,Address Matched +1788104062032020022614232867278505,"12, Wickings Close",Staplehurst,,TN12 0FS,6587539678,B,A,85,95,House,End-Terrace,2020-02-26,E07000110,E14000804,Kent,2020-02-26,new dwelling,87,96,75,9.0,1.5,13,0.2,79.0,79.0,223.0,224.0,100.0,56.0,111.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.26 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.17 W/m-¦K,Good,Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"12, Wickings Close, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,NO DATA!,2020-02-26 14:23:28,unknown,10.0,10.0,10093304232.0,Address Matched +1384644659242015111214535547059728,Flat 80,Miller House,43-51 Lower Stone Street,ME15 6GB,4283150478,C,C,80,80,Flat,NO DATA!,2015-11-12,E07000110,E14000804,Kent,2015-11-12,none of the above,83,83,131,131.0,1.2,23,1.2,36.0,36.0,247.0,247.0,70.0,70.0,52.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Good,Good,Average thermal transmittance 0.89 W/m-¦K,Average,Average,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Flat 80, Miller House, 43-51 Lower Stone Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2015-11-12 14:53:55,unknown,4.0,4.0,10091196177.0,Address Matched +915138439542013041915502907779218,"85, Stagshaw Close",,,ME15 6TE,2507137078,C,C,79,80,Flat,Mid-Terrace,2013-04-19,E07000110,E14000804,Kent,2013-04-19,rental (social),67,68,245,235.0,2.2,43,2.2,45.0,45.0,184.0,161.0,109.0,109.0,52.0,dual,N,1st,N,,2401.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,75.0,0.0,"Electric immersion, off-peak",Average,Very Poor,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,Portable electric heaters (assumed),,,(another dwelling above),,,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,electricity (not community),0.0,unheated corridor,5.0,,0.0,,natural,"85, Stagshaw Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1991-1995,2013-04-19 15:50:29,rental (social),8.0,6.0,10022893327.0,Address Matched +65239942832018121218064492968396,Flat 5,Scotney Gardens,St. Peter Street,ME16 0GR,4672354468,B,B,85,85,Flat,Enclosed End-Terrace,2018-12-12,E07000110,E14000804,Kent,2018-12-12,rental (private),78,78,197,197.0,1.3,33,1.3,37.0,37.0,68.0,68.0,133.0,133.0,38.0,dual,N,2nd,N,,2402.0,100.0,double glazing installed during or after 2002,Normal,0.0,1.0,1.0,100.0,0.0,"Electric immersion, off-peak",Average,Poor,(another dwelling below),NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,Portable electric heaters (assumed),,,(another dwelling above),,,Electric storage heaters,Average,Very Poor,Automatic charge control,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,heated corridor,,,,N,natural,"Flat 5, Scotney Gardens, St. Peter Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2018-12-12 18:06:44,rental (private),,,10022893373.0,Address Matched +bdb4587d0cfd14029800056bda6bf759b37c37ff6527e812848b1933aed62e91,Chittenden House,Lovehurst Lane,Staplehurst,TN12 0EX,10001676906,E,D,42,64,House,Detached,2021-08-10,E07000110,E14000804,Kent,2021-08-12,marketed sale,43,62,220,131.0,16.0,47,9.9,186.0,186.0,2837.0,1845.0,149.0,129.0,347.0,Unknown,N,,,,,100.0,double glazing installed during or after 2002,Normal,3.0,11.0,11.0,83.0,1.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, oil, Boiler and radiators, oil",Average,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in 83% of fixed outlets,Very Good,Very Good,oil (not community),0.0,,,2.1,0.0,N,natural,"Chittenden House, Lovehurst Lane, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1900-1929,2021-08-12 07:23:34,Owner-occupied,30.0,,200003724719.0,Energy Assessor +361868871132009091609030251968104,"14, Hastings Road",,,ME15 7SP,7491137668,D,C,65,71,Maisonette,Mid-Terrace,2009-09-14,E07000110,E14000804,Kent,2009-09-16,marketed sale,60,66,296,254.0,3.4,49,2.9,71.0,35.0,499.0,459.0,97.0,86.0,68.48,Unknown,Y,Ground,N,3.0,2106.0,80.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Partial double glazing,Poor,Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,no corridor,,1.99,0.0,N,natural,"14, Hastings Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2009-09-16 09:03:02,owner-occupied,,,200003695457.0,Address Matched +486338749962010051720572816238160,"69, Longham Copse",Downswood,,ME15 8TL,6107406768,D,C,65,77,House,Semi-Detached,2010-05-17,E07000110,E14000700,Kent,2010-05-17,marketed sale,61,74,296,197.0,3.2,49,2.1,74.0,37.0,463.0,327.0,123.0,108.0,64.38,dual,Y,NO DATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, partial insulation (assumed)",Average,Average,,,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.35,0.0,N,natural,"69, Longham Copse, Downswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1976-1982,2010-05-17 20:57:28,owner-occupied,,,200003686493.0,Address Matched +1481212729062017040917232197418583,"24, Hop Pocket Way",Headcorn,,TN27 9AF,8976237478,B,A,85,93,House,Detached,2017-04-09,E07000110,E14000700,Kent,2017-04-09,new dwelling,85,93,75,29.0,2.1,13,0.9,86.0,86.0,341.0,342.0,116.0,64.0,161.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.26 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.10 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"24, Hop Pocket Way, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,NO DATA!,2017-04-09 17:23:21,unknown,20.0,20.0,10093302572.0,Address Matched +1386631335652015111719280196959449,"4, The Meadows",Tovil,,ME15 6QW,4978560478,D,B,68,86,House,End-Terrace,2015-11-10,E07000110,E14000804,Kent,2015-11-17,rental (social),63,84,215,83.0,4.0,38,1.6,106.0,65.0,637.0,490.0,179.0,78.0,105.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,6.0,6.0,38.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 38% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"4, The Meadows, Tovil",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1991-1995,2015-11-17 19:28:01,rental (social),,,200003666222.0,Address Matched +292591460222009052719221622638971,2 Forge Cottages,Maidstone Road,Nettlestead,ME18 5HF,7221642668,F,E,25,45,House,End-Terrace,2009-05-27,E07000110,E14000804,Kent,2009-05-27,marketed sale,23,41,606,384.0,12.0,102,7.6,90.0,56.0,1567.0,1053.0,221.0,123.0,85.43,Single,Y,NO DATA!,,,2102.0,60.0,secondary glazing,Normal,2.0,4.0,4.0,40.0,1.0,"From main system, no cylinderstat",Poor,Average,"Solid, no insulation (assumed)",,,Partial secondary glazing,Poor,Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, dual fuel (mineral and wood)",,,"Roof room(s), no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Average,Good,"Programmer, no room thermostat",Very Poor,Very Poor,Low energy lighting in 40% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.57,0.0,N,natural,"2 Forge Cottages, Maidstone Road, Nettlestead",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2009-05-27 19:22:16,owner-occupied,,,200003656695.0,Address Matched +1263883539222015012920060401388165,Apartment 49 Sandling Park,Sandling Lane,,ME14 2NY,6055391378,D,C,68,79,Flat,Semi-Detached,2015-01-28,E07000110,E14000804,Kent,2015-01-29,marketed sale,64,65,267,265.0,2.5,45,2.5,85.0,46.0,325.0,209.0,157.0,126.0,55.0,dual,N,4th,Y,,2602.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,0.0,0.0,"Electric immersion, off-peak",Poor,Poor,(another dwelling below),NO DATA!,,Fully double glazed,Good,Good,"System built, as built, insulated (assumed)",Good,Good,,,,"Flat, insulated (assumed)",Good,Good,"Room heaters, electric",Very Poor,Poor,Appliance thermostats,Good,Good,No low energy lighting,Very Poor,Very Poor,electricity (not community),0.0,unheated corridor,9.85,,,N,natural,"Apartment 49 Sandling Park, Sandling Lane",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2015-01-29 20:06:04,owner-occupied,,,10014307144.0,Address Matched +1441300659302016050906555540460138,"16, Cudham Close",,,ME14 5QG,6385154478,C,C,71,77,Maisonette,End-Terrace,2016-05-07,E07000110,E14000804,Kent,2016-05-09,rental (private),70,79,213,151.0,2.2,38,1.5,46.0,46.0,419.0,292.0,93.0,94.0,58.0,dual,Y,Ground,N,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,no corridor,,2.3,,N,natural,"16, Cudham Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2016-05-09 06:55:55,rental (private),,,200003671519.0,Address Matched +51584164252012010521165193020253,1 Ash Court,Graveney Road,,ME15 8QL,2363437568,C,C,79,80,Flat,Semi-Detached,2012-01-05,E07000110,E14000700,Kent,2012-01-05,rental (social),83,83,117,114.0,1.4,22,1.3,48.0,39.0,243.0,244.0,77.0,77.0,62.08,Single,Y,Ground,N,,2103.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,75.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",,,Fully double glazed,Good,Good,"Timber frame, as built, insulated (assumed)",Very Good,Very Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,Room thermostat only,Poor,Poor,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,9.1,2.29,0.0,,natural,"1 Ash Court, Graveney Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2007 onwards,2012-01-05 21:16:51,rental (social),8.0,6.0,10014306306.0,Address Matched +417917919032010010816165907068303,"26, Woodside Road",,,ME15 9AY,1367321768,D,D,67,68,House,Semi-Detached,2010-01-08,E07000110,E14000700,Kent,2010-01-08,rental (social),62,62,268,266.0,3.4,45,3.4,51.0,39.0,524.0,526.0,109.0,109.0,76.54,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,More Than Typical,1.0,4.0,4.0,70.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 70% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.41,0.0,N,natural,"26, Woodside Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2010-01-08 16:16:59,rental (social),,,200003713658.0,Address Matched +1492581519302016110115020643860198,"14a, Honywood Road",Lenham,,ME17 2HQ,1314618478,D,B,68,84,House,Semi-Detached,2016-11-01,E07000110,E14000700,Kent,2016-11-01,marketed sale,65,81,221,106.0,3.1,39,1.5,90.0,54.0,519.0,486.0,141.0,83.0,80.0,Single,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,33.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 270 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 33% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,2.31,,N,natural,"14a, Honywood Road, Lenham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2016-11-01 15:02:06,owner-occupied,,,200003732441.0,Address Matched +1548618719502017060511081451230798,"25, Hazelwood Drive",,,ME16 0EA,588312578,C,B,70,86,House,Detached,2017-06-01,E07000110,E14000804,Kent,2017-06-05,FiT application,65,84,189,73.0,3.6,33,1.4,67.0,67.0,632.0,448.0,119.0,78.0,107.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,7.0,7.0,100.0,0.0,"From main system, plus solar",Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,Y,natural,"25, Hazelwood Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2017-06-05 11:08:14,owner-occupied,,,200003691892.0,Address Matched +33801180962008101322230312708708,9a Bower Street,,,ME16 8SB,101832568,G,E,20,44,Flat,Semi-Detached,2008-10-10,E07000110,E14000804,Kent,2008-10-13,rental (private),45,40,534,595.0,4.2,81,4.6,25.0,25.0,885.0,481.0,158.0,158.0,51.58,dual,N,Ground,N,2.0,2603.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,100.0,0.0,Electric instantaneous at point of use,Very Poor,Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,(another dwelling above),,,"Room heaters, electric",Very Poor,Poor,Programmer and appliance thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.38,0.0,N,natural,9a Bower Street,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2008-10-13 22:23:03,rental (private),,,10014307359.0,Address Matched +367015860242009092111150765719788,"5, Farington Close",,,ME16 0WN,267767668,C,C,76,79,House,Mid-Terrace,2009-09-18,E07000110,E14000804,Kent,2009-09-21,rental (private),75,79,206,177.0,1.8,33,1.6,54.0,29.0,267.0,258.0,113.0,99.0,53.8,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,12.0,0.0,From main system,Good,Good,"Suspended, limited insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,"Pitched, 250mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 12% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.26,0.0,N,natural,"5, Farington Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2009-09-21 11:15:07,rental (private),,,10022893181.0,Address Matched +440255409962010021719551722638780,3 Willow Court,Pickering Street,,ME15 9RU,8274082768,E,D,54,66,Flat,Mid-Terrace,2010-02-17,E07000110,E14000804,Kent,2010-02-17,marketed sale,44,57,547,396.0,4.1,85,3.0,46.0,28.0,546.0,419.0,79.0,79.0,48.42,dual,Y,Ground,N,2.0,2401.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,34.0,0.0,Gas multipoint,Average,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,(another dwelling above),,,Electric storage heaters,Poor,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 34% of fixed outlets,Average,Average,electricity - this is for backwards compatibility only and should not be used,0.0,unheated corridor,5.4,2.35,0.0,N,natural,"3 Willow Court, Pickering Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2010-02-17 19:55:17,owner-occupied,,,200003676006.0,Address Matched +995512738732013082311310115278908,1 Chapel Cottages,Laddingford,,ME18 6BT,3865992178,D,B,62,85,House,Semi-Detached,2013-08-22,E07000110,E14000804,Kent,2013-08-23,marketed sale,64,88,231,72.0,2.9,41,0.8,71.0,47.0,551.0,421.0,131.0,79.0,72.0,dual,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,3.0,5.0,5.0,50.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, wood logs",,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"1 Chapel Cottages, Laddingford",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2013-08-23 11:31:01,owner-occupied,12.0,6.0,200003724282.0,Address Matched +294439470222009102210443252628291,54 Hughenden Reach,Tovil,,ME15 6ZL,9585752668,B,B,85,86,Flat,NO DATA!,2009-10-22,E07000110,E14000804,Kent,2009-10-22,new dwelling,85,86,107,101.0,1.4,18,1.3,65.0,43.0,207.0,209.0,91.0,91.0,79.3,standard tariff,,mid floor,,,2106.0,,NO DATA!,NO DATA!,,,,4.0,0.0,From main system,Very Good,Very Good,(other premises below),,,Fully double glazed,Good,Good,Average thermal transmittance 0.35 W/m?K,Good,Good,,,,Average thermal transmittance 0.19 W/m?K,Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 50% fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"54 Hughenden Reach, Tovil",Maidstone,Maidstone and The Weald,MAIDSTONE,,2009-10-22 10:44:32,,,,10014308517.0,Address Matched +653906849642014122912293485842248,"16, Grey Wethers",Sandling,,ME14 3DW,3683248868,D,B,64,84,House,Detached,2014-12-24,E07000110,E14000700,Kent,2014-12-29,assessment for green deal,57,81,242,92.0,4.7,43,1.8,74.0,74.0,823.0,518.0,128.0,82.0,110.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,5.0,5.0,83.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 83% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"16, Grey Wethers, Sandling",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2014-12-29 12:29:34,owner-occupied,,,200003672738.0,Address Matched +277836140342009050211465168110328,13Second Floor Granada House,Lower Stone Street,,ME15 6JS,3394241668,D,C,65,69,Flat,Detached,2009-05-02,E07000110,E14000804,Kent,2009-05-02,rental (private),59,63,323,289.0,3.2,53,2.8,41.0,28.0,472.0,431.0,74.0,74.0,58.9,Single,Y,2nd,Y,3.0,2107.0,70.0,secondary glazing,Normal,0.0,3.0,3.0,57.0,0.0,From main system,Very Good,Very Good,(other premises below),,,Partial secondary glazing,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Flat, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, TRVs and bypass",Poor,Poor,Low energy lighting in 57% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.5,0.0,N,natural,"13Second Floor Granada House, Lower Stone Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2009-05-02 11:46:51,rental (private),,,200003693634.0,Address Matched +346588708132009081709351441968503,"16, Sandlewood Court",,,ME16 0ZG,391526668,B,B,85,86,Flat,Mid-Terrace,2009-08-17,E07000110,E14000804,Kent,2009-08-17,rental (social),84,85,109,105.0,1.6,18,1.5,64.0,48.0,231.0,233.0,89.0,89.0,86.8,Single,Y,2nd,Y,3.0,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,66.0,0.0,From main system,Very Good,Very Good,(other premises below),,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 66% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,unheated corridor,1.0,2.4,0.0,N,natural,"16, Sandlewood Court",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2009-08-17 09:35:14,rental (social),,,10014306179.0,Address Matched +be023d723da271972e8e5e2930d3a819ff7aae617f0596799ed4dd23a797bb98,2 ARLOTT CLOSE,,,ME14 2XJ,10001401768,C,B,71,84,House,End-Terrace,2021-06-26,E07000110,E14000804,Kent,2021-07-30,not sale or rental,67,81,189,93.0,3.2,33,1.6,88.0,88.0,506.0,453.0,125.0,80.0,95.0,Single,Y,,,,,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,86.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Roof room(s), insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 86% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.6,0.0,N,natural,2 ARLOTT CLOSE,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1991-1995,2021-07-30 15:13:28,Rented (social),14.0,,200003669980.0,Energy Assessor +822376069062012081500120030068402,"Lavender, Woodlands",Lughorse Lane,Yalding,ME18 6EB,316670078,D,B,64,84,Bungalow,Semi-Detached,2012-08-06,E07000110,E14000804,Kent,2012-08-15,marketed sale,71,89,132,29.0,3.1,29,1.0,116.0,58.0,578.0,551.0,245.0,109.0,106.0,Single,N,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,0.0,0.0,From main system,Poor,Average,"Solid, insulated (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, LPG",Poor,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,LPG (not community),0.0,NO DATA!,,,0.0,,natural,"Lavender, Woodlands, Lughorse Lane, Yalding",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2012-08-15 00:12:00,owner-occupied,20.0,0.0,200003661633.0,Address Matched +1208953179962014092208383398088934,"8, Otteridge Road",Bearsted,,ME14 4JR,3913708278,D,B,57,85,House,Semi-Detached,2014-09-18,E07000110,E14000700,Kent,2014-09-22,marketed sale,53,85,257,68.0,4.5,49,1.2,110.0,55.0,758.0,448.0,194.0,88.0,91.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,0.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"8, Otteridge Road, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2014-09-22 08:38:33,owner-occupied,10.0,0.0,200003692304.0,Address Matched +be0fd1b7564698a857d8d73dbcd77f689a41dfed7598634ecdd5536bd85ed264,29 Gleaming Wood Drive,,,ME5 8XY,10001493510,D,B,68,91,House,Enclosed End-Terrace,2021-09-04,E07000110,E14000700,Kent,2021-09-06,marketed sale,68,92,270,38.0,2.0,48,0.3,46.0,46.0,362.0,274.0,80.0,47.0,42.0,Single,Y,,,,,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,80.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.4,0.0,N,natural,29 Gleaming Wood Drive,Maidstone,Faversham and Mid Kent,CHATHAM,England and Wales: 1983-1990,2021-09-06 09:17:34,Owner-occupied,5.0,,200003673808.0,Energy Assessor +1401437579042017021412233747139448,"10, Adisham Drive",,,ME16 0NL,5097071478,C,B,79,91,House,Semi-Detached,2017-02-14,E07000110,E14000804,Kent,2017-02-14,rental (private),71,89,141,36.0,2.2,26,0.6,80.0,57.0,539.0,434.0,256.0,74.0,85.0,Single,Y,NODATA!,,,2107.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,58.0,1.0,"From main system, no cylinder thermostat",Poor,Poor,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 58% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"10, Adisham Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1976-1982,2017-02-14 12:23:37,rental (private),,,200003659863.0,Address Matched +189489657812009051913424508289652,"14, Gullands",Langley,,ME17 1SU,6280784568,C,C,72,74,House,Semi-Detached,2008-11-21,E07000110,E14000700,Kent,2009-05-19,rental (social),69,70,224,215.0,2.7,37,2.6,68.0,34.0,340.0,346.0,113.0,113.0,71.4,Single,Y,NO DATA!,,,2106.0,0.0,single glazing,Normal,0.0,4.0,4.0,0.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.27,0.0,N,natural,"14, Gullands, Langley",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1976-1982,2009-05-19 13:42:45,rental (social),,,200003697403.0,Address Matched +121396032332017022401373329968703,"6, Clinton Close",Coxheath,,ME17 4DZ,3359788468,F,D,30,66,House,End-Terrace,2017-02-14,E07000110,E14000804,Kent,2017-02-24,marketed sale,34,66,470,202.0,7.4,81,3.2,79.0,59.0,1650.0,978.0,160.0,75.0,90.0,Single,Y,NODATA!,,,2106.0,90.0,double glazing installed during or after 2002,Normal,1.0,5.0,4.0,67.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Mostly double glazing,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,Portable electric heaters (assumed),,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 67% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"6, Clinton Close, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2017-02-24 01:37:33,owner-occupied,,,200003671666.0,Address Matched +1656069779602018081520563455989258,"18, Bracken Hill",,,ME5 9QQ,3603979578,D,B,65,81,House,Detached,2018-08-15,E07000110,E14000700,Kent,2018-08-15,marketed sale,60,78,234,120.0,3.9,41,2.0,127.0,64.0,613.0,545.0,136.0,81.0,95.0,Single,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,2.0,7.0,7.0,0.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, mains gas",,,"Pitched, insulated (assumed)",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"18, Bracken Hill",Maidstone,Faversham and Mid Kent,CHATHAM,England and Wales: 1983-1990,2018-08-15 20:56:34,owner-occupied,,,200003709076.0,Address Matched +500133431252012081419552990020975,"20, Church Street",Tovil,,ME15 6RB,9516107768,C,C,74,75,Flat,Enclosed Mid-Terrace,2012-08-06,E07000110,E14000804,Kent,2012-08-14,rental (social),77,78,164,154.0,1.5,31,1.4,56.0,31.0,274.0,277.0,73.0,73.0,48.0,Single,Y,1st,Y,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,20.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 20% of fixed outlets,Poor,Poor,mains gas (not community),0.0,unheated corridor,5.58,,0.0,,natural,"20, Church Street, Tovil",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2012-08-14 19:55:29,rental (social),5.0,1.0,200003664641.0,Address Matched +1500681679542016112907261045862258,"39, Thornhill Place",,,ME14 2SF,3564178478,D,B,58,88,House,Mid-Terrace,2016-11-25,E07000110,E14000804,Kent,2016-11-29,marketed sale,53,87,325,68.0,3.5,57,0.8,95.0,48.0,641.0,380.0,106.0,49.0,62.0,dual,Y,NODATA!,,,2107.0,100.0,"double glazing, unknown install date",Normal,1.0,3.0,3.0,0.0,0.0,From main system,Good,Good,"To unheated space, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"39, Thornhill Place",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2016-11-29 07:26:10,owner-occupied,,,200003702451.0,Address Matched +1580582958252017100712570193039954,Anbro,Pickering Street,Loose,ME15 9RH,9496834578,D,B,67,86,House,End-Terrace,2017-10-07,E07000110,E14000804,Kent,2017-10-07,marketed sale,64,85,222,82.0,3.4,39,1.3,114.0,57.0,527.0,433.0,160.0,75.0,87.0,Single,Y,NODATA!,,,2107.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"Anbro, Pickering Street, Loose",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2017-10-07 12:57:01,owner-occupied,,,200003725490.0,Address Matched +63451872132019120617224231068091,"38, Melville Road",,,ME15 7UR,7161034468,E,C,44,77,House,Detached,2019-12-03,E07000110,E14000804,Kent,2019-12-06,rental (social),37,72,447,170.0,6.1,79,2.4,73.0,73.0,1056.0,602.0,116.0,70.0,77.0,Unknown,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,2.0,4.0,4.0,77.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 77% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"38, Melville Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2019-12-06 17:22:42,rental (social),,,200003695929.0,Address Matched +1652500781312018081015122195980850,Flat 2,70b Bank Street,,ME14 1SN,8062159578,C,C,79,79,Flat,Mid-Terrace,2018-08-10,E07000110,E14000804,Kent,2018-08-10,new dwelling,83,83,126,126.0,1.1,22,1.1,41.0,41.0,198.0,198.0,64.0,64.0,48.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,(other premises below),,,Full secondary glazing,Good,Good,Average thermal transmittance 0.52 W/m-¦K,Good,Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Flat 2, 70b Bank Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2018-08-10 15:12:21,rental (private),13.0,13.0,10093307331.0,Address Matched +480701794712010050521363796000874,"7, Orbit Close",,,ME5 9NF,8434465768,F,D,31,62,House,Mid-Terrace,2010-05-05,E07000110,E14000700,Kent,2010-05-05,marketed sale,49,50,431,422.0,4.3,64,4.3,75.0,38.0,923.0,422.0,127.0,127.0,65.72,dual,N,NO DATA!,,,2699.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,0.0,0.0,"Electric immersion, off-peak",Average,Poor,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,"Pitched, 150 mm loft insulation",Good,Good,"Room heaters, electric",Very Poor,Poor,,Very Poor,Very Poor,No low energy lighting,Very Poor,Very Poor,electricity - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.24,0.0,N,natural,"7, Orbit Close",Maidstone,Faversham and Mid Kent,CHATHAM,England and Wales: 1983-1990,2010-05-05 21:36:37,owner-occupied,,,200003708098.0,Address Matched +be18cfe9b41319d65518c48b44a13da2ee07029ef49d2c42d2a6d977f7d78d3e,4 CLOVER TERRACE,NORTHUMBERLAND ROAD,,ME15 7SY,10001510602,E,B,53,81,House,End-Terrace,2021-06-28,E07000110,E14000700,Kent,2021-07-01,ECO assessment,49,79,313,113.0,5.3,55,2.0,152.0,76.0,986.0,603.0,149.0,80.0,98.0,Single,Y,,,,,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,0.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,"Pitched, insulated (assumed)",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,,,2.75,0.0,N,natural,"4 CLOVER TERRACE, NORTHUMBERLAND ROAD",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2021-07-01 10:48:54,Rented (social),10.0,,200003714084.0,Energy Assessor +236667057132009030415493732068003,57 Mandeville Court,Union Street,,ME14 1JY,5342068568,C,C,71,72,Flat,Enclosed Mid-Terrace,2009-03-04,E07000110,E14000804,Kent,2009-03-04,marketed sale,64,65,365,360.0,2.3,55,2.3,42.0,21.0,186.0,192.0,108.0,108.0,42.4,dual,N,2nd,Y,3.0,2401.0,100.0,double glazing installed before 2002,Normal,0.0,2.0,2.0,0.0,0.0,"Electric immersion, off-peak",Very Poor,Poor,(other premises below),,,Fully double glazed,Average,Average,"Timber frame, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,"Pitched, insulated (assumed)",Good,Good,Electric storage heaters,Poor,Very Poor,Manual charge control,Poor,Poor,No low energy lighting,Very Poor,Very Poor,electricity - this is for backwards compatibility only and should not be used,0.0,heated corridor,,2.4,0.0,N,natural,"57 Mandeville Court, Union Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1991-1995,2009-03-04 15:49:37,owner-occupied,,,200003700734.0,Address Matched +1313270695952015042216473194250730,"1, Russell Road",Marden,,TN12 9FL,7086545378,B,B,86,88,House,Detached,2015-04-22,E07000110,E14000804,Kent,2015-04-22,new dwelling,86,87,74,62.0,1.7,13,1.4,70.0,70.0,400.0,401.0,106.0,58.0,128.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.19 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.28 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.15 W/m-¦K,Good,Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"1, Russell Road, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,NO DATA!,2015-04-22 16:47:31,unknown,10.0,10.0,10014315708.0,Address Matched +407081407812009120219470504019973,"13, Anerley Close",,,ME16 0RR,9382740768,E,C,45,72,Bungalow,Semi-Detached,2009-12-02,E07000110,E14000804,Kent,2009-12-02,marketed sale,40,67,490,246.0,5.3,82,2.7,65.0,32.0,694.0,415.0,211.0,96.0,73.08,Unknown,Y,NO DATA!,,,2102.0,100.0,double glazing installed before 2002,Normal,1.0,3.0,2.0,0.0,0.0,"From main system, no cylinder thermostat",Poor,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Average,Good,"Programmer, no room thermostat",Very Poor,Very Poor,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.42,0.0,N,natural,"13, Anerley Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2009-12-02 19:47:05,owner-occupied,,,200003660938.0,Address Matched +1143898752452014052022452295240529,"11, Bredgar Close",,,ME14 5NG,5903253278,B,B,83,88,House,Semi-Detached,2014-05-20,E07000110,E14000804,Kent,2014-05-20,FiT application,79,86,87,52.0,2.3,18,1.4,91.0,67.0,784.0,671.0,101.0,60.0,131.0,Single,Y,NODATA!,,,2502.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,65.0,0.0,Gas multipoint,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Warm air, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,Low energy lighting in 65% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,,natural,"11, Bredgar Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2014-05-20 22:45:22,owner-occupied,26.0,17.0,200003705737.0,Address Matched +831581119262016052513572431458556,"93, Holland Road",,,ME14 1UN,5320141078,E,C,41,76,House,Semi-Detached,2016-05-25,E07000110,E14000804,Kent,2016-05-25,ECO assessment,33,68,339,128.0,15.0,63,5.7,203.0,104.0,2774.0,1282.0,171.0,91.0,239.0,Single,Y,NODATA!,,,2104.0,0.0,not defined,Normal,1.0,10.0,7.0,0.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Single glazed,Very Poor,Very Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, dual fuel (mineral and wood)",,,"Roof room(s), no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,2.98,,N,natural,"93, Holland Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2016-05-25 13:57:24,owner-occupied,,,200003699022.0,Address Matched +89331318112018100414190293089540,"65, Grampian Way",Downswood,,ME15 8TG,5074836468,C,A,74,92,House,Enclosed End-Terrace,2018-10-04,E07000110,E14000700,Kent,2018-10-04,rental (private),76,94,208,26.0,1.4,37,0.2,31.0,31.0,260.0,243.0,83.0,61.0,39.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,100.0,0.0,From main system,Very Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"65, Grampian Way, Downswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2018-10-04 14:19:02,rental (private),,,200003691101.0,Address Matched +404944320262009112810022940438001,Hill Cottage,Chart Road,Chart Sutton,ME17 3RG,445230768,F,E,38,42,House,End-Terrace,2009-11-27,E07000110,E14000700,Kent,2009-11-28,marketed sale,42,46,472,438.0,6.5,67,5.9,91.0,48.0,1099.0,1078.0,158.0,123.0,95.7,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,3.0,3.0,10.0,1.0,"From main system, no cylinder thermostat",Average,Average,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Timber frame, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, insulated at rafters",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 10% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,0.0,N,natural,"Hill Cottage, Chart Road, Chart Sutton",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2009-11-28 10:02:29,owner-occupied,,,200003690253.0,Address Matched +617060169312011041316561397990180,"10, Peter Pease Close",Kingswood,,ME17 3BZ,1048975868,B,B,87,87,Flat,Mid-Terrace,2011-04-13,E07000110,E14000700,Kent,2011-04-13,new dwelling,87,87,108,105.0,1.0,18,0.9,38.0,30.0,196.0,196.0,78.0,78.0,104.24,standard tariff,,top floor,,,,,NO DATA!,NO DATA!,,,,,,From main system,Very Good,Very Good,Average thermal transmittance 0.01 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.20 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.13 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,,,NO DATA!,"10, Peter Pease Close, Kingswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2011-04-13 16:56:13,,,,10014312167.0,Address Matched +598340870652013010722393893029880,"1, Eling Court",,,ME15 6DE,8047034868,C,C,72,75,Flat,Enclosed End-Terrace,2012-12-04,E07000110,E14000804,Kent,2013-01-07,rental (social),77,81,206,169.0,1.3,39,1.1,30.0,22.0,264.0,229.0,68.0,69.0,33.0,Single,Y,Ground,N,,2106.0,100.0,double glazing installed before 2002,More Than Typical,0.0,2.0,2.0,60.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 60% of fixed outlets,Good,Good,mains gas (not community),0.0,unheated corridor,2.7,,0.0,,natural,"1, Eling Court",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1976-1982,2013-01-07 22:39:38,rental (social),5.0,3.0,10022901434.0,Address Matched +1308236409022015041015022475918645,"11, Saracen Fields",Walderslade,,ME5 9DG,4778015378,C,B,70,85,House,Detached,2015-04-09,E07000110,E14000700,Kent,2015-04-10,marketed sale,67,82,194,91.0,3.5,34,1.7,126.0,68.0,554.0,512.0,161.0,85.0,102.0,dual,Y,NODATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,0.0,7.0,7.0,14.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 14% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"11, Saracen Fields, Walderslade",Maidstone,Faversham and Mid Kent,CHATHAM,England and Wales: 1983-1990,2015-04-10 15:02:24,owner-occupied,,,200003673842.0,Address Matched +279232269222019043017114031718021,"9, Cutbush Close",Harrietsham,,ME17 1LY,2381651668,D,B,68,83,House,Semi-Detached,2019-04-29,E07000110,E14000700,Kent,2019-04-30,rental (private),64,80,208,104.0,3.9,37,2.0,120.0,71.0,577.0,532.0,166.0,73.0,106.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,4.0,4.0,32.0,0.0,From main system,Good,Good,"Solid, limited insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 32% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"9, Cutbush Close, Harrietsham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1996-2002,2019-04-30 17:11:40,rental (private),,,10022892567.0,Address Matched +603488079102018052813092483489028,"7, Upper Fant Road",,,ME16 8BP,8122174868,F,C,23,73,House,End-Terrace,2018-04-12,E07000110,E14000804,Kent,2018-05-28,rental (private),9,49,660,236.0,26.0,112,9.4,238.0,119.0,4160.0,1407.0,179.0,179.0,235.0,dual,N,NODATA!,,,2401.0,100.0,"double glazing, unknown install date",Normal,2.0,10.0,10.0,0.0,0.0,"Electric immersion, off-peak",Average,Poor,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,Portable electric heaters (assumed),,,"Pitched, 300 mm loft insulation",Very Good,Very Good,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,No low energy lighting,Very Poor,Very Poor,electricity (not community),0.0,NO DATA!,,,,N,natural,"7, Upper Fant Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2018-05-28 13:09:24,rental (private),,,200003668309.0,Address Matched +1156581966432014061309544168978608,Flat 19 Elizabeth House,Alexandra Street,,ME14 2BU,6878634278,D,B,68,81,Flat,Mid-Terrace,2014-06-12,E07000110,E14000804,Kent,2014-06-13,none of the above,60,71,354,262.0,2.2,63,1.6,31.0,33.0,330.0,125.0,125.0,105.0,35.0,dual,N,Ground,N,,2602.0,100.0,double glazing installed during or after 2002,Normal,0.0,1.0,1.0,75.0,0.0,"Electric immersion, off-peak",Average,Very Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,(another dwelling above),,,"Room heaters, electric",Poor,Very Poor,Appliance thermostats,Good,Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,electricity (not community),0.0,no corridor,,,0.0,,natural,"Flat 19 Elizabeth House, Alexandra Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2014-06-13 09:54:41,rental (private),4.0,3.0,200003728128.0,Address Matched +199741320922008121114250095098118,"118, Plains Avenue",,,ME15 7AY,1966255568,D,C,64,72,House,Mid-Terrace,2008-12-11,E07000110,E14000700,Kent,2008-12-11,marketed sale,64,72,240,188.0,3.8,39,3.0,88.0,47.0,479.0,403.0,117.0,101.0,95.95,dual,Y,NO DATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,1.0,7.0,7.0,13.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, 100mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Poor,Poor,Low energy lighting in 13% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.44,0.0,N,natural,"118, Plains Avenue",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2008-12-11 14:25:00,owner-occupied,,,200003714238.0,Address Matched +788237675232012051420035578968508,Ivy Mill House,Hayle Mill Road,,ME15 6XF,7848538968,E,D,44,62,House,Detached,2012-05-14,E07000110,E14000804,Kent,2012-05-14,marketed sale,38,53,285,194.0,14.0,55,9.5,166.0,96.0,2299.0,1822.0,123.0,116.0,252.0,dual,Y,NODATA!,,,2107.0,25.0,"double glazing, unknown install date",Normal,1.0,9.0,9.0,24.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Some double glazing,Poor,Poor,"Timber frame, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 24% of fixed outlets,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"Ivy Mill House, Hayle Mill Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2012-05-14 20:03:55,owner-occupied,25.0,6.0,10014306794.0,Address Matched +151844279102013121218275458179398,"1, Peel Street",,,ME14 2SA,4113471568,E,B,50,86,House,Semi-Detached,2013-12-11,E07000110,E14000804,Kent,2013-12-12,none of the above,47,87,345,61.0,3.9,66,0.8,68.0,36.0,711.0,375.0,89.0,61.0,59.0,Single,Y,NODATA!,,,2104.0,80.0,double glazing installed before 2002,Normal,1.0,3.0,3.0,13.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Mostly double glazing,Poor,Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 13% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"1, Peel Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2013-12-12 18:27:54,rental (private),15.0,2.0,200003702327.0,Address Matched +704317199202011102216064095192628,The Oaks,Grove Green Lane,Weavering,ME14 5JW,3230591968,B,B,85,85,House,Detached,2011-10-22,E07000110,E14000700,Kent,2011-10-22,new dwelling,86,86,72,72.0,2.6,13,2.6,78.0,78.0,458.0,458.0,94.0,94.0,203.9,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,16.0,,From main system,Good,Good,Average thermal transmittance 0.15 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.20 W/m?K,Very Good,Very Good,"Room heaters, wood logs",,,Average thermal transmittance 0.09 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.35,,,NO DATA!,"The Oaks, Grove Green Lane, Weavering",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2011-10-22 16:06:40,,16.0,16.0,10014312129.0,Address Matched +1615339189742018031411563652689948,Flat 6,"2, Oaken Wood Drive",,ME16 9FE,8748486578,B,B,84,84,Flat,Detached,2018-03-14,E07000110,E14000804,Kent,2018-03-14,new dwelling,88,88,79,79.0,0.9,14,0.9,52.0,52.0,152.0,152.0,72.0,72.0,64.0,standard tariff,,top floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.18 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Flat 6, 2, Oaken Wood Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2018-03-14 11:56:36,unknown,20.0,20.0,10093304524.0,Address Matched +1810144167812020071415295129900371,Flat 52 Ulysses House,Rosalind Drive,,ME14 2FL,3101790778,B,B,84,84,Flat,Mid-Terrace,2020-07-14,E07000110,E14000804,Kent,2020-07-14,new dwelling,89,89,86,86.0,0.8,15,0.8,46.0,46.0,133.0,133.0,82.0,82.0,50.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.55 W/m-¦K,Good,Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Flat 52 Ulysses House, Rosalind Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2020-07-14 15:29:51,unknown,14.0,14.0,10094441440.0,Address Matched +1553236549962018011914443902218658,"6, Bobbin Close",Headcorn,,TN27 9AW,5071442578,B,A,85,92,House,Detached,2018-01-19,E07000110,E14000700,Kent,2018-01-19,new dwelling,85,92,74,35.0,2.4,13,1.2,95.0,95.0,391.0,393.0,104.0,57.0,187.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.17 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.21 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"6, Bobbin Close, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,NO DATA!,2018-01-19 14:44:39,unknown,20.0,20.0,10093304376.0,Address Matched +1012894521732013093009422844778401,"317a, Tonbridge Road",,,ME16 8NH,2184424178,D,C,57,73,Flat,Mid-Terrace,2013-09-30,E07000110,E14000804,Kent,2013-09-30,none of the above,55,76,335,175.0,2.9,65,1.5,29.0,29.0,437.0,280.0,196.0,100.0,44.0,Unknown,Y,1st,Y,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,2.0,2.0,100.0,0.0,"From main system, no cylinder thermostat",Poor,Poor,(other premises below),,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,1.0,,0.0,,natural,"317a, Tonbridge Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2013-09-30 09:42:28,rental (private),5.0,5.0,10094441495.0,Address Matched +605635587652011031712303298990088,"22, Peel Street",,,ME14 2SA,817784868,D,D,62,63,House,Mid-Terrace,2011-03-17,E07000110,E14000804,Kent,2011-03-17,marketed sale,56,56,311,308.0,4.1,51,4.1,56.0,43.0,689.0,692.0,101.0,101.0,79.46,Single,Y,NO DATA!,,,2106.0,60.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,70.0,1.0,From main system,Very Good,Very Good,"Suspended, no insulation (assumed)",,,Partial double glazing,Poor,Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, mains gas",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 70% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.38,0.0,N,natural,"22, Peel Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2011-03-17 12:30:32,owner-occupied,,,200003702341.0,Address Matched +493298559502010060206352178600098,Rose Cottage,Sutton Road,Langley,ME17 3LZ,9512156768,D,D,59,60,House,Semi-Detached,2010-06-01,E07000110,E14000700,Kent,2010-06-02,marketed sale,62,63,358,350.0,2.9,51,2.8,58.0,29.0,558.0,565.0,83.0,83.0,57.08,Single,Y,NO DATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,1.0,3.0,3.0,0.0,1.0,From main system,Very Good,Very Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Very Good,Very Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.41,0.0,N,natural,"Rose Cottage, Sutton Road, Langley",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1900-1929,2010-06-02 06:35:21,owner-occupied,,,200003694529.0,Address Matched +1612220493652018030210460596080755,"84, Marion Crescent",,,ME15 7DU,7524366578,D,B,67,81,House,Detached,2018-03-02,E07000110,E14000700,Kent,2018-03-02,marketed sale,63,77,226,127.0,3.6,40,2.1,62.0,62.0,620.0,557.0,109.0,73.0,91.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,6.0,6.0,100.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, 270 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"84, Marion Crescent",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2018-03-02 10:46:05,owner-occupied,,,200003677412.0,Address Matched +393492013812009110616154805019166,"55, Clifford Way",,,ME16 8GD,1632359668,B,B,88,88,Flat,Enclosed Mid-Terrace,2009-11-06,E07000110,E14000804,Kent,2009-11-06,marketed sale,88,88,121,116.0,0.8,20,0.7,30.0,21.0,155.0,155.0,63.0,63.0,38.9,Single,Y,2nd,N,6.0,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,60.0,0.0,From main system,Very Good,Very Good,(other premises below),,,Fully double glazed,Good,Good,"System built, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 60% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,unheated corridor,1.2,,0.0,N,natural,"55, Clifford Way",Maidstone,Maidstone and The Weald,MAIDSTONE,,2009-11-06 16:15:48,owner-occupied,,,10022896068.0,Address Matched +598560722932011030107313356268301,"52, The Cockpit",Marden,,TN12 9TQ,2166334868,D,C,61,76,House,Mid-Terrace,2011-02-28,E07000110,E14000804,Kent,2011-03-01,rental (private),54,73,320,188.0,4.4,54,2.6,54.0,44.0,612.0,413.0,219.0,117.0,81.63,Single,Y,NO DATA!,,,2104.0,50.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,78.0,0.0,"From main system, no cylinder thermostat",Poor,Average,"Solid, no insulation (assumed)",,,Partial double glazing,Poor,Poor,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Average,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 78% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,0.0,N,natural,"52, The Cockpit, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1967-1975,2011-03-01 07:31:33,rental (private),,,200003726985.0,Address Matched +467655244732013042720114045968209,"4, Mill Close",Lenham,,ME17 2LF,4905274768,D,B,63,87,House,Semi-Detached,2013-04-19,E07000110,E14000700,Kent,2013-04-27,assessment for green deal,63,88,241,56.0,2.7,46,0.7,45.0,35.0,494.0,360.0,76.0,54.0,58.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,71.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 71% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"4, Mill Close, Lenham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2013-04-27 20:11:40,owner-occupied,7.0,5.0,200003707305.0,Address Matched +526049789202017091520474670839358,"88, Queens Road",,,ME16 0LG,4292588768,C,C,70,76,Flat,Detached,2017-09-15,E07000110,E14000804,Kent,2017-09-15,rental (social),69,77,226,167.0,2.1,40,1.6,40.0,40.0,340.0,234.0,132.0,134.0,53.0,Single,Y,1st,N,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, partial insulation (assumed)",Average,Average,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,no corridor,,,,N,natural,"88, Queens Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1976-1982,2017-09-15 20:47:46,rental (social),,,200003690599.0,Address Matched +1311776939802015041918003934559868,"177, London Road",,,ME16 0HA,4879435378,D,B,58,82,House,Semi-Detached,2015-04-16,E07000110,E14000804,Kent,2015-04-19,marketed sale,51,78,283,107.0,4.9,50,1.9,91.0,60.0,915.0,579.0,95.0,61.0,99.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,2.0,6.0,6.0,50.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"177, London Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2015-04-19 18:00:39,owner-occupied,,,200003659102.0,Address Matched +be7c3f65614a307ff74581fc16ab48687207f43d0e31af11e54b8618027a7afa,17 HEARNE COURT,,,ME15 6QD,10001373407,B,B,81,81,Flat,,2021-07-15,E07000110,E14000804,Kent,2021-07-15,new dwelling,83,83,124,124.0,1.3,21,1.3,60.0,60.0,157.0,157.0,267.0,267.0,63.0,standard tariff,,1,N,,,100.0,,,,,,100.0,0.0,From main system,Poor,Average,Average thermal transmittance 0.09 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.22 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,"Air source heat pump, radiators, electric",Good,Very Good,2207 Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",0.0,,,2.4,,,,17 HEARNE COURT,Maidstone,Maidstone and The Weald,TOVIL,2021,2021-07-15 08:47:23,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,25.0,,10095448649.0,Energy Assessor +1370131949942015100116293435950898,"82, Boxley Road",Penenden Heath,,ME14 2BQ,3983849378,D,C,60,76,Flat,Semi-Detached,2015-10-01,E07000110,E14000804,Kent,2015-10-01,rental (private),54,77,308,153.0,3.7,54,1.8,48.0,48.0,695.0,339.0,112.0,99.0,68.0,Single,Y,Basement,N,,2107.0,100.0,"double glazing, unknown install date",Normal,1.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,no corridor,,,,N,natural,"82, Boxley Road, Penenden Heath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2015-10-01 16:29:34,rental (private),,,200003701972.0,Address Matched +be953e0ae2d29f6aea32b2505e7ef3fbacc6adf813cc6843e6d4b83ad47dbed6,FLAT 4,115 SEYMOUR DRIVE,,TN12 9GS,10001697242,B,B,83,83,Flat,Detached,2021-07-19,E07000110,E14000804,Kent,2021-07-19,new dwelling,86,86,90,90.0,1.1,16,1.1,68.0,68.0,194.0,194.0,70.0,70.0,71.0,standard tariff,,1,N,,,100.0,,,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.22 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.39,,,,"FLAT 4, 115 SEYMOUR DRIVE",Maidstone,Maidstone and The Weald,MARDEN,2018,2021-07-19 14:59:55,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,10.0,,10094441157.0,Energy Assessor +594856909502011022017312686492708,15 Cleveland Court,Woodford Road,,ME16 9BU,7541404868,D,C,59,71,Flat,Detached,2011-02-20,E07000110,E14000804,Kent,2011-02-20,marketed sale,52,66,364,256.0,4.0,61,2.8,55.0,36.0,607.0,465.0,159.0,112.0,65.6,Unknown,Y,2nd,Y,3.0,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,50.0,0.0,From main system,Average,Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Flat, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Average,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.3,0.0,N,natural,"15 Cleveland Court, Woodford Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2011-02-20 17:31:26,owner-occupied,,,200003728047.0,Address Matched +1621586039042018040906363452780868,"1, Bramley Court",Marden,,TN12 9QN,6024037578,E,B,52,82,Bungalow,Semi-Detached,2018-04-06,E07000110,E14000804,Kent,2018-04-09,rental (social),33,60,533,254.0,6.0,90,2.8,73.0,53.0,811.0,514.0,178.0,89.0,66.0,Unknown,N,NODATA!,,,2401.0,95.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,63.0,0.0,"Electric immersion, off-peak",Average,Poor,"Solid, no insulation (assumed)",NO DATA!,,Mostly double glazing,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,"Pitched, 200 mm loft insulation",Good,Good,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 63% of fixed outlets,Good,Good,electricity (not community),0.0,NO DATA!,,,,N,natural,"1, Bramley Court, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1983-1990,2018-04-09 06:36:34,rental (social),,,200003668951.0,Address Matched +62603153412019062721591090210556,"33, Tennison Way",,,ME15 9GE,5623308568,C,A,79,94,House,Mid-Terrace,2019-06-27,E07000110,E14000700,Kent,2019-06-27,marketed sale,82,96,136,10.0,1.3,24,0.1,45.0,45.0,227.0,227.0,83.0,54.0,54.0,Unknown,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"33, Tennison Way",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2003-2006,2019-06-27 21:59:10,owner-occupied,,,10022895444.0,Address Matched +306476410512009062416505804910666,"153a, South Park Road",,,ME15 7AN,6681043668,C,C,76,76,Flat,Semi-Detached,2009-06-16,E07000110,E14000700,Kent,2009-06-24,rental (social),73,73,276,272.0,1.7,46,1.6,24.0,17.0,269.0,271.0,64.0,64.0,36.07,Single,Y,Ground,N,2.0,2106.0,0.0,single glazing,Normal,0.0,2.0,2.0,60.0,0.0,From main system,Very Good,Very Good,"Suspended, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Cavity wall, filled cavity",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 60% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.36,0.0,N,natural,"153a, South Park Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2009-06-24 16:50:58,rental (social),,,200003729402.0,Address Matched +258993969112016010713290690060569,"48, Church Road",,,ME15 6QY,5976900668,D,B,57,88,House,Mid-Terrace,2016-01-07,E07000110,E14000804,Kent,2016-01-07,marketed sale,50,87,318,66.0,4.8,56,1.0,56.0,56.0,840.0,394.0,184.0,76.0,86.0,Single,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,100.0,0.0,From main system,Average,Average,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"48, Church Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2016-01-07 13:29:06,owner-occupied,,,200003664535.0,Address Matched +198033610922009051914543095258758,"1, St. Margarets Villas",Collier Street,,TN12 9SA,5991175568,C,C,73,75,House,End-Terrace,2008-12-15,E07000110,E14000804,Kent,2009-05-19,rental (social),70,71,203,197.0,3.0,34,2.9,71.0,42.0,374.0,378.0,121.0,121.0,87.44,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,30.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 30% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.48,0.0,N,natural,"1, St. Margarets Villas, Collier Street",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1930-1949,2009-05-19 14:54:30,rental (social),,,10022896699.0,Address Matched +1753095529262019092317025106378361,"30, Hanmer Way",Staplehurst,,TN12 0PA,6041286678,D,B,62,85,Bungalow,Semi-Detached,2019-09-23,E07000110,E14000804,Kent,2019-09-23,marketed sale,56,84,282,86.0,3.6,50,1.1,56.0,56.0,549.0,393.0,178.0,68.0,73.0,Unknown,Y,NODATA!,,,2107.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,100.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Average,Average,"Room heaters, mains gas",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"30, Hanmer Way, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1967-1975,2019-09-23 17:02:51,owner-occupied,,,200003677162.0,Address Matched +302315106132009061113084366968800,"56, Lacock Gardens",,,ME15 6GQ,76813668,C,C,72,79,House,Semi-Detached,2009-06-10,E07000110,E14000804,Kent,2009-06-11,rental (private),69,76,222,173.0,2.8,36,2.2,72.0,38.0,356.0,301.0,111.0,97.0,75.104,Single,Y,NO DATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,11.0,0.0,From main system,Good,Good,"Solid, limited insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 100mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Poor,Poor,Low energy lighting in 11% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.37,0.0,N,natural,"56, Lacock Gardens",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2009-06-11 13:08:43,rental (private),,,10034134528.0,Address Matched +779228013812012042319543897220392,"12, Hope Street",,,ME14 2TF,3239377968,D,B,60,86,House,End-Terrace,2012-04-23,E07000110,E14000804,Kent,2012-04-23,rental (private),57,87,251,60.0,3.6,48,0.9,50.0,50.0,615.0,358.0,80.0,57.0,74.0,dual,Y,NODATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,1.0,3.0,3.0,88.0,0.0,From main system,Good,Good,"To unheated space, no insulation (assumed)",,,Fully double glazed,Good,Good,"Sandstone, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 88% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"12, Hope Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2012-04-23 19:54:38,rental (private),8.0,7.0,200003669868.0,Address Matched +815694939142012072700475803022558,"28, Orache Drive",Weavering,,ME14 5UG,4194030078,D,B,57,89,House,Mid-Terrace,2012-07-25,E07000110,E14000700,Kent,2012-07-27,marketed sale,54,91,274,38.0,3.8,53,0.6,79.0,45.0,487.0,305.0,245.0,63.0,73.0,Single,Y,NODATA!,,,2102.0,0.0,single glazing,Normal,0.0,4.0,4.0,20.0,0.0,"From main system, no cylinder thermostat",Poor,Poor,"Solid, limited insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Average,"Programmer, no room thermostat",Very Poor,Very Poor,Low energy lighting in 20% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"28, Orache Drive, Weavering",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1996-2002,2012-07-27 00:47:58,owner-occupied,10.0,2.0,200003689219.0,Address Matched +1795605992922020032708490119388290,Flat 5 Tovil Green Court,Tovil Green Lane,Tovil,ME15 6NE,9155989678,B,B,81,81,Flat,End-Terrace,2020-03-18,E07000110,E14000804,Kent,2020-03-27,marketed sale,84,84,117,117.0,1.2,21,1.2,52.0,52.0,160.0,160.0,213.0,213.0,57.0,Unknown,Y,Ground,N,,2303.0,100.0,triple glazing,Normal,0.0,2.0,2.0,100.0,0.0,Community scheme,Good,Good,"Solid, insulated (assumed)",NO DATA!,,Fully triple glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,Community scheme,Good,Good,"Flat rate charging, room thermostat only",Poor,Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (community),0.0,heated corridor,,,,N,natural,"Flat 5 Tovil Green Court, Tovil Green Lane, Tovil",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2020-03-27 08:49:01,owner-occupied,,,10014306953.0,Address Matched +1668750340832018100509083656078891,"28, Cornwallis Avenue",Linton,,ME17 4BW,4196860678,D,B,68,83,House,Semi-Detached,2018-10-03,E07000110,E14000804,Kent,2018-10-05,marketed sale,67,82,214,102.0,2.8,37,1.4,80.0,55.0,525.0,486.0,96.0,64.0,76.0,Unknown,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,55.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Average,Average,"Room heaters, electric",,,"Pitched, 270 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 55% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"28, Cornwallis Avenue, Linton",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2018-10-05 09:08:36,owner-occupied,,,200003663003.0,Address Matched +18255689942011041423182840899548,247 Wallis Place,Hart Street,,ME16 8FF,5975088468,B,B,85,85,Flat,Mid-Terrace,2011-04-14,E07000110,E14000804,Kent,2011-04-14,rental (social),83,83,130,130.0,1.3,21,1.3,37.0,37.0,241.0,241.0,87.0,87.0,62.4,Single,Y,4th,Y,5.0,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,100.0,0.0,From main system,Very Good,Very Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Flat, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,unheated corridor,9.75,2.39,0.0,N,natural,"247 Wallis Place, Hart Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2011-04-14 23:18:28,rental (social),,,10022900855.0,Address Matched +1580254539102017101014575657439808,"38, Charlesford Avenue",Kingswood,,ME17 3PE,198634578,D,C,56,72,Bungalow,Detached,2017-10-10,E07000110,E14000700,Kent,2017-10-10,marketed sale,54,70,294,180.0,4.3,51,2.7,62.0,62.0,865.0,780.0,128.0,81.0,84.0,dual,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"38, Charlesford Avenue, Kingswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2017-10-10 14:57:56,owner-occupied,,,200003700342.0,Address Matched +1299688279022015040715594284138285,The Old Chapel,Dairy Lane,Marden,TN12 9SS,8883744378,E,C,54,80,House,Detached,2015-04-07,E07000110,E14000804,Kent,2015-04-07,RHI application,49,75,171,57.0,10.0,40,4.4,185.0,103.0,1805.0,1380.0,220.0,105.0,253.0,Single,N,NODATA!,,,2107.0,100.0,double glazing installed before 2002,Normal,0.0,8.0,8.0,21.0,1.0,"From main system, plus solar",Average,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, with internal insulation",Good,Good,"Room heaters, wood logs",,,"Pitched, 350 mm loft insulation",Very Good,Very Good,"Boiler and radiators, oil",Average,Average,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 21% of fixed outlets,Poor,Poor,oil (not community),0.0,NO DATA!,,,,Y,natural,"The Old Chapel, Dairy Lane, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: before 1900,2015-04-07 15:59:42,owner-occupied,,,200003730564.0,Address Matched +1627865244712018071118385397280752,"115a, Week Street",,,ME14 1RB,7201477578,C,C,74,75,Flat,Mid-Terrace,2018-04-29,E07000110,E14000804,Kent,2018-07-11,unknown,77,80,225,202.0,1.2,39,1.1,26.0,26.0,227.0,205.0,76.0,77.0,31.0,Single,Y,1st,N,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,(other premises below),NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,4.55,,,N,natural,"115a, Week Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2018-07-11 18:38:53,unknown,,,10094439901.0,Address Matched +1362844081532015091018482119978508,4 Heniker Cottage,Heniker Lane,Sutton Valence,ME17 3ED,8849598378,E,B,41,81,House,End-Terrace,2015-09-10,E07000110,E14000700,Kent,2015-09-10,marketed sale,35,68,277,72.0,8.9,70,3.7,129.0,79.0,1398.0,1081.0,182.0,98.0,127.0,dual,N,NODATA!,,,2104.0,80.0,double glazing installed during or after 2002,Normal,2.0,7.0,7.0,36.0,1.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Mostly double glazing,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, dual fuel (mineral and wood)",,,"Roof room(s), no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, oil",Average,Average,Programmer and room thermostat,Average,Average,Low energy lighting in 36% of fixed outlets,Average,Average,oil (not community),0.0,NO DATA!,,,,N,natural,"4 Heniker Cottage, Heniker Lane, Sutton Valence",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2015-09-10 18:48:21,owner-occupied,,,200003696326.0,Address Matched +1710468739262019092317153663378701,"18, Castle Way",Boughton Monchelsea,,ME17 4GQ,637373678,B,A,84,94,House,Detached,2019-09-23,E07000110,E14000804,Kent,2019-09-23,new dwelling,85,95,82,20.0,1.7,14,0.4,78.0,78.0,262.0,263.0,99.0,54.0,117.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.19 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.1 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"18, Castle Way, Boughton Monchelsea",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2019-09-23 17:15:36,unknown,4.0,4.0,10094441258.0,Address Matched +904346459922019101021153356308101,"39, Derby Road",,,ME15 7JB,502556078,D,B,65,88,House,Semi-Detached,2019-10-10,E07000110,E14000700,Kent,2019-10-10,unknown,60,87,249,68.0,3.7,44,1.0,71.0,71.0,601.0,358.0,131.0,79.0,84.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,88.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 88% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"39, Derby Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2019-10-10 21:15:33,unknown,,,200003712032.0,Address Matched +1769527409502019120121210264812518,"18, Drawbridge Close",,,ME15 7PD,1515108678,C,B,73,87,House,End-Terrace,2019-11-29,E07000110,E14000700,Kent,2019-12-01,rental (social),71,85,179,80.0,2.6,32,1.2,88.0,67.0,409.0,390.0,124.0,78.0,84.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,70.0,0.0,From main system,Good,Good,"Suspended, limited insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 70% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"18, Drawbridge Close",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1996-2002,2019-12-01 21:21:02,rental (social),,,10014306201.0,Address Matched +1573600889442017100319132650330738,The Oast House Hen & Duck Hurst Farm,Marden Road,Staplehurst,TN12 0PD,1457883578,F,B,33,84,House,Detached,2017-09-07,E07000110,E14000804,Kent,2017-10-03,marketed sale,15,54,659,238.0,17.0,103,6.3,174.0,93.0,2489.0,1252.0,208.0,113.0,168.0,dual,N,NODATA!,,,2401.0,100.0,"double glazing, unknown install date",Normal,3.0,7.0,7.0,12.0,0.0,"Electric immersion, off-peak",Average,Poor,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, 75 mm loft insulation",Average,Average,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 12% of fixed outlets,Poor,Poor,electricity (not community),0.0,NO DATA!,,,,N,natural,"The Oast House Hen & Duck Hurst Farm, Marden Road, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: before 1900,2017-10-03 19:13:26,owner-occupied,,,200003730998.0,Address Matched +18234789742011060617094640890168,232 Wallis Place,Hart Street,,ME16 8FF,725088468,C,B,79,81,Flat,Mid-Terrace,2011-06-06,E07000110,E14000804,Kent,2011-06-06,marketed sale,83,85,112,102.0,1.4,21,1.3,71.0,39.0,222.0,227.0,76.0,76.0,64.79,Single,Y,3rd,Y,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,17.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Very Good,Very Good,,,,"Flat, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 17% of fixed outlets,Poor,Poor,mains gas (not community),0.0,unheated corridor,9.27,2.34,0.0,,natural,"232 Wallis Place, Hart Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2011-06-06 17:09:46,owner-occupied,6.0,1.0,10022900840.0,Address Matched +434410239902013052307472871279438,Green Ridge,Maidstone Road,Sutton Valence,ME17 3LS,7907932768,B,B,90,90,House,Detached,2013-05-17,E07000110,E14000700,Kent,2013-05-23,marketed sale,92,92,36,36.0,0.8,6,0.8,73.0,73.0,502.0,502.0,74.0,74.0,134.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,92.0,0.0,"From main system, plus solar",Very Good,Very Good,"Solid, insulated (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, wood logs",,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 92% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,35.0,,natural,"Green Ridge, Maidstone Road, Sutton Valence",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2003-2006,2013-05-23 07:47:28,owner-occupied,12.0,11.0,200003694493.0,Address Matched +297841860062009060817192092458711,"11, Cherry Orchard Way",,,ME16 8TJ,1957682668,D,D,65,65,House,End-Terrace,2009-06-05,E07000110,E14000804,Kent,2009-06-08,rental (social),58,58,275,274.0,4.3,46,4.3,53.0,44.0,591.0,592.0,107.0,107.0,92.88,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,80.0,0.0,From main system,Very Good,Very Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"System built, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.41,0.0,N,natural,"11, Cherry Orchard Way",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2009-06-08 17:19:20,rental (social),,,200003696501.0,Address Matched +493424316032010060320450275068706,6b Elizabeth House,Alexandra Street,,ME14 2BX,1605756768,F,C,25,78,Flat,Semi-Detached,2010-06-03,E07000110,E14000804,Kent,2010-06-03,marketed sale,43,68,687,366.0,3.5,104,1.9,39.0,20.0,386.0,157.0,459.0,98.0,34.21,dual,N,1st,N,3.0,2699.0,100.0,double glazing installed before 2002,Normal,0.0,1.0,0.0,0.0,0.0,"Electric immersion, off-peak",Very Poor,Poor,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,(another dwelling above),,,No system present: electric heaters assumed,Very Poor,Poor,,Very Poor,Very Poor,No low energy lighting,Very Poor,Very Poor,To be used only when there is no heating/hot-water system,0.0,no corridor,,2.35,0.0,N,natural,"6b Elizabeth House, Alexandra Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2010-06-03 20:45:02,owner-occupied,,,200003728120.0,Address Matched +1642027956832018062011551979278505,"8, Parchment Close",,,ME14 5GB,5559578578,B,A,85,95,House,End-Terrace,2018-06-20,E07000110,E14000700,Kent,2018-06-20,new dwelling,86,96,79,13.0,1.5,14,0.3,72.0,72.0,243.0,243.0,79.0,46.0,106.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.18 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.28 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.19 W/m-¦K,Good,Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"8, Parchment Close",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2018-06-20 11:55:19,owner-occupied,13.0,13.0,10093305851.0,Address Matched +1040218959452013110916042491079210,19 Amshurst Villas,Gallants Lane,East Farleigh,ME15 0LQ,2002916178,D,A,61,97,Bungalow,Mid-Terrace,2013-11-08,E07000110,E14000804,Kent,2013-11-09,marketed sale,41,81,479,119.0,4.1,85,1.0,53.0,33.0,438.0,249.0,128.0,67.0,48.0,dual,N,NODATA!,,,2401.0,100.0,double glazing installed before 2002,Normal,0.0,2.0,2.0,40.0,0.0,"Electric immersion, off-peak",Average,Very Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, partial insulation (assumed)",Average,Average,Portable electric heaters (assumed),,,"Pitched, 100 mm loft insulation",Average,Average,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 40% of fixed outlets,Average,Average,electricity (not community),0.0,NO DATA!,,,0.0,,natural,"19 Amshurst Villas, Gallants Lane, East Farleigh",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1976-1982,2013-11-09 16:04:24,owner-occupied,5.0,2.0,200003671203.0,Address Matched +1470098369962016081017134436908116,"25, Mansfield Walk",,,ME16 8EB,1306656478,D,B,65,85,House,Mid-Terrace,2016-08-10,E07000110,E14000804,Kent,2016-08-10,marketed sale,64,85,227,75.0,2.9,40,1.0,83.0,56.0,439.0,409.0,226.0,94.0,74.0,dual,Y,NODATA!,,,2504.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,3.0,50.0,0.0,"From main system, no cylinder thermostat",Poor,Poor,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,Portable electric heaters (assumed),,,"Pitched, 250 mm loft insulation",Good,Good,"Warm air, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,2.38,,N,natural,"25, Mansfield Walk",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2016-08-10 17:13:44,owner-occupied,,,200003724955.0,Address Matched +1149339989222014053016072213918884,Moat Barn,Collier Street,Marden,TN12 9RR,8170883278,C,B,79,91,House,Detached,2014-05-29,E07000110,E14000804,Kent,2014-05-30,new dwelling,74,86,106,47.0,5.4,19,2.5,98.0,98.0,913.0,913.0,106.0,106.0,281.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,1.0,From main system,Good,Good,Average thermal transmittance 0.17 W/m-¦K,Very Good,Very Good,Fully double glazed,Good,Good,Average thermal transmittance 0.28 W/m-¦K,Very Good,Very Good,"Room heaters, dual fuel (mineral and wood)",,,Average thermal transmittance 0.32 W/m-¦K,Average,Average,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Moat Barn, Collier Street, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,NO DATA!,2014-05-30 16:07:22,unknown,25.0,25.0,10091193745.0,Address Matched +1218347631952020030908255627000823,"74, Mallings Drive",Bearsted,,ME14 4HB,8381178278,C,B,73,85,House,Semi-Detached,2020-03-06,E07000110,E14000700,Kent,2020-03-09,marketed sale,70,82,168,87.0,3.1,30,1.7,91.0,91.0,507.0,467.0,126.0,83.0,106.0,Single,Y,NODATA!,,,2110.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,83.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in 83% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"74, Mallings Drive, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2020-03-09 08:25:56,owner-occupied,,,200003694680.0,Address Matched +1132901584432014042915004035278809,6 Meridian Court,Buckland Road,,ME16 0HU,8935862278,C,C,74,79,Flat,Mid-Terrace,2014-04-29,E07000110,E14000804,Kent,2014-04-29,rental (social),76,81,146,113.0,1.9,28,1.5,79.0,44.0,311.0,270.0,127.0,110.0,69.0,Single,Y,2nd,Y,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,22.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 22% of fixed outlets,Poor,Poor,mains gas (not community),0.0,unheated corridor,8.26,,0.0,,natural,"6 Meridian Court, Buckland Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2014-04-29 15:00:40,rental (social),9.0,2.0,200003666883.0,Address Matched +1586171960332017103110074149778796,"32, Hook Way",,,ME17 3FW,6619774578,B,A,83,95,House,Detached,2017-10-31,E07000110,E14000700,Kent,2017-10-31,new dwelling,85,97,97,9.0,1.3,17,0.2,56.0,56.0,229.0,229.0,81.0,48.0,78.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"32, Hook Way",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2017-10-31 10:07:41,unknown,7.0,7.0,10093303929.0,Address Matched +406495185712009120217113704019075,"12, Pope Drive",Staplehurst,,TN12 0TL,539540768,C,B,73,81,House,Mid-Terrace,2009-12-02,E07000110,E14000804,Kent,2009-12-02,marketed sale,69,79,244,161.0,2.5,40,1.6,42.0,31.0,333.0,252.0,142.0,101.0,61.38,Unknown,Y,NO DATA!,,,2104.0,100.0,secondary glazing,Normal,0.0,3.0,3.0,63.0,0.0,From main system,Average,Good,"Solid, no insulation (assumed)",,,Full secondary glazing,Good,Good,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 75mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Average,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 63% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.27,0.0,N,natural,"12, Pope Drive, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1976-1982,2009-12-02 17:11:37,owner-occupied,,,200003678880.0,Address Matched +bf1779fcd377e14250d8e03ecbff9de4010f7435984d7e1f154c8494574938a7,4 WOODLANDS,COXHEATH,,ME17 4EE,10001484099,D,C,61,76,House,Semi-Detached,2021-07-14,E07000110,E14000804,Kent,2021-07-14,marketed sale,57,73,241,147.0,4.9,42,3.0,167.0,86.0,904.0,817.0,123.0,79.0,117.0,Single,Y,,,,,100.0,double glazing installed before 2002,Normal,1.0,6.0,6.0,6.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,"Room heaters, electric",,,"Pitched, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 6% of fixed outlets,Very Poor,Very Poor,mains gas (not community),0.0,,,2.37,0.0,N,natural,"4 WOODLANDS, COXHEATH",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2021-07-14 15:13:05,Owner-occupied,17.0,,200003672822.0,Energy Assessor +1471622028632016081621420773978802,"18, Celestine Close",,,ME5 9NG,2203866478,D,C,59,80,House,Detached,2016-08-16,E07000110,E14000700,Kent,2016-08-16,marketed sale,53,76,279,128.0,4.8,49,2.3,125.0,63.0,800.0,630.0,180.0,77.0,99.0,Single,Y,NODATA!,,,2107.0,100.0,double glazing installed during or after 2002,Normal,1.0,5.0,5.0,0.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, mains gas",,,"Pitched, insulated (assumed)",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,2.34,,N,natural,"18, Celestine Close",Maidstone,Faversham and Mid Kent,CHATHAM,England and Wales: 1983-1990,2016-08-16 21:42:07,owner-occupied,,,200003708770.0,Address Matched +516014223252010072017101491200773,2 Magnolia House,Springwood Close,,ME16 9PB,7339318768,C,C,69,77,Flat,Semi-Detached,2010-07-20,E07000110,E14000804,Kent,2010-07-20,rental (private),67,76,265,191.0,2.6,44,1.8,32.0,32.0,449.0,340.0,102.0,83.0,58.7,Single,Y,Ground,N,2.0,2107.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, partial insulation (assumed)",Average,Average,"Room heaters, electric",,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,unheated corridor,6.1,2.3,0.0,N,natural,"2 Magnolia House, Springwood Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1976-1982,2010-07-20 17:10:14,rental (private),,,200003697264.0,Address Matched +887649669222013022212310105028277,"101, South Lane",Sutton Valence,,ME17 3AY,7037635078,D,B,65,87,House,End-Terrace,2013-02-22,E07000110,E14000700,Kent,2013-02-22,marketed sale,62,87,206,57.0,3.5,40,1.0,68.0,54.0,551.0,380.0,157.0,74.0,89.0,dual,Y,NODATA!,,,2107.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,73.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 73% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"101, South Lane, Sutton Valence",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2013-02-22 12:31:01,owner-occupied,11.0,8.0,200003695645.0,Address Matched +542984609602010092109345883002898,Flat 5 Plymouth House,Ruskin Grove,,ME15 9WG,2601400868,C,C,75,77,Flat,End-Terrace,2010-09-21,E07000110,E14000700,Kent,2010-09-21,new dwelling,82,83,175,167.0,1.3,26,1.2,47.0,28.0,159.0,163.0,145.0,145.0,47.71,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,,,From main system,Poor,Good,(other premises below),,,Fully double glazed,Very Good,Very Good,Average thermal transmittance 0.28 W/m?K,Very Good,Very Good,,,,(other premises above),,,"Air source heat pump, radiators, electric",Poor,Good,Programmer and room thermostat,Poor,Poor,Low energy lighting in 33% of fixed outlets,Average,Average,"Electricity: electricity, unspecified tariff",0.0,NO DATA!,,2.7,,,NO DATA!,"Flat 5 Plymouth House, Ruskin Grove",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2010-09-21 09:34:58,,,,10014311616.0,Address Matched +1294331629922015031619045674468605,Flat 1,Chillington House,St. Faiths Street,ME14 1LH,750214378,E,E,43,43,Flat,Detached,2015-03-16,E07000110,E14000804,Kent,2015-03-16,new dwelling,50,50,316,316.0,4.6,53,4.6,58.0,58.0,1064.0,1064.0,188.0,188.0,86.0,standard tariff,,NODATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,Electric instantaneous at point of use,Very Poor,Poor,Average thermal transmittance 0.72 W/m-¦K,Very Poor,Very Poor,Single glazed,Very Poor,Very Poor,Average thermal transmittance 0.40 W/m-¦K,Good,Good,,,,Average thermal transmittance 0.25 W/m-¦K,Good,Good,"Room heaters, electric",Very Poor,Poor,Programmer and room thermostat,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"Flat 1, Chillington House, St. Faiths Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2015-03-16 19:04:56,unknown,10.0,10.0,10091195909.0,Address Matched +1681385699832018112515115606278097,"22, College Road",,,ME15 6YF,9766061678,F,B,34,83,House,Mid-Terrace,2018-11-22,E07000110,E14000804,Kent,2018-11-25,rental (private),38,68,469,204.0,5.7,79,2.5,54.0,58.0,1367.0,552.0,212.0,100.0,71.0,dual,N,NODATA!,,,2602.0,75.0,secondary glazing,Normal,2.0,4.0,4.0,100.0,0.0,Electric instantaneous at point of use,Very Poor,Poor,"Suspended, no insulation (assumed)",NO DATA!,,Partial secondary glazing,Average,Average,"Sandstone or limestone, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 200 mm loft insulation",Good,Good,"Room heaters, electric",Very Poor,Poor,Appliance thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,NO DATA!,,,,N,"mechanical, extract only","22, College Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2018-11-25 15:11:56,rental (private),,,200003693290.0,Address Matched +1248610447312014121110102298949637,"24, James Huxley Avenue",,,ME16 0ZH,6710780378,B,B,87,88,House,End-Terrace,2014-12-11,E07000110,E14000804,Kent,2014-12-11,new dwelling,89,91,63,50.0,0.9,11,0.7,60.0,60.0,231.0,231.0,91.0,58.0,80.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"24, James Huxley Avenue",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2014-12-11 10:10:22,owner-occupied,14.0,14.0,10014315165.0,Address Matched +718564047912011110312434599099693,"28, Woodford Road",,,ME16 9BS,6314792968,D,C,66,74,House,Mid-Terrace,2011-11-03,E07000110,E14000804,Kent,2011-11-03,marketed sale,66,76,208,151.0,3.1,40,2.3,43.0,43.0,508.0,368.0,142.0,126.0,78.98,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,2.28,0.0,,natural,"28, Woodford Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2011-11-03 12:43:45,owner-occupied,11.0,11.0,200003677847.0,Address Matched +1817736402452020081317231225900579,"55, Sandling Lane",Penenden Heath,,ME14 2HU,5960251778,F,B,35,81,House,Semi-Detached,2020-08-13,E07000110,E14000804,Kent,2020-08-13,marketed sale,31,79,445,102.0,7.8,78,1.8,152.0,77.0,1489.0,582.0,100.0,71.0,100.0,Single,Y,NODATA!,,,2601.0,43.0,secondary glazing,Normal,1.0,5.0,3.0,0.0,2.0,Gas multipoint,Average,Average,"Suspended, no insulation (assumed)",NO DATA!,,Partial secondary glazing,Poor,Poor,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,"Pitched, 25 mm loft insulation",Poor,Poor,"Room heaters, mains gas",Average,Average,No thermostatic control of room temperature,Poor,Poor,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"55, Sandling Lane, Penenden Heath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2020-08-13 17:23:12,owner-occupied,,,200003726197.0,Address Matched +388191910842009102614325266912368,"3, Northdown",Stockbury,,ME9 7UL,5857419668,F,D,29,61,House,Semi-Detached,2009-10-26,E07000110,E14000700,Kent,2009-10-26,marketed sale,52,51,362,373.0,4.9,55,5.0,63.0,63.0,1037.0,493.0,272.0,145.0,102.83,dual,N,NO DATA!,,,2602.0,100.0,double glazing installed before 2002,Normal,1.0,5.0,5.0,73.0,0.0,"Electric immersion, off-peak",Very Poor,Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,Portable electric heaters,,,"Pitched, 100 mm loft insulation",Average,Average,"Room heaters, electric",Very Poor,Poor,Appliance thermostats,Good,Good,Low energy lighting in 73% of fixed outlets,Very Good,Very Good,electricity - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,,0.0,N,natural,"3, Northdown, Stockbury",Maidstone,Faversham and Mid Kent,SITTINGBOURNE,,2009-10-26 14:32:52,owner-occupied,,,200003725269.0,Address Matched +231159280262009022316523878398671,"23, Ballard Close",Marden,,TN12 9HW,7708818568,D,C,67,72,House,Enclosed End-Terrace,2009-02-21,E07000110,E14000804,Kent,2009-02-23,rental (private),58,63,441,396.0,2.6,66,2.4,21.0,21.0,247.0,200.0,111.0,111.0,39.476,dual,N,NO DATA!,,,2402.0,0.0,INVALID!,Normal,0.0,2.0,1.0,100.0,0.0,"Electric immersion, off-peak",Average,Poor,"Solid, no insulation (assumed)",,,Partial double glazing,Average,Average,"Timber frame, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,"Pitched, 100mm loft insulation",Average,Average,Electric storage heaters,Poor,Very Poor,Automatic charge control,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.34,0.0,N,natural,"23, Ballard Close, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1983-1990,2009-02-23 16:52:38,rental (private),,,200003708820.0,Address Matched +1614033987832018031708260500078705,"4b, Bishops Close",Nettlestead,,ME18 5ES,8530776578,C,C,70,75,Flat,Semi-Detached,2018-03-09,E07000110,E14000804,Kent,2018-03-17,marketed sale,69,76,221,177.0,2.2,39,1.8,43.0,43.0,398.0,313.0,91.0,92.0,58.0,Unknown,Y,1st,Y,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,100.0,0.0,From main system,Good,Good,(another dwelling below),NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,no corridor,,,,N,natural,"4b, Bishops Close, Nettlestead",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2018-03-17 08:26:05,owner-occupied,,,200003657627.0,Address Matched +1480179337852016091616481992960546,"15, Murdoch Chase",Coxheath,,ME17 4FA,5614727478,B,A,83,94,House,NO DATA!,2016-09-16,E07000110,E14000804,Kent,2016-09-16,new dwelling,84,95,96,21.0,1.6,17,0.4,63.0,63.0,279.0,281.0,108.0,57.0,98.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.14 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.20 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.12 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"15, Murdoch Chase, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2016-09-16 16:48:19,unknown,11.0,11.0,10093302662.0,Address Matched +1248806499142014121216354934049728,"64, Eyhorne Street",Hollingbourne,,ME17 1TS,1109290378,F,A,38,103,House,End-Terrace,2014-12-12,E07000110,E14000700,Kent,2014-12-12,assessment for green deal,40,103,458,-23.0,5.7,71,-0.6,93.0,51.0,1126.0,541.0,215.0,70.0,81.0,Single,Y,NODATA!,,,2111.0,0.0,not defined,Normal,1.0,4.0,4.0,14.0,3.0,"From main system, no cylinder thermostat",Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Single glazed,Very Poor,Very Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,TRVs and bypass,Average,Average,Low energy lighting in 14% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"64, Eyhorne Street, Hollingbourne",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2014-12-12 16:35:49,rental (private),,,200003722152.0,Address Matched +361282220022009091010073297188781,Flat 2 Scott House,Station Approach,Staplehurst,TN12 0QR,8992227668,C,C,75,79,Flat,Mid-Terrace,2009-09-08,E07000110,E14000804,Kent,2009-09-10,rental (private),66,69,329,300.0,2.4,50,2.2,55.0,27.0,179.0,167.0,102.0,102.0,47.9,dual,N,Ground,N,2.0,2402.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,0.0,0.0,"Electric immersion, off-peak",Average,Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, partial insulation (assumed)",Average,Average,,,,(another dwelling above),,,Electric storage heaters,Poor,Very Poor,Automatic charge control,Average,Average,No low energy lighting,Very Poor,Very Poor,electricity - this is for backwards compatibility only and should not be used,0.0,unheated corridor,3.4,2.68,0.0,N,natural,"Flat 2 Scott House, Station Approach, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1976-1982,2009-09-10 10:07:32,rental (private),,,200003679491.0,Address Matched +655466559842011101417110784899348,27 Thomas Place,James Whatman Way,,ME14 1FP,8841358868,C,B,80,81,Flat,Mid-Terrace,2011-10-14,E07000110,E14000804,Kent,2011-10-14,new dwelling,90,90,97,94.0,0.8,13,0.8,47.0,37.0,202.0,203.0,102.0,102.0,63.9,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,5.0,,"Community scheme, no cylinder thermostat",Good,Very Good,(other premises below),,,Fully double glazed,Good,Good,Average thermal transmittance 0.27 W/m?K,Very Good,Very Good,,,,(other premises above),,,Community scheme,Good,Very Good,"Flat rate charging, programmer and TRVs",Average,Average,Low energy lighting in 71% of fixed outlets,Very Good,Very Good,NO DATA!,0.0,NO DATA!,,2.4,,,NO DATA!,"27 Thomas Place, James Whatman Way",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2011-10-14 17:11:07,,7.0,5.0,10014312693.0,Address Matched +747507089712013112209382293979395,"168, Roseholme",,,ME16 8DT,3548935968,C,C,70,78,Flat,Semi-Detached,2013-11-13,E07000110,E14000804,Kent,2013-11-22,none of the above,72,83,185,117.0,1.9,35,1.2,65.0,37.0,378.0,266.0,60.0,61.0,54.0,dual,Y,2nd,Y,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,25.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 25% of fixed outlets,Average,Average,mains gas (not community),0.0,unheated corridor,5.7,,0.0,,natural,"168, Roseholme",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2013-11-22 09:38:22,rental (private),8.0,2.0,200003656485.0,Address Matched +1534933784552017041011470591930351,"97, Edmett Way",,,ME17 3FA,3165411578,B,B,81,81,Flat,Detached,2017-04-10,E07000110,E14000700,Kent,2017-04-10,new dwelling,86,86,120,120.0,0.9,21,0.9,35.0,35.0,196.0,196.0,65.0,65.0,45.0,standard tariff,,ground floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.23 W/m-¦K,Good,Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.26 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,Programmer and at least two room thermostats,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"97, Edmett Way",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2017-04-10 11:47:05,unknown,1.0,1.0,10091194009.0,Address Matched +1631629195832018051420425679978104,"30, West Street",Harrietsham,,ME17 1HX,9429108578,E,C,49,80,House,End-Terrace,2018-05-14,E07000110,E14000700,Kent,2018-05-14,marketed sale,41,76,365,125.0,6.3,66,2.2,120.0,64.0,1020.0,592.0,178.0,73.0,96.0,Unknown,Y,NODATA!,,,2104.0,100.0,secondary glazing,Normal,2.0,5.0,5.0,13.0,0.0,From main system,Average,Average,"Suspended, no insulation (assumed)",NO DATA!,,Full secondary glazing,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 13% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"30, West Street, Harrietsham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2018-05-14 20:42:56,owner-occupied,,,200003703633.0,Address Matched +812482873232012071120015980978705,"51, Bower Place",,,ME16 8BG,7570700078,E,B,54,83,House,End-Terrace,2012-07-11,E07000110,E14000804,Kent,2012-07-11,rental (private),48,81,267,85.0,5.8,51,1.9,100.0,57.0,935.0,575.0,125.0,74.0,113.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,1.0,6.0,6.0,25.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, mains gas",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 25% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"51, Bower Place",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2012-07-11 20:01:59,rental (private),16.0,4.0,200003667341.0,Address Matched +854381019062012110710015403438842,78 Farleigh Court,Farleigh Lane,,ME16 9BH,4061103078,E,D,42,64,Flat,Enclosed End-Terrace,2012-11-07,E07000110,E14000804,Kent,2012-11-07,rental (private),40,62,397,227.0,5.2,77,3.0,74.0,41.0,756.0,505.0,210.0,101.0,68.0,Single,Y,1st,Y,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,17.0,0.0,"From main system, no cylinder thermostat",Poor,Poor,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 17% of fixed outlets,Poor,Poor,mains gas (not community),0.0,no corridor,,,0.0,,natural,"78 Farleigh Court, Farleigh Lane",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2012-11-07 10:01:54,rental (private),6.0,1.0,200003683372.0,Address Matched +596677760112013100313073492079285,31 Midhurst Court,Mote Road,,ME15 6EH,2561024868,D,C,68,80,Flat,End-Terrace,2013-10-02,E07000110,E14000804,Kent,2013-10-03,none of the above,72,84,177,100.0,2.3,33,1.3,44.0,44.0,318.0,234.0,278.0,105.0,70.0,Single,Y,5th,N,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,100.0,0.0,"Electric immersion, standard tariff",Very Poor,Very Poor,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,2.43,,0.0,,natural,"31 Midhurst Court, Mote Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2013-10-03 13:07:34,rental (social),6.0,6.0,200003693339.0,Address Matched +169250980142008101918224755289618,"1, Waterside Mews",Wateringbury,,ME18 5AB,4112482568,D,C,62,72,House,Detached,2008-10-19,E07000110,E14000804,Kent,2008-10-19,rental (private),57,67,317,238.0,3.7,53,2.8,64.0,34.0,435.0,355.0,108.0,86.0,85.91,Single,Y,NO DATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,10.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Poor,Poor,Low energy lighting in 10% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.34,0.0,N,natural,"1, Waterside Mews, Wateringbury",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2008-10-19 18:22:47,rental (private),,,200003658670.0,Address Matched +bfa4633b9a72095299905159b621b198e4dfaff1b188c090c2748fb31b95fe20,72 WRENS CROSS,UPPER STONE STREET,,ME15 6YU,10001563184,C,C,77,77,Flat,Mid-Terrace,2021-07-08,E07000110,E14000804,Kent,2021-07-08,new dwelling,79,79,160,160.0,1.3,28,1.3,44.0,44.0,243.0,243.0,69.0,69.0,47.0,standard tariff,,1,N,,,100.0,,,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.19 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.26 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.6,,,,"72 WRENS CROSS, UPPER STONE STREET",Maidstone,Maidstone and The Weald,MAIDSTONE,2020,2021-07-08 15:58:41,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,15.0,,10094441006.0,Energy Assessor +973164549402013071714111517179838,"17, Hanmer Way",Staplehurst,,TN12 0NR,3433241178,D,B,62,85,House,Semi-Detached,2013-07-17,E07000110,E14000804,Kent,2013-07-17,assessment for green deal,59,86,223,66.0,3.8,43,1.2,98.0,51.0,588.0,423.0,171.0,70.0,89.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,1.0,5.0,5.0,8.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 8% of fixed outlets,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"17, Hanmer Way, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1967-1975,2013-07-17 14:11:15,owner-occupied,13.0,1.0,200003677072.0,Address Matched +26357469142015111619244159059928,7 The Abbots,Forge Lane,Leeds,ME17 1TQ,2166660568,C,B,78,88,House,Semi-Detached,2015-11-12,E07000110,E14000700,Kent,2015-11-16,marketed sale,76,86,133,66.0,2.6,23,1.3,83.0,83.0,433.0,436.0,123.0,70.0,110.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,4.0,4.0,80.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"7 The Abbots, Forge Lane, Leeds",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2007 onwards,2015-11-16 19:24:41,owner-occupied,,,10022901924.0,Address Matched +1072498649922014011610331928868454,"7, Trotwood Close",,,ME5 9JU,5237448178,D,B,68,87,House,Semi-Detached,2014-01-16,E07000110,E14000700,Kent,2014-01-16,marketed sale,68,89,188,52.0,2.7,36,0.8,81.0,46.0,483.0,367.0,100.0,72.0,74.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,25.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, partial insulation (assumed)",Average,Average,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 25% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"7, Trotwood Close",Maidstone,Faversham and Mid Kent,CHATHAM,England and Wales: 1976-1982,2014-01-16 10:33:19,owner-occupied,8.0,2.0,200003708002.0,Address Matched +1789691267852020030509462224000963,"29, Heathfield Road",Penenden Heath,,ME14 2AD,9325749678,D,C,55,73,House,Detached,2020-03-04,E07000110,E14000804,Kent,2020-03-05,marketed sale,45,65,286,165.0,8.3,50,4.9,143.0,101.0,1423.0,1048.0,138.0,84.0,165.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,6.0,6.0,58.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, insulated at rafters",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 58% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"29, Heathfield Road, Penenden Heath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2020-03-05 09:46:22,owner-occupied,,,200003673222.0,Address Matched +1351683559222015080711094128418465,"30, Laurel Grove",Kingswood,,ME17 3PS,6245518378,C,B,73,86,House,Detached,2015-07-29,E07000110,E14000700,Kent,2015-08-07,FiT application,70,84,168,83.0,3.3,30,1.7,100.0,67.0,556.0,503.0,139.0,87.0,112.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,7.0,7.0,50.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"30, Laurel Grove, Kingswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1976-1982,2015-08-07 11:09:41,owner-occupied,,,200003700154.0,Address Matched +603295529962011031119343744298249,"3, The Moorings",College Avenue,,ME15 6LQ,4441274868,D,C,66,76,Flat,Enclosed End-Terrace,2011-03-11,E07000110,E14000804,Kent,2011-03-11,rental (private),61,67,341,292.0,3.0,51,2.6,79.0,39.0,269.0,220.0,174.0,123.0,58.06,dual,N,1st,Y,2.0,2401.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,0.0,0.0,"Electric immersion, off-peak",Poor,Poor,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,"Pitched, 150 mm loft insulation",Good,Good,Electric storage heaters,Poor,Very Poor,Manual charge control,Poor,Poor,No low energy lighting,Very Poor,Very Poor,electricity - this is for backwards compatibility only and should not be used,0.0,heated corridor,,2.38,0.0,N,natural,"3, The Moorings, College Avenue",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2011-03-11 19:34:37,rental (private),,,200003697296.0,Address Matched +1717206934132019043013015633778108,"20, Ramsden Way",Marden,,TN12 9GL,3823124678,B,A,84,96,House,Semi-Detached,2019-04-30,E07000110,E14000804,Kent,2019-04-30,new dwelling,87,98,80,-1.0,1.2,14,0.0,66.0,66.0,190.0,191.0,93.0,51.0,89.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.16 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.19 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"20, Ramsden Way, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,NO DATA!,2019-04-30 13:01:56,unknown,15.0,15.0,10093305380.0,Address Matched +102180188252020091007401821000747,"28, Clement Court",,,ME16 0EW,7704817468,E,B,44,81,House,Semi-Detached,2020-09-09,E07000110,E14000804,Kent,2020-09-10,marketed sale,42,80,375,105.0,5.5,66,1.6,150.0,75.0,1065.0,571.0,159.0,72.0,84.0,dual,Y,NODATA!,,,2102.0,100.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"28, Clement Court",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2020-09-10 07:40:18,owner-occupied,,,200003658997.0,Address Matched +591278782932011021021294019968408,"31, Huntington Road",Coxheath,,ME17 4DU,8879473868,C,C,71,74,House,Mid-Terrace,2011-02-10,E07000110,E14000804,Kent,2011-02-10,rental (social),68,70,204,188.0,3.7,34,3.4,104.0,59.0,543.0,526.0,138.0,138.0,108.0,Single,Y,NO DATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,25.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 25% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.29,0.0,N,natural,"31, Huntington Road, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2011-02-10 21:29:40,rental (social),,,200003671586.0,Address Matched +bfdc147ecf0bf6a2628d73d939795ddc759e8c462f2d4e4db6e12a4c29288fd0,100 Hastings Road,,,ME15 7SR,10001331813,D,C,66,78,House,Semi-Detached,2021-08-19,E07000110,E14000804,Kent,2021-08-20,marketed sale,60,73,233,152.0,4.1,41,2.7,98.0,78.0,691.0,661.0,87.0,59.0,100.0,Single,Y,,,,,100.0,double glazing installed during or after 2002,Normal,1.0,6.0,6.0,75.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.41,0.0,N,natural,100 Hastings Road,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2021-08-20 07:31:28,Owner-occupied,20.0,,200003695484.0,Energy Assessor +1648979729242018071814110453989888,"9, Douglas Court",Faversham Road,,ME17 2PL,5287629578,D,C,60,76,Flat,Detached,2018-07-18,E07000110,E14000700,Kent,2018-07-18,rental (social),54,77,389,193.0,2.9,69,1.4,33.0,33.0,479.0,221.0,100.0,100.0,43.0,Single,Y,1st,Y,,2307.0,25.0,secondary glazing,Normal,0.0,2.0,2.0,100.0,0.0,Community scheme,Good,Good,(another dwelling below),NO DATA!,,Some secondary glazing,Poor,Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 300 mm loft insulation",Very Good,Very Good,Community scheme,Good,Good,"Flat rate charging, TRVs",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (community),0.0,unheated corridor,3.6,,,N,natural,"9, Douglas Court, Faversham Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2018-07-18 14:11:04,rental (social),,,200003712542.0,Address Matched +1201950169002014090821572722740488,"12, Kenward Road",Yalding,,ME18 6JR,4022267278,C,B,71,90,House,Semi-Detached,2014-09-08,E07000110,E14000804,Kent,2014-09-08,rental (social),71,91,163,37.0,2.6,31,0.7,77.0,51.0,436.0,405.0,151.0,83.0,82.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,50.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"12, Kenward Road, Yalding",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2014-09-08 21:57:27,rental (social),10.0,5.0,200003660617.0,Address Matched +1317124962452015050118232697050839,"10, Downs Close",Headcorn,,TN27 9UG,8907275378,D,B,68,82,House,Detached,2015-05-01,E07000110,E14000700,Kent,2015-05-01,non marketed sale,65,81,188,90.0,3.7,33,1.8,111.0,67.0,658.0,560.0,141.0,86.0,112.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,0.0,6.0,6.0,36.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, 270 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 36% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"10, Downs Close, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,England and Wales: 1991-1995,2015-05-01 18:23:26,owner-occupied,,,200003701017.0,Address Matched +877556469402013012916275506472118,"25, Bushy Grove",Kingswood,,ME17 3QL,7423664078,D,B,68,83,House,Semi-Detached,2013-01-29,E07000110,E14000700,Kent,2013-01-29,marketed sale,69,84,176,78.0,2.8,33,1.3,56.0,56.0,506.0,444.0,108.0,72.0,84.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,83.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 83% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"25, Bushy Grove, Kingswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2013-01-29 16:27:55,unknown,12.0,10.0,200003700177.0,Address Matched +bff166646c69c7145621018e0a25e6b9d2785ed3a6d6803d6afcac6c95b6ecb7,North Cottage,Goddington Lane,Harrietsham,ME17 1JX,1163403678,E,B,48,91,House,Semi-Detached,2021-07-28,E07000110,E14000700,Kent,2021-09-14,ECO assessment,51,90,287,43.0,6.0,49,0.9,97.0,97.0,1534.0,919.0,306.0,204.0,123.0,dual,N,,,,,95.0,double glazing installed before 2002,More Than Typical,1.0,5.0,5.0,83.0,0.0,Electric heat pump for water heating only,Poor,Good,"Suspended, no insulation (assumed)",,,Mostly double glazing,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 270 mm loft insulation",Good,Good,"Air source heat pump, radiators, electric",Average,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 83% of fixed outlets,Very Good,Very Good,electricity (not community),0.0,,,2.55,0.0,N,natural,"North Cottage, Goddington Lane, Harrietsham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2021-09-14 11:57:51,Owner-occupied,6.0,,200003713868.0,Energy Assessor +1195030741512014082522043391240621,"9, Oakwood Court",,,ME16 8AF,6102117278,C,B,75,84,House,Detached,2014-08-22,E07000110,E14000804,Kent,2014-08-25,marketed sale,73,83,129,74.0,3.3,25,2.0,86.0,86.0,629.0,550.0,109.0,109.0,134.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,8.0,8.0,78.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 78% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"9, Oakwood Court",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2014-08-25 22:04:33,owner-occupied,18.0,14.0,200003657319.0,Address Matched +1280520886052015021214505991950239,"19, Fordwich Close",,,ME16 0NU,2976613378,E,C,42,77,House,Semi-Detached,2015-02-12,E07000110,E14000804,Kent,2015-02-12,none of the above,35,71,437,156.0,6.7,77,2.4,110.0,55.0,1041.0,670.0,292.0,73.0,87.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,0.0,0.0,"From main system, no cylinder thermostat",Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"19, Fordwich Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2015-02-12 14:50:59,owner-occupied,,,200003660044.0,Address Matched +636089419102011053116081089797998,"29, Kent Avenue",,,ME15 7HQ,8198417868,D,C,60,72,House,Semi-Detached,2011-05-31,E07000110,E14000700,Kent,2011-05-31,marketed sale,55,72,256,161.0,4.7,49,2.9,58.0,58.0,761.0,481.0,96.0,86.0,94.86,Single,Y,NODATA!,,,2107.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,78.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 78% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,2.4,0.0,,natural,"29, Kent Avenue",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2011-05-31 16:08:10,owner-occupied,9.0,7.0,200003711765.0,Address Matched +448518539342010030916384074300648,"7, Norfolk Road",,,ME15 7JD,8385533768,D,C,58,72,House,Semi-Detached,2010-03-04,E07000110,E14000700,Kent,2010-03-09,marketed sale,50,67,364,239.0,4.4,61,2.9,37.0,37.0,590.0,446.0,209.0,110.0,72.58,Single,Y,NO DATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,100.0,0.0,"From main system, no cylinder thermostat",Poor,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Average,Good,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.43,0.0,N,natural,"7, Norfolk Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2010-03-09 16:38:40,owner-occupied,,,200003712058.0,Address Matched +1766903639222019112017144457008801,"3a, Pine Grove",Penenden Heath,,ME14 2AJ,536387678,E,C,41,79,House,Semi-Detached,2019-11-20,E07000110,E14000804,Kent,2019-11-20,marketed sale,24,55,602,266.0,8.2,102,3.6,113.0,68.0,1308.0,714.0,256.0,110.0,81.0,dual,N,NODATA!,,,2401.0,91.0,double glazing installed before 2002,Normal,2.0,5.0,5.0,33.0,0.0,"Electric immersion, off-peak",Poor,Poor,"Solid, no insulation (assumed)",NO DATA!,,Mostly double glazing,Average,Average,"Cavity wall, filled cavity",Average,Average,"Room heaters, electric",,,"Pitched, limited insulation (assumed)",Very Poor,Very Poor,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 33% of fixed outlets,Average,Average,electricity (not community),0.0,NO DATA!,,,,N,natural,"3a, Pine Grove, Penenden Heath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2019-11-20 17:14:44,rental (private),,,200003703571.0,Address Matched +317146789062019090517134694558011,Apartment 4,"7, Bazalgette Rise",,ME16 8FJ,1989814668,B,B,83,83,Flat,Mid-Terrace,2019-09-05,E07000110,E14000804,Kent,2019-09-05,rental (social),87,87,85,85.0,1.0,15,1.0,63.0,63.0,169.0,169.0,81.0,81.0,67.0,Unknown,Y,1st,N,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,93.0,0.0,From main system,Good,Good,(another dwelling below),NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 93% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,4.85,,,N,natural,"Apartment 4, 7, Bazalgette Rise",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2019-09-05 17:13:46,rental (social),,,10014308163.0,Address Matched +c00b1508bd02863b5c410a1ebc77befe314da028105d8c000be2c71c5d4cfbc8,LITTLE COURT,LINTON HILL,LINTON,ME17 4AW,93064868,E,D,40,57,House,Detached,2021-08-06,E07000110,E14000804,Kent,2021-08-06,rental,38,50,248,162.0,14.0,59,10.0,127.0,127.0,2048.0,1989.0,149.0,97.0,232.0,Unknown,N,,,,,100.0,"double glazing, unknown install date",Normal,2.0,9.0,9.0,100.0,1.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Timber frame, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, oil",Average,Average,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,oil (not community),0.0,,,2.4,0.0,N,natural,"LITTLE COURT, LINTON HILL, LINTON",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2021-08-06 15:53:17,Rented (private),18.0,,200003663195.0,Energy Assessor +1620487423032020070807374118078300,"47, Richmond Way",,,ME15 6BN,2068327578,D,B,66,84,Bungalow,Detached,2020-07-06,E07000110,E14000804,Kent,2020-07-08,marketed sale,61,81,232,102.0,4.0,41,1.8,83.0,83.0,702.0,511.0,103.0,71.0,99.0,Unknown,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,5.0,5.0,91.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 91% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"47, Richmond Way",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2020-07-08 07:37:41,owner-occupied,,,200003676292.0,Address Matched +543136636412010092917072590200488,Flat 2 Chilham House,Drawbridge Close,,ME15 7BP,4861600868,C,C,80,80,Flat,Semi-Detached,2010-09-27,E07000110,E14000700,Kent,2010-09-29,rental (social),77,77,216,216.0,1.5,35,1.5,23.0,23.0,270.0,270.0,72.0,72.0,40.56,Single,Y,Ground,N,3.0,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,100.0,0.0,From main system,Good,Good,"Solid, limited insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,unheated corridor,7.74,2.32,0.0,N,natural,"Flat 2 Chilham House, Drawbridge Close",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1996-2002,2010-09-29 17:07:25,rental (social),,,10022896690.0,Address Matched +545610429102016110418125086060648,"45, Ash Grove",,,ME16 0AD,5187220868,E,C,48,76,Bungalow,Semi-Detached,2016-11-04,E07000110,E14000804,Kent,2016-11-04,ECO assessment,44,73,346,143.0,5.4,61,2.3,117.0,59.0,1067.0,679.0,113.0,81.0,89.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,6.0,6.0,0.0,0.0,From main system,Very Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,2.47,,N,natural,"45, Ash Grove",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2016-11-04 18:12:50,owner-occupied,,,200003658154.0,Address Matched +1425642591552016031917401494960248,Grove Bungalow,Frinsted,,ME9 0SN,2825143478,D,A,59,110,Bungalow,Detached,2016-03-15,E07000110,E14000700,Kent,2016-03-19,rental (private),52,100,256,-130.0,3.2,63,-0.4,36.0,36.0,395.0,314.0,174.0,136.0,50.0,Single,N,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,100.0,0.0,From main system,Average,Average,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Timber frame, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, oil",Average,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,oil (not community),0.0,NO DATA!,,2.37,,N,natural,"Grove Bungalow, Frinsted",Maidstone,Faversham and Mid Kent,SITTINGBOURNE,England and Wales: 1983-1990,2016-03-19 17:40:14,rental (private),,,10014308615.0,Address Matched +302949323032020071723151515968108,"40, Roman Way",Boughton Monchelsea,,ME17 4SG,2855123668,C,B,78,88,House,End-Terrace,2020-07-17,E07000110,E14000700,Kent,2020-07-17,marketed sale,77,87,132,63.0,2.6,23,1.3,114.0,87.0,406.0,412.0,116.0,68.0,112.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,68.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 68% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"40, Roman Way, Boughton Monchelsea",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2007 onwards,2020-07-17 23:15:15,owner-occupied,,,10022896566.0,Address Matched +1026425679962015072015010145498695,"8, Shropshire Terrace",,,ME15 8BA,9410715178,E,B,39,88,House,Semi-Detached,2015-07-11,E07000110,E14000700,Kent,2015-07-20,ECO assessment,33,78,453,110.0,8.4,80,2.2,128.0,64.0,1405.0,970.0,279.0,86.0,106.0,Single,Y,NODATA!,,,2102.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,0.0,0.0,"From main system, no cylinder thermostat",Average,Average,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"8, Shropshire Terrace",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2015-07-20 15:01:01,owner-occupied,,,200003684560.0,Address Matched +c029a4dc328ba22935be03bd1462de53a773d5b1052a6a30c7c764fd38e16ba9,19 OXFORD ROAD,,,ME15 8DA,10001402775,D,B,68,83,House,Semi-Detached,2021-07-30,E07000110,E14000700,Kent,2021-08-02,marketed sale,63,79,215,112.0,3.8,38,2.0,107.0,79.0,593.0,521.0,128.0,78.0,100.0,Single,Y,,,,,100.0,double glazing installed before 2002,Normal,1.0,5.0,5.0,64.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 64% of fixed outlets,Good,Good,mains gas (not community),0.0,,,2.41,0.0,N,natural,19 OXFORD ROAD,Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2021-08-02 09:55:17,Owner-occupied,11.0,,200003713246.0,Energy Assessor +918449027052013042323483495270601,"15, Gleaming Wood Drive",,,ME5 8XT,6110757078,C,B,74,87,House,Semi-Detached,2013-04-23,E07000110,E14000700,Kent,2013-04-23,marketed sale,75,88,148,54.0,2.0,28,0.8,42.0,42.0,399.0,379.0,58.0,36.0,72.0,Unknown,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"15, Gleaming Wood Drive",Maidstone,Faversham and Mid Kent,CHATHAM,England and Wales: 1967-1975,2013-04-23 23:48:34,owner-occupied,8.0,8.0,200003674143.0,Address Matched +1369728849802017021918444735939988,Flat 9,"41, Hedley Street",,ME14 5AD,5883349378,C,B,77,83,Flat,End-Terrace,2017-02-18,E07000110,E14000804,Kent,2017-02-19,rental (social),73,73,271,273.0,1.5,46,1.5,28.0,31.0,162.0,103.0,151.0,118.0,32.0,dual,N,2nd,Y,,2603.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,100.0,0.0,"Electric immersion, off-peak",Poor,Poor,(another dwelling below),NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Very Good,Very Good,,,,"Pitched, insulated (assumed)",Good,Good,"Room heaters, electric",Very Poor,Poor,Programmer and appliance thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,heated corridor,,,,N,natural,"Flat 9, 41, Hedley Street",Maidstone,Maidstone and The Weald,MAIDSTONE,INVALID!,2017-02-19 18:44:47,rental (social),,,10091194334.0,Address Matched +c039f07d47297c0a186aa79861a9f99ba78b866600d7e0493b6f46539dfe0474,33 SOUTH PARK ROAD,,,ME15 7AL,10001473291,D,B,66,87,House,Mid-Terrace,2021-07-08,E07000110,E14000700,Kent,2021-07-08,rental,63,86,246,81.0,3.0,43,1.0,95.0,60.0,471.0,367.0,120.0,73.0,70.0,Single,Y,,,,,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,40.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 40% of fixed outlets,Average,Average,mains gas (not community),0.0,,,2.39,0.0,N,natural,33 SOUTH PARK ROAD,Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2021-07-08 19:46:05,Rented (social),10.0,,200003715858.0,Energy Assessor +855250809302019040208032704310498,"31, St. Catherines Road",,,ME15 9WP,4392803078,C,A,78,92,House,Mid-Terrace,2019-04-01,E07000110,E14000700,Kent,2019-04-02,marketed sale,81,93,137,30.0,1.5,24,0.4,102.0,51.0,256.0,262.0,59.0,59.0,62.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,0.0,0.0,"From main system, plus solar",Very Good,Very Good,"Suspended, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 270 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,Y,natural,"31, St. Catherines Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2007 onwards,2019-04-02 08:03:27,owner-occupied,,,10014311702.0,Address Matched +1100532556252014030616543894040123,"43, Langdale Rise",,,ME16 0EX,1356640278,D,B,61,84,House,Detached,2014-03-04,E07000110,E14000804,Kent,2014-03-06,none of the above,57,84,220,73.0,4.5,42,1.5,118.0,59.0,783.0,496.0,123.0,79.0,106.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,6.0,6.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"43, Langdale Rise",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2014-03-06 16:54:38,owner-occupied,30.0,0.0,200003659019.0,Address Matched +1491129294252016111612080090969348,"10, Rufus Walk",Allington,,ME16 0XJ,3876408478,B,A,85,95,House,NO DATA!,2016-11-16,E07000110,E14000804,Kent,2016-11-16,new dwelling,86,96,78,11.0,1.5,14,0.3,70.0,70.0,241.0,242.0,112.0,60.0,111.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.12 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.22 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.17 W/m-¦K,Good,Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"10, Rufus Walk, Allington",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2016-11-16 12:08:00,unknown,10.0,10.0,10092970760.0,Address Matched +280344679262018092515482651578598,10 Bicknor Court Cottages,Bicknor Lane,Bicknor,ME9 8AX,9579751668,D,A,60,100,House,Semi-Detached,2018-07-23,E07000110,E14000700,Kent,2018-09-25,rental (private),44,77,365,122.0,5.6,59,1.7,145.0,72.0,667.0,627.0,327.0,168.0,95.0,dual,N,NODATA!,,,2404.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,0.0,0.0,"Electric immersion, off-peak",Very Poor,Poor,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,"Room heaters, wood logs",,,"Pitched, 250 mm loft insulation",Good,Good,Electric storage heaters,Average,Poor,Controls for high heat retention storage heaters,Good,Good,No low energy lighting,Very Poor,Very Poor,electricity (not community),0.0,NO DATA!,,,,N,natural,"10 Bicknor Court Cottages, Bicknor Lane, Bicknor",Maidstone,Faversham and Mid Kent,SITTINGBOURNE,England and Wales: 1950-1966,2018-09-25 15:48:26,rental (private),,,200003720989.0,Address Matched +1742767109902019081218580466610858,Flat 8,84 King Street,,ME14 1DZ,1963606678,C,B,75,82,Flat,Semi-Detached,2019-08-05,E07000110,E14000804,Kent,2019-08-12,rental (private),72,73,298,281.0,1.5,50,1.4,28.0,32.0,216.0,147.0,137.0,98.0,29.0,dual,N,1st,Y,,2603.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,100.0,0.0,"Electric immersion, off-peak",Poor,Poor,"To external air, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Very Good,Very Good,,,,"Flat, insulated (assumed)",Good,Good,"Room heaters, electric",Very Poor,Poor,Programmer and appliance thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,no corridor,,,,N,natural,"Flat 8, 84 King Street",Maidstone,Maidstone and The Weald,MAIDSTONE,INVALID!,2019-08-12 18:58:04,rental (private),,,10094444379.0,Address Matched +736812089052012010520524193020995,"7, Honywood Road",Lenham,,ME17 2HQ,9587934968,C,C,72,72,House,Semi-Detached,2012-01-05,E07000110,E14000700,Kent,2012-01-05,rental (social),73,73,167,167.0,2.5,32,2.5,47.0,47.0,407.0,407.0,110.0,110.0,78.4,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,89.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 89% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,2.3,0.0,,natural,"7, Honywood Road, Lenham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2012-01-05 20:52:41,rental (social),9.0,8.0,200003723727.0,Address Matched +1471708656312016081610354196960446,"3, Headcorn Road",Platts Heath,,ME17 2NH,4684666478,E,A,45,94,Bungalow,Detached,2016-08-15,E07000110,E14000700,Kent,2016-08-16,marketed sale,16,110,306,22.0,17.0,107,-1.6,151.0,81.0,1523.0,762.0,340.0,92.0,154.0,Unknown,N,NODATA!,,,2111.0,100.0,"double glazing, unknown install date",Normal,0.0,6.0,5.0,14.0,0.0,"From main system, no cylinder thermostat",Poor,Very Poor,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,"Roof room(s), insulated",Average,Average,"Boiler and radiators, coal",Average,Very Poor,TRVs and bypass,Average,Average,Low energy lighting in 14% of fixed outlets,Poor,Poor,house coal (not community),0.0,NO DATA!,,2.28,,N,natural,"3, Headcorn Road, Platts Heath",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2016-08-16 10:35:41,owner-occupied,,,200003703762.0,Address Matched +586307239022019120414011283678321,Rock Cottage,Atkins Hill,Boughton Monchelsea,ME17 4GW,2824333868,D,C,57,74,House,Detached,2019-12-03,E07000110,E14000700,Kent,2019-12-04,rental (private),52,68,249,163.0,12.0,40,7.4,130.0,132.0,2301.0,2025.0,149.0,149.0,290.0,Unknown,Y,NODATA!,,,2105.0,25.0,double glazing installed during or after 2002,Normal,1.0,8.0,8.0,100.0,2.0,From main system,Good,Good,"Solid, insulated",NO DATA!,,Some double glazing,Poor,Poor,"Timber frame, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and underfloor heating, mains gas",Good,Good,Programmer and at least two room thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"Rock Cottage, Atkins Hill, Boughton Monchelsea",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2019-12-04 14:01:12,rental (private),,,200003729930.0,Address Matched +842153285552012100814151691029607,"36, Lyngs Close",Yalding,,ME18 6JS,6704512078,C,C,73,74,Flat,Enclosed End-Terrace,2012-10-03,E07000110,E14000804,Kent,2012-10-08,rental (social),76,77,161,154.0,1.7,31,1.6,55.0,33.0,301.0,305.0,77.0,77.0,55.0,Single,Y,2nd,Y,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,33.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 33% of fixed outlets,Average,Average,mains gas (not community),0.0,unheated corridor,4.38,,0.0,,natural,"36, Lyngs Close, Yalding",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2012-10-08 14:15:16,rental (social),6.0,2.0,200003660379.0,Address Matched +794278910852012052818063198220290,Hammons Court,Plain Road,Marden,TN12 9LS,2004088968,D,C,55,77,House,Detached,2012-05-28,E07000110,E14000804,Kent,2012-05-28,marketed sale,46,71,192,96.0,15.0,44,7.4,156.0,104.0,2427.0,1441.0,202.0,153.0,334.0,Single,N,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,10.0,10.0,50.0,2.0,From main system,Average,Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Timber frame, with additional insulation",Good,Good,"Room heaters, wood logs",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, oil",Average,Average,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,oil (not community),0.0,NO DATA!,,,0.0,,natural,"Hammons Court, Plain Road, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: before 1900,2012-05-28 18:06:31,owner-occupied,20.0,10.0,200003725555.0,Address Matched +c070c9a6bf73aa62bb96a29479d413b5dfb8c85a3df0dc16b0742a562e410671,54 Gilbert Way,,,ME17 3TT,10001512700,B,A,83,96,House,End-Terrace,2021-09-16,E07000110,E14000700,Kent,2021-09-16,new dwelling,86,98,91,-1.0,1.2,16,0.0,67.0,67.0,209.0,209.0,66.0,40.0,74.0,standard tariff,,,N,,,100.0,,,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.33,,,,54 Gilbert Way,Maidstone,Faversham and Mid Kent,MAIDSTONE,2017,2021-09-16 14:21:37,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,8.0,,10094441898.0,Energy Assessor +c05082b93eeb3f540649d18d236a30c7b615666f7577c2130d8fedd5ad862753,Flat 93,Lee Heights,Bambridge Court,ME14 2LD,10001680565,C,B,78,87,Flat,Mid-Terrace,2021-08-17,E07000110,E14000804,Kent,2021-08-19,marketed sale,80,80,158,163.0,1.3,27,1.3,50.0,56.0,100.0,52.0,324.0,164.0,48.0,Single,N,02,N,,,100.0,double glazing installed during or after 2002,Less Than Typical,1.0,2.0,2.0,100.0,0.0,"Electric immersion, standard tariff",Very Poor,Poor,(another dwelling below),,,Fully double glazed,Good,Good,"System built, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,(another dwelling above),,,"Room heaters, electric",Very Poor,Poor,Programmer and appliance thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,unheated corridor,4.21,2.25,0.0,N,natural,"Flat 93, Lee Heights, Bambridge Court",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2021-08-19 15:55:37,Owner-occupied,7.0,,10022893064.0,Energy Assessor +1444778279302016092613450047462168,"59, High Street",Lenham,,ME17 2QB,1312674478,E,B,54,82,House,End-Terrace,2016-09-26,E07000110,E14000700,Kent,2016-09-26,ECO assessment,47,79,361,120.0,4.8,64,1.6,50.0,50.0,848.0,522.0,175.0,73.0,75.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,4.0,4.0,100.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,2.49,,N,natural,"59, High Street, Lenham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2016-09-26 13:45:00,owner-occupied,,,200003711185.0,Address Matched +491145630642010052610194179619228,"21, Tilling Close",,,ME15 6RW,8628436768,B,B,82,83,Flat,Detached,2009-11-12,E07000110,E14000804,Kent,2010-05-26,new dwelling,81,82,145,136.0,1.6,24,1.5,71.0,40.0,230.0,234.0,93.0,93.0,66.06,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,,From main system |O'r brif system,Very Good,Very Good,Average thermal transmittance 0.24 W/m?K|Trawsyriannedd thermol cyfartalog 0.24 W/m?K,Good,Good,Fully double glazed|Gwydrau dwbl llawn,Good,Good,Average thermal transmittance 0.26 W/m?K|Trawsyriannedd thermol cyfartalog 0.26 W/m?K,Very Good,Very Good,None|Dim,,,(other premises above)|(eiddo arall uwchben),,,"Boiler and radiators, |Bwyler a rheiddiaduron, |mains gas|nwy prif gyflenwad",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 25% of fixed outlets|Goleuadau ynni-isel mewn 25% o'r mannau gosod,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.42,,,NO DATA!,"21, Tilling Close",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2010-05-26 10:19:41,,,,10022895687.0,Address Matched +794369009262012052916470168088632,"58, Hatherall Road",,,ME14 5HF,3696088968,E,D,41,58,Bungalow,Detached,2012-05-28,E07000110,E14000804,Kent,2012-05-29,marketed sale,41,55,338,233.0,6.7,64,4.6,67.0,67.0,894.0,788.0,452.0,349.0,105.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,75.0,0.0,No system present: electric immersion assumed,Very Poor,Very Poor,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,,,,"Flat, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"58, Hatherall Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2012-05-29 16:47:01,owner-occupied,12.0,9.0,200003705436.0,Address Matched +1232367339632016011123161657078605,Wisteria Cottage,Linton Park,Linton,ME17 4AN,3507679278,F,B,33,81,House,Detached,2016-01-06,E07000110,E14000804,Kent,2016-01-11,ECO assessment,18,61,680,226.0,13.0,107,4.5,155.0,79.0,1825.0,687.0,289.0,101.0,126.0,dual,N,NODATA!,,,2401.0,0.0,not defined,Normal,0.0,5.0,5.0,0.0,0.0,"Electric immersion, off-peak",Very Poor,Poor,"Solid, no insulation (assumed)",NO DATA!,,Single glazed,Very Poor,Very Poor,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, wood logs",,,"Pitched, 100 mm loft insulation",Average,Average,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,No low energy lighting,Very Poor,Very Poor,electricity (not community),0.0,NO DATA!,,,,N,natural,"Wisteria Cottage, Linton Park, Linton",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2016-01-11 23:16:16,rental (private),,,10014309584.0,Address Matched +236950262002020021907415353809098,"50, Lacock Gardens",,,ME15 6GQ,48568568,C,B,70,88,House,Mid-Terrace,2020-02-11,E07000110,E14000804,Kent,2020-02-19,rental (private),67,88,212,65.0,2.8,37,0.9,65.0,65.0,451.0,351.0,136.0,70.0,75.0,Unknown,Y,NODATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,"Solid, limited insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"50, Lacock Gardens",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2020-02-19 07:41:53,rental (private),,,10034134525.0,Address Matched +871732229902013011513395302479058,"277, Queens Road",,,ME16 0JN,3919524078,E,B,50,84,Bungalow,Detached,2013-01-15,E07000110,E14000804,Kent,2013-01-15,marketed sale,46,85,320,73.0,4.9,62,1.2,46.0,46.0,773.0,409.0,182.0,69.0,79.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,100.0,0.0,"From main system, no cylinder thermostat",Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"277, Queens Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2013-01-15 13:39:53,unknown,8.0,8.0,200003656823.0,Address Matched +86922105932011052600145320268108,"4, Netley Close",,,ME14 5SA,870175468,E,C,50,69,House,Semi-Detached,2011-05-25,E07000110,E14000804,Kent,2011-05-26,marketed sale,46,68,343,198.0,5.2,66,3.0,58.0,41.0,808.0,488.0,138.0,101.0,78.79,Unknown,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,60.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 60% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,2.33,0.0,,natural,"4, Netley Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2011-05-26 00:14:53,owner-occupied,10.0,6.0,200003672873.0,Address Matched +579899673552011011315574498990288,"3, Pettits Row",Collier Street,,TN12 9RU,2844382868,C,C,72,76,House,Mid-Terrace,2011-01-13,E07000110,E14000804,Kent,2011-01-13,rental (private),69,73,227,197.0,2.7,38,2.3,57.0,38.0,443.0,400.0,103.0,97.0,54.59,Single,Y,NO DATA!,,,2107.0,100.0,double glazing installed during or after 2002,Normal,1.0,5.0,5.0,50.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,0.0,N,natural,"3, Pettits Row, Collier Street",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1900-1929,2011-01-13 15:57:44,rental (private),,,10014307228.0,Address Matched +1144633455432014053012261960778606,Holly Lodge,South Street Road,Stockbury,ME9 7QS,5690653278,F,C,29,79,House,Detached,2014-05-30,E07000110,E14000700,Kent,2014-05-30,assessment for green deal,20,66,344,93.0,17.0,91,5.2,150.0,83.0,2856.0,1110.0,542.0,130.0,191.0,Single,N,NODATA!,,,2104.0,,not defined,Much More Than Typical,1.0,9.0,9.0,16.0,1.0,"From main system, no cylinder thermostat",Very Poor,Very Poor,"Solid, no insulation (assumed)",,,Partial double glazing,Poor,Poor,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, smokeless fuel",,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, oil",Average,Average,Programmer and room thermostat,Average,Average,Low energy lighting in 16% of fixed outlets,Poor,Poor,oil (not community),0.0,NO DATA!,,,0.0,,natural,"Holly Lodge, South Street Road, Stockbury",Maidstone,Faversham and Mid Kent,SITTINGBOURNE,England and Wales: 1950-1966,2014-05-30 12:26:19,owner-occupied,19.0,3.0,200003700686.0,Address Matched +1511413849842017011713523441939238,5 Railway Cottages,Maidstone Road,Marden,TN12 9AF,2833949478,D,A,64,111,House,Mid-Terrace,2017-01-17,E07000110,E14000804,Kent,2017-01-17,FiT application,67,112,247,-107.0,2.3,39,-1.3,43.0,43.0,490.0,382.0,113.0,60.0,61.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,3.0,3.0,100.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Poor,Poor,"Room heaters, wood logs",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"5 Railway Cottages, Maidstone Road, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: before 1900,2017-01-17 13:52:34,owner-occupied,,,200003710741.0,Address Matched +1503880140632016121015303421278594,"3, The Crescent",Invicta Park,,ME14 2NP,4431598478,E,B,49,83,House,Semi-Detached,2016-10-25,E07000110,E14000804,Kent,2016-12-10,rental (private),36,75,344,95.0,7.6,71,2.4,113.0,66.0,1152.0,556.0,185.0,79.0,107.0,Single,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,30.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, coal",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 30% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"3, The Crescent, Invicta Park",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2016-12-10 15:30:34,rental (private),,,200003724047.0,Address Matched +1220557289302014101415072721849748,"105, Robins Close",Lenham,,ME17 2LE,8325988278,C,C,70,76,Flat,Semi-Detached,2014-10-14,E07000110,E14000700,Kent,2014-10-14,marketed sale,71,79,188,137.0,2.1,36,1.5,51.0,39.0,429.0,320.0,85.0,85.0,59.0,Single,Y,2nd,Y,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,71.0,0.0,From main system,Very Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 71% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,7.26,,0.0,,natural,"105, Robins Close, Lenham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2014-10-14 15:07:27,owner-occupied,7.0,5.0,200003707269.0,Address Matched +772750062009070416135345878901,Flat 12 Sherlock House,Lynley Close,,ME15 9GB,486505468,B,B,86,87,Flat,Detached,2009-07-03,E07000110,E14000700,Kent,2009-07-04,rental (social),86,87,104,98.0,1.2,17,1.1,56.0,38.0,184.0,186.0,78.0,78.0,68.074,Single,Y,1st,N,4.0,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,50.0,0.0,From main system,Very Good,Very Good,(other premises below),,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,unheated corridor,4.86,2.38,0.0,N,natural,"Flat 12 Sherlock House, Lynley Close",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2003-2006,2009-07-04 16:13:53,rental (social),,,10022895357.0,Address Matched +754380181952012030118564799020092,Flat 9 Swallow House,Springvale,,ME16 0AZ,282195968,C,C,70,79,Flat,NO DATA!,2012-03-01,E07000110,E14000804,Kent,2012-03-01,marketed sale,54,66,321,236.0,4.0,57,3.0,75.0,45.0,389.0,249.0,129.0,129.0,71.0,dual,N,2nd,N,,2401.0,20.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,33.0,0.0,"Electric immersion, off-peak",Average,Very Poor,(other premises below),,,Some double glazing,Very Poor,Very Poor,"Cavity wall, as built, partial insulation (assumed)",Average,Average,"Room heaters, electric",,,(another dwelling above),,,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 33% of fixed outlets,Average,Average,electricity (not community),0.0,unheated corridor,7.26,2.3,0.0,,natural,"Flat 9 Swallow House, Springvale",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1976-1982,2012-03-01 18:56:47,owner-occupied,6.0,2.0,200003667132.0,Address Matched +1119902029222016102817313111868876,Flat 2 Primrose House,Westmorland Road,,ME15 8JG,7195281278,C,C,74,75,Flat,Detached,2016-10-26,E07000110,E14000700,Kent,2016-10-28,rental (social),75,77,205,188.0,1.6,36,1.5,35.0,35.0,311.0,286.0,81.0,81.0,44.0,Single,Y,Ground,N,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,2.0,2.0,100.0,0.0,From main system,Good,Good,"Solid, limited insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,7.9,2.35,,N,natural,"Flat 2 Primrose House, Westmorland Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1996-2002,2016-10-28 17:31:31,rental (social),,,200003685583.0,Address Matched +754788819922017051815091465738883,3 Manor Cottages,Howland Road,Marden,TN12 9EZ,8618195968,C,B,73,84,House,End-Terrace,2017-05-17,E07000110,E14000804,Kent,2017-05-18,marketed sale,74,85,163,82.0,2.2,26,1.1,56.0,56.0,468.0,468.0,82.0,49.0,85.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Very Good,Very Good,"Room heaters, wood logs",,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"3 Manor Cottages, Howland Road, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,INVALID!,2017-05-18 15:09:14,owner-occupied,,,10014313824.0,Address Matched +c0bb28312ce64eb35a812b49228e3aee4341c51e91edb1c3a068c97a942224d1,30 SILVERDALE,,,ME16 9JG,10001476998,D,C,64,79,House,Semi-Detached,2021-07-05,E07000110,E14000804,Kent,2021-07-05,marketed sale,57,74,228,123.0,4.6,40,2.5,84.0,84.0,740.0,606.0,134.0,82.0,115.0,Single,Y,,,,,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, partial insulation (assumed)",Average,Average,,,,"Pitched, limited insulation (assumed)",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,1.5,0.0,N,natural,30 SILVERDALE,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1976-1982,2021-07-05 16:41:08,Owner-occupied,14.0,,200003666383.0,Energy Assessor +1646052209902018071317450457989978,"52, Peel Street",,,ME14 2SB,5946509578,E,C,54,76,House,Mid-Terrace,2018-07-13,E07000110,E14000804,Kent,2018-07-13,marketed sale,50,73,297,142.0,4.9,52,2.4,126.0,63.0,914.0,680.0,103.0,70.0,93.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,2.0,5.0,5.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, electric",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"52, Peel Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2018-07-13 17:45:04,owner-occupied,,,200003702393.0,Address Matched +888231464612013022608094194270205,"37, The Landway",Bearsted,,ME14 4BG,2583445078,D,C,63,76,House,Semi-Detached,2013-02-25,E07000110,E14000700,Kent,2013-02-26,marketed sale,60,73,208,124.0,4.1,40,2.5,104.0,54.0,659.0,632.0,111.0,74.0,102.0,Unknown,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,6.0,6.0,7.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Flat, insulated (assumed)",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 7% of fixed outlets,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"37, The Landway, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2013-02-26 08:09:41,owner-occupied,14.0,1.0,200003692617.0,Address Matched +1732198109262019062710430925838501,"13, Bergamot Road",Allington,,ME16 9FX,271035678,B,B,86,88,House,Semi-Detached,2019-06-27,E07000110,E14000804,Kent,2019-06-27,new dwelling,87,90,72,56.0,1.1,13,0.9,64.0,64.0,218.0,219.0,92.0,50.0,87.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.19 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.16 W/m-¦K,Good,Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"13, Bergamot Road, Allington",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2019-06-27 10:43:09,unknown,30.0,30.0,10093306691.0,Address Matched +1747910659262019090313195226118811,"86, Sittingbourne Road",,,ME14 5HY,1241546678,D,C,64,80,House,Detached,2019-08-29,E07000110,E14000804,Kent,2019-09-03,marketed sale,57,76,242,124.0,4.5,43,2.4,92.0,92.0,722.0,594.0,155.0,73.0,106.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,6.0,6.0,77.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 77% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"86, Sittingbourne Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2019-09-03 13:19:52,owner-occupied,,,200003716657.0,Address Matched +1497818840212016111713121295969840,"12, Hadaway Road",,,ME17 3FG,8039058478,B,B,83,83,House,Detached,2016-11-17,E07000110,E14000700,Kent,2016-11-17,new dwelling,83,83,94,94.0,1.9,16,1.9,67.0,67.0,320.0,320.0,107.0,107.0,113.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"12, Hadaway Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2016-11-17 13:12:12,unknown,1.0,1.0,10091194113.0,Address Matched +1564439144812017080307573192030250,35 Saxon Way,,,ME15 6AL,2039423578,B,A,85,92,House,Detached,2017-08-03,E07000110,E14000804,Kent,2017-08-03,new dwelling,86,93,79,34.0,2.2,13,0.9,83.0,83.0,381.0,382.0,109.0,60.0,166.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.10 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.28 W/m-¦K,Very Good,Very Good,"Room heaters, wood logs",,,Average thermal transmittance 0.12 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,35 Saxon Way,Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2017-08-03 07:57:31,owner-occupied,45.0,45.0,10093304989.0,Address Matched +17870910612010031515493498900046,95 Wallis Place,Hart Street,,ME16 8FD,605088468,B,B,88,88,Flat,NO DATA!,2010-03-15,E07000110,E14000804,Kent,2010-03-15,new dwelling,88,88,90,90.0,1.0,15,1.0,36.0,36.0,166.0,166.0,93.0,93.0,69.94,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,6.0,,From main system,Very Good,Very Good,(other premises below),,,Fully double glazed,Good,Good,Average thermal transmittance 0.29 W/m?K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.36,,,NO DATA!,"95 Wallis Place, Hart Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2010-03-15 15:49:34,,6.0,6.0,10022900695.0,Address Matched +1190424579302014081414074325649548,Kent Cottage,Grigg Lane,Headcorn,TN27 9TD,6305776278,B,B,83,91,House,Detached,2014-08-14,E07000110,E14000700,Kent,2014-08-14,new dwelling,83,90,88,43.0,2.5,16,1.2,77.0,77.0,424.0,425.0,112.0,64.0,161.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.12 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.1 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Kent Cottage, Grigg Lane, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,NO DATA!,2014-08-14 14:07:43,unknown,10.0,10.0,10014315532.0,Address Matched +1678149159022019100912111571918598,Flat 312,Kent House,Romney Place,ME15 6LA,9735531678,D,D,67,67,Flat,Detached,2018-11-09,E07000110,E14000804,Kent,2019-10-09,non marketed sale,70,70,218,218.0,2.1,37,2.1,45.0,45.0,385.0,385.0,276.0,276.0,57.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,"Electric immersion, standard tariff",Very Poor,Poor,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.34 W/m-¦K,Good,Good,,,,(other premises above),,,Electric underfloor heating,Very Poor,Poor,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"Flat 312, Kent House, Romney Place",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2019-10-09 12:11:15,unknown,21.0,21.0,, +1666119390852018100812211795089763,"47, Anglesey Avenue",,,ME15 9TB,7343050678,D,C,58,70,House,Semi-Detached,2018-10-08,E07000110,E14000804,Kent,2018-10-08,ECO assessment,36,47,395,299.0,9.1,67,6.9,107.0,85.0,1220.0,1118.0,223.0,173.0,136.0,Unknown,N,NODATA!,,,2401.0,100.0,"double glazing, unknown install date",Normal,0.0,8.0,8.0,75.0,0.0,"Electric immersion, off-peak",Poor,Poor,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,Portable electric heaters (assumed),,,"Pitched, 200 mm loft insulation",Good,Good,Electric storage heaters,Average,Poor,Manual charge control,Poor,Poor,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,electricity (not community),0.0,NO DATA!,,,,N,natural,"47, Anglesey Avenue",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2018-10-08 12:21:17,owner-occupied,,,200003675343.0,Address Matched +355622271252009090320341809010061,"3, Lodge Gardens",Ulcombe,,ME17 1DZ,127196668,E,D,51,57,Bungalow,Semi-Detached,2009-09-02,E07000110,E14000700,Kent,2009-09-03,rental (social),44,47,519,481.0,4.4,78,4.1,46.0,31.0,476.0,412.0,148.0,148.0,56.4,dual,N,NO DATA!,,,2401.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,50.0,0.0,"Electric immersion, off-peak",Poor,Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, 200 mm loft insulation",Good,Good,Electric storage heaters,Poor,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 50% of fixed outlets,Good,Good,electricity - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.28,0.0,N,natural,"3, Lodge Gardens, Ulcombe",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2009-09-03 20:34:18,rental (social),,,200003701095.0,Address Matched +1418379109222016030111534332018336,Flat 21 Star House,Pudding Lane,,ME14 1LT,3312092478,C,C,80,80,Flat,Enclosed Mid-Terrace,2016-02-29,E07000110,E14000804,Kent,2016-03-01,new dwelling,85,85,124,124.0,1.0,22,1.0,37.0,37.0,178.0,178.0,88.0,88.0,44.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,(other premises below),,,Full secondary glazing,Average,Average,Average thermal transmittance 0.28 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Flat 21 Star House, Pudding Lane",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2016-03-01 11:53:43,owner-occupied,5.0,5.0,10091195013.0,Address Matched +521533659242010080317472673800878,"6, Connaught Close",,,ME15 9PX,4281258768,D,C,66,76,House,End-Terrace,2010-08-03,E07000110,E14000700,Kent,2010-08-03,rental (social),60,72,275,193.0,3.8,46,2.6,43.0,43.0,548.0,409.0,158.0,113.0,81.84,Single,Y,NO DATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,100.0,0.0,From main system,Average,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Average,Good,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.31,0.0,N,natural,"6, Connaught Close",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2010-08-03 17:47:26,rental (social),,,200003682782.0,Address Matched +493744361832010060211264211968409,Flat 9 John Brenchley House,Vinters Road,,ME14 5DH,6941456768,B,B,83,83,Flat,End-Terrace,2008-09-17,E07000110,E14000804,Kent,2010-06-02,new dwelling,85,85,144,144.0,1.1,22,1.1,28.0,28.0,145.0,145.0,83.0,83.0,49.3,off-peak 7 hour,,ground floor,,,,,NO DATA!,NO DATA!,,,,,,"Electric immersion, off-peak",Average,Good,Average thermal transmittance 0.17 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.23 W/m?K,Very Good,Very Good,,,,(other premises above),,,"Air source heat pump, underfloor, electric",Average,Very Good,Time and temperature zone control,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",0.0,NO DATA!,,2.5,,,NO DATA!,"Flat 9 John Brenchley House, Vinters Road",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2010-06-02 11:26:42,,,,10014311078.0,Address Matched +461916259762010033020435854508220,Brookfield,Busbridge Road,Loose,ME15 0ES,2574534768,D,C,61,71,House,Detached,2010-03-30,E07000110,E14000804,Kent,2010-03-30,marketed sale,55,67,277,203.0,5.7,46,4.1,110.0,64.0,769.0,603.0,182.0,135.0,104.73,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,2.0,5.0,5.0,27.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Roof room(s), insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 27% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.52,0.0,N,natural,"Brookfield, Busbridge Road, Loose",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2010-03-30 20:43:58,owner-occupied,,,200003663744.0,Address Matched +1810953352252020071620545920900776,"15, Adam Close",Coxheath,,ME17 4QU,7617201778,D,B,68,84,House,Detached,2020-07-16,E07000110,E14000804,Kent,2020-07-16,marketed sale,65,80,211,107.0,3.4,37,1.8,140.0,80.0,541.0,504.0,134.0,82.0,93.0,dual,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,25.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, 270 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 25% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"15, Adam Close, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2020-07-16 20:54:59,owner-occupied,,,200003712800.0,Address Matched +1026125589962013101616422165368857,"39, Kent Avenue",,,ME15 7HQ,5628815178,D,B,64,87,House,Semi-Detached,2013-10-16,E07000110,E14000700,Kent,2013-10-16,non marketed sale,62,87,205,56.0,3.6,39,1.0,94.0,53.0,615.0,388.0,115.0,77.0,92.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,4.0,4.0,22.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 22% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"39, Kent Avenue",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1900-1929,2013-10-16 16:42:21,owner-occupied,9.0,2.0,200003711770.0,Address Matched +1791435462342020031120383068909008,"1, Kings Road",Headcorn,,TN27 9QT,7343069678,F,C,35,74,House,Detached,2020-03-10,E07000110,E14000700,Kent,2020-03-11,marketed sale,15,45,616,287.0,16.0,107,7.6,188.0,107.0,2473.0,1283.0,381.0,128.0,154.0,dual,N,NODATA!,,,2401.0,0.0,not defined,Normal,1.0,7.0,4.0,21.0,0.0,"Electric immersion, off-peak",Very Poor,Poor,"Solid, no insulation (assumed)",NO DATA!,,Single glazed,Very Poor,Very Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 300 mm loft insulation",Very Good,Very Good,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 21% of fixed outlets,Poor,Poor,electricity (not community),0.0,NO DATA!,,,,N,natural,"1, Kings Road, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,England and Wales: before 1900,2020-03-11 20:38:30,owner-occupied,,,200003698709.0,Address Matched +796125019922013021209301768328437,"2, Parisfield Close",Staplehurst,,TN12 0BF,3604198968,B,B,83,83,House,Mid-Terrace,2013-02-12,E07000110,E14000804,Kent,2013-02-12,new dwelling,87,87,82,82.0,1.2,16,1.2,48.0,48.0,216.0,216.0,86.0,86.0,76.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.14 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.17 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.13 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"2, Parisfield Close, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,NO DATA!,2013-02-12 09:30:17,NO DATA!,13.0,13.0,10014314208.0,Address Matched +1628603565832018050216114412078006,Flat 12 Challenger Court,"49, Wallis Avenue",,ME15 9HS,6642087578,B,B,81,81,Flat,Detached,2018-05-02,E07000110,E14000700,Kent,2018-05-02,new dwelling,85,85,118,118.0,1.1,21,1.1,37.0,37.0,194.0,194.0,80.0,80.0,52.0,standard tariff,,top floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.19 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.14 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Flat 12 Challenger Court, 49, Wallis Avenue",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2018-05-02 16:11:44,unknown,10.0,10.0,10093304762.0,Address Matched +1797137502942020042421190278002548,"45, Barnhurst Road",Penenden Heath,,ME14 2EL,8961100778,C,C,77,77,Flat,Semi-Detached,2020-04-24,E07000110,E14000804,Kent,2020-04-24,rental (social),79,79,152,152.0,1.6,27,1.6,58.0,58.0,239.0,239.0,124.0,124.0,59.0,Single,Y,1st,N,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,83.0,0.0,From main system,Good,Good,(another dwelling below),NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Average,Average,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 83% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,6.97,,,N,natural,"45, Barnhurst Road, Penenden Heath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2020-04-24 21:19:02,rental (social),,,200003706600.0,Address Matched +1052891425712013112916540390279816,The Annex,2 Chapel Farm Cottage,Lenham Heath,ME17 2BJ,8688507178,D,B,59,83,Bungalow,Detached,2013-11-29,E07000110,E14000700,Kent,2013-11-29,rental (private),68,90,176,20.0,2.4,39,0.6,80.0,40.0,587.0,511.0,177.0,116.0,63.0,Single,N,NODATA!,,,2102.0,100.0,double glazing installed during or after 2002,More Than Typical,0.0,2.0,2.0,0.0,0.0,From main system,Average,Good,"Suspended, insulated (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, LPG",Average,Good,"Programmer, no room thermostat",Very Poor,Very Poor,No low energy lighting,Very Poor,Very Poor,LPG (not community),0.0,NO DATA!,,,0.0,,natural,"The Annex, 2 Chapel Farm Cottage, Lenham Heath",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2003-2006,2013-11-29 16:54:03,rental (private),14.0,0.0,200003732453.0,Address Matched +511731089102010071015235972709708,"15, Celestine Close",,,ME5 9NG,8174387768,E,C,48,72,House,Detached,2010-07-10,E07000110,E14000700,Kent,2010-07-10,marketed sale,42,67,403,214.0,6.6,68,3.5,87.0,52.0,952.0,532.0,192.0,126.0,114.95,Single,Y,NO DATA!,,,2107.0,77.0,double glazing installed during or after 2002,Normal,0.0,6.0,6.0,33.0,0.0,From main system,Average,Good,"Suspended, no insulation (assumed)",,,Partial double glazing,Average,Average,"Cavity wall, as built, partial insulation (assumed)",Average,Average,"Room heaters, mains gas",,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Average,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 33% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.35,0.0,N,natural,"15, Celestine Close",Maidstone,Faversham and Mid Kent,CHATHAM,England and Wales: 1976-1982,2010-07-10 15:23:59,owner-occupied,,,200003708767.0,Address Matched +413685330962009121709075830368511,Flat 20 Block B,Bodiam Court,,ME16 8LZ,1354390768,B,B,83,86,Flat,Mid-Terrace,2009-12-16,E07000110,E14000804,Kent,2009-12-17,rental (private),83,86,138,113.0,1.3,23,1.1,57.0,33.0,181.0,178.0,113.0,95.0,59.19,Single,Y,1st,N,3.0,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,25.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 25% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,heated corridor,,2.34,0.0,N,natural,"Flat 20 Block B, Bodiam Court",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2009-12-17 09:07:58,rental (private),,,200003721129.0,Address Matched +516130219962010072009463838218390,"39, The Grove",Bearsted,,ME14 4JB,9304118768,D,D,64,67,Bungalow,Semi-Detached,2010-07-19,E07000110,E14000700,Kent,2010-07-20,rental (private),58,61,332,311.0,3.2,55,3.0,50.0,30.0,515.0,496.0,82.0,82.0,57.86,Single,Y,NO DATA!,,,2106.0,83.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,30.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Mostly double glazing,Poor,Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 30% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.47,0.0,N,natural,"39, The Grove, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2010-07-20 09:46:38,rental (private),,,200003692562.0,Address Matched +1817182452962020081107111581308880,"53, Birling Avenue",Bearsted,,ME14 4LN,8855541778,D,B,68,82,House,Detached,2020-08-10,E07000110,E14000700,Kent,2020-08-11,marketed sale,63,79,212,110.0,3.7,37,2.0,82.0,82.0,604.0,526.0,136.0,82.0,99.0,Unknown,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,1.0,5.0,5.0,92.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, 270 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 92% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"53, Birling Avenue, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2020-08-11 07:11:15,owner-occupied,,,200003692398.0,Address Matched +71561243432014072819533775268505,"70, Anglesey Avenue",,,ME15 9TB,4545505468,C,B,72,82,House,Detached,2014-07-26,E07000110,E14000804,Kent,2014-07-28,marketed sale,69,79,138,86.0,5.5,26,3.5,162.0,90.0,1010.0,856.0,111.0,111.0,208.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,4.0,7.0,7.0,21.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 21% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"70, Anglesey Avenue",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2014-07-28 19:53:37,owner-occupied,53.0,11.0,200003675350.0,Address Matched +596538909222012112223125344628502,"8, Collington Terrace",,,ME15 9PP,410024868,C,B,75,91,House,Mid-Terrace,2012-11-22,E07000110,E14000700,Kent,2012-11-22,rental (social),77,93,143,29.0,1.9,27,0.4,67.0,39.0,318.0,301.0,82.0,58.0,68.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,29.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"System built, with external insulation",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 29% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"8, Collington Terrace",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2012-11-22 23:12:53,rental (social),7.0,2.0,200003680066.0,Address Matched +1066761249022014010812243828088384,"17, Froyle Close",,,ME16 0RQ,8251408178,D,B,62,86,Bungalow,Semi-Detached,2014-01-08,E07000110,E14000804,Kent,2014-01-08,marketed sale,59,86,233,65.0,3.5,45,1.0,95.0,48.0,632.0,417.0,94.0,66.0,77.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"17, Froyle Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2014-01-08 12:24:38,owner-occupied,8.0,0.0,200003659396.0,Address Matched +1492917799062016110208394358898316,"5, Mount Avenue",Yalding,,ME18 6JF,1506918478,D,B,64,83,House,Semi-Detached,2016-11-01,E07000110,E14000804,Kent,2016-11-02,marketed sale,60,80,248,100.0,3.3,45,1.4,89.0,50.0,525.0,459.0,170.0,86.0,73.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,22.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 22% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,2.3,,N,natural,"5, Mount Avenue, Yalding",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2016-11-02 08:39:43,owner-occupied,,,200003661488.0,Address Matched +1798323712302020051512140573009058,"31, Chapelfield Way",Allington,,ME16 9FU,1336010778,B,B,87,88,House,Semi-Detached,2020-05-15,E07000110,E14000804,Kent,2020-05-15,new dwelling,87,89,65,54.0,1.5,11,1.3,88.0,88.0,281.0,282.0,100.0,55.0,133.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.18 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.18 W/m-¦K,Good,Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"31, Chapelfield Way, Allington",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2020-05-15 12:14:05,unknown,34.0,34.0,10094440285.0,Address Matched +765298079142012032317021392622478,"1, Rosslyn Green",,,ME16 0BZ,6128076968,D,D,66,67,House,Detached,2012-03-23,E07000110,E14000804,Kent,2012-03-23,marketed sale,64,65,204,196.0,3.9,39,3.8,99.0,56.0,606.0,612.0,113.0,113.0,99.34,dual,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,5.0,5.0,23.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 23% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,2.32,0.0,,natural,"1, Rosslyn Green",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2012-03-23 17:02:13,owner-occupied,13.0,3.0,200003705727.0,Address Matched +1485291569102018121913220244789878,"6, The Hedges",Penenden Heath,,ME14 2JW,9102367478,D,B,65,83,Bungalow,Semi-Detached,2018-12-13,E07000110,E14000804,Kent,2018-12-19,marketed sale,65,83,226,91.0,3.0,39,1.2,110.0,55.0,554.0,469.0,82.0,53.0,76.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Average,Average,"Room heaters, electric",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"6, The Hedges, Penenden Heath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2018-12-19 13:22:02,owner-occupied,,,200003707557.0,Address Matched +1741192136612019080520295499010162,"81, Bramley Crescent",Bearsted,,ME15 8JX,1207695678,D,B,62,82,Bungalow,Semi-Detached,2019-08-05,E07000110,E14000700,Kent,2019-08-05,marketed sale,62,82,254,105.0,3.1,44,1.3,104.0,61.0,644.0,527.0,77.0,49.0,71.0,dual,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,3.0,3.0,30.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,"Room heaters, electric",,,"Pitched, 270 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 30% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"81, Bramley Crescent, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2019-08-05 20:29:54,owner-occupied,,,200003688488.0,Address Matched +1603667639262018012711490876168248,Aldiana,Broomfield Road,Kingswood,ME17 3NZ,4713306578,D,C,65,78,House,End-Terrace,2018-01-26,E07000110,E14000700,Kent,2018-01-27,marketed sale,60,73,229,138.0,4.1,42,2.5,90.0,72.0,690.0,648.0,131.0,83.0,98.0,dual,Y,NODATA!,,,2106.0,85.0,double glazing installed before 2002,Normal,2.0,5.0,5.0,75.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Mostly double glazing,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, limited insulation (assumed)",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"Aldiana, Broomfield Road, Kingswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1976-1982,2018-01-27 11:49:08,owner-occupied,,,200003721250.0,Address Matched +859297939702012112222444101322728,Flat 2 Coventry House,Cambridge Crescent,,ME15 7NT,3797833078,D,C,64,76,Flat,Semi-Detached,2012-11-22,E07000110,E14000700,Kent,2012-11-22,rental (social),64,78,227,139.0,2.8,44,1.7,64.0,38.0,386.0,290.0,171.0,99.0,63.0,Single,Y,1st,Y,,2107.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,33.0,0.0,From main system,Average,Average,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 33% of fixed outlets,Average,Average,mains gas (not community),0.0,no corridor,,,0.0,,natural,"Flat 2 Coventry House, Cambridge Crescent",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2012-11-22 22:44:41,rental (social),6.0,2.0,200003713094.0,Address Matched +c14a3d142df709de41176fb22e992ba9a8035965c053ef4b2d2a5adbed139f28,Nonum,Weavering Street,Weavering,ME14 5JN,10001686799,D,B,58,85,Bungalow,Detached,2021-08-19,E07000110,E14000700,Kent,2021-08-19,marketed sale,52,83,322,95.0,3.8,57,1.1,57.0,57.0,624.0,387.0,112.0,72.0,66.0,Single,Y,,,,,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, mains gas",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.4,0.0,N,natural,"Nonum, Weavering Street, Weavering",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1900-1929,2021-08-19 12:59:48,Owner-occupied,8.0,,200003687974.0,Energy Assessor +c14adb5eff8eca13f1506a89c57081b4fdd3071d177ca308fa3870100e472caf,5 SHERNOLDS,,,ME15 9QG,10001596074,D,C,66,75,House,Detached,2021-07-07,E07000110,E14000804,Kent,2021-07-08,marketed sale,63,72,203,148.0,6.7,33,4.8,130.0,130.0,1286.0,1165.0,140.0,90.0,204.0,dual,Y,,,,,100.0,double glazing installed during or after 2002,Normal,2.0,10.0,10.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, wood logs",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.4,0.0,N,natural,5 SHERNOLDS,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2021-07-08 09:13:18,Owner-occupied,35.0,,200003680359.0,Energy Assessor +803863279262012062215355859598322,"24, Church Street",Boughton Monchelsea,,ME17 4HW,2536749968,F,C,36,72,House,Detached,2012-06-21,E07000110,E14000700,Kent,2012-06-22,marketed sale,32,68,380,148.0,9.0,74,3.6,88.0,59.0,1438.0,800.0,188.0,76.0,122.0,Single,Y,NODATA!,,,2104.0,35.0,double glazing installed during or after 2002,Normal,3.0,7.0,7.0,50.0,1.0,"From main system, no cylinder thermostat",Average,Average,"Suspended, no insulation (assumed)",,,Partial double glazing,Poor,Poor,"Granite or whinstone, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"24, Church Street, Boughton Monchelsea",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2012-06-22 15:35:58,owner-occupied,16.0,8.0,200003674458.0,Address Matched +1445943849962016052111013394318716,Box Cottage,Pilgrims Way,Detling,ME14 3EX,1937484478,D,C,59,80,Bungalow,Semi-Detached,2016-05-19,E07000110,E14000700,Kent,2016-05-21,marketed sale,53,75,293,135.0,4.2,52,2.0,75.0,53.0,736.0,585.0,151.0,74.0,81.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,4.0,4.0,60.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"System built, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 60% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,2.3,,N,natural,"Box Cottage, Pilgrims Way, Detling",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2016-05-21 11:01:33,owner-occupied,,,200003694150.0,Address Matched +c15fc019edee2381a38606325474e49f9f8276aa6859abea97f28fe5c40777ce,18c Hayle Road,,,ME15 6PG,10001395379,C,C,75,77,Flat,Semi-Detached,2021-08-24,E07000110,E14000804,Kent,2021-08-25,rental,80,83,227,193.0,1.0,40,0.9,26.0,26.0,214.0,187.0,58.0,59.0,25.0,Single,Y,01,Y,,,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,100.0,0.0,From main system,Good,Good,(another dwelling below),,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 400 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,no corridor,,2.3,0.0,N,natural,18c Hayle Road,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2021-08-25 08:09:50,Rented (private),6.0,,200003683424.0,Energy Assessor +430305492512013071609095791970477,1 Hambledon Court,Tonbridge Road,,ME16 8TG,4714212768,D,B,64,86,House,End-Terrace,2013-07-16,E07000110,E14000804,Kent,2013-07-16,marketed sale,63,86,237,67.0,2.6,46,0.8,54.0,36.0,457.0,382.0,116.0,66.0,58.0,Single,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,50.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"1 Hambledon Court, Tonbridge Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2013-07-16 09:09:57,owner-occupied,6.0,3.0,200003696763.0,Address Matched +48484750942008121117310350589498,Flat 7,2 Mill Street,,ME15 6XH,2992155568,C,C,77,78,Flat,Semi-Detached,2008-12-11,E07000110,E14000804,Kent,2008-12-11,rental (private),71,71,322,317.0,1.8,49,1.8,31.0,18.0,136.0,138.0,91.0,91.0,36.83,Single,N,3rd,N,5.0,2706.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,25.0,0.0,"Electric immersion, off-peak",Average,Poor,(other premises below),,,Fully double glazed,Good,Good,"Solid brick, with internal insulation",Good,Good,,,,(another dwelling above),,,"Electric Underfloor Heating (Standard tariff), electric",Average,Poor,Time and temperature zone control,Good,Good,Low energy lighting in 25% of fixed outlets,Average,Average,electricity - this is for backwards compatibility only and should not be used,0.0,unheated corridor,7.3,2.67,0.0,N,natural,"Flat 7, 2 Mill Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2008-12-11 17:31:03,rental (private),,,, +c174158bcd001d5f7a359ce4835a391387a770e3fa6c0a5dac671a2847b08c78,7 BOURNEWOOD CLOSE,DOWNSWOOD,,ME15 8TJ,10001644136,D,B,67,85,House,Semi-Detached,2021-08-04,E07000110,E14000700,Kent,2021-08-04,marketed sale,63,83,243,94.0,3.1,43,1.2,71.0,71.0,517.0,404.0,89.0,61.0,71.0,Single,Y,,,,,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,83.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, partial insulation (assumed)",Average,Average,"Room heaters, mains gas",,,"Pitched, limited insulation (assumed)",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 83% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.3,0.0,N,natural,"7 BOURNEWOOD CLOSE, DOWNSWOOD",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1976-1982,2021-08-04 13:53:31,Owner-occupied,12.0,,200003686425.0,Energy Assessor +415663397112020032517524320200372,"7, Jamaica Terrace",Invicta Park,,ME14 2PE,3248701768,D,C,60,80,House,Mid-Terrace,2020-02-20,E07000110,E14000804,Kent,2020-03-25,Stock Condition Survey,53,76,291,133.0,4.1,51,1.9,63.0,63.0,726.0,543.0,98.0,67.0,80.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Flat, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"7, Jamaica Terrace, Invicta Park",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2020-03-25 17:52:43,rental (social),,,200003724009.0,Address Matched +1368945249042015092916002135952918,"3, Rosslyn Green",,,ME16 0BZ,35149378,D,B,68,82,House,Detached,2015-09-29,E07000110,E14000804,Kent,2015-09-29,FiT application,64,78,199,103.0,3.7,35,2.0,128.0,71.0,608.0,564.0,147.0,88.0,105.0,dual,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,18.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 18% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"3, Rosslyn Green",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2015-09-29 16:00:21,owner-occupied,,,200003705729.0,Address Matched +367729870242009092309015060712328,5 Valley Court,"69, Tonbridge Road",Teston,ME18 5BT,235577668,D,D,61,62,Maisonette,NO DATA!,2009-09-22,E07000110,E14000804,Kent,2009-09-23,new dwelling,75,76,192,187.0,2.5,28,2.5,79.0,50.0,404.0,418.0,307.0,307.0,31.3,standard tariff,,top floor,,,,,NO DATA!,NO DATA!,,,,4.0,,"Electric immersion, standard tariff",Very Poor,Poor,Average thermal transmittance 0.19 W/m?K,Very Good,Very Good,Fully double glazed,Good,Good,Average thermal transmittance 0.29 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.16 W/m?K,Good,Good,Electric underfloor heating,Very Poor,Poor,Time and temperature zone control,Good,Good,Low energy lighting in 40% of fixed outlets,Average,Average,"Electricity: electricity, unspecified tariff",0.0,NO DATA!,,2.4,,,NO DATA!,"5 Valley Court, 69, Tonbridge Road, Teston",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2009-09-23 09:01:50,,10.0,4.0,10014307897.0,Address Matched +597994929542013111114365284470488,43 Crundale,Union Street,,ME14 1TX,1597924868,D,C,63,76,Flat,Mid-Terrace,2013-10-08,E07000110,E14000804,Kent,2013-11-11,none of the above,63,79,257,144.0,2.5,49,1.4,38.0,38.0,461.0,257.0,105.0,101.0,51.0,Single,Y,7th,Y,,2107.0,100.0,double glazing installed before 2002,Normal,0.0,2.0,2.0,83.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Flat, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 83% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,1.0,,0.0,,natural,"43 Crundale, Union Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2013-11-11 14:36:52,rental (social),6.0,5.0,200003701461.0,Address Matched +1384942542552016042716072995260249,Flat 26,Miller House,43-51 Lower Stone Street,ME15 6GB,2927250478,C,C,70,70,Flat,NO DATA!,2016-04-27,E07000110,E14000804,Kent,2016-04-27,none of the above,57,57,568,568.0,2.0,96,2.0,20.0,20.0,249.0,249.0,126.0,126.0,21.0,off-peak 10 hour,,mid floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Poor,Poor,(other premises below),,,Fully double glazed,Good,Good,Average thermal transmittance 0.86 W/m-¦K,Average,Average,,,,(other premises above),,,"Boiler and radiators, electric",Poor,Very Poor,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"Flat 26, Miller House, 43-51 Lower Stone Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2016-04-27 16:07:29,unknown,4.0,4.0,10091196123.0,Address Matched +12562529842017092816154043839008,"9, Tennison Way",,,ME15 9GE,4890128468,C,B,79,89,House,Mid-Terrace,2017-05-10,E07000110,E14000700,Kent,2017-09-28,rental (social),78,89,130,55.0,2.2,23,1.0,67.0,67.0,354.0,356.0,120.0,70.0,98.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Very Good,Very Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"9, Tennison Way",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2007 onwards,2017-09-28 16:15:40,rental (social),,,10022895432.0,Address Matched +782354399102015030912172798750918,Garden Cottage,Hollingbourne Hill,Hollingbourne,ME17 1QJ,3178697968,E,C,49,72,House,Detached,2015-03-09,E07000110,E14000700,Kent,2015-03-09,marketed sale,46,68,222,115.0,7.9,51,4.3,118.0,79.0,1446.0,1009.0,194.0,114.0,155.0,Single,N,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,2.0,7.0,7.0,50.0,1.0,From main system,Average,Average,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, oil",Average,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,oil (not community),0.0,NO DATA!,,,,N,"mechanical, extract only","Garden Cottage, Hollingbourne Hill, Hollingbourne",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2015-03-09 12:17:27,owner-occupied,,,200003723695.0,Address Matched +1201231079532015012016244619978105,"2, Rosslyn Green",,,ME16 0BZ,7589157278,E,C,50,78,House,Detached,2015-01-16,E07000110,E14000804,Kent,2015-01-20,assessment for green deal,41,72,323,131.0,8.4,57,3.4,128.0,76.0,1451.0,848.0,202.0,78.0,147.0,Unknown,Y,NODATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,2.0,7.0,7.0,32.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, insulated (assumed)",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 32% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"2, Rosslyn Green",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2015-01-20 16:24:46,owner-occupied,,,200003705728.0,Address Matched +598300999022013100916032124728477,16 Crundale,Union Street,,ME14 1TX,7277924868,C,B,76,81,Flat,End-Terrace,2013-10-02,E07000110,E14000804,Kent,2013-10-09,none of the above,78,83,128,97.0,1.9,24,1.5,76.0,49.0,307.0,238.0,119.0,120.0,79.0,Single,Y,3rd,N,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,44.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 44% of fixed outlets,Average,Average,mains gas (not community),0.0,unheated corridor,1.5,,0.0,,natural,"16 Crundale, Union Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2013-10-09 16:03:21,rental (social),9.0,4.0,200003700835.0,Address Matched +1587385228112017110617395398039254,"23, Foxglove Rise",,,ME14 2AF,2493884578,D,B,68,88,House,Semi-Detached,2017-11-06,E07000110,E14000804,Kent,2017-11-06,marketed sale,66,87,238,68.0,2.4,42,0.7,67.0,45.0,364.0,337.0,154.0,65.0,58.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,50.0,0.0,From main system,Good,Good,"Solid, limited insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"23, Foxglove Rise",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2017-11-06 17:39:53,owner-occupied,,,200003722751.0,Address Matched +891763669632016111510082056978695,"38, York Road",,,ME15 7QY,6526665078,D,B,58,89,House,Mid-Terrace,2016-11-15,E07000110,E14000700,Kent,2016-11-15,ECO assessment,52,88,327,63.0,4.0,58,0.8,96.0,48.0,654.0,357.0,180.0,71.0,70.0,Unknown,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,0.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,2.4,,N,natural,"38, York Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1900-1929,2016-11-15 10:08:20,owner-occupied,,,200003715764.0,Address Matched +1716047219042019042516403966412758,"24, Wenham Drive",,,ME17 3GN,1042414678,B,A,85,94,House,Detached,2019-04-25,E07000110,E14000700,Kent,2019-04-25,new dwelling,86,95,79,22.0,1.8,14,0.5,81.0,81.0,270.0,271.0,99.0,55.0,127.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"24, Wenham Drive",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2019-04-25 16:40:39,unknown,12.0,12.0,10093307102.0,Address Matched +377516859312009100716454203019961,"19, Hayrick Close",Weavering,,ME14 5TE,9172938668,D,C,61,73,House,Semi-Detached,2009-10-06,E07000110,E14000700,Kent,2009-10-07,rental (private),55,69,342,231.0,3.8,57,2.5,65.0,33.0,503.0,381.0,153.0,108.0,65.66,Single,Y,NO DATA!,,,2104.0,0.0,single glazing,Normal,0.0,4.0,4.0,0.0,0.0,From main system,Average,Good,"Solid, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Average,Good,Programmer and room thermostat,Poor,Poor,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.35,0.0,N,natural,"19, Hayrick Close, Weavering",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2009-10-07 16:45:42,rental (private),,,200003689922.0,Address Matched +550001639962011051109370390498749,"21, Lincoln Road",,,ME15 7JH,4934350868,C,C,75,75,House,Semi-Detached,2011-05-11,E07000110,E14000700,Kent,2011-05-11,marketed sale,76,76,148,148.0,2.3,28,2.3,43.0,43.0,390.0,390.0,83.0,83.0,81.41,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,2.34,0.0,,natural,"21, Lincoln Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2011-05-11 09:37:03,owner-occupied,9.0,9.0,200003712099.0,Address Matched +951423369922013061910331149418237,4 Price Court,Church Street,,ME14 1FL,3444689078,C,C,69,79,Maisonette,Mid-Terrace,2013-06-19,E07000110,E14000804,Kent,2013-06-19,rental (social),71,84,212,118.0,1.8,41,1.0,56.0,28.0,343.0,219.0,66.0,67.0,45.0,Unknown,Y,Ground,N,,2106.0,0.0,single glazing,Normal,0.0,2.0,2.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,no corridor,,,0.0,,natural,"4 Price Court, Church Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2013-06-19 10:33:11,rental (social),6.0,0.0,10014306411.0,Address Matched +937419709222014112614082888268954,"14, St. Andrews Road",,,ME16 9AN,5828098078,E,B,53,83,House,Semi-Detached,2014-11-26,E07000110,E14000804,Kent,2014-11-26,assessment for green deal,50,85,287,75.0,4.4,55,1.2,51.0,51.0,854.0,473.0,171.0,80.0,81.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,100.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Average,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"14, St. Andrews Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2014-11-26 14:08:28,owner-occupied,8.0,8.0,200003682082.0,Address Matched +206830720442009010822053553610688,14 Sunningdale Court,Square Hill Road,,ME15 7TT,8439126568,C,B,75,81,Flat,Semi-Detached,2009-01-08,E07000110,E14000804,Kent,2009-01-08,rental (social),73,78,200,161.0,2.3,33,1.9,56.0,34.0,279.0,250.0,129.0,106.0,68.86,Unknown,Y,1st,N,13.0,2107.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,33.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"System built, as built, no insulation (assumed)",Very Poor,Very Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Poor,Poor,Low energy lighting in 33% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,unheated corridor,3.54,2.32,0.0,N,natural,"14 Sunningdale Court, Square Hill Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2009-01-08 22:05:35,rental (social),,,200003696544.0,Address Matched +862045259402012113012544701327308,"27, St. Catherines Road",,,ME15 9WP,4474653078,B,B,83,84,House,Semi-Detached,2012-11-30,E07000110,E14000700,Kent,2012-11-30,new dwelling,85,86,84,78.0,1.6,16,1.5,86.0,55.0,314.0,318.0,95.0,95.0,101.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.20 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.34 W/m?K,Good,Good,,,,Average thermal transmittance 0.25 W/m?K,Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 42% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"27, St. Catherines Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2012-11-30 12:54:47,NO DATA!,12.0,5.0,10014311700.0,Address Matched +103886739222013092421085967348847,"9, Haste Hill Close",Boughton Monchelsea,,ME17 4LS,4634357468,D,B,60,81,House,Detached,2013-09-24,E07000110,E14000700,Kent,2013-09-24,none of the above,64,84,227,95.0,3.9,36,1.5,93.0,58.0,851.0,589.0,116.0,78.0,108.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,4.0,7.0,7.0,40.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, wood logs",,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 40% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"9, Haste Hill Close, Boughton Monchelsea",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2013-09-24 21:08:59,owner-occupied,20.0,8.0,200003674724.0,Address Matched +1280195719962015021018002023908075,"17, Newenden Close",,,ME14 5RU,7287113378,E,C,53,76,House,Semi-Detached,2015-02-10,E07000110,E14000804,Kent,2015-02-10,marketed sale,54,78,300,124.0,3.9,52,1.6,59.0,59.0,687.0,551.0,271.0,135.0,74.0,dual,Y,NODATA!,,,2504.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,3.0,89.0,0.0,"Electric immersion, off-peak",Very Poor,Poor,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,Portable electric heaters (assumed),,,"Pitched, 150 mm loft insulation",Good,Good,"Warm air, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 89% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"17, Newenden Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2015-02-10 18:00:20,owner-occupied,,,200003672508.0,Address Matched +c1c3f08d41c3d2a6a6341008c5caf9f28a7df0730676a974023019f4056e2240,2 Hillside Cottages,Liverton Hill,Sandway,ME17 2NW,10001412454,E,B,42,89,House,Mid-Terrace,2021-09-28,E07000110,E14000700,Kent,2021-09-29,marketed sale,45,68,585,294.0,3.4,91,1.7,66.0,38.0,822.0,418.0,176.0,86.0,37.0,Unknown,N,,,,,20.0,double glazing installed before 2002,Normal,1.0,3.0,3.0,0.0,0.0,"Electric immersion, off-peak",Poor,Poor,"Suspended, no insulation (assumed)",,,Some double glazing,Very Poor,Very Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, electric",Very Poor,Poor,Appliance thermostats,Good,Good,No low energy lighting,Very Poor,Very Poor,electricity (not community),0.0,,,2.41,0.0,N,natural,"2 Hillside Cottages, Liverton Hill, Sandway",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2021-09-29 12:00:12,Owner-occupied,12.0,,200003724509.0,Energy Assessor +1463534939912016071814545290960243,"23, Cannock Drive",,,ME15 8GE,2330906478,B,B,86,88,House,NO DATA!,2016-07-18,E07000110,E14000700,Kent,2016-07-18,new dwelling,89,91,69,55.0,0.9,12,0.7,51.0,51.0,218.0,218.0,79.0,45.0,73.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,"From main system, flue gas heat recovery",Very Good,Very Good,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.18 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"23, Cannock Drive",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2016-07-18 14:54:52,unknown,1.0,1.0,10091193727.0,Address Matched +541775279922010091721333729638650,"3, Brishing Lane",,,ME15 9EZ,5247799768,C,C,77,78,Flat,Mid-Terrace,2010-09-17,E07000110,E14000700,Kent,2010-09-17,rental (social),74,75,199,196.0,2.0,33,2.0,44.0,33.0,337.0,339.0,86.0,86.0,61.0,Single,Y,Ground,N,2.0,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,66.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 66% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.46,0.0,N,natural,"3, Brishing Lane",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2010-09-17 21:33:37,rental (social),,,200003681491.0,Address Matched +c1d0f1bc84539851699f0c8ccfd2e19a5cd7b0248c5395707f0b89f6bb3c0311,Honeysuckle Cottage,Kenward Road,Yalding,ME18 6JR,2142763278,C,C,69,80,House,Detached,2021-09-29,E07000110,E14000804,Kent,2021-09-29,marketed sale,64,76,195,121.0,3.9,35,2.5,82.0,82.0,678.0,636.0,83.0,55.0,110.0,Single,Y,,,,,100.0,"double glazing, unknown install date",Normal,4.0,6.0,6.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 350 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,1.5,0.0,N,natural,"Honeysuckle Cottage, Kenward Road, Yalding",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2021-09-29 17:41:32,Owner-occupied,27.0,,200003660683.0,Energy Assessor +1580030320332017102416333257278495,Flat 14,Chaucer House,25 Knightrider Street,ME15 6ND,2597434578,C,C,79,79,Flat,Detached,2017-10-23,E07000110,E14000804,Kent,2017-10-24,new dwelling,82,82,141,141.0,1.1,25,1.1,33.0,33.0,211.0,211.0,69.0,69.0,44.0,standard tariff,,top floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.22 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.18 W/m-¦K,Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Flat 14, Chaucer House, 25 Knightrider Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2017-10-24 16:33:32,unknown,10.0,10.0,10093305647.0,Address Matched +1246401279042014122411504232042248,"101, Reculver Walk",,,ME15 8TT,9082170378,D,B,66,87,House,End-Terrace,2014-12-24,E07000110,E14000700,Kent,2014-12-24,assessment for green deal,62,86,240,73.0,3.6,42,1.1,106.0,53.0,547.0,414.0,170.0,71.0,85.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,0.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 270 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"101, Reculver Walk",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1976-1982,2014-12-24 11:50:42,owner-occupied,,,200003725795.0,Address Matched +637290029742011060214100683790228,"33, Abigail Crescent",Walderslade,,ME5 9DZ,9732327868,D,D,58,63,House,Detached,2011-06-02,E07000110,E14000700,Kent,2011-06-02,marketed sale,52,58,249,216.0,6.6,48,5.7,109.0,60.0,1011.0,917.0,122.0,109.0,127.83,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,3.0,6.0,6.0,17.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, mains gas",,,"Pitched, insulated (assumed)",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 17% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,2.51,0.0,,natural,"33, Abigail Crescent, Walderslade",Maidstone,Faversham and Mid Kent,CHATHAM,England and Wales: 1983-1990,2011-06-02 14:10:06,owner-occupied,30.0,5.0,200003709315.0,Address Matched +823273989742012080922521607020718,Flat 4 Derwent House,Westmorland Green,,ME15 8BH,703580078,C,C,71,76,Flat,Detached,2012-08-09,E07000110,E14000700,Kent,2012-08-09,rental (social),73,78,172,140.0,2.0,33,1.7,53.0,37.0,362.0,307.0,79.0,79.0,62.0,Single,Y,Ground,N,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,57.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"System built, with external insulation",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 57% of fixed outlets,Good,Good,mains gas (not community),0.0,unheated corridor,5.3,,0.0,,natural,"Flat 4 Derwent House, Westmorland Green",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2012-08-09 22:52:16,rental (social),7.0,4.0,200003685475.0,Address Matched +c1f6354e1ef4dc4fc8c78ca8ee0c16dc8a708e656addad58ac32e0de31f17d55,HILLTOP PLACE,HILLTOP,HUNTON,ME15 0QN,10001632402,E,B,48,84,Bungalow,Detached,2021-06-17,E07000110,E14000804,Kent,2021-07-01,marketed sale,40,76,205,50.0,14.0,54,4.8,181.0,132.0,1799.0,1029.0,188.0,85.0,254.0,Unknown,N,,,,,100.0,double glazing installed before 2002,Normal,0.0,8.0,8.0,63.0,0.0,From main system,Poor,Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, oil",Poor,Average,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 63% of fixed outlets,Good,Good,oil (not community),0.0,,,2.3,0.0,N,natural,"HILLTOP PLACE, HILLTOP, HUNTON",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2021-07-01 08:51:24,Owner-occupied,16.0,,200003663747.0,Energy Assessor +c1f7947a35109cefd94153447dd5ea0ce6fb751994864328a96a7b7e11b793d0,183 Linton Road,Loose,,ME15 0AS,10001431497,F,A,29,92,House,Mid-Terrace,2021-08-11,E07000110,E14000804,Kent,2021-08-13,marketed sale,9,107,624,46.0,8.6,194,-0.6,50.0,50.0,872.0,231.0,467.0,86.0,44.0,Unknown,N,,,,,80.0,double glazing installed during or after 2002,Normal,1.0,3.0,1.0,75.0,1.0,"Electric immersion, standard tariff",Very Poor,Poor,"Suspended, no insulation (assumed)",,,Mostly double glazing,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,Portable electric heaters (assumed),,,"Pitched, 150 mm loft insulation",Good,Good,"Room heaters, coal",Very Poor,Very Poor,No thermostatic control of room temperature,Poor,Poor,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,house coal (not community),0.0,,,2.08,0.0,N,natural,"183 Linton Road, Loose",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2021-08-13 05:16:45,Owner-occupied,8.0,,200003663301.0,Energy Assessor +256606713612011101216494699999355,"3, Winchs Garth",Staplehurst,,TN12 0QX,3522399568,C,C,70,70,Bungalow,End-Terrace,2011-10-12,E07000110,E14000804,Kent,2011-10-12,rental (social),72,72,205,205.0,2.0,39,2.0,35.0,35.0,367.0,367.0,74.0,74.0,51.7,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,83.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 83% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,2.3,0.0,,natural,"3, Winchs Garth, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1950-1966,2011-10-12 16:49:46,rental (social),6.0,5.0,200003728015.0,Address Matched +418385956252020062311215822200877,2 Kings Cottages,Upper Street,Leeds,ME17 1SG,8792621768,C,A,69,110,House,Mid-Terrace,2020-06-23,E07000110,E14000700,Kent,2020-06-23,rental (social),67,106,229,-69.0,2.6,40,-0.7,52.0,52.0,463.0,426.0,85.0,58.0,63.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,3.0,3.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"2 Kings Cottages, Upper Street, Leeds",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2020-06-23 11:21:58,rental (social),,,200003697990.0,Address Matched +375047320702009100223595661810728,"32, Durham Close",,,ME15 8DT,7729028668,C,C,73,79,Flat,Semi-Detached,2009-10-02,E07000110,E14000700,Kent,2009-10-02,rental (social),68,76,260,195.0,2.3,43,1.8,27.0,27.0,372.0,297.0,92.0,75.0,53.89,Single,Y,Ground,N,2.0,2102.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.41,0.0,N,natural,"32, Durham Close",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2009-10-02 23:59:56,rental (social),,,200003685697.0,Address Matched +540943038512010091709192398900977,Flat 1 Oast View,Lower Street,Leeds,ME17 1RN,9790889768,D,C,62,76,Flat,Detached,2010-09-16,E07000110,E14000700,Kent,2010-09-17,rental (private),56,73,386,242.0,3.0,65,1.9,36.0,24.0,496.0,335.0,89.0,73.0,46.1,Single,Y,Ground,N,2.0,2107.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,50.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,unheated corridor,4.38,2.33,0.0,N,natural,"Flat 1 Oast View, Lower Street, Leeds",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2010-09-17 09:19:23,rental (private),,,200003698475.0,Address Matched +421335449202010011513590272109058,3 Ashdown Cottages,Heath Road,East Farleigh,ME15 0LR,248841768,C,C,71,74,House,Mid-Terrace,2010-01-15,E07000110,E14000804,Kent,2010-01-15,marketed sale,68,71,253,229.0,2.5,42,2.2,42.0,30.0,404.0,373.0,83.0,83.0,58.36,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,4.0,4.0,60.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 60% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.31,0.0,N,natural,"3 Ashdown Cottages, Heath Road, East Farleigh",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2010-01-15 13:59:02,owner-occupied,,,200003663758.0,Address Matched +1398826731052015122409354295259345,"9, Linton Road",Loose,,ME15 0AG,3590151478,C,B,74,85,House,Semi-Detached,2015-12-23,E07000110,E14000804,Kent,2015-12-24,marketed sale,71,82,160,90.0,3.4,28,1.9,141.0,70.0,538.0,551.0,140.0,89.0,119.0,Unknown,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,6.0,6.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"9, Linton Road, Loose",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2015-12-24 09:35:42,owner-occupied,,,200003663607.0,Address Matched +186136640802008111814502756489778,"6, Kings Acre",Downswood,,ME15 8UP,829944568,D,D,56,62,House,Detached,2008-11-13,E07000110,E14000700,Kent,2008-11-18,marketed sale,48,55,356,302.0,5.2,59,4.4,39.0,39.0,643.0,557.0,109.0,92.0,87.2,Unknown,Y,NO DATA!,,,2104.0,10.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Partial double glazing,Very Poor,Very Poor,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, mains gas",,,"Pitched, 150mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Poor,Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.42,0.0,N,natural,"6, Kings Acre, Downswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2008-11-18 14:50:27,owner-occupied,,,200003691359.0,Address Matched +1418397199262016022911402072718536,"27, Shoebridge Drive",,,ME17 3FF,3725982478,B,A,83,97,House,Mid-Terrace,2016-02-29,E07000110,E14000700,Kent,2016-02-29,new dwelling,87,101,90,-17.0,1.0,16,-0.2,47.0,47.0,195.0,195.0,79.0,46.0,64.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"27, Shoebridge Drive",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2016-02-29 11:40:20,unknown,1.0,1.0,10091194078.0,Address Matched +c22124e80e9085702918e80de4ffba5ea1126404942271c1f358aba856ca152a,124 Upper Stone Street,,,ME15 6HD,10001375838,D,C,68,77,Maisonette,Semi-Detached,2021-08-18,E07000110,E14000804,Kent,2021-08-18,rental,64,63,358,366.0,2.0,61,2.1,30.0,35.0,360.0,243.0,171.0,149.0,33.0,dual,N,01,N,,,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,100.0,0.0,"Electric immersion, off-peak",Poor,Poor,"Suspended, insulated",,,Fully double glazed,Good,Good,"Solid brick, with internal insulation",Good,Good,,,,(another dwelling above),,,"Room heaters, electric",Very Poor,Poor,Programmer and appliance thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,no corridor,,2.26,0.0,N,natural,124 Upper Stone Street,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2021-08-18 16:44:22,Rented (private),15.0,,200003682639.0,Energy Assessor +1138839225432014051219244599978701,"1, Cleavesland",Laddingford,,ME18 6BS,2169713278,D,B,65,85,House,Semi-Detached,2014-05-12,E07000110,E14000804,Kent,2014-05-12,marketed sale,63,86,206,66.0,3.3,40,1.1,90.0,50.0,528.0,418.0,165.0,77.0,83.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,20.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 20% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"1, Cleavesland, Laddingford",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2014-05-12 19:24:45,owner-occupied,10.0,2.0,200003659959.0,Address Matched +213800292212009011821560205910450,"39, Lenside Drive",Bearsted,,ME15 8UE,4023256568,D,C,59,80,House,Mid-Terrace,2009-01-15,E07000110,E14000700,Kent,2009-01-18,rental (social),53,77,367,177.0,3.8,61,1.8,57.0,29.0,467.0,262.0,151.0,90.0,61.31,Single,Y,NO DATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,5.0,0.0,From main system,Average,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, no insulation",Very Poor,Very Poor,"Boiler and radiators, mains gas",Average,Good,Programmer and room thermostat,Poor,Poor,Low energy lighting in 5% of fixed outlets,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.31,0.0,N,natural,"39, Lenside Drive, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1991-1995,2009-01-18 21:56:02,rental (social),,,200003691658.0,Address Matched +208441329962016012215432865918796,20 Amshurst Villas,Gallants Lane,East Farleigh,ME15 0LQ,9611295568,D,A,68,114,Bungalow,Mid-Terrace,2016-01-19,E07000110,E14000804,Kent,2016-01-22,rental (social),71,113,238,-128.0,2.0,40,-1.1,35.0,35.0,322.0,269.0,223.0,223.0,49.0,Single,N,NODATA!,,,2204.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,100.0,0.0,"From main system, plus solar",Poor,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Air source heat pump, radiators, electric",Good,Very Good,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,NO DATA!,,,,Y,natural,"20 Amshurst Villas, Gallants Lane, East Farleigh",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2016-01-22 15:43:28,rental (social),,,200003671204.0,Address Matched +598919535712013081422241793970980,"27, Culpeper Close",Hollingbourne,,ME17 1UE,9052534868,C,C,70,75,Flat,Semi-Detached,2013-08-14,E07000110,E14000700,Kent,2013-08-14,rental (social),71,77,178,142.0,2.2,34,1.8,65.0,41.0,407.0,339.0,83.0,83.0,65.0,Single,Y,Ground,N,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,43.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 43% of fixed outlets,Average,Average,mains gas (not community),0.0,no corridor,,,0.0,,natural,"27, Culpeper Close, Hollingbourne",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2013-08-14 22:24:17,rental (social),7.0,3.0,200003701629.0,Address Matched +1297861379962016021011094164708216,"4, Lenside Drive",Bearsted,,ME15 8UE,1616734378,D,B,58,85,House,Semi-Detached,2016-02-10,E07000110,E14000700,Kent,2016-02-10,ECO assessment,49,82,294,90.0,6.1,52,1.9,70.0,70.0,1177.0,571.0,102.0,66.0,117.0,Single,Y,NODATA!,,,2102.0,100.0,double glazing installed during or after 2002,Normal,1.0,7.0,7.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, no insulation",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"4, Lenside Drive, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2016-02-10 11:09:41,owner-occupied,,,200003691277.0,Address Matched +1319173238252015050819411298050439,"97, College Road",,,ME15 6TF,4921885378,D,B,56,81,House,Semi-Detached,2015-05-08,E07000110,E14000804,Kent,2015-05-08,rental (private),52,79,291,110.0,5.0,51,1.9,108.0,60.0,929.0,593.0,143.0,85.0,98.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,5.0,5.0,18.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, electric",,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 18% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"97, College Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2015-05-08 19:41:12,rental (private),,,200003664960.0,Address Matched +1550442259062017060814551352088903,Flat 2,1a Queen Anne Road,,ME14 1HU,599522578,C,C,74,74,Flat,Detached,2017-06-08,E07000110,E14000804,Kent,2017-06-08,new dwelling,73,73,177,177.0,2.1,31,2.1,53.0,53.0,400.0,400.0,91.0,91.0,69.0,standard tariff,,ground floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.66 W/m-¦K,Poor,Poor,Fully double glazed,Good,Good,Average thermal transmittance 0.44 W/m-¦K,Good,Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Flat 2, 1a Queen Anne Road",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2017-06-08 14:55:13,owner-occupied,10.0,10.0,, +157650087052015042119342596250553,The Bungalow Cowstead Farm,Cowstead Road,Stockbury,ME9 7UA,5354761568,D,A,57,92,Bungalow,Detached,2015-04-21,E07000110,E14000700,Kent,2015-04-21,none of the above,48,82,222,34.0,6.4,48,1.8,98.0,98.0,986.0,725.0,211.0,120.0,135.0,dual,N,NODATA!,,,2605.0,100.0,"double glazing, unknown install date",Normal,1.0,7.0,7.0,79.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 150 mm loft insulation",Good,Good,"Room heaters, dual fuel (mineral and wood)",Average,Average,Programmer and room thermostat,Good,Good,Low energy lighting in 79% of fixed outlets,Very Good,Very Good,dual fuel - mineral + wood,0.0,NO DATA!,,,,N,natural,"The Bungalow Cowstead Farm, Cowstead Road, Stockbury",Maidstone,Faversham and Mid Kent,SITTINGBOURNE,England and Wales: 1950-1966,2015-04-21 19:34:25,owner-occupied,,,10022896624.0,Address Matched +188298680962008111818492244888638,"10, Burgess Hall Drive",Leeds,,ME17 1SH,3432824568,E,E,44,53,House,Detached,2008-11-18,E07000110,E14000700,Kent,2008-11-18,marketed sale,39,46,444,370.0,6.8,74,5.7,62.0,41.0,852.0,734.0,102.0,83.0,91.99,Single,Y,NO DATA!,,,2107.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,50.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Poor,Poor,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.36,0.0,N,natural,"10, Burgess Hall Drive, Leeds",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2008-11-18 18:49:22,owner-occupied,,,200003697942.0,Address Matched +655422359702011101418222780899048,Flat 55 Tennyson Lodge,James Whatman Way,,ME14 1FR,4794358868,C,C,76,77,Flat,Mid-Terrace,2011-10-14,E07000110,E14000804,Kent,2011-10-14,new dwelling,88,89,140,136.0,0.8,18,0.8,39.0,29.0,222.0,224.0,92.0,92.0,45.2,standard tariff,,top floor,,,,,NO DATA!,NO DATA!,,,,4.0,,"Community scheme, no cylinder thermostat",Good,Very Good,(other premises below),,,Fully double glazed,Good,Good,Average thermal transmittance 0.42 W/m?K,Good,Good,,,,Average thermal transmittance 0.22 W/m?K,Good,Good,Community scheme,Good,Very Good,"Flat rate charging, programmer and TRVs",Average,Average,Low energy lighting in 67% of fixed outlets,Good,Good,NO DATA!,0.0,NO DATA!,,2.4,,,NO DATA!,"Flat 55 Tennyson Lodge, James Whatman Way",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2011-10-14 18:22:27,,6.0,4.0,10014312777.0,Address Matched +1189446579402016071118581820669198,"56, The Quarries",Boughton Monchelsea,,ME17 4NJ,1425376278,C,B,71,87,House,End-Terrace,2016-07-11,E07000110,E14000700,Kent,2016-07-11,marketed sale,69,85,192,77.0,3.0,34,1.2,78.0,57.0,524.0,429.0,112.0,74.0,87.0,Single,Y,NODATA!,,,2107.0,100.0,double glazing installed during or after 2002,Normal,3.0,5.0,5.0,64.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Sandstone or limestone, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 64% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,2.23,,N,natural,"56, The Quarries, Boughton Monchelsea",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2016-07-11 18:58:18,owner-occupied,,,200003709810.0,Address Matched +1133318179262014043020070632188644,"50, Postley Road",,,ME15 6TR,4359772278,D,B,65,85,House,Semi-Detached,2014-04-28,E07000110,E14000804,Kent,2014-04-30,assessment for green deal,62,84,189,72.0,4.3,36,1.7,105.0,71.0,779.0,524.0,121.0,82.0,120.0,dual,Y,NODATA!,,,2106.0,50.0,double glazing installed before 2002,Normal,1.0,5.0,5.0,50.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Partial double glazing,Poor,Poor,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"50, Postley Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2014-04-30 20:07:06,owner-occupied,14.0,7.0,200003681893.0,Address Matched +723378611112011111412422993999896,"7, Moat Road",Headcorn,,TN27 9NT,8609133968,E,E,53,54,House,Semi-Detached,2011-11-14,E07000110,E14000700,Kent,2011-11-14,marketed sale,55,55,321,314.0,4.0,55,4.0,65.0,41.0,790.0,794.0,81.0,81.0,61.2,Single,Y,NODATA!,,,2106.0,0.0,not defined,Normal,0.0,5.0,5.0,40.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 40% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,2.3,0.0,,natural,"7, Moat Road, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,England and Wales: before 1900,2011-11-14 12:42:29,owner-occupied,10.0,4.0,200003698603.0,Address Matched +805420759442012062411485995922928,Flat 3 The Cloisters,Ham Lane,Lenham,ME17 2PZ,1498659968,C,B,74,82,Maisonette,Mid-Terrace,2012-06-22,E07000110,E14000700,Kent,2012-06-24,marketed sale,67,69,272,255.0,1.9,48,1.8,29.0,32.0,219.0,130.0,114.0,93.0,40.0,dual,N,Ground,N,,2602.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,83.0,0.0,"Electric immersion, off-peak",Average,Very Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Room heaters, electric",Poor,Very Poor,Appliance thermostats,Good,Good,Low energy lighting in 83% of fixed outlets,Very Good,Very Good,electricity (not community),0.0,no corridor,,,0.0,,natural,"Flat 3 The Cloisters, Ham Lane, Lenham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2012-06-24 11:48:59,owner-occupied,6.0,5.0,200003712553.0,Address Matched +459399269262010032415085364348400,"59, Grampian Way",Downswood,,ME15 8TG,652614768,C,B,72,81,House,Mid-Terrace,2010-03-24,E07000110,E14000700,Kent,2010-03-24,marketed sale,69,79,248,171.0,2.3,41,1.6,58.0,29.0,310.0,255.0,144.0,102.0,57.0,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,0.0,0.0,From main system,Average,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Average,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.35,0.0,N,natural,"59, Grampian Way, Downswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2010-03-24 15:08:53,owner-occupied,,,200003691097.0,Address Matched +1787028282222020022311411759598560,"11, Napoleon Walk",Lenham,,ME17 2JU,6510829678,C,B,69,88,House,Mid-Terrace,2020-02-21,E07000110,E14000700,Kent,2020-02-23,marketed sale,68,87,210,71.0,2.8,37,1.0,61.0,61.0,449.0,350.0,187.0,89.0,77.0,Unknown,Y,NODATA!,,,2504.0,100.0,"double glazing, unknown install date",Normal,1.0,5.0,2.0,100.0,0.0,"From main system, no cylinder thermostat",Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Timber frame, as built, partial insulation (assumed)",Average,Average,Portable electric heaters (assumed),,,"Pitched, 150 mm loft insulation",Good,Good,"Warm air, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"11, Napoleon Walk, Lenham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2020-02-23 11:41:17,owner-occupied,,,200003710476.0,Address Matched +337061372262020053023200775588760,3 Abbey Court Cottages,Boarley Lane,Sandling,ME14 3BU,6772755668,E,C,53,78,House,Semi-Detached,2020-05-28,E07000110,E14000700,Kent,2020-05-30,marketed sale,50,78,318,129.0,5.1,51,2.0,73.0,73.0,1022.0,625.0,106.0,73.0,99.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,2.0,6.0,6.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Roof room(s), no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"3 Abbey Court Cottages, Boarley Lane, Sandling",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2020-05-30 23:20:07,owner-occupied,,,200003672430.0,Address Matched +182646480202008110514595850382548,The Oaks,Headcorn Road,Grafty Green,ME17 2AS,3207583568,F,F,29,34,House,Detached,2008-10-24,E07000110,E14000700,Kent,2008-11-05,marketed sale,34,38,347,310.0,11.0,74,9.6,142.0,71.0,1545.0,1473.0,184.0,162.0,142.56,dual,N,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,11.0,11.0,0.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, bottled gas",,,"Pitched, 250mm loft insulation",Good,Good,"Boiler and radiators, oil",Average,Average,"Programmer, room thermostat and TRVs",Average,Average,No low energy lighting,Very Poor,Very Poor,oil - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.5,0.0,N,natural,"The Oaks, Headcorn Road, Grafty Green",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2008-11-05 14:59:58,owner-occupied,,,10014308072.0,Address Matched +1676275629102018110517092067180158,"5, Pine Place",Tovil,,ME15 6EF,6133421678,C,B,69,84,House,Semi-Detached,2018-11-05,E07000110,E14000804,Kent,2018-11-05,marketed sale,67,82,220,109.0,2.7,39,1.4,89.0,56.0,421.0,430.0,128.0,75.0,71.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,4.0,4.0,42.0,0.0,From main system,Good,Good,"Solid, limited insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 42% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"5, Pine Place, Tovil",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2018-11-05 17:09:20,owner-occupied,,,200003666323.0,Address Matched +1810210772922020071415442320648750,"5, Cranford Road",Allington,,ME16 9FZ,5252790778,B,B,87,88,House,Semi-Detached,2020-07-14,E07000110,E14000804,Kent,2020-07-14,new dwelling,87,89,65,54.0,1.5,12,1.3,89.0,89.0,284.0,285.0,99.0,55.0,133.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.18 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.17 W/m-¦K,Good,Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"5, Cranford Road, Allington",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2020-07-14 15:44:23,unknown,34.0,34.0,10094440381.0,Address Matched +921805431732013091115531087978906,"12, Balliol Grove",,,ME15 9WQ,3677977078,B,B,83,83,House,End-Terrace,2013-09-11,E07000110,E14000700,Kent,2013-09-11,new dwelling,87,87,82,82.0,1.2,16,1.2,45.0,45.0,258.0,248.0,60.0,70.0,76.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,"From main system, plus solar",Very Good,Very Good,Average thermal transmittance 0.19 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.28 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.14 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"12, Balliol Grove",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2013-09-11 15:53:10,NO DATA!,11.0,11.0,10014311660.0,Address Matched +1580004110332017102416351758278497,Flat 29,Chaucer House,25 Knightrider Street,ME15 6ND,1708434578,C,C,78,78,Flat,Detached,2017-10-23,E07000110,E14000804,Kent,2017-10-24,new dwelling,83,83,174,174.0,0.9,31,0.9,25.0,25.0,188.0,188.0,63.0,63.0,30.0,standard tariff,,top floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.26 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.18 W/m-¦K,Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Flat 29, Chaucer House, 25 Knightrider Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2017-10-24 16:35:17,unknown,10.0,10.0,10093305662.0,Address Matched +1525979509022017030905282940288233,"45, Postley Road",,,ME15 6TP,3434050578,D,B,62,84,House,Mid-Terrace,2017-03-08,E07000110,E14000804,Kent,2017-03-09,rental (private),60,84,259,87.0,3.5,45,1.2,62.0,62.0,684.0,450.0,102.0,68.0,76.0,Unknown,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,80.0,0.0,From main system,Good,Good,"To unheated space, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, electric",,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"45, Postley Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2017-03-09 05:28:29,rental (private),,,200003681859.0,Address Matched +322992509262011042611275714768679,"20, Sandlewood Court",,,ME16 0ZG,7161064668,C,C,80,80,Flat,Detached,2011-04-26,E07000110,E14000804,Kent,2011-04-26,rental (social),84,84,111,107.0,1.3,21,1.3,49.0,38.0,235.0,236.0,69.0,69.0,62.6,Unknown,Y,Ground,Y,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,71.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 71% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,17.26,2.4,0.0,,natural,"20, Sandlewood Court",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2011-04-26 11:27:57,rental (social),7.0,5.0,10014306183.0,Address Matched +c2ab045f917a974357e0ffbabf6fb5e7fdaa062292ef476dc97bce88bb1ba1bc,10 Broadclough Way,Maidstone,,ME17 3UX,10001320922,B,A,83,94,House,Detached,2021-07-30,E07000110,E14000700,Kent,2021-07-30,new dwelling,84,95,92,22.0,1.7,16,0.4,79.0,79.0,263.0,264.0,93.0,53.0,104.0,standard tariff,,,N,,,100.0,,,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.28 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.82,,,,"10 Broadclough Way, Maidstone",Maidstone,Faversham and Mid Kent,KENT,2021,2021-07-30 08:57:26,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,10.0,,, +959545459602013071111541412079298,"16, Horseshoe Close",Weavering,,ME14 5TT,668050178,D,B,58,86,House,Semi-Detached,2013-07-11,E07000110,E14000700,Kent,2013-07-11,rental (private),55,86,255,65.0,3.9,49,1.1,106.0,53.0,605.0,404.0,182.0,71.0,80.0,dual,Y,NODATA!,,,2102.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,0.0,0.0,"From main system, no cylinder thermostat",Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"16, Horseshoe Close, Weavering",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1991-1995,2013-07-11 11:54:14,rental (private),10.0,0.0,200003689854.0,Address Matched +891866238612013030323015896070207,Little Silver,Cliff Hill,Boughton Monchelsea,ME17 4NQ,2751865078,C,B,71,85,Bungalow,Detached,2013-03-01,E07000110,E14000700,Kent,2013-03-03,marketed sale,70,84,152,71.0,3.5,29,1.7,85.0,64.0,577.0,491.0,106.0,65.0,120.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,7.0,7.0,67.0,0.0,From main system,Good,Good,"Solid, limited insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 67% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"Little Silver, Cliff Hill, Boughton Monchelsea",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1996-2002,2013-03-03 23:01:58,owner-occupied,12.0,8.0,200003661640.0,Address Matched +1022978599842013101020502811479208,"10, Ballard Close",Marden,,TN12 9HW,7875794178,D,C,61,69,Flat,Semi-Detached,2013-10-10,E07000110,E14000804,Kent,2013-10-10,rental (private),64,71,564,451.0,1.5,100,1.2,24.0,14.0,171.0,128.0,212.0,182.0,15.0,Single,N,Ground,N,,2602.0,100.0,double glazing installed before 2002,Normal,0.0,1.0,1.0,33.0,0.0,"Electric immersion, standard tariff",Very Poor,Very Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Room heaters, electric",Very Poor,Very Poor,Appliance thermostats,Good,Good,Low energy lighting in 33% of fixed outlets,Average,Average,electricity (not community),0.0,unheated corridor,0.8,,0.0,,natural,"10, Ballard Close, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1983-1990,2013-10-10 20:50:28,rental (private),3.0,1.0,200003708691.0,Address Matched +1491161549922016111612071688868346,Flat 8 Orchard House,"2, Old Farm Close",Allington,ME16 0TS,4836408478,B,B,83,83,Flat,NO DATA!,2016-11-16,E07000110,E14000804,Kent,2016-11-16,new dwelling,88,88,94,94.0,0.8,16,0.8,45.0,45.0,154.0,154.0,75.0,75.0,50.0,standard tariff,,top floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.18 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.16 W/m-¦K,Good,Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Flat 8 Orchard House, 2, Old Farm Close, Allington",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2016-11-16 12:07:16,unknown,10.0,10.0,10092970739.0,Address Matched +1462246118052016072110431699260647,"12, Paynes Lane",,,ME15 9QT,6737895478,D,C,64,76,House,Semi-Detached,2016-07-21,E07000110,E14000804,Kent,2016-07-21,marketed sale,58,70,243,160.0,4.4,44,3.0,63.0,63.0,788.0,760.0,146.0,86.0,101.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,2.4,,N,natural,"12, Paynes Lane",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2016-07-21 10:43:16,owner-occupied,,,200003677958.0,Address Matched +426562889942010012612100177102668,7b Salts Avenue,Loose,,ME15 0AY,2972381768,B,B,82,83,House,Detached,2010-01-26,E07000110,E14000804,Kent,2010-01-26,new dwelling,81,81,102,99.0,4.3,17,4.2,164.0,131.0,510.0,516.0,170.0,170.0,253.44,standard tariff,,NO DATA!,,,2110.0,,NO DATA!,NO DATA!,,,,15.0,0.0,From main system,Very Good,Very Good,Average thermal transmittance 0.20 W/m?K,Very Good,Very Good,Fully double glazed,Good,Good,Average thermal transmittance 0.21 W/m?K,Very Good,Very Good,"Room heaters, mains gas",,,Average thermal transmittance 0.22 W/m?K,Good,Good,"Boiler and underfloor heating, mains gas",Very Good,Very Good,Time and temperature zone control,Good,Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.43,,,NO DATA!,"7b Salts Avenue, Loose",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2010-01-26 12:10:01,,20.0,15.0,10014308582.0,Address Matched +633318258912015050807055199050286,"13, Iris Close",,,ME5 9QD,2651896868,D,B,67,89,House,Mid-Terrace,2015-05-05,E07000110,E14000700,Kent,2015-05-08,marketed sale,65,90,251,54.0,2.5,44,0.6,39.0,39.0,411.0,333.0,169.0,65.0,57.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,From main system,Average,Average,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"13, Iris Close",Maidstone,Faversham and Mid Kent,CHATHAM,England and Wales: 1983-1990,2015-05-08 07:05:51,owner-occupied,,,200003708182.0,Address Matched +362876530102009091410183062719048,"25, Springwood Road",Barming,,ME16 9PP,7136437668,C,C,70,77,Flat,Detached,2009-09-14,E07000110,E14000804,Kent,2009-09-14,marketed sale,68,76,253,189.0,2.6,41,1.9,50.0,34.0,362.0,305.0,136.0,103.0,61.01,Single,Y,Ground,N,3.0,2104.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,50.0,0.0,From main system,Good,Good,"Solid, limited insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Poor,Poor,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,unheated corridor,6.04,2.31,0.0,N,"mechanical, extract only","25, Springwood Road, Barming",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2009-09-14 10:18:30,owner-occupied,,,200003698996.0,Address Matched +646237899042011062418333882792548,Flat 2 Swan Place,High Street,Yalding,ME18 6HS,1098097868,D,D,56,67,House,Mid-Terrace,2011-06-24,E07000110,E14000804,Kent,2011-06-24,marketed sale,56,70,293,206.0,4.1,52,2.8,82.0,41.0,654.0,505.0,147.0,108.0,78.28,Unknown,Y,NODATA!,,,2104.0,0.0,not defined,Normal,1.0,3.0,3.0,0.0,1.0,From main system,Average,Average,"Suspended, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,2.37,0.0,,natural,"Flat 2 Swan Place, High Street, Yalding",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2011-06-24 18:33:38,owner-occupied,7.0,0.0,200003660765.0,Address Matched +1478312249062016090923313107588896,"98, Camp Way",,,ME15 9BB,9040417478,D,B,68,84,House,End-Terrace,2016-09-08,E07000110,E14000700,Kent,2016-09-09,rental (social),65,82,231,101.0,3.1,41,1.4,62.0,62.0,519.0,450.0,149.0,82.0,75.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,78.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"System built, with external insulation",Good,Good,,,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 78% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,2.44,,N,natural,"98, Camp Way",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2016-09-09 23:31:31,rental (social),,,200003710112.0,Address Matched +894708509922013031122241665698407,"4, Old Dover Works",,,ME16 8GY,650095078,C,B,80,89,House,Mid-Terrace,2013-03-11,E07000110,E14000804,Kent,2013-03-11,marketed sale,81,89,97,43.0,2.3,19,1.1,64.0,64.0,379.0,382.0,103.0,64.0,123.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,6.0,6.0,100.0,0.0,From main system,Good,Good,"Suspended, insulated (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"4, Old Dover Works",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2013-03-11 22:24:16,owner-occupied,15.0,15.0,10014308290.0,Address Matched +1022362139552015062223304598950916,9 Crundale,Union Street,,ME14 1TX,9616984178,C,C,76,78,Flat,Semi-Detached,2015-06-15,E07000110,E14000804,Kent,2015-06-22,rental (social),78,79,144,132.0,1.9,25,1.8,104.0,52.0,281.0,288.0,140.0,140.0,77.0,Unknown,Y,1st,N,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,0.0,0.0,From main system,Good,Good,(another dwelling below),NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,unheated corridor,4.9,,,N,natural,"9 Crundale, Union Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2015-06-22 23:30:45,rental (social),,,200003701468.0,Address Matched +429537879922010020121530062688230,The Dower House,Hill Green Road,Stockbury,ME9 7UN,3681702768,E,E,40,52,House,Detached,2010-01-18,E07000110,E14000700,Kent,2010-02-01,rental (private),37,42,432,381.0,12.0,65,11.0,178.0,105.0,1343.0,1112.0,315.0,219.0,205.33,dual,N,NO DATA!,,,2401.0,100.0,double glazing installed before 2002,Normal,1.0,7.0,7.0,30.0,1.0,"Electric immersion, off-peak",Poor,Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,Portable electric heaters,,,"Pitched, insulated (assumed)",Average,Average,Electric storage heaters,Poor,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 30% of fixed outlets,Average,Average,electricity - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.36,0.0,N,natural,"The Dower House, Hill Green Road, Stockbury",Maidstone,Faversham and Mid Kent,SITTINGBOURNE,England and Wales: 1983-1990,2010-02-01 21:53:00,rental (private),,,200003723681.0,Address Matched +1424037799222016032211161623028456,"65, Lombardy Drive",,,ME14 5TB,5295923478,C,B,69,82,House,Detached,2016-03-22,E07000110,E14000804,Kent,2016-03-22,marketed sale,65,79,196,106.0,3.9,34,2.1,135.0,67.0,641.0,595.0,143.0,89.0,112.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,7.0,7.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, mains gas",,,"Pitched, 270 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,2.4,,N,natural,"65, Lombardy Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2016-03-22 11:16:16,owner-occupied,,,200003716503.0,Address Matched +1259410482132019021918151773978202,Seaton,Woodland Way,Penenden Heath,ME14 2EU,8263261378,C,B,74,84,Bungalow,Detached,2019-02-19,E07000110,E14000804,Kent,2019-02-19,marketed sale,71,81,157,93.0,3.5,28,2.1,115.0,81.0,575.0,522.0,97.0,97.0,127.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,58.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, with external insulation",Good,Good,,,,"Roof room(s), insulated",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 58% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"Seaton, Woodland Way, Penenden Heath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2019-02-19 18:15:17,owner-occupied,,,200003707442.0,Address Matched +c2e943da6648d5256f9ac8ccbe0319cf8ece40cd928e05c7d1d9d6e69be0cd76,2 Sapphire Park,Sutton Valence,,ME17 3XZ,10001443841,B,A,84,95,House,Detached,2021-07-29,E07000110,E14000700,Kent,2021-07-29,new dwelling,86,96,88,12.0,1.4,15,0.2,76.0,76.0,222.0,222.0,87.0,59.0,91.0,standard tariff,,,N,,,100.0,,,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.19 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.1 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.385,,,,"2 Sapphire Park, Sutton Valence",Maidstone,Faversham and Mid Kent,MAIDSTONE,2021,2021-07-29 15:12:56,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,4.0,,10095449272.0,Address Matched +1510236299962017011111364919398673,"4, Quarry Square",,,ME14 2UN,7133939478,D,B,65,89,House,Mid-Terrace,2017-01-11,E07000110,E14000804,Kent,2017-01-11,marketed sale,62,88,247,58.0,3.1,43,0.8,99.0,49.0,531.0,347.0,113.0,66.0,72.0,Single,Y,NODATA!,,,2107.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,0.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Timber frame, as built, partial insulation (assumed)",Average,Average,,,,"Flat, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"4, Quarry Square",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2017-01-11 11:36:49,owner-occupied,,,200003703521.0,Address Matched +773490089922012041521595717148762,"106, Allington Way",,,ME16 0HN,6117827968,D,B,58,81,House,Semi-Detached,2012-04-14,E07000110,E14000804,Kent,2012-04-15,marketed sale,53,79,240,98.0,5.0,46,2.1,98.0,54.0,753.0,534.0,141.0,72.0,107.0,Single,Y,NODATA!,,,2104.0,93.0,double glazing installed before 2002,Normal,2.0,5.0,5.0,19.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Mostly double glazing,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 25 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 19% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"106, Allington Way",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2012-04-15 21:59:57,owner-occupied,21.0,4.0,200003702774.0,Address Matched +1651731836212018072717274794280655,"14, Fulbert Drive",Bearsted,,ME14 4PU,6528649578,D,C,62,80,House,Detached,2018-07-27,E07000110,E14000700,Kent,2018-07-27,rental (private),58,78,239,116.0,4.3,42,2.1,89.0,69.0,715.0,617.0,180.0,73.0,102.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,6.0,6.0,71.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,"Pitched, 270 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 71% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"14, Fulbert Drive, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2018-07-27 17:27:47,rental (private),,,200003688896.0,Address Matched +596916270512012041712181492920682,"44, Greenborough Close",,,ME15 8JN,6217024868,C,C,75,77,Flat,Mid-Terrace,2012-04-17,E07000110,E14000700,Kent,2012-04-17,rental (social),78,81,157,133.0,1.5,30,1.2,40.0,30.0,249.0,219.0,90.0,90.0,49.0,Single,Y,Ground,N,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,67.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 67% of fixed outlets,Good,Good,mains gas (not community),0.0,no corridor,,,0.0,,natural,"44, Greenborough Close",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2012-04-17 12:18:14,rental (social),6.0,4.0,200003723096.0,Address Matched +398131852812009111713535108919864,23 Oxford Gardens,,,ME15 8FJ,8478289668,C,C,69,70,House,End-Terrace,2009-11-17,E07000110,E14000700,Kent,2009-11-17,new dwelling,79,80,141,138.0,2.5,21,2.5,77.0,60.0,388.0,392.0,203.0,203.0,118.74,standard tariff,,NO DATA!,,,2207.0,,NO DATA!,NO DATA!,,,,5.0,0.0,From main system,Poor,Good,Average thermal transmittance 0.18 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.28 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.12 W/m?K,Very Good,Very Good,"Air source heat pump, radiators, electric",Poor,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in 71% of fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",0.0,NO DATA!,,2.4,,,NO DATA!,23 Oxford Gardens,Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2009-11-17 13:53:51,,7.0,5.0,10014308962.0,Address Matched +690154819912011102011574399299193,"99, Willington Street",,,ME15 8JU,1385990968,E,C,53,69,House,Mid-Terrace,2011-10-20,E07000110,E14000700,Kent,2011-10-20,marketed sale,51,70,303,186.0,4.6,57,2.8,77.0,43.0,768.0,487.0,125.0,111.0,79.6,Single,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,20.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 20% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,2.4,0.0,,natural,"99, Willington Street",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2011-10-20 11:57:43,owner-occupied,10.0,2.0,200003685812.0,Address Matched +1202841669102014090909572624740358,"63, Mayfair Avenue",,,ME15 6BZ,7171367278,D,B,68,83,House,Semi-Detached,2014-09-05,E07000110,E14000804,Kent,2014-09-09,marketed sale,68,83,188,86.0,2.6,36,1.3,67.0,51.0,514.0,481.0,98.0,70.0,73.0,dual,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,4.0,4.0,70.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 70% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"63, Mayfair Avenue",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2014-09-09 09:57:26,owner-occupied,10.0,7.0,200003676530.0,Address Matched +442610899642017120415313470230528,"Barn Cottage, Home Farmhouse",Staplehurst Road,Marden,TN12 9BU,7617592768,E,D,45,68,House,Detached,2017-10-02,E07000110,E14000804,Kent,2017-12-04,marketed sale,42,63,234,121.0,8.2,55,4.6,108.0,82.0,1089.0,746.0,123.0,80.0,150.0,Single,N,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,2.0,5.0,5.0,68.0,0.0,From main system,Average,Average,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Sandstone or limestone, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, oil",Average,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 68% of fixed outlets,Good,Good,oil (not community),0.0,NO DATA!,,,,N,natural,"Barn Cottage, Home Farmhouse, Staplehurst Road, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: before 1900,2017-12-04 15:31:34,owner-occupied,,,10014315537.0,Address Matched +1789808229412020030416134824000268,"8, Wickings Close",Staplehurst,,TN12 0FS,2873949678,B,A,86,96,House,Mid-Terrace,2020-03-04,E07000110,E14000804,Kent,2020-03-04,new dwelling,87,97,71,5.0,1.4,12,0.1,79.0,79.0,208.0,209.0,100.0,56.0,111.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.17 W/m-¦K,Good,Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"8, Wickings Close, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,NO DATA!,2020-03-04 16:13:48,unknown,10.0,10.0,10093304230.0,Address Matched +638733632202020081006434386700448,"14, Westway",Coxheath,,ME17 4EZ,3261737868,D,C,63,75,Bungalow,Semi-Detached,2020-08-04,E07000110,E14000804,Kent,2020-08-10,marketed sale,56,68,264,180.0,4.4,47,3.1,74.0,74.0,773.0,739.0,104.0,75.0,95.0,Unknown,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"14, Westway, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2020-08-10 06:43:43,owner-occupied,,,200003715226.0,Address Matched +1305562039152015040110153798050836,Apartment 22,Idenden House,Medway Street,ME14 1JS,8679984378,C,C,79,79,Flat,Mid-Terrace,2015-04-01,E07000110,E14000804,Kent,2015-04-01,new dwelling,86,86,153,153.0,0.6,27,0.6,20.0,20.0,149.0,149.0,70.0,70.0,24.0,standard tariff,,top floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.23 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.14 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Apartment 22, Idenden House, Medway Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2015-04-01 10:15:37,owner-occupied,12.0,12.0,10091193930.0,Address Matched +1384513959542016042716082449062438,Flat 66,Miller House,43-51 Lower Stone Street,ME15 6GB,1512150478,C,C,78,78,Flat,NO DATA!,2016-04-27,E07000110,E14000804,Kent,2016-04-27,none of the above,68,68,243,243.0,2.2,41,2.2,39.0,39.0,240.0,240.0,153.0,153.0,53.0,off-peak 10 hour,,mid floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Poor,Poor,(other premises below),,,Fully double glazed,Good,Good,Average thermal transmittance 0.68 W/m-¦K,Average,Average,,,,(other premises above),,,"Boiler and radiators, electric",Poor,Very Poor,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"Flat 66, Miller House, 43-51 Lower Stone Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2016-04-27 16:08:24,unknown,4.0,4.0,10091196163.0,Address Matched +1503937259962016121210470838208356,"36, Stanley Close",Staplehurst,,TN12 0TA,5324598478,D,B,56,85,House,Semi-Detached,2016-12-10,E07000110,E14000804,Kent,2016-12-12,rental (private),51,83,341,94.0,3.8,60,1.1,89.0,44.0,632.0,418.0,172.0,69.0,64.0,Single,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"36, Stanley Close, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1967-1975,2016-12-12 10:47:08,rental (private),,,200003678732.0,Address Matched +576658049262010122410241752048170,"89, Eyhorne Street",Hollingbourne,,ME17 1TX,7579452868,D,D,65,65,House,Semi-Detached,2010-12-24,E07000110,E14000700,Kent,2010-12-24,rental (social),58,58,310,310.0,3.5,52,3.5,42.0,42.0,575.0,575.0,89.0,89.0,67.32,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,80.0,1.0,From main system,Very Good,Very Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"System built, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,0.0,N,natural,"89, Eyhorne Street, Hollingbourne",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2010-12-24 10:24:17,rental (social),,,200003722155.0,Address Matched +392716650602009110419424667910448,Apartment 3,"10-12, Hayle Road",,ME15 6PF,669059668,C,C,71,78,Flat,Semi-Detached,2009-11-04,E07000110,E14000804,Kent,2009-11-04,rental (private),68,75,277,213.0,2.2,46,1.7,42.0,27.0,369.0,297.0,74.0,74.0,48.59,dual,Y,2nd,N,4.0,2104.0,0.0,not defined,Normal,0.0,2.0,2.0,43.0,0.0,From main system,Good,Good,(other premises below),,,Single glazed,Very Poor,Very Poor,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 43% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,unheated corridor,4.69,,0.0,N,natural,"Apartment 3, 10-12, Hayle Road",Maidstone,Maidstone and The Weald,MAIDSTONE,,2009-11-04 19:42:46,rental (private),,,200003697273.0,Address Matched +c35cbe1a8697225bd4e130fd09f576b6309f086e23f0b20a4a77467454455dd0,76 Gilbert Way,,,ME17 3TT,10001596454,B,A,83,95,House,Semi-Detached,2021-09-20,E07000110,E14000700,Kent,2021-09-20,new dwelling,86,98,91,3.0,1.3,16,0.1,68.0,68.0,218.0,218.0,68.0,41.0,78.0,standard tariff,,,N,,,100.0,,,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.33,,,,76 Gilbert Way,Maidstone,Faversham and Mid Kent,MAIDSTONE,2017,2021-09-20 15:59:19,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,7.0,,10094441909.0,Energy Assessor +1688665259062019010717181522538331,"20, Queen Elizabeth Square",,,ME15 9DG,3291512678,C,B,69,86,House,Semi-Detached,2019-01-07,E07000110,E14000700,Kent,2019-01-07,marketed sale,66,84,220,87.0,3.0,39,1.2,60.0,60.0,463.0,401.0,145.0,68.0,77.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Solid, limited insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"20, Queen Elizabeth Square",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1996-2002,2019-01-07 17:18:15,owner-occupied,,,200003661672.0,Address Matched +c342f9d4dfae78311196a09c3aba4587c1de6bc007e0475c304e06ceb208463e,2 Hope Street,,,ME14 2TF,10001403874,D,B,61,87,House,Mid-Terrace,2021-09-29,E07000110,E14000804,Kent,2021-09-30,marketed sale,59,89,269,63.0,3.5,44,0.8,93.0,67.0,667.0,366.0,96.0,66.0,80.0,Single,Y,,,,,100.0,double glazing installed before 2002,Normal,1.0,4.0,4.0,60.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, 270 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,No time or thermostatic control of room temperature,Very Poor,Very Poor,Low energy lighting in 60% of fixed outlets,Good,Good,mains gas (not community),0.0,,,2.46,0.0,N,natural,2 Hope Street,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2021-09-30 09:36:07,Owner-occupied,10.0,,200003669875.0,Energy Assessor +1826370061032020091622264730978502,"18, Odiham Drive",,,ME16 0TW,6290512778,C,B,74,90,House,Semi-Detached,2020-09-16,E07000110,E14000804,Kent,2020-09-16,marketed sale,74,90,181,45.0,1.9,32,0.5,56.0,56.0,310.0,284.0,116.0,73.0,60.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,91.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 91% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"18, Odiham Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1976-1982,2020-09-16 22:26:47,owner-occupied,,,200003662253.0,Address Matched +309416120962009061917033243518691,2 Home Cottages,Lenham Heath Road,Sandway,ME17 2HY,9436263668,F,E,34,49,House,Semi-Detached,2009-06-19,E07000110,E14000700,Kent,2009-06-19,marketed sale,32,47,417,306.0,9.6,80,6.7,67.0,67.0,1287.0,959.0,293.0,176.0,74.52,Unknown,N,NO DATA!,,,2104.0,0.0,single glazing,Normal,1.0,5.0,5.0,83.0,1.0,"From main system, no cylinderstat",Poor,Poor,"Solid, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Roof room(s), ceiling insulated",Poor,Poor,"Boiler and radiators, oil",Average,Average,Programmer and room thermostat,Poor,Poor,Low energy lighting in 83% of fixed outlets,Very Good,Very Good,oil - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.2,0.0,N,natural,"2 Home Cottages, Lenham Heath Road, Sandway",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2009-06-19 17:03:32,owner-occupied,,,10091196846.0,Address Matched +975472927712013072112570495970519,"15, Gooch Close",Allington,,ME16 0GE,5945751178,C,B,70,87,House,End-Terrace,2013-07-18,E07000110,E14000804,Kent,2013-07-21,marketed sale,70,88,179,56.0,2.6,34,0.9,70.0,46.0,398.0,347.0,131.0,75.0,75.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,50.0,0.0,From main system,Good,Good,"Suspended, limited insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"15, Gooch Close, Allington",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2013-07-21 12:57:04,owner-occupied,12.0,6.0,200003662442.0,Address Matched +300519226252009060919315200010066,"18, Cooling Close",,,ME14 5RB,657603668,C,C,71,80,House,Mid-Terrace,2009-06-09,E07000110,E14000804,Kent,2009-06-09,marketed sale,68,78,251,175.0,2.5,41,1.7,54.0,31.0,357.0,270.0,85.0,74.0,59.6,dual,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,25.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 100mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 25% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,0.0,N,natural,"18, Cooling Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2009-06-09 19:31:52,owner-occupied,,,200003672097.0,Address Matched +830350139962012101514515951458202,"491, Loose Road",,,ME15 9UQ,500331078,E,B,49,81,House,Mid-Terrace,2012-10-15,E07000110,E14000804,Kent,2012-10-15,marketed sale,43,78,348,98.0,4.3,75,1.4,67.0,34.0,692.0,447.0,79.0,57.0,57.0,Single,Y,NODATA!,,,2107.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Granite or whinstone, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, smokeless fuel",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"491, Loose Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2012-10-15 14:51:59,owner-occupied,8.0,0.0,200003680297.0,Address Matched +450720859242010030821193473300888,"15, Cooling Close",,,ME14 5RB,2200453768,D,C,60,73,House,Semi-Detached,2010-03-08,E07000110,E14000804,Kent,2010-03-08,marketed sale,54,69,300,200.0,5.0,50,3.3,105.0,58.0,671.0,499.0,189.0,120.0,99.9,dual,Y,NO DATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,1.0,5.0,4.0,18.0,0.0,"From main system, no cylinder thermostat",Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Flat, limited insulation (assumed)",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 18% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.42,0.0,N,natural,"15, Cooling Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2010-03-08 21:19:34,owner-occupied,,,200003672094.0,Address Matched +c3842281c9d6c5c94c4fa80e4ab2c89b787f99ae761b6c876f069ddfd754f2ea,9 EVELYN ROAD,,,ME16 8BL,10001606113,C,B,69,85,House,Mid-Terrace,2021-08-03,E07000110,E14000804,Kent,2021-08-06,marketed sale,65,83,205,81.0,3.3,36,1.3,73.0,73.0,555.0,426.0,85.0,58.0,90.0,Single,Y,,,,,100.0,"double glazing, unknown install date",Normal,2.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.4,0.0,N,natural,9 EVELYN ROAD,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2021-08-06 14:50:45,Owner-occupied,8.0,,200003667522.0,Energy Assessor +728121159222011112811475523888269,"8, Golden Wood Close",,,ME5 8XA,6299563968,D,C,62,70,House,End-Terrace,2011-11-28,E07000110,E14000700,Kent,2011-11-28,marketed sale,60,68,235,185.0,4.0,45,3.2,94.0,47.0,590.0,517.0,154.0,113.0,89.1,Single,Y,NODATA!,,,2102.0,100.0,double glazing installed before 2002,Normal,1.0,5.0,5.0,0.0,0.0,"From main system, no cylinder thermostat",Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,2.353,0.0,,natural,"8, Golden Wood Close",Maidstone,Faversham and Mid Kent,CHATHAM,England and Wales: 1967-1975,2011-11-28 11:47:55,owner-occupied,10.0,0.0,200003673612.0,Address Matched +c3953adf28e9baa8312b84e258d30d99f485d789d88db25deab3474ec3601be3,15 Sutton Road,,,ME15 9AE,10001403685,D,C,63,79,House,Semi-Detached,2021-09-09,E07000110,E14000700,Kent,2021-09-09,marketed sale,59,76,232,125.0,4.6,41,2.5,97.0,97.0,914.0,721.0,86.0,58.0,113.0,Single,Y,,,,,100.0,"double glazing, unknown install date",Normal,0.0,8.0,8.0,86.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,"Roof room(s), insulated (assumed)",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 86% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.53,0.0,N,natural,15 Sutton Road,Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2021-09-09 18:08:43,Owner-occupied,14.0,,200003677521.0,Energy Assessor +1593300328352017112910383792239855,"16, Bowles Road",,,ME17 3FZ,8570825578,B,A,83,95,House,Semi-Detached,2017-11-29,E07000110,E14000700,Kent,2017-11-29,new dwelling,86,98,91,3.0,1.3,16,0.1,56.0,56.0,214.0,214.0,81.0,49.0,78.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"16, Bowles Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2017-11-29 10:38:37,unknown,7.0,7.0,10093303968.0,Address Matched +120030200962009111411170538528831,Flat 1 Wellington House,"6, Ashford Road",,ME14 5BH,3393018468,D,D,65,68,Flat,Semi-Detached,2009-11-12,E07000110,E14000804,Kent,2009-11-14,marketed sale,56,58,380,358.0,3.5,57,3.3,48.0,37.0,333.0,292.0,140.0,140.0,60.91,dual,N,Ground,N,4.0,2401.0,100.0,secondary glazing,Normal,0.0,3.0,3.0,71.0,0.0,"Electric immersion, off-peak",Average,Poor,"Solid, limited insulation (assumed)",,,Full secondary glazing,Good,Good,"Solid brick, with internal insulation",Good,Good,"Room heaters, electric",,,(another dwelling above),,,Electric storage heaters,Poor,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 71% of fixed outlets,Very Good,Very Good,electricity - this is for backwards compatibility only and should not be used,0.0,unheated corridor,12.37,2.28,0.0,N,natural,"Flat 1 Wellington House, 6, Ashford Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2009-11-14 11:17:05,owner-occupied,,,200003689398.0,Address Matched +1482907796332017060815380185078405,"23, Southfields Way",Harrietsham,,ME17 1GE,9525447478,B,A,84,95,House,Semi-Detached,2017-06-08,E07000110,E14000700,Kent,2017-06-08,new dwelling,86,96,84,13.0,1.5,15,0.3,64.0,64.0,241.0,241.0,106.0,58.0,103.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.26 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"23, Southfields Way, Harrietsham",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2017-06-08 15:38:01,owner-occupied,15.0,15.0,10093303142.0,Address Matched +56286789962019062009481486718171,"2, John Day Close",Coxheath,,ME17 4GU,7808856568,C,C,79,79,Flat,Semi-Detached,2019-06-19,E07000110,E14000804,Kent,2019-06-20,marketed sale,83,83,139,139.0,1.1,24,1.1,41.0,41.0,208.0,208.0,78.0,78.0,47.0,Unknown,Y,Ground,N,,2104.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,100.0,0.0,From main system,Good,Good,"Suspended, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,1.47,,,N,natural,"2, John Day Close, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2019-06-20 09:48:14,owner-occupied,,,10022900447.0,Address Matched +1076644129432014012409122232278804,"16, George Street",,,ME15 6NX,2482878178,B,B,83,83,House,Mid-Terrace,2014-01-23,E07000110,E14000804,Kent,2014-01-24,new dwelling,87,87,82,82.0,1.2,16,1.2,55.0,55.0,239.0,239.0,74.0,74.0,76.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.11 W/mA?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.20 W/mA?K,Very Good,Very Good,,,,Average thermal transmittance 0.12 W/mA?K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"16, George Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2014-01-24 09:12:22,NO DATA!,23.0,23.0,10014314833.0,Address Matched +334154808132009080315032643068709,"114, Marion Crescent",,,ME15 7DU,923735668,D,C,63,75,House,Mid-Terrace,2009-08-03,E07000110,E14000700,Kent,2009-08-03,marketed sale,60,75,278,178.0,3.8,46,2.4,42.0,42.0,588.0,392.0,142.0,107.0,83.54,Single,Y,NO DATA!,,,2107.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Poor,Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.45,0.0,N,natural,"114, Marion Crescent",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2009-08-03 15:03:26,owner-occupied,,,200003711037.0,Address Matched +1000426239342013090320001416370378,"12, Boughton Lane",,,ME15 9QN,1356933178,D,C,59,74,House,Semi-Detached,2013-09-03,E07000110,E14000804,Kent,2013-09-03,marketed sale,54,70,228,139.0,5.1,44,3.2,102.0,61.0,895.0,790.0,118.0,79.0,117.0,Unknown,Y,NODATA!,,,2104.0,85.0,"double glazing, unknown install date",Normal,1.0,6.0,6.0,33.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Mostly double glazing,Poor,Poor,"Cavity wall, filled cavity",Good,Good,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 33% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"12, Boughton Lane",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2013-09-03 20:00:14,owner-occupied,12.0,4.0,200003677912.0,Address Matched +1585947980332017103011332160778696,"6, Cricketers Way",Coxheath,,ME17 4FG,8680674578,B,A,85,97,House,Mid-Terrace,2017-10-30,E07000110,E14000804,Kent,2017-10-30,new dwelling,88,100,75,-10.0,1.1,13,-0.1,59.0,59.0,182.0,182.0,81.0,48.0,82.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.14 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.20 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"6, Cricketers Way, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2017-10-30 11:33:21,rental (social),10.0,10.0,10093302610.0,Address Matched +416130760352009123018453501719974,"3, Coltsfoot Drive",Weavering,,ME14 5FP,9490011768,D,C,55,69,House,Detached,2009-12-30,E07000110,E14000700,Kent,2009-12-30,marketed sale,49,64,344,236.0,5.3,58,3.6,97.0,53.0,717.0,533.0,172.0,122.0,108.26,dual,Y,NO DATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,17.0,0.0,From main system,Average,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, mains gas",,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Average,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 17% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.32,0.0,N,natural,"3, Coltsfoot Drive, Weavering",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1991-1995,2009-12-30 18:45:35,owner-occupied,,,200003688386.0,Address Matched +1255813439602015011310561734159878,"2, Eddington Close",,,ME15 9XG,7645831378,D,B,66,86,House,Semi-Detached,2015-01-13,E07000110,E14000804,Kent,2015-01-13,marketed sale,60,84,238,84.0,4.0,42,1.4,69.0,69.0,703.0,460.0,141.0,84.0,95.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,83.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,,,,"Roof room(s), no insulation (assumed)",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 83% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"2, Eddington Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2015-01-13 10:56:17,owner-occupied,,,200003675702.0,Address Matched +1187951219062014081020100486888324,4 Burnside Cottages,Old Ashford Road,Lenham,ME17 2DJ,2871166278,D,B,56,84,House,Semi-Detached,2014-08-08,E07000110,E14000700,Kent,2014-08-10,rental (private),44,75,258,88.0,5.2,62,2.0,58.0,58.0,915.0,519.0,163.0,92.0,84.0,Unknown,N,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,89.0,1.0,From main system,Average,Average,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, oil",Average,Average,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 89% of fixed outlets,Very Good,Very Good,oil (not community),0.0,NO DATA!,,,0.0,,natural,"4 Burnside Cottages, Old Ashford Road, Lenham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2014-08-10 20:10:04,rental (private),9.0,8.0,200003713964.0,Address Matched +1633740419102018052211251058882228,"12, Broke Wood Way",,,ME16 9FA,196718578,B,A,85,94,House,Detached,2018-05-22,E07000110,E14000804,Kent,2018-05-22,new dwelling,86,95,75,16.0,1.6,13,0.4,74.0,74.0,250.0,251.0,101.0,55.0,124.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.16 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.18 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"12, Broke Wood Way",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2018-05-22 11:25:10,unknown,20.0,20.0,10093303491.0,Address Matched +1077544989002014012413402718842578,"17, The Chenies",,,ME15 6EE,5024288178,C,B,78,81,Flat,Mid-Terrace,2014-01-23,E07000110,E14000804,Kent,2014-01-24,marketed sale,82,86,124,97.0,1.3,23,1.0,68.0,43.0,229.0,203.0,93.0,82.0,54.0,Single,Y,1st,Y,,2107.0,100.0,double glazing installed during or after 2002,Normal,1.0,3.0,3.0,40.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 40% of fixed outlets,Average,Average,mains gas (not community),0.0,unheated corridor,6.01,,0.0,,natural,"17, The Chenies",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2014-01-24 13:40:27,owner-occupied,5.0,2.0,10022895753.0,Address Matched +1438342404632016042806540878278002,"16, Doddington Court",,,ME16 0SE,278034478,D,B,62,86,House,Semi-Detached,2016-04-27,E07000110,E14000804,Kent,2016-04-28,marketed sale,58,85,300,81.0,2.9,53,0.8,77.0,38.0,499.0,367.0,130.0,75.0,55.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,2.3,,N,natural,"16, Doddington Court",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2016-04-28 06:54:08,owner-occupied,,,200003670109.0,Address Matched +c3c5bb9ba7c5d4e3c0701620cc4e80bc9611bcf632014ccd0d10deecaf6a8176,91 Merton Road,Bearsted,,ME15 8LR,10001562313,C,B,70,88,House,End-Terrace,2021-09-14,E07000110,E14000700,Kent,2021-09-14,marketed sale,68,87,223,72.0,2.4,39,0.8,53.0,53.0,407.0,347.0,94.0,56.0,61.0,Single,Y,,,,,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.34,0.0,N,natural,"91 Merton Road, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2021-09-14 20:38:43,Owner-occupied,9.0,,200003686101.0,Energy Assessor +287106659432014111921254193968798,"30, Aviemore Gardens",Bearsted,,ME14 4BA,5833702668,E,B,43,86,House,Semi-Detached,2014-11-19,E07000110,E14000700,Kent,2014-11-19,none of the above,40,86,355,65.0,6.2,68,1.2,110.0,55.0,1045.0,438.0,257.0,88.0,90.0,Single,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,1.0,4.0,4.0,0.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, no insulation",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"30, Aviemore Gardens, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2014-11-19 21:25:41,owner-occupied,10.0,0.0,200003687580.0,Address Matched +1431638071352016041216251098060840,Flat 72,Concorde House,London Road,ME16 8QA,8068183478,E,E,50,50,Flat,Enclosed End-Terrace,2016-04-05,E07000110,E14000804,Kent,2016-04-12,rental (private),47,47,371,371.0,4.3,63,4.3,51.0,51.0,849.0,849.0,186.0,186.0,69.0,dual,N,5th,Y,,2107.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,100.0,0.0,From main system,Poor,Poor,(another dwelling below),NO DATA!,,Fully double glazed,Good,Good,"System built, with internal insulation",Good,Good,,,,"Flat, insulated",Average,Average,"Boiler and radiators, electric",Very Poor,Poor,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,unheated corridor,17.84,2.5,,N,natural,"Flat 72, Concorde House, London Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2016-04-12 16:25:10,rental (private),,,, +1073521639262016102815333018298486,5 Crittenden Cottages,Gallants Lane,East Farleigh,ME15 0LN,8143358178,D,A,63,112,House,Semi-Detached,2016-09-21,E07000110,E14000804,Kent,2016-10-28,rental (social),67,110,242,-95.0,2.6,41,-1.0,44.0,44.0,370.0,278.0,348.0,226.0,63.0,Single,N,NODATA!,,,2206.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,100.0,0.0,From main system,Very Poor,Poor,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, wood logs",,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Air source heat pump, radiators, electric",Good,Very Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,NO DATA!,,2.28,,N,natural,"5 Crittenden Cottages, Gallants Lane, East Farleigh",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2016-10-28 15:33:30,rental (social),,,200003670969.0,Address Matched +153295590832008100812395918068698,"7, Lodge Gardens",Ulcombe,,ME17 1DZ,9808602568,D,D,62,64,Bungalow,End-Terrace,2008-10-08,E07000110,E14000700,Kent,2008-10-08,rental (social),47,48,507,503.0,3.9,76,3.9,49.0,25.0,303.0,309.0,107.0,107.0,50.93,dual,N,NO DATA!,,,2402.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,0.0,0.0,"Electric immersion, off-peak",Average,Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,Electric storage heaters,Average,Poor,Automatic charge control,Average,Average,No low energy lighting,Very Poor,Very Poor,electricity - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.29,0.0,N,natural,"7, Lodge Gardens, Ulcombe",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2008-10-08 12:39:59,rental (social),,,200003701099.0,Address Matched +1113644639002014032509591725142548,Barchams,Maidstone Road,Sutton Valence,ME17 3LW,3011631278,D,C,65,80,Bungalow,Detached,2014-03-24,E07000110,E14000700,Kent,2014-03-25,rental (private),59,76,180,99.0,6.7,35,3.8,168.0,97.0,1176.0,966.0,147.0,93.0,193.0,dual,Y,NODATA!,,,2110.0,100.0,double glazing installed before 2002,Normal,0.0,7.0,7.0,26.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and underfloor heating, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in 26% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"Barchams, Maidstone Road, Sutton Valence",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1991-1995,2014-03-25 09:59:17,rental (private),27.0,7.0,200003696922.0,Address Matched +598248109922012091710241824478862,"8, Raggatt Place",,,ME15 7AB,6261034868,D,B,63,85,Bungalow,Semi-Detached,2012-09-13,E07000110,E14000700,Kent,2012-09-17,rental (social),65,88,242,62.0,2.3,46,0.6,49.0,30.0,440.0,352.0,74.0,52.0,50.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,More Than Typical,0.0,2.0,2.0,38.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, partial insulation (assumed)",Average,Average,"Room heaters, electric",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 38% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"8, Raggatt Place",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1976-1982,2012-09-17 10:24:18,rental (social),8.0,3.0,200003727779.0,Address Matched +598274609222013092706394574168167,14 Grangehouse,Fernhill Road,,ME16 9BN,6762034868,C,C,70,70,Flat,Semi-Detached,2013-09-26,E07000110,E14000804,Kent,2013-09-27,rental (social),71,71,185,182.0,2.2,36,2.2,50.0,39.0,415.0,416.0,81.0,81.0,62.0,Single,Y,3rd,Y,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,71.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,,,,"Flat, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 71% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,no corridor,,,0.0,,natural,"14 Grangehouse, Fernhill Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2013-09-27 06:39:45,rental (social),7.0,5.0,200003722454.0,Address Matched +578400609932011012108015857268304,25 Lenham House,Glebe Gardens,Lenham,ME17 2PY,417372868,C,C,70,70,Flat,End-Terrace,2011-01-21,E07000110,E14000700,Kent,2011-01-21,rental (social),63,63,272,272.0,3.2,46,3.2,39.0,39.0,500.0,500.0,122.0,122.0,70.2,Unknown,Y,1st,Y,2.0,2305.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,100.0,1.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Flat, limited insulation (assumed)",Very Poor,Very Poor,Community scheme,Good,Good,"Flat rate charging, programmer and TRVs",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,heated corridor,,2.14,0.0,N,natural,"25 Lenham House, Glebe Gardens, Lenham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2011-01-21 08:01:58,rental (social),,,200003714532.0,Address Matched +1678109589832019100912104886078596,Flat 306,Kent House,Romney Place,ME15 6LA,8626531678,D,D,64,64,Flat,Detached,2018-11-09,E07000110,E14000804,Kent,2019-10-09,non marketed sale,67,67,258,258.0,2.1,44,2.1,39.0,39.0,409.0,409.0,258.0,258.0,48.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,"Electric immersion, standard tariff",Very Poor,Poor,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.34 W/m-¦K,Good,Good,,,,(other premises above),,,Electric underfloor heating,Very Poor,Poor,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"Flat 306, Kent House, Romney Place",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2019-10-09 12:10:48,unknown,21.0,21.0,, +172802700832008102320282221268695,"3, Kingsley Road",,,ME15 7UN,561613568,G,G,17,18,House,Mid-Terrace,2008-10-23,E07000110,E14000804,Kent,2008-10-23,marketed sale,17,17,797,793.0,10.0,133,10.0,69.0,35.0,1390.0,1406.0,83.0,83.0,71.9,Single,Y,NO DATA!,,,2601.0,86.0,double glazing installed during or after 2002,Normal,1.0,5.0,5.0,0.0,0.0,Gas multipoint,Average,Good,"Suspended, no insulation (assumed)",,,Partial double glazing,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, electric",,,"Roof room(s), no insulation (assumed)",Very Poor,Very Poor,"Room heaters, mains gas",Poor,Poor,No thermostatic control of room temperature,Poor,Poor,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,0.0,N,natural,"3, Kingsley Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2008-10-23 20:28:22,owner-occupied,,,200003695873.0,Address Matched +1089544448032020081212253325078407,"5, The Square",West Street,,ME15 0RT,4775469178,E,C,46,73,House,End-Terrace,2020-08-03,E07000110,E14000804,Kent,2020-08-12,marketed sale,39,64,282,124.0,6.3,73,3.3,87.0,69.0,832.0,577.0,150.0,89.0,87.0,Single,N,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,4.0,5.0,5.0,74.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Timber frame, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, dual fuel (mineral and wood)",,,"Roof room(s), no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, oil",Average,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 74% of fixed outlets,Very Good,Very Good,oil (not community),0.0,NO DATA!,,,,N,natural,"5, The Square, West Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2020-08-12 12:25:33,owner-occupied,,,200003662581.0,Address Matched +229593122132009021613225164968208,"7, Knowles Walk",Staplehurst,,TN12 0SG,2894297568,D,C,63,78,House,Mid-Terrace,2009-02-16,E07000110,E14000804,Kent,2009-02-16,rental (private),58,75,312,183.0,3.6,52,2.1,66.0,33.0,421.0,303.0,169.0,91.0,69.0,Single,Y,NO DATA!,,,2102.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,0.0,0.0,"From main system, no cylinderstat",Poor,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, partial insulation (assumed)",Average,Average,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Average,Good,"Programmer, no room thermostat",Very Poor,Very Poor,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.34,0.0,N,natural,"7, Knowles Walk, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1976-1982,2009-02-16 13:22:51,rental (private),,,200003678671.0,Address Matched +1738153654612019072421515397210160,"81, Kingsley Road",,,ME15 7UP,1062475678,D,B,57,81,House,Mid-Terrace,2019-07-24,E07000110,E14000804,Kent,2019-07-24,rental (private),50,77,329,134.0,4.4,58,1.8,65.0,65.0,778.0,516.0,100.0,74.0,76.0,dual,Y,NODATA!,,,2107.0,100.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,100.0,0.0,From main system,Very Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"81, Kingsley Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2019-07-24 21:51:53,rental (private),,,200003695909.0,Address Matched +919022725732013050220052918078809,"10, The Hardwicks",Headcorn,,TN27 9AA,2978857078,B,B,83,83,House,Semi-Detached,2013-05-02,E07000110,E14000700,Kent,2013-05-02,new dwelling,87,87,80,80.0,1.4,15,1.4,55.0,55.0,242.0,242.0,92.0,92.0,90.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.18 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.20 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.15 W/m?K,Good,Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"10, The Hardwicks, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,NO DATA!,2013-05-02 20:05:29,NO DATA!,11.0,11.0,10014314490.0,Address Matched +1497841429922016111716554768638586,"9, Neville Close",Penenden Heath,,ME14 2DS,8601258478,C,B,69,84,Bungalow,Detached,2016-11-17,E07000110,E14000804,Kent,2016-11-17,marketed sale,64,81,202,94.0,3.8,36,1.8,84.0,66.0,681.0,538.0,107.0,73.0,105.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,72.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 72% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,2.3,,N,natural,"9, Neville Close, Penenden Heath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2016-11-17 16:55:47,owner-occupied,,,200003706416.0,Address Matched +1260309029262015012613294731868155,"42, North Street",Barming,,ME16 9HF,5339271378,D,C,65,80,House,Detached,2015-01-26,E07000110,E14000804,Kent,2015-01-26,marketed sale,59,76,229,121.0,4.3,40,2.3,63.0,63.0,713.0,617.0,191.0,98.0,106.0,Single,Y,NODATA!,,,2504.0,100.0,double glazing installed before 2002,Normal,0.0,6.0,6.0,100.0,0.0,"From main system, no cylinder thermostat",Average,Average,"To external air, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Warm air, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"42, North Street, Barming",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1976-1982,2015-01-26 13:29:47,owner-occupied,,,200003665709.0,Address Matched +1416816409062016030918543802318236,2 Coronation Villas,Church Green,Marden,TN12 9HS,3070082478,D,B,59,86,House,Semi-Detached,2016-03-09,E07000110,E14000804,Kent,2016-03-09,none of the above,52,84,305,79.0,3.9,54,1.1,61.0,49.0,727.0,427.0,116.0,53.0,73.0,Single,Y,NODATA!,,,2106.0,82.0,"double glazing, unknown install date",Normal,1.0,4.0,4.0,75.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Mostly double glazing,Average,Average,"Solid brick, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"2 Coronation Villas, Church Green, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1900-1929,2016-03-09 18:54:38,owner-occupied,,,200003730674.0,Address Matched +1785948101212020022611021722200061,Merchant House,Station Road,Staplehurst,TN12 0QH,142129678,B,B,85,91,House,Detached,2020-02-26,E07000110,E14000804,Kent,2020-02-26,new dwelling,84,90,77,44.0,2.4,14,1.4,106.0,106.0,387.0,387.0,92.0,92.0,175.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.20 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.15 W/m-¦K,Good,Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Merchant House, Station Road, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,NO DATA!,2020-02-26 11:02:17,unknown,35.0,35.0,10095448166.0,Address Matched +1587793598452017110708210998039656,"26, Saxon Way",Tovil,,ME15 6AL,6609884578,B,A,83,95,House,Semi-Detached,2017-11-07,E07000110,E14000804,Kent,2017-11-07,new dwelling,85,98,98,3.0,1.3,17,0.1,52.0,52.0,213.0,214.0,101.0,54.0,76.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.10 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.22 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"26, Saxon Way, Tovil",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2017-11-07 08:21:09,owner-occupied,45.0,45.0,10093304980.0,Address Matched +406585310132019102517004013268799,Havenfield,The Street,Teston,ME18 5AQ,1903740768,D,B,68,82,Bungalow,Detached,2019-10-25,E07000110,E14000804,Kent,2019-10-25,marketed sale,63,79,215,113.0,3.7,38,2.0,71.0,71.0,598.0,519.0,133.0,86.0,97.0,Unknown,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,2.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 350 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"Havenfield, The Street, Teston",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1976-1982,2019-10-25 17:00:40,owner-occupied,,,200003661872.0,Address Matched +132026059642011022112180042992698,"25, Farningham Close",,,ME14 5QX,2600759468,C,C,69,78,House,Mid-Terrace,2011-02-21,E07000110,E14000804,Kent,2011-02-21,marketed sale,67,78,255,174.0,2.6,42,1.8,46.0,34.0,457.0,336.0,112.0,91.0,62.2,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,64.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, partial insulation (assumed)",Average,Average,"Room heaters, electric",,,"Pitched, 75 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 64% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,0.0,N,natural,"25, Farningham Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1976-1982,2011-02-21 12:18:00,owner-occupied,,,200003673189.0,Address Matched +977174599332017111708104378978994,"104, Mill Bank",Headcorn,,TN27 9RJ,9418961178,E,B,48,86,House,End-Terrace,2017-11-16,E07000110,E14000700,Kent,2017-11-17,marketed sale,40,84,372,79.0,6.3,66,1.4,62.0,62.0,1054.0,433.0,196.0,74.0,95.0,Unknown,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,6.0,6.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Poor,Poor,,,,"Flat, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"104, Mill Bank, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,England and Wales: before 1900,2017-11-17 08:10:43,owner-occupied,,,200003698205.0,Address Matched +47844731412020062119091827900253,Flat 13 Bellwood Court,Sutton Road,,ME15 8RB,2316175568,B,B,81,81,Flat,Mid-Terrace,2020-06-18,E07000110,E14000700,Kent,2020-06-21,rental (social),84,85,114,110.0,1.2,20,1.2,75.0,56.0,201.0,203.0,90.0,90.0,62.0,Single,Y,2nd,Y,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,67.0,0.0,From main system,Good,Good,(another dwelling below),NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 67% of fixed outlets,Good,Good,mains gas (not community),0.0,heated corridor,0.0,,,N,natural,"Flat 13 Bellwood Court, Sutton Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2007 onwards,2020-06-21 19:09:18,rental (social),,,10014306258.0,Address Matched +409894580022009120821533670088551,"14, Becksbourne Close",Penenden Heath,,ME14 2EF,5766860768,D,D,62,66,Bungalow,Detached,2009-12-08,E07000110,E14000804,Kent,2009-12-08,none of the above,54,58,288,263.0,4.1,55,3.8,74.0,37.0,537.0,512.0,89.0,89.0,73.82,Single,Y,NO DATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,4.0,4.0,0.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, smokeless fuel",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.35,0.0,N,natural,"14, Becksbourne Close, Penenden Heath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2009-12-08 21:53:36,unknown,,,200003707939.0,Address Matched +1181206313432014072817162393278507,40 Hayle Mill,Hayle Mill Road,,ME15 6JW,1743516278,B,B,81,83,Flat,Mid-Terrace,2014-07-28,E07000110,E14000804,Kent,2014-07-28,marketed sale,85,87,92,79.0,1.2,17,1.1,97.0,48.0,193.0,199.0,94.0,93.0,70.0,Single,Y,Ground,N,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,0.0,0.0,From main system,Good,Good,"Suspended, insulated (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,heated corridor,,,0.0,,natural,"40 Hayle Mill, Hayle Mill Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2014-07-28 17:16:23,owner-occupied,12.0,0.0,10022896960.0,Address Matched +448263639022010030305552773478140,Flat 29 Block C,Bodiam Court,,ME16 8LZ,4744333768,B,B,83,88,Flat,Mid-Terrace,2010-03-03,E07000110,E14000804,Kent,2010-03-03,rental (private),83,87,134,103.0,1.3,22,1.0,68.0,34.0,165.0,159.0,119.0,96.0,59.67,Single,Y,1st,N,3.0,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,0.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,heated corridor,,2.4,0.0,N,natural,"Flat 29 Block C, Bodiam Court",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2010-03-03 05:55:27,rental (private),,,200003721120.0,Address Matched +161721803752019060311285592710257,Stubblefield Farmhouse,Bunce Court Road,Otterden,ME13 0BZ,2720322568,F,A,33,93,House,Semi-Detached,2019-05-30,E07000110,E14000700,Kent,2019-06-03,marketed sale,32,93,416,29.0,9.6,67,0.3,143.0,84.0,1743.0,701.0,268.0,75.0,144.0,Single,Y,NODATA!,,,2107.0,45.0,double glazing installed before 2002,Normal,1.0,7.0,7.0,29.0,2.0,From main system,Poor,Poor,"Suspended, no insulation (assumed)",NO DATA!,,Partial double glazing,Poor,Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Average,Average,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 29% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"Stubblefield Farmhouse, Bunce Court Road, Otterden",Maidstone,Faversham and Mid Kent,FAVERSHAM,England and Wales: before 1900,2019-06-03 11:28:55,owner-occupied,,,200003715055.0,Address Matched +1754933899342019100112471868610598,"5, Whatman Drive",,,ME14 5FZ,359596678,B,B,83,83,Flat,Mid-Terrace,2019-10-01,E07000110,E14000700,Kent,2019-10-01,new dwelling,85,85,95,95.0,1.2,17,1.2,57.0,57.0,209.0,209.0,68.0,68.0,70.0,standard tariff,,top floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.17 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.26 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.14 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"5, Whatman Drive",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2019-10-01 12:47:18,owner-occupied,7.0,7.0,10093305873.0,Address Matched +1591634919542017112220200356532428,Clay Barn,Sutton Road,Langley,ME17 3ND,598715578,C,C,76,79,Bungalow,Detached,2017-11-22,E07000110,E14000700,Kent,2017-11-22,new dwelling,85,86,63,56.0,1.9,14,1.7,74.0,74.0,456.0,456.0,171.0,106.0,133.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Poor,Good,Average thermal transmittance 0.14 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.18 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.19 W/m-¦K,Good,Good,"Boiler and radiators, LPG",Poor,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,LPG - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Clay Barn, Sutton Road, Langley",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2017-11-22 20:20:03,owner-occupied,30.0,30.0,10093305534.0,Address Matched +1399350044812016010411465695060342,Keswick,Woodcock Lane,Grafty Green,ME17 2AZ,3218451478,G,B,15,82,Bungalow,Detached,2016-01-04,E07000110,E14000700,Kent,2016-01-04,marketed sale,26,81,570,95.0,8.4,99,1.4,124.0,62.0,2067.0,1083.0,227.0,102.0,85.0,dual,N,NODATA!,,,2401.0,78.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,0.0,0.0,Electric instantaneous at point of use,Very Poor,Poor,"Suspended, no insulation (assumed)",NO DATA!,,Partial double glazing,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 270 mm loft insulation",Good,Good,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,No low energy lighting,Very Poor,Very Poor,electricity (not community),0.0,NO DATA!,,,,N,natural,"Keswick, Woodcock Lane, Grafty Green",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2016-01-04 11:46:56,owner-occupied,,,200003703687.0,Address Matched +596861057632016031820513049968103,"12, Rycault Close",,,ME16 8SW,5369124868,C,B,69,89,Bungalow,Mid-Terrace,2016-03-18,E07000110,E14000804,Kent,2016-03-18,rental (social),70,89,246,59.0,1.9,43,0.5,39.0,39.0,325.0,302.0,125.0,72.0,43.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,75.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,2.35,,N,natural,"12, Rycault Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2016-03-18 20:51:30,rental (social),,,200003726145.0,Address Matched +c4396ceeac5f8e07934fd54c19ad3c246df606fc29381c75911e702645f2fe20,90 Grecian Street,,,ME14 2TS,10001619077,D,B,59,87,House,Mid-Terrace,2021-08-16,E07000110,E14000804,Kent,2021-08-16,assessment for green deal,54,86,318,76.0,3.5,56,0.9,60.0,60.0,605.0,352.0,85.0,58.0,62.0,Single,Y,,,,,100.0,double glazing installed during or after 2002,Normal,1.0,4.0,4.0,88.0,0.0,From main system,Good,Good,"To unheated space, no insulation (assumed)",,,Fully double glazed,Good,Good,"Sandstone or limestone, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,Low energy lighting in 88% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.55,0.0,N,natural,90 Grecian Street,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2021-08-16 16:09:45,Rented (private),8.0,,200003703274.0,Energy Assessor +c43caaeb2641638ce89765a1b07bba4d88ab21ee1ef1c25b2a7078a15ddadc64,65 Ash Grove,,,ME16 0AD,10001638158,D,B,64,84,House,Semi-Detached,2021-09-14,E07000110,E14000804,Kent,2021-09-16,marketed sale,58,82,246,92.0,4.0,43,1.5,74.0,74.0,636.0,437.0,126.0,77.0,91.0,Unknown,Y,,,,,100.0,double glazing installed during or after 2002,Normal,1.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.43,0.0,N,natural,65 Ash Grove,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2021-09-16 08:09:22,Owner-occupied,14.0,,200003658164.0,Energy Assessor +1447820299842016052618043347462768,"15, Barming Walk",Barming,,ME16 9AH,4822994478,B,B,89,90,House,NO DATA!,2016-05-26,E07000110,E14000804,Kent,2016-05-26,new dwelling,89,91,55,43.0,1.3,10,1.0,78.0,78.0,284.0,286.0,127.0,69.0,133.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.12 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.19 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"15, Barming Walk, Barming",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2016-05-26 18:04:33,unknown,25.0,25.0,10091195817.0,Address Matched +265719949922015061413481360648545,"1, Hubble Drive",,,ME15 8HQ,4678450668,D,C,67,77,House,Semi-Detached,2015-06-14,E07000110,E14000700,Kent,2015-06-14,FiT application,65,75,200,137.0,3.8,35,2.6,64.0,64.0,821.0,787.0,64.0,65.0,109.0,Single,Y,NODATA!,,,2110.0,100.0,double glazing installed during or after 2002,Normal,1.0,3.0,3.0,100.0,0.0,"From main system, plus solar",Very Good,Very Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and underfloor heating, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,Y,"mechanical, supply and extract","1, Hubble Drive",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2015-06-14 13:48:13,owner-occupied,,,200003684891.0,Address Matched +836980908752012091909151297920204,"9, Tollgate Way",Sandling,,ME14 3DF,2469871078,D,B,58,83,House,Detached,2012-09-13,E07000110,E14000700,Kent,2012-09-19,marketed sale,54,83,261,84.0,4.0,50,1.3,77.0,44.0,610.0,430.0,144.0,68.0,79.0,Single,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,27.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 27% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"9, Tollgate Way, Sandling",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2012-09-19 09:15:12,owner-occupied,11.0,3.0,200003672654.0,Address Matched +435774009022013090317050842778757,"24, Quarry Road",,,ME15 6UD,5481052768,D,C,67,75,Flat,Enclosed End-Terrace,2013-09-03,E07000110,E14000804,Kent,2013-09-03,rental (social),70,80,257,176.0,1.7,49,1.1,45.0,23.0,328.0,247.0,71.0,72.0,34.0,Single,Y,2nd,Y,,2106.0,100.0,double glazing installed before 2002,More Than Typical,0.0,2.0,2.0,0.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,unheated corridor,3.96,,0.0,,natural,"24, Quarry Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2013-09-03 17:05:08,rental (social),5.0,0.0,200003682046.0,Address Matched +798531419542020051417174193919108,"3, Clare Place",,,ME15 9ZF,586019968,B,B,83,84,House,Semi-Detached,2019-12-10,E07000110,E14000700,Kent,2020-05-14,rental (social),82,85,103,87.0,1.6,18,1.3,58.0,58.0,366.0,367.0,116.0,69.0,86.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Very Good,Very Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"3, Clare Place",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2007 onwards,2020-05-14 17:17:41,rental (social),,,10014311514.0,Address Matched +498235189142010061111164671609998,"41, Melrose Close",,,ME15 6BD,3189786768,B,B,87,88,Flat,NO DATA!,2010-06-11,E07000110,E14000804,Kent,2010-06-11,new dwelling,85,86,122,119.0,1.1,19,1.1,44.0,34.0,222.0,224.0,76.0,76.0,5.88,standard tariff,,top floor,,,,,NO DATA!,NO DATA!,,,,5.0,,From main system,Very Good,Very Good,Average thermal transmittance 0.20 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.21 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.10 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 71% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.2,,,NO DATA!,"41, Melrose Close",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2010-06-11 11:16:46,,7.0,5.0,10014307047.0,Address Matched +794317689262012052811033078688222,"1, The Brambles",Langley,,ME17 3GZ,2732878968,B,B,86,86,House,Detached,2012-05-28,E07000110,E14000700,Kent,2012-05-28,new dwelling,87,87,65,65.0,2.2,12,2.2,72.0,72.0,352.0,352.0,92.0,92.0,177.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,20.0,,From main system,Good,Good,Average thermal transmittance 0.11 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.20 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.13 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,,,NO DATA!,"1, The Brambles, Langley",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2012-05-28 11:03:30,,20.0,20.0,10014312969.0,Address Matched +929810039222013052012205088008887,"11, Square Hill Road",,,ME15 7TN,8844338078,D,C,68,79,House,Semi-Detached,2013-05-20,E07000110,E14000804,Kent,2013-05-20,marketed sale,65,76,169,106.0,4.4,33,2.8,70.0,70.0,758.0,655.0,93.0,94.0,134.0,dual,Y,NODATA!,,,2106.0,85.0,double glazing installed before 2002,Normal,2.0,8.0,8.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Mostly double glazing,Poor,Poor,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"11, Square Hill Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2013-05-20 12:20:50,owner-occupied,14.0,14.0,200003697289.0,Address Matched +903421942902020011411365604600488,1 Jubilee Cottage,Headcorn Road,Grafty Green,ME17 2AN,7950946078,E,A,48,98,House,Semi-Detached,2020-01-08,E07000110,E14000700,Kent,2020-01-14,rental (private),33,72,462,153.0,8.1,78,2.7,154.0,85.0,1338.0,892.0,333.0,122.0,104.0,Unknown,N,NODATA!,,,2401.0,100.0,double glazing installed during or after 2002,Normal,1.0,6.0,6.0,18.0,0.0,"Electric immersion, off-peak",Very Poor,Poor,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,Portable electric heaters (assumed),,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 18% of fixed outlets,Poor,Poor,electricity (not community),0.0,NO DATA!,,,,N,natural,"1 Jubilee Cottage, Headcorn Road, Grafty Green",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1900-1929,2020-01-14 11:36:56,rental (private),,,200003703664.0,Address Matched +519805449202010072819145975802288,2 Weavering Cottages,Ashford Road,Weavering,ME14 4AG,7282148768,E,D,49,56,House,Mid-Terrace,2010-07-28,E07000110,E14000700,Kent,2010-07-28,marketed sale,46,51,455,396.0,4.2,76,3.7,55.0,29.0,707.0,636.0,85.0,80.0,42.8,Unknown,Y,NO DATA!,,,2101.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,10.0,1.0,From main system,Very Good,Very Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Very Good,Very Good,No time or thermostatic control of room temperature,Very Poor,Very Poor,Low energy lighting in 10% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.3,0.0,N,natural,"2 Weavering Cottages, Ashford Road, Weavering",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2010-07-28 19:14:59,owner-occupied,,,200003687721.0,Address Matched +c459f1716b7fe00c6128d40467cb24668fbe3723d9f06cb27c1249fa31428e20,2 Beech Drive,,,ME16 0AH,10001436831,D,B,68,82,House,Semi-Detached,2021-09-09,E07000110,E14000804,Kent,2021-09-10,marketed sale,69,83,199,98.0,2.7,32,1.3,94.0,69.0,524.0,486.0,79.0,53.0,84.0,Unknown,Y,,,,,100.0,double glazing installed during or after 2002,Normal,2.0,4.0,4.0,64.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Average,Average,"Room heaters, wood logs",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 64% of fixed outlets,Good,Good,mains gas (not community),0.0,,,2.46,0.0,N,natural,2 Beech Drive,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2021-09-10 13:38:11,Owner-occupied,11.0,,200003658207.0,Energy Assessor +1717760744012019050116350092010962,"12, Carisbrooke Drive",,,ME16 0HY,9206424678,D,C,60,79,House,Detached,2019-05-01,E07000110,E14000804,Kent,2019-05-01,marketed sale,52,74,262,127.0,5.6,46,2.8,104.0,78.0,928.0,661.0,135.0,82.0,122.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,2.0,5.0,5.0,67.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,"Room heaters, mains gas",,,"Pitched, insulated at rafters",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 67% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"12, Carisbrooke Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2019-05-01 16:35:00,owner-occupied,,,200003656752.0,Address Matched +58568382502020020415514558800648,Flat 13,Orchard House,Hazlitt Drive,ME16 0YU,6549888568,C,C,79,79,Flat,Semi-Detached,2020-02-04,E07000110,E14000804,Kent,2020-02-04,marketed sale,83,83,127,127.0,1.2,22,1.2,55.0,55.0,232.0,232.0,97.0,97.0,56.0,Single,Y,3rd,Y,,2106.0,100.0,double glazing installed during or after 2002,Less Than Typical,0.0,2.0,2.0,100.0,0.0,From main system,Good,Good,(another dwelling below),NO DATA!,,Fully double glazed,Good,Good,"Timber frame, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,heated corridor,,,,N,"mechanical, extract only","Flat 13, Orchard House, Hazlitt Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2020-02-04 15:51:45,owner-occupied,,,10014309050.0,Address Matched +541215162112010091615401099900475,"47, College Court",Hayle Road,,ME15 6PB,4571299768,D,D,61,65,Flat,Semi-Detached,2010-09-16,E07000110,E14000804,Kent,2010-09-16,marketed sale,55,58,435,400.0,2.9,73,2.6,37.0,21.0,420.0,441.0,143.0,95.0,39.24,Single,Y,7th,Y,8.0,2104.0,100.0,double glazing installed before 2002,Normal,0.0,2.0,2.0,20.0,0.0,From main system,Very Good,Very Good,(other premises below),,,Fully double glazed,Average,Average,"System built, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Flat, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Very Good,Very Good,Programmer and room thermostat,Average,Average,Low energy lighting in 20% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,unheated corridor,0.9,2.27,0.0,N,natural,"47, College Court, Hayle Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2010-09-16 15:40:10,owner-occupied,,,200003693691.0,Address Matched +399900499222017022311224569178513,"1, Jamaica Terrace",Invicta Park,,ME14 2PE,1610999668,D,B,67,86,House,End-Terrace,2017-02-23,E07000110,E14000804,Kent,2017-02-23,rental (social),63,84,227,84.0,3.3,40,1.3,79.0,55.0,586.0,434.0,105.0,70.0,83.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,57.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,,,,"Flat, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 57% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"1, Jamaica Terrace, Invicta Park",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2017-02-23 11:22:45,rental (social),,,200003724066.0,Address Matched +178009690602008111815025459389588,"14, The Chantry",Headcorn,,TN27 9TF,9635693568,B,B,84,84,House,Mid-Terrace,2008-11-18,E07000110,E14000700,Kent,2008-11-18,marketed sale,83,83,121,121.0,1.5,20,1.5,39.0,39.0,208.0,208.0,69.0,69.0,76.8,Single,Y,NO DATA!,,,2107.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,95.0,0.0,From main system,Very Good,Very Good,"Solid, insulated (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, TRVs and bypass",Poor,Poor,Low energy lighting in 95% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.1,0.0,N,natural,"14, The Chantry, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,England and Wales: 2003-2006,2008-11-18 15:02:54,owner-occupied,,,10022896216.0,Address Matched +269394020222009042022522320408321,"121, South Park Road",,,ME15 7AN,2271280668,C,C,77,79,House,Mid-Terrace,2009-04-20,E07000110,E14000700,Kent,2009-04-20,rental (social),75,76,185,176.0,2.1,31,2.0,66.0,33.0,278.0,283.0,99.0,99.0,69.46,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,0.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.39,0.0,N,natural,"121, South Park Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2009-04-20 22:52:23,rental (social),,,200003715925.0,Address Matched +1017879469742013100215343214470598,73 Midhurst Court,Mote Road,,ME15 6EJ,4714164178,E,D,51,65,Flat,End-Terrace,2013-10-01,E07000110,E14000804,Kent,2013-10-02,none of the above,51,63,306,220.0,4.0,58,2.9,44.0,44.0,640.0,535.0,278.0,103.0,70.0,Single,Y,12th,Y,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,100.0,0.0,"Electric immersion, standard tariff",Very Poor,Very Poor,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Flat, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,2.43,,0.0,,natural,"73 Midhurst Court, Mote Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2013-10-02 15:34:32,rental (social),6.0,6.0,200003693387.0,Address Matched +1580205346412017100519510793039855,Rodnor,Maidstone Road,Headcorn,TN27 9RS,8573634578,E,D,43,64,House,Semi-Detached,2017-10-05,E07000110,E14000700,Kent,2017-10-05,marketed sale,42,63,319,176.0,6.3,57,3.5,67.0,67.0,1321.0,1017.0,155.0,76.0,109.0,Unknown,Y,NODATA!,,,2106.0,92.0,triple glazing,Normal,0.0,7.0,7.0,100.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Mostly triple glazing,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"Rodnor, Maidstone Road, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,England and Wales: 1930-1949,2017-10-05 19:51:07,owner-occupied,,,200003698225.0,Address Matched +1667643719962018101516405870058608,Flat 71,Brenchley House,123-135 Week Street,ME14 1FX,767160678,C,C,76,76,Flat,Mid-Terrace,2018-10-15,E07000110,E14000804,Kent,2018-10-15,new dwelling,82,82,202,202.0,0.9,36,0.9,22.0,22.0,152.0,152.0,92.0,92.0,24.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,Community scheme,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.30 W/m-¦K,Good,Good,,,,(other premises above),,,Community scheme,Good,Good,"Charging system linked to use of community heating, programmer and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,NO DATA!,,NO DATA!,,,,,NO DATA!,"Flat 71, Brenchley House, 123-135 Week Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2018-10-15 16:40:58,unknown,6.0,6.0,10094440747.0,Address Matched +c47dc108ea678f44bb5833ec8167c93e1e65be62b6f1242cc445da778cc86646,148 Kingfisher Meadow,,,ME16 8RD,10001393395,C,B,80,82,Flat,Semi-Detached,2021-08-18,E07000110,E14000804,Kent,2021-08-18,rental,70,72,223,210.0,2.1,38,2.0,60.0,60.0,217.0,180.0,178.0,178.0,56.0,dual,N,01,N,,,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,100.0,0.0,"Electric immersion, off-peak",Average,Poor,"To unheated space, insulated (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,Portable electric heaters (assumed),,,(another dwelling above),,,Electric storage heaters,Average,Very Poor,Automatic charge control,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,unheated corridor,6.217,2.296,0.0,N,natural,148 Kingfisher Meadow,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2021-08-18 18:00:33,Rented (private),16.0,,10022892359.0,Energy Assessor +502230616032010062022542038268607,"20, Cornwallis Avenue",Linton,,ME17 4BW,1788617768,C,C,77,78,Flat,Semi-Detached,2010-06-20,E07000110,E14000804,Kent,2010-06-20,rental (social),75,75,192,186.0,2.1,32,2.1,59.0,35.0,331.0,335.0,87.0,87.0,66.46,Single,Y,Ground,N,2.0,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,33.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 33% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.26,0.0,N,natural,"20, Cornwallis Avenue, Linton",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2010-06-20 22:54:20,rental (social),,,200003662995.0,Address Matched +185994981412015111313430997959654,"23, Hazelwood Drive",,,ME16 0EA,6444174568,D,B,64,84,House,Detached,2015-11-12,E07000110,E14000804,Kent,2015-11-13,marketed sale,59,81,250,100.0,3.5,44,1.5,79.0,52.0,598.0,484.0,152.0,73.0,80.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,5.0,5.0,50.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"23, Hazelwood Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2015-11-13 13:43:09,owner-occupied,,,200003691890.0,Address Matched +407946622132009120412454282068493,1 Shepherds Cottages,Water Lane,Hunton,ME15 0SG,2312450768,F,F,24,26,House,Semi-Detached,2009-12-03,E07000110,E14000804,Kent,2009-12-04,marketed sale,11,14,916,860.0,13.0,148,12.0,60.0,60.0,1145.0,1119.0,239.0,184.0,92.21,Unknown,N,NO DATA!,,,2107.0,0.0,not defined,Normal,1.0,3.0,3.0,71.0,1.0,"From main system, no cylinder thermostat",Poor,Very Poor,"Solid, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, coal",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, electric",Average,Poor,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 71% of fixed outlets,Very Good,Very Good,electricity - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.47,0.0,N,natural,"1 Shepherds Cottages, Water Lane, Hunton",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2009-12-04 12:45:42,owner-occupied,,,200003727715.0,Address Matched +58284348212020011013294328900156,Flat 12 Orchard House,Hazlitt Drive,,ME16 0YU,1659888568,C,C,80,80,Flat,Enclosed End-Terrace,2020-01-10,E07000110,E14000804,Kent,2020-01-10,rental (private),84,84,111,111.0,1.3,19,1.3,69.0,69.0,257.0,257.0,106.0,106.0,70.0,Single,Y,2nd,N,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,91.0,0.0,From main system,Good,Good,(another dwelling below),NO DATA!,,Fully double glazed,Good,Good,"Timber frame, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 91% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,heated corridor,,,,N,"mechanical, extract only","Flat 12 Orchard House, Hazlitt Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2020-01-10 13:29:43,rental (private),,,10014309049.0,Address Matched +920165052432014021909192285978407,17 Horwood Way,Harrietsham,,ME17 1FH,5725467078,B,B,89,89,House,End-Terrace,2014-02-19,E07000110,E14000700,Kent,2014-02-19,new dwelling,91,91,50,50.0,1.0,10,1.0,59.0,59.0,294.0,294.0,94.0,94.0,107.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.17 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"17 Horwood Way, Harrietsham",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2014-02-19 09:19:22,NO DATA!,12.0,12.0,10014314902.0,Address Matched +1404243179922016011906514811788276,"13, Kerry Hill Way",,,ME14 2GZ,7193781478,D,B,66,83,House,Mid-Terrace,2016-01-18,E07000110,E14000804,Kent,2016-01-19,rental (private),61,80,213,96.0,4.4,37,2.0,146.0,73.0,700.0,578.0,184.0,80.0,117.0,Single,Y,NODATA!,,,2107.0,100.0,double glazing installed during or after 2002,Normal,2.0,6.0,6.0,0.0,0.0,From main system,Average,Average,"Solid, limited insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"13, Kerry Hill Way",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2016-01-19 06:51:48,rental (private),,,10022896278.0,Address Matched +1336801499222015062508264537848565,"8, Larking Drive",Allington,,ME16 0UT,6397907378,D,B,67,87,House,Mid-Terrace,2015-06-24,E07000110,E14000804,Kent,2015-06-25,marketed sale,66,87,242,69.0,2.4,43,0.7,77.0,41.0,374.0,356.0,148.0,64.0,55.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,11.0,0.0,From main system,Good,Good,"Suspended, limited insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 11% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"8, Larking Drive, Allington",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2015-06-25 08:26:45,owner-occupied,,,200003662471.0,Address Matched +596675229502019102118275483412198,"2, Ebony Walk",,,ME16 8TY,2515024868,C,B,71,91,Bungalow,Mid-Terrace,2019-10-21,E07000110,E14000804,Kent,2019-10-21,rental (social),72,92,219,33.0,1.8,38,0.3,52.0,39.0,329.0,271.0,77.0,52.0,47.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,67.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, partial insulation (assumed)",Average,Average,,,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 67% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"2, Ebony Walk",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1976-1982,2019-10-21 18:27:54,rental (social),,,200003722138.0,Address Matched +1664440601832018091909372385978806,Flat 5,"24, Ashford Road",,ME14 5BH,675830678,D,D,63,63,Flat,NO DATA!,2018-09-18,E07000110,E14000804,Kent,2018-09-19,new dwelling,67,67,296,296.0,1.9,50,1.9,30.0,30.0,311.0,311.0,189.0,189.0,38.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,"Electric immersion, standard tariff",Very Poor,Poor,(other premises below),,,Single glazed,Very Poor,Very Poor,Average thermal transmittance 0.42 W/m+é-¦K,Good,Good,,,,Average thermal transmittance 0.18 W/m+é-¦K,Good,Good,"Room heaters, electric",Very Poor,Poor,Appliance thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"Flat 5, 24, Ashford Road",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2018-09-19 09:37:23,unknown,8.0,8.0,10091194980.0,Address Matched +222258242642020020910042159700758,2 Franklyn Cottages,Workhouse Lane,East Farleigh,ME15 0PZ,1618847568,D,B,67,91,House,Mid-Terrace,2020-02-05,E07000110,E14000804,Kent,2020-02-09,rental (private),47,75,473,193.0,3.5,80,1.4,49.0,49.0,494.0,359.0,155.0,87.0,44.0,dual,N,NODATA!,,,2404.0,100.0,double glazing installed before 2002,Normal,0.0,2.0,2.0,83.0,0.0,"Electric immersion, off-peak",Average,Poor,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Sandstone or limestone, as built, no insulation (assumed)",Very Poor,Very Poor,Portable electric heaters (assumed),,,"Pitched, 270 mm loft insulation",Good,Good,Electric storage heaters,Average,Poor,Controls for high heat retention storage heaters,Good,Good,Low energy lighting in 83% of fixed outlets,Very Good,Very Good,electricity (not community),0.0,NO DATA!,,,,N,natural,"2 Franklyn Cottages, Workhouse Lane, East Farleigh",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2020-02-09 10:04:21,rental (private),,,200003715449.0,Address Matched +1316553469502018012911401430582718,"44, Timbertops",,,ME5 8XQ,4561865378,E,B,54,84,House,Mid-Terrace,2018-01-29,E07000110,E14000700,Kent,2018-01-29,rental (private),46,82,369,103.0,4.5,65,1.3,50.0,50.0,688.0,429.0,216.0,67.0,69.0,Single,Y,NODATA!,,,2102.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,100.0,0.0,"From main system, no cylinder thermostat",Poor,Poor,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"44, Timbertops",Maidstone,Faversham and Mid Kent,CHATHAM,England and Wales: 1967-1975,2018-01-29 11:40:14,rental (private),,,200003673777.0,Address Matched +383101580642009101713374963819468,"43, Church Street",Tovil,,ME15 6RB,1655188668,E,D,51,55,House,End-Terrace,2009-10-16,E07000110,E14000804,Kent,2009-10-17,rental (private),44,47,404,376.0,5.5,68,5.1,61.0,40.0,828.0,789.0,101.0,95.0,54.0,Single,Y,NO DATA!,,,2107.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,50.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Roof room(s), no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Poor,Poor,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.34,0.0,N,natural,"43, Church Street, Tovil",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2009-10-17 13:37:49,rental (private),,,200003664648.0,Address Matched +848072557212012102017464195229507,"58, Stanley Close",Staplehurst,,TN12 0TA,5715752078,D,B,68,83,House,Semi-Detached,2012-10-20,E07000110,E14000804,Kent,2012-10-20,marketed sale,67,83,177,80.0,3.3,34,1.5,112.0,56.0,515.0,458.0,109.0,73.0,97.0,dual,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"58, Stanley Close, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1967-1975,2012-10-20 17:46:41,owner-occupied,13.0,0.0,200003678756.0,Address Matched +1715001094712019041808354790910362,"10, Lenfield Avenue",,,ME14 5DU,3257404678,C,B,69,85,House,Semi-Detached,2019-04-15,E07000110,E14000804,Kent,2019-04-18,marketed sale,65,82,198,86.0,3.6,35,1.6,90.0,70.0,595.0,464.0,103.0,70.0,102.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,7.0,7.0,71.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 71% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"10, Lenfield Avenue",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2019-04-18 08:35:47,owner-occupied,,,200003689380.0,Address Matched +16472980142009012210124448810828,219 Wallis Place,Hart Street,,ME16 8FF,3194088468,B,B,89,89,Flat,Detached,2009-01-02,E07000110,E14000804,Kent,2009-01-22,new dwelling,89,89,107,107.0,0.7,0,0.7,18.0,18.0,107.0,107.0,52.0,52.0,0.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,6.0,,SAP05:Hot-Water,,,(other premises below),,,Fully double glazed,Good,Good,Average thermal transmittance 0.27 W/m²K,Very Good,Very Good,SAP05:Secondary-Heating,,,Average thermal transmittance 0.00 W/m²K,Very Good,Very Good,SAP05:Main-Heating,,,SAP05:Main-Heating-Controls,,,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,,,,NO DATA!,"219 Wallis Place, Hart Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2009-01-22 10:12:44,,6.0,6.0,10022900827.0,Address Matched +282296869812009051521380409910364,"The Annex, Court Lodge Barn",Lower Road,East Farleigh,ME15 0JL,3412991668,C,B,79,81,Bungalow,Detached,2009-05-15,E07000110,E14000804,Kent,2009-05-15,rental (private),78,79,171,160.0,1.8,28,1.7,65.0,33.0,251.0,256.0,79.0,79.0,39.9,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,0.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",,,Fully double glazed,Good,Good,"Timber frame, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated at rafters",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.3,0.0,N,natural,"The Annex, Court Lodge Barn, Lower Road, East Farleigh",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2009-05-15 21:38:04,rental (private),,,200003673477.0,Address Matched +1619059119262018032716191017538798,"27, Hollingworth Road",,,ME15 9HN,9107117578,B,B,83,83,Flat,Detached,2018-03-27,E07000110,E14000700,Kent,2018-03-27,new dwelling,87,87,101,101.0,0.9,18,0.9,37.0,37.0,155.0,155.0,89.0,89.0,51.0,standard tariff,,ground floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.19 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"27, Hollingworth Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2018-03-27 16:19:10,unknown,10.0,10.0,10093304724.0,Address Matched +264101222962020011308281310208980,Flat 3 Wisteria House,Westmorland Road,,ME15 8JF,8180240668,C,C,76,77,Flat,Detached,2020-01-10,E07000110,E14000700,Kent,2020-01-13,rental (social),80,81,168,161.0,1.2,30,1.2,64.0,40.0,213.0,215.0,84.0,84.0,42.0,Single,Y,1st,N,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,2.0,2.0,40.0,0.0,From main system,Very Good,Good,(another dwelling below),NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 40% of fixed outlets,Average,Average,mains gas (not community),0.0,unheated corridor,6.57,,,N,natural,"Flat 3 Wisteria House, Westmorland Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1996-2002,2020-01-13 08:28:13,rental (social),,,200003685578.0,Address Matched +459035455932011050909491576068105,"21, Trinity Way",,,ME15 9FY,5596114768,C,B,80,81,House,End-Terrace,2011-05-09,E07000110,E14000700,Kent,2011-05-09,new dwelling,84,85,102,98.0,1.3,19,1.3,51.0,38.0,276.0,278.0,42.0,42.0,70.46,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,7.0,,"From main system, plus solar",Very Good,Very Good,Average thermal transmittance 0.18 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m?K,Very Good,Very Good,"Room heaters, electric",,,Average thermal transmittance 0.10 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in 64% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.31,,,NO DATA!,"21, Trinity Way",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2011-05-09 09:49:15,,11.0,7.0,10014311448.0,Address Matched +253051999922010101511470519448070,"38, Restharrow Road",Weavering,,ME14 5UH,7174979568,D,C,67,71,House,Detached,2010-10-14,E07000110,E14000700,Kent,2010-10-15,marketed sale,63,67,220,196.0,5.2,37,4.6,107.0,77.0,751.0,675.0,155.0,155.0,141.7,Single,Y,NO DATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,0.0,6.0,6.0,60.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Very Good,Very Good,Programmer and room thermostat,Average,Average,Low energy lighting in 60% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.36,0.0,N,natural,"38, Restharrow Road, Weavering",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2010-10-15 11:47:05,owner-occupied,,,200003687850.0,Address Matched +17295489702011032510590943892058,135 Wallis Place,Hart Street,,ME16 8FD,4717088468,B,B,87,87,Flat,NO DATA!,2011-03-25,E07000110,E14000804,Kent,2011-03-25,new dwelling,86,86,111,111.0,1.0,18,1.0,31.0,31.0,192.0,192.0,90.0,90.0,57.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,6.0,,From main system,Very Good,Very Good,Average thermal transmittance 0.19 W/m?K,Very Good,Very Good,Fully double glazed,Good,Good,Average thermal transmittance 0.28 W/m?K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,,,NO DATA!,"135 Wallis Place, Hart Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2011-03-25 10:59:09,,6.0,6.0,10022900739.0,Address Matched +657516159062011080913123798348289,Flat 3 Folkestone House,Fontwell Close,,ME15 8XB,8979568868,E,D,48,68,Flat,NO DATA!,2011-08-04,E07000110,E14000700,Kent,2011-08-09,rental (social),40,54,631,448.0,3.8,112,2.7,46.0,23.0,173.0,233.0,472.0,170.0,33.89,dual,N,Ground,N,,2402.0,100.0,double glazing installed before 2002,Normal,0.0,2.0,2.0,0.0,0.0,"Electric immersion, off-peak",Very Poor,Very Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,(another dwelling above),,,Electric storage heaters,Average,Very Poor,Automatic charge control,Average,Average,No low energy lighting,Very Poor,Very Poor,electricity (not community),0.0,no corridor,,2.32,0.0,,natural,"Flat 3 Folkestone House, Fontwell Close",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2011-08-09 13:12:37,rental (social),3.0,0.0,200003681278.0,Address Matched +52924820902009013014391953712018,"29a, Brewer Street",,,ME14 1RU,1903427568,D,D,57,65,Flat,Semi-Detached,2009-01-29,E07000110,E14000804,Kent,2009-01-30,marketed sale,51,59,362,303.0,4.2,60,3.5,73.0,37.0,585.0,519.0,92.0,80.0,48.166,dual,Y,1st,Y,3.0,2104.0,0.0,single glazing,Normal,0.0,3.0,3.0,0.0,0.0,From main system,Good,Good,(other premises below),,,Single glazed,Very Poor,Very Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Poor,Poor,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.35,0.0,N,natural,"29a, Brewer Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2009-01-30 14:39:19,owner-occupied,,,200003733274.0,Address Matched +c4c3d43804373e32901d0dd970642f7e3aaf1175a741fd11f1155e4ad6abf5fa,HOLLY COTTAGE,GREEN HILL,OTHAM,ME15 8RR,10001700494,F,B,35,84,House,Detached,2021-07-29,E07000110,E14000700,Kent,2021-07-30,marketed sale,34,80,401,75.0,5.6,95,1.4,94.0,56.0,764.0,327.0,130.0,68.0,59.0,dual,N,,,,,100.0,double glazing installed during or after 2002,Normal,1.0,5.0,5.0,33.0,0.0,From main system,Average,Average,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, oil",Average,Average,Programmer and at least two room thermostats,Good,Good,Low energy lighting in 33% of fixed outlets,Average,Average,oil (not community),0.0,,,2.1,0.0,N,natural,"HOLLY COTTAGE, GREEN HILL, OTHAM",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2021-07-30 10:49:07,Owner-occupied,9.0,,200003690566.0,Energy Assessor +c4d58b9246bfad9c5e212d1479c9bcfd27a3863fd0b3fa357572677aff20f9e7,12 Adam Close,Coxheath,,ME17 4QU,10001365249,D,B,56,86,House,Semi-Detached,2021-08-03,E07000110,E14000804,Kent,2021-08-10,marketed sale,48,84,325,85.0,5.1,57,1.4,107.0,71.0,654.0,420.0,277.0,69.0,88.0,Unknown,Y,,,,,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,50.0,0.0,"From main system, no cylinder thermostat",Very Poor,Very Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Average,Average,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,,,2.4,0.0,N,natural,"12 Adam Close, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2021-08-10 07:42:14,Owner-occupied,18.0,,200003714950.0,Energy Assessor +181478418552008110415485707289954,"2, Tattershall Road",,,ME15 6GD,9499873568,C,B,75,81,House,Semi-Detached,2008-10-29,E07000110,E14000804,Kent,2008-11-04,marketed sale,73,79,191,154.0,2.4,31,1.9,72.0,36.0,264.0,237.0,103.0,90.0,75.32,Single,Y,NO DATA!,,,2103.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,0.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 250mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Room thermostat only,Poor,Poor,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.39,0.0,N,natural,"2, Tattershall Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2008-11-04 15:48:57,owner-occupied,,,10014307216.0,Address Matched +1802718142442020061111494571009898,"3, Blenheim Place",Headcorn,,TN27 9GA,7448140778,B,A,85,92,House,Detached,2020-06-11,E07000110,E14000700,Kent,2020-06-11,new dwelling,85,92,77,33.0,1.8,14,0.8,91.0,91.0,293.0,293.0,80.0,80.0,130.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.19 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.28 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.14 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"3, Blenheim Place, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,NO DATA!,2020-06-11 11:49:45,unknown,15.0,15.0,10094443967.0,Address Matched +351800580262009082514132736658131,Flat 6,2A Brunswick Street East,,ME15 7UX,3376856668,D,C,62,77,Flat,NO DATA!,2009-08-25,E07000110,E14000804,Kent,2009-08-25,rental (private),70,69,282,285.0,2.2,42,2.2,33.0,33.0,360.0,178.0,115.0,115.0,51.26,dual,N,2nd,Y,3.0,2601.0,100.0,double glazing installed during or after 2002,Less Than Typical,0.0,2.0,2.0,100.0,0.0,"Electric immersion, off-peak",Average,Poor,(other premises below),,,Fully double glazed,Good,Good,"System built, as built, insulated (assumed)",Good,Good,,,,"Flat, insulated",Good,Good,"Room heaters, electric",Very Poor,Poor,No thermostatic control of room temperature,Poor,Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity - this is for backwards compatibility only and should not be used,0.0,unheated corridor,7.2,2.37,0.0,N,natural,"Flat 6, 2A Brunswick Street East",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2009-08-25 14:13:27,rental (private),,,10014309133.0,Address Matched +356134047952009090820363308010761,Cross Keys Cottage,The Street,Bearsted,ME14 4HH,7101786668,F,E,38,47,House,Semi-Detached,2009-09-08,E07000110,E14000700,Kent,2009-09-08,marketed sale,35,43,422,353.0,10.0,71,8.6,140.0,73.0,1476.0,1290.0,151.0,123.0,116.75,Single,Y,NO DATA!,,,2106.0,21.0,double glazing installed before 2002,Normal,2.0,6.0,6.0,8.0,2.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Partial double glazing,Very Poor,Very Poor,"Timber frame, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 8% of fixed outlets,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.31,0.0,N,natural,"Cross Keys Cottage, The Street, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2009-09-08 20:36:33,owner-occupied,,,10022897617.0,Address Matched +89536688612019032207454694210046,"6, Adbert Drive",East Farleigh,,ME15 0DE,608846468,D,C,58,78,House,Detached,2019-03-20,E07000110,E14000804,Kent,2019-03-22,marketed sale,50,72,281,144.0,6.1,50,3.2,96.0,77.0,994.0,741.0,157.0,74.0,123.0,Unknown,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,1.0,7.0,7.0,75.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"6, Adbert Drive, East Farleigh",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1991-1995,2019-03-22 07:45:46,owner-occupied,,,200003720568.0,Address Matched +499883556032010061521591515968107,Tyn y Coed,Weavering Street,Weavering,ME14 5JQ,5735107768,E,C,46,74,House,Detached,2010-06-15,E07000110,E14000700,Kent,2010-06-15,marketed sale,40,70,369,173.0,10.0,61,4.7,139.0,86.0,1299.0,668.0,344.0,148.0,162.97,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,6.0,6.0,39.0,1.0,"From main system, no cylinder thermostat",Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 75 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 39% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.41,0.0,N,natural,"Tyn y Coed, Weavering Street, Weavering",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2010-06-15 21:59:15,owner-occupied,,,200003688030.0,Address Matched +c50b909d8a06e5dc25502b32ade2c53f4e11550d1c7434284705798a81edf2d8,62 Kingfisher Meadow,,,ME16 8RB,10001571999,C,B,69,83,Flat,Mid-Terrace,2021-09-23,E07000110,E14000804,Kent,2021-09-23,rental,72,71,206,211.0,1.9,35,2.0,53.0,59.0,311.0,166.0,339.0,172.0,55.0,Unknown,N,03,Y,,,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,"Electric immersion, standard tariff",Very Poor,Poor,(another dwelling below),,,Fully double glazed,Good,Good,"System built, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Room heaters, electric",Very Poor,Poor,Programmer and appliance thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,heated corridor,,2.8,0.0,N,natural,62 Kingfisher Meadow,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007-2011,2021-09-23 13:41:25,Rented (social),29.0,,10022892273.0,Energy Assessor +1188533269642014081116283224649998,"17, Flaxman Drive",,,ME16 0RU,7663466278,E,B,46,88,Bungalow,Semi-Detached,2014-08-11,E07000110,E14000804,Kent,2014-08-11,marketed sale,44,90,401,45.0,4.0,77,0.5,69.0,34.0,647.0,338.0,236.0,80.0,52.0,Single,Y,NODATA!,,,2102.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,0.0,0.0,"From main system, no cylinder thermostat",Poor,Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"17, Flaxman Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2014-08-11 16:28:32,owner-occupied,6.0,0.0,200003659449.0,Address Matched +589972969762015113017144133008745,Oakfield House,Lenham Road,Kingswood,ME17 1LZ,4341663868,C,C,69,78,House,Detached,2015-11-30,E07000110,E14000700,Kent,2015-11-30,marketed sale,62,72,174,122.0,7.6,32,5.4,130.0,130.0,1327.0,1143.0,190.0,139.0,240.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,9.0,9.0,75.0,1.0,From main system,Good,Good,"Solid, limited insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"Oakfield House, Lenham Road, Kingswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1996-2002,2015-11-30 17:14:41,owner-occupied,,,200003654916.0,Address Matched +684675138212011093012184295790994,"1, Goldthorne Close",,,ME14 5NX,9491850968,D,D,59,60,Maisonette,Semi-Detached,2011-09-30,E07000110,E14000804,Kent,2011-09-30,marketed sale,56,56,289,284.0,3.7,56,3.6,65.0,41.0,638.0,644.0,58.0,58.0,65.6,dual,Y,Ground,N,,2601.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,40.0,0.0,Gas instantaneous at point of use,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,(another dwelling above),,,"Room heaters, mains gas",Average,Average,No thermostatic control of room temperature,Poor,Poor,Low energy lighting in 40% of fixed outlets,Average,Average,mains gas (not community),0.0,no corridor,,2.369,0.0,,natural,"1, Goldthorne Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2011-09-30 12:18:42,owner-occupied,5.0,2.0,200003716143.0,Address Matched +443636259262010022317231303678430,"5, Buckland Rise",,,ME16 0YN,3084503768,B,B,86,86,Flat,End-Terrace,2010-02-23,E07000110,E14000804,Kent,2010-02-23,rental (private),85,85,117,117.0,1.2,19,1.2,41.0,41.0,197.0,197.0,83.0,83.0,61.74,Single,Y,1st,N,4.0,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,83.0,0.0,From main system,Very Good,Very Good,(other premises below),,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 83% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,unheated corridor,9.8,2.5,0.0,N,natural,"5, Buckland Rise",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2010-02-23 17:23:13,rental (private),,,10014308200.0,Address Matched +c51b50b0fa7880c7d09bfa302f8539e175cdc28b27ed11c8b094d7a3728c93ac,7 Bodsham Crescent,Bearsted,,ME15 8NL,10001573632,D,C,60,75,House,Detached,2021-09-06,E07000110,E14000700,Kent,2021-09-06,marketed sale,53,69,282,176.0,4.5,50,2.8,99.0,72.0,712.0,666.0,126.0,77.0,90.0,Single,Y,,,,,100.0,double glazing installed during or after 2002,Normal,1.0,5.0,5.0,63.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, mains gas",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 63% of fixed outlets,Good,Good,mains gas (not community),0.0,,,1.0,0.0,N,natural,"7 Bodsham Crescent, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2021-09-06 19:59:18,Rented (private),16.0,,200003693027.0,Energy Assessor +997951009222013082917410183718217,"10, Lyngs Close",Yalding,,ME18 6JS,1899023178,D,C,58,70,Bungalow,Semi-Detached,2013-08-29,E07000110,E14000804,Kent,2013-08-29,marketed sale,54,65,242,169.0,4.4,47,3.2,88.0,53.0,754.0,731.0,121.0,121.0,95.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,33.0,0.0,From main system,Very Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 33% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"10, Lyngs Close, Yalding",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2013-08-29 17:41:01,owner-occupied,9.0,3.0,200003660264.0,Address Matched +c52903b56f18929fded79ca917189093e91a4c9d9a23d768282ad8cc65fc992d,53 Fennel Close,,,ME16 0FG,10001511369,C,C,73,77,Flat,End-Terrace,2021-08-19,E07000110,E14000804,Kent,2021-08-19,marketed sale,72,78,184,146.0,2.2,32,1.8,65.0,65.0,332.0,279.0,135.0,106.0,69.0,Single,Y,00,N,,,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,"Suspended, limited insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,6.0,2.28,0.0,N,natural,53 Fennel Close,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2021-08-19 12:58:56,Owner-occupied,7.0,,200003722389.0,Energy Assessor +839949637212012100111295799029906,"24, Granary Close",Weavering,,ME14 5UB,9679791078,D,B,60,81,House,Detached,2012-10-01,E07000110,E14000700,Kent,2012-10-01,marketed sale,55,79,227,95.0,5.1,44,2.2,76.0,58.0,809.0,564.0,145.0,72.0,117.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,7.0,7.0,70.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 70% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"24, Granary Close, Weavering",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2012-10-01 11:29:57,owner-occupied,10.0,7.0,200003689171.0,Address Matched +274650870262009042809125321148981,Flat 110 Scotney Gardens,St. Peters Street,,ME16 0GT,8207711668,B,B,83,85,Flat,Detached,2009-04-24,E07000110,E14000804,Kent,2009-04-28,rental (private),80,80,168,163.0,1.7,25,1.7,59.0,39.0,89.0,91.0,126.0,126.0,68.0,dual,N,2nd,N,4.0,2402.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,50.0,0.0,"Electric immersion, off-peak",Average,Poor,(other premises below),,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,(another dwelling above),,,Electric storage heaters,Average,Poor,Automatic charge control,Average,Average,Low energy lighting in 50% of fixed outlets,Good,Good,electricity - this is for backwards compatibility only and should not be used,0.0,heated corridor,,2.31,0.0,N,natural,"Flat 110 Scotney Gardens, St. Peters Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2009-04-28 09:12:53,rental (private),,,10022893478.0,Address Matched +163983701412008101416561505989854,Flat 170 Scotney Gardens,St. Peters Street,,ME16 0GT,8489152568,B,B,84,84,Flat,Semi-Detached,2008-10-14,E07000110,E14000804,Kent,2008-10-14,marketed sale,79,79,207,207.0,1.4,31,1.4,24.0,24.0,91.0,91.0,100.0,100.0,45.6,Unknown,N,3rd,N,5.0,2401.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,100.0,0.0,"Electric immersion, standard tariff",Poor,Poor,(other premises below),,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,(another dwelling above),,,Electric storage heaters,Poor,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity - this is for backwards compatibility only and should not be used,0.0,heated corridor,,2.31,0.0,N,natural,"Flat 170 Scotney Gardens, St. Peters Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2008-10-14 16:56:15,owner-occupied,,,10022893537.0,Address Matched +1489537720632016101919025651978592,"18, Emsworth Grove",,,ME14 5SE,2241597478,C,B,69,88,House,Semi-Detached,2016-10-19,E07000110,E14000804,Kent,2016-10-19,marketed sale,67,88,211,60.0,2.7,37,0.8,99.0,49.0,411.0,354.0,151.0,72.0,72.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,2.29,,N,natural,"18, Emsworth Grove",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1976-1982,2016-10-19 19:02:56,owner-occupied,,,200003672893.0,Address Matched +1231668188552014110507405196049124,"12, Hollingworth Road",,,ME15 9HG,1487869278,D,C,61,74,Flat,Semi-Detached,2014-11-04,E07000110,E14000700,Kent,2014-11-05,marketed sale,59,76,265,157.0,2.9,51,1.7,38.0,38.0,466.0,321.0,215.0,119.0,57.0,Single,Y,Ground,N,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,100.0,1.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,no corridor,,,0.0,,natural,"12, Hollingworth Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2014-11-05 07:40:51,owner-occupied,7.0,7.0,200003682210.0,Address Matched +1731199929602019062313101860512798,"3, Blendon Road",,,ME14 5QA,9691225678,D,C,56,74,House,Semi-Detached,2019-06-21,E07000110,E14000804,Kent,2019-06-23,rental (private),52,70,285,159.0,4.9,50,2.7,77.0,77.0,890.0,738.0,152.0,80.0,97.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,3.0,6.0,6.0,87.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,"Pitched, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 87% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"3, Blendon Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2019-06-23 13:10:18,rental (private),,,200003671428.0,Address Matched +448695489022010030509421183378700,Flat 14 Sweet Briar Court,"80, London Road",,ME16 0DR,878833768,C,B,80,84,Flat,Enclosed End-Terrace,2010-03-03,E07000110,E14000804,Kent,2010-03-05,rental (private),80,83,167,140.0,1.5,28,1.3,63.0,32.0,233.0,224.0,90.0,79.0,55.88,Single,Y,3rd,Y,4.0,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,0.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Good,Good,"System built, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,unheated corridor,1.43,2.3,0.0,N,natural,"Flat 14 Sweet Briar Court, 80, London Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2010-03-05 09:42:11,rental (private),,,10014307943.0,Address Matched +939531119262017092220342929828043,"62, King Edward Road",,,ME15 6PJ,4283109078,D,C,61,71,Flat,Mid-Terrace,2017-09-22,E07000110,E14000804,Kent,2017-09-22,rental (private),58,72,329,217.0,2.6,60,1.7,59.0,32.0,485.0,329.0,77.0,77.0,43.0,Single,Y,Ground,N,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,17.0,2.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, dual fuel (mineral and wood)",,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 17% of fixed outlets,Poor,Poor,mains gas (not community),0.0,unheated corridor,3.5,,,N,natural,"62, King Edward Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2017-09-22 20:34:29,rental (private),,,200003665453.0,Address Matched +596938929542017070612172484430658,1 Council Houses,Howland Road,Marden,TN12 9ES,6582024868,D,B,67,82,House,Semi-Detached,2017-07-05,E07000110,E14000804,Kent,2017-07-06,rental (social),64,79,224,113.0,3.2,39,1.7,98.0,55.0,508.0,488.0,136.0,80.0,81.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,4.0,4.0,22.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 22% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"1 Council Houses, Howland Road, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1950-1966,2017-07-06 12:17:24,rental (social),,,200003710830.0,Address Matched +291706547512013100309100593079767,14 Midhurst Court,Mote Road,,ME15 6EH,7769732668,D,B,68,81,Flat,End-Terrace,2013-10-01,E07000110,E14000804,Kent,2013-10-03,none of the above,72,84,176,99.0,2.2,32,1.3,44.0,44.0,314.0,231.0,278.0,106.0,70.0,Single,Y,2nd,N,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,100.0,0.0,"Electric immersion, standard tariff",Very Poor,Very Poor,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,2.43,,0.0,,natural,"14 Midhurst Court, Mote Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2013-10-03 09:10:05,rental (social),6.0,6.0,200003693320.0,Address Matched +518613039042010081610540977809968,"25b, Brewer Street",,,ME14 1RU,8041038768,B,B,82,83,Flat,End-Terrace,2010-08-16,E07000110,E14000804,Kent,2010-08-16,rental (private),81,81,193,190.0,1.2,32,1.1,25.0,19.0,224.0,225.0,69.0,69.0,36.2,Single,Y,1st,N,3.0,2107.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,71.0,0.0,From main system,Very Good,Very Good,(other premises below),,,Fully double glazed,Good,Good,"Solid brick, with internal insulation",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 71% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,unheated corridor,7.2,2.3,0.0,N,natural,"25b, Brewer Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2010-08-16 10:54:09,rental (private),,,10014309476.0,Address Matched +627701379962011051308465646328659,"22, Pinewood Drive",,,ME5 8XU,5464756868,D,C,59,75,House,Mid-Terrace,2011-05-12,E07000110,E14000700,Kent,2011-05-13,marketed sale,57,77,286,149.0,3.5,55,1.8,50.0,35.0,472.0,300.0,201.0,102.0,64.4,Single,Y,NODATA!,,,2102.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,57.0,0.0,"From main system, no cylinderstat",Poor,Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, partial insulation (assumed)",Average,Average,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Average,"Programmer, no room thermostat",Very Poor,Very Poor,Low energy lighting in 57% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,2.4,0.0,,natural,"22, Pinewood Drive",Maidstone,Faversham and Mid Kent,CHATHAM,England and Wales: 1976-1982,2011-05-13 08:46:56,owner-occupied,7.0,4.0,200003673563.0,Address Matched +1509096231612017010509061893030841,Flat 1,12 Tonbridge Road,,ME16 8RP,8142139478,C,C,79,79,Flat,Semi-Detached,2017-01-05,E07000110,E14000804,Kent,2017-01-05,new dwelling,84,84,142,142.0,0.8,24,0.8,31.0,31.0,159.0,159.0,100.0,100.0,31.0,standard tariff,,ground floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Average,Good,Average thermal transmittance 0.63 W/m-¦K,Poor,Poor,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.45 W/m-¦K,Good,Good,,,,(other premises above),,,"Ground source heat pump, radiators, electric",Good,Very Good,Programmer and room thermostat,Average,Average,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"Flat 1, 12 Tonbridge Road",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2017-01-05 09:06:18,unknown,4.0,3.0,10093303696.0,Address Matched +470883764812010061019595599900671,"8, Ware Street",Bearsted,,ME14 4PQ,6125494768,E,D,46,57,House,Semi-Detached,2010-06-10,E07000110,E14000700,Kent,2010-06-10,marketed sale,42,52,589,465.0,3.9,99,3.1,40.0,20.0,629.0,531.0,88.0,66.0,46.24,Single,Y,NO DATA!,,,2107.0,0.0,not defined,Normal,1.0,3.0,3.0,0.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.37,0.0,N,natural,"8, Ware Street, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2010-06-10 19:59:55,owner-occupied,,,200003693797.0,Address Matched +391965209022016070722191399938196,"3, Wykeham Grove",Leeds,,ME17 1RP,9920049668,D,A,68,121,Bungalow,Semi-Detached,2016-07-07,E07000110,E14000700,Kent,2016-07-07,rental (social),67,119,277,-198.0,2.1,49,-1.4,41.0,31.0,360.0,305.0,122.0,71.0,42.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,2.0,2.0,67.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 67% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,2.33,,N,natural,"3, Wykeham Grove, Leeds",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2016-07-07 22:19:13,rental (social),,,200003698431.0,Address Matched +1660782619062018090509405290548618,"8, Francis Lane",,,ME15 9EG,1987110678,C,B,73,87,House,Mid-Terrace,2018-09-04,E07000110,E14000700,Kent,2018-09-05,marketed sale,72,87,192,74.0,2.2,34,0.9,60.0,60.0,380.0,352.0,90.0,60.0,66.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,78.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Timber frame, as built, insulated (assumed)",Good,Good,,,,"Pitched, limited insulation (assumed)",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 78% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"8, Francis Lane",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1976-1982,2018-09-05 09:40:52,owner-occupied,,,200003681442.0,Address Matched +399589176732013062512241045268500,"20a, Lenham Road",Platts Heath,,ME17 2NY,7005599668,E,C,45,71,House,Detached,2013-06-20,E07000110,E14000700,Kent,2013-06-25,marketed sale,54,77,200,88.0,5.2,45,2.5,77.0,77.0,1184.0,862.0,359.0,139.0,117.0,Unknown,N,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,6.0,6.0,71.0,0.0,From main system,Poor,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, LPG",Poor,Average,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 71% of fixed outlets,Very Good,Very Good,LPG (not community),0.0,NO DATA!,,,0.0,,natural,"20a, Lenham Road, Platts Heath",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2013-06-25 12:24:10,owner-occupied,21.0,15.0,200003703843.0,Address Matched +252658198132009083117174407268704,"34, Maidstone Road",Lenham,,ME17 2QJ,9407779568,E,D,53,55,Bungalow,Detached,2009-08-27,E07000110,E14000700,Kent,2009-08-31,marketed sale,52,53,291,282.0,8.6,45,8.4,193.0,97.0,1296.0,1314.0,182.0,182.0,87.5,Unknown,Y,NO DATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,6.0,6.0,0.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, wood logs",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.51,0.0,N,natural,"34, Maidstone Road, Lenham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2009-08-31 17:17:44,owner-occupied,,,200003711605.0,Address Matched +c5a47d098f9bea9d9aa79397cd29abcafa4d3b7c9f44c977cf7e029d66b2ac06,1 COBFIELDS,CHART SUTTON,,ME17 3SH,10001323345,D,B,63,87,Bungalow,Semi-Detached,2021-08-05,E07000110,E14000700,Kent,2021-08-05,rental,61,87,317,86.0,2.6,56,0.7,66.0,42.0,389.0,330.0,139.0,66.0,46.0,Single,Y,,,,,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,40.0,0.0,"From main system, no cylinder thermostat",Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 40% of fixed outlets,Average,Average,mains gas (not community),0.0,,,2.36,0.0,N,natural,"1 COBFIELDS, CHART SUTTON",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2021-08-05 15:55:50,Rented (social),5.0,,200003721752.0,Energy Assessor +1295392022212016090710032592260236,"43, Hanover Road",Coxheath,,ME17 4QG,2601224378,D,C,66,80,House,End-Terrace,2016-08-25,E07000110,E14000804,Kent,2016-09-07,ECO assessment,57,74,215,125.0,7.0,38,4.1,91.0,91.0,1328.0,951.0,104.0,104.0,185.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,2.0,7.0,7.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,2.52,,N,natural,"43, Hanover Road, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2016-09-07 10:03:25,owner-occupied,,,200003714670.0,Address Matched +910000953152013041314344999970608,New Barn Farm,Park Lane,Boughton Monchelsea,ME17 4JJ,6866396078,D,B,67,85,Bungalow,Detached,2013-04-13,E07000110,E14000700,Kent,2013-04-13,marketed sale,74,91,131,20.0,2.3,28,0.6,99.0,50.0,473.0,487.0,188.0,120.0,81.0,Unknown,N,NODATA!,,,2106.0,95.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,0.0,0.0,From main system,Poor,Good,"Solid, insulated (assumed)",,,Mostly double glazing,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, LPG",Average,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,LPG (not community),0.0,NO DATA!,,,0.0,,natural,"New Barn Farm, Park Lane, Boughton Monchelsea",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2007 onwards,2013-04-13 14:34:49,owner-occupied,12.0,0.0,200003735519.0,Address Matched +1147052735432014052713113834278206,"2, Oaklands",,,ME15 6SD,3684273278,B,B,85,90,House,Detached,2014-05-27,E07000110,E14000804,Kent,2014-05-27,FiT application,82,88,71,42.0,1.9,14,1.2,126.0,71.0,640.0,603.0,143.0,79.0,133.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,7.0,7.0,24.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, mains gas",,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 24% of fixed outlets,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,,natural,"2, Oaklands",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2014-05-27 13:11:38,owner-occupied,17.0,4.0,10022901638.0,Address Matched +1144364159202014052117545527342398,1 Yew Tree Farm Cottages,The Street,Wormshill,ME9 0TU,2226653278,E,C,42,77,House,Semi-Detached,2014-05-21,E07000110,E14000700,Kent,2014-05-21,none of the above,33,65,327,123.0,7.6,79,3.2,76.0,76.0,1338.0,808.0,242.0,111.0,95.0,dual,N,NODATA!,,,2107.0,98.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,75.0,1.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Mostly double glazing,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, oil",Average,Average,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,oil (not community),0.0,NO DATA!,,,0.0,,natural,"1 Yew Tree Farm Cottages, The Street, Wormshill",Maidstone,Faversham and Mid Kent,SITTINGBOURNE,England and Wales: 1950-1966,2014-05-21 17:54:55,rental (private),12.0,9.0,200003732901.0,Address Matched +658903279342011072613070686892068,"11, Nutwood Close",Weavering,,ME14 5TL,4307778868,D,C,59,69,House,Detached,2011-07-26,E07000110,E14000700,Kent,2011-07-26,rental (private),55,67,267,194.0,4.5,52,3.2,71.0,47.0,692.0,535.0,142.0,105.0,86.83,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,50.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,2.33,0.0,,natural,"11, Nutwood Close, Weavering",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1991-1995,2011-07-26 13:07:06,rental (private),10.0,5.0,200003688219.0,Address Matched +226783309252009021021433506910951,The Bothy,Ewell Lane,West Farleigh,ME15 0NG,9135967568,G,G,1,15,Bungalow,Detached,2009-02-10,E07000110,E14000804,Kent,2009-02-10,non marketed sale,26,39,510,377.0,8.4,107,6.2,64.0,64.0,1625.0,1192.0,271.0,205.0,86.79,dual,N,NO DATA!,,,2106.0,0.0,INVALID!,Normal,1.0,4.0,4.0,42.0,0.0,From main system,Very Poor,Average,"Solid, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Sandstone, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, LPG",Very Poor,Average,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 42% of fixed outlets,Average,Average,LPG - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.6,0.0,N,natural,"The Bothy, Ewell Lane, West Farleigh",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2009-02-10 21:43:35,owner-occupied,,,200003662809.0,Address Matched +1584191249262017102311394454078123,2 Mulberry Cottage,Chartway Street,Sutton Valence,ME17 3JA,2562464578,B,A,83,94,House,Semi-Detached,2017-10-23,E07000110,E14000700,Kent,2017-10-23,new dwelling,84,94,91,24.0,1.8,16,0.5,67.0,67.0,280.0,281.0,107.0,58.0,110.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.12 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.27 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"2 Mulberry Cottage, Chartway Street, Sutton Valence",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2017-10-23 11:39:44,owner-occupied,45.0,45.0,10093304925.0,Address Matched +452458569042010031115294879309208,Flat 3/A Elizabeth House,Alexandra Street,,ME14 2BU,1017463768,C,C,72,79,Flat,NO DATA!,2010-03-10,E07000110,E14000804,Kent,2010-03-11,marketed sale,66,69,401,356.0,2.0,60,1.8,24.0,24.0,188.0,142.0,116.0,97.0,33.29,dual,N,Ground,N,3.0,2401.0,100.0,double glazing installed during or after 2002,Normal,0.0,1.0,1.0,75.0,0.0,"Electric immersion, off-peak",Poor,Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,Portable electric heaters,,,(another dwelling above),,,Electric storage heaters,Poor,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,electricity - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.35,0.0,N,natural,"Flat 3/A Elizabeth House, Alexandra Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2010-03-11 15:29:48,owner-occupied,,,200003704569.0,Address Matched +1701532909202019030107212265312188,Moonshine Gap,Chartway Street,Sutton Valence,ME17 3JA,1276703678,D,B,66,83,House,Detached,2019-02-28,E07000110,E14000700,Kent,2019-03-01,rental (private),64,83,219,100.0,4.2,35,1.9,95.0,95.0,791.0,560.0,126.0,82.0,120.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,79.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, partial insulation (assumed)",Average,Average,"Room heaters, wood logs",,,"Roof room(s), ceiling insulated",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 79% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"Moonshine Gap, Chartway Street, Sutton Valence",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1976-1982,2019-03-01 07:21:22,rental (private),,,10014306445.0,Address Matched +1717036292722020013114311044798080,Flat 55 Guinevere Point,Waterhouse Avenue,,ME14 2FJ,8463914678,B,B,84,84,Flat,End-Terrace,2020-01-31,E07000110,E14000804,Kent,2020-01-31,new dwelling,89,89,83,83.0,0.8,15,0.8,45.0,45.0,160.0,160.0,61.0,61.0,54.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.17 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Flat 55 Guinevere Point, Waterhouse Avenue",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2020-01-31 14:31:10,unknown,10.0,10.0,10094440163.0,Address Matched +679454959032020011511110362968300,The Lodge,Sittingbourne Road,,ME14 5HU,5002320968,D,C,59,75,House,Detached,2020-01-14,E07000110,E14000804,Kent,2020-01-15,marketed sale,55,72,232,138.0,8.7,37,5.1,212.0,122.0,1694.0,1195.0,141.0,142.0,234.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,3.0,8.0,8.0,26.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 26% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"The Lodge, Sittingbourne Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2020-01-15 11:11:03,owner-occupied,,,200003673126.0,Address Matched +606135209922011031718592404558899,"1, Sidney Street",,,ME16 8LH,9002094868,E,C,50,73,House,End-Terrace,2011-03-15,E07000110,E14000804,Kent,2011-03-17,marketed sale,44,68,423,226.0,5.3,71,2.8,67.0,40.0,808.0,458.0,166.0,118.0,74.4,Single,Y,NO DATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,1.0,5.0,5.0,33.0,0.0,From main system,Average,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Average,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 33% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.39,0.0,N,natural,"1, Sidney Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2011-03-17 18:59:24,owner-occupied,,,200003655607.0,Address Matched +c5c08ba2b0d3c894399e79dbab287e470e8b626dee7ec6c0382163e1e70408aa,22 Nottingham Avenue,,,ME15 7PS,10001461900,D,B,58,86,House,Mid-Terrace,2021-08-12,E07000110,E14000700,Kent,2021-08-12,rental,51,85,308,83.0,4.6,54,1.3,123.0,69.0,652.0,405.0,189.0,69.0,84.0,Single,Y,,,,,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,22.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,"Room heaters, mains gas",,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 22% of fixed outlets,Poor,Poor,mains gas (not community),0.0,,,2.35,0.0,N,natural,22 Nottingham Avenue,Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2021-08-12 11:52:43,Rented (social),9.0,,200003712781.0,Energy Assessor +237741310962009021915470288418841,"19, Grant Drive",,,ME15 9RZ,4801118568,C,C,74,77,House,End-Terrace,2009-02-19,E07000110,E14000700,Kent,2009-02-19,marketed sale,71,75,211,183.0,2.6,35,2.3,42.0,42.0,348.0,314.0,113.0,96.0,74.0,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,90.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 90% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.35,0.0,N,natural,"19, Grant Drive",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1996-2002,2009-02-19 15:47:02,owner-occupied,,,200003722971.0,Address Matched +1792478067032020031315514669978705,Fresian Bungalow,Marden Thorn,Marden,TN12 9LJ,6589769678,E,D,47,68,Bungalow,Detached,2020-03-13,E07000110,E14000804,Kent,2020-03-13,marketed sale,40,57,281,150.0,5.3,74,3.3,64.0,64.0,706.0,595.0,117.0,78.0,72.0,dual,N,NODATA!,,,2103.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,100.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Timber frame, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, oil",Average,Average,Room thermostat only,Poor,Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,oil (not community),0.0,NO DATA!,,,,N,natural,"Fresian Bungalow, Marden Thorn, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1930-1949,2020-03-13 15:51:46,owner-occupied,,,200003724997.0,Address Matched +155169170062008100413314191848688,"170, Kingfisher Meadow",,,ME16 8RD,8918771568,D,C,62,77,Flat,End-Terrace,2008-10-04,E07000110,E14000804,Kent,2008-10-04,rental (private),70,69,296,307.0,2.0,45,2.1,40.0,24.0,287.0,161.0,99.0,99.0,44.46,dual,N,4th,Y,5.0,2605.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,33.0,0.0,"Electric immersion, off-peak",Poor,Poor,(other premises below),,,Fully double glazed,Good,Good,"System built, as built, insulated (assumed)",Good,Good,,,,"Flat, insulated (assumed)",Good,Good,"Room heaters, electric",Very Poor,Poor,Programmer and room thermostats,Good,Good,Low energy lighting in 33% of fixed outlets,Average,Average,electricity - this is for backwards compatibility only and should not be used,0.0,unheated corridor,6.15,2.46,0.0,N,natural,"170, Kingfisher Meadow",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2008-10-04 13:31:41,rental (private),,,10022892381.0,Address Matched +2f4bf6a613121acc351291801658d71e50bb9e6532a697daeeb28099f2201216,25 Bridle Way,,,ME16 9GU,10001431966,B,A,83,95,House,Detached,2021-09-23,E07000110,E14000804,Kent,2021-09-23,new dwelling,85,96,88,9.0,1.3,15,0.2,71.0,71.0,237.0,237.0,70.0,43.0,88.0,standard tariff,,,N,,,100.0,,,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.33,,,,25 Bridle Way,Maidstone,Maidstone and The Weald,BARMING,2019,2021-09-23 15:34:18,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,1.0,,10094444715.0,Energy Assessor +58390404752016011807294796259552,First Floor Flat,3 London Road,,ME16 8HS,5277468568,C,C,70,79,Flat,Mid-Terrace,2015-12-21,E07000110,E14000804,Kent,2016-01-18,rental (social),72,84,253,145.0,1.6,44,0.9,53.0,26.0,296.0,177.0,86.0,88.0,35.0,Unknown,Y,2nd,N,,2107.0,0.0,not defined,Normal,0.0,2.0,2.0,0.0,0.0,From main system,Good,Good,(another dwelling below),NO DATA!,,Single glazed,Very Poor,Very Poor,"Solid brick, as built, no insulation (assumed)",Poor,Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,unheated corridor,6.4,,,N,natural,"First Floor Flat, 3 London Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2016-01-18 07:29:47,rental (social),,,200003668850.0,Address Matched +1249821166452015100514430099059830,"5, Dargate Close",,,ME16 0TH,8078690378,E,B,48,88,House,Semi-Detached,2015-10-05,E07000110,E14000804,Kent,2015-10-05,ECO assessment,42,88,451,65.0,4.1,80,0.6,66.0,36.0,608.0,342.0,270.0,65.0,52.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,17.0,1.0,"From main system, no cylinder thermostat",Poor,Poor,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 17% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"5, Dargate Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2015-10-05 14:43:00,owner-occupied,,,200003662179.0,Address Matched +1188322249962014081717152846368644,"4, Farnborough Close",,,ME16 8UE,4427466278,D,B,63,90,House,Semi-Detached,2014-08-16,E07000110,E14000804,Kent,2014-08-17,marketed sale,63,92,244,34.0,2.7,47,0.4,73.0,38.0,422.0,333.0,195.0,68.0,58.0,Single,Y,NODATA!,,,2102.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,8.0,0.0,"From main system, no cylinder thermostat",Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,Low energy lighting in 8% of fixed outlets,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"4, Farnborough Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1991-1995,2014-08-17 17:15:28,owner-occupied,13.0,1.0,200003656083.0,Address Matched +145506241012008100316363807089654,"116, Wheeler Street",,,ME14 2UL,6482171568,E,D,51,66,House,Mid-Terrace,2008-10-03,E07000110,E14000804,Kent,2008-10-03,marketed sale,45,60,437,304.0,4.8,73,3.3,54.0,29.0,507.0,427.0,181.0,85.0,65.22,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,14.0,0.0,"From main system, no cylinderstat",Average,Average,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 14% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.5,0.0,N,natural,"116, Wheeler Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2008-10-03 16:36:38,owner-occupied,,,200003703492.0,Address Matched +457149127032010031918295866968700,"26, Blacksmith Drive",Weavering,,ME14 5SZ,2046793768,D,C,59,76,House,Mid-Terrace,2010-03-19,E07000110,E14000700,Kent,2010-03-19,marketed sale,52,73,354,198.0,4.1,59,2.3,55.0,39.0,532.0,351.0,206.0,108.0,80.74,dual,Y,NO DATA!,,,2102.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,60.0,0.0,"From main system, no cylinder thermostat",Poor,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Average,Good,"Programmer, no room thermostat",Very Poor,Very Poor,Low energy lighting in 60% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.34,0.0,N,natural,"26, Blacksmith Drive, Weavering",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2010-03-19 18:29:58,owner-occupied,,,200003672971.0,Address Matched +367175531752009092119530707210265,"99, Bicknor Road",,,ME15 9PA,2501177668,C,C,78,78,House,Mid-Terrace,2009-09-21,E07000110,E14000700,Kent,2009-09-21,rental (social),75,75,173,173.0,2.4,29,2.4,42.0,42.0,370.0,370.0,93.0,93.0,83.08,Single,Y,NO DATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,100.0,0.0,From main system,Very Good,Very Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"System built, with external insulation",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.38,0.0,N,natural,"99, Bicknor Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2009-09-21 19:53:07,rental (social),,,200003679899.0,Address Matched +1109510709962014032008584171088154,"12a, Wrangleden Road",,,ME15 9LS,5714011278,C,C,73,73,Flat,End-Terrace,2014-03-18,E07000110,E14000700,Kent,2014-03-20,rental (social),75,75,160,160.0,1.9,31,1.9,47.0,47.0,363.0,363.0,89.0,89.0,61.0,Single,Y,1st,Y,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,83.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 83% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,no corridor,,,0.0,,natural,"12a, Wrangleden Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2014-03-20 08:58:41,rental (social),6.0,5.0,200003683193.0,Address Matched +1756642409802019100810064768710088,"7, Bower Lane",,,ME16 8BJ,2898607678,C,B,69,89,House,Mid-Terrace,2019-10-08,E07000110,E14000804,Kent,2019-10-08,rental (private),66,89,214,53.0,2.7,38,0.7,56.0,56.0,477.0,324.0,89.0,61.0,72.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,2.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"7, Bower Lane",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2019-10-08 10:06:47,rental (private),,,200003667469.0,Address Matched +390756840132009103011402734268296,"10, Highcroft Green",,,ME15 9PN,4664239668,D,D,67,68,House,End-Terrace,2009-10-28,E07000110,E14000700,Kent,2009-10-30,rental (social),62,63,274,269.0,3.3,46,3.2,54.0,36.0,507.0,510.0,87.0,87.0,71.96,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,More Than Typical,1.0,3.0,3.0,50.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"System built, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,,0.0,N,natural,"10, Highcroft Green",Maidstone,Faversham and Mid Kent,MAIDSTONE,,2009-10-30 11:40:27,rental (social),,,200003723658.0,Address Matched +192719390242008112616344355482568,2 Tallow Court,High Street,Headcorn,TN27 9NE,1260194568,B,B,82,83,House,Mid-Terrace,2008-11-26,E07000110,E14000700,Kent,2008-11-26,new dwelling,81,82,126,120.0,2.1,0,2.0,73.0,45.0,245.0,249.0,86.0,86.0,55.4,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,5.0,,SAP05:Hot-Water,,,SAP05:Floor,,,SAP05:Windows,,,SAP05:Walls,,,SAP05:Secondary-Heating,,,SAP05:Roof,,,SAP05:Main-Heating,,,SAP05:Main-Heating-Controls,,,SAP05:Lighting,,,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.44,,,NO DATA!,"2 Tallow Court, High Street, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,NO DATA!,2008-11-26 16:34:43,,13.0,5.0,10022900309.0,Address Matched +413426632512009121621051009919670,Silk Cottage,The Street,Wormshill,ME9 0TT,6089290768,D,C,55,70,House,Semi-Detached,2009-12-16,E07000110,E14000700,Kent,2009-12-16,rental (private),45,60,296,206.0,6.0,64,4.2,73.0,47.0,650.0,463.0,241.0,159.0,93.78,Single,N,NO DATA!,,,2104.0,50.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,44.0,0.0,"From main system, no cylinder thermostat",Poor,Poor,"Solid, no insulation (assumed)",,,Partial double glazing,Poor,Poor,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 50mm loft insulation",Poor,Poor,"Boiler and radiators, oil",Average,Average,Programmer and room thermostat,Average,Average,Low energy lighting in 44% of fixed outlets,Average,Average,oil - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.52,0.0,N,natural,"Silk Cottage, The Street, Wormshill",Maidstone,Faversham and Mid Kent,SITTINGBOURNE,England and Wales: 1983-1990,2009-12-16 21:05:10,rental (private),,,200003732916.0,Address Matched +54542422612018121817345891989557,3 Orchard Row,West Street,Harrietsham,ME17 1HX,5755217568,C,A,76,93,House,End-Terrace,2018-12-18,E07000110,E14000700,Kent,2018-12-18,rental (private),79,95,172,14.0,1.3,30,0.1,55.0,36.0,238.0,241.0,75.0,49.0,44.0,Single,Y,NODATA!,,,2105.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,50.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and underfloor heating, mains gas",Good,Good,Programmer and at least two room thermostats,Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"3 Orchard Row, West Street, Harrietsham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2007 onwards,2018-12-18 17:34:58,rental (private),,,10014307755.0,Address Matched +166841870102008101716365859289538,"79, Marion Crescent",,,ME15 7EH,1145772568,E,C,46,73,House,Detached,2008-10-17,E07000110,E14000700,Kent,2008-10-17,rental (private),41,68,392,195.0,7.7,66,3.8,106.0,53.0,897.0,453.0,137.0,109.0,136.35,Single,Y,NO DATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,0.0,7.0,7.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Poor,Poor,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.45,0.0,N,natural,"79, Marion Crescent",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2008-10-17 16:36:58,rental (private),,,200003711079.0,Address Matched +1239308949222014112114323360098614,"12, Chippendayle Drive",Harrietsham,,ME17 1AD,1657420378,D,C,64,79,House,Detached,2014-11-21,E07000110,E14000700,Kent,2014-11-21,marketed sale,62,77,208,113.0,3.5,40,2.0,97.0,57.0,614.0,591.0,142.0,90.0,87.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,31.0,1.0,From main system,Good,Good,"Suspended, limited insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, mains gas",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 31% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"12, Chippendayle Drive, Harrietsham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1996-2002,2014-11-21 14:32:33,owner-occupied,13.0,4.0,200003703017.0,Address Matched +736377581152012010411095693020599,"53, McKenzie Court",,,ME14 1JU,5979134968,D,D,55,60,Flat,Semi-Detached,2012-01-04,E07000110,E14000804,Kent,2012-01-04,rental (private),59,63,344,308.0,2.8,61,2.5,30.0,30.0,342.0,358.0,305.0,221.0,46.2,Single,N,4th,N,,2401.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,"Electric immersion, standard tariff",Very Poor,Very Poor,"Solid, insulated (assumed)",,,Fully double glazed,Good,Good,"System built, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,"Pitched, insulated (assumed)",Good,Good,Electric storage heaters,Very Poor,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,heated corridor,,2.224,0.0,,natural,"53, McKenzie Court",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2012-01-04 11:09:56,rental (private),10.0,10.0,10014306660.0,Address Matched +384980440132009102014025244968298,"13, North Crescent",Coxheath,,ME17 4QA,4864298668,C,C,69,71,House,Semi-Detached,2009-10-19,E07000110,E14000804,Kent,2009-10-20,marketed sale,65,66,206,198.0,5.0,34,4.9,140.0,75.0,669.0,681.0,142.0,142.0,146.6,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,2.0,7.0,7.0,15.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 15% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,,0.0,N,natural,"13, North Crescent, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,,2009-10-20 14:02:52,owner-occupied,,,200003714393.0,Address Matched +1082293639432014020409521878778604,"13a, Essex Road",,,ME15 7QL,3418619178,C,C,69,74,Flat,Semi-Detached,2014-01-31,E07000110,E14000700,Kent,2014-02-04,rental (social),71,78,214,164.0,1.8,41,1.4,48.0,29.0,354.0,287.0,80.0,80.0,43.0,Single,Y,Ground,N,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,33.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"System built, with external insulation",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 33% of fixed outlets,Average,Average,mains gas (not community),0.0,no corridor,,,0.0,,natural,"13a, Essex Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2014-02-04 09:52:18,rental (social),6.0,2.0,200003680428.0,Address Matched +184863430962008111714484314458258,"5, Launder Way",,,ME15 6XY,5124344568,C,C,75,79,House,Mid-Terrace,2008-11-15,E07000110,E14000804,Kent,2008-11-17,rental (private),74,76,211,190.0,2.0,35,1.8,56.0,28.0,261.0,253.0,71.0,67.0,57.22,dual,Y,NO DATA!,,,2107.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,0.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, TRVs and bypass",Poor,Poor,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.31,0.0,N,natural,"5, Launder Way",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1991-1995,2008-11-17 14:48:43,rental (private),,,200003665408.0,Address Matched +1148897518712014061414055598940026,Meade Cottage,Dunn Street,Bredhurst,ME7 3NB,619883278,E,C,42,79,House,Detached,2014-06-11,E07000110,E14000700,Kent,2014-06-14,none of the above,30,66,288,101.0,10.0,76,4.0,105.0,75.0,1619.0,814.0,361.0,127.0,134.0,dual,N,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,2.0,7.0,7.0,61.0,1.0,From main system,Average,Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, smokeless fuel",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, oil",Average,Average,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 61% of fixed outlets,Good,Good,oil (not community),0.0,NO DATA!,,,0.0,,natural,"Meade Cottage, Dunn Street, Bredhurst",Maidstone,Faversham and Mid Kent,GILLINGHAM,England and Wales: 1900-1929,2014-06-14 14:05:55,owner-occupied,18.0,11.0,10014307986.0,Address Matched +1802615742102020061117324473009098,"21, Foxglove Rise",,,ME14 2AF,4176240778,D,B,68,89,House,Semi-Detached,2020-06-11,E07000110,E14000804,Kent,2020-06-11,rental (private),66,89,233,51.0,2.4,41,0.6,68.0,49.0,370.0,305.0,144.0,64.0,59.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,63.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 63% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"21, Foxglove Rise",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1991-1995,2020-06-11 17:32:44,rental (private),,,200003722774.0,Address Matched +1570430186412017082708221796230156,"103, Eyhorne Street",Hollingbourne,,ME17 1TX,1623663578,D,C,57,71,House,Detached,2017-08-22,E07000110,E14000700,Kent,2017-08-27,marketed sale,47,62,251,168.0,12.0,45,8.1,169.0,106.0,2101.0,1640.0,177.0,130.0,263.0,Unknown,Y,NODATA!,,,2107.0,100.0,"double glazing, unknown install date",Normal,2.0,8.0,8.0,40.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 40% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"103, Eyhorne Street, Hollingbourne",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2017-08-27 08:22:17,owner-occupied,,,200003722169.0,Address Matched +443636252222020022909005203788530,"5, Buckland Rise",,,ME16 0YN,3084503768,B,B,82,82,Flat,End-Terrace,2020-02-28,E07000110,E14000804,Kent,2020-02-29,marketed sale,85,85,104,104.0,1.1,18,1.1,54.0,54.0,185.0,185.0,88.0,88.0,59.0,Unknown,Y,1st,N,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,(another dwelling below),NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,9.59,,,N,natural,"5, Buckland Rise",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2020-02-29 09:00:52,owner-occupied,,,10014308200.0,Address Matched +423851169102010012120412273102608,Flat 71 Lee Heights,Bambridge Court,,ME14 2LD,6105661768,D,B,67,84,Flat,Mid-Terrace,2010-01-20,E07000110,E14000804,Kent,2010-01-21,rental (private),77,79,180,170.0,2.0,27,1.9,73.0,45.0,173.0,109.0,286.0,131.0,74.35,Single,N,2nd,N,5.0,2401.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,22.0,0.0,"Electric immersion, standard tariff",Very Poor,Poor,(other premises below),,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,(another dwelling above),,,Electric storage heaters,Very Poor,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 22% of fixed outlets,Poor,Poor,electricity - this is for backwards compatibility only and should not be used,0.0,unheated corridor,1.19,2.24,0.0,N,natural,"Flat 71 Lee Heights, Bambridge Court",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2010-01-21 20:41:22,rental (private),,,10022893042.0,Address Matched +1481821847912016092207075293260440,"32, Church Street",Boughton Monchelsea,,ME17 4HW,4055737478,E,B,45,89,House,Mid-Terrace,2016-09-21,E07000110,E14000700,Kent,2016-09-22,marketed sale,43,72,476,200.0,4.3,80,1.8,56.0,42.0,825.0,353.0,192.0,78.0,54.0,Unknown,N,NODATA!,,,2602.0,100.0,"double glazing, unknown install date",Normal,1.0,4.0,4.0,56.0,0.0,"Electric immersion, off-peak",Poor,Poor,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Sandstone or limestone, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, electric",,,"Pitched, 75 mm loft insulation",Average,Average,"Room heaters, electric",Very Poor,Poor,Appliance thermostats,Good,Good,Low energy lighting in 56% of fixed outlets,Good,Good,electricity (not community),0.0,NO DATA!,,2.27,,N,natural,"32, Church Street, Boughton Monchelsea",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2016-09-22 07:07:52,owner-occupied,,,200003674467.0,Address Matched +797359899022012060514071548958262,Flat 3 Leyland Gate,Strachan Close,,ME15 6ZT,6405998968,B,B,88,88,Flat,NO DATA!,2012-06-05,E07000110,E14000804,Kent,2012-06-05,new dwelling,92,92,50,50.0,0.7,9,0.7,41.0,41.0,177.0,177.0,87.0,87.0,74.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,8.0,,From main system,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.18 W/m?K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,,,NO DATA!,"Flat 3 Leyland Gate, Strachan Close",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2012-06-05 14:07:15,,8.0,8.0,10014313087.0,Address Matched +1628578865832018050216115522078000,Flat 14 Challenger Court,"49, Wallis Avenue",,ME15 9HS,6062087578,B,B,84,84,Flat,Detached,2018-05-02,E07000110,E14000700,Kent,2018-05-02,new dwelling,87,87,85,85.0,1.2,15,1.2,56.0,56.0,196.0,196.0,100.0,100.0,83.0,standard tariff,,top floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.19 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.14 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Flat 14 Challenger Court, 49, Wallis Avenue",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2018-05-02 16:11:55,unknown,10.0,10.0,10093304764.0,Address Matched +810070699802019022522363098912558,La Torre,Boxley Road,Walderslade,ME5 9JE,2832199968,C,C,72,77,Flat,Detached,2019-02-25,E07000110,E14000700,Kent,2019-02-25,rental (private),71,79,202,148.0,2.2,36,1.6,48.0,48.0,304.0,260.0,163.0,104.0,61.0,Single,Y,1st,N,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,100.0,0.0,From main system,Average,Average,(another dwelling below),NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,no corridor,,,,N,natural,"La Torre, Boxley Road, Walderslade",Maidstone,Faversham and Mid Kent,CHATHAM,England and Wales: 1950-1966,2019-02-25 22:36:30,rental (private),,,200003702762.0,Address Matched +1750196869142019091108574162610138,"3, Bower Mount Road",,,ME16 8AX,2114066678,D,C,63,80,House,Detached,2019-09-07,E07000110,E14000804,Kent,2019-09-11,marketed sale,54,73,218,117.0,7.9,39,4.3,122.0,122.0,1297.0,880.0,183.0,119.0,206.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,10.0,10.0,88.0,1.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 88% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"3, Bower Mount Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2019-09-11 08:57:41,owner-occupied,,,200003668275.0,Address Matched +782195256412014101013245399949099,"33, Wheeler Street",Headcorn,,TN27 9SH,930697968,D,B,59,87,House,End-Terrace,2014-10-10,E07000110,E14000700,Kent,2014-10-10,marketed sale,57,89,278,54.0,3.0,54,0.6,61.0,41.0,565.0,373.0,128.0,76.0,56.0,dual,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,3.0,3.0,50.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"33, Wheeler Street, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,England and Wales: 1900-1929,2014-10-10 13:24:53,owner-occupied,10.0,5.0,200003700863.0,Address Matched +398106620962009111714294509338881,"32, Oxford Gardens",,,ME15 8FJ,8039289668,C,C,75,75,House,Mid-Terrace,2009-11-17,E07000110,E14000700,Kent,2009-11-17,new dwelling,82,82,138,138.0,1.7,21,1.7,50.0,50.0,225.0,225.0,167.0,167.0,80.0,standard tariff,,NO DATA!,,,2207.0,,NO DATA!,NO DATA!,,,,4.0,0.0,From main system,Poor,Good,Average thermal transmittance 0.18 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.28 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.12 W/m?K,Very Good,Very Good,"Air source heat pump, radiators, electric",Poor,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",0.0,NO DATA!,,2.4,,,NO DATA!,"32, Oxford Gardens",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2009-11-17 14:29:45,,5.0,4.0,10014308971.0,Address Matched +381266241612009101420180907919167,"17, Bankfields",Headcorn,,TN27 9QY,1724178668,D,C,64,74,House,Semi-Detached,2009-10-14,E07000110,E14000700,Kent,2009-10-14,marketed sale,60,71,283,206.0,3.6,47,2.7,85.0,42.0,529.0,399.0,107.0,107.0,77.22,dual,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,0.0,1.0,From main system,Very Good,Very Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 75mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.44,0.0,N,natural,"17, Bankfields, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,England and Wales: 1967-1975,2009-10-14 20:18:09,owner-occupied,,,200003699693.0,Address Matched +1725652289342019060418272969417298,Flat 1 The Coach House,"22, Lower Stone Street",,ME15 6LX,2382384678,C,C,77,80,Flat,Mid-Terrace,2019-05-31,E07000110,E14000804,Kent,2019-06-04,marketed sale,65,68,312,286.0,2.2,53,2.0,37.0,37.0,235.0,189.0,150.0,150.0,42.0,dual,N,Ground,N,,2401.0,100.0,"double glazing, unknown install date",Normal,0.0,1.0,1.0,100.0,0.0,"Electric immersion, off-peak",Average,Poor,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,Portable electric heaters (assumed),,,(another dwelling above),,,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,heated corridor,,,,N,natural,"Flat 1 The Coach House, 22, Lower Stone Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2019-06-04 18:27:29,owner-occupied,,,10094440909.0,Address Matched +1533870179962017041213474231128443,"76, Park Way",Coxheath,,ME17 4EX,4300701578,D,C,55,73,Bungalow,Semi-Detached,2017-04-12,E07000110,E14000804,Kent,2017-04-12,marketed sale,47,66,369,216.0,4.4,65,2.6,47.0,47.0,824.0,706.0,96.0,63.0,67.0,Single,Y,NODATA!,,,2106.0,95.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Mostly double glazing,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"76, Park Way, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2017-04-12 13:47:42,owner-occupied,,,200003715207.0,Address Matched +c68c034ef525191a811919e6e77141dcd00efa71591c484ab35b2dde9f55f5c5,11 RUSHMORE GROVE,,,ME17 2FJ,10001344181,B,B,83,83,Flat,Detached,2021-08-03,E07000110,E14000700,Kent,2021-08-03,new dwelling,87,87,92,92.0,1.0,16,1.0,61.0,61.0,187.0,187.0,68.0,68.0,65.0,standard tariff,,3,Y,,,100.0,,,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.19 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.19 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.1 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.75,,,,11 RUSHMORE GROVE,Maidstone,Faversham and Mid Kent,LENHAM,2019,2021-08-03 08:33:38,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,1.0,,10094444437.0,Energy Assessor +1120074282512014040322344498040924,"10, Owletts Close",,,ME15 7SZ,9475281278,C,B,73,88,House,Mid-Terrace,2014-04-03,E07000110,E14000700,Kent,2014-04-03,rental (social),74,89,156,50.0,2.1,30,0.7,51.0,51.0,362.0,346.0,137.0,78.0,71.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,86.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 86% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"10, Owletts Close",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1991-1995,2014-04-03 22:34:44,rental (social),7.0,6.0,200003725383.0,Address Matched +1249859199902014121603154535049558,"2, Rectory Lane",Barming,,ME16 9BE,8930890378,D,B,63,82,House,Semi-Detached,2014-12-15,E07000110,E14000804,Kent,2014-12-16,none of the above,56,79,258,109.0,4.1,46,1.8,55.0,55.0,722.0,522.0,129.0,80.0,90.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"2, Rectory Lane, Barming",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2014-12-16 03:15:45,owner-occupied,,,200003677437.0,Address Matched +398911379132009111919241754968890,"2, Honduras Terrace",Invicta Park,,ME14 2PA,7034889668,D,D,64,64,House,End-Terrace,2009-11-16,E07000110,E14000804,Kent,2009-11-19,marketed sale,63,63,254,254.0,3.8,41,3.8,45.0,45.0,633.0,633.0,98.0,98.0,90.1,Single,Y,NO DATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,6.0,6.0,100.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.3,0.0,N,natural,"2, Honduras Terrace, Invicta Park",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2009-11-19 19:24:17,owner-occupied,,,200003723926.0,Address Matched +105864727952019020911450896010049,"12, Thomas Rider Way",Boughton Monchelsea,,ME17 4GA,927767468,C,B,75,85,House,Semi-Detached,2019-02-09,E07000110,E14000700,Kent,2019-02-09,marketed sale,74,84,147,83.0,2.8,26,1.6,77.0,77.0,443.0,443.0,167.0,134.0,109.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,7.0,7.0,100.0,0.0,From main system,Good,Good,"Suspended, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"12, Thomas Rider Way, Boughton Monchelsea",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2003-2006,2019-02-09 11:45:08,owner-occupied,,,10022901091.0,Address Matched +c6acade0b1e3cda3393635522d4e9502d7ddeda656c7444ae568db3c9088615c,16 HEARNE COURT,,,ME15 6QD,10001383894,B,B,81,81,Flat,,2021-07-15,E07000110,E14000804,Kent,2021-07-15,new dwelling,83,83,116,116.0,1.4,20,1.4,76.0,76.0,177.0,177.0,281.0,281.0,74.0,standard tariff,,3,Y,,,100.0,,,,,,100.0,0.0,From main system,Poor,Average,Average thermal transmittance 0.09 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.22 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.10 W/m-¦K,Very Good,Very Good,"Air source heat pump, radiators, electric",Good,Very Good,2207 Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",0.0,,,2.4,,,,16 HEARNE COURT,Maidstone,Maidstone and The Weald,TOVIL,2021,2021-07-15 08:45:56,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,25.0,,10095448648.0,Energy Assessor +805466479922012062415381019918662,"5, Brennan Mews",Buckland Road,,ME16 0YL,6150759968,C,B,74,87,House,Semi-Detached,2012-06-19,E07000110,E14000804,Kent,2012-06-24,marketed sale,74,88,136,54.0,2.7,26,1.1,69.0,69.0,419.0,369.0,109.0,63.0,103.0,Unknown,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,78.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Roof room(s), insulated",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 78% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"5, Brennan Mews, Buckland Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2012-06-24 15:38:10,owner-occupied,9.0,7.0,10022896977.0,Address Matched +916920594732013042415540852278102,4 Cross at Hand Cottages,Maidstone Road,Staplehurst,TN12 0RJ,9232147078,D,B,60,82,House,Mid-Terrace,2013-04-23,E07000110,E14000804,Kent,2013-04-24,marketed sale,62,84,245,98.0,3.2,42,1.2,84.0,44.0,628.0,546.0,84.0,60.0,76.0,Unknown,Y,NODATA!,,,2107.0,80.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,9.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Mostly double glazing,Poor,Poor,"Solid brick, as built, no insulation (assumed)",Poor,Poor,"Room heaters, wood logs",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 9% of fixed outlets,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"4 Cross at Hand Cottages, Maidstone Road, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: before 1900,2013-04-24 15:54:08,owner-occupied,11.0,1.0,200003679709.0,Address Matched +1122405629752014040921163199040722,"29, Dixon Close",,,ME15 6SS,7296991278,C,B,70,91,House,Mid-Terrace,2014-04-09,E07000110,E14000804,Kent,2014-04-09,marketed sale,71,93,178,28.0,2.3,34,0.4,56.0,42.0,399.0,308.0,128.0,75.0,67.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,1.0,5.0,5.0,67.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, partial insulation (assumed)",Average,Average,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 67% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"29, Dixon Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1976-1982,2014-04-09 21:16:31,owner-occupied,12.0,8.0,200003664886.0,Address Matched +1240688673212018121712342393089132,The Firs,Boxley Road,Walderslade,ME5 9JE,1277330378,D,C,62,71,House,Semi-Detached,2018-12-05,E07000110,E14000700,Kent,2018-12-17,marketed sale,54,63,227,175.0,6.8,41,5.3,110.0,110.0,1207.0,1116.0,92.0,92.0,165.0,dual,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,6.0,6.0,86.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, dual fuel (mineral and wood)",,,"Roof room(s), limited insulation (assumed)",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 86% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"The Firs, Boxley Road, Walderslade",Maidstone,Faversham and Mid Kent,CHATHAM,England and Wales: 1967-1975,2018-12-17 12:34:23,owner-occupied,,,200003709054.0,Address Matched +1098832124752014022815500193240328,"8, Salem Street",,,ME15 6NS,3882430278,B,B,81,81,Flat,NO DATA!,2014-02-28,E07000110,E14000804,Kent,2014-02-28,new dwelling,85,85,99,99.0,1.1,19,1.1,39.0,39.0,248.0,248.0,68.0,68.0,61.0,standard tariff,,top floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.18 W/mA?K,Very Good,Very Good,,,,Average thermal transmittance 0.15 W/mA?K,Good,Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"8, Salem Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2014-02-28 15:50:01,NO DATA!,20.0,20.0,10014314843.0,Address Matched +818165149602012072610133102022198,Flat 28 Ragstone Lodge,Peel Street,,ME14 2WB,9611440078,B,B,81,81,Flat,Mid-Terrace,2012-07-21,E07000110,E14000804,Kent,2012-07-26,rental (private),88,88,109,109.0,0.7,21,0.7,24.0,24.0,166.0,166.0,61.0,61.0,34.0,Single,Y,3rd,Y,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,100.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,heated corridor,,,0.0,,natural,"Flat 28 Ragstone Lodge, Peel Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2012-07-26 10:13:31,rental (private),6.0,6.0,10022896757.0,Address Matched +1523308032962020021209382270698250,5 Buston Manor Farm Cottages,Lughorse Lane,Yalding,ME18 6EF,5733330578,E,A,42,98,House,End-Terrace,2020-02-11,E07000110,E14000804,Kent,2020-02-12,ECO assessment,79,116,93,-150.0,1.6,20,-1.9,64.0,64.0,1375.0,744.0,340.0,214.0,80.0,Single,N,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,3.0,5.0,5.0,100.0,1.0,From main system,Very Poor,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, with internal insulation",Very Good,Very Good,"Room heaters, wood logs",,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, bottled LPG",Very Poor,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,bottled LPG,0.0,NO DATA!,,,,N,natural,"5 Buston Manor Farm Cottages, Lughorse Lane, Yalding",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2020-02-12 09:38:22,rental (private),,,200003724790.0,Address Matched +473570284032010042108174957268801,"40, Northleigh Close",Loose,,ME15 9RP,8127805768,D,D,58,68,House,End-Terrace,2010-04-21,E07000110,E14000804,Kent,2010-04-21,marketed sale,51,63,303,229.0,6.0,51,4.5,111.0,61.0,842.0,662.0,161.0,141.0,82.8,Single,Y,NO DATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,6.0,6.0,20.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Roof room(s), limited insulation (assumed)",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 20% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.3,0.0,N,natural,"40, Northleigh Close, Loose",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2010-04-21 08:17:49,owner-occupied,,,200003675094.0,Address Matched +1422207393212016030909063791060946,"43b, Terminus Road",,,ME16 9DA,9626313478,D,B,68,89,Bungalow,End-Terrace,2016-03-08,E07000110,E14000804,Kent,2016-03-09,rental (social),67,89,251,54.0,2.1,44,0.5,45.0,34.0,406.0,321.0,88.0,59.0,48.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,67.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, partial insulation (assumed)",Average,Average,,,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 67% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"43b, Terminus Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1976-1982,2016-03-09 09:06:37,rental (social),,,200003689584.0,Address Matched +13498490152019020520065892010047,"27, Tennison Way",,,ME15 9GE,747028468,C,B,77,89,House,Mid-Terrace,2019-02-05,E07000110,E14000700,Kent,2019-02-05,rental (private),77,88,138,60.0,2.3,24,1.0,71.0,71.0,353.0,357.0,122.0,73.0,94.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Suspended, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"27, Tennison Way",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2003-2006,2019-02-05 20:06:58,rental (private),,,10022895441.0,Address Matched +1732640139262019062814415325388551,"29, Badger Road",,,ME5 8TY,5262335678,E,C,49,77,House,End-Terrace,2019-06-28,E07000110,E14000700,Kent,2019-06-28,marketed sale,44,75,379,143.0,4.9,67,1.9,87.0,55.0,826.0,593.0,192.0,67.0,74.0,Single,Y,NODATA!,,,2107.0,100.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,43.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,"Room heaters, electric",,,"Pitched, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 43% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"29, Badger Road",Maidstone,Faversham and Mid Kent,CHATHAM,England and Wales: 1967-1975,2019-06-28 14:41:53,owner-occupied,,,200003675187.0,Address Matched +c6af3c7b0b3e920de38f2aa27c6adb1b46035a0ddcf2edc09a7b63ee8b978cd9,8 THE STREET,STOCKBURY,,ME9 7UE,10001578809,E,C,39,69,House,Semi-Detached,2021-07-15,E07000110,E14000700,Kent,2021-07-18,marketed sale,22,42,606,360.0,9.0,102,5.4,88.0,88.0,1614.0,1103.0,244.0,125.0,88.0,dual,N,,,,,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,89.0,0.0,"Electric immersion, off-peak",Average,Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,"Room heaters, electric",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 89% of fixed outlets,Very Good,Very Good,electricity (not community),0.0,,,2.25,0.0,N,natural,"8 THE STREET, STOCKBURY",Maidstone,Faversham and Mid Kent,SITTINGBOURNE,England and Wales: 1950-1966,2021-07-18 14:24:30,Owner-occupied,9.0,,200003732611.0,Energy Assessor +87867142452011040616310299090643,"18, North Street",Barming,,ME16 9HF,6387295468,D,C,68,74,House,Semi-Detached,2011-04-06,E07000110,E14000804,Kent,2011-04-06,rental (private),67,73,223,181.0,3.8,34,3.1,90.0,60.0,649.0,532.0,127.0,127.0,109.67,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,8.0,8.0,50.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, wood logs",,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,0.0,N,natural,"18, North Street, Barming",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2011-04-06 16:31:02,rental (private),,,200003665678.0,Address Matched +1605568459062018020402520076678528,6 Bennetts Cottages,Dunn Street,Bredhurst,ME7 3ND,2746516578,E,C,47,77,House,Mid-Terrace,2018-02-03,E07000110,E14000700,Kent,2018-02-04,marketed sale,43,71,320,115.0,4.2,76,1.9,73.0,41.0,487.0,290.0,89.0,118.0,55.0,Single,N,NODATA!,,,2107.0,100.0,double glazing installed during or after 2002,Normal,1.0,3.0,3.0,22.0,0.0,From main system,Poor,Average,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, oil",Average,Average,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 22% of fixed outlets,Poor,Poor,oil (not community),0.0,NO DATA!,,,,N,natural,"6 Bennetts Cottages, Dunn Street, Bredhurst",Maidstone,Faversham and Mid Kent,GILLINGHAM,England and Wales: before 1900,2018-02-04 02:52:00,owner-occupied,,,200003722104.0,Address Matched +1563295514812017072712303091230853,3 East Court Cottages,The Street,Detling,ME14 3JX,8335413578,E,B,41,86,House,End-Terrace,2017-07-27,E07000110,E14000700,Kent,2017-07-27,marketed sale,35,85,474,79.0,5.9,84,1.0,65.0,49.0,905.0,383.0,268.0,68.0,70.0,Single,Y,NODATA!,,,2104.0,0.0,not defined,Normal,1.0,4.0,4.0,67.0,0.0,"From main system, no cylinder thermostat",Poor,Poor,"Suspended, no insulation (assumed)",NO DATA!,,Single glazed,Very Poor,Very Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 67% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"3 East Court Cottages, The Street, Detling",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1900-1929,2017-07-27 12:30:30,owner-occupied,,,10014309593.0,Address Matched +c6f42f3fd44e0ffcc5e0bb61ce41fecdd29eb81598d726af98eb8885fabaa682,8 Canada Terrace,Invicta Park,,ME14 2NU,10001662528,D,B,65,83,House,End-Terrace,2021-08-27,E07000110,E14000804,Kent,2021-08-27,Stock condition survey,61,81,241,103.0,3.4,42,1.5,86.0,86.0,581.0,453.0,93.0,65.0,81.0,dual,Y,,,,,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,83.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Average,Average,,,,"Flat, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 83% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.28,0.0,N,natural,"8 Canada Terrace, Invicta Park",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2021-08-27 17:07:49,Rented (social),12.0,,200003724003.0,Energy Assessor +1429102649222016033110363133718446,Flat 6 The Sovereigns,Queens Road,,ME16 0JG,4327463478,D,C,68,78,Flat,Mid-Terrace,2016-03-29,E07000110,E14000804,Kent,2016-03-31,marketed sale,53,66,378,272.0,3.1,64,2.2,81.0,41.0,334.0,200.0,138.0,138.0,48.0,dual,N,Ground,N,,2401.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,0.0,0.0,"Electric immersion, off-peak",Average,Poor,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,(another dwelling above),,,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,No low energy lighting,Very Poor,Very Poor,electricity (not community),0.0,unheated corridor,9.1,2.32,,N,natural,"Flat 6 The Sovereigns, Queens Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2016-03-31 10:36:31,owner-occupied,,,200003657109.0,Address Matched +66400268752017050617111995030045,"30, Medway Avenue",Yalding,,ME18 6JW,583854468,C,B,75,82,House,Semi-Detached,2017-05-06,E07000110,E14000804,Kent,2017-05-06,non marketed sale,75,81,142,103.0,3.5,23,2.5,87.0,87.0,698.0,698.0,104.0,104.0,152.0,Single,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,1.0,6.0,6.0,94.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, wood logs",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 94% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"30, Medway Avenue, Yalding",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2017-05-06 17:11:19,owner-occupied,,,200003660647.0,Address Matched +c6f2b8dd001d0143910001f982c81153d0c7d057154a7421c4d35dc10da9a311,14 Greenborough Close,,,ME15 8JN,10001369729,C,C,77,77,Flat,Semi-Detached,2021-08-24,E07000110,E14000700,Kent,2021-08-26,not sale or rental,82,82,184,184.0,1.0,32,1.0,37.0,37.0,222.0,222.0,47.0,47.0,31.0,Single,Y,01,Y,,,100.0,double glazing installed before 2002,Normal,0.0,2.0,2.0,80.0,0.0,From main system,Good,Good,(another dwelling below),,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 350 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,no corridor,,2.4,0.0,N,natural,14 Greenborough Close,Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1991-1995,2021-08-26 08:08:03,Rented (social),5.0,,200003723100.0,Energy Assessor +1221361399342014101510334026849678,"40, Yeoman Lane",Bearsted,,ME14 4BX,8390398278,D,C,59,79,House,Detached,2014-10-13,E07000110,E14000700,Kent,2014-10-15,marketed sale,53,75,217,106.0,6.7,42,3.3,126.0,76.0,1223.0,857.0,169.0,91.0,160.0,Single,Y,NODATA!,,,2107.0,95.0,"double glazing, unknown install date",More Than Typical,2.0,8.0,8.0,33.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Mostly double glazing,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 33% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"40, Yeoman Lane, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2014-10-15 10:33:40,owner-occupied,18.0,6.0,200003692057.0,Address Matched +1083844239022015100820293879188475,"4, Birchington Close",,,ME14 5PF,7799329178,E,C,53,77,Maisonette,End-Terrace,2015-10-08,E07000110,E14000804,Kent,2015-10-08,marketed sale,61,79,281,148.0,2.7,48,1.5,51.0,51.0,713.0,270.0,86.0,91.0,57.0,Single,Y,Ground,N,,2603.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,71.0,0.0,Gas multipoint,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,(another dwelling above),,,"Room heaters, electric",Very Poor,Poor,Programmer and appliance thermostats,Good,Good,Low energy lighting in 71% of fixed outlets,Very Good,Very Good,electricity (not community),0.0,no corridor,,,,N,natural,"4, Birchington Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2015-10-08 20:29:38,owner-occupied,,,200003716860.0,Address Matched +924211299502013050221032907770728,41 Sunningdale Court,Square Hill Road,,ME15 7TU,5509297078,C,C,70,72,Flat,Semi-Detached,2013-05-02,E07000110,E14000804,Kent,2013-05-02,rental (social),72,75,202,178.0,1.8,39,1.6,35.0,35.0,312.0,296.0,113.0,91.0,47.0,Unknown,Y,7th,N,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,80.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"System built, as built, no insulation (assumed)",Very Poor,Very Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,4.55,,0.0,,natural,"41 Sunningdale Court, Square Hill Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2013-05-02 21:03:29,rental (social),5.0,4.0,200003696579.0,Address Matched +1815166932602020081212010474100148,"66, Milton Street",,,ME16 8LD,8677231778,D,C,57,78,House,Semi-Detached,2020-08-04,E07000110,E14000804,Kent,2020-08-12,marketed sale,48,73,285,133.0,6.2,50,2.9,111.0,87.0,1074.0,707.0,105.0,75.0,123.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,3.0,6.0,6.0,72.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 72% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"66, Milton Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2020-08-12 12:01:04,owner-occupied,,,200003655484.0,Address Matched +924811171312013053116310090070403,"9-10, Church Walk",Headcorn,,TN27 9NP,4361108078,C,C,70,80,House,Detached,2013-05-03,E07000110,E14000700,Kent,2013-05-31,FiT application,63,76,155,97.0,5.9,31,3.7,103.0,79.0,1244.0,924.0,120.0,74.0,193.0,Single,Y,NODATA!,,,2106.0,0.0,not defined,Normal,1.0,8.0,8.0,67.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Timber frame, with additional insulation",Good,Good,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 67% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,,natural,"9-10, Church Walk, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,England and Wales: before 1900,2013-05-31 16:31:00,owner-occupied,15.0,10.0,200003732028.0,Address Matched +1636206039702018053123342959887898,"4, Bower Lane",,,ME16 8BJ,799638578,E,C,54,76,House,Mid-Terrace,2018-05-31,E07000110,E14000804,Kent,2018-05-31,marketed sale,41,65,308,145.0,5.5,66,2.8,68.0,68.0,843.0,609.0,93.0,62.0,83.0,Single,Y,NODATA!,,,2106.0,15.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,82.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Some double glazing,Poor,Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, coal",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 82% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"4, Bower Lane",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2018-05-31 23:34:29,owner-occupied,,,200003667464.0,Address Matched +1658038099542018082320231757982878,"2b, Mote Road",,,ME15 6EP,1599399578,D,C,66,77,Flat,End-Terrace,2018-08-23,E07000110,E14000804,Kent,2018-08-23,rental (private),66,80,303,174.0,2.1,53,1.2,31.0,31.0,376.0,224.0,80.0,71.0,38.0,Single,Y,Ground,N,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,2.0,2.0,100.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,no corridor,,,,N,natural,"2b, Mote Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2018-08-23 20:23:17,rental (private),,,10022895637.0,Address Matched +658983699262011072623093988468859,3 Priory Quay,The Priory,East Farleigh,ME15 0JH,5897978868,B,B,81,83,Flat,Enclosed End-Terrace,2011-07-26,E07000110,E14000804,Kent,2011-07-26,marketed sale,84,85,92,82.0,1.9,17,1.7,116.0,58.0,260.0,269.0,92.0,92.0,106.5,Unknown,Y,Ground,Y,,2110.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,0.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and underfloor heating, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,heated corridor,,2.4,0.0,,natural,"3 Priory Quay, The Priory, East Farleigh",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2011-07-26 23:09:39,owner-occupied,11.0,0.0,10014306241.0,Address Matched +205907920062009010611202586768791,"41, Medway Avenue",Yalding,,ME18 6JN,9849216568,C,C,79,80,Flat,Semi-Detached,2009-01-06,E07000110,E14000804,Kent,2009-01-06,rental (social),77,78,180,171.0,1.8,30,1.7,36.0,36.0,270.0,256.0,82.0,82.0,61.08,Single,Y,1st,Y,2.0,2106.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,80.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.4,0.0,N,natural,"41, Medway Avenue, Yalding",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2009-01-06 11:20:25,rental (social),,,200003660577.0,Address Matched +1098838440452014022815295093240329,"21, Fauchons Close",Bearsted,,ME14 4BB,3978030278,D,C,65,78,House,Detached,2014-02-28,E07000110,E14000700,Kent,2014-02-28,marketed sale,64,77,182,106.0,4.2,35,2.5,64.0,64.0,803.0,703.0,131.0,89.0,120.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"21, Fauchons Close, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2014-02-28 15:29:50,owner-occupied,16.0,16.0,200003687602.0,Address Matched +1319198759062015050808572515288675,"10, Mayes Road",Marden,,TN12 9FA,7135585378,B,B,86,87,House,Detached,2015-05-08,E07000110,E14000804,Kent,2015-05-08,new dwelling,85,87,74,63.0,1.7,13,1.4,70.0,70.0,400.0,401.0,106.0,58.0,128.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.19 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.28 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.15 W/m-¦K,Good,Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"10, Mayes Road, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,NO DATA!,2015-05-08 08:57:25,unknown,10.0,10.0,10014315645.0,Address Matched +1447121999902016052416021845462648,"2, Whitehall Drive",Kingswood,,ME17 3PQ,9996194478,D,C,62,78,Bungalow,Detached,2016-05-24,E07000110,E14000700,Kent,2016-05-24,marketed sale,56,73,257,140.0,4.3,47,2.5,102.0,60.0,750.0,665.0,146.0,86.0,92.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,3.0,5.0,5.0,29.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 29% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,2.07,,N,natural,"2, Whitehall Drive, Kingswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1976-1982,2016-05-24 16:02:18,owner-occupied,,,200003700369.0,Address Matched +613808719062011040509582405558779,"33, Wingrove Drive",Weavering,,ME14 5SP,7081155868,E,C,54,74,Bungalow,Semi-Detached,2011-04-05,E07000110,E14000700,Kent,2011-04-05,marketed sale,48,70,418,234.0,4.2,69,2.3,64.0,32.0,589.0,391.0,200.0,106.0,59.36,Single,Y,NO DATA!,,,2102.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,0.0,0.0,"From main system, no cylinder thermostat",Poor,Poor,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, partial insulation (assumed)",Average,Average,"Room heaters, mains gas",,,"Pitched, 250 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Average,Good,"Programmer, no room thermostat",Very Poor,Very Poor,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.36,0.0,N,natural,"33, Wingrove Drive, Weavering",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1976-1982,2011-04-05 09:58:24,owner-occupied,,,200003689059.0,Address Matched +1723543649262019052309100014978891,"13, Sergison Crescent",Staplehurst,,TN12 0FP,9126464678,B,A,84,95,House,Semi-Detached,2019-05-23,E07000110,E14000804,Kent,2019-05-23,new dwelling,86,97,80,4.0,1.3,14,0.1,64.0,64.0,213.0,213.0,74.0,44.0,90.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.28 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"13, Sergison Crescent, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,NO DATA!,2019-05-23 09:10:00,unknown,10.0,10.0,10093304202.0,Address Matched +841127679722019073015460862708271,5 Wicken House,London Road,,ME16 8QP,7692702078,C,B,70,82,Flat,Semi-Detached,2019-07-30,E07000110,E14000804,Kent,2019-07-30,rental (private),67,73,254,208.0,2.2,43,1.8,41.0,47.0,363.0,191.0,184.0,134.0,52.0,dual,N,1st,N,,2603.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,100.0,0.0,"Electric immersion, off-peak",Poor,Poor,(another dwelling below),NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,,,,(another dwelling above),,,"Room heaters, electric",Very Poor,Poor,Programmer and appliance thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,unheated corridor,7.33,,,N,natural,"5 Wicken House, London Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2019-07-30 15:46:08,rental (private),,,200003668513.0,Address Matched +309105649752009062208230905210566,Flat 2,"48, Victoria Street",,ME16 8JA,5657953668,E,D,48,61,Flat,Mid-Terrace,2009-06-20,E07000110,E14000804,Kent,2009-06-22,rental (private),46,59,381,280.0,5.4,63,4.0,76.0,43.0,739.0,593.0,167.0,121.0,61.13,NO DATA!,,NO DATA!,,,2104.0,,NO DATA!,NO DATA!,,,,21.0,,From main system,Average,Good,(other premises below),,,Partial double glazing,Poor,Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, electric",,,"Roof room(s), insulated",Good,Good,"Boiler and radiators, mains gas",Average,Good,Programmer and room thermostat,Poor,Poor,Low energy lighting in 21% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.58,0.0,,NO DATA!,"Flat 2, 48, Victoria Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2009-06-22 08:23:09,rental (private),,,200003727599.0,Address Matched +549184800032010100617261953068190,"1, Dean Street",East Farleigh,,ME15 0PU,83150868,C,C,71,73,House,Semi-Detached,2010-10-06,E07000110,E14000804,Kent,2010-10-06,rental (social),67,68,261,252.0,2.6,43,2.5,62.0,31.0,399.0,405.0,100.0,100.0,74.5,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,0.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"System built, with external insulation",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.45,0.0,N,natural,"1, Dean Street, East Farleigh",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2010-10-06 17:26:19,rental (social),,,200003670424.0,Address Matched +1337291433212015062607585391250736,"43, The Quarries",Boughton Monchelsea,,ME17 4NJ,7630317378,E,C,43,80,House,Semi-Detached,2015-06-24,E07000110,E14000700,Kent,2015-06-26,marketed sale,36,75,421,138.0,7.5,74,2.5,109.0,61.0,1308.0,675.0,188.0,76.0,101.0,Single,Y,NODATA!,,,2106.0,15.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,20.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Some double glazing,Very Poor,Very Poor,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 20% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"43, The Quarries, Boughton Monchelsea",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2015-06-26 07:58:53,owner-occupied,,,200003709799.0,Address Matched +1808941982402020070818254070000438,"3, Barleyfields",Weavering,,ME14 5SW,6480880778,C,B,69,87,House,Semi-Detached,2020-07-07,E07000110,E14000700,Kent,2020-07-08,marketed sale,65,86,215,73.0,3.1,38,1.1,77.0,77.0,495.0,369.0,136.0,82.0,81.0,Unknown,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,6.0,6.0,83.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, partial insulation (assumed)",Average,Average,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 83% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"3, Barleyfields, Weavering",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1976-1982,2020-07-08 18:25:40,owner-occupied,,,200003716531.0,Address Matched +1678328639002018111317391363189078,"21, Haste Hill Road",Boughton Monchelsea,,ME17 4LP,5091931678,D,B,64,84,House,Semi-Detached,2018-11-13,E07000110,E14000700,Kent,2018-11-13,rental (private),61,82,270,108.0,3.0,48,1.2,84.0,47.0,502.0,437.0,99.0,46.0,63.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,5.0,3.0,22.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 22% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"21, Haste Hill Road, Boughton Monchelsea",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2018-11-13 17:39:13,rental (private),,,200003674676.0,Address Matched +1659878605612018083116202990780463,"23, Manor Rise",Bearsted,,ME14 4DB,4337500678,D,C,62,75,House,Detached,2018-08-31,E07000110,E14000700,Kent,2018-08-31,marketed sale,53,67,231,154.0,7.3,41,4.9,166.0,95.0,1178.0,1029.0,146.0,83.0,178.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,3.0,8.0,8.0,24.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,"Room heaters, mains gas",,,"Pitched, insulated at rafters",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 24% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"23, Manor Rise, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2018-08-31 16:20:29,owner-occupied,,,200003692084.0,Address Matched +c7763a52fc4196f4586cb7834f500aa5a000ec6aa6ea04413ac5a812efe5dfb5,5 Maxted Road,,,ME14 4FN,10001586452,B,B,89,90,House,Semi-Detached,2021-09-22,E07000110,E14000804,Kent,2021-09-22,new dwelling,90,92,51,40.0,0.9,9,0.7,81.0,81.0,250.0,250.0,68.0,41.0,101.0,standard tariff,,,N,,,100.0,,,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.18 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.41,,,,5 Maxted Road,Maidstone,Maidstone and The Weald,THURNHAM,2018,2021-09-22 14:30:18,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,1.0,,10094444640.0,Energy Assessor +1394461089962016011916075741418356,"29, Kingsley Road",,,ME15 7UN,5497811478,E,B,51,87,House,Mid-Terrace,2016-01-19,E07000110,E14000804,Kent,2016-01-19,marketed sale,51,90,338,66.0,4.7,53,0.8,114.0,58.0,929.0,416.0,192.0,77.0,89.0,Single,Y,NODATA!,,,2104.0,0.0,not defined,Normal,0.0,5.0,5.0,0.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Single glazed,Very Poor,Very Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"29, Kingsley Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2016-01-19 16:07:57,owner-occupied,,,200003695872.0,Address Matched +1262923079262015012814214841388295,"14, The Hedgerow",Weavering,,ME14 5TG,9419781378,D,C,66,76,House,Detached,2015-01-28,E07000110,E14000700,Kent,2015-01-28,FiT application,67,81,151,82.0,4.8,27,2.6,132.0,88.0,1086.0,796.0,171.0,79.0,177.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,1.0,7.0,7.0,50.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"14, The Hedgerow, Weavering",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1991-1995,2015-01-28 14:21:48,owner-occupied,,,200003689770.0,Address Matched +c77f70815712a3a8c5c3a15a2c44f486de42cfe7a7547cfdc8983a446cf8fd42,27 ST. ANDREWS PARK,TARRAGON ROAD,,ME16 0WD,10001449722,D,C,68,77,Flat,Mid-Terrace,2021-07-07,E07000110,E14000804,Kent,2021-07-07,marketed sale,65,78,238,148.0,2.6,42,1.6,55.0,55.0,406.0,261.0,129.0,104.0,62.0,Single,Y,00,N,,,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Sandstone or limestone, as built, no insulation (assumed)",Poor,Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,5.7,2.66,0.0,N,natural,"27 ST. ANDREWS PARK, TARRAGON ROAD",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2021-07-07 12:23:31,Owner-occupied,7.0,,200003654984.0,Energy Assessor +557732769262010102610551501768680,Sheephurst Oast,Sheephurst Lane,Marden,TN12 9NX,8029601868,C,C,69,72,House,Detached,2010-10-26,E07000110,E14000804,Kent,2010-10-26,new dwelling,64,65,150,143.0,8.7,32,8.5,251.0,144.0,968.0,993.0,236.0,236.0,275.13,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,7.0,,From main system,Good,Good,Average thermal transmittance 0.20 W/m?K,Very Good,Very Good,Single glazed,Very Poor,Very Poor,Average thermal transmittance 0.26 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.20 W/m?K,Good,Good,"Boiler and radiators, oil",Good,Good,Time and temperature zone control,Good,Good,Low energy lighting in 25% of fixed outlets,Average,Average,oil - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,,,NO DATA!,"Sheephurst Oast, Sheephurst Lane, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,NO DATA!,2010-10-26 10:55:15,,28.0,7.0,10014308855.0,Address Matched +1324079929242015052718410730652798,"14, Highland Road",,,ME15 7QH,3200426378,D,C,64,79,House,Mid-Terrace,2015-05-21,E07000110,E14000700,Kent,2015-05-27,marketed sale,60,75,268,151.0,3.4,47,2.0,68.0,47.0,596.0,580.0,135.0,78.0,72.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,More Than Typical,1.0,4.0,4.0,56.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 56% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"14, Highland Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2015-05-27 18:41:07,owner-occupied,,,200003683958.0,Address Matched +217507070222009051916174906698651,"48, Cleavesland",Laddingford,,ME18 6BS,5094786568,C,C,76,78,Bungalow,Mid-Terrace,2009-01-21,E07000110,E14000804,Kent,2009-05-19,rental (social),73,75,251,231.0,1.8,42,1.6,30.0,20.0,281.0,266.0,67.0,67.0,42.73,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,2.0,2.0,50.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.28,0.0,N,natural,"48, Cleavesland, Laddingford",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2009-05-19 16:17:49,rental (social),,,200003660007.0,Address Matched +1332228499922015061518563766358315,"13, Mitchell Close",Lenham,,ME17 2AE,1647976378,D,B,65,89,House,Mid-Terrace,2015-06-15,E07000110,E14000700,Kent,2015-06-15,marketed sale,61,88,262,64.0,3.1,46,0.8,80.0,45.0,491.0,366.0,177.0,69.0,68.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,22.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 22% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"13, Mitchell Close, Lenham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2015-06-15 18:56:37,owner-occupied,,,200003725134.0,Address Matched +214062969132009012614451207268908,"3, Stoneacre Court",Enterprise Road,,ME15 6AB,6827996568,C,C,72,73,Flat,Semi-Detached,2009-01-26,E07000110,E14000804,Kent,2009-01-26,rental (private),64,64,315,312.0,2.8,48,2.7,50.0,33.0,232.0,237.0,110.0,110.0,58.0,dual,N,1st,Y,2.0,2401.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,50.0,0.0,"Electric immersion, off-peak",Average,Poor,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,"Pitched, 200 mm loft insulation",Good,Good,Electric storage heaters,Average,Poor,Manual charge control,Poor,Poor,Low energy lighting in 50% of fixed outlets,Good,Good,electricity - this is for backwards compatibility only and should not be used,0.0,unheated corridor,3.0,2.4,0.0,N,natural,"3, Stoneacre Court, Enterprise Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2009-01-26 14:45:12,rental (private),,,200003686860.0,Address Matched +230189102132009021921393296968803,Flat 11 Scotney Gardens,St. Peters Street,,ME16 0GR,346808568,B,B,82,83,Flat,Mid-Terrace,2009-02-19,E07000110,E14000804,Kent,2009-02-19,rental (private),77,78,244,236.0,1.4,37,1.4,41.0,22.0,88.0,91.0,103.0,103.0,39.34,dual,N,3rd,N,5.0,2402.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,17.0,0.0,"Electric immersion, off-peak",Average,Poor,(other premises below),,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,(another dwelling above),,,Electric storage heaters,Average,Poor,Automatic charge control,Average,Average,Low energy lighting in 17% of fixed outlets,Poor,Poor,electricity - this is for backwards compatibility only and should not be used,0.0,unheated corridor,3.47,2.32,0.0,N,natural,"Flat 11 Scotney Gardens, St. Peters Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2009-02-19 21:39:32,rental (private),,,10022893379.0,Address Matched +16937309022011080317293128178929,48 Wallis Place,Hart Street,,ME16 8FB,2255088468,C,B,80,81,Flat,Detached,2011-08-03,E07000110,E14000804,Kent,2011-08-03,marketed sale,84,84,110,104.0,1.3,21,1.3,60.0,40.0,218.0,221.0,85.0,85.0,64.06,Single,Y,Ground,Y,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,50.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Flat, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,unheated corridor,9.23,2.28,0.0,,natural,"48 Wallis Place, Hart Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2011-08-03 17:29:31,owner-occupied,8.0,4.0,10022900647.0,Address Matched +350074690262009082421262036248641,54 Shipley Court,Wyatt Street,,ME14 1HF,4393946668,C,C,76,78,Flat,Enclosed End-Terrace,2009-08-24,E07000110,E14000804,Kent,2009-08-24,rental (social),68,70,279,267.0,2.4,42,2.3,32.0,32.0,189.0,165.0,133.0,133.0,57.6,Single,N,5th,N,7.0,2401.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,100.0,0.0,"Electric immersion, off-peak",Average,Poor,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,(another dwelling above),,,Electric storage heaters,Poor,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity - this is for backwards compatibility only and should not be used,0.0,unheated corridor,6.0,2.37,0.0,N,natural,"54 Shipley Court, Wyatt Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2009-08-24 21:26:20,rental (social),,,200003688191.0,Address Matched +281041815132009051220021605968101,"76, West Street",Harrietsham,,ME17 1HU,1195181668,D,D,62,65,House,Mid-Terrace,2009-05-12,E07000110,E14000700,Kent,2009-05-12,marketed sale,61,63,290,274.0,3.7,45,3.5,73.0,40.0,543.0,531.0,117.0,117.0,83.86,Unknown,Y,NO DATA!,,,2104.0,16.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,16.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Partial double glazing,Very Poor,Very Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Poor,Poor,Low energy lighting in 16% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.3,0.0,N,natural,"76, West Street, Harrietsham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2009-05-12 20:02:16,owner-occupied,,,200003702529.0,Address Matched +988856469962013081323031132178317,"6, Heathfield Avenue",Penenden Heath,,ME14 2DQ,1365652178,C,B,72,81,House,Semi-Detached,2013-08-13,E07000110,E14000804,Kent,2013-08-13,marketed sale,70,79,150,97.0,3.5,29,2.3,79.0,79.0,617.0,582.0,98.0,98.0,122.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,2.0,6.0,6.0,75.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"6, Heathfield Avenue, Penenden Heath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2013-08-13 23:03:11,owner-occupied,40.0,30.0,200003673263.0,Address Matched +596706679052015052216544491950380,"38, Cambridge Crescent",,,ME15 7NG,3018914868,D,B,56,84,House,Semi-Detached,2015-05-14,E07000110,E14000700,Kent,2015-05-22,rental (social),50,81,337,111.0,4.3,59,1.4,80.0,47.0,692.0,486.0,193.0,70.0,72.0,Single,Y,NODATA!,,,2107.0,100.0,"double glazing, unknown install date",Normal,1.0,4.0,4.0,29.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 29% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"38, Cambridge Crescent",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2015-05-22 16:54:44,rental (social),,,200003712459.0,Address Matched +1009182799202013091721231213379638,"6, Bridgeside Mews",,,ME15 6TB,8205893178,C,B,76,90,House,Mid-Terrace,2013-09-17,E07000110,E14000804,Kent,2013-09-17,marketed sale,76,92,128,33.0,2.3,24,0.6,86.0,57.0,354.0,317.0,142.0,73.0,96.0,Single,Y,NODATA!,,,2107.0,100.0,double glazing installed during or after 2002,Normal,0.0,6.0,6.0,50.0,0.0,From main system,Good,Good,"Suspended, insulated (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"6, Bridgeside Mews",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2013-09-17 21:23:12,owner-occupied,10.0,5.0,10022896631.0,Address Matched +1487752889902016101213181342769628,"1, Newington Walk",,,ME14 5RJ,4951087478,D,B,68,88,House,End-Terrace,2016-10-12,E07000110,E14000804,Kent,2016-10-12,rental (private),66,87,239,68.0,2.5,42,0.7,41.0,41.0,466.0,357.0,98.0,63.0,59.0,Unknown,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, partial insulation (assumed)",Average,Average,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,2.37,,N,natural,"1, Newington Walk",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1976-1982,2016-10-12 13:18:13,rental (private),,,200003725225.0,Address Matched +852450890232012103113014591778794,"26, Eyhorne Street",Hollingbourne,,ME17 1TR,9411782078,E,C,50,76,House,Mid-Terrace,2012-10-30,E07000110,E14000700,Kent,2012-10-31,marketed sale,46,73,325,138.0,4.7,63,2.1,79.0,43.0,769.0,559.0,124.0,73.0,75.0,Unknown,Y,NODATA!,,,2104.0,29.0,double glazing installed before 2002,Normal,0.0,4.0,3.0,15.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Some double glazing,Poor,Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 15% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"26, Eyhorne Street, Hollingbourne",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2012-10-31 13:01:45,owner-occupied,13.0,2.0,200003722198.0,Address Matched +354212280262009082817084876688441,"4, Hockers Lane",Detling,,ME14 3JL,4725876668,D,C,61,69,House,Detached,2009-08-28,E07000110,E14000700,Kent,2009-08-28,marketed sale,54,65,278,212.0,6.1,47,4.6,74.0,74.0,823.0,646.0,195.0,150.0,130.5,dual,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,7.0,7.0,100.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,0.0,N,natural,"4, Hockers Lane, Detling",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2009-08-28 17:08:48,owner-occupied,,,200003703171.0,Address Matched +1287357112532015022707454802278204,"61, West Park Road",,,ME15 7AF,1452263378,D,B,63,87,House,End-Terrace,2015-02-26,E07000110,E14000700,Kent,2015-02-27,rental (private),57,86,285,81.0,3.5,50,1.0,46.0,46.0,629.0,402.0,142.0,78.0,70.0,Single,Y,NODATA!,,,2107.0,100.0,"double glazing, unknown install date",Normal,1.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"61, West Park Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2015-02-27 07:45:48,rental (private),,,200003686639.0,Address Matched +597530049022012111313372324488172,"105, Chatham Road",,,ME14 2NB,7201424868,C,B,70,87,House,Semi-Detached,2012-11-08,E07000110,E14000804,Kent,2012-11-13,non marketed sale,71,88,178,57.0,2.4,34,0.8,70.0,40.0,364.0,344.0,124.0,68.0,70.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,25.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 25% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"105, Chatham Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2012-11-13 13:37:23,rental (social),8.0,2.0,200003670495.0,Address Matched +c7aace64c6c232a54cec03bdaf5309c61d8da286b5ef603f20ee4521a3869e72,88 KINGSLEY ROAD,,,ME15 7UP,10001673168,D,B,60,87,House,Mid-Terrace,2021-07-21,E07000110,E14000804,Kent,2021-07-29,marketed sale,54,87,312,75.0,3.8,55,0.9,58.0,58.0,638.0,363.0,98.0,60.0,68.0,Unknown,Y,,,,,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.6,0.0,N,natural,88 KINGSLEY ROAD,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2021-07-29 06:33:11,Owner-occupied,18.0,,200003695916.0,Energy Assessor +1584994579542017102617280553432868,"13, Heathfield Avenue",Penenden Heath,,ME14 2DQ,5591274578,C,B,72,82,House,Semi-Detached,2017-10-26,E07000110,E14000804,Kent,2017-10-26,marketed sale,69,79,165,99.0,3.4,30,2.2,113.0,71.0,580.0,586.0,106.0,72.0,117.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,6.0,6.0,40.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 270 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 40% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"13, Heathfield Avenue, Penenden Heath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2017-10-26 17:28:05,owner-occupied,,,200003673255.0,Address Matched +1475644149722016083116021806198086,"31, Downs Road",Penenden Heath,,ME14 2JN,8084496478,C,B,70,85,House,Semi-Detached,2016-08-31,E07000110,E14000804,Kent,2016-08-31,marketed sale,68,82,190,87.0,3.0,33,1.4,100.0,59.0,492.0,461.0,145.0,85.0,91.0,Single,Y,NODATA!,,,2106.0,90.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,30.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Mostly double glazing,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 30% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,2.51,,N,natural,"31, Downs Road, Penenden Heath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2016-08-31 16:02:18,owner-occupied,,,200003706887.0,Address Matched +1012210329802013092314301812472378,"3, Cooling Close",,,ME14 5RA,2841024178,D,B,66,89,House,Mid-Terrace,2013-09-23,E07000110,E14000804,Kent,2013-09-23,none of the above,65,91,202,37.0,3.0,39,0.6,54.0,54.0,484.0,308.0,147.0,74.0,76.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,80.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"3, Cooling Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2013-09-23 14:30:18,owner-occupied,10.0,8.0,200003672087.0,Address Matched +1431331389942016041117135342360558,Flat 48,Concorde House,London Road,ME16 8QA,908183478,C,C,69,69,Flat,Mid-Terrace,2016-04-05,E07000110,E14000804,Kent,2016-04-11,rental (private),66,66,252,252.0,2.3,43,2.3,41.0,41.0,363.0,363.0,170.0,170.0,55.0,dual,N,4th,N,,2107.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,100.0,0.0,From main system,Poor,Poor,(another dwelling below),NO DATA!,,Fully double glazed,Good,Good,"System built, with internal insulation",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, electric",Very Poor,Poor,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,unheated corridor,9.68,2.5,,N,natural,"Flat 48, Concorde House, London Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2016-04-11 17:13:53,rental (private),,,, +496818314632016041510292987968901,"23, Mote Avenue",,,ME15 7SU,1137976768,C,B,76,85,House,Detached,2016-04-13,E07000110,E14000804,Kent,2016-04-15,marketed sale,73,82,141,89.0,3.6,25,2.3,106.0,79.0,621.0,627.0,140.0,90.0,147.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,8.0,8.0,67.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 67% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,2.3,,N,natural,"23, Mote Avenue",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2016-04-15 10:29:29,owner-occupied,,,200003695745.0,Address Matched +631520005752019051013471998010485,Flat 3,63a Brewer Street,,ME14 1RY,4595586868,C,C,71,76,Flat,Semi-Detached,2019-05-09,E07000110,E14000804,Kent,2019-05-10,rental (private),68,75,191,152.0,2.9,34,2.3,65.0,67.0,504.0,393.0,94.0,94.0,87.0,Single,Y,2nd,Y,,2106.0,29.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,100.0,0.0,From main system,Good,Good,(another dwelling below),NO DATA!,,Some double glazing,Poor,Poor,"Solid brick, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,0.98,,,N,natural,"Flat 3, 63a Brewer Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2019-05-10 13:47:19,rental (private),,,200003728308.0,Address Matched +1168877629802014072720142925540048,"3, Meadowdown",Weavering,,ME14 5TN,7849525278,D,B,66,83,House,Detached,2014-07-04,E07000110,E14000700,Kent,2014-07-27,rental (private),65,83,204,85.0,3.1,39,1.3,97.0,51.0,547.0,473.0,130.0,87.0,79.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,8.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 8% of fixed outlets,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"3, Meadowdown, Weavering",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1991-1995,2014-07-27 20:14:29,rental (private),12.0,1.0,200003688318.0,Address Matched +1561041999642017071915443851239118,"2, Astley Street",,,ME14 1FS,5608992578,C,C,76,78,Flat,Mid-Terrace,2017-07-19,E07000110,E14000804,Kent,2017-07-19,marketed sale,55,61,330,292.0,3.2,56,2.8,58.0,58.0,263.0,212.0,166.0,166.0,57.0,Unknown,N,Basement,N,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,80.0,0.0,From main system,Average,Poor,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, electric",Average,Very Poor,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,electricity (not community),0.0,no corridor,,,,N,natural,"2, Astley Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1991-1995,2017-07-19 15:44:38,owner-occupied,,,10014314998.0,Address Matched +1389226182512015112509252998259844,Flat 18 Nolan Court,"2, Terrace Road",,ME16 8HU,8438280478,B,B,87,87,Flat,NO DATA!,2015-11-24,E07000110,E14000804,Kent,2015-11-25,new dwelling,91,91,59,59.0,0.7,11,0.7,54.0,54.0,232.0,232.0,76.0,76.0,62.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.18 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.15 W/m-¦K,Good,Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Flat 18 Nolan Court, 2, Terrace Road",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2015-11-25 09:25:29,unknown,25.0,25.0,10091193405.0,Address Matched +181593510962008111219102953228658,Flat 3 The Mews Rear of 37,High Street,,ME14 1JG,5572183568,C,C,79,79,Flat,Detached,2008-11-12,E07000110,E14000804,Kent,2008-11-12,rental (social),76,76,230,227.0,1.5,38,1.5,24.0,18.0,216.0,217.0,63.0,63.0,39.2,Single,Y,1st,N,3.0,2106.0,100.0,double glazing installed before 2002,Normal,0.0,2.0,2.0,66.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 66% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,unheated corridor,5.88,2.32,0.0,N,natural,"Flat 3 The Mews Rear of 37, High Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1991-1995,2008-11-12 19:10:29,rental (social),,,200003654902.0,Address Matched +597118989212014111411553391949984,"5, Woollett Street",,,ME14 1UX,9439914868,D,B,64,84,House,Mid-Terrace,2014-11-13,E07000110,E14000804,Kent,2014-11-14,assessment for green deal,65,86,249,79.0,2.2,48,0.8,63.0,31.0,458.0,411.0,68.0,45.0,46.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,2.0,2.0,2.0,0.0,0.0,From main system,Good,Good,"To unheated space, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"5, Woollett Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2014-11-14 11:55:33,rental (social),7.0,0.0,200003701494.0,Address Matched +364861870962009091719010757338911,Flat 2 Wardes Moat,Vicarage Road,Yalding,ME18 6DY,1512757668,F,E,30,43,Flat,Detached,2009-09-17,E07000110,E14000804,Kent,2009-09-17,marketed sale,26,36,545,428.0,11.0,91,9.0,131.0,67.0,1628.0,1331.0,178.0,134.0,125.0,Single,Y,2nd,Y,3.0,2104.0,0.0,INVALID!,Normal,0.0,5.0,5.0,4.0,0.0,From main system,Good,Good,(other premises below),,,Single glazed,Very Poor,Very Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, mains gas",,,"Flat, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Poor,Poor,Low energy lighting in 4% of fixed outlets,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,unheated corridor,11.89,2.69,0.0,N,natural,"Flat 2 Wardes Moat, Vicarage Road, Yalding",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2009-09-17 19:01:07,owner-occupied,,,200003661423.0,Address Matched +1075322469302014032813352219842698,"88, Marion Crescent",,,ME15 7DU,6366468178,E,C,49,70,House,Detached,2014-01-21,E07000110,E14000700,Kent,2014-03-28,none of the above,49,71,308,167.0,5.0,53,2.7,102.0,55.0,1085.0,814.0,84.0,84.0,95.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,17.0,2.0,"From main system, plus solar",Very Good,Very Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, wood logs",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 17% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,10.0,,natural,"88, Marion Crescent",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2014-03-28 13:35:22,owner-occupied,12.0,2.0,200003677414.0,Address Matched +1154291391352014060915535992040729,"15, Flaxman Drive",,,ME16 0RU,7978124278,D,C,57,77,Bungalow,Semi-Detached,2014-06-09,E07000110,E14000804,Kent,2014-06-09,marketed sale,53,75,264,121.0,4.0,51,1.9,97.0,48.0,741.0,587.0,97.0,68.0,80.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,More Than Typical,0.0,3.0,3.0,0.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, partial insulation (assumed)",Average,Average,,,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"15, Flaxman Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1976-1982,2014-06-09 15:53:59,unknown,9.0,0.0,200003659447.0,Address Matched +1405639899062019050917391501318801,"15, Orchard Glade",Headcorn,,TN27 9SS,79991478,E,C,40,78,Bungalow,Detached,2019-05-09,E07000110,E14000700,Kent,2019-05-09,marketed sale,40,55,406,267.0,5.8,69,3.8,115.0,69.0,1240.0,718.0,246.0,108.0,85.0,dual,N,NODATA!,,,2604.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,2.0,13.0,0.0,"Electric immersion, off-peak",Poor,Poor,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,"Room heaters, electric",,,"Pitched, 200 mm loft insulation",Good,Good,"Room heaters, electric",Very Poor,Poor,Room thermostats only,Good,Good,Low energy lighting in 13% of fixed outlets,Poor,Poor,electricity (not community),0.0,NO DATA!,,,,N,natural,"15, Orchard Glade, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,England and Wales: 1950-1966,2019-05-09 17:39:15,owner-occupied,,,200003700843.0,Address Matched +1360723959612015090410111297050735,Chart Hill Cottage,Chart Road,Chart Sutton,ME17 3RG,7591978378,E,C,41,70,House,End-Terrace,2015-09-03,E07000110,E14000700,Kent,2015-09-04,marketed sale,28,53,379,187.0,13.0,78,6.9,119.0,83.0,2025.0,1276.0,205.0,80.0,164.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,2.0,8.0,8.0,56.0,2.0,From main system,Average,Average,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Timber frame, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, coal",,,"Roof room(s), ceiling insulated",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 56% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"Chart Hill Cottage, Chart Road, Chart Sutton",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2015-09-04 10:11:12,owner-occupied,,,200003690284.0,Address Matched +412504521052009121415295308919971,Flat 33,1-5 Pudding Lane,,ME14 1FN,9169180768,C,C,70,70,Maisonette,End-Terrace,2009-12-11,E07000110,E14000804,Kent,2009-12-14,rental (private),70,70,232,232.0,2.7,35,2.7,47.0,47.0,309.0,309.0,149.0,149.0,77.4267,dual,N,2nd,Y,4.0,2402.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,"Electric immersion, off-peak",Poor,Poor,(other premises below),,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,"Pitched, insulated (assumed)",Good,Good,Electric storage heaters,Poor,Poor,Automatic charge control,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity - this is for backwards compatibility only and should not be used,0.0,unheated corridor,6.09,2.49,0.0,N,"mechanical, supply and extract","Flat 33, 1-5 Pudding Lane",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2009-12-14 15:29:53,rental (private),,,10014308390.0,Address Matched +901227939302013032014194206672808,"344, Loose Road",,,ME15 9TT,2346436078,E,C,44,70,Bungalow,Detached,2013-03-20,E07000110,E14000804,Kent,2013-03-20,assessment for green deal,43,70,325,162.0,7.1,57,3.4,66.0,66.0,1281.0,892.0,193.0,78.0,124.0,Single,Y,NODATA!,,,2102.0,95.0,double glazing installed before 2002,Normal,1.0,6.0,6.0,93.0,0.0,"From main system, no cylinder thermostat",Average,Average,"Suspended, no insulation (assumed)",,,Mostly double glazing,Average,Average,"Solid brick, with external insulation",Good,Good,"Room heaters, wood logs",,,"Flat, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,Low energy lighting in 93% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"344, Loose Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2013-03-20 14:19:42,owner-occupied,15.0,14.0,200003678554.0,Address Matched +994498189842013082112452218272398,"8, Kings Walk",Holland Road,,ME14 1GQ,9828882178,C,B,78,83,Flat,Enclosed End-Terrace,2013-08-21,E07000110,E14000804,Kent,2013-08-21,rental (private),72,74,194,178.0,2.1,34,1.9,67.0,45.0,216.0,147.0,144.0,102.0,60.0,dual,N,1st,N,,2603.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,40.0,0.0,"Electric immersion, off-peak",Average,Very Poor,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Room heaters, electric",Poor,Very Poor,Programmer and appliance thermostats,Good,Good,Low energy lighting in 40% of fixed outlets,Average,Average,electricity (not community),0.0,unheated corridor,6.39,,0.0,,natural,"8, Kings Walk, Holland Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2013-08-21 12:45:22,rental (private),25.0,10.0,200003655116.0,Address Matched +1100006490312014030322393094040429,"61, Marion Crescent",,,ME15 7EH,4989040278,E,C,52,76,House,Detached,2014-03-03,E07000110,E14000700,Kent,2014-03-03,assessment for green deal,49,75,258,115.0,6.1,49,2.8,108.0,66.0,1175.0,774.0,130.0,80.0,125.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,2.0,6.0,6.0,36.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,"Pitched, insulated at rafters",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 36% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"61, Marion Crescent",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2014-03-03 22:39:30,owner-occupied,11.0,4.0,200003677485.0,Address Matched +1250493482912014122009485490249237,"39, Friars Court",Queen Anne Road,,ME14 1ER,2746201378,D,C,68,76,Flat,Mid-Terrace,2014-12-20,E07000110,E14000804,Kent,2014-12-20,marketed sale,51,60,444,358.0,2.9,75,2.3,61.0,31.0,298.0,214.0,111.0,111.0,38.0,dual,N,3rd,Y,,2402.0,100.0,double glazing installed before 2002,Normal,0.0,2.0,2.0,0.0,0.0,"Electric immersion, off-peak",Average,Poor,(another dwelling below),NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,"Pitched, 100 mm loft insulation",Average,Average,Electric storage heaters,Average,Very Poor,Automatic charge control,Average,Average,No low energy lighting,Very Poor,Very Poor,electricity (not community),0.0,heated corridor,,,,N,natural,"39, Friars Court, Queen Anne Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2014-12-20 09:48:54,owner-occupied,,,200003688652.0,Address Matched +345056880262009082418511946348191,Barty Cottage,Roundwell,Bearsted,ME14 4HL,9462806668,F,E,38,46,House,Detached,2009-08-24,E07000110,E14000700,Kent,2009-08-24,marketed sale,42,51,427,357.0,8.3,62,6.7,138.0,74.0,1376.0,1205.0,181.0,146.0,134.04,dual,Y,NO DATA!,,,2106.0,0.0,single glazing,Normal,1.0,6.0,6.0,15.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 15% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,0.0,N,natural,"Barty Cottage, Roundwell, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2009-08-24 18:51:19,owner-occupied,,,200003711243.0,Address Matched +c7fc5ad469741a9a0414a353db6a2c80e42d03040e6531942f813aeef87780e3,83 GREAT THREADS,,,TN12 0FJ,10001580482,B,A,84,94,House,Detached,2021-08-05,E07000110,E14000804,Kent,2021-08-05,new dwelling,85,94,87,21.0,1.6,15,0.4,79.0,79.0,266.0,266.0,73.0,45.0,104.0,standard tariff,,,N,,,100.0,,,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.12 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.28 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.54,,,,83 GREAT THREADS,Maidstone,Maidstone and The Weald,STAPLEHURST,2021,2021-08-05 13:02:40,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,10.0,,10093304276.0,Energy Assessor +1788399558852020030916520823200465,"77, Fauchons Lane",Bearsted,,ME14 4AY,4501839678,E,C,50,74,House,Semi-Detached,2020-02-27,E07000110,E14000700,Kent,2020-03-09,marketed sale,41,68,317,149.0,7.9,58,3.8,136.0,90.0,1348.0,892.0,170.0,76.0,137.0,Single,Y,NODATA!,,,2111.0,100.0,"double glazing, unknown install date",Normal,2.0,7.0,7.0,50.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,TRVs and bypass,Average,Average,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"77, Fauchons Lane, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2020-03-09 16:52:08,owner-occupied,,,200003687302.0,Address Matched +400643220962009112000011510018731,14 Amshurst Villas,Gallants Lane,East Farleigh,ME15 0LQ,3104200768,D,D,63,68,House,Mid-Terrace,2009-11-19,E07000110,E14000804,Kent,2009-11-20,rental (social),54,59,363,322.0,4.2,55,3.7,42.0,42.0,443.0,354.0,135.0,135.0,76.8,dual,N,NO DATA!,,,2401.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,100.0,0.0,"Electric immersion, off-peak",Average,Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,Portable electric heaters,,,"Pitched, 100 mm loft insulation",Average,Average,Electric storage heaters,Poor,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.38,0.0,N,natural,"14 Amshurst Villas, Gallants Lane, East Farleigh",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2009-11-20 00:01:15,rental (social),,,200003671198.0,Address Matched +1161773384832018040407183237078505,Squirrels Mead,North Pole Road,Barming,ME16 9HH,8597574278,D,C,66,74,House,Detached,2018-04-03,E07000110,E14000804,Kent,2018-04-04,marketed sale,57,66,195,150.0,7.7,34,5.9,126.0,126.0,1296.0,1220.0,147.0,88.0,222.0,Unknown,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,10.0,10.0,74.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, mains gas",,,"Pitched, insulated (assumed)",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 74% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"Squirrels Mead, North Pole Road, Barming",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2018-04-04 07:18:32,owner-occupied,,,200003667692.0,Address Matched +1657852858832018082216554301278109,"9, Monkdown",Downswood,,ME15 8SP,5911199578,E,B,43,85,House,Semi-Detached,2018-08-22,E07000110,E14000700,Kent,2018-08-22,marketed sale,42,64,442,241.0,4.8,75,2.6,99.0,53.0,1010.0,507.0,211.0,94.0,64.0,dual,N,NODATA!,,,2601.0,30.0,"double glazing, unknown install date",Normal,0.0,4.0,1.0,0.0,0.0,"Electric immersion, off-peak",Poor,Poor,"Solid, no insulation (assumed)",NO DATA!,,Some double glazing,Poor,Poor,"Timber frame, as built, insulated (assumed)",Good,Good,Portable electric heaters (assumed),,,"Pitched, insulated (assumed)",Average,Average,"Room heaters, electric",Very Poor,Poor,No thermostatic control of room temperature,Poor,Poor,No low energy lighting,Very Poor,Very Poor,electricity (not community),0.0,NO DATA!,,,,N,natural,"9, Monkdown, Downswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2018-08-22 16:55:43,owner-occupied,,,200003691514.0,Address Matched +1657681029012018082206405598280150,"38, Norrington Road",,,ME15 9RA,1014989578,D,C,57,80,House,Semi-Detached,2018-08-21,E07000110,E14000804,Kent,2018-08-22,marketed sale,50,76,329,138.0,4.6,58,2.0,68.0,68.0,763.0,523.0,136.0,76.0,79.0,Unknown,Y,NODATA!,,,2107.0,100.0,"double glazing, unknown install date",Normal,3.0,5.0,5.0,80.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"38, Norrington Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2018-08-22 06:40:55,owner-occupied,,,200003674963.0,Address Matched +627152759342011051100041582699208,"66, Murrain Drive",Downswood,,ME15 8XN,6369056868,D,C,61,70,House,Semi-Detached,2011-05-10,E07000110,E14000700,Kent,2011-05-11,marketed sale,60,71,279,203.0,3.0,54,2.2,61.0,31.0,448.0,366.0,121.0,92.0,55.5,Unknown,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,0.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,2.4,0.0,,natural,"66, Murrain Drive, Downswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2011-05-11 00:04:15,owner-occupied,5.0,0.0,200003691548.0,Address Matched +754949799742012022812455297522588,"9, All Angels Close",,,ME16 8FR,1764295968,B,B,85,85,House,End-Terrace,2012-02-28,E07000110,E14000804,Kent,2012-02-28,new dwelling,89,90,69,65.0,1.0,13,0.9,58.0,44.0,194.0,195.0,49.0,49.0,73.72,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,8.0,,"From main system, plus solar",Very Good,Very Good,Average thermal transmittance 0.13 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.23 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.10 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in 67% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,,,NO DATA!,"9, All Angels Close",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2012-02-28 12:45:52,,12.0,8.0,10014312881.0,Address Matched +1495132139602016110806284449867798,"39, Hatherall Road",,,ME14 5HF,8628038478,E,C,53,78,Bungalow,Detached,2016-10-31,E07000110,E14000804,Kent,2016-11-08,marketed sale,48,75,300,129.0,5.6,53,2.4,101.0,66.0,1061.0,698.0,163.0,90.0,107.0,Unknown,Y,NODATA!,,,2107.0,100.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,46.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 46% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,2.42,,N,natural,"39, Hatherall Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2016-11-08 06:28:44,owner-occupied,,,200003705423.0,Address Matched +1819800598032020082007462350978409,"17, Mote Avenue",,,ME15 7SU,9910461778,D,B,68,81,House,Detached,2020-08-18,E07000110,E14000804,Kent,2020-08-20,marketed sale,61,77,200,114.0,5.8,35,3.4,108.0,108.0,970.0,760.0,146.0,90.0,165.0,Unknown,Y,NODATA!,,,2107.0,100.0,"double glazing, unknown install date",Normal,2.0,7.0,7.0,95.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 95% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"17, Mote Avenue",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2020-08-20 07:46:23,owner-occupied,,,200003695742.0,Address Matched +1348248799902015080514583637750958,Frith Farm House,Dean Street,East Farleigh,ME15 0PR,5981397378,E,D,44,68,House,Detached,2015-08-05,E07000110,E14000804,Kent,2015-08-05,marketed sale,37,59,218,120.0,17.0,56,9.8,145.0,145.0,2880.0,1757.0,163.0,145.0,301.0,Single,N,NODATA!,,,2106.0,95.0,double glazing installed before 2002,Normal,2.0,10.0,10.0,67.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Mostly double glazing,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, oil",Average,Average,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 67% of fixed outlets,Good,Good,oil (not community),0.0,NO DATA!,,,,N,natural,"Frith Farm House, Dean Street, East Farleigh",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2015-08-05 14:58:36,owner-occupied,,,200003722016.0,Address Matched +799504519742012061210545892929598,"26, Essex Road",,,ME15 7QL,4744619968,D,B,66,82,House,End-Terrace,2012-06-11,E07000110,E14000700,Kent,2012-06-12,non marketed sale,65,82,205,89.0,3.0,39,1.4,65.0,42.0,446.0,419.0,138.0,74.0,76.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,44.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 44% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"26, Essex Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2012-06-12 10:54:58,owner-occupied,9.0,4.0,200003680441.0,Address Matched +160648636532015060513151345068905,Flat 42 Lee Heights,Bambridge Court,,ME14 2LG,3545942568,D,C,58,77,Flat,Mid-Terrace,2015-06-05,E07000110,E14000804,Kent,2015-06-05,marketed sale,63,62,238,245.0,3.3,40,3.4,57.0,64.0,576.0,314.0,300.0,146.0,81.0,Unknown,N,1st,Y,,2602.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,100.0,0.0,"Electric immersion, standard tariff",Very Poor,Poor,(another dwelling below),NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Room heaters, electric",Very Poor,Poor,Appliance thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,unheated corridor,14.0,,,N,natural,"Flat 42 Lee Heights, Bambridge Court",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2015-06-05 13:15:13,owner-occupied,,,10022893013.0,Address Matched +190407992912008111818325105989257,28 Lymington Court,Bicknor Road,,ME15 9PQ,2731254568,C,C,72,79,House,Enclosed End-Terrace,2008-11-18,E07000110,E14000700,Kent,2008-11-18,rental (private),68,76,311,233.0,2.0,52,1.5,31.0,17.0,251.0,204.0,86.0,75.0,38.16,Single,Y,NO DATA!,,,2103.0,100.0,double glazing installed before 2002,Normal,0.0,2.0,2.0,17.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, partial insulation (assumed)",Average,Average,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Room thermostat only,Poor,Poor,Low energy lighting in 17% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.31,0.0,N,natural,"28 Lymington Court, Bicknor Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1976-1982,2008-11-18 18:32:51,rental (private),,,200003680150.0,Address Matched +1289888489802015030511095031350158,"13, Mostyn Road",,,ME14 5NY,846083378,D,B,68,85,House,Semi-Detached,2015-03-05,E07000110,E14000804,Kent,2015-03-05,marketed sale,65,84,209,74.0,3.0,38,1.1,73.0,50.0,482.0,423.0,158.0,72.0,79.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,56.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 56% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"13, Mostyn Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2015-03-05 11:09:50,owner-occupied,,,200003716181.0,Address Matched +1135145789102014050311004825240778,"7, Derby Road",,,ME15 7JA,2177882278,E,C,52,78,House,Semi-Detached,2014-05-03,E07000110,E14000700,Kent,2014-05-03,none of the above,48,76,294,117.0,4.8,56,2.0,103.0,52.0,880.0,590.0,110.0,73.0,86.0,Single,Y,NODATA!,,,2107.0,100.0,double glazing installed during or after 2002,Normal,0.0,6.0,6.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"7, Derby Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2014-05-03 11:00:48,owner-occupied,8.0,0.0,200003712008.0,Address Matched +593362399142011021811575584399268,"8, Chantlers Meadow",Egerton,,TN27 9AB,5121193868,B,B,89,89,House,End-Terrace,2011-02-16,E07000110,E14000700,Kent,2011-02-18,new dwelling,89,89,89,89.0,1.1,14,1.1,49.0,49.0,278.0,278.0,97.0,97.0,77.86,off-peak 7 hour,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,,From main system,Very Good,Very Good,Average thermal transmittance 0.17 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.22 W/m?K,Very Good,Very Good,"Room heaters, electric",,,Average thermal transmittance 0.16 W/m?K,Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,,,NO DATA!,"8, Chantlers Meadow, Egerton",Maidstone,Faversham and Mid Kent,ASHFORD,NO DATA!,2011-02-18 11:57:55,,,,10012859070.0,Address Matched +1514096279262017012518014779358593,"501, Loose Road",,,ME15 9UQ,9790769478,E,B,50,81,House,Mid-Terrace,2017-01-25,E07000110,E14000804,Kent,2017-01-25,marketed sale,45,79,377,115.0,4.6,69,1.5,78.0,46.0,842.0,507.0,107.0,49.0,67.0,Single,Y,NODATA!,,,2107.0,100.0,double glazing installed before 2002,Normal,1.0,4.0,4.0,31.0,2.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 31% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"501, Loose Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2017-01-25 18:01:47,owner-occupied,,,200003680302.0,Address Matched +c85d8f5965cb115d52eea85964570f5e15cd228550a5d14b53d5be82ef75bf9f,"7, Boughton Parade Flats",Loose Road,,ME15 9QE,10001587552,E,E,41,50,Flat,Mid-Terrace,2021-07-24,E07000110,E14000804,Kent,2021-07-24,rental,43,51,406,334.0,5.3,69,4.4,65.0,65.0,1346.0,1064.0,234.0,234.0,77.0,dual,N,02,Y,,,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,Electric instantaneous at point of use,Very Poor,Poor,(other premises below),,,Fully double glazed,Good,Good,"Cavity wall, filled cavity and internal insulation",Good,Good,,,,"Flat, limited insulation",Poor,Poor,"Boiler and radiators, electric",Very Poor,Poor,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,no corridor,,2.43,0.0,N,natural,"7, Boughton Parade Flats, Loose Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2021-07-24 11:39:34,Rented (private),9.0,,200003680799.0,Address Matched +106093439302015032808411943752268,"2, Ellingham Leas",,,ME15 9AQ,5339037468,D,B,64,84,House,Semi-Detached,2015-03-26,E07000110,E14000700,Kent,2015-03-28,rental (private),58,82,251,97.0,4.3,44,1.7,89.0,59.0,716.0,523.0,169.0,75.0,97.0,Single,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,50.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"2, Ellingham Leas",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2015-03-28 08:41:19,rental (private),,,200003713487.0,Address Matched +1635593339642018061406413253889978,83 Farleigh Court,Farleigh Lane,,ME16 9BH,3609038578,D,C,64,75,Flat,End-Terrace,2018-06-13,E07000110,E14000804,Kent,2018-06-14,rental (private),60,76,276,167.0,3.1,49,1.8,47.0,47.0,472.0,306.0,167.0,106.0,63.0,Single,Y,Ground,N,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,no corridor,,,,N,natural,"83 Farleigh Court, Farleigh Lane",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2018-06-14 06:41:32,rental (private),,,200003683762.0,Address Matched +c868cb62bb6d8bad424513301ebeee71027b11ebc73943b72459837ee0ac58c5,FLAT 4,SHERINGHAM HOUSE,OWLETTS CLOSE,ME15 7TP,10001666492,E,C,54,76,Flat,Detached,2021-06-29,E07000110,E14000700,Kent,2021-07-01,ECO assessment,51,78,358,155.0,3.8,63,1.6,114.0,57.0,714.0,322.0,103.0,86.0,61.0,Single,Y,01,N,,,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,0.0,0.0,From main system,Good,Good,(another dwelling below),,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Average,Average,"Room heaters, electric",,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,unheated corridor,6.0,2.75,0.0,N,natural,"FLAT 4, SHERINGHAM HOUSE, OWLETTS CLOSE",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2021-07-01 16:30:45,Rented (social),8.0,,200003714111.0,Energy Assessor +306327310052009061612481004910468,13 Melrose Close,,,ME15 6BD,4856043668,B,B,88,89,House,End-Terrace,2009-06-16,E07000110,E14000804,Kent,2009-06-16,new dwelling,87,88,86,83.0,1.4,14,1.3,68.0,55.0,200.0,201.0,99.0,99.0,100.74,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,6.0,,From main system,Very Good,Very Good,Average thermal transmittance 0.20 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.21 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Very Good,Very Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.3,,,NO DATA!,13 Melrose Close,Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2009-06-16 12:48:10,,8.0,6.0,10014307032.0,Address Matched +598190539142017042911172182432488,"48, Foord Road",Lenham,,ME17 2QN,5193034868,C,B,70,88,Bungalow,Semi-Detached,2017-04-28,E07000110,E14000700,Kent,2017-04-29,rental (social),70,87,220,75.0,2.3,39,0.8,59.0,41.0,405.0,362.0,95.0,63.0,58.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,57.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 57% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"48, Foord Road, Lenham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2017-04-29 11:17:21,rental (social),,,200003711675.0,Address Matched +120178529062015070806422428548695,"26, Marigold Way",,,ME16 0GF,9208298468,C,B,72,88,House,Mid-Terrace,2015-07-04,E07000110,E14000804,Kent,2015-07-08,marketed sale,69,86,167,62.0,3.3,29,1.3,131.0,66.0,509.0,433.0,166.0,79.0,113.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,5.0,5.0,0.0,0.0,From main system,Average,Average,"Solid, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Timber frame, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"26, Marigold Way",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2015-07-08 06:42:24,owner-occupied,,,10022901846.0,Address Matched +57166300542009070211511053810328,"35, Stafford Gardens",,,ME15 6GZ,8542008568,B,B,82,84,Flat,Enclosed End-Terrace,2009-07-02,E07000110,E14000804,Kent,2009-07-02,rental (private),82,83,141,131.0,1.5,23,1.4,72.0,38.0,212.0,216.0,92.0,92.0,62.68,dual,Y,2nd,N,3.0,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,11.0,0.0,From main system,Very Good,Very Good,(other premises below),,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Flat, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 11% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,unheated corridor,6.5,2.43,0.0,N,natural,"35, Stafford Gardens",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2009-07-02 11:51:10,rental (private),,,10022895097.0,Address Matched +919787894552014110615342596049105,"27, Horwood Way",Harrietsham,,ME17 1FH,1592467078,B,B,82,82,Maisonette,Detached,2014-11-06,E07000110,E14000700,Kent,2014-11-06,new dwelling,91,91,58,58.0,0.6,10,0.6,43.0,43.0,216.0,216.0,86.0,86.0,60.0,standard tariff,,ground floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.14 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"27, Horwood Way, Harrietsham",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2014-11-06 15:34:25,owner-occupied,12.0,12.0,10014314907.0,Address Matched +756408985712012030614104290020096,"83, Dickens Road",,,ME14 2QR,699506968,C,C,69,71,House,Mid-Terrace,2012-03-06,E07000110,E14000804,Kent,2012-03-06,marketed sale,70,71,192,181.0,2.6,37,2.5,81.0,41.0,402.0,407.0,110.0,110.0,71.93,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,2.4,0.0,,natural,"83, Dickens Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2012-03-06 14:10:42,owner-occupied,9.0,0.0,200003670906.0,Address Matched +596884550152014112015412292949587,"16, Raynham Villas",Hunton Road,,TN12 9SZ,5734024868,D,B,55,83,Bungalow,Semi-Detached,2014-11-18,E07000110,E14000804,Kent,2014-11-20,assessment for green deal,58,84,290,96.0,3.1,51,1.0,45.0,45.0,482.0,339.0,336.0,172.0,60.0,Single,N,NODATA!,,,2206.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,86.0,0.0,"From main system, no cylinder thermostat",Very Poor,Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Air source heat pump, radiators, electric",Average,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 86% of fixed outlets,Very Good,Very Good,electricity (not community),0.0,NO DATA!,,,0.0,,natural,"16, Raynham Villas, Hunton Road",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1983-1990,2014-11-20 15:41:22,rental (social),7.0,6.0,200003723891.0,Address Matched +941666176732013060313053741078509,"52, Perryfield Street",,,ME14 2SX,7991519078,E,C,49,74,House,Mid-Terrace,2013-06-03,E07000110,E14000804,Kent,2013-06-03,marketed sale,44,70,300,143.0,6.3,58,3.1,93.0,57.0,1065.0,732.0,105.0,66.0,109.0,Single,Y,NODATA!,,,2107.0,100.0,double glazing installed before 2002,Normal,1.0,5.0,5.0,36.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 36% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"52, Perryfield Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2013-06-03 13:05:37,owner-occupied,11.0,4.0,200003669701.0,Address Matched +c925b9bf1f7540cef4ffe9d667c31887d7d93db89d21850045c402249b8b7671,Cheveney Barn Annexe,Salters Cross,Vicarage Road,ME18 6EA,10001639529,D,A,55,112,Bungalow,Detached,2021-07-23,E07000110,E14000804,Kent,2021-07-23,rental,47,101,298,-145.0,3.6,76,-0.3,66.0,45.0,375.0,261.0,141.0,114.0,47.0,Single,N,,,,,0.0,not defined,Normal,0.0,3.0,3.0,50.0,0.0,From main system,Average,Average,"Solid, limited insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, oil",Average,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 50% of fixed outlets,Good,Good,oil (not community),0.0,,,2.29,0.0,N,natural,"Cheveney Barn Annexe, Salters Cross, Vicarage Road",Maidstone,Maidstone and The Weald,YALDING,England and Wales: 1996-2002,2021-07-23 14:03:05,Rented (private),10.0,,10014308579.0,Address Matched +1294934319442015031619523431459868,Flat 3,Chillington House,St. Faiths Street,ME14 1LH,3439514378,F,F,33,33,Flat,Detached,2015-03-16,E07000110,E14000804,Kent,2015-03-16,new dwelling,41,41,413,413.0,5.0,70,5.0,47.0,47.0,1200.0,1200.0,175.0,175.0,71.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,,0.0,Electric instantaneous at point of use,Very Poor,Poor,(other premises below),,,Single glazed,Very Poor,Very Poor,Average thermal transmittance 1.15 W/m-¦K,Poor,Poor,,,,(other premises above),,,"Room heaters, electric",Very Poor,Poor,Programmer and room thermostat,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"Flat 3, Chillington House, St. Faiths Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2015-03-16 19:52:34,unknown,10.0,10.0,10091195911.0,Address Matched +156760910022008100212081741528308,Ammerdown Court,Highbourne Park,Lenham,ME17 2PE,432161568,D,C,63,70,House,Detached,2008-10-02,E07000110,E14000700,Kent,2008-10-02,not recorded,66,73,208,170.0,7.4,30,5.9,217.0,117.0,917.0,802.0,184.0,159.0,244.44,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,9.0,9.0,15.0,1.0,From main system,Good,Good,"Solid, limited insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, wood logs",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 15% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.74,0.0,N,natural,"Ammerdown Court, Highbourne Park, Lenham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1996-2002,2008-10-02 12:08:17,unknown,,,200003714838.0,Address Matched +911286209102015020315573706750678,Hillfield House,Scragged Oak Road,Detling,ME14 3HB,4117507078,F,B,29,91,House,Semi-Detached,2015-02-03,E07000110,E14000700,Kent,2015-02-03,assessment for green deal,29,86,305,14.0,13.0,74,1.6,152.0,83.0,2241.0,797.0,298.0,103.0,172.0,Single,N,NODATA!,,,2111.0,0.0,not defined,Normal,1.0,7.0,7.0,14.0,0.0,From main system,Poor,Poor,"Suspended, no insulation (assumed)",NO DATA!,,Single glazed,Very Poor,Very Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, oil",Poor,Average,TRVs and bypass,Average,Average,Low energy lighting in 14% of fixed outlets,Poor,Poor,oil (not community),0.0,NO DATA!,,,,N,natural,"Hillfield House, Scragged Oak Road, Detling",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2015-02-03 15:57:37,owner-occupied,,,200003694176.0,Address Matched +225980952132009020713422146068504,"105, Plains Avenue",,,ME15 7AR,5416557568,D,D,60,67,House,Semi-Detached,2009-02-07,E07000110,E14000700,Kent,2009-02-07,marketed sale,53,61,328,272.0,4.3,55,3.6,53.0,41.0,588.0,486.0,119.0,119.0,78.4,dual,Y,NO DATA!,,,2107.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,70.0,0.0,Gas multipoint,Average,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Poor,Poor,Low energy lighting in 70% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,0.0,N,natural,"105, Plains Avenue",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2009-02-07 13:42:21,owner-occupied,,,200003714158.0,Address Matched +958138839842013062420422414072128,"44, Hackney Road",,,ME16 8LN,6880730178,D,B,55,91,House,Mid-Terrace,2013-06-22,E07000110,E14000804,Kent,2013-06-24,marketed sale,52,93,325,25.0,3.2,63,0.3,57.0,34.0,508.0,276.0,153.0,61.0,52.0,dual,Y,NODATA!,,,2107.0,20.0,"double glazing, unknown install date",Normal,1.0,3.0,3.0,33.0,0.0,From main system,Average,Average,"Suspended, no insulation (assumed)",,,Some double glazing,Very Poor,Very Poor,"Granite or whinstone, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 33% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"44, Hackney Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2013-06-24 20:42:24,owner-occupied,6.0,2.0,200003655772.0,Address Matched +656456559142011080911245686899768,"19a, Bower Lane",,,ME16 8BJ,9141858868,C,B,80,81,Maisonette,NO DATA!,2011-07-16,E07000110,E14000804,Kent,2011-08-09,rental (private),85,86,114,105.0,1.1,22,1.0,58.0,33.0,192.0,196.0,73.0,73.0,51.22,Unknown,Y,1st,Y,,2106.0,,not defined,Much Less Than Typical,0.0,3.0,3.0,25.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Good,Good,"Solid brick, as built, insulated (assumed)",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 25% of fixed outlets,Average,Average,mains gas (not community),0.0,no corridor,,2.22,0.0,,natural,"19a, Bower Lane",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2011-08-09 11:24:56,rental (private),12.0,3.0,200003667414.0,Address Matched +1075989049432014013011112299778205,"14, Evelyn Road",,,ME16 8BL,4509278178,E,C,42,77,House,Mid-Terrace,2014-01-30,E07000110,E14000804,Kent,2014-01-30,marketed sale,41,78,335,108.0,6.3,64,2.0,124.0,62.0,1111.0,657.0,235.0,80.0,98.0,dual,Y,NODATA!,,,2107.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,0.0,0.0,"From main system, no cylinder thermostat",Poor,Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"14, Evelyn Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2014-01-30 11:11:22,owner-occupied,15.0,0.0,200003667509.0,Address Matched +1794980582642020032418520169902498,"1, Malden Drive",Invicta Park,,ME14 2NW,3623689678,D,B,67,82,House,Detached,2020-02-21,E07000110,E14000804,Kent,2020-03-24,Stock Condition Survey,60,78,203,106.0,5.5,36,2.9,97.0,97.0,931.0,689.0,132.0,85.0,154.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,7.0,7.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"1, Malden Drive, Invicta Park",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2020-03-24 18:52:01,rental (social),,,200003724027.0,Address Matched +1660713219802018090414244362080648,"31, Castle Dene",,,ME14 2NH,9893010678,B,A,86,93,House,Semi-Detached,2018-09-04,E07000110,E14000804,Kent,2018-09-04,new dwelling,87,94,71,25.0,1.9,12,0.6,87.0,87.0,314.0,316.0,97.0,52.0,159.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,"From main system, waste water heat recovery",Very Good,Very Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m-¦K,Very Good,Very Good,"Room heaters, wood logs",,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and underfloor heating, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"31, Castle Dene",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2018-09-04 14:24:43,owner-occupied,15.0,15.0,10091195139.0,Address Matched +1248712189502015012607051032049058,Ivahaven,South Lane,Sutton Valence,ME17 3AZ,8537780378,E,B,54,84,House,Detached,2014-12-15,E07000110,E14000700,Kent,2015-01-26,assessment for green deal,45,80,312,100.0,7.4,55,2.4,146.0,73.0,1336.0,648.0,120.0,80.0,135.0,Single,Y,NODATA!,,,2102.0,100.0,"double glazing, unknown install date",Normal,0.0,7.0,7.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"Ivahaven, South Lane, Sutton Valence",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2015-01-26 07:05:10,owner-occupied,,,200003696334.0,Address Matched +1669201352412018100814392597089463,"8, Boughton Park",Grafty Green,,ME17 2EF,4327270678,B,B,86,90,House,Detached,2018-10-08,E07000110,E14000700,Kent,2018-10-08,new dwelling,88,91,61,40.0,2.9,10,1.9,115.0,115.0,623.0,623.0,172.0,172.0,277.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Average,Good,Average thermal transmittance 0.12 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.14 W/m-¦K,Very Good,Very Good,"Room heaters, dual fuel (mineral and wood)",,,Average thermal transmittance 0.15 W/m-¦K,Good,Good,"Air source heat pump, underfloor, electric",Good,Very Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"8, Boughton Park, Grafty Green",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2018-10-08 14:39:25,unknown,35.0,35.0,10093304999.0,Address Matched +c8c046ef723aa506c7c327fd90c9e9a9605b84bf842380fd8c8b7a47742bd8a4,4 Dogwood Close,,,ME5 8XW,10001482935,C,A,74,92,House,Mid-Terrace,2021-08-10,E07000110,E14000700,Kent,2021-08-10,marketed sale,76,93,193,31.0,1.5,34,0.3,40.0,40.0,289.0,269.0,78.0,55.0,45.0,Unknown,Y,,,,,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.31,0.0,N,natural,4 Dogwood Close,Maidstone,Faversham and Mid Kent,CHATHAM,England and Wales: 1983-1990,2021-08-10 15:29:46,Owner-occupied,7.0,,200003676616.0,Energy Assessor +c8de160a1bf2302aab54b9cbcd4d471e630d8c2c432c7dca24a0a60901b11a56,Apartment 21,Sandling Park,Sandling Lane,ME14 2NY,10001596293,C,B,80,82,Flat,Mid-Terrace,2021-09-18,E07000110,E14000804,Kent,2021-09-19,non marketed sale,76,76,148,149.0,2.2,25,2.2,72.0,72.0,259.0,199.0,236.0,236.0,89.0,Unknown,N,01,N,,,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,"Electric immersion, off-peak",Poor,Poor,(another dwelling below),,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Room heaters, electric",Very Poor,Poor,Programmer and appliance thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,unheated corridor,1.59,2.3,0.0,N,natural,"Apartment 21, Sandling Park, Sandling Lane",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2021-09-19 00:08:56,Owner-occupied,9.0,,10014307116.0,Energy Assessor +980743179262013073015575331458017,Chegworth Mill Farm,Chegworth Road,Harrietsham,ME17 1DD,1343791178,C,B,75,86,House,Detached,2013-07-25,E07000110,E14000700,Kent,2013-07-30,marketed sale,70,81,121,62.0,4.4,27,2.5,154.0,77.0,710.0,731.0,174.0,100.0,166.0,Single,N,NODATA!,,,2110.0,78.0,double glazing installed during or after 2002,Normal,1.0,5.0,5.0,0.0,0.0,From main system,Average,Average,"Suspended, insulated (assumed)",,,Partial double glazing,Average,Average,"Solid brick, as built, insulated (assumed)",Good,Good,"Room heaters, wood logs",,,"Pitched, insulated at rafters",Good,Good,"Boiler and underfloor heating, oil",Good,Good,Time and temperature zone control,Very Good,Very Good,No low energy lighting,Very Poor,Very Poor,oil (not community),0.0,NO DATA!,,,0.0,,natural,"Chegworth Mill Farm, Chegworth Road, Harrietsham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2007 onwards,2013-07-30 15:57:53,owner-occupied,23.0,0.0,10014309469.0,Address Matched +1533474759962018051321531851278718,"2d, Lower Fant Road",,,ME16 8EA,1526501578,B,A,81,95,House,Detached,2018-05-13,E07000110,E14000804,Kent,2018-05-13,new dwelling,84,98,115,-3.0,1.2,20,0.0,43.0,43.0,209.0,209.0,75.0,45.0,58.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.12 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.19 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.1 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"2d, Lower Fant Road",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2018-05-13 21:53:18,unknown,15.0,15.0,10093304091.0,Address Matched +1641111561412018061822062597980156,"10, Roseholme",,,ME16 8DR,1656178578,D,C,64,80,House,Semi-Detached,2018-06-18,E07000110,E14000804,Kent,2018-06-18,marketed sale,60,78,227,113.0,3.9,40,2.0,70.0,70.0,750.0,594.0,105.0,71.0,98.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,2.0,6.0,3.0,93.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,Portable electric heaters (assumed),,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 93% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"10, Roseholme",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2018-06-18 22:06:25,owner-occupied,,,200003656327.0,Address Matched +187243492832018120615064694068391,Flat 5 Maison Des Fleurs,Hartnup Street,,ME16 8PD,9194364568,D,C,57,71,Flat,Mid-Terrace,2018-12-06,E07000110,E14000804,Kent,2018-12-06,rental (private),43,51,613,505.0,3.1,104,2.6,34.0,34.0,381.0,269.0,222.0,116.0,30.0,dual,N,1st,N,,2401.0,100.0,"double glazing, unknown install date",Normal,0.0,1.0,1.0,75.0,0.0,"Electric immersion, off-peak",Very Poor,Poor,"To external air, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,Portable electric heaters (assumed),,,(another dwelling above),,,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,electricity (not community),0.0,no corridor,,,,N,natural,"Flat 5 Maison Des Fleurs, Hartnup Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2018-12-06 15:06:46,rental (private),,,200003656666.0,Address Matched +40965346952015061020395194050449,Ferndale,Station Road,Staplehurst,TN12 0QG,4985643468,E,C,44,80,House,Semi-Detached,2015-06-04,E07000110,E14000804,Kent,2015-06-10,ECO assessment,37,75,335,102.0,9.7,62,3.0,155.0,79.0,1768.0,723.0,112.0,113.0,157.0,Single,Y,NODATA!,,,2104.0,0.0,not defined,Normal,0.0,7.0,7.0,0.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Single glazed,Very Poor,Very Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 12 mm loft insulation",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"Ferndale, Station Road, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1900-1929,2015-06-10 20:39:51,owner-occupied,,,200003679058.0,Address Matched +825135899602012081515341600029248,"23, St. Francis Close",Penenden Heath,,ME14 2TQ,658590078,C,B,73,89,House,Semi-Detached,2012-08-14,E07000110,E14000804,Kent,2012-08-15,marketed sale,75,90,160,43.0,2.0,30,0.6,67.0,40.0,317.0,323.0,100.0,63.0,64.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,33.0,0.0,From main system,Good,Good,"Solid, limited insulation (assumed)",,,Fully double glazed,Average,Average,"Timber frame, as built, insulated (assumed)",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 33% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"23, St. Francis Close, Penenden Heath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2012-08-15 15:34:16,owner-occupied,9.0,3.0,10022892037.0,Address Matched +1425822567632016032020592452978208,"94, Mill Bank",Headcorn,,TN27 9RH,6872243478,C,A,73,115,House,Mid-Terrace,2016-03-19,E07000110,E14000700,Kent,2016-03-20,rental (social),73,113,183,-130.0,2.0,32,-1.3,70.0,43.0,319.0,306.0,136.0,78.0,62.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,38.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, with external insulation",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 38% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,2.43,,N,natural,"94, Mill Bank, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,England and Wales: 1900-1929,2016-03-20 20:59:24,rental (social),,,200003698201.0,Address Matched +c8d4314c89994c6e24f8aa922eca30ef2fc0e6d95c6043f56d07683d6a0c2589,26 ELLIS FIELD,OTHAM,,ME15 8YL,10001445179,B,A,86,95,House,Detached,2021-07-27,E07000110,E14000804,Kent,2021-07-27,new dwelling,87,96,73,16.0,1.6,13,0.4,91.0,91.0,254.0,255.0,97.0,54.0,128.0,standard tariff,,,N,,,100.0,,,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.18 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.38,,,,"26 ELLIS FIELD, OTHAM",Maidstone,Maidstone and The Weald,OTHAM,2021,2021-07-27 09:20:21,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,14.0,,10094440521.0,Address Matched +334628939942011020409113565590678,"88, Sandling Road",,,ME14 2RJ,6931835668,E,D,50,65,House,Mid-Terrace,2011-02-03,E07000110,E14000804,Kent,2011-02-04,rental (private),49,58,303,239.0,7.5,50,6.0,163.0,84.0,1228.0,941.0,184.0,158.0,116.91,Single,Y,NO DATA!,,,2106.0,78.0,secondary glazing,Normal,1.0,8.0,7.0,5.0,2.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Partial secondary glazing,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,Portable electric heaters,,,"Flat, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 5% of fixed outlets,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.39,0.0,N,natural,"88, Sandling Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2011-02-04 09:11:35,rental (private),,,200003669499.0,Address Matched +371955261132009092822331346268001,"50, Bell Road",,,ME15 9HA,6186008668,D,C,68,77,Flat,Semi-Detached,2009-09-28,E07000110,E14000700,Kent,2009-09-28,rental (social),62,74,297,204.0,3.0,50,2.1,31.0,31.0,403.0,320.0,163.0,99.0,61.0,Single,Y,Ground,N,2.0,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,100.0,0.0,From main system,Average,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Average,Good,Programmer and room thermostat,Poor,Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.28,0.0,N,natural,"50, Bell Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2009-09-28 22:33:13,rental (social),,,200003681498.0,Address Matched +1393031909602015120414270446150648,"25, Bridger Way",,,ME17 3FE,6667901478,B,B,83,83,House,Detached,2015-12-04,E07000110,E14000700,Kent,2015-12-04,new dwelling,85,85,90,90.0,1.6,16,1.6,66.0,66.0,290.0,290.0,90.0,90.0,100.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"25, Bridger Way",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2015-12-04 14:27:04,unknown,1.0,1.0,10091194053.0,Address Matched +325404869022019110418290314548151,"19, Wheeler Street",,,ME14 1TU,5155674668,D,C,59,78,House,Mid-Terrace,2019-11-04,E07000110,E14000804,Kent,2019-11-04,rental (private),53,74,311,155.0,3.7,55,1.9,53.0,53.0,656.0,539.0,97.0,64.0,68.0,Unknown,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"19, Wheeler Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2019-11-04 18:29:03,rental (private),,,200003697639.0,Address Matched +459113267932011033112280746768106,"9, Trinity Way",,,ME15 9FY,6676114768,B,B,87,88,House,Mid-Terrace,2011-03-31,E07000110,E14000700,Kent,2011-03-31,new dwelling,88,88,97,93.0,1.0,16,1.0,47.0,35.0,215.0,217.0,57.0,57.0,63.14,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,,From main system,Very Good,Very Good,Average thermal transmittance 0.18 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m?K,Very Good,Very Good,"Room heaters, electric",,,Average thermal transmittance 0.10 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Very Good,Very Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in 67% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.31,,,NO DATA!,"9, Trinity Way",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2011-03-31 12:28:07,,,,10014311442.0,Address Matched +1364358369922015091518093709758785,1 The Bungalows,Church Street,Teston,ME18 5AH,8007609378,E,C,50,80,Bungalow,Detached,2015-09-15,E07000110,E14000804,Kent,2015-09-15,marketed sale,42,76,374,134.0,5.8,66,2.1,112.0,56.0,1048.0,610.0,122.0,72.0,88.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,5.0,5.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"1 The Bungalows, Church Street, Teston",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2015-09-15 18:09:37,owner-occupied,,,200003661890.0,Address Matched +c8df3ad03e8b8d244b873c07765d36c3c24de978985c6b3a521c4a5f17348307,40 North Street,Barming,,ME16 9HF,10001555442,C,C,72,76,House,Detached,2021-09-02,E07000110,E14000804,Kent,2021-09-03,marketed sale,77,82,113,84.0,2.1,20,1.6,80.0,80.0,507.0,453.0,105.0,72.0,103.0,Single,Y,,,,,100.0,double glazing installed during or after 2002,Normal,0.0,6.0,6.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.38,34.0,N,natural,"40 North Street, Barming",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1976-1982,2021-09-03 05:38:35,Owner-occupied,14.0,,200003665708.0,Energy Assessor +1515514489062017020616453169768243,"57, Robins Close",Lenham,,ME17 2LD,4633879478,D,B,67,81,House,Semi-Detached,2017-02-06,E07000110,E14000700,Kent,2017-02-06,ECO assessment,61,76,216,121.0,4.8,38,2.7,73.0,73.0,820.0,697.0,160.0,78.0,125.0,Unknown,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,2.0,8.0,8.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"57, Robins Close, Lenham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2017-02-06 16:45:31,owner-occupied,,,200003707262.0,Address Matched +596683626932011062715203942268006,"102, Mangravet Avenue",,,ME15 9BE,2652024868,D,C,68,71,Bungalow,End-Terrace,2011-06-27,E07000110,E14000700,Kent,2011-06-27,rental (social),69,72,210,187.0,2.4,40,2.2,66.0,33.0,403.0,384.0,75.0,75.0,60.59,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,2.4,0.0,,natural,"102, Mangravet Avenue",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2011-06-27 15:20:39,rental (social),6.0,0.0,200003713742.0,Address Matched +c8ef783ef518484406bc4ab6d9a395239d74eae7f271bbeac8bf9a955064df78,1 Church Cottages,High Street,Yalding,ME18 6HU,6000107768,E,A,50,92,House,Mid-Terrace,2021-08-19,E07000110,E14000804,Kent,2021-08-19,marketed sale,51,92,316,51.0,6.1,47,0.7,96.0,98.0,1326.0,776.0,107.0,74.0,129.0,Unknown,Y,,,,,25.0,secondary glazing,Normal,1.0,5.0,5.0,100.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Some secondary glazing,Poor,Poor,"Timber frame, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, insulated (assumed)",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.3,0.0,N,natural,"1 Church Cottages, High Street, Yalding",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2021-08-19 16:08:55,Owner-occupied,10.0,,200003660789.0,Energy Assessor +597258729042013040317150388472058,"44, Titchfield Close",,,ME15 8TA,2016424868,C,C,75,78,Flat,Enclosed End-Terrace,2013-03-25,E07000110,E14000700,Kent,2013-04-03,rental (social),78,82,155,130.0,1.4,29,1.2,61.0,30.0,261.0,243.0,74.0,74.0,48.0,Single,Y,2nd,Y,,2106.0,100.0,double glazing installed during or after 2002,More Than Typical,0.0,2.0,2.0,0.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Good,Good,"System built, with internal insulation",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,no corridor,,,0.0,,natural,"44, Titchfield Close",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2013-04-03 17:15:03,rental (social),7.0,0.0,200003727416.0,Address Matched +1414170729812016021707225795960843,"6, Stratford Drive",,,ME15 9HJ,8336952478,D,B,68,85,House,End-Terrace,2016-02-16,E07000110,E14000700,Kent,2016-02-17,rental (private),65,84,228,94.0,2.9,40,1.3,84.0,53.0,485.0,446.0,150.0,73.0,74.0,Unknown,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,42.0,0.0,From main system,Good,Good,"Solid, limited insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 42% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"6, Stratford Drive",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1996-2002,2016-02-17 07:22:57,rental (private),,,200003726779.0,Address Matched +1825357836552020091212263120900874,"78, Roseholme",,,ME16 8DS,8427602778,C,C,76,80,Flat,Mid-Terrace,2020-09-12,E07000110,E14000804,Kent,2020-09-12,rental (private),79,83,155,122.0,1.5,27,1.2,71.0,48.0,259.0,213.0,83.0,84.0,55.0,Single,Y,1st,N,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,50.0,0.0,From main system,Good,Good,(another dwelling below),NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,unheated corridor,5.75,,,N,natural,"78, Roseholme",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2020-09-12 12:26:31,rental (private),,,200003656372.0,Address Matched +1175951455652014071714112097940523,"1, Mallings Drive",Bearsted,,ME14 4HB,5367575278,D,B,65,82,Bungalow,Detached,2014-07-17,E07000110,E14000700,Kent,2014-07-17,rental (private),60,82,213,89.0,3.5,42,1.5,75.0,52.0,732.0,458.0,198.0,81.0,84.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,2.0,5.0,5.0,56.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 56% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,,natural,"1, Mallings Drive, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2014-07-17 14:11:20,rental (private),9.0,5.0,200003694663.0,Address Matched +477309219262010042822383975388440,"18, Tasker Close",Bearsted,,ME15 8NZ,4709145768,D,C,67,69,House,Detached,2010-04-28,E07000110,E14000700,Kent,2010-04-28,marketed sale,62,65,248,233.0,3.9,41,3.7,80.0,55.0,569.0,546.0,129.0,129.0,94.21,dual,Y,NO DATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,6.0,6.0,54.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 54% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.39,0.0,N,natural,"18, Tasker Close, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2010-04-28 22:38:39,owner-occupied,,,200003693227.0,Address Matched +502248769962011051920132857818239,4 Mill Cottages,Tutsham Farm,West Farleigh,ME15 0NF,3572617768,E,E,47,51,House,Mid-Terrace,2011-05-19,E07000110,E14000804,Kent,2011-05-19,none of the above,69,72,188,172.0,3.1,35,2.8,99.0,49.0,832.0,806.0,231.0,231.0,64.85,dual,N,NODATA!,,,2107.0,0.0,not defined,Normal,1.0,3.0,3.0,0.0,2.0,From main system,Very Poor,Good,"Suspended, insulated (assumed)",,,Single glazed,Very Poor,Very Poor,"Timber frame, as built, insulated (assumed)",Good,Good,"Room heaters, wood logs",,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, LPG",Poor,Good,"Programmer, TRVs and bypass",Average,Average,No low energy lighting,Very Poor,Very Poor,bottled LPG,0.0,NO DATA!,,2.14,0.0,,natural,"4 Mill Cottages, Tutsham Farm, West Farleigh",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2011-05-19 20:13:28,unknown,20.0,0.0,10022893680.0,Address Matched +83587359902015052313595649552998,Woodstock,Goudhurst Road,Marden,TN12 9LT,9959955468,E,C,52,75,House,Detached,2015-05-21,E07000110,E14000804,Kent,2015-05-23,marketed sale,66,86,135,23.0,4.9,29,1.6,103.0,103.0,1372.0,1323.0,292.0,168.0,170.0,Single,N,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,9.0,9.0,80.0,1.0,From main system,Poor,Good,"Solid, limited insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, LPG",Poor,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,LPG (not community),0.0,NO DATA!,,,,N,natural,"Woodstock, Goudhurst Road, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1996-2002,2015-05-23 13:59:56,owner-occupied,,,200003668594.0,Address Matched +401963361112009112310581101219172,"12a, Waterloo Street",,,ME15 7UH,1235110768,E,D,48,55,Maisonette,End-Terrace,2009-11-20,E07000110,E14000804,Kent,2009-11-23,rental (private),40,43,659,612.0,4.3,99,4.0,40.0,24.0,390.0,418.0,196.0,104.0,28.6,dual,N,1st,Y,3.0,2401.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,33.0,0.0,"Electric immersion, off-peak",Very Poor,Poor,(other premises below),,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Roof room(s), insulated (assumed)",Good,Good,Electric storage heaters,Poor,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 33% of fixed outlets,Average,Average,electricity - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.51,0.0,N,natural,"12a, Waterloo Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2009-11-23 10:58:11,rental (private),,,200003729616.0,Address Matched +115154615432014050613111408068102,"41a, Randall Street",,,ME14 2TB,1218148468,E,C,44,77,Flat,Mid-Terrace,2014-05-01,E07000110,E14000804,Kent,2014-05-06,marketed sale,26,60,611,262.0,6.9,108,3.0,76.0,46.0,815.0,267.0,203.0,125.0,64.0,dual,N,Ground,N,,2401.0,70.0,double glazing installed before 2002,Normal,3.0,4.0,4.0,33.0,0.0,"Electric immersion, off-peak",Average,Very Poor,"Solid, no insulation (assumed)",,,Partial double glazing,Poor,Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, electric",,,(another dwelling above),,,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 33% of fixed outlets,Average,Average,electricity (not community),0.0,unheated corridor,1.7,,0.0,,natural,"41a, Randall Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2014-05-06 13:11:14,owner-occupied,6.0,2.0,200003669813.0,Address Matched +412446382132009121415014330968391,"58, Fir Tree Grove",,,ME5 8XD,8150380768,D,C,58,78,House,End-Terrace,2009-12-14,E07000110,E14000700,Kent,2009-12-14,marketed sale,52,75,355,187.0,4.1,59,2.2,63.0,35.0,558.0,327.0,161.0,105.0,69.6,Single,Y,NO DATA!,,,2107.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,20.0,0.0,From main system,Average,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, partial insulation (assumed)",Average,Average,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Average,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 20% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.35,0.0,N,natural,"58, Fir Tree Grove",Maidstone,Faversham and Mid Kent,CHATHAM,England and Wales: 1976-1982,2009-12-14 15:01:43,owner-occupied,,,200003673733.0,Address Matched +596607509962014022812254644788014,32 Sunningdale Court,Square Hill Road,,ME15 7TT,1488024868,C,C,72,79,Flat,End-Terrace,2014-02-18,E07000110,E14000804,Kent,2014-02-28,none of the above,74,83,169,114.0,1.9,32,1.3,51.0,38.0,319.0,228.0,134.0,115.0,58.0,Single,Y,2nd,N,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,67.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 67% of fixed outlets,Good,Good,mains gas (not community),0.0,unheated corridor,4.866,,0.0,,natural,"32 Sunningdale Court, Square Hill Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2014-02-28 12:25:46,rental (social),6.0,4.0,200003696564.0,Address Matched +c9211b81ab9dae4fa5cf16e10ee0622b26707feb02b40baca56d70db5d2c54f2,"33, Salisbury Road",,,ME14 2TY,10001464899,D,B,65,84,House,Mid-Terrace,2021-07-19,E07000110,E14000804,Kent,2021-07-19,rental,62,83,213,80.0,3.9,37,1.5,86.0,86.0,761.0,504.0,99.0,69.0,105.0,Single,Y,,,,,100.0,double glazing installed during or after 2002,Normal,2.0,7.0,7.0,93.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, electric",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 93% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.61,0.0,N,natural,"33, Salisbury Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2021-07-19 16:51:17,Rented (private),14.0,,200003703413.0,Address Matched +c91ea1810170cb577055c330a1fe0d817c87036bb4e3b596d08c1b80835b68de,67 CUMBERLAND AVENUE,,,ME15 7JP,10001641171,E,C,51,80,House,End-Terrace,2021-06-28,E07000110,E14000700,Kent,2021-07-01,ECO assessment,47,78,329,121.0,5.6,58,2.1,152.0,76.0,1021.0,618.0,160.0,86.0,98.0,Single,Y,,,,,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,0.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,"Pitched, insulated (assumed)",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,,,2.75,0.0,N,natural,67 CUMBERLAND AVENUE,Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2021-07-01 10:27:49,Rented (social),10.0,,200003714155.0,Energy Assessor +1297350367532015031907023879978100,"3, Lenfield Avenue",,,ME14 5DU,6079134378,D,C,59,80,House,Semi-Detached,2015-03-17,E07000110,E14000804,Kent,2015-03-19,marketed sale,49,72,275,122.0,4.8,54,2.3,95.0,56.0,795.0,591.0,107.0,71.0,89.0,Unknown,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,4.0,4.0,30.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, coal",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 30% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"3, Lenfield Avenue",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2015-03-19 07:02:38,owner-occupied,,,200003689384.0,Address Matched +1158819959962017071315585814378513,Redthorn,Brishing Lane,Boughton Monchelsea,ME17 4JH,1109554278,E,C,46,79,Bungalow,Detached,2017-07-13,E07000110,E14000700,Kent,2017-07-13,marketed sale,39,74,356,124.0,7.6,66,2.7,109.0,71.0,1384.0,698.0,104.0,71.0,116.0,Single,Y,NODATA!,,,2107.0,100.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,46.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 46% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"Redthorn, Brishing Lane, Boughton Monchelsea",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2017-07-13 15:58:58,owner-occupied,,,200003721236.0,Address Matched +1531115579222017032715101100378133,Riverside Cottage,West Street,Hunton,ME15 0RQ,3025780578,D,B,62,83,House,Detached,2017-03-23,E07000110,E14000804,Kent,2017-03-27,marketed sale,58,82,220,91.0,9.5,35,3.9,175.0,112.0,1986.0,997.0,95.0,96.0,269.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,0.0,6.0,6.0,44.0,0.0,"From main system, plus solar",Very Good,Very Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Poor,Poor,"Room heaters, wood logs",,,"Roof room(s), ceiling insulated",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 44% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,Y,natural,"Riverside Cottage, West Street, Hunton",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2017-03-27 15:10:11,owner-occupied,,,200003727831.0,Address Matched +988176909922013081217224202228317,1 Trumans Farm Cottages,Willow Lane,Paddock Wood,TN12 6PF,1060052178,D,B,56,88,House,Semi-Detached,2013-08-12,E07000110,E14000804,Kent,2013-08-12,rental (private),45,80,252,59.0,5.4,60,1.7,88.0,52.0,869.0,474.0,198.0,110.0,90.0,Single,N,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,31.0,1.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, oil",Good,Average,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 31% of fixed outlets,Average,Average,oil (not community),0.0,NO DATA!,,,0.0,,natural,"1 Trumans Farm Cottages, Willow Lane, Paddock Wood",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1950-1966,2013-08-12 17:22:42,rental (private),13.0,4.0,200003659889.0,Address Matched +279899789262019102121574721698201,"8, Brooks Close",Staplehurst,,TN12 0PP,243851668,D,B,63,87,House,Semi-Detached,2019-10-21,E07000110,E14000804,Kent,2019-10-21,rental (private),57,86,260,67.0,3.6,46,1.0,71.0,71.0,550.0,352.0,171.0,70.0,79.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",More Than Typical,0.0,5.0,5.0,82.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Roof room(s), ceiling insulated",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 82% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"8, Brooks Close, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1976-1982,2019-10-21 21:57:47,rental (private),,,200003678385.0,Address Matched +417442229502015020509241175150548,"339, Sutton Road",,,ME15 9BN,509021768,D,B,61,83,House,Semi-Detached,2015-02-04,E07000110,E14000700,Kent,2015-02-05,none of the above,54,79,274,111.0,5.0,48,2.1,114.0,62.0,863.0,582.0,136.0,85.0,103.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,6.0,6.0,15.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 15% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"339, Sutton Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2015-02-05 09:24:11,owner-occupied,,,200003681361.0,Address Matched +484003089242010051214511170509228,70 Roman Way,Boughton Monchelsea,,ME17 4SH,5221785768,B,B,83,85,House,End-Terrace,2010-05-12,E07000110,E14000700,Kent,2010-05-12,new dwelling,83,83,138,132.0,1.4,23,1.3,51.0,31.0,221.0,224.0,82.0,82.0,60.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,,From main system,Very Good,Very Good,Average thermal transmittance 0.19 W/m?K,Very Good,Very Good,Fully double glazed,Good,Good,Average thermal transmittance 0.29 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.16 W/m?K,Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 38% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.33,,,NO DATA!,"70 Roman Way, Boughton Monchelsea",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2010-05-12 14:51:11,,,,10022896596.0,Address Matched +556172499242010102115135385009368,"23, Cornhill Place",,,ME15 6GX,9221790868,C,C,71,73,Flat,End-Terrace,2010-09-16,E07000110,E14000804,Kent,2010-10-21,new dwelling,79,80,173,168.0,1.7,27,1.6,49.0,32.0,210.0,211.0,259.0,259.0,61.6,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,,,"Electric immersion, standard tariff",Very Poor,Poor,(other premises below),,,Fully double glazed,Good,Good,Average thermal transmittance 0.32 W/m?K,Good,Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.3,,,NO DATA!,"23, Cornhill Place",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2010-10-21 15:13:53,,,,10022895028.0,Address Matched +453684887032010031417575703968007,11c Lower Stone Street,,,ME15 6LH,8783073768,E,E,42,49,Flat,Detached,2010-03-11,E07000110,E14000804,Kent,2010-03-14,rental (private),36,42,521,449.0,6.0,87,5.2,70.0,36.0,927.0,830.0,101.0,88.0,68.38,Single,Y,2nd,Y,3.0,2104.0,0.0,not defined,Normal,0.0,3.0,3.0,5.0,0.0,From main system,Good,Good,(other premises below),,,Single glazed,Very Poor,Very Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 5% of fixed outlets,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,unheated corridor,13.54,2.7,0.0,N,natural,11c Lower Stone Street,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2010-03-14 17:57:57,rental (private),,,, +924211292412014022812355499940505,41 Sunningdale Court,Square Hill Road,,ME15 7TU,5509297078,D,C,68,77,Flat,End-Terrace,2014-02-19,E07000110,E14000804,Kent,2014-02-28,none of the above,70,81,213,134.0,1.9,41,1.2,56.0,31.0,335.0,238.0,125.0,100.0,48.0,Single,Y,7th,N,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,20.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 20% of fixed outlets,Poor,Poor,mains gas (not community),0.0,unheated corridor,4.529,,0.0,,natural,"41 Sunningdale Court, Square Hill Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2014-02-28 12:35:54,rental (social),5.0,1.0,200003696579.0,Address Matched +275960094132019040414003913068409,"86, McKenzie Court",,,ME14 1JU,9913421668,B,B,81,84,Flat,Mid-Terrace,2019-04-04,E07000110,E14000804,Kent,2019-04-04,rental (private),73,76,217,195.0,1.7,37,1.5,90.0,45.0,116.0,101.0,146.0,146.0,46.0,dual,N,4th,Y,,2401.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,0.0,0.0,"Electric immersion, off-peak",Average,Poor,(another dwelling below),NO DATA!,,Fully double glazed,Good,Good,"System built, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,"Flat, insulated (assumed)",Good,Good,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,No low energy lighting,Very Poor,Very Poor,electricity (not community),0.0,heated corridor,,,,N,natural,"86, McKenzie Court",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2019-04-04 14:00:39,rental (private),,,10014306693.0,Address Matched +382069816012009101410051206919969,"3, Cheviot Gardens",Downswood,,ME15 8TE,9901668668,D,C,63,71,House,Detached,2009-10-14,E07000110,E14000700,Kent,2009-10-14,marketed sale,58,66,273,222.0,4.5,46,3.7,99.0,50.0,616.0,536.0,135.0,117.0,98.42,Single,Y,NO DATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,6.0,6.0,0.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Poor,Poor,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.37,0.0,N,natural,"3, Cheviot Gardens, Downswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2009-10-14 10:05:12,owner-occupied,,,200003691049.0,Address Matched +1744442712802020012816440666602288,"13, Challenger Way",Marden,,TN12 9GN,7853816678,B,A,84,95,House,Semi-Detached,2020-01-28,E07000110,E14000804,Kent,2020-01-28,new dwelling,86,97,82,5.0,1.3,14,0.1,69.0,69.0,222.0,222.0,75.0,45.0,90.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.12 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.28 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.14 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"13, Challenger Way, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,NO DATA!,2020-01-28 16:44:06,unknown,16.0,16.0,10094439855.0,Address Matched +773331079062014010212175257428877,"40, Blythe Road",,,ME15 7TS,7512727968,E,C,50,74,House,Semi-Detached,2013-12-02,E07000110,E14000804,Kent,2014-01-02,non marketed sale,46,71,257,127.0,8.8,49,4.4,140.0,78.0,1500.0,1005.0,241.0,123.0,180.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,2.0,6.0,5.0,21.0,1.0,"From main system, no cylinder thermostat",Average,Average,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,Portable electric heaters (assumed),,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 21% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"40, Blythe Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2014-01-02 12:17:52,owner-occupied,14.0,3.0,200003695814.0,Address Matched +755312882412012022812365499220896,"2, All Angels Close",,,ME16 8FR,8644295968,B,B,85,85,House,Mid-Terrace,2012-02-28,E07000110,E14000804,Kent,2012-02-28,new dwelling,89,89,68,68.0,0.9,13,0.9,45.0,45.0,199.0,199.0,54.0,54.0,73.72,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,12.0,,"From main system, plus solar",Very Good,Very Good,Average thermal transmittance 0.13 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.23 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.10 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,,,NO DATA!,"2, All Angels Close",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2012-02-28 12:36:54,,12.0,12.0,10014312874.0,Address Matched +871210029802013011110025905479698,"21, St. Catherines Road",,,ME15 9WP,6842024078,B,B,85,86,House,Semi-Detached,2013-01-11,E07000110,E14000700,Kent,2013-01-11,new dwelling,86,87,71,66.0,1.9,14,1.8,107.0,69.0,359.0,364.0,99.0,99.0,140.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.19 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.34 W/m?K,Good,Good,,,,Average thermal transmittance 0.25 W/m?K,Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 46% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"21, St. Catherines Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2013-01-11 10:02:59,NO DATA!,13.0,6.0,10014311697.0,Address Matched +877352069442013012911363307472318,"19, Hawkes Way",,,ME15 9ZL,3483464078,B,B,84,84,Flat,Detached,2013-01-29,E07000110,E14000700,Kent,2013-01-29,new dwelling,88,88,81,81.0,0.9,16,0.9,47.0,47.0,214.0,214.0,76.0,76.0,59.0,standard tariff,,ground floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.33 W/m?K,Good,Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"19, Hawkes Way",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2013-01-29 11:36:33,NO DATA!,8.0,6.0,10014312505.0,Address Matched +1306878409022015040720265995338375,"52, South Street",Barming,,ME16 9EY,7992005378,E,D,39,61,House,Detached,2015-04-07,E07000110,E14000804,Kent,2015-04-07,marketed sale,40,61,351,213.0,12.0,53,7.3,193.0,99.0,2675.0,1720.0,253.0,127.0,234.0,Single,Y,NODATA!,,,2104.0,0.0,not defined,Normal,1.0,10.0,10.0,0.0,2.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Single glazed,Very Poor,Very Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"52, South Street, Barming",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2015-04-07 20:26:59,owner-occupied,,,200003665623.0,Address Matched +982850719342013080121511114270898,Sycamore House,Sycamore Crescent,,ME16 0AG,8392012178,D,C,64,75,House,Detached,2013-08-01,E07000110,E14000804,Kent,2013-08-01,marketed sale,59,72,196,125.0,4.7,38,3.1,98.0,62.0,806.0,755.0,124.0,84.0,124.0,Single,Y,NODATA!,,,2106.0,86.0,double glazing installed during or after 2002,Normal,1.0,6.0,5.0,43.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Mostly double glazing,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 43% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"Sycamore House, Sycamore Crescent",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2013-08-01 21:51:11,owner-occupied,14.0,6.0,200003659605.0,Address Matched +257680500722009033121315100598611,"11, St. Andrews Road",,,ME16 9AN,1043000668,C,C,72,74,House,Mid-Terrace,2009-03-31,E07000110,E14000804,Kent,2009-03-31,marketed sale,68,70,225,208.0,3.0,37,2.8,57.0,38.0,403.0,386.0,104.0,98.0,79.3,Single,Y,NO DATA!,,,2107.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,50.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, TRVs and bypass",Poor,Poor,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,0.0,N,natural,"11, St. Andrews Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2009-03-31 21:31:51,owner-occupied,,,200003682079.0,Address Matched +501502684352010061815524091900072,Cherry Tree Oast,Fairbourne Lane,Harrietsham,ME17 1LN,290417768,F,E,29,42,House,Detached,2010-06-18,E07000110,E14000700,Kent,2010-06-18,rental (private),23,34,387,300.0,22.0,84,17.0,250.0,143.0,2975.0,2349.0,308.0,238.0,263.82,Single,N,NO DATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,7.0,7.0,25.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Sandstone, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, oil",Average,Average,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 25% of fixed outlets,Average,Average,oil - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.76,0.0,N,natural,"Cherry Tree Oast, Fairbourne Lane, Harrietsham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2010-06-18 15:52:40,rental (private),,,200003702960.0,Address Matched +1344470969302015072008371534759378,"88, Ashford Road",Bearsted,,ME14 4LT,9346367378,D,B,56,82,House,Detached,2015-07-13,E07000110,E14000700,Kent,2015-07-20,FiT application,46,77,282,105.0,8.0,50,3.0,82.0,82.0,1404.0,766.0,221.0,80.0,160.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,2.0,8.0,8.0,100.0,0.0,From main system,Average,Average,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"88, Ashford Road, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2015-07-20 08:37:15,owner-occupied,,,200003692440.0,Address Matched +1605670329142018020723370650680038,"103, Holtye Crescent",,,ME15 7DE,1121326578,E,C,52,79,House,Semi-Detached,2018-02-07,E07000110,E14000700,Kent,2018-02-07,marketed sale,44,75,358,144.0,5.4,63,2.2,77.0,59.0,866.0,591.0,192.0,71.0,86.0,Single,Y,NODATA!,,,2107.0,100.0,"double glazing, unknown install date",Normal,1.0,4.0,4.0,69.0,0.0,From main system,Average,Average,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 69% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"103, Holtye Crescent",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2018-02-07 23:37:06,owner-occupied,,,200003684036.0,Address Matched +791844171952016021912143996960198,"3, Chippendayle Drive",Harrietsham,,ME17 1AD,1865168968,D,B,63,84,House,Semi-Detached,2016-02-19,E07000110,E14000700,Kent,2016-02-19,ECO assessment,57,82,265,99.0,4.0,47,1.5,60.0,60.0,687.0,495.0,177.0,76.0,86.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Solid, limited insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, partial insulation (assumed)",Average,Average,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"3, Chippendayle Drive, Harrietsham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1996-2002,2016-02-19 12:14:39,owner-occupied,,,200003702994.0,Address Matched +c9b7d22737b3ef4b0f3b3be9f333dad5c71de3a98cd0e7d94cb8510de6528259,20 Buckland Rise,,,ME16 0YN,10001403654,B,B,82,82,Flat,End-Terrace,2021-09-06,E07000110,E14000804,Kent,2021-09-08,rental,85,85,102,102.0,1.1,18,1.1,60.0,60.0,197.0,197.0,81.0,81.0,63.0,Unknown,Y,01,N,,,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,(another dwelling below),,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,5.4,2.39,0.0,N,natural,20 Buckland Rise,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2021-09-08 05:43:33,Rented (private),9.0,,10014308215.0,Energy Assessor +198455992832009051914390079068392,"7, Lancashire Road",,,ME15 7QD,9249345568,C,C,72,75,House,Semi-Detached,2008-12-09,E07000110,E14000700,Kent,2009-05-19,rental (social),69,71,224,206.0,2.7,37,2.5,59.0,35.0,355.0,338.0,114.0,114.0,73.18,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,30.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 30% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.41,0.0,N,natural,"7, Lancashire Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2009-05-19 14:39:00,rental (social),,,200003683954.0,Address Matched +818927829262012072716295330168252,"13, Chislehurst Close",,,ME15 8TS,5357250078,C,B,72,83,House,Semi-Detached,2012-07-26,E07000110,E14000700,Kent,2012-07-27,none of the above,69,84,162,78.0,2.7,32,1.3,56.0,56.0,505.0,372.0,172.0,68.0,85.0,dual,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,89.0,0.0,"From main system, plus solar, no cylinder thermostat",Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 89% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,,natural,"13, Chislehurst Close",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2012-07-27 16:29:53,unknown,9.0,8.0,200003680980.0,Address Matched +681268279962015051614535080948415,"17, Abbots Field",,,ME16 8QQ,1878730968,C,B,71,83,House,Detached,2015-05-14,E07000110,E14000804,Kent,2015-05-16,marketed sale,68,80,174,98.0,3.4,31,1.9,129.0,64.0,547.0,558.0,134.0,86.0,110.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,1.0,5.0,5.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"17, Abbots Field",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2015-05-16 14:53:50,owner-occupied,,,200003674866.0,Address Matched +851734883812012110112274998029304,"66, Tarragon Road",,,ME16 0NG,3410382078,C,B,74,86,House,Semi-Detached,2012-11-01,E07000110,E14000804,Kent,2012-11-01,marketed sale,76,87,137,59.0,2.1,26,0.9,48.0,48.0,395.0,395.0,81.0,55.0,81.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"66, Tarragon Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2012-11-01 12:27:49,unknown,10.0,10.0,10022901795.0,Address Matched +421911159342010011618420475109868,"5, Beckenham Drive",,,ME16 0TG,2368151768,D,C,66,74,Bungalow,Semi-Detached,2010-01-16,E07000110,E14000804,Kent,2010-01-16,marketed sale,61,70,253,195.0,4.1,42,3.2,102.0,56.0,574.0,478.0,149.0,119.0,97.9,dual,Y,NO DATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,20.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 20% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.42,0.0,N,natural,"5, Beckenham Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2010-01-16 18:42:04,owner-occupied,,,200003662165.0,Address Matched +396749404952009111116250507919662,House Adjoining,1 Meadow Walk,Maidstone,ME15 7RY,6268479668,E,C,49,74,House,Detached,2009-11-11,E07000110,E14000804,Kent,2009-11-11,marketed sale,66,67,238,234.0,3.8,36,3.7,112.0,62.0,550.0,310.0,334.0,158.0,105.22,Unknown,N,NO DATA!,,,2601.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,0.0,0.0,0.0,No system present: electric immersion assumed,Very Poor,Poor,"Solid, insulated (assumed)",,,Fully double glazed,Good,Good,"Timber frame, filled cavity",Good,Good,,,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Room heaters, electric",Very Poor,Poor,No thermostatic control of room temperature,Poor,Poor,No low energy lighting,Very Poor,Very Poor,electricity - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.28,0.0,N,natural,"House Adjoining, 1 Meadow Walk, Maidstone",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2009-11-11 16:25:05,owner-occupied,,,200003695381.0,Address Matched +505727699222012012014160757808932,"178, Kingfisher Meadow",,,ME16 8RD,3556937768,D,B,67,81,Flat,Detached,2012-01-20,E07000110,E14000804,Kent,2012-01-20,marketed sale,70,69,218,223.0,2.5,39,2.5,61.0,44.0,312.0,194.0,239.0,110.0,64.44,Single,N,Ground,Y,,2603.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,50.0,0.0,"Electric immersion, standard tariff",Very Poor,Very Poor,"Suspended, insulated (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Room heaters, electric",Very Poor,Very Poor,Programmer and appliance thermostats,Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,electricity (not community),0.0,unheated corridor,0.0,2.46,0.0,,natural,"178, Kingfisher Meadow",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2012-01-20 14:16:07,owner-occupied,6.0,3.0,10022892389.0,Address Matched +1b3770891755ad877035ad661b0cf4f2ecb72a2e293dcf1d1a2099e3635352f0,23 County Road,,,ME14 1XJ,10003429367,E,E,43,43,Flat,Mid-Terrace,2022-10-14,E07000110,E14000804,Kent,2022-10-14,not sale or rental,54,54,379,379.0,2.8,64,2.8,44.0,44.0,987.0,987.0,66.0,66.0,43.0,standard tariff,,1,N,,,100.0,,,,,,100.0,0.0,Gas multipoint,Average,Average,Average thermal transmittance 0.51 W/m-¦K,Poor,Poor,Fully double glazed,Average,Average,Average thermal transmittance 1.00 W/m-¦K,Average,Average,,,,(other premises above),,,"Room heaters, electric",Very Poor,Poor,Programmer and appliance thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",0.0,,,2.2,,,,23 County Road,Maidstone,Maidstone and The Weald,MAIDSTONE,2022,2022-10-14 08:02:06,Rented (private),10.0,,200003699162.0,Energy Assessor +c9c9be214d76addc6dd6cacc067d25145f7e4b860c4e17a2abe3f6553afbd2c3,157 Bicknor Road,,,ME15 9PB,10001379537,D,B,68,85,Bungalow,Mid-Terrace,2021-09-07,E07000110,E14000700,Kent,2021-09-07,rental,67,84,264,105.0,2.2,47,0.9,43.0,43.0,397.0,372.0,79.0,55.0,48.0,Single,Y,,,,,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"System built, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.41,0.0,N,natural,157 Bicknor Road,Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2021-09-07 12:37:42,Rented (social),6.0,,200003679910.0,Energy Assessor +1818969960352020081816460526900871,"53, Coppice Road",Coxheath,,ME17 4TT,8123061778,B,A,84,95,House,End-Terrace,2020-08-18,E07000110,E14000804,Kent,2020-08-18,new dwelling,86,96,83,15.0,1.5,15,0.3,76.0,76.0,252.0,252.0,79.0,48.0,101.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.21 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"53, Coppice Road, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2020-08-18 16:46:05,unknown,1.0,1.0,10094443724.0,Address Matched +c9ccf1d3b840adf757d8a2c95f63b7538938d6b4d376798e6eb6d04fc010985e,65 WHEELER STREET,,,ME14 1UB,10001549434,C,B,75,89,House,Mid-Terrace,2021-07-13,E07000110,E14000804,Kent,2021-07-13,marketed sale,75,89,156,50.0,2.0,27,0.7,60.0,60.0,362.0,334.0,81.0,53.0,73.0,Single,Y,,,,,100.0,double glazing installed during or after 2002,Normal,1.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.38,0.0,N,natural,65 WHEELER STREET,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2021-07-13 21:16:52,Owner-occupied,13.0,,200003698878.0,Energy Assessor +1663681739842018091721425762089838,"26, Shepway Court",Norfolk Road,,ME15 7JF,6850330678,D,B,65,88,Bungalow,Semi-Detached,2018-09-17,E07000110,E14000700,Kent,2018-09-17,rental (social),62,88,293,73.0,2.6,52,0.7,58.0,39.0,426.0,317.0,117.0,69.0,51.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,50.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, partial insulation (assumed)",Average,Average,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"26, Shepway Court, Norfolk Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1976-1982,2018-09-17 21:42:57,rental (social),,,200003713202.0,Address Matched +1774073003252019122010063193919565,"41, Drawbridge Close",,,ME15 7EZ,5509338678,C,B,75,87,House,Semi-Detached,2019-12-19,E07000110,E14000700,Kent,2019-12-20,rental (social),73,85,165,79.0,2.5,29,1.2,68.0,68.0,389.0,392.0,125.0,79.0,85.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Suspended, limited insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 270 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"41, Drawbridge Close",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1996-2002,2019-12-20 10:06:31,rental (social),,,10014306224.0,Address Matched +794685895232012052817365154268706,"138, South Park Road",,,ME15 7AJ,9644778968,D,B,56,85,House,End-Terrace,2012-05-28,E07000110,E14000700,Kent,2012-05-28,marketed sale,53,85,286,73.0,3.8,55,1.0,78.0,39.0,559.0,388.0,146.0,63.0,69.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,0.0,0.0,From main system,Average,Average,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"138, South Park Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2012-05-28 17:36:51,owner-occupied,10.0,0.0,200003715804.0,Address Matched +420832264052010011414350794900275,"25, Spenlow Drive",,,ME5 9JT,2560441768,C,C,69,77,House,Semi-Detached,2010-01-14,E07000110,E14000700,Kent,2010-01-14,marketed sale,65,74,282,208.0,2.6,47,1.9,55.0,32.0,386.0,314.0,123.0,97.0,66.34,dual,Y,NO DATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,29.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 29% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.35,0.0,N,natural,"25, Spenlow Drive",Maidstone,Faversham and Mid Kent,CHATHAM,England and Wales: 1983-1990,2010-01-14 14:35:07,owner-occupied,,,200003707982.0,Address Matched +c9d908b3dda40c1044a606e4efbde05c5e7d679c7ec4a272100c432d4e6063a3,28 THOMAS PLACE,JAMES WHATMAN WAY,,ME14 1FP,9171358868,B,B,82,82,Flat,Enclosed End-Terrace,2021-07-21,E07000110,E14000804,Kent,2021-07-29,rental,84,84,110,110.0,1.2,19,1.2,62.0,62.0,165.0,165.0,108.0,108.0,65.0,Single,N,05,N,,,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,Community scheme,Good,Good,(another dwelling below),,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Very Good,Very Good,,,,(another dwelling above),,,Community scheme,Good,Good,"Flat rate charging, programmer and room thermostat",Poor,Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (community),0.0,unheated corridor,8.26,2.39,0.0,N,natural,"28 THOMAS PLACE, JAMES WHATMAN WAY",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2012 onwards,2021-07-29 13:58:24,Rented (social),7.0,,10014312694.0,Energy Assessor +1491053224712016102512404990269146,"15, Lucerne Street",,,ME14 1UE,1617408478,E,B,45,84,House,End-Terrace,2016-10-21,E07000110,E14000804,Kent,2016-10-25,ECO assessment,38,81,412,97.0,6.1,73,1.5,105.0,55.0,1111.0,500.0,120.0,54.0,83.0,Single,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,1.0,4.0,4.0,10.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 10% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,2.25,,N,natural,"15, Lucerne Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2016-10-25 12:40:49,owner-occupied,,,200003698903.0,Address Matched +476111439402010042617073071502368,"20, Hampshire Drive",,,ME15 7ET,8479035768,D,C,68,74,House,Mid-Terrace,2010-04-26,E07000110,E14000700,Kent,2010-04-26,marketed sale,64,71,231,187.0,4.0,38,3.3,105.0,61.0,564.0,488.0,140.0,120.0,104.95,dual,Y,NO DATA!,,,2104.0,75.0,double glazing installed before 2002,Normal,1.0,4.0,4.0,27.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Partial double glazing,Poor,Poor,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 27% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.47,0.0,N,natural,"20, Hampshire Drive",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2010-04-26 17:07:30,owner-occupied,,,200003711418.0,Address Matched +558504319302010110123521386100598,"42, Camp Way",,,ME15 9BB,3313811868,C,C,76,77,House,Mid-Terrace,2010-11-01,E07000110,E14000700,Kent,2010-11-01,rental (social),73,73,195,190.0,2.4,32,2.4,59.0,40.0,372.0,376.0,110.0,110.0,75.2,Single,Y,NO DATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,50.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"System built, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.47,0.0,N,natural,"42, Camp Way",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2010-11-01 23:52:13,rental (social),,,200003710069.0,Address Matched +ca03975aaded2655314c6e692c6af7de03223d1755775ec7b3f851558dbc2c56,Flat 1,Rydal House,Westmorland Green,ME15 8BJ,10001588234,C,C,71,74,Flat,Detached,2021-09-07,E07000110,E14000700,Kent,2021-09-07,rental,70,74,215,181.0,2.4,38,2.0,79.0,55.0,395.0,341.0,87.0,87.0,62.0,Single,Y,00,N,,,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,57.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"System built, with external insulation",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 57% of fixed outlets,Good,Good,mains gas (not community),0.0,unheated corridor,5.28,2.46,0.0,N,natural,"Flat 1, Rydal House, Westmorland Green",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2021-09-07 11:44:27,Rented (social),7.0,,200003685481.0,Energy Assessor +356771840062009090314045526578651,"6, Rainham Close",,,ME15 6UQ,5296496668,D,C,56,75,House,Semi-Detached,2009-09-03,E07000110,E14000804,Kent,2009-09-03,marketed sale,49,71,385,216.0,4.5,64,2.5,55.0,35.0,626.0,377.0,148.0,107.0,69.48,Unknown,Y,NO DATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,40.0,1.0,From main system,Average,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Average,Good,Programmer and room thermostat,Poor,Poor,Low energy lighting in 40% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.27,0.0,N,natural,"6, Rainham Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2009-09-03 14:04:55,owner-occupied,,,200003682613.0,Address Matched +86498375812014092622044296240843,"64, Beaumont Road",,,ME16 8NQ,8369565468,D,B,68,87,House,Semi-Detached,2014-09-26,E07000110,E14000804,Kent,2014-09-26,marketed sale,68,89,192,51.0,2.6,37,0.8,69.0,46.0,511.0,378.0,96.0,67.0,72.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,5.0,5.0,50.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"64, Beaumont Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2014-09-26 22:04:42,owner-occupied,10.0,5.0,200003674480.0,Address Matched +597001409922011031709580464438279,"23a, Durham Close",,,ME15 8DT,7616024868,B,B,81,82,Flat,Semi-Detached,2011-03-17,E07000110,E14000700,Kent,2011-03-17,rental (social),79,80,164,160.0,1.6,27,1.6,49.0,33.0,281.0,284.0,88.0,88.0,59.75,Single,Y,1st,Y,2.0,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,50.0,0.0,From main system,Very Good,Very Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.43,0.0,N,natural,"23a, Durham Close",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2011-03-17 09:58:04,rental (social),,,200003687023.0,Address Matched +1318795194912015051213002998050739,Little Orchard,Pickering Street,Loose,ME15 9RH,7987485378,C,B,80,81,House,Detached,2015-05-08,E07000110,E14000804,Kent,2015-05-12,marketed sale,76,77,117,112.0,4.6,18,4.4,187.0,103.0,1400.0,1413.0,148.0,148.0,253.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,3.0,8.0,8.0,19.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, wood logs",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 19% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"Little Orchard, Pickering Street, Loose",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2015-05-12 13:00:29,owner-occupied,,,200003725483.0,Address Matched +493633451832010060211385813968401,Flat 3 Edward Hunter House,Vinters Road,,ME14 5DB,5103456768,B,B,85,85,Flat,Semi-Detached,2008-09-18,E07000110,E14000700,Kent,2010-06-02,new dwelling,86,86,138,138.0,0.9,21,0.9,26.0,26.0,116.0,116.0,80.0,80.0,45.63,off-peak 7 hour,,top floor,,,,,NO DATA!,NO DATA!,,,,,,"Electric immersion, off-peak",Average,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.22 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.14 W/m?K,Very Good,Very Good,"Air source heat pump, underfloor, electric",Average,Very Good,Time and temperature zone control,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",0.0,NO DATA!,,2.3,,,NO DATA!,"Flat 3 Edward Hunter House, Vinters Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2010-06-02 11:38:58,,,,10014311062.0,Address Matched +334574509222012072015431325508762,"32, Chapman Avenue",,,ME15 8EJ,6239045668,C,B,71,87,House,Semi-Detached,2012-07-20,E07000110,E14000700,Kent,2012-07-20,marketed sale,71,88,161,53.0,2.7,31,0.9,47.0,47.0,468.0,364.0,87.0,62.0,87.0,Single,Y,NODATA!,,,2106.0,0.0,single glazing,Normal,0.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"32, Chapman Avenue",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2012-07-20 15:43:13,owner-occupied,9.0,9.0,200003684649.0,Address Matched +1799644445032020052800082697278009,"43, Bell Meadow",,,ME15 9ND,4917020778,C,B,71,84,House,Semi-Detached,2020-05-27,E07000110,E14000700,Kent,2020-05-28,marketed sale,68,81,183,100.0,3.5,32,2.0,116.0,79.0,547.0,518.0,138.0,83.0,109.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,2.0,6.0,6.0,54.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, 270 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 54% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"43, Bell Meadow",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2020-05-28 00:08:26,owner-occupied,,,200003682734.0,Address Matched +1569984262252017082413565896930656,"21, St. Annes Court",,,ME16 0UQ,6667263578,C,C,74,78,Flat,Semi-Detached,2017-08-18,E07000110,E14000804,Kent,2017-08-24,marketed sale,59,65,348,304.0,2.4,59,2.1,40.0,40.0,255.0,208.0,125.0,108.0,40.0,dual,N,2nd,Y,,2402.0,100.0,double glazing installed before 2002,Normal,0.0,2.0,2.0,83.0,0.0,"Electric immersion, off-peak",Average,Poor,(another dwelling below),NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,Portable electric heaters (assumed),,,"Pitched, insulated (assumed)",Average,Average,Electric storage heaters,Average,Very Poor,Automatic charge control,Average,Average,Low energy lighting in 83% of fixed outlets,Very Good,Very Good,electricity (not community),0.0,no corridor,,,,N,natural,"21, St. Annes Court",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2017-08-24 13:56:58,owner-occupied,,,200003666975.0,Address Matched +1640521969642018061416454656889448,"9, Roy Hood Court",Boughton Monchelsea,,ME17 4FN,8670568578,B,A,84,94,House,Semi-Detached,2018-06-14,E07000110,E14000804,Kent,2018-06-14,new dwelling,85,94,85,24.0,1.8,15,0.5,72.0,72.0,278.0,279.0,101.0,55.0,119.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.20 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.09 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"9, Roy Hood Court, Boughton Monchelsea",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2018-06-14 16:45:46,unknown,10.0,10.0,10093304951.0,Address Matched +1799805715032020052909465427278108,"67, Button Lane",Bearsted,,ME15 8DW,1897120778,D,B,67,82,House,Detached,2020-05-29,E07000110,E14000700,Kent,2020-05-29,marketed sale,60,78,217,109.0,4.8,38,2.5,90.0,90.0,774.0,618.0,160.0,76.0,125.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,7.0,7.0,100.0,0.0,From main system,Good,Good,"Suspended, limited insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"67, Button Lane, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1996-2002,2020-05-29 09:46:54,owner-occupied,,,200003699395.0,Address Matched +394805310062009110716054159638361,"59, Corner Farm Road",Staplehurst,,TN12 0PR,6555169668,D,C,56,71,House,Semi-Detached,2009-11-07,E07000110,E14000804,Kent,2009-11-07,marketed sale,54,70,316,210.0,4.5,52,3.0,76.0,43.0,704.0,489.0,122.0,105.0,86.49,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,5.0,5.0,25.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 25% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,,0.0,N,natural,"59, Corner Farm Road, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,,2009-11-07 16:05:41,owner-occupied,,,200003679006.0,Address Matched +1497115049542016111619003240869468,1 Rock Cottages,The Street,Ulcombe,ME17 1DT,564948478,E,B,47,86,House,End-Terrace,2016-11-16,E07000110,E14000700,Kent,2016-11-16,marketed sale,40,80,275,56.0,6.0,71,1.7,112.0,56.0,725.0,321.0,145.0,78.0,85.0,Unknown,N,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,5.0,5.0,0.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, oil",Average,Average,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,oil (not community),0.0,NO DATA!,,2.32,,N,natural,"1 Rock Cottages, The Street, Ulcombe",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1900-1929,2016-11-16 19:00:32,owner-occupied,,,200003701214.0,Address Matched +317047279112009071014020101710068,"3, Malthouse Close",Lenham,,ME17 2LQ,848914668,D,C,64,78,House,Semi-Detached,2009-06-30,E07000110,E14000700,Kent,2009-07-10,rental (private),58,76,330,193.0,3.2,55,1.9,53.0,31.0,358.0,266.0,179.0,95.0,57.38,dual,Y,NO DATA!,,,2104.0,0.0,INVALID!,Normal,0.0,3.0,3.0,30.0,0.0,"From main system, no cylinderstat",Poor,Average,"Solid, no insulation (assumed)",,,Partial double glazing,Good,Good,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 75mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Average,Good,Programmer and room thermostat,Poor,Poor,Low energy lighting in 30% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.31,0.0,N,natural,"3, Malthouse Close, Lenham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2009-07-10 14:02:01,rental (private),,,200003707313.0,Address Matched +1610926969262018022618585056468648,"16, Recreation Close",,,ME14 5AZ,4550656578,D,C,58,78,House,Semi-Detached,2018-02-26,E07000110,E14000804,Kent,2018-02-26,marketed sale,54,76,275,127.0,4.4,48,2.1,85.0,61.0,846.0,622.0,103.0,69.0,91.0,Single,Y,NODATA!,,,2106.0,80.0,double glazing installed before 2002,Normal,2.0,6.0,6.0,63.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Mostly double glazing,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,"Pitched, 25 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 63% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"16, Recreation Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2018-02-26 18:58:50,owner-occupied,,,200003705252.0,Address Matched +ca513cf0e8c55b8e3f53d1223a196c28fb2bd654a1b97766d9937891c050b5ad,37 PERRY STREET,,,ME14 2RP,10001475721,C,B,70,84,House,End-Terrace,2021-06-25,E07000110,E14000804,Kent,2021-07-30,not sale or rental,67,81,191,93.0,3.1,34,1.6,86.0,86.0,500.0,448.0,125.0,80.0,92.0,Single,Y,,,,,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,86.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Roof room(s), insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 86% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.6,0.0,N,natural,37 PERRY STREET,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1991-1995,2021-07-30 14:48:41,Rented (social),14.0,,200003669989.0,Energy Assessor +1286288259042015022516095835352878,"29, Mallings Drive",Bearsted,,ME14 4HF,3035453378,E,C,47,76,House,Semi-Detached,2015-02-23,E07000110,E14000700,Kent,2015-02-25,none of the above,39,70,377,156.0,6.9,67,2.9,93.0,62.0,1271.0,749.0,110.0,77.0,103.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,2.0,6.0,6.0,50.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 12 mm loft insulation",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"29, Mallings Drive, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2015-02-25 16:09:58,owner-occupied,,,200003694794.0,Address Matched +388869020612009102718022902219569,"19, Forestdale Road",,,ME5 9NB,5944029668,D,C,64,69,House,Detached,2009-10-27,E07000110,E14000700,Kent,2009-10-27,marketed sale,59,63,285,254.0,3.9,47,3.5,76.0,44.0,562.0,518.0,114.0,114.0,82.3,Single,Y,NO DATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,27.0,1.0,From main system,Good,Good,"Solid, limited insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, mains gas",,,"Pitched, 100mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 27% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,,0.0,N,natural,"19, Forestdale Road",Maidstone,Faversham and Mid Kent,CHATHAM,,2009-10-27 18:02:29,owner-occupied,,,200003708235.0,Address Matched +1025814110732013101614333470978796,"24, Barton Road",,,ME15 7BX,1690715178,D,B,61,84,House,Mid-Terrace,2013-10-16,E07000110,E14000804,Kent,2013-10-16,none of the above,57,84,229,75.0,4.4,44,1.5,55.0,55.0,603.0,360.0,287.0,184.0,99.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,100.0,0.0,"From main system, no cylinder thermostat",Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"24, Barton Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2013-10-16 14:33:34,owner-occupied,9.0,9.0,200003683748.0,Address Matched +1523755635212017030115041493030850,"91, Edmett Way",,,ME17 3FA,8042530578,B,B,83,83,House,Semi-Detached,2017-03-01,E07000110,E14000700,Kent,2017-03-01,new dwelling,85,85,87,87.0,1.5,15,1.5,66.0,66.0,259.0,259.0,87.0,87.0,96.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.27 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.15 W/m-¦K,Good,Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"91, Edmett Way",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2017-03-01 15:04:14,unknown,1.0,1.0,10091194006.0,Address Matched +446727259062010030312220623298320,"4, Honduras Terrace",Invicta Park,,ME14 2PA,2297523768,D,D,67,67,House,Mid-Terrace,2010-03-01,E07000110,E14000804,Kent,2010-03-03,marketed sale,66,66,255,255.0,3.0,42,3.0,36.0,36.0,520.0,520.0,89.0,89.0,70.4,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,100.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.3,0.0,N,natural,"4, Honduras Terrace, Invicta Park",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2010-03-03 12:22:06,owner-occupied,,,200003724007.0,Address Matched +1758262930132019101511022062978990,"10, Coleman Way",,,ME17 3TS,3092917678,B,A,84,96,House,Semi-Detached,2019-10-15,E07000110,E14000700,Kent,2019-10-15,new dwelling,86,98,90,2.0,1.2,16,0.1,63.0,63.0,212.0,212.0,71.0,42.0,78.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"10, Coleman Way",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2019-10-15 11:02:20,unknown,7.0,7.0,10094441817.0,Address Matched +397823438732013081606391008968201,12 Greenfields View,Oxford Gardens,,ME15 8FJ,3108289668,B,B,82,82,Flat,Mid-Terrace,2013-08-15,E07000110,E14000700,Kent,2013-08-16,marketed sale,87,87,90,90.0,0.9,17,0.9,36.0,36.0,174.0,174.0,88.0,88.0,51.0,Single,Y,1st,N,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,100.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Good,Good,"Timber frame, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,7.0,,0.0,,natural,"12 Greenfields View, Oxford Gardens",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2003-2006,2013-08-16 06:39:10,owner-occupied,6.0,6.0,10014309013.0,Address Matched +458949129022012060816102544188542,"24, Trinity Way",,,ME15 9FY,4402214768,B,B,82,82,House,End-Terrace,2012-06-08,E07000110,E14000700,Kent,2012-06-08,new dwelling,86,86,91,91.0,1.3,17,1.3,53.0,53.0,271.0,271.0,47.0,47.0,76.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,9.0,,"From main system, plus solar",Very Good,Very Good,Average thermal transmittance 0.19 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m?K,Very Good,Very Good,"Room heaters, electric",,,Average thermal transmittance 0.09 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.31,,,NO DATA!,"24, Trinity Way",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2012-06-08 16:10:25,,12.0,9.0,10014311469.0,Address Matched +87606696532015060216125846068101,"12, Spurway",Bearsted,,ME14 4BN,9166145468,D,B,67,84,House,Semi-Detached,2015-06-02,E07000110,E14000700,Kent,2015-06-02,assessment for green deal,61,81,224,97.0,3.8,39,1.7,59.0,59.0,674.0,508.0,132.0,84.0,95.0,Unknown,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,3.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"12, Spurway, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2015-06-02 16:12:58,owner-occupied,,,200003692504.0,Address Matched +18404fbb52d4a643a6e4f5a0c4e2dc3b6eb2a4b211484979b7fca007ec1dfe67,6 Mandeville Court,Union Street,,ME14 1JR,5863551868,C,B,71,81,Flat,Mid-Terrace,2021-08-17,E07000110,E14000804,Kent,2021-08-17,marketed sale,69,69,268,261.0,1.9,45,1.9,55.0,44.0,294.0,171.0,195.0,158.0,43.0,dual,N,00,N,,,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,56.0,0.0,"Electric immersion, off-peak",Poor,Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,(another dwelling above),,,"Room heaters, electric",Very Poor,Poor,Appliance thermostats,Good,Good,Low energy lighting in 56% of fixed outlets,Good,Good,electricity (not community),0.0,heated corridor,,2.4,0.0,N,natural,"6 Mandeville Court, Union Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2021-08-17 12:21:13,Owner-occupied,9.0,,200003700720.0,Energy Assessor +1419860599052017071109224599930342,"6, Heron Place",Allington,,ME16 0FD,3263992478,B,A,85,95,House,End-Terrace,2017-07-10,E07000110,E14000804,Kent,2017-07-11,new dwelling,87,97,75,8.0,1.4,13,0.2,67.0,67.0,220.0,221.0,103.0,56.0,108.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.27 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.14 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"6, Heron Place, Allington",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2017-07-11 09:22:45,owner-occupied,14.0,14.0,10091195371.0,Address Matched +21769169402018071917363347989618,11 Yorke House,The Chimes,Bearsted,ME14 4RE,7478869468,B,B,81,81,Flat,Enclosed Mid-Terrace,2018-07-19,E07000110,E14000700,Kent,2018-07-19,rental (private),83,83,109,105.0,1.5,19,1.4,82.0,61.0,198.0,200.0,122.0,122.0,77.0,Single,Y,3rd,N,,2110.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,67.0,0.0,From main system,Good,Good,(another dwelling below),NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and underfloor heating, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in 67% of fixed outlets,Good,Good,mains gas (not community),0.0,unheated corridor,11.5,,,N,natural,"11 Yorke House, The Chimes, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2003-2006,2018-07-19 17:36:33,rental (private),,,10022896472.0,Address Matched +1488382789742016101406342043769478,Flat A,"1, Douglas Road",,ME16 8ES,2706487478,E,C,51,71,Flat,Semi-Detached,2016-10-13,E07000110,E14000804,Kent,2016-10-14,marketed sale,44,70,381,194.0,4.7,67,2.4,75.0,50.0,879.0,437.0,102.0,103.0,70.0,Unknown,Y,Ground,N,,2107.0,100.0,"double glazing, unknown install date",Normal,2.0,3.0,3.0,50.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, mains gas",,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,unheated corridor,4.2,2.3,,N,natural,"Flat A, 1, Douglas Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2016-10-14 06:34:20,owner-occupied,,,200003728553.0,Address Matched +1803117542102020061308135576009398,"4, The Old Bailey",Harrietsham,,ME17 1ND,6181540778,C,B,70,90,House,Semi-Detached,2020-06-11,E07000110,E14000700,Kent,2020-06-13,marketed sale,68,90,223,52.0,2.4,39,0.6,54.0,54.0,351.0,306.0,165.0,65.0,61.0,Unknown,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,From main system,Average,Average,"Solid, limited insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"4, The Old Bailey, Harrietsham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1996-2002,2020-06-13 08:13:55,owner-occupied,,,200003704170.0,Address Matched +870838819942013011016291705479308,"119a, Wheeler Street",,,ME14 2UA,7986814078,E,B,54,85,House,End-Terrace,2013-01-10,E07000110,E14000804,Kent,2013-01-10,marketed sale,50,86,303,68.0,4.1,58,1.0,58.0,41.0,695.0,380.0,115.0,66.0,70.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,5.0,5.0,60.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Granite or whinstone, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 60% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"119a, Wheeler Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2013-01-10 16:29:17,owner-occupied,15.0,9.0,200003704299.0,Address Matched +1661366854412018090609165491080961,"68, Edmett Way",,,ME17 3GD,9142410678,B,A,85,94,House,Semi-Detached,2018-09-06,E07000110,E14000700,Kent,2018-09-06,new dwelling,86,95,76,18.0,1.6,13,0.4,83.0,83.0,259.0,259.0,79.0,47.0,119.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.23 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.17 W/m-¦K,Good,Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"68, Edmett Way",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2018-09-06 09:16:54,unknown,13.0,13.0,10093307035.0,Address Matched +1398369149302015122222391248152828,"14, Sutton Court",Marden,,TN12 9TF,3332941478,C,C,73,75,Flat,Detached,2015-12-22,E07000110,E14000804,Kent,2015-12-22,rental (social),72,76,191,165.0,2.1,34,1.8,44.0,44.0,390.0,333.0,100.0,100.0,62.0,Single,Y,2nd,Y,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,(another dwelling below),NO DATA!,,Fully double glazed,Average,Average,"Timber frame, as built, partial insulation (assumed)",Average,Average,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,5.0,,,N,natural,"14, Sutton Court, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1967-1975,2015-12-22 22:39:12,rental (social),,,200003710535.0,Address Matched +375799377112009100514414502019469,"8, Bargrove Road",,,ME14 5RR,4930728668,C,B,72,81,House,Mid-Terrace,2009-10-05,E07000110,E14000804,Kent,2009-10-05,rental (private),68,79,252,168.0,2.4,42,1.6,49.0,29.0,329.0,249.0,133.0,101.0,57.8,Single,Y,NO DATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,30.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, partial insulation (assumed)",Average,Average,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Poor,Poor,Low energy lighting in 30% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.39,0.0,N,natural,"8, Bargrove Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1976-1982,2009-10-05 14:41:45,rental (private),,,200003672456.0,Address Matched +ca9ba769c7ec02d8e78f92eb12683ea0159a3e8ea7524124a6a5a6c3b07b8284,72 CHARLBURY CLOSE,,,ME16 8TE,10001541515,D,B,68,81,House,Semi-Detached,2021-06-30,E07000110,E14000804,Kent,2021-07-01,marketed sale,61,76,198,114.0,4.7,35,2.7,90.0,90.0,784.0,664.0,119.0,72.0,133.0,Unknown,Y,,,,,100.0,double glazing installed during or after 2002,Normal,1.0,6.0,6.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,1.0,0.0,N,natural,72 CHARLBURY CLOSE,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2021-07-01 00:07:20,Owner-occupied,24.0,,200003657603.0,Energy Assessor +690089299742016022317122096062278,"19, Fant Lane",,,ME16 8NL,9794590968,D,B,60,91,House,Semi-Detached,2016-02-23,E07000110,E14000804,Kent,2016-02-23,ECO assessment,56,92,312,37.0,3.1,55,0.4,66.0,40.0,553.0,277.0,132.0,82.0,57.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,33.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 33% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"19, Fant Lane",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2016-02-23 17:12:20,rental (social),,,200003674348.0,Address Matched +1463304079962017021018530626908563,St. Nicholas Cottage,Lower Street,Leeds,ME17 1RJ,6283706478,F,A,38,97,House,Detached,2017-02-10,E07000110,E14000700,Kent,2017-02-10,assessment for green deal,32,91,422,24.0,8.9,78,0.7,120.0,69.0,1628.0,680.0,148.0,88.0,114.0,Single,Y,NODATA!,,,2106.0,0.0,not defined,Normal,0.0,6.0,6.0,22.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Single glazed,Very Poor,Very Poor,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, no insulation",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 22% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"St. Nicholas Cottage, Lower Street, Leeds",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1900-1929,2017-02-10 18:53:06,owner-occupied,,,200003698461.0,Address Matched +1111652733852014032113470392240220,"1c, Tufton Street",,,ME14 1ES,2067321278,D,B,60,85,House,End-Terrace,2014-03-21,E07000110,E14000804,Kent,2014-03-21,marketed sale,39,63,525,274.0,4.0,93,2.1,47.0,31.0,450.0,368.0,117.0,71.0,43.0,dual,N,NODATA!,,,2402.0,100.0,double glazing installed before 2002,Normal,0.0,2.0,2.0,50.0,0.0,"Electric immersion, off-peak",Average,Very Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,Portable electric heaters (assumed),,,"Pitched, 200 mm loft insulation",Good,Good,Electric storage heaters,Average,Very Poor,Automatic charge control,Average,Average,Low energy lighting in 50% of fixed outlets,Good,Good,electricity (not community),0.0,NO DATA!,,,0.0,,natural,"1c, Tufton Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2014-03-21 13:47:03,owner-occupied,6.0,3.0,200003688127.0,Address Matched +1544751349922017051813364551688963,"18, The Spinney",,,ME15 7AD,6566481578,E,D,49,63,Flat,Detached,2017-05-18,E07000110,E14000700,Kent,2017-05-18,rental (social),29,40,581,443.0,7.3,98,5.5,73.0,58.0,1006.0,677.0,152.0,152.0,74.0,dual,N,1st,Y,,2401.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,75.0,0.0,"Electric immersion, off-peak",Average,Poor,(another dwelling below),NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,Portable electric heaters (assumed),,,"Pitched, limited insulation (assumed)",Very Poor,Very Poor,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,electricity (not community),0.0,unheated corridor,7.18,,,N,natural,"18, The Spinney",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2017-05-18 13:36:45,rental (social),,,200003685953.0,Address Matched +189778652222020012923253384918450,2 Grants Cottages,Old Ham Lane,Lenham,ME17 2LR,5853584568,D,A,68,105,House,Mid-Terrace,2020-01-29,E07000110,E14000700,Kent,2020-01-29,rental (private),63,100,222,-26.0,3.5,39,-0.3,70.0,70.0,634.0,483.0,87.0,57.0,91.0,Unknown,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"2 Grants Cottages, Old Ham Lane, Lenham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2020-01-29 23:25:33,rental (private),,,200003725328.0,Address Matched +1493283919102016110208462846860728,"8, Hadaway Road",,,ME17 3FG,1108918478,B,B,82,82,House,Semi-Detached,2016-11-02,E07000110,E14000700,Kent,2016-11-02,new dwelling,86,86,99,99.0,1.1,17,1.1,47.0,47.0,211.0,211.0,78.0,78.0,64.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"8, Hadaway Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2016-11-02 08:46:28,unknown,1.0,1.0,10091194109.0,Address Matched +1452256279512016061011041892960143,"9, Cannock Drive",,,ME15 8GE,1396925478,B,B,87,88,House,NO DATA!,2016-06-10,E07000110,E14000700,Kent,2016-06-10,new dwelling,89,91,68,54.0,0.9,12,0.7,51.0,51.0,234.0,234.0,79.0,45.0,73.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,"From main system, flue gas heat recovery",Very Good,Very Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"9, Cannock Drive",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2016-06-10 11:04:18,unknown,1.0,1.0,10091193716.0,Address Matched +111016649902013041119413441879398,"11, Lenside Drive",Bearsted,,ME15 8UE,6936048468,C,B,76,91,House,Mid-Terrace,2013-04-11,E07000110,E14000700,Kent,2013-04-11,marketed sale,78,93,129,25.0,1.8,25,0.4,64.0,45.0,318.0,301.0,81.0,59.0,72.0,dual,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,60.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 60% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"11, Lenside Drive, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2013-04-11 19:41:34,owner-occupied,10.0,6.0,200003691249.0,Address Matched +1138206585432014050909552904078703,Fosters,Detling Hill,Detling,ME14 3HT,8374703278,D,B,66,82,House,Detached,2014-05-08,E07000110,E14000700,Kent,2014-05-09,marketed sale,55,73,161,77.0,6.6,40,3.7,140.0,80.0,1104.0,904.0,222.0,122.0,166.0,Single,N,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,2.0,8.0,8.0,25.0,0.0,From main system,Average,Average,"Suspended, limited insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, oil",Average,Average,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 25% of fixed outlets,Average,Average,oil (not community),0.0,NO DATA!,,,0.0,,natural,"Fosters, Detling Hill, Detling",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1996-2002,2014-05-09 09:55:29,owner-occupied,28.0,7.0,200003698168.0,Address Matched +1709280192132019032717340416278108,Flat 39,Cornwallis House,Pudding Lane,ME14 1NY,9856163678,D,D,66,66,Flat,Detached,2019-02-21,E07000110,E14000804,Kent,2019-03-27,new dwelling,69,69,215,215.0,2.0,36,2.0,46.0,46.0,431.0,431.0,177.0,177.0,55.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,Electric instantaneous at point of use,Very Poor,Very Poor,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.27 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.14 W/m-¦K,Very Good,Very Good,"Room heaters, electric",Very Poor,Poor,Programmer and appliance thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"Flat 39, Cornwallis House, Pudding Lane",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2019-03-27 17:34:04,owner-occupied,8.0,8.0,, +1669830986412018101001240597089964,"15, Redsells Close",Downswood,,ME15 8SN,9447670678,C,B,70,89,House,Semi-Detached,2018-10-09,E07000110,E14000700,Kent,2018-10-10,marketed sale,70,88,225,68.0,2.2,40,0.7,80.0,46.0,332.0,312.0,120.0,71.0,55.0,dual,Y,NODATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,29.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 29% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"15, Redsells Close, Downswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1991-1995,2018-10-10 01:24:05,owner-occupied,,,200003690995.0,Address Matched +794872649262015012013205288008225,Ferndown,Queens Avenue,,ME16 0ER,2826488968,C,B,73,84,House,Detached,2015-01-20,E07000110,E14000804,Kent,2015-01-20,marketed sale,69,80,151,88.0,4.9,26,2.9,174.0,87.0,781.0,723.0,164.0,88.0,185.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,7.0,7.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"Ferndown, Queens Avenue",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1976-1982,2015-01-20 13:20:52,owner-occupied,,,200003659584.0,Address Matched +479287855032010050309113076068304,"31, Lime Trees",Staplehurst,,TN12 0SS,5436355768,D,C,63,69,House,Detached,2010-05-03,E07000110,E14000804,Kent,2010-05-03,marketed sale,62,68,246,203.0,4.4,41,3.6,99.0,60.0,650.0,583.0,161.0,129.0,108.8,Single,Y,NO DATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,6.0,6.0,35.0,0.0,From main system,Good,Good,"Solid, limited insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,Portable electric heaters,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 35% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,0.0,N,natural,"31, Lime Trees, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1996-2002,2010-05-03 09:11:30,owner-occupied,,,200003724379.0,Address Matched +532918439142010091510272779909048,"11, Hartnup Street",,,ME16 8LR,143539768,B,B,84,86,Flat,NO DATA!,2010-09-14,E07000110,E14000804,Kent,2010-09-15,new dwelling,84,85,127,119.0,1.3,21,1.2,61.0,38.0,212.0,215.0,85.0,85.0,63.0,standard tariff,,top floor,,,,,NO DATA!,NO DATA!,,,,3.0,,From main system,Very Good,Very Good,(other premises below),,,Fully double glazed,Good,Good,Average thermal transmittance 0.21 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.14 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 38% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.38,,,NO DATA!,"11, Hartnup Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2010-09-15 10:27:27,,8.0,3.0,200003656701.0,Address Matched +931002057252013051516404894970107,"13, Froyle Close",,,ME16 0RQ,1712748078,C,B,72,89,Bungalow,Semi-Detached,2013-05-15,E07000110,E14000804,Kent,2013-05-15,marketed sale,73,90,167,41.0,2.1,32,0.6,50.0,38.0,378.0,335.0,79.0,57.0,65.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,More Than Typical,0.0,4.0,4.0,70.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 70% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"13, Froyle Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1976-1982,2013-05-15 16:40:48,owner-occupied,10.0,7.0,200003659392.0,Address Matched +1586957244812017110619071998039151,57a Honywood Road,Lenham,,ME17 2HH,1183484578,D,C,65,73,Flat,End-Terrace,2017-11-06,E07000110,E14000700,Kent,2017-11-06,marketed sale,64,73,271,200.0,2.6,48,1.9,91.0,46.0,444.0,371.0,96.0,66.0,54.0,dual,Y,1st,Y,,2104.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,0.0,0.0,From main system,Good,Good,(other premises below),NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,unheated corridor,4.37,,,N,natural,"57a Honywood Road, Lenham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1991-1995,2017-11-06 19:07:19,owner-occupied,,,200003732445.0,Address Matched +1538257739802018032010132552182108,2 Parks Road,Harrietsham,,ME17 1GR,840931578,B,A,85,93,House,Detached,2018-03-20,E07000110,E14000700,Kent,2018-03-20,new dwelling,85,93,80,32.0,2.1,14,0.9,82.0,82.0,346.0,347.0,102.0,55.0,152.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.2 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.2 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.1 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"2 Parks Road, Harrietsham",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2018-03-20 10:13:25,owner-occupied,15.0,15.0,10093305126.0,Address Matched +258146126812009033117512409710854,"23, Huntington Road",Coxheath,,ME17 4DY,8480699568,B,B,81,81,Flat,Semi-Detached,2009-03-31,E07000110,E14000804,Kent,2009-03-31,rental (social),79,79,170,170.0,1.6,28,1.6,28.0,28.0,253.0,253.0,75.0,75.0,57.92,Single,Y,1st,Y,2.0,2106.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,100.0,0.0,From main system,Very Good,Very Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,unheated corridor,4.0,2.41,0.0,N,natural,"23, Huntington Road, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2009-03-31 17:51:24,rental (social),,,200003671608.0,Address Matched +119393799262014112709195218358144,"17, Chartwell Drive",,,ME16 0WR,4127948468,D,B,57,83,House,Semi-Detached,2014-11-25,E07000110,E14000804,Kent,2014-11-27,none of the above,51,82,238,79.0,6.0,46,2.0,88.0,88.0,1107.0,587.0,174.0,91.0,131.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,6.0,6.0,80.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"17, Chartwell Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2014-11-27 09:19:52,owner-occupied,15.0,12.0,10022901775.0,Address Matched +482261145032010051020263262968501,"62, Grecian Street",,,ME14 2TS,4142575768,E,D,49,56,House,Mid-Terrace,2010-05-10,E07000110,E14000804,Kent,2010-05-10,marketed sale,40,46,384,326.0,7.0,71,6.1,57.0,57.0,984.0,854.0,130.0,106.0,95.18,dual,Y,NO DATA!,,,2107.0,87.0,double glazing installed during or after 2002,Normal,1.0,5.0,4.0,100.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Mostly double glazing,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, coal",,,"Roof room(s), no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.48,0.0,N,natural,"62, Grecian Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2010-05-10 20:26:32,owner-occupied,,,200003703259.0,Address Matched +667790771312011121914322194999580,3 Hales Court,Church Street,,ME14 1DG,5085149868,B,B,84,84,Flat,NO DATA!,2011-12-19,E07000110,E14000804,Kent,2011-12-19,new dwelling,85,85,106,106.0,1.2,19,1.2,42.0,42.0,138.0,138.0,111.0,111.0,64.7,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,5.0,,From main system,Average,Good,(other premises below),,,Fully double glazed,Good,Good,Average thermal transmittance 0.24 W/m?K,Very Good,Very Good,,,,(other premises above),,,"Air source heat pump, underfloor, electric",Good,Very Good,Programmer and at least two room thermostats,Good,Good,Low energy lighting in 83% of fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",0.0,NO DATA!,,2.6,,,NO DATA!,"3 Hales Court, Church Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2011-12-19 14:32:21,,6.0,5.0,10014306365.0,Address Matched +597408229842012092821443380422388,"22, Senacre Square",,,ME15 8QF,4855424868,C,C,74,74,Flat,End-Terrace,2012-09-28,E07000110,E14000700,Kent,2012-09-28,rental (social),74,74,145,145.0,2.4,28,2.4,55.0,55.0,390.0,390.0,106.0,106.0,86.0,Single,Y,1st,Y,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,89.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 89% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,no corridor,,,0.0,,natural,"22, Senacre Square",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2012-09-28 21:44:33,rental (social),9.0,8.0,200003685259.0,Address Matched +537872669542010090906330674900318,1 The Old Bakery,Lees Road,Yalding,ME18 6HB,593869768,E,D,51,63,Flat,Detached,2010-09-09,E07000110,E14000804,Kent,2010-09-09,marketed sale,49,51,399,384.0,4.8,60,4.6,90.0,50.0,528.0,475.0,253.0,143.0,79.8,Unknown,N,Ground,N,2.0,2402.0,95.0,secondary glazing,Normal,0.0,4.0,4.0,20.0,0.0,"Electric immersion, standard tariff",Very Poor,Poor,"Suspended, no insulation (assumed)",,,Mostly secondary glazing,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,Portable electric heaters,,,(another dwelling above),,,Electric storage heaters,Poor,Very Poor,Automatic charge control,Average,Average,Low energy lighting in 20% of fixed outlets,Poor,Poor,electricity - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.2,0.0,N,natural,"1 The Old Bakery, Lees Road, Yalding",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2010-09-09 06:33:06,owner-occupied,,,200003660494.0,Address Matched +cb0ec0f4d408d0c39f234f6b51692264621c5effe52983c7b75ab55e1a727d7d,Apartment 3,68 College Road,,ME15 6SJ,10001685046,C,C,71,79,Flat,Semi-Detached,2021-09-07,E07000110,E14000804,Kent,2021-09-07,marketed sale,66,66,240,243.0,2.7,41,2.8,60.0,70.0,455.0,305.0,228.0,202.0,67.0,dual,N,01,N,,,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,100.0,0.0,"Electric immersion, off-peak",Poor,Poor,(another dwelling below),,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Room heaters, electric",Very Poor,Poor,Programmer and appliance thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,unheated corridor,4.0,2.51,0.0,N,natural,"Apartment 3, 68 College Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2021-09-07 12:17:42,Owner-occupied,8.0,,10022895278.0,Energy Assessor +234680460062009030515435718458301,"3, Hazlitt Drive",,,ME16 0EG,158678568,B,B,85,86,Flat,Detached,2009-03-05,E07000110,E14000804,Kent,2009-03-05,new dwelling,84,85,115,112.0,1.4,0,1.3,45.0,36.0,192.0,193.0,86.0,86.0,71.8,standard tariff,,ground floor,,,,,NO DATA!,NO DATA!,,,,9.0,,SAP05:Hot-Water,,,Average thermal transmittance 0.22 W/m²K,Good,Good,Fully double glazed,Good,Good,Average thermal transmittance 0.29 W/m²K,Very Good,Very Good,SAP05:Secondary-Heating,,,(another dwelling above),,,SAP05:Main-Heating,,,SAP05:Main-Heating-Controls,,,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.3,,,NO DATA!,"3, Hazlitt Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2009-03-05 15:43:57,,12.0,9.0,200003658876.0,Address Matched +168503389022014040815145372288674,"96, Tonbridge Road",,,ME16 8SL,7743882568,F,C,33,76,House,End-Terrace,2014-04-08,E07000110,E14000804,Kent,2014-04-08,none of the above,34,78,455,134.0,6.6,81,1.8,98.0,49.0,1221.0,637.0,228.0,76.0,81.0,Unknown,Y,NODATA!,,,2104.0,100.0,secondary glazing,Normal,1.0,4.0,4.0,0.0,0.0,"From main system, no cylinder thermostat",Poor,Poor,"Solid, no insulation (assumed)",,,Full secondary glazing,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"96, Tonbridge Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2014-04-08 15:14:53,rental (private),7.0,0.0,200003668205.0,Address Matched +1097075439262014032109575120798204,"17, Gosling Walk",,,ME15 6YX,263320278,B,B,83,83,House,Mid-Terrace,2014-03-21,E07000110,E14000804,Kent,2014-03-21,new dwelling,87,87,80,80.0,1.2,15,1.2,51.0,51.0,235.0,235.0,84.0,84.0,79.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.10 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"17, Gosling Walk",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2014-03-21 09:57:51,NO DATA!,12.0,12.0,10014315222.0,Address Matched +55274129132009011619252481968900,35 Duke of York Way,Coxheath,,ME17 4GT,2091956568,B,B,81,81,House,Mid-Terrace,2009-01-16,E07000110,E14000804,Kent,2009-01-16,new dwelling,81,81,129,129.0,1.8,0,1.8,41.0,41.0,326.0,326.0,91.0,91.0,86.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,23.0,,SAP05:Hot-Water,,,Average thermal transmittance 0.20 W/m²K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.20 W/m²K,Very Good,Very Good,SAP05:Secondary-Heating,,,Average thermal transmittance 0.19 W/m²K,Good,Good,SAP05:Main-Heating,,,SAP05:Main-Heating-Controls,,,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,,,NO DATA!,"35 Duke of York Way, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2009-01-16 19:25:24,,23.0,23.0,10022900500.0,Address Matched +577061708152011010417073595090289,"23, Buckland Gardens",,,ME16 0ZB,2933852868,B,B,88,89,Flat,NO DATA!,2011-01-04,E07000110,E14000804,Kent,2011-01-04,new dwelling,87,87,110,104.0,1.0,18,1.0,47.0,31.0,204.0,206.0,80.0,80.0,57.25,standard tariff,,top floor,,,,,NO DATA!,NO DATA!,,,,7.0,,From main system,Very Good,Very Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.28 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.07 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.85,,,NO DATA!,"23, Buckland Gardens",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2011-01-04 17:07:35,,14.0,7.0,10014308679.0,Address Matched +1110143619242018090517362124180258,"47, The Landway",Bearsted,,ME14 4BG,3282211278,C,B,69,85,House,Semi-Detached,2018-09-05,E07000110,E14000700,Kent,2018-09-05,marketed sale,67,82,207,94.0,3.0,36,1.4,111.0,59.0,457.0,427.0,120.0,77.0,82.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,11.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 11% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"47, The Landway, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2018-09-05 17:36:21,owner-occupied,,,200003692623.0,Address Matched +276202951712009050114545303710162,15 Christchurch House,Wallis Avenue,,ME15 9JT,1289131668,C,C,76,80,Flat,Semi-Detached,2009-04-30,E07000110,E14000700,Kent,2009-05-01,rental (social),74,77,198,174.0,2.1,33,1.9,54.0,32.0,273.0,250.0,110.0,110.0,64.73,Single,Y,3rd,Y,4.0,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,30.0,0.0,From main system,Very Good,Very Good,(other premises below),,,Fully double glazed,Average,Average,"System built, with external insulation",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Very Good,Very Good,Programmer and room thermostat,Poor,Poor,Low energy lighting in 30% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,unheated corridor,4.0,2.46,0.0,N,natural,"15 Christchurch House, Wallis Avenue",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2009-05-01 14:54:53,rental (social),,,200003683134.0,Address Matched +1752510979502019091918513965619618,"29, Surrey Road",,,ME15 7HN,9563776678,D,B,60,85,House,Semi-Detached,2019-09-19,E07000110,E14000700,Kent,2019-09-19,marketed sale,54,83,289,91.0,4.2,51,1.4,99.0,63.0,618.0,430.0,199.0,70.0,83.0,Single,Y,NODATA!,,,2107.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,43.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"System built, with internal insulation",Good,Good,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 43% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"29, Surrey Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2019-09-19 18:51:39,owner-occupied,,,200003711739.0,Address Matched +352001060902009082617400160612768,"20, Campbell Road",,,ME15 6QA,5912266668,D,D,62,65,House,Mid-Terrace,2009-08-26,E07000110,E14000804,Kent,2009-08-26,marketed sale,64,66,294,271.0,3.4,42,3.2,51.0,40.0,600.0,558.0,115.0,115.0,80.94,Single,Y,NO DATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,1.0,4.0,4.0,75.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Poor,Poor,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.36,0.0,N,natural,"20, Campbell Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2009-08-26 17:40:01,owner-occupied,,,200003693258.0,Address Matched +1432792182612016041213323499260246,"16, Hill Brow",Bearsted,,ME14 4AW,2661293478,C,C,72,80,House,Detached,2016-03-24,E07000110,E14000700,Kent,2016-04-12,FiT application,67,75,167,119.0,4.4,29,3.2,77.0,77.0,838.0,794.0,89.0,89.0,148.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,6.0,6.0,100.0,0.0,"From main system, plus solar",Very Good,Very Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,2.5,,Y,natural,"16, Hill Brow, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2016-04-12 13:32:34,owner-occupied,,,200003693526.0,Address Matched +501257568032020081422450274968703,Flat 4/A Telford House,Boxley Road,,ME14 2TN,6334707768,D,C,64,78,Maisonette,Mid-Terrace,2020-08-14,E07000110,E14000804,Kent,2020-08-14,marketed sale,63,81,246,126.0,2.9,43,1.5,84.0,58.0,567.0,275.0,94.0,96.0,67.0,Single,Y,3rd,Y,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,2.0,56.0,0.0,From main system,Good,Good,(another dwelling below),NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,Portable electric heaters (assumed),,,"Flat, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 56% of fixed outlets,Good,Good,mains gas (not community),0.0,no corridor,,,,N,natural,"Flat 4/A Telford House, Boxley Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2020-08-14 22:45:02,owner-occupied,,,200003704517.0,Address Matched +1682727399222018112910122791318988,"35, Chestnut Road",Allington,,ME16 9FR,8970961678,B,B,86,88,House,Detached,2018-11-29,E07000110,E14000804,Kent,2018-11-29,new dwelling,87,89,70,57.0,1.4,12,1.2,73.0,73.0,264.0,265.0,98.0,53.0,116.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.20 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.16 W/m-¦K,Good,Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"35, Chestnut Road, Allington",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2018-11-29 10:12:27,unknown,33.0,33.0,10093306559.0,Address Matched +1432928539922016042519374563728356,"31, College Road",,,ME15 6SX,5615393478,E,C,43,73,House,Semi-Detached,2016-04-12,E07000110,E14000804,Kent,2016-04-25,marketed sale,36,65,361,166.0,9.8,66,4.6,130.0,77.0,1847.0,1040.0,121.0,122.0,148.0,Single,Y,NODATA!,,,2107.0,40.0,double glazing installed before 2002,Normal,0.0,6.0,5.0,31.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Partial double glazing,Poor,Poor,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 31% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,2.59,,N,natural,"31, College Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2016-04-25 19:37:45,owner-occupied,,,200003693277.0,Address Matched +313807389902019082012371969312008,"3, Wellington Place",Perry Street,,ME14 2RZ,5994983668,C,C,74,78,Flat,Mid-Terrace,2019-08-20,E07000110,E14000804,Kent,2019-08-20,rental (private),76,81,195,153.0,1.5,34,1.2,63.0,39.0,235.0,212.0,106.0,84.0,44.0,Single,Y,1st,Y,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,40.0,0.0,From main system,Good,Good,"To external air, insulated (assumed)",NO DATA!,,Fully double glazed,Average,Average,"System built, as built, insulated (assumed)",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 40% of fixed outlets,Average,Average,mains gas (not community),0.0,no corridor,,,,N,natural,"3, Wellington Place, Perry Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2019-08-20 12:37:19,rental (private),,,200003669921.0,Address Matched +655228028312011071516423494990989,"22, Farington Close",,,ME16 0WN,9999848868,C,C,72,74,House,End-Terrace,2011-07-15,E07000110,E14000804,Kent,2011-07-15,marketed sale,73,77,184,162.0,2.0,35,1.8,40.0,40.0,335.0,304.0,105.0,94.0,58.1,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,88.0,0.0,From main system,Good,Good,"Suspended, insulated (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 88% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,2.2,0.0,,natural,"22, Farington Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2011-07-15 16:42:34,owner-occupied,8.0,7.0,10022893197.0,Address Matched +126287925052018071811100392980548,"10, Alexandra Glen",Walderslade,,ME5 9EB,5853529468,D,B,68,89,House,Mid-Terrace,2018-07-18,E07000110,E14000700,Kent,2018-07-18,rental (private),67,90,244,54.0,2.3,43,0.6,64.0,41.0,348.0,298.0,134.0,62.0,54.0,Single,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,44.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 44% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"10, Alexandra Glen, Walderslade",Maidstone,Faversham and Mid Kent,CHATHAM,England and Wales: 1976-1982,2018-07-18 11:10:03,rental (private),,,200003709133.0,Address Matched +1765241379002019111907201760710668,"Pool House, Sandhurst",Ashford Road,Hollingbourne,ME17 1PG,94177678,D,B,55,89,Bungalow,Detached,2019-11-06,E07000110,E14000700,Kent,2019-11-19,rental (private),51,90,467,64.0,2.8,82,0.4,44.0,30.0,412.0,289.0,175.0,57.0,34.0,Unknown,Y,NODATA!,,,2104.0,25.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,50.0,0.0,"From main system, no cylinder thermostat",Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Some double glazing,Poor,Poor,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"Pool House, Sandhurst, Ashford Road, Hollingbourne",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2019-11-19 07:20:17,rental (private),,,, +cb640cefa30d1b544e4d7505c2fedfe765cfa9bd1ea1c65c49688cbf0814a91e,45a Bower Lane,,,ME16 8EJ,3904908868,D,C,66,75,Maisonette,Semi-Detached,2021-08-18,E07000110,E14000804,Kent,2021-08-18,marketed sale,64,77,266,167.0,2.4,47,1.5,54.0,54.0,433.0,275.0,76.0,77.0,52.0,Unknown,Y,01,N,,,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,83.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 83% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,no corridor,,2.68,0.0,N,natural,45a Bower Lane,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2021-08-18 16:49:28,Owner-occupied,6.0,,200003733241.0,Energy Assessor +102608265132019051618233066968404,"16, Slaney Road",Staplehurst,,TN12 0SE,6416427468,D,B,64,89,House,Mid-Terrace,2019-05-15,E07000110,E14000804,Kent,2019-05-16,rental (private),60,89,254,50.0,3.2,45,0.7,105.0,55.0,523.0,312.0,111.0,63.0,73.0,Unknown,Y,NODATA!,,,2107.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,8.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, partial insulation (assumed)",Average,Average,,,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 8% of fixed outlets,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"16, Slaney Road, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1976-1982,2019-05-16 18:23:30,rental (private),,,200003678615.0,Address Matched +1713442139922019041210080283598721,"7, Atwater Court",Lenham,,ME17 2PW,2887393678,C,C,69,78,Flat,Mid-Terrace,2019-04-11,E07000110,E14000700,Kent,2019-04-12,marketed sale,53,65,314,231.0,4.1,53,3.0,107.0,71.0,535.0,362.0,186.0,151.0,77.0,dual,N,Ground,N,,2401.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,50.0,0.0,"Electric immersion, off-peak",Average,Poor,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,(another dwelling above),,,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 50% of fixed outlets,Good,Good,electricity (not community),0.0,heated corridor,,,,N,natural,"7, Atwater Court, Lenham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2019-04-12 10:08:02,owner-occupied,,,200003711166.0,Address Matched +1313068159222015042218030735528335,"19, Regent Drive",,,ME15 6DF,3379545378,C,B,70,84,House,Semi-Detached,2015-04-22,E07000110,E14000804,Kent,2015-04-22,FiT application,70,84,192,86.0,2.6,34,1.2,77.0,49.0,488.0,466.0,102.0,67.0,76.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,44.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 44% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"19, Regent Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1976-1982,2015-04-22 18:03:07,owner-occupied,,,200003676587.0,Address Matched +891763669022016020119265855898666,"38, York Road",,,ME15 7QY,6526665078,E,B,53,87,House,Mid-Terrace,2016-02-01,E07000110,E14000700,Kent,2016-02-01,marketed sale,46,86,373,76.0,4.6,66,1.0,96.0,48.0,782.0,395.0,181.0,72.0,71.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,0.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, mains gas",,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"38, York Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1900-1929,2016-02-01 19:26:58,owner-occupied,,,200003715764.0,Address Matched +1466787582952016072915494693260748,"14, Mallet Avenue",,,ME15 8GT,7830236478,B,A,81,95,House,NO DATA!,2016-07-29,E07000110,E14000700,Kent,2016-07-29,new dwelling,84,97,110,6.0,1.3,19,0.1,51.0,51.0,234.0,236.0,97.0,51.0,69.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"14, Mallet Avenue",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2016-07-29 15:49:46,unknown,1.0,1.0,10091193694.0,Address Matched +494181748752010060310290795000379,"25, Fir Tree Grove",,,ME5 8XD,3981856768,C,C,72,80,House,Mid-Terrace,2010-06-03,E07000110,E14000700,Kent,2010-06-03,marketed sale,69,78,226,159.0,2.8,38,2.0,62.0,38.0,416.0,314.0,112.0,92.0,83.42,Single,Y,NO DATA!,,,2102.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,38.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,Low energy lighting in 38% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.33,0.0,N,natural,"25, Fir Tree Grove",Maidstone,Faversham and Mid Kent,CHATHAM,England and Wales: 1967-1975,2010-06-03 10:29:07,owner-occupied,,,200003676694.0,Address Matched +738120359742012011011461993429508,"10, Farningham Close",,,ME14 5QX,8726154968,E,E,42,51,House,Mid-Terrace,2012-01-10,E07000110,E14000804,Kent,2012-01-10,rental (private),45,55,393,314.0,4.5,73,3.6,43.0,43.0,577.0,413.0,405.0,405.0,61.9,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,78.0,0.0,No system present: electric immersion assumed,Very Poor,Very Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 78% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,2.408,0.0,,natural,"10, Farningham Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2012-01-10 11:46:19,rental (private),9.0,7.0,200003671979.0,Address Matched +204456109262010112615312735978860,"7, Kingfisher Meadow",,,ME16 8RB,6396085568,D,C,56,73,Maisonette,Mid-Terrace,2010-11-23,E07000110,E14000804,Kent,2010-11-26,rental (private),67,66,229,235.0,3.8,35,3.9,138.0,72.0,630.0,330.0,202.0,202.0,73.86,dual,N,2nd,Y,4.0,2603.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,9.0,0.0,"Electric immersion, off-peak",Poor,Poor,(other premises below),,,Fully double glazed,Good,Good,"System built, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Room heaters, electric",Very Poor,Poor,Programmer and appliance thermostats,Good,Good,Low energy lighting in 9% of fixed outlets,Very Poor,Very Poor,electricity - this is for backwards compatibility only and should not be used,0.0,unheated corridor,8.3,2.56,0.0,N,natural,"7, Kingfisher Meadow",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2010-11-26 15:31:27,rental (private),,,10022892218.0,Address Matched +1458741875812016070111384897060046,"25, Heath Road",Langley,,ME17 3LD,658575478,F,C,32,73,Bungalow,Detached,2016-07-01,E07000110,E14000700,Kent,2016-07-01,marketed sale,27,65,551,205.0,8.3,97,3.1,93.0,62.0,1524.0,827.0,187.0,65.0,85.0,dual,Y,NODATA!,,,2101.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,50.0,0.0,"From main system, plus solar, no cylinder thermostat",Average,Average,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Timber frame, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, mains gas",,,"Pitched, 25 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,No time or thermostatic control of room temperature,Very Poor,Very Poor,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,2.86,,Y,natural,"25, Heath Road, Langley",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1900-1929,2016-07-01 11:38:48,owner-occupied,,,10093307369.0,Address Matched +430723467512012062015105591220078,"419, Willington Street",,,ME15 8HD,807712768,C,B,70,85,House,Semi-Detached,2012-06-20,E07000110,E14000700,Kent,2012-06-20,rental (private),70,85,172,68.0,2.7,33,1.1,90.0,45.0,410.0,380.0,105.0,69.0,82.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"419, Willington Street",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2012-06-20 15:10:55,rental (private),8.0,0.0,200003680545.0,Address Matched +538543433052012050222351097020273,"117, Bower Street",,,ME16 8BB,2325379768,D,B,57,89,House,Mid-Terrace,2012-05-01,E07000110,E14000804,Kent,2012-05-02,marketed sale,54,91,284,40.0,3.4,55,0.5,54.0,36.0,577.0,308.0,85.0,60.0,62.0,Single,Y,NODATA!,,,2107.0,30.0,"double glazing, unknown install date",Normal,2.0,4.0,4.0,50.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Some double glazing,Poor,Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"117, Bower Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2012-05-02 22:35:10,owner-occupied,10.0,5.0,200003667194.0,Address Matched +24601409022016050508282722148506,"53, Heathfield Road",Penenden Heath,,ME14 2AD,218092468,C,C,70,79,Bungalow,Detached,2016-05-04,E07000110,E14000804,Kent,2016-05-05,marketed sale,64,73,175,125.0,5.4,31,3.9,178.0,89.0,912.0,936.0,141.0,82.0,173.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,6.0,6.0,0.0,0.0,From main system,Good,Good,"Suspended, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, mains gas",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,2.53,,N,natural,"53, Heathfield Road, Penenden Heath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2016-05-05 08:28:27,owner-occupied,,,10014307792.0,Address Matched +1525068025052017030622512494030954,"16, Waverley Close",Coxheath,,ME17 4HL,9480540578,C,A,71,114,House,Mid-Terrace,2017-03-02,E07000110,E14000804,Kent,2017-03-06,rental (social),70,111,202,-104.0,2.5,35,-1.2,87.0,49.0,392.0,315.0,136.0,79.0,70.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,22.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 22% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"16, Waverley Close, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2017-03-06 22:51:24,rental (social),,,200003712299.0,Address Matched +57977208812009031012463008910353,Flat 5 Orchard House,Hazlitt Drive,,ME16 0YU,3388888568,B,B,86,87,Flat,Detached,2009-03-10,E07000110,E14000804,Kent,2009-03-10,new dwelling,86,86,104,101.0,1.2,0,1.2,45.0,36.0,170.0,171.0,86.0,86.0,0.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,9.0,,SAP05:Hot-Water,,,(other premises below),,,Fully double glazed,Good,Good,Average thermal transmittance 0.29 W/m²K,Very Good,Very Good,SAP05:Secondary-Heating,,,(another dwelling above),,,SAP05:Main-Heating,,,SAP05:Main-Heating-Controls,,,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,,,,NO DATA!,"Flat 5 Orchard House, Hazlitt Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2009-03-10 12:46:30,,12.0,9.0,10014309042.0,Address Matched +1705234372712019031416315793910966,1 Bennetts Cottages,Dunn Street,Bredhurst,ME7 3ND,9694233678,E,B,50,86,House,End-Terrace,2019-03-13,E07000110,E14000700,Kent,2019-03-14,marketed sale,42,79,285,56.0,4.6,74,1.4,65.0,47.0,445.0,264.0,179.0,65.0,62.0,Single,N,NODATA!,,,2107.0,100.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,64.0,1.0,From main system,Poor,Poor,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, oil",Poor,Average,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 64% of fixed outlets,Good,Good,oil (not community),0.0,NO DATA!,,,,N,natural,"1 Bennetts Cottages, Dunn Street, Bredhurst",Maidstone,Faversham and Mid Kent,GILLINGHAM,England and Wales: before 1900,2019-03-14 16:31:57,owner-occupied,,,200003722108.0,Address Matched +cb9a78ee28ad88f5ee26b89125b679aa17050c8c655731660243169585a7605b,10 HEADCORN ROAD,ULCOMBE,,ME17 1EB,10001332172,E,C,43,75,House,End-Terrace,2021-07-09,E07000110,E14000700,Kent,2021-07-09,marketed sale,92,104,360,144.0,0.7,9,-0.4,66.0,66.0,1013.0,634.0,298.0,147.0,78.0,Single,N,,,,,100.0,"double glazing, unknown install date",Normal,0.0,5.0,4.0,100.0,0.0,"Solid fuel boiler/circulator, no cylinder thermostat",Very Poor,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, wood logs",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, wood logs",Poor,Very Good,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,wood logs,0.0,,,2.4,0.0,N,natural,"10 HEADCORN ROAD, ULCOMBE",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2021-07-09 12:49:16,Owner-occupied,9.0,,200003701125.0,Energy Assessor +1754272609262019092711385616838331,Flat 5 Lawrence Court,"5, Chapelfield Way",Allington,ME16 9FU,3133096678,B,B,82,82,Flat,Semi-Detached,2019-09-27,E07000110,E14000804,Kent,2019-09-27,new dwelling,88,88,89,89.0,0.8,16,0.8,52.0,52.0,162.0,162.0,77.0,77.0,50.0,standard tariff,,top floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.19 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Flat 5 Lawrence Court, 5, Chapelfield Way, Allington",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2019-09-27 11:38:56,unknown,20.0,20.0,10093306530.0,Address Matched +1820876244712020090121364627200972,30 Forstal Cottages,Forstal Road,,ME20 7AH,9203471778,D,B,55,88,House,End-Terrace,2020-08-25,E07000110,E14000700,Kent,2020-09-01,marketed sale,49,88,338,52.0,3.7,61,0.6,66.0,52.0,696.0,340.0,72.0,46.0,61.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,2.0,4.0,4.0,73.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 73% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"30 Forstal Cottages, Forstal Road",Maidstone,Faversham and Mid Kent,AYLESFORD,England and Wales: before 1900,2020-09-01 21:36:46,owner-occupied,,,10022892844.0,Address Matched +50830350642009012015035851612708,"17, Arundel Square",,,ME15 6HB,4647156568,C,C,71,72,Flat,Semi-Detached,2009-01-20,E07000110,E14000804,Kent,2009-01-20,new dwelling,79,80,180,172.0,1.7,28,1.6,49.0,28.0,185.0,188.0,229.0,229.0,59.11,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,5.0,,"Electric immersion, standard tariff",,,Average thermal transmittance = 0.19 W/m?K,Very Good,Very Good,Fully double glazed,Good,Good,Average thermal transmittance = 0.30 W/m?K,Good,Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Very Good,Very Good,Time and temperature zone control,Good,Good,Low energy lighting in 26% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.3,,,NO DATA!,"17, Arundel Square",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2009-01-20 15:03:58,,19.0,5.0,10022895117.0,Address Matched +177824149552008110605273708089957,Flat 3 Kingswood House,Marigold Way,,ME16 0GA,9772983568,C,C,75,78,Flat,Detached,2008-11-01,E07000110,E14000804,Kent,2008-11-06,rental (social),71,72,252,239.0,2.3,38,2.2,66.0,33.0,169.0,162.0,117.0,117.0,61.5,dual,N,Ground,N,4.0,2402.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,0.0,0.0,"Electric immersion, off-peak",Poor,Poor,"Solid, insulated (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,(another dwelling above),,,Electric storage heaters,Poor,Very Poor,Automatic charge control,Average,Average,No low energy lighting,Very Poor,Very Poor,electricity - this is for backwards compatibility only and should not be used,0.0,heated corridor,,2.6,0.0,N,natural,"Flat 3 Kingswood House, Marigold Way",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2008-11-06 05:27:37,rental (social),,,10022901827.0,Address Matched +1192444019922014082017194656518044,"36, Westmorland Road",,,ME15 8BQ,4567196278,E,B,52,84,House,Semi-Detached,2014-08-19,E07000110,E14000700,Kent,2014-08-20,none of the above,47,84,289,74.0,5.3,56,1.4,114.0,57.0,923.0,479.0,186.0,91.0,95.0,Single,Y,NODATA!,,,2103.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,0.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Room thermostat only,Poor,Poor,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"36, Westmorland Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2014-08-20 17:19:46,owner-occupied,12.0,0.0,200003684608.0,Address Matched +938975799302013052610390202872448,3 Springdale Terrace,Maidstone Road,Wateringbury,ME18 5EW,8365998078,E,C,46,69,House,Mid-Terrace,2013-05-24,E07000110,E14000804,Kent,2013-05-26,marketed sale,42,64,340,185.0,5.5,66,3.1,95.0,47.0,945.0,758.0,102.0,64.0,84.0,Single,Y,NODATA!,,,2106.0,70.0,double glazing installed before 2002,Normal,2.0,4.0,4.0,0.0,2.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Partial double glazing,Poor,Poor,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"3 Springdale Terrace, Maidstone Road, Wateringbury",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2013-05-26 10:39:02,owner-occupied,13.0,0.0,200003658783.0,Address Matched +1496703649742016111416442743869848,"66, Cumberland Avenue",,,ME15 7JJ,9786348478,C,B,73,88,House,Mid-Terrace,2016-11-14,E07000110,E14000700,Kent,2016-11-14,rental (social),73,88,183,68.0,2.3,32,0.9,97.0,52.0,344.0,356.0,143.0,83.0,71.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,14.0,0.0,From main system,Good,Good,"Solid, limited insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 14% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,2.3,,N,natural,"66, Cumberland Avenue",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1996-2002,2016-11-14 16:44:27,rental (social),,,200003714148.0,Address Matched +1355851021532015091815333688078803,"5, Burleigh Drive",,,ME14 2HY,2338848378,D,C,55,79,House,Semi-Detached,2015-09-09,E07000110,E14000700,Kent,2015-09-18,marketed sale,21,42,287,128.0,9.9,105,5.7,59.0,59.0,761.0,547.0,283.0,125.0,94.0,Unknown,N,NODATA!,,,2101.0,100.0,double glazing installed before 2002,Normal,1.0,5.0,5.0,100.0,0.0,"From main system, no cylinder thermostat",Poor,Very Poor,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Flat, insulated",Average,Average,"Boiler and radiators, coal",Poor,Very Poor,No time or thermostatic control of room temperature,Very Poor,Very Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,house coal (not community),0.0,NO DATA!,,,,N,natural,"5, Burleigh Drive",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2015-09-18 15:33:36,owner-occupied,,,200003672273.0,Address Matched +cbe339443db6aaed097899ae7b60f4c5b9009d63ab63ec265be3f1a69c25698b,"The Annexe, Homestead Farm",Yelstead Road,Yelstead,ME9 7XG,10001671902,D,A,56,105,Bungalow,Detached,2021-07-29,E07000110,E14000700,Kent,2021-07-29,rental,51,98,241,-81.0,3.8,57,-0.2,71.0,71.0,452.0,342.0,145.0,85.0,66.0,Single,N,,,,,83.0,double glazing installed before 2002,Normal,1.0,3.0,3.0,75.0,0.0,From main system,Average,Average,"Suspended, no insulation (assumed)",,,Mostly double glazing,Average,Average,"Timber frame, as built, insulated (assumed)",Good,Good,"Room heaters, wood logs",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, oil",Average,Average,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,oil (not community),0.0,,,2.32,0.0,N,natural,"The Annexe, Homestead Farm, Yelstead Road, Yelstead",Maidstone,Faversham and Mid Kent,SITTINGBOURNE,England and Wales: 1983-1990,2021-07-29 15:04:37,Rented (private),12.0,,, +650469883932011070412202155068301,"43, Douglas Road",,,ME16 8ER,8195318868,D,D,58,60,House,Semi-Detached,2011-07-04,E07000110,E14000804,Kent,2011-07-04,marketed sale,52,53,236,228.0,8.3,45,8.1,141.0,70.0,1284.0,1294.0,117.0,117.0,153.6,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,7.0,7.0,0.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation(assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,2.4,0.0,,natural,"43, Douglas Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2011-07-04 12:20:21,owner-occupied,15.0,0.0,200003667761.0,Address Matched +1097507129262017032820235760488063,"6a, Castle Road",,,ME16 0PY,6617220278,D,B,63,83,Bungalow,Semi-Detached,2017-03-28,E07000110,E14000804,Kent,2017-03-28,marketed sale,63,83,259,96.0,2.8,45,1.1,80.0,43.0,493.0,428.0,130.0,75.0,61.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,14.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 14% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"6a, Castle Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2017-03-28 20:23:57,owner-occupied,,,200003659599.0,Address Matched +760915087232012031314571269968701,"38, The Weavers",,,ME16 0NZ,8119736968,D,D,59,68,House,Detached,2012-03-13,E07000110,E14000804,Kent,2012-03-13,rental (private),53,64,248,190.0,5.8,48,4.5,105.0,61.0,879.0,715.0,160.0,121.0,121.95,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,4.0,6.0,6.0,29.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, mains gas",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 29% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,2.3,0.0,,natural,"38, The Weavers",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1991-1995,2012-03-13 14:57:12,rental (private),17.0,5.0,200003694780.0,Address Matched +cbcf7f50227424b8cd4b71496787500dad4079719bba7a4e48b85baa9b46772c,37 ELLIS FIELD,OTHAM,,ME15 8YL,10001489438,B,A,86,93,House,Detached,2021-08-19,E07000110,E14000804,Kent,2021-08-19,new dwelling,86,93,70,27.0,2.1,12,0.8,103.0,103.0,326.0,327.0,97.0,55.0,168.0,standard tariff,,,N,,,100.0,,,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.12 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.18 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.38,,,,"37 ELLIS FIELD, OTHAM",Maidstone,Maidstone and The Weald,OTHAM,2021,2021-08-19 11:12:12,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,16.0,,10094440506.0,Address Matched +415155140222009122123394921398691,"109, Bicknor Road",,,ME15 9PA,9201401768,C,C,78,78,House,Mid-Terrace,2009-12-21,E07000110,E14000700,Kent,2009-12-21,rental (social),75,75,168,168.0,2.5,28,2.5,45.0,45.0,383.0,383.0,96.0,96.0,89.71,Single,Y,NO DATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,100.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"System built, with external insulation",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.35,0.0,N,natural,"109, Bicknor Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2009-12-21 23:39:49,rental (social),,,200003679863.0,Address Matched +460615239222010032520211264558870,"264, Queens Road",,,ME16 0LD,7623324768,F,F,36,38,House,Mid-Terrace,2010-03-25,E07000110,E14000804,Kent,2010-03-25,marketed sale,41,42,525,515.0,4.7,85,4.6,43.0,28.0,718.0,729.0,272.0,247.0,55.4,Single,Y,NO DATA!,,,2602.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,3.0,50.0,0.0,"Electric immersion, standard tariff",Very Poor,Poor,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, electric",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, mains gas",Average,Average,Appliance thermostats,Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.42,0.0,N,natural,"264, Queens Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2010-03-25 20:21:12,owner-occupied,,,200003657021.0,Address Matched +112350369742017012321471041732578,Ronda,Church Street,Teston,ME18 5AG,3725967468,D,C,55,79,House,Semi-Detached,2017-01-23,E07000110,E14000804,Kent,2017-01-23,marketed sale,47,74,279,119.0,7.0,51,3.1,140.0,77.0,1112.0,770.0,258.0,79.0,138.0,Unknown,Y,NODATA!,,,2104.0,90.0,double glazing installed during or after 2002,Normal,1.0,6.0,6.0,19.0,1.0,"From main system, no cylinder thermostat",Poor,Poor,"Suspended, no insulation (assumed)",NO DATA!,,Mostly double glazing,Good,Good,"Cavity wall, filled cavity",Good,Good,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 270 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 19% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"Ronda, Church Street, Teston",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2017-01-23 21:47:10,owner-occupied,,,200003661867.0,Address Matched +292326556112009052720492204210460,"2, Hadley Gardens",Hollingbourne,,ME17 1UF,4009642668,D,C,66,77,House,Semi-Detached,2009-05-27,E07000110,E14000700,Kent,2009-05-27,rental (private),60,73,229,154.0,6.0,38,4.0,90.0,77.0,812.0,529.0,120.0,120.0,157.94,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,5.0,5.0,83.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 25 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 83% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.34,0.0,N,natural,"2, Hadley Gardens, Hollingbourne",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2009-05-27 20:49:22,rental (private),,,200003701648.0,Address Matched +1438029840712016042721371793260044,"35, Fant Lane",,,ME16 8NN,465034478,E,C,42,71,House,Mid-Terrace,2016-04-27,E07000110,E14000804,Kent,2016-04-27,marketed sale,35,64,425,192.0,6.3,75,2.9,88.0,59.0,1103.0,766.0,199.0,75.0,84.0,Single,Y,NODATA!,,,2106.0,,not defined,Much More Than Typical,2.0,4.0,4.0,50.0,2.0,From main system,Average,Average,"Suspended, no insulation (assumed)",NO DATA!,,Mostly double glazing,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, mains gas",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,2.55,,N,natural,"35, Fant Lane",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2016-04-27 21:37:17,owner-occupied,,,200003674387.0,Address Matched +1822453382602020090210421276100328,"6, Billet Close",Coxheath,,ME17 4TY,2697581778,B,A,83,96,House,Semi-Detached,2020-09-02,E07000110,E14000804,Kent,2020-09-02,new dwelling,86,98,95,-1.0,1.2,17,0.0,59.0,59.0,214.0,214.0,71.0,43.0,71.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.21 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"6, Billet Close, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2020-09-02 10:42:12,unknown,1.0,1.0,10094443745.0,Address Matched +1330081543012015061114192396950734,"38, Furfield Chase",Boughton Monchelsea,,ME17 4GD,7429366378,C,B,75,87,House,End-Terrace,2015-06-11,E07000110,E14000700,Kent,2015-06-11,marketed sale,74,87,147,64.0,2.7,26,1.2,66.0,66.0,440.0,481.0,178.0,45.0,104.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,"Roof room(s), insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"38, Furfield Chase, Boughton Monchelsea",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2007 onwards,2015-06-11 14:19:23,owner-occupied,,,10022901176.0,Address Matched +330829324352019102019275691219164,"6, Iris Close",,,ME5 9QD,1405415668,D,B,65,81,House,Semi-Detached,2019-10-20,E07000110,E14000700,Kent,2019-10-20,marketed sale,62,78,256,127.0,3.0,45,1.5,67.0,52.0,470.0,452.0,133.0,78.0,66.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,70.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 70% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"6, Iris Close",Maidstone,Faversham and Mid Kent,CHATHAM,England and Wales: 1983-1990,2019-10-20 19:27:56,owner-occupied,,,200003708193.0,Address Matched +1422798829962016031415402843498926,55 Hubert Walter Drive,,,ME16 0BE,2445223478,B,B,87,87,Flat,NO DATA!,2016-03-11,E07000110,E14000804,Kent,2016-03-14,new dwelling,91,91,59,59.0,0.8,10,0.8,55.0,55.0,165.0,165.0,88.0,88.0,74.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.20 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,55 Hubert Walter Drive,Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2016-03-14 15:40:28,unknown,5.0,5.0,10091196052.0,Address Matched +251928850142009032320500355912978,"18, Mayfair Avenue",,,ME15 6BZ,4117959568,D,C,57,73,House,Detached,2009-03-23,E07000110,E14000804,Kent,2009-03-23,rental (private),51,69,345,214.0,4.7,58,2.9,74.0,39.0,546.0,399.0,197.0,106.0,81.19,Single,Y,NO DATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,1.0,5.0,5.0,10.0,0.0,"From main system, no cylinderstat",Poor,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Average,Good,Programmer and room thermostat,Poor,Poor,Low energy lighting in 10% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.35,0.0,N,natural,"18, Mayfair Avenue",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2009-03-23 20:50:03,rental (private),,,200003677395.0,Address Matched +1189042479402014081221583724649828,60 Farleigh Court,Farleigh Lane,,ME16 9BH,5494076278,D,C,68,69,Flat,Semi-Detached,2014-08-12,E07000110,E14000804,Kent,2014-08-12,rental (social),68,70,200,189.0,2.4,38,2.3,47.0,47.0,483.0,455.0,90.0,90.0,62.0,Single,Y,1st,Y,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,86.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 86% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,no corridor,,,0.0,,natural,"60 Farleigh Court, Farleigh Lane",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2014-08-12 21:58:37,rental (social),7.0,6.0,200003683287.0,Address Matched +1431476819062016041116493133358146,Flat 45,Concorde House,London Road,ME16 8QA,4308183478,D,D,59,59,Flat,End-Terrace,2016-04-05,E07000110,E14000804,Kent,2016-04-11,rental (private),55,55,319,319.0,3.3,54,3.3,46.0,46.0,606.0,606.0,178.0,178.0,62.0,dual,N,3rd,N,,2107.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,100.0,0.0,From main system,Poor,Poor,(another dwelling below),NO DATA!,,Fully double glazed,Good,Good,"System built, with internal insulation",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, electric",Very Poor,Poor,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,unheated corridor,15.9,2.5,,N,natural,"Flat 45, Concorde House, London Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2016-04-11 16:49:31,rental (private),,,, +890630269242013030111274905572788,"35, Norrington Road",,,ME15 9XB,5241165078,D,C,60,77,House,Detached,2013-02-28,E07000110,E14000804,Kent,2013-03-01,marketed sale,56,75,230,121.0,4.4,44,2.3,89.0,52.0,684.0,589.0,131.0,77.0,98.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,30.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 30% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"35, Norrington Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2013-03-01 11:27:49,owner-occupied,10.0,3.0,200003675606.0,Address Matched +1419918699962016061609353322778046,"26, Nightingale Road",Allington,,ME16 0FQ,4293992478,B,B,85,85,Flat,Detached,2016-06-13,E07000110,E14000804,Kent,2016-06-16,new dwelling,89,89,72,72.0,0.9,13,0.9,50.0,50.0,155.0,155.0,81.0,81.0,68.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.27 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"26, Nightingale Road, Allington",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2016-06-16 09:35:33,owner-occupied,14.0,14.0,10091195305.0,Address Matched +331977353132009072322231924268302,"67a, Wrangleden Road",,,ME15 9LD,5204325668,C,C,71,76,Flat,Semi-Detached,2009-07-23,E07000110,E14000700,Kent,2009-07-23,rental (social),66,72,261,216.0,2.7,44,2.2,47.0,31.0,363.0,337.0,136.0,102.0,61.0,Single,Y,1st,Y,2.0,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,50.0,0.0,"From main system, no cylinderstat",Average,Good,(other premises below),,,Fully double glazed,Average,Average,"System built, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.32,0.0,N,natural,"67a, Wrangleden Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2009-07-23 22:23:19,rental (social),,,200003683186.0,Address Matched +1599999569962018011211192165228398,1 Smith Way,Headcorn,,TN27 9EQ,9694675578,B,A,85,93,House,End-Terrace,2018-01-12,E07000110,E14000700,Kent,2018-01-12,new dwelling,85,94,79,24.0,1.7,14,0.6,81.0,81.0,284.0,284.0,83.0,50.0,125.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.19 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.14 W/m-¦K,Very Good,Very Good,"Boiler and underfloor heating, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"1 Smith Way, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,NO DATA!,2018-01-12 11:19:21,unknown,14.0,14.0,10093306450.0,Address Matched +763916511052012032115581196220094,"165, Upper Fant Road",,,ME16 8BT,464166968,D,D,55,57,House,Mid-Terrace,2012-03-21,E07000110,E14000804,Kent,2012-03-21,rental (private),50,51,276,268.0,5.9,53,5.8,101.0,55.0,965.0,972.0,112.0,112.0,110.57,Single,Y,NODATA!,,,2106.0,90.0,double glazing installed before 2002,Normal,3.0,6.0,6.0,18.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Mostly double glazing,Average,Average,"Sandstone, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 18% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,2.4,0.0,,natural,"165, Upper Fant Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2012-03-21 15:58:11,rental (private),17.0,3.0,200003656107.0,Address Matched +471638289962010042312300654368530,Flat 3,39 High Street,,ME14 1JH,3587894768,D,D,63,64,Maisonette,Mid-Terrace,2010-04-16,E07000110,E14000804,Kent,2010-04-23,marketed sale,74,75,257,251.0,1.7,39,1.7,51.0,29.0,228.0,238.0,190.0,190.0,44.48,standard tariff,,top floor,,,,,NO DATA!,NO DATA!,,,,5.0,,"Electric immersion, standard tariff",Very Poor,Poor,(other premises below),,,Single glazed,Very Poor,Very Poor,Average thermal transmittance 0.38 W/m?K,Good,Good,"Room heaters, electric",,,Average thermal transmittance 0.21 W/m?K,Good,Good,"Room heaters, electric",Very Poor,Poor,Programmer and appliance thermostats,Good,Good,Low energy lighting in 25% of fixed outlets,Average,Average,"Electricity: electricity, unspecified tariff",0.0,NO DATA!,,2.39,,,NO DATA!,"Flat 3, 39 High Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2010-04-23 12:30:06,,20.0,5.0,10014311364.0,Address Matched +59117842532016011807354428268495,Second Floor Flat,3 London Road,,ME16 8HS,4508468568,D,D,56,67,Flat,Mid-Terrace,2015-12-21,E07000110,E14000804,Kent,2016-01-18,rental (social),52,67,435,301.0,2.7,77,1.9,53.0,26.0,531.0,381.0,77.0,77.0,35.0,Unknown,Y,3rd,Y,,2107.0,0.0,not defined,Normal,0.0,2.0,2.0,0.0,0.0,From main system,Good,Good,(another dwelling below),NO DATA!,,Single glazed,Very Poor,Very Poor,"Solid brick, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,unheated corridor,6.4,,,N,natural,"Second Floor Flat, 3 London Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2016-01-18 07:35:44,rental (social),,,200003668850.0,Address Matched +797363166232012060514033074068906,"24, Strachan Close",,,ME15 6ZT,6674998968,B,B,88,88,House,End-Terrace,2012-06-05,E07000110,E14000804,Kent,2012-06-05,new dwelling,90,90,55,55.0,1.2,11,1.2,54.0,54.0,289.0,289.0,95.0,95.0,110.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,11.0,,From main system,Good,Good,Average thermal transmittance 0.19 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.19 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.12 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.39,,,NO DATA!,"24, Strachan Close",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2012-06-05 14:03:30,,11.0,11.0,10014313108.0,Address Matched +99774379802015030908290241650258,"30, Mallings Drive",Bearsted,,ME14 4HF,849876468,E,C,41,79,House,Semi-Detached,2015-03-05,E07000110,E14000700,Kent,2015-03-09,none of the above,34,74,414,131.0,8.5,73,2.7,109.0,66.0,1431.0,717.0,253.0,77.0,116.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,2.0,6.0,6.0,35.0,0.0,"From main system, no cylinder thermostat",Poor,Poor,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 35% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"30, Mallings Drive, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2015-03-09 08:29:02,owner-occupied,,,200003694795.0,Address Matched +159614960732013101511250248968394,Caring Cottage,Caring Road,Leeds,ME17 1TH,6488352568,D,C,55,77,House,Detached,2013-10-14,E07000110,E14000700,Kent,2013-10-15,marketed sale,52,76,233,115.0,8.2,41,3.8,153.0,85.0,1438.0,1034.0,239.0,125.0,197.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,7.0,7.0,20.0,1.0,"From main system, no cylinder thermostat",Poor,Poor,"Suspended, limited insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, wood logs",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 20% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"Caring Cottage, Caring Road, Leeds",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1996-2002,2013-10-15 11:25:02,owner-occupied,30.0,6.0,200003694581.0,Address Matched +749798659922012021322540275178382,"4, Meadow View Road",Boughton Monchelsea,,ME17 4LH,8775555968,E,D,51,59,House,Semi-Detached,2012-02-13,E07000110,E14000700,Kent,2012-02-13,marketed sale,46,55,330,270.0,5.4,64,4.4,80.0,46.0,852.0,710.0,125.0,125.0,84.2,Unknown,Y,NODATA!,,,2106.0,90.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,25.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Mostly double glazing,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 25% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,2.3,0.0,,natural,"4, Meadow View Road, Boughton Monchelsea",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2012-02-13 22:54:02,owner-occupied,8.0,2.0,200003674735.0,Address Matched +1299353542142020031315444436409978,2 Dourne Cottages,Marden Thorn,Marden,TN12 9LH,2129644378,E,B,42,86,House,Semi-Detached,2020-03-13,E07000110,E14000804,Kent,2020-03-13,marketed sale,36,80,272,51.0,7.1,72,1.8,82.0,82.0,815.0,339.0,275.0,84.0,99.0,dual,N,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,100.0,0.0,From main system,Poor,Poor,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, oil",Poor,Poor,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,oil (not community),0.0,NO DATA!,,,,N,natural,"2 Dourne Cottages, Marden Thorn, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: before 1900,2020-03-13 15:44:44,owner-occupied,,,200003725004.0,Address Matched +1033716519262013102908123315888537,"9, Warwick Place",,,ME16 8SG,3161175178,E,C,52,75,House,End-Terrace,2013-10-28,E07000110,E14000804,Kent,2013-10-29,marketed sale,48,72,317,148.0,4.2,61,2.0,84.0,42.0,761.0,593.0,88.0,65.0,70.0,Single,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,0.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"9, Warwick Place",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2013-10-29 08:12:33,owner-occupied,7.0,0.0,200003668189.0,Address Matched +499508209042019061711320174719648,"27, Dorset Way",,,ME15 7ER,57007768,C,B,71,83,House,Semi-Detached,2019-06-14,E07000110,E14000700,Kent,2019-06-17,marketed sale,68,81,186,100.0,3.2,33,1.8,67.0,67.0,543.0,504.0,102.0,69.0,95.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Average,Average,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"27, Dorset Way",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2019-06-17 11:32:01,owner-occupied,,,200003711390.0,Address Matched +1596411522352017121414174895939359,Flat 10 The Cooperage,"10, Buckland Road",,ME16 0SL,3910255578,B,B,83,83,Flat,End-Terrace,2017-12-14,E07000110,E14000804,Kent,2017-12-14,new dwelling,88,88,87,87.0,0.8,15,0.8,36.0,36.0,160.0,160.0,56.0,56.0,50.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Flat 10 The Cooperage, 10, Buckland Road",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2017-12-14 14:17:48,owner-occupied,7.0,7.0,10093302846.0,Address Matched +967904614352013071214345390970112,"59, Bower Lane",,,ME16 8ED,1280401178,E,C,41,73,House,Semi-Detached,2013-07-11,E07000110,E14000804,Kent,2013-07-12,marketed sale,37,69,345,144.0,8.2,67,3.5,113.0,63.0,1436.0,803.0,111.0,98.0,123.0,Unknown,Y,NODATA!,,,2106.0,10.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,18.0,2.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Some double glazing,Very Poor,Very Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, mains gas",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 18% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"59, Bower Lane",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2013-07-12 14:34:53,owner-occupied,11.0,2.0,200003667545.0,Address Matched +360186500922009091018174627208051,Flat 24 The Sovereigns,Queens Road,,ME16 0JG,5295027668,D,C,61,69,Flat,End-Terrace,2009-09-10,E07000110,E14000804,Kent,2009-09-10,rental (social),55,62,381,318.0,3.7,57,3.1,78.0,39.0,366.0,286.0,142.0,142.0,63.7,dual,N,3rd,Y,3.0,2401.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,2.0,0.0,0.0,"Electric immersion, off-peak",Average,Poor,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,Portable electric heaters,,,"Pitched, 100 mm loft insulation",Average,Average,Electric storage heaters,Poor,Very Poor,Manual charge control,Poor,Poor,No low energy lighting,Very Poor,Very Poor,electricity - this is for backwards compatibility only and should not be used,0.0,unheated corridor,6.5,2.4,0.0,N,"mechanical, extract only","Flat 24 The Sovereigns, Queens Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2009-09-10 18:17:46,rental (social),,,200003657129.0,Address Matched +476133939802010042621240774502268,3 Glovers Cottages,Faversham Road,Lenham,ME17 2HB,8801235768,E,D,48,64,House,Semi-Detached,2010-04-26,E07000110,E14000700,Kent,2010-04-26,marketed sale,42,58,293,204.0,9.0,59,6.1,124.0,80.0,1081.0,787.0,323.0,195.0,151.42,Unknown,N,NO DATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,2.0,6.0,6.0,45.0,0.0,"From main system, no cylinder thermostat",Poor,Poor,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, oil",Average,Average,Programmer and room thermostat,Average,Average,Low energy lighting in 45% of fixed outlets,Good,Good,oil - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.36,0.0,N,natural,"3 Glovers Cottages, Faversham Road, Lenham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2010-04-26 21:24:07,owner-occupied,,,200003714022.0,Address Matched +583045254652011012009522390290884,Flat 12 The Sovereigns,Queens Road,,ME16 0JG,8433403868,D,C,67,72,Flat,Semi-Detached,2011-01-20,E07000110,E14000804,Kent,2011-01-20,rental (private),60,63,349,327.0,3.1,53,2.9,67.0,38.0,300.0,266.0,136.0,136.0,58.66,Unknown,N,1st,Y,2.0,2401.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,25.0,0.0,"Electric immersion, off-peak",Average,Poor,(other premises below),,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,"Pitched, insulated (assumed)",Good,Good,Electric storage heaters,Poor,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 25% of fixed outlets,Average,Average,electricity - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.43,0.0,N,natural,"Flat 12 The Sovereigns, Queens Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1991-1995,2011-01-20 09:52:23,rental (private),,,200003657121.0,Address Matched +597035050212011050921083892090881,1 Sheals Court,Old Tovil Road,,ME15 6PP,8162024868,C,C,74,76,Flat,Semi-Detached,2011-05-09,E07000110,E14000804,Kent,2011-05-09,rental (social),78,79,166,157.0,1.5,32,1.5,50.0,28.0,269.0,272.0,71.0,71.0,48.6,Single,Y,Ground,N,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,17.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 17% of fixed outlets,Poor,Poor,mains gas (not community),0.0,unheated corridor,1.0,2.3,0.0,,natural,"1 Sheals Court, Old Tovil Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2011-05-09 21:08:38,rental (social),6.0,1.0,200003682693.0,Address Matched +1391940309002015120206364347150598,"18, Yeoman Lane",Bearsted,,ME14 4BU,1068101478,D,B,56,83,House,Semi-Detached,2015-12-01,E07000110,E14000700,Kent,2015-12-02,marketed sale,43,76,300,97.0,5.3,63,1.9,109.0,55.0,831.0,501.0,114.0,75.0,85.0,Single,Y,NODATA!,,,2106.0,20.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,0.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Some double glazing,Poor,Poor,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, coal",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"18, Yeoman Lane, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1900-1929,2015-12-02 06:36:43,owner-occupied,,,200003692035.0,Address Matched +1301734997532015032816002636278300,"4, Mote Avenue",,,ME15 7SS,9036364378,D,B,65,85,House,Semi-Detached,2015-03-28,E07000110,E14000804,Kent,2015-03-28,assessment for green deal,60,83,241,89.0,3.9,42,1.5,78.0,57.0,678.0,475.0,142.0,84.0,92.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,64.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, mains gas",,,"Pitched, 270 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 64% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"4, Mote Avenue",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2015-03-28 16:00:26,owner-occupied,,,200003695709.0,Address Matched +206158555512008123018095400789455,"18, St. Lukes Road",,,ME14 5AW,4571506568,E,C,39,73,House,Semi-Detached,2008-12-30,E07000110,E14000804,Kent,2008-12-30,marketed sale,33,68,516,216.0,7.4,86,3.1,68.0,38.0,815.0,383.0,199.0,93.0,85.0,Unknown,Y,NO DATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,20.0,0.0,"From main system, no cylinderstat",Poor,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 12mm loft insulation",Very Poor,Very Poor,"Boiler and radiators, mains gas",Average,Good,Programmer and room thermostat,Poor,Poor,Low energy lighting in 20% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.5,0.0,N,natural,"18, St. Lukes Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2008-12-30 18:09:54,owner-occupied,,,200003705967.0,Address Matched +1599443999832018012218174969278203,"18, Albert Street",,,ME14 2RN,9339275578,E,C,50,74,House,Mid-Terrace,2018-01-22,E07000110,E14000804,Kent,2018-01-22,rental (private),46,71,313,149.0,6.0,55,2.9,124.0,70.0,1133.0,795.0,148.0,88.0,109.0,Single,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,2.0,5.0,5.0,22.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, electric",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 22% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,,N,"mechanical, extract only","18, Albert Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2018-01-22 18:17:49,rental (private),,,200003669505.0,Address Matched +597415529942011031622112987499068,Flat 6 Canterbury House,Cambridge Crescent,,ME15 7NZ,4987424868,C,C,71,79,Flat,End-Terrace,2011-03-16,E07000110,E14000700,Kent,2011-03-16,rental (social),67,76,323,235.0,2.0,54,1.5,33.0,20.0,356.0,293.0,96.0,70.0,37.94,Single,Y,Ground,N,2.0,2107.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,40.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 40% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.34,0.0,N,natural,"Flat 6 Canterbury House, Cambridge Crescent",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2011-03-16 22:11:29,rental (social),,,200003713121.0,Address Matched +429667949762010033010144572508850,"11a, Hollingworth Road",,,ME15 9HN,5776402768,C,C,79,80,Flat,Enclosed End-Terrace,2010-03-30,E07000110,E14000700,Kent,2010-03-30,rental (social),77,78,180,175.0,1.8,30,1.7,45.0,30.0,285.0,288.0,83.0,83.0,58.74,Single,Y,1st,Y,2.0,2106.0,100.0,double glazing installed before 2002,More Than Typical,0.0,3.0,3.0,50.0,0.0,From main system,Very Good,Very Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.29,0.0,N,natural,"11a, Hollingworth Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2010-03-30 10:14:45,rental (social),,,200003683026.0,Address Matched +243893049962014012708540069488824,14 Wicken House,London Road,,ME16 8QP,2683409568,D,C,56,78,Flat,End-Terrace,2014-01-18,E07000110,E14000804,Kent,2014-01-27,assessment for green deal,40,62,532,317.0,3.8,94,2.3,48.0,30.0,437.0,197.0,188.0,106.0,41.0,dual,N,3rd,N,,2401.0,100.0,double glazing installed before 2002,Normal,1.0,2.0,1.0,40.0,0.0,"Electric immersion, off-peak",Poor,Very Poor,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,Portable electric heaters (assumed),,,(another dwelling above),,,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 40% of fixed outlets,Average,Average,electricity (not community),0.0,unheated corridor,6.88,,0.0,,natural,"14 Wicken House, London Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2014-01-27 08:54:00,rental (private),5.0,2.0,200003668496.0,Address Matched +399698090502009111711220060919338,Flat 5,"163, Union Street",,ME14 1EY,8572299668,F,E,34,52,Flat,Semi-Detached,2009-11-17,E07000110,E14000804,Kent,2009-11-17,marketed sale,32,40,793,661.0,5.1,119,4.3,39.0,24.0,590.0,452.0,195.0,103.0,42.92,Unknown,N,2nd,Y,3.0,2401.0,100.0,double glazing installed before 2002,Normal,0.0,2.0,2.0,33.0,0.0,"Electric immersion, off-peak",Very Poor,Poor,(other premises below),,,Fully double glazed,Average,Average,"Granite or whin, as built, no insulation (assumed)",Very Poor,Very Poor,Portable electric heaters,,,"Pitched, 100 mm loft insulation",Average,Average,Electric storage heaters,Poor,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 33% of fixed outlets,Average,Average,electricity - this is for backwards compatibility only and should not be used,0.0,heated corridor,,2.32,0.0,N,natural,"Flat 5, 163, Union Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2009-11-17 11:22:00,owner-occupied,,,200003696836.0,Address Matched +1726662692142020021009142962409308,"12, Percival Way",Otham,,ME15 8YG,173194678,B,A,84,94,House,Detached,2020-02-10,E07000110,E14000700,Kent,2020-02-10,new dwelling,85,96,89,17.0,1.6,16,0.3,76.0,76.0,256.0,257.0,99.0,55.0,102.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.10 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.19 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"12, Percival Way, Otham",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2020-02-10 09:14:29,unknown,10.0,10.0,10094440466.0,Address Matched +1154228866432014061011191416078009,Flat 20/A Elizabeth House,Alexandra Street,,ME14 2BU,6956024278,D,B,56,83,Flat,Mid-Terrace,2014-06-06,E07000110,E14000804,Kent,2014-06-10,none of the above,61,72,354,255.0,2.2,63,1.6,53.0,27.0,331.0,109.0,244.0,102.0,35.0,dual,N,Ground,N,,2699.0,100.0,double glazing installed during or after 2002,Normal,0.0,1.0,0.0,0.0,0.0,"Electric immersion, off-peak",Poor,Very Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,(another dwelling above),,,No system present: electric heaters assumed,Very Poor,Very Poor,,Very Poor,Very Poor,No low energy lighting,Very Poor,Very Poor,To be used only when there is no heating/hot-water system,0.0,no corridor,,,0.0,,natural,"Flat 20/A Elizabeth House, Alexandra Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2014-06-10 11:19:14,rental (private),4.0,0.0,200003704586.0,Address Matched +1730610079512019070118555591210561,"28, Watersmeet Close",,,ME15 6GU,5183915678,C,B,69,81,House,End-Terrace,2019-06-20,E07000110,E14000804,Kent,2019-07-01,marketed sale,68,80,198,109.0,3.1,35,1.8,91.0,69.0,581.0,556.0,101.0,68.0,90.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,6.0,6.0,68.0,0.0,From main system,Good,Good,"Solid, limited insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 68% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"28, Watersmeet Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2019-07-01 18:55:55,owner-occupied,,,10022892200.0,Address Matched +812833409242012071208015304029028,Flat C,"483, Tonbridge Road",,ME16 9LH,4226700078,C,C,73,77,Flat,Detached,2012-07-12,E07000110,E14000804,Kent,2012-07-12,marketed sale,75,80,155,122.0,2.0,29,1.6,88.0,44.0,325.0,294.0,93.0,81.0,69.0,Unknown,Y,Basement,N,,2107.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,0.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,no corridor,,,0.0,,natural,"Flat C, 483, Tonbridge Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2012-07-12 08:01:53,owner-occupied,10.0,0.0,10014309673.0,Address Matched +1075113769602014012721285412842398,"69, Allington Way",,,ME16 0HS,3605768178,E,B,54,82,House,Semi-Detached,2014-01-21,E07000110,E14000804,Kent,2014-01-27,none of the above,49,81,280,92.0,4.8,54,1.6,102.0,52.0,823.0,518.0,147.0,76.0,88.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,5.0,5.0,6.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 6% of fixed outlets,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"69, Allington Way",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2014-01-27 21:28:54,owner-occupied,16.0,1.0,200003703177.0,Address Matched +1645339243832018070320460443078109,"18, Offens Drive",Staplehurst,,TN12 0LB,4943109578,D,B,62,84,House,Semi-Detached,2018-07-03,E07000110,E14000804,Kent,2018-07-03,rental (private),54,81,254,90.0,4.8,45,1.8,71.0,71.0,703.0,487.0,234.0,74.0,108.0,Single,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,100.0,0.0,From main system,Average,Average,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"18, Offens Drive, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1967-1975,2018-07-03 20:46:04,rental (private),,,200003677615.0,Address Matched +1123667709342014041014011628249908,Park Cottage,Livesey Street,Teston,ME18 5AY,3399702278,C,B,69,82,House,Detached,2014-04-10,E07000110,E14000804,Kent,2014-04-10,FiT application,59,75,136,75.0,7.1,34,4.2,86.0,88.0,1359.0,949.0,122.0,123.0,208.0,Single,N,NODATA!,,,2106.0,0.0,not defined,Normal,1.0,10.0,10.0,100.0,0.0,"From main system, plus solar",Very Good,Good,"Suspended, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Solid brick, with internal insulation",Good,Good,,,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, oil",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,oil (not community),0.0,NO DATA!,,,0.0,,natural,"Park Cottage, Livesey Street, Teston",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2014-04-10 14:01:16,owner-occupied,15.0,15.0,200003661985.0,Address Matched +cc7094c1a915f922ac7a078591392a22cafde2b21706964cc81d89d8320ca751,9,Railway Place,Lenham,ME17 2FQ,10001617413,A,A,94,95,House,Semi-Detached,2021-08-03,E07000110,E14000700,Kent,2021-08-03,new dwelling,96,98,19,5.0,0.3,4,0.1,69.0,69.0,211.0,211.0,67.0,37.0,81.0,standard tariff,,,N,,,100.0,,,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.16 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.17 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.44,,,,"9, Railway Place, Lenham",Maidstone,Faversham and Mid Kent,Maidstone,2020,2021-08-03 09:36:36,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,13.0,,10095449333.0,Address Matched +1011373305412013092214391491970613,"12, Porters Walk",Langley,,ME17 3JU,6391514178,C,C,76,78,Flat,Mid-Terrace,2013-09-19,E07000110,E14000700,Kent,2013-09-22,rental (social),78,80,138,121.0,1.7,26,1.5,54.0,41.0,314.0,286.0,86.0,86.0,65.0,Single,Y,1st,Y,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,67.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 67% of fixed outlets,Good,Good,mains gas (not community),0.0,no corridor,,,0.0,,natural,"12, Porters Walk, Langley",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2013-09-22 14:39:14,rental (social),6.0,4.0,200003697670.0,Address Matched +1480069956152016092014473392960147,6 Frampton Place,6 Tonbridge Road,,ME16 8RP,1757627478,C,C,80,80,Flat,NO DATA!,2016-09-19,E07000110,E14000804,Kent,2016-09-20,new dwelling,65,65,285,285.0,2.4,50,2.4,37.0,37.0,175.0,175.0,132.0,132.0,48.0,off-peak 7 hour,,top floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Average,Very Poor,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.36 W/m+é-¦K,Good,Good,,,,Average thermal transmittance 0.14 W/m+é-¦K,Very Good,Very Good,"Boiler and radiators, electric",Average,Very Poor,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"6 Frampton Place, 6 Tonbridge Road",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2016-09-20 14:47:33,unknown,12.0,12.0,10093302903.0,Address Matched +326492489302011082211562567492828,"23, York Road",,,ME15 7QT,9370084668,E,D,50,61,House,Mid-Terrace,2011-08-22,E07000110,E14000700,Kent,2011-08-22,marketed sale,46,57,352,267.0,4.9,68,3.7,57.0,40.0,779.0,624.0,136.0,101.0,71.83,Single,Y,NODATA!,,,2104.0,0.0,not defined,Normal,1.0,5.0,5.0,56.0,1.0,From main system,Average,Average,"Suspended, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 56% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,2.39,0.0,,natural,"23, York Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2011-08-22 11:56:25,owner-occupied,9.0,5.0,200003715680.0,Address Matched +1792569007212020031314041226900869,"1, Ash Way",Headcorn,,TN27 9FT,8936769678,B,A,84,95,House,End-Terrace,2020-03-13,E07000110,E14000700,Kent,2020-03-13,new dwelling,86,97,85,4.0,1.3,15,0.1,69.0,69.0,220.0,220.0,74.0,44.0,85.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.12 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"1, Ash Way, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,NO DATA!,2020-03-13 14:04:12,unknown,10.0,10.0,10094443425.0,Address Matched +254412096032020062921042840268300,"225, Boxley Road",Penenden Heath,,ME14 2BH,9070379568,D,C,63,80,House,Semi-Detached,2020-06-29,E07000110,E14000804,Kent,2020-06-29,rental (private),55,75,240,123.0,5.6,42,2.9,88.0,88.0,984.0,676.0,95.0,95.0,131.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,6.0,6.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"225, Boxley Road, Penenden Heath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2020-06-29 21:04:28,rental (private),,,200003701970.0,Address Matched +1172892604112014071610581995940726,"5, Mynn Crescent",Bearsted,,ME14 4AS,7659455278,D,C,57,77,House,Detached,2014-07-16,E07000110,E14000700,Kent,2014-07-16,marketed sale,47,70,228,112.0,7.2,49,3.7,74.0,74.0,1258.0,861.0,150.0,86.0,146.0,Unknown,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,2.0,8.0,8.0,100.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, smokeless fuel",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"5, Mynn Crescent, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2014-07-16 10:58:19,owner-occupied,13.0,13.0,200003691808.0,Address Matched +1479820703912017121811190792939640,12 Matthews Avenue,Harrietsham,,ME17 1GJ,6028327478,B,A,84,95,House,Semi-Detached,2017-12-18,E07000110,E14000700,Kent,2017-12-18,new dwelling,86,96,83,14.0,1.5,15,0.3,69.0,69.0,240.0,241.0,102.0,55.0,105.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.26 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.16 W/m-¦K,Good,Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"12 Matthews Avenue, Harrietsham",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2017-12-18 11:19:07,owner-occupied,16.0,16.0,10093303085.0,Address Matched +868557139062013010218243784028147,"46, Langdale Rise",,,ME16 0EX,4866304078,F,C,38,73,House,Detached,2013-01-02,E07000110,E14000804,Kent,2013-01-02,marketed sale,34,68,373,147.0,8.1,72,3.3,79.0,58.0,1333.0,779.0,191.0,73.0,112.0,Single,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,2.0,6.0,6.0,64.0,1.0,"From main system, no cylinder thermostat",Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 64% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"46, Langdale Rise",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2013-01-02 18:24:37,owner-occupied,11.0,7.0,200003659022.0,Address Matched +1603167609702018012520132057682858,32 Bishops Terrace,Bishops Way,,ME14 1LA,4773006578,D,D,61,61,Flat,Mid-Terrace,2018-01-25,E07000110,E14000804,Kent,2018-01-25,new dwelling,65,65,315,315.0,1.9,53,1.9,32.0,32.0,335.0,335.0,213.0,213.0,35.0,standard tariff,,top floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Very Poor,Poor,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.30 W/m-¦K,Good,Good,,,,Average thermal transmittance 0.28 W/m-¦K,Good,Good,"Boiler and radiators, electric",Very Poor,Poor,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"32 Bishops Terrace, Bishops Way",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2018-01-25 20:13:20,unknown,10.0,10.0,, +264378680062009041023382830618241,First Floor Flat,"22, Ashford Road",,ME14 5BH,4361840668,C,C,69,74,Flat,Detached,2009-04-09,E07000110,E14000804,Kent,2009-04-10,marketed sale,65,70,303,257.0,2.4,50,2.0,42.0,23.0,356.0,323.0,75.0,66.0,47.6,Single,Y,2nd,N,4.0,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,14.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Poor,Poor,Low energy lighting in 14% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,unheated corridor,4.93,2.81,0.0,N,natural,"First Floor Flat, 22, Ashford Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2009-04-10 23:38:28,owner-occupied,,,200003689356.0,Address Matched +974488759802013072409291616172448,"73, Linton Road",Loose,,ME15 0AH,9880051178,D,B,60,87,Bungalow,Detached,2013-07-24,E07000110,E14000804,Kent,2013-07-24,marketed sale,57,89,251,50.0,3.4,48,0.7,43.0,43.0,626.0,356.0,97.0,60.0,71.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"73, Linton Road, Loose",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2013-07-24 09:29:16,owner-occupied,8.0,8.0,200003663240.0,Address Matched +952297839922013061613521549668587,"14, Echo Close",,,ME15 8TZ,8454399078,D,B,58,88,Bungalow,End-Terrace,2013-06-16,E07000110,E14000700,Kent,2013-06-16,non marketed sale,38,67,554,246.0,4.1,98,1.8,40.0,28.0,443.0,315.0,106.0,61.0,42.0,dual,N,NODATA!,,,2401.0,100.0,double glazing installed before 2002,Normal,0.0,2.0,2.0,57.0,0.0,"Electric immersion, off-peak",Average,Very Poor,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,Portable electric heaters (assumed),,,"Pitched, insulated (assumed)",Average,Average,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 57% of fixed outlets,Good,Good,electricity (not community),0.0,NO DATA!,,,0.0,,natural,"14, Echo Close",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2013-06-16 13:52:15,owner-occupied,7.0,4.0,200003681086.0,Address Matched +1132936662312015070710430597050828,"348, Loose Road",,,ME15 9TT,8846272278,E,C,45,76,House,Detached,2015-07-07,E07000110,E14000804,Kent,2015-07-07,assessment for green deal,39,71,333,137.0,12.0,58,5.1,190.0,95.0,2373.0,1205.0,187.0,129.0,211.0,Single,Y,NODATA!,,,2103.0,100.0,"double glazing, unknown install date",Normal,3.0,9.0,7.0,0.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Room thermostat only,Poor,Poor,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"348, Loose Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2015-07-07 10:43:05,owner-occupied,,,200003678556.0,Address Matched +541816659062010100919264819218760,"36, Gloucester Road",,,ME15 7HS,6127599768,C,C,75,75,House,Semi-Detached,2010-10-09,E07000110,E14000700,Kent,2010-10-09,rental (social),71,71,200,200.0,2.8,33,2.8,44.0,44.0,429.0,429.0,120.0,120.0,83.52,Single,Y,NO DATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,100.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"System built, with external insulation",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.48,0.0,N,natural,"36, Gloucester Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2010-10-09 19:26:48,rental (social),,,200003711807.0,Address Matched +1607569619922018021316292206378618,"20, James Street",,,ME14 2UR,1063136578,D,B,68,87,House,Mid-Terrace,2018-02-13,E07000110,E14000804,Kent,2018-02-13,marketed sale,67,86,221,76.0,2.5,39,0.9,91.0,51.0,422.0,368.0,91.0,60.0,64.0,dual,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,3.0,22.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,"Room heaters, mains gas",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 22% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"20, James Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2018-02-13 16:29:22,owner-occupied,,,200003703540.0,Address Matched +516187019242011032412044774892548,Kiln Farm,Maidstone Road,Marden,TN12 9AP,254518768,E,D,54,58,House,Detached,2011-03-24,E07000110,E14000804,Kent,2011-03-24,marketed sale,50,53,233,216.0,10.0,45,9.8,242.0,131.0,1516.0,1485.0,266.0,251.0,229.95,Single,N,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,10.0,10.0,15.0,0.0,From main system,Average,Average,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, oil",Average,Average,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 15% of fixed outlets,Poor,Poor,oil - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.55,0.0,N,natural,"Kiln Farm, Maidstone Road, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: before 1900,2011-03-24 12:04:47,owner-occupied,,,200003724809.0,Address Matched +1661660328052018091113112691080965,2 Hillside Cottages,Goudhurst Road,Marden,TN12 9NE,9542810678,E,B,45,85,House,Semi-Detached,2018-09-07,E07000110,E14000804,Kent,2018-09-11,rental (private),62,96,176,-35.0,3.7,38,0.0,66.0,66.0,824.0,675.0,179.0,115.0,96.0,Unknown,N,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,6.0,6.0,100.0,0.0,From main system,Poor,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, LPG",Poor,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,LPG (not community),0.0,NO DATA!,,,,N,natural,"2 Hillside Cottages, Goudhurst Road, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1900-1929,2018-09-11 13:11:26,rental (private),,,200003667992.0,Address Matched +1218759436952014101008230097240523,"223, Merton Road",Bearsted,,ME15 8LN,5372678278,F,C,33,77,House,Semi-Detached,2014-09-24,E07000110,E14000700,Kent,2014-10-10,none of the above,30,74,418,123.0,8.9,81,2.7,126.0,63.0,1458.0,740.0,384.0,82.0,110.0,Single,Y,NODATA!,,,2102.0,100.0,double glazing installed before 2002,Normal,1.0,5.0,5.0,0.0,0.0,"From main system, no cylinder thermostat",Poor,Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Average,"Programmer, no room thermostat",Very Poor,Very Poor,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"223, Merton Road, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2014-10-10 08:23:00,owner-occupied,14.0,0.0,200003686075.0,Address Matched +790750259442014061608064798849168,"117, Heath Road",,,ME16 9JT,7486358968,D,B,64,86,House,Detached,2014-06-16,E07000110,E14000804,Kent,2014-06-16,assessment for green deal,62,86,218,65.0,3.3,42,1.0,87.0,48.0,607.0,418.0,95.0,67.0,79.0,Single,Y,NODATA!,,,2106.0,70.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,20.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Partial double glazing,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 20% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"117, Heath Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2014-06-16 08:06:47,owner-occupied,10.0,2.0,200003665870.0,Address Matched +1377538989262015102115365509598695,"94, The Quarries",Boughton Monchelsea,,ME17 4NJ,9099899378,E,B,43,85,Bungalow,Detached,2015-10-21,E07000110,E14000700,Kent,2015-10-21,non marketed sale,36,82,453,98.0,6.3,80,1.4,52.0,52.0,1078.0,475.0,239.0,73.0,79.0,Single,Y,NODATA!,,,2104.0,50.0,secondary glazing,More Than Typical,0.0,4.0,4.0,100.0,0.0,"From main system, no cylinder thermostat",Poor,Poor,"Solid, no insulation (assumed)",NO DATA!,,Partial secondary glazing,Poor,Poor,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"94, The Quarries, Boughton Monchelsea",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2015-10-21 15:36:55,owner-occupied,,,200003709832.0,Address Matched +337528769142019080801175765510058,Apartment 66 Sandling Park,Sandling Lane,,ME14 2NY,1100465668,C,B,76,83,Flat,Semi-Detached,2019-08-05,E07000110,E14000804,Kent,2019-08-08,rental (private),73,74,216,203.0,1.8,37,1.7,51.0,59.0,235.0,159.0,179.0,133.0,49.0,Unknown,N,1st,N,,2602.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,80.0,0.0,"Electric immersion, off-peak",Poor,Poor,(another dwelling below),NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Room heaters, electric",Very Poor,Poor,Appliance thermostats,Good,Good,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,electricity (not community),0.0,unheated corridor,4.21,,,N,natural,"Apartment 66 Sandling Park, Sandling Lane",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2019-08-08 01:17:57,rental (private),,,10014307161.0,Address Matched +268162770042009041908320663019218,Flat 3,16 Tonbridge Road,,ME16 8RP,8077370668,C,B,73,82,Flat,Semi-Detached,2009-04-19,E07000110,E14000804,Kent,2009-04-19,rental (private),70,80,231,155.0,2.4,38,1.6,62.0,31.0,328.0,246.0,97.0,79.0,63.24,Single,Y,2nd,Y,3.0,2102.0,100.0,double glazing installed during or after 2002,Normal,1.0,3.0,3.0,0.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Good,Good,"Solid brick, with internal insulation",Good,Good,,,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,unheated corridor,8.37,2.55,0.0,N,natural,"Flat 3, 16 Tonbridge Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2009-04-19 08:32:06,rental (private),,,10014310793.0,Address Matched +688136584052011101209515198999297,"74, Rede Wood Road",,,ME16 9HR,2729480968,F,D,26,68,House,Detached,2011-10-11,E07000110,E14000804,Kent,2011-10-12,marketed sale,29,71,495,184.0,11.0,84,3.8,101.0,61.0,1979.0,782.0,271.0,117.0,131.5,Single,Y,NODATA!,,,2102.0,100.0,"double glazing, unknown install date",Normal,0.0,6.0,6.0,33.0,1.0,"From main system, no cylinder thermostat",Very Poor,Very Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, wood logs",,,"Pitched, 25 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Average,Average,"Programmer, no room thermostat",Very Poor,Very Poor,Low energy lighting in 33% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,2.39,0.0,,natural,"74, Rede Wood Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2011-10-12 09:51:51,owner-occupied,12.0,4.0,200003667498.0,Address Matched +1681903343032020072409124043278407,14 Kintons Walk,Yalding,,ME18 6FF,4763461678,B,A,84,96,House,Semi-Detached,2020-07-24,E07000110,E14000804,Kent,2020-07-24,new dwelling,87,98,82,2.0,1.2,14,0.1,73.0,73.0,215.0,215.0,79.0,48.0,86.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.22 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"14 Kintons Walk, Yalding",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2020-07-24 09:12:40,unknown,10.0,10.0,10094439996.0,Address Matched +1110824129642014032100221925142808,1 Davis Farm Cottages,Redwall Lane,Linton,ME17 4AY,1601221278,F,C,38,71,House,Semi-Detached,2014-03-20,E07000110,E14000804,Kent,2014-03-21,marketed sale,48,76,228,86.0,6.4,51,2.6,121.0,66.0,1717.0,1033.0,271.0,109.0,126.0,Unknown,N,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,6.0,6.0,17.0,0.0,From main system,Poor,Average,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, LPG",Poor,Average,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 17% of fixed outlets,Poor,Poor,LPG (not community),0.0,NO DATA!,,,0.0,,natural,"1 Davis Farm Cottages, Redwall Lane, Linton",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2014-03-21 00:22:19,owner-occupied,23.0,4.0,200003662973.0,Address Matched +1727047821752019111909475499919960,"15, Pentecost Lane",Otham,,ME15 8YF,9002194678,B,A,85,95,House,End-Terrace,2019-11-19,E07000110,E14000700,Kent,2019-11-19,new dwelling,87,98,79,6.0,1.3,14,0.1,74.0,74.0,221.0,221.0,77.0,46.0,94.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.10 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.19 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"15, Pentecost Lane, Otham",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2019-11-19 09:47:54,unknown,10.0,10.0,10094440436.0,Address Matched +70122979302014110520125841440358,"30, Yeoman Lane",Bearsted,,ME14 4BX,3305974468,D,C,59,79,House,Detached,2014-11-05,E07000110,E14000700,Kent,2014-11-05,none of the above,58,78,203,104.0,8.9,34,4.5,191.0,100.0,1923.0,1252.0,157.0,158.0,259.0,Single,Y,NODATA!,,,2106.0,,not defined,Much Less Than Typical,2.0,9.0,9.0,10.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Mostly double glazing,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, wood logs",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 10% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"30, Yeoman Lane, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1900-1929,2014-11-05 20:12:58,owner-occupied,21.0,2.0,200003692052.0,Address Matched +458594079062011110312594644178799,"28, Abingdon Road",,,ME16 9DP,9449704768,D,C,66,73,Bungalow,Semi-Detached,2011-11-03,E07000110,E14000804,Kent,2011-11-03,marketed sale,65,73,217,168.0,3.1,42,2.4,67.0,41.0,526.0,423.0,84.0,84.0,75.5,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,38.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 38% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,2.4,0.0,,natural,"28, Abingdon Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2011-11-03 12:59:46,owner-occupied,13.0,5.0,200003664445.0,Address Matched +755728989062012030614243875268862,"4, Hengist Court",Marsham Street,,ME14 1BT,6719895968,D,C,68,71,Flat,End-Terrace,2012-03-06,E07000110,E14000804,Kent,2012-03-06,marketed sale,50,52,394,370.0,3.8,70,3.6,37.0,37.0,382.0,329.0,124.0,124.0,54.74,dual,N,Ground,N,,2402.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,100.0,0.0,"Electric immersion, off-peak",Average,Very Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,Portable electric heaters (assumed),,,(another dwelling above),,,Electric storage heaters,Average,Very Poor,Automatic charge control,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,heated corridor,,2.32,0.0,,natural,"4, Hengist Court, Marsham Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2012-03-06 14:24:38,owner-occupied,8.0,8.0,200003688667.0,Address Matched +633318298852011052414574399290286,"13, Iris Close",,,ME5 9QD,2651896868,D,C,63,73,House,Mid-Terrace,2011-05-23,E07000110,E14000700,Kent,2011-05-24,marketed sale,62,74,258,178.0,2.9,50,2.0,65.0,32.0,419.0,331.0,137.0,99.0,58.71,Single,Y,NODATA!,,,2104.0,0.0,not defined,Normal,0.0,4.0,4.0,0.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,2.29,0.0,,natural,"13, Iris Close",Maidstone,Faversham and Mid Kent,CHATHAM,England and Wales: 1983-1990,2011-05-24 14:57:43,owner-occupied,10.0,0.0,200003708182.0,Address Matched +776075860552013111114020995079396,20 Crundale,Union Street,,ME14 1TX,3612057968,C,C,73,78,Flat,Mid-Terrace,2013-10-04,E07000110,E14000804,Kent,2013-11-11,none of the above,75,82,175,128.0,1.7,33,1.3,38.0,38.0,277.0,221.0,138.0,108.0,51.0,Single,Y,5th,N,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,2.0,2.0,83.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 83% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,1.0,,0.0,,natural,"20 Crundale, Union Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2013-11-11 14:02:09,rental (social),6.0,5.0,200003701436.0,Address Matched +344412410742009081422582969619778,"363, Tonbridge Road",,,ME16 8NH,3793316668,D,C,67,72,House,Mid-Terrace,2009-08-13,E07000110,E14000804,Kent,2009-08-14,marketed sale,62,68,268,224.0,3.6,45,3.0,62.0,40.0,526.0,463.0,106.0,92.0,79.81,Unknown,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,4.0,4.0,45.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 45% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.42,0.0,N,natural,"363, Tonbridge Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2009-08-14 22:58:29,owner-occupied,,,200003695286.0,Address Matched +552096300032010101317144587968195,"48, Upper Fant Road",,,ME16 8DN,517170868,E,E,43,50,House,Mid-Terrace,2010-10-13,E07000110,E14000804,Kent,2010-10-13,marketed sale,39,46,443,373.0,6.8,74,5.7,58.0,58.0,1086.0,937.0,127.0,103.0,91.31,Single,Y,NO DATA!,,,2106.0,80.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,80.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Mostly double glazing,Poor,Poor,"Granite or whin, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.2,0.0,N,natural,"48, Upper Fant Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2010-10-13 17:14:45,owner-occupied,,,200003668335.0,Address Matched +1389157752452017022019143498930649,Flat 23 Nolan Court,"2, Terrace Road",,ME16 8HU,6978280478,B,B,84,84,Flat,End-Terrace,2017-02-17,E07000110,E14000804,Kent,2017-02-20,rental (social),88,88,83,83.0,0.9,15,0.9,48.0,48.0,163.0,163.0,78.0,78.0,61.0,Unknown,Y,3rd,N,,2110.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,(another dwelling below),NO DATA!,,Fully double glazed,Good,Good,"System built, as built, insulated (assumed)",Very Good,Very Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,heated corridor,,,,N,natural,"Flat 23 Nolan Court, 2, Terrace Road",Maidstone,Maidstone and The Weald,MAIDSTONE,INVALID!,2017-02-20 19:14:34,rental (social),,,10091193410.0,Address Matched +85011169002018030518293943580158,"9, Goldthorne Close",,,ME14 5NX,1006665468,D,C,63,73,Maisonette,Enclosed Mid-Terrace,2018-03-05,E07000110,E14000804,Kent,2018-03-05,rental (private),60,74,272,180.0,2.8,49,1.9,85.0,43.0,480.0,338.0,96.0,86.0,57.0,Single,Y,1st,N,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,0.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, dual fuel (mineral and wood)",,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,no corridor,,,,N,natural,"9, Goldthorne Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2018-03-05 18:29:39,rental (private),,,200003716176.0,Address Matched +1645969559022018070608480349368438,15 St. Lawrence Crescent,Coxheath,,ME17 4FR,3472509578,B,A,84,95,House,End-Terrace,2018-07-06,E07000110,E14000804,Kent,2018-07-06,new dwelling,86,97,89,4.0,1.3,16,0.1,60.0,60.0,216.0,216.0,72.0,42.0,80.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.19 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.28 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.15 W/m-¦K,Good,Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"15 St. Lawrence Crescent, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2018-07-06 08:48:03,unknown,18.0,18.0,10093306363.0,Address Matched +1480200816452016092014522292960643,4 Frampton Place,6 Tonbridge Road,,ME16 8RP,6357627478,C,C,78,78,Flat,NO DATA!,2016-09-19,E07000110,E14000804,Kent,2016-09-20,new dwelling,61,61,315,315.0,2.7,56,2.7,39.0,39.0,210.0,210.0,132.0,132.0,48.0,off-peak 7 hour,,mid floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Average,Very Poor,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.31 W/m+é-¦K,Good,Good,,,,(other premises above),,,"Boiler and radiators, electric",Average,Very Poor,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"4 Frampton Place, 6 Tonbridge Road",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2016-09-20 14:52:22,unknown,12.0,12.0,10093302901.0,Address Matched +292860257052009061810115005910062,11 Hughenden Reach,Tovil,,ME15 6ZL,235752668,B,B,83,85,Flat,NO DATA!,2009-06-18,E07000110,E14000804,Kent,2009-06-18,new dwelling,84,84,114,108.0,1.6,19,1.5,66.0,44.0,172.0,175.0,76.0,76.0,86.3,standard tariff,,ground floor,,,,,NO DATA!,NO DATA!,,,,4.0,,From main system,Very Good,Very Good,Average thermal transmittance 0.16 W/m?K,Very Good,Very Good,Fully double glazed,Good,Good,Average thermal transmittance 0.32 W/m?K,Good,Good,,,,Average thermal transmittance 0.00 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 50% fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.26,,,NO DATA!,"11 Hughenden Reach, Tovil",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2009-06-18 10:11:50,,8.0,4.0,10014308474.0,Address Matched +1353929212952015081407355693950136,"29, Sterling Avenue",,,ME16 0AX,1626238378,F,C,22,78,House,Semi-Detached,2015-08-10,E07000110,E14000804,Kent,2015-08-14,marketed sale,12,76,807,129.0,11.0,137,1.9,100.0,53.0,1776.0,626.0,101.0,53.0,82.0,dual,Y,NODATA!,,,2401.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,30.0,0.0,Gas multipoint,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 30% of fixed outlets,Average,Average,electricity (not community),0.0,NO DATA!,,,,N,natural,"29, Sterling Avenue",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2015-08-14 07:35:56,owner-occupied,,,200003658379.0,Address Matched +1312491649702015042121494132552198,The Old Rectory,The Street,Frinsted,ME9 0TQ,2766245378,F,D,29,59,House,Detached,2015-04-21,E07000110,E14000700,Kent,2015-04-21,marketed sale,33,56,264,136.0,25.0,57,14.0,245.0,143.0,5472.0,3574.0,218.0,190.0,445.0,Single,N,NODATA!,,,2106.0,35.0,double glazing installed during or after 2002,Normal,2.0,11.0,11.0,25.0,4.0,From main system,Average,Average,"Suspended, no insulation (assumed)",NO DATA!,,Partial double glazing,Poor,Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, oil",Average,Average,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 25% of fixed outlets,Average,Average,oil (not community),0.0,NO DATA!,,,,N,natural,"The Old Rectory, The Street, Frinsted",Maidstone,Faversham and Mid Kent,SITTINGBOURNE,England and Wales: before 1900,2015-04-21 21:49:41,owner-occupied,,,200003731893.0,Address Matched +1583068159042017101807391357439768,"23, Ringwood Road",,,ME15 7EG,3041654578,E,B,48,84,House,Semi-Detached,2017-10-16,E07000110,E14000700,Kent,2017-10-18,marketed sale,43,83,375,95.0,5.5,66,1.4,109.0,57.0,958.0,490.0,189.0,72.0,84.0,Single,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,8.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 8% of fixed outlets,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"23, Ringwood Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2017-10-18 07:39:13,owner-occupied,,,200003711063.0,Address Matched +1642228379942018062212081051882898,"37, South Street",Barming,,ME16 9EX,950878578,F,C,36,77,House,Detached,2018-06-21,E07000110,E14000804,Kent,2018-06-22,marketed sale,26,68,449,145.0,13.0,80,4.3,173.0,98.0,2131.0,905.0,188.0,77.0,165.0,dual,Y,NODATA!,,,2106.0,40.0,double glazing installed before 2002,Normal,2.0,7.0,7.0,21.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Partial double glazing,Poor,Poor,"Granite or whinstone, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 21% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"37, South Street, Barming",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2018-06-22 12:08:10,owner-occupied,,,200003665550.0,Address Matched +1442836869942016051310501442469678,Flat 14,Westbrook House,18-20 Albion Place,ME14 5DZ,3956364478,C,C,77,77,Flat,Detached,2016-05-13,E07000110,E14000804,Kent,2016-05-13,new dwelling,65,65,249,249.0,2.6,42,2.6,56.0,56.0,268.0,268.0,133.0,133.0,63.0,off-peak 7 hour,,top floor,,,,,NO DATA!,NO DATA!,,,,,0.0,"Electric immersion, off-peak",Average,Poor,(other premises below),,,Fully double glazed,Average,Average,Average thermal transmittance 0.36 W/m-¦K,Good,Good,"Room heaters, electric",,,Average thermal transmittance 0.15 W/m-¦K,Good,Good,Electric storage heaters,Average,Very Poor,Automatic charge control,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"Flat 14, Westbrook House, 18-20 Albion Place",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2016-05-13 10:50:14,unknown,14.0,14.0,10093302964.0,Address Matched +1541046959262017072821192381548483,60 Tonbridge Road,,,ME16 8SE,8883551578,E,B,52,82,House,Enclosed End-Terrace,2017-07-24,E07000110,E14000804,Kent,2017-07-28,marketed sale,49,83,395,99.0,3.4,69,0.9,36.0,36.0,666.0,427.0,98.0,52.0,49.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,"To unheated space, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 270 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,"mechanical, supply and extract",60 Tonbridge Road,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2017-07-28 21:19:23,owner-occupied,,,10093305975.0,Address Matched +207901939962018121317122085078478,"12, River Bank Close",,,ME15 7SE,7812395568,C,B,76,81,Flat,End-Terrace,2018-12-13,E07000110,E14000804,Kent,2018-12-13,rental (private),62,69,299,242.0,2.7,51,2.2,77.0,50.0,282.0,191.0,146.0,146.0,53.0,dual,N,3rd,N,,2401.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,44.0,0.0,"Electric immersion, off-peak",Average,Poor,(another dwelling below),NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,(another dwelling above),,,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 44% of fixed outlets,Average,Average,electricity (not community),0.0,heated corridor,,,,N,natural,"12, River Bank Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2018-12-13 17:12:20,rental (private),,,200003725881.0,Address Matched +537341411032010090817090153068709,Flat 3 Plymouth House,Ruskin Grove,,ME15 9WG,1983769768,C,C,74,75,Flat,Mid-Terrace,2010-09-08,E07000110,E14000700,Kent,2010-09-08,new dwelling,81,82,160,153.0,1.5,24,1.5,60.0,37.0,205.0,210.0,162.0,162.0,63.61,standard tariff,,ground floor,,,,,NO DATA!,NO DATA!,,,,,,From main system,Poor,Good,Average thermal transmittance 0.19 W/m?K,Very Good,Very Good,Fully double glazed,Very Good,Very Good,Average thermal transmittance 0.26 W/m?K,Very Good,Very Good,,,,(other premises above),,,"Air source heat pump, radiators, electric",Poor,Good,Programmer and room thermostat,Poor,Poor,Low energy lighting in 38% of fixed outlets,Average,Average,"Electricity: electricity, unspecified tariff",0.0,NO DATA!,,2.31,,,NO DATA!,"Flat 3 Plymouth House, Ruskin Grove",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2010-09-08 17:09:01,,,,10014311614.0,Address Matched +1026128029642014012112270215542098,"4, Sissinghurst Drive",,,ME16 0UW,5660125178,C,B,71,84,House,Detached,2014-01-21,E07000110,E14000804,Kent,2014-01-21,marketed sale,70,83,152,77.0,3.4,29,1.8,88.0,65.0,587.0,528.0,132.0,89.0,116.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,7.0,7.0,65.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 65% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"4, Sissinghurst Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1991-1995,2014-01-21 12:27:02,owner-occupied,20.0,13.0,200003693233.0,Address Matched +329431760222009072021010285108011,"24, Durham Close",,,ME15 8DT,1888605668,C,C,72,79,Flat,Semi-Detached,2009-07-20,E07000110,E14000700,Kent,2009-07-20,rental (social),68,76,266,200.0,2.3,44,1.7,31.0,31.0,366.0,293.0,91.0,74.0,52.16,Single,Y,Ground,N,2.0,2102.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,80.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.41,0.0,N,natural,"24, Durham Close",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2009-07-20 21:01:02,rental (social),,,200003685689.0,Address Matched +1818641248032020082117135834278809,"4, Tanyard Lane",Lenham,,ME17 2FB,4904851778,B,B,84,91,House,Detached,2020-08-21,E07000110,E14000700,Kent,2020-08-21,new dwelling,86,93,80,38.0,2.2,13,0.9,117.0,117.0,403.0,406.0,104.0,58.0,174.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.10 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.16 W/m-¦K,Very Good,Very Good,"Room heaters, wood logs",,,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,"Boiler and underfloor heating, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"4, Tanyard Lane, Lenham",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2020-08-21 17:13:58,unknown,15.0,15.0,10093306941.0,Address Matched +366952606952019121015462996919567,"87, Kingsley Road",,,ME15 7UP,5774667668,D,B,64,83,House,Mid-Terrace,2019-12-10,E07000110,E14000804,Kent,2019-12-10,rental (private),58,80,241,105.0,4.6,42,2.1,117.0,76.0,775.0,540.0,107.0,78.0,109.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,2.0,5.0,5.0,46.0,0.0,From main system,Very Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 46% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"87, Kingsley Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2019-12-10 15:46:29,rental (private),,,200003695915.0,Address Matched +cd3cd6410a7ba121eea768c8181acecdf217254342750c5f6d273c20de06b343,17 FONTWELL CLOSE,,,ME15 8UY,10001388427,D,B,68,87,House,Semi-Detached,2021-07-06,E07000110,E14000700,Kent,2021-07-06,rental,66,87,246,77.0,2.5,43,0.8,50.0,50.0,438.0,369.0,94.0,44.0,58.0,Single,Y,,,,,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.32,0.0,N,natural,17 FONTWELL CLOSE,Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2021-07-06 11:09:57,Rented (private),8.0,,200003681261.0,Energy Assessor +119192940942009071515591349819558,Avon Glen,Forge Lane,Bredhurst,ME7 3JW,8987648468,E,C,46,70,House,Detached,2009-07-15,E07000110,E14000700,Kent,2009-07-15,marketed sale,46,69,336,185.0,8.0,55,4.4,136.0,73.0,1223.0,692.0,151.0,123.0,143.9,Single,Y,NO DATA!,,,2104.0,90.0,double glazing installed during or after 2002,Normal,0.0,7.0,7.0,14.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Partial double glazing,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,"Pitched, 250mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Poor,Poor,Low energy lighting in 14% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.46,0.0,N,natural,"Avon Glen, Forge Lane, Bredhurst",Maidstone,Faversham and Mid Kent,GILLINGHAM,England and Wales: 1967-1975,2009-07-15 15:59:13,owner-occupied,,,200003694248.0,Address Matched +cd481933c822fbcb5c6cecec77a95d922396794919da4ce46b94dde9cfd1c0da,13 RUSHMORE GROVE,,,ME17 2FJ,10001381985,B,B,83,83,Flat,Detached,2021-08-03,E07000110,E14000700,Kent,2021-08-03,new dwelling,87,87,95,95.0,0.9,17,0.9,53.0,53.0,171.0,171.0,63.0,63.0,55.0,standard tariff,,1,N,,,100.0,,,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.19 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.4,,,,13 RUSHMORE GROVE,Maidstone,Faversham and Mid Kent,LENHAM,2019,2021-08-03 08:33:38,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,1.0,,10094444438.0,Energy Assessor +1657139689602018082023054255982308,"56, Honywood Road",Lenham,,ME17 2HQ,2611789578,D,C,66,80,House,Semi-Detached,2018-08-20,E07000110,E14000700,Kent,2018-08-20,marketed sale,61,76,230,129.0,3.9,41,2.2,65.0,65.0,669.0,582.0,102.0,69.0,96.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"56, Honywood Road, Lenham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2018-08-20 23:05:42,owner-occupied,,,200003723763.0,Address Matched +1445654149222016052311445294278716,"63, Hanover Road",Coxheath,,ME17 4QQ,1971484478,E,C,49,72,House,Semi-Detached,2016-05-23,E07000110,E14000804,Kent,2016-05-23,ECO assessment,36,57,356,186.0,7.3,75,4.1,124.0,62.0,1106.0,844.0,167.0,87.0,98.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,0.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, coal",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,2.45,,N,natural,"63, Hanover Road, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2016-05-23 11:44:52,owner-occupied,,,200003714771.0,Address Matched +179042170642008110321472556382338,Flat 2,"35, Tonbridge Road",,ME16 8SA,636473568,C,C,75,75,Flat,Detached,2008-10-27,E07000110,E14000804,Kent,2008-11-03,rental (private),70,70,477,477.0,1.4,80,1.4,11.0,11.0,200.0,200.0,19.0,19.0,17.7,Single,Y,1st,N,4.0,2305.0,100.0,"double glazing, unknown install date",Normal,0.0,1.0,1.0,60.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,(another dwelling above),,,Community scheme,Good,Good,"Flat rate charging, programmer and TRVs",Average,Average,Low energy lighting in 60% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,heated corridor,,2.8,0.0,N,natural,"Flat 2, 35, Tonbridge Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2008-11-03 21:47:25,rental (private),,,200003668543.0,Address Matched +cd59334877e06c22eaeddcc925aa30b230052a29798f30994b193373fe3efba2,24 Celestine Close,,,ME5 9NG,10001474881,D,B,56,81,House,Detached,2021-09-22,E07000110,E14000700,Kent,2021-09-22,marketed sale,47,77,311,119.0,5.5,55,2.1,77.0,77.0,837.0,549.0,183.0,71.0,100.0,Single,Y,,,,,100.0,"double glazing, unknown install date",Normal,2.0,6.0,6.0,100.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,1.0,0.0,N,natural,24 Celestine Close,Maidstone,Faversham and Mid Kent,CHATHAM,England and Wales: 1983-1990,2021-09-22 12:19:52,Owner-occupied,15.0,,200003708777.0,Energy Assessor +1692935469262019012517074262658111,Scaghyll,The Street,Ulcombe,ME17 1DP,1617642678,F,D,37,65,Bungalow,Detached,2019-01-25,E07000110,E14000700,Kent,2019-01-25,marketed sale,11,31,817,497.0,13.0,138,7.8,92.0,73.0,1748.0,1236.0,192.0,111.0,93.0,dual,N,NODATA!,,,2501.0,0.0,not defined,Normal,0.0,4.0,4.0,73.0,0.0,"Electric immersion, off-peak",Average,Poor,"Solid, no insulation (assumed)",NO DATA!,,Single glazed,Very Poor,Very Poor,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, limited insulation (assumed)",Very Poor,Very Poor,"Warm air, Electricaire",Average,Very Poor,No time or thermostatic control of room temperature,Very Poor,Very Poor,Low energy lighting in 73% of fixed outlets,Very Good,Very Good,electricity (not community),0.0,NO DATA!,,,,N,natural,"Scaghyll, The Street, Ulcombe",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2019-01-25 17:07:42,owner-occupied,,,200003701167.0,Address Matched +597416349022011100323424604278459,11b Balmoral House,Bicknor Road,,ME15 9NU,5000424868,D,D,64,65,Flat,Semi-Detached,2011-10-03,E07000110,E14000700,Kent,2011-10-03,rental (social),65,65,277,272.0,2.3,53,2.3,39.0,28.0,423.0,424.0,70.0,70.0,43.73,dual,Y,2nd,Y,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,60.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Flat, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 60% of fixed outlets,Good,Good,mains gas (not community),0.0,no corridor,,2.35,0.0,,natural,"11b Balmoral House, Bicknor Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2011-10-03 23:42:46,rental (social),5.0,3.0,200003683517.0,Address Matched +1162693526432014070310404643278303,"37, Beaconsfield Road",,,ME15 6RZ,2343384278,D,B,66,88,House,Mid-Terrace,2014-06-27,E07000110,E14000804,Kent,2014-07-03,rental (private),64,90,204,44.0,3.2,39,0.7,64.0,64.0,607.0,359.0,123.0,71.0,82.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,4.0,4.0,75.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"37, Beaconsfield Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2014-07-03 10:40:46,rental (private),8.0,6.0,200003664748.0,Address Matched +1350958628532015080617014267078208,"13, Western Road",,,ME16 8NE,2847218378,D,C,59,79,House,Mid-Terrace,2015-08-06,E07000110,E14000804,Kent,2015-08-06,marketed sale,51,74,278,134.0,5.1,49,2.5,63.0,63.0,952.0,678.0,112.0,74.0,103.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,1.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"13, Western Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2015-08-06 17:01:42,owner-occupied,,,200003655925.0,Address Matched +1484059771632016092911483819278208,"26, Mallet Avenue",,,ME15 8GT,7829257478,B,B,88,89,House,NO DATA!,2016-09-27,E07000110,E14000700,Kent,2016-09-29,new dwelling,91,93,58,43.0,0.7,10,0.6,51.0,51.0,204.0,204.0,83.0,49.0,73.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.18 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"26, Mallet Avenue",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2016-09-29 11:48:38,unknown,1.0,1.0,10091193700.0,Address Matched +1675646919842018110109510764180298,"4, Great Threads",Staplehurst,,TN12 0FN,7829711678,B,A,84,93,House,Detached,2018-11-01,E07000110,E14000804,Kent,2018-11-01,new dwelling,84,94,86,24.0,1.8,15,0.5,73.0,73.0,274.0,275.0,99.0,54.0,116.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.28 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.15 W/m-¦K,Good,Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"4, Great Threads, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,NO DATA!,2018-11-01 09:51:07,unknown,10.0,10.0,10093304291.0,Address Matched +1066263163152014012317065190040013,"21, Woodbridge Drive",,,ME15 6FU,344308178,E,B,53,84,House,Detached,2014-01-06,E07000110,E14000804,Kent,2014-01-23,none of the above,49,83,281,78.0,5.1,54,1.5,99.0,55.0,855.0,486.0,178.0,75.0,94.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,0.0,6.0,6.0,19.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, partial insulation (assumed)",Average,Average,"Room heaters, mains gas",,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 19% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"21, Woodbridge Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2014-01-23 17:06:51,owner-occupied,21.0,4.0,200003665967.0,Address Matched +698531650932011102518241110268593,Flat 91 Scotney Gardens,St. Peters Street,,ME16 0GR,5370551968,B,B,85,85,Flat,Mid-Terrace,2011-10-25,E07000110,E14000804,Kent,2011-10-25,marketed sale,78,78,144,144.0,2.0,26,2.0,62.0,62.0,128.0,128.0,127.0,127.0,78.951,dual,N,2nd,N,,2401.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,78.0,0.0,"Electric immersion, off-peak",Average,Very Poor,(other premises below),,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,Portable electric heaters(assumed),,,(another dwelling above),,,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 78% of fixed outlets,Very Good,Very Good,electricity (not community),0.0,heated corridor,,2.3,0.0,,natural,"Flat 91 Scotney Gardens, St. Peters Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2011-10-25 18:24:11,owner-occupied,18.0,14.0,10022893459.0,Address Matched +603232309922011031114511624298739,"1, The Grove",Bearsted,,ME14 4JB,3235074868,D,D,65,68,Bungalow,Detached,2011-03-11,E07000110,E14000700,Kent,2011-03-11,marketed sale,60,64,228,205.0,5.8,38,5.3,86.0,86.0,905.0,829.0,178.0,155.0,92.89,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,5.0,5.0,100.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 100 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.33,0.0,N,natural,"1, The Grove, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2011-03-11 14:51:16,owner-occupied,,,200003692530.0,Address Matched +1680651309832018113014281640778795,4 Braeburn Way,Coxheath,,ME17 4FU,560751678,B,A,84,95,House,Semi-Detached,2018-11-30,E07000110,E14000804,Kent,2018-11-30,new dwelling,86,97,85,9.0,1.4,15,0.2,66.0,66.0,227.0,227.0,75.0,44.0,91.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.10 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"4 Braeburn Way, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2018-11-30 14:28:16,unknown,20.0,20.0,10094440213.0,Address Matched +337961153212009080322233906010765,"45, Cleavesland",Laddingford,,ME18 6BS,7507365668,C,C,75,79,Bungalow,Mid-Terrace,2009-08-03,E07000110,E14000804,Kent,2009-08-03,rental (social),72,77,260,218.0,1.8,43,1.5,36.0,21.0,261.0,255.0,113.0,83.0,41.74,Single,Y,NO DATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,25.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 25% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.28,0.0,N,natural,"45, Cleavesland, Laddingford",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2009-08-03 22:23:39,rental (social),,,200003660004.0,Address Matched +354224215112020022916025427200469,"84, Melville Road",,,ME15 7UT,4909576668,D,B,65,84,House,Mid-Terrace,2020-02-28,E07000110,E14000804,Kent,2020-02-29,marketed sale,61,82,268,107.0,3.0,47,1.3,53.0,53.0,545.0,430.0,93.0,63.0,64.0,Single,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,2.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"To unheated space, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"84, Melville Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2020-02-29 16:02:54,owner-occupied,,,200003695993.0,Address Matched +177030083512008110616443209089051,"22, Yeoman Way",Bearsted,,ME15 8PH,146393568,D,D,62,66,Bungalow,Detached,2008-11-06,E07000110,E14000700,Kent,2008-11-06,marketed sale,66,69,245,224.0,4.4,34,4.0,123.0,63.0,626.0,603.0,96.0,96.0,126.0,dual,Y,NO DATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,1.0,7.0,7.0,3.0,1.0,From main system,Good,Very Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, wood logs",,,"Pitched, 100mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Very Good,Very Good,Programmer and room thermostat,Poor,Poor,Low energy lighting in 3% of fixed outlets,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.6,0.0,N,natural,"22, Yeoman Way, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2008-11-06 16:44:32,owner-occupied,,,200003690921.0,Address Matched +720716615052011110713021391099197,"75, Douglas Road",,,ME16 8ER,1716513968,E,E,40,42,House,End-Terrace,2011-11-07,E07000110,E14000804,Kent,2011-11-07,rental (private),46,48,422,404.0,5.1,67,4.9,42.0,42.0,1116.0,1067.0,88.0,88.0,77.29,Single,Y,NODATA!,,,2107.0,0.0,not defined,Normal,0.0,5.0,5.0,100.0,2.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,2.43,0.0,,natural,"75, Douglas Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2011-11-07 13:02:13,rental (private),10.0,10.0,200003667777.0,Address Matched +1508610829242017101618310443939168,"99, Perryfield Street",,,ME14 2SZ,8293829478,E,B,52,84,House,End-Terrace,2017-10-16,E07000110,E14000804,Kent,2017-10-16,marketed sale,45,81,368,99.0,4.6,65,1.3,49.0,49.0,847.0,438.0,96.0,64.0,71.0,Single,Y,NODATA!,,,2106.0,90.0,double glazing installed during or after 2002,Normal,2.0,4.0,4.0,100.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Mostly double glazing,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"99, Perryfield Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2017-10-16 18:31:04,owner-occupied,,,200003669754.0,Address Matched +1119338476652014040218505797040927,"21, Abigail Crescent",Walderslade,,ME5 9DZ,9762671278,D,B,65,81,House,Detached,2014-04-02,E07000110,E14000700,Kent,2014-04-02,marketed sale,61,78,186,95.0,5.1,36,2.6,79.0,79.0,883.0,684.0,163.0,87.0,141.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,7.0,7.0,92.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 92% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"21, Abigail Crescent, Walderslade",Maidstone,Faversham and Mid Kent,CHATHAM,England and Wales: 1991-1995,2014-04-02 18:50:57,owner-occupied,12.0,11.0,200003709328.0,Address Matched +648775618052011070301581990090383,"23, Raynham Villas",Hunton Road,,TN12 9SZ,3368808868,D,D,57,66,Bungalow,Semi-Detached,2011-07-03,E07000110,E14000804,Kent,2011-07-03,rental (social),37,44,512,436.0,5.4,91,4.6,53.0,35.0,548.0,428.0,107.0,107.0,60.0,dual,N,NODATA!,,,2401.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,50.0,0.0,"Electric immersion, off-peak",Average,Very Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,"Pitched, 100 mm loft insulation",Average,Average,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 50% of fixed outlets,Good,Good,electricity (not community),0.0,NO DATA!,,2.43,0.0,,natural,"23, Raynham Villas, Hunton Road",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1983-1990,2011-07-03 01:58:19,rental (social),6.0,3.0,200003723875.0,Address Matched +1620049719902018041215355251789428,The Old Rectory,Lower Road,West Farleigh,ME15 0PF,7905917578,B,B,85,86,House,Detached,2018-04-12,E07000110,E14000804,Kent,2018-04-12,new dwelling,83,85,60,53.0,2.9,14,2.5,111.0,111.0,428.0,430.0,97.0,54.0,205.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,1.0,From main system,Average,Average,Average thermal transmittance 0.11 W/m+é-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.19 W/m+é-¦K,Very Good,Very Good,"Room heaters, wood logs",,,Average thermal transmittance 0.14 W/m+é-¦K,Very Good,Very Good,"Boiler and radiators, oil",Average,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,oil - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"The Old Rectory, Lower Road, West Farleigh",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2018-04-12 15:35:52,unknown,30.0,30.0,10093306766.0,Address Matched +972029829242014040318141619140978,"5, Bell Meadow",,,ME15 9NB,9266921178,D,B,65,87,House,Semi-Detached,2014-04-03,E07000110,E14000700,Kent,2014-04-03,none of the above,63,88,205,55.0,3.4,39,1.0,88.0,51.0,612.0,397.0,100.0,70.0,86.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,30.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 30% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"5, Bell Meadow",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2014-04-03 18:14:16,owner-occupied,10.0,3.0,200003682580.0,Address Matched +1410089182632016020812082301078805,"12, Heath Field",Langley,,ME17 3JL,8571822478,D,A,68,102,Bungalow,Semi-Detached,2016-02-08,E07000110,E14000700,Kent,2016-02-08,marketed sale,64,97,208,-2.0,3.8,37,0.1,126.0,63.0,657.0,572.0,113.0,75.0,103.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"12, Heath Field, Langley",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2016-02-08 12:08:23,owner-occupied,,,200003697659.0,Address Matched +1635185946052018052514170892280759,"11, Princes Way",Detling,,ME14 3LB,7918628578,D,B,68,84,House,Detached,2018-05-25,E07000110,E14000700,Kent,2018-05-25,marketed sale,63,81,214,99.0,3.7,38,1.7,64.0,64.0,583.0,488.0,155.0,81.0,97.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,6.0,6.0,100.0,0.0,From main system,Good,Good,"To unheated space, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, 350 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"11, Princes Way, Detling",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2018-05-25 14:17:08,owner-occupied,,,200003694027.0,Address Matched +530434946012010082122453991200374,Flat 1,"2a, Brunswick Street East",,ME15 7UX,3454619768,D,B,63,81,Flat,Enclosed End-Terrace,2010-08-20,E07000110,E14000804,Kent,2010-08-21,rental (private),74,73,265,275.0,1.7,40,1.8,25.0,28.0,199.0,133.0,253.0,109.0,42.93,Single,N,Ground,N,3.0,2602.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,100.0,0.0,"Electric immersion, standard tariff",Very Poor,Poor,"Solid, insulated (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Room heaters, electric",Very Poor,Poor,Appliance thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity - this is for backwards compatibility only and should not be used,0.0,unheated corridor,7.15,2.35,0.0,N,natural,"Flat 1, 2a, Brunswick Street East",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2010-08-21 22:45:39,rental (private),,,10014309128.0,Address Matched +cdbabe47c602e3cb87ac8eb5f3ce3fa50bf5c3f80844c7be6b4e0db8189ff852,44 HAYLE MILL,HAYLE MILL ROAD,,ME15 6JW,6888745868,B,B,81,81,Maisonette,Semi-Detached,2021-07-30,E07000110,E14000804,Kent,2021-07-31,ECO assessment,82,82,111,111.0,1.7,19,1.7,79.0,79.0,266.0,266.0,108.0,108.0,89.0,Unknown,Y,01,Y,,,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,100.0,0.0,From main system,Good,Good,(another dwelling below),,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,heated corridor,,2.2,0.0,N,natural,"44 HAYLE MILL, HAYLE MILL ROAD",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2021-07-31 06:31:28,Owner-occupied,18.0,,10022896964.0,Energy Assessor +1479079719102020012911325848719328,"7, Orchard Glade",Headcorn,,TN27 9SS,6157717478,E,A,49,100,Bungalow,Detached,2019-12-12,E07000110,E14000700,Kent,2020-01-29,RHI application,41,90,250,-36.0,5.8,65,0.6,69.0,69.0,651.0,456.0,252.0,81.0,89.0,Single,N,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,100.0,0.0,From main system,Poor,Poor,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, oil",Poor,Average,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,oil (not community),0.0,NO DATA!,,,,N,natural,"7, Orchard Glade, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,England and Wales: 1950-1966,2020-01-29 11:32:58,owner-occupied,,,200003700888.0,Address Matched +1522988109412017022714481792230754,"9, Shepherds Gate Drive",Weavering,,ME14 5UU,7431920578,D,C,67,79,House,Detached,2017-02-27,E07000110,E14000700,Kent,2017-02-27,marketed sale,59,72,200,125.0,6.5,35,4.1,147.0,91.0,1091.0,951.0,181.0,88.0,185.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,1.0,8.0,8.0,38.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, mains gas",,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 38% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"9, Shepherds Gate Drive, Weavering",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2017-02-27 14:48:17,owner-occupied,,,200003689899.0,Address Matched +203451319022017021313451526388343,Flat 2,"1, Old Tovil Road",,ME15 6PR,4279116568,D,C,61,72,Flat,Mid-Terrace,2017-02-08,E07000110,E14000804,Kent,2017-02-13,rental (private),50,67,599,392.0,2.6,101,1.7,24.0,24.0,307.0,168.0,211.0,182.0,25.0,dual,N,1st,N,,2402.0,100.0,double glazing installed during or after 2002,Normal,0.0,1.0,1.0,100.0,0.0,"Electric immersion, off-peak",Very Poor,Poor,"To unheated space, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Solid brick, with internal insulation",Good,Good,,,,(another dwelling above),,,Electric storage heaters,Poor,Very Poor,Automatic charge control,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,unheated corridor,1.89,,,N,natural,"Flat 2, 1, Old Tovil Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2017-02-13 13:45:15,rental (private),,,200003683399.0,Address Matched +276382263252009043021115703710566,"28, Wrangleden Road",,,ME15 9LR,5644331668,C,C,77,78,Flat,Semi-Detached,2009-04-30,E07000110,E14000700,Kent,2009-04-30,rental (social),75,75,202,195.0,2.0,34,1.9,48.0,28.0,289.0,292.0,75.0,75.0,58.74,Single,Y,Ground,N,2.0,2106.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,30.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 30% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.29,0.0,N,natural,"28, Wrangleden Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2009-04-30 21:11:57,rental (social),,,200003710323.0,Address Matched +1486691523052016101009540797069948,"29, Buckland Lane",,,ME16 0BJ,9841377478,D,C,64,78,House,Semi-Detached,2016-10-07,E07000110,E14000804,Kent,2016-10-10,marketed sale,58,73,223,131.0,4.4,40,2.6,109.0,67.0,783.0,701.0,113.0,76.0,109.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,3.0,5.0,5.0,36.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 36% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,2.44,,N,natural,"29, Buckland Lane",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2016-10-10 09:54:07,owner-occupied,,,200003658446.0,Address Matched +1445271809922016061322541264918146,"19, Milton Street",,,ME16 8JT,4682084478,F,C,35,74,House,Mid-Terrace,2016-05-19,E07000110,E14000804,Kent,2016-06-13,ECO assessment,28,66,442,156.0,11.0,78,3.8,136.0,75.0,1953.0,928.0,182.0,80.0,136.0,Unknown,Y,NODATA!,,,2102.0,90.0,"double glazing, unknown install date",Normal,0.0,7.0,7.0,20.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Mostly double glazing,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, mains gas",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,Low energy lighting in 20% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,1.85,,N,natural,"19, Milton Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2016-06-13 22:54:12,owner-occupied,,,200003657383.0,Address Matched +266170542212009041523050506910763,Broom Hill House,Old Lenham Road,Wichling,ME9 0DS,7376260668,F,D,37,55,House,Detached,2009-04-15,E07000110,E14000700,Kent,2009-04-15,marketed sale,33,49,360,251.0,13.0,73,8.5,170.0,91.0,1591.0,1119.0,294.0,196.0,199.25,dual,N,NO DATA!,,,2106.0,0.0,INVALID!,Normal,2.0,10.0,9.0,12.0,2.0,From main system,Poor,Poor,"Suspended, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Solid brick, as built, insulated (assumed)",Good,Good,"Room heaters, wood chips",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, oil",Poor,Poor,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 12% of fixed outlets,Poor,Poor,oil - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.26,0.0,N,natural,"Broom Hill House, Old Lenham Road, Wichling",Maidstone,Faversham and Mid Kent,SITTINGBOURNE,England and Wales: before 1900,2009-04-15 23:05:05,owner-occupied,,,200003725333.0,Address Matched +395451640022009110913553829218471,"21, Scott Street",,,ME14 2TA,7264469668,D,D,59,68,House,Mid-Terrace,2009-11-09,E07000110,E14000804,Kent,2009-11-09,marketed sale,50,60,305,241.0,5.3,56,4.1,65.0,47.0,713.0,569.0,99.0,99.0,92.84,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,2.0,5.0,5.0,60.0,1.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, coal",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 60% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,,0.0,N,natural,"21, Scott Street",Maidstone,Maidstone and The Weald,MAIDSTONE,,2009-11-09 13:55:38,owner-occupied,,,200003669767.0,Address Matched +1210528970432014101512413044978797,Flat 2,30 Ashford Road,,ME14 5BH,7774718278,D,C,68,76,Flat,End-Terrace,2014-10-14,E07000110,E14000804,Kent,2014-10-15,marketed sale,71,70,291,296.0,1.5,52,1.5,44.0,24.0,255.0,160.0,126.0,139.0,30.0,Unknown,N,1st,N,,2602.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,0.0,0.0,Electric instantaneous at point of use,Very Poor,Very Poor,(other premises below),,,Fully double glazed,Average,Average,"Solid brick, with internal insulation",Good,Good,,,,(another dwelling above),,,"Room heaters, electric",Very Poor,Very Poor,Appliance thermostats,Good,Good,No low energy lighting,Very Poor,Very Poor,electricity (not community),0.0,unheated corridor,3.0,,0.0,,natural,"Flat 2, 30 Ashford Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2014-10-15 12:41:30,owner-occupied,4.0,0.0,, +639944549402011061316514581799678,1 Kingfisher Apartments,Wallis Avenue,,ME15 9JL,4419547868,C,C,74,75,Flat,Semi-Detached,2011-06-13,E07000110,E14000700,Kent,2011-06-13,rental (social),77,77,166,163.0,1.7,32,1.7,40.0,30.0,305.0,306.0,73.0,73.0,54.18,Unknown,Y,Ground,N,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,67.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"System built, with external insulation",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 67% of fixed outlets,Good,Good,mains gas (not community),0.0,unheated corridor,4.0,2.31,0.0,,natural,"1 Kingfisher Apartments, Wallis Avenue",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2011-06-13 16:51:45,rental (social),6.0,4.0,200003683561.0,Address Matched +293573270262009102210422442628841,68 Hughenden Reach,Tovil,,ME15 6ZL,4455752668,B,B,84,85,Flat,NO DATA!,2009-10-22,E07000110,E14000804,Kent,2009-10-22,new dwelling,83,84,142,136.0,1.2,23,1.2,45.0,29.0,203.0,205.0,76.0,76.0,51.7,standard tariff,,top floor,,,2106.0,,NO DATA!,NO DATA!,,,,3.0,0.0,From main system,Very Good,Very Good,(other premises below),,,Fully double glazed,Good,Good,Average thermal transmittance 0.33 W/m?K,Good,Good,,,,Average thermal transmittance 0.19 W/m?K,Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 43% fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"68 Hughenden Reach, Tovil",Maidstone,Maidstone and The Weald,MAIDSTONE,,2009-10-22 10:42:24,,,,10014308531.0,Address Matched +340815233032020072817023057268508,"10, Saltwood Road",,,ME15 6UY,3867585668,D,B,62,82,House,Semi-Detached,2020-07-28,E07000110,E14000804,Kent,2020-07-28,marketed sale,57,78,282,130.0,3.8,50,1.8,101.0,69.0,661.0,522.0,93.0,66.0,76.0,dual,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,6.0,6.0,54.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 54% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"10, Saltwood Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2020-07-28 17:02:30,owner-occupied,,,200003665354.0,Address Matched +161656430832008101220541049968691,Flat 5,"16, Calder Road",,ME14 2QQ,3139632568,C,C,71,74,House,Detached,2008-10-10,E07000110,E14000804,Kent,2008-10-12,rental (private),58,63,428,383.0,2.7,64,2.4,21.0,21.0,215.0,186.0,92.0,92.0,42.0,Single,,3rd,Y,4.0,2401.0,100.0,double glazing installed before 2002,Normal,0.0,2.0,2.0,100.0,0.0,"Electric immersion, standard tariff",Poor,Poor,(other premises below),,,Fully double glazed,Average,Average,"Timber frame, as built, insulated (assumed)",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,Electric storage heaters,Poor,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.3,0.0,N,natural,"Flat 5, 16, Calder Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2008-10-12 20:54:10,rental (private),,,200003670468.0,Address Matched +1113076657432014032417003967278309,Enhance,83 Lower Boxley Road,,ME14 2UT,5967331278,D,B,56,91,House,End-Terrace,2014-03-24,E07000110,E14000804,Kent,2014-03-24,marketed sale,35,76,543,157.0,4.7,96,1.4,35.0,35.0,575.0,262.0,118.0,70.0,49.0,dual,N,NODATA!,,,2401.0,100.0,double glazing installed during or after 2002,Normal,1.0,3.0,3.0,100.0,0.0,"Electric immersion, off-peak",Average,Very Poor,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Poor,Poor,Portable electric heaters (assumed),,,"Pitched, 250 mm loft insulation",Good,Good,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,NO DATA!,,,0.0,,natural,"Enhance, 83 Lower Boxley Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2014-03-24 17:00:39,owner-occupied,6.0,6.0,200003704750.0,Address Matched +1378660287052015102509574190259640,Orchard Gates,Lower Road,West Farleigh,ME15 0PE,6085700478,F,B,34,91,House,Semi-Detached,2015-10-22,E07000110,E14000804,Kent,2015-10-25,marketed sale,30,81,318,20.0,9.5,82,1.9,110.0,68.0,1386.0,756.0,307.0,96.0,117.0,Single,N,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,3.0,6.0,6.0,38.0,2.0,"From main system, no cylinder thermostat",Very Poor,Very Poor,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, oil",Poor,Average,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 38% of fixed outlets,Average,Average,oil (not community),0.0,NO DATA!,,,,N,natural,"Orchard Gates, Lower Road, West Farleigh",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2015-10-25 09:57:41,owner-occupied,,,200003724768.0,Address Matched +536682969042010090709032077900578,"22, Bryant Close",Nettlestead,,ME18 5EX,1060069768,D,C,68,72,House,End-Terrace,2010-09-03,E07000110,E14000804,Kent,2010-09-07,marketed sale,60,66,243,208.0,4.0,44,3.5,48.0,48.0,566.0,499.0,135.0,116.0,91.1,Unknown,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,5.0,4.0,100.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, coal",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.38,0.0,N,natural,"22, Bryant Close, Nettlestead",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2010-09-07 09:03:20,owner-occupied,,,200003657266.0,Address Matched +474742229042011011123100979599298,"8, Orchard Street",,,ME15 6NR,2055425768,C,C,69,69,House,Mid-Terrace,2011-01-11,E07000110,E14000804,Kent,2011-01-11,marketed sale,64,64,321,321.0,2.5,54,2.5,29.0,29.0,433.0,432.0,73.0,73.0,46.06,Single,Y,NO DATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,4.0,4.0,80.0,0.0,From main system,Very Good,Very Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.3,0.0,N,natural,"8, Orchard Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2011-01-11 23:10:09,owner-occupied,,,200003692762.0,Address Matched +1518191759262018112221504059528278,Ground Floor Flat,"24, Church Street",,ME14 1EN,7502599478,D,C,57,79,Flat,Mid-Terrace,2018-11-22,E07000110,E14000804,Kent,2018-11-22,rental (private),61,77,456,263.0,1.9,77,1.1,44.0,24.0,416.0,103.0,136.0,150.0,25.0,Unknown,N,Ground,N,,2602.0,100.0,double glazing installed during or after 2002,Normal,0.0,1.0,1.0,0.0,0.0,Electric instantaneous at point of use,Very Poor,Poor,(another dwelling below),NO DATA!,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,(another dwelling above),,,"Room heaters, electric",Very Poor,Poor,Appliance thermostats,Good,Good,No low energy lighting,Very Poor,Very Poor,electricity (not community),0.0,unheated corridor,8.84,,,N,natural,"Ground Floor Flat, 24, Church Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2018-11-22 21:50:40,rental (private),,,200003728498.0,Address Matched +494452872262020052806471426438780,"74, Bower Lane",,,ME16 8EH,8236756768,D,B,61,83,House,Mid-Terrace,2020-05-27,E07000110,E14000804,Kent,2020-05-28,rental (private),40,65,386,188.0,6.3,65,3.1,81.0,81.0,933.0,622.0,239.0,124.0,97.0,dual,N,NODATA!,,,2404.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,3.0,100.0,0.0,"Electric immersion, off-peak",Average,Poor,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,Portable electric heaters (assumed),,,"Pitched, 200 mm loft insulation",Good,Good,Electric storage heaters,Average,Poor,Controls for high heat retention storage heaters,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,NO DATA!,,,,N,natural,"74, Bower Lane",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2020-05-28 06:47:14,rental (private),,,200003666283.0,Address Matched +96446509922011061017031806208189,The Granary,Boarden Lane,Staplehurst,TN12 0EB,8098066468,D,C,66,73,House,Detached,2011-06-10,E07000110,E14000700,Kent,2011-06-10,marketed sale,58,67,176,142.0,6.1,40,4.9,99.0,66.0,827.0,685.0,188.0,146.0,122.0,Single,N,NODATA!,,,2110.0,100.0,double glazing installed during or after 2002,Normal,1.0,5.0,5.0,50.0,0.0,From main system,Average,Poor,"Solid, insulated (assumed)",,,Fully double glazed,Good,Good,"System built, as built, insulated (assumed)",Good,Good,"Room heaters, wood logs",,,"Pitched, insulated (assumed)",Good,Good,"Boiler and underfloor heating, oil",Average,Poor,Time and temperature zone control,Very Good,Very Good,Low energy lighting in 50% of fixed outlets,Good,Good,oil (not community),0.0,NO DATA!,,2.4,0.0,,natural,"The Granary, Boarden Lane, Staplehurst",Maidstone,Faversham and Mid Kent,TONBRIDGE,England and Wales: 2003-2006,2011-06-10 17:03:18,owner-occupied,16.0,8.0,10014309710.0,Address Matched +184804222332017022420295583268906,South View,Headcorn Road,Staplehurst,TN12 0BU,2663924568,C,C,70,77,House,Semi-Detached,2017-02-24,E07000110,E14000804,Kent,2017-02-24,marketed sale,68,75,165,124.0,4.8,27,3.5,86.0,86.0,949.0,953.0,146.0,88.0,180.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,2.0,6.0,6.0,100.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, wood logs",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"South View, Headcorn Road, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1950-1966,2017-02-24 20:29:55,owner-occupied,,,200003723485.0,Address Matched +1744044319442019081519213661619758,"35, Camomile Drive",Weavering,,ME14 5FL,4499616678,D,C,68,80,House,Detached,2019-08-15,E07000110,E14000700,Kent,2019-08-15,marketed sale,61,74,189,118.0,6.2,33,3.9,173.0,102.0,971.0,849.0,152.0,84.0,185.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,7.0,7.0,32.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, mains gas",,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 32% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"35, Camomile Drive, Weavering",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2019-08-15 19:21:36,owner-occupied,,,200003690023.0,Address Matched +605757027912016081911172498960287,"77, Gladstone Road",Penenden Heath,,ME14 2AX,2798784868,D,B,55,82,House,Mid-Terrace,2016-08-19,E07000110,E14000804,Kent,2016-08-19,marketed sale,48,79,353,120.0,4.2,62,1.5,47.0,47.0,807.0,494.0,101.0,69.0,68.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, mains gas",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,2.4,,N,natural,"77, Gladstone Road, Penenden Heath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2016-08-19 11:17:24,owner-occupied,,,200003701789.0,Address Matched +918687152042020030318450406700878,"102, Hockers Lane",Detling,,ME14 3JJ,9084157078,D,C,56,70,House,Semi-Detached,2020-03-03,E07000110,E14000700,Kent,2020-03-03,rental (private),57,71,284,191.0,4.0,43,2.6,72.0,72.0,874.0,817.0,109.0,74.0,94.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,100.0,2.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Average,Average,"Room heaters, wood logs",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"102, Hockers Lane, Detling",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2020-03-03 18:45:04,rental (private),,,200003690118.0,Address Matched +1064244738312013122111042198279013,"15, Southwood",,,ME16 9EB,347887178,D,C,64,78,House,Semi-Detached,2013-12-21,E07000110,E14000804,Kent,2013-12-21,none of the above,60,75,201,115.0,4.3,39,2.5,120.0,60.0,720.0,664.0,116.0,72.0,112.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,8.0,8.0,0.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"15, Southwood",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2013-12-21 11:04:21,owner-occupied,15.0,0.0,200003666024.0,Address Matched +339102800062009080522123955458611,"7, Fallowfield Close",Weavering,,ME14 5TW,1566075668,D,C,65,74,House,Mid-Terrace,2009-08-05,E07000110,E14000700,Kent,2009-08-05,marketed sale,60,70,261,196.0,4.3,44,3.2,90.0,45.0,479.0,392.0,128.0,103.0,113.78,Single,Y,NO DATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,2.0,6.0,6.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Poor,Poor,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.37,0.0,N,natural,"7, Fallowfield Close, Weavering",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2009-08-05 22:12:39,owner-occupied,,,200003688039.0,Address Matched +736751539002012010515335295420258,"22, Winchs Garth",Staplehurst,,TN12 0QX,8047834968,D,D,61,62,Maisonette,Semi-Detached,2012-01-05,E07000110,E14000804,Kent,2012-01-05,marketed sale,52,52,360,355.0,3.8,64,3.8,62.0,37.0,422.0,427.0,188.0,188.0,59.62,dual,Y,Ground,N,,2401.0,90.0,"double glazing, unknown install date",Normal,0.0,4.0,3.0,33.0,0.0,"Electric immersion, off-peak",Poor,Very Poor,"Solid, no insulation (assumed)",,,Mostly double glazing,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,(another dwelling above),,,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 33% of fixed outlets,Average,Average,electricity (not community),0.0,unheated corridor,3.0,2.42,0.0,,natural,"22, Winchs Garth, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1950-1966,2012-01-05 15:33:52,owner-occupied,6.0,2.0,200003728029.0,Address Matched +ce222482b3af7eb7051440b1e05f55065f86c04689087a0aca28db073f3353e3,24 Culpeper Close,Hollingbourne,,ME17 1UE,10001470366,D,B,64,83,House,Semi-Detached,2021-09-07,E07000110,E14000700,Kent,2021-09-07,rental,58,81,257,108.0,4.0,45,1.7,99.0,71.0,639.0,473.0,115.0,76.0,88.0,Single,Y,,,,,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,62.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 62% of fixed outlets,Good,Good,mains gas (not community),0.0,,,2.45,0.0,N,natural,"24 Culpeper Close, Hollingbourne",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2021-09-07 17:55:27,Rented (social),13.0,,200003701626.0,Energy Assessor +1487416379302016101211140943769128,Flat 10,Miller Heights,43-51 Lower Stone Street,ME15 6LN,8304877478,D,D,65,65,Flat,NO DATA!,2016-10-12,E07000110,E14000804,Kent,2016-10-12,none of the above,49,49,383,383.0,4.0,65,4.0,43.0,43.0,562.0,562.0,163.0,163.0,61.0,off-peak 10 hour,,mid floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Poor,Poor,Average thermal transmittance 0.22 W/m-¦K,Good,Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.92 W/m-¦K,Average,Average,,,,Average thermal transmittance 0.22 W/m-¦K,Good,Good,"Boiler and radiators, electric",Poor,Very Poor,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"Flat 10, Miller Heights, 43-51 Lower Stone Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2016-10-12 11:14:09,unknown,4.0,4.0,10093303790.0,Address Matched +646278019262011062422471897348519,"148, Clifford Way",,,ME16 8GF,1953197868,B,B,83,84,Flat,NO DATA!,2011-06-24,E07000110,E14000804,Kent,2011-06-24,marketed sale,89,89,81,74.0,0.9,15,0.8,53.0,36.0,162.0,164.0,67.0,67.0,58.4,Unknown,Y,3rd,N,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,50.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,heated corridor,,2.4,0.0,,natural,"148, Clifford Way",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2011-06-24 22:47:18,owner-occupied,10.0,5.0,10022896161.0,Address Matched +775859059962012041516453927448782,Stone Publishing Trust,"The Eagles, Headcorn Road",Staplehurst,TN12 0BU,8225547968,D,B,62,82,House,Detached,2012-04-14,E07000110,E14000804,Kent,2012-04-15,marketed sale,57,79,197,86.0,6.5,38,2.9,142.0,76.0,1030.0,685.0,111.0,112.0,171.0,dual,Y,NODATA!,,,2104.0,40.0,double glazing installed before 2002,Normal,3.0,7.0,7.0,10.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Partial double glazing,Poor,Poor,"Cavity wall, as built, partial insulation (assumed)",Average,Average,"Room heaters, mains gas",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 10% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"Stone Publishing Trust, The Eagles, Headcorn Road, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1976-1982,2012-04-15 16:45:39,owner-occupied,21.0,2.0,200003723482.0,Address Matched +512681171512010071316000999900474,3 Lime Terrace,High Street,Staplehurst,TN12 0AP,4440197768,C,C,74,76,House,Mid-Terrace,2010-07-13,E07000110,E14000804,Kent,2010-07-13,marketed sale,75,76,201,192.0,2.0,33,1.9,65.0,32.0,348.0,355.0,87.0,87.0,61.42,Single,Y,NO DATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,4.0,4.0,0.0,0.0,From main system,Very Good,Very Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, electric",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.2,0.0,N,natural,"3 Lime Terrace, High Street, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: before 1900,2010-07-13 16:00:09,owner-occupied,,,200003730979.0,Address Matched +596613300612016012212262592960185,"71, St. Lukes Road",,,ME14 5AS,1579024868,D,B,56,85,House,Semi-Detached,2016-01-18,E07000110,E14000804,Kent,2016-01-22,ECO assessment,49,83,302,82.0,5.4,53,1.5,126.0,63.0,908.0,475.0,182.0,87.0,101.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,0.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"71, St. Lukes Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2016-01-22 12:26:25,rental (social),,,200003705959.0,Address Matched +1018048498752013101901540695079619,"72, Amsbury Road",Hunton,,ME15 0QH,6987854178,E,C,41,79,House,Semi-Detached,2013-10-04,E07000110,E14000804,Kent,2013-10-19,assessment for green deal,37,77,370,112.0,6.7,71,2.1,102.0,53.0,1060.0,590.0,233.0,70.0,95.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,3.0,5.0,5.0,10.0,0.0,"From main system, no cylinder thermostat",Poor,Poor,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Sandstone, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, mains gas",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Average,Programmer and room thermostat,Average,Average,Low energy lighting in 10% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"72, Amsbury Road, Hunton",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2013-10-19 01:54:06,owner-occupied,10.0,1.0,200003669645.0,Address Matched +548078909022010100314333870178820,The Coach House,Chart Sutton,,ME17 3ET,2778040868,F,F,28,32,House,Detached,2010-10-03,E07000110,E14000700,Kent,2010-10-03,marketed sale,20,23,416,385.0,20.0,96,19.0,175.0,130.0,2250.0,2081.0,299.0,299.0,178.09,dual,N,NO DATA!,,,2104.0,27.0,"double glazing, unknown install date",Normal,2.0,9.0,9.0,65.0,1.0,"From main system, no cylinder thermostat",Poor,Very Poor,"Solid, no insulation (assumed)",,,Some double glazing,Poor,Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, coal",Average,Very Poor,Programmer and room thermostat,Average,Average,Low energy lighting in 65% of fixed outlets,Good,Good,house coal - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.36,0.0,N,natural,"The Coach House, Chart Sutton",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1900-1929,2010-10-03 14:33:38,owner-occupied,,,200003723063.0,Address Matched +201937279962013031414053915248277,"10, Titchfield Close",,,ME15 8TA,7194735568,C,C,72,77,Flat,Enclosed End-Terrace,2013-03-14,E07000110,E14000700,Kent,2013-03-14,rental (social),75,81,179,137.0,1.6,34,1.3,60.0,30.0,300.0,254.0,74.0,74.0,48.0,Single,Y,Ground,N,,2106.0,100.0,double glazing installed during or after 2002,More Than Typical,0.0,2.0,2.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"System built, with internal insulation",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,no corridor,,,0.0,,natural,"10, Titchfield Close",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2013-03-14 14:05:39,rental (social),5.0,0.0,200003727378.0,Address Matched +ce5a087d692f5afb3783aa6d2784cb46636bf5c23f81a0954a62029cae15279b,8 Cornhill Place,,,ME15 6GX,10001600197,B,B,82,82,Flat,Mid-Terrace,2021-09-22,E07000110,E14000804,Kent,2021-09-22,rental,87,87,111,111.0,0.9,19,0.9,45.0,45.0,152.0,152.0,90.0,90.0,45.0,Unknown,Y,01,N,,,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,(another dwelling below),,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,1.24,2.3,0.0,N,natural,8 Cornhill Place,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007-2011,2021-09-22 21:26:25,Rented (private),9.0,,10022895013.0,Energy Assessor +339919889142019071208242967519398,Flat 7 Kingswood House,Marigold Way,,ME16 0GA,2135185668,C,B,79,84,Flat,Mid-Terrace,2019-07-11,E07000110,E14000804,Kent,2019-07-12,rental (private),75,75,166,166.0,2.0,28,2.0,60.0,68.0,222.0,150.0,218.0,175.0,71.0,Unknown,N,1st,N,,2603.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,"Electric immersion, off-peak",Poor,Poor,(another dwelling below),NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Room heaters, electric",Very Poor,Poor,Programmer and appliance thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,unheated corridor,2.78,,,N,natural,"Flat 7 Kingswood House, Marigold Way",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2019-07-12 08:24:29,rental (private),,,10022892605.0,Address Matched +1479841129702017062212342443732828,Flat 1,12 Mills Court,Harrietsham,ME17 1GP,5739327478,B,B,84,84,Flat,Enclosed End-Terrace,2017-06-22,E07000110,E14000700,Kent,2017-06-22,new dwelling,88,88,84,84.0,1.0,15,1.0,49.0,49.0,176.0,176.0,79.0,79.0,67.0,standard tariff,,ground floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.26 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Flat 1, 12 Mills Court, Harrietsham",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2017-06-22 12:34:24,owner-occupied,11.0,11.0,10093303107.0,Address Matched +1575016989922017091419460413348493,"19, Trapham Road",,,ME16 0EL,9178893578,D,B,68,82,House,Detached,2017-09-14,E07000110,E14000804,Kent,2017-09-14,marketed sale,63,79,199,99.0,4.1,35,2.1,100.0,71.0,718.0,580.0,92.0,59.0,116.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,6.0,6.0,58.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 270 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 58% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"19, Trapham Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2017-09-14 19:46:04,owner-occupied,,,200003658917.0,Address Matched +47085509262014072109473723498414,"1, Copperfield Close",Kingswood,,ME17 3PW,1236063468,C,B,69,81,House,Detached,2014-07-21,E07000110,E14000700,Kent,2014-07-21,marketed sale,64,78,155,91.0,6.8,30,4.1,137.0,100.0,1254.0,1008.0,158.0,140.0,228.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,8.0,8.0,63.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 63% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"1, Copperfield Close, Kingswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1991-1995,2014-07-21 09:47:37,owner-occupied,59.0,37.0,10022892466.0,Address Matched +1471615421632016090210030912078700,46 Farleigh Court,Farleigh Lane,,ME16 9BJ,2012766478,D,C,64,70,Maisonette,End-Terrace,2016-09-02,E07000110,E14000804,Kent,2016-09-02,marketed sale,61,69,264,209.0,3.0,46,2.3,91.0,45.0,559.0,468.0,66.0,66.0,64.0,Unknown,Y,1st,Y,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,0.0,0.0,From main system,Good,Good,(another dwelling below),NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,no corridor,0.0,2.4,,N,natural,"46 Farleigh Court, Farleigh Lane",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2016-09-02 10:03:09,owner-occupied,,,200003684246.0,Address Matched +408738702652009120410242205019978,"27, Parkwood Parade",,,ME15 9HL,9824250768,B,B,83,84,Flat,Enclosed End-Terrace,2009-12-04,E07000110,E14000700,Kent,2009-12-04,rental (social),82,82,176,168.0,1.2,29,1.1,36.0,20.0,205.0,207.0,70.0,70.0,40.14,Single,Y,1st,N,3.0,2106.0,100.0,double glazing installed before 2002,More Than Typical,0.0,2.0,2.0,20.0,0.0,From main system,Very Good,Very Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 20% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.29,0.0,N,natural,"27, Parkwood Parade",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2009-12-04 10:24:22,rental (social),,,200003682232.0,Address Matched +ce7b9658c8eff8bef5a1010cc88672f91f27373430850a337464f50f9ade776a,1a Plains Avenue,,,ME15 7AT,10001411715,C,B,77,84,House,Semi-Detached,2021-09-24,E07000110,E14000700,Kent,2021-09-25,rental,77,83,132,94.0,3.2,21,2.2,101.0,101.0,614.0,614.0,93.0,93.0,152.0,Single,Y,,,,,100.0,double glazing installed during or after 2002,Normal,3.0,7.0,7.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,"Room heaters, wood logs",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.3,0.0,N,natural,1a Plains Avenue,Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1976-1982,2021-09-25 02:21:33,Rented (private),14.0,,200003686703.0,Energy Assessor +813812699962012071618502220268802,"17, Ashford Road",Bearsted,,ME14 4BP,262910078,D,C,59,80,House,Semi-Detached,2012-07-16,E07000110,E14000700,Kent,2012-07-16,marketed sale,53,78,227,99.0,5.7,44,2.5,104.0,62.0,857.0,618.0,173.0,73.0,129.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,3.0,7.0,7.0,33.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 33% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"17, Ashford Road, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2012-07-16 18:50:22,owner-occupied,30.0,10.0,200003687637.0,Address Matched +77757187832018032917212676268307,"9, Kilndown Close",,,ME16 0PL,8706375468,C,B,69,84,House,Semi-Detached,2018-03-29,E07000110,E14000804,Kent,2018-03-29,marketed sale,67,82,201,92.0,2.9,35,1.4,114.0,57.0,459.0,432.0,107.0,71.0,82.0,Unknown,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, limited insulation (assumed)",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"9, Kilndown Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1976-1982,2018-03-29 17:21:26,owner-occupied,,,200003660216.0,Address Matched +1009871309262013102314222994668067,Pymps Court,Busbridge Road,Loose,ME15 0HZ,6962004178,C,C,70,77,House,Detached,2013-09-26,E07000110,E14000804,Kent,2013-10-23,assessment for green deal,73,79,144,110.0,5.7,22,4.2,95.0,95.0,1329.0,1203.0,100.0,100.0,255.0,Unknown,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,10.0,10.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, wood logs",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"Pymps Court, Busbridge Road, Loose",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2013-10-23 14:22:29,owner-occupied,15.0,15.0,200003730455.0,Address Matched +1725917732712019060311425498010961,"35, Ramsden Way",Marden,,TN12 9GL,9104284678,B,A,84,95,House,End-Terrace,2019-06-03,E07000110,E14000804,Kent,2019-06-03,new dwelling,86,98,86,0.0,1.2,15,0.0,63.0,63.0,199.0,199.0,79.0,48.0,80.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.16 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.19 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"35, Ramsden Way, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,NO DATA!,2019-06-03 11:42:54,unknown,15.0,15.0,10093305364.0,Address Matched +737663338552012012016132394090795,"Unit 1 Holiday Accomodation, Tilmangate Oast",Windmill Hill,Harrietsham,ME17 1LP,7598844968,C,C,75,75,House,Semi-Detached,2011-07-07,E07000110,E14000700,Kent,2012-01-20,new dwelling,77,77,140,140.0,2.5,25,2.5,58.0,58.0,410.0,410.0,137.0,137.0,66.66,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,0.0,,From main system,Average,Good,Average thermal transmittance 0.18 W/m?K,Very Good,Very Good,Fully double glazed,Good,Good,Average thermal transmittance 0.32 W/m?K,Good,Good,,,,Average thermal transmittance 0.18 W/m?K,Good,Good,", electric",Average,Good,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",0.0,NO DATA!,,2.415,,,NO DATA!,"Unit 1 Holiday Accomodation, Tilmangate Oast, Windmill Hill, Harrietsham",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2012-01-20 16:13:23,,0.0,0.0,200003702181.0,Address Matched +1447840546552016052607194999260542,Ashdown,Grove Green Road,Weavering,ME14 5JT,5233694478,C,C,70,80,House,Semi-Detached,2016-05-25,E07000110,E14000700,Kent,2016-05-26,marketed sale,69,79,174,112.0,3.5,28,2.2,99.0,72.0,676.0,682.0,139.0,89.0,124.0,Unknown,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,7.0,7.0,62.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, wood logs",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 62% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,2.7,,N,natural,"Ashdown, Grove Green Road, Weavering",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2016-05-26 07:19:49,owner-occupied,,,200003689601.0,Address Matched +803789397052012062016151794220192,North Barn Boughton Farm,Sandway,,ME17 2BD,1233749968,D,C,64,76,House,Semi-Detached,2012-06-20,E07000110,E14000700,Kent,2012-06-20,marketed sale,52,65,156,101.0,10.0,39,7.3,192.0,100.0,1481.0,1315.0,167.0,94.0,268.0,dual,N,NODATA!,,,2110.0,100.0,double glazing installed during or after 2002,Normal,1.0,6.0,6.0,8.0,1.0,From main system,Average,Average,"Solid, insulated (assumed)",,,Fully double glazed,Good,Good,"Sandstone, with internal insulation",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and underfloor heating, oil",Average,Average,Time and temperature zone control,Very Good,Very Good,Low energy lighting in 8% of fixed outlets,Very Poor,Very Poor,oil (not community),0.0,NO DATA!,,,0.0,,natural,"North Barn Boughton Farm, Sandway",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2003-2006,2012-06-20 16:15:17,owner-occupied,65.0,5.0,10014308898.0,Address Matched +889347002732013022821355810278509,"56, Oaktree Avenue",,,ME15 9AX,940555078,E,B,48,87,House,Mid-Terrace,2013-02-27,E07000110,E14000700,Kent,2013-02-28,non marketed sale,35,88,325,56.0,6.1,80,0.9,86.0,43.0,715.0,356.0,272.0,65.0,76.0,Single,Y,NODATA!,,,2101.0,100.0,double glazing installed before 2002,Normal,1.0,5.0,1.0,0.0,1.0,"Electric immersion, standard tariff",Very Poor,Very Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, coal",Average,Very Poor,No time or thermostatic control of room temperature,Very Poor,Very Poor,No low energy lighting,Very Poor,Very Poor,house coal (not community),0.0,NO DATA!,,,0.0,,natural,"56, Oaktree Avenue",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1900-1929,2013-02-28 21:35:58,rental (social),9.0,0.0,200003713600.0,Address Matched +596965409962014022113024904638374,6 Sunningdale Court,Square Hill Road,,ME15 7TT,7019024868,C,C,72,80,Flat,Mid-Terrace,2014-02-17,E07000110,E14000804,Kent,2014-02-21,none of the above,76,85,179,111.0,1.5,34,1.0,35.0,35.0,307.0,207.0,90.0,75.0,45.0,Single,Y,1st,N,,2102.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,80.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,4.597,,0.0,,natural,"6 Sunningdale Court, Square Hill Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2014-02-21 13:02:49,rental (social),5.0,4.0,200003696575.0,Address Matched +1137564973412014050814021590040727,"35, Cornwallis Road",,,ME16 8BA,7788303278,C,B,79,81,Flat,Semi-Detached,2014-05-08,E07000110,E14000804,Kent,2014-05-08,marketed sale,83,85,109,100.0,1.2,21,1.1,73.0,42.0,237.0,241.0,70.0,70.0,59.0,Single,Y,2nd,Y,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,25.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 25% of fixed outlets,Average,Average,mains gas (not community),0.0,unheated corridor,6.28,,0.0,,natural,"35, Cornwallis Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2014-05-08 14:02:15,owner-occupied,8.0,2.0,10014307252.0,Address Matched +1239049699262014112013232390808064,"13, Cornflower Close",Weavering,,ME14 5UL,6992910378,D,B,60,82,House,Detached,2014-11-20,E07000110,E14000700,Kent,2014-11-20,none of the above,55,81,224,84.0,5.4,43,2.1,136.0,68.0,934.0,611.0,181.0,87.0,124.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,7.0,7.0,0.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, mains gas",,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"13, Cornflower Close, Weavering",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2014-11-20 13:23:23,owner-occupied,12.0,0.0,200003687870.0,Address Matched +1463611199752016072711070790260643,"234, Upper Fant Road",,,ME16 8BX,6375906478,D,B,59,89,House,Mid-Terrace,2016-07-27,E07000110,E14000804,Kent,2016-07-27,marketed sale,54,89,329,51.0,3.2,58,0.5,39.0,39.0,553.0,313.0,159.0,67.0,56.0,Single,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, mains gas",,,"Pitched, 270 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,2.4,,N,natural,"234, Upper Fant Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2016-07-27 11:07:07,owner-occupied,,,200003656130.0,Address Matched +597127093932011072022353908268005,19 Sunningdale Court,Square Hill Road,,ME15 7TT,9568024868,C,C,73,76,Flat,Semi-Detached,2011-07-20,E07000110,E14000804,Kent,2011-07-20,rental (social),75,78,166,145.0,2.1,32,1.9,66.0,38.0,313.0,300.0,122.0,109.0,66.83,Unknown,Y,3rd,N,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,29.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"System built, as built, no insulation (assumed)",Poor,Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 29% of fixed outlets,Average,Average,mains gas (not community),0.0,unheated corridor,5.65,2.28,0.0,,natural,"19 Sunningdale Court, Square Hill Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2011-07-20 22:35:39,rental (social),7.0,2.0,200003696549.0,Address Matched +861572249222012112919052433118422,Littlemote,Church Lane,Bearsted,ME14 4EF,2317453078,F,C,37,80,House,Detached,2012-11-29,E07000110,E14000700,Kent,2012-11-29,rental (private),33,78,361,96.0,10.0,70,2.8,103.0,67.0,1647.0,667.0,203.0,80.0,146.0,Single,Y,NODATA!,,,2107.0,0.0,single glazing,Normal,0.0,7.0,7.0,42.0,2.0,"From main system, no cylinder thermostat",Average,Average,"Suspended, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 42% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"Littlemote, Church Lane, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2012-11-29 19:05:24,rental (private),19.0,8.0,200003721619.0,Address Matched +905614519022014050210012656028394,"33, Palmar Road",,,ME16 0DL,9548166078,D,C,58,74,House,Semi-Detached,2014-05-02,E07000110,E14000804,Kent,2014-05-02,none of the above,53,70,236,138.0,5.4,45,3.2,128.0,64.0,977.0,824.0,105.0,74.0,119.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,8.0,8.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"33, Palmar Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2014-05-02 10:01:26,owner-occupied,13.0,0.0,200003658731.0,Address Matched +1621042629942018040521101959780548,"10, Queensgate",,,ME16 0FB,7902727578,C,B,76,91,House,Semi-Detached,2018-04-04,E07000110,E14000804,Kent,2018-04-05,none of the above,78,92,143,31.0,1.8,25,0.4,107.0,55.0,259.0,269.0,109.0,62.0,72.0,Unknown,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,6.0,0.0,From main system,Good,Good,"Suspended, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 6% of fixed outlets,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"10, Queensgate",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2018-04-05 21:10:19,owner-occupied,,,10022896175.0,Address Matched +603927467112018101019200397989188,1 Crisfield Cottages,The Green,Bearsted,ME14 4DY,1842774868,D,B,65,86,House,End-Terrace,2018-10-10,E07000110,E14000700,Kent,2018-10-10,rental (private),60,85,246,76.0,3.5,43,1.1,101.0,58.0,599.0,402.0,82.0,52.0,81.0,Unknown,Y,NODATA!,,,2102.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,25.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Roof room(s), insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,Low energy lighting in 25% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"1 Crisfield Cottages, The Green, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2018-10-10 19:20:03,rental (private),,,200003695141.0,Address Matched +1824048662062020090808252291128440,"48, South Street",Barming,,ME16 9EY,4960691778,F,C,35,71,Bungalow,Detached,2020-09-02,E07000110,E14000804,Kent,2020-09-08,marketed sale,29,63,512,212.0,7.6,90,3.2,90.0,68.0,1244.0,769.0,205.0,71.0,84.0,Unknown,Y,NODATA!,,,2102.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,67.0,0.0,"From main system, no cylinder thermostat",Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,Low energy lighting in 67% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"48, South Street, Barming",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2020-09-08 08:25:22,owner-occupied,,,200003665618.0,Address Matched +822856940552012080913311098020105,Domus Corrodian,Priory Close,East Farleigh,ME15 0EY,1535080078,D,B,68,83,House,Detached,2012-08-08,E07000110,E14000804,Kent,2012-08-09,marketed sale,66,82,161,75.0,4.6,30,2.2,124.0,67.0,752.0,648.0,124.0,80.0,149.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,0.0,7.0,7.0,14.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 14% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"Domus Corrodian, Priory Close, East Farleigh",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2012-08-09 13:31:10,owner-occupied,22.0,3.0,200003673439.0,Address Matched +459871359922013032114125334488577,"30, Henley Fields",Weavering,,ME14 5UY,7353514768,D,B,66,83,House,Detached,2013-03-18,E07000110,E14000700,Kent,2013-03-21,marketed sale,62,82,184,79.0,4.6,35,2.0,87.0,64.0,735.0,546.0,149.0,72.0,131.0,Unknown,Y,NODATA!,,,2109.0,100.0,double glazing installed before 2002,Normal,0.0,6.0,6.0,64.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and boiler energy manager",Good,Good,Low energy lighting in 64% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"30, Henley Fields, Weavering",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2013-03-21 14:12:53,owner-occupied,22.0,14.0,200003689730.0,Address Matched +173021910502008102414183352382148,"47, River Bank Close",,,ME15 7RZ,5563713568,C,C,75,79,Flat,Enclosed End-Terrace,2008-10-24,E07000110,E14000804,Kent,2008-10-24,marketed sale,70,73,266,240.0,2.3,40,2.0,60.0,30.0,164.0,151.0,103.0,103.0,56.14,Unknown,N,3rd,Y,4.0,2402.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,0.0,0.0,"Electric immersion, off-peak",Average,Poor,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,Electric storage heaters,Poor,Poor,Automatic charge control,Average,Average,No low energy lighting,Very Poor,Very Poor,electricity - this is for backwards compatibility only and should not be used,0.0,heated corridor,,2.3,0.0,N,natural,"47, River Bank Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2008-10-24 14:18:33,owner-occupied,,,200003725879.0,Address Matched +445962609222010022712120073838340,14Second Floor Granada House,Lower Stone Street,,ME15 6JS,4724023768,D,C,55,69,Flat,Detached,2010-02-27,E07000110,E14000804,Kent,2010-02-27,rental (private),48,64,416,285.0,4.1,69,2.8,53.0,31.0,632.0,464.0,107.0,81.0,58.88,Single,Y,2nd,Y,3.0,2107.0,75.0,secondary glazing,Normal,0.0,3.0,3.0,29.0,0.0,From main system,Good,Good,(other premises below),,,Partial secondary glazing,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Flat, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 29% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.43,0.0,N,natural,"14Second Floor Granada House, Lower Stone Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2010-02-27 12:12:00,rental (private),,,200003693635.0,Address Matched +1824580892202020090915304572100918,White Timbers,Walnut Tree Lane,Loose,ME15 9RG,9217991778,C,B,74,85,House,Detached,2020-09-09,E07000110,E14000804,Kent,2020-09-09,none of the above,60,76,170,96.0,7.2,32,4.2,135.0,135.0,1735.0,1234.0,176.0,123.0,225.0,dual,Y,NODATA!,,,2107.0,100.0,"double glazing, unknown install date",Normal,2.0,10.0,10.0,100.0,1.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"White Timbers, Walnut Tree Lane, Loose",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2020-09-09 15:30:45,owner-occupied,,,200003675975.0,Address Matched +cecefc8dcbafdbe312b470615af346f0f7b4859b37a13c4f5850d8e3fde4e170,29 Thornhill Place,,,ME14 2SF,10001443437,D,B,66,86,House,Mid-Terrace,2021-08-25,E07000110,E14000804,Kent,2021-08-26,marketed sale,63,85,264,88.0,2.5,47,0.9,48.0,48.0,447.0,362.0,78.0,55.0,54.0,Single,Y,,,,,100.0,double glazing installed before 2002,Normal,2.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.29,0.0,N,natural,29 Thornhill Place,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2021-08-26 08:29:56,Owner-occupied,8.0,,200003702445.0,Energy Assessor +1200312449242017082511180521732558,"26, Georgian Drive",Coxheath,,ME17 4QT,2293947278,D,B,67,81,House,Semi-Detached,2017-08-25,E07000110,E14000804,Kent,2017-08-25,marketed sale,65,80,209,109.0,3.7,37,2.0,78.0,78.0,677.0,580.0,141.0,84.0,102.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,80.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"26, Georgian Drive, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2017-08-25 11:18:05,owner-occupied,,,200003714928.0,Address Matched +803789379262014072908042029088314,North Barn Boughton Farm,Sandway,,ME17 2BD,1233749968,C,B,77,81,House,Detached,2014-07-28,E07000110,E14000700,Kent,2014-07-29,FiT application,66,71,96,81.0,6.8,26,5.9,187.0,115.0,1642.0,1500.0,120.0,105.0,265.0,dual,N,NODATA!,,,2110.0,100.0,double glazing installed during or after 2002,Normal,0.0,7.0,7.0,38.0,0.0,"From main system, plus solar",Good,Good,"Solid, insulated (assumed)",,,Fully double glazed,Good,Good,"Solid brick, as built, insulated (assumed)",Good,Good,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, insulated (assumed)",Good,Good,"Boiler and underfloor heating, oil",Average,Average,Time and temperature zone control,Very Good,Very Good,Low energy lighting in 38% of fixed outlets,Average,Average,oil (not community),0.0,NO DATA!,,,,,natural,"North Barn Boughton Farm, Sandway",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2007 onwards,2014-07-29 08:04:20,owner-occupied,8.0,3.0,10014308898.0,Address Matched +725162136612015121312165794959290,"43, Salts Avenue",Loose,,ME15 0AY,2020643968,D,B,65,83,House,Semi-Detached,2015-12-10,E07000110,E14000804,Kent,2015-12-13,ECO assessment,58,80,226,100.0,5.4,40,2.4,129.0,74.0,962.0,653.0,114.0,76.0,134.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,2.0,6.0,6.0,25.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, no insulation",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 25% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"43, Salts Avenue, Loose",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2015-12-13 12:16:57,owner-occupied,,,200003663445.0,Address Matched +409433281212009121018235206019778,"1, Malta Terrace",Invicta Park,,ME14 2PQ,7835160768,D,D,65,65,House,End-Terrace,2009-12-07,E07000110,E14000804,Kent,2009-12-10,marketed sale,64,64,270,270.0,3.1,44,3.1,35.0,35.0,534.0,534.0,86.0,86.0,69.6,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,100.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.3,0.0,N,natural,"1, Malta Terrace, Invicta Park",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2009-12-10 18:23:52,owner-occupied,,,200003724107.0,Address Matched +450888959042010030822232379300488,"23a, Wordsworth Road",Penenden Heath,,ME14 2HH,7081453768,D,C,68,75,Flat,Detached,2010-03-08,E07000110,E14000804,Kent,2010-03-08,marketed sale,67,74,301,233.0,2.2,50,1.7,23.0,23.0,389.0,298.0,97.0,97.0,44.79,Single,Y,1st,Y,2.0,2106.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,100.0,0.0,From main system,Very Good,Very Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,"Pitched, 100mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.46,0.0,N,natural,"23a, Wordsworth Road, Penenden Heath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2010-03-08 22:23:23,owner-occupied,,,200003707491.0,Address Matched +1629830589542018050815205351780688,"14, Saxon Way",Tovil,,ME15 6AL,3503987578,B,A,83,95,House,Semi-Detached,2018-05-08,E07000110,E14000804,Kent,2018-05-08,new dwelling,85,98,95,4.0,1.3,17,0.1,56.0,56.0,210.0,212.0,97.0,52.0,79.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.10 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"14, Saxon Way, Tovil",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2018-05-08 15:20:53,owner-occupied,45.0,45.0,10093304968.0,Address Matched +823016310212012081315192898920500,"6, Golden Wood Close",,,ME5 8XA,5055080078,D,B,66,86,House,End-Terrace,2012-08-13,E07000110,E14000700,Kent,2012-08-13,marketed sale,65,86,198,63.0,3.0,38,1.0,90.0,45.0,485.0,376.0,104.0,70.0,81.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,5.0,5.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"6, Golden Wood Close",Maidstone,Faversham and Mid Kent,CHATHAM,England and Wales: 1967-1975,2012-08-13 15:19:28,owner-occupied,8.0,0.0,200003673611.0,Address Matched +1028260250732013102017452563978494,"22, Maxwell Drive",,,ME16 0QJ,5423435178,D,B,63,86,Bungalow,Semi-Detached,2013-10-18,E07000110,E14000804,Kent,2013-10-20,marketed sale,64,88,232,58.0,2.7,44,0.7,42.0,42.0,469.0,369.0,138.0,74.0,60.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,3.0,3.0,88.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 88% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"22, Maxwell Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2013-10-20 17:45:25,owner-occupied,8.0,7.0,200003704329.0,Address Matched +cf0348f48fe0e5246ba9c2c5f489e54ebc6b9250d13a4d926f5f9a46e19f75ea,FLAT 35,MILLER HEIGHTS 43-51,LOWER STONE STREET,ME15 6LN,10001664654,B,B,83,83,Flat,Mid-Terrace,2021-07-01,E07000110,E14000804,Kent,2021-07-01,marketed sale,71,71,223,223.0,2.1,38,2.1,60.0,60.0,158.0,158.0,188.0,188.0,56.0,Unknown,N,04,N,,,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,100.0,0.0,From main system,Average,Poor,(another dwelling below),,,Fully double glazed,Average,Average,"System built, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, electric",Average,Very Poor,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,unheated corridor,1.0,2.27,0.0,N,natural,"FLAT 35, MILLER HEIGHTS 43-51, LOWER STONE STREET",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2021-07-01 10:33:27,Owner-occupied,12.0,,10091196132.0,Energy Assessor +1447355229222016052506240504548256,"60, Chamberlain Avenue",,,ME16 8PE,5039294478,D,B,60,86,House,Semi-Detached,2016-05-24,E07000110,E14000804,Kent,2016-05-25,marketed sale,53,84,292,77.0,4.0,52,1.1,52.0,52.0,726.0,406.0,151.0,83.0,78.0,Unknown,Y,NODATA!,,,2102.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 270 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,2.52,,N,natural,"60, Chamberlain Avenue",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2016-05-25 06:24:05,owner-occupied,,,200003674556.0,Address Matched +1809094082302020070914370676000018,"5, Montpelier Gate",,,ME16 0HW,2314980778,C,B,69,82,House,Detached,2020-07-09,E07000110,E14000804,Kent,2020-07-09,marketed sale,64,79,200,102.0,3.6,35,1.9,92.0,92.0,574.0,498.0,136.0,82.0,102.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,5.0,5.0,85.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 85% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"5, Montpelier Gate",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1991-1995,2020-07-09 14:37:06,owner-occupied,,,200003705724.0,Address Matched +600706837932011030611051796068101,"38, Huntington Road",Coxheath,,ME17 4DY,3186154868,D,D,58,66,House,Semi-Detached,2011-03-04,E07000110,E14000804,Kent,2011-03-06,marketed sale,51,60,326,261.0,5.1,55,4.1,80.0,58.0,817.0,657.0,131.0,131.0,93.34,dual,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,4.0,4.0,62.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 62% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.44,0.0,N,natural,"38, Huntington Road, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2011-03-06 11:05:17,owner-occupied,,,200003671635.0,Address Matched +1346885603532015072717251970278302,100 Farleigh Court,Farleigh Lane,,ME16 9BH,290387378,D,C,68,79,Flat,Semi-Detached,2015-07-27,E07000110,E14000804,Kent,2015-07-27,rental (private),66,81,230,132.0,2.6,40,1.5,44.0,44.0,474.0,272.0,109.0,96.0,63.0,Single,Y,1st,Y,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,100.0,0.0,From main system,Good,Good,(another dwelling below),NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,no corridor,,,,N,natural,"100 Farleigh Court, Farleigh Lane",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2015-07-27 17:25:19,rental (private),,,200003682675.0,Address Matched +1359303541532015090211530951078206,93 Pine Lodge,Tonbridge Road,,ME16 8TB,4621278378,D,C,68,77,Flat,Mid-Terrace,2015-09-02,E07000110,E14000804,Kent,2015-09-02,marketed sale,65,77,229,150.0,2.7,40,1.8,71.0,47.0,484.0,327.0,112.0,99.0,67.0,Single,Y,2nd,Y,,2107.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,50.0,0.0,From main system,Good,Good,(another dwelling below),NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,no corridor,,,,N,natural,"93 Pine Lodge, Tonbridge Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2015-09-02 11:53:09,owner-occupied,,,200003657971.0,Address Matched +625116520652011050519414694090583,Flat,"1, Marlborough Parade",Beverley Road,ME16 9JN,5305046868,D,C,61,74,Maisonette,End-Terrace,2011-05-04,E07000110,E14000804,Kent,2011-05-05,rental (private),58,75,259,155.0,3.8,50,2.3,45.0,45.0,639.0,391.0,89.0,81.0,76.7,dual,Y,2nd,Y,,2107.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,100.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,no corridor,,2.36,0.0,,natural,"Flat, 1, Marlborough Parade, Beverley Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2011-05-05 19:41:46,rental (private),8.0,8.0,200003720985.0,Address Matched +1535906929922018111512210391158208,"4, Endeavour Drive",Marden,,TN12 9FS,904221578,B,A,85,94,House,Detached,2018-11-15,E07000110,E14000804,Kent,2018-11-15,new dwelling,85,94,78,22.0,1.8,14,0.5,78.0,78.0,274.0,275.0,100.0,55.0,130.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.12 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.28 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"4, Endeavour Drive, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,NO DATA!,2018-11-15 12:21:03,owner-occupied,16.0,16.0,10093303311.0,Address Matched +1811781189352020072117273020200075,"19, Blunden Lane",Yalding,,ME18 6JQ,596901778,B,B,86,87,House,End-Terrace,2020-07-21,E07000110,E14000804,Kent,2020-07-21,new dwelling,88,89,72,60.0,1.2,13,1.0,79.0,79.0,253.0,253.0,76.0,46.0,95.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.21 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"19, Blunden Lane, Yalding",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2020-07-21 17:27:30,unknown,30.0,30.0,10094442493.0,Address Matched +397778473812009111614052808919263,66 Oxford Gardens,,,ME15 8FJ,2320389668,C,C,76,77,House,Mid-Terrace,2009-11-16,E07000110,E14000700,Kent,2009-11-16,new dwelling,83,83,131,128.0,1.6,20,1.5,50.0,41.0,200.0,201.0,167.0,167.0,80.0,standard tariff,,NO DATA!,,,2207.0,,NO DATA!,NO DATA!,,,,4.0,0.0,From main system,Poor,Good,Average thermal transmittance 0.18 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.28 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.12 W/m?K,Very Good,Very Good,"Air source heat pump, underfloor, electric",Average,Very Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",0.0,NO DATA!,,2.4,,,NO DATA!,66 Oxford Gardens,Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2009-11-16 14:05:28,,5.0,4.0,10014309005.0,Address Matched +1032174191152016122018174596269718,"10, Grecian Street",,,ME14 2TS,7867165178,E,B,53,84,House,Mid-Terrace,2016-12-20,E07000110,E14000804,Kent,2016-12-20,marketed sale,47,82,375,100.0,4.1,66,1.1,86.0,43.0,675.0,427.0,176.0,68.0,62.0,Single,Y,NODATA!,,,2104.0,85.0,double glazing installed during or after 2002,Normal,1.0,4.0,4.0,0.0,0.0,From main system,Average,Average,"Suspended, no insulation (assumed)",NO DATA!,,Mostly double glazing,Good,Good,"Sandstone or limestone, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, mains gas",,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"10, Grecian Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2016-12-20 18:17:45,owner-occupied,,,200003703231.0,Address Matched +393506644412010032307072995900168,"1, Taunton Close",,,ME15 8FS,1840459668,C,C,69,76,House,Semi-Detached,2010-03-16,E07000110,E14000700,Kent,2010-03-23,rental (social),64,72,249,192.0,3.5,42,2.7,47.0,47.0,515.0,417.0,129.0,97.0,83.42,Single,Y,NO DATA!,,,2107.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,90.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 150mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 90% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.44,0.0,N,natural,"1, Taunton Close",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2010-03-23 07:07:29,rental (social),,,200003681305.0,Address Matched +848318069242012102215490700222028,Cottage,Crampton House,"High Street, Staplehurst",TN12 0AU,202062078,D,C,55,80,House,Detached,2012-10-22,E07000110,E14000804,Kent,2012-10-22,marketed sale,59,82,299,109.0,2.8,53,1.0,60.0,34.0,404.0,429.0,241.0,115.0,53.0,Single,N,NODATA!,,,2704.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,25.0,0.0,"Electric immersion, standard tariff",Very Poor,Very Poor,"Solid, insulated (assumed)",,,Fully double glazed,Good,Good,"Timber frame, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated at rafters",Good,Good,Electric underfloor heating,Very Poor,Very Poor,Programmer and room thermostat,Average,Average,Low energy lighting in 25% of fixed outlets,Average,Average,electricity (not community),0.0,NO DATA!,,,0.0,,natural,"Cottage, Crampton House, High Street, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 2007 onwards,2012-10-22 15:49:07,unknown,8.0,2.0,200003678912.0,Address Matched +213047818752009011515415604910953,"64, Knaves Acre",Headcorn,,TN27 9TJ,9316846568,C,B,69,81,House,Mid-Terrace,2009-01-14,E07000110,E14000700,Kent,2009-01-15,marketed sale,65,78,253,156.0,3.1,42,1.9,51.0,35.0,396.0,263.0,136.0,103.0,74.23,Unknown,Y,NO DATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,56.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 100mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 56% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.32,0.0,N,natural,"64, Knaves Acre, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,England and Wales: 1967-1975,2009-01-15 15:41:56,owner-occupied,,,200003700903.0,Address Matched +1610418642832018022321021175978203,Flat 8,"18, Calder Road",,ME14 2QQ,4385256578,D,D,63,66,Flat,Semi-Detached,2018-02-14,E07000110,E14000804,Kent,2018-02-23,rental (private),48,51,482,446.0,3.1,82,2.9,33.0,33.0,345.0,327.0,233.0,203.0,38.0,dual,N,2nd,Y,,2401.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,100.0,0.0,"Electric immersion, off-peak",Very Poor,Poor,(another dwelling below),NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,Portable electric heaters (assumed),,,"Pitched, 150 mm loft insulation",Good,Good,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,unheated corridor,2.5,,,N,natural,"Flat 8, 18, Calder Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2018-02-23 21:02:11,rental (private),,,200003728418.0,Address Matched +948973769342013061110502106979808,97a Heath Road,Coxheath,,ME17 4EH,7398569078,E,C,46,73,Maisonette,Detached,2013-06-10,E07000110,E14000804,Kent,2013-06-11,marketed sale,42,73,330,146.0,6.0,64,2.6,83.0,56.0,1016.0,481.0,102.0,69.0,94.0,Unknown,Y,Ground,N,,2107.0,40.0,double glazing installed during or after 2002,Normal,1.0,4.0,4.0,50.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Partial double glazing,Poor,Poor,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 25 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,no corridor,,,0.0,,natural,"97a Heath Road, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2013-06-11 10:50:21,owner-occupied,8.0,4.0,200003730065.0,Address Matched +516068864752010072018475791200872,"15, Oak Tree Close",Marden,,TN12 9EW,8263418768,D,D,62,63,Maisonette,End-Terrace,2010-07-20,E07000110,E14000804,Kent,2010-07-20,marketed sale,54,54,429,427.0,3.3,65,3.3,48.0,32.0,349.0,355.0,129.0,129.0,50.65,dual,Y,Ground,N,2.0,2401.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,50.0,0.0,"Electric immersion, off-peak",Poor,Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,(another dwelling above),,,Electric storage heaters,Poor,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 50% of fixed outlets,Good,Good,electricity - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.34,0.0,N,natural,"15, Oak Tree Close, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1983-1990,2010-07-20 18:47:57,owner-occupied,,,200003709291.0,Address Matched +1461121699602016071014415545560718,"13, Farrier Close",Weavering,,ME14 5SR,8619195478,D,B,56,88,House,Mid-Terrace,2016-07-09,E07000110,E14000700,Kent,2016-07-10,marketed sale,51,88,385,65.0,3.3,68,0.6,59.0,35.0,479.0,330.0,231.0,64.0,48.0,Single,Y,NODATA!,,,2102.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,29.0,0.0,"From main system, no cylinder thermostat",Poor,Poor,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,Low energy lighting in 29% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,2.35,,N,natural,"13, Farrier Close, Weavering",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2016-07-10 14:41:55,owner-occupied,,,200003689085.0,Address Matched +342722978052009081319234309910369,"10, Plantation Lane",Bearsted,,ME14 4BH,3949895668,C,C,71,75,House,Semi-Detached,2009-08-11,E07000110,E14000700,Kent,2009-08-13,marketed sale,66,71,224,195.0,3.5,38,3.0,46.0,46.0,514.0,453.0,109.0,98.0,91.94,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,5.0,5.0,100.0,1.0,Gas multipoint,Average,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.46,0.0,N,natural,"10, Plantation Lane, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2009-08-13 19:23:43,owner-occupied,,,200003691958.0,Address Matched +cf5d250351b1b3d99170eee097b6e9161c253b7ae89127604388a7178cd28809,Flat Above,Chequers Fish Bar,The Parade,TN12 0LA,10001677000,D,C,65,71,Flat,Semi-Detached,2021-08-04,E07000110,E14000804,Kent,2021-08-04,rental,63,70,277,219.0,2.6,49,2.0,47.0,47.0,462.0,369.0,71.0,71.0,52.0,Single,Y,01,Y,,,100.0,"double glazing, unknown install date",Normal,1.0,3.0,3.0,100.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,no corridor,0.0,2.45,0.0,N,natural,"Flat Above, Chequers Fish Bar, The Parade",Maidstone,Maidstone and The Weald,Staplehurst,England and Wales: 1967-1975,2021-08-04 16:10:42,Rented (private),6.0,,10014310628.0,Address Matched +1042964139642013111410261719679348,Flat 11 Thomas Robert Gardens,Church Street,,ME14 1FQ,688736178,B,B,83,83,Flat,NO DATA!,2013-11-14,E07000110,E14000804,Kent,2013-11-14,marketed sale,87,88,86,83.0,1.0,16,1.0,56.0,45.0,225.0,227.0,69.0,68.0,62.0,standard tariff,,ground floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.18 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.26 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Flat 11 Thomas Robert Gardens, Church Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2013-11-14 10:26:17,NO DATA!,0.0,0.0,10014314597.0,Address Matched +1136927619352014050716523399040920,Orchard View,Howland Road,Marden,TN12 9ET,9088992278,D,C,63,77,House,Detached,2014-05-07,E07000110,E14000804,Kent,2014-05-07,marketed sale,59,74,210,120.0,4.3,40,2.5,79.0,60.0,802.0,694.0,105.0,74.0,107.0,Single,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,1.0,6.0,6.0,69.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 69% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"Orchard View, Howland Road, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1930-1949,2014-05-07 16:52:33,owner-occupied,13.0,9.0,200003709887.0,Address Matched +511704903112010071017121698900671,"54, Bicknor Road",,,ME15 9PA,6126387768,D,C,65,76,House,End-Terrace,2010-07-10,E07000110,E14000700,Kent,2010-07-10,rental (private),60,72,278,194.0,3.7,46,2.6,87.0,44.0,568.0,412.0,101.0,101.0,79.42,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.34,0.0,N,natural,"54, Bicknor Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2010-07-10 17:12:16,rental (private),,,200003679877.0,Address Matched +390796950132009103015094603268393,Flat 4 Yalding House,Marigold Way,,ME16 0ZF,5343339668,B,B,84,86,Flat,Semi-Detached,2009-10-28,E07000110,E14000804,Kent,2009-10-30,rental (private),84,86,118,107.0,1.3,19,1.2,77.0,38.0,199.0,203.0,80.0,80.0,69.54,Single,Y,1st,N,3.0,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,0.0,0.0,From main system,Very Good,Very Good,(other premises below),,,Fully double glazed,Good,Good,"System built, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,heated corridor,,,0.0,N,natural,"Flat 4 Yalding House, Marigold Way",Maidstone,Maidstone and The Weald,MAIDSTONE,,2009-10-30 15:09:46,rental (private),,,10022901894.0,Address Matched +60508519602014121915440243449798,"7, Chartwell Drive",,,ME16 0WR,8610614468,D,B,65,85,House,Mid-Terrace,2014-12-11,E07000110,E14000804,Kent,2014-12-19,ECO assessment,54,78,203,73.0,5.4,41,2.2,100.0,73.0,765.0,517.0,180.0,76.0,131.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,6.0,6.0,63.0,1.0,From main system,Average,Average,"Solid, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, coal",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 63% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"7, Chartwell Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2014-12-19 15:44:02,owner-occupied,,,10022901779.0,Address Matched +618928399342018101907014085589038,Flat 15 Block B,Bodiam Court,,ME16 8LZ,5353595868,C,C,76,79,Flat,Mid-Terrace,2018-10-17,E07000110,E14000804,Kent,2018-10-19,marketed sale,77,82,160,127.0,1.7,28,1.3,56.0,56.0,223.0,205.0,154.0,104.0,60.0,Unknown,Y,Ground,N,,2107.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,88.0,0.0,From main system,Good,Good,"Solid, limited insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 88% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,heated corridor,,,,N,natural,"Flat 15 Block B, Bodiam Court",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2018-10-19 07:01:40,owner-occupied,,,200003721130.0,Address Matched +1404605539222016012211483201298156,"23, McKenzie Court",,,ME14 1JU,5045391478,B,B,83,86,Flat,Enclosed Mid-Terrace,2016-01-21,E07000110,E14000804,Kent,2016-01-22,marketed sale,77,80,152,136.0,1.9,26,1.7,121.0,60.0,90.0,82.0,156.0,156.0,73.0,dual,N,3rd,N,,2401.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,0.0,0.0,"Electric immersion, off-peak",Average,Poor,(another dwelling below),NO DATA!,,Fully double glazed,Good,Good,"System built, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,(another dwelling above),,,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,No low energy lighting,Very Poor,Very Poor,electricity (not community),0.0,heated corridor,,,,N,natural,"23, McKenzie Court",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2016-01-22 11:48:32,owner-occupied,,,10014306630.0,Address Matched +1203871269922014091121513037498124,"116f, Boxley Road",Penenden Heath,,ME14 2BD,2375677278,D,C,61,80,House,Detached,2014-09-11,E07000110,E14000804,Kent,2014-09-11,FiT application,54,79,212,91.0,5.5,41,2.4,114.0,71.0,1226.0,816.0,282.0,83.0,134.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,1.0,7.0,6.0,40.0,0.0,"From main system, no cylinder thermostat",Poor,Poor,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 40% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,,natural,"116f, Boxley Road, Penenden Heath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2014-09-11 21:51:30,owner-occupied,15.0,6.0,200003703590.0,Address Matched +814978849262012072015374410608402,"25, Grampian Way",Downswood,,ME15 8TG,148420078,D,B,64,88,House,End-Terrace,2012-07-20,E07000110,E14000700,Kent,2012-07-20,marketed sale,63,90,240,47.0,2.6,46,0.6,33.0,33.0,417.0,325.0,133.0,62.0,56.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,100.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"25, Grampian Way, Downswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2012-07-20 15:37:44,owner-occupied,6.0,6.0,200003691073.0,Address Matched +1823770852022020090723400021238570,"35, Tilling Close",,,ME15 6RW,7283591778,C,B,78,89,House,Semi-Detached,2020-09-07,E07000110,E14000804,Kent,2020-09-07,marketed sale,78,89,125,54.0,2.5,22,1.1,152.0,87.0,375.0,385.0,111.0,67.0,114.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,6.0,6.0,26.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Timber frame, as built, insulated (assumed)",Good,Good,"Room heaters, mains gas",,,"Pitched, 270 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 26% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"35, Tilling Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2020-09-07 23:40:00,owner-occupied,,,10022895701.0,Address Matched +1488267839962016101313414437278596,"8, Godfrey Meadow",Hollingbourne,,ME17 1FZ,9350387478,B,A,85,92,House,Detached,2016-10-13,E07000110,E14000700,Kent,2016-10-13,new dwelling,86,93,77,33.0,2.2,13,0.9,85.0,85.0,398.0,400.0,120.0,66.0,170.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.16 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,"Room heaters, wood logs",,,Average thermal transmittance 0.12 W/m-¦K,Very Good,Very Good,"Boiler and underfloor heating, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"8, Godfrey Meadow, Hollingbourne",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2016-10-13 13:41:44,owner-occupied,10.0,10.0,10091196221.0,Address Matched +923198299062018050520413197048318,"39, Greenside",,,ME15 7RS,1946987078,D,B,68,88,House,Semi-Detached,2018-05-04,E07000110,E14000804,Kent,2018-05-05,rental (private),64,88,227,65.0,3.2,40,1.0,62.0,62.0,568.0,364.0,100.0,68.0,81.0,dual,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"39, Greenside",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2018-05-05 20:41:31,rental (private),,,200003696185.0,Address Matched +1706354593252019031900114094910765,Charleswood,Boxley Road,Walderslade,ME5 9JG,7533343678,C,B,71,83,Bungalow,Detached,2019-03-19,E07000110,E14000700,Kent,2019-03-19,marketed sale,66,79,182,106.0,4.1,32,2.5,112.0,90.0,654.0,596.0,136.0,83.0,129.0,dual,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,75.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"Charleswood, Boxley Road, Walderslade",Maidstone,Faversham and Mid Kent,CHATHAM,England and Wales: 1983-1990,2019-03-19 00:11:40,owner-occupied,,,200003708197.0,Address Matched +517946178852010072415374392200076,"5, Springwood Close",,,ME16 9PA,602828768,D,C,65,77,House,Mid-Terrace,2010-07-24,E07000110,E14000804,Kent,2010-07-24,rental (private),59,74,299,188.0,3.6,50,2.2,45.0,45.0,462.0,346.0,212.0,112.0,71.4,Single,Y,NO DATA!,,,2107.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,80.0,0.0,"From main system, no cylinder thermostat",Poor,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Average,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.3,0.0,N,natural,"5, Springwood Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2010-07-24 15:37:43,rental (private),,,200003726602.0,Address Matched +12378009962017092817434628808903,"5, Tennison Way",,,ME15 9GE,287028468,C,B,78,89,House,Mid-Terrace,2017-05-10,E07000110,E14000700,Kent,2017-09-28,rental (social),78,89,130,55.0,2.2,23,1.0,67.0,67.0,354.0,357.0,120.0,70.0,98.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Very Good,Very Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"5, Tennison Way",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2007 onwards,2017-09-28 17:43:46,rental (social),,,10022895430.0,Address Matched +56119750002009011516051557619448,"50, Duke of York Way",Coxheath,,ME17 4GT,7013056568,B,B,85,85,Flat,Detached,2009-01-14,E07000110,E14000804,Kent,2009-01-15,new dwelling,86,86,115,115.0,1.1,0,1.1,29.0,29.0,219.0,219.0,74.0,74.0,59.72,standard tariff,,ground floor,,,,,NO DATA!,NO DATA!,,,,17.0,,SAP05:Hot-Water,,,Average thermal transmittance 0.20 W/m²K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.20 W/m²K,Very Good,Very Good,SAP05:Secondary-Heating,,,(another dwelling above),,,SAP05:Main-Heating,,,SAP05:Main-Heating-Controls,,,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,,,NO DATA!,"50, Duke of York Way, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2009-01-15 16:05:15,,17.0,17.0,10022900511.0,Address Matched +242208512132019022209315788268809,"113, Bower Street",,,ME16 8BB,1978888568,D,B,58,82,House,Mid-Terrace,2019-02-20,E07000110,E14000804,Kent,2019-02-22,rental (private),52,79,317,120.0,3.7,56,1.5,61.0,61.0,622.0,449.0,125.0,65.0,67.0,Single,Y,NODATA!,,,2106.0,10.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,80.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Some double glazing,Very Poor,Very Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"113, Bower Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2019-02-22 09:31:57,rental (private),,,200003667192.0,Address Matched +1470201559442016081017500141669408,"100, Sandling Lane",Penenden Heath,,ME14 2EB,5447656478,D,B,66,81,Bungalow,Detached,2016-08-10,E07000110,E14000804,Kent,2016-08-10,marketed sale,61,76,236,126.0,3.6,42,2.0,71.0,57.0,626.0,569.0,143.0,84.0,87.0,Single,Y,NODATA!,,,2106.0,90.0,double glazing installed before 2002,Normal,1.0,4.0,4.0,75.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Mostly double glazing,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 270 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,2.48,,N,natural,"100, Sandling Lane, Penenden Heath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2016-08-10 17:50:01,owner-occupied,,,200003726215.0,Address Matched +596777331552011062323560492290481,"13, Brogden Crescent",Leeds,,ME17 1RA,4157124868,C,C,69,69,Bungalow,Semi-Detached,2011-06-23,E07000110,E14000700,Kent,2011-06-23,rental (social),71,71,215,215.0,2.0,41,2.0,30.0,30.0,347.0,347.0,95.0,95.0,49.47,dual,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,2.4,0.0,,natural,"13, Brogden Crescent, Leeds",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2011-06-23 23:56:04,rental (social),5.0,5.0,200003697926.0,Address Matched +1056805639602013120621122615770348,"55, Holtye Crescent",,,ME15 7DD,4642837178,E,C,48,77,House,Semi-Detached,2013-12-04,E07000110,E14000700,Kent,2013-12-06,none of the above,43,74,310,123.0,6.1,60,2.5,75.0,56.0,1034.0,652.0,160.0,73.0,102.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,6.0,5.0,67.0,0.0,From main system,Average,Average,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Average,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 67% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"55, Holtye Crescent",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2013-12-06 21:12:26,owner-occupied,12.0,8.0,200003683883.0,Address Matched +591695845412014062420011197940789,20b Elizabeth House,Alexandra Street,,ME14 2BX,7908573868,D,B,58,82,Flat,Mid-Terrace,2014-06-13,E07000110,E14000804,Kent,2014-06-24,assessment for green deal,46,70,519,269.0,3.2,92,1.7,37.0,27.0,187.0,120.0,430.0,102.0,35.0,dual,N,1st,N,,2601.0,100.0,double glazing installed before 2002,Normal,0.0,1.0,1.0,50.0,0.0,"Electric immersion, off-peak",Poor,Very Poor,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,(another dwelling above),,,"Room heaters, electric",Poor,Very Poor,No thermostatic control of room temperature,Poor,Poor,Low energy lighting in 50% of fixed outlets,Good,Good,electricity (not community),0.0,no corridor,,,0.0,,natural,"20b Elizabeth House, Alexandra Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2014-06-24 20:01:11,rental (private),4.0,2.0,200003704630.0,Address Matched +1341363949142015070921403032750618,"73, Huntington Road",Coxheath,,ME17 4DU,1136647378,D,B,64,83,Bungalow,Detached,2015-07-09,E07000110,E14000804,Kent,2015-07-09,marketed sale,60,81,254,108.0,3.4,45,1.5,101.0,50.0,618.0,504.0,92.0,59.0,76.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,0.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"73, Huntington Road, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2015-07-09 21:40:30,owner-occupied,,,200003715386.0,Address Matched +cfc0b21ed1fdf49ca87685edc3a8a796a194c0eefaabaee287bb87eb4cdc00c8,37 THOMAS PLACE,JAMES WHATMAN WAY,,ME14 1FP,9312358868,B,B,83,83,Flat,Mid-Terrace,2021-07-20,E07000110,E14000804,Kent,2021-08-02,rental,85,85,99,99.0,1.2,17,1.2,66.0,66.0,156.0,156.0,111.0,111.0,70.0,Single,N,06,N,,,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,Community scheme,Good,Good,(another dwelling below),,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Very Good,Very Good,,,,(another dwelling above),,,Community scheme,Good,Good,"Flat rate charging, programmer and room thermostat",Poor,Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (community),0.0,unheated corridor,9.7,2.39,0.0,N,natural,"37 THOMAS PLACE, JAMES WHATMAN WAY",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2012 onwards,2021-08-02 09:16:12,Rented (social),7.0,,10014312703.0,Energy Assessor +1792104757032020032710453979978403,2 Rugmer Hill Cottages,Rugmer,Yalding,ME18 6AY,5379469678,F,D,31,57,House,Semi-Detached,2020-03-12,E07000110,E14000804,Kent,2020-03-27,ECO assessment,2,93,433,234.0,19.0,161,0.7,82.0,83.0,1842.0,1362.0,251.0,92.0,119.0,Single,N,NODATA!,,,2104.0,0.0,not defined,Normal,1.0,5.0,5.0,100.0,0.0,"From main system, no cylinder thermostat",Poor,Very Poor,"Solid, no insulation (assumed)",NO DATA!,,Single glazed,Very Poor,Very Poor,"Timber frame, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, anthracite",Average,Very Poor,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,anthracite,0.0,NO DATA!,,,,N,natural,"2 Rugmer Hill Cottages, Rugmer, Yalding",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2020-03-27 10:45:39,owner-occupied,,,200003726113.0,Address Matched +39974969542018121403032852389278,Flat 1,201 Boxley Road,,ME14 2TL,4560963568,D,D,68,68,Flat,Mid-Terrace,2018-12-13,E07000110,E14000804,Kent,2018-12-14,rental (private),71,71,464,464.0,1.3,82,1.3,17.0,17.0,128.0,128.0,173.0,173.0,16.0,Unknown,Y,Ground,N,,2307.0,100.0,"double glazing, unknown install date",Normal,0.0,1.0,1.0,100.0,0.0,Community scheme,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,(another dwelling above),,,Community scheme,Good,Good,"Flat rate charging, TRVs",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (community),0.0,heated corridor,,,,N,natural,"Flat 1, 201 Boxley Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2018-12-14 03:03:28,rental (private),,,, +226228149222013022815202517738177,"4, Titchfield Close",,,ME15 8TA,7119457568,C,C,77,78,Flat,Enclosed End-Terrace,2013-02-27,E07000110,E14000700,Kent,2013-02-28,rental (social),81,82,133,130.0,1.2,25,1.2,41.0,32.0,240.0,241.0,75.0,75.0,48.0,Single,Y,2nd,Y,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,71.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Good,Good,"System built, with internal insulation",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 71% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,no corridor,,,0.0,,natural,"4, Titchfield Close",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2013-02-28 15:20:25,rental (social),7.0,5.0,200003727388.0,Address Matched +1081668139762014013123403979308244,"18, St. Andrews Park",Tarragon Road,,ME16 0WD,4716319178,C,C,78,80,Flat,Semi-Detached,2014-01-30,E07000110,E14000804,Kent,2014-01-31,marketed sale,78,81,111,96.0,2.4,21,2.1,95.0,68.0,388.0,364.0,133.0,116.0,114.0,Single,Y,2nd,Y,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,60.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Sandstone, with internal insulation",Very Good,Very Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 60% of fixed outlets,Good,Good,mains gas (not community),0.0,unheated corridor,7.5,,0.0,,natural,"18, St. Andrews Park, Tarragon Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2014-01-31 23:40:39,owner-occupied,10.0,6.0,200003654975.0,Address Matched +1188117659922014081121403736498214,"4, Leigh Avenue",,,ME15 9UY,1371566278,D,B,59,83,House,Detached,2014-08-11,E07000110,E14000804,Kent,2014-08-11,marketed sale,53,82,231,80.0,5.5,44,1.9,131.0,74.0,995.0,585.0,157.0,92.0,123.0,dual,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,2.0,5.0,5.0,23.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 23% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"4, Leigh Avenue",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2014-08-11 21:40:37,owner-occupied,22.0,5.0,200003675552.0,Address Matched +1480354829102016091907245042769438,"6, Knowle Road",Penenden Heath,,ME14 2BB,5151827478,D,C,55,78,House,Semi-Detached,2016-09-17,E07000110,E14000804,Kent,2016-09-19,ECO assessment,47,72,290,132.0,6.0,52,2.8,137.0,68.0,1013.0,729.0,195.0,88.0,115.0,Single,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,7.0,7.0,0.0,0.0,"From main system, no cylinder thermostat",Average,Average,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,2.44,,N,natural,"6, Knowle Road, Penenden Heath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2016-09-19 07:24:50,owner-occupied,,,200003701956.0,Address Matched +193711719132019011213340606968405,"56, Fennel Close",,,ME16 0FG,1516484568,C,C,77,79,Flat,End-Terrace,2019-01-11,E07000110,E14000804,Kent,2019-01-12,rental (private),78,81,151,130.0,1.6,27,1.4,49.0,49.0,219.0,209.0,148.0,115.0,61.0,Single,Y,1st,N,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,(another dwelling below),NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,4.59,,,N,natural,"56, Fennel Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2019-01-12 13:34:06,rental (private),,,200003722375.0,Address Matched +497274319852010060914015997000779,"132, Kingfisher Meadow",,,ME16 8RD,7973976768,D,C,65,78,Flat,Enclosed End-Terrace,2010-06-09,E07000110,E14000804,Kent,2010-06-09,rental (private),72,71,259,261.0,2.1,39,2.1,67.0,34.0,288.0,158.0,137.0,137.0,53.0,dual,N,1st,N,5.0,2603.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,0.0,0.0,"Electric immersion, off-peak",Poor,Poor,"To unheated space, insulated (assumed)",,,Fully double glazed,Good,Good,"System built, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Room heaters, electric",Very Poor,Poor,Programmer and appliance thermostats,Good,Good,No low energy lighting,Very Poor,Very Poor,electricity - this is for backwards compatibility only and should not be used,0.0,unheated corridor,6.0,2.26,0.0,N,natural,"132, Kingfisher Meadow",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2010-06-09 14:01:59,rental (private),,,10022892343.0,Address Matched +618944299002011041617490080599068,"78, Bicknor Road",,,ME15 9PA,6093595868,C,C,74,75,House,End-Terrace,2011-04-16,E07000110,E14000700,Kent,2011-04-16,rental (social),71,71,214,208.0,2.6,36,2.5,65.0,39.0,424.0,428.0,96.0,96.0,72.06,Single,Y,NO DATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,3.0,3.0,33.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"System built, with external insulation",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 33% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.41,0.0,N,natural,"78, Bicknor Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2011-04-16 17:49:00,rental (social),,,200003679889.0,Address Matched +581831979062014090819364102588054,"3, Laxton Close",Bearsted,,ME15 8JY,5020792868,D,B,58,91,Bungalow,Detached,2014-09-08,E07000110,E14000700,Kent,2014-09-08,assessment for green deal,48,91,259,29.0,5.0,51,0.7,69.0,69.0,1241.0,475.0,211.0,84.0,99.0,Single,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,6.0,6.0,82.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity and external insulation",Good,Good,"Room heaters, mains gas",,,"Pitched, 12 mm loft insulation",Very Poor,Very Poor,"Boiler and radiators, mains gas",Average,Average,Programmer and room thermostat,Average,Average,Low energy lighting in 82% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,40.0,,natural,"3, Laxton Close, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2014-09-08 19:36:41,owner-occupied,11.0,9.0,200003688504.0,Address Matched +1668737069642018100509332462080878,"10, Beech Court Gardens",,,ME15 6AJ,3667860678,C,B,77,87,House,Detached,2018-10-03,E07000110,E14000804,Kent,2018-10-05,marketed sale,76,85,136,73.0,2.8,24,1.5,100.0,78.0,400.0,403.0,145.0,111.0,116.0,Unknown,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,6.0,6.0,71.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 71% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"10, Beech Court Gardens",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2018-10-05 09:33:24,owner-occupied,,,10022895834.0,Address Matched +671440769902011082615194288992268,Greensyke,Benover Road,Yalding,ME18 6EX,4947569868,D,D,62,65,House,Detached,2011-08-26,E07000110,E14000804,Kent,2011-08-26,marketed sale,56,59,208,192.0,8.7,40,8.0,129.0,79.0,1392.0,1330.0,123.0,112.0,198.4,Unknown,Y,NODATA!,,,2106.0,75.0,double glazing installed before 2002,Normal,1.0,8.0,8.0,37.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Partial double glazing,Poor,Poor,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 37% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,2.3,0.0,,natural,"Greensyke, Benover Road, Yalding",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2011-08-26 15:19:42,owner-occupied,27.0,10.0,, +1349932309342015080420495837850148,"211, Sutton Road",,,ME15 9BJ,2396608378,D,C,64,79,Bungalow,Detached,2015-08-04,E07000110,E14000700,Kent,2015-08-04,marketed sale,56,73,225,128.0,5.9,41,3.4,117.0,85.0,1040.0,835.0,148.0,89.0,144.0,dual,Y,NODATA!,,,2106.0,95.0,double glazing installed before 2002,Normal,1.0,7.0,7.0,62.0,2.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Mostly double glazing,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 62% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"211, Sutton Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2015-08-04 20:49:58,owner-occupied,,,200003713815.0,Address Matched +754642559632016112214371429268896,"48, Egremont Road",Bearsted,,ME15 8LX,5629885968,D,B,58,84,Bungalow,Semi-Detached,2016-11-22,E07000110,E14000700,Kent,2016-11-22,rental (private),55,83,285,91.0,4.2,50,1.4,101.0,56.0,833.0,501.0,104.0,70.0,85.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,20.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 20% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"48, Egremont Road, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2016-11-22 14:37:14,rental (private),,,200003686221.0,Address Matched +456533799802010031810495371309938,Longview Farm,South Street Road,Stockbury,ME9 7QS,2893393768,E,C,54,71,Bungalow,Detached,2010-03-17,E07000110,E14000700,Kent,2010-03-18,marketed sale,46,63,255,169.0,8.2,54,5.4,149.0,80.0,911.0,604.0,273.0,195.0,165.22,Single,N,NO DATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,2.0,7.0,7.0,14.0,0.0,From main system,Average,Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, oil",Average,Poor,Programmer and room thermostat,Average,Average,Low energy lighting in 14% of fixed outlets,Poor,Poor,oil - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.38,0.0,N,natural,"Longview Farm, South Street Road, Stockbury",Maidstone,Faversham and Mid Kent,SITTINGBOURNE,England and Wales: 1983-1990,2010-03-18 10:49:53,owner-occupied,,,200003698540.0,Address Matched +1357096459222015082420554498648755,"34, Langdale Rise",,,ME16 0EU,5943558378,D,B,62,85,House,Detached,2015-08-24,E07000110,E14000804,Kent,2015-08-24,marketed sale,57,82,254,86.0,3.9,45,1.4,83.0,62.0,641.0,465.0,190.0,76.0,87.0,dual,Y,NODATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,1.0,4.0,4.0,67.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 67% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"34, Langdale Rise",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1976-1982,2015-08-24 20:55:44,owner-occupied,,,200003658966.0,Address Matched +620343724212011041923333790990780,"63, Charlton Street",,,ME16 8LB,7008406868,F,E,35,50,House,End-Terrace,2011-04-19,E07000110,E14000804,Kent,2011-04-19,marketed sale,33,46,374,273.0,13.0,71,9.4,111.0,70.0,2221.0,1658.0,102.0,90.0,154.67,Unknown,Y,NODATA!,,,2102.0,100.0,"double glazing, unknown install date",Normal,2.0,8.0,8.0,41.0,0.0,From main system,Good,Good,"To external air, uninsulated (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,Portable electric heaters (assumed),,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,Low energy lighting in 41% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,2.54,0.0,,natural,"63, Charlton Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2011-04-19 23:33:37,owner-occupied,17.0,7.0,200003655456.0,Address Matched +1322868929962015051816504796588085,"18, Tichborne Close",,,ME16 0RY,8964216378,D,B,57,81,Bungalow,Semi-Detached,2015-05-18,E07000110,E14000804,Kent,2015-05-18,marketed sale,52,78,330,122.0,3.6,58,1.4,77.0,41.0,560.0,482.0,202.0,67.0,62.0,Single,Y,NODATA!,,,2107.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,14.0,1.0,"From main system, no cylinder thermostat",Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 14% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"18, Tichborne Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2015-05-18 16:50:47,owner-occupied,,,200003727349.0,Address Matched +d0bf681819b020fb92ce5881eb83ff07a51f7ba291c70e8e404891b8f0cf81eb,30 Gilbert Way,,,ME17 3TT,10001470093,B,A,84,95,House,End-Terrace,2021-09-20,E07000110,E14000700,Kent,2021-09-20,new dwelling,86,97,89,6.0,1.3,16,0.1,75.0,75.0,222.0,222.0,69.0,42.0,83.0,standard tariff,,,N,,,100.0,,,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.33,,,,30 Gilbert Way,Maidstone,Faversham and Mid Kent,MAIDSTONE,2017,2021-09-20 15:41:46,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,8.0,,10094441886.0,Energy Assessor +610702529402011040421094888597398,45 Hawley Court,London Road,,ME16 8QJ,5429925868,D,D,57,62,Flat,Semi-Detached,2011-03-31,E07000110,E14000804,Kent,2011-04-04,rental (social),50,55,356,313.0,4.7,60,4.1,67.0,45.0,727.0,665.0,155.0,133.0,79.01,Single,Y,7th,Y,8.0,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,50.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"System built, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Flat, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,unheated corridor,3.3,2.35,0.0,N,natural,"45 Hawley Court, London Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2011-04-04 21:09:48,rental (social),,,200003668480.0,Address Matched +982077274052015041619264890950813,"13, Thatcher Road",Staplehurst,,TN12 0ND,8343402178,D,B,68,86,House,Mid-Terrace,2015-04-16,E07000110,E14000804,Kent,2015-04-16,rental (private),65,85,221,78.0,2.9,39,1.0,85.0,48.0,512.0,413.0,100.0,66.0,73.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,22.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 22% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"13, Thatcher Road, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1950-1966,2015-04-16 19:26:48,rental (private),,,200003678204.0,Address Matched +1121809659062014040909575751038304,The Garage Apartment,"Ladds Court Barn, Chart Hill Road",Chart Sutton,ME17 3EZ,543591278,D,C,68,71,Flat,Detached,2014-04-07,E07000110,E14000700,Kent,2014-04-09,marketed sale,79,81,170,150.0,1.1,37,1.0,43.0,25.0,235.0,242.0,181.0,149.0,31.0,Single,N,1st,Y,,2106.0,100.0,double glazing installed during or after 2002,Less Than Typical,0.0,1.0,1.0,33.0,0.0,From main system,Very Poor,Good,"To unheated space, insulated (assumed)",,,Fully double glazed,Good,Good,"System built, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, LPG",Poor,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 33% of fixed outlets,Average,Average,bottled LPG,0.0,unheated corridor,4.2,,0.0,,natural,"The Garage Apartment, Ladds Court Barn, Chart Hill Road, Chart Sutton",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2007 onwards,2014-04-09 09:57:57,owner-occupied,3.0,1.0,200003655154.0,Address Matched +298064782512019110616115498019468,"33, St. Andrews Park",Tarragon Road,,ME16 0WD,4843282668,D,C,66,76,Flat,End-Terrace,2019-11-05,E07000110,E14000804,Kent,2019-11-06,rental (private),62,76,238,150.0,3.1,42,2.0,60.0,60.0,498.0,315.0,142.0,114.0,75.0,Unknown,Y,Ground,N,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Sandstone or limestone, as built, no insulation (assumed)",Poor,Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,11.63,,,N,natural,"33, St. Andrews Park, Tarragon Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2019-11-06 16:11:54,rental (private),,,200003654990.0,Address Matched +480949549062010050607112315568720,"15, Waterside Mews",Wateringbury,,ME18 5AB,2128465768,D,C,61,73,House,Detached,2010-05-06,E07000110,E14000804,Kent,2010-05-06,marketed sale,55,68,325,229.0,3.9,54,2.7,74.0,37.0,544.0,426.0,148.0,105.0,71.8,Single,Y,NO DATA!,,,2104.0,95.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,0.0,0.0,From main system,Average,Good,"Solid, no insulation (assumed)",,,Mostly double glazing,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, mains gas",,,"Pitched, insulated (assumed)",Average,Average,"Boiler and radiators, mains gas",Average,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.3,0.0,N,natural,"15, Waterside Mews, Wateringbury",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2010-05-06 07:11:23,owner-occupied,,,200003658685.0,Address Matched +597144819842011022412211188492348,"62, Leonard Gould Way",Loose,,ME15 9FX,9854914868,B,B,84,84,House,Semi-Detached,2011-02-24,E07000110,E14000700,Kent,2011-02-24,new dwelling,84,84,109,106.0,1.7,18,1.7,65.0,52.0,276.0,277.0,112.0,112.0,95.04,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,,From main system,Very Good,Very Good,Average thermal transmittance 0.12 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m?K,Very Good,Very Good,"Room heaters, electric",,,Average thermal transmittance 0.10 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Very Good,Very Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.45,,,NO DATA!,"62, Leonard Gould Way, Loose",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2011-02-24 12:21:11,,,,10014311179.0,Address Matched +1384629844632016042716092294278100,Flat 110,Miller House,43-51 Lower Stone Street,ME15 6GB,4014150478,C,C,78,78,Flat,NO DATA!,2016-04-27,E07000110,E14000804,Kent,2016-04-27,none of the above,68,68,243,243.0,2.2,41,2.2,39.0,39.0,240.0,240.0,153.0,153.0,53.0,off-peak 10 hour,,mid floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Poor,Poor,(other premises below),,,Fully double glazed,Good,Good,Average thermal transmittance 0.68 W/m-¦K,Average,Average,,,,(other premises above),,,"Boiler and radiators, electric",Poor,Very Poor,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"Flat 110, Miller House, 43-51 Lower Stone Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2016-04-27 16:09:22,unknown,4.0,4.0,10091196207.0,Address Matched +d00827ecc74a1714d5362a7172fb0fbcb82418eee5c9947db6538659d24adbdc,62 Grace Avenue,,,ME16 0BU,10001568825,D,C,65,78,House,Semi-Detached,2021-09-28,E07000110,E14000804,Kent,2021-09-29,marketed sale,59,72,215,132.0,4.3,38,2.7,112.0,85.0,718.0,655.0,89.0,61.0,114.0,Unknown,Y,,,,,100.0,"double glazing, unknown install date",Normal,2.0,6.0,6.0,69.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,"Room heaters, mains gas",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 69% of fixed outlets,Good,Good,mains gas (not community),0.0,,,2.44,0.0,N,natural,62 Grace Avenue,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2021-09-29 15:18:22,Owner-occupied,16.0,,200003658535.0,Energy Assessor +1327275649742015060115445834650698,"16, Brooklands",Headcorn,,TN27 9QS,3783546378,D,C,59,73,House,Detached,2015-06-01,E07000110,E14000700,Kent,2015-06-01,marketed sale,52,66,268,172.0,4.6,49,3.1,73.0,58.0,822.0,775.0,134.0,83.0,94.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,75.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"16, Brooklands, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,England and Wales: 1950-1966,2015-06-01 15:44:58,owner-occupied,,,200003699671.0,Address Matched +d011a05abb488f1136c7431eebfe4dc8b3ae1a004310190f1d2b52e46550f730,FLAT 8,SHERINGHAM HOUSE,OWLETTS CLOSE,ME15 7TP,10001649271,E,C,54,71,Flat,Semi-Detached,2021-06-29,E07000110,E14000700,Kent,2021-07-01,ECO assessment,53,75,413,222.0,2.9,72,1.6,75.0,38.0,569.0,334.0,86.0,71.0,40.0,Single,Y,01,Y,,,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,0.0,0.0,From main system,Good,Good,(another dwelling below),,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Average,Average,"Room heaters, electric",,,"Pitched, insulated (assumed)",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,unheated corridor,8.5,2.85,0.0,N,natural,"FLAT 8, SHERINGHAM HOUSE, OWLETTS CLOSE",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2021-07-01 17:30:41,Rented (social),5.0,,200003714115.0,Energy Assessor +689373699742012121714110893029038,"39, Hawkes Way",,,ME15 9ZL,7788090968,B,B,86,87,House,Mid-Terrace,2012-12-17,E07000110,E14000700,Kent,2012-12-17,new dwelling,90,90,60,57.0,1.1,11,1.0,68.0,54.0,214.0,215.0,47.0,47.0,94.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,"From main system, plus solar",Very Good,Very Good,Average thermal transmittance 0.15 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.14 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"39, Hawkes Way",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2012-12-17 14:11:08,NO DATA!,12.0,9.0,10014312525.0,Address Matched +135272636412019061312105199910740,Flat 145 Scotney Gardens,St. Peters Street,,ME16 0GT,7090699468,B,B,86,88,Flat,Mid-Terrace,2019-06-13,E07000110,E14000804,Kent,2019-06-13,marketed sale,79,82,137,119.0,1.7,23,1.4,99.0,66.0,73.0,79.0,176.0,149.0,72.0,Unknown,N,3rd,N,,2402.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,50.0,0.0,"Electric immersion, off-peak",Average,Poor,(another dwelling below),NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,(another dwelling above),,,Electric storage heaters,Average,Very Poor,Automatic charge control,Average,Average,Low energy lighting in 50% of fixed outlets,Good,Good,electricity (not community),0.0,heated corridor,,,,N,natural,"Flat 145 Scotney Gardens, St. Peters Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2019-06-13 12:10:51,owner-occupied,,,10022893512.0,Address Matched +1409082363552016020214542692060748,"5, Bray Gardens",Loose,,ME15 9TR,7890322478,D,B,68,85,House,Detached,2016-02-02,E07000110,E14000804,Kent,2016-02-02,rental (private),63,83,216,91.0,3.9,38,1.7,65.0,65.0,734.0,522.0,114.0,76.0,104.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, partial insulation (assumed)",Average,Average,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"5, Bray Gardens, Loose",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1976-1982,2016-02-02 14:54:26,rental (private),,,200003664101.0,Address Matched +1645382459152018070316162799080658,"175, Tonbridge Road",,,ME16 8NA,6853998578,E,C,54,79,House,Mid-Terrace,2018-07-03,E07000110,E14000804,Kent,2018-07-03,rental (private),46,75,335,133.0,5.0,59,2.0,74.0,74.0,866.0,533.0,111.0,75.0,85.0,Single,Y,NODATA!,,,2102.0,100.0,"double glazing, unknown install date",Normal,2.0,5.0,5.0,78.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,Low energy lighting in 78% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"175, Tonbridge Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2018-07-03 16:16:27,rental (private),,,200003657446.0,Address Matched +52971589652009051112282808910042,"4, Fordwich Close",,,ME16 0NU,290983468,E,C,51,78,House,Semi-Detached,2009-05-11,E07000110,E14000804,Kent,2009-05-11,marketed sale,44,75,399,172.0,5.6,66,2.4,60.0,40.0,666.0,330.0,222.0,103.0,84.36,Single,Y,NO DATA!,,,2103.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,50.0,0.0,"From main system, no cylinderstat",Poor,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 75mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Average,Good,Room thermostat only,Poor,Poor,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,0.0,N,natural,"4, Fordwich Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2009-05-11 12:28:28,owner-occupied,,,200003706949.0,Address Matched +164852639262013032015160492708227,Stable Cottage,Church Square,Lenham,ME17 2PJ,2942362568,E,C,54,71,House,Mid-Terrace,2013-03-20,E07000110,E14000700,Kent,2013-03-20,marketed sale,49,67,270,159.0,5.4,52,3.3,109.0,55.0,894.0,768.0,110.0,71.0,104.0,Single,Y,NODATA!,,,2104.0,5.0,double glazing installed during or after 2002,More Than Typical,0.0,4.0,4.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Some double glazing,Very Poor,Very Poor,"Solid brick, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"Stable Cottage, Church Square, Lenham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2013-03-20 15:16:04,owner-occupied,10.0,0.0,200003712530.0,Address Matched +351042426712009090309242905010361,"31, Tarragon Road",,,ME16 0UR,3135656668,C,B,78,81,House,Mid-Terrace,2009-09-02,E07000110,E14000804,Kent,2009-09-03,marketed sale,76,79,161,139.0,2.4,27,2.1,72.0,48.0,319.0,299.0,125.0,109.0,89.81,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,50.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.64,0.0,N,natural,"31, Tarragon Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2009-09-03 09:24:29,owner-occupied,,,200003726885.0,Address Matched +1677953659062019100912105561918338,Flat 308,Kent House,Romney Place,ME15 6LA,3616531678,D,D,65,65,Flat,Detached,2018-11-09,E07000110,E14000804,Kent,2019-10-09,non marketed sale,69,69,196,196.0,2.6,33,2.6,61.0,61.0,511.0,511.0,314.0,314.0,79.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,"Electric immersion, standard tariff",Very Poor,Poor,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.29 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,Electric underfloor heating,Very Poor,Poor,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"Flat 308, Kent House, Romney Place",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2019-10-09 12:10:55,unknown,21.0,21.0,, +1228275059222014102916204769188474,"125, Heath Road",,,ME16 9JT,7667549278,E,C,49,72,House,Detached,2014-10-28,E07000110,E14000804,Kent,2014-10-29,none of the above,53,76,297,149.0,5.0,46,2.4,120.0,62.0,1187.0,850.0,136.0,92.0,108.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,6.0,6.0,8.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, wood logs",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 8% of fixed outlets,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"125, Heath Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2014-10-29 16:20:47,owner-occupied,12.0,1.0,200003723500.0,Address Matched +1689065779022019010822181972238581,"19, Fairhurst Drive",East Farleigh,,ME15 0DF,8745712678,C,B,73,87,House,Detached,2019-01-07,E07000110,E14000804,Kent,2019-01-08,marketed sale,71,86,178,77.0,2.8,31,1.2,73.0,73.0,429.0,385.0,132.0,79.0,88.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,7.0,7.0,87.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 87% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"19, Fairhurst Drive, East Farleigh",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1991-1995,2019-01-08 22:18:19,owner-occupied,,,200003671250.0,Address Matched +1402729979962016030710103671048136,"139, Bower Street",,,ME16 8BB,3749771478,E,C,50,79,House,Mid-Terrace,2016-01-14,E07000110,E14000804,Kent,2016-03-07,marketed sale,46,77,359,126.0,4.5,63,1.6,91.0,48.0,815.0,559.0,181.0,72.0,71.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,1.0,4.0,4.0,13.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, electric",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 13% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"139, Bower Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2016-03-07 10:10:36,owner-occupied,,,200003667205.0,Address Matched +195760010702009051914032350580828,"107, Westmorland Road",,,ME15 8JB,1745415568,C,C,77,77,House,Mid-Terrace,2008-12-02,E07000110,E14000700,Kent,2009-05-19,rental (social),74,74,183,183.0,2.5,30,2.5,47.0,47.0,354.0,354.0,87.0,87.0,81.71,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,80.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"System built, with internal insulation",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.41,0.0,N,natural,"107, Westmorland Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2009-05-19 14:03:23,rental (social),,,200003680605.0,Address Matched +1384494119222016042716085900538216,Flat 92,Miller House,43-51 Lower Stone Street,ME15 6GB,1093150478,C,C,70,70,Flat,NO DATA!,2016-04-27,E07000110,E14000804,Kent,2016-04-27,none of the above,57,57,568,568.0,2.0,96,2.0,20.0,20.0,249.0,249.0,126.0,126.0,21.0,off-peak 10 hour,,mid floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Poor,Poor,(other premises below),,,Fully double glazed,Good,Good,Average thermal transmittance 0.86 W/m-¦K,Average,Average,,,,(other premises above),,,"Boiler and radiators, electric",Poor,Very Poor,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"Flat 92, Miller House, 43-51 Lower Stone Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2016-04-27 16:08:59,unknown,4.0,4.0,10091196189.0,Address Matched +587682169062011020214094093328229,"25, Regent Drive",,,ME15 6DF,2935643868,E,D,54,68,House,Semi-Detached,2011-02-02,E07000110,E14000804,Kent,2011-02-02,marketed sale,48,62,358,256.0,5.3,59,3.8,96.0,48.0,842.0,631.0,122.0,106.0,88.48,Single,Y,NO DATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,1.0,6.0,6.0,0.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.3,0.0,N,natural,"25, Regent Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2011-02-02 14:09:40,owner-occupied,,,200003676589.0,Address Matched +d04044695e4a63b85f313be9751581438b05943f1e945b2a008f7185852c806c,MARSHALLS PLACE,AMBER LANE,CHART SUTTON,ME17 3SE,4843722768,D,B,56,81,House,Detached,2021-07-28,E07000110,E14000700,Kent,2021-07-30,marketed sale,45,75,276,114.0,12.5,49,5.2,164.0,167.0,2169.0,1016.0,148.0,148.0,256.0,dual,Y,,,,,40.0,secondary glazing,Normal,3.0,9.0,9.0,86.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Partial secondary glazing,Poor,Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Roof room(s), ceiling insulated",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 86% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.02,0.0,N,natural,"MARSHALLS PLACE, AMBER LANE, CHART SUTTON",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2021-07-30 08:02:19,Owner-occupied,28.0,,200003720635.0,Energy Assessor +92621429062018040414150186748828,Flat 36,Lee Heights,Bambridge Court,ME14 2LG,2816256468,C,B,75,86,Flat,Enclosed End-Terrace,2018-04-04,E07000110,E14000804,Kent,2018-04-04,rental,78,77,142,146.0,1.9,24,2.0,61.0,68.0,209.0,113.0,319.0,158.0,79.0,Unknown,N,2nd,N,,2603.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,"Electric immersion, standard tariff",Very Poor,Poor,(another dwelling below),NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Room heaters, electric",Very Poor,Poor,Programmer and appliance thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,unheated corridor,8.93,,,N,natural,"Flat 36, Lee Heights, Bambridge Court",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2018-04-04 14:15:01,owner-occupied,,,10022893007.0,Address Matched +1403620989242017060116592448137598,"30, Lacock Gardens",,,ME15 6GJ,3201681478,C,B,69,89,House,Mid-Terrace,2017-05-31,E07000110,E14000804,Kent,2017-06-01,marketed sale,68,90,222,57.0,2.5,39,0.7,76.0,47.0,340.0,325.0,188.0,68.0,63.0,Single,Y,NODATA!,,,2111.0,100.0,double glazing installed during or after 2002,Normal,1.0,4.0,4.0,40.0,0.0,"From main system, no cylinder thermostat",Average,Average,"Solid, limited insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,TRVs and bypass,Average,Average,Low energy lighting in 40% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"30, Lacock Gardens",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2017-06-01 16:59:24,owner-occupied,,,10034134515.0,Address Matched +833851528112012091113441595920006,Bunkers Hill Cottage,Warren Street,Lenham,ME17 2EG,617851078,F,B,36,83,House,Detached,2012-09-11,E07000110,E14000700,Kent,2012-09-11,rental (private),20,63,653,212.0,10.0,106,3.3,105.0,56.0,1141.0,493.0,249.0,132.0,96.0,dual,N,NODATA!,,,2401.0,40.0,secondary glazing,Normal,0.0,5.0,5.0,10.0,0.0,"Electric immersion, off-peak",Very Poor,Very Poor,"Solid, no insulation (assumed)",,,Partial secondary glazing,Poor,Poor,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, wood logs",,,"Pitched, 150 mm loft insulation",Good,Good,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 10% of fixed outlets,Poor,Poor,electricity (not community),0.0,NO DATA!,,,0.0,,natural,"Bunkers Hill Cottage, Warren Street, Lenham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2012-09-11 13:44:15,rental (private),10.0,1.0,10014309474.0,Address Matched +d056056c11f77f30c6ae13d7974f3ef7a1af889f7414120af48d3e17e89bea24,1 Byron Road,Penenden Heath,,ME14 2HA,10001332407,D,C,62,76,Maisonette,Semi-Detached,2021-09-10,E07000110,E14000804,Kent,2021-09-10,marketed sale,58,77,282,150.0,3.3,50,1.8,99.0,59.0,566.0,316.0,73.0,73.0,67.0,Single,Y,01,N,,,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,33.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, mains gas",,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 33% of fixed outlets,Average,Average,mains gas (not community),0.0,no corridor,,2.38,0.0,N,natural,"1 Byron Road, Penenden Heath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2021-09-10 17:21:40,Owner-occupied,6.0,,200003706670.0,Energy Assessor +1667804569702018102916560763082218,Flat 85,Brenchley House,123-135 Week Street,ME14 1FY,5707160678,C,C,75,75,Flat,Mid-Terrace,2018-10-29,E07000110,E14000700,Kent,2018-10-29,new dwelling,82,82,206,206.0,0.9,36,0.9,22.0,22.0,156.0,156.0,92.0,92.0,24.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,Community scheme,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.30 W/m-¦K,Good,Good,,,,(other premises above),,,Community scheme,Good,Good,"Charging system linked to use of community heating, programmer and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,NO DATA!,,NO DATA!,,,,,NO DATA!,"Flat 85, Brenchley House, 123-135 Week Street",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2018-10-29 16:56:07,unknown,6.0,6.0,10094440761.0,Address Matched +1297516604352015031915543493950137,"7, Westree Court",,,ME16 8FU,1796434378,B,B,89,89,Flat,NO DATA!,2015-03-19,E07000110,E14000804,Kent,2015-03-19,new dwelling,93,93,42,42.0,0.7,8,0.7,50.0,50.0,213.0,213.0,80.0,80.0,80.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.19 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"7, Westree Court",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2015-03-19 15:54:34,unknown,25.0,25.0,10014315985.0,Address Matched +1686498379262018122411301321278888,41 Bridgeside Mews,,,ME15 6TB,8294791678,B,A,83,94,House,End-Terrace,2018-12-23,E07000110,E14000804,Kent,2018-12-24,new dwelling,85,96,91,15.0,1.5,16,0.3,68.0,68.0,231.0,231.0,90.0,58.0,92.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.11 W/m+é-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.18 W/m+é-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.14 W/m+é-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,41 Bridgeside Mews,Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2018-12-24 11:30:13,unknown,14.0,14.0,10094441635.0,Address Matched +577182198952011010417064795090880,"12, Buckland Gardens",,,ME16 0ZB,8033852868,B,B,89,91,Flat,NO DATA!,2011-01-04,E07000110,E14000804,Kent,2011-01-04,new dwelling,90,90,91,85.0,0.8,14,0.7,51.0,34.0,165.0,167.0,78.0,78.0,54.5,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,7.0,,From main system,Very Good,Very Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m?K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.85,,,NO DATA!,"12, Buckland Gardens",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2011-01-04 17:06:47,,14.0,7.0,10014308668.0,Address Matched +794537429152012060615590297020698,"54, Glebe Lane",,,ME16 9BD,6853978968,C,C,69,79,House,Semi-Detached,2012-06-05,E07000110,E14000804,Kent,2012-06-06,none of the above,65,79,190,108.0,2.8,37,1.6,42.0,42.0,619.0,437.0,80.0,58.0,74.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,100.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,,natural,"54, Glebe Lane",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2012-06-06 15:59:02,unknown,15.0,15.0,200003664407.0,Address Matched +1680647077752019120209030495019064,14 Braeburn Way,Coxheath,,ME17 4FU,440751678,B,A,83,94,House,Detached,2019-12-02,E07000110,E14000804,Kent,2019-12-02,new dwelling,84,95,93,20.0,1.5,16,0.4,68.0,68.0,263.0,263.0,75.0,45.0,95.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.14 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.10 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"14 Braeburn Way, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2019-12-02 09:03:04,unknown,20.0,20.0,10094440218.0,Address Matched +655458359002011101417093983899348,23 Thomas Place,James Whatman Way,,ME14 1FP,8091358868,C,B,80,81,Flat,Mid-Terrace,2011-10-14,E07000110,E14000804,Kent,2011-10-14,new dwelling,90,90,96,93.0,0.8,13,0.8,47.0,37.0,200.0,201.0,102.0,102.0,63.9,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,5.0,,"Community scheme, no cylinder thermostat",Good,Very Good,(other premises below),,,Fully double glazed,Good,Good,Average thermal transmittance 0.29 W/m?K,Very Good,Very Good,,,,(other premises above),,,Community scheme,Good,Very Good,"Flat rate charging, programmer and TRVs",Average,Average,Low energy lighting in 71% of fixed outlets,Very Good,Very Good,NO DATA!,0.0,NO DATA!,,2.4,,,NO DATA!,"23 Thomas Place, James Whatman Way",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2011-10-14 17:09:39,,7.0,5.0,10014312689.0,Address Matched +d091c85aef672149c500bd0d22f1f21db8d454f05820a8ad0c790cfb040a1c04,3 Fiji Terrace,Invicta Park,,ME14 2NZ,10001500727,C,B,69,86,House,Mid-Terrace,2021-08-24,E07000110,E14000804,Kent,2021-08-24,Stock condition survey,65,85,212,79.0,3.0,37,1.2,74.0,74.0,526.0,407.0,82.0,56.0,81.0,dual,Y,,,,,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Average,Average,,,,"Flat, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.28,0.0,N,natural,"3 Fiji Terrace, Invicta Park",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2021-08-24 15:20:25,Rented (social),12.0,,200003723944.0,Energy Assessor +971108463732013071307380151978606,"8, Blunden Lane",Yalding,,ME18 6JH,6651621178,E,C,52,74,House,Semi-Detached,2013-07-12,E07000110,E14000804,Kent,2013-07-13,marketed sale,47,70,266,136.0,6.7,51,3.5,118.0,65.0,1133.0,828.0,142.0,79.0,131.0,Single,Y,NODATA!,,,2106.0,80.0,double glazing installed during or after 2002,Normal,3.0,7.0,7.0,18.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Mostly double glazing,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 18% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"8, Blunden Lane, Yalding",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2013-07-13 07:38:01,owner-occupied,22.0,4.0,200003661515.0,Address Matched +678634689112011091619474491990292,"20, Buckland Hill",,,ME16 0SG,2273910968,F,F,30,33,House,Semi-Detached,2011-09-16,E07000110,E14000804,Kent,2011-09-16,marketed sale,30,32,398,378.0,15.0,75,14.0,133.0,71.0,2375.0,2293.0,283.0,283.0,193.34,Single,Y,NODATA!,,,2601.0,0.0,not defined,Normal,0.0,8.0,4.0,13.0,0.0,"Electric immersion, standard tariff",Very Poor,Very Poor,"Suspended, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,Portable electric heaters (assumed),,,"Pitched, 25 mm loft insulation",Poor,Poor,"Room heaters, mains gas",Average,Average,No thermostatic control of room temperature,Poor,Poor,Low energy lighting in 13% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,2.43,0.0,,natural,"20, Buckland Hill",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2011-09-16 19:47:44,owner-occupied,15.0,2.0,200003670135.0,Address Matched +1819794962702020082022080373102508,"21, Alkham Road",,,ME14 5PA,9765661778,C,C,77,78,Maisonette,Mid-Terrace,2020-08-20,E07000110,E14000804,Kent,2020-08-20,non marketed sale,79,81,154,141.0,1.5,27,1.4,48.0,48.0,275.0,251.0,82.0,82.0,55.0,Single,Y,Ground,N,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Average,Average,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,no corridor,,,,N,natural,"21, Alkham Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2020-08-20 22:08:03,owner-occupied,,,200003716218.0,Address Matched +597140211512016031107523292060987,"18, Captains Close",Sutton Valence,,ME17 3BA,9781124868,C,A,71,106,House,Mid-Terrace,2016-03-08,E07000110,E14000700,Kent,2016-03-11,rental (social),68,102,196,-33.0,3.1,34,-0.4,77.0,59.0,535.0,466.0,146.0,86.0,91.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,70.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 70% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"18, Captains Close, Sutton Valence",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2016-03-11 07:52:32,rental (social),,,200003696243.0,Address Matched +141459479702019072610030456012358,Flat 23 Block E,Lindisfarne Gardens,,ME16 8NF,6720570568,C,C,71,76,Flat,Enclosed End-Terrace,2019-07-25,E07000110,E14000804,Kent,2019-07-26,rental (private),73,79,190,147.0,2.0,33,1.5,80.0,58.0,325.0,282.0,136.0,103.0,60.0,dual,Y,2nd,Y,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,63.0,0.0,From main system,Good,Good,(another dwelling below),NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 63% of fixed outlets,Good,Good,mains gas (not community),0.0,heated corridor,,,,N,natural,"Flat 23 Block E, Lindisfarne Gardens",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2019-07-26 10:03:04,rental (private),,,200003724439.0,Address Matched +521605313852010080215122895000575,"8, Greenhill",Staplehurst,,TN12 0SU,5593358768,D,C,64,69,House,Detached,2010-08-02,E07000110,E14000804,Kent,2010-08-02,marketed sale,59,64,269,238.0,4.2,45,3.7,89.0,53.0,614.0,577.0,142.0,121.0,94.2,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,6.0,6.0,33.0,0.0,From main system,Good,Good,"Solid, limited insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, mains gas",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 33% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.3,0.0,N,natural,"8, Greenhill, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1996-2002,2010-08-02 15:12:28,owner-occupied,,,200003723116.0,Address Matched +7283739342013072316414141772278,"2, Lubbock Close",,,ME15 9ES,7368337468,D,B,64,83,House,End-Terrace,2013-07-23,E07000110,E14000700,Kent,2013-07-23,marketed sale,62,83,221,83.0,3.2,43,1.3,49.0,49.0,545.0,435.0,131.0,71.0,75.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,4.0,4.0,90.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 90% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"2, Lubbock Close",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2013-07-23 16:41:41,owner-occupied,10.0,9.0,200003681470.0,Address Matched +1523557206052017030122311293030253,"9, Avery Close",,,ME15 6SQ,2313630578,C,B,71,87,House,Semi-Detached,2017-03-01,E07000110,E14000804,Kent,2017-03-01,rental (private),71,86,205,79.0,2.3,36,0.9,64.0,44.0,424.0,396.0,79.0,48.0,64.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,57.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 57% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"9, Avery Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2017-03-01 22:31:12,rental (private),,,200003664828.0,Address Matched +92342387312015041914553898950648,"15, Bankfields",Headcorn,,TN27 9QY,6866786468,B,B,81,84,House,Semi-Detached,2015-04-18,E07000110,E14000700,Kent,2015-04-19,FiT application,78,83,119,92.0,1.7,21,1.3,52.0,52.0,448.0,410.0,104.0,69.0,81.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"15, Bankfields, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,England and Wales: 1950-1966,2015-04-19 14:55:38,owner-occupied,,,200003699692.0,Address Matched +291553555132009052622154154268907,"12, Blunden Lane",Yalding,,ME18 6JH,5744932668,E,E,44,45,House,Semi-Detached,2009-05-26,E07000110,E14000804,Kent,2009-05-26,non marketed sale,49,49,381,377.0,4.8,62,4.8,62.0,37.0,649.0,657.0,267.0,267.0,89.86,Single,Y,NO DATA!,,,2602.0,55.0,double glazing installed during or after 2002,Normal,0.0,4.0,1.0,33.0,0.0,"Electric immersion, standard tariff",Very Poor,Poor,"Solid, no insulation (assumed)",,,Partial double glazing,Average,Average,"Cavity wall, as built, partial insulation (assumed)",Average,Average,"Room heaters, electric",,,"Pitched, 250 mm loft insulation",Good,Good,"Room heaters, mains gas",Average,Average,Appliance thermostats,Good,Good,Low energy lighting in 33% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.36,0.0,N,natural,"12, Blunden Lane, Yalding",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1976-1982,2009-05-26 22:15:41,owner-occupied,,,200003661508.0,Address Matched +d0b9608f5a874e151f043c5e8e119a5537feda77ad8a12c9f2814b3d1c64370d,49 St. Catherines Road,,,ME15 9WP,10001589569,C,B,79,89,House,Detached,2021-08-13,E07000110,E14000700,Kent,2021-08-13,marketed sale,80,89,125,57.0,1.9,22,0.9,74.0,74.0,347.0,347.0,58.0,58.0,85.0,Single,Y,,,,,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,100.0,0.0,"From main system, plus solar",Very Good,Very Good,"Suspended, insulated (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.37,0.0,Y,natural,49 St. Catherines Road,Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2007-2011,2021-08-13 11:07:37,Owner-occupied,13.0,,10014311711.0,Energy Assessor +1642012445552018062011525397280551,"6, Parchment Close",,,ME14 5GB,5149578578,B,A,85,95,House,End-Terrace,2018-06-20,E07000110,E14000700,Kent,2018-06-20,new dwelling,86,96,79,13.0,1.5,14,0.3,72.0,72.0,242.0,242.0,79.0,46.0,106.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.18 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.28 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.19 W/m-¦K,Good,Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"6, Parchment Close",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2018-06-20 11:52:53,owner-occupied,13.0,13.0,10093305849.0,Address Matched +d0c9aca2b7e6ec71346e1bd7cdcd64386b47ab93fa224c703f8d01e61d367e0a,1a Hamilton House,Hollingworth Road,,ME15 9HH,2712771768,C,C,78,79,Flat,Detached,2021-08-13,E07000110,E14000700,Kent,2021-08-13,rental,81,82,143,135.0,1.4,25,1.3,84.0,50.0,222.0,226.0,84.0,84.0,54.0,Single,Y,01,N,,,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,33.0,0.0,From main system,Good,Good,(another dwelling below),,,Fully double glazed,Average,Average,"System built, with external insulation",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 33% of fixed outlets,Average,Average,mains gas (not community),0.0,unheated corridor,8.18,2.3,0.0,N,natural,"1a Hamilton House, Hollingworth Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1991-1995,2021-08-13 14:21:05,Rented (social),6.0,,200003683518.0,Energy Assessor +227630177512009021311421206910353,"19, Oak Lane",Headcorn,,TN27 9TR,3305767568,C,C,74,76,House,Semi-Detached,2009-02-11,E07000110,E14000700,Kent,2009-02-13,rental (social),72,73,197,190.0,2.7,33,2.6,69.0,39.0,355.0,360.0,102.0,102.0,82.0,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,25.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 25% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.3,0.0,N,natural,"19, Oak Lane, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,England and Wales: 1950-1966,2009-02-13 11:42:12,rental (social),,,200003699483.0,Address Matched +1377543229652015110506353099059931,"78, Camp Way",,,ME15 9BB,9187999378,D,C,65,79,House,Mid-Terrace,2015-11-05,E07000110,E14000700,Kent,2015-11-05,marketed sale,62,74,248,153.0,3.4,44,2.1,84.0,56.0,618.0,621.0,103.0,68.0,77.0,dual,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,4.0,4.0,50.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"78, Camp Way",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2015-11-05 06:35:30,unknown,,,200003710102.0,Address Matched +351533280412009082612065906210060,Flat 11 Inverness House,Lancashire Road,,ME15 7QE,2066668,D,C,68,78,Flat,Semi-Detached,2009-08-25,E07000110,E14000700,Kent,2009-08-26,rental (social),63,75,337,227.0,2.4,56,1.6,43.0,22.0,348.0,269.0,118.0,88.0,43.24,Single,Y,1st,Y,2.0,2107.0,100.0,double glazing installed before 2002,Normal,0.0,2.0,2.0,0.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"System built, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Poor,Poor,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.36,0.0,N,natural,"Flat 11 Inverness House, Lancashire Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2009-08-26 12:06:59,rental (social),,,200003684018.0,Address Matched +499109244652010061413545799900374,"53, Melrose Close",,,ME15 6BD,3426496768,B,B,86,87,House,Detached,2010-06-14,E07000110,E14000804,Kent,2010-06-14,new dwelling,85,85,98,95.0,1.7,16,1.6,71.0,57.0,258.0,260.0,111.0,111.0,106.22,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,9.0,,From main system,Very Good,Very Good,Average thermal transmittance 0.20 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.21 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.10 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Very Good,Very Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.3,,,NO DATA!,"53, Melrose Close",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2010-06-14 13:54:57,,12.0,9.0,10014307054.0,Address Matched +d0d79994c2aeb3438de4a167543098934cf54f5166e9f1f22e22ed38c27ec80d,Annexe,12 Boughton Park,,ME17 2EF,10001635851,D,B,66,85,House,Detached,2021-08-24,E07000110,E14000700,Kent,2021-08-24,marketed sale,69,86,238,88.0,2.2,40,0.8,49.0,49.0,475.0,477.0,279.0,134.0,54.0,standard tariff,,,N,,,100.0,,,,,,100.0,0.0,"Electric immersion, standard tariff",Very Poor,Poor,Average thermal transmittance 0.17 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.14 W/m-¦K,Very Good,Very Good,"Room heaters, electric",Very Poor,Poor,Programmer and appliance thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",0.0,,,2.385,,,,"Annexe, 12 Boughton Park",Maidstone,Faversham and Mid Kent,GRAFTY GREEN,2021,2021-08-24 16:01:30,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,3.0,,10093305002.0,Address Matched +521540742232012021817585510968204,Flat 2,"5, Bower Terrace",,ME16 8RY,4410258768,D,D,68,68,Flat,NO DATA!,2012-02-18,E07000110,E14000804,Kent,2012-02-18,rental (private),69,70,207,204.0,2.5,39,2.4,47.0,37.0,456.0,458.0,78.0,78.0,62.99,Single,Y,1st,N,,2106.0,25.0,secondary glazing,Normal,0.0,3.0,3.0,71.0,0.0,From main system,Good,Good,(other premises below),,,Some secondary glazing,Poor,Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, electric",,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 71% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,10.67,2.4,0.0,,natural,"Flat 2, 5, Bower Terrace",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2012-02-18 17:58:55,rental (private),7.0,5.0,10022895943.0,Address Matched +1809339692542020071018453177009308,"4, Melville Road",,,ME15 7UY,591290778,E,C,50,80,House,End-Terrace,2020-07-10,E07000110,E14000804,Kent,2020-07-10,marketed sale,42,76,350,126.0,7.2,62,2.6,138.0,85.0,1226.0,648.0,136.0,83.0,117.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,1.0,5.0,4.0,38.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, mains gas",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 38% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"4, Melville Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2020-07-10 18:45:31,owner-occupied,,,200003696088.0,Address Matched +1031792759202013102507065510572048,"24, Mynn Crescent",Bearsted,,ME14 4AR,2260855178,E,B,49,83,House,Semi-Detached,2013-10-24,E07000110,E14000700,Kent,2013-10-25,marketed sale,44,83,322,81.0,5.4,62,1.4,68.0,50.0,897.0,456.0,165.0,79.0,86.0,Unknown,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,4.0,4.0,64.0,1.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Roof room(s), ceiling insulated",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 64% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"24, Mynn Crescent, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2013-10-25 07:06:55,owner-occupied,11.0,7.0,200003691786.0,Address Matched +212249340202009011412192750619878,"34, Clock House Rise",Coxheath,,ME17 4GS,6209246568,C,C,79,79,House,End-Terrace,2009-01-13,E07000110,E14000804,Kent,2009-01-14,new dwelling,80,80,136,136.0,2.1,0,2.1,46.0,46.0,368.0,368.0,96.0,96.0,49.58,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,23.0,,SAP05:Hot-Water,,,Average thermal transmittance 0.22 W/m²K,Good,Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.20 W/m²K,Very Good,Very Good,SAP05:Secondary-Heating,,,Average thermal transmittance 0.19 W/m²K,Good,Good,SAP05:Main-Heating,,,SAP05:Main-Heating-Controls,,,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,-1.0,NO DATA!,,2.4,,,NO DATA!,"34, Clock House Rise, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2009-01-14 12:19:27,,23.0,23.0,10022900553.0,Address Matched +1509845779022017011011322999268623,Flat 12,60-61 High Street,,ME14 1SR,2925739478,E,E,53,54,Flat,Enclosed Mid-Terrace,2017-01-06,E07000110,E14000804,Kent,2017-01-10,rental (private),69,70,235,222.0,1.8,50,1.7,54.0,27.0,443.0,449.0,132.0,132.0,36.0,Single,Y,1st,N,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,0.0,0.0,From main system,Poor,Good,(other premises below),NO DATA!,,Fully double glazed,Average,Average,"System built, as built, no insulation (assumed)",Poor,Poor,,,,(another dwelling above),,,"Boiler and radiators, LPG",Poor,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,LPG (not community),0.0,unheated corridor,8.0,,,N,natural,"Flat 12, 60-61 High Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2017-01-10 11:32:29,rental (private),,,10093306470.0,Address Matched +54207251132019092508055533268109,Flat 2 Second Floor,1 Old Tovil Road,,ME15 6PR,5943197568,E,E,52,54,Flat,Semi-Detached,2019-09-24,E07000110,E14000804,Kent,2019-09-25,rental (private),45,47,833,792.0,2.7,141,2.6,23.0,23.0,253.0,226.0,430.0,430.0,19.0,dual,N,2nd,Y,,2402.0,100.0,double glazing installed during or after 2002,Normal,0.0,1.0,1.0,100.0,0.0,"Electric immersion, off-peak",Very Poor,Poor,(another dwelling below),NO DATA!,,Fully double glazed,Good,Good,"Timber frame, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,Electric storage heaters,Poor,Very Poor,Automatic charge control,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,unheated corridor,1.48,,,N,natural,"Flat 2 Second Floor, 1 Old Tovil Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2019-09-25 08:05:55,rental (private),,,200003683399.0,Address Matched +1471372855052016081517481296960448,"12, The Gardens",Stockett Lane,,ME17 4PU,4845566478,C,C,70,76,Maisonette,Semi-Detached,2016-08-13,E07000110,E14000804,Kent,2016-08-15,rental (private),69,79,241,167.0,2.1,42,1.5,42.0,42.0,401.0,271.0,92.0,93.0,50.0,Single,Y,Ground,N,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,83.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 83% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,no corridor,,2.42,,N,natural,"12, The Gardens, Stockett Lane",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2016-08-15 17:48:12,rental (private),,,200003715307.0,Address Matched +1066005109842014030608221811840368,"363, Willington Street",,,ME15 8HL,8862108178,E,B,51,85,House,Semi-Detached,2014-03-06,E07000110,E14000700,Kent,2014-03-06,none of the above,30,85,476,72.0,7.4,85,1.3,61.0,56.0,887.0,446.0,170.0,75.0,87.0,dual,Y,NODATA!,,,2401.0,100.0,double glazing installed before 2002,Normal,1.0,4.0,4.0,93.0,0.0,"Electric immersion, off-peak",Average,Very Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 12 mm loft insulation",Very Poor,Very Poor,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 93% of fixed outlets,Very Good,Very Good,electricity (not community),0.0,NO DATA!,,,0.0,,natural,"363, Willington Street",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2014-03-06 08:22:18,owner-occupied,14.0,13.0,200003684842.0,Address Matched +415021352812014060812160590040671,"3, Corben Close",Allington,,ME16 0FH,6130201768,C,B,70,88,House,Semi-Detached,2014-06-07,E07000110,E14000804,Kent,2014-06-08,marketed sale,70,89,170,50.0,2.6,32,0.8,97.0,52.0,442.0,374.0,117.0,67.0,80.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,4.0,4.0,15.0,0.0,From main system,Good,Good,"Solid, limited insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 15% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"3, Corben Close, Allington",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2014-06-08 12:16:05,owner-occupied,13.0,2.0,10022901464.0,Address Matched +181043089542018121415261656389778,Flat 5,"201, Boxley Road",,ME14 2TL,4537183568,C,C,69,69,Flat,Mid-Terrace,2018-12-13,E07000110,E14000804,Kent,2018-12-14,rental (private),72,72,415,415.0,1.3,73,1.3,18.0,18.0,127.0,127.0,173.0,173.0,18.0,Unknown,Y,1st,N,,2307.0,100.0,"double glazing, unknown install date",Normal,1.0,1.0,1.0,100.0,0.0,Community scheme,Good,Good,(another dwelling below),NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,(another dwelling above),,,Community scheme,Good,Good,"Flat rate charging, TRVs",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (community),0.0,heated corridor,,,,N,natural,"Flat 5, 201, Boxley Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2018-12-14 15:26:16,rental (private),,,200003704273.0,Address Matched +971786829242013081612444616179258,"24, Bell Meadow",,,ME15 9ND,6292921178,D,B,68,85,House,Semi-Detached,2013-08-15,E07000110,E14000700,Kent,2013-08-16,none of the above,66,84,177,70.0,3.4,34,1.4,56.0,56.0,553.0,451.0,164.0,80.0,101.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,100.0,0.0,"From main system, no cylinder thermostat",Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"24, Bell Meadow",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2013-08-16 12:44:46,owner-occupied,9.0,9.0,200003682715.0,Address Matched +d130a98047df6378d69d3f4d2dc4b50f420f6aebd88cf668313d6c63f99c837f,8,Railway Place,Lenham,ME17 2FQ,10001608615,A,A,94,95,House,Semi-Detached,2021-08-03,E07000110,E14000700,Kent,2021-08-03,new dwelling,96,98,19,5.0,0.3,4,0.1,69.0,69.0,211.0,211.0,67.0,37.0,81.0,standard tariff,,,N,,,100.0,,,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.16 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.17 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.44,,,,"8, Railway Place, Lenham",Maidstone,Faversham and Mid Kent,Maidstone,2020,2021-08-03 10:07:26,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,13.0,,10095449332.0,Address Matched +200576272262020082708380845958700,Pendine,Chart Road,Sutton Valence,ME17 3AW,423715568,D,C,67,79,House,Detached,2020-08-25,E07000110,E14000700,Kent,2020-08-27,marketed sale,59,73,202,128.0,6.9,36,4.4,107.0,107.0,1175.0,954.0,133.0,84.0,192.0,Unknown,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,8.0,8.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, partial insulation (assumed)",Average,Average,,,,"Pitched, limited insulation (assumed)",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"Pendine, Chart Road, Sutton Valence",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1976-1982,2020-08-27 08:38:08,owner-occupied,,,200003694409.0,Address Matched +246937455652009032017273404210854,"68, Hardy Street",,,ME14 2SJ,8498549568,D,C,68,72,House,Mid-Terrace,2009-03-20,E07000110,E14000804,Kent,2009-03-20,marketed sale,63,67,240,211.0,4.0,40,3.5,53.0,53.0,476.0,427.0,114.0,99.0,111.55,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,6.0,6.0,83.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 83% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.32,0.0,N,natural,"68, Hardy Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2009-03-20 17:27:34,owner-occupied,,,200003702734.0,Address Matched +417518119062010010808304631588320,"68, Essex Road",,,ME15 7QN,2355121768,D,D,66,66,House,Semi-Detached,2010-01-08,E07000110,E14000700,Kent,2010-01-08,rental (social),60,60,278,278.0,3.8,47,3.8,51.0,51.0,586.0,586.0,112.0,112.0,82.5,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,More Than Typical,0.0,5.0,5.0,80.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"System built, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.35,0.0,N,natural,"68, Essex Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2010-01-08 08:30:46,rental (social),,,200003680483.0,Address Matched +396917879742011061523311661999158,Flat 2,Horsemonden House,Coombe Road,ME15 6ZF,8793479668,D,D,66,66,Flat,Semi-Detached,2011-06-15,E07000110,E14000804,Kent,2011-06-15,rental (social),68,68,225,225.0,2.6,40,2.6,39.0,39.0,316.0,316.0,254.0,254.0,65.52,Single,Y,Ground,N,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,From main system,Very Poor,Very Poor,"Solid, insulated (assumed)",,,Fully double glazed,Good,Good,"Timber frame, as built, insulated (assumed)",Very Good,Very Good,,,,(another dwelling above),,,"Boiler and radiators, electric",Very Poor,Very Poor,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,unheated corridor,7.0,2.3,0.0,,natural,"Flat 2, Horsemonden House, Coombe Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2011-06-15 23:31:16,rental (social),7.0,7.0,10014307385.0,Address Matched +1578341843752017092910150692230354,"17, Plantation Lane",Bearsted,,ME14 4BH,3464324578,F,B,22,81,House,End-Terrace,2017-09-29,E07000110,E14000700,Kent,2017-09-29,marketed sale,22,77,626,127.0,8.4,110,1.8,105.0,53.0,1288.0,516.0,533.0,70.0,77.0,Single,Y,NODATA!,,,2601.0,0.0,not defined,Normal,0.0,4.0,4.0,0.0,0.0,"Electric immersion, standard tariff",Very Poor,Poor,"Suspended, no insulation (assumed)",NO DATA!,,Single glazed,Very Poor,Very Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, mains gas",Average,Average,No thermostatic control of room temperature,Poor,Poor,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"17, Plantation Lane, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1900-1929,2017-09-29 10:15:06,owner-occupied,,,200003691965.0,Address Matched +169274189062013100313592052478377,9 Midhurst Court,Mote Road,,ME15 6EH,7561882568,D,C,65,79,Flat,Mid-Terrace,2013-10-03,E07000110,E14000804,Kent,2013-10-03,rental (social),72,84,219,119.0,1.8,40,1.0,28.0,28.0,267.0,198.0,240.0,94.0,45.0,Single,Y,1st,N,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,2.0,2.0,100.0,0.0,"Electric immersion, standard tariff",Very Poor,Very Poor,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,6.16,,0.0,,natural,"9 Midhurst Court, Mote Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2013-10-03 13:59:20,rental (social),5.0,5.0,200003693354.0,Address Matched +596894052932011022415412900268108,"9, Leonard Gould Way",Loose,,ME15 9FX,5880124868,B,B,87,87,House,Mid-Terrace,2011-02-24,E07000110,E14000700,Kent,2011-02-24,new dwelling,87,87,90,88.0,1.3,15,1.3,60.0,50.0,227.0,228.0,104.0,104.0,89.12,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,,From main system,Very Good,Very Good,Average thermal transmittance 0.11 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.18 W/m?K,Very Good,Very Good,"Room heaters, electric",,,Average thermal transmittance 0.10 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Very Good,Very Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.45,,,NO DATA!,"9, Leonard Gould Way, Loose",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2011-02-24 15:41:29,,,,10014311126.0,Address Matched +743094668552012012717364790220393,"78, Rede Wood Road",,,ME16 9HR,3327805968,C,C,70,72,House,Detached,2012-01-27,E07000110,E14000804,Kent,2012-01-27,marketed sale,68,69,169,161.0,4.3,32,4.1,124.0,62.0,661.0,670.0,110.0,110.0,151.33,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,6.0,6.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,2.42,0.0,,natural,"78, Rede Wood Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2012-01-27 17:36:47,owner-occupied,14.0,0.0,200003667500.0,Address Matched +1016295849442013093013424116477308,"4, Tilefields",Hollingbourne,,ME17 1TZ,4433844178,E,D,48,67,House,Detached,2013-09-30,E07000110,E14000700,Kent,2013-09-30,marketed sale,46,64,290,174.0,5.9,55,3.6,112.0,58.0,1042.0,899.0,154.0,91.0,107.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,6.0,6.0,8.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 8% of fixed outlets,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"4, Tilefields, Hollingbourne",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2013-09-30 13:42:41,owner-occupied,12.0,1.0,200003700564.0,Address Matched +1100439802432014030410445972278501,26 Hawley Court,London Road,,ME16 8QJ,152540278,C,C,69,78,Flat,Mid-Terrace,2014-02-25,E07000110,E14000804,Kent,2014-03-04,none of the above,71,83,208,126.0,1.8,40,1.1,49.0,30.0,355.0,241.0,91.0,75.0,46.0,Single,Y,1st,N,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,40.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 40% of fixed outlets,Average,Average,mains gas (not community),0.0,unheated corridor,1.856,,0.0,,natural,"26 Hawley Court, London Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2014-03-04 10:44:59,rental (social),5.0,2.0,200003668459.0,Address Matched +1390356909262015112621292200768795,Flat 1 The Mortlocks,Hardy Street,,ME14 2SH,9038090478,C,C,78,79,Flat,Semi-Detached,2015-11-26,E07000110,E14000804,Kent,2015-11-26,marketed sale,82,82,141,136.0,1.3,25,1.2,54.0,39.0,211.0,213.0,107.0,107.0,51.0,Single,Y,Ground,N,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,62.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 62% of fixed outlets,Good,Good,mains gas (not community),0.0,no corridor,0.0,,,N,natural,"Flat 1 The Mortlocks, Hardy Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2015-11-26 21:29:22,rental (private),,,10014307246.0,Address Matched +829810929542012083013220609127908,278 Wallis Place,Hart Street,,ME16 8FF,8502821078,B,B,81,81,Flat,Detached,2012-08-30,E07000110,E14000804,Kent,2012-08-30,new dwelling,85,85,102,102.0,1.3,19,1.3,37.0,37.0,223.0,223.0,84.0,84.0,65.0,standard tariff,,top floor,,,,,NO DATA!,NO DATA!,,,,6.0,,From main system,Good,Good,(other premises below),,,Fully double glazed,Good,Good,Average thermal transmittance 0.25 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.23 W/m?K,Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.5,,,NO DATA!,"278 Wallis Place, Hart Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2012-08-30 13:22:06,,6.0,6.0,10022900886.0,Address Matched +1580752959752017100920104693039358,"23, Grasslands",Langley,,ME17 3JJ,3858934578,E,C,47,71,Bungalow,Mid-Terrace,2017-10-09,E07000110,E14000700,Kent,2017-10-09,marketed sale,40,63,398,215.0,6.3,70,3.4,107.0,60.0,1052.0,833.0,172.0,73.0,90.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,21.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Roof room(s), no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 21% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"23, Grasslands, Langley",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2017-10-09 20:10:46,unknown,,,200003697801.0,Address Matched +655408339962011101417183158748539,38 Thomas Place,James Whatman Way,,ME14 1FP,3512358868,C,C,79,80,Flat,Mid-Terrace,2011-10-14,E07000110,E14000804,Kent,2011-10-14,new dwelling,89,90,106,102.0,0.9,14,0.8,49.0,37.0,223.0,225.0,102.0,102.0,64.4,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,4.0,,"Community scheme, no cylinder thermostat",Good,Very Good,(other premises below),,,Fully double glazed,Good,Good,Average thermal transmittance 0.40 W/m?K,Good,Good,,,,(other premises above),,,Community scheme,Good,Very Good,"Flat rate charging, programmer and TRVs",Average,Average,Low energy lighting in 67% of fixed outlets,Good,Good,NO DATA!,0.0,NO DATA!,,2.4,,,NO DATA!,"38 Thomas Place, James Whatman Way",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2011-10-14 17:18:31,,6.0,4.0,10014312704.0,Address Matched +682681971932011092700134331268609,"65, Chantry Road",Marden,,TN12 9HU,7921640968,D,D,60,67,Bungalow,End-Terrace,2011-09-27,E07000110,E14000804,Kent,2011-09-27,rental (social),59,68,301,234.0,3.0,58,2.3,44.0,29.0,445.0,382.0,147.0,108.0,51.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,50.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,2.27,0.0,,natural,"65, Chantry Road, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1950-1966,2011-09-27 00:13:43,rental (social),6.0,3.0,200003708680.0,Address Matched +1121167993452015040715201199750122,"4, Lime Close",Marden,,TN12 9EQ,1224391278,D,B,60,84,House,Detached,2015-03-30,E07000110,E14000804,Kent,2015-04-07,ECO assessment,52,80,266,95.0,5.4,47,2.0,78.0,78.0,972.0,553.0,144.0,86.0,116.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,1.0,7.0,7.0,83.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 83% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"4, Lime Close, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1983-1990,2015-04-07 15:20:11,owner-occupied,,,200003708433.0,Address Matched +1463304079962016071711441526758566,St. Nicholas Cottage,Lower Street,Leeds,ME17 1RJ,6283706478,E,A,39,98,House,Detached,2016-07-15,E07000110,E14000700,Kent,2016-07-17,marketed sale,32,92,425,14.0,8.5,78,0.5,88.0,67.0,1583.0,638.0,147.0,88.0,109.0,Single,Y,NODATA!,,,2106.0,0.0,not defined,Normal,1.0,6.0,6.0,67.0,2.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Single glazed,Very Poor,Very Poor,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, no insulation",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 67% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,2.45,,N,natural,"St. Nicholas Cottage, Lower Street, Leeds",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2016-07-17 11:44:15,owner-occupied,,,200003698461.0,Address Matched +1508052769022017060608403619868043,Apartment 4 Kings Lodge,"71, King Street",,ME14 1BG,4146629478,B,B,83,83,Flat,Enclosed Mid-Terrace,2017-06-06,E07000110,E14000804,Kent,2017-06-06,new dwelling,92,92,62,62.0,0.5,10,0.5,38.0,38.0,145.0,145.0,98.0,98.0,51.0,standard tariff,,ground floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,Community scheme,Good,Very Good,Average thermal transmittance 0.12 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,Community scheme,Good,Very Good,"Charging system linked to use of community heating, programmer and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,NO DATA!,,NO DATA!,,,,,NO DATA!,"Apartment 4 Kings Lodge, 71, King Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2017-06-06 08:40:36,owner-occupied,5.0,5.0,10093302737.0,Address Matched +387478009262012052319513109978292,"33, Tilling Close",,,ME15 6RW,9015019668,C,B,78,88,House,Detached,2012-05-23,E07000110,E14000804,Kent,2012-05-23,marketed sale,78,88,107,50.0,2.5,20,1.2,86.0,62.0,393.0,399.0,94.0,59.0,122.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,6.0,6.0,62.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 62% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"33, Tilling Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2012-05-23 19:51:31,owner-occupied,16.0,10.0,10022895699.0,Address Matched +292890359442019071017025568210878,2 Great Cheveney Farm Cottages,Goudhurst Road,Marden,TN12 9LU,413652668,E,A,48,100,House,Semi-Detached,2019-05-03,E07000110,E14000804,Kent,2019-07-10,rental (private),47,96,251,-39.0,5.3,55,0.0,70.0,70.0,785.0,397.0,148.0,95.0,96.0,Unknown,N,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,6.0,6.0,100.0,1.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, oil",Average,Average,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,oil (not community),0.0,NO DATA!,,,,N,natural,"2 Great Cheveney Farm Cottages, Goudhurst Road, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1900-1929,2019-07-10 17:02:55,rental (private),,,200003668136.0,Address Matched +255169978752011112817300998299652,Dean Valley,Dean Street,East Farleigh,ME15 0HT,6282889568,C,C,77,78,House,Detached,2011-11-28,E07000110,E14000804,Kent,2011-11-28,marketed sale,77,79,123,115.0,2.8,23,2.6,114.0,60.0,413.0,422.0,106.0,106.0,59.76,Single,Y,NODATA!,,,2107.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,10.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Roof room(s), insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 10% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,2.08,0.0,,natural,"Dean Valley, Dean Street, East Farleigh",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2011-11-28 17:30:09,owner-occupied,21.0,2.0,200003715644.0,Address Matched +1092382989442014021809050615949638,"20, Leicester Road",,,ME15 7QA,6471489178,D,B,57,86,House,Semi-Detached,2014-02-17,E07000110,E14000700,Kent,2014-02-18,none of the above,54,87,273,59.0,3.8,52,0.9,80.0,45.0,638.0,380.0,158.0,74.0,72.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,22.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 22% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"20, Leicester Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2014-02-18 09:05:06,owner-occupied,9.0,2.0,200003712834.0,Address Matched +1335523949222015062316023067928205,"18, The Cherries",,,ME16 9DJ,677407378,D,B,60,87,House,Semi-Detached,2015-06-22,E07000110,E14000804,Kent,2015-06-23,marketed sale,41,87,420,68.0,5.0,71,0.9,62.0,56.0,618.0,370.0,150.0,69.0,71.0,dual,Y,NODATA!,,,2402.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,80.0,0.0,"Electric immersion, off-peak",Average,Poor,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,Portable electric heaters (assumed),,,"Pitched, 150 mm loft insulation",Good,Good,Electric storage heaters,Average,Very Poor,Automatic charge control,Average,Average,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,electricity (not community),0.0,NO DATA!,,,,N,natural,"18, The Cherries",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2015-06-23 16:02:30,owner-occupied,,,200003686890.0,Address Matched +1568858385512017082108531495930253,"17, Banky Meadow",,,ME16 9LA,2361553578,D,B,66,82,House,Detached,2017-08-17,E07000110,E14000804,Kent,2017-08-21,marketed sale,62,81,197,94.0,6.3,32,3.0,133.0,95.0,1260.0,824.0,143.0,89.0,200.0,Single,Y,NODATA!,,,2106.0,0.0,not defined,Normal,1.0,6.0,6.0,57.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Single glazed,Very Poor,Very Poor,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, wood logs",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 57% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"17, Banky Meadow",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2017-08-21 08:53:14,owner-occupied,,,200003667257.0,Address Matched +1419872099342016061615383646269168,"4, Nightingale Road",Allington,,ME16 0FQ,3383992478,B,A,85,97,House,Mid-Terrace,2016-06-16,E07000110,E14000804,Kent,2016-06-16,new dwelling,88,99,72,-9.0,1.1,13,-0.1,62.0,62.0,184.0,184.0,88.0,52.0,86.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.12 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.27 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"4, Nightingale Road, Allington",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2016-06-16 15:38:36,owner-occupied,10.0,10.0,10091195288.0,Address Matched +281856880962009051213471061328321,"120, Kingfisher Meadow",,,ME16 8RD,2634871668,C,C,76,78,Flat,Semi-Detached,2009-05-12,E07000110,E14000804,Kent,2009-05-12,rental (private),76,79,256,223.0,1.5,39,1.3,31.0,22.0,136.0,143.0,121.0,98.0,38.01,Unknown,N,3rd,N,5.0,2603.0,100.0,double glazing installed before 2002,Normal,0.0,2.0,2.0,57.0,0.0,"Electric immersion, off-peak",Average,Poor,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Room heaters, electric",Very Poor,Poor,Programmer and appliance thermostats,Good,Good,Low energy lighting in 57% of fixed outlets,Good,Good,electricity - this is for backwards compatibility only and should not be used,0.0,heated corridor,,2.41,0.0,N,"mechanical, supply and extract","120, Kingfisher Meadow",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2009-05-12 13:47:10,rental (private),,,10022892331.0,Address Matched +1749520111132019090916241334078605,"14, Carisbrooke Drive",,,ME16 0HY,1574656678,D,B,60,84,House,Detached,2019-09-09,E07000110,E14000804,Kent,2019-09-09,marketed sale,52,81,267,91.0,5.4,47,1.9,129.0,78.0,882.0,503.0,135.0,82.0,115.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,5.0,5.0,36.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Roof room(s), limited insulation (assumed)",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 36% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"14, Carisbrooke Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2019-09-09 16:24:13,owner-occupied,,,200003656754.0,Address Matched +1758278492022020080410165357048030,"26, Mayfield",Harrietsham,,ME17 1US,3588917678,B,A,84,93,House,Detached,2020-08-04,E07000110,E14000700,Kent,2020-08-04,new dwelling,85,94,88,27.0,1.8,15,0.6,87.0,87.0,297.0,299.0,100.0,55.0,119.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.19 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.12 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"26, Mayfield, Harrietsham",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2020-08-04 10:16:53,unknown,10.0,10.0,10094442209.0,Address Matched +610058529942011032815470887592188,"16, Goldthorne Close",,,ME14 5NX,3942325868,C,B,73,83,Flat,End-Terrace,2011-03-28,E07000110,E14000804,Kent,2011-03-28,rental (private),70,82,234,146.0,2.3,38,1.4,62.0,33.0,297.0,244.0,181.0,103.0,59.37,Single,Y,1st,Y,2.0,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,11.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 11% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.29,0.0,N,natural,"16, Goldthorne Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2011-03-28 15:47:08,rental (private),,,200003716164.0,Address Matched +308660279352019083017230995710062,"44, Arundel Square",,,ME15 6HB,242953668,C,B,80,81,Flat,Mid-Terrace,2019-08-30,E07000110,E14000804,Kent,2019-08-30,rental (private),84,84,117,112.0,1.2,20,1.2,71.0,53.0,166.0,167.0,122.0,122.0,60.0,Single,Y,1st,N,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,67.0,0.0,"From main system, no cylinder thermostat",Average,Average,(another dwelling below),NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Very Good,Very Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 67% of fixed outlets,Good,Good,mains gas (not community),0.0,unheated corridor,8.9,,,N,natural,"44, Arundel Square",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2019-08-30 17:23:09,rental (private),,,10022895144.0,Address Matched +221774020502009013117212250717098,"1, Wickham Place",Lenham,,ME17 2PF,6537727568,E,C,51,75,House,Semi-Detached,2009-01-31,E07000110,E14000700,Kent,2009-01-31,rental (private),44,71,451,225.0,4.6,76,2.3,58.0,29.0,559.0,332.0,181.0,89.0,60.78,Unknown,Y,NO DATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,0.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 25 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Poor,Poor,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.2,0.0,N,natural,"1, Wickham Place, Lenham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2009-01-31 17:21:22,rental (private),,,200003712544.0,Address Matched +d18cbbd1208a8eebd864c140796e02e5d78a783fb2de180d3b0575b2c8d8a97b,35 Gilbert Way,,,ME17 3GU,10001469184,B,A,83,95,House,Semi-Detached,2021-08-20,E07000110,E14000700,Kent,2021-08-20,new dwelling,86,98,91,3.0,1.2,16,0.1,68.0,68.0,218.0,218.0,68.0,41.0,78.0,standard tariff,,,N,,,100.0,,,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.33,,,,35 Gilbert Way,Maidstone,Faversham and Mid Kent,MAIDSTONE,2017,2021-08-20 15:42:13,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,7.0,,10094441864.0,Energy Assessor +1600351059832018011512274669978908,Studio 1,"141, Upper Stone Street",,ME15 6HJ,5819975578,D,B,66,82,Flat,Mid-Terrace,2018-01-10,E07000110,E14000804,Kent,2018-01-15,rental (private),69,70,483,474.0,1.4,82,1.4,18.0,19.0,184.0,87.0,228.0,111.0,17.0,Single,N,Ground,N,,2602.0,100.0,"double glazing, unknown install date",Normal,0.0,1.0,1.0,100.0,0.0,"Electric immersion, standard tariff",Very Poor,Poor,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Poor,Poor,,,,(another dwelling above),,,"Room heaters, electric",Very Poor,Poor,Appliance thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,no corridor,,,,N,natural,"Studio 1, 141, Upper Stone Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2018-01-15 12:27:46,rental (private),,,10091196822.0,Address Matched +950091779242013061212084105979428,"26, Hill Brow",Bearsted,,ME14 4AW,8296279078,D,B,63,87,House,Semi-Detached,2013-06-12,E07000110,E14000700,Kent,2013-06-12,marketed sale,61,88,230,57.0,3.3,44,0.9,57.0,43.0,464.0,358.0,206.0,70.0,75.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,67.0,0.0,"From main system, no cylinder thermostat",Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Roof room(s), insulated",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 67% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"26, Hill Brow, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2013-06-12 12:08:41,owner-occupied,9.0,6.0,200003693537.0,Address Matched +480211739062010050517291135558310,2 New Inn Cottages,Pike Fish Lane,Paddock Wood,TN12 6PR,1317365768,E,D,53,61,House,Semi-Detached,2010-05-05,E07000110,E14000804,Kent,2010-05-05,marketed sale,44,50,283,242.0,7.1,61,6.1,115.0,61.0,829.0,753.0,202.0,162.0,100.04,Single,N,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,2.0,5.0,5.0,10.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Roof room(s), limited insulation (assumed)",Average,Average,"Boiler and radiators, oil",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 10% of fixed outlets,Poor,Poor,oil - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.43,0.0,N,natural,"2 New Inn Cottages, Pike Fish Lane, Paddock Wood",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: before 1900,2010-05-05 17:29:11,owner-occupied,,,200003659905.0,Address Matched +658540433312011072511383597290688,"90, Melrose Close",,,ME15 6ZE,6878378868,B,B,85,85,House,End-Terrace,2011-07-25,E07000110,E14000804,Kent,2011-07-25,new dwelling,87,87,74,71.0,1.4,14,1.4,70.0,56.0,246.0,248.0,97.0,97.0,100.74,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,6.0,,From main system,Good,Good,Average thermal transmittance 0.20 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.21 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.3,,,NO DATA!,"90, Melrose Close",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2011-07-25 11:38:35,,8.0,6.0,10014307072.0,Address Matched +1385012394632016042716081038278206,Flat 57,Miller House,43-51 Lower Stone Street,ME15 6GB,9608250478,C,C,73,73,Flat,NO DATA!,2016-04-27,E07000110,E14000804,Kent,2016-04-27,none of the above,62,62,280,280.0,2.9,47,2.9,44.0,44.0,355.0,355.0,160.0,160.0,61.0,off-peak 10 hour,,mid floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Poor,Poor,(other premises below),,,Fully double glazed,Good,Good,Average thermal transmittance 0.72 W/m-¦K,Average,Average,,,,(other premises above),,,"Boiler and radiators, electric",Poor,Very Poor,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"Flat 57, Miller House, 43-51 Lower Stone Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2016-04-27 16:08:10,unknown,4.0,4.0,10091196154.0,Address Matched +977174593732013072619185118278904,"104, Mill Bank",Headcorn,,TN27 9RJ,9418961178,D,B,63,86,House,End-Terrace,2013-07-26,E07000110,E14000700,Kent,2013-07-26,marketed sale,59,86,217,62.0,3.9,42,1.2,91.0,53.0,640.0,409.0,143.0,80.0,94.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,More Than Typical,1.0,5.0,5.0,27.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Roof room(s), insulated",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 27% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"104, Mill Bank, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,England and Wales: before 1900,2013-07-26 19:18:51,owner-occupied,26.0,7.0,200003698205.0,Address Matched +635469062412012060515292491020182,"4, Ulcombe Road",Headcorn,,TN27 9QR,1223217868,D,B,55,82,House,Semi-Detached,2012-06-01,E07000110,E14000700,Kent,2012-06-05,marketed sale,61,87,306,101.0,2.8,49,0.8,54.0,33.0,578.0,462.0,101.0,80.0,57.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,4.0,4.0,38.0,2.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 38% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"4, Ulcombe Road, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,England and Wales: 1900-1929,2012-06-05 15:29:24,owner-occupied,8.0,3.0,200003698707.0,Address Matched +1511422737452017011607283294930340,"58, Morris Close",Boughton Monchelsea,,ME17 4UW,3078749478,C,B,70,87,House,End-Terrace,2017-01-13,E07000110,E14000700,Kent,2017-01-16,marketed sale,68,86,217,78.0,2.6,38,1.0,50.0,50.0,400.0,385.0,176.0,70.0,67.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Suspended, limited insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"58, Morris Close, Boughton Monchelsea",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1996-2002,2017-01-16 07:28:32,owner-occupied,,,10022892773.0,Address Matched +d1ae1b51c49da481151ce0b2574363343186d1539f4ed6fdfebe26e2ca8b23cb,15 Norway Terrace,Invicta Park,,ME14 2PH,10001397671,D,B,68,85,House,Enclosed End-Terrace,2021-08-25,E07000110,E14000804,Kent,2021-08-25,Stock condition survey,64,83,209,87.0,3.6,37,1.5,87.0,87.0,597.0,447.0,98.0,68.0,98.0,Unknown,Y,,,,,100.0,double glazing installed during or after 2002,Normal,0.0,6.0,6.0,87.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Average,Average,,,,"Flat, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 87% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.25,0.0,N,natural,"15 Norway Terrace, Invicta Park",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2021-08-25 15:42:06,Rented (social),15.0,,200003724021.0,Energy Assessor +497827369062013031109391056418467,Moorings,The Priory,East Farleigh,ME15 0JH,6504686768,F,D,33,59,Bungalow,Semi-Detached,2013-03-09,E07000110,E14000804,Kent,2013-03-11,assessment for green deal,37,63,476,251.0,6.7,74,3.2,71.0,52.0,1168.0,891.0,220.0,143.0,85.0,dual,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,4.0,4.0,62.0,1.0,"From main system, no cylinder thermostat",Poor,Poor,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Timber frame, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Average,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 62% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"Moorings, The Priory, East Farleigh",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2013-03-11 09:39:10,owner-occupied,16.0,10.0,200003727061.0,Address Matched +1824574079152020090907301629000970,Thrift,Plough Wents Road,Chart Sutton,ME17 3SA,9011991778,E,C,46,78,Bungalow,Detached,2020-09-07,E07000110,E14000700,Kent,2020-09-09,marketed sale,39,71,250,90.0,7.7,66,3.2,85.0,85.0,905.0,561.0,276.0,85.0,117.0,Unknown,N,NODATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,1.0,6.0,6.0,100.0,0.0,"From main system, no cylinder thermostat",Very Poor,Very Poor,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, oil",Poor,Average,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,oil (not community),0.0,NO DATA!,,,,N,natural,"Thrift, Plough Wents Road, Chart Sutton",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2020-09-09 07:30:16,owner-occupied,,,200003690360.0,Address Matched +448368369022010030317484223278760,"34a, Roseacre Lane",Bearsted,,ME14 4JA,6238633768,E,D,52,66,House,Detached,2010-03-03,E07000110,E14000700,Kent,2010-03-03,marketed sale,49,65,271,182.0,13.0,45,8.4,181.0,151.0,1891.0,1299.0,269.0,192.0,279.07,Single,N,NO DATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,9.0,9.0,80.0,0.0,From main system,Average,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Average,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,0.0,N,natural,"34a, Roseacre Lane, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2010-03-03 17:48:42,owner-occupied,,,200003692670.0,Address Matched +1685405009922019041517312691298301,Flat 27 Coronet House,"11, Queen Anne Road",,ME14 1GD,976091678,D,D,65,65,Flat,Detached,2019-04-11,E07000110,E14000804,Kent,2019-04-15,new dwelling,69,69,374,374.0,1.4,63,1.4,28.0,28.0,293.0,293.0,134.0,134.0,22.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,Electric instantaneous at point of use,Very Poor,Very Poor,(other premises below),,,Fully double glazed,Good,Good,Average thermal transmittance 0.26 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,"Room heaters, electric",Very Poor,Poor,Programmer and room thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"Flat 27 Coronet House, 11, Queen Anne Road",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2019-04-15 17:31:26,unknown,5.0,5.0,10094441204.0,Address Matched +1824498051212020090919385520000674,2 River Lodge,Farleigh Bridge,East Farleigh,ME16 9NB,6402102778,D,C,62,78,Maisonette,Detached,2020-09-09,E07000110,E14000804,Kent,2020-09-09,marketed sale,55,78,266,128.0,4.3,47,2.0,95.0,76.0,726.0,339.0,115.0,102.0,91.0,Single,Y,2nd,Y,,2107.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,75.0,0.0,From main system,Good,Good,(another dwelling below),NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,no corridor,,,,N,natural,"2 River Lodge, Farleigh Bridge, East Farleigh",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2020-09-09 19:38:55,owner-occupied,,,200003722303.0,Address Matched +d1cc9f9fbbf1a2efe0509c1f607bf529eabac505080908e95bf488a787942b2c,DEER COTTAGE,ASHFORD ROAD,,ME14 4AE,10001677280,B,A,84,93,House,Semi-Detached,2021-07-08,E07000110,E14000700,Kent,2021-07-08,new dwelling,86,94,81,21.0,1.4,14,0.4,80.0,80.0,241.0,241.0,64.0,64.0,98.0,standard tariff,,,N,,,100.0,,,,,,100.0,0.0,"From main system, waste water heat recovery",Very Good,Very Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.20 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.14 W/m-¦K,Very Good,Very Good,"Boiler and underfloor heating, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.37,,,,"DEER COTTAGE, ASHFORD ROAD",Maidstone,Faversham and Mid Kent,WEAVERING,2021,2021-07-08 13:24:55,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,50.0,,10095449215.0,Energy Assessor +1006274209922013091311555923228137,"50, Anglesey Avenue",,,ME15 9SU,3234083178,D,B,66,84,House,Semi-Detached,2013-09-12,E07000110,E14000804,Kent,2013-09-13,none of the above,62,84,190,73.0,4.1,37,1.6,71.0,71.0,727.0,488.0,96.0,68.0,111.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,6.0,6.0,80.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"50, Anglesey Avenue",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2013-09-13 11:55:59,owner-occupied,10.0,8.0,200003678529.0,Address Matched +1402290379742016011809175541169158,Greenways,Warren Street Road,Charing,TN27 0HJ,3791671478,D,B,56,88,Bungalow,Detached,2016-01-15,E07000110,E14000700,Kent,2016-01-18,marketed sale,86,111,222,46.0,1.7,13,-1.6,80.0,80.0,955.0,881.0,262.0,126.0,127.0,dual,N,NODATA!,,,2111.0,100.0,double glazing installed before 2002,Normal,1.0,6.0,6.0,100.0,0.0,"From main system, no cylinder thermostat",Poor,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, wood logs",Poor,Very Good,TRVs and bypass,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,wood logs,0.0,NO DATA!,,,,N,natural,"Greenways, Warren Street Road, Charing",Maidstone,Faversham and Mid Kent,ASHFORD,England and Wales: 1967-1975,2016-01-18 09:17:55,owner-occupied,,,200003727698.0,Address Matched +782983925232012050809345160068005,"20, Queens House",Fennel Close,,ME16 0SZ,2500008968,C,C,71,79,Flat,Enclosed End-Terrace,2012-05-08,E07000110,E14000804,Kent,2012-05-08,rental (private),74,83,183,116.0,1.8,35,1.1,64.0,33.0,297.0,240.0,77.0,47.0,50.0,Single,Y,Ground,N,,2106.0,0.0,single glazing,Normal,0.0,3.0,3.0,0.0,0.0,From main system,Good,Good,"Suspended, limited insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Sandstone, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,no corridor,,,0.0,,natural,"20, Queens House, Fennel Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2012-05-08 09:34:51,rental (private),12.0,0.0,200003722439.0,Address Matched +91088514412009021216131802910048,"18, Scott Street",,,ME14 2TA,884426468,E,E,50,52,House,Mid-Terrace,2009-02-12,E07000110,E14000804,Kent,2009-02-12,marketed sale,50,51,380,371.0,4.9,57,4.8,82.0,41.0,760.0,770.0,97.0,97.0,85.6,Single,Y,NO DATA!,,,2107.0,100.0,double glazing installed before 2002,Normal,0.0,6.0,6.0,0.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Poor,Poor,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.0,0.0,N,natural,"18, Scott Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2009-02-12 16:13:18,owner-occupied,,,200003669763.0,Address Matched +1299685279262019041122135684158781,"44, Union Street",,,ME14 1ED,8825744378,E,C,43,76,House,Mid-Terrace,2019-03-25,E07000110,E14000804,Kent,2019-04-11,marketed sale,46,78,371,133.0,5.9,55,2.0,100.0,73.0,1309.0,683.0,103.0,70.0,107.0,Single,Y,NODATA!,,,2106.0,0.0,not defined,Normal,2.0,6.0,6.0,60.0,3.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Single glazed,Very Poor,Very Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 60% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"44, Union Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2019-04-11 22:13:56,unknown,,,200003697470.0,Address Matched +559728259022010110510463411958760,Flat 29 Pevensey Court,St. Peters Street,,ME16 0GQ,6158521868,B,B,84,84,Flat,Enclosed Mid-Terrace,2010-11-05,E07000110,E14000804,Kent,2010-11-05,rental (social),79,79,213,213.0,1.4,32,1.4,29.0,29.0,95.0,95.0,118.0,118.0,44.95,dual,N,3rd,N,5.0,2401.0,100.0,double glazing installed before 2002,Normal,0.0,2.0,2.0,100.0,0.0,"Electric immersion, off-peak",Poor,Poor,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,(another dwelling above),,,Electric storage heaters,Average,Poor,Manual charge control,Poor,Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity - this is for backwards compatibility only and should not be used,0.0,heated corridor,,2.33,0.0,N,natural,"Flat 29 Pevensey Court, St. Peters Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2010-11-05 10:46:34,rental (social),,,10022893626.0,Address Matched +519405639402010072811100473802468,Keepers Cottage,Upper Barnhill,Hunton,ME15 0QL,483838768,F,E,26,44,House,Detached,2010-07-26,E07000110,E14000804,Kent,2010-07-28,marketed sale,23,40,480,331.0,13.0,98,8.7,125.0,72.0,1885.0,1335.0,308.0,185.0,142.86,Single,N,NO DATA!,,,2106.0,80.0,double glazing installed during or after 2002,Normal,2.0,7.0,7.0,27.0,0.0,From main system,Poor,Poor,"Suspended, no insulation (assumed)",,,Mostly double glazing,Average,Average,"Timber frame, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, oil",Poor,Poor,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 27% of fixed outlets,Average,Average,oil - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.34,0.0,N,natural,"Keepers Cottage, Upper Barnhill, Hunton",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2010-07-28 11:10:04,owner-occupied,,,200003663755.0,Address Matched +1757093119942019100917131061710518,Falconfield,Goudhurst Road,Marden,TN12 9JP,6988017678,E,B,39,82,Bungalow,Detached,2019-10-09,E07000110,E14000804,Kent,2019-10-09,rental (private),32,79,459,110.0,7.1,81,1.7,90.0,66.0,1030.0,494.0,322.0,71.0,88.0,Single,Y,NODATA!,,,2107.0,100.0,"double glazing, unknown install date",Normal,1.0,4.0,4.0,64.0,0.0,From main system,Poor,Poor,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,"Room heaters, mains gas",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Average,Poor,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 64% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"Falconfield, Goudhurst Road, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1950-1966,2019-10-09 17:13:10,rental (private),,,200003709542.0,Address Matched +1512077224212017011820251895930340,"6, Glenwood Close",,,ME16 0AU,3042459478,D,B,63,86,Bungalow,Semi-Detached,2017-01-17,E07000110,E14000804,Kent,2017-01-18,marketed sale,58,84,251,80.0,3.8,44,1.2,98.0,57.0,606.0,423.0,160.0,74.0,85.0,Single,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,1.0,4.0,4.0,27.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 27% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"6, Glenwood Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2017-01-18 20:25:18,owner-occupied,,,200003658369.0,Address Matched +d1ffc20d9adaec911f81cc4fa735262f966553c82bfbaea1786c170bef39d0ac,29 Rushmore Grove,,,ME17 2FJ,10001504190,B,A,84,95,House,Semi-Detached,2021-08-11,E07000110,E14000700,Kent,2021-08-11,new dwelling,86,97,86,8.0,1.3,15,0.2,72.0,72.0,230.0,230.0,66.0,41.0,88.0,standard tariff,,,N,,,100.0,,,,,,100.0,0.0,"From main system, flue gas heat recovery",Very Good,Very Good,Average thermal transmittance 0.16 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.19 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.1 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.4,,,,29 Rushmore Grove,Maidstone,Faversham and Mid Kent,LENHAM,2019,2021-08-11 10:17:07,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,1.0,,10094444446.0,Energy Assessor +1801414386032020060515013066078207,Flat 5,"7, Crouch Road",Staplehurst,TN12 0GJ,8796230778,B,B,82,82,Flat,Semi-Detached,2020-06-05,E07000110,E14000804,Kent,2020-06-05,new dwelling,87,87,106,106.0,0.8,19,0.8,43.0,43.0,176.0,176.0,57.0,57.0,45.0,standard tariff,,top floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Flat 5, 7, Crouch Road, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,NO DATA!,2020-06-05 15:01:30,unknown,7.0,7.0,10094442110.0,Address Matched +1216693169902014100715265226840538,"64, Lower Road",,,ME15 7RG,4967368278,D,B,66,88,House,End-Terrace,2014-10-07,E07000110,E14000804,Kent,2014-10-07,non marketed sale,65,89,209,50.0,2.7,40,0.7,59.0,59.0,515.0,363.0,126.0,86.0,68.0,dual,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,78.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 78% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"64, Lower Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2014-10-07 15:26:52,rental (social),9.0,7.0,200003695228.0,Address Matched +931332488312013051609401594970504,"45, Lime Trees",Staplehurst,,TN12 0SS,5435848078,D,C,67,79,House,Detached,2013-05-14,E07000110,E14000804,Kent,2013-05-16,marketed sale,62,76,172,101.0,5.2,33,3.1,121.0,68.0,825.0,730.0,132.0,74.0,157.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,9.0,9.0,23.0,0.0,From main system,Good,Good,"Suspended, limited insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, mains gas",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 23% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"45, Lime Trees, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1996-2002,2013-05-16 09:40:15,owner-occupied,22.0,5.0,200003724396.0,Address Matched +415619480262009122319103671478011,"57, Linton Road",Loose,,ME15 0AH,1756801768,C,C,76,78,Bungalow,Detached,2009-12-23,E07000110,E14000804,Kent,2009-12-23,marketed sale,74,75,167,157.0,2.9,28,2.7,112.0,56.0,417.0,427.0,84.0,84.0,63.95,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,5.0,5.0,0.0,0.0,"From main system, plus solar",Very Good,Very Good,"Suspended, insulated (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.27,0.0,Y,natural,"57, Linton Road, Loose",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2009-12-23 19:10:36,owner-occupied,,,200003663232.0,Address Matched +1102056539152014030619424595040122,"11a, Brishing Lane",,,ME15 9EZ,1227950278,C,C,76,77,Flat,Mid-Terrace,2014-03-06,E07000110,E14000700,Kent,2014-03-06,rental (social),79,79,137,132.0,1.6,26,1.5,57.0,40.0,302.0,304.0,89.0,89.0,61.0,Single,Y,1st,Y,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,57.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 57% of fixed outlets,Good,Good,mains gas (not community),0.0,no corridor,,,0.0,,natural,"11a, Brishing Lane",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2014-03-06 19:42:45,rental (social),7.0,4.0,200003682985.0,Address Matched +259816749912009040422294101010568,West Lodge,The Priory,East Farleigh,ME15 0HA,5801910668,E,D,52,60,Bungalow,Detached,2009-04-03,E07000110,E14000804,Kent,2009-04-04,marketed sale,46,53,326,273.0,8.2,54,6.9,147.0,73.0,1058.0,934.0,160.0,137.0,184.13,Single,Y,NO DATA!,,,2106.0,50.0,double glazing installed during or after 2002,Normal,1.0,5.0,5.0,0.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Partial double glazing,Poor,Poor,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, mains gas",,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,3.35,0.0,N,natural,"West Lodge, The Priory, East Farleigh",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2009-04-04 22:29:41,owner-occupied,,,200003727083.0,Address Matched +1377167299542015102119213331952598,"30, Autumn Glade",,,ME5 8XP,1579999378,C,B,72,87,House,End-Terrace,2015-10-21,E07000110,E14000700,Kent,2015-10-21,none of the above,71,86,200,77.0,2.3,35,0.9,51.0,51.0,418.0,385.0,99.0,65.0,64.0,Single,Y,NODATA!,,,2104.0,86.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,83.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Mostly double glazing,Good,Good,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 83% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"30, Autumn Glade",Maidstone,Faversham and Mid Kent,CHATHAM,England and Wales: 1976-1982,2015-10-21 19:21:33,rental (private),,,200003673525.0,Address Matched +283008770642009051216344760119028,"1, Oak Tree Close",Marden,,TN12 9EW,4669971668,E,E,49,52,House,Enclosed End-Terrace,2009-05-12,E07000110,E14000804,Kent,2009-05-12,rental (private),47,49,545,520.0,3.7,82,3.5,47.0,23.0,383.0,372.0,169.0,169.0,45.12,dual,Y,NO DATA!,,,2402.0,0.0,single glazing,Normal,0.0,2.0,2.0,0.0,0.0,"Electric immersion, off-peak",Very Poor,Poor,"Solid, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,"Pitched, 100 mm loft insulation",Average,Average,Electric storage heaters,Poor,Very Poor,Automatic charge control,Average,Average,No low energy lighting,Very Poor,Very Poor,electricity - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.3,0.0,N,natural,"1, Oak Tree Close, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1983-1990,2009-05-12 16:34:47,rental (private),,,200003709285.0,Address Matched +321915140022009070821535844688441,"36, West Park Road",,,ME15 7AG,4452454668,D,C,55,77,House,Mid-Terrace,2009-07-08,E07000110,E14000700,Kent,2009-07-08,marketed sale,48,74,369,185.0,4.9,62,2.5,72.0,36.0,502.0,310.0,196.0,88.0,89.63,Single,Y,NO DATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,0.0,0.0,"From main system, no cylinderstat",Poor,Average,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Average,Good,Programmer and room thermostat,Poor,Poor,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.44,0.0,N,natural,"36, West Park Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2009-07-08 21:53:58,owner-occupied,,,200003686656.0,Address Matched +326505680502009071417355367419148,"4, Arundel Street",,,ME14 2RS,9540084668,D,D,56,65,House,Mid-Terrace,2009-07-14,E07000110,E14000804,Kent,2009-07-14,marketed sale,49,58,375,298.0,4.6,62,3.7,55.0,37.0,700.0,575.0,102.0,89.0,73.8,Single,Y,NO DATA!,,,2102.0,100.0,double glazing installed during or after 2002,Normal,1.0,4.0,4.0,50.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.5,0.0,N,natural,"4, Arundel Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2009-07-14 17:35:53,owner-occupied,,,200003669591.0,Address Matched +988231289922013081510013892758617,"25, Wheeler Street",Headcorn,,TN27 9SH,1907842178,D,A,66,94,House,Mid-Terrace,2013-08-15,E07000110,E14000700,Kent,2013-08-15,marketed sale,69,99,258,-20.0,1.7,49,-0.1,41.0,26.0,352.0,252.0,72.0,45.0,35.0,dual,Y,NODATA!,,,2102.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,40.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,Low energy lighting in 40% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"25, Wheeler Street, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,England and Wales: 1900-1929,2013-08-15 10:01:38,owner-occupied,5.0,2.0,200003700859.0,Address Matched +1820354472442020090315195176100378,"39, Postley Road",,,ME15 6TP,3417171778,C,B,73,87,House,Mid-Terrace,2020-09-03,E07000110,E14000804,Kent,2020-09-03,marketed sale,71,86,181,73.0,2.8,32,1.2,69.0,69.0,479.0,399.0,96.0,67.0,86.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"39, Postley Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2020-09-03 15:19:51,owner-occupied,,,200003681856.0,Address Matched +715929169262011102614573512268679,Westwood,Grove Green Lane,Weavering,ME14 5JW,7150672968,B,B,85,85,House,Detached,2011-10-26,E07000110,E14000700,Kent,2011-10-26,new dwelling,86,86,72,72.0,2.6,13,2.6,78.0,78.0,458.0,458.0,94.0,94.0,203.9,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,16.0,,From main system,Good,Good,Average thermal transmittance 0.15 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.20 W/m?K,Very Good,Very Good,"Room heaters, wood logs",,,Average thermal transmittance 0.09 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.35,,,NO DATA!,"Westwood, Grove Green Lane, Weavering",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2011-10-26 14:57:35,,16.0,16.0,10014309516.0,Address Matched +537971229062010090921574929018220,Flat 2 Wellington House,"6, Ashford Road",,ME14 5BH,2283279768,D,D,57,62,Flat,Semi-Detached,2010-09-09,E07000110,E14000804,Kent,2010-09-09,marketed sale,47,50,443,415.0,4.6,67,4.3,51.0,51.0,506.0,432.0,139.0,139.0,68.52,dual,N,Ground,N,4.0,2401.0,100.0,secondary glazing,Normal,0.0,3.0,3.0,80.0,0.0,"Electric immersion, off-peak",Average,Poor,"Solid, no insulation (assumed)",,,Full secondary glazing,Good,Good,"Solid brick, with internal insulation",Good,Good,"Room heaters, electric",,,(another dwelling above),,,Electric storage heaters,Poor,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,electricity - this is for backwards compatibility only and should not be used,0.0,unheated corridor,6.24,2.3,0.0,N,natural,"Flat 2 Wellington House, 6, Ashford Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2010-09-09 21:57:49,owner-occupied,,,200003689400.0,Address Matched +165759490262008102119482892498998,"9, Northdown",Stockbury,,ME9 7UL,9999992568,D,D,63,63,Flat,Mid-Terrace,2008-10-21,E07000110,E14000700,Kent,2008-10-21,marketed sale,59,59,350,350.0,3.2,53,3.2,33.0,33.0,269.0,269.0,186.0,186.0,60.12,dual,N,Ground,N,2.0,2402.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,90.0,0.0,"Electric immersion, off-peak",Very Poor,Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,(another dwelling above),,,Electric storage heaters,Average,Poor,Automatic charge control,Average,Average,Low energy lighting in 90% of fixed outlets,Very Good,Very Good,electricity - this is for backwards compatibility only and should not be used,0.0,no corridor,0.0,2.29,0.0,N,natural,"9, Northdown, Stockbury",Maidstone,Faversham and Mid Kent,SITTINGBOURNE,England and Wales: 1950-1966,2008-10-21 19:48:28,owner-occupied,,,200003725258.0,Address Matched +870313019602013011014401908470118,"15, Saltwood Road",,,ME15 6UY,5664614078,D,B,68,88,House,Semi-Detached,2013-01-09,E07000110,E14000804,Kent,2013-01-10,marketed sale,67,88,179,51.0,3.2,34,0.9,80.0,51.0,512.0,357.0,114.0,78.0,92.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,42.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Roof room(s), insulated",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 42% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"15, Saltwood Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2013-01-10 14:40:19,owner-occupied,12.0,5.0,200003665375.0,Address Matched +525932059222017022718152138298126,"92a, Queens Road",,,ME16 0LG,2306588768,C,C,72,77,Flat,Semi-Detached,2016-10-21,E07000110,E14000804,Kent,2017-02-27,ECO assessment,73,79,193,152.0,2.0,34,1.5,86.0,43.0,300.0,245.0,130.0,131.0,58.0,Single,Y,1st,Y,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,0.0,0.0,From main system,Good,Good,(another dwelling below),NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, partial insulation (assumed)",Average,Average,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,no corridor,,,,N,natural,"92a, Queens Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1976-1982,2017-02-27 18:15:21,rental (social),,,200003691867.0,Address Matched +790596345232012052523360137268008,"143, York Road",,,ME15 7QX,4837058968,D,B,64,89,House,Mid-Terrace,2012-05-25,E07000110,E14000700,Kent,2012-05-25,marketed sale,62,90,227,42.0,3.0,44,0.6,63.0,39.0,415.0,301.0,169.0,65.0,69.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,38.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 38% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"143, York Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2012-05-25 23:36:01,owner-occupied,8.0,3.0,200003715739.0,Address Matched +1144810796912014052118574395240729,"4, Halden Close",,,ME15 8SX,7941653278,D,C,57,78,House,Semi-Detached,2014-05-20,E07000110,E14000700,Kent,2014-05-21,marketed sale,52,76,272,119.0,4.2,52,1.9,63.0,48.0,734.0,569.0,154.0,81.0,80.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,3.0,70.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 70% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"4, Halden Close",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2014-05-21 18:57:43,owner-occupied,10.0,7.0,200003680864.0,Address Matched +686848586432014061613152791968400,Flat 16a,Elizabeth House,Alexandra Street,ME14 2BU,8011470968,E,C,42,77,Flat,End-Terrace,2014-06-11,E07000110,E14000804,Kent,2014-06-16,none of the above,37,61,633,344.0,4.0,112,2.2,25.0,27.0,638.0,186.0,220.0,102.0,36.0,dual,N,Ground,N,,2601.0,100.0,double glazing installed during or after 2002,Normal,0.0,1.0,1.0,100.0,0.0,"Electric immersion, off-peak",Poor,Very Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,(another dwelling above),,,"Room heaters, electric",Poor,Very Poor,No thermostatic control of room temperature,Poor,Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,no corridor,,,0.0,,natural,"Flat 16a, Elizabeth House, Alexandra Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2014-06-16 13:15:27,owner-occupied,4.0,4.0,200003704582.0,Address Matched +574809329062019010416570202778571,1 Jewel Cottages,Howland Road,Marden,TN12 9EX,7060242868,E,C,52,69,House,Semi-Detached,2019-01-03,E07000110,E14000804,Kent,2019-01-04,rental,53,70,303,190.0,5.3,45,3.2,74.0,75.0,1204.0,975.0,92.0,61.0,119.0,Single,Y,NODATA!,,,2106.0,0.0,not defined,Normal,0.0,3.0,3.0,100.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Single glazed,Very Poor,Very Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, insulated",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"1 Jewel Cottages, Howland Road, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: before 1900,2019-01-04 16:57:02,owner-occupied,,,200003710764.0,Address Matched +1346885089202015072508241134752148,"8, Lyngs Close",Yalding,,ME18 6JS,220387378,E,B,52,83,Bungalow,Semi-Detached,2015-07-24,E07000110,E14000804,Kent,2015-07-25,marketed sale,44,80,374,114.0,5.0,66,1.6,63.0,50.0,926.0,499.0,131.0,81.0,76.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,75.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"8, Lyngs Close, Yalding",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2015-07-25 08:24:11,owner-occupied,,,200003660412.0,Address Matched +1419923599342017012309375842232208,"20, Bluebell Way",Allington,,ME16 0ZU,4384992478,B,A,85,97,House,Mid-Terrace,2017-01-20,E07000110,E14000804,Kent,2017-01-23,new dwelling,88,99,72,-9.0,1.1,13,-0.1,63.0,63.0,177.0,177.0,86.0,51.0,86.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.12 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.27 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"20, Bluebell Way, Allington",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2017-01-23 09:37:58,owner-occupied,10.0,10.0,10091195348.0,Address Matched +419841139042010011215501071109628,"60, King Edward Road",,,ME15 6PJ,5033731768,F,E,38,46,House,Mid-Terrace,2010-01-12,E07000110,E14000804,Kent,2010-01-12,marketed sale,42,50,452,383.0,7.0,64,5.8,93.0,55.0,1227.0,1080.0,129.0,106.0,108.1,Single,Y,NO DATA!,,,2107.0,95.0,"double glazing, unknown install date",Normal,1.0,6.0,6.0,30.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Mostly double glazing,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 30% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.6,0.0,N,natural,"60, King Edward Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2010-01-12 15:50:10,owner-occupied,,,200003665452.0,Address Matched +470657599342010041620575076409968,"57, Badger Road",,,ME5 8TY,2361494768,C,C,73,80,House,Mid-Terrace,2010-04-16,E07000110,E14000700,Kent,2010-04-16,marketed sale,70,77,236,182.0,2.3,39,2.3,58.0,30.0,315.0,287.0,137.0,97.0,59.32,Single,Y,NO DATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,8.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Timber frame, as built, partial insulation (assumed)",Average,Average,,,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 8% of fixed outlets,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.32,0.0,N,natural,"57, Badger Road",Maidstone,Faversham and Mid Kent,CHATHAM,England and Wales: 1967-1975,2010-04-16 20:57:50,owner-occupied,,,200003675201.0,Address Matched +235016077132009030515474848068603,"5, Hazlitt Drive",,,ME16 0EG,7398678568,B,B,86,87,Flat,Detached,2009-03-05,E07000110,E14000804,Kent,2009-03-05,new dwelling,86,86,104,101.0,1.2,0,1.2,45.0,36.0,170.0,171.0,86.0,86.0,0.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,9.0,,SAP05:Hot-Water,,,(other premises below),,,Fully double glazed,Good,Good,Average thermal transmittance 0.29 W/m²K,Very Good,Very Good,SAP05:Secondary-Heating,,,(another dwelling above),,,SAP05:Main-Heating,,,SAP05:Main-Heating-Controls,,,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,,,,NO DATA!,"5, Hazlitt Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2009-03-05 15:47:48,,12.0,9.0,200003658878.0,Address Matched +496137026032010061017233774068400,"45, Downs View Road",Penenden Heath,,ME14 2JF,2024476768,D,C,67,77,Bungalow,Semi-Detached,2010-06-09,E07000110,E14000804,Kent,2010-06-10,marketed sale,62,73,260,182.0,3.7,43,2.6,76.0,44.0,578.0,422.0,77.0,77.0,84.39,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,25.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 25% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.44,0.0,N,natural,"45, Downs View Road, Penenden Heath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2010-06-10 17:23:37,owner-occupied,,,200003707781.0,Address Matched +233638920652009030222485804210752,"9, West Park Road",,,ME15 7AE,7216048568,C,C,70,72,House,End-Terrace,2009-02-26,E07000110,E14000700,Kent,2009-03-02,rental (social),66,68,251,235.0,3.0,42,2.8,58.0,34.0,387.0,400.0,122.0,98.0,71.97,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,4.0,4.0,30.0,0.0,From main system,Very Good,Very Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 30% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.44,0.0,N,natural,"9, West Park Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2009-03-02 22:48:58,rental (social),,,200003686618.0,Address Matched +d250049283c2a922765912420e931036bf0c91e33bd9f0c276b89252e608c2da,59 CUMBERLAND AVENUE,,,ME15 7JP,10001606565,E,B,54,83,House,Mid-Terrace,2021-06-29,E07000110,E14000700,Kent,2021-07-01,ECO assessment,51,82,339,106.0,4.1,60,1.3,117.0,58.0,667.0,471.0,204.0,79.0,69.0,Single,Y,,,,,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,0.0,0.0,"From main system, no cylinder thermostat",Average,Average,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,"Pitched, insulated (assumed)",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,,,2.75,0.0,N,natural,59 CUMBERLAND AVENUE,Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2021-07-01 10:18:35,Rented (social),8.0,,200003714151.0,Energy Assessor +568334462012010112419394299209383,"87, College Road",,,ME15 6TF,3356291868,D,C,59,69,House,Semi-Detached,2010-11-24,E07000110,E14000804,Kent,2010-11-24,rental (private),52,64,323,241.0,4.8,54,3.6,79.0,47.0,757.0,578.0,102.0,102.0,89.44,Single,Y,NO DATA!,,,2106.0,95.0,"double glazing, unknown install date",Normal,1.0,4.0,4.0,33.0,0.0,From main system,Very Good,Very Good,"Suspended, no insulation (assumed)",,,Mostly double glazing,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 33% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.62,0.0,N,natural,"87, College Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2010-11-24 19:39:42,rental (private),,,200003664955.0,Address Matched +1015246199222013092708261424958247,"70, Oakwood Road",,,ME16 8AL,4204934178,D,B,59,83,House,Detached,2013-09-25,E07000110,E14000804,Kent,2013-09-27,marketed sale,53,81,228,83.0,5.7,44,2.1,117.0,65.0,945.0,575.0,146.0,82.0,130.0,Unknown,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,21.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 21% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"70, Oakwood Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2013-09-27 08:26:14,owner-occupied,14.0,3.0,200003657321.0,Address Matched +1047089079962013112214530576378767,"170, Roseholme",,,ME16 8DT,6726766178,C,C,76,80,Flat,Mid-Terrace,2013-11-13,E07000110,E14000804,Kent,2013-11-22,none of the above,80,84,134,106.0,1.4,25,1.1,62.0,34.0,270.0,237.0,65.0,65.0,54.0,Single,Y,2nd,Y,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,17.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 17% of fixed outlets,Poor,Poor,mains gas (not community),0.0,unheated corridor,5.7,,0.0,,natural,"170, Roseholme",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2013-11-22 14:53:05,owner-occupied,6.0,1.0,200003656486.0,Address Matched +d28357f92b07d87357a0c3085b06756e7fa23584a551e081575f0aed0e483223,38 Birch Tree Way,,,ME15 7RR,10001504795,D,B,59,87,House,End-Terrace,2021-08-13,E07000110,E14000804,Kent,2021-08-13,rental,52,87,318,74.0,4.1,56,1.0,61.0,61.0,677.0,365.0,108.0,61.0,72.0,Single,Y,,,,,85.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Mostly double glazing,Poor,Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.49,0.0,N,natural,38 Birch Tree Way,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2021-08-13 11:48:20,Rented (private),9.0,,200003696161.0,Energy Assessor +361821930802009091519154864719258,Clothworkers Cottage,Lower Road,Sutton Valence,ME17 3BL,6801137668,E,D,54,59,House,End-Terrace,2009-09-15,E07000110,E14000700,Kent,2009-09-15,marketed sale,48,52,348,316.0,5.7,58,5.2,75.0,44.0,716.0,665.0,85.0,85.0,98.36,Single,Y,NO DATA!,,,2106.0,,INVALID!,Normal,0.0,5.0,5.0,30.0,0.0,From main system,Very Good,Very Good,"Suspended, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 30% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.32,0.0,N,natural,"Clothworkers Cottage, Lower Road, Sutton Valence",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1900-1929,2009-09-15 19:15:48,owner-occupied,,,200003696401.0,Address Matched +1372801569202015100819490236950288,"4, The Wheelwrights",West Street,,ME17 1DW,8208669378,D,B,67,82,Bungalow,Detached,2015-10-08,E07000110,E14000700,Kent,2015-10-08,marketed sale,63,79,225,117.0,3.7,40,2.0,100.0,59.0,663.0,580.0,111.0,73.0,94.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,31.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, mains gas",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 31% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"4, The Wheelwrights, West Street",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2015-10-08 19:49:02,owner-occupied,,,200003732004.0,Address Matched +1453154345912016061317154493960740,"4, Mallet Avenue",,,ME15 8GT,7043535478,B,A,81,93,House,NO DATA!,2016-06-13,E07000110,E14000700,Kent,2016-06-13,new dwelling,82,94,112,27.0,1.7,20,0.4,56.0,56.0,297.0,299.0,105.0,55.0,86.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"4, Mallet Avenue",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2016-06-13 17:15:44,unknown,1.0,1.0,10091193684.0,Address Matched +208494232852018122023275390289450,"5, Bannister Road",Penenden Heath,,ME14 2JY,4026206568,D,B,62,84,House,Semi-Detached,2018-12-20,E07000110,E14000804,Kent,2018-12-20,rental (private),56,82,260,92.0,4.0,46,1.5,76.0,60.0,684.0,454.0,117.0,68.0,88.0,Unknown,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,73.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 73% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"5, Bannister Road, Penenden Heath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2018-12-20 23:27:53,rental (private),,,200003707165.0,Address Matched +1813918975712020072921245022200272,Knowlesden Farm,Lower Farm Road,Chart Sutton,ME17 3HA,2215521778,D,A,56,95,Bungalow,Detached,2020-07-29,E07000110,E14000700,Kent,2020-07-29,unknown,48,85,214,-7.0,5.5,56,1.4,78.0,78.0,660.0,544.0,175.0,90.0,98.0,Unknown,N,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,4.0,4.0,100.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, with internal insulation",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, oil",Average,Average,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,oil (not community),0.0,NO DATA!,,,,N,natural,"Knowlesden Farm, Lower Farm Road, Chart Sutton",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1991-1995,2020-07-29 21:24:50,unknown,,,200003679726.0,Address Matched +567173429962010112015480651338580,"21, Broadoak Avenue",,,ME15 6DH,8502281868,D,C,62,75,Bungalow,Semi-Detached,2010-11-17,E07000110,E14000804,Kent,2010-11-20,marketed sale,56,71,345,224.0,3.5,58,2.3,43.0,32.0,470.0,369.0,188.0,98.0,60.01,Single,Y,NO DATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,63.0,0.0,"From main system, no cylinder thermostat",Poor,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Average,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 63% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.36,0.0,N,natural,"21, Broadoak Avenue",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2010-11-20 15:48:06,owner-occupied,,,200003676841.0,Address Matched +973390934012013102110292494279612,"5, Hengist Court",Marsham Street,,ME14 1BT,6238441178,C,B,76,81,Flat,Enclosed Mid-Terrace,2013-10-21,E07000110,E14000804,Kent,2013-10-21,marketed sale,67,74,273,218.0,1.9,48,1.5,55.0,29.0,183.0,157.0,105.0,85.0,40.0,dual,N,Ground,N,,2401.0,100.0,double glazing installed before 2002,Normal,0.0,2.0,2.0,11.0,0.0,"Electric immersion, off-peak",Average,Very Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,(another dwelling above),,,Electric storage heaters,Poor,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 11% of fixed outlets,Poor,Poor,electricity (not community),0.0,heated corridor,,,0.0,,natural,"5, Hengist Court, Marsham Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1991-1995,2013-10-21 10:29:24,owner-occupied,9.0,1.0,200003688668.0,Address Matched +266418181852009041513515006910163,"18, Cayser Drive",Kingswood,,ME17 3QB,1361160668,C,C,72,74,House,Semi-Detached,2009-04-15,E07000110,E14000700,Kent,2009-04-15,non marketed sale,69,70,214,205.0,3.1,36,3.0,83.0,41.0,417.0,425.0,90.0,90.0,100.68,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,2.0,5.0,5.0,0.0,0.0,From main system,Very Good,Very Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,0.0,N,natural,"18, Cayser Drive, Kingswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2009-04-15 13:51:50,owner-occupied,,,200003701274.0,Address Matched +495317872532015021617122652968703,White Acres,Headcorn Road,Ulcombe,ME17 1EY,7312766768,E,C,49,78,Bungalow,Detached,2015-02-16,E07000110,E14000700,Kent,2015-02-16,assessment for green deal,48,75,209,80.0,10.0,46,4.6,194.0,97.0,1988.0,1559.0,223.0,105.0,227.0,Single,N,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,5.0,5.0,0.0,0.0,From main system,Average,Average,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Timber frame, as built, partial insulation (assumed)",Average,Average,"Room heaters, wood logs",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, oil",Average,Average,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,oil (not community),0.0,NO DATA!,,,,N,natural,"White Acres, Headcorn Road, Ulcombe",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2015-02-16 17:12:26,owner-occupied,,,200003701080.0,Address Matched +598196239342011041600234380499068,Flat 1/A Walshaw House,Quarry Square,,ME14 2UW,5305034868,D,C,62,73,Flat,End-Terrace,2011-04-16,E07000110,E14000804,Kent,2011-04-16,rental (social),56,68,329,239.0,3.7,55,2.7,62.0,37.0,581.0,458.0,127.0,92.0,66.4,Single,Y,2nd,Y,4.0,2107.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,33.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Flat, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 33% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.31,0.0,N,natural,"Flat 1/A Walshaw House, Quarry Square",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2011-04-16 00:23:43,rental (social),,,200003704527.0,Address Matched +1595066749702017120712333752530738,"15, Oaken Wood Drive",,,ME16 9FE,6782145578,B,B,89,90,House,Detached,2017-12-07,E07000110,E14000804,Kent,2017-12-07,new dwelling,89,91,52,40.0,1.1,9,0.9,72.0,72.0,250.0,251.0,104.0,55.0,124.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.18 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"15, Oaken Wood Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2017-12-07 12:33:37,unknown,20.0,20.0,10093303610.0,Address Matched +880978709022013020711255514648827,"7, The Stampers",,,ME15 6FF,2198094078,C,B,69,91,House,End-Terrace,2013-02-04,E07000110,E14000804,Kent,2013-02-07,marketed sale,71,94,207,20.0,1.9,40,0.2,29.0,29.0,339.0,263.0,96.0,76.0,47.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, partial insulation (assumed)",Average,Average,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"7, The Stampers",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1976-1982,2013-02-07 11:25:55,owner-occupied,6.0,6.0,200003716378.0,Address Matched +913734539962013041515192337758617,"30, Bell Meadow",,,ME15 9ND,1373327078,E,B,54,83,House,Semi-Detached,2013-04-15,E07000110,E14000700,Kent,2013-04-15,none of the above,57,88,285,79.0,3.9,47,0.9,89.0,47.0,752.0,446.0,134.0,68.0,83.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,11.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, wood logs",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 11% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"30, Bell Meadow",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2013-04-15 15:19:23,owner-occupied,9.0,1.0,200003682721.0,Address Matched +d2d7cf35b277cbabfb1f41e762640f3b4160bf0a1eda18bc908fe5511f1db25f,44 PERRY STREET,,,ME14 2RP,10001512190,E,D,54,67,Flat,Mid-Terrace,2021-06-29,E07000110,E14000804,Kent,2021-07-01,ECO assessment,53,69,345,226.0,3.3,60,2.1,95.0,48.0,674.0,462.0,86.0,86.0,54.0,Single,Y,00,N,,,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,0.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,no corridor,,2.8,0.0,N,"mechanical, extract only",44 PERRY STREET,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2021-07-01 18:43:32,Rented (social),7.0,,200003669574.0,Energy Assessor +755798169262012022914245405818582,"9, The Waldens",Kingswood,,ME17 3QG,8071695968,C,C,72,72,House,Semi-Detached,2012-02-29,E07000110,E14000700,Kent,2012-02-29,rental (private),72,72,172,172.0,2.6,33,2.6,43.0,43.0,451.0,451.0,81.0,81.0,78.54,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,2.36,0.0,,natural,"9, The Waldens, Kingswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2012-02-29 14:24:54,rental (private),10.0,10.0,200003701423.0,Address Matched +1573889799252017091110450498930459,"3, Cricketers Way",Coxheath,,ME17 4FG,4975983578,B,A,83,94,House,Detached,2017-09-11,E07000110,E14000804,Kent,2017-09-11,new dwelling,84,95,95,20.0,1.6,17,0.4,64.0,64.0,268.0,270.0,101.0,54.0,98.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.14 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.20 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.12 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"3, Cricketers Way, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2017-09-11 10:45:04,owner-occupied,11.0,11.0,10093302607.0,Address Matched +665622733932011081212084779268406,"473, Loose Road",,,ME15 9UJ,3689429868,D,D,57,62,House,Semi-Detached,2011-07-26,E07000110,E14000804,Kent,2011-08-12,marketed sale,52,58,268,231.0,5.4,52,4.6,67.0,67.0,901.0,780.0,101.0,90.0,104.04,dual,Y,NODATA!,,,2107.0,100.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,80.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,2.4,0.0,,natural,"473, Loose Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2011-08-12 12:08:47,owner-occupied,10.0,8.0,200003680291.0,Address Matched +d2dd292a69a5b94831295bd45a3dd7a63628edfbf30661a58c5eca23fccf27f0,7,Jolly Road,Boughton Monchelsea,ME17 4SY,10001646509,B,A,83,94,House,Detached,2021-09-27,E07000110,E14000700,Kent,2021-09-27,new dwelling,85,96,89,14.0,1.4,16,0.3,74.0,74.0,246.0,246.0,71.0,43.0,92.0,standard tariff,,,N,,,100.0,,,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.10 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.39,,,,"7, Jolly Road, Boughton Monchelsea",Maidstone,Faversham and Mid Kent,Maidstone,2020,2021-09-27 08:46:36,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,14.0,,10094442620.0,Address Matched +1556007569702017062910312859232218,Flat 4 Black Court,"90a, Milton Street",,ME16 8LL,764462578,B,B,83,83,Flat,Detached,2017-06-29,E07000110,E14000804,Kent,2017-06-29,new dwelling,88,88,88,88.0,1.0,15,1.0,47.0,47.0,184.0,184.0,70.0,70.0,62.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.22 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Flat 4 Black Court, 90a, Milton Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2017-06-29 10:31:28,owner-occupied,12.0,12.0,10093303870.0,Address Matched +776764629922012041714331087738352,"51, Leonard Gould Way",Loose,,ME15 9FX,5855257968,B,B,82,82,House,Semi-Detached,2012-04-17,E07000110,E14000700,Kent,2012-04-17,new dwelling,84,84,86,86.0,2.1,16,2.1,74.0,74.0,344.0,344.0,100.0,100.0,130.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,10.0,,From main system,Good,Good,Average thermal transmittance 0.12 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m?K,Very Good,Very Good,"Room heaters, electric",,,Average thermal transmittance 0.10 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in 77% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.45,,,NO DATA!,"51, Leonard Gould Way, Loose",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2012-04-17 14:33:10,,13.0,10.0,10014311168.0,Address Matched +757706049022012030613521996168602,"14, Locks Yard",Headcorn,,TN27 9AD,954416968,B,B,83,85,House,Mid-Terrace,2012-03-06,E07000110,E14000700,Kent,2012-03-06,new dwelling,86,87,76,70.0,1.6,14,1.5,101.0,61.0,239.0,245.0,96.0,96.0,113.28,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,5.0,,From main system,Good,Good,Average thermal transmittance 0.15 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.28 W/m?K,Very Good,Very Good,"Room heaters, electric",,,Average thermal transmittance 0.18 W/m?K,Good,Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in 33% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.32,,,NO DATA!,"14, Locks Yard, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,NO DATA!,2012-03-06 13:52:19,,15.0,5.0,10014312093.0,Address Matched +1681804545752020081410105426900167,15 The Glebe,Yalding,,ME18 6BF,1740561678,B,A,84,96,House,Semi-Detached,2020-08-14,E07000110,E14000804,Kent,2020-08-14,new dwelling,87,99,82,-3.0,1.2,14,0.0,69.0,69.0,205.0,205.0,77.0,47.0,81.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.22 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"15 The Glebe, Yalding",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2020-08-14 10:10:54,unknown,10.0,10.0,10094440005.0,Address Matched +1717188051012019043013034192710365,"18, Ramsden Way",Marden,,TN12 9GL,3533124678,B,A,84,96,House,Semi-Detached,2019-04-30,E07000110,E14000804,Kent,2019-04-30,new dwelling,87,98,81,0.0,1.3,14,0.0,66.0,66.0,194.0,195.0,93.0,51.0,89.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.16 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.19 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"18, Ramsden Way, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,NO DATA!,2019-04-30 13:03:41,unknown,15.0,15.0,10093305379.0,Address Matched +1604789819242018020111125557680498,"48, Edmett Way",,,ME17 3GD,1208116578,B,A,84,93,House,Detached,2018-02-01,E07000110,E14000700,Kent,2018-02-01,new dwelling,85,94,87,25.0,1.8,15,0.6,79.0,79.0,279.0,279.0,100.0,55.0,118.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.19 W/m-¦K,Good,Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"48, Edmett Way",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2018-02-01 11:12:55,unknown,7.0,7.0,10093304038.0,Address Matched +188298698512019020522333592010354,"10, Burgess Hall Drive",Leeds,,ME17 1SH,3432824568,D,A,61,98,House,Detached,2019-02-05,E07000110,E14000700,Kent,2019-02-05,marketed sale,54,91,281,36.0,4.5,50,0.7,65.0,65.0,783.0,643.0,101.0,69.0,91.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"10, Burgess Hall Drive, Leeds",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2019-02-05 22:33:35,owner-occupied,,,200003697942.0,Address Matched +1188782469442014081307062626640918,The Hawksmoor Suite Colesdane,Stede Hill,Harrietsham,ME17 1NP,1480766278,C,C,70,76,Flat,Mid-Terrace,2014-08-09,E07000110,E14000700,Kent,2014-08-13,marketed sale,75,80,87,70.0,6.7,19,5.4,194.0,126.0,1772.0,1483.0,364.0,287.0,346.0,Unknown,N,1st,N,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,10.0,10.0,46.0,0.0,From main system,Poor,Average,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, LPG",Poor,Average,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 46% of fixed outlets,Good,Good,LPG (not community),0.0,unheated corridor,18.0,,0.0,,natural,"The Hawksmoor Suite Colesdane, Stede Hill, Harrietsham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1996-2002,2014-08-13 07:06:26,owner-occupied,24.0,11.0,200003715270.0,Address Matched +1478971699962016091318444517778036,"10, Leigh Avenue",,,ME15 9UY,3179917478,D,C,65,77,House,Detached,2016-09-13,E07000110,E14000804,Kent,2016-09-13,marketed sale,58,70,224,150.0,5.6,39,3.8,135.0,75.0,960.0,902.0,149.0,89.0,141.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,5.0,5.0,21.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 21% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,2.41,,N,natural,"10, Leigh Avenue",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2016-09-13 18:44:45,owner-occupied,,,200003675511.0,Address Matched +172151460832008102820443047268296,"29, Cheshire Road",,,ME15 8HN,6657243568,D,C,65,79,House,Mid-Terrace,2008-10-28,E07000110,E14000700,Kent,2008-10-28,marketed sale,60,76,285,172.0,3.5,47,2.1,67.0,34.0,389.0,268.0,132.0,88.0,74.8,Single,Y,NO DATA!,,,2107.0,100.0,double glazing installed during or after 2002,Normal,1.0,4.0,4.0,0.0,0.0,From main system,Average,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,,,,"Flat, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Average,Good,"Programmer, TRVs and bypass",Poor,Poor,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,0.0,N,natural,"29, Cheshire Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2008-10-28 20:44:30,owner-occupied,,,200003684872.0,Address Matched +340781538132009080800004701068603,"14, Flume End",,,ME15 6FW,3351685668,C,C,70,74,House,Detached,2009-08-07,E07000110,E14000804,Kent,2009-08-08,marketed sale,67,70,224,207.0,3.1,37,2.9,90.0,47.0,437.0,425.0,120.0,120.0,99.72,dual,Y,NO DATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,7.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 7% of fixed outlets,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.32,0.0,N,natural,"14, Flume End",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2009-08-08 00:00:47,owner-occupied,,,200003715900.0,Address Matched +1509944089062017010916061269718163,"11, Birnam Square",,,ME16 8UN,6670839478,D,C,64,78,House,End-Terrace,2017-01-09,E07000110,E14000804,Kent,2017-01-09,rental (social),58,73,230,136.0,4.3,40,2.6,124.0,67.0,671.0,667.0,188.0,90.0,107.0,Single,Y,NODATA!,,,2107.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,14.0,0.0,"From main system, no cylinder thermostat",Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, partial insulation (assumed)",Average,Average,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 14% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"11, Birnam Square",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1976-1982,2017-01-09 16:06:12,rental (social),,,200003668209.0,Address Matched +301356000962009062417035593808051,"27, Willington Green",,,ME15 8AY,5923013668,C,C,72,73,Flat,Semi-Detached,2009-06-10,E07000110,E14000700,Kent,2009-06-24,rental (social),69,69,297,292.0,2.0,50,2.0,31.0,19.0,314.0,317.0,66.0,66.0,40.61,Single,Y,Ground,N,2.0,2106.0,100.0,double glazing installed before 2002,Normal,0.0,1.0,1.0,40.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 40% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.37,0.0,N,natural,"27, Willington Green",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2009-06-24 17:03:55,rental (social),,,200003684530.0,Address Matched +735499619262013062019085884908887,"16, Salisbury Road",Penenden Heath,,ME14 2TX,8869124968,D,B,61,84,House,Mid-Terrace,2013-06-20,E07000110,E14000804,Kent,2013-06-20,marketed sale,57,83,227,79.0,4.1,44,1.5,85.0,56.0,687.0,455.0,115.0,79.0,95.0,dual,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,1.0,5.0,5.0,50.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, mains gas",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"16, Salisbury Road, Penenden Heath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2013-06-20 19:08:58,owner-occupied,10.0,5.0,200003703355.0,Address Matched +68359016152018091716482794980449,"73, Kingsley Road",,,ME15 7UP,4921644468,C,B,73,85,House,Mid-Terrace,2018-09-17,E07000110,E14000804,Kent,2018-09-17,ECO assessment,71,82,174,94.0,2.9,31,1.6,63.0,63.0,494.0,471.0,107.0,77.0,95.0,Unknown,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,6.0,6.0,100.0,0.0,From main system,Very Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, with external insulation",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"73, Kingsley Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2018-09-17 16:48:27,owner-occupied,,,200003695902.0,Address Matched +585471729102011012711495585392998,"14, Weyhill Close",,,ME14 5SQ,3125623868,C,C,69,74,House,Detached,2011-01-21,E07000110,E14000804,Kent,2011-01-27,rental (private),65,70,241,206.0,3.3,40,2.8,85.0,45.0,482.0,460.0,149.0,116.0,82.08,Single,Y,NO DATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,10.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,Programmer and room thermostat,Average,Average,Low energy lighting in 10% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.32,0.0,N,natural,"14, Weyhill Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1976-1982,2011-01-27 11:49:55,rental (private),,,200003673333.0,Address Matched +321600220812014020415591795040067,1 Fleet Farm Cottages,Chart Hill Road,Staplehurst,TN12 0RW,738054668,D,B,64,88,House,Semi-Detached,2014-02-04,E07000110,E14000804,Kent,2014-02-04,none of the above,62,88,205,49.0,3.7,39,1.0,104.0,55.0,644.0,450.0,118.0,78.0,94.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,5.0,5.0,10.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 10% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"1 Fleet Farm Cottages, Chart Hill Road, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: before 1900,2014-02-04 15:59:17,owner-occupied,10.0,1.0,200003721465.0,Address Matched +1810903102002020071614284674109258,"1, Atwater Court",Lenham,,ME17 2PW,6059001778,D,C,58,80,House,End-Terrace,2020-07-15,E07000110,E14000700,Kent,2020-07-16,marketed sale,38,59,395,228.0,7.6,67,4.4,139.0,93.0,1239.0,883.0,249.0,132.0,115.0,dual,N,NODATA!,,,2401.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,50.0,0.0,"Electric immersion, off-peak",Average,Poor,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,"Roof room(s), ceiling insulated",Good,Good,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 50% of fixed outlets,Good,Good,electricity (not community),0.0,NO DATA!,,,,N,natural,"1, Atwater Court, Lenham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2020-07-16 14:28:46,owner-occupied,,,200003711152.0,Address Matched +421150139922010011416414531748370,4 Oak Mews,Bicknor Road,,ME15 9PS,7391341768,D,D,66,67,Flat,Semi-Detached,2010-01-14,E07000110,E14000700,Kent,2010-01-14,new dwelling,76,77,227,221.0,1.7,34,1.6,45.0,27.0,171.0,177.0,235.0,235.0,48.72,standard tariff,,mid floor,,,2605.0,,NO DATA!,NO DATA!,,,,,0.0,"Electric immersion, standard tariff",Very Poor,Poor,(other premises below),,,Fully double glazed,Good,Good,Average thermal transmittance 0.25 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.06 W/m?K,Very Good,Very Good,"Room heaters, electric",Very Poor,Poor,Programmer and room thermostats,Good,Good,Low energy lighting in 33% of fixed outlets,Average,Average,"Electricity: electricity, unspecified tariff",0.0,NO DATA!,,2.4,,,NO DATA!,"4 Oak Mews, Bicknor Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2010-01-14 16:41:45,,,,10022897002.0,Address Matched +1444966077412016061517144597960742,Flat 1-4,"74, Kingsley Road",,ME15 7UW,7282774478,D,C,63,79,Flat,Mid-Terrace,2016-05-18,E07000110,E14000804,Kent,2016-06-15,rental (private),41,80,402,125.0,5.9,68,1.9,84.0,60.0,564.0,317.0,327.0,125.0,87.0,Unknown,Y,Ground,N,,2402.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,75.0,0.0,"Electric immersion, off-peak",Average,Poor,(another dwelling below),NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,Portable electric heaters (assumed),,,"Roof room(s), insulated (assumed)",Good,Good,Electric storage heaters,Average,Very Poor,Automatic charge control,Average,Average,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,electricity (not community),0.0,no corridor,,2.44,,N,natural,"Flat 1-4, 74, Kingsley Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2016-06-15 17:14:45,rental (private),,,200003696056.0,Address Matched +1512939519332017012112240783978905,"1a, Forge Lane",Headcorn,,TN27 9QG,1593959478,D,C,67,78,House,Detached,2017-01-19,E07000110,E14000700,Kent,2017-01-21,marketed sale,61,72,186,123.0,5.2,34,3.6,118.0,91.0,915.0,851.0,140.0,89.0,154.0,dual,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,2.0,7.0,7.0,70.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 70% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"1a, Forge Lane, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,England and Wales: 1983-1990,2017-01-21 12:24:07,owner-occupied,,,200003699998.0,Address Matched +597960371652016082621240693260089,"27, Waverley Close",Coxheath,,ME17 4HL,983134868,C,B,69,90,Bungalow,Semi-Detached,2016-08-26,E07000110,E14000804,Kent,2016-08-26,rental (social),69,90,248,56.0,2.1,44,0.5,44.0,34.0,388.0,316.0,90.0,60.0,47.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,71.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 71% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,2.36,,N,natural,"27, Waverley Close, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1976-1982,2016-08-26 21:24:06,rental (social),,,200003712397.0,Address Matched +1092159079262014082713480959468834,111a Merton Road,,,ME15 8LR,3523789178,C,C,76,76,Flat,NO DATA!,2014-08-26,E07000110,E14000700,Kent,2014-08-27,new dwelling,80,80,189,189.0,1.2,33,1.2,25.0,25.0,252.0,252.0,71.0,71.0,35.0,standard tariff,,top floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.78 W/m-¦K,Very Poor,Very Poor,Fully double glazed,Average,Average,Average thermal transmittance 0.41 W/m-¦K,Good,Good,,,,Average thermal transmittance 0.12 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,111a Merton Road,Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2014-08-27 13:48:09,unknown,100.0,100.0,10014316056.0,Address Matched +1486393909022016100714532097668056,"8, Conway Road",,,ME16 0HD,5978077478,D,C,59,74,House,Detached,2016-10-06,E07000110,E14000804,Kent,2016-10-07,marketed sale,51,66,263,168.0,6.0,46,3.9,123.0,72.0,1062.0,936.0,150.0,89.0,130.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,More Than Typical,3.0,5.0,5.0,30.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 30% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,2.3,,N,natural,"8, Conway Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2016-10-07 14:53:20,owner-occupied,,,200003659155.0,Address Matched +923686499762013050112453547008187,Maundy House,North Street,Barming,ME16 9HE,8445987078,E,C,49,79,House,Detached,2013-04-30,E07000110,E14000804,Kent,2013-05-01,marketed sale,51,81,265,102.0,8.0,42,3.0,120.0,79.0,1686.0,851.0,147.0,101.0,192.0,Unknown,Y,NODATA!,,,2105.0,0.0,not defined,Normal,1.0,7.0,7.0,44.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, wood logs",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and at least two room thermostats,Good,Good,Low energy lighting in 44% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"Maundy House, North Street, Barming",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2013-05-01 12:45:35,owner-occupied,16.0,7.0,200003666456.0,Address Matched +389313359062013020815213759158527,"476, Tonbridge Road",,,ME16 9JA,2554529668,D,C,64,80,House,Mid-Terrace,2013-02-05,E07000110,E14000804,Kent,2013-02-08,marketed sale,62,79,217,107.0,3.3,42,1.7,45.0,45.0,574.0,489.0,103.0,80.0,79.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"476, Tonbridge Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2013-02-08 15:21:37,owner-occupied,10.0,10.0,200003681600.0,Address Matched +1692333329132019022113403730278205,58b Marsham Street,,,ME14 1EW,2530242678,D,C,61,80,Flat,Mid-Terrace,2019-01-23,E07000110,E14000804,Kent,2019-02-21,rental (private),65,86,354,137.0,1.9,60,0.8,27.0,27.0,441.0,147.0,150.0,68.0,32.0,Unknown,Y,1st,N,,2603.0,100.0,"double glazing, unknown install date",Normal,0.0,1.0,1.0,100.0,0.0,Electric instantaneous at point of use,Very Poor,Poor,(another dwelling below),NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,(another dwelling above),,,"Room heaters, electric",Very Poor,Poor,Programmer and appliance thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,unheated corridor,5.19,,,N,natural,58b Marsham Street,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2019-02-21 13:40:37,rental (private),,,200003728969.0,Address Matched +157138660342008100215091957180128,"33, Foxglove Rise",,,ME14 2AF,4337261568,C,C,70,77,House,End-Terrace,2008-10-02,E07000110,E14000804,Kent,2008-10-02,rental (private),66,74,266,208.0,2.6,44,2.0,53.0,26.0,308.0,268.0,99.0,79.0,58.62,Single,Y,NO DATA!,,,2107.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Poor,Poor,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.35,0.0,N,natural,"33, Foxglove Rise",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1991-1995,2008-10-02 15:09:19,rental (private),,,200003722781.0,Address Matched +556821309142010102411044984102548,2 Den Cottages,Den Lane,Collier Street,TN12 9PX,6116201868,F,F,27,31,House,Semi-Detached,2010-10-24,E07000110,E14000804,Kent,2010-10-24,marketed sale,23,27,524,484.0,10.0,108,9.3,78.0,78.0,1439.0,1323.0,267.0,245.0,72.65,dual,N,NO DATA!,,,2107.0,67.0,"double glazing, unknown install date",Normal,1.0,4.0,4.0,60.0,1.0,From main system,Poor,Poor,"Solid, no insulation (assumed)",,,Partial double glazing,Poor,Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Roof room(s), ceiling insulated",Very Poor,Very Poor,"Boiler and radiators, oil",Poor,Poor,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 60% of fixed outlets,Good,Good,oil - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,1.92,0.0,N,natural,"2 Den Cottages, Den Lane, Collier Street",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: before 1900,2010-10-24 11:04:49,owner-occupied,,,200003662104.0,Address Matched +127668119302012091116174247929508,"3, Sutton Heights",,,ME15 8SF,7304719468,C,B,77,87,House,Mid-Terrace,2012-09-10,E07000110,E14000700,Kent,2012-09-11,marketed sale,78,88,114,51.0,2.5,21,1.2,98.0,62.0,404.0,414.0,115.0,71.0,119.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,6.0,5.0,42.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",,,Fully double glazed,Good,Good,"Timber frame, as built, insulated (assumed)",Good,Good,Portable electric heaters (assumed),,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 42% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"3, Sutton Heights",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2003-2006,2012-09-11 16:17:42,owner-occupied,12.0,5.0,10022892963.0,Address Matched +162093107252019120213034794010157,Flat 9 St. Luke's Court,"50-54, Boxley Road",,ME14 2GA,1700742568,B,B,81,85,Flat,Mid-Terrace,2019-09-06,E07000110,E14000804,Kent,2019-12-02,rental (private),74,76,200,189.0,1.7,34,1.6,58.0,58.0,133.0,107.0,194.0,154.0,51.0,Unknown,N,2nd,N,,2401.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,86.0,0.0,"Electric immersion, off-peak",Poor,Poor,(another dwelling below),NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,(another dwelling above),,,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 86% of fixed outlets,Very Good,Very Good,electricity (not community),0.0,unheated corridor,1.32,,,N,natural,"Flat 9 St. Luke's Court, 50-54, Boxley Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2019-12-02 13:03:47,rental (private),,,200003655104.0,Address Matched +1023142599962013101112075414598807,"9b, All Angels Close",,,ME16 8FR,106994178,B,B,85,85,House,Detached,2013-10-11,E07000110,E14000804,Kent,2013-10-11,new dwelling,84,84,73,73.0,2.9,14,2.9,95.0,95.0,553.0,553.0,104.0,104.0,208.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.16 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.26 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.15 W/m?K,Very Good,Very Good,"Boiler and underfloor heating, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in 86% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"9b, All Angels Close",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2013-10-11 12:07:54,NO DATA!,29.0,25.0,10014314794.0,Address Matched +1164143236952014062918451499240127,"38, Ham Lane",Lenham,,ME17 2LL,1743694278,D,B,62,88,House,Semi-Detached,2014-06-27,E07000110,E14000700,Kent,2014-06-29,assessment for green deal,61,89,234,49.0,3.3,45,0.7,92.0,46.0,479.0,354.0,213.0,75.0,73.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,0.0,0.0,From main system,Average,Average,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"38, Ham Lane, Lenham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1991-1995,2014-06-29 18:45:14,owner-occupied,10.0,0.0,200003712625.0,Address Matched +748114039022012020818530825688262,4 Court Lodge Cottages,Lower Road,East Farleigh,ME15 0JL,6239345968,C,C,72,75,House,Mid-Terrace,2012-02-08,E07000110,E14000804,Kent,2012-02-08,marketed sale,67,71,148,129.0,8.0,28,7.0,181.0,93.0,1221.0,1126.0,128.0,115.0,279.26,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,8.0,8.0,5.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Solid brick, as built, insulated (assumed)",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 5% of fixed outlets,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,2.54,0.0,,natural,"4 Court Lodge Cottages, Lower Road, East Farleigh",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2012-02-08 18:53:08,owner-occupied,22.0,1.0,200003673724.0,Address Matched +716870589042011102613533497292668,"17, Wrangleden Close",,,ME15 9LL,3018782968,E,D,53,67,Bungalow,Semi-Detached,2011-10-26,E07000110,E14000700,Kent,2011-10-26,rental (private),49,67,338,217.0,4.3,65,2.8,62.0,36.0,653.0,455.0,141.0,102.0,66.55,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,1.0,4.0,4.0,27.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 27% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,2.32,0.0,,natural,"17, Wrangleden Close",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2011-10-26 13:53:34,rental (private),11.0,3.0,200003682497.0,Address Matched +528206309922010081906582239288600,"2, Mill Bank",Headcorn,,TN27 9RD,354009768,D,D,56,65,House,Detached,2010-08-18,E07000110,E14000700,Kent,2010-08-19,marketed sale,48,56,292,234.0,6.4,55,5.3,119.0,63.0,850.0,728.0,144.0,116.0,116.94,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,6.0,6.0,11.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, smokeless fuel",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 11% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.37,0.0,N,natural,"2, Mill Bank, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,England and Wales: 1950-1966,2010-08-19 06:58:22,owner-occupied,,,200003698773.0,Address Matched +563099819022010110915413511518170,"26, Plains Avenue",,,ME15 7AU,7151151868,D,C,66,69,House,Semi-Detached,2010-11-09,E07000110,E14000700,Kent,2010-11-09,marketed sale,62,64,256,242.0,3.9,42,3.7,83.0,49.0,588.0,573.0,118.0,118.0,91.24,Single,Y,NO DATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,30.0,1.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 30% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.44,0.0,N,natural,"26, Plains Avenue",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2010-11-09 15:41:35,owner-occupied,,,200003683670.0,Address Matched +d3718d9d75cc59bf791dc33f4b65e29f818e0cb5782107729697cb7e7dfa92b3,4 KNOTT COURT,,,ME14 2XH,10001548332,D,B,68,85,House,Mid-Terrace,2021-06-26,E07000110,E14000804,Kent,2021-07-30,not sale or rental,65,83,217,88.0,2.8,38,1.2,73.0,73.0,457.0,393.0,125.0,76.0,74.0,Single,Y,,,,,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,83.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 83% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.6,0.0,N,natural,4 KNOTT COURT,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1991-1995,2021-07-30 14:55:19,Rented (social),12.0,,200003704727.0,Energy Assessor +317086719342010021020154160409008,Apartment 7,7 Bazalgette Rise,,ME16 8FJ,1300914668,B,B,87,87,Flat,Enclosed Mid-Terrace,2010-02-10,E07000110,E14000804,Kent,2010-02-10,rental (social),86,86,127,127.0,0.9,21,0.9,25.0,25.0,171.0,171.0,76.0,76.0,44.0,Unknown,Y,1st,N,5.0,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,100.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Good,Good,"Timber frame, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,unheated corridor,9.2,2.55,0.0,N,natural,"Apartment 7, 7 Bazalgette Rise",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2010-02-10 20:15:41,rental (social),,,10014308166.0,Address Matched +d376a29235cdba9d1b01392184ecc52c76ebf404f5f72b9a0a272b36316bed42,2 Cedar Court,Ardenlee Drive,,ME14 5LT,1762187378,C,C,75,77,Flat,Semi-Detached,2021-08-10,E07000110,E14000804,Kent,2021-08-10,rental,73,77,160,137.0,2.7,28,2.3,78.0,78.0,457.0,386.0,98.0,98.0,95.0,Unknown,Y,00,N,,,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Average,Average,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,6.12,2.31,0.0,N,natural,"2 Cedar Court, Ardenlee Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2021-08-10 14:08:00,Rented (private),9.0,,200003705882.0,Energy Assessor +371780899802012072015453565722808,"23, Bell Meadow",,,ME15 9NB,3804997668,C,B,75,88,House,Semi-Detached,2012-07-20,E07000110,E14000700,Kent,2012-07-20,marketed sale,72,90,140,40.0,2.2,28,0.7,62.0,46.0,600.0,409.0,147.0,75.0,81.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,64.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 64% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,,natural,"23, Bell Meadow",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2012-07-20 15:45:35,owner-occupied,11.0,7.0,200003682577.0,Address Matched +1510887383312017011211112794930841,"24a, Union Street",,,ME14 1ED,8182349478,D,C,60,74,Flat,Mid-Terrace,2017-01-12,E07000110,E14000804,Kent,2017-01-12,rental (private),54,74,300,170.0,3.7,53,2.1,64.0,50.0,681.0,406.0,114.0,79.0,70.0,Unknown,Y,1st,Y,,2104.0,0.0,not defined,Normal,1.0,3.0,3.0,70.0,0.0,From main system,Good,Good,(other premises below),NO DATA!,,Single glazed,Very Poor,Very Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 70% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,no corridor,,,,N,natural,"24a, Union Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2017-01-12 11:11:27,rental (private),,,200003688604.0,Address Matched +458694861552011033112363091790078,"11, Trinity Way",,,ME15 9FY,876114768,A,A,97,98,House,Mid-Terrace,2011-03-31,E07000110,E14000700,Kent,2011-03-31,new dwelling,91,92,63,59.0,0.7,11,0.7,46.0,34.0,225.0,227.0,122.0,122.0,63.14,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,,From main system,Good,Good,Average thermal transmittance 0.18 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m?K,Very Good,Very Good,"Room heaters, electric",,,Average thermal transmittance 0.10 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in 67% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.31,,,NO DATA!,"11, Trinity Way",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2011-03-31 12:36:30,,,,10014311443.0,Address Matched +1763545459902019110618365468710258,Flat 10,9 Sittingbourne Road,,ME14 5ET,9965557678,E,E,47,47,Flat,Detached,2019-11-05,E07000110,E14000804,Kent,2019-11-06,rental (private),40,40,542,542.0,4.0,96,4.0,35.0,35.0,671.0,671.0,103.0,103.0,42.0,Unknown,Y,3rd,Y,,2307.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,100.0,0.0,Community scheme,Good,Good,(another dwelling below),NO DATA!,,Fully double glazed,Good,Good,"Timber frame, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,Community scheme,Good,Good,"Flat rate charging, TRVs",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (community),0.0,unheated corridor,2.05,,,N,natural,"Flat 10, 9 Sittingbourne Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2019-11-06 18:36:54,rental (private),,,10095448169.0,Address Matched +469541549922010041413311574648550,"89, Bower Street",,,ME16 8BB,5793484768,C,C,70,70,House,Mid-Terrace,2010-04-14,E07000110,E14000804,Kent,2010-04-14,rental (private),65,65,262,260.0,2.9,44,2.9,43.0,34.0,472.0,473.0,86.0,86.0,66.91,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,4.0,4.0,75.0,0.0,From main system,Very Good,Very Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, mains gas",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.58,0.0,N,natural,"89, Bower Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2010-04-14 13:31:15,rental (private),,,200003667228.0,Address Matched +869163477452013010417381390070905,"33, Monkdown",Downswood,,ME15 8SP,9552704078,D,B,67,89,House,Semi-Detached,2013-01-04,E07000110,E14000700,Kent,2013-01-04,marketed sale,69,91,218,40.0,2.0,42,0.4,59.0,29.0,363.0,319.0,74.0,53.0,48.0,Single,Y,NODATA!,,,2107.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"33, Monkdown, Downswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2013-01-04 17:38:13,owner-occupied,4.0,0.0,200003691504.0,Address Matched +1709116919222019032717333523998451,Flat 19,Cornwallis House,Pudding Lane,ME14 1NY,5209163678,D,D,64,64,Flat,Detached,2019-02-21,E07000110,E14000804,Kent,2019-03-27,new dwelling,68,68,222,222.0,2.1,38,2.1,44.0,44.0,460.0,460.0,177.0,177.0,55.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,Electric instantaneous at point of use,Very Poor,Very Poor,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.28 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.14 W/m-¦K,Very Good,Very Good,"Room heaters, electric",Very Poor,Poor,Programmer and appliance thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"Flat 19, Cornwallis House, Pudding Lane",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2019-03-27 17:33:35,owner-occupied,8.0,8.0,, +1598880969512018010520204796080856,"24, Barham Mews",Teston,,ME18 5BL,8635965578,D,C,59,75,Flat,End-Terrace,2018-01-05,E07000110,E14000804,Kent,2018-01-05,rental (private),40,59,554,349.0,4.1,94,2.6,76.0,39.0,506.0,268.0,153.0,131.0,44.0,dual,N,Ground,N,,2401.0,0.0,not defined,Normal,0.0,3.0,3.0,0.0,0.0,"Electric immersion, off-peak",Average,Poor,"Solid, no insulation (assumed)",NO DATA!,,Single glazed,Very Poor,Very Poor,"Solid brick, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,(another dwelling above),,,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,No low energy lighting,Very Poor,Very Poor,electricity (not community),0.0,no corridor,,,,N,natural,"24, Barham Mews, Teston",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2018-01-05 20:20:47,rental (private),,,10022892659.0,Address Matched +1671355379962018101608471540768158,"27, Chestnut Road",Allington,,ME16 9FR,5416780678,B,B,84,86,House,Detached,2018-10-16,E07000110,E14000804,Kent,2018-10-16,new dwelling,86,89,83,67.0,1.2,15,1.0,63.0,63.0,217.0,218.0,92.0,50.0,85.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.20 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.16 W/m-¦K,Good,Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"27, Chestnut Road, Allington",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2018-10-16 08:47:15,unknown,13.0,13.0,10093306555.0,Address Matched +1525087849942017030613222854030568,"19, Watersmeet Close",,,ME15 6GW,6955340578,D,B,68,86,House,Semi-Detached,2017-03-06,E07000110,E14000804,Kent,2017-03-06,rental (private),65,84,234,92.0,2.8,41,1.1,88.0,51.0,444.0,412.0,143.0,69.0,68.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,27.0,0.0,From main system,Good,Good,"Solid, limited insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 27% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"19, Watersmeet Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2017-03-06 13:22:28,rental (private),,,10022892186.0,Address Matched +187017008112008111811344804989851,"12, Garrington Close",,,ME14 5RP,8102844568,D,C,57,75,House,Semi-Detached,2008-11-18,E07000110,E14000804,Kent,2008-11-18,rental (private),50,71,363,209.0,4.5,61,2.6,59.0,33.0,509.0,322.0,140.0,92.0,74.0,Single,Y,NO DATA!,,,2104.0,25.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,22.0,0.0,"From main system, no cylinderstat",Average,Average,"Solid, no insulation (assumed)",,,Partial double glazing,Poor,Poor,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Poor,Poor,Low energy lighting in 22% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.37,0.0,N,natural,"12, Garrington Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2008-11-18 11:34:48,rental (private),,,200003672179.0,Address Matched +1536191729062017110208165661228993,"12, Cascade Close",Marden,,TN12 9FW,9674221578,B,A,85,96,House,Semi-Detached,2017-11-02,E07000110,E14000804,Kent,2017-11-02,new dwelling,87,98,76,2.0,1.2,13,0.1,61.0,61.0,206.0,206.0,84.0,50.0,93.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.28 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"12, Cascade Close, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,NO DATA!,2017-11-02 08:16:56,owner-occupied,10.0,10.0,10093303358.0,Address Matched +290752310222009052216142972498561,"27, Randall Street",,,ME14 2TB,6741132668,F,E,34,40,House,Mid-Terrace,2009-05-21,E07000110,E14000804,Kent,2009-05-22,non marketed sale,39,45,468,414.0,8.5,66,7.3,122.0,61.0,1389.0,1276.0,123.0,109.0,127.68,Single,Y,NO DATA!,,,2104.0,0.0,single glazing,Normal,0.0,5.0,5.0,0.0,3.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Poor,Poor,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.06,0.0,N,natural,"27, Randall Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2009-05-22 16:14:29,owner-occupied,,,200003669803.0,Address Matched +1486396979042016100711294143760738,"4, Barming Walk",Barming,,ME16 9AH,6090077478,B,B,83,83,Flat,NO DATA!,2016-10-07,E07000110,E14000804,Kent,2016-10-07,new dwelling,89,89,75,75.0,0.8,13,0.8,47.0,47.0,163.0,163.0,107.0,107.0,62.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.20 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"4, Barming Walk, Barming",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2016-10-07 11:29:41,unknown,15.0,15.0,10091195806.0,Address Matched +98857144032010042117415634268005,"29, Orbit Close",,,ME5 9NF,4594007468,D,C,67,72,House,Mid-Terrace,2010-04-21,E07000110,E14000700,Kent,2010-04-21,rental (private),59,64,369,327.0,3.1,56,2.7,41.0,31.0,313.0,252.0,127.0,127.0,63.36,dual,N,NO DATA!,,,2401.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,71.0,0.0,"Electric immersion, off-peak",Poor,Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,Portable electric heaters,,,"Pitched, 100 mm loft insulation",Average,Average,Electric storage heaters,Poor,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 71% of fixed outlets,Very Good,Very Good,electricity - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.26,0.0,N,natural,"29, Orbit Close",Maidstone,Faversham and Mid Kent,CHATHAM,England and Wales: 1983-1990,2010-04-21 17:41:56,rental (private),,,200003708071.0,Address Matched +1008555517552013091717465299970013,"144, Roseholme",,,ME16 8DT,361793178,C,C,72,78,Flat,End-Terrace,2013-09-17,E07000110,E14000804,Kent,2013-09-17,marketed sale,73,81,175,125.0,1.9,34,1.3,47.0,36.0,359.0,266.0,81.0,81.0,56.0,Single,Y,3rd,Y,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,67.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 67% of fixed outlets,Good,Good,mains gas (not community),0.0,unheated corridor,5.78,,0.0,,natural,"144, Roseholme",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2013-09-17 17:46:52,owner-occupied,6.0,4.0,200003656409.0,Address Matched +878046669712013020110325096770702,24 Well Road,,,ME14 1XL,7287964078,C,C,76,76,House,Mid-Terrace,2013-01-30,E07000110,E14000804,Kent,2013-02-01,new dwelling,79,79,145,145.0,1.6,28,1.6,36.0,36.0,314.0,314.0,73.0,73.0,58.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.25 W/m?K,Good,Good,Fully double glazed,Good,Good,Average thermal transmittance 0.29 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.15 W/m?K,Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,24 Well Road,Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2013-02-01 10:32:50,NO DATA!,0.0,0.0,200003697451.0,Address Matched +1135933699142014050611283720240968,"6, Frinstead Walk",,,ME16 0NN,5146292278,D,B,68,81,House,Detached,2014-05-06,E07000110,E14000804,Kent,2014-05-06,marketed sale,66,79,167,90.0,4.3,32,2.4,125.0,68.0,736.0,644.0,125.0,84.0,133.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,1.0,7.0,7.0,16.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 16% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"6, Frinstead Walk",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2014-05-06 11:28:37,owner-occupied,25.0,4.0,200003706769.0,Address Matched +438433310532015100706261545068090,"65, Clifford Way",,,ME16 8GD,1065072768,C,C,77,79,Flat,Enclosed End-Terrace,2015-10-06,E07000110,E14000804,Kent,2015-10-07,marketed sale,79,80,139,127.0,1.7,24,1.6,105.0,53.0,249.0,256.0,131.0,131.0,71.0,Unknown,Y,5th,Y,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,0.0,0.0,From main system,Good,Good,(another dwelling below),NO DATA!,,Fully double glazed,Good,Good,"System built, as built, insulated (assumed)",Good,Good,,,,"Flat, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,heated corridor,,,,N,natural,"65, Clifford Way",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2015-10-07 06:26:15,owner-occupied,,,10022896078.0,Address Matched +1011111421732013092012351223978205,Marokise,South Street Road,Stockbury,ME9 7RB,2583214178,F,B,37,86,Bungalow,Detached,2013-09-16,E07000110,E14000700,Kent,2013-09-20,marketed sale,32,77,392,75.0,6.5,88,1.7,83.0,44.0,1027.0,496.0,336.0,107.0,74.0,Single,N,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,13.0,2.0,"Electric immersion, standard tariff",Very Poor,Very Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, oil",Average,Average,Programmer and room thermostat,Average,Average,Low energy lighting in 13% of fixed outlets,Poor,Poor,oil (not community),0.0,NO DATA!,,,0.0,,natural,"Marokise, South Street Road, Stockbury",Maidstone,Faversham and Mid Kent,SITTINGBOURNE,England and Wales: 1967-1975,2013-09-20 12:35:12,owner-occupied,8.0,1.0,200003700674.0,Address Matched +612639039062011040116480175498499,3 Manor Cottages,East Sutton Hill,East Sutton,ME17 3DJ,9733345868,E,D,39,59,House,Semi-Detached,2011-04-01,E07000110,E14000700,Kent,2011-04-01,rental (private),33,51,598,387.0,5.9,100,3.8,52.0,32.0,885.0,646.0,210.0,109.0,59.11,Single,Y,NO DATA!,,,2104.0,55.0,double glazing installed during or after 2002,Normal,2.0,5.0,5.0,36.0,1.0,"From main system, no cylinder thermostat",Poor,Average,"Suspended, no insulation (assumed)",,,Partial double glazing,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Average,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 36% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,3.03,0.0,N,natural,"3 Manor Cottages, East Sutton Hill, East Sutton",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2011-04-01 16:48:01,rental (private),,,10014309704.0,Address Matched +396466834612010042712323297200260,Flat 8,Horsemonden House,Coombe Road,ME15 6ZF,2024479668,C,C,76,77,Flat,NO DATA!,2010-04-27,E07000110,E14000804,Kent,2010-04-27,new dwelling,83,83,141,136.0,1.5,21,1.5,60.0,40.0,172.0,177.0,178.0,178.0,71.2,standard tariff,,top floor,,,,,NO DATA!,NO DATA!,,,,4.0,,From main system,Poor,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.14 W/m?K,Very Good,Very Good,"Air source heat pump, radiators, electric",Poor,Good,Programmer and at least two room thermostats,Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,"Electricity: electricity, unspecified tariff",0.0,NO DATA!,,2.42,,,NO DATA!,"Flat 8, Horsemonden House, Coombe Road",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2010-04-27 12:32:32,,8.0,4.0,10014307391.0,Address Matched +1772062212642020082409512562802048,"11, Broad Drive",Boughton Monchelsea,,ME17 4SW,5646918678,B,B,83,83,Maisonette,Semi-Detached,2020-08-24,E07000110,E14000804,Kent,2020-08-24,new dwelling,87,87,97,97.0,1.0,17,1.0,52.0,52.0,184.0,184.0,63.0,63.0,57.0,standard tariff,,top floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.17 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.20 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"11, Broad Drive, Boughton Monchelsea",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2020-08-24 09:51:25,unknown,10.0,10.0,10094442584.0,Address Matched +607844419222011032211011005228279,"10, Littlebourne Road",,,ME14 5QP,7002105868,C,C,69,75,House,Semi-Detached,2011-03-22,E07000110,E14000804,Kent,2011-03-22,marketed sale,65,71,239,196.0,3.5,40,2.8,85.0,47.0,506.0,444.0,153.0,131.0,86.7,Single,Y,NO DATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,1.0,4.0,4.0,20.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 20% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.42,0.0,N,natural,"10, Littlebourne Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2011-03-22 11:01:10,owner-occupied,,,200003671717.0,Address Matched +420383051812010011317331994900476,"3, Hampson Way",Bearsted,,ME14 4AL,4667141768,D,C,57,69,House,Detached,2010-01-13,E07000110,E14000700,Kent,2010-01-13,marketed sale,50,64,320,225.0,5.9,54,4.1,68.0,68.0,827.0,600.0,182.0,129.0,109.1,Single,Y,NO DATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,6.0,6.0,80.0,0.0,From main system,Average,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Average,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.44,0.0,N,natural,"3, Hampson Way, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2010-01-13 17:33:19,owner-occupied,,,200003691748.0,Address Matched +1096862227452014022519301691240822,"29, Carmans Close",Loose,,ME15 0DR,8203710278,C,B,77,91,House,End-Terrace,2014-02-25,E07000110,E14000804,Kent,2014-02-25,marketed sale,79,93,120,25.0,1.8,23,0.4,69.0,52.0,297.0,299.0,133.0,66.0,80.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,67.0,0.0,"From main system, no cylinder thermostat",Average,Average,"Solid, insulated (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 67% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"29, Carmans Close, Loose",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2014-02-25 19:30:16,owner-occupied,21.0,14.0,10014306514.0,Address Matched +1738375979542019072320241960512678,"88, Amsbury Road",Hunton,,ME15 0QH,7501575678,D,C,61,75,House,Detached,2019-07-23,E07000110,E14000804,Kent,2019-07-23,marketed sale,52,67,252,162.0,6.9,44,4.5,187.0,93.0,1111.0,962.0,153.0,95.0,157.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,2.0,8.0,8.0,0.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,"Room heaters, mains gas",,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"88, Amsbury Road, Hunton",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2019-07-23 20:24:19,owner-occupied,,,200003669649.0,Address Matched +629896879842011051616254786699868,Pepper Cottage,Vicarage Road,Yalding,ME18 6DY,8889176868,E,D,53,58,House,Semi-Detached,2011-05-16,E07000110,E14000804,Kent,2011-05-16,none of the above,45,50,228,204.0,11.0,51,9.9,114.0,76.0,1764.0,1608.0,162.0,144.0,152.67,Single,N,NODATA!,,,2106.0,10.0,double glazing installed during or after 2002,Normal,1.0,6.0,6.0,50.0,2.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Some double glazing,Very Poor,Very Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, oil",Average,Average,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,oil (not community),0.0,NO DATA!,,2.4,0.0,,natural,"Pepper Cottage, Vicarage Road, Yalding",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2011-05-16 16:25:47,unknown,12.0,6.0,10014307863.0,Address Matched +602493869202011031122561781499198,"26, Albert Street",,,ME14 2RN,272864868,E,E,51,54,House,End-Terrace,2011-03-11,E07000110,E14000804,Kent,2011-03-11,rental (private),47,49,380,360.0,5.1,64,4.9,55.0,43.0,869.0,836.0,111.0,105.0,80.146,Single,Y,NO DATA!,,,2107.0,30.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,73.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Some double glazing,Poor,Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 73% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.45,0.0,N,natural,"26, Albert Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2011-03-11 22:56:17,rental (private),,,200003669550.0,Address Matched +239029909042018081007070654880118,"32, Grace Avenue",,,ME16 0BU,7041908568,E,C,44,78,Bungalow,Semi-Detached,2018-08-09,E07000110,E14000804,Kent,2018-08-10,marketed sale,41,77,383,126.0,5.6,67,1.9,116.0,58.0,1085.0,588.0,100.0,67.0,84.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"32, Grace Avenue",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2018-08-10 07:07:06,owner-occupied,,,200003658518.0,Address Matched +1085287552432014020616221546078707,"24, Cornwall Close",,,ME15 8HY,5756739178,D,B,66,86,House,Mid-Terrace,2014-02-05,E07000110,E14000700,Kent,2014-02-06,none of the above,63,87,197,59.0,3.5,38,1.1,87.0,54.0,628.0,422.0,112.0,70.0,92.0,Single,Y,NODATA!,,,2107.0,100.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,40.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 250mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 40% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"24, Cornwall Close",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2014-02-06 16:22:15,owner-occupied,10.0,4.0,200003684935.0,Address Matched +1726861721212020030916245229000468,"5, Walter Close",Otham,,ME15 8YX,4807194678,B,A,84,93,House,Detached,2020-03-09,E07000110,E14000700,Kent,2020-03-09,new dwelling,84,93,86,32.0,2.1,15,0.8,88.0,88.0,338.0,339.0,101.0,56.0,137.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.10 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.19 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.12 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"5, Walter Close, Otham",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2020-03-09 16:24:52,unknown,10.0,10.0,10094440596.0,Address Matched +104178370942009072116551242712608,"23, Hubble Drive",,,ME15 8HQ,1935877468,D,C,56,69,Bungalow,Semi-Detached,2009-07-20,E07000110,E14000700,Kent,2009-07-21,marketed sale,49,64,419,286.0,4.0,70,2.7,28.0,28.0,441.0,326.0,274.0,193.0,56.69,Single,Y,NO DATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,100.0,0.0,"From main system, no cylinderstat",Poor,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Average,Good,Programmer and room thermostat,Poor,Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.37,0.0,N,natural,"23, Hubble Drive",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2009-07-21 16:55:12,owner-occupied,,,200003684899.0,Address Matched +d40941723d57c4487c4cfe7f443658dcd8381cb46199cf42e3114f1a41e6510d,56 CRANFORD ROAD,,,ME16 9FZ,10001553327,B,B,86,88,House,Semi-Detached,2021-07-13,E07000110,E14000804,Kent,2021-07-13,new dwelling,88,91,73,55.0,0.9,13,0.7,64.0,64.0,197.0,197.0,85.0,48.0,72.0,standard tariff,,,N,,,100.0,,,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.19 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.16 W/m-¦K,Good,Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.31,,,,56 CRANFORD ROAD,Maidstone,Maidstone and The Weald,ALLINGTON,2018,2021-07-13 08:15:46,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,25.0,,10094440378.0,Energy Assessor +627430059042011051111050388699098,"138, Glebe Lane",,,ME16 9BA,1039556868,B,B,81,81,Flat,End-Terrace,2011-05-11,E07000110,E14000804,Kent,2011-05-11,none of the above,84,84,103,103.0,1.4,20,1.4,41.0,41.0,230.0,230.0,88.0,88.0,69.54,Single,Y,2nd,Y,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Good,Good,"Timber frame, as built, insulated (assumed)",Very Good,Very Good,,,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,8.5,2.2,0.0,,natural,"138, Glebe Lane",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2011-05-11 11:05:03,unknown,8.0,8.0,10014306592.0,Address Matched +1013671082352013092517575193270217,"22, Firmin Avenue",Boughton Monchelsea,,ME17 4NN,2756234178,D,B,66,81,House,Detached,2013-09-25,E07000110,E14000700,Kent,2013-09-25,marketed sale,64,81,173,84.0,4.6,33,2.3,142.0,71.0,758.0,637.0,155.0,83.0,140.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,2.0,9.0,9.0,0.0,0.0,From main system,Good,Good,"Suspended, limited insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"22, Firmin Avenue, Boughton Monchelsea",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1996-2002,2013-09-25 17:57:51,owner-occupied,18.0,0.0,200003722509.0,Address Matched +74225442452019051015315899910942,Trimsarene,Cossington Road,,ME5 9JB,9274294468,C,B,70,84,Bungalow,Detached,2019-05-10,E07000110,E14000700,Kent,2019-05-10,marketed sale,60,79,199,102.0,5.2,36,2.7,96.0,96.0,1134.0,680.0,92.0,92.0,145.0,dual,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,7.0,7.0,100.0,0.0,"From main system, plus solar",Very Good,Very Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,Y,natural,"Trimsarene, Cossington Road",Maidstone,Faversham and Mid Kent,CHATHAM,England and Wales: 1950-1966,2019-05-10 15:31:58,owner-occupied,,,200003721831.0,Address Matched +65201580212018022208235495280744,3 Kiln Cottages,The Green,Boughton Monchelsea,ME17 4LT,7425054468,C,B,76,87,House,End-Terrace,2018-02-20,E07000110,E14000700,Kent,2018-02-22,marketed sale,75,86,145,73.0,2.6,25,1.4,92.0,72.0,426.0,430.0,108.0,66.0,104.0,Unknown,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,2.0,5.0,5.0,71.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 270 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 71% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"3 Kiln Cottages, The Green, Boughton Monchelsea",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2007 onwards,2018-02-22 08:23:54,owner-occupied,,,10014307714.0,Address Matched +886940613352013022116541393270305,110b Marion Crescent,,,ME15 7DU,3541335078,B,B,85,85,House,Detached,2013-02-21,E07000110,E14000700,Kent,2013-02-21,new dwelling,86,86,73,73.0,1.7,14,1.7,63.0,63.0,306.0,306.0,78.0,78.0,123.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.17 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.21 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,110b Marion Crescent,Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2013-02-21 16:54:13,NO DATA!,14.0,14.0,10014314619.0,Address Matched +d40ffb7b17b02a81e06ac5c0d57dc9a7328a41a9e9a01e44bc6be0b6eaf0d383,"2, Bramble Close",Coxheath,,ME17 4UA,10001411496,B,A,83,94,House,Detached,2021-09-01,E07000110,E14000700,Kent,2021-09-01,new dwelling,85,95,92,17.0,1.5,16,0.3,73.0,73.0,254.0,254.0,71.0,44.0,92.0,standard tariff,,,N,,,100.0,,,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.21 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.10 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.4,,,,"2, Bramble Close, Coxheath",Maidstone,Faversham and Mid Kent,Maidstone,2019,2021-09-01 13:19:03,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,12.0,,10094444062.0,Address Matched +487749849962010051923524526818480,Old Parsonage,Lower Road,West Farleigh,ME15 0PF,8203416768,F,E,30,46,House,Detached,2010-05-19,E07000110,E14000804,Kent,2010-05-19,marketed sale,28,43,376,269.0,21.0,76,15.0,283.0,149.0,2930.0,2134.0,350.0,250.0,262.4,Single,N,NO DATA!,,,2104.0,80.0,secondary glazing,Normal,0.0,10.0,10.0,10.0,2.0,From main system,Average,Poor,"Suspended, no insulation (assumed)",,,Mostly secondary glazing,Average,Average,"Cob, with internal insulation",Good,Good,"Room heaters, wood logs",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, oil",Average,Poor,Programmer and room thermostat,Average,Average,Low energy lighting in 10% of fixed outlets,Poor,Poor,oil - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.5,0.0,N,natural,"Old Parsonage, Lower Road, West Farleigh",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2010-05-19 23:52:45,owner-occupied,,,200003724770.0,Address Matched +658569039222011072511375648158079,"94, Melrose Close",,,ME15 6ZE,7498378868,B,B,86,87,House,Mid-Terrace,2011-07-25,E07000110,E14000804,Kent,2011-07-25,new dwelling,89,89,64,61.0,1.2,12,1.2,70.0,56.0,214.0,216.0,96.0,95.0,100.74,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,6.0,,From main system,Good,Good,Average thermal transmittance 0.20 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.21 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.3,,,NO DATA!,"94, Melrose Close",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2011-07-25 11:37:56,,8.0,6.0,10014307074.0,Address Matched +255180080642009032816485651912838,Apartment 10 Bluecoats Yard,Knightrider Street,,ME15 6LD,9644589568,B,B,86,88,Flat,Detached,2009-03-27,E07000110,E14000804,Kent,2009-03-28,rental (private),87,88,98,89.0,1.1,16,1.0,58.0,34.0,138.0,139.0,70.0,70.0,68.0,Unknown,Y,1st,N,4.0,2107.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,27.0,0.0,From main system,Very Good,Very Good,(other premises below),,,Fully double glazed,Good,Good,"Timber frame, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, TRVs and bypass",Poor,Poor,Low energy lighting in 27% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,heated corridor,,2.31,0.0,N,natural,"Apartment 10 Bluecoats Yard, Knightrider Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2009-03-28 16:48:56,rental (private),,,10014307468.0,Address Matched +1049024309262013112419255366148777,"7, Bloomsbury Walk",Wyatt Street,,ME14 1HQ,7656086178,D,B,67,87,House,Mid-Terrace,2013-11-24,E07000110,E14000804,Kent,2013-11-24,rental (social),47,72,309,147.0,5.5,55,2.6,83.0,61.0,566.0,369.0,158.0,105.0,100.0,dual,N,NODATA!,,,2401.0,95.0,double glazing installed before 2002,Normal,0.0,5.0,4.0,64.0,0.0,"Electric immersion, off-peak",Average,Very Poor,"Solid, no insulation (assumed)",,,Mostly double glazing,Average,Average,"Cavity wall, as built, partial insulation (assumed)",Average,Average,"Room heaters, electric",,,"Pitched, 100 mm loft insulation",Average,Average,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 64% of fixed outlets,Good,Good,electricity (not community),0.0,NO DATA!,,,0.0,,natural,"7, Bloomsbury Walk, Wyatt Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1976-1982,2013-11-24 19:25:53,rental (social),11.0,7.0,200003688594.0,Address Matched +648686826852011063013373290790188,"99, Mayfair Avenue",,,ME15 6BZ,1808608868,C,C,71,72,House,Mid-Terrace,2011-06-30,E07000110,E14000804,Kent,2011-06-30,marketed sale,75,75,209,205.0,1.6,40,1.6,31.0,23.0,301.0,302.0,64.0,64.0,40.08,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,67.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 67% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,2.4,0.0,,natural,"99, Mayfair Avenue",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2011-06-30 13:37:32,owner-occupied,6.0,4.0,200003676565.0,Address Matched +1774006549262019122015583458008221,21 Wrens Cross,Upper Stone Street,,ME15 6YU,2539438678,C,C,77,77,Flat,Semi-Detached,2019-12-20,E07000110,E14000804,Kent,2019-12-20,new dwelling,84,84,125,125.0,1.1,21,1.1,43.0,43.0,191.0,191.0,252.0,252.0,53.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,"Electric immersion, standard tariff",Very Poor,Poor,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.20 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,"Room heaters, electric",Very Poor,Poor,Appliance thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"21 Wrens Cross, Upper Stone Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2019-12-20 15:58:34,unknown,24.0,24.0,10094440955.0,Address Matched +1254992225612015010918350193050530,"36, Lenside Drive",Bearsted,,ME15 8UE,5041531378,D,B,68,86,House,End-Terrace,2015-01-09,E07000110,E14000700,Kent,2015-01-09,marketed sale,64,85,233,87.0,3.1,41,1.2,49.0,49.0,580.0,440.0,101.0,66.0,75.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"36, Lenside Drive, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2015-01-09 18:35:01,owner-occupied,,,200003691275.0,Address Matched +1743506519252019081415385490910965,Flat 4,63a Brewer Street,,ME14 1RY,9564906678,D,C,62,73,Flat,Semi-Detached,2019-08-14,E07000110,E14000804,Kent,2019-08-14,rental (private),57,72,287,185.0,3.4,51,2.2,54.0,54.0,589.0,367.0,96.0,96.0,67.0,Unknown,Y,Ground,N,,2107.0,100.0,"double glazing, unknown install date",Normal,1.0,3.0,3.0,100.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,no corridor,,,,N,natural,"Flat 4, 63a Brewer Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2019-08-14 15:38:54,rental (private),,,200003728309.0,Address Matched +593447509922011021612395763368169,"7, Fernhill Road",,,ME16 9BL,6660093868,E,C,50,74,House,Mid-Terrace,2011-02-16,E07000110,E14000804,Kent,2011-02-16,marketed sale,44,70,435,227.0,4.9,73,2.6,73.0,36.0,732.0,428.0,177.0,107.0,67.4,Single,Y,NO DATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.31,0.0,N,natural,"7, Fernhill Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2011-02-16 12:39:57,owner-occupied,,,200003677534.0,Address Matched +1409637492632016021011542872978500,"11, Petlands",Boughton Monchelsea,,ME17 4SL,9032522478,C,B,69,83,House,Detached,2016-02-10,E07000110,E14000700,Kent,2016-02-10,marketed sale,64,80,196,103.0,4.3,35,2.3,152.0,76.0,699.0,636.0,171.0,80.0,126.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,7.0,7.0,0.0,0.0,From main system,Good,Good,"Solid, limited insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Timber frame, as built, insulated (assumed)",Good,Good,"Room heaters, mains gas",,,"Pitched, 270 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"11, Petlands, Boughton Monchelsea",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1996-2002,2016-02-10 11:54:28,owner-occupied,,,200003725467.0,Address Matched +1769631541652019120208423290019365,"128, Edmett Way",,,ME17 3GD,3517108678,B,A,85,97,House,Mid-Terrace,2019-12-02,E07000110,E14000700,Kent,2019-12-02,new dwelling,88,99,80,-6.0,1.1,14,0.0,67.0,67.0,191.0,191.0,72.0,43.0,80.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"128, Edmett Way",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2019-12-02 08:42:32,unknown,8.0,8.0,10094441744.0,Address Matched +998290819262015022416102823548865,"32, Haydon Close",,,ME16 0WG,6297123178,C,B,71,87,House,End-Terrace,2015-02-24,E07000110,E14000804,Kent,2015-02-24,ECO assessment,69,85,183,73.0,2.8,32,1.1,87.0,58.0,443.0,417.0,148.0,73.0,85.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,50.0,0.0,From main system,Good,Good,"Solid, limited insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"32, Haydon Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2015-02-24 16:10:28,owner-occupied,,,10022896793.0,Address Matched +6965725712013041511475993970640,"76, Furfield Chase",Boughton Monchelsea,,ME17 4GD,6083537468,B,B,81,82,Flat,Semi-Detached,2013-04-11,E07000110,E14000700,Kent,2013-04-15,rental (social),85,86,95,86.0,1.2,18,1.1,75.0,43.0,200.0,204.0,82.0,82.0,66.0,Single,Y,1st,N,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,25.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Very Good,Very Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 25% of fixed outlets,Average,Average,mains gas (not community),0.0,unheated corridor,6.0,,0.0,,natural,"76, Furfield Chase, Boughton Monchelsea",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2007 onwards,2013-04-15 11:47:59,rental (social),8.0,2.0,10022901205.0,Address Matched +728088669442015052716203699359418,"17, Discovery Road",Bearsted,,ME15 8HF,5454863968,D,C,62,80,House,Detached,2015-05-19,E07000110,E14000700,Kent,2015-05-27,assessment for green deal,54,75,242,123.0,6.7,43,3.4,153.0,82.0,1189.0,799.0,113.0,113.0,156.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,9.0,9.0,13.0,0.0,From main system,Good,Good,"Solid, limited insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 13% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"17, Discovery Road, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1996-2002,2015-05-27 16:20:36,owner-occupied,,,200003722062.0,Address Matched +39516001732013090617332075068406,"81, Farleigh Hill",Tovil,,ME15 6RQ,675433468,D,B,62,84,House,Semi-Detached,2013-09-06,E07000110,E14000804,Kent,2013-09-06,marketed sale,59,83,227,79.0,3.7,44,1.3,71.0,49.0,659.0,455.0,95.0,66.0,84.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,4.0,4.0,56.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 56% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"81, Farleigh Hill, Tovil",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2013-09-06 17:33:20,owner-occupied,9.0,5.0,200003664689.0,Address Matched +5343632132019020209373455068404,"51, Clifford Way",,,ME16 8GD,3475407468,B,B,81,81,Flat,Enclosed Mid-Terrace,2019-02-01,E07000110,E14000804,Kent,2019-02-02,rental (social),87,87,109,109.0,0.8,19,0.8,44.0,44.0,147.0,147.0,76.0,76.0,43.0,Unknown,Y,1st,N,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,83.0,0.0,From main system,Good,Good,(another dwelling below),NO DATA!,,Fully double glazed,Good,Good,"System built, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 83% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,heated corridor,,,,N,natural,"51, Clifford Way",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2019-02-02 09:37:34,rental (social),,,10022896064.0,Address Matched +336087529922019121110074445298731,Flat 1 Upnor House,Drawbridge Close,,ME15 7XD,3429255668,C,C,74,78,Flat,Mid-Terrace,2019-12-11,E07000110,E14000700,Kent,2019-12-11,rental (social),76,82,205,159.0,1.5,36,1.1,38.0,38.0,263.0,217.0,89.0,73.0,41.0,Single,Y,Ground,N,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,100.0,0.0,From main system,Good,Good,"Suspended, limited insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,7.84,,,N,natural,"Flat 1 Upnor House, Drawbridge Close",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1996-2002,2019-12-11 10:07:44,rental (social),,,10022896675.0,Address Matched +597259929042014112016411682449118,17 Three Tees,White Horse Lane,Otham,ME15 8RG,2036324868,C,B,69,87,Bungalow,Mid-Terrace,2014-11-19,E07000110,E14000700,Kent,2014-11-20,assessment for green deal,72,88,213,73.0,1.8,38,0.6,33.0,33.0,325.0,259.0,154.0,154.0,48.0,Single,N,NODATA!,,,2206.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,100.0,0.0,"From main system, plus solar",Average,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Air source heat pump, radiators, electric",Average,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,NO DATA!,,,0.0,,natural,"17 Three Tees, White Horse Lane, Otham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2014-11-20 16:41:16,rental (social),7.0,7.0,200003690513.0,Address Matched +782534899742012050109261398727208,"17, Fir Tree Grove",Bredhurst,,ME7 3LB,5717297968,D,C,55,78,House,Detached,2012-04-30,E07000110,E14000700,Kent,2012-05-01,marketed sale,59,82,254,110.0,4.6,40,1.9,100.0,57.0,944.0,626.0,114.0,78.0,116.0,Single,Y,NODATA!,,,2106.0,95.0,double glazing installed before 2002,Normal,1.0,6.0,6.0,25.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Mostly double glazing,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, wood logs",,,"Pitched, 75 mm loft insulation",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 25% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"17, Fir Tree Grove, Bredhurst",Maidstone,Faversham and Mid Kent,GILLINGHAM,England and Wales: 1967-1975,2012-05-01 09:26:13,owner-occupied,16.0,4.0,200003694219.0,Address Matched +416934319442010010808425774100288,"1b, Stanhope Close",,,ME14 2RB,5435711768,D,C,66,73,Bungalow,Semi-Detached,2010-01-08,E07000110,E14000804,Kent,2010-01-08,rental (social),61,69,341,269.0,2.7,57,2.1,43.0,24.0,402.0,347.0,121.0,96.0,47.7,Single,Y,NO DATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,25.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 25% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.43,0.0,N,natural,"1b, Stanhope Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2010-01-08 08:42:57,rental (social),,,200003671847.0,Address Matched +144182358532015082714334513968505,Flat 4,"28, Bower Place",,ME16 8BH,5573570568,D,C,61,77,Flat,End-Terrace,2015-08-14,E07000110,E14000804,Kent,2015-08-27,ECO assessment,60,82,400,177.0,2.1,70,0.9,46.0,23.0,410.0,193.0,81.0,83.0,30.0,Single,Y,2nd,Y,,2107.0,50.0,"double glazing, unknown install date",Normal,0.0,1.0,1.0,0.0,0.0,From main system,Good,Good,(another dwelling below),NO DATA!,,Partial double glazing,Poor,Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,no corridor,,,,N,natural,"Flat 4, 28, Bower Place",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2015-08-27 14:33:45,owner-occupied,,,200003668780.0,Address Matched +339671340062009080816372105638691,"5, Egremont Road",Bearsted,,ME15 8LH,9032475668,C,C,71,71,Bungalow,Detached,2009-08-07,E07000110,E14000700,Kent,2009-08-08,marketed sale,67,67,247,247.0,2.8,41,2.8,41.0,41.0,440.0,440.0,84.0,84.0,66.82,dual,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,88.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 88% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.42,0.0,N,natural,"5, Egremont Road, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2009-08-08 16:37:21,owner-occupied,,,200003690664.0,Address Matched +130850679132019110515523043068895,3 Mill Farm Cottages,Claygate,Marden,TN12 9PD,7543879468,E,A,45,97,House,Semi-Detached,2019-11-05,E07000110,E14000804,Kent,2019-11-05,marketed sale,38,85,278,-21.0,5.9,71,0.9,83.0,83.0,728.0,440.0,166.0,133.0,83.0,dual,N,NODATA!,,,2106.0,75.0,"double glazing, unknown install date",Normal,2.0,5.0,5.0,80.0,1.0,From main system,Average,Average,"Suspended, no insulation (assumed)",NO DATA!,,Partial double glazing,Average,Average,"Cavity wall, filled cavity",Average,Average,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, oil",Average,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,oil (not community),0.0,NO DATA!,,,,N,natural,"3 Mill Farm Cottages, Claygate, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1900-1929,2019-11-05 15:52:30,rental (private),,,10014308719.0,Address Matched +317697170062009071507164934198781,Apartment 1,"7, Bazalgette Rise",,ME16 8FJ,8306714668,B,B,86,86,Flat,Detached,2009-06-01,E07000110,E14000804,Kent,2009-07-15,new dwelling,85,85,110,110.0,1.3,18,1.3,37.0,37.0,213.0,213.0,87.0,87.0,71.2,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,,From main system,Very Good,Very Good,Average thermal transmittance 0.15 W/m??K,Very Good,Very Good,Fully double glazed,Good,Good,Average thermal transmittance 0.18 W/m??K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 100% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.5,,,NO DATA!,"Apartment 1, 7, Bazalgette Rise",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2009-07-15 07:16:49,,,,10014308160.0,Address Matched +662260099542011080323422884890978,"46, Essex Road",,,ME15 7QN,9586898868,E,C,46,70,House,Mid-Terrace,2011-08-03,E07000110,E14000700,Kent,2011-08-03,marketed sale,44,71,349,173.0,5.7,67,2.8,81.0,46.0,901.0,492.0,192.0,106.0,86.36,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,25.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,"Pitched, 25 mm loft insulation",,,"Boiler and radiators, mains gas",Good,Average,Programmer and room thermostat,Average,Average,Low energy lighting in 25% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,2.34,0.0,,natural,"46, Essex Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2011-08-03 23:42:28,owner-occupied,8.0,2.0,200003680467.0,Address Matched +d47172ea06441e07fdde3bb2e1608af84b88162f07d31a92bc0342232ae1f171,66 Hardy Street,,,ME14 2SJ,10001574897,C,B,71,86,House,Mid-Terrace,2021-08-31,E07000110,E14000804,Kent,2021-08-31,marketed sale,67,84,178,73.0,3.6,31,1.5,105.0,105.0,572.0,429.0,112.0,70.0,114.0,Unknown,Y,,,,,100.0,double glazing installed during or after 2002,Normal,1.0,6.0,6.0,76.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 76% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.54,0.0,N,natural,66 Hardy Street,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2021-08-31 16:51:02,Owner-occupied,17.0,,200003702733.0,Energy Assessor +749808173652012021719015095920899,"5, Lambourne Road",Bearsted,,ME15 8LZ,8973355968,C,C,73,76,House,End-Terrace,2012-02-17,E07000110,E14000700,Kent,2012-02-17,marketed sale,71,75,150,132.0,3.8,29,3.3,96.0,62.0,572.0,534.0,125.0,110.0,146.75,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,5.0,5.0,45.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 45% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,2.45,0.0,,natural,"5, Lambourne Road, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1976-1982,2012-02-17 19:01:50,owner-occupied,11.0,5.0,200003686248.0,Address Matched +1472933498632016081913520407978407,"7, Silver Tree Close",,,ME5 9ST,9777476478,C,B,71,86,House,End-Terrace,2016-08-19,E07000110,E14000700,Kent,2016-08-19,marketed sale,69,84,196,88.0,2.7,34,1.2,92.0,58.0,472.0,440.0,106.0,75.0,78.0,dual,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,42.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 42% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,2.28,,N,natural,"7, Silver Tree Close",Maidstone,Faversham and Mid Kent,CHATHAM,England and Wales: 1983-1990,2016-08-19 13:52:04,owner-occupied,,,200003709207.0,Address Matched +1591383919202017112210141853560388,Flat 4,54-56 Tonbridge Road,,ME16 8SE,4260615578,D,D,68,68,Flat,Detached,2016-09-08,E07000110,E14000804,Kent,2017-11-22,new dwelling,71,71,253,253.0,1.4,43,1.4,29.0,29.0,269.0,269.0,134.0,134.0,33.0,standard tariff,,top floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,Electric instantaneous at point of use,Very Poor,Very Poor,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.28 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.14 W/m-¦K,Very Good,Very Good,"Room heaters, electric",Very Poor,Poor,Programmer and room thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"Flat 4, 54-56 Tonbridge Road",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2017-11-22 10:14:18,unknown,10.0,10.0,, +1126145033152014050816221592040426,"186, Roseholme",,,ME16 8DZ,4609322278,D,C,66,80,Flat,End-Terrace,2014-05-08,E07000110,E14000804,Kent,2014-05-08,marketed sale,54,66,389,286.0,2.7,69,2.0,60.0,30.0,286.0,158.0,161.0,105.0,39.0,dual,N,2nd,Y,,2401.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,2.0,0.0,0.0,"Electric immersion, off-peak",Poor,Very Poor,(other premises below),,,Fully double glazed,Good,Good,"Cavity wall, as built, partial insulation (assumed)",Average,Average,Portable electric heaters (assumed),,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,No low energy lighting,Very Poor,Very Poor,electricity (not community),0.0,no corridor,,,0.0,,natural,"186, Roseholme",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1976-1982,2014-05-08 16:22:15,owner-occupied,9.0,0.0,200003666289.0,Address Matched +1369421691532015093014465665278204,Flat 3,"41, Hedley Street",,ME14 5AD,9415249378,D,D,68,68,Flat,NO DATA!,2015-09-29,E07000110,E14000804,Kent,2015-09-30,non marketed sale,55,55,463,463.0,2.3,78,2.3,23.0,23.0,274.0,274.0,104.0,104.0,30.0,24 hour,,ground floor,,,,,NO DATA!,NO DATA!,,,,,0.0,"Electric immersion, off-peak",Average,Poor,Average thermal transmittance 0.76 W/m-¦K,Very Poor,Very Poor,Fully double glazed,Good,Good,Average thermal transmittance 0.39 W/m-¦K,Good,Good,,,,(other premises above),,,Electric storage heaters,Poor,Very Poor,Automatic charge control,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"Flat 3, 41, Hedley Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2015-09-30 14:46:56,rental (social),1.0,1.0,10091194328.0,Address Matched +32618289222016051006324533818706,"14, Little Field",Staplehurst,,TN12 0SZ,362803468,E,C,52,80,House,Detached,2016-04-29,E07000110,E14000804,Kent,2016-05-10,ECO assessment,43,76,326,119.0,6.8,58,2.5,147.0,74.0,1198.0,665.0,170.0,95.0,119.0,Single,Y,NODATA!,,,2102.0,100.0,"double glazing, unknown install date",Normal,2.0,7.0,7.0,0.0,0.0,From main system,Good,Good,"Solid, limited insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,2.37,,N,natural,"14, Little Field, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1996-2002,2016-05-10 06:32:45,owner-occupied,,,200003724499.0,Address Matched +599130899222011052313575294778429,Ferndale,Pheasant Lane,,ME15 9QR,2941934868,B,B,82,83,House,Detached,2011-05-23,E07000110,E14000804,Kent,2011-05-23,new dwelling,84,84,85,81.0,3.0,15,2.8,116.0,78.0,474.0,480.0,109.0,109.0,199.72,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,23.0,,From main system,Good,Good,Average thermal transmittance 0.18 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m?K,Very Good,Very Good,"Room heaters, wood pellets",,,Average thermal transmittance 0.16 W/m?K,Good,Good,"Boiler and radiators, mains gas",Very Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in 52% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.56,,,NO DATA!,"Ferndale, Pheasant Lane",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2011-05-23 13:57:52,,44.0,23.0,10014309141.0,Address Matched +1297590749922015031916362554918235,"12, Westree Court",,,ME16 8FU,3599434378,B,B,87,87,Flat,NO DATA!,2015-03-19,E07000110,E14000804,Kent,2015-03-19,new dwelling,91,91,63,63.0,0.6,12,0.6,34.0,34.0,234.0,234.0,67.0,67.0,51.0,standard tariff,,top floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.18 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.15 W/m-¦K,Good,Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"12, Westree Court",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2015-03-19 16:36:25,unknown,25.0,25.0,10014315990.0,Address Matched +684321759802011093008161394092118,"43, Gorham Drive",Downswood,,ME15 8UU,832750968,D,C,63,71,House,End-Terrace,2011-09-29,E07000110,E14000700,Kent,2011-09-30,rental (private),63,72,264,199.0,2.7,51,2.0,51.0,30.0,401.0,343.0,134.0,97.0,53.64,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,30.0,0.0,From main system,Average,Average,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Timber frame, as built, insulated (assumed)",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 30% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,2.35,0.0,,natural,"43, Gorham Drive, Downswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1976-1982,2011-09-30 08:16:13,rental (private),10.0,3.0,200003691427.0,Address Matched +68669238452014062615301994240246,"9, Hill Brow",Bearsted,,ME14 4AW,2649844468,D,C,60,80,House,Semi-Detached,2014-06-24,E07000110,E14000700,Kent,2014-06-26,none of the above,56,79,244,103.0,4.0,47,1.7,87.0,51.0,697.0,533.0,133.0,85.0,85.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,4.0,4.0,29.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 29% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"9, Hill Brow, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2014-06-26 15:30:19,owner-occupied,14.0,4.0,200003693565.0,Address Matched +384907890942009102019040768812408,"24, Lacock Gardens",,,ME15 6GJ,3979498668,C,C,70,78,House,Semi-Detached,2009-10-20,E07000110,E14000804,Kent,2009-10-20,marketed sale,67,74,238,182.0,3.0,39,2.3,81.0,41.0,367.0,340.0,165.0,108.0,75.6,Single,Y,NO DATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,0.0,0.0,"From main system, no cylinder thermostat",Average,Average,"Solid, limited insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,,0.0,N,natural,"24, Lacock Gardens",Maidstone,Maidstone and The Weald,MAIDSTONE,,2009-10-20 19:04:07,owner-occupied,,,10034134512.0,Address Matched +670502278932011082414390949268803,"20, Georgian Drive",Coxheath,,ME17 4QT,7399859868,D,C,63,73,House,Semi-Detached,2011-08-24,E07000110,E14000804,Kent,2011-08-24,marketed sale,61,73,241,166.0,3.6,46,2.5,77.0,45.0,568.0,409.0,118.0,106.0,77.84,dual,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,30.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 30% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,2.26,0.0,,natural,"20, Georgian Drive, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2011-08-24 14:39:09,owner-occupied,10.0,3.0,200003714922.0,Address Matched +1082091249922014022416494459908737,7 Oakwood Road,,,ME16 8AL,3595419178,B,B,85,85,Bungalow,Detached,2013-04-10,E07000110,E14000804,Kent,2014-02-24,new dwelling,88,88,79,79.0,1.0,15,1.0,42.0,42.0,286.0,286.0,82.0,82.0,67.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.18 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.23 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.12 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Very Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,7 Oakwood Road,Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2014-02-24 16:49:44,NO DATA!,0.0,0.0,10014315045.0,Address Matched +17870089202019110815332845810188,83 Wallis Place,Hart Street,,ME16 8FD,4286088468,C,C,80,80,Flat,Enclosed Mid-Terrace,2019-11-08,E07000110,E14000804,Kent,2019-11-08,marketed sale,82,82,112,112.0,1.5,20,1.5,78.0,78.0,223.0,223.0,103.0,103.0,74.0,Single,Y,1st,N,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,78.0,0.0,From main system,Good,Good,"To external air, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 78% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,7.88,,,N,natural,"83 Wallis Place, Hart Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2019-11-08 15:33:28,owner-occupied,,,10022900684.0,Address Matched +504598139702019031509562874780498,Flat 9 Galapagos House,St. Catherines Road,,ME15 9WP,7764237768,C,C,76,76,Flat,Semi-Detached,2018-05-01,E07000110,E14000700,Kent,2019-03-15,rental (social),72,72,210,210.0,2.1,35,2.1,50.0,50.0,153.0,153.0,333.0,333.0,60.0,dual,N,2nd,Y,,2206.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,(another dwelling below),NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Very Good,Very Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Air source heat pump, radiators, electric",Average,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,unheated corridor,5.0,,,N,natural,"Flat 9 Galapagos House, St. Catherines Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2007 onwards,2019-03-15 09:56:28,rental (social),,,10014311749.0,Address Matched +1786763922102020022117234165902498,"17, Juniper Close",,,ME16 0XP,5160729678,C,B,69,84,House,Detached,2020-02-21,E07000110,E14000804,Kent,2020-02-21,marketed sale,66,82,208,96.0,2.9,37,1.4,95.0,67.0,438.0,426.0,144.0,81.0,78.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,58.0,0.0,From main system,Good,Good,"Solid, limited insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 58% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"17, Juniper Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2020-02-21 17:23:41,owner-occupied,,,200003724145.0,Address Matched +1550313629022017060709371992438353,"27, Laight Road",,,ME17 3FU,5944222578,B,B,82,82,Flat,Detached,2017-06-07,E07000110,E14000700,Kent,2017-06-07,new dwelling,87,87,104,104.0,0.8,18,0.8,35.0,35.0,163.0,163.0,67.0,67.0,45.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.26 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"27, Laight Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2017-06-07 09:37:19,unknown,7.0,7.0,10093303902.0,Address Matched +239683360022009030915082718458421,"70, South Park Road",,,ME15 7AW,2194678568,C,C,74,77,House,Mid-Terrace,2009-03-05,E07000110,E14000700,Kent,2009-03-09,rental (social),71,73,211,193.0,2.5,35,2.3,68.0,34.0,312.0,325.0,122.0,98.0,72.06,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,4.0,4.0,0.0,0.0,From main system,Very Good,Very Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.39,0.0,N,natural,"70, South Park Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2009-03-09 15:08:27,rental (social),,,200003716030.0,Address Matched +1792265664412020031220565096010966,Chestnut Lodge,Chartway Street,Sutton Valence,ME17 3HZ,9613469678,B,A,82,93,Bungalow,Detached,2019-09-02,E07000110,E14000700,Kent,2020-03-12,new dwelling,83,93,99,30.0,1.7,17,0.6,73.0,73.0,291.0,291.0,82.0,55.0,99.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,"From main system, flue gas heat recovery",Very Good,Very Good,Average thermal transmittance 0.17 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.23 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.14 W/m-¦K,Very Good,Very Good,"Boiler & underfloor, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Chestnut Lodge, Chartway Street, Sutton Valence",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2020-03-12 20:56:50,unknown,18.0,18.0,10014309056.0,Address Matched +614375057012011040618001195090788,6 Gatehouse Lodge,Mote Park,,ME15 8FN,7846755868,B,B,82,82,Flat,Detached,2011-04-06,E07000110,E14000700,Kent,2011-04-06,marketed sale,82,82,120,118.0,2.0,20,1.9,73.0,61.0,323.0,325.0,113.0,113.0,100.99,Single,Y,1st,Y,2.0,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,79.0,0.0,From main system,Very Good,Very Good,(other premises below),,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 79% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,heated corridor,,2.38,0.0,N,natural,"6 Gatehouse Lodge, Mote Park",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2003-2006,2011-04-06 18:00:11,owner-occupied,,,10014309495.0,Address Matched +599420761812011030216164094090882,"41, McAlpine Crescent",Loose,,ME15 0AU,8200144868,B,B,86,86,Bungalow,Detached,2011-03-02,E07000110,E14000804,Kent,2011-03-02,new dwelling,86,86,108,105.0,1.2,18,1.1,48.0,40.0,215.0,215.0,82.0,82.0,66.16,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,5.0,,From main system,Very Good,Very Good,Average thermal transmittance 0.12 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Very Good,Very Good,Time and temperature zone control,Good,Good,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.38,,,NO DATA!,"41, McAlpine Crescent, Loose",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2011-03-02 16:16:40,,10.0,5.0,10014312149.0,Address Matched +905959227652014112807223296249409,"12, Sunburst Close",Marden,,TN12 9TS,4961766078,C,C,71,71,Flat,Mid-Terrace,2014-11-26,E07000110,E14000804,Kent,2014-11-28,none of the above,74,74,198,198.0,1.6,38,1.6,37.0,37.0,313.0,313.0,113.0,113.0,43.0,Unknown,Y,1st,Y,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,2.0,2.0,80.0,0.0,From main system,Good,Good,"To external air, limited insulation (assumed)",,,Fully double glazed,Average,Average,"System built, as built, insulated (assumed)",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,no corridor,,,0.0,,natural,"12, Sunburst Close, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1991-1995,2014-11-28 07:22:32,rental (social),5.0,4.0,200003711254.0,Address Matched +423324837712010012018015895200873,"9, Clover Terrace",Northumberland Road,,ME15 7SY,8387751768,C,C,79,79,House,Mid-Terrace,2010-01-20,E07000110,E14000700,Kent,2010-01-20,rental (social),76,76,174,174.0,2.0,29,2.0,38.0,38.0,300.0,300.0,112.0,112.0,69.3,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,"Solid, limited insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.28,0.0,N,natural,"9, Clover Terrace, Northumberland Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1996-2002,2010-01-20 18:01:58,rental (social),,,200003714089.0,Address Matched +553785189102010101613460887009868,Second Floor Flat,"24, Church Street",,ME14 1EN,9100180868,F,F,30,30,Flat,Mid-Terrace,2010-10-16,E07000110,E14000804,Kent,2010-10-16,rental (private),43,43,824,824.0,3.2,124,3.2,26.0,26.0,691.0,691.0,49.0,49.0,25.96,Unknown,N,3rd,Y,4.0,2699.0,100.0,double glazing installed during or after 2002,Normal,0.0,1.0,0.0,10.0,0.0,"Single-point gas water heater, standard tariff",Good,Very Poor,(other premises below),,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,Portable electric heaters,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,No system present: electric heaters assumed,Very Poor,Poor,,Very Poor,Very Poor,Low energy lighting in 10% of fixed outlets,Poor,Poor,electricity - this is for backwards compatibility only and should not be used,0.0,unheated corridor,5.02,2.23,0.0,N,natural,"Second Floor Flat, 24, Church Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2010-10-16 13:46:08,rental (private),,,200003728496.0,Address Matched +1483810159142017021321591642739678,"36, Mallet Avenue",,,ME15 8GT,2148257478,B,B,82,83,House,End-Terrace,2017-02-13,E07000110,E14000700,Kent,2017-02-13,rental (social),81,83,101,92.0,2.0,18,1.8,73.0,73.0,401.0,401.0,108.0,73.0,113.0,Single,Y,NODATA!,,,2110.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Very Good,Very Good,,,,"Roof room(s), insulated (assumed)",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"36, Mallet Avenue",Maidstone,Faversham and Mid Kent,MAIDSTONE,INVALID!,2017-02-13 21:59:16,rental (social),,,10091193705.0,Address Matched +766076459062012040313423356728962,Little Buckland Farm,Buckland Lane,,ME16 0BH,6530576968,E,D,42,66,House,Detached,2012-04-02,E07000110,E14000804,Kent,2012-04-03,marketed sale,33,59,253,165.0,19.0,61,9.9,162.0,107.0,2987.0,1666.0,169.0,108.0,307.0,dual,Y,NODATA!,,,2106.0,5.0,secondary glazing,Normal,0.0,11.0,11.0,45.0,1.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Some secondary glazing,Very Poor,Very Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, oil",Good,Average,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 45% of fixed outlets,Good,Good,oil (not community),0.0,NO DATA!,,,0.0,,natural,"Little Buckland Farm, Buckland Lane",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2012-04-03 13:42:33,owner-occupied,20.0,9.0,200003670271.0,Address Matched +214975253932011071211142464968705,"17, Reinden Grove",Downswood,,ME15 8TH,5574707568,E,D,46,64,House,Semi-Detached,2011-07-12,E07000110,E14000700,Kent,2011-07-12,marketed sale,48,62,335,232.0,5.0,62,3.6,87.0,43.0,606.0,469.0,426.0,231.0,79.9,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,0.0,0.0,No system present: electric immersion assumed,Very Poor,Very Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, partial insulation (assumed)",Average,Average,,,,"Pitched, limited insulation (assumed)",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,2.338,0.0,,natural,"17, Reinden Grove, Downswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1976-1982,2011-07-12 11:14:24,owner-occupied,11.0,0.0,200003686343.0,Address Matched +491810889262014042822185196688984,"44, Langdale Rise",,,ME16 0EX,8966836768,F,D,35,67,House,Detached,2014-04-28,E07000110,E14000804,Kent,2014-04-28,none of the above,34,64,362,165.0,9.9,69,4.5,143.0,71.0,1860.0,1144.0,181.0,79.0,143.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,1.0,7.0,6.0,0.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,Portable electric heaters (assumed),,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Average,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"44, Langdale Rise",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2014-04-28 22:18:51,unknown,14.0,0.0,200003659020.0,Address Matched +341358680842009081013472261510638,"24c, Kingsley Road",,,ME15 7UN,7815685668,D,C,67,74,Flat,Mid-Terrace,2009-08-07,E07000110,E14000804,Kent,2009-08-10,marketed sale,76,75,356,364.0,1.2,54,1.3,11.0,13.0,198.0,128.0,116.0,128.0,22.9,Single,N,1st,N,4.0,2601.0,100.0,double glazing installed during or after 2002,Normal,0.0,1.0,1.0,100.0,0.0,Electric instantaneous at point of use,Very Poor,Poor,"To external air, insulated",,,Fully double glazed,Good,Good,"Solid brick, with internal insulation",Good,Good,,,,(another dwelling above),,,"Room heaters, electric",Very Poor,Poor,No thermostatic control of room temperature,Poor,Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.47,0.0,N,natural,"24c, Kingsley Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2009-08-10 13:47:22,owner-occupied,,,10014310686.0,Address Matched +1417408689202016030819154843262658,Flat 6,"1-27, St. Faiths Street",,ME14 1LJ,3274382478,C,C,70,70,Flat,NO DATA!,2016-02-25,E07000110,E14000804,Kent,2016-03-08,marketed sale,73,73,182,182.0,2.1,31,2.1,48.0,48.0,300.0,300.0,275.0,275.0,69.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Poor,Very Poor,(other premises below),,,Fully double glazed,Good,Good,Average thermal transmittance 0.41 W/m-¦K,Good,Good,,,,(other premises above),,,"Boiler and radiators, electric",Very Poor,Very Poor,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"Flat 6, 1-27, St. Faiths Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2016-03-08 19:15:48,unknown,10.0,10.0,10091195060.0,Address Matched +1743681729022019100910060206418851,"18, Seymour Drive",Marden,,TN12 9GT,5088216678,B,A,85,94,House,Detached,2019-10-09,E07000110,E14000804,Kent,2019-10-09,new dwelling,86,95,78,15.0,1.6,14,0.3,77.0,77.0,240.0,242.0,99.0,54.0,114.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.22 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"18, Seymour Drive, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,NO DATA!,2019-10-09 10:06:02,unknown,10.0,10.0,10094441115.0,Address Matched +1646064605412018070608473890080653,13 St. Lawrence Crescent,Coxheath,,ME17 4FR,6372509578,B,A,84,96,House,Mid-Terrace,2018-07-06,E07000110,E14000804,Kent,2018-07-06,new dwelling,87,99,82,-4.0,1.2,14,0.0,60.0,60.0,197.0,197.0,72.0,42.0,80.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.19 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.28 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.15 W/m-¦K,Good,Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"13 St. Lawrence Crescent, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2018-07-06 08:47:38,unknown,18.0,18.0,10093306362.0,Address Matched +1235362499432014111214464061978394,"20a, Wordsworth Road",Penenden Heath,,ME14 2HH,9471399278,E,C,54,77,Flat,Semi-Detached,2014-11-12,E07000110,E14000804,Kent,2014-11-12,rental (private),34,62,485,244.0,6.0,86,3.0,59.0,59.0,751.0,277.0,151.0,151.0,70.0,dual,N,1st,Y,,2401.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,86.0,0.0,"Electric immersion, off-peak",Average,Very Poor,(other premises below),,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,Portable electric heaters (assumed),,,"Pitched, 150 mm loft insulation",Good,Good,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 86% of fixed outlets,Very Good,Very Good,electricity (not community),0.0,no corridor,,,0.0,,natural,"20a, Wordsworth Road, Penenden Heath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2014-11-12 14:46:40,rental (private),7.0,6.0,200003707488.0,Address Matched +1693419389222019012809191582688801,"5, Baker Road",,,ME17 3GP,804842678,B,A,85,97,House,Mid-Terrace,2019-01-28,E07000110,E14000700,Kent,2019-01-28,new dwelling,88,100,80,-13.0,1.0,14,-0.1,59.0,59.0,179.0,179.0,70.0,41.0,74.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"5, Baker Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2019-01-28 09:19:15,unknown,8.0,8.0,10093307116.0,Address Matched +1247748622432014121716523045978397,"1, The Spinney",,,ME15 7AD,2735380378,D,C,63,75,Flat,End-Terrace,2014-12-11,E07000110,E14000700,Kent,2014-12-17,rental (social),43,58,409,279.0,5.3,69,3.6,67.0,67.0,626.0,345.0,139.0,139.0,77.0,dual,N,Ground,N,,2401.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,89.0,0.0,"Electric immersion, off-peak",Average,Poor,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,Portable electric heaters (assumed),,,(another dwelling above),,,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 89% of fixed outlets,Very Good,Very Good,electricity (not community),0.0,unheated corridor,7.429,,,N,natural,"1, The Spinney",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2014-12-17 16:52:30,rental (social),,,200003685944.0,Address Matched +1324925079262015052410252476778525,"1, Blacksmith Drive",Weavering,,ME14 5SZ,2758726378,B,B,85,89,House,Detached,2015-05-23,E07000110,E14000700,Kent,2015-05-24,marketed sale,79,84,96,65.0,2.3,17,1.6,142.0,71.0,710.0,662.0,112.0,75.0,129.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,6.0,6.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"1, Blacksmith Drive, Weavering",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2015-05-24 10:25:24,owner-occupied,,,200003689127.0,Address Matched +1238205835052014111913134091049135,9 College Cottages,College Avenue,,ME15 6YJ,1553510378,C,B,77,89,House,Mid-Terrace,2014-11-09,E07000110,E14000804,Kent,2014-11-19,none of the above,78,90,118,42.0,2.3,22,0.9,120.0,60.0,361.0,373.0,137.0,86.0,102.0,Unknown,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"9 College Cottages, College Avenue",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2014-11-19 13:13:40,rental (social),14.0,0.0,200003666755.0,Address Matched +422614279032010011810224556968302,"31, Ragstone Road",Bearsted,,ME15 8PA,7206351768,D,C,61,72,House,Semi-Detached,2010-01-18,E07000110,E14000700,Kent,2010-01-18,marketed sale,60,71,278,198.0,3.9,46,2.8,72.0,44.0,646.0,461.0,114.0,114.0,98.19,Single,Y,NO DATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,4.0,4.0,38.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 38% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.36,0.0,N,natural,"31, Ragstone Road, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2010-01-18 10:22:45,owner-occupied,,,200003690788.0,Address Matched +722703229002016062007333096369868,"21, Coombe Road",,,ME15 6UE,6029823968,D,B,61,89,House,Semi-Detached,2016-06-16,E07000110,E14000804,Kent,2016-06-20,rental (social),57,89,317,64.0,3.2,56,0.7,63.0,40.0,569.0,336.0,131.0,76.0,57.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,43.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 270 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 43% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,2.4,,N,natural,"21, Coombe Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2016-06-20 07:33:30,rental (social),,,200003682097.0,Address Matched +240939820022009031017222598118591,Flat 8,"36-38, Tonbridge Road",,ME16 8SH,9933298568,E,D,50,58,Flat,Detached,2009-03-09,E07000110,E14000804,Kent,2009-03-10,marketed sale,44,50,501,432.0,4.1,83,3.6,41.0,24.0,606.0,544.0,78.0,67.0,49.3,Unknown,Y,2nd,Y,3.0,2104.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,25.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Poor,Poor,Low energy lighting in 25% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.5,0.0,N,natural,"Flat 8, 36-38, Tonbridge Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2009-03-10 17:22:25,owner-occupied,,,200003729442.0,Address Matched +302108519502011040516544060390448,"60, Ware Street",Bearsted,,ME14 4PQ,3565213668,D,D,56,58,House,Semi-Detached,2011-04-04,E07000110,E14000700,Kent,2011-04-05,marketed sale,50,51,344,336.0,5.0,57,4.9,88.0,47.0,810.0,819.0,105.0,105.0,86.68,Single,Y,NO DATA!,,,2104.0,0.0,not defined,Normal,2.0,5.0,5.0,11.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, mains gas",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Very Good,Very Good,Programmer and room thermostat,Average,Average,Low energy lighting in 11% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.19,0.0,N,natural,"60, Ware Street, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2011-04-05 16:54:40,owner-occupied,,,200003693794.0,Address Matched +341302207712009080817173508010467,"6, Edna Road",,,ME14 2QJ,4742785668,C,C,70,75,House,Mid-Terrace,2009-08-07,E07000110,E14000804,Kent,2009-08-08,marketed sale,69,74,235,196.0,2.6,39,2.1,49.0,33.0,434.0,371.0,83.0,83.0,66.2,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,4.0,3.0,50.0,0.0,From main system,Very Good,Very Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,0.0,N,natural,"6, Edna Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2009-08-08 17:17:35,owner-occupied,,,200003670617.0,Address Matched +592717689102013030718321185370038,1 Hanover Court,Snowdon Avenue,,ME14 5NP,3144683868,D,C,67,69,Flat,Detached,2013-03-07,E07000110,E14000804,Kent,2013-03-07,rental (social),68,70,242,217.0,2.2,44,2.0,65.0,33.0,307.0,316.0,147.0,126.0,49.0,dual,Y,1st,Y,,2502.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,0.0,0.0,"Electric immersion, off-peak",Average,Very Poor,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Warm air, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,no corridor,,,0.0,,natural,"1 Hanover Court, Snowdon Avenue",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2013-03-07 18:32:11,rental (social),6.0,0.0,200003705887.0,Address Matched +1603270809002018012520014650682158,35 Bishops Terrace,Bishops Way,,ME14 1LA,8024006578,D,D,63,63,Flat,Mid-Terrace,2018-01-25,E07000110,E14000804,Kent,2018-01-25,new dwelling,66,66,256,256.0,2.0,43,2.0,38.0,38.0,361.0,361.0,232.0,232.0,47.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Very Poor,Poor,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.29 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, electric",Very Poor,Poor,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"35 Bishops Terrace, Bishops Way",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2018-01-25 20:01:46,unknown,10.0,10.0,, +1763690648552019110616474095019462,Flat A,"9, The Paddocks",Lenham,ME17 2FD,4282857678,B,B,81,81,Flat,Detached,2019-11-06,E07000110,E14000700,Kent,2019-11-06,new dwelling,88,88,87,87.0,0.8,15,0.8,40.0,40.0,190.0,190.0,67.0,67.0,50.0,standard tariff,,ground floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.19 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Flat A, 9, The Paddocks, Lenham",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2019-11-06 16:47:40,unknown,6.0,6.0,10093307288.0,Address Matched +937419709922016041914502188518256,"14, St. Andrews Road",,,ME16 9AN,5828098078,E,B,53,84,House,Semi-Detached,2016-04-19,E07000110,E14000804,Kent,2016-04-19,marketed sale,49,84,312,78.0,4.6,55,1.2,94.0,55.0,921.0,459.0,108.0,72.0,84.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,30.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, electric",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 30% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,2.46,,N,natural,"14, St. Andrews Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2016-04-19 14:50:21,owner-occupied,,,200003682082.0,Address Matched +206752839062019091122584736538271,2 Victoria Mews,"55-59, Gladstone Road",Penenden Heath,ME14 2AU,7369306568,C,C,73,73,Flat,Mid-Terrace,2019-09-07,E07000110,E14000804,Kent,2019-09-11,rental (private),60,60,351,348.0,2.4,59,2.4,54.0,38.0,304.0,308.0,152.0,152.0,40.0,Unknown,N,1st,Y,,2401.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,60.0,0.0,"Electric immersion, off-peak",Average,Poor,(another dwelling below),NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,Electric storage heaters,Poor,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 60% of fixed outlets,Good,Good,electricity (not community),0.0,unheated corridor,7.58,,,N,natural,"2 Victoria Mews, 55-59, Gladstone Road, Penenden Heath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1991-1995,2019-09-11 22:58:47,rental (private),,,200003704487.0,Address Matched +861148959002019110519032604310158,Eyhorne Place,Eyhorne Street,Hollingbourne,ME17 1TP,2092153078,C,B,77,81,Bungalow,Detached,2019-11-05,E07000110,E14000700,Kent,2019-11-05,marketed sale,78,82,122,100.0,4.9,18,3.9,122.0,122.0,1032.0,1032.0,118.0,118.0,268.0,Unknown,Y,NODATA!,,,2110.0,100.0,double glazing installed during or after 2002,More Than Typical,0.0,5.0,5.0,100.0,1.0,From main system,Good,Good,"Solid, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Very Good,Very Good,"Room heaters, wood logs",,,"Flat, insulated (assumed)",Good,Good,"Boiler and underfloor heating, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"Eyhorne Place, Eyhorne Street, Hollingbourne",Maidstone,Faversham and Mid Kent,MAIDSTONE,INVALID!,2019-11-05 19:03:26,owner-occupied,,,10022900375.0,Address Matched +412184682542020020316294771000178,"21, Hedley Street",,,ME14 5AD,3568180768,D,B,63,88,House,End-Terrace,2020-02-03,E07000110,E14000804,Kent,2020-02-03,rental (private),58,87,282,66.0,3.2,50,0.8,73.0,53.0,565.0,347.0,89.0,60.0,64.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,3.0,3.0,63.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 63% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"21, Hedley Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2020-02-03 16:29:47,rental (private),,,200003704752.0,Address Matched +454078309922013031915371753818407,26 Stanhope House,Rockwell Court,Tovil,ME15 6FP,511083768,B,B,84,85,Flat,Mid-Terrace,2013-03-19,E07000110,E14000804,Kent,2013-03-19,marketed sale,75,76,175,170.0,1.8,31,1.8,68.0,42.0,104.0,109.0,108.0,108.0,59.0,Unknown,N,2nd,N,,2402.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,40.0,0.0,"Electric immersion, off-peak",Average,Very Poor,(other premises below),,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,Portable electric heaters (assumed),,,(another dwelling above),,,Electric storage heaters,Average,Very Poor,Automatic charge control,Average,Average,Low energy lighting in 40% of fixed outlets,Average,Average,electricity (not community),0.0,heated corridor,,,0.0,,natural,"26 Stanhope House, Rockwell Court, Tovil",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2013-03-19 15:37:17,unknown,10.0,4.0,10022901547.0,Address Matched +1276228032532015021116130274978602,"57, Forest Hill",,,ME15 6SP,3264682378,D,B,61,89,House,Semi-Detached,2015-02-11,E07000110,E14000804,Kent,2015-02-11,marketed sale,56,89,310,64.0,3.5,55,0.7,42.0,42.0,585.0,359.0,173.0,67.0,63.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,100.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, partial insulation (assumed)",Average,Average,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"57, Forest Hill",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1976-1982,2015-02-11 16:13:02,owner-occupied,,,200003664811.0,Address Matched +1372984477752015101222545496059833,"15b, Ashford Road",,,ME14 5DA,8366769378,E,C,43,75,Flat,Semi-Detached,2015-10-08,E07000110,E14000804,Kent,2015-10-12,marketed sale,50,60,372,286.0,3.6,63,2.8,40.0,45.0,785.0,307.0,230.0,114.0,58.0,Single,N,1st,Y,,2603.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,"Electric immersion, standard tariff",Very Poor,Poor,(another dwelling below),NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Flat, insulated",Good,Good,"Room heaters, electric",Very Poor,Poor,Programmer and appliance thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,no corridor,,,,N,"mechanical, extract only","15b, Ashford Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2015-10-12 22:54:54,owner-occupied,,,10091194371.0,Address Matched +406544012132009120213030670068492,80 Roman Way,Boughton Monchelsea,,ME17 4SH,1280440768,B,B,82,83,House,Semi-Detached,2009-12-02,E07000110,E14000700,Kent,2009-12-02,new dwelling,81,81,133,127.0,1.9,22,1.8,68.0,42.0,269.0,273.0,97.0,97.0,85.2,standard tariff,,NO DATA!,,,2106.0,,NO DATA!,NO DATA!,,,,,0.0,From main system,Very Good,Very Good,Average thermal transmittance 0.19 W/m?K,Very Good,Very Good,Fully double glazed,Good,Good,Average thermal transmittance 0.29 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.16 W/m?K,Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 40% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.33,,,NO DATA!,"80 Roman Way, Boughton Monchelsea",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2009-12-02 13:03:06,,,,10022896606.0,Address Matched +1614887423512018041219195398980657,"249, Willington Street",,,ME15 8EP,6708386578,D,C,60,77,House,Semi-Detached,2018-04-12,E07000110,E14000700,Kent,2018-04-12,marketed sale,54,73,232,128.0,7.8,41,4.3,192.0,96.0,1327.0,1058.0,222.0,77.0,191.0,Single,Y,NODATA!,,,2107.0,100.0,"double glazing, unknown install date",Normal,1.0,7.0,7.0,0.0,0.0,"From main system, no cylinder thermostat",Average,Average,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,"Room heaters, electric",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"249, Willington Street",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2018-04-12 19:19:53,owner-occupied,,,200003684730.0,Address Matched +497759552222020072106574746708650,"7, Lismore Close",,,ME15 9SN,5444586768,C,C,70,80,House,Semi-Detached,2020-07-20,E07000110,E14000804,Kent,2020-07-21,marketed sale,66,75,196,133.0,3.8,35,2.6,87.0,87.0,655.0,655.0,105.0,72.0,111.0,Unknown,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,7.0,7.0,93.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 93% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"7, Lismore Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2020-07-21 06:57:47,owner-occupied,,,200003678068.0,Address Matched +1461389749962016071115370635598556,"83, Edmett Way",,,ME17 3FA,5382495478,B,A,84,111,House,Semi-Detached,2016-07-11,E07000110,E14000700,Kent,2016-07-11,new dwelling,85,110,83,-77.0,1.6,15,-1.4,73.0,73.0,288.0,288.0,92.0,56.0,112.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.27 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.17 W/m-¦K,Good,Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"83, Edmett Way",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2016-07-11 15:37:06,unknown,1.0,1.0,10091194002.0,Address Matched +54858350502009011619132055619268,29 Clock House Rise,Coxheath,,ME17 4GS,6517856568,C,C,78,78,House,Semi-Detached,2009-01-16,E07000110,E14000804,Kent,2009-01-16,new dwelling,78,78,147,147.0,2.2,0,2.2,44.0,44.0,383.0,383.0,94.0,94.0,93.3,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,22.0,,SAP05:Hot-Water,,,Average thermal transmittance 0.22 W/m²K,Good,Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.20 W/m²K,Very Good,Very Good,SAP05:Secondary-Heating,,,Average thermal transmittance 0.19 W/m²K,Good,Good,SAP05:Main-Heating,,,SAP05:Main-Heating-Controls,,,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,,,NO DATA!,"29 Clock House Rise, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2009-01-16 19:13:20,,22.0,22.0,10022900548.0,Address Matched +304758800962009061220294143728291,"45, Allington Way",,,ME16 0HS,9417033668,E,C,50,69,House,Semi-Detached,2009-06-12,E07000110,E14000804,Kent,2009-06-12,marketed sale,43,64,387,234.0,6.7,65,4.0,55.0,55.0,872.0,550.0,180.0,112.0,103.6,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,5.0,5.0,90.0,0.0,"From main system, no cylinderstat",Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 90% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.45,0.0,N,natural,"45, Allington Way",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2009-06-12 20:29:41,owner-occupied,,,200003703164.0,Address Matched +812173113232012071617073062978407,"29, Snowdon Avenue",,,ME14 5NW,1772400078,D,B,68,87,House,Mid-Terrace,2012-07-16,E07000110,E14000804,Kent,2012-07-16,marketed sale,66,88,187,54.0,3.2,36,1.0,48.0,48.0,516.0,363.0,123.0,70.0,88.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,1.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"29, Snowdon Avenue",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2012-07-16 17:07:30,owner-occupied,8.0,8.0,200003705775.0,Address Matched +356014651132009090215555685068804,"29, Lenside Drive",Bearsted,,ME15 8UE,5475886668,D,C,65,70,House,Mid-Terrace,2009-09-02,E07000110,E14000700,Kent,2009-09-02,marketed sale,64,69,261,221.0,3.3,43,2.8,46.0,46.0,512.0,458.0,132.0,107.0,75.78,dual,Y,NO DATA!,,,2109.0,90.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,90.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Partial double glazing,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and boiler energy manager",Good,Good,Low energy lighting in 90% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.29,0.0,N,natural,"29, Lenside Drive, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2009-09-02 15:55:56,owner-occupied,,,200003691268.0,Address Matched +1380574161812015103010585592759241,"13, Cobnut Avenue",,,ME15 8WH,2167120478,B,A,83,93,House,NO DATA!,2015-10-30,E07000110,E14000700,Kent,2015-10-30,new dwelling,84,94,90,24.0,1.7,16,0.5,65.0,65.0,299.0,300.0,106.0,57.0,109.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.12 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.28 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"13, Cobnut Avenue",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2015-10-30 10:58:55,unknown,10.0,10.0,10091194551.0,Address Matched +523455788032010080520511239068601,Flat 9/A Telford House,Boxley Road,,ME14 2TN,8189668768,C,C,75,75,Flat,Mid-Terrace,2010-08-05,E07000110,E14000804,Kent,2010-08-05,rental (social),71,71,220,220.0,2.4,37,2.4,36.0,36.0,406.0,406.0,89.0,89.0,66.4,Single,Y,2nd,Y,4.0,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,100.0,0.0,From main system,Very Good,Very Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Flat, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.31,0.0,N,natural,"Flat 9/A Telford House, Boxley Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2010-08-05 20:51:12,rental (social),,,200003704522.0,Address Matched +887175814252013022208455893270706,"16, Maxwell Drive",,,ME16 0QJ,7669435078,D,C,57,77,Bungalow,Semi-Detached,2013-02-21,E07000110,E14000804,Kent,2013-02-22,rental (private),53,75,271,129.0,3.9,52,1.9,47.0,47.0,649.0,532.0,128.0,75.0,74.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,92.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 92% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"16, Maxwell Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2013-02-22 08:45:58,rental (private),12.0,11.0,200003704326.0,Address Matched +1723299235132019052311154511278501,"47, Ramsden Way",Marden,,TN12 9GL,3141564678,B,A,84,95,House,End-Terrace,2019-05-23,E07000110,E14000804,Kent,2019-05-23,new dwelling,86,98,86,1.0,1.2,15,0.0,63.0,63.0,200.0,200.0,79.0,48.0,80.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.16 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.19 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"47, Ramsden Way, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,NO DATA!,2019-05-23 11:15:45,unknown,15.0,15.0,10093305370.0,Address Matched +d59d5bacff3540d8b892e00ad483e14bc70678b0958c8b4bb301b25175c871c2,15b Woolley Road,,,ME15 8PY,10001364863,C,B,70,82,House,Detached,2021-09-15,E07000110,E14000700,Kent,2021-09-17,marketed sale,68,82,182,101.0,4.1,30,2.2,123.0,123.0,700.0,616.0,151.0,73.0,137.0,Single,Y,,,,,100.0,double glazing installed during or after 2002,Normal,0.0,6.0,6.0,76.0,0.0,From main system,Good,Good,"Solid, limited insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, wood logs",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 76% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.4,0.0,N,natural,15b Woolley Road,Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1996-2002,2021-09-17 13:25:53,Owner-occupied,21.0,,200003729707.0,Energy Assessor +917520434732013042220563879278004,"5, Capell Close",Coxheath,,ME17 4DX,3469057078,C,B,72,89,House,Semi-Detached,2013-04-22,E07000110,E14000804,Kent,2013-04-22,rental (social),73,90,169,43.0,2.0,32,0.6,53.0,37.0,364.0,336.0,81.0,57.0,63.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,57.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 57% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"5, Capell Close, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2013-04-22 20:56:38,rental (social),7.0,4.0,200003713266.0,Address Matched +161567299222019112819081812888521,Flat 2 Upnor House,Drawbridge Close,,ME15 7XD,2146942568,C,C,74,76,Flat,Detached,2019-11-28,E07000110,E14000700,Kent,2019-11-28,rental (social),77,80,193,171.0,1.5,34,1.3,55.0,39.0,263.0,241.0,74.0,74.0,43.0,Single,Y,Ground,N,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,60.0,0.0,From main system,Good,Good,"Solid, limited insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 60% of fixed outlets,Good,Good,mains gas (not community),0.0,unheated corridor,8.02,,,N,natural,"Flat 2 Upnor House, Drawbridge Close",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1996-2002,2019-11-28 19:08:18,rental (social),,,10022896676.0,Address Matched +1774609482022020010214080088428210,197a Upper Fant Road,,,ME16 8BX,1835838678,C,C,73,73,Maisonette,Detached,2020-01-02,E07000110,E14000804,Kent,2020-01-02,new dwelling,60,60,339,339.0,2.0,57,2.0,36.0,36.0,250.0,250.0,176.0,176.0,36.0,off-peak 7 hour,,ground floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,Electric instantaneous at point of use,Very Poor,Very Poor,Average thermal transmittance 0.17 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.22 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,"Electric storage heaters, radiators",Average,Very Poor,Automatic charge control,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,197a Upper Fant Road,Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2020-01-02 14:08:00,unknown,20.0,20.0,, +661190012652011080114194999090788,"79, Abingdon Road",,,ME16 9EH,7837298868,D,D,65,67,House,Detached,2011-08-01,E07000110,E14000804,Kent,2011-08-01,marketed sale,65,67,191,179.0,4.1,36,3.8,90.0,59.0,734.0,710.0,91.0,91.0,112.25,dual,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,2.0,7.0,7.0,46.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 46% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,2.44,0.0,,natural,"79, Abingdon Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2011-08-01 14:19:49,owner-occupied,13.0,6.0,200003665315.0,Address Matched +885279274612013021215215390970900,Flat 11 Westwood Lodge,Westwood Close,Lenham,ME17 2BW,9095405078,C,C,80,80,Flat,Detached,2013-02-12,E07000110,E14000700,Kent,2013-02-12,new dwelling,85,85,110,110.0,1.1,21,1.1,45.0,45.0,223.0,223.0,73.0,73.0,55.0,standard tariff,,top floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.30 W/m?K,Good,Good,,,,Average thermal transmittance 0.13 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Very Good,Very Good,Low energy lighting in 77% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Flat 11 Westwood Lodge, Westwood Close, Lenham",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2013-02-12 15:21:53,NO DATA!,13.0,10.0,10014313892.0,Address Matched +317697112302020032112334762409518,Apartment 1,"7, Bazalgette Rise",,ME16 8FJ,8306714668,C,C,76,78,Flat,Semi-Detached,2020-03-19,E07000110,E14000804,Kent,2020-03-21,rental (private),77,79,152,137.0,1.8,27,1.6,75.0,60.0,299.0,275.0,91.0,92.0,66.0,Single,Y,Ground,N,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,75.0,0.0,From main system,Good,Good,"Solid, limited insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,15.55,,,N,natural,"Apartment 1, 7, Bazalgette Rise",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2020-03-21 12:33:47,rental (private),,,10014308160.0,Address Matched +1716909568552019050718044391010467,26a Snowdon Avenue,,,ME14 5NU,4723814678,B,A,83,93,House,Detached,2019-05-07,E07000110,E14000804,Kent,2019-05-07,new dwelling,84,94,92,22.0,1.6,16,0.4,70.0,70.0,267.0,267.0,82.0,50.0,101.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.17 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.17 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.16 W/m-¦K,Good,Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,26a Snowdon Avenue,Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2019-05-07 18:04:43,unknown,9.0,9.0,10094442422.0,Address Matched +d5bd27a7d0b8ac461f07f189c179f2353d0f3c51a44cf1825ba24ecfe69697fd,FLAT 4,RAGSTONE LODGE,PEEL STREET,ME14 2WB,10001635564,C,B,80,81,Flat,Mid-Terrace,2021-07-29,E07000110,E14000804,Kent,2021-08-03,rental,83,84,120,112.0,1.3,21,1.2,93.0,59.0,217.0,220.0,74.0,74.0,62.0,Single,Y,01,N,,,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,43.0,0.0,From main system,Good,Good,"To external air, insulated (assumed)",,,Fully double glazed,Good,Good,"Timber frame, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 43% of fixed outlets,Average,Average,mains gas (not community),0.0,unheated corridor,8.66,2.26,0.0,N,natural,"FLAT 4, RAGSTONE LODGE, PEEL STREET",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2021-08-03 09:06:05,Rented (social),7.0,,10022896733.0,Energy Assessor +1433456299442016041320201147369728,"13, Muir Road",,,ME15 6PX,7469693478,E,C,53,80,House,Mid-Terrace,2016-04-12,E07000110,E14000804,Kent,2016-04-13,rental (private),46,76,368,143.0,4.8,65,1.9,80.0,50.0,869.0,571.0,148.0,82.0,74.0,Unknown,Y,NODATA!,,,2107.0,0.0,not defined,Normal,1.0,5.0,5.0,40.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Single glazed,Very Poor,Very Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, mains gas",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 40% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,2.1,,N,natural,"13, Muir Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2016-04-13 20:20:11,rental (private),,,200003681685.0,Address Matched +1209770419002014101517301124849558,"32, Reinden Grove",Downswood,,ME15 8TH,6043518278,E,B,53,81,House,Detached,2014-10-15,E07000110,E14000700,Kent,2014-10-15,none of the above,48,81,277,91.0,5.4,53,1.8,69.0,69.0,995.0,588.0,210.0,81.0,103.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,6.0,6.0,86.0,0.0,"From main system, no cylinder thermostat",Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, partial insulation (assumed)",Average,Average,,,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 86% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,"mechanical, extract only","32, Reinden Grove, Downswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1976-1982,2014-10-15 17:30:11,owner-occupied,14.0,12.0,200003686360.0,Address Matched +1471434284452016082012535496960646,"20, Hildenborough Crescent",,,ME16 0PB,6690466478,D,B,67,86,House,Mid-Terrace,2016-08-19,E07000110,E14000804,Kent,2016-08-20,rental (private),65,85,239,80.0,2.5,42,0.9,58.0,42.0,431.0,370.0,131.0,76.0,60.0,Single,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,1.0,3.0,3.0,62.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, partial insulation (assumed)",Average,Average,,,,"Pitched, limited insulation (assumed)",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 62% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,1.98,,N,natural,"20, Hildenborough Crescent",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1976-1982,2016-08-20 12:53:54,rental (private),,,200003660064.0,Address Matched +1537967979222017042419341891448113,"11, Lower Fant Road",,,ME16 8DP,1979731578,F,C,36,78,House,Semi-Detached,2017-04-24,E07000110,E14000804,Kent,2017-04-24,marketed sale,31,74,442,120.0,7.7,81,2.2,117.0,61.0,1398.0,606.0,122.0,72.0,94.0,Single,Y,NODATA!,,,2107.0,100.0,"double glazing, unknown install date",Normal,2.0,5.0,5.0,8.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, dual fuel (mineral and wood)",,,"Roof room(s), no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 8% of fixed outlets,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"11, Lower Fant Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2017-04-24 19:34:18,owner-occupied,,,200003668349.0,Address Matched +269795380002009042114361465012598,"23, Dogwood Close",,,ME5 8XW,3031780668,E,C,54,77,House,Mid-Terrace,2009-04-21,E07000110,E14000700,Kent,2009-04-21,marketed sale,46,74,408,194.0,4.7,68,2.2,36.0,36.0,580.0,307.0,187.0,100.0,68.6,Single,Y,NO DATA!,,,2102.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,90.0,0.0,"From main system, no cylinderstat",Poor,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Average,Good,"Programmer, no room thermostat",Very Poor,Very Poor,Low energy lighting in 90% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.3,0.0,N,natural,"23, Dogwood Close",Maidstone,Faversham and Mid Kent,CHATHAM,England and Wales: 1967-1975,2009-04-21 14:36:14,owner-occupied,,,200003676609.0,Address Matched +183503464552018120522213492089556,Flat 5 The Mews Rear of 37,High Street,,ME14 1JG,5655424568,C,C,77,77,Flat,End-Terrace,2018-12-05,E07000110,E14000804,Kent,2018-12-05,rental (social),79,79,158,158.0,1.5,28,1.5,43.0,43.0,253.0,253.0,91.0,91.0,53.0,Single,Y,2nd,Y,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,2.0,2.0,100.0,0.0,From main system,Very Good,Good,(another dwelling below),NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,7.95,,,N,natural,"Flat 5 The Mews Rear of 37, High Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2018-12-05 22:21:34,rental (social),,,200003654904.0,Address Matched +190867279922014011413525775148674,Kyalami,Workhouse Lane,East Farleigh,ME15 0PZ,7730715568,C,B,71,85,Bungalow,Detached,2014-01-14,E07000110,E14000804,Kent,2014-01-14,marketed sale,63,82,129,64.0,5.6,30,2.6,92.0,92.0,1521.0,990.0,275.0,121.0,189.0,dual,N,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,6.0,6.0,100.0,1.0,From main system,Poor,Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,"Room heaters, wood logs",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, oil",Average,Poor,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,oil (not community),0.0,NO DATA!,,,,,natural,"Kyalami, Workhouse Lane, East Farleigh",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1976-1982,2014-01-14 13:52:57,owner-occupied,12.0,12.0,200003715438.0,Address Matched +1572894939062017090617171993668893,"20, Haste Hill Road",Boughton Monchelsea,,ME17 4LP,9982383578,E,B,54,81,House,Semi-Detached,2017-09-06,E07000110,E14000700,Kent,2017-09-06,marketed sale,55,84,330,107.0,3.8,51,1.1,62.0,62.0,747.0,470.0,177.0,79.0,75.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,80.0,2.0,"From main system, no cylinder thermostat",Average,Average,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Sandstone or limestone, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, insulated at rafters",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"20, Haste Hill Road, Boughton Monchelsea",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2017-09-06 17:17:19,owner-occupied,,,200003674675.0,Address Matched +451769329062019090611024583528018,"2, Clare Way",,,ME15 9ZE,1865263768,C,B,76,89,House,End-Terrace,2018-05-02,E07000110,E14000700,Kent,2019-09-06,rental (social),75,88,150,62.0,2.4,26,1.0,131.0,71.0,318.0,326.0,139.0,100.0,91.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,17.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 17% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"2, Clare Way",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2007 onwards,2019-09-06 11:02:45,rental (social),,,10014311488.0,Address Matched +106837939602014090709253245740948,"79, Ware Street",Bearsted,,ME14 4PG,1682537468,E,B,54,87,House,End-Terrace,2014-09-04,E07000110,E14000700,Kent,2014-09-07,rental (private),51,89,346,53.0,3.3,67,0.6,33.0,33.0,587.0,354.0,153.0,65.0,50.0,Single,Y,NODATA!,,,2104.0,,not defined,Much More Than Typical,2.0,3.0,3.0,100.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Multiple glazing throughout,Average,Average,"System built, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 100mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"79, Ware Street, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2014-09-07 09:25:32,rental (private),8.0,8.0,200003693719.0,Address Matched +1640342269142018061514022557889848,"9, Wents Wood",Weavering,,ME14 5BL,4158468578,D,C,67,80,House,Detached,2018-06-14,E07000110,E14000700,Kent,2018-06-15,marketed sale,59,73,192,118.0,7.9,34,4.9,216.0,113.0,1269.0,1002.0,171.0,127.0,234.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,3.0,8.0,8.0,9.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 9% of fixed outlets,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"9, Wents Wood, Weavering",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1991-1995,2018-06-15 14:02:25,owner-occupied,,,200003690109.0,Address Matched +204525529022019040215341156798211,Flat 4 Oaklands House,"12-14, Ashford Road",,ME14 5DG,1529216568,D,C,66,80,Flat,Semi-Detached,2019-04-01,E07000110,E14000804,Kent,2019-04-02,marketed sale,47,68,458,268.0,3.3,77,2.0,38.0,38.0,443.0,174.0,151.0,151.0,43.0,dual,N,1st,N,,2401.0,100.0,double glazing installed before 2002,Normal,0.0,2.0,2.0,100.0,0.0,"Electric immersion, off-peak",Average,Poor,(another dwelling below),NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Poor,Poor,Portable electric heaters (assumed),,,(another dwelling above),,,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,unheated corridor,6.7,,,N,natural,"Flat 4 Oaklands House, 12-14, Ashford Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2019-04-02 15:34:11,owner-occupied,,,200003661319.0,Address Matched +282580770902009100511065965119598,"16, Thatch Barn Road",Headcorn,,TN27 9UB,3914371668,C,C,77,78,House,Mid-Terrace,2009-05-11,E07000110,E14000700,Kent,2009-10-05,rental (social),74,75,186,182.0,2.3,31,2.3,53.0,38.0,342.0,344.0,105.0,105.0,75.78,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,60.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 60% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.32,0.0,N,natural,"16, Thatch Barn Road, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,England and Wales: 1950-1966,2009-10-05 11:06:59,rental (social),,,200003726923.0,Address Matched +1152008102902020071419421020409148,"43, Arundel Square",,,ME15 6HB,922804278,B,B,81,82,Flat,Semi-Detached,2020-07-14,E07000110,E14000804,Kent,2020-07-14,rental (private),85,86,109,102.0,1.2,19,1.1,89.0,58.0,178.0,181.0,99.0,99.0,62.0,Unknown,Y,1st,N,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,46.0,0.0,From main system,Good,Good,(another dwelling below),NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 46% of fixed outlets,Good,Good,mains gas (not community),0.0,unheated corridor,3.81,,,N,natural,"43, Arundel Square",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2020-07-14 19:42:10,rental (private),,,10022895143.0,Address Matched +242091339962013051515524328158317,"15, Buckland Rise",,,ME16 0YN,1277398568,C,B,79,81,Flat,End-Terrace,2013-05-15,E07000110,E14000804,Kent,2013-05-15,marketed sale,83,84,110,98.0,1.3,21,1.2,81.0,41.0,256.0,262.0,40.0,40.0,62.0,Unknown,Y,Ground,N,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,0.0,0.0,From main system,Good,Good,"Suspended, insulated (assumed)",,,Fully double glazed,Good,Good,"Timber frame, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,unheated corridor,7.05,,0.0,,natural,"15, Buckland Rise",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2013-05-15 15:52:43,owner-occupied,7.0,0.0,10014308210.0,Address Matched +560624059062010110418424331248120,"453, Willington Street",,,ME15 8HD,2322531868,D,C,61,73,House,Semi-Detached,2010-11-04,E07000110,E14000700,Kent,2010-11-04,marketed sale,59,72,303,207.0,3.6,50,2.5,62.0,37.0,533.0,406.0,155.0,110.0,72.11,Single,Y,NO DATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,33.0,0.0,From main system,Average,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Average,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 33% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.36,0.0,N,natural,"453, Willington Street",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2010-11-04 18:42:43,owner-occupied,,,200003680558.0,Address Matched +462853839742010040712293679400938,Flat 2,"38, Marsham Street",,ME14 1HG,5704834768,D,C,63,69,Flat,End-Terrace,2010-04-07,E07000110,E14000804,Kent,2010-04-07,rental (private),57,63,353,305.0,3.1,59,2.7,47.0,27.0,496.0,452.0,88.0,77.0,52.85,Single,Y,Ground,N,2.0,2106.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,30.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 30% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,unheated corridor,7.87,2.0,0.0,N,natural,"Flat 2, 38, Marsham Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2010-04-07 12:29:36,rental (private),,,200003728968.0,Address Matched +515480383032010071909494562968702,"15, Bridgeside Mews",,,ME15 6TB,8222708768,C,B,79,84,Flat,Mid-Terrace,2010-07-19,E07000110,E14000804,Kent,2010-07-19,rental (private),78,83,205,156.0,1.4,34,1.1,49.0,24.0,192.0,191.0,130.0,91.0,42.05,Single,Y,2nd,Y,3.0,2106.0,100.0,double glazing installed before 2002,Normal,0.0,2.0,2.0,0.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,heated corridor,,2.45,0.0,N,natural,"15, Bridgeside Mews",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2010-07-19 09:49:45,rental (private),,,10022896640.0,Address Matched +1678020545712019100912111793089566,Flat 313,Kent House,Romney Place,ME15 6LA,5635531678,D,D,66,66,Flat,Detached,2018-11-09,E07000110,E14000804,Kent,2019-10-09,non marketed sale,69,69,290,290.0,1.7,49,1.7,30.0,30.0,311.0,311.0,233.0,233.0,35.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,"Electric immersion, standard tariff",Very Poor,Poor,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.32 W/m-¦K,Good,Good,,,,(other premises above),,,Electric underfloor heating,Very Poor,Poor,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"Flat 313, Kent House, Romney Place",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2019-10-09 12:11:17,unknown,21.0,21.0,, +1106689099922014052118550790518034,"36, Tovil Road",,,ME15 6QJ,3993980278,E,B,54,84,House,Mid-Terrace,2014-05-19,E07000110,E14000804,Kent,2014-05-21,marketed sale,49,84,280,74.0,5.0,54,1.4,84.0,54.0,921.0,476.0,113.0,70.0,92.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,1.0,5.0,5.0,45.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 45% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"36, Tovil Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2014-05-21 18:55:07,owner-occupied,11.0,5.0,200003664462.0,Address Matched +251408779062015100910343289318015,Meridian,Orchard Drive,Weavering,ME14 5JG,1853729568,D,B,68,82,Bungalow,Detached,2015-10-09,E07000110,E14000700,Kent,2015-10-09,marketed sale,61,77,204,109.0,4.8,36,2.6,73.0,73.0,844.0,687.0,157.0,79.0,133.0,Unknown,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,6.0,6.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"Meridian, Orchard Drive, Weavering",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2015-10-09 10:34:32,owner-occupied,,,10014307811.0,Address Matched +1443031753512016051217025496960845,Mount Pleasant,Headcorn Road,Sutton Valence,ME17 3EH,8556364478,E,C,46,79,House,Detached,2016-05-12,E07000110,E14000700,Kent,2016-05-12,marketed sale,38,70,222,73.0,15.0,56,6.3,173.0,109.0,2327.0,1440.0,170.0,102.0,264.0,Unknown,N,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,11.0,11.0,42.0,1.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, oil",Average,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 42% of fixed outlets,Average,Average,oil (not community),0.0,NO DATA!,,2.48,,N,natural,"Mount Pleasant, Headcorn Road, Sutton Valence",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1900-1929,2016-05-12 17:02:54,owner-occupied,,,200003695632.0,Address Matched +286775819312009051900034400910068,"15, Discovery Road",Bearsted,,ME15 8HF,812902668,D,C,68,73,House,Detached,2009-05-18,E07000110,E14000700,Kent,2009-05-19,non marketed sale,65,69,226,199.0,3.9,38,3.5,103.0,52.0,504.0,471.0,110.0,107.0,121.3,Unknown,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,7.0,7.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.24,0.0,N,natural,"15, Discovery Road, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1991-1995,2009-05-19 00:03:44,owner-occupied,,,200003722061.0,Address Matched +d624c111fd8a65a889e0b5418fb32007e83990c40dbcf94310482abca086ed33,50 SEYMOUR DRIVE,,,TN12 9GT,10001529091,B,A,85,94,House,Detached,2021-07-15,E07000110,E14000804,Kent,2021-07-15,new dwelling,86,94,73,20.0,1.8,13,0.5,96.0,96.0,267.0,269.0,95.0,53.0,138.0,standard tariff,,,N,,,100.0,,,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.22 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.39,,,,50 SEYMOUR DRIVE,Maidstone,Maidstone and The Weald,MARDEN,2021,2021-07-15 09:17:54,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,10.0,,10094441131.0,Energy Assessor +276700953352015040210295593050267,Rose Cottage,Tumblers Hill,Sutton Valence,ME17 3AE,2797331668,D,B,60,86,House,Mid-Terrace,2015-04-01,E07000110,E14000700,Kent,2015-04-02,marketed sale,63,89,282,75.0,3.1,42,0.7,67.0,48.0,714.0,428.0,94.0,62.0,73.0,Single,Y,NODATA!,,,2106.0,0.0,not defined,Normal,0.0,5.0,5.0,60.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Single glazed,Very Poor,Very Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 60% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"Rose Cottage, Tumblers Hill, Sutton Valence",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2015-04-02 10:29:55,owner-occupied,,,200003696357.0,Address Matched +1403620966652016012411232398260342,"30, Lacock Gardens",,,ME15 6GJ,3201681478,C,B,70,87,House,Mid-Terrace,2016-01-21,E07000110,E14000804,Kent,2016-01-24,marketed sale,70,87,208,75.0,2.3,37,0.9,58.0,58.0,399.0,380.0,141.0,69.0,63.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,4.0,4.0,78.0,0.0,From main system,Good,Good,"Solid, limited insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 78% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"30, Lacock Gardens",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2016-01-24 11:23:23,owner-occupied,,,10034134515.0,Address Matched +1744474589222019082912404706318591,"10, Challenger Way",Marden,,TN12 9GN,9011816678,B,A,84,94,House,Detached,2019-08-29,E07000110,E14000804,Kent,2019-08-29,new dwelling,86,95,81,16.0,1.5,14,0.3,73.0,73.0,250.0,250.0,78.0,47.0,106.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.12 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.28 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"10, Challenger Way, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,NO DATA!,2019-08-29 12:40:47,owner-occupied,16.0,16.0,10094439852.0,Address Matched +563394439922010111014111631108930,"582, Tonbridge Road",,,ME16 9DH,3378351868,D,C,67,73,House,Semi-Detached,2010-11-10,E07000110,E14000804,Kent,2010-11-10,rental (private),66,72,227,184.0,3.6,37,2.9,82.0,51.0,554.0,484.0,146.0,121.0,96.41,Single,Y,NO DATA!,,,2106.0,95.0,double glazing installed during or after 2002,Normal,1.0,5.0,5.0,40.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Mostly double glazing,Good,Good,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 40% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.41,0.0,N,natural,"582, Tonbridge Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2010-11-10 14:11:16,rental (private),,,200003664428.0,Address Matched +805435256412015113012273395759299,"32, Cayser Drive",Kingswood,,ME17 3QD,2988659968,D,B,60,83,House,Detached,2015-11-30,E07000110,E14000700,Kent,2015-11-30,assessment for green deal,52,80,257,100.0,6.3,45,2.5,149.0,75.0,1091.0,651.0,147.0,89.0,138.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,6.0,6.0,0.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"32, Cayser Drive, Kingswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2015-11-30 12:27:33,owner-occupied,,,200003701313.0,Address Matched +1172390449842019091416152825519878,"5, Brishing Close",,,ME15 9LA,8836945278,C,B,76,87,House,Semi-Detached,2019-09-13,E07000110,E14000700,Kent,2019-09-14,rental (private),75,85,152,80.0,2.6,27,1.4,70.0,70.0,438.0,438.0,91.0,61.0,96.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,6.0,6.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"5, Brishing Close",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2019-09-14 16:15:28,rental (private),,,200003682416.0,Address Matched +821783148232012080500033055078203,1 Thurnham Oast,Aldington Lane,Thurnham,ME14 3LL,4335270078,D,B,59,87,House,Semi-Detached,2012-08-03,E07000110,E14000700,Kent,2012-08-05,marketed sale,59,88,226,58.0,4.7,38,1.2,71.0,72.0,962.0,500.0,68.0,68.0,123.0,dual,Y,NODATA!,,,2106.0,0.0,not defined,Normal,1.0,5.0,5.0,89.0,0.0,"From main system, plus solar",Very Good,Very Good,"Solid, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 89% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"1 Thurnham Oast, Aldington Lane, Thurnham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2012-08-05 00:03:30,owner-occupied,9.0,8.0,200003720594.0,Address Matched +583007909642011012022391187392608,"22, Rycault Close",,,ME16 8SW,7694703868,C,C,74,77,Bungalow,End-Terrace,2011-01-20,E07000110,E14000804,Kent,2011-01-20,rental (social),70,74,302,267.0,1.8,50,1.6,19.0,19.0,321.0,287.0,91.0,91.0,35.22,Unknown,Y,NO DATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,100.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, partial insulation (assumed)",Average,Average,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.32,0.0,N,natural,"22, Rycault Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1976-1982,2011-01-20 22:39:11,rental (social),,,200003726154.0,Address Matched +334731730202009072813010568512188,"2, Kewlands",,,ME14 5RS,8233835668,D,C,60,77,House,End-Terrace,2009-07-28,E07000110,E14000804,Kent,2009-07-28,rental (private),54,74,334,190.0,4.1,56,2.3,61.0,36.0,603.0,365.0,112.0,88.0,73.24,Single,Y,NO DATA!,,,2107.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,33.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Poor,Poor,Low energy lighting in 33% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.36,0.0,N,natural,"2, Kewlands",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2009-07-28 13:01:05,rental (private),,,200003673108.0,Address Matched +d67528f4139736056993ce990f5ec282693b76c033a8be266d6c8813634cff5f,37 West Street,Harrietsham,,ME17 1HX,10001504401,F,C,32,75,House,Semi-Detached,2021-08-17,E07000110,E14000700,Kent,2021-08-19,marketed sale,27,70,575,172.0,7.3,105,2.3,59.0,60.0,1156.0,613.0,224.0,65.0,70.0,Single,Y,,,,,20.0,"double glazing, unknown install date",Normal,1.0,4.0,4.0,100.0,2.0,"From main system, no cylinder thermostat",Poor,Poor,"Solid, no insulation (assumed)",,,Some double glazing,Poor,Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.42,0.0,N,natural,"37 West Street, Harrietsham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2021-08-19 13:11:11,Owner-occupied,3.0,,200003702542.0,Energy Assessor +228303700652009021217364708910359,"15, Palmar Road",,,ME16 0DL,3934087568,D,D,57,66,House,Semi-Detached,2009-02-12,E07000110,E14000804,Kent,2009-02-12,marketed sale,60,68,286,231.0,5.0,41,4.0,99.0,58.0,758.0,640.0,136.0,120.0,120.2,Single,Y,NO DATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,2.0,5.0,5.0,30.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, wood logs",,,"Pitched, 100mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Poor,Poor,Low energy lighting in 30% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.6,0.0,N,natural,"15, Palmar Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2009-02-12 17:36:47,owner-occupied,,,200003658721.0,Address Matched +1168741409062014070307232615628094,"13, Orchard Close",Coxheath,,ME17 4HE,9145025278,D,C,61,79,Bungalow,Semi-Detached,2014-07-02,E07000110,E14000804,Kent,2014-07-03,marketed sale,58,77,234,112.0,3.7,45,1.8,102.0,51.0,689.0,584.0,113.0,76.0,83.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",More Than Typical,1.0,5.0,5.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"13, Orchard Close, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2014-07-03 07:23:26,owner-occupied,9.0,0.0,200003713642.0,Address Matched +575051349442010121615351880209768,"7, Sheridan Close",,,ME14 2QP,4466342868,D,C,67,72,House,Mid-Terrace,2010-12-16,E07000110,E14000804,Kent,2010-12-16,rental (social),62,67,314,273.0,2.7,52,2.4,48.0,27.0,453.0,408.0,80.0,80.0,51.71,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,More Than Typical,1.0,3.0,3.0,25.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Flat, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 25% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.32,0.0,N,natural,"7, Sheridan Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2010-12-16 15:35:18,rental (social),,,200003670706.0,Address Matched +400828540962009111917311580988651,"43, Berwyn Grove",,,ME15 9RE,5894400768,D,D,55,65,House,Semi-Detached,2009-11-18,E07000110,E14000804,Kent,2009-11-19,marketed sale,49,59,352,273.0,5.3,58,4.1,86.0,45.0,788.0,653.0,103.0,77.0,90.3,Single,Y,NO DATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,10.0,1.0,"From main system, plus solar",Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 10% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.3,0.0,Y,natural,"43, Berwyn Grove",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2009-11-19 17:31:15,owner-occupied,,,200003675041.0,Address Matched +276047622142020012419133066102348,"239, Loose Road",,,ME15 7DR,6147521668,D,C,55,74,Bungalow,Detached,2020-01-24,E07000110,E14000700,Kent,2020-01-24,marketed sale,46,66,325,186.0,6.1,57,3.5,97.0,77.0,1077.0,832.0,93.0,63.0,106.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,6.0,6.0,75.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"239, Loose Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1900-1929,2020-01-24 19:13:30,owner-occupied,,,200003684209.0,Address Matched +313521236132009062523095332268206,Flat 2 St. Asaph House,Middlesex Road,,ME15 7PW,3642293668,C,B,79,81,Flat,Semi-Detached,2009-06-25,E07000110,E14000700,Kent,2009-06-25,rental (social),76,79,184,163.0,1.8,31,1.6,44.0,29.0,273.0,251.0,76.0,76.0,60.45,Single,Y,1st,Y,2.0,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,50.0,0.0,From main system,Very Good,Very Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.37,0.0,N,natural,"Flat 2 St. Asaph House, Middlesex Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2009-06-25 23:09:53,rental (social),,,200003713154.0,Address Matched +802258839842012062117121294922198,Greystone,Linton Road,Loose,ME15 0AG,8816239968,D,B,59,82,House,Detached,2012-06-21,E07000110,E14000804,Kent,2012-06-21,marketed sale,47,73,179,77.0,11.0,45,5.0,121.0,91.0,1498.0,923.0,225.0,96.0,234.0,dual,N,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,6.0,6.0,67.0,0.0,From main system,Poor,Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, oil",Average,Poor,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 67% of fixed outlets,Good,Good,oil (not community),0.0,NO DATA!,,,0.0,,natural,"Greystone, Linton Road, Loose",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2012-06-21 17:12:12,owner-occupied,15.0,10.0,200003663520.0,Address Matched +517841483032010072309141967268301,"10, Blean Square",,,ME14 5QU,8197328768,C,C,71,78,House,Mid-Terrace,2010-07-23,E07000110,E14000804,Kent,2010-07-23,rental (private),71,77,237,188.0,2.3,39,1.8,61.0,30.0,365.0,307.0,112.0,106.0,57.9,Single,Y,NO DATA!,,,2107.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,0.0,0.0,From main system,Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, partial insulation (assumed)",Average,Average,"Room heaters, electric",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Very Good,"Programmer, TRVs and bypass",Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.39,0.0,N,natural,"10, Blean Square",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1976-1982,2010-07-23 09:14:19,rental (private),,,200003721062.0,Address Matched +397980229922017021617014189908953,"38, Oxford Gardens",,,ME15 8FJ,5839289668,C,B,77,90,House,Mid-Terrace,2017-02-10,E07000110,E14000700,Kent,2017-02-16,marketed sale,79,91,135,49.0,1.8,23,0.7,58.0,58.0,352.0,352.0,140.0,84.0,81.0,Single,N,NODATA!,,,2207.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,From main system,Average,Good,"Solid, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Air source heat pump, radiators, electric",Good,Very Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,NO DATA!,,,,N,natural,"38, Oxford Gardens",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2007 onwards,2017-02-16 17:01:41,owner-occupied,,,10014308977.0,Address Matched +1566436656712017080911512493030858,"6, Sutton Court",Marden,,TN12 9TF,8845633578,D,C,65,76,Flat,Semi-Detached,2017-08-09,E07000110,E14000804,Kent,2017-08-09,marketed sale,62,62,308,305.0,2.5,52,2.5,76.0,41.0,385.0,247.0,168.0,135.0,48.0,dual,N,2nd,Y,,2602.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,0.0,0.0,"Electric immersion, off-peak",Poor,Poor,(another dwelling below),NO DATA!,,Fully double glazed,Average,Average,"Timber frame, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Average,Average,"Room heaters, electric",Very Poor,Poor,Appliance thermostats,Good,Good,No low energy lighting,Very Poor,Very Poor,electricity (not community),0.0,heated corridor,,,,N,natural,"6, Sutton Court, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1983-1990,2017-08-09 11:51:24,owner-occupied,,,200003710603.0,Address Matched +121049289062019080912345998288051,"42, St. Welcumes Way",Harrietsham,,ME17 1BD,5938888468,D,B,68,87,House,End-Terrace,2019-08-08,E07000110,E14000700,Kent,2019-08-09,marketed sale,66,86,233,77.0,2.7,41,0.9,84.0,56.0,405.0,358.0,143.0,66.0,66.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,50.0,0.0,From main system,Good,Good,"Suspended, limited insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"42, St. Welcumes Way, Harrietsham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1996-2002,2019-08-09 12:34:59,owner-occupied,,,200003704160.0,Address Matched +1469417071112016080820121895060443,"6, Cayser Drive",Kingswood,,ME17 3QB,4385156478,D,B,57,81,House,Semi-Detached,2016-08-08,E07000110,E14000700,Kent,2016-08-08,marketed sale,52,80,279,111.0,6.3,46,2.4,145.0,84.0,1168.0,720.0,197.0,80.0,137.0,Single,Y,NODATA!,,,2106.0,,not defined,Much More Than Typical,4.0,5.0,5.0,27.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Mostly double glazing,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, wood logs",,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 27% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,2.9,,N,natural,"6, Cayser Drive, Kingswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2016-08-08 20:12:18,owner-occupied,,,200003701281.0,Address Matched +238995109002019080111145859810498,"19, Buckland Rise",,,ME16 0YN,5054108568,B,B,82,83,Flat,End-Terrace,2019-08-01,E07000110,E14000804,Kent,2019-08-01,rental (private),86,87,94,89.0,1.0,16,1.0,75.0,56.0,160.0,162.0,92.0,92.0,64.0,Single,Y,1st,N,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,67.0,0.0,From main system,Good,Good,(another dwelling below),NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 67% of fixed outlets,Good,Good,mains gas (not community),0.0,no corridor,,,,N,natural,"19, Buckland Rise",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2019-08-01 11:14:58,rental (private),,,10014308214.0,Address Matched +1319757045532015051812425065978103,Lavender Cottage,Bearsted Road,Weavering,ME14 5LD,4305195378,F,D,34,68,Bungalow,Semi-Detached,2015-05-18,E07000110,E14000700,Kent,2015-05-18,marketed sale,27,58,485,219.0,9.7,86,4.4,66.0,66.0,1681.0,1045.0,266.0,77.0,113.0,Single,Y,NODATA!,,,2102.0,100.0,double glazing installed before 2002,Normal,1.0,6.0,6.0,100.0,0.0,"From main system, no cylinder thermostat",Poor,Poor,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Granite or whinstone, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, mains gas",,,"Roof room(s), no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"Lavender Cottage, Bearsted Road, Weavering",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2015-05-18 12:42:50,owner-occupied,,,200003689596.0,Address Matched +447505989022010030223053283828930,"10, Sutton Road",,,ME15 9AH,3847823768,D,C,65,74,House,Semi-Detached,2010-03-02,E07000110,E14000700,Kent,2010-03-02,marketed sale,59,69,285,213.0,3.8,48,2.9,60.0,42.0,552.0,434.0,139.0,115.0,92.5,Single,Y,NO DATA!,,,2104.0,95.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,55.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Mostly double glazing,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 55% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.44,0.0,N,natural,"10, Sutton Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2010-03-02 23:05:32,owner-occupied,,,200003677558.0,Address Matched +1463624899922016071814545736788776,"29, Cannock Drive",,,ME15 8GE,7340906478,B,B,86,88,House,NO DATA!,2016-07-18,E07000110,E14000700,Kent,2016-07-18,new dwelling,89,91,69,55.0,0.9,12,0.7,51.0,51.0,218.0,218.0,79.0,45.0,73.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,"From main system, flue gas heat recovery",Very Good,Very Good,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.18 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"29, Cannock Drive",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2016-07-18 14:54:57,unknown,1.0,1.0,10091193730.0,Address Matched +1502550235712016120614152298069349,"34, Edelin Road",Bearsted,,ME14 4RD,3998588478,C,B,72,82,House,Detached,2016-12-06,E07000110,E14000700,Kent,2016-12-06,marketed sale,71,81,151,89.0,3.5,26,2.1,130.0,78.0,614.0,628.0,133.0,79.0,132.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,2.0,7.0,7.0,33.0,0.0,From main system,Good,Good,"Suspended, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 33% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"34, Edelin Road, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2003-2006,2016-12-06 14:15:22,owner-occupied,,,10022895504.0,Address Matched +1003332639062013090612471423668397,"63, Mallings Drive",Bearsted,,ME14 4HG,9283353178,E,B,53,88,House,Semi-Detached,2013-09-06,E07000110,E14000700,Kent,2013-09-06,none of the above,49,90,290,45.0,4.7,56,0.8,94.0,49.0,700.0,348.0,223.0,73.0,84.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,10.0,0.0,"From main system, no cylinder thermostat",Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 10% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"63, Mallings Drive, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2013-09-06 12:47:14,owner-occupied,10.0,1.0,200003694818.0,Address Matched +416991946152010010514200591000679,Flat 3 Wellington House,"6, Ashford Road",,ME14 5BH,6962611768,C,C,74,75,Flat,Semi-Detached,2010-01-05,E07000110,E14000804,Kent,2010-01-05,rental (private),69,70,280,274.0,2.3,42,2.3,59.0,35.0,215.0,221.0,117.0,117.0,54.93,dual,N,1st,N,4.0,2401.0,100.0,secondary glazing,Normal,0.0,3.0,3.0,29.0,0.0,"Electric immersion, off-peak",Average,Poor,(other premises below),,,Full secondary glazing,Good,Good,"Solid brick, with internal insulation",Good,Good,"Room heaters, electric",,,(another dwelling above),,,Electric storage heaters,Poor,Poor,Manual charge control,Poor,Poor,Low energy lighting in 29% of fixed outlets,Average,Average,electricity - this is for backwards compatibility only and should not be used,0.0,unheated corridor,4.07,2.97,0.0,N,natural,"Flat 3 Wellington House, 6, Ashford Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2010-01-05 14:20:05,rental (private),,,200003689402.0,Address Matched +539580689922011011208185269428969,Flat 4 Holmes Court,Lynley Close,,ME15 9GA,6640879768,B,B,85,86,Flat,Mid-Terrace,2011-01-12,E07000110,E14000700,Kent,2011-01-12,marketed sale,84,85,121,119.0,1.3,20,1.2,44.0,37.0,217.0,218.0,81.0,81.0,62.85,Single,Y,Ground,N,4.0,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,80.0,0.0,From main system,Very Good,Very Good,"Suspended, insulated (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,unheated corridor,14.36,2.25,0.0,N,natural,"Flat 4 Holmes Court, Lynley Close",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2007 onwards,2011-01-12 08:18:52,owner-occupied,,,10022895325.0,Address Matched +688733599962011101215434900528659,"27, Locks Yard",Headcorn,,TN27 9AD,5000980968,B,B,82,82,House,End-Terrace,2011-10-12,E07000110,E14000700,Kent,2011-10-12,new dwelling,84,84,90,90.0,1.8,17,1.8,72.0,72.0,292.0,292.0,95.0,95.0,105.96,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,12.0,,From main system,Good,Good,Average thermal transmittance 0.17 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.27 W/m?K,Very Good,Very Good,"Room heaters, electric",,,Average thermal transmittance 0.14 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.33,,,NO DATA!,"27, Locks Yard, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,NO DATA!,2011-10-12 15:43:49,,15.0,12.0,10014312106.0,Address Matched +506296259762010070609360097808520,"98, Grecian Street",,,ME14 2TS,2939547768,D,C,59,74,House,Mid-Terrace,2010-06-30,E07000110,E14000804,Kent,2010-07-06,marketed sale,53,70,365,232.0,3.8,61,2.4,51.0,32.0,577.0,398.0,115.0,83.0,62.09,Single,Y,NO DATA!,,,2101.0,40.0,double glazing installed during or after 2002,Normal,1.0,3.0,3.0,41.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Partial double glazing,Poor,Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,No time or thermostatic control of room temperature,Very Poor,Very Poor,Low energy lighting in 41% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.58,0.0,N,natural,"98, Grecian Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2010-07-06 09:36:00,owner-occupied,,,200003703278.0,Address Matched +360869686512009091017550902910367,Oast House,Lees Road,Yalding,ME18 6DF,3761627668,C,C,69,74,House,Detached,2009-09-10,E07000110,E14000804,Kent,2009-09-10,marketed sale,66,70,202,176.0,4.9,33,4.3,121.0,83.0,642.0,588.0,160.0,141.0,145.4,Single,Y,NO DATA!,,,2105.0,100.0,double glazing installed during or after 2002,Less Than Typical,0.0,4.0,4.0,53.0,0.0,From main system,Good,Good,"Suspended, insulated (assumed)",,,Fully double glazed,Good,Good,"Solid brick, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated at rafters",Good,Good,"Boiler and underfloor heating, mains gas",Good,Good,Programmer and at least 2 room thermostats,Average,Average,Low energy lighting in 53% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.5,0.0,N,natural,"Oast House, Lees Road, Yalding",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2009-09-10 17:55:09,owner-occupied,,,10014308722.0,Address Matched +1205993119922014091622421187868704,Flat 7 Sycamore House,Belts Wood,,ME15 9GX,866197278,C,C,78,79,Flat,Detached,2014-09-16,E07000110,E14000700,Kent,2014-09-16,rental (social),81,81,117,114.0,1.5,22,1.5,60.0,48.0,283.0,285.0,97.0,97.0,67.0,Unknown,Y,3rd,Y,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,75.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Good,Good,"Timber frame, as built, insulated (assumed)",Good,Good,,,,"Flat, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,9.0,,0.0,,natural,"Flat 7 Sycamore House, Belts Wood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2003-2006,2014-09-16 22:42:11,rental (social),8.0,6.0,10022896427.0,Address Matched +195345100962008121022561435708648,Flat 31 Scotney Gardens,St. Peters Street,,ME16 0GR,4315035568,C,C,71,73,Flat,Mid-Terrace,2008-12-10,E07000110,E14000804,Kent,2008-12-10,rental (private),64,65,344,338.0,2.5,52,2.4,51.0,26.0,196.0,203.0,103.0,103.0,48.03,dual,N,1st,N,4.0,2402.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,0.0,0.0,"Electric immersion, off-peak",Poor,Poor,"To external air, limited insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,(another dwelling above),,,Electric storage heaters,Average,Poor,Automatic charge control,Average,Average,No low energy lighting,Very Poor,Very Poor,electricity - this is for backwards compatibility only and should not be used,0.0,heated corridor,,2.4,0.0,N,natural,"Flat 31 Scotney Gardens, St. Peters Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2008-12-10 22:56:14,rental (private),,,10022893399.0,Address Matched +1666123049442018092513224967082658,46 Forstal Cottages,Forstal Road,,ME20 7AH,7454940678,B,A,83,96,House,Semi-Detached,2018-09-25,E07000110,E14000700,Kent,2018-09-25,new dwelling,87,99,89,-13.0,1.1,16,-0.1,50.0,50.0,199.0,199.0,67.0,39.0,67.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.18 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"46 Forstal Cottages, Forstal Road",Maidstone,Faversham and Mid Kent,AYLESFORD,NO DATA!,2018-09-25 13:22:49,owner-occupied,18.0,18.0,10093306769.0,Address Matched +201143142832008120517254721068493,Field Cottage,Brick Kiln Lane,Ulcombe,ME17 1HB,4351435568,E,E,43,45,House,Detached,2008-12-05,E07000110,E14000700,Kent,2008-12-05,marketed sale,39,41,324,310.0,8.6,67,8.2,59.0,59.0,1121.0,1076.0,121.0,115.0,142.4,Single,N,NO DATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,6.0,6.0,100.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,Portable electric heaters,,,"Pitched, 150mm loft insulation",Good,Good,"Boiler and radiators, oil",Average,Average,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,oil - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,0.0,Y,natural,"Field Cottage, Brick Kiln Lane, Ulcombe",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2008-12-05 17:25:47,owner-occupied,,,200003700026.0,Address Matched +609786729602011032720033682592068,"16, The Thatchers",,,ME16 0XA,2619025868,C,B,73,81,House,Mid-Terrace,2011-03-26,E07000110,E14000804,Kent,2011-03-27,marketed sale,69,79,273,186.0,2.1,46,1.4,39.0,25.0,313.0,250.0,144.0,101.0,46.5,Single,Y,NO DATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,43.0,0.0,From main system,Average,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Average,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 43% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.29,0.0,N,natural,"16, The Thatchers",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1991-1995,2011-03-27 20:03:36,owner-occupied,,,200003706240.0,Address Matched +1717313654132019043011221118278008,"15a, Mount Lane",Bearsted,,ME14 4DD,5898024678,C,C,74,77,House,Detached,2019-04-24,E07000110,E14000700,Kent,2019-04-30,marketed sale,75,79,128,107.0,2.8,23,2.3,165.0,83.0,484.0,496.0,118.0,74.0,123.0,Unknown,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,3.0,3.0,0.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"15a, Mount Lane, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2003-2006,2019-04-30 11:22:11,owner-occupied,,,10022901595.0,Address Matched +597054609962014111410021344598184,"32, Camden Street",,,ME14 1UU,8459024868,D,B,66,82,House,Mid-Terrace,2014-11-11,E07000110,E14000804,Kent,2014-11-14,assessment for green deal,65,82,207,91.0,2.8,40,1.3,62.0,44.0,557.0,497.0,79.0,53.0,69.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,2.0,3.0,3.0,60.0,0.0,From main system,Good,Good,"To unheated space, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 60% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"32, Camden Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2014-11-14 10:02:13,rental (social),10.0,6.0,200003699127.0,Address Matched +1772126899962019121201012048598071,"7, Drawbridge Close",,,ME15 7PD,7408918678,C,B,73,89,House,Mid-Terrace,2019-12-11,E07000110,E14000700,Kent,2019-12-12,rental (social),72,89,179,60.0,2.4,31,0.9,91.0,63.0,368.0,329.0,122.0,77.0,77.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,56.0,0.0,From main system,Good,Good,"Suspended, limited insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 56% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"7, Drawbridge Close",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1996-2002,2019-12-12 01:01:20,rental (social),,,10014306190.0,Address Matched +472438965352010042210371790200479,"33, Westminster Square",,,ME16 0WQ,4928505768,C,C,75,79,House,End-Terrace,2010-04-22,E07000110,E14000804,Kent,2010-04-22,marketed sale,74,78,185,159.0,2.3,30,2.0,76.0,42.0,334.0,319.0,129.0,112.0,76.81,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,20.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 20% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.36,0.0,N,natural,"33, Westminster Square",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2010-04-22 10:37:17,owner-occupied,,,10022895611.0,Address Matched +493358052502020062919231273602118,The Lodge Nettlestead Place,Maidstone Road,Nettlestead,ME18 5HA,506356768,E,B,47,83,Bungalow,Detached,2020-06-29,E07000110,E14000804,Kent,2020-06-29,rental (private),43,83,373,103.0,6.7,61,1.8,79.0,79.0,1230.0,563.0,189.0,75.0,109.0,Single,Y,NODATA!,,,2104.0,75.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,100.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Partial double glazing,Average,Average,"Solid brick, as built, no insulation (assumed)",Poor,Poor,"Room heaters, wood logs",,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"The Lodge Nettlestead Place, Maidstone Road, Nettlestead",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2020-06-29 19:23:12,rental (private),,,200003657925.0,Address Matched +d6b63ba5bd504c51941e4f8be7d0c89c38afd135324caa3970ba6b9d0d62ddab,"Flat 17 Adeline Heights, Rosalind Drive",,,ME14 2FP,10001692237,B,B,87,87,Flat,Mid-Terrace,2021-07-06,E07000110,E14000804,Kent,2021-07-06,new dwelling,91,91,56,56.0,0.8,10,0.8,69.0,69.0,145.0,145.0,74.0,74.0,85.0,standard tariff,,2,N,,,100.0,,,,,,100.0,0.0,From main system,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.35 W/m-¦K,Good,Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.5,,,,"Flat 17 Adeline Heights, Rosalind Drive",Maidstone,Maidstone and The Weald,Maidstone,2018,2021-07-06 09:07:00,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,10.0,,10094441280.0,Address Matched +776521659702012041720445695729038,34 Crundale,Union Street,,ME14 1TX,1773457968,C,C,72,80,Flat,Semi-Detached,2012-04-17,E07000110,E14000804,Kent,2012-04-17,marketed sale,74,83,149,97.0,2.3,28,1.5,93.0,47.0,363.0,263.0,103.0,93.0,83.0,Single,Y,6th,N,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,0.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,unheated corridor,7.73,,0.0,,natural,"34 Crundale, Union Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2012-04-17 20:44:56,owner-occupied,10.0,0.0,200003701451.0,Address Matched +1803204352962020061413035080728470,"7, Allnutt Mill Close",Tovil,,ME15 6QU,7848540778,D,B,67,88,House,Mid-Terrace,2020-06-12,E07000110,E14000804,Kent,2020-06-14,rental (social),63,87,241,69.0,3.1,43,0.9,67.0,67.0,470.0,353.0,163.0,69.0,72.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,88.0,0.0,From main system,Average,Average,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 88% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"7, Allnutt Mill Close, Tovil",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1991-1995,2020-06-14 13:03:50,rental (social),,,200003666213.0,Address Matched +832226481232012090609372007078305,"118, Union Street",,,ME14 1EE,8547341078,D,A,63,92,House,Mid-Terrace,2012-09-06,E07000110,E14000804,Kent,2012-09-06,marketed sale,65,96,264,8.0,2.2,50,0.1,53.0,26.0,391.0,257.0,75.0,44.0,43.0,Single,Y,NODATA!,,,2107.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"118, Union Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2012-09-06 09:37:20,owner-occupied,6.0,0.0,200003697502.0,Address Matched +540937579112010091520015998900976,Flat 147 Scotney Gardens,St. Peters Street,,ME16 0GT,9698989768,D,D,63,66,Flat,Mid-Terrace,2010-09-15,E07000110,E14000804,Kent,2010-09-15,marketed sale,64,64,252,246.0,4.3,38,4.2,142.0,75.0,370.0,386.0,316.0,316.0,113.16,dual,N,3rd,Y,5.0,2401.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,10.0,0.0,"Electric immersion, off-peak",Very Poor,Poor,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,Electric storage heaters,Average,Poor,Manual charge control,Poor,Poor,Low energy lighting in 10% of fixed outlets,Poor,Poor,electricity - this is for backwards compatibility only and should not be used,0.0,unheated corridor,5.02,3.53,0.0,N,natural,"Flat 147 Scotney Gardens, St. Peters Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2010-09-15 20:01:59,owner-occupied,,,10022893514.0,Address Matched +583455759512011012712140990290781,"277, Upper Fant Road",,,ME16 8DD,7194903868,C,C,71,72,House,End-Terrace,2011-01-27,E07000110,E14000804,Kent,2011-01-27,rental (social),67,68,230,227.0,3.0,38,2.9,60.0,48.0,464.0,466.0,134.0,134.0,77.5,dual,Y,NO DATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,4.0,4.0,75.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.43,0.0,N,natural,"277, Upper Fant Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2011-01-27 12:14:09,rental (social),,,200003656229.0,Address Matched +920444549222014082612543677968884,42 Horwood Way,Harrietsham,,ME17 1FH,8774467078,B,B,89,90,House,Semi-Detached,2014-08-26,E07000110,E14000700,Kent,2014-08-26,new dwelling,91,93,50,38.0,0.7,9,0.6,56.0,56.0,240.0,240.0,80.0,47.0,83.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.17 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"42 Horwood Way, Harrietsham",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2014-08-26 12:54:36,owner-occupied,12.0,12.0,10014314929.0,Address Matched +1630487599042018051017152052789608,Brick Kiln Cottage,Green Lane,Chart Sutton,ME17 3ES,2048497578,D,A,57,98,Bungalow,Detached,2018-05-10,E07000110,E14000700,Kent,2018-05-10,rental (private),49,89,208,-18.0,5.5,54,1.0,84.0,84.0,528.0,394.0,136.0,67.0,101.0,Unknown,N,NODATA!,,,2107.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,81.0,0.0,From main system,Average,Average,"Suspended, limited insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Timber frame, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated at rafters",Good,Good,"Boiler and radiators, oil",Average,Average,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 81% of fixed outlets,Very Good,Very Good,oil (not community),0.0,NO DATA!,,,,N,natural,"Brick Kiln Cottage, Green Lane, Chart Sutton",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1996-2002,2018-05-10 17:15:20,rental (private),,,, +1330162329962015061615471986368585,"3, School Lane",,,ME15 8DU,8865266378,F,C,32,69,House,Semi-Detached,2015-06-16,E07000110,E14000700,Kent,2015-06-16,marketed sale,27,61,515,210.0,8.4,95,3.5,72.0,55.0,1569.0,868.0,118.0,78.0,88.0,Single,Y,NODATA!,,,2106.0,15.0,double glazing installed during or after 2002,Normal,1.0,5.0,5.0,70.0,2.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Some double glazing,Poor,Poor,"Sandstone or limestone, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 70% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"3, School Lane",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2015-06-16 15:47:19,owner-occupied,,,200003685704.0,Address Matched +1031739771412015080307515696750114,"58, Grecian Street",,,ME14 2TS,1487165178,E,C,43,78,House,Mid-Terrace,2015-07-30,E07000110,E14000804,Kent,2015-08-03,marketed sale,35,73,426,142.0,7.1,75,2.4,69.0,69.0,1060.0,655.0,398.0,76.0,94.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,83.0,0.0,"From main system, no cylinder thermostat",Poor,Poor,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 83% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"58, Grecian Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2015-08-03 07:51:56,owner-occupied,,,200003703256.0,Address Matched +597143829802011022416320382492348,"23, Leonard Gould Way",Loose,,ME15 9FX,9838124868,B,B,86,86,House,Semi-Detached,2011-02-24,E07000110,E14000700,Kent,2011-02-24,new dwelling,86,86,99,97.0,1.3,16,1.2,54.0,44.0,232.0,233.0,98.0,98.0,78.82,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,,From main system,Very Good,Very Good,Average thermal transmittance 0.12 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.18 W/m?K,Very Good,Very Good,"Room heaters, electric",,,Average thermal transmittance 0.10 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Very Good,Very Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in 78% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,,,NO DATA!,"23, Leonard Gould Way, Loose",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2011-02-24 16:32:03,,,,10014311140.0,Address Matched +618625538752011041513231798990686,Cartref,Weavering Street,Weavering,ME14 5JQ,6685885868,C,B,80,82,House,Detached,2011-04-15,E07000110,E14000700,Kent,2011-04-15,new dwelling,79,80,119,113.0,3.4,20,3.3,155.0,94.0,460.0,470.0,158.0,158.0,173.88,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,,From main system,Very Good,Very Good,Average thermal transmittance 0.20 W/m?K,Very Good,Very Good,Fully double glazed,Good,Good,Average thermal transmittance 0.25 W/m?K,Very Good,Very Good,"Room heaters, dual fuel (mineral and wood)",,,Average thermal transmittance 0.13 W/m?K,Very Good,Very Good,"Boiler and underfloor heating, mains gas",Very Good,Very Good,Time and temperature zone control,Good,Good,Low energy lighting in 36% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,,,NO DATA!,"Cartref, Weavering Street, Weavering",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2011-04-15 13:23:17,,,,10014311931.0,Address Matched +d6d74f8cc96d25c79db0a33fe6e6394b443b33e046d47bddd8085110b899187b,47 GILBERT WAY,,,ME17 3TT,10001495780,B,A,84,94,House,Detached,2021-07-20,E07000110,E14000700,Kent,2021-07-20,new dwelling,86,96,86,16.0,1.5,15,0.3,83.0,83.0,250.0,250.0,73.0,45.0,100.0,standard tariff,,,N,,,100.0,,,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.32,,,,47 GILBERT WAY,Maidstone,Faversham and Mid Kent,MAIDSTONE,2017,2021-07-20 09:04:45,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,7.0,,10094441870.0,Address Matched +678673919102011091621310390099768,Flat 6 Linden House,Bell Road,,ME15 9GU,3183910968,B,B,83,83,Flat,Semi-Detached,2011-09-16,E07000110,E14000700,Kent,2011-09-16,rental (social),87,87,88,88.0,1.1,17,1.1,41.0,41.0,192.0,192.0,83.0,83.0,65.52,Unknown,Y,2nd,N,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Good,Good,"Timber frame, as built, insulated (assumed)",Very Good,Very Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,7.8,2.3,0.0,,natural,"Flat 6 Linden House, Bell Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2007 onwards,2011-09-16 21:31:03,rental (social),8.0,8.0,10022896385.0,Address Matched +667086055052011081716151293990181,"36, Madginford Road",Bearsted,,ME15 8LB,1164539868,E,D,52,62,Bungalow,Semi-Detached,2011-08-17,E07000110,E14000700,Kent,2011-08-17,marketed sale,49,61,364,271.0,3.9,70,2.9,39.0,39.0,587.0,490.0,179.0,103.0,56.2,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,78.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 78% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,2.397,0.0,,natural,"36, Madginford Road, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2011-08-17 16:15:12,owner-occupied,9.0,7.0,200003685814.0,Address Matched +1704292129942019031216024563319528,"58a, Chapelfield Way",Allington,,ME16 9FS,4972823678,B,B,84,84,Flat,Semi-Detached,2019-03-12,E07000110,E14000804,Kent,2019-03-12,new dwelling,88,88,72,72.0,1.0,13,1.0,66.0,66.0,178.0,178.0,91.0,91.0,81.0,standard tariff,,ground floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.19 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.19 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"58a, Chapelfield Way, Allington",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2019-03-12 16:02:45,unknown,21.0,21.0,10093306646.0,Address Matched +797331246232012060514063635068900,Flat 2 Leyland Gate,Strachan Close,,ME15 6ZT,4005998968,B,B,87,87,Flat,NO DATA!,2012-06-05,E07000110,E14000804,Kent,2012-06-05,new dwelling,91,91,58,58.0,0.8,11,0.8,39.0,39.0,188.0,188.0,84.0,84.0,69.0,standard tariff,,ground floor,,,,,NO DATA!,NO DATA!,,,,8.0,,From main system,Good,Good,Average thermal transmittance 0.18 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.19 W/m?K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,,,NO DATA!,"Flat 2 Leyland Gate, Strachan Close",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2012-06-05 14:06:36,,8.0,8.0,10014313086.0,Address Matched +250581732812020062912491127200757,"124, Upper Fant Road",,,ME16 8BU,7737279568,D,B,64,85,House,Mid-Terrace,2020-06-29,E07000110,E14000804,Kent,2020-06-29,rental (private),55,83,229,75.0,5.4,40,1.8,89.0,89.0,909.0,489.0,138.0,85.0,134.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,7.0,7.0,100.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Roof room(s), no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"124, Upper Fant Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2020-06-29 12:49:11,rental (private),,,200003657757.0,Address Matched +1726775501552019060616462199010360,"5, Chestnut Road",Allington,,ME16 9FR,3068194678,B,A,86,94,House,End-Terrace,2019-06-06,E07000110,E14000804,Kent,2019-06-06,new dwelling,86,94,71,20.0,1.8,12,0.6,91.0,91.0,273.0,274.0,96.0,53.0,145.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,"From main system, waste water heat recovery",Very Good,Very Good,Average thermal transmittance 0.19 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"5, Chestnut Road, Allington",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2019-06-06 16:46:21,unknown,45.0,45.0,10093306544.0,Address Matched +1228870849442014102906354221942788,"148, Merton Road",Bearsted,,ME15 8LS,7424649278,D,B,66,91,House,Mid-Terrace,2014-10-28,E07000110,E14000700,Kent,2014-10-29,marketed sale,66,93,218,25.0,2.5,42,0.3,50.0,39.0,487.0,321.0,99.0,60.0,59.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,71.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 71% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"148, Merton Road, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2014-10-29 06:35:42,owner-occupied,7.0,5.0,200003686120.0,Address Matched +240837490342009031615544051819308,"80, Worcester Road",,,ME15 7LX,9305598568,D,D,63,64,House,Semi-Detached,2009-03-10,E07000110,E14000700,Kent,2009-03-16,rental (social),57,57,296,291.0,4.1,49,4.1,62.0,40.0,551.0,555.0,119.0,119.0,83.54,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,44.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 44% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.47,0.0,N,natural,"80, Worcester Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2009-03-16 15:54:40,rental (social),,,200003683926.0,Address Matched +199585866212019062714500093210751,"157, Kingfisher Meadow",,,ME16 8RD,7115635568,C,C,70,79,Flat,Mid-Terrace,2019-06-27,E07000110,E14000804,Kent,2019-06-27,rental (private),67,67,231,231.0,2.4,39,2.4,73.0,57.0,356.0,238.0,193.0,167.0,61.0,Unknown,N,4th,Y,,2605.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,57.0,0.0,"Electric immersion, off-peak",Poor,Poor,(another dwelling below),NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Flat, insulated (assumed)",Good,Good,"Room heaters, electric",Very Poor,Poor,Programmer and room thermostat,Good,Good,Low energy lighting in 57% of fixed outlets,Good,Good,electricity (not community),0.0,unheated corridor,7.71,,,N,natural,"157, Kingfisher Meadow",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2019-06-27 14:50:00,rental (private),,,10022892368.0,Address Matched +1680964391132019091714202448978606,Flat 1,"2, Saturn Road",Coxheath,ME17 4FW,9668651678,B,B,83,83,Flat,Semi-Detached,2019-09-17,E07000110,E14000804,Kent,2019-09-17,new dwelling,93,93,49,49.0,0.4,9,0.4,40.0,40.0,171.0,171.0,58.0,58.0,48.0,standard tariff,,ground floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Flat 1, 2, Saturn Road, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2019-09-17 14:20:24,unknown,15.0,15.0,10094440256.0,Address Matched +1240809239102014112516312334042558,"153, Heath Road",,,ME16 9HJ,3141530378,D,C,68,80,House,Detached,2014-11-25,E07000110,E14000804,Kent,2014-11-25,marketed sale,69,80,163,100.0,4.3,29,2.6,146.0,84.0,761.0,696.0,236.0,190.0,151.0,dual,Y,NODATA!,,,2107.0,100.0,"double glazing, unknown install date",Normal,3.0,7.0,7.0,25.0,0.0,"From main system, no cylinder thermostat",Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, wood logs",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 25% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"153, Heath Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2014-11-25 16:31:23,owner-occupied,20.0,5.0,200003723514.0,Address Matched +1287389949262015022720114803438025,Rose Ridge House,The Street,Ulcombe,ME17 1DR,2097463378,E,C,47,72,House,Detached,2015-02-27,E07000110,E14000700,Kent,2015-02-27,marketed sale,40,64,213,108.0,12.0,55,6.4,183.0,108.0,1850.0,1261.0,301.0,105.0,212.0,dual,N,NODATA!,,,2107.0,100.0,double glazing installed before 2002,Normal,1.0,9.0,9.0,31.0,0.0,From main system,Poor,Poor,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, dual fuel (mineral and wood)",,,"Roof room(s), insulated",Good,Good,"Boiler and radiators, oil",Poor,Average,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 31% of fixed outlets,Average,Average,oil (not community),0.0,NO DATA!,,,,N,natural,"Rose Ridge House, The Street, Ulcombe",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1991-1995,2015-02-27 20:11:48,owner-occupied,,,200003701218.0,Address Matched +1658066599242018082322582155982078,Flat 2 Hedley Court,"27, Hedley Street",,ME14 5GE,2289299578,C,C,76,80,Flat,Detached,2018-08-23,E07000110,E14000804,Kent,2018-08-23,rental (private),77,82,158,123.0,1.7,28,1.3,46.0,46.0,299.0,228.0,85.0,85.0,61.0,Unknown,Y,1st,N,,2106.0,100.0,double glazing installed during or after 2002,Normal,2.0,3.0,3.0,100.0,0.0,From main system,Good,Good,(another dwelling below),NO DATA!,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,5.49,,,N,natural,"Flat 2 Hedley Court, 27, Hedley Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2018-08-23 22:58:21,rental (private),,,10022896374.0,Address Matched +358563040252009090822002701010469,"1, Whitmore Street",,,ME16 8JX,4972017668,D,D,63,66,House,Mid-Terrace,2009-09-08,E07000110,E14000804,Kent,2009-09-08,marketed sale,66,68,330,306.0,2.5,47,2.3,31.0,24.0,409.0,385.0,62.0,62.0,69.07,Single,Y,NO DATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,1.0,4.0,4.0,70.0,1.0,From main system,Very Good,Very Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Sandstone, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Very Good,Very Good,Programmer and room thermostat,Poor,Poor,Low energy lighting in 70% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.57,0.0,N,natural,"1, Whitmore Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2009-09-08 22:00:27,owner-occupied,,,200003655334.0,Address Matched +639378230612011060816045994090484,1 Rankins Farm Cottage,Linton Hill,Linton,ME17 4AU,4408047868,G,G,5,13,House,Semi-Detached,2011-06-08,E07000110,E14000804,Kent,2011-06-08,marketed sale,19,25,768,653.0,9.0,136,7.7,54.0,54.0,1811.0,1497.0,243.0,241.0,66.36,Single,N,NODATA!,,,2401.0,0.0,not defined,Normal,1.0,5.0,5.0,50.0,0.0,"Electric immersion, standard tariff",Very Poor,Very Poor,"Solid, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, electric",,,"Pitched, 250 mm loft insulation",Good,Good,Electric storage heaters,Very Poor,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 50% of fixed outlets,Good,Good,electricity (not community),0.0,NO DATA!,,2.44,0.0,,natural,"1 Rankins Farm Cottage, Linton Hill, Linton",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2011-06-08 16:04:59,owner-occupied,10.0,5.0,200003662976.0,Address Matched +1463891319962016071915553276818446,"4, Shoebridge Drive",,,ME17 3FF,4709116478,B,A,83,115,House,Semi-Detached,2016-07-19,E07000110,E14000700,Kent,2016-07-19,new dwelling,85,115,97,-112.0,1.5,17,-1.6,57.0,57.0,255.0,257.0,104.0,56.0,87.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"4, Shoebridge Drive",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2016-07-19 15:55:32,unknown,1.0,1.0,10091194058.0,Address Matched +1024848955912017021919491390930819,Flat D,"44, Bower Lane",,ME16 8EJ,8918505178,E,C,53,69,Flat,Semi-Detached,2017-02-18,E07000110,E14000804,Kent,2017-02-19,rental (social),49,49,392,390.0,3.5,66,3.5,42.0,45.0,668.0,420.0,171.0,119.0,53.0,dual,N,1st,Y,,2603.0,100.0,"double glazing, unknown install date",Normal,2.0,2.0,2.0,100.0,0.0,"Electric immersion, off-peak",Poor,Poor,(another dwelling below),NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Average,Average,"Room heaters, electric",Very Poor,Poor,Programmer and appliance thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,unheated corridor,3.08,,,N,natural,"Flat D, 44, Bower Lane",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2017-02-19 19:49:13,rental (social),,,10014315386.0,Address Matched +1730715467012019062013164991210767,"22, Chiltern Close",Downswood,,ME15 8XG,7747715678,E,C,48,75,Flat,Semi-Detached,2019-06-20,E07000110,E14000700,Kent,2019-06-20,marketed sale,54,57,530,493.0,2.4,90,2.2,24.0,27.0,528.0,242.0,234.0,127.0,27.0,Unknown,N,2nd,Y,,2603.0,0.0,not defined,Normal,0.0,1.0,1.0,100.0,0.0,"Electric immersion, standard tariff",Very Poor,Poor,(another dwelling below),NO DATA!,,Single glazed,Very Poor,Very Poor,"Timber frame, as built, insulated (assumed)",Good,Good,,,,"Pitched, limited insulation (assumed)",Poor,Poor,"Room heaters, electric",Very Poor,Poor,Programmer and appliance thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,unheated corridor,1.98,,,N,natural,"22, Chiltern Close, Downswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1976-1982,2019-06-20 13:16:49,owner-occupied,,,200003687122.0,Address Matched +1778365562802020012016424064802808,"8, Saxons Drive",,,ME14 5HS,5847568678,D,B,68,84,House,Semi-Detached,2020-01-20,E07000110,E14000804,Kent,2020-01-20,marketed sale,63,81,200,93.0,4.4,35,2.1,128.0,94.0,745.0,521.0,108.0,109.0,124.0,dual,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,6.0,6.0,64.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Average,Average,,,,"Flat, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 64% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"8, Saxons Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2020-01-20 16:42:40,owner-occupied,,,200003707888.0,Address Matched +1799392555032020052513073541278803,"67, Postley Road",,,ME15 6TP,5301810778,C,A,73,92,House,Mid-Terrace,2020-05-23,E07000110,E14000804,Kent,2020-05-25,rental (private),73,93,197,32.0,1.9,35,0.4,50.0,50.0,294.0,265.0,140.0,64.0,55.0,Single,Y,NODATA!,,,2107.0,100.0,"double glazing, unknown install date",Normal,1.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Solid, limited insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"67, Postley Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2020-05-25 13:07:35,rental (private),,,200003686798.0,Address Matched +796883152022020061207295738118070,"35, Aspian Drive",Coxheath,,ME17 4JZ,7366598968,C,B,71,82,House,Detached,2020-06-09,E07000110,E14000804,Kent,2020-06-12,marketed sale,66,77,182,115.0,4.3,32,2.8,90.0,90.0,722.0,668.0,129.0,85.0,135.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,2.0,6.0,6.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"35, Aspian Drive, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2020-06-12 07:29:57,owner-occupied,,,200003714279.0,Address Matched +523438069842010080520545671800558,"20, Wrangleden Road",,,ME15 9LS,7881668768,C,C,71,75,Flat,Semi-Detached,2010-08-05,E07000110,E14000700,Kent,2010-08-05,rental (social),67,72,308,259.0,2.2,51,1.8,26.0,26.0,370.0,329.0,85.0,70.0,42.0,Single,Y,Ground,N,2.0,2107.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,80.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.28,0.0,N,natural,"20, Wrangleden Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2010-08-05 20:54:56,rental (social),,,200003682517.0,Address Matched +1435897319262016042013232714708396,Moteside,Willow Way,,ME15 7RN,9108114478,D,B,55,83,House,Detached,2016-04-20,E07000110,E14000700,Kent,2016-04-20,marketed sale,46,80,340,113.0,5.4,60,1.8,58.0,59.0,1038.0,557.0,110.0,74.0,90.0,Single,Y,NODATA!,,,2106.0,0.0,not defined,Normal,2.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Single glazed,Very Poor,Very Poor,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,2.4,,N,natural,"Moteside, Willow Way",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2016-04-20 13:23:27,owner-occupied,,,200003696717.0,Address Matched +1682011452922020031216242101428080,"11, The Glebe",Yalding,,ME18 6BF,8040561678,B,A,85,94,House,Detached,2020-03-12,E07000110,E14000804,Kent,2020-03-12,new dwelling,85,94,79,23.0,1.8,14,0.6,86.0,86.0,290.0,291.0,103.0,57.0,131.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.22 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"11, The Glebe, Yalding",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2020-03-12 16:24:21,unknown,15.0,15.0,10094440003.0,Address Matched +1215098359242014100322164625840878,"6, Honywood Road",Lenham,,ME17 2HQ,5299358278,C,B,72,87,House,Semi-Detached,2014-10-03,E07000110,E14000700,Kent,2014-10-03,rental (social),72,88,159,56.0,2.5,30,0.9,66.0,51.0,423.0,393.0,151.0,83.0,81.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,70.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 70% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"6, Honywood Road, Lenham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2014-10-03 22:16:46,rental (social),10.0,7.0,200003723768.0,Address Matched +1067013519302019092709132417812448,"37, Belmont Close",,,ME16 9DY,2372118178,D,B,68,88,House,Semi-Detached,2019-09-24,E07000110,E14000804,Kent,2019-09-27,rental (social),64,87,217,65.0,3.1,38,1.0,62.0,62.0,461.0,357.0,170.0,70.0,81.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"37, Belmont Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2019-09-27 09:13:24,rental (social),,,200003664880.0,Address Matched +1196722015752014082915061292240220,"405, Sutton Road",,,ME15 9BX,2026527278,D,C,61,79,House,Detached,2014-08-29,E07000110,E14000700,Kent,2014-08-29,marketed sale,56,76,207,106.0,5.9,40,3.1,127.0,75.0,1059.0,819.0,178.0,83.0,149.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,1.0,7.0,7.0,31.0,0.0,From main system,Average,Average,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 31% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"405, Sutton Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2014-08-29 15:06:12,owner-occupied,16.0,5.0,200003681393.0,Address Matched +920291594612014032611235696240701,14 Horwood Way,Harrietsham,,ME17 1FH,7106467078,B,B,87,87,House,Detached,2014-03-26,E07000110,E14000700,Kent,2014-03-26,new dwelling,89,89,64,64.0,1.0,12,1.0,50.0,50.0,280.0,280.0,94.0,94.0,84.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.2 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.3 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.1 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"14 Horwood Way, Harrietsham",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2014-03-26 11:23:56,NO DATA!,12.0,12.0,10014314915.0,Address Matched +1476336081632016090209101951078803,"1, Beech Tree Road",,,ME15 8GS,8311896478,B,A,83,93,House,NO DATA!,2016-09-02,E07000110,E14000700,Kent,2016-09-02,new dwelling,84,94,92,28.0,1.8,16,0.6,67.0,67.0,310.0,312.0,109.0,58.0,113.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"1, Beech Tree Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2016-09-02 09:10:19,unknown,1.0,1.0,10091193626.0,Address Matched +258050700702009110408045961010528,"40, Wykeham Grove",Leeds,,ME17 1RP,2739700668,F,F,27,30,House,Semi-Detached,2009-11-02,E07000110,E14000700,Kent,2009-11-04,marketed sale,48,51,414,382.0,4.9,62,4.6,79.0,40.0,917.0,858.0,307.0,307.0,79.14,Single,Y,NO DATA!,,,2699.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,0.0,0.0,0.0,"Electric immersion, standard tariff",Very Poor,Poor,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 75 mm loft insulation",Average,Average,No system present: electric heaters assumed,Very Poor,Poor,,Very Poor,Very Poor,No low energy lighting,Very Poor,Very Poor,To be used only when there is no heating/hot-water system,0.0,NO DATA!,,,0.0,N,natural,"40, Wykeham Grove, Leeds",Maidstone,Faversham and Mid Kent,MAIDSTONE,,2009-11-04 08:04:59,owner-occupied,,,200003698443.0,Address Matched +558002882212010102715323191209383,"4, Forge Meadows",Headcorn,,TN27 9QW,3399211868,C,C,73,76,House,Mid-Terrace,2010-10-27,E07000110,E14000700,Kent,2010-10-27,rental (social),69,73,196,174.0,3.5,33,3.1,63.0,63.0,527.0,462.0,127.0,127.0,106.81,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,90.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 90% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.42,0.0,N,natural,"4, Forge Meadows, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,England and Wales: 1930-1949,2010-10-27 15:32:31,rental (social),,,200003722594.0,Address Matched +457023199222010032316593803928600,Little Knox Bridge Barn,Cranbrook Road,Staplehurst,TN12 0EU,16993768,D,C,63,70,House,Detached,2010-03-22,E07000110,E14000804,Kent,2010-03-23,marketed sale,60,67,230,190.0,6.3,38,5.2,192.0,96.0,872.0,767.0,152.0,135.0,131.83,dual,Y,NO DATA!,,,2107.0,100.0,double glazing installed before 2002,More Than Typical,2.0,6.0,6.0,0.0,0.0,From main system,Good,Good,"Solid, limited insulation (assumed)",,,Fully double glazed,Average,Average,"Timber frame, as built, insulated (assumed)",Good,Good,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, insulated at rafters",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,5.05,0.0,N,natural,"Little Knox Bridge Barn, Cranbrook Road, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1996-2002,2010-03-23 16:59:38,owner-occupied,,,200003721927.0,Address Matched +930632879962013051418405978248177,"59, Charlton Street",,,ME16 8LB,7713738078,D,B,57,85,House,Mid-Terrace,2013-05-14,E07000110,E14000804,Kent,2013-05-14,rental (private),55,87,263,64.0,3.8,50,1.0,44.0,44.0,700.0,404.0,103.0,59.0,76.0,Single,Y,NODATA!,,,2107.0,95.0,double glazing installed during or after 2002,Normal,1.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"To unheated space, no insulation (assumed)",,,Mostly double glazing,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, electric",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"59, Charlton Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2013-05-14 18:40:59,rental (private),8.0,8.0,200003655454.0,Address Matched +627562256152011051112241595990381,"56, Egremont Road",Bearsted,,ME15 8LX,3192656868,D,C,60,69,Bungalow,Semi-Detached,2011-05-11,E07000110,E14000700,Kent,2011-05-11,marketed sale,61,71,277,206.0,2.9,53,2.2,57.0,31.0,515.0,411.0,79.0,70.0,55.8,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,14.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 14% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,2.38,0.0,,natural,"56, Egremont Road, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2011-05-11 12:24:15,owner-occupied,7.0,1.0,200003686229.0,Address Matched +1496499019962016111406180768728936,"20, Hanson Drive",,,ME15 0AW,3678148478,C,B,74,83,House,Detached,2016-11-12,E07000110,E14000804,Kent,2016-11-14,marketed sale,70,79,155,103.0,4.2,27,2.8,135.0,84.0,705.0,716.0,129.0,81.0,152.0,Unknown,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,8.0,8.0,40.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, mains gas",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 40% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,2.2,,N,natural,"20, Hanson Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2016-11-14 06:18:07,owner-occupied,,,10022901510.0,Address Matched +905326039652013032706381695270502,"15, Odiham Drive",,,ME16 0TW,5248956078,C,B,73,90,House,Semi-Detached,2013-03-26,E07000110,E14000804,Kent,2013-03-27,marketed sale,75,93,165,26.0,1.7,32,0.3,49.0,33.0,318.0,302.0,73.0,50.0,54.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,50.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"15, Odiham Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2013-03-27 06:38:16,owner-occupied,8.0,4.0,200003662250.0,Address Matched +242623263812019121023302095919454,"9, St. Philips Avenue",,,ME15 7SJ,4403358568,D,B,68,86,House,Semi-Detached,2019-12-10,E07000110,E14000804,Kent,2019-12-10,unknown,64,85,230,85.0,3.2,40,1.2,72.0,72.0,556.0,407.0,89.0,61.0,79.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,80.0,0.0,From main system,Very Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"9, St. Philips Avenue",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2019-12-10 23:30:20,unknown,,,200003696731.0,Address Matched +192099300102008113022020950587008,"19, Woodlands",Coxheath,,ME17 4EE,4159605568,C,C,69,70,Bungalow,Semi-Detached,2008-11-30,E07000110,E14000804,Kent,2008-11-30,rental (private),68,69,238,232.0,2.7,39,2.6,53.0,30.0,358.0,363.0,89.0,89.0,75.83,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,25.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 25% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.36,0.0,N,natural,"19, Woodlands, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2008-11-30 22:02:09,rental (private),,,200003672807.0,Address Matched +677941820312011092111284591290891,"13, Sherbourne Drive",,,ME16 8UG,8117010968,C,C,70,75,House,Mid-Terrace,2011-09-21,E07000110,E14000804,Kent,2011-09-21,marketed sale,71,77,200,158.0,2.3,38,1.8,62.0,34.0,342.0,305.0,119.0,98.0,59.23,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,14.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Timber frame, as built, insulated (assumed)",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 14% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,2.34,0.0,,natural,"13, Sherbourne Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2011-09-21 11:28:45,owner-occupied,7.0,1.0,200003674931.0,Address Matched +1726847092302020011709262068409338,"1, Boyson Drive",Otham,,ME15 8YH,4393194678,B,A,84,95,House,Detached,2020-01-17,E07000110,E14000700,Kent,2020-01-17,new dwelling,86,96,86,14.0,1.5,15,0.3,73.0,73.0,255.0,255.0,78.0,47.0,96.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.10 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.19 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"1, Boyson Drive, Otham",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2020-01-17 09:26:20,unknown,10.0,10.0,10094440473.0,Address Matched +574531882032010121410361410968799,Flat 185 Scotney Gardens,St. Peters Street,,ME16 0GT,8990732868,B,B,84,85,Flat,Detached,2010-12-13,E07000110,E14000804,Kent,2010-12-14,rental (private),81,81,146,142.0,1.9,22,1.8,80.0,62.0,87.0,89.0,158.0,158.0,84.27,dual,N,3rd,N,5.0,2402.0,,not defined,Much More Than Typical,0.0,3.0,3.0,70.0,0.0,"Electric immersion, off-peak",Average,Poor,(other premises below),,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,(another dwelling above),,,Electric storage heaters,Average,Poor,Automatic charge control,Average,Average,Low energy lighting in 70% of fixed outlets,Very Good,Very Good,electricity - this is for backwards compatibility only and should not be used,0.0,heated corridor,,2.28,0.0,N,natural,"Flat 185 Scotney Gardens, St. Peters Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2010-12-14 10:36:14,rental (private),,,10022893552.0,Address Matched +d7abaa1bca1ad508eed24aa97d2d56fedb999fbbed6220fac3e0b702becf12f0,13 CAPELL CLOSE,COXHEATH,,ME17 4DX,10001360980,C,C,74,76,Flat,End-Terrace,2021-07-16,E07000110,E14000804,Kent,2021-07-17,marketed sale,74,77,182,159.0,2.0,32,1.8,68.0,68.0,354.0,310.0,76.0,76.0,63.0,Single,Y,00,N,,,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,80.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Average,Average,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,no corridor,,2.42,0.0,N,natural,"13 CAPELL CLOSE, COXHEATH",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2021-07-17 19:23:48,Owner-occupied,5.0,,10022892903.0,Energy Assessor +1580211280332017100518275042078697,"11b, Upper Road",,,ME15 7RB,8772634578,C,C,70,71,Flat,End-Terrace,2017-10-05,E07000110,E14000804,Kent,2017-10-05,rental (social),71,72,256,252.0,1.7,45,1.7,40.0,29.0,317.0,318.0,82.0,82.0,38.0,Single,Y,1st,Y,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,2.0,2.0,60.0,0.0,From main system,Good,Good,(another dwelling below),NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 60% of fixed outlets,Good,Good,mains gas (not community),0.0,no corridor,,,,N,natural,"11b, Upper Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2017-10-05 18:27:50,rental (social),,,200003686727.0,Address Matched +195704902832008120319551438068397,"49, Amsbury Road",Coxheath,,ME17 4DP,728325568,F,F,33,33,Bungalow,Semi-Detached,2008-12-03,E07000110,E14000804,Kent,2008-12-03,marketed sale,52,52,373,369.0,4.4,57,4.4,60.0,35.0,931.0,946.0,83.0,83.0,77.94,Single,Y,NO DATA!,,,2601.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,30.0,0.0,Gas multipoint,Average,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Room heaters, electric",Very Poor,Poor,No thermostatic control of room temperature,Poor,Poor,Low energy lighting in 30% of fixed outlets,Average,Average,electricity - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.41,0.0,N,natural,"49, Amsbury Road, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2008-12-03 19:55:14,owner-occupied,,,200003669893.0,Address Matched +1824634402502020091016275475209908,"16, Barty Way",Thurnham,,ME14 4GB,536302778,B,A,84,94,House,Semi-Detached,2020-09-10,E07000110,E14000700,Kent,2020-09-10,new dwelling,86,95,84,16.0,1.5,15,0.3,80.0,80.0,265.0,265.0,72.0,43.0,101.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,"From main system, flue gas heat recovery",Very Good,Very Good,Average thermal transmittance 0.18 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"16, Barty Way, Thurnham",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2020-09-10 16:27:54,unknown,1.0,1.0,10094444536.0,Address Matched +1285413099262015022612102063948975,"64, Ashford Road",Bearsted,,ME14 4LR,7601943378,D,C,60,76,House,Semi-Detached,2015-02-24,E07000110,E14000700,Kent,2015-02-26,rental (private),48,65,254,142.0,5.3,52,3.3,114.0,60.0,795.0,703.0,145.0,85.0,102.0,Unknown,Y,NODATA!,,,2107.0,100.0,"double glazing, unknown install date",More Than Typical,3.0,6.0,6.0,12.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, coal",,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 12% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"64, Ashford Road, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2015-02-26 12:10:20,rental (private),,,200003687694.0,Address Matched +302274163612009061021131601910961,"46, King Edward Road",,,ME15 6PJ,9192313668,E,D,53,65,House,Mid-Terrace,2009-06-10,E07000110,E14000804,Kent,2009-06-10,marketed sale,51,63,349,263.0,5.2,54,3.8,81.0,45.0,716.0,576.0,159.0,120.0,95.35,Single,Y,NO DATA!,,,2106.0,11.0,double glazing installed before 2002,Normal,1.0,5.0,5.0,20.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Partial double glazing,Very Poor,Very Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 20% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.58,0.0,N,natural,"46, King Edward Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2009-06-10 21:13:16,owner-occupied,,,200003665445.0,Address Matched +842973129602012100816543102220588,4 Willis Cottages,Dunn Street,Bredhurst,ME7 3NA,6636022078,E,A,44,93,House,End-Terrace,2012-10-08,E07000110,E14000700,Kent,2012-10-08,marketed sale,40,89,397,36.0,4.4,84,0.6,62.0,31.0,757.0,308.0,130.0,77.0,52.0,Single,N,NODATA!,,,2103.0,100.0,double glazing installed before 2002,Normal,1.0,4.0,4.0,0.0,1.0,From main system,Average,Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, oil",Average,Average,Room thermostat only,Poor,Poor,No low energy lighting,Very Poor,Very Poor,oil (not community),0.0,NO DATA!,,,0.0,,natural,"4 Willis Cottages, Dunn Street, Bredhurst",Maidstone,Faversham and Mid Kent,GILLINGHAM,England and Wales: 1900-1929,2012-10-08 16:54:31,unknown,7.0,0.0,200003722105.0,Address Matched +126179139242016072816270844962588,"46, Florence Road",,,ME16 8EL,8230639468,D,B,67,86,House,Semi-Detached,2016-07-28,E07000110,E14000804,Kent,2016-07-28,marketed sale,60,83,201,74.0,5.3,35,2.0,80.0,80.0,956.0,550.0,142.0,89.0,150.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,6.0,6.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 270 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,2.2,,N,natural,"46, Florence Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2016-07-28 16:27:08,owner-occupied,,,200003667650.0,Address Matched +240831190102009031405421150819878,West Lea,West End,Marden,TN12 9HY,2143498568,E,D,43,66,House,Semi-Detached,2009-03-13,E07000110,E14000804,Kent,2009-03-14,marketed sale,40,62,394,235.0,7.9,66,4.7,101.0,58.0,1044.0,606.0,151.0,151.0,118.97,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,6.0,6.0,25.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 25% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.88,0.0,N,natural,"West Lea, West End, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: before 1900,2009-03-14 05:42:11,owner-occupied,,,200003710263.0,Address Matched +247857089062016121418012519638906,"19, Perryfield Street",,,ME14 2SY,100809568,D,B,60,88,House,Mid-Terrace,2016-12-07,E07000110,E14000804,Kent,2016-12-14,marketed sale,57,89,334,63.0,2.8,59,0.6,61.0,35.0,543.0,342.0,77.0,48.0,48.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,2.0,3.0,3.0,25.0,0.0,From main system,Good,Good,"To unheated space, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, no insulation",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 25% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"19, Perryfield Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2016-12-14 18:01:25,unknown,,,200003669712.0,Address Matched +316860949262012052317025454378782,Apartment 7,"55-57, Hartnup Street",,ME16 8FH,8565414668,C,C,79,79,Flat,Mid-Terrace,2012-05-23,E07000110,E14000804,Kent,2012-05-23,marketed sale,84,84,114,114.0,1.0,22,1.0,32.0,32.0,190.0,190.0,86.0,86.0,48.0,Single,Y,1st,N,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,100.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,6.02,,0.0,,natural,"Apartment 7, 55-57, Hartnup Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2012-05-23 17:02:54,owner-occupied,12.0,12.0,10014308154.0,Address Matched +501768442252010061810583091900570,1 Rose Cottages,The Green,Yalding,ME18 6DJ,5013217768,F,F,27,29,House,Semi-Detached,2010-06-17,E07000110,E14000804,Kent,2010-06-18,marketed sale,76,77,462,444.0,2.8,25,2.6,105.0,62.0,1476.0,1446.0,126.0,126.0,112.26,Single,Y,NO DATA!,,,2601.0,100.0,secondary glazing,Less Than Typical,0.0,5.0,5.0,30.0,1.0,Gas multipoint,Average,Good,"Solid, no insulation (assumed)",,,Full secondary glazing,Good,Good,"Timber frame, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Room heaters, wood logs",Poor,Very Good,No thermostatic control of room temperature,Poor,Poor,Low energy lighting in 30% of fixed outlets,Average,Average,wood logs,0.0,NO DATA!,,2.16,0.0,N,natural,"1 Rose Cottages, The Green, Yalding",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2010-06-18 10:58:30,owner-occupied,,,200003735014.0,Address Matched +518834139302010072719195772802638,6 Auckland House,Wallis Avenue,,ME15 9JU,5316338768,C,C,77,80,Flat,Detached,2010-07-27,E07000110,E14000700,Kent,2010-07-27,rental (social),75,78,199,175.0,1.9,33,1.7,54.0,31.0,314.0,292.0,84.0,84.0,58.02,Single,Y,2nd,Y,3.0,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,25.0,0.0,From main system,Very Good,Very Good,(other premises below),,,Fully double glazed,Average,Average,"System built, with internal insulation",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 25% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,unheated corridor,5.25,2.44,0.0,N,natural,"6 Auckland House, Wallis Avenue",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2010-07-27 19:19:57,rental (social),,,200003683149.0,Address Matched +1406893289222016012719574012638736,"2, The Pavings",Hollingbourne,,ME17 1TU,3179802478,D,C,60,78,House,Detached,2016-01-27,E07000110,E14000700,Kent,2016-01-27,marketed sale,50,72,248,132.0,9.6,44,5.1,153.0,98.0,1725.0,1126.0,192.0,136.0,219.0,Single,Y,NODATA!,,,2107.0,100.0,double glazing installed before 2002,Normal,0.0,9.0,9.0,44.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 44% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"2, The Pavings, Hollingbourne",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2016-01-27 19:57:40,owner-occupied,,,200003732228.0,Address Matched +1081846313452014013118274991740714,Rivendale,Brishing Lane,Boughton Monchelsea,ME17 4JH,7492319178,D,C,58,69,House,Detached,2014-01-31,E07000110,E14000700,Kent,2014-01-31,marketed sale,50,61,221,163.0,8.4,43,6.3,115.0,85.0,1539.0,1403.0,150.0,150.0,197.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,6.0,6.0,65.0,2.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 65% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"Rivendale, Brishing Lane, Boughton Monchelsea",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2014-01-31 18:27:49,owner-occupied,23.0,15.0,200003709699.0,Address Matched +854283754452012110809064990029108,"47, Jeffery Close",Staplehurst,,TN12 0TH,1871403078,D,B,67,86,House,Semi-Detached,2012-11-07,E07000110,E14000804,Kent,2012-11-08,marketed sale,65,87,202,61.0,2.9,39,0.9,47.0,47.0,456.0,353.0,137.0,74.0,75.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,90.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 90% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"47, Jeffery Close, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1976-1982,2012-11-08 09:06:49,owner-occupied,10.0,9.0,200003678822.0,Address Matched +d7de73a5216c9924ab06c9973cf6d57aa68aaa46289ba262505608296237949d,90 Clifford Way,,,ME16 8GE,10001679170,B,B,84,84,Flat,Enclosed Mid-Terrace,2021-09-22,E07000110,E14000804,Kent,2021-09-23,rental,88,88,82,82.0,1.0,14,1.0,66.0,66.0,157.0,157.0,98.0,98.0,70.0,Unknown,Y,02,N,,,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,100.0,0.0,From main system,Good,Good,(another dwelling below),,,Fully double glazed,Good,Good,"System built, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,heated corridor,,2.4,0.0,N,natural,90 Clifford Way,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007-2011,2021-09-23 06:53:22,Owner-occupied,22.0,,10022896103.0,Energy Assessor +767272729262012032817164536488572,"16, Cambridge Crescent",,,ME15 7NG,7320286968,E,D,52,67,House,Semi-Detached,2012-03-28,E07000110,E14000700,Kent,2012-03-28,rental (private),47,66,336,209.0,4.9,65,3.0,47.0,47.0,809.0,499.0,107.0,101.0,89.99,Single,Y,NODATA!,,,2102.0,100.0,"double glazing, unknown install date",Normal,1.0,3.0,3.0,89.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,Low energy lighting in 89% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,2.425,0.0,,natural,"16, Cambridge Crescent",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2012-03-28 17:16:45,rental (private),9.0,8.0,200003712447.0,Address Matched +1614386499962018031210504046698538,Flat 1,"36, Melville Road",,ME15 7UR,3442976578,C,C,79,79,Flat,NO DATA!,2018-03-11,E07000110,E14000804,Kent,2018-03-12,new dwelling,84,84,148,148.0,0.9,26,0.9,27.0,27.0,213.0,213.0,60.0,60.0,36.0,standard tariff,,ground floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.22 W/m+é-¦K,Good,Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.29 W/m+é-¦K,Good,Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Flat 1, 36, Melville Road",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2018-03-12 10:50:40,unknown,6.0,6.0,10093303796.0,Address Matched +835710499922012091419334171648382,Foxbury,Giddy Horn Lane,,ME16 0EE,8774961078,F,D,24,58,Bungalow,Detached,2012-09-14,E07000110,E14000804,Kent,2012-09-14,marketed sale,22,49,474,235.0,13.0,92,6.5,122.0,71.0,1960.0,1215.0,326.0,165.0,142.0,dual,Y,NODATA!,,,2106.0,20.0,double glazing installed before 2002,Normal,1.0,7.0,7.0,25.0,2.0,"From main system, no cylinder thermostat",Poor,Poor,"Solid, no insulation (assumed)",,,Some double glazing,Very Poor,Very Poor,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, insulated at rafters",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 25% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"Foxbury, Giddy Horn Lane",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2012-09-14 19:33:41,owner-occupied,16.0,4.0,200003659571.0,Address Matched +1087040589962014021211134289728344,"2, Harvesters Way",Weavering,,ME14 5SJ,4819849178,D,C,66,80,House,Detached,2014-02-12,E07000110,E14000700,Kent,2014-02-12,marketed sale,66,81,175,90.0,3.6,33,1.9,67.0,67.0,728.0,617.0,123.0,83.0,109.0,dual,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,6.0,6.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"2, Harvesters Way, Weavering",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2014-02-12 11:13:42,owner-occupied,10.0,10.0,200003716306.0,Address Matched +1020345360412013100718573398079413,"253, Plains Avenue",,,ME15 7BD,4303084178,D,C,66,80,House,Semi-Detached,2013-10-07,E07000110,E14000700,Kent,2013-10-07,marketed sale,63,79,195,99.0,3.6,38,1.9,69.0,54.0,618.0,537.0,127.0,85.0,97.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,1.0,6.0,6.0,73.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 73% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"253, Plains Avenue",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2013-10-07 18:57:33,owner-occupied,11.0,8.0,200003714425.0,Address Matched +584622029442011012522461288392258,"10, South Street",Barming,,ME16 9EY,6439023868,D,C,65,74,House,Semi-Detached,2011-01-25,E07000110,E14000804,Kent,2011-01-25,rental (social),60,70,299,223.0,3.3,50,2.5,60.0,36.0,491.0,412.0,161.0,114.0,67.05,Single,Y,NO DATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,33.0,0.0,From main system,Average,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Average,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 33% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.41,0.0,N,natural,"10, South Street, Barming",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2011-01-25 22:46:12,rental (social),,,200003665564.0,Address Matched +1213306507452014100313212493740628,"4, Fairhurst Drive",East Farleigh,,ME15 0DF,6867738278,D,C,56,80,House,Detached,2014-09-30,E07000110,E14000804,Kent,2014-10-03,none of the above,50,78,251,99.0,5.6,49,2.2,68.0,68.0,1068.0,647.0,137.0,84.0,115.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,6.0,6.0,100.0,0.0,From main system,Good,Good,"Solid, limited insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"4, Fairhurst Drive, East Farleigh",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2014-10-03 13:21:24,owner-occupied,12.0,12.0,200003671233.0,Address Matched +1658561799402018082409233851982128,"11, Marigold Way",,,ME16 0ZJ,7405499578,C,B,75,88,House,End-Terrace,2018-08-22,E07000110,E14000804,Kent,2018-08-24,marketed sale,74,88,155,58.0,2.2,27,0.9,74.0,74.0,363.0,335.0,91.0,61.0,80.0,Unknown,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,80.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"11, Marigold Way",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2018-08-24 09:23:38,owner-occupied,,,10022901859.0,Address Matched +d80695107075cb40f5db6d6f6aac0d2ddb4a94d5bdde658bd1b00a3b70cd81ec,8 Stanley Close,Staplehurst,,TN12 0TA,10001550957,C,B,70,87,House,Mid-Terrace,2021-08-17,E07000110,E14000804,Kent,2021-08-17,marketed sale,70,88,197,63.0,2.4,35,0.8,79.0,59.0,424.0,367.0,120.0,73.0,70.0,Single,Y,,,,,100.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,67.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 67% of fixed outlets,Good,Good,mains gas (not community),0.0,,,2.29,0.0,N,natural,"8 Stanley Close, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1967-1975,2021-08-17 19:19:22,Owner-occupied,12.0,,200003709416.0,Energy Assessor +1396583192532015121518462167978499,"1, Rocky Hill Terrace",Terrace Road,,ME16 8HT,9967431478,C,C,71,77,Flat,Enclosed Mid-Terrace,2015-12-15,E07000110,E14000804,Kent,2015-12-15,rental (social),71,79,253,182.0,1.7,45,1.2,38.0,27.0,283.0,202.0,109.0,109.0,38.0,Single,Y,Ground,N,,2303.0,0.0,not defined,Normal,0.0,1.0,1.0,60.0,0.0,Community scheme,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Single glazed,Very Poor,Very Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,(another dwelling above),,,Community scheme,Good,Good,"Flat rate charging, room thermostat only",Poor,Poor,Low energy lighting in 60% of fixed outlets,Good,Good,mains gas (community),0.0,heated corridor,,,,N,natural,"1, Rocky Hill Terrace, Terrace Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2015-12-15 18:46:21,rental (social),,,200003668632.0,Address Matched +644654628452018052515005797280280,"5, The Quern",,,ME15 6FT,2059877868,D,B,68,84,House,End-Terrace,2018-05-24,E07000110,E14000804,Kent,2018-05-25,marketed sale,65,83,237,104.0,2.8,42,1.3,48.0,48.0,457.0,415.0,128.0,75.0,67.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,2.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"5, The Quern",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2018-05-25 15:00:57,owner-occupied,,,200003666118.0,Address Matched +1005457959962013091122531973808727,"23, Whitebeam Drive",Coxheath,,ME17 4QY,2752573178,D,B,61,86,House,Semi-Detached,2013-09-10,E07000110,E14000804,Kent,2013-09-11,marketed sale,58,87,236,61.0,3.6,45,1.0,95.0,48.0,542.0,389.0,184.0,70.0,80.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,6.0,6.0,0.0,0.0,"From main system, no cylinder thermostat",Poor,Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, partial insulation (assumed)",Average,Average,,,,"Pitched, limited insulation (assumed)",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"23, Whitebeam Drive, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1976-1982,2013-09-11 22:53:19,owner-occupied,12.0,0.0,200003672331.0,Address Matched +1628159779402018051719584157789538,"5, Barleyfields",Weavering,,ME14 5SW,5461777578,E,C,52,79,House,Detached,2018-05-17,E07000110,E14000700,Kent,2018-05-17,marketed sale,50,80,289,111.0,7.5,45,2.6,173.0,88.0,1365.0,810.0,255.0,77.0,165.0,Single,Y,NODATA!,,,2104.0,0.0,not defined,Normal,0.0,7.0,7.0,0.0,1.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Single glazed,Very Poor,Very Poor,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, wood logs",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"5, Barleyfields, Weavering",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2018-05-17 19:58:41,owner-occupied,,,200003687990.0,Address Matched +55665755812013012312501996270051,"150, Clifford Way",,,ME16 8GF,149566568,C,B,80,82,Flat,Mid-Terrace,2013-01-23,E07000110,E14000804,Kent,2013-01-23,marketed sale,85,86,100,92.0,1.2,19,1.1,69.0,41.0,204.0,207.0,85.0,85.0,63.0,Unknown,Y,3rd,Y,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,33.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Good,Good,"System built, as built, insulated (assumed)",Good,Good,,,,"Flat, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 33% of fixed outlets,Average,Average,mains gas (not community),0.0,heated corridor,,,0.0,,natural,"150, Clifford Way",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2013-01-23 12:50:19,owner-occupied,6.0,2.0,10022896163.0,Address Matched +101036189402019070116242645610398,"19, Waterside Mews",Wateringbury,,ME18 5AB,3483286468,D,B,60,85,House,Mid-Terrace,2019-07-01,E07000110,E14000804,Kent,2019-07-01,marketed sale,55,84,312,94.0,3.5,55,1.1,48.0,48.0,486.0,390.0,215.0,64.0,63.0,Unknown,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,100.0,0.0,"From main system, no cylinder thermostat",Poor,Poor,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, mains gas",,,"Pitched, insulated (assumed)",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"19, Waterside Mews, Wateringbury",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2019-07-01 16:24:26,owner-occupied,,,200003658742.0,Address Matched +889894959962013061117521795398967,"16, Beverley Road",,,ME16 9JD,6905555078,C,B,72,82,House,Semi-Detached,2013-06-11,E07000110,E14000804,Kent,2013-06-11,assessment for green deal,69,81,144,83.0,4.2,28,2.5,84.0,84.0,662.0,601.0,148.0,82.0,153.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,7.0,7.0,80.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"16, Beverley Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2013-06-11 17:52:17,owner-occupied,15.0,12.0,200003681610.0,Address Matched +591262882932011021020002627968405,"103, Kingsley Road",,,ME15 7UP,8577473868,D,D,60,67,House,Mid-Terrace,2011-02-10,E07000110,E14000804,Kent,2011-02-10,rental (private),53,61,327,267.0,4.6,55,3.7,55.0,45.0,763.0,626.0,103.0,103.0,83.63,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,4.0,4.0,78.0,0.0,From main system,Very Good,Very Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 78% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.45,0.0,N,natural,"103, Kingsley Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2011-02-10 20:00:26,rental (private),,,200003695891.0,Address Matched +1235070919922014111209531609828154,"28, James Huxley Avenue",,,ME16 0ZH,5005199278,B,B,88,89,House,Detached,2014-11-12,E07000110,E14000804,Kent,2014-11-12,new dwelling,88,91,60,47.0,1.2,11,1.0,65.0,65.0,288.0,291.0,110.0,59.0,116.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"28, James Huxley Avenue",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2014-11-12 09:53:16,owner-occupied,14.0,14.0,10014315167.0,Address Matched +590532569642011020918134683390518,"13b, Lockswood",,,ME16 0NX,4677963868,B,B,81,83,House,Semi-Detached,2011-02-09,E07000110,E14000804,Kent,2011-02-09,rental (private),80,81,150,142.0,1.7,25,1.6,69.0,40.0,278.0,282.0,94.0,94.0,69.16,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,4.0,4.0,29.0,0.0,From main system,Very Good,Very Good,"Suspended, insulated (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 29% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.32,0.0,N,natural,"13b, Lockswood",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2011-02-09 18:13:46,rental (private),,,10022901946.0,Address Matched +1011426771732013092709334564278101,"58, Pope Street",,,ME16 8LG,7174114178,E,B,53,83,House,End-Terrace,2013-09-27,E07000110,E14000804,Kent,2013-09-27,marketed sale,49,84,306,82.0,4.2,59,1.2,43.0,43.0,721.0,425.0,142.0,70.0,71.0,Unknown,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,1.0,4.0,4.0,100.0,1.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"58, Pope Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2013-09-27 09:33:45,owner-occupied,8.0,8.0,200003655606.0,Address Matched +995900582452013082516505890270017,First Floor Flat,35 Melville Road,,ME15 7UY,759203178,E,C,49,78,Flat,Mid-Terrace,2013-08-23,E07000110,E14000804,Kent,2013-08-25,rental (private),53,84,427,139.0,2.6,76,0.9,39.0,23.0,433.0,212.0,206.0,64.0,34.0,Single,Y,1st,Y,,2699.0,100.0,double glazing installed before 2002,Normal,1.0,2.0,0.0,29.0,0.0,"Electric immersion, standard tariff",Very Poor,Very Poor,(other premises below),,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 150 mm loft insulation",Good,Good,No system present: electric heaters assumed,Very Poor,Very Poor,,Very Poor,Very Poor,Low energy lighting in 29% of fixed outlets,Average,Average,To be used only when there is no heating/hot-water system,0.0,heated corridor,,,0.0,,natural,"First Floor Flat, 35 Melville Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2013-08-25 16:50:58,rental (private),7.0,2.0,200003728985.0,Address Matched +1060283169042013121318213519770618,"5, Nursery Avenue",,,ME16 0HP,64467178,E,B,41,86,House,Semi-Detached,2013-12-09,E07000110,E14000804,Kent,2013-12-13,none of the above,21,86,601,65.0,9.3,106,1.1,110.0,50.0,950.0,415.0,275.0,72.0,87.0,dual,Y,NODATA!,,,2401.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,0.0,0.0,"Electric immersion, off-peak",Average,Very Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,Portable electric heaters (assumed),,,"Pitched, 200 mm loft insulation",Good,Good,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,No low energy lighting,Very Poor,Very Poor,electricity (not community),0.0,NO DATA!,,,0.0,,natural,"5, Nursery Avenue",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2013-12-13 18:21:35,owner-occupied,9.0,0.0,200003702918.0,Address Matched +596546370352015040121351392050085,"6, McCabe Close",Bell Lane,,TN12 0BW,537024868,C,A,69,120,Bungalow,Mid-Terrace,2015-04-01,E07000110,E14000804,Kent,2015-04-01,rental (social),70,116,232,-170.0,2.0,41,-1.3,55.0,37.0,341.0,322.0,123.0,72.0,48.0,dual,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,50.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"6, McCabe Close, Bell Lane",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1983-1990,2015-04-01 21:35:13,rental (social),,,200003677204.0,Address Matched +1293526295752018091221311090980330,"7, Albert Street",,,ME14 2RW,3048504378,D,C,57,75,House,Mid-Terrace,2018-09-12,E07000110,E14000804,Kent,2018-09-12,marketed sale,50,68,286,163.0,5.4,50,3.1,141.0,71.0,912.0,754.0,86.0,55.0,107.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,0.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"7, Albert Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2018-09-12 21:31:10,owner-occupied,,,200003669682.0,Address Matched +17861289762012013118544482198242,"1, Beechwood Road",,,ME16 9HN,4829852468,E,D,50,64,House,Detached,2012-01-31,E07000110,E14000804,Kent,2012-01-31,marketed sale,43,57,281,200.0,11.0,54,8.0,149.0,77.0,1701.0,1242.0,249.0,200.0,207.74,Single,Y,NODATA!,,,2102.0,50.0,double glazing installed before 2002,Normal,1.0,7.0,7.0,6.0,0.0,"From main system, no cylinder thermostat",Average,Average,"Solid, no insulation (assumed)",,,Partial double glazing,Poor,Poor,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,Low energy lighting in 6% of fixed outlets,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,2.3,0.0,,natural,"1, Beechwood Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2012-01-31 18:54:44,owner-occupied,17.0,1.0,200003666802.0,Address Matched +494341947052010060309080995000674,2 Ruth House,Lesley Place,Buckland Hill,ME16 0UB,6498756768,E,D,53,58,Flat,Semi-Detached,2010-06-02,E07000110,E14000804,Kent,2010-06-03,marketed sale,46,48,450,421.0,5.0,68,4.7,57.0,57.0,551.0,474.0,162.0,162.0,73.84,dual,N,Ground,N,4.0,2401.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,80.0,0.0,"Electric immersion, off-peak",Poor,Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,(another dwelling above),,,Electric storage heaters,Poor,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,electricity - this is for backwards compatibility only and should not be used,0.0,unheated corridor,13.55,2.34,0.0,N,natural,"2 Ruth House, Lesley Place, Buckland Hill",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2010-06-03 09:08:09,owner-occupied,,,10014311984.0,Address Matched +776035457312012041611480694920298,"43, Leonard Gould Way",Loose,,ME15 9FX,2807747968,B,B,83,83,House,Detached,2012-04-16,E07000110,E14000700,Kent,2012-04-16,new dwelling,84,84,81,81.0,2.6,15,2.6,82.0,82.0,406.0,406.0,100.0,100.0,169.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,12.0,,From main system,Good,Good,Average thermal transmittance 0.12 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m?K,Very Good,Very Good,"Room heaters, mains gas",,,Average thermal transmittance 0.10 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.45,,,NO DATA!,"43, Leonard Gould Way, Loose",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2012-04-16 11:48:06,,15.0,12.0,10014311160.0,Address Matched +1020263589142013100723122215470638,"3, Dudley Close",,,ME15 9GR,3170184178,B,A,81,93,House,Mid-Terrace,2013-10-07,E07000110,E14000700,Kent,2013-10-07,rental (social),84,96,98,9.0,1.4,19,0.2,54.0,54.0,233.0,234.0,105.0,69.0,73.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,86.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",,,Fully double glazed,Good,Good,"Timber frame, as built, insulated (assumed)",Good,Good,,,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 86% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"3, Dudley Close",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2007 onwards,2013-10-07 23:12:22,rental (social),7.0,6.0,10022896799.0,Address Matched +d85ae3ebfa8a6be93d3ec8b045a544c94e5480ffb56b078eae409def869d1407,11,Railway Place,Lenham,ME17 2FQ,10001333199,A,A,94,95,House,Semi-Detached,2021-08-03,E07000110,E14000700,Kent,2021-08-03,new dwelling,96,98,19,5.0,0.3,4,0.1,69.0,69.0,211.0,211.0,67.0,37.0,81.0,standard tariff,,,N,,,100.0,,,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.16 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.17 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.44,,,,"11, Railway Place, Lenham",Maidstone,Faversham and Mid Kent,Maidstone,2020,2021-08-03 09:31:55,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,13.0,,10095449335.0,Address Matched +548942949402011121209481989099708,"7, Postley Road",,,ME15 6TG,5417640868,D,D,60,66,House,Mid-Terrace,2011-12-10,E07000110,E14000804,Kent,2011-12-12,rental (social),59,67,285,231.0,3.2,55,2.6,46.0,35.0,541.0,462.0,88.0,73.0,57.55,dual,Y,NODATA!,,,2106.0,85.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,70.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Mostly double glazing,Poor,Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 70% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,1.9,0.0,,natural,"7, Postley Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2011-12-12 09:48:19,rental (social),10.0,7.0,200003681774.0,Address Matched +827666839222012082209144451798422,"17, Buckland Rise",,,ME16 0YN,2581311078,B,B,82,83,Flat,Mid-Terrace,2012-08-21,E07000110,E14000804,Kent,2012-08-22,rental (private),87,88,90,82.0,1.0,17,0.9,63.0,39.0,180.0,183.0,78.0,77.0,60.0,Single,Y,1st,N,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,40.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Good,Good,"System built, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 40% of fixed outlets,Average,Average,mains gas (not community),0.0,unheated corridor,3.72,,0.0,,natural,"17, Buckland Rise",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2012-08-22 09:14:44,rental (private),15.0,6.0,10014308212.0,Address Matched +959016256732013062610581361278404,"9, Waterside Gate",St. Peters Street,,ME16 0GB,5411440178,C,B,77,88,House,Mid-Terrace,2013-06-26,E07000110,E14000804,Kent,2013-06-26,marketed sale,76,89,118,47.0,2.8,23,1.2,99.0,64.0,415.0,388.0,128.0,74.0,122.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,45.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 45% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"9, Waterside Gate, St. Peters Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2013-06-26 10:58:13,owner-occupied,22.0,10.0,200003654873.0,Address Matched +668357178932011082311511296268301,1 Bridge Cottages,Station Hill,East Farleigh,ME15 0JG,7126349868,E,E,42,52,House,Semi-Detached,2011-08-23,E07000110,E14000804,Kent,2011-08-23,marketed sale,39,49,448,355.0,5.1,87,4.1,48.0,36.0,838.0,699.0,133.0,96.0,59.35,dual,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,67.0,2.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, mains gas",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Average,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 67% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,2.3,0.0,,natural,"1 Bridge Cottages, Station Hill, East Farleigh",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2011-08-23 11:51:12,owner-occupied,6.0,4.0,200003726676.0,Address Matched +d85cea0cb2835ad33786f71566f5a86dcc8e0fcbd6e575897f3662f0639b8770,31 Bedell Road,,,ME14 4GE,10001457470,B,A,83,94,House,End-Terrace,2021-07-22,E07000110,E14000804,Kent,2021-07-22,new dwelling,86,96,88,11.0,1.4,15,0.2,85.0,85.0,238.0,238.0,71.0,44.0,91.0,standard tariff,,,N,,,100.0,,,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.17 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.41,,,,31 Bedell Road,Maidstone,Maidstone and The Weald,THURNHAM,2021,2021-07-22 12:25:42,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,1.0,,10094444622.0,Address Matched +408771290062009120513434700778111,3 Shirley Court,Wallis Avenue,,ME15 9JW,1056950768,C,C,70,78,Flat,Mid-Terrace,2009-12-03,E07000110,E14000700,Kent,2009-12-05,marketed sale,64,71,373,301.0,2.3,56,1.9,48.0,24.0,218.0,158.0,108.0,108.0,41.76,Unknown,N,1st,Y,2.0,2401.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,1.0,0.0,0.0,"Electric immersion, off-peak",Poor,Poor,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,Portable electric heaters,,,"Pitched, 100 mm loft insulation",Average,Average,Electric storage heaters,Poor,Very Poor,Manual charge control,Poor,Poor,No low energy lighting,Very Poor,Very Poor,electricity - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.52,0.0,N,natural,"3 Shirley Court, Wallis Avenue",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2009-12-05 13:43:47,owner-occupied,,,200003683152.0,Address Matched +d8650923ab75ccbac71851d8d4254685b75e4f29d55412a72fa388968a5e05bb,8 Tenacre Court,Ashford Road,Harrietsham,ME17 1AH,10001551042,D,D,65,65,Flat,End-Terrace,2021-08-24,E07000110,E14000700,Kent,2021-08-24,not sale or rental,68,68,206,206.0,2.5,35,2.5,75.0,75.0,622.0,622.0,240.0,240.0,73.0,standard tariff,,3,Y,,,100.0,,,,,,100.0,0.0,Electric instantaneous at point of use,Very Poor,Poor,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.16 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.17 W/m-¦K,Good,Good,"Boiler and radiators, electric",Very Poor,Poor,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",0.0,,,2.12,,,,"8 Tenacre Court, Ashford Road, Harrietsham",Maidstone,Faversham and Mid Kent,MAIDSTONE,2020,2021-08-24 14:31:19,Owner-occupied,4.0,,10095449473.0,Energy Assessor +194799587552008111810424004989953,Flat 52 Scotney Gardens,St. Peters Street,,ME16 0GR,9358744568,C,B,76,81,Flat,Semi-Detached,2008-11-18,E07000110,E14000804,Kent,2008-11-18,rental (private),73,77,205,178.0,2.6,31,2.2,77.0,45.0,153.0,141.0,162.0,139.0,83.04,Unknown,N,2nd,Y,3.0,2401.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,28.0,0.0,"Electric immersion, standard tariff",Poor,Poor,(other premises below),,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,"Pitched, insulated (assumed)",Good,Good,Electric storage heaters,Poor,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 28% of fixed outlets,Average,Average,electricity - this is for backwards compatibility only and should not be used,0.0,heated corridor,,2.28,0.0,N,natural,"Flat 52 Scotney Gardens, St. Peters Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2008-11-18 10:42:40,rental (private),,,10022893420.0,Address Matched +1098999939342014022812085523042708,39 Sunningdale Court,Square Hill Road,,ME15 7TT,6395230278,C,C,74,79,Flat,Mid-Terrace,2014-02-20,E07000110,E14000804,Kent,2014-02-28,none of the above,78,84,167,122.0,1.4,32,1.0,35.0,35.0,250.0,200.0,125.0,99.0,45.0,Single,Y,8th,N,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,80.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,4.597,,0.0,,natural,"39 Sunningdale Court, Square Hill Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2014-02-28 12:08:55,rental (social),5.0,4.0,200003696571.0,Address Matched +283143660012009051412412009910469,"10, Whiteheads Lane",Bearsted,,ME14 4DE,4908091668,D,C,65,72,Bungalow,Semi-Detached,2009-05-14,E07000110,E14000700,Kent,2009-05-14,marketed sale,59,68,337,264.0,3.0,56,2.3,44.0,25.0,412.0,329.0,102.0,102.0,52.88,Unknown,Y,NO DATA!,,,2104.0,25.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,25.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Partial double glazing,Poor,Poor,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Poor,Poor,Low energy lighting in 25% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.42,0.0,N,natural,"10, Whiteheads Lane, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2009-05-14 12:41:20,owner-occupied,,,200003692121.0,Address Matched +286754088412009052121023800210064,"54, Stanley Close",Staplehurst,,TN12 0TA,480802668,D,C,61,76,House,Semi-Detached,2009-05-20,E07000110,E14000804,Kent,2009-05-21,marketed sale,55,73,282,173.0,5.2,47,3.2,93.0,53.0,646.0,416.0,158.0,120.0,109.8,Single,Y,NO DATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,1.0,6.0,6.0,23.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 150mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Poor,Poor,Low energy lighting in 23% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.3,0.0,N,natural,"54, Stanley Close, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1967-1975,2009-05-21 21:02:38,owner-occupied,,,200003678752.0,Address Matched +455015812212014093018533298240373,"67, Pembroke Road",Coxheath,,ME17 4QL,3321283768,D,B,61,83,House,Semi-Detached,2014-09-23,E07000110,E14000804,Kent,2014-09-30,assessment for green deal,57,82,213,81.0,5.0,41,2.0,135.0,67.0,910.0,588.0,130.0,87.0,122.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,6.0,6.0,0.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 12 mm loft insulation",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"67, Pembroke Road, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2014-09-30 18:53:32,owner-occupied,12.0,0.0,200003714737.0,Address Matched +996884389852018011008342790080715,"337, Queens Road",,,ME16 0ET,7507903178,D,B,62,85,House,Detached,2018-01-05,E07000110,E14000804,Kent,2018-01-10,marketed sale,55,82,251,88.0,4.9,44,1.8,132.0,71.0,827.0,496.0,106.0,72.0,111.0,Single,Y,NODATA!,,,2106.0,99.0,double glazing installed before 2002,Normal,2.0,5.0,5.0,13.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Mostly double glazing,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 13% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"337, Queens Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2018-01-10 08:34:27,owner-occupied,,,200003658946.0,Address Matched +356383646812014022811145899940064,1 Wicken House,London Road,,ME16 8QP,457696668,E,C,50,76,Flat,End-Terrace,2014-02-14,E07000110,E14000804,Kent,2014-02-28,none of the above,35,60,822,453.0,3.5,145,1.9,36.0,21.0,415.0,165.0,162.0,96.0,24.0,dual,N,1st,N,,2401.0,100.0,double glazing installed before 2002,Normal,0.0,1.0,1.0,25.0,0.0,"Electric immersion, off-peak",Poor,Very Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,(another dwelling above),,,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 25% of fixed outlets,Average,Average,electricity (not community),0.0,unheated corridor,0.9,,0.0,,natural,"1 Wicken House, London Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2014-02-28 11:14:58,owner-occupied,4.0,1.0,200003668492.0,Address Matched +450150289062010030615595243368190,"487, Loose Road",,,ME15 9UQ,9485843768,D,D,56,66,House,Mid-Terrace,2010-03-06,E07000110,E14000804,Kent,2010-03-06,marketed sale,50,60,420,327.0,3.8,70,3.0,55.0,28.0,598.0,493.0,89.0,78.0,54.0,Unknown,Y,NO DATA!,,,2104.0,0.0,not defined,Normal,1.0,3.0,3.0,0.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Cavity wall, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Flat, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,0.0,N,natural,"487, Loose Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2010-03-06 15:59:52,owner-occupied,,,200003680295.0,Address Matched +1563114733332017072722294590278600,"38, Leigh Avenue",,,ME15 9UY,3000613578,D,C,61,80,House,Semi-Detached,2017-07-27,E07000110,E14000804,Kent,2017-07-27,marketed sale,55,75,288,144.0,4.0,51,2.1,101.0,60.0,676.0,571.0,134.0,80.0,80.0,dual,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,1.0,4.0,4.0,31.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 31% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"38, Leigh Avenue",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2017-07-27 22:29:45,owner-occupied,,,200003675551.0,Address Matched +d89a5f9916bbe4697f7e83c39e68106a2f4cb4c547232bd8dc33e042b5a39bd4,45 THOMAS PLACE,JAMES WHATMAN WAY,,ME14 1FP,7612358868,B,B,83,83,Flat,Mid-Terrace,2021-07-21,E07000110,E14000804,Kent,2021-08-02,rental,85,85,99,99.0,1.2,17,1.2,66.0,66.0,156.0,156.0,111.0,111.0,70.0,Single,N,07,N,,,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,Community scheme,Good,Good,(another dwelling below),,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Very Good,Very Good,,,,(another dwelling above),,,Community scheme,Good,Good,"Flat rate charging, programmer and room thermostat",Poor,Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (community),0.0,unheated corridor,9.7,2.39,0.0,N,natural,"45 THOMAS PLACE, JAMES WHATMAN WAY",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2012 onwards,2021-08-02 10:35:29,Rented (social),7.0,,10014312711.0,Energy Assessor +597407942732013020421573926068308,"16, Acorn Place",,,ME15 9LX,4846324868,C,C,74,77,Flat,Mid-Terrace,2013-02-04,E07000110,E14000700,Kent,2013-02-04,rental (social),77,81,162,134.0,1.5,31,1.3,46.0,31.0,291.0,254.0,75.0,76.0,50.0,Single,Y,Ground,N,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,50.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,no corridor,,,0.0,,natural,"16, Acorn Place",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2013-02-04 21:57:39,rental (social),6.0,3.0,200003683530.0,Address Matched +1763746559842019110610150461710468,"1, Mulberry Place",,,ME15 7FB,5851857678,C,B,77,90,Bungalow,Detached,2019-11-06,E07000110,E14000700,Kent,2019-11-06,new dwelling,80,91,129,46.0,2.1,22,0.7,88.0,88.0,314.0,315.0,306.0,184.0,96.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Poor,Average,Average thermal transmittance 0.11 W/m+é-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.17 W/m+é-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.10 W/m+é-¦K,Very Good,Very Good,"Air source heat pump, underfloor, electric",Good,Very Good,2207 Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"1, Mulberry Place",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2019-11-06 10:15:04,unknown,20.0,20.0,10093307383.0,Address Matched +597399564812013062900081092270486,Flat 4 Chichester House,Cambridge Crescent,,ME15 7NY,4697424868,C,C,75,78,Flat,Mid-Terrace,2013-06-28,E07000110,E14000700,Kent,2013-06-29,rental (social),78,80,142,123.0,1.7,27,1.5,58.0,38.0,304.0,279.0,81.0,82.0,63.0,Single,Y,1st,Y,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,50.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,no corridor,,,0.0,,natural,"Flat 4 Chichester House, Cambridge Crescent",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2013-06-29 00:08:10,rental (social),6.0,3.0,200003713112.0,Address Matched +219834780202009012320491458612578,"36, Kingfisher Meadow",,,ME16 8RB,9274986568,E,D,49,62,Flat,Semi-Detached,2009-01-23,E07000110,E14000804,Kent,2009-01-23,marketed sale,51,51,419,422.0,4.0,63,4.0,62.0,34.0,278.0,164.0,308.0,308.0,63.02,dual,N,3rd,Y,4.0,2603.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,17.0,0.0,"Electric immersion, off-peak",Average,Poor,(other premises below),,,Fully double glazed,Good,Good,"Timber frame, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,"Flat, insulated (assumed)",Good,Good,"Room heaters, electric",Very Poor,Poor,Programmer and appliance thermostats,Good,Good,Low energy lighting in 17% of fixed outlets,Poor,Poor,electricity - this is for backwards compatibility only and should not be used,0.0,unheated corridor,8.0,2.71,0.0,N,natural,"36, Kingfisher Meadow",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2009-01-23 20:49:14,owner-occupied,,,10022892247.0,Address Matched +1362519349922015091012004888608215,"30, The Bartons",Staplehurst,,TN12 0EF,1821498378,B,B,88,90,House,Detached,2015-09-10,E07000110,E14000804,Kent,2015-09-10,new dwelling,88,90,57,47.0,1.7,10,1.4,87.0,87.0,345.0,348.0,117.0,63.0,165.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.14 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"30, The Bartons, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,NO DATA!,2015-09-10 12:00:48,owner-occupied,21.0,21.0,10014315529.0,Address Matched +526286789342010081110002675809598,"48, Lacock Gardens",,,ME15 6GQ,8304388768,C,C,72,77,House,End-Terrace,2010-08-11,E07000110,E14000804,Kent,2010-08-11,marketed sale,70,74,205,173.0,3.0,34,2.6,101.0,50.0,391.0,366.0,163.0,142.0,89.1,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,0.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.34,0.0,N,natural,"48, Lacock Gardens",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2010-08-11 10:00:26,owner-occupied,,,10034134524.0,Address Matched +1740738439062019080218043015728001,"42, Valley Drive",Loose,,ME15 9TL,180395678,D,B,65,81,Bungalow,Semi-Detached,2019-08-02,E07000110,E14000804,Kent,2019-08-02,marketed sale,60,77,239,126.0,3.9,42,2.1,127.0,69.0,610.0,550.0,139.0,83.0,94.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,3.0,3.0,15.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Average,Average,"Room heaters, mains gas",,,"Pitched, 270 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 15% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"42, Valley Drive, Loose",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2019-08-02 18:04:30,owner-occupied,,,200003664053.0,Address Matched +402523810142009112510252472012648,19 Astor Park,,,ME16 8FP,110710768,B,B,85,86,House,Semi-Detached,2009-11-24,E07000110,E14000804,Kent,2009-11-25,new dwelling,85,86,93,90.0,1.8,15,1.8,73.0,61.0,246.0,247.0,119.0,119.0,118.65,standard tariff,,NO DATA!,,,2110.0,,NO DATA!,NO DATA!,,,,16.0,0.0,From main system,Very Good,Very Good,Average thermal transmittance 0.18 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.26 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.15 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Very Good,Very Good,Time and temperature zone control,Good,Good,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.33,,,NO DATA!,19 Astor Park,Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2009-11-25 10:25:24,,20.0,16.0,10014308744.0,Address Matched +762969959502012032317015293622928,Willow Trees,Lower Road,West Farleigh,ME15 0PF,2539256968,D,D,67,68,Bungalow,Detached,2012-03-22,E07000110,E14000804,Kent,2012-03-23,marketed sale,57,58,173,166.0,6.7,41,6.5,150.0,75.0,925.0,940.0,154.0,154.0,107.11,dual,N,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,6.0,6.0,0.0,1.0,From main system,Good,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, oil",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,oil (not community),0.0,NO DATA!,,2.38,0.0,,natural,"Willow Trees, Lower Road, West Farleigh",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2012-03-23 17:01:52,owner-occupied,11.0,0.0,200003662887.0,Address Matched +1027197569962013101719094295838287,"45, Pennine Way",Downswood,,ME15 8UF,8981625178,D,C,59,77,House,Detached,2013-10-17,E07000110,E14000700,Kent,2013-10-17,marketed sale,55,75,257,128.0,3.8,50,2.0,64.0,46.0,678.0,566.0,109.0,73.0,78.0,Single,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,62.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 62% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"45, Pennine Way, Downswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2013-10-17 19:09:42,owner-occupied,8.0,5.0,200003691305.0,Address Matched +42364646452012040316580691020958,"29, Thomas Rider Way",Boughton Monchelsea,,ME17 4GA,9801614568,C,C,78,78,Flat,Semi-Detached,2012-04-02,E07000110,E14000700,Kent,2012-04-03,marketed sale,81,82,125,121.0,1.4,24,1.3,49.0,37.0,241.0,243.0,77.0,77.0,58.0,Single,Y,1st,Y,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,67.0,0.0,From main system,Good,Good,"To unheated space, insulated (assumed)",,,Fully double glazed,Good,Good,"Timber frame, as built, insulated (assumed)",Good,Good,,,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 67% of fixed outlets,Good,Good,mains gas (not community),0.0,no corridor,,,0.0,,natural,"29, Thomas Rider Way, Boughton Monchelsea",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2007 onwards,2012-04-03 16:58:06,owner-occupied,6.0,4.0,10022901107.0,Address Matched +d9717d7bfee07fef8241f6e3df53bfa828b23b056cd83b79ed6b1a2b70ca6556,16 TENACRE COURT,ASHFORD ROAD,HARRIETSHAM,ME17 1AH,10001413243,E,E,47,47,Flat,Mid-Terrace,2021-08-05,E07000110,E14000700,Kent,2021-08-05,not sale or rental,53,53,315,315.0,3.9,53,3.9,76.0,76.0,1104.0,1104.0,239.0,239.0,72.0,standard tariff,,1,N,,,100.0,,,,,,100.0,0.0,Electric instantaneous at point of use,Very Poor,Poor,Average thermal transmittance 0.36 W/m-¦K,Average,Average,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.32 W/m-¦K,Average,Average,"Boiler and radiators, electric",Very Poor,Poor,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",0.0,,,3.66,,,,"16 TENACRE COURT, ASHFORD ROAD, HARRIETSHAM",Maidstone,Faversham and Mid Kent,MAIDSTONE,2020,2021-08-05 14:04:52,Owner-occupied,5.0,,10095449481.0,Energy Assessor +824949799502012081711021807029238,"39, Buckland Lane",,,ME16 0BJ,6528490078,E,B,52,86,House,Semi-Detached,2012-08-17,E07000110,E14000804,Kent,2012-08-17,marketed sale,48,87,303,62.0,4.7,58,1.0,89.0,45.0,698.0,373.0,168.0,68.0,80.0,Single,Y,NODATA!,,,2102.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,0.0,0.0,"From main system, no cylinder thermostat",Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"39, Buckland Lane",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2012-08-17 11:02:18,owner-occupied,8.0,0.0,200003658452.0,Address Matched +927407729002013050922524302870618,"33, Quarry Road",,,ME15 6UA,3053228078,D,C,57,75,House,Mid-Terrace,2013-05-09,E07000110,E14000804,Kent,2013-05-09,rental (social),54,72,289,154.0,3.5,56,1.9,52.0,37.0,573.0,564.0,134.0,66.0,63.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,6.0,6.0,60.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 60% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"33, Quarry Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2013-05-09 22:52:43,rental (social),10.0,6.0,200003681997.0,Address Matched +823422438232012081010145658978208,17 Astley Terrace,Hastings Road,,ME15 7BF,3898280078,B,B,84,84,House,Mid-Terrace,2012-08-10,E07000110,E14000700,Kent,2012-08-10,new dwelling,87,87,80,80.0,1.1,15,1.1,43.0,43.0,224.0,224.0,69.0,69.0,75.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,12.0,,From main system,Good,Good,Average thermal transmittance 0.12 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.37,,,NO DATA!,"17 Astley Terrace, Hastings Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2012-08-10 10:14:56,,12.0,12.0,10014313968.0,Address Matched +639818545412013032517233194970281,"37, Knaves Acre",Headcorn,,TN27 9TJ,2156547868,C,A,76,93,House,Mid-Terrace,2013-03-15,E07000110,E14000700,Kent,2013-03-25,assessment for green deal,77,95,134,11.0,1.8,26,0.2,47.0,47.0,327.0,305.0,89.0,61.0,72.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,88.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 88% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"37, Knaves Acre, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,England and Wales: 1976-1982,2013-03-25 17:23:31,owner-occupied,8.0,7.0,200003699342.0,Address Matched +16664409222011092719254798038779,2 Wallis Place,Hart Street,,ME16 8FB,7982088468,C,C,76,78,Flat,NO DATA!,2011-09-27,E07000110,E14000804,Kent,2011-09-27,marketed sale,80,82,148,137.0,1.4,28,1.3,58.0,31.0,241.0,245.0,68.0,68.0,48.5,Single,Y,1st,N,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,12.0,0.0,From main system,Good,Good,"To unheated space, insulated (assumed)",,,Fully double glazed,Average,Average,"Timber frame, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 12% of fixed outlets,Poor,Poor,mains gas (not community),0.0,unheated corridor,3.7,2.4,0.0,,natural,"2 Wallis Place, Hart Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2011-09-27 19:25:47,owner-occupied,8.0,1.0,10022900601.0,Address Matched +821994879402012080711374602020938,"32, Franklin Drive",Weavering,,ME14 5SY,1465470078,C,B,70,84,House,Semi-Detached,2012-08-07,E07000110,E14000700,Kent,2012-08-07,marketed sale,70,85,179,74.0,2.5,34,1.1,42.0,42.0,427.0,391.0,102.0,68.0,73.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"32, Franklin Drive, Weavering",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1991-1995,2012-08-07 11:37:46,owner-occupied,8.0,8.0,200003716449.0,Address Matched +1617790725112018032619341690280153,"7, Meadow View Road",Boughton Monchelsea,,ME17 4LJ,1338507578,D,B,60,85,House,Semi-Detached,2018-03-23,E07000110,E14000700,Kent,2018-03-26,marketed sale,52,82,274,93.0,5.5,48,1.9,120.0,72.0,896.0,522.0,155.0,75.0,114.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,7.0,7.0,32.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,"Room heaters, mains gas",,,"Pitched, insulated (assumed)",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 32% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"7, Meadow View Road, Boughton Monchelsea",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2018-03-26 19:34:16,owner-occupied,,,200003674773.0,Address Matched +1682763799832018112917183757278094,"1, Mary Dukes Place",Mote Road,,ME15 6EN,9457071678,F,C,33,80,House,End-Terrace,2018-11-29,E07000110,E14000804,Kent,2018-11-29,rental (private),20,57,734,287.0,8.7,124,3.4,88.0,57.0,1343.0,634.0,299.0,97.0,70.0,dual,N,NODATA!,,,2401.0,100.0,double glazing installed during or after 2002,Normal,1.0,3.0,3.0,44.0,0.0,"Electric immersion, off-peak",Very Poor,Poor,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,"Pitched, 300 mm loft insulation",Very Good,Very Good,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 44% of fixed outlets,Average,Average,electricity (not community),0.0,NO DATA!,,,,N,natural,"1, Mary Dukes Place, Mote Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2018-11-29 17:18:37,rental (private),,,200003693644.0,Address Matched +589250389062011020823002783538169,"93, The Quarries",Boughton Monchelsea,,ME17 4NJ,6859853868,D,D,64,67,Bungalow,Detached,2011-02-07,E07000110,E14000700,Kent,2011-02-08,marketed sale,61,64,253,235.0,4.2,42,3.9,111.0,62.0,684.0,660.0,110.0,110.0,109.93,dual,Y,NO DATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,6.0,6.0,20.0,1.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Very Good,Very Good,Programmer and room thermostat,Average,Average,Low energy lighting in 20% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.53,0.0,N,natural,"93, The Quarries, Boughton Monchelsea",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2011-02-08 23:00:27,owner-occupied,,,200003709892.0,Address Matched +d8d19841936cdbfff9c9630110a36c48ee07bf1707d9341b69ee21340b67600a,2 Rose Cottages,Love Lane,Headcorn,TN27 9HL,10001414658,D,A,60,96,House,Semi-Detached,2021-08-31,E07000110,E14000700,Kent,2021-08-31,marketed sale,55,92,170,-10.0,6.0,40,0.7,142.0,102.0,786.0,467.0,155.0,89.0,152.0,Single,N,,,,,100.0,not defined,Much More Than Typical,2.0,6.0,6.0,60.0,0.0,From main system,Average,Average,"Suspended, no insulation (assumed)",,,Multiple glazing throughout,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, oil",Average,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 60% of fixed outlets,Good,Good,oil (not community),0.0,,,2.37,0.0,N,natural,"2 Rose Cottages, Love Lane, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,England and Wales: 1900-1929,2021-08-31 18:10:12,Owner-occupied,25.0,,200003702096.0,Energy Assessor +811196899402016111010040997969408,"3, Lansdowne Avenue",,,ME15 9DJ,1454999968,C,B,72,83,House,Detached,2016-11-10,E07000110,E14000700,Kent,2016-11-10,marketed sale,67,79,181,106.0,3.9,32,2.3,72.0,72.0,683.0,623.0,143.0,88.0,122.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,2.4,,N,natural,"3, Lansdowne Avenue",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2016-11-10 10:04:09,owner-occupied,,,200003710166.0,Address Matched +d8ef8933c3397bf714943fe6d4562112938bc29e6ce74499963a5ff2e677dfad,28 ELLIS FIELD,OTHAM,,ME15 8YL,10001438181,B,A,85,93,House,Detached,2021-07-09,E07000110,E14000804,Kent,2021-07-09,new dwelling,85,94,79,26.0,1.9,14,0.7,93.0,93.0,303.0,305.0,97.0,54.0,138.0,standard tariff,,,N,,,100.0,,,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.12 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.18 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.38,,,,"28 ELLIS FIELD, OTHAM",Maidstone,Maidstone and The Weald,OTHAM,2021,2021-07-09 10:44:00,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,15.0,,10094440522.0,Address Matched +1315532809222015051212492405788775,"16, Farleigh Lane",,,ME16 9AY,7042065378,C,A,73,93,House,Semi-Detached,2015-04-28,E07000110,E14000804,Kent,2015-05-12,FiT application,65,91,193,22.0,2.6,35,0.4,49.0,49.0,828.0,468.0,166.0,71.0,75.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"16, Farleigh Lane",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2015-05-12 12:49:24,owner-occupied,,,200003676478.0,Address Matched +784297109402014020411423094840948,First Floor Flat,1c Whitmore Street,,ME16 8JX,4484608968,D,C,67,76,Flat,Mid-Terrace,2014-02-04,E07000110,E14000804,Kent,2014-02-04,rental,67,80,217,136.0,2.3,42,1.4,39.0,39.0,456.0,290.0,80.0,81.0,55.0,Unknown,Y,1st,Y,,2109.0,100.0,double glazing installed during or after 2002,Normal,1.0,3.0,3.0,91.0,0.0,From main system,Good,Good,"To external air, no insulation (assumed)",,,Fully double glazed,Good,Good,"Sandstone, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and boiler energy manager",Good,Good,Low energy lighting in 91% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,no corridor,,,0.0,,natural,"First Floor Flat, 1c Whitmore Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2014-02-04 11:42:30,owner-occupied,11.0,10.0,200003729692.0,Address Matched +1700482619222019022615122563068501,"13, Hallwards",Staplehurst,,TN12 0NT,607103678,D,C,59,79,Bungalow,Semi-Detached,2019-02-26,E07000110,E14000804,Kent,2019-02-26,marketed sale,52,75,296,136.0,4.1,52,1.9,58.0,58.0,713.0,532.0,103.0,69.0,79.0,Unknown,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,100.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"13, Hallwards, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1967-1975,2019-02-26 15:12:25,owner-occupied,,,200003677221.0,Address Matched +667186038932011081800081296968502,"2, Freshland Road",,,ME16 0WJ,3216539868,C,C,69,73,House,Detached,2011-08-17,E07000110,E14000804,Kent,2011-08-18,marketed sale,68,72,190,164.0,3.2,36,2.7,76.0,49.0,483.0,443.0,121.0,107.0,86.58,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,45.0,0.0,From main system,Good,Good,"Suspended, limited insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 45% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,2.26,0.0,,natural,"2, Freshland Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2011-08-18 00:08:12,owner-occupied,11.0,5.0,10022901704.0,Address Matched +1538253700332017102710494090278996,"10, Young Lane",Harrietsham,,ME17 1GT,670931578,B,B,83,83,Flat,Semi-Detached,2017-10-27,E07000110,E14000700,Kent,2017-10-27,new dwelling,89,89,90,90.0,0.7,16,0.7,37.0,37.0,150.0,150.0,64.0,64.0,46.0,standard tariff,,ground floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.2 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.2 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"10, Young Lane, Harrietsham",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2017-10-27 10:49:40,unknown,15.0,15.0,10093305110.0,Address Matched +17870249132009110411355165068094,87 Wallis Place,Hart Street,,ME16 8FD,4485088468,B,B,87,87,Flat,NO DATA!,2009-11-04,E07000110,E14000804,Kent,2009-11-04,new dwelling,86,86,105,105.0,1.2,17,1.2,35.0,35.0,193.0,193.0,90.0,90.0,69.94,standard tariff,,top floor,,,2106.0,,NO DATA!,NO DATA!,,,,6.0,0.0,From main system,Very Good,Very Good,(other premises below),,,Fully double glazed,Good,Good,Average thermal transmittance 0.29 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.23 W/m?K,Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"87 Wallis Place, Hart Street",Maidstone,Maidstone and The Weald,MAIDSTONE,,2009-11-04 11:35:51,,,,10022900688.0,Address Matched +235403553212009030110002005210650,"105, Reculver Walk",,,ME15 8TT,6012358568,C,C,71,78,House,Mid-Terrace,2009-02-26,E07000110,E14000700,Kent,2009-03-01,rental (private),67,75,224,169.0,3.3,37,2.5,68.0,45.0,441.0,350.0,104.0,90.0,87.2,dual,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,50.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 150mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.35,0.0,N,natural,"105, Reculver Walk",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2009-03-01 10:00:20,rental (private),,,200003725732.0,Address Matched +499530199302019052215484870612128,"70, Oak Lane",Headcorn,,TN27 9TB,387896768,D,B,66,85,Bungalow,Detached,2019-05-22,E07000110,E14000700,Kent,2019-05-22,marketed sale,63,83,251,94.0,2.8,44,1.1,84.0,49.0,478.0,393.0,91.0,64.0,64.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,29.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 29% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"70, Oak Lane, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,England and Wales: 1983-1990,2019-05-22 15:48:48,owner-occupied,,,200003700967.0,Address Matched +1574726199542017091416534353339598,7 Brewer Street,,,ME14 1RU,582793578,D,C,64,80,Flat,Mid-Terrace,2017-09-11,E07000110,E14000804,Kent,2017-09-14,rental (private),68,66,222,231.0,2.5,38,2.6,49.0,54.0,431.0,233.0,280.0,147.0,68.0,Single,N,1st,Y,,2603.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,"Electric immersion, standard tariff",Very Poor,Poor,(another dwelling below),NO DATA!,,Fully double glazed,Good,Good,"Solid brick, with internal insulation",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Room heaters, electric",Very Poor,Poor,Programmer and appliance thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,no corridor,,,,N,natural,7 Brewer Street,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2017-09-14 16:53:43,rental (private),,,10093307024.0,Address Matched +895851299902013030910154300570688,Gardeners Cottage,Plain Road,Marden,TN12 9LS,1935595078,D,C,56,80,House,Semi-Detached,2013-03-08,E07000110,E14000804,Kent,2013-03-09,marketed sale,45,70,204,91.0,9.4,50,4.6,144.0,78.0,1546.0,997.0,202.0,123.0,188.0,Single,N,NODATA!,,,2106.0,0.0,not defined,Normal,2.0,7.0,7.0,11.0,3.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, insulated at rafters",Poor,Poor,"Boiler and radiators, oil",Average,Average,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 11% of fixed outlets,Poor,Poor,oil (not community),0.0,NO DATA!,,,0.0,,natural,"Gardeners Cottage, Plain Road, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1900-1929,2013-03-09 10:15:43,owner-occupied,27.0,3.0,200003730682.0,Address Matched +979153849922018052016183541358238,"6, Fisher Street",,,ME14 2SW,3416481178,D,C,64,76,House,Mid-Terrace,2018-05-15,E07000110,E14000804,Kent,2018-05-20,rental (private),56,70,240,152.0,4.9,42,3.2,72.0,72.0,837.0,744.0,131.0,83.0,116.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,7.0,7.0,100.0,0.0,From main system,Good,Good,(another dwelling below),NO DATA!,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"6, Fisher Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2018-05-20 16:18:35,rental (private),,,200003702890.0,Address Matched +596557729742012053122442887427898,"392, Willington Street",,,ME15 8HJ,721124868,C,C,72,76,Flat,Semi-Detached,2012-05-31,E07000110,E14000700,Kent,2012-05-31,rental (social),75,80,187,152.0,1.5,36,1.3,42.0,26.0,284.0,245.0,70.0,70.0,43.0,Single,Y,Ground,N,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,2.0,2.0,40.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 40% of fixed outlets,Average,Average,mains gas (not community),0.0,no corridor,,,0.0,,natural,"392, Willington Street",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2012-05-31 22:44:28,rental (social),5.0,2.0,200003680593.0,Address Matched +430290989762015073111232752698845,6 The Boatyard,Wharf Road,,ME15 6GY,4501802768,C,B,76,91,House,End-Terrace,2015-07-31,E07000110,E14000804,Kent,2015-07-31,marketed sale,78,92,168,40.0,1.6,29,0.4,40.0,40.0,298.0,298.0,94.0,62.0,53.0,Single,Y,NODATA!,,,2110.0,100.0,double glazing installed during or after 2002,Normal,1.0,2.0,2.0,100.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and underfloor heating, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"6 The Boatyard, Wharf Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2015-07-31 11:23:27,owner-occupied,,,10014306501.0,Address Matched +244434815852009032115210804210459,"1, The Chenies",,,ME15 6EE,4983549568,C,B,79,83,Flat,End-Terrace,2009-03-20,E07000110,E14000804,Kent,2009-03-21,rental (private),77,82,189,152.0,1.7,31,1.3,45.0,28.0,238.0,215.0,86.0,70.0,53.45,Single,Y,Ground,N,3.0,2107.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,38.0,0.0,From main system,Good,Good,"Suspended, insulated (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Poor,Poor,Low energy lighting in 38% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,unheated corridor,6.96,2.4,0.0,N,natural,"1, The Chenies",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2009-03-21 15:21:08,rental (private),,,10022895737.0,Address Matched +1110696319222014032022121001608004,"61, Newbury Avenue",,,ME16 0RG,59121278,B,B,82,88,Bungalow,Semi-Detached,2014-03-20,E07000110,E14000804,Kent,2014-03-20,FiT application,84,91,92,47.0,1.0,19,0.5,35.0,35.0,347.0,300.0,85.0,58.0,54.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,,natural,"61, Newbury Avenue",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2014-03-20 22:12:10,owner-occupied,21.0,21.0,200003659375.0,Address Matched +1677253939942018110904282362180388,"12, Norman Close",,,ME14 5HR,3942231678,D,B,56,85,House,Semi-Detached,2018-11-08,E07000110,E14000804,Kent,2018-11-09,marketed sale,48,83,316,88.0,5.0,56,1.4,101.0,63.0,708.0,437.0,249.0,71.0,90.0,Single,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,2.0,4.0,4.0,42.0,0.0,"From main system, no cylinder thermostat",Poor,Poor,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 270 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 42% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"12, Norman Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1976-1982,2018-11-09 04:28:23,owner-occupied,,,200003705577.0,Address Matched +1756984680812019112611273591219364,"1b, Sovereigns Way",Marden,,TN12 9QF,3426017678,B,A,84,94,House,Semi-Detached,2019-11-26,E07000110,E14000804,Kent,2019-11-26,new dwelling,86,96,83,16.0,1.5,15,0.3,72.0,72.0,234.0,234.0,100.0,66.0,104.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.10 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.19 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"1b, Sovereigns Way, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,NO DATA!,2019-11-26 11:27:35,unknown,12.0,12.0,10094441662.0,Address Matched +1217634009262019102507512778278571,"18, Chapman Avenue",,,ME15 8EN,7759078278,C,C,70,80,House,Detached,2019-10-23,E07000110,E14000700,Kent,2019-10-25,marketed sale,64,76,195,125.0,4.6,34,3.0,104.0,104.0,744.0,689.0,137.0,83.0,134.0,Unknown,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,6.0,6.0,79.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 79% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"18, Chapman Avenue",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2019-10-25 07:51:27,owner-occupied,,,200003684708.0,Address Matched +901382949922013041016505556508647,"37, Worcester Road",,,ME15 7LU,4552436078,D,B,56,86,House,Semi-Detached,2013-04-10,E07000110,E14000700,Kent,2013-04-10,marketed sale,59,90,269,61.0,3.6,43,0.7,78.0,48.0,764.0,402.0,99.0,62.0,84.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,36.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 36% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"37, Worcester Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2013-04-10 16:50:55,owner-occupied,11.0,4.0,200003712311.0,Address Matched +1392003826632016062406205231278204,"13, Saltwood Road",,,ME15 6UY,2411201478,D,B,63,88,House,Semi-Detached,2016-06-23,E07000110,E14000804,Kent,2016-06-24,marketed sale,58,88,285,69.0,3.3,50,0.8,55.0,55.0,545.0,361.0,181.0,70.0,66.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,78.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Roof room(s), ceiling insulated",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 78% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,2.3,,N,natural,"13, Saltwood Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1976-1982,2016-06-24 06:20:52,owner-occupied,,,200003665357.0,Address Matched +d93eb3578955b58f121817b4e22802a1caa9a1b6e00688aa4ae0a9d33cc526a9,31 Lombardy Drive,,,ME14 5TB,10001478138,C,B,75,88,House,Detached,2021-09-09,E07000110,E14000804,Kent,2021-09-09,ECO assessment,69,84,152,70.0,3.3,27,1.6,88.0,88.0,948.0,564.0,101.0,69.0,121.0,Unknown,Y,,,,,100.0,double glazing installed during or after 2002,Normal,1.0,6.0,5.0,100.0,0.0,"From main system, plus solar",Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,Portable electric heaters (assumed),,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.4,40.0,Y,natural,31 Lombardy Drive,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2021-09-09 13:06:32,Owner-occupied,24.0,,200003673034.0,Energy Assessor +524479189062010080923214788818410,Dairy Farm House,Dairy Lane,Marden,TN12 9SS,1823878768,F,E,33,52,House,Detached,2010-08-09,E07000110,E14000804,Kent,2010-08-09,marketed sale,28,44,343,236.0,23.0,73,16.0,341.0,180.0,3113.0,2233.0,507.0,292.0,332.5,Single,N,NO DATA!,,,2106.0,100.0,secondary glazing,Normal,0.0,10.0,10.0,10.0,1.0,"From main system, no cylinder thermostat",Poor,Very Poor,"Solid, no insulation (assumed)",,,Full secondary glazing,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, oil",Average,Poor,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 10% of fixed outlets,Poor,Poor,oil - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.25,0.0,N,natural,"Dairy Farm House, Dairy Lane, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: before 1900,2010-08-09 23:21:47,owner-occupied,,,200003730563.0,Address Matched +757284252312015102117025591259491,"43, Pennine Way",Downswood,,ME15 8UF,4113216968,D,B,60,86,House,Detached,2015-10-21,E07000110,E14000700,Kent,2015-10-21,ECO assessment,53,84,284,87.0,4.7,50,1.5,103.0,59.0,792.0,481.0,167.0,76.0,94.0,Single,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,1.0,6.0,6.0,27.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, partial insulation (assumed)",Average,Average,,,,"Pitched, 270 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 27% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"43, Pennine Way, Downswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1976-1982,2015-10-21 17:02:55,owner-occupied,,,200003691304.0,Address Matched +1598705018812018010508385896080050,"9, Bowles Road",,,ME17 3FZ,91865578,B,A,85,97,House,Semi-Detached,2018-01-05,E07000110,E14000700,Kent,2018-01-05,new dwelling,88,99,77,-6.0,1.1,13,-0.1,63.0,63.0,181.0,181.0,81.0,49.0,83.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"9, Bowles Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2018-01-05 08:38:58,unknown,7.0,7.0,10093303963.0,Address Matched +732722809642011121611203195499768,"8, Yew Tree Close",,,ME5 8XN,8646004968,C,C,69,72,House,Enclosed Mid-Terrace,2011-12-16,E07000110,E14000700,Kent,2011-12-16,marketed sale,70,74,212,182.0,2.3,41,2.0,46.0,32.0,409.0,363.0,73.0,73.0,56.83,Single,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,1.0,2.0,2.0,57.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, partial insulation (assumed)",Average,Average,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 57% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,2.3,0.0,,natural,"8, Yew Tree Close",Maidstone,Faversham and Mid Kent,CHATHAM,England and Wales: 1976-1982,2011-12-16 11:20:31,owner-occupied,7.0,4.0,200003676784.0,Address Matched +1567596149342017081512422050339158,"26a, Wheeler Street",Headcorn,,TN27 9SJ,4348543578,D,C,59,79,House,Detached,2017-08-15,E07000110,E14000700,Kent,2017-08-15,marketed sale,60,82,272,119.0,3.5,43,1.4,112.0,56.0,644.0,544.0,162.0,72.0,82.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,0.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, wood logs",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"26a, Wheeler Street, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,England and Wales: 1983-1990,2017-08-15 12:42:20,owner-occupied,,,200003701055.0,Address Matched +d95344369febf32a770d64ba40fc34f22b5b7f1470edb3ae4b46e8e0e98962d2,Apartment 52,Sandling Park,Sandling Lane,ME14 2NY,10001602535,D,B,67,81,Flat,Semi-Detached,2021-08-26,E07000110,E14000804,Kent,2021-08-28,marketed sale,69,71,223,211.0,2.2,38,2.1,63.0,63.0,531.0,247.0,176.0,147.0,59.0,Unknown,N,03,Y,,,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,100.0,0.0,"Electric immersion, off-peak",Average,Poor,(another dwelling below),,,Fully double glazed,Good,Good,"System built, as built, insulated (assumed)",Good,Good,,,,"Flat, insulated (assumed)",Good,Good,"Room heaters, electric",Very Poor,Poor,Appliance thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,heated corridor,,2.4,0.0,N,natural,"Apartment 52, Sandling Park, Sandling Lane",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007-2011,2021-08-28 10:08:27,Owner-occupied,9.0,,10014307147.0,Energy Assessor +d954b6f0090e4440720b3d3ac5d2890bd8e89889163acc263523ecf09bd5497c,198 Roseholme,,,ME16 8DZ,10001435104,E,C,51,79,Flat,Mid-Terrace,2021-09-08,E07000110,E14000804,Kent,2021-09-09,rental,56,65,398,320.0,2.5,67,2.0,34.0,38.0,591.0,206.0,294.0,152.0,37.0,Unknown,N,02,Y,,,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,100.0,0.0,"Electric immersion, standard tariff",Very Poor,Poor,(another dwelling below),,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 75 mm loft insulation",Average,Average,"Room heaters, electric",Very Poor,Poor,Appliance thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,no corridor,,2.4,0.0,N,natural,198 Roseholme,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2021-09-09 11:25:25,Rented (social),24.0,,200003666295.0,Energy Assessor +1422793617632016031415400564978207,40 Hubert Walter Drive,,,ME16 0BE,1734223478,B,B,87,87,Flat,NO DATA!,2016-03-11,E07000110,E14000804,Kent,2016-03-14,new dwelling,90,90,61,61.0,0.8,11,0.8,51.0,51.0,172.0,172.0,87.0,87.0,72.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.20 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,40 Hubert Walter Drive,Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2016-03-14 15:40:05,unknown,5.0,5.0,10091196037.0,Address Matched +1681781011032020091615064440978501,21 The Glebe,Yalding,,ME18 6BF,1160561678,B,A,85,97,House,Mid-Terrace,2020-09-16,E07000110,E14000804,Kent,2020-09-16,new dwelling,88,100,74,-10.0,1.1,13,-0.1,70.0,70.0,184.0,184.0,77.0,47.0,81.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.22 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"21 The Glebe, Yalding",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2020-09-16 15:06:44,unknown,10.0,10.0,10094440008.0,Address Matched +595685562612011022217310691290583,Brookside,Chart Sutton,,ME17 3ET,5373214868,G,F,18,25,House,Detached,2011-02-22,E07000110,E14000700,Kent,2011-02-22,non marketed sale,22,27,647,576.0,15.0,98,13.0,190.0,95.0,2221.0,1986.0,249.0,249.0,151.76,dual,N,NO DATA!,,,2401.0,25.0,double glazing installed during or after 2002,Normal,0.0,8.0,5.0,0.0,2.0,"Electric immersion, off-peak",Poor,Poor,"Suspended, no insulation (assumed)",,,Some double glazing,Poor,Poor,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,Portable electric heaters,,,"Pitched, 100 mm loft insulation",Average,Average,Electric storage heaters,Poor,Poor,Manual charge control,Poor,Poor,No low energy lighting,Very Poor,Very Poor,electricity - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.6,0.0,N,natural,"Brookside, Chart Sutton",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1900-1929,2011-02-22 17:31:06,owner-occupied,,,200003723062.0,Address Matched +762086279962012031519165916358192,3 Killicks Cottages,Benover Road,Yalding,ME18 6EW,9111746968,D,D,57,62,House,Mid-Terrace,2012-03-15,E07000110,E14000804,Kent,2012-03-15,marketed sale,58,64,295,254.0,3.6,52,3.0,85.0,43.0,634.0,584.0,118.0,102.0,54.16,dual,Y,NODATA!,,,2106.0,0.0,not defined,Normal,0.0,3.0,3.0,0.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,2.24,0.0,,natural,"3 Killicks Cottages, Benover Road, Yalding",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2012-03-15 19:16:59,owner-occupied,9.0,0.0,200003660520.0,Address Matched +1191955048552014081815230298940724,"21, Holmesdale Close",Loose,,ME15 0BQ,7421886278,B,A,85,96,House,Mid-Terrace,2014-08-18,E07000110,E14000804,Kent,2014-08-18,new dwelling,88,98,75,4.0,1.3,13,0.1,62.0,62.0,229.0,229.0,85.0,51.0,97.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.12 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.22 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"21, Holmesdale Close, Loose",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2014-08-18 15:23:02,owner-occupied,15.0,15.0,10014315589.0,Address Matched +1484216259042016093016374746767208,"28, Woodbridge Drive",,,ME15 6FU,2088657478,D,B,66,89,House,Mid-Terrace,2016-09-30,E07000110,E14000804,Kent,2016-09-30,marketed sale,64,89,267,63.0,2.6,47,0.7,56.0,39.0,407.0,336.0,170.0,66.0,55.0,Unknown,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,4.0,4.0,57.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 57% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,2.31,,N,natural,"28, Woodbridge Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2016-09-30 16:37:47,owner-occupied,,,200003665988.0,Address Matched +1677285371812019100909574493089662,Flat 1,Kent House,Romney Place,ME15 6LA,6265131678,E,E,52,52,Flat,Detached,2018-11-09,E07000110,E14000804,Kent,2019-10-09,non marketed sale,57,57,384,384.0,2.5,65,2.5,33.0,33.0,585.0,585.0,241.0,241.0,39.0,standard tariff,,ground floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,"Electric immersion, standard tariff",Very Poor,Poor,Average thermal transmittance 0.33 W/m-¦K,Average,Average,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.34 W/m-¦K,Good,Good,,,,(other premises above),,,Electric underfloor heating,Very Poor,Poor,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"Flat 1, Kent House, Romney Place",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2019-10-09 09:57:44,unknown,21.0,21.0,10094442243.0,Address Matched +941085815732013053019273853778904,2 Hillside,Maidstone Road,Headcorn,TN27 9RP,1423919078,D,C,64,79,House,Semi-Detached,2013-05-30,E07000110,E14000700,Kent,2013-05-30,marketed sale,62,77,200,108.0,3.8,38,2.1,99.0,53.0,616.0,563.0,111.0,74.0,99.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,3.0,7.0,5.0,13.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 13% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"2 Hillside, Maidstone Road, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,England and Wales: 1900-1929,2013-05-30 19:27:38,owner-occupied,15.0,2.0,200003698240.0,Address Matched +1003863499062013090906540053268417,"42, Pennine Way",Downswood,,ME15 8UG,1551953178,D,B,61,86,House,Detached,2013-09-06,E07000110,E14000700,Kent,2013-09-09,marketed sale,57,86,220,60.0,4.7,42,1.3,108.0,60.0,751.0,434.0,163.0,82.0,111.0,Unknown,Y,NODATA!,,,2104.0,0.0,not defined,Normal,0.0,6.0,6.0,17.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 17% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"42, Pennine Way, Downswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1976-1982,2013-09-09 06:54:00,owner-occupied,12.0,2.0,200003691333.0,Address Matched +1081539719702014013114103113947998,Flat 2,4 Mill Street,,ME15 6XH,2721019178,E,E,53,53,Flat,Mid-Terrace,2014-01-31,E07000110,E14000804,Kent,2014-01-31,new dwelling,57,57,356,356.0,3.0,63,3.0,31.0,31.0,568.0,568.0,203.0,203.0,47.0,standard tariff,,ground floor,,,,,NO DATA!,NO DATA!,,,,,0.0,"Electric immersion, standard tariff",Very Poor,Very Poor,Average thermal transmittance 0.29 W/m?K,Good,Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.26 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.17 W/m?K,Good,Good,"Room heaters, electric",Very Poor,Very Poor,Programmer and appliance thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"Flat 2, 4 Mill Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2014-01-31 14:10:31,NO DATA!,15.0,15.0,10014315959.0,Address Matched +1056295562732013120517284640078398,"7, Grovelands",Old Ashford Road,,ME17 2QR,6820337178,C,C,71,77,Maisonette,Mid-Terrace,2013-12-05,E07000110,E14000700,Kent,2013-12-05,marketed sale,70,78,159,117.0,3.0,30,2.2,115.0,61.0,431.0,370.0,167.0,121.0,99.0,Single,Y,1st,Y,,2107.0,100.0,double glazing installed before 2002,Normal,1.0,5.0,5.0,10.0,0.0,From main system,Average,Average,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, mains gas",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 10% of fixed outlets,Poor,Poor,mains gas (not community),0.0,no corridor,,,0.0,,natural,"7, Grovelands, Old Ashford Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1991-1995,2013-12-05 17:28:46,owner-occupied,10.0,1.0,200003715464.0,Address Matched +342199190642009081316100468519678,"58, Beverley Road",,,ME16 9JR,7641295668,C,C,74,75,House,Semi-Detached,2009-08-13,E07000110,E14000804,Kent,2009-08-13,marketed sale,71,71,197,195.0,3.0,33,2.9,55.0,46.0,446.0,448.0,97.0,97.0,90.49,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,6.0,6.0,80.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.35,0.0,N,natural,"58, Beverley Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2009-08-13 16:10:04,owner-occupied,,,200003665784.0,Address Matched +1763228859742019110619423168710258,Flat 4,9 Sittingbourne Road,,ME14 5ET,1765557678,C,C,72,80,Flat,Semi-Detached,2019-11-05,E07000110,E14000804,Kent,2019-11-06,rental (private),72,83,233,143.0,1.7,41,1.0,35.0,35.0,266.0,150.0,102.0,102.0,42.0,Unknown,Y,1st,N,,2307.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,100.0,0.0,Community scheme,Good,Good,(another dwelling below),NO DATA!,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,(another dwelling above),,,Community scheme,Good,Good,"Flat rate charging, TRVs",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (community),0.0,heated corridor,,,,N,natural,"Flat 4, 9 Sittingbourne Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2019-11-06 19:42:31,rental (private),,,10094444663.0,Address Matched +765279119812012032722430396220597,"11, Havant Walk",,,ME15 8UH,5727966968,C,C,69,72,House,End-Terrace,2012-03-27,E07000110,E14000700,Kent,2012-03-27,rental (social),69,72,191,171.0,2.8,37,2.5,68.0,43.0,413.0,394.0,139.0,127.0,76.8,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,40.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 40% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,2.35,0.0,,natural,"11, Havant Walk",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2012-03-27 22:43:03,rental (social),10.0,4.0,200003723406.0,Address Matched +945231002312013060710414594070803,"62, Perryfield Street",,,ME14 2SX,8386249078,E,B,54,81,House,End-Terrace,2013-06-07,E07000110,E14000804,Kent,2013-06-07,marketed sale,50,80,299,101.0,4.1,58,1.4,41.0,41.0,737.0,462.0,66.0,62.0,70.0,Unknown,Y,NODATA!,,,2602.0,100.0,double glazing installed before 2002,Normal,0.0,2.0,2.0,100.0,0.0,Gas multipoint,Average,Average,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, mains gas",Average,Average,Appliance thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"62, Perryfield Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2013-06-07 10:41:45,owner-occupied,8.0,8.0,200003669706.0,Address Matched +1326889031352015052917483594250937,"66, Heath Road",,,ME16 9JU,9734146378,E,C,51,78,Bungalow,Detached,2015-05-29,E07000110,E14000804,Kent,2015-05-29,marketed sale,42,72,328,137.0,7.1,58,3.0,108.0,69.0,1263.0,770.0,160.0,78.0,123.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,1.0,8.0,8.0,44.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 270 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 44% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"66, Heath Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2015-05-29 17:48:35,owner-occupied,,,200003667059.0,Address Matched +934021069002013061817021205879688,"14, Barham Close",,,ME15 9JY,3089468078,D,B,62,90,Bungalow,Semi-Detached,2013-06-18,E07000110,E14000700,Kent,2013-06-18,none of the above,61,93,265,29.0,2.7,51,0.3,32.0,32.0,440.0,296.0,132.0,60.0,52.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,100.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Average,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"14, Barham Close",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2013-06-18 17:02:12,owner-occupied,6.0,6.0,200003682395.0,Address Matched +606342299102016010919112189460868,"12, Yeoman Way",Bearsted,,ME15 8PQ,3120194868,D,B,67,82,Bungalow,Detached,2016-01-06,E07000110,E14000700,Kent,2016-01-09,marketed sale,64,80,204,103.0,4.1,36,2.1,131.0,69.0,781.0,649.0,115.0,77.0,116.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,2.0,3.0,3.0,10.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,"Pitched, 270 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 10% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"12, Yeoman Way, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2016-01-09 19:11:21,owner-occupied,,,200003690959.0,Address Matched +611134439702011033014354185597108,2 Cross Keys Cottage,The Street,Bearsted,ME14 4HH,2792135868,E,E,44,44,House,Mid-Terrace,2011-03-30,E07000110,E14000700,Kent,2011-03-30,marketed sale,49,49,377,377.0,7.0,52,7.0,87.0,87.0,1440.0,1440.0,129.0,129.0,133.8,Single,Y,NO DATA!,,,2106.0,0.0,not defined,Normal,1.0,6.0,6.0,80.0,1.0,From main system,Very Good,Very Good,"Suspended, no insulation (assumed)",,,Single glazed,Very Poor,Very Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.73,0.0,N,natural,"2 Cross Keys Cottage, The Street, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2011-03-30 14:35:41,owner-occupied,,,200003727217.0,Address Matched +991038569902013081509181813279758,Flat 11 Bolingbroke House,"21, London Road",,ME16 8JE,9913262178,D,D,58,68,Flat,Semi-Detached,2013-08-15,E07000110,E14000804,Kent,2013-08-15,marketed sale,56,68,290,210.0,3.1,56,2.3,67.0,35.0,555.0,459.0,93.0,56.0,56.0,Unknown,Y,2nd,Y,,2106.0,0.0,not defined,Normal,0.0,3.0,3.0,7.0,0.0,From main system,Good,Good,(other premises below),,,Single glazed,Very Poor,Very Poor,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 7% of fixed outlets,Very Poor,Very Poor,mains gas (not community),0.0,unheated corridor,5.8,,0.0,,natural,"Flat 11 Bolingbroke House, 21, London Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2013-08-15 09:18:18,owner-occupied,14.0,1.0,200003668768.0,Address Matched +1744477708152020090416075221000961,Flat 5,"28, Challenger Way",Marden,TN12 9GN,9131816678,B,B,85,85,Flat,Semi-Detached,2020-09-04,E07000110,E14000804,Kent,2020-09-04,new dwelling,91,91,64,64.0,0.7,11,0.7,58.0,58.0,144.0,144.0,64.0,64.0,59.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.28 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Flat 5, 28, Challenger Way, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,NO DATA!,2020-09-04 16:07:52,unknown,10.0,10.0,10094439890.0,Address Matched +95474799222011022209285786728399,Raylands,Pleasant Valley Lane,East Farleigh,ME15 0BB,9832996468,D,D,61,66,Bungalow,Semi-Detached,2011-02-22,E07000110,E14000804,Kent,2011-02-22,marketed sale,65,68,237,212.0,5.6,34,5.0,180.0,90.0,1032.0,969.0,144.0,144.0,152.8,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,6.0,6.0,0.0,1.0,From main system,Very Good,Very Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,"Room heaters, wood logs",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.31,0.0,N,natural,"Raylands, Pleasant Valley Lane, East Farleigh",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2011-02-22 09:28:57,owner-occupied,,,200003725574.0,Address Matched +321188034812009070815232404010667,"1, Crompton Gardens",,,ME15 7HD,6787444668,D,C,67,73,Bungalow,Detached,2009-07-08,E07000110,E14000804,Kent,2009-07-08,rental (private),63,69,277,230.0,3.1,46,2.5,71.0,36.0,431.0,388.0,116.0,101.0,66.38,Single,Y,NO DATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,0.0,0.0,From main system,Good,Good,"Solid, limited insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, mains gas",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Poor,Poor,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.44,0.0,N,natural,"1, Crompton Gardens",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2009-07-08 15:23:24,rental (private),,,200003696970.0,Address Matched +1782674245112020020615293529000961,Yew Tree House,George Street,Staplehurst,TN12 0RB,9169598678,F,D,24,68,House,Detached,2020-02-06,E07000110,E14000804,Kent,2020-02-06,marketed sale,25,60,359,116.0,12.0,86,4.8,129.0,88.0,1728.0,1188.0,181.0,88.0,138.0,Single,N,NODATA!,,,2104.0,0.0,not defined,Normal,2.0,8.0,8.0,50.0,0.0,From main system,Poor,Poor,"Suspended, no insulation (assumed)",NO DATA!,,Single glazed,Very Poor,Very Poor,"Timber frame, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, oil",Poor,Average,Programmer and room thermostat,Average,Average,Low energy lighting in 50% of fixed outlets,Good,Good,oil (not community),0.0,NO DATA!,,,,N,natural,"Yew Tree House, George Street, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: before 1900,2020-02-06 15:29:35,owner-occupied,,,200003679436.0,Address Matched +17668849652020070818455625000645,"11, Woodlands",Coxheath,,ME17 4EE,6584952468,D,C,62,76,House,Semi-Detached,2020-07-08,E07000110,E14000804,Kent,2020-07-08,marketed sale,56,71,280,173.0,4.0,49,2.5,65.0,65.0,657.0,630.0,139.0,83.0,80.0,Unknown,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"11, Woodlands, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2020-07-08 18:45:56,owner-occupied,,,200003672799.0,Address Matched +179885040222008110322372773238328,Flat 9,"35, Tonbridge Road",,ME16 8SA,2787473568,C,C,79,80,Flat,Detached,2008-10-27,E07000110,E14000804,Kent,2008-11-03,rental (private),75,76,313,306.0,1.3,52,1.3,20.0,11.0,174.0,176.0,20.0,20.0,24.6,Unknown,Y,Ground,N,4.0,2305.0,100.0,"double glazing, unknown install date",Normal,0.0,1.0,1.0,17.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, electric",,,(another dwelling above),,,Community scheme,Good,Good,"Flat rate charging, programmer and TRVs",Average,Average,Low energy lighting in 17% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,heated corridor,,2.4,0.0,N,natural,"Flat 9, 35, Tonbridge Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2008-11-03 22:37:27,rental (private),,,200003669198.0,Address Matched +192760857252009051913434809289958,"6, Copperfield Drive",Langley,,ME17 1SX,9885794568,C,C,74,75,House,End-Terrace,2008-11-24,E07000110,E14000700,Kent,2009-05-19,rental (social),71,72,211,205.0,2.6,35,2.5,59.0,35.0,333.0,337.0,114.0,114.0,73.52,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,30.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 30% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.31,0.0,N,natural,"6, Copperfield Drive, Langley",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2009-05-19 13:43:48,rental (social),,,200003697354.0,Address Matched +1765785349922019111415503107148871,"7, Dawkins Drive",Staplehurst,,TN12 0FZ,7010477678,B,A,84,96,House,Semi-Detached,2019-11-14,E07000110,E14000804,Kent,2019-11-14,new dwelling,87,99,80,-6.0,1.1,14,0.0,63.0,63.0,191.0,191.0,72.0,43.0,80.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.14 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.27 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"7, Dawkins Drive, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,NO DATA!,2019-11-14 15:50:31,unknown,12.0,12.0,10094442048.0,Address Matched +371603390302009092812320960712168,7 Hayle Mill,Hayle Mill Road,,ME15 6JW,1378997668,B,B,81,83,House,End-Terrace,2009-09-26,E07000110,E14000804,Kent,2009-09-28,rental (private),80,81,159,149.0,1.5,26,1.5,61.0,32.0,241.0,246.0,78.0,78.0,59.0,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,8.0,0.0,From main system,Very Good,Very Good,"Solid, insulated (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Roof room(s), insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 8% of fixed outlets,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.24,0.0,N,natural,"7 Hayle Mill, Hayle Mill Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2009-09-28 12:32:09,rental (private),,,10022896928.0,Address Matched +517970223032010072413222130268803,"1, Springwood Close",,,ME16 9PA,2360828768,D,C,60,75,House,End-Terrace,2010-07-24,E07000110,E14000804,Kent,2010-07-24,rental (private),54,72,335,208.0,4.0,56,2.5,68.0,38.0,517.0,388.0,212.0,112.0,71.4,Single,Y,NO DATA!,,,2107.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,20.0,0.0,"From main system, no cylinder thermostat",Poor,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Average,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 20% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.3,0.0,N,natural,"1, Springwood Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2010-07-24 13:22:21,rental (private),,,200003726612.0,Address Matched +d9d5ea77a4c7e0b73555a9fb164a5f5d65835927e255b29dc0063fc94ddb6c8e,9 Aden Terrace,Invicta Park,,ME14 2NR,10001584337,D,B,68,85,House,Enclosed End-Terrace,2021-08-24,E07000110,E14000804,Kent,2021-08-24,Stock condition survey,64,83,206,85.0,3.6,36,1.5,85.0,85.0,599.0,450.0,97.0,69.0,98.0,dual,Y,,,,,100.0,double glazing installed during or after 2002,Normal,0.0,6.0,6.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Average,Average,,,,"Flat, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.25,0.0,N,natural,"9 Aden Terrace, Invicta Park",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2021-08-24 15:34:47,Rented (social),15.0,,200003723949.0,Energy Assessor +d9d5e82255b994512fe854c0f9168f71a21258222e1838239c417cd206c2979f,26 Fauchons Lane,Bearsted,,ME14 4AH,10001445628,C,C,71,80,House,Semi-Detached,2021-08-25,E07000110,E14000700,Kent,2021-08-26,non marketed sale,60,70,168,112.0,5.7,35,4.1,115.0,115.0,827.0,778.0,139.0,85.0,162.0,Unknown,Y,,,,,100.0,double glazing installed during or after 2002,Normal,2.0,9.0,9.0,85.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Average,Average,"Room heaters, coal",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 85% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.32,0.0,N,natural,"26 Fauchons Lane, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2021-08-26 06:01:43,Owner-occupied,13.0,,200003687243.0,Energy Assessor +1423113362952016051217015092960947,18 Hubert Walter Drive,,,ME16 0BE,9793223478,B,B,87,87,Flat,NO DATA!,2016-05-12,E07000110,E14000804,Kent,2016-05-12,new dwelling,91,91,56,56.0,0.7,10,0.7,55.0,55.0,151.0,151.0,89.0,89.0,76.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.20 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,18 Hubert Walter Drive,Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2016-05-12 17:01:50,unknown,5.0,5.0,10091196015.0,Address Matched +1582288652802020021116182057409798,1 Blue House Cottages,Battle Lane,Marden,TN12 9AN,7871154578,E,B,42,86,House,Semi-Detached,2020-02-11,E07000110,E14000804,Kent,2020-02-11,marketed sale,35,81,297,48.0,7.7,72,1.8,86.0,87.0,996.0,338.0,241.0,85.0,108.0,dual,N,NODATA!,,,2106.0,50.0,double glazing installed before 2002,Normal,1.0,4.0,4.0,100.0,0.0,"Electric immersion, off-peak",Average,Poor,"Solid, no insulation (assumed)",NO DATA!,,Partial double glazing,Poor,Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, oil",Poor,Poor,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,oil (not community),0.0,NO DATA!,,,,N,natural,"1 Blue House Cottages, Battle Lane, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: before 1900,2020-02-11 16:18:20,owner-occupied,,,200003662864.0,Address Matched +1058095192732013121110295258978394,Flat 4 Bredhurst House,Parsley Way,,ME16 0FW,9488347178,C,B,79,81,Flat,End-Terrace,2013-12-11,E07000110,E14000804,Kent,2013-12-11,marketed sale,83,85,109,97.0,1.2,21,1.1,83.0,41.0,221.0,226.0,76.0,76.0,60.0,Single,Y,1st,N,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,0.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,heated corridor,,,0.0,,natural,"Flat 4 Bredhurst House, Parsley Way",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2013-12-11 10:29:52,owner-occupied,8.0,0.0,10022901788.0,Address Matched +90832874452012022711202694220940,"3, Beaulieu Walk",,,ME16 0TL,9028446468,D,C,63,72,House,Mid-Terrace,2012-02-27,E07000110,E14000804,Kent,2012-02-27,marketed sale,60,72,238,169.0,3.9,46,2.8,76.0,47.0,635.0,473.0,97.0,86.0,85.4,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,38.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, partial insulation (assumed)",Average,Average,,,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 38% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,2.361,0.0,,natural,"3, Beaulieu Walk",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1976-1982,2012-02-27 11:20:26,owner-occupied,8.0,3.0,200003720906.0,Address Matched +364090279922019091723330847538221,"48, Cornhill Place",,,ME15 6GX,2482747668,B,B,83,83,Flat,Mid-Terrace,2019-09-17,E07000110,E14000804,Kent,2019-09-17,rental (private),87,87,92,92.0,1.0,16,1.0,55.0,55.0,145.0,145.0,110.0,110.0,63.0,Unknown,Y,1st,N,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,(another dwelling below),NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,heated corridor,,,,N,natural,"48, Cornhill Place",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2019-09-17 23:33:08,rental (private),,,10022895053.0,Address Matched +438019639962011031123580122198169,Flat 7 Manor Fields,Suffolk Road,,ME15 7GB,6291362768,B,B,83,83,Maisonette,NO DATA!,2011-03-11,E07000110,E14000700,Kent,2011-03-11,rental (private),82,82,135,135.0,1.6,22,1.6,43.0,43.0,274.0,274.0,96.0,96.0,71.936,Single,Y,Ground,N,2.0,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,From main system,Very Good,Very Good,"Suspended, insulated (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.42,0.0,N,natural,"Flat 7 Manor Fields, Suffolk Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2003-2006,2011-03-11 23:58:01,rental (private),,,10022901530.0,Address Matched +1632201179922018051620401088868138,"15, Mangravet Avenue",,,ME15 9BQ,3824708578,E,B,48,85,House,Semi-Detached,2018-05-16,E07000110,E14000700,Kent,2018-05-16,marketed sale,44,82,370,98.0,5.6,65,1.5,103.0,59.0,974.0,461.0,177.0,71.0,86.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,1.0,5.0,4.0,25.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,Portable electric heaters (assumed),,,"Pitched, 270 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 25% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,,N,natural,"15, Mangravet Avenue",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2018-05-16 20:40:10,owner-occupied,,,200003713836.0,Address Matched +1736988369342019071707320665519658,"2, Devon Road",,,ME15 7EN,4394365678,C,B,71,85,House,Semi-Detached,2019-07-15,E07000110,E14000700,Kent,2019-07-17,marketed sale,68,82,192,96.0,3.1,34,1.6,79.0,79.0,521.0,456.0,101.0,72.0,91.0,Unknown,Y,NODATA!,,,2107.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,82.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 82% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"2, Devon Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2019-07-17 07:32:06,owner-occupied,,,200003715566.0,Address Matched +1018486159022013100716514094778627,"25, Snowdon Avenue",,,ME14 5NW,2913564178,C,B,69,87,House,Mid-Terrace,2013-10-03,E07000110,E14000804,Kent,2013-10-07,none of the above,68,87,172,57.0,3.2,33,1.1,60.0,60.0,545.0,384.0,130.0,88.0,97.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,90.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 90% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"25, Snowdon Avenue",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2013-10-07 16:51:40,owner-occupied,10.0,9.0,200003705773.0,Address Matched +da2f3322c2a3fb1b8afa34f64c146955cf0b4d85dd2395a646522dc9c7960d10,58 SUTTON ROAD,,,ME15 9AL,10001517661,C,B,74,84,House,Detached,2021-07-27,E07000110,E14000700,Kent,2021-07-27,marketed sale,70,80,161,99.0,3.7,28,2.3,102.0,102.0,627.0,560.0,85.0,85.0,131.0,dual,Y,,,,,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.59,0.0,N,natural,58 SUTTON ROAD,Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2021-07-27 19:42:10,Owner-occupied,13.0,,200003713449.0,Energy Assessor +1824491702022020090917193402418560,"13, Reculver Walk",,,ME15 8QE,6094002778,C,B,72,86,House,Mid-Terrace,2020-09-09,E07000110,E14000700,Kent,2020-09-09,none of the above,70,84,188,85.0,2.9,33,1.4,75.0,75.0,434.0,420.0,167.0,81.0,88.0,dual (24 hour),Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,92.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, 350 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 92% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"13, Reculver Walk",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2020-09-09 17:19:34,owner-occupied,,,200003725749.0,Address Matched +1556336206332017063010222248278605,"31, Heath Grove",,,ME16 9AS,508662578,D,B,62,89,House,Semi-Detached,2017-06-28,E07000110,E14000804,Kent,2017-06-30,rental (private),58,88,278,56.0,3.1,49,0.7,90.0,45.0,469.0,327.0,173.0,68.0,64.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,0.0,0.0,From main system,Average,Average,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"31, Heath Grove",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1991-1995,2017-06-30 10:22:22,rental (private),,,200003688708.0,Address Matched +184885039252008111215421909989759,Michael House,Charlton Lane,West Farleigh,ME15 0NU,7921993568,E,D,48,62,House,Detached,2008-11-12,E07000110,E14000804,Kent,2008-11-12,rental (private),46,58,310,234.0,6.7,59,4.9,113.0,56.0,767.0,594.0,199.0,154.0,113.98,dual,N,NO DATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,6.0,6.0,0.0,1.0,From main system,Average,Average,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, wood logs",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, oil",Average,Average,Programmer and room thermostat,Poor,Poor,No low energy lighting,Very Poor,Very Poor,oil - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.43,0.0,N,natural,"Michael House, Charlton Lane, West Farleigh",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2008-11-12 15:42:19,rental (private),,,200003721435.0,Address Matched +597279146452012112617395492929284,"3, Norfolk Road",,,ME15 7JD,2403624868,C,C,70,73,Flat,Enclosed End-Terrace,2012-11-15,E07000110,E14000700,Kent,2012-11-26,rental (social),71,74,177,157.0,2.3,34,2.0,53.0,41.0,406.0,368.0,81.0,82.0,68.0,Single,Y,Ground,N,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,71.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"System built, as built, no insulation (assumed)",Very Poor,Very Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 71% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,no corridor,,,0.0,,natural,"3, Norfolk Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2012-11-26 17:39:54,rental (social),7.0,5.0,200003712055.0,Address Matched +1581747720332017101222515718978899,"283, Willington Street",,,ME15 8AL,2978844578,D,B,62,86,House,Semi-Detached,2017-10-12,E07000110,E14000700,Kent,2017-10-12,marketed sale,56,85,290,82.0,3.7,51,1.1,61.0,61.0,633.0,395.0,155.0,71.0,73.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,78.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 270 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 78% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"283, Willington Street",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2017-10-12 22:51:57,owner-occupied,,,200003684374.0,Address Matched +1681946354352020072409095426200660,16 Kintons Walk,Yalding,,ME18 6FF,6053461678,B,A,84,96,House,Semi-Detached,2020-07-24,E07000110,E14000804,Kent,2020-07-24,new dwelling,87,98,82,2.0,1.2,14,0.1,73.0,73.0,215.0,215.0,79.0,48.0,86.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.22 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"16 Kintons Walk, Yalding",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2020-07-24 09:09:54,unknown,10.0,10.0,10094439997.0,Address Matched +553357909062016080811082090548836,Mount Castle Farm House,Mount Castle Lane,Lenham Heath,ME17 2JE,3924080868,D,C,59,74,House,Detached,2016-08-04,E07000110,E14000700,Kent,2016-08-08,marketed sale,57,73,158,95.0,12.0,34,7.3,160.0,162.0,2041.0,1434.0,162.0,82.0,352.0,Single,N,NODATA!,,,2106.0,50.0,double glazing installed during or after 2002,Normal,1.0,9.0,9.0,75.0,2.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Partial double glazing,Poor,Poor,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, wood logs",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, oil",Average,Average,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,oil (not community),0.0,NO DATA!,,2.3,,N,natural,"Mount Castle Farm House, Mount Castle Lane, Lenham Heath",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1900-1929,2016-08-08 11:08:20,owner-occupied,,,200003713957.0,Address Matched +1825743281032020091415165233978806,Lake View,Grange Lane,Sandling,ME14 3DB,8673802778,C,A,79,93,House,Detached,2020-09-14,E07000110,E14000700,Kent,2020-09-14,new dwelling,81,94,135,20.0,1.4,24,0.2,57.0,57.0,257.0,257.0,71.0,43.0,60.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.28 W/m+é-¦K,Good,Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.19 W/m+é-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.15 W/m+é-¦K,Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Lake View, Grange Lane, Sandling",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2020-09-14 15:16:52,unknown,15.0,15.0,10095448442.0,Address Matched +1730390259922019061913015345818091,Flat 11 Block B,Maybourne Place,Staplehurst,TN12 0GP,9422515678,B,B,83,83,Flat,Detached,2019-06-19,E07000110,E14000804,Kent,2019-06-19,new dwelling,89,89,90,90.0,0.7,16,0.7,40.0,40.0,145.0,145.0,56.0,56.0,43.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.26 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Flat 11 Block B, Maybourne Place, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,NO DATA!,2019-06-19 13:01:53,unknown,7.0,7.0,10094442126.0,Address Matched +397798920922009111714012869938921,"24, Oxford Gardens",,,ME15 8FJ,2678289668,C,C,74,74,House,Mid-Terrace,2009-11-17,E07000110,E14000700,Kent,2009-11-17,new dwelling,82,82,141,141.0,1.7,21,1.7,48.0,48.0,231.0,231.0,166.0,166.0,79.49,standard tariff,,NO DATA!,,,2207.0,,NO DATA!,NO DATA!,,,,4.0,0.0,From main system,Poor,Good,Average thermal transmittance 0.18 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.28 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.12 W/m?K,Very Good,Very Good,"Air source heat pump, radiators, electric",Poor,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",0.0,NO DATA!,,2.4,,,NO DATA!,"24, Oxford Gardens",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2009-11-17 14:01:28,,5.0,4.0,10014308963.0,Address Matched +1594435346252017120516291993039553,The Annex,Coombe Bank,"Old Tree Lane, Boughton Monchelsea",ME17 4NG,5314635578,E,A,47,95,Bungalow,Detached,2017-12-04,E07000110,E14000700,Kent,2017-12-05,marketed sale,40,82,280,0.0,5.9,71,1.4,116.0,66.0,614.0,452.0,163.0,133.0,82.0,dual,N,NODATA!,,,2107.0,100.0,double glazing installed before 2002,Normal,2.0,2.0,2.0,24.0,0.0,From main system,Average,Average,"Suspended, limited insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, insulated (assumed)",Good,Good,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, oil",Average,Average,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 24% of fixed outlets,Poor,Poor,oil (not community),0.0,NO DATA!,,,,N,natural,"The Annex, Coombe Bank, Old Tree Lane, Boughton Monchelsea",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1996-2002,2017-12-05 16:29:19,owner-occupied,,,200003709840.0,Address Matched +da615fad829d65be6839bdd5b7f9e8fa55ba047f99d740134970d960bfe298f3,Nursery House,Dunn Street,Bredhurst,ME7 3ND,10001681268,B,A,86,102,House,Detached,2021-08-31,E07000110,E14000700,Kent,2021-08-31,new dwelling,87,102,63,-20.0,2.2,11,-0.7,114.0,114.0,541.0,541.0,145.0,145.0,203.0,standard tariff,,,N,,,100.0,,,,,,100.0,0.0,From main system,Good,Very Good,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.21 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,"Air source heat pump, underfloor, electric",Average,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",0.0,,,2.55,,,,"Nursery House, Dunn Street, Bredhurst",Maidstone,Faversham and Mid Kent,GILLINGHAM,2020,2021-08-31 19:02:10,Owner-occupied,22.0,,10095448573.0,Energy Assessor +689512699442011101711005198099248,"152, Upper Fant Road",,,ME16 8DJ,442890968,F,E,23,44,House,Semi-Detached,2011-10-14,E07000110,E14000804,Kent,2011-10-17,marketed sale,35,52,456,302.0,7.4,81,4.9,81.0,48.0,1713.0,1146.0,72.0,72.0,91.2,Single,Y,NODATA!,,,2602.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,30.0,0.0,Gas multipoint,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 25 mm loft insulation",Poor,Poor,"Room heaters, electric",Very Poor,Very Poor,Appliance thermostats,Good,Good,Low energy lighting in 30% of fixed outlets,Average,Average,electricity (not community),0.0,NO DATA!,,2.6,0.0,,natural,"152, Upper Fant Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2011-10-17 11:00:51,owner-occupied,10.0,3.0,200003656309.0,Address Matched +1534516034332017040716423818078203,"11, Berwyn Grove",,,ME15 9RD,3358211578,E,C,48,75,House,Semi-Detached,2017-04-07,E07000110,E14000804,Kent,2017-04-07,marketed sale,42,69,365,165.0,6.0,67,2.8,113.0,59.0,1066.0,724.0,141.0,83.0,90.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,1.0,6.0,6.0,8.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 8% of fixed outlets,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"11, Berwyn Grove",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2017-04-07 16:42:38,owner-occupied,,,200003674986.0,Address Matched +1747481219222019083107265506418731,"14, Micawber Close",,,ME5 9JZ,3030146678,D,B,62,87,House,End-Terrace,2019-08-29,E07000110,E14000700,Kent,2019-08-31,marketed sale,58,87,303,74.0,3.0,53,0.8,56.0,56.0,535.0,354.0,93.0,44.0,57.0,Unknown,Y,NODATA!,,,2107.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,78.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, partial insulation (assumed)",Average,Average,,,,"Pitched, limited insulation (assumed)",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 78% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"14, Micawber Close",Maidstone,Faversham and Mid Kent,CHATHAM,England and Wales: 1976-1982,2019-08-31 07:26:55,owner-occupied,,,200003708562.0,Address Matched +287527825412009052000190901210161,Flat 42 Pevensey Court,St. Peters Street,,ME16 0GQ,1104512668,B,B,81,81,Flat,Mid-Terrace,2009-05-20,E07000110,E14000804,Kent,2009-05-20,rental (social),77,77,198,196.0,1.8,30,1.8,47.0,35.0,125.0,127.0,124.0,124.0,61.6,dual,N,2nd,N,4.0,2402.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,66.0,0.0,"Electric immersion, off-peak",Poor,Poor,(other premises below),,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,(another dwelling above),,,Electric storage heaters,Poor,Very Poor,Automatic charge control,Average,Average,Low energy lighting in 66% of fixed outlets,Good,Good,electricity - this is for backwards compatibility only and should not be used,0.0,unheated corridor,4.4,2.4,0.0,N,natural,"Flat 42 Pevensey Court, St. Peters Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2009-05-20 00:19:09,rental (social),,,10022893639.0,Address Matched +597414747732013040217051345268409,"23, Titchfield Close",,,ME15 8TA,4975424868,C,C,77,78,Flat,Enclosed End-Terrace,2013-03-27,E07000110,E14000700,Kent,2013-04-02,rental (social),81,82,137,128.0,1.3,26,1.2,53.0,30.0,237.0,240.0,74.0,74.0,48.0,Single,Y,2nd,Y,,2106.0,100.0,double glazing installed during or after 2002,More Than Typical,0.0,2.0,2.0,25.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Good,Good,"System built, with internal insulation",Good,Good,,,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 25% of fixed outlets,Average,Average,mains gas (not community),0.0,no corridor,,,0.0,,natural,"23, Titchfield Close",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2013-04-02 17:05:13,rental (social),8.0,2.0,200003727381.0,Address Matched +358910891132009090717031421068804,"44, Pope Street",,,ME16 8LQ,9451807668,D,C,60,75,House,Mid-Terrace,2009-09-07,E07000110,E14000804,Kent,2009-09-07,marketed sale,54,72,360,219.0,3.7,60,2.3,47.0,34.0,458.0,340.0,204.0,108.0,61.382,dual,Y,NO DATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,1.0,3.0,3.0,60.0,0.0,"From main system, no cylinderstat",Poor,Average,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Average,Good,Programmer and room thermostat,Poor,Poor,Low energy lighting in 60% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.44,0.0,N,natural,"44, Pope Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2009-09-07 17:03:14,owner-occupied,,,200003655834.0,Address Matched +675020429062011090714563929768349,"173, Ashford Road",Bearsted,,ME14 4NE,4284299868,D,C,68,73,House,Detached,2011-09-06,E07000110,E14000700,Kent,2011-09-07,marketed sale,62,69,170,140.0,9.2,33,7.6,174.0,87.0,1303.0,1152.0,275.0,215.0,128.95,Unknown,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,9.0,9.0,0.0,1.0,"From main system, no cylinderstat",Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Roof room(s), insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,2.4,0.0,,natural,"173, Ashford Road, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2011-09-07 14:56:39,owner-occupied,27.0,0.0,200003692493.0,Address Matched +1628502379142018050216104858780028,Flat 6 Admiral Court,"55-59, Wallis Avenue",,ME15 9HS,4166977578,B,B,86,86,Flat,Detached,2018-05-02,E07000110,E14000700,Kent,2018-05-02,new dwelling,89,89,71,71.0,1.0,12,1.0,54.0,54.0,151.0,151.0,101.0,101.0,80.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.19 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Flat 6 Admiral Court, 55-59, Wallis Avenue",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2018-05-02 16:10:48,unknown,10.0,10.0,10093304776.0,Address Matched +1540834559442017050811313755130288,"35, Old Tovil Road",,,ME15 6PR,4435551578,E,C,44,80,House,Mid-Terrace,2017-05-08,E07000110,E14000804,Kent,2017-05-08,marketed sale,40,75,401,140.0,6.2,71,2.2,58.0,58.0,1232.0,596.0,102.0,79.0,87.0,Unknown,Y,NODATA!,,,2601.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,2.0,100.0,0.0,Gas multipoint,Average,Average,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,Portable electric heaters (assumed),,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, mains gas",Average,Average,No thermostatic control of room temperature,Poor,Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"35, Old Tovil Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2017-05-08 11:31:37,owner-occupied,,,200003683249.0,Address Matched +da94769987051d5ca7b5a461b38b83a495e3b81a65171d7bab45eb25e56f905e,FLAT 5,22 MELVILLE ROAD,,ME15 7UY,10001690635,C,C,71,77,Flat,End-Terrace,2021-07-01,E07000110,E14000804,Kent,2021-07-01,rental,74,82,237,164.0,1.6,42,1.1,38.0,38.0,303.0,216.0,77.0,77.0,38.0,dual,Y,02,Y,,,100.0,double glazing installed during or after 2002,Normal,1.0,2.0,2.0,100.0,0.0,From main system,Good,Good,(another dwelling below),,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,2.02,2.51,0.0,N,natural,"FLAT 5, 22 MELVILLE ROAD",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2021-07-01 15:39:38,Rented (private),6.0,,200003696791.0,Energy Assessor +481466069002014120916142977540398,"42, Mote Road",,,ME15 6ES,5965768,D,B,67,83,House,Mid-Terrace,2014-12-01,E07000110,E14000804,Kent,2014-12-09,none of the above,62,80,221,106.0,4.2,39,2.1,93.0,93.0,750.0,570.0,90.0,56.0,108.0,Single,Y,NODATA!,,,2107.0,100.0,double glazing installed before 2002,Normal,1.0,4.0,4.0,50.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"42, Mote Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2014-12-09 16:14:29,owner-occupied,,,200003691157.0,Address Matched +da9a913a95fd0f6e3cded4c7d103254f6d8e0f9ede0cc2a412ff79194d5510f4,60 Seymour Drive,,,TN12 9GT,10001564830,B,A,84,93,House,Detached,2021-09-23,E07000110,E14000804,Kent,2021-09-23,new dwelling,84,94,83,25.0,1.8,15,0.6,91.0,91.0,279.0,281.0,94.0,53.0,124.0,standard tariff,,,N,,,100.0,,,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.22 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.12 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.71,,,,60 Seymour Drive,Maidstone,Maidstone and The Weald,MARDEN,2021,2021-09-23 16:38:03,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,10.0,,10094441136.0,Energy Assessor +864106879042012120722005702320568,"15, Slaney Road",Staplehurst,,TN12 0SE,4024273078,D,B,64,85,House,Detached,2012-12-06,E07000110,E14000804,Kent,2012-12-07,marketed sale,62,85,205,69.0,3.8,39,1.3,101.0,52.0,603.0,416.0,114.0,78.0,98.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,1.0,6.0,6.0,8.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, partial insulation (assumed)",Average,Average,,,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 8% of fixed outlets,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"15, Slaney Road, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1976-1982,2012-12-07 22:00:57,owner-occupied,12.0,1.0,200003678614.0,Address Matched +daa49ff3a3e112c19ad510f35cc5d08051b2519bad29eeba7a47736760f68ccd,24 PERRY STREET,,,ME14 2RP,10001429826,D,B,66,82,House,End-Terrace,2021-06-25,E07000110,E14000804,Kent,2021-07-30,not sale or rental,61,79,224,107.0,3.5,39,1.7,83.0,83.0,550.0,469.0,139.0,84.0,89.0,Single,Y,,,,,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,86.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 86% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.6,0.0,N,natural,24 PERRY STREET,Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1991-1995,2021-07-30 14:41:03,Rented (social),14.0,,200003669997.0,Energy Assessor +1005059254812019080714570096010715,"10, The Hurstings",,,ME15 6YN,7539463178,C,B,69,86,House,Semi-Detached,2019-08-06,E07000110,E14000804,Kent,2019-08-07,marketed sale,66,85,226,87.0,2.9,40,1.1,84.0,56.0,431.0,387.0,146.0,76.0,72.0,Single,Y,NODATA!,,,2104.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,50.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"10, The Hurstings",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1983-1990,2019-08-07 14:57:00,owner-occupied,,,200003716435.0,Address Matched +1040278619942013112106270715679298,"79, Howard Drive",,,ME16 0QF,4973916178,C,B,71,86,Bungalow,Detached,2013-11-11,E07000110,E14000804,Kent,2013-11-21,FiT application,71,86,166,64.0,2.6,32,1.0,47.0,47.0,473.0,406.0,90.0,63.0,80.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"79, Howard Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2013-11-21 06:27:07,owner-occupied,0.0,0.0,200003704125.0,Address Matched +285295560702009051210375561110118,"38, Albany Street",,,ME14 5AJ,8709861668,E,D,47,55,House,End-Terrace,2009-05-09,E07000110,E14000804,Kent,2009-05-12,rental (private),41,47,474,412.0,5.1,79,4.4,61.0,31.0,732.0,656.0,83.0,79.0,49.3,Single,Y,NO DATA!,,,2102.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,0.0,0.0,From main system,Good,Very Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Very Good,"Programmer, no room thermostat",Very Poor,Very Poor,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,0.0,N,natural,"38, Albany Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2009-05-12 10:37:55,rental (private),,,200003705005.0,Address Matched +1720636749442019051418333467419348,Blue Hills,Yalding Hill,Yalding,ME18 6AN,5492644678,D,B,65,90,House,Detached,2019-05-14,E07000110,E14000804,Kent,2019-05-14,marketed sale,61,86,162,42.0,9.9,29,2.8,142.0,142.0,3767.0,2336.0,161.0,161.0,339.0,dual,N,NODATA!,,,2207.0,100.0,triple glazing,Normal,3.0,12.0,12.0,100.0,2.0,"From main system, plus solar",Very Good,Very Good,"Solid, no insulation (assumed)",NO DATA!,,Fully triple glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Air source heat pump, radiators, electric",Average,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,NO DATA!,,,,Y,natural,"Blue Hills, Yalding Hill, Yalding",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2019-05-14 18:33:34,owner-occupied,,,200003661646.0,Address Matched +404945230262009112817122050188201,"33, Stagshaw Close",,,ME15 6TE,521330768,B,B,81,82,House,Mid-Terrace,2009-11-28,E07000110,E14000804,Kent,2009-11-28,rental (private),80,81,154,147.0,1.7,25,1.6,58.0,35.0,248.0,251.0,91.0,91.0,65.11,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,5.0,5.0,33.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 250 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 33% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.38,0.0,N,natural,"33, Stagshaw Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2009-11-28 17:12:20,rental (private),,,10022893275.0,Address Matched +1311795939842015042217400638552528,"7, Cloudberry Close",,,ME16 0LY,6886435378,D,C,67,79,House,Detached,2015-04-22,E07000110,E14000804,Kent,2015-04-22,marketed sale,60,73,194,120.0,5.5,34,3.5,120.0,84.0,946.0,846.0,162.0,79.0,162.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,9.0,9.0,56.0,1.0,From main system,Good,Good,"Suspended, limited insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, mains gas",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 56% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"7, Cloudberry Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1996-2002,2015-04-22 17:40:06,owner-occupied,,,200003721725.0,Address Matched +548500749802010100418304986000748,"22, Bell Lane",Staplehurst,,TN12 0BA,6803440868,C,C,74,78,House,Semi-Detached,2010-10-04,E07000110,E14000804,Kent,2010-10-04,rental (social),70,74,197,167.0,3.2,32,2.7,62.0,52.0,503.0,430.0,102.0,102.0,97.78,Unknown,Y,NO DATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,1.0,5.0,5.0,80.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 50 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Very Good,Very Good,Programmer and room thermostat,Average,Average,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.26,0.0,N,natural,"22, Bell Lane, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1967-1975,2010-10-04 18:30:49,rental (social),,,200003677277.0,Address Matched +629783665932011051613375429968008,"78, Melrose Close",,,ME15 6ZE,6849076868,B,B,86,87,House,Mid-Terrace,2011-05-16,E07000110,E14000804,Kent,2011-05-16,new dwelling,88,89,65,62.0,1.4,12,1.4,77.0,60.0,242.0,245.0,95.0,95.0,114.81,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,10.0,,From main system,Good,Good,Average thermal transmittance 0.20 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.20 W/m?K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m?K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in 71% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.3,,,NO DATA!,"78, Melrose Close",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2011-05-16 13:37:54,,14.0,10.0,10014307066.0,Address Matched +dac0ff2a05b63d0e7f774f21a4b6bdacbce669a35f55eda05878999e485ce820,3 Fishers Close,Staplehurst,,TN12 0DB,10001453279,D,B,64,89,Bungalow,Semi-Detached,2021-09-30,E07000110,E14000804,Kent,2021-09-30,marketed sale,58,88,248,56.0,3.8,44,0.9,67.0,67.0,617.0,340.0,144.0,72.0,87.0,Single,Y,,,,,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,,,,"Roof room(s), ceiling insulated",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,,,2.31,0.0,N,natural,"3 Fishers Close, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1967-1975,2021-09-30 13:58:11,Owner-occupied,9.0,,200003679312.0,Energy Assessor +198642820922008121119293195198008,Amber Place,Amber Lane,Chart Sutton,ME17 3SE,943245568,D,C,67,72,House,Detached,2008-12-11,E07000110,E14000700,Kent,2008-12-11,marketed sale,64,68,199,172.0,6.9,33,6.0,208.0,109.0,727.0,680.0,161.0,140.0,126.32,dual,Y,NO DATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,10.0,10.0,8.0,0.0,From main system,Good,Good,"Suspended, limited insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, mains gas",,,"Roof room(s), insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 8% of fixed outlets,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.37,0.0,N,natural,"Amber Place, Amber Lane, Chart Sutton",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1996-2002,2008-12-11 19:29:31,owner-occupied,,,200003720632.0,Address Matched +1644147416832018062814071517278209,"32, Gates Drive",,,ME17 3GE,1987298578,B,A,82,96,House,Semi-Detached,2018-06-28,E07000110,E14000700,Kent,2018-06-28,new dwelling,86,99,101,-12.0,1.1,18,-0.1,46.0,46.0,190.0,190.0,72.0,43.0,60.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"32, Gates Drive",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2018-06-28 14:07:15,unknown,7.0,7.0,10093304007.0,Address Matched +1249983051452014121621310690949035,25 Newlyn Court,Tufton Street,,ME14 1EZ,553101378,C,C,72,79,Flat,Mid-Terrace,2014-12-15,E07000110,E14000804,Kent,2014-12-16,rental (social),57,82,280,118.0,3.5,47,1.5,56.0,51.0,349.0,263.0,165.0,113.0,73.0,dual,Y,2nd,N,,2401.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,100.0,0.0,"Electric immersion, off-peak",Average,Poor,(another dwelling below),NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,"Pitched, 100 mm loft insulation",Average,Average,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,no corridor,,,,N,natural,"25 Newlyn Court, Tufton Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1991-1995,2014-12-16 21:31:06,rental (social),,,200003688147.0,Address Matched +494166640352020090400180326000377,"97, South Lane",Sutton Valence,,ME17 3AY,3742066768,C,B,69,83,House,Detached,2020-09-03,E07000110,E14000700,Kent,2020-09-04,marketed sale,64,79,197,105.0,4.8,35,2.6,94.0,94.0,786.0,632.0,146.0,84.0,137.0,Unknown,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,2.0,7.0,7.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, partial insulation (assumed)",Average,Average,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"97, South Lane, Sutton Valence",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1976-1982,2020-09-04 00:18:03,owner-occupied,,,200003695659.0,Address Matched +1644154999102018062814083455882688,"34, Gates Drive",,,ME17 3GE,2197298578,B,A,83,97,House,Semi-Detached,2018-06-28,E07000110,E14000700,Kent,2018-06-28,new dwelling,86,100,99,-14.0,1.0,17,-0.1,46.0,46.0,187.0,187.0,72.0,43.0,60.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"34, Gates Drive",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2018-06-28 14:08:34,unknown,7.0,7.0,10093304008.0,Address Matched +1240688639222014112608465620958314,The Firs,Boxley Road,Walderslade,ME5 9JE,1277330378,E,C,44,80,House,Semi-Detached,2014-11-25,E07000110,E14000700,Kent,2014-11-26,marketed sale,39,78,336,98.0,7.3,65,2.2,87.0,63.0,1282.0,633.0,256.0,90.0,112.0,Single,Y,NODATA!,,,2102.0,75.0,double glazing installed before 2002,Normal,1.0,5.0,5.0,62.0,1.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Partial double glazing,Poor,Poor,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,Low energy lighting in 62% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"The Firs, Boxley Road, Walderslade",Maidstone,Faversham and Mid Kent,CHATHAM,England and Wales: 1967-1975,2014-11-26 08:46:56,owner-occupied,16.0,10.0,200003709054.0,Address Matched +1092416769022014050913380699688264,3 Wicken House,London Road,,ME16 8QP,6915689178,E,C,46,73,Flat,End-Terrace,2014-02-08,E07000110,E14000804,Kent,2014-05-09,assessment for green deal,30,53,603,351.0,5.4,107,3.1,73.0,36.0,654.0,304.0,194.0,114.0,51.0,dual,N,Ground,N,,2401.0,100.0,double glazing installed before 2002,Normal,1.0,2.0,2.0,0.0,0.0,"Electric immersion, off-peak",Poor,Very Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,(another dwelling above),,,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,No low energy lighting,Very Poor,Very Poor,electricity (not community),0.0,unheated corridor,8.64,,0.0,,natural,"3 Wicken House, London Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2014-05-09 13:38:06,rental (private),5.0,0.0,200003668511.0,Address Matched +daddb3f317b566a345c585e304e10ef2a9b3151113a05e81f1f79d84e1237454,9 Tenacre Court,Ashford Road,Harrietsham,ME17 1AH,10001590519,E,E,39,39,Flat,End-Terrace,2021-08-10,E07000110,E14000700,Kent,2021-08-10,not sale or rental,47,47,363,363.0,4.5,61,4.5,63.0,63.0,1355.0,1355.0,241.0,241.0,73.0,standard tariff,,1,N,,,100.0,,,,,,100.0,0.0,Electric instantaneous at point of use,Very Poor,Poor,Average thermal transmittance 0.50 W/m-¦K,Poor,Poor,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.49 W/m-¦K,Good,Good,,,,(other premises above),,,"Boiler and radiators, electric",Very Poor,Poor,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",0.0,,,3.69,,,,"9 Tenacre Court, Ashford Road, Harrietsham",Maidstone,Faversham and Mid Kent,MAIDSTONE,2020,2021-08-10 12:12:11,Owner-occupied,5.0,,10095449474.0,Energy Assessor +dad9428c09ec224b46e2a71e60b3ff8da02692dab187ea9965361d96f34233f9,21 Broadclough Way,Maidstone,,ME17 3UX,10001455933,B,A,84,96,House,Semi-Detached,2021-09-22,E07000110,E14000700,Kent,2021-09-22,new dwelling,87,98,82,4.0,1.3,14,0.1,72.0,72.0,214.0,214.0,75.0,47.0,88.0,standard tariff,,,N,,,100.0,,,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.28 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.54,,,,"21 Broadclough Way, Maidstone",Maidstone,Faversham and Mid Kent,KENT,2021,2021-09-22 15:44:28,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,10.0,,10095449054.0,Address Matched +1659377709202018082920154060082288,"16, Keswick Drive",,,ME16 0DQ,9266100678,D,B,63,85,House,Semi-Detached,2018-08-28,E07000110,E14000804,Kent,2018-08-29,marketed sale,57,83,257,86.0,3.7,45,1.3,76.0,76.0,562.0,405.0,173.0,70.0,82.0,Single,Y,NODATA!,,,2104.0,,not defined,Much More Than Typical,0.0,4.0,4.0,80.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"16, Keswick Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1991-1995,2018-08-29 20:15:40,owner-occupied,,,200003659642.0,Address Matched +1585331139222017102714005434538413,"7, Greenfields",,,ME15 8ET,1392374578,F,C,38,78,House,Semi-Detached,2017-10-27,E07000110,E14000700,Kent,2017-10-27,marketed sale,24,75,542,127.0,12.0,92,3.0,133.0,76.0,1780.0,794.0,322.0,77.0,132.0,dual,Y,NODATA!,,,2401.0,100.0,double glazing installed before 2002,Normal,3.0,7.0,3.0,43.0,0.0,"Electric immersion, off-peak",Very Poor,Poor,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, 100 mm loft insulation",Average,Average,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 43% of fixed outlets,Average,Average,electricity (not community),0.0,NO DATA!,,,,N,natural,"7, Greenfields",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2017-10-27 14:00:54,owner-occupied,,,200003685538.0,Address Matched +1077129729112014012416191897240912,"2, Spot Lane",Bearsted,,ME15 8PR,9275978178,D,B,64,85,House,Semi-Detached,2014-01-23,E07000110,E14000700,Kent,2014-01-24,marketed sale,60,85,196,65.0,5.0,38,1.7,131.0,68.0,844.0,504.0,152.0,98.0,133.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,6.0,6.0,8.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Roof room(s), insulated",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 8% of fixed outlets,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"2, Spot Lane, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2014-01-24 16:19:18,owner-occupied,26.0,2.0,200003693205.0,Address Matched +904034859942015032512204306659638,"12, Melford Drive",,,ME16 0UN,5950356078,D,B,56,86,House,Detached,2015-03-17,E07000110,E14000804,Kent,2015-03-25,ECO assessment,47,83,292,76.0,6.4,52,1.7,72.0,72.0,1121.0,518.0,191.0,78.0,125.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,7.0,7.0,100.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"12, Melford Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1991-1995,2015-03-25 12:20:43,owner-occupied,,,200003725106.0,Address Matched +1469253559142017032013030944632608,"24, Royston Road",Bearsted,,ME15 8NS,2180056478,E,C,47,71,House,Semi-Detached,2017-03-20,E07000110,E14000700,Kent,2017-03-20,ECO assessment,39,64,346,176.0,7.9,64,4.1,71.0,71.0,1484.0,973.0,116.0,78.0,124.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,7.0,7.0,100.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, no insulation",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"24, Royston Road, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2017-03-20 13:03:09,owner-occupied,,,200003693077.0,Address Matched +1479899839962018071708284057968578,2 Matthews Avenue,Harrietsham,,ME17 1GJ,7518327478,B,A,84,95,House,Detached,2018-07-16,E07000110,E14000700,Kent,2018-07-17,new dwelling,86,97,86,8.0,1.3,15,0.2,62.0,62.0,221.0,221.0,81.0,50.0,89.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.27 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"2 Matthews Avenue, Harrietsham",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2018-07-17 08:28:40,owner-occupied,16.0,16.0,10093303075.0,Address Matched +896568299802013031121043307579198,"32, McKenzie Court",,,ME14 1JU,7869995078,B,B,85,87,Flat,Mid-Terrace,2013-03-11,E07000110,E14000804,Kent,2013-03-11,marketed sale,79,80,146,136.0,1.6,26,1.5,90.0,45.0,63.0,70.0,114.0,114.0,63.0,dual,N,1st,N,,2401.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,0.0,0.0,"Electric immersion, off-peak",Average,Very Poor,(other premises below),,,Fully double glazed,Good,Good,"System built, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,(another dwelling above),,,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,No low energy lighting,Very Poor,Very Poor,electricity (not community),0.0,heated corridor,,,0.0,,natural,"32, McKenzie Court",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2013-03-11 21:04:33,owner-occupied,18.0,0.0,10014306639.0,Address Matched +222296250102009021120014751719498,"41, Whitmore Street",,,ME16 8JX,4123157568,D,D,57,67,House,Mid-Terrace,2009-02-11,E07000110,E14000804,Kent,2009-02-11,marketed sale,56,69,356,264.0,3.8,53,2.7,47.0,34.0,565.0,453.0,134.0,97.0,71.0,Single,Y,NO DATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,60.0,1.0,From main system,Average,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Average,Good,Programmer and room thermostat,Poor,Poor,Low energy lighting in 60% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.45,0.0,N,natural,"41, Whitmore Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2009-02-11 20:01:47,owner-occupied,,,200003655351.0,Address Matched +1081994109742014020419164916940148,Flat 2/A Elizabeth House,Alexandra Street,,ME14 2BU,9789909178,C,C,70,77,Flat,Mid-Terrace,2014-02-04,E07000110,E14000804,Kent,2014-02-04,rental (private),63,73,342,250.0,2.1,61,1.5,41.0,26.0,186.0,125.0,196.0,171.0,34.0,dual,N,Ground,N,,2402.0,100.0,double glazing installed during or after 2002,Normal,0.0,1.0,1.0,40.0,0.0,"Electric immersion, off-peak",Poor,Very Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,(another dwelling above),,,Electric storage heaters,Poor,Very Poor,Automatic charge control,Average,Average,Low energy lighting in 40% of fixed outlets,Average,Average,electricity (not community),0.0,no corridor,,,0.0,,natural,"Flat 2/A Elizabeth House, Alexandra Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2014-02-04 19:16:49,rental (private),5.0,2.0,200003704568.0,Address Matched +1769340692922020011709505697438240,"7, Windmill Crescent",Headcorn,,TN27 9DG,4927997678,B,A,84,111,House,Detached,2020-01-17,E07000110,E14000700,Kent,2020-01-17,new dwelling,85,111,85,-79.0,1.6,15,-1.4,78.0,78.0,281.0,281.0,83.0,51.0,109.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.17 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"7, Windmill Crescent, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,NO DATA!,2020-01-17 09:50:56,unknown,20.0,20.0,10093306113.0,Address Matched +613376909022011040422183405248499,"17, Cranham Square",Marden,,TN12 9TG,9004055868,C,C,79,80,Flat,Semi-Detached,2011-04-04,E07000110,E14000804,Kent,2011-04-04,rental (social),77,77,182,180.0,1.8,30,1.8,42.0,33.0,321.0,323.0,89.0,89.0,60.75,Single,Y,Ground,N,3.0,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,75.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 75% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,unheated corridor,7.0,2.41,0.0,N,natural,"17, Cranham Square, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1967-1975,2011-04-04 22:18:34,rental (social),,,200003710675.0,Address Matched +1429657074632016040114115326078803,"6, Skinner Close",Staplehurst,,TN12 0EQ,7366863478,B,B,89,90,House,Mid-Terrace,2016-04-01,E07000110,E14000804,Kent,2016-04-01,new dwelling,91,93,52,38.0,0.7,9,0.5,56.0,56.0,197.0,197.0,96.0,61.0,74.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"6, Skinner Close, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,NO DATA!,2016-04-01 14:11:53,owner-occupied,14.0,14.0,10014315484.0,Address Matched +622728339262011042719101236538669,"5, Charlton Street",,,ME16 8LB,6301326868,E,D,48,57,House,Mid-Terrace,2011-04-27,E07000110,E14000804,Kent,2011-04-27,marketed sale,47,56,365,293.0,4.5,69,3.6,62.0,35.0,718.0,617.0,145.0,115.0,64.94,Unknown,Y,NODATA!,,,2107.0,100.0,"double glazing, unknown install date",Normal,1.0,4.0,4.0,25.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, electric",,,"Pitched, no insulation(assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in 25% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,2.45,0.0,,natural,"5, Charlton Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2011-04-27 19:10:12,owner-occupied,8.0,2.0,200003655448.0,Address Matched +1285708209222015022409063593778925,"47, The Quarries",Boughton Monchelsea,,ME17 4NJ,2960053378,F,E,21,54,Bungalow,Detached,2015-02-23,E07000110,E14000700,Kent,2015-02-24,marketed sale,13,35,655,393.0,15.0,125,8.3,148.0,74.0,2082.0,1430.0,346.0,103.0,117.0,dual,N,NODATA!,,,2101.0,85.0,secondary glazing,Normal,0.0,6.0,6.0,0.0,0.0,"From main system, no cylinder thermostat",Very Poor,Very Poor,"Solid, no insulation (assumed)",NO DATA!,,Mostly secondary glazing,Average,Average,"Sandstone or limestone, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, oil",Poor,Average,No time or thermostatic control of room temperature,Very Poor,Very Poor,No low energy lighting,Very Poor,Very Poor,oil (not community),0.0,NO DATA!,,,,N,natural,"47, The Quarries, Boughton Monchelsea",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2015-02-24 09:06:35,owner-occupied,,,200003709803.0,Address Matched +364173810712016040517533395060365,"31, Dover Street",,,ME16 8LF,3531057668,D,B,63,85,House,Mid-Terrace,2016-04-05,E07000110,E14000804,Kent,2016-04-05,marketed sale,58,84,245,68.0,3.1,45,1.0,78.0,48.0,561.0,393.0,116.0,67.0,71.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,36.0,2.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 36% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,2.42,,N,natural,"31, Dover Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2016-04-05 17:53:33,rental (private),,,200003655552.0,Address Matched +1587109779332017110316425696078595,"13, Bannister Road",Penenden Heath,,ME14 2JY,7596584578,D,B,64,83,House,Semi-Detached,2017-11-02,E07000110,E14000804,Kent,2017-11-03,marketed sale,58,79,245,105.0,4.0,43,1.8,82.0,67.0,686.0,505.0,129.0,84.0,93.0,dual,Y,NODATA!,,,2104.0,95.0,double glazing installed before 2002,Normal,0.0,4.0,4.0,78.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Mostly double glazing,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 78% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"13, Bannister Road, Penenden Heath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2017-11-03 16:42:56,owner-occupied,,,200003707151.0,Address Matched +627286959602011051008461981699308,"69, West Street",Harrietsham,,ME17 1HX,8649056868,C,C,74,75,House,Semi-Detached,2011-05-10,E07000110,E14000700,Kent,2011-05-10,marketed sale,74,76,150,139.0,2.7,29,2.6,102.0,51.0,371.0,378.0,132.0,132.0,96.1,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,0.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,2.279,0.0,,natural,"69, West Street, Harrietsham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2003-2006,2011-05-10 08:46:19,owner-occupied,10.0,0.0,10014307591.0,Address Matched +1262244552212015013014291598250732,"18, Westminster Square",,,ME16 0WQ,7289281378,D,B,56,81,House,Semi-Detached,2015-01-27,E07000110,E14000804,Kent,2015-01-30,ECO assessment,47,77,283,105.0,6.8,50,2.6,115.0,76.0,1183.0,680.0,175.0,78.0,137.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,7.0,7.0,50.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"18, Westminster Square",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2015-01-30 14:29:15,owner-occupied,,,10022895597.0,Address Matched +1397204078152015121710303493959540,"37, Edmett Way",,,ME17 3FA,5066831478,B,A,85,95,House,Mid-Terrace,2015-12-17,E07000110,E14000700,Kent,2015-12-17,new dwelling,87,98,78,6.0,1.3,14,0.1,64.0,64.0,239.0,239.0,88.0,53.0,96.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.30 W/m-¦K,Good,Good,,,,Average thermal transmittance 0.15 W/m-¦K,Good,Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"37, Edmett Way",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2015-12-17 10:30:34,unknown,1.0,1.0,10091193979.0,Address Matched +1355942849302015082013434232852908,"201, Tonbridge Road",,,ME16 8NA,4382748378,E,D,43,64,House,Mid-Terrace,2015-08-20,E07000110,E14000804,Kent,2015-08-20,rental (private),37,54,404,249.0,6.5,71,4.0,115.0,58.0,1176.0,967.0,128.0,94.0,91.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,4.0,0.0,1.0,From main system,Good,Good,"Suspended, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, mains gas",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"201, Tonbridge Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2015-08-20 13:43:42,rental (private),,,200003657459.0,Address Matched +598301281812013111200174693979782,"20, Waverley Close",Coxheath,,ME17 4HL,7283134868,C,C,75,76,Flat,Detached,2013-11-11,E07000110,E14000804,Kent,2013-11-12,rental (social),79,80,155,145.0,1.4,29,1.3,56.0,31.0,264.0,267.0,78.0,78.0,47.0,Single,Y,1st,Y,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,20.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 20% of fixed outlets,Poor,Poor,mains gas (not community),0.0,unheated corridor,7.0,,0.0,,natural,"20, Waverley Close, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1976-1982,2013-11-12 00:17:46,rental (social),5.0,1.0,200003712303.0,Address Matched +327996473132009071619381352968406,"6, Stockbury Drive",,,ME16 0RW,7682494668,C,B,71,82,House,Mid-Terrace,2009-07-16,E07000110,E14000804,Kent,2009-07-16,rental (private),68,79,254,162.0,2.5,42,1.6,60.0,30.0,384.0,270.0,91.0,79.0,60.06,Single,Y,NO DATA!,,,2107.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 100mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Poor,Poor,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,0.0,N,natural,"6, Stockbury Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2009-07-16 19:38:13,rental (private),,,200003661006.0,Address Matched +504301736032010070213542321268101,The Flat,Redwall Farmhouse,"Redwall Lane, Linton",ME17 4AX,3101137768,F,E,24,48,Flat,NO DATA!,2010-06-23,E07000110,E14000804,Kent,2010-07-02,rental (private),17,37,686,422.0,8.7,151,5.3,48.0,30.0,1020.0,684.0,293.0,125.0,57.63,Single,N,1st,Y,2.0,2104.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,40.0,0.0,"From main system, no cylinder thermostat",Poor,Poor,"To unheated space, uninsulated (assumed)",,,Fully double glazed,Good,Good,"Timber frame, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 25 mm loft insulation",Poor,Poor,"Boiler and radiators, oil",Average,Average,Programmer and room thermostat,Average,Average,Low energy lighting in 40% of fixed outlets,Average,Average,oil - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.41,0.0,N,natural,"The Flat, Redwall Farmhouse, Redwall Lane, Linton",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2010-07-02 13:54:23,rental (private),,,200003663051.0,Address Matched +1680897571132019092709395002278707,21 Saturn Road,Coxheath,,ME17 4FX,7742751678,B,A,84,95,House,Semi-Detached,2019-09-27,E07000110,E14000804,Kent,2019-09-27,new dwelling,86,97,83,8.0,1.3,15,0.2,68.0,68.0,226.0,226.0,75.0,45.0,92.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.10 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"21 Saturn Road, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2019-09-27 09:39:50,unknown,20.0,20.0,10094440279.0,Address Matched +354530380262009082816510256388591,"30, Bychurch Place",Waterloo Street,,ME15 7UQ,9594876668,C,C,70,78,Flat,Semi-Detached,2009-08-28,E07000110,E14000804,Kent,2009-08-28,rental (social),66,74,298,225.0,2.3,50,1.8,42.0,23.0,378.0,301.0,74.0,74.0,46.91,Single,Y,Ground,N,2.0,2106.0,100.0,double glazing installed before 2002,More Than Typical,0.0,2.0,2.0,20.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 20% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.41,0.0,N,natural,"30, Bychurch Place, Waterloo Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2009-08-28 16:51:02,rental (social),,,200003696671.0,Address Matched +723526869962011111522293103258229,"27, Bonnington Road",,,ME14 5QR,2092633968,D,D,62,66,House,Semi-Detached,2011-11-15,E07000110,E14000804,Kent,2011-11-15,marketed sale,61,65,262,234.0,3.2,50,2.8,43.0,43.0,518.0,473.0,113.0,99.0,62.8,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,78.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 78% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,2.4,0.0,,natural,"27, Bonnington Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2011-11-15 22:29:31,owner-occupied,9.0,7.0,200003671782.0,Address Matched +1314848889262015042720013345538525,The Court House,Chart Road,Sutton Valence,ME17 3AW,2494855378,C,C,70,79,House,Detached,2015-04-27,E07000110,E14000700,Kent,2015-04-27,non marketed sale,63,72,179,129.0,6.6,31,4.8,190.0,95.0,1109.0,1084.0,147.0,88.0,208.0,Single,Y,NODATA!,,,2110.0,100.0,double glazing installed during or after 2002,Normal,1.0,8.0,8.0,0.0,1.0,From main system,Good,Good,"Solid, limited insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, mains gas",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"The Court House, Chart Road, Sutton Valence",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1996-2002,2015-04-27 20:01:33,owner-occupied,,,10014310908.0,Address Matched +289582429242019042515154564212658,"8, Barfreston Close",,,ME15 6FG,5258422668,C,B,77,90,House,Mid-Terrace,2019-04-25,E07000110,E14000804,Kent,2019-04-25,marketed sale,78,91,151,44.0,1.7,26,0.5,59.0,59.0,285.0,285.0,93.0,62.0,64.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,89.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 270 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 89% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"8, Barfreston Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2019-04-25 15:15:45,owner-occupied,,,200003664279.0,Address Matched +722474049962011111021402383708799,"5, Shepway Court",Norfolk Road,,ME15 7JF,9896423968,C,C,72,74,Flat,Semi-Detached,2011-11-10,E07000110,E14000700,Kent,2011-11-10,rental (social),74,76,180,161.0,2.1,35,1.9,37.0,37.0,290.0,307.0,157.0,103.0,60.02,Single,Y,Ground,N,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,7.2,2.41,0.0,,natural,"5, Shepway Court, Norfolk Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2011-11-10 21:40:23,rental (social),8.0,8.0,200003713181.0,Address Matched +db4a72c370d840c3c7a3335f20b78e9f4789406851dd7950dbb9937d128e9bea,FLAT 7,LAVENDER HOUSE,NORTHUMBERLAND ROAD,ME15 7RW,10001673407,E,C,54,72,Flat,Detached,2021-06-29,E07000110,E14000700,Kent,2021-07-01,ECO assessment,52,73,348,193.0,3.7,61,2.1,114.0,57.0,741.0,422.0,76.0,76.0,61.0,Single,Y,02,Y,,,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,0.0,0.0,From main system,Good,Good,(another dwelling below),,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Average,Average,"Room heaters, electric",,,"Pitched, insulated (assumed)",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,unheated corridor,6.0,2.79,0.0,N,natural,"FLAT 7, LAVENDER HOUSE, NORTHUMBERLAND ROAD",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2021-07-01 16:30:42,Rented (social),8.0,,200003714062.0,Energy Assessor +1003373569222014052110564783598294,"69, Hartnup Street",,,ME16 8LT,9844653178,D,B,65,88,House,Mid-Terrace,2014-05-21,E07000110,E14000804,Kent,2014-05-21,none of the above,63,88,194,50.0,3.7,37,1.0,114.0,57.0,656.0,401.0,100.0,71.0,99.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,0.0,1.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Sandstone, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 75 mm loft insulation",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"69, Hartnup Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2014-05-21 10:56:47,owner-occupied,9.0,0.0,200003655899.0,Address Matched +564196389962010111115380791398090,Chegworth Water Mill,Chegworth Road,Harrietsham,ME17 1DD,9961851868,E,E,43,51,House,Detached,2010-11-11,E07000110,E14000700,Kent,2010-11-11,rental (private),39,47,284,240.0,16.0,57,14.0,158.0,158.0,2485.0,2088.0,318.0,260.0,209.72,Single,N,NO DATA!,,,2107.0,10.0,double glazing installed during or after 2002,Normal,1.0,11.0,11.0,100.0,1.0,From main system,Average,Average,"Suspended, insulated",,,Some double glazing,Very Poor,Very Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Roof room(s), insulated",Good,Good,"Boiler and radiators, oil",Average,Average,"Programmer, TRVs and bypass",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,oil - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.26,0.0,N,natural,"Chegworth Water Mill, Chegworth Road, Harrietsham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2010-11-11 15:38:07,rental (private),,,200003721522.0,Address Matched +1624736759402018041910081054789618,"2, Cornflower Drive",Marden,,TN12 9GH,3406257578,B,B,85,87,House,Detached,2018-04-19,E07000110,E14000804,Kent,2018-04-19,new dwelling,86,88,77,64.0,1.6,14,1.3,70.0,70.0,282.0,283.0,106.0,58.0,114.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.27 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"2, Cornflower Drive, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,NO DATA!,2018-04-19 10:08:10,owner-occupied,45.0,45.0,10093305321.0,Address Matched +214464779202013100316181357670878,65 Midhurst Court,Mote Road,,ME15 6EJ,2258076568,D,C,63,79,Flat,End-Terrace,2013-10-03,E07000110,E14000804,Kent,2013-10-03,none of the above,68,83,220,112.0,2.4,41,1.2,37.0,37.0,351.0,228.0,261.0,100.0,58.0,Single,Y,11th,N,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,2.0,2.0,100.0,0.0,"Electric immersion, standard tariff",Very Poor,Very Poor,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,10.17,,0.0,,natural,"65 Midhurst Court, Mote Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2013-10-03 16:18:13,rental (social),5.0,5.0,200003693379.0,Address Matched +db3f66dd9fe2356fe081ec7589c5dc64f008e5ea5e43336ddf3a69b776c4e60c,13,Pearson Meadow,Boughton Monchelsea,ME17 4SX,10001381646,B,A,84,96,House,Semi-Detached,2021-07-14,E07000110,E14000700,Kent,2021-07-14,new dwelling,86,98,87,2.0,1.2,15,0.1,71.0,71.0,214.0,214.0,68.0,41.0,80.0,standard tariff,,,N,,,100.0,,,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.12 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.39,,,,"13, Pearson Meadow, Boughton Monchelsea",Maidstone,Faversham and Mid Kent,MAIDSTONE,2021,2021-07-14 09:24:09,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,14.0,,10094442606.0,Address Matched +186195770262009051913460124648248,"17, Wrangleden Road",,,ME15 9LN,4275774568,C,C,75,75,Bungalow,Semi-Detached,2008-11-24,E07000110,E14000700,Kent,2009-05-19,rental (social),72,72,232,232.0,2.0,39,2.0,30.0,30.0,282.0,282.0,104.0,104.0,52.64,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,80.0,0.0,From main system,Very Good,Very Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.32,0.0,N,natural,"17, Wrangleden Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2009-05-19 13:46:01,rental (social),,,200003682506.0,Address Matched +728764319932011113017350725768398,"65a, Week Street",,,ME14 1QU,1895373968,G,G,13,14,Flat,Semi-Detached,2011-11-30,E07000110,E14000804,Kent,2011-11-30,marketed sale,15,15,728,713.0,13.0,129,13.0,57.0,57.0,2272.0,2221.0,165.0,165.0,64.58,dual,N,Ground,Y,,2601.0,0.0,not defined,Normal,2.0,4.0,4.0,88.0,0.0,"Electric immersion, off-peak",Poor,Very Poor,(other premises below),,,Single glazed,Very Poor,Very Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,Portable electric heaters (assumed),,,"Pitched, no insulation(assumed)",Very Poor,Very Poor,"Room heaters, electric",Poor,Very Poor,No thermostatic control of room temperature,Poor,Poor,Low energy lighting in 88% of fixed outlets,Very Good,Very Good,electricity (not community),0.0,no corridor,,2.4,0.0,,natural,"65a, Week Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2011-11-30 17:35:07,owner-occupied,8.0,7.0,10091193819.0,Address Matched +db57bc415275411e2644df415a9250022c8cec50726b425f9439117c586912f3,FLAT 2,RAYLEIGH HOUSE,KINGS REACH,ME15 7QR,10001597732,E,C,52,72,Flat,Semi-Detached,2021-06-29,E07000110,E14000700,Kent,2021-07-01,ECO assessment,50,76,442,209.0,3.1,77,1.5,75.0,38.0,612.0,315.0,85.0,71.0,40.0,Single,Y,00,N,,,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,0.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Average,Average,"Room heaters, electric",,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,unheated corridor,8.5,2.79,0.0,N,natural,"FLAT 2, RAYLEIGH HOUSE, KINGS REACH",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2021-07-01 18:14:48,Rented (social),8.0,,200003713939.0,Energy Assessor +526614799962010081223464728828440,Flat 9 Rochester House,Cambridge Crescent,,ME15 7PA,4212988768,C,B,80,82,Flat,End-Terrace,2010-08-12,E07000110,E14000700,Kent,2010-08-12,rental (social),77,80,209,185.0,1.5,35,1.3,22.0,22.0,269.0,242.0,75.0,75.0,42.0,Single,Y,1st,Y,2.0,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,100.0,0.0,From main system,Very Good,Very Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,no corridor,,2.36,0.0,N,natural,"Flat 9 Rochester House, Cambridge Crescent",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2010-08-12 23:46:47,rental (social),,,200003713136.0,Address Matched +1676908729642018110713380964180838,"47b, West Street",Harrietsham,,ME17 1HX,5652821678,B,B,83,83,House,Semi-Detached,2018-11-07,E07000110,E14000700,Kent,2018-11-07,ECO assessment,82,82,97,97.0,1.4,17,1.4,58.0,58.0,378.0,378.0,62.0,62.0,82.0,Unknown,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,6.0,6.0,100.0,0.0,"From main system, plus solar",Very Good,Very Good,"Suspended, insulated (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,Y,natural,"47b, West Street, Harrietsham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 2007 onwards,2018-11-07 13:38:09,owner-occupied,,,10014315042.0,Address Matched +534959737112010090211424194700475,"17, Westminster Square",,,ME16 0WQ,4503749768,C,B,80,82,House,Semi-Detached,2010-08-31,E07000110,E14000804,Kent,2010-09-02,marketed sale,78,80,130,116.0,3.2,22,2.9,84.0,84.0,433.0,395.0,164.0,144.0,112.95,Unknown,Y,NO DATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,8.0,8.0,100.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",,,Fully double glazed,Good,Good,"Timber frame, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.26,0.0,N,natural,"17, Westminster Square",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2010-09-02 11:42:41,owner-occupied,,,10022895596.0,Address Matched +16935020812012101800170598929340,23 Wallis Place,Hart Street,,ME16 8FB,3074088468,C,C,78,79,Flat,Mid-Terrace,2012-10-17,E07000110,E14000804,Kent,2012-10-18,marketed sale,84,85,131,118.0,1.0,25,0.9,55.0,28.0,197.0,201.0,64.0,64.0,41.0,Single,Y,3rd,Y,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,2.0,2.0,0.0,0.0,From main system,Good,Good,(other premises below),,,Fully double glazed,Average,Average,"Timber frame, as built, insulated (assumed)",Very Good,Very Good,,,,"Flat, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,unheated corridor,7.1,,0.0,,natural,"23 Wallis Place, Hart Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2007 onwards,2012-10-18 00:17:05,owner-occupied,9.0,0.0,10022900622.0,Address Matched +797621809442012060615081596920668,School Cottage,Linton Hill,Linton,ME17 4AP,4498109968,E,C,51,70,House,Semi-Detached,2012-06-06,E07000110,E14000804,Kent,2012-06-06,rental (private),44,65,270,156.0,8.1,52,4.7,107.0,68.0,1353.0,1001.0,103.0,71.0,155.0,Single,Y,NODATA!,,,2106.0,64.0,double glazing installed during or after 2002,Normal,2.0,6.0,6.0,41.0,3.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Partial double glazing,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 41% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"School Cottage, Linton Hill, Linton",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2012-06-06 15:08:15,rental (private),34.0,14.0,200003663118.0,Address Matched +1139176219642014051215404920349828,"3, Len Valley Walk",Downswood,,ME15 8XQ,6646613278,D,B,66,89,House,End-Terrace,2014-05-12,E07000110,E14000700,Kent,2014-05-12,marketed sale,67,91,219,40.0,2.4,42,0.5,72.0,36.0,396.0,325.0,132.0,77.0,56.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"3, Len Valley Walk, Downswood",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2014-05-12 15:40:49,owner-occupied,11.0,0.0,200003687182.0,Address Matched +db632cdddd8df23abaf26fc56f885165108524016963eb87c2b165afa90f6549,Flat 1,Acacia House 8-10,Ashford Road,ME14 5DG,10001611588,D,C,55,74,Flat,Enclosed End-Terrace,2021-08-12,E07000110,E14000804,Kent,2021-08-12,rental,50,56,392,345.0,3.4,66,3.0,44.0,51.0,701.0,377.0,208.0,168.0,51.0,dual,N,01,N,,,100.0,double glazing installed before 2002,Normal,0.0,2.0,2.0,100.0,0.0,"Electric immersion, off-peak",Poor,Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, with internal insulation",Good,Good,"Room heaters, electric",,,(another dwelling above),,,"Room heaters, electric",Very Poor,Poor,Programmer and appliance thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,unheated corridor,3.48,2.27,0.0,N,natural,"Flat 1, Acacia House 8-10, Ashford Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2021-08-12 16:25:07,Rented (private),8.0,,200003661308.0,Energy Assessor +1435702919042016042209540647462908,Flat 114,Miller Heights,43-51 Lower Stone Street,ME15 6LZ,4030314478,D,D,63,63,Flat,NO DATA!,2016-04-20,E07000110,E14000804,Kent,2016-04-22,none of the above,67,67,453,453.0,1.5,77,1.5,20.0,20.0,233.0,233.0,200.0,200.0,20.0,standard tariff,,top floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Very Poor,Poor,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.29 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.16 W/m-¦K,Good,Good,"Boiler and radiators, electric",Very Poor,Very Poor,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,"Electricity: electricity, unspecified tariff",,NO DATA!,,,,,NO DATA!,"Flat 114, Miller Heights, 43-51 Lower Stone Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2016-04-22 09:54:06,unknown,6.0,6.0,10093302712.0,Address Matched +1554506865452017062509002295230156,Illetas,Gallants Lane,East Farleigh,ME15 0LH,1656552578,E,C,41,73,Bungalow,Semi-Detached,2017-06-23,E07000110,E14000804,Kent,2017-06-25,marketed sale,38,72,457,179.0,5.6,80,2.2,53.0,53.0,992.0,706.0,253.0,70.0,70.0,dual,Y,NODATA!,,,2104.0,100.0,secondary glazing,Normal,0.0,4.0,4.0,100.0,0.0,"From main system, no cylinder thermostat",Poor,Poor,"Solid, no insulation (assumed)",NO DATA!,,Full secondary glazing,Good,Good,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"Illetas, Gallants Lane, East Farleigh",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2017-06-25 09:00:22,owner-occupied,,,200003670439.0,Address Matched +540920099402010091521221471909358,"21-23, West Street",Harrietsham,,ME17 1JD,9402099768,F,E,26,51,House,Detached,2010-09-15,E07000110,E14000700,Kent,2010-09-15,marketed sale,30,55,608,348.0,9.1,90,4.9,97.0,53.0,1566.0,966.0,226.0,123.0,78.51,Single,Y,NO DATA!,,,2102.0,22.0,"double glazing, unknown install date",Normal,1.0,5.0,4.0,18.0,1.0,"From main system, no cylinder thermostat",Poor,Average,"Solid, no insulation (assumed)",,,Some double glazing,Very Poor,Very Poor,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, wood logs",,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Average,Good,"Programmer, no room thermostat",Very Poor,Very Poor,Low energy lighting in 18% of fixed outlets,Poor,Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.28,0.0,N,natural,"21-23, West Street, Harrietsham",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: before 1900,2010-09-15 21:22:14,owner-occupied,,,200003702570.0,Address Matched +1347479065852015072916004198250930,2 The Cottage Annexe,Grove Green,Weavering,ME14 5PX,9065587378,D,B,62,87,House,Semi-Detached,2015-07-27,E07000110,E14000700,Kent,2015-07-29,rental,58,86,295,76.0,3.0,52,0.8,83.0,43.0,528.0,392.0,116.0,46.0,58.0,Unknown,Y,NODATA!,,,2107.0,0.0,not defined,Normal,0.0,2.0,2.0,0.0,0.0,From main system,Good,Good,"Solid, limited insulation (assumed)",NO DATA!,,Single glazed,Very Poor,Very Poor,"Solid brick, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"2 The Cottage Annexe, Grove Green, Weavering",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1996-2002,2015-07-29 16:00:41,owner-occupied,,,200003723258.0,Address Matched +836237959922012091719440601338162,"25, Ashford Road",Bearsted,,ME14 4BP,6080571078,D,C,55,80,Bungalow,Detached,2012-09-17,E07000110,E14000700,Kent,2012-09-17,rental (private),48,77,233,98.0,8.8,45,3.8,152.0,78.0,1343.0,775.0,200.0,115.0,197.0,Single,Y,NODATA!,,,2106.0,90.0,double glazing installed before 2002,Normal,2.0,6.0,6.0,6.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Mostly double glazing,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, no insulation",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 6% of fixed outlets,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"25, Ashford Road, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2012-09-17 19:44:06,rental (private),31.0,2.0,200003687641.0,Address Matched +16960179132009012115005598068005,209 Wallis Place,Hart Street,,ME16 8FE,7538088468,B,B,87,87,Flat,Detached,2009-01-02,E07000110,E14000804,Kent,2009-01-21,new dwelling,87,87,124,124.0,0.8,0,0.8,18.0,18.0,122.0,122.0,53.0,53.0,41.38,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,6.0,,SAP05:Hot-Water,,,Average thermal transmittance 0.19 W/m²K,Very Good,Very Good,Fully double glazed,Good,Good,Average thermal transmittance 0.25 W/m²K,Very Good,Very Good,SAP05:Secondary-Heating,,,Average thermal transmittance 0.00 W/m²K,Very Good,Very Good,SAP05:Main-Heating,,,SAP05:Main-Heating-Controls,,,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,,,NO DATA!,"209 Wallis Place, Hart Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2009-01-21 15:00:55,,6.0,6.0,10022900817.0,Address Matched +db73253db5e49d8b796495e106695840f49102f6cc7626811a9de23c1a547c4a,Flat 97,Lee Heights,Bambridge Court,ME14 2LD,10001665687,C,B,77,86,Flat,Mid-Terrace,2021-08-19,E07000110,E14000804,Kent,2021-08-19,rental,80,78,165,175.0,1.3,28,1.4,44.0,49.0,131.0,72.0,288.0,155.0,47.0,Single,N,03,N,,,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,100.0,0.0,"Electric immersion, standard tariff",Very Poor,Poor,(another dwelling below),,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Room heaters, electric",Very Poor,Poor,Programmer and appliance thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,unheated corridor,7.16,2.22,0.0,N,natural,"Flat 97, Lee Heights, Bambridge Court",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2021-08-19 11:30:25,Rented (private),7.0,,10022893068.0,Energy Assessor +db7ff612705f0f7bea7235bfd487b218b5579cae3f76b7339c115601b4c5ec3f,39 YORK ROAD,,,ME15 7QT,10001557896,D,B,66,82,House,End-Terrace,2021-07-13,E07000110,E14000700,Kent,2021-07-13,marketed sale,63,80,245,120.0,3.0,43,1.5,106.0,60.0,501.0,464.0,86.0,60.0,70.0,Single,Y,,,,,100.0,"double glazing, unknown install date",Normal,0.0,4.0,4.0,22.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,"Room heaters, mains gas",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 22% of fixed outlets,Poor,Poor,mains gas (not community),0.0,,,2.43,0.0,N,natural,39 YORK ROAD,Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2021-07-13 16:35:36,Owner-occupied,9.0,,200003715688.0,Energy Assessor +591910292932011021216324484968904,"110, Old Tovil Road",,,ME15 6QG,9404973868,E,C,49,69,House,Mid-Terrace,2011-02-12,E07000110,E14000804,Kent,2011-02-12,marketed sale,42,64,425,247.0,5.8,71,3.4,54.0,54.0,756.0,547.0,321.0,116.0,81.7,Single,Y,NO DATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,77.0,0.0,From main system,Average,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Average,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 77% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.4,0.0,N,natural,"110, Old Tovil Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2011-02-12 16:32:44,owner-occupied,,,200003665745.0,Address Matched +1529970799262017032214321190828343,"1, Nestor Court",Malling Road,,ME18 5AD,4950970578,E,C,42,70,House,Detached,2017-03-22,E07000110,E14000804,Kent,2017-03-22,marketed sale,43,71,367,177.0,8.8,56,4.1,138.0,92.0,1879.0,1163.0,211.0,111.0,158.0,dual,Y,NODATA!,,,2504.0,100.0,"double glazing, unknown install date",Normal,1.0,8.0,8.0,50.0,1.0,"Electric immersion, off-peak",Average,Poor,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, wood logs",,,"Pitched, 200 mm loft insulation",Good,Good,"Warm air, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"1, Nestor Court, Malling Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2017-03-22 14:32:11,owner-occupied,,,200003731069.0,Address Matched +1344312559532015121612181362078591,"122, The Landway",Bearsted,,ME14 4LD,5132567378,E,C,41,80,House,Semi-Detached,2015-11-09,E07000110,E14000700,Kent,2015-12-16,ECO assessment,39,76,423,132.0,5.6,74,1.8,78.0,50.0,898.0,555.0,374.0,72.0,75.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,44.0,0.0,"Electric immersion, standard tariff",Very Poor,Poor,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, no insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 44% of fixed outlets,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"122, The Landway, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2015-12-16 12:18:13,owner-occupied,,,200003692701.0,Address Matched +445081312242020071714133676309538,"24, Wykeham Grove",Leeds,,ME17 1RP,2250313768,C,C,78,78,Maisonette,Mid-Terrace,2020-07-17,E07000110,E14000700,Kent,2020-07-17,ECO assessment,79,79,142,142.0,1.8,25,1.8,76.0,76.0,287.0,287.0,100.0,100.0,71.0,Unknown,Y,1st,Y,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,78.0,0.0,From main system,Good,Good,(another dwelling below),NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 78% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,no corridor,,,,N,natural,"24, Wykeham Grove, Leeds",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1976-1982,2020-07-17 14:13:36,owner-occupied,,,200003698425.0,Address Matched +258800657132009033121174001768004,"2, Milton Street",,,ME16 8JT,5491000668,E,D,53,64,House,End-Terrace,2009-03-31,E07000110,E14000804,Kent,2009-03-31,rental (private),46,58,399,303.0,4.9,67,3.7,61.0,38.0,692.0,548.0,99.0,83.0,73.74,dual,Y,NO DATA!,,,2104.0,100.0,double glazing installed before 2002,Normal,1.0,4.0,4.0,40.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 50 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Poor,Poor,Low energy lighting in 40% of fixed outlets,Average,Average,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.45,0.0,N,natural,"2, Milton Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: before 1900,2009-03-31 21:17:40,rental (private),,,200003657384.0,Address Matched +1422730529962016031415401763898706,48 Hubert Walter Drive,,,ME16 0BE,625223478,B,B,87,87,Flat,NO DATA!,2016-03-11,E07000110,E14000804,Kent,2016-03-14,new dwelling,90,90,65,65.0,0.8,12,0.8,51.0,51.0,182.0,182.0,87.0,87.0,72.0,standard tariff,,top floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.20 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.12 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,48 Hubert Walter Drive,Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2016-03-14 15:40:17,unknown,5.0,5.0,10091196045.0,Address Matched +1466163309262016072807282676038916,"10, Winchs Garth",Staplehurst,,TN12 0QX,1751036478,D,A,68,117,Bungalow,End-Terrace,2016-07-27,E07000110,E14000804,Kent,2016-07-28,rental (social),68,115,240,-151.0,2.2,42,-1.3,57.0,38.0,378.0,308.0,129.0,75.0,53.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,50.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,2.28,,N,natural,"10, Winchs Garth, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1950-1966,2016-07-28 07:28:26,rental (social),,,200003728008.0,Address Matched +1547016769312017052415241999230856,"6, Bramshott Close",,,ME16 0RX,8639991578,D,B,59,84,Bungalow,Detached,2017-05-24,E07000110,E14000804,Kent,2017-05-24,marketed sale,54,82,302,94.0,3.6,53,1.2,89.0,47.0,583.0,423.0,164.0,69.0,68.0,Single,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,3.0,3.0,13.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 13% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"6, Bramshott Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2017-05-24 15:24:19,owner-occupied,,,200003659496.0,Address Matched +334433139442011051116254366599898,"123, Kingfisher Meadow",,,ME16 8RD,4446635668,C,B,76,86,Flat,Mid-Terrace,2011-05-11,E07000110,E14000804,Kent,2011-05-11,marketed sale,78,77,191,198.0,1.4,34,1.5,26.0,28.0,108.0,77.0,196.0,87.0,41.89,Single,N,Ground,Y,,2603.0,100.0,double glazing installed during or after 2002,Normal,0.0,1.0,1.0,100.0,0.0,"Electric immersion, standard tariff",Very Poor,Very Poor,(other premises below),,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Room heaters, electric",Very Poor,Very Poor,Programmer and appliance thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,unheated corridor,5.25,2.42,0.0,,natural,"123, Kingfisher Meadow",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2011-05-11 16:25:43,owner-occupied,5.0,5.0,10022892334.0,Address Matched +393944806252020063016051425700861,Flat 26 Hardwick House,Northumberland Road,,ME15 7TH,8170659668,C,C,75,75,Flat,Semi-Detached,2020-06-30,E07000110,E14000700,Kent,2020-06-30,none of the above,78,78,222,222.0,1.2,39,1.2,29.0,29.0,194.0,194.0,94.0,94.0,31.0,Single,Y,1st,Y,,2307.0,100.0,double glazing installed before 2002,Normal,0.0,2.0,2.0,100.0,0.0,Community scheme,Good,Good,(another dwelling below),NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,Community scheme,Good,Good,"Flat rate charging, TRVs",Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (community),0.0,heated corridor,,,,N,natural,"Flat 26 Hardwick House, Northumberland Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2020-06-30 16:05:14,rental (social),,,200003684333.0,Address Matched +1419027549062016030121523992398666,1 Gladwish Cottages,Headcorn Road,Sutton Valence,ME17 3EL,6967492478,E,C,40,80,House,End-Terrace,2016-03-01,E07000110,E14000700,Kent,2016-03-01,marketed sale,19,55,618,246.0,12.0,107,4.8,86.0,86.0,1499.0,680.0,292.0,102.0,113.0,dual,N,NODATA!,,,2401.0,100.0,"double glazing, unknown install date",Normal,1.0,5.0,5.0,86.0,1.0,"Electric immersion, off-peak",Very Poor,Poor,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Poor,Poor,"Room heaters, dual fuel (mineral and wood)",,,"Roof room(s), no insulation (assumed)",Very Poor,Very Poor,Electric storage heaters,Average,Very Poor,Manual charge control,Poor,Poor,Low energy lighting in 86% of fixed outlets,Very Good,Very Good,electricity (not community),0.0,NO DATA!,,,,N,natural,"1 Gladwish Cottages, Headcorn Road, Sutton Valence",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1900-1929,2016-03-01 21:52:39,owner-occupied,,,200003695637.0,Address Matched +1628420330912018050214412498080254,2 Albion Mews,Green Lane,Boughton Monchelsea,ME17 4LE,2451087578,C,B,79,88,House,Semi-Detached,2018-05-01,E07000110,E14000700,Kent,2018-05-02,marketed sale,78,87,124,60.0,2.4,22,1.2,81.0,81.0,387.0,387.0,97.0,64.0,108.0,Unknown,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,6.0,6.0,90.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Very Good,Very Good,"Room heaters, mains gas",,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 90% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"2 Albion Mews, Green Lane, Boughton Monchelsea",Maidstone,Faversham and Mid Kent,MAIDSTONE,INVALID!,2018-05-02 14:41:24,owner-occupied,,,10093306041.0,Address Matched +db9eb3349a1197c43c3cf98defc83bca694a854bb9e306a8ca5b62353983e9d3,17 Bedell Road,,,ME14 4GE,10001371563,B,A,84,94,House,Semi-Detached,2021-07-22,E07000110,E14000804,Kent,2021-07-22,new dwelling,86,96,87,11.0,1.4,15,0.2,85.0,85.0,237.0,237.0,71.0,44.0,91.0,standard tariff,,,N,,,100.0,,,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.17 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.41,,,,17 Bedell Road,Maidstone,Maidstone and The Weald,THURNHAM,2021,2021-07-22 12:25:45,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,1.0,,10094444615.0,Address Matched +1579464629062017100320331964078743,"8, Barleyfields",Weavering,,ME14 5SW,4670234578,D,C,66,80,House,Detached,2017-10-03,E07000110,E14000700,Kent,2017-10-03,marketed sale,59,76,222,120.0,4.5,39,2.5,106.0,71.0,737.0,631.0,150.0,84.0,115.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,0.0,6.0,6.0,50.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, filled cavity",Good,Good,"Room heaters, mains gas",,,"Pitched, limited insulation (assumed)",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"8, Barleyfields, Weavering",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1976-1982,2017-10-03 20:33:19,owner-occupied,,,200003716533.0,Address Matched +73679109702015041111120443550918,"47, Chamberlain Avenue",,,ME16 8NT,2795505468,D,B,66,86,House,Semi-Detached,2015-04-09,E07000110,E14000804,Kent,2015-04-11,marketed sale,62,85,237,79.0,3.3,42,1.1,76.0,51.0,592.0,419.0,107.0,76.0,79.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,50.0,0.0,From main system,Very Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 50% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"47, Chamberlain Avenue",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2015-04-11 11:12:04,owner-occupied,,,200003656055.0,Address Matched +765080351652012032320151597220195,"6, Malling Road",Teston,,ME18 5AU,1542176968,D,D,63,67,House,Semi-Detached,2012-03-23,E07000110,E14000804,Kent,2012-03-23,rental (private),60,65,228,202.0,4.1,44,3.6,93.0,50.0,647.0,600.0,105.0,105.0,93.53,Single,Y,NODATA!,,,2106.0,90.0,double glazing installed during or after 2002,Normal,3.0,4.0,4.0,13.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Mostly double glazing,Good,Good,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,,,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 13% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,2.35,0.0,,natural,"6, Malling Road, Teston",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1930-1949,2012-03-23 20:15:15,rental (private),15.0,2.0,200003667990.0,Address Matched +dbb61f86386ed85597e65122c1a2502925f700fe8da1b1482b7027f9ead264f9,9 Maxted Road,,,ME14 4FN,10001588445,B,B,89,90,House,End-Terrace,2021-09-15,E07000110,E14000804,Kent,2021-09-15,new dwelling,91,92,49,39.0,0.9,9,0.7,85.0,85.0,241.0,241.0,68.0,41.0,99.0,standard tariff,,,N,,,100.0,,,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.17 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.41,,,,9 Maxted Road,Maidstone,Maidstone and The Weald,Thurnham,2018,2021-09-15 15:12:45,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,1.0,,10094444642.0,Address Matched +1677041029602018110715054465180738,"7, Foster Clarke Drive",Boughton Monchelsea,,ME17 4SZ,9685821678,C,B,70,88,House,Semi-Detached,2018-11-07,E07000110,E14000700,Kent,2018-11-07,ECO assessment,68,88,222,68.0,2.5,39,0.8,50.0,50.0,351.0,339.0,185.0,66.0,65.0,Unknown,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,0.0,5.0,5.0,100.0,0.0,From main system,Good,Good,"Solid, limited insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, insulated (assumed)",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"7, Foster Clarke Drive, Boughton Monchelsea",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1996-2002,2018-11-07 15:05:44,owner-occupied,,,200003722721.0,Address Matched +395585250022009111009521329418191,8 Melrose Close,,,ME15 6ZE,9234569668,B,B,88,88,Flat,NO DATA!,2009-11-09,E07000110,E14000804,Kent,2009-11-10,new dwelling,87,87,110,107.0,1.0,17,1.0,43.0,33.0,212.0,214.0,76.0,76.0,59.67,standard tariff,,ground floor,,,2106.0,,NO DATA!,NO DATA!,,,,9.0,0.0,From main system,Very Good,Very Good,Average thermal transmittance 0.20 W/m?K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.21 W/m?K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 69% of fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,8 Melrose Close,Maidstone,Maidstone and The Weald,MAIDSTONE,,2009-11-10 09:52:13,,,,10014306997.0,Address Matched +1105793489302014120408402022040228,"10, Langham Grove",,,ME16 0LA,3314280278,E,B,41,90,Bungalow,Semi-Detached,2014-12-02,E07000110,E14000804,Kent,2014-12-04,none of the above,44,92,387,34.0,4.4,72,0.5,80.0,40.0,620.0,343.0,470.0,62.0,61.0,Single,Y,NODATA!,,,2102.0,100.0,double glazing installed before 2002,Normal,0.0,3.0,3.0,0.0,0.0,No system present: electric immersion assumed,Very Poor,Very Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, no room thermostat",Very Poor,Very Poor,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"10, Langham Grove",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2014-12-04 08:40:20,owner-occupied,6.0,0.0,200003656962.0,Address Matched +1744371859132019112612472063278891,"5, Challenger Way",Marden,,TN12 9GN,5163816678,B,A,83,93,House,Detached,2019-11-26,E07000110,E14000804,Kent,2019-11-26,new dwelling,84,93,88,26.0,1.8,16,0.6,78.0,78.0,282.0,282.0,98.0,55.0,116.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.29 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.14 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"5, Challenger Way, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,NO DATA!,2019-11-26 12:47:20,unknown,10.0,10.0,10094439847.0,Address Matched +970198889922013071215260901928097,"52, Birch Drive",,,ME5 8YU,9012811178,C,A,71,92,House,Enclosed End-Terrace,2013-07-12,E07000110,E14000700,Kent,2013-07-12,marketed sale,74,96,192,4.0,1.6,37,0.1,55.0,28.0,346.0,288.0,32.0,33.0,43.0,Single,Y,NODATA!,,,2107.0,100.0,double glazing installed before 2002,Normal,1.0,2.0,2.0,0.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, partial insulation (assumed)",Average,Average,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, TRVs and bypass",Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"52, Birch Drive",Maidstone,Faversham and Mid Kent,CHATHAM,England and Wales: 1976-1982,2013-07-12 15:26:09,owner-occupied,5.0,0.0,200003676653.0,Address Matched +647462716932011062810365273268700,"41, Marigold Way",,,ME16 0ZJ,1033797868,C,C,79,79,House,Mid-Terrace,2011-06-28,E07000110,E14000804,Kent,2011-06-28,marketed sale,79,79,110,110.0,2.6,21,2.6,72.0,72.0,425.0,425.0,81.0,81.0,125.14,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,7.0,7.0,79.0,0.0,From main system,Good,Good,"Suspended, insulated (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 79% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,2.8,0.0,,natural,"41, Marigold Way",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2011-06-28 10:36:52,owner-occupied,14.0,11.0,10022901871.0,Address Matched +634525233232012072108355133268502,Wattle Gates,Station Road,Staplehurst,TN12 0QQ,3213507868,E,C,45,74,House,Detached,2012-07-20,E07000110,E14000804,Kent,2012-07-21,non marketed sale,43,74,285,118.0,7.8,54,3.2,121.0,71.0,1380.0,841.0,161.0,78.0,144.0,dual,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,4.0,8.0,8.0,31.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,"Room heaters, electric",,,"Pitched, 300+ mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Average,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 31% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"Wattle Gates, Station Road, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1950-1966,2012-07-21 08:35:51,owner-occupied,16.0,5.0,200003679458.0,Address Matched +1330936169342018021409230935689478,"31, Rushford Close",Headcorn,,TN27 9QD,4355966378,D,B,62,85,House,Semi-Detached,2018-02-13,E07000110,E14000700,Kent,2018-02-14,marketed sale,60,86,262,83.0,3.3,43,1.0,65.0,65.0,595.0,403.0,143.0,70.0,77.0,Unknown,Y,NODATA!,,,2104.0,25.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,80.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Some double glazing,Poor,Poor,"Cavity wall, filled cavity",Average,Average,"Room heaters, wood logs",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 80% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"31, Rushford Close, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,England and Wales: 1967-1975,2018-02-14 09:23:09,owner-occupied,,,200003698608.0,Address Matched +16473050212017102814022098239144,221 Wallis Place,Hart Street,,ME16 8FF,1494088468,C,C,80,80,Flat,Enclosed Mid-Terrace,2017-10-28,E07000110,E14000804,Kent,2017-10-28,non marketed sale,83,83,116,116.0,1.3,20,1.3,62.0,62.0,226.0,226.0,82.0,82.0,63.0,dual,Y,2nd,N,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,86.0,0.0,From main system,Good,Good,"To external air, insulated (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 86% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,unheated corridor,9.82,,,N,natural,"221 Wallis Place, Hart Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2017-10-28 14:02:20,owner-occupied,,,10022900829.0,Address Matched +684133649262011092912013090718469,8 Hewson Court,Church Street,,ME14 1FH,6907450968,B,B,81,81,Flat,NO DATA!,2011-09-29,E07000110,E14000804,Kent,2011-09-29,new dwelling,82,83,123,119.0,1.5,22,1.5,52.0,38.0,205.0,208.0,100.0,100.0,70.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,5.0,,From main system,Average,Good,(other premises below),,,Fully double glazed,Good,Good,Average thermal transmittance 0.25 W/m?K,Very Good,Very Good,,,,(other premises above),,,"Air source heat pump, underfloor, electric",Good,Very Good,Programmer and at least two room thermostats,Good,Good,Low energy lighting in 63% of fixed outlets,Good,Good,"Electricity: electricity, unspecified tariff",0.0,NO DATA!,,2.6,,,NO DATA!,"8 Hewson Court, Church Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2011-09-29 12:01:30,,8.0,5.0,10014306390.0,Address Matched +1686360799502018121713011065189838,Flat 3 Valley Heights,"10, Whatman Drive",,ME14 5FZ,3598791678,B,B,84,84,Flat,End-Terrace,2018-12-17,E07000110,E14000700,Kent,2018-12-17,new dwelling,86,86,86,86.0,1.2,15,1.2,57.0,57.0,206.0,206.0,72.0,72.0,78.0,standard tariff,,ground floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.18 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.26 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Flat 3 Valley Heights, 10, Whatman Drive",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2018-12-17 13:01:10,owner-occupied,9.0,9.0,10093305908.0,Address Matched +1095817680532015101708502406978791,"56, Church Road",,,ME15 6QY,8126700278,C,B,69,84,House,End-Terrace,2015-10-16,E07000110,E14000804,Kent,2015-10-17,FiT application,66,81,210,106.0,3.1,37,1.6,59.0,59.0,543.0,501.0,136.0,84.0,83.0,dual,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,4.0,4.0,100.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Solid brick, with internal insulation",Good,Good,"Room heaters, mains gas",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"56, Church Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2015-10-17 08:50:24,owner-occupied,,,200003664539.0,Address Matched +1375001200532015101512035044978296,Flat 5,"24, Tonbridge Road",,ME16 8RT,664289378,B,B,88,88,Flat,NO DATA!,2015-10-14,E07000110,E14000804,Kent,2015-10-15,new dwelling,92,92,49,49.0,0.7,10,0.7,57.0,57.0,211.0,211.0,76.0,76.0,69.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.18 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"Flat 5, 24, Tonbridge Road",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2015-10-15 12:03:50,unknown,25.0,25.0,10014316075.0,Address Matched +564445756132019062108241716268902,"126, Howard Drive",,,ME16 0QB,5256951868,D,B,65,85,House,Semi-Detached,2019-06-20,E07000110,E14000804,Kent,2019-06-21,marketed sale,59,83,244,86.0,3.7,43,1.3,68.0,68.0,630.0,420.0,99.0,67.0,85.0,Unknown,Y,NODATA!,,,2106.0,100.0,"double glazing, unknown install date",Normal,1.0,4.0,4.0,91.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 91% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"126, Howard Drive",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2019-06-21 08:24:17,owner-occupied,,,200003703216.0,Address Matched +1743016889962019081314233226278361,"2, Seymour Drive",Marden,,TN12 9GT,6250806678,B,B,85,90,House,Detached,2019-08-13,E07000110,E14000804,Kent,2019-08-13,new dwelling,85,89,74,51.0,3.1,12,2.2,120.0,120.0,558.0,558.0,102.0,102.0,259.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.21 W/m-¦K,Very Good,Very Good,"Room heaters, wood logs",,,Average thermal transmittance 0.17 W/m-¦K,Good,Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"2, Seymour Drive, Marden",Maidstone,Maidstone and The Weald,TONBRIDGE,NO DATA!,2019-08-13 14:23:32,unknown,10.0,10.0,10094441107.0,Address Matched +451408759542016022416464073350558,"7, Orchard View",Detling,,ME14 3NR,6554853768,D,B,55,83,House,Detached,2015-02-05,E07000110,E14000700,Kent,2016-02-24,ECO assessment,51,83,301,90.0,4.6,53,1.4,107.0,55.0,839.0,504.0,155.0,74.0,88.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,1.0,5.0,5.0,7.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,"Pitched, 300 mm loft insulation",Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 7% of fixed outlets,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,,N,natural,"7, Orchard View, Detling",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1983-1990,2016-02-24 16:46:40,owner-occupied,,,200003725357.0,Address Matched +836019222652012091711360197920101,"24, The Orchard",Bearsted,,ME14 4QL,1134271078,D,C,62,75,House,Detached,2012-09-17,E07000110,E14000700,Kent,2012-09-17,marketed sale,56,69,190,126.0,8.4,36,5.7,175.0,87.0,1293.0,1079.0,159.0,132.0,230.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,7.0,7.0,0.0,0.0,From main system,Good,Good,"Suspended, limited insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, mains gas",,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"24, The Orchard, Bearsted",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1996-2002,2012-09-17 11:36:01,owner-occupied,25.0,0.0,200003693489.0,Address Matched +503850251732013091618171441968804,"51, South Park Road",,,ME15 7AL,5441827768,D,B,61,85,House,End-Terrace,2013-09-15,E07000110,E14000700,Kent,2013-09-16,none of the above,62,87,232,65.0,3.0,44,0.9,65.0,42.0,587.0,406.0,87.0,61.0,69.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,44.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, electric",,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 44% of fixed outlets,Average,Average,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"51, South Park Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2013-09-16 18:17:14,rental (private),9.0,4.0,200003715867.0,Address Matched +dbe40cf4352fc38c18ea14abc89bc10da3fc061950bde16b994b6d4c52e636e9,Flat 8,61 Bower Mount Road,,ME16 8AS,5886319568,D,C,58,69,Flat,Semi-Detached,2021-08-23,E07000110,E14000804,Kent,2021-08-23,rental,42,59,803,531.0,2.8,136,1.8,25.0,25.0,451.0,265.0,175.0,175.0,20.0,dual,N,04,Y,,,100.0,"double glazing, unknown install date",Normal,0.0,1.0,1.0,100.0,0.0,Electric instantaneous at point of use,Very Poor,Poor,(another dwelling below),,,Fully double glazed,Average,Average,"Timber frame, as built, partial insulation (assumed)",Average,Average,Portable electric heaters (assumed),,,"Pitched, limited insulation (assumed)",Very Poor,Very Poor,Electric storage heaters,Average,Very Poor,Automatic charge control,Average,Average,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,unheated corridor,4.36,2.2,0.0,N,natural,"Flat 8, 61 Bower Mount Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1967-1975,2021-08-23 13:12:20,Rented (private),6.0,,10014310653.0,Energy Assessor +159837700922008101020002122408568,"8, Becket Court",Station Road,,TN27 9SF,6264032568,D,D,57,62,House,Mid-Terrace,2008-10-10,E07000110,E14000700,Kent,2008-10-10,rental (private),49,51,474,452.0,3.8,71,3.6,47.0,26.0,359.0,328.0,111.0,111.0,40.3,dual,N,NO DATA!,,,2402.0,80.0,double glazing installed before 2002,Normal,0.0,2.0,2.0,15.0,0.0,"Electric immersion, off-peak",Poor,Poor,"Solid, no insulation (assumed)",,,Partial double glazing,Poor,Poor,"Cavity wall, as built, insulated (assumed)",Good,Good,"Room heaters, electric",,,"Pitched, 100mm loft insulation",Average,Average,Electric storage heaters,Poor,Very Poor,Automatic charge control,Average,Average,Low energy lighting in 15% of fixed outlets,Poor,Poor,electricity - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.26,0.0,N,natural,"8, Becket Court, Station Road",Maidstone,Faversham and Mid Kent,ASHFORD,England and Wales: 1983-1990,2008-10-10 20:00:21,rental (private),,,200003699856.0,Address Matched +1541046959222017090311220781738783,60 Tonbridge Road,,,ME16 8SE,8883551578,C,A,78,94,House,End-Terrace,2017-08-27,E07000110,E14000804,Kent,2017-09-03,new dwelling,81,97,139,-2.0,1.2,25,0.0,38.0,38.0,221.0,221.0,71.0,43.0,48.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.38 W/m-¦K,Average,Average,Fully double glazed,Good,Good,Average thermal transmittance 0.25 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.15 W/m-¦K,Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,60 Tonbridge Road,Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2017-09-03 11:22:07,unknown,6.0,6.0,10093305975.0,Address Matched +1663479161832018091413385202978109,"70, Edmett Way",,,ME17 3GD,6952130678,B,A,85,94,House,Semi-Detached,2018-09-14,E07000110,E14000700,Kent,2018-09-14,new dwelling,87,96,76,17.0,1.6,13,0.4,81.0,81.0,255.0,255.0,78.0,47.0,118.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.23 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.19 W/m-¦K,Good,Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"70, Edmett Way",Maidstone,Faversham and Mid Kent,MAIDSTONE,NO DATA!,2018-09-14 13:38:52,unknown,7.0,7.0,10093307036.0,Address Matched +1097146913012015052814224992250123,"19, Moorhen Road",,,ME15 6XJ,1314320278,B,A,83,94,House,Detached,2015-05-28,E07000110,E14000804,Kent,2015-05-28,new dwelling,85,96,98,17.0,1.5,17,0.3,54.0,54.0,269.0,269.0,94.0,59.0,86.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,,0.0,From main system,Good,Good,Average thermal transmittance 0.15 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.10 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"19, Moorhen Road",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2015-05-28 14:22:49,owner-occupied,12.0,12.0,10014315313.0,Address Matched +916937719062014080820253457588594,"6, Cornwall Close",,,ME15 8HS,9517147078,E,B,52,87,House,Mid-Terrace,2014-08-08,E07000110,E14000700,Kent,2014-08-08,marketed sale,50,87,265,56.0,5.4,50,1.2,114.0,63.0,906.0,443.0,328.0,84.0,109.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,18.0,0.0,"Electric immersion, standard tariff",Very Poor,Very Poor,"Solid, no insulation (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,"Room heaters, mains gas",,,"Pitched, 25 mm loft insulation",Poor,Poor,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 18% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"6, Cornwall Close",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1950-1966,2014-08-08 20:25:34,owner-occupied,22.0,4.0,200003684927.0,Address Matched +273779684132009060817331600268401,13 Sheals Court,Old Tovil Road,,ME15 6PP,8140411668,B,B,84,86,Flat,Semi-Detached,2009-04-27,E07000110,E14000804,Kent,2009-06-08,rental (social),84,85,152,141.0,1.1,25,1.0,40.0,20.0,169.0,171.0,67.0,67.0,42.3,Single,Y,1st,N,3.0,2106.0,100.0,double glazing installed before 2002,Normal,0.0,2.0,2.0,0.0,0.0,From main system,Very Good,Very Good,(other premises below),,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,(another dwelling above),,,"Boiler and radiators, mains gas",Very Good,Very Good,"Programmer, room thermostat and TRVs",Average,Average,No low energy lighting,Very Poor,Very Poor,mains gas - this is for backwards compatibility only and should not be used,0.0,unheated corridor,7.0,2.29,0.0,N,natural,"13 Sheals Court, Old Tovil Road",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2009-06-08 17:33:16,rental (social),,,200003682697.0,Address Matched +1351110412642020010414151936800578,"26, Jeffery Close",Staplehurst,,TN12 0TH,5662418378,D,C,62,76,House,Detached,2020-01-03,E07000110,E14000804,Kent,2020-01-04,marketed sale,56,71,248,151.0,4.2,45,2.6,110.0,75.0,691.0,654.0,126.0,81.0,93.0,dual,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,5.0,5.0,55.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,"Room heaters, dual fuel (mineral and wood)",,,"Pitched, limited insulation (assumed)",Very Poor,Very Poor,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 55% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"26, Jeffery Close, Staplehurst",Maidstone,Maidstone and The Weald,TONBRIDGE,England and Wales: 1967-1975,2020-01-04 14:15:19,owner-occupied,,,200003678799.0,Address Matched +dc318c6c27a3105763103d66b0556fe2bb28101026db841ddcbab628483b1db8,"Flat 10 Adeline Heights, Rosalind Drive",,,ME14 2FP,10001613276,B,B,84,84,Flat,Mid-Terrace,2021-07-15,E07000110,E14000804,Kent,2021-07-15,new dwelling,87,87,84,84.0,1.1,15,1.1,63.0,63.0,190.0,190.0,69.0,69.0,72.0,standard tariff,,1,N,,,100.0,,,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.14 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.39 W/m-¦K,Good,Good,,,,(other premises above),,,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,Gas: mains gas,0.0,,,2.5,,,,"Flat 10 Adeline Heights, Rosalind Drive",Maidstone,Maidstone and The Weald,Maidstone,2018,2021-07-15 10:04:14,Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used for an existing dwelling,10.0,,10094441273.0,Address Matched +dc39837537fb6ed27751bcf18692f5446417a79ac698246a4d45886e10630688,4 Greenfields,,,ME15 8ET,10001564740,D,C,65,79,House,Detached,2021-09-24,E07000110,E14000700,Kent,2021-09-27,marketed sale,59,73,224,138.0,5.2,40,3.3,148.0,92.0,818.0,728.0,131.0,81.0,132.0,Unknown,Y,,,,,100.0,"double glazing, unknown install date",Normal,2.0,6.0,6.0,40.0,0.0,From main system,Good,Good,"Solid, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Average,Average,"Room heaters, mains gas",,,"Pitched, 100 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 40% of fixed outlets,Average,Average,mains gas (not community),0.0,,,2.46,0.0,N,natural,4 Greenfields,Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1967-1975,2021-09-27 11:40:33,Owner-occupied,15.0,,200003685535.0,Energy Assessor +1369648875852015093018225694750435,"52, Park Way",Coxheath,,ME17 4HH,4593549378,D,A,55,103,House,Semi-Detached,2015-09-30,E07000110,E14000804,Kent,2015-09-30,none of the above,46,99,310,-9.0,6.7,55,-0.1,102.0,70.0,1102.0,531.0,252.0,79.0,122.0,Single,Y,NODATA!,,,2104.0,100.0,double glazing installed during or after 2002,Normal,0.0,4.0,4.0,55.0,0.0,From main system,Average,Average,"Solid, no insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, no insulation (assumed)",Poor,Poor,,,,"Pitched, 250 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,Programmer and room thermostat,Average,Average,Low energy lighting in 55% of fixed outlets,Good,Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"52, Park Way, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1950-1966,2015-09-30 18:22:56,owner-occupied,,,200003715265.0,Address Matched +440548159922010021814550642188000,"24, Stagshaw Close",,,ME15 6TN,408582768,B,B,82,83,House,Mid-Terrace,2010-02-18,E07000110,E14000804,Kent,2010-02-18,rental (private),81,81,148,144.0,1.5,25,1.5,47.0,34.0,237.0,239.0,88.0,88.0,61.28,Single,Y,NO DATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,3.0,3.0,62.0,0.0,From main system,Good,Good,"Solid, insulated (assumed)",,,Fully double glazed,Good,Good,"Timber frame, as built, insulated (assumed)",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 62% of fixed outlets,Good,Good,mains gas - this is for backwards compatibility only and should not be used,0.0,NO DATA!,,2.38,0.0,N,natural,"24, Stagshaw Close",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2010-02-18 14:55:06,rental (private),,,10022893266.0,Address Matched +657191123932011072510195976268507,"15, Camden Street",,,ME14 1UU,2716568868,D,D,63,66,House,Mid-Terrace,2011-07-25,E07000110,E14000804,Kent,2011-07-25,rental (social),66,68,260,239.0,2.4,49,2.2,57.0,28.0,442.0,429.0,73.0,73.0,49.17,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,1.0,2.0,2.0,0.0,0.0,From main system,Good,Good,"To unheated space, limited insulation (assumed)",,,Fully double glazed,Average,Average,"Solid brick, as built, no insulation (assumed)",Very Poor,Very Poor,"Room heaters, electric",,,"Pitched, 75 mm loft insulation",Average,Average,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,No low energy lighting,Very Poor,Very Poor,mains gas (not community),0.0,NO DATA!,,2.33,0.0,,natural,"15, Camden Street",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 1900-1929,2011-07-25 10:19:59,rental (social),6.0,0.0,200003699081.0,Address Matched +596881729602012042420595486422578,"178, South Park Road",,,ME15 7AJ,5696024868,C,B,73,89,House,Mid-Terrace,2012-04-23,E07000110,E14000700,Kent,2012-04-24,rental (social),74,91,157,37.0,2.0,30,0.5,68.0,38.0,319.0,302.0,101.0,67.0,69.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed before 2002,Normal,0.0,5.0,5.0,22.0,0.0,From main system,Good,Good,"Suspended, no insulation (assumed)",,,Fully double glazed,Average,Average,"Cavity wall, filled cavity",Good,Good,,,,"Pitched, 150 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 22% of fixed outlets,Poor,Poor,mains gas (not community),0.0,NO DATA!,,,0.0,,natural,"178, South Park Road",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1930-1949,2012-04-24 20:59:54,rental (social),9.0,2.0,200003715834.0,Address Matched +1593454199262017113008400215218343,"4, Brooker Close",Boughton Monchelsea,,ME17 4UY,4109925578,D,C,64,77,House,Detached,2017-11-29,E07000110,E14000700,Kent,2017-11-30,marketed sale,56,71,237,147.0,5.3,42,3.3,77.0,77.0,873.0,796.0,184.0,77.0,127.0,Single,Y,NODATA!,,,2106.0,100.0,double glazing installed during or after 2002,Normal,0.0,5.0,5.0,94.0,0.0,From main system,Good,Good,"Solid, limited insulation (assumed)",NO DATA!,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,"Pitched, 200 mm loft insulation",Good,Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Good,Good,Low energy lighting in 94% of fixed outlets,Very Good,Very Good,mains gas (not community),0.0,NO DATA!,,,,N,natural,"4, Brooker Close, Boughton Monchelsea",Maidstone,Faversham and Mid Kent,MAIDSTONE,England and Wales: 1996-2002,2017-11-30 08:40:02,owner-occupied,,,10022892678.0,Address Matched +1552417070352017061611385594930355,"8, The Weavers",Headcorn,,TN27 9AQ,3563042578,B,A,85,97,House,End-Terrace,2017-06-16,E07000110,E14000700,Kent,2017-06-16,new dwelling,88,100,79,-10.0,1.1,14,-0.1,56.0,56.0,184.0,184.0,85.0,51.0,78.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.14 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.21 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.11 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,Time and temperature zone control,Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"8, The Weavers, Headcorn",Maidstone,Faversham and Mid Kent,ASHFORD,NO DATA!,2017-06-16 11:38:55,unknown,20.0,20.0,10093304434.0,Address Matched +1508106069962017061311460399278443,Apartment 31 Kings Lodge,"71, King Street",,ME14 1BG,4966629478,B,B,84,84,Flat,Enclosed Mid-Terrace,2017-06-13,E07000110,E14000804,Kent,2017-06-13,new dwelling,94,94,52,52.0,0.4,9,0.4,35.0,35.0,105.0,105.0,96.0,96.0,46.0,standard tariff,,mid floor,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,Community scheme,Good,Very Good,(other premises below),,,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.24 W/m-¦K,Very Good,Very Good,,,,(other premises above),,,Community scheme,Good,Very Good,"Charging system linked to use of community heating, programmer and TRVs",Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,NO DATA!,,NO DATA!,,,,,NO DATA!,"Apartment 31 Kings Lodge, 71, King Street",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2017-06-13 11:46:03,owner-occupied,5.0,5.0,10093302763.0,Address Matched +152160629922012121612410011968462,"29, Passmore Way",Tovil,,ME15 6DZ,6197231568,C,C,74,77,Flat,End-Terrace,2012-12-16,E07000110,E14000804,Kent,2012-12-16,rental (private),68,71,264,239.0,1.9,47,1.7,27.0,27.0,231.0,194.0,111.0,111.0,41.0,dual,N,Ground,N,,2603.0,100.0,double glazing installed during or after 2002,Normal,0.0,2.0,2.0,100.0,0.0,"Electric immersion, off-peak",Average,Very Poor,"Suspended, insulated (assumed)",,,Fully double glazed,Good,Good,"Cavity wall, as built, insulated (assumed)",Good,Good,,,,(another dwelling above),,,"Room heaters, electric",Poor,Very Poor,Programmer and appliance thermostats,Good,Good,Low energy lighting in all fixed outlets,Very Good,Very Good,electricity (not community),0.0,no corridor,,,0.0,,natural,"29, Passmore Way, Tovil",Maidstone,Maidstone and The Weald,MAIDSTONE,England and Wales: 2003-2006,2012-12-16 12:41:00,rental (private),5.0,5.0,10022892084.0,Address Matched +1680715828132019081217121360978705,10 Braeburn Way,Coxheath,,ME17 4FU,2550751678,B,A,84,95,House,Semi-Detached,2019-08-12,E07000110,E14000804,Kent,2019-08-12,new dwelling,86,97,85,9.0,1.4,15,0.2,68.0,68.0,231.0,231.0,75.0,45.0,92.0,standard tariff,,NO DATA!,,,,,NO DATA!,NO DATA!,,,,100.0,0.0,From main system,Good,Good,Average thermal transmittance 0.13 W/m-¦K,Very Good,Very Good,High performance glazing,Very Good,Very Good,Average thermal transmittance 0.25 W/m-¦K,Very Good,Very Good,,,,Average thermal transmittance 0.10 W/m-¦K,Very Good,Very Good,"Boiler and radiators, mains gas",Good,Good,"Programmer, room thermostat and TRVs",Very Good,Very Good,Low energy lighting in all fixed outlets,Very Good,Very Good,mains gas - this is for backwards compatibility only and should not be used,,NO DATA!,,,,,NO DATA!,"10 Braeburn Way, Coxheath",Maidstone,Maidstone and The Weald,MAIDSTONE,NO DATA!,2019-08-12 17:12:13,unknown,20.0,20.0,10094440216.0,Address Matched From df989ba9189ee5eb0e1cbcb3b9fb9ba9cb78a726 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Wed, 13 Dec 2023 12:39:25 +0000 Subject: [PATCH 061/526] implementing eco4 indicative view --- etl/eligibility/Eligibility.py | 161 +++++++++++++++++++++++++++++--- etl/eligibility/ha_15_32/app.py | 47 ++++++++-- 2 files changed, 187 insertions(+), 21 deletions(-) diff --git a/etl/eligibility/Eligibility.py b/etl/eligibility/Eligibility.py index 8b205c79..9de09039 100644 --- a/etl/eligibility/Eligibility.py +++ b/etl/eligibility/Eligibility.py @@ -59,6 +59,8 @@ class Eligibility: self.loft_insulation() self.cavity_insulation() + self.tenure = self.tenure_remap.get(self.epc["tenure"], None) + def parse_fabric(self, key): # Get the cleaned version of the description @@ -388,7 +390,6 @@ class Eligibility: self.suspended_floor_insulation() self.solid_floor_insulation() - tenure = self.tenure_remap.get(self.epc["tenure"], None) current_sap = int(self.epc["current-energy-efficiency"]) is_below_e = current_sap <= 54 is_below_c = current_sap <= 68 @@ -403,19 +404,19 @@ class Eligibility: self.solid_floor["suitability"] ) - if tenure == "Rented (social)": + if self.tenure == "Rented (social)": if is_below_c and (not is_below_e): # this is a placeholder methodology self.gbis = { - "eligible": int(self.epc["potential-energy-efficiency"]) > current_sap, - "message": "proxy methodology until we complete innovation measure recommendations" + "eligible": int(self.epc["potential-energy-efficiency"]) > 68, + "message": "contingent on innovation measure delivery" } return - elif (not is_below_c) and is_below_e: + elif is_below_e: self.gbis = { "eligible": needs_measure, - "message": "proxy methodology until we complete innovation measure recommendations" + "message": "eligible under fabric measure" } return else: @@ -425,20 +426,20 @@ class Eligibility: } return - elif tenure == "Rented (private)": + elif self.tenure == "Rented (private)": self.gbis = { "eligible": is_below_c and needs_measure, - "message": "conditional tenant occupancy requirements and coucil tax band" + "message": "eligible under fabric measure" } return - elif tenure == "Owner-occupied": + elif self.tenure == "Owner-occupied": self.gbis = { "eligible": False, "message": "Out-of-scope" } return - elif (tenure is None) or tenure == "unknown": + elif (self.tenure is None) or self.tenure == "unknown": self.gbis = { "eligible": needs_measure, "message": "unknown tenure" @@ -447,8 +448,144 @@ class Eligibility: else: raise ValueError("Implement me other tenure types") - def check_eco4_potential(self): + def check_eco4(self): """ - Because ECO4 supports nearly all measures, if we have commercial agreements in place then we + Because ECO4 supports nearly all measures. If we have commercial agreements in place then a large number + of homes would be eligible for eco funding, if identified. + + These are the eligibility criteria we consider for this process: + Privately rented, Help to heat group + - Sap E-G + - Must receive one of solid wall insulation, first time central heating or district heating control + - The property must already have cavity walls and roof insulated + + Social Housing, SAP D + - Innovation measures and insulation measures to meet the minimum insulation requirement + - Improvement to at least band C + - Fabric measures + - If receiving any heating measures, must have at least one insulation measure first + + Social Housing, SAP E-G + - Insulation measures, first time central heating, renewable heating, district heating connection, + innovation measures + - Improvement to D (F & G properties) or C (E properties) + - If receiving any heating measure, must already have cavity and roof insulation + + Privately rented, ECO4 Flex route 1, 2, 3, 4 + - Must have SAP E-G + - Most measures eligible, but must receive one of solid wall insulation, first time central heating, + renewable heating and district heating control + - Improvement to D (F & G properties) or C (E properties) + - All homes receiving heating measures must first have insulated cavity/roof + + + The flex routes are given here: + https://so-eco.co.uk/what-is-eco4-flex/#:~:text=One%20way%20to%20gain%20ECO4, + including%20elderly%20residents%20and%20lodgers. + :return: """ + + self.cavity_insulation() + self.loft_insulation() + self.solid_wall_insulation() + self.room_roof_insulation() + self.flat_roof_insulation() + self.suspended_floor_insulation() + self.solid_floor_insulation() + + current_sap = int(self.epc["current-energy-efficiency"]) + is_below_e = current_sap <= 54 + is_below_c = current_sap <= 68 + sap_potential = int(self.epc["potential-energy-efficiency"]) + + first_time_central_heating = "boiler" not in self.epc["mainheat-description"].lower() + + needs_fabric_measure = ( + self.cavity["suitability"] or + self.loft["suitability"] or + self.solid_wall["suitability"] or + self.room_roof["suitability"] or + self.flat_roof["suitability"] or + self.suspended_floor["suitability"] or + self.solid_floor["suitability"] + ) + + if current_sap <= 38 and sap_potential >= 55: + # sap needs to get to at least a D + expected_to_meet_upgrades = True + elif current_sap <= 68 and sap_potential >= 69: + # sap needs to get to at least a C + expected_to_meet_upgrades = True + else: + expected_to_meet_upgrades = False + + if self.tenure == "Rented (social)": + if is_below_c and (not is_below_e) and expected_to_meet_upgrades: + # If the property is a D, then it's eligible under innovation measures but requires improvement to a + # band C + self.eco4 = { + "eligible": True, + "message": "eligible under innovation measure and improvement to band C" + } + elif is_below_e and expected_to_meet_upgrades: + # If the property is an E or below, then it's eligible under fabric measures or heating/innovation + # measures + + message = "eligible under fabric measures, with sufficient post retrofit sap improvement" if ( + needs_fabric_measure) else ( + "eligible under heating and innovation measures, with sufficient post retrofit sap improvement" + ) + + self.eco4 = {"eligible": True, "message": message} + else: + if (current_sap <= 68) and expected_to_meet_upgrades: + raise ValueError("something is wrong") + self.eco4 = { + "eligible": False, + "message": "not eligible, above EPC C" + } + + return + + if self.tenure == 'Rented (private)': + # For private homes, the property needs to be an E or below + + # For private homes, the cavity must be filled and the roof insulated + cavity_filled = not self.cavity["suitability"] + roof_insulated = (not self.loft["suitability"]) and (not self.room_roof["suitability"]) and ( + not self.flat_roof["suitability"]) + + if is_below_e and cavity_filled and roof_insulated and expected_to_meet_upgrades: + + if self.solid_wall["suitability"]: + self.eco4 = { + "eligible": True, + "message": "eligible under solid wall insulation, conditional on post retrofit sap and help " + "to heat/ECO flex route" + } + elif first_time_central_heating: + + self.eco4 = { + "eligible": True, + "message": "eligible under first time central heating, conditional on post retrofit sap and " + "help to heat/ECO flex route" + } + else: + self.eco4 = { + "eligible": False, + "message": "not eligible at this time" + } + + return + + else: + self.eco4 = { + "eligible": False, + "message": "not eligible at this time, EPC too high" + } + + self.eco4 = { + "eligible": False, + "message": "Out of scope" + } diff --git a/etl/eligibility/ha_15_32/app.py b/etl/eligibility/ha_15_32/app.py index 027b2c53..9d752d2d 100644 --- a/etl/eligibility/ha_15_32/app.py +++ b/etl/eligibility/ha_15_32/app.py @@ -472,6 +472,8 @@ def get_ha_32data(ha_data, cleaned, cleaning_data, created_at): "message": "No EPC found", "gbis_eligible_future": None, "gbis_eligible_future_message": None, + "tenure": None, + "heating_description": None, } ) continue @@ -503,7 +505,7 @@ def get_ha_32data(ha_data, cleaned, cleaning_data, created_at): # If the house is not identified, we do a full gbis and eco4 check # TODO: Add in ECO4 check eligibility.check_gbis() - # eligibility.check_eco4() + eligibility.check_eco4() if eligibility.eco4_warmfront["eligible"]: scoring_dictionary = prepare_model_data_row( @@ -527,6 +529,8 @@ def get_ha_32data(ha_data, cleaned, cleaning_data, created_at): "message": "eco4 conditional on post sap", "gbis_eligible_future": eligibility.gbis["eligible"], "gbis_eligible_future_message": eligibility.gbis["message"], + "tenure": eligibility.tenure, + "heating_description": eligibility.epc["mainheat-description"], } ) continue @@ -545,6 +549,8 @@ def get_ha_32data(ha_data, cleaned, cleaning_data, created_at): "message": None, "gbis_eligible_future": eligibility.gbis["eligible"], "gbis_eligible_future_message": eligibility.gbis["message"], + "tenure": eligibility.tenure, + "heating_description": eligibility.epc["mainheat-description"], } ) @@ -738,15 +744,28 @@ def get_ha_15data(ha_data, cleaned, cleaning_data, created_at): eligibility_assessment = [] for _, row in results_df[results_df["eco4_eligible"] == True].iterrows(): + # The upgrade requirements are dependent on the current SAP - if row["post_install_sap"] >= 71: - eligibility_classification = "highest confidence" - elif row["post_install_sap"] >= 69: - eligibility_classification = "high confidence" - elif row["post_install_sap"] >= 67: - eligibility_classification = "medium confidence" + # If the property is an F or G, it only needs to upgrade to an % + if row["sap"] <= 38: + if row["post_install_sap"] >= 57: + eligibility_classification = "highest confidence" + elif row["post_install_sap"] >= 55: + eligibility_classification = "high confidence" + elif row["post_install_sap"] >= 53: + eligibility_classification = "medium confidence" + else: + eligibility_classification = "unlikely" else: - eligibility_classification = "unlikely" + + if row["post_install_sap"] >= 71: + eligibility_classification = "highest confidence" + elif row["post_install_sap"] >= 69: + eligibility_classification = "high confidence" + elif row["post_install_sap"] >= 67: + eligibility_classification = "medium confidence" + else: + eligibility_classification = "unlikely" eligibility_assessment.append( { @@ -841,11 +860,19 @@ def analyse_ha_32_results(results, ha32, no_house_numbers): (results_df["gbis_eligible"] | results_df["eco4_eligible"]) ].copy() + new_possibilities_full_gbis = results_df[ + (~results_df["warmfront_identified"]) & + (results_df["gbis_eligible_future"] == True) + ].copy() + # We deem that Any EPC that is produced in the last 3 years gives us good confidence cutoff_date = datetime.now() - timedelta(days=3 * 365) new_possibilities["high_confidence"] = pd.to_datetime(new_possibilities["date_epc"]) >= cutoff_date + new_possibilities_full_gbis["high_confidence"] = pd.to_datetime( + new_possibilities_full_gbis["date_epc"]) >= cutoff_date + # We do a quick check on properties that didn't have a house number: no_house_numbers_ha32 = ha32[ha32["row_id"].isin(no_house_numbers)]["identified"].sum() if no_house_numbers_ha32: @@ -853,7 +880,9 @@ def analyse_ha_32_results(results, ha32, no_house_numbers): new = { "n_new_possibilities": new_possibilities.shape[0], - "new_possibilities_confidence": new_possibilities["high_confidence"].value_counts() + "new_possibilities_confidence": new_possibilities["high_confidence"].value_counts(), + "new_possibilities_full_gbis": new_possibilities_full_gbis.shape[0], + "new_possibilities_full_gbis_confidence": new_possibilities_full_gbis["high_confidence"].value_counts() } return success_rate, new From 707724cdb14d228c4d93c0cf9ecd98937610e621 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Thu, 14 Dec 2023 10:16:57 +0000 Subject: [PATCH 062/526] Adding more ha analysis --- etl/eligibility/ha_15_32/app.py | 95 +++++++++++++++++++++++++++++---- 1 file changed, 85 insertions(+), 10 deletions(-) diff --git a/etl/eligibility/ha_15_32/app.py b/etl/eligibility/ha_15_32/app.py index 9d752d2d..48dd5daf 100644 --- a/etl/eligibility/ha_15_32/app.py +++ b/etl/eligibility/ha_15_32/app.py @@ -472,6 +472,8 @@ def get_ha_32data(ha_data, cleaned, cleaning_data, created_at): "message": "No EPC found", "gbis_eligible_future": None, "gbis_eligible_future_message": None, + "eco4_eligible_future": None, + "eco4_eligible_future_message": None, "tenure": None, "heating_description": None, } @@ -529,6 +531,8 @@ def get_ha_32data(ha_data, cleaned, cleaning_data, created_at): "message": "eco4 conditional on post sap", "gbis_eligible_future": eligibility.gbis["eligible"], "gbis_eligible_future_message": eligibility.gbis["message"], + "eco4_eligible_future": eligibility.eco4["eligible"], + "eco4_eligible_future_message": eligibility.eco4["message"], "tenure": eligibility.tenure, "heating_description": eligibility.epc["mainheat-description"], } @@ -549,6 +553,8 @@ def get_ha_32data(ha_data, cleaned, cleaning_data, created_at): "message": None, "gbis_eligible_future": eligibility.gbis["eligible"], "gbis_eligible_future_message": eligibility.gbis["message"], + "eco4_eligible_future": eligibility.eco4["eligible"], + "eco4_eligible_future_message": eligibility.eco4["message"], "tenure": eligibility.tenure, "heating_description": eligibility.epc["mainheat-description"], } @@ -613,6 +619,10 @@ def get_ha_15data(ha_data, cleaned, cleaning_data, created_at): "walls": None, "date_epc": None, "message": "No EPC found", + "eco4_eligible_future": None, + "eco4_eligible_future_message": None, + "tenure": None, + "heating_description": None, } ) continue @@ -641,6 +651,11 @@ def get_ha_15data(ha_data, cleaned, cleaning_data, created_at): eligibility.check_gbis_warmfront() eligibility.check_eco4_warmfront() + # If the house is not identified, we do a full gbis and eco4 check + # TODO: Add in ECO4 check + eligibility.check_gbis() + eligibility.check_eco4() + if eligibility.eco4_warmfront["eligible"]: scoring_dictionary = prepare_model_data_row( property_id=house["row_id"], @@ -661,6 +676,12 @@ def get_ha_15data(ha_data, cleaned, cleaning_data, created_at): "walls": eligibility.walls["clean_description"], "date_epc": eligibility.epc["lodgement-date"], "message": "eco4 conditional on post sap", + "gbis_eligible_future": eligibility.gbis["eligible"], + "gbis_eligible_future_message": eligibility.gbis["message"], + "eco4_eligible_future": eligibility.eco4["eligible"], + "eco4_eligible_future_message": eligibility.eco4["message"], + "tenure": eligibility.tenure, + "heating_description": eligibility.epc["mainheat-description"], } ) continue @@ -676,7 +697,13 @@ def get_ha_15data(ha_data, cleaned, cleaning_data, created_at): "roof": eligibility.roof["clean_description"], "walls": eligibility.walls["clean_description"], "date_epc": eligibility.epc["lodgement-date"], - "message": None + "message": None, + "gbis_eligible_future": eligibility.gbis["eligible"], + "gbis_eligible_future_message": eligibility.gbis["message"], + "eco4_eligible_future": eligibility.eco4["eligible"], + "eco4_eligible_future_message": eligibility.eco4["message"], + "tenure": eligibility.tenure, + "heating_description": eligibility.epc["mainheat-description"], } ) @@ -794,6 +821,7 @@ def analyse_ha_32_results(results, ha32, no_house_numbers): """ results_df = pd.DataFrame(results) + results_df["tenure"] = results_df["tenure"].fillna("Unknown - probably new build") # What proportio warmfront_identified = results_df[ @@ -857,21 +885,32 @@ def analyse_ha_32_results(results, ha32, no_house_numbers): new_possibilities = results_df[ (~results_df["warmfront_identified"]) & - (results_df["gbis_eligible"] | results_df["eco4_eligible"]) + (results_df["gbis_eligible"] | results_df["eco4_eligible"]) & + (results_df["tenure"] == "Rented (social)") ].copy() - new_possibilities_full_gbis = results_df[ + future_possibilities_eco = results_df[ (~results_df["warmfront_identified"]) & - (results_df["gbis_eligible_future"] == True) + (results_df["eco4_eligible_future"] == True) & (~(results_df["gbis_eligible"] | results_df["eco4_eligible"])) ].copy() + future_possibilities_eco["eco4_eligible_future_message"].value_counts() + + future_possibilities_gbis = results_df[ + (~results_df["warmfront_identified"]) & + (results_df["gbis_eligible_future"] == True) & (results_df["eco4_eligible_future"] == False) & ( + ~(results_df["gbis_eligible"] | results_df["eco4_eligible"])) + ].copy() + + future_possibilities_gbis["gbis_eligible_future_message"].value_counts() + # We deem that Any EPC that is produced in the last 3 years gives us good confidence cutoff_date = datetime.now() - timedelta(days=3 * 365) new_possibilities["high_confidence"] = pd.to_datetime(new_possibilities["date_epc"]) >= cutoff_date - new_possibilities_full_gbis["high_confidence"] = pd.to_datetime( - new_possibilities_full_gbis["date_epc"]) >= cutoff_date + future_possibilities_eco["high_confidence"] = pd.to_datetime( + future_possibilities_eco["date_epc"]) >= cutoff_date # We do a quick check on properties that didn't have a house number: no_house_numbers_ha32 = ha32[ha32["row_id"].isin(no_house_numbers)]["identified"].sum() @@ -881,8 +920,10 @@ def analyse_ha_32_results(results, ha32, no_house_numbers): new = { "n_new_possibilities": new_possibilities.shape[0], "new_possibilities_confidence": new_possibilities["high_confidence"].value_counts(), - "new_possibilities_full_gbis": new_possibilities_full_gbis.shape[0], - "new_possibilities_full_gbis_confidence": new_possibilities_full_gbis["high_confidence"].value_counts() + "future_possibilities_gbis": future_possibilities_gbis.shape[0], + "future_possibilities_gbis_confidence": future_possibilities_gbis["high_confidence"].value_counts(), + "future_possibilities_eco": future_possibilities_eco.shape[0], + "future_possibilities_eco_confidence": future_possibilities_eco["high_confidence"].value_counts(), } return success_rate, new @@ -898,6 +939,8 @@ def analyse_ha_15_results(results_df, ha15, no_house_numbers): For HA32, most of these (if not all) properties were identified under gbis """ + results_df["tenure"] = results_df["tenure"].fillna("Unknown - probably new build") + # What proportio warmfront_identified = results_df[ results_df["warmfront_identified"] @@ -930,6 +973,7 @@ def analyse_ha_15_results(results_df, ha15, no_house_numbers): ] sap_low_enough["walls"].value_counts() + z = ha15[ha15["row_id"].isin(sap_too_high["row_id"].values)] investigate_1 = ha15[ha15["row_id"].isin(sap_too_high["row_id"])][ ["row_id", "Postcode", "Address Line 1", "Address Line 2", "Address Line 3"]] @@ -943,7 +987,29 @@ def analyse_ha_15_results(results_df, ha15, no_house_numbers): new_possibilities = results_df[ (~results_df["warmfront_identified"]) & - ((results_df["gbis_eligible"] == True) | (results_df["eco4_eligible"] == True)) + ((results_df["gbis_eligible"] == True) | (results_df["eco4_eligible"] == True)) & + (results_df["tenure"] == "Rented (social)") + ].copy() + + # These are future possibilityies + new_possibilities_eco = results_df[ + (~results_df["warmfront_identified"]) & + (results_df["eco4_eligible_future"] == True) & (~(results_df["gbis_eligible"] | results_df["eco4_eligible"])) + ].copy() + + rids = new_possibilities_eco[new_possibilities_eco["sap"] == 54]["row_id"] + z = ha15[ha15["row_id"].isin(rids)] + + new_possibilities_gbis = results_df[ + (~results_df["warmfront_identified"]) & + (results_df["gbis_eligible_future"] == True) & (results_df["eco4_eligible_future"] == False) & ( + ~(results_df["gbis_eligible"] | results_df["eco4_eligible"])) + ].copy() + + not_new = results_df[ + (~results_df["warmfront_identified"]) & + (results_df["gbis_eligible_future"] != True) & (results_df["eco4_eligible_future"] != True) & ( + ~(results_df["gbis_eligible"] | results_df["eco4_eligible"])) ].copy() # We deem that Any EPC that is produced in the last 3 years gives us good confidence for GBIS @@ -1026,6 +1092,13 @@ def app(): # f # ) + # with open("ha32.pickle", "rb") as f: + # ha32_dict = pickle.load(f) + + # ha32_results = ha32_dict["ha32_results"] + # ha32_scoring_data = ha32_dict["ha32_scoring_data"] + # ha32_no_house_numbers = ha32_dict["ha32_no_house_numbers"] + ha32_success_rate, ha32_new_possibilities = analyse_ha_32_results( results=ha32_results, ha32=ha32, no_house_numbers=ha32_no_house_numbers ) @@ -1044,5 +1117,7 @@ def app(): # ) ha15_success_rate, ha15_new, ha15_identified_results, ha15_missed_results = analyse_ha_15_results( - ha15_results_df, ha15, ha15_no_house_numbers + results_df=ha15_results_df, + ha15=ha15, + no_house_numbers=ha15_no_house_numbers ) From 1ce9a4521f65f785e40dddde4375cc07c4d7b33a Mon Sep 17 00:00:00 2001 From: Michael Duong Date: Thu, 14 Dec 2023 20:31:58 +0000 Subject: [PATCH 063/526] start refactor --- etl/epc/DataProcessor.py | 50 ++++++----- etl/epc/Dataset.py | 28 +++---- etl/epc/{EPCRecord.py => Record.py} | 125 +++++++++++++++------------- etl/epc/property_change_app.py | 88 ++++++++++++++------ 4 files changed, 168 insertions(+), 123 deletions(-) rename etl/epc/{EPCRecord.py => Record.py} (78%) diff --git a/etl/epc/DataProcessor.py b/etl/epc/DataProcessor.py index 5bb54088..1946c1a4 100644 --- a/etl/epc/DataProcessor.py +++ b/etl/epc/DataProcessor.py @@ -62,17 +62,12 @@ def is_int(x): return False -class DataProcessor: +class EPCDataProcessor: """ Handle data loading and data preprocessing """ training_pipeline = { - "load_data": { - "function": "load_data", - "args": [], - "kwargs": {"low_memory": DATA_PROCESSOR_SETTINGS["low_memory"]}, - }, "confine_data": { "function": "confine_data", "args": [], @@ -174,8 +169,8 @@ class DataProcessor: In this instance, there are some operations we do not want to perform, such as confine_data() """ - self.data : pd.DataFrame = None - self.cleaning_averages : pd.DataFrame = None + self.data : pd.DataFrame + self.cleaning_averages : pd.DataFrame self.filepath = filepath self.pipeline_steps = self.pipeline_factory("newdata" if is_newdata else "training") @@ -183,22 +178,6 @@ class DataProcessor: self.load_data(low_memory=DATA_PROCESSOR_SETTINGS["low_memory"]) - def pre_process_pipeline(self) -> None: - """ - For the pipeline_steps, we apply each function in turn - """ - - for step in self.pipeline_steps: - step_function = getattr(self, self.pipeline_steps[step]["function"]) - step_args = self.pipeline_steps[step]["args"] - step_kwargs = self.pipeline_steps[step]["kwargs"] - - if step_args: - step_function(*step_args, **step_kwargs) - else: - step_function(**step_kwargs) - - def pipeline_factory(self, pipeline_type: str) -> dict: """ Determine which dataclient to use @@ -213,6 +192,23 @@ class DataProcessor: raise ValueError("Pipeline type specified is not in factory") return pipelines[pipeline_type] + + + def pre_process_pipeline(self) -> None: + """ + For the pipeline_steps, we apply each function in turn + This will alter self.data inplace + """ + + for step in self.pipeline_steps: + step_function = getattr(self, self.pipeline_steps[step]["function"]) + step_args = self.pipeline_steps[step]["args"] + step_kwargs = self.pipeline_steps[step]["kwargs"] + + if step_args: + step_function(*step_args, **step_kwargs) + else: + step_function(**step_kwargs) def load_data(self, low_memory=False) -> None: @@ -305,7 +301,7 @@ class DataProcessor: break to_index -= 1 - def pre_process(self) -> pd.DataFrame: + def pre_process(self): """ Load data and begin initial cleaning """ @@ -346,7 +342,7 @@ class DataProcessor: # Final re-casting after data transformed and prepared coltypes = {k: v for k, v in COLUMNTYPES.items() if k in self.data.columns} if self.is_newdata else COLUMNTYPES for k, v in coltypes.items(): - self.data[k] = self.data[k].astype(v) + self.data[k] = self.data[k].astype(v) self.data = self.data.astype(coltypes) self.na_remapping() @@ -365,6 +361,8 @@ class DataProcessor: self.cleaning_averages["LOCAL_AUTHORITY"] = self.data["LOCAL_AUTHORITY"].values[0] + self.data.columns = self.data.columns.str.lower() + def na_remapping(self): diff --git a/etl/epc/Dataset.py b/etl/epc/Dataset.py index 3c38eaa6..e364d0f0 100644 --- a/etl/epc/Dataset.py +++ b/etl/epc/Dataset.py @@ -1,6 +1,6 @@ import pandas as pd from typing import List -from etl.epc.EPCRecord import EPCDifferenceRecord +from etl.epc.Record import EPCDifferenceRecord from ValidationConfiguration import DatasetValidationConfiguration from etl.epc.settings import EARLIEST_EPC_DATE @@ -19,14 +19,14 @@ class BaseDataset: """ self.dataset_validation: dict = DatasetValidationConfiguration - def pipeline_factory(self, pipeline_type: str) -> dict: - """ - Factory method for creating a pipeline - """ - if pipeline_type not in self.pipeline_steps: - raise ValueError(f"Pipeline type {pipeline_type} not found") + # def pipeline_factory(self, pipeline_type: str) -> dict: + # """ + # Factory method for creating a pipeline + # """ + # if pipeline_type not in self.pipeline_steps: + # raise ValueError(f"Pipeline type {pipeline_type} not found") - return self.pipeline_steps[pipeline_type] + # return self.pipeline_steps[pipeline_type] class TrainingDataset(BaseDataset): """ @@ -34,7 +34,7 @@ class TrainingDataset(BaseDataset): """ def __init__(self, datasets: List[EPCDifferenceRecord]) -> None: - self.pipeline_steps = self.pipeline_factory("training") + # self.pipeline_steps = self.pipeline_factory("training") self.datasets = datasets self.df = pd.DataFrame([dataset.difference_record for dataset in datasets]) @@ -42,11 +42,11 @@ class TrainingDataset(BaseDataset): self._feature_generation() self._drop_features() # self._clean_dataframe() - self._clean_efficiency_variables() - self._null_validation(information="Clean Efficiency Variables") - # self._process_and_prune() - self._clean_missing_values() - self._null_validation(information="Clean Missing Values") + # self._clean_efficiency_variables() + # self._null_validation(information="Clean Efficiency Variables") + # # self._process_and_prune() + # self._clean_missing_values() + # self._null_validation(information="Clean Missing Values") def _clean_missing_values(self, ignore_cols=None): diff --git a/etl/epc/EPCRecord.py b/etl/epc/Record.py similarity index 78% rename from etl/epc/EPCRecord.py rename to etl/epc/Record.py index a5079f39..4f136839 100644 --- a/etl/epc/EPCRecord.py +++ b/etl/epc/Record.py @@ -14,6 +14,13 @@ from etl.epc.settings import ( EFFICIENCY_FEATURES ) +# TODO: Change these in the settings file +RDSAP_RESPONSE = RDSAP_RESPONSE.lower() +HEAT_DEMAND_RESPONSE = HEAT_DEMAND_RESPONSE.lower() +CARBON_RESPONSE = CARBON_RESPONSE.lower() +COMPONENT_FEATURES = [x.lower() for x in COMPONENT_FEATURES] +EFFICIENCY_FEATURES = [x.lower() for x in EFFICIENCY_FEATURES] + @dataclass class EPCRecord: """ @@ -24,47 +31,46 @@ class EPCRecord: floor = None roof = None - - UPRN: str - WALLS_DESCRIPTION: str - FLOOR_DESCRIPTION: str - LIGHTING_DESCRIPTION: str - ROOF_DESCRIPTION: str - MAINHEAT_DESCRIPTION: str - HOTWATER_DESCRIPTION: str - MAIN_FUEL: str - MECHANICAL_VENTILATION: str - SECONDHEAT_DESCRIPTION: str - WINDOWS_DESCRIPTION: str - GLAZED_TYPE: str - MULTI_GLAZE_PROPORTION: float - LOW_ENERGY_LIGHTING: float - NUMBER_OPEN_FIREPLACES: float - MAINHEATCONT_DESCRIPTION: str - SOLAR_WATER_HEATING_FLAG: str - PHOTO_SUPPLY: float - TRANSACTION_TYPE: str - ENERGY_TARIFF: str - EXTENSION_COUNT: float - TOTAL_FLOOR_AREA: float - FLOOR_HEIGHT: float - HOT_WATER_ENERGY_EFF: str - FLOOR_ENERGY_EFF: str - WINDOWS_ENERGY_EFF: str - WALLS_ENERGY_EFF: str - SHEATING_ENERGY_EFF: str - ROOF_ENERGY_EFF: str - MAINHEAT_ENERGY_EFF: str - MAINHEATC_ENERGY_EFF: str - LIGHTING_ENERGY_EFF: str - POTENTIAL_ENERGY_EFFICIENCY: float - ENVIRONMENT_IMPACT_POTENTIAL: float - ENERGY_CONSUMPTION_POTENTIAL: float - CO2_EMISSIONS_POTENTIAL: float - LODGEMENT_DATE: str - CURRENT_ENERGY_EFFICIENCY: int - ENERGY_CONSUMPTION_CURRENT: int - CO2_EMISSIONS_CURRENT: float + uprn: str + walls_description: str + floor_description : str + lighting_description : str + roof_description : str + mainheat_description : str + hotwater_description : str + main_fuel : str + mechanical_ventilation : str + secondheat_description : str + windows_description : str + glazed_type : str + multi_glaze_proportion : float + low_energy_lighting : float + number_open_fireplaces : float + mainheatcont_description : str + solar_water_heating_flag : str + photo_supply : float + transaction_type : str + energy_tariff : str + extension_count : float + total_floor_area : float + floor_height : float + hot_water_energy_eff : str + floor_energy_eff : str + windows_energy_eff : str + walls_energy_eff : str + sheating_energy_eff : str + roof_energy_eff : str + mainheat_energy_eff : str + mainheatc_energy_eff : str + lighting_energy_eff : str + potential_energy_efficiency : float + environment_impact_potential : float + energy_consumption_potential : float + co2_emissions_potential : float + lodgement_date : str + current_energy_efficiency : int + energy_consumption_current : int + co2_emissions_current : float u_values_walls = None u_values_roof = None @@ -79,9 +85,9 @@ class EPCRecord: # self._field_validation() self._clean_records() self._expand_description() - self._generate_uvalues() - self._validate_expanded_description() - self._validate_u_values() + # self._generate_uvalues() + # self._validate_expanded_description() + # self._validate_u_values() # etc pass @@ -227,6 +233,7 @@ class EPCDifferenceRecord: """ self.record1 = record1 self.record2 = record2 + self.earliest_record = record1 if record1.lodgement_date < record2.lodgement_date else record2 self.flag_fabric_consistency = False self.difference_record = {} @@ -239,7 +246,7 @@ class EPCDifferenceRecord: self._construct_difference_record() self._validate_difference_record() - self._detect_fabric_consistency() + # self._detect_fabric_consistency() def _construct_difference_record(self): @@ -257,20 +264,20 @@ class EPCDifferenceRecord: # TODO: Take the earliest potentials self.difference_record = { - "UPRN": self.record1.get("UPRN"), - "RDSAP_CHANGE": rdsap_change, - "HEAT_DEMAND_CHANGE": heat_demand_change, - "CARBON_CHANGE": carbon_change, - "SAP_STARTING": self.record1.get(RDSAP_RESPONSE), - "SAP_ENDING": self.record2.get(RDSAP_RESPONSE), - "HEAT_DEMAND_STARTING": self.record1.get(HEAT_DEMAND_RESPONSE), - "HEAT_DEMAND_ENDING": self.record2.get(HEAT_DEMAND_RESPONSE), - "CARBON_STARTING": self.record1.get(CARBON_RESPONSE), - "CARBON_ENDING": self.record2.get(CARBON_RESPONSE), - "POTENTIAL_ENERGY_EFFICIENCY": max(self.record1.get("POTENTIAL_ENERGY_EFFICIENCY"), self.record2.get("POTENTIAL_ENERGY_EFFICIENCY")), - "ENVIRONMENT_IMPACT_POTENTIAL": max(self.record1.get("ENVIRONMENT_IMPACT_POTENTIAL"), self.record2.get("ENVIRONMENT_IMPACT_POTENTIAL")), - "ENERGY_CONSUMPTION_POTENTIAL": max(self.record1.get("ENERGY_CONSUMPTION_POTENTIAL"), self.record2.get("ENERGY_CONSUMPTION_POTENTIAL")), - "CO2_EMISSIONS_POTENTIAL": max(self.record1.get("CO2_EMISSIONS_POTENTIAL"), self.record2.get("CO2_EMISSIONS_POTENTIAL")), + "uprn": self.record1.get("UPRN"), + "rdsap_change": rdsap_change, + "heat_demand_change": heat_demand_change, + "carbon_change": carbon_change, + "sap_starting": self.record1.get(RDSAP_RESPONSE), + "sap_ending": self.record2.get(RDSAP_RESPONSE), + "heat_demand_starting": self.record1.get(HEAT_DEMAND_RESPONSE), + "heat_demand_ending": self.record2.get(HEAT_DEMAND_RESPONSE), + "carbon_starting": self.record1.get(CARBON_RESPONSE), + "carbon_ending": self.record2.get(CARBON_RESPONSE), + "potential_energy_efficiency": self.earliest_record.get("potential_energy_efficiency"), + "environment_impact_potential": self.earliest_record.get("environment_impact_potential"), + "energy_consumption_potential": self.earliest_record.get("energy_consumption_potential"), + "co2_emissions_potential": self.earliest_record.get("co2_emissions_potential"), **ending_record, **starting_record } diff --git a/etl/epc/property_change_app.py b/etl/epc/property_change_app.py index 1aec2b55..ee60ecb3 100644 --- a/etl/epc/property_change_app.py +++ b/etl/epc/property_change_app.py @@ -3,6 +3,8 @@ import numpy as np from tqdm import tqdm import msgpack +from typing import List + from pathlib import Path from etl.epc.settings import ( MANDATORY_FIXED_FEATURES, @@ -10,15 +12,14 @@ from etl.epc.settings import ( COMPONENT_FEATURES, RDSAP_RESPONSE, HEAT_DEMAND_RESPONSE, - COLUMNS_TO_MERGE_ON, CARBON_RESPONSE, CORE_COMPONENT_FEATURES, EFFICIENCY_FEATURES, POTENTIAL_COLUMNS, MINIMUM_FLOOR_HEIGHT ) -from etl.epc.DataProcessor import DataProcessor -from etl.epc.EPCRecord import EPCRecord, EPCDifferenceRecord +from etl.epc.DataProcessor import EPCDataProcessor +from etl.epc.Record import EPCRecord, EPCDifferenceRecord from utils.s3 import save_dataframe_to_s3_parquet, read_from_s3 from recommendations.rdsap_tables import england_wales_age_band_lookup from recommendations.recommendation_utils import ( @@ -28,6 +29,16 @@ from recommendations.recommendation_utils import ( DATA_DIRECTORY = Path(__file__).parent / "local_data" / "all-domestic-certificates" +# TODO: change in setting file +MANDATORY_FIXED_FEATURES = [x.lower() for x in MANDATORY_FIXED_FEATURES] +LATEST_FIELD = [x.lower() for x in LATEST_FIELD] +COMPONENT_FEATURES = [x.lower() for x in COMPONENT_FEATURES] +RDSAP_RESPONSE = RDSAP_RESPONSE.lower() +HEAT_DEMAND_RESPONSE = HEAT_DEMAND_RESPONSE.lower() +CARBON_RESPONSE = CARBON_RESPONSE.lower() +CORE_COMPONENT_FEATURES = [x.lower() for x in CORE_COMPONENT_FEATURES] +EFFICIENCY_FEATURES = [x.lower() for x in EFFICIENCY_FEATURES] +POTENTIAL_COLUMNS = [x.lower() for x in POTENTIAL_COLUMNS] def get_cleaned_description_mapping(): """ @@ -399,7 +410,6 @@ def make_uvalues(df): # if all_equal: # return True -from typing import List class EPCPipeline: """ This class will take a list of directories and process them to create a dataset: @@ -451,6 +461,43 @@ class EPCPipeline: """ pass + +def compare_consecutive_epcs(epc_records: List[EPCRecord], uprn: str, directory: Path, fixed_data: dict, property_model_data: list, all_equal_rows: list): + """ + Compare consecutive EPCs for a given UPRN + :param epc_records: + :return: + """ + for idx in range(0, len(epc_records) - 1): + + if idx >= len(epc_records) - 1: + break + + earliest_record: EPCRecord = epc_records[idx] + latest_record: EPCRecord = epc_records[idx + 1] + + # Auto sort the records so that the record with highest RDSAP score is always record1 + difference_record: EPCDifferenceRecord = latest_record - earliest_record + + # TODO: Pull out RDSAP_CHANGE to a variable + if difference_record.get("rdsap_change") == 0: + continue + + all_equal = difference_record.compare_fields_in_records( + fields=[x.lower() for x in CORE_COMPONENT_FEATURES] + ) + + if all_equal: + # Keep track of this for the moment so we can analyse + all_equal_rows.append({"uprn": uprn, "directory_name": directory.name}) + continue + + difference_record.append_fixed_data(fixed_data) + + property_model_data.append(difference_record) + + return property_model_data, all_equal_rows + def app(): # Get all the files in the directory @@ -462,8 +509,6 @@ def app(): # List all subdirectories directories = [entry for entry in DATA_DIRECTORY.iterdir() if entry.is_dir()] - - dataset = [] cleaning_dataset = [] # Keep track of the all equals @@ -472,41 +517,32 @@ def app(): for directory in tqdm(directories): filepath = directory / "certificates.csv" - data_processor = DataProcessor(filepath=filepath) + epc_data_processor = EPCDataProcessor(filepath=filepath) - data_processor.pre_process() + epc_data_processor.pre_process() - df = data_processor.data + df = epc_data_processor.data - cleaning_dataset.append(data_processor.cleaning_averages) + cleaning_dataset.append(epc_data_processor.cleaning_averages) data_by_uprn = [] - for uprn, property_data in df.groupby("UPRN", observed=True): + for uprn, property_data in df.groupby("uprn", observed=True): - # Fixed features - these are property attributes that shouldn't change over time - fixed_data = {} - # If a property has changed building type, we can ignore the epc rating i.e. this should be 1 unique row if any(property_data[MANDATORY_FIXED_FEATURES].nunique() > 1) or ( pd.isnull(property_data[MANDATORY_FIXED_FEATURES]).sum().sum() > 0 ): continue - # Take the latest row for both the LATEST_FEILDS and MANDATORY FIELDS - latest_field_data = property_data[LATEST_FIELD].iloc[-1].to_dict() - mandatory_field_data = ( - property_data[MANDATORY_FIXED_FEATURES].iloc[-1].to_dict() - ) - - # Combine all fields together - fixed_data.update(mandatory_field_data) - fixed_data.update(latest_field_data) + # Fixed features - these are property attributes that shouldn't change over time + # Take the latest row for both the LATEST_FEILDS and MANDATORY FIELDS and combine all fields together + fixed_data = property_data[MANDATORY_FIXED_FEATURES + LATEST_FIELD].iloc[-1].to_dict() # We include the lodgement date here as we probably need to factor time into the # model, since EPC standards and rigour have changed over time variable_data = property_data[ COMPONENT_FEATURES + EFFICIENCY_FEATURES + POTENTIAL_COLUMNS + [ - "LODGEMENT_DATE", RDSAP_RESPONSE, HEAT_DEMAND_RESPONSE, CARBON_RESPONSE + "lodgement_date", RDSAP_RESPONSE, HEAT_DEMAND_RESPONSE, CARBON_RESPONSE ] ] @@ -516,6 +552,10 @@ def app(): epc_records = [EPCRecord(uprn, **x) for x in variable_data.to_dict(orient='records')] + property_model_data, all_equal_rows = compare_consecutive_epcs(epc_records, uprn, directory, fixed_data, property_model_data, all_equal_rows) + + + for idx in range(0, len(epc_records) - 1): if idx >= len(epc_records) - 1: From eeeea467cfae9436f2e4285729dab1d3a6c9e691 Mon Sep 17 00:00:00 2001 From: Michael Duong Date: Thu, 14 Dec 2023 21:05:07 +0000 Subject: [PATCH 064/526] fixed col names --- etl/epc/Dataset.py | 6 +++--- etl/epc/Record.py | 6 +++--- etl/epc/property_change_app.py | 39 +++++++++++++++++----------------- 3 files changed, 26 insertions(+), 25 deletions(-) diff --git a/etl/epc/Dataset.py b/etl/epc/Dataset.py index e364d0f0..c2ed5538 100644 --- a/etl/epc/Dataset.py +++ b/etl/epc/Dataset.py @@ -74,15 +74,15 @@ class TrainingDataset(BaseDataset): """ Drop features that are not needed for modelling """ - self.df = self.df.drop(columns=["LODGEMENT_DATE_STARTING", "LODGEMENT_DATE_ENDING"]) + self.df = self.df.drop(columns=["lodgement_date_starting", "lodgement_date_ending"]) def _feature_generation(self): """ Generate features for modelling """ - self.df["DAYS_TO_STARTING"] = self._calculate_days_to(self.df["LODGEMENT_DATE_STARTING"]) - self.df["DAYS_TO_ENDING"] = self._calculate_days_to(self.df["LODGEMENT_DATE_ENDING"]) + self.df["days_to_starting"] = self._calculate_days_to(self.df["lodgement_date_starting"]) + self.df["day_to_ending"] = self._calculate_days_to(self.df["lodgement_date_ending"]) def _clean_efficiency_variables(self): diff --git a/etl/epc/Record.py b/etl/epc/Record.py index 4f136839..b43168a7 100644 --- a/etl/epc/Record.py +++ b/etl/epc/Record.py @@ -259,12 +259,12 @@ class EPCDifferenceRecord: carbon_change = self.record2.get(CARBON_RESPONSE) - self.record1.get(CARBON_RESPONSE) component_variables = COMPONENT_FEATURES + EFFICIENCY_FEATURES - ending_record = self.record2.get(component_variables + ["LODGEMENT_DATE"], return_asdict=True, key_suffix="_ENDING") - starting_record = self.record1.get(component_variables + ["LODGEMENT_DATE"], return_asdict=True, key_suffix="_STARTING") + ending_record = self.record2.get(component_variables + ["lodgement_date"], return_asdict=True, key_suffix="_ending") + starting_record = self.record1.get(component_variables + ["lodgement_date"], return_asdict=True, key_suffix="_starting") # TODO: Take the earliest potentials self.difference_record = { - "uprn": self.record1.get("UPRN"), + "uprn": self.record1.get("uprn"), "rdsap_change": rdsap_change, "heat_demand_change": heat_demand_change, "carbon_change": carbon_change, diff --git a/etl/epc/property_change_app.py b/etl/epc/property_change_app.py index ee60ecb3..85118642 100644 --- a/etl/epc/property_change_app.py +++ b/etl/epc/property_change_app.py @@ -552,37 +552,38 @@ def app(): epc_records = [EPCRecord(uprn, **x) for x in variable_data.to_dict(orient='records')] + # TODO: Make this part of a strategy pattern, as we can generate different training datasets property_model_data, all_equal_rows = compare_consecutive_epcs(epc_records, uprn, directory, fixed_data, property_model_data, all_equal_rows) - for idx in range(0, len(epc_records) - 1): + # for idx in range(0, len(epc_records) - 1): - if idx >= len(epc_records) - 1: - break + # if idx >= len(epc_records) - 1: + # break - earliest_record: EPCRecord = epc_records[idx] - latest_record: EPCRecord = epc_records[idx + 1] + # earliest_record: EPCRecord = epc_records[idx] + # latest_record: EPCRecord = epc_records[idx + 1] - # Auto sort the records so that the record with highest RDSAP score is always record1 - difference_record: EPCDifferenceRecord = latest_record - earliest_record + # # Auto sort the records so that the record with highest RDSAP score is always record1 + # difference_record: EPCDifferenceRecord = latest_record - earliest_record - # TODO: Pull out RDSAP_CHANGE to a variable - if difference_record.get("RDSAP_CHANGE") == 0: - continue + # # TODO: Pull out RDSAP_CHANGE to a variable + # if difference_record.get("RDSAP_CHANGE") == 0: + # continue - all_equal = difference_record.compare_fields_in_records( - fields=CORE_COMPONENT_FEATURES - ) + # all_equal = difference_record.compare_fields_in_records( + # fields=CORE_COMPONENT_FEATURES + # ) - if all_equal: - # Keep track of this for the moment so we can analyse - all_equal_rows.append({"uprn": uprn, "directory_name": directory.name}) - continue + # if all_equal: + # # Keep track of this for the moment so we can analyse + # all_equal_rows.append({"uprn": uprn, "directory_name": directory.name}) + # continue - difference_record.append_fixed_data(fixed_data) + # difference_record.append_fixed_data(fixed_data) - property_model_data.append(difference_record) + # property_model_data.append(difference_record) # property_model_data.append(difference_record.difference_record) From 538e38dc1e619af027c0e9aa850e6b7e33f20a05 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Fri, 15 Dec 2023 11:32:22 +0000 Subject: [PATCH 065/526] working on ha33 app --- backend/SearchEpc.py | 2 +- etl/eligibility/Eligibility.py | 14 +- etl/eligibility/ha_15_32/app.py | 20 +- etl/eligibility/ha_15_32/ha33_app.py | 174 ++++++++++++++++++ .../epc_attributes/RoofAttributes.py | 8 + .../epc_attributes/WallAttributes.py | 10 + 6 files changed, 210 insertions(+), 18 deletions(-) create mode 100644 etl/eligibility/ha_15_32/ha33_app.py diff --git a/backend/SearchEpc.py b/backend/SearchEpc.py index 2a24a780..bff204c5 100644 --- a/backend/SearchEpc.py +++ b/backend/SearchEpc.py @@ -126,7 +126,7 @@ class SearchEpc: uprns = {r["uprn"] for r in rows} if len(uprns) != 1: - logger.error("Multiple EPCs found - we should use an alternate method of searching - TODO") + logger.error("Multiple UPRNS found - we should use an alternate method of searching - TODO") if property_type is not None: # We can do a filter on the property type rows_filtered = [r for r in rows if r["property-type"] == property_type] diff --git a/etl/eligibility/Eligibility.py b/etl/eligibility/Eligibility.py index 9de09039..f25d06bd 100644 --- a/etl/eligibility/Eligibility.py +++ b/etl/eligibility/Eligibility.py @@ -56,9 +56,6 @@ class Eligibility: self.roof = self.parse_fabric("roof-description") self.floor = self.parse_fabric("floor-description") - self.loft_insulation() - self.cavity_insulation() - self.tenure = self.tenure_remap.get(self.epc["tenure"], None) def parse_fabric(self, key): @@ -71,14 +68,19 @@ class Eligibility: if remapped: return remapped[0] + if "SAP05:" in self.epc[key]: + # This is a placeholder method for handling this but this will occur in the case of a very old + # EPC and therefore we just skip + self.epc[key] = "(assumed)" + if key == "walls-description": - cleaner_cls = WallAttributes(self.epc["roof-description"]) + cleaner_cls = WallAttributes(self.epc[key]) elif key == "roof-description": - cleaner_cls = RoofAttributes(self.epc["roof-description"]) + cleaner_cls = RoofAttributes(self.epc[key]) elif key == "floor-description": - cleaner_cls = FloorAttributes(self.epc["floor-description"]) + cleaner_cls = FloorAttributes(self.epc[key]) else: raise ValueError("Invalid key") diff --git a/etl/eligibility/ha_15_32/app.py b/etl/eligibility/ha_15_32/app.py index 48dd5daf..2d41f288 100644 --- a/etl/eligibility/ha_15_32/app.py +++ b/etl/eligibility/ha_15_32/app.py @@ -380,7 +380,7 @@ def prepare_model_data_row(property_id, modelling_epc, cleaned, cleaning_data, c { "recommendation_id": "-".join([property_id, "cavity"]), "type": "cavity_wall_insulation", - "new_u_value": 0.55, + "new_u_value": 0.35, "parts": [{}] }, { @@ -997,21 +997,12 @@ def analyse_ha_15_results(results_df, ha15, no_house_numbers): (results_df["eco4_eligible_future"] == True) & (~(results_df["gbis_eligible"] | results_df["eco4_eligible"])) ].copy() - rids = new_possibilities_eco[new_possibilities_eco["sap"] == 54]["row_id"] - z = ha15[ha15["row_id"].isin(rids)] - new_possibilities_gbis = results_df[ (~results_df["warmfront_identified"]) & (results_df["gbis_eligible_future"] == True) & (results_df["eco4_eligible_future"] == False) & ( ~(results_df["gbis_eligible"] | results_df["eco4_eligible"])) ].copy() - not_new = results_df[ - (~results_df["warmfront_identified"]) & - (results_df["gbis_eligible_future"] != True) & (results_df["eco4_eligible_future"] != True) & ( - ~(results_df["gbis_eligible"] | results_df["eco4_eligible"])) - ].copy() - # We deem that Any EPC that is produced in the last 3 years gives us good confidence for GBIS cutoff_date = datetime.now() - timedelta(days=3 * 365) @@ -1094,7 +1085,7 @@ def app(): # with open("ha32.pickle", "rb") as f: # ha32_dict = pickle.load(f) - + # # ha32_results = ha32_dict["ha32_results"] # ha32_scoring_data = ha32_dict["ha32_scoring_data"] # ha32_no_house_numbers = ha32_dict["ha32_no_house_numbers"] @@ -1116,6 +1107,13 @@ def app(): # f # ) + # with open("ha15.pickle", "rb") as f: + # ha15_dict = pickle.load(f) + # + # ha15_results_df = ha15_dict["ha15_results_df"] + # ha15_scoring_df = ha15_dict["ha15_scoring_df"] + # ha15_no_house_numbers = ha15_dict["ha15_no_house_numbers"] + ha15_success_rate, ha15_new, ha15_identified_results, ha15_missed_results = analyse_ha_15_results( results_df=ha15_results_df, ha15=ha15, diff --git a/etl/eligibility/ha_15_32/ha33_app.py b/etl/eligibility/ha_15_32/ha33_app.py new file mode 100644 index 00000000..41e6ca3f --- /dev/null +++ b/etl/eligibility/ha_15_32/ha33_app.py @@ -0,0 +1,174 @@ +import msgpack +from pathlib import Path +from datetime import datetime +import pandas as pd +from utils.s3 import read_from_s3 +from utils.logger import setup_logger +from dotenv import load_dotenv +from backend.app.utils import read_parquet_from_s3 +from tqdm import tqdm +from backend.SearchEpc import SearchEpc +from etl.eligibility.Eligibility import Eligibility +from etl.eligibility.ha_15_32.app import prepare_model_data_row +import re + +ENV_FILE = Path(__file__).parent / "etl" / "eligibility" / "ha_15_32" / ".env" + +logger = setup_logger() +load_dotenv(ENV_FILE) + + +def load_ha_33(): + """ + Load HA33 data + :return: + """ + pd.set_option('display.max_rows', 500) + pd.set_option('display.max_columns', 500) + pd.set_option('display.width', 1000) + + files = [ + "HA 33 Assets 1 of 4.csv", + "HA 33 Assets 2 of 4.csv", + "HA 33 Assets 3 of 4.csv", + "HA 33 Assets 4 of 4.csv" + ] + + data = [] + for file in files: + part = pd.read_csv(f"etl/eligibility/ha_15_32/{file}", low_memory=False) + cols_to_top = [c for c in part.columns if "Unnamed:" in c] + part = part.drop(columns=cols_to_top) + data.append(part) + + data = pd.concat(data) + + return data + + +def standardise_ha33(data): + split_addresses = data['ADDRESS'].str.split(',', expand=True) + split_addresses.columns = ['address1', 'address2', 'address3', 'address4', 'address5'] + + data = pd.concat([data, split_addresses], axis=1) + del split_addresses + + # Using regex to replace 'FT {number}' or 'FT{number}', with '{number}' + data['address1'] = data['address1'].str.replace(r'FT\s*(\d+)', r'\1', regex=True) + + data.columns = [col.strip() for col in data.columns] + + # TODO: we have 23 THIRTY SEVENTH AVENUE, can we replace THIRTY SEVENTH with 37TH + + return data + + +def get_ha_33data(data, cleaned, cleaning_data, created_at): + house_type_lookup = { + "Bungalow": "Bungalow", + "Flat": "Flat", + 'House': "House", + 'Maisonette': "Maisonette", + 'Flalolflfp mujjjjunjimj': "Flat", + 'STUDIO': "Flat", + } + + # house = data[data["row_id"] == "h3390"].squeeze() + + flat_pattern = r'flat\s+(\d+)' + + scoring_data = [] + results = [] + nodata = [] + for _, house in tqdm(data.iterrows(), total=len(data)): + + # Check if we gave a flat in address 3 + if re.search(flat_pattern, house["address2"].lower(), re.IGNORECASE): + address1 = house["address2"].strip() + else: + address1 = house["address1"].strip() + + # I.e. just a number + if len(address1) <= 3: + address1 = address1 + " " + house["address2"].strip() + + searcher = SearchEpc( + address1=address1, + postcode=house["POST CODE"] + ) + + response = searcher.search() + if response["status"] == 204: + nodata.append(house["row_id"]) + continue + + newest_epc, older_epcs, _ = searcher.retrieve( + property_type=house_type_lookup.get(house["PROPERTY TYPE"], None) + ) + + eligibility = Eligibility(epc=newest_epc, cleaned=cleaned) + eligibility.check_gbis_warmfront() + eligibility.check_eco4_warmfront() + + # If the house is not identified, we do a full gbis and eco4 check + eligibility.check_gbis() + eligibility.check_eco4() + + if eligibility.eco4_warmfront["eligible"]: + scoring_dictionary = prepare_model_data_row( + property_id=house["row_id"], + modelling_epc=eligibility.epc, + cleaned=cleaned, + cleaning_data=cleaning_data, + created_at=created_at + ) + scoring_data.append(scoring_dictionary) + + # If nothing is eligible or gbis is eligible, then we make a record this + results.append( + { + "row_id": house["row_id"], + "gbis_eligible": eligibility.gbis_warmfront, + "eco4_eligible": eligibility.eco4_warmfront["eligible"], + "eco4_message": eligibility.eco4_warmfront["message"], + "sap": float(eligibility.epc["current-energy-efficiency"]), + "gbis_eligible_future": eligibility.gbis["eligible"], + "gbis_eligible_future_message": eligibility.gbis["message"], + "eco4_eligible_future": eligibility.eco4["eligible"], + "eco4_eligible_future_message": eligibility.eco4["message"], + # Property components + "roof": eligibility.roof["clean_description"], + "walls": eligibility.walls["clean_description"], + "heating": eligibility.epc["mainheat-description"], + "tenure": eligibility.tenure, + "date_epc": eligibility.epc["lodgement-date"], + } + ) + + return results, scoring_data, nodata + + +def app(): + """ + Because HA33 is large, we deal with it separately + :return: + """ + + data = load_ha_33() + + data = standardise_ha33(data) + data["row_id"] = ["h33" + str(i) for i in range(0, len(data))] + + cleaned = read_from_s3( + s3_file_name="cleaned_epc_data/cleaned.bson", + bucket_name="retrofit-data-dev" + ) + cleaned = msgpack.unpackb(cleaned, raw=False) + + cleaning_data = read_parquet_from_s3( + bucket_name="retrofit-data-dev", file_key="sap_change_model/cleaning_dataset.parquet", + ) + + created_at = datetime.now().isoformat() + + get_ha_33data(data, cleaned, cleaning_data, created_at) diff --git a/etl/epc_clean/epc_attributes/RoofAttributes.py b/etl/epc_clean/epc_attributes/RoofAttributes.py index ed2b4d07..9d3b46b4 100644 --- a/etl/epc_clean/epc_attributes/RoofAttributes.py +++ b/etl/epc_clean/epc_attributes/RoofAttributes.py @@ -33,6 +33,12 @@ class RoofAttributes(Definitions): "ystafell(oedd) to, dim inswleiddio": "roof room(s), no insulation", } + DEFAULT_KEYS = [ + 'thermal_transmittance', 'thermal_transmittance_unit', 'is_pitched', 'is_roof_room', + 'is_loft', 'is_flat', 'is_thatched', 'is_at_rafters', 'is_assumed', 'has_dwelling_above', + 'is_valid', 'insulation_thickness' + ] + def __init__(self, description: str): """ :param description: Description of the roof. @@ -95,6 +101,8 @@ class RoofAttributes(Definitions): result: Dict[str, Union[float, str, bool, None]] = {} if self.nodata: + for key in self.DEFAULT_KEYS: + result[key] = False return result description = self.description diff --git a/etl/epc_clean/epc_attributes/WallAttributes.py b/etl/epc_clean/epc_attributes/WallAttributes.py index 40a5d5db..bfe600d5 100644 --- a/etl/epc_clean/epc_attributes/WallAttributes.py +++ b/etl/epc_clean/epc_attributes/WallAttributes.py @@ -68,6 +68,13 @@ class WallAttributes(Definitions): 'Cowith external insulation': 'Cob, with external insulation', } + DEFAULT_KEYS = [ + 'thermal_transmittance', 'thermal_transmittance_unit', 'is_cavity_wall', 'is_filled_cavity', + 'is_solid_brick', 'is_system_built', 'is_timber_frame', 'is_granite_or_whinstone', + 'is_as_built', 'is_cob', 'is_assumed', 'is_sandstone_or_limestone', + 'insulation_thickness', 'external_insulation', 'internal_insulation' + ] + def __init__(self, description: str): """ :param description: Description of the walls. @@ -98,6 +105,9 @@ class WallAttributes(Definitions): def process(self) -> Dict[str, Union[float, str, bool, None]]: result: Dict[str, Union[float, str, bool, None]] = {} if self.nodata: + for key in self.DEFAULT_KEYS: + result[key] = False + return result description = self.description.lower() From 7f8c185bca558180d2924c6865aba8d876a0957d Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Fri, 15 Dec 2023 13:35:39 +0000 Subject: [PATCH 066/526] added cleaning step for missing built-form --- backend/Property.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/backend/Property.py b/backend/Property.py index d400d439..705ad361 100644 --- a/backend/Property.py +++ b/backend/Property.py @@ -275,6 +275,10 @@ class Property(Definitions): # We need to implement an EPC cleaning process, which we run on the EPC data, immediately after we download # it self.data["built-form"] = BUILT_FORM_REMAP.get(self.data["built-form"], self.data["built-form"]) + if self.data["built-form"] in self.DATA_ANOMALY_MATCHES: + if self.data["property-type"] == "Flat": + self.data["built-form"] = "Semi-Detached" + self.set_energy() self.set_ventilation() self.set_solar_pv() From 01d8e526508f815181c1548ded3bdae20e5d6b41 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Fri, 15 Dec 2023 15:46:52 +0000 Subject: [PATCH 067/526] Added string similarity to filter addresses --- backend/SearchEpc.py | 51 +++++++++++++++++++---- etl/eligibility/ha_15_32/ha33_app.py | 13 +++++- etl/eligibility/ha_15_32/requirements.txt | 2 + 3 files changed, 56 insertions(+), 10 deletions(-) diff --git a/backend/SearchEpc.py b/backend/SearchEpc.py index bff204c5..16c2a8c8 100644 --- a/backend/SearchEpc.py +++ b/backend/SearchEpc.py @@ -3,6 +3,7 @@ import time from epc_api.client import EpcClient from utils.logger import setup_logger from typing import List +from fuzzywuzzy import process logger = setup_logger() @@ -108,7 +109,45 @@ class SearchEpc: "error": str(e) } - def retrieve(self, property_type=None): + @staticmethod + def filter_rows(rows, property_type=None, address=None): + """ + This method should not be used when property_type and address are both not None + :param rows: + :param property_type: + :param address: + :return: + """ + # Given the results from the EPC api, attempts to reduce the number of rows + uprns = {r["uprn"] for r in rows} + + if (property_type is None) and (address is None): + return rows + + if len(uprns) == 1: + return rows + + logger.error("Multiple UPRNS found - we should use an alternate method of searching - TODO") + if property_type is not None: + # We can do a filter on the property type + rows_filtered = [r for r in rows if r["property-type"] == property_type] + + if rows_filtered: + return rows_filtered + + return rows + + if address is not None: + # We can do a filter on the property type + best_match = process.extractOne(address, [r["address"] for r in rows], score_cutoff=0) + rows_filtered = [r for r in rows if r["address"] == best_match[0]] + + if rows_filtered: + return rows_filtered + + return rows + + def retrieve(self, property_type=None, address=None): """ Given a successful search, this method will format the data and return it @@ -123,15 +162,9 @@ class SearchEpc: # We perform some checks on the rows # Firstly, we should only have 1 urpn so if we have multiple, we'll need to filter down the # property further - uprns = {r["uprn"] for r in rows} - if len(uprns) != 1: - logger.error("Multiple UPRNS found - we should use an alternate method of searching - TODO") - if property_type is not None: - # We can do a filter on the property type - rows_filtered = [r for r in rows if r["property-type"] == property_type] - if rows_filtered: - rows = rows_filtered + rows = self.filter_rows(rows, property_type=property_type, address=None) + rows = self.filter_rows(rows, property_type=None, address=address) # We now check for a full sap epc: full_sap_epc = [r for r in rows if r["transaction-type"] == "new dwelling"] diff --git a/etl/eligibility/ha_15_32/ha33_app.py b/etl/eligibility/ha_15_32/ha33_app.py index 41e6ca3f..1f8c15df 100644 --- a/etl/eligibility/ha_15_32/ha33_app.py +++ b/etl/eligibility/ha_15_32/ha33_app.py @@ -47,6 +47,8 @@ def load_ha_33(): def standardise_ha33(data): + data = data[~pd.isnull(data["ADDRESS"])] + split_addresses = data['ADDRESS'].str.split(',', expand=True) split_addresses.columns = ['address1', 'address2', 'address3', 'address4', 'address5'] @@ -103,7 +105,8 @@ def get_ha_33data(data, cleaned, cleaning_data, created_at): continue newest_epc, older_epcs, _ = searcher.retrieve( - property_type=house_type_lookup.get(house["PROPERTY TYPE"], None) + property_type=house_type_lookup.get(house["PROPERTY TYPE"], None), + address=house["ADDRESS"], ) eligibility = Eligibility(epc=newest_epc, cleaned=cleaned) @@ -145,6 +148,14 @@ def get_ha_33data(data, cleaned, cleaning_data, created_at): } ) + # import pickle + # with open("ha33_results.pickle", "wb") as f: + # pickle.dump({ + # "results": results, + # "scoring_data": scoring_data, + # "nodata": nodata + # }, f) + return results, scoring_data, nodata diff --git a/etl/eligibility/ha_15_32/requirements.txt b/etl/eligibility/ha_15_32/requirements.txt index 74fcd97f..99cc8e93 100644 --- a/etl/eligibility/ha_15_32/requirements.txt +++ b/etl/eligibility/ha_15_32/requirements.txt @@ -7,3 +7,5 @@ python-dotenv boto3 textblob pyarrow==12.0.1 +fuzzywuzzy +python-Levenshtein From 6ab3804b4f05ccf0af0b2bf67e13c6135cdb0e8f Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Fri, 15 Dec 2023 17:32:16 +0000 Subject: [PATCH 068/526] done with ha33 analysis for now --- etl/eligibility/ha_15_32/app.py | 59 ++++++------ etl/eligibility/ha_15_32/ha33_app.py | 135 ++++++++++++++++++++++++++- 2 files changed, 162 insertions(+), 32 deletions(-) diff --git a/etl/eligibility/ha_15_32/app.py b/etl/eligibility/ha_15_32/app.py index 2d41f288..3c7ae901 100644 --- a/etl/eligibility/ha_15_32/app.py +++ b/etl/eligibility/ha_15_32/app.py @@ -376,37 +376,38 @@ def prepare_model_data_row(property_id, modelling_epc, cleaned, cleaning_data, c # after retrofit. We use the minimal u-values required to meet building regulations part L # TODO: Check the performance of the materials warmfront's installers use, particularly for # cavity - simulation_recommendations = [ - { - "recommendation_id": "-".join([property_id, "cavity"]), - "type": "cavity_wall_insulation", - "new_u_value": 0.35, - "parts": [{}] - }, - { - "recommendation_id": "-".join([property_id, "loft"]), - "type": "loft_insulation", - "new_u_value": 0.16, - "parts": [{"depth": 270}] - } - ] - scoring_dict = {} - for recommendation in simulation_recommendations: - scoring_dict = create_recommendation_scoring_data( - property=p, - recommendation=recommendation, - starting_epc_data=starting_epc_data, - ending_epc_data=ending_epc_data, - fixed_data=fixed_data, - ) - # At each iteration, we want to update the ending_epc_data, so in the end, ending_epc_data contains - # all of the updates - for k in scoring_dict.keys(): - if k in ending_epc_data.columns: - ending_epc_data[k] = scoring_dict[k] + cavity_simulation = { + "recommendation_id": "-".join([property_id, "cavity"]), + "type": "cavity_wall_insulation", + "new_u_value": 0.35, + "parts": [{}] + } - return scoring_dict + loft_simulation = { + "recommendation_id": "-".join([property_id, "loft"]), + "type": "loft_insulation", + "new_u_value": 0.16, + "parts": [{"depth": 270}] + } + + cavity_scoring = create_recommendation_scoring_data( + property=p, + recommendation=cavity_simulation, + starting_epc_data=starting_epc_data, + ending_epc_data=ending_epc_data, + fixed_data=fixed_data, + ) + + loft_scoring = create_recommendation_scoring_data( + property=p, + recommendation=loft_simulation, + starting_epc_data=starting_epc_data, + ending_epc_data=ending_epc_data, + fixed_data=fixed_data, + ) + + return [cavity_scoring, loft_scoring] def get_ha_32data(ha_data, cleaned, cleaning_data, created_at): diff --git a/etl/eligibility/ha_15_32/ha33_app.py b/etl/eligibility/ha_15_32/ha33_app.py index 1f8c15df..f5152fba 100644 --- a/etl/eligibility/ha_15_32/ha33_app.py +++ b/etl/eligibility/ha_15_32/ha33_app.py @@ -10,6 +10,10 @@ from tqdm import tqdm from backend.SearchEpc import SearchEpc from etl.eligibility.Eligibility import Eligibility from etl.eligibility.ha_15_32.app import prepare_model_data_row +from etl.epc.DataProcessor import DataProcessor +from etl.epc.settings import COLUMNS_TO_MERGE_ON +from backend.ml_models.api import ModelApi + import re ENV_FILE = Path(__file__).parent / "etl" / "eligibility" / "ha_15_32" / ".env" @@ -79,6 +83,8 @@ def get_ha_33data(data, cleaned, cleaning_data, created_at): flat_pattern = r'flat\s+(\d+)' + # data = data[data["row_id"].isin(eco_row_ids)] + scoring_data = [] results = [] nodata = [] @@ -125,7 +131,7 @@ def get_ha_33data(data, cleaned, cleaning_data, created_at): cleaning_data=cleaning_data, created_at=created_at ) - scoring_data.append(scoring_dictionary) + scoring_data.extend(scoring_dictionary) # If nothing is eligible or gbis is eligible, then we make a record this results.append( @@ -155,8 +161,131 @@ def get_ha_33data(data, cleaned, cleaning_data, created_at): # "scoring_data": scoring_data, # "nodata": nodata # }, f) + # with open("ha33_results.pickle", "rb") as f: + # data = pickle.load(f) + # results = data["results"] + # scoring_data = data["scoring_data"] + # nodata = data["nodata"] - return results, scoring_data, nodata + scoring_df = pd.DataFrame(scoring_data) + # Implement the same process that is being used in the recommendation engine to cleaning scoring_df + + # Perform the same cleaning as in the model - first clean number of room variables though + scoring_df = DataProcessor.apply_averages_cleaning( + data_to_clean=scoring_df, + cleaning_data=cleaning_data, + cols_to_merge_on=['PROPERTY_TYPE', 'BUILT_FORM', 'CONSTRUCTION_AGE_BAND', 'LOCAL_AUTHORITY'], + colnames=["NUMBER_HABITABLE_ROOMS", "NUMBER_HEATED_ROOMS"], + ) + + scoring_df = DataProcessor.apply_averages_cleaning( + data_to_clean=scoring_df, + cleaning_data=cleaning_data, + cols_to_merge_on=COLUMNS_TO_MERGE_ON + ["LOCAL_AUTHORITY"], + ).drop(columns=["LOCAL_AUTHORITY"]) + + scoring_df = DataProcessor.clean_missings_after_description_process( + scoring_df, + ignore_cols=[c for c in scoring_df.columns if ("thermal_transmittance" in c) or ( + "insulation_thickness" in c) or ("ENERGY_EFF" in c)] + ) + + scoring_df = DataProcessor.clean_efficiency_variables(scoring_df) + + model_api = ModelApi(portfolio_id="ha33-eligibility", timestamp=created_at) + all_predictions = model_api.predict_all( + df=scoring_df, + bucket="retrofit-data-dev", + prediction_buckets={ + "sap_change_predictions": "retrofit-sap-predictions-dev", + "heat_demand_predictions": "retrofit-heat-predictions-dev", + "carbon_change_predictions": "retrofit-carbon-predictions-dev" + } + ) + + # merge the predictions onto the scoring_df + predictions = all_predictions["sap_change_predictions"].copy() + + results_df = pd.DataFrame(results) + + predictions = predictions.rename(columns={"property_id": "row_id"}).merge( + results_df[["row_id", "sap"]], how="left", on="row_id" + ) + predictions["sap_uplift"] = predictions["predictions"] - predictions["sap"] + predictions = predictions.groupby("row_id")["sap_uplift"].sum().reset_index() + + results_df = results_df.merge( + predictions[["sap_uplift", "row_id"]], + how="left", + on="row_id" + ) + + results_df["post_install_sap"] = results_df["sap"] + results_df["sap_uplift"] + + eligibility_assessment = [] + for _, row in results_df[results_df["eco4_eligible"] == True].iterrows(): + # The upgrade requirements are dependent on the current SAP + + # If the property is an F or G, it only needs to upgrade to an % + if row["sap"] <= 38: + if row["post_install_sap"] >= 57: + eligibility_classification = "highest confidence" + elif row["post_install_sap"] >= 55: + eligibility_classification = "high confidence" + elif row["post_install_sap"] >= 53: + eligibility_classification = "medium confidence" + else: + eligibility_classification = "unlikely" + else: + + if row["post_install_sap"] >= 71: + eligibility_classification = "highest confidence" + elif row["post_install_sap"] >= 69: + eligibility_classification = "high confidence" + elif row["post_install_sap"] >= 67: + eligibility_classification = "medium confidence" + else: + eligibility_classification = "unlikely" + + eligibility_assessment.append( + { + "row_id": row["row_id"], + "eligibility_classification": eligibility_classification + } + ) + + eligibility_assessment = pd.DataFrame(eligibility_assessment) + + results_df = results_df.merge( + eligibility_assessment, how="left", on="row_id" + ) + + return results_df, scoring_data, nodata + + +def analyse_ha_33(results_df, data): + results_df_social = results_df[results_df["tenure"] == "Rented (social)"] + + results_df_social["tenure"].value_counts() + + data[data["row_id"].isin(results_df_social["row_id"].values)]["PROPERTY TYPE"].value_counts() + + n_identified = (results_df_social["gbis_eligible"] | results_df_social["eco4_eligible"]).sum() + n_eco4 = results_df_social["eco4_eligible"].sum() + n_gbis = results_df_social[~results_df_social["eco4_eligible"]]["gbis_eligible"].sum() + + results_df_social[results_df_social["gbis_eligible"] | results_df_social["eco4_eligible"]]["tenure"].value_counts() + + results_df_social["eligibility_classification"].value_counts() + + future_possibilities_eco = results_df[ + (results_df["eco4_eligible_future"] == True) & (~(results_df["gbis_eligible"] | results_df["eco4_eligible"])) + ].copy() + + future_possibilities_gbis = results_df[ + (results_df["gbis_eligible_future"] == True) & (results_df["eco4_eligible_future"] == False) & ( + ~(results_df["gbis_eligible"] | results_df["eco4_eligible"])) + ].copy() def app(): @@ -182,4 +311,4 @@ def app(): created_at = datetime.now().isoformat() - get_ha_33data(data, cleaned, cleaning_data, created_at) + results_df, _, _ = get_ha_33data(data, cleaned, cleaning_data, created_at) From 8674dc415f5e6aaa1541d687c977e893c5702adc Mon Sep 17 00:00:00 2001 From: Michael Duong Date: Fri, 15 Dec 2023 18:40:23 +0000 Subject: [PATCH 069/526] migrate process code to trainingdataset --- etl/epc/DataProcessor.py | 1 + etl/epc/Dataset.py | 182 ++++++++++++++++++++++-- etl/epc/Record.py | 48 +++++-- etl/epc/property_change_app.py | 247 ++++++++++----------------------- 4 files changed, 290 insertions(+), 188 deletions(-) diff --git a/etl/epc/DataProcessor.py b/etl/epc/DataProcessor.py index 1946c1a4..0f07cdfa 100644 --- a/etl/epc/DataProcessor.py +++ b/etl/epc/DataProcessor.py @@ -360,6 +360,7 @@ class EPCDataProcessor: ) self.cleaning_averages["LOCAL_AUTHORITY"] = self.data["LOCAL_AUTHORITY"].values[0] + self.cleaning_averages.columns = self.cleaning_averages.columns.str.lower() self.data.columns = self.data.columns.str.lower() diff --git a/etl/epc/Dataset.py b/etl/epc/Dataset.py index c2ed5538..68823f27 100644 --- a/etl/epc/Dataset.py +++ b/etl/epc/Dataset.py @@ -33,7 +33,8 @@ class TrainingDataset(BaseDataset): A collection of EPCDifferenceRecords can be combined into a TrainingDataset. """ - def __init__(self, datasets: List[EPCDifferenceRecord]) -> None: + def __init__(self, datasets: List[EPCDifferenceRecord], cleaned_lookup: dict) -> None: + # self.pipeline_steps = self.pipeline_factory("training") self.datasets = datasets self.df = pd.DataFrame([dataset.difference_record for dataset in datasets]) @@ -42,12 +43,176 @@ class TrainingDataset(BaseDataset): self._feature_generation() self._drop_features() # self._clean_dataframe() - # self._clean_efficiency_variables() - # self._null_validation(information="Clean Efficiency Variables") - # # self._process_and_prune() - # self._clean_missing_values() - # self._null_validation(information="Clean Missing Values") + self._clean_efficiency_variables() + self._null_validation(information="Clean Efficiency Variables") + self._expand_description_to_features(cleaned_lookup) + self._adjust_assumed_values_in_wall_descriptions() + # TODO: For some of the features that we clean, we have either a true, false or possibly null value + # Those nulls should be False. clean_missings_after_description_process handles this but shouldn't + # need to + self._clean_missing_values() + self._null_validation(information="Clean Missing Values") + + + def _adjust_assumed_values_in_wall_descriptions(self): + """ + Strip out assumed values for all wall descriptions + """ + for col in ["walls_clean_description", "walls_clean_description_ending"]: + self.df[col] = self.df[col].str.replace("(assumed)", "").str.rstrip() + + + def _drop_inconsistent_properties(self, expanded_df: pd.DataFrame, component: str): + """ + Drop properties that have inconsistent data, i.e. changing material types + """ + + if component == "walls": + expanded_df = expanded_df[ + (expanded_df["is_cavity_wall"] == expanded_df["is_cavity_wall_ending"]) & + (expanded_df["is_solid_brick"] == expanded_df["is_solid_brick_ending"]) & + (expanded_df["is_timber_frame"] == expanded_df["is_timber_frame_ending"]) & + (expanded_df["is_granite_or_whinstone"] == expanded_df["is_granite_or_whinstone_ending"]) & + (expanded_df["is_cob"] == expanded_df["is_cob_ending"]) & + (expanded_df["is_sandstone_or_limestone"] == expanded_df["is_sandstone_or_limestone_ending"]) + ] + elif component == "floor": + expanded_df = expanded_df[ + (expanded_df["is_suspended"] == expanded_df["is_suspended_ending"]) & + (expanded_df["is_solid"] == expanded_df["is_solid_ending"]) & + (expanded_df["another_property_below"] == expanded_df["another_property_below_ending"]) & + (expanded_df["is_to_unheated_space"] == expanded_df["is_to_unheated_space_ending"]) & + (expanded_df["is_to_external_air"] == expanded_df["is_to_external_air_ending"]) + ] + elif component == "roof": + expanded_df = expanded_df[ + (expanded_df["is_pitched"] == expanded_df["is_pitched_ending"]) & + (expanded_df["is_roof_room"] == expanded_df["is_roof_room_ending"]) & + (expanded_df["is_loft"] == expanded_df["is_loft_ending"]) & + (expanded_df["is_flat"] == expanded_df["is_flat_ending"]) & + (expanded_df["is_thatched"] == expanded_df["is_thatched_ending"]) & + (expanded_df["is_at_rafters"] == expanded_df["is_at_rafters_ending"]) & + (expanded_df["has_dwelling_above"] == expanded_df["has_dwelling_above_ending"]) + ] + + return expanded_df + + + def _expand_description_to_features(self, cleaned_lookup: dict): + """ + This method will merge on the cleaned lookup table and ensure that the building fabric in the + starting and ending EPC is consistent, so ensure that we are performing our modelling on the cleanest + possible dataset. + # We look for key building fabric features that have changed from one EPC to the next. + # if, for example, we see that a home has gone from being a cavity wall to a solid wall, we + # remove this record, as it indicates that the quality of the EPC conducted in the first instance + # is low + # We also replace descriptions with their cleaned variants + """ + + cols_to_drop = { + "walls": [ + # We need to cleaned descriptions for pulling out u-values + 'original_description', 'thermal_transmittance_unit', + 'original_description_ending', + 'thermal_transmittance_unit_ending', + 'is_cavity_wall_ending', 'is_filled_cavity_ending', + 'is_solid_brick_ending', 'is_system_built_ending', + 'is_timber_frame_ending', 'is_granite_or_whinstone_ending', + 'is_as_built_ending', 'is_cob_ending', 'is_assumed_ending', + 'is_sandstone_or_limestone_ending', + # Re remove the is_assumed columns + "is_assumed", "is_assumed_ending" + ], + "floor": [ + "original_description", "clean_description", "thermal_transmittance_unit", + "no_data", "no_data_ending", "original_description_ending", + "clean_description_ending", "thermal_transmittance_unit_ending", + "is_suspended_ending", "is_solid_ending", "another_property_below_ending", + "is_to_unheated_space_ending", "is_to_external_air_ending", "is_assumed", + "is_assumed_ending" + ], + "roof": [ + "original_description", "clean_description", "thermal_transmittance_unit", + "is_assumed", "is_valid", "original_description_ending", "clean_description_ending", + "thermal_transmittance_unit_ending", "is_pitched_ending", "is_roof_room_ending", + "is_loft_ending", "is_flat_ending", "is_thatched_ending", "is_at_rafters_ending", + "has_dwelling_above_ending", "is_assumed_ending", "is_valid_ending" + ], + "hotwater": [ + "original_description", "clean_description", "assumed", "original_description_ending", + "clean_description_ending", "assumed_ending" + ], + "mainheat": [ + "original_description", "clean_description", "original_description_ending", + "has_assumed", "original_description_ending", "clean_description_ending", + "has_assumed_ending", + ], + "mainheatcont": [ + "original_description", "clean_description", "original_description_ending", "clean_description_ending" + ], + "windows": [ + "original_description", "clean_description", "original_description_ending", "clean_description_ending", + # We don't need many of the glazing coverage features because we have the multi_glaze_proportion feature + "has_glazing", "glazing_coverage", "no_data", "has_glazing_ending", "glazing_coverage_ending", + "no_data_ending" + ], + "main-fuel": [ + "original_description", "clean_description", "original_description_ending", "clean_description_ending" + ], + } + + components_to_expand = cols_to_drop.keys() + + for component in components_to_expand: + + # TODO: change cleaned dataframe to have underscores instead of dashes + cleaned_key, left_on_starting, left_on_ending, original_cols = ( + ("main-fuel", "main_fuel_starting", "main_fuel_ending", ["main_fuel_starting", "main_fuel_ending"]) if component == "main-fuel" else + (f"{component}-description", f"{component}_description_starting", f"{component}_description_ending", [f"{component}_description_starting", f"{component}_description_ending"]) + ) + + cleaned_lookup_df_for_key = pd.DataFrame(cleaned_lookup[cleaned_key]) + + expanded_df = self.df.merge( + cleaned_lookup_df_for_key, + how="left", + left_on=left_on_starting, + right_on="original_description", + ).merge( + cleaned_lookup_df_for_key, + how="left", + left_on=left_on_ending, + right_on="original_description", + suffixes=("", "_ending") + ) + + # Drop inconsistent properties + expanded_df = self._drop_inconsistent_properties(expanded_df, component) + + # Drop original cols and cols to drop + expanded_df = expanded_df.drop(columns=cols_to_drop[component] + original_cols) + + # Rename columns to component specific names, if they have not been dropped + expanded_df = expanded_df.rename( + columns={ + "insulation_thickness": f"{component}_insulation_thickness", + "insulation_thickness_ending": f"{component}_insulation_thickness_ending", + "thermal_transmittance": f"{component}_thermal_transmittance", + "thermal_transmittance_ending": f"{component}_thermal_transmittance_ending", + "tariff_type": f"{component}_tariff_type", + "tariff_type_ending": f"{component}_tariff_type_ending", + "clean_description": f"{component}_clean_description", + "clean_description_ending": f"{component}_clean_description_ending", + } + ) + self.df = expanded_df + + # We don't need any lighting specific cleaning, we just drop the original description as we use + # LOW_ENERGY_LIGHTING_STARTING, LOW_ENERGY_LIGHTING_ENDING + self.df = self.df.drop(columns=["lighting_description_starting", "lighting_description_ending"]) + def _clean_missing_values(self, ignore_cols=None): missings = pd.isnull(self.df).sum() @@ -66,7 +231,8 @@ class TrainingDataset(BaseDataset): self.df[col] = self.df[col].fillna("Unknown") - def _null_validation(self, information: str = ""): + def _null_validation(self, information: str): + print(f"Null validation after {information}") if pd.isnull(self.df).sum().sum(): raise ValueError(f"Null values found in dataset, after step {information}") @@ -103,7 +269,7 @@ class TrainingDataset(BaseDataset): return # Make sure they are all efficiency columns - if any(~missings.index.str.contains("ENERGY_EFF")): + if any(~missings.index.str.contains("energy_eff")): raise ValueError("Non efficiency columns are missing") for m in missings.index: diff --git a/etl/epc/Record.py b/etl/epc/Record.py index b43168a7..4e799d66 100644 --- a/etl/epc/Record.py +++ b/etl/epc/Record.py @@ -26,10 +26,6 @@ class EPCRecord: """ Base class for a EPC record """ - # TODO: lower case and underscore - walls = None - floor = None - roof = None uprn: str walls_description: str @@ -72,6 +68,11 @@ class EPCRecord: energy_consumption_current : int co2_emissions_current : float + # TODO: lower case and underscore + walls = None + floor = None + roof = None + u_values_walls = None u_values_roof = None u_values_floor = None @@ -84,16 +85,48 @@ class EPCRecord: # self._field_validation() self._clean_records() - self._expand_description() + self._expand_description_to_uvalues() # self._generate_uvalues() # self._validate_expanded_description() # self._validate_u_values() # etc pass - def _expand_description(self): + def _expand_description_to_uvalues(self): # TODO: can be loop over all the descriptions, or done in one pass + + # def _process_and_prune(self, cleaned_lookup: dict): + # """ + # This method will merge on the cleaned lookup table and ensure that the building fabric in the + # starting and ending EPC is consistent, so ensure that we are performing our modelling on the cleanest + # possible dataset. + # """ + # for component in ["walls", "floor", "roof", "hotwater", "mainheat", "mainheatcont", "windows", "main-fuel"]: + # if component == "main-fuel": + # component = component.replace("-", "_") + # cleaned_key = "main-fuel" if component == "main-fuel" else f"{component}-description" + # left_on_starting = ( + # f"{component}_starting" if component == "main-fuel" else f"{component}_description_starting" + # ) + + # left_on_ending = ( + # f"{component}_ending" if component == "main-fuel" else f"{component}_description_ending" + # ) + + # self.df2 = self.df.merge( + # pd.DataFrame(cleaned_lookup[cleaned_key]), + # how="left", + # left_on=left_on_starting, + # right_on="original_description", + # ).merge( + # pd.DataFrame(cleaned_lookup[cleaned_key]), + # how="left", + # left_on=left_on_ending, + # right_on="original_description", + # suffixes=("", "_ending") + # ) + def _clean_records(self): """ @@ -120,7 +153,7 @@ class EPCRecord: if validation_config['type'] == "string": self._validate_string(record_key, field_value, validation_config) elif validation_config['type'] == "float": - self._validate_float(field_value, validation_config) + self._validate_float(record_key, field_value, validation_config) else: raise ValueError(f"Validation type {validation_config['type']} not supported") @@ -262,7 +295,6 @@ class EPCDifferenceRecord: ending_record = self.record2.get(component_variables + ["lodgement_date"], return_asdict=True, key_suffix="_ending") starting_record = self.record1.get(component_variables + ["lodgement_date"], return_asdict=True, key_suffix="_starting") - # TODO: Take the earliest potentials self.difference_record = { "uprn": self.record1.get("uprn"), "rdsap_change": rdsap_change, diff --git a/etl/epc/property_change_app.py b/etl/epc/property_change_app.py index 85118642..9cb2911e 100644 --- a/etl/epc/property_change_app.py +++ b/etl/epc/property_change_app.py @@ -39,6 +39,9 @@ CARBON_RESPONSE = CARBON_RESPONSE.lower() CORE_COMPONENT_FEATURES = [x.lower() for x in CORE_COMPONENT_FEATURES] EFFICIENCY_FEATURES = [x.lower() for x in EFFICIENCY_FEATURES] POTENTIAL_COLUMNS = [x.lower() for x in POTENTIAL_COLUMNS] +VARIABLE_DATA_FEATURES = COMPONENT_FEATURES + EFFICIENCY_FEATURES + POTENTIAL_COLUMNS + [ + "lodgement_date", RDSAP_RESPONSE, HEAT_DEMAND_RESPONSE, CARBON_RESPONSE +] def get_cleaned_description_mapping(): """ @@ -236,8 +239,8 @@ def make_uvalues(df): uvalues = [] # TODO: iterrows is the slowest way to do this, we should use a vectorised approach or itertuples - for _, x in df.iterrows(): - + for index_no, x in df.iterrows(): + uprn = x["UPRN"] row_index = x["row_index"] age_band = england_wales_age_band_lookup[x["CONSTRUCTION_AGE_BAND"]] @@ -462,12 +465,67 @@ class EPCPipeline: pass -def compare_consecutive_epcs(epc_records: List[EPCRecord], uprn: str, directory: Path, fixed_data: dict, property_model_data: list, all_equal_rows: list): +def generate_property_difference_records(epc_records: List[EPCRecord], uprn: str, directory: Path, fixed_data: dict, all_equal_rows: list): + """ + We can use multiple types of comparison datasets, for example: + - First vs second + - Second vs third + - First vs third + :param epc_records: + :return: + """ + + property_difference_records: list = [] + + property_difference_records, all_equal_rows = compare_consecutive_epcs(epc_records, uprn, directory, fixed_data, property_difference_records, all_equal_rows) + + # property_difference_records, all_equal_rows = compare_all_permutation_epcs(epc_records, uprn, directory, fixed_data, property_difference_records, all_equal_rows) + + return property_difference_records, all_equal_rows + + +def compare_all_permutation_epcs(epc_records: List[EPCRecord], uprn: str, directory: Path, fixed_data: dict, property_difference_records: list, all_equal_rows: list): + """ + Compare all permutations of EPCs for a given UPRN + :param epc_records: + :return: + """ + + for idx in range(0, len(epc_records) - 1): + for idx2 in range(idx + 1, len(epc_records)): + earliest_record: EPCRecord = epc_records[idx] + latest_record: EPCRecord = epc_records[idx2] + + # Auto sort the records so that the record with highest RDSAP score is always record1 + difference_record: EPCDifferenceRecord = latest_record - earliest_record + + # TODO: Pull out RDSAP_CHANGE to a variable + if difference_record.get("rdsap_change") == 0: + continue + + all_equal = difference_record.compare_fields_in_records( + fields=[x.lower() for x in CORE_COMPONENT_FEATURES] + ) + + if all_equal: + # Keep track of this for the moment so we can analyse + all_equal_rows.append({"uprn": uprn, "directory_name": directory.name}) + continue + + difference_record.append_fixed_data(fixed_data) + + property_difference_records.append(difference_record) + + return property_difference_records, all_equal_rows + + +def compare_consecutive_epcs(epc_records: List[EPCRecord], uprn: str, directory: Path, fixed_data: dict, property_difference_records: list, all_equal_rows: list): """ Compare consecutive EPCs for a given UPRN :param epc_records: :return: """ + for idx in range(0, len(epc_records) - 1): if idx >= len(epc_records) - 1: @@ -494,9 +552,12 @@ def compare_consecutive_epcs(epc_records: List[EPCRecord], uprn: str, directory: difference_record.append_fixed_data(fixed_data) - property_model_data.append(difference_record) + property_difference_records.append(difference_record) - return property_model_data, all_equal_rows + return property_difference_records, all_equal_rows + + +from etl.epc.Dataset import TrainingDataset def app(): # Get all the files in the directory @@ -525,7 +586,7 @@ def app(): cleaning_dataset.append(epc_data_processor.cleaning_averages) - data_by_uprn = [] + constituency_difference_records = [] for uprn, property_data in df.groupby("uprn", observed=True): # If a property has changed building type, we can ignore the epc rating i.e. this should be 1 unique row @@ -540,183 +601,25 @@ def app(): # We include the lodgement date here as we probably need to factor time into the # model, since EPC standards and rigour have changed over time - variable_data = property_data[ - COMPONENT_FEATURES + EFFICIENCY_FEATURES + POTENTIAL_COLUMNS + [ - "lodgement_date", RDSAP_RESPONSE, HEAT_DEMAND_RESPONSE, CARBON_RESPONSE - ] - ] - - # Note: we look at changes between subsequent EPCS, however we could look at other permutations - # e.g. first vs second, second vs third and also first vs third - property_model_data = [] + variable_data = property_data[VARIABLE_DATA_FEATURES] + uprn = str(uprn) epc_records = [EPCRecord(uprn, **x) for x in variable_data.to_dict(orient='records')] - # TODO: Make this part of a strategy pattern, as we can generate different training datasets - property_model_data, all_equal_rows = compare_consecutive_epcs(epc_records, uprn, directory, fixed_data, property_model_data, all_equal_rows) + # We can use multiple types of comparison datasets - i.e. Compare consecutive records, or compare all permutations of records + property_difference_records, all_equal_rows = generate_property_difference_records(epc_records, uprn, directory, fixed_data, all_equal_rows) + constituency_difference_records.extend(property_difference_records) + constituency_dataset = TrainingDataset(datasets=constituency_difference_records, cleaned_lookup=cleaned_lookup) - # for idx in range(0, len(epc_records) - 1): - - # if idx >= len(epc_records) - 1: - # break - - # earliest_record: EPCRecord = epc_records[idx] - # latest_record: EPCRecord = epc_records[idx + 1] - - # # Auto sort the records so that the record with highest RDSAP score is always record1 - # difference_record: EPCDifferenceRecord = latest_record - earliest_record - - # # TODO: Pull out RDSAP_CHANGE to a variable - # if difference_record.get("RDSAP_CHANGE") == 0: - # continue - - # all_equal = difference_record.compare_fields_in_records( - # fields=CORE_COMPONENT_FEATURES - # ) - - # if all_equal: - # # Keep track of this for the moment so we can analyse - # all_equal_rows.append({"uprn": uprn, "directory_name": directory.name}) - # continue - - # difference_record.append_fixed_data(fixed_data) - - # property_model_data.append(difference_record) - - # property_model_data.append(difference_record.difference_record) - - # for idx in range(0, property_data.shape[0] - 1): - - # if idx >= property_data.shape[0] - 1: - # break - - # earliest_record = variable_data.iloc[idx] - # latest_record = variable_data.iloc[idx + 1] - - # # Check if the sap gets better or worse - # gets_better = earliest_record[RDSAP_RESPONSE] <= latest_record[RDSAP_RESPONSE] - - # component_variables = COMPONENT_FEATURES + EFFICIENCY_FEATURES - - # if gets_better: - # starting_sap = earliest_record[RDSAP_RESPONSE] - # starting_heat_demand = earliest_record[HEAT_DEMAND_RESPONSE] - # starting_carbon = earliest_record[CARBON_RESPONSE] - - # ending_sap = latest_record[RDSAP_RESPONSE] - # ending_heat_demand = latest_record[HEAT_DEMAND_RESPONSE] - # ending_carbon = latest_record[CARBON_RESPONSE] - - # rdsap_change = latest_record[RDSAP_RESPONSE] - starting_sap - # heat_demand_change = latest_record[HEAT_DEMAND_RESPONSE] - starting_heat_demand - # carbon_change = latest_record[CARBON_RESPONSE] - starting_carbon - - # starting_record = earliest_record[component_variables + ["LODGEMENT_DATE"]].add_suffix("_STARTING") - # ending_record = latest_record[component_variables + ["LODGEMENT_DATE"]].add_suffix("_ENDING") - # else: - # starting_sap = latest_record[RDSAP_RESPONSE] - # starting_heat_demand = latest_record[HEAT_DEMAND_RESPONSE] - # starting_carbon = latest_record[CARBON_RESPONSE] - - # ending_sap = earliest_record[RDSAP_RESPONSE] - # ending_heat_demand = earliest_record[HEAT_DEMAND_RESPONSE] - # ending_carbon = earliest_record[CARBON_RESPONSE] - - # rdsap_change = earliest_record[RDSAP_RESPONSE] - starting_sap - # heat_demand_change = earliest_record[HEAT_DEMAND_RESPONSE] - starting_heat_demand - # carbon_change = earliest_record[CARBON_RESPONSE] - starting_carbon - - # starting_record = latest_record[component_variables + ["LODGEMENT_DATE"]].add_suffix("_STARTING") - # ending_record = earliest_record[component_variables + ["LODGEMENT_DATE"]].add_suffix("_ENDING") - - # if rdsap_change == 0: - # continue - - # all_equal = compare_records( - # earliest_record=earliest_record, - # latest_record=latest_record, - # columns=CORE_COMPONENT_FEATURES - # ) - - # if all_equal: - # # Keep track of this for the moment so we can analyse - # all_equal_rows.append({"uprn": uprn, "directory_name": directory.name}) - # continue - # asdasd - # features = pd.concat([starting_record, ending_record]) - - # property_model_data.append( - # { - # "UPRN": uprn, - # "RDSAP_CHANGE": rdsap_change, - # "HEAT_DEMAND_CHANGE": heat_demand_change, - # "CARBON_CHANGE": carbon_change, - # "SAP_STARTING": starting_sap, - # "SAP_ENDING": ending_sap, - # "HEAT_DEMAND_STARTING": starting_heat_demand, - # "HEAT_DEMAND_ENDING": ending_heat_demand, - # "CARBON_STARTING": starting_carbon, - # "CARBON_ENDING": ending_carbon, - # "POTENTIAL_ENERGY_EFFICIENCY": earliest_record["POTENTIAL_ENERGY_EFFICIENCY"], - # "ENVIRONMENT_IMPACT_POTENTIAL": earliest_record["ENVIRONMENT_IMPACT_POTENTIAL"], - # "ENERGY_CONSUMPTION_POTENTIAL": earliest_record["ENERGY_CONSUMPTION_POTENTIAL"], - # "CO2_EMISSIONS_POTENTIAL": earliest_record["CO2_EMISSIONS_POTENTIAL"], - # **fixed_data, - # **features.to_dict(), - # } - # ) - - # data_by_urpn.extend(property_model_data) - data_by_uprn.extend(property_model_data) - - from etl.epc.Dataset import TrainingDataset - constituency_data = TrainingDataset(datasets=data_by_uprn) - - # data_by_urpn_df = pd.DataFrame(data_by_urpn) - - # # TODO: can we move this into the epc record? - # data_by_urpn_df["DAYS_TO_STARTING"] = DataProcessor.calculate_days_to( - # data_by_urpn_df["LODGEMENT_DATE_STARTING"] - # ) - - # data_by_urpn_df["DAYS_TO_ENDING"] = DataProcessor.calculate_days_to( - # data_by_urpn_df["LODGEMENT_DATE_ENDING"] - # ) - - # data_by_urpn_df = data_by_urpn_df.drop(columns=["LODGEMENT_DATE_STARTING", "LODGEMENT_DATE_ENDING"]) - - # data_by_urpn_df = DataProcessor.clean_efficiency_variables(data_by_urpn_df) - - # We look for key building fabric features that have changed from one EPC to the next. - # if, for example, we see that a home has gone from being a cavity wall to a solid wall, we - # remove this record, as it indicates that the quality of the EPC conducted in the first instance - # is low - # We also replace descriptions with their cleaned variants - - # if pd.isnull(data_by_urpn_df).sum().sum(): - # raise ValueError("Null values found in dataset") - - data_by_urpn_df = process_and_prune_desriptions(data_by_urpn_df, cleaned_lookup) + constituency_dataset_df = constituency_dataset.df # Apply u-values - # for col in ["walls_clean_description", "walls_clean_description_ENDING"]: - # data_by_urpn_df[col] = data_by_urpn_df[col].str.replace("(assumed)", "").str.rstrip() - - data_by_urpn_df = make_uvalues(data_by_urpn_df).drop( + data_by_urpn_df = make_uvalues(df = constituency_dataset_df).drop( columns=["walls_clean_description", "walls_clean_description_ENDING"] ) - # TODO: For some of the features that we clean, we have either a true, false or possibly null value - # Those nulls should be False. clean_missings_after_description_process handles this but shouldn't - # need to - - # data_by_urpn_df = DataProcessor.clean_missings_after_description_process(data_by_urpn_df) - - # if pd.isnull(data_by_urpn_df).sum().sum(): - # raise ValueError("Null values found in dataset after process_and_prune_desriptions") - dataset.append(data_by_urpn_df) print("Final all equal count: %s" % str(len(all_equal_rows))) From 9abeb75aac15f98995374a279183947f541a21e3 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Mon, 18 Dec 2023 10:45:28 +0000 Subject: [PATCH 070/526] finishing off ha33 --- etl/eligibility/ha_15_32/ha33_app.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/etl/eligibility/ha_15_32/ha33_app.py b/etl/eligibility/ha_15_32/ha33_app.py index f5152fba..9af5eae2 100644 --- a/etl/eligibility/ha_15_32/ha33_app.py +++ b/etl/eligibility/ha_15_32/ha33_app.py @@ -274,6 +274,10 @@ def analyse_ha_33(results_df, data): n_eco4 = results_df_social["eco4_eligible"].sum() n_gbis = results_df_social[~results_df_social["eco4_eligible"]]["gbis_eligible"].sum() + eco_eligibile = results_df_social[results_df_social["eco4_eligible"]] + eco_eligibile["walls"].value_counts() + eco_eligibile["roof"].value_counts() + results_df_social[results_df_social["gbis_eligible"] | results_df_social["eco4_eligible"]]["tenure"].value_counts() results_df_social["eligibility_classification"].value_counts() From d38e4d44a0b522dede8f2e2becc0fde9f5e61767 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Mon, 18 Dec 2023 15:17:22 +0000 Subject: [PATCH 071/526] built and added condition of insulation, prior to ventilation --- .idea/Model.iml | 2 +- .idea/misc.xml | 2 +- backend/Property.py | 22 +++++++++++++++++++++- backend/app/plan/router.py | 8 ++++++-- backend/ml_models/Valuation.py | 1 + recommendations/Recommendations.py | 8 +++++--- 6 files changed, 35 insertions(+), 8 deletions(-) diff --git a/.idea/Model.iml b/.idea/Model.iml index 3a3ec5a2..4413bb06 100644 --- a/.idea/Model.iml +++ b/.idea/Model.iml @@ -7,7 +7,7 @@ - + diff --git a/.idea/misc.xml b/.idea/misc.xml index 605a6457..6f308057 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -3,7 +3,7 @@ - + diff --git a/backend/Property.py b/backend/Property.py index 705ad361..bb545248 100644 --- a/backend/Property.py +++ b/backend/Property.py @@ -1,6 +1,8 @@ from datetime import datetime import re import os + +import numpy as np import pandas as pd from etl.epc.DataProcessor import DataProcessor @@ -820,7 +822,25 @@ class Property(Definitions): """ if self.data["fixed-lighting-outlets-count"] == "": - self.number_lighting_outlets = round(cleaned_property_data["FIXED_LIGHTING_OUTLETS_COUNT"].values[0]) + + # We check old EPCs and the full SAP EPC + + lighting_data = [] + + if len(self.old_data): + lighting_data.extend([ + int(x["fixed-lighting-outlets-count"]) for x in self.old_data if + x["fixed-lighting-outlets-count"] != "" + ]) + + if len(self.full_sap_epc): + if self.full_sap_epc["fixed-lighting-outlets-count"] != "": + lighting_data.append(int(self.full_sap_epc["fixed-lighting-outlets-count"])) + + if lighting_data: + self.number_lighting_outlets = round(np.median(lighting_data)) + else: + self.number_lighting_outlets = round(cleaned_property_data["FIXED_LIGHTING_OUTLETS_COUNT"].values[0]) else: self.number_lighting_outlets = float(self.data["fixed-lighting-outlets-count"]) diff --git a/backend/app/plan/router.py b/backend/app/plan/router.py index b5acb3c0..7a6df2da 100644 --- a/backend/app/plan/router.py +++ b/backend/app/plan/router.py @@ -478,9 +478,13 @@ async def trigger_plan(body: PlanTriggerRequest): recommendations[property_id] = property_recommendations # For expected adjust energy, we don't include mechanical ventilation so we'll add it back on - expected_adjusted_energy = expected_adjusted_energy + representative_rec_data[ + mechanical_ventilation_rec = representative_rec_data[ representative_rec_data["type"] == "mechanical_ventilation" - ]["heat_demand"].values[0] + ] + if not mechanical_ventilation_rec.empty: + expected_adjusted_energy = ( + expected_adjusted_energy + mechanical_ventilation_rec["heat_demand"].values[0] + ) property_instance.set_adjusted_energy( current_adjusted_energy=current_adjusted_energy, diff --git a/backend/ml_models/Valuation.py b/backend/ml_models/Valuation.py index 522a7067..f5a7e2bb 100644 --- a/backend/ml_models/Valuation.py +++ b/backend/ml_models/Valuation.py @@ -19,6 +19,7 @@ class PropertyValuation: 100070505235: 344000, # Based on Zoopla's estimation of 131 School road, which is also semi-detached 100070513306: 182000, # Based on Zoopla's estimation of 61 Simmons Drive 100071306896: 77000, # Based on Flat 2 of 44 Wedgewood Road on Zoopla + 100021192109: 650000 # Based on Zoopla } # We base our valuation uplifts on a number of sources diff --git a/recommendations/Recommendations.py b/recommendations/Recommendations.py index a169b788..60cdb696 100644 --- a/recommendations/Recommendations.py +++ b/recommendations/Recommendations.py @@ -61,9 +61,11 @@ class Recommendations: property_recommendations.append(self.roof_recommender.recommendations) # Ventilation recommendations - self.ventilation_recomender.recommend() - if self.ventilation_recomender.recommendation: - property_recommendations.append(self.ventilation_recomender.recommendation) + # We only produce a ventilation recommendation if the property is recommended to have wall or roof insulation + if self.wall_recomender.recommendations or self.roof_recommender.recommendations: + self.ventilation_recomender.recommend() + if self.ventilation_recomender.recommendation: + property_recommendations.append(self.ventilation_recomender.recommendation) # Fireplace sealing recommendations self.fireplace_recommender.recommend() From 9f42344e044b68bc69a2dbdaac085aba18c16b1b Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Mon, 18 Dec 2023 15:57:53 +0000 Subject: [PATCH 072/526] recommendation class template --- recommendations/WindowsRecommendations.py | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 recommendations/WindowsRecommendations.py diff --git a/recommendations/WindowsRecommendations.py b/recommendations/WindowsRecommendations.py new file mode 100644 index 00000000..ed2ea7a5 --- /dev/null +++ b/recommendations/WindowsRecommendations.py @@ -0,0 +1,7 @@ +class WindowsRecommendations: + + def __init__(self): + pass + + def recommend(self): + pass From c6c8de6dcf096349de0a75b4f168bfea122536ab Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Mon, 18 Dec 2023 16:03:36 +0000 Subject: [PATCH 073/526] Added init and started adding the recommendation function --- recommendations/WindowsRecommendations.py | 32 ++++++++++++++++++++--- 1 file changed, 29 insertions(+), 3 deletions(-) diff --git a/recommendations/WindowsRecommendations.py b/recommendations/WindowsRecommendations.py index ed2ea7a5..e5a11f8a 100644 --- a/recommendations/WindowsRecommendations.py +++ b/recommendations/WindowsRecommendations.py @@ -1,7 +1,33 @@ +from typing import List +from backend.Property import Property +from recommendations.Costs import Costs + + class WindowsRecommendations: - def __init__(self): - pass + def __init__(self, property_instance: Property, materials: List): + self.property = property_instance + self.costs = Costs(self.property) + + self.recommendations = [] + + self.glazing_materials = [ + material for material in materials if material["type"] == "window_glazing" + ] + + # TODO: This will be populated with the works associated to upgrading glazing. This will involve removal of + # previous glazing and installation of new glazing. This will not include the cost of the windows material + # themselfs + self.glazing_works_materials = [] def recommend(self): - pass + """ + This method will recommend the best possible glazing options for a property. + + In order to do this, we need to estimate the number of windows that the home has. This information will be + stored in the property object, under property.number_of_windows + :return: + """ + + if not self.property.number_of_windows: + raise ValueError("Number of windows not specified") From 57f92e60602abdf232be22f8ed2d1cc97a42cc67 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Tue, 19 Dec 2023 19:27:33 +0000 Subject: [PATCH 074/526] completed estimate windows function, though it needs more testing --- .idea/Model.iml | 2 +- .idea/misc.xml | 2 +- recommendations/recommendation_utils.py | 61 +++++++++++++ .../tests/test_recommendation_utils.py | 91 +++++++++++++++++++ 4 files changed, 154 insertions(+), 2 deletions(-) diff --git a/.idea/Model.iml b/.idea/Model.iml index 4413bb06..b0f9c00d 100644 --- a/.idea/Model.iml +++ b/.idea/Model.iml @@ -7,7 +7,7 @@ - + diff --git a/.idea/misc.xml b/.idea/misc.xml index 6f308057..1122b380 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -3,7 +3,7 @@ - + diff --git a/recommendations/recommendation_utils.py b/recommendations/recommendation_utils.py index 100ecb15..7cfe023e 100644 --- a/recommendations/recommendation_utils.py +++ b/recommendations/recommendation_utils.py @@ -652,3 +652,64 @@ def esimtate_pitched_roof_area(floor_area: float, floor_height: float) -> float: area = 2 * (slope * wall_width) return area + + +def estimate_windows( + property_type, built_form, construction_age_band, floor_area, number_habitable_rooms, extension_count +): + # Base window count based on habitable rooms + window_count = number_habitable_rooms + + # Additional windows for non-habitable rooms (e.g., kitchen, bathroom) + # Assuming most houses will have at least one kitchen and one bathroom + # Scale non-habitable windows with the number of habitable rooms + non_habitable_base = 2 # Base for kitchen and bathroom + extra_non_habitable = max(0, (number_habitable_rooms - 3) // 2) # Extra for large houses + window_count += non_habitable_base + extra_non_habitable + + # Adjustments based on built form and property type + if property_type in ["House", "Bungalow"] and built_form in ["Semi-Detached", "Detached"]: + built_form_lookup = { + "Semi-Detached": 3, + "Detached": 4, + } + else: + # For Flats and Maisonettes, adjustments might be less + built_form_lookup = { + "Mid-Terrace": 0, + "End-Terrace": 1, + "Semi-Detached": 1, + "Detached": 2, + } + window_count += built_form_lookup.get(built_form, 0) + + # Adjust for floor area (larger floor area might indicate more rooms/windows) + if floor_area < 85: # Small to medium properties + # Standard window count likely sufficient + pass + elif 85 <= floor_area <= 120: # Medium to large properties + # More rooms or larger rooms likely, potentially more windows + window_count += 1 + elif floor_area > 120: # Very large properties + # Likely to have significantly more or larger rooms + window_count += 2 + + # Adjust for construction age band + if construction_age_band in ["England and Wales: before 1900", "England and Wales: 1900-1929"]: + # Older houses with smaller, more numerous windows + window_count += 1 + + # Adjust for extensions (each extension might add windows) + window_count += extension_count + + # Adjustments for specific property types + if property_type in ["Flat", "Maisontte"]: + # Flats might have fewer windows due to shared walls + # Maisonettes might follow a similar pattern to flats or small houses + window_count -= 1 + + # Ensure window count is not negative + if window_count < 0: + raise ValueError("Window count cannot be negative.") + + return window_count diff --git a/recommendations/tests/test_recommendation_utils.py b/recommendations/tests/test_recommendation_utils.py index aefc70b0..7c29bbb0 100644 --- a/recommendations/tests/test_recommendation_utils.py +++ b/recommendations/tests/test_recommendation_utils.py @@ -427,3 +427,94 @@ def test_external_wall_area(): for num_floors, floor_height, perimeter, built_form, expected in test_cases: result = recommendation_utils.estimate_external_wall_area(num_floors, floor_height, perimeter, built_form) assert result == expected, f"Test failed for {built_form}: Expected {expected}, got {result}" + + +def test_estimate_windows(): + # Based on data from an EPR that has 4 windows + windows_case_1 = recommendation_utils.estimate_windows( + property_type="Flat", + built_form="Semi-Detached", + construction_age_band="England and Wales: 1976-1982", + floor_area=37, + number_habitable_rooms=2, + extension_count=0, + ) + + assert windows_case_1 == 4, f"Expected 4 windows, got {windows_case_1}" + + # Based on data from an EPR that has 7 winows, however two of the windows were very small, having areas of + # 0.21m^2 and 0.3m^2 respectively. We see 6 as a reasonable estimate for the number of windows + windows_case_2 = recommendation_utils.estimate_windows( + property_type="House", + built_form="Mid-Terrace", + construction_age_band="England and Wales: 1950-1966", + floor_area=69, + number_habitable_rooms=4, + extension_count=0, + ) + + assert windows_case_2 == 6, f"Expected 6 windows, got {windows_case_2}" + + # Based on data from an EPR on a bungalow, that has 6 windows. Two of the windows are small, both have a 0.4m^2 area + # and so 5 windows is an acceptable estimate + windows_case_3 = recommendation_utils.estimate_windows( + property_type="Bungalow", + built_form="Mid-Terrace", + construction_age_band="England and Wales: 1967-1975", + floor_area=56, + number_habitable_rooms=3, + extension_count=0, + ) + + assert windows_case_3 == 5, f"Expected 5 windows, got {windows_case_3}" + + # Based on data from an EPR on a end terrace house that has 8 windows. One of the windows is very small, with an + # area of 0.25 m^2 and so 7 windows is an acceptable estimate + windows_case_4 = recommendation_utils.estimate_windows( + property_type="House", + built_form="End-Terrace", + construction_age_band="England and Wales: 1967-1975", + floor_area=77.28, + number_habitable_rooms=4, + extension_count=0, + ) + + assert windows_case_4 == 7, f"Expected 7 windows, got {windows_case_4}" + + # Based on data from an EPR on a Semi-detatched house that has 11 windows based on the associated condition report + # Right now, we estimate 12 windows for this property + windows_case_5 = recommendation_utils.estimate_windows( + property_type="House", + built_form="Semi-Detached", + construction_age_band="England and Wales: 1950-1966", + floor_area=88.4, + number_habitable_rooms=5, + extension_count=0, + ) + + assert windows_case_5 == 12, f"Expected 12 windows, got {windows_case_5}" + + # Based on Khalim's flat which has 3 windows. There is no construction age band on the EPC. The windows are large + # so an estimate of 5 windows is a reasonable estimate + windows_case_6 = recommendation_utils.estimate_windows( + property_type="Flat", + built_form="", + construction_age_band="", + floor_area=100, + number_habitable_rooms=3, + extension_count=0, + ) + + assert windows_case_6 == 5, f"Expected 5 windows, got {windows_case_6}" + + # Based on an EPR semi detatched house though we don't have the exact number of windows. We estimate 10 + windows_case_7 = recommendation_utils.estimate_windows( + property_type="House", + built_form="Semi-Detached", + construction_age_band="England and Wales: 1967-1975", + floor_area=85, + number_habitable_rooms=4, + extension_count=0, + ) + + assert windows_case_7 == 10, f"Expected 10 windows, got {windows_case_7}" From 1b10f5c9b1b77936e5e275e6ff125866a37f889c Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Wed, 20 Dec 2023 10:34:08 +0000 Subject: [PATCH 075/526] unit tests for estimate windows --- recommendations/tests/test_recommendation_utils.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/recommendations/tests/test_recommendation_utils.py b/recommendations/tests/test_recommendation_utils.py index 7c29bbb0..559a51b2 100644 --- a/recommendations/tests/test_recommendation_utils.py +++ b/recommendations/tests/test_recommendation_utils.py @@ -518,3 +518,15 @@ def test_estimate_windows(): ) assert windows_case_7 == 10, f"Expected 10 windows, got {windows_case_7}" + + # Base on Khalim's parents flat + windows_case_8 = recommendation_utils.estimate_windows( + property_type="Flat", + built_form="End-Terrace", + construction_age_band="", + floor_area=50, + number_habitable_rooms=3, + extension_count=0, + ) + + assert windows_case_8 == 5, f"Expected 5 windows, got {windows_case_8}" From 6388d45638809d098f1b8af818dc3494e7fb7482 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Wed, 20 Dec 2023 10:37:52 +0000 Subject: [PATCH 076/526] added set method for windows count into property class --- backend/Property.py | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/backend/Property.py b/backend/Property.py index bb545248..41696c37 100644 --- a/backend/Property.py +++ b/backend/Property.py @@ -14,7 +14,7 @@ from epc_api.client import EpcClient from BaseUtility import Definitions from recommendations.rdsap_tables import england_wales_age_band_lookup, FLOOR_LEVEL_MAP from recommendations.recommendation_utils import ( - estimate_perimeter, get_wall_type, estimate_external_wall_area, esimtate_pitched_roof_area + estimate_perimeter, get_wall_type, estimate_external_wall_area, esimtate_pitched_roof_area, estimate_windows ) ENVIRONMENT = os.environ.get('ENVIRONMENT', 'dev') @@ -87,6 +87,7 @@ class Property(Definitions): self.insulation_floor_area = None self.number_lighting_outlets = None self.floor_level = None + self.number_of_windows = None self.current_adjusted_energy = None self.expected_adjusted_energy = None @@ -332,6 +333,7 @@ class Property(Definitions): self.set_wall_type() self.set_floor_type() self.set_floor_level() + self.set_windows_count() def set_age_band(self): """ @@ -850,3 +852,18 @@ class Property(Definitions): """ self.current_adjusted_energy = current_adjusted_energy self.expected_adjusted_energy = expected_adjusted_energy + + def set_windows_count(self): + """ + Using the estimate_windows function, this method will set the number of windows in the property + :return: + """ + + self.number_of_windows = estimate_windows( + property_type=self.data["property-type"], + built_form=self.data["built-form"], + construction_age_band=self.construction_age_band, + floor_area=self.floor_area, + number_habitable_rooms=self.number_of_rooms, + extension_count=float(self.data["extension-count"]), + ) From 3426629418872f820577275d2736e0d30145805a Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Wed, 20 Dec 2023 14:38:31 +0000 Subject: [PATCH 077/526] Added windows costs to costs etl process --- .idea/Model.iml | 2 +- .idea/misc.xml | 2 +- etl/costs/app.py | 1 + .../epc_attributes/WindowAttributes.py | 6 +- .../test_data/test_window_attributes_cases.py | 6 +- recommendations/Costs.py | 68 +++++++++++++++++++ recommendations/WindowsRecommendations.py | 27 +++++++- .../tests/test_window_recommendations.py | 30 ++++++++ 8 files changed, 135 insertions(+), 7 deletions(-) create mode 100644 recommendations/tests/test_window_recommendations.py diff --git a/.idea/Model.iml b/.idea/Model.iml index b0f9c00d..4413bb06 100644 --- a/.idea/Model.iml +++ b/.idea/Model.iml @@ -7,7 +7,7 @@ - + diff --git a/.idea/misc.xml b/.idea/misc.xml index 1122b380..6f308057 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -3,7 +3,7 @@ - + diff --git a/etl/costs/app.py b/etl/costs/app.py index 4d53ce28..30eff735 100644 --- a/etl/costs/app.py +++ b/etl/costs/app.py @@ -75,6 +75,7 @@ def app(): ewi_costs = pd.read_excel(DATA_DIRECTORY, sheet_name="external_wall_insulation", header=0) lel_costs = pd.read_excel(DATA_DIRECTORY, sheet_name="low_energy_lighting", header=0) flat_roof_costs = pd.read_excel(DATA_DIRECTORY, sheet_name="flat_roof_insulation", header=0) + window_costs = pd.read_excel(DATA_DIRECTORY, sheet_name="window_glazing", header=0) # Form a single table to be uploaded costs = pd.concat( diff --git a/etl/epc_clean/epc_attributes/WindowAttributes.py b/etl/epc_clean/epc_attributes/WindowAttributes.py index e962cd31..cd767359 100644 --- a/etl/epc_clean/epc_attributes/WindowAttributes.py +++ b/etl/epc_clean/epc_attributes/WindowAttributes.py @@ -52,7 +52,7 @@ class WindowAttributes(Definitions): raise ValueError('Invalid description') def process(self) -> Dict[str, Union[str, bool]]: - result: Dict[str, Union[str, bool]] = { + result: Dict[str, Union[str, bool, None]] = { "has_glazing": False, "glazing_coverage": None, "glazing_type": None, @@ -83,4 +83,8 @@ class WindowAttributes(Definitions): if not result["glazing_coverage"]: result["glazing_coverage"] = "full" + # We reset some values if the glazing is single + if result["glazing_type"] == "single": + result["has_glazing"] = False + return result diff --git a/etl/epc_clean/tests/test_data/test_window_attributes_cases.py b/etl/epc_clean/tests/test_data/test_window_attributes_cases.py index 1eeeee21..f01ccba9 100644 --- a/etl/epc_clean/tests/test_data/test_window_attributes_cases.py +++ b/etl/epc_clean/tests/test_data/test_window_attributes_cases.py @@ -30,7 +30,8 @@ windows_cases = [ 'glazing_type': 'triple', 'no_data': False}, {'original_description': 'Gwydrau triphlyg rhannol', 'has_glazing': True, 'glazing_coverage': 'partial', 'glazing_type': 'triple', 'no_data': False}, - {'original_description': 'Single glazed', 'has_glazing': True, 'glazing_coverage': 'full', 'glazing_type': 'single', + {'original_description': 'Single glazed', 'has_glazing': False, 'glazing_coverage': None, + 'glazing_type': 'single', 'no_data': False}, {'original_description': 'Some double glazing', 'has_glazing': True, 'glazing_coverage': 'partial', 'glazing_type': 'double', 'no_data': False}, @@ -46,7 +47,8 @@ windows_cases = [ 'glazing_type': 'double', 'no_data': False}, {'original_description': 'Gwydrau dwbl gan mwyaf', 'has_glazing': True, 'glazing_coverage': 'most', 'glazing_type': 'double', 'no_data': False}, - {'original_description': 'Gwydrau sengl', 'has_glazing': True, 'glazing_coverage': 'full', 'glazing_type': 'single', + {'original_description': 'Gwydrau sengl', 'has_glazing': False, 'glazing_coverage': None, + 'glazing_type': 'single', 'no_data': False}, {'original_description': 'Ffenestri perfformiad uchel', 'has_glazing': True, 'glazing_coverage': 'full', 'glazing_type': 'high performance', 'no_data': False}, diff --git a/recommendations/Costs.py b/recommendations/Costs.py index 0d9031b2..84a7468c 100644 --- a/recommendations/Costs.py +++ b/recommendations/Costs.py @@ -64,6 +64,12 @@ class Costs: VAT_RATE = 0.2 PROFIT_MARGIN = 0.2 + # Based on this greenmatch article, on average, a Sash window is around 50% more expensive than a casement window. + # Therefore, for a conservative cost estimate, and allowance for a more premium window type, we inflate the material + # cost of the windows to allow for a sash window type + # https://www.greenmatch.co.uk/windows/double-glazing/cost + SASH_WINDOW_INFLATION_FACTOR = 1.5 + def __init__(self, property_instance): """ Initializes the Costs class with a property instance. @@ -719,3 +725,65 @@ class Costs: "labour_days": labour_days, "labour_cost": labour_costs } + + def window_glazing(self, number_of_windows, material): + """ + We characterise the jobs to be done for window glazing as the following: + 1) Initial Assessment and Measurements: Before removing the existing window, it's essential to assess the + condition of the window frame and opening. Precise measurements are taken to ensure the new double glazed + windows fit perfectly. + + 2) Remove the Existing Window: This involves carefully dismantling and removing the old single glazed window. It + requires skill to avoid damaging the surrounding wall and the window frame (if it's to be reused). + + 3) Dispose of the Existing Window: The old window, especially if it's a single glazed unit, needs to be + disposed of responsibly. Glass and other materials should be recycled where possible. + + 4) Surface Preparation: The window opening might need some preparation, especially if there's damage or if + adjustments are needed to accommodate the new window. This can include repairing or replacing parts of the + window frame, sealing gaps, and ensuring the opening is level and square. + + 5) Install the Window Frame (if new frames are used): In many cases, double glazed windows come with their + frames. These need to be installed securely into the window opening. This process involves aligning, leveling, + and fixing the frame in place. + + 6) Install the Window Sill: If a new window sill is required, it is installed at this stage. It needs to be + correctly aligned with the frame and securely attached. + + 7) Install the Double Glazed Glass Units: The glass units are carefully inserted into the frame. This step + requires precision to ensure a snug fit without causing stress on the glass, which could lead to cracking or + breaking. + + 8) Sealing and Weatherproofing: After the glass units are in place, it's crucial to seal around the frame and + between the glass and frame to ensure there are no drafts and that the installation is weather-tight. This + typically involves applying silicone sealant or other appropriate sealing materials. + + 9) Finishing Touches: This includes any cosmetic work, such as trimming, painting, or staining the frame and + sill to match the rest of the property. It might also involve cleaning up any mess created during the + installation. + + 10) Inspection and Testing: Finally, the new windows should be inspected to ensure they open, close, and lock + correctly. This is also a good time to check for any gaps or issues with the sealing. + + For this cost estimation process, we factor in initial assement into the preliminaries + + :param number_of_windows: + :return: + """ + + number_of_windows = 7 + windows_cost = 345 + + material_cost = windows_cost * number_of_windows * self.SASH_WINDOW_INFLATION_FACTOR + + subtotal = material_cost + + contingency_cost = subtotal * 0.2 + preliminaries_cost = subtotal * 0.2 + profit_cost = subtotal * 0.2 + + subtotal_before_vat = subtotal + contingency_cost + preliminaries_cost + profit_cost + + vat_cost = subtotal_before_vat * 0.2 + + total_cost = subtotal_before_vat + vat_cost diff --git a/recommendations/WindowsRecommendations.py b/recommendations/WindowsRecommendations.py index e5a11f8a..d3424d1b 100644 --- a/recommendations/WindowsRecommendations.py +++ b/recommendations/WindowsRecommendations.py @@ -9,7 +9,7 @@ class WindowsRecommendations: self.property = property_instance self.costs = Costs(self.property) - self.recommendations = [] + self.recommendation = [] self.glazing_materials = [ material for material in materials if material["type"] == "window_glazing" @@ -29,5 +29,28 @@ class WindowsRecommendations: :return: """ - if not self.property.number_of_windows: + number_of_windows = self.property.number_of_windows + + if not number_of_windows: raise ValueError("Number of windows not specified") + + if self.property.windows["has_glazing"] & self.property.windows["glazing_coverage"] == "full": + return + + # We then price the job based on the number of windows that there are + + cost_result = {} + + description = None + + self.recommendation = [ + { + "parts": [], + "type": "window_glazing", + "description": description, + "starting_u_value": None, + "new_u_value": None, + "sap_points": None, + **cost_result + } + ] diff --git a/recommendations/tests/test_window_recommendations.py b/recommendations/tests/test_window_recommendations.py new file mode 100644 index 00000000..da50d25c --- /dev/null +++ b/recommendations/tests/test_window_recommendations.py @@ -0,0 +1,30 @@ +from recommendations.WindowsRecommendations import WindowsRecommendations +from backend.Property import Property +from unittest.mock import Mock + + +class TestWindowRecommendations: + + def test_fully_single_glazed(self): + """ + For this property, we expect all windows to be single glazed and should recommend full double glazing + :return: + """ + + property_1 = Property( + id=1, + postcode='1', + address1='1', + epc_client=Mock(), + data={ + "county": "Wychavon" + } + ) + property_1.windows = { + 'original_description': 'Single glazed', 'has_glazing': False, 'glazing_coverage': 'full', + 'glazing_type': 'single', + 'no_data': False + } + property_1.number_of_windows = 5 + + recommender = WindowsRecommendations(property_instance=property_1, materials=[]) From a35c3faccac9739b3ce4810bcf5cfaaa2030b364 Mon Sep 17 00:00:00 2001 From: Michael Duong Date: Wed, 20 Dec 2023 14:46:12 +0000 Subject: [PATCH 078/526] add ignore step to data processor --- etl/epc/DataProcessor.py | 527 ++++++++++++++---------- etl/epc/Dataset.py | 192 ++++++++- etl/epc/Pipeline.py | 270 ++++++++++++ etl/epc/Record.py | 17 +- etl/epc/property_change_app.py | 108 ++--- recommendations/recommendation_utils.py | 3 +- 6 files changed, 813 insertions(+), 304 deletions(-) create mode 100644 etl/epc/Pipeline.py diff --git a/etl/epc/DataProcessor.py b/etl/epc/DataProcessor.py index 0f07cdfa..2c7f892b 100644 --- a/etl/epc/DataProcessor.py +++ b/etl/epc/DataProcessor.py @@ -28,7 +28,7 @@ from recommendations.rdsap_tables import FLOOR_LEVEL_MAP from typing import List # These lookups are used to clean the construction age band -bounds_map = { +construction_age_bounds_map = { "England and Wales: before 1900": {"l": 0, "u": 1899}, "England and Wales: 1930-1949": {"l": 1930, "u": 1949}, "England and Wales: 1900-1929": {"l": 1900, "u": 1929}, @@ -43,13 +43,13 @@ bounds_map = { "England and Wales: 2012 onwards": {"l": 2012, "u": 3000}, } -remap = { +construction_age_remap = { "England and Wales: 2007 onwards": "England and Wales: 2007-2011" } expanded_map = { i: [ - label for label, bounds in bounds_map.items() if (i <= bounds["u"]) and (i >= bounds['l']) + label for label, bounds in construction_age_bounds_map.items() if (i <= bounds["u"]) and (i >= bounds['l']) ][0] for i in range(0, 3001) } @@ -67,154 +67,182 @@ class EPCDataProcessor: Handle data loading and data preprocessing """ - training_pipeline = { - "confine_data": { - "function": "confine_data", - "args": [], - "kwargs": {}, - }, - "remap_columns": { - "function": "remap_columns", - "args": [], - "kwargs": {}, - }, - "standardise_construction_age_band": { - "function": "standardise_construction_age_band", - "args": [], - "kwargs": {}, - }, - "clean_missing_rooms": { - "function": "clean_missing_rooms", - "args": [], - "kwargs": {}, - }, - "recast_df_columns": { - "function": "recast_df_columns", - "args": [], - "kwargs": {"column_mappings": DATA_PROCESSOR_SETTINGS["column_mappings"]}, - }, - "clean_multi_glaze_proportion": { - "function": "clean_multi_glaze_proportion", - "args": [], - "kwargs": {}, - }, - "clean_photo_supply": { - "function": "clean_photo_supply", - "args": [], - "kwargs": {}, - }, - "retain_multiple_epc_properties": { - "function": "retain_multiple_epc_properties", - "args": [], - "kwargs": {"epc_minimum_count": DATA_PROCESSOR_SETTINGS["epc_minimum_count"]}, - }, - "fill_na_fields": { - "function": "fill_na_fields", - "args": [], - "kwargs": {"columns_to_fill": COLUMNS_TO_MERGE_ON}, - }, - "cleaning_averages": { - "function": "make_cleaning_averages", - "args": [], - "kwargs": {}, - }, - "apply_averages_cleaning": { - "function": "apply_averages_cleaning", - "args": [], - "kwargs": { - "data_to_clean": "data", - "cleaning_data": "cleaning_averages", - "cols_to_merge_on": COLUMNS_TO_MERGE_ON, - }, - }, - "na_remapping": { - "function": "na_remapping", - "args": [], - "kwargs": {}, - }, - } - - newdata_pipeline = { - "remap_columns": { - "function": "remap_columns", - "args": [], - "kwargs": {}, - }, - "recast_df_columns": { - "function": "recast_df_columns", - "args": [], - "kwargs": {"column_mappings": DATA_PROCESSOR_SETTINGS["column_mappings"]}, - }, - "clean_multi_glaze_proportion": { - "function": "clean_multi_glaze_proportion", - "args": [], - "kwargs": {}, - }, - "clean_photo_supply": { - "function": "clean_photo_supply", - "args": [], - "kwargs": {}, - }, - "na_remapping": { - "function": "na_remapping", - "args": [], - "kwargs": {}, - }, - } - - def __init__(self, filepath: Path | None, is_newdata: bool = False) -> None: + def __init__(self, data: pd.DataFrame | None = None, run_mode: str = "training", violation_mode: bool = False) -> None: """ :param filepath: If specified, is the physical location of the data :param is_newdata: Indicates if we are processing new, testing data. In this instance, there are some operations we do not want to perform, such as confine_data() """ - self.data : pd.DataFrame - self.cleaning_averages : pd.DataFrame + self.data : pd.DataFrame = data if data else pd.DataFrame() + self.cleaning_averages : pd.DataFrame = pd.DataFrame() - self.filepath = filepath - self.pipeline_steps = self.pipeline_factory("newdata" if is_newdata else "training") - self.is_newdata = is_newdata - - self.load_data(low_memory=DATA_PROCESSOR_SETTINGS["low_memory"]) - - def pipeline_factory(self, pipeline_type: str) -> dict: - """ - Determine which dataclient to use - """ - - pipelines = { - "training": self.training_pipeline, - "newdata": self.newdata_pipeline, - } - - if pipeline_type not in pipelines: - raise ValueError("Pipeline type specified is not in factory") - - return pipelines[pipeline_type] + # FOR NOW IF VIOLATION MODE IS ON, WE USE RUN MODE AS NEWDATA + self.violation_mode = violation_mode + if run_mode not in ["training", "newdata"]: + raise ValueError("Run mode must be either training or newdata") + self.run_mode = run_mode if not violation_mode else "newdata" - - def pre_process_pipeline(self) -> None: + def prepare_data(self, filepath: str) -> tuple[pd.DataFrame, pd.DataFrame]: """ - For the pipeline_steps, we apply each function in turn - This will alter self.data inplace + Given the run mode, we apply the relevant pipeline steps + Ignore step is used to highlight which steps are not needed in newdata """ - for step in self.pipeline_steps: - step_function = getattr(self, self.pipeline_steps[step]["function"]) - step_args = self.pipeline_steps[step]["args"] - step_kwargs = self.pipeline_steps[step]["kwargs"] + ignore_step = True if self.run_mode == "newdata" else False - if step_args: - step_function(*step_args, **step_kwargs) - else: - step_function(**step_kwargs) + if self.data is None: + self.load_data(filepath=filepath, low_memory=DATA_PROCESSOR_SETTINGS["low_memory"]) + + self.confine_data(ignore_step=ignore_step) + self.remap_anomalies() + self.remap_floor_level(ignore_step=ignore_step) + self.remap_build_form() + self.cast_data_column_values_to_lower() + self.standardise_construction_age_band(ignore_step=ignore_step) + self.clean_missing_rooms(ignore_step=ignore_step) + self.recast_df_columns( + column_mappings=DATA_PROCESSOR_SETTINGS["column_mappings"] + ) + self.clean_multi_glaze_proportion(ignore_step=ignore_step) + self.clean_photo_supply() + self.retain_multiple_epc_properties( + epc_minimum_count=DATA_PROCESSOR_SETTINGS["epc_minimum_count"], ignore_step=ignore_step + ) + + self.fill_na_fields() + + self.sort_data_by_uprn_lodgement_date(ignore_step=ignore_step) + + # Final re-casting after data transformed and prepared + self.recast_df_columns(column_mappings=COLUMNTYPES, auto_subset_columns=True) + self.na_remapping(auto_subset_columns=True) + + self.fill_invalid_constituency_fields(ignore_step=ignore_step) + + self.cleaning_averages = self.make_cleaning_averages(ignore_step=ignore_step) + cleaned_data = self.apply_averages_cleaning( + data_to_clean=self.data, + cleaning_data=self.cleaning_averages, + cols_to_merge_on=COLUMNS_TO_MERGE_ON, + ignore_step=ignore_step + ) + self.data = self.data if cleaned_data is None else cleaned_data + + self.add_local_authority_to_cleaning_average(ignore_step=ignore_step) + self.cast_cleaning_averages_columns_to_lower(ignore_step=ignore_step) + self.cast_data_columns_to_lower() + + return self.data, self.cleaning_averages + + def cast_data_columns_to_lower(self): + """ + Convert all columns names to lower + """ + self.data.columns = self.data.columns.str.lower() + + def cast_cleaning_averages_columns_to_lower(self, ignore_step: bool = False): + """ + Convert all column names to lower + No need in newdata mode + """ + + if ignore_step: + return + + self.cleaning_averages.columns = self.cleaning_averages.columns.str.lower() + + def add_local_authority_to_cleaning_average(self, ignore_step: bool = False): + """ + Add the Local authority column to the cleaning averages + No need in newdata mode + """ + + if ignore_step: + return + + self.cleaning_averages["LOCAL_AUTHORITY"] = self.data["LOCAL_AUTHORITY"].values[0] + + def fill_invalid_constituency_fields(self, ignore_step: bool = False): + """ + For some weird cases, where data has missing constituency, we add a dummy value + """ + if self.violation_mode: + # TODO: to fill in + return + + if ignore_step: + return + + self.data = self.data.fillna({"CONSTITUENCY": self.data["CONSTITUENCY"].mode().values[0]}) + + def sort_data_by_uprn_lodgement_date(self, ignore_step: bool = False): + """ + Order data by uprn and lodgement data + No Violation mode needed + """ + + if ignore_step: + return + + self.data = self.data.sort_values(["UPRN", "LODGEMENT_DATE"], ascending=True) + + def cast_data_column_values_to_lower(self): + """ + For given columns, cast values to lower + No Violation mode or newdata modes required + """ + convert_to_lower = ["TRANSACTION_TYPE"] + for col in convert_to_lower: + self.data[col] = self.data[col].str.lower() - def load_data(self, low_memory=False) -> None: - if not self.filepath: + def remap_build_form(self): + """ + Remap build form to standard values + No Violation mode or newdata modes required + """ + self.data["BUILT_FORM"] = self.data["BUILT_FORM"].replace(BUILT_FORM_REMAP) + + + def remap_anomalies(self): + """ + Remap anomalies to None + No Violation mode or newdata modes required + """ + + # Map all anomaly values to None + data_anomaly_map = dict( + zip( + Definitions.DATA_ANOMALY_MATCHES, + [None] * len(Definitions.DATA_ANOMALY_MATCHES), + ) + ) + + # Use replace function to map data (if exists in key), to corresponding value - i.e. Remove invalid values + data = self.data.replace(data_anomaly_map) + data = data.replace(np.NAN, None) + + self.data = data + + def remap_floor_level(self, ignore_step: bool = False): + """ + Remap floor level to standard values + """ + + if self.violation_mode: + # TODO: We need to handle this case + return + + if ignore_step: + return + + self.data["FLOOR_LEVEL"] = self.data["FLOOR_LEVEL"].replace(FLOOR_LEVEL_MAP) + + def load_data(self, filepath, low_memory=False) -> None: + if not filepath: raise ValueError("No filepath specified") - self.data = pd.read_csv(self.filepath, low_memory=low_memory) + self.data = pd.read_csv(filepath, low_memory=low_memory) def insert_data(self, data: pd.DataFrame) -> None: self.data = data @@ -226,11 +254,11 @@ class EPCDataProcessor: return x # Next, we check if it's a value in our map - if bounds_map.get(x): + if construction_age_bounds_map.get(x): return x # We check if it's a standard remap value - remap_value = remap.get(x, None) + remap_value = construction_age_remap.get(x, None) if remap_value: return remap_value @@ -241,12 +269,19 @@ class EPCDataProcessor: raise NotImplementedError("Not handled the case for value %s" % x) - def standardise_construction_age_band(self): + def standardise_construction_age_band(self, ignore_step: bool = False): """ This function will tidy up some of the non-standard values that are populated in the construction age band, which is useful for cleaning """ + if self.violation_mode: + # TODO: to fill in + return + + if ignore_step: + return + self.data["CONSTRUCTION_AGE_BAND"] = self.data["CONSTRUCTION_AGE_BAND"].apply( lambda x: self.clean_construction_age_band(x) ) @@ -255,7 +290,7 @@ class EPCDataProcessor: ~pd.isnull(self.data["CONSTRUCTION_AGE_BAND"]) ] - def clean_missing_rooms(self): + def clean_missing_rooms(self, ignore_step: bool = False): """ For the number of heated rooms and number of habitable rooms, we clean these values up front, based on property archetype and age @@ -263,6 +298,13 @@ class EPCDataProcessor: TODO: We could use a model based impution approach for possibly more accurate cleaning """ + if self.violation_mode: + # TODO: to fill in + return + + if ignore_step: + return + # TODO: DO we want to move this out of this function? (i.e. alter the data before we do any cleaning) self.data["POSTAL_AREA"] = self.data["POSTCODE"].apply(lambda x: x.split(" ")[0]) @@ -301,75 +343,78 @@ class EPCDataProcessor: break to_index -= 1 - def pre_process(self): - """ - Load data and begin initial cleaning - """ - if self.data is None: - self.load_data(low_memory=DATA_PROCESSOR_SETTINGS["low_memory"]) + # def pre_process(self, filepath: Path | None = None) -> tuple[pd.DataFrame, pd.DataFrame]: + # """ + # Load data and begin initial cleaning + # """ + # if self.data is None: + # self.load_data(filepath=filepath, low_memory=DATA_PROCESSOR_SETTINGS["low_memory"]) - if not self.is_newdata: - self.confine_data() + # if not self.is_newdata: + # self.confine_data() - self.remap_columns() + # self.remap_columns() - # We have some non-standard construction age bands which we'll clean for matching - if not self.is_newdata: - self.standardise_construction_age_band() - self.clean_missing_rooms() + # # We have some non-standard construction age bands which we'll clean for matching + # if not self.is_newdata: + # self.standardise_construction_age_band() + # self.clean_missing_rooms() - self.recast_df_columns( - column_mappings=DATA_PROCESSOR_SETTINGS["column_mappings"] - ) + # self.recast_df_columns( + # column_mappings=DATA_PROCESSOR_SETTINGS["column_mappings"] + # ) - if not self.is_newdata: - self.clean_multi_glaze_proportion() + # if not self.is_newdata: + # self.clean_multi_glaze_proportion() - self.clean_photo_supply() + # self.clean_photo_supply() - if not self.is_newdata: - self.retain_multiple_epc_properties( - epc_minimum_count=DATA_PROCESSOR_SETTINGS["epc_minimum_count"] - ) + # if not self.is_newdata: + # self.retain_multiple_epc_properties( + # epc_minimum_count=DATA_PROCESSOR_SETTINGS["epc_minimum_count"] + # ) - if DATA_PROCESSOR_SETTINGS["epc_minimum_count"] >= 1: - # If we have multiple EPC records, we can try and do filling - self.fill_na_fields() + # if DATA_PROCESSOR_SETTINGS["epc_minimum_count"] >= 1: + # # If we have multiple EPC records, we can try and do filling + # self.fill_na_fields() - if not self.is_newdata: - self.data = self.data.sort_values(["UPRN", "LODGEMENT_DATE"], ascending=True) + # if not self.is_newdata: + # self.data = self.data.sort_values(["UPRN", "LODGEMENT_DATE"], ascending=True) - # Final re-casting after data transformed and prepared - coltypes = {k: v for k, v in COLUMNTYPES.items() if k in self.data.columns} if self.is_newdata else COLUMNTYPES - for k, v in coltypes.items(): - self.data[k] = self.data[k].astype(v) - self.data = self.data.astype(coltypes) + # # Final re-casting after data transformed and prepared + # coltypes = {k: v for k, v in COLUMNTYPES.items() if k in self.data.columns} if self.is_newdata else COLUMNTYPES + # for k, v in coltypes.items(): + # self.data[k] = self.data[k].astype(v) + # self.data = self.data.astype(coltypes) - self.na_remapping() + # self.na_remapping() - if not self.is_newdata: - # We have some odd cases with missing constituency so we fill - self.data = self.data.fillna({"CONSTITUENCY": self.data["CONSTITUENCY"].mode().values[0]}) + # self.cleaning_averages = None + # if not self.is_newdata: + # # We have some odd cases with missing constituency so we fill + # self.data = self.data.fillna({"CONSTITUENCY": self.data["CONSTITUENCY"].mode().values[0]}) - self.cleaning_averages = self.make_cleaning_averages() - # We apply averages cleaning to the data - self.data = self.apply_averages_cleaning( - data_to_clean=self.data, - cleaning_data=self.cleaning_averages, - cols_to_merge_on=COLUMNS_TO_MERGE_ON - ) + # self.cleaning_averages = self.make_cleaning_averages() + # # We apply averages cleaning to the data + # self.data = self.apply_averages_cleaning( + # data_to_clean=self.data, + # cleaning_data=self.cleaning_averages, + # cols_to_merge_on=COLUMNS_TO_MERGE_ON + # ) - self.cleaning_averages["LOCAL_AUTHORITY"] = self.data["LOCAL_AUTHORITY"].values[0] - self.cleaning_averages.columns = self.cleaning_averages.columns.str.lower() + # self.cleaning_averages["LOCAL_AUTHORITY"] = self.data["LOCAL_AUTHORITY"].values[0] + # self.cleaning_averages.columns = self.cleaning_averages.columns.str.lower() - self.data.columns = self.data.columns.str.lower() + # self.data.columns = self.data.columns.str.lower() + + # return self.data, self.cleaning_averages - def na_remapping(self): + def na_remapping(self, auto_subset_columns: bool = False): fill_na_map_apply = { k: v for k, v in fill_na_map.items() if k in self.data.columns - } if self.is_newdata else fill_na_map + } if auto_subset_columns else fill_na_map for column, fill_value in fill_na_map_apply.items(): self.data[column] = self.data[column].fillna(fill_value) @@ -396,35 +441,15 @@ class EPCDataProcessor: ["FLOOR_HEIGHT", "TOTAL_FLOOR_AREA"] ].replace("", None) - def remap_columns(self): + def make_cleaning_averages(self, ignore_step: bool = False) -> pd.DataFrame: """ - Remap all columns, for any non values + Create a dataset to hold averages based on property type, built form, construction age, and rooms. + Not require in newdata mode """ - # Map all anomaly values to None - data_anomaly_map = dict( - zip( - Definitions.DATA_ANOMALY_MATCHES, - [None] * len(Definitions.DATA_ANOMALY_MATCHES), - ) - ) + if ignore_step: + return pd.DataFrame() - # Use replace function to map data (if exists in key), to corresponding value - i.e. Remove invalid values - data = self.data.replace(data_anomaly_map) - data = data.replace(np.NAN, None) - - # Remap certain columns - if not self.is_newdata: - data["FLOOR_LEVEL"] = data["FLOOR_LEVEL"].replace(FLOOR_LEVEL_MAP) - data["BUILT_FORM"] = data["BUILT_FORM"].replace(BUILT_FORM_REMAP) - - convert_to_lower = ["TRANSACTION_TYPE"] - for col in convert_to_lower: - data[col] = data[col].str.lower() - - self.data = data - - def make_cleaning_averages(self) -> pd.DataFrame: # Define a custom function to calculate the median, excluding missing values def median_without_missing(group): return group[AVERAGE_FIXED_FEATURES].median(skipna=True) @@ -523,11 +548,18 @@ class EPCDataProcessor: return cleaning_averages_filled - def retain_multiple_epc_properties(self, epc_minimum_count: int = 1) -> None: + def retain_multiple_epc_properties(self, epc_minimum_count: int = 1, ignore_step: bool = False) -> None: """ Reduce the data futher by keeping only datasets with multiple epcs """ + if self.violation_mode: + # TODO: to fill in + return + + if ignore_step: + return + counts = self.data.groupby("UPRN").size().reset_index() counts.columns = ["UPRN", "count"] @@ -535,22 +567,67 @@ class EPCDataProcessor: counts = counts[counts["count"] > epc_minimum_count] self.data = pd.merge(self.data, counts, on="UPRN") - def recast_df_columns(self, column_mappings: dict) -> None: + def recast_df_columns(self, column_mappings: dict, auto_subset_columns: bool = False) -> None: """ Recast columns from the dataframe to ensure the behaviour we want """ + if auto_subset_columns: + column_mappings = {k: v for k, v in column_mappings.items() if k in self.data.columns} for key, values in column_mappings.items(): if key not in self.data.columns: raise ValueError("Column mapping incorrectly specified") for value in values: self.data[key] = self.data[key].astype(value) + + self.data = self.data.astype(column_mappings) - def confine_data(self) -> None: + def confine_data(self, ignore_step: bool = False): """ Include all step to reduce down the data based on assumptions """ + if self.violation_mode: + violation_uprn_missing = pd.isnull(self.data["UPRN"]) + violation_old_lodgment_date = self.data["LODGEMENT_DATE"] < EARLIEST_EPC_DATE + violation_invalid_transaction_type = self.data["TRANSACTION_TYPE"] == IGNORED_TRANSACTION_TYPES + violation_ignored_floor_level = self.data["FLOOR_LEVEL"].isin(IGNORED_FLOOR_LEVELS) + violation_rdsap_score_above_max = self.data[RDSAP_RESPONSE] > MAX_SAP_SCORE + violation_missing_windows_description = pd.isnull(self.data["WINDOWS_DESCRIPTION"]) + violation_missing_hotwater_description = pd.isnull(self.data["HOTWATER_DESCRIPTION"]) + violation_missing_roof_description = pd.isnull(self.data["ROOF_DESCRIPTION"]) + violation_invalid_property_type = self.data["PROPERTY_TYPE"] == IGNORED_PROPERTY_TYPES + + violation_df = pd.concat( + [ + violation_uprn_missing, + violation_old_lodgment_date, + violation_invalid_transaction_type, + violation_ignored_floor_level, + violation_rdsap_score_above_max, + violation_missing_windows_description, + violation_missing_hotwater_description, + violation_missing_roof_description, + violation_invalid_property_type, + ], axis=1, + keys=[ + "violation_uprn_missing", + "violation_old_lodgment_date", + "violation_invalid_transaction_type", + "violation_ignored_floor_level", + "violation_rdsap_score_above_max", + "violation_missing_windows_description", + "violation_missing_hotwater_description", + "violation_missing_roof_description", + "violation_invalid_property_type", + ] + ) + + self.data = pd.concat([self.data, violation_df], axis=1) + + if ignore_step: + return + # Filter 1: UPRN is a unique identifier for a property, so we remove any EPCs that don't have one # Filter 2: Lodgement date is the date the EPC was lodged, so we remove any EPCs that were lodged @@ -585,14 +662,22 @@ class EPCDataProcessor: # EPCs) we'll ignore them from the model self.data = self.data[self.data["PROPERTY_TYPE"] != IGNORED_PROPERTY_TYPES] - def clean_multi_glaze_proportion(self) -> None: + def clean_multi_glaze_proportion(self, ignore_step: bool = False) -> None: """ If there is no multi-glaze proportion but the windows are fully glazed, then we should assume a score of 100 """ + if self.violation_mode: + # TODO: + return + + if ignore_step: + return + no_multi_glaze_proportion_index = pd.isnull( self.data["MULTI_GLAZE_PROPORTION"] ) & (self.data["WINDOWS_DESCRIPTION"].isin(FULLY_GLAZED_DESCRIPTIONS)) + self.data.loc[no_multi_glaze_proportion_index, "MULTI_GLAZE_PROPORTION"] = 100 def clean_photo_supply(self) -> None: @@ -603,7 +688,7 @@ class EPCDataProcessor: self.data["PHOTO_SUPPLY"] = self.data["PHOTO_SUPPLY"].fillna(0) @staticmethod - def apply_averages_cleaning(data_to_clean, cleaning_data, cols_to_merge_on, colnames=None): + def apply_averages_cleaning(data_to_clean, cleaning_data, cols_to_merge_on, colnames=None, ignore_step: bool = False): """ Clean the input DataFrame using averages from a cleaning DataFrame. @@ -615,6 +700,9 @@ class EPCDataProcessor: :return: Cleaned DataFrame. """ + if ignore_step: + return None + # The desired colnames to clean - which may not be present if colnames is None: colnames = ["TOTAL_FLOOR_AREA", "FLOOR_HEIGHT", "FIXED_LIGHTING_OUTLETS_COUNT"] @@ -726,6 +814,7 @@ class EPCDataProcessor: for col in missings.index: unique_values = df[col].unique() + # TODO: confirm this behaviour if True in unique_values or False in unique_values: df[col] = df[col].fillna(False) if "none" in unique_values: diff --git a/etl/epc/Dataset.py b/etl/epc/Dataset.py index 68823f27..26073211 100644 --- a/etl/epc/Dataset.py +++ b/etl/epc/Dataset.py @@ -1,9 +1,16 @@ +import numpy as np import pandas as pd from typing import List from etl.epc.Record import EPCDifferenceRecord from ValidationConfiguration import DatasetValidationConfiguration from etl.epc.settings import EARLIEST_EPC_DATE +from recommendations.rdsap_tables import england_wales_age_band_lookup +from recommendations.recommendation_utils import ( + get_wall_u_value, get_roof_u_value, get_floor_u_value, estimate_perimeter, + get_wall_type +) + class BaseDataset: """ @@ -39,20 +46,199 @@ class TrainingDataset(BaseDataset): self.datasets = datasets self.df = pd.DataFrame([dataset.difference_record for dataset in datasets]) - # TODO: replace these with the pipeline steps self._feature_generation() self._drop_features() - # self._clean_dataframe() self._clean_efficiency_variables() self._null_validation(information="Clean Efficiency Variables") self._expand_description_to_features(cleaned_lookup) self._adjust_assumed_values_in_wall_descriptions() - + self._generate_u_values_from_features() # TODO: For some of the features that we clean, we have either a true, false or possibly null value # Those nulls should be False. clean_missings_after_description_process handles this but shouldn't # need to self._clean_missing_values() self._null_validation(information="Clean Missing Values") + self._remove_abnormal_change_in_floor_area() + self._ensure_numeric() + + def _remove_abnormal_change_in_floor_area(self): + """ + Remove properties where the change in floor area is greater than 100% + """ + + self.df["tfa_diff_abs"] = abs(self.df["total_floor_area_ending"] - self.df["total_floor_area_starting"]) + self.df["tfa_diff_prop"] = self.df["tfa_diff_abs"] / self.df["total_floor_area_starting"] + self.df = self.df[self.df["tfa_diff_prop"] < 0.5] + self.df = self.df.drop(columns=["tfa_diff_abs", "tfa_diff_prop"]) + + def _ensure_numeric(self): + """ + Ensure that all columns are numeric + """ + # TODO: move into EPCRecord record + uvalue_columns = [col for col in self.df.columns if "thermal_transmittance" in col] + for uvalue_col in uvalue_columns: + self.df[uvalue_col] = pd.to_numeric(self.df[uvalue_col]) + + @staticmethod + def _lambda_function_to_generate_roof_uvalue(row, is_end=False): + """ + Using the apply method, use the get_roof_u_value method to generate the u-value + """ + + col_name = "roof_insulation_thickness" if not is_end else "roof_insulation_thickness_ending" + + if row["has_dwelling_above"]: + if row["roof_thermal_transmittance"] != 0: + raise ValueError("Should have 0 u-value for roof") + + if row["roof_thermal_transmittance_ending"] != 0: + raise ValueError("Should have 0 u-value for roof") + + return get_roof_u_value( + insulation_thickness=row[col_name], + has_dwelling_above=row["has_dwelling_above"], + is_loft=row["is_loft"], + is_roof_room=row["is_roof_room"], + is_thatched=row["is_thatched"], + is_flat=row["is_flat"], + is_pitched=row["is_pitched"], + is_at_rafters=row["is_at_rafters"], + age_band=england_wales_age_band_lookup[row["construction_age_band"]] + ) + + @staticmethod + def _lambda_function_to_generate_wall_uvalue(row, is_end=False): + """ + Using the apply method, use the get_wall_u_value method to generate the u-value + """ + col_name = "walls_clean_description" if not is_end else "walls_clean_description_ending" + + return get_wall_u_value( + clean_description=row[col_name], + age_band=england_wales_age_band_lookup[row["construction_age_band"]], + is_granite_or_whinstone=row["is_granite_or_whinstone"], + is_sandstone_or_limestone=row["is_sandstone_or_limestone"], + ) + + @staticmethod + def _lambda_function_to_generate_floor_uvalue(row, is_end=False): + """ + Using the apply method, use the get_floor_u_value method to generate the u-value + """ + + floor_thermal_col_name = "floor_thermal_transmittance" if not is_end else "floor_thermal_transmittance_ending" + + if row["another_property_below"]: + if row["floor_thermal_transmittance"] != 0: + raise ValueError("Should have 0 u-value for floor") + + if row["floor_thermal_transmittance_ending"] != 0: + raise ValueError("Should have 0 u-value for floor") + return 0 + else: + uvalue = row[floor_thermal_col_name] + + if pd.isnull(uvalue): + + insulation_col_name = "floor_insulation_thickness" if not is_end else "floor_insulation_thickness_ending" + floor_area_col_name = "estimated_perimeter_starting" if not is_end else "estimated_perimeter_ending" + perimeter_col_name = "total_floor_area_starting" if not is_end else "total_floor_area_ending" + + uvalue = get_floor_u_value( + floor_type=row["floor_type"], + perimeter=row[floor_area_col_name], + area=row[perimeter_col_name], + insulation_thickness=row[insulation_col_name], + wall_type=row["wall_type"], + age_band=england_wales_age_band_lookup[row["construction_age_band"]] + ) + + return uvalue + + def _generate_u_values_from_features(self): + """ + Generate u-values from the features + """ + + # ~~~~~~~~~~~~~~~~~~ + # Walls + # ~~~~~~~~~~~~~~~~~~ + + walls_starting_uvalue = self.df.apply( + lambda row: self._lambda_function_to_generate_wall_uvalue(row), + axis=1 + ) + walls_ending_uvalue = self.df.apply( + lambda row: self._lambda_function_to_generate_wall_uvalue(row, is_end=True), + axis=1 + ) + + walls_starting_uvalue = self.df['walls_thermal_transmittance'].fillna(walls_starting_uvalue) + walls_starting_equals_ending_flag = self.df['walls_clean_description'] == self.df["walls_clean_description_ending"] + walls_ending_uvalue[walls_starting_equals_ending_flag] = walls_starting_uvalue[walls_starting_equals_ending_flag] + + # ~~~~~~~~~~~~~~~~~~ + # Roof + # ~~~~~~~~~~~~~~~~~~ + + roof_starting_uvalue = self.df.apply( + lambda row: self._lambda_function_to_generate_roof_uvalue(row), + axis=1 + ) + roof_ending_uvalue = self.df.apply( + lambda row: self._lambda_function_to_generate_roof_uvalue(row, is_end=True), + axis=1 + ) + + roof_starting_uvalue = self.df['roof_thermal_transmittance'].fillna(roof_starting_uvalue) + roof_ending_uvalue = self.df['roof_thermal_transmittance_ending'].fillna(roof_ending_uvalue) + + + # ~~~~~~~~~~~~~~~~~~ + # Floor + # ~~~~~~~~~~~~~~~~~~ + + self.df['estimated_perimeter_starting'] = self.df.apply( + lambda row: estimate_perimeter(row["total_floor_area_starting"], row["number_habitable_rooms"]), + axis=1 + ) + self.df['estimated_perimeter_ending'] = self.df.apply( + lambda row: estimate_perimeter(row["total_floor_area_ending"], row["number_habitable_rooms"]), + axis=1 + ) + self.df["floor_type"] = self.df["is_suspended"].replace({True: "suspended", False: "solid"}) + self.df["wall_type"] = self.df.apply( + lambda row: get_wall_type( + is_cavity_wall=row["is_cavity_wall"], + is_solid_brick=row["is_solid_brick"], + is_timber_frame=row["is_timber_frame"], + is_granite_or_whinstone=row["is_granite_or_whinstone"], + is_cob=row["is_cob"], + is_sandstone_or_limestone=row["is_sandstone_or_limestone"], + is_system_built=row["is_system_built"], + is_park_home=row["is_park_home"] + ), + axis=1 + ) + + floor_starting_uvalue = self.df.apply( + lambda row: self._lambda_function_to_generate_floor_uvalue(row), + axis=1 + ) + floor_ending_uvalue = self.df.apply( + lambda row: self._lambda_function_to_generate_floor_uvalue(row, is_end=True), + axis=1 + ) + + floor_starting_uvalue = self.df['floor_thermal_transmittance'].fillna(floor_starting_uvalue) + floor_ending_uvalue = self.df['floor_thermal_transmittance_ending'].fillna(floor_ending_uvalue) + + for component in ["walls", "roof", "floor"]: + self.df[f"{component}_thermal_transmittance"] = self.df[f"{component}_thermal_transmittance"].fillna(f"{component}_starting_uvalue") + self.df[f"{component}_thermal_transmittance_ending"] = self.df[f"{component}_thermal_transmittance_ending"].fillna(f"{component}_ending_uvalue") + + self.df = self.df.drop(columns=["floor_type", "wall_type", "walls_clean_description", "walls_clean_description_ending"]) def _adjust_assumed_values_in_wall_descriptions(self): diff --git a/etl/epc/Pipeline.py b/etl/epc/Pipeline.py new file mode 100644 index 00000000..07f54096 --- /dev/null +++ b/etl/epc/Pipeline.py @@ -0,0 +1,270 @@ +import msgpack +import pandas as pd + +from typing import List +from pathlib import Path + +from etl.epc.DataProcessor import EPCDataProcessor +from etl.epc.Record import EPCRecord, EPCDifferenceRecord +from etl.epc.Dataset import TrainingDataset +from utils.s3 import save_dataframe_to_s3_parquet, read_from_s3 +from etl.epc.settings import ( + MANDATORY_FIXED_FEATURES, + LATEST_FIELD, + COMPONENT_FEATURES, + RDSAP_RESPONSE, + HEAT_DEMAND_RESPONSE, + CARBON_RESPONSE, + CORE_COMPONENT_FEATURES, + EFFICIENCY_FEATURES, + POTENTIAL_COLUMNS, +) + +# TODO: change in setting file +MANDATORY_FIXED_FEATURES = [x.lower() for x in MANDATORY_FIXED_FEATURES] +LATEST_FIELD = [x.lower() for x in LATEST_FIELD] +COMPONENT_FEATURES = [x.lower() for x in COMPONENT_FEATURES] +RDSAP_RESPONSE = RDSAP_RESPONSE.lower() +HEAT_DEMAND_RESPONSE = HEAT_DEMAND_RESPONSE.lower() +CARBON_RESPONSE = CARBON_RESPONSE.lower() +CORE_COMPONENT_FEATURES = [x.lower() for x in CORE_COMPONENT_FEATURES] +EFFICIENCY_FEATURES = [x.lower() for x in EFFICIENCY_FEATURES] +POTENTIAL_COLUMNS = [x.lower() for x in POTENTIAL_COLUMNS] +VARIABLE_DATA_FEATURES = COMPONENT_FEATURES + EFFICIENCY_FEATURES + POTENTIAL_COLUMNS + [ + "lodgement_date", RDSAP_RESPONSE, HEAT_DEMAND_RESPONSE, CARBON_RESPONSE +] + +def get_cleaned_description_mapping(): + """ + This function will retrieve the cleaned dataset from s3 which has the cleaned + descriptions for the epc dataset + + This data is stored in MessagePack format and therefore needs to be decoded + :return: + """ + + cleaned = read_from_s3( + s3_file_name="cleaned_epc_data/cleaned.bson", + bucket_name="retrofit-data-dev" + ) + + cleaned = msgpack.unpackb(cleaned, raw=False) + + return cleaned + + + +class EPCPipeline: + """ + This class will take a list of directories and process them to create a dataset: + - Load the data + - Pre-process the data + - Create a dataset + - Clean the dataset + - Store the dataset + """ + + def __init__( + self, + directories: List[Path], + epc_data_processor: EPCDataProcessor, + run_mode="training", + epc_local_file="certificates.csv", + epc_bucket_name="retrofit-data-dev", + epc_cleaning_dataset_key="sap_change_model/cleaning_dataset.parquet", + epc_all_equal_rows_key="sap_change_model/all_equal_rows.parquet", + epc_compiled_dataset_key="sap_change_model/dataset.parquet" + ): + """ + :param directories: List of directories to process + :param epc_data_processor: EPCDataProcessor object + :param run_mode: Either training or newdata + :param epc_local_file: Local file name of the EPC data + :param epc_bucket_name: S3 bucket name + :param epc_cleaning_dataset_key: S3 key for the cleaning dataset + :param epc_all_equal_rows_key: S3 key for the all equal rows dataset + :param epc_compiled_dataset_key: S3 key for the compiled dataset + """ + self.compiled_dataset: pd.DataFrame = pd.DataFrame() + self.compiled_all_equal_rows: list = [] + self.compiled_cleaning_averages: list = [] + + self.directories = directories + self.epc_data_processor = epc_data_processor + self.run_mode = run_mode + self.epc_local_file = epc_local_file + self.epc_bucket_name = epc_bucket_name + self.epc_cleaning_dataset_key = epc_cleaning_dataset_key + self.epc_all_equal_rows_key = epc_all_equal_rows_key + self.epc_compiled_dataset_key = epc_compiled_dataset_key + + def run(self): + """ + Entrypoint to run the pipeline + """ + for directory in self.directories: + self.process_directory(directory) + + save_dataframe_to_s3_parquet( + df=self.compiled_dataset, + bucket_name=self.epc_bucket_name, + file_key=self.epc_compiled_dataset_key, + ) + + save_dataframe_to_s3_parquet( + df=pd.concat(self.compiled_all_equal_rows), + bucket_name=self.epc_bucket_name, + file_key=self.epc_all_equal_rows_key, + ) + + save_dataframe_to_s3_parquet( + df=pd.concat(self.compiled_cleaning_averages), + bucket_name=self.epc_bucket_name, + file_key=self.epc_cleaning_dataset_key, + ) + + def process_directory(self, directory: Path): + """ + Process a single directory + :param directory: + :return: + """ + filepath = directory / self.epc_local_file + + self.epc_data_processor.pre_process(filepath=filepath) + + constituency_data = self.epc_data_processor.data + self.compiled_cleaning_averages.append(self.epc_data_processor.cleaning_averages) + + constituency_difference_records = [] + for uprn, property_data in constituency_data.groupby("uprn", observed=True): + difference_records = self.process_uprn(uprn=str(uprn), property_data=property_data, directory=directory) + if difference_records is not None: + constituency_difference_records.extend(difference_records) + + constituency_dataset = TrainingDataset(datasets=constituency_difference_records, cleaned_lookup=get_cleaned_description_mapping()) + + self.compiled_dataset = pd.concat([self.compiled_dataset, constituency_dataset.df]) + + def process_uprn(self, uprn: str, property_data: pd.DataFrame, directory: Path): + """ + Process a single UPRN, which may have multiple different EPCs + :param uprn: UPRN + :param property_data: pd.DataFrame, Data for a single UPRN + :param directory: Path, Directory of the UPRN + :return: + """ + # If a property has changed building type, we can ignore the epc rating i.e. this should be 1 unique row + if any(property_data[MANDATORY_FIXED_FEATURES].nunique() > 1) or ( + pd.isnull(property_data[MANDATORY_FIXED_FEATURES]).sum().sum() > 0 + ): + return None + + # Fixed features - these are property attributes that shouldn't change over time + # Take the latest row for both the LATEST_FEILDS and MANDATORY FIELDS and combine all fields together + fixed_data = property_data[MANDATORY_FIXED_FEATURES + LATEST_FIELD].iloc[-1].to_dict() + + # We include the lodgement date here as we probably need to factor time into the + # model, since EPC standards and rigour have changed over time + variable_data = property_data[VARIABLE_DATA_FEATURES] + + uprn = str(uprn) + epc_records = [EPCRecord(uprn, **x) for x in variable_data.to_dict(orient='records')] + + # TODO: We want to be able to provide value for the u values in the main pipeline so this will need to be part of the EPCRecord + + # We can use multiple types of comparison datasets - i.e. Compare consecutive records, or compare all permutations of records + property_difference_records = self._generate_property_difference_records(epc_records, uprn, directory, fixed_data) + + return property_difference_records + + def _generate_property_difference_records(self, epc_records: List[EPCRecord], uprn: str, directory: Path, fixed_data: dict): + """ + We can use multiple types of comparison datasets, for example: + - First vs second + - Second vs third + - First vs third + :param epc_records: + :return: + """ + + property_difference_records: list = [] + + property_difference_records = self._compare_consecutive_epcs(epc_records, uprn, directory, fixed_data, property_difference_records) + + # property_difference_records = self._compare_all_permutation_epcs(epc_records, uprn, directory, fixed_data, property_difference_records) + + return property_difference_records + + + def _compare_all_permutation_epcs(self, epc_records: List[EPCRecord], uprn: str, directory: Path, fixed_data: dict, property_difference_records: list): + """ + Compare all permutations of EPCs for a given UPRN + :param epc_records: + :return: + """ + + for idx in range(0, len(epc_records) - 1): + for idx2 in range(idx + 1, len(epc_records)): + earliest_record: EPCRecord = epc_records[idx] + latest_record: EPCRecord = epc_records[idx2] + + # Auto sort the records so that the record with highest RDSAP score is always record1 + difference_record: EPCDifferenceRecord = latest_record - earliest_record + + # TODO: Pull out RDSAP_CHANGE to a variable + if difference_record.get("rdsap_change") == 0: + continue + + all_equal = difference_record.compare_fields_in_records( + fields=[x.lower() for x in CORE_COMPONENT_FEATURES] + ) + + if all_equal: + # Keep track of this for the moment so we can analyse + self.compiled_all_equal_rows.append({"uprn": uprn, "directory_name": directory.name}) + continue + + difference_record.append_fixed_data(fixed_data) + + property_difference_records.append(difference_record) + + return property_difference_records + + + def _compare_consecutive_epcs(self, epc_records: List[EPCRecord], uprn: str, directory: Path, fixed_data: dict, property_difference_records: list): + """ + Compare consecutive EPCs for a given UPRN + :param epc_records: + :return: + """ + + for idx in range(0, len(epc_records) - 1): + + if idx >= len(epc_records) - 1: + break + + earliest_record: EPCRecord = epc_records[idx] + latest_record: EPCRecord = epc_records[idx + 1] + + # Auto sort the records so that the record with highest RDSAP score is always record1 + difference_record: EPCDifferenceRecord = latest_record - earliest_record + + # TODO: Pull out RDSAP_CHANGE to a variable + if difference_record.get("rdsap_change") == 0: + continue + + all_equal = difference_record.compare_fields_in_records( + fields=[x.lower() for x in CORE_COMPONENT_FEATURES] + ) + + if all_equal: + # Keep track of this for the moment so we can analyse + self.compiled_all_equal_rows.append({"uprn": uprn, "directory_name": directory.name}) + continue + + difference_record.append_fixed_data(fixed_data) + + property_difference_records.append(difference_record) + + return property_difference_records diff --git a/etl/epc/Record.py b/etl/epc/Record.py index 4e799d66..f8c72969 100644 --- a/etl/epc/Record.py +++ b/etl/epc/Record.py @@ -68,15 +68,12 @@ class EPCRecord: energy_consumption_current : int co2_emissions_current : float - # TODO: lower case and underscore - walls = None - floor = None - roof = None - u_values_walls = None u_values_roof = None u_values_floor = None + run_mode: str = "training" + def __post_init__(self): # We can have validation and cleaning steps for each of the fields # self.WALLS_DESCRIPTION = 'check' @@ -85,13 +82,20 @@ class EPCRecord: # self._field_validation() self._clean_records() - self._expand_description_to_uvalues() + if self.run_mode == "newdata": + self._expand_description_to_features() + self._expand_description_to_uvalues() + + # self._generate_uvalues() # self._validate_expanded_description() # self._validate_u_values() # etc pass + def _expand_description_to_features(self): + pass + def _expand_description_to_uvalues(self): # TODO: can be loop over all the descriptions, or done in one pass @@ -270,7 +274,6 @@ class EPCDifferenceRecord: self.flag_fabric_consistency = False self.difference_record = {} - self.difference_validation_configuration = EPCDifferenceRecordValidationConfiguration self.fixed_data_validation_configuration = EPCDifferenceRecordFixedDataValidationConfiguration diff --git a/etl/epc/property_change_app.py b/etl/epc/property_change_app.py index 9cb2911e..fb9486e8 100644 --- a/etl/epc/property_change_app.py +++ b/etl/epc/property_change_app.py @@ -240,10 +240,10 @@ def make_uvalues(df): uvalues = [] # TODO: iterrows is the slowest way to do this, we should use a vectorised approach or itertuples for index_no, x in df.iterrows(): - - uprn = x["UPRN"] + + uprn = x["uprn"] row_index = x["row_index"] - age_band = england_wales_age_band_lookup[x["CONSTRUCTION_AGE_BAND"]] + age_band = england_wales_age_band_lookup[x["construction_age_band"]] # ~~~~~~~~~~~~~~~~~~ # Walls @@ -258,11 +258,11 @@ def make_uvalues(df): is_sandstone_or_limestone=x["is_sandstone_or_limestone"], ) - ending_wall_uvalue = x["walls_thermal_transmittance_ENDING"] + ending_wall_uvalue = x["walls_thermal_transmittance_ending"] if pd.isnull(ending_wall_uvalue): - if x["walls_clean_description"] != x["walls_clean_description_ENDING"]: + if x["walls_clean_description"] != x["walls_clean_description_ending"]: ending_wall_uvalue = get_wall_u_value( - clean_description=x["walls_clean_description_ENDING"], + clean_description=x["walls_clean_description_ending"], age_band=age_band, is_granite_or_whinstone=x["is_granite_or_whinstone"], is_sandstone_or_limestone=x["is_sandstone_or_limestone"], @@ -413,58 +413,6 @@ def make_uvalues(df): # if all_equal: # return True -class EPCPipeline: - """ - This class will take a list of directories and process them to create a dataset: - - Load the data - - Pre-process the data - - Create a dataset - - Clean the dataset - - Store the dataset - """ - - def __init__(self, directories: List[Path]): - self.directories = directories - self.dataset = [] - self.cleaning_dataset = [] - self.all_equal_rows = [] - - def load_data(self): - """ - Load the data from the directories - :return: - """ - for directory in self.directories: - filepath = directory / "certificates.csv" - - data_processor = DataProcessor(filepath=filepath) - - data_processor.pre_process() - - self.dataset.append(data_processor.data) - - def create_dataset(self): - """ - Create a dataset from the data - :return: - """ - pass - - def clean_dataset(self): - """ - Clean the dataset - :return: - """ - pass - - def store_dataset(self): - """ - Store the dataset - :return: - """ - pass - - def generate_property_difference_records(epc_records: List[EPCRecord], uprn: str, directory: Path, fixed_data: dict, all_equal_rows: list): """ We can use multiple types of comparison datasets, for example: @@ -604,7 +552,9 @@ def app(): variable_data = property_data[VARIABLE_DATA_FEATURES] uprn = str(uprn) - epc_records = [EPCRecord(uprn, **x) for x in variable_data.to_dict(orient='records')] + epc_records = [EPCRecord(uprn, **x, run_mode="training") for x in variable_data.to_dict(orient='records')] + + # TODO: We want to be able to provide value for the u values in the main pipeline so this will need to be part of the EPCRecord # We can use multiple types of comparison datasets - i.e. Compare consecutive records, or compare all permutations of records property_difference_records, all_equal_rows = generate_property_difference_records(epc_records, uprn, directory, fixed_data, all_equal_rows) @@ -615,12 +565,7 @@ def app(): constituency_dataset_df = constituency_dataset.df - # Apply u-values - data_by_urpn_df = make_uvalues(df = constituency_dataset_df).drop( - columns=["walls_clean_description", "walls_clean_description_ENDING"] - ) - - dataset.append(data_by_urpn_df) + dataset.append(constituency_dataset_df) print("Final all equal count: %s" % str(len(all_equal_rows))) @@ -637,15 +582,15 @@ def app(): # TODO: move into difference record # Remove any records that have huge swings in their floor area # Move this into TrainingDataset as this won't be run in newdata - output["tfa_diff_abs"] = abs(output["TOTAL_FLOOR_AREA_ENDING"] - output["TOTAL_FLOOR_AREA_STARTING"]) - output["tfa_diff_prop"] = output["tfa_diff_abs"] / output["TOTAL_FLOOR_AREA_STARTING"] - output = output[output["tfa_diff_prop"] < 0.5] - output = output.drop(columns=["tfa_diff_abs", "tfa_diff_prop"]) + # output["tfa_diff_abs"] = abs(output["TOTAL_FLOOR_AREA_ENDING"] - output["TOTAL_FLOOR_AREA_STARTING"]) + # output["tfa_diff_prop"] = output["tfa_diff_abs"] / output["TOTAL_FLOOR_AREA_STARTING"] + # output = output[output["tfa_diff_prop"] < 0.5] + # output = output.drop(columns=["tfa_diff_abs", "tfa_diff_prop"]) - # TODO: move into EPCRecord record - uvalue_columns = [col for col in output.columns if "thermal_transmittance" in col] - for uvalue_col in uvalue_columns: - output[uvalue_col] = pd.to_numeric(output[uvalue_col]) + # # TODO: move into EPCRecord record + # uvalue_columns = [col for col in output.columns if "thermal_transmittance" in col] + # for uvalue_col in uvalue_columns: + # output[uvalue_col] = pd.to_numeric(output[uvalue_col]) save_dataframe_to_s3_parquet( df=output, @@ -661,6 +606,21 @@ def app(): file_key="sap_change_model/all_equal_rows.parquet", ) +from etl.epc.Pipeline import EPCPipeline + +def main(): + """ + Orchestration function + """ + + directories = [entry for entry in DATA_DIRECTORY.iterdir() if entry.is_dir()] + + epc_pipeline = EPCPipeline(directories=directories, epc_data_processor=EPCDataProcessor(run_mode="training")) + + epc_pipeline.run() + + + if __name__ == "__main__": - app() + main() diff --git a/recommendations/recommendation_utils.py b/recommendations/recommendation_utils.py index 100ecb15..6244912d 100644 --- a/recommendations/recommendation_utils.py +++ b/recommendations/recommendation_utils.py @@ -1,5 +1,6 @@ import math from copy import deepcopy +from typing import Union import numpy as np import pandas as pd @@ -497,7 +498,7 @@ def get_wall_type( is_system_built, is_park_home, **kwargs -): +) -> Union[str, None]: """ Converts booleans to a string wall type, for querying the wall thickness table :return: From 0b52dc80974155ed7661de15a1a6d772ad011ad1 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Wed, 20 Dec 2023 14:55:04 +0000 Subject: [PATCH 079/526] Implemented cost framework --- recommendations/Costs.py | 37 ++++++++++++++----- recommendations/WindowsRecommendations.py | 19 +++++----- recommendations/tests/test_data/materials.py | 20 +++++++++- .../tests/test_window_recommendations.py | 9 ++++- 4 files changed, 63 insertions(+), 22 deletions(-) diff --git a/recommendations/Costs.py b/recommendations/Costs.py index 84a7468c..239dadd1 100644 --- a/recommendations/Costs.py +++ b/recommendations/Costs.py @@ -771,19 +771,38 @@ class Costs: :return: """ - number_of_windows = 7 - windows_cost = 345 + material_cost = material["material_cost"] * number_of_windows * self.SASH_WINDOW_INFLATION_FACTOR + labour_cost = ( + material["labour_cost"] * number_of_windows * self.SASH_WINDOW_INFLATION_FACTOR * + self.labour_adjustment_factor + ) - material_cost = windows_cost * number_of_windows * self.SASH_WINDOW_INFLATION_FACTOR + subtotal = material_cost + labour_cost - subtotal = material_cost - - contingency_cost = subtotal * 0.2 - preliminaries_cost = subtotal * 0.2 - profit_cost = subtotal * 0.2 + contingency_cost = subtotal * self.CONTINGENCY + preliminaries_cost = subtotal * self.PRELIMINARIES + profit_cost = subtotal * self.PROFIT_MARGIN subtotal_before_vat = subtotal + contingency_cost + preliminaries_cost + profit_cost - vat_cost = subtotal_before_vat * 0.2 + vat_cost = subtotal_before_vat * self.VAT_RATE total_cost = subtotal_before_vat + vat_cost + + labour_hours = material["labour_hours_per_unit"] * number_of_windows + + # Assume a team of 2 + labour_days = (labour_hours / 8) / 2 + + return { + "total": total_cost, + "subtotal": subtotal_before_vat, + "vat": vat_cost, + "contingency": contingency_cost, + "preliminaries": preliminaries_cost, + "material": material_cost, + "profit": profit_cost, + "labour_hours": labour_hours, + "labour_cost": labour_cost, + "labour_days": labour_days + } diff --git a/recommendations/WindowsRecommendations.py b/recommendations/WindowsRecommendations.py index d3424d1b..474071d9 100644 --- a/recommendations/WindowsRecommendations.py +++ b/recommendations/WindowsRecommendations.py @@ -11,14 +11,13 @@ class WindowsRecommendations: self.recommendation = [] - self.glazing_materials = [ - material for material in materials if material["type"] == "window_glazing" + self.glazing_material = [ + material for material in materials if material["type"] == "windows_glazing" ] - # TODO: This will be populated with the works associated to upgrading glazing. This will involve removal of - # previous glazing and installation of new glazing. This will not include the cost of the windows material - # themselfs - self.glazing_works_materials = [] + if len(self.glazing_material) != 1: + raise ValueError("There should only be one window glazing material") + self.glazing_material = self.glazing_material[0] def recommend(self): """ @@ -34,12 +33,14 @@ class WindowsRecommendations: if not number_of_windows: raise ValueError("Number of windows not specified") - if self.property.windows["has_glazing"] & self.property.windows["glazing_coverage"] == "full": + if self.property.windows["has_glazing"] & (self.property.windows["glazing_coverage"] == "full"): return # We then price the job based on the number of windows that there are - - cost_result = {} + cost_result = self.costs.window_glazing( + number_of_windows=number_of_windows, + material=self.glazing_material, + ) description = None diff --git a/recommendations/tests/test_data/materials.py b/recommendations/tests/test_data/materials.py index d7241be5..187d1401 100644 --- a/recommendations/tests/test_data/materials.py +++ b/recommendations/tests/test_data/materials.py @@ -942,8 +942,24 @@ materials = [ 'https://www.hamuch.com/cost/led-spot-light#:~:text=It%20costs%20an%20average%20of,' 'will%20drive%20up%20the%20cost.', 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, 244907), 'is_active': True, 'prime_material_cost': None, - 'material_cost': 20.0, 'labour_cost': 46.0, 'labour_hours_per_unit': 0.8, 'plant_cost': 0.0, 'total_cost': 66.0, + 'material_cost': 20.0, 'labour_cost': 15.0, 'labour_hours_per_unit': 0.8, 'plant_cost': 0.0, 'total_cost': 66.0, 'notes': 'We estimate the unit economics from the checkatrade article. We assume that the average job consists ' 'of installing 6 lights based on the hamuch article. We use the median value of 400 for a job of 6 ' - 'lights'} + 'lights'}, + {'id': 1235, 'type': 'windows_glazing', + 'description': 'uPVC windows; Profile 22 or other equal and approved; reinforced where appropriate with ' + 'aluminium alloy; in refurbishment work, including standard ironmongery; sills and factory glazed ' + 'with low-e 24 mm double glazing; removing existing windows and fixing new in position; including ' + 'lugs plugged and screwed to brickwork or blockwork; Casement/fixed light; including vents; ' + 'e.p.d.m. glazing gaskets and weather seals; 1770 mm × 1200 mm; ref P312WW', + 'depth': 0.0, 'depth_unit': None, 'cost': None, 'cost_unit': 'gbp_per_unit', 'r_value_per_mm': None, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': None, 'thermal_conductivity_unit': None, + 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, 244907), + 'is_active': True, 'prime_material_cost': 176.55, + 'material_cost': 182.25, 'labour_cost': 163.36, 'labour_hours_per_unit': 6.5, 'plant_cost': 0.0, + 'total_cost': 345.61, + 'notes': 'This is the cost of removal of existing windows and installation of new windows. This is a casement ' + 'style window, which is the most common but also the cheapest style. In the cost estimation framework, ' + 'we can inflate prices for different finishes, to be conservative on price.'} ] diff --git a/recommendations/tests/test_window_recommendations.py b/recommendations/tests/test_window_recommendations.py index da50d25c..1a146b41 100644 --- a/recommendations/tests/test_window_recommendations.py +++ b/recommendations/tests/test_window_recommendations.py @@ -1,6 +1,7 @@ from recommendations.WindowsRecommendations import WindowsRecommendations from backend.Property import Property from unittest.mock import Mock +from recommendations.tests.test_data.materials import materials class TestWindowRecommendations: @@ -25,6 +26,10 @@ class TestWindowRecommendations: 'glazing_type': 'single', 'no_data': False } - property_1.number_of_windows = 5 + property_1.number_of_windows = 7 - recommender = WindowsRecommendations(property_instance=property_1, materials=[]) + recommender = WindowsRecommendations(property_instance=property_1, materials=materials) + + assert not recommender.recommendation + + recommender.recommend() From ebad3d7dd69a8e8cdf81f9bba8f99a8d9b8b7073 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Wed, 20 Dec 2023 15:55:34 +0000 Subject: [PATCH 080/526] Implementing recommendation logic and tests --- recommendations/Costs.py | 23 ++-- recommendations/WindowsRecommendations.py | 41 ++++++- .../tests/test_window_recommendations.py | 104 +++++++++++++++++- 3 files changed, 157 insertions(+), 11 deletions(-) diff --git a/recommendations/Costs.py b/recommendations/Costs.py index 239dadd1..24ea0584 100644 --- a/recommendations/Costs.py +++ b/recommendations/Costs.py @@ -70,6 +70,10 @@ class Costs: # https://www.greenmatch.co.uk/windows/double-glazing/cost SASH_WINDOW_INFLATION_FACTOR = 1.5 + # Typically, secondary glazing can be installed for 25% of the cost of double glazed windows - to be conservative, + # we scale the cost by half + SECONDARY_GLAZING_SCALING_FACTOR = 0.5 + def __init__(self, property_instance): """ Initializes the Costs class with a property instance. @@ -726,7 +730,7 @@ class Costs: "labour_cost": labour_costs } - def window_glazing(self, number_of_windows, material): + def window_glazing(self, number_of_windows, material, is_secondary_glazing=False): """ We characterise the jobs to be done for window glazing as the following: 1) Initial Assessment and Measurements: Before removing the existing window, it's essential to assess the @@ -767,17 +771,17 @@ class Costs: For this cost estimation process, we factor in initial assement into the preliminaries - :param number_of_windows: - :return: """ - material_cost = material["material_cost"] * number_of_windows * self.SASH_WINDOW_INFLATION_FACTOR - labour_cost = ( - material["labour_cost"] * number_of_windows * self.SASH_WINDOW_INFLATION_FACTOR * - self.labour_adjustment_factor - ) + material_cost = material["material_cost"] * number_of_windows - subtotal = material_cost + labour_cost + labour_cost = ( + material["labour_cost"] * number_of_windows * self.labour_adjustment_factor + ) + multiplier = self.SECONDARY_GLAZING_SCALING_FACTOR if is_secondary_glazing else ( + self.SASH_WINDOW_INFLATION_FACTOR) + + subtotal = (material_cost + labour_cost) * multiplier contingency_cost = subtotal * self.CONTINGENCY preliminaries_cost = subtotal * self.PRELIMINARIES @@ -790,6 +794,7 @@ class Costs: total_cost = subtotal_before_vat + vat_cost labour_hours = material["labour_hours_per_unit"] * number_of_windows + labour_hours = labour_hours * self.SECONDARY_GLAZING_SCALING_FACTOR if is_secondary_glazing else labour_hours # Assume a team of 2 labour_days = (labour_hours / 8) / 2 diff --git a/recommendations/WindowsRecommendations.py b/recommendations/WindowsRecommendations.py index 474071d9..0d3fb0af 100644 --- a/recommendations/WindowsRecommendations.py +++ b/recommendations/WindowsRecommendations.py @@ -1,9 +1,20 @@ from typing import List + +import numpy as np + from backend.Property import Property from recommendations.Costs import Costs class WindowsRecommendations: + # If the property has existing glazing, we scale down the number of windows that need to be glazed + COVERAGE_MAP = { + # If most of the windows have already been glazed, we assume that 2/3 are glazed and 1/2 are remaining to be + # glazed + "most": 0.33, + # If glazing is partial, we assume 50/50 split between glazed and unglazed + "partial": 0.5 + } def __init__(self, property_instance: Property, materials: List): self.property = property_instance @@ -28,7 +39,14 @@ class WindowsRecommendations: :return: """ + # If the property is in a conservation area or is a listed building, it becomes more difficult to install + # double glazing. Therefore, we don't recommend it. It is still possible but is not practical as it + # requires planning permission and might require a more expensive window type, such as timber. + number_of_windows = self.property.number_of_windows + is_secondary_glazing = self.property.restricted_measures or ( + self.property.windows["glazing_type"] == "secondary" + ) if not number_of_windows: raise ValueError("Number of windows not specified") @@ -36,13 +54,34 @@ class WindowsRecommendations: if self.property.windows["has_glazing"] & (self.property.windows["glazing_coverage"] == "full"): return + # We scale the number of windows based on the proportion of existing glazing + if self.property.data["multi-glaze-proportion"] != "": + n_windows_scalar = 1 - (self.property.data["multi-glaze-proportion"] / 100) + else: + n_windows_scalar = self.COVERAGE_MAP.get(self.property.windows["glazing_coverage"], 1) + + number_of_windows *= n_windows_scalar + number_of_windows = np.ceil(number_of_windows) + # We then price the job based on the number of windows that there are cost_result = self.costs.window_glazing( number_of_windows=number_of_windows, material=self.glazing_material, + is_secondary_glazing=is_secondary_glazing ) - description = None + glazing_type = "secondary glazing" if is_secondary_glazing else "double glazing" + if self.property.windows["glazing_coverage"] in ["partial", "most"]: + description = f"Install {glazing_type} to the remaining windows" + else: + description = f"Install {glazing_type} to all windows" + + if self.property.is_listed: + description += ". Secondary glazing recommended due to listed building status" + elif self.property.is_heritage: + description += ". Secondary glazing recommended due to conservation area status" + elif self.property.in_conservation_area: + description += ". Secondary glazing recommended due to conservation area status" self.recommendation = [ { diff --git a/recommendations/tests/test_window_recommendations.py b/recommendations/tests/test_window_recommendations.py index 1a146b41..fbb67243 100644 --- a/recommendations/tests/test_window_recommendations.py +++ b/recommendations/tests/test_window_recommendations.py @@ -18,7 +18,8 @@ class TestWindowRecommendations: address1='1', epc_client=Mock(), data={ - "county": "Wychavon" + "county": "Wychavon", + "multi-glaze-proportion": 0 } ) property_1.windows = { @@ -33,3 +34,104 @@ class TestWindowRecommendations: assert not recommender.recommendation recommender.recommend() + + assert recommender.recommendation == [ + {'parts': [], 'type': 'window_glazing', 'description': 'Install double glazing to all windows', + 'starting_u_value': None, 'new_u_value': None, 'sap_points': None, 'total': 5721.943248, + 'subtotal': 4768.28604, 'vat': 953.6572080000001, 'contingency': 340.59186, 'preliminaries': 340.59186, + 'material': 1275.75, 'profit': 681.18372, 'labour_hours': 45.5, 'labour_cost': 994.8624, + 'labour_days': 2.84375}] + + def test_partial_double_glazed(self): + """ + For this property, the double glazing is describes as partial, therefore we recommend completion of + double glazing + :return: + """ + + property_2 = Property( + id=1, + postcode='1', + address1='1', + epc_client=Mock(), + data={ + "county": "Wychavon", + "multi-glaze-proportion": 33 + } + ) + property_2.windows = {'original_description': 'Mostly double glazing', 'has_glazing': True, + 'glazing_coverage': 'most', + 'glazing_type': 'double', 'no_data': False} + property_2.number_of_windows = 7 + + recommender2 = WindowsRecommendations(property_instance=property_2, materials=materials) + + assert not recommender2.recommendation + + recommender2.recommend() + + assert recommender2.recommendation == [ + {'parts': [], 'type': 'window_glazing', 'description': 'Install double glazing to the remaining windows', + 'starting_u_value': None, 'new_u_value': None, 'sap_points': None, 'total': 4087.10232, + 'subtotal': 3405.9186, 'vat': 681.18372, 'contingency': 243.2799, 'preliminaries': 243.2799, + 'material': 911.25, 'profit': 486.5598, 'labour_hours': 32.5, 'labour_cost': 710.6160000000001, + 'labour_days': 2.03125}] + + def test_fully_double_glazed(self): + """ + This property has full double glazing so we shouldn't recommend anything + :return: + """ + + property_3 = Property( + id=1, + postcode='1', + address1='1', + epc_client=Mock(), + data={ + "county": "Wychavon", + "multi-glaze-proportion": 80 + } + ) + property_3.windows = {'original_description': 'Fully double glazed', 'has_glazing': True, + 'glazing_coverage': 'full', + 'glazing_type': 'double', 'no_data': False} + property_3.number_of_windows = 7 + + recommender3 = WindowsRecommendations(property_instance=property_3, materials=materials) + + assert not recommender3.recommendation + + recommender3.recommend() + + assert not recommender3.recommendation + + def test_fully_secondary_glazed(self): + property_4 = Property( + id=1, + postcode='1', + address1='1', + epc_client=Mock(), + data={ + "county": "Wychavon", + "multi-glaze-proportion": 100 + } + ) + property_4.windows = {'original_description': 'Full secondary glazing', 'has_glazing': True, + 'glazing_coverage': 'full', + 'glazing_type': 'secondary', 'no_data': False} + property_4.number_of_windows = 7 + + recommender4 = WindowsRecommendations(property_instance=property_4, materials=materials) + + assert not recommender4.recommendation + + recommender4.recommend() + + assert not recommender4.recommendation + + def test_partial_secondary_glazing(self): + pass + + def test_single_glazed_restricted_measures(self): + pass From 1eb98d2d35cc8577dd8d78d20eb48a9071d4ea1c Mon Sep 17 00:00:00 2001 From: Michael Duong Date: Wed, 20 Dec 2023 16:27:27 +0000 Subject: [PATCH 081/526] new pipeline working --- etl/epc/DataProcessor.py | 30 +- etl/epc/Dataset.py | 42 ++- etl/epc/Pipeline.py | 32 +- etl/epc/property_change_app.py | 611 +-------------------------------- 4 files changed, 72 insertions(+), 643 deletions(-) diff --git a/etl/epc/DataProcessor.py b/etl/epc/DataProcessor.py index 2c7f892b..7f41c96f 100644 --- a/etl/epc/DataProcessor.py +++ b/etl/epc/DataProcessor.py @@ -83,7 +83,7 @@ class EPCDataProcessor: raise ValueError("Run mode must be either training or newdata") self.run_mode = run_mode if not violation_mode else "newdata" - def prepare_data(self, filepath: str) -> tuple[pd.DataFrame, pd.DataFrame]: + def prepare_data(self, filepath: Path | str) -> None: """ Given the run mode, we apply the relevant pipeline steps Ignore step is used to highlight which steps are not needed in newdata @@ -91,9 +91,12 @@ class EPCDataProcessor: ignore_step = True if self.run_mode == "newdata" else False - if self.data is None: + if filepath is not None: self.load_data(filepath=filepath, low_memory=DATA_PROCESSOR_SETTINGS["low_memory"]) - + + if len(self.data) == 0: + raise Exception("No data to process - check filepath/ data being passed in") + self.confine_data(ignore_step=ignore_step) self.remap_anomalies() self.remap_floor_level(ignore_step=ignore_step) @@ -116,6 +119,7 @@ class EPCDataProcessor: # Final re-casting after data transformed and prepared self.recast_df_columns(column_mappings=COLUMNTYPES, auto_subset_columns=True) + self.recast_all_data(column_mappings=COLUMNTYPES, auto_subset_columns=True) self.na_remapping(auto_subset_columns=True) self.fill_invalid_constituency_fields(ignore_step=ignore_step) @@ -132,9 +136,8 @@ class EPCDataProcessor: self.add_local_authority_to_cleaning_average(ignore_step=ignore_step) self.cast_cleaning_averages_columns_to_lower(ignore_step=ignore_step) self.cast_data_columns_to_lower() - - return self.data, self.cleaning_averages - + + def cast_data_columns_to_lower(self): """ Convert all columns names to lower @@ -577,8 +580,19 @@ class EPCDataProcessor: for key, values in column_mappings.items(): if key not in self.data.columns: raise ValueError("Column mapping incorrectly specified") - for value in values: - self.data[key] = self.data[key].astype(value) + if isinstance(values, list): + for value in values: + self.data[key] = self.data[key].astype(value) + else: + self.data[key] = self.data[key].astype(values) + + def recast_all_data(self, column_mappings: dict, auto_subset_columns: bool = False) -> None: + """ + Using a dictionary to recast all columns at once + """ + + if auto_subset_columns: + column_mappings = {k: v for k, v in column_mappings.items() if k in self.data.columns} self.data = self.data.astype(column_mappings) diff --git a/etl/epc/Dataset.py b/etl/epc/Dataset.py index 26073211..b0c7f4c7 100644 --- a/etl/epc/Dataset.py +++ b/etl/epc/Dataset.py @@ -45,7 +45,7 @@ class TrainingDataset(BaseDataset): # self.pipeline_steps = self.pipeline_factory("training") self.datasets = datasets self.df = pd.DataFrame([dataset.difference_record for dataset in datasets]) - + self._feature_generation() self._drop_features() self._clean_efficiency_variables() @@ -112,14 +112,20 @@ class TrainingDataset(BaseDataset): """ Using the apply method, use the get_wall_u_value method to generate the u-value """ - col_name = "walls_clean_description" if not is_end else "walls_clean_description_ending" + description_col_name = "walls_clean_description" if not is_end else "walls_clean_description_ending" + thermal_transistance_col_name = "walls_thermal_transmittance" if not is_end else "walls_thermal_transmittance_ending" - return get_wall_u_value( - clean_description=row[col_name], - age_band=england_wales_age_band_lookup[row["construction_age_band"]], - is_granite_or_whinstone=row["is_granite_or_whinstone"], - is_sandstone_or_limestone=row["is_sandstone_or_limestone"], - ) + if pd.isnull(row[thermal_transistance_col_name]): + output = get_wall_u_value( + clean_description=row[description_col_name], + age_band=england_wales_age_band_lookup[row["construction_age_band"]], + is_granite_or_whinstone=row["is_granite_or_whinstone"], + is_sandstone_or_limestone=row["is_sandstone_or_limestone"], + ) + else: + output = row[thermal_transistance_col_name] + + return output @staticmethod def _lambda_function_to_generate_floor_uvalue(row, is_end=False): @@ -235,8 +241,8 @@ class TrainingDataset(BaseDataset): floor_ending_uvalue = self.df['floor_thermal_transmittance_ending'].fillna(floor_ending_uvalue) for component in ["walls", "roof", "floor"]: - self.df[f"{component}_thermal_transmittance"] = self.df[f"{component}_thermal_transmittance"].fillna(f"{component}_starting_uvalue") - self.df[f"{component}_thermal_transmittance_ending"] = self.df[f"{component}_thermal_transmittance_ending"].fillna(f"{component}_ending_uvalue") + self.df[f"{component}_thermal_transmittance"] = self.df[f"{component}_thermal_transmittance"].fillna(eval(f"{component}_starting_uvalue")) + self.df[f"{component}_thermal_transmittance_ending"] = self.df[f"{component}_thermal_transmittance_ending"].fillna(eval(f"{component}_ending_uvalue")) self.df = self.df.drop(columns=["floor_type", "wall_type", "walls_clean_description", "walls_clean_description_ending"]) @@ -353,11 +359,17 @@ class TrainingDataset(BaseDataset): for component in components_to_expand: - # TODO: change cleaned dataframe to have underscores instead of dashes - cleaned_key, left_on_starting, left_on_ending, original_cols = ( - ("main-fuel", "main_fuel_starting", "main_fuel_ending", ["main_fuel_starting", "main_fuel_ending"]) if component == "main-fuel" else - (f"{component}-description", f"{component}_description_starting", f"{component}_description_ending", [f"{component}_description_starting", f"{component}_description_ending"]) - ) + # TODO: change cleaned dataframe to have underscores instead of dashes + if component == "main-fuel": + cleaned_key = "main-fuel" + left_on_starting = "main_fuel_starting" + left_on_ending = "main_fuel_ending" + original_cols = ["main_fuel_starting", "main_fuel_ending"] + else: + cleaned_key = f"{component}-description" + left_on_starting = f"{component}_description_starting" + left_on_ending = f"{component}_description_ending" + original_cols = [f"{component}_description_starting", f"{component}_description_ending"] cleaned_lookup_df_for_key = pd.DataFrame(cleaned_lookup[cleaned_key]) diff --git a/etl/epc/Pipeline.py b/etl/epc/Pipeline.py index 07f54096..c4af6911 100644 --- a/etl/epc/Pipeline.py +++ b/etl/epc/Pipeline.py @@ -105,23 +105,23 @@ class EPCPipeline: for directory in self.directories: self.process_directory(directory) - save_dataframe_to_s3_parquet( - df=self.compiled_dataset, - bucket_name=self.epc_bucket_name, - file_key=self.epc_compiled_dataset_key, - ) + # save_dataframe_to_s3_parquet( + # df=self.compiled_dataset, + # bucket_name=self.epc_bucket_name, + # file_key=self.epc_compiled_dataset_key, + # ) - save_dataframe_to_s3_parquet( - df=pd.concat(self.compiled_all_equal_rows), - bucket_name=self.epc_bucket_name, - file_key=self.epc_all_equal_rows_key, - ) + # save_dataframe_to_s3_parquet( + # df=pd.concat(self.compiled_all_equal_rows), + # bucket_name=self.epc_bucket_name, + # file_key=self.epc_all_equal_rows_key, + # ) - save_dataframe_to_s3_parquet( - df=pd.concat(self.compiled_cleaning_averages), - bucket_name=self.epc_bucket_name, - file_key=self.epc_cleaning_dataset_key, - ) + # save_dataframe_to_s3_parquet( + # df=pd.concat(self.compiled_cleaning_averages), + # bucket_name=self.epc_bucket_name, + # file_key=self.epc_cleaning_dataset_key, + # ) def process_directory(self, directory: Path): """ @@ -131,7 +131,7 @@ class EPCPipeline: """ filepath = directory / self.epc_local_file - self.epc_data_processor.pre_process(filepath=filepath) + self.epc_data_processor.prepare_data(filepath=filepath) constituency_data = self.epc_data_processor.data self.compiled_cleaning_averages.append(self.epc_data_processor.cleaning_averages) diff --git a/etl/epc/property_change_app.py b/etl/epc/property_change_app.py index fb9486e8..bb24f431 100644 --- a/etl/epc/property_change_app.py +++ b/etl/epc/property_change_app.py @@ -1,625 +1,28 @@ -import pandas as pd -import numpy as np -from tqdm import tqdm -import msgpack - -from typing import List from pathlib import Path -from etl.epc.settings import ( - MANDATORY_FIXED_FEATURES, - LATEST_FIELD, - COMPONENT_FEATURES, - RDSAP_RESPONSE, - HEAT_DEMAND_RESPONSE, - CARBON_RESPONSE, - CORE_COMPONENT_FEATURES, - EFFICIENCY_FEATURES, - POTENTIAL_COLUMNS, - MINIMUM_FLOOR_HEIGHT -) from etl.epc.DataProcessor import EPCDataProcessor -from etl.epc.Record import EPCRecord, EPCDifferenceRecord -from utils.s3 import save_dataframe_to_s3_parquet, read_from_s3 -from recommendations.rdsap_tables import england_wales_age_band_lookup -from recommendations.recommendation_utils import ( - get_wall_u_value, get_roof_u_value, get_floor_u_value, estimate_perimeter, - get_wall_type -) +from etl.epc.Pipeline import EPCPipeline DATA_DIRECTORY = Path(__file__).parent / "local_data" / "all-domestic-certificates" -# TODO: change in setting file -MANDATORY_FIXED_FEATURES = [x.lower() for x in MANDATORY_FIXED_FEATURES] -LATEST_FIELD = [x.lower() for x in LATEST_FIELD] -COMPONENT_FEATURES = [x.lower() for x in COMPONENT_FEATURES] -RDSAP_RESPONSE = RDSAP_RESPONSE.lower() -HEAT_DEMAND_RESPONSE = HEAT_DEMAND_RESPONSE.lower() -CARBON_RESPONSE = CARBON_RESPONSE.lower() -CORE_COMPONENT_FEATURES = [x.lower() for x in CORE_COMPONENT_FEATURES] -EFFICIENCY_FEATURES = [x.lower() for x in EFFICIENCY_FEATURES] -POTENTIAL_COLUMNS = [x.lower() for x in POTENTIAL_COLUMNS] -VARIABLE_DATA_FEATURES = COMPONENT_FEATURES + EFFICIENCY_FEATURES + POTENTIAL_COLUMNS + [ - "lodgement_date", RDSAP_RESPONSE, HEAT_DEMAND_RESPONSE, CARBON_RESPONSE -] - -def get_cleaned_description_mapping(): - """ - This function will retrieve the cleaned dataset from s3 which has the cleaned - descriptions for the epc dataset - - This data is stored in MessagePack format and therefore needs to be decoded - :return: - """ - - cleaned = read_from_s3( - s3_file_name="cleaned_epc_data/cleaned.bson", - bucket_name="retrofit-data-dev" - ) - - cleaned = msgpack.unpackb(cleaned, raw=False) - - return cleaned - - -def process_and_prune_desriptions(df, cleaned_lookup): - """ - This method will merge on the cleaned lookup table and ensure that the building fabric in the - starting and ending EPC is consistent, so ensure that we are performing our modelling on the cleanest - possible dataset. - :param df: - :param cleaned_lookup: - :return: - """ - - cols_to_drop = { - "walls": [ - # We need to cleaned descriptions for pulling out u-values - 'original_description', 'thermal_transmittance_unit', - 'original_description_ENDING', - 'thermal_transmittance_unit_ENDING', - 'is_cavity_wall_ENDING', 'is_filled_cavity_ENDING', - 'is_solid_brick_ENDING', 'is_system_built_ENDING', - 'is_timber_frame_ENDING', 'is_granite_or_whinstone_ENDING', - 'is_as_built_ENDING', 'is_cob_ENDING', 'is_assumed_ENDING', - 'is_sandstone_or_limestone_ENDING', - # Re remove the is_assumed columns - "is_assumed", "is_assumed_ENDING" - ], - "floor": [ - "original_description", "clean_description", "thermal_transmittance_unit", - "no_data", "no_data_ENDING", "original_description_ENDING", - "clean_description_ENDING", "thermal_transmittance_unit_ENDING", - "is_suspended_ENDING", "is_solid_ENDING", "another_property_below_ENDING", - "is_to_unheated_space_ENDING", "is_to_external_air_ENDING", "is_assumed", - "is_assumed_ENDING" - ], - "roof": [ - "original_description", "clean_description", "thermal_transmittance_unit", - "is_assumed", "is_valid", "original_description_ENDING", "clean_description_ENDING", - "thermal_transmittance_unit_ENDING", "is_pitched_ENDING", "is_roof_room_ENDING", - "is_loft_ENDING", "is_flat_ENDING", "is_thatched_ENDING", "is_at_rafters_ENDING", - "has_dwelling_above_ENDING", "is_assumed_ENDING", "is_valid_ENDING" - ], - "hotwater": [ - "original_description", "clean_description", "assumed", "original_description_ENDING", - "clean_description_ENDING", "assumed_ENDING" - ], - "mainheat": [ - "original_description", "clean_description", "original_description_ENDING", - "has_assumed", "original_description_ENDING", "clean_description_ENDING", - "has_assumed_ENDING", - ], - "mainheatcont": [ - "original_description", "clean_description", "original_description_ENDING", "clean_description_ENDING" - ], - "windows": [ - "original_description", "clean_description", "original_description_ENDING", "clean_description_ENDING", - # We don't need many of the glazing coverage features because we have the multi_glaze_proportion feature - "has_glazing", "glazing_coverage", "no_data", "has_glazing_ENDING", "glazing_coverage_ENDING", - "no_data_ENDING" - ], - "main-fuel": [ - "original_description", "clean_description", "original_description_ENDING", "clean_description_ENDING" - ], - } - - for component in ["walls", "floor", "roof", "hotwater", "mainheat", "mainheatcont", "windows", "main-fuel"]: - component_upper = component.upper() - if component == "main-fuel": - component_upper = component_upper.replace("-", "_") - - cleaned_key = "main-fuel" if component == "main-fuel" else f"{component}-description" - left_on_starting = ( - f"{component_upper}_STARTING" if component == "main-fuel" else f"{component_upper}_DESCRIPTION_STARTING" - ) - - left_on_ending = ( - f"{component_upper}_ENDING" if component == "main-fuel" else f"{component_upper}_DESCRIPTION_ENDING" - ) - - df = df.merge( - pd.DataFrame(cleaned_lookup[cleaned_key]), - how="left", - left_on=left_on_starting, - right_on="original_description", - ).merge( - pd.DataFrame(cleaned_lookup[cleaned_key]), - how="left", - left_on=left_on_ending, - right_on="original_description", - suffixes=("", "_ENDING") - ) - - if component == "walls": - # We make sure the wall construction hasn't changed - df = df[ - (df["is_cavity_wall"] == df["is_cavity_wall_ENDING"]) & - (df["is_solid_brick"] == df["is_solid_brick_ENDING"]) & - (df["is_timber_frame"] == df["is_timber_frame_ENDING"]) & - (df["is_granite_or_whinstone"] == df["is_granite_or_whinstone_ENDING"]) & - (df["is_cob"] == df["is_cob_ENDING"]) & - (df["is_sandstone_or_limestone"] == df["is_sandstone_or_limestone_ENDING"]) - ] - elif component == "floor": - df = df[ - (df["is_suspended"] == df["is_suspended_ENDING"]) & - (df["is_solid"] == df["is_solid_ENDING"]) & - (df["another_property_below"] == df["another_property_below_ENDING"]) & - (df["is_to_unheated_space"] == df["is_to_unheated_space_ENDING"]) & - (df["is_to_external_air"] == df["is_to_external_air_ENDING"]) - ] - elif component == "roof": - df = df[ - (df["is_pitched"] == df["is_pitched_ENDING"]) & - (df["is_roof_room"] == df["is_roof_room_ENDING"]) & - (df["is_loft"] == df["is_loft_ENDING"]) & - (df["is_flat"] == df["is_flat_ENDING"]) & - (df["is_thatched"] == df["is_thatched_ENDING"]) & - (df["is_at_rafters"] == df["is_at_rafters_ENDING"]) & - (df["has_dwelling_above"] == df["has_dwelling_above_ENDING"]) - ] - - # Drop the binary indicators and replace the original description with the cleaned version - - # Drop original cols - original_cols = [ - f"{component_upper}_DESCRIPTION_STARTING", f"{component_upper}_DESCRIPTION_ENDING" - ] if component != "main-fuel" else [ - f"{component_upper}_STARTING", f"{component_upper}_ENDING" - ] - - df = df.drop(columns=cols_to_drop[component] + original_cols) - - # If we have an insulation_thickness column, rename it - if "insulation_thickness" in cleaned_lookup[cleaned_key][0]: - df = df.rename( - columns={ - "insulation_thickness": f"{component}_insulation_thickness", - "insulation_thickness_ENDING": f"{component}_insulation_thickness_ENDING", - } - ) - # If we have thermal transmittance, rename it - if "thermal_transmittance" in cleaned_lookup[cleaned_key][0]: - df = df.rename( - columns={ - "thermal_transmittance": f"{component}_thermal_transmittance", - "thermal_transmittance_ENDING": f"{component}_thermal_transmittance_ENDING", - } - ) - - # If we have tarrif, rename it - if "tariff_type" in cleaned_lookup[cleaned_key][0]: - df = df.rename( - columns={ - "tariff_type": f"{component}_tariff_type", - "tariff_type_ENDING": f"{component}_tariff_type_ENDING", - } - ) - - # We need the walls descriptions so we rename them to distinguish them - if component == "walls": - df = df.rename( - columns={ - "clean_description": f"{component}_clean_description", - "clean_description_ENDING": f"{component}_clean_description_ENDING", - } - ) - - # We don't need any lighting specific cleaning, we just drop the original description as we use - # LOW_ENERGY_LIGHTING_STARTING, LOW_ENERGY_LIGHTING_ENDING - - df = df.drop(columns=["LIGHTING_DESCRIPTION_STARTING", "LIGHTING_DESCRIPTION_ENDING"]) - - return df - - -def make_uvalues(df): - df["row_index"] = df.index - - uvalues = [] - # TODO: iterrows is the slowest way to do this, we should use a vectorised approach or itertuples - for index_no, x in df.iterrows(): - - uprn = x["uprn"] - row_index = x["row_index"] - age_band = england_wales_age_band_lookup[x["construction_age_band"]] - - # ~~~~~~~~~~~~~~~~~~ - # Walls - # ~~~~~~~~~~~~~~~~~~ - - starting_wall_uvalue = x["walls_thermal_transmittance"] - if pd.isnull(starting_wall_uvalue): - starting_wall_uvalue = get_wall_u_value( - clean_description=x["walls_clean_description"], - age_band=age_band, - is_granite_or_whinstone=x["is_granite_or_whinstone"], - is_sandstone_or_limestone=x["is_sandstone_or_limestone"], - ) - - ending_wall_uvalue = x["walls_thermal_transmittance_ending"] - if pd.isnull(ending_wall_uvalue): - if x["walls_clean_description"] != x["walls_clean_description_ending"]: - ending_wall_uvalue = get_wall_u_value( - clean_description=x["walls_clean_description_ending"], - age_band=age_band, - is_granite_or_whinstone=x["is_granite_or_whinstone"], - is_sandstone_or_limestone=x["is_sandstone_or_limestone"], - ) - else: - ending_wall_uvalue = starting_wall_uvalue - - # ~~~~~~~~~~~~~~~~~~ - # Roof - # ~~~~~~~~~~~~~~~~~~ - - if x["has_dwelling_above"]: - if x["roof_thermal_transmittance"] != 0: - raise ValueError("Should have 0 u-value for roof") - - if x["roof_thermal_transmittance_ENDING"] != 0: - raise ValueError("Should have 0 u-value for roof") - - starting_roof_uvalue = x["roof_thermal_transmittance"] - if pd.isnull(starting_roof_uvalue): - starting_roof_uvalue = get_roof_u_value( - insulation_thickness=x["roof_insulation_thickness"], - has_dwelling_above=x["has_dwelling_above"], - is_loft=x["is_loft"], - is_roof_room=x["is_roof_room"], - is_thatched=x["is_thatched"], - is_flat=x["is_flat"], - is_pitched=x["is_pitched"], - is_at_rafters=x["is_at_rafters"], - age_band=age_band - ) - - ending_roof_uvalue = x["roof_thermal_transmittance_ENDING"] - - if pd.isnull(ending_roof_uvalue): - ending_roof_uvalue = get_roof_u_value( - insulation_thickness=x["roof_insulation_thickness_ENDING"], - has_dwelling_above=x["has_dwelling_above"], - is_loft=x["is_loft"], - is_roof_room=x["is_roof_room"], - is_thatched=x["is_thatched"], - is_flat=x["is_flat"], - is_pitched=x["is_pitched"], - is_at_rafters=x["is_at_rafters"], - age_band=age_band - ) - - # ~~~~~~~~~~~~~~~~~~ - # Floor - # ~~~~~~~~~~~~~~~~~~ - perimeters = {} - for suffix in ["_STARTING", "_ENDING"]: - floor_area = x[f"TOTAL_FLOOR_AREA{suffix}"] - n_rooms = x["NUMBER_HABITABLE_ROOMS"] - - perimeters[f"estimated_perimeter{suffix}"] = estimate_perimeter(floor_area, n_rooms) - - floor_type = "suspended" if x["is_suspended"] else "solid" - wall_type = get_wall_type(**x) - - if x["another_property_below"]: - if x["floor_thermal_transmittance"] != 0: - raise ValueError("Should have 0 u-value for floor") - - if x["floor_thermal_transmittance_ENDING"] != 0: - raise ValueError("Should have 0 u-value for floor") - starting_floor_uvalue, ending_floor_uvalue = 0, 0 - else: - starting_floor_uvalue = x["floor_thermal_transmittance"] - ending_floor_uvalue = x["floor_thermal_transmittance_ENDING"] - - if pd.isnull(starting_floor_uvalue): - starting_floor_uvalue = get_floor_u_value( - floor_type=floor_type, - perimeter=perimeters["estimated_perimeter_STARTING"], - area=x[f"TOTAL_FLOOR_AREA_STARTING"], - insulation_thickness=x["floor_insulation_thickness"], - wall_type=wall_type, - age_band=age_band - ) - - if pd.isnull(ending_floor_uvalue): - ending_floor_uvalue = get_floor_u_value( - floor_type=floor_type, - perimeter=perimeters["estimated_perimeter_ENDING"], - area=x[f"TOTAL_FLOOR_AREA_ENDING"], - insulation_thickness=x["floor_insulation_thickness_ENDING"], - wall_type=wall_type, - age_band=age_band - ) - - uvalues.append( - { - "UPRN": uprn, - "row_index": row_index, - "starting_walls_uvalue": starting_wall_uvalue, - "ending_walls_uvalue": ending_wall_uvalue, - "starting_roof_uvalue": starting_roof_uvalue, - "ending_roof_uvalue": ending_roof_uvalue, - "starting_floor_uvalue": starting_floor_uvalue, - "ending_floor_uvalue": ending_floor_uvalue, - **perimeters - } - ) - - uvalues = pd.DataFrame(uvalues) - - df = df.merge( - uvalues, how="left", on=["UPRN", "row_index"] - ).drop(columns="row_index") - - # Fill missings - for component in ["walls", "floor", "roof"]: - for suffix in ["", "_ENDING"]: - fill_col = f"starting_{component}_uvalue" if suffix == "" else f"ending_{component}_uvalue" - - df[f"{component}_thermal_transmittance{suffix}"] = np.where( - pd.isnull(df[f"{component}_thermal_transmittance{suffix}"]), - df[fill_col], - df[f"{component}_thermal_transmittance{suffix}"] - ) - - df = df.drop( - columns=[ - "starting_walls_uvalue", "ending_walls_uvalue", "starting_roof_uvalue", - "ending_roof_uvalue", "starting_floor_uvalue", "ending_floor_uvalue" - ] - ) - - return df - - -# def compare_records(earliest_record: pd.Series, latest_record: pd.Series, columns: list): -# """ -# For a list of columns, check if the earliest and latest record are the same -# If they are the same, we indicate this, because we have example of SAP scores changing -# without any feature changes -# :param earliest_record: pd.Series -# :param latest_record: pd.Series -# :param columns: list of columns to compare -# :return: boolean indicating whether or not all features are the same -# """ - -# all_equal = True -# for col in columns: -# if earliest_record[col] != latest_record[col]: -# return False -# if all_equal: -# return True - -def generate_property_difference_records(epc_records: List[EPCRecord], uprn: str, directory: Path, fixed_data: dict, all_equal_rows: list): - """ - We can use multiple types of comparison datasets, for example: - - First vs second - - Second vs third - - First vs third - :param epc_records: - :return: - """ - - property_difference_records: list = [] - - property_difference_records, all_equal_rows = compare_consecutive_epcs(epc_records, uprn, directory, fixed_data, property_difference_records, all_equal_rows) - - # property_difference_records, all_equal_rows = compare_all_permutation_epcs(epc_records, uprn, directory, fixed_data, property_difference_records, all_equal_rows) - - return property_difference_records, all_equal_rows - - -def compare_all_permutation_epcs(epc_records: List[EPCRecord], uprn: str, directory: Path, fixed_data: dict, property_difference_records: list, all_equal_rows: list): - """ - Compare all permutations of EPCs for a given UPRN - :param epc_records: - :return: - """ - - for idx in range(0, len(epc_records) - 1): - for idx2 in range(idx + 1, len(epc_records)): - earliest_record: EPCRecord = epc_records[idx] - latest_record: EPCRecord = epc_records[idx2] - - # Auto sort the records so that the record with highest RDSAP score is always record1 - difference_record: EPCDifferenceRecord = latest_record - earliest_record - - # TODO: Pull out RDSAP_CHANGE to a variable - if difference_record.get("rdsap_change") == 0: - continue - - all_equal = difference_record.compare_fields_in_records( - fields=[x.lower() for x in CORE_COMPONENT_FEATURES] - ) - - if all_equal: - # Keep track of this for the moment so we can analyse - all_equal_rows.append({"uprn": uprn, "directory_name": directory.name}) - continue - - difference_record.append_fixed_data(fixed_data) - - property_difference_records.append(difference_record) - - return property_difference_records, all_equal_rows - - -def compare_consecutive_epcs(epc_records: List[EPCRecord], uprn: str, directory: Path, fixed_data: dict, property_difference_records: list, all_equal_rows: list): - """ - Compare consecutive EPCs for a given UPRN - :param epc_records: - :return: - """ - - for idx in range(0, len(epc_records) - 1): - - if idx >= len(epc_records) - 1: - break - - earliest_record: EPCRecord = epc_records[idx] - latest_record: EPCRecord = epc_records[idx + 1] - - # Auto sort the records so that the record with highest RDSAP score is always record1 - difference_record: EPCDifferenceRecord = latest_record - earliest_record - - # TODO: Pull out RDSAP_CHANGE to a variable - if difference_record.get("rdsap_change") == 0: - continue - - all_equal = difference_record.compare_fields_in_records( - fields=[x.lower() for x in CORE_COMPONENT_FEATURES] - ) - - if all_equal: - # Keep track of this for the moment so we can analyse - all_equal_rows.append({"uprn": uprn, "directory_name": directory.name}) - continue - - difference_record.append_fixed_data(fixed_data) - - property_difference_records.append(difference_record) - - return property_difference_records, all_equal_rows - - -from etl.epc.Dataset import TrainingDataset - -def app(): - # Get all the files in the directory - - # Data glossary: - # https://epc.opendatacommunities.org/docs/guidance#glossary - - cleaned_lookup = get_cleaned_description_mapping() - - # List all subdirectories - directories = [entry for entry in DATA_DIRECTORY.iterdir() if entry.is_dir()] - - dataset = [] - cleaning_dataset = [] - # Keep track of the all equals - all_equal_rows = [] - - for directory in tqdm(directories): - filepath = directory / "certificates.csv" - - epc_data_processor = EPCDataProcessor(filepath=filepath) - - epc_data_processor.pre_process() - - df = epc_data_processor.data - - cleaning_dataset.append(epc_data_processor.cleaning_averages) - - constituency_difference_records = [] - for uprn, property_data in df.groupby("uprn", observed=True): - - # If a property has changed building type, we can ignore the epc rating i.e. this should be 1 unique row - if any(property_data[MANDATORY_FIXED_FEATURES].nunique() > 1) or ( - pd.isnull(property_data[MANDATORY_FIXED_FEATURES]).sum().sum() > 0 - ): - continue - - # Fixed features - these are property attributes that shouldn't change over time - # Take the latest row for both the LATEST_FEILDS and MANDATORY FIELDS and combine all fields together - fixed_data = property_data[MANDATORY_FIXED_FEATURES + LATEST_FIELD].iloc[-1].to_dict() - - # We include the lodgement date here as we probably need to factor time into the - # model, since EPC standards and rigour have changed over time - variable_data = property_data[VARIABLE_DATA_FEATURES] - - uprn = str(uprn) - epc_records = [EPCRecord(uprn, **x, run_mode="training") for x in variable_data.to_dict(orient='records')] - - # TODO: We want to be able to provide value for the u values in the main pipeline so this will need to be part of the EPCRecord - - # We can use multiple types of comparison datasets - i.e. Compare consecutive records, or compare all permutations of records - property_difference_records, all_equal_rows = generate_property_difference_records(epc_records, uprn, directory, fixed_data, all_equal_rows) - - constituency_difference_records.extend(property_difference_records) - - constituency_dataset = TrainingDataset(datasets=constituency_difference_records, cleaned_lookup=cleaned_lookup) - - constituency_dataset_df = constituency_dataset.df - - dataset.append(constituency_dataset_df) - - print("Final all equal count: %s" % str(len(all_equal_rows))) - - # Store cleaning dataset in s3 as a parquet file - cleaning_dataset = pd.concat(cleaning_dataset) - save_dataframe_to_s3_parquet( - df=cleaning_dataset, - bucket_name="retrofit-data-dev", - file_key="sap_change_model/cleaning_dataset.parquet", - ) - - output = pd.concat(dataset) - - # TODO: move into difference record - # Remove any records that have huge swings in their floor area - # Move this into TrainingDataset as this won't be run in newdata - # output["tfa_diff_abs"] = abs(output["TOTAL_FLOOR_AREA_ENDING"] - output["TOTAL_FLOOR_AREA_STARTING"]) - # output["tfa_diff_prop"] = output["tfa_diff_abs"] / output["TOTAL_FLOOR_AREA_STARTING"] - # output = output[output["tfa_diff_prop"] < 0.5] - # output = output.drop(columns=["tfa_diff_abs", "tfa_diff_prop"]) - - # # TODO: move into EPCRecord record - # uvalue_columns = [col for col in output.columns if "thermal_transmittance" in col] - # for uvalue_col in uvalue_columns: - # output[uvalue_col] = pd.to_numeric(output[uvalue_col]) - - save_dataframe_to_s3_parquet( - df=output, - bucket_name="retrofit-data-dev", - file_key="sap_change_model/dataset.parquet", - ) - - # Store all_equal_rows - all_equal_rows = pd.DataFrame(all_equal_rows) - save_dataframe_to_s3_parquet( - df=all_equal_rows, - bucket_name="retrofit-data-dev", - file_key="sap_change_model/all_equal_rows.parquet", - ) - -from etl.epc.Pipeline import EPCPipeline - def main(): """ Orchestration function """ directories = [entry for entry in DATA_DIRECTORY.iterdir() if entry.is_dir()] + directories = directories[0:2] epc_pipeline = EPCPipeline(directories=directories, epc_data_processor=EPCDataProcessor(run_mode="training")) epc_pipeline.run() + # For testing + epc_pipeline.compiled_dataset + epc_pipeline.compiled_all_equal_rows + import pandas as pd + pd.concat(epc_pipeline.compiled_cleaning_averages) if __name__ == "__main__": From 654a0715fa0b0bda1139f1d1a4c2d35b13b984a0 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Wed, 20 Dec 2023 16:55:00 +0000 Subject: [PATCH 082/526] Added remaining windows unit tests --- recommendations/WindowsRecommendations.py | 2 +- .../tests/test_window_recommendations.py | 119 +++++++++++++++++- 2 files changed, 118 insertions(+), 3 deletions(-) diff --git a/recommendations/WindowsRecommendations.py b/recommendations/WindowsRecommendations.py index 0d3fb0af..572b27fa 100644 --- a/recommendations/WindowsRecommendations.py +++ b/recommendations/WindowsRecommendations.py @@ -79,7 +79,7 @@ class WindowsRecommendations: if self.property.is_listed: description += ". Secondary glazing recommended due to listed building status" elif self.property.is_heritage: - description += ". Secondary glazing recommended due to conservation area status" + description += ". Secondary glazing recommended due to herigate building status" elif self.property.in_conservation_area: description += ". Secondary glazing recommended due to conservation area status" diff --git a/recommendations/tests/test_window_recommendations.py b/recommendations/tests/test_window_recommendations.py index fbb67243..f7884d77 100644 --- a/recommendations/tests/test_window_recommendations.py +++ b/recommendations/tests/test_window_recommendations.py @@ -131,7 +131,122 @@ class TestWindowRecommendations: assert not recommender4.recommendation def test_partial_secondary_glazing(self): - pass + property_5 = Property( + id=1, + postcode='1', + address1='1', + epc_client=Mock(), + data={ + "county": "Wychavon", + "multi-glaze-proportion": 50 + } + ) + property_5.windows = {'original_description': 'Partial secondary glazing', 'has_glazing': True, + 'glazing_coverage': 'partial', + 'glazing_type': 'secondary', 'no_data': False} + property_5.number_of_windows = 7 + + recommender5 = WindowsRecommendations(property_instance=property_5, materials=materials) + + assert not recommender5.recommendation + + recommender5.recommend() + + assert recommender5.recommendation == [ + {'parts': [], 'type': 'window_glazing', 'description': 'Install secondary glazing to the remaining windows', + 'starting_u_value': None, 'new_u_value': None, 'sap_points': None, 'total': 1089.893952, + 'subtotal': 908.24496, 'vat': 181.64899200000002, 'contingency': 64.87464, 'preliminaries': 64.87464, + 'material': 729.0, 'profit': 129.74928, 'labour_hours': 13.0, 'labour_cost': 568.4928, + 'labour_days': 0.8125}] def test_single_glazed_restricted_measures(self): - pass + property_6 = Property( + id=1, + postcode='1', + address1='1', + epc_client=Mock(), + data={ + "county": "Wychavon", + "multi-glaze-proportion": 0 + } + ) + property_6.windows = {'original_description': 'Single glazed', 'has_glazing': False, 'glazing_coverage': None, + 'glazing_type': 'single', + 'no_data': False} + property_6.number_of_windows = 7 + property_6.restricted_measures = True + property_6.is_heritage = True + + recommender6 = WindowsRecommendations(property_instance=property_6, materials=materials) + + assert not recommender6.recommendation + + recommender6.recommend() + + assert recommender6.recommendation == [ + {'parts': [], 'type': 'window_glazing', + 'description': 'Install secondary glazing to all windows. Secondary ' + 'glazing recommended due to herigate building status', + 'starting_u_value': None, 'new_u_value': None, 'sap_points': None, + 'total': 1907.314416, 'subtotal': 1589.42868, 'vat': 317.885736, + 'contingency': 113.53062, 'preliminaries': 113.53062, + 'material': 1275.75, 'profit': 227.06124, 'labour_hours': 22.75, + 'labour_cost': 994.8624, 'labour_days': 1.421875} + ] + + def test_full_triple_glazed(self): + property_7 = Property( + id=1, + postcode='1', + address1='1', + epc_client=Mock(), + data={ + "county": "Wychavon", + "multi-glaze-proportion": 100 + } + ) + property_7.windows = {'original_description': 'Fully triple glazed', 'has_glazing': True, + 'glazing_coverage': 'full', + 'glazing_type': 'triple', 'no_data': False} + property_7.number_of_windows = 7 + + recommender7 = WindowsRecommendations(property_instance=property_7, materials=materials) + + assert not recommender7.recommendation + + recommender7.recommend() + + assert not recommender7.recommendation + + def test_partial_triple_glazed(self): + """ + We should just recommend double glazing to the remaining windows, since it's a cheaper option + """ + + property_8 = Property( + id=1, + postcode='1', + address1='1', + epc_client=Mock(), + data={ + "county": "Wychavon", + "multi-glaze-proportion": 80 + } + ) + property_8.windows = {'original_description': 'Mostly triple glazing', 'has_glazing': True, + 'glazing_coverage': 'most', + 'glazing_type': 'triple', 'no_data': False} + property_8.number_of_windows = 7 + + recommender8 = WindowsRecommendations(property_instance=property_8, materials=materials) + + assert not recommender8.recommendation + + recommender8.recommend() + + assert recommender8.recommendation == [ + {'parts': [], 'type': 'window_glazing', 'description': 'Install double glazing to the remaining windows', + 'starting_u_value': None, 'new_u_value': None, 'sap_points': None, 'total': 1634.840928, + 'subtotal': 1362.36744, 'vat': 272.47348800000003, 'contingency': 97.31196, 'preliminaries': 97.31196, + 'material': 364.5, 'profit': 194.62392, 'labour_hours': 13.0, 'labour_cost': 284.2464, + 'labour_days': 0.8125}] From c5af2c23bb1aa0a8a2ee34b65de0033ec0e70e18 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Wed, 20 Dec 2023 17:06:37 +0000 Subject: [PATCH 083/526] created basic script to create windows portfolio --- etl/testing_data/windows_portfolio.py | 43 +++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 etl/testing_data/windows_portfolio.py diff --git a/etl/testing_data/windows_portfolio.py b/etl/testing_data/windows_portfolio.py new file mode 100644 index 00000000..16b28c8f --- /dev/null +++ b/etl/testing_data/windows_portfolio.py @@ -0,0 +1,43 @@ +""" +This script will create an input csv for the recommendation engine and upload it to S3, which can be used for +testing +""" +import pandas as pd +from utils.s3 import save_csv_to_s3 + +USER_ID = 8 +PORTFOLIO_ID = 56 + + +def app(): + """ + This portfolio is for testing windows recommendations + :return: + """ + + test_file = pd.DataFrame( + [ + {"address": "3 Church Terrace", "postcode": "LE13 0PW", "Notes": None}, + {"address": "3, Main Street, Redmile", "postcode": "NG13 0GA", "Notes": None}, + {"address": "The Hollies Farm House, Church Walk, Little Dalby", "postcode": "LE14 2UQ", "Notes": None}, + {"address": "13 Main Street", "postcode": "LE14 2JU", "Notes": None}, + {"address": "8 The Crescent, Coston Road, Buckminster", "postcode": "NG33 5SF", "Notes": None}, + ] + ) + + # Store the data in s3 + filename = f"{USER_ID}/{PORTFOLIO_ID}/windows_portfolio_inputs.csv" + save_csv_to_s3( + dataframe=test_file, + bucket_name="retrofit-plan-inputs-dev", + file_name=filename + ) + + body = { + "portfolio_id": str(PORTFOLIO_ID), + "housing_type": "Social", + "goal": "Increase EPC", + "goal_value": "A", + "trigger_file_path": filename + } + print(body) From fceb6a1d9626e75aed7c699b518107ce227bac1c Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Wed, 20 Dec 2023 17:25:28 +0000 Subject: [PATCH 084/526] debugging windows recommenddations integration --- backend/app/db/models/materials.py | 1 + backend/app/plan/router.py | 5 +++++ backend/app/plan/utils.py | 11 ++++++++++- recommendations/Recommendations.py | 7 +++++++ recommendations/WindowsRecommendations.py | 4 ++-- 5 files changed, 25 insertions(+), 3 deletions(-) diff --git a/backend/app/db/models/materials.py b/backend/app/db/models/materials.py index f887fc25..97085d7a 100644 --- a/backend/app/db/models/materials.py +++ b/backend/app/db/models/materials.py @@ -18,6 +18,7 @@ class MaterialType(enum.Enum): exposed_floor_insulation = "exposed_floor_insulation" flat_roof_insulation = "flat_roof_insulation" room_roof_insulation = "room_roof_insulation" + windows_glazing = "windows_glazing" iwi_wall_demolition = "iwi_wall_demolition" iwi_vapour_barrier = "iwi_vapour_barrier" diff --git a/backend/app/plan/router.py b/backend/app/plan/router.py index 7a6df2da..f89395cc 100644 --- a/backend/app/plan/router.py +++ b/backend/app/plan/router.py @@ -61,6 +61,7 @@ async def trigger_plan(body: PlanTriggerRequest): logger.info("Getting the inputs") epc_client = EpcClient(auth_token=get_settings().EPC_AUTH_TOKEN) plan_input = read_csv_from_s3(bucket_name=get_settings().PLAN_TRIGGER_BUCKET, filepath=body.trigger_file_path) + uprn_filenames = read_dataframe_from_s3_parquet( bucket_name=get_settings().DATA_BUCKET, file_key="spatial/filename_meta.parquet" ) @@ -126,6 +127,10 @@ async def trigger_plan(body: PlanTriggerRequest): for p in input_properties: + # TODO: TEMP + if p.address1 == "The Hollies Farm House, Church Walk, Little Dalby": + continue + # Property recommendations p.get_components(cleaned) diff --git a/backend/app/plan/utils.py b/backend/app/plan/utils.py index 7aba99c9..4185c30e 100644 --- a/backend/app/plan/utils.py +++ b/backend/app/plan/utils.py @@ -175,11 +175,20 @@ def create_recommendation_scoring_data( scoring_dict["LOW_ENERGY_LIGHTING_ENDING"] = 100 scoring_dict["LIGHTING_ENERGY_EFF_STARTING"] = "Very Good" + if recommendation["type"] == "windows_glazing": + scoring_dict["MULTI_GLAZE_PROPORTION_ENDING"] = 100 + scoring_dict["WINDOWS_ENERGY_EFF_ENDING"] = "Average" + if scoring_dict["glazing_type_ENDING"] == "multiple": + pass + else: + raise NotImplementedError("Implement me") + if recommendation["type"] not in [ "mechanical_ventilation", "sealing_open_fireplace", "low_energy_lighting", "internal_wall_insulation", "external_wall_insulation", "cavity_wall_insulation", "loft_insulation", "room_roof_insulation", "flat_roof_insulation", - "solid_floor_insulation", "suspended_floor_insulation", "exposed_floor_insulation" + "solid_floor_insulation", "suspended_floor_insulation", "exposed_floor_insulation", + "windows_glazing" ]: raise NotImplementedError("Implement me") diff --git a/recommendations/Recommendations.py b/recommendations/Recommendations.py index 60cdb696..4b54cb52 100644 --- a/recommendations/Recommendations.py +++ b/recommendations/Recommendations.py @@ -6,6 +6,7 @@ from recommendations.RoofRecommendations import RoofRecommendations from recommendations.VentilationRecommendations import VentilationRecommendations from recommendations.FireplaceRecommendations import FireplaceRecommendations from recommendations.LightingRecommendations import LightingRecommendations +from recommendations.WindowsRecommendations import WindowsRecommendations from backend.ml_models.AnnualBillSavings import AnnualBillSavings @@ -35,6 +36,7 @@ class Recommendations: ) self.fireplace_recommender = FireplaceRecommendations(property_instance=property_instance) self.lighting_recommender = LightingRecommendations(property_instance=property_instance, materials=materials) + self.windows_recommender = WindowsRecommendations(property_instance=property_instance, materials=materials) def recommend(self): @@ -77,6 +79,11 @@ class Recommendations: if self.lighting_recommender.recommendation: property_recommendations.append(self.lighting_recommender.recommendation) + # Windows recommendations + self.windows_recommender.recommend() + if self.windows_recommender.recommendation: + property_recommendations.append(self.windows_recommender.recommendation) + # We insert temporary ids into the recommendations which is important for the optimiser later property_recommendations = self.insert_temp_recommendation_id(property_recommendations) diff --git a/recommendations/WindowsRecommendations.py b/recommendations/WindowsRecommendations.py index 572b27fa..6246fd95 100644 --- a/recommendations/WindowsRecommendations.py +++ b/recommendations/WindowsRecommendations.py @@ -56,7 +56,7 @@ class WindowsRecommendations: # We scale the number of windows based on the proportion of existing glazing if self.property.data["multi-glaze-proportion"] != "": - n_windows_scalar = 1 - (self.property.data["multi-glaze-proportion"] / 100) + n_windows_scalar = 1 - (int(self.property.data["multi-glaze-proportion"]) / 100) else: n_windows_scalar = self.COVERAGE_MAP.get(self.property.windows["glazing_coverage"], 1) @@ -86,7 +86,7 @@ class WindowsRecommendations: self.recommendation = [ { "parts": [], - "type": "window_glazing", + "type": "windows_glazing", "description": description, "starting_u_value": None, "new_u_value": None, From e65d190e1938eddfb28d549ee1a760a591833d0f Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Thu, 21 Dec 2023 11:23:30 +0000 Subject: [PATCH 085/526] removed todo --- .idea/Model.iml | 2 +- .idea/misc.xml | 2 +- backend/app/plan/router.py | 7 ------- backend/app/plan/utils.py | 2 +- etl/testing_data/windows_portfolio.py | 2 +- 5 files changed, 4 insertions(+), 11 deletions(-) diff --git a/.idea/Model.iml b/.idea/Model.iml index 4413bb06..b0f9c00d 100644 --- a/.idea/Model.iml +++ b/.idea/Model.iml @@ -7,7 +7,7 @@ - + diff --git a/.idea/misc.xml b/.idea/misc.xml index 6f308057..1122b380 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -3,7 +3,7 @@ - + diff --git a/backend/app/plan/router.py b/backend/app/plan/router.py index f89395cc..952d4982 100644 --- a/backend/app/plan/router.py +++ b/backend/app/plan/router.py @@ -118,19 +118,12 @@ async def trigger_plan(body: PlanTriggerRequest): logger.info("Getting components and epc recommendations") - # TODO: Move this to a class. We probably want a Recommender class which takes the injects the optimisers - # in as a dependency and then the optimisers can take the input measures in as part of the setup() method - recommendations = {} recommendations_scoring_data = [] property_scoring_data = {} for p in input_properties: - # TODO: TEMP - if p.address1 == "The Hollies Farm House, Church Walk, Little Dalby": - continue - # Property recommendations p.get_components(cleaned) diff --git a/backend/app/plan/utils.py b/backend/app/plan/utils.py index 4185c30e..90042fa2 100644 --- a/backend/app/plan/utils.py +++ b/backend/app/plan/utils.py @@ -178,7 +178,7 @@ def create_recommendation_scoring_data( if recommendation["type"] == "windows_glazing": scoring_dict["MULTI_GLAZE_PROPORTION_ENDING"] = 100 scoring_dict["WINDOWS_ENERGY_EFF_ENDING"] = "Average" - if scoring_dict["glazing_type_ENDING"] == "multiple": + if scoring_dict["glazing_type_ENDING"] in ["multiple", "double"]: pass else: raise NotImplementedError("Implement me") diff --git a/etl/testing_data/windows_portfolio.py b/etl/testing_data/windows_portfolio.py index 16b28c8f..356d107e 100644 --- a/etl/testing_data/windows_portfolio.py +++ b/etl/testing_data/windows_portfolio.py @@ -19,7 +19,7 @@ def app(): [ {"address": "3 Church Terrace", "postcode": "LE13 0PW", "Notes": None}, {"address": "3, Main Street, Redmile", "postcode": "NG13 0GA", "Notes": None}, - {"address": "The Hollies Farm House, Church Walk, Little Dalby", "postcode": "LE14 2UQ", "Notes": None}, + {"address": "Manor House, Kennel Lane, Reepham", "postcode": "LN3 4DZ", "Notes": None}, {"address": "13 Main Street", "postcode": "LE14 2JU", "Notes": None}, {"address": "8 The Crescent, Coston Road, Buckminster", "postcode": "NG33 5SF", "Notes": None}, ] From 5de6b3f02968eab9dc04c46024253bb4ce20a4aa Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Thu, 21 Dec 2023 11:27:22 +0000 Subject: [PATCH 086/526] fixing unit tests --- .../epc_attributes/WindowAttributes.py | 2 +- etl/epc_clean/tests/test_roof_attributes.py | 18 ++++++++++++------ 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/etl/epc_clean/epc_attributes/WindowAttributes.py b/etl/epc_clean/epc_attributes/WindowAttributes.py index cd767359..ce0b156a 100644 --- a/etl/epc_clean/epc_attributes/WindowAttributes.py +++ b/etl/epc_clean/epc_attributes/WindowAttributes.py @@ -80,7 +80,7 @@ class WindowAttributes(Definitions): break # If we didn't find any coverage or type, we assume full coverage - if not result["glazing_coverage"]: + if (not result["glazing_coverage"]) & (result["glazing_type"] != "single"): result["glazing_coverage"] = "full" # We reset some values if the glazing is single diff --git a/etl/epc_clean/tests/test_roof_attributes.py b/etl/epc_clean/tests/test_roof_attributes.py index b0663a3e..481beedc 100644 --- a/etl/epc_clean/tests/test_roof_attributes.py +++ b/etl/epc_clean/tests/test_roof_attributes.py @@ -3,12 +3,13 @@ from pathlib import Path from etl.epc_clean.tests.test_data.test_roof_attributes_cases import clean_roof_test_cases from etl.epc_clean.epc_attributes.RoofAttributes import RoofAttributes + # For local testing -if __file__ == "": - input_data_path = Path("./model_data/tests/test_data/EpcClean_inputs.obj") -else: - current_file_path = Path(__file__) - input_data_path = current_file_path.parent / 'test_data' / 'EpcClean_inputs.obj' +# if __file__ == "": +# input_data_path = Path("./model_data/tests/test_data/EpcClean_inputs.obj") +# else: +# current_file_path = Path(__file__) +# input_data_path = current_file_path.parent / 'test_data' / 'EpcClean_inputs.obj' class TestRoofAttributes: @@ -88,7 +89,12 @@ class TestRoofAttributes: def test_clean_roof_no_description(self): roof = RoofAttributes('').process() - assert roof == {} + assert roof == { + 'thermal_transmittance': False, 'thermal_transmittance_unit': False, 'is_pitched': False, + 'is_roof_room': False, 'is_loft': False, 'is_flat': False, 'is_thatched': False, + 'is_at_rafters': False, 'is_assumed': False, 'has_dwelling_above': False, 'is_valid': False, + 'insulation_thickness': False + } def test_clean_roof_edge_cases(self): # Insulation thickness edge case From 069b59f2cee92b8a80e1595bd1d7a575f012ee45 Mon Sep 17 00:00:00 2001 From: Michael Duong Date: Thu, 21 Dec 2023 11:39:42 +0000 Subject: [PATCH 087/526] refactor near complete --- backend/app/plan/router.py | 4 ++++ etl/epc/DataProcessor.py | 2 +- etl/epc/Dataset.py | 26 +++++++++++++------------- etl/epc/Pipeline.py | 27 +++++++++++++++++++++++++-- etl/epc/Record.py | 4 ++-- 5 files changed, 45 insertions(+), 18 deletions(-) diff --git a/backend/app/plan/router.py b/backend/app/plan/router.py index ef148ed0..996ddcfd 100644 --- a/backend/app/plan/router.py +++ b/backend/app/plan/router.py @@ -145,6 +145,10 @@ async def trigger_plan(body: PlanTriggerRequest): recommendations[p.id] = property_recommendations + from etl.epc.Pipeline import EPCPipeline + from etl.epc.DataProcessor import EPCDataProcessor + newdata_pipeline = EPCPipeline(epc_data_processor=EPCDataProcessor(data=p.get_model_data(), run_mode="newdata"), run_mode="newdata") + # TODO: p.get_model_data() -> EPCRecord # Finally, we'll prepare data for predicting the impact on SAP diff --git a/etl/epc/DataProcessor.py b/etl/epc/DataProcessor.py index 7f41c96f..48b62dc7 100644 --- a/etl/epc/DataProcessor.py +++ b/etl/epc/DataProcessor.py @@ -83,7 +83,7 @@ class EPCDataProcessor: raise ValueError("Run mode must be either training or newdata") self.run_mode = run_mode if not violation_mode else "newdata" - def prepare_data(self, filepath: Path | str) -> None: + def prepare_data(self, filepath: Path | str | None = None) -> None: """ Given the run mode, we apply the relevant pipeline steps Ignore step is used to highlight which steps are not needed in newdata diff --git a/etl/epc/Dataset.py b/etl/epc/Dataset.py index b0c7f4c7..92efd0b3 100644 --- a/etl/epc/Dataset.py +++ b/etl/epc/Dataset.py @@ -486,19 +486,19 @@ class TrainingDataset(BaseDataset): pd.to_datetime(lodgement_date) - pd.to_datetime(EARLIEST_EPC_DATE) ).dt.days - def __add__(self, other) -> "TrainingDataset": - if not isinstance(other, TrainingDataset): - raise TypeError("Addition can only be performed with another instance of TrainingDataset") - return TrainingDataset(self.datasets + other.datasets) + # def __add__(self, other) -> "TrainingDataset": + # if not isinstance(other, TrainingDataset): + # raise TypeError("Addition can only be performed with another instance of TrainingDataset") + # return TrainingDataset(self.datasets + other.datasets) - def __radd__(self, other): - """ - Required for sum() to work - """ - if isinstance(other, int): - return self - else: - return self.__add__(other) + # def __radd__(self, other): + # """ + # Required for sum() to work + # """ + # if isinstance(other, int): + # return self + # else: + # return self.__add__(other) class NewDataset(BaseDataset): """ @@ -506,7 +506,7 @@ class NewDataset(BaseDataset): """ def __init__(self, datasets: List[EPCDifferenceRecord]) -> None: - self.pipeline_steps = self.pipeline_factory("newdata") + # self.pipeline_steps = self.pipeline_factory("newdata") self.datasets = datasets def __add__(self, other) -> "NewDataset": diff --git a/etl/epc/Pipeline.py b/etl/epc/Pipeline.py index c4af6911..de827dee 100644 --- a/etl/epc/Pipeline.py +++ b/etl/epc/Pipeline.py @@ -66,8 +66,8 @@ class EPCPipeline: def __init__( self, - directories: List[Path], epc_data_processor: EPCDataProcessor, + directories: List[Path] | None = None, run_mode="training", epc_local_file="certificates.csv", epc_bucket_name="retrofit-data-dev", @@ -102,6 +102,29 @@ class EPCPipeline: """ Entrypoint to run the pipeline """ + if self.run_mode == "training": + self.run_training_dataset_pipeline() + elif self.run_mode == "newdata": + self.run_newdata_dataset_pipeline() + else: + raise ValueError("Run mode defined needs to be in 'training' or 'newdata'") + + def run_newdata_dataset_pipeline(self): + """ + Main function to run the newdata pipeline + """ + self.epc_data_processor.prepare_data() + data = self.epc_data_processor.data + + epc_records = [EPCRecord(**x, run_mode="newdata") for x in data.to_dict(orient='records')] + + def run_training_dataset_pipeline(self): + """ + Main function to run the training dataset generation pipeline + """ + if self.directories is None: + raise ValueError("Directories not specified - Unable to run Training pipeline") + for directory in self.directories: self.process_directory(directory) @@ -169,7 +192,7 @@ class EPCPipeline: variable_data = property_data[VARIABLE_DATA_FEATURES] uprn = str(uprn) - epc_records = [EPCRecord(uprn, **x) for x in variable_data.to_dict(orient='records')] + epc_records = [EPCRecord(uprn, **x, run_mode="training") for x in variable_data.to_dict(orient='records')] # TODO: We want to be able to provide value for the u values in the main pipeline so this will need to be part of the EPCRecord diff --git a/etl/epc/Record.py b/etl/epc/Record.py index f8c72969..f2b3f519 100644 --- a/etl/epc/Record.py +++ b/etl/epc/Record.py @@ -5,7 +5,7 @@ from etl.epc.ValidationConfiguration import ( EPCDifferenceRecordValidationConfiguration, EPCDifferenceRecordFixedDataValidationConfiguration ) -from typing import Union, List +from typing import Any, Union, List from etl.epc.settings import ( RDSAP_RESPONSE, HEAT_DEMAND_RESPONSE, @@ -242,7 +242,7 @@ class EPCRecord: return self.__dict__[RDSAP_RESPONSE] <= other.__dict__[RDSAP_RESPONSE] - def get(self, key: Union[str, List[str]], return_asdict: bool = False, key_suffix: str = None): + def get(self, key: Union[str, List[str]], return_asdict: bool = False, key_suffix: str | None = None) -> Any: """ This method will return the value of the key """ From 10c9a6f472b6b3ebcbd99842529d24fb3548a10e Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Thu, 21 Dec 2023 14:09:32 +0000 Subject: [PATCH 088/526] fixed all recommendations apart from windows --- backend/tests/test_property.py | 15 ++++++++++----- etl/epc/property_change_app.py | 13 +++++++++++++ .../tests/test_floor_recommendations.py | 4 ++++ .../tests/test_lighting_recommendations.py | 7 +++---- 4 files changed, 30 insertions(+), 9 deletions(-) diff --git a/backend/tests/test_property.py b/backend/tests/test_property.py index 871c9291..0113d690 100644 --- a/backend/tests/test_property.py +++ b/backend/tests/test_property.py @@ -37,7 +37,8 @@ mock_epc_response = { "floor-height": 2.5, "total-floor-area": 100, "construction-age-band": "England and Wales: 1967-1975", - "floor-description": "Floor Description" + "floor-description": "Floor Description", + "floor-level": "Ground" }, { "lmk-key": 2, @@ -68,7 +69,8 @@ mock_epc_response = { "floor-height": 2.5, "total-floor-area": 100, "construction-age-band": "England and Wales: 1967-1975", - "floor-description": "Floor Description" + "floor-description": "Floor Description", + "floor-level": "Ground" } ] } @@ -100,7 +102,8 @@ mock_epc_response_dupe = { "floor-height": 2.5, "total-floor-area": 100, "construction-age-band": "England and Wales: 1967-1975", - "floor-description": "Floor Description" + "floor-description": "Floor Description", + "floor-level": "Ground" }, { "lmk-key": 2, @@ -128,7 +131,8 @@ mock_epc_response_dupe = { "floor-height": 2.5, "total-floor-area": 100, "construction-age-band": "England and Wales: 1967-1975", - "floor-description": "Floor Description" + "floor-description": "Floor Description", + "floor-level": "Ground" }, { "lmk-key": 3, @@ -156,7 +160,8 @@ mock_epc_response_dupe = { "floor-height": 2.5, "total-floor-area": 100, "construction-age-band": "England and Wales: 1967-1975", - "floor-description": "Floor Description" + "floor-description": "Floor Description", + "floor-level": "Ground" } ] } diff --git a/etl/epc/property_change_app.py b/etl/epc/property_change_app.py index 4f49f6da..f8c293a1 100644 --- a/etl/epc/property_change_app.py +++ b/etl/epc/property_change_app.py @@ -631,6 +631,19 @@ def app(): file_key="sap_change_model/all_equal_rows.parquet", ) + from utils.s3 import read_dataframe_from_s3_parquet + dataset = read_dataframe_from_s3_parquet( + bucket_name="retrofit-data-dev", + file_key="sap_change_model/dataset_test.parquet", + ) + + z = dataset[dataset["CONSTITUENCY"].isin(["E14000707", "E14000909"])] + z["CONSTITUENCY"].value_counts() + + z[z["CONSTITUENCY"] == "E14000909"]["UPRN"].sample(1) + + self.data[self.data["UPRN"] == "100030549358"] + if __name__ == "__main__": app() diff --git a/recommendations/tests/test_floor_recommendations.py b/recommendations/tests/test_floor_recommendations.py index 43e98d60..700d33d3 100644 --- a/recommendations/tests/test_floor_recommendations.py +++ b/recommendations/tests/test_floor_recommendations.py @@ -68,6 +68,7 @@ class TestFloorRecommendations: input_properties[2].wall_type = "solid brick" input_properties[2].floor_type = "suspended" input_properties[2].number_of_floors = 1 + input_properties[2].floor_level = 0 recommender = FloorRecommendations(property_instance=input_properties[2], materials=materials) assert recommender.estimated_u_value is None @@ -93,6 +94,8 @@ class TestFloorRecommendations: input_properties[3].insulation_floor_area = 100 input_properties[3].insulation_wall_area = 100 input_properties[3].number_of_floors = 1 + input_properties[3].floor_level = 0 + recommender = FloorRecommendations(property_instance=input_properties[3], materials=materials) assert recommender.estimated_u_value is None recommender.recommend() @@ -114,6 +117,7 @@ class TestFloorRecommendations: input_properties[4].wall_type = "solid brick" input_properties[4].floor_type = "solid" input_properties[4].number_of_floors = 1 + input_properties[4].floor_level = 0 # In this case, we have no county, so in this case, it should yse the local-authority-label if possible input_properties[4].data["county"] = "" diff --git a/recommendations/tests/test_lighting_recommendations.py b/recommendations/tests/test_lighting_recommendations.py index 06d1163f..5a4545eb 100644 --- a/recommendations/tests/test_lighting_recommendations.py +++ b/recommendations/tests/test_lighting_recommendations.py @@ -40,8 +40,7 @@ class TestLightingRecommendations: assert lr.recommendation == [ {'parts': [], 'type': 'low_energy_lighting', 'description': 'Install low energy lighting in 4 outlets', - 'starting_u_value': None, 'new_u_value': None, 'sap_points': 0.4, 'total': 458.976, 'subtotal': 382.48, - 'vat': 76.49600000000001, 'contingency': 27.320000000000007, 'preliminaries': 27.320000000000007, - 'material': 80.0, 'profit': 54.640000000000015, 'labour_hours': 3.2, 'labour_days': 0.4, - 'labour_cost': 193.20000000000002} + 'starting_u_value': None, 'new_u_value': None, 'sap_points': 0.4, 'total': 240.24, + 'subtotal': 200.20000000000002, 'vat': 40.040000000000006, 'contingency': 14.3, 'preliminaries': 14.3, + 'material': 80.0, 'profit': 28.6, 'labour_hours': 3.2, 'labour_days': 0.4, 'labour_cost': 63.0} ] From 7282800240d31732cf4c200fe7ea60af9b0647a6 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Thu, 21 Dec 2023 14:11:47 +0000 Subject: [PATCH 089/526] Fixed unit tests --- recommendations/tests/test_window_recommendations.py | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/recommendations/tests/test_window_recommendations.py b/recommendations/tests/test_window_recommendations.py index f7884d77..359dd962 100644 --- a/recommendations/tests/test_window_recommendations.py +++ b/recommendations/tests/test_window_recommendations.py @@ -36,7 +36,7 @@ class TestWindowRecommendations: recommender.recommend() assert recommender.recommendation == [ - {'parts': [], 'type': 'window_glazing', 'description': 'Install double glazing to all windows', + {'parts': [], 'type': 'windows_glazing', 'description': 'Install double glazing to all windows', 'starting_u_value': None, 'new_u_value': None, 'sap_points': None, 'total': 5721.943248, 'subtotal': 4768.28604, 'vat': 953.6572080000001, 'contingency': 340.59186, 'preliminaries': 340.59186, 'material': 1275.75, 'profit': 681.18372, 'labour_hours': 45.5, 'labour_cost': 994.8624, @@ -71,7 +71,7 @@ class TestWindowRecommendations: recommender2.recommend() assert recommender2.recommendation == [ - {'parts': [], 'type': 'window_glazing', 'description': 'Install double glazing to the remaining windows', + {'parts': [], 'type': 'windows_glazing', 'description': 'Install double glazing to the remaining windows', 'starting_u_value': None, 'new_u_value': None, 'sap_points': None, 'total': 4087.10232, 'subtotal': 3405.9186, 'vat': 681.18372, 'contingency': 243.2799, 'preliminaries': 243.2799, 'material': 911.25, 'profit': 486.5598, 'labour_hours': 32.5, 'labour_cost': 710.6160000000001, @@ -153,7 +153,8 @@ class TestWindowRecommendations: recommender5.recommend() assert recommender5.recommendation == [ - {'parts': [], 'type': 'window_glazing', 'description': 'Install secondary glazing to the remaining windows', + {'parts': [], 'type': 'windows_glazing', + 'description': 'Install secondary glazing to the remaining windows', 'starting_u_value': None, 'new_u_value': None, 'sap_points': None, 'total': 1089.893952, 'subtotal': 908.24496, 'vat': 181.64899200000002, 'contingency': 64.87464, 'preliminaries': 64.87464, 'material': 729.0, 'profit': 129.74928, 'labour_hours': 13.0, 'labour_cost': 568.4928, @@ -184,7 +185,7 @@ class TestWindowRecommendations: recommender6.recommend() assert recommender6.recommendation == [ - {'parts': [], 'type': 'window_glazing', + {'parts': [], 'type': 'windows_glazing', 'description': 'Install secondary glazing to all windows. Secondary ' 'glazing recommended due to herigate building status', 'starting_u_value': None, 'new_u_value': None, 'sap_points': None, @@ -245,7 +246,7 @@ class TestWindowRecommendations: recommender8.recommend() assert recommender8.recommendation == [ - {'parts': [], 'type': 'window_glazing', 'description': 'Install double glazing to the remaining windows', + {'parts': [], 'type': 'windows_glazing', 'description': 'Install double glazing to the remaining windows', 'starting_u_value': None, 'new_u_value': None, 'sap_points': None, 'total': 1634.840928, 'subtotal': 1362.36744, 'vat': 272.47348800000003, 'contingency': 97.31196, 'preliminaries': 97.31196, 'material': 364.5, 'profit': 194.62392, 'labour_hours': 13.0, 'labour_cost': 284.2464, From c6247f331a11a3ebb5150d413661a3822d9222c3 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Thu, 21 Dec 2023 15:33:17 +0000 Subject: [PATCH 090/526] integrating windows recommendations into engine api --- .idea/Model.iml | 2 +- .idea/misc.xml | 2 +- backend/app/plan/router.py | 4 +--- backend/app/plan/utils.py | 15 +++++++++++++-- backend/ml_models/Valuation.py | 9 ++++++++- recommendations/WindowsRecommendations.py | 3 ++- 6 files changed, 26 insertions(+), 9 deletions(-) diff --git a/.idea/Model.iml b/.idea/Model.iml index b0f9c00d..4413bb06 100644 --- a/.idea/Model.iml +++ b/.idea/Model.iml @@ -7,7 +7,7 @@ - + diff --git a/.idea/misc.xml b/.idea/misc.xml index 1122b380..6f308057 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -3,7 +3,7 @@ - + diff --git a/backend/app/plan/router.py b/backend/app/plan/router.py index 952d4982..a284e50b 100644 --- a/backend/app/plan/router.py +++ b/backend/app/plan/router.py @@ -544,9 +544,7 @@ async def trigger_plan(body: PlanTriggerRequest): valuations = PropertyValuation.estimate(property_instance=p, target_epc=new_epc) - property_valuation_increases.append( - valuations["average_increased_value"] - valuations["current_value"] - ) + property_valuation_increases.append(valuations["average_increase"]) # Commit the session after each batch session.commit() diff --git a/backend/app/plan/utils.py b/backend/app/plan/utils.py index 90042fa2..b82be297 100644 --- a/backend/app/plan/utils.py +++ b/backend/app/plan/utils.py @@ -178,10 +178,21 @@ def create_recommendation_scoring_data( if recommendation["type"] == "windows_glazing": scoring_dict["MULTI_GLAZE_PROPORTION_ENDING"] = 100 scoring_dict["WINDOWS_ENERGY_EFF_ENDING"] = "Average" - if scoring_dict["glazing_type_ENDING"] in ["multiple", "double"]: + + is_secondary_glazing = recommendation["is_secondary_glazing"] + + if scoring_dict["glazing_type_ENDING"] == "multiple": pass + elif scoring_dict["glazing_type_ENDING"] == "single": + scoring_dict["glazing_type_ENDING"] = "secondary" if is_secondary_glazing else "double" + elif scoring_dict["glazing_type_ENDING"] == "double": + scoring_dict["glazing_type_ENDING"] = "multiple" if is_secondary_glazing else "double" + elif scoring_dict["glazing_type_ENDING"] == "secondary": + scoring_dict["glazing_type_ENDING"] = "secondary" if is_secondary_glazing else "multiple" + elif scoring_dict["glazing_type_ENDING"] in ["triple", "high performance"]: + scoring_dict["glazing_type_ENDING"] = "multiple" else: - raise NotImplementedError("Implement me") + raise ValueError("Invalid glazing type - implement me") if recommendation["type"] not in [ "mechanical_ventilation", "sealing_open_fireplace", "low_energy_lighting", diff --git a/backend/ml_models/Valuation.py b/backend/ml_models/Valuation.py index f5a7e2bb..cdbbe698 100644 --- a/backend/ml_models/Valuation.py +++ b/backend/ml_models/Valuation.py @@ -93,7 +93,13 @@ class PropertyValuation: value = cls.UPRN_VALUE_LOOKUP.get(property_instance.uprn) if not value: - raise ValueError("Have not implemented valuation for this property") + return { + "current_value": None, + "lower_bound_increased_value": None, + "upper_bound_increased_value": None, + "average_increased_value": None, + "average_increase": None + } current_epc = property_instance.data["current-energy-rating"] # We get the spectrum of ratings between the current and target EPC @@ -119,4 +125,5 @@ class PropertyValuation: "lower_bound_increased_value": value * (1 + min_increase), "upper_bound_increased_value": value * (1 + max_increase), "average_increased_value": value * (1 + avg_increase), + "average_increase": value * (1 + avg_increase) - value } diff --git a/recommendations/WindowsRecommendations.py b/recommendations/WindowsRecommendations.py index 6246fd95..b6ecd099 100644 --- a/recommendations/WindowsRecommendations.py +++ b/recommendations/WindowsRecommendations.py @@ -91,6 +91,7 @@ class WindowsRecommendations: "starting_u_value": None, "new_u_value": None, "sap_points": None, - **cost_result + **cost_result, + "is_secondary_glazing": is_secondary_glazing } ] From 0b70c127f4aa78f4459b6729788f584e9e9c8bfc Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Thu, 21 Dec 2023 16:04:05 +0000 Subject: [PATCH 091/526] Added is_secondary_glazing to unit tests --- .idea/Model.iml | 2 +- .idea/misc.xml | 2 +- recommendations/tests/test_window_recommendations.py | 10 +++++----- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/.idea/Model.iml b/.idea/Model.iml index 4413bb06..b0f9c00d 100644 --- a/.idea/Model.iml +++ b/.idea/Model.iml @@ -7,7 +7,7 @@ - + diff --git a/.idea/misc.xml b/.idea/misc.xml index 6f308057..1122b380 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -3,7 +3,7 @@ - + diff --git a/recommendations/tests/test_window_recommendations.py b/recommendations/tests/test_window_recommendations.py index 359dd962..ac461594 100644 --- a/recommendations/tests/test_window_recommendations.py +++ b/recommendations/tests/test_window_recommendations.py @@ -40,7 +40,7 @@ class TestWindowRecommendations: 'starting_u_value': None, 'new_u_value': None, 'sap_points': None, 'total': 5721.943248, 'subtotal': 4768.28604, 'vat': 953.6572080000001, 'contingency': 340.59186, 'preliminaries': 340.59186, 'material': 1275.75, 'profit': 681.18372, 'labour_hours': 45.5, 'labour_cost': 994.8624, - 'labour_days': 2.84375}] + 'labour_days': 2.84375, 'is_secondary_glazing': False}] def test_partial_double_glazed(self): """ @@ -75,7 +75,7 @@ class TestWindowRecommendations: 'starting_u_value': None, 'new_u_value': None, 'sap_points': None, 'total': 4087.10232, 'subtotal': 3405.9186, 'vat': 681.18372, 'contingency': 243.2799, 'preliminaries': 243.2799, 'material': 911.25, 'profit': 486.5598, 'labour_hours': 32.5, 'labour_cost': 710.6160000000001, - 'labour_days': 2.03125}] + 'labour_days': 2.03125, 'is_secondary_glazing': False}] def test_fully_double_glazed(self): """ @@ -158,7 +158,7 @@ class TestWindowRecommendations: 'starting_u_value': None, 'new_u_value': None, 'sap_points': None, 'total': 1089.893952, 'subtotal': 908.24496, 'vat': 181.64899200000002, 'contingency': 64.87464, 'preliminaries': 64.87464, 'material': 729.0, 'profit': 129.74928, 'labour_hours': 13.0, 'labour_cost': 568.4928, - 'labour_days': 0.8125}] + 'labour_days': 0.8125, 'is_secondary_glazing': True}] def test_single_glazed_restricted_measures(self): property_6 = Property( @@ -192,7 +192,7 @@ class TestWindowRecommendations: 'total': 1907.314416, 'subtotal': 1589.42868, 'vat': 317.885736, 'contingency': 113.53062, 'preliminaries': 113.53062, 'material': 1275.75, 'profit': 227.06124, 'labour_hours': 22.75, - 'labour_cost': 994.8624, 'labour_days': 1.421875} + 'labour_cost': 994.8624, 'labour_days': 1.421875, 'is_secondary_glazing': True} ] def test_full_triple_glazed(self): @@ -250,4 +250,4 @@ class TestWindowRecommendations: 'starting_u_value': None, 'new_u_value': None, 'sap_points': None, 'total': 1634.840928, 'subtotal': 1362.36744, 'vat': 272.47348800000003, 'contingency': 97.31196, 'preliminaries': 97.31196, 'material': 364.5, 'profit': 194.62392, 'labour_hours': 13.0, 'labour_cost': 284.2464, - 'labour_days': 0.8125}] + 'labour_days': 0.8125, 'is_secondary_glazing': False}] From 29599c515434260fd81aabaff7349bc046cf9897 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Fri, 22 Dec 2023 15:45:51 +0000 Subject: [PATCH 092/526] ha4 wip --- backend/SearchEpc.py | 24 ++++- etl/eligibility/ha_15_32/app.py | 6 +- etl/eligibility/ha_15_32/ha4_app.py | 158 ++++++++++++++++++++++++++++ 3 files changed, 183 insertions(+), 5 deletions(-) create mode 100644 etl/eligibility/ha_15_32/ha4_app.py diff --git a/backend/SearchEpc.py b/backend/SearchEpc.py index 16c2a8c8..d8ea6b78 100644 --- a/backend/SearchEpc.py +++ b/backend/SearchEpc.py @@ -41,7 +41,9 @@ class SearchEpc: address2: str = None, address3: str = None, address4: str = None, - max_retries: int = None + max_retries: int = None, + uprn: [int, None] = None, + size=None, ): """ Address lines 1 and postcode are mandatory fields. The other address lines are optional @@ -51,6 +53,10 @@ class SearchEpc: :param address2: string, optional, propery's address line 2 :param address3: string, optional, propery's address line 3 :param address4: string, optional, propery's address line 4 + :param max_retries: int, optional, number of retries to make when searching the api + :param uprn: int, optional, the uprn of the property + :param size: int, optional, the number of results to return. If not provided, defaults to 25 which is the api's + default """ self.address1 = address1 @@ -58,6 +64,7 @@ class SearchEpc: self.address2 = address2 self.address3 = address3 self.address4 = address4 + self.uprn = uprn self.max_retries = max_retries if max_retries is not None else self.MAX_RETRIES @@ -65,14 +72,23 @@ class SearchEpc: self.data = None + self.size = size if size is not None else 25 + def search(self): # Get the EPC data with retries for retry in range(self.max_retries): try: - response = self.client.domestic.search( - params={"address": self.address1, "postcode": self.postcode} - ) + + if self.uprn: + # We use the direct call method inside, since we need to implement uprn as a valid + # parameter for the search function + url = os.path.join(self.client.domestic.host, "search") + response = self.client.domestic.call(method="get", url=url, params={"uprn": self.uprn}) + else: + response = self.client.domestic.search( + params={"address": self.address1, "postcode": self.postcode}, size=self.size + ) if response: self.data = response diff --git a/etl/eligibility/ha_15_32/app.py b/etl/eligibility/ha_15_32/app.py index 3c7ae901..ccceb05f 100644 --- a/etl/eligibility/ha_15_32/app.py +++ b/etl/eligibility/ha_15_32/app.py @@ -336,7 +336,9 @@ def merge_ha_15(asset_list, identified_addresses): return merged_data, dropped_identified_merge_keys -def prepare_model_data_row(property_id, modelling_epc, cleaned, cleaning_data, created_at): +def prepare_model_data_row( + property_id, modelling_epc, cleaned, cleaning_data, created_at, old_data=None, full_sap_epc=None +): """ This function prepares the data for modelling, in the same fashion as the recommendation engine With up-coming refactoring, this will change @@ -350,6 +352,8 @@ def prepare_model_data_row(property_id, modelling_epc, cleaned, cleaning_data, c epc_client=None, data=modelling_epc ) + p.old_data = old_data + p.full_sap_epc = full_sap_epc p.get_components(cleaned) # This is temp - this should happen after scoring diff --git a/etl/eligibility/ha_15_32/ha4_app.py b/etl/eligibility/ha_15_32/ha4_app.py new file mode 100644 index 00000000..4e87b5a6 --- /dev/null +++ b/etl/eligibility/ha_15_32/ha4_app.py @@ -0,0 +1,158 @@ +import msgpack +from pathlib import Path +from datetime import datetime +import numpy as np +import pandas as pd +from utils.s3 import read_from_s3 +from utils.logger import setup_logger +from dotenv import load_dotenv +from backend.app.utils import read_parquet_from_s3 +from tqdm import tqdm +from backend.SearchEpc import SearchEpc +from etl.eligibility.Eligibility import Eligibility +from etl.eligibility.ha_15_32.app import prepare_model_data_row +from etl.epc.DataProcessor import DataProcessor +from etl.epc.settings import COLUMNS_TO_MERGE_ON +from backend.ml_models.api import ModelApi + +import re + +ENV_FILE = Path(__file__).parent / "etl" / "eligibility" / "ha_15_32" / ".env" + +logger = setup_logger() +load_dotenv(ENV_FILE) + + +def load_ha_4(): + pd.set_option('display.max_rows', 500) + pd.set_option('display.max_columns', 500) + pd.set_option('display.width', 1000) + + data = pd.read_csv(f"etl/eligibility/ha_15_32/HA 4 Asset List.csv", low_memory=False) + return data + + +def standardise_ha_4(data): + # Location name contains some strings like {0664} which we remove + data['Location Name'] = data['Location Name'].str.replace('\{.*?\}', '', regex=True) + + # Trim whitespace from either end of location name + data["Location Name"] = data["Location Name"].str.strip() + + # Remove any unusable postcodes + data = data[data["Post Code"] != '\\\\'] + + # Some specific replacements + data["Location Name"] = np.where( + data["Location Name"] == "Calderbrook Pl & Cog La", + "Calderbrook Place", + data["Location Name"] + ) + + return data + + +def get_ha_4_data(data, cleaned, cleaning_data, created_at): + scoring_data = [] + results = [] + nodata = [] + for _, property_meta in tqdm(data.iterrows(), total=len(data)): + # For many of the entries in this dataset, we're actually given an entire building, so we EPCs for every + # building + searcher = SearchEpc( + address1=property_meta["Address Line 1"], + postcode=property_meta["Post Code"], + size=1000 + ) + searcher.search() + + if searcher.data is None: + searcher = SearchEpc( + address1=property_meta["Location Name"], + postcode=property_meta["Post Code"], + size=1000 + ) + searcher.search() + + if searcher.data is None: + vlsh + + epcs = searcher.data["rows"] + epcs = pd.DataFrame(epcs) + + # Take the newest EPC by UPRN + epcs = epcs.sort_values(by=["lodgement-date"], ascending=False) + newest_epcs = epcs.drop_duplicates(subset=["uprn"], keep="first") + + # For each EPC, we now check eligibility + for _, epc in newest_epcs.iterrows(): + eligibility = Eligibility(epc=epc.to_dict(), cleaned=cleaned) + eligibility.check_gbis_warmfront() + eligibility.check_eco4_warmfront() + + # If the house is not identified, we do a full gbis and eco4 check + eligibility.check_gbis() + eligibility.check_eco4() + + if eligibility.eco4_warmfront["eligible"]: + # We get old_eps + old_data = epcs[ + (epcs["uprn"] == epc["uprn"]) & + (epcs["lmk-key"] != epc["lmk-key"]) + ].to_dict("records") + + full_sap_epc = epcs[ + (epcs["uprn"] == epc["uprn"]) & + (epcs["transaction-type"] == "new dwelling") + ].to_dict("records") + + scoring_dictionary = prepare_model_data_row( + property_id=property_meta["row_id"], + modelling_epc=eligibility.epc, + cleaned=cleaned, + cleaning_data=cleaning_data, + created_at=created_at, + old_data=old_data, + full_sap_epc=full_sap_epc + ) + scoring_data.extend(scoring_dictionary) + + results.append( + { + "row_id": property_meta["row_id"], + "gbis_eligible": eligibility.gbis_warmfront, + "eco4_eligible": eligibility.eco4_warmfront["eligible"], + "eco4_message": eligibility.eco4_warmfront["message"], + "sap": float(eligibility.epc["current-energy-efficiency"]), + "gbis_eligible_future": eligibility.gbis["eligible"], + "gbis_eligible_future_message": eligibility.gbis["message"], + "eco4_eligible_future": eligibility.eco4["eligible"], + "eco4_eligible_future_message": eligibility.eco4["message"], + # Property components + "roof": eligibility.roof["clean_description"], + "walls": eligibility.walls["clean_description"], + "heating": eligibility.epc["mainheat-description"], + "tenure": eligibility.tenure, + "date_epc": eligibility.epc["lodgement-date"], + } + ) + + +def app(): + data = load_ha_4() + + data = standardise_ha_4(data) + + data["row_id"] = ["h4" + str(i) for i in range(0, len(data))] + + cleaned = read_from_s3( + s3_file_name="cleaned_epc_data/cleaned.bson", + bucket_name="retrofit-data-dev" + ) + cleaned = msgpack.unpackb(cleaned, raw=False) + + cleaning_data = read_parquet_from_s3( + bucket_name="retrofit-data-dev", file_key="sap_change_model/cleaning_dataset.parquet", + ) + + created_at = datetime.now().isoformat() From 612922df6a8a1095dae0c6440f288f2c7572d55e Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Fri, 22 Dec 2023 16:17:53 +0000 Subject: [PATCH 093/526] handling case of missing built form --- etl/eligibility/ha_15_32/ha4_app.py | 45 +++++++++++++------------ etl/epc/DataProcessor.py | 4 +++ recommendations/recommendation_utils.py | 2 +- 3 files changed, 29 insertions(+), 22 deletions(-) diff --git a/etl/eligibility/ha_15_32/ha4_app.py b/etl/eligibility/ha_15_32/ha4_app.py index 4e87b5a6..1d924347 100644 --- a/etl/eligibility/ha_15_32/ha4_app.py +++ b/etl/eligibility/ha_15_32/ha4_app.py @@ -40,7 +40,7 @@ def standardise_ha_4(data): data["Location Name"] = data["Location Name"].str.strip() # Remove any unusable postcodes - data = data[data["Post Code"] != '\\\\'] + data = data[data["Post Code"] != '\\\\'].copy() # Some specific replacements data["Location Name"] = np.where( @@ -75,7 +75,8 @@ def get_ha_4_data(data, cleaned, cleaning_data, created_at): searcher.search() if searcher.data is None: - vlsh + nodata.append(property_meta.to_dict()) + continue epcs = searcher.data["rows"] epcs = pd.DataFrame(epcs) @@ -117,25 +118,27 @@ def get_ha_4_data(data, cleaned, cleaning_data, created_at): ) scoring_data.extend(scoring_dictionary) - results.append( - { - "row_id": property_meta["row_id"], - "gbis_eligible": eligibility.gbis_warmfront, - "eco4_eligible": eligibility.eco4_warmfront["eligible"], - "eco4_message": eligibility.eco4_warmfront["message"], - "sap": float(eligibility.epc["current-energy-efficiency"]), - "gbis_eligible_future": eligibility.gbis["eligible"], - "gbis_eligible_future_message": eligibility.gbis["message"], - "eco4_eligible_future": eligibility.eco4["eligible"], - "eco4_eligible_future_message": eligibility.eco4["message"], - # Property components - "roof": eligibility.roof["clean_description"], - "walls": eligibility.walls["clean_description"], - "heating": eligibility.epc["mainheat-description"], - "tenure": eligibility.tenure, - "date_epc": eligibility.epc["lodgement-date"], - } - ) + results.append( + { + "row_id": property_meta["row_id"], + "Location Name": property_meta["Location Name"], + "Post Code": property_meta["Post Code"], + "gbis_eligible": eligibility.gbis_warmfront, + "eco4_eligible": eligibility.eco4_warmfront["eligible"], + "eco4_message": eligibility.eco4_warmfront["message"], + "sap": float(eligibility.epc["current-energy-efficiency"]), + "gbis_eligible_future": eligibility.gbis["eligible"], + "gbis_eligible_future_message": eligibility.gbis["message"], + "eco4_eligible_future": eligibility.eco4["eligible"], + "eco4_eligible_future_message": eligibility.eco4["message"], + # Property components + "roof": eligibility.roof["clean_description"], + "walls": eligibility.walls["clean_description"], + "heating": eligibility.epc["mainheat-description"], + "tenure": eligibility.tenure, + "date_epc": eligibility.epc["lodgement-date"], + } + ) def app(): diff --git a/etl/epc/DataProcessor.py b/etl/epc/DataProcessor.py index 0587fdbe..2bc73765 100644 --- a/etl/epc/DataProcessor.py +++ b/etl/epc/DataProcessor.py @@ -492,12 +492,16 @@ class DataProcessor: how='left' ) + global_averages = cleaning_data[cols_to_clean].mean() + # Fill NaN values with averages for col in cols_to_clean: data_to_clean[col].fillna(data_to_clean[f"{col}_AVERAGE"], inplace=True) data_to_clean.drop(columns=[f"{col}_AVERAGE"], inplace=True) # If we still have missings data_to_clean[col].fillna(data_to_clean[col].mean(), inplace=True) + # Final step if we still have missings - use global mean + data_to_clean[col].fillna(global_averages[col], inplace=True) return data_to_clean diff --git a/recommendations/recommendation_utils.py b/recommendations/recommendation_utils.py index 7cfe023e..175eb641 100644 --- a/recommendations/recommendation_utils.py +++ b/recommendations/recommendation_utils.py @@ -548,7 +548,7 @@ def estimate_external_wall_area(num_floors, floor_height, perimeter, built_form) 'Detached': 4, } - exposed_wall_area = total_wall_area * (number_exposed_walls[built_form] / 4) + exposed_wall_area = total_wall_area * (number_exposed_walls.get(built_form, 3) / 4) return exposed_wall_area From 9c140dc0553c0357a4d5a5e24fe03cb22fb14096 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Fri, 22 Dec 2023 17:14:15 +0000 Subject: [PATCH 094/526] updated wall description to filled cavity --- etl/eligibility/ha_15_32/ha4_app.py | 147 +++++++++++++++++- .../epc_attributes/WallAttributes.py | 3 + .../test_data/test_wall_attributes_cases.py | 4 +- 3 files changed, 150 insertions(+), 4 deletions(-) diff --git a/etl/eligibility/ha_15_32/ha4_app.py b/etl/eligibility/ha_15_32/ha4_app.py index 1d924347..cc64dfad 100644 --- a/etl/eligibility/ha_15_32/ha4_app.py +++ b/etl/eligibility/ha_15_32/ha4_app.py @@ -64,6 +64,7 @@ def get_ha_4_data(data, cleaned, cleaning_data, created_at): postcode=property_meta["Post Code"], size=1000 ) + searcher.search() if searcher.data is None: @@ -108,7 +109,7 @@ def get_ha_4_data(data, cleaned, cleaning_data, created_at): ].to_dict("records") scoring_dictionary = prepare_model_data_row( - property_id=property_meta["row_id"], + property_id=eligibility.epc["uprn"], modelling_epc=eligibility.epc, cleaned=cleaned, cleaning_data=cleaning_data, @@ -120,7 +121,7 @@ def get_ha_4_data(data, cleaned, cleaning_data, created_at): results.append( { - "row_id": property_meta["row_id"], + "uprn": epc["uprn"], "Location Name": property_meta["Location Name"], "Post Code": property_meta["Post Code"], "gbis_eligible": eligibility.gbis_warmfront, @@ -140,6 +141,131 @@ def get_ha_4_data(data, cleaned, cleaning_data, created_at): } ) + scoring_df = pd.DataFrame(scoring_data) + + # Perform the same cleaning as in the model - first clean number of room variables though + scoring_df = DataProcessor.apply_averages_cleaning( + data_to_clean=scoring_df, + cleaning_data=cleaning_data, + cols_to_merge_on=['PROPERTY_TYPE', 'BUILT_FORM', 'CONSTRUCTION_AGE_BAND', 'LOCAL_AUTHORITY'], + colnames=["NUMBER_HABITABLE_ROOMS", "NUMBER_HEATED_ROOMS"], + ) + + scoring_df = DataProcessor.apply_averages_cleaning( + data_to_clean=scoring_df, + cleaning_data=cleaning_data, + cols_to_merge_on=COLUMNS_TO_MERGE_ON + ["LOCAL_AUTHORITY"], + ).drop(columns=["LOCAL_AUTHORITY"]) + + scoring_df = DataProcessor.clean_missings_after_description_process( + scoring_df, + ignore_cols=[c for c in scoring_df.columns if ("thermal_transmittance" in c) or ( + "insulation_thickness" in c) or ("ENERGY_EFF" in c)] + ) + + scoring_df = DataProcessor.clean_efficiency_variables(scoring_df) + + model_api = ModelApi(portfolio_id="ha33-eligibility", timestamp=created_at) + all_predictions = model_api.predict_all( + df=scoring_df, + bucket="retrofit-data-dev", + prediction_buckets={ + "sap_change_predictions": "retrofit-sap-predictions-dev", + "heat_demand_predictions": "retrofit-heat-predictions-dev", + "carbon_change_predictions": "retrofit-carbon-predictions-dev" + } + ) + + predictions = all_predictions["sap_change_predictions"].copy() + + results_df = pd.DataFrame(results) + + predictions = predictions.rename(columns={"property_id": "uprn"}).merge( + results_df[["uprn", "sap"]], how="left", on="uprn" + ) + predictions["sap_uplift"] = predictions["predictions"] - predictions["sap"] + predictions = predictions.groupby("uprn")["sap_uplift"].sum().reset_index() + + results_df = results_df.merge( + predictions[["sap_uplift", "uprn"]], + how="left", + on="uprn" + ) + results_df["post_install_sap"] = results_df["sap"] + results_df["sap_uplift"] + + results_df = results_df[~pd.isnull(results_df["uprn"])] + + eligibility_assessment = [] + for _, row in results_df[results_df["eco4_eligible"] == True].iterrows(): + # The upgrade requirements are dependent on the current SAP + + # If the property is an F or G, it only needs to upgrade to an % + if row["sap"] <= 38: + if row["post_install_sap"] >= 57: + eligibility_classification = "highest confidence" + elif row["post_install_sap"] >= 55: + eligibility_classification = "high confidence" + elif row["post_install_sap"] >= 53: + eligibility_classification = "medium confidence" + else: + eligibility_classification = "unlikely" + else: + + if row["post_install_sap"] >= 71: + eligibility_classification = "highest confidence" + elif row["post_install_sap"] >= 69: + eligibility_classification = "high confidence" + elif row["post_install_sap"] >= 67: + eligibility_classification = "medium confidence" + else: + eligibility_classification = "unlikely" + + eligibility_assessment.append( + { + "uprn": row["uprn"], + "eligibility_classification": eligibility_classification + } + ) + + eligibility_assessment = pd.DataFrame(eligibility_assessment) + + results_df = results_df.merge( + eligibility_assessment, how="left", on="uprn" + ) + # We have some properties that are duplicated so we take just one instance + results_df = results_df.drop_duplicates(subset=["uprn"]) + + return results_df, scoring_data, nodata + + +def analyse_ha_4(results_df, data): + results_df_social = results_df[results_df["tenure"] == "Rented (social)"] + + results_df_social["tenure"].value_counts() + + n_identified = (results_df_social["gbis_eligible"] | results_df_social["eco4_eligible"]).sum() + n_eco4 = results_df_social["eco4_eligible"].sum() + n_gbis = results_df_social[~results_df_social["eco4_eligible"]]["gbis_eligible"].sum() + + eco_eligibile = results_df_social[results_df_social["eco4_eligible"]] + eco_eligibile["walls"].value_counts() + eco_eligibile["roof"].value_counts() + + eco_eligibile[eco_eligibile["walls"] == "Cavity wall, as built, insulated"] + + results_df_social[results_df_social["gbis_eligible"] | results_df_social["eco4_eligible"]]["tenure"].value_counts() + + results_df_social["eligibility_classification"].value_counts() + + future_possibilities_eco = results_df[ + (results_df["eco4_eligible_future"] == True) & (~(results_df["gbis_eligible"] | results_df["eco4_eligible"])) + ].copy() + + future_possibilities_gbis = results_df[ + (results_df["gbis_eligible_future"] == True) & (results_df["eco4_eligible_future"] == False) & ( + ~(results_df["gbis_eligible"] | results_df["eco4_eligible"])) + ].copy() + def app(): data = load_ha_4() @@ -159,3 +285,20 @@ def app(): ) created_at = datetime.now().isoformat() + + results_df, scoring_data, nodata = get_ha_4_data( + data=data, + cleaned=cleaned, + cleaning_data=cleaning_data, + created_at=created_at + ) + + # Store the data locally as a pickle + # import pickle + # with open("ha_4.pickle", "wb") as f: + # pickle.dump( + # { + # "results_df": results_df, + # "scoring_data": scoring_data, + # "nodata": nodata + # }, f) diff --git a/etl/epc_clean/epc_attributes/WallAttributes.py b/etl/epc_clean/epc_attributes/WallAttributes.py index bfe600d5..09eac215 100644 --- a/etl/epc_clean/epc_attributes/WallAttributes.py +++ b/etl/epc_clean/epc_attributes/WallAttributes.py @@ -152,4 +152,7 @@ class WallAttributes(Definitions): else: result["insulation_thickness"] = "average" + if result["is_cavity_wall"] & result["is_as_built"] & (result["insulation_thickness"] == "average"): + result["is_filled_cavity"] = True + return result diff --git a/etl/epc_clean/tests/test_data/test_wall_attributes_cases.py b/etl/epc_clean/tests/test_data/test_wall_attributes_cases.py index 300702a7..96c545c1 100644 --- a/etl/epc_clean/tests/test_data/test_wall_attributes_cases.py +++ b/etl/epc_clean/tests/test_data/test_wall_attributes_cases.py @@ -550,7 +550,7 @@ wall_cases = [ 'is_as_built': False, 'is_cob': False, 'is_assumed': False, 'is_sandstone_or_limestone': False, 'insulation_thickness': None, 'external_insulation': False, 'internal_insulation': False}, {'original_description': 'Cavity wall, as built, insulated (assumed)', 'thermal_transmittance': None, - 'thermal_transmittance_unit': None, 'is_cavity_wall': True, 'is_filled_cavity': False, 'is_solid_brick': False, + 'thermal_transmittance_unit': None, 'is_cavity_wall': True, 'is_filled_cavity': True, 'is_solid_brick': False, 'is_system_built': False, 'is_timber_frame': False, 'is_granite_or_whinstone': False, 'is_as_built': True, 'is_cob': False, 'is_assumed': True, 'is_sandstone_or_limestone': False, 'insulation_thickness': 'average', 'external_insulation': False, 'internal_insulation': False}, @@ -727,7 +727,7 @@ wall_cases = [ 'external_insulation': False, 'internal_insulation': False}, {'original_description': 'Waliau ceudod, fel yGÇÖu hadeiladwyd, wediGÇÖu hinswleiddio (rhagdybiaeth)', 'thermal_transmittance': None, - 'thermal_transmittance_unit': None, 'is_cavity_wall': True, 'is_filled_cavity': False, 'is_solid_brick': False, + 'thermal_transmittance_unit': None, 'is_cavity_wall': True, 'is_filled_cavity': True, 'is_solid_brick': False, 'is_system_built': False, 'is_timber_frame': False, 'is_granite_or_whinstone': False, 'is_as_built': True, 'is_cob': False, 'is_assumed': True, 'is_sandstone_or_limestone': False, 'insulation_thickness': 'average', 'external_insulation': False, 'internal_insulation': False}, From 3bad76fa0e598d1c8be4fa6f10d4ea90c3558f4f Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Fri, 22 Dec 2023 18:04:18 +0000 Subject: [PATCH 095/526] handle new heating case --- etl/eligibility/Eligibility.py | 12 ++++++++++++ etl/eligibility/ha_15_32/ha4_app.py | 2 ++ etl/epc_clean/epc_attributes/MainheatAttributes.py | 1 + .../test_data/test_mainheat_attributes_cases.py | 13 +++++++++++++ 4 files changed, 28 insertions(+) diff --git a/etl/eligibility/Eligibility.py b/etl/eligibility/Eligibility.py index f25d06bd..c4dc9de0 100644 --- a/etl/eligibility/Eligibility.py +++ b/etl/eligibility/Eligibility.py @@ -152,9 +152,14 @@ class Eligibility: is_partial_filled = ( self.walls["is_as_built"] and self.walls["insulation_thickness"] not in ["below average"] ) + # We look for potentially under performing cavities - anything that is assumed, as built and insulated + is_underperforming = ( + self.walls["is_as_built"] and self.walls["insulation_thickness"] in ["average"] and self.walls["is_assumed"] + ) is_unfilled_cavity = is_cavity and is_empty is_partial_filled_cavity = is_cavity and is_partial_filled + is_underperforming_cavity = is_cavity and is_underperforming if is_unfilled_cavity: self.cavity = { @@ -170,6 +175,13 @@ class Eligibility: } return + if is_underperforming_cavity: + self.cavity = { + "suitability": True, + "type": "underperforming" + } + return + self.cavity = { "suitability": False, "type": "full" diff --git a/etl/eligibility/ha_15_32/ha4_app.py b/etl/eligibility/ha_15_32/ha4_app.py index cc64dfad..8b102f6d 100644 --- a/etl/eligibility/ha_15_32/ha4_app.py +++ b/etl/eligibility/ha_15_32/ha4_app.py @@ -124,6 +124,7 @@ def get_ha_4_data(data, cleaned, cleaning_data, created_at): "uprn": epc["uprn"], "Location Name": property_meta["Location Name"], "Post Code": property_meta["Post Code"], + "property_type": eligibility.epc["property-type"], "gbis_eligible": eligibility.gbis_warmfront, "eco4_eligible": eligibility.eco4_warmfront["eligible"], "eco4_message": eligibility.eco4_warmfront["message"], @@ -135,6 +136,7 @@ def get_ha_4_data(data, cleaned, cleaning_data, created_at): # Property components "roof": eligibility.roof["clean_description"], "walls": eligibility.walls["clean_description"], + "cavity_type": eligibility.cavity["type"], "heating": eligibility.epc["mainheat-description"], "tenure": eligibility.tenure, "date_epc": eligibility.epc["lodgement-date"], diff --git a/etl/epc_clean/epc_attributes/MainheatAttributes.py b/etl/epc_clean/epc_attributes/MainheatAttributes.py index e21f0d37..813e15a6 100644 --- a/etl/epc_clean/epc_attributes/MainheatAttributes.py +++ b/etl/epc_clean/epc_attributes/MainheatAttributes.py @@ -16,6 +16,7 @@ class MainHeatAttributes(Definitions): "solar assisted heat pump", "exhaust source heat pump", "community heat pump", + "portable electric heating" ] FUEL_TYPES = ["electric", "mains gas", "wood logs", "coal", "oil", "wood pellets", "anthracite", "dual fuel mineral and wood", "smokeless fuel", "lpg", "b30k"] diff --git a/etl/epc_clean/tests/test_data/test_mainheat_attributes_cases.py b/etl/epc_clean/tests/test_data/test_mainheat_attributes_cases.py index d264ebff..558b176e 100644 --- a/etl/epc_clean/tests/test_data/test_mainheat_attributes_cases.py +++ b/etl/epc_clean/tests/test_data/test_mainheat_attributes_cases.py @@ -1652,4 +1652,17 @@ mainheat_cases = [ 'has_electricaire': False, 'has_assumed_for_most_rooms': False, 'has_underfloor_heating': False, "has_electric_heat_pumps": False, "has_micro-cogeneration": False}, + {'original_description': 'Portable electric heating assumed for most rooms', 'has_radiators': False, + 'has_fan_coil_units': False, 'has_pipes_in_screed_above_insulation': False, + 'has_pipes_in_insulated_timber_floor': False, 'has_pipes_in_concrete_slab': False, 'has_boiler': False, + 'has_air_source_heat_pump': False, 'has_room_heaters': False, 'has_electric_storage_heaters': False, + 'has_warm_air': False, 'has_electric_underfloor_heating': False, 'has_electric_ceiling_heating': False, + 'has_community_scheme': False, 'has_ground_source_heat_pump': False, 'has_no_system_present': False, + 'has_portable_electric_heaters': False, 'has_water_source_heat_pump': False, 'has_electric_heat_pump': False, + 'has_micro-cogeneration': False, 'has_solar_assisted_heat_pump': False, 'has_exhaust_source_heat_pump': False, + 'has_community_heat_pump': False, 'has_portable_electric_heating': True, 'has_electric': True, + 'has_mains_gas': False, 'has_wood_logs': False, 'has_coal': False, 'has_oil': False, 'has_wood_pellets': False, + 'has_anthracite': False, 'has_dual_fuel_mineral_and_wood': False, 'has_smokeless_fuel': False, 'has_lpg': False, + 'has_b30k': False, 'has_assumed': True, 'has_electricaire': False, 'has_assumed_for_most_rooms': True, + 'has_underfloor_heating': False} ] From 46ce7bafd442c8b57c79364ff107f710d9b58d05 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Fri, 22 Dec 2023 18:32:05 +0000 Subject: [PATCH 096/526] done with ha4 --- etl/eligibility/ha_15_32/ha4_app.py | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/etl/eligibility/ha_15_32/ha4_app.py b/etl/eligibility/ha_15_32/ha4_app.py index 8b102f6d..d6bc10b1 100644 --- a/etl/eligibility/ha_15_32/ha4_app.py +++ b/etl/eligibility/ha_15_32/ha4_app.py @@ -243,21 +243,13 @@ def get_ha_4_data(data, cleaned, cleaning_data, created_at): def analyse_ha_4(results_df, data): results_df_social = results_df[results_df["tenure"] == "Rented (social)"] - results_df_social["tenure"].value_counts() + results_df_social["property_type"].value_counts() n_identified = (results_df_social["gbis_eligible"] | results_df_social["eco4_eligible"]).sum() n_eco4 = results_df_social["eco4_eligible"].sum() n_gbis = results_df_social[~results_df_social["eco4_eligible"]]["gbis_eligible"].sum() eco_eligibile = results_df_social[results_df_social["eco4_eligible"]] - eco_eligibile["walls"].value_counts() - eco_eligibile["roof"].value_counts() - - eco_eligibile[eco_eligibile["walls"] == "Cavity wall, as built, insulated"] - - results_df_social[results_df_social["gbis_eligible"] | results_df_social["eco4_eligible"]]["tenure"].value_counts() - - results_df_social["eligibility_classification"].value_counts() future_possibilities_eco = results_df[ (results_df["eco4_eligible_future"] == True) & (~(results_df["gbis_eligible"] | results_df["eco4_eligible"])) @@ -268,6 +260,8 @@ def analyse_ha_4(results_df, data): ~(results_df["gbis_eligible"] | results_df["eco4_eligible"])) ].copy() + total_future_possibilities = future_possibilities_eco.shape[0] + future_possibilities_gbis.shape[0] + def app(): data = load_ha_4() From 997d91aaf0acb89227f941d935ba2240005d381d Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Fri, 22 Dec 2023 18:33:30 +0000 Subject: [PATCH 097/526] minor --- etl/eligibility/ha_15_32/ha4_app.py | 1 + 1 file changed, 1 insertion(+) diff --git a/etl/eligibility/ha_15_32/ha4_app.py b/etl/eligibility/ha_15_32/ha4_app.py index d6bc10b1..8a404eec 100644 --- a/etl/eligibility/ha_15_32/ha4_app.py +++ b/etl/eligibility/ha_15_32/ha4_app.py @@ -250,6 +250,7 @@ def analyse_ha_4(results_df, data): n_gbis = results_df_social[~results_df_social["eco4_eligible"]]["gbis_eligible"].sum() eco_eligibile = results_df_social[results_df_social["eco4_eligible"]] + eco_eligibile["eligibility_classification"].value_counts() future_possibilities_eco = results_df[ (results_df["eco4_eligible_future"] == True) & (~(results_df["gbis_eligible"] | results_df["eco4_eligible"])) From 1bbc89002cc448813cf06d9bf6f1facbc7bc25ca Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Sat, 23 Dec 2023 13:57:51 +0000 Subject: [PATCH 098/526] building ha7 pipeline --- backend/SearchEpc.py | 4 +- etl/eligibility/Eligibility.py | 3 +- etl/eligibility/ha_15_32/ha7_app.py | 155 ++++++++++++++++++++++++++++ 3 files changed, 160 insertions(+), 2 deletions(-) create mode 100644 etl/eligibility/ha_15_32/ha7_app.py diff --git a/backend/SearchEpc.py b/backend/SearchEpc.py index d8ea6b78..f1cda010 100644 --- a/backend/SearchEpc.py +++ b/backend/SearchEpc.py @@ -202,7 +202,9 @@ class SearchEpc: return {}, [] if len(newest_response) != 1: - raise Exception("More than one result found for this address - investigate me") + # It is possible (but rare, and likely an error on EPC lodgement) that we have multiple EPCs that + # were lodged at the exact same time. In this case, we will take the first one + newest_response = [newest_response[0]] older_epcs = [epc for epc in list_of_epcs if epc["lmk-key"] != newest_response[0]["lmk-key"]] diff --git a/etl/eligibility/Eligibility.py b/etl/eligibility/Eligibility.py index c4dc9de0..7a6fade1 100644 --- a/etl/eligibility/Eligibility.py +++ b/etl/eligibility/Eligibility.py @@ -331,9 +331,10 @@ class Eligibility: is_eligible = self.cavity["suitability"] & self.loft["suitability"] if post_retrofit_sap is None: + message = "subject to post retrofit sap" if is_eligible else "not eligible" self.eco4_warmfront = { "eligible": is_eligible, - "message": "subject to post retrofit sap" + "message": message } return diff --git a/etl/eligibility/ha_15_32/ha7_app.py b/etl/eligibility/ha_15_32/ha7_app.py new file mode 100644 index 00000000..139943a1 --- /dev/null +++ b/etl/eligibility/ha_15_32/ha7_app.py @@ -0,0 +1,155 @@ +import msgpack +import openpyxl +from openpyxl.styles.colors import COLOR_INDEX +from pathlib import Path +from datetime import datetime +import pandas as pd +import numpy as np +from utils.s3 import read_from_s3 +from utils.logger import setup_logger +from dotenv import load_dotenv +from backend.app.utils import read_parquet_from_s3 +from tqdm import tqdm +from backend.SearchEpc import SearchEpc +from etl.eligibility.Eligibility import Eligibility +from etl.eligibility.ha_15_32.app import prepare_model_data_row +from etl.epc.DataProcessor import DataProcessor +from etl.epc.settings import COLUMNS_TO_MERGE_ON +from backend.ml_models.api import ModelApi + +import re + +ENV_FILE = Path(__file__).parent / "etl" / "eligibility" / "ha_15_32" / ".env" + +logger = setup_logger() +load_dotenv(ENV_FILE) + + +def load_data(): + """ + Load the data from the excel + """ + + workbook = openpyxl.load_workbook('etl/eligibility/ha_15_32/HESTIA - HA 7 ASSET LIST.xlsx') + sheet = workbook.active + + # Prepare lists to collect rows data and their colors + rows_data = [] + rows_colors = [] + for row in sheet.iter_rows(min_row=2, values_only=False): # Assuming the first row is headers + row_data = [cell.value for cell in row] # This will get you the cell values + + row_color = row[0].fill.start_color.index if row[0].fill.start_color.index != '00000000' else None + row_color = COLOR_INDEX[row_color] + rows_data.append(row_data) + rows_colors.append(row_color) + + df = pd.DataFrame(rows_data, columns=[cell.value for cell in sheet[1]]) + + # Add the row colors as a new column + df['row_color'] = rows_colors + df.columns.values[8] = "is_active" + + # Remove None columns + df = df.dropna(axis=1, how='all') + # We now parse the colours + df["row_color"].unique() + df["row_colour_name"] = np.where( + df["row_color"] == "0000FFFF", "red", + np.where(df["row_color"] == "00FF00FF", "green", "yellow") + ) + df["row_code"] = np.where( + df["row_colour_name"] == "red", "invalid", + np.where(df["row_colour_name"] == "green", "potential ECO4", "needs criteria change") + ) + + return df + + +def get_ha7_data(data, cleaned, cleaning_data, created_at): + property_type_lookup = { + "Mid Terrace": "Mid-Terrace", + "End Terrace": "End-Terrace", + "Semi Detached": "Semi-Detached", + "Detached": "Detached", + } + + scoring_data = [] + results = [] + nodata = [] + for _, house in tqdm(data.iterrows(), total=len(data)): + + searcher = SearchEpc( + address1=house["Address"], + postcode=house["Postcode"] + ) + + response = searcher.search() + if response["status"] == 204: + nodata.append(house) + continue + + newest_epc, older_epcs, full_sap_epc = searcher.retrieve( + property_type=property_type_lookup.get(house["Property Type"], None), + address=house["Address"], + ) + + eligibility = Eligibility(epc=newest_epc, cleaned=cleaned) + eligibility.check_gbis_warmfront() + eligibility.check_eco4_warmfront() + + # If the house is not identified, we do a full gbis and eco4 check + eligibility.check_gbis() + eligibility.check_eco4() + + if eligibility.eco4_warmfront["eligible"]: + scoring_dictionary = prepare_model_data_row( + property_id=house["row_id"], + modelling_epc=eligibility.epc, + cleaned=cleaned, + cleaning_data=cleaning_data, + created_at=created_at, + old_data=older_epcs, + full_sap_epc=full_sap_epc + ) + scoring_data.extend(scoring_dictionary) + + # If nothing is eligible or gbis is eligible, then we make a record this + results.append( + { + "row_id": house["row_id"], + "address": house["Address"], + "postcode": house["Postcode"], + "gbis_eligible": eligibility.gbis_warmfront, + "eco4_eligible": eligibility.eco4_warmfront["eligible"], + "eco4_message": eligibility.eco4_warmfront["message"], + "sap": float(eligibility.epc["current-energy-efficiency"]), + "gbis_eligible_future": eligibility.gbis["eligible"], + "gbis_eligible_future_message": eligibility.gbis["message"], + "eco4_eligible_future": eligibility.eco4["eligible"], + "eco4_eligible_future_message": eligibility.eco4["message"], + # Property components + "roof": eligibility.roof["clean_description"], + "walls": eligibility.walls["clean_description"], + "heating": eligibility.epc["mainheat-description"], + "tenure": eligibility.tenure, + "date_epc": eligibility.epc["lodgement-date"], + } + ) + + +def app(): + data = load_data() + data["row_id"] = ["ha7" + str(i) for i in range(0, len(data))] + + cleaned = read_from_s3( + s3_file_name="cleaned_epc_data/cleaned.bson", + bucket_name="retrofit-data-dev" + ) + cleaned = msgpack.unpackb(cleaned, raw=False) + + cleaning_data = read_parquet_from_s3( + bucket_name="retrofit-data-dev", file_key="sap_change_model/cleaning_dataset.parquet", + ) + + created_at = datetime.now().isoformat() From 64d42aba67fc601317aa22a971b6d6465a244246 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Sat, 23 Dec 2023 15:25:47 +0000 Subject: [PATCH 099/526] ha7 --- etl/eligibility/ha_15_32/ha7_app.py | 132 ++++++++++++++++++++++++++++ 1 file changed, 132 insertions(+) diff --git a/etl/eligibility/ha_15_32/ha7_app.py b/etl/eligibility/ha_15_32/ha7_app.py index 139943a1..7d856366 100644 --- a/etl/eligibility/ha_15_32/ha7_app.py +++ b/etl/eligibility/ha_15_32/ha7_app.py @@ -137,6 +137,131 @@ def get_ha7_data(data, cleaned, cleaning_data, created_at): } ) + scoring_df = pd.DataFrame(scoring_data) + # Implement the same process that is being used in the recommendation engine to cleaning scoring_df + + # Perform the same cleaning as in the model - first clean number of room variables though + scoring_df = DataProcessor.apply_averages_cleaning( + data_to_clean=scoring_df, + cleaning_data=cleaning_data, + cols_to_merge_on=['PROPERTY_TYPE', 'BUILT_FORM', 'CONSTRUCTION_AGE_BAND', 'LOCAL_AUTHORITY'], + colnames=["NUMBER_HABITABLE_ROOMS", "NUMBER_HEATED_ROOMS"], + ) + + scoring_df = DataProcessor.apply_averages_cleaning( + data_to_clean=scoring_df, + cleaning_data=cleaning_data, + cols_to_merge_on=COLUMNS_TO_MERGE_ON + ["LOCAL_AUTHORITY"], + ).drop(columns=["LOCAL_AUTHORITY"]) + + scoring_df = DataProcessor.clean_missings_after_description_process( + scoring_df, + ignore_cols=[c for c in scoring_df.columns if ("thermal_transmittance" in c) or ( + "insulation_thickness" in c) or ("ENERGY_EFF" in c)] + ) + + scoring_df = DataProcessor.clean_efficiency_variables(scoring_df) + + model_api = ModelApi(portfolio_id="ha33-eligibility", timestamp=created_at) + all_predictions = model_api.predict_all( + df=scoring_df, + bucket="retrofit-data-dev", + prediction_buckets={ + "sap_change_predictions": "retrofit-sap-predictions-dev", + "heat_demand_predictions": "retrofit-heat-predictions-dev", + "carbon_change_predictions": "retrofit-carbon-predictions-dev" + } + ) + + predictions = all_predictions["sap_change_predictions"].copy() + + results_df = pd.DataFrame(results) + + predictions = predictions.rename(columns={"property_id": "row_id"}).merge( + results_df[["row_id", "sap"]], how="left", on="row_id" + ) + predictions["sap_uplift"] = predictions["predictions"] - predictions["sap"] + predictions = predictions.groupby("row_id")["sap_uplift"].sum().reset_index() + + results_df = results_df.merge( + predictions[["sap_uplift", "row_id"]], + how="left", + on="row_id" + ) + + results_df["post_install_sap"] = results_df["sap"] + results_df["sap_uplift"] + + eligibility_assessment = [] + for _, row in results_df[results_df["eco4_eligible"] == True].iterrows(): + # The upgrade requirements are dependent on the current SAP + + # If the property is an F or G, it only needs to upgrade to an % + if row["sap"] <= 38: + if row["post_install_sap"] >= 57: + eligibility_classification = "highest confidence" + elif row["post_install_sap"] >= 55: + eligibility_classification = "high confidence" + elif row["post_install_sap"] >= 53: + eligibility_classification = "medium confidence" + else: + eligibility_classification = "unlikely" + else: + + if row["post_install_sap"] >= 71: + eligibility_classification = "highest confidence" + elif row["post_install_sap"] >= 69: + eligibility_classification = "high confidence" + elif row["post_install_sap"] >= 67: + eligibility_classification = "medium confidence" + else: + eligibility_classification = "unlikely" + + eligibility_assessment.append( + { + "row_id": row["row_id"], + "eligibility_classification": eligibility_classification + } + ) + + eligibility_assessment = pd.DataFrame(eligibility_assessment) + + results_df = results_df.merge( + eligibility_assessment, how="left", on="row_id" + ) + + return results_df, scoring_data, nodata + + +def analyse_ha_7(results_df, data): + df = results_df.merge( + data[["row_id", "row_code", "Property Type"]], how="left", on="row_id" + ) + warmfront_identification = df["row_code"].value_counts() + warmfront_identified = df[df["row_code"] == "potential ECO4"] + + property_types = df["Property Type"].value_counts() + + n_identified = (results_df["gbis_eligible"] | results_df["eco4_eligible"]).sum() + + eco_identified = results_df[results_df["eco4_eligible"]] + n_eco4 = eco_identified["eco4_eligible"].sum() + gbis_identified = results_df[~results_df["eco4_eligible"] & results_df["gbis_eligible"]] + n_gbis = results_df[~results_df["eco4_eligible"]]["gbis_eligible"].sum() + + eco_eligibile = results_df[results_df["eco4_eligible"]] + eco_eligibile["eligibility_classification"].value_counts() + + future_possibilities_eco = results_df[ + (results_df["eco4_eligible_future"] == True) & (~(results_df["gbis_eligible"] | results_df["eco4_eligible"])) + ].copy() + + future_possibilities_gbis = results_df[ + (results_df["gbis_eligible_future"] == True) & (results_df["eco4_eligible_future"] == False) & ( + ~(results_df["gbis_eligible"] | results_df["eco4_eligible"])) + ].copy() + + total_future_possibilities = future_possibilities_eco.shape[0] + future_possibilities_gbis.shape[0] + def app(): data = load_data() @@ -153,3 +278,10 @@ def app(): ) created_at = datetime.now().isoformat() + + results_df, scoring_data, nodata = get_ha7_data(data, cleaned, cleaning_data, created_at) + + # Pickle results + # import pickle + # with open("ha7_results.pkl", "wb") as f: + # pickle.dump({"results_df": results_df, "scoring_data": scoring_data, "nodata": nodata}, f) From 43004a5d8beac085d6eca1c6a588941abea97173 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Sun, 24 Dec 2023 15:48:36 +0000 Subject: [PATCH 100/526] working on merge between asset list and survey list --- etl/eligibility/ha_15_32/ha16_app.py | 115 +++++++++++++++++++++++++++ 1 file changed, 115 insertions(+) create mode 100644 etl/eligibility/ha_15_32/ha16_app.py diff --git a/etl/eligibility/ha_15_32/ha16_app.py b/etl/eligibility/ha_15_32/ha16_app.py new file mode 100644 index 00000000..e347d47c --- /dev/null +++ b/etl/eligibility/ha_15_32/ha16_app.py @@ -0,0 +1,115 @@ +import msgpack +import openpyxl +from openpyxl.styles.colors import COLOR_INDEX +from pathlib import Path +from datetime import datetime +import pandas as pd +import numpy as np +from utils.s3 import read_from_s3 +from utils.logger import setup_logger +from dotenv import load_dotenv +from backend.app.utils import read_parquet_from_s3 +from tqdm import tqdm +from backend.SearchEpc import SearchEpc +from etl.eligibility.Eligibility import Eligibility +from etl.eligibility.ha_15_32.app import prepare_model_data_row +from etl.epc.DataProcessor import DataProcessor +from etl.epc.settings import COLUMNS_TO_MERGE_ON +from backend.ml_models.api import ModelApi + +import re + +ENV_FILE = Path(__file__).parent / "etl" / "eligibility" / "ha_15_32" / ".env" + +logger = setup_logger() +load_dotenv(ENV_FILE) + + +def load_data(): + # This asset list is spread across two sheets, which we need to combine + + asset_list_filenames = [ + "HESTIA - HA 16 ASSET LIST PART 1 OF 2.xlsx", + "HESTIA - HA 16 ASSET LIST PART 2 OF 2.xlsx", + ] + + # Prepare lists to collect rows data and their colors + rows_data = [] + rows_colors = [] + colnames = [] + for asset_list_filename in asset_list_filenames: + workbook = openpyxl.load_workbook(f'etl/eligibility/ha_15_32/{asset_list_filename}') + sheet = workbook.active + sheet_colnames = [cell.value for cell in sheet[1]] + colnames.append(sheet_colnames) + + for row in sheet.iter_rows(min_row=2, values_only=False): # Assuming the first row is headers + row_data = [cell.value for cell in row] # This will get you the cell values + row_color = row[0].fill.start_color.index if row[0].fill.start_color.index != '00000000' else None + # row_color = COLOR_INDEX[row_color] + rows_data.append(row_data) + rows_colors.append(row_color) + + asset_list = pd.DataFrame(rows_data, columns=colnames[0]) + # Remove None columns + asset_list = asset_list.iloc[:, 0:12] + asset_list['row_color'] = rows_colors + + asset_list["row_colour_name"] = np.where( + asset_list["row_color"] == "FFFF0000", "red", + np.where(asset_list["row_color"] == "FF92D050", "green", "yellow") + ) + + # Split up the address on commas, which is useful for matching later + split_addresses = asset_list['Address'].str.split(',', expand=True) + split_addresses.columns = ['temp', 'address2', 'address3', 'address4', 'address5'] + + asset_list = pd.concat([asset_list, split_addresses], axis=1) + # There is no commas separating house number and address 1 + split_addresses2 = asset_list['temp'].str.split(' ', expand=True) + split_addresses2.columns = ['HouseNo', 'part1', 'part2', "part3", "part4"] + # We could re-concatenate but we only care about HouseNo for the moment + asset_list = pd.concat([asset_list, split_addresses2[["HouseNo"]]], axis=1) + + # We now read in the survey list + survey_workbook = openpyxl.load_workbook(f'etl/eligibility/ha_15_32/HESTIA- HA 16 ECO4 SURVEY LIST.xlsx') + survey_sheet = survey_workbook.active + + survey_rows = [] + survey_colors = [] + + for row in survey_sheet.iter_rows(min_row=2, values_only=False): # Assuming the first row is headers + row_data = [cell.value for cell in row] # This will get you the cell values + row_color = row[0].fill.start_color.index if row[0].fill.start_color.index != '00000000' else None + # row_color = COLOR_INDEX[row_color] + survey_rows.append(row_data) + survey_colors.append(row_color) + + survey_list = pd.DataFrame(survey_rows, columns=[cell.value for cell in survey_sheet[1]]) + + # For the survey list, we don't need the colours, since there is a column called "INSTALLED OR CANCELLED" + # which describes the status of the property + survey_list["row_colour"] = survey_colors + survey_list["survey_key"] = ["survey_" + str(i) for i in range(0, len(survey_list))] + # Tidy up the street/block name a bit + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace("/", ", ") + + # We now need to merge the survey list onto the asset list + # Could be easier just to do a search on each row, even though it's much slower + matched = [] + for _, row in tqdm(survey_list.iterrows(), total=len(survey_list)): + # Filter on the first line of the address + df = asset_list[asset_list["Address"].str.lower().str.contains(row["Street / Block Name"].lower())].copy() + df = df[df["Postcode"].str.contains(row["Post Code"])] + df = df[df["Address"].str.contains(str(row["NO."]))] + if df.shape[0] != 1: + df = df[df["HouseNo"] == str(row["NO."])] + if df.shape[0] != 1: + raise ValueError("Investigate") + + matched.append( + { + "survey_key": row["survey_key"], + "matched_address": df["Address"].values[0] + } + ) From 3f7ad82b7aabd4a34e3ea852dc9496992ae6152e Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Sun, 24 Dec 2023 22:28:03 +0000 Subject: [PATCH 101/526] working on matching --- etl/eligibility/ha_15_32/ha16_app.py | 41 ++++++++++++++++++++++++++-- 1 file changed, 38 insertions(+), 3 deletions(-) diff --git a/etl/eligibility/ha_15_32/ha16_app.py b/etl/eligibility/ha_15_32/ha16_app.py index e347d47c..25b33255 100644 --- a/etl/eligibility/ha_15_32/ha16_app.py +++ b/etl/eligibility/ha_15_32/ha16_app.py @@ -93,19 +93,54 @@ def load_data(): survey_list["survey_key"] = ["survey_" + str(i) for i in range(0, len(survey_list))] # Tidy up the street/block name a bit survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace("/", ", ") + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.lower() + survey_list["Street / Block Name"] = np.where( + survey_list["Street / Block Name"] == "REEDS RD", + "Reeds ROAD", + survey_list["Street / Block Name"] + ) + # Replace " rd " with "road" + survey_list['Street / Block Name'] = df['Street / Block Name'].str.replace(r'\brd\b', 'road', regex=True) + + # Replace " , " with ", " + survey_list['Street / Block Name'] = survey_list['Street / Block Name'].str.replace( + " , ", ', ', + ) + # Strip whitespace + survey_list['Street / Block Name'] = survey_list['Street / Block Name'].str.strip() + + # Correct errors + survey_list["Post Code"] = np.where( + survey_list["Post Code"] == "M38 0SA", + "M38 9SA", + survey_list["Post Code"] + ) + + survey_list["Post Code"] = np.where( + (survey_list["Street / Block Name"] == "nelson drive") & (survey_list["Post Code"] == "M44 5JE"), + "M44 5JF", + survey_list["Post Code"] + ) # We now need to merge the survey list onto the asset list # Could be easier just to do a search on each row, even though it's much slower matched = [] for _, row in tqdm(survey_list.iterrows(), total=len(survey_list)): + + house_number = row["NO."] + if isinstance(house_number, str): + house_number = house_number.lower() + # Filter on the first line of the address df = asset_list[asset_list["Address"].str.lower().str.contains(row["Street / Block Name"].lower())].copy() - df = df[df["Postcode"].str.contains(row["Post Code"])] - df = df[df["Address"].str.contains(str(row["NO."]))] + # df = df[df["Postcode"].str.lower().str.contains(row["Post Code"].lower())] + df = df[df["Address"].str.lower().str.contains(str(house_number))] if df.shape[0] != 1: df = df[df["HouseNo"] == str(row["NO."])] if df.shape[0] != 1: - raise ValueError("Investigate") + df = df[df["Postcode"].str.lower().str.contains(row["Post Code"].lower())] + if df.shape[0] != 1: + raise ValueError("Investigate") matched.append( { From e21057ca6120b4c75e95a04b2c7dbd894e172925 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Sun, 24 Dec 2023 23:09:25 +0000 Subject: [PATCH 102/526] still working on merge --- etl/eligibility/ha_15_32/ha16_app.py | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/etl/eligibility/ha_15_32/ha16_app.py b/etl/eligibility/ha_15_32/ha16_app.py index 25b33255..0d5a3361 100644 --- a/etl/eligibility/ha_15_32/ha16_app.py +++ b/etl/eligibility/ha_15_32/ha16_app.py @@ -100,12 +100,14 @@ def load_data(): survey_list["Street / Block Name"] ) # Replace " rd " with "road" - survey_list['Street / Block Name'] = df['Street / Block Name'].str.replace(r'\brd\b', 'road', regex=True) + survey_list['Street / Block Name'] = survey_list['Street / Block Name'].str.replace(r'\brd\b', 'road', regex=True) # Replace " , " with ", " survey_list['Street / Block Name'] = survey_list['Street / Block Name'].str.replace( " , ", ', ', ) + # Fix "{place} ,{place}" with "{place}, {place}" + survey_list['Street / Block Name'] = survey_list['Street / Block Name'].str.replace(r'\s*,\s*', ', ', regex=True) # Strip whitespace survey_list['Street / Block Name'] = survey_list['Street / Block Name'].str.strip() @@ -122,11 +124,18 @@ def load_data(): survey_list["Post Code"] ) + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace("eccels", "eccles") + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace("chatley, road", "chatley road") + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace("vaughen", "Vaughan") + # We now need to merge the survey list onto the asset list # Could be easier just to do a search on each row, even though it's much slower matched = [] for _, row in tqdm(survey_list.iterrows(), total=len(survey_list)): + if row["Street / Block Name"] in ["carleach grove"]: + continue + house_number = row["NO."] if isinstance(house_number, str): house_number = house_number.lower() From 85ad1d3fc5a2c49bb88e139ec4252b2845d06e9b Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Sun, 24 Dec 2023 23:45:25 +0000 Subject: [PATCH 103/526] handling more errors --- etl/eligibility/ha_15_32/ha16_app.py | 1 + 1 file changed, 1 insertion(+) diff --git a/etl/eligibility/ha_15_32/ha16_app.py b/etl/eligibility/ha_15_32/ha16_app.py index 0d5a3361..e98f8ddc 100644 --- a/etl/eligibility/ha_15_32/ha16_app.py +++ b/etl/eligibility/ha_15_32/ha16_app.py @@ -127,6 +127,7 @@ def load_data(): survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace("eccels", "eccles") survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace("chatley, road", "chatley road") survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace("vaughen", "Vaughan") + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace("cresent", "crescent") # We now need to merge the survey list onto the asset list # Could be easier just to do a search on each row, even though it's much slower From 78827b4743f2bcff576d3a748cd4367a99d10d72 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Mon, 25 Dec 2023 00:28:50 +0000 Subject: [PATCH 104/526] a third through --- etl/eligibility/ha_15_32/ha16_app.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/etl/eligibility/ha_15_32/ha16_app.py b/etl/eligibility/ha_15_32/ha16_app.py index e98f8ddc..80a6b59d 100644 --- a/etl/eligibility/ha_15_32/ha16_app.py +++ b/etl/eligibility/ha_15_32/ha16_app.py @@ -128,13 +128,15 @@ def load_data(): survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace("chatley, road", "chatley road") survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace("vaughen", "Vaughan") survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace("cresent", "crescent") + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace("plantation road", + "plantation avenue") # We now need to merge the survey list onto the asset list # Could be easier just to do a search on each row, even though it's much slower matched = [] for _, row in tqdm(survey_list.iterrows(), total=len(survey_list)): - if row["Street / Block Name"] in ["carleach grove"]: + if row["Street / Block Name"] in ["carleach grove", "arbour grove"]: continue house_number = row["NO."] From 4dc827037dbb825e4f85534e2b744f3069a93375 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Tue, 26 Dec 2023 14:16:11 +0000 Subject: [PATCH 105/526] handling case for 66-68 clively --- etl/eligibility/ha_15_32/ha16_app.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/etl/eligibility/ha_15_32/ha16_app.py b/etl/eligibility/ha_15_32/ha16_app.py index 80a6b59d..bf9e7792 100644 --- a/etl/eligibility/ha_15_32/ha16_app.py +++ b/etl/eligibility/ha_15_32/ha16_app.py @@ -130,6 +130,14 @@ def load_data(): survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace("cresent", "crescent") survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace("plantation road", "plantation avenue") + # Replacement for clively avenue 66-68 + survey_list["NO."] = np.where( + survey_list["NO."] == "66-68", + "66", + survey_list["NO."] + ) + + # asset_list[asset_list["Address"].str.lower().str.contains("clively")] # We now need to merge the survey list onto the asset list # Could be easier just to do a search on each row, even though it's much slower From 94d322b442bcf6db5a37f3c8a0b46684c99d6ecd Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Tue, 26 Dec 2023 14:19:15 +0000 Subject: [PATCH 106/526] fixed more spelling issues in survey file --- etl/eligibility/ha_15_32/ha16_app.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/etl/eligibility/ha_15_32/ha16_app.py b/etl/eligibility/ha_15_32/ha16_app.py index bf9e7792..94c0bab0 100644 --- a/etl/eligibility/ha_15_32/ha16_app.py +++ b/etl/eligibility/ha_15_32/ha16_app.py @@ -130,6 +130,10 @@ def load_data(): survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace("cresent", "crescent") survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace("plantation road", "plantation avenue") + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace("how clough drive", + "howclough drive") + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace("brockhurst lane", + "brookhurst lane") # Replacement for clively avenue 66-68 survey_list["NO."] = np.where( survey_list["NO."] == "66-68", From b47ca2b50563ea8dfeefb1f72d98fae9caa9d2b2 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Tue, 26 Dec 2023 14:24:57 +0000 Subject: [PATCH 107/526] handling more error cases --- etl/eligibility/ha_15_32/ha16_app.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/etl/eligibility/ha_15_32/ha16_app.py b/etl/eligibility/ha_15_32/ha16_app.py index 94c0bab0..4e5212eb 100644 --- a/etl/eligibility/ha_15_32/ha16_app.py +++ b/etl/eligibility/ha_15_32/ha16_app.py @@ -134,6 +134,14 @@ def load_data(): "howclough drive") survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace("brockhurst lane", "brookhurst lane") + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace("biirch road", + "birch road") + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace("hadson road", + "hodson road") + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace("harbonne avennue", + "narbonne avenue") + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace("cumberland road, cadishead", + "cumberland avenue, cadishead") # Replacement for clively avenue 66-68 survey_list["NO."] = np.where( survey_list["NO."] == "66-68", From cab7b5ec3e101a08d644a70ea39e1c40d05508b6 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Tue, 26 Dec 2023 14:34:02 +0000 Subject: [PATCH 108/526] further debuggin --- etl/eligibility/ha_15_32/ha16_app.py | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/etl/eligibility/ha_15_32/ha16_app.py b/etl/eligibility/ha_15_32/ha16_app.py index 4e5212eb..26cf1a0d 100644 --- a/etl/eligibility/ha_15_32/ha16_app.py +++ b/etl/eligibility/ha_15_32/ha16_app.py @@ -142,6 +142,16 @@ def load_data(): "narbonne avenue") survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace("cumberland road, cadishead", "cumberland avenue, cadishead") + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace("aston field drive", + "ashton field drive") + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace("wedgewood road", + "wedgwood road") + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace("hamilton close", + "hamilton avenue") + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace("lichens crescent, fitton hill", + "lichens crescent") + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace("south croft, fitton hill", + "south croft") # Replacement for clively avenue 66-68 survey_list["NO."] = np.where( survey_list["NO."] == "66-68", @@ -168,7 +178,7 @@ def load_data(): # df = df[df["Postcode"].str.lower().str.contains(row["Post Code"].lower())] df = df[df["Address"].str.lower().str.contains(str(house_number))] if df.shape[0] != 1: - df = df[df["HouseNo"] == str(row["NO."])] + df = df[df["HouseNo"] == str(house_number)] if df.shape[0] != 1: df = df[df["Postcode"].str.lower().str.contains(row["Post Code"].lower())] if df.shape[0] != 1: From fd4b9baefb055f5b612d016542b29f6a2500dd7d Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Tue, 26 Dec 2023 19:33:43 +0000 Subject: [PATCH 109/526] cleaning --- etl/eligibility/ha_15_32/ha16_app.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/etl/eligibility/ha_15_32/ha16_app.py b/etl/eligibility/ha_15_32/ha16_app.py index 26cf1a0d..a16fc37d 100644 --- a/etl/eligibility/ha_15_32/ha16_app.py +++ b/etl/eligibility/ha_15_32/ha16_app.py @@ -152,6 +152,13 @@ def load_data(): "lichens crescent") survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace("south croft, fitton hill", "south croft") + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace(", fitton hill", "") + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace("firtree dr", "fir tree avenue") + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace("hawthorne road", + "hawthorn crescent") + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace("rein lee avenue", + "reins lee avenue") + # Replacement for clively avenue 66-68 survey_list["NO."] = np.where( survey_list["NO."] == "66-68", From a45ac1e14f834670211e0f1de69a3ea5a7a46c7f Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Tue, 26 Dec 2023 19:45:47 +0000 Subject: [PATCH 110/526] multiple further corrections --- etl/eligibility/ha_15_32/ha16_app.py | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/etl/eligibility/ha_15_32/ha16_app.py b/etl/eligibility/ha_15_32/ha16_app.py index a16fc37d..76c4ad14 100644 --- a/etl/eligibility/ha_15_32/ha16_app.py +++ b/etl/eligibility/ha_15_32/ha16_app.py @@ -158,6 +158,25 @@ def load_data(): "hawthorn crescent") survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace("rein lee avenue", "reins lee avenue") + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace("westerhill road", + "wester hill road") + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace("st martins road", + "saint martins road") + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace("timperley avenue", + "timperley close") + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace("eastwood road", + "eastwood avenue") + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace("new road", "new street") + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace("grassmere road", + "grasmere road") + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace("hulton road", + "hulton avenue") + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace("beechfield avenue", + "beechfield road") + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace("princess avenue", + "princes avenue") + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace("edge ford crecent", + "edge fold crecent") # Replacement for clively avenue 66-68 survey_list["NO."] = np.where( From 95dd23e925c6d8f42bbdddf542ee92aaaafaca71 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Tue, 26 Dec 2023 19:52:02 +0000 Subject: [PATCH 111/526] multiple further corrections --- etl/eligibility/ha_15_32/ha16_app.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/etl/eligibility/ha_15_32/ha16_app.py b/etl/eligibility/ha_15_32/ha16_app.py index 76c4ad14..553a86da 100644 --- a/etl/eligibility/ha_15_32/ha16_app.py +++ b/etl/eligibility/ha_15_32/ha16_app.py @@ -176,7 +176,13 @@ def load_data(): survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace("princess avenue", "princes avenue") survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace("edge ford crecent", - "edge fold crecent") + "edge fold crescent") + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace("conniston avenue", + "coniston avenue") + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace("blackthorne crescent", + "blackthorn crescent") + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace("wellstock road", + "aellstock lane") # Replacement for clively avenue 66-68 survey_list["NO."] = np.where( From 8f38996391c875d0ccbd187b42cddb93705628f1 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Tue, 26 Dec 2023 21:23:00 +0000 Subject: [PATCH 112/526] completed amtching --- etl/eligibility/ha_15_32/ha16_app.py | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/etl/eligibility/ha_15_32/ha16_app.py b/etl/eligibility/ha_15_32/ha16_app.py index 553a86da..bc8fbfbd 100644 --- a/etl/eligibility/ha_15_32/ha16_app.py +++ b/etl/eligibility/ha_15_32/ha16_app.py @@ -182,7 +182,17 @@ def load_data(): survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace("blackthorne crescent", "blackthorn crescent") survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace("wellstock road", - "aellstock lane") + "wellstock lane") + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace("brackley avenue", + "brackley street") + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace("brook avenue swinton", + "brook avenue, swinton") + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace("green avenue swinton", + "green avenue, swinton") + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace("grasmere avenue wardley", + "grasmere avenue, wardley") + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace("mardale avenue wardle", + "mardale avenue, wardle") # Replacement for clively avenue 66-68 survey_list["NO."] = np.where( From e6a25ab7beea79e33cbaa5478c7ba675a8179feb Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Tue, 26 Dec 2023 21:32:14 +0000 Subject: [PATCH 113/526] fixed missed cases and completed merge between assets and surveys --- etl/eligibility/ha_15_32/ha16_app.py | 24 ++++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/etl/eligibility/ha_15_32/ha16_app.py b/etl/eligibility/ha_15_32/ha16_app.py index bc8fbfbd..402527df 100644 --- a/etl/eligibility/ha_15_32/ha16_app.py +++ b/etl/eligibility/ha_15_32/ha16_app.py @@ -193,6 +193,10 @@ def load_data(): "grasmere avenue, wardley") survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace("mardale avenue wardle", "mardale avenue, wardle") + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace("carleach grove", + "cartleach Grove") + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace("arbour grove", + "arbor Grove") # Replacement for clively avenue 66-68 survey_list["NO."] = np.where( @@ -208,9 +212,6 @@ def load_data(): matched = [] for _, row in tqdm(survey_list.iterrows(), total=len(survey_list)): - if row["Street / Block Name"] in ["carleach grove", "arbour grove"]: - continue - house_number = row["NO."] if isinstance(house_number, str): house_number = house_number.lower() @@ -229,6 +230,21 @@ def load_data(): matched.append( { "survey_key": row["survey_key"], - "matched_address": df["Address"].values[0] + "matched_address": df["Address"].values[0], + "survey_house_no": row["NO."], + "survey_street_name": row["Street / Block Name"], + "survey_postcode": row["Post Code"], + "survey_status": row["INSTALLED OR CANCELLED"] } ) + + matched = pd.DataFrame(matched) + matched["warmfront_identified"] = True + + # Combine asset list and surveys + data = asset_list.merge( + matched, how="left", left_on="Address", right_on="matched_address", + ) + data["warmfront_identified"] = data["warmfront_identified"].fillna(False) + + return data From a948688df6c4e220be03688700834fbb78701ccd Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Wed, 27 Dec 2023 10:28:06 +0000 Subject: [PATCH 114/526] set up get_epc_data function --- etl/eligibility/ha_15_32/ha16_app.py | 98 ++++++++++++++++++++++++++++ 1 file changed, 98 insertions(+) diff --git a/etl/eligibility/ha_15_32/ha16_app.py b/etl/eligibility/ha_15_32/ha16_app.py index 402527df..f930452e 100644 --- a/etl/eligibility/ha_15_32/ha16_app.py +++ b/etl/eligibility/ha_15_32/ha16_app.py @@ -248,3 +248,101 @@ def load_data(): data["warmfront_identified"] = data["warmfront_identified"].fillna(False) return data + + +def get_epc_data(data, cleaned, cleaning_data, created_at): + scoring_data = [] + results = [] + nodata = [] + + for _, property_meta in tqdm(data.iterrows(), total=len(data)): + searcher = SearchEpc( + address1=property_meta["HouseNo"], + postcode=property_meta["Postcode"], + size=1000 + ) + searcher.search() + + if searcher.data is None: + nodata.append(property_meta) + continue + + newest_epc, older_epcs, full_sap_epc = searcher.retrieve(address=property_meta["Address"]) + # We also want to get the penultimate epc + penultimate_epc, _ = searcher.filter_newest_epc(older_epcs) + if not penultimate_epc: + penultimate_epc = newest_epc + + eligibility = Eligibility(epc=newest_epc, cleaned=cleaned) + eligibility.check_gbis_warmfront() + eligibility.check_eco4_warmfront() + + if (not eligibility.eco4_warmfront["eligible"]) and (not eligibility.gbis_warmfront) and ( + property_meta["warmfront_identified"] + ): + eligibility = Eligibility(epc=penultimate_epc, cleaned=cleaned) + eligibility.check_gbis_warmfront() + eligibility.check_eco4_warmfront() + # If this is the case, we need to update the older epcs + older_epcs = [ + x for x in older_epcs if x["lmk-key"] not in [newest_epc["lmk-key"], penultimate_epc["lmk-key"]] + ] + + # Full checks + eligibility.check_gbis() + eligibility.check_eco4() + + if eligibility.eco4_warmfront["eligible"]: + scoring_dictionary = prepare_model_data_row( + property_id=eligibility.epc["uprn"], + modelling_epc=eligibility.epc, + cleaned=cleaned, + cleaning_data=cleaning_data, + created_at=created_at, + old_data=older_epcs, + full_sap_epc=full_sap_epc + ) + scoring_data.extend(scoring_dictionary) + + results.append( + { + "row_id": property_meta["row_id"], + "uprn": eligibility.epc["uprn"], + "Address": property_meta["Address"], + "Postcode": property_meta["Postcode"], + "property_type": eligibility.epc["property-type"], + "gbis_eligible": eligibility.gbis_warmfront, + "eco4_eligible": eligibility.eco4_warmfront["eligible"], + "eco4_message": eligibility.eco4_warmfront["message"], + "sap": float(eligibility.epc["current-energy-efficiency"]), + "gbis_eligible_future": eligibility.gbis["eligible"], + "gbis_eligible_future_message": eligibility.gbis["message"], + "eco4_eligible_future": eligibility.eco4["eligible"], + "eco4_eligible_future_message": eligibility.eco4["message"], + # Property components + "roof": eligibility.roof["clean_description"], + "walls": eligibility.walls["clean_description"], + "cavity_type": eligibility.cavity["type"], + "heating": eligibility.epc["mainheat-description"], + "tenure": eligibility.tenure, + "date_epc": eligibility.epc["lodgement-date"], + } + ) + + +def app(): + data = load_data() + + data["row_id"] = ["ha16" + str(i) for i in range(0, len(data))] + + cleaned = read_from_s3( + s3_file_name="cleaned_epc_data/cleaned.bson", + bucket_name="retrofit-data-dev" + ) + cleaned = msgpack.unpackb(cleaned, raw=False) + + cleaning_data = read_parquet_from_s3( + bucket_name="retrofit-data-dev", file_key="sap_change_model/cleaning_dataset.parquet", + ) + + created_at = datetime.now().isoformat() From 29f8fecdd0fde658beb7a0f04fb7f2bde541291d Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Wed, 27 Dec 2023 10:49:24 +0000 Subject: [PATCH 115/526] debugging issue with missing uprn --- etl/eligibility/ha_15_32/ha16_app.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/etl/eligibility/ha_15_32/ha16_app.py b/etl/eligibility/ha_15_32/ha16_app.py index f930452e..a1d25c53 100644 --- a/etl/eligibility/ha_15_32/ha16_app.py +++ b/etl/eligibility/ha_15_32/ha16_app.py @@ -293,8 +293,11 @@ def get_epc_data(data, cleaned, cleaning_data, created_at): eligibility.check_eco4() if eligibility.eco4_warmfront["eligible"]: + if eligibility.epc["uprn"] == "": + eligibility.epc["uprn"] = int(property_meta["row_id"].split("_")[1]) + scoring_dictionary = prepare_model_data_row( - property_id=eligibility.epc["uprn"], + property_id=property_meta["row_id"], modelling_epc=eligibility.epc, cleaned=cleaned, cleaning_data=cleaning_data, @@ -333,7 +336,7 @@ def get_epc_data(data, cleaned, cleaning_data, created_at): def app(): data = load_data() - data["row_id"] = ["ha16" + str(i) for i in range(0, len(data))] + data["row_id"] = ["ha16_" + str(i) for i in range(0, len(data))] cleaned = read_from_s3( s3_file_name="cleaned_epc_data/cleaned.bson", From a7c95107471667ad3ad9bbe44f7616f1c9e931d6 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Wed, 27 Dec 2023 10:59:01 +0000 Subject: [PATCH 116/526] Creating load data function for ha24 --- etl/eligibility/ha_15_32/ha24_app.py | 55 ++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 etl/eligibility/ha_15_32/ha24_app.py diff --git a/etl/eligibility/ha_15_32/ha24_app.py b/etl/eligibility/ha_15_32/ha24_app.py new file mode 100644 index 00000000..ab639003 --- /dev/null +++ b/etl/eligibility/ha_15_32/ha24_app.py @@ -0,0 +1,55 @@ +import msgpack +import openpyxl +from openpyxl.styles.colors import COLOR_INDEX +from pathlib import Path +from datetime import datetime +import pandas as pd +import numpy as np +from utils.s3 import read_from_s3 +from utils.logger import setup_logger +from dotenv import load_dotenv +from backend.app.utils import read_parquet_from_s3 +from tqdm import tqdm +from backend.SearchEpc import SearchEpc +from etl.eligibility.Eligibility import Eligibility +from etl.eligibility.ha_15_32.app import prepare_model_data_row +from etl.epc.DataProcessor import DataProcessor +from etl.epc.settings import COLUMNS_TO_MERGE_ON +from backend.ml_models.api import ModelApi + +import re + +ENV_FILE = Path(__file__).parent / "etl" / "eligibility" / "ha_15_32" / ".env" + +logger = setup_logger() +load_dotenv(ENV_FILE) + + +def load_data(): + workbook = openpyxl.load_workbook(f'etl/eligibility/ha_15_32/HESTIA - HA 24 ASSET LIST.xlsx') + sheet = workbook.active + sheet_colnames = [cell.value for cell in sheet[1]] + + rows_data = [] + rows_colors = [] + for row in sheet.iter_rows(min_row=2, values_only=False): # Assuming the first row is headers + row_data = [cell.value for cell in row] # This will get you the cell values + row_color = row[0].fill.start_color.index if row[0].fill.start_color.index != '00000000' else None + # row_color = COLOR_INDEX[row_color] + rows_data.append(row_data) + rows_colors.append(row_color) + + asset_list = pd.DataFrame(rows_data, columns=sheet_colnames) + # Remove None columns + asset_list = asset_list.iloc[:, 0:10] + asset_list['row_color'] = rows_colors + + asset_list["row_colour_name"] = np.where( + asset_list["row_color"] == "FFFF0000", "red", + np.where(asset_list["row_color"] == "FF92D050", "green", "yellow") + ) + + asset_list["row_colour_code"] = np.where( + asset_list["row_colour_name"] == "red", "does not meet criteria", + np.where(asset_list["row_colour_name"] == "green", "identified potential eco", "maybe in the future") + ) From 66ad7c3a147c1d2573de478194bed9fb50197286 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Wed, 27 Dec 2023 11:05:12 +0000 Subject: [PATCH 117/526] debugging ha7 eligibiltiy --- etl/eligibility/Eligibility.py | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/etl/eligibility/Eligibility.py b/etl/eligibility/Eligibility.py index 7a6fade1..364be3cc 100644 --- a/etl/eligibility/Eligibility.py +++ b/etl/eligibility/Eligibility.py @@ -235,6 +235,14 @@ class Eligibility: } def suspended_floor_insulation(self): + + if "no_data" in self.floor.keys(): + if self.floor["no_data"]: + self.suspended_floor = { + "suitability": False, + } + return + is_suspended = self.floor["is_suspended"] is_insulated = self.floor["insulation_thickness"] in ["average", "above average"] @@ -244,6 +252,14 @@ class Eligibility: return def solid_floor_insulation(self): + + if "no_data" in self.floor.keys(): + if self.floor["no_data"]: + self.solid_floor = { + "suitability": False, + } + return + is_solid = self.floor["is_solid"] is_insulated = self.floor["insulation_thickness"] in ["average", "above average"] From 88c245750d87b681afe4757ba820ae655f4a8b72 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Wed, 27 Dec 2023 12:17:38 +0000 Subject: [PATCH 118/526] Added analyse_results for ha16 --- etl/eligibility/ha_15_32/ha16_app.py | 152 ++++++++++++++++++++++++++- etl/eligibility/ha_15_32/ha24_app.py | 18 ++++ 2 files changed, 168 insertions(+), 2 deletions(-) diff --git a/etl/eligibility/ha_15_32/ha16_app.py b/etl/eligibility/ha_15_32/ha16_app.py index a1d25c53..678bf76f 100644 --- a/etl/eligibility/ha_15_32/ha16_app.py +++ b/etl/eligibility/ha_15_32/ha16_app.py @@ -247,7 +247,7 @@ def load_data(): ) data["warmfront_identified"] = data["warmfront_identified"].fillna(False) - return data + return data, survey_list def get_epc_data(data, cleaned, cleaning_data, created_at): @@ -332,9 +332,144 @@ def get_epc_data(data, cleaned, cleaning_data, created_at): } ) + scoring_df = pd.DataFrame(scoring_data) + + # Perform the same cleaning as in the model - first clean number of room variables though + scoring_df = DataProcessor.apply_averages_cleaning( + data_to_clean=scoring_df, + cleaning_data=cleaning_data, + cols_to_merge_on=['PROPERTY_TYPE', 'BUILT_FORM', 'CONSTRUCTION_AGE_BAND', 'LOCAL_AUTHORITY'], + colnames=["NUMBER_HABITABLE_ROOMS", "NUMBER_HEATED_ROOMS"], + ) + + scoring_df = DataProcessor.apply_averages_cleaning( + data_to_clean=scoring_df, + cleaning_data=cleaning_data, + cols_to_merge_on=COLUMNS_TO_MERGE_ON + ["LOCAL_AUTHORITY"], + ).drop(columns=["LOCAL_AUTHORITY"]) + + scoring_df = DataProcessor.clean_missings_after_description_process( + scoring_df, + ignore_cols=[c for c in scoring_df.columns if ("thermal_transmittance" in c) or ( + "insulation_thickness" in c) or ("ENERGY_EFF" in c)] + ) + + scoring_df = DataProcessor.clean_efficiency_variables(scoring_df) + scoring_df["UPRN"] = scoring_df["UPRN"].astype(int) + + model_api = ModelApi(portfolio_id="ha33-eligibility", timestamp=created_at) + all_predictions = model_api.predict_all( + df=scoring_df, + bucket="retrofit-data-dev", + prediction_buckets={ + "sap_change_predictions": "retrofit-sap-predictions-dev", + "heat_demand_predictions": "retrofit-heat-predictions-dev", + "carbon_change_predictions": "retrofit-carbon-predictions-dev" + } + ) + + predictions = all_predictions["sap_change_predictions"].copy() + + results_df = pd.DataFrame(results) + + predictions = predictions.rename(columns={"property_id": "row_id"}).merge( + results_df[["row_id", "sap"]], how="left", on="row_id" + ) + predictions["sap_uplift"] = predictions["predictions"] - predictions["sap"] + predictions = predictions.groupby("row_id")["sap_uplift"].sum().reset_index() + + results_df = results_df.merge( + predictions[["sap_uplift", "row_id"]], + how="left", + on="row_id" + ) + results_df["post_install_sap"] = results_df["sap"] + results_df["sap_uplift"] + + eligibility_assessment = [] + for _, row in results_df[results_df["eco4_eligible"] == True].iterrows(): + # The upgrade requirements are dependent on the current SAP + + # If the property is an F or G, it only needs to upgrade to an % + if row["sap"] <= 38: + if row["post_install_sap"] >= 57: + eligibility_classification = "highest confidence" + elif row["post_install_sap"] >= 55: + eligibility_classification = "high confidence" + elif row["post_install_sap"] >= 53: + eligibility_classification = "medium confidence" + else: + eligibility_classification = "unlikely" + else: + + if row["post_install_sap"] >= 71: + eligibility_classification = "highest confidence" + elif row["post_install_sap"] >= 69: + eligibility_classification = "high confidence" + elif row["post_install_sap"] >= 67: + eligibility_classification = "medium confidence" + else: + eligibility_classification = "unlikely" + + eligibility_assessment.append( + { + "row_id": row["row_id"], + "eligibility_classification": eligibility_classification + } + ) + + eligibility_assessment = pd.DataFrame(eligibility_assessment) + + results_df = results_df.merge( + eligibility_assessment, how="left", on="row_id" + ) + return results_df, scoring_data, nodata + + +def analyse_results(results_df, data, survey_list): + analysis_data = data[["row_id", "survey_key", "warmfront_identified"]].merge( + results_df, how="left", on="row_id" + ).merge( + survey_list[["survey_key", survey_list.columns[0]]].rename(columns={survey_list.columns[0]: "funding_scheme"}), + how="left", on="survey_key" + ) + + warmfront_identified = analysis_data[analysis_data["warmfront_identified"]] + + # Of the ECO jobs, what proportion to we get right + warmfront_identified_eco = warmfront_identified[ + warmfront_identified["funding_scheme"].isin(["ECO4 A/W", "AFFORDABLE WARMTH"]) + ] + + eco_success_rate = warmfront_identified_eco["eco4_eligible"].sum() / warmfront_identified_eco.shape[0] + + warmfront_identified_gbis = warmfront_identified[ + warmfront_identified["funding_scheme"].isin(["ECO4 GBIS (ECO+)"]) + ] + + gbis_success_rate = warmfront_identified_gbis["gbis_eligible"].sum() / warmfront_identified_gbis.shape[0] + + # Additional identified + additional_identified_eco = analysis_data[ + (analysis_data["eco4_eligible"] == True) & (analysis_data["warmfront_identified"] == False) + ].shape[0] + additional_identified_gbis = analysis_data[ + (analysis_data["gbis_eligible"] == True) & (analysis_data["eco4_eligible"] == False) & ( + analysis_data["warmfront_identified"] == False + ) + ].shape[0] + # Future + additional_identified_eco_future = analysis_data[ + (analysis_data["eco4_eligible_future"] == True) & (analysis_data["warmfront_identified"] == False) + ].shape[0] + additional_identified_gbis_future = analysis_data[ + (analysis_data["gbis_eligible_future"] == True) & (analysis_data["eco4_eligible_future"] == False) & ( + analysis_data["warmfront_identified"] == False + ) + ].shape[0] + def app(): - data = load_data() + data, survey_list = load_data() data["row_id"] = ["ha16_" + str(i) for i in range(0, len(data))] @@ -349,3 +484,16 @@ def app(): ) created_at = datetime.now().isoformat() + + results_df, scoring_data, nodata = get_epc_data(data, cleaned, cleaning_data, created_at) + + # Store + # import pickle + # with open("ha16.pickle", "wb") as f: + # pickle.dump( + # { + # "scoring_data": scoring_data, + # "results": results_df, + # "nodata": nodata + # }, f + # ) diff --git a/etl/eligibility/ha_15_32/ha24_app.py b/etl/eligibility/ha_15_32/ha24_app.py index ab639003..b8d114b6 100644 --- a/etl/eligibility/ha_15_32/ha24_app.py +++ b/etl/eligibility/ha_15_32/ha24_app.py @@ -53,3 +53,21 @@ def load_data(): asset_list["row_colour_name"] == "red", "does not meet criteria", np.where(asset_list["row_colour_name"] == "green", "identified potential eco", "maybe in the future") ) + + # Read in surveys + survey_workbook = openpyxl.load_workbook(f'etl/eligibility/ha_15_32/HESTIA - HA 24 ECO4 SURVEY LIST.xlsx') + survey_sheet = survey_workbook.active + + survey_rows = [] + survey_colors = [] + + for row in survey_sheet.iter_rows(min_row=2, values_only=False): # Assuming the first row is headers + row_data = [cell.value for cell in row] # This will get you the cell values + row_color = row[0].fill.start_color.index if row[0].fill.start_color.index != '00000000' else None + # row_color = COLOR_INDEX[row_color] + survey_rows.append(row_data) + survey_colors.append(row_color) + + survey_list = pd.DataFrame(survey_rows, columns=[cell.value for cell in survey_sheet[1]]) + # Drop all None rows + survey_list = survey_list.dropna(how='all') From c7972fc88d5f6b6dbb30a3cff47f7481d36d15c8 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Wed, 27 Dec 2023 13:14:52 +0000 Subject: [PATCH 119/526] finishing ha16 --- etl/eligibility/ha_15_32/ha16_app.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/etl/eligibility/ha_15_32/ha16_app.py b/etl/eligibility/ha_15_32/ha16_app.py index 678bf76f..7c1db158 100644 --- a/etl/eligibility/ha_15_32/ha16_app.py +++ b/etl/eligibility/ha_15_32/ha16_app.py @@ -451,7 +451,10 @@ def analyse_results(results_df, data, survey_list): # Additional identified additional_identified_eco = analysis_data[ (analysis_data["eco4_eligible"] == True) & (analysis_data["warmfront_identified"] == False) - ].shape[0] + ] + + additional_identified_eco["eligibility_classification"].value_counts() + additional_identified_gbis = analysis_data[ (analysis_data["gbis_eligible"] == True) & (analysis_data["eco4_eligible"] == False) & ( analysis_data["warmfront_identified"] == False From 975a9fa9a016540a3648aab03423dcd7c7169ef0 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Wed, 27 Dec 2023 13:29:29 +0000 Subject: [PATCH 120/526] setting up ha24 matching --- etl/eligibility/ha_15_32/ha24_app.py | 51 ++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) diff --git a/etl/eligibility/ha_15_32/ha24_app.py b/etl/eligibility/ha_15_32/ha24_app.py index b8d114b6..44cc27e2 100644 --- a/etl/eligibility/ha_15_32/ha24_app.py +++ b/etl/eligibility/ha_15_32/ha24_app.py @@ -54,6 +54,21 @@ def load_data(): np.where(asset_list["row_colour_name"] == "green", "identified potential eco", "maybe in the future") ) + # The third column is listed as "Address" but it's actually the postcode". We have two Address columns so we + # change just the third + asset_list.columns.values[2] = "Postcode" + + # Split up the address on commas, which is useful for matching later + split_addresses = asset_list['Address'].str.split(',', expand=True) + split_addresses.columns = ['temp', 'address2', 'address3', 'address4', 'address5', 'address6'] + + asset_list = pd.concat([asset_list, split_addresses], axis=1) + # There is no commas separating house number and address 1 + split_addresses2 = asset_list['temp'].str.split(' ', expand=True) + split_addresses2.columns = ['HouseNo', 'part1', 'part2', "part3", "part4"] + # We could re-concatenate but we only care about HouseNo for the moment + asset_list = pd.concat([asset_list, split_addresses2[["HouseNo"]]], axis=1) + # Read in surveys survey_workbook = openpyxl.load_workbook(f'etl/eligibility/ha_15_32/HESTIA - HA 24 ECO4 SURVEY LIST.xlsx') survey_sheet = survey_workbook.active @@ -69,5 +84,41 @@ def load_data(): survey_colors.append(row_color) survey_list = pd.DataFrame(survey_rows, columns=[cell.value for cell in survey_sheet[1]]) + + survey_list["row_colour"] = survey_colors + survey_list["survey_key"] = ["survey_" + str(i) for i in range(0, len(survey_list))] + # Tidy up the street/block name a bit + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace("/", ", ") + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.lower() + # Drop all None rows survey_list = survey_list.dropna(how='all') + survey_list["survey_key"] = ["survey_" + str(i) for i in range(0, len(survey_list))] + + matched = [] + for _, row in tqdm(survey_list.iterrows(), total=len(survey_list)): + house_number = row["NO."] + if isinstance(house_number, str): + house_number = house_number.lower() + + # Filter on the first line of the address + df = asset_list[asset_list["Address"].str.lower().str.contains(row["Street / Block Name"].lower())].copy() + # df = df[df["Postcode"].str.lower().str.contains(row["Post Code"].lower())] + df = df[df["Address"].str.lower().str.contains(str(house_number))] + if df.shape[0] != 1: + df = df[df["HouseNo"] == str(house_number)] + if df.shape[0] != 1: + df = df[df["Postcode"].str.lower().str.contains(row["Post Code"].lower())] + if df.shape[0] != 1: + raise ValueError("Investigate") + + matched.append( + { + "survey_key": row["survey_key"], + "matched_address": df["Address"].values[0], + "survey_house_no": row["NO."], + "survey_street_name": row["Street / Block Name"], + "survey_postcode": row["Post Code"], + "survey_status": row["INSTALLED OR CANCELLED"] + } + ) From 25684622f96b36a56f0736210e530865b564c90d Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Wed, 27 Dec 2023 13:32:42 +0000 Subject: [PATCH 121/526] working through matching ha24 --- etl/eligibility/ha_15_32/ha24_app.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/etl/eligibility/ha_15_32/ha24_app.py b/etl/eligibility/ha_15_32/ha24_app.py index 44cc27e2..3b4db9ca 100644 --- a/etl/eligibility/ha_15_32/ha24_app.py +++ b/etl/eligibility/ha_15_32/ha24_app.py @@ -90,6 +90,11 @@ def load_data(): # Tidy up the street/block name a bit survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace("/", ", ") survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.lower() + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.strip() + + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace( + "Council House/Nidds Lane", "NIDDS LANE" + ) # Drop all None rows survey_list = survey_list.dropna(how='all') From 02dc1241fbf26ddabd47d56e366dd17152341ac8 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Wed, 27 Dec 2023 15:03:36 +0000 Subject: [PATCH 122/526] completed matched for ha24 --- etl/eligibility/ha_15_32/ha24_app.py | 34 ++++++++++++++++++++++++++-- 1 file changed, 32 insertions(+), 2 deletions(-) diff --git a/etl/eligibility/ha_15_32/ha24_app.py b/etl/eligibility/ha_15_32/ha24_app.py index 3b4db9ca..a85ff5cf 100644 --- a/etl/eligibility/ha_15_32/ha24_app.py +++ b/etl/eligibility/ha_15_32/ha24_app.py @@ -93,11 +93,38 @@ def load_data(): survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.strip() survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace( - "Council House/Nidds Lane", "NIDDS LANE" + "council house, nidds lane", "nidds lane" + ) + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace( + "wirral avenue", "wirrall avenue" + ) + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace( + "st ives road", "st. ives crescent" + ) + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace( + "sundringham road", "sandringham road" + ) + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace( + "milton avenue", "milton road" + ) + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace( + "st ives crescent", "st. ives crescent" + ) + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace( + "council house, waterbelly lane", "waterbelly lane" + ) + # Generally remove "councile house, " from the start of the street name + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace( + "council house, ", "" + ) + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace( + "st. leodegars close", "st leodegars close" ) + # asset_list[asset_list["Address"].str.lower().str.contains("wirral")]["Address"] + # Drop all None rows - survey_list = survey_list.dropna(how='all') + survey_list = survey_list[~pd.isnull(survey_list["Street / Block Name"])] survey_list["survey_key"] = ["survey_" + str(i) for i in range(0, len(survey_list))] matched = [] @@ -115,6 +142,9 @@ def load_data(): if df.shape[0] != 1: df = df[df["Postcode"].str.lower().str.contains(row["Post Code"].lower())] if df.shape[0] != 1: + print(row["Street / Block Name"]) + print(house_number) + print(row["Post Code"].lower()) raise ValueError("Investigate") matched.append( From 8a27daf71b004358b8953edc40a8eb8a2c690d82 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Wed, 27 Dec 2023 15:04:46 +0000 Subject: [PATCH 123/526] completed load_data, setup app and get_epc_data --- etl/eligibility/ha_15_32/ha24_app.py | 35 ++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/etl/eligibility/ha_15_32/ha24_app.py b/etl/eligibility/ha_15_32/ha24_app.py index a85ff5cf..fd362930 100644 --- a/etl/eligibility/ha_15_32/ha24_app.py +++ b/etl/eligibility/ha_15_32/ha24_app.py @@ -157,3 +157,38 @@ def load_data(): "survey_status": row["INSTALLED OR CANCELLED"] } ) + + matched = pd.DataFrame(matched) + matched["warmfront_identified"] = True + + # Combine asset list and surveys + data = asset_list.merge( + matched, how="left", left_on="Address", right_on="matched_address", + ) + data["warmfront_identified"] = data["warmfront_identified"].fillna(False) + + return data, survey_list + + +def get_epc_data(data, cleaned, cleaning_data, created_at): + pass + + +def app(): + data, survey_list = load_data() + + data["row_id"] = ["ha16_" + str(i) for i in range(0, len(data))] + + cleaned = read_from_s3( + s3_file_name="cleaned_epc_data/cleaned.bson", + bucket_name="retrofit-data-dev" + ) + cleaned = msgpack.unpackb(cleaned, raw=False) + + cleaning_data = read_parquet_from_s3( + bucket_name="retrofit-data-dev", file_key="sap_change_model/cleaning_dataset.parquet", + ) + + created_at = datetime.now().isoformat() + + results_df, scoring_data, nodata = get_epc_data(data, cleaned, cleaning_data, created_at) From 7878983dbea6e9bbf9d706621df73e451d638732 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Wed, 27 Dec 2023 15:05:47 +0000 Subject: [PATCH 124/526] put in get_epc_data --- etl/eligibility/ha_15_32/ha24_app.py | 173 ++++++++++++++++++++++++++- 1 file changed, 172 insertions(+), 1 deletion(-) diff --git a/etl/eligibility/ha_15_32/ha24_app.py b/etl/eligibility/ha_15_32/ha24_app.py index fd362930..b53f01f4 100644 --- a/etl/eligibility/ha_15_32/ha24_app.py +++ b/etl/eligibility/ha_15_32/ha24_app.py @@ -171,7 +171,178 @@ def load_data(): def get_epc_data(data, cleaned, cleaning_data, created_at): - pass + scoring_data = [] + results = [] + nodata = [] + + for _, property_meta in tqdm(data.iterrows(), total=len(data)): + searcher = SearchEpc( + address1=property_meta["HouseNo"], + postcode=property_meta["Postcode"], + size=1000 + ) + searcher.search() + + if searcher.data is None: + nodata.append(property_meta) + continue + + newest_epc, older_epcs, full_sap_epc = searcher.retrieve(address=property_meta["Address"]) + # We also want to get the penultimate epc + penultimate_epc, _ = searcher.filter_newest_epc(older_epcs) + if not penultimate_epc: + penultimate_epc = newest_epc + + eligibility = Eligibility(epc=newest_epc, cleaned=cleaned) + eligibility.check_gbis_warmfront() + eligibility.check_eco4_warmfront() + + if (not eligibility.eco4_warmfront["eligible"]) and (not eligibility.gbis_warmfront) and ( + property_meta["warmfront_identified"] + ): + eligibility = Eligibility(epc=penultimate_epc, cleaned=cleaned) + eligibility.check_gbis_warmfront() + eligibility.check_eco4_warmfront() + # If this is the case, we need to update the older epcs + older_epcs = [ + x for x in older_epcs if x["lmk-key"] not in [newest_epc["lmk-key"], penultimate_epc["lmk-key"]] + ] + + # Full checks + eligibility.check_gbis() + eligibility.check_eco4() + + if eligibility.eco4_warmfront["eligible"]: + if eligibility.epc["uprn"] == "": + eligibility.epc["uprn"] = int(property_meta["row_id"].split("_")[1]) + + scoring_dictionary = prepare_model_data_row( + property_id=property_meta["row_id"], + modelling_epc=eligibility.epc, + cleaned=cleaned, + cleaning_data=cleaning_data, + created_at=created_at, + old_data=older_epcs, + full_sap_epc=full_sap_epc + ) + scoring_data.extend(scoring_dictionary) + + results.append( + { + "row_id": property_meta["row_id"], + "uprn": eligibility.epc["uprn"], + "Address": property_meta["Address"], + "Postcode": property_meta["Postcode"], + "property_type": eligibility.epc["property-type"], + "gbis_eligible": eligibility.gbis_warmfront, + "eco4_eligible": eligibility.eco4_warmfront["eligible"], + "eco4_message": eligibility.eco4_warmfront["message"], + "sap": float(eligibility.epc["current-energy-efficiency"]), + "gbis_eligible_future": eligibility.gbis["eligible"], + "gbis_eligible_future_message": eligibility.gbis["message"], + "eco4_eligible_future": eligibility.eco4["eligible"], + "eco4_eligible_future_message": eligibility.eco4["message"], + # Property components + "roof": eligibility.roof["clean_description"], + "walls": eligibility.walls["clean_description"], + "cavity_type": eligibility.cavity["type"], + "heating": eligibility.epc["mainheat-description"], + "tenure": eligibility.tenure, + "date_epc": eligibility.epc["lodgement-date"], + } + ) + + scoring_df = pd.DataFrame(scoring_data) + + # Perform the same cleaning as in the model - first clean number of room variables though + scoring_df = DataProcessor.apply_averages_cleaning( + data_to_clean=scoring_df, + cleaning_data=cleaning_data, + cols_to_merge_on=['PROPERTY_TYPE', 'BUILT_FORM', 'CONSTRUCTION_AGE_BAND', 'LOCAL_AUTHORITY'], + colnames=["NUMBER_HABITABLE_ROOMS", "NUMBER_HEATED_ROOMS"], + ) + + scoring_df = DataProcessor.apply_averages_cleaning( + data_to_clean=scoring_df, + cleaning_data=cleaning_data, + cols_to_merge_on=COLUMNS_TO_MERGE_ON + ["LOCAL_AUTHORITY"], + ).drop(columns=["LOCAL_AUTHORITY"]) + + scoring_df = DataProcessor.clean_missings_after_description_process( + scoring_df, + ignore_cols=[c for c in scoring_df.columns if ("thermal_transmittance" in c) or ( + "insulation_thickness" in c) or ("ENERGY_EFF" in c)] + ) + + scoring_df = DataProcessor.clean_efficiency_variables(scoring_df) + scoring_df["UPRN"] = scoring_df["UPRN"].astype(int) + + model_api = ModelApi(portfolio_id="ha33-eligibility", timestamp=created_at) + all_predictions = model_api.predict_all( + df=scoring_df, + bucket="retrofit-data-dev", + prediction_buckets={ + "sap_change_predictions": "retrofit-sap-predictions-dev", + "heat_demand_predictions": "retrofit-heat-predictions-dev", + "carbon_change_predictions": "retrofit-carbon-predictions-dev" + } + ) + + predictions = all_predictions["sap_change_predictions"].copy() + + results_df = pd.DataFrame(results) + + predictions = predictions.rename(columns={"property_id": "row_id"}).merge( + results_df[["row_id", "sap"]], how="left", on="row_id" + ) + predictions["sap_uplift"] = predictions["predictions"] - predictions["sap"] + predictions = predictions.groupby("row_id")["sap_uplift"].sum().reset_index() + + results_df = results_df.merge( + predictions[["sap_uplift", "row_id"]], + how="left", + on="row_id" + ) + results_df["post_install_sap"] = results_df["sap"] + results_df["sap_uplift"] + + eligibility_assessment = [] + for _, row in results_df[results_df["eco4_eligible"] == True].iterrows(): + # The upgrade requirements are dependent on the current SAP + + # If the property is an F or G, it only needs to upgrade to an % + if row["sap"] <= 38: + if row["post_install_sap"] >= 57: + eligibility_classification = "highest confidence" + elif row["post_install_sap"] >= 55: + eligibility_classification = "high confidence" + elif row["post_install_sap"] >= 53: + eligibility_classification = "medium confidence" + else: + eligibility_classification = "unlikely" + else: + + if row["post_install_sap"] >= 71: + eligibility_classification = "highest confidence" + elif row["post_install_sap"] >= 69: + eligibility_classification = "high confidence" + elif row["post_install_sap"] >= 67: + eligibility_classification = "medium confidence" + else: + eligibility_classification = "unlikely" + + eligibility_assessment.append( + { + "row_id": row["row_id"], + "eligibility_classification": eligibility_classification + } + ) + + eligibility_assessment = pd.DataFrame(eligibility_assessment) + + results_df = results_df.merge( + eligibility_assessment, how="left", on="row_id" + ) + return results_df, scoring_data, nodata def app(): From f68256ee12f0976e4750f02553a57811b6707abf Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Wed, 27 Dec 2023 15:37:16 +0000 Subject: [PATCH 125/526] Completed HA24 --- etl/eligibility/ha_15_32/ha24_app.py | 58 +++++++++++++++++++++ etl/eligibility/ha_15_32/ha25_app.py | 76 ++++++++++++++++++++++++++++ 2 files changed, 134 insertions(+) create mode 100644 etl/eligibility/ha_15_32/ha25_app.py diff --git a/etl/eligibility/ha_15_32/ha24_app.py b/etl/eligibility/ha_15_32/ha24_app.py index b53f01f4..dca2b60f 100644 --- a/etl/eligibility/ha_15_32/ha24_app.py +++ b/etl/eligibility/ha_15_32/ha24_app.py @@ -345,6 +345,53 @@ def get_epc_data(data, cleaned, cleaning_data, created_at): return results_df, scoring_data, nodata +def analyse_results(results_df, data, survey_list): + analysis_data = data[["row_id", "survey_key", "warmfront_identified"]].merge( + results_df, how="left", on="row_id" + ).merge( + survey_list[["survey_key", survey_list.columns[0]]].rename(columns={survey_list.columns[0]: "funding_scheme"}), + how="left", on="survey_key" + ) + + warmfront_identified = analysis_data[analysis_data["warmfront_identified"]] + + # Of the ECO jobs, what proportion to we get right + warmfront_identified_eco = warmfront_identified[ + warmfront_identified["funding_scheme"].isin(["ECO4 A/W", "AFFORDABLE WARMTH"]) + ] + + eco_success_rate = warmfront_identified_eco["eco4_eligible"].sum() / warmfront_identified_eco.shape[0] + + warmfront_identified_gbis = warmfront_identified[ + warmfront_identified["funding_scheme"].isin(["ECO4 GBIS (ECO+)"]) + ] + + # No gbis for this + # gbis_success_rate = warmfront_identified_gbis["gbis_eligible"].sum() / warmfront_identified_gbis.shape[0] + + # Additional identified + additional_identified_eco = analysis_data[ + (analysis_data["eco4_eligible"] == True) & (analysis_data["warmfront_identified"] == False) + ] + + additional_identified_eco["eligibility_classification"].value_counts() + + additional_identified_gbis = analysis_data[ + (analysis_data["gbis_eligible"] == True) & (analysis_data["eco4_eligible"] == False) & ( + analysis_data["warmfront_identified"] == False + ) + ].shape[0] + # Future + additional_identified_eco_future = analysis_data[ + (analysis_data["eco4_eligible_future"] == True) & (analysis_data["warmfront_identified"] == False) + ].shape[0] + additional_identified_gbis_future = analysis_data[ + (analysis_data["gbis_eligible_future"] == True) & (analysis_data["eco4_eligible_future"] == False) & ( + analysis_data["warmfront_identified"] == False + ) + ].shape[0] + + def app(): data, survey_list = load_data() @@ -363,3 +410,14 @@ def app(): created_at = datetime.now().isoformat() results_df, scoring_data, nodata = get_epc_data(data, cleaned, cleaning_data, created_at) + + # Pickle results just in case + # import pickle + # with open("ha24.pickle", "wb") as f: + # pickle.dump( + # { + # "scoring_data": scoring_data, + # "results": results_df, + # "nodata": nodata + # }, f + # ) diff --git a/etl/eligibility/ha_15_32/ha25_app.py b/etl/eligibility/ha_15_32/ha25_app.py new file mode 100644 index 00000000..473ba9de --- /dev/null +++ b/etl/eligibility/ha_15_32/ha25_app.py @@ -0,0 +1,76 @@ +import msgpack +import openpyxl +from openpyxl.styles.colors import COLOR_INDEX +from pathlib import Path +from datetime import datetime +import pandas as pd +import numpy as np +from utils.s3 import read_from_s3 +from utils.logger import setup_logger +from dotenv import load_dotenv +from backend.app.utils import read_parquet_from_s3 +from tqdm import tqdm +from backend.SearchEpc import SearchEpc +from etl.eligibility.Eligibility import Eligibility +from etl.eligibility.ha_15_32.app import prepare_model_data_row +from etl.epc.DataProcessor import DataProcessor +from etl.epc.settings import COLUMNS_TO_MERGE_ON +from backend.ml_models.api import ModelApi + +import re + +ENV_FILE = Path(__file__).parent / "etl" / "eligibility" / "ha_15_32" / ".env" + +logger = setup_logger() +load_dotenv(ENV_FILE) + + +def load_data(): + workbook = openpyxl.load_workbook('etl/eligibility/ha_15_32/HESTIA - HA 25 ASSET LIST.xlsx') + sheet = workbook.active + sheet_colnames = [cell.value for cell in sheet[1]] + + rows_data = [] + rows_colors = [] + for row in sheet.iter_rows(min_row=2, values_only=False): # Assuming the first row is headers + row_data = [cell.value for cell in row] # This will get you the cell values + row_color = row[0].fill.start_color.index if row[0].fill.start_color.index != '00000000' else None + # row_color = COLOR_INDEX[row_color] + rows_data.append(row_data) + rows_colors.append(row_color) + + asset_list = pd.DataFrame(rows_data, columns=sheet_colnames) + asset_list['row_color'] = rows_colors + + asset_list["row_colour_name"] = np.where( + asset_list["row_color"] == "FFFF0000", "red", + np.where(asset_list["row_color"] == "FF00B050", "green", "yellow") + ) + + asset_list["row_colour_code"] = np.where( + asset_list["row_colour_name"] == "red", "does not meet criteria", + np.where(asset_list["row_colour_name"] == "green", "identified potential eco", "maybe in the future") + ) + + # We analysis historical ECO3 survey list + eco3_survey_workbook = openpyxl.load_workbook(f'etl/eligibility/ha_15_32/HESTIA - HA 25 ECO3 SURVEY LIST.xlsx') + dir(eco3_survey_workbook) + eco3_survey_sheet = eco3_survey_workbook.active + + eco3_survey_rows = [] + eco3_survey_colors = [] + + for row in eco3_survey_sheet.iter_rows(min_row=2, values_only=False): # Assuming the first row is headers + row_data = [cell.value for cell in row] # This will get you the cell values + row_color = row[0].fill.start_color.index if row[0].fill.start_color.index != '00000000' else None + # row_color = COLOR_INDEX[row_color] + eco3_survey_rows.append(row_data) + eco3_survey_colors.append(row_color) + + # Some adhoc analysis on the eco3 survey list, just to get completion and cancellation rates historically + eco3_survey_list = pd.DataFrame(eco3_survey_rows, columns=[cell.value for cell in eco3_survey_sheet[1]]) + eco3_survey_list["row_colour"] = eco3_survey_colors + # Remove rows where street name is missing + eco3_survey_list = eco3_survey_list[~pd.isnull(eco3_survey_list["Street / Block Name"])] + + eco3_survey_list["INSTALLED OR CANCELLED"] From d51e1c913d61368b2d256121f9af3c6917fd2ef7 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Wed, 27 Dec 2023 16:03:31 +0000 Subject: [PATCH 126/526] working on loading data for ha25 --- etl/eligibility/ha_15_32/ha25_app.py | 113 +++++++++++++++++++++++++-- 1 file changed, 108 insertions(+), 5 deletions(-) diff --git a/etl/eligibility/ha_15_32/ha25_app.py b/etl/eligibility/ha_15_32/ha25_app.py index 473ba9de..244bb5fd 100644 --- a/etl/eligibility/ha_15_32/ha25_app.py +++ b/etl/eligibility/ha_15_32/ha25_app.py @@ -28,11 +28,24 @@ load_dotenv(ENV_FILE) def load_data(): workbook = openpyxl.load_workbook('etl/eligibility/ha_15_32/HESTIA - HA 25 ASSET LIST.xlsx') sheet = workbook.active - sheet_colnames = [cell.value for cell in sheet[1]] + # There are no colnames so we create them ourselves + sheet_colnames = [ + "property_reference", + "address", + "tenure", + "property_type", + "unknown1", + "year_built", + "unknown2", + "heating_type", + "wall_type", + "roof_type", + "postcode" + ] rows_data = [] rows_colors = [] - for row in sheet.iter_rows(min_row=2, values_only=False): # Assuming the first row is headers + for row in sheet.iter_rows(min_row=1, values_only=False): # Assuming the first row is headers row_data = [cell.value for cell in row] # This will get you the cell values row_color = row[0].fill.start_color.index if row[0].fill.start_color.index != '00000000' else None # row_color = COLOR_INDEX[row_color] @@ -54,8 +67,7 @@ def load_data(): # We analysis historical ECO3 survey list eco3_survey_workbook = openpyxl.load_workbook(f'etl/eligibility/ha_15_32/HESTIA - HA 25 ECO3 SURVEY LIST.xlsx') - dir(eco3_survey_workbook) - eco3_survey_sheet = eco3_survey_workbook.active + eco3_survey_sheet = eco3_survey_workbook["CAVITY"] eco3_survey_rows = [] eco3_survey_colors = [] @@ -72,5 +84,96 @@ def load_data(): eco3_survey_list["row_colour"] = eco3_survey_colors # Remove rows where street name is missing eco3_survey_list = eco3_survey_list[~pd.isnull(eco3_survey_list["Street / Block Name"])] + # We need to parse the row colours + # We have the following mappings: + # FF7030A0: purple + # FF92D050: green + # FFFF0000: red + # FFFFFF00: yellow + # FF38FD23: green + eco3_survey_list["row_colour_name"] = np.where( + eco3_survey_list["row_colour"] == "FF7030A0", "purple", + np.where(eco3_survey_list["row_colour"] == "FF92D050", "green", + np.where(eco3_survey_list["row_colour"] == "FFFF0000", "red", + np.where(eco3_survey_list["row_colour"] == "FFFFFF00", "yellow", + np.where(eco3_survey_list["row_colour"] == "FF38FD23", "green", "unknown") + ) + ) + ) + ) - eco3_survey_list["INSTALLED OR CANCELLED"] + # We map the meaning: + # red: cancelled + # green: installed advised install complete + # purple: installer advised install complete + post works EPC + # yellow: filler row - drop + eco3_survey_list["row_colour_code"] = np.where( + eco3_survey_list["row_colour_name"] == "red", "cancelled", + np.where(eco3_survey_list["row_colour_name"] == "green", "installed advised install complete", + np.where(eco3_survey_list["row_colour_name"] == "purple", + "installer advised install complete + post works EPC", + np.where(eco3_survey_list["row_colour_name"] == "yellow", "filler row - drop", "unknown") + ) + ) + ) + + # This is good enough for the indicative cancellation rates + + # We now read in the indicative survey list which identified pospects for ECO4 works + eco4_survey_workbook = openpyxl.load_workbook( + f'etl/eligibility/ha_15_32/HESTIA - HA 25 ADHOC ISOLATED IDENTIFIED PROPERTIES FOR CWI.xlsx' + ) + eco4_prospect_survey_sheet = eco4_survey_workbook["LiveWest"] + + eco4_prospects_survey_rows = [] + eco4_prospects_survey_colors = [] + + for row in eco4_prospect_survey_sheet.iter_rows(min_row=2, values_only=False): # Assuming the first row is headers + row_data = [cell.value for cell in row] # This will get you the cell values + row_color = row[0].fill.start_color.index if row[0].fill.start_color.index != '00000000' else None + # row_color = COLOR_INDEX[row_color] + eco4_prospects_survey_rows.append(row_data) + eco4_prospects_survey_colors.append(row_color) + + # Some adhoc analysis on the eco3 survey list, just to get completion and cancellation rates historically + eco4_prospects_survey_list = pd.DataFrame( + eco4_prospects_survey_rows, columns=[cell.value for cell in eco4_prospect_survey_sheet[1]] + ) + eco4_prospects_survey_list["row_colour"] = eco4_prospects_survey_colors + + eco4_prospects_survey_list["ADDRESS 1"] = eco4_prospects_survey_list["ADDRESS 1"].str.lower() + eco4_prospects_survey_list["ADDRESS 1"] = eco4_prospects_survey_list["ADDRESS 1"].str.strip() + + eco4_prospects_survey_list = eco4_prospects_survey_list[~pd.isnull(eco4_prospects_survey_list["ADDRESS 1"])] + eco4_prospects_survey_list["survey_key"] = ["survey_" + str(i) for i in range(0, len(eco4_prospects_survey_list))] + + matched = [] + for _, row in tqdm(eco4_prospects_survey_list.iterrows(), total=len(eco4_prospects_survey_list)): + house_number = row["NO"] + if isinstance(house_number, str): + house_number = house_number.lower() + + # Filter on the first line of the address + df = asset_list[asset_list["Address"].str.lower().str.contains(row["Street / Block Name"].lower())].copy() + # df = df[df["Postcode"].str.lower().str.contains(row["Post Code"].lower())] + df = df[df["Address"].str.lower().str.contains(str(house_number))] + if df.shape[0] != 1: + df = df[df["HouseNo"] == str(house_number)] + if df.shape[0] != 1: + df = df[df["Postcode"].str.lower().str.contains(row["Post Code"].lower())] + if df.shape[0] != 1: + print(row["Street / Block Name"]) + print(house_number) + print(row["Post Code"].lower()) + raise ValueError("Investigate") + + matched.append( + { + "survey_key": row["survey_key"], + "matched_address": df["Address"].values[0], + "survey_house_no": row["NO."], + "survey_street_name": row["Street / Block Name"], + "survey_postcode": row["Post Code"], + "survey_status": row["INSTALLED OR CANCELLED"] + } + ) From 0e5c343319a658499539509e06139990cacc2a9e Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Thu, 28 Dec 2023 10:51:53 +0000 Subject: [PATCH 127/526] formatting asset list --- etl/eligibility/ha_15_32/ha25_app.py | 58 ++++++++++++++++------------ 1 file changed, 34 insertions(+), 24 deletions(-) diff --git a/etl/eligibility/ha_15_32/ha25_app.py b/etl/eligibility/ha_15_32/ha25_app.py index 244bb5fd..88502e69 100644 --- a/etl/eligibility/ha_15_32/ha25_app.py +++ b/etl/eligibility/ha_15_32/ha25_app.py @@ -26,33 +26,31 @@ load_dotenv(ENV_FILE) def load_data(): - workbook = openpyxl.load_workbook('etl/eligibility/ha_15_32/HESTIA - HA 25 ASSET LIST.xlsx') + workbook = openpyxl.load_workbook('etl/eligibility/ha_15_32/HESTIA - HA 25 ASSET LIST.xlsx', data_only=True) sheet = workbook.active - # There are no colnames so we create them ourselves - sheet_colnames = [ - "property_reference", - "address", - "tenure", - "property_type", - "unknown1", - "year_built", - "unknown2", - "heating_type", - "wall_type", - "roof_type", - "postcode" - ] rows_data = [] rows_colors = [] - for row in sheet.iter_rows(min_row=1, values_only=False): # Assuming the first row is headers - row_data = [cell.value for cell in row] # This will get you the cell values - row_color = row[0].fill.start_color.index if row[0].fill.start_color.index != '00000000' else None - # row_color = COLOR_INDEX[row_color] + for row in sheet.iter_rows(min_row=1, values_only=True): # use values_only=True to get values + + row_data = list(row) # No need for comprehension, values_only=True returns a tuple of values rows_data.append(row_data) + + # Headers are on the final row. Pop them off and store them and then remove them from rows_data + headers = rows_data.pop() + # The postcode header is None, so we replace it with "postcode" + headers[-1] = "postcode" + + # Handle colours separately + for row in sheet.iter_rows(min_row=1, values_only=False): + # Assume first cell color is indicative of entire row + row_color = row[0].fill.start_color.index if row[0].fill.start_color.index != '00000000' else None rows_colors.append(row_color) - asset_list = pd.DataFrame(rows_data, columns=sheet_colnames) + # Remove the final row of colours, which is the header + rows_colors.pop() + + asset_list = pd.DataFrame(rows_data, columns=headers) asset_list['row_color'] = rows_colors asset_list["row_colour_name"] = np.where( @@ -65,6 +63,19 @@ def load_data(): np.where(asset_list["row_colour_name"] == "green", "identified potential eco", "maybe in the future") ) + asset_list["address"] = asset_list["T1_Address"].copy().str.lower() + asset_list["address"] = asset_list["address"].str.replace("flat", "") + asset_list["address"] = asset_list["address"].str.strip() + + split_addresses = asset_list['address'].str.split(' ', expand=True) + split_addresses.columns = ['HouseNo', 'address2', 'address3', 'address4', 'address5', 'address6', 'address7', + 'address8', + 'address9', 'address10', 'address11', 'address12', 'address13'] + split_addresses["HouseNo"] = split_addresses["HouseNo"].str.replace(";", "") + + # We could re-concatenate but we only care about HouseNo for the moment + asset_list = pd.concat([asset_list, split_addresses[["HouseNo"]]], axis=1) + # We analysis historical ECO3 survey list eco3_survey_workbook = openpyxl.load_workbook(f'etl/eligibility/ha_15_32/HESTIA - HA 25 ECO3 SURVEY LIST.xlsx') eco3_survey_sheet = eco3_survey_workbook["CAVITY"] @@ -154,13 +165,12 @@ def load_data(): house_number = house_number.lower() # Filter on the first line of the address - df = asset_list[asset_list["Address"].str.lower().str.contains(row["Street / Block Name"].lower())].copy() - # df = df[df["Postcode"].str.lower().str.contains(row["Post Code"].lower())] - df = df[df["Address"].str.lower().str.contains(str(house_number))] + df = asset_list[asset_list["T1_Address"].str.lower().str.contains(row["ADDRESS 1"].lower())].copy() + df = df[df["T1_Address"].str.lower().str.contains(str(house_number))] if df.shape[0] != 1: df = df[df["HouseNo"] == str(house_number)] if df.shape[0] != 1: - df = df[df["Postcode"].str.lower().str.contains(row["Post Code"].lower())] + df = df[df["postcode"].str.lower().str.contains(row["POSTCODE"].lower())] if df.shape[0] != 1: print(row["Street / Block Name"]) print(house_number) From e49101767a742fdd48ce392476ef66afa7f78662 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Thu, 28 Dec 2023 10:56:24 +0000 Subject: [PATCH 128/526] working on matching --- etl/eligibility/ha_15_32/ha25_app.py | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/etl/eligibility/ha_15_32/ha25_app.py b/etl/eligibility/ha_15_32/ha25_app.py index 88502e69..1ad650bc 100644 --- a/etl/eligibility/ha_15_32/ha25_app.py +++ b/etl/eligibility/ha_15_32/ha25_app.py @@ -70,7 +70,7 @@ def load_data(): split_addresses = asset_list['address'].str.split(' ', expand=True) split_addresses.columns = ['HouseNo', 'address2', 'address3', 'address4', 'address5', 'address6', 'address7', 'address8', - 'address9', 'address10', 'address11', 'address12', 'address13'] + 'address9', 'address10', 'address11', 'address12', 'address13', 'address14', ] split_addresses["HouseNo"] = split_addresses["HouseNo"].str.replace(";", "") # We could re-concatenate but we only care about HouseNo for the moment @@ -164,6 +164,9 @@ def load_data(): if isinstance(house_number, str): house_number = house_number.lower() + if "flat" in house_number: + house_number = house_number.split("flat")[1].strip() + # Filter on the first line of the address df = asset_list[asset_list["T1_Address"].str.lower().str.contains(row["ADDRESS 1"].lower())].copy() df = df[df["T1_Address"].str.lower().str.contains(str(house_number))] @@ -172,18 +175,17 @@ def load_data(): if df.shape[0] != 1: df = df[df["postcode"].str.lower().str.contains(row["POSTCODE"].lower())] if df.shape[0] != 1: - print(row["Street / Block Name"]) + print(row["ADDRESS 1"]) print(house_number) - print(row["Post Code"].lower()) + print(row["POSTCODE"].lower()) raise ValueError("Investigate") matched.append( { "survey_key": row["survey_key"], - "matched_address": df["Address"].values[0], - "survey_house_no": row["NO."], - "survey_street_name": row["Street / Block Name"], - "survey_postcode": row["Post Code"], - "survey_status": row["INSTALLED OR CANCELLED"] + "matched_address": df["T1_Address"].values[0], + "survey_house_no": row["NO"], + "survey_street_name": row["ADDRESS 1"], + "survey_postcode": row["POSTCODE"], } ) From 4dbd76a4053b219fa5582ceb8e078b444babc325 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Thu, 28 Dec 2023 11:13:20 +0000 Subject: [PATCH 129/526] debugging matching --- etl/eligibility/ha_15_32/ha25_app.py | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/etl/eligibility/ha_15_32/ha25_app.py b/etl/eligibility/ha_15_32/ha25_app.py index 1ad650bc..52d11a27 100644 --- a/etl/eligibility/ha_15_32/ha25_app.py +++ b/etl/eligibility/ha_15_32/ha25_app.py @@ -158,8 +158,29 @@ def load_data(): eco4_prospects_survey_list = eco4_prospects_survey_list[~pd.isnull(eco4_prospects_survey_list["ADDRESS 1"])] eco4_prospects_survey_list["survey_key"] = ["survey_" + str(i) for i in range(0, len(eco4_prospects_survey_list))] + # Correct some errors in the survey list + eco4_prospects_survey_list["POSTCODE"] = np.where( + (eco4_prospects_survey_list["ADDRESS 1"] == "berry park") & + (eco4_prospects_survey_list["POSTCODE"] == "PL12 6HP"), + "PL12 6EN", + eco4_prospects_survey_list["POSTCODE"] + ) + + # Remove semi colons from address in asset and survey list + asset_list["T1_Address"] = asset_list["T1_Address"].str.replace(";", "") + eco4_prospects_survey_list["ADDRESS 1"] = eco4_prospects_survey_list["ADDRESS 1"].str.replace(";", "") + + # In the prosepcts survey list, we have 6 WALKHAM MEADOWS listed twice, which should be 6a and 6b + eco4_prospects_survey_list.loc[838, "NO"] = "6a" + eco4_prospects_survey_list.loc[839, "NO"] = "6b" + matched = [] for _, row in tqdm(eco4_prospects_survey_list.iterrows(), total=len(eco4_prospects_survey_list)): + + # Not in the survey list + if (row["ADDRESS 1"] == "berry park") and row["NO"] in [40, 42] and row["POSTCODE"] == "PL12 6EN": + continue + house_number = row["NO"] if isinstance(house_number, str): house_number = house_number.lower() From f2305fa9b22d15bd9b48e1e0c9ced179db148283 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Thu, 28 Dec 2023 11:21:32 +0000 Subject: [PATCH 130/526] fixing matching wip --- etl/eligibility/ha_15_32/ha25_app.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/etl/eligibility/ha_15_32/ha25_app.py b/etl/eligibility/ha_15_32/ha25_app.py index 52d11a27..85cfe7c9 100644 --- a/etl/eligibility/ha_15_32/ha25_app.py +++ b/etl/eligibility/ha_15_32/ha25_app.py @@ -174,6 +174,14 @@ def load_data(): eco4_prospects_survey_list.loc[838, "NO"] = "6a" eco4_prospects_survey_list.loc[839, "NO"] = "6b" + # 3, 7, 9 BOLDVENTURE ROAD should be BOLDVENTURE CLOSE + eco4_prospects_survey_list["ADDRESS 1"] = np.where( + (eco4_prospects_survey_list["ADDRESS 1"] == "boldventure road") & + (eco4_prospects_survey_list["NO"].isin([3, 7, 9])), + "boldventure close", + eco4_prospects_survey_list["ADDRESS 1"] + ) + matched = [] for _, row in tqdm(eco4_prospects_survey_list.iterrows(), total=len(eco4_prospects_survey_list)): From dcc775719041e96c26c0003275da889fe8829774 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Thu, 28 Dec 2023 11:36:04 +0000 Subject: [PATCH 131/526] 41% through matching --- etl/eligibility/ha_15_32/ha25_app.py | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/etl/eligibility/ha_15_32/ha25_app.py b/etl/eligibility/ha_15_32/ha25_app.py index 85cfe7c9..3ff43291 100644 --- a/etl/eligibility/ha_15_32/ha25_app.py +++ b/etl/eligibility/ha_15_32/ha25_app.py @@ -182,13 +182,24 @@ def load_data(): eco4_prospects_survey_list["ADDRESS 1"] ) + eco4_prospects_survey_list["ADDRESS 1"] = np.where( + (eco4_prospects_survey_list["ADDRESS 1"] == "old farm road") & ( + eco4_prospects_survey_list["POSTCODE"] == "PL5 1EP"), + "old school road", + eco4_prospects_survey_list["ADDRESS 1"] + ) + matched = [] for _, row in tqdm(eco4_prospects_survey_list.iterrows(), total=len(eco4_prospects_survey_list)): - # Not in the survey list + # Not in the asset list if (row["ADDRESS 1"] == "berry park") and row["NO"] in [40, 42] and row["POSTCODE"] == "PL12 6EN": continue + # Not in the asset list + if (row["ADDRESS 1"] == "roberts road") and row["NO"] == 23 and row["POSTCODE"] == "PL5 1DP": + continue + house_number = row["NO"] if isinstance(house_number, str): house_number = house_number.lower() From c88afeb3301de36967845840689a8522ce605efd Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Thu, 28 Dec 2023 11:45:14 +0000 Subject: [PATCH 132/526] 60% through matching --- etl/eligibility/ha_15_32/ha25_app.py | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/etl/eligibility/ha_15_32/ha25_app.py b/etl/eligibility/ha_15_32/ha25_app.py index 3ff43291..8536692a 100644 --- a/etl/eligibility/ha_15_32/ha25_app.py +++ b/etl/eligibility/ha_15_32/ha25_app.py @@ -184,11 +184,24 @@ def load_data(): eco4_prospects_survey_list["ADDRESS 1"] = np.where( (eco4_prospects_survey_list["ADDRESS 1"] == "old farm road") & ( - eco4_prospects_survey_list["POSTCODE"] == "PL5 1EP"), + eco4_prospects_survey_list["POSTCODE"] == "PL5 1EP"), "old school road", eco4_prospects_survey_list["ADDRESS 1"] ) + eco4_prospects_survey_list["ADDRESS 1"] = np.where( + (eco4_prospects_survey_list["ADDRESS 1"] == "croft orchard") & ( + eco4_prospects_survey_list["POSTCODE"] == "TQ12 6RP") & ( + eco4_prospects_survey_list["NO"] == 52), + "drum way", + eco4_prospects_survey_list["ADDRESS 1"] + ) + + # String replace + eco4_prospects_survey_list["ADDRESS 1"] = eco4_prospects_survey_list["ADDRESS 1"].str.replace( + "the gulls, collaton road", "the gulls collaton road" + ) + matched = [] for _, row in tqdm(eco4_prospects_survey_list.iterrows(), total=len(eco4_prospects_survey_list)): @@ -209,9 +222,12 @@ def load_data(): # Filter on the first line of the address df = asset_list[asset_list["T1_Address"].str.lower().str.contains(row["ADDRESS 1"].lower())].copy() - df = df[df["T1_Address"].str.lower().str.contains(str(house_number))] + if house_number is not None: + if df.shape[0] != 1: + df = df[df["T1_Address"].str.lower().str.contains(str(house_number))] if df.shape[0] != 1: - df = df[df["HouseNo"] == str(house_number)] + if house_number is not None: + df = df[df["HouseNo"] == str(house_number)] if df.shape[0] != 1: df = df[df["postcode"].str.lower().str.contains(row["POSTCODE"].lower())] if df.shape[0] != 1: From d9a3ac37c9a6299a6ba732c1e51aaee8a59432bf Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Thu, 28 Dec 2023 12:13:25 +0000 Subject: [PATCH 133/526] done with matching --- etl/eligibility/ha_15_32/ha25_app.py | 41 ++++++++++++++++++++++++---- 1 file changed, 36 insertions(+), 5 deletions(-) diff --git a/etl/eligibility/ha_15_32/ha25_app.py b/etl/eligibility/ha_15_32/ha25_app.py index 8536692a..2dd0b0b7 100644 --- a/etl/eligibility/ha_15_32/ha25_app.py +++ b/etl/eligibility/ha_15_32/ha25_app.py @@ -201,16 +201,31 @@ def load_data(): eco4_prospects_survey_list["ADDRESS 1"] = eco4_prospects_survey_list["ADDRESS 1"].str.replace( "the gulls, collaton road", "the gulls collaton road" ) + eco4_prospects_survey_list["ADDRESS 1"] = eco4_prospects_survey_list["ADDRESS 1"].str.replace( + "crows-an-eglose", "crows-an-eglos" + ) + # We have a high volume of rows that do not match matched = [] + nomatch = [] for _, row in tqdm(eco4_prospects_survey_list.iterrows(), total=len(eco4_prospects_survey_list)): # Not in the asset list if (row["ADDRESS 1"] == "berry park") and row["NO"] in [40, 42] and row["POSTCODE"] == "PL12 6EN": + nomatch.append(row.to_dict()) continue # Not in the asset list if (row["ADDRESS 1"] == "roberts road") and row["NO"] == 23 and row["POSTCODE"] == "PL5 1DP": + nomatch.append(row.to_dict()) + continue + + # Not in the asset list + if row["ADDRESS 1"] in [ + "kaynton mead", "broadmoor lane", "hoopers barton", "ecos court", "selwood road", + "castle street" + ]: + nomatch.append(row.to_dict()) continue house_number = row["NO"] @@ -229,12 +244,11 @@ def load_data(): if house_number is not None: df = df[df["HouseNo"] == str(house_number)] if df.shape[0] != 1: - df = df[df["postcode"].str.lower().str.contains(row["POSTCODE"].lower())] + if row["POSTCODE"] is not None: + df = df[df["postcode"].str.lower().str.contains(row["POSTCODE"].lower())] if df.shape[0] != 1: - print(row["ADDRESS 1"]) - print(house_number) - print(row["POSTCODE"].lower()) - raise ValueError("Investigate") + nomatch.append(row.to_dict()) + continue matched.append( { @@ -245,3 +259,20 @@ def load_data(): "survey_postcode": row["POSTCODE"], } ) + + nomatch = pd.DataFrame(nomatch) + matched = pd.DataFrame(matched) + + matched["warmfront_identified"] = True + + # Combine asset list and surveys + data = asset_list.merge( + matched, how="left", left_on="T1_Address", right_on="matched_address", + ) + data["warmfront_identified"] = data["warmfront_identified"].fillna(False) + + return data, eco4_prospects_survey_list + + +def app(): + data, eco4_prospects_survey_list = load_data() From 65b39750a30d5714f15f9eb6e64688261ededc8e Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Thu, 28 Dec 2023 12:16:29 +0000 Subject: [PATCH 134/526] setting up app --- etl/eligibility/ha_15_32/ha24_app.py | 2 +- etl/eligibility/ha_15_32/ha25_app.py | 190 +++++++++++++++++++++++++++ 2 files changed, 191 insertions(+), 1 deletion(-) diff --git a/etl/eligibility/ha_15_32/ha24_app.py b/etl/eligibility/ha_15_32/ha24_app.py index dca2b60f..3edf8735 100644 --- a/etl/eligibility/ha_15_32/ha24_app.py +++ b/etl/eligibility/ha_15_32/ha24_app.py @@ -395,7 +395,7 @@ def analyse_results(results_df, data, survey_list): def app(): data, survey_list = load_data() - data["row_id"] = ["ha16_" + str(i) for i in range(0, len(data))] + data["row_id"] = ["ha24_" + str(i) for i in range(0, len(data))] cleaned = read_from_s3( s3_file_name="cleaned_epc_data/cleaned.bson", diff --git a/etl/eligibility/ha_15_32/ha25_app.py b/etl/eligibility/ha_15_32/ha25_app.py index 2dd0b0b7..b2465913 100644 --- a/etl/eligibility/ha_15_32/ha25_app.py +++ b/etl/eligibility/ha_15_32/ha25_app.py @@ -75,6 +75,7 @@ def load_data(): # We could re-concatenate but we only care about HouseNo for the moment asset_list = pd.concat([asset_list, split_addresses[["HouseNo"]]], axis=1) + asset_list["postcode"] = asset_list["postcode"].str.strip() # We analysis historical ECO3 survey list eco3_survey_workbook = openpyxl.load_workbook(f'etl/eligibility/ha_15_32/HESTIA - HA 25 ECO3 SURVEY LIST.xlsx') @@ -274,5 +275,194 @@ def load_data(): return data, eco4_prospects_survey_list +def get_epc_data(data, cleaned, cleaning_data, created_at): + scoring_data = [] + results = [] + nodata = [] + + for _, property_meta in tqdm(data.iterrows(), total=len(data)): + searcher = SearchEpc( + address1=property_meta["HouseNo"], + postcode=property_meta["postcode"], + size=1000 + ) + searcher.search() + + if searcher.data is None: + nodata.append(property_meta) + continue + + newest_epc, older_epcs, full_sap_epc = searcher.retrieve(address=property_meta["Address"]) + # We also want to get the penultimate epc + penultimate_epc, _ = searcher.filter_newest_epc(older_epcs) + if not penultimate_epc: + penultimate_epc = newest_epc + + eligibility = Eligibility(epc=newest_epc, cleaned=cleaned) + eligibility.check_gbis_warmfront() + eligibility.check_eco4_warmfront() + + if (not eligibility.eco4_warmfront["eligible"]) and (not eligibility.gbis_warmfront) and ( + property_meta["warmfront_identified"] + ): + eligibility = Eligibility(epc=penultimate_epc, cleaned=cleaned) + eligibility.check_gbis_warmfront() + eligibility.check_eco4_warmfront() + # If this is the case, we need to update the older epcs + older_epcs = [ + x for x in older_epcs if x["lmk-key"] not in [newest_epc["lmk-key"], penultimate_epc["lmk-key"]] + ] + + # Full checks + eligibility.check_gbis() + eligibility.check_eco4() + + if eligibility.eco4_warmfront["eligible"]: + if eligibility.epc["uprn"] == "": + eligibility.epc["uprn"] = int(property_meta["row_id"].split("_")[1]) + + scoring_dictionary = prepare_model_data_row( + property_id=property_meta["row_id"], + modelling_epc=eligibility.epc, + cleaned=cleaned, + cleaning_data=cleaning_data, + created_at=created_at, + old_data=older_epcs, + full_sap_epc=full_sap_epc + ) + scoring_data.extend(scoring_dictionary) + + results.append( + { + "row_id": property_meta["row_id"], + "uprn": eligibility.epc["uprn"], + "Address": property_meta["Address"], + "Postcode": property_meta["Postcode"], + "property_type": eligibility.epc["property-type"], + "gbis_eligible": eligibility.gbis_warmfront, + "eco4_eligible": eligibility.eco4_warmfront["eligible"], + "eco4_message": eligibility.eco4_warmfront["message"], + "sap": float(eligibility.epc["current-energy-efficiency"]), + "gbis_eligible_future": eligibility.gbis["eligible"], + "gbis_eligible_future_message": eligibility.gbis["message"], + "eco4_eligible_future": eligibility.eco4["eligible"], + "eco4_eligible_future_message": eligibility.eco4["message"], + # Property components + "roof": eligibility.roof["clean_description"], + "walls": eligibility.walls["clean_description"], + "cavity_type": eligibility.cavity["type"], + "heating": eligibility.epc["mainheat-description"], + "tenure": eligibility.tenure, + "date_epc": eligibility.epc["lodgement-date"], + } + ) + + scoring_df = pd.DataFrame(scoring_data) + + # Perform the same cleaning as in the model - first clean number of room variables though + scoring_df = DataProcessor.apply_averages_cleaning( + data_to_clean=scoring_df, + cleaning_data=cleaning_data, + cols_to_merge_on=['PROPERTY_TYPE', 'BUILT_FORM', 'CONSTRUCTION_AGE_BAND', 'LOCAL_AUTHORITY'], + colnames=["NUMBER_HABITABLE_ROOMS", "NUMBER_HEATED_ROOMS"], + ) + + scoring_df = DataProcessor.apply_averages_cleaning( + data_to_clean=scoring_df, + cleaning_data=cleaning_data, + cols_to_merge_on=COLUMNS_TO_MERGE_ON + ["LOCAL_AUTHORITY"], + ).drop(columns=["LOCAL_AUTHORITY"]) + + scoring_df = DataProcessor.clean_missings_after_description_process( + scoring_df, + ignore_cols=[c for c in scoring_df.columns if ("thermal_transmittance" in c) or ( + "insulation_thickness" in c) or ("ENERGY_EFF" in c)] + ) + + scoring_df = DataProcessor.clean_efficiency_variables(scoring_df) + scoring_df["UPRN"] = scoring_df["UPRN"].astype(int) + + model_api = ModelApi(portfolio_id="ha33-eligibility", timestamp=created_at) + all_predictions = model_api.predict_all( + df=scoring_df, + bucket="retrofit-data-dev", + prediction_buckets={ + "sap_change_predictions": "retrofit-sap-predictions-dev", + "heat_demand_predictions": "retrofit-heat-predictions-dev", + "carbon_change_predictions": "retrofit-carbon-predictions-dev" + } + ) + + predictions = all_predictions["sap_change_predictions"].copy() + + results_df = pd.DataFrame(results) + + predictions = predictions.rename(columns={"property_id": "row_id"}).merge( + results_df[["row_id", "sap"]], how="left", on="row_id" + ) + predictions["sap_uplift"] = predictions["predictions"] - predictions["sap"] + predictions = predictions.groupby("row_id")["sap_uplift"].sum().reset_index() + + results_df = results_df.merge( + predictions[["sap_uplift", "row_id"]], + how="left", + on="row_id" + ) + results_df["post_install_sap"] = results_df["sap"] + results_df["sap_uplift"] + + eligibility_assessment = [] + for _, row in results_df[results_df["eco4_eligible"] == True].iterrows(): + # The upgrade requirements are dependent on the current SAP + + # If the property is an F or G, it only needs to upgrade to an % + if row["sap"] <= 38: + if row["post_install_sap"] >= 57: + eligibility_classification = "highest confidence" + elif row["post_install_sap"] >= 55: + eligibility_classification = "high confidence" + elif row["post_install_sap"] >= 53: + eligibility_classification = "medium confidence" + else: + eligibility_classification = "unlikely" + else: + + if row["post_install_sap"] >= 71: + eligibility_classification = "highest confidence" + elif row["post_install_sap"] >= 69: + eligibility_classification = "high confidence" + elif row["post_install_sap"] >= 67: + eligibility_classification = "medium confidence" + else: + eligibility_classification = "unlikely" + + eligibility_assessment.append( + { + "row_id": row["row_id"], + "eligibility_classification": eligibility_classification + } + ) + + eligibility_assessment = pd.DataFrame(eligibility_assessment) + + results_df = results_df.merge( + eligibility_assessment, how="left", on="row_id" + ) + return results_df, scoring_data, nodata + + def app(): data, eco4_prospects_survey_list = load_data() + + data["row_id"] = ["ha25_" + str(i) for i in range(0, len(data))] + + cleaned = read_from_s3( + s3_file_name="cleaned_epc_data/cleaned.bson", + bucket_name="retrofit-data-dev" + ) + cleaned = msgpack.unpackb(cleaned, raw=False) + + cleaning_data = read_parquet_from_s3( + bucket_name="retrofit-data-dev", file_key="sap_change_model/cleaning_dataset.parquet", + ) + + created_at = datetime.now().isoformat() From 776bca7c249ec49cd82db3c95ca340ce408b25ae Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Thu, 28 Dec 2023 12:20:53 +0000 Subject: [PATCH 135/526] fixing get epc data --- backend/SearchEpc.py | 1 - etl/eligibility/ha_15_32/ha25_app.py | 6 +++--- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/backend/SearchEpc.py b/backend/SearchEpc.py index f1cda010..238ae465 100644 --- a/backend/SearchEpc.py +++ b/backend/SearchEpc.py @@ -143,7 +143,6 @@ class SearchEpc: if len(uprns) == 1: return rows - logger.error("Multiple UPRNS found - we should use an alternate method of searching - TODO") if property_type is not None: # We can do a filter on the property type rows_filtered = [r for r in rows if r["property-type"] == property_type] diff --git a/etl/eligibility/ha_15_32/ha25_app.py b/etl/eligibility/ha_15_32/ha25_app.py index b2465913..07470b51 100644 --- a/etl/eligibility/ha_15_32/ha25_app.py +++ b/etl/eligibility/ha_15_32/ha25_app.py @@ -292,7 +292,7 @@ def get_epc_data(data, cleaned, cleaning_data, created_at): nodata.append(property_meta) continue - newest_epc, older_epcs, full_sap_epc = searcher.retrieve(address=property_meta["Address"]) + newest_epc, older_epcs, full_sap_epc = searcher.retrieve(address=property_meta["T1_Address"]) # We also want to get the penultimate epc penultimate_epc, _ = searcher.filter_newest_epc(older_epcs) if not penultimate_epc: @@ -336,8 +336,8 @@ def get_epc_data(data, cleaned, cleaning_data, created_at): { "row_id": property_meta["row_id"], "uprn": eligibility.epc["uprn"], - "Address": property_meta["Address"], - "Postcode": property_meta["Postcode"], + "Address": property_meta["T1_Address"], + "Postcode": property_meta["postcode"], "property_type": eligibility.epc["property-type"], "gbis_eligible": eligibility.gbis_warmfront, "eco4_eligible": eligibility.eco4_warmfront["eligible"], From a40c1670cbf971a5dac633b7c0574df0268f0789 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Thu, 28 Dec 2023 14:08:40 +0000 Subject: [PATCH 136/526] completed ha25 analysis --- etl/eligibility/ha_15_32/ha25_app.py | 53 ++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) diff --git a/etl/eligibility/ha_15_32/ha25_app.py b/etl/eligibility/ha_15_32/ha25_app.py index 07470b51..4d86a546 100644 --- a/etl/eligibility/ha_15_32/ha25_app.py +++ b/etl/eligibility/ha_15_32/ha25_app.py @@ -450,6 +450,46 @@ def get_epc_data(data, cleaned, cleaning_data, created_at): return results_df, scoring_data, nodata +def analyse_results(results_df, data, eco4_prospects_survey_list): + analysis_data = data[["row_id", "survey_key", "warmfront_identified"]].merge( + results_df, how="left", on="row_id" + ) + + warmfront_identified = analysis_data[analysis_data["warmfront_identified"]] + + # Of the ECO jobs, what proportion to we get right + + success_rate = (warmfront_identified["eco4_eligible"] | warmfront_identified["gbis_eligible"]).sum() / \ + warmfront_identified.shape[ + 0] + + # No gbis for this + # gbis_success_rate = warmfront_identified_gbis["gbis_eligible"].sum() / warmfront_identified_gbis.shape[0] + + # Additional identified + additional_identified_eco = analysis_data[ + (analysis_data["eco4_eligible"] == True) & (analysis_data["warmfront_identified"] == False) + ] + + additional_identified_eco["eligibility_classification"].value_counts() + + additional_identified_gbis = analysis_data[ + (analysis_data["gbis_eligible"] == True) & (analysis_data["eco4_eligible"] == False) & ( + analysis_data["warmfront_identified"] == False + ) + ].shape[0] + + # Future + additional_identified_eco_future = analysis_data[ + (analysis_data["eco4_eligible_future"] == True) & (analysis_data["warmfront_identified"] == False) + ].shape[0] + additional_identified_gbis_future = analysis_data[ + (analysis_data["gbis_eligible_future"] == True) & (analysis_data["eco4_eligible_future"] == False) & ( + analysis_data["warmfront_identified"] == False + ) + ].shape[0] + + def app(): data, eco4_prospects_survey_list = load_data() @@ -466,3 +506,16 @@ def app(): ) created_at = datetime.now().isoformat() + + results_df, scoring_data, nodata = get_epc_data(data, cleaned, cleaning_data, created_at) + # Pickle the outputs + # import pickle + # with open("ha25.pickle", "wb") as f: + # pickle.dump( + # { + # "results_df": results_df, + # "scoring_data": scoring_data, + # "nodata": nodata + # }, + # f + # ) From 1f57ed0f9e7eb637099798949cd3743bd7b77fe5 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Fri, 29 Dec 2023 11:10:31 +0000 Subject: [PATCH 137/526] minor eligibility tweaks --- etl/eligibility/ha_15_32/app.py | 57 ++++++++++++++++++++-------- etl/eligibility/ha_15_32/ha33_app.py | 26 ++++++++----- etl/eligibility/ha_15_32/ha4_app.py | 20 ++++++---- 3 files changed, 70 insertions(+), 33 deletions(-) diff --git a/etl/eligibility/ha_15_32/app.py b/etl/eligibility/ha_15_32/app.py index ccceb05f..48bfeb2c 100644 --- a/etl/eligibility/ha_15_32/app.py +++ b/etl/eligibility/ha_15_32/app.py @@ -833,6 +833,18 @@ def analyse_ha_32_results(results, ha32, no_house_numbers): results_df["warmfront_identified"] ] + # Aggregates of no eco and gbis jobs identified + n_eco = results_df["eco4_eligible"].sum() + # Gbis is rows where eco4 is not eligible + n_gbis = results_df[ + (results_df["gbis_eligible"] == True) & (results_df["eco4_eligible"] == False) + ]["gbis_eligible"].sum() + + pipeline_potential = results_df[ + (results_df["warmfront_identified"] == True) | (results_df["eco4_eligible"] == True) | ( + results_df["gbis_eligible"] == True) + ] + success_rate = warmfront_identified["gbis_eligible"].sum() / warmfront_identified.shape[0] # For HA32, this is 89% @@ -890,8 +902,16 @@ def analyse_ha_32_results(results, ha32, no_house_numbers): new_possibilities = results_df[ (~results_df["warmfront_identified"]) & - (results_df["gbis_eligible"] | results_df["eco4_eligible"]) & - (results_df["tenure"] == "Rented (social)") + (results_df["gbis_eligible"] | results_df["eco4_eligible"]) + ].copy() + + new_possibilities_eco = results_df[ + (~results_df["warmfront_identified"]) & + (results_df["eco4_eligible"] == True) + ].copy() + new_possibilities_gbis = results_df[ + (~results_df["warmfront_identified"]) & + (results_df["eco4_eligible"] == False) & (results_df["gbis_eligible"] == True) ].copy() future_possibilities_eco = results_df[ @@ -959,6 +979,11 @@ def analyse_ha_15_results(results_df, ha15, no_house_numbers): "eligibility_classification"].value_counts() # For HA15 this is 50.3% + pipeline_potential = results_df[ + (results_df["warmfront_identified"] == True) | (results_df["eco4_eligible"] == True) | ( + results_df["gbis_eligible"] == True) + ] + # of the properties we identify, what is the mix of confidenc missed = results_df[ @@ -977,32 +1002,32 @@ def analyse_ha_15_results(results_df, ha15, no_house_numbers): missed["sap"] < 69 ] - sap_low_enough["walls"].value_counts() - z = ha15[ha15["row_id"].isin(sap_too_high["row_id"].values)] - - investigate_1 = ha15[ha15["row_id"].isin(sap_too_high["row_id"])][ - ["row_id", "Postcode", "Address Line 1", "Address Line 2", "Address Line 3"]] - - investigate_2 = ha15[ha15["row_id"].isin(sap_low_enough["row_id"])][ - ["row_id", "Postcode", "Address Line 1", "Address Line 2", "Address Line 3"]] - - missed["message"].value_counts() + # Aggregates of no eco and gbis jobs identified + n_eco = results_df["eco4_eligible"].sum() + # Gbis is rows where eco4 is not eligible + n_gbis = results_df[ + (results_df["gbis_eligible"] == True) & (results_df["eco4_eligible"] == False) + ]["gbis_eligible"].sum() # We now look for properties that we identified, that were not identified by Warmfront new_possibilities = results_df[ (~results_df["warmfront_identified"]) & - ((results_df["gbis_eligible"] == True) | (results_df["eco4_eligible"] == True)) & - (results_df["tenure"] == "Rented (social)") + ((results_df["gbis_eligible"] == True) | (results_df["eco4_eligible"] == True)) + ].copy() + + new_possibilities_eco = results_df[ + (~results_df["warmfront_identified"]) & + (results_df["eco4_eligible"] == True) ].copy() # These are future possibilityies - new_possibilities_eco = results_df[ + future_possibilities_eco = results_df[ (~results_df["warmfront_identified"]) & (results_df["eco4_eligible_future"] == True) & (~(results_df["gbis_eligible"] | results_df["eco4_eligible"])) ].copy() - new_possibilities_gbis = results_df[ + future_possibilities_gbis = results_df[ (~results_df["warmfront_identified"]) & (results_df["gbis_eligible_future"] == True) & (results_df["eco4_eligible_future"] == False) & ( ~(results_df["gbis_eligible"] | results_df["eco4_eligible"])) diff --git a/etl/eligibility/ha_15_32/ha33_app.py b/etl/eligibility/ha_15_32/ha33_app.py index 9af5eae2..42c8fa81 100644 --- a/etl/eligibility/ha_15_32/ha33_app.py +++ b/etl/eligibility/ha_15_32/ha33_app.py @@ -264,21 +264,21 @@ def get_ha_33data(data, cleaned, cleaning_data, created_at): def analyse_ha_33(results_df, data): - results_df_social = results_df[results_df["tenure"] == "Rented (social)"] + # results_df_social = results_df[results_df["tenure"] == "Rented (social)"] + # + # results_df_social["tenure"].value_counts() - results_df_social["tenure"].value_counts() + data[data["row_id"].isin(results_df["row_id"].values)]["PROPERTY TYPE"].value_counts() - data[data["row_id"].isin(results_df_social["row_id"].values)]["PROPERTY TYPE"].value_counts() + n_identified = (results_df["gbis_eligible"] | results_df["eco4_eligible"]).sum() + n_eco4 = results_df["eco4_eligible"].sum() + n_gbis = results_df[~results_df["eco4_eligible"]]["gbis_eligible"].sum() - n_identified = (results_df_social["gbis_eligible"] | results_df_social["eco4_eligible"]).sum() - n_eco4 = results_df_social["eco4_eligible"].sum() - n_gbis = results_df_social[~results_df_social["eco4_eligible"]]["gbis_eligible"].sum() - - eco_eligibile = results_df_social[results_df_social["eco4_eligible"]] + eco_eligibile = results_df[results_df["eco4_eligible"]] eco_eligibile["walls"].value_counts() eco_eligibile["roof"].value_counts() - results_df_social[results_df_social["gbis_eligible"] | results_df_social["eco4_eligible"]]["tenure"].value_counts() + results_df[results_df["gbis_eligible"] | results_df["eco4_eligible"]]["tenure"].value_counts() results_df_social["eligibility_classification"].value_counts() @@ -316,3 +316,11 @@ def app(): created_at = datetime.now().isoformat() results_df, _, _ = get_ha_33data(data, cleaned, cleaning_data, created_at) + + # Read in + import pickle + with open("ha33_results.pickle", "rb") as f: + data = pickle.load(f) + results_df = pd.DataFrame(data["results"]) + scoring_data = data["scoring_data"] + nodata = data["nodata"] diff --git a/etl/eligibility/ha_15_32/ha4_app.py b/etl/eligibility/ha_15_32/ha4_app.py index 8a404eec..92b03539 100644 --- a/etl/eligibility/ha_15_32/ha4_app.py +++ b/etl/eligibility/ha_15_32/ha4_app.py @@ -241,15 +241,11 @@ def get_ha_4_data(data, cleaned, cleaning_data, created_at): def analyse_ha_4(results_df, data): - results_df_social = results_df[results_df["tenure"] == "Rented (social)"] + n_identified = (results_df["gbis_eligible"] | results_df["eco4_eligible"]).sum() + n_eco4 = results_df["eco4_eligible"].sum() + n_gbis = results_df[~results_df["eco4_eligible"]]["gbis_eligible"].sum() - results_df_social["property_type"].value_counts() - - n_identified = (results_df_social["gbis_eligible"] | results_df_social["eco4_eligible"]).sum() - n_eco4 = results_df_social["eco4_eligible"].sum() - n_gbis = results_df_social[~results_df_social["eco4_eligible"]]["gbis_eligible"].sum() - - eco_eligibile = results_df_social[results_df_social["eco4_eligible"]] + eco_eligibile = results_df[results_df["eco4_eligible"]] eco_eligibile["eligibility_classification"].value_counts() future_possibilities_eco = results_df[ @@ -299,3 +295,11 @@ def app(): # "scoring_data": scoring_data, # "nodata": nodata # }, f) + + # Read in + # import pickle + # with open("ha_4.pickle", "rb") as f: + # data = pickle.load(f) + # results_df = data["results_df"] + # scoring_data = data["scoring_data"] + # nodata = data["nodata"] From 7f9b4da56f49f2a3f94dd9b028ed6c2194ce98f7 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Fri, 29 Dec 2023 17:12:15 +0000 Subject: [PATCH 138/526] working on the estimate epc method --- backend/OrdnanceSurvey.py | 48 + backend/SearchEpc.py | 1751 ++++++++++++++++++++++++++++++++ backend/requirements/base.txt | 3 +- etl/epc/property_change_app.py | 7 - 4 files changed, 1801 insertions(+), 8 deletions(-) create mode 100644 backend/OrdnanceSurvey.py diff --git a/backend/OrdnanceSurvey.py b/backend/OrdnanceSurvey.py new file mode 100644 index 00000000..774fbaaa --- /dev/null +++ b/backend/OrdnanceSurvey.py @@ -0,0 +1,48 @@ +class OrdnanceSuveyClient: + + def __init__(self, address, postcode): + """ + This class is tasked with interaction with the ordnance survey API. + :param address: + :param postcode: + """ + + self.address = address + self.postcode = postcode + + def get_places_api(self): + """ + This method is tasked with getting the places api from the Ordnance Survey. + :return: + """ + pass + + @staticmethod + def parse_classification_code(classification_code: str): + """ + This function will convert the classification code, returned by the OS places api, to a property type that is + compatible with the EPC database. + + The various classifications cane be found here: + https://osdatahub.os.uk/docs/places/technicalSpecification + + Under LPI Output, CLASSIFICATION_CODE is described, and a link is provided to the full table of classifications + For these purposes, we do not need the full classification as this includes non-residential properties. We only + parse the ones of interest to us + :return: + """ + + value_map = { + # In the OS api, "RD" is a "Dwelling" however this is not valid property type in the EPC database + 'RD': {}, + 'RD02': {'property_type': 'House', 'built_form': 'Detatched'}, + 'RD03': {'property_type': 'House', 'built_form': 'Semi-Detatched'}, + 'RD04': {'property_type': 'House', 'built_form': 'Mid-Terrace'}, + 'RD06': {'property_type': 'Flat'}, + } + + mapped = value_map.get(classification_code, {}) + property_type = mapped.get("property_type", "") + built_form = mapped.get("built_form", "") + + return property_type, built_form diff --git a/backend/SearchEpc.py b/backend/SearchEpc.py index 238ae465..75fac93f 100644 --- a/backend/SearchEpc.py +++ b/backend/SearchEpc.py @@ -1,5 +1,9 @@ import os import time +import re + +import usaddress +import pandas as pd from epc_api.client import EpcClient from utils.logger import setup_logger from typing import List @@ -65,6 +69,8 @@ class SearchEpc: self.address3 = address3 self.address4 = address4 self.uprn = uprn + self.house_number = self.get_house_number(self.address1) + self.numeric_house_number = self.extract_numeric_housenumber_part(self.house_number) self.max_retries = max_retries if max_retries is not None else self.MAX_RETRIES @@ -74,6 +80,50 @@ class SearchEpc: self.size = size if size is not None else 25 + @classmethod + def get_house_number(cls, address: str) -> str | None: + """ + This method will use the usaddress library to parse an address and extract the house number + :return: + """ + + parsed = usaddress.parse(address) + parsed_house_number = [x for x in parsed if (x[1] == "AddressNumber")] + parsed_house_number = parsed_house_number[0][0] if parsed_house_number else None + + if parsed_house_number is None: + # Because usaddress isn't optimal for parsing addresses with 'Flat' as a prefix, we also add a custom + # approach + # Pattern to look for 'Flat' followed by a number, or just a number at the beginning + pattern = r'(?i)(?:flat\s*(\d+))|^\s*(\d+)' + + match = re.search(pattern, address) + + if match: + # Return the first non-None group found + return next(g for g in match.groups() if g is not None) + else: + return None + + # Remove training commas + parsed_house_number = parsed_house_number.replace(",", "") + + return parsed_house_number + + @staticmethod + def extract_numeric_housenumber_part(house_number: str | None) -> int | None: + # Regular expression to find the first occurrence of one or more digits + + if house_number is None: + return None + + match = re.search(r'\d+', house_number) + + if match: + return int(match.group()) + else: + return None + def search(self): # Get the EPC data with retries @@ -208,3 +258,1704 @@ class SearchEpc: older_epcs = [epc for epc in list_of_epcs if epc["lmk-key"] != newest_response[0]["lmk-key"]] return newest_response[0], older_epcs + + @staticmethod + def _get_epc_mode(col: str, epc_data: pd.DataFrame): + """ + Simple method to extract the mode value from the EPC data + :param col: name of the column to take the mode of + :param epc_data: pandas dataframe of epc data + """ + + mode_value = epc_data[[col]].mode(dropna=True) + if len(mode_value) != 1: + raise NotImplementedError("TODO: Handle multiple modes") + mode_value = mode_value.iloc[0][col] + + return mode_value + + def estimate_epc(self): + """ + For a property that does not have an EPC, we retrieve the EPC data for the closest properties + and estimate the EPC for the property in question. + + Note - do we have postcodes with just a single address? We would need to use a different approach + to find the closest homes + :return: + """ + + address1 = "23 Butler House" + postcode = "e2 0pn" + os_data = [ + {'DPA': {'UPRN': '6037833', 'UDPRN': '7844379', + 'ADDRESS': 'FLAT 23, BUTLER HOUSE, BACTON STREET, LONDON, E2 0PN', + 'SUB_BUILDING_NAME': 'FLAT 23', 'BUILDING_NAME': 'BUTLER HOUSE', + 'THOROUGHFARE_NAME': 'BACTON STREET', 'POST_TOWN': 'LONDON', 'POSTCODE': 'E2 0PN', + 'RPC': '2', 'X_COORDINATE': 535436.0, 'Y_COORDINATE': 182835.0, 'STATUS': 'APPROVED', + 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD06', + 'CLASSIFICATION_CODE_DESCRIPTION': 'Self Contained Flat (Includes Maisonette / Apartment)', + 'LOCAL_CUSTODIAN_CODE': 5900, 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'TOWER HAMLETS', + 'COUNTRY_CODE': 'E', 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', + 'POSTAL_ADDRESS_CODE': 'D', + 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', + 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', + 'TOPOGRAPHY_LAYER_TOID': 'osgb1000041686710', 'PARENT_UPRN': '6128401', + 'LAST_UPDATE_DATE': '20/06/2022', 'ENTRY_DATE': '08/05/2003', + 'BLPU_STATE_DATE': '08/05/2003', 'LANGUAGE': 'EN', 'MATCH': 0.5, + 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '1U'}}, { + 'DPA': {'UPRN': '6037829', 'UDPRN': '7844375', + 'ADDRESS': 'FLAT 2, BUTLER HOUSE, BACTON STREET, LONDON, E2 0PN', + 'SUB_BUILDING_NAME': 'FLAT 2', 'BUILDING_NAME': 'BUTLER HOUSE', + 'THOROUGHFARE_NAME': 'BACTON STREET', 'POST_TOWN': 'LONDON', 'POSTCODE': 'E2 0PN', + 'RPC': '2', 'X_COORDINATE': 535436.0, 'Y_COORDINATE': 182832.0, 'STATUS': 'APPROVED', + 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD06', + 'CLASSIFICATION_CODE_DESCRIPTION': 'Self Contained Flat (Includes Maisonette / ' + 'Apartment)', + 'LOCAL_CUSTODIAN_CODE': 5900, 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'TOWER HAMLETS', + 'COUNTRY_CODE': 'E', 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', + 'POSTAL_ADDRESS_CODE': 'D', + 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', + 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', + 'TOPOGRAPHY_LAYER_TOID': 'osgb1000041686710', 'PARENT_UPRN': '6128401', + 'LAST_UPDATE_DATE': '20/06/2022', 'ENTRY_DATE': '08/05/2003', + 'BLPU_STATE_DATE': '08/05/2003', 'LANGUAGE': 'EN', 'MATCH': 0.5, + 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '1Q'}}, { + 'DPA': {'UPRN': '6037843', 'UDPRN': '7844389', + 'ADDRESS': 'FLAT 32, BUTLER HOUSE, BACTON STREET, LONDON, E2 0PN', + 'SUB_BUILDING_NAME': 'FLAT 32', 'BUILDING_NAME': 'BUTLER HOUSE', + 'THOROUGHFARE_NAME': 'BACTON STREET', 'POST_TOWN': 'LONDON', 'POSTCODE': 'E2 0PN', + 'RPC': '2', 'X_COORDINATE': 535436.0, 'Y_COORDINATE': 182835.0, 'STATUS': 'APPROVED', + 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD06', + 'CLASSIFICATION_CODE_DESCRIPTION': 'Self Contained Flat (Includes Maisonette / ' + 'Apartment)', + 'LOCAL_CUSTODIAN_CODE': 5900, 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'TOWER HAMLETS', + 'COUNTRY_CODE': 'E', 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', + 'POSTAL_ADDRESS_CODE': 'D', + 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', + 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', + 'TOPOGRAPHY_LAYER_TOID': 'osgb1000041686710', 'PARENT_UPRN': '6128401', + 'LAST_UPDATE_DATE': '20/06/2022', 'ENTRY_DATE': '08/05/2003', + 'BLPU_STATE_DATE': '08/05/2003', 'LANGUAGE': 'EN', 'MATCH': 0.4, + 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '2G'}}, { + 'DPA': {'UPRN': '100120810104', 'UDPRN': '18054741', + 'ADDRESS': '23, BUTLER CLOSE, OXFORD, OX2 6JG', 'BUILDING_NUMBER': '23', + 'THOROUGHFARE_NAME': 'BUTLER CLOSE', 'POST_TOWN': 'OXFORD', 'POSTCODE': 'OX2 6JG', + 'RPC': '1', 'X_COORDINATE': 450777.0, 'Y_COORDINATE': 207585.0, 'STATUS': 'APPROVED', + 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD06', + 'CLASSIFICATION_CODE_DESCRIPTION': 'Self Contained Flat (Includes Maisonette / ' + 'Apartment)', + 'LOCAL_CUSTODIAN_CODE': 3110, 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'OXFORD', + 'COUNTRY_CODE': 'E', 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', + 'POSTAL_ADDRESS_CODE': 'D', + 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', + 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', + 'TOPOGRAPHY_LAYER_TOID': 'osgb1000017505469', 'LAST_UPDATE_DATE': '27/06/2022', + 'ENTRY_DATE': '23/04/2003', 'BLPU_STATE_DATE': '28/04/2001', 'LANGUAGE': 'EN', + 'MATCH': 0.4, 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '1U'}}, { + 'DPA': {'UPRN': '6037832', 'UDPRN': '7844378', + 'ADDRESS': 'FLAT 22, BUTLER HOUSE, BACTON STREET, LONDON, E2 0PN', + 'SUB_BUILDING_NAME': 'FLAT 22', 'BUILDING_NAME': 'BUTLER HOUSE', + 'THOROUGHFARE_NAME': 'BACTON STREET', 'POST_TOWN': 'LONDON', 'POSTCODE': 'E2 0PN', + 'RPC': '2', 'X_COORDINATE': 535436.0, 'Y_COORDINATE': 182835.0, 'STATUS': 'APPROVED', + 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD06', + 'CLASSIFICATION_CODE_DESCRIPTION': 'Self Contained Flat (Includes Maisonette / ' + 'Apartment)', + 'LOCAL_CUSTODIAN_CODE': 5900, 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'TOWER HAMLETS', + 'COUNTRY_CODE': 'E', 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', + 'POSTAL_ADDRESS_CODE': 'D', + 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', + 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', + 'TOPOGRAPHY_LAYER_TOID': 'osgb1000041686710', 'PARENT_UPRN': '6128401', + 'LAST_UPDATE_DATE': '20/06/2022', 'ENTRY_DATE': '08/05/2003', + 'BLPU_STATE_DATE': '08/05/2003', 'LANGUAGE': 'EN', 'MATCH': 0.4, + 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '1T'}}, { + 'DPA': {'UPRN': '6037840', 'UDPRN': '7844386', + 'ADDRESS': 'FLAT 3, BUTLER HOUSE, BACTON STREET, LONDON, E2 0PN', + 'SUB_BUILDING_NAME': 'FLAT 3', 'BUILDING_NAME': 'BUTLER HOUSE', + 'THOROUGHFARE_NAME': 'BACTON STREET', 'POST_TOWN': 'LONDON', 'POSTCODE': 'E2 0PN', + 'RPC': '2', 'X_COORDINATE': 535436.0, 'Y_COORDINATE': 182835.0, 'STATUS': 'APPROVED', + 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD06', + 'CLASSIFICATION_CODE_DESCRIPTION': 'Self Contained Flat (Includes Maisonette / ' + 'Apartment)', + 'LOCAL_CUSTODIAN_CODE': 5900, 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'TOWER HAMLETS', + 'COUNTRY_CODE': 'E', 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', + 'POSTAL_ADDRESS_CODE': 'D', + 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', + 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', + 'TOPOGRAPHY_LAYER_TOID': 'osgb1000041686710', 'PARENT_UPRN': '6128401', + 'LAST_UPDATE_DATE': '20/06/2022', 'ENTRY_DATE': '08/05/2003', + 'BLPU_STATE_DATE': '08/05/2003', 'LANGUAGE': 'EN', 'MATCH': 0.4, + 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '2D'}}, { + 'DPA': {'UPRN': '6037821', 'UDPRN': '7844367', + 'ADDRESS': 'FLAT 12, BUTLER HOUSE, BACTON STREET, LONDON, E2 0PN', + 'SUB_BUILDING_NAME': 'FLAT 12', 'BUILDING_NAME': 'BUTLER HOUSE', + 'THOROUGHFARE_NAME': 'BACTON STREET', 'POST_TOWN': 'LONDON', 'POSTCODE': 'E2 0PN', + 'RPC': '2', 'X_COORDINATE': 535436.0, 'Y_COORDINATE': 182835.0, 'STATUS': 'APPROVED', + 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD06', + 'CLASSIFICATION_CODE_DESCRIPTION': 'Self Contained Flat (Includes Maisonette / ' + 'Apartment)', + 'LOCAL_CUSTODIAN_CODE': 5900, 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'TOWER HAMLETS', + 'COUNTRY_CODE': 'E', 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', + 'POSTAL_ADDRESS_CODE': 'D', + 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', + 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', + 'TOPOGRAPHY_LAYER_TOID': 'osgb1000041686710', 'PARENT_UPRN': '6128401', + 'LAST_UPDATE_DATE': '20/06/2022', 'ENTRY_DATE': '08/05/2003', + 'BLPU_STATE_DATE': '08/05/2003', 'LANGUAGE': 'EN', 'MATCH': 0.4, + 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '1E'}}, { + 'DPA': {'UPRN': '6037822', 'UDPRN': '7844368', + 'ADDRESS': 'FLAT 13, BUTLER HOUSE, BACTON STREET, LONDON, E2 0PN', + 'SUB_BUILDING_NAME': 'FLAT 13', 'BUILDING_NAME': 'BUTLER HOUSE', + 'THOROUGHFARE_NAME': 'BACTON STREET', 'POST_TOWN': 'LONDON', 'POSTCODE': 'E2 0PN', + 'RPC': '2', 'X_COORDINATE': 535436.0, 'Y_COORDINATE': 182835.0, 'STATUS': 'APPROVED', + 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD06', + 'CLASSIFICATION_CODE_DESCRIPTION': 'Self Contained Flat (Includes Maisonette / ' + 'Apartment)', + 'LOCAL_CUSTODIAN_CODE': 5900, 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'TOWER HAMLETS', + 'COUNTRY_CODE': 'E', 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', + 'POSTAL_ADDRESS_CODE': 'D', + 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', + 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', + 'TOPOGRAPHY_LAYER_TOID': 'osgb1000041686710', 'PARENT_UPRN': '6128401', + 'LAST_UPDATE_DATE': '20/06/2022', 'ENTRY_DATE': '08/05/2003', + 'BLPU_STATE_DATE': '08/05/2003', 'LANGUAGE': 'EN', 'MATCH': 0.4, + 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '1F'}}, { + 'DPA': {'UPRN': '6037830', 'UDPRN': '7844376', + 'ADDRESS': 'FLAT 20, BUTLER HOUSE, BACTON STREET, LONDON, E2 0PN', + 'SUB_BUILDING_NAME': 'FLAT 20', 'BUILDING_NAME': 'BUTLER HOUSE', + 'THOROUGHFARE_NAME': 'BACTON STREET', 'POST_TOWN': 'LONDON', 'POSTCODE': 'E2 0PN', + 'RPC': '2', 'X_COORDINATE': 535436.0, 'Y_COORDINATE': 182835.0, 'STATUS': 'APPROVED', + 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD06', + 'CLASSIFICATION_CODE_DESCRIPTION': 'Self Contained Flat (Includes Maisonette / ' + 'Apartment)', + 'LOCAL_CUSTODIAN_CODE': 5900, 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'TOWER HAMLETS', + 'COUNTRY_CODE': 'E', 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', + 'POSTAL_ADDRESS_CODE': 'D', + 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', + 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', + 'TOPOGRAPHY_LAYER_TOID': 'osgb1000041686710', 'PARENT_UPRN': '6128401', + 'LAST_UPDATE_DATE': '20/06/2022', 'ENTRY_DATE': '08/05/2003', + 'BLPU_STATE_DATE': '08/05/2003', 'LANGUAGE': 'EN', 'MATCH': 0.4, + 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '1R'}}, { + 'DPA': {'UPRN': '6037831', 'UDPRN': '7844377', + 'ADDRESS': 'FLAT 21, BUTLER HOUSE, BACTON STREET, LONDON, E2 0PN', + 'SUB_BUILDING_NAME': 'FLAT 21', 'BUILDING_NAME': 'BUTLER HOUSE', + 'THOROUGHFARE_NAME': 'BACTON STREET', 'POST_TOWN': 'LONDON', 'POSTCODE': 'E2 0PN', + 'RPC': '2', 'X_COORDINATE': 535436.0, 'Y_COORDINATE': 182835.0, 'STATUS': 'APPROVED', + 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD06', + 'CLASSIFICATION_CODE_DESCRIPTION': 'Self Contained Flat (Includes Maisonette / ' + 'Apartment)', + 'LOCAL_CUSTODIAN_CODE': 5900, 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'TOWER HAMLETS', + 'COUNTRY_CODE': 'E', 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', + 'POSTAL_ADDRESS_CODE': 'D', + 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', + 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', + 'TOPOGRAPHY_LAYER_TOID': 'osgb1000041686710', 'PARENT_UPRN': '6128401', + 'LAST_UPDATE_DATE': '20/06/2022', 'ENTRY_DATE': '08/05/2003', + 'BLPU_STATE_DATE': '08/05/2003', 'LANGUAGE': 'EN', 'MATCH': 0.4, + 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '1S'}}, { + 'DPA': {'UPRN': '6037834', 'UDPRN': '7844380', + 'ADDRESS': 'FLAT 24, BUTLER HOUSE, BACTON STREET, LONDON, E2 0PN', + 'SUB_BUILDING_NAME': 'FLAT 24', 'BUILDING_NAME': 'BUTLER HOUSE', + 'THOROUGHFARE_NAME': 'BACTON STREET', 'POST_TOWN': 'LONDON', 'POSTCODE': 'E2 0PN', + 'RPC': '2', 'X_COORDINATE': 535436.0, 'Y_COORDINATE': 182835.0, 'STATUS': 'APPROVED', + 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD06', + 'CLASSIFICATION_CODE_DESCRIPTION': 'Self Contained Flat (Includes Maisonette / ' + 'Apartment)', + 'LOCAL_CUSTODIAN_CODE': 5900, 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'TOWER HAMLETS', + 'COUNTRY_CODE': 'E', 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', + 'POSTAL_ADDRESS_CODE': 'D', + 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', + 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', + 'TOPOGRAPHY_LAYER_TOID': 'osgb1000041686710', 'PARENT_UPRN': '6128401', + 'LAST_UPDATE_DATE': '20/06/2022', 'ENTRY_DATE': '08/05/2003', + 'BLPU_STATE_DATE': '08/05/2003', 'LANGUAGE': 'EN', 'MATCH': 0.4, + 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '1W'}}, { + 'DPA': {'UPRN': '6037835', 'UDPRN': '7844381', + 'ADDRESS': 'FLAT 25, BUTLER HOUSE, BACTON STREET, LONDON, E2 0PN', + 'SUB_BUILDING_NAME': 'FLAT 25', 'BUILDING_NAME': 'BUTLER HOUSE', + 'THOROUGHFARE_NAME': 'BACTON STREET', 'POST_TOWN': 'LONDON', 'POSTCODE': 'E2 0PN', + 'RPC': '2', 'X_COORDINATE': 535436.0, 'Y_COORDINATE': 182835.0, 'STATUS': 'APPROVED', + 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD06', + 'CLASSIFICATION_CODE_DESCRIPTION': 'Self Contained Flat (Includes Maisonette / ' + 'Apartment)', + 'LOCAL_CUSTODIAN_CODE': 5900, 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'TOWER HAMLETS', + 'COUNTRY_CODE': 'E', 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', + 'POSTAL_ADDRESS_CODE': 'D', + 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', + 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', + 'TOPOGRAPHY_LAYER_TOID': 'osgb1000041686710', 'PARENT_UPRN': '6128401', + 'LAST_UPDATE_DATE': '20/06/2022', 'ENTRY_DATE': '08/05/2003', + 'BLPU_STATE_DATE': '08/05/2003', 'LANGUAGE': 'EN', 'MATCH': 0.4, + 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '1X'}}, { + 'DPA': {'UPRN': '6037836', 'UDPRN': '7844382', + 'ADDRESS': 'FLAT 26, BUTLER HOUSE, BACTON STREET, LONDON, E2 0PN', + 'SUB_BUILDING_NAME': 'FLAT 26', 'BUILDING_NAME': 'BUTLER HOUSE', + 'THOROUGHFARE_NAME': 'BACTON STREET', 'POST_TOWN': 'LONDON', 'POSTCODE': 'E2 0PN', + 'RPC': '2', 'X_COORDINATE': 535436.0, 'Y_COORDINATE': 182835.0, 'STATUS': 'APPROVED', + 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD06', + 'CLASSIFICATION_CODE_DESCRIPTION': 'Self Contained Flat (Includes Maisonette / ' + 'Apartment)', + 'LOCAL_CUSTODIAN_CODE': 5900, 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'TOWER HAMLETS', + 'COUNTRY_CODE': 'E', 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', + 'POSTAL_ADDRESS_CODE': 'D', + 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', + 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', + 'TOPOGRAPHY_LAYER_TOID': 'osgb1000041686710', 'PARENT_UPRN': '6128401', + 'LAST_UPDATE_DATE': '20/06/2022', 'ENTRY_DATE': '08/05/2003', + 'BLPU_STATE_DATE': '08/05/2003', 'LANGUAGE': 'EN', 'MATCH': 0.4, + 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '1Y'}}, { + 'DPA': {'UPRN': '6037837', 'UDPRN': '7844383', + 'ADDRESS': 'FLAT 27, BUTLER HOUSE, BACTON STREET, LONDON, E2 0PN', + 'SUB_BUILDING_NAME': 'FLAT 27', 'BUILDING_NAME': 'BUTLER HOUSE', + 'THOROUGHFARE_NAME': 'BACTON STREET', 'POST_TOWN': 'LONDON', 'POSTCODE': 'E2 0PN', + 'RPC': '2', 'X_COORDINATE': 535436.0, 'Y_COORDINATE': 182835.0, 'STATUS': 'APPROVED', + 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD06', + 'CLASSIFICATION_CODE_DESCRIPTION': 'Self Contained Flat (Includes Maisonette / ' + 'Apartment)', + 'LOCAL_CUSTODIAN_CODE': 5900, 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'TOWER HAMLETS', + 'COUNTRY_CODE': 'E', 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', + 'POSTAL_ADDRESS_CODE': 'D', + 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', + 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', + 'TOPOGRAPHY_LAYER_TOID': 'osgb1000041686710', 'PARENT_UPRN': '6128401', + 'LAST_UPDATE_DATE': '20/06/2022', 'ENTRY_DATE': '08/05/2003', + 'BLPU_STATE_DATE': '08/05/2003', 'LANGUAGE': 'EN', 'MATCH': 0.4, + 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '1Z'}}, { + 'DPA': {'UPRN': '6037838', 'UDPRN': '7844384', + 'ADDRESS': 'FLAT 28, BUTLER HOUSE, BACTON STREET, LONDON, E2 0PN', + 'SUB_BUILDING_NAME': 'FLAT 28', 'BUILDING_NAME': 'BUTLER HOUSE', + 'THOROUGHFARE_NAME': 'BACTON STREET', 'POST_TOWN': 'LONDON', 'POSTCODE': 'E2 0PN', + 'RPC': '2', 'X_COORDINATE': 535436.0, 'Y_COORDINATE': 182835.0, 'STATUS': 'APPROVED', + 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD06', + 'CLASSIFICATION_CODE_DESCRIPTION': 'Self Contained Flat (Includes Maisonette / ' + 'Apartment)', + 'LOCAL_CUSTODIAN_CODE': 5900, 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'TOWER HAMLETS', + 'COUNTRY_CODE': 'E', 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', + 'POSTAL_ADDRESS_CODE': 'D', + 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', + 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', + 'TOPOGRAPHY_LAYER_TOID': 'osgb1000041686710', 'PARENT_UPRN': '6128401', + 'LAST_UPDATE_DATE': '20/06/2022', 'ENTRY_DATE': '08/05/2003', + 'BLPU_STATE_DATE': '08/05/2003', 'LANGUAGE': 'EN', 'MATCH': 0.4, + 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '2A'}}, { + 'DPA': {'UPRN': '6037839', 'UDPRN': '7844385', + 'ADDRESS': 'FLAT 29, BUTLER HOUSE, BACTON STREET, LONDON, E2 0PN', + 'SUB_BUILDING_NAME': 'FLAT 29', 'BUILDING_NAME': 'BUTLER HOUSE', + 'THOROUGHFARE_NAME': 'BACTON STREET', 'POST_TOWN': 'LONDON', 'POSTCODE': 'E2 0PN', + 'RPC': '2', 'X_COORDINATE': 535436.0, 'Y_COORDINATE': 182835.0, 'STATUS': 'APPROVED', + 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD06', + 'CLASSIFICATION_CODE_DESCRIPTION': 'Self Contained Flat (Includes Maisonette / ' + 'Apartment)', + 'LOCAL_CUSTODIAN_CODE': 5900, 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'TOWER HAMLETS', + 'COUNTRY_CODE': 'E', 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', + 'POSTAL_ADDRESS_CODE': 'D', + 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', + 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', + 'TOPOGRAPHY_LAYER_TOID': 'osgb1000041686710', 'PARENT_UPRN': '6128401', + 'LAST_UPDATE_DATE': '20/06/2022', 'ENTRY_DATE': '08/05/2003', + 'BLPU_STATE_DATE': '08/05/2003', 'LANGUAGE': 'EN', 'MATCH': 0.4, + 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '2B'}}, { + 'DPA': {'UPRN': '6037841', 'UDPRN': '7844387', + 'ADDRESS': 'FLAT 30, BUTLER HOUSE, BACTON STREET, LONDON, E2 0PN', + 'SUB_BUILDING_NAME': 'FLAT 30', 'BUILDING_NAME': 'BUTLER HOUSE', + 'THOROUGHFARE_NAME': 'BACTON STREET', 'POST_TOWN': 'LONDON', 'POSTCODE': 'E2 0PN', + 'RPC': '2', 'X_COORDINATE': 535436.0, 'Y_COORDINATE': 182835.0, 'STATUS': 'APPROVED', + 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD06', + 'CLASSIFICATION_CODE_DESCRIPTION': 'Self Contained Flat (Includes Maisonette / ' + 'Apartment)', + 'LOCAL_CUSTODIAN_CODE': 5900, 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'TOWER HAMLETS', + 'COUNTRY_CODE': 'E', 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', + 'POSTAL_ADDRESS_CODE': 'D', + 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', + 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', + 'TOPOGRAPHY_LAYER_TOID': 'osgb1000041686710', 'PARENT_UPRN': '6128401', + 'LAST_UPDATE_DATE': '20/06/2022', 'ENTRY_DATE': '08/05/2003', + 'BLPU_STATE_DATE': '08/05/2003', 'LANGUAGE': 'EN', 'MATCH': 0.4, + 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '2E'}}, { + 'DPA': {'UPRN': '6037842', 'UDPRN': '7844388', + 'ADDRESS': 'FLAT 31, BUTLER HOUSE, BACTON STREET, LONDON, E2 0PN', + 'SUB_BUILDING_NAME': 'FLAT 31', 'BUILDING_NAME': 'BUTLER HOUSE', + 'THOROUGHFARE_NAME': 'BACTON STREET', 'POST_TOWN': 'LONDON', 'POSTCODE': 'E2 0PN', + 'RPC': '2', 'X_COORDINATE': 535436.0, 'Y_COORDINATE': 182835.0, 'STATUS': 'APPROVED', + 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD06', + 'CLASSIFICATION_CODE_DESCRIPTION': 'Self Contained Flat (Includes Maisonette / ' + 'Apartment)', + 'LOCAL_CUSTODIAN_CODE': 5900, 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'TOWER HAMLETS', + 'COUNTRY_CODE': 'E', 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', + 'POSTAL_ADDRESS_CODE': 'D', + 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', + 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', + 'TOPOGRAPHY_LAYER_TOID': 'osgb1000041686710', 'PARENT_UPRN': '6128401', + 'LAST_UPDATE_DATE': '20/06/2022', 'ENTRY_DATE': '08/05/2003', + 'BLPU_STATE_DATE': '08/05/2003', 'LANGUAGE': 'EN', 'MATCH': 0.4, + 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '2F'}}, { + 'DPA': {'UPRN': '6037844', 'UDPRN': '7844390', + 'ADDRESS': 'FLAT 33, BUTLER HOUSE, BACTON STREET, LONDON, E2 0PN', + 'SUB_BUILDING_NAME': 'FLAT 33', 'BUILDING_NAME': 'BUTLER HOUSE', + 'THOROUGHFARE_NAME': 'BACTON STREET', 'POST_TOWN': 'LONDON', 'POSTCODE': 'E2 0PN', + 'RPC': '2', 'X_COORDINATE': 535436.0, 'Y_COORDINATE': 182835.0, 'STATUS': 'APPROVED', + 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD06', + 'CLASSIFICATION_CODE_DESCRIPTION': 'Self Contained Flat (Includes Maisonette / ' + 'Apartment)', + 'LOCAL_CUSTODIAN_CODE': 5900, 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'TOWER HAMLETS', + 'COUNTRY_CODE': 'E', 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', + 'POSTAL_ADDRESS_CODE': 'D', + 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', + 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', + 'TOPOGRAPHY_LAYER_TOID': 'osgb1000041686710', 'PARENT_UPRN': '6128401', + 'LAST_UPDATE_DATE': '20/06/2022', 'ENTRY_DATE': '08/05/2003', + 'BLPU_STATE_DATE': '08/05/2003', 'LANGUAGE': 'EN', 'MATCH': 0.4, + 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '2H'}}, { + 'DPA': {'UPRN': '6037845', 'UDPRN': '7844391', + 'ADDRESS': 'FLAT 34, BUTLER HOUSE, BACTON STREET, LONDON, E2 0PN', + 'SUB_BUILDING_NAME': 'FLAT 34', 'BUILDING_NAME': 'BUTLER HOUSE', + 'THOROUGHFARE_NAME': 'BACTON STREET', 'POST_TOWN': 'LONDON', 'POSTCODE': 'E2 0PN', + 'RPC': '2', 'X_COORDINATE': 535436.0, 'Y_COORDINATE': 182835.0, 'STATUS': 'APPROVED', + 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD06', + 'CLASSIFICATION_CODE_DESCRIPTION': 'Self Contained Flat (Includes Maisonette / ' + 'Apartment)', + 'LOCAL_CUSTODIAN_CODE': 5900, 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'TOWER HAMLETS', + 'COUNTRY_CODE': 'E', 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', + 'POSTAL_ADDRESS_CODE': 'D', + 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', + 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', + 'TOPOGRAPHY_LAYER_TOID': 'osgb1000041686710', 'PARENT_UPRN': '6128401', + 'LAST_UPDATE_DATE': '20/06/2022', 'ENTRY_DATE': '08/05/2003', + 'BLPU_STATE_DATE': '08/05/2003', 'LANGUAGE': 'EN', 'MATCH': 0.4, + 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '2J'}}, { + 'DPA': {'UPRN': '6037846', 'UDPRN': '7844392', + 'ADDRESS': 'FLAT 35, BUTLER HOUSE, BACTON STREET, LONDON, E2 0PN', + 'SUB_BUILDING_NAME': 'FLAT 35', 'BUILDING_NAME': 'BUTLER HOUSE', + 'THOROUGHFARE_NAME': 'BACTON STREET', 'POST_TOWN': 'LONDON', 'POSTCODE': 'E2 0PN', + 'RPC': '2', 'X_COORDINATE': 535436.0, 'Y_COORDINATE': 182835.0, 'STATUS': 'APPROVED', + 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD06', + 'CLASSIFICATION_CODE_DESCRIPTION': 'Self Contained Flat (Includes Maisonette / ' + 'Apartment)', + 'LOCAL_CUSTODIAN_CODE': 5900, 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'TOWER HAMLETS', + 'COUNTRY_CODE': 'E', 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', + 'POSTAL_ADDRESS_CODE': 'D', + 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', + 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', + 'TOPOGRAPHY_LAYER_TOID': 'osgb1000041686710', 'PARENT_UPRN': '6128401', + 'LAST_UPDATE_DATE': '20/06/2022', 'ENTRY_DATE': '08/05/2003', + 'BLPU_STATE_DATE': '08/05/2003', 'LANGUAGE': 'EN', 'MATCH': 0.4, + 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '2L'}}, { + 'DPA': {'UPRN': '6037847', 'UDPRN': '7844393', + 'ADDRESS': 'FLAT 36, BUTLER HOUSE, BACTON STREET, LONDON, E2 0PN', + 'SUB_BUILDING_NAME': 'FLAT 36', 'BUILDING_NAME': 'BUTLER HOUSE', + 'THOROUGHFARE_NAME': 'BACTON STREET', 'POST_TOWN': 'LONDON', 'POSTCODE': 'E2 0PN', + 'RPC': '2', 'X_COORDINATE': 535436.0, 'Y_COORDINATE': 182835.0, 'STATUS': 'APPROVED', + 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD06', + 'CLASSIFICATION_CODE_DESCRIPTION': 'Self Contained Flat (Includes Maisonette / ' + 'Apartment)', + 'LOCAL_CUSTODIAN_CODE': 5900, 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'TOWER HAMLETS', + 'COUNTRY_CODE': 'E', 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', + 'POSTAL_ADDRESS_CODE': 'D', + 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', + 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', + 'TOPOGRAPHY_LAYER_TOID': 'osgb1000041686710', 'PARENT_UPRN': '6128401', + 'LAST_UPDATE_DATE': '20/06/2022', 'ENTRY_DATE': '08/05/2003', + 'BLPU_STATE_DATE': '08/05/2003', 'LANGUAGE': 'EN', 'MATCH': 0.4, + 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '2N'}}, { + 'DPA': {'UPRN': '6037848', 'UDPRN': '7844394', + 'ADDRESS': 'FLAT 37, BUTLER HOUSE, BACTON STREET, LONDON, E2 0PN', + 'SUB_BUILDING_NAME': 'FLAT 37', 'BUILDING_NAME': 'BUTLER HOUSE', + 'THOROUGHFARE_NAME': 'BACTON STREET', 'POST_TOWN': 'LONDON', 'POSTCODE': 'E2 0PN', + 'RPC': '2', 'X_COORDINATE': 535436.0, 'Y_COORDINATE': 182835.0, 'STATUS': 'APPROVED', + 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD06', + 'CLASSIFICATION_CODE_DESCRIPTION': 'Self Contained Flat (Includes Maisonette / ' + 'Apartment)', + 'LOCAL_CUSTODIAN_CODE': 5900, 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'TOWER HAMLETS', + 'COUNTRY_CODE': 'E', 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', + 'POSTAL_ADDRESS_CODE': 'D', + 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', + 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', + 'TOPOGRAPHY_LAYER_TOID': 'osgb1000041686710', 'PARENT_UPRN': '6128401', + 'LAST_UPDATE_DATE': '20/06/2022', 'ENTRY_DATE': '08/05/2003', + 'BLPU_STATE_DATE': '08/05/2003', 'LANGUAGE': 'EN', 'MATCH': 0.4, + 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '2P'}}, { + 'DPA': {'UPRN': '6037849', 'UDPRN': '7844395', + 'ADDRESS': 'FLAT 38, BUTLER HOUSE, BACTON STREET, LONDON, E2 0PN', + 'SUB_BUILDING_NAME': 'FLAT 38', 'BUILDING_NAME': 'BUTLER HOUSE', + 'THOROUGHFARE_NAME': 'BACTON STREET', 'POST_TOWN': 'LONDON', 'POSTCODE': 'E2 0PN', + 'RPC': '2', 'X_COORDINATE': 535436.0, 'Y_COORDINATE': 182835.0, 'STATUS': 'APPROVED', + 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD06', + 'CLASSIFICATION_CODE_DESCRIPTION': 'Self Contained Flat (Includes Maisonette / ' + 'Apartment)', + 'LOCAL_CUSTODIAN_CODE': 5900, 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'TOWER HAMLETS', + 'COUNTRY_CODE': 'E', 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', + 'POSTAL_ADDRESS_CODE': 'D', + 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', + 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', + 'TOPOGRAPHY_LAYER_TOID': 'osgb1000041686710', 'PARENT_UPRN': '6128401', + 'LAST_UPDATE_DATE': '20/06/2022', 'ENTRY_DATE': '08/05/2003', + 'BLPU_STATE_DATE': '08/05/2003', 'LANGUAGE': 'EN', 'MATCH': 0.4, + 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '2Q'}}, { + 'DPA': {'UPRN': '6037850', 'UDPRN': '7844396', + 'ADDRESS': 'FLAT 39, BUTLER HOUSE, BACTON STREET, LONDON, E2 0PN', + 'SUB_BUILDING_NAME': 'FLAT 39', 'BUILDING_NAME': 'BUTLER HOUSE', + 'THOROUGHFARE_NAME': 'BACTON STREET', 'POST_TOWN': 'LONDON', 'POSTCODE': 'E2 0PN', + 'RPC': '2', 'X_COORDINATE': 535436.0, 'Y_COORDINATE': 182835.0, 'STATUS': 'APPROVED', + 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD06', + 'CLASSIFICATION_CODE_DESCRIPTION': 'Self Contained Flat (Includes Maisonette / ' + 'Apartment)', + 'LOCAL_CUSTODIAN_CODE': 5900, 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'TOWER HAMLETS', + 'COUNTRY_CODE': 'E', 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', + 'POSTAL_ADDRESS_CODE': 'D', + 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', + 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', + 'TOPOGRAPHY_LAYER_TOID': 'osgb1000041686710', 'PARENT_UPRN': '6128401', + 'LAST_UPDATE_DATE': '20/06/2022', 'ENTRY_DATE': '08/05/2003', + 'BLPU_STATE_DATE': '08/05/2003', 'LANGUAGE': 'EN', 'MATCH': 0.4, + 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '2R'}}, { + 'DPA': {'UPRN': '6037818', 'UDPRN': '7844364', + 'ADDRESS': 'FLAT 1, BUTLER HOUSE, BACTON STREET, LONDON, E2 0PN', + 'SUB_BUILDING_NAME': 'FLAT 1', 'BUILDING_NAME': 'BUTLER HOUSE', + 'THOROUGHFARE_NAME': 'BACTON STREET', 'POST_TOWN': 'LONDON', 'POSTCODE': 'E2 0PN', + 'RPC': '2', 'X_COORDINATE': 535436.0, 'Y_COORDINATE': 182835.0, 'STATUS': 'APPROVED', + 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD06', + 'CLASSIFICATION_CODE_DESCRIPTION': 'Self Contained Flat (Includes Maisonette / ' + 'Apartment)', + 'LOCAL_CUSTODIAN_CODE': 5900, 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'TOWER HAMLETS', + 'COUNTRY_CODE': 'E', 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', + 'POSTAL_ADDRESS_CODE': 'D', + 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', + 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', + 'TOPOGRAPHY_LAYER_TOID': 'osgb1000041686710', 'PARENT_UPRN': '6128401', + 'LAST_UPDATE_DATE': '20/06/2022', 'ENTRY_DATE': '08/05/2003', + 'BLPU_STATE_DATE': '08/05/2003', 'LANGUAGE': 'EN', 'MATCH': 0.4, + 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '1A'}}, { + 'DPA': {'UPRN': '6037851', 'UDPRN': '7844397', + 'ADDRESS': 'FLAT 4, BUTLER HOUSE, BACTON STREET, LONDON, E2 0PN', + 'SUB_BUILDING_NAME': 'FLAT 4', 'BUILDING_NAME': 'BUTLER HOUSE', + 'THOROUGHFARE_NAME': 'BACTON STREET', 'POST_TOWN': 'LONDON', 'POSTCODE': 'E2 0PN', + 'RPC': '2', 'X_COORDINATE': 535436.0, 'Y_COORDINATE': 182835.0, 'STATUS': 'APPROVED', + 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD06', + 'CLASSIFICATION_CODE_DESCRIPTION': 'Self Contained Flat (Includes Maisonette / ' + 'Apartment)', + 'LOCAL_CUSTODIAN_CODE': 5900, 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'TOWER HAMLETS', + 'COUNTRY_CODE': 'E', 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', + 'POSTAL_ADDRESS_CODE': 'D', + 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', + 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', + 'TOPOGRAPHY_LAYER_TOID': 'osgb1000041686710', 'PARENT_UPRN': '6128401', + 'LAST_UPDATE_DATE': '20/06/2022', 'ENTRY_DATE': '08/05/2003', + 'BLPU_STATE_DATE': '08/05/2003', 'LANGUAGE': 'EN', 'MATCH': 0.4, + 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '2S'}}, { + 'DPA': {'UPRN': '6037853', 'UDPRN': '7844399', + 'ADDRESS': 'FLAT 5, BUTLER HOUSE, BACTON STREET, LONDON, E2 0PN', + 'SUB_BUILDING_NAME': 'FLAT 5', 'BUILDING_NAME': 'BUTLER HOUSE', + 'THOROUGHFARE_NAME': 'BACTON STREET', 'POST_TOWN': 'LONDON', 'POSTCODE': 'E2 0PN', + 'RPC': '2', 'X_COORDINATE': 535436.0, 'Y_COORDINATE': 182835.0, 'STATUS': 'APPROVED', + 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD06', + 'CLASSIFICATION_CODE_DESCRIPTION': 'Self Contained Flat (Includes Maisonette / ' + 'Apartment)', + 'LOCAL_CUSTODIAN_CODE': 5900, 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'TOWER HAMLETS', + 'COUNTRY_CODE': 'E', 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', + 'POSTAL_ADDRESS_CODE': 'D', + 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', + 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', + 'TOPOGRAPHY_LAYER_TOID': 'osgb1000041686710', 'PARENT_UPRN': '6128401', + 'LAST_UPDATE_DATE': '20/06/2022', 'ENTRY_DATE': '08/05/2003', + 'BLPU_STATE_DATE': '08/05/2003', 'LANGUAGE': 'EN', 'MATCH': 0.4, + 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '2U'}}, { + 'DPA': {'UPRN': '6037854', 'UDPRN': '7844400', + 'ADDRESS': 'FLAT 6, BUTLER HOUSE, BACTON STREET, LONDON, E2 0PN', + 'SUB_BUILDING_NAME': 'FLAT 6', 'BUILDING_NAME': 'BUTLER HOUSE', + 'THOROUGHFARE_NAME': 'BACTON STREET', 'POST_TOWN': 'LONDON', 'POSTCODE': 'E2 0PN', + 'RPC': '2', 'X_COORDINATE': 535436.0, 'Y_COORDINATE': 182835.0, 'STATUS': 'APPROVED', + 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD06', + 'CLASSIFICATION_CODE_DESCRIPTION': 'Self Contained Flat (Includes Maisonette / ' + 'Apartment)', + 'LOCAL_CUSTODIAN_CODE': 5900, 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'TOWER HAMLETS', + 'COUNTRY_CODE': 'E', 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', + 'POSTAL_ADDRESS_CODE': 'D', + 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', + 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', + 'TOPOGRAPHY_LAYER_TOID': 'osgb1000041686710', 'PARENT_UPRN': '6128401', + 'LAST_UPDATE_DATE': '20/06/2022', 'ENTRY_DATE': '08/05/2003', + 'BLPU_STATE_DATE': '08/05/2003', 'LANGUAGE': 'EN', 'MATCH': 0.4, + 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '2W'}}, { + 'DPA': {'UPRN': '6037855', 'UDPRN': '7844401', + 'ADDRESS': 'FLAT 7, BUTLER HOUSE, BACTON STREET, LONDON, E2 0PN', + 'SUB_BUILDING_NAME': 'FLAT 7', 'BUILDING_NAME': 'BUTLER HOUSE', + 'THOROUGHFARE_NAME': 'BACTON STREET', 'POST_TOWN': 'LONDON', 'POSTCODE': 'E2 0PN', + 'RPC': '2', 'X_COORDINATE': 535436.0, 'Y_COORDINATE': 182835.0, 'STATUS': 'APPROVED', + 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD06', + 'CLASSIFICATION_CODE_DESCRIPTION': 'Self Contained Flat (Includes Maisonette / ' + 'Apartment)', + 'LOCAL_CUSTODIAN_CODE': 5900, 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'TOWER HAMLETS', + 'COUNTRY_CODE': 'E', 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', + 'POSTAL_ADDRESS_CODE': 'D', + 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', + 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', + 'TOPOGRAPHY_LAYER_TOID': 'osgb1000041686710', 'PARENT_UPRN': '6128401', + 'LAST_UPDATE_DATE': '20/06/2022', 'ENTRY_DATE': '08/05/2003', + 'BLPU_STATE_DATE': '08/05/2003', 'LANGUAGE': 'EN', 'MATCH': 0.4, + 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '2X'}}, { + 'DPA': {'UPRN': '6037856', 'UDPRN': '7844402', + 'ADDRESS': 'FLAT 8, BUTLER HOUSE, BACTON STREET, LONDON, E2 0PN', + 'SUB_BUILDING_NAME': 'FLAT 8', 'BUILDING_NAME': 'BUTLER HOUSE', + 'THOROUGHFARE_NAME': 'BACTON STREET', 'POST_TOWN': 'LONDON', 'POSTCODE': 'E2 0PN', + 'RPC': '2', 'X_COORDINATE': 535436.0, 'Y_COORDINATE': 182835.0, 'STATUS': 'APPROVED', + 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD06', + 'CLASSIFICATION_CODE_DESCRIPTION': 'Self Contained Flat (Includes Maisonette / ' + 'Apartment)', + 'LOCAL_CUSTODIAN_CODE': 5900, 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'TOWER HAMLETS', + 'COUNTRY_CODE': 'E', 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', + 'POSTAL_ADDRESS_CODE': 'D', + 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', + 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', + 'TOPOGRAPHY_LAYER_TOID': 'osgb1000041686710', 'PARENT_UPRN': '6128401', + 'LAST_UPDATE_DATE': '20/06/2022', 'ENTRY_DATE': '08/05/2003', + 'BLPU_STATE_DATE': '08/05/2003', 'LANGUAGE': 'EN', 'MATCH': 0.4, + 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '2Y'}}, { + 'DPA': {'UPRN': '6037857', 'UDPRN': '7844403', + 'ADDRESS': 'FLAT 9, BUTLER HOUSE, BACTON STREET, LONDON, E2 0PN', + 'SUB_BUILDING_NAME': 'FLAT 9', 'BUILDING_NAME': 'BUTLER HOUSE', + 'THOROUGHFARE_NAME': 'BACTON STREET', 'POST_TOWN': 'LONDON', 'POSTCODE': 'E2 0PN', + 'RPC': '2', 'X_COORDINATE': 535439.0, 'Y_COORDINATE': 182828.0, 'STATUS': 'APPROVED', + 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD06', + 'CLASSIFICATION_CODE_DESCRIPTION': 'Self Contained Flat (Includes Maisonette / ' + 'Apartment)', + 'LOCAL_CUSTODIAN_CODE': 5900, 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'TOWER HAMLETS', + 'COUNTRY_CODE': 'E', 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', + 'POSTAL_ADDRESS_CODE': 'D', + 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', + 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', + 'TOPOGRAPHY_LAYER_TOID': 'osgb1000041686710', 'PARENT_UPRN': '6128401', + 'LAST_UPDATE_DATE': '20/06/2022', 'ENTRY_DATE': '08/05/2003', + 'BLPU_STATE_DATE': '08/05/2003', 'LANGUAGE': 'EN', 'MATCH': 0.4, + 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '2Z'}}, { + 'DPA': {'UPRN': '6037819', 'UDPRN': '7844365', + 'ADDRESS': 'FLAT 10, BUTLER HOUSE, BACTON STREET, LONDON, E2 0PN', + 'SUB_BUILDING_NAME': 'FLAT 10', 'BUILDING_NAME': 'BUTLER HOUSE', + 'THOROUGHFARE_NAME': 'BACTON STREET', 'POST_TOWN': 'LONDON', 'POSTCODE': 'E2 0PN', + 'RPC': '2', 'X_COORDINATE': 535436.0, 'Y_COORDINATE': 182835.0, 'STATUS': 'APPROVED', + 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD06', + 'CLASSIFICATION_CODE_DESCRIPTION': 'Self Contained Flat (Includes Maisonette / ' + 'Apartment)', + 'LOCAL_CUSTODIAN_CODE': 5900, 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'TOWER HAMLETS', + 'COUNTRY_CODE': 'E', 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', + 'POSTAL_ADDRESS_CODE': 'D', + 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', + 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', + 'TOPOGRAPHY_LAYER_TOID': 'osgb1000041686710', 'PARENT_UPRN': '6128401', + 'LAST_UPDATE_DATE': '20/06/2022', 'ENTRY_DATE': '08/05/2003', + 'BLPU_STATE_DATE': '08/05/2003', 'LANGUAGE': 'EN', 'MATCH': 0.4, + 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '1B'}}, { + 'DPA': {'UPRN': '6037820', 'UDPRN': '7844366', + 'ADDRESS': 'FLAT 11, BUTLER HOUSE, BACTON STREET, LONDON, E2 0PN', + 'SUB_BUILDING_NAME': 'FLAT 11', 'BUILDING_NAME': 'BUTLER HOUSE', + 'THOROUGHFARE_NAME': 'BACTON STREET', 'POST_TOWN': 'LONDON', 'POSTCODE': 'E2 0PN', + 'RPC': '2', 'X_COORDINATE': 535436.0, 'Y_COORDINATE': 182835.0, 'STATUS': 'APPROVED', + 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD06', + 'CLASSIFICATION_CODE_DESCRIPTION': 'Self Contained Flat (Includes Maisonette / ' + 'Apartment)', + 'LOCAL_CUSTODIAN_CODE': 5900, 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'TOWER HAMLETS', + 'COUNTRY_CODE': 'E', 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', + 'POSTAL_ADDRESS_CODE': 'D', + 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', + 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', + 'TOPOGRAPHY_LAYER_TOID': 'osgb1000041686710', 'PARENT_UPRN': '6128401', + 'LAST_UPDATE_DATE': '20/06/2022', 'ENTRY_DATE': '08/05/2003', + 'BLPU_STATE_DATE': '08/05/2003', 'LANGUAGE': 'EN', 'MATCH': 0.4, + 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '1D'}}, { + 'DPA': {'UPRN': '6037823', 'UDPRN': '7844369', + 'ADDRESS': 'FLAT 14, BUTLER HOUSE, BACTON STREET, LONDON, E2 0PN', + 'SUB_BUILDING_NAME': 'FLAT 14', 'BUILDING_NAME': 'BUTLER HOUSE', + 'THOROUGHFARE_NAME': 'BACTON STREET', 'POST_TOWN': 'LONDON', 'POSTCODE': 'E2 0PN', + 'RPC': '2', 'X_COORDINATE': 535436.0, 'Y_COORDINATE': 182835.0, 'STATUS': 'APPROVED', + 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD06', + 'CLASSIFICATION_CODE_DESCRIPTION': 'Self Contained Flat (Includes Maisonette / ' + 'Apartment)', + 'LOCAL_CUSTODIAN_CODE': 5900, 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'TOWER HAMLETS', + 'COUNTRY_CODE': 'E', 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', + 'POSTAL_ADDRESS_CODE': 'D', + 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', + 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', + 'TOPOGRAPHY_LAYER_TOID': 'osgb1000041686710', 'PARENT_UPRN': '6128401', + 'LAST_UPDATE_DATE': '20/06/2022', 'ENTRY_DATE': '08/05/2003', + 'BLPU_STATE_DATE': '08/05/2003', 'LANGUAGE': 'EN', 'MATCH': 0.4, + 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '1G'}}, { + 'DPA': {'UPRN': '6037824', 'UDPRN': '7844370', + 'ADDRESS': 'FLAT 15, BUTLER HOUSE, BACTON STREET, LONDON, E2 0PN', + 'SUB_BUILDING_NAME': 'FLAT 15', 'BUILDING_NAME': 'BUTLER HOUSE', + 'THOROUGHFARE_NAME': 'BACTON STREET', 'POST_TOWN': 'LONDON', 'POSTCODE': 'E2 0PN', + 'RPC': '2', 'X_COORDINATE': 535436.0, 'Y_COORDINATE': 182835.0, 'STATUS': 'APPROVED', + 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD06', + 'CLASSIFICATION_CODE_DESCRIPTION': 'Self Contained Flat (Includes Maisonette / ' + 'Apartment)', + 'LOCAL_CUSTODIAN_CODE': 5900, 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'TOWER HAMLETS', + 'COUNTRY_CODE': 'E', 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', + 'POSTAL_ADDRESS_CODE': 'D', + 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', + 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', + 'TOPOGRAPHY_LAYER_TOID': 'osgb1000041686710', 'PARENT_UPRN': '6128401', + 'LAST_UPDATE_DATE': '20/06/2022', 'ENTRY_DATE': '08/05/2003', + 'BLPU_STATE_DATE': '08/05/2003', 'LANGUAGE': 'EN', 'MATCH': 0.4, + 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '1H'}}, { + 'DPA': {'UPRN': '6037825', 'UDPRN': '7844371', + 'ADDRESS': 'FLAT 16, BUTLER HOUSE, BACTON STREET, LONDON, E2 0PN', + 'SUB_BUILDING_NAME': 'FLAT 16', 'BUILDING_NAME': 'BUTLER HOUSE', + 'THOROUGHFARE_NAME': 'BACTON STREET', 'POST_TOWN': 'LONDON', 'POSTCODE': 'E2 0PN', + 'RPC': '2', 'X_COORDINATE': 535436.0, 'Y_COORDINATE': 182835.0, 'STATUS': 'APPROVED', + 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD06', + 'CLASSIFICATION_CODE_DESCRIPTION': 'Self Contained Flat (Includes Maisonette / ' + 'Apartment)', + 'LOCAL_CUSTODIAN_CODE': 5900, 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'TOWER HAMLETS', + 'COUNTRY_CODE': 'E', 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', + 'POSTAL_ADDRESS_CODE': 'D', + 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', + 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', + 'TOPOGRAPHY_LAYER_TOID': 'osgb1000041686710', 'PARENT_UPRN': '6128401', + 'LAST_UPDATE_DATE': '20/06/2022', 'ENTRY_DATE': '08/05/2003', + 'BLPU_STATE_DATE': '08/05/2003', 'LANGUAGE': 'EN', 'MATCH': 0.4, + 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '1J'}}, { + 'DPA': {'UPRN': '6037826', 'UDPRN': '7844372', + 'ADDRESS': 'FLAT 17, BUTLER HOUSE, BACTON STREET, LONDON, E2 0PN', + 'SUB_BUILDING_NAME': 'FLAT 17', 'BUILDING_NAME': 'BUTLER HOUSE', + 'THOROUGHFARE_NAME': 'BACTON STREET', 'POST_TOWN': 'LONDON', 'POSTCODE': 'E2 0PN', + 'RPC': '2', 'X_COORDINATE': 535436.0, 'Y_COORDINATE': 182835.0, 'STATUS': 'APPROVED', + 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD06', + 'CLASSIFICATION_CODE_DESCRIPTION': 'Self Contained Flat (Includes Maisonette / ' + 'Apartment)', + 'LOCAL_CUSTODIAN_CODE': 5900, 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'TOWER HAMLETS', + 'COUNTRY_CODE': 'E', 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', + 'POSTAL_ADDRESS_CODE': 'D', + 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', + 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', + 'TOPOGRAPHY_LAYER_TOID': 'osgb1000041686710', 'PARENT_UPRN': '6128401', + 'LAST_UPDATE_DATE': '20/06/2022', 'ENTRY_DATE': '08/05/2003', + 'BLPU_STATE_DATE': '08/05/2003', 'LANGUAGE': 'EN', 'MATCH': 0.4, + 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '1L'}}, { + 'DPA': {'UPRN': '6037827', 'UDPRN': '7844373', + 'ADDRESS': 'FLAT 18, BUTLER HOUSE, BACTON STREET, LONDON, E2 0PN', + 'SUB_BUILDING_NAME': 'FLAT 18', 'BUILDING_NAME': 'BUTLER HOUSE', + 'THOROUGHFARE_NAME': 'BACTON STREET', 'POST_TOWN': 'LONDON', 'POSTCODE': 'E2 0PN', + 'RPC': '2', 'X_COORDINATE': 535436.0, 'Y_COORDINATE': 182835.0, 'STATUS': 'APPROVED', + 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD06', + 'CLASSIFICATION_CODE_DESCRIPTION': 'Self Contained Flat (Includes Maisonette / ' + 'Apartment)', + 'LOCAL_CUSTODIAN_CODE': 5900, 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'TOWER HAMLETS', + 'COUNTRY_CODE': 'E', 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', + 'POSTAL_ADDRESS_CODE': 'D', + 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', + 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', + 'TOPOGRAPHY_LAYER_TOID': 'osgb1000041686710', 'PARENT_UPRN': '6128401', + 'LAST_UPDATE_DATE': '20/06/2022', 'ENTRY_DATE': '08/05/2003', + 'BLPU_STATE_DATE': '08/05/2003', 'LANGUAGE': 'EN', 'MATCH': 0.4, + 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '1N'}}, { + 'DPA': {'UPRN': '6037828', 'UDPRN': '7844374', + 'ADDRESS': 'FLAT 19, BUTLER HOUSE, BACTON STREET, LONDON, E2 0PN', + 'SUB_BUILDING_NAME': 'FLAT 19', 'BUILDING_NAME': 'BUTLER HOUSE', + 'THOROUGHFARE_NAME': 'BACTON STREET', 'POST_TOWN': 'LONDON', 'POSTCODE': 'E2 0PN', + 'RPC': '2', 'X_COORDINATE': 535436.0, 'Y_COORDINATE': 182835.0, 'STATUS': 'APPROVED', + 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD06', + 'CLASSIFICATION_CODE_DESCRIPTION': 'Self Contained Flat (Includes Maisonette / ' + 'Apartment)', + 'LOCAL_CUSTODIAN_CODE': 5900, 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'TOWER HAMLETS', + 'COUNTRY_CODE': 'E', 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', + 'POSTAL_ADDRESS_CODE': 'D', + 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', + 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', + 'TOPOGRAPHY_LAYER_TOID': 'osgb1000041686710', 'PARENT_UPRN': '6128401', + 'LAST_UPDATE_DATE': '20/06/2022', 'ENTRY_DATE': '08/05/2003', + 'BLPU_STATE_DATE': '08/05/2003', 'LANGUAGE': 'EN', 'MATCH': 0.4, + 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '1P'}}, { + 'DPA': {'UPRN': '100005484', 'UDPRN': '20364558', + 'ADDRESS': '23, BUTLER ROAD, DAGENHAM, RM8 2DT', 'BUILDING_NUMBER': '23', + 'THOROUGHFARE_NAME': 'BUTLER ROAD', 'POST_TOWN': 'DAGENHAM', 'POSTCODE': 'RM8 2DT', + 'RPC': '2', 'X_COORDINATE': 546681.0, 'Y_COORDINATE': 185956.0, 'STATUS': 'APPROVED', + 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD04', + 'CLASSIFICATION_CODE_DESCRIPTION': 'Terraced', 'LOCAL_CUSTODIAN_CODE': 5060, + 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'BARKING AND DAGENHAM', 'COUNTRY_CODE': 'E', + 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', 'POSTAL_ADDRESS_CODE': 'D', + 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', + 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', + 'TOPOGRAPHY_LAYER_TOID': 'osgb1000007465373', 'LAST_UPDATE_DATE': '12/11/2018', + 'ENTRY_DATE': '01/01/1923', 'BLPU_STATE_DATE': '19/10/2009', 'LANGUAGE': 'EN', + 'MATCH': 0.4, 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '1S'}}, { + 'DPA': {'UPRN': '90215506', 'UDPRN': '54323251', 'ADDRESS': '23, BUTLER CLOSE, DUDLEY, DY1 4ST', + 'BUILDING_NUMBER': '23', 'THOROUGHFARE_NAME': 'BUTLER CLOSE', 'POST_TOWN': 'DUDLEY', + 'POSTCODE': 'DY1 4ST', 'RPC': '1', 'X_COORDINATE': 395277.0, 'Y_COORDINATE': 291399.0, + 'STATUS': 'APPROVED', 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD03', + 'CLASSIFICATION_CODE_DESCRIPTION': 'Semi-Detached', 'LOCAL_CUSTODIAN_CODE': 4615, + 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'DUDLEY', 'COUNTRY_CODE': 'E', + 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', 'POSTAL_ADDRESS_CODE': 'D', + 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', + 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', + 'TOPOGRAPHY_LAYER_TOID': 'osgb5000005208567956', 'LAST_UPDATE_DATE': '12/04/2022', + 'ENTRY_DATE': '19/10/2016', 'BLPU_STATE_DATE': '19/10/2016', 'LANGUAGE': 'EN', + 'MATCH': 0.4, 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '1P'}}, { + 'DPA': {'UPRN': '6038165', 'UDPRN': '7845424', + 'ADDRESS': 'FLAT 23, BEVIN HOUSE, BUTLER STREET, LONDON, E2 0RW', + 'SUB_BUILDING_NAME': 'FLAT 23', 'BUILDING_NAME': 'BEVIN HOUSE', + 'THOROUGHFARE_NAME': 'BUTLER STREET', 'POST_TOWN': 'LONDON', 'POSTCODE': 'E2 0RW', + 'RPC': '2', 'X_COORDINATE': 535491.0, 'Y_COORDINATE': 182853.0, 'STATUS': 'APPROVED', + 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD06', + 'CLASSIFICATION_CODE_DESCRIPTION': 'Self Contained Flat (Includes Maisonette / ' + 'Apartment)', + 'LOCAL_CUSTODIAN_CODE': 5900, 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'TOWER HAMLETS', + 'COUNTRY_CODE': 'E', 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', + 'POSTAL_ADDRESS_CODE': 'D', + 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', + 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', + 'TOPOGRAPHY_LAYER_TOID': 'osgb1000041686692', 'PARENT_UPRN': '6128805', + 'LAST_UPDATE_DATE': '20/06/2022', 'ENTRY_DATE': '08/05/2003', + 'BLPU_STATE_DATE': '08/05/2003', 'LANGUAGE': 'EN', 'MATCH': 0.4, + 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '1U'}}, { + 'DPA': {'UPRN': '100091297768', 'UDPRN': '20489790', + 'ADDRESS': '23, BUTLER HOUSE, ARGENT STREET, GRAYS, RM17 6LS', 'SUB_BUILDING_NAME': '23', + 'BUILDING_NAME': 'BUTLER HOUSE', 'THOROUGHFARE_NAME': 'ARGENT STREET', + 'POST_TOWN': 'GRAYS', 'POSTCODE': 'RM17 6LS', 'RPC': '2', 'X_COORDINATE': 561539.0, + 'Y_COORDINATE': 177535.0, 'STATUS': 'APPROVED', 'LOGICAL_STATUS_CODE': '1', + 'CLASSIFICATION_CODE': 'RD06', + 'CLASSIFICATION_CODE_DESCRIPTION': 'Self Contained Flat (Includes Maisonette / ' + 'Apartment)', + 'LOCAL_CUSTODIAN_CODE': 1595, 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'THURROCK', + 'COUNTRY_CODE': 'E', 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', + 'POSTAL_ADDRESS_CODE': 'D', + 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', + 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', + 'TOPOGRAPHY_LAYER_TOID': 'osgb1000000743609', 'PARENT_UPRN': '100091660367', + 'LAST_UPDATE_DATE': '12/11/2018', 'ENTRY_DATE': '22/04/2002', + 'BLPU_STATE_DATE': '22/04/2002', 'LANGUAGE': 'EN', 'MATCH': 0.4, + 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '1U'}}, { + 'DPA': {'UPRN': '2465123670', 'UDPRN': '13173788', + 'ADDRESS': '23, BUTLER CLOSE, LEICESTER, LE4 7TP', 'BUILDING_NUMBER': '23', + 'THOROUGHFARE_NAME': 'BUTLER CLOSE', 'POST_TOWN': 'LEICESTER', 'POSTCODE': 'LE4 7TP', + 'RPC': '1', 'X_COORDINATE': 461288.0, 'Y_COORDINATE': 307985.0, 'STATUS': 'APPROVED', + 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD03', + 'CLASSIFICATION_CODE_DESCRIPTION': 'Semi-Detached', 'LOCAL_CUSTODIAN_CODE': 2465, + 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'LEICESTER CITY', 'COUNTRY_CODE': 'E', + 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', 'POSTAL_ADDRESS_CODE': 'D', + 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', + 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', + 'TOPOGRAPHY_LAYER_TOID': 'osgb1000023348951', 'LAST_UPDATE_DATE': '10/02/2016', + 'ENTRY_DATE': '10/04/2003', 'BLPU_STATE_DATE': '10/04/2003', 'LANGUAGE': 'EN', + 'MATCH': 0.4, 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '1U'}}, { + 'DPA': {'UPRN': '100070981622', 'UDPRN': '1054333', + 'ADDRESS': '23, BUTLER ROAD, SOLIHULL, B92 7QL', 'BUILDING_NUMBER': '23', + 'THOROUGHFARE_NAME': 'BUTLER ROAD', 'POST_TOWN': 'SOLIHULL', 'POSTCODE': 'B92 7QL', + 'RPC': '1', 'X_COORDINATE': 413831.0, 'Y_COORDINATE': 283269.0, 'STATUS': 'APPROVED', + 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD03', + 'CLASSIFICATION_CODE_DESCRIPTION': 'Semi-Detached', 'LOCAL_CUSTODIAN_CODE': 4625, + 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'SOLIHULL', 'COUNTRY_CODE': 'E', + 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', 'POSTAL_ADDRESS_CODE': 'D', + 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', + 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', + 'TOPOGRAPHY_LAYER_TOID': 'osgb1000021354544', 'LAST_UPDATE_DATE': '10/02/2016', + 'ENTRY_DATE': '14/11/2002', 'BLPU_STATE_DATE': '06/11/2009', 'LANGUAGE': 'EN', + 'MATCH': 0.4, 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '1T'}}, { + 'DPA': {'UPRN': '100090315357', 'UDPRN': '5239798', + 'ADDRESS': '23, BUTLER ROAD, HALSTEAD, CO9 1LL', 'BUILDING_NUMBER': '23', + 'THOROUGHFARE_NAME': 'BUTLER ROAD', 'POST_TOWN': 'HALSTEAD', 'POSTCODE': 'CO9 1LL', + 'RPC': '1', 'X_COORDINATE': 581028.0, 'Y_COORDINATE': 230625.0, 'STATUS': 'APPROVED', + 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD04', + 'CLASSIFICATION_CODE_DESCRIPTION': 'Terraced', 'LOCAL_CUSTODIAN_CODE': 1510, + 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'BRAINTREE', 'COUNTRY_CODE': 'E', + 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', 'POSTAL_ADDRESS_CODE': 'D', + 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', + 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', + 'TOPOGRAPHY_LAYER_TOID': 'osgb1000004753569', 'LAST_UPDATE_DATE': '24/04/2019', + 'ENTRY_DATE': '16/04/2001', 'BLPU_STATE_DATE': '16/04/2001', 'LANGUAGE': 'EN', + 'MATCH': 0.4, 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '1L'}}, { + 'DPA': {'UPRN': '91966', 'UDPRN': '2741519', + 'ADDRESS': '23 BUTLER HOUSE, SUMMERHILL ROAD, BRISTOL, BS5 8HQ', + 'BUILDING_NAME': '23 BUTLER HOUSE', 'THOROUGHFARE_NAME': 'SUMMERHILL ROAD', + 'POST_TOWN': 'BRISTOL', 'POSTCODE': 'BS5 8HQ', 'RPC': '2', 'X_COORDINATE': 362679.0, + 'Y_COORDINATE': 173636.0, 'STATUS': 'APPROVED', 'LOGICAL_STATUS_CODE': '1', + 'CLASSIFICATION_CODE': 'RD08', + 'CLASSIFICATION_CODE_DESCRIPTION': 'Sheltered Accommodation', + 'LOCAL_CUSTODIAN_CODE': 116, 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'BRISTOL', + 'COUNTRY_CODE': 'E', 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', + 'POSTAL_ADDRESS_CODE': 'D', + 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', + 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', + 'TOPOGRAPHY_LAYER_TOID': 'osgb1000015134420', 'PARENT_UPRN': '91963', + 'LAST_UPDATE_DATE': '28/07/2020', 'ENTRY_DATE': '16/01/1997', + 'BLPU_STATE_DATE': '16/01/1997', 'LANGUAGE': 'EN', 'MATCH': 0.4, + 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '1U'}}, { + 'DPA': {'UPRN': '2630183449', 'UDPRN': '53937961', + 'ADDRESS': '23, BUTLER GARDENS, WYMONDHAM, NR18 0GE', 'BUILDING_NUMBER': '23', + 'THOROUGHFARE_NAME': 'BUTLER GARDENS', 'POST_TOWN': 'WYMONDHAM', 'POSTCODE': 'NR18 0GE', + 'RPC': '1', 'X_COORDINATE': 612795.66, 'Y_COORDINATE': 303429.68, 'STATUS': 'APPROVED', + 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD03', + 'CLASSIFICATION_CODE_DESCRIPTION': 'Semi-Detached', 'LOCAL_CUSTODIAN_CODE': 2630, + 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'SOUTH NORFOLK', 'COUNTRY_CODE': 'E', + 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', 'POSTAL_ADDRESS_CODE': 'D', + 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', + 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', + 'TOPOGRAPHY_LAYER_TOID': 'osgb5000005229788403', 'LAST_UPDATE_DATE': '24/04/2019', + 'ENTRY_DATE': '08/06/2015', 'BLPU_STATE_DATE': '21/11/2018', 'LANGUAGE': 'EN', + 'MATCH': 0.4, 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '2D'}}, { + 'DPA': {'UPRN': '100050385845', 'UDPRN': '10711132', + 'ADDRESS': '23, BUTLER ROAD, HARROGATE, HG1 4PF', 'BUILDING_NUMBER': '23', + 'THOROUGHFARE_NAME': 'BUTLER ROAD', 'POST_TOWN': 'HARROGATE', 'POSTCODE': 'HG1 4PF', + 'RPC': '1', 'X_COORDINATE': 430998.0, 'Y_COORDINATE': 456935.0, 'STATUS': 'APPROVED', + 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD04', + 'CLASSIFICATION_CODE_DESCRIPTION': 'Terraced', 'LOCAL_CUSTODIAN_CODE': 2745, + 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'NORTH YORKSHIRE', 'COUNTRY_CODE': 'E', + 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', 'POSTAL_ADDRESS_CODE': 'D', + 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', + 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', + 'TOPOGRAPHY_LAYER_TOID': 'osgb1000032665633', 'LAST_UPDATE_DATE': '30/03/2023', + 'ENTRY_DATE': '05/04/2001', 'BLPU_STATE_DATE': '05/04/2001', 'LANGUAGE': 'EN', + 'MATCH': 0.4, 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '2D'}}, { + 'DPA': {'UPRN': '100060219201', 'UDPRN': '19958031', + 'ADDRESS': '23, BUTLER CLOSE, BASINGSTOKE, RG22 6UF', 'BUILDING_NUMBER': '23', + 'THOROUGHFARE_NAME': 'BUTLER CLOSE', 'POST_TOWN': 'BASINGSTOKE', 'POSTCODE': 'RG22 6UF', + 'RPC': '1', 'X_COORDINATE': 461229.0, 'Y_COORDINATE': 151529.0, 'STATUS': 'APPROVED', + 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD04', + 'CLASSIFICATION_CODE_DESCRIPTION': 'Terraced', 'LOCAL_CUSTODIAN_CODE': 1705, + 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'BASINGSTOKE AND DEANE', 'COUNTRY_CODE': 'E', + 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', 'POSTAL_ADDRESS_CODE': 'D', + 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', + 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', + 'TOPOGRAPHY_LAYER_TOID': 'osgb1000013815926', 'LAST_UPDATE_DATE': '01/05/2021', + 'ENTRY_DATE': '03/05/2001', 'BLPU_STATE_DATE': '28/03/2009', 'LANGUAGE': 'EN', + 'MATCH': 0.4, 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '1U'}}, { + 'DPA': {'UPRN': '100021255372', 'UDPRN': '10435391', + 'ADDRESS': '23, BUTLER AVENUE, HARROW, HA1 4EJ', 'BUILDING_NUMBER': '23', + 'THOROUGHFARE_NAME': 'BUTLER AVENUE', 'POST_TOWN': 'HARROW', 'POSTCODE': 'HA1 4EJ', + 'RPC': '1', 'X_COORDINATE': 514794.44, 'Y_COORDINATE': 187933.1, 'STATUS': 'APPROVED', + 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD02', + 'CLASSIFICATION_CODE_DESCRIPTION': 'Detached', 'LOCAL_CUSTODIAN_CODE': 5450, + 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'HARROW', 'COUNTRY_CODE': 'E', + 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', 'POSTAL_ADDRESS_CODE': 'D', + 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', + 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', + 'TOPOGRAPHY_LAYER_TOID': 'osgb1000003018602', 'LAST_UPDATE_DATE': '10/02/2016', + 'ENTRY_DATE': '09/08/2004', 'BLPU_STATE_DATE': '17/08/2007', 'LANGUAGE': 'EN', + 'MATCH': 0.4, 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '1J'}}, { + 'DPA': {'UPRN': '100010537312', 'UDPRN': '19537132', + 'ADDRESS': '23, BUTLER PLACE, PRESTON, PR1 6BS', 'BUILDING_NUMBER': '23', + 'THOROUGHFARE_NAME': 'BUTLER PLACE', 'POST_TOWN': 'PRESTON', 'POSTCODE': 'PR1 6BS', + 'RPC': '1', 'X_COORDINATE': 353907.0, 'Y_COORDINATE': 430681.0, 'STATUS': 'APPROVED', + 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD04', + 'CLASSIFICATION_CODE_DESCRIPTION': 'Terraced', 'LOCAL_CUSTODIAN_CODE': 2345, + 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'PRESTON', 'COUNTRY_CODE': 'E', + 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', 'POSTAL_ADDRESS_CODE': 'D', + 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', + 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', + 'TOPOGRAPHY_LAYER_TOID': 'osgb1000037964267', 'LAST_UPDATE_DATE': '24/04/2019', + 'ENTRY_DATE': '01/01/2004', 'BLPU_STATE_DATE': '03/12/2007', 'LANGUAGE': 'EN', + 'MATCH': 0.4, 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '1T'}}, { + 'DPA': {'UPRN': '10090793888', 'UDPRN': '53380797', + 'ADDRESS': '23, BUTLER DRIVE, ERITH, DA8 3AQ', 'BUILDING_NUMBER': '23', + 'THOROUGHFARE_NAME': 'BUTLER DRIVE', 'POST_TOWN': 'ERITH', 'POSTCODE': 'DA8 3AQ', + 'RPC': '1', 'X_COORDINATE': 551416.62, 'Y_COORDINATE': 177160.6, 'STATUS': 'APPROVED', + 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD04', + 'CLASSIFICATION_CODE_DESCRIPTION': 'Terraced', 'LOCAL_CUSTODIAN_CODE': 5120, + 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'BEXLEY', 'COUNTRY_CODE': 'E', + 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', 'POSTAL_ADDRESS_CODE': 'D', + 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', + 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', + 'TOPOGRAPHY_LAYER_TOID': 'osgb5000005152984756', 'LAST_UPDATE_DATE': '10/02/2016', + 'ENTRY_DATE': '14/01/2014', 'BLPU_STATE_DATE': '04/06/2015', 'LANGUAGE': 'EN', + 'MATCH': 0.4, 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '1Q'}}, { + 'DPA': {'UPRN': '10022828895', 'UDPRN': '51566826', + 'ADDRESS': '23, BUTLER DRIVE, BRACKNELL, RG12 8DA', 'BUILDING_NUMBER': '23', + 'THOROUGHFARE_NAME': 'BUTLER DRIVE', 'POST_TOWN': 'BRACKNELL', 'POSTCODE': 'RG12 8DA', + 'RPC': '1', 'X_COORDINATE': 484943.0, 'Y_COORDINATE': 168743.0, 'STATUS': 'APPROVED', + 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD03', + 'CLASSIFICATION_CODE_DESCRIPTION': 'Semi-Detached', 'LOCAL_CUSTODIAN_CODE': 335, + 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'BRACKNELL FOREST', 'COUNTRY_CODE': 'E', + 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', 'POSTAL_ADDRESS_CODE': 'D', + 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', + 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', + 'TOPOGRAPHY_LAYER_TOID': 'osgb1000002490438229', 'LAST_UPDATE_DATE': '10/02/2016', + 'ENTRY_DATE': '23/01/2009', 'BLPU_STATE_DATE': '23/01/2009', 'LANGUAGE': 'EN', + 'MATCH': 0.4, 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '4Y'}}, { + 'DPA': {'UPRN': '100021255418', 'UDPRN': '10434913', + 'ADDRESS': '23, BUTLER ROAD, HARROW, HA1 4DS', 'BUILDING_NUMBER': '23', + 'THOROUGHFARE_NAME': 'BUTLER ROAD', 'POST_TOWN': 'HARROW', 'POSTCODE': 'HA1 4DS', + 'RPC': '1', 'X_COORDINATE': 514647.66, 'Y_COORDINATE': 187939.99, 'STATUS': 'APPROVED', + 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD04', + 'CLASSIFICATION_CODE_DESCRIPTION': 'Terraced', 'LOCAL_CUSTODIAN_CODE': 5450, + 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'HARROW', 'COUNTRY_CODE': 'E', + 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', 'POSTAL_ADDRESS_CODE': 'D', + 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', + 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', + 'TOPOGRAPHY_LAYER_TOID': 'osgb1000003018457', 'LAST_UPDATE_DATE': '10/02/2016', + 'ENTRY_DATE': '09/08/2004', 'BLPU_STATE_DATE': '17/08/2007', 'LANGUAGE': 'EN', + 'MATCH': 0.4, 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '1H'}}, { + 'DPA': {'UPRN': '10095848542', 'UDPRN': '56772037', + 'ADDRESS': '23, BUTLER STREET, MANCHESTER, M40 7SW', 'BUILDING_NUMBER': '23', + 'THOROUGHFARE_NAME': 'BUTLER STREET', 'POST_TOWN': 'MANCHESTER', 'POSTCODE': 'M40 7SW', + 'RPC': '1', 'X_COORDINATE': 385363.25, 'Y_COORDINATE': 399029.33, 'STATUS': 'APPROVED', + 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD03', + 'CLASSIFICATION_CODE_DESCRIPTION': 'Semi-Detached', 'LOCAL_CUSTODIAN_CODE': 4215, + 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'MANCHESTER', 'COUNTRY_CODE': 'E', + 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', 'POSTAL_ADDRESS_CODE': 'D', + 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', + 'BLPU_STATE_CODE': '3', 'BLPU_STATE_CODE_DESCRIPTION': 'Unoccupied', + 'TOPOGRAPHY_LAYER_TOID': 'osgb5000005305734312', 'LAST_UPDATE_DATE': '08/12/2023', + 'ENTRY_DATE': '20/12/2021', 'BLPU_STATE_DATE': '06/12/2023', 'LANGUAGE': 'EN', + 'MATCH': 0.4, 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '1Q'}}, { + 'DPA': {'UPRN': '14053961', 'UDPRN': '20066824', + 'ADDRESS': '23, BUTLER ROAD, CROWTHORNE, RG45 6QZ', 'BUILDING_NUMBER': '23', + 'THOROUGHFARE_NAME': 'BUTLER ROAD', 'POST_TOWN': 'CROWTHORNE', 'POSTCODE': 'RG45 6QZ', + 'RPC': '1', 'X_COORDINATE': 483577.0, 'Y_COORDINATE': 164784.0, 'STATUS': 'APPROVED', + 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD03', + 'CLASSIFICATION_CODE_DESCRIPTION': 'Semi-Detached', 'LOCAL_CUSTODIAN_CODE': 360, + 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'WOKINGHAM', 'COUNTRY_CODE': 'E', + 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', 'POSTAL_ADDRESS_CODE': 'D', + 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', + 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', + 'TOPOGRAPHY_LAYER_TOID': 'osgb1000014499560', 'LAST_UPDATE_DATE': '10/02/2016', + 'ENTRY_DATE': '08/07/2000', 'BLPU_STATE_DATE': '01/02/2010', 'LANGUAGE': 'EN', + 'MATCH': 0.4, 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '1J'}}, { + 'DPA': {'UPRN': '38174349', 'UDPRN': '12536271', + 'ADDRESS': '23, BUTLER CRESCENT, LIVERPOOL, L6 9HS', 'BUILDING_NUMBER': '23', + 'THOROUGHFARE_NAME': 'BUTLER CRESCENT', 'POST_TOWN': 'LIVERPOOL', 'POSTCODE': 'L6 9HS', + 'RPC': '1', 'X_COORDINATE': 336692.0, 'Y_COORDINATE': 391293.0, 'STATUS': 'APPROVED', + 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD04', + 'CLASSIFICATION_CODE_DESCRIPTION': 'Terraced', 'LOCAL_CUSTODIAN_CODE': 4310, + 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'LIVERPOOL', 'COUNTRY_CODE': 'E', + 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', 'POSTAL_ADDRESS_CODE': 'D', + 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', + 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', + 'TOPOGRAPHY_LAYER_TOID': 'osgb1000035036984', 'LAST_UPDATE_DATE': '23/03/2022', + 'ENTRY_DATE': '30/09/1999', 'BLPU_STATE_DATE': '30/09/1999', 'LANGUAGE': 'EN', + 'MATCH': 0.4, 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '1T'}}, { + 'DPA': {'UPRN': '63197467', 'UDPRN': '55267616', 'ADDRESS': '23, BUTLER WAY, WAKEFIELD, WF1 3DQ', + 'BUILDING_NUMBER': '23', 'THOROUGHFARE_NAME': 'BUTLER WAY', 'POST_TOWN': 'WAKEFIELD', + 'POSTCODE': 'WF1 3DQ', 'RPC': '1', 'X_COORDINATE': 433059.56, 'Y_COORDINATE': 421601.59, + 'STATUS': 'APPROVED', 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD03', + 'CLASSIFICATION_CODE_DESCRIPTION': 'Semi-Detached', 'LOCAL_CUSTODIAN_CODE': 4725, + 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'WAKEFIELD', 'COUNTRY_CODE': 'E', + 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', 'POSTAL_ADDRESS_CODE': 'D', + 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', + 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', + 'TOPOGRAPHY_LAYER_TOID': 'osgb5000005255059772', 'LAST_UPDATE_DATE': '13/06/2022', + 'ENTRY_DATE': '04/06/2018', 'BLPU_STATE_DATE': '05/06/2018', 'LANGUAGE': 'EN', + 'MATCH': 0.4, 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '1P'}}, { + 'DPA': {'UPRN': '100010789959', 'UDPRN': '9117199', + 'ADDRESS': '23, BUTLER STREET, BLACKPOOL, FY1 3HR', 'BUILDING_NUMBER': '23', + 'THOROUGHFARE_NAME': 'BUTLER STREET', 'POST_TOWN': 'BLACKPOOL', 'POSTCODE': 'FY1 3HR', + 'RPC': '1', 'X_COORDINATE': 331287.0, 'Y_COORDINATE': 436773.0, 'STATUS': 'APPROVED', + 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD04', + 'CLASSIFICATION_CODE_DESCRIPTION': 'Terraced', 'LOCAL_CUSTODIAN_CODE': 2373, + 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'BLACKPOOL', 'COUNTRY_CODE': 'E', + 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', 'POSTAL_ADDRESS_CODE': 'D', + 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', + 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', + 'TOPOGRAPHY_LAYER_TOID': 'osgb1000037423291', 'LAST_UPDATE_DATE': '10/02/2016', + 'ENTRY_DATE': '18/04/2001', 'BLPU_STATE_DATE': '12/06/2007', 'LANGUAGE': 'EN', + 'MATCH': 0.4, 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '1H'}}, { + 'DPA': {'UPRN': '6038175', 'UDPRN': '7845434', + 'ADDRESS': 'FLAT 32, BEVIN HOUSE, BUTLER STREET, LONDON, E2 0RW', + 'SUB_BUILDING_NAME': 'FLAT 32', 'BUILDING_NAME': 'BEVIN HOUSE', + 'THOROUGHFARE_NAME': 'BUTLER STREET', 'POST_TOWN': 'LONDON', 'POSTCODE': 'E2 0RW', + 'RPC': '2', 'X_COORDINATE': 535491.0, 'Y_COORDINATE': 182853.0, 'STATUS': 'APPROVED', + 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD06', + 'CLASSIFICATION_CODE_DESCRIPTION': 'Self Contained Flat (Includes Maisonette / ' + 'Apartment)', + 'LOCAL_CUSTODIAN_CODE': 5900, 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'TOWER HAMLETS', + 'COUNTRY_CODE': 'E', 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', + 'POSTAL_ADDRESS_CODE': 'D', + 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', + 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', + 'TOPOGRAPHY_LAYER_TOID': 'osgb1000041686692', 'PARENT_UPRN': '6128805', + 'LAST_UPDATE_DATE': '20/06/2022', 'ENTRY_DATE': '08/05/2003', + 'BLPU_STATE_DATE': '08/05/2003', 'LANGUAGE': 'EN', 'MATCH': 0.4, + 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '2G'}}, { + 'DPA': {'UPRN': '100031395259', 'UDPRN': '16684081', + 'ADDRESS': '23, BUTLER CRESCENT, MANSFIELD, NG19 7LU', 'BUILDING_NUMBER': '23', + 'THOROUGHFARE_NAME': 'BUTLER CRESCENT', 'POST_TOWN': 'MANSFIELD', 'POSTCODE': 'NG19 7LU', + 'RPC': '1', 'X_COORDINATE': 451759.0, 'Y_COORDINATE': 362615.0, 'STATUS': 'APPROVED', + 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD04', + 'CLASSIFICATION_CODE_DESCRIPTION': 'Terraced', 'LOCAL_CUSTODIAN_CODE': 3025, + 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'MANSFIELD', 'COUNTRY_CODE': 'E', + 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', 'POSTAL_ADDRESS_CODE': 'D', + 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', + 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', + 'TOPOGRAPHY_LAYER_TOID': 'osgb1000022624910', 'LAST_UPDATE_DATE': '10/02/2016', + 'ENTRY_DATE': '07/11/2002', 'BLPU_STATE_DATE': '07/11/2002', 'LANGUAGE': 'EN', + 'MATCH': 0.4, 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '1J'}}, { + 'DPA': {'UPRN': '6038172', 'UDPRN': '7845431', + 'ADDRESS': 'FLAT 3, BEVIN HOUSE, BUTLER STREET, LONDON, E2 0RW', + 'SUB_BUILDING_NAME': 'FLAT 3', 'BUILDING_NAME': 'BEVIN HOUSE', + 'THOROUGHFARE_NAME': 'BUTLER STREET', 'POST_TOWN': 'LONDON', 'POSTCODE': 'E2 0RW', + 'RPC': '2', 'X_COORDINATE': 535491.0, 'Y_COORDINATE': 182853.0, 'STATUS': 'APPROVED', + 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD06', + 'CLASSIFICATION_CODE_DESCRIPTION': 'Self Contained Flat (Includes Maisonette / ' + 'Apartment)', + 'LOCAL_CUSTODIAN_CODE': 5900, 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'TOWER HAMLETS', + 'COUNTRY_CODE': 'E', 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', + 'POSTAL_ADDRESS_CODE': 'D', + 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', + 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', + 'TOPOGRAPHY_LAYER_TOID': 'osgb1000041686692', 'PARENT_UPRN': '6128805', + 'LAST_UPDATE_DATE': '20/06/2022', 'ENTRY_DATE': '08/05/2003', + 'BLPU_STATE_DATE': '08/05/2003', 'LANGUAGE': 'EN', 'MATCH': 0.4, + 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '2D'}}, { + 'DPA': {'UPRN': '6045644', 'UDPRN': '8071046', + 'ADDRESS': 'FLAT 23, BUTLER HOUSE, BURDETT ROAD, LONDON, E14 7AB', + 'SUB_BUILDING_NAME': 'FLAT 23', 'BUILDING_NAME': 'BUTLER HOUSE', + 'THOROUGHFARE_NAME': 'BURDETT ROAD', 'POST_TOWN': 'LONDON', 'POSTCODE': 'E14 7AB', + 'RPC': '2', 'X_COORDINATE': 536908.0, 'Y_COORDINATE': 181460.0, 'STATUS': 'APPROVED', + 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD06', + 'CLASSIFICATION_CODE_DESCRIPTION': 'Self Contained Flat (Includes Maisonette / ' + 'Apartment)', + 'LOCAL_CUSTODIAN_CODE': 5900, 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'TOWER HAMLETS', + 'COUNTRY_CODE': 'E', 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', + 'POSTAL_ADDRESS_CODE': 'D', + 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', + 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', + 'TOPOGRAPHY_LAYER_TOID': 'osgb1000041732860', 'PARENT_UPRN': '6128774', + 'LAST_UPDATE_DATE': '20/06/2022', 'ENTRY_DATE': '08/05/2003', + 'BLPU_STATE_DATE': '08/05/2003', 'LANGUAGE': 'EN', 'MATCH': 0.4, + 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '1U'}}, { + 'DPA': {'UPRN': '6038164', 'UDPRN': '7845423', + 'ADDRESS': 'FLAT 22, BEVIN HOUSE, BUTLER STREET, LONDON, E2 0RW', + 'SUB_BUILDING_NAME': 'FLAT 22', 'BUILDING_NAME': 'BEVIN HOUSE', + 'THOROUGHFARE_NAME': 'BUTLER STREET', 'POST_TOWN': 'LONDON', 'POSTCODE': 'E2 0RW', + 'RPC': '2', 'X_COORDINATE': 535491.0, 'Y_COORDINATE': 182853.0, 'STATUS': 'APPROVED', + 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD06', + 'CLASSIFICATION_CODE_DESCRIPTION': 'Self Contained Flat (Includes Maisonette / ' + 'Apartment)', + 'LOCAL_CUSTODIAN_CODE': 5900, 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'TOWER HAMLETS', + 'COUNTRY_CODE': 'E', 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', + 'POSTAL_ADDRESS_CODE': 'D', + 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', + 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', + 'TOPOGRAPHY_LAYER_TOID': 'osgb1000041686692', 'PARENT_UPRN': '6128805', + 'LAST_UPDATE_DATE': '20/06/2022', 'ENTRY_DATE': '08/05/2003', + 'BLPU_STATE_DATE': '08/05/2003', 'LANGUAGE': 'EN', 'MATCH': 0.4, + 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '1T'}}, { + 'DPA': {'UPRN': '6038153', 'UDPRN': '7845412', + 'ADDRESS': 'FLAT 12, BEVIN HOUSE, BUTLER STREET, LONDON, E2 0RW', + 'SUB_BUILDING_NAME': 'FLAT 12', 'BUILDING_NAME': 'BEVIN HOUSE', + 'THOROUGHFARE_NAME': 'BUTLER STREET', 'POST_TOWN': 'LONDON', 'POSTCODE': 'E2 0RW', + 'RPC': '2', 'X_COORDINATE': 535491.0, 'Y_COORDINATE': 182853.0, 'STATUS': 'APPROVED', + 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD06', + 'CLASSIFICATION_CODE_DESCRIPTION': 'Self Contained Flat (Includes Maisonette / ' + 'Apartment)', + 'LOCAL_CUSTODIAN_CODE': 5900, 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'TOWER HAMLETS', + 'COUNTRY_CODE': 'E', 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', + 'POSTAL_ADDRESS_CODE': 'D', + 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', + 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', + 'TOPOGRAPHY_LAYER_TOID': 'osgb1000041686692', 'PARENT_UPRN': '6128805', + 'LAST_UPDATE_DATE': '20/06/2022', 'ENTRY_DATE': '08/05/2003', + 'BLPU_STATE_DATE': '08/05/2003', 'LANGUAGE': 'EN', 'MATCH': 0.4, + 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '1E'}}, { + 'DPA': {'UPRN': '6038154', 'UDPRN': '7845413', + 'ADDRESS': 'FLAT 13, BEVIN HOUSE, BUTLER STREET, LONDON, E2 0RW', + 'SUB_BUILDING_NAME': 'FLAT 13', 'BUILDING_NAME': 'BEVIN HOUSE', + 'THOROUGHFARE_NAME': 'BUTLER STREET', 'POST_TOWN': 'LONDON', 'POSTCODE': 'E2 0RW', + 'RPC': '2', 'X_COORDINATE': 535491.0, 'Y_COORDINATE': 182853.0, 'STATUS': 'APPROVED', + 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD06', + 'CLASSIFICATION_CODE_DESCRIPTION': 'Self Contained Flat (Includes Maisonette / ' + 'Apartment)', + 'LOCAL_CUSTODIAN_CODE': 5900, 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'TOWER HAMLETS', + 'COUNTRY_CODE': 'E', 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', + 'POSTAL_ADDRESS_CODE': 'D', + 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', + 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', + 'TOPOGRAPHY_LAYER_TOID': 'osgb1000041686692', 'PARENT_UPRN': '6128805', + 'LAST_UPDATE_DATE': '20/06/2022', 'ENTRY_DATE': '08/05/2003', + 'BLPU_STATE_DATE': '08/05/2003', 'LANGUAGE': 'EN', 'MATCH': 0.4, + 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '1F'}}, { + 'DPA': {'UPRN': '6038162', 'UDPRN': '7845421', + 'ADDRESS': 'FLAT 20, BEVIN HOUSE, BUTLER STREET, LONDON, E2 0RW', + 'SUB_BUILDING_NAME': 'FLAT 20', 'BUILDING_NAME': 'BEVIN HOUSE', + 'THOROUGHFARE_NAME': 'BUTLER STREET', 'POST_TOWN': 'LONDON', 'POSTCODE': 'E2 0RW', + 'RPC': '2', 'X_COORDINATE': 535491.0, 'Y_COORDINATE': 182853.0, 'STATUS': 'APPROVED', + 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD06', + 'CLASSIFICATION_CODE_DESCRIPTION': 'Self Contained Flat (Includes Maisonette / ' + 'Apartment)', + 'LOCAL_CUSTODIAN_CODE': 5900, 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'TOWER HAMLETS', + 'COUNTRY_CODE': 'E', 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', + 'POSTAL_ADDRESS_CODE': 'D', + 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', + 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', + 'TOPOGRAPHY_LAYER_TOID': 'osgb1000041686692', 'PARENT_UPRN': '6128805', + 'LAST_UPDATE_DATE': '20/06/2022', 'ENTRY_DATE': '08/05/2003', + 'BLPU_STATE_DATE': '08/05/2003', 'LANGUAGE': 'EN', 'MATCH': 0.4, + 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '1R'}}, { + 'DPA': {'UPRN': '6038163', 'UDPRN': '7845422', + 'ADDRESS': 'FLAT 21, BEVIN HOUSE, BUTLER STREET, LONDON, E2 0RW', + 'SUB_BUILDING_NAME': 'FLAT 21', 'BUILDING_NAME': 'BEVIN HOUSE', + 'THOROUGHFARE_NAME': 'BUTLER STREET', 'POST_TOWN': 'LONDON', 'POSTCODE': 'E2 0RW', + 'RPC': '2', 'X_COORDINATE': 535491.0, 'Y_COORDINATE': 182853.0, 'STATUS': 'APPROVED', + 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD06', + 'CLASSIFICATION_CODE_DESCRIPTION': 'Self Contained Flat (Includes Maisonette / ' + 'Apartment)', + 'LOCAL_CUSTODIAN_CODE': 5900, 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'TOWER HAMLETS', + 'COUNTRY_CODE': 'E', 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', + 'POSTAL_ADDRESS_CODE': 'D', + 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', + 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', + 'TOPOGRAPHY_LAYER_TOID': 'osgb1000041686692', 'PARENT_UPRN': '6128805', + 'LAST_UPDATE_DATE': '20/06/2022', 'ENTRY_DATE': '08/05/2003', + 'BLPU_STATE_DATE': '08/05/2003', 'LANGUAGE': 'EN', 'MATCH': 0.4, + 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '1S'}}, { + 'DPA': {'UPRN': '6038166', 'UDPRN': '7845425', + 'ADDRESS': 'FLAT 24, BEVIN HOUSE, BUTLER STREET, LONDON, E2 0RW', + 'SUB_BUILDING_NAME': 'FLAT 24', 'BUILDING_NAME': 'BEVIN HOUSE', + 'THOROUGHFARE_NAME': 'BUTLER STREET', 'POST_TOWN': 'LONDON', 'POSTCODE': 'E2 0RW', + 'RPC': '2', 'X_COORDINATE': 535491.0, 'Y_COORDINATE': 182853.0, 'STATUS': 'APPROVED', + 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD06', + 'CLASSIFICATION_CODE_DESCRIPTION': 'Self Contained Flat (Includes Maisonette / ' + 'Apartment)', + 'LOCAL_CUSTODIAN_CODE': 5900, 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'TOWER HAMLETS', + 'COUNTRY_CODE': 'E', 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', + 'POSTAL_ADDRESS_CODE': 'D', + 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', + 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', + 'TOPOGRAPHY_LAYER_TOID': 'osgb1000041686692', 'PARENT_UPRN': '6128805', + 'LAST_UPDATE_DATE': '20/06/2022', 'ENTRY_DATE': '08/05/2003', + 'BLPU_STATE_DATE': '08/05/2003', 'LANGUAGE': 'EN', 'MATCH': 0.4, + 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '1W'}}, { + 'DPA': {'UPRN': '6038167', 'UDPRN': '7845426', + 'ADDRESS': 'FLAT 25, BEVIN HOUSE, BUTLER STREET, LONDON, E2 0RW', + 'SUB_BUILDING_NAME': 'FLAT 25', 'BUILDING_NAME': 'BEVIN HOUSE', + 'THOROUGHFARE_NAME': 'BUTLER STREET', 'POST_TOWN': 'LONDON', 'POSTCODE': 'E2 0RW', + 'RPC': '2', 'X_COORDINATE': 535491.0, 'Y_COORDINATE': 182853.0, 'STATUS': 'APPROVED', + 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD06', + 'CLASSIFICATION_CODE_DESCRIPTION': 'Self Contained Flat (Includes Maisonette / ' + 'Apartment)', + 'LOCAL_CUSTODIAN_CODE': 5900, 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'TOWER HAMLETS', + 'COUNTRY_CODE': 'E', 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', + 'POSTAL_ADDRESS_CODE': 'D', + 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', + 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', + 'TOPOGRAPHY_LAYER_TOID': 'osgb1000041686692', 'PARENT_UPRN': '6128805', + 'LAST_UPDATE_DATE': '20/06/2022', 'ENTRY_DATE': '08/05/2003', + 'BLPU_STATE_DATE': '08/05/2003', 'LANGUAGE': 'EN', 'MATCH': 0.4, + 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '1X'}}, { + 'DPA': {'UPRN': '6038168', 'UDPRN': '7845427', + 'ADDRESS': 'FLAT 26, BEVIN HOUSE, BUTLER STREET, LONDON, E2 0RW', + 'SUB_BUILDING_NAME': 'FLAT 26', 'BUILDING_NAME': 'BEVIN HOUSE', + 'THOROUGHFARE_NAME': 'BUTLER STREET', 'POST_TOWN': 'LONDON', 'POSTCODE': 'E2 0RW', + 'RPC': '2', 'X_COORDINATE': 535491.0, 'Y_COORDINATE': 182853.0, 'STATUS': 'APPROVED', + 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD06', + 'CLASSIFICATION_CODE_DESCRIPTION': 'Self Contained Flat (Includes Maisonette / ' + 'Apartment)', + 'LOCAL_CUSTODIAN_CODE': 5900, 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'TOWER HAMLETS', + 'COUNTRY_CODE': 'E', 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', + 'POSTAL_ADDRESS_CODE': 'D', + 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', + 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', + 'TOPOGRAPHY_LAYER_TOID': 'osgb1000041686692', 'PARENT_UPRN': '6128805', + 'LAST_UPDATE_DATE': '20/06/2022', 'ENTRY_DATE': '08/05/2003', + 'BLPU_STATE_DATE': '08/05/2003', 'LANGUAGE': 'EN', 'MATCH': 0.4, + 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '1Y'}}, { + 'DPA': {'UPRN': '6038169', 'UDPRN': '7845428', + 'ADDRESS': 'FLAT 27, BEVIN HOUSE, BUTLER STREET, LONDON, E2 0RW', + 'SUB_BUILDING_NAME': 'FLAT 27', 'BUILDING_NAME': 'BEVIN HOUSE', + 'THOROUGHFARE_NAME': 'BUTLER STREET', 'POST_TOWN': 'LONDON', 'POSTCODE': 'E2 0RW', + 'RPC': '2', 'X_COORDINATE': 535491.0, 'Y_COORDINATE': 182853.0, 'STATUS': 'APPROVED', + 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD06', + 'CLASSIFICATION_CODE_DESCRIPTION': 'Self Contained Flat (Includes Maisonette / ' + 'Apartment)', + 'LOCAL_CUSTODIAN_CODE': 5900, 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'TOWER HAMLETS', + 'COUNTRY_CODE': 'E', 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', + 'POSTAL_ADDRESS_CODE': 'D', + 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', + 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', + 'TOPOGRAPHY_LAYER_TOID': 'osgb1000041686692', 'PARENT_UPRN': '6128805', + 'LAST_UPDATE_DATE': '20/06/2022', 'ENTRY_DATE': '08/05/2003', + 'BLPU_STATE_DATE': '08/05/2003', 'LANGUAGE': 'EN', 'MATCH': 0.4, + 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '1Z'}}, { + 'DPA': {'UPRN': '6038170', 'UDPRN': '7845429', + 'ADDRESS': 'FLAT 28, BEVIN HOUSE, BUTLER STREET, LONDON, E2 0RW', + 'SUB_BUILDING_NAME': 'FLAT 28', 'BUILDING_NAME': 'BEVIN HOUSE', + 'THOROUGHFARE_NAME': 'BUTLER STREET', 'POST_TOWN': 'LONDON', 'POSTCODE': 'E2 0RW', + 'RPC': '2', 'X_COORDINATE': 535491.0, 'Y_COORDINATE': 182853.0, 'STATUS': 'APPROVED', + 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD06', + 'CLASSIFICATION_CODE_DESCRIPTION': 'Self Contained Flat (Includes Maisonette / ' + 'Apartment)', + 'LOCAL_CUSTODIAN_CODE': 5900, 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'TOWER HAMLETS', + 'COUNTRY_CODE': 'E', 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', + 'POSTAL_ADDRESS_CODE': 'D', + 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', + 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', + 'TOPOGRAPHY_LAYER_TOID': 'osgb1000041686692', 'PARENT_UPRN': '6128805', + 'LAST_UPDATE_DATE': '20/06/2022', 'ENTRY_DATE': '08/05/2003', + 'BLPU_STATE_DATE': '08/05/2003', 'LANGUAGE': 'EN', 'MATCH': 0.4, + 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '2A'}}, { + 'DPA': {'UPRN': '6038171', 'UDPRN': '7845430', + 'ADDRESS': 'FLAT 29, BEVIN HOUSE, BUTLER STREET, LONDON, E2 0RW', + 'SUB_BUILDING_NAME': 'FLAT 29', 'BUILDING_NAME': 'BEVIN HOUSE', + 'THOROUGHFARE_NAME': 'BUTLER STREET', 'POST_TOWN': 'LONDON', 'POSTCODE': 'E2 0RW', + 'RPC': '2', 'X_COORDINATE': 535491.0, 'Y_COORDINATE': 182853.0, 'STATUS': 'APPROVED', + 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD06', + 'CLASSIFICATION_CODE_DESCRIPTION': 'Self Contained Flat (Includes Maisonette / ' + 'Apartment)', + 'LOCAL_CUSTODIAN_CODE': 5900, 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'TOWER HAMLETS', + 'COUNTRY_CODE': 'E', 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', + 'POSTAL_ADDRESS_CODE': 'D', + 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', + 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', + 'TOPOGRAPHY_LAYER_TOID': 'osgb1000041686692', 'PARENT_UPRN': '6128805', + 'LAST_UPDATE_DATE': '20/06/2022', 'ENTRY_DATE': '08/05/2003', + 'BLPU_STATE_DATE': '08/05/2003', 'LANGUAGE': 'EN', 'MATCH': 0.4, + 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '2B'}}, { + 'DPA': {'UPRN': '6038173', 'UDPRN': '7845432', + 'ADDRESS': 'FLAT 30, BEVIN HOUSE, BUTLER STREET, LONDON, E2 0RW', + 'SUB_BUILDING_NAME': 'FLAT 30', 'BUILDING_NAME': 'BEVIN HOUSE', + 'THOROUGHFARE_NAME': 'BUTLER STREET', 'POST_TOWN': 'LONDON', 'POSTCODE': 'E2 0RW', + 'RPC': '2', 'X_COORDINATE': 535491.0, 'Y_COORDINATE': 182853.0, 'STATUS': 'APPROVED', + 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD06', + 'CLASSIFICATION_CODE_DESCRIPTION': 'Self Contained Flat (Includes Maisonette / ' + 'Apartment)', + 'LOCAL_CUSTODIAN_CODE': 5900, 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'TOWER HAMLETS', + 'COUNTRY_CODE': 'E', 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', + 'POSTAL_ADDRESS_CODE': 'D', + 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', + 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', + 'TOPOGRAPHY_LAYER_TOID': 'osgb1000041686692', 'PARENT_UPRN': '6128805', + 'LAST_UPDATE_DATE': '20/06/2022', 'ENTRY_DATE': '08/05/2003', + 'BLPU_STATE_DATE': '08/05/2003', 'LANGUAGE': 'EN', 'MATCH': 0.4, + 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '2E'}}, { + 'DPA': {'UPRN': '6038174', 'UDPRN': '7845433', + 'ADDRESS': 'FLAT 31, BEVIN HOUSE, BUTLER STREET, LONDON, E2 0RW', + 'SUB_BUILDING_NAME': 'FLAT 31', 'BUILDING_NAME': 'BEVIN HOUSE', + 'THOROUGHFARE_NAME': 'BUTLER STREET', 'POST_TOWN': 'LONDON', 'POSTCODE': 'E2 0RW', + 'RPC': '2', 'X_COORDINATE': 535491.0, 'Y_COORDINATE': 182853.0, 'STATUS': 'APPROVED', + 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD06', + 'CLASSIFICATION_CODE_DESCRIPTION': 'Self Contained Flat (Includes Maisonette / ' + 'Apartment)', + 'LOCAL_CUSTODIAN_CODE': 5900, 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'TOWER HAMLETS', + 'COUNTRY_CODE': 'E', 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', + 'POSTAL_ADDRESS_CODE': 'D', + 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', + 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', + 'TOPOGRAPHY_LAYER_TOID': 'osgb1000041686692', 'PARENT_UPRN': '6128805', + 'LAST_UPDATE_DATE': '20/06/2022', 'ENTRY_DATE': '08/05/2003', + 'BLPU_STATE_DATE': '08/05/2003', 'LANGUAGE': 'EN', 'MATCH': 0.4, + 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '2F'}}, { + 'DPA': {'UPRN': '6038150', 'UDPRN': '7845409', + 'ADDRESS': 'FLAT 1, BEVIN HOUSE, BUTLER STREET, LONDON, E2 0RW', + 'SUB_BUILDING_NAME': 'FLAT 1', 'BUILDING_NAME': 'BEVIN HOUSE', + 'THOROUGHFARE_NAME': 'BUTLER STREET', 'POST_TOWN': 'LONDON', 'POSTCODE': 'E2 0RW', + 'RPC': '2', 'X_COORDINATE': 535491.0, 'Y_COORDINATE': 182853.0, 'STATUS': 'APPROVED', + 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD06', + 'CLASSIFICATION_CODE_DESCRIPTION': 'Self Contained Flat (Includes Maisonette / ' + 'Apartment)', + 'LOCAL_CUSTODIAN_CODE': 5900, 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'TOWER HAMLETS', + 'COUNTRY_CODE': 'E', 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', + 'POSTAL_ADDRESS_CODE': 'D', + 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', + 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', + 'TOPOGRAPHY_LAYER_TOID': 'osgb1000041686692', 'PARENT_UPRN': '6128805', + 'LAST_UPDATE_DATE': '20/06/2022', 'ENTRY_DATE': '08/05/2003', + 'BLPU_STATE_DATE': '08/05/2003', 'LANGUAGE': 'EN', 'MATCH': 0.4, + 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '1A'}}, { + 'DPA': {'UPRN': '6038176', 'UDPRN': '7845435', + 'ADDRESS': 'FLAT 4, BEVIN HOUSE, BUTLER STREET, LONDON, E2 0RW', + 'SUB_BUILDING_NAME': 'FLAT 4', 'BUILDING_NAME': 'BEVIN HOUSE', + 'THOROUGHFARE_NAME': 'BUTLER STREET', 'POST_TOWN': 'LONDON', 'POSTCODE': 'E2 0RW', + 'RPC': '2', 'X_COORDINATE': 535491.0, 'Y_COORDINATE': 182853.0, 'STATUS': 'APPROVED', + 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD06', + 'CLASSIFICATION_CODE_DESCRIPTION': 'Self Contained Flat (Includes Maisonette / ' + 'Apartment)', + 'LOCAL_CUSTODIAN_CODE': 5900, 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'TOWER HAMLETS', + 'COUNTRY_CODE': 'E', 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', + 'POSTAL_ADDRESS_CODE': 'D', + 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', + 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', + 'TOPOGRAPHY_LAYER_TOID': 'osgb1000041686692', 'PARENT_UPRN': '6128805', + 'LAST_UPDATE_DATE': '20/06/2022', 'ENTRY_DATE': '08/05/2003', + 'BLPU_STATE_DATE': '08/05/2003', 'LANGUAGE': 'EN', 'MATCH': 0.4, + 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '2H'}}, { + 'DPA': {'UPRN': '6038177', 'UDPRN': '7845436', + 'ADDRESS': 'FLAT 5, BEVIN HOUSE, BUTLER STREET, LONDON, E2 0RW', + 'SUB_BUILDING_NAME': 'FLAT 5', 'BUILDING_NAME': 'BEVIN HOUSE', + 'THOROUGHFARE_NAME': 'BUTLER STREET', 'POST_TOWN': 'LONDON', 'POSTCODE': 'E2 0RW', + 'RPC': '2', 'X_COORDINATE': 535491.0, 'Y_COORDINATE': 182853.0, 'STATUS': 'APPROVED', + 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD06', + 'CLASSIFICATION_CODE_DESCRIPTION': 'Self Contained Flat (Includes Maisonette / ' + 'Apartment)', + 'LOCAL_CUSTODIAN_CODE': 5900, 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'TOWER HAMLETS', + 'COUNTRY_CODE': 'E', 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', + 'POSTAL_ADDRESS_CODE': 'D', + 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', + 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', + 'TOPOGRAPHY_LAYER_TOID': 'osgb1000041686692', 'PARENT_UPRN': '6128805', + 'LAST_UPDATE_DATE': '20/06/2022', 'ENTRY_DATE': '08/05/2003', + 'BLPU_STATE_DATE': '08/05/2003', 'LANGUAGE': 'EN', 'MATCH': 0.4, + 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '2J'}}, { + 'DPA': {'UPRN': '6038178', 'UDPRN': '7845437', + 'ADDRESS': 'FLAT 6, BEVIN HOUSE, BUTLER STREET, LONDON, E2 0RW', + 'SUB_BUILDING_NAME': 'FLAT 6', 'BUILDING_NAME': 'BEVIN HOUSE', + 'THOROUGHFARE_NAME': 'BUTLER STREET', 'POST_TOWN': 'LONDON', 'POSTCODE': 'E2 0RW', + 'RPC': '2', 'X_COORDINATE': 535491.0, 'Y_COORDINATE': 182853.0, 'STATUS': 'APPROVED', + 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD06', + 'CLASSIFICATION_CODE_DESCRIPTION': 'Self Contained Flat (Includes Maisonette / ' + 'Apartment)', + 'LOCAL_CUSTODIAN_CODE': 5900, 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'TOWER HAMLETS', + 'COUNTRY_CODE': 'E', 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', + 'POSTAL_ADDRESS_CODE': 'D', + 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', + 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', + 'TOPOGRAPHY_LAYER_TOID': 'osgb1000041686692', 'PARENT_UPRN': '6128805', + 'LAST_UPDATE_DATE': '20/06/2022', 'ENTRY_DATE': '08/05/2003', + 'BLPU_STATE_DATE': '08/05/2003', 'LANGUAGE': 'EN', 'MATCH': 0.4, + 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '2L'}}, { + 'DPA': {'UPRN': '6038179', 'UDPRN': '7845438', + 'ADDRESS': 'FLAT 7, BEVIN HOUSE, BUTLER STREET, LONDON, E2 0RW', + 'SUB_BUILDING_NAME': 'FLAT 7', 'BUILDING_NAME': 'BEVIN HOUSE', + 'THOROUGHFARE_NAME': 'BUTLER STREET', 'POST_TOWN': 'LONDON', 'POSTCODE': 'E2 0RW', + 'RPC': '2', 'X_COORDINATE': 535491.0, 'Y_COORDINATE': 182853.0, 'STATUS': 'APPROVED', + 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD06', + 'CLASSIFICATION_CODE_DESCRIPTION': 'Self Contained Flat (Includes Maisonette / ' + 'Apartment)', + 'LOCAL_CUSTODIAN_CODE': 5900, 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'TOWER HAMLETS', + 'COUNTRY_CODE': 'E', 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', + 'POSTAL_ADDRESS_CODE': 'D', + 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', + 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', + 'TOPOGRAPHY_LAYER_TOID': 'osgb1000041686692', 'PARENT_UPRN': '6128805', + 'LAST_UPDATE_DATE': '20/06/2022', 'ENTRY_DATE': '08/05/2003', + 'BLPU_STATE_DATE': '08/05/2003', 'LANGUAGE': 'EN', 'MATCH': 0.4, + 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '2N'}}, { + 'DPA': {'UPRN': '6038180', 'UDPRN': '7845439', + 'ADDRESS': 'FLAT 8, BEVIN HOUSE, BUTLER STREET, LONDON, E2 0RW', + 'SUB_BUILDING_NAME': 'FLAT 8', 'BUILDING_NAME': 'BEVIN HOUSE', + 'THOROUGHFARE_NAME': 'BUTLER STREET', 'POST_TOWN': 'LONDON', 'POSTCODE': 'E2 0RW', + 'RPC': '2', 'X_COORDINATE': 535491.0, 'Y_COORDINATE': 182853.0, 'STATUS': 'APPROVED', + 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD06', + 'CLASSIFICATION_CODE_DESCRIPTION': 'Self Contained Flat (Includes Maisonette / ' + 'Apartment)', + 'LOCAL_CUSTODIAN_CODE': 5900, 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'TOWER HAMLETS', + 'COUNTRY_CODE': 'E', 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', + 'POSTAL_ADDRESS_CODE': 'D', + 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', + 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', + 'TOPOGRAPHY_LAYER_TOID': 'osgb1000041686692', 'PARENT_UPRN': '6128805', + 'LAST_UPDATE_DATE': '20/06/2022', 'ENTRY_DATE': '08/05/2003', + 'BLPU_STATE_DATE': '08/05/2003', 'LANGUAGE': 'EN', 'MATCH': 0.4, + 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '2P'}}, { + 'DPA': {'UPRN': '6038181', 'UDPRN': '7845440', + 'ADDRESS': 'FLAT 9, BEVIN HOUSE, BUTLER STREET, LONDON, E2 0RW', + 'SUB_BUILDING_NAME': 'FLAT 9', 'BUILDING_NAME': 'BEVIN HOUSE', + 'THOROUGHFARE_NAME': 'BUTLER STREET', 'POST_TOWN': 'LONDON', 'POSTCODE': 'E2 0RW', + 'RPC': '2', 'X_COORDINATE': 535491.0, 'Y_COORDINATE': 182853.0, 'STATUS': 'APPROVED', + 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD06', + 'CLASSIFICATION_CODE_DESCRIPTION': 'Self Contained Flat (Includes Maisonette / ' + 'Apartment)', + 'LOCAL_CUSTODIAN_CODE': 5900, 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'TOWER HAMLETS', + 'COUNTRY_CODE': 'E', 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', + 'POSTAL_ADDRESS_CODE': 'D', + 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', + 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', + 'TOPOGRAPHY_LAYER_TOID': 'osgb1000041686692', 'PARENT_UPRN': '6128805', + 'LAST_UPDATE_DATE': '20/06/2022', 'ENTRY_DATE': '08/05/2003', + 'BLPU_STATE_DATE': '08/05/2003', 'LANGUAGE': 'EN', 'MATCH': 0.4, + 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '2Q'}}, { + 'DPA': {'UPRN': '6038151', 'UDPRN': '7845410', + 'ADDRESS': 'FLAT 10, BEVIN HOUSE, BUTLER STREET, LONDON, E2 0RW', + 'SUB_BUILDING_NAME': 'FLAT 10', 'BUILDING_NAME': 'BEVIN HOUSE', + 'THOROUGHFARE_NAME': 'BUTLER STREET', 'POST_TOWN': 'LONDON', 'POSTCODE': 'E2 0RW', + 'RPC': '2', 'X_COORDINATE': 535491.0, 'Y_COORDINATE': 182853.0, 'STATUS': 'APPROVED', + 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD06', + 'CLASSIFICATION_CODE_DESCRIPTION': 'Self Contained Flat (Includes Maisonette / ' + 'Apartment)', + 'LOCAL_CUSTODIAN_CODE': 5900, 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'TOWER HAMLETS', + 'COUNTRY_CODE': 'E', 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', + 'POSTAL_ADDRESS_CODE': 'D', + 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', + 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', + 'TOPOGRAPHY_LAYER_TOID': 'osgb1000041686692', 'PARENT_UPRN': '6128805', + 'LAST_UPDATE_DATE': '20/06/2022', 'ENTRY_DATE': '08/05/2003', + 'BLPU_STATE_DATE': '08/05/2003', 'LANGUAGE': 'EN', 'MATCH': 0.3, + 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '1B'}}, { + 'DPA': {'UPRN': '6038152', 'UDPRN': '7845411', + 'ADDRESS': 'FLAT 11, BEVIN HOUSE, BUTLER STREET, LONDON, E2 0RW', + 'SUB_BUILDING_NAME': 'FLAT 11', 'BUILDING_NAME': 'BEVIN HOUSE', + 'THOROUGHFARE_NAME': 'BUTLER STREET', 'POST_TOWN': 'LONDON', 'POSTCODE': 'E2 0RW', + 'RPC': '2', 'X_COORDINATE': 535491.0, 'Y_COORDINATE': 182853.0, 'STATUS': 'APPROVED', + 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD06', + 'CLASSIFICATION_CODE_DESCRIPTION': 'Self Contained Flat (Includes Maisonette / ' + 'Apartment)', + 'LOCAL_CUSTODIAN_CODE': 5900, 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'TOWER HAMLETS', + 'COUNTRY_CODE': 'E', 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', + 'POSTAL_ADDRESS_CODE': 'D', + 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', + 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', + 'TOPOGRAPHY_LAYER_TOID': 'osgb1000041686692', 'PARENT_UPRN': '6128805', + 'LAST_UPDATE_DATE': '20/06/2022', 'ENTRY_DATE': '08/05/2003', + 'BLPU_STATE_DATE': '08/05/2003', 'LANGUAGE': 'EN', 'MATCH': 0.3, + 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '1D'}}, { + 'DPA': {'UPRN': '6038155', 'UDPRN': '7845414', + 'ADDRESS': 'FLAT 14, BEVIN HOUSE, BUTLER STREET, LONDON, E2 0RW', + 'SUB_BUILDING_NAME': 'FLAT 14', 'BUILDING_NAME': 'BEVIN HOUSE', + 'THOROUGHFARE_NAME': 'BUTLER STREET', 'POST_TOWN': 'LONDON', 'POSTCODE': 'E2 0RW', + 'RPC': '2', 'X_COORDINATE': 535491.0, 'Y_COORDINATE': 182853.0, 'STATUS': 'APPROVED', + 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD06', + 'CLASSIFICATION_CODE_DESCRIPTION': 'Self Contained Flat (Includes Maisonette / ' + 'Apartment)', + 'LOCAL_CUSTODIAN_CODE': 5900, 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'TOWER HAMLETS', + 'COUNTRY_CODE': 'E', 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', + 'POSTAL_ADDRESS_CODE': 'D', + 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', + 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', + 'TOPOGRAPHY_LAYER_TOID': 'osgb1000041686692', 'PARENT_UPRN': '6128805', + 'LAST_UPDATE_DATE': '20/06/2022', 'ENTRY_DATE': '08/05/2003', + 'BLPU_STATE_DATE': '08/05/2003', 'LANGUAGE': 'EN', 'MATCH': 0.3, + 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '1G'}}, { + 'DPA': {'UPRN': '6038156', 'UDPRN': '7845415', + 'ADDRESS': 'FLAT 15, BEVIN HOUSE, BUTLER STREET, LONDON, E2 0RW', + 'SUB_BUILDING_NAME': 'FLAT 15', 'BUILDING_NAME': 'BEVIN HOUSE', + 'THOROUGHFARE_NAME': 'BUTLER STREET', 'POST_TOWN': 'LONDON', 'POSTCODE': 'E2 0RW', + 'RPC': '2', 'X_COORDINATE': 535491.0, 'Y_COORDINATE': 182853.0, 'STATUS': 'APPROVED', + 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD06', + 'CLASSIFICATION_CODE_DESCRIPTION': 'Self Contained Flat (Includes Maisonette / ' + 'Apartment)', + 'LOCAL_CUSTODIAN_CODE': 5900, 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'TOWER HAMLETS', + 'COUNTRY_CODE': 'E', 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', + 'POSTAL_ADDRESS_CODE': 'D', + 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', + 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', + 'TOPOGRAPHY_LAYER_TOID': 'osgb1000041686692', 'PARENT_UPRN': '6128805', + 'LAST_UPDATE_DATE': '20/06/2022', 'ENTRY_DATE': '08/05/2003', + 'BLPU_STATE_DATE': '08/05/2003', 'LANGUAGE': 'EN', 'MATCH': 0.3, + 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '1H'}}, { + 'DPA': {'UPRN': '6038157', 'UDPRN': '7845416', + 'ADDRESS': 'FLAT 16, BEVIN HOUSE, BUTLER STREET, LONDON, E2 0RW', + 'SUB_BUILDING_NAME': 'FLAT 16', 'BUILDING_NAME': 'BEVIN HOUSE', + 'THOROUGHFARE_NAME': 'BUTLER STREET', 'POST_TOWN': 'LONDON', 'POSTCODE': 'E2 0RW', + 'RPC': '2', 'X_COORDINATE': 535491.0, 'Y_COORDINATE': 182853.0, 'STATUS': 'APPROVED', + 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD06', + 'CLASSIFICATION_CODE_DESCRIPTION': 'Self Contained Flat (Includes Maisonette / ' + 'Apartment)', + 'LOCAL_CUSTODIAN_CODE': 5900, 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'TOWER HAMLETS', + 'COUNTRY_CODE': 'E', 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', + 'POSTAL_ADDRESS_CODE': 'D', + 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', + 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', + 'TOPOGRAPHY_LAYER_TOID': 'osgb1000041686692', 'PARENT_UPRN': '6128805', + 'LAST_UPDATE_DATE': '20/06/2022', 'ENTRY_DATE': '08/05/2003', + 'BLPU_STATE_DATE': '08/05/2003', 'LANGUAGE': 'EN', 'MATCH': 0.3, + 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '1J'}}, { + 'DPA': {'UPRN': '6038158', 'UDPRN': '7845417', + 'ADDRESS': 'FLAT 17, BEVIN HOUSE, BUTLER STREET, LONDON, E2 0RW', + 'SUB_BUILDING_NAME': 'FLAT 17', 'BUILDING_NAME': 'BEVIN HOUSE', + 'THOROUGHFARE_NAME': 'BUTLER STREET', 'POST_TOWN': 'LONDON', 'POSTCODE': 'E2 0RW', + 'RPC': '2', 'X_COORDINATE': 535491.0, 'Y_COORDINATE': 182853.0, 'STATUS': 'APPROVED', + 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD06', + 'CLASSIFICATION_CODE_DESCRIPTION': 'Self Contained Flat (Includes Maisonette / ' + 'Apartment)', + 'LOCAL_CUSTODIAN_CODE': 5900, 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'TOWER HAMLETS', + 'COUNTRY_CODE': 'E', 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', + 'POSTAL_ADDRESS_CODE': 'D', + 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', + 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', + 'TOPOGRAPHY_LAYER_TOID': 'osgb1000041686692', 'PARENT_UPRN': '6128805', + 'LAST_UPDATE_DATE': '20/06/2022', 'ENTRY_DATE': '08/05/2003', + 'BLPU_STATE_DATE': '08/05/2003', 'LANGUAGE': 'EN', 'MATCH': 0.3, + 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '1L'}}, { + 'DPA': {'UPRN': '6038159', 'UDPRN': '7845418', + 'ADDRESS': 'FLAT 18, BEVIN HOUSE, BUTLER STREET, LONDON, E2 0RW', + 'SUB_BUILDING_NAME': 'FLAT 18', 'BUILDING_NAME': 'BEVIN HOUSE', + 'THOROUGHFARE_NAME': 'BUTLER STREET', 'POST_TOWN': 'LONDON', 'POSTCODE': 'E2 0RW', + 'RPC': '2', 'X_COORDINATE': 535491.0, 'Y_COORDINATE': 182853.0, 'STATUS': 'APPROVED', + 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD06', + 'CLASSIFICATION_CODE_DESCRIPTION': 'Self Contained Flat (Includes Maisonette / ' + 'Apartment)', + 'LOCAL_CUSTODIAN_CODE': 5900, 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'TOWER HAMLETS', + 'COUNTRY_CODE': 'E', 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', + 'POSTAL_ADDRESS_CODE': 'D', + 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', + 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', + 'TOPOGRAPHY_LAYER_TOID': 'osgb1000041686692', 'PARENT_UPRN': '6128805', + 'LAST_UPDATE_DATE': '20/06/2022', 'ENTRY_DATE': '08/05/2003', + 'BLPU_STATE_DATE': '08/05/2003', 'LANGUAGE': 'EN', 'MATCH': 0.3, + 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '1N'}}, { + 'DPA': {'UPRN': '6038160', 'UDPRN': '7845419', + 'ADDRESS': 'FLAT 19, BEVIN HOUSE, BUTLER STREET, LONDON, E2 0RW', + 'SUB_BUILDING_NAME': 'FLAT 19', 'BUILDING_NAME': 'BEVIN HOUSE', + 'THOROUGHFARE_NAME': 'BUTLER STREET', 'POST_TOWN': 'LONDON', 'POSTCODE': 'E2 0RW', + 'RPC': '2', 'X_COORDINATE': 535491.0, 'Y_COORDINATE': 182853.0, 'STATUS': 'APPROVED', + 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD06', + 'CLASSIFICATION_CODE_DESCRIPTION': 'Self Contained Flat (Includes Maisonette / ' + 'Apartment)', + 'LOCAL_CUSTODIAN_CODE': 5900, 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'TOWER HAMLETS', + 'COUNTRY_CODE': 'E', 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', + 'POSTAL_ADDRESS_CODE': 'D', + 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', + 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', + 'TOPOGRAPHY_LAYER_TOID': 'osgb1000041686692', 'PARENT_UPRN': '6128805', + 'LAST_UPDATE_DATE': '20/06/2022', 'ENTRY_DATE': '08/05/2003', + 'BLPU_STATE_DATE': '08/05/2003', 'LANGUAGE': 'EN', 'MATCH': 0.3, + 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '1P'}}, { + 'DPA': {'UPRN': '3040038989', 'UDPRN': '16547514', + 'ADDRESS': '23, BUTLER CLOSE, CROPWELL BUTLER, NOTTINGHAM, NG12 3AF', + 'BUILDING_NUMBER': '23', 'THOROUGHFARE_NAME': 'BUTLER CLOSE', + 'DEPENDENT_LOCALITY': 'CROPWELL BUTLER', 'POST_TOWN': 'NOTTINGHAM', + 'POSTCODE': 'NG12 3AF', 'RPC': '2', 'X_COORDINATE': 468456.0, 'Y_COORDINATE': 336688.0, + 'STATUS': 'APPROVED', 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD03', + 'CLASSIFICATION_CODE_DESCRIPTION': 'Semi-Detached', 'LOCAL_CUSTODIAN_CODE': 3040, + 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'RUSHCLIFFE', 'COUNTRY_CODE': 'E', + 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', 'POSTAL_ADDRESS_CODE': 'D', + 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', + 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', + 'TOPOGRAPHY_LAYER_TOID': 'osgb1000023504919', 'LAST_UPDATE_DATE': '01/10/2019', + 'ENTRY_DATE': '13/12/2000', 'BLPU_STATE_DATE': '13/12/2000', 'LANGUAGE': 'EN', + 'MATCH': 0.3, 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '1U'}}, { + 'DPA': {'UPRN': '200003357053', 'UDPRN': '21443062', + 'ADDRESS': 'FLAT 23, PETER BUTLER HOUSE, WOLSELEY STREET, LONDON, SE1 2BJ', + 'SUB_BUILDING_NAME': 'FLAT 23', 'BUILDING_NAME': 'PETER BUTLER HOUSE', + 'THOROUGHFARE_NAME': 'WOLSELEY STREET', 'POST_TOWN': 'LONDON', 'POSTCODE': 'SE1 2BJ', + 'RPC': '2', 'X_COORDINATE': 534088.0, 'Y_COORDINATE': 179747.0, 'STATUS': 'APPROVED', + 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD06', + 'CLASSIFICATION_CODE_DESCRIPTION': 'Self Contained Flat (Includes Maisonette / ' + 'Apartment)', + 'LOCAL_CUSTODIAN_CODE': 5840, 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'SOUTHWARK', + 'COUNTRY_CODE': 'E', 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', + 'POSTAL_ADDRESS_CODE': 'D', + 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', + 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', + 'TOPOGRAPHY_LAYER_TOID': 'osgb1000006172980', 'PARENT_UPRN': '200003500897', + 'LAST_UPDATE_DATE': '10/02/2016', 'ENTRY_DATE': '20/05/2003', + 'BLPU_STATE_DATE': '08/04/2009', 'LANGUAGE': 'EN', 'MATCH': 0.3, + 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '1U'}}, { + 'DPA': {'UPRN': '100100221882', 'UDPRN': '4625510', + 'ADDRESS': '23, BUTLER STREET, SHOTTON, GLANNAU DYFRDWY, CH5 1AP', + 'BUILDING_NUMBER': '23', 'THOROUGHFARE_NAME': 'BUTLER STREET', + 'DEPENDENT_LOCALITY': 'SHOTTON', 'POST_TOWN': 'GLANNAU DYFRDWY', 'POSTCODE': 'CH5 1AP', + 'RPC': '1', 'X_COORDINATE': 330758.0, 'Y_COORDINATE': 368483.0, 'STATUS': 'APPROVED', + 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD04', + 'CLASSIFICATION_CODE_DESCRIPTION': 'Terraced', 'LOCAL_CUSTODIAN_CODE': 6835, + 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'FLINTSHIRE', 'COUNTRY_CODE': 'W', + 'COUNTRY_CODE_DESCRIPTION': 'This record is within Wales', 'POSTAL_ADDRESS_CODE': 'D', + 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', + 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', + 'TOPOGRAPHY_LAYER_TOID': 'osgb1000034722275', 'LAST_UPDATE_DATE': '16/05/2022', + 'ENTRY_DATE': '10/05/2001', 'BLPU_STATE_DATE': '10/05/2001', 'LANGUAGE': 'CY', + 'MATCH': 0.3, 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '1U'}}, { + 'DPA': {'UPRN': '200001132475', 'UDPRN': '26597335', + 'ADDRESS': '23 MORRIS HOUSE, BUTLER STREET, WIGAN, WN1 3QY', + 'BUILDING_NAME': '23 MORRIS HOUSE', 'THOROUGHFARE_NAME': 'BUTLER STREET', + 'POST_TOWN': 'WIGAN', 'POSTCODE': 'WN1 3QY', 'RPC': '2', 'X_COORDINATE': 358656.0, + 'Y_COORDINATE': 405727.0, 'STATUS': 'APPROVED', 'LOGICAL_STATUS_CODE': '1', + 'CLASSIFICATION_CODE': 'RD06', + 'CLASSIFICATION_CODE_DESCRIPTION': 'Self Contained Flat (Includes Maisonette / ' + 'Apartment)', + 'LOCAL_CUSTODIAN_CODE': 4250, 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'WIGAN', + 'COUNTRY_CODE': 'E', 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', + 'POSTAL_ADDRESS_CODE': 'D', + 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', + 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', + 'TOPOGRAPHY_LAYER_TOID': 'osgb1000038141883', 'PARENT_UPRN': '200001174781', + 'LAST_UPDATE_DATE': '10/02/2016', 'ENTRY_DATE': '15/01/2002', + 'BLPU_STATE_DATE': '15/01/2002', 'LANGUAGE': 'EN', 'MATCH': 0.3, + 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '1U'}}, { + 'DPA': {'UPRN': '100021167639', 'UDPRN': '15753729', + 'ADDRESS': 'FLAT 23, JOYCE BUTLER HOUSE, COMMERCE ROAD, LONDON, N22 8EA', + 'SUB_BUILDING_NAME': 'FLAT 23', 'BUILDING_NAME': 'JOYCE BUTLER HOUSE', + 'THOROUGHFARE_NAME': 'COMMERCE ROAD', 'POST_TOWN': 'LONDON', 'POSTCODE': 'N22 8EA', + 'RPC': '2', 'X_COORDINATE': 530743.0, 'Y_COORDINATE': 190869.0, 'STATUS': 'APPROVED', + 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD06', + 'CLASSIFICATION_CODE_DESCRIPTION': 'Self Contained Flat (Includes Maisonette / ' + 'Apartment)', + 'LOCAL_CUSTODIAN_CODE': 5420, + 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'LONDON BOROUGH OF HARINGEY', 'COUNTRY_CODE': 'E', + 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', 'POSTAL_ADDRESS_CODE': 'D', + 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', + 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', + 'TOPOGRAPHY_LAYER_TOID': 'osgb1000005603686', 'PARENT_UPRN': '100023656717', + 'LAST_UPDATE_DATE': '16/05/2022', 'ENTRY_DATE': '31/03/2004', + 'BLPU_STATE_DATE': '24/03/2004', 'LANGUAGE': 'EN', 'MATCH': 0.3, + 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '1U'}}, { + 'DPA': {'UPRN': '200001825227', 'UDPRN': '1679218', + 'ADDRESS': 'BUTLER HOUSE, BUTLER LANE, BAILDON, SHIPLEY, BD17 6PG', + 'BUILDING_NAME': 'BUTLER HOUSE', 'THOROUGHFARE_NAME': 'BUTLER LANE', + 'DEPENDENT_LOCALITY': 'BAILDON', 'POST_TOWN': 'SHIPLEY', 'POSTCODE': 'BD17 6PG', + 'RPC': '1', 'X_COORDINATE': 415603.0, 'Y_COORDINATE': 439584.0, 'STATUS': 'APPROVED', + 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD03', + 'CLASSIFICATION_CODE_DESCRIPTION': 'Semi-Detached', 'LOCAL_CUSTODIAN_CODE': 4705, + 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'BRADFORD MDC', 'COUNTRY_CODE': 'E', + 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', 'POSTAL_ADDRESS_CODE': 'D', + 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', + 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', + 'TOPOGRAPHY_LAYER_TOID': 'osgb1000031973762', 'LAST_UPDATE_DATE': '10/02/2016', + 'ENTRY_DATE': '02/07/2002', 'BLPU_STATE_DATE': '02/07/2002', 'LANGUAGE': 'EN', + 'MATCH': 0.3, 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '1B'}}, { + 'DPA': {'UPRN': '202082612', 'UDPRN': '17825144', + 'ADDRESS': 'FLAT 23, HUGH GAITSKELL HOUSE, BUTLER ROAD, LONDON, NW10 9RT', + 'SUB_BUILDING_NAME': 'FLAT 23', 'BUILDING_NAME': 'HUGH GAITSKELL HOUSE', + 'THOROUGHFARE_NAME': 'BUTLER ROAD', 'POST_TOWN': 'LONDON', 'POSTCODE': 'NW10 9RT', + 'RPC': '2', 'X_COORDINATE': 521511.0, 'Y_COORDINATE': 184340.0, 'STATUS': 'APPROVED', + 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD06', + 'CLASSIFICATION_CODE_DESCRIPTION': 'Self Contained Flat (Includes Maisonette / ' + 'Apartment)', + 'LOCAL_CUSTODIAN_CODE': 5150, 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'BRENT', + 'COUNTRY_CODE': 'E', 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', + 'POSTAL_ADDRESS_CODE': 'D', + 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', + 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', + 'TOPOGRAPHY_LAYER_TOID': 'osgb1000042025598', 'PARENT_UPRN': '202191825', + 'LAST_UPDATE_DATE': '10/02/2016', 'ENTRY_DATE': '13/09/1979', + 'BLPU_STATE_DATE': '10/08/2007', 'LANGUAGE': 'EN', 'MATCH': 0.3, + 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '1U'}}] + + # TEMP + # from dotenv import load_dotenv + # from pathlib import Path + # ENV_FILE = Path(__file__).parent / "etl" / "eligibility" / "ha_15_32" / ".env" + # load_dotenv(ENV_FILE) + # self = SearchEpc(address1=address1, postcode=postcode) + + # From the ordnance survey data, we want to determine the property type and then use only similar property + # types for the estimation + property_os_place = os_data[0]["DPA"] + + from backend.OrdnanceSurvey import OrdnanceSuveyClient + + os_property_type, os_built_form = OrdnanceSuveyClient.parse_classification_code( + property_os_place["CLASSIFICATION_CODE"]) + # TODO: Then, if the property is semi-detatched, but all of the neighbours are terraced, we should update the + # property type to end-terraced + + # We firstly get the first 100 properties for the postcode, from the EPC api + epc_reponse = self.client.domestic.search(params={"postcode": self.postcode}, size=100) + epc_data = pd.DataFrame(epc_reponse["rows"]) + + # We now get the newest EPC per uprn + epc_data = epc_data.sort_values("lodgement-datetime", ascending=False).groupby("uprn").head(1) + + # For each record, parse the house number. We'll use this to identify the closest properties + epc_data["house_number"] = epc_data["address"].apply(lambda add1: self.get_house_number(add1)) + + # We convert the house number fo a purely numeric format - therefore + epc_data["numeric_house_number"] = epc_data["house_number"].apply( + lambda house_num: self.extract_numeric_housenumber_part(house_num) + ) + + epc_data["house_number_distance"] = abs( + epc_data["numeric_house_number"] - self.numeric_house_number + ) + + epc_built_form = self._get_epc_mode(col="built-form", epc_data=epc_data) + epc_property_type = self._get_epc_mode(col="property-type", epc_data=epc_data) + + # We check if the EPC built form is one of the terraced values. If the os_built_form is semi-detached, + # then we set it to be end terraced + if os_built_form == "Semi-Detached" and epc_built_form in ["End-Terraced", "Mid-Terraced"]: + estimation_built_form = "End-Terraced" + elif os_built_form == "": + estimation_built_form = epc_built_form + else: + estimation_built_form = os_built_form + + estimation_property_type = epc_property_type if os_property_type == "" else os_property_type + + # We filter the EPC data on just the property types we want to use + epc_data = epc_data[ + (epc_data["built-form"] == estimation_built_form) & (epc_data["property-type"] == estimation_property_type) + ] + + # We use house_number_distance as a weighting where closer homes are upweighted when interpolating + + # For each attribute, we need to determine the datatype and use an appropriate method + # to interpolate. + for attribute in epc_data.columns: + estimation_data = epc_data[[attribute, "house_number_distance"]] diff --git a/backend/requirements/base.txt b/backend/requirements/base.txt index 7a925030..3173f7f8 100644 --- a/backend/requirements/base.txt +++ b/backend/requirements/base.txt @@ -35,4 +35,5 @@ mip==1.15.0 boto3==1.28.3 pandas==1.5.3 pyarrow==12.0.1 -textblob \ No newline at end of file +textblob +usaddress==0.5.10 \ No newline at end of file diff --git a/etl/epc/property_change_app.py b/etl/epc/property_change_app.py index f8c293a1..7e2262d0 100644 --- a/etl/epc/property_change_app.py +++ b/etl/epc/property_change_app.py @@ -637,13 +637,6 @@ def app(): file_key="sap_change_model/dataset_test.parquet", ) - z = dataset[dataset["CONSTITUENCY"].isin(["E14000707", "E14000909"])] - z["CONSTITUENCY"].value_counts() - - z[z["CONSTITUENCY"] == "E14000909"]["UPRN"].sample(1) - - self.data[self.data["UPRN"] == "100030549358"] - if __name__ == "__main__": app() From 9f3853c2b18313222e831b40d79f2c6f8c44109b Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Sat, 30 Dec 2023 20:40:03 +0000 Subject: [PATCH 139/526] implemented estimation method for homes without epc --- backend/SearchEpc.py | 142 ++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 140 insertions(+), 2 deletions(-) diff --git a/backend/SearchEpc.py b/backend/SearchEpc.py index 75fac93f..ed6857c7 100644 --- a/backend/SearchEpc.py +++ b/backend/SearchEpc.py @@ -4,6 +4,7 @@ import re import usaddress import pandas as pd +import numpy as np from epc_api.client import EpcClient from utils.logger import setup_logger from typing import List @@ -11,6 +12,101 @@ from fuzzywuzzy import process logger = setup_logger() +vartypes = { + 'low-energy-fixed-light-count': "Int64", + # 'address': 'str', + # 'uprn-source': 'str', + 'floor-height': 'float', + 'heating-cost-potential': 'float', + 'unheated-corridor-length': 'float', + 'hot-water-cost-potential': 'float', + 'construction-age-band': 'str', + 'potential-energy-rating': 'str', + 'mainheat-energy-eff': 'str', + 'windows-env-eff': 'str', + 'lighting-energy-eff': 'str', + 'environment-impact-potential': "Int64", + 'glazed-type': 'str', + 'heating-cost-current': 'float', + 'address3': 'str', + 'mainheatcont-description': 'str', + 'sheating-energy-eff': 'str', + 'property-type': 'str', + 'local-authority-label': 'str', + 'fixed-lighting-outlets-count': "Int64", + 'energy-tariff': 'str', + 'mechanical-ventilation': 'str', + 'hot-water-cost-current': 'str', + 'county': 'str', + 'postcode': 'str', + 'solar-water-heating-flag': 'str', + 'constituency': 'str', + 'co2-emissions-potential': 'float', + 'number-heated-rooms': 'float', + 'floor-description': 'str', + 'energy-consumption-potential': 'float', + 'local-authority': 'str', + 'built-form': 'str', + 'number-open-fireplaces': "Int64", + 'windows-description': 'str', + 'glazed-area': 'str', + # 'inspection-date': str, + 'mains-gas-flag': 'str', + 'co2-emiss-curr-per-floor-area': 'float', + 'address1': 'str', + 'heat-loss-corridor': 'str', + 'flat-storey-count': "Int64", + 'constituency-label': 'str', + 'roof-energy-eff': 'str', + 'total-floor-area': 'float', + 'building-reference-number': 'str', + 'environment-impact-current': 'float', + 'co2-emissions-current': 'float', + 'roof-description': 'str', + 'floor-energy-eff': 'str', + 'number-habitable-rooms': 'float', + 'address2': 'str', + 'hot-water-env-eff': 'str', + 'posttown': 'str', + 'mainheatc-energy-eff': 'str', + 'main-fuel': 'str', + 'lighting-env-eff': 'str', + 'windows-energy-eff': 'str', + 'floor-env-eff': 'str', + 'sheating-env-eff': 'str', + 'lighting-description': 'str', + 'roof-env-eff': 'str', + 'walls-energy-eff': 'str', + 'photo-supply': 'float', + 'lighting-cost-potential': 'float', + 'mainheat-env-eff': 'str', + 'multi-glaze-proportion': 'float', + 'main-heating-controls': 'str', + # 'lodgement-datetime', + 'flat-top-storey': 'str', + 'current-energy-rating': 'str', + 'secondheat-description': 'str', + 'walls-env-eff': 'str', + 'transaction-type': 'str', + # 'uprn': "Int64", + 'current-energy-efficiency': 'float', + 'energy-consumption-current': 'float', + 'mainheat-description': 'str', + 'lighting-cost-current': 'float', + # 'lodgement-date', + 'extension-count': "Int64", + 'mainheatc-env-eff': 'str', + 'lmk-key': 'str', + 'wind-turbine-count': "Int64", + 'tenure': 'str', + 'floor-level': 'str', + 'potential-energy-efficiency': "Int64", + 'hot-water-energy-eff': 'str', + 'low-energy-lighting': 'float', + 'walls-description': 'str', + 'hotwater-description': 'str' +} + class SearchEpc: """ @@ -1953,9 +2049,51 @@ class SearchEpc: (epc_data["built-form"] == estimation_built_form) & (epc_data["property-type"] == estimation_property_type) ] + epc_data["weight"] = 1 / epc_data["house_number_distance"] + # We use house_number_distance as a weighting where closer homes are upweighted when interpolating # For each attribute, we need to determine the datatype and use an appropriate method # to interpolate. - for attribute in epc_data.columns: - estimation_data = epc_data[[attribute, "house_number_distance"]] + + estimated_epc = {} + for key, vartype in vartypes.items(): + epc_data[key] = np.where(pd.isnull(epc_data[key]), None, epc_data[key]) + epc_data[key] = np.where(epc_data[key] == "", None, epc_data[key]) + epc_data[key] = epc_data[key].astype(vartype) + estimation_data = epc_data[[key, "weight"]] + estimation_data = estimation_data[~pd.isnull(estimation_data[key])] + + if estimation_data.shape[0] == 0: + estimated_epc[key] = None + continue + + if vartype == "Int64": + estimated_value = self._estimate_int(estimation_data, key) + elif vartype == "float": + estimated_value = self._estimate_float(estimation_data, key) + elif vartype == "str": + estimated_value = self._estimate_str(estimation_data, key) + else: + raise NotImplementedError("estimation method not implemented for type") + + estimated_epc[key] = estimated_value + + return estimated_epc + + @staticmethod + def _estimate_int(estimation_data, key): + return round(np.average(a=estimation_data[key], weights=estimation_data["weight"])) + + @staticmethod + def _estimate_float(estimation_data, key): + return np.average(a=estimation_data[key], weights=estimation_data["weight"]) + + @staticmethod + def _estimate_str(estimation_data, key): + agg = estimation_data.groupby(key)["weight"].sum().reset_index() + agg = agg[agg["weight"] == agg["weight"].max()] + if agg.shape[0] != 1: + raise NotImplementedError("implement me") + + return agg[key].values[0] From 05cce77f16c8802fff3317247271e31c46eec0b4 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Sat, 30 Dec 2023 20:48:40 +0000 Subject: [PATCH 140/526] pulling together OS client and DBClient --- backend/DbClient.py | 7 +++++++ backend/OrdnanceSurvey.py | 39 ++++++++++++++++++++++++++++++++++----- backend/SearchEpc.py | 5 ++--- 3 files changed, 43 insertions(+), 8 deletions(-) create mode 100644 backend/DbClient.py diff --git a/backend/DbClient.py b/backend/DbClient.py new file mode 100644 index 00000000..2ee01349 --- /dev/null +++ b/backend/DbClient.py @@ -0,0 +1,7 @@ +class DbClient: + + def __init__(self): + """ + This class handles interaction with the database + """ + pass diff --git a/backend/OrdnanceSurvey.py b/backend/OrdnanceSurvey.py index 774fbaaa..afb57620 100644 --- a/backend/OrdnanceSurvey.py +++ b/backend/OrdnanceSurvey.py @@ -1,21 +1,50 @@ +from functools import lru_cache +import urllib.parse +import requests +from utils.logger import setup_logger + +logger = setup_logger() + + class OrdnanceSuveyClient: - def __init__(self, address, postcode): + def __init__(self, address, postcode, api_key): """ This class is tasked with interaction with the ordnance survey API. - :param address: - :param postcode: + :param address: The address for the property to search for + :param postcode: The postcode for the property to search for """ self.address = address self.postcode = postcode + self.full_address = ", ".join([self.address, self.postcode]) + self.api_key = api_key + self.results = None + + @lru_cache(maxsize=128) def get_places_api(self): """ This method is tasked with getting the places api from the Ordnance Survey. - :return: """ - pass + + if not self.api_key: + raise ValueError("Ordnance Survey API key not specified") + + encoded_address_query = urllib.parse.quote(self.full_address) + url = (f"https://api.os.uk/search/places/v1/find?query={encoded_address_query}&key=" + f"{self.api_key}") + response = requests.get(url) + if response.status_code == 200: + data = response.json() + + # Extract the UPRN from the data + # Note: This example assumes that the first result is the correct one, which might not always be the case. + results = data['results'] + self.results = results + else: + logger.info("Could not find any results for the provided address and postcode") + return @staticmethod def parse_classification_code(classification_code: str): diff --git a/backend/SearchEpc.py b/backend/SearchEpc.py index ed6857c7..a63437dd 100644 --- a/backend/SearchEpc.py +++ b/backend/SearchEpc.py @@ -2007,9 +2007,8 @@ class SearchEpc: from backend.OrdnanceSurvey import OrdnanceSuveyClient os_property_type, os_built_form = OrdnanceSuveyClient.parse_classification_code( - property_os_place["CLASSIFICATION_CODE"]) - # TODO: Then, if the property is semi-detatched, but all of the neighbours are terraced, we should update the - # property type to end-terraced + property_os_place["CLASSIFICATION_CODE"] + ) # We firstly get the first 100 properties for the postcode, from the EPC api epc_reponse = self.client.domestic.search(params={"postcode": self.postcode}, size=100) From ad9eec892414c5b9dc57ac25532ade213524a571 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Sat, 30 Dec 2023 21:00:01 +0000 Subject: [PATCH 141/526] Setting up SearchEPC --- backend/SearchEpc.py | 42 +++++++++++++++++++++++--------------- backend/app/plan/router.py | 2 ++ 2 files changed, 27 insertions(+), 17 deletions(-) diff --git a/backend/SearchEpc.py b/backend/SearchEpc.py index a63437dd..11ddec09 100644 --- a/backend/SearchEpc.py +++ b/backend/SearchEpc.py @@ -6,6 +6,7 @@ import usaddress import pandas as pd import numpy as np from epc_api.client import EpcClient +from backend.OrdnanceSurvey import OrdnanceSuveyClient from utils.logger import setup_logger from typing import List from fuzzywuzzy import process @@ -138,9 +139,9 @@ class SearchEpc: self, address1: str, postcode: str, - address2: str = None, - address3: str = None, - address4: str = None, + auth_token: str, + os_api_key: str, + full_address: str | None = None, max_retries: int = None, uprn: [int, None] = None, size=None, @@ -150,9 +151,7 @@ class SearchEpc: but can be used to find the epc for the home, if address1 and postcode are insufficient :param address1: string, propery's address line 1 :param postcode: string, propery's postcode - :param address2: string, optional, propery's address line 2 - :param address3: string, optional, propery's address line 3 - :param address4: string, optional, propery's address line 4 + :param full_address: string, optional parameter, the full address of the property :param max_retries: int, optional, number of retries to make when searching the api :param uprn: int, optional, the uprn of the property :param size: int, optional, the number of results to return. If not provided, defaults to 25 which is the api's @@ -161,16 +160,17 @@ class SearchEpc: self.address1 = address1 self.postcode = postcode - self.address2 = address2 - self.address3 = address3 - self.address4 = address4 + self.full_address = full_address self.uprn = uprn self.house_number = self.get_house_number(self.address1) self.numeric_house_number = self.extract_numeric_housenumber_part(self.house_number) self.max_retries = max_retries if max_retries is not None else self.MAX_RETRIES - self.client = EpcClient(auth_token=os.getenv("EPC_AUTH_TOKEN")) + self.client = EpcClient(auth_token=auth_token) + self.ordnance_survey_client = OrdnanceSuveyClient( + address=self.address1, postcode=self.postcode, api_key=os_api_key + ) self.data = None @@ -241,12 +241,9 @@ class SearchEpc: return self.SUCCESS if retry > 0: - print("Failed previous attempt but retry successful") + logger.info("Failed previous attempt but retry successful") # If we got nothing, final try if not response: - # TODO: Make a call to OS uprn service and get the address' uprn, just in case there is an - # issue with how we are searching the api - return { "status": 204, "message": "no data", @@ -2004,9 +2001,7 @@ class SearchEpc: # types for the estimation property_os_place = os_data[0]["DPA"] - from backend.OrdnanceSurvey import OrdnanceSuveyClient - - os_property_type, os_built_form = OrdnanceSuveyClient.parse_classification_code( + os_property_type, os_built_form = self.ordnance_survey_client.parse_classification_code( property_os_place["CLASSIFICATION_CODE"] ) @@ -2096,3 +2091,16 @@ class SearchEpc: raise NotImplementedError("implement me") return agg[key].values[0] + + def find_property(self): + """ + This method will attempt to identify a property. It will, at first, use the EPC api to try and + find the EPC for the property and the associated UPRN. If this fails, it will use the Ordnance Survey API to + find the UPRN of the address. + + Because no result may have been provided by the EPC api because of formatting issues with the address, + if the ordnance survey api is used and the uprn retrieved, the EPC api is queried again with the UPRN, just + as a final check to see if there is any EPC data. + + If there is no EPC data, the epc data will be estimated based on the surrounding properties + """ diff --git a/backend/app/plan/router.py b/backend/app/plan/router.py index a284e50b..4100e47d 100644 --- a/backend/app/plan/router.py +++ b/backend/app/plan/router.py @@ -3,6 +3,7 @@ from datetime import datetime import numpy as np import pandas as pd from epc_api.client import EpcClient +from backend.OrdnanceSurvey import OrdnanceSuveyClient from fastapi import APIRouter, Depends from sqlalchemy.exc import IntegrityError, OperationalError from sqlalchemy.orm import sessionmaker @@ -74,6 +75,7 @@ async def trigger_plan(body: PlanTriggerRequest): # We validate each record in the file. If the record is NOT valid, we need to handle this accordingly # TODO: implment validation. We should also standardise postcode and address in some fashion as # a postcode of abcdef would be considered different to ABCDEF + # TODO: Search for the property # Create a record in db property_id, is_new = create_property( session, portfolio_id=body.portfolio_id, address=config['address'], postcode=config['postcode'] From 3343e27834ff5b2510f5b3cebe641efbfe9ad69f Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Sat, 30 Dec 2023 21:01:21 +0000 Subject: [PATCH 142/526] remove os from plan router --- backend/OrdnanceSurvey.py | 3 --- backend/app/plan/router.py | 1 - 2 files changed, 4 deletions(-) diff --git a/backend/OrdnanceSurvey.py b/backend/OrdnanceSurvey.py index afb57620..156e72bf 100644 --- a/backend/OrdnanceSurvey.py +++ b/backend/OrdnanceSurvey.py @@ -37,9 +37,6 @@ class OrdnanceSuveyClient: response = requests.get(url) if response.status_code == 200: data = response.json() - - # Extract the UPRN from the data - # Note: This example assumes that the first result is the correct one, which might not always be the case. results = data['results'] self.results = results else: diff --git a/backend/app/plan/router.py b/backend/app/plan/router.py index 4100e47d..209bb2b9 100644 --- a/backend/app/plan/router.py +++ b/backend/app/plan/router.py @@ -3,7 +3,6 @@ from datetime import datetime import numpy as np import pandas as pd from epc_api.client import EpcClient -from backend.OrdnanceSurvey import OrdnanceSuveyClient from fastapi import APIRouter, Depends from sqlalchemy.exc import IntegrityError, OperationalError from sqlalchemy.orm import sessionmaker From d1c40ff7dc80ba1c82655f286711160f2fb3cd7c Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Sat, 30 Dec 2023 21:04:24 +0000 Subject: [PATCH 143/526] set up SearchEpc in router --- backend/app/config.py | 1 + backend/app/plan/router.py | 8 ++++++++ 2 files changed, 9 insertions(+) diff --git a/backend/app/config.py b/backend/app/config.py index 22621972..764bddf5 100644 --- a/backend/app/config.py +++ b/backend/app/config.py @@ -13,6 +13,7 @@ class Settings(BaseSettings): HEAT_PREDICTIONS_BUCKET: str PLAN_TRIGGER_BUCKET: str EPC_AUTH_TOKEN: str + ORDNANCE_SURVEY_API_KEY: str DB_HOST: str DB_PASSWORD: str DB_USERNAME: str diff --git a/backend/app/plan/router.py b/backend/app/plan/router.py index 209bb2b9..233a18cb 100644 --- a/backend/app/plan/router.py +++ b/backend/app/plan/router.py @@ -3,6 +3,7 @@ from datetime import datetime import numpy as np import pandas as pd from epc_api.client import EpcClient +from backend.SearchEpc import SearchEpc from fastapi import APIRouter, Depends from sqlalchemy.exc import IntegrityError, OperationalError from sqlalchemy.orm import sessionmaker @@ -75,6 +76,13 @@ async def trigger_plan(body: PlanTriggerRequest): # TODO: implment validation. We should also standardise postcode and address in some fashion as # a postcode of abcdef would be considered different to ABCDEF # TODO: Search for the property + epc_searcher = SearchEpc( + address1=config['address'], + postcode=config["postcode"], + auth_token=get_settings().EPC_AUTH_TOKEN, + os_api_key=get_settings().ORDNANCE_SURVEY_API_KEY + ) + epc_searcher.find_property() # Create a record in db property_id, is_new = create_property( session, portfolio_id=body.portfolio_id, address=config['address'], postcode=config['postcode'] From bb9b8308be2642e629e95d3fb1eee66e17100a59 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Tue, 2 Jan 2024 10:55:30 +0000 Subject: [PATCH 144/526] created test file for no epc --- etl/testing_data/no_epc_input.py | 42 ++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 etl/testing_data/no_epc_input.py diff --git a/etl/testing_data/no_epc_input.py b/etl/testing_data/no_epc_input.py new file mode 100644 index 00000000..0745ff7a --- /dev/null +++ b/etl/testing_data/no_epc_input.py @@ -0,0 +1,42 @@ +""" +This script will create an input csv for the recommendation engine and upload it to S3, which can be used for +testing +""" +import pandas as pd +from utils.s3 import save_csv_to_s3 + +USER_ID = 8 +PORTFOLIO_ID = 57 + + +def app(): + """ + This portfolio is for testing windows recommendations + :return: + """ + + test_file = pd.DataFrame( + [ + {"address": "21 Butler House", "postcode": "E2 0PN", "Notes": None}, + {"address": "22 Butler House", "postcode": "E2 0PN", "Notes": None}, + {"address": "23 Butler House", "postcode": "E2 0PN", "Notes": None}, + {"address": "24 Butler House", "postcode": "E2 0PN", "Notes": None}, + ] + ) + + # Store the data in s3 + filename = f"{USER_ID}/{PORTFOLIO_ID}/no_epc.csv" + save_csv_to_s3( + dataframe=test_file, + bucket_name="retrofit-plan-inputs-dev", + file_name=filename + ) + + body = { + "portfolio_id": str(PORTFOLIO_ID), + "housing_type": "Social", + "goal": "Increase EPC", + "goal_value": "A", + "trigger_file_path": filename + } + print(body) From 40b7ec1c1857d7f2f10eb8640984b021d245987a Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Tue, 2 Jan 2024 11:44:18 +0000 Subject: [PATCH 145/526] Implementing searching epc methodology --- .idea/Model.iml | 2 +- .idea/misc.xml | 2 +- backend/OrdnanceSurvey.py | 15 +- backend/Property.py | 52 +- backend/SearchEpc.py | 1689 ++---------------------------------- backend/app/plan/router.py | 15 +- 6 files changed, 80 insertions(+), 1695 deletions(-) diff --git a/.idea/Model.iml b/.idea/Model.iml index b0f9c00d..4413bb06 100644 --- a/.idea/Model.iml +++ b/.idea/Model.iml @@ -7,7 +7,7 @@ - + diff --git a/.idea/misc.xml b/.idea/misc.xml index 1122b380..6f308057 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -3,7 +3,7 @@ - + diff --git a/backend/OrdnanceSurvey.py b/backend/OrdnanceSurvey.py index 156e72bf..1c2ed90f 100644 --- a/backend/OrdnanceSurvey.py +++ b/backend/OrdnanceSurvey.py @@ -22,6 +22,10 @@ class OrdnanceSuveyClient: self.results = None + self.most_relevant_result = None + self.property_type = None + self.built_form = None + @lru_cache(maxsize=128) def get_places_api(self): """ @@ -39,9 +43,18 @@ class OrdnanceSuveyClient: data = response.json() results = data['results'] self.results = results + + # Extract some details about the best match + self.most_relevant_result = self.results[0]["DPA"] + + self.property_type, self.built_form = self.parse_classification_code( + self.most_relevant_result["CLASSIFICATION_CODE"] + ) + + return else: logger.info("Could not find any results for the provided address and postcode") - return + return {"status": response.status_code} @staticmethod def parse_classification_code(classification_code: str): diff --git a/backend/Property.py b/backend/Property.py index 41696c37..5d465ce9 100644 --- a/backend/Property.py +++ b/backend/Property.py @@ -18,7 +18,6 @@ from recommendations.recommendation_utils import ( ) ENVIRONMENT = os.environ.get('ENVIRONMENT', 'dev') -EPC_AUTH_TOKEN = os.environ.get('EPC_AUTH_TOKEN') DATA_BUCKET = os.environ.get('DATA_BUCKET', 'retrofit-data-dev' if ENVIRONMENT == 'dev' else None) logger = setup_logger() @@ -49,16 +48,16 @@ class Property(Definitions): spatial = None - def __init__(self, id, postcode, address1, epc_client=None, data=None): + def __init__(self, id, data=None, old_data=None, full_sap_epc=None): self.id = id - self.postcode = postcode - self.address1 = address1 + self.data = data - self.old_data = None + self.old_data = old_data + self.full_sap_epc = full_sap_epc self.property_dimensions = None self.uprn = None - self.full_sap_epc = None + self.in_conservation_area, self.is_listed, self.is_heritage = None, None, None self.restricted_measures = False self.year_built = None @@ -92,47 +91,6 @@ class Property(Definitions): self.current_adjusted_energy = None self.expected_adjusted_energy = None - if epc_client: - self.epc_client = epc_client - else: - self.epc_client = EpcClient(auth_token=EPC_AUTH_TOKEN) - - def search_address_epc(self): - """ - This method searches for an address in the EPC database and returns the first result - :return: property data - """ - if self.data: - return - - # This will fail if a property does not have an EPC - this has been documented as a case to handle - response = self.epc_client.domestic.search(params={"address": self.address1, "postcode": self.postcode}) - - # Check if we have a full sap EPC - self.full_sap_epc = [r for r in response["rows"] if r["transaction-type"] == "new dwelling"] - self.full_sap_epc = self.full_sap_epc[0] if self.full_sap_epc else self.full_sap_epc - - if len(response["rows"]) > 1: - newest_response = [ - r for r in response["rows"] if - r["lodgement-datetime"] == max([x["lodgement-datetime"] for x in response["rows"]]) - ] - if len(newest_response) > 1: - raise Exception("More than one result found for this address - investigate me") - - # We'll keep old EPCs in case it contains information, not present on the newest one - self.old_data = [epc for epc in response["rows"] if epc["lmk-key"] != newest_response[0]["lmk-key"]] - - response["rows"] = newest_response - - self.data = response["rows"][0] - # For the moment, if we don't have a UPRN, we don't do anything about it, however we'll handle this in - # the future by using the Ordnance Survey places API - if not self.data["uprn"]: - logger.warning("We do not have a UPRN for this property") - else: - self.uprn = int(self.data["uprn"]) - def set_energy(self): """ Extracts and formats data about the home's energy and co2 consumption diff --git a/backend/SearchEpc.py b/backend/SearchEpc.py index 11ddec09..cd390b5e 100644 --- a/backend/SearchEpc.py +++ b/backend/SearchEpc.py @@ -173,6 +173,9 @@ class SearchEpc: ) self.data = None + self.newest_epc = None + self.older_epcs = None + self.full_sap_epc = None self.size = size if size is not None else 25 @@ -220,21 +223,25 @@ class SearchEpc: else: return None - def search(self): + def get_epc(self, params=None, size=None): # Get the EPC data with retries + size = size if size is not None else self.size + if params is None: + if self.uprn: + params = {"uprn": self.uprn} + else: + params = {"address": self.address1, "postcode": self.postcode} for retry in range(self.max_retries): try: - if self.uprn: + if "uprn" in params: # We use the direct call method inside, since we need to implement uprn as a valid # parameter for the search function url = os.path.join(self.client.domestic.host, "search") - response = self.client.domestic.call(method="get", url=url, params={"uprn": self.uprn}) + response = self.client.domestic.call(method="get", url=url, params=params, size=size) else: - response = self.client.domestic.search( - params={"address": self.address1, "postcode": self.postcode}, size=self.size - ) + response = self.client.domestic.search(params=params, size=size) if response: self.data = response @@ -367,7 +374,7 @@ class SearchEpc: return mode_value - def estimate_epc(self): + def estimate_epc(self, property_type, built_form): """ For a property that does not have an EPC, we retrieve the EPC data for the closest properties and estimate the EPC for the property in question. @@ -377,1637 +384,15 @@ class SearchEpc: :return: """ - address1 = "23 Butler House" - postcode = "e2 0pn" - os_data = [ - {'DPA': {'UPRN': '6037833', 'UDPRN': '7844379', - 'ADDRESS': 'FLAT 23, BUTLER HOUSE, BACTON STREET, LONDON, E2 0PN', - 'SUB_BUILDING_NAME': 'FLAT 23', 'BUILDING_NAME': 'BUTLER HOUSE', - 'THOROUGHFARE_NAME': 'BACTON STREET', 'POST_TOWN': 'LONDON', 'POSTCODE': 'E2 0PN', - 'RPC': '2', 'X_COORDINATE': 535436.0, 'Y_COORDINATE': 182835.0, 'STATUS': 'APPROVED', - 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD06', - 'CLASSIFICATION_CODE_DESCRIPTION': 'Self Contained Flat (Includes Maisonette / Apartment)', - 'LOCAL_CUSTODIAN_CODE': 5900, 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'TOWER HAMLETS', - 'COUNTRY_CODE': 'E', 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', - 'POSTAL_ADDRESS_CODE': 'D', - 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', - 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', - 'TOPOGRAPHY_LAYER_TOID': 'osgb1000041686710', 'PARENT_UPRN': '6128401', - 'LAST_UPDATE_DATE': '20/06/2022', 'ENTRY_DATE': '08/05/2003', - 'BLPU_STATE_DATE': '08/05/2003', 'LANGUAGE': 'EN', 'MATCH': 0.5, - 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '1U'}}, { - 'DPA': {'UPRN': '6037829', 'UDPRN': '7844375', - 'ADDRESS': 'FLAT 2, BUTLER HOUSE, BACTON STREET, LONDON, E2 0PN', - 'SUB_BUILDING_NAME': 'FLAT 2', 'BUILDING_NAME': 'BUTLER HOUSE', - 'THOROUGHFARE_NAME': 'BACTON STREET', 'POST_TOWN': 'LONDON', 'POSTCODE': 'E2 0PN', - 'RPC': '2', 'X_COORDINATE': 535436.0, 'Y_COORDINATE': 182832.0, 'STATUS': 'APPROVED', - 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD06', - 'CLASSIFICATION_CODE_DESCRIPTION': 'Self Contained Flat (Includes Maisonette / ' - 'Apartment)', - 'LOCAL_CUSTODIAN_CODE': 5900, 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'TOWER HAMLETS', - 'COUNTRY_CODE': 'E', 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', - 'POSTAL_ADDRESS_CODE': 'D', - 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', - 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', - 'TOPOGRAPHY_LAYER_TOID': 'osgb1000041686710', 'PARENT_UPRN': '6128401', - 'LAST_UPDATE_DATE': '20/06/2022', 'ENTRY_DATE': '08/05/2003', - 'BLPU_STATE_DATE': '08/05/2003', 'LANGUAGE': 'EN', 'MATCH': 0.5, - 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '1Q'}}, { - 'DPA': {'UPRN': '6037843', 'UDPRN': '7844389', - 'ADDRESS': 'FLAT 32, BUTLER HOUSE, BACTON STREET, LONDON, E2 0PN', - 'SUB_BUILDING_NAME': 'FLAT 32', 'BUILDING_NAME': 'BUTLER HOUSE', - 'THOROUGHFARE_NAME': 'BACTON STREET', 'POST_TOWN': 'LONDON', 'POSTCODE': 'E2 0PN', - 'RPC': '2', 'X_COORDINATE': 535436.0, 'Y_COORDINATE': 182835.0, 'STATUS': 'APPROVED', - 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD06', - 'CLASSIFICATION_CODE_DESCRIPTION': 'Self Contained Flat (Includes Maisonette / ' - 'Apartment)', - 'LOCAL_CUSTODIAN_CODE': 5900, 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'TOWER HAMLETS', - 'COUNTRY_CODE': 'E', 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', - 'POSTAL_ADDRESS_CODE': 'D', - 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', - 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', - 'TOPOGRAPHY_LAYER_TOID': 'osgb1000041686710', 'PARENT_UPRN': '6128401', - 'LAST_UPDATE_DATE': '20/06/2022', 'ENTRY_DATE': '08/05/2003', - 'BLPU_STATE_DATE': '08/05/2003', 'LANGUAGE': 'EN', 'MATCH': 0.4, - 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '2G'}}, { - 'DPA': {'UPRN': '100120810104', 'UDPRN': '18054741', - 'ADDRESS': '23, BUTLER CLOSE, OXFORD, OX2 6JG', 'BUILDING_NUMBER': '23', - 'THOROUGHFARE_NAME': 'BUTLER CLOSE', 'POST_TOWN': 'OXFORD', 'POSTCODE': 'OX2 6JG', - 'RPC': '1', 'X_COORDINATE': 450777.0, 'Y_COORDINATE': 207585.0, 'STATUS': 'APPROVED', - 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD06', - 'CLASSIFICATION_CODE_DESCRIPTION': 'Self Contained Flat (Includes Maisonette / ' - 'Apartment)', - 'LOCAL_CUSTODIAN_CODE': 3110, 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'OXFORD', - 'COUNTRY_CODE': 'E', 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', - 'POSTAL_ADDRESS_CODE': 'D', - 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', - 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', - 'TOPOGRAPHY_LAYER_TOID': 'osgb1000017505469', 'LAST_UPDATE_DATE': '27/06/2022', - 'ENTRY_DATE': '23/04/2003', 'BLPU_STATE_DATE': '28/04/2001', 'LANGUAGE': 'EN', - 'MATCH': 0.4, 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '1U'}}, { - 'DPA': {'UPRN': '6037832', 'UDPRN': '7844378', - 'ADDRESS': 'FLAT 22, BUTLER HOUSE, BACTON STREET, LONDON, E2 0PN', - 'SUB_BUILDING_NAME': 'FLAT 22', 'BUILDING_NAME': 'BUTLER HOUSE', - 'THOROUGHFARE_NAME': 'BACTON STREET', 'POST_TOWN': 'LONDON', 'POSTCODE': 'E2 0PN', - 'RPC': '2', 'X_COORDINATE': 535436.0, 'Y_COORDINATE': 182835.0, 'STATUS': 'APPROVED', - 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD06', - 'CLASSIFICATION_CODE_DESCRIPTION': 'Self Contained Flat (Includes Maisonette / ' - 'Apartment)', - 'LOCAL_CUSTODIAN_CODE': 5900, 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'TOWER HAMLETS', - 'COUNTRY_CODE': 'E', 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', - 'POSTAL_ADDRESS_CODE': 'D', - 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', - 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', - 'TOPOGRAPHY_LAYER_TOID': 'osgb1000041686710', 'PARENT_UPRN': '6128401', - 'LAST_UPDATE_DATE': '20/06/2022', 'ENTRY_DATE': '08/05/2003', - 'BLPU_STATE_DATE': '08/05/2003', 'LANGUAGE': 'EN', 'MATCH': 0.4, - 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '1T'}}, { - 'DPA': {'UPRN': '6037840', 'UDPRN': '7844386', - 'ADDRESS': 'FLAT 3, BUTLER HOUSE, BACTON STREET, LONDON, E2 0PN', - 'SUB_BUILDING_NAME': 'FLAT 3', 'BUILDING_NAME': 'BUTLER HOUSE', - 'THOROUGHFARE_NAME': 'BACTON STREET', 'POST_TOWN': 'LONDON', 'POSTCODE': 'E2 0PN', - 'RPC': '2', 'X_COORDINATE': 535436.0, 'Y_COORDINATE': 182835.0, 'STATUS': 'APPROVED', - 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD06', - 'CLASSIFICATION_CODE_DESCRIPTION': 'Self Contained Flat (Includes Maisonette / ' - 'Apartment)', - 'LOCAL_CUSTODIAN_CODE': 5900, 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'TOWER HAMLETS', - 'COUNTRY_CODE': 'E', 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', - 'POSTAL_ADDRESS_CODE': 'D', - 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', - 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', - 'TOPOGRAPHY_LAYER_TOID': 'osgb1000041686710', 'PARENT_UPRN': '6128401', - 'LAST_UPDATE_DATE': '20/06/2022', 'ENTRY_DATE': '08/05/2003', - 'BLPU_STATE_DATE': '08/05/2003', 'LANGUAGE': 'EN', 'MATCH': 0.4, - 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '2D'}}, { - 'DPA': {'UPRN': '6037821', 'UDPRN': '7844367', - 'ADDRESS': 'FLAT 12, BUTLER HOUSE, BACTON STREET, LONDON, E2 0PN', - 'SUB_BUILDING_NAME': 'FLAT 12', 'BUILDING_NAME': 'BUTLER HOUSE', - 'THOROUGHFARE_NAME': 'BACTON STREET', 'POST_TOWN': 'LONDON', 'POSTCODE': 'E2 0PN', - 'RPC': '2', 'X_COORDINATE': 535436.0, 'Y_COORDINATE': 182835.0, 'STATUS': 'APPROVED', - 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD06', - 'CLASSIFICATION_CODE_DESCRIPTION': 'Self Contained Flat (Includes Maisonette / ' - 'Apartment)', - 'LOCAL_CUSTODIAN_CODE': 5900, 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'TOWER HAMLETS', - 'COUNTRY_CODE': 'E', 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', - 'POSTAL_ADDRESS_CODE': 'D', - 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', - 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', - 'TOPOGRAPHY_LAYER_TOID': 'osgb1000041686710', 'PARENT_UPRN': '6128401', - 'LAST_UPDATE_DATE': '20/06/2022', 'ENTRY_DATE': '08/05/2003', - 'BLPU_STATE_DATE': '08/05/2003', 'LANGUAGE': 'EN', 'MATCH': 0.4, - 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '1E'}}, { - 'DPA': {'UPRN': '6037822', 'UDPRN': '7844368', - 'ADDRESS': 'FLAT 13, BUTLER HOUSE, BACTON STREET, LONDON, E2 0PN', - 'SUB_BUILDING_NAME': 'FLAT 13', 'BUILDING_NAME': 'BUTLER HOUSE', - 'THOROUGHFARE_NAME': 'BACTON STREET', 'POST_TOWN': 'LONDON', 'POSTCODE': 'E2 0PN', - 'RPC': '2', 'X_COORDINATE': 535436.0, 'Y_COORDINATE': 182835.0, 'STATUS': 'APPROVED', - 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD06', - 'CLASSIFICATION_CODE_DESCRIPTION': 'Self Contained Flat (Includes Maisonette / ' - 'Apartment)', - 'LOCAL_CUSTODIAN_CODE': 5900, 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'TOWER HAMLETS', - 'COUNTRY_CODE': 'E', 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', - 'POSTAL_ADDRESS_CODE': 'D', - 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', - 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', - 'TOPOGRAPHY_LAYER_TOID': 'osgb1000041686710', 'PARENT_UPRN': '6128401', - 'LAST_UPDATE_DATE': '20/06/2022', 'ENTRY_DATE': '08/05/2003', - 'BLPU_STATE_DATE': '08/05/2003', 'LANGUAGE': 'EN', 'MATCH': 0.4, - 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '1F'}}, { - 'DPA': {'UPRN': '6037830', 'UDPRN': '7844376', - 'ADDRESS': 'FLAT 20, BUTLER HOUSE, BACTON STREET, LONDON, E2 0PN', - 'SUB_BUILDING_NAME': 'FLAT 20', 'BUILDING_NAME': 'BUTLER HOUSE', - 'THOROUGHFARE_NAME': 'BACTON STREET', 'POST_TOWN': 'LONDON', 'POSTCODE': 'E2 0PN', - 'RPC': '2', 'X_COORDINATE': 535436.0, 'Y_COORDINATE': 182835.0, 'STATUS': 'APPROVED', - 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD06', - 'CLASSIFICATION_CODE_DESCRIPTION': 'Self Contained Flat (Includes Maisonette / ' - 'Apartment)', - 'LOCAL_CUSTODIAN_CODE': 5900, 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'TOWER HAMLETS', - 'COUNTRY_CODE': 'E', 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', - 'POSTAL_ADDRESS_CODE': 'D', - 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', - 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', - 'TOPOGRAPHY_LAYER_TOID': 'osgb1000041686710', 'PARENT_UPRN': '6128401', - 'LAST_UPDATE_DATE': '20/06/2022', 'ENTRY_DATE': '08/05/2003', - 'BLPU_STATE_DATE': '08/05/2003', 'LANGUAGE': 'EN', 'MATCH': 0.4, - 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '1R'}}, { - 'DPA': {'UPRN': '6037831', 'UDPRN': '7844377', - 'ADDRESS': 'FLAT 21, BUTLER HOUSE, BACTON STREET, LONDON, E2 0PN', - 'SUB_BUILDING_NAME': 'FLAT 21', 'BUILDING_NAME': 'BUTLER HOUSE', - 'THOROUGHFARE_NAME': 'BACTON STREET', 'POST_TOWN': 'LONDON', 'POSTCODE': 'E2 0PN', - 'RPC': '2', 'X_COORDINATE': 535436.0, 'Y_COORDINATE': 182835.0, 'STATUS': 'APPROVED', - 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD06', - 'CLASSIFICATION_CODE_DESCRIPTION': 'Self Contained Flat (Includes Maisonette / ' - 'Apartment)', - 'LOCAL_CUSTODIAN_CODE': 5900, 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'TOWER HAMLETS', - 'COUNTRY_CODE': 'E', 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', - 'POSTAL_ADDRESS_CODE': 'D', - 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', - 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', - 'TOPOGRAPHY_LAYER_TOID': 'osgb1000041686710', 'PARENT_UPRN': '6128401', - 'LAST_UPDATE_DATE': '20/06/2022', 'ENTRY_DATE': '08/05/2003', - 'BLPU_STATE_DATE': '08/05/2003', 'LANGUAGE': 'EN', 'MATCH': 0.4, - 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '1S'}}, { - 'DPA': {'UPRN': '6037834', 'UDPRN': '7844380', - 'ADDRESS': 'FLAT 24, BUTLER HOUSE, BACTON STREET, LONDON, E2 0PN', - 'SUB_BUILDING_NAME': 'FLAT 24', 'BUILDING_NAME': 'BUTLER HOUSE', - 'THOROUGHFARE_NAME': 'BACTON STREET', 'POST_TOWN': 'LONDON', 'POSTCODE': 'E2 0PN', - 'RPC': '2', 'X_COORDINATE': 535436.0, 'Y_COORDINATE': 182835.0, 'STATUS': 'APPROVED', - 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD06', - 'CLASSIFICATION_CODE_DESCRIPTION': 'Self Contained Flat (Includes Maisonette / ' - 'Apartment)', - 'LOCAL_CUSTODIAN_CODE': 5900, 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'TOWER HAMLETS', - 'COUNTRY_CODE': 'E', 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', - 'POSTAL_ADDRESS_CODE': 'D', - 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', - 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', - 'TOPOGRAPHY_LAYER_TOID': 'osgb1000041686710', 'PARENT_UPRN': '6128401', - 'LAST_UPDATE_DATE': '20/06/2022', 'ENTRY_DATE': '08/05/2003', - 'BLPU_STATE_DATE': '08/05/2003', 'LANGUAGE': 'EN', 'MATCH': 0.4, - 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '1W'}}, { - 'DPA': {'UPRN': '6037835', 'UDPRN': '7844381', - 'ADDRESS': 'FLAT 25, BUTLER HOUSE, BACTON STREET, LONDON, E2 0PN', - 'SUB_BUILDING_NAME': 'FLAT 25', 'BUILDING_NAME': 'BUTLER HOUSE', - 'THOROUGHFARE_NAME': 'BACTON STREET', 'POST_TOWN': 'LONDON', 'POSTCODE': 'E2 0PN', - 'RPC': '2', 'X_COORDINATE': 535436.0, 'Y_COORDINATE': 182835.0, 'STATUS': 'APPROVED', - 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD06', - 'CLASSIFICATION_CODE_DESCRIPTION': 'Self Contained Flat (Includes Maisonette / ' - 'Apartment)', - 'LOCAL_CUSTODIAN_CODE': 5900, 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'TOWER HAMLETS', - 'COUNTRY_CODE': 'E', 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', - 'POSTAL_ADDRESS_CODE': 'D', - 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', - 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', - 'TOPOGRAPHY_LAYER_TOID': 'osgb1000041686710', 'PARENT_UPRN': '6128401', - 'LAST_UPDATE_DATE': '20/06/2022', 'ENTRY_DATE': '08/05/2003', - 'BLPU_STATE_DATE': '08/05/2003', 'LANGUAGE': 'EN', 'MATCH': 0.4, - 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '1X'}}, { - 'DPA': {'UPRN': '6037836', 'UDPRN': '7844382', - 'ADDRESS': 'FLAT 26, BUTLER HOUSE, BACTON STREET, LONDON, E2 0PN', - 'SUB_BUILDING_NAME': 'FLAT 26', 'BUILDING_NAME': 'BUTLER HOUSE', - 'THOROUGHFARE_NAME': 'BACTON STREET', 'POST_TOWN': 'LONDON', 'POSTCODE': 'E2 0PN', - 'RPC': '2', 'X_COORDINATE': 535436.0, 'Y_COORDINATE': 182835.0, 'STATUS': 'APPROVED', - 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD06', - 'CLASSIFICATION_CODE_DESCRIPTION': 'Self Contained Flat (Includes Maisonette / ' - 'Apartment)', - 'LOCAL_CUSTODIAN_CODE': 5900, 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'TOWER HAMLETS', - 'COUNTRY_CODE': 'E', 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', - 'POSTAL_ADDRESS_CODE': 'D', - 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', - 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', - 'TOPOGRAPHY_LAYER_TOID': 'osgb1000041686710', 'PARENT_UPRN': '6128401', - 'LAST_UPDATE_DATE': '20/06/2022', 'ENTRY_DATE': '08/05/2003', - 'BLPU_STATE_DATE': '08/05/2003', 'LANGUAGE': 'EN', 'MATCH': 0.4, - 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '1Y'}}, { - 'DPA': {'UPRN': '6037837', 'UDPRN': '7844383', - 'ADDRESS': 'FLAT 27, BUTLER HOUSE, BACTON STREET, LONDON, E2 0PN', - 'SUB_BUILDING_NAME': 'FLAT 27', 'BUILDING_NAME': 'BUTLER HOUSE', - 'THOROUGHFARE_NAME': 'BACTON STREET', 'POST_TOWN': 'LONDON', 'POSTCODE': 'E2 0PN', - 'RPC': '2', 'X_COORDINATE': 535436.0, 'Y_COORDINATE': 182835.0, 'STATUS': 'APPROVED', - 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD06', - 'CLASSIFICATION_CODE_DESCRIPTION': 'Self Contained Flat (Includes Maisonette / ' - 'Apartment)', - 'LOCAL_CUSTODIAN_CODE': 5900, 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'TOWER HAMLETS', - 'COUNTRY_CODE': 'E', 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', - 'POSTAL_ADDRESS_CODE': 'D', - 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', - 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', - 'TOPOGRAPHY_LAYER_TOID': 'osgb1000041686710', 'PARENT_UPRN': '6128401', - 'LAST_UPDATE_DATE': '20/06/2022', 'ENTRY_DATE': '08/05/2003', - 'BLPU_STATE_DATE': '08/05/2003', 'LANGUAGE': 'EN', 'MATCH': 0.4, - 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '1Z'}}, { - 'DPA': {'UPRN': '6037838', 'UDPRN': '7844384', - 'ADDRESS': 'FLAT 28, BUTLER HOUSE, BACTON STREET, LONDON, E2 0PN', - 'SUB_BUILDING_NAME': 'FLAT 28', 'BUILDING_NAME': 'BUTLER HOUSE', - 'THOROUGHFARE_NAME': 'BACTON STREET', 'POST_TOWN': 'LONDON', 'POSTCODE': 'E2 0PN', - 'RPC': '2', 'X_COORDINATE': 535436.0, 'Y_COORDINATE': 182835.0, 'STATUS': 'APPROVED', - 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD06', - 'CLASSIFICATION_CODE_DESCRIPTION': 'Self Contained Flat (Includes Maisonette / ' - 'Apartment)', - 'LOCAL_CUSTODIAN_CODE': 5900, 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'TOWER HAMLETS', - 'COUNTRY_CODE': 'E', 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', - 'POSTAL_ADDRESS_CODE': 'D', - 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', - 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', - 'TOPOGRAPHY_LAYER_TOID': 'osgb1000041686710', 'PARENT_UPRN': '6128401', - 'LAST_UPDATE_DATE': '20/06/2022', 'ENTRY_DATE': '08/05/2003', - 'BLPU_STATE_DATE': '08/05/2003', 'LANGUAGE': 'EN', 'MATCH': 0.4, - 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '2A'}}, { - 'DPA': {'UPRN': '6037839', 'UDPRN': '7844385', - 'ADDRESS': 'FLAT 29, BUTLER HOUSE, BACTON STREET, LONDON, E2 0PN', - 'SUB_BUILDING_NAME': 'FLAT 29', 'BUILDING_NAME': 'BUTLER HOUSE', - 'THOROUGHFARE_NAME': 'BACTON STREET', 'POST_TOWN': 'LONDON', 'POSTCODE': 'E2 0PN', - 'RPC': '2', 'X_COORDINATE': 535436.0, 'Y_COORDINATE': 182835.0, 'STATUS': 'APPROVED', - 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD06', - 'CLASSIFICATION_CODE_DESCRIPTION': 'Self Contained Flat (Includes Maisonette / ' - 'Apartment)', - 'LOCAL_CUSTODIAN_CODE': 5900, 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'TOWER HAMLETS', - 'COUNTRY_CODE': 'E', 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', - 'POSTAL_ADDRESS_CODE': 'D', - 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', - 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', - 'TOPOGRAPHY_LAYER_TOID': 'osgb1000041686710', 'PARENT_UPRN': '6128401', - 'LAST_UPDATE_DATE': '20/06/2022', 'ENTRY_DATE': '08/05/2003', - 'BLPU_STATE_DATE': '08/05/2003', 'LANGUAGE': 'EN', 'MATCH': 0.4, - 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '2B'}}, { - 'DPA': {'UPRN': '6037841', 'UDPRN': '7844387', - 'ADDRESS': 'FLAT 30, BUTLER HOUSE, BACTON STREET, LONDON, E2 0PN', - 'SUB_BUILDING_NAME': 'FLAT 30', 'BUILDING_NAME': 'BUTLER HOUSE', - 'THOROUGHFARE_NAME': 'BACTON STREET', 'POST_TOWN': 'LONDON', 'POSTCODE': 'E2 0PN', - 'RPC': '2', 'X_COORDINATE': 535436.0, 'Y_COORDINATE': 182835.0, 'STATUS': 'APPROVED', - 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD06', - 'CLASSIFICATION_CODE_DESCRIPTION': 'Self Contained Flat (Includes Maisonette / ' - 'Apartment)', - 'LOCAL_CUSTODIAN_CODE': 5900, 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'TOWER HAMLETS', - 'COUNTRY_CODE': 'E', 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', - 'POSTAL_ADDRESS_CODE': 'D', - 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', - 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', - 'TOPOGRAPHY_LAYER_TOID': 'osgb1000041686710', 'PARENT_UPRN': '6128401', - 'LAST_UPDATE_DATE': '20/06/2022', 'ENTRY_DATE': '08/05/2003', - 'BLPU_STATE_DATE': '08/05/2003', 'LANGUAGE': 'EN', 'MATCH': 0.4, - 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '2E'}}, { - 'DPA': {'UPRN': '6037842', 'UDPRN': '7844388', - 'ADDRESS': 'FLAT 31, BUTLER HOUSE, BACTON STREET, LONDON, E2 0PN', - 'SUB_BUILDING_NAME': 'FLAT 31', 'BUILDING_NAME': 'BUTLER HOUSE', - 'THOROUGHFARE_NAME': 'BACTON STREET', 'POST_TOWN': 'LONDON', 'POSTCODE': 'E2 0PN', - 'RPC': '2', 'X_COORDINATE': 535436.0, 'Y_COORDINATE': 182835.0, 'STATUS': 'APPROVED', - 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD06', - 'CLASSIFICATION_CODE_DESCRIPTION': 'Self Contained Flat (Includes Maisonette / ' - 'Apartment)', - 'LOCAL_CUSTODIAN_CODE': 5900, 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'TOWER HAMLETS', - 'COUNTRY_CODE': 'E', 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', - 'POSTAL_ADDRESS_CODE': 'D', - 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', - 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', - 'TOPOGRAPHY_LAYER_TOID': 'osgb1000041686710', 'PARENT_UPRN': '6128401', - 'LAST_UPDATE_DATE': '20/06/2022', 'ENTRY_DATE': '08/05/2003', - 'BLPU_STATE_DATE': '08/05/2003', 'LANGUAGE': 'EN', 'MATCH': 0.4, - 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '2F'}}, { - 'DPA': {'UPRN': '6037844', 'UDPRN': '7844390', - 'ADDRESS': 'FLAT 33, BUTLER HOUSE, BACTON STREET, LONDON, E2 0PN', - 'SUB_BUILDING_NAME': 'FLAT 33', 'BUILDING_NAME': 'BUTLER HOUSE', - 'THOROUGHFARE_NAME': 'BACTON STREET', 'POST_TOWN': 'LONDON', 'POSTCODE': 'E2 0PN', - 'RPC': '2', 'X_COORDINATE': 535436.0, 'Y_COORDINATE': 182835.0, 'STATUS': 'APPROVED', - 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD06', - 'CLASSIFICATION_CODE_DESCRIPTION': 'Self Contained Flat (Includes Maisonette / ' - 'Apartment)', - 'LOCAL_CUSTODIAN_CODE': 5900, 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'TOWER HAMLETS', - 'COUNTRY_CODE': 'E', 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', - 'POSTAL_ADDRESS_CODE': 'D', - 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', - 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', - 'TOPOGRAPHY_LAYER_TOID': 'osgb1000041686710', 'PARENT_UPRN': '6128401', - 'LAST_UPDATE_DATE': '20/06/2022', 'ENTRY_DATE': '08/05/2003', - 'BLPU_STATE_DATE': '08/05/2003', 'LANGUAGE': 'EN', 'MATCH': 0.4, - 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '2H'}}, { - 'DPA': {'UPRN': '6037845', 'UDPRN': '7844391', - 'ADDRESS': 'FLAT 34, BUTLER HOUSE, BACTON STREET, LONDON, E2 0PN', - 'SUB_BUILDING_NAME': 'FLAT 34', 'BUILDING_NAME': 'BUTLER HOUSE', - 'THOROUGHFARE_NAME': 'BACTON STREET', 'POST_TOWN': 'LONDON', 'POSTCODE': 'E2 0PN', - 'RPC': '2', 'X_COORDINATE': 535436.0, 'Y_COORDINATE': 182835.0, 'STATUS': 'APPROVED', - 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD06', - 'CLASSIFICATION_CODE_DESCRIPTION': 'Self Contained Flat (Includes Maisonette / ' - 'Apartment)', - 'LOCAL_CUSTODIAN_CODE': 5900, 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'TOWER HAMLETS', - 'COUNTRY_CODE': 'E', 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', - 'POSTAL_ADDRESS_CODE': 'D', - 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', - 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', - 'TOPOGRAPHY_LAYER_TOID': 'osgb1000041686710', 'PARENT_UPRN': '6128401', - 'LAST_UPDATE_DATE': '20/06/2022', 'ENTRY_DATE': '08/05/2003', - 'BLPU_STATE_DATE': '08/05/2003', 'LANGUAGE': 'EN', 'MATCH': 0.4, - 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '2J'}}, { - 'DPA': {'UPRN': '6037846', 'UDPRN': '7844392', - 'ADDRESS': 'FLAT 35, BUTLER HOUSE, BACTON STREET, LONDON, E2 0PN', - 'SUB_BUILDING_NAME': 'FLAT 35', 'BUILDING_NAME': 'BUTLER HOUSE', - 'THOROUGHFARE_NAME': 'BACTON STREET', 'POST_TOWN': 'LONDON', 'POSTCODE': 'E2 0PN', - 'RPC': '2', 'X_COORDINATE': 535436.0, 'Y_COORDINATE': 182835.0, 'STATUS': 'APPROVED', - 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD06', - 'CLASSIFICATION_CODE_DESCRIPTION': 'Self Contained Flat (Includes Maisonette / ' - 'Apartment)', - 'LOCAL_CUSTODIAN_CODE': 5900, 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'TOWER HAMLETS', - 'COUNTRY_CODE': 'E', 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', - 'POSTAL_ADDRESS_CODE': 'D', - 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', - 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', - 'TOPOGRAPHY_LAYER_TOID': 'osgb1000041686710', 'PARENT_UPRN': '6128401', - 'LAST_UPDATE_DATE': '20/06/2022', 'ENTRY_DATE': '08/05/2003', - 'BLPU_STATE_DATE': '08/05/2003', 'LANGUAGE': 'EN', 'MATCH': 0.4, - 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '2L'}}, { - 'DPA': {'UPRN': '6037847', 'UDPRN': '7844393', - 'ADDRESS': 'FLAT 36, BUTLER HOUSE, BACTON STREET, LONDON, E2 0PN', - 'SUB_BUILDING_NAME': 'FLAT 36', 'BUILDING_NAME': 'BUTLER HOUSE', - 'THOROUGHFARE_NAME': 'BACTON STREET', 'POST_TOWN': 'LONDON', 'POSTCODE': 'E2 0PN', - 'RPC': '2', 'X_COORDINATE': 535436.0, 'Y_COORDINATE': 182835.0, 'STATUS': 'APPROVED', - 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD06', - 'CLASSIFICATION_CODE_DESCRIPTION': 'Self Contained Flat (Includes Maisonette / ' - 'Apartment)', - 'LOCAL_CUSTODIAN_CODE': 5900, 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'TOWER HAMLETS', - 'COUNTRY_CODE': 'E', 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', - 'POSTAL_ADDRESS_CODE': 'D', - 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', - 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', - 'TOPOGRAPHY_LAYER_TOID': 'osgb1000041686710', 'PARENT_UPRN': '6128401', - 'LAST_UPDATE_DATE': '20/06/2022', 'ENTRY_DATE': '08/05/2003', - 'BLPU_STATE_DATE': '08/05/2003', 'LANGUAGE': 'EN', 'MATCH': 0.4, - 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '2N'}}, { - 'DPA': {'UPRN': '6037848', 'UDPRN': '7844394', - 'ADDRESS': 'FLAT 37, BUTLER HOUSE, BACTON STREET, LONDON, E2 0PN', - 'SUB_BUILDING_NAME': 'FLAT 37', 'BUILDING_NAME': 'BUTLER HOUSE', - 'THOROUGHFARE_NAME': 'BACTON STREET', 'POST_TOWN': 'LONDON', 'POSTCODE': 'E2 0PN', - 'RPC': '2', 'X_COORDINATE': 535436.0, 'Y_COORDINATE': 182835.0, 'STATUS': 'APPROVED', - 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD06', - 'CLASSIFICATION_CODE_DESCRIPTION': 'Self Contained Flat (Includes Maisonette / ' - 'Apartment)', - 'LOCAL_CUSTODIAN_CODE': 5900, 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'TOWER HAMLETS', - 'COUNTRY_CODE': 'E', 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', - 'POSTAL_ADDRESS_CODE': 'D', - 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', - 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', - 'TOPOGRAPHY_LAYER_TOID': 'osgb1000041686710', 'PARENT_UPRN': '6128401', - 'LAST_UPDATE_DATE': '20/06/2022', 'ENTRY_DATE': '08/05/2003', - 'BLPU_STATE_DATE': '08/05/2003', 'LANGUAGE': 'EN', 'MATCH': 0.4, - 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '2P'}}, { - 'DPA': {'UPRN': '6037849', 'UDPRN': '7844395', - 'ADDRESS': 'FLAT 38, BUTLER HOUSE, BACTON STREET, LONDON, E2 0PN', - 'SUB_BUILDING_NAME': 'FLAT 38', 'BUILDING_NAME': 'BUTLER HOUSE', - 'THOROUGHFARE_NAME': 'BACTON STREET', 'POST_TOWN': 'LONDON', 'POSTCODE': 'E2 0PN', - 'RPC': '2', 'X_COORDINATE': 535436.0, 'Y_COORDINATE': 182835.0, 'STATUS': 'APPROVED', - 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD06', - 'CLASSIFICATION_CODE_DESCRIPTION': 'Self Contained Flat (Includes Maisonette / ' - 'Apartment)', - 'LOCAL_CUSTODIAN_CODE': 5900, 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'TOWER HAMLETS', - 'COUNTRY_CODE': 'E', 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', - 'POSTAL_ADDRESS_CODE': 'D', - 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', - 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', - 'TOPOGRAPHY_LAYER_TOID': 'osgb1000041686710', 'PARENT_UPRN': '6128401', - 'LAST_UPDATE_DATE': '20/06/2022', 'ENTRY_DATE': '08/05/2003', - 'BLPU_STATE_DATE': '08/05/2003', 'LANGUAGE': 'EN', 'MATCH': 0.4, - 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '2Q'}}, { - 'DPA': {'UPRN': '6037850', 'UDPRN': '7844396', - 'ADDRESS': 'FLAT 39, BUTLER HOUSE, BACTON STREET, LONDON, E2 0PN', - 'SUB_BUILDING_NAME': 'FLAT 39', 'BUILDING_NAME': 'BUTLER HOUSE', - 'THOROUGHFARE_NAME': 'BACTON STREET', 'POST_TOWN': 'LONDON', 'POSTCODE': 'E2 0PN', - 'RPC': '2', 'X_COORDINATE': 535436.0, 'Y_COORDINATE': 182835.0, 'STATUS': 'APPROVED', - 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD06', - 'CLASSIFICATION_CODE_DESCRIPTION': 'Self Contained Flat (Includes Maisonette / ' - 'Apartment)', - 'LOCAL_CUSTODIAN_CODE': 5900, 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'TOWER HAMLETS', - 'COUNTRY_CODE': 'E', 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', - 'POSTAL_ADDRESS_CODE': 'D', - 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', - 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', - 'TOPOGRAPHY_LAYER_TOID': 'osgb1000041686710', 'PARENT_UPRN': '6128401', - 'LAST_UPDATE_DATE': '20/06/2022', 'ENTRY_DATE': '08/05/2003', - 'BLPU_STATE_DATE': '08/05/2003', 'LANGUAGE': 'EN', 'MATCH': 0.4, - 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '2R'}}, { - 'DPA': {'UPRN': '6037818', 'UDPRN': '7844364', - 'ADDRESS': 'FLAT 1, BUTLER HOUSE, BACTON STREET, LONDON, E2 0PN', - 'SUB_BUILDING_NAME': 'FLAT 1', 'BUILDING_NAME': 'BUTLER HOUSE', - 'THOROUGHFARE_NAME': 'BACTON STREET', 'POST_TOWN': 'LONDON', 'POSTCODE': 'E2 0PN', - 'RPC': '2', 'X_COORDINATE': 535436.0, 'Y_COORDINATE': 182835.0, 'STATUS': 'APPROVED', - 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD06', - 'CLASSIFICATION_CODE_DESCRIPTION': 'Self Contained Flat (Includes Maisonette / ' - 'Apartment)', - 'LOCAL_CUSTODIAN_CODE': 5900, 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'TOWER HAMLETS', - 'COUNTRY_CODE': 'E', 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', - 'POSTAL_ADDRESS_CODE': 'D', - 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', - 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', - 'TOPOGRAPHY_LAYER_TOID': 'osgb1000041686710', 'PARENT_UPRN': '6128401', - 'LAST_UPDATE_DATE': '20/06/2022', 'ENTRY_DATE': '08/05/2003', - 'BLPU_STATE_DATE': '08/05/2003', 'LANGUAGE': 'EN', 'MATCH': 0.4, - 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '1A'}}, { - 'DPA': {'UPRN': '6037851', 'UDPRN': '7844397', - 'ADDRESS': 'FLAT 4, BUTLER HOUSE, BACTON STREET, LONDON, E2 0PN', - 'SUB_BUILDING_NAME': 'FLAT 4', 'BUILDING_NAME': 'BUTLER HOUSE', - 'THOROUGHFARE_NAME': 'BACTON STREET', 'POST_TOWN': 'LONDON', 'POSTCODE': 'E2 0PN', - 'RPC': '2', 'X_COORDINATE': 535436.0, 'Y_COORDINATE': 182835.0, 'STATUS': 'APPROVED', - 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD06', - 'CLASSIFICATION_CODE_DESCRIPTION': 'Self Contained Flat (Includes Maisonette / ' - 'Apartment)', - 'LOCAL_CUSTODIAN_CODE': 5900, 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'TOWER HAMLETS', - 'COUNTRY_CODE': 'E', 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', - 'POSTAL_ADDRESS_CODE': 'D', - 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', - 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', - 'TOPOGRAPHY_LAYER_TOID': 'osgb1000041686710', 'PARENT_UPRN': '6128401', - 'LAST_UPDATE_DATE': '20/06/2022', 'ENTRY_DATE': '08/05/2003', - 'BLPU_STATE_DATE': '08/05/2003', 'LANGUAGE': 'EN', 'MATCH': 0.4, - 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '2S'}}, { - 'DPA': {'UPRN': '6037853', 'UDPRN': '7844399', - 'ADDRESS': 'FLAT 5, BUTLER HOUSE, BACTON STREET, LONDON, E2 0PN', - 'SUB_BUILDING_NAME': 'FLAT 5', 'BUILDING_NAME': 'BUTLER HOUSE', - 'THOROUGHFARE_NAME': 'BACTON STREET', 'POST_TOWN': 'LONDON', 'POSTCODE': 'E2 0PN', - 'RPC': '2', 'X_COORDINATE': 535436.0, 'Y_COORDINATE': 182835.0, 'STATUS': 'APPROVED', - 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD06', - 'CLASSIFICATION_CODE_DESCRIPTION': 'Self Contained Flat (Includes Maisonette / ' - 'Apartment)', - 'LOCAL_CUSTODIAN_CODE': 5900, 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'TOWER HAMLETS', - 'COUNTRY_CODE': 'E', 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', - 'POSTAL_ADDRESS_CODE': 'D', - 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', - 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', - 'TOPOGRAPHY_LAYER_TOID': 'osgb1000041686710', 'PARENT_UPRN': '6128401', - 'LAST_UPDATE_DATE': '20/06/2022', 'ENTRY_DATE': '08/05/2003', - 'BLPU_STATE_DATE': '08/05/2003', 'LANGUAGE': 'EN', 'MATCH': 0.4, - 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '2U'}}, { - 'DPA': {'UPRN': '6037854', 'UDPRN': '7844400', - 'ADDRESS': 'FLAT 6, BUTLER HOUSE, BACTON STREET, LONDON, E2 0PN', - 'SUB_BUILDING_NAME': 'FLAT 6', 'BUILDING_NAME': 'BUTLER HOUSE', - 'THOROUGHFARE_NAME': 'BACTON STREET', 'POST_TOWN': 'LONDON', 'POSTCODE': 'E2 0PN', - 'RPC': '2', 'X_COORDINATE': 535436.0, 'Y_COORDINATE': 182835.0, 'STATUS': 'APPROVED', - 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD06', - 'CLASSIFICATION_CODE_DESCRIPTION': 'Self Contained Flat (Includes Maisonette / ' - 'Apartment)', - 'LOCAL_CUSTODIAN_CODE': 5900, 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'TOWER HAMLETS', - 'COUNTRY_CODE': 'E', 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', - 'POSTAL_ADDRESS_CODE': 'D', - 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', - 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', - 'TOPOGRAPHY_LAYER_TOID': 'osgb1000041686710', 'PARENT_UPRN': '6128401', - 'LAST_UPDATE_DATE': '20/06/2022', 'ENTRY_DATE': '08/05/2003', - 'BLPU_STATE_DATE': '08/05/2003', 'LANGUAGE': 'EN', 'MATCH': 0.4, - 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '2W'}}, { - 'DPA': {'UPRN': '6037855', 'UDPRN': '7844401', - 'ADDRESS': 'FLAT 7, BUTLER HOUSE, BACTON STREET, LONDON, E2 0PN', - 'SUB_BUILDING_NAME': 'FLAT 7', 'BUILDING_NAME': 'BUTLER HOUSE', - 'THOROUGHFARE_NAME': 'BACTON STREET', 'POST_TOWN': 'LONDON', 'POSTCODE': 'E2 0PN', - 'RPC': '2', 'X_COORDINATE': 535436.0, 'Y_COORDINATE': 182835.0, 'STATUS': 'APPROVED', - 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD06', - 'CLASSIFICATION_CODE_DESCRIPTION': 'Self Contained Flat (Includes Maisonette / ' - 'Apartment)', - 'LOCAL_CUSTODIAN_CODE': 5900, 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'TOWER HAMLETS', - 'COUNTRY_CODE': 'E', 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', - 'POSTAL_ADDRESS_CODE': 'D', - 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', - 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', - 'TOPOGRAPHY_LAYER_TOID': 'osgb1000041686710', 'PARENT_UPRN': '6128401', - 'LAST_UPDATE_DATE': '20/06/2022', 'ENTRY_DATE': '08/05/2003', - 'BLPU_STATE_DATE': '08/05/2003', 'LANGUAGE': 'EN', 'MATCH': 0.4, - 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '2X'}}, { - 'DPA': {'UPRN': '6037856', 'UDPRN': '7844402', - 'ADDRESS': 'FLAT 8, BUTLER HOUSE, BACTON STREET, LONDON, E2 0PN', - 'SUB_BUILDING_NAME': 'FLAT 8', 'BUILDING_NAME': 'BUTLER HOUSE', - 'THOROUGHFARE_NAME': 'BACTON STREET', 'POST_TOWN': 'LONDON', 'POSTCODE': 'E2 0PN', - 'RPC': '2', 'X_COORDINATE': 535436.0, 'Y_COORDINATE': 182835.0, 'STATUS': 'APPROVED', - 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD06', - 'CLASSIFICATION_CODE_DESCRIPTION': 'Self Contained Flat (Includes Maisonette / ' - 'Apartment)', - 'LOCAL_CUSTODIAN_CODE': 5900, 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'TOWER HAMLETS', - 'COUNTRY_CODE': 'E', 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', - 'POSTAL_ADDRESS_CODE': 'D', - 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', - 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', - 'TOPOGRAPHY_LAYER_TOID': 'osgb1000041686710', 'PARENT_UPRN': '6128401', - 'LAST_UPDATE_DATE': '20/06/2022', 'ENTRY_DATE': '08/05/2003', - 'BLPU_STATE_DATE': '08/05/2003', 'LANGUAGE': 'EN', 'MATCH': 0.4, - 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '2Y'}}, { - 'DPA': {'UPRN': '6037857', 'UDPRN': '7844403', - 'ADDRESS': 'FLAT 9, BUTLER HOUSE, BACTON STREET, LONDON, E2 0PN', - 'SUB_BUILDING_NAME': 'FLAT 9', 'BUILDING_NAME': 'BUTLER HOUSE', - 'THOROUGHFARE_NAME': 'BACTON STREET', 'POST_TOWN': 'LONDON', 'POSTCODE': 'E2 0PN', - 'RPC': '2', 'X_COORDINATE': 535439.0, 'Y_COORDINATE': 182828.0, 'STATUS': 'APPROVED', - 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD06', - 'CLASSIFICATION_CODE_DESCRIPTION': 'Self Contained Flat (Includes Maisonette / ' - 'Apartment)', - 'LOCAL_CUSTODIAN_CODE': 5900, 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'TOWER HAMLETS', - 'COUNTRY_CODE': 'E', 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', - 'POSTAL_ADDRESS_CODE': 'D', - 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', - 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', - 'TOPOGRAPHY_LAYER_TOID': 'osgb1000041686710', 'PARENT_UPRN': '6128401', - 'LAST_UPDATE_DATE': '20/06/2022', 'ENTRY_DATE': '08/05/2003', - 'BLPU_STATE_DATE': '08/05/2003', 'LANGUAGE': 'EN', 'MATCH': 0.4, - 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '2Z'}}, { - 'DPA': {'UPRN': '6037819', 'UDPRN': '7844365', - 'ADDRESS': 'FLAT 10, BUTLER HOUSE, BACTON STREET, LONDON, E2 0PN', - 'SUB_BUILDING_NAME': 'FLAT 10', 'BUILDING_NAME': 'BUTLER HOUSE', - 'THOROUGHFARE_NAME': 'BACTON STREET', 'POST_TOWN': 'LONDON', 'POSTCODE': 'E2 0PN', - 'RPC': '2', 'X_COORDINATE': 535436.0, 'Y_COORDINATE': 182835.0, 'STATUS': 'APPROVED', - 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD06', - 'CLASSIFICATION_CODE_DESCRIPTION': 'Self Contained Flat (Includes Maisonette / ' - 'Apartment)', - 'LOCAL_CUSTODIAN_CODE': 5900, 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'TOWER HAMLETS', - 'COUNTRY_CODE': 'E', 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', - 'POSTAL_ADDRESS_CODE': 'D', - 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', - 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', - 'TOPOGRAPHY_LAYER_TOID': 'osgb1000041686710', 'PARENT_UPRN': '6128401', - 'LAST_UPDATE_DATE': '20/06/2022', 'ENTRY_DATE': '08/05/2003', - 'BLPU_STATE_DATE': '08/05/2003', 'LANGUAGE': 'EN', 'MATCH': 0.4, - 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '1B'}}, { - 'DPA': {'UPRN': '6037820', 'UDPRN': '7844366', - 'ADDRESS': 'FLAT 11, BUTLER HOUSE, BACTON STREET, LONDON, E2 0PN', - 'SUB_BUILDING_NAME': 'FLAT 11', 'BUILDING_NAME': 'BUTLER HOUSE', - 'THOROUGHFARE_NAME': 'BACTON STREET', 'POST_TOWN': 'LONDON', 'POSTCODE': 'E2 0PN', - 'RPC': '2', 'X_COORDINATE': 535436.0, 'Y_COORDINATE': 182835.0, 'STATUS': 'APPROVED', - 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD06', - 'CLASSIFICATION_CODE_DESCRIPTION': 'Self Contained Flat (Includes Maisonette / ' - 'Apartment)', - 'LOCAL_CUSTODIAN_CODE': 5900, 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'TOWER HAMLETS', - 'COUNTRY_CODE': 'E', 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', - 'POSTAL_ADDRESS_CODE': 'D', - 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', - 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', - 'TOPOGRAPHY_LAYER_TOID': 'osgb1000041686710', 'PARENT_UPRN': '6128401', - 'LAST_UPDATE_DATE': '20/06/2022', 'ENTRY_DATE': '08/05/2003', - 'BLPU_STATE_DATE': '08/05/2003', 'LANGUAGE': 'EN', 'MATCH': 0.4, - 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '1D'}}, { - 'DPA': {'UPRN': '6037823', 'UDPRN': '7844369', - 'ADDRESS': 'FLAT 14, BUTLER HOUSE, BACTON STREET, LONDON, E2 0PN', - 'SUB_BUILDING_NAME': 'FLAT 14', 'BUILDING_NAME': 'BUTLER HOUSE', - 'THOROUGHFARE_NAME': 'BACTON STREET', 'POST_TOWN': 'LONDON', 'POSTCODE': 'E2 0PN', - 'RPC': '2', 'X_COORDINATE': 535436.0, 'Y_COORDINATE': 182835.0, 'STATUS': 'APPROVED', - 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD06', - 'CLASSIFICATION_CODE_DESCRIPTION': 'Self Contained Flat (Includes Maisonette / ' - 'Apartment)', - 'LOCAL_CUSTODIAN_CODE': 5900, 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'TOWER HAMLETS', - 'COUNTRY_CODE': 'E', 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', - 'POSTAL_ADDRESS_CODE': 'D', - 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', - 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', - 'TOPOGRAPHY_LAYER_TOID': 'osgb1000041686710', 'PARENT_UPRN': '6128401', - 'LAST_UPDATE_DATE': '20/06/2022', 'ENTRY_DATE': '08/05/2003', - 'BLPU_STATE_DATE': '08/05/2003', 'LANGUAGE': 'EN', 'MATCH': 0.4, - 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '1G'}}, { - 'DPA': {'UPRN': '6037824', 'UDPRN': '7844370', - 'ADDRESS': 'FLAT 15, BUTLER HOUSE, BACTON STREET, LONDON, E2 0PN', - 'SUB_BUILDING_NAME': 'FLAT 15', 'BUILDING_NAME': 'BUTLER HOUSE', - 'THOROUGHFARE_NAME': 'BACTON STREET', 'POST_TOWN': 'LONDON', 'POSTCODE': 'E2 0PN', - 'RPC': '2', 'X_COORDINATE': 535436.0, 'Y_COORDINATE': 182835.0, 'STATUS': 'APPROVED', - 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD06', - 'CLASSIFICATION_CODE_DESCRIPTION': 'Self Contained Flat (Includes Maisonette / ' - 'Apartment)', - 'LOCAL_CUSTODIAN_CODE': 5900, 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'TOWER HAMLETS', - 'COUNTRY_CODE': 'E', 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', - 'POSTAL_ADDRESS_CODE': 'D', - 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', - 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', - 'TOPOGRAPHY_LAYER_TOID': 'osgb1000041686710', 'PARENT_UPRN': '6128401', - 'LAST_UPDATE_DATE': '20/06/2022', 'ENTRY_DATE': '08/05/2003', - 'BLPU_STATE_DATE': '08/05/2003', 'LANGUAGE': 'EN', 'MATCH': 0.4, - 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '1H'}}, { - 'DPA': {'UPRN': '6037825', 'UDPRN': '7844371', - 'ADDRESS': 'FLAT 16, BUTLER HOUSE, BACTON STREET, LONDON, E2 0PN', - 'SUB_BUILDING_NAME': 'FLAT 16', 'BUILDING_NAME': 'BUTLER HOUSE', - 'THOROUGHFARE_NAME': 'BACTON STREET', 'POST_TOWN': 'LONDON', 'POSTCODE': 'E2 0PN', - 'RPC': '2', 'X_COORDINATE': 535436.0, 'Y_COORDINATE': 182835.0, 'STATUS': 'APPROVED', - 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD06', - 'CLASSIFICATION_CODE_DESCRIPTION': 'Self Contained Flat (Includes Maisonette / ' - 'Apartment)', - 'LOCAL_CUSTODIAN_CODE': 5900, 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'TOWER HAMLETS', - 'COUNTRY_CODE': 'E', 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', - 'POSTAL_ADDRESS_CODE': 'D', - 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', - 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', - 'TOPOGRAPHY_LAYER_TOID': 'osgb1000041686710', 'PARENT_UPRN': '6128401', - 'LAST_UPDATE_DATE': '20/06/2022', 'ENTRY_DATE': '08/05/2003', - 'BLPU_STATE_DATE': '08/05/2003', 'LANGUAGE': 'EN', 'MATCH': 0.4, - 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '1J'}}, { - 'DPA': {'UPRN': '6037826', 'UDPRN': '7844372', - 'ADDRESS': 'FLAT 17, BUTLER HOUSE, BACTON STREET, LONDON, E2 0PN', - 'SUB_BUILDING_NAME': 'FLAT 17', 'BUILDING_NAME': 'BUTLER HOUSE', - 'THOROUGHFARE_NAME': 'BACTON STREET', 'POST_TOWN': 'LONDON', 'POSTCODE': 'E2 0PN', - 'RPC': '2', 'X_COORDINATE': 535436.0, 'Y_COORDINATE': 182835.0, 'STATUS': 'APPROVED', - 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD06', - 'CLASSIFICATION_CODE_DESCRIPTION': 'Self Contained Flat (Includes Maisonette / ' - 'Apartment)', - 'LOCAL_CUSTODIAN_CODE': 5900, 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'TOWER HAMLETS', - 'COUNTRY_CODE': 'E', 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', - 'POSTAL_ADDRESS_CODE': 'D', - 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', - 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', - 'TOPOGRAPHY_LAYER_TOID': 'osgb1000041686710', 'PARENT_UPRN': '6128401', - 'LAST_UPDATE_DATE': '20/06/2022', 'ENTRY_DATE': '08/05/2003', - 'BLPU_STATE_DATE': '08/05/2003', 'LANGUAGE': 'EN', 'MATCH': 0.4, - 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '1L'}}, { - 'DPA': {'UPRN': '6037827', 'UDPRN': '7844373', - 'ADDRESS': 'FLAT 18, BUTLER HOUSE, BACTON STREET, LONDON, E2 0PN', - 'SUB_BUILDING_NAME': 'FLAT 18', 'BUILDING_NAME': 'BUTLER HOUSE', - 'THOROUGHFARE_NAME': 'BACTON STREET', 'POST_TOWN': 'LONDON', 'POSTCODE': 'E2 0PN', - 'RPC': '2', 'X_COORDINATE': 535436.0, 'Y_COORDINATE': 182835.0, 'STATUS': 'APPROVED', - 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD06', - 'CLASSIFICATION_CODE_DESCRIPTION': 'Self Contained Flat (Includes Maisonette / ' - 'Apartment)', - 'LOCAL_CUSTODIAN_CODE': 5900, 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'TOWER HAMLETS', - 'COUNTRY_CODE': 'E', 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', - 'POSTAL_ADDRESS_CODE': 'D', - 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', - 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', - 'TOPOGRAPHY_LAYER_TOID': 'osgb1000041686710', 'PARENT_UPRN': '6128401', - 'LAST_UPDATE_DATE': '20/06/2022', 'ENTRY_DATE': '08/05/2003', - 'BLPU_STATE_DATE': '08/05/2003', 'LANGUAGE': 'EN', 'MATCH': 0.4, - 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '1N'}}, { - 'DPA': {'UPRN': '6037828', 'UDPRN': '7844374', - 'ADDRESS': 'FLAT 19, BUTLER HOUSE, BACTON STREET, LONDON, E2 0PN', - 'SUB_BUILDING_NAME': 'FLAT 19', 'BUILDING_NAME': 'BUTLER HOUSE', - 'THOROUGHFARE_NAME': 'BACTON STREET', 'POST_TOWN': 'LONDON', 'POSTCODE': 'E2 0PN', - 'RPC': '2', 'X_COORDINATE': 535436.0, 'Y_COORDINATE': 182835.0, 'STATUS': 'APPROVED', - 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD06', - 'CLASSIFICATION_CODE_DESCRIPTION': 'Self Contained Flat (Includes Maisonette / ' - 'Apartment)', - 'LOCAL_CUSTODIAN_CODE': 5900, 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'TOWER HAMLETS', - 'COUNTRY_CODE': 'E', 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', - 'POSTAL_ADDRESS_CODE': 'D', - 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', - 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', - 'TOPOGRAPHY_LAYER_TOID': 'osgb1000041686710', 'PARENT_UPRN': '6128401', - 'LAST_UPDATE_DATE': '20/06/2022', 'ENTRY_DATE': '08/05/2003', - 'BLPU_STATE_DATE': '08/05/2003', 'LANGUAGE': 'EN', 'MATCH': 0.4, - 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '1P'}}, { - 'DPA': {'UPRN': '100005484', 'UDPRN': '20364558', - 'ADDRESS': '23, BUTLER ROAD, DAGENHAM, RM8 2DT', 'BUILDING_NUMBER': '23', - 'THOROUGHFARE_NAME': 'BUTLER ROAD', 'POST_TOWN': 'DAGENHAM', 'POSTCODE': 'RM8 2DT', - 'RPC': '2', 'X_COORDINATE': 546681.0, 'Y_COORDINATE': 185956.0, 'STATUS': 'APPROVED', - 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD04', - 'CLASSIFICATION_CODE_DESCRIPTION': 'Terraced', 'LOCAL_CUSTODIAN_CODE': 5060, - 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'BARKING AND DAGENHAM', 'COUNTRY_CODE': 'E', - 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', 'POSTAL_ADDRESS_CODE': 'D', - 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', - 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', - 'TOPOGRAPHY_LAYER_TOID': 'osgb1000007465373', 'LAST_UPDATE_DATE': '12/11/2018', - 'ENTRY_DATE': '01/01/1923', 'BLPU_STATE_DATE': '19/10/2009', 'LANGUAGE': 'EN', - 'MATCH': 0.4, 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '1S'}}, { - 'DPA': {'UPRN': '90215506', 'UDPRN': '54323251', 'ADDRESS': '23, BUTLER CLOSE, DUDLEY, DY1 4ST', - 'BUILDING_NUMBER': '23', 'THOROUGHFARE_NAME': 'BUTLER CLOSE', 'POST_TOWN': 'DUDLEY', - 'POSTCODE': 'DY1 4ST', 'RPC': '1', 'X_COORDINATE': 395277.0, 'Y_COORDINATE': 291399.0, - 'STATUS': 'APPROVED', 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD03', - 'CLASSIFICATION_CODE_DESCRIPTION': 'Semi-Detached', 'LOCAL_CUSTODIAN_CODE': 4615, - 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'DUDLEY', 'COUNTRY_CODE': 'E', - 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', 'POSTAL_ADDRESS_CODE': 'D', - 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', - 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', - 'TOPOGRAPHY_LAYER_TOID': 'osgb5000005208567956', 'LAST_UPDATE_DATE': '12/04/2022', - 'ENTRY_DATE': '19/10/2016', 'BLPU_STATE_DATE': '19/10/2016', 'LANGUAGE': 'EN', - 'MATCH': 0.4, 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '1P'}}, { - 'DPA': {'UPRN': '6038165', 'UDPRN': '7845424', - 'ADDRESS': 'FLAT 23, BEVIN HOUSE, BUTLER STREET, LONDON, E2 0RW', - 'SUB_BUILDING_NAME': 'FLAT 23', 'BUILDING_NAME': 'BEVIN HOUSE', - 'THOROUGHFARE_NAME': 'BUTLER STREET', 'POST_TOWN': 'LONDON', 'POSTCODE': 'E2 0RW', - 'RPC': '2', 'X_COORDINATE': 535491.0, 'Y_COORDINATE': 182853.0, 'STATUS': 'APPROVED', - 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD06', - 'CLASSIFICATION_CODE_DESCRIPTION': 'Self Contained Flat (Includes Maisonette / ' - 'Apartment)', - 'LOCAL_CUSTODIAN_CODE': 5900, 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'TOWER HAMLETS', - 'COUNTRY_CODE': 'E', 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', - 'POSTAL_ADDRESS_CODE': 'D', - 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', - 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', - 'TOPOGRAPHY_LAYER_TOID': 'osgb1000041686692', 'PARENT_UPRN': '6128805', - 'LAST_UPDATE_DATE': '20/06/2022', 'ENTRY_DATE': '08/05/2003', - 'BLPU_STATE_DATE': '08/05/2003', 'LANGUAGE': 'EN', 'MATCH': 0.4, - 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '1U'}}, { - 'DPA': {'UPRN': '100091297768', 'UDPRN': '20489790', - 'ADDRESS': '23, BUTLER HOUSE, ARGENT STREET, GRAYS, RM17 6LS', 'SUB_BUILDING_NAME': '23', - 'BUILDING_NAME': 'BUTLER HOUSE', 'THOROUGHFARE_NAME': 'ARGENT STREET', - 'POST_TOWN': 'GRAYS', 'POSTCODE': 'RM17 6LS', 'RPC': '2', 'X_COORDINATE': 561539.0, - 'Y_COORDINATE': 177535.0, 'STATUS': 'APPROVED', 'LOGICAL_STATUS_CODE': '1', - 'CLASSIFICATION_CODE': 'RD06', - 'CLASSIFICATION_CODE_DESCRIPTION': 'Self Contained Flat (Includes Maisonette / ' - 'Apartment)', - 'LOCAL_CUSTODIAN_CODE': 1595, 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'THURROCK', - 'COUNTRY_CODE': 'E', 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', - 'POSTAL_ADDRESS_CODE': 'D', - 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', - 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', - 'TOPOGRAPHY_LAYER_TOID': 'osgb1000000743609', 'PARENT_UPRN': '100091660367', - 'LAST_UPDATE_DATE': '12/11/2018', 'ENTRY_DATE': '22/04/2002', - 'BLPU_STATE_DATE': '22/04/2002', 'LANGUAGE': 'EN', 'MATCH': 0.4, - 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '1U'}}, { - 'DPA': {'UPRN': '2465123670', 'UDPRN': '13173788', - 'ADDRESS': '23, BUTLER CLOSE, LEICESTER, LE4 7TP', 'BUILDING_NUMBER': '23', - 'THOROUGHFARE_NAME': 'BUTLER CLOSE', 'POST_TOWN': 'LEICESTER', 'POSTCODE': 'LE4 7TP', - 'RPC': '1', 'X_COORDINATE': 461288.0, 'Y_COORDINATE': 307985.0, 'STATUS': 'APPROVED', - 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD03', - 'CLASSIFICATION_CODE_DESCRIPTION': 'Semi-Detached', 'LOCAL_CUSTODIAN_CODE': 2465, - 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'LEICESTER CITY', 'COUNTRY_CODE': 'E', - 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', 'POSTAL_ADDRESS_CODE': 'D', - 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', - 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', - 'TOPOGRAPHY_LAYER_TOID': 'osgb1000023348951', 'LAST_UPDATE_DATE': '10/02/2016', - 'ENTRY_DATE': '10/04/2003', 'BLPU_STATE_DATE': '10/04/2003', 'LANGUAGE': 'EN', - 'MATCH': 0.4, 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '1U'}}, { - 'DPA': {'UPRN': '100070981622', 'UDPRN': '1054333', - 'ADDRESS': '23, BUTLER ROAD, SOLIHULL, B92 7QL', 'BUILDING_NUMBER': '23', - 'THOROUGHFARE_NAME': 'BUTLER ROAD', 'POST_TOWN': 'SOLIHULL', 'POSTCODE': 'B92 7QL', - 'RPC': '1', 'X_COORDINATE': 413831.0, 'Y_COORDINATE': 283269.0, 'STATUS': 'APPROVED', - 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD03', - 'CLASSIFICATION_CODE_DESCRIPTION': 'Semi-Detached', 'LOCAL_CUSTODIAN_CODE': 4625, - 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'SOLIHULL', 'COUNTRY_CODE': 'E', - 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', 'POSTAL_ADDRESS_CODE': 'D', - 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', - 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', - 'TOPOGRAPHY_LAYER_TOID': 'osgb1000021354544', 'LAST_UPDATE_DATE': '10/02/2016', - 'ENTRY_DATE': '14/11/2002', 'BLPU_STATE_DATE': '06/11/2009', 'LANGUAGE': 'EN', - 'MATCH': 0.4, 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '1T'}}, { - 'DPA': {'UPRN': '100090315357', 'UDPRN': '5239798', - 'ADDRESS': '23, BUTLER ROAD, HALSTEAD, CO9 1LL', 'BUILDING_NUMBER': '23', - 'THOROUGHFARE_NAME': 'BUTLER ROAD', 'POST_TOWN': 'HALSTEAD', 'POSTCODE': 'CO9 1LL', - 'RPC': '1', 'X_COORDINATE': 581028.0, 'Y_COORDINATE': 230625.0, 'STATUS': 'APPROVED', - 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD04', - 'CLASSIFICATION_CODE_DESCRIPTION': 'Terraced', 'LOCAL_CUSTODIAN_CODE': 1510, - 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'BRAINTREE', 'COUNTRY_CODE': 'E', - 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', 'POSTAL_ADDRESS_CODE': 'D', - 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', - 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', - 'TOPOGRAPHY_LAYER_TOID': 'osgb1000004753569', 'LAST_UPDATE_DATE': '24/04/2019', - 'ENTRY_DATE': '16/04/2001', 'BLPU_STATE_DATE': '16/04/2001', 'LANGUAGE': 'EN', - 'MATCH': 0.4, 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '1L'}}, { - 'DPA': {'UPRN': '91966', 'UDPRN': '2741519', - 'ADDRESS': '23 BUTLER HOUSE, SUMMERHILL ROAD, BRISTOL, BS5 8HQ', - 'BUILDING_NAME': '23 BUTLER HOUSE', 'THOROUGHFARE_NAME': 'SUMMERHILL ROAD', - 'POST_TOWN': 'BRISTOL', 'POSTCODE': 'BS5 8HQ', 'RPC': '2', 'X_COORDINATE': 362679.0, - 'Y_COORDINATE': 173636.0, 'STATUS': 'APPROVED', 'LOGICAL_STATUS_CODE': '1', - 'CLASSIFICATION_CODE': 'RD08', - 'CLASSIFICATION_CODE_DESCRIPTION': 'Sheltered Accommodation', - 'LOCAL_CUSTODIAN_CODE': 116, 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'BRISTOL', - 'COUNTRY_CODE': 'E', 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', - 'POSTAL_ADDRESS_CODE': 'D', - 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', - 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', - 'TOPOGRAPHY_LAYER_TOID': 'osgb1000015134420', 'PARENT_UPRN': '91963', - 'LAST_UPDATE_DATE': '28/07/2020', 'ENTRY_DATE': '16/01/1997', - 'BLPU_STATE_DATE': '16/01/1997', 'LANGUAGE': 'EN', 'MATCH': 0.4, - 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '1U'}}, { - 'DPA': {'UPRN': '2630183449', 'UDPRN': '53937961', - 'ADDRESS': '23, BUTLER GARDENS, WYMONDHAM, NR18 0GE', 'BUILDING_NUMBER': '23', - 'THOROUGHFARE_NAME': 'BUTLER GARDENS', 'POST_TOWN': 'WYMONDHAM', 'POSTCODE': 'NR18 0GE', - 'RPC': '1', 'X_COORDINATE': 612795.66, 'Y_COORDINATE': 303429.68, 'STATUS': 'APPROVED', - 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD03', - 'CLASSIFICATION_CODE_DESCRIPTION': 'Semi-Detached', 'LOCAL_CUSTODIAN_CODE': 2630, - 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'SOUTH NORFOLK', 'COUNTRY_CODE': 'E', - 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', 'POSTAL_ADDRESS_CODE': 'D', - 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', - 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', - 'TOPOGRAPHY_LAYER_TOID': 'osgb5000005229788403', 'LAST_UPDATE_DATE': '24/04/2019', - 'ENTRY_DATE': '08/06/2015', 'BLPU_STATE_DATE': '21/11/2018', 'LANGUAGE': 'EN', - 'MATCH': 0.4, 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '2D'}}, { - 'DPA': {'UPRN': '100050385845', 'UDPRN': '10711132', - 'ADDRESS': '23, BUTLER ROAD, HARROGATE, HG1 4PF', 'BUILDING_NUMBER': '23', - 'THOROUGHFARE_NAME': 'BUTLER ROAD', 'POST_TOWN': 'HARROGATE', 'POSTCODE': 'HG1 4PF', - 'RPC': '1', 'X_COORDINATE': 430998.0, 'Y_COORDINATE': 456935.0, 'STATUS': 'APPROVED', - 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD04', - 'CLASSIFICATION_CODE_DESCRIPTION': 'Terraced', 'LOCAL_CUSTODIAN_CODE': 2745, - 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'NORTH YORKSHIRE', 'COUNTRY_CODE': 'E', - 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', 'POSTAL_ADDRESS_CODE': 'D', - 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', - 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', - 'TOPOGRAPHY_LAYER_TOID': 'osgb1000032665633', 'LAST_UPDATE_DATE': '30/03/2023', - 'ENTRY_DATE': '05/04/2001', 'BLPU_STATE_DATE': '05/04/2001', 'LANGUAGE': 'EN', - 'MATCH': 0.4, 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '2D'}}, { - 'DPA': {'UPRN': '100060219201', 'UDPRN': '19958031', - 'ADDRESS': '23, BUTLER CLOSE, BASINGSTOKE, RG22 6UF', 'BUILDING_NUMBER': '23', - 'THOROUGHFARE_NAME': 'BUTLER CLOSE', 'POST_TOWN': 'BASINGSTOKE', 'POSTCODE': 'RG22 6UF', - 'RPC': '1', 'X_COORDINATE': 461229.0, 'Y_COORDINATE': 151529.0, 'STATUS': 'APPROVED', - 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD04', - 'CLASSIFICATION_CODE_DESCRIPTION': 'Terraced', 'LOCAL_CUSTODIAN_CODE': 1705, - 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'BASINGSTOKE AND DEANE', 'COUNTRY_CODE': 'E', - 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', 'POSTAL_ADDRESS_CODE': 'D', - 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', - 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', - 'TOPOGRAPHY_LAYER_TOID': 'osgb1000013815926', 'LAST_UPDATE_DATE': '01/05/2021', - 'ENTRY_DATE': '03/05/2001', 'BLPU_STATE_DATE': '28/03/2009', 'LANGUAGE': 'EN', - 'MATCH': 0.4, 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '1U'}}, { - 'DPA': {'UPRN': '100021255372', 'UDPRN': '10435391', - 'ADDRESS': '23, BUTLER AVENUE, HARROW, HA1 4EJ', 'BUILDING_NUMBER': '23', - 'THOROUGHFARE_NAME': 'BUTLER AVENUE', 'POST_TOWN': 'HARROW', 'POSTCODE': 'HA1 4EJ', - 'RPC': '1', 'X_COORDINATE': 514794.44, 'Y_COORDINATE': 187933.1, 'STATUS': 'APPROVED', - 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD02', - 'CLASSIFICATION_CODE_DESCRIPTION': 'Detached', 'LOCAL_CUSTODIAN_CODE': 5450, - 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'HARROW', 'COUNTRY_CODE': 'E', - 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', 'POSTAL_ADDRESS_CODE': 'D', - 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', - 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', - 'TOPOGRAPHY_LAYER_TOID': 'osgb1000003018602', 'LAST_UPDATE_DATE': '10/02/2016', - 'ENTRY_DATE': '09/08/2004', 'BLPU_STATE_DATE': '17/08/2007', 'LANGUAGE': 'EN', - 'MATCH': 0.4, 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '1J'}}, { - 'DPA': {'UPRN': '100010537312', 'UDPRN': '19537132', - 'ADDRESS': '23, BUTLER PLACE, PRESTON, PR1 6BS', 'BUILDING_NUMBER': '23', - 'THOROUGHFARE_NAME': 'BUTLER PLACE', 'POST_TOWN': 'PRESTON', 'POSTCODE': 'PR1 6BS', - 'RPC': '1', 'X_COORDINATE': 353907.0, 'Y_COORDINATE': 430681.0, 'STATUS': 'APPROVED', - 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD04', - 'CLASSIFICATION_CODE_DESCRIPTION': 'Terraced', 'LOCAL_CUSTODIAN_CODE': 2345, - 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'PRESTON', 'COUNTRY_CODE': 'E', - 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', 'POSTAL_ADDRESS_CODE': 'D', - 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', - 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', - 'TOPOGRAPHY_LAYER_TOID': 'osgb1000037964267', 'LAST_UPDATE_DATE': '24/04/2019', - 'ENTRY_DATE': '01/01/2004', 'BLPU_STATE_DATE': '03/12/2007', 'LANGUAGE': 'EN', - 'MATCH': 0.4, 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '1T'}}, { - 'DPA': {'UPRN': '10090793888', 'UDPRN': '53380797', - 'ADDRESS': '23, BUTLER DRIVE, ERITH, DA8 3AQ', 'BUILDING_NUMBER': '23', - 'THOROUGHFARE_NAME': 'BUTLER DRIVE', 'POST_TOWN': 'ERITH', 'POSTCODE': 'DA8 3AQ', - 'RPC': '1', 'X_COORDINATE': 551416.62, 'Y_COORDINATE': 177160.6, 'STATUS': 'APPROVED', - 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD04', - 'CLASSIFICATION_CODE_DESCRIPTION': 'Terraced', 'LOCAL_CUSTODIAN_CODE': 5120, - 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'BEXLEY', 'COUNTRY_CODE': 'E', - 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', 'POSTAL_ADDRESS_CODE': 'D', - 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', - 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', - 'TOPOGRAPHY_LAYER_TOID': 'osgb5000005152984756', 'LAST_UPDATE_DATE': '10/02/2016', - 'ENTRY_DATE': '14/01/2014', 'BLPU_STATE_DATE': '04/06/2015', 'LANGUAGE': 'EN', - 'MATCH': 0.4, 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '1Q'}}, { - 'DPA': {'UPRN': '10022828895', 'UDPRN': '51566826', - 'ADDRESS': '23, BUTLER DRIVE, BRACKNELL, RG12 8DA', 'BUILDING_NUMBER': '23', - 'THOROUGHFARE_NAME': 'BUTLER DRIVE', 'POST_TOWN': 'BRACKNELL', 'POSTCODE': 'RG12 8DA', - 'RPC': '1', 'X_COORDINATE': 484943.0, 'Y_COORDINATE': 168743.0, 'STATUS': 'APPROVED', - 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD03', - 'CLASSIFICATION_CODE_DESCRIPTION': 'Semi-Detached', 'LOCAL_CUSTODIAN_CODE': 335, - 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'BRACKNELL FOREST', 'COUNTRY_CODE': 'E', - 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', 'POSTAL_ADDRESS_CODE': 'D', - 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', - 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', - 'TOPOGRAPHY_LAYER_TOID': 'osgb1000002490438229', 'LAST_UPDATE_DATE': '10/02/2016', - 'ENTRY_DATE': '23/01/2009', 'BLPU_STATE_DATE': '23/01/2009', 'LANGUAGE': 'EN', - 'MATCH': 0.4, 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '4Y'}}, { - 'DPA': {'UPRN': '100021255418', 'UDPRN': '10434913', - 'ADDRESS': '23, BUTLER ROAD, HARROW, HA1 4DS', 'BUILDING_NUMBER': '23', - 'THOROUGHFARE_NAME': 'BUTLER ROAD', 'POST_TOWN': 'HARROW', 'POSTCODE': 'HA1 4DS', - 'RPC': '1', 'X_COORDINATE': 514647.66, 'Y_COORDINATE': 187939.99, 'STATUS': 'APPROVED', - 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD04', - 'CLASSIFICATION_CODE_DESCRIPTION': 'Terraced', 'LOCAL_CUSTODIAN_CODE': 5450, - 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'HARROW', 'COUNTRY_CODE': 'E', - 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', 'POSTAL_ADDRESS_CODE': 'D', - 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', - 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', - 'TOPOGRAPHY_LAYER_TOID': 'osgb1000003018457', 'LAST_UPDATE_DATE': '10/02/2016', - 'ENTRY_DATE': '09/08/2004', 'BLPU_STATE_DATE': '17/08/2007', 'LANGUAGE': 'EN', - 'MATCH': 0.4, 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '1H'}}, { - 'DPA': {'UPRN': '10095848542', 'UDPRN': '56772037', - 'ADDRESS': '23, BUTLER STREET, MANCHESTER, M40 7SW', 'BUILDING_NUMBER': '23', - 'THOROUGHFARE_NAME': 'BUTLER STREET', 'POST_TOWN': 'MANCHESTER', 'POSTCODE': 'M40 7SW', - 'RPC': '1', 'X_COORDINATE': 385363.25, 'Y_COORDINATE': 399029.33, 'STATUS': 'APPROVED', - 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD03', - 'CLASSIFICATION_CODE_DESCRIPTION': 'Semi-Detached', 'LOCAL_CUSTODIAN_CODE': 4215, - 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'MANCHESTER', 'COUNTRY_CODE': 'E', - 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', 'POSTAL_ADDRESS_CODE': 'D', - 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', - 'BLPU_STATE_CODE': '3', 'BLPU_STATE_CODE_DESCRIPTION': 'Unoccupied', - 'TOPOGRAPHY_LAYER_TOID': 'osgb5000005305734312', 'LAST_UPDATE_DATE': '08/12/2023', - 'ENTRY_DATE': '20/12/2021', 'BLPU_STATE_DATE': '06/12/2023', 'LANGUAGE': 'EN', - 'MATCH': 0.4, 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '1Q'}}, { - 'DPA': {'UPRN': '14053961', 'UDPRN': '20066824', - 'ADDRESS': '23, BUTLER ROAD, CROWTHORNE, RG45 6QZ', 'BUILDING_NUMBER': '23', - 'THOROUGHFARE_NAME': 'BUTLER ROAD', 'POST_TOWN': 'CROWTHORNE', 'POSTCODE': 'RG45 6QZ', - 'RPC': '1', 'X_COORDINATE': 483577.0, 'Y_COORDINATE': 164784.0, 'STATUS': 'APPROVED', - 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD03', - 'CLASSIFICATION_CODE_DESCRIPTION': 'Semi-Detached', 'LOCAL_CUSTODIAN_CODE': 360, - 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'WOKINGHAM', 'COUNTRY_CODE': 'E', - 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', 'POSTAL_ADDRESS_CODE': 'D', - 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', - 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', - 'TOPOGRAPHY_LAYER_TOID': 'osgb1000014499560', 'LAST_UPDATE_DATE': '10/02/2016', - 'ENTRY_DATE': '08/07/2000', 'BLPU_STATE_DATE': '01/02/2010', 'LANGUAGE': 'EN', - 'MATCH': 0.4, 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '1J'}}, { - 'DPA': {'UPRN': '38174349', 'UDPRN': '12536271', - 'ADDRESS': '23, BUTLER CRESCENT, LIVERPOOL, L6 9HS', 'BUILDING_NUMBER': '23', - 'THOROUGHFARE_NAME': 'BUTLER CRESCENT', 'POST_TOWN': 'LIVERPOOL', 'POSTCODE': 'L6 9HS', - 'RPC': '1', 'X_COORDINATE': 336692.0, 'Y_COORDINATE': 391293.0, 'STATUS': 'APPROVED', - 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD04', - 'CLASSIFICATION_CODE_DESCRIPTION': 'Terraced', 'LOCAL_CUSTODIAN_CODE': 4310, - 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'LIVERPOOL', 'COUNTRY_CODE': 'E', - 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', 'POSTAL_ADDRESS_CODE': 'D', - 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', - 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', - 'TOPOGRAPHY_LAYER_TOID': 'osgb1000035036984', 'LAST_UPDATE_DATE': '23/03/2022', - 'ENTRY_DATE': '30/09/1999', 'BLPU_STATE_DATE': '30/09/1999', 'LANGUAGE': 'EN', - 'MATCH': 0.4, 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '1T'}}, { - 'DPA': {'UPRN': '63197467', 'UDPRN': '55267616', 'ADDRESS': '23, BUTLER WAY, WAKEFIELD, WF1 3DQ', - 'BUILDING_NUMBER': '23', 'THOROUGHFARE_NAME': 'BUTLER WAY', 'POST_TOWN': 'WAKEFIELD', - 'POSTCODE': 'WF1 3DQ', 'RPC': '1', 'X_COORDINATE': 433059.56, 'Y_COORDINATE': 421601.59, - 'STATUS': 'APPROVED', 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD03', - 'CLASSIFICATION_CODE_DESCRIPTION': 'Semi-Detached', 'LOCAL_CUSTODIAN_CODE': 4725, - 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'WAKEFIELD', 'COUNTRY_CODE': 'E', - 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', 'POSTAL_ADDRESS_CODE': 'D', - 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', - 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', - 'TOPOGRAPHY_LAYER_TOID': 'osgb5000005255059772', 'LAST_UPDATE_DATE': '13/06/2022', - 'ENTRY_DATE': '04/06/2018', 'BLPU_STATE_DATE': '05/06/2018', 'LANGUAGE': 'EN', - 'MATCH': 0.4, 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '1P'}}, { - 'DPA': {'UPRN': '100010789959', 'UDPRN': '9117199', - 'ADDRESS': '23, BUTLER STREET, BLACKPOOL, FY1 3HR', 'BUILDING_NUMBER': '23', - 'THOROUGHFARE_NAME': 'BUTLER STREET', 'POST_TOWN': 'BLACKPOOL', 'POSTCODE': 'FY1 3HR', - 'RPC': '1', 'X_COORDINATE': 331287.0, 'Y_COORDINATE': 436773.0, 'STATUS': 'APPROVED', - 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD04', - 'CLASSIFICATION_CODE_DESCRIPTION': 'Terraced', 'LOCAL_CUSTODIAN_CODE': 2373, - 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'BLACKPOOL', 'COUNTRY_CODE': 'E', - 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', 'POSTAL_ADDRESS_CODE': 'D', - 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', - 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', - 'TOPOGRAPHY_LAYER_TOID': 'osgb1000037423291', 'LAST_UPDATE_DATE': '10/02/2016', - 'ENTRY_DATE': '18/04/2001', 'BLPU_STATE_DATE': '12/06/2007', 'LANGUAGE': 'EN', - 'MATCH': 0.4, 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '1H'}}, { - 'DPA': {'UPRN': '6038175', 'UDPRN': '7845434', - 'ADDRESS': 'FLAT 32, BEVIN HOUSE, BUTLER STREET, LONDON, E2 0RW', - 'SUB_BUILDING_NAME': 'FLAT 32', 'BUILDING_NAME': 'BEVIN HOUSE', - 'THOROUGHFARE_NAME': 'BUTLER STREET', 'POST_TOWN': 'LONDON', 'POSTCODE': 'E2 0RW', - 'RPC': '2', 'X_COORDINATE': 535491.0, 'Y_COORDINATE': 182853.0, 'STATUS': 'APPROVED', - 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD06', - 'CLASSIFICATION_CODE_DESCRIPTION': 'Self Contained Flat (Includes Maisonette / ' - 'Apartment)', - 'LOCAL_CUSTODIAN_CODE': 5900, 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'TOWER HAMLETS', - 'COUNTRY_CODE': 'E', 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', - 'POSTAL_ADDRESS_CODE': 'D', - 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', - 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', - 'TOPOGRAPHY_LAYER_TOID': 'osgb1000041686692', 'PARENT_UPRN': '6128805', - 'LAST_UPDATE_DATE': '20/06/2022', 'ENTRY_DATE': '08/05/2003', - 'BLPU_STATE_DATE': '08/05/2003', 'LANGUAGE': 'EN', 'MATCH': 0.4, - 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '2G'}}, { - 'DPA': {'UPRN': '100031395259', 'UDPRN': '16684081', - 'ADDRESS': '23, BUTLER CRESCENT, MANSFIELD, NG19 7LU', 'BUILDING_NUMBER': '23', - 'THOROUGHFARE_NAME': 'BUTLER CRESCENT', 'POST_TOWN': 'MANSFIELD', 'POSTCODE': 'NG19 7LU', - 'RPC': '1', 'X_COORDINATE': 451759.0, 'Y_COORDINATE': 362615.0, 'STATUS': 'APPROVED', - 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD04', - 'CLASSIFICATION_CODE_DESCRIPTION': 'Terraced', 'LOCAL_CUSTODIAN_CODE': 3025, - 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'MANSFIELD', 'COUNTRY_CODE': 'E', - 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', 'POSTAL_ADDRESS_CODE': 'D', - 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', - 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', - 'TOPOGRAPHY_LAYER_TOID': 'osgb1000022624910', 'LAST_UPDATE_DATE': '10/02/2016', - 'ENTRY_DATE': '07/11/2002', 'BLPU_STATE_DATE': '07/11/2002', 'LANGUAGE': 'EN', - 'MATCH': 0.4, 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '1J'}}, { - 'DPA': {'UPRN': '6038172', 'UDPRN': '7845431', - 'ADDRESS': 'FLAT 3, BEVIN HOUSE, BUTLER STREET, LONDON, E2 0RW', - 'SUB_BUILDING_NAME': 'FLAT 3', 'BUILDING_NAME': 'BEVIN HOUSE', - 'THOROUGHFARE_NAME': 'BUTLER STREET', 'POST_TOWN': 'LONDON', 'POSTCODE': 'E2 0RW', - 'RPC': '2', 'X_COORDINATE': 535491.0, 'Y_COORDINATE': 182853.0, 'STATUS': 'APPROVED', - 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD06', - 'CLASSIFICATION_CODE_DESCRIPTION': 'Self Contained Flat (Includes Maisonette / ' - 'Apartment)', - 'LOCAL_CUSTODIAN_CODE': 5900, 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'TOWER HAMLETS', - 'COUNTRY_CODE': 'E', 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', - 'POSTAL_ADDRESS_CODE': 'D', - 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', - 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', - 'TOPOGRAPHY_LAYER_TOID': 'osgb1000041686692', 'PARENT_UPRN': '6128805', - 'LAST_UPDATE_DATE': '20/06/2022', 'ENTRY_DATE': '08/05/2003', - 'BLPU_STATE_DATE': '08/05/2003', 'LANGUAGE': 'EN', 'MATCH': 0.4, - 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '2D'}}, { - 'DPA': {'UPRN': '6045644', 'UDPRN': '8071046', - 'ADDRESS': 'FLAT 23, BUTLER HOUSE, BURDETT ROAD, LONDON, E14 7AB', - 'SUB_BUILDING_NAME': 'FLAT 23', 'BUILDING_NAME': 'BUTLER HOUSE', - 'THOROUGHFARE_NAME': 'BURDETT ROAD', 'POST_TOWN': 'LONDON', 'POSTCODE': 'E14 7AB', - 'RPC': '2', 'X_COORDINATE': 536908.0, 'Y_COORDINATE': 181460.0, 'STATUS': 'APPROVED', - 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD06', - 'CLASSIFICATION_CODE_DESCRIPTION': 'Self Contained Flat (Includes Maisonette / ' - 'Apartment)', - 'LOCAL_CUSTODIAN_CODE': 5900, 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'TOWER HAMLETS', - 'COUNTRY_CODE': 'E', 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', - 'POSTAL_ADDRESS_CODE': 'D', - 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', - 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', - 'TOPOGRAPHY_LAYER_TOID': 'osgb1000041732860', 'PARENT_UPRN': '6128774', - 'LAST_UPDATE_DATE': '20/06/2022', 'ENTRY_DATE': '08/05/2003', - 'BLPU_STATE_DATE': '08/05/2003', 'LANGUAGE': 'EN', 'MATCH': 0.4, - 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '1U'}}, { - 'DPA': {'UPRN': '6038164', 'UDPRN': '7845423', - 'ADDRESS': 'FLAT 22, BEVIN HOUSE, BUTLER STREET, LONDON, E2 0RW', - 'SUB_BUILDING_NAME': 'FLAT 22', 'BUILDING_NAME': 'BEVIN HOUSE', - 'THOROUGHFARE_NAME': 'BUTLER STREET', 'POST_TOWN': 'LONDON', 'POSTCODE': 'E2 0RW', - 'RPC': '2', 'X_COORDINATE': 535491.0, 'Y_COORDINATE': 182853.0, 'STATUS': 'APPROVED', - 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD06', - 'CLASSIFICATION_CODE_DESCRIPTION': 'Self Contained Flat (Includes Maisonette / ' - 'Apartment)', - 'LOCAL_CUSTODIAN_CODE': 5900, 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'TOWER HAMLETS', - 'COUNTRY_CODE': 'E', 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', - 'POSTAL_ADDRESS_CODE': 'D', - 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', - 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', - 'TOPOGRAPHY_LAYER_TOID': 'osgb1000041686692', 'PARENT_UPRN': '6128805', - 'LAST_UPDATE_DATE': '20/06/2022', 'ENTRY_DATE': '08/05/2003', - 'BLPU_STATE_DATE': '08/05/2003', 'LANGUAGE': 'EN', 'MATCH': 0.4, - 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '1T'}}, { - 'DPA': {'UPRN': '6038153', 'UDPRN': '7845412', - 'ADDRESS': 'FLAT 12, BEVIN HOUSE, BUTLER STREET, LONDON, E2 0RW', - 'SUB_BUILDING_NAME': 'FLAT 12', 'BUILDING_NAME': 'BEVIN HOUSE', - 'THOROUGHFARE_NAME': 'BUTLER STREET', 'POST_TOWN': 'LONDON', 'POSTCODE': 'E2 0RW', - 'RPC': '2', 'X_COORDINATE': 535491.0, 'Y_COORDINATE': 182853.0, 'STATUS': 'APPROVED', - 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD06', - 'CLASSIFICATION_CODE_DESCRIPTION': 'Self Contained Flat (Includes Maisonette / ' - 'Apartment)', - 'LOCAL_CUSTODIAN_CODE': 5900, 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'TOWER HAMLETS', - 'COUNTRY_CODE': 'E', 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', - 'POSTAL_ADDRESS_CODE': 'D', - 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', - 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', - 'TOPOGRAPHY_LAYER_TOID': 'osgb1000041686692', 'PARENT_UPRN': '6128805', - 'LAST_UPDATE_DATE': '20/06/2022', 'ENTRY_DATE': '08/05/2003', - 'BLPU_STATE_DATE': '08/05/2003', 'LANGUAGE': 'EN', 'MATCH': 0.4, - 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '1E'}}, { - 'DPA': {'UPRN': '6038154', 'UDPRN': '7845413', - 'ADDRESS': 'FLAT 13, BEVIN HOUSE, BUTLER STREET, LONDON, E2 0RW', - 'SUB_BUILDING_NAME': 'FLAT 13', 'BUILDING_NAME': 'BEVIN HOUSE', - 'THOROUGHFARE_NAME': 'BUTLER STREET', 'POST_TOWN': 'LONDON', 'POSTCODE': 'E2 0RW', - 'RPC': '2', 'X_COORDINATE': 535491.0, 'Y_COORDINATE': 182853.0, 'STATUS': 'APPROVED', - 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD06', - 'CLASSIFICATION_CODE_DESCRIPTION': 'Self Contained Flat (Includes Maisonette / ' - 'Apartment)', - 'LOCAL_CUSTODIAN_CODE': 5900, 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'TOWER HAMLETS', - 'COUNTRY_CODE': 'E', 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', - 'POSTAL_ADDRESS_CODE': 'D', - 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', - 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', - 'TOPOGRAPHY_LAYER_TOID': 'osgb1000041686692', 'PARENT_UPRN': '6128805', - 'LAST_UPDATE_DATE': '20/06/2022', 'ENTRY_DATE': '08/05/2003', - 'BLPU_STATE_DATE': '08/05/2003', 'LANGUAGE': 'EN', 'MATCH': 0.4, - 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '1F'}}, { - 'DPA': {'UPRN': '6038162', 'UDPRN': '7845421', - 'ADDRESS': 'FLAT 20, BEVIN HOUSE, BUTLER STREET, LONDON, E2 0RW', - 'SUB_BUILDING_NAME': 'FLAT 20', 'BUILDING_NAME': 'BEVIN HOUSE', - 'THOROUGHFARE_NAME': 'BUTLER STREET', 'POST_TOWN': 'LONDON', 'POSTCODE': 'E2 0RW', - 'RPC': '2', 'X_COORDINATE': 535491.0, 'Y_COORDINATE': 182853.0, 'STATUS': 'APPROVED', - 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD06', - 'CLASSIFICATION_CODE_DESCRIPTION': 'Self Contained Flat (Includes Maisonette / ' - 'Apartment)', - 'LOCAL_CUSTODIAN_CODE': 5900, 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'TOWER HAMLETS', - 'COUNTRY_CODE': 'E', 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', - 'POSTAL_ADDRESS_CODE': 'D', - 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', - 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', - 'TOPOGRAPHY_LAYER_TOID': 'osgb1000041686692', 'PARENT_UPRN': '6128805', - 'LAST_UPDATE_DATE': '20/06/2022', 'ENTRY_DATE': '08/05/2003', - 'BLPU_STATE_DATE': '08/05/2003', 'LANGUAGE': 'EN', 'MATCH': 0.4, - 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '1R'}}, { - 'DPA': {'UPRN': '6038163', 'UDPRN': '7845422', - 'ADDRESS': 'FLAT 21, BEVIN HOUSE, BUTLER STREET, LONDON, E2 0RW', - 'SUB_BUILDING_NAME': 'FLAT 21', 'BUILDING_NAME': 'BEVIN HOUSE', - 'THOROUGHFARE_NAME': 'BUTLER STREET', 'POST_TOWN': 'LONDON', 'POSTCODE': 'E2 0RW', - 'RPC': '2', 'X_COORDINATE': 535491.0, 'Y_COORDINATE': 182853.0, 'STATUS': 'APPROVED', - 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD06', - 'CLASSIFICATION_CODE_DESCRIPTION': 'Self Contained Flat (Includes Maisonette / ' - 'Apartment)', - 'LOCAL_CUSTODIAN_CODE': 5900, 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'TOWER HAMLETS', - 'COUNTRY_CODE': 'E', 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', - 'POSTAL_ADDRESS_CODE': 'D', - 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', - 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', - 'TOPOGRAPHY_LAYER_TOID': 'osgb1000041686692', 'PARENT_UPRN': '6128805', - 'LAST_UPDATE_DATE': '20/06/2022', 'ENTRY_DATE': '08/05/2003', - 'BLPU_STATE_DATE': '08/05/2003', 'LANGUAGE': 'EN', 'MATCH': 0.4, - 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '1S'}}, { - 'DPA': {'UPRN': '6038166', 'UDPRN': '7845425', - 'ADDRESS': 'FLAT 24, BEVIN HOUSE, BUTLER STREET, LONDON, E2 0RW', - 'SUB_BUILDING_NAME': 'FLAT 24', 'BUILDING_NAME': 'BEVIN HOUSE', - 'THOROUGHFARE_NAME': 'BUTLER STREET', 'POST_TOWN': 'LONDON', 'POSTCODE': 'E2 0RW', - 'RPC': '2', 'X_COORDINATE': 535491.0, 'Y_COORDINATE': 182853.0, 'STATUS': 'APPROVED', - 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD06', - 'CLASSIFICATION_CODE_DESCRIPTION': 'Self Contained Flat (Includes Maisonette / ' - 'Apartment)', - 'LOCAL_CUSTODIAN_CODE': 5900, 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'TOWER HAMLETS', - 'COUNTRY_CODE': 'E', 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', - 'POSTAL_ADDRESS_CODE': 'D', - 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', - 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', - 'TOPOGRAPHY_LAYER_TOID': 'osgb1000041686692', 'PARENT_UPRN': '6128805', - 'LAST_UPDATE_DATE': '20/06/2022', 'ENTRY_DATE': '08/05/2003', - 'BLPU_STATE_DATE': '08/05/2003', 'LANGUAGE': 'EN', 'MATCH': 0.4, - 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '1W'}}, { - 'DPA': {'UPRN': '6038167', 'UDPRN': '7845426', - 'ADDRESS': 'FLAT 25, BEVIN HOUSE, BUTLER STREET, LONDON, E2 0RW', - 'SUB_BUILDING_NAME': 'FLAT 25', 'BUILDING_NAME': 'BEVIN HOUSE', - 'THOROUGHFARE_NAME': 'BUTLER STREET', 'POST_TOWN': 'LONDON', 'POSTCODE': 'E2 0RW', - 'RPC': '2', 'X_COORDINATE': 535491.0, 'Y_COORDINATE': 182853.0, 'STATUS': 'APPROVED', - 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD06', - 'CLASSIFICATION_CODE_DESCRIPTION': 'Self Contained Flat (Includes Maisonette / ' - 'Apartment)', - 'LOCAL_CUSTODIAN_CODE': 5900, 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'TOWER HAMLETS', - 'COUNTRY_CODE': 'E', 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', - 'POSTAL_ADDRESS_CODE': 'D', - 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', - 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', - 'TOPOGRAPHY_LAYER_TOID': 'osgb1000041686692', 'PARENT_UPRN': '6128805', - 'LAST_UPDATE_DATE': '20/06/2022', 'ENTRY_DATE': '08/05/2003', - 'BLPU_STATE_DATE': '08/05/2003', 'LANGUAGE': 'EN', 'MATCH': 0.4, - 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '1X'}}, { - 'DPA': {'UPRN': '6038168', 'UDPRN': '7845427', - 'ADDRESS': 'FLAT 26, BEVIN HOUSE, BUTLER STREET, LONDON, E2 0RW', - 'SUB_BUILDING_NAME': 'FLAT 26', 'BUILDING_NAME': 'BEVIN HOUSE', - 'THOROUGHFARE_NAME': 'BUTLER STREET', 'POST_TOWN': 'LONDON', 'POSTCODE': 'E2 0RW', - 'RPC': '2', 'X_COORDINATE': 535491.0, 'Y_COORDINATE': 182853.0, 'STATUS': 'APPROVED', - 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD06', - 'CLASSIFICATION_CODE_DESCRIPTION': 'Self Contained Flat (Includes Maisonette / ' - 'Apartment)', - 'LOCAL_CUSTODIAN_CODE': 5900, 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'TOWER HAMLETS', - 'COUNTRY_CODE': 'E', 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', - 'POSTAL_ADDRESS_CODE': 'D', - 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', - 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', - 'TOPOGRAPHY_LAYER_TOID': 'osgb1000041686692', 'PARENT_UPRN': '6128805', - 'LAST_UPDATE_DATE': '20/06/2022', 'ENTRY_DATE': '08/05/2003', - 'BLPU_STATE_DATE': '08/05/2003', 'LANGUAGE': 'EN', 'MATCH': 0.4, - 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '1Y'}}, { - 'DPA': {'UPRN': '6038169', 'UDPRN': '7845428', - 'ADDRESS': 'FLAT 27, BEVIN HOUSE, BUTLER STREET, LONDON, E2 0RW', - 'SUB_BUILDING_NAME': 'FLAT 27', 'BUILDING_NAME': 'BEVIN HOUSE', - 'THOROUGHFARE_NAME': 'BUTLER STREET', 'POST_TOWN': 'LONDON', 'POSTCODE': 'E2 0RW', - 'RPC': '2', 'X_COORDINATE': 535491.0, 'Y_COORDINATE': 182853.0, 'STATUS': 'APPROVED', - 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD06', - 'CLASSIFICATION_CODE_DESCRIPTION': 'Self Contained Flat (Includes Maisonette / ' - 'Apartment)', - 'LOCAL_CUSTODIAN_CODE': 5900, 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'TOWER HAMLETS', - 'COUNTRY_CODE': 'E', 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', - 'POSTAL_ADDRESS_CODE': 'D', - 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', - 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', - 'TOPOGRAPHY_LAYER_TOID': 'osgb1000041686692', 'PARENT_UPRN': '6128805', - 'LAST_UPDATE_DATE': '20/06/2022', 'ENTRY_DATE': '08/05/2003', - 'BLPU_STATE_DATE': '08/05/2003', 'LANGUAGE': 'EN', 'MATCH': 0.4, - 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '1Z'}}, { - 'DPA': {'UPRN': '6038170', 'UDPRN': '7845429', - 'ADDRESS': 'FLAT 28, BEVIN HOUSE, BUTLER STREET, LONDON, E2 0RW', - 'SUB_BUILDING_NAME': 'FLAT 28', 'BUILDING_NAME': 'BEVIN HOUSE', - 'THOROUGHFARE_NAME': 'BUTLER STREET', 'POST_TOWN': 'LONDON', 'POSTCODE': 'E2 0RW', - 'RPC': '2', 'X_COORDINATE': 535491.0, 'Y_COORDINATE': 182853.0, 'STATUS': 'APPROVED', - 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD06', - 'CLASSIFICATION_CODE_DESCRIPTION': 'Self Contained Flat (Includes Maisonette / ' - 'Apartment)', - 'LOCAL_CUSTODIAN_CODE': 5900, 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'TOWER HAMLETS', - 'COUNTRY_CODE': 'E', 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', - 'POSTAL_ADDRESS_CODE': 'D', - 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', - 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', - 'TOPOGRAPHY_LAYER_TOID': 'osgb1000041686692', 'PARENT_UPRN': '6128805', - 'LAST_UPDATE_DATE': '20/06/2022', 'ENTRY_DATE': '08/05/2003', - 'BLPU_STATE_DATE': '08/05/2003', 'LANGUAGE': 'EN', 'MATCH': 0.4, - 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '2A'}}, { - 'DPA': {'UPRN': '6038171', 'UDPRN': '7845430', - 'ADDRESS': 'FLAT 29, BEVIN HOUSE, BUTLER STREET, LONDON, E2 0RW', - 'SUB_BUILDING_NAME': 'FLAT 29', 'BUILDING_NAME': 'BEVIN HOUSE', - 'THOROUGHFARE_NAME': 'BUTLER STREET', 'POST_TOWN': 'LONDON', 'POSTCODE': 'E2 0RW', - 'RPC': '2', 'X_COORDINATE': 535491.0, 'Y_COORDINATE': 182853.0, 'STATUS': 'APPROVED', - 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD06', - 'CLASSIFICATION_CODE_DESCRIPTION': 'Self Contained Flat (Includes Maisonette / ' - 'Apartment)', - 'LOCAL_CUSTODIAN_CODE': 5900, 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'TOWER HAMLETS', - 'COUNTRY_CODE': 'E', 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', - 'POSTAL_ADDRESS_CODE': 'D', - 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', - 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', - 'TOPOGRAPHY_LAYER_TOID': 'osgb1000041686692', 'PARENT_UPRN': '6128805', - 'LAST_UPDATE_DATE': '20/06/2022', 'ENTRY_DATE': '08/05/2003', - 'BLPU_STATE_DATE': '08/05/2003', 'LANGUAGE': 'EN', 'MATCH': 0.4, - 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '2B'}}, { - 'DPA': {'UPRN': '6038173', 'UDPRN': '7845432', - 'ADDRESS': 'FLAT 30, BEVIN HOUSE, BUTLER STREET, LONDON, E2 0RW', - 'SUB_BUILDING_NAME': 'FLAT 30', 'BUILDING_NAME': 'BEVIN HOUSE', - 'THOROUGHFARE_NAME': 'BUTLER STREET', 'POST_TOWN': 'LONDON', 'POSTCODE': 'E2 0RW', - 'RPC': '2', 'X_COORDINATE': 535491.0, 'Y_COORDINATE': 182853.0, 'STATUS': 'APPROVED', - 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD06', - 'CLASSIFICATION_CODE_DESCRIPTION': 'Self Contained Flat (Includes Maisonette / ' - 'Apartment)', - 'LOCAL_CUSTODIAN_CODE': 5900, 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'TOWER HAMLETS', - 'COUNTRY_CODE': 'E', 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', - 'POSTAL_ADDRESS_CODE': 'D', - 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', - 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', - 'TOPOGRAPHY_LAYER_TOID': 'osgb1000041686692', 'PARENT_UPRN': '6128805', - 'LAST_UPDATE_DATE': '20/06/2022', 'ENTRY_DATE': '08/05/2003', - 'BLPU_STATE_DATE': '08/05/2003', 'LANGUAGE': 'EN', 'MATCH': 0.4, - 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '2E'}}, { - 'DPA': {'UPRN': '6038174', 'UDPRN': '7845433', - 'ADDRESS': 'FLAT 31, BEVIN HOUSE, BUTLER STREET, LONDON, E2 0RW', - 'SUB_BUILDING_NAME': 'FLAT 31', 'BUILDING_NAME': 'BEVIN HOUSE', - 'THOROUGHFARE_NAME': 'BUTLER STREET', 'POST_TOWN': 'LONDON', 'POSTCODE': 'E2 0RW', - 'RPC': '2', 'X_COORDINATE': 535491.0, 'Y_COORDINATE': 182853.0, 'STATUS': 'APPROVED', - 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD06', - 'CLASSIFICATION_CODE_DESCRIPTION': 'Self Contained Flat (Includes Maisonette / ' - 'Apartment)', - 'LOCAL_CUSTODIAN_CODE': 5900, 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'TOWER HAMLETS', - 'COUNTRY_CODE': 'E', 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', - 'POSTAL_ADDRESS_CODE': 'D', - 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', - 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', - 'TOPOGRAPHY_LAYER_TOID': 'osgb1000041686692', 'PARENT_UPRN': '6128805', - 'LAST_UPDATE_DATE': '20/06/2022', 'ENTRY_DATE': '08/05/2003', - 'BLPU_STATE_DATE': '08/05/2003', 'LANGUAGE': 'EN', 'MATCH': 0.4, - 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '2F'}}, { - 'DPA': {'UPRN': '6038150', 'UDPRN': '7845409', - 'ADDRESS': 'FLAT 1, BEVIN HOUSE, BUTLER STREET, LONDON, E2 0RW', - 'SUB_BUILDING_NAME': 'FLAT 1', 'BUILDING_NAME': 'BEVIN HOUSE', - 'THOROUGHFARE_NAME': 'BUTLER STREET', 'POST_TOWN': 'LONDON', 'POSTCODE': 'E2 0RW', - 'RPC': '2', 'X_COORDINATE': 535491.0, 'Y_COORDINATE': 182853.0, 'STATUS': 'APPROVED', - 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD06', - 'CLASSIFICATION_CODE_DESCRIPTION': 'Self Contained Flat (Includes Maisonette / ' - 'Apartment)', - 'LOCAL_CUSTODIAN_CODE': 5900, 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'TOWER HAMLETS', - 'COUNTRY_CODE': 'E', 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', - 'POSTAL_ADDRESS_CODE': 'D', - 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', - 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', - 'TOPOGRAPHY_LAYER_TOID': 'osgb1000041686692', 'PARENT_UPRN': '6128805', - 'LAST_UPDATE_DATE': '20/06/2022', 'ENTRY_DATE': '08/05/2003', - 'BLPU_STATE_DATE': '08/05/2003', 'LANGUAGE': 'EN', 'MATCH': 0.4, - 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '1A'}}, { - 'DPA': {'UPRN': '6038176', 'UDPRN': '7845435', - 'ADDRESS': 'FLAT 4, BEVIN HOUSE, BUTLER STREET, LONDON, E2 0RW', - 'SUB_BUILDING_NAME': 'FLAT 4', 'BUILDING_NAME': 'BEVIN HOUSE', - 'THOROUGHFARE_NAME': 'BUTLER STREET', 'POST_TOWN': 'LONDON', 'POSTCODE': 'E2 0RW', - 'RPC': '2', 'X_COORDINATE': 535491.0, 'Y_COORDINATE': 182853.0, 'STATUS': 'APPROVED', - 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD06', - 'CLASSIFICATION_CODE_DESCRIPTION': 'Self Contained Flat (Includes Maisonette / ' - 'Apartment)', - 'LOCAL_CUSTODIAN_CODE': 5900, 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'TOWER HAMLETS', - 'COUNTRY_CODE': 'E', 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', - 'POSTAL_ADDRESS_CODE': 'D', - 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', - 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', - 'TOPOGRAPHY_LAYER_TOID': 'osgb1000041686692', 'PARENT_UPRN': '6128805', - 'LAST_UPDATE_DATE': '20/06/2022', 'ENTRY_DATE': '08/05/2003', - 'BLPU_STATE_DATE': '08/05/2003', 'LANGUAGE': 'EN', 'MATCH': 0.4, - 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '2H'}}, { - 'DPA': {'UPRN': '6038177', 'UDPRN': '7845436', - 'ADDRESS': 'FLAT 5, BEVIN HOUSE, BUTLER STREET, LONDON, E2 0RW', - 'SUB_BUILDING_NAME': 'FLAT 5', 'BUILDING_NAME': 'BEVIN HOUSE', - 'THOROUGHFARE_NAME': 'BUTLER STREET', 'POST_TOWN': 'LONDON', 'POSTCODE': 'E2 0RW', - 'RPC': '2', 'X_COORDINATE': 535491.0, 'Y_COORDINATE': 182853.0, 'STATUS': 'APPROVED', - 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD06', - 'CLASSIFICATION_CODE_DESCRIPTION': 'Self Contained Flat (Includes Maisonette / ' - 'Apartment)', - 'LOCAL_CUSTODIAN_CODE': 5900, 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'TOWER HAMLETS', - 'COUNTRY_CODE': 'E', 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', - 'POSTAL_ADDRESS_CODE': 'D', - 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', - 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', - 'TOPOGRAPHY_LAYER_TOID': 'osgb1000041686692', 'PARENT_UPRN': '6128805', - 'LAST_UPDATE_DATE': '20/06/2022', 'ENTRY_DATE': '08/05/2003', - 'BLPU_STATE_DATE': '08/05/2003', 'LANGUAGE': 'EN', 'MATCH': 0.4, - 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '2J'}}, { - 'DPA': {'UPRN': '6038178', 'UDPRN': '7845437', - 'ADDRESS': 'FLAT 6, BEVIN HOUSE, BUTLER STREET, LONDON, E2 0RW', - 'SUB_BUILDING_NAME': 'FLAT 6', 'BUILDING_NAME': 'BEVIN HOUSE', - 'THOROUGHFARE_NAME': 'BUTLER STREET', 'POST_TOWN': 'LONDON', 'POSTCODE': 'E2 0RW', - 'RPC': '2', 'X_COORDINATE': 535491.0, 'Y_COORDINATE': 182853.0, 'STATUS': 'APPROVED', - 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD06', - 'CLASSIFICATION_CODE_DESCRIPTION': 'Self Contained Flat (Includes Maisonette / ' - 'Apartment)', - 'LOCAL_CUSTODIAN_CODE': 5900, 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'TOWER HAMLETS', - 'COUNTRY_CODE': 'E', 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', - 'POSTAL_ADDRESS_CODE': 'D', - 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', - 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', - 'TOPOGRAPHY_LAYER_TOID': 'osgb1000041686692', 'PARENT_UPRN': '6128805', - 'LAST_UPDATE_DATE': '20/06/2022', 'ENTRY_DATE': '08/05/2003', - 'BLPU_STATE_DATE': '08/05/2003', 'LANGUAGE': 'EN', 'MATCH': 0.4, - 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '2L'}}, { - 'DPA': {'UPRN': '6038179', 'UDPRN': '7845438', - 'ADDRESS': 'FLAT 7, BEVIN HOUSE, BUTLER STREET, LONDON, E2 0RW', - 'SUB_BUILDING_NAME': 'FLAT 7', 'BUILDING_NAME': 'BEVIN HOUSE', - 'THOROUGHFARE_NAME': 'BUTLER STREET', 'POST_TOWN': 'LONDON', 'POSTCODE': 'E2 0RW', - 'RPC': '2', 'X_COORDINATE': 535491.0, 'Y_COORDINATE': 182853.0, 'STATUS': 'APPROVED', - 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD06', - 'CLASSIFICATION_CODE_DESCRIPTION': 'Self Contained Flat (Includes Maisonette / ' - 'Apartment)', - 'LOCAL_CUSTODIAN_CODE': 5900, 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'TOWER HAMLETS', - 'COUNTRY_CODE': 'E', 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', - 'POSTAL_ADDRESS_CODE': 'D', - 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', - 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', - 'TOPOGRAPHY_LAYER_TOID': 'osgb1000041686692', 'PARENT_UPRN': '6128805', - 'LAST_UPDATE_DATE': '20/06/2022', 'ENTRY_DATE': '08/05/2003', - 'BLPU_STATE_DATE': '08/05/2003', 'LANGUAGE': 'EN', 'MATCH': 0.4, - 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '2N'}}, { - 'DPA': {'UPRN': '6038180', 'UDPRN': '7845439', - 'ADDRESS': 'FLAT 8, BEVIN HOUSE, BUTLER STREET, LONDON, E2 0RW', - 'SUB_BUILDING_NAME': 'FLAT 8', 'BUILDING_NAME': 'BEVIN HOUSE', - 'THOROUGHFARE_NAME': 'BUTLER STREET', 'POST_TOWN': 'LONDON', 'POSTCODE': 'E2 0RW', - 'RPC': '2', 'X_COORDINATE': 535491.0, 'Y_COORDINATE': 182853.0, 'STATUS': 'APPROVED', - 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD06', - 'CLASSIFICATION_CODE_DESCRIPTION': 'Self Contained Flat (Includes Maisonette / ' - 'Apartment)', - 'LOCAL_CUSTODIAN_CODE': 5900, 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'TOWER HAMLETS', - 'COUNTRY_CODE': 'E', 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', - 'POSTAL_ADDRESS_CODE': 'D', - 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', - 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', - 'TOPOGRAPHY_LAYER_TOID': 'osgb1000041686692', 'PARENT_UPRN': '6128805', - 'LAST_UPDATE_DATE': '20/06/2022', 'ENTRY_DATE': '08/05/2003', - 'BLPU_STATE_DATE': '08/05/2003', 'LANGUAGE': 'EN', 'MATCH': 0.4, - 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '2P'}}, { - 'DPA': {'UPRN': '6038181', 'UDPRN': '7845440', - 'ADDRESS': 'FLAT 9, BEVIN HOUSE, BUTLER STREET, LONDON, E2 0RW', - 'SUB_BUILDING_NAME': 'FLAT 9', 'BUILDING_NAME': 'BEVIN HOUSE', - 'THOROUGHFARE_NAME': 'BUTLER STREET', 'POST_TOWN': 'LONDON', 'POSTCODE': 'E2 0RW', - 'RPC': '2', 'X_COORDINATE': 535491.0, 'Y_COORDINATE': 182853.0, 'STATUS': 'APPROVED', - 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD06', - 'CLASSIFICATION_CODE_DESCRIPTION': 'Self Contained Flat (Includes Maisonette / ' - 'Apartment)', - 'LOCAL_CUSTODIAN_CODE': 5900, 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'TOWER HAMLETS', - 'COUNTRY_CODE': 'E', 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', - 'POSTAL_ADDRESS_CODE': 'D', - 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', - 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', - 'TOPOGRAPHY_LAYER_TOID': 'osgb1000041686692', 'PARENT_UPRN': '6128805', - 'LAST_UPDATE_DATE': '20/06/2022', 'ENTRY_DATE': '08/05/2003', - 'BLPU_STATE_DATE': '08/05/2003', 'LANGUAGE': 'EN', 'MATCH': 0.4, - 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '2Q'}}, { - 'DPA': {'UPRN': '6038151', 'UDPRN': '7845410', - 'ADDRESS': 'FLAT 10, BEVIN HOUSE, BUTLER STREET, LONDON, E2 0RW', - 'SUB_BUILDING_NAME': 'FLAT 10', 'BUILDING_NAME': 'BEVIN HOUSE', - 'THOROUGHFARE_NAME': 'BUTLER STREET', 'POST_TOWN': 'LONDON', 'POSTCODE': 'E2 0RW', - 'RPC': '2', 'X_COORDINATE': 535491.0, 'Y_COORDINATE': 182853.0, 'STATUS': 'APPROVED', - 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD06', - 'CLASSIFICATION_CODE_DESCRIPTION': 'Self Contained Flat (Includes Maisonette / ' - 'Apartment)', - 'LOCAL_CUSTODIAN_CODE': 5900, 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'TOWER HAMLETS', - 'COUNTRY_CODE': 'E', 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', - 'POSTAL_ADDRESS_CODE': 'D', - 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', - 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', - 'TOPOGRAPHY_LAYER_TOID': 'osgb1000041686692', 'PARENT_UPRN': '6128805', - 'LAST_UPDATE_DATE': '20/06/2022', 'ENTRY_DATE': '08/05/2003', - 'BLPU_STATE_DATE': '08/05/2003', 'LANGUAGE': 'EN', 'MATCH': 0.3, - 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '1B'}}, { - 'DPA': {'UPRN': '6038152', 'UDPRN': '7845411', - 'ADDRESS': 'FLAT 11, BEVIN HOUSE, BUTLER STREET, LONDON, E2 0RW', - 'SUB_BUILDING_NAME': 'FLAT 11', 'BUILDING_NAME': 'BEVIN HOUSE', - 'THOROUGHFARE_NAME': 'BUTLER STREET', 'POST_TOWN': 'LONDON', 'POSTCODE': 'E2 0RW', - 'RPC': '2', 'X_COORDINATE': 535491.0, 'Y_COORDINATE': 182853.0, 'STATUS': 'APPROVED', - 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD06', - 'CLASSIFICATION_CODE_DESCRIPTION': 'Self Contained Flat (Includes Maisonette / ' - 'Apartment)', - 'LOCAL_CUSTODIAN_CODE': 5900, 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'TOWER HAMLETS', - 'COUNTRY_CODE': 'E', 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', - 'POSTAL_ADDRESS_CODE': 'D', - 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', - 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', - 'TOPOGRAPHY_LAYER_TOID': 'osgb1000041686692', 'PARENT_UPRN': '6128805', - 'LAST_UPDATE_DATE': '20/06/2022', 'ENTRY_DATE': '08/05/2003', - 'BLPU_STATE_DATE': '08/05/2003', 'LANGUAGE': 'EN', 'MATCH': 0.3, - 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '1D'}}, { - 'DPA': {'UPRN': '6038155', 'UDPRN': '7845414', - 'ADDRESS': 'FLAT 14, BEVIN HOUSE, BUTLER STREET, LONDON, E2 0RW', - 'SUB_BUILDING_NAME': 'FLAT 14', 'BUILDING_NAME': 'BEVIN HOUSE', - 'THOROUGHFARE_NAME': 'BUTLER STREET', 'POST_TOWN': 'LONDON', 'POSTCODE': 'E2 0RW', - 'RPC': '2', 'X_COORDINATE': 535491.0, 'Y_COORDINATE': 182853.0, 'STATUS': 'APPROVED', - 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD06', - 'CLASSIFICATION_CODE_DESCRIPTION': 'Self Contained Flat (Includes Maisonette / ' - 'Apartment)', - 'LOCAL_CUSTODIAN_CODE': 5900, 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'TOWER HAMLETS', - 'COUNTRY_CODE': 'E', 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', - 'POSTAL_ADDRESS_CODE': 'D', - 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', - 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', - 'TOPOGRAPHY_LAYER_TOID': 'osgb1000041686692', 'PARENT_UPRN': '6128805', - 'LAST_UPDATE_DATE': '20/06/2022', 'ENTRY_DATE': '08/05/2003', - 'BLPU_STATE_DATE': '08/05/2003', 'LANGUAGE': 'EN', 'MATCH': 0.3, - 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '1G'}}, { - 'DPA': {'UPRN': '6038156', 'UDPRN': '7845415', - 'ADDRESS': 'FLAT 15, BEVIN HOUSE, BUTLER STREET, LONDON, E2 0RW', - 'SUB_BUILDING_NAME': 'FLAT 15', 'BUILDING_NAME': 'BEVIN HOUSE', - 'THOROUGHFARE_NAME': 'BUTLER STREET', 'POST_TOWN': 'LONDON', 'POSTCODE': 'E2 0RW', - 'RPC': '2', 'X_COORDINATE': 535491.0, 'Y_COORDINATE': 182853.0, 'STATUS': 'APPROVED', - 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD06', - 'CLASSIFICATION_CODE_DESCRIPTION': 'Self Contained Flat (Includes Maisonette / ' - 'Apartment)', - 'LOCAL_CUSTODIAN_CODE': 5900, 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'TOWER HAMLETS', - 'COUNTRY_CODE': 'E', 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', - 'POSTAL_ADDRESS_CODE': 'D', - 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', - 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', - 'TOPOGRAPHY_LAYER_TOID': 'osgb1000041686692', 'PARENT_UPRN': '6128805', - 'LAST_UPDATE_DATE': '20/06/2022', 'ENTRY_DATE': '08/05/2003', - 'BLPU_STATE_DATE': '08/05/2003', 'LANGUAGE': 'EN', 'MATCH': 0.3, - 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '1H'}}, { - 'DPA': {'UPRN': '6038157', 'UDPRN': '7845416', - 'ADDRESS': 'FLAT 16, BEVIN HOUSE, BUTLER STREET, LONDON, E2 0RW', - 'SUB_BUILDING_NAME': 'FLAT 16', 'BUILDING_NAME': 'BEVIN HOUSE', - 'THOROUGHFARE_NAME': 'BUTLER STREET', 'POST_TOWN': 'LONDON', 'POSTCODE': 'E2 0RW', - 'RPC': '2', 'X_COORDINATE': 535491.0, 'Y_COORDINATE': 182853.0, 'STATUS': 'APPROVED', - 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD06', - 'CLASSIFICATION_CODE_DESCRIPTION': 'Self Contained Flat (Includes Maisonette / ' - 'Apartment)', - 'LOCAL_CUSTODIAN_CODE': 5900, 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'TOWER HAMLETS', - 'COUNTRY_CODE': 'E', 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', - 'POSTAL_ADDRESS_CODE': 'D', - 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', - 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', - 'TOPOGRAPHY_LAYER_TOID': 'osgb1000041686692', 'PARENT_UPRN': '6128805', - 'LAST_UPDATE_DATE': '20/06/2022', 'ENTRY_DATE': '08/05/2003', - 'BLPU_STATE_DATE': '08/05/2003', 'LANGUAGE': 'EN', 'MATCH': 0.3, - 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '1J'}}, { - 'DPA': {'UPRN': '6038158', 'UDPRN': '7845417', - 'ADDRESS': 'FLAT 17, BEVIN HOUSE, BUTLER STREET, LONDON, E2 0RW', - 'SUB_BUILDING_NAME': 'FLAT 17', 'BUILDING_NAME': 'BEVIN HOUSE', - 'THOROUGHFARE_NAME': 'BUTLER STREET', 'POST_TOWN': 'LONDON', 'POSTCODE': 'E2 0RW', - 'RPC': '2', 'X_COORDINATE': 535491.0, 'Y_COORDINATE': 182853.0, 'STATUS': 'APPROVED', - 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD06', - 'CLASSIFICATION_CODE_DESCRIPTION': 'Self Contained Flat (Includes Maisonette / ' - 'Apartment)', - 'LOCAL_CUSTODIAN_CODE': 5900, 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'TOWER HAMLETS', - 'COUNTRY_CODE': 'E', 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', - 'POSTAL_ADDRESS_CODE': 'D', - 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', - 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', - 'TOPOGRAPHY_LAYER_TOID': 'osgb1000041686692', 'PARENT_UPRN': '6128805', - 'LAST_UPDATE_DATE': '20/06/2022', 'ENTRY_DATE': '08/05/2003', - 'BLPU_STATE_DATE': '08/05/2003', 'LANGUAGE': 'EN', 'MATCH': 0.3, - 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '1L'}}, { - 'DPA': {'UPRN': '6038159', 'UDPRN': '7845418', - 'ADDRESS': 'FLAT 18, BEVIN HOUSE, BUTLER STREET, LONDON, E2 0RW', - 'SUB_BUILDING_NAME': 'FLAT 18', 'BUILDING_NAME': 'BEVIN HOUSE', - 'THOROUGHFARE_NAME': 'BUTLER STREET', 'POST_TOWN': 'LONDON', 'POSTCODE': 'E2 0RW', - 'RPC': '2', 'X_COORDINATE': 535491.0, 'Y_COORDINATE': 182853.0, 'STATUS': 'APPROVED', - 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD06', - 'CLASSIFICATION_CODE_DESCRIPTION': 'Self Contained Flat (Includes Maisonette / ' - 'Apartment)', - 'LOCAL_CUSTODIAN_CODE': 5900, 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'TOWER HAMLETS', - 'COUNTRY_CODE': 'E', 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', - 'POSTAL_ADDRESS_CODE': 'D', - 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', - 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', - 'TOPOGRAPHY_LAYER_TOID': 'osgb1000041686692', 'PARENT_UPRN': '6128805', - 'LAST_UPDATE_DATE': '20/06/2022', 'ENTRY_DATE': '08/05/2003', - 'BLPU_STATE_DATE': '08/05/2003', 'LANGUAGE': 'EN', 'MATCH': 0.3, - 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '1N'}}, { - 'DPA': {'UPRN': '6038160', 'UDPRN': '7845419', - 'ADDRESS': 'FLAT 19, BEVIN HOUSE, BUTLER STREET, LONDON, E2 0RW', - 'SUB_BUILDING_NAME': 'FLAT 19', 'BUILDING_NAME': 'BEVIN HOUSE', - 'THOROUGHFARE_NAME': 'BUTLER STREET', 'POST_TOWN': 'LONDON', 'POSTCODE': 'E2 0RW', - 'RPC': '2', 'X_COORDINATE': 535491.0, 'Y_COORDINATE': 182853.0, 'STATUS': 'APPROVED', - 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD06', - 'CLASSIFICATION_CODE_DESCRIPTION': 'Self Contained Flat (Includes Maisonette / ' - 'Apartment)', - 'LOCAL_CUSTODIAN_CODE': 5900, 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'TOWER HAMLETS', - 'COUNTRY_CODE': 'E', 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', - 'POSTAL_ADDRESS_CODE': 'D', - 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', - 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', - 'TOPOGRAPHY_LAYER_TOID': 'osgb1000041686692', 'PARENT_UPRN': '6128805', - 'LAST_UPDATE_DATE': '20/06/2022', 'ENTRY_DATE': '08/05/2003', - 'BLPU_STATE_DATE': '08/05/2003', 'LANGUAGE': 'EN', 'MATCH': 0.3, - 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '1P'}}, { - 'DPA': {'UPRN': '3040038989', 'UDPRN': '16547514', - 'ADDRESS': '23, BUTLER CLOSE, CROPWELL BUTLER, NOTTINGHAM, NG12 3AF', - 'BUILDING_NUMBER': '23', 'THOROUGHFARE_NAME': 'BUTLER CLOSE', - 'DEPENDENT_LOCALITY': 'CROPWELL BUTLER', 'POST_TOWN': 'NOTTINGHAM', - 'POSTCODE': 'NG12 3AF', 'RPC': '2', 'X_COORDINATE': 468456.0, 'Y_COORDINATE': 336688.0, - 'STATUS': 'APPROVED', 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD03', - 'CLASSIFICATION_CODE_DESCRIPTION': 'Semi-Detached', 'LOCAL_CUSTODIAN_CODE': 3040, - 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'RUSHCLIFFE', 'COUNTRY_CODE': 'E', - 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', 'POSTAL_ADDRESS_CODE': 'D', - 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', - 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', - 'TOPOGRAPHY_LAYER_TOID': 'osgb1000023504919', 'LAST_UPDATE_DATE': '01/10/2019', - 'ENTRY_DATE': '13/12/2000', 'BLPU_STATE_DATE': '13/12/2000', 'LANGUAGE': 'EN', - 'MATCH': 0.3, 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '1U'}}, { - 'DPA': {'UPRN': '200003357053', 'UDPRN': '21443062', - 'ADDRESS': 'FLAT 23, PETER BUTLER HOUSE, WOLSELEY STREET, LONDON, SE1 2BJ', - 'SUB_BUILDING_NAME': 'FLAT 23', 'BUILDING_NAME': 'PETER BUTLER HOUSE', - 'THOROUGHFARE_NAME': 'WOLSELEY STREET', 'POST_TOWN': 'LONDON', 'POSTCODE': 'SE1 2BJ', - 'RPC': '2', 'X_COORDINATE': 534088.0, 'Y_COORDINATE': 179747.0, 'STATUS': 'APPROVED', - 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD06', - 'CLASSIFICATION_CODE_DESCRIPTION': 'Self Contained Flat (Includes Maisonette / ' - 'Apartment)', - 'LOCAL_CUSTODIAN_CODE': 5840, 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'SOUTHWARK', - 'COUNTRY_CODE': 'E', 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', - 'POSTAL_ADDRESS_CODE': 'D', - 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', - 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', - 'TOPOGRAPHY_LAYER_TOID': 'osgb1000006172980', 'PARENT_UPRN': '200003500897', - 'LAST_UPDATE_DATE': '10/02/2016', 'ENTRY_DATE': '20/05/2003', - 'BLPU_STATE_DATE': '08/04/2009', 'LANGUAGE': 'EN', 'MATCH': 0.3, - 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '1U'}}, { - 'DPA': {'UPRN': '100100221882', 'UDPRN': '4625510', - 'ADDRESS': '23, BUTLER STREET, SHOTTON, GLANNAU DYFRDWY, CH5 1AP', - 'BUILDING_NUMBER': '23', 'THOROUGHFARE_NAME': 'BUTLER STREET', - 'DEPENDENT_LOCALITY': 'SHOTTON', 'POST_TOWN': 'GLANNAU DYFRDWY', 'POSTCODE': 'CH5 1AP', - 'RPC': '1', 'X_COORDINATE': 330758.0, 'Y_COORDINATE': 368483.0, 'STATUS': 'APPROVED', - 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD04', - 'CLASSIFICATION_CODE_DESCRIPTION': 'Terraced', 'LOCAL_CUSTODIAN_CODE': 6835, - 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'FLINTSHIRE', 'COUNTRY_CODE': 'W', - 'COUNTRY_CODE_DESCRIPTION': 'This record is within Wales', 'POSTAL_ADDRESS_CODE': 'D', - 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', - 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', - 'TOPOGRAPHY_LAYER_TOID': 'osgb1000034722275', 'LAST_UPDATE_DATE': '16/05/2022', - 'ENTRY_DATE': '10/05/2001', 'BLPU_STATE_DATE': '10/05/2001', 'LANGUAGE': 'CY', - 'MATCH': 0.3, 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '1U'}}, { - 'DPA': {'UPRN': '200001132475', 'UDPRN': '26597335', - 'ADDRESS': '23 MORRIS HOUSE, BUTLER STREET, WIGAN, WN1 3QY', - 'BUILDING_NAME': '23 MORRIS HOUSE', 'THOROUGHFARE_NAME': 'BUTLER STREET', - 'POST_TOWN': 'WIGAN', 'POSTCODE': 'WN1 3QY', 'RPC': '2', 'X_COORDINATE': 358656.0, - 'Y_COORDINATE': 405727.0, 'STATUS': 'APPROVED', 'LOGICAL_STATUS_CODE': '1', - 'CLASSIFICATION_CODE': 'RD06', - 'CLASSIFICATION_CODE_DESCRIPTION': 'Self Contained Flat (Includes Maisonette / ' - 'Apartment)', - 'LOCAL_CUSTODIAN_CODE': 4250, 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'WIGAN', - 'COUNTRY_CODE': 'E', 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', - 'POSTAL_ADDRESS_CODE': 'D', - 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', - 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', - 'TOPOGRAPHY_LAYER_TOID': 'osgb1000038141883', 'PARENT_UPRN': '200001174781', - 'LAST_UPDATE_DATE': '10/02/2016', 'ENTRY_DATE': '15/01/2002', - 'BLPU_STATE_DATE': '15/01/2002', 'LANGUAGE': 'EN', 'MATCH': 0.3, - 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '1U'}}, { - 'DPA': {'UPRN': '100021167639', 'UDPRN': '15753729', - 'ADDRESS': 'FLAT 23, JOYCE BUTLER HOUSE, COMMERCE ROAD, LONDON, N22 8EA', - 'SUB_BUILDING_NAME': 'FLAT 23', 'BUILDING_NAME': 'JOYCE BUTLER HOUSE', - 'THOROUGHFARE_NAME': 'COMMERCE ROAD', 'POST_TOWN': 'LONDON', 'POSTCODE': 'N22 8EA', - 'RPC': '2', 'X_COORDINATE': 530743.0, 'Y_COORDINATE': 190869.0, 'STATUS': 'APPROVED', - 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD06', - 'CLASSIFICATION_CODE_DESCRIPTION': 'Self Contained Flat (Includes Maisonette / ' - 'Apartment)', - 'LOCAL_CUSTODIAN_CODE': 5420, - 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'LONDON BOROUGH OF HARINGEY', 'COUNTRY_CODE': 'E', - 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', 'POSTAL_ADDRESS_CODE': 'D', - 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', - 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', - 'TOPOGRAPHY_LAYER_TOID': 'osgb1000005603686', 'PARENT_UPRN': '100023656717', - 'LAST_UPDATE_DATE': '16/05/2022', 'ENTRY_DATE': '31/03/2004', - 'BLPU_STATE_DATE': '24/03/2004', 'LANGUAGE': 'EN', 'MATCH': 0.3, - 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '1U'}}, { - 'DPA': {'UPRN': '200001825227', 'UDPRN': '1679218', - 'ADDRESS': 'BUTLER HOUSE, BUTLER LANE, BAILDON, SHIPLEY, BD17 6PG', - 'BUILDING_NAME': 'BUTLER HOUSE', 'THOROUGHFARE_NAME': 'BUTLER LANE', - 'DEPENDENT_LOCALITY': 'BAILDON', 'POST_TOWN': 'SHIPLEY', 'POSTCODE': 'BD17 6PG', - 'RPC': '1', 'X_COORDINATE': 415603.0, 'Y_COORDINATE': 439584.0, 'STATUS': 'APPROVED', - 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD03', - 'CLASSIFICATION_CODE_DESCRIPTION': 'Semi-Detached', 'LOCAL_CUSTODIAN_CODE': 4705, - 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'BRADFORD MDC', 'COUNTRY_CODE': 'E', - 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', 'POSTAL_ADDRESS_CODE': 'D', - 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', - 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', - 'TOPOGRAPHY_LAYER_TOID': 'osgb1000031973762', 'LAST_UPDATE_DATE': '10/02/2016', - 'ENTRY_DATE': '02/07/2002', 'BLPU_STATE_DATE': '02/07/2002', 'LANGUAGE': 'EN', - 'MATCH': 0.3, 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '1B'}}, { - 'DPA': {'UPRN': '202082612', 'UDPRN': '17825144', - 'ADDRESS': 'FLAT 23, HUGH GAITSKELL HOUSE, BUTLER ROAD, LONDON, NW10 9RT', - 'SUB_BUILDING_NAME': 'FLAT 23', 'BUILDING_NAME': 'HUGH GAITSKELL HOUSE', - 'THOROUGHFARE_NAME': 'BUTLER ROAD', 'POST_TOWN': 'LONDON', 'POSTCODE': 'NW10 9RT', - 'RPC': '2', 'X_COORDINATE': 521511.0, 'Y_COORDINATE': 184340.0, 'STATUS': 'APPROVED', - 'LOGICAL_STATUS_CODE': '1', 'CLASSIFICATION_CODE': 'RD06', - 'CLASSIFICATION_CODE_DESCRIPTION': 'Self Contained Flat (Includes Maisonette / ' - 'Apartment)', - 'LOCAL_CUSTODIAN_CODE': 5150, 'LOCAL_CUSTODIAN_CODE_DESCRIPTION': 'BRENT', - 'COUNTRY_CODE': 'E', 'COUNTRY_CODE_DESCRIPTION': 'This record is within England', - 'POSTAL_ADDRESS_CODE': 'D', - 'POSTAL_ADDRESS_CODE_DESCRIPTION': 'A record which is linked to PAF', - 'BLPU_STATE_CODE': '2', 'BLPU_STATE_CODE_DESCRIPTION': 'In use', - 'TOPOGRAPHY_LAYER_TOID': 'osgb1000042025598', 'PARENT_UPRN': '202191825', - 'LAST_UPDATE_DATE': '10/02/2016', 'ENTRY_DATE': '13/09/1979', - 'BLPU_STATE_DATE': '10/08/2007', 'LANGUAGE': 'EN', 'MATCH': 0.3, - 'MATCH_DESCRIPTION': 'NO MATCH', 'DELIVERY_POINT_SUFFIX': '1U'}}] - - # TEMP - # from dotenv import load_dotenv - # from pathlib import Path - # ENV_FILE = Path(__file__).parent / "etl" / "eligibility" / "ha_15_32" / ".env" - # load_dotenv(ENV_FILE) - # self = SearchEpc(address1=address1, postcode=postcode) - # From the ordnance survey data, we want to determine the property type and then use only similar property # types for the estimation - property_os_place = os_data[0]["DPA"] - - os_property_type, os_built_form = self.ordnance_survey_client.parse_classification_code( - property_os_place["CLASSIFICATION_CODE"] - ) # We firstly get the first 100 properties for the postcode, from the EPC api - epc_reponse = self.client.domestic.search(params={"postcode": self.postcode}, size=100) - epc_data = pd.DataFrame(epc_reponse["rows"]) + epc_reponse = self.get_epc(params={"postcode": self.postcode}, size=100) + if epc_reponse["status"] != 200: + raise Exception("Unable to find postcode data - investigate me") + + epc_data = pd.DataFrame(self.data["rows"]) # We now get the newest EPC per uprn epc_data = epc_data.sort_values("lodgement-datetime", ascending=False).groupby("uprn").head(1) @@ -2029,14 +414,14 @@ class SearchEpc: # We check if the EPC built form is one of the terraced values. If the os_built_form is semi-detached, # then we set it to be end terraced - if os_built_form == "Semi-Detached" and epc_built_form in ["End-Terraced", "Mid-Terraced"]: + if built_form == "Semi-Detached" and epc_built_form in ["End-Terraced", "Mid-Terraced"]: estimation_built_form = "End-Terraced" - elif os_built_form == "": + elif built_form == "": estimation_built_form = epc_built_form else: - estimation_built_form = os_built_form + estimation_built_form = built_form - estimation_property_type = epc_property_type if os_property_type == "" else os_property_type + estimation_property_type = epc_property_type if property_type == "" else property_type # We filter the EPC data on just the property types we want to use epc_data = epc_data[ @@ -2073,6 +458,10 @@ class SearchEpc: estimated_epc[key] = estimated_value + estimated_epc["postcode"] = self.postcode + # Indicate that this epc was estimated + estimated_epc["estimated"] = True + return estimated_epc @staticmethod @@ -2104,3 +493,27 @@ class SearchEpc: If there is no EPC data, the epc data will be estimated based on the surrounding properties """ + + # Step 1: use the epc api to find the property and uprn + response = self.get_epc() + + if response["status"] == 200: + self.newest_epc, self.older_epcs, self.full_sap_epc = self.retrieve(address=self.full_address) + return + + # Step 2: If we don't have an EPC, we use the ordnance survey api to find the uprn + os_response = self.ordnance_survey_client.get_places_api() + + if os_response["status"] != 200: + # Investigate this if it happens + raise Exception("Unable to find property - investigate me") + + # Step 3: Now that we have a urpn, do another check against the epc api, this time searching with the uprn + self.uprn = self.ordnance_survey_client.results[0]["DPA"]["UPRN"] + response = self.get_epc() + if response["status"] == 200: + self.newest_epc, self.older_epcs, self.full_sap_epc = self.retrieve(address=self.full_address) + return + + # Step 4: If we still don't have an EPC, we estimate the EPC data + estimated_epc = self.estimate_epc() diff --git a/backend/app/plan/router.py b/backend/app/plan/router.py index 233a18cb..31e7b023 100644 --- a/backend/app/plan/router.py +++ b/backend/app/plan/router.py @@ -75,15 +75,16 @@ async def trigger_plan(body: PlanTriggerRequest): # We validate each record in the file. If the record is NOT valid, we need to handle this accordingly # TODO: implment validation. We should also standardise postcode and address in some fashion as # a postcode of abcdef would be considered different to ABCDEF - # TODO: Search for the property + epc_searcher = SearchEpc( - address1=config['address'], + address1=config["address"], postcode=config["postcode"], auth_token=get_settings().EPC_AUTH_TOKEN, os_api_key=get_settings().ORDNANCE_SURVEY_API_KEY ) epc_searcher.find_property() - # Create a record in db + # Create a record in db - TODO: Create this using the epc address and postcode and validate with + # uprn property_id, is_new = create_property( session, portfolio_id=body.portfolio_id, address=config['address'], postcode=config['postcode'] ) @@ -102,10 +103,10 @@ async def trigger_plan(body: PlanTriggerRequest): input_properties.append( Property( - postcode=config['postcode'], - address1=config['address'], - epc_client=epc_client, - id=property_id + id=property_id, + data=epc_searcher.newest_epc, + old_data=epc_searcher.older_epcs, + full_sap_epc=epc_searcher.full_sap_epc, ) ) From 19951b9ca143a522a4787359546a6225eb2ac96c Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Tue, 2 Jan 2024 14:27:54 +0000 Subject: [PATCH 146/526] Added address formatting --- backend/OrdnanceSurvey.py | 38 ++++++++++++++------ backend/SearchEpc.py | 72 +++++++++++++++++++++++++++++--------- backend/app/plan/router.py | 5 --- 3 files changed, 83 insertions(+), 32 deletions(-) diff --git a/backend/OrdnanceSurvey.py b/backend/OrdnanceSurvey.py index 1c2ed90f..837e76bd 100644 --- a/backend/OrdnanceSurvey.py +++ b/backend/OrdnanceSurvey.py @@ -25,6 +25,28 @@ class OrdnanceSuveyClient: self.most_relevant_result = None self.property_type = None self.built_form = None + # This will be postcode and address, as returned by the ordnance survey + self.address_os = None + self.postcode_os = None + + def set_places_address(self): + """ + Given a response from the places api, this function will set the address and postcode of the property + """ + + if self.most_relevant_result is None: + raise ValueError("No results found - run get_places_api first") + + self.address_os = self.most_relevant_result["ADDRESS"] + self.postcode_os = self.most_relevant_result["POSTCODE"] + # We strip out the postcode from the address as this is already stored separately + self.address_os = self.address_os.replace(self.postcode_os, "").strip() + # Remove trailing comma + self.address_os = self.address_os.rstrip(",").strip() + # Convert to title case + self.address_os = self.address_os.title() + # Make sure postcode is upper case + self.postcode_os = self.postcode_os.upper() @lru_cache(maxsize=128) def get_places_api(self): @@ -47,17 +69,15 @@ class OrdnanceSuveyClient: # Extract some details about the best match self.most_relevant_result = self.results[0]["DPA"] - self.property_type, self.built_form = self.parse_classification_code( - self.most_relevant_result["CLASSIFICATION_CODE"] - ) + self.parse_classification_code(self.most_relevant_result["CLASSIFICATION_CODE"]) + self.set_places_address() - return else: logger.info("Could not find any results for the provided address and postcode") + return {"status": response.status_code} - @staticmethod - def parse_classification_code(classification_code: str): + def parse_classification_code(self, classification_code: str): """ This function will convert the classification code, returned by the OS places api, to a property type that is compatible with the EPC database. @@ -81,7 +101,5 @@ class OrdnanceSuveyClient: } mapped = value_map.get(classification_code, {}) - property_type = mapped.get("property_type", "") - built_form = mapped.get("built_form", "") - - return property_type, built_form + self.property_type = mapped.get("property_type", "") + self.built_form = mapped.get("built_form", "") diff --git a/backend/SearchEpc.py b/backend/SearchEpc.py index cd390b5e..d40a40b5 100644 --- a/backend/SearchEpc.py +++ b/backend/SearchEpc.py @@ -177,6 +177,10 @@ class SearchEpc: self.older_epcs = None self.full_sap_epc = None + # These are the address and postcode values, which we store in the database + self.address_clean = None + self.postcode_clean = None + self.size = size if size is not None else 25 @classmethod @@ -239,7 +243,7 @@ class SearchEpc: # We use the direct call method inside, since we need to implement uprn as a valid # parameter for the search function url = os.path.join(self.client.domestic.host, "search") - response = self.client.domestic.call(method="get", url=url, params=params, size=size) + response = self.client.domestic.call(method="get", url=url, params=params) else: response = self.client.domestic.search(params=params, size=size) @@ -312,7 +316,24 @@ class SearchEpc: return rows - def retrieve(self, property_type=None, address=None): + @staticmethod + def format_address(newest_epc): + """ + Format address and postcode for storage in the database + """ + postcode = newest_epc["postcode"] + address = newest_epc["address"] + + # Format them + address = address.replace(postcode, "").strip() + address = address.rstrip(",").strip() + address = address.title() + + postcode = postcode.upper() + + return address, postcode + + def extract_epc_data(self, property_type=None, address=None): """ Given a successful search, this method will format the data and return it @@ -338,7 +359,10 @@ class SearchEpc: # Finally, we identify the newest epc and the rest, and then return newest_epc, older_epcs = self.filter_newest_epc(list_of_epcs=rows) - return newest_epc, older_epcs, full_sap_epc + # Retrieve postcode and address + address_epc, postcode_epc = self.format_address(newest_epc=newest_epc) + + return newest_epc, older_epcs, full_sap_epc, address_epc, postcode_epc @staticmethod def filter_newest_epc(list_of_epcs: List): @@ -381,6 +405,10 @@ class SearchEpc: Note - do we have postcodes with just a single address? We would need to use a different approach to find the closest homes + :param property_type: This is the property type of the property we are estimating, that can be retrieved from + the ordnance survey api + :param built_form: This is the built form of the property we are estimating, that can be retrieved from + the ordnance survey api :return: """ @@ -400,14 +428,14 @@ class SearchEpc: # For each record, parse the house number. We'll use this to identify the closest properties epc_data["house_number"] = epc_data["address"].apply(lambda add1: self.get_house_number(add1)) - # We convert the house number fo a purely numeric format - therefore + # We convert the house number fo a purely numeric format - This numeric house number will be used as + # a distance weight when estimating the EPC epc_data["numeric_house_number"] = epc_data["house_number"].apply( lambda house_num: self.extract_numeric_housenumber_part(house_num) ) - epc_data["house_number_distance"] = abs( - epc_data["numeric_house_number"] - self.numeric_house_number - ) + epc_data["house_number_distance"] = abs(epc_data["numeric_house_number"] - self.numeric_house_number) + epc_data["weight"] = 1 / epc_data["house_number_distance"] epc_built_form = self._get_epc_mode(col="built-form", epc_data=epc_data) epc_property_type = self._get_epc_mode(col="property-type", epc_data=epc_data) @@ -428,13 +456,8 @@ class SearchEpc: (epc_data["built-form"] == estimation_built_form) & (epc_data["property-type"] == estimation_property_type) ] - epc_data["weight"] = 1 / epc_data["house_number_distance"] - - # We use house_number_distance as a weighting where closer homes are upweighted when interpolating - # For each attribute, we need to determine the datatype and use an appropriate method - # to interpolate. - + # to estimate. estimated_epc = {} for key, vartype in vartypes.items(): epc_data[key] = np.where(pd.isnull(epc_data[key]), None, epc_data[key]) @@ -498,7 +521,9 @@ class SearchEpc: response = self.get_epc() if response["status"] == 200: - self.newest_epc, self.older_epcs, self.full_sap_epc = self.retrieve(address=self.full_address) + ( + self.newest_epc, self.older_epcs, self.full_sap_epc, self.address_clean, self.postcode_clean + ) = self.extract_epc_data(address=self.full_address) return # Step 2: If we don't have an EPC, we use the ordnance survey api to find the uprn @@ -509,11 +534,24 @@ class SearchEpc: raise Exception("Unable to find property - investigate me") # Step 3: Now that we have a urpn, do another check against the epc api, this time searching with the uprn - self.uprn = self.ordnance_survey_client.results[0]["DPA"]["UPRN"] + self.uprn = self.ordnance_survey_client.most_relevant_result["UPRN"] response = self.get_epc() if response["status"] == 200: - self.newest_epc, self.older_epcs, self.full_sap_epc = self.retrieve(address=self.full_address) + ( + self.newest_epc, self.older_epcs, self.full_sap_epc, self.address_clean, self.postcode_clean + ) = self.extract_epc_data(address=self.ordnance_survey_client.most_relevant_result["ADDRESS"]) return # Step 4: If we still don't have an EPC, we estimate the EPC data - estimated_epc = self.estimate_epc() + estimated_epc = self.estimate_epc( + property_type=self.ordnance_survey_client.property_type, + built_form=self.ordnance_survey_client.built_form + ) + self.newest_epc = estimated_epc + self.older_epcs = [] + self.full_sap_epc = {} + + # Finally, set a standardised address 1 and postcode + self.address_clean = self.ordnance_survey_client.address_os + self.postcode_clean = self.ordnance_survey_client.postcode_os + return diff --git a/backend/app/plan/router.py b/backend/app/plan/router.py index 31e7b023..1cd3317d 100644 --- a/backend/app/plan/router.py +++ b/backend/app/plan/router.py @@ -2,7 +2,6 @@ from datetime import datetime import numpy as np import pandas as pd -from epc_api.client import EpcClient from backend.SearchEpc import SearchEpc from fastapi import APIRouter, Depends from sqlalchemy.exc import IntegrityError, OperationalError @@ -60,7 +59,6 @@ async def trigger_plan(body: PlanTriggerRequest): try: session.begin() logger.info("Getting the inputs") - epc_client = EpcClient(auth_token=get_settings().EPC_AUTH_TOKEN) plan_input = read_csv_from_s3(bucket_name=get_settings().PLAN_TRIGGER_BUCKET, filepath=body.trigger_file_path) uprn_filenames = read_dataframe_from_s3_parquet( @@ -73,8 +71,6 @@ async def trigger_plan(body: PlanTriggerRequest): input_properties = [] for config in plan_input: # We validate each record in the file. If the record is NOT valid, we need to handle this accordingly - # TODO: implment validation. We should also standardise postcode and address in some fashion as - # a postcode of abcdef would be considered different to ABCDEF epc_searcher = SearchEpc( address1=config["address"], @@ -91,7 +87,6 @@ async def trigger_plan(body: PlanTriggerRequest): # if a new record was not created, we don't produduce recommendations if not is_new: continue - # TODO: Need to add heat demand target create_property_targets( session, From c11eb1abaaed5364e45d798251b89f8e5edf5fee Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Tue, 2 Jan 2024 14:32:15 +0000 Subject: [PATCH 147/526] cleaned up the temp filling of missing uprn --- backend/SearchEpc.py | 1 + backend/app/plan/router.py | 16 +++------------- 2 files changed, 4 insertions(+), 13 deletions(-) diff --git a/backend/SearchEpc.py b/backend/SearchEpc.py index d40a40b5..c8008906 100644 --- a/backend/SearchEpc.py +++ b/backend/SearchEpc.py @@ -482,6 +482,7 @@ class SearchEpc: estimated_epc[key] = estimated_value estimated_epc["postcode"] = self.postcode + estimated_epc["uprn"] = self.uprn # Indicate that this epc was estimated estimated_epc["estimated"] = True diff --git a/backend/app/plan/router.py b/backend/app/plan/router.py index 1cd3317d..a0f6da7f 100644 --- a/backend/app/plan/router.py +++ b/backend/app/plan/router.py @@ -79,10 +79,9 @@ async def trigger_plan(body: PlanTriggerRequest): os_api_key=get_settings().ORDNANCE_SURVEY_API_KEY ) epc_searcher.find_property() - # Create a record in db - TODO: Create this using the epc address and postcode and validate with - # uprn + # Create a record in db property_id, is_new = create_property( - session, portfolio_id=body.portfolio_id, address=config['address'], postcode=config['postcode'] + session, body.portfolio_id, epc_searcher.address_clean, epc_searcher.postcode_clean ) # if a new record was not created, we don't produduce recommendations if not is_new: @@ -108,9 +107,8 @@ async def trigger_plan(body: PlanTriggerRequest): if not input_properties: return Response(status_code=204) - logger.info("Getting EPC, and spatial data") + logger.info("Getting spatial data") for p in input_properties: - p.search_address_epc() p.set_year_built() p.get_spatial_data(uprn_filenames) @@ -151,9 +149,6 @@ async def trigger_plan(body: PlanTriggerRequest): # Finally, we'll prepare data for predicting the impact on SAP data_processor = DataProcessor(None, newdata=True) data_processor.insert_data(pd.DataFrame([p.get_model_data()])) - # TODO: Temp - if data_processor.data["UPRN"].values[0] == "": - data_processor.data["UPRN"] = 0 data_processor.pre_process() @@ -515,11 +510,6 @@ async def trigger_plan(body: PlanTriggerRequest): update_or_create_property_spatial_details(session, p.uprn, p.spatial) - # TODO: TEMP - if p.data["uprn"] == "": - print("Get rid of me!") - p.data["uprn"] = 0 - property_data = p.get_full_property_data() update_property_data( session, property_id=p.id, portfolio_id=body.portfolio_id, property_data=property_data From e82fa9c11f224878ce28c83ea0bb500cd21e3934 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Tue, 2 Jan 2024 15:44:42 +0000 Subject: [PATCH 148/526] minor changes to EpcSearcher --- backend/Property.py | 1 + backend/SearchEpc.py | 2 +- backend/app/plan/router.py | 1 - 3 files changed, 2 insertions(+), 2 deletions(-) diff --git a/backend/Property.py b/backend/Property.py index 5d465ce9..27b1e8f1 100644 --- a/backend/Property.py +++ b/backend/Property.py @@ -240,6 +240,7 @@ class Property(Definitions): if self.data["property-type"] == "Flat": self.data["built-form"] = "Semi-Detached" + self.set_year_built() self.set_energy() self.set_ventilation() self.set_solar_pv() diff --git a/backend/SearchEpc.py b/backend/SearchEpc.py index c8008906..087710b8 100644 --- a/backend/SearchEpc.py +++ b/backend/SearchEpc.py @@ -540,7 +540,7 @@ class SearchEpc: if response["status"] == 200: ( self.newest_epc, self.older_epcs, self.full_sap_epc, self.address_clean, self.postcode_clean - ) = self.extract_epc_data(address=self.ordnance_survey_client.most_relevant_result["ADDRESS"]) + ) = self.extract_epc_data() return # Step 4: If we still don't have an EPC, we estimate the EPC data diff --git a/backend/app/plan/router.py b/backend/app/plan/router.py index a0f6da7f..c7adfeb7 100644 --- a/backend/app/plan/router.py +++ b/backend/app/plan/router.py @@ -109,7 +109,6 @@ async def trigger_plan(body: PlanTriggerRequest): logger.info("Getting spatial data") for p in input_properties: - p.set_year_built() p.get_spatial_data(uprn_filenames) # The materials data could be cached or local so we don't need to make From 68458f1b9193752d969d29440f5c8fdecdb8d561 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Tue, 2 Jan 2024 15:45:42 +0000 Subject: [PATCH 149/526] Added uprn to create_property --- backend/app/db/functions/property_functions.py | 5 +++-- backend/app/plan/router.py | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/backend/app/db/functions/property_functions.py b/backend/app/db/functions/property_functions.py index 93dc0c49..88b4e87d 100644 --- a/backend/app/db/functions/property_functions.py +++ b/backend/app/db/functions/property_functions.py @@ -11,7 +11,7 @@ from backend.app.db.models.portfolio import ( from sqlalchemy.orm.exc import NoResultFound -def create_property(session: Session, portfolio_id: int, address: str, postcode: str) -> (int, bool): +def create_property(session: Session, portfolio_id: int, address: str, postcode: str, uprn: str) -> (int, bool): """ This function will create a record for the property in the database if it does not exist. If it does exist, it will just update the updated_at field. @@ -25,7 +25,7 @@ def create_property(session: Session, portfolio_id: int, address: str, postcode: try: # Attempt to fetch the existing property existing_property = session.query(PropertyModel).filter_by( - address=address, postcode=postcode, portfolio_id=portfolio_id + uprn=uprn, portfolio_id=portfolio_id ).one() # Update the 'updated_at' field @@ -43,6 +43,7 @@ def create_property(session: Session, portfolio_id: int, address: str, postcode: address=address, postcode=postcode, portfolio_id=portfolio_id, + uprn=uprn, creation_status=PropertyCreationStatus.LOADING, status=PortfolioStatus.ASSESSMENT.value, has_pre_condition_report=False, diff --git a/backend/app/plan/router.py b/backend/app/plan/router.py index c7adfeb7..9e24126e 100644 --- a/backend/app/plan/router.py +++ b/backend/app/plan/router.py @@ -81,7 +81,7 @@ async def trigger_plan(body: PlanTriggerRequest): epc_searcher.find_property() # Create a record in db property_id, is_new = create_property( - session, body.portfolio_id, epc_searcher.address_clean, epc_searcher.postcode_clean + session, body.portfolio_id, epc_searcher.address_clean, epc_searcher.postcode_clean, epc_searcher.uprn ) # if a new record was not created, we don't produduce recommendations if not is_new: From e46a3d0a195de5ac77b4aa2253727f621f9ad9e5 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Tue, 2 Jan 2024 17:54:14 +0000 Subject: [PATCH 150/526] expanding search method to find epcs if there are none in the postcode --- backend/SearchEpc.py | 136 +++++++++++++++++++++---------- etl/testing_data/estimate_epc.py | 108 ++++++++++++++++++++++++ 2 files changed, 200 insertions(+), 44 deletions(-) create mode 100644 etl/testing_data/estimate_epc.py diff --git a/backend/SearchEpc.py b/backend/SearchEpc.py index 087710b8..543fa6b8 100644 --- a/backend/SearchEpc.py +++ b/backend/SearchEpc.py @@ -398,7 +398,81 @@ class SearchEpc: return mode_value - def estimate_epc(self, property_type, built_form): + def fetch_nearby_epcs( + self, initial_postcode: str, + lmks_to_drop: list[str] | None = None, + built_form: str = "", + property_type: str = "" + ): + """ + Fetches and processes EPC data for a given initial postcode, applying successive trimming + to the postcode and filtering the data until a non-empty result set is found. + + The function queries the EPC API with the provided postcode, and if no data is found or + if the data doesn't meet certain criteria, it progressively shortens the postcode by + removing the last character and retries the query. This process continues until a valid + set of EPC data is obtained or the postcode is exhausted. + + Additional filtering is applied to the obtained EPC data based on 'lmk-key', 'built-form', + and 'property-type'. The data is also processed to extract and numerically interpret house + numbers, calculate house number distances, and apply weights based on these distances. + + :param initial_postcode: The initial full postcode for the EPC data query. + :param lmks_to_drop: List of 'lmk-key' values to be excluded from the EPC data. + :param built_form: The 'built-form' value to be used for filtering the EPC data. + :param property_type: The 'property-type' value to be used for filtering the EPC data. + :return: + """ + postcode = initial_postcode + while postcode: + # Fetch data from EPC API + epc_response = self.get_epc(params={"postcode": postcode}, size=100) + + if epc_response["status"] == 200: + epc_data = pd.DataFrame(self.data["rows"]) + + if lmks_to_drop is not None: + epc_data = epc_data[~epc_data["lmk-key"].isin(lmks_to_drop)] + + if not epc_data.empty: + # Further processing of the EPC data + epc_data = epc_data.sort_values("lodgement-datetime", ascending=False).groupby("uprn").head(1) + epc_data["house_number"] = epc_data["address"].apply(lambda add1: self.get_house_number(add1)) + epc_data["numeric_house_number"] = epc_data["house_number"].apply( + lambda house_num: self.extract_numeric_housenumber_part(house_num) + ) + epc_data["house_number_distance"] = abs( + epc_data["numeric_house_number"] - self.numeric_house_number + ) + epc_data["weight"] = 1 / epc_data["house_number_distance"] + + epc_built_form = self._estimate_str(key="built-form", estimation_data=epc_data) + epc_property_type = self._estimate_str(key="property-type", estimation_data=epc_data) + + if built_form == "Semi-Detached" and epc_built_form in ["End-Terraced", "Mid-Terraced"]: + estimation_built_form = "End-Terraced" + elif built_form == "": + estimation_built_form = epc_built_form + else: + estimation_built_form = built_form + + estimation_property_type = epc_property_type if property_type == "" else property_type + + epc_data = epc_data[ + (epc_data["built-form"] == estimation_built_form) & ( + epc_data["property-type"] == estimation_property_type) + ] + + if not epc_data.empty: + return epc_data # Return the filtered data if it's not empty + + # Shorten the postcode by one character for the next iteration + postcode = postcode[:-1] + + # If loop finishes without a valid response, raise an exception + raise Exception("Unable to find postcode data after trimming - investigate me") + + def estimate_epc(self, property_type, built_form, lmks_to_drop=None): """ For a property that does not have an EPC, we retrieve the EPC data for the closest properties and estimate the EPC for the property in question. @@ -409,52 +483,20 @@ class SearchEpc: the ordnance survey api :param built_form: This is the built form of the property we are estimating, that can be retrieved from the ordnance survey api + :param lmks_to_drop: This is a list of LMK keys that should be dropped from the estimation process. This + is used as an override for testing, to drop EPCs for the property we are testing :return: """ # From the ordnance survey data, we want to determine the property type and then use only similar property - # types for the estimation - - # We firstly get the first 100 properties for the postcode, from the EPC api - epc_reponse = self.get_epc(params={"postcode": self.postcode}, size=100) - if epc_reponse["status"] != 200: - raise Exception("Unable to find postcode data - investigate me") - - epc_data = pd.DataFrame(self.data["rows"]) - - # We now get the newest EPC per uprn - epc_data = epc_data.sort_values("lodgement-datetime", ascending=False).groupby("uprn").head(1) - - # For each record, parse the house number. We'll use this to identify the closest properties - epc_data["house_number"] = epc_data["address"].apply(lambda add1: self.get_house_number(add1)) - - # We convert the house number fo a purely numeric format - This numeric house number will be used as - # a distance weight when estimating the EPC - epc_data["numeric_house_number"] = epc_data["house_number"].apply( - lambda house_num: self.extract_numeric_housenumber_part(house_num) + # types for the estimation process + epc_data = self.fetch_nearby_epcs( + initial_postcode=self.postcode, + lmks_to_drop=lmks_to_drop, + built_form=built_form, + property_type=property_type ) - - epc_data["house_number_distance"] = abs(epc_data["numeric_house_number"] - self.numeric_house_number) - epc_data["weight"] = 1 / epc_data["house_number_distance"] - - epc_built_form = self._get_epc_mode(col="built-form", epc_data=epc_data) - epc_property_type = self._get_epc_mode(col="property-type", epc_data=epc_data) - - # We check if the EPC built form is one of the terraced values. If the os_built_form is semi-detached, - # then we set it to be end terraced - if built_form == "Semi-Detached" and epc_built_form in ["End-Terraced", "Mid-Terraced"]: - estimation_built_form = "End-Terraced" - elif built_form == "": - estimation_built_form = epc_built_form - else: - estimation_built_form = built_form - - estimation_property_type = epc_property_type if property_type == "" else property_type - - # We filter the EPC data on just the property types we want to use - epc_data = epc_data[ - (epc_data["built-form"] == estimation_built_form) & (epc_data["property-type"] == estimation_property_type) - ] + epc_data['lodgement-datetime'] = pd.to_datetime(epc_data['lodgement-datetime']) # For each attribute, we need to determine the datatype and use an appropriate method # to estimate. @@ -463,7 +505,7 @@ class SearchEpc: epc_data[key] = np.where(pd.isnull(epc_data[key]), None, epc_data[key]) epc_data[key] = np.where(epc_data[key] == "", None, epc_data[key]) epc_data[key] = epc_data[key].astype(vartype) - estimation_data = epc_data[[key, "weight"]] + estimation_data = epc_data[[key, "weight", "lodgement-datetime"]] estimation_data = estimation_data[~pd.isnull(estimation_data[key])] if estimation_data.shape[0] == 0: @@ -501,7 +543,13 @@ class SearchEpc: agg = estimation_data.groupby(key)["weight"].sum().reset_index() agg = agg[agg["weight"] == agg["weight"].max()] if agg.shape[0] != 1: - raise NotImplementedError("implement me") + # If we have multiple modes, we take the more recent data on average + recent_grouped = estimation_data[ + estimation_data[key].isin(agg[key].values) + ].groupby(key)["lodgement-datetime"].mean() + + newest_group = recent_grouped.idxmax() + return newest_group return agg[key].values[0] diff --git a/etl/testing_data/estimate_epc.py b/etl/testing_data/estimate_epc.py new file mode 100644 index 00000000..8041e38d --- /dev/null +++ b/etl/testing_data/estimate_epc.py @@ -0,0 +1,108 @@ +from pathlib import Path +from random import choices, sample + +import os +import pandas as pd +from tqdm import tqdm +from dotenv import load_dotenv +from utils.logger import setup_logger +from backend.SearchEpc import SearchEpc, vartypes + +ENV_FILE = Path(__file__).parent / "backend" / ".env" + +logger = setup_logger() + +DATA_DIRECTORY = Path(__file__).parent / "local_data" / "all-domestic-certificates" +DIR_SAMPLE_SIZE = 50 +N_DIRECTORIES = 25 + +EPC_AUTH_TOKEN = os.getenv("EPC_AUTH_TOKEN") + +load_dotenv(ENV_FILE) + + +def check_numeric_performance(estimated_value, actual_value): + # If we don't have anything to compare against, return None + if pd.isnull(actual_value): + return None + + if pd.isnull(estimated_value): + return 1 + + if actual_value == 0 and estimated_value == 0: + return 0 + + return abs(estimated_value - actual_value) / actual_value + + +def app(): + """ + This script is used to test the EPC estimation process. + """ + + numerical_vartypes = {key: value for key, value in vartypes.items() if value in ["float", "Int64"]} + str_var_types = {key: value for key, value in vartypes.items() if value == "str"} + # Make sure we have missed any keys + if len(numerical_vartypes) + len(str_var_types) != len(vartypes): + raise ValueError("Not all vartypes have been accounted for") + + directories = [entry for entry in DATA_DIRECTORY.iterdir() if entry.is_dir()] + + directory_sample = choices(directories, k=N_DIRECTORIES) + + results = [] + + for directory in tqdm(directory_sample): + filepath = directory / "certificates.csv" + df = pd.read_csv(filepath, low_memory=False) + df["UPRN"] = df["UPRN"].astype("Int64").astype("str") + df = df[~pd.isnull(df["UPRN"])] + + uprn_sample = sample(df["UPRN"].unique().tolist(), DIR_SAMPLE_SIZE) + df_sample = df[df["UPRN"].isin(uprn_sample)] + # Take the record with the newest LODGEMENT_DATETIME by uprn + df_sample = df_sample.sort_values("LODGEMENT_DATETIME", ascending=False).drop_duplicates("UPRN") + # Convert the columns to lower case and replace underscores with hyphens, the same as the api + df_sample.columns = df_sample.columns.str.lower().str.replace("_", "-") + + # For each epc, we test the estimation process + for _, epc in df_sample.iterrows(): + epc = epc.to_dict() + address1 = epc["address1"] + postcode = epc["postcode"] + + # Get all EPCs for this urpn and we make sure they get dropped from the estimate_epc function + epcs_for_uprn = df[df["UPRN"] == epc["uprn"]] + lmks_to_drop = epcs_for_uprn["LMK_KEY"].tolist() + searcher = SearchEpc(address1, postcode, auth_token=EPC_AUTH_TOKEN, os_api_key="") + searcher.uprn = epc["uprn"] + + estimated_epc = searcher.estimate_epc( + property_type=epc["property-type"], built_form=epc["built-form"], lmks_to_drop=lmks_to_drop + ) + + # We now compare the difference between the estimated and original + numeric_performance = { + key: check_numeric_performance(estimated_epc[key], epc[key]) for key, value in + numerical_vartypes.items() + } + + # Remove Nones + numeric_performance = {key: value for key, value in numeric_performance.items() if value is not None} + # Get an average + numeric_performance = sum(numeric_performance.values()) / len(numeric_performance) + + # categorical performance + categorical_performance = { + key: 0 if estimated_epc[key] != epc[key] else 1 for key, value in str_var_types.items() + } + # Get an average + categorical_performance = sum(categorical_performance.values()) / len(categorical_performance) + + results.append( + { + "uprn": epc["uprn"], + "numeric_performance": numeric_performance, + "categorical_performance": categorical_performance + } + ) From 81621eb1de1825ed80bc7469ad3827f48a8cb626 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Tue, 2 Jan 2024 18:05:29 +0000 Subject: [PATCH 151/526] working on epc error estimation method --- backend/SearchEpc.py | 19 +++++++++++++------ etl/testing_data/estimate_epc.py | 13 ++++++++++--- 2 files changed, 23 insertions(+), 9 deletions(-) diff --git a/backend/SearchEpc.py b/backend/SearchEpc.py index 543fa6b8..6a0f3389 100644 --- a/backend/SearchEpc.py +++ b/backend/SearchEpc.py @@ -7,6 +7,7 @@ import pandas as pd import numpy as np from epc_api.client import EpcClient from backend.OrdnanceSurvey import OrdnanceSuveyClient +from BaseUtility import Definitions from utils.logger import setup_logger from typing import List from fuzzywuzzy import process @@ -441,10 +442,15 @@ class SearchEpc: epc_data["numeric_house_number"] = epc_data["house_number"].apply( lambda house_num: self.extract_numeric_housenumber_part(house_num) ) - epc_data["house_number_distance"] = abs( - epc_data["numeric_house_number"] - self.numeric_house_number - ) - epc_data["weight"] = 1 / epc_data["house_number_distance"] + + if self.numeric_house_number is None: + # If we don't have a house number, we treat all weights as equal + epc_data["weight"] = 1 + else: + epc_data["house_number_distance"] = abs( + epc_data["numeric_house_number"] - self.numeric_house_number + ) + epc_data["weight"] = 1 / epc_data["house_number_distance"] epc_built_form = self._estimate_str(key="built-form", estimation_data=epc_data) epc_property_type = self._estimate_str(key="property-type", estimation_data=epc_data) @@ -504,9 +510,10 @@ class SearchEpc: for key, vartype in vartypes.items(): epc_data[key] = np.where(pd.isnull(epc_data[key]), None, epc_data[key]) epc_data[key] = np.where(epc_data[key] == "", None, epc_data[key]) - epc_data[key] = epc_data[key].astype(vartype) - estimation_data = epc_data[[key, "weight", "lodgement-datetime"]] + estimation_data = epc_data[[key, "weight", "lodgement-datetime"]].copy() estimation_data = estimation_data[~pd.isnull(estimation_data[key])] + estimation_data = estimation_data[~estimation_data[key].isin(Definitions.DATA_ANOMALY_MATCHES)] + estimation_data[key] = estimation_data[key].astype(vartype) if estimation_data.shape[0] == 0: estimated_epc[key] = None diff --git a/etl/testing_data/estimate_epc.py b/etl/testing_data/estimate_epc.py index 8041e38d..dd919000 100644 --- a/etl/testing_data/estimate_epc.py +++ b/etl/testing_data/estimate_epc.py @@ -32,6 +32,9 @@ def check_numeric_performance(estimated_value, actual_value): if actual_value == 0 and estimated_value == 0: return 0 + if actual_value == 0 and estimated_value != 0: + return 1 + return abs(estimated_value - actual_value) / actual_value @@ -91,18 +94,22 @@ def app(): numeric_performance = {key: value for key, value in numeric_performance.items() if value is not None} # Get an average numeric_performance = sum(numeric_performance.values()) / len(numeric_performance) + numeric_success = 1 - numeric_performance # categorical performance categorical_performance = { key: 0 if estimated_epc[key] != epc[key] else 1 for key, value in str_var_types.items() } # Get an average - categorical_performance = sum(categorical_performance.values()) / len(categorical_performance) + categorical_success = sum(categorical_performance.values()) / len(categorical_performance) results.append( { "uprn": epc["uprn"], - "numeric_performance": numeric_performance, - "categorical_performance": categorical_performance + "numeric_success": numeric_success, + "categorical_success": categorical_success, + "property_type": epc["property-type"], + "built_form": epc["built-form"], + "tenure": epc["tenure"], } ) From 748dc142714384813add7bf155f8d2b9d9f46313 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Tue, 2 Jan 2024 18:15:29 +0000 Subject: [PATCH 152/526] handling missing weight possibilities and 0 weights --- backend/SearchEpc.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/backend/SearchEpc.py b/backend/SearchEpc.py index 6a0f3389..07a7de23 100644 --- a/backend/SearchEpc.py +++ b/backend/SearchEpc.py @@ -450,7 +450,10 @@ class SearchEpc: epc_data["house_number_distance"] = abs( epc_data["numeric_house_number"] - self.numeric_house_number ) - epc_data["weight"] = 1 / epc_data["house_number_distance"] + # We add 1, just in case we have a 0 weight (e.g. comparing house number 7a to 7b, or 9A to 9) + epc_data["weight"] = 1 / (epc_data["house_number_distance"] + 1) + # If we have a home without a house number, fill that weight with average + epc_data["weight"] = epc_data["weight"].fillna(epc_data["weight"].mean()) epc_built_form = self._estimate_str(key="built-form", estimation_data=epc_data) epc_property_type = self._estimate_str(key="property-type", estimation_data=epc_data) From 2156f6b0764cf8f52cb592187b097e1f019afa4c Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Tue, 2 Jan 2024 18:23:52 +0000 Subject: [PATCH 153/526] building out aggregation --- backend/SearchEpc.py | 2 +- etl/testing_data/estimate_epc.py | 19 +++++++++++++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/backend/SearchEpc.py b/backend/SearchEpc.py index 07a7de23..f93fc5f0 100644 --- a/backend/SearchEpc.py +++ b/backend/SearchEpc.py @@ -437,6 +437,7 @@ class SearchEpc: if not epc_data.empty: # Further processing of the EPC data + epc_data['lodgement-datetime'] = pd.to_datetime(epc_data['lodgement-datetime']) epc_data = epc_data.sort_values("lodgement-datetime", ascending=False).groupby("uprn").head(1) epc_data["house_number"] = epc_data["address"].apply(lambda add1: self.get_house_number(add1)) epc_data["numeric_house_number"] = epc_data["house_number"].apply( @@ -505,7 +506,6 @@ class SearchEpc: built_form=built_form, property_type=property_type ) - epc_data['lodgement-datetime'] = pd.to_datetime(epc_data['lodgement-datetime']) # For each attribute, we need to determine the datatype and use an appropriate method # to estimate. diff --git a/etl/testing_data/estimate_epc.py b/etl/testing_data/estimate_epc.py index dd919000..c72df6af 100644 --- a/etl/testing_data/estimate_epc.py +++ b/etl/testing_data/estimate_epc.py @@ -113,3 +113,22 @@ def app(): "tenure": epc["tenure"], } ) + + # Get aggregate performance figures + results_df = pd.DataFrame(results) + + avg_numeric_succes = results_df["numeric_success"].median() + avg_categorical_sucess = results_df["categorical_success"].median() + + # Group by tenure + by_tenure = results_df.groupby("tenure").agg( + {"numeric_success": "median", "categorical_success": "median", "uprn": "count"} + ) + # By property type - we also want to see how many properties we have for each property type + by_property_type = results_df.groupby("property_type").agg( + {"numeric_success": "median", "categorical_success": "median", "uprn": "count"} + ) + # By property_type & built form + by_property_type_built_form = results_df.groupby(["property_type", "built_form"]).agg( + {"numeric_success": "median", "categorical_success": "median", "uprn": "count"} + ) From f7cd9d0d10f17583eb8ce49f8732031d5c295f27 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Tue, 2 Jan 2024 18:39:47 +0000 Subject: [PATCH 154/526] minor --- backend/SearchEpc.py | 7 ++++++- etl/testing_data/estimate_epc.py | 18 +++++++++++++++++- 2 files changed, 23 insertions(+), 2 deletions(-) diff --git a/backend/SearchEpc.py b/backend/SearchEpc.py index f93fc5f0..d7e1ae58 100644 --- a/backend/SearchEpc.py +++ b/backend/SearchEpc.py @@ -516,7 +516,12 @@ class SearchEpc: estimation_data = epc_data[[key, "weight", "lodgement-datetime"]].copy() estimation_data = estimation_data[~pd.isnull(estimation_data[key])] estimation_data = estimation_data[~estimation_data[key].isin(Definitions.DATA_ANOMALY_MATCHES)] - estimation_data[key] = estimation_data[key].astype(vartype) + if vartype == "Int64": + # We have some edge cases where we get the error "invalid literal for int() with base 10: '1.0'" + # so this handles this + estimation_data[key] = estimation_data[key].astype(float).astype(vartype) + else: + estimation_data[key] = estimation_data[key].astype(vartype) if estimation_data.shape[0] == 0: estimated_epc[key] = None diff --git a/etl/testing_data/estimate_epc.py b/etl/testing_data/estimate_epc.py index c72df6af..2203402a 100644 --- a/etl/testing_data/estimate_epc.py +++ b/etl/testing_data/estimate_epc.py @@ -7,6 +7,7 @@ from tqdm import tqdm from dotenv import load_dotenv from utils.logger import setup_logger from backend.SearchEpc import SearchEpc, vartypes +from etl.epc.settings import BUILT_FORM_REMAP ENV_FILE = Path(__file__).parent / "backend" / ".env" @@ -20,6 +21,12 @@ EPC_AUTH_TOKEN = os.getenv("EPC_AUTH_TOKEN") load_dotenv(ENV_FILE) +CATETORICALS_TO_IGNORE = [ + "postcode", "constituency", "local-authority", "built-form", "property-type", "address1", "constituency-label", + "building-reference-number", "address2", "posttown", "transaction-type", "lmk-key", "address3", + "local-authority-label", "county", +] + def check_numeric_performance(estimated_value, actual_value): # If we don't have anything to compare against, return None @@ -49,6 +56,10 @@ def app(): if len(numerical_vartypes) + len(str_var_types) != len(vartypes): raise ValueError("Not all vartypes have been accounted for") + # Drop some keys that aren't important + for k in CATETORICALS_TO_IGNORE: + str_var_types.pop(k, None) + directories = [entry for entry in DATA_DIRECTORY.iterdir() if entry.is_dir()] directory_sample = choices(directories, k=N_DIRECTORIES) @@ -80,11 +91,16 @@ def app(): searcher = SearchEpc(address1, postcode, auth_token=EPC_AUTH_TOKEN, os_api_key="") searcher.uprn = epc["uprn"] + # Perform the same remapping for built-form as in the Property class for this test, in case we get (e.g.) + # Enclosed End-Terrace + built_form = BUILT_FORM_REMAP.get(epc["built-form"], epc["built-form"]) + estimated_epc = searcher.estimate_epc( - property_type=epc["property-type"], built_form=epc["built-form"], lmks_to_drop=lmks_to_drop + property_type=epc["property-type"], built_form=built_form, lmks_to_drop=lmks_to_drop ) # We now compare the difference between the estimated and original + # TODO: We can convert windows and lighting to numeric versions and estimate how close we are numeric_performance = { key: check_numeric_performance(estimated_epc[key], epc[key]) for key, value in numerical_vartypes.items() From de10fe7e6dec6887216f9566a9f2bf10e719812f Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Tue, 2 Jan 2024 18:46:19 +0000 Subject: [PATCH 155/526] handle edge case of a detatched maisonnete --- etl/testing_data/estimate_epc.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/etl/testing_data/estimate_epc.py b/etl/testing_data/estimate_epc.py index 2203402a..9ecd7236 100644 --- a/etl/testing_data/estimate_epc.py +++ b/etl/testing_data/estimate_epc.py @@ -94,6 +94,8 @@ def app(): # Perform the same remapping for built-form as in the Property class for this test, in case we get (e.g.) # Enclosed End-Terrace built_form = BUILT_FORM_REMAP.get(epc["built-form"], epc["built-form"]) + if (epc["property-type"] == "Maisonette") & (built_form == "Detached"): + built_form = "" estimated_epc = searcher.estimate_epc( property_type=epc["property-type"], built_form=built_form, lmks_to_drop=lmks_to_drop From 014f684de3b6038a2c545e47c2acc6d119f5bfea Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Tue, 2 Jan 2024 23:06:55 +0000 Subject: [PATCH 156/526] multiple bugs fixed --- backend/SearchEpc.py | 22 ++++++++++++++-------- etl/testing_data/estimate_epc.py | 9 ++++++--- 2 files changed, 20 insertions(+), 11 deletions(-) diff --git a/backend/SearchEpc.py b/backend/SearchEpc.py index d7e1ae58..ae34c49a 100644 --- a/backend/SearchEpc.py +++ b/backend/SearchEpc.py @@ -196,10 +196,11 @@ class SearchEpc: parsed_house_number = parsed_house_number[0][0] if parsed_house_number else None if parsed_house_number is None: - # Because usaddress isn't optimal for parsing addresses with 'Flat' as a prefix, we also add a custom - # approach - # Pattern to look for 'Flat' followed by a number, or just a number at the beginning - pattern = r'(?i)(?:flat\s*(\d+))|^\s*(\d+)' + # Because usaddress isn't optimal for parsing addresses with some prefixes such as 'Flat', + # we also add a custom approach + + # Pattern to look for 'Flat' or 'Apartment' followed by a number, or just a number at the beginning + pattern = r'(?i)(?:flat|apartment)\s*(\d+)|^\s*(\d+)' match = re.search(pattern, address) @@ -468,10 +469,15 @@ class SearchEpc: estimation_property_type = epc_property_type if property_type == "" else property_type - epc_data = epc_data[ - (epc_data["built-form"] == estimation_built_form) & ( - epc_data["property-type"] == estimation_property_type) - ] + # We handle some edge cases experiences with maisonettes - if built form is detatched, just filter + # on maisonette + if (estimation_property_type == "Maisonette") & (estimation_built_form == "Detached"): + epc_data = epc_data[epc_data["property-type"] == estimation_property_type] + else: + epc_data = epc_data[ + (epc_data["built-form"] == estimation_built_form) & ( + epc_data["property-type"] == estimation_property_type) + ] if not epc_data.empty: return epc_data # Return the filtered data if it's not empty diff --git a/etl/testing_data/estimate_epc.py b/etl/testing_data/estimate_epc.py index 9ecd7236..7dc669f9 100644 --- a/etl/testing_data/estimate_epc.py +++ b/etl/testing_data/estimate_epc.py @@ -7,6 +7,7 @@ from tqdm import tqdm from dotenv import load_dotenv from utils.logger import setup_logger from backend.SearchEpc import SearchEpc, vartypes +from BaseUtility import Definitions from etl.epc.settings import BUILT_FORM_REMAP ENV_FILE = Path(__file__).parent / "backend" / ".env" @@ -14,8 +15,8 @@ ENV_FILE = Path(__file__).parent / "backend" / ".env" logger = setup_logger() DATA_DIRECTORY = Path(__file__).parent / "local_data" / "all-domestic-certificates" -DIR_SAMPLE_SIZE = 50 -N_DIRECTORIES = 25 +DIR_SAMPLE_SIZE = 500 +N_DIRECTORIES = 50 EPC_AUTH_TOKEN = os.getenv("EPC_AUTH_TOKEN") @@ -94,7 +95,9 @@ def app(): # Perform the same remapping for built-form as in the Property class for this test, in case we get (e.g.) # Enclosed End-Terrace built_form = BUILT_FORM_REMAP.get(epc["built-form"], epc["built-form"]) - if (epc["property-type"] == "Maisonette") & (built_form == "Detached"): + if ((epc["property-type"] == "Maisonette") & (built_form == "Detached")) or ( + built_form in Definitions.DATA_ANOMALY_MATCHES + ): built_form = "" estimated_epc = searcher.estimate_epc( From 0ec7afccd9feceff95209dc659e96402c2bc824a Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Wed, 3 Jan 2024 10:46:22 +0000 Subject: [PATCH 157/526] fixing bug where all weights are 0, due to no house numbers --- backend/SearchEpc.py | 3 +++ etl/testing_data/estimate_epc.py | 1 + 2 files changed, 4 insertions(+) diff --git a/backend/SearchEpc.py b/backend/SearchEpc.py index ae34c49a..b400b8f1 100644 --- a/backend/SearchEpc.py +++ b/backend/SearchEpc.py @@ -456,6 +456,9 @@ class SearchEpc: epc_data["weight"] = 1 / (epc_data["house_number_distance"] + 1) # If we have a home without a house number, fill that weight with average epc_data["weight"] = epc_data["weight"].fillna(epc_data["weight"].mean()) + # Finally, we might not have any house numbers whatsoever so everything could be + # missing, so we fill with 1 + epc_data["weight"] = epc_data["weight"].fillna(1) epc_built_form = self._estimate_str(key="built-form", estimation_data=epc_data) epc_property_type = self._estimate_str(key="property-type", estimation_data=epc_data) diff --git a/etl/testing_data/estimate_epc.py b/etl/testing_data/estimate_epc.py index 7dc669f9..a6c6ea6c 100644 --- a/etl/testing_data/estimate_epc.py +++ b/etl/testing_data/estimate_epc.py @@ -137,6 +137,7 @@ def app(): # Get aggregate performance figures results_df = pd.DataFrame(results) + results_df["tenure"] = results_df["tenure"].replace("Rented (social)", "rental (social)") avg_numeric_succes = results_df["numeric_success"].median() avg_categorical_sucess = results_df["categorical_success"].median() From aca882f10c481a4c0b0c268a67434bdb9cfb769a Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Wed, 3 Jan 2024 11:02:15 +0000 Subject: [PATCH 158/526] handling further edge case of semi-detached maisoneete --- backend/SearchEpc.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/backend/SearchEpc.py b/backend/SearchEpc.py index b400b8f1..5504d573 100644 --- a/backend/SearchEpc.py +++ b/backend/SearchEpc.py @@ -474,7 +474,9 @@ class SearchEpc: # We handle some edge cases experiences with maisonettes - if built form is detatched, just filter # on maisonette - if (estimation_property_type == "Maisonette") & (estimation_built_form == "Detached"): + if (estimation_property_type == "Maisonette") & ( + estimation_built_form in ["Detached", "Semi-Detached"] + ): epc_data = epc_data[epc_data["property-type"] == estimation_property_type] else: epc_data = epc_data[ From 97a7aadcf720d0f31dea72b74aa51bc14ef8f445 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Wed, 3 Jan 2024 11:47:06 +0000 Subject: [PATCH 159/526] changed api retrieval to get desired property types first --- backend/SearchEpc.py | 27 ++++++++++++++++++++++----- etl/testing_data/estimate_epc.py | 2 ++ 2 files changed, 24 insertions(+), 5 deletions(-) diff --git a/backend/SearchEpc.py b/backend/SearchEpc.py index 5504d573..701029be 100644 --- a/backend/SearchEpc.py +++ b/backend/SearchEpc.py @@ -425,10 +425,22 @@ class SearchEpc: :param property_type: The 'property-type' value to be used for filtering the EPC data. :return: """ + + property_type_api_map = { + "Bungalow": "bungalow", + "Flat": "flat", + "House": "house", + "Maisonette": "maisonette", + "Park Home": "park home", + } + postcode = initial_postcode while postcode: # Fetch data from EPC API - epc_response = self.get_epc(params={"postcode": postcode}, size=100) + params = {"postcode": postcode} + if property_type: + params["property-type"] = property_type_api_map[property_type] + epc_response = self.get_epc(params=params, size=100) if epc_response["status"] == 200: epc_data = pd.DataFrame(self.data["rows"]) @@ -460,8 +472,13 @@ class SearchEpc: # missing, so we fill with 1 epc_data["weight"] = epc_data["weight"].fillna(1) - epc_built_form = self._estimate_str(key="built-form", estimation_data=epc_data) epc_property_type = self._estimate_str(key="property-type", estimation_data=epc_data) + estimation_property_type = epc_property_type if property_type == "" else property_type + + epc_built_form = self._estimate_str( + key="built-form", + estimation_data=epc_data[epc_data["property-type"] == estimation_property_type] + ) if built_form == "Semi-Detached" and epc_built_form in ["End-Terraced", "Mid-Terraced"]: estimation_built_form = "End-Terraced" @@ -470,10 +487,10 @@ class SearchEpc: else: estimation_built_form = built_form - estimation_property_type = epc_property_type if property_type == "" else property_type - # We handle some edge cases experiences with maisonettes - if built form is detatched, just filter # on maisonette + # We also add some additional logic for bungalows, because they are far less common than other + # property types if (estimation_property_type == "Maisonette") & ( estimation_built_form in ["Detached", "Semi-Detached"] ): @@ -488,7 +505,7 @@ class SearchEpc: return epc_data # Return the filtered data if it's not empty # Shorten the postcode by one character for the next iteration - postcode = postcode[:-1] + postcode = postcode[:-1].rstrip() # If loop finishes without a valid response, raise an exception raise Exception("Unable to find postcode data after trimming - investigate me") diff --git a/etl/testing_data/estimate_epc.py b/etl/testing_data/estimate_epc.py index a6c6ea6c..7a03edc3 100644 --- a/etl/testing_data/estimate_epc.py +++ b/etl/testing_data/estimate_epc.py @@ -142,6 +142,8 @@ def app(): avg_numeric_succes = results_df["numeric_success"].median() avg_categorical_sucess = results_df["categorical_success"].median() + # Before changing the search methodology: 0.7963985988175015, 0.5348837209302325 + # Group by tenure by_tenure = results_df.groupby("tenure").agg( {"numeric_success": "median", "categorical_success": "median", "uprn": "count"} From 98e6265b5d8d34d4c47adde8af31a85ba9d589c0 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Wed, 3 Jan 2024 12:08:41 +0000 Subject: [PATCH 160/526] handle bug with park hoems --- backend/SearchEpc.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/backend/SearchEpc.py b/backend/SearchEpc.py index 701029be..8dde4f8b 100644 --- a/backend/SearchEpc.py +++ b/backend/SearchEpc.py @@ -431,7 +431,7 @@ class SearchEpc: "Flat": "flat", "House": "house", "Maisonette": "maisonette", - "Park Home": "park home", + "Park home": "park home", } postcode = initial_postcode @@ -489,12 +489,17 @@ class SearchEpc: # We handle some edge cases experiences with maisonettes - if built form is detatched, just filter # on maisonette - # We also add some additional logic for bungalows, because they are far less common than other + # We also add some additional logic for Park homes, because they are far less common than other # property types + if (estimation_property_type == "Maisonette") & ( estimation_built_form in ["Detached", "Semi-Detached"] ): epc_data = epc_data[epc_data["property-type"] == estimation_property_type] + elif (estimation_property_type == "Park home") & ( + sum(epc_data["built-form"] == estimation_built_form) == 0 + ): + epc_data = epc_data[epc_data["property-type"] == estimation_property_type] else: epc_data = epc_data[ (epc_data["built-form"] == estimation_built_form) & ( From 0d154abc3d9d2f77dc28907e2ae6089b2c63890e Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Wed, 3 Jan 2024 13:45:49 +0000 Subject: [PATCH 161/526] handling the case of null built form --- backend/SearchEpc.py | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/backend/SearchEpc.py b/backend/SearchEpc.py index 8dde4f8b..6fbdb3ea 100644 --- a/backend/SearchEpc.py +++ b/backend/SearchEpc.py @@ -472,8 +472,9 @@ class SearchEpc: # missing, so we fill with 1 epc_data["weight"] = epc_data["weight"].fillna(1) - epc_property_type = self._estimate_str(key="property-type", estimation_data=epc_data) - estimation_property_type = epc_property_type if property_type == "" else property_type + estimation_property_type = self._estimate_str( + key="property-type", estimation_data=epc_data + ) if property_type == "" else property_type epc_built_form = self._estimate_str( key="built-form", @@ -482,7 +483,7 @@ class SearchEpc: if built_form == "Semi-Detached" and epc_built_form in ["End-Terraced", "Mid-Terraced"]: estimation_built_form = "End-Terraced" - elif built_form == "": + elif (built_form == "") or (pd.isnull(built_form)): estimation_built_form = epc_built_form else: estimation_built_form = built_form @@ -492,13 +493,17 @@ class SearchEpc: # We also add some additional logic for Park homes, because they are far less common than other # property types - if (estimation_property_type == "Maisonette") & ( + is_maisonette_with_bad_built_form = (estimation_property_type == "Maisonette") & ( estimation_built_form in ["Detached", "Semi-Detached"] - ): - epc_data = epc_data[epc_data["property-type"] == estimation_property_type] - elif (estimation_property_type == "Park home") & ( + ) + + is_park_home_without_built_form = (estimation_property_type == "Park home") & ( sum(epc_data["built-form"] == estimation_built_form) == 0 - ): + ) + + has_missing_built_form = not estimation_built_form + + if is_maisonette_with_bad_built_form or is_park_home_without_built_form or has_missing_built_form: epc_data = epc_data[epc_data["property-type"] == estimation_property_type] else: epc_data = epc_data[ From a42cb555d279588be62ae192e6a87038aa19dbf7 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Wed, 3 Jan 2024 21:34:01 +0000 Subject: [PATCH 162/526] pasted in reslts with 100 nearest homes --- backend/SearchEpc.py | 2 ++ etl/testing_data/estimate_epc.py | 34 +++++++++++++++++++++++++++++++- 2 files changed, 35 insertions(+), 1 deletion(-) diff --git a/backend/SearchEpc.py b/backend/SearchEpc.py index 6fbdb3ea..1d5c2296 100644 --- a/backend/SearchEpc.py +++ b/backend/SearchEpc.py @@ -440,6 +440,8 @@ class SearchEpc: params = {"postcode": postcode} if property_type: params["property-type"] = property_type_api_map[property_type] + + # We take the 20 nearest homes of the relevant type, so not to pull in too many irrelevant homes epc_response = self.get_epc(params=params, size=100) if epc_response["status"] == 200: diff --git a/etl/testing_data/estimate_epc.py b/etl/testing_data/estimate_epc.py index 7a03edc3..9e460678 100644 --- a/etl/testing_data/estimate_epc.py +++ b/etl/testing_data/estimate_epc.py @@ -142,12 +142,44 @@ def app(): avg_numeric_succes = results_df["numeric_success"].median() avg_categorical_sucess = results_df["categorical_success"].median() - # Before changing the search methodology: 0.7963985988175015, 0.5348837209302325 + # With 20 nearest homes + # 0.7718100840549558 + # 0.5116279069767442 + # 100 nearest homes + # 0.7859617377809409 + # 0.5348837209302325 # Group by tenure by_tenure = results_df.groupby("tenure").agg( {"numeric_success": "median", "categorical_success": "median", "uprn": "count"} ) + pd.set_option('display.max_rows', 500) + pd.set_option('display.max_columns', 500) + pd.set_option('display.width', 1000) + + # With 20 nearest homes + # numeric_success categorical_success uprn + # tenure + # NO DATA! 0.847840 0.581395 278 + # Not defined - use in the case of a new dwelling... 0.930282 0.651163 617 + # Owner-occupied 0.770330 0.511628 2588 + # Rented (private) 0.791885 0.558140 1232 + # owner-occupied 0.741088 0.488372 10912 + # rental (private) 0.749064 0.488372 3252 + # rental (social) 0.822109 0.581395 3878 + # unknown 0.895840 0.627907 1820 + + # 100 nearest homes + # tenure + # NO DATA! 0.899566 0.604651 233 + # Not defined - use in the case of a new dwelling... 0.927518 0.674419 608 + # Owner-occupied 0.777026 0.511628 3167 + # Rented (private) 0.805646 0.534884 1316 + # owner-occupied 0.762180 0.488372 10835 + # rental (private) 0.760503 0.511628 3181 + # rental (social) 0.830057 0.604651 3705 + # unknown 0.899948 0.627907 1571 + # By property type - we also want to see how many properties we have for each property type by_property_type = results_df.groupby("property_type").agg( {"numeric_success": "median", "categorical_success": "median", "uprn": "count"} From 439f4d65c77d07cafabef5d7f5427ad4bf108385 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Thu, 4 Jan 2024 09:39:12 +0000 Subject: [PATCH 163/526] Added estiamted to property details epc --- backend/Property.py | 1 + backend/app/db/models/portfolio.py | 1 + 2 files changed, 2 insertions(+) diff --git a/backend/Property.py b/backend/Property.py index 27b1e8f1..71d9e249 100644 --- a/backend/Property.py +++ b/backend/Property.py @@ -498,6 +498,7 @@ class Property(Definitions): "primary_energy_consumption": self.energy["primary_energy_consumption"], "co2_emissions": self.energy["co2_emissions"], "adjusted_energy_consumption": self.current_adjusted_energy, + "estimated": self.data.get("estimated", False) } return property_details_epc diff --git a/backend/app/db/models/portfolio.py b/backend/app/db/models/portfolio.py index 6f865381..f7c0370b 100644 --- a/backend/app/db/models/portfolio.py +++ b/backend/app/db/models/portfolio.py @@ -153,6 +153,7 @@ class PropertyDetailsEpcModel(Base): primary_energy_consumption = Column(Float) co2_emissions = Column(Float) adjusted_energy_consumption = Column(Float) + estimated = Column(Boolean, default=False) class PropertyDetailsSpatial(Base): From 227cbcce2d8c4631318178e3adfe8b8f0e42f1f8 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Thu, 4 Jan 2024 09:54:38 +0000 Subject: [PATCH 164/526] added uprn extraction to extract_epc_data: --- backend/Property.py | 6 ++++-- backend/SearchEpc.py | 12 +++++++++--- backend/app/plan/router.py | 2 ++ 3 files changed, 15 insertions(+), 5 deletions(-) diff --git a/backend/Property.py b/backend/Property.py index 71d9e249..ad152ff2 100644 --- a/backend/Property.py +++ b/backend/Property.py @@ -48,15 +48,17 @@ class Property(Definitions): spatial = None - def __init__(self, id, data=None, old_data=None, full_sap_epc=None): + def __init__(self, id, address, postcode, data=None, old_data=None, full_sap_epc=None): self.id = id + self.address = address + self.postcode = postcode self.data = data self.old_data = old_data self.full_sap_epc = full_sap_epc self.property_dimensions = None - self.uprn = None + self.uprn = None if data is not None else data["uprn"] self.in_conservation_area, self.is_listed, self.is_heritage = None, None, None self.restricted_measures = False diff --git a/backend/SearchEpc.py b/backend/SearchEpc.py index 1d5c2296..9d3ecd42 100644 --- a/backend/SearchEpc.py +++ b/backend/SearchEpc.py @@ -364,7 +364,13 @@ class SearchEpc: # Retrieve postcode and address address_epc, postcode_epc = self.format_address(newest_epc=newest_epc) - return newest_epc, older_epcs, full_sap_epc, address_epc, postcode_epc + # Ge the uprn from the newest record for this home + uprns = {r["uprn"] for r in rows if r["uprn"]} + if len(uprns) != 1: + raise ValueError("Multiple UPRNs found - investigate me") + uprn = uprns.pop() + + return newest_epc, older_epcs, full_sap_epc, address_epc, postcode_epc, uprn @staticmethod def filter_newest_epc(list_of_epcs: List): @@ -626,7 +632,7 @@ class SearchEpc: if response["status"] == 200: ( - self.newest_epc, self.older_epcs, self.full_sap_epc, self.address_clean, self.postcode_clean + self.newest_epc, self.older_epcs, self.full_sap_epc, self.address_clean, self.postcode_clean, self.uprn ) = self.extract_epc_data(address=self.full_address) return @@ -642,7 +648,7 @@ class SearchEpc: response = self.get_epc() if response["status"] == 200: ( - self.newest_epc, self.older_epcs, self.full_sap_epc, self.address_clean, self.postcode_clean + self.newest_epc, self.older_epcs, self.full_sap_epc, self.address_clean, self.postcode_clean, self.uprn ) = self.extract_epc_data() return diff --git a/backend/app/plan/router.py b/backend/app/plan/router.py index 9e24126e..f4238ae5 100644 --- a/backend/app/plan/router.py +++ b/backend/app/plan/router.py @@ -98,6 +98,8 @@ async def trigger_plan(body: PlanTriggerRequest): input_properties.append( Property( id=property_id, + address=epc_searcher.address_clean, + postcode=epc_searcher.postcode_clean, data=epc_searcher.newest_epc, old_data=epc_searcher.older_epcs, full_sap_epc=epc_searcher.full_sap_epc, From 0d7479d96caab6421ca954ba676580d25a90ced9 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Thu, 4 Jan 2024 10:00:04 +0000 Subject: [PATCH 165/526] updated property class fixing bug with pulling out uprn --- backend/Property.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/Property.py b/backend/Property.py index ad152ff2..4b5e1304 100644 --- a/backend/Property.py +++ b/backend/Property.py @@ -58,7 +58,7 @@ class Property(Definitions): self.full_sap_epc = full_sap_epc self.property_dimensions = None - self.uprn = None if data is not None else data["uprn"] + self.uprn = None if data is None else data["uprn"] self.in_conservation_area, self.is_listed, self.is_heritage = None, None, None self.restricted_measures = False From 41749e85570d28c26e0bf6fb128ef06a0c65ae59 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Thu, 4 Jan 2024 11:16:49 +0000 Subject: [PATCH 166/526] added weighted datetime calc --- backend/Property.py | 2 +- backend/SearchEpc.py | 23 +++++++++++++++++++++++ 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/backend/Property.py b/backend/Property.py index 4b5e1304..dc847750 100644 --- a/backend/Property.py +++ b/backend/Property.py @@ -58,7 +58,7 @@ class Property(Definitions): self.full_sap_epc = full_sap_epc self.property_dimensions = None - self.uprn = None if data is None else data["uprn"] + self.uprn = None if data is None else int(data["uprn"]) self.in_conservation_area, self.is_listed, self.is_heritage = None, None, None self.restricted_measures = False diff --git a/backend/SearchEpc.py b/backend/SearchEpc.py index 9d3ecd42..4953b04c 100644 --- a/backend/SearchEpc.py +++ b/backend/SearchEpc.py @@ -584,6 +584,11 @@ class SearchEpc: estimated_epc[key] = estimated_value + # Insert an estimated lodgement datetime, with a weighted average + estimated_epc["lodgement-datetime"] = self.calculate_weighted_lodgement_datetime(epc_data=epc_data) + # Extract logement date + estimated_epc["lodgement-date"] = estimated_epc["lodgement-datetime"].strftime("%Y-%m-%d") + estimated_epc["postcode"] = self.postcode estimated_epc["uprn"] = self.uprn # Indicate that this epc was estimated @@ -591,6 +596,24 @@ class SearchEpc: return estimated_epc + @staticmethod + def calculate_weighted_lodgement_datetime(epc_data): + numeric_dates = pd.to_datetime(epc_data['lodgement-datetime']).view('int64') + + # Calculate the weighted sum of dates + weighted_sum = (numeric_dates * epc_data['weight']).sum() + + # Calculate the sum of weights + total_weights = epc_data['weight'].sum() + + # Calculate the weighted mean in numeric format + weighted_mean_numeric = weighted_sum / total_weights + + # Convert the numeric weighted mean back to datetime + weighted_mean_datetime = pd.to_datetime(weighted_mean_numeric) + + return weighted_mean_datetime + @staticmethod def _estimate_int(estimation_data, key): return round(np.average(a=estimation_data[key], weights=estimation_data["weight"])) From 1eb6f4c2a78b3ede33b01a05055781bb8e74cd01 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Thu, 4 Jan 2024 11:27:19 +0000 Subject: [PATCH 167/526] handling error cases in storing data to db for estimated properties --- backend/Property.py | 2 +- backend/SearchEpc.py | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/backend/Property.py b/backend/Property.py index dc847750..be60784c 100644 --- a/backend/Property.py +++ b/backend/Property.py @@ -459,7 +459,7 @@ class Property(Definitions): """ Utility function for usage in the lambda, for preparing the _rating fields """ - return rating_lookup[field].value if field not in cls.DATA_ANOMALY_MATCHES else None + return rating_lookup[field].value if (field not in cls.DATA_ANOMALY_MATCHES) and (field is not None) else None def get_property_details_epc(self, portfolio_id: int, rating_lookup): diff --git a/backend/SearchEpc.py b/backend/SearchEpc.py index 4953b04c..6e17d200 100644 --- a/backend/SearchEpc.py +++ b/backend/SearchEpc.py @@ -591,6 +591,7 @@ class SearchEpc: estimated_epc["postcode"] = self.postcode estimated_epc["uprn"] = self.uprn + estimated_epc["address"] = self.full_address # Indicate that this epc was estimated estimated_epc["estimated"] = True @@ -676,6 +677,7 @@ class SearchEpc: return # Step 4: If we still don't have an EPC, we estimate the EPC data + self.full_address = self.ordnance_survey_client.most_relevant_result["ADDRESS"] estimated_epc = self.estimate_epc( property_type=self.ordnance_survey_client.property_type, built_form=self.ordnance_survey_client.built_form From 15ec6460d2ea57a6ea1f475b7eb837b5b69b887b Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Thu, 4 Jan 2024 11:32:11 +0000 Subject: [PATCH 168/526] minor bug for when no valuation increase data --- backend/app/plan/router.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/app/plan/router.py b/backend/app/plan/router.py index f4238ae5..89347be2 100644 --- a/backend/app/plan/router.py +++ b/backend/app/plan/router.py @@ -558,7 +558,7 @@ async def trigger_plan(body: PlanTriggerRequest): # recommendation from being default to not default, we'll need to re-run this process to re-calculate the # the portfolion level impact - total_valuation_increase = sum(property_valuation_increases) + total_valuation_increase = sum([v for v in property_valuation_increases if v is not None]) labour_days = round(max( [sum(r["labour_days"] for r in rec_group if r["default"]) for p_id, rec_group in recommendations.items()] )) From 1b4ae239a3a052d49835d902aaefb68758b97e9c Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Thu, 4 Jan 2024 14:56:33 +0000 Subject: [PATCH 169/526] testing different weight methods - to run full test on --- backend/SearchEpc.py | 24 ++++++++++++++++-------- recommendations/Recommendations.py | 2 ++ 2 files changed, 18 insertions(+), 8 deletions(-) diff --git a/backend/SearchEpc.py b/backend/SearchEpc.py index 6e17d200..b3f58b04 100644 --- a/backend/SearchEpc.py +++ b/backend/SearchEpc.py @@ -472,13 +472,21 @@ class SearchEpc: epc_data["house_number_distance"] = abs( epc_data["numeric_house_number"] - self.numeric_house_number ) - # We add 1, just in case we have a 0 weight (e.g. comparing house number 7a to 7b, or 9A to 9) - epc_data["weight"] = 1 / (epc_data["house_number_distance"] + 1) - # If we have a home without a house number, fill that weight with average - epc_data["weight"] = epc_data["weight"].fillna(epc_data["weight"].mean()) - # Finally, we might not have any house numbers whatsoever so everything could be - # missing, so we fill with 1 - epc_data["weight"] = epc_data["weight"].fillna(1) + # # We add 1, just in case we have a 0 weight (e.g. comparing house number 7a to 7b, or 9A to 9) + # epc_data["weight"] = 1 / (epc_data["house_number_distance"] + 1) + # # If we have a home without a house number, fill that weight with average + # epc_data["weight"] = epc_data["weight"].fillna(epc_data["weight"].mean()) + # # Finally, we might not have any house numbers whatsoever so everything could be + # # missing, so we fill with 1 + # epc_data["weight"] = epc_data["weight"].fillna(1) + # TODO: Testing + # If the postcode is different from the initial postcode, it doesn't make sense to have + # any weightings + if all(pd.isnull(epc_data["house_number_distance"])) or (postcode != initial_postcode): + epc_data["weight"] = 1 + else: + epc_data["weight"] = 1 / np.sqrt(epc_data["house_number_distance"] + 1) + epc_data["weight"] = epc_data["weight"].fillna(epc_data["weight"].mean()) estimation_property_type = self._estimate_str( key="property-type", estimation_data=epc_data @@ -621,7 +629,7 @@ class SearchEpc: @staticmethod def _estimate_float(estimation_data, key): - return np.average(a=estimation_data[key], weights=estimation_data["weight"]) + return round(np.average(a=estimation_data[key], weights=estimation_data["weight"]), 2) @staticmethod def _estimate_str(estimation_data, key): diff --git a/recommendations/Recommendations.py b/recommendations/Recommendations.py index 4b54cb52..a5d1f35c 100644 --- a/recommendations/Recommendations.py +++ b/recommendations/Recommendations.py @@ -155,6 +155,8 @@ class Recommendations: # For the moment, we cap the number of SAP points that can be achieved by ventilation at 2 rec["sap_points"] = min(rec["sap_points"], VentilationRecommendations.SAP_LIMIT) + # Round to 2 decimal places + rec["sap_points"] = round(rec["sap_points"], 2) rec["co2_equivalent_savings"] = float(property_instance.data["co2-emissions-current"]) - new_carbon # Energy consumption current is per meter squared, so we need to multiply by the floor area to get From 178fac1ffee52577d2cf34d340ccd5f1eeda687c Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Thu, 4 Jan 2024 18:05:41 +0000 Subject: [PATCH 170/526] working on implementing solar recommendations --- backend/Property.py | 40 +++++++ etl/testing_data/solar_research.py | 105 ++++++++++++++++++ recommendations/SolarPvRecommendations.py | 37 ++++++ .../tests/test_solar_pv_recommendations.py | 0 4 files changed, 182 insertions(+) create mode 100644 etl/testing_data/solar_research.py create mode 100644 recommendations/SolarPvRecommendations.py create mode 100644 recommendations/tests/test_solar_pv_recommendations.py diff --git a/backend/Property.py b/backend/Property.py index be60784c..f1c7e65c 100644 --- a/backend/Property.py +++ b/backend/Property.py @@ -829,3 +829,43 @@ class Property(Definitions): number_habitable_rooms=self.number_of_rooms, extension_count=float(self.data["extension-count"]), ) + + def set_solar_panel_area(self, photo_supply_data): + """ + Sets the approximate area of the solar panels + :return: + """ + + # Approximate area of the solar panels + solar_panel_area = 1.6 + # Wattage per pan + solar_panel_wattage = 360 + + photo_supply_lookup = photo_supply_data["photo_supply_lookup"] + floor_area_decile_thresholds = photo_supply_data["floor_area_decile_thresholds"] + + # TODO: Create a class for the solar etl process and make this one of the functions, which applies a different + # method depending on the data type + def classify_floor_area(new_area, thresholds): + for i, threshold in enumerate(thresholds): + if new_area <= threshold: + return i # Returns the decile index (0 to 9) + return len(thresholds) + + floor_area_decile = classify_floor_area(self.floor_area, floor_area_decile_thresholds) + + # Given the photo_supply_lookup, we esimate the percentage of the roof that is suitable for solar panels + + # TODO: Move this to the ETL process, since we need to know that tenure should be lower + tenure = self.data["tenure"].lower() + photo_supply_matched = photo_supply_lookup[ + (photo_supply_lookup["tenure"] == tenure) & + (photo_supply_lookup["built_form"] == self.data["built-form"]) & + (photo_supply_lookup["property_type"] == self.data["property-type"]) & + (photo_supply_lookup["construction_age_band"] == self.construction_age_band) & + (photo_supply_lookup["is_flat"] == self.roof["is_flat"]) & + (photo_supply_lookup["is_pitched"] == self.roof["is_pitched"]) & + (photo_supply_lookup["is_roof_room"] == self.roof["is_roof_room"]) + ] + + # n_panels = np.floor(solar_panel_area * ) diff --git a/etl/testing_data/solar_research.py b/etl/testing_data/solar_research.py new file mode 100644 index 00000000..9abacdc3 --- /dev/null +++ b/etl/testing_data/solar_research.py @@ -0,0 +1,105 @@ +import pandas as pd +from pathlib import Path +from tqdm import tqdm +from etl.epc.property_change_app import get_cleaned +from utils.s3 import save_dataframe_to_s3_parquet + +DATA_DIRECTORY = Path(__file__).parent / "local_data" / "all-domestic-certificates" + + +def app(): + """ + This code reads in the EPC data and attempt to produce a reasonable figure for the photo-supply variable, which + is the following: + "Percentage of photovoltaic area as a percentage of total roof area. 0% indicates that a Photovoltaic Supply + is not present in the property." + + When recommending solar, we want to simulate the retrofit by increasing this value from 0, so we need a sensible + figure to increase this to. This script will pull the data for that, to allow us to try and deduce what + a sensible figure would be + :return: + """ + + directories = [entry for entry in DATA_DIRECTORY.iterdir() if entry.is_dir()] + results = [] + for dir in tqdm(directories): + filepath = dir / "certificates.csv" + df = pd.read_csv(filepath, low_memory=False) + df = df[~pd.isnull(df["UPRN"])] + df["UPRN"] = df["UPRN"].astype(int).astype(str) + # Drop rows that have a missing PROPERTY_TYPE, BUILT_FORM, CONSTRUCTION_AGE_BAND, TOTAL_FLOOR_AREA + for col in ["PROPERTY_TYPE", "BUILT_FORM", "CONSTRUCTION_AGE_BAND", "TOTAL_FLOOR_AREA"]: + df = df[~pd.isnull(df[col])] + # Take newest LODGEMENT_DATE per UPRN + df = df.sort_values(by="LODGEMENT_DATE", ascending=False).drop_duplicates(subset=["UPRN"]) + + data = df[ + ["UPRN", "PROPERTY_TYPE", "TENURE", "BUILT_FORM", "ROOF_DESCRIPTION", "PHOTO_SUPPLY", "TOTAL_FLOOR_AREA", + "CONSTRUCTION_AGE_BAND"] + ].copy() + data["PHOTO_SUPPLY"] = data["PHOTO_SUPPLY"].fillna(0) + data = data[data["PHOTO_SUPPLY"] != 0] + results.append(data) + + results = pd.concat(results) + + # Convert total floor area to deciles + decile_thresholds = results["TOTAL_FLOOR_AREA"].quantile([0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9]).values + + def classify_floor_area(new_area, thresholds): + for i, threshold in enumerate(thresholds): + if new_area <= threshold: + return i # Returns the decile index (0 to 9) + return len(thresholds) + + # Assuming 'new_data' is your new DataFrame with floor area data + results["floor_area_decile"] = pd.cut( + results["TOTAL_FLOOR_AREA"], + bins=[0] + list(decile_thresholds) + [float('inf')], + labels=False, + include_lowest=True + ) + + # Convert tenure to lower + results["TENURE"] = results["TENURE"].str.lower() + + # Append on the roof details + cleaned_lookup = get_cleaned() + lookup = pd.DataFrame(cleaned_lookup["roof-description"]) + + results = results.merge( + lookup.drop( + columns=[ + "clean_description", "thermal_transmittance", "thermal_transmittance_unit", "insulation_thickness", + "is_assumed" + ] + ), + left_on="ROOF_DESCRIPTION", + right_on="original_description", + how="left" + ) + + aggregated = results.groupby( + [ + "PROPERTY_TYPE", "BUILT_FORM", "TENURE", "is_pitched", "is_roof_room", "is_loft", "is_flat", "is_thatched", + "is_at_rafters", "has_dwelling_above", "CONSTRUCTION_AGE_BAND", "floor_area_decile" + ], + observed=True + ).agg( + { + "PHOTO_SUPPLY": ["median", "mean"], + } + ).reset_index() + + aggregated.columns = ['_'.join(col).strip() for col in aggregated.columns.values] + # Remove trailing underscore from columns + aggregated.columns = [col[:-1] if col.endswith("_") else col for col in aggregated.columns.values] + # Convert columns to lowercase + aggregated.columns = [col.lower() for col in aggregated.columns.values] + + # Store this data in s3 as a parquet file + save_dataframe_to_s3_parquet( + df=aggregated, + bucket_name="retrofit-data-dev", + file_key=f"solar_pv_supply/photo_supply_lookup.parquet", + ) diff --git a/recommendations/SolarPvRecommendations.py b/recommendations/SolarPvRecommendations.py new file mode 100644 index 00000000..addbeb3f --- /dev/null +++ b/recommendations/SolarPvRecommendations.py @@ -0,0 +1,37 @@ +from recommendations.Costs import Costs + + +class SolarPvRecommendations: + + def __init__(self, property_instance): + """ + :param property_instance: Instance of the Property class, for the home associated to property_id + :param photo_supply_lookup: Lookup table of photo supply percentages + """ + + self.property = property_instance + self.costs = Costs(self.property) + + self.recommendations = [] + + def recommend(self): + """ + We check if a property is potentially suitable for solar PV based on the following criteria: + - The property is a house or bungalow + - The property has a flat or pitched roof + - The property does not have existing solar pv + :return: + """ + + is_valid_property_type = self.property.data["property-type"] in ["House", "Bungalow"] + is_valid_roof_type = ( + self.property.roof["is_flat"] or self.property.roof["is_pitched"] or self.property.roof["is_roof_room"] + ) + has_no_existing_solar_pv = not self.property.data["photo-supply"] in [ + None, 0, self.property.DATA_ANOMALY_MATCHES + ] + + if not is_valid_property_type or not is_valid_roof_type or has_no_existing_solar_pv: + return + + # We now have a property which is potentially suitable for solar PV diff --git a/recommendations/tests/test_solar_pv_recommendations.py b/recommendations/tests/test_solar_pv_recommendations.py new file mode 100644 index 00000000..e69de29b From fcc4dc6b5136221bd989894f9440c6388618ef9a Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Thu, 4 Jan 2024 18:47:04 +0000 Subject: [PATCH 171/526] collected data for solar pv estimates --- backend/Property.py | 28 +++++++++++++++-------- etl/testing_data/solar_research.py | 11 +++++++-- recommendations/Costs.py | 22 ++++++++++++++++++ recommendations/SolarPvRecommendations.py | 11 ++++++++- 4 files changed, 59 insertions(+), 13 deletions(-) diff --git a/backend/Property.py b/backend/Property.py index f1c7e65c..f5325722 100644 --- a/backend/Property.py +++ b/backend/Property.py @@ -10,7 +10,6 @@ from etl.epc.settings import POTENTIAL_COLUMNS, EFFICIENCY_FEATURES, BUILT_FORM_ from etl.epc_clean.epc_attributes.all_cleaners import all_cleaner_map from utils.logger import setup_logger from utils.s3 import read_dataframe_from_s3_parquet -from epc_api.client import EpcClient from BaseUtility import Definitions from recommendations.rdsap_tables import england_wales_age_band_lookup, FLOOR_LEVEL_MAP from recommendations.recommendation_utils import ( @@ -89,6 +88,7 @@ class Property(Definitions): self.number_lighting_outlets = None self.floor_level = None self.number_of_windows = None + self.solar_pv_roof_area = None self.current_adjusted_energy = None self.expected_adjusted_energy = None @@ -830,19 +830,16 @@ class Property(Definitions): extension_count=float(self.data["extension-count"]), ) - def set_solar_panel_area(self, photo_supply_data): + def set_solar_panel_area(self, photo_supply_lookup, floor_area_decile_thresholds): """ Sets the approximate area of the solar panels :return: """ - # Approximate area of the solar panels - solar_panel_area = 1.6 - # Wattage per pan - solar_panel_wattage = 360 - - photo_supply_lookup = photo_supply_data["photo_supply_lookup"] - floor_area_decile_thresholds = photo_supply_data["floor_area_decile_thresholds"] + if (self.insulation_floor_area is None) and (self.pitched_roof_area is None): + raise ValueError( + "Need to set insulation floor area and pitched roof area before setting solar pv roof area" + ) # TODO: Create a class for the solar etl process and make this one of the functions, which applies a different # method depending on the data type @@ -868,4 +865,15 @@ class Property(Definitions): (photo_supply_lookup["is_roof_room"] == self.roof["is_roof_room"]) ] - # n_panels = np.floor(solar_panel_area * ) + if floor_area_decile in photo_supply_matched["floor_area_decile"].values: + photo_supply_matched = photo_supply_matched[ + photo_supply_matched["floor_area_decile"] == floor_area_decile + ] + + percentage_of_roof = photo_supply_matched["photo_supply_median"].mean() + percentage_of_roof = percentage_of_roof / 100 + + self.solar_pv_roof_area = ( + self.insulation_floor_area * percentage_of_roof if self.roof["is_flat"] else + self.pitched_roof_area * percentage_of_roof + ) diff --git a/etl/testing_data/solar_research.py b/etl/testing_data/solar_research.py index 9abacdc3..4e60fa7a 100644 --- a/etl/testing_data/solar_research.py +++ b/etl/testing_data/solar_research.py @@ -81,8 +81,8 @@ def app(): aggregated = results.groupby( [ - "PROPERTY_TYPE", "BUILT_FORM", "TENURE", "is_pitched", "is_roof_room", "is_loft", "is_flat", "is_thatched", - "is_at_rafters", "has_dwelling_above", "CONSTRUCTION_AGE_BAND", "floor_area_decile" + "PROPERTY_TYPE", "BUILT_FORM", "TENURE", "is_pitched", "is_roof_room", "is_flat", + "CONSTRUCTION_AGE_BAND", "floor_area_decile" ], observed=True ).agg( @@ -103,3 +103,10 @@ def app(): bucket_name="retrofit-data-dev", file_key=f"solar_pv_supply/photo_supply_lookup.parquet", ) + + floor_area_decile_thresholds = pd.DataFrame(decile_thresholds, columns=["floor_area_decile_thresholds"]) + save_dataframe_to_s3_parquet( + df=floor_area_decile_thresholds, + bucket_name="retrofit-data-dev", + file_key=f"solar_pv_supply/floor_area_decile_thresholds.parquet", + ) diff --git a/recommendations/Costs.py b/recommendations/Costs.py index 24ea0584..cc993143 100644 --- a/recommendations/Costs.py +++ b/recommendations/Costs.py @@ -18,6 +18,25 @@ regional_labour_variations = [ {"Region": "Northern Ireland", "Adjustment_Factor": 0.76} ] +# This data is based on the MCS database +MCS_SOLAR_PV_COST_DATA = { + "last_updated": "2024-01-04", + "average_cost_per_kwh": 2013.94, + "average_cost_per_kwh-Outer London": 2618.75, + "average_cost_per_kwh-Inner London": 2618.75, + "average_cost_per_kwh-South East England": 2083.33, + "average_cost_per_kwh-South West England": 2113, + "average_cost_per_kwh-East of England": 1973.86, + "average_cost_per_kwh-East Midlands": 1981.86, + "average_cost_per_kwh-West Midlands": 1926.55, + "average_cost_per_kwh-North East England": 2028.49, + "average_cost_per_kwh-North West England": 1620.42, + "average_cost_per_kwh-Yorkshire and the Humber": 2060.9, + "average_cost_per_kwh-Wales": 1898.83, + "average_cost_per_kwh-Scotland": 1967.97, + "average_cost_per_kwh-Northern Ireland": 2126.09, +} + class Costs: """ @@ -811,3 +830,6 @@ class Costs: "labour_cost": labour_cost, "labour_days": labour_days } + + def solar_pv(self, wattage): + pass diff --git a/recommendations/SolarPvRecommendations.py b/recommendations/SolarPvRecommendations.py index addbeb3f..e8b76988 100644 --- a/recommendations/SolarPvRecommendations.py +++ b/recommendations/SolarPvRecommendations.py @@ -1,12 +1,16 @@ +import numpy as np from recommendations.Costs import Costs class SolarPvRecommendations: + # Approximate area of the solar panels + SOLAR_PANEL_AREA = 1.6 + # Wattage per panel + SOLAR_PANEL_WATTAGE = 360 def __init__(self, property_instance): """ :param property_instance: Instance of the Property class, for the home associated to property_id - :param photo_supply_lookup: Lookup table of photo supply percentages """ self.property = property_instance @@ -35,3 +39,8 @@ class SolarPvRecommendations: return # We now have a property which is potentially suitable for solar PV + number_solar_panels = np.floor(self.property.solar_pv_roof_area / self.SOLAR_PANEL_AREA) + solar_panel_capacity = number_solar_panels * self.SOLAR_PANEL_WATTAGE + + # Given the wattage, we estimate the cost of the solar PV system. This is based on the MCS database + # of solar PV installations From c3dbec670399c39072d528d109c99d7ef69e4ff1 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Fri, 5 Jan 2024 12:22:20 +0000 Subject: [PATCH 172/526] set up the rest of the solar recommendation --- backend/Property.py | 13 +++++++-- backend/app/plan/router.py | 8 +++++- etl/testing_data/solar_research.py | 2 +- recommendations/Costs.py | 34 +++++++++++++++++++++-- recommendations/SolarPvRecommendations.py | 21 ++++++++++++-- 5 files changed, 69 insertions(+), 9 deletions(-) diff --git a/backend/Property.py b/backend/Property.py index f5325722..0cb295a7 100644 --- a/backend/Property.py +++ b/backend/Property.py @@ -221,11 +221,15 @@ class Property(Definitions): setattr(self, attribute, value) - def get_components(self, cleaned): + def get_components(self, cleaned, photo_supply_lookup, floor_area_decile_thresholds): """ Given the cleaning that has been performed, we'll use this to identify the property components, from roof to walls to windows, heating and hot water :param cleaned: This is the dictionary of components found in cleaner.cleaned + :param photo_supply_lookup: This is the lookup table for the photo supply, used to estimate the percentage + of the roof that is suitable for solar panels + :param floor_area_decile_thresholds: This is the decile thresholds for the floor area, used in estimating the + solar pv roof area :return: """ @@ -295,6 +299,9 @@ class Property(Definitions): self.set_floor_type() self.set_floor_level() self.set_windows_count() + self.set_solar_panel_area( + photo_supply_lookup=photo_supply_lookup, floor_area_decile_thresholds=floor_area_decile_thresholds + ) def set_age_band(self): """ @@ -849,7 +856,9 @@ class Property(Definitions): return i # Returns the decile index (0 to 9) return len(thresholds) - floor_area_decile = classify_floor_area(self.floor_area, floor_area_decile_thresholds) + floor_area_decile = classify_floor_area( + self.floor_area, floor_area_decile_thresholds["floor_area_decile_thresholds"].values + ) # Given the photo_supply_lookup, we esimate the percentage of the roof that is suitable for solar panels diff --git a/backend/app/plan/router.py b/backend/app/plan/router.py index 89347be2..77ee9869 100644 --- a/backend/app/plan/router.py +++ b/backend/app/plan/router.py @@ -67,6 +67,12 @@ async def trigger_plan(body: PlanTriggerRequest): cleaning_data = read_parquet_from_s3( bucket_name=get_settings().DATA_BUCKET, file_key="sap_change_model/cleaning_dataset.parquet", ) + photo_supply_lookup = read_parquet_from_s3( + bucket_name=get_settings().DATA_BUCKET, file_key="solar_pv_supply/photo_supply_lookup.parquet", + ) + floor_area_decile_thresholds = read_parquet_from_s3( + bucket_name=get_settings().DATA_BUCKET, file_key="solar_pv_supply/floor_area_decile_thresholds.parquet", + ) input_properties = [] for config in plan_input: @@ -129,7 +135,7 @@ async def trigger_plan(body: PlanTriggerRequest): for p in input_properties: # Property recommendations - p.get_components(cleaned) + p.get_components(cleaned, photo_supply_lookup, floor_area_decile_thresholds) # This is temp - this should happen after scoring cleaned_property_data = DataProcessor.apply_averages_cleaning( diff --git a/etl/testing_data/solar_research.py b/etl/testing_data/solar_research.py index 4e60fa7a..8ce8a6ac 100644 --- a/etl/testing_data/solar_research.py +++ b/etl/testing_data/solar_research.py @@ -101,7 +101,7 @@ def app(): save_dataframe_to_s3_parquet( df=aggregated, bucket_name="retrofit-data-dev", - file_key=f"solar_pv_supply/photo_supply_lookup.parquet", + file_key="solar_pv_supply/photo_supply_lookup.parquet", ) floor_area_decile_thresholds = pd.DataFrame(decile_thresholds, columns=["floor_area_decile_thresholds"]) diff --git a/recommendations/Costs.py b/recommendations/Costs.py index cc993143..654dd7a8 100644 --- a/recommendations/Costs.py +++ b/recommendations/Costs.py @@ -831,5 +831,35 @@ class Costs: "labour_days": labour_days } - def solar_pv(self, wattage): - pass + def solar_pv(self, wattage: float): + + """ + Calculates the total cost for solar PV based data provided by the MCS dashboard, which contains + costing data for installations of renewable and clean energy measures. + + The data in the dashboard is filtered on domestic building installations and then the data across the + various regions is manually collected. There is currently no automated way to get the data from the MCS + dashboard + :param wattage: + :return: + """ + + # Get the cost data relevant to the region + regional_cost = MCS_SOLAR_PV_COST_DATA["-".join(["average_cost_per_kwh", self.region])] + + kw = wattage / 1000 + total_cost = kw * regional_cost + + subtotal_before_vat = total_cost / (1 + self.VAT_RATE) + vat = total_cost - subtotal_before_vat + + # Labour hours are based on estimates from online research but an average team seems to consist of 3 people + # and most jobs take around 2 days. Assuming an 8 hour day for 3 people across 2 days, gives us 72 hours of + # labour + return { + "total": total_cost, + "subtotal": subtotal_before_vat, + "vat": vat, + "labour_hours": 72, + "labour_days": 2, + } diff --git a/recommendations/SolarPvRecommendations.py b/recommendations/SolarPvRecommendations.py index e8b76988..ebe774bf 100644 --- a/recommendations/SolarPvRecommendations.py +++ b/recommendations/SolarPvRecommendations.py @@ -16,7 +16,7 @@ class SolarPvRecommendations: self.property = property_instance self.costs = Costs(self.property) - self.recommendations = [] + self.recommendation = [] def recommend(self): """ @@ -35,12 +35,27 @@ class SolarPvRecommendations: None, 0, self.property.DATA_ANOMALY_MATCHES ] - if not is_valid_property_type or not is_valid_roof_type or has_no_existing_solar_pv: + if not is_valid_property_type or not is_valid_roof_type or not has_no_existing_solar_pv: return # We now have a property which is potentially suitable for solar PV number_solar_panels = np.floor(self.property.solar_pv_roof_area / self.SOLAR_PANEL_AREA) - solar_panel_capacity = number_solar_panels * self.SOLAR_PANEL_WATTAGE + solar_panel_wattage = number_solar_panels * self.SOLAR_PANEL_WATTAGE # Given the wattage, we estimate the cost of the solar PV system. This is based on the MCS database # of solar PV installations + cost_result = self.costs.solar_pv(wattage=solar_panel_wattage) + + kw = int(np.round(solar_panel_wattage / 1000)) + + self.recommendation = [ + { + "parts": [], + "type": "solar_pv", + "description": f"Install a {kw} kilowatt-peak (kWp) solar photovoltaic (PV) panel system on the roof", + "starting_u_value": None, + "new_u_value": None, + "sap_points": None, + **cost_result, + } + ] From 74a4cc1068978a91a1076d0e920301355bc58a32 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Fri, 5 Jan 2024 12:50:27 +0000 Subject: [PATCH 173/526] Added solar recommendations to Recommendation class --- backend/Property.py | 3 +++ recommendations/Recommendations.py | 7 +++++++ 2 files changed, 10 insertions(+) diff --git a/backend/Property.py b/backend/Property.py index 0cb295a7..45c0b406 100644 --- a/backend/Property.py +++ b/backend/Property.py @@ -89,6 +89,7 @@ class Property(Definitions): self.floor_level = None self.number_of_windows = None self.solar_pv_roof_area = None + self.solar_pv_percentage = None self.current_adjusted_energy = None self.expected_adjusted_energy = None @@ -886,3 +887,5 @@ class Property(Definitions): self.insulation_floor_area * percentage_of_roof if self.roof["is_flat"] else self.pitched_roof_area * percentage_of_roof ) + + self.solar_pv_percentage = percentage_of_roof diff --git a/recommendations/Recommendations.py b/recommendations/Recommendations.py index a5d1f35c..2b35ffea 100644 --- a/recommendations/Recommendations.py +++ b/recommendations/Recommendations.py @@ -6,6 +6,7 @@ from recommendations.RoofRecommendations import RoofRecommendations from recommendations.VentilationRecommendations import VentilationRecommendations from recommendations.FireplaceRecommendations import FireplaceRecommendations from recommendations.LightingRecommendations import LightingRecommendations +from recommendations.SolarPvRecommendations import SolarPvRecommendations from recommendations.WindowsRecommendations import WindowsRecommendations from backend.ml_models.AnnualBillSavings import AnnualBillSavings @@ -37,6 +38,7 @@ class Recommendations: self.fireplace_recommender = FireplaceRecommendations(property_instance=property_instance) self.lighting_recommender = LightingRecommendations(property_instance=property_instance, materials=materials) self.windows_recommender = WindowsRecommendations(property_instance=property_instance, materials=materials) + self.solar_recommender = SolarPvRecommendations(property_instance=property_instance) def recommend(self): @@ -84,6 +86,11 @@ class Recommendations: if self.windows_recommender.recommendation: property_recommendations.append(self.windows_recommender.recommendation) + # Solar recommendations + self.solar_recommender.recommend() + if self.solar_recommender.recommendation: + property_recommendations.append(self.solar_recommender.recommendation) + # We insert temporary ids into the recommendations which is important for the optimiser later property_recommendations = self.insert_temp_recommendation_id(property_recommendations) From 49b0a1d9011ef146134d46cb14906e18eabcc12d Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Fri, 5 Jan 2024 13:04:07 +0000 Subject: [PATCH 174/526] Added in rest of solar --- backend/app/plan/utils.py | 5 ++++- etl/testing_data/solar_research.py | 2 +- recommendations/Costs.py | 5 ++++- recommendations/SolarPvRecommendations.py | 1 + 4 files changed, 10 insertions(+), 3 deletions(-) diff --git a/backend/app/plan/utils.py b/backend/app/plan/utils.py index b82be297..fe7939f3 100644 --- a/backend/app/plan/utils.py +++ b/backend/app/plan/utils.py @@ -194,12 +194,15 @@ def create_recommendation_scoring_data( else: raise ValueError("Invalid glazing type - implement me") + if recommendation["type"] == "solar_pv": + scoring_dict["PHOTO_SUPPLY_ENDING"] = property.solar_pv_percentage + if recommendation["type"] not in [ "mechanical_ventilation", "sealing_open_fireplace", "low_energy_lighting", "internal_wall_insulation", "external_wall_insulation", "cavity_wall_insulation", "loft_insulation", "room_roof_insulation", "flat_roof_insulation", "solid_floor_insulation", "suspended_floor_insulation", "exposed_floor_insulation", - "windows_glazing" + "windows_glazing", "solar_pv" ]: raise NotImplementedError("Implement me") diff --git a/etl/testing_data/solar_research.py b/etl/testing_data/solar_research.py index 8ce8a6ac..e66e992c 100644 --- a/etl/testing_data/solar_research.py +++ b/etl/testing_data/solar_research.py @@ -35,7 +35,7 @@ def app(): data = df[ ["UPRN", "PROPERTY_TYPE", "TENURE", "BUILT_FORM", "ROOF_DESCRIPTION", "PHOTO_SUPPLY", "TOTAL_FLOOR_AREA", - "CONSTRUCTION_AGE_BAND"] + "CONSTRUCTION_AGE_BAND", "SOLAR_WATER_HEATING_FLAG"] ].copy() data["PHOTO_SUPPLY"] = data["PHOTO_SUPPLY"].fillna(0) data = data[data["PHOTO_SUPPLY"] != 0] diff --git a/recommendations/Costs.py b/recommendations/Costs.py index 654dd7a8..8dbb9cc9 100644 --- a/recommendations/Costs.py +++ b/recommendations/Costs.py @@ -840,7 +840,10 @@ class Costs: The data in the dashboard is filtered on domestic building installations and then the data across the various regions is manually collected. There is currently no automated way to get the data from the MCS dashboard - :param wattage: + + Price can also be benchmarked against this checkatrade article: + https://www.checkatrade.com/blog/cost-guides/cost-of-solar-panel-installation/ + :param wattage: Peak wattage of the solar PV system :return: """ diff --git a/recommendations/SolarPvRecommendations.py b/recommendations/SolarPvRecommendations.py index ebe774bf..4dcf6104 100644 --- a/recommendations/SolarPvRecommendations.py +++ b/recommendations/SolarPvRecommendations.py @@ -57,5 +57,6 @@ class SolarPvRecommendations: "new_u_value": None, "sap_points": None, **cost_result, + "photo_supply": self.property.solar_pv_percentage # This is required for simulating the SAP impact } ] From c5361706efc9d383b4bab9f0a6db9ecc54135af7 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Fri, 5 Jan 2024 15:25:48 +0000 Subject: [PATCH 175/526] setting up solar client --- backend/app/plan/router.py | 40 +++---- backend/app/plan/utils.py | 2 +- backend/app/utils.py | 13 --- etl/solar/SolarPhotoSupply.py | 136 ++++++++++++++++++++++ etl/solar/app.py | 34 ++++++ recommendations/SolarPvRecommendations.py | 4 +- 6 files changed, 194 insertions(+), 35 deletions(-) create mode 100644 etl/solar/SolarPhotoSupply.py create mode 100644 etl/solar/app.py diff --git a/backend/app/plan/router.py b/backend/app/plan/router.py index 77ee9869..d28e6518 100644 --- a/backend/app/plan/router.py +++ b/backend/app/plan/router.py @@ -23,7 +23,7 @@ from backend.app.db.models.portfolio import rating_lookup from backend.app.dependencies import validate_token from backend.app.plan.schemas import PlanTriggerRequest from backend.app.plan.utils import create_recommendation_scoring_data, get_cleaned -from backend.app.utils import epc_to_sap_lower_bound, read_csv_from_s3, read_parquet_from_s3, sap_to_epc +from backend.app.utils import epc_to_sap_lower_bound, read_csv_from_s3, sap_to_epc from backend.ml_models.api import ModelApi from backend.Property import Property @@ -34,7 +34,7 @@ from recommendations.optimiser.GainOptimiser import GainOptimiser from recommendations.optimiser.optimiser_functions import prepare_input_measures from recommendations.Recommendations import Recommendations from utils.logger import setup_logger -from utils.s3 import read_dataframe_from_s3_parquet +from utils.s3 import read_dataframe_from_s3_parquet, read_dataframe_from_s3_parquet from backend.ml_models.Valuation import PropertyValuation from backend.ml_models.AnnualBillSavings import AnnualBillSavings @@ -61,19 +61,6 @@ async def trigger_plan(body: PlanTriggerRequest): logger.info("Getting the inputs") plan_input = read_csv_from_s3(bucket_name=get_settings().PLAN_TRIGGER_BUCKET, filepath=body.trigger_file_path) - uprn_filenames = read_dataframe_from_s3_parquet( - bucket_name=get_settings().DATA_BUCKET, file_key="spatial/filename_meta.parquet" - ) - cleaning_data = read_parquet_from_s3( - bucket_name=get_settings().DATA_BUCKET, file_key="sap_change_model/cleaning_dataset.parquet", - ) - photo_supply_lookup = read_parquet_from_s3( - bucket_name=get_settings().DATA_BUCKET, file_key="solar_pv_supply/photo_supply_lookup.parquet", - ) - floor_area_decile_thresholds = read_parquet_from_s3( - bucket_name=get_settings().DATA_BUCKET, file_key="solar_pv_supply/floor_area_decile_thresholds.parquet", - ) - input_properties = [] for config in plan_input: # We validate each record in the file. If the record is NOT valid, we need to handle this accordingly @@ -115,17 +102,30 @@ async def trigger_plan(body: PlanTriggerRequest): if not input_properties: return Response(status_code=204) - logger.info("Getting spatial data") - for p in input_properties: - p.get_spatial_data(uprn_filenames) - # The materials data could be cached or local so we don't need to make # consistent requests to the backend for # the same data - logger.info("Reading in materials and cleaned datasets") + logger.info("Reading in data sources required for the engine") materials = get_materials(session) cleaned = get_cleaned() + uprn_filenames = read_dataframe_from_s3_parquet( + bucket_name=get_settings().DATA_BUCKET, file_key="spatial/filename_meta.parquet" + ) + cleaning_data = read_dataframe_from_s3_parquet( + bucket_name=get_settings().DATA_BUCKET, file_key="sap_change_model/cleaning_dataset.parquet", + ) + photo_supply_lookup = read_dataframe_from_s3_parquet( + bucket_name=get_settings().DATA_BUCKET, file_key="solar_pv_supply/photo_supply_lookup.parquet", + ) + floor_area_decile_thresholds = read_dataframe_from_s3_parquet( + bucket_name=get_settings().DATA_BUCKET, file_key="solar_pv_supply/floor_area_decile_thresholds.parquet", + ) + + logger.info("Getting spatial data") + for p in input_properties: + p.get_spatial_data(uprn_filenames) + logger.info("Getting components and epc recommendations") recommendations = {} diff --git a/backend/app/plan/utils.py b/backend/app/plan/utils.py index fe7939f3..7672c316 100644 --- a/backend/app/plan/utils.py +++ b/backend/app/plan/utils.py @@ -195,7 +195,7 @@ def create_recommendation_scoring_data( raise ValueError("Invalid glazing type - implement me") if recommendation["type"] == "solar_pv": - scoring_dict["PHOTO_SUPPLY_ENDING"] = property.solar_pv_percentage + scoring_dict["PHOTO_SUPPLY_ENDING"] = recommendation["photo_supply"] if recommendation["type"] not in [ "mechanical_ventilation", "sealing_open_fireplace", "low_energy_lighting", diff --git a/backend/app/utils.py b/backend/app/utils.py index d912a94a..9a03ab21 100644 --- a/backend/app/utils.py +++ b/backend/app/utils.py @@ -121,19 +121,6 @@ def epc_to_sap_lower_bound(epc: str): raise ValueError("EPC rating should be between A and G") -def read_parquet_from_s3(bucket_name, file_key): - client = boto3.client('s3') - - # Get the object - s3_object = client.get_object(Bucket=bucket_name, Key=file_key) - - # Read the CSV body into a DataFrame - csv_body = s3_object["Body"].read() - df = pd.read_parquet(BytesIO(csv_body)) - - return df - - def save_dataframe_to_s3_parquet(df, bucket_name, file_key): """ Save a pandas DataFrame to S3 as a Parquet file. diff --git a/etl/solar/SolarPhotoSupply.py b/etl/solar/SolarPhotoSupply.py new file mode 100644 index 00000000..c6e2f9cb --- /dev/null +++ b/etl/solar/SolarPhotoSupply.py @@ -0,0 +1,136 @@ +import pandas as pd +from tqdm import tqdm +from utils.s3 import save_dataframe_to_s3_parquet, read_dataframe_from_s3_parquet +from utils.logger import setup_logger + +logger = setup_logger() + + +class SolarPhotoSupply: + DATASET_COLUMNS = [ + "UPRN", "PROPERTY_TYPE", "TENURE", "BUILT_FORM", "ROOF_DESCRIPTION", "PHOTO_SUPPLY", "TOTAL_FLOOR_AREA", + "CONSTRUCTION_AGE_BAND", "SOLAR_WATER_HEATING_FLAG" + ] + + def __init__(self, file_directories, cleaned_lookup): + self.file_directories = file_directories + + self.results = [] + self.decile_thresholds = None + + self.roof_lookup = pd.DataFrame(cleaned_lookup["roof-description"]) + + self.photo_supply_lookup = pd.DataFrame() + self.floor_area_decile_thresholds = pd.DataFrame() + + def create_dataset(self): + + results = [] + + logger.info("Creating solar photo supply dataset") + for dir in tqdm(self.file_directories): + filepath = dir / "certificates.csv" + df = pd.read_csv(filepath, low_memory=False) + df = df[~pd.isnull(df["UPRN"])] + df["UPRN"] = df["UPRN"].astype(int).astype(str) + # Drop rows that have a missing PROPERTY_TYPE, BUILT_FORM, CONSTRUCTION_AGE_BAND, TOTAL_FLOOR_AREA + for col in ["PROPERTY_TYPE", "BUILT_FORM", "CONSTRUCTION_AGE_BAND", "TOTAL_FLOOR_AREA"]: + df = df[~pd.isnull(df[col])] + # Take newest LODGEMENT_DATE per UPRN + df = df.sort_values(by="LODGEMENT_DATE", ascending=False).drop_duplicates(subset=["UPRN"]) + + data = df[self.DATASET_COLUMNS].copy() + data["PHOTO_SUPPLY"] = data["PHOTO_SUPPLY"].fillna(0) + data = data[data["PHOTO_SUPPLY"] != 0] + results.append(data) + + self.results = pd.concat(results) + + # Convert total floor area to deciles + self.decile_thresholds = self.results["TOTAL_FLOOR_AREA"].quantile( + [0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9] + ).values + + self.results["floor_area_decile"] = pd.cut( + self.results["TOTAL_FLOOR_AREA"], + bins=[0] + list(self.decile_thresholds) + [float('inf')], + labels=False, + include_lowest=True + ) + + # Convert tenure to lower + self.results["TENURE"] = self.results["TENURE"].str.lower() + + self.results = self.results.merge( + self.roof_lookup.drop( + columns=[ + "clean_description", "thermal_transmittance", "thermal_transmittance_unit", "insulation_thickness", + "is_assumed" + ] + ), + left_on="ROOF_DESCRIPTION", + right_on="original_description", + how="left" + ) + + self.photo_supply_lookup = self.results.groupby( + [ + "PROPERTY_TYPE", "BUILT_FORM", "TENURE", "is_pitched", "is_roof_room", "is_flat", + "CONSTRUCTION_AGE_BAND", "floor_area_decile" + ], + observed=True + ).agg( + { + "PHOTO_SUPPLY": ["median", "mean"], + } + ).reset_index() + + self.photo_supply_lookup.columns = ['_'.join(col).strip() for col in self.photo_supply_lookup.columns.values] + # Remove trailing underscore from columns + self.photo_supply_lookup.columns = [ + col[:-1] if col.endswith("_") else col for col in self.photo_supply_lookup.columns.values + ] + # Convert columns to lowercase + self.photo_supply_lookup.columns = [col.lower() for col in self.photo_supply_lookup.columns.values] + + self.floor_area_decile_thresholds = pd.DataFrame( + self.decile_thresholds, + columns=["floor_area_decile_thresholds"] + ) + + @staticmethod + def classify_floor_area(new_area, thresholds): + + for i, threshold in enumerate(thresholds): + if new_area <= threshold: + return i # Returns the decile index (0 to 9) + return len(thresholds) + + def save(self): + if self.photo_supply_lookup.empty: + raise ValueError("No data to save") + + # Store this data in s3 as a parquet file + + save_dataframe_to_s3_parquet( + df=self.photo_supply_lookup, + bucket_name="retrofit-data-dev", + file_key="solar_pv_supply/photo_supply_lookup.parquet", + ) + + save_dataframe_to_s3_parquet( + df=self.floor_area_decile_thresholds, + bucket_name="retrofit-data-dev", + file_key=f"solar_pv_supply/floor_area_decile_thresholds.parquet", + ) + + @staticmethod + def load(bucket): + photo_supply_lookup = read_dataframe_from_s3_parquet( + bucket_name=bucket, file_key="solar_pv_supply/photo_supply_lookup.parquet", + ) + floor_area_decile_thresholds = read_dataframe_from_s3_parquet( + bucket_name=bucket, file_key="solar_pv_supply/floor_area_decile_thresholds.parquet", + ) + + return photo_supply_lookup, floor_area_decile_thresholds diff --git a/etl/solar/app.py b/etl/solar/app.py new file mode 100644 index 00000000..29802e72 --- /dev/null +++ b/etl/solar/app.py @@ -0,0 +1,34 @@ +import pandas as pd +from pathlib import Path +from tqdm import tqdm +from etl.epc.property_change_app import get_cleaned +from etl.solar.SolarPhotoSupply import SolarPhotoSupply +from utils.s3 import save_dataframe_to_s3_parquet + +DATA_DIRECTORY = Path(__file__).parent / "local_data" / "all-domestic-certificates" + + +def app(): + """ + This code reads in the EPC data and attempt to produce a reasonable figure for the photo-supply variable, which + is the following: + "Percentage of photovoltaic area as a percentage of total roof area. 0% indicates that a Photovoltaic Supply + is not present in the property." + + When recommending solar, we want to simulate the retrofit by increasing this value from 0, so we need a sensible + figure to increase this to. This script will pull the data for that, to allow us to try and deduce what + a sensible figure would be + :return: + """ + + directories = [entry for entry in DATA_DIRECTORY.iterdir() if entry.is_dir()] + cleaned_lookup = get_cleaned() + + solar_data_client = SolarPhotoSupply( + file_directories=directories, + cleaned_lookup=cleaned_lookup + ) + + solar_data_client.create_dataset() + + solar_data_client.save() diff --git a/recommendations/SolarPvRecommendations.py b/recommendations/SolarPvRecommendations.py index 4dcf6104..5163c1cb 100644 --- a/recommendations/SolarPvRecommendations.py +++ b/recommendations/SolarPvRecommendations.py @@ -57,6 +57,8 @@ class SolarPvRecommendations: "new_u_value": None, "sap_points": None, **cost_result, - "photo_supply": self.property.solar_pv_percentage # This is required for simulating the SAP impact + # This is required for simulating the SAP impact. solar_pv_percentage is between 0 & 1 so we scale + # back up here + "photo_supply": 100 * self.property.solar_pv_percentage } ] From e9d3577cf61d36170ee3f6452a586efce202a467 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Fri, 5 Jan 2024 16:07:23 +0000 Subject: [PATCH 176/526] set up solar etc process and deleted research script --- etl/solar/SolarPhotoSupply.py | 1 + etl/solar/app.py | 3 - etl/testing_data/solar_research.py | 112 ----------------------------- 3 files changed, 1 insertion(+), 115 deletions(-) delete mode 100644 etl/testing_data/solar_research.py diff --git a/etl/solar/SolarPhotoSupply.py b/etl/solar/SolarPhotoSupply.py index c6e2f9cb..dadb71f0 100644 --- a/etl/solar/SolarPhotoSupply.py +++ b/etl/solar/SolarPhotoSupply.py @@ -110,6 +110,7 @@ class SolarPhotoSupply: if self.photo_supply_lookup.empty: raise ValueError("No data to save") + logger.info("Storing outputs to S3") # Store this data in s3 as a parquet file save_dataframe_to_s3_parquet( diff --git a/etl/solar/app.py b/etl/solar/app.py index 29802e72..50a3d282 100644 --- a/etl/solar/app.py +++ b/etl/solar/app.py @@ -1,9 +1,6 @@ -import pandas as pd from pathlib import Path -from tqdm import tqdm from etl.epc.property_change_app import get_cleaned from etl.solar.SolarPhotoSupply import SolarPhotoSupply -from utils.s3 import save_dataframe_to_s3_parquet DATA_DIRECTORY = Path(__file__).parent / "local_data" / "all-domestic-certificates" diff --git a/etl/testing_data/solar_research.py b/etl/testing_data/solar_research.py deleted file mode 100644 index e66e992c..00000000 --- a/etl/testing_data/solar_research.py +++ /dev/null @@ -1,112 +0,0 @@ -import pandas as pd -from pathlib import Path -from tqdm import tqdm -from etl.epc.property_change_app import get_cleaned -from utils.s3 import save_dataframe_to_s3_parquet - -DATA_DIRECTORY = Path(__file__).parent / "local_data" / "all-domestic-certificates" - - -def app(): - """ - This code reads in the EPC data and attempt to produce a reasonable figure for the photo-supply variable, which - is the following: - "Percentage of photovoltaic area as a percentage of total roof area. 0% indicates that a Photovoltaic Supply - is not present in the property." - - When recommending solar, we want to simulate the retrofit by increasing this value from 0, so we need a sensible - figure to increase this to. This script will pull the data for that, to allow us to try and deduce what - a sensible figure would be - :return: - """ - - directories = [entry for entry in DATA_DIRECTORY.iterdir() if entry.is_dir()] - results = [] - for dir in tqdm(directories): - filepath = dir / "certificates.csv" - df = pd.read_csv(filepath, low_memory=False) - df = df[~pd.isnull(df["UPRN"])] - df["UPRN"] = df["UPRN"].astype(int).astype(str) - # Drop rows that have a missing PROPERTY_TYPE, BUILT_FORM, CONSTRUCTION_AGE_BAND, TOTAL_FLOOR_AREA - for col in ["PROPERTY_TYPE", "BUILT_FORM", "CONSTRUCTION_AGE_BAND", "TOTAL_FLOOR_AREA"]: - df = df[~pd.isnull(df[col])] - # Take newest LODGEMENT_DATE per UPRN - df = df.sort_values(by="LODGEMENT_DATE", ascending=False).drop_duplicates(subset=["UPRN"]) - - data = df[ - ["UPRN", "PROPERTY_TYPE", "TENURE", "BUILT_FORM", "ROOF_DESCRIPTION", "PHOTO_SUPPLY", "TOTAL_FLOOR_AREA", - "CONSTRUCTION_AGE_BAND", "SOLAR_WATER_HEATING_FLAG"] - ].copy() - data["PHOTO_SUPPLY"] = data["PHOTO_SUPPLY"].fillna(0) - data = data[data["PHOTO_SUPPLY"] != 0] - results.append(data) - - results = pd.concat(results) - - # Convert total floor area to deciles - decile_thresholds = results["TOTAL_FLOOR_AREA"].quantile([0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9]).values - - def classify_floor_area(new_area, thresholds): - for i, threshold in enumerate(thresholds): - if new_area <= threshold: - return i # Returns the decile index (0 to 9) - return len(thresholds) - - # Assuming 'new_data' is your new DataFrame with floor area data - results["floor_area_decile"] = pd.cut( - results["TOTAL_FLOOR_AREA"], - bins=[0] + list(decile_thresholds) + [float('inf')], - labels=False, - include_lowest=True - ) - - # Convert tenure to lower - results["TENURE"] = results["TENURE"].str.lower() - - # Append on the roof details - cleaned_lookup = get_cleaned() - lookup = pd.DataFrame(cleaned_lookup["roof-description"]) - - results = results.merge( - lookup.drop( - columns=[ - "clean_description", "thermal_transmittance", "thermal_transmittance_unit", "insulation_thickness", - "is_assumed" - ] - ), - left_on="ROOF_DESCRIPTION", - right_on="original_description", - how="left" - ) - - aggregated = results.groupby( - [ - "PROPERTY_TYPE", "BUILT_FORM", "TENURE", "is_pitched", "is_roof_room", "is_flat", - "CONSTRUCTION_AGE_BAND", "floor_area_decile" - ], - observed=True - ).agg( - { - "PHOTO_SUPPLY": ["median", "mean"], - } - ).reset_index() - - aggregated.columns = ['_'.join(col).strip() for col in aggregated.columns.values] - # Remove trailing underscore from columns - aggregated.columns = [col[:-1] if col.endswith("_") else col for col in aggregated.columns.values] - # Convert columns to lowercase - aggregated.columns = [col.lower() for col in aggregated.columns.values] - - # Store this data in s3 as a parquet file - save_dataframe_to_s3_parquet( - df=aggregated, - bucket_name="retrofit-data-dev", - file_key="solar_pv_supply/photo_supply_lookup.parquet", - ) - - floor_area_decile_thresholds = pd.DataFrame(decile_thresholds, columns=["floor_area_decile_thresholds"]) - save_dataframe_to_s3_parquet( - df=floor_area_decile_thresholds, - bucket_name="retrofit-data-dev", - file_key=f"solar_pv_supply/floor_area_decile_thresholds.parquet", - ) From ce2229f817e1c856f1d6750fc7925410dc4935ec Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Fri, 5 Jan 2024 16:18:21 +0000 Subject: [PATCH 177/526] creating the filter_photo_supply_lookup method --- backend/app/plan/router.py | 8 +--- backend/ml_models/api.py | 5 +-- etl/solar/SolarPhotoSupply.py | 85 ++++++++++++++++++++++++++++++++++- 3 files changed, 88 insertions(+), 10 deletions(-) diff --git a/backend/app/plan/router.py b/backend/app/plan/router.py index d28e6518..1a499d27 100644 --- a/backend/app/plan/router.py +++ b/backend/app/plan/router.py @@ -29,6 +29,7 @@ from backend.ml_models.api import ModelApi from backend.Property import Property from etl.epc.DataProcessor import DataProcessor from etl.epc.settings import COLUMNS_TO_MERGE_ON +from etl.solar.SolarPhotoSupply import SolarPhotoSupply from recommendations.optimiser.CostOptimiser import CostOptimiser from recommendations.optimiser.GainOptimiser import GainOptimiser from recommendations.optimiser.optimiser_functions import prepare_input_measures @@ -115,12 +116,7 @@ async def trigger_plan(body: PlanTriggerRequest): cleaning_data = read_dataframe_from_s3_parquet( bucket_name=get_settings().DATA_BUCKET, file_key="sap_change_model/cleaning_dataset.parquet", ) - photo_supply_lookup = read_dataframe_from_s3_parquet( - bucket_name=get_settings().DATA_BUCKET, file_key="solar_pv_supply/photo_supply_lookup.parquet", - ) - floor_area_decile_thresholds = read_dataframe_from_s3_parquet( - bucket_name=get_settings().DATA_BUCKET, file_key="solar_pv_supply/floor_area_decile_thresholds.parquet", - ) + photo_supply_lookup, floor_area_decile_thresholds = SolarPhotoSupply.load(bucket=get_settings().DATA_BUCKET) logger.info("Getting spatial data") for p in input_properties: diff --git a/backend/ml_models/api.py b/backend/ml_models/api.py index e6947906..bc09f26c 100644 --- a/backend/ml_models/api.py +++ b/backend/ml_models/api.py @@ -2,8 +2,7 @@ import pandas as pd import requests from requests.exceptions import RequestException from utils.logger import setup_logger -from utils.s3 import save_dataframe_to_s3_parquet -from backend.app.utils import read_parquet_from_s3 +from utils.s3 import save_dataframe_to_s3_parquet, read_dataframe_from_s3_parquet logger = setup_logger() @@ -125,7 +124,7 @@ class ModelApi: # Retrieve the predictions predictions_df = pd.DataFrame( - read_parquet_from_s3( + read_dataframe_from_s3_parquet( bucket_name=predictions_bucket, file_key=response["storage_filepath"].split(predictions_bucket + "/")[1] ) diff --git a/etl/solar/SolarPhotoSupply.py b/etl/solar/SolarPhotoSupply.py index dadb71f0..9fad1831 100644 --- a/etl/solar/SolarPhotoSupply.py +++ b/etl/solar/SolarPhotoSupply.py @@ -13,6 +13,13 @@ class SolarPhotoSupply: ] def __init__(self, file_directories, cleaned_lookup): + """ + Initialize the SolarPhotoSupply class with file directories and a cleaned lookup. Currently, this class + just works with locally stored data, but this could be extended to work with data stored in S3. + + :param file_directories: A list of directories where files are stored. + :param cleaned_lookup: A dictionary containing cleaned lookup data. + """ self.file_directories = file_directories self.results = [] @@ -24,7 +31,10 @@ class SolarPhotoSupply: self.floor_area_decile_thresholds = pd.DataFrame() def create_dataset(self): - + """ + Create a dataset from the provided file directories. This method processes the data files, + applies transformations, and aggregates data into a useful format. + """ results = [] logger.info("Creating solar photo supply dataset") @@ -100,6 +110,13 @@ class SolarPhotoSupply: @staticmethod def classify_floor_area(new_area, thresholds): + """ + Classify a given floor area into a decile based on provided thresholds. + + :param new_area: The new floor area to be classified. + :param thresholds: A list of thresholds used for classification. + :return: An integer representing the decile index. + """ for i, threshold in enumerate(thresholds): if new_area <= threshold: @@ -107,6 +124,10 @@ class SolarPhotoSupply: return len(thresholds) def save(self): + """ + Save the processed data to an S3 bucket in the parquet format. This method also handles + logging and validation to ensure data is present before saving. + """ if self.photo_supply_lookup.empty: raise ValueError("No data to save") @@ -127,6 +148,12 @@ class SolarPhotoSupply: @staticmethod def load(bucket): + """ + Load datasets from an S3 bucket. + + :param bucket: The name of the S3 bucket to load data from. + :return: A tuple containing photo supply lookup and floor area decile thresholds dataframes. + """ photo_supply_lookup = read_dataframe_from_s3_parquet( bucket_name=bucket, file_key="solar_pv_supply/photo_supply_lookup.parquet", ) @@ -135,3 +162,59 @@ class SolarPhotoSupply: ) return photo_supply_lookup, floor_area_decile_thresholds + + @classmethod + def filter_photo_supply_lookup( + cls, + photo_supply_lookup: pd.DataFrame, + floor_area_decile_thresholds: pd.DataFrame, + tenure: str, + built_form: str, + property_type: str, + construction_age_band: str, + is_flat: bool, + is_pitched: bool, + is_roof_room: bool, + floor_area: float + ): + + """ + Filter the photo supply lookup to find the most appropriate photo supply for a given property. + :param photo_supply_lookup: The photo supply lookup dataframe. + :param floor_area_decile_thresholds: The floor area decile thresholds dataframe. + :param tenure: The tenure of the property. + :param built_form: The built form of the property. + :param property_type: The property type of the property. + :param construction_age_band: The construction age band of the property. + :param is_flat: Whether the property has a flat roof. + :param is_pitched: Whether the property has a pitched roof. + :param is_roof_room: Whether the property has a roof room. + :param floor_area: The floor area of the property. + :return: + """ + + # Convert the tenure to lower case, as is done in the creation of the dataset + tenure = tenure.lower() + photo_supply_matched = photo_supply_lookup[ + (photo_supply_lookup["tenure"] == tenure) & + (photo_supply_lookup["built_form"] == built_form) & + (photo_supply_lookup["property_type"] == property_type) & + (photo_supply_lookup["construction_age_band"] == construction_age_band) & + (photo_supply_lookup["is_flat"] == is_flat) & + (photo_supply_lookup["is_pitched"] == is_pitched) & + (photo_supply_lookup["is_roof_room"] == is_roof_room) + ] + + if photo_supply_matched.empty: + raise ValueError("No photo supply matched") + + floor_area_decile = cls.classify_floor_area( + floor_area, floor_area_decile_thresholds["floor_area_decile_thresholds"].values + ) + + if floor_area_decile in photo_supply_matched["floor_area_decile"].values: + photo_supply_matched = photo_supply_matched[ + photo_supply_matched["floor_area_decile"] == floor_area_decile + ] + + return photo_supply_matched From 7c532d3c87d01fd4760c37da226310db98d3ad9c Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Fri, 5 Jan 2024 16:23:41 +0000 Subject: [PATCH 178/526] implementing filter_photo_supply_lookup in property class --- backend/Property.py | 41 ++++++++++++----------------------------- 1 file changed, 12 insertions(+), 29 deletions(-) diff --git a/backend/Property.py b/backend/Property.py index 45c0b406..3dbcc2b8 100644 --- a/backend/Property.py +++ b/backend/Property.py @@ -8,6 +8,7 @@ import pandas as pd from etl.epc.DataProcessor import DataProcessor from etl.epc.settings import POTENTIAL_COLUMNS, EFFICIENCY_FEATURES, BUILT_FORM_REMAP from etl.epc_clean.epc_attributes.all_cleaners import all_cleaner_map +from etl.solar.SolarPhotoSupply import SolarPhotoSupply from utils.logger import setup_logger from utils.s3 import read_dataframe_from_s3_parquet from BaseUtility import Definitions @@ -849,37 +850,19 @@ class Property(Definitions): "Need to set insulation floor area and pitched roof area before setting solar pv roof area" ) - # TODO: Create a class for the solar etl process and make this one of the functions, which applies a different - # method depending on the data type - def classify_floor_area(new_area, thresholds): - for i, threshold in enumerate(thresholds): - if new_area <= threshold: - return i # Returns the decile index (0 to 9) - return len(thresholds) - - floor_area_decile = classify_floor_area( - self.floor_area, floor_area_decile_thresholds["floor_area_decile_thresholds"].values + photo_supply_matched = SolarPhotoSupply.filter_photo_supply_lookup( + photo_supply_lookup=photo_supply_lookup, + floor_area_decile_thresholds=floor_area_decile_thresholds, + tenure=self.data["tenure"], + built_form=self.data["built-form"], + property_type=self.data["property-type"], + construction_age_band=self.construction_age_band, + is_flat=self.roof["is_flat"], + is_pitched=self.roof["is_pitched"], + is_roof_room=self.roof["is_roof_room"], + floor_area=self.floor_area ) - # Given the photo_supply_lookup, we esimate the percentage of the roof that is suitable for solar panels - - # TODO: Move this to the ETL process, since we need to know that tenure should be lower - tenure = self.data["tenure"].lower() - photo_supply_matched = photo_supply_lookup[ - (photo_supply_lookup["tenure"] == tenure) & - (photo_supply_lookup["built_form"] == self.data["built-form"]) & - (photo_supply_lookup["property_type"] == self.data["property-type"]) & - (photo_supply_lookup["construction_age_band"] == self.construction_age_band) & - (photo_supply_lookup["is_flat"] == self.roof["is_flat"]) & - (photo_supply_lookup["is_pitched"] == self.roof["is_pitched"]) & - (photo_supply_lookup["is_roof_room"] == self.roof["is_roof_room"]) - ] - - if floor_area_decile in photo_supply_matched["floor_area_decile"].values: - photo_supply_matched = photo_supply_matched[ - photo_supply_matched["floor_area_decile"] == floor_area_decile - ] - percentage_of_roof = photo_supply_matched["photo_supply_median"].mean() percentage_of_roof = percentage_of_roof / 100 From 7740c31874d500f93ecaaee53f4a626f7c1b60a6 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Fri, 5 Jan 2024 16:37:05 +0000 Subject: [PATCH 179/526] set up tests for TestSolarPhotoSupply --- backend/app/plan/router.py | 2 +- etl/solar/SolarPhotoSupply.py | 6 +++++- etl/solar/tests/test_solar_photo_supply.py | 25 ++++++++++++++++++++++ 3 files changed, 31 insertions(+), 2 deletions(-) create mode 100644 etl/solar/tests/test_solar_photo_supply.py diff --git a/backend/app/plan/router.py b/backend/app/plan/router.py index 1a499d27..217672fd 100644 --- a/backend/app/plan/router.py +++ b/backend/app/plan/router.py @@ -35,7 +35,7 @@ from recommendations.optimiser.GainOptimiser import GainOptimiser from recommendations.optimiser.optimiser_functions import prepare_input_measures from recommendations.Recommendations import Recommendations from utils.logger import setup_logger -from utils.s3 import read_dataframe_from_s3_parquet, read_dataframe_from_s3_parquet +from utils.s3 import read_dataframe_from_s3_parquet from backend.ml_models.Valuation import PropertyValuation from backend.ml_models.AnnualBillSavings import AnnualBillSavings diff --git a/etl/solar/SolarPhotoSupply.py b/etl/solar/SolarPhotoSupply.py index 9fad1831..6a225b5a 100644 --- a/etl/solar/SolarPhotoSupply.py +++ b/etl/solar/SolarPhotoSupply.py @@ -25,7 +25,7 @@ class SolarPhotoSupply: self.results = [] self.decile_thresholds = None - self.roof_lookup = pd.DataFrame(cleaned_lookup["roof-description"]) + self.roof_lookup = pd.DataFrame(cleaned_lookup.get("roof-description")) self.photo_supply_lookup = pd.DataFrame() self.floor_area_decile_thresholds = pd.DataFrame() @@ -35,6 +35,10 @@ class SolarPhotoSupply: Create a dataset from the provided file directories. This method processes the data files, applies transformations, and aggregates data into a useful format. """ + + if self.roof_lookup.empty: + raise ValueError("No roof lookup data") + results = [] logger.info("Creating solar photo supply dataset") diff --git a/etl/solar/tests/test_solar_photo_supply.py b/etl/solar/tests/test_solar_photo_supply.py new file mode 100644 index 00000000..79d39fc4 --- /dev/null +++ b/etl/solar/tests/test_solar_photo_supply.py @@ -0,0 +1,25 @@ +import unittest +from etl.solar.SolarPhotoSupply import SolarPhotoSupply + + +class TestSolarPhotoSupply(unittest.TestCase): + def test_classify_floor_area(self): + # Setup + thresholds = [10, 20, 30, 40, 50] + solar_photo_supply = SolarPhotoSupply([], {}) + + # Test Case 1: Valid floor area + floor_area = 25 + expected_decile = 2 + result = solar_photo_supply.classify_floor_area(floor_area, thresholds) + self.assertEqual(result, expected_decile, "Decile classification did not match expected result") + + # Test Case 2: Out of range floor area + floor_area = 60 + expected_decile = len(thresholds) + result = solar_photo_supply.classify_floor_area(floor_area, thresholds) + self.assertEqual(result, expected_decile, "Decile classification for out of range value is incorrect") + + +if __name__ == '__main__': + unittest.main() From 9c941233661163e87d139e59c4f916bb0d67eaee Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Fri, 5 Jan 2024 16:50:06 +0000 Subject: [PATCH 180/526] added solar etl client unit tests --- .idea/Model.iml | 2 +- .idea/misc.xml | 2 +- etl/solar/tests/test_solar_photo_supply.py | 84 ++++++++++++++++++++++ 3 files changed, 86 insertions(+), 2 deletions(-) diff --git a/.idea/Model.iml b/.idea/Model.iml index 4413bb06..b0f9c00d 100644 --- a/.idea/Model.iml +++ b/.idea/Model.iml @@ -7,7 +7,7 @@ - + diff --git a/.idea/misc.xml b/.idea/misc.xml index 6f308057..1122b380 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -3,7 +3,7 @@ - + diff --git a/etl/solar/tests/test_solar_photo_supply.py b/etl/solar/tests/test_solar_photo_supply.py index 79d39fc4..b9b7c09c 100644 --- a/etl/solar/tests/test_solar_photo_supply.py +++ b/etl/solar/tests/test_solar_photo_supply.py @@ -1,8 +1,92 @@ import unittest +import pandas as pd from etl.solar.SolarPhotoSupply import SolarPhotoSupply class TestSolarPhotoSupply(unittest.TestCase): + + def setUp(self): + # Mock data for photo_supply_lookup and floor_area_decile_thresholds + self.photo_supply_lookup = pd.DataFrame({ + "tenure": ["leasehold", "freehold"], + "built_form": ["detached", "semi-detached"], + "property_type": ["house", "flat"], + "construction_age_band": ["pre-1900", "1900-1929"], + "is_flat": [False, True], + "is_pitched": [True, False], + "is_roof_room": [False, True], + "floor_area_decile": [0, 1], + "photo_supply": [100, 200] + }) + + self.floor_area_decile_thresholds = pd.DataFrame({ + "floor_area_decile_thresholds": [50, 100] + }) + + self.solar_photo_supply = SolarPhotoSupply([], {}) + + def test_correct_filtering(self): + result = self.solar_photo_supply.filter_photo_supply_lookup( + self.photo_supply_lookup, + self.floor_area_decile_thresholds, + "leasehold", + "detached", + "house", + "pre-1900", + False, + True, + False, + 45 + ) + self.assertEqual(len(result), 1) + self.assertEqual(result.iloc[0]["photo_supply"], 100) + + def test_no_matches(self): + with self.assertRaises(ValueError): + self.solar_photo_supply.filter_photo_supply_lookup( + self.photo_supply_lookup, + self.floor_area_decile_thresholds, + "leasehold", + "unknown", + "house", + "pre-1900", + False, + True, + False, + 45 + ) + + def test_floor_area_decile_matching(self): + result = self.solar_photo_supply.filter_photo_supply_lookup( + self.photo_supply_lookup, + self.floor_area_decile_thresholds, + "freehold", + "semi-detached", + "flat", + "1900-1929", + True, + False, + True, + 60 + ) + self.assertEqual(len(result), 1) + self.assertEqual(result.iloc[0]["photo_supply"], 200) + + def test_invalid_parameters(self): + with self.assertRaises(AttributeError): + self.solar_photo_supply.filter_photo_supply_lookup( + self.photo_supply_lookup, + self.floor_area_decile_thresholds, + 123, # Invalid type for tenure + "detached", + "house", + "pre-1900", + False, + True, + False, + 45 + ) + def test_classify_floor_area(self): # Setup thresholds = [10, 20, 30, 40, 50] From ac556d5507e724d8085946b58fa1c976df7a347e Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Sat, 6 Jan 2024 17:59:03 +0000 Subject: [PATCH 181/526] making fixes to eligibility pipeline with updates to property class --- backend/SearchEpc.py | 7 ++++-- etl/eligibility/ha_15_32/app.py | 16 ++++++------- etl/eligibility/ha_15_32/ha7_app.py | 36 ++++++++++++++++++----------- etl/testing_data/estimate_epc.py | 6 ++++- 4 files changed, 39 insertions(+), 26 deletions(-) diff --git a/backend/SearchEpc.py b/backend/SearchEpc.py index b3f58b04..2a2cdfba 100644 --- a/backend/SearchEpc.py +++ b/backend/SearchEpc.py @@ -458,7 +458,7 @@ class SearchEpc: if not epc_data.empty: # Further processing of the EPC data - epc_data['lodgement-datetime'] = pd.to_datetime(epc_data['lodgement-datetime']) + epc_data['lodgement-datetime'] = pd.to_datetime(epc_data['lodgement-datetime'], format='mixed') epc_data = epc_data.sort_values("lodgement-datetime", ascending=False).groupby("uprn").head(1) epc_data["house_number"] = epc_data["address"].apply(lambda add1: self.get_house_number(add1)) epc_data["numeric_house_number"] = epc_data["house_number"].apply( @@ -646,7 +646,7 @@ class SearchEpc: return agg[key].values[0] - def find_property(self): + def find_property(self, skip_os=False): """ This method will attempt to identify a property. It will, at first, use the EPC api to try and find the EPC for the property and the associated UPRN. If this fails, it will use the Ordnance Survey API to @@ -669,6 +669,9 @@ class SearchEpc: return # Step 2: If we don't have an EPC, we use the ordnance survey api to find the uprn + if skip_os: + return + os_response = self.ordnance_survey_client.get_places_api() if os_response["status"] != 200: diff --git a/etl/eligibility/ha_15_32/app.py b/etl/eligibility/ha_15_32/app.py index 48bfeb2c..9a563770 100644 --- a/etl/eligibility/ha_15_32/app.py +++ b/etl/eligibility/ha_15_32/app.py @@ -11,13 +11,12 @@ import numpy as np import msgpack from datetime import datetime, timedelta from utils.logger import setup_logger -from utils.s3 import read_from_s3 +from utils.s3 import read_from_s3, read_dataframe_from_s3_parquet from dotenv import load_dotenv from backend.SearchEpc import SearchEpc from backend.Property import Property from etl.eligibility.Eligibility import Eligibility from etl.epc.DataProcessor import DataProcessor -from backend.app.utils import read_parquet_from_s3 from backend.app.plan.utils import create_recommendation_scoring_data from etl.epc.settings import COLUMNS_TO_MERGE_ON from backend.ml_models.api import ModelApi @@ -348,14 +347,13 @@ def prepare_model_data_row( p = Property( id=property_id, postcode=modelling_epc["postcode"], - address1=modelling_epc["address1"], - epc_client=None, - data=modelling_epc + address=modelling_epc["address1"], + data=modelling_epc, + old_data=old_data, + full_sap_epc=full_sap_epc ) - p.old_data = old_data - p.full_sap_epc = full_sap_epc - p.get_components(cleaned) + p.get_components(cleaned, None, None) # This is temp - this should happen after scoring cleaned_property_data = DataProcessor.apply_averages_cleaning( data_to_clean=pd.DataFrame([dict(**p.get_model_data(), LOCAL_AUTHORITY=p.data["local-authority"])]), @@ -1087,7 +1085,7 @@ def app(): ) cleaned = msgpack.unpackb(cleaned, raw=False) - cleaning_data = read_parquet_from_s3( + cleaning_data = read_dataframe_from_s3_parquet( bucket_name="retrofit-data-dev", file_key="sap_change_model/cleaning_dataset.parquet", ) diff --git a/etl/eligibility/ha_15_32/ha7_app.py b/etl/eligibility/ha_15_32/ha7_app.py index 7d856366..0152ab91 100644 --- a/etl/eligibility/ha_15_32/ha7_app.py +++ b/etl/eligibility/ha_15_32/ha7_app.py @@ -1,3 +1,4 @@ +import os import msgpack import openpyxl from openpyxl.styles.colors import COLOR_INDEX @@ -5,10 +6,9 @@ from pathlib import Path from datetime import datetime import pandas as pd import numpy as np -from utils.s3 import read_from_s3 +from utils.s3 import read_from_s3, read_dataframe_from_s3_parquet from utils.logger import setup_logger from dotenv import load_dotenv -from backend.app.utils import read_parquet_from_s3 from tqdm import tqdm from backend.SearchEpc import SearchEpc from etl.eligibility.Eligibility import Eligibility @@ -17,13 +17,14 @@ from etl.epc.DataProcessor import DataProcessor from etl.epc.settings import COLUMNS_TO_MERGE_ON from backend.ml_models.api import ModelApi -import re - ENV_FILE = Path(__file__).parent / "etl" / "eligibility" / "ha_15_32" / ".env" logger = setup_logger() load_dotenv(ENV_FILE) +EPC_AUTH_TOKEN = os.getenv("EPC_AUTH_TOKEN") +OS_API_KEY = os.getenv("ORDNANCE_SURVEY_API_KEY") + def load_data(): """ @@ -79,20 +80,27 @@ def get_ha7_data(data, cleaned, cleaning_data, created_at): nodata = [] for _, house in tqdm(data.iterrows(), total=len(data)): + if house["Address"] is not None: + address = house["Address"] + else: + address = house["Address2"] + searcher = SearchEpc( - address1=house["Address"], - postcode=house["Postcode"] + address1=address, + postcode=house["Postcode"], + auth_token=EPC_AUTH_TOKEN, + os_api_key=None ) - response = searcher.search() - if response["status"] == 204: - nodata.append(house) + searcher.find_property(skip_os=True) + + if searcher.newest_epc is None: + nodata.append(house["row_id"]) continue - newest_epc, older_epcs, full_sap_epc = searcher.retrieve( - property_type=property_type_lookup.get(house["Property Type"], None), - address=house["Address"], - ) + newest_epc = searcher.newest_epc + older_epcs = searcher.older_epcs + full_sap_epc = searcher.full_sap_epc eligibility = Eligibility(epc=newest_epc, cleaned=cleaned) eligibility.check_gbis_warmfront() @@ -273,7 +281,7 @@ def app(): ) cleaned = msgpack.unpackb(cleaned, raw=False) - cleaning_data = read_parquet_from_s3( + cleaning_data = read_dataframe_from_s3_parquet( bucket_name="retrofit-data-dev", file_key="sap_change_model/cleaning_dataset.parquet", ) diff --git a/etl/testing_data/estimate_epc.py b/etl/testing_data/estimate_epc.py index 9e460678..cd91a540 100644 --- a/etl/testing_data/estimate_epc.py +++ b/etl/testing_data/estimate_epc.py @@ -73,7 +73,9 @@ def app(): df["UPRN"] = df["UPRN"].astype("Int64").astype("str") df = df[~pd.isnull(df["UPRN"])] - uprn_sample = sample(df["UPRN"].unique().tolist(), DIR_SAMPLE_SIZE) + # uprn_sample = sample(df["UPRN"].unique().tolist(), DIR_SAMPLE_SIZE) + # Take a fixed sample based on the first DIR_SAMPLE_SIZE uprns + uprn_sample = sorted(df["UPRN"].unique().tolist())[:DIR_SAMPLE_SIZE] df_sample = df[df["UPRN"].isin(uprn_sample)] # Take the record with the newest LODGEMENT_DATETIME by uprn df_sample = df_sample.sort_values("LODGEMENT_DATETIME", ascending=False).drop_duplicates("UPRN") @@ -149,6 +151,8 @@ def app(): # 0.7859617377809409 # 0.5348837209302325 + # Fixed sample, sqrt weights + # Group by tenure by_tenure = results_df.groupby("tenure").agg( {"numeric_success": "median", "categorical_success": "median", "uprn": "count"} From 756dca12badcaec56ece5454aa699878fa9f5ab0 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Sat, 6 Jan 2024 18:20:54 +0000 Subject: [PATCH 182/526] updated property unit tests --- backend/tests/test_property.py | 157 ++++++++++++++++++--------------- 1 file changed, 88 insertions(+), 69 deletions(-) diff --git a/backend/tests/test_property.py b/backend/tests/test_property.py index 0113d690..09594a40 100644 --- a/backend/tests/test_property.py +++ b/backend/tests/test_property.py @@ -9,6 +9,7 @@ from etl.epc_clean.EpcClean import EpcClean mock_epc_response = { "rows": [ { + "tenure": "rental (social)", "lmk-key": 1, "uprn": 1, "number-habitable-rooms": 5, @@ -17,7 +18,7 @@ mock_epc_response = { "inspection-date": "2023-06-01", 'lodgement-datetime': '2023-06-01 20:29:01', "some-other-key": "some-value", - "roof-description": "Roof Description", + "roof-description": "pitched, no insulation", "walls-description": "Walls Description", "windows-description": "Windows Description", "mainheat-description": "Main Heating Description", @@ -168,29 +169,54 @@ mock_epc_response_dupe = { class TestProperty: + @pytest.fixture(autouse=True) - def property_instance(self, mock_epc_client, mock_cleaner): - property_instance = Property(1, "AB12CD", "Test Address", epc_client=mock_epc_client) + def mock_photo_supply_lookup(self): + return pd.DataFrame( + [ + dict( + tenure="rental (social)", + built_form="Detached", + property_type="House", + construction_age_band="England and Wales: 1967-1975", + is_flat=False, + is_pitched=True, + is_roof_room=False, + floor_area_decile=2, + photo_supply_median=40 + ) + ] + ) + + @pytest.fixture(autouse=True) + def mock_floor_area_decile_thresholds(self): + return pd.DataFrame( + {"floor_area_decile_thresholds": [0, 10, 30, 50]} + ) + + @pytest.fixture(autouse=True) + def property_instance(self, mock_cleaner): + property_instance = Property(id=1, postcode="AB12CD", address="Test Address", data=mock_epc_response["rows"][0]) return property_instance @pytest.fixture(autouse=True) - def property_instance_dupe_data(self, mock_epc_client_dupe_data): - property_instance_dupe_data = Property(2, "AB12CD", "Test Address", epc_client=mock_epc_client_dupe_data) + def property_instance_dupe_data(self): + property_instance_dupe_data = Property(id=2, postcode="AB12CD", address="Test Address") return property_instance_dupe_data - @pytest.fixture - def mock_epc_client(self): - mock_epc_client = Mock(spec=EpcClient(auth_token="mocked_auth_token")) - mock_epc_client.domestic.search.return_value = mock_epc_response.copy() - mock_epc_client.auth_token = "mocked_auth_token" - return mock_epc_client - - @pytest.fixture - def mock_epc_client_dupe_data(self): - mock_epc_client_dupe_data = Mock(spec=EpcClient(auth_token="mocked_auth_token")) - mock_epc_client_dupe_data.domestic.search.return_value = mock_epc_response_dupe.copy() - mock_epc_client_dupe_data.auth_token = "mocked_auth_token" - return mock_epc_client_dupe_data + # @pytest.fixture + # def mock_epc_client(self): + # mock_epc_client = Mock(spec=EpcClient(auth_token="mocked_auth_token")) + # mock_epc_client.domestic.search.return_value = mock_epc_response.copy() + # mock_epc_client.auth_token = "mocked_auth_token" + # return mock_epc_client + # + # @pytest.fixture + # def mock_epc_client_dupe_data(self): + # mock_epc_client_dupe_data = Mock(spec=EpcClient(auth_token="mocked_auth_token")) + # mock_epc_client_dupe_data.domestic.search.return_value = mock_epc_response_dupe.copy() + # mock_epc_client_dupe_data.auth_token = "mocked_auth_token" + # return mock_epc_client_dupe_data @pytest.fixture def mock_cleaner(self): @@ -229,7 +255,11 @@ class TestProperty: } mock_cleaner.cleaned = { - "roof-description": [{"original_description": "Roof Description"}], + "roof-description": [ + {"original_description": "Roof Description"}, + {"original_description": "pitched, no insulation", "is_pitched": True, "is_flat": False, + "is_roof_room": False} + ], "walls-description": [walls_data], "windows-description": [{"original_description": "Windows Description"}], "mainheat-description": [{"original_description": "Main Heating Description"}], @@ -240,37 +270,32 @@ class TestProperty: } return mock_cleaner - def test_init(self, mock_epc_client): - inst1 = Property(0, "AB12CD", "Test Address", epc_client=mock_epc_client) - # Should be mocked auth token - assert inst1.epc_client.auth_token == "mocked_auth_token" + def test_init(self): + inst1 = Property(0, postcode="AB12CD", address="Test Address") - inst2 = Property(3, "AB12CD", "Test Address", epc_client=mock_epc_client) - assert inst2.epc_client.auth_token + assert inst1.data is None - inst3 = Property(4, "AB12CD", "Test Address", data={"some": "data"}, epc_client=mock_epc_client) - assert inst3.data == {"some": "data"} + inst2 = Property(3, "AB12CD", "Test Address") + assert inst2.id == 3 - data = inst3.search_address_epc() - assert data is None + inst3 = Property(4, "AB12CD", "Test Address", data={"some": "data", "uprn": 123}) + assert inst3.data == {"some": "data", "uprn": 123} - def test_search_address_epc(self, property_instance): - # Call the method to test - property_instance.search_address_epc() - - # Verify that the correct data is being returned - assert property_instance.data == mock_epc_response["rows"][0] - - def test_search_address_epc_multiple_results(self, property_instance_dupe_data, mock_epc_client_dupe_data): - with pytest.raises(Exception, match="More than one result found for this address - investigate me"): - property_instance_dupe_data.search_address_epc() - - def test_get_components(self, property_instance, mock_cleaner, mock_epc_client): - property_instance.search_address_epc() - property_instance.get_components(mock_cleaner.cleaned) + def test_get_components( + self, property_instance, mock_cleaner, mock_photo_supply_lookup, mock_floor_area_decile_thresholds + ): + property_instance.get_components( + mock_cleaner.cleaned, + photo_supply_lookup=mock_photo_supply_lookup, + floor_area_decile_thresholds=mock_floor_area_decile_thresholds + ) # Verify that the components are set correctly - assert property_instance.roof == {"original_description": "Roof Description"} + assert property_instance.roof == { + 'original_description': 'pitched, no insulation', 'is_pitched': True, + 'is_flat': False, 'is_roof_room': False + } + assert property_instance.walls == { "original_description": "Walls Description", "is_cavity_wall": True, @@ -294,24 +319,15 @@ class TestProperty: # Verify that ValueError is raised when EpcClean doesn't contain cleaned data with pytest.raises(ValueError, match="Cleaner does not contain cleaned data"): - property_instance.get_components(mock_cleaner.cleaned) + property_instance.get_components(mock_cleaner.cleaned, pd.DataFrame(), pd.DataFrame()) - def test_get_components_no_data(self, property_instance, mock_cleaner): + def test_get_components_no_attributes( + self, property_instance, mock_cleaner, mock_photo_supply_lookup, mock_floor_area_decile_thresholds + ): # Modify the mock cleaner to have no attributes for a specific description mock_cleaner.cleaned = { "roof-description": [] } - - # Verify that ValueError is raised when no attributes are found - with pytest.raises(ValueError, match="Property does not contain data"): - property_instance.get_components(mock_cleaner.cleaned) - - def test_get_components_no_attributes(self, property_instance, mock_cleaner): - # Modify the mock cleaner to have no attributes for a specific description - mock_cleaner.cleaned = { - "roof-description": [] - } - property_instance.search_address_epc() property_instance.data["roof-description"] = "Pitched, no insulation" property_instance.walls = { "original_description": "Walls Description", @@ -332,14 +348,17 @@ class TestProperty: } # Assert backup cleaning has been applied - property_instance.get_components(mock_cleaner.cleaned) + property_instance.get_components( + mock_cleaner.cleaned, mock_photo_supply_lookup, mock_floor_area_decile_thresholds + ) assert property_instance.roof["clean_description"] == "Pitched, no insulation" assert property_instance.roof["is_pitched"] - def test_get_components_multiple_attributes(self, property_instance, mock_cleaner): + def test_get_components_multiple_attributes( + self, property_instance, mock_cleaner, mock_photo_supply_lookup, mock_floor_area_decile_thresholds + ): # This shouldn't happen - it would mean a cleaning error - property_instance.search_address_epc() property_instance.data["roof-description"] = "Roof Description" cleaned = { "roof-description": [ @@ -350,10 +369,10 @@ class TestProperty: # Verify that ValueError is raised when multiple attributes are found with pytest.raises(ValueError, match="Either No attributes or multiple found for roof-description"): - property_instance.get_components(cleaned) + property_instance.get_components(cleaned, mock_photo_supply_lookup, mock_floor_area_decile_thresholds) - def test_set_spatial(self, mock_epc_client): - prop = Property(1, "AB12CD", "Test Address", mock_epc_client) + def test_set_spatial(self): + prop = Property(1, postcode="AB12CD", address="Test Address") spatial1 = pd.DataFrame([{ 'X_COORDINATE': 411143.0, 'Y_COORDINATE': 281701.0, 'LATITUDE': 52.4331896, 'LONGITUDE': -1.8375238, @@ -367,7 +386,7 @@ class TestProperty: assert prop.is_heritage assert prop.restricted_measures - prop2 = Property(1, "AB12CD", "Test Address", mock_epc_client) + prop2 = Property(1, "AB12CD", "Test Address") spatial2 = pd.DataFrame([{ 'X_COORDINATE': 411143.0, 'Y_COORDINATE': 281701.0, 'LATITUDE': 52.4331896, 'LONGITUDE': -1.8375238, @@ -381,10 +400,10 @@ class TestProperty: assert not prop2.is_heritage assert not prop2.restricted_measures - def test_set_floor_level(self, mock_epc_client): + def test_set_floor_level(self): # In this case, we have a flat which looks looks it's on the first floor, but it's actually on the ground # floor, so we should set floor_level to 0 - prop = Property(1, "AB12CD", "Test Address", mock_epc_client) + prop = Property(1, postcode="AB12CD", address="Test Address") prop.data = {'floor-level': '01', 'property-type': 'Flat'} prop.floor = { 'original_description': 'Solid, no insulation (assumed)', 'clean_description': 'Solid, no insulation', @@ -400,7 +419,7 @@ class TestProperty: # This property is labelled as being on the ground floor but actually has another property below # so we set floor level to 1 - prop2 = Property(1, "AB12CD", "Test Address", mock_epc_client) + prop2 = Property(1, postcode="AB12CD", address="Test Address") prop2.data = {'floor-level': 'Ground', 'property-type': 'Flat'} prop2.floor = { 'original_description': '(Another dwelling below)', 'clean_description': 'Solid, no insulation', @@ -415,7 +434,7 @@ class TestProperty: assert prop2.floor_level == 1 # this property is correctly labelled as being on the 2nd floor - prop3 = Property(1, "AB12CD", "Test Address", mock_epc_client) + prop3 = Property(1, postcode="AB12CD", address="Test Address") prop3.data = {'floor-level': '02', 'property-type': 'Flat'} prop3.floor = { 'original_description': '(Another dwelling below)', 'clean_description': 'Solid, no insulation', @@ -430,7 +449,7 @@ class TestProperty: assert prop3.floor_level == 2 # Example of a house - prop4 = Property(1, "AB12CD", "Test Address", mock_epc_client) + prop4 = Property(1, postcode="AB12CD", address="Test Address") prop4.data = {'floor-level': '', 'property-type': 'House'} prop4.floor = { 'original_description': '(Another dwelling below)', 'clean_description': 'Solid, no insulation', From 6335be531f1f3c4bab85cd3f739ac7b482aad6c5 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Sat, 6 Jan 2024 18:22:37 +0000 Subject: [PATCH 183/526] partially fixed test_sap_model_prep --- backend/tests/test_sap_model_prep.py | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/backend/tests/test_sap_model_prep.py b/backend/tests/test_sap_model_prep.py index f20e4993..c1ff514e 100644 --- a/backend/tests/test_sap_model_prep.py +++ b/backend/tests/test_sap_model_prep.py @@ -2,7 +2,6 @@ from backend.Property import Property from etl.epc.DataProcessor import DataProcessor from backend.app.plan.utils import create_recommendation_scoring_data, get_cleaned from etl.epc.settings import COLUMNS_TO_MERGE_ON -from epc_api.client import EpcClient import pandas as pd import pytest import msgpack @@ -288,8 +287,7 @@ class TestSapModelPrep: home = Property( id=0, postcode=starting_epc["postcode"], - address1=starting_epc["address1"], - epc_client=EpcClient(auth_token="notoken"), + address=starting_epc["address1"], data=starting_epc ) home.get_components(cleaned) @@ -508,8 +506,7 @@ class TestSapModelPrep: home2 = Property( id=0, postcode=starting_epc2["postcode"], - address1=starting_epc2["address1"], - epc_client=EpcClient(auth_token="notoken"), + address=starting_epc2["address1"], data=starting_epc2 ) home2.get_components(cleaned) @@ -728,8 +725,7 @@ class TestSapModelPrep: home3 = Property( id=0, postcode=starting_epc3["postcode"], - address1=starting_epc3["address1"], - epc_client=EpcClient(auth_token="notoken"), + address=starting_epc3["address1"], data=starting_epc3 ) home3.get_components(cleaned) @@ -937,8 +933,7 @@ class TestSapModelPrep: home4 = Property( id=0, postcode=starting_epc4["postcode"], - address1=starting_epc4["address1"], - epc_client=EpcClient(auth_token="notoken"), + address=starting_epc4["address1"], data=starting_epc4 ) home4.get_components(cleaned) From 3eead1928fc54392a5fcd1dc24ba4240e6730f27 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Sat, 6 Jan 2024 18:24:01 +0000 Subject: [PATCH 184/526] fixed unit tests for fireplace recs --- recommendations/tests/test_fireplace_recommendations.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recommendations/tests/test_fireplace_recommendations.py b/recommendations/tests/test_fireplace_recommendations.py index 570fbb5c..a91d6697 100644 --- a/recommendations/tests/test_fireplace_recommendations.py +++ b/recommendations/tests/test_fireplace_recommendations.py @@ -6,7 +6,7 @@ from recommendations.FireplaceRecommendations import FireplaceRecommendations class TestFirepaceRecommendations: def test_no_fireplaces(self): - property_instance = Property(id=0, address1="fake", postcode="fake", epc_client=Mock()) + property_instance = Property(id=0, address="fake", postcode="fake") property_instance.data = { "number-open-fireplaces": 0 } @@ -22,7 +22,7 @@ class TestFirepaceRecommendations: assert recommender.recommendation is None def test_one_fireplace(self): - property_instance = Property(id=0, address1="fake", postcode="fake", epc_client=Mock()) + property_instance = Property(id=0, address="fake", postcode="fake") property_instance.data = { "number-open-fireplaces": 1 } @@ -40,7 +40,7 @@ class TestFirepaceRecommendations: assert recommender.recommendation[0]["total"] == 300 def test_multiple_fireplaces(self): - property_instance = Property(id=0, address1="fake", postcode="fake", epc_client=Mock()) + property_instance = Property(id=0, address="fake", postcode="fake") property_instance.data = { "number-open-fireplaces": 3 } From dc6369fa6d04fc696fbc5a22226bf6f3d9d948fd Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Sat, 6 Jan 2024 18:26:16 +0000 Subject: [PATCH 185/526] removed unnecessary code from floor recs --- recommendations/tests/test_floor_recommendations.py | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/recommendations/tests/test_floor_recommendations.py b/recommendations/tests/test_floor_recommendations.py index 700d33d3..555f9a27 100644 --- a/recommendations/tests/test_floor_recommendations.py +++ b/recommendations/tests/test_floor_recommendations.py @@ -21,16 +21,6 @@ class TestFloorRecommendations: ) as f: return pickle.load(f) - @pytest.fixture - def mock_floor_rec_instance(self): - # Creating a mock instance of WallRecommendations with the necessary attributes - property_mock = Mock() - property_mock.full_sap_epc = {"lodgement-date": "2000-01-01"} - property_mock.data = {"county": "York"} - - mock_wall_rec_instance = FloorRecommendations(property_mock, materials) - return mock_wall_rec_instance - def test_init(self, input_properties): input_properties[0].insulation_floor_area = 50 input_properties[0].insulation_wall_area = 90 From d7e8cf889dad6e3c9df415672780d2bf660dbb21 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Sat, 6 Jan 2024 18:27:12 +0000 Subject: [PATCH 186/526] fixing lighting recommendations tests --- recommendations/tests/test_lighting_recommendations.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recommendations/tests/test_lighting_recommendations.py b/recommendations/tests/test_lighting_recommendations.py index 5a4545eb..964f1da0 100644 --- a/recommendations/tests/test_lighting_recommendations.py +++ b/recommendations/tests/test_lighting_recommendations.py @@ -9,7 +9,7 @@ from recommendations.tests.test_data.materials import materials class TestLightingRecommendations: def test_init_invalid_materials(self): - input_property0 = Property(id=1, postcode="F4k3 6", address1="623 fake street", epc_client=Mock()) + input_property0 = Property(id=1, postcode="F4k3 6", address="623 fake street") input_property0.lighting = {"low_energy_proportion": 0} input_property0.data = {"county": "Greater London Authority"} # Test for invalid materials @@ -18,7 +18,7 @@ class TestLightingRecommendations: def test_recommend_no_action_needed(self): # Case where no recommendation is needed - input_property1 = Property(id=1, postcode="F4k3 6", address1="623 fake street", epc_client=Mock()) + input_property1 = Property(id=1, postcode="F4k3 6", address="623 fake street") input_property1.lighting = {"low_energy_proportion": 100} input_property1.data = {"county": "Greater London Authority"} @@ -28,7 +28,7 @@ class TestLightingRecommendations: def test_recommend_action_needed(self): # Case where recommendation is needed - input_property1 = Property(id=1, postcode="F4k3 6", address1="623 fake street", epc_client=Mock()) + input_property1 = Property(id=1, postcode="F4k3 6", address="623 fake street") input_property1.lighting = {"low_energy_proportion": 100} input_property1.data = {"county": "Greater London Authority"} input_property1.lighting = {"low_energy_proportion": 0.80} From b4d4c2128b5469474c93d9126848f27c57a219ed Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Sat, 6 Jan 2024 18:29:10 +0000 Subject: [PATCH 187/526] fix roof recs --- .../tests/test_roof_recommendations.py | 21 +++++++++---------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/recommendations/tests/test_roof_recommendations.py b/recommendations/tests/test_roof_recommendations.py index 903f598b..c1a7dfd9 100644 --- a/recommendations/tests/test_roof_recommendations.py +++ b/recommendations/tests/test_roof_recommendations.py @@ -1,5 +1,4 @@ from backend.Property import Property -from unittest.mock import Mock from recommendations.RoofRecommendations import RoofRecommendations from recommendations.tests.test_data.materials import materials @@ -7,7 +6,7 @@ from recommendations.tests.test_data.materials import materials class TestRoofRecommendations: def test_loft_insulation_recommendation_no_insulation(self): - property_instance = Property(id=0, address1="fake", postcode="fake", epc_client=Mock()) + property_instance = Property(id=0, address="fake", postcode="fake") property_instance.age_band = "F" property_instance.insulation_floor_area = 100 property_instance.roof = { @@ -32,7 +31,7 @@ class TestRoofRecommendations: assert len(roof_recommender.recommendations) def test_loft_insulation_recommendation_50mm_insulation(self): - property_instance2 = Property(id=0, address1="fake", postcode="fake", epc_client=Mock()) + property_instance2 = Property(id=0, address="fake", postcode="fake") property_instance2.age_band = "F" property_instance2.insulation_floor_area = 100 property_instance2.roof = { @@ -58,7 +57,7 @@ class TestRoofRecommendations: assert roof_recommender2.recommendations[0]["new_u_value"] == 0.14 assert roof_recommender2.recommendations[0]["starting_u_value"] == 0.68 - property_instance3 = Property(id=0, address1="fake", postcode="fake", epc_client=Mock()) + property_instance3 = Property(id=0, address="fake", postcode="fake") property_instance3.age_band = "F" property_instance3.insulation_floor_area = 100 property_instance3.roof = { @@ -83,7 +82,7 @@ class TestRoofRecommendations: assert roof_recommender3.recommendations[0]["parts"][0]["depth"] == 270 def test_loft_insulation_recommendation_150mm_insulation(self): - property_instance4 = Property(id=0, address1="fake", postcode="fake", epc_client=Mock()) + property_instance4 = Property(id=0, address="fake", postcode="fake") property_instance4.age_band = "F" property_instance4.insulation_floor_area = 100 property_instance4.roof = { @@ -110,7 +109,7 @@ class TestRoofRecommendations: assert roof_recommender4.recommendations[0]["starting_u_value"] == 0.3 assert roof_recommender4.recommendations[0]["parts"][0]["depth"] == 150 - property_instance5 = Property(id=0, address1="fake", postcode="fake", epc_client=Mock()) + property_instance5 = Property(id=0, address="fake", postcode="fake") property_instance5.age_band = "F" property_instance5.insulation_floor_area = 100 property_instance5.roof = { @@ -137,7 +136,7 @@ class TestRoofRecommendations: def test_loft_insulation_recommendation_270mm_insulation(self): # We shouldn't recommend anything in this case - property_instance6 = Property(id=0, address1="fake", postcode="fake", epc_client=Mock()) + property_instance6 = Property(id=0, address="fake", postcode="fake") property_instance6.age_band = "F" property_instance6.insulation_floor_area = 100 property_instance6.roof = { @@ -278,7 +277,7 @@ class TestRoofRecommendations: # "Insulate your room roof with 270mm of Example room roof insulation" def test_flat_no_insulation(self): - property_instance11 = Property(id=11, address1="fake", postcode="fake", epc_client=Mock()) + property_instance11 = Property(id=11, address="fake", postcode="fake") property_instance11.age_band = "D" property_instance11.insulation_floor_area = 33.5 property_instance11.perimeter = 24 @@ -307,7 +306,7 @@ class TestRoofRecommendations: "Insulate the home's flat roof with 150mm of Ecotherm Eco-Versal General Purpose Insulation Board" def test_flat_insulated(self): - property_instance12 = Property(id=12, address1="fake", postcode="fake", epc_client=Mock()) + property_instance12 = Property(id=12, address="fake", postcode="fake") property_instance12.age_band = "D" property_instance12.insulation_floor_area = 40 property_instance12.perimeter = 30 @@ -331,7 +330,7 @@ class TestRoofRecommendations: assert not roof_recommender12.recommendations def test_flat_limited_insulation(self): - property_instance13 = Property(id=12, address1="fake", postcode="fake", epc_client=Mock()) + property_instance13 = Property(id=12, address="fake", postcode="fake") property_instance13.age_band = "D" property_instance13.insulation_floor_area = 40 property_instance13.perimeter = 40 @@ -363,7 +362,7 @@ class TestRoofRecommendations: "Insulate the home's flat roof with 150mm of Ecotherm Eco-Versal General Purpose Insulation Board" def test_property_above(self): - property_instance14 = Property(id=0, address1="fake", postcode="fake", epc_client=Mock()) + property_instance14 = Property(id=0, address="fake", postcode="fake") property_instance14.age_band = "F" property_instance14.insulation_floor_area = 100 property_instance14.roof = { From f78078384b238fcd618c94cfcde49f96631c50a8 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Tue, 9 Jan 2024 10:36:30 +0000 Subject: [PATCH 188/526] working on wft sales analysis --- backend/Property.py | 20 ++-- backend/SearchEpc.py | 37 +++++++- etl/eligibility/Eligibility.py | 10 +- etl/eligibility/ha_15_32/app.py | 8 +- etl/eligibility/ha_15_32/ha16_app.py | 94 +++++++++++++++---- etl/eligibility/ha_15_32/ha24_app.py | 93 +++++++++++++----- etl/eligibility/ha_15_32/ha7_app.py | 30 ++++-- etl/solar/SolarPhotoSupply.py | 15 ++- .../tests/test_ventilation_recommendations.py | 11 +-- .../tests/test_wall_recommendations.py | 14 +-- .../tests/test_window_recommendations.py | 28 ++---- 11 files changed, 261 insertions(+), 99 deletions(-) diff --git a/backend/Property.py b/backend/Property.py index 3dbcc2b8..5713c179 100644 --- a/backend/Property.py +++ b/backend/Property.py @@ -150,7 +150,7 @@ class Property(Definitions): """ solar_pv = self.data["photo-supply"] - if solar_pv == "": + if solar_pv in ["", None]: solar_pv = None else: solar_pv = float(solar_pv) @@ -170,6 +170,7 @@ class Property(Definitions): "Y": True, "N": False, "": None, + None: None, } self.solar_hot_water = { @@ -245,8 +246,8 @@ class Property(Definitions): # it self.data["built-form"] = BUILT_FORM_REMAP.get(self.data["built-form"], self.data["built-form"]) if self.data["built-form"] in self.DATA_ANOMALY_MATCHES: - if self.data["property-type"] == "Flat": - self.data["built-form"] = "Semi-Detached" + if self.data["property-type"] in ["Flat", "Maisonette"]: + self.data["built-form"] = "End-Terrace" self.set_year_built() self.set_energy() @@ -394,7 +395,8 @@ class Property(Definitions): map = { "no corridor": False, "unheated corridor": True, - "heated corridor": False + "heated corridor": False, + None: False } if self.data["heat-loss-corridor"] in self.DATA_ANOMALY_MATCHES: @@ -403,7 +405,7 @@ class Property(Definitions): has_heat_loss_corridor = map[self.data["heat-loss-corridor"]] length = self.data["unheated-corridor-length"] - if length == "": + if length in ["", None]: length = None else: length = float(length) @@ -579,7 +581,7 @@ class Property(Definitions): self.floor_area = float(self.data["total-floor-area"]) if not self.data["number-habitable-rooms"] or ( - self.data["floor-height"] == "" or self.data["floor-height"] in self.DATA_ANOMALY_MATCHES + self.data["floor-height"] in ["", None] or self.data["floor-height"] in self.DATA_ANOMALY_MATCHES ): if self.property_dimensions is None: property_dimensions = read_dataframe_from_s3_parquet( @@ -601,7 +603,7 @@ class Property(Definitions): else: raise NotImplementedError("Implement me") - if self.data["floor-height"] == "" or self.data["floor-height"] in self.DATA_ANOMALY_MATCHES: + if self.data["floor-height"] in [None, ""] or self.data["floor-height"] in self.DATA_ANOMALY_MATCHES: self.floor_height = float(self.property_dimensions["FLOOR_HEIGHT"].round(2)) else: self.floor_height = float(self.data["floor-height"]) @@ -626,7 +628,7 @@ class Property(Definitions): def set_floor_level(self): self.floor_level = ( FLOOR_LEVEL_MAP[self.data["floor-level"]] if - self.data["floor-level"] not in self.DATA_ANOMALY_MATCHES else None + self.data["floor-level"] not in list(self.DATA_ANOMALY_MATCHES) + [None] else None ) if self.floor_level is None: @@ -794,7 +796,7 @@ class Property(Definitions): :return: """ - if self.data["fixed-lighting-outlets-count"] == "": + if self.data["fixed-lighting-outlets-count"] in [None, ""]: # We check old EPCs and the full SAP EPC diff --git a/backend/SearchEpc.py b/backend/SearchEpc.py index 2a2cdfba..d69d8d86 100644 --- a/backend/SearchEpc.py +++ b/backend/SearchEpc.py @@ -146,6 +146,7 @@ class SearchEpc: max_retries: int = None, uprn: [int, None] = None, size=None, + property_type=None, ): """ Address lines 1 and postcode are mandatory fields. The other address lines are optional @@ -157,6 +158,7 @@ class SearchEpc: :param uprn: int, optional, the uprn of the property :param size: int, optional, the number of results to return. If not provided, defaults to 25 which is the api's default + :param property_type: str, optional, the property type of the property, if known before hand """ self.address1 = address1 @@ -184,6 +186,8 @@ class SearchEpc: self.size = size if size is not None else 25 + self.property_type = property_type + @classmethod def get_house_number(cls, address: str) -> str | None: """ @@ -335,7 +339,7 @@ class SearchEpc: return address, postcode - def extract_epc_data(self, property_type=None, address=None): + def extract_epc_data(self, address=None): """ Given a successful search, this method will format the data and return it @@ -351,7 +355,7 @@ class SearchEpc: # Firstly, we should only have 1 urpn so if we have multiple, we'll need to filter down the # property further - rows = self.filter_rows(rows, property_type=property_type, address=None) + rows = self.filter_rows(rows, property_type=self.property_type, address=None) rows = self.filter_rows(rows, property_type=None, address=address) # We now check for a full sap epc: @@ -366,9 +370,19 @@ class SearchEpc: # Ge the uprn from the newest record for this home uprns = {r["uprn"] for r in rows if r["uprn"]} - if len(uprns) != 1: - raise ValueError("Multiple UPRNs found - investigate me") - uprn = uprns.pop() + # We can sometimes have no uprn for a property + if (len(uprns) == 0) and len(rows) > 0: + logger.warning("Found data but missing uprn") + elif len(uprns) != 1: + # There is a possibility that we have multiple UPRNs for a single property, which is an error + addresses = {r["address"] for r in rows} + if len(addresses) == 1: + # Take the uprn from the most recent + uprns = {newest_epc["uprn"]} + else: + raise ValueError("Multiple UPRNs found - investigate me") + + uprn = uprns.pop() if uprns else None return newest_epc, older_epcs, full_sap_epc, address_epc, postcode_epc, uprn @@ -670,6 +684,19 @@ class SearchEpc: # Step 2: If we don't have an EPC, we use the ordnance survey api to find the uprn if skip_os: + if self.ordnance_survey_client.property_type is not None: + # We can try and estimate + estimated_epc = self.estimate_epc( + property_type=self.ordnance_survey_client.property_type, + built_form=self.ordnance_survey_client.built_form + ) + self.newest_epc = estimated_epc + self.older_epcs = [] + self.full_sap_epc = {} + + # Finally, set a standardised address 1 and postcode + self.address_clean = self.ordnance_survey_client.address_os + self.postcode_clean = self.ordnance_survey_client.postcode_os return os_response = self.ordnance_survey_client.get_places_api() diff --git a/etl/eligibility/Eligibility.py b/etl/eligibility/Eligibility.py index 364be3cc..c9d75606 100644 --- a/etl/eligibility/Eligibility.py +++ b/etl/eligibility/Eligibility.py @@ -333,7 +333,8 @@ class Eligibility: """ current_sap = int(self.epc["current-energy-efficiency"]) - if current_sap > 54: + + if current_sap >= 69: self.eco4_warmfront = { "eligible": False, "message": "sap too high" @@ -347,7 +348,12 @@ class Eligibility: is_eligible = self.cavity["suitability"] & self.loft["suitability"] if post_retrofit_sap is None: - message = "subject to post retrofit sap" if is_eligible else "not eligible" + + if current_sap >= 55: + message = "Possibly eligible but property currently EPC D" + else: + message = "subject to post retrofit sap" if is_eligible else "not eligible" + self.eco4_warmfront = { "eligible": is_eligible, "message": message diff --git a/etl/eligibility/ha_15_32/app.py b/etl/eligibility/ha_15_32/app.py index 9a563770..3a0caec6 100644 --- a/etl/eligibility/ha_15_32/app.py +++ b/etl/eligibility/ha_15_32/app.py @@ -246,6 +246,8 @@ def merge_ha_15(asset_list, identified_addresses): identified_addresses = identified_addresses.drop_duplicates("merge_key") + # We pull out raw counts for the survey lists + # Check asset list for dupes asset_list_dupes = asset_list["merge_key"].duplicated() if asset_list_dupes.sum(): @@ -336,7 +338,8 @@ def merge_ha_15(asset_list, identified_addresses): def prepare_model_data_row( - property_id, modelling_epc, cleaned, cleaning_data, created_at, old_data=None, full_sap_epc=None + property_id, modelling_epc, cleaned, cleaning_data, created_at, + photo_supply_lookup, floor_area_decile_thresholds, old_data=None, full_sap_epc=None, ): """ This function prepares the data for modelling, in the same fashion as the recommendation engine @@ -353,7 +356,8 @@ def prepare_model_data_row( full_sap_epc=full_sap_epc ) - p.get_components(cleaned, None, None) + p.get_components(cleaned, photo_supply_lookup=photo_supply_lookup, + floor_area_decile_thresholds=floor_area_decile_thresholds) # This is temp - this should happen after scoring cleaned_property_data = DataProcessor.apply_averages_cleaning( data_to_clean=pd.DataFrame([dict(**p.get_model_data(), LOCAL_AUTHORITY=p.data["local-authority"])]), diff --git a/etl/eligibility/ha_15_32/ha16_app.py b/etl/eligibility/ha_15_32/ha16_app.py index 7c1db158..bd19fe97 100644 --- a/etl/eligibility/ha_15_32/ha16_app.py +++ b/etl/eligibility/ha_15_32/ha16_app.py @@ -1,6 +1,6 @@ +import os import msgpack import openpyxl -from openpyxl.styles.colors import COLOR_INDEX from pathlib import Path from datetime import datetime import pandas as pd @@ -8,7 +8,7 @@ import numpy as np from utils.s3 import read_from_s3 from utils.logger import setup_logger from dotenv import load_dotenv -from backend.app.utils import read_parquet_from_s3 +from utils.s3 import read_dataframe_from_s3_parquet from tqdm import tqdm from backend.SearchEpc import SearchEpc from etl.eligibility.Eligibility import Eligibility @@ -16,10 +16,12 @@ from etl.eligibility.ha_15_32.app import prepare_model_data_row from etl.epc.DataProcessor import DataProcessor from etl.epc.settings import COLUMNS_TO_MERGE_ON from backend.ml_models.api import ModelApi +from etl.solar.SolarPhotoSupply import SolarPhotoSupply import re ENV_FILE = Path(__file__).parent / "etl" / "eligibility" / "ha_15_32" / ".env" +EPC_AUTH_TOKEN = os.getenv("EPC_AUTH_TOKEN") logger = setup_logger() load_dotenv(ENV_FILE) @@ -250,24 +252,55 @@ def load_data(): return data, survey_list -def get_epc_data(data, cleaned, cleaning_data, created_at): +def get_epc_data(data, cleaned, cleaning_data, created_at, photo_supply_lookup, floor_area_decile_thresholds): scoring_data = [] results = [] nodata = [] - for _, property_meta in tqdm(data.iterrows(), total=len(data)): + property_type_lookup = { + 'Semi Detached Bungalow': {"property-type": "Bungalow", "built-form": "Semi-Detached"}, + 'Mid Terraced House': {"property-type": "House", "built-form": "Mid-Terrace"}, + 'End Terraced House': {"property-type": "House", "built-form": "End-Terrace"}, + 'Low Rise Flat': {"property-type": "Flat", "built-form": "Mid-Terrace"}, + 'Semi-Detached House': {"property-type": "House", "built-form": "Semi-Detached"}, + 'Detached Bungalow': {"property-type": "Bungalow", "built-form": "Detached"}, + 'End Terraced Bungalow': {"property-type": "Bungalow", "built-form": "End-Terrace"}, + 'Mid Terraced Bungalow': {"property-type": "Bungalow", "built-form": "Mid-Terrace"}, + 'Medium Rise Flat': {"property-type": "Flat", "built-form": "Mid-Terrace"}, + 'Detached House': {"property-type": "House", "built-form": "Detached"}, + 'Cottage Flat': {"property-type": "Flat", "built-form": "Semi-Detached"}, + 'Maisonette Medium Rise': {"property-type": "Flat", "built-form": "Mid-Terrace"}, + 'Maisonette Over Shop': {"property-type": "Flat", "built-form": "Mid-Terrace"}, + 'End Terraced Town House': {"property-type": "House", "built-form": "End-Terrace"}, + 'Flat Over Shop': {"property-type": "Flat", "built-form": "Mid-Terrace"}, + 'Mid Terraced Town House': {"property-type": "House", "built-form": "Mid-Terrace"}, + } + + for index, property_meta in tqdm(data.iterrows(), total=len(data)): + searcher = SearchEpc( address1=property_meta["HouseNo"], postcode=property_meta["Postcode"], - size=1000 + auth_token=EPC_AUTH_TOKEN, + os_api_key=None, + full_address=property_meta["Address"] ) - searcher.search() + searcher.ordnance_survey_client.property_type = property_type_lookup[property_meta["Type"]]["property-type"] + searcher.ordnance_survey_client.built_form = property_type_lookup[property_meta["Type"]]["built-form"] + searcher.find_property(skip_os=True) - if searcher.data is None: + if searcher.newest_epc is None: nodata.append(property_meta) continue - newest_epc, older_epcs, full_sap_epc = searcher.retrieve(address=property_meta["Address"]) + if searcher.newest_epc.get("estimated"): + # We insert the row ID as our proxy for UPRN + proxy_uprn = int(property_meta["row_id"].split("_")[1]) + searcher.newest_epc["uprn"] = proxy_uprn + + newest_epc = searcher.newest_epc + older_epcs = searcher.older_epcs + full_sap_epc = searcher.full_sap_epc # We also want to get the penultimate epc penultimate_epc, _ = searcher.filter_newest_epc(older_epcs) if not penultimate_epc: @@ -277,16 +310,14 @@ def get_epc_data(data, cleaned, cleaning_data, created_at): eligibility.check_gbis_warmfront() eligibility.check_eco4_warmfront() - if (not eligibility.eco4_warmfront["eligible"]) and (not eligibility.gbis_warmfront) and ( - property_meta["warmfront_identified"] - ): + if (not eligibility.eco4_warmfront["eligible"]) and (not eligibility.gbis_warmfront): eligibility = Eligibility(epc=penultimate_epc, cleaned=cleaned) eligibility.check_gbis_warmfront() eligibility.check_eco4_warmfront() # If this is the case, we need to update the older epcs - older_epcs = [ - x for x in older_epcs if x["lmk-key"] not in [newest_epc["lmk-key"], penultimate_epc["lmk-key"]] - ] + # We don't update just to make data cleaning easier + if penultimate_epc.get("estimated") is None: + older_epcs = [x for x in searcher.data["rows"] if x["lmk-key"] != penultimate_epc["lmk-key"]] # Full checks eligibility.check_gbis() @@ -303,7 +334,9 @@ def get_epc_data(data, cleaned, cleaning_data, created_at): cleaning_data=cleaning_data, created_at=created_at, old_data=older_epcs, - full_sap_epc=full_sap_epc + full_sap_epc=full_sap_epc, + photo_supply_lookup=photo_supply_lookup, + floor_area_decile_thresholds=floor_area_decile_thresholds ) scoring_data.extend(scoring_dictionary) @@ -433,6 +466,18 @@ def analyse_results(results_df, data, survey_list): how="left", on="survey_key" ) + all_identified_eco = analysis_data[ + (analysis_data["warmfront_identified"] & analysis_data["funding_scheme"].isin( + ["ECO4 A/W", "AFFORDABLE WARMTH"])) | + (analysis_data["eco4_eligible"]) + ] + + all_identified_gbis = analysis_data[ + (analysis_data["warmfront_identified"] & analysis_data["funding_scheme"].isin( + ["ECO4 GBIS (ECO+)"])) | + (analysis_data["gbis_eligible"] & analysis_data["eco4_eligible"].isin([False, None])) + ] + warmfront_identified = analysis_data[analysis_data["warmfront_identified"]] # Of the ECO jobs, what proportion to we get right @@ -482,17 +527,22 @@ def app(): ) cleaned = msgpack.unpackb(cleaned, raw=False) - cleaning_data = read_parquet_from_s3( + cleaning_data = read_dataframe_from_s3_parquet( bucket_name="retrofit-data-dev", file_key="sap_change_model/cleaning_dataset.parquet", ) created_at = datetime.now().isoformat() - results_df, scoring_data, nodata = get_epc_data(data, cleaned, cleaning_data, created_at) + photo_supply_lookup, floor_area_decile_thresholds = SolarPhotoSupply.load(bucket="retrofit-data-dev") + + results_df, scoring_data, nodata = get_epc_data( + data, cleaned, cleaning_data, created_at, photo_supply_lookup, floor_area_decile_thresholds + ) # Store + # Old file was ha16.pickle # import pickle - # with open("ha16.pickle", "wb") as f: + # with open("ha16_8_jan_2.pickle", "wb") as f: # pickle.dump( # { # "scoring_data": scoring_data, @@ -500,3 +550,11 @@ def app(): # "nodata": nodata # }, f # ) + + # Read pickle + # import pickle + # with open("ha16.pickle", "rb") as f: + # saved = pickle.load(f) + # scoring_data = saved["scoring_data"] + # results_df = saved["results"] + # nodata = saved["nodata"] diff --git a/etl/eligibility/ha_15_32/ha24_app.py b/etl/eligibility/ha_15_32/ha24_app.py index 3edf8735..0f82f30a 100644 --- a/etl/eligibility/ha_15_32/ha24_app.py +++ b/etl/eligibility/ha_15_32/ha24_app.py @@ -1,14 +1,13 @@ +import os import msgpack import openpyxl -from openpyxl.styles.colors import COLOR_INDEX from pathlib import Path from datetime import datetime import pandas as pd import numpy as np -from utils.s3 import read_from_s3 +from utils.s3 import read_from_s3, read_dataframe_from_s3_parquet from utils.logger import setup_logger from dotenv import load_dotenv -from backend.app.utils import read_parquet_from_s3 from tqdm import tqdm from backend.SearchEpc import SearchEpc from etl.eligibility.Eligibility import Eligibility @@ -16,9 +15,9 @@ from etl.eligibility.ha_15_32.app import prepare_model_data_row from etl.epc.DataProcessor import DataProcessor from etl.epc.settings import COLUMNS_TO_MERGE_ON from backend.ml_models.api import ModelApi +from etl.solar.SolarPhotoSupply import SolarPhotoSupply -import re - +EPC_AUTH_TOKEN = os.getenv("EPC_AUTH_TOKEN") ENV_FILE = Path(__file__).parent / "etl" / "eligibility" / "ha_15_32" / ".env" logger = setup_logger() @@ -170,24 +169,46 @@ def load_data(): return data, survey_list -def get_epc_data(data, cleaned, cleaning_data, created_at): +def get_epc_data(data, cleaned, cleaning_data, created_at, photo_supply_lookup, floor_area_decile_thresholds): scoring_data = [] results = [] nodata = [] + property_type_lookup = { + "01 HOUSE": "House", + "02 FLAT": "Flat", + "03 BUNGALOW": "Bungalow", + "05 BEDSIT": "Flat", + "04 MAISONETTE": "Maisonette", + "01 HOUSE MID": "House", + "10 PBUNGALOW": "Bungalow", + "14 SFLAT": "Flat", + "12 SBEDSIT": "Flat", + "11 PFLAT": "Flat", + "13 SBUNGALOW": "Bungalow", + " 01 HOUSE MID": "House", + "09 PBEDSIT": "Flat" + } + for _, property_meta in tqdm(data.iterrows(), total=len(data)): + searcher = SearchEpc( address1=property_meta["HouseNo"], postcode=property_meta["Postcode"], - size=1000 + auth_token=EPC_AUTH_TOKEN, + os_api_key=None, + full_address=property_meta["Address"] ) - searcher.search() + searcher.ordnance_survey_client.property_type = property_type_lookup[property_meta["Property Type"]] + searcher.find_property(skip_os=True) - if searcher.data is None: + if searcher.newest_epc is None: nodata.append(property_meta) continue - newest_epc, older_epcs, full_sap_epc = searcher.retrieve(address=property_meta["Address"]) + newest_epc = searcher.newest_epc + older_epcs = searcher.older_epcs + full_sap_epc = searcher.full_sap_epc # We also want to get the penultimate epc penultimate_epc, _ = searcher.filter_newest_epc(older_epcs) if not penultimate_epc: @@ -197,23 +218,25 @@ def get_epc_data(data, cleaned, cleaning_data, created_at): eligibility.check_gbis_warmfront() eligibility.check_eco4_warmfront() - if (not eligibility.eco4_warmfront["eligible"]) and (not eligibility.gbis_warmfront) and ( - property_meta["warmfront_identified"] - ): + if (not eligibility.eco4_warmfront["eligible"]) and (not eligibility.gbis_warmfront): eligibility = Eligibility(epc=penultimate_epc, cleaned=cleaned) eligibility.check_gbis_warmfront() eligibility.check_eco4_warmfront() # If this is the case, we need to update the older epcs - older_epcs = [ - x for x in older_epcs if x["lmk-key"] not in [newest_epc["lmk-key"], penultimate_epc["lmk-key"]] - ] + # older_epcs = [ + # x for x in older_epcs if x["lmk-key"] not in [newest_epc["lmk-key"], penultimate_epc["lmk-key"]] + # ] + # If this is the case, we need to update the older epcs + # We don't update just to make data cleaning easier + if penultimate_epc.get("estimated") is None: + older_epcs = [x for x in searcher.data["rows"] if x["lmk-key"] != penultimate_epc["lmk-key"]] # Full checks eligibility.check_gbis() eligibility.check_eco4() if eligibility.eco4_warmfront["eligible"]: - if eligibility.epc["uprn"] == "": + if eligibility.epc["uprn"] in ["", None]: eligibility.epc["uprn"] = int(property_meta["row_id"].split("_")[1]) scoring_dictionary = prepare_model_data_row( @@ -223,7 +246,9 @@ def get_epc_data(data, cleaned, cleaning_data, created_at): cleaning_data=cleaning_data, created_at=created_at, old_data=older_epcs, - full_sap_epc=full_sap_epc + full_sap_epc=full_sap_epc, + photo_supply_lookup=photo_supply_lookup, + floor_area_decile_thresholds=floor_area_decile_thresholds ) scoring_data.extend(scoring_dictionary) @@ -277,7 +302,7 @@ def get_epc_data(data, cleaned, cleaning_data, created_at): scoring_df = DataProcessor.clean_efficiency_variables(scoring_df) scoring_df["UPRN"] = scoring_df["UPRN"].astype(int) - model_api = ModelApi(portfolio_id="ha33-eligibility", timestamp=created_at) + model_api = ModelApi(portfolio_id="ha24-eligibility", timestamp=created_at) all_predictions = model_api.predict_all( df=scoring_df, bucket="retrofit-data-dev", @@ -353,6 +378,18 @@ def analyse_results(results_df, data, survey_list): how="left", on="survey_key" ) + all_identified_eco = analysis_data[ + (analysis_data["warmfront_identified"] & analysis_data["funding_scheme"].isin( + ["ECO4 A/W"])) | + (analysis_data["eco4_eligible"]) + ] + + all_identified_gbis = analysis_data[ + (analysis_data["warmfront_identified"] & analysis_data["funding_scheme"].isin( + ["ECO4 GBIS (ECO+)"])) | + (analysis_data["gbis_eligible"] & analysis_data["eco4_eligible"].isin([False, None])) + ] + warmfront_identified = analysis_data[analysis_data["warmfront_identified"]] # Of the ECO jobs, what proportion to we get right @@ -403,17 +440,21 @@ def app(): ) cleaned = msgpack.unpackb(cleaned, raw=False) - cleaning_data = read_parquet_from_s3( + cleaning_data = read_dataframe_from_s3_parquet( bucket_name="retrofit-data-dev", file_key="sap_change_model/cleaning_dataset.parquet", ) created_at = datetime.now().isoformat() - results_df, scoring_data, nodata = get_epc_data(data, cleaned, cleaning_data, created_at) + photo_supply_lookup, floor_area_decile_thresholds = SolarPhotoSupply.load(bucket="retrofit-data-dev") + + results_df, scoring_data, nodata = get_epc_data( + data, cleaned, cleaning_data, created_at, photo_supply_lookup, floor_area_decile_thresholds + ) # Pickle results just in case # import pickle - # with open("ha24.pickle", "wb") as f: + # with open("ha24_8_jan.pickle", "wb") as f: # pickle.dump( # { # "scoring_data": scoring_data, @@ -421,3 +462,11 @@ def app(): # "nodata": nodata # }, f # ) + + # Read in pickle + # import pickle + # with open("ha24_8_jan.pickle", "rb") as f: + # saved = pickle.load(f) + # scoring_data = saved["scoring_data"] + # results_df = saved["results"] + # nodata = saved["nodata"] diff --git a/etl/eligibility/ha_15_32/ha7_app.py b/etl/eligibility/ha_15_32/ha7_app.py index 0152ab91..62da5a52 100644 --- a/etl/eligibility/ha_15_32/ha7_app.py +++ b/etl/eligibility/ha_15_32/ha7_app.py @@ -16,6 +16,7 @@ from etl.eligibility.ha_15_32.app import prepare_model_data_row from etl.epc.DataProcessor import DataProcessor from etl.epc.settings import COLUMNS_TO_MERGE_ON from backend.ml_models.api import ModelApi +from etl.solar.SolarPhotoSupply import SolarPhotoSupply ENV_FILE = Path(__file__).parent / "etl" / "eligibility" / "ha_15_32" / ".env" @@ -67,12 +68,16 @@ def load_data(): return df -def get_ha7_data(data, cleaned, cleaning_data, created_at): +def get_ha7_data(data, cleaned, cleaning_data, created_at, photo_supply_lookup, floor_area_decile_thresholds): property_type_lookup = { - "Mid Terrace": "Mid-Terrace", - "End Terrace": "End-Terrace", - "Semi Detached": "Semi-Detached", - "Detached": "Detached", + # "Mid Terrace": "Mid-Terrace", + # "End Terrace": "End-Terrace", + # "Semi Detached": "Semi-Detached", + # "Detached": "Detached", + "House": "House", + "Flat": "Flat", + "Bungalow": "Bungalow", + "Maisonette": "Maisonette", } scoring_data = [] @@ -80,7 +85,7 @@ def get_ha7_data(data, cleaned, cleaning_data, created_at): nodata = [] for _, house in tqdm(data.iterrows(), total=len(data)): - if house["Address"] is not None: + if house["Address"]: address = house["Address"] else: address = house["Address2"] @@ -89,7 +94,8 @@ def get_ha7_data(data, cleaned, cleaning_data, created_at): address1=address, postcode=house["Postcode"], auth_token=EPC_AUTH_TOKEN, - os_api_key=None + os_api_key=None, + property_type=property_type_lookup.get(house["Archetype"]), ) searcher.find_property(skip_os=True) @@ -118,7 +124,9 @@ def get_ha7_data(data, cleaned, cleaning_data, created_at): cleaning_data=cleaning_data, created_at=created_at, old_data=older_epcs, - full_sap_epc=full_sap_epc + full_sap_epc=full_sap_epc, + photo_supply_lookup=photo_supply_lookup, + floor_area_decile_thresholds=floor_area_decile_thresholds ) scoring_data.extend(scoring_dictionary) @@ -285,9 +293,13 @@ def app(): bucket_name="retrofit-data-dev", file_key="sap_change_model/cleaning_dataset.parquet", ) + photo_supply_lookup, floor_area_decile_thresholds = SolarPhotoSupply.load(bucket="retrofit-data-dev") + created_at = datetime.now().isoformat() - results_df, scoring_data, nodata = get_ha7_data(data, cleaned, cleaning_data, created_at) + results_df, scoring_data, nodata = get_ha7_data( + data, cleaned, cleaning_data, created_at, photo_supply_lookup, floor_area_decile_thresholds + ) # Pickle results # import pickle diff --git a/etl/solar/SolarPhotoSupply.py b/etl/solar/SolarPhotoSupply.py index 6a225b5a..1a80c37a 100644 --- a/etl/solar/SolarPhotoSupply.py +++ b/etl/solar/SolarPhotoSupply.py @@ -210,7 +210,20 @@ class SolarPhotoSupply: ] if photo_supply_matched.empty: - raise ValueError("No photo supply matched") + # There are a small number of cases where we don't get a full match so try again with a more aggregated + # average + photo_supply_matched = photo_supply_lookup[ + (photo_supply_lookup["tenure"] == tenure) & + (photo_supply_lookup["built_form"] == built_form) & + (photo_supply_lookup["property_type"] == property_type) + ] + if construction_age_band in photo_supply_matched["construction_age_band"].values: + photo_supply_matched = photo_supply_matched[ + photo_supply_matched["construction_age_band"] == construction_age_band + ] + + if photo_supply_matched.empty: + raise ValueError("No photo supply matches") floor_area_decile = cls.classify_floor_area( floor_area, floor_area_decile_thresholds["floor_area_decile_thresholds"].values diff --git a/recommendations/tests/test_ventilation_recommendations.py b/recommendations/tests/test_ventilation_recommendations.py index 893bb01a..3242b1d1 100644 --- a/recommendations/tests/test_ventilation_recommendations.py +++ b/recommendations/tests/test_ventilation_recommendations.py @@ -1,5 +1,4 @@ from backend.Property import Property -from unittest.mock import Mock from recommendations.VentilationRecommendations import VentilationRecommendations from recommendations.tests.test_data.materials import materials @@ -7,7 +6,7 @@ from recommendations.tests.test_data.materials import materials class TestVentilationRecommendations: def test_natural_ventilation(self): - input_property1 = Property(id=1, postcode="F4k3 6", address1="623 fake street", epc_client=Mock()) + input_property1 = Property(id=1, postcode="F4k3 6", address="623 fake street") input_property1.data = {"mechanical-ventilation": "natural"} recommender = VentilationRecommendations( @@ -28,7 +27,7 @@ class TestVentilationRecommendations: assert recommender.recommendation[0]["parts"][0]["quantity"] == 2 def test_missing_ventilation(self): - input_property2 = Property(id=1, postcode="F4k3 6", address1="623 fake street", epc_client=Mock()) + input_property2 = Property(id=1, postcode="F4k3 6", address="623 fake street") input_property2.data = {"mechanical-ventilation": None} recommender2 = VentilationRecommendations( @@ -49,7 +48,7 @@ class TestVentilationRecommendations: assert recommender2.recommendation[0]["parts"][0]["quantity"] == 2 def test_nodata_ventilation(self): - input_property3 = Property(id=1, postcode="F4k3 6", address1="623 fake street", epc_client=Mock()) + input_property3 = Property(id=1, postcode="F4k3 6", address="623 fake street") input_property3.data = {"mechanical-ventilation": "NO DATA!!"} recommender3 = VentilationRecommendations( @@ -70,7 +69,7 @@ class TestVentilationRecommendations: assert recommender3.recommendation[0]["parts"][0]["quantity"] == 2 def test_existing_ventilation_1(self): - input_property4 = Property(id=1, postcode="F4k3 6", address1="623 fake street", epc_client=Mock()) + input_property4 = Property(id=1, postcode="F4k3 6", address="623 fake street") input_property4.data = {"mechanical-ventilation": 'mechanical, extract only'} recommender4 = VentilationRecommendations( @@ -86,7 +85,7 @@ class TestVentilationRecommendations: assert recommender4.has_ventilaion def test_existing_ventilation_2(self): - input_property5 = Property(id=1, postcode="F4k3 6", address1="623 fake street", epc_client=Mock()) + input_property5 = Property(id=1, postcode="F4k3 6", address="623 fake street") input_property5.data = {"mechanical-ventilation": 'mechanical, supply and extract'} recommender5 = VentilationRecommendations( diff --git a/recommendations/tests/test_wall_recommendations.py b/recommendations/tests/test_wall_recommendations.py index 0258e592..2fbf3239 100644 --- a/recommendations/tests/test_wall_recommendations.py +++ b/recommendations/tests/test_wall_recommendations.py @@ -231,7 +231,7 @@ class TestWallRecommendationsBase: class TestCavityWallRecommensations: def test_fill_empty_cavity(self): - input_property = Property(id=1, postcode="F4k3", address1="123 fake street", epc_client=Mock()) + input_property = Property(id=1, postcode="F4k3", address="123 fake street") input_property.walls = { 'original_description': 'Cavity wall, as built, no insulation (assumed)', 'clean_description': 'Cavity wall, as built, no insulation', @@ -265,7 +265,7 @@ class TestCavityWallRecommensations: assert np.isclose(recommender.recommendations[1]["total"], 2004.6600000000003) def test_fill_partial_filled_cavity(self): - input_property = Property(id=1, postcode="F4k3", address1="123 fake street", epc_client=Mock()) + input_property = Property(id=1, postcode="F4k3", address="123 fake street") input_property.walls = { 'original_description': 'Cavity wall, as built, partial insulation (assumed)', 'clean_description': 'Cavity wall, as built, partial insulation', @@ -299,7 +299,7 @@ class TestCavityWallRecommensations: assert np.isclose(recommender.recommendations[1]["total"], 1999.9350000000002) def test_system_built_wall(self): - input_property2 = Property(id=1, postcode="F4k3 2", address1="223 fake street", epc_client=Mock()) + input_property2 = Property(id=1, postcode="F4k3 2", address="223 fake street") input_property2.walls = { 'original_description': 'System built, as built, no insulation (assumed)', 'clean_description': 'System built, as built, no insulation', @@ -346,7 +346,7 @@ class TestCavityWallRecommensations: assert recommender2.recommendations[6]["parts"][0]["depth"] == 52.5 def test_timber_frame_wall(self): - input_property3 = Property(id=1, postcode="F4k3 2", address1="223 fake street", epc_client=Mock()) + input_property3 = Property(id=1, postcode="F4k3 2", address="223 fake street") input_property3.walls = { 'original_description': 'Timber frame, as built, no insulation (assumed)', 'clean_description': 'Timber frame, as built, no insulation', @@ -388,7 +388,7 @@ class TestCavityWallRecommensations: assert recommender3.recommendations[1]["parts"][0]["depth"] == 150.0 def test_granite_or_whinstone_wall(self): - input_property4 = Property(id=1, postcode="F4k3 2", address1="223 fake street", epc_client=Mock()) + input_property4 = Property(id=1, postcode="F4k3 2", address="223 fake street") input_property4.walls = { 'original_description': 'Granite or whinstone, as built, no insulation (assumed)', 'clean_description': 'Granite or whinstone, as built, no insulation', @@ -430,7 +430,7 @@ class TestCavityWallRecommensations: assert recommender4.recommendations[1]["parts"][0]["depth"] == 150 def test_cob_wall(self): - input_property5 = Property(id=1, postcode="F4k3 2", address1="223 fake street", epc_client=Mock()) + input_property5 = Property(id=1, postcode="F4k3 2", address="223 fake street") input_property5.walls = { 'original_description': 'Cob, as built', 'clean_description': 'Cob, as built', @@ -472,7 +472,7 @@ class TestCavityWallRecommensations: assert recommender5.recommendations[3]["parts"][0]["depth"] == 100 def test_sandstone_or_limestone_wall(self): - input_property6 = Property(id=1, postcode="F4k3 6", address1="623 fake street", epc_client=Mock()) + input_property6 = Property(id=1, postcode="F4k3 6", address="623 fake street") input_property6.walls = { 'original_description': 'Sandstone or limestone, as built, no insulation (assumed)', 'clean_description': 'Sandstone or limestone, as built, no insulation', diff --git a/recommendations/tests/test_window_recommendations.py b/recommendations/tests/test_window_recommendations.py index ac461594..f103299d 100644 --- a/recommendations/tests/test_window_recommendations.py +++ b/recommendations/tests/test_window_recommendations.py @@ -1,6 +1,5 @@ from recommendations.WindowsRecommendations import WindowsRecommendations from backend.Property import Property -from unittest.mock import Mock from recommendations.tests.test_data.materials import materials @@ -15,8 +14,7 @@ class TestWindowRecommendations: property_1 = Property( id=1, postcode='1', - address1='1', - epc_client=Mock(), + address='1', data={ "county": "Wychavon", "multi-glaze-proportion": 0 @@ -52,8 +50,7 @@ class TestWindowRecommendations: property_2 = Property( id=1, postcode='1', - address1='1', - epc_client=Mock(), + address='1', data={ "county": "Wychavon", "multi-glaze-proportion": 33 @@ -86,8 +83,7 @@ class TestWindowRecommendations: property_3 = Property( id=1, postcode='1', - address1='1', - epc_client=Mock(), + address='1', data={ "county": "Wychavon", "multi-glaze-proportion": 80 @@ -110,8 +106,7 @@ class TestWindowRecommendations: property_4 = Property( id=1, postcode='1', - address1='1', - epc_client=Mock(), + address='1', data={ "county": "Wychavon", "multi-glaze-proportion": 100 @@ -134,8 +129,7 @@ class TestWindowRecommendations: property_5 = Property( id=1, postcode='1', - address1='1', - epc_client=Mock(), + address='1', data={ "county": "Wychavon", "multi-glaze-proportion": 50 @@ -164,8 +158,7 @@ class TestWindowRecommendations: property_6 = Property( id=1, postcode='1', - address1='1', - epc_client=Mock(), + address='1', data={ "county": "Wychavon", "multi-glaze-proportion": 0 @@ -199,8 +192,7 @@ class TestWindowRecommendations: property_7 = Property( id=1, postcode='1', - address1='1', - epc_client=Mock(), + address='1', data={ "county": "Wychavon", "multi-glaze-proportion": 100 @@ -227,11 +219,11 @@ class TestWindowRecommendations: property_8 = Property( id=1, postcode='1', - address1='1', - epc_client=Mock(), + address='1', data={ "county": "Wychavon", - "multi-glaze-proportion": 80 + "multi-glaze-proportion": 80, + "uprn": 1 } ) property_8.windows = {'original_description': 'Mostly triple glazing', 'has_glazing': True, From 04dba265de129ea891b15a0abf3994089096eef4 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Wed, 10 Jan 2024 12:25:29 +0000 Subject: [PATCH 189/526] added in cavity age estimation --- backend/ml_models/Valuation.py | 4 +- etl/eligibility/Eligibility.py | 44 +++- etl/eligibility/ha_15_32/ha16_app.py | 78 +++++- etl/eligibility/ha_15_32/ha25_app.py | 375 +++++++++++++++++++++++++-- etl/eligibility/ha_15_32/ha7_app.py | 19 +- 5 files changed, 490 insertions(+), 30 deletions(-) diff --git a/backend/ml_models/Valuation.py b/backend/ml_models/Valuation.py index cdbbe698..018b4678 100644 --- a/backend/ml_models/Valuation.py +++ b/backend/ml_models/Valuation.py @@ -19,7 +19,9 @@ class PropertyValuation: 100070505235: 344000, # Based on Zoopla's estimation of 131 School road, which is also semi-detached 100070513306: 182000, # Based on Zoopla's estimation of 61 Simmons Drive 100071306896: 77000, # Based on Flat 2 of 44 Wedgewood Road on Zoopla - 100021192109: 650000 # Based on Zoopla + 100021192109: 650000, # Based on Zoopla + 766249482: 358000, # Based on Zoopla estimate for 19 Spring Lane, 3 bedroom semi-detached + 100120703802: 277000, # Based on Zoopla } # We base our valuation uplifts on a number of sources diff --git a/etl/eligibility/Eligibility.py b/etl/eligibility/Eligibility.py index c9d75606..13966655 100644 --- a/etl/eligibility/Eligibility.py +++ b/etl/eligibility/Eligibility.py @@ -33,6 +33,7 @@ class Eligibility: # If the loft has less than 100mm of insulation, we classify the home has needing loft insulation LOFT_INSULATION_THRESHOLD = 100 + HIGH_LOFT_INSULATION_THRESHOLD = 269 # Because EPCS have different values for tenure, we need to remap them to a common set of values tenure_remap = { @@ -104,6 +105,8 @@ class Eligibility: self.LOFT_INSULATION_THRESHOLD if loft_thickness_threshold is None else loft_thickness_threshold ) + high_loft_thickness_threshold = self.HIGH_LOFT_INSULATION_THRESHOLD + # We firstly check if the roof is a loft is_loft = self.roof["is_pitched"] and (not self.roof["is_roof_room"]) @@ -122,7 +125,22 @@ class Eligibility: is_flat=self.roof["is_flat"] ) - if insulation_thickness > loft_thickness_threshold: + if insulation_thickness <= loft_thickness_threshold: + self.loft = { + "suitability": True, + "thickness": insulation_thickness, + "reason": None + } + + if insulation_thickness <= high_loft_thickness_threshold: + self.loft = { + "suitability": True, + "thickness": insulation_thickness, + "reason": "high loft thickness but below regulation" + } + return + + if insulation_thickness > high_loft_thickness_threshold: # Insulation is already thick enough self.loft = { "suitability": False, @@ -131,12 +149,6 @@ class Eligibility: } return - self.loft = { - "suitability": True, - "thickness": insulation_thickness, - "reason": None - } - def cavity_insulation(self): """ @@ -161,6 +173,17 @@ class Eligibility: is_partial_filled_cavity = is_cavity and is_partial_filled is_underperforming_cavity = is_cavity and is_underperforming + # Check if it has internal or external wall insulation + has_internal_wall_insulation = self.walls["internal_insulation"] + has_external_wall_insulation = self.walls["external_insulation"] + + if has_internal_wall_insulation or has_external_wall_insulation: + self.cavity = { + "suitability": False, + "type": "internal or external wall insulation" + } + return + if is_unfilled_cavity: self.cavity = { "suitability": True, @@ -354,6 +377,13 @@ class Eligibility: else: message = "subject to post retrofit sap" if is_eligible else "not eligible" + # Update the message to flag properties that failed just because of a full cavity. + # We need to double check that the wall is a cavity, that the loft is suitable and that the + # sap is within reason + # We can then estimate the age of the cavity fill + if not is_eligible and (current_sap < 69) and self.loft["suitability"] and self.walls["is_cavity_wall"]: + message = "Failed due to full cavity - check cavity age" + self.eco4_warmfront = { "eligible": is_eligible, "message": message diff --git a/etl/eligibility/ha_15_32/ha16_app.py b/etl/eligibility/ha_15_32/ha16_app.py index bd19fe97..446c35c9 100644 --- a/etl/eligibility/ha_15_32/ha16_app.py +++ b/etl/eligibility/ha_15_32/ha16_app.py @@ -252,6 +252,31 @@ def load_data(): return data, survey_list +def calculate_cavity_age(newest_epc, older_epcs, cleaned): + all_epcs = [newest_epc] + older_epcs + + df = [] + for x in all_epcs: + # Get the cleaned mapping + mapped = [y for y in cleaned["walls-description"] if y["original_description"] == x["walls-description"]] + if not mapped: + continue + df.append( + { + **mapped[0], + "inspection-date": x["lodgement-date"], + } + ) + + df = pd.DataFrame(df) + df = df[ + (df["is_cavity_wall"] == True) & (df["is_filled_cavity"] == True) + ] + + cavity_age = (datetime.now() - pd.to_datetime(df["inspection-date"].max())).days + return cavity_age + + def get_epc_data(data, cleaned, cleaning_data, created_at, photo_supply_lookup, floor_area_decile_thresholds): scoring_data = [] results = [] @@ -319,6 +344,19 @@ def get_epc_data(data, cleaned, cleaning_data, created_at, photo_supply_lookup, if penultimate_epc.get("estimated") is None: older_epcs = [x for x in searcher.data["rows"] if x["lmk-key"] != penultimate_epc["lmk-key"]] + # If the property is a cavity wall and it's filled, we produce an estimate for the age of the cavity + + # Loft MUST be suitable + cavity_age = None + if ( + eligibility.walls["is_cavity_wall"] and + eligibility.walls["is_filled_cavity"] and + eligibility.loft["suitability"] and + eligibility.eco4_warmfront["message"] == "Failed due to full cavity - check cavity age" + ): + # We check the age of the cavity and if it's particularly old, we flag it + cavity_age = calculate_cavity_age(newest_epc, older_epcs, cleaned) + # Full checks eligibility.check_gbis() eligibility.check_eco4() @@ -362,6 +400,10 @@ def get_epc_data(data, cleaned, cleaning_data, created_at, photo_supply_lookup, "heating": eligibility.epc["mainheat-description"], "tenure": eligibility.tenure, "date_epc": eligibility.epc["lodgement-date"], + "loft_thickness": eligibility.roof["insulation_thickness"], + "cavity_age": cavity_age, + **eligibility.walls, + **eligibility.roof, } ) @@ -472,12 +514,46 @@ def analyse_results(results_df, data, survey_list): (analysis_data["eco4_eligible"]) ] + eco_eligible = analysis_data[analysis_data["eco4_eligible"] == True] + eco_ineligible = analysis_data[analysis_data["eco4_eligible"] == False] + + eco_ineligible["eco4_message"].value_counts() + + # SAP too high: + sap_too_high = eco_ineligible[eco_ineligible["eco4_message"] == "sap too high"].copy() + further_possibilities = sap_too_high[ + sap_too_high["walls"].isin( + [ + "Cavity wall, as built, insulated", + "Cavity wall, as built, no insulation", + "Cavity wall, as built, partial insulation", + "Cavity wall, no insulation", + "Cavity wall, partial insulation" + ] + ) + ] + + filled_cavities = eco_ineligible[ + eco_ineligible["eco4_message"] == "sap too high" + ] + + warmfront_identified = analysis_data[analysis_data["warmfront_identified"]] + warmfront_identified["walls"].value_counts() + all_identified_gbis = analysis_data[ (analysis_data["warmfront_identified"] & analysis_data["funding_scheme"].isin( ["ECO4 GBIS (ECO+)"])) | (analysis_data["gbis_eligible"] & analysis_data["eco4_eligible"].isin([False, None])) ] + empty_cavity_desriptions = [ + "Cavity wall, as built, no insulation", "Cavity wall, as built, partial insulation", + "Cavity wall, no insulation", "Cavity wall, partial insulation" + ] + + empty_cavities = analysis_data[analysis_data["walls"].isin(empty_cavity_desriptions)] + remaining_empty = empty_cavities[~empty_cavities["warmfront_identified"]] + warmfront_identified = analysis_data[analysis_data["warmfront_identified"]] # Of the ECO jobs, what proportion to we get right @@ -553,7 +629,7 @@ def app(): # Read pickle # import pickle - # with open("ha16.pickle", "rb") as f: + # with open("ha16_8_jan_2.pickle", "rb") as f: # saved = pickle.load(f) # scoring_data = saved["scoring_data"] # results_df = saved["results"] diff --git a/etl/eligibility/ha_15_32/ha25_app.py b/etl/eligibility/ha_15_32/ha25_app.py index 4d86a546..541f77d3 100644 --- a/etl/eligibility/ha_15_32/ha25_app.py +++ b/etl/eligibility/ha_15_32/ha25_app.py @@ -1,6 +1,6 @@ +import os import msgpack import openpyxl -from openpyxl.styles.colors import COLOR_INDEX from pathlib import Path from datetime import datetime import pandas as pd @@ -8,7 +8,7 @@ import numpy as np from utils.s3 import read_from_s3 from utils.logger import setup_logger from dotenv import load_dotenv -from backend.app.utils import read_parquet_from_s3 +from utils.s3 import read_dataframe_from_s3_parquet from tqdm import tqdm from backend.SearchEpc import SearchEpc from etl.eligibility.Eligibility import Eligibility @@ -16,9 +16,11 @@ from etl.eligibility.ha_15_32.app import prepare_model_data_row from etl.epc.DataProcessor import DataProcessor from etl.epc.settings import COLUMNS_TO_MERGE_ON from backend.ml_models.api import ModelApi +from etl.solar.SolarPhotoSupply import SolarPhotoSupply import re +EPC_AUTH_TOKEN = os.getenv("EPC_AUTH_TOKEN") ENV_FILE = Path(__file__).parent / "etl" / "eligibility" / "ha_15_32" / ".env" logger = setup_logger() @@ -272,27 +274,99 @@ def load_data(): ) data["warmfront_identified"] = data["warmfront_identified"].fillna(False) - return data, eco4_prospects_survey_list + lost_identified_properties = eco4_prospects_survey_list[ + ~eco4_prospects_survey_list["survey_key"].isin(matched["survey_key"]) + ] + + return data, eco4_prospects_survey_list, lost_identified_properties -def get_epc_data(data, cleaned, cleaning_data, created_at): +def map_year_to_age_band(year): + try: + year = int(year) + except ValueError: + return "Invalid Year" # Or any other way you want to handle invalid inputs + + if year < 1900: + return "England and Wales: before 1900" + elif 1900 <= year <= 1929: + return "England and Wales: 1900-1929" + elif 1930 <= year <= 1949: + return "England and Wales: 1930-1949" + elif 1950 <= year <= 1966: + return "England and Wales: 1950-1966" + elif 1967 <= year <= 1975: + return "England and Wales: 1967-1975" + elif 1976 <= year <= 1982: + return "England and Wales: 1976-1982" + elif 1983 <= year <= 1990: + return "England and Wales: 1983-1990" + elif 1991 <= year <= 1995: + return "England and Wales: 1991-1995" + elif 1996 <= year <= 2002: + return "England and Wales: 1996-2002" + elif 2003 <= year <= 2006: + return "England and Wales: 2003-2006" + elif 2007 <= year <= 2011: + return "England and Wales: 2007-2011" + else: # Assuming all remaining years are 2012 onwards + return "England and Wales: 2012 onwards" + + +def get_epc_data(data, cleaned, cleaning_data, created_at, photo_supply_lookup, floor_area_decile_thresholds): scoring_data = [] results = [] nodata = [] + property_type_lookup = { + "Flat": {"property-type": "Flat", "built-form": None}, + "Mid Terrace House": {"property-type": "House", "built-form": "Mid-Terrace"}, + "End Terrace House": {"property-type": "House", "built-form": "End-Terrace"}, + "Maisonnette": {"property-type": "Flat", "built-form": None}, + "Semi Detached House": {"property-type": "House", "built-form": "Semi-Detached"}, + "Detached House": {"property-type": "House", "built-form": "Detached"}, + "Coach House": {"property-type": "House", "built-form": "Detached"}, + "Bungalow": {"property-type": "Bungalow", "built-form": None}, + "Detached Bungalow": {"property-type": "Bungalow", "built-form": "Detached"}, + "House": {"property-type": "House", "built-form": None}, + "Semi Detached Bung": {"property-type": "Bungalow", "built-form": "Semi-Detached"}, + "Bedspace": {"property-type": None, "built-form": None}, + "Office Buildings": {"property-type": None, "built-form": None}, + "End Terrace Bungalow": {"property-type": "Bungalow", "built-form": "End-Terrace"}, + "Mid Terrace Bungalow": {"property-type": "Bungalow", "built-form": "Mid-Terrace"}, + "Bedsit": {"property-type": "Flat", "built-form": None}, + "Mid Terrace Housekeeping": {"property-type": "House", "built-form": "Mid-Terrace"}, + "Mid Terrace Housekeeping ": {"property-type": "House", "built-form": "Mid-Terrace"}, + "End Terrace Housex": {"property-type": "House", "built-form": "End-Terrace"}, + "Guest Room": {"property-type": None, "built-form": None} + } + for _, property_meta in tqdm(data.iterrows(), total=len(data)): + searcher = SearchEpc( address1=property_meta["HouseNo"], postcode=property_meta["postcode"], - size=1000 + auth_token=EPC_AUTH_TOKEN, + os_api_key=None, + full_address=property_meta["address"] ) - searcher.search() + searcher.ordnance_survey_client.property_type = property_type_lookup[property_meta["T1_AssetType"]][ + "property-type"] + searcher.ordnance_survey_client.built_form = property_type_lookup[property_meta["T1_AssetType"]]["built-form"] + searcher.find_property(skip_os=True) - if searcher.data is None: + if searcher.newest_epc is None: nodata.append(property_meta) continue - newest_epc, older_epcs, full_sap_epc = searcher.retrieve(address=property_meta["T1_Address"]) + if searcher.newest_epc.get("estimated"): + # We insert the row ID as our proxy for UPRN + proxy_uprn = int(property_meta["row_id"].split("_")[1]) + searcher.newest_epc["uprn"] = proxy_uprn + + newest_epc = searcher.newest_epc + older_epcs = searcher.older_epcs + full_sap_epc = searcher.full_sap_epc # We also want to get the penultimate epc penultimate_epc, _ = searcher.filter_newest_epc(older_epcs) if not penultimate_epc: @@ -302,25 +376,26 @@ def get_epc_data(data, cleaned, cleaning_data, created_at): eligibility.check_gbis_warmfront() eligibility.check_eco4_warmfront() - if (not eligibility.eco4_warmfront["eligible"]) and (not eligibility.gbis_warmfront) and ( - property_meta["warmfront_identified"] - ): + if (not eligibility.eco4_warmfront["eligible"]) and (not eligibility.gbis_warmfront): eligibility = Eligibility(epc=penultimate_epc, cleaned=cleaned) eligibility.check_gbis_warmfront() eligibility.check_eco4_warmfront() # If this is the case, we need to update the older epcs - older_epcs = [ - x for x in older_epcs if x["lmk-key"] not in [newest_epc["lmk-key"], penultimate_epc["lmk-key"]] - ] + # We don't update just to make data cleaning easier + if penultimate_epc.get("estimated") is None: + older_epcs = [x for x in searcher.data["rows"] if x["lmk-key"] != penultimate_epc["lmk-key"]] # Full checks eligibility.check_gbis() eligibility.check_eco4() if eligibility.eco4_warmfront["eligible"]: - if eligibility.epc["uprn"] == "": + if eligibility.epc["uprn"] in ["", None]: eligibility.epc["uprn"] = int(property_meta["row_id"].split("_")[1]) + if eligibility.epc["construction-age-band"] in ["", None]: + eligibility.epc["construction-age-band"] = map_year_to_age_band(property_meta["Build Yr"]) + scoring_dictionary = prepare_model_data_row( property_id=property_meta["row_id"], modelling_epc=eligibility.epc, @@ -328,7 +403,9 @@ def get_epc_data(data, cleaned, cleaning_data, created_at): cleaning_data=cleaning_data, created_at=created_at, old_data=older_epcs, - full_sap_epc=full_sap_epc + full_sap_epc=full_sap_epc, + photo_supply_lookup=photo_supply_lookup, + floor_area_decile_thresholds=floor_area_decile_thresholds, ) scoring_data.extend(scoring_dictionary) @@ -450,6 +527,232 @@ def get_epc_data(data, cleaned, cleaning_data, created_at): return results_df, scoring_data, nodata +def get_epc_data_for_lost_surveys( + lost_identified_properties, cleaned, cleaning_data, created_at, photo_supply_lookup, + floor_area_decile_thresholds +): + lost_identified_properties["row_id"] = [ + "lost_surveys_ha25_" + str(i) for i in range(0, len(lost_identified_properties)) + ] + + scoring_data = [] + results = [] + nodata = [] + + property_type_lookup = { + "MID-TERRACE": {"property-type": "House", "built-form": "Mid-Terrace"}, + "N/A": {"property-type": "House", "built-form": None}, + "END-TERRACE": {"property-type": "House", "built-form": "End-Terrace"}, + "GROUND-FLOOR": {"property-type": "House", "built-form": None}, + "TOP-FLOOR": {"property-type": "House", "built-form": None}, + "SEMI-DETACHED": {"property-type": "House", "built-form": "Semi-Detached"}, + "MID-FLOOR": {"property-type": "House", "built-form": None}, + "TOP-FLOOR FLAT": {"property-type": "House", "built-form": None}, + "DETACHED": {"property-type": "House", "built-form": "Detached"}, + "MID-FLOOR FLAT": {"property-type": "House", "built-form": None}, + "SEMI- DETACHED": {"property-type": "House", "built-form": "Semi-Detached"}, + "NO EPC ON GOV": {"property-type": "House", "built-form": None}, + "Top-floor flat": {"property-type": "House", "built-form": None}, + "GROUND-FLOOR FLAT": {"property-type": "House", "built-form": None}, + "NOT ON GOV SITE": {"property-type": "House", "built-form": None} + } + + for _, property_meta in tqdm(lost_identified_properties.iterrows(), total=len(lost_identified_properties)): + + if property_meta["POSTCODE"] is None: + continue + + full_address = ", ".join( + [str(x) for x in [ + property_meta["NO"], property_meta["ADDRESS 1"], property_meta["ADDRESS 2"], property_meta["ADDRESS 3"] + ] if x is not None] + ) + + searcher = SearchEpc( + address1=str(property_meta["NO"]), + postcode=property_meta["POSTCODE"], + auth_token=EPC_AUTH_TOKEN, + os_api_key=None, + full_address=full_address + ) + + property_type_key = property_meta["PROPERTY TYPE"] + if property_type_key is not None: + searcher.ordnance_survey_client.property_type = property_type_lookup[property_type_key.strip()][ + "property-type"] + searcher.ordnance_survey_client.built_form = property_type_lookup[property_type_key.strip()][ + "built-form"] + searcher.find_property(skip_os=True) + + if searcher.newest_epc is None: + nodata.append(property_meta) + continue + + if searcher.newest_epc.get("estimated"): + # We insert the row ID as our proxy for UPRN + proxy_uprn = int(property_meta["row_id"].split("_")[-1]) + searcher.newest_epc["uprn"] = proxy_uprn + + newest_epc = searcher.newest_epc + older_epcs = searcher.older_epcs + full_sap_epc = searcher.full_sap_epc + # We also want to get the penultimate epc + penultimate_epc, _ = searcher.filter_newest_epc(older_epcs) + if not penultimate_epc: + penultimate_epc = newest_epc + + eligibility = Eligibility(epc=newest_epc, cleaned=cleaned) + eligibility.check_gbis_warmfront() + eligibility.check_eco4_warmfront() + + if (not eligibility.eco4_warmfront["eligible"]) and (not eligibility.gbis_warmfront): + eligibility = Eligibility(epc=penultimate_epc, cleaned=cleaned) + eligibility.check_gbis_warmfront() + eligibility.check_eco4_warmfront() + # If this is the case, we need to update the older epcs + # We don't update just to make data cleaning easier + if penultimate_epc.get("estimated") is None: + older_epcs = [x for x in searcher.data["rows"] if x["lmk-key"] != penultimate_epc["lmk-key"]] + + # Full checks + eligibility.check_gbis() + eligibility.check_eco4() + + if eligibility.eco4_warmfront["eligible"] & (eligibility.epc["construction-age-band"] not in ["", None]): + if eligibility.epc["uprn"] in ["", None]: + eligibility.epc["uprn"] = int(property_meta["row_id"].split("_")[1]) + + scoring_dictionary = prepare_model_data_row( + property_id=property_meta["row_id"], + modelling_epc=eligibility.epc, + cleaned=cleaned, + cleaning_data=cleaning_data, + created_at=created_at, + old_data=older_epcs, + full_sap_epc=full_sap_epc, + photo_supply_lookup=photo_supply_lookup, + floor_area_decile_thresholds=floor_area_decile_thresholds, + ) + scoring_data.extend(scoring_dictionary) + + results.append( + { + "row_id": property_meta["row_id"], + "uprn": eligibility.epc["uprn"], + "Address": property_meta["ADDRESS 1"], + "Postcode": property_meta["POSTCODE"], + "property_type": eligibility.epc["property-type"], + "gbis_eligible": eligibility.gbis_warmfront, + "eco4_eligible": eligibility.eco4_warmfront["eligible"], + "eco4_message": eligibility.eco4_warmfront["message"], + "sap": float(eligibility.epc["current-energy-efficiency"]), + "gbis_eligible_future": eligibility.gbis["eligible"], + "gbis_eligible_future_message": eligibility.gbis["message"], + "eco4_eligible_future": eligibility.eco4["eligible"], + "eco4_eligible_future_message": eligibility.eco4["message"], + # Property components + "roof": eligibility.roof["clean_description"], + "walls": eligibility.walls["clean_description"], + "cavity_type": eligibility.cavity["type"], + "heating": eligibility.epc["mainheat-description"], + "tenure": eligibility.tenure, + "date_epc": eligibility.epc["lodgement-date"], + } + ) + + scoring_df = pd.DataFrame(scoring_data) + + # Perform the same cleaning as in the model - first clean number of room variables though + scoring_df = DataProcessor.apply_averages_cleaning( + data_to_clean=scoring_df, + cleaning_data=cleaning_data, + cols_to_merge_on=['PROPERTY_TYPE', 'BUILT_FORM', 'CONSTRUCTION_AGE_BAND', 'LOCAL_AUTHORITY'], + colnames=["NUMBER_HABITABLE_ROOMS", "NUMBER_HEATED_ROOMS"], + ) + + scoring_df = DataProcessor.apply_averages_cleaning( + data_to_clean=scoring_df, + cleaning_data=cleaning_data, + cols_to_merge_on=COLUMNS_TO_MERGE_ON + ["LOCAL_AUTHORITY"], + ).drop(columns=["LOCAL_AUTHORITY"]) + + scoring_df = DataProcessor.clean_missings_after_description_process( + scoring_df, + ignore_cols=[c for c in scoring_df.columns if ("thermal_transmittance" in c) or ( + "insulation_thickness" in c) or ("ENERGY_EFF" in c)] + ) + + scoring_df = DataProcessor.clean_efficiency_variables(scoring_df) + scoring_df["UPRN"] = scoring_df["UPRN"].astype(int) + + model_api = ModelApi(portfolio_id="ha33-eligibility", timestamp=created_at) + all_predictions = model_api.predict_all( + df=scoring_df, + bucket="retrofit-data-dev", + prediction_buckets={ + "sap_change_predictions": "retrofit-sap-predictions-dev", + "heat_demand_predictions": "retrofit-heat-predictions-dev", + "carbon_change_predictions": "retrofit-carbon-predictions-dev" + } + ) + + predictions = all_predictions["sap_change_predictions"].copy() + + results_df = pd.DataFrame(results) + + predictions = predictions.rename(columns={"property_id": "row_id"}).merge( + results_df[["row_id", "sap"]], how="left", on="row_id" + ) + predictions["sap_uplift"] = predictions["predictions"] - predictions["sap"] + predictions = predictions.groupby("row_id")["sap_uplift"].sum().reset_index() + + results_df = results_df.merge( + predictions[["sap_uplift", "row_id"]], + how="left", + on="row_id" + ) + results_df["post_install_sap"] = results_df["sap"] + results_df["sap_uplift"] + + eligibility_assessment = [] + for _, row in results_df[results_df["eco4_eligible"] == True].iterrows(): + # The upgrade requirements are dependent on the current SAP + + # If the property is an F or G, it only needs to upgrade to an % + if row["sap"] <= 38: + if row["post_install_sap"] >= 57: + eligibility_classification = "highest confidence" + elif row["post_install_sap"] >= 55: + eligibility_classification = "high confidence" + elif row["post_install_sap"] >= 53: + eligibility_classification = "medium confidence" + else: + eligibility_classification = "unlikely" + else: + + if row["post_install_sap"] >= 71: + eligibility_classification = "highest confidence" + elif row["post_install_sap"] >= 69: + eligibility_classification = "high confidence" + elif row["post_install_sap"] >= 67: + eligibility_classification = "medium confidence" + else: + eligibility_classification = "unlikely" + + eligibility_assessment.append( + { + "row_id": row["row_id"], + "eligibility_classification": eligibility_classification + } + ) + + eligibility_assessment = pd.DataFrame(eligibility_assessment) + + results_df = results_df.merge( + eligibility_assessment, how="left", on="row_id" + ) + return results_df, scoring_data, nodata + + def analyse_results(results_df, data, eco4_prospects_survey_list): analysis_data = data[["row_id", "survey_key", "warmfront_identified"]].merge( results_df, how="left", on="row_id" @@ -457,6 +760,18 @@ def analyse_results(results_df, data, eco4_prospects_survey_list): warmfront_identified = analysis_data[analysis_data["warmfront_identified"]] + identified_eco = analysis_data[analysis_data["eco4_eligible"] == True] + identified_eco = identified_eco[identified_eco["eco4_message"] == "subject to post retrofit sap"] + + identified_gbis = analysis_data[ + (analysis_data["gbis_eligible"] == True) & (analysis_data["eco4_eligible"] == False) + ] + + # Take just unfilled cavities and remove filled potentials + identified_gbis["walls"].value_counts() + + identified_gbis["walls"].value_counts() + # Of the ECO jobs, what proportion to we get right success_rate = (warmfront_identified["eco4_eligible"] | warmfront_identified["gbis_eligible"]).sum() / \ @@ -490,8 +805,15 @@ def analyse_results(results_df, data, eco4_prospects_survey_list): ].shape[0] +def analyse_lost_surveys(results_df): + identified_eco = results_df[results_df["eco4_eligible"] == True] + # 59 for lost surveys + identified_gbis = results_df[results_df["gbis_eligible"] == True] + # 107 + + def app(): - data, eco4_prospects_survey_list = load_data() + data, eco4_prospects_survey_list, lost_identified_properties = load_data() data["row_id"] = ["ha25_" + str(i) for i in range(0, len(data))] @@ -501,16 +823,21 @@ def app(): ) cleaned = msgpack.unpackb(cleaned, raw=False) - cleaning_data = read_parquet_from_s3( + cleaning_data = read_dataframe_from_s3_parquet( bucket_name="retrofit-data-dev", file_key="sap_change_model/cleaning_dataset.parquet", ) created_at = datetime.now().isoformat() - results_df, scoring_data, nodata = get_epc_data(data, cleaned, cleaning_data, created_at) + photo_supply_lookup, floor_area_decile_thresholds = SolarPhotoSupply.load(bucket="retrofit-data-dev") + + results_df, scoring_data, nodata = get_epc_data( + data, cleaned, cleaning_data, created_at, photo_supply_lookup, floor_area_decile_thresholds + ) # Pickle the outputs + # Old data was ha25.pickle # import pickle - # with open("ha25.pickle", "wb") as f: + # with open("ha25_9_jan.pickle", "wb") as f: # pickle.dump( # { # "results_df": results_df, @@ -519,3 +846,11 @@ def app(): # }, # f # ) + + # Load in pickle + # import pickle + # with open("ha25_9_jan.pickle", "rb") as f: + # saved = pickle.load(f) + # results_df = saved["results_df"] + # scoring_data = saved["scoring_data"] + # nodata = saved["nodata"] diff --git a/etl/eligibility/ha_15_32/ha7_app.py b/etl/eligibility/ha_15_32/ha7_app.py index 62da5a52..544f614d 100644 --- a/etl/eligibility/ha_15_32/ha7_app.py +++ b/etl/eligibility/ha_15_32/ha7_app.py @@ -150,6 +150,7 @@ def get_ha7_data(data, cleaned, cleaning_data, created_at, photo_supply_lookup, "heating": eligibility.epc["mainheat-description"], "tenure": eligibility.tenure, "date_epc": eligibility.epc["lodgement-date"], + **newest_epc, } ) @@ -250,10 +251,18 @@ def get_ha7_data(data, cleaned, cleaning_data, created_at, photo_supply_lookup, def analyse_ha_7(results_df, data): df = results_df.merge( - data[["row_id", "row_code", "Property Type"]], how="left", on="row_id" + data[["row_id", "row_code", "Property Type", "Construction Year Band"]], how="left", on="row_id" ) warmfront_identification = df["row_code"].value_counts() warmfront_identified = df[df["row_code"] == "potential ECO4"] + warmfront_identified["walls"].value_counts(normalize=True) + + df["Construction Year Band"].value_counts(normalize=True) + + # Number of days from today + + days_to_today = (datetime.now() - pd.to_datetime(warmfront_identified["date_epc"])).dt.days + days_to_today.mean() property_types = df["Property Type"].value_counts() @@ -305,3 +314,11 @@ def app(): # import pickle # with open("ha7_results.pkl", "wb") as f: # pickle.dump({"results_df": results_df, "scoring_data": scoring_data, "nodata": nodata}, f) + + # Read in the old data + # import pickle + # with open("ha7_results.pkl", "rb") as f: + # old_data = pickle.load(f) + # results_df = old_data["results_df"] + # scoring_data = old_data["scoring_data"] + # nodata = old_data["nodata"] From 1bb188a8b8107b8adebd7e5163631c232a0e85c2 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Wed, 10 Jan 2024 16:14:01 +0000 Subject: [PATCH 190/526] working on eligibility pipeline --- backend/Property.py | 4 +- etl/eligibility/ha_15_32/ha16_app.py | 74 +++++++++++++++---------- etl/eligibility/ha_15_32/ha24_app.py | 17 +++++- recommendations/recommendation_utils.py | 24 ++++++++ 4 files changed, 87 insertions(+), 32 deletions(-) diff --git a/backend/Property.py b/backend/Property.py index 5713c179..03fc507e 100644 --- a/backend/Property.py +++ b/backend/Property.py @@ -336,7 +336,9 @@ class Property(Definitions): self.construction_age_band = 'England and Wales: 2012 onwards' if self.age_band is None: - raise ValueError("age_band is missing") + logger.info("Age band is missing - filling with national average") + self.age_band = "C" + self.construction_age_band = "England and Wales: 1930-1949" def set_spatial(self, spatial: pd.DataFrame): """ diff --git a/etl/eligibility/ha_15_32/ha16_app.py b/etl/eligibility/ha_15_32/ha16_app.py index 446c35c9..f2b80542 100644 --- a/etl/eligibility/ha_15_32/ha16_app.py +++ b/etl/eligibility/ha_15_32/ha16_app.py @@ -17,6 +17,7 @@ from etl.epc.DataProcessor import DataProcessor from etl.epc.settings import COLUMNS_TO_MERGE_ON from backend.ml_models.api import ModelApi from etl.solar.SolarPhotoSupply import SolarPhotoSupply +from recommendations.recommendation_utils import calculate_cavity_age import re @@ -252,31 +253,6 @@ def load_data(): return data, survey_list -def calculate_cavity_age(newest_epc, older_epcs, cleaned): - all_epcs = [newest_epc] + older_epcs - - df = [] - for x in all_epcs: - # Get the cleaned mapping - mapped = [y for y in cleaned["walls-description"] if y["original_description"] == x["walls-description"]] - if not mapped: - continue - df.append( - { - **mapped[0], - "inspection-date": x["lodgement-date"], - } - ) - - df = pd.DataFrame(df) - df = df[ - (df["is_cavity_wall"] == True) & (df["is_filled_cavity"] == True) - ] - - cavity_age = (datetime.now() - pd.to_datetime(df["inspection-date"].max())).days - return cavity_age - - def get_epc_data(data, cleaned, cleaning_data, created_at, photo_supply_lookup, floor_area_decile_thresholds): scoring_data = [] results = [] @@ -508,10 +484,48 @@ def analyse_results(results_df, data, survey_list): how="left", on="survey_key" ) - all_identified_eco = analysis_data[ - (analysis_data["warmfront_identified"] & analysis_data["funding_scheme"].isin( - ["ECO4 A/W", "AFFORDABLE WARMTH"])) | - (analysis_data["eco4_eligible"]) + from recommendation_utils import convert_thickness_to_numeric + + analysis_data["roof_insulation_thickness"] = analysis_data["roof_insulation_thickness"].fillna(None) + analysis_data["roof_insulation_thickness"] = np.where( + pd.isnull(analysis_data["roof_insulation_thickness"]), None, analysis_data["roof_insulation_thickness"] + ) + analysis_data["roof_insulation_thickness_numeric"] = analysis_data["roof_insulation_thickness"].apply( + lambda x: convert_thickness_to_numeric(x, is_flat=False, is_pitched=True) + ) + + warmfront_sold_eco4 = analysis_data[ + (analysis_data["warmfront_identified"] == True) & ( + analysis_data["funding_scheme"].isin(["ECO4 A/W", "AFFORDABLE WARMTH"])) + ] + + warmfront_sold_gbis = analysis_data[ + (analysis_data["warmfront_identified"] == True) & ( + analysis_data["funding_scheme"].isin(["ECO4 GBIS (ECO+)"])) + ] + # 1407 + + ideal_eco4_warmfront_not_sold = analysis_data[ + (analysis_data["eco4_eligible"] == True) & (analysis_data["warmfront_identified"] == False) & ( + analysis_data["roof_insulation_thickness_numeric"] <= 100) + ] + + secondary_eco4_warmfront_not_sold = analysis_data[ + (analysis_data["eco4_eligible"] == True) & (analysis_data["warmfront_identified"] == False) & ( + analysis_data["roof_insulation_thickness_numeric"] > 100) + ] + + # underperforming cavities + underperforming_cavities = analysis_data[ + (analysis_data["eco4_message"] == "Failed due to full cavity - check cavity age") & ( + analysis_data["cavity_age"] > 10 * 365 + ) + ] + + identified_gbis_not_sold = analysis_data[ + (analysis_data["gbis_eligible"] == True) & (analysis_data["warmfront_identified"] == False) & ( + analysis_data["eco4_eligible"] == False + ) ] eco_eligible = analysis_data[analysis_data["eco4_eligible"] == True] @@ -618,7 +632,7 @@ def app(): # Store # Old file was ha16.pickle # import pickle - # with open("ha16_8_jan_2.pickle", "wb") as f: + # with open("ha16_10_jan.pickle", "wb") as f: # pickle.dump( # { # "scoring_data": scoring_data, diff --git a/etl/eligibility/ha_15_32/ha24_app.py b/etl/eligibility/ha_15_32/ha24_app.py index 0f82f30a..49a5abb1 100644 --- a/etl/eligibility/ha_15_32/ha24_app.py +++ b/etl/eligibility/ha_15_32/ha24_app.py @@ -16,6 +16,7 @@ from etl.epc.DataProcessor import DataProcessor from etl.epc.settings import COLUMNS_TO_MERGE_ON from backend.ml_models.api import ModelApi from etl.solar.SolarPhotoSupply import SolarPhotoSupply +from recommendations.recommendation_utils import calculate_cavity_age EPC_AUTH_TOKEN = os.getenv("EPC_AUTH_TOKEN") ENV_FILE = Path(__file__).parent / "etl" / "eligibility" / "ha_15_32" / ".env" @@ -231,6 +232,17 @@ def get_epc_data(data, cleaned, cleaning_data, created_at, photo_supply_lookup, if penultimate_epc.get("estimated") is None: older_epcs = [x for x in searcher.data["rows"] if x["lmk-key"] != penultimate_epc["lmk-key"]] + # Loft MUST be suitable + cavity_age = None + if ( + eligibility.walls["is_cavity_wall"] and + eligibility.walls["is_filled_cavity"] and + eligibility.loft["suitability"] and + eligibility.eco4_warmfront["message"] == "Failed due to full cavity - check cavity age" + ): + # We check the age of the cavity and if it's particularly old, we flag it + cavity_age = calculate_cavity_age(newest_epc, older_epcs, cleaned) + # Full checks eligibility.check_gbis() eligibility.check_eco4() @@ -274,6 +286,9 @@ def get_epc_data(data, cleaned, cleaning_data, created_at, photo_supply_lookup, "heating": eligibility.epc["mainheat-description"], "tenure": eligibility.tenure, "date_epc": eligibility.epc["lodgement-date"], + "cavity_age": cavity_age, + **eligibility.walls, + **eligibility.roof, } ) @@ -454,7 +469,7 @@ def app(): # Pickle results just in case # import pickle - # with open("ha24_8_jan.pickle", "wb") as f: + # with open("ha24_10_jan.pickle", "wb") as f: # pickle.dump( # { # "scoring_data": scoring_data, diff --git a/recommendations/recommendation_utils.py b/recommendations/recommendation_utils.py index 175eb641..64880aca 100644 --- a/recommendations/recommendation_utils.py +++ b/recommendations/recommendation_utils.py @@ -1,4 +1,5 @@ import math +from datetime import datetime from copy import deepcopy import numpy as np @@ -713,3 +714,26 @@ def estimate_windows( raise ValueError("Window count cannot be negative.") return window_count + + +def calculate_cavity_age(newest_epc, older_epcs, cleaned): + all_epcs = [newest_epc] + older_epcs + + df = [] + for x in all_epcs: + # Get the cleaned mapping + mapped = [y for y in cleaned["walls-description"] if y["original_description"] == x["walls-description"]] + if not mapped: + continue + df.append( + { + **mapped[0], + "inspection-date": x["lodgement-date"], + } + ) + + df = pd.DataFrame(df) + df = df[df["is_cavity_wall"] & df["is_filled_cavity"]] + + cavity_age = (datetime.now() - pd.to_datetime(df["inspection-date"].max())).days + return cavity_age From 7969f517337865353c03c87536d0a3aa58e1ad61 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Thu, 11 Jan 2024 11:57:44 +0000 Subject: [PATCH 191/526] set up load data function for cancellation app --- .idea/Model.iml | 2 +- .idea/misc.xml | 2 +- etl/eligibility/ha_15_32/app.py | 9 +- etl/eligibility/ha_15_32/ha16_app.py | 11 +- etl/eligibility/ha_15_32/ha24_app.py | 39 ++++++- etl/eligibility/ha_15_32/ha25_app.py | 150 +++++++++++++++------------ etl/eligibility/ha_15_32/ha4_app.py | 39 +++++-- etl/eligibility/ha_15_32/ha7_app.py | 67 ++++++++++-- recommendations/Costs.py | 6 +- 9 files changed, 234 insertions(+), 91 deletions(-) diff --git a/.idea/Model.iml b/.idea/Model.iml index b0f9c00d..4413bb06 100644 --- a/.idea/Model.iml +++ b/.idea/Model.iml @@ -7,7 +7,7 @@ - + diff --git a/.idea/misc.xml b/.idea/misc.xml index 1122b380..6f308057 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -3,7 +3,7 @@ - + diff --git a/etl/eligibility/ha_15_32/app.py b/etl/eligibility/ha_15_32/app.py index 3a0caec6..b7f44a43 100644 --- a/etl/eligibility/ha_15_32/app.py +++ b/etl/eligibility/ha_15_32/app.py @@ -358,9 +358,16 @@ def prepare_model_data_row( p.get_components(cleaned, photo_supply_lookup=photo_supply_lookup, floor_area_decile_thresholds=floor_area_decile_thresholds) + + # THIS IS TEMP AND SHOULDN'T BE HERE + data_to_clean = p.get_model_data() + if data_to_clean["NUMBER_HEATED_ROOMS"] in ['', None]: + data_to_clean["NUMBER_HEATED_ROOMS"] = data_to_clean["NUMBER_HABITABLE_ROOMS"] + p.data["number-heated-rooms"] = data_to_clean["NUMBER_HABITABLE_ROOMS"] + # This is temp - this should happen after scoring cleaned_property_data = DataProcessor.apply_averages_cleaning( - data_to_clean=pd.DataFrame([dict(**p.get_model_data(), LOCAL_AUTHORITY=p.data["local-authority"])]), + data_to_clean=pd.DataFrame([dict(**data_to_clean, LOCAL_AUTHORITY=p.data["local-authority"])]), cleaning_data=cleaning_data, cols_to_merge_on=['PROPERTY_TYPE', 'BUILT_FORM', 'CONSTRUCTION_AGE_BAND', 'LOCAL_AUTHORITY'], ) diff --git a/etl/eligibility/ha_15_32/ha16_app.py b/etl/eligibility/ha_15_32/ha16_app.py index f2b80542..b7f076b1 100644 --- a/etl/eligibility/ha_15_32/ha16_app.py +++ b/etl/eligibility/ha_15_32/ha16_app.py @@ -18,6 +18,7 @@ from etl.epc.settings import COLUMNS_TO_MERGE_ON from backend.ml_models.api import ModelApi from etl.solar.SolarPhotoSupply import SolarPhotoSupply from recommendations.recommendation_utils import calculate_cavity_age +from recommendation_utils import convert_thickness_to_numeric import re @@ -484,9 +485,6 @@ def analyse_results(results_df, data, survey_list): how="left", on="survey_key" ) - from recommendation_utils import convert_thickness_to_numeric - - analysis_data["roof_insulation_thickness"] = analysis_data["roof_insulation_thickness"].fillna(None) analysis_data["roof_insulation_thickness"] = np.where( pd.isnull(analysis_data["roof_insulation_thickness"]), None, analysis_data["roof_insulation_thickness"] ) @@ -497,13 +495,12 @@ def analyse_results(results_df, data, survey_list): warmfront_sold_eco4 = analysis_data[ (analysis_data["warmfront_identified"] == True) & ( analysis_data["funding_scheme"].isin(["ECO4 A/W", "AFFORDABLE WARMTH"])) - ] + ] # 1407 warmfront_sold_gbis = analysis_data[ (analysis_data["warmfront_identified"] == True) & ( analysis_data["funding_scheme"].isin(["ECO4 GBIS (ECO+)"])) ] - # 1407 ideal_eco4_warmfront_not_sold = analysis_data[ (analysis_data["eco4_eligible"] == True) & (analysis_data["warmfront_identified"] == False) & ( @@ -519,7 +516,7 @@ def analyse_results(results_df, data, survey_list): underperforming_cavities = analysis_data[ (analysis_data["eco4_message"] == "Failed due to full cavity - check cavity age") & ( analysis_data["cavity_age"] > 10 * 365 - ) + ) & (analysis_data["roof_insulation_thickness_numeric"] <= 100) ] identified_gbis_not_sold = analysis_data[ @@ -643,7 +640,7 @@ def app(): # Read pickle # import pickle - # with open("ha16_8_jan_2.pickle", "rb") as f: + # with open("ha16_10_jan.pickle", "rb") as f: # saved = pickle.load(f) # scoring_data = saved["scoring_data"] # results_df = saved["results"] diff --git a/etl/eligibility/ha_15_32/ha24_app.py b/etl/eligibility/ha_15_32/ha24_app.py index 49a5abb1..dc4df018 100644 --- a/etl/eligibility/ha_15_32/ha24_app.py +++ b/etl/eligibility/ha_15_32/ha24_app.py @@ -17,6 +17,7 @@ from etl.epc.settings import COLUMNS_TO_MERGE_ON from backend.ml_models.api import ModelApi from etl.solar.SolarPhotoSupply import SolarPhotoSupply from recommendations.recommendation_utils import calculate_cavity_age +from recommendation_utils import convert_thickness_to_numeric EPC_AUTH_TOKEN = os.getenv("EPC_AUTH_TOKEN") ENV_FILE = Path(__file__).parent / "etl" / "eligibility" / "ha_15_32" / ".env" @@ -393,6 +394,42 @@ def analyse_results(results_df, data, survey_list): how="left", on="survey_key" ) + # NEW + + analysis_data["roof_insulation_thickness"] = np.where( + pd.isnull(analysis_data["roof_insulation_thickness"]), None, analysis_data["roof_insulation_thickness"] + ) + analysis_data["roof_insulation_thickness_numeric"] = analysis_data["roof_insulation_thickness"].apply( + lambda x: convert_thickness_to_numeric(x, is_flat=False, is_pitched=True) + ) + + warmfront_sold_eco4 = analysis_data[ + (analysis_data["warmfront_identified"] == True) & ( + analysis_data["funding_scheme"].isin(["ECO4 A/W", "AFFORDABLE WARMTH"])) + ] + + warmfront_sold_gbis = analysis_data[ + (analysis_data["warmfront_identified"] == True) & ( + analysis_data["funding_scheme"].isin(["ECO4 GBIS (ECO+)"])) + ] + # 1407 + + additional_eco4_warmfront_not_sold = analysis_data[ + (analysis_data["eco4_eligible"] == True) & (analysis_data["warmfront_identified"] == False) & ( + analysis_data["roof_insulation_thickness_numeric"] <= 100) + ] + + additional_gbis_warmfront_not_sold = analysis_data[ + (analysis_data["gbis_eligible"] == True) & (analysis_data["warmfront_identified"] == False) & ( + ~analysis_data["row_id"].isin(additional_eco4_warmfront_not_sold["row_id"].values) + ) + ] + + additional_gbis_warmfront_not_sold["walls"].value_counts() + analysis_data["walls"].value_counts() + + # END NEW + all_identified_eco = analysis_data[ (analysis_data["warmfront_identified"] & analysis_data["funding_scheme"].isin( ["ECO4 A/W"])) | @@ -480,7 +517,7 @@ def app(): # Read in pickle # import pickle - # with open("ha24_8_jan.pickle", "rb") as f: + # with open("ha24_10_jan.pickle", "rb") as f: # saved = pickle.load(f) # scoring_data = saved["scoring_data"] # results_df = saved["results"] diff --git a/etl/eligibility/ha_15_32/ha25_app.py b/etl/eligibility/ha_15_32/ha25_app.py index 541f77d3..c67c6b6b 100644 --- a/etl/eligibility/ha_15_32/ha25_app.py +++ b/etl/eligibility/ha_15_32/ha25_app.py @@ -17,6 +17,8 @@ from etl.epc.DataProcessor import DataProcessor from etl.epc.settings import COLUMNS_TO_MERGE_ON from backend.ml_models.api import ModelApi from etl.solar.SolarPhotoSupply import SolarPhotoSupply +from recommendations.recommendation_utils import calculate_cavity_age +from recommendation_utils import convert_thickness_to_numeric import re @@ -341,7 +343,7 @@ def get_epc_data(data, cleaned, cleaning_data, created_at, photo_supply_lookup, "Guest Room": {"property-type": None, "built-form": None} } - for _, property_meta in tqdm(data.iterrows(), total=len(data)): + for _, property_meta in tqdm(data, total=len(data)): searcher = SearchEpc( address1=property_meta["HouseNo"], @@ -368,22 +370,35 @@ def get_epc_data(data, cleaned, cleaning_data, created_at, photo_supply_lookup, older_epcs = searcher.older_epcs full_sap_epc = searcher.full_sap_epc # We also want to get the penultimate epc - penultimate_epc, _ = searcher.filter_newest_epc(older_epcs) - if not penultimate_epc: - penultimate_epc = newest_epc + # penultimate_epc, _ = searcher.filter_newest_epc(older_epcs) + # if not penultimate_epc: + # penultimate_epc = newest_epc eligibility = Eligibility(epc=newest_epc, cleaned=cleaned) eligibility.check_gbis_warmfront() eligibility.check_eco4_warmfront() - if (not eligibility.eco4_warmfront["eligible"]) and (not eligibility.gbis_warmfront): - eligibility = Eligibility(epc=penultimate_epc, cleaned=cleaned) - eligibility.check_gbis_warmfront() - eligibility.check_eco4_warmfront() - # If this is the case, we need to update the older epcs - # We don't update just to make data cleaning easier - if penultimate_epc.get("estimated") is None: - older_epcs = [x for x in searcher.data["rows"] if x["lmk-key"] != penultimate_epc["lmk-key"]] + # if (not eligibility.eco4_warmfront["eligible"]) and (not eligibility.gbis_warmfront): + # eligibility = Eligibility(epc=penultimate_epc, cleaned=cleaned) + # eligibility.check_gbis_warmfront() + # eligibility.check_eco4_warmfront() + # # If this is the case, we need to update the older epcs + # # We don't update just to make data cleaning easier + # if penultimate_epc.get("estimated") is None: + # older_epcs = [x for x in searcher.data["rows"] if x["lmk-key"] != penultimate_epc["lmk-key"]] + + # If the property is a cavity wall and it's filled, we produce an estimate for the age of the cavity + + # Loft MUST be suitable + cavity_age = None + if ( + eligibility.walls["is_cavity_wall"] and + eligibility.walls["is_filled_cavity"] and + eligibility.loft["suitability"] and + eligibility.eco4_warmfront["message"] == "Failed due to full cavity - check cavity age" + ): + # We check the age of the cavity and if it's particularly old, we flag it + cavity_age = calculate_cavity_age(newest_epc, older_epcs, cleaned) # Full checks eligibility.check_gbis() @@ -396,6 +411,15 @@ def get_epc_data(data, cleaned, cleaning_data, created_at, photo_supply_lookup, if eligibility.epc["construction-age-band"] in ["", None]: eligibility.epc["construction-age-band"] = map_year_to_age_band(property_meta["Build Yr"]) + # This is not the right place to do this but this is temp + if eligibility.epc["extension-count"] in ["", None]: + eligibility.epc["extension-count"] = 0 + + # Not in the right place but temp + if eligibility.epc["built-form"] in ["", None]: + if not older_epcs: + eligibility.epc["built-form"] = "Mid-Terrace" + scoring_dictionary = prepare_model_data_row( property_id=property_meta["row_id"], modelling_epc=eligibility.epc, @@ -431,6 +455,9 @@ def get_epc_data(data, cleaned, cleaning_data, created_at, photo_supply_lookup, "heating": eligibility.epc["mainheat-description"], "tenure": eligibility.tenure, "date_epc": eligibility.epc["lodgement-date"], + "cavity_age": cavity_age, + **eligibility.walls, + **eligibility.roof, } ) @@ -657,6 +684,8 @@ def get_epc_data_for_lost_surveys( "heating": eligibility.epc["mainheat-description"], "tenure": eligibility.tenure, "date_epc": eligibility.epc["lodgement-date"], + **eligibility.walls, + **eligibility.roof, } ) @@ -758,58 +787,51 @@ def analyse_results(results_df, data, eco4_prospects_survey_list): results_df, how="left", on="row_id" ) - warmfront_identified = analysis_data[analysis_data["warmfront_identified"]] + # NEW + analysis_data["roof_insulation_thickness"] = np.where( + pd.isnull(analysis_data["roof_insulation_thickness"]), None, analysis_data["roof_insulation_thickness"] + ) + analysis_data["roof_insulation_thickness_numeric"] = analysis_data["roof_insulation_thickness"].apply( + lambda x: convert_thickness_to_numeric(x, is_flat=False, is_pitched=True) + ) - identified_eco = analysis_data[analysis_data["eco4_eligible"] == True] - identified_eco = identified_eco[identified_eco["eco4_message"] == "subject to post retrofit sap"] + warmfront_identified = analysis_data[ + (analysis_data["warmfront_identified"] == True) + ] # 2204 - identified_gbis = analysis_data[ - (analysis_data["gbis_eligible"] == True) & (analysis_data["eco4_eligible"] == False) + # Because we don't know which property is for which scheme, we'll just look at what we found + ideal_eco4 = analysis_data[ + (analysis_data["eco4_eligible"] == True) & + (analysis_data["roof_insulation_thickness_numeric"] <= 100) & + (analysis_data["sap"] <= 54) + ] # 335 + + gbis = analysis_data[ + (analysis_data["gbis_eligible"] == True) & + ~analysis_data["row_id"].isin(ideal_eco4["row_id"].values) ] - # Take just unfilled cavities and remove filled potentials - identified_gbis["walls"].value_counts() - - identified_gbis["walls"].value_counts() - - # Of the ECO jobs, what proportion to we get right - - success_rate = (warmfront_identified["eco4_eligible"] | warmfront_identified["gbis_eligible"]).sum() / \ - warmfront_identified.shape[ - 0] - - # No gbis for this - # gbis_success_rate = warmfront_identified_gbis["gbis_eligible"].sum() / warmfront_identified_gbis.shape[0] - - # Additional identified - additional_identified_eco = analysis_data[ - (analysis_data["eco4_eligible"] == True) & (analysis_data["warmfront_identified"] == False) - ] - - additional_identified_eco["eligibility_classification"].value_counts() - - additional_identified_gbis = analysis_data[ - (analysis_data["gbis_eligible"] == True) & (analysis_data["eco4_eligible"] == False) & ( - analysis_data["warmfront_identified"] == False - ) - ].shape[0] - - # Future - additional_identified_eco_future = analysis_data[ - (analysis_data["eco4_eligible_future"] == True) & (analysis_data["warmfront_identified"] == False) - ].shape[0] - additional_identified_gbis_future = analysis_data[ - (analysis_data["gbis_eligible_future"] == True) & (analysis_data["eco4_eligible_future"] == False) & ( - analysis_data["warmfront_identified"] == False - ) - ].shape[0] + ideal_eco4 = ideal_eco4[ideal_eco4["sap"] <= 54] def analyse_lost_surveys(results_df): - identified_eco = results_df[results_df["eco4_eligible"] == True] - # 59 for lost surveys - identified_gbis = results_df[results_df["gbis_eligible"] == True] - # 107 + results_df["roof_insulation_thickness"] = np.where( + pd.isnull(results_df["roof_insulation_thickness"]), None, results_df["roof_insulation_thickness"] + ) + results_df["roof_insulation_thickness_numeric"] = results_df["roof_insulation_thickness"].apply( + lambda x: convert_thickness_to_numeric(x, is_flat=False, is_pitched=True) + ) + + ideal_eco4 = results_df[ + (results_df["eco4_eligible"] == True) & + (results_df["roof_insulation_thickness_numeric"] <= 100) & + (results_df["sap"] <= 54) + ] # 25 + + gbis = results_df[ + (results_df["gbis_eligible"] == True) & + ~results_df["row_id"].isin(ideal_eco4["row_id"].values) + ] # 82 def app(): @@ -837,7 +859,7 @@ def app(): # Pickle the outputs # Old data was ha25.pickle # import pickle - # with open("ha25_9_jan.pickle", "wb") as f: + # with open("ha25_10_jan.pickle", "wb") as f: # pickle.dump( # { # "results_df": results_df, @@ -848,9 +870,9 @@ def app(): # ) # Load in pickle - # import pickle - # with open("ha25_9_jan.pickle", "rb") as f: - # saved = pickle.load(f) - # results_df = saved["results_df"] - # scoring_data = saved["scoring_data"] - # nodata = saved["nodata"] + import pickle + with open("ha25_10_jan.pickle", "rb") as f: + saved = pickle.load(f) + results_df = saved["results_df"] + scoring_data = saved["scoring_data"] + nodata = saved["nodata"] diff --git a/etl/eligibility/ha_15_32/ha4_app.py b/etl/eligibility/ha_15_32/ha4_app.py index 92b03539..d2702dd8 100644 --- a/etl/eligibility/ha_15_32/ha4_app.py +++ b/etl/eligibility/ha_15_32/ha4_app.py @@ -1,3 +1,4 @@ +import os import msgpack from pathlib import Path from datetime import datetime @@ -6,7 +7,7 @@ import pandas as pd from utils.s3 import read_from_s3 from utils.logger import setup_logger from dotenv import load_dotenv -from backend.app.utils import read_parquet_from_s3 +from utils.s3 import read_dataframe_from_s3_parquet from tqdm import tqdm from backend.SearchEpc import SearchEpc from etl.eligibility.Eligibility import Eligibility @@ -14,9 +15,13 @@ from etl.eligibility.ha_15_32.app import prepare_model_data_row from etl.epc.DataProcessor import DataProcessor from etl.epc.settings import COLUMNS_TO_MERGE_ON from backend.ml_models.api import ModelApi +from etl.solar.SolarPhotoSupply import SolarPhotoSupply +from recommendations.recommendation_utils import calculate_cavity_age +from recommendation_utils import convert_thickness_to_numeric import re +EPC_AUTH_TOKEN = os.getenv("EPC_AUTH_TOKEN") ENV_FILE = Path(__file__).parent / "etl" / "eligibility" / "ha_15_32" / ".env" logger = setup_logger() @@ -52,7 +57,7 @@ def standardise_ha_4(data): return data -def get_ha_4_data(data, cleaned, cleaning_data, created_at): +def get_ha_4_data(data, cleaned, cleaning_data, created_at, photo_supply_lookup, floor_area_decile_thresholds): scoring_data = [] results = [] nodata = [] @@ -62,19 +67,33 @@ def get_ha_4_data(data, cleaned, cleaning_data, created_at): searcher = SearchEpc( address1=property_meta["Address Line 1"], postcode=property_meta["Post Code"], - size=1000 + auth_token=EPC_AUTH_TOKEN, + os_api_key=None, + property_type=property_type_lookup.get(house["Archetype"]), ) - searcher.search() + searcher.find_property(skip_os=True) - if searcher.data is None: + if searcher.newest_epc is None: searcher = SearchEpc( address1=property_meta["Location Name"], postcode=property_meta["Post Code"], - size=1000 + auth_token=EPC_AUTH_TOKEN, + os_api_key=None, + property_type=property_type_lookup.get(house["Archetype"]), ) searcher.search() + if searcher.newest_epc is None: + nodata.append(house["row_id"]) + continue + + newest_epc = searcher.newest_epc + older_epcs = searcher.older_epcs + full_sap_epc = searcher.full_sap_epc + + searcher.search() + if searcher.data is None: nodata.append(property_meta.to_dict()) continue @@ -273,17 +292,21 @@ def app(): ) cleaned = msgpack.unpackb(cleaned, raw=False) - cleaning_data = read_parquet_from_s3( + cleaning_data = read_dataframe_from_s3_parquet( bucket_name="retrofit-data-dev", file_key="sap_change_model/cleaning_dataset.parquet", ) created_at = datetime.now().isoformat() + photo_supply_lookup, floor_area_decile_thresholds = SolarPhotoSupply.load(bucket="retrofit-data-dev") + results_df, scoring_data, nodata = get_ha_4_data( data=data, cleaned=cleaned, cleaning_data=cleaning_data, - created_at=created_at + created_at=created_at, + photo_supply_lookup=photo_supply_lookup, + floor_area_decile_thresholds=floor_area_decile_thresholds ) # Store the data locally as a pickle diff --git a/etl/eligibility/ha_15_32/ha7_app.py b/etl/eligibility/ha_15_32/ha7_app.py index 544f614d..54d0dbb0 100644 --- a/etl/eligibility/ha_15_32/ha7_app.py +++ b/etl/eligibility/ha_15_32/ha7_app.py @@ -17,6 +17,8 @@ from etl.epc.DataProcessor import DataProcessor from etl.epc.settings import COLUMNS_TO_MERGE_ON from backend.ml_models.api import ModelApi from etl.solar.SolarPhotoSupply import SolarPhotoSupply +from recommendations.recommendation_utils import calculate_cavity_age +from recommendation_utils import convert_thickness_to_numeric ENV_FILE = Path(__file__).parent / "etl" / "eligibility" / "ha_15_32" / ".env" @@ -112,6 +114,19 @@ def get_ha7_data(data, cleaned, cleaning_data, created_at, photo_supply_lookup, eligibility.check_gbis_warmfront() eligibility.check_eco4_warmfront() + # If the property is a cavity wall and it's filled, we produce an estimate for the age of the cavity + + # Loft MUST be suitable + cavity_age = None + if ( + eligibility.walls["is_cavity_wall"] and + eligibility.walls["is_filled_cavity"] and + eligibility.loft["suitability"] and + eligibility.eco4_warmfront["message"] == "Failed due to full cavity - check cavity age" + ): + # We check the age of the cavity and if it's particularly old, we flag it + cavity_age = calculate_cavity_age(newest_epc, older_epcs, cleaned) + # If the house is not identified, we do a full gbis and eco4 check eligibility.check_gbis() eligibility.check_eco4() @@ -151,6 +166,9 @@ def get_ha7_data(data, cleaned, cleaning_data, created_at, photo_supply_lookup, "tenure": eligibility.tenure, "date_epc": eligibility.epc["lodgement-date"], **newest_epc, + "cavity_age": cavity_age, + **eligibility.walls, + **eligibility.roof, } ) @@ -250,21 +268,56 @@ def get_ha7_data(data, cleaned, cleaning_data, created_at, photo_supply_lookup, def analyse_ha_7(results_df, data): - df = results_df.merge( + analysis_data = results_df.merge( data[["row_id", "row_code", "Property Type", "Construction Year Band"]], how="left", on="row_id" ) - warmfront_identification = df["row_code"].value_counts() - warmfront_identified = df[df["row_code"] == "potential ECO4"] + + # NEW + + analysis_data["roof_insulation_thickness"] = np.where( + pd.isnull(analysis_data["roof_insulation_thickness"]), None, analysis_data["roof_insulation_thickness"] + ) + analysis_data["roof_insulation_thickness_numeric"] = analysis_data["roof_insulation_thickness"].apply( + lambda x: convert_thickness_to_numeric(x, is_flat=False, is_pitched=True) + ) + + ideal_eco4 = analysis_data[ + (analysis_data["eco4_eligible"] == True) & ( + analysis_data["roof_insulation_thickness_numeric"] <= 100) + ] + + secondary_eco4_warmfront_not_sold = analysis_data[ + (analysis_data["eco4_eligible"] == True) & ( + analysis_data["roof_insulation_thickness_numeric"] > 100) + ] + + # underperforming cavities + underperforming_cavities = analysis_data[ + (analysis_data["eco4_message"] == "Failed due to full cavity - check cavity age") & ( + analysis_data["cavity_age"] > 9 * 365 + ) & (analysis_data["roof_insulation_thickness_numeric"] <= 100) + ] + + identified_gbis_not_sold = analysis_data[ + (analysis_data["gbis_eligible"] == True) & ( + analysis_data["eco4_eligible"] == False + ) + ] + + # END NEW + + warmfront_identification = analysis_data["row_code"].value_counts() + warmfront_identified = analysis_data[analysis_data["row_code"] == "potential ECO4"] warmfront_identified["walls"].value_counts(normalize=True) - df["Construction Year Band"].value_counts(normalize=True) + analysis_data["Construction Year Band"].value_counts(normalize=True) # Number of days from today days_to_today = (datetime.now() - pd.to_datetime(warmfront_identified["date_epc"])).dt.days days_to_today.mean() - property_types = df["Property Type"].value_counts() + property_types = analysis_data["Property Type"].value_counts() n_identified = (results_df["gbis_eligible"] | results_df["eco4_eligible"]).sum() @@ -312,12 +365,12 @@ def app(): # Pickle results # import pickle - # with open("ha7_results.pkl", "wb") as f: + # with open("ha7_results_jan_10.pkl", "wb") as f: # pickle.dump({"results_df": results_df, "scoring_data": scoring_data, "nodata": nodata}, f) # Read in the old data # import pickle - # with open("ha7_results.pkl", "rb") as f: + # with open("ha7_results_jan_10.pkl", "rb") as f: # old_data = pickle.load(f) # results_df = old_data["results_df"] # scoring_data = old_data["scoring_data"] diff --git a/recommendations/Costs.py b/recommendations/Costs.py index 8dbb9cc9..e2b26448 100644 --- a/recommendations/Costs.py +++ b/recommendations/Costs.py @@ -176,12 +176,16 @@ class Costs: """ material_cost_per_m2 = material["material_cost"] + # We inflate material costs due to recent price increases + material_cost_per_m2 = material_cost_per_m2 * 1.5 + base_material_cost = material_cost_per_m2 * floor_area labour_cost = material["labour_cost"] * floor_area * self.labour_adjustment_factor subtotal_before_profit = base_material_cost + labour_cost - contingency_cost = subtotal_before_profit * self.CONTINGENCY + # We use high risk contingency because of the possibility of access issues and clearing existing insulation + contingency_cost = subtotal_before_profit * self.HIGH_RISK_CONTINGENCY preliminaries_cost = subtotal_before_profit * self.PRELIMINARIES profit_cost = subtotal_before_profit * self.PROFIT_MARGIN From 5becd8d11bee83cc39b6134fdc67786bb7cbbd8a Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Fri, 12 Jan 2024 11:21:13 +0000 Subject: [PATCH 192/526] fixed existing unit tests --- backend/tests/test_sap_model_prep.py | 31 +++++++++++++------ etl/solar/SolarPhotoSupply.py | 7 +++++ recommendations/tests/test_costs.py | 6 ++-- .../tests/test_roof_recommendations.py | 4 +-- .../tests/test_window_recommendations.py | 21 ++++++++----- 5 files changed, 48 insertions(+), 21 deletions(-) diff --git a/backend/tests/test_sap_model_prep.py b/backend/tests/test_sap_model_prep.py index c1ff514e..89c436ce 100644 --- a/backend/tests/test_sap_model_prep.py +++ b/backend/tests/test_sap_model_prep.py @@ -7,7 +7,6 @@ import pytest import msgpack from utils.s3 import read_dataframe_from_s3_parquet, read_from_s3 -from tqdm import tqdm # Handy code for selecting testing data @@ -121,7 +120,21 @@ class TestSapModelPrep: cleaned = msgpack.unpackb(cleaned, raw=False) return cleaned - def test_fill_cavity_wall(self, cleaned, cleaning_data): + @pytest.fixture + def photo_supply_lookup(self): + photo_supply_lookup = read_dataframe_from_s3_parquet( + bucket_name="retrofit-data-dev", file_key="solar_pv_supply/photo_supply_lookup.parquet", + ) + return photo_supply_lookup + + @pytest.fixture + def floor_area_decile_thresholds(self): + floor_area_decile_thresholds = read_dataframe_from_s3_parquet( + bucket_name="retrofit-data-dev", file_key="solar_pv_supply/floor_area_decile_thresholds.parquet", + ) + return floor_area_decile_thresholds + + def test_fill_cavity_wall(self, cleaned, cleaning_data, photo_supply_lookup, floor_area_decile_thresholds): """ We ensure that the process that prepares the data in the engine code results in the same data as the model is trained on @@ -290,7 +303,7 @@ class TestSapModelPrep: address=starting_epc["address1"], data=starting_epc ) - home.get_components(cleaned) + home.get_components(cleaned, photo_supply_lookup, floor_area_decile_thresholds) data_processor = DataProcessor(None, newdata=True) data_processor.insert_data(pd.DataFrame([home.get_model_data()])) @@ -354,7 +367,7 @@ class TestSapModelPrep: assert test_record[c].values[0] == row[c] - def test_internal_wall_insulation(self, cleaned, cleaning_data): + def test_internal_wall_insulation(self, cleaned, cleaning_data, photo_supply_lookup, floor_area_decile_thresholds): starting_epc2 = { 'low-energy-fixed-light-count': '2', 'address': 'FLAT 12, WAREHOUSE W, 3 WESTERN GATEWAY', @@ -509,7 +522,7 @@ class TestSapModelPrep: address=starting_epc2["address1"], data=starting_epc2 ) - home2.get_components(cleaned) + home2.get_components(cleaned, photo_supply_lookup, floor_area_decile_thresholds) home2.set_number_lighting_outlets(None) data_processor2 = DataProcessor(None, newdata=True) @@ -575,7 +588,7 @@ class TestSapModelPrep: assert test_record2[c].values[0] == row2[c] - def test_ventilation(self, cleaned, cleaning_data): + def test_ventilation(self, cleaned, cleaning_data, photo_supply_lookup, floor_area_decile_thresholds): starting_epc3 = { 'low-energy-fixed-light-count': '', 'address': '45 Shepperson Road', 'uprn-source': 'Energy Assessor', @@ -728,7 +741,7 @@ class TestSapModelPrep: address=starting_epc3["address1"], data=starting_epc3 ) - home3.get_components(cleaned) + home3.get_components(cleaned, photo_supply_lookup, floor_area_decile_thresholds) home3.set_number_lighting_outlets(None) data_processor3 = DataProcessor(None, newdata=True) @@ -778,7 +791,7 @@ class TestSapModelPrep: assert test_record3[c].values[0] == row3[c] - def test_fireplaces(self, cleaned, cleaning_data): + def test_fireplaces(self, cleaned, cleaning_data, photo_supply_lookup, floor_area_decile_thresholds): starting_epc4 = { 'low-energy-fixed-light-count': '', 'address': '9 Glebe Road, Asfordby Hill', @@ -936,7 +949,7 @@ class TestSapModelPrep: address=starting_epc4["address1"], data=starting_epc4 ) - home4.get_components(cleaned) + home4.get_components(cleaned, photo_supply_lookup, floor_area_decile_thresholds) home4.set_number_lighting_outlets(None) data_processor4 = DataProcessor(None, newdata=True) diff --git a/etl/solar/SolarPhotoSupply.py b/etl/solar/SolarPhotoSupply.py index 1a80c37a..180cd6f5 100644 --- a/etl/solar/SolarPhotoSupply.py +++ b/etl/solar/SolarPhotoSupply.py @@ -199,6 +199,13 @@ class SolarPhotoSupply: # Convert the tenure to lower case, as is done in the creation of the dataset tenure = tenure.lower() + # We remap the "not defined" + tenure = { + "not defined - use in the case of a new dwelling for which the intended tenure in not known. it is not to " + "be used for an existing dwelling": + "not defined - use in the case of a new dwelling for which the intended tenure in not known. it is no" + }.get(tenure, tenure) + photo_supply_matched = photo_supply_lookup[ (photo_supply_lookup["tenure"] == tenure) & (photo_supply_lookup["built_form"] == built_form) & diff --git a/recommendations/tests/test_costs.py b/recommendations/tests/test_costs.py index 1d519b91..ab822322 100644 --- a/recommendations/tests/test_costs.py +++ b/recommendations/tests/test_costs.py @@ -58,9 +58,9 @@ class TestCosts: ) assert loft_results == { - 'total': 430.21445040000003, 'subtotal': 358.512042, 'vat': 71.70240840000001, - 'contingency': 25.608003000000004, 'preliminaries': 25.608003000000004, 'material': 198.29923000000002, - 'profit': 51.21600600000001, 'labour_hours': 3.685, 'labour_cost': 57.7808, 'labour_days': 0.460625 + 'total': 639.4133610000001, 'subtotal': 532.8444675000001, 'vat': 106.56889350000002, + 'contingency': 71.045929, 'preliminaries': 35.5229645, 'material': 297.448845, 'profit': 71.045929, + 'labour_hours': 3.685, 'labour_cost': 57.7808, 'labour_days': 0.460625 } def test_internal_wall_insulation(self): diff --git a/recommendations/tests/test_roof_recommendations.py b/recommendations/tests/test_roof_recommendations.py index c1a7dfd9..75b7ddb2 100644 --- a/recommendations/tests/test_roof_recommendations.py +++ b/recommendations/tests/test_roof_recommendations.py @@ -53,7 +53,7 @@ class TestRoofRecommendations: assert len(roof_recommender2.recommendations) == 1 - assert roof_recommender2.recommendations[0]["total"] == 1310.56464 + assert roof_recommender2.recommendations[0]["total"] == 1936.9206000000004 assert roof_recommender2.recommendations[0]["new_u_value"] == 0.14 assert roof_recommender2.recommendations[0]["starting_u_value"] == 0.68 @@ -104,7 +104,7 @@ class TestRoofRecommendations: assert len(roof_recommender4.recommendations) == 4 - assert roof_recommender4.recommendations[0]["total"] == 788.0544 + assert roof_recommender4.recommendations[0]["total"] == 1128.744 assert roof_recommender4.recommendations[0]["new_u_value"] == 0.15 assert roof_recommender4.recommendations[0]["starting_u_value"] == 0.3 assert roof_recommender4.recommendations[0]["parts"][0]["depth"] == 150 diff --git a/recommendations/tests/test_window_recommendations.py b/recommendations/tests/test_window_recommendations.py index f103299d..664a1e39 100644 --- a/recommendations/tests/test_window_recommendations.py +++ b/recommendations/tests/test_window_recommendations.py @@ -17,7 +17,8 @@ class TestWindowRecommendations: address='1', data={ "county": "Wychavon", - "multi-glaze-proportion": 0 + "multi-glaze-proportion": 0, + "uprn": 0 } ) property_1.windows = { @@ -53,7 +54,8 @@ class TestWindowRecommendations: address='1', data={ "county": "Wychavon", - "multi-glaze-proportion": 33 + "multi-glaze-proportion": 33, + "uprn": 0 } ) property_2.windows = {'original_description': 'Mostly double glazing', 'has_glazing': True, @@ -86,7 +88,8 @@ class TestWindowRecommendations: address='1', data={ "county": "Wychavon", - "multi-glaze-proportion": 80 + "multi-glaze-proportion": 80, + "uprn": 0 } ) property_3.windows = {'original_description': 'Fully double glazed', 'has_glazing': True, @@ -109,7 +112,8 @@ class TestWindowRecommendations: address='1', data={ "county": "Wychavon", - "multi-glaze-proportion": 100 + "multi-glaze-proportion": 100, + "uprn": 0 } ) property_4.windows = {'original_description': 'Full secondary glazing', 'has_glazing': True, @@ -132,7 +136,8 @@ class TestWindowRecommendations: address='1', data={ "county": "Wychavon", - "multi-glaze-proportion": 50 + "multi-glaze-proportion": 50, + "uprn": 0 } ) property_5.windows = {'original_description': 'Partial secondary glazing', 'has_glazing': True, @@ -161,7 +166,8 @@ class TestWindowRecommendations: address='1', data={ "county": "Wychavon", - "multi-glaze-proportion": 0 + "multi-glaze-proportion": 0, + "uprn": 0 } ) property_6.windows = {'original_description': 'Single glazed', 'has_glazing': False, 'glazing_coverage': None, @@ -195,7 +201,8 @@ class TestWindowRecommendations: address='1', data={ "county": "Wychavon", - "multi-glaze-proportion": 100 + "multi-glaze-proportion": 100, + "uprn": 0 } ) property_7.windows = {'original_description': 'Fully triple glazed', 'has_glazing': True, From 0c76e4b9d12a6f61ad735d44d42615311a853b45 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Tue, 16 Jan 2024 11:10:56 +0000 Subject: [PATCH 193/526] Added basic solar recommendations --- etl/eligibility/ha_15_32/app.py | 7 ++ etl/eligibility/ha_15_32/ha16_app.py | 2 +- etl/eligibility/ha_15_32/ha25_app.py | 5 ++ etl/eligibility/ha_15_32/ha7_app.py | 6 ++ recommendations/SolarPvRecommendations.py | 3 +- .../tests/test_solar_pv_recommendations.py | 79 +++++++++++++++++++ 6 files changed, 100 insertions(+), 2 deletions(-) diff --git a/etl/eligibility/ha_15_32/app.py b/etl/eligibility/ha_15_32/app.py index b7f44a43..76aadcc4 100644 --- a/etl/eligibility/ha_15_32/app.py +++ b/etl/eligibility/ha_15_32/app.py @@ -980,6 +980,8 @@ def analyse_ha_15_results(results_df, ha15, no_house_numbers): results_df["warmfront_identified"] ] + warmfront_identified = warmfront_identified + n_identified = (warmfront_identified["gbis_eligible"] | warmfront_identified["eco4_eligible"]).sum() success_rate = n_identified / warmfront_identified.shape[0] @@ -1030,6 +1032,11 @@ def analyse_ha_15_results(results_df, ha15, no_house_numbers): (results_df["eco4_eligible"] == True) ].copy() + new_possibilities_gbis = results_df[ + (~results_df["warmfront_identified"]) & + (results_df["eco4_eligible"] == False) & (results_df["gbis_eligible"] == True) + ].copy() + # These are future possibilityies future_possibilities_eco = results_df[ (~results_df["warmfront_identified"]) & diff --git a/etl/eligibility/ha_15_32/ha16_app.py b/etl/eligibility/ha_15_32/ha16_app.py index b7f076b1..0d67e0b4 100644 --- a/etl/eligibility/ha_15_32/ha16_app.py +++ b/etl/eligibility/ha_15_32/ha16_app.py @@ -478,7 +478,7 @@ def get_epc_data(data, cleaned, cleaning_data, created_at, photo_supply_lookup, def analyse_results(results_df, data, survey_list): - analysis_data = data[["row_id", "survey_key", "warmfront_identified"]].merge( + analysis_data = data[["row_id", "survey_key", "warmfront_identified", "row_colour_name"]].merge( results_df, how="left", on="row_id" ).merge( survey_list[["survey_key", survey_list.columns[0]]].rename(columns={survey_list.columns[0]: "funding_scheme"}), diff --git a/etl/eligibility/ha_15_32/ha25_app.py b/etl/eligibility/ha_15_32/ha25_app.py index c67c6b6b..7dd36726 100644 --- a/etl/eligibility/ha_15_32/ha25_app.py +++ b/etl/eligibility/ha_15_32/ha25_app.py @@ -787,6 +787,11 @@ def analyse_results(results_df, data, eco4_prospects_survey_list): results_df, how="left", on="row_id" ) + analysis_data = analysis_data.merge( + eco4_prospects_survey_list[["survey_key", "ADDRESS 1", "NO", "POSTCODE"]], + how="left", on="survey_key" + ) + # NEW analysis_data["roof_insulation_thickness"] = np.where( pd.isnull(analysis_data["roof_insulation_thickness"]), None, analysis_data["roof_insulation_thickness"] diff --git a/etl/eligibility/ha_15_32/ha7_app.py b/etl/eligibility/ha_15_32/ha7_app.py index 54d0dbb0..c6486159 100644 --- a/etl/eligibility/ha_15_32/ha7_app.py +++ b/etl/eligibility/ha_15_32/ha7_app.py @@ -272,6 +272,8 @@ def analyse_ha_7(results_df, data): data[["row_id", "row_code", "Property Type", "Construction Year Band"]], how="left", on="row_id" ) + analysis_data["row_code"].value_counts() + # NEW analysis_data["roof_insulation_thickness"] = np.where( @@ -304,6 +306,10 @@ def analyse_ha_7(results_df, data): ) ] + wf_identified = analysis_data[ + (analysis_data["row_code"] == "potential ECO4") + ] + # END NEW warmfront_identification = analysis_data["row_code"].value_counts() diff --git a/recommendations/SolarPvRecommendations.py b/recommendations/SolarPvRecommendations.py index 5163c1cb..01cd4f17 100644 --- a/recommendations/SolarPvRecommendations.py +++ b/recommendations/SolarPvRecommendations.py @@ -31,7 +31,8 @@ class SolarPvRecommendations: is_valid_roof_type = ( self.property.roof["is_flat"] or self.property.roof["is_pitched"] or self.property.roof["is_roof_room"] ) - has_no_existing_solar_pv = not self.property.data["photo-supply"] in [ + # If there is no existing solar PV, the photo-supply field will be None or a missing value + has_no_existing_solar_pv = self.property.data["photo-supply"] in [ None, 0, self.property.DATA_ANOMALY_MATCHES ] diff --git a/recommendations/tests/test_solar_pv_recommendations.py b/recommendations/tests/test_solar_pv_recommendations.py index e69de29b..f2436cb1 100644 --- a/recommendations/tests/test_solar_pv_recommendations.py +++ b/recommendations/tests/test_solar_pv_recommendations.py @@ -0,0 +1,79 @@ +import pytest +from recommendations.SolarPvRecommendations import SolarPvRecommendations +from backend.Property import Property + + +class TestSolarPvRecommendations: + @pytest.fixture + def property_instance_invalid_type(self): + # Setup the property_instance with an invalid property type + property_instance_invalid_type = Property(id=1, address="", postcode="") + property_instance_invalid_type.data = { + "property-type": "InvalidType", "county": "Broxbourne", "photo-supply": None + } + property_instance_invalid_type.roof = {"is_flat": False, "is_pitched": False, "is_roof_room": False} + return property_instance_invalid_type + + @pytest.fixture + def property_instance_invalid_roof(self): + # Setup the property_instance with invalid roof type + property_instance_invalid_roof = Property(id=1, address="", postcode="") + property_instance_invalid_roof.data = { + "county": "Huntingdonshire", "property-type": "House", "photo-supply": None + } + property_instance_invalid_roof.roof = {"is_flat": False, "is_pitched": False, "is_roof_room": False} + return property_instance_invalid_roof + + @pytest.fixture + def property_instance_has_solar_pv(self): + # Setup the property_instance without existing solar pv + property_instance_has_solar_pv = Property(id=1, address="", postcode="") + property_instance_has_solar_pv.data = {"photo-supply": "40", "county": "Huntingdonshire", + "property-type": "House"} + property_instance_has_solar_pv.roof = {"is_flat": True} + return property_instance_has_solar_pv + + @pytest.fixture + def property_instance_valid_all(self): + # Setup a valid property_instance that passes all conditions + property_instance_valid_all = Property(id=1, address="", postcode="") + property_instance_valid_all.solar_pv_roof_area = 20 + property_instance_valid_all.solar_pv_percentage = 40 + property_instance_valid_all.data = {"property-type": "House", "photo-supply": None, "county": "Huntingdonshire"} + property_instance_valid_all.roof = {"is_flat": True} + return property_instance_valid_all + + def test_invalid_property_type(self, property_instance_invalid_type): + solar_pv = SolarPvRecommendations(property_instance_invalid_type) + solar_pv.recommend() + assert not solar_pv.recommendation + + def test_invalid_roof_type(self, property_instance_invalid_roof): + solar_pv = SolarPvRecommendations(property_instance_invalid_roof) + solar_pv.recommend() + assert not solar_pv.recommendation + + def test_existing_solar_pv(self, property_instance_has_solar_pv): + solar_pv = SolarPvRecommendations(property_instance_has_solar_pv) + solar_pv.recommend() + assert not solar_pv.recommendation + + def test_valid_all_conditions(self, property_instance_valid_all): + solar_pv = SolarPvRecommendations(property_instance_valid_all) + solar_pv.recommend() + assert solar_pv.recommendation == [ + { + 'parts': [], + 'type': 'solar_pv', + 'description': 'Install a 4 kilowatt-peak (kWp) solar photovoltaic (PV) panel system on the roof', + 'starting_u_value': None, + 'new_u_value': None, + 'sap_points': None, + 'total': 8527.0752, + 'subtotal': 7105.896, + 'vat': 1421.1791999999996, + 'labour_hours': 72, + 'labour_days': 2, + 'photo_supply': 4000 + } + ] From dbe704f6f6d1202e431baa37e03d1f610493bf14 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Tue, 16 Jan 2024 11:34:47 +0000 Subject: [PATCH 194/526] Added solar costs unit tests --- recommendations/tests/test_costs.py | 46 +++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) diff --git a/recommendations/tests/test_costs.py b/recommendations/tests/test_costs.py index ab822322..1f5b300c 100644 --- a/recommendations/tests/test_costs.py +++ b/recommendations/tests/test_costs.py @@ -1,6 +1,7 @@ from recommendations.Costs import Costs from unittest.mock import Mock import datetime +import pytest class TestCosts: @@ -499,3 +500,48 @@ class TestCosts: 'labour_hours': 24.79, 'labour_days': 1.549375, 'labour_cost': 186.9032} assert costs.labour_adjustment_factor == 0.88 + + # Mock property instance for regional tests + @pytest.fixture(params=[ + ("Northamptonshire", "East Midlands", 7927.44), + ("Greater London Authority", "Inner London", 10475.0), + ("Adur", "South East England", 8333.32), + ("Bournemouth", "South West England", 8452), + ("Basildon", "East of England", 7895.44), + ("Birmingham", "West Midlands", 7706.2), + ("County Durham", "North East England", 8113.96), + ("Allerdale", "North West England", 6481.68), + ("York", "Yorkshire and the Humber", 8243.6), + ("Cardiff", "Wales", 7595.32), + ("Glasgow City", "Scotland", 7871.88), + ("Belfast", "Northern Ireland", 8504.36) + ]) + def mock_property_with_region(self, request): + county, region, expected_cost = request.param + mock_property = Mock() + mock_property.data = {"county": county} + return mock_property, region, expected_cost + + # Test for different wattages + @pytest.mark.parametrize("wattage, expected_cost", [ + (3000, 5945.58), + (4000, 7927.44), + (5000, 9909.3), + (6000, 11891.16), + ]) + def test_solar_pv_different_wattages(self, wattage, expected_cost): + mock_property = Mock() + mock_property.data = {"county": "Mansfield"} + costs = Costs(mock_property) + result = costs.solar_pv(wattage) + assert result['total'] == pytest.approx(expected_cost, rel=0.01) + + def test_solar_pv_regional_variation(self, mock_property_with_region): + # Test for regional cost variations + property_instance, expected_region, expected_cost = mock_property_with_region + costs = Costs(property_instance) + + assert costs.region == expected_region + + result = costs.solar_pv(4000) # Testing with a fixed wattage of 4000 + assert result['total'] == pytest.approx(expected_cost, rel=0.01) From b03b9d49083a22f78ac6e7969423696fa32b4293 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Tue, 16 Jan 2024 11:45:19 +0000 Subject: [PATCH 195/526] made contingency updates to costs --- recommendations/Costs.py | 6 ++--- recommendations/tests/test_costs.py | 12 ++++------ .../tests/test_wall_recommendations.py | 24 +++++++++---------- 3 files changed, 20 insertions(+), 22 deletions(-) diff --git a/recommendations/Costs.py b/recommendations/Costs.py index e2b26448..106f4453 100644 --- a/recommendations/Costs.py +++ b/recommendations/Costs.py @@ -61,7 +61,7 @@ class Costs: # We use a higher contingency rate for internal wall insulation because of the potential for issues with moving # fittings and trimming doors, as well as scope for damage to the existing wall during preparation. - IWI_CONTINGENCY = 0.15 + IWI_CONTINGENCY = 0.2 # Where there is more uncertainty, a higher contingency rate is used HIGH_RISK_CONTINGENCY = 0.2 @@ -77,8 +77,8 @@ class Costs: # have a preliminaries of 12-14% so we use 12% as the median for the preliminaries rate. # For External wall insulation (EWI), we use 15% as the preliminaries rate if we think the property might # need scaffolding, otherwise we use 12%. This is to account for any site preparation that might be required - EWI_NO_SCAFFOLDING_PRELIMINARIES = 0.15 - EWI_SCAFFOLDING_PRELIMINARIES = 0.20 + EWI_NO_SCAFFOLDING_PRELIMINARIES = 0.2 + EWI_SCAFFOLDING_PRELIMINARIES = 0.25 VAT_RATE = 0.2 PROFIT_MARGIN = 0.2 diff --git a/recommendations/tests/test_costs.py b/recommendations/tests/test_costs.py index 1f5b300c..402e38eb 100644 --- a/recommendations/tests/test_costs.py +++ b/recommendations/tests/test_costs.py @@ -177,11 +177,9 @@ class TestCosts: ) assert iwi_results == { - 'total': 6650.889456921851, 'subtotal': 5542.407880768209, 'vat': 1108.4815761536418, - 'contingency': 573.3525393898148, 'preliminaries': 382.2350262598765, - 'material': 1747.488000615996, - 'profit': 764.470052519753, 'labour_hours': 88.23759388401297, - 'labour_days': 2.757424808875405, + 'total': 6880.2304726777775, 'subtotal': 5733.525393898148, 'vat': 1146.7050787796295, + 'contingency': 764.470052519753, 'preliminaries': 382.2350262598765, 'material': 1747.488000615996, + 'profit': 764.470052519753, 'labour_hours': 88.23759388401297, 'labour_days': 2.757424808875405, 'labour_cost': 1927.1602026551818 } @@ -415,8 +413,8 @@ class TestCosts: ) assert ewi_results == { - 'total': 14561.688989159393, 'subtotal': 12134.740824299493, 'vat': 2426.948164859899, - 'contingency': 808.9827216199662, 'preliminaries': 1617.9654432399325, 'material': 4020.565147410677, + 'total': 15047.078622131372, 'subtotal': 12539.232185109477, 'vat': 2507.8464370218953, + 'contingency': 808.9827216199662, 'preliminaries': 2022.4568040499155, 'material': 4020.565147410677, 'profit': 1617.9654432399325, 'labour_hours': 187.02533486285358, 'labour_days': 5.8445417144641745, 'labour_cost': 3921.5600094613983 } diff --git a/recommendations/tests/test_wall_recommendations.py b/recommendations/tests/test_wall_recommendations.py index 2fbf3239..bfc681f5 100644 --- a/recommendations/tests/test_wall_recommendations.py +++ b/recommendations/tests/test_wall_recommendations.py @@ -331,17 +331,17 @@ class TestCavityWallRecommensations: assert len(recommender2.recommendations) == 9 assert recommender2.estimated_u_value == 1 assert np.isclose(recommender2.recommendations[0]["new_u_value"], 0.19) - assert np.isclose(recommender2.recommendations[0]["total"], 15899.9616) + assert np.isclose(recommender2.recommendations[0]["total"], 16429.960320000002) assert recommender2.recommendations[0]["parts"][0]["type"] == "external_wall_insulation" assert recommender2.recommendations[0]["parts"][0]["depth"] == 100 assert np.isclose(recommender2.recommendations[8]["new_u_value"], 0.23) - assert np.isclose(recommender2.recommendations[8]["total"], 10916.3424) + assert np.isclose(recommender2.recommendations[8]["total"], 11292.768) assert recommender2.recommendations[8]["parts"][0]["type"] == "internal_wall_insulation" assert recommender2.recommendations[8]["parts"][0]["depth"] == 72.5 assert np.isclose(recommender2.recommendations[6]["new_u_value"], 0.29) - assert np.isclose(recommender2.recommendations[6]["total"], 10621.934399999998) + assert np.isclose(recommender2.recommendations[6]["total"], 10988.208) assert recommender2.recommendations[6]["parts"][0]["type"] == "internal_wall_insulation" assert recommender2.recommendations[6]["parts"][0]["depth"] == 52.5 @@ -378,12 +378,12 @@ class TestCavityWallRecommensations: assert len(recommender3.recommendations) == 6 assert recommender3.estimated_u_value == 1.9 assert np.isclose(recommender3.recommendations[0]["new_u_value"], 0.2) - assert np.isclose(recommender3.recommendations[0]["total"], 13117.46832) + assert np.isclose(recommender3.recommendations[0]["total"], 13554.717263999999) assert recommender3.recommendations[0]["parts"][0]["type"] == "external_wall_insulation" assert recommender3.recommendations[0]["parts"][0]["depth"] == 100.0 assert np.isclose(recommender3.recommendations[1]["new_u_value"], 0.23) - assert np.isclose(recommender3.recommendations[1]["total"], 34070.50944) + assert np.isclose(recommender3.recommendations[1]["total"], 35206.19308800001) assert recommender3.recommendations[1]["parts"][0]["type"] == "external_wall_insulation" assert recommender3.recommendations[1]["parts"][0]["depth"] == 150.0 @@ -420,12 +420,12 @@ class TestCavityWallRecommensations: assert len(recommender4.recommendations) == 6 assert recommender4.estimated_u_value == 2.3 assert np.isclose(recommender4.recommendations[0]["new_u_value"], 0.21) - assert np.isclose(recommender4.recommendations[0]["total"], 28562.514352) + assert np.isclose(recommender4.recommendations[0]["total"], 29547.42864) assert recommender4.recommendations[0]["parts"][0]["type"] == "external_wall_insulation" assert recommender4.recommendations[0]["parts"][0]["depth"] == 100 assert np.isclose(recommender4.recommendations[1]["new_u_value"], 0.23) - assert np.isclose(recommender4.recommendations[1]["total"], 74186.52678400002) + assert np.isclose(recommender4.recommendations[1]["total"], 76744.68288000001) assert recommender4.recommendations[1]["parts"][0]["type"] == "external_wall_insulation" assert recommender4.recommendations[1]["parts"][0]["depth"] == 150 @@ -462,12 +462,12 @@ class TestCavityWallRecommensations: assert len(recommender5.recommendations) == 5 assert recommender5.estimated_u_value == 0.8 assert np.isclose(recommender5.recommendations[0]["new_u_value"], 0.29) - assert np.isclose(recommender5.recommendations[0]["total"], 8665.040384000002) + assert np.isclose(recommender5.recommendations[0]["total"], 8963.834880000002) assert recommender5.recommendations[0]["parts"][0]["type"] == "external_wall_insulation" assert recommender5.recommendations[0]["parts"][0]["depth"] == 50 assert np.isclose(recommender5.recommendations[3]["new_u_value"], 0.26) - assert np.isclose(recommender5.recommendations[3]["total"], 20078.742992) + assert np.isclose(recommender5.recommendations[3]["total"], 20771.11344) assert recommender5.recommendations[3]["parts"][0]["type"] == "internal_wall_insulation" assert recommender5.recommendations[3]["parts"][0]["depth"] == 100 @@ -504,16 +504,16 @@ class TestCavityWallRecommensations: assert len(recommender6.recommendations) == 9 assert recommender6.estimated_u_value == 1 assert np.isclose(recommender6.recommendations[0]["new_u_value"], 0.19) - assert np.isclose(recommender6.recommendations[0]["total"], 44829.0584) + assert np.isclose(recommender6.recommendations[0]["total"], 46374.888000000006) assert recommender6.recommendations[0]["parts"][0]["type"] == "external_wall_insulation" assert recommender6.recommendations[0]["parts"][0]["depth"] == 100 assert np.isclose(recommender6.recommendations[2]["new_u_value"], 0.21) - assert np.isclose(recommender6.recommendations[2]["total"], 116436.25280000002) + assert np.isclose(recommender6.recommendations[2]["total"], 120451.29600000002) assert recommender6.recommendations[2]["parts"][0]["type"] == "external_wall_insulation" assert recommender6.recommendations[2]["parts"][0]["depth"] == 150 assert np.isclose(recommender6.recommendations[4]["new_u_value"], 0.28) - assert np.isclose(recommender6.recommendations[4]["total"], 91267.0136) + assert np.isclose(recommender6.recommendations[4]["total"], 94414.15199999999) assert recommender6.recommendations[4]["parts"][0]["type"] == "internal_wall_insulation" assert recommender6.recommendations[4]["parts"][0]["depth"] == 100 From 61dd26f23e9360d21b8a892200d640f1d0685e40 Mon Sep 17 00:00:00 2001 From: Michael Duong Date: Tue, 16 Jan 2024 16:40:10 +0000 Subject: [PATCH 196/526] refactored the model recommendations dataset --- backend/Property.py | 491 ++++++++---------------- backend/app/db/models/materials.py | 2 + backend/app/plan/router.py | 171 +++++---- etl/epc/DataProcessor.py | 35 +- etl/epc/Dataset.py | 17 +- etl/epc/Pipeline.py | 15 +- etl/epc/Record.py | 587 ++++++++++++++++++++++++++--- etl/epc/property_change_app.py | 13 +- etl/epc/settings.py | 53 +++ 9 files changed, 898 insertions(+), 486 deletions(-) diff --git a/backend/Property.py b/backend/Property.py index bb545248..e193ffbb 100644 --- a/backend/Property.py +++ b/backend/Property.py @@ -5,8 +5,9 @@ import os import numpy as np import pandas as pd -from etl.epc.DataProcessor import DataProcessor -from etl.epc.settings import POTENTIAL_COLUMNS, EFFICIENCY_FEATURES, BUILT_FORM_REMAP +from etl.epc.DataProcessor import EPCDataProcessor +from etl.epc.Dataset import TrainingDataset +from etl.epc.settings import LATEST_FIELD, MANDATORY_FIXED_FEATURES, POTENTIAL_COLUMNS, EFFICIENCY_FEATURES, BUILT_FORM_REMAP from etl.epc_clean.epc_attributes.all_cleaners import all_cleaner_map from utils.logger import setup_logger from utils.s3 import read_dataframe_from_s3_parquet @@ -17,6 +18,7 @@ from recommendations.recommendation_utils import ( estimate_perimeter, get_wall_type, estimate_external_wall_area, esimtate_pitched_roof_area ) + ENVIRONMENT = os.environ.get('ENVIRONMENT', 'dev') EPC_AUTH_TOKEN = os.environ.get('EPC_AUTH_TOKEN') DATA_BUCKET = os.environ.get('DATA_BUCKET', 'retrofit-data-dev' if ENVIRONMENT == 'dev' else None) @@ -49,216 +51,201 @@ class Property(Definitions): spatial = None - def __init__(self, id, postcode, address1, epc_client=None, data=None): + def __init__(self, id, postcode, address1, epc_record, data=None): + + self.epc_record = epc_record + self.id = id self.postcode = postcode self.address1 = address1 - self.data = data - self.old_data = None + self.data = {k.replace("_", "-"): v for k,v in epc_record.get("prepared_epc").items()} + self.old_data = epc_record.get("old_data") self.property_dimensions = None - self.uprn = None - self.full_sap_epc = None + self.uprn = epc_record.get("uprn") + self.full_sap_epc = epc_record.get("full_sap_epc") self.in_conservation_area, self.is_listed, self.is_heritage = None, None, None self.restricted_measures = False - self.year_built = None - self.number_of_rooms = None - self.age_band = None - self.construction_age_band = None - self.number_of_floors = None + self.year_built = epc_record.get("year_built") + self.number_of_rooms = epc_record.prepared_epc.get("number_of_rooms") + self.age_band = epc_record.get("age_band") + self.construction_age_band = epc_record.get("construction_age_band") + self.number_of_floors = epc_record.get("number_of_floors") self.perimeter = None self.wall_type = None self.floor_type = None - self.energy = None - self.ventilation = None - self.solar_pv = None - self.solar_hot_water = None - self.wind_turbine = None - self.number_of_open_fireplaces = None - self.number_of_extensions = None - self.number_of_storeys = None - self.heat_loss_corridor = None - self.mains_gas = None - self.floor_height = None + self.energy = { + "primary_energy_consumption": epc_record.get("energy_consumption_current"), + "co2_emissions": epc_record.get("co2_emissions_current"), + } + self.ventilation = { + "ventilation": epc_record.get("mechanical_ventilation"), + } + self.solar_pv = { + "solar_pv": epc_record.get("photo_supply"), + } + self.solar_hot_water = { + "solar_hot_water": epc_record.get("solar_water_heating_flag"), + } + self.wind_turbine = { + "wind_turbine": epc_record.prepared_epc.get("wind_turbine_count"), + } + self.number_of_open_fireplaces = { + "number_of_open_fireplaces": epc_record.prepared_epc.get("number_of_open_fireplaces"), + } + self.number_of_extensions = { + "number_of_extensions": epc_record.prepared_epc.get("number_of_extensions"), + } + self.number_of_storeys = { + "number_of_storeys": epc_record.prepared_epc.get("number_of_storeys"), + } + self.heat_loss_corridor = { + "heat_loss_corridor": epc_record.prepared_epc.get("heat_loss_corridor"), + "length": epc_record.prepared_epc.get("unheated_corridor_length"), + } + self.mains_gas = epc_record.prepared_epc.get('mains_gas_flag') + self.floor_height = epc_record.prepared_epc.get('floor_height') self.insulation_wall_area = None - self.floor_area = None + self.floor_area = epc_record.prepared_epc.get('total_floor_area') self.pitched_roof_area = None self.insulation_floor_area = None - self.number_lighting_outlets = None + self.number_lighting_outlets = epc_record.prepared_epc.get("fixed_lighting_outlets_count") self.floor_level = None self.current_adjusted_energy = None self.expected_adjusted_energy = None - if epc_client: - self.epc_client = epc_client + self.recommendations_scoring_data = [] + + def create_base_difference_epc_record(self, cleaned_lookup: dict): + """ + Creates a EPCDifferenceRecord object, which is used to store the difference between the current and + expected EPC + It will be the same starting and ending EPC, as we don't have the expected EPC yet + """ + + difference_record = self.epc_record - self.epc_record + + # TODO: change these lower and replace in the settings file + fixed_data_col_names = MANDATORY_FIXED_FEATURES + LATEST_FIELD + print("NEED TO CHANGE THE DASH TO LOWER CASE") + fixed_data_col_names = [x.lower().replace("_", "-") for x in fixed_data_col_names] + + fixed_data = {k.replace("-", "_"):v for k,v in self.data.items() if k in fixed_data_col_names} + + difference_record.append_fixed_data(fixed_data) + + self.base_difference_record = TrainingDataset(datasets=[difference_record], cleaned_lookup=cleaned_lookup) + + # TODO: adjust the base difference record with the previously calculated u values + features + # estimated_perimeter is different to the perimeter in the epc record + + # self.base_difference_record.df + + def adjust_difference_record_with_recommendations(self, property_recommendations): + """ + This method will adjust the difference record, based on the recommendations made for the property + :param recommendations: dictionary of recommendations for the property + :return: + """ + + for recommendations_by_type in property_recommendations: + for i, rec in enumerate(recommendations_by_type): + scoring_dict = self.create_recommendation_scoring_data( + recommendation=rec, + ) + scoring_dict['id'] = "+".join([str(self.id), str(rec["recommendation_id"])]) + + self.recommendations_scoring_data.append(scoring_dict) + + def create_recommendation_scoring_data(self, recommendation: dict): + + recommendation_record = self.base_difference_record.df.to_dict("records")[0].copy() + + for col in [ + "walls_insulation_thickness", "floor_insulation_thickness", "roof_insulation_thickness" + ]: + if recommendation_record[col] is None: + recommendation_record[col] = "none" + + # We update the description to indicate it's insulated + if recommendation["type"] in ["internal_wall_insulation", "external_wall_insulation", "cavity_wall_insulation"]: + # The upgrade made here is to the u-value of the walls and the description of the + # insulation thickness + recommendation_record["walls_thermal_transmittance_ending"] = recommendation["new_u_value"] + recommendation_record["walls_insulation_thickness_ending"] = "above average" + recommendation_record["walls_energy_eff_ending"] = "Good" else: - self.epc_client = EpcClient(auth_token=EPC_AUTH_TOKEN) + if recommendation_record["walls_thermal_transmittance_ending"] is None: + raise ValueError("We should not have a None value for the u value") - def search_address_epc(self): - """ - This method searches for an address in the EPC database and returns the first result - :return: property data - """ - if self.data: - return + if recommendation_record["walls_insulation_thickness_ending"] is None: + recommendation_record["walls_insulation_thickness_ending"] = "none" - # This will fail if a property does not have an EPC - this has been documented as a case to handle - response = self.epc_client.domestic.search(params={"address": self.address1, "postcode": self.postcode}) + # Update description to indicate it's insulate + if recommendation["type"] in ["solid_floor_insulation", "suspended_floor_insulation", "exposed_floor_insulation"]: + if len(recommendation["parts"]) > 1: + raise NotImplementedError("Have more than 1 floor insulation part - handle this case") - # Check if we have a full sap EPC - self.full_sap_epc = [r for r in response["rows"] if r["transaction-type"] == "new dwelling"] - self.full_sap_epc = self.full_sap_epc[0] if self.full_sap_epc else self.full_sap_epc + recommendation_record["floor_thermal_transmittance_ending"] = recommendation["new_u_value"] + # We don't really see above average for this in the training data + recommendation_record["floor_insulation_thickness_ending"] = "average" + recommendation_record["floor_energy_eff_ending"] = "Good" + else: + if recommendation_record["floor_thermal_transmittance_ending"] is None: + raise ValueError("We should not have a None value for the u value") - if len(response["rows"]) > 1: - newest_response = [ - r for r in response["rows"] if - r["lodgement-datetime"] == max([x["lodgement-datetime"] for x in response["rows"]]) + if recommendation_record["floor_insulation_thickness_ending"] is None: + recommendation_record["floor_insulation_thickness_ending"] = "none" + + if recommendation["type"] in ["loft_insulation", "room_roof_insulation", "flat_roof_insulation"]: + recommendation_record["roof_thermal_transmittance_ending"] = recommendation["new_u_value"] + + parts = recommendation["parts"] + if len(parts) != 1: + raise ValueError("More than one part for roof insulation - investiage me") + + # This is based on the values we have in the training data + valid_numeric_values = [ + 12, 25, 50, 75, 100, 150, 200, 250, 270, 300, 350, 400 ] - if len(newest_response) > 1: - raise Exception("More than one result found for this address - investigate me") - # We'll keep old EPCs in case it contains information, not present on the newest one - self.old_data = [epc for epc in response["rows"] if epc["lmk-key"] != newest_response[0]["lmk-key"]] + proposed_depth = int(parts[0]["depth"]) + if proposed_depth not in valid_numeric_values: + # Take the nearest value for scoring + proposed_depth = min(valid_numeric_values, key=lambda x: abs(x - proposed_depth)) - response["rows"] = newest_response - - self.data = response["rows"][0] - # For the moment, if we don't have a UPRN, we don't do anything about it, however we'll handle this in - # the future by using the Ordnance Survey places API - if not self.data["uprn"]: - logger.warning("We do not have a UPRN for this property") + recommendation_record["roof_insulation_thickness_ending"] = str(proposed_depth) + recommendation_record["roof_energy_eff_ending"] = "Very Good" else: - self.uprn = int(self.data["uprn"]) + # Fill missing roof u-values - this fill is not based on recommended upgrades + if recommendation_record["roof_thermal_transmittance_ending"] is None: + raise ValueError("We should not have a None value for the u value") - def set_energy(self): - """ - Extracts and formats data about the home's energy and co2 consumption - To being with, this is just formatting epc data + if recommendation_record["roof_insulation_thickness_ending"] is None: + recommendation_record["roof_insulation_thickness_ending"] = "none" - Data: - - primary_energy_consumption - This is based on the "energy-consumption-current" field in the EPC data. - Current estimated total energy consumption for the property in a 12 month period (kWh/m2). Displayed on EPC - as the current primary energy use per square metre of floor area. + if recommendation["type"] == "mechanical_ventilation": + recommendation_record["mechanical_ventilation_ending"] = 'mechanical, extract only' - - co2_emissions - This is based on the "co2-emissions-current" field in the EPC data. - CO₂ emissions per year in tonnes/year. - """ + if recommendation["type"] == "sealing_open_fireplace": + recommendation_record["number_open_fireplaces_ending"] = 0 - self.energy = { - "primary_energy_consumption": float(self.data["energy-consumption-current"]), - "co2_emissions": float(self.data["co2-emissions-current"]), - } + if recommendation["type"] == "low_energy_lighting": + recommendation_record["low_energy_lighting_ending"] = 100 + recommendation_record["lighting_energy_eff_starting"] = "Very Good" - def set_ventilation(self): - """ - Extracts and formats data about the home's ventilation - To being with, this is just formatting epc data + if recommendation["type"] not in [ + "mechanical_ventilation", "sealing_open_fireplace", "low_energy_lighting", + "internal_wall_insulation", "external_wall_insulation", "cavity_wall_insulation", + "loft_insulation", "room_roof_insulation", "flat_roof_insulation", + "solid_floor_insulation", "suspended_floor_insulation", "exposed_floor_insulation" + ]: + raise NotImplementedError("Implement me") - Data: - - ventilation - This is based on the "ventilation-type" field in the EPC data. - Ventilation type of the property. - """ + return recommendation_record - ventilation = self.data["mechanical-ventilation"] - # perform some simple cleaning - when checking 300k epc, the only unique values were - # {'', 'mechanical, supply and extract', 'NO DATA!', 'natural', 'mechanical, extract only'} - if ventilation in self.DATA_ANOMALY_MATCHES or ventilation in [""]: - ventilation = None - - self.ventilation = { - "ventilation": ventilation, - } - - def set_solar_pv(self): - """ - Extracts and formats data about the home's solar pv - To being with, this is just formatting epc data - - Data: - - solar_pv - This is based on the "photo-supply" field in the EPC data. - - When checking 100k epc, either the value was "" or a stringified number - """ - - solar_pv = self.data["photo-supply"] - if solar_pv == "": - solar_pv = None - else: - solar_pv = float(solar_pv) - - self.solar_pv = { - "solar_pv": solar_pv, - } - - def set_solar_hot_water(self): - """ - Extracts and formats data about the home's solar hot water - We are just formatting the solar-water-heating-flag in the epc data - :return: - """ - - value_map = { - "Y": True, - "N": False, - "": None, - } - - self.solar_hot_water = { - "solar_hot_water": value_map[self.data["solar-water-heating-flag"]], - } - - def set_wind_turbine(self): - """ - Extracts and formats data about the home's wind turbine - We are just formatting the wind-turbine-flag in the epc data - :return: - """ - - wind_turbine_count = self.data["wind-turbine-count"] - if wind_turbine_count == "": - wind_turbine_count = None - else: - wind_turbine_count = int(wind_turbine_count) - - self.wind_turbine = { - "wind_turbine": wind_turbine_count, - } - - def set_count_variables(self): - - """ - For EPC fields that are just counts, we'll set them here - These are fields that are integers but may contain additional values such as "" so we can't do a direct - conversion straight to an integer - :return: - """ - - fields = { - "number_of_open_fireplaces": "number-open-fireplaces", - "number_of_extensions": "extension-count", - "number_of_storeys": "flat-storey-count", - "number_of_rooms": "number-habitable-rooms", - } - - null_attributes = ["number_of_storeys", "number_of_rooms"] - - for attribute, epc_field in fields.items(): - value = self.data["extension-count"] - if value == "" or value in self.DATA_ANOMALY_MATCHES: - if attribute in null_attributes: - value = None - else: - value = 0 - else: - value = int(value) - - setattr(self, attribute, value) def get_components(self, cleaned): """ @@ -274,27 +261,9 @@ class Property(Definitions): if not self.data: raise ValueError("Property does not contain data") - # We need to implement an EPC cleaning process, which we run on the EPC data, immediately after we download - # it - self.data["built-form"] = BUILT_FORM_REMAP.get(self.data["built-form"], self.data["built-form"]) - if self.data["built-form"] in self.DATA_ANOMALY_MATCHES: - if self.data["property-type"] == "Flat": - self.data["built-form"] = "Semi-Detached" - - self.set_energy() - self.set_ventilation() - self.set_solar_pv() - self.set_solar_hot_water() - self.set_wind_turbine() - self.set_count_variables() - self.set_heat_loss_corridor() - self.set_mains_gas() - self.set_age_band() - self.set_basic_property_dimensions() for description, attribute in cleaned.items(): - if self.data[description] in self.DATA_ANOMALY_MATCHES: template = cleaned[description][0] fill_dict = dict(zip(template.keys(), [None] * len(template))) @@ -333,38 +302,6 @@ class Property(Definitions): self.set_floor_type() self.set_floor_level() - def set_age_band(self): - """ - Sets a cleaned version of the age band of the property given the EPC data - :return: - """ - - if not self.data: - raise ValueError("Property does not contain data") - - self.construction_age_band = DataProcessor.clean_construction_age_band(self.data["construction-age-band"]) - if self.construction_age_band in self.DATA_ANOMALY_MATCHES: - if self.old_data: - # Take the most recent - max_datetime = max( - [x["lodgement-datetime"] for x in self.old_data if - x["construction-age-band"] not in self.DATA_ANOMALY_MATCHES] - ) - most_recent = [x for x in self.old_data if x["lodgement-datetime"] == max_datetime] - - self.construction_age_band = DataProcessor.clean_construction_age_band( - most_recent[0]["construction-age-band"] - ) - - self.age_band = england_wales_age_band_lookup.get(self.construction_age_band) - - if (self.data["transaction-type"] == "new dwelling") and (self.age_band is None): - self.age_band = "L" - self.construction_age_band = 'England and Wales: 2012 onwards' - - if self.age_band is None: - raise ValueError("age_band is missing") - def set_spatial(self, spatial: pd.DataFrame): """ Sets whether the property is in a conservation area given the output of the ConservationAreaClient @@ -392,71 +329,6 @@ class Property(Definitions): "is_heritage_building": spatial_dict["is_heritage_building"], } - def set_year_built(self): - """ - Estimates when the property was built based on as much available data as possible. - - """ - - if self.full_sap_epc: - self.year_built = datetime.strptime(self.full_sap_epc["lodgement-date"], '%Y-%m-%d').year - - return - - if self.data["construction-age-band"] not in self.DATA_ANOMALY_MATCHES: - # Take the lower limit. If we're pessimistic about the age of the property, that at least means we have - # more options for recommendations if that age falls before the year that insulation in walls became - # common practice - band = [int(x) for x in re.findall(r'\b\d{4}\b', self.data["construction-age-band"])] - self.year_built = band[0] - return - - # We don't know when the property was built - self.year_built = None - - def set_heat_loss_corridor(self): - """ - cleans the heat-loss-corridor - :return: - """ - map = { - "no corridor": False, - "unheated corridor": True, - "heated corridor": False - } - - if self.data["heat-loss-corridor"] in self.DATA_ANOMALY_MATCHES: - has_heat_loss_corridor = False - else: - has_heat_loss_corridor = map[self.data["heat-loss-corridor"]] - - length = self.data["unheated-corridor-length"] - if length == "": - length = None - else: - length = float(length) - - self.heat_loss_corridor = { - "heat_loss_corridor": has_heat_loss_corridor, - "length": length - } - - def set_mains_gas(self): - """ - Sets whether the property has mains gas - :return: - """ - - map = { - "Y": True, - "N": False, - } - - if self.data["mains-gas-flag"] == "" or self.data["mains-gas-flag"] in self.DATA_ANOMALY_MATCHES: - self.mains_gas = None - else: - self.mains_gas = map[self.data["mains-gas-flag"]] - def _clean_upload_data(self, to_update): for k, v in to_update.items(): if v in self.DATA_ANOMALY_MATCHES: @@ -603,36 +475,6 @@ class Property(Definitions): :return: """ - self.floor_area = float(self.data["total-floor-area"]) - - if not self.data["number-habitable-rooms"] or ( - self.data["floor-height"] == "" or self.data["floor-height"] in self.DATA_ANOMALY_MATCHES - ): - if self.property_dimensions is None: - property_dimensions = read_dataframe_from_s3_parquet( - bucket_name=DATA_BUCKET, file_key=f"property_dimensions/{self.data['local-authority']}.parquet" - ) - self.property_dimensions = self._filter_property_dimensions(property_dimensions) - - if not self.data["number-habitable-rooms"]: - self.number_of_rooms = float(self.property_dimensions["NUMBER_HABITABLE_ROOMS"].round()) - else: - self.number_of_rooms = float(self.data["number-habitable-rooms"]) - - if self.data["property-type"] == "House": - self.number_of_floors = 2 - elif self.data["property-type"] in ["Flat", "Bungalow"]: - self.number_of_floors = 1 - elif self.data["property-type"] == "Maisonette": - self.number_of_floors = 2 - else: - raise NotImplementedError("Implement me") - - if self.data["floor-height"] == "" or self.data["floor-height"] in self.DATA_ANOMALY_MATCHES: - self.floor_height = float(self.property_dimensions["FLOOR_HEIGHT"].round(2)) - else: - self.floor_height = float(self.data["floor-height"]) - self.perimeter = estimate_perimeter( self.floor_area / self.number_of_floors, self.number_of_rooms / self.number_of_floors ) @@ -653,7 +495,8 @@ class Property(Definitions): def set_floor_level(self): self.floor_level = ( FLOOR_LEVEL_MAP[self.data["floor-level"]] if - self.data["floor-level"] not in self.DATA_ANOMALY_MATCHES else None + self.data["floor-level"] not in self.DATA_ANOMALY_MATCHES and self.data['floor-level'] is not None + else None ) if self.floor_level is None: @@ -798,7 +641,7 @@ class Property(Definitions): **hotwater, **windows, "SECONDHEAT_DESCRIPTION": second_heating, - "DAYS_TO": DataProcessor.calculate_days_to(self.data["lodgement-date"]), + "DAYS_TO": EPCDataProcessor.calculate_days_to(self.data["lodgement-date"]), "SAP": float(self.data["current-energy-efficiency"]), "CARBON": float(self.data["co2-emissions-current"]), "HEAT_DEMAND": float(self.data["energy-consumption-current"]), diff --git a/backend/app/db/models/materials.py b/backend/app/db/models/materials.py index f887fc25..2ac7ddf4 100644 --- a/backend/app/db/models/materials.py +++ b/backend/app/db/models/materials.py @@ -18,6 +18,8 @@ class MaterialType(enum.Enum): exposed_floor_insulation = "exposed_floor_insulation" flat_roof_insulation = "flat_roof_insulation" room_roof_insulation = "room_roof_insulation" + windows_glazing = "windows_glazing" + iwi_wall_demolition = "iwi_wall_demolition" iwi_vapour_barrier = "iwi_vapour_barrier" diff --git a/backend/app/plan/router.py b/backend/app/plan/router.py index 996ddcfd..1704a42f 100644 --- a/backend/app/plan/router.py +++ b/backend/app/plan/router.py @@ -3,6 +3,7 @@ from datetime import datetime import numpy as np import pandas as pd from epc_api.client import EpcClient +from etl.epc.Record import EPCRecord from fastapi import APIRouter, Depends from sqlalchemy.exc import IntegrityError, OperationalError from sqlalchemy.orm import sessionmaker @@ -27,7 +28,7 @@ from backend.app.utils import epc_to_sap_lower_bound, read_csv_from_s3, read_par from backend.ml_models.api import ModelApi from backend.Property import Property -from etl.epc.DataProcessor import DataProcessor +from etl.epc.DataProcessor import EPCDataProcessor from etl.epc.settings import COLUMNS_TO_MERGE_ON from recommendations.optimiser.CostOptimiser import CostOptimiser from recommendations.optimiser.GainOptimiser import GainOptimiser @@ -42,6 +43,54 @@ logger = setup_logger() BATCH_SIZE = 5 +class DummyDownloader: + + def __init__(self, postcode, address1, id, epc_client): + self.id = id + self.postcode = postcode + self.address1 = address1 + + self.data = None + self.old_data = None + + self.epc_client = epc_client + + def search_address_epc(self): + """ + This method searches for an address in the EPC database and returns the first result + :return: property data + """ + if self.data: + return + + # This will fail if a property does not have an EPC - this has been documented as a case to handle + response = self.epc_client.domestic.search(params={"address": self.address1, "postcode": self.postcode}) + + # Check if we have a full sap EPC + self.full_sap_epc = [r for r in response["rows"] if r["transaction-type"] == "new dwelling"] + self.full_sap_epc = self.full_sap_epc[0] if self.full_sap_epc else self.full_sap_epc + + if len(response["rows"]) > 1: + newest_response = [ + r for r in response["rows"] if + r["lodgement-datetime"] == max([x["lodgement-datetime"] for x in response["rows"]]) + ] + if len(newest_response) > 1: + raise Exception("More than one result found for this address - investigate me") + + # We'll keep old EPCs in case it contains information, not present on the newest one + self.old_data = [epc for epc in response["rows"] if epc["lmk-key"] != newest_response[0]["lmk-key"]] + + response["rows"] = newest_response + + self.data = response["rows"][0] + # For the moment, if we don't have a UPRN, we don't do anything about it, however we'll handle this in + # the future by using the Ordnance Survey places API + if not self.data["uprn"]: + logger.warning("We do not have a UPRN for this property") + else: + self.uprn = int(self.data["uprn"]) + router = APIRouter( prefix="/plan", tags=["plan"], @@ -49,16 +98,19 @@ router = APIRouter( responses={404: {"description": "Not found"}} ) +# TODO: Need to install base.txt requirements into new env @router.post("/trigger") async def trigger_plan(body: PlanTriggerRequest): logger.info("Connecting to db") - session = sessionmaker(bind=db_engine)() + # session = sessionmaker(bind=db_engine)() created_at = datetime.now().isoformat() try: session.begin() logger.info("Getting the inputs") + Body = {'portfolio_id': '56', 'housing_type': 'Social', 'goal': 'Increase EPC', 'goal_value': 'A', 'trigger_file_path': '8/56/windows_portfolio_inputs.csv'} + body = PlanTriggerRequest(**Body) epc_client = EpcClient(auth_token=get_settings().EPC_AUTH_TOKEN) plan_input = read_csv_from_s3(bucket_name=get_settings().PLAN_TRIGGER_BUCKET, filepath=body.trigger_file_path) uprn_filenames = read_dataframe_from_s3_parquet( @@ -69,6 +121,7 @@ async def trigger_plan(body: PlanTriggerRequest): ) input_properties = [] + for config in plan_input: # We validate each record in the file. If the record is NOT valid, we need to handle this accordingly # TODO: implment validation. We should also standardise postcode and address in some fashion as @@ -90,23 +143,35 @@ async def trigger_plan(body: PlanTriggerRequest): heat_demand_target=None ) - input_properties.append( - Property( - postcode=config['postcode'], + epc_downloader = DummyDownloader(id=0, epc_client=epc_client, postcode=config['postcode'], address1=config['address']) + epc_downloader.search_address_epc() + + epc_records ={ + 'original_epc': epc_downloader.data.copy(), + 'full_sap_epc': epc_downloader.full_sap_epc.copy() if epc_downloader.full_sap_epc else [], + 'old_data': epc_downloader.old_data.copy() if epc_downloader.old_data else [] + } + + prepared_epc = EPCRecord(epc_records=epc_records, run_mode="newdata", cleaning_data=cleaning_data) # This uses all the epc records to clean the data + + p = Property( + id=property_id, address1=config['address'], - epc_client=epc_client, - id=property_id + postcode=config['postcode'], + epc_record=prepared_epc, ) + + logger.info("Getting spatial data") + + p.get_spatial_data(uprn_filenames) + input_properties.append( + p ) - if not input_properties: - return Response(status_code=204) - logger.info("Getting EPC, and spatial data") - for p in input_properties: - p.search_address_epc() - p.set_year_built() - p.get_spatial_data(uprn_filenames) + if not input_properties: + + return Response(status_code=204) # The materials data could be cached or local so we don't need to make # consistent requests to the backend for @@ -129,14 +194,6 @@ async def trigger_plan(body: PlanTriggerRequest): # Property recommendations p.get_components(cleaned) - # This is temp - this should happen after scoring - cleaned_property_data = DataProcessor.apply_averages_cleaning( - data_to_clean=pd.DataFrame([dict(**p.get_model_data(), LOCAL_AUTHORITY=p.data["local-authority"])]), - cleaning_data=cleaning_data, - cols_to_merge_on=['PROPERTY_TYPE', 'BUILT_FORM', 'CONSTRUCTION_AGE_BAND', 'LOCAL_AUTHORITY'], - ) - p.set_number_lighting_outlets(cleaned_property_data) - recommender = Recommendations(property_instance=p, materials=materials) property_recommendations = recommender.recommend() @@ -145,75 +202,17 @@ async def trigger_plan(body: PlanTriggerRequest): recommendations[p.id] = property_recommendations - from etl.epc.Pipeline import EPCPipeline - from etl.epc.DataProcessor import EPCDataProcessor - newdata_pipeline = EPCPipeline(epc_data_processor=EPCDataProcessor(data=p.get_model_data(), run_mode="newdata"), run_mode="newdata") + p.create_base_difference_epc_record(cleaned_lookup=cleaned) + p.adjust_difference_record_with_recommendations(property_recommendations) - # TODO: p.get_model_data() -> EPCRecord + recommendations_scoring_data.extend(p.recommendations_scoring_data) - # Finally, we'll prepare data for predicting the impact on SAP - # data_processor = DataProcessor(None, newdata=True) - # data_processor.insert_data(pd.DataFrame([p.get_model_data()])) - # # TODO: Temp - # if data_processor.data["UPRN"].values[0] == "": - # data_processor.data["UPRN"] = 0 - - # data_processor.pre_process() - - # starting_epc_data = data_processor.get_component_features(suffix="_STARTING") - # ending_epc_data = data_processor.get_component_features(suffix="_ENDING") - # fixed_data = data_processor.get_fixed_features() - - # # We update the ending record with the recommended updates and we set lodgement date to today - # ending_epc_data["DAYS_TO_ENDING"] = data_processor.calculate_days_to(created_at) - - # TODO: EPCRecord - AdjustedEPCRecord - - # property_scoring_data[p.id] = { - # "starting_epc_data": starting_epc_data, - # "ending_epc_data": ending_epc_data, - # "fixed_data": fixed_data - # } - - for recommendations_by_type in property_recommendations: - for i, rec in enumerate(recommendations_by_type): - scoring_dict = create_recommendation_scoring_data( - property=p, - recommendation=rec, - starting_epc_data=starting_epc_data, - ending_epc_data=ending_epc_data, - fixed_data=fixed_data, - ) - - recommendations_scoring_data.append(scoring_dict) - - # cleanup - # del data_processor logger.info("Preparing data for scoring in sap change api") recommendations_scoring_data = pd.DataFrame(recommendations_scoring_data) - - # Perform the same cleaning as in the model - first clean number of room variables though - recommendations_scoring_data = DataProcessor.apply_averages_cleaning( - data_to_clean=recommendations_scoring_data, - cleaning_data=cleaning_data, - cols_to_merge_on=['PROPERTY_TYPE', 'BUILT_FORM', 'CONSTRUCTION_AGE_BAND', 'LOCAL_AUTHORITY'], - colnames=["NUMBER_HABITABLE_ROOMS", "NUMBER_HEATED_ROOMS"], - ) - - recommendations_scoring_data = DataProcessor.apply_averages_cleaning( - data_to_clean=recommendations_scoring_data, - cleaning_data=cleaning_data, - cols_to_merge_on=COLUMNS_TO_MERGE_ON + ["LOCAL_AUTHORITY"], - ).drop(columns=["LOCAL_AUTHORITY"]) - - recommendations_scoring_data = DataProcessor.clean_missings_after_description_process( - recommendations_scoring_data, - ignore_cols=[c for c in recommendations_scoring_data.columns if ("thermal_transmittance" in c) or ( - "insulation_thickness" in c) or ("ENERGY_EFF" in c)] - ) - - recommendations_scoring_data = DataProcessor.clean_efficiency_variables(recommendations_scoring_data) + recommendations_scoring_data = recommendations_scoring_data.drop( + columns=["rdsap_change", "heat_demand_change", "carbon_change", "sap_ending", "heat_demand_ending", "carbon_ending"] + ) model_api = ModelApi(portfolio_id=body.portfolio_id, timestamp=created_at) all_predictions = model_api.predict_all( diff --git a/etl/epc/DataProcessor.py b/etl/epc/DataProcessor.py index 48b62dc7..c9f937c0 100644 --- a/etl/epc/DataProcessor.py +++ b/etl/epc/DataProcessor.py @@ -27,6 +27,13 @@ from recommendations.rdsap_tables import FLOOR_LEVEL_MAP from typing import List +# TODO: change the setting columns to lower +STARTING_SUFFIX_COMPONENT_COLS = [x.lower() for x in STARTING_SUFFIX_COMPONENT_COLS] +NO_SUFFIX_COMPONENT_COLS = [x.lower() for x in NO_SUFFIX_COMPONENT_COLS] +ENDING_SUFFIX_COMPONENT_COLS = [x.lower() for x in ENDING_SUFFIX_COMPONENT_COLS] +POTENTIAL_COLUMNS = [x.lower() for x in POTENTIAL_COLUMNS] + + # These lookups are used to clean the construction age band construction_age_bounds_map = { "England and Wales: before 1900": {"l": 0, "u": 1899}, @@ -67,15 +74,18 @@ class EPCDataProcessor: Handle data loading and data preprocessing """ - def __init__(self, data: pd.DataFrame | None = None, run_mode: str = "training", violation_mode: bool = False) -> None: + def __init__(self, data: pd.DataFrame | None = None, cleaning_averages: pd.DataFrame | None = None, run_mode: str = "training", violation_mode: bool = False) -> None: """ :param filepath: If specified, is the physical location of the data :param is_newdata: Indicates if we are processing new, testing data. In this instance, there are some operations we do not want to perform, such as confine_data() """ - self.data : pd.DataFrame = data if data else pd.DataFrame() - self.cleaning_averages : pd.DataFrame = pd.DataFrame() + is_data_a_dataframe = isinstance(data, pd.DataFrame) + self.data : pd.DataFrame = data if is_data_a_dataframe else pd.DataFrame() + + is_cleaning_averages_a_dataframe = isinstance(cleaning_averages, pd.DataFrame) + self.cleaning_averages : pd.DataFrame = cleaning_averages if is_cleaning_averages_a_dataframe else pd.DataFrame() # FOR NOW IF VIOLATION MODE IS ON, WE USE RUN MODE AS NEWDATA self.violation_mode = violation_mode @@ -124,13 +134,22 @@ class EPCDataProcessor: self.fill_invalid_constituency_fields(ignore_step=ignore_step) - self.cleaning_averages = self.make_cleaning_averages(ignore_step=ignore_step) + self.make_cleaning_averages(ignore_step=ignore_step) + + # TODO: check if this has impact on training dataset + cleaned_data = self.apply_averages_cleaning( + data_to_clean=self.data, + cleaning_data=self.cleaning_averages, + cols_to_merge_on=['PROPERTY_TYPE', 'BUILT_FORM', 'CONSTRUCTION_AGE_BAND', 'LOCAL_AUTHORITY'], + colnames=["NUMBER_HABITABLE_ROOMS", "NUMBER_HEATED_ROOMS"], + ) + cleaned_data = self.apply_averages_cleaning( data_to_clean=self.data, cleaning_data=self.cleaning_averages, cols_to_merge_on=COLUMNS_TO_MERGE_ON, - ignore_step=ignore_step ) + self.data = self.data if cleaned_data is None else cleaned_data self.add_local_authority_to_cleaning_average(ignore_step=ignore_step) @@ -549,7 +568,7 @@ class EPCDataProcessor: # "FLOOR_HEIGHT" # ].fillna(FLOOR_HEIGHT_NATIONAL_AVERAGE) - return cleaning_averages_filled + self.cleaning_averages = cleaning_averages_filled def retain_multiple_epc_properties(self, epc_minimum_count: int = 1, ignore_step: bool = False) -> None: """ @@ -765,8 +784,8 @@ class EPCDataProcessor: :return: Pandas dataframe containing the subset of columns defined in COMPONENT_FEATURES """ - if suffix not in ["_STARTING", "_ENDING"]: - raise Exception("Suffix should be one of _STARTING or _ENDING") + if suffix not in ["_starting", "_ending"]: + raise Exception("Suffix should be one of _starting or _ending") if suffix == "_STARTING": starting_cols = self.data[STARTING_SUFFIX_COMPONENT_COLS + EFFICIENCY_FEATURES].copy().add_suffix(suffix) diff --git a/etl/epc/Dataset.py b/etl/epc/Dataset.py index 92efd0b3..4ca98fc6 100644 --- a/etl/epc/Dataset.py +++ b/etl/epc/Dataset.py @@ -2,12 +2,12 @@ import numpy as np import pandas as pd from typing import List from etl.epc.Record import EPCDifferenceRecord -from ValidationConfiguration import DatasetValidationConfiguration +from etl.epc.ValidationConfiguration import DatasetValidationConfiguration from etl.epc.settings import EARLIEST_EPC_DATE from recommendations.rdsap_tables import england_wales_age_band_lookup from recommendations.recommendation_utils import ( - get_wall_u_value, get_roof_u_value, get_floor_u_value, estimate_perimeter, + estimate_number_of_floors, get_wall_u_value, get_roof_u_value, get_floor_u_value, estimate_perimeter, get_wall_type ) @@ -204,9 +204,14 @@ class TrainingDataset(BaseDataset): # ~~~~~~~~~~~~~~~~~~ # Floor # ~~~~~~~~~~~~~~~~~~ - + + self.df['estimated_number_of_floors'] = self.df.apply( + lambda row: estimate_number_of_floors(row['property_type']), + axis=1 + ) + self.df['estimated_perimeter_starting'] = self.df.apply( - lambda row: estimate_perimeter(row["total_floor_area_starting"], row["number_habitable_rooms"]), + lambda row: estimate_perimeter(row["total_floor_area_starting"]/ row['estimated_number_of_floors'], row["number_habitable_rooms"]/ row['estimated_number_of_floors']), axis=1 ) self.df['estimated_perimeter_ending'] = self.df.apply( @@ -244,7 +249,7 @@ class TrainingDataset(BaseDataset): self.df[f"{component}_thermal_transmittance"] = self.df[f"{component}_thermal_transmittance"].fillna(eval(f"{component}_starting_uvalue")) self.df[f"{component}_thermal_transmittance_ending"] = self.df[f"{component}_thermal_transmittance_ending"].fillna(eval(f"{component}_ending_uvalue")) - self.df = self.df.drop(columns=["floor_type", "wall_type", "walls_clean_description", "walls_clean_description_ending"]) + self.df = self.df.drop(columns=["floor_type", "wall_type", "walls_clean_description", "walls_clean_description_ending", 'estimated_number_of_floors']) def _adjust_assumed_values_in_wall_descriptions(self): @@ -386,7 +391,7 @@ class TrainingDataset(BaseDataset): suffixes=("", "_ending") ) - # Drop inconsistent properties + # Drop properties where key material types have changed expanded_df = self._drop_inconsistent_properties(expanded_df, component) # Drop original cols and cols to drop diff --git a/etl/epc/Pipeline.py b/etl/epc/Pipeline.py index de827dee..ea484e56 100644 --- a/etl/epc/Pipeline.py +++ b/etl/epc/Pipeline.py @@ -3,6 +3,7 @@ import pandas as pd from typing import List from pathlib import Path +from tqdm import tqdm from etl.epc.DataProcessor import EPCDataProcessor from etl.epc.Record import EPCRecord, EPCDifferenceRecord @@ -52,7 +53,7 @@ def get_cleaned_description_mapping(): return cleaned - +clean_lookup = get_cleaned_description_mapping() class EPCPipeline: """ @@ -67,6 +68,7 @@ class EPCPipeline: def __init__( self, epc_data_processor: EPCDataProcessor, + api_epc_records: dict = None, directories: List[Path] | None = None, run_mode="training", epc_local_file="certificates.csv", @@ -91,6 +93,7 @@ class EPCPipeline: self.directories = directories self.epc_data_processor = epc_data_processor + self.api_epc_records = api_epc_records self.run_mode = run_mode self.epc_local_file = epc_local_file self.epc_bucket_name = epc_bucket_name @@ -113,9 +116,15 @@ class EPCPipeline: """ Main function to run the newdata pipeline """ + prepared_epc = EPCRecord(self.api_epc_records, run_mode="newdata") # This uses all the epc records to clean the data + + self.epc_data_processor.insert_data(prepared_epc) self.epc_data_processor.prepare_data() + data = self.epc_data_processor.data + + epc_records = [EPCRecord(**x, run_mode="newdata") for x in data.to_dict(orient='records')] def run_training_dataset_pipeline(self): @@ -125,7 +134,7 @@ class EPCPipeline: if self.directories is None: raise ValueError("Directories not specified - Unable to run Training pipeline") - for directory in self.directories: + for directory in tqdm(self.directories): self.process_directory(directory) # save_dataframe_to_s3_parquet( @@ -165,7 +174,7 @@ class EPCPipeline: if difference_records is not None: constituency_difference_records.extend(difference_records) - constituency_dataset = TrainingDataset(datasets=constituency_difference_records, cleaned_lookup=get_cleaned_description_mapping()) + constituency_dataset = TrainingDataset(datasets=constituency_difference_records, cleaned_lookup=clean_lookup) self.compiled_dataset = pd.concat([self.compiled_dataset, constituency_dataset.df]) diff --git a/etl/epc/Record.py b/etl/epc/Record.py index f2b3f519..85a8f0f2 100644 --- a/etl/epc/Record.py +++ b/etl/epc/Record.py @@ -1,10 +1,17 @@ - +from datetime import datetime from dataclasses import dataclass from etl.epc.ValidationConfiguration import ( EPCRecordValidationConfiguration, EPCDifferenceRecordValidationConfiguration, EPCDifferenceRecordFixedDataValidationConfiguration ) +from etl.epc.DataProcessor import EPCDataProcessor +from recommendations.rdsap_tables import england_wales_age_band_lookup, FLOOR_LEVEL_MAP +from etl.epc.settings import DATA_ANOMALY_MATCHES, BUILT_FORM_REMAP +import re +import os +import numpy as np +import pandas as pd from typing import Any, Union, List from etl.epc.settings import ( RDSAP_RESPONSE, @@ -13,6 +20,8 @@ from etl.epc.settings import ( COMPONENT_FEATURES, EFFICIENCY_FEATURES ) +from utils.s3 import read_dataframe_from_s3_parquet +from etl.epc.settings import EARLIEST_EPC_DATE # TODO: Change these in the settings file RDSAP_RESPONSE = RDSAP_RESPONSE.lower() @@ -21,78 +30,235 @@ CARBON_RESPONSE = CARBON_RESPONSE.lower() COMPONENT_FEATURES = [x.lower() for x in COMPONENT_FEATURES] EFFICIENCY_FEATURES = [x.lower() for x in EFFICIENCY_FEATURES] +ENVIRONMENT = os.environ.get('ENVIRONMENT', 'dev') +DATA_BUCKET = os.environ.get('DATA_BUCKET', 'retrofit-data-dev' if ENVIRONMENT == 'dev' else None) + @dataclass class EPCRecord: """ Base class for a EPC record """ - uprn: str - walls_description: str - floor_description : str - lighting_description : str - roof_description : str - mainheat_description : str - hotwater_description : str - main_fuel : str - mechanical_ventilation : str - secondheat_description : str - windows_description : str - glazed_type : str - multi_glaze_proportion : float - low_energy_lighting : float - number_open_fireplaces : float - mainheatcont_description : str - solar_water_heating_flag : str - photo_supply : float - transaction_type : str - energy_tariff : str - extension_count : float - total_floor_area : float - floor_height : float - hot_water_energy_eff : str - floor_energy_eff : str - windows_energy_eff : str - walls_energy_eff : str - sheating_energy_eff : str - roof_energy_eff : str - mainheat_energy_eff : str - mainheatc_energy_eff : str - lighting_energy_eff : str - potential_energy_efficiency : float - environment_impact_potential : float - energy_consumption_potential : float - co2_emissions_potential : float - lodgement_date : str - current_energy_efficiency : int - energy_consumption_current : int - co2_emissions_current : float + uprn: int = None + walls_description: str = None + floor_description : str = None + lighting_description : str = None + roof_description : str = None + mainheat_description : str = None + hotwater_description : str = None + main_fuel : str = None + mechanical_ventilation : str = None + secondheat_description : str = None + windows_description : str = None + glazed_type : str = None + multi_glaze_proportion : float = None + low_energy_lighting : float = None + number_open_fireplaces : float = None + mainheatcont_description : str = None + solar_water_heating_flag : str = None + photo_supply : float = None + transaction_type : str = None + energy_tariff : str = None + extension_count : float = None + total_floor_area : float = None + floor_height : float = None + hot_water_energy_eff : str = None + floor_energy_eff : str = None + windows_energy_eff : str = None + walls_energy_eff : str = None + sheating_energy_eff : str = None + roof_energy_eff : str = None + mainheat_energy_eff : str = None + mainheatc_energy_eff : str = None + lighting_energy_eff : str = None + potential_energy_efficiency : float = None + environment_impact_potential : float = None + energy_consumption_potential : float = None + co2_emissions_potential : float = None + lodgement_date : str = None + current_energy_efficiency : int = None + energy_consumption_current : int = None + co2_emissions_current : float = None - u_values_walls = None - u_values_roof = None - u_values_floor = None + # u_values_walls = None + # u_values_roof = None + # u_values_floor = None run_mode: str = "training" + # TODO: Make this a class so thet api_records is structured + epc_records: dict = None + full_sap_epc: dict = None + old_data: list[dict] = None + original_epc: dict = None + prepared_epc: dict = None + prepared_epc_delta_metadata: pd.DataFrame = None + cleaning_data: pd.DataFrame = None + + # Not used in training mod but used in newdata mode + age_band: str = None + construction_age_band: str = None + year_built: int = None + number_of_floors: int = None + number_of_open_fireplaces: int = None + def __post_init__(self): # We can have validation and cleaning steps for each of the fields # self.WALLS_DESCRIPTION = 'check' - # Could also have cleaning of records if needed - self.validation_configuration = EPCRecordValidationConfiguration + # Could also have cleaning of records if needed - # self._field_validation() - self._clean_records() - if self.run_mode == "newdata": - self._expand_description_to_features() - self._expand_description_to_uvalues() + if self.run_mode == "training": + self.validation_configuration = EPCRecordValidationConfiguration + # self._field_validation() + return + # We are running in newdata mode + if self.epc_records is None: + raise ValueError("Must provide epc records if running in newdata mode") + self.prepared_epc = self.epc_records['original_epc'] + self.original_epc = self.epc_records['original_epc'].copy() + + self.full_sap_epc = self.epc_records['full_sap_epc'] + self.old_data = self.epc_records['old_data'] + + if self.cleaning_data is None: + raise ValueError("Must provide cleaning data if running in newdata mode") + + self._clean_records_using_epc_records() + self._clean_with_data_processor() + self._temp_uprn_catch() + + self._expand_prepared_epc_to_attributes() + + self._identify_delta_between_prepared_and_original_records() + + # Process to create uvalues for the single epc record + + # selff.df = self.epc_record_as_dataframe('prepared_epc') + + # self._feature_generation() + # self._drop_features() + + return + + self._expand_description_to_features() + self._expand_description_to_uvalues() + # self._generate_uvalues() # self._validate_expanded_description() # self._validate_u_values() # etc pass + def _drop_features(self): + """ + Drop features that are not needed for modelling + """ + self.df = self.df.drop(columns=["lodgement_date_starting", "lodgement_date_ending"]) + + def _feature_generation(self): + """ + Generate features for modelling + """ + self.df["days_to_lodgement_date"] = self._calculate_days_to(self.prepared_epc["lodgement_date"]) + + @staticmethod + def _calculate_days_to(lodgement_date): + + if isinstance(lodgement_date, str): + return ( + pd.to_datetime(lodgement_date) - pd.to_datetime(EARLIEST_EPC_DATE) + ).days + + return ( + pd.to_datetime(lodgement_date) - pd.to_datetime(EARLIEST_EPC_DATE) + ).dt.days + + + def _temp_uprn_catch(self): + """ + Catch the case we do now have uprn + """ + if self.prepared_epc["uprn"] == "": + self.prepared_epc["uprn"] = 0 + + def _clean_with_data_processor(self): + """ + This method will clean the records using the data processor + """ + epc_data_processor = EPCDataProcessor( + data=self.epc_record_as_dataframe("prepared_epc"), + run_mode="newdata", + cleaning_averages=self.cleaning_data + ) + epc_data_processor.prepare_data() + + self.prepared_epc = epc_data_processor.data.to_dict(orient="records")[0] + + + def _expand_prepared_epc_to_attributes(self): + """ + This method will expand the prepared epc to attributes + """ + + # for key, value in self.prepared_epc.items(): + # setattr(self, key, value) + + self.uprn: int = int(self.prepared_epc["uprn"]) + self.walls_description: str = self.prepared_epc["walls_description"] + self.floor_description : str = self.prepared_epc["floor_description"] + self.lighting_description : str = self.prepared_epc["lighting_description"] + self.roof_description : str = self.prepared_epc["roof_description"] + self.mainheat_description : str = self.prepared_epc["mainheat_description"] + self.hotwater_description : str = self.prepared_epc["hotwater_description"] + self.main_fuel : str = self.prepared_epc["main_fuel"] + self.mechanical_ventilation : str = self.prepared_epc["mechanical_ventilation"] + self.secondheat_description : str = self.prepared_epc["secondheat_description"] + self.windows_description : str = self.prepared_epc["windows_description"] + self.glazed_type : str = self.prepared_epc["glazed_type"] + self.multi_glaze_proportion : float = float(self.prepared_epc["multi_glaze_proportion"]) + self.low_energy_lighting : float = float(self.prepared_epc["low_energy_lighting"]) + self.number_open_fireplaces : float = float(self.prepared_epc["number_open_fireplaces"]) + self.mainheatcont_description : str = self.prepared_epc["mainheatcont_description"] + self.solar_water_heating_flag : str = self.prepared_epc["solar_water_heating_flag"] + self.photo_supply : float = float(self.prepared_epc["photo_supply"]) + self.transaction_type : str = self.prepared_epc["transaction_type"] + self.energy_tariff : str = self.prepared_epc["energy_tariff"] + self.extension_count : float = float(self.prepared_epc["extension_count"]) + self.total_floor_area : float = float(self.prepared_epc["total_floor_area"]) + self.floor_height : float = float(self.prepared_epc["floor_height"]) + self.hot_water_energy_eff : str = self.prepared_epc["hot_water_energy_eff"] + self.floor_energy_eff : str = self.prepared_epc["floor_energy_eff"] + self.windows_energy_eff : str = self.prepared_epc["windows_energy_eff"] + self.walls_energy_eff : str = self.prepared_epc["walls_energy_eff"] + self.sheating_energy_eff : str = self.prepared_epc["sheating_energy_eff"] + self.roof_energy_eff : str = self.prepared_epc["roof_energy_eff"] + self.mainheat_energy_eff : str = self.prepared_epc["mainheat_energy_eff"] + self.mainheatc_energy_eff : str = self.prepared_epc["mainheatc_energy_eff"] + self.lighting_energy_eff : str = self.prepared_epc["lighting_energy_eff"] + self.potential_energy_efficiency : float = float(self.prepared_epc["potential_energy_efficiency"]) + self.environment_impact_potential : float = float(self.prepared_epc["environment_impact_potential"]) + self.energy_consumption_potential : float = float(self.prepared_epc["energy_consumption_potential"]) + self.co2_emissions_potential : float = float(self.prepared_epc["co2_emissions_potential"]) + self.lodgement_date : str = self.prepared_epc["lodgement_date"] + self.current_energy_efficiency : int = int(self.prepared_epc["current_energy_efficiency"]) + self.energy_consumption_current : int = int(self.prepared_epc["energy_consumption_current"]) + self.co2_emissions_current : float = float(self.prepared_epc["co2_emissions_current"]) + + def _identify_delta_between_prepared_and_original_records(self): + """ + This method will identify the delta between the prepared and original records + """ + prepared_epc_df = self.epc_record_as_dataframe("prepared_epc") + original_epc_df = self.epc_record_as_dataframe("original_epc") + + df = pd.concat([prepared_epc_df, original_epc_df], keys=["prepared_epc", "original_epc"], axis=0) + + same_index = df.apply(pd.Series.duplicated).any() + self.prepared_epc_delta_metadata = df[same_index[~same_index].index] + + def _expand_description_to_features(self): pass @@ -132,10 +298,28 @@ class EPCRecord: # ) - def _clean_records(self): + def _clean_records_using_epc_records(self): """ This method will clean the records """ + + # TODO: Move all the cleaning steps in the Property class into there + self._clean_built_form() + self._clean_energy() + self._clean_ventilation() + self._clean_solar_pv() + self._clean_solar_hot_water() + self._clean_wind_turbine() + self._clean_count_variables() + self._clean_heat_loss_corridor() + self._clean_mains_gas() + self._clean_age_band() + self._clean_year_built() + self._clean_floor_area() + self._clean_property_dimensions() + self._clean_number_lighting_outlets() + self._clean_floor_level() + # self._clean_potential_energy_efficiency() # self._clean_environment_impact_potential() # self._clean_energy_consumption_potential() @@ -144,6 +328,305 @@ class EPCRecord: # self._clean_energy_consumption_current() # self._clean_co2_emissions_current() + def epc_record_as_dataframe(self, epc_type: str = "prepared_epc", use_upper_columns: bool = True, replace_empty_string: bool = False): + """ + This method will return the dataframe representation of the epc record + """ + df = pd.DataFrame.from_dict(self.get(epc_type), orient="index").T + + if use_upper_columns: + df.columns = [x.upper().replace("-","_") for x in df.columns] + + if replace_empty_string: + df = df.replace("", np.nan) + + return df + + def _clean_floor_level(self): + """ + This method will clean the floor level, if empty or invalid + """ + if not self.prepared_epc: + raise ValueError("EPC Recrod doesn not contain epc data") + + self.prepared_epc["floor-level"] = ( + FLOOR_LEVEL_MAP[self.prepared_epc["floor-level"]] if + self.prepared_epc["floor-level"] not in DATA_ANOMALY_MATCHES else None + ) + + def _clean_number_lighting_outlets(self): + """ + This method will clean the number of lighting outlets, if empty or invalid + """ + if not self.prepared_epc: + raise ValueError("EPC Recrod doesn not contain epc data") + + if self.prepared_epc["fixed-lighting-outlets-count"] == "": + + # We check old EPCs and the full SAP EPC + + lighting_data = [] + + if len(self.old_data): + lighting_data.extend([ + int(old_record["fixed-lighting-outlets-count"]) for old_record in self.old_data if + old_record["fixed-lighting-outlets-count"] != "" + ]) + + if len(self.full_sap_epc): + if self.full_sap_epc["fixed-lighting-outlets-count"] != "": + lighting_data.append(int(self.full_sap_epc["fixed-lighting-outlets-count"])) + + if lighting_data: + self.prepared_epc["fixed-lighting-outlets-count"] = round(np.median(lighting_data)) + else: + # Use averages from the cleaning dataset, based on the property type, built form, construction age band and local authority + cleaned_property_data = EPCDataProcessor.apply_averages_cleaning( + data_to_clean=self.epc_record_as_dataframe("prepared_epc", replace_empty_string=True), + cleaning_data=self.cleaning_data, + cols_to_merge_on=['PROPERTY_TYPE', 'BUILT_FORM', 'CONSTRUCTION_AGE_BAND', 'LOCAL_AUTHORITY'], + ) + self.prepared_epc["fixed-lighting-outlets-count"] = round(cleaned_property_data["FIXED_LIGHTING_OUTLETS_COUNT"].values[0]) + else: + self.prepared_epc["fixed-lighting-outlets-count"] = float(self.prepared_epc["fixed-lighting-outlets-count"]) + + def _filter_property_dimensions(self, property_dimensions): + """ + Will filter the property dimensions dataframe to only include the relevant rows for the property + :param property_dimensions: + :return: filtered property dimensions dataframe + """ + + result = property_dimensions[(property_dimensions["PROPERTY_TYPE"] == self.prepared_epc["property-type"])] + + if self.construction_age_band is not None and self.construction_age_band not in DATA_ANOMALY_MATCHES: + result = result[(result["CONSTRUCTION_AGE_BAND"] == self.construction_age_band)] + + if self.prepared_epc["built-form"] not in DATA_ANOMALY_MATCHES and self.prepared_epc["built-form"] in result["BUILT_FORM"]: + result = result[(result["BUILT_FORM"] == self.prepared_epc["built-form"])] + + return result[["NUMBER_HABITABLE_ROOMS", "TOTAL_FLOOR_AREA", "FLOOR_HEIGHT"]].mean() + + def _clean_property_dimensions(self): + """ + Cleans up the number of floors, number of habitable rooms, and the floor height + """ + + if not self.prepared_epc: + raise ValueError("EPC Recrod doesn not contain epc data") + + if not self.prepared_epc["number-habitable-rooms"] or ( + self.prepared_epc["floor-height"] == "" or self.prepared_epc["floor-height"] in DATA_ANOMALY_MATCHES + ): + property_dimensions = read_dataframe_from_s3_parquet( + bucket_name=DATA_BUCKET, file_key=f"property_dimensions/{self.prepared_epc['local-authority']}.parquet" + ) + self.property_dimensions = self._filter_property_dimensions(property_dimensions) + + if not self.prepared_epc["number-habitable-rooms"]: + self.prepared_epc["number-habitable-rooms"] = float(self.property_dimensions["NUMBER_HABITABLE_ROOMS"].round()) + else: + self.prepared_epc["number-habitable-rooms"] = float(self.prepared_epc["number-habitable-rooms"]) + + if self.prepared_epc["property-type"] == "House": + self.number_of_floors = 2 + elif self.prepared_epc["property-type"] in ["Flat", "Bungalow"]: + self.number_of_floors = 1 + elif self.prepared_epc["property-type"] == "Maisonette": + self.number_of_floors = 2 + else: + raise NotImplementedError("Implement me") + + if self.prepared_epc["floor-height"] == "" or self.prepared_epc["floor-height"] in DATA_ANOMALY_MATCHES: + self.prepared_epc["floor-height"] = float(self.property_dimensions["FLOOR_HEIGHT"].round(2)) + else: + self.prepared_epc["floor-height"] = float(self.prepared_epc["floor-height"]) + + def _clean_floor_area(self): + """ + This method will clean the floor area, if empty or invalid + """ + if not self.prepared_epc: + raise ValueError("EPC Recrod doesn not contain epc data") + + self.prepared_epc["total-floor-area"] = float(self.prepared_epc["total-floor-area"]) + + def _clean_mains_gas(self): + """ + This method will clean the mains gas, if empty or invalid + """ + if not self.prepared_epc: + raise ValueError("EPC Recrod doesn not contain epc data") + + map = { + "Y": True, + "N": False, + } + + self.prepared_epc["mains-gas-flag"] = None if ( + self.prepared_epc["mains-gas-flag"] == "" or self.prepared_epc["mains-gas-flag"] in DATA_ANOMALY_MATCHES + ) else map[self.prepared_epc["mains-gas-flag"]] + + def _clean_heat_loss_corridor(self): + """ + This method will clean the heat loss corridor, if empty or invalid + """ + if not self.prepared_epc: + raise ValueError("EPC Recrod doesn not contain epc data") + + map = { + "no corridor": False, + "unheated corridor": True, + "heated corridor": False + } + + self.prepared_epc["heat-loss-corridor"] = False if self.prepared_epc["heat-loss-corridor"] in DATA_ANOMALY_MATCHES else map[self.prepared_epc["heat-loss-corridor"]] + + self.prepared_epc["unheated-corridor-length"] = float(self.prepared_epc["unheated-corridor-length"]) if self.prepared_epc["unheated-corridor-length"] != "" else None + + + def _clean_count_variables(self): + """ + This method will clean the count variables, if empty or invalid + """ + if not self.prepared_epc: + raise ValueError("EPC Recrod doesn not contain epc data") + + fields = { + "number_of_open_fireplaces": "number-open-fireplaces", + "number_of_extensions": "extension-count", + "number_of_storeys": "flat-storey-count", + "number_of_rooms": "number-habitable-rooms", + } + + null_attributes = ["number_of_storeys", "number_of_rooms"] + + for attribute, epc_field in fields.items(): + # TODO: check this + # value = self.data["extension-count"] + value = self.prepared_epc[epc_field] + if value == "" or value in DATA_ANOMALY_MATCHES: + if attribute in null_attributes: + value = None + else: + value = 0 + else: + value = int(value) + + self.prepared_epc[attribute] = value + + def _clean_wind_turbine(self): + """ + This method will clean the wind turbine, if empty or invalid + """ + if not self.prepared_epc: + raise ValueError("EPC Recrod doesn not contain epc data") + + self.prepared_epc['wind-turbine-count'] = int(self.prepared_epc['wind-turbine-count']) if self.prepared_epc['wind-turbine-count'] != "" else None + + def _clean_solar_hot_water(self): + """ + This method will clean the solar hot water, if empty or invalid + """ + if not self.prepared_epc: + raise ValueError("EPC Recrod doesn not contain epc data") + + value_map = { + "Y": True, + "N": False, + "": None, + } + + self.prepared_epc['solar-water-heating-flag'] = value_map[self.prepared_epc['solar-water-heating-flag']] + + def _clean_solar_pv(self): + """ + This method will clean the solar pv, if empty or invalid + """ + if not self.prepared_epc: + raise ValueError("EPC Recrod doesn not contain epc data") + + self.prepared_epc['photo-supply'] = float(self.prepared_epc['photo-supply']) if self.prepared_epc['photo-supply'] != "" else None + + def _clean_energy(self): + """ + This method will clean the energy, if empty or invalid + """ + if not self.prepared_epc: + raise ValueError("EPC Recrod doesn not contain epc data") + + self.prepared_epc['energy-consumption-current'] = float(self.prepared_epc["energy-consumption-current"]) + self.prepared_epc['co2-emissions-current'] = float(self.prepared_epc["co2-emissions-current"]) + + + def _clean_built_form(self): + """ + This method will clean the build form, if empty or invalid + """ + if not self.prepared_epc: + raise ValueError("EPC Recrod doesn not contain epc data") + + self.prepared_epc['built-form'] = BUILT_FORM_REMAP.get(self.prepared_epc["built-form"], self.prepared_epc["built-form"]) + if self.prepared_epc["built-form"] in DATA_ANOMALY_MATCHES: + if self.prepared_epc["property-type"] == "Flat": + self.prepared_epc["built-form"] = "Semi-Detached" + + def _clean_age_band(self): + """ + This method will clean the age band, if empty or invalid + """ + if not self.prepared_epc: + raise ValueError("EPC Recrod doesn not contain epc data") + + self.construction_age_band = EPCDataProcessor.clean_construction_age_band(self.prepared_epc["construction-age-band"]) + if self.construction_age_band in DATA_ANOMALY_MATCHES: + if self.old_data: + # Take the most recent + max_datetime = max( + [old_record["lodgement-datetime"] for old_record in self.old_data if + old_record["construction-age-band"] not in DATA_ANOMALY_MATCHES] + ) + most_recent = [old_record for old_record in self.old_data if old_record["lodgement-datetime"] == max_datetime] + + self.construction_age_band = EPCDataProcessor.clean_construction_age_band( + most_recent[0]["construction-age-band"] + ) + + self.age_band = england_wales_age_band_lookup.get(self.construction_age_band) + + if (self.prepared_epc["transaction-type"] == "new dwelling") and (self.age_band is None): + self.age_band = "L" + self.construction_age_band = 'England and Wales: 2012 onwards' + + if self.age_band is None: + raise ValueError("age_band is missing") + + def _clean_year_built(self): + """ + This method will clean the year built, if empty or invalid + """ + if self.full_sap_epc: + self.year_built = datetime.strptime(self.full_sap_epc["lodgement-date"], '%Y-%m-%d').year + + return + + if self.construction_age_band not in DATA_ANOMALY_MATCHES: + # Take the lower limit. If we're pessimistic about the age of the property, that at least means we have + # more options for recommendations if that age falls before the year that insulation in walls became + # common practice + band = [int(x) for x in re.findall(r'\b\d{4}\b', self.prepared_epc["construction-age-band"])] + self.year_built = band[0] + return + + # We don't know when the property was built + self.year_built = None + + def _clean_ventilation(self): + """ + This method will clean the ventilation, if empty or invalid + """ + self.prepared_epc['mechanical-ventilation'] = None if (self.mechanical_ventilation == "" or self.mechanical_ventilation in DATA_ANOMALY_MATCHES) else self.mechanical_ventilation + def _field_validation(self): """ diff --git a/etl/epc/property_change_app.py b/etl/epc/property_change_app.py index bb24f431..b4befcd7 100644 --- a/etl/epc/property_change_app.py +++ b/etl/epc/property_change_app.py @@ -1,4 +1,4 @@ - +import pandas as pd from pathlib import Path from etl.epc.DataProcessor import EPCDataProcessor from etl.epc.Pipeline import EPCPipeline @@ -11,18 +11,17 @@ def main(): """ directories = [entry for entry in DATA_DIRECTORY.iterdir() if entry.is_dir()] - directories = directories[0:2] + # directories = directories[125:128] epc_pipeline = EPCPipeline(directories=directories, epc_data_processor=EPCDataProcessor(run_mode="training")) epc_pipeline.run() - # For testing - epc_pipeline.compiled_dataset - epc_pipeline.compiled_all_equal_rows - import pandas as pd - pd.concat(epc_pipeline.compiled_cleaning_averages) + dataset_df = epc_pipeline.compiled_dataset + dataset_df.to_parquet("refactor_datasets/dataset.parquet") + pd.DataFrame(epc_pipeline.compiled_all_equal_rows).to_parquet("refactor_datasets/all_equal_rows.parquet") + pd.concat(epc_pipeline.compiled_cleaning_averages).to_parquet("refactor_datasets/cleaning_averages.parquet") if __name__ == "__main__": diff --git a/etl/epc/settings.py b/etl/epc/settings.py index eb8eb641..24c23ebc 100644 --- a/etl/epc/settings.py +++ b/etl/epc/settings.py @@ -2,6 +2,59 @@ # TODO: migrate to dynaconf from pathlib import Path +DATA_ANOMALY_MATCHES = { + # Invalid reports are where the value provided is out of bounds, e.g. a negative energy rating of -1199 or a + # non-integer, there is no valid energy band for this, so it is marked as INVALID! + "INVALID", + "INVALID!", + # When the energy certificate was first lodged on the register there was no requirement to lodge this data + # item, i.e. a non-mandatory item. + "NO DATA!", + "NODATA!", + # When the energy certificate was first lodged on the register there was no requirement to lodge this data item, + # i.e.a non - mandatory item. + "N/A", + # A value generated by the register to account for a data item that was not mandatory when the lodgement of + # the energy certificate occurred. When the data item became mandatory the register operator, for backwards + # compatibility purposes, populated the data field with a value of ‘not recorded’ to ensure that the energy + # certificate retrieval process is successfully completed. Mandatory data items cannot be applied + # retrospectively to energy certificates lodged before the date of the change. + "Not recorded", + # The data also contains DECs with an operational rating of ‘9999’ (a ‘default’ DEC). The production of a + # ‘default’ DEC value was allowed to enable building occupiers, with poor quality or no energy data, + # the opportunity to comply with the regulations. From April 2011 the ability to lodge a ‘default’ DEC was no + # longer allowed. + "9999", + # The Building Emission Rate (BER) data field for non-domestic buildings may contain a ‘blank’ value. The BER + # was only lodged on the register from 7 March 2010. + "Blank" + # There are currently just over 8,600 records where the local authority identifier is ‘null’. This is due to + # the Register Operator not being able to match the building address in the Markermap Ordinance Survey (GB) + # lookup tables or OS MasterMap Address Layer 2 data. The majority of these addresses have been requested + # manually by energy assessors for inclusion by the Register Operator in the registers (e.g. new builds, + # etc). These records are being published for completeness. An ongoing process to manage these manually added + # addresses will take time to develop to deal with these and future anomalies. + # + # There are several fields within the lodged data where it is possible to enter multiple entries to cater for + # different data_types of build within a single property, i.e. extensions. This results in multiple entries for + # the description fields for floor, roof and wall. For the purposes of this data release only the information + # contained within the first of these multiple entries is being provided. As there are no restrictions on the + # value in this first field it means that sometimes the first field in a multiple entry description field may + # contain a ‘null’ value. A resolution to correct these anomalies will be considered for future data releases. + "NULL", + # We sometimes see fields populated with just an empty string. + "" +} + +DATA_ANOMALY_SUBSTRINGS = { + # Where values in a ‘pick’ list that have been superseded by another value. For example, where a value for + # ‘pitched roof’ has been replaced by three sub-categories of pitched roof. The original value is retained + # but ‘for backward compatibility only’ it is appended to ensure that the energy certificate retrieval + # process can be successfully completed. Replacement data items cannot be applied retrospectively to energy + # certificates lodged on the register before the date of the change. + "for backward compatibility only" +} + METRIC_FILENAME = "metrics.csv" OPTIMISE_METRIC = "mean_absolute_error" From b82fa4cef76bd4b793923db4da87c7036403541d Mon Sep 17 00:00:00 2001 From: Michael Duong Date: Tue, 16 Jan 2024 16:41:01 +0000 Subject: [PATCH 197/526] refactored the model recommendations dataset --- recommendations/recommendation_utils.py | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/recommendations/recommendation_utils.py b/recommendations/recommendation_utils.py index 6244912d..01ef8480 100644 --- a/recommendations/recommendation_utils.py +++ b/recommendations/recommendation_utils.py @@ -310,6 +310,22 @@ def get_roof_u_value( return float(u_value) +def estimate_number_of_floors(property_type): + """ + Using the property type, we estimate the number of floors in the property + """ + + if property_type == "House": + number_of_floors = 2 + elif property_type in ["Flat", "Bungalow"]: + number_of_floors = 1 + elif property_type == "Maisonette": + number_of_floors = 2 + else: + raise NotImplementedError("Implement me") + + return number_of_floors + def estimate_perimeter(floor_area, num_rooms): """ From cc8b6801b240dad881d8400793b63e94ab7369bb Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Tue, 16 Jan 2024 17:11:35 +0000 Subject: [PATCH 198/526] fixing extension count bug, tidying up router --- backend/app/plan/router.py | 47 +++--- backend/app/utils.py | 1 - etl/epc/Record.py | 311 ++++++++++++++++++++----------------- 3 files changed, 184 insertions(+), 175 deletions(-) diff --git a/backend/app/plan/router.py b/backend/app/plan/router.py index d35ea98b..a3732856 100644 --- a/backend/app/plan/router.py +++ b/backend/app/plan/router.py @@ -2,7 +2,6 @@ from datetime import datetime import numpy as np import pandas as pd -from epc_api.client import EpcClient from etl.epc.Record import EPCRecord from backend.SearchEpc import SearchEpc from fastapi import APIRouter, Depends @@ -25,7 +24,7 @@ from backend.app.db.models.portfolio import rating_lookup from backend.app.dependencies import validate_token from backend.app.plan.schemas import PlanTriggerRequest from backend.app.plan.utils import create_recommendation_scoring_data, get_cleaned -from backend.app.utils import epc_to_sap_lower_bound, read_csv_from_s3, read_parquet_from_s3, sap_to_epc +from backend.app.utils import epc_to_sap_lower_bound, read_csv_from_s3, sap_to_epc from backend.ml_models.api import ModelApi from backend.Property import Property @@ -53,7 +52,6 @@ router = APIRouter( responses={404: {"description": "Not found"}} ) -# TODO: Need to install base.txt requirements into new env @router.post("/trigger") async def trigger_plan(body: PlanTriggerRequest): @@ -64,8 +62,10 @@ async def trigger_plan(body: PlanTriggerRequest): try: session.begin() logger.info("Getting the inputs") - epc_client = EpcClient(auth_token=get_settings().EPC_AUTH_TOKEN) plan_input = read_csv_from_s3(bucket_name=get_settings().PLAN_TRIGGER_BUCKET, filepath=body.trigger_file_path) + cleaning_data = read_dataframe_from_s3_parquet( + bucket_name=get_settings().DATA_BUCKET, file_key="sap_change_model/cleaning_dataset.parquet", + ) input_properties = [] @@ -95,26 +95,25 @@ async def trigger_plan(body: PlanTriggerRequest): heat_demand_target=None ) - epc_records ={ + epc_records = { 'original_epc': epc_searcher.newest_epc, 'full_sap_epc': epc_searcher.full_sap_epc, - 'old_data': epc_searcher.old_data, + 'old_data': epc_searcher.older_epcs, } - prepared_epc = EPCRecord(epc_records=epc_records, run_mode="newdata", cleaning_data=cleaning_data) # This uses all the epc records to clean the data - + prepared_epc = EPCRecord(epc_records=epc_records, run_mode="newdata", + cleaning_data=cleaning_data) # This uses all the epc records to clean the data + input_properties.append( Property( id=property_id, - address1=config['address'], - postcode=config['postcode'], + address=epc_searcher.address_clean, + postcode=epc_searcher.postcode_clean, epc_record=prepared_epc, ) ) - - if not input_properties: - + if not input_properties: return Response(status_code=204) # The materials data could be cached or local so we don't need to make @@ -127,9 +126,6 @@ async def trigger_plan(body: PlanTriggerRequest): uprn_filenames = read_dataframe_from_s3_parquet( bucket_name=get_settings().DATA_BUCKET, file_key="spatial/filename_meta.parquet" ) - cleaning_data = read_dataframe_from_s3_parquet( - bucket_name=get_settings().DATA_BUCKET, file_key="sap_change_model/cleaning_dataset.parquet", - ) photo_supply_lookup, floor_area_decile_thresholds = SolarPhotoSupply.load(bucket=get_settings().DATA_BUCKET) logger.info("Getting spatial data") @@ -160,12 +156,12 @@ async def trigger_plan(body: PlanTriggerRequest): recommendations_scoring_data.extend(p.recommendations_scoring_data) - logger.info("Preparing data for scoring in sap change api") recommendations_scoring_data = pd.DataFrame(recommendations_scoring_data) recommendations_scoring_data = recommendations_scoring_data.drop( - columns=["rdsap_change", "heat_demand_change", "carbon_change", "sap_ending", "heat_demand_ending", "carbon_ending"] - ) + columns=["rdsap_change", "heat_demand_change", "carbon_change", "sap_ending", "heat_demand_ending", + "carbon_ending"] + ) model_api = ModelApi(portfolio_id=body.portfolio_id, timestamp=created_at) all_predictions = model_api.predict_all( @@ -308,20 +304,20 @@ async def trigger_plan(body: PlanTriggerRequest): combined_recommendations_scoring_data = pd.DataFrame(combined_recommendations_scoring_data) # Perform the same cleaning as in the model - first clean number of room variables though - combined_recommendations_scoring_data = DataProcessor.apply_averages_cleaning( + combined_recommendations_scoring_data = EPCDataProcessor.apply_averages_cleaning( data_to_clean=combined_recommendations_scoring_data, cleaning_data=cleaning_data, cols_to_merge_on=['PROPERTY_TYPE', 'BUILT_FORM', 'CONSTRUCTION_AGE_BAND', 'LOCAL_AUTHORITY'], colnames=["NUMBER_HABITABLE_ROOMS", "NUMBER_HEATED_ROOMS"], ) - combined_recommendations_scoring_data = DataProcessor.apply_averages_cleaning( + combined_recommendations_scoring_data = EPCDataProcessor.apply_averages_cleaning( data_to_clean=combined_recommendations_scoring_data, cleaning_data=cleaning_data, cols_to_merge_on=COLUMNS_TO_MERGE_ON + ["LOCAL_AUTHORITY"], ).drop(columns=["LOCAL_AUTHORITY"]) - combined_recommendations_scoring_data = DataProcessor.clean_missings_after_description_process( + combined_recommendations_scoring_data = EPCDataProcessor.clean_missings_after_description_process( combined_recommendations_scoring_data, ignore_cols=[ c for c in combined_recommendations_scoring_data.columns if ("thermal_transmittance" in c) or ( @@ -329,7 +325,7 @@ async def trigger_plan(body: PlanTriggerRequest): ] ) - combined_recommendations_scoring_data = DataProcessor.clean_efficiency_variables( + combined_recommendations_scoring_data = EPCDataProcessor.clean_efficiency_variables( combined_recommendations_scoring_data ) @@ -472,11 +468,6 @@ async def trigger_plan(body: PlanTriggerRequest): update_or_create_property_spatial_details(session, p.uprn, p.spatial) - # TODO: TEMP - if p.data["uprn"] == "": - print("Get rid of me!") - p.data["uprn"] = 0 - property_data = p.get_full_property_data() update_property_data( session, property_id=p.id, portfolio_id=body.portfolio_id, property_data=property_data diff --git a/backend/app/utils.py b/backend/app/utils.py index 9a03ab21..6801da65 100644 --- a/backend/app/utils.py +++ b/backend/app/utils.py @@ -4,7 +4,6 @@ from io import StringIO import string import secrets import logging -import pandas as pd from io import BytesIO diff --git a/etl/epc/Record.py b/etl/epc/Record.py index 85a8f0f2..39bcf971 100644 --- a/etl/epc/Record.py +++ b/etl/epc/Record.py @@ -1,8 +1,8 @@ from datetime import datetime from dataclasses import dataclass from etl.epc.ValidationConfiguration import ( - EPCRecordValidationConfiguration, - EPCDifferenceRecordValidationConfiguration, + EPCRecordValidationConfiguration, + EPCDifferenceRecordValidationConfiguration, EPCDifferenceRecordFixedDataValidationConfiguration ) from etl.epc.DataProcessor import EPCDataProcessor @@ -33,6 +33,7 @@ EFFICIENCY_FEATURES = [x.lower() for x in EFFICIENCY_FEATURES] ENVIRONMENT = os.environ.get('ENVIRONMENT', 'dev') DATA_BUCKET = os.environ.get('DATA_BUCKET', 'retrofit-data-dev' if ENVIRONMENT == 'dev' else None) + @dataclass class EPCRecord: """ @@ -41,44 +42,44 @@ class EPCRecord: uprn: int = None walls_description: str = None - floor_description : str = None - lighting_description : str = None - roof_description : str = None - mainheat_description : str = None - hotwater_description : str = None - main_fuel : str = None - mechanical_ventilation : str = None - secondheat_description : str = None - windows_description : str = None - glazed_type : str = None - multi_glaze_proportion : float = None - low_energy_lighting : float = None - number_open_fireplaces : float = None - mainheatcont_description : str = None - solar_water_heating_flag : str = None - photo_supply : float = None - transaction_type : str = None - energy_tariff : str = None - extension_count : float = None - total_floor_area : float = None - floor_height : float = None - hot_water_energy_eff : str = None - floor_energy_eff : str = None - windows_energy_eff : str = None - walls_energy_eff : str = None - sheating_energy_eff : str = None - roof_energy_eff : str = None - mainheat_energy_eff : str = None - mainheatc_energy_eff : str = None - lighting_energy_eff : str = None - potential_energy_efficiency : float = None - environment_impact_potential : float = None - energy_consumption_potential : float = None - co2_emissions_potential : float = None - lodgement_date : str = None - current_energy_efficiency : int = None - energy_consumption_current : int = None - co2_emissions_current : float = None + floor_description: str = None + lighting_description: str = None + roof_description: str = None + mainheat_description: str = None + hotwater_description: str = None + main_fuel: str = None + mechanical_ventilation: str = None + secondheat_description: str = None + windows_description: str = None + glazed_type: str = None + multi_glaze_proportion: float = None + low_energy_lighting: float = None + number_open_fireplaces: float = None + mainheatcont_description: str = None + solar_water_heating_flag: str = None + photo_supply: float = None + transaction_type: str = None + energy_tariff: str = None + extension_count: float = None + total_floor_area: float = None + floor_height: float = None + hot_water_energy_eff: str = None + floor_energy_eff: str = None + windows_energy_eff: str = None + walls_energy_eff: str = None + sheating_energy_eff: str = None + roof_energy_eff: str = None + mainheat_energy_eff: str = None + mainheatc_energy_eff: str = None + lighting_energy_eff: str = None + potential_energy_efficiency: float = None + environment_impact_potential: float = None + energy_consumption_potential: float = None + co2_emissions_potential: float = None + lodgement_date: str = None + current_energy_efficiency: int = None + energy_consumption_current: int = None + co2_emissions_current: float = None # u_values_walls = None # u_values_roof = None @@ -107,7 +108,7 @@ class EPCRecord: # self.WALLS_DESCRIPTION = 'check' # Could also have cleaning of records if needed - if self.run_mode == "training": + if self.run_mode == "training": self.validation_configuration = EPCRecordValidationConfiguration # self._field_validation() return @@ -115,7 +116,7 @@ class EPCRecord: # We are running in newdata mode if self.epc_records is None: raise ValueError("Must provide epc records if running in newdata mode") - + self.prepared_epc = self.epc_records['original_epc'] self.original_epc = self.epc_records['original_epc'].copy() @@ -123,8 +124,8 @@ class EPCRecord: self.old_data = self.epc_records['old_data'] if self.cleaning_data is None: - raise ValueError("Must provide cleaning data if running in newdata mode") - + raise ValueError("Must provide cleaning data if running in newdata mode") + self._clean_records_using_epc_records() self._clean_with_data_processor() self._temp_uprn_catch() @@ -175,7 +176,6 @@ class EPCRecord: pd.to_datetime(lodgement_date) - pd.to_datetime(EARLIEST_EPC_DATE) ).dt.days - def _temp_uprn_catch(self): """ Catch the case we do now have uprn @@ -188,15 +188,14 @@ class EPCRecord: This method will clean the records using the data processor """ epc_data_processor = EPCDataProcessor( - data=self.epc_record_as_dataframe("prepared_epc"), - run_mode="newdata", + data=self.epc_record_as_dataframe("prepared_epc"), + run_mode="newdata", cleaning_averages=self.cleaning_data ) epc_data_processor.prepare_data() self.prepared_epc = epc_data_processor.data.to_dict(orient="records")[0] - def _expand_prepared_epc_to_attributes(self): """ This method will expand the prepared epc to attributes @@ -207,44 +206,44 @@ class EPCRecord: self.uprn: int = int(self.prepared_epc["uprn"]) self.walls_description: str = self.prepared_epc["walls_description"] - self.floor_description : str = self.prepared_epc["floor_description"] - self.lighting_description : str = self.prepared_epc["lighting_description"] - self.roof_description : str = self.prepared_epc["roof_description"] - self.mainheat_description : str = self.prepared_epc["mainheat_description"] - self.hotwater_description : str = self.prepared_epc["hotwater_description"] - self.main_fuel : str = self.prepared_epc["main_fuel"] - self.mechanical_ventilation : str = self.prepared_epc["mechanical_ventilation"] - self.secondheat_description : str = self.prepared_epc["secondheat_description"] - self.windows_description : str = self.prepared_epc["windows_description"] - self.glazed_type : str = self.prepared_epc["glazed_type"] - self.multi_glaze_proportion : float = float(self.prepared_epc["multi_glaze_proportion"]) - self.low_energy_lighting : float = float(self.prepared_epc["low_energy_lighting"]) - self.number_open_fireplaces : float = float(self.prepared_epc["number_open_fireplaces"]) - self.mainheatcont_description : str = self.prepared_epc["mainheatcont_description"] - self.solar_water_heating_flag : str = self.prepared_epc["solar_water_heating_flag"] - self.photo_supply : float = float(self.prepared_epc["photo_supply"]) - self.transaction_type : str = self.prepared_epc["transaction_type"] - self.energy_tariff : str = self.prepared_epc["energy_tariff"] - self.extension_count : float = float(self.prepared_epc["extension_count"]) - self.total_floor_area : float = float(self.prepared_epc["total_floor_area"]) - self.floor_height : float = float(self.prepared_epc["floor_height"]) - self.hot_water_energy_eff : str = self.prepared_epc["hot_water_energy_eff"] - self.floor_energy_eff : str = self.prepared_epc["floor_energy_eff"] - self.windows_energy_eff : str = self.prepared_epc["windows_energy_eff"] - self.walls_energy_eff : str = self.prepared_epc["walls_energy_eff"] - self.sheating_energy_eff : str = self.prepared_epc["sheating_energy_eff"] - self.roof_energy_eff : str = self.prepared_epc["roof_energy_eff"] - self.mainheat_energy_eff : str = self.prepared_epc["mainheat_energy_eff"] - self.mainheatc_energy_eff : str = self.prepared_epc["mainheatc_energy_eff"] - self.lighting_energy_eff : str = self.prepared_epc["lighting_energy_eff"] - self.potential_energy_efficiency : float = float(self.prepared_epc["potential_energy_efficiency"]) - self.environment_impact_potential : float = float(self.prepared_epc["environment_impact_potential"]) - self.energy_consumption_potential : float = float(self.prepared_epc["energy_consumption_potential"]) - self.co2_emissions_potential : float = float(self.prepared_epc["co2_emissions_potential"]) - self.lodgement_date : str = self.prepared_epc["lodgement_date"] - self.current_energy_efficiency : int = int(self.prepared_epc["current_energy_efficiency"]) - self.energy_consumption_current : int = int(self.prepared_epc["energy_consumption_current"]) - self.co2_emissions_current : float = float(self.prepared_epc["co2_emissions_current"]) + self.floor_description: str = self.prepared_epc["floor_description"] + self.lighting_description: str = self.prepared_epc["lighting_description"] + self.roof_description: str = self.prepared_epc["roof_description"] + self.mainheat_description: str = self.prepared_epc["mainheat_description"] + self.hotwater_description: str = self.prepared_epc["hotwater_description"] + self.main_fuel: str = self.prepared_epc["main_fuel"] + self.mechanical_ventilation: str = self.prepared_epc["mechanical_ventilation"] + self.secondheat_description: str = self.prepared_epc["secondheat_description"] + self.windows_description: str = self.prepared_epc["windows_description"] + self.glazed_type: str = self.prepared_epc["glazed_type"] + self.multi_glaze_proportion: float = float(self.prepared_epc["multi_glaze_proportion"]) + self.low_energy_lighting: float = float(self.prepared_epc["low_energy_lighting"]) + self.number_open_fireplaces: float = float(self.prepared_epc["number_open_fireplaces"]) + self.mainheatcont_description: str = self.prepared_epc["mainheatcont_description"] + self.solar_water_heating_flag: str = self.prepared_epc["solar_water_heating_flag"] + self.photo_supply: float = float(self.prepared_epc["photo_supply"]) + self.transaction_type: str = self.prepared_epc["transaction_type"] + self.energy_tariff: str = self.prepared_epc["energy_tariff"] + self.extension_count: float = float(self.prepared_epc["extension_count"]) + self.total_floor_area: float = float(self.prepared_epc["total_floor_area"]) + self.floor_height: float = float(self.prepared_epc["floor_height"]) + self.hot_water_energy_eff: str = self.prepared_epc["hot_water_energy_eff"] + self.floor_energy_eff: str = self.prepared_epc["floor_energy_eff"] + self.windows_energy_eff: str = self.prepared_epc["windows_energy_eff"] + self.walls_energy_eff: str = self.prepared_epc["walls_energy_eff"] + self.sheating_energy_eff: str = self.prepared_epc["sheating_energy_eff"] + self.roof_energy_eff: str = self.prepared_epc["roof_energy_eff"] + self.mainheat_energy_eff: str = self.prepared_epc["mainheat_energy_eff"] + self.mainheatc_energy_eff: str = self.prepared_epc["mainheatc_energy_eff"] + self.lighting_energy_eff: str = self.prepared_epc["lighting_energy_eff"] + self.potential_energy_efficiency: float = float(self.prepared_epc["potential_energy_efficiency"]) + self.environment_impact_potential: float = float(self.prepared_epc["environment_impact_potential"]) + self.energy_consumption_potential: float = float(self.prepared_epc["energy_consumption_potential"]) + self.co2_emissions_potential: float = float(self.prepared_epc["co2_emissions_potential"]) + self.lodgement_date: str = self.prepared_epc["lodgement_date"] + self.current_energy_efficiency: int = int(self.prepared_epc["current_energy_efficiency"]) + self.energy_consumption_current: int = int(self.prepared_epc["energy_consumption_current"]) + self.co2_emissions_current: float = float(self.prepared_epc["co2_emissions_current"]) def _identify_delta_between_prepared_and_original_records(self): """ @@ -258,14 +257,13 @@ class EPCRecord: same_index = df.apply(pd.Series.duplicated).any() self.prepared_epc_delta_metadata = df[same_index[~same_index].index] - def _expand_description_to_features(self): pass def _expand_description_to_uvalues(self): # TODO: can be loop over all the descriptions, or done in one pass - + # def _process_and_prune(self, cleaned_lookup: dict): # """ # This method will merge on the cleaned lookup table and ensure that the building fabric in the @@ -283,7 +281,7 @@ class EPCRecord: # left_on_ending = ( # f"{component}_ending" if component == "main-fuel" else f"{component}_description_ending" # ) - + # self.df2 = self.df.merge( # pd.DataFrame(cleaned_lookup[cleaned_key]), # how="left", @@ -296,7 +294,6 @@ class EPCRecord: # right_on="original_description", # suffixes=("", "_ending") # ) - def _clean_records_using_epc_records(self): """ @@ -328,20 +325,21 @@ class EPCRecord: # self._clean_energy_consumption_current() # self._clean_co2_emissions_current() - def epc_record_as_dataframe(self, epc_type: str = "prepared_epc", use_upper_columns: bool = True, replace_empty_string: bool = False): + def epc_record_as_dataframe(self, epc_type: str = "prepared_epc", use_upper_columns: bool = True, + replace_empty_string: bool = False): """ This method will return the dataframe representation of the epc record """ df = pd.DataFrame.from_dict(self.get(epc_type), orient="index").T if use_upper_columns: - df.columns = [x.upper().replace("-","_") for x in df.columns] + df.columns = [x.upper().replace("-", "_") for x in df.columns] if replace_empty_string: df = df.replace("", np.nan) return df - + def _clean_floor_level(self): """ This method will clean the floor level, if empty or invalid @@ -360,7 +358,7 @@ class EPCRecord: """ if not self.prepared_epc: raise ValueError("EPC Recrod doesn not contain epc data") - + if self.prepared_epc["fixed-lighting-outlets-count"] == "": # We check old EPCs and the full SAP EPC @@ -380,13 +378,15 @@ class EPCRecord: if lighting_data: self.prepared_epc["fixed-lighting-outlets-count"] = round(np.median(lighting_data)) else: - # Use averages from the cleaning dataset, based on the property type, built form, construction age band and local authority + # Use averages from the cleaning dataset, based on the property type, built form, construction age + # band and local authority cleaned_property_data = EPCDataProcessor.apply_averages_cleaning( data_to_clean=self.epc_record_as_dataframe("prepared_epc", replace_empty_string=True), cleaning_data=self.cleaning_data, cols_to_merge_on=['PROPERTY_TYPE', 'BUILT_FORM', 'CONSTRUCTION_AGE_BAND', 'LOCAL_AUTHORITY'], ) - self.prepared_epc["fixed-lighting-outlets-count"] = round(cleaned_property_data["FIXED_LIGHTING_OUTLETS_COUNT"].values[0]) + self.prepared_epc["fixed-lighting-outlets-count"] = round( + cleaned_property_data["FIXED_LIGHTING_OUTLETS_COUNT"].values[0]) else: self.prepared_epc["fixed-lighting-outlets-count"] = float(self.prepared_epc["fixed-lighting-outlets-count"]) @@ -402,7 +402,8 @@ class EPCRecord: if self.construction_age_band is not None and self.construction_age_band not in DATA_ANOMALY_MATCHES: result = result[(result["CONSTRUCTION_AGE_BAND"] == self.construction_age_band)] - if self.prepared_epc["built-form"] not in DATA_ANOMALY_MATCHES and self.prepared_epc["built-form"] in result["BUILT_FORM"]: + if self.prepared_epc["built-form"] not in DATA_ANOMALY_MATCHES and self.prepared_epc["built-form"] in result[ + "BUILT_FORM"]: result = result[(result["BUILT_FORM"] == self.prepared_epc["built-form"])] return result[["NUMBER_HABITABLE_ROOMS", "TOTAL_FLOOR_AREA", "FLOOR_HEIGHT"]].mean() @@ -424,7 +425,8 @@ class EPCRecord: self.property_dimensions = self._filter_property_dimensions(property_dimensions) if not self.prepared_epc["number-habitable-rooms"]: - self.prepared_epc["number-habitable-rooms"] = float(self.property_dimensions["NUMBER_HABITABLE_ROOMS"].round()) + self.prepared_epc["number-habitable-rooms"] = float( + self.property_dimensions["NUMBER_HABITABLE_ROOMS"].round()) else: self.prepared_epc["number-habitable-rooms"] = float(self.prepared_epc["number-habitable-rooms"]) @@ -451,7 +453,7 @@ class EPCRecord: self.prepared_epc["total-floor-area"] = float(self.prepared_epc["total-floor-area"]) - def _clean_mains_gas(self): + def _clean_mains_gas(self): """ This method will clean the mains gas, if empty or invalid """ @@ -465,7 +467,7 @@ class EPCRecord: self.prepared_epc["mains-gas-flag"] = None if ( self.prepared_epc["mains-gas-flag"] == "" or self.prepared_epc["mains-gas-flag"] in DATA_ANOMALY_MATCHES - ) else map[self.prepared_epc["mains-gas-flag"]] + ) else map[self.prepared_epc["mains-gas-flag"]] def _clean_heat_loss_corridor(self): """ @@ -480,10 +482,14 @@ class EPCRecord: "heated corridor": False } - self.prepared_epc["heat-loss-corridor"] = False if self.prepared_epc["heat-loss-corridor"] in DATA_ANOMALY_MATCHES else map[self.prepared_epc["heat-loss-corridor"]] - - self.prepared_epc["unheated-corridor-length"] = float(self.prepared_epc["unheated-corridor-length"]) if self.prepared_epc["unheated-corridor-length"] != "" else None + self.prepared_epc["heat-loss-corridor"] = False if self.prepared_epc[ + "heat-loss-corridor"] in DATA_ANOMALY_MATCHES else map[ + self.prepared_epc["heat-loss-corridor"]] + self.prepared_epc["unheated-corridor-length"] = ( + float(self.prepared_epc["unheated-corridor-length"]) if + self.prepared_epc["unheated-corridor-length"] != "" else None + ) def _clean_count_variables(self): """ @@ -502,8 +508,6 @@ class EPCRecord: null_attributes = ["number_of_storeys", "number_of_rooms"] for attribute, epc_field in fields.items(): - # TODO: check this - # value = self.data["extension-count"] value = self.prepared_epc[epc_field] if value == "" or value in DATA_ANOMALY_MATCHES: if attribute in null_attributes: @@ -522,7 +526,8 @@ class EPCRecord: if not self.prepared_epc: raise ValueError("EPC Recrod doesn not contain epc data") - self.prepared_epc['wind-turbine-count'] = int(self.prepared_epc['wind-turbine-count']) if self.prepared_epc['wind-turbine-count'] != "" else None + self.prepared_epc['wind-turbine-count'] = int(self.prepared_epc['wind-turbine-count']) if self.prepared_epc[ + 'wind-turbine-count'] != "" else None def _clean_solar_hot_water(self): """ @@ -530,7 +535,7 @@ class EPCRecord: """ if not self.prepared_epc: raise ValueError("EPC Recrod doesn not contain epc data") - + value_map = { "Y": True, "N": False, @@ -546,7 +551,9 @@ class EPCRecord: if not self.prepared_epc: raise ValueError("EPC Recrod doesn not contain epc data") - self.prepared_epc['photo-supply'] = float(self.prepared_epc['photo-supply']) if self.prepared_epc['photo-supply'] != "" else None + self.prepared_epc['photo-supply'] = float(self.prepared_epc['photo-supply']) if self.prepared_epc[ + 'photo-supply'] != "" \ + else None def _clean_energy(self): """ @@ -558,7 +565,6 @@ class EPCRecord: self.prepared_epc['energy-consumption-current'] = float(self.prepared_epc["energy-consumption-current"]) self.prepared_epc['co2-emissions-current'] = float(self.prepared_epc["co2-emissions-current"]) - def _clean_built_form(self): """ This method will clean the build form, if empty or invalid @@ -566,7 +572,8 @@ class EPCRecord: if not self.prepared_epc: raise ValueError("EPC Recrod doesn not contain epc data") - self.prepared_epc['built-form'] = BUILT_FORM_REMAP.get(self.prepared_epc["built-form"], self.prepared_epc["built-form"]) + self.prepared_epc['built-form'] = BUILT_FORM_REMAP.get(self.prepared_epc["built-form"], + self.prepared_epc["built-form"]) if self.prepared_epc["built-form"] in DATA_ANOMALY_MATCHES: if self.prepared_epc["property-type"] == "Flat": self.prepared_epc["built-form"] = "Semi-Detached" @@ -578,7 +585,8 @@ class EPCRecord: if not self.prepared_epc: raise ValueError("EPC Recrod doesn not contain epc data") - self.construction_age_band = EPCDataProcessor.clean_construction_age_band(self.prepared_epc["construction-age-band"]) + self.construction_age_band = EPCDataProcessor.clean_construction_age_band( + self.prepared_epc["construction-age-band"]) if self.construction_age_band in DATA_ANOMALY_MATCHES: if self.old_data: # Take the most recent @@ -586,7 +594,8 @@ class EPCRecord: [old_record["lodgement-datetime"] for old_record in self.old_data if old_record["construction-age-band"] not in DATA_ANOMALY_MATCHES] ) - most_recent = [old_record for old_record in self.old_data if old_record["lodgement-datetime"] == max_datetime] + most_recent = [old_record for old_record in self.old_data if + old_record["lodgement-datetime"] == max_datetime] self.construction_age_band = EPCDataProcessor.clean_construction_age_band( most_recent[0]["construction-age-band"] @@ -625,14 +634,15 @@ class EPCRecord: """ This method will clean the ventilation, if empty or invalid """ - self.prepared_epc['mechanical-ventilation'] = None if (self.mechanical_ventilation == "" or self.mechanical_ventilation in DATA_ANOMALY_MATCHES) else self.mechanical_ventilation - + self.prepared_epc['mechanical-ventilation'] = None if ( + self.mechanical_ventilation == "" or self.mechanical_ventilation in DATA_ANOMALY_MATCHES) else ( + self.mechanical_ventilation) def _field_validation(self): """ This method will validate each of the fields in the EPC record """ - + for record_key, validation_config in self.validation_configuration.items(): # Get the variable named record key from self field_value = self.__dict__[record_key] @@ -650,81 +660,89 @@ class EPCRecord: """ if not isinstance(field_value, str): raise ValueError(f"Field {record_key} has value {field_value} which is not a string") - + if 'function' in validation_config: try: validation_config['function'](field_value) except: - raise ValueError(f"Field {record_key} has value {field_value} which does not pass the validation function {validation_config['function']}") + raise ValueError( + f"Field {record_key} has value {field_value} which does not pass the validation function " + f"{validation_config['function']}") if validation_config['acceptable_values'] is not None: if field_value not in validation_config['acceptable_values']: - raise ValueError(f"Field {record_key} has value {field_value} which is not in the acceptable values of {validation_config['acceptable_values']}") - + raise ValueError( + f"Field {record_key} has value {field_value} which is not in the acceptable values of " + f"{validation_config['acceptable_values']}") + def _validate_float(self, record_key: str, field_value: Union[str, float], validation_config: dict): """ Validate a float field """ if not isinstance(field_value, float): raise ValueError(f"Field {record_key} has value {field_value} which is not a float") - + if 'function' in validation_config: try: validation_config['function'](field_value) except: - raise ValueError(f"Field {record_key} has value {field_value} which does not pass the validation function {validation_config['function']}") - + raise ValueError( + f"Field {record_key} has value {field_value} which does not pass the validation function " + f"{validation_config['function']}") + if validation_config['range'] is not None: if field_value < validation_config['range'][0] or field_value > validation_config['range'][1]: - raise ValueError(f"Field {record_key} has value {field_value} which is not in the acceptable range of {validation_config['range']}") - + raise ValueError( + f"Field {record_key} has value {field_value} which is not in the acceptable range of " + f"{validation_config['range']}") + def __sub__(self, other): """ This method will return the difference between two EPC records """ if not isinstance(other, EPCRecord): raise ValueError("Can only subtract EPCRecord from EPCRecord") - + difference_record = EPCDifferenceRecord(record1=self, record2=other, auto_sort=True) - + return difference_record - + def __gt__(self, other): """ This method will return True if the EPC record is greater than or equal to the other """ if not isinstance(other, EPCRecord): raise ValueError("Can only compare EPCRecord to EPCRecord") - + return self.__dict__[RDSAP_RESPONSE] > other.__dict__[RDSAP_RESPONSE] - + def __ge__(self, other): """ This method will return True if the EPC record is greater than or equal to the other """ if not isinstance(other, EPCRecord): raise ValueError("Can only compare EPCRecord to EPCRecord") - + return self.__dict__[RDSAP_RESPONSE] >= other.__dict__[RDSAP_RESPONSE] - + def __lt__(self, other): """ This method will return True if the EPC record is greater than or equal to the other """ if not isinstance(other, EPCRecord): raise ValueError("Can only compare EPCRecord to EPCRecord") - + return self.__dict__[RDSAP_RESPONSE] < other.__dict__[RDSAP_RESPONSE] - + def __le__(self, other): """ This method will return True if the EPC record is greater than or equal to the other """ if not isinstance(other, EPCRecord): raise ValueError("Can only compare EPCRecord to EPCRecord") - + return self.__dict__[RDSAP_RESPONSE] <= other.__dict__[RDSAP_RESPONSE] - + def get(self, key: Union[str, List[str]], return_asdict: bool = False, key_suffix: str | None = None) -> Any: """ This method will return the value of the key @@ -738,8 +756,8 @@ class EPCRecord: if isinstance(key, list): return [self.__dict__[x] if x in self.__dict__.keys() else None for x in key] elif isinstance(key, str): - return self.__dict__[key] if key in self.__dict__.keys() else None - + return self.__dict__[key] if key in self.__dict__.keys() else None + class EPCDifferenceRecord: """ @@ -767,7 +785,6 @@ class EPCDifferenceRecord: self._validate_difference_record() # self._detect_fabric_consistency() - def _construct_difference_record(self): """ This method will construct the difference record between the two records @@ -778,8 +795,10 @@ class EPCDifferenceRecord: carbon_change = self.record2.get(CARBON_RESPONSE) - self.record1.get(CARBON_RESPONSE) component_variables = COMPONENT_FEATURES + EFFICIENCY_FEATURES - ending_record = self.record2.get(component_variables + ["lodgement_date"], return_asdict=True, key_suffix="_ending") - starting_record = self.record1.get(component_variables + ["lodgement_date"], return_asdict=True, key_suffix="_starting") + ending_record = self.record2.get(component_variables + ["lodgement_date"], return_asdict=True, + key_suffix="_ending") + starting_record = self.record1.get(component_variables + ["lodgement_date"], return_asdict=True, + key_suffix="_starting") self.difference_record = { "uprn": self.record1.get("uprn"), @@ -812,30 +831,30 @@ class EPCDifferenceRecord: # if value < 0: # raise ValueError(f"Difference record has negative value for {key}") pass - + def compare_fields_in_records(self, fields: List[str]): """ This method will compare the records, for specific fields """ - + all_equal = True for field in fields: if self.record1.get(field) != self.record2.get(field): return False - + if all_equal: return True - + def get(self, key: str): """ This method will return the value of the key """ - return self.difference_record[key] if key in self.difference_record.keys() else None + return self.difference_record[key] if key in self.difference_record.keys() else None def append_fixed_data(self, fixed_data: dict): """ This method will append fixed data to the difference record - """ + """ self._validate_fixed_data(fixed_data) self.difference_record.update(fixed_data) From 51e85e75162a21cb776a39e7db861a96c0262668 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Tue, 16 Jan 2024 17:33:02 +0000 Subject: [PATCH 199/526] minor tweaks to property class to work with router and fix dodgy merge --- backend/Property.py | 252 +++++++++++++++++--------------------------- etl/epc/Dataset.py | 105 +++++++++--------- 2 files changed, 148 insertions(+), 209 deletions(-) diff --git a/backend/Property.py b/backend/Property.py index c784f6f2..7db64773 100644 --- a/backend/Property.py +++ b/backend/Property.py @@ -7,7 +7,8 @@ import pandas as pd from etl.epc.DataProcessor import EPCDataProcessor from etl.epc.Dataset import TrainingDataset -from etl.epc.settings import LATEST_FIELD, MANDATORY_FIXED_FEATURES, POTENTIAL_COLUMNS, EFFICIENCY_FEATURES, BUILT_FORM_REMAP +from etl.epc.settings import LATEST_FIELD, MANDATORY_FIXED_FEATURES, POTENTIAL_COLUMNS, EFFICIENCY_FEATURES, \ + BUILT_FORM_REMAP from etl.epc_clean.epc_attributes.all_cleaners import all_cleaner_map from etl.solar.SolarPhotoSupply import SolarPhotoSupply from utils.logger import setup_logger @@ -18,7 +19,6 @@ from recommendations.recommendation_utils import ( estimate_perimeter, get_wall_type, estimate_external_wall_area, esimtate_pitched_roof_area, estimate_windows ) - ENVIRONMENT = os.environ.get('ENVIRONMENT', 'dev') DATA_BUCKET = os.environ.get('DATA_BUCKET', 'retrofit-data-dev' if ENVIRONMENT == 'dev' else None) @@ -49,8 +49,9 @@ class Property(Definitions): lighting = None spatial = None + base_difference_record = None - def __init__(self, id, postcode, address, epc_record, data=None): + def __init__(self, id, postcode, address, epc_record): self.epc_record = epc_record @@ -58,7 +59,7 @@ class Property(Definitions): self.address = address self.postcode = postcode - self.data = {k.replace("_", "-"): v for k,v in epc_record.get("prepared_epc").items()} + self.data = {k.replace("_", "-"): v for k, v in epc_record.get("prepared_epc").items()} self.old_data = epc_record.get("old_data") self.property_dimensions = None @@ -135,7 +136,7 @@ class Property(Definitions): print("NEED TO CHANGE THE DASH TO LOWER CASE") fixed_data_col_names = [x.lower().replace("_", "-") for x in fixed_data_col_names] - fixed_data = {k.replace("-", "_"):v for k,v in self.data.items() if k in fixed_data_col_names} + fixed_data = {k.replace("-", "_"): v for k, v in self.data.items() if k in fixed_data_col_names} difference_record.append_fixed_data(fixed_data) @@ -143,16 +144,16 @@ class Property(Definitions): # TODO: adjust the base difference record with the previously calculated u values + features # estimated_perimeter is different to the perimeter in the epc record - + # self.base_difference_record.df def adjust_difference_record_with_recommendations(self, property_recommendations): """ This method will adjust the difference record, based on the recommendations made for the property - :param recommendations: dictionary of recommendations for the property - :return: + :param property_recommendations: dictionary of recommendations for the property """ + self.recommendations_scoring_data = [] for recommendations_by_type in property_recommendations: for i, rec in enumerate(recommendations_by_type): scoring_dict = self.create_recommendation_scoring_data( @@ -161,7 +162,7 @@ class Property(Definitions): scoring_dict['id'] = "+".join([str(self.id), str(rec["recommendation_id"])]) self.recommendations_scoring_data.append(scoring_dict) - + def create_recommendation_scoring_data(self, recommendation: dict): recommendation_record = self.base_difference_record.df.to_dict("records")[0].copy() @@ -180,41 +181,98 @@ class Property(Definitions): recommendation_record["walls_insulation_thickness_ending"] = "above average" recommendation_record["walls_energy_eff_ending"] = "Good" else: - wind_turbine_count = int(wind_turbine_count) + if recommendation_record["walls_thermal_transmittance_ending"] is None: + raise ValueError("We should not have a None value for the u value") - self.wind_turbine = { - "wind_turbine": wind_turbine_count, - } + if recommendation_record["walls_insulation_thickness_ending"] is None: + recommendation_record["walls_insulation_thickness_ending"] = "none" - def set_count_variables(self): + # Update description to indicate it's insulate + if recommendation["type"] in ["solid_floor_insulation", "suspended_floor_insulation", + "exposed_floor_insulation"]: + if len(recommendation["parts"]) > 1: + raise NotImplementedError("Have more than 1 floor insulation part - handle this case") - """ - For EPC fields that are just counts, we'll set them here - These are fields that are integers but may contain additional values such as "" so we can't do a direct - conversion straight to an integer - :return: - """ + recommendation_record["floor_thermal_transmittance_ending"] = recommendation["new_u_value"] + # We don't really see above average for this in the training data + recommendation_record["floor_insulation_thickness_ending"] = "average" + recommendation_record["floor_energy_eff_ending"] = "Good" + else: + if recommendation_record["floor_thermal_transmittance_ending"] is None: + raise ValueError("We should not have a None value for the u value") - fields = { - "number_of_open_fireplaces": "number-open-fireplaces", - "number_of_extensions": "extension-count", - "number_of_storeys": "flat-storey-count", - "number_of_rooms": "number-habitable-rooms", - } + if recommendation_record["floor_insulation_thickness_ending"] is None: + recommendation_record["floor_insulation_thickness_ending"] = "none" - null_attributes = ["number_of_storeys", "number_of_rooms"] + if recommendation["type"] in ["loft_insulation", "room_roof_insulation", "flat_roof_insulation"]: + recommendation_record["roof_thermal_transmittance_ending"] = recommendation["new_u_value"] - for attribute, epc_field in fields.items(): - value = self.data["extension-count"] - if value == "" or value in self.DATA_ANOMALY_MATCHES: - if attribute in null_attributes: - value = None - else: - value = 0 + parts = recommendation["parts"] + if len(parts) != 1: + raise ValueError("More than one part for roof insulation - investiage me") + + # This is based on the values we have in the training data + valid_numeric_values = [ + 12, 25, 50, 75, 100, 150, 200, 250, 270, 300, 350, 400 + ] + + proposed_depth = int(parts[0]["depth"]) + if proposed_depth not in valid_numeric_values: + # Take the nearest value for scoring + proposed_depth = min(valid_numeric_values, key=lambda x: abs(x - proposed_depth)) + + recommendation_record["roof_insulation_thickness_ending"] = str(proposed_depth) + recommendation_record["roof_energy_eff_ending"] = "Very Good" + else: + # Fill missing roof u-values - this fill is not based on recommended upgrades + if recommendation_record["roof_thermal_transmittance_ending"] is None: + raise ValueError("We should not have a None value for the u value") + + if recommendation_record["roof_insulation_thickness_ending"] is None: + recommendation_record["roof_insulation_thickness_ending"] = "none" + + if recommendation["type"] == "mechanical_ventilation": + recommendation_record["mechanical_ventilation_ending"] = 'mechanical, extract only' + + if recommendation["type"] == "sealing_open_fireplace": + recommendation_record["number_open_fireplaces_ending"] = 0 + + if recommendation["type"] == "low_energy_lighting": + recommendation_record["low_energy_lighting_ending"] = 100 + recommendation_record["lighting_energy_eff_starting"] = "Very Good" + + if recommendation["type"] == "windows_glazing": + recommendation_record["multi_glaze_proportion_ending"] = 100 + recommendation_record["windows_energy_eff_ending"] = "Average" + + is_secondary_glazing = recommendation["is_secondary_glazing"] + + if recommendation_record["glazing_type_ending"] == "multiple": + pass + elif recommendation_record["glazing_type_ending"] == "single": + recommendation_record["glazing_type_ending"] = "secondary" if is_secondary_glazing else "double" + elif recommendation_record["glazing_type_ending"] == "double": + recommendation_record["glazing_type_ending"] = "multiple" if is_secondary_glazing else "double" + elif recommendation_record["glazing_type_ending"] == "secondary": + recommendation_record["glazing_type_ending"] = "secondary" if is_secondary_glazing else "multiple" + elif recommendation_record["glazing_type_ending"] in ["triple", "high performance"]: + recommendation_record["glazing_type_ending"] = "multiple" else: - value = int(value) + raise ValueError("Invalid glazing type - implement me") - setattr(self, attribute, value) + if recommendation["type"] == "solar_pv": + recommendation_record["photo_supply_ending"] = recommendation["photo_supply"] + + if recommendation["type"] not in [ + "mechanical_ventilation", "sealing_open_fireplace", "low_energy_lighting", + "internal_wall_insulation", "external_wall_insulation", "cavity_wall_insulation", + "loft_insulation", "room_roof_insulation", "flat_roof_insulation", + "solid_floor_insulation", "suspended_floor_insulation", "exposed_floor_insulation", + "windows_glazing", "solar_pv" + ]: + raise NotImplementedError("Implement me") + + return recommendation_record def get_components(self, cleaned, photo_supply_lookup, floor_area_decile_thresholds): """ @@ -473,7 +531,7 @@ class Property(Definitions): def set_floor_level(self): self.floor_level = ( FLOOR_LEVEL_MAP[self.data["floor-level"]] if - self.data["floor-level"] not in self.DATA_ANOMALY_MATCHES and self.data['floor-level'] is not None + self.data["floor-level"] not in self.DATA_ANOMALY_MATCHES and self.data['floor-level'] is not None else None ) @@ -545,126 +603,6 @@ class Property(Definitions): return component_data - def get_model_data(self): - """ - This method extracts cleaned data from the property object, which is used in our machine learning models - - This will use many of the cleaned properties, extracted from the epc data, or methods in DataProcessor. - - For future iterations of this, we probably want to implement a singular method in DataProcessor, which can - be used in the etl code and in here - - :return: dictionary of model data to be scored in the model - """ - - drop_cols = ["original_description", "clean_description"] - insulation_drop_cols = ["thermal_transmittance_unit", "is_assumed", "is_valid"] - insulation_rename_cols = ["thermal_transmittance", "insulation_thickness"] - - walls = self._extract_component(self.walls, insulation_rename_cols, insulation_drop_cols + drop_cols, "walls") - roof = self._extract_component(self.roof, insulation_rename_cols, insulation_drop_cols + drop_cols, "roof") - floor = self._extract_component(self.floor, insulation_rename_cols, insulation_drop_cols + drop_cols, "floor") - - windows = self._extract_component(self.windows, [], drop_cols + ["no_data"]) - fuel = self._extract_component(self.main_fuel, ["tariff_type"], drop_cols + ["tariff_type"], "main-fuel") - main_heating = self._extract_component(self.main_heating, [], drop_cols + ["has_assumed"]) - main_heating_controls = self._extract_component(self.main_heating_controls, [], drop_cols) - hotwater = self._extract_component(self.hotwater, ["tariff_type"], drop_cols + ['assumed'], "hotwater") - - # We'll need to clean second heating - second_heating = self.data["secondheat-description"] - - epc_raw_columns = POTENTIAL_COLUMNS + EFFICIENCY_FEATURES + [ - 'TRANSACTION_TYPE', - 'ENERGY_TARIFF', - 'PROPERTY_TYPE', - 'UPRN', - 'NUMBER_OPEN_FIREPLACES', - 'MULTI_GLAZE_PROPORTION', - 'MECHANICAL_VENTILATION', - 'PHOTO_SUPPLY', - 'LOW_ENERGY_LIGHTING', - 'SOLAR_WATER_HEATING_FLAG', - 'GLAZED_TYPE', - 'CONSTITUENCY', - 'NUMBER_HEATED_ROOMS', - 'EXTENSION_COUNT', - ] - epc_raw_data = { - k: self.data[k.lower().replace("_", "-")] for k in epc_raw_columns - } - - built_form_cleaning_map = { - "Flat": "Mid-Terrace", - "House": "Semi-Detached", - "Bungalow": "Detached", - "Maisonette": "Mid-Terrace" - } - - built_form = self.data["built-form"] - if built_form in self.DATA_ANOMALY_MATCHES: - # TODO: If built form isn't captured, we use the most common value for that property type - we shall - # improve this methodology - built_form = built_form_cleaning_map.get(self.data["property-type"]) - if not built_form: - raise NotImplementedError("Not handled this property type when cleaning built form") - - property_data = { - **walls, - **roof, - **floor, - **fuel, - **main_heating, - **main_heating_controls, - **hotwater, - **windows, - "SECONDHEAT_DESCRIPTION": second_heating, - "DAYS_TO": EPCDataProcessor.calculate_days_to(self.data["lodgement-date"]), - "SAP": float(self.data["current-energy-efficiency"]), - "CARBON": float(self.data["co2-emissions-current"]), - "HEAT_DEMAND": float(self.data["energy-consumption-current"]), - "estimated_perimeter": self.perimeter, - "CONSTRUCTION_AGE_BAND": self.construction_age_band, - "FLOOR_HEIGHT": self.floor_height, - "NUMBER_HABITABLE_ROOMS": self.number_of_rooms, - "TOTAL_FLOOR_AREA": self.floor_area, - "FIXED_LIGHTING_OUTLETS_COUNT": self.number_lighting_outlets, - **epc_raw_data, - "BUILT_FORM": built_form, - "POSTCODE": self.data["postcode"], - } - - return property_data - - def set_number_lighting_outlets(self, cleaned_property_data): - """ - Extracts and cleans the estimated number of lighting outlets - :return: - """ - - if self.data["fixed-lighting-outlets-count"] in [None, ""]: - - # We check old EPCs and the full SAP EPC - - lighting_data = [] - - if len(self.old_data): - lighting_data.extend([ - int(x["fixed-lighting-outlets-count"]) for x in self.old_data if - x["fixed-lighting-outlets-count"] != "" - ]) - - if len(self.full_sap_epc): - if self.full_sap_epc["fixed-lighting-outlets-count"] != "": - lighting_data.append(int(self.full_sap_epc["fixed-lighting-outlets-count"])) - - if lighting_data: - self.number_lighting_outlets = round(np.median(lighting_data)) - else: - self.number_lighting_outlets = round(cleaned_property_data["FIXED_LIGHTING_OUTLETS_COUNT"].values[0]) - else: - self.number_lighting_outlets = float(self.data["fixed-lighting-outlets-count"]) - def set_adjusted_energy(self, current_adjusted_energy, expected_adjusted_energy): """ Stores these values for usage later diff --git a/etl/epc/Dataset.py b/etl/epc/Dataset.py index 4ca98fc6..82272be1 100644 --- a/etl/epc/Dataset.py +++ b/etl/epc/Dataset.py @@ -34,7 +34,8 @@ class BaseDataset: # raise ValueError(f"Pipeline type {pipeline_type} not found") # return self.pipeline_steps[pipeline_type] - + + class TrainingDataset(BaseDataset): """ A collection of EPCDifferenceRecords can be combined into a TrainingDataset. @@ -45,7 +46,7 @@ class TrainingDataset(BaseDataset): # self.pipeline_steps = self.pipeline_factory("training") self.datasets = datasets self.df = pd.DataFrame([dataset.difference_record for dataset in datasets]) - + self._feature_generation() self._drop_features() self._clean_efficiency_variables() @@ -91,7 +92,7 @@ class TrainingDataset(BaseDataset): if row["has_dwelling_above"]: if row["roof_thermal_transmittance"] != 0: raise ValueError("Should have 0 u-value for roof") - + if row["roof_thermal_transmittance_ending"] != 0: raise ValueError("Should have 0 u-value for roof") @@ -105,15 +106,16 @@ class TrainingDataset(BaseDataset): is_pitched=row["is_pitched"], is_at_rafters=row["is_at_rafters"], age_band=england_wales_age_band_lookup[row["construction_age_band"]] - ) - + ) + @staticmethod def _lambda_function_to_generate_wall_uvalue(row, is_end=False): """ Using the apply method, use the get_wall_u_value method to generate the u-value """ description_col_name = "walls_clean_description" if not is_end else "walls_clean_description_ending" - thermal_transistance_col_name = "walls_thermal_transmittance" if not is_end else "walls_thermal_transmittance_ending" + thermal_transistance_col_name = "walls_thermal_transmittance" if not is_end else \ + "walls_thermal_transmittance_ending" if pd.isnull(row[thermal_transistance_col_name]): output = get_wall_u_value( @@ -126,7 +128,7 @@ class TrainingDataset(BaseDataset): output = row[thermal_transistance_col_name] return output - + @staticmethod def _lambda_function_to_generate_floor_uvalue(row, is_end=False): """ @@ -146,20 +148,19 @@ class TrainingDataset(BaseDataset): uvalue = row[floor_thermal_col_name] if pd.isnull(uvalue): - insulation_col_name = "floor_insulation_thickness" if not is_end else "floor_insulation_thickness_ending" floor_area_col_name = "estimated_perimeter_starting" if not is_end else "estimated_perimeter_ending" perimeter_col_name = "total_floor_area_starting" if not is_end else "total_floor_area_ending" uvalue = get_floor_u_value( - floor_type=row["floor_type"], - perimeter=row[floor_area_col_name], - area=row[perimeter_col_name], - insulation_thickness=row[insulation_col_name], - wall_type=row["wall_type"], - age_band=england_wales_age_band_lookup[row["construction_age_band"]] - ) - + floor_type=row["floor_type"], + perimeter=row[floor_area_col_name], + area=row[perimeter_col_name], + insulation_thickness=row[insulation_col_name], + wall_type=row["wall_type"], + age_band=england_wales_age_band_lookup[row["construction_age_band"]] + ) + return uvalue def _generate_u_values_from_features(self): @@ -181,13 +182,15 @@ class TrainingDataset(BaseDataset): ) walls_starting_uvalue = self.df['walls_thermal_transmittance'].fillna(walls_starting_uvalue) - walls_starting_equals_ending_flag = self.df['walls_clean_description'] == self.df["walls_clean_description_ending"] - walls_ending_uvalue[walls_starting_equals_ending_flag] = walls_starting_uvalue[walls_starting_equals_ending_flag] - + walls_starting_equals_ending_flag = self.df['walls_clean_description'] == self.df[ + "walls_clean_description_ending"] + walls_ending_uvalue[walls_starting_equals_ending_flag] = walls_starting_uvalue[ + walls_starting_equals_ending_flag] + # ~~~~~~~~~~~~~~~~~~ # Roof # ~~~~~~~~~~~~~~~~~~ - + roof_starting_uvalue = self.df.apply( lambda row: self._lambda_function_to_generate_roof_uvalue(row), axis=1 @@ -200,7 +203,6 @@ class TrainingDataset(BaseDataset): roof_starting_uvalue = self.df['roof_thermal_transmittance'].fillna(roof_starting_uvalue) roof_ending_uvalue = self.df['roof_thermal_transmittance_ending'].fillna(roof_ending_uvalue) - # ~~~~~~~~~~~~~~~~~~ # Floor # ~~~~~~~~~~~~~~~~~~ @@ -211,7 +213,8 @@ class TrainingDataset(BaseDataset): ) self.df['estimated_perimeter_starting'] = self.df.apply( - lambda row: estimate_perimeter(row["total_floor_area_starting"]/ row['estimated_number_of_floors'], row["number_habitable_rooms"]/ row['estimated_number_of_floors']), + lambda row: estimate_perimeter(row["total_floor_area_starting"] / row['estimated_number_of_floors'], + row["number_habitable_rooms"] / row['estimated_number_of_floors']), axis=1 ) self.df['estimated_perimeter_ending'] = self.df.apply( @@ -221,18 +224,18 @@ class TrainingDataset(BaseDataset): self.df["floor_type"] = self.df["is_suspended"].replace({True: "suspended", False: "solid"}) self.df["wall_type"] = self.df.apply( lambda row: get_wall_type( - is_cavity_wall=row["is_cavity_wall"], - is_solid_brick=row["is_solid_brick"], - is_timber_frame=row["is_timber_frame"], - is_granite_or_whinstone=row["is_granite_or_whinstone"], - is_cob=row["is_cob"], + is_cavity_wall=row["is_cavity_wall"], + is_solid_brick=row["is_solid_brick"], + is_timber_frame=row["is_timber_frame"], + is_granite_or_whinstone=row["is_granite_or_whinstone"], + is_cob=row["is_cob"], is_sandstone_or_limestone=row["is_sandstone_or_limestone"], is_system_built=row["is_system_built"], is_park_home=row["is_park_home"] - ), + ), axis=1 ) - + floor_starting_uvalue = self.df.apply( lambda row: self._lambda_function_to_generate_floor_uvalue(row), axis=1 @@ -246,19 +249,21 @@ class TrainingDataset(BaseDataset): floor_ending_uvalue = self.df['floor_thermal_transmittance_ending'].fillna(floor_ending_uvalue) for component in ["walls", "roof", "floor"]: - self.df[f"{component}_thermal_transmittance"] = self.df[f"{component}_thermal_transmittance"].fillna(eval(f"{component}_starting_uvalue")) - self.df[f"{component}_thermal_transmittance_ending"] = self.df[f"{component}_thermal_transmittance_ending"].fillna(eval(f"{component}_ending_uvalue")) + self.df[f"{component}_thermal_transmittance"] = self.df[f"{component}_thermal_transmittance"].fillna( + eval(f"{component}_starting_uvalue")) + self.df[f"{component}_thermal_transmittance_ending"] = self.df[ + f"{component}_thermal_transmittance_ending"].fillna(eval(f"{component}_ending_uvalue")) - self.df = self.df.drop(columns=["floor_type", "wall_type", "walls_clean_description", "walls_clean_description_ending", 'estimated_number_of_floors']) + self.df = self.df.drop( + columns=["floor_type", "wall_type", "walls_clean_description", "walls_clean_description_ending", + 'estimated_number_of_floors']) - def _adjust_assumed_values_in_wall_descriptions(self): """ Strip out assumed values for all wall descriptions """ for col in ["walls_clean_description", "walls_clean_description_ending"]: - self.df[col] = self.df[col].str.replace("(assumed)", "").str.rstrip() - + self.df[col] = self.df[col].str.replace("(assumed)", "", regex=False).str.rstrip() def _drop_inconsistent_properties(self, expanded_df: pd.DataFrame, component: str): """ @@ -292,9 +297,8 @@ class TrainingDataset(BaseDataset): (expanded_df["is_at_rafters"] == expanded_df["is_at_rafters_ending"]) & (expanded_df["has_dwelling_above"] == expanded_df["has_dwelling_above_ending"]) ] - + return expanded_df - def _expand_description_to_features(self, cleaned_lookup: dict): """ @@ -306,7 +310,7 @@ class TrainingDataset(BaseDataset): # remove this record, as it indicates that the quality of the EPC conducted in the first instance # is low # We also replace descriptions with their cleaned variants - """ + """ cols_to_drop = { "walls": [ @@ -361,9 +365,9 @@ class TrainingDataset(BaseDataset): } components_to_expand = cols_to_drop.keys() - + for component in components_to_expand: - + # TODO: change cleaned dataframe to have underscores instead of dashes if component == "main-fuel": cleaned_key = "main-fuel" @@ -377,7 +381,7 @@ class TrainingDataset(BaseDataset): original_cols = [f"{component}_description_starting", f"{component}_description_ending"] cleaned_lookup_df_for_key = pd.DataFrame(cleaned_lookup[cleaned_key]) - + expanded_df = self.df.merge( cleaned_lookup_df_for_key, how="left", @@ -393,7 +397,7 @@ class TrainingDataset(BaseDataset): # Drop properties where key material types have changed expanded_df = self._drop_inconsistent_properties(expanded_df, component) - + # Drop original cols and cols to drop expanded_df = expanded_df.drop(columns=cols_to_drop[component] + original_cols) @@ -411,11 +415,10 @@ class TrainingDataset(BaseDataset): } ) self.df = expanded_df - + # We don't need any lighting specific cleaning, we just drop the original description as we use # LOW_ENERGY_LIGHTING_STARTING, LOW_ENERGY_LIGHTING_ENDING self.df = self.df.drop(columns=["lighting_description_starting", "lighting_description_ending"]) - def _clean_missing_values(self, ignore_cols=None): missings = pd.isnull(self.df).sum() @@ -433,7 +436,6 @@ class TrainingDataset(BaseDataset): else: self.df[col] = self.df[col].fillna("Unknown") - def _null_validation(self, information: str): print(f"Null validation after {information}") if pd.isnull(self.df).sum().sum(): @@ -445,7 +447,6 @@ class TrainingDataset(BaseDataset): """ self.df = self.df.drop(columns=["lodgement_date_starting", "lodgement_date_ending"]) - def _feature_generation(self): """ Generate features for modelling @@ -469,16 +470,15 @@ class TrainingDataset(BaseDataset): missings = missings[missings >= 1] if len(missings) == 0: - return + return - # Make sure they are all efficiency columns + # Make sure they are all efficiency columns if any(~missings.index.str.contains("energy_eff")): raise ValueError("Non efficiency columns are missing") for m in missings.index: self.df[m] = self.df[m].fillna("NO_RATING") - @staticmethod def _calculate_days_to(lodgement_date): @@ -495,7 +495,7 @@ class TrainingDataset(BaseDataset): # if not isinstance(other, TrainingDataset): # raise TypeError("Addition can only be performed with another instance of TrainingDataset") # return TrainingDataset(self.datasets + other.datasets) - + # def __radd__(self, other): # """ # Required for sum() to work @@ -505,6 +505,7 @@ class TrainingDataset(BaseDataset): # else: # return self.__add__(other) + class NewDataset(BaseDataset): """ A collection of EPCDifferenceRecords can be combined into a ScoringDataset. @@ -518,7 +519,7 @@ class NewDataset(BaseDataset): if not isinstance(other, NewDataset): raise TypeError("Addition can only be performed with another instance of ScoringDataset") return NewDataset(self.datasets + other.datasets) - + def __radd__(self, other): """ Required for sum() to work @@ -526,4 +527,4 @@ class NewDataset(BaseDataset): if isinstance(other, int): return self else: - return self.__add__(other) \ No newline at end of file + return self.__add__(other) From b0a918dc8f92afc9d462d8eaee0bd3109778e686 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Tue, 16 Jan 2024 17:36:38 +0000 Subject: [PATCH 200/526] fixed typo --- etl/epc/Record.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/etl/epc/Record.py b/etl/epc/Record.py index 39bcf971..70586749 100644 --- a/etl/epc/Record.py +++ b/etl/epc/Record.py @@ -496,7 +496,7 @@ class EPCRecord: This method will clean the count variables, if empty or invalid """ if not self.prepared_epc: - raise ValueError("EPC Recrod doesn not contain epc data") + raise ValueError("EPC Record doesn not contain epc data") fields = { "number_of_open_fireplaces": "number-open-fireplaces", From 60744d83b115fcbd03ba980fa6eacbfe39515815 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Tue, 16 Jan 2024 18:39:23 +0000 Subject: [PATCH 201/526] fixed u-value bug --- backend/Property.py | 12 ++++++++---- backend/app/plan/router.py | 24 +++++++++--------------- backend/app/plan/utils.py | 26 ++++++++++++++------------ etl/epc/Dataset.py | 26 ++++++++++++++++++-------- 4 files changed, 49 insertions(+), 39 deletions(-) diff --git a/backend/Property.py b/backend/Property.py index 7db64773..86b48e07 100644 --- a/backend/Property.py +++ b/backend/Property.py @@ -154,18 +154,19 @@ class Property(Definitions): """ self.recommendations_scoring_data = [] + for recommendations_by_type in property_recommendations: for i, rec in enumerate(recommendations_by_type): + recommendation_record = self.base_difference_record.df.to_dict("records")[0].copy() scoring_dict = self.create_recommendation_scoring_data( - recommendation=rec, + recommendation_record=recommendation_record, recommendation=rec, ) scoring_dict['id'] = "+".join([str(self.id), str(rec["recommendation_id"])]) self.recommendations_scoring_data.append(scoring_dict) - def create_recommendation_scoring_data(self, recommendation: dict): - - recommendation_record = self.base_difference_record.df.to_dict("records")[0].copy() + @staticmethod + def create_recommendation_scoring_data(recommendation_record, recommendation: dict): for col in [ "walls_insulation_thickness", "floor_insulation_thickness", "roof_insulation_thickness" @@ -511,6 +512,9 @@ class Property(Definitions): :return: """ + # TODO: These functions should work on an EPCRecord object, so that the format is more standardised. + # They could also be added as attributes to the EPC Record + self.perimeter = estimate_perimeter( self.floor_area / self.number_of_floors, self.number_of_rooms / self.number_of_floors ) diff --git a/backend/app/plan/router.py b/backend/app/plan/router.py index a3732856..324feed9 100644 --- a/backend/app/plan/router.py +++ b/backend/app/plan/router.py @@ -136,7 +136,6 @@ async def trigger_plan(body: PlanTriggerRequest): recommendations = {} recommendations_scoring_data = [] - property_scoring_data = {} for p in input_properties: @@ -164,6 +163,7 @@ async def trigger_plan(body: PlanTriggerRequest): ) model_api = ModelApi(portfolio_id=body.portfolio_id, timestamp=created_at) + all_predictions = model_api.predict_all( df=recommendations_scoring_data, bucket=get_settings().DATA_BUCKET, @@ -278,25 +278,19 @@ async def trigger_plan(body: PlanTriggerRequest): property_instance = [p for p in input_properties if p.id == property_id][0] - property_scoring_datasets = property_scoring_data[property_id] - starting_epc_data = property_scoring_datasets["starting_epc_data"].copy() - ending_epc_data = property_scoring_datasets["ending_epc_data"].copy() - fixed_data = property_scoring_datasets["fixed_data"].copy() + recommendation_record = property_instance.base_difference_record.df.to_dict("records")[0].copy() scoring_dict = {} for rec in default_recommendations: - scoring_dict = create_recommendation_scoring_data( - property=property_instance, - recommendation=rec, - starting_epc_data=starting_epc_data, - ending_epc_data=ending_epc_data, - fixed_data=fixed_data, + scoring_dict = Property.create_recommendation_scoring_data( + recommendation_record=recommendation_record, + recommendation=rec ) - # At each iteration, we want to update the ending_epc_data, so in the end, ending_epc_data contains - # all of the updates + # At each iterations, we update the recommendation record with the changes reflectecd in the + # scoring_dict for k in scoring_dict.keys(): - if k in ending_epc_data.columns: - ending_epc_data[k] = scoring_dict[k] + if k in recommendation_record.keys(): + recommendation_record[k] = scoring_dict[k] combined_recommendations_scoring_data.append(scoring_dict) diff --git a/backend/app/plan/utils.py b/backend/app/plan/utils.py index 7672c316..e20e93ce 100644 --- a/backend/app/plan/utils.py +++ b/backend/app/plan/utils.py @@ -39,6 +39,8 @@ def create_recommendation_scoring_data( :return: """ + # TODO: This needs to be complete depracated + scoring_dict = { "UPRN": property.data["uprn"], "id": "+".join([str(property.id), str(recommendation["recommendation_id"])]), @@ -90,33 +92,33 @@ def create_recommendation_scoring_data( if recommendation["type"] in ["internal_wall_insulation", "external_wall_insulation", "cavity_wall_insulation"]: # The upgrade made here is to the u-value of the walls and the description of the # insulation thickness - scoring_dict["walls_thermal_transmittance_ENDING"] = recommendation["new_u_value"] - scoring_dict["walls_insulation_thickness_ENDING"] = "above average" - scoring_dict["WALLS_ENERGY_EFF_ENDING"] = "Good" + scoring_dict["walls_thermal_transmittance_ending"] = recommendation["new_u_value"] + scoring_dict["walls_insulation_thickness_ending"] = "above average" + scoring_dict["walls_energy_eff_ending"] = "Good" else: - if scoring_dict["walls_thermal_transmittance_ENDING"] is None: - scoring_dict["walls_thermal_transmittance_ENDING"] = get_wall_u_value( + if scoring_dict["walls_thermal_transmittance_ending"] is None: + scoring_dict["walls_thermal_transmittance_ending"] = get_wall_u_value( clean_description=property.walls["clean_description"], age_band=property.age_band, is_granite_or_whinstone=property.walls["is_granite_or_whinstone"], is_sandstone_or_limestone=property.walls["is_sandstone_or_limestone"] ) - if scoring_dict["walls_insulation_thickness_ENDING"] is None: - scoring_dict["walls_insulation_thickness_ENDING"] = "none" + if scoring_dict["walls_insulation_thickness_ending"] is None: + scoring_dict["walls_insulation_thickness_ending"] = "none" # Update description to indicate it's insulate if recommendation["type"] in ["solid_floor_insulation", "suspended_floor_insulation", "exposed_floor_insulation"]: if len(recommendation["parts"]) > 1: raise NotImplementedError("Have more than 1 floor insulation part - handle this case") - scoring_dict["floor_thermal_transmittance_ENDING"] = recommendation["new_u_value"] + scoring_dict["floor_thermal_transmittance_ending"] = recommendation["new_u_value"] # We don't really see above average for this in the training data - scoring_dict["floor_insulation_thickness_ENDING"] = "average" - scoring_dict["FLOOR_ENERGY_EFF_ENDING"] = "Good" + scoring_dict["floor_insulation_thickness_ending"] = "average" + scoring_dict["floor_energy_eff_ending"] = "Good" else: - if scoring_dict["floor_thermal_transmittance_ENDING"] is None: - scoring_dict["floor_thermal_transmittance_ENDING"] = get_floor_u_value( + if scoring_dict["floor_thermal_transmittance_ending"] is None: + scoring_dict["floor_thermal_transmittance_ending"] = get_floor_u_value( floor_type=property.floor_type, area=property.floor_area, perimeter=property.perimeter, diff --git a/etl/epc/Dataset.py b/etl/epc/Dataset.py index 82272be1..fbc7a2d2 100644 --- a/etl/epc/Dataset.py +++ b/etl/epc/Dataset.py @@ -149,13 +149,13 @@ class TrainingDataset(BaseDataset): if pd.isnull(uvalue): insulation_col_name = "floor_insulation_thickness" if not is_end else "floor_insulation_thickness_ending" - floor_area_col_name = "estimated_perimeter_starting" if not is_end else "estimated_perimeter_ending" - perimeter_col_name = "total_floor_area_starting" if not is_end else "total_floor_area_ending" + perimeter_col_name = "estimated_perimeter_starting" if not is_end else "estimated_perimeter_ending" + floor_area_col_name = "ground_floor_area_starting" if not is_end else "ground_floor_area_ending" uvalue = get_floor_u_value( floor_type=row["floor_type"], - perimeter=row[floor_area_col_name], - area=row[perimeter_col_name], + perimeter=row[perimeter_col_name], + area=row[floor_area_col_name], insulation_thickness=row[insulation_col_name], wall_type=row["wall_type"], age_band=england_wales_age_band_lookup[row["construction_age_band"]] @@ -212,13 +212,23 @@ class TrainingDataset(BaseDataset): axis=1 ) + self.df["ground_floor_area_starting"] = ( + self.df["total_floor_area_starting"] / self.df['estimated_number_of_floors'] + ) + self.df["ground_floor_area_ending"] = ( + self.df["total_floor_area_ending"] / self.df['estimated_number_of_floors'] + ) + self.df['estimated_perimeter_starting'] = self.df.apply( - lambda row: estimate_perimeter(row["total_floor_area_starting"] / row['estimated_number_of_floors'], - row["number_habitable_rooms"] / row['estimated_number_of_floors']), + lambda row: estimate_perimeter( + row["ground_floor_area_starting"], row["number_habitable_rooms"] / row['estimated_number_of_floors'] + ), axis=1 ) self.df['estimated_perimeter_ending'] = self.df.apply( - lambda row: estimate_perimeter(row["total_floor_area_ending"], row["number_habitable_rooms"]), + lambda row: estimate_perimeter( + row["ground_floor_area_starting"], row["number_habitable_rooms"] / row['estimated_number_of_floors'] + ), axis=1 ) self.df["floor_type"] = self.df["is_suspended"].replace({True: "suspended", False: "solid"}) @@ -256,7 +266,7 @@ class TrainingDataset(BaseDataset): self.df = self.df.drop( columns=["floor_type", "wall_type", "walls_clean_description", "walls_clean_description_ending", - 'estimated_number_of_floors']) + 'estimated_number_of_floors', "ground_floor_area_starting", "ground_floor_area_ending"]) def _adjust_assumed_values_in_wall_descriptions(self): """ From 47016ef89c7c27c53fa2d9cc2997fb1fc9878d17 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Tue, 16 Jan 2024 19:14:27 +0000 Subject: [PATCH 202/526] integrated new models into router --- backend/Property.py | 13 +-- backend/app/plan/router.py | 36 ++------ backend/app/plan/utils.py | 184 ------------------------------------- 3 files changed, 15 insertions(+), 218 deletions(-) diff --git a/backend/Property.py b/backend/Property.py index 86b48e07..98325b15 100644 --- a/backend/Property.py +++ b/backend/Property.py @@ -159,14 +159,13 @@ class Property(Definitions): for i, rec in enumerate(recommendations_by_type): recommendation_record = self.base_difference_record.df.to_dict("records")[0].copy() scoring_dict = self.create_recommendation_scoring_data( - recommendation_record=recommendation_record, recommendation=rec, + property_id=self.id, recommendation_record=recommendation_record, recommendation=rec, ) - scoring_dict['id'] = "+".join([str(self.id), str(rec["recommendation_id"])]) self.recommendations_scoring_data.append(scoring_dict) @staticmethod - def create_recommendation_scoring_data(recommendation_record, recommendation: dict): + def create_recommendation_scoring_data(property_id, recommendation_record, recommendation: dict): for col in [ "walls_insulation_thickness", "floor_insulation_thickness", "roof_insulation_thickness" @@ -273,6 +272,8 @@ class Property(Definitions): ]: raise NotImplementedError("Implement me") + recommendation_record['id'] = "+".join([str(property_id), str(recommendation["recommendation_id"])]) + return recommendation_record def get_components(self, cleaned, photo_supply_lookup, floor_area_decile_thresholds): @@ -437,9 +438,9 @@ class Property(Definitions): "floor_height": self.floor_height, "heat_loss_corridor": self.heat_loss_corridor["heat_loss_corridor"], "unheated_corridor_length": self.heat_loss_corridor["length"], - "number_of_open_fireplaces": self.number_of_open_fireplaces, - "number_of_extensions": self.number_of_extensions, - "number_of_storeys": self.number_of_storeys, + "number_of_open_fireplaces": self.number_of_open_fireplaces["number_of_open_fireplaces"], + "number_of_extensions": self.number_of_extensions["number_of_extensions"], + "number_of_storeys": self.number_of_storeys["number_of_storeys"], "mains_gas": self.mains_gas, "energy_tariff": self.data["energy-tariff"], "primary_energy_consumption": self.energy["primary_energy_consumption"], diff --git a/backend/app/plan/router.py b/backend/app/plan/router.py index 324feed9..8c199145 100644 --- a/backend/app/plan/router.py +++ b/backend/app/plan/router.py @@ -23,7 +23,7 @@ from backend.app.db.functions.recommendations_functions import ( from backend.app.db.models.portfolio import rating_lookup from backend.app.dependencies import validate_token from backend.app.plan.schemas import PlanTriggerRequest -from backend.app.plan.utils import create_recommendation_scoring_data, get_cleaned +from backend.app.plan.utils import get_cleaned from backend.app.utils import epc_to_sap_lower_bound, read_csv_from_s3, sap_to_epc from backend.ml_models.api import ModelApi @@ -173,6 +173,8 @@ async def trigger_plan(body: PlanTriggerRequest): "carbon_change_predictions": get_settings().CARBON_PREDICTIONS_BUCKET } ) + # all_predictions["heat_demand_predictions"]= all_predictions["sap_change_predictions"].copy() + # all_predictions["carbon_change_predictions"] = all_predictions["sap_change_predictions"].copy() # Insert the predictions into the recommendations and run the optimiser logger.info("Optimising recommendations") @@ -283,6 +285,7 @@ async def trigger_plan(body: PlanTriggerRequest): scoring_dict = {} for rec in default_recommendations: scoring_dict = Property.create_recommendation_scoring_data( + property_id=property_instance.id, recommendation_record=recommendation_record, recommendation=rec ) @@ -297,33 +300,6 @@ async def trigger_plan(body: PlanTriggerRequest): # PERFORM SAME STEPS AGAIN - TODO: TO BE REMOVED combined_recommendations_scoring_data = pd.DataFrame(combined_recommendations_scoring_data) - # Perform the same cleaning as in the model - first clean number of room variables though - combined_recommendations_scoring_data = EPCDataProcessor.apply_averages_cleaning( - data_to_clean=combined_recommendations_scoring_data, - cleaning_data=cleaning_data, - cols_to_merge_on=['PROPERTY_TYPE', 'BUILT_FORM', 'CONSTRUCTION_AGE_BAND', 'LOCAL_AUTHORITY'], - colnames=["NUMBER_HABITABLE_ROOMS", "NUMBER_HEATED_ROOMS"], - ) - - combined_recommendations_scoring_data = EPCDataProcessor.apply_averages_cleaning( - data_to_clean=combined_recommendations_scoring_data, - cleaning_data=cleaning_data, - cols_to_merge_on=COLUMNS_TO_MERGE_ON + ["LOCAL_AUTHORITY"], - ).drop(columns=["LOCAL_AUTHORITY"]) - - combined_recommendations_scoring_data = EPCDataProcessor.clean_missings_after_description_process( - combined_recommendations_scoring_data, - ignore_cols=[ - c for c in combined_recommendations_scoring_data.columns if ("thermal_transmittance" in c) or ( - "insulation_thickness" in c) or ("ENERGY_EFF" in c) - ] - ) - - combined_recommendations_scoring_data = EPCDataProcessor.clean_efficiency_variables( - combined_recommendations_scoring_data - ) - - model_api = ModelApi(portfolio_id=body.portfolio_id, timestamp=created_at) all_combined_predictions = model_api.predict_all( df=combined_recommendations_scoring_data, bucket=get_settings().DATA_BUCKET, @@ -334,6 +310,10 @@ async def trigger_plan(body: PlanTriggerRequest): } ) + # all_combined_predictions["heat_demand_predictions"]= all_combined_predictions["sap_change_predictions"].copy() + # all_combined_predictions["carbon_change_predictions"] = all_combined_predictions[ + # "sap_change_predictions"].copy() + # We update the carbon and heat demand predictions for property_id, property_recommendations in recommendations.items(): combined_heat_demand = all_combined_predictions["heat_demand_predictions"] diff --git a/backend/app/plan/utils.py b/backend/app/plan/utils.py index e20e93ce..07d4642d 100644 --- a/backend/app/plan/utils.py +++ b/backend/app/plan/utils.py @@ -25,187 +25,3 @@ def get_cleaned(): cleaned = msgpack.unpackb(cleaned, raw=False) return cleaned - - -def create_recommendation_scoring_data( - property: Property, - recommendation: dict, - starting_epc_data: pd.DataFrame, - ending_epc_data: pd.DataFrame, - fixed_data: pd.DataFrame, -): - """ - This wrapper function prepares data to be passed to the sap model api - :return: - """ - - # TODO: This needs to be complete depracated - - scoring_dict = { - "UPRN": property.data["uprn"], - "id": "+".join([str(property.id), str(recommendation["recommendation_id"])]), - "LOCAL_AUTHORITY": property.data["local-authority"], - **starting_epc_data.to_dict("records")[0], - **ending_epc_data.to_dict("records")[0], - **fixed_data.to_dict("records")[0] - } - - # Set staring u-values if we don't have them - if scoring_dict["walls_thermal_transmittance"] is None: - scoring_dict["walls_thermal_transmittance"] = get_wall_u_value( - clean_description=property.walls["clean_description"], - age_band=property.age_band, - is_granite_or_whinstone=property.walls["is_granite_or_whinstone"], - is_sandstone_or_limestone=property.walls["is_sandstone_or_limestone"] - ) - - if scoring_dict["floor_thermal_transmittance"] is None: - scoring_dict["floor_thermal_transmittance"] = get_floor_u_value( - floor_type=property.floor_type, - area=property.floor_area, - perimeter=property.perimeter, - wall_type=property.wall_type, - insulation_thickness=property.floor["insulation_thickness"], - age_band=property.age_band, - ) - - if scoring_dict["roof_thermal_transmittance"] is None: - scoring_dict["roof_thermal_transmittance"] = get_roof_u_value( - insulation_thickness=property.roof["insulation_thickness"], - has_dwelling_above=property.roof["has_dwelling_above"], - is_loft=property.roof["is_loft"], - is_roof_room=property.roof["is_roof_room"], - is_thatched=property.roof["is_thatched"], - age_band=property.age_band, - is_flat=property.roof["is_flat"], - is_pitched=property.roof["is_pitched"], - is_at_rafters=property.roof["is_at_rafters"], - ) - - for col in [ - "walls_insulation_thickness", "floor_insulation_thickness", "roof_insulation_thickness" - ]: - if scoring_dict[col] is None: - scoring_dict[col] = "none" - - # We update the description to indicate it's insulated - if recommendation["type"] in ["internal_wall_insulation", "external_wall_insulation", "cavity_wall_insulation"]: - # The upgrade made here is to the u-value of the walls and the description of the - # insulation thickness - scoring_dict["walls_thermal_transmittance_ending"] = recommendation["new_u_value"] - scoring_dict["walls_insulation_thickness_ending"] = "above average" - scoring_dict["walls_energy_eff_ending"] = "Good" - else: - if scoring_dict["walls_thermal_transmittance_ending"] is None: - scoring_dict["walls_thermal_transmittance_ending"] = get_wall_u_value( - clean_description=property.walls["clean_description"], - age_band=property.age_band, - is_granite_or_whinstone=property.walls["is_granite_or_whinstone"], - is_sandstone_or_limestone=property.walls["is_sandstone_or_limestone"] - ) - - if scoring_dict["walls_insulation_thickness_ending"] is None: - scoring_dict["walls_insulation_thickness_ending"] = "none" - - # Update description to indicate it's insulate - if recommendation["type"] in ["solid_floor_insulation", "suspended_floor_insulation", "exposed_floor_insulation"]: - if len(recommendation["parts"]) > 1: - raise NotImplementedError("Have more than 1 floor insulation part - handle this case") - - scoring_dict["floor_thermal_transmittance_ending"] = recommendation["new_u_value"] - # We don't really see above average for this in the training data - scoring_dict["floor_insulation_thickness_ending"] = "average" - scoring_dict["floor_energy_eff_ending"] = "Good" - else: - if scoring_dict["floor_thermal_transmittance_ending"] is None: - scoring_dict["floor_thermal_transmittance_ending"] = get_floor_u_value( - floor_type=property.floor_type, - area=property.floor_area, - perimeter=property.perimeter, - wall_type=property.wall_type, - insulation_thickness=property.floor["insulation_thickness"], - age_band=property.age_band, - ) - - if scoring_dict["floor_insulation_thickness_ENDING"] is None: - scoring_dict["floor_insulation_thickness_ENDING"] = "none" - - if recommendation["type"] in ["loft_insulation", "room_roof_insulation", "flat_roof_insulation"]: - scoring_dict["roof_thermal_transmittance_ENDING"] = recommendation["new_u_value"] - - parts = recommendation["parts"] - if len(parts) != 1: - raise ValueError("More than one part for roof insulation - investiage me") - - # This is based on the values we have in the training data - valid_numeric_values = [ - 12, 25, 50, 75, 100, 150, 200, 250, 270, 300, 350, 400 - ] - - proposed_depth = int(parts[0]["depth"]) - if proposed_depth not in valid_numeric_values: - # Take the nearest value for scoring - proposed_depth = min(valid_numeric_values, key=lambda x: abs(x - proposed_depth)) - - scoring_dict["roof_insulation_thickness_ENDING"] = str(proposed_depth) - scoring_dict["ROOF_ENERGY_EFF_ENDING"] = "Very Good" - else: - # Fill missing roof u-values - this fill is not based on recommended upgrades - if scoring_dict["roof_thermal_transmittance_ENDING"] is None: - scoring_dict["roof_thermal_transmittance_ENDING"] = get_roof_u_value( - insulation_thickness=property.roof["insulation_thickness"], - has_dwelling_above=property.roof["has_dwelling_above"], - is_loft=property.roof["is_loft"], - is_roof_room=property.roof["is_roof_room"], - is_thatched=property.roof["is_thatched"], - age_band=property.age_band, - is_flat=property.roof["is_flat"], - is_pitched=property.roof["is_pitched"], - is_at_rafters=property.roof["is_at_rafters"], - ) - - if scoring_dict["roof_insulation_thickness_ENDING"] is None: - scoring_dict["roof_insulation_thickness_ENDING"] = "none" - - if recommendation["type"] == "mechanical_ventilation": - scoring_dict["MECHANICAL_VENTILATION_ENDING"] = 'mechanical, extract only' - - if recommendation["type"] == "sealing_open_fireplace": - scoring_dict["NUMBER_OPEN_FIREPLACES_ENDING"] = 0 - - if recommendation["type"] == "low_energy_lighting": - scoring_dict["LOW_ENERGY_LIGHTING_ENDING"] = 100 - scoring_dict["LIGHTING_ENERGY_EFF_STARTING"] = "Very Good" - - if recommendation["type"] == "windows_glazing": - scoring_dict["MULTI_GLAZE_PROPORTION_ENDING"] = 100 - scoring_dict["WINDOWS_ENERGY_EFF_ENDING"] = "Average" - - is_secondary_glazing = recommendation["is_secondary_glazing"] - - if scoring_dict["glazing_type_ENDING"] == "multiple": - pass - elif scoring_dict["glazing_type_ENDING"] == "single": - scoring_dict["glazing_type_ENDING"] = "secondary" if is_secondary_glazing else "double" - elif scoring_dict["glazing_type_ENDING"] == "double": - scoring_dict["glazing_type_ENDING"] = "multiple" if is_secondary_glazing else "double" - elif scoring_dict["glazing_type_ENDING"] == "secondary": - scoring_dict["glazing_type_ENDING"] = "secondary" if is_secondary_glazing else "multiple" - elif scoring_dict["glazing_type_ENDING"] in ["triple", "high performance"]: - scoring_dict["glazing_type_ENDING"] = "multiple" - else: - raise ValueError("Invalid glazing type - implement me") - - if recommendation["type"] == "solar_pv": - scoring_dict["PHOTO_SUPPLY_ENDING"] = recommendation["photo_supply"] - - if recommendation["type"] not in [ - "mechanical_ventilation", "sealing_open_fireplace", "low_energy_lighting", - "internal_wall_insulation", "external_wall_insulation", "cavity_wall_insulation", - "loft_insulation", "room_roof_insulation", "flat_roof_insulation", - "solid_floor_insulation", "suspended_floor_insulation", "exposed_floor_insulation", - "windows_glazing", "solar_pv" - ]: - raise NotImplementedError("Implement me") - - return scoring_dict From df33ff93c3a17c837eb4a299cdf26a35f7ac9ac8 Mon Sep 17 00:00:00 2001 From: Michael Duong Date: Tue, 16 Jan 2024 22:45:18 +0000 Subject: [PATCH 203/526] fixed concat issue --- etl/epc/DataProcessor.py | 2 +- etl/epc/Pipeline.py | 32 ++++++++++++++++---------------- etl/epc/property_change_app.py | 18 +++++++++--------- 3 files changed, 26 insertions(+), 26 deletions(-) diff --git a/etl/epc/DataProcessor.py b/etl/epc/DataProcessor.py index 801a9456..4987a23e 100644 --- a/etl/epc/DataProcessor.py +++ b/etl/epc/DataProcessor.py @@ -135,6 +135,7 @@ class EPCDataProcessor: self.fill_invalid_constituency_fields(ignore_step=ignore_step) self.make_cleaning_averages(ignore_step=ignore_step) + self.add_local_authority_to_cleaning_average(ignore_step=ignore_step) # TODO: check if this has impact on training dataset cleaned_data = self.apply_averages_cleaning( @@ -152,7 +153,6 @@ class EPCDataProcessor: self.data = self.data if cleaned_data is None else cleaned_data - self.add_local_authority_to_cleaning_average(ignore_step=ignore_step) self.cast_cleaning_averages_columns_to_lower(ignore_step=ignore_step) self.cast_data_columns_to_lower() diff --git a/etl/epc/Pipeline.py b/etl/epc/Pipeline.py index ea484e56..168f7f71 100644 --- a/etl/epc/Pipeline.py +++ b/etl/epc/Pipeline.py @@ -123,7 +123,7 @@ class EPCPipeline: data = self.epc_data_processor.data - + epc_records = [EPCRecord(**x, run_mode="newdata") for x in data.to_dict(orient='records')] @@ -137,23 +137,23 @@ class EPCPipeline: for directory in tqdm(self.directories): self.process_directory(directory) - # save_dataframe_to_s3_parquet( - # df=self.compiled_dataset, - # bucket_name=self.epc_bucket_name, - # file_key=self.epc_compiled_dataset_key, - # ) + save_dataframe_to_s3_parquet( + df=self.compiled_dataset, + bucket_name=self.epc_bucket_name, + file_key=self.epc_compiled_dataset_key, + ) - # save_dataframe_to_s3_parquet( - # df=pd.concat(self.compiled_all_equal_rows), - # bucket_name=self.epc_bucket_name, - # file_key=self.epc_all_equal_rows_key, - # ) + save_dataframe_to_s3_parquet( + df=pd.DataFrame(self.compiled_all_equal_rows), + bucket_name=self.epc_bucket_name, + file_key=self.epc_all_equal_rows_key, + ) - # save_dataframe_to_s3_parquet( - # df=pd.concat(self.compiled_cleaning_averages), - # bucket_name=self.epc_bucket_name, - # file_key=self.epc_cleaning_dataset_key, - # ) + save_dataframe_to_s3_parquet( + df=pd.concat(self.compiled_cleaning_averages), + bucket_name=self.epc_bucket_name, + file_key=self.epc_cleaning_dataset_key, + ) def process_directory(self, directory: Path): """ diff --git a/etl/epc/property_change_app.py b/etl/epc/property_change_app.py index 3dc6e39b..5486ee99 100644 --- a/etl/epc/property_change_app.py +++ b/etl/epc/property_change_app.py @@ -18,16 +18,16 @@ def main(): epc_pipeline.run() # For testing - dataset_df = epc_pipeline.compiled_dataset - dataset_df.to_parquet("refactor_datasets/dataset.parquet") - pd.DataFrame(epc_pipeline.compiled_all_equal_rows).to_parquet("refactor_datasets/all_equal_rows.parquet") - pd.concat(epc_pipeline.compiled_cleaning_averages).to_parquet("refactor_datasets/cleaning_averages.parquet") + # dataset_df = epc_pipeline.compiled_dataset + # dataset_df.to_parquet("refactor_datasets/dataset.parquet") + # pd.DataFrame(epc_pipeline.compiled_all_equal_rows).to_parquet("refactor_datasets/all_equal_rows.parquet") + # pd.concat(epc_pipeline.compiled_cleaning_averages).to_parquet("refactor_datasets/cleaning_averages.parquet") - from utils.s3 import read_dataframe_from_s3_parquet - dataset = read_dataframe_from_s3_parquet( - bucket_name="retrofit-data-dev", - file_key="sap_change_model/dataset_test.parquet", - ) + # from utils.s3 import read_dataframe_from_s3_parquet + # dataset = read_dataframe_from_s3_parquet( + # bucket_name="retrofit-data-dev", + # file_key="sap_change_model/dataset_test.parquet", + # ) if __name__ == "__main__": From 0c1ce64789938b97a0dfb687e3fda9dab0e5504d Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Thu, 18 Jan 2024 14:32:24 +0000 Subject: [PATCH 204/526] removed temp code and fixed bug where cleaning data is lower case in newdata mode --- backend/app/plan/router.py | 22 ++++------- etl/epc/DataProcessor.py | 81 ++++++++++++++++++++------------------ 2 files changed, 50 insertions(+), 53 deletions(-) diff --git a/backend/app/plan/router.py b/backend/app/plan/router.py index 8c199145..b3d1c623 100644 --- a/backend/app/plan/router.py +++ b/backend/app/plan/router.py @@ -28,8 +28,6 @@ from backend.app.utils import epc_to_sap_lower_bound, read_csv_from_s3, sap_to_e from backend.ml_models.api import ModelApi from backend.Property import Property -from etl.epc.DataProcessor import EPCDataProcessor -from etl.epc.settings import COLUMNS_TO_MERGE_ON from etl.solar.SolarPhotoSupply import SolarPhotoSupply from recommendations.optimiser.CostOptimiser import CostOptimiser @@ -68,7 +66,6 @@ async def trigger_plan(body: PlanTriggerRequest): ) input_properties = [] - for config in plan_input: # We validate each record in the file. If the record is NOT valid, we need to handle this accordingly @@ -96,13 +93,16 @@ async def trigger_plan(body: PlanTriggerRequest): ) epc_records = { - 'original_epc': epc_searcher.newest_epc, - 'full_sap_epc': epc_searcher.full_sap_epc, - 'old_data': epc_searcher.older_epcs, + 'original_epc': epc_searcher.newest_epc.copy(), + 'full_sap_epc': epc_searcher.full_sap_epc.copy(), + 'old_data': epc_searcher.older_epcs.copy(), } - prepared_epc = EPCRecord(epc_records=epc_records, run_mode="newdata", - cleaning_data=cleaning_data) # This uses all the epc records to clean the data + prepared_epc = EPCRecord( + epc_records=epc_records, + run_mode="newdata", + cleaning_data=cleaning_data + ) input_properties.append( Property( @@ -173,8 +173,6 @@ async def trigger_plan(body: PlanTriggerRequest): "carbon_change_predictions": get_settings().CARBON_PREDICTIONS_BUCKET } ) - # all_predictions["heat_demand_predictions"]= all_predictions["sap_change_predictions"].copy() - # all_predictions["carbon_change_predictions"] = all_predictions["sap_change_predictions"].copy() # Insert the predictions into the recommendations and run the optimiser logger.info("Optimising recommendations") @@ -310,10 +308,6 @@ async def trigger_plan(body: PlanTriggerRequest): } ) - # all_combined_predictions["heat_demand_predictions"]= all_combined_predictions["sap_change_predictions"].copy() - # all_combined_predictions["carbon_change_predictions"] = all_combined_predictions[ - # "sap_change_predictions"].copy() - # We update the carbon and heat demand predictions for property_id, property_recommendations in recommendations.items(): combined_heat_demand = all_combined_predictions["heat_demand_predictions"] diff --git a/etl/epc/DataProcessor.py b/etl/epc/DataProcessor.py index 801a9456..5dfeea1a 100644 --- a/etl/epc/DataProcessor.py +++ b/etl/epc/DataProcessor.py @@ -33,7 +33,6 @@ NO_SUFFIX_COMPONENT_COLS = [x.lower() for x in NO_SUFFIX_COMPONENT_COLS] ENDING_SUFFIX_COMPONENT_COLS = [x.lower() for x in ENDING_SUFFIX_COMPONENT_COLS] POTENTIAL_COLUMNS = [x.lower() for x in POTENTIAL_COLUMNS] - # These lookups are used to clean the construction age band construction_age_bounds_map = { "England and Wales: before 1900": {"l": 0, "u": 1899}, @@ -74,7 +73,8 @@ class EPCDataProcessor: Handle data loading and data preprocessing """ - def __init__(self, data: pd.DataFrame | None = None, cleaning_averages: pd.DataFrame | None = None, run_mode: str = "training", violation_mode: bool = False) -> None: + def __init__(self, data: pd.DataFrame | None = None, cleaning_averages: pd.DataFrame | None = None, + run_mode: str = "training", violation_mode: bool = False) -> None: """ :param filepath: If specified, is the physical location of the data :param is_newdata: Indicates if we are processing new, testing data. @@ -82,23 +82,23 @@ class EPCDataProcessor: want to perform, such as confine_data() """ is_data_a_dataframe = isinstance(data, pd.DataFrame) - self.data : pd.DataFrame = data if is_data_a_dataframe else pd.DataFrame() + self.data: pd.DataFrame = data if is_data_a_dataframe else pd.DataFrame() is_cleaning_averages_a_dataframe = isinstance(cleaning_averages, pd.DataFrame) - self.cleaning_averages : pd.DataFrame = cleaning_averages if is_cleaning_averages_a_dataframe else pd.DataFrame() + self.cleaning_averages: pd.DataFrame = cleaning_averages if is_cleaning_averages_a_dataframe else pd.DataFrame() # FOR NOW IF VIOLATION MODE IS ON, WE USE RUN MODE AS NEWDATA self.violation_mode = violation_mode if run_mode not in ["training", "newdata"]: raise ValueError("Run mode must be either training or newdata") self.run_mode = run_mode if not violation_mode else "newdata" - + def prepare_data(self, filepath: Path | str | None = None) -> None: """ Given the run mode, we apply the relevant pipeline steps Ignore step is used to highlight which steps are not needed in newdata """ - + ignore_step = True if self.run_mode == "newdata" else False if filepath is not None: @@ -126,7 +126,7 @@ class EPCDataProcessor: self.fill_na_fields() self.sort_data_by_uprn_lodgement_date(ignore_step=ignore_step) - + # Final re-casting after data transformed and prepared self.recast_df_columns(column_mappings=COLUMNTYPES, auto_subset_columns=True) self.recast_all_data(column_mappings=COLUMNTYPES, auto_subset_columns=True) @@ -137,32 +137,36 @@ class EPCDataProcessor: self.make_cleaning_averages(ignore_step=ignore_step) # TODO: check if this has impact on training dataset - cleaned_data = self.apply_averages_cleaning( - data_to_clean=self.data, - cleaning_data=self.cleaning_averages, - cols_to_merge_on=['PROPERTY_TYPE', 'BUILT_FORM', 'CONSTRUCTION_AGE_BAND', 'LOCAL_AUTHORITY'], - colnames=["NUMBER_HABITABLE_ROOMS", "NUMBER_HEATED_ROOMS"], - ) + # cleaned_data = self.apply_averages_cleaning( + # data_to_clean=self.data, + # cleaning_data=self.cleaning_averages, + # cols_to_merge_on=['PROPERTY_TYPE', 'BUILT_FORM', 'CONSTRUCTION_AGE_BAND', 'LOCAL_AUTHORITY'], + # colnames=["NUMBER_HABITABLE_ROOMS", "NUMBER_HEATED_ROOMS"], + # ) + + # When running in newdata mode, cleaning_averages has lower cases so we co-erce back to upper + cleaning_averages = self.cleaning_averages.copy() + if self.run_mode == "newdata": + cleaning_averages.columns = cleaning_averages.columns.str.upper() cleaned_data = self.apply_averages_cleaning( - data_to_clean=self.data, - cleaning_data=self.cleaning_averages, - cols_to_merge_on=COLUMNS_TO_MERGE_ON, - ) - + data_to_clean=self.data, + cleaning_data=cleaning_averages, + cols_to_merge_on=COLUMNS_TO_MERGE_ON, + ) + self.data = self.data if cleaned_data is None else cleaned_data self.add_local_authority_to_cleaning_average(ignore_step=ignore_step) self.cast_cleaning_averages_columns_to_lower(ignore_step=ignore_step) self.cast_data_columns_to_lower() - def cast_data_columns_to_lower(self): """ Convert all columns names to lower """ self.data.columns = self.data.columns.str.lower() - + def cast_cleaning_averages_columns_to_lower(self, ignore_step: bool = False): """ Convert all column names to lower @@ -171,9 +175,9 @@ class EPCDataProcessor: if ignore_step: return - + self.cleaning_averages.columns = self.cleaning_averages.columns.str.lower() - + def add_local_authority_to_cleaning_average(self, ignore_step: bool = False): """ Add the Local authority column to the cleaning averages @@ -182,7 +186,7 @@ class EPCDataProcessor: if ignore_step: return - + self.cleaning_averages["LOCAL_AUTHORITY"] = self.data["LOCAL_AUTHORITY"].values[0] def fill_invalid_constituency_fields(self, ignore_step: bool = False): @@ -195,7 +199,7 @@ class EPCDataProcessor: if ignore_step: return - + self.data = self.data.fillna({"CONSTITUENCY": self.data["CONSTITUENCY"].mode().values[0]}) def sort_data_by_uprn_lodgement_date(self, ignore_step: bool = False): @@ -218,7 +222,6 @@ class EPCDataProcessor: for col in convert_to_lower: self.data[col] = self.data[col].str.lower() - def remap_build_form(self): """ Remap build form to standard values @@ -226,7 +229,6 @@ class EPCDataProcessor: """ self.data["BUILT_FORM"] = self.data["BUILT_FORM"].replace(BUILT_FORM_REMAP) - def remap_anomalies(self): """ Remap anomalies to None @@ -258,7 +260,7 @@ class EPCDataProcessor: if ignore_step: return - + self.data["FLOOR_LEVEL"] = self.data["FLOOR_LEVEL"].replace(FLOOR_LEVEL_MAP) def load_data(self, filepath, low_memory=False) -> None: @@ -404,7 +406,8 @@ class EPCDataProcessor: # self.data = self.data.sort_values(["UPRN", "LODGEMENT_DATE"], ascending=True) # # Final re-casting after data transformed and prepared - # coltypes = {k: v for k, v in COLUMNTYPES.items() if k in self.data.columns} if self.is_newdata else COLUMNTYPES + # coltypes = {k: v for k, v in COLUMNTYPES.items() if k in self.data.columns} if self.is_newdata else + # COLUMNTYPES # for k, v in coltypes.items(): # self.data[k] = self.data[k].astype(v) # self.data = self.data.astype(coltypes) @@ -423,7 +426,7 @@ class EPCDataProcessor: # cleaning_data=self.cleaning_averages, # cols_to_merge_on=COLUMNS_TO_MERGE_ON # ) - + # self.cleaning_averages["LOCAL_AUTHORITY"] = self.data["LOCAL_AUTHORITY"].values[0] # self.cleaning_averages.columns = self.cleaning_averages.columns.str.lower() @@ -431,7 +434,6 @@ class EPCDataProcessor: # return self.data, self.cleaning_averages - def na_remapping(self, auto_subset_columns: bool = False): fill_na_map_apply = { @@ -578,7 +580,7 @@ class EPCDataProcessor: if self.violation_mode: # TODO: to fill in return - + if ignore_step: return @@ -604,15 +606,15 @@ class EPCDataProcessor: self.data[key] = self.data[key].astype(value) else: self.data[key] = self.data[key].astype(values) - + def recast_all_data(self, column_mappings: dict, auto_subset_columns: bool = False) -> None: """ Using a dictionary to recast all columns at once - """ + """ if auto_subset_columns: column_mappings = {k: v for k, v in column_mappings.items() if k in self.data.columns} - + self.data = self.data.astype(column_mappings) def confine_data(self, ignore_step: bool = False): @@ -642,7 +644,7 @@ class EPCDataProcessor: violation_missing_hotwater_description, violation_missing_roof_description, violation_invalid_property_type, - ], axis=1, + ], axis=1, keys=[ "violation_uprn_missing", "violation_old_lodgment_date", @@ -654,8 +656,8 @@ class EPCDataProcessor: "violation_missing_roof_description", "violation_invalid_property_type", ] - ) - + ) + self.data = pd.concat([self.data, violation_df], axis=1) if ignore_step: @@ -703,7 +705,7 @@ class EPCDataProcessor: if self.violation_mode: # TODO: return - + if ignore_step: return @@ -721,7 +723,8 @@ class EPCDataProcessor: self.data["PHOTO_SUPPLY"] = self.data["PHOTO_SUPPLY"].fillna(0) @staticmethod - def apply_averages_cleaning(data_to_clean, cleaning_data, cols_to_merge_on, colnames=None, ignore_step: bool = False): + def apply_averages_cleaning(data_to_clean, cleaning_data, cols_to_merge_on, colnames=None, + ignore_step: bool = False): """ Clean the input DataFrame using averages from a cleaning DataFrame. From 1699102cd9a6b5357e04390980899fb8e4b29178 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Thu, 18 Jan 2024 15:12:00 +0000 Subject: [PATCH 205/526] added tests for clean_ventilation --- backend/app/plan/router.py | 26 +++++++++ etl/epc/Record.py | 7 ++- etl/epc/tests/test_epcrecord.py | 98 +++++++++++++++++++++++++++++++++ 3 files changed, 129 insertions(+), 2 deletions(-) create mode 100644 etl/epc/tests/test_epcrecord.py diff --git a/backend/app/plan/router.py b/backend/app/plan/router.py index b3d1c623..d869bcb5 100644 --- a/backend/app/plan/router.py +++ b/backend/app/plan/router.py @@ -164,6 +164,32 @@ async def trigger_plan(body: PlanTriggerRequest): model_api = ModelApi(portfolio_id=body.portfolio_id, timestamp=created_at) + recommendations_scoring_data.head() + z = recommendations_scoring_data[recommendations_scoring_data["uprn"] == 100070505235].copy() + z = z[z["roof_thermal_transmittance"] != z["roof_thermal_transmittance_ending"]] + z["roof_thermal_transmittance_ending"] = 0.4 + z["roof_energy_eff_ending"] = "Average" + + now = model_api.predict_all( + df=z, + bucket=get_settings().DATA_BUCKET, + prediction_buckets={ + "sap_change_predictions": get_settings().SAP_PREDICTIONS_BUCKET, + "heat_demand_predictions": get_settings().HEAT_PREDICTIONS_BUCKET, + "carbon_change_predictions": get_settings().CARBON_PREDICTIONS_BUCKET + } + ) + + now["sap_change_predictions"] + input_properties[1].data["mechanical-ventilation"] + # id predictions property_id recommendation_id + # 0 3696+9 56.3 3696 9 + # 1 3696+10 56.8 3696 10 + # 2 3696+11 56.3 3696 11 + # 3 3696+12 56.8 3696 12 + # With good rather than very good + now["sap_change_predictions"] + all_predictions = model_api.predict_all( df=recommendations_scoring_data, bucket=get_settings().DATA_BUCKET, diff --git a/etl/epc/Record.py b/etl/epc/Record.py index 70586749..f1dde43e 100644 --- a/etl/epc/Record.py +++ b/etl/epc/Record.py @@ -635,8 +635,11 @@ class EPCRecord: This method will clean the ventilation, if empty or invalid """ self.prepared_epc['mechanical-ventilation'] = None if ( - self.mechanical_ventilation == "" or self.mechanical_ventilation in DATA_ANOMALY_MATCHES) else ( - self.mechanical_ventilation) + (self.prepared_epc['mechanical-ventilation'] == "") or + (self.prepared_epc['mechanical-ventilation'] in DATA_ANOMALY_MATCHES) + ) else ( + self.prepared_epc['mechanical-ventilation'] + ) def _field_validation(self): """ diff --git a/etl/epc/tests/test_epcrecord.py b/etl/epc/tests/test_epcrecord.py new file mode 100644 index 00000000..f55bd30a --- /dev/null +++ b/etl/epc/tests/test_epcrecord.py @@ -0,0 +1,98 @@ +import pytest +from utils.s3 import read_dataframe_from_s3_parquet +from etl.epc.Record import EPCRecord +from unittest.mock import Mock + + +class TestEpcRecord: + + @pytest.fixture() + def cleaning_data(self): + cleaning_data = read_dataframe_from_s3_parquet( + bucket_name="retrofit-data-dev", file_key="sap_change_model/cleaning_dataset.parquet", + ) + + return cleaning_data + + @pytest.fixture() + def epc_records_1(self): + epc_records_1 = { + 'original_epc': { + 'low-energy-fixed-light-count': '', 'address': '139 School Road, Hall Green', + 'uprn-source': 'Energy Assessor', 'floor-height': '2.6', 'heating-cost-potential': '1138', + 'unheated-corridor-length': '', 'hot-water-cost-potential': '175', + 'construction-age-band': 'England and Wales: 1900-1929', 'potential-energy-rating': 'B', + 'mainheat-energy-eff': 'Good', 'windows-env-eff': 'Average', 'lighting-energy-eff': 'Very Good', + 'environment-impact-potential': '82', 'glazed-type': 'double glazing, unknown install date', + 'heating-cost-current': '2711', 'address3': '', + 'mainheatcont-description': 'Programmer, TRVs and bypass', + 'sheating-energy-eff': 'N/A', 'property-type': 'House', 'local-authority-label': 'Birmingham', + 'fixed-lighting-outlets-count': '11', 'energy-tariff': 'Single', 'mechanical-ventilation': 'natural', + 'hot-water-cost-current': '310', 'county': '', 'postcode': 'B28 8JF', 'solar-water-heating-flag': 'N', + 'constituency': 'E14000562', 'co2-emissions-potential': '2.0', 'number-heated-rooms': '4', + 'floor-description': 'Suspended, no insulation (assumed)', 'energy-consumption-potential': '107', + 'local-authority': 'E08000025', 'built-form': 'Semi-Detached', 'number-open-fireplaces': '0', + 'windows-description': 'Fully double glazed', 'glazed-area': 'Normal', 'inspection-date': '2023-07-05', + 'mains-gas-flag': 'Y', 'co2-emiss-curr-per-floor-area': '65', 'address1': '139 School Road', + 'heat-loss-corridor': '', 'flat-storey-count': '', 'constituency-label': 'Birmingham, Hall Green', + 'roof-energy-eff': 'Average', 'total-floor-area': '103.0', 'building-reference-number': '10004697322', + 'environment-impact-current': '43', 'co2-emissions-current': '6.7', + 'roof-description': 'Pitched, 100 mm loft insulation', 'floor-energy-eff': 'N/A', + 'number-habitable-rooms': '4', 'address2': 'Hall Green', 'hot-water-env-eff': 'Good', + 'posttown': 'BIRMINGHAM', 'mainheatc-energy-eff': 'Average', 'main-fuel': 'mains gas (not community)', + 'lighting-env-eff': 'Very Good', 'windows-energy-eff': 'Average', 'floor-env-eff': 'N/A', + 'sheating-env-eff': 'N/A', 'lighting-description': 'Low energy lighting in 82% of fixed outlets', + 'roof-env-eff': 'Average', 'walls-energy-eff': 'Very Poor', 'photo-supply': '0.0', + 'lighting-cost-potential': '182', 'mainheat-env-eff': 'Good', 'multi-glaze-proportion': '100', + 'main-heating-controls': '', 'lodgement-datetime': '2023-07-13 08:23:07', 'flat-top-storey': '', + 'current-energy-rating': 'E', 'secondheat-description': 'None', 'walls-env-eff': 'Very Poor', + 'transaction-type': 'rental', 'uprn': '100070505235', 'current-energy-efficiency': '51', + 'energy-consumption-current': '366', 'mainheat-description': 'Boiler and radiators, mains gas', + 'lighting-cost-current': '182', 'lodgement-date': '2023-07-13', 'extension-count': '0', + 'mainheatc-env-eff': 'Average', + 'lmk-key': 'c1d137711da433fb3cced74b1a6848da8bbc1159d076455d26d7b4668982601e', + 'wind-turbine-count': '0', + 'tenure': 'Rented (social)', 'floor-level': '', 'potential-energy-efficiency': '84', + 'hot-water-energy-eff': 'Good', 'low-energy-lighting': '82', + 'walls-description': 'Solid brick, as built, no insulation (assumed)', + 'hotwater-description': 'From main system'}, 'full_sap_epc': {}, 'old_data': [] + } + return epc_records_1 + + def test_clean_mechanical_ventilation(self, cleaning_data, epc_records_1): + # We have an epc with Natural ventilation - the resulting epc should also have natural ventulation + + record = EPCRecord(cleaning_data=cleaning_data) + record.prepared_epc = { + "mechanical-ventilation": "natural" + } + record._clean_ventilation() + + assert record.prepared_epc["mechanical-ventilation"] == "natural" + + record2 = EPCRecord(cleaning_data=cleaning_data) + record2.prepared_epc = { + "mechanical-ventilation": "" + } + + record2._clean_ventilation() + + assert record2.prepared_epc["mechanical-ventilation"] is None + + record3 = EPCRecord(cleaning_data=cleaning_data) + record3.prepared_epc = { + "mechanical-ventilation": None + } + + record3._clean_ventilation() + + assert record3.prepared_epc["mechanical-ventilation"] is None + + record4 = EPCRecord(cleaning_data=cleaning_data) + record4.prepared_epc = { + "mechanical-ventilation": "INVALID" + } + + record4._clean_ventilation() + + assert record4.prepared_epc["mechanical-ventilation"] is None From dbe13586da99dbbd28a126eb02537c8987564faf Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Thu, 18 Jan 2024 18:10:24 +0000 Subject: [PATCH 206/526] creating unit tests, added test cases for router --- backend/Property.py | 5 +- backend/app/plan/router.py | 36 ++------ backend/ml_models/Valuation.py | 10 +- etl/epc/DataProcessor.py | 5 +- etl/epc/Record.py | 43 ++++++--- etl/epc/tests/test_epcrecord.py | 158 +++++++++++++++++++++++++++++++- 6 files changed, 207 insertions(+), 50 deletions(-) diff --git a/backend/Property.py b/backend/Property.py index 98325b15..c1055eb9 100644 --- a/backend/Property.py +++ b/backend/Property.py @@ -222,7 +222,10 @@ class Property(Definitions): proposed_depth = min(valid_numeric_values, key=lambda x: abs(x - proposed_depth)) recommendation_record["roof_insulation_thickness_ending"] = str(proposed_depth) - recommendation_record["roof_energy_eff_ending"] = "Very Good" + if recommendation["type"] == "loft_insulation": + recommendation_record["roof_energy_eff_ending"] = "Good" + else: + recommendation_record["roof_energy_eff_ending"] = "Very Good" else: # Fill missing roof u-values - this fill is not based on recommended upgrades if recommendation_record["roof_thermal_transmittance_ending"] is None: diff --git a/backend/app/plan/router.py b/backend/app/plan/router.py index d869bcb5..521ec615 100644 --- a/backend/app/plan/router.py +++ b/backend/app/plan/router.py @@ -65,6 +65,16 @@ async def trigger_plan(body: PlanTriggerRequest): bucket_name=get_settings().DATA_BUCKET, file_key="sap_change_model/cleaning_dataset.parquet", ) + # For testing: + # plan_input.extend( + # [ + # {'address': '73 Long Chaulden', 'postcode': 'HP1 2HX', 'Notes': ''}, + # {'address': '8 Lindlings', 'postcode': 'HP1 2HA', 'Notes': ''}, + # {'address': '44 Lindlings', 'postcode': 'HP1 2HE', 'Notes': ''}, + # {'address': '46 Chaulden Terrace', 'postcode': 'HP1 2AN', 'Notes': ''}, + # ] + # ) + input_properties = [] for config in plan_input: # We validate each record in the file. If the record is NOT valid, we need to handle this accordingly @@ -164,32 +174,6 @@ async def trigger_plan(body: PlanTriggerRequest): model_api = ModelApi(portfolio_id=body.portfolio_id, timestamp=created_at) - recommendations_scoring_data.head() - z = recommendations_scoring_data[recommendations_scoring_data["uprn"] == 100070505235].copy() - z = z[z["roof_thermal_transmittance"] != z["roof_thermal_transmittance_ending"]] - z["roof_thermal_transmittance_ending"] = 0.4 - z["roof_energy_eff_ending"] = "Average" - - now = model_api.predict_all( - df=z, - bucket=get_settings().DATA_BUCKET, - prediction_buckets={ - "sap_change_predictions": get_settings().SAP_PREDICTIONS_BUCKET, - "heat_demand_predictions": get_settings().HEAT_PREDICTIONS_BUCKET, - "carbon_change_predictions": get_settings().CARBON_PREDICTIONS_BUCKET - } - ) - - now["sap_change_predictions"] - input_properties[1].data["mechanical-ventilation"] - # id predictions property_id recommendation_id - # 0 3696+9 56.3 3696 9 - # 1 3696+10 56.8 3696 10 - # 2 3696+11 56.3 3696 11 - # 3 3696+12 56.8 3696 12 - # With good rather than very good - now["sap_change_predictions"] - all_predictions = model_api.predict_all( df=recommendations_scoring_data, bucket=get_settings().DATA_BUCKET, diff --git a/backend/ml_models/Valuation.py b/backend/ml_models/Valuation.py index 018b4678..dadef9a9 100644 --- a/backend/ml_models/Valuation.py +++ b/backend/ml_models/Valuation.py @@ -96,11 +96,11 @@ class PropertyValuation: if not value: return { - "current_value": None, - "lower_bound_increased_value": None, - "upper_bound_increased_value": None, - "average_increased_value": None, - "average_increase": None + "current_value": 0, + "lower_bound_increased_value": 0, + "upper_bound_increased_value": 0, + "average_increased_value": 0, + "average_increase": 0 } current_epc = property_instance.data["current-energy-rating"] diff --git a/etl/epc/DataProcessor.py b/etl/epc/DataProcessor.py index 5dfeea1a..4c4651a4 100644 --- a/etl/epc/DataProcessor.py +++ b/etl/epc/DataProcessor.py @@ -723,8 +723,9 @@ class EPCDataProcessor: self.data["PHOTO_SUPPLY"] = self.data["PHOTO_SUPPLY"].fillna(0) @staticmethod - def apply_averages_cleaning(data_to_clean, cleaning_data, cols_to_merge_on, colnames=None, - ignore_step: bool = False): + def apply_averages_cleaning( + data_to_clean, cleaning_data, cols_to_merge_on, colnames=None, ignore_step: bool = False + ): """ Clean the input DataFrame using averages from a cleaning DataFrame. diff --git a/etl/epc/Record.py b/etl/epc/Record.py index f1dde43e..4474baf1 100644 --- a/etl/epc/Record.py +++ b/etl/epc/Record.py @@ -380,13 +380,21 @@ class EPCRecord: else: # Use averages from the cleaning dataset, based on the property type, built form, construction age # band and local authority + + cleaning_data = self.cleaning_data.copy() + # When running in new-data more, the columns will have been coerced to lower case so we push them + # back to upper case + if self.run_mode == "newdata": + cleaning_data.columns = [x.upper() for x in cleaning_data.columns] + cleaned_property_data = EPCDataProcessor.apply_averages_cleaning( data_to_clean=self.epc_record_as_dataframe("prepared_epc", replace_empty_string=True), cleaning_data=self.cleaning_data, cols_to_merge_on=['PROPERTY_TYPE', 'BUILT_FORM', 'CONSTRUCTION_AGE_BAND', 'LOCAL_AUTHORITY'], ) self.prepared_epc["fixed-lighting-outlets-count"] = round( - cleaned_property_data["FIXED_LIGHTING_OUTLETS_COUNT"].values[0]) + cleaned_property_data["FIXED_LIGHTING_OUTLETS_COUNT"].values[0] + ) else: self.prepared_epc["fixed-lighting-outlets-count"] = float(self.prepared_epc["fixed-lighting-outlets-count"]) @@ -460,14 +468,14 @@ class EPCRecord: if not self.prepared_epc: raise ValueError("EPC Recrod doesn not contain epc data") - map = { + mains_gas_map = { "Y": True, "N": False, } self.prepared_epc["mains-gas-flag"] = None if ( self.prepared_epc["mains-gas-flag"] == "" or self.prepared_epc["mains-gas-flag"] in DATA_ANOMALY_MATCHES - ) else map[self.prepared_epc["mains-gas-flag"]] + ) else mains_gas_map[self.prepared_epc["mains-gas-flag"]] def _clean_heat_loss_corridor(self): """ @@ -476,15 +484,18 @@ class EPCRecord: if not self.prepared_epc: raise ValueError("EPC Recrod doesn not contain epc data") - map = { - "no corridor": False, - "unheated corridor": True, - "heated corridor": False - } + valid_values = [ + "no corridor", + "unheated corridor", + "heated corridor" + ] - self.prepared_epc["heat-loss-corridor"] = False if self.prepared_epc[ - "heat-loss-corridor"] in DATA_ANOMALY_MATCHES else map[ - self.prepared_epc["heat-loss-corridor"]] + self.prepared_epc["heat-loss-corridor"] = ( + "no corridor" if self.prepared_epc["heat-loss-corridor"] in DATA_ANOMALY_MATCHES else + self.prepared_epc["heat-loss-corridor"] + ) + if self.prepared_epc["heat-loss-corridor"] not in valid_values: + self.prepared_epc["heat-loss-corridor"] = "no corridor" self.prepared_epc["unheated-corridor-length"] = ( float(self.prepared_epc["unheated-corridor-length"]) if @@ -572,11 +583,13 @@ class EPCRecord: if not self.prepared_epc: raise ValueError("EPC Recrod doesn not contain epc data") - self.prepared_epc['built-form'] = BUILT_FORM_REMAP.get(self.prepared_epc["built-form"], - self.prepared_epc["built-form"]) + self.prepared_epc['built-form'] = BUILT_FORM_REMAP.get( + self.prepared_epc["built-form"], self.prepared_epc["built-form"] + ) + if self.prepared_epc["built-form"] in DATA_ANOMALY_MATCHES: - if self.prepared_epc["property-type"] == "Flat": - self.prepared_epc["built-form"] = "Semi-Detached" + if self.prepared_epc["property-type"] in ["Flat", "Maisonette"]: + self.prepared_epc["built-form"] = "End-Terrace" def _clean_age_band(self): """ diff --git a/etl/epc/tests/test_epcrecord.py b/etl/epc/tests/test_epcrecord.py index f55bd30a..06b8ed06 100644 --- a/etl/epc/tests/test_epcrecord.py +++ b/etl/epc/tests/test_epcrecord.py @@ -1,7 +1,8 @@ import pytest from utils.s3 import read_dataframe_from_s3_parquet from etl.epc.Record import EPCRecord -from unittest.mock import Mock +from etl.epc.settings import DATA_ANOMALY_MATCHES +import random class TestEpcRecord: @@ -96,3 +97,158 @@ class TestEpcRecord: record4._clean_ventilation() assert record4.prepared_epc["mechanical-ventilation"] is None + + def test_clean_energy_valid_values(self, cleaning_data, epc_records_1): + record = EPCRecord(cleaning_data=cleaning_data) + record.prepared_epc = { + "energy-consumption-current": "200", + "co2-emissions-current": "5.5" + } + record._clean_energy() + + assert record.prepared_epc["energy-consumption-current"] == 200.0 + assert record.prepared_epc["co2-emissions-current"] == 5.5 + + def test_clean_energy_empty_values(self, cleaning_data, epc_records_1): + # We cannot have invalid values so this should raise an exception + record = EPCRecord(cleaning_data=cleaning_data) + record.prepared_epc = { + "energy-consumption-current": "", + "co2-emissions-current": "" + } + record._clean_energy() + + with pytest.raises(ValueError): + record._clean_energy() + + def test_clean_built_form_valid_remap(self, cleaning_data, epc_records_1): + record = EPCRecord(cleaning_data=cleaning_data) + # Assuming "Semi" should be remapped to "Semi-Detached" + record.prepared_epc = { + "built-form": "Semi-Detached", + "property-type": "Flat" # Assuming this affects the remapping + } + record._clean_built_form() + + assert record.prepared_epc["built-form"] == "Semi-Detached" + + def test_clean_built_form_anomaly(self, cleaning_data, epc_records_1): + record = EPCRecord(cleaning_data=cleaning_data) + + record.prepared_epc = { + "built-form": "", + "property-type": "Flat" + } + record._clean_built_form() + + assert record.prepared_epc["built-form"] == "End-Terrace" + + def test_clean_floor_area_valid(self, cleaning_data): + record = EPCRecord(cleaning_data=cleaning_data) + record.prepared_epc = { + "total-floor-area": "120.5" + } + record._clean_floor_area() + + assert record.prepared_epc["total-floor-area"] == 120.5 + + def test_clean_floor_area_empty(self, cleaning_data): + record = EPCRecord(cleaning_data=cleaning_data) + record.prepared_epc = { + "total-floor-area": "" + } + # We have no known case of missing floor area + with pytest.raises(ValueError): + record._clean_floor_area() + + def test_clean_heat_loss_corridor_valid(self, cleaning_data): + record = EPCRecord(cleaning_data=cleaning_data) + record.prepared_epc = { + "heat-loss-corridor": "unheated corridor", + "unheated-corridor-length": "" + } + record._clean_heat_loss_corridor() + + assert record.prepared_epc["heat-loss-corridor"] == "unheated corridor" + + def test_clean_heat_loss_corridor_anomaly(self, cleaning_data): + record = EPCRecord(cleaning_data=cleaning_data) + # Assuming "InvalidCorridor" is an anomaly + record.prepared_epc = { + "heat-loss-corridor": "InvalidCorridor", + "unheated-corridor-length": "" + } + record._clean_heat_loss_corridor() + + assert record.prepared_epc["heat-loss-corridor"] == "no corridor" + + def test_clean_mains_gas_valid(self, cleaning_data): + record = EPCRecord(cleaning_data=cleaning_data) + record.prepared_epc = { + "mains-gas-flag": "Y" + } + record._clean_mains_gas() + + assert record.prepared_epc["mains-gas-flag"] is True + + def test_clean_mains_gas_anomaly(self, cleaning_data): + record = EPCRecord(cleaning_data=cleaning_data) + record.prepared_epc = { + "mains-gas-flag": "InvalidValue" + } + # It should always be Y or N or an anomally value + with pytest.raises(ValueError): + record._clean_mains_gas() + + record = EPCRecord(cleaning_data=cleaning_data) + record.prepared_epc = { + "mains-gas-flag": random.choice(list(DATA_ANOMALY_MATCHES)) + } + record._clean_mains_gas() + + assert record.prepared_epc["mains-gas-flag"] is None + + def test_clean_solar_hot_water_valid(self, cleaning_data): + record = EPCRecord(cleaning_data=cleaning_data) + record.prepared_epc = { + "solar-water-heating-flag": "Y" + } + record._clean_solar_hot_water() + + assert record.prepared_epc["solar-water-heating-flag"] is True + + def test_clean_solar_hot_water_empty(self, cleaning_data): + record = EPCRecord(cleaning_data=cleaning_data) + record.prepared_epc = { + "solar-water-heating-flag": "" + } + record._clean_solar_hot_water() + + assert record.prepared_epc["solar-water-heating-flag"] is None + + def test_clean_number_lighting_outlets_valid(self, cleaning_data, epc_records_1): + record = EPCRecord(cleaning_data=cleaning_data, epc_records=epc_records_1) + record.prepared_epc = { + "fixed-lighting-outlets-count": "5" + } + record._clean_number_lighting_outlets() + + assert record.prepared_epc["fixed-lighting-outlets-count"] == 5.0 + + def test_clean_number_lighting_outlets_empty(self, cleaning_data, epc_records_1): + record = EPCRecord(cleaning_data=cleaning_data) + record.run_mode = "newdata" + record.prepared_epc = { + "fixed-lighting-outlets-count": "", + "property-type": "Flat", + "built-form": "Semi-Detached", + "construction-age-band": "England and Wales: 1900-1929", + "local-authority": "E08000025", + "number-habitable-rooms": "4", + "number-heated-rooms": "4", + } + record.old_data = [] + record.full_sap_epc = [] + record._clean_number_lighting_outlets() + + assert record.prepared_epc["fixed-lighting-outlets-count"] == 8.0 From 86dd6efdc387a2b6c67a9244db3382d6fe7896ab Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Fri, 19 Jan 2024 11:27:51 +0000 Subject: [PATCH 207/526] fixed bug in lighting outlets cleaning --- backend/app/plan/router.py | 20 ++++++++++++-------- etl/epc/Record.py | 2 +- 2 files changed, 13 insertions(+), 9 deletions(-) diff --git a/backend/app/plan/router.py b/backend/app/plan/router.py index 521ec615..d3471e8f 100644 --- a/backend/app/plan/router.py +++ b/backend/app/plan/router.py @@ -66,14 +66,18 @@ async def trigger_plan(body: PlanTriggerRequest): ) # For testing: - # plan_input.extend( - # [ - # {'address': '73 Long Chaulden', 'postcode': 'HP1 2HX', 'Notes': ''}, - # {'address': '8 Lindlings', 'postcode': 'HP1 2HA', 'Notes': ''}, - # {'address': '44 Lindlings', 'postcode': 'HP1 2HE', 'Notes': ''}, - # {'address': '46 Chaulden Terrace', 'postcode': 'HP1 2AN', 'Notes': ''}, - # ] - # ) + plan_input.extend( + [ + {'address': '73 Long Chaulden', 'postcode': 'HP1 2HX', 'Notes': ''}, + {'address': '8 Lindlings', 'postcode': 'HP1 2HA', 'Notes': ''}, + {'address': '44 Lindlings', 'postcode': 'HP1 2HE', 'Notes': ''}, + {'address': '46 Chaulden Terrace', 'postcode': 'HP1 2AN', 'Notes': ''}, + {'address': '4, Heather Shaw', 'postcode': 'BA14 7JS', 'Notes': ''}, + {'address': '16 Glastonbury Road', 'postcode': 'M32 9PE', 'Notes': ''}, + {'address': '31 Loddon Way', 'postcode': 'BA15 1HG', 'Notes': ''}, + {'address': '62 Pearmain Drive', 'postcode': 'NG3 3DJ', 'Notes': ''}, + ] + ) input_properties = [] for config in plan_input: diff --git a/etl/epc/Record.py b/etl/epc/Record.py index 4474baf1..cdbafd7e 100644 --- a/etl/epc/Record.py +++ b/etl/epc/Record.py @@ -389,7 +389,7 @@ class EPCRecord: cleaned_property_data = EPCDataProcessor.apply_averages_cleaning( data_to_clean=self.epc_record_as_dataframe("prepared_epc", replace_empty_string=True), - cleaning_data=self.cleaning_data, + cleaning_data=cleaning_data, cols_to_merge_on=['PROPERTY_TYPE', 'BUILT_FORM', 'CONSTRUCTION_AGE_BAND', 'LOCAL_AUTHORITY'], ) self.prepared_epc["fixed-lighting-outlets-count"] = round( From e7c0b9169cffafef4898131d4e3fc0e4e4421827 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Fri, 19 Jan 2024 11:34:09 +0000 Subject: [PATCH 208/526] fixing datetime bug in SearchEpc --- backend/SearchEpc.py | 2 +- backend/app/plan/router.py | 24 ++++++++++++------------ 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/backend/SearchEpc.py b/backend/SearchEpc.py index d69d8d86..4f6fd33d 100644 --- a/backend/SearchEpc.py +++ b/backend/SearchEpc.py @@ -472,7 +472,7 @@ class SearchEpc: if not epc_data.empty: # Further processing of the EPC data - epc_data['lodgement-datetime'] = pd.to_datetime(epc_data['lodgement-datetime'], format='mixed') + epc_data['lodgement-datetime'] = pd.to_datetime(epc_data['lodgement-datetime'], errors='coerce') epc_data = epc_data.sort_values("lodgement-datetime", ascending=False).groupby("uprn").head(1) epc_data["house_number"] = epc_data["address"].apply(lambda add1: self.get_house_number(add1)) epc_data["numeric_house_number"] = epc_data["house_number"].apply( diff --git a/backend/app/plan/router.py b/backend/app/plan/router.py index d3471e8f..39944fe3 100644 --- a/backend/app/plan/router.py +++ b/backend/app/plan/router.py @@ -66,18 +66,18 @@ async def trigger_plan(body: PlanTriggerRequest): ) # For testing: - plan_input.extend( - [ - {'address': '73 Long Chaulden', 'postcode': 'HP1 2HX', 'Notes': ''}, - {'address': '8 Lindlings', 'postcode': 'HP1 2HA', 'Notes': ''}, - {'address': '44 Lindlings', 'postcode': 'HP1 2HE', 'Notes': ''}, - {'address': '46 Chaulden Terrace', 'postcode': 'HP1 2AN', 'Notes': ''}, - {'address': '4, Heather Shaw', 'postcode': 'BA14 7JS', 'Notes': ''}, - {'address': '16 Glastonbury Road', 'postcode': 'M32 9PE', 'Notes': ''}, - {'address': '31 Loddon Way', 'postcode': 'BA15 1HG', 'Notes': ''}, - {'address': '62 Pearmain Drive', 'postcode': 'NG3 3DJ', 'Notes': ''}, - ] - ) + # plan_input.extend( + # [ + # {'address': '73 Long Chaulden', 'postcode': 'HP1 2HX', 'Notes': ''}, + # {'address': '8 Lindlings', 'postcode': 'HP1 2HA', 'Notes': ''}, + # {'address': '44 Lindlings', 'postcode': 'HP1 2HE', 'Notes': ''}, + # {'address': '46 Chaulden Terrace', 'postcode': 'HP1 2AN', 'Notes': ''}, + # {'address': '4, Heather Shaw', 'postcode': 'BA14 7JS', 'Notes': ''}, + # {'address': '16 Glastonbury Road', 'postcode': 'M32 9PE', 'Notes': ''}, + # {'address': '31 Loddon Way', 'postcode': 'BA15 1HG', 'Notes': ''}, + # {'address': '62 Pearmain Drive', 'postcode': 'NG3 3DJ', 'Notes': ''}, + # ] + # ) input_properties = [] for config in plan_input: From 804e8fb720e473b746e4491a0a5e0700fc486d90 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Fri, 19 Jan 2024 12:00:47 +0000 Subject: [PATCH 209/526] handling Epc Record when the EPC has been interpolates --- etl/epc/Record.py | 30 +++++----- etl/epc/tests/test_epcrecord.py | 99 +++++++++++++++++++++++++++++++++ 2 files changed, 115 insertions(+), 14 deletions(-) diff --git a/etl/epc/Record.py b/etl/epc/Record.py index cdbafd7e..2535f204 100644 --- a/etl/epc/Record.py +++ b/etl/epc/Record.py @@ -349,7 +349,7 @@ class EPCRecord: self.prepared_epc["floor-level"] = ( FLOOR_LEVEL_MAP[self.prepared_epc["floor-level"]] if - self.prepared_epc["floor-level"] not in DATA_ANOMALY_MATCHES else None + self.prepared_epc["floor-level"] not in list(DATA_ANOMALY_MATCHES) + ["", None] else None ) def _clean_number_lighting_outlets(self): @@ -499,7 +499,7 @@ class EPCRecord: self.prepared_epc["unheated-corridor-length"] = ( float(self.prepared_epc["unheated-corridor-length"]) if - self.prepared_epc["unheated-corridor-length"] != "" else None + self.prepared_epc["unheated-corridor-length"] not in ["", None] else None ) def _clean_count_variables(self): @@ -509,18 +509,18 @@ class EPCRecord: if not self.prepared_epc: raise ValueError("EPC Record doesn not contain epc data") - fields = { - "number_of_open_fireplaces": "number-open-fireplaces", - "number_of_extensions": "extension-count", - "number_of_storeys": "flat-storey-count", - "number_of_rooms": "number-habitable-rooms", - } + fields = [ + "number-open-fireplaces", + "extension-count", + "flat-storey-count", + "number-habitable-rooms" + ] - null_attributes = ["number_of_storeys", "number_of_rooms"] + null_attributes = ["flat-storey-count", "number-habitable-rooms"] - for attribute, epc_field in fields.items(): - value = self.prepared_epc[epc_field] - if value == "" or value in DATA_ANOMALY_MATCHES: + for attribute in fields: + value = self.prepared_epc[attribute] + if value in ["", None] or value in DATA_ANOMALY_MATCHES: if attribute in null_attributes: value = None else: @@ -537,8 +537,9 @@ class EPCRecord: if not self.prepared_epc: raise ValueError("EPC Recrod doesn not contain epc data") - self.prepared_epc['wind-turbine-count'] = int(self.prepared_epc['wind-turbine-count']) if self.prepared_epc[ - 'wind-turbine-count'] != "" else None + self.prepared_epc['wind-turbine-count'] = int( + self.prepared_epc['wind-turbine-count'] + ) if self.prepared_epc['wind-turbine-count'] not in ["", None] else None def _clean_solar_hot_water(self): """ @@ -551,6 +552,7 @@ class EPCRecord: "Y": True, "N": False, "": None, + None: None } self.prepared_epc['solar-water-heating-flag'] = value_map[self.prepared_epc['solar-water-heating-flag']] diff --git a/etl/epc/tests/test_epcrecord.py b/etl/epc/tests/test_epcrecord.py index 06b8ed06..48ad5148 100644 --- a/etl/epc/tests/test_epcrecord.py +++ b/etl/epc/tests/test_epcrecord.py @@ -171,6 +171,16 @@ class TestEpcRecord: assert record.prepared_epc["heat-loss-corridor"] == "unheated corridor" + record = EPCRecord(cleaning_data=cleaning_data) + record.prepared_epc = { + "heat-loss-corridor": "unheated corridor", + "unheated-corridor-length": None + } + record._clean_heat_loss_corridor() + + assert record.prepared_epc["heat-loss-corridor"] == "unheated corridor" + assert record.prepared_epc["unheated-corridor-length"] is None + def test_clean_heat_loss_corridor_anomaly(self, cleaning_data): record = EPCRecord(cleaning_data=cleaning_data) # Assuming "InvalidCorridor" is an anomaly @@ -252,3 +262,92 @@ class TestEpcRecord: record._clean_number_lighting_outlets() assert record.prepared_epc["fixed-lighting-outlets-count"] == 8.0 + + def test_clean_count_variables(self, cleaning_data): + record = EPCRecord(cleaning_data=cleaning_data) + + record.prepared_epc = { + "number-open-fireplaces": "1", + "extension-count": None, + "flat-storey-count": "", + "number-habitable-rooms": "INVALID!", + } + + record._clean_count_variables() + + assert record.prepared_epc["number-open-fireplaces"] == 1.0 + assert record.prepared_epc["extension-count"] == 0 + assert record.prepared_epc["flat-storey-count"] is None + assert record.prepared_epc["number-habitable-rooms"] is None + + def test_clean_floor_level(self, cleaning_data): + record = EPCRecord(cleaning_data=cleaning_data) + + record.prepared_epc = { + "floor-level": "1", + } + + record._clean_floor_level() + + assert record.prepared_epc["floor-level"] == 1.0 + + record = EPCRecord(cleaning_data=cleaning_data) + + record.prepared_epc = { + "floor-level": "", + } + + record._clean_floor_level() + + assert record.prepared_epc["floor-level"] is None + + record = EPCRecord(cleaning_data=cleaning_data) + + record.prepared_epc = { + "floor-level": None, + } + + record._clean_floor_level() + + assert record.prepared_epc["floor-level"] is None + + def test_clean_solar_hot_water(self, cleaning_data): + record = EPCRecord(cleaning_data=cleaning_data) + + record.prepared_epc = { + "solar-water-heating-flag": "Y", + } + + record._clean_solar_hot_water() + + assert record.prepared_epc["solar-water-heating-flag"] is True + + record = EPCRecord(cleaning_data=cleaning_data) + + record.prepared_epc = { + "solar-water-heating-flag": "N", + } + + record._clean_solar_hot_water() + + assert record.prepared_epc["solar-water-heating-flag"] is False + + record = EPCRecord(cleaning_data=cleaning_data) + + record.prepared_epc = { + "solar-water-heating-flag": "", + } + + record._clean_solar_hot_water() + + assert record.prepared_epc["solar-water-heating-flag"] is None + + record = EPCRecord(cleaning_data=cleaning_data) + + record.prepared_epc = { + "solar-water-heating-flag": None, + } + + record._clean_solar_hot_water() + + assert record.prepared_epc["solar-water-heating-flag"] is None From 3cf13c651cb1f16297df94a63a161663f20b490b Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Fri, 19 Jan 2024 13:36:36 +0000 Subject: [PATCH 210/526] changing some of the gets to [] gets in Property class --- backend/Property.py | 22 +++++++++++----------- backend/app/plan/router.py | 2 ++ 2 files changed, 13 insertions(+), 11 deletions(-) diff --git a/backend/Property.py b/backend/Property.py index c1055eb9..736ab4f1 100644 --- a/backend/Property.py +++ b/backend/Property.py @@ -68,7 +68,7 @@ class Property(Definitions): self.in_conservation_area, self.is_listed, self.is_heritage = None, None, None self.restricted_measures = False self.year_built = epc_record.get("year_built") - self.number_of_rooms = epc_record.prepared_epc.get("number_of_rooms") + self.number_of_rooms = epc_record.prepared_epc["number_heated_rooms"] self.age_band = epc_record.get("age_band") self.construction_age_band = epc_record.get("construction_age_band") self.number_of_floors = epc_record.get("number_of_floors") @@ -81,7 +81,7 @@ class Property(Definitions): "co2_emissions": epc_record.get("co2_emissions_current"), } self.ventilation = { - "ventilation": epc_record.get("mechanical_ventilation"), + "ventilation": epc_record.prepared_epc["mechanical_ventilation"], } self.solar_pv = { "solar_pv": epc_record.get("photo_supply"), @@ -90,28 +90,28 @@ class Property(Definitions): "solar_hot_water": epc_record.get("solar_water_heating_flag"), } self.wind_turbine = { - "wind_turbine": epc_record.prepared_epc.get("wind_turbine_count"), + "wind_turbine": epc_record.prepared_epc["wind_turbine_count"], } self.number_of_open_fireplaces = { - "number_of_open_fireplaces": epc_record.prepared_epc.get("number_of_open_fireplaces"), + "number_of_open_fireplaces": epc_record.prepared_epc["number_open_fireplaces"], } self.number_of_extensions = { - "number_of_extensions": epc_record.prepared_epc.get("number_of_extensions"), + "number_of_extensions": epc_record.prepared_epc["extension_count"], } self.number_of_storeys = { - "number_of_storeys": epc_record.prepared_epc.get("number_of_storeys"), + "number_of_storeys": epc_record.prepared_epc["flat_storey_count"], } self.heat_loss_corridor = { - "heat_loss_corridor": epc_record.prepared_epc.get("heat_loss_corridor"), - "length": epc_record.prepared_epc.get("unheated_corridor_length"), + "heat_loss_corridor": epc_record.prepared_epc["heat_loss_corridor"], + "length": epc_record.prepared_epc["unheated_corridor_length"], } - self.mains_gas = epc_record.prepared_epc.get('mains_gas_flag') - self.floor_height = epc_record.prepared_epc.get('floor_height') + self.mains_gas = epc_record.prepared_epc['mains_gas_flag'] + self.floor_height = epc_record.prepared_epc['floor_height'] self.insulation_wall_area = None self.floor_area = epc_record.prepared_epc.get('total_floor_area') self.pitched_roof_area = None self.insulation_floor_area = None - self.number_lighting_outlets = epc_record.prepared_epc.get("fixed_lighting_outlets_count") + self.number_lighting_outlets = epc_record.prepared_epc["fixed_lighting_outlets_count"] self.floor_level = None self.number_of_windows = None self.solar_pv_roof_area = None diff --git a/backend/app/plan/router.py b/backend/app/plan/router.py index 39944fe3..6e9c4f50 100644 --- a/backend/app/plan/router.py +++ b/backend/app/plan/router.py @@ -159,6 +159,8 @@ async def trigger_plan(body: PlanTriggerRequest): recommender = Recommendations(property_instance=p, materials=materials) property_recommendations = recommender.recommend() + recommender.wall_recomender.estimated_u_value + if not property_recommendations: continue From 807e6d5047dcfce2bb1a2e4bf9f548ebc419b01a Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Fri, 19 Jan 2024 16:28:35 +0000 Subject: [PATCH 211/526] align processing of solar hot water flag between engine and model --- backend/app/plan/router.py | 16 ---------------- etl/epc/Record.py | 8 ++++---- recommendations/FloorRecommendations.py | 1 + recommendations/RoofRecommendations.py | 1 + 4 files changed, 6 insertions(+), 20 deletions(-) diff --git a/backend/app/plan/router.py b/backend/app/plan/router.py index 6e9c4f50..b3d1c623 100644 --- a/backend/app/plan/router.py +++ b/backend/app/plan/router.py @@ -65,20 +65,6 @@ async def trigger_plan(body: PlanTriggerRequest): bucket_name=get_settings().DATA_BUCKET, file_key="sap_change_model/cleaning_dataset.parquet", ) - # For testing: - # plan_input.extend( - # [ - # {'address': '73 Long Chaulden', 'postcode': 'HP1 2HX', 'Notes': ''}, - # {'address': '8 Lindlings', 'postcode': 'HP1 2HA', 'Notes': ''}, - # {'address': '44 Lindlings', 'postcode': 'HP1 2HE', 'Notes': ''}, - # {'address': '46 Chaulden Terrace', 'postcode': 'HP1 2AN', 'Notes': ''}, - # {'address': '4, Heather Shaw', 'postcode': 'BA14 7JS', 'Notes': ''}, - # {'address': '16 Glastonbury Road', 'postcode': 'M32 9PE', 'Notes': ''}, - # {'address': '31 Loddon Way', 'postcode': 'BA15 1HG', 'Notes': ''}, - # {'address': '62 Pearmain Drive', 'postcode': 'NG3 3DJ', 'Notes': ''}, - # ] - # ) - input_properties = [] for config in plan_input: # We validate each record in the file. If the record is NOT valid, we need to handle this accordingly @@ -159,8 +145,6 @@ async def trigger_plan(body: PlanTriggerRequest): recommender = Recommendations(property_instance=p, materials=materials) property_recommendations = recommender.recommend() - recommender.wall_recomender.estimated_u_value - if not property_recommendations: continue diff --git a/etl/epc/Record.py b/etl/epc/Record.py index 2535f204..1c6d694d 100644 --- a/etl/epc/Record.py +++ b/etl/epc/Record.py @@ -549,10 +549,10 @@ class EPCRecord: raise ValueError("EPC Recrod doesn not contain epc data") value_map = { - "Y": True, - "N": False, - "": None, - None: None + "Y": "Y", + "N": "N", + "": "N", + None: "N" } self.prepared_epc['solar-water-heating-flag'] = value_map[self.prepared_epc['solar-water-heating-flag']] diff --git a/recommendations/FloorRecommendations.py b/recommendations/FloorRecommendations.py index a246c8cb..2f568264 100644 --- a/recommendations/FloorRecommendations.py +++ b/recommendations/FloorRecommendations.py @@ -109,6 +109,7 @@ class FloorRecommendations(Definitions): insulation_thickness=self.property.floor["insulation_thickness"], wall_type=self.property.wall_type ) + self.estimated_u_value = u_value if u_value < self.BUILDING_REGULATIONS_PART_L_MAX_U_VALUE: diff --git a/recommendations/RoofRecommendations.py b/recommendations/RoofRecommendations.py index dc1aff3f..0bbfd69d 100644 --- a/recommendations/RoofRecommendations.py +++ b/recommendations/RoofRecommendations.py @@ -91,6 +91,7 @@ class RoofRecommendations: raise NotImplementedError("Implement me") u_value = get_roof_u_value(**{**self.property.roof, "age_band": self.property.age_band}) + self.estimated_u_value = u_value if u_value <= self.BUILDING_REGULATIONS_PART_L_MAX_U_VALUE: # The Roof is already compliant From 24709b98d604fe93edfcbb959c728dbf9dac60f7 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Fri, 19 Jan 2024 16:51:49 +0000 Subject: [PATCH 212/526] Added more wall u-value tests --- .idea/Model.iml | 2 +- .idea/misc.xml | 2 +- backend/Property.py | 6 ++-- etl/epc/Record.py | 19 +++++++++++++ .../tests/test_data/wall_uvalue_test_cases.py | 28 +++++++++++++++++++ 5 files changed, 53 insertions(+), 4 deletions(-) diff --git a/.idea/Model.iml b/.idea/Model.iml index 4413bb06..b0f9c00d 100644 --- a/.idea/Model.iml +++ b/.idea/Model.iml @@ -7,7 +7,7 @@ - + diff --git a/.idea/misc.xml b/.idea/misc.xml index 6f308057..1122b380 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -3,7 +3,7 @@ - + diff --git a/backend/Property.py b/backend/Property.py index 736ab4f1..ee496552 100644 --- a/backend/Property.py +++ b/backend/Property.py @@ -88,6 +88,7 @@ class Property(Definitions): } self.solar_hot_water = { "solar_hot_water": epc_record.get("solar_water_heating_flag"), + "solar_hot_water_boolean": epc_record.get("solar_water_heating_flag_bool"), } self.wind_turbine = { "wind_turbine": epc_record.prepared_epc["wind_turbine_count"], @@ -104,6 +105,7 @@ class Property(Definitions): self.heat_loss_corridor = { "heat_loss_corridor": epc_record.prepared_epc["heat_loss_corridor"], "length": epc_record.prepared_epc["unheated_corridor_length"], + "heat_loss_corridor_boolean": epc_record.get("heat_loss_corridor_bool"), } self.mains_gas = epc_record.prepared_epc['mains_gas_flag'] self.floor_height = epc_record.prepared_epc['floor_height'] @@ -436,10 +438,10 @@ class Property(Definitions): "mainfuel": self.main_fuel["clean_description"], "ventilation": self.ventilation["ventilation"], "solar_pv": self.solar_pv["solar_pv"], - "solar_hot_water": self.solar_hot_water["solar_hot_water"], + "solar_hot_water": self.solar_hot_water["solar_hot_water_boolean"], "wind_turbine": self.wind_turbine["wind_turbine"], "floor_height": self.floor_height, - "heat_loss_corridor": self.heat_loss_corridor["heat_loss_corridor"], + "heat_loss_corridor": self.heat_loss_corridor["heat_loss_corridor_boolean"], "unheated_corridor_length": self.heat_loss_corridor["length"], "number_of_open_fireplaces": self.number_of_open_fireplaces["number_of_open_fireplaces"], "number_of_extensions": self.number_of_extensions["number_of_extensions"], diff --git a/etl/epc/Record.py b/etl/epc/Record.py index 1c6d694d..6fb4d5d9 100644 --- a/etl/epc/Record.py +++ b/etl/epc/Record.py @@ -102,6 +102,8 @@ class EPCRecord: year_built: int = None number_of_floors: int = None number_of_open_fireplaces: int = None + heat_loss_corridor_bool: bool = None + solar_water_heating_flag_bool: bool = None def __post_init__(self): # We can have validation and cleaning steps for each of the fields @@ -490,6 +492,12 @@ class EPCRecord: "heated corridor" ] + boolean_map = { + "no corridor": False, + "unheated corridor": True, + "heated corridor": False + } + self.prepared_epc["heat-loss-corridor"] = ( "no corridor" if self.prepared_epc["heat-loss-corridor"] in DATA_ANOMALY_MATCHES else self.prepared_epc["heat-loss-corridor"] @@ -502,6 +510,9 @@ class EPCRecord: self.prepared_epc["unheated-corridor-length"] not in ["", None] else None ) + # We create boolean versions of heat-loss-corridor + self.heat_loss_corridor_bool = boolean_map[self.prepared_epc["heat-loss-corridor"]] + def _clean_count_variables(self): """ This method will clean the count variables, if empty or invalid @@ -555,8 +566,16 @@ class EPCRecord: None: "N" } + boolean_map = { + "Y": True, + "N": False, + } + self.prepared_epc['solar-water-heating-flag'] = value_map[self.prepared_epc['solar-water-heating-flag']] + # Create a boolean version for storage in the database + self.solar_water_heating_flag_bool = boolean_map[self.prepared_epc['solar-water-heating-flag']] + def _clean_solar_pv(self): """ This method will clean the solar pv, if empty or invalid diff --git a/recommendations/tests/test_data/wall_uvalue_test_cases.py b/recommendations/tests/test_data/wall_uvalue_test_cases.py index e0c6ebe3..87f1ad3f 100644 --- a/recommendations/tests/test_data/wall_uvalue_test_cases.py +++ b/recommendations/tests/test_data/wall_uvalue_test_cases.py @@ -76,5 +76,33 @@ wall_uvalue_test_cases = [ "is_granite_or_whinstone": False, "is_sandstone_or_limestone": False, "uvalue": 0 + }, + { + "clean_description": "Cavity wall, as built, insulated", + "age_band": "F", + "is_granite_or_whinstone": False, + "is_sandstone_or_limestone": False, + "uvalue": 0.4 + }, + { + "clean_description": "Cavity wall, as built, insulated", + "age_band": "D", + "is_granite_or_whinstone": False, + "is_sandstone_or_limestone": False, + "uvalue": 0.7 + }, + { + "clean_description": "Cavity wall, filled cavity", + "age_band": "E", + "is_granite_or_whinstone": False, + "is_sandstone_or_limestone": False, + "uvalue": 0.7 + }, + { + "clean_description": "Cavity wall, as built, no insulation", + "age_band": "E", + "is_granite_or_whinstone": False, + "is_sandstone_or_limestone": False, + "uvalue": 1.5 } ] From 80c35d42df60e365f3a93218f6bb2affa0650dab Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Fri, 19 Jan 2024 17:11:06 +0000 Subject: [PATCH 213/526] Added floor uvalue cases --- .../test_data/floor_uvalue_test_cases.py | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/recommendations/tests/test_data/floor_uvalue_test_cases.py b/recommendations/tests/test_data/floor_uvalue_test_cases.py index 91d3814f..7104fd9d 100644 --- a/recommendations/tests/test_data/floor_uvalue_test_cases.py +++ b/recommendations/tests/test_data/floor_uvalue_test_cases.py @@ -29,4 +29,34 @@ floor_uvalue_test_cases = [ "insulation_thickness": None, "expected": ValueError, }, + # 16 Glastonbury road EPR - the EPR has 0.71 due to the property having 320mm wall thickness, but default being 250 + { + "floor_type": "suspended", + "area": 34.5, + "perimeter": 16.7, + "age_band": "D", + "wall_type": "cavity", + "insulation_thickness": None, + "expected": 0.72, + }, + # 31 Loddon Way - the EPR has 0.5 due to the property having 320mm wall thickness, but default being 250 + { + "floor_type": "solid", + "area": 52.08, + "perimeter": 16.2, + "age_band": "E", + "wall_type": "cavity", + "insulation_thickness": None, + "expected": 0.52, + }, + # 62 Pearmain Drive + { + "floor_type": "solid", + "area": 38.64, + "perimeter": 18.1, + "age_band": "E", + "wall_type": "cavity", + "insulation_thickness": None, + "expected": 0.69, + }, ] From 43f3169e0c77b15203800dfe15ea8747649fbad7 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Fri, 19 Jan 2024 17:25:53 +0000 Subject: [PATCH 214/526] corrected unit tests: --- backend/tests/test_sap_model_prep.py | 1000 -------------------------- etl/epc/tests/test_epcrecord.py | 23 +- 2 files changed, 14 insertions(+), 1009 deletions(-) delete mode 100644 backend/tests/test_sap_model_prep.py diff --git a/backend/tests/test_sap_model_prep.py b/backend/tests/test_sap_model_prep.py deleted file mode 100644 index 89c436ce..00000000 --- a/backend/tests/test_sap_model_prep.py +++ /dev/null @@ -1,1000 +0,0 @@ -from backend.Property import Property -from etl.epc.DataProcessor import DataProcessor -from backend.app.plan.utils import create_recommendation_scoring_data, get_cleaned -from etl.epc.settings import COLUMNS_TO_MERGE_ON -import pandas as pd -import pytest -import msgpack - -from utils.s3 import read_dataframe_from_s3_parquet, read_from_s3 - - -# Handy code for selecting testing data -# import pickle -# -# with open("sap_dataset.pickle", "rb") as f: -# sap_change_dataset = pickle.load(f) -# -# search_from = sap_change_dataset[ -# (sap_change_dataset["walls_thermal_transmittance_ENDING"] == sap_change_dataset["walls_thermal_transmittance"]) & -# sap_change_dataset["is_to_unheated_space"] -# ] -# search_from = search_from[ -# (search_from["roof_thermal_transmittance_ENDING"] == search_from["roof_thermal_transmittance"]) & -# (search_from["floor_thermal_transmittance_ENDING"] != search_from["floor_thermal_transmittance"]) & -# (search_from["MECHANICAL_VENTILATION_ENDING"] == search_from["MECHANICAL_VENTILATION_STARTING"]) & -# (search_from["SECONDHEAT_DESCRIPTION_ENDING"] == search_from["SECONDHEAT_DESCRIPTION_STARTING"]) & -# (search_from["GLAZED_TYPE_ENDING"] == search_from["GLAZED_TYPE_STARTING"]) -# ] -# -# # Find a record where the only difference is cavity wall getting filled -# ending_cols = [c for c in search_from.columns if "_ENDING" in c] -# -# ignore = [ -# "SAP_ENDING", "HEAT_DEMAND_ENDING", "CARBON_ENDING", "TRANSACTION_TYPE_ENDING", "FLOOR_HEIGHT_ENDING", -# "DAYS_TO_ENDING", "TOTAL_FLOOR_AREA_ENDING" -# ] -# -# ending_cols = [c for c in ending_cols if c not in ignore] -# -# for _, row in tqdm(search_from.iterrows(), total=search_from.shape[0]): -# -# same = True -# starting_cols = [] -# for c in ending_cols: -# -# starting_col = c.replace("_ENDING", "") -# if starting_col not in search_from.columns: -# starting_col = c.replace("_ENDING", "_STARTING") -# if starting_col not in search_from.columns: -# raise Exception("something went wrong") -# -# starting_cols.append(starting_col) -# -# # We want them to be different -# if c == "floor_thermal_transmittance_ENDING": -# if (row[c] == row[starting_col]) | (row[starting_col] != "natural"): -# same = False -# break -# else: -# continue -# -# # We now check if the starting and ending values are the same -# if row[c] != row[starting_col]: -# same = False -# break -# -# if same: -# raise Exception("We found one!") -# -# fixed_cols = [c for c in search_from.columns if c not in starting_cols + ending_cols] -# -# import pandas as pd -# -# start = row[["SAP_STARTING"] + starting_cols] -# start.index = [c.replace("_STARTING", "") for c in start.index] -# end = row[["SAP_ENDING"] + ending_cols] -# end.index = [c.replace("_ENDING", "") for c in end.index] -# start["type"] = "starting" -# end["type"] = "ending" -# -# compare = pd.concat([start, end], axis=1) -# -# ending_lmk = "1252008839062019090910572351658131" -# starting_lmk = "1252008819542014122308482236142128" -# -# client = EpcClient(auth_token=EPC_AUTH_TOKEN) -# result = client.domestic.search(params={"address": "Flat 14 Charles House, Freemens Way", "postcode": "CT14 9DL"}) -# starting_epc = [x for x in result["rows"] if x["lmk-key"] == starting_lmk][0] -# ending_epc = [x for x in result["rows"] if x["lmk-key"] == ending_lmk][0] - - -# with open( -# os.path.abspath(os.path.dirname(__file__)) + "/backend/tests/test_data/cleaned.pickle", "rb" -# ) as f: -# cleaned = pickle.load(f) - -# with open( -# os.path.abspath(os.path.dirname(__file__)) + "/backend/tests/test_data/cleaning_data.pickle", "rb" -# ) as f: -# cleaning_data = pickle.load(f) - -# TODO: Need to do floors, suspended and solid and to unheated space - - -class TestSapModelPrep: - - @pytest.fixture - def cleaning_data(self): - return read_dataframe_from_s3_parquet( - bucket_name="retrofit-data-dev", file_key="sap_change_model/cleaning_dataset.parquet", - ) - - @pytest.fixture - def cleaned(self): - cleaned = read_from_s3( - s3_file_name="cleaned_epc_data/cleaned.bson", - bucket_name="retrofit-data-dev" - ) - - cleaned = msgpack.unpackb(cleaned, raw=False) - return cleaned - - @pytest.fixture - def photo_supply_lookup(self): - photo_supply_lookup = read_dataframe_from_s3_parquet( - bucket_name="retrofit-data-dev", file_key="solar_pv_supply/photo_supply_lookup.parquet", - ) - return photo_supply_lookup - - @pytest.fixture - def floor_area_decile_thresholds(self): - floor_area_decile_thresholds = read_dataframe_from_s3_parquet( - bucket_name="retrofit-data-dev", file_key="solar_pv_supply/floor_area_decile_thresholds.parquet", - ) - return floor_area_decile_thresholds - - def test_fill_cavity_wall(self, cleaned, cleaning_data, photo_supply_lookup, floor_area_decile_thresholds): - """ - We ensure that the process that prepares the data in the engine code results in the same data as - the model is trained on - """ - - # This is an actual starting EPC - starting_epc = { - 'low-energy-fixed-light-count': '', 'address': '26, Vicarage Lane, Eaton', - 'uprn-source': 'Address Matched', 'floor-height': '2.39', 'heating-cost-potential': '942', - 'unheated-corridor-length': '', 'hot-water-cost-potential': '97', - 'construction-age-band': 'England and Wales: 1967-1975', 'potential-energy-rating': 'D', - 'mainheat-energy-eff': 'Average', 'windows-env-eff': 'Good', 'lighting-energy-eff': 'Average', - 'environment-impact-potential': '53', - 'glazed-type': 'double glazing installed during or after 2002', 'heating-cost-current': '1475', - 'address3': '', 'mainheatcont-description': 'Programmer, room thermostat and TRVs', - 'sheating-energy-eff': 'N/A', 'property-type': 'House', 'local-authority-label': 'Melton', - 'fixed-lighting-outlets-count': '', 'energy-tariff': 'Single', - 'mechanical-ventilation': 'natural', 'hot-water-cost-current': '96', 'county': 'Leicestershire', - 'postcode': 'NG32 1SP', 'solar-water-heating-flag': 'Y', 'constituency': 'E14000909', - 'co2-emissions-potential': '5.7', 'number-heated-rooms': '7', - 'floor-description': 'Suspended, no insulation (assumed)', - 'energy-consumption-potential': '177', 'local-authority': 'E07000133', 'built-form': 'Detached', - 'number-open-fireplaces': '1', 'windows-description': 'Fully double glazed', - 'glazed-area': 'Normal', 'inspection-date': '2016-09-22', 'mains-gas-flag': 'N', - 'co2-emiss-curr-per-floor-area': '87', 'address1': '26, Vicarage Lane', - 'heat-loss-corridor': 'NO DATA!', 'flat-storey-count': '', - 'constituency-label': 'Rutland and Melton', 'roof-energy-eff': 'Very Poor', - 'total-floor-area': '116.0', 'building-reference-number': '4940047478', - 'environment-impact-current': '29', 'co2-emissions-current': '10.0', - 'roof-description': 'Pitched, limited insulation (assumed)', 'floor-energy-eff': 'NO DATA!', - 'number-habitable-rooms': '7', 'address2': 'Eaton', 'hot-water-env-eff': 'Good', - 'posttown': 'GRANTHAM', 'mainheatc-energy-eff': 'Good', 'main-fuel': 'oil (not community)', - 'lighting-env-eff': 'Average', 'windows-energy-eff': 'Good', 'floor-env-eff': 'N/A', - 'sheating-env-eff': 'N/A', - 'lighting-description': 'Low energy lighting in 31% of fixed outlets', - 'roof-env-eff': 'Very Poor', 'walls-energy-eff': 'Poor', 'photo-supply': '', - 'lighting-cost-potential': '69', 'mainheat-env-eff': 'Good', 'multi-glaze-proportion': '100', - 'main-heating-controls': '2106', 'lodgement-datetime': '2016-09-23 20:29:01', - 'flat-top-storey': '', 'current-energy-rating': 'F', - 'secondheat-description': 'Room heaters, dual fuel (mineral and wood)', 'walls-env-eff': 'Poor', - 'transaction-type': 'marketed sale', 'uprn': '100030534042', 'current-energy-efficiency': '34', - 'energy-consumption-current': '343', 'mainheat-description': 'Boiler and radiators, oil', - 'lighting-cost-current': '117', 'lodgement-date': '2016-09-23', 'extension-count': '2', - 'mainheatc-env-eff': 'Good', 'lmk-key': '1481856849902016092320290148762028', - 'wind-turbine-count': '0', 'tenure': 'owner-occupied', 'floor-level': 'NODATA!', - 'potential-energy-efficiency': '64', 'hot-water-energy-eff': 'Good', - 'low-energy-lighting': '31', - 'walls-description': 'Cavity wall, as built, no insulation (assumed)', - 'hotwater-description': 'From main system, plus solar' - } - - # This is the training data as we prepare it in the engine - # This is an actual record from the training data - row = { - 'UPRN': '100030534042', 'RDSAP_CHANGE': 12, 'HEAT_DEMAND_CHANGE': -72, - 'CARBON_CHANGE': -2.0999999999999996, 'SAP_STARTING': 34, 'SAP_ENDING': 46, 'HEAT_DEMAND_STARTING': 343, - 'HEAT_DEMAND_ENDING': 271, 'CARBON_STARTING': 10.0, 'CARBON_ENDING': 7.9, 'PROPERTY_TYPE': 'House', - 'BUILT_FORM': 'Detached', 'CONSTITUENCY': 'E14000909', 'NUMBER_HABITABLE_ROOMS': 7.0, - 'NUMBER_HEATED_ROOMS': 7.0, 'FIXED_LIGHTING_OUTLETS_COUNT': 21.0, - 'CONSTRUCTION_AGE_BAND': 'England and Wales: 1967-1975', 'TRANSACTION_TYPE_STARTING': 'marketed sale', - 'MECHANICAL_VENTILATION_STARTING': 'natural', - 'SECONDHEAT_DESCRIPTION_STARTING': 'Room heaters, dual fuel (mineral and wood)', - 'ENERGY_TARIFF_STARTING': 'Single', 'SOLAR_WATER_HEATING_FLAG_STARTING': 'Y', - 'PHOTO_SUPPLY_STARTING': 0.0, 'GLAZED_TYPE_STARTING': 'double glazing installed during or after 2002', - 'MULTI_GLAZE_PROPORTION_STARTING': 100.0, 'LOW_ENERGY_LIGHTING_STARTING': 31.0, - 'NUMBER_OPEN_FIREPLACES_STARTING': 1.0, 'EXTENSION_COUNT_STARTING': 2.0, - 'TOTAL_FLOOR_AREA_STARTING': 116.0, 'FLOOR_HEIGHT_STARTING': 2.39, - 'TRANSACTION_TYPE_ENDING': 'marketed sale', 'MECHANICAL_VENTILATION_ENDING': 'natural', - 'SECONDHEAT_DESCRIPTION_ENDING': 'Room heaters, dual fuel (mineral and wood)', - 'ENERGY_TARIFF_ENDING': 'Single', 'SOLAR_WATER_HEATING_FLAG_ENDING': 'Y', 'PHOTO_SUPPLY_ENDING': 0.0, - 'GLAZED_TYPE_ENDING': 'double glazing installed during or after 2002', - 'MULTI_GLAZE_PROPORTION_ENDING': 100.0, 'LOW_ENERGY_LIGHTING_ENDING': 31.0, - 'NUMBER_OPEN_FIREPLACES_ENDING': 1.0, 'EXTENSION_COUNT_ENDING': 2.0, 'TOTAL_FLOOR_AREA_ENDING': 116.0, - 'FLOOR_HEIGHT_ENDING': 2.41, 'DAYS_TO_STARTING': 784, 'DAYS_TO_ENDING': 867, - 'walls_thermal_transmittance': 1.5, 'is_cavity_wall': True, 'is_filled_cavity': False, - 'is_solid_brick': False, 'is_system_built': False, 'is_timber_frame': False, - 'is_granite_or_whinstone': False, 'is_as_built': True, 'is_cob': False, - 'is_sandstone_or_limestone': False, 'is_park_home': False, 'walls_insulation_thickness': 'none', - 'external_insulation': False, 'internal_insulation': False, 'walls_thermal_transmittance_ENDING': 0.7, - 'is_park_home_ENDING': False, 'walls_insulation_thickness_ENDING': 'average', - 'external_insulation_ENDING': False, 'internal_insulation_ENDING': False, - 'floor_thermal_transmittance': 0.52, 'is_to_unheated_space': False, 'is_to_external_air': False, - 'is_suspended': True, 'is_solid': False, 'another_property_below': False, - 'floor_insulation_thickness': 'none', 'floor_thermal_transmittance_ENDING': 0.52, - 'floor_insulation_thickness_ENDING': 'none', 'roof_thermal_transmittance': 1.5, 'is_pitched': True, - 'is_roof_room': False, 'is_loft': False, 'is_flat': False, 'is_thatched': False, 'is_at_rafters': False, - 'has_dwelling_above': False, 'roof_insulation_thickness': 'below average', - 'roof_thermal_transmittance_ENDING': 1.5, 'roof_insulation_thickness_ENDING': 'below average', - 'heater_type': 'Unknown', 'system_type': 'from main system', 'thermostat_characteristics': 'Unknown', - 'heating_scope': 'Unknown', 'energy_recovery': 'Unknown', 'hotwater_tariff_type': 'Unknown', - 'extra_features': 'plus solar', 'chp_systems': 'Unknown', 'distribution_system': 'Unknown', - 'no_system_present': 'Unknown', 'appliance': 'Unknown', 'heater_type_ENDING': 'Unknown', - 'system_type_ENDING': 'from main system', 'thermostat_characteristics_ENDING': 'Unknown', - 'heating_scope_ENDING': 'Unknown', 'energy_recovery_ENDING': 'Unknown', - 'hotwater_tariff_type_ENDING': 'Unknown', 'extra_features_ENDING': 'plus solar', - 'chp_systems_ENDING': 'Unknown', 'distribution_system_ENDING': 'Unknown', - 'no_system_present_ENDING': 'Unknown', 'appliance_ENDING': 'Unknown', 'has_radiators': True, - 'has_fan_coil_units': False, 'has_pipes_in_screed_above_insulation': False, - 'has_pipes_in_insulated_timber_floor': False, 'has_pipes_in_concrete_slab': False, 'has_boiler': True, - 'has_air_source_heat_pump': False, 'has_room_heaters': False, 'has_electric_storage_heaters': False, - 'has_warm_air': False, 'has_electric_underfloor_heating': False, 'has_electric_ceiling_heating': False, - 'has_community_scheme': False, 'has_ground_source_heat_pump': False, 'has_no_system_present': False, - 'has_portable_electric_heaters': False, 'has_water_source_heat_pump': False, - 'has_electric_heat_pump': False, 'has_micro-cogeneration': False, 'has_solar_assisted_heat_pump': False, - 'has_exhaust_source_heat_pump': False, 'has_community_heat_pump': False, 'has_electric': False, - 'has_mains_gas': False, 'has_wood_logs': False, 'has_coal': False, 'has_oil': True, - 'has_wood_pellets': False, 'has_anthracite': False, 'has_dual_fuel_mineral_and_wood': False, - 'has_smokeless_fuel': False, 'has_lpg': False, 'has_b30k': False, 'has_electricaire': False, - 'has_assumed_for_most_rooms': False, 'has_underfloor_heating': False, 'has_radiators_ENDING': True, - 'has_fan_coil_units_ENDING': False, 'has_pipes_in_screed_above_insulation_ENDING': False, - 'has_pipes_in_insulated_timber_floor_ENDING': False, 'has_pipes_in_concrete_slab_ENDING': False, - 'has_boiler_ENDING': True, 'has_air_source_heat_pump_ENDING': False, 'has_room_heaters_ENDING': False, - 'has_electric_storage_heaters_ENDING': False, 'has_warm_air_ENDING': False, - 'has_electric_underfloor_heating_ENDING': False, 'has_electric_ceiling_heating_ENDING': False, - 'has_community_scheme_ENDING': False, 'has_ground_source_heat_pump_ENDING': False, - 'has_no_system_present_ENDING': False, 'has_portable_electric_heaters_ENDING': False, - 'has_water_source_heat_pump_ENDING': False, 'has_electric_heat_pump_ENDING': False, - 'has_micro-cogeneration_ENDING': False, 'has_solar_assisted_heat_pump_ENDING': False, - 'has_exhaust_source_heat_pump_ENDING': False, 'has_community_heat_pump_ENDING': False, - 'has_electric_ENDING': False, 'has_mains_gas_ENDING': False, 'has_wood_logs_ENDING': False, - 'has_coal_ENDING': False, 'has_oil_ENDING': True, 'has_wood_pellets_ENDING': False, - 'has_anthracite_ENDING': False, 'has_dual_fuel_mineral_and_wood_ENDING': False, - 'has_smokeless_fuel_ENDING': False, 'has_lpg_ENDING': False, 'has_b30k_ENDING': False, - 'has_electricaire_ENDING': False, 'has_assumed_for_most_rooms_ENDING': False, - 'has_underfloor_heating_ENDING': False, 'thermostatic_control': 'room thermostat', - 'charging_system': 'Unknown', 'switch_system': 'programmer', 'no_control': 'Unknown', - 'dhw_control': 'Unknown', 'community_heating': 'Unknown', 'multiple_room_thermostats': False, - 'auxiliary_systems': 'Unknown', 'trvs': 'trvs', 'rate_control': 'Unknown', - 'thermostatic_control_ENDING': 'room thermostat', 'charging_system_ENDING': 'Unknown', - 'switch_system_ENDING': 'programmer', 'no_control_ENDING': 'Unknown', 'dhw_control_ENDING': 'Unknown', - 'community_heating_ENDING': 'Unknown', 'multiple_room_thermostats_ENDING': False, - 'auxiliary_systems_ENDING': 'Unknown', 'trvs_ENDING': 'trvs', 'rate_control_ENDING': 'Unknown', - 'glazing_type': 'double', 'glazing_type_ENDING': 'double', 'fuel_type': 'oil', - 'main-fuel_tariff_type': 'Unknown', 'is_community': False, - 'no_individual_heating_or_community_network': False, 'complex_fuel_type': 'Unknown', - 'fuel_type_ENDING': 'oil', 'main-fuel_tariff_type_ENDING': 'Unknown', 'is_community_ENDING': False, - 'no_individual_heating_or_community_network_ENDING': False, 'complex_fuel_type_ENDING': 'Unknown', - 'estimated_perimeter_STARTING': 30.531014675946444, 'estimated_perimeter_ENDING': 30.531014675946444, - 'HOT_WATER_ENERGY_EFF_STARTING': "Good", - "FLOOR_ENERGY_EFF_STARTING": "Unknown", - "WINDOWS_ENERGY_EFF_STARTING": "Good", - "WALLS_ENERGY_EFF_STARTING": "Poor", - "SHEATING_ENERGY_EFF_STARTING": "Unknown", - "ROOF_ENERGY_EFF_STARTING": "Very Poor", - "MAINHEAT_ENERGY_EFF_STARTING": "Average", - "MAINHEATC_ENERGY_EFF_STARTING": "Good", - "LIGHTING_ENERGY_EFF_STARTING": "Average", - "POTENTIAL_ENERGY_EFFICIENCY": 64, - "ENVIRONMENT_IMPACT_POTENTIAL": 53, - "ENERGY_CONSUMPTION_POTENTIAL": 177.0, - "CO2_EMISSIONS_POTENTIAL": 5.7, - "HOT_WATER_ENERGY_EFF_ENDING": "Good", - "FLOOR_ENERGY_EFF_ENDING": "Unknown", - "WINDOWS_ENERGY_EFF_ENDING": "Good", - "WALLS_ENERGY_EFF_ENDING": "Good", - "SHEATING_ENERGY_EFF_ENDING": "Unknown", - "ROOF_ENERGY_EFF_ENDING": "Very Poor", - "MAINHEAT_ENERGY_EFF_ENDING": "Average", - "MAINHEATC_ENERGY_EFF_ENDING": "Good", - "LIGHTING_ENERGY_EFF_ENDING": "Average", - } - - home = Property( - id=0, - postcode=starting_epc["postcode"], - address=starting_epc["address1"], - data=starting_epc - ) - home.get_components(cleaned, photo_supply_lookup, floor_area_decile_thresholds) - - data_processor = DataProcessor(None, newdata=True) - data_processor.insert_data(pd.DataFrame([home.get_model_data()])) - - data_processor.pre_process() - - starting_epc_data = data_processor.get_component_features(suffix="_STARTING") - ending_epc_data = data_processor.get_component_features(suffix="_ENDING") - fixed_data = data_processor.get_fixed_features() - - ending_lodgement_date = '2016-12-15' - - ending_epc_data["DAYS_TO_ENDING"] = data_processor.calculate_days_to(ending_lodgement_date) - - recommendation = { - "recommendation_id": 0, - "new_u_value": 0.7, - "type": "cavity_wall_insulation" - } - - test_record = create_recommendation_scoring_data( - property=home, - recommendation=recommendation, - starting_epc_data=starting_epc_data, - ending_epc_data=ending_epc_data, - fixed_data=fixed_data, - ) - test_record = pd.DataFrame([test_record]) - - # Test the final cleaning: - test_record = DataProcessor.apply_averages_cleaning( - data_to_clean=test_record, - cleaning_data=cleaning_data, - cols_to_merge_on=COLUMNS_TO_MERGE_ON + ["LOCAL_AUTHORITY"] - ).drop(columns=["LOCAL_AUTHORITY"]) - - test_record = DataProcessor.clean_missings_after_description_process( - test_record, [ - c for c in test_record.columns if - ("thermal_transmittance" in c) or ("insulation_thickness" in c) - ] - ) - - # Test that the data has been set up correctly - - # Things to fix: - # [] Filled cavity should have an average insulation thickness in the cleaned data - - for c in test_record.columns: - if c in ["id", "SAP_ENDING", "HEAT_DEMAND_ENDING", "CARBON_ENDING"]: - continue - - if c == "FLOOR_HEIGHT_ENDING": - assert (row[c] - test_record[c].values[0]) <= 0.020001 - continue - - if c == "walls_insulation_thickness_ENDING": - assert row[c] == "average" - assert test_record[c].values[0] == "above average" - continue - - assert test_record[c].values[0] == row[c] - - def test_internal_wall_insulation(self, cleaned, cleaning_data, photo_supply_lookup, floor_area_decile_thresholds): - - starting_epc2 = { - 'low-energy-fixed-light-count': '2', 'address': 'FLAT 12, WAREHOUSE W, 3 WESTERN GATEWAY', - 'uprn-source': 'Energy Assessor', 'floor-height': '3.64', 'heating-cost-potential': '465', - 'unheated-corridor-length': '', 'hot-water-cost-potential': '185', - 'construction-age-band': 'England and Wales: 1900-1929', 'potential-energy-rating': 'C', - 'mainheat-energy-eff': 'Very Poor', 'windows-env-eff': 'Average', 'lighting-energy-eff': 'Poor', - 'environment-impact-potential': '51', 'glazed-type': 'double glazing installed during or after 2002', - 'heating-cost-current': '1223', 'address3': '3 WESTERN GATEWAY', - 'mainheatcont-description': 'Programmer and appliance thermostats', 'sheating-energy-eff': 'N/A', - 'property-type': 'Flat', 'local-authority-label': 'Newham', 'fixed-lighting-outlets-count': '12', - 'energy-tariff': 'off-peak 7 hour', 'mechanical-ventilation': 'natural', 'hot-water-cost-current': '342', - 'county': '', 'postcode': 'E16 1BD', 'solar-water-heating-flag': 'N', 'constituency': 'E14001032', - 'co2-emissions-potential': '3.6', 'number-heated-rooms': '2', 'floor-description': '(other premises below)', - 'energy-consumption-potential': '307', 'local-authority': 'E09000025', 'built-form': 'Mid-Terrace', - 'number-open-fireplaces': '0', 'windows-description': 'Partial double glazing', 'glazed-area': 'Normal', - 'inspection-date': '2020-10-14', 'mains-gas-flag': 'N', 'co2-emiss-curr-per-floor-area': '66', - 'address1': 'FLAT 12', 'heat-loss-corridor': 'heated corridor', 'flat-storey-count': '', - 'constituency-label': 'West Ham', 'roof-energy-eff': 'N/A', 'total-floor-area': '70.0', - 'building-reference-number': '10000539740', 'environment-impact-current': '42', - 'co2-emissions-current': '4.6', 'roof-description': '(another dwelling above)', 'floor-energy-eff': 'N/A', - 'number-habitable-rooms': '2', 'address2': 'WAREHOUSE W', 'hot-water-env-eff': 'Poor', 'posttown': 'LONDON', - 'mainheatc-energy-eff': 'Good', 'main-fuel': 'electricity (not community)', 'lighting-env-eff': 'Poor', - 'windows-energy-eff': 'Average', 'floor-env-eff': 'N/A', 'sheating-env-eff': 'N/A', - 'lighting-description': 'Low energy lighting in 17% of fixed outlets', 'roof-env-eff': 'N/A', - 'walls-energy-eff': 'Very Poor', 'photo-supply': '0.0', 'lighting-cost-potential': '67', - 'mainheat-env-eff': 'Poor', 'multi-glaze-proportion': '61', 'main-heating-controls': '', - 'lodgement-datetime': '2020-10-14 00:00:00', 'flat-top-storey': 'N', 'current-energy-rating': 'F', - 'secondheat-description': 'None', 'walls-env-eff': 'Very Poor', 'transaction-type': 'marketed sale', - 'uprn': '10012839482', 'current-energy-efficiency': '33', 'energy-consumption-current': '393', - 'mainheat-description': 'Room heaters, electric', 'lighting-cost-current': '110', - 'lodgement-date': '2020-10-14', 'extension-count': '0', 'mainheatc-env-eff': 'Good', - 'lmk-key': 'b0d82f468273bec55ec5676a809b8e36b55db940ffa92f482a482f6aaa38eb1d', 'wind-turbine-count': '0', - 'tenure': 'Owner-occupied', 'floor-level': '01', 'potential-energy-efficiency': '71', - 'hot-water-energy-eff': 'Very Poor', 'low-energy-lighting': '17', - 'walls-description': 'Solid brick, as built, no insulation (assumed)', - 'hotwater-description': 'Electric immersion, standard tariff' - } - - row2 = { - 'UPRN': '10012839482', 'RDSAP_CHANGE': 8, 'HEAT_DEMAND_CHANGE': -59, - 'CARBON_CHANGE': -0.5999999999999996, 'SAP_STARTING': 33, 'SAP_ENDING': 41, 'HEAT_DEMAND_STARTING': 393, - 'HEAT_DEMAND_ENDING': 334, 'CARBON_STARTING': 4.6, 'CARBON_ENDING': 4.0, 'PROPERTY_TYPE': 'Flat', - 'BUILT_FORM': 'Mid-Terrace', 'CONSTITUENCY': 'E14001032', 'NUMBER_HABITABLE_ROOMS': 2.0, - 'NUMBER_HEATED_ROOMS': 2.0, 'FIXED_LIGHTING_OUTLETS_COUNT': 12.0, - 'CONSTRUCTION_AGE_BAND': 'England and Wales: 1996-2002', 'TRANSACTION_TYPE_STARTING': 'marketed sale', - 'MECHANICAL_VENTILATION_STARTING': 'natural', 'SECONDHEAT_DESCRIPTION_STARTING': 'None', - 'ENERGY_TARIFF_STARTING': 'off-peak 7 hour', 'SOLAR_WATER_HEATING_FLAG_STARTING': 'N', - 'PHOTO_SUPPLY_STARTING': 0.0, 'GLAZED_TYPE_STARTING': 'double glazing installed during or after 2002', - 'MULTI_GLAZE_PROPORTION_STARTING': 61.0, 'LOW_ENERGY_LIGHTING_STARTING': 17.0, - 'NUMBER_OPEN_FIREPLACES_STARTING': 0.0, 'EXTENSION_COUNT_STARTING': 0.0, - 'TOTAL_FLOOR_AREA_STARTING': 70.0, 'FLOOR_HEIGHT_STARTING': 3.64, - 'TRANSACTION_TYPE_ENDING': 'marketed sale', 'MECHANICAL_VENTILATION_ENDING': 'natural', - 'SECONDHEAT_DESCRIPTION_ENDING': 'None', 'ENERGY_TARIFF_ENDING': 'off-peak 7 hour', - 'SOLAR_WATER_HEATING_FLAG_ENDING': 'N', 'PHOTO_SUPPLY_ENDING': 0.0, - 'GLAZED_TYPE_ENDING': 'double glazing installed during or after 2002', - 'MULTI_GLAZE_PROPORTION_ENDING': 61.0, 'LOW_ENERGY_LIGHTING_ENDING': 17.0, - 'NUMBER_OPEN_FIREPLACES_ENDING': 0.0, 'EXTENSION_COUNT_ENDING': 0.0, 'TOTAL_FLOOR_AREA_ENDING': 70.0, - 'FLOOR_HEIGHT_ENDING': 3.64, 'DAYS_TO_STARTING': 2266, 'DAYS_TO_ENDING': 2307, - 'walls_thermal_transmittance': 1.7, 'is_cavity_wall': False, 'is_filled_cavity': False, - 'is_solid_brick': True, 'is_system_built': False, 'is_timber_frame': False, - 'is_granite_or_whinstone': False, 'is_as_built': True, 'is_cob': False, - 'is_sandstone_or_limestone': False, 'is_park_home': False, 'walls_insulation_thickness': 'none', - 'external_insulation': False, 'internal_insulation': False, 'walls_thermal_transmittance_ENDING': 0.21, - 'is_park_home_ENDING': False, 'walls_insulation_thickness_ENDING': 'average', - 'external_insulation_ENDING': False, 'internal_insulation_ENDING': False, - 'floor_thermal_transmittance': 0.0, 'is_to_unheated_space': False, 'is_to_external_air': False, - 'is_suspended': False, 'is_solid': False, 'another_property_below': True, - 'floor_insulation_thickness': 'none', 'floor_thermal_transmittance_ENDING': 0.0, - 'floor_insulation_thickness_ENDING': 'none', 'roof_thermal_transmittance': 0.0, 'is_pitched': False, - 'is_roof_room': False, 'is_loft': False, 'is_flat': False, 'is_thatched': False, 'is_at_rafters': False, - 'has_dwelling_above': True, 'roof_insulation_thickness': 'none', - 'roof_thermal_transmittance_ENDING': 0.0, 'roof_insulation_thickness_ENDING': 'none', - 'heater_type': 'electric immersion', 'system_type': 'Unknown', 'thermostat_characteristics': 'Unknown', - 'heating_scope': 'Unknown', 'energy_recovery': 'Unknown', 'hotwater_tariff_type': 'standard tariff', - 'extra_features': 'Unknown', 'chp_systems': 'Unknown', 'distribution_system': 'Unknown', - 'no_system_present': 'Unknown', 'appliance': 'Unknown', 'heater_type_ENDING': 'electric immersion', - 'system_type_ENDING': 'Unknown', 'thermostat_characteristics_ENDING': 'Unknown', - 'heating_scope_ENDING': 'Unknown', 'energy_recovery_ENDING': 'Unknown', - 'hotwater_tariff_type_ENDING': 'standard tariff', 'extra_features_ENDING': 'Unknown', - 'chp_systems_ENDING': 'Unknown', 'distribution_system_ENDING': 'Unknown', - 'no_system_present_ENDING': 'Unknown', 'appliance_ENDING': 'Unknown', 'has_radiators': False, - 'has_fan_coil_units': False, 'has_pipes_in_screed_above_insulation': False, - 'has_pipes_in_insulated_timber_floor': False, 'has_pipes_in_concrete_slab': False, 'has_boiler': False, - 'has_air_source_heat_pump': False, 'has_room_heaters': True, 'has_electric_storage_heaters': False, - 'has_warm_air': False, 'has_electric_underfloor_heating': False, 'has_electric_ceiling_heating': False, - 'has_community_scheme': False, 'has_ground_source_heat_pump': False, 'has_no_system_present': False, - 'has_portable_electric_heaters': False, 'has_water_source_heat_pump': False, - 'has_electric_heat_pump': False, 'has_micro-cogeneration': False, 'has_solar_assisted_heat_pump': False, - 'has_exhaust_source_heat_pump': False, 'has_community_heat_pump': False, 'has_electric': True, - 'has_mains_gas': False, 'has_wood_logs': False, 'has_coal': False, 'has_oil': False, - 'has_wood_pellets': False, 'has_anthracite': False, 'has_dual_fuel_mineral_and_wood': False, - 'has_smokeless_fuel': False, 'has_lpg': False, 'has_b30k': False, 'has_electricaire': False, - 'has_assumed_for_most_rooms': False, 'has_underfloor_heating': False, 'has_radiators_ENDING': False, - 'has_fan_coil_units_ENDING': False, 'has_pipes_in_screed_above_insulation_ENDING': False, - 'has_pipes_in_insulated_timber_floor_ENDING': False, 'has_pipes_in_concrete_slab_ENDING': False, - 'has_boiler_ENDING': False, 'has_air_source_heat_pump_ENDING': False, 'has_room_heaters_ENDING': True, - 'has_electric_storage_heaters_ENDING': False, 'has_warm_air_ENDING': False, - 'has_electric_underfloor_heating_ENDING': False, 'has_electric_ceiling_heating_ENDING': False, - 'has_community_scheme_ENDING': False, 'has_ground_source_heat_pump_ENDING': False, - 'has_no_system_present_ENDING': False, 'has_portable_electric_heaters_ENDING': False, - 'has_water_source_heat_pump_ENDING': False, 'has_electric_heat_pump_ENDING': False, - 'has_micro-cogeneration_ENDING': False, 'has_solar_assisted_heat_pump_ENDING': False, - 'has_exhaust_source_heat_pump_ENDING': False, 'has_community_heat_pump_ENDING': False, - 'has_electric_ENDING': True, 'has_mains_gas_ENDING': False, 'has_wood_logs_ENDING': False, - 'has_coal_ENDING': False, 'has_oil_ENDING': False, 'has_wood_pellets_ENDING': False, - 'has_anthracite_ENDING': False, 'has_dual_fuel_mineral_and_wood_ENDING': False, - 'has_smokeless_fuel_ENDING': False, 'has_lpg_ENDING': False, 'has_b30k_ENDING': False, - 'has_electricaire_ENDING': False, 'has_assumed_for_most_rooms_ENDING': False, - 'has_underfloor_heating_ENDING': False, 'thermostatic_control': 'appliance thermostats', - 'charging_system': 'Unknown', 'switch_system': 'programmer', 'no_control': 'Unknown', - 'dhw_control': 'Unknown', 'community_heating': 'Unknown', 'multiple_room_thermostats': False, - 'auxiliary_systems': 'Unknown', 'trvs': 'Unknown', 'rate_control': 'Unknown', - 'thermostatic_control_ENDING': 'appliance thermostats', 'charging_system_ENDING': 'Unknown', - 'switch_system_ENDING': 'programmer', 'no_control_ENDING': 'Unknown', 'dhw_control_ENDING': 'Unknown', - 'community_heating_ENDING': 'Unknown', 'multiple_room_thermostats_ENDING': False, - 'auxiliary_systems_ENDING': 'Unknown', 'trvs_ENDING': 'Unknown', 'rate_control_ENDING': 'Unknown', - 'glazing_type': 'double', 'glazing_type_ENDING': 'double', 'fuel_type': 'electricity', - 'main-fuel_tariff_type': 'Unknown', 'is_community': False, - 'no_individual_heating_or_community_network': False, 'complex_fuel_type': 'Unknown', - 'fuel_type_ENDING': 'electricity', 'main-fuel_tariff_type_ENDING': 'Unknown', - 'is_community_ENDING': False, 'no_individual_heating_or_community_network_ENDING': False, - 'complex_fuel_type_ENDING': 'Unknown', 'estimated_perimeter_STARTING': 35.4964786985977, - 'estimated_perimeter_ENDING': 35.4964786985977, - 'HOT_WATER_ENERGY_EFF_STARTING': "Very Poor", - "FLOOR_ENERGY_EFF_STARTING": "Unknown", - "WINDOWS_ENERGY_EFF_STARTING": "Average", - "WALLS_ENERGY_EFF_STARTING": "Very Poor", - "SHEATING_ENERGY_EFF_STARTING": "Unknown", - "ROOF_ENERGY_EFF_STARTING": "Unknown", - "MAINHEAT_ENERGY_EFF_STARTING": "Very Poor", - "MAINHEATC_ENERGY_EFF_STARTING": "Good", - "LIGHTING_ENERGY_EFF_STARTING": "Poor", - "POTENTIAL_ENERGY_EFFICIENCY": 71, - "ENVIRONMENT_IMPACT_POTENTIAL": 51, - "ENERGY_CONSUMPTION_POTENTIAL": 307, - "CO2_EMISSIONS_POTENTIAL": 3.6, - 'HOT_WATER_ENERGY_EFF_ENDING': "Very Poor", - "FLOOR_ENERGY_EFF_ENDING": "Unknown", - "WINDOWS_ENERGY_EFF_ENDING": "Average", - "WALLS_ENERGY_EFF_ENDING": "Good", - "SHEATING_ENERGY_EFF_ENDING": "Unknown", - "ROOF_ENERGY_EFF_ENDING": "Unknown", - "MAINHEAT_ENERGY_EFF_ENDING": "Very Poor", - "MAINHEATC_ENERGY_EFF_ENDING": "Good", - "LIGHTING_ENERGY_EFF_ENDING": "Poor", - } - - home2 = Property( - id=0, - postcode=starting_epc2["postcode"], - address=starting_epc2["address1"], - data=starting_epc2 - ) - home2.get_components(cleaned, photo_supply_lookup, floor_area_decile_thresholds) - home2.set_number_lighting_outlets(None) - - data_processor2 = DataProcessor(None, newdata=True) - data_processor2.insert_data(pd.DataFrame([home2.get_model_data()])) - - data_processor2.pre_process() - - starting_epc_data2 = data_processor2.get_component_features(suffix="_STARTING") - ending_epc_data2 = data_processor2.get_component_features(suffix="_ENDING") - fixed_data2 = data_processor2.get_fixed_features() - - ending_lodgement_date2 = '2020-11-24' - - ending_epc_data2["DAYS_TO_ENDING"] = data_processor2.calculate_days_to(ending_lodgement_date2) - - recommendation2 = { - "recommendation_id": 0, - "new_u_value": 0.21, - "type": "internal_wall_insulation" - } - - test_record2 = create_recommendation_scoring_data( - property=home2, - recommendation=recommendation2, - starting_epc_data=starting_epc_data2, - ending_epc_data=ending_epc_data2, - fixed_data=fixed_data2, - ) - test_record2 = pd.DataFrame([test_record2]) - - # Test the final cleaning: - test_record2 = DataProcessor.apply_averages_cleaning( - data_to_clean=test_record2, - cleaning_data=cleaning_data, - cols_to_merge_on=COLUMNS_TO_MERGE_ON + ["LOCAL_AUTHORITY"] - ).drop(columns=["LOCAL_AUTHORITY"]) - - test_record2 = DataProcessor.clean_missings_after_description_process( - test_record2, [ - c for c in test_record2.columns if - ("thermal_transmittance" in c) or ("insulation_thickness" in c) - ] - ) - - for c in test_record2.columns: - if c in ["id", "SAP_ENDING", "HEAT_DEMAND_ENDING", "CARBON_ENDING"]: - continue - - if c == "FLOOR_HEIGHT_ENDING": - assert (row2[c] - test_record2[c].values[0]) <= 0.020001 - continue - - if c == "walls_insulation_thickness_ENDING": - assert row2[c] == "average" - assert test_record2[c].values[0] == "above average" - continue - - if c == "CONSTRUCTION_AGE_BAND": - # For this, we have different values in the original data - assert row2[c] == "England and Wales: 1996-2002" - assert test_record2[c].values[0] == "England and Wales: 1900-1929" - continue - - assert test_record2[c].values[0] == row2[c] - - def test_ventilation(self, cleaned, cleaning_data, photo_supply_lookup, floor_area_decile_thresholds): - - starting_epc3 = { - 'low-energy-fixed-light-count': '', 'address': '45 Shepperson Road', 'uprn-source': 'Energy Assessor', - 'floor-height': '1.87', 'heating-cost-potential': '645', 'unheated-corridor-length': '', - 'hot-water-cost-potential': '69', 'construction-age-band': 'England and Wales: 1900-1929', - 'potential-energy-rating': 'C', 'mainheat-energy-eff': 'Good', 'windows-env-eff': 'Average', - 'lighting-energy-eff': 'Average', 'environment-impact-potential': '75', - 'glazed-type': 'double glazing, unknown install date', 'heating-cost-current': '1028', 'address3': '', - 'mainheatcont-description': 'Programmer, TRVs and bypass', 'sheating-energy-eff': 'N/A', - 'property-type': 'House', 'local-authority-label': 'Sheffield', 'fixed-lighting-outlets-count': '21', - 'energy-tariff': 'Single', 'mechanical-ventilation': 'natural', 'hot-water-cost-current': '96', - 'county': '', 'postcode': 'S6 4FG', 'solar-water-heating-flag': 'N', 'constituency': 'E14000921', - 'co2-emissions-potential': '2.9', 'number-heated-rooms': '5', - 'floor-description': 'Suspended, no insulation (assumed)', 'energy-consumption-potential': '152', - 'local-authority': 'E08000019', 'built-form': 'Enclosed Mid-Terrace', 'number-open-fireplaces': '0', - 'windows-description': 'Fully double glazed', 'glazed-area': 'Normal', 'inspection-date': '2022-06-13', - 'mains-gas-flag': 'Y', 'co2-emiss-curr-per-floor-area': '59', 'address1': '45 Shepperson Road', - 'heat-loss-corridor': '', 'flat-storey-count': '', - 'constituency-label': 'Sheffield, Brightside and Hillsborough', 'roof-energy-eff': 'Very Poor', - 'total-floor-area': '107.0', 'building-reference-number': '10002892085', 'environment-impact-current': '46', - 'co2-emissions-current': '6.3', 'roof-description': 'Pitched, no insulation (assumed)', - 'floor-energy-eff': 'N/A', 'number-habitable-rooms': '5', 'address2': '', 'hot-water-env-eff': 'Good', - 'posttown': 'SHEFFIELD', 'mainheatc-energy-eff': 'Average', 'main-fuel': 'mains gas (not community)', - 'lighting-env-eff': 'Average', 'windows-energy-eff': 'Average', 'floor-env-eff': 'N/A', - 'sheating-env-eff': 'N/A', 'lighting-description': 'Low energy lighting in 43% of fixed outlets', - 'roof-env-eff': 'Very Poor', 'walls-energy-eff': 'Very Poor', 'photo-supply': '0.0', - 'lighting-cost-potential': '83', 'mainheat-env-eff': 'Good', 'multi-glaze-proportion': '100', - 'main-heating-controls': '', 'lodgement-datetime': '2023-05-27 12:15:21', 'flat-top-storey': '', - 'current-energy-rating': 'E', 'secondheat-description': 'None', 'walls-env-eff': 'Very Poor', - 'transaction-type': 'marketed sale', 'uprn': '100051073214', 'current-energy-efficiency': '54', - 'energy-consumption-current': '335', 'mainheat-description': 'Boiler and radiators, mains gas', - 'lighting-cost-current': '131', 'lodgement-date': '2023-05-27', 'extension-count': '1', - 'mainheatc-env-eff': 'Average', - 'lmk-key': 'dc1a4da246562656132b8e36e0534cd90b09fa40fc584e25e644e2d9ab86a247', 'wind-turbine-count': '0', - 'tenure': 'Not defined - use in the case of a new dwelling for which the intended tenure in not known. It ' - 'is not to be used for an existing dwelling', - 'floor-level': '', 'potential-energy-efficiency': '80', 'hot-water-energy-eff': 'Good', - 'low-energy-lighting': '43', - 'walls-description': 'Sandstone or limestone, as built, no insulation (assumed)', - 'hotwater-description': 'From main system' - } - - row3 = { - 'UPRN': '100051073214', 'RDSAP_CHANGE': 2, 'HEAT_DEMAND_CHANGE': -22, 'CARBON_CHANGE': -0.39999999999999947, - 'SAP_STARTING': 54, 'SAP_ENDING': 56, 'HEAT_DEMAND_STARTING': 335, 'HEAT_DEMAND_ENDING': 313, - 'CARBON_STARTING': 6.3, 'CARBON_ENDING': 5.9, 'PROPERTY_TYPE': 'House', 'BUILT_FORM': 'Mid-Terrace', - 'CONSTITUENCY': 'E14000921', 'NUMBER_HABITABLE_ROOMS': 5.0, 'NUMBER_HEATED_ROOMS': 5.0, - 'FIXED_LIGHTING_OUTLETS_COUNT': 21.0, 'CONSTRUCTION_AGE_BAND': 'England and Wales: 1900-1929', - 'TRANSACTION_TYPE_STARTING': 'marketed sale', 'MECHANICAL_VENTILATION_STARTING': 'natural', - 'SECONDHEAT_DESCRIPTION_STARTING': 'None', 'ENERGY_TARIFF_STARTING': 'Single', - 'SOLAR_WATER_HEATING_FLAG_STARTING': 'N', 'PHOTO_SUPPLY_STARTING': 0.0, - 'GLAZED_TYPE_STARTING': 'double glazing, unknown install date', 'MULTI_GLAZE_PROPORTION_STARTING': 100.0, - 'LOW_ENERGY_LIGHTING_STARTING': 43.0, 'NUMBER_OPEN_FIREPLACES_STARTING': 0.0, - 'EXTENSION_COUNT_STARTING': 1.0, 'TOTAL_FLOOR_AREA_STARTING': 107.0, 'FLOOR_HEIGHT_STARTING': 1.87, - 'TRANSACTION_TYPE_ENDING': 'marketed sale', 'MECHANICAL_VENTILATION_ENDING': 'mechanical, extract only', - 'SECONDHEAT_DESCRIPTION_ENDING': 'None', 'ENERGY_TARIFF_ENDING': 'Single', - 'SOLAR_WATER_HEATING_FLAG_ENDING': 'N', 'PHOTO_SUPPLY_ENDING': 0.0, - 'GLAZED_TYPE_ENDING': 'double glazing, unknown install date', 'MULTI_GLAZE_PROPORTION_ENDING': 100.0, - 'LOW_ENERGY_LIGHTING_ENDING': 43.0, 'NUMBER_OPEN_FIREPLACES_ENDING': 0.0, 'EXTENSION_COUNT_ENDING': 1.0, - 'TOTAL_FLOOR_AREA_ENDING': 107.0, 'FLOOR_HEIGHT_ENDING': 1.87, 'DAYS_TO_STARTING': 3221, - 'DAYS_TO_ENDING': 2874, 'walls_thermal_transmittance': 2.0, 'is_cavity_wall': False, - 'is_filled_cavity': False, 'is_solid_brick': False, 'is_system_built': False, 'is_timber_frame': False, - 'is_granite_or_whinstone': False, 'is_as_built': True, 'is_cob': False, 'is_sandstone_or_limestone': True, - 'is_park_home': False, 'walls_insulation_thickness': 'none', 'external_insulation': False, - 'internal_insulation': False, 'walls_thermal_transmittance_ENDING': 2.0, 'is_park_home_ENDING': False, - 'walls_insulation_thickness_ENDING': 'none', 'external_insulation_ENDING': False, - 'internal_insulation_ENDING': False, 'floor_thermal_transmittance': 0.51, 'is_to_unheated_space': False, - 'is_to_external_air': False, 'is_suspended': True, 'is_solid': False, 'another_property_below': False, - 'floor_insulation_thickness': 'none', 'floor_thermal_transmittance_ENDING': 0.51, - 'floor_insulation_thickness_ENDING': 'none', 'roof_thermal_transmittance': 2.3, 'is_pitched': True, - 'is_roof_room': False, 'is_loft': False, 'is_flat': False, 'is_thatched': False, 'is_at_rafters': False, - 'has_dwelling_above': False, 'roof_insulation_thickness': 'none', 'roof_thermal_transmittance_ENDING': 2.3, - 'roof_insulation_thickness_ENDING': 'none', 'heater_type': 'Unknown', 'system_type': 'from main system', - 'thermostat_characteristics': 'Unknown', 'heating_scope': 'Unknown', 'energy_recovery': 'Unknown', - 'hotwater_tariff_type': 'Unknown', 'extra_features': 'Unknown', 'chp_systems': 'Unknown', - 'distribution_system': 'Unknown', 'no_system_present': 'Unknown', 'appliance': 'Unknown', - 'heater_type_ENDING': 'Unknown', 'system_type_ENDING': 'from main system', - 'thermostat_characteristics_ENDING': 'Unknown', 'heating_scope_ENDING': 'Unknown', - 'energy_recovery_ENDING': 'Unknown', 'hotwater_tariff_type_ENDING': 'Unknown', - 'extra_features_ENDING': 'Unknown', 'chp_systems_ENDING': 'Unknown', - 'distribution_system_ENDING': 'Unknown', 'no_system_present_ENDING': 'Unknown', - 'appliance_ENDING': 'Unknown', 'has_radiators': True, 'has_fan_coil_units': False, - 'has_pipes_in_screed_above_insulation': False, 'has_pipes_in_insulated_timber_floor': False, - 'has_pipes_in_concrete_slab': False, 'has_boiler': True, 'has_air_source_heat_pump': False, - 'has_room_heaters': False, 'has_electric_storage_heaters': False, 'has_warm_air': False, - 'has_electric_underfloor_heating': False, 'has_electric_ceiling_heating': False, - 'has_community_scheme': False, 'has_ground_source_heat_pump': False, 'has_no_system_present': False, - 'has_portable_electric_heaters': False, 'has_water_source_heat_pump': False, - 'has_electric_heat_pump': False, 'has_micro-cogeneration': False, 'has_solar_assisted_heat_pump': False, - 'has_exhaust_source_heat_pump': False, 'has_community_heat_pump': False, 'has_electric': False, - 'has_mains_gas': True, 'has_wood_logs': False, 'has_coal': False, 'has_oil': False, - 'has_wood_pellets': False, 'has_anthracite': False, 'has_dual_fuel_mineral_and_wood': False, - 'has_smokeless_fuel': False, 'has_lpg': False, 'has_b30k': False, 'has_electricaire': False, - 'has_assumed_for_most_rooms': False, 'has_underfloor_heating': False, 'has_radiators_ENDING': True, - 'has_fan_coil_units_ENDING': False, 'has_pipes_in_screed_above_insulation_ENDING': False, - 'has_pipes_in_insulated_timber_floor_ENDING': False, 'has_pipes_in_concrete_slab_ENDING': False, - 'has_boiler_ENDING': True, 'has_air_source_heat_pump_ENDING': False, 'has_room_heaters_ENDING': False, - 'has_electric_storage_heaters_ENDING': False, 'has_warm_air_ENDING': False, - 'has_electric_underfloor_heating_ENDING': False, 'has_electric_ceiling_heating_ENDING': False, - 'has_community_scheme_ENDING': False, 'has_ground_source_heat_pump_ENDING': False, - 'has_no_system_present_ENDING': False, 'has_portable_electric_heaters_ENDING': False, - 'has_water_source_heat_pump_ENDING': False, 'has_electric_heat_pump_ENDING': False, - 'has_micro-cogeneration_ENDING': False, 'has_solar_assisted_heat_pump_ENDING': False, - 'has_exhaust_source_heat_pump_ENDING': False, 'has_community_heat_pump_ENDING': False, - 'has_electric_ENDING': False, 'has_mains_gas_ENDING': True, 'has_wood_logs_ENDING': False, - 'has_coal_ENDING': False, 'has_oil_ENDING': False, 'has_wood_pellets_ENDING': False, - 'has_anthracite_ENDING': False, 'has_dual_fuel_mineral_and_wood_ENDING': False, - 'has_smokeless_fuel_ENDING': False, 'has_lpg_ENDING': False, 'has_b30k_ENDING': False, - 'has_electricaire_ENDING': False, 'has_assumed_for_most_rooms_ENDING': False, - 'has_underfloor_heating_ENDING': False, 'thermostatic_control': 'Unknown', 'charging_system': 'Unknown', - 'switch_system': 'programmer', 'no_control': 'Unknown', 'dhw_control': 'Unknown', - 'community_heating': 'Unknown', 'multiple_room_thermostats': False, 'auxiliary_systems': 'bypass', - 'trvs': 'trvs', 'rate_control': 'Unknown', 'thermostatic_control_ENDING': 'Unknown', - 'charging_system_ENDING': 'Unknown', 'switch_system_ENDING': 'programmer', 'no_control_ENDING': 'Unknown', - 'dhw_control_ENDING': 'Unknown', 'community_heating_ENDING': 'Unknown', - 'multiple_room_thermostats_ENDING': False, 'auxiliary_systems_ENDING': 'bypass', 'trvs_ENDING': 'trvs', - 'rate_control_ENDING': 'Unknown', 'glazing_type': 'double', 'glazing_type_ENDING': 'double', - 'fuel_type': 'mains gas', 'main-fuel_tariff_type': 'Unknown', 'is_community': False, - 'no_individual_heating_or_community_network': False, 'complex_fuel_type': 'Unknown', - 'fuel_type_ENDING': 'mains gas', 'main-fuel_tariff_type_ENDING': 'Unknown', 'is_community_ENDING': False, - 'no_individual_heating_or_community_network_ENDING': False, 'complex_fuel_type_ENDING': 'Unknown', - 'estimated_perimeter_STARTING': 30.06908711617298, 'estimated_perimeter_ENDING': 30.06908711617298, - 'HOT_WATER_ENERGY_EFF_STARTING': "Good", - "FLOOR_ENERGY_EFF_STARTING": "Unknown", - "WINDOWS_ENERGY_EFF_STARTING": "Average", - "WALLS_ENERGY_EFF_STARTING": "Very Poor", - "SHEATING_ENERGY_EFF_STARTING": "Unknown", - "ROOF_ENERGY_EFF_STARTING": "Very Poor", - "MAINHEAT_ENERGY_EFF_STARTING": "Good", - "MAINHEATC_ENERGY_EFF_STARTING": "Average", - "LIGHTING_ENERGY_EFF_STARTING": "Average", - "POTENTIAL_ENERGY_EFFICIENCY": 80, - "ENVIRONMENT_IMPACT_POTENTIAL": 75, - "ENERGY_CONSUMPTION_POTENTIAL": 152, - "CO2_EMISSIONS_POTENTIAL": 2.9, - 'HOT_WATER_ENERGY_EFF_ENDING': "Good", - "FLOOR_ENERGY_EFF_ENDING": "Unknown", - "WINDOWS_ENERGY_EFF_ENDING": "Average", - "WALLS_ENERGY_EFF_ENDING": "Very Poor", - "SHEATING_ENERGY_EFF_ENDING": "Unknown", - "ROOF_ENERGY_EFF_ENDING": "Very Poor", - "MAINHEAT_ENERGY_EFF_ENDING": "Good", - "MAINHEATC_ENERGY_EFF_ENDING": "Average", - "LIGHTING_ENERGY_EFF_ENDING": "Average", - } - - home3 = Property( - id=0, - postcode=starting_epc3["postcode"], - address=starting_epc3["address1"], - data=starting_epc3 - ) - home3.get_components(cleaned, photo_supply_lookup, floor_area_decile_thresholds) - home3.set_number_lighting_outlets(None) - - data_processor3 = DataProcessor(None, newdata=True) - data_processor3.insert_data(pd.DataFrame([home3.get_model_data()])) - - data_processor3.pre_process() - - starting_epc_data3 = data_processor3.get_component_features(suffix="_STARTING") - ending_epc_data3 = data_processor3.get_component_features(suffix="_ENDING") - fixed_data3 = data_processor3.get_fixed_features() - - ending_lodgement_date3 = '2022-06-14' - - ending_epc_data3["DAYS_TO_ENDING"] = data_processor3.calculate_days_to(ending_lodgement_date3) - - recommendation3 = { - "recommendation_id": 0, - "type": "mechanical_ventilation" - } - - test_record3 = create_recommendation_scoring_data( - property=home3, - recommendation=recommendation3, - starting_epc_data=starting_epc_data3, - ending_epc_data=ending_epc_data3, - fixed_data=fixed_data3, - ) - test_record3 = pd.DataFrame([test_record3]) - - # Test the final cleaning: - test_record3 = DataProcessor.apply_averages_cleaning( - data_to_clean=test_record3, - cleaning_data=cleaning_data, - cols_to_merge_on=COLUMNS_TO_MERGE_ON + ["LOCAL_AUTHORITY"] - ).drop(columns=["LOCAL_AUTHORITY"]) - - test_record3 = DataProcessor.clean_missings_after_description_process( - test_record3, [ - c for c in test_record3.columns if - ("thermal_transmittance" in c) or ("insulation_thickness" in c) - ] - ) - - for c in test_record3.columns: - if c in ["id", "SAP_ENDING", "HEAT_DEMAND_ENDING", "CARBON_ENDING"]: - continue - - assert test_record3[c].values[0] == row3[c] - - def test_fireplaces(self, cleaned, cleaning_data, photo_supply_lookup, floor_area_decile_thresholds): - - starting_epc4 = { - 'low-energy-fixed-light-count': '', 'address': '9 Glebe Road, Asfordby Hill', - 'uprn-source': 'Energy Assessor', 'floor-height': '2.4', 'heating-cost-potential': '501', - 'unheated-corridor-length': '', 'hot-water-cost-potential': '70', - 'construction-age-band': 'England and Wales: 1930-1949', 'potential-energy-rating': 'C', - 'mainheat-energy-eff': 'Good', 'windows-env-eff': 'Average', 'lighting-energy-eff': 'Average', - 'environment-impact-potential': '76', 'glazed-type': 'double glazing, unknown install date', - 'heating-cost-current': '723', 'address3': '', - 'mainheatcont-description': 'Programmer and room thermostat', 'sheating-energy-eff': 'N/A', - 'property-type': 'House', 'local-authority-label': 'Melton', - 'fixed-lighting-outlets-count': '14', 'energy-tariff': 'dual', - 'mechanical-ventilation': 'natural', 'hot-water-cost-current': '98', - 'county': 'Leicestershire', 'postcode': 'LE14 3QT', 'solar-water-heating-flag': 'N', - 'constituency': 'E14000909', 'co2-emissions-potential': '2.4', 'number-heated-rooms': '5', - 'floor-description': 'Solid, no insulation (assumed)', 'energy-consumption-potential': '153', - 'local-authority': 'E07000133', 'built-form': 'Semi-Detached', 'number-open-fireplaces': '1', - 'windows-description': 'Fully double glazed', 'glazed-area': 'Normal', - 'inspection-date': '2022-06-27', 'mains-gas-flag': 'Y', 'co2-emiss-curr-per-floor-area': '46', - 'address1': '9 Glebe Road', 'heat-loss-corridor': '', 'flat-storey-count': '', - 'constituency-label': 'Rutland and Melton', 'roof-energy-eff': 'Good', - 'total-floor-area': '87.0', 'building-reference-number': '10002396876', - 'environment-impact-current': '60', 'co2-emissions-current': '4.0', - 'roof-description': 'Pitched, 200 mm loft insulation', 'floor-energy-eff': 'N/A', - 'number-habitable-rooms': '5', 'address2': 'Asfordby Hill', 'hot-water-env-eff': 'Good', - 'posttown': 'MELTON MOWBRAY', 'mainheatc-energy-eff': 'Average', - 'main-fuel': 'mains gas (not community)', 'lighting-env-eff': 'Average', - 'windows-energy-eff': 'Average', 'floor-env-eff': 'N/A', 'sheating-env-eff': 'N/A', - 'lighting-description': 'Low energy lighting in 29% of fixed outlets', 'roof-env-eff': 'Good', - 'walls-energy-eff': 'Very Poor', 'photo-supply': '15.0', 'lighting-cost-potential': '79', - 'mainheat-env-eff': 'Good', 'multi-glaze-proportion': '100', 'main-heating-controls': '', - 'lodgement-datetime': '2022-06-27 15:28:18', 'flat-top-storey': '', - 'current-energy-rating': 'D', - 'secondheat-description': 'Room heaters, dual fuel (mineral and wood)', - 'walls-env-eff': 'Very Poor', 'transaction-type': 'ECO assessment', 'uprn': '100030539619', - 'current-energy-efficiency': '66', 'energy-consumption-current': '256', - 'mainheat-description': 'Boiler and radiators, mains gas', 'lighting-cost-current': '135', - 'lodgement-date': '2022-06-27', 'extension-count': '1', 'mainheatc-env-eff': 'Average', - 'lmk-key': '736b6f4803a11d9e45b49bf98f36eb8a7f357b0dd24f3e7cddef5295518e5bef', - 'wind-turbine-count': '0', 'tenure': 'Owner-occupied', 'floor-level': '', - 'potential-energy-efficiency': '78', 'hot-water-energy-eff': 'Good', - 'low-energy-lighting': '29', - 'walls-description': 'Solid brick, as built, no insulation (assumed)', - 'hotwater-description': 'From main system' - } - - row4 = { - 'UPRN': '100030539619', 'RDSAP_CHANGE': 7, 'HEAT_DEMAND_CHANGE': -41, 'CARBON_CHANGE': -0.5, - 'SAP_STARTING': 66, 'SAP_ENDING': 73, 'HEAT_DEMAND_STARTING': 256, 'HEAT_DEMAND_ENDING': 215, - 'CARBON_STARTING': 4.0, 'CARBON_ENDING': 3.5, 'PROPERTY_TYPE': 'House', 'BUILT_FORM': 'Semi-Detached', - 'CONSTITUENCY': 'E14000909', 'NUMBER_HABITABLE_ROOMS': 5.0, 'NUMBER_HEATED_ROOMS': 5.0, - 'FIXED_LIGHTING_OUTLETS_COUNT': 14.0, 'CONSTRUCTION_AGE_BAND': 'England and Wales: 1930-1949', - 'TRANSACTION_TYPE_STARTING': 'eco assessment', 'MECHANICAL_VENTILATION_STARTING': 'natural', - 'SECONDHEAT_DESCRIPTION_STARTING': 'Room heaters, dual fuel (mineral and wood)', - 'ENERGY_TARIFF_STARTING': 'dual', 'SOLAR_WATER_HEATING_FLAG_STARTING': 'N', 'PHOTO_SUPPLY_STARTING': 15.0, - 'GLAZED_TYPE_STARTING': 'double glazing, unknown install date', 'MULTI_GLAZE_PROPORTION_STARTING': 100.0, - 'LOW_ENERGY_LIGHTING_STARTING': 29.0, 'NUMBER_OPEN_FIREPLACES_STARTING': 1.0, - 'EXTENSION_COUNT_STARTING': 1.0, 'TOTAL_FLOOR_AREA_STARTING': 87.0, 'FLOOR_HEIGHT_STARTING': 2.4, - 'TRANSACTION_TYPE_ENDING': 'eco assessment', 'MECHANICAL_VENTILATION_ENDING': 'natural', - 'SECONDHEAT_DESCRIPTION_ENDING': 'Room heaters, dual fuel (mineral and wood)', - 'ENERGY_TARIFF_ENDING': 'dual', 'SOLAR_WATER_HEATING_FLAG_ENDING': 'N', 'PHOTO_SUPPLY_ENDING': 15.0, - 'GLAZED_TYPE_ENDING': 'double glazing, unknown install date', 'MULTI_GLAZE_PROPORTION_ENDING': 100.0, - 'LOW_ENERGY_LIGHTING_ENDING': 29.0, 'NUMBER_OPEN_FIREPLACES_ENDING': 0, 'EXTENSION_COUNT_ENDING': 1.0, - 'TOTAL_FLOOR_AREA_ENDING': 87.0, 'FLOOR_HEIGHT_ENDING': 2.4, 'DAYS_TO_STARTING': 2887, - 'DAYS_TO_ENDING': 2960, 'walls_thermal_transmittance': 1.7, 'is_cavity_wall': False, - 'is_filled_cavity': False, 'is_solid_brick': True, 'is_system_built': False, 'is_timber_frame': False, - 'is_granite_or_whinstone': False, 'is_as_built': True, 'is_cob': False, 'is_sandstone_or_limestone': False, - 'is_park_home': False, 'walls_insulation_thickness': 'none', 'external_insulation': False, - 'internal_insulation': False, 'walls_thermal_transmittance_ENDING': 1.7, 'is_park_home_ENDING': False, - 'walls_insulation_thickness_ENDING': 'none', 'external_insulation_ENDING': False, - 'internal_insulation_ENDING': False, 'floor_thermal_transmittance': 0.53, 'is_to_unheated_space': False, - 'is_to_external_air': False, 'is_suspended': False, 'is_solid': True, 'another_property_below': False, - 'floor_insulation_thickness': 'none', 'floor_thermal_transmittance_ENDING': 0.53, - 'floor_insulation_thickness_ENDING': 'none', 'roof_thermal_transmittance': 0.21, 'is_pitched': True, - 'is_roof_room': False, 'is_loft': True, 'is_flat': False, 'is_thatched': False, 'is_at_rafters': False, - 'has_dwelling_above': False, 'roof_insulation_thickness': '200', 'roof_thermal_transmittance_ENDING': 0.21, - 'roof_insulation_thickness_ENDING': '200', 'heater_type': 'Unknown', 'system_type': 'from main system', - 'thermostat_characteristics': 'Unknown', 'heating_scope': 'Unknown', 'energy_recovery': 'Unknown', - 'hotwater_tariff_type': 'Unknown', 'extra_features': 'Unknown', 'chp_systems': 'Unknown', - 'distribution_system': 'Unknown', 'no_system_present': 'Unknown', 'appliance': 'Unknown', - 'heater_type_ENDING': 'Unknown', 'system_type_ENDING': 'from main system', - 'thermostat_characteristics_ENDING': 'Unknown', 'heating_scope_ENDING': 'Unknown', - 'energy_recovery_ENDING': 'Unknown', 'hotwater_tariff_type_ENDING': 'Unknown', - 'extra_features_ENDING': 'Unknown', 'chp_systems_ENDING': 'Unknown', - 'distribution_system_ENDING': 'Unknown', 'no_system_present_ENDING': 'Unknown', - 'appliance_ENDING': 'Unknown', 'has_radiators': True, 'has_fan_coil_units': False, - 'has_pipes_in_screed_above_insulation': False, 'has_pipes_in_insulated_timber_floor': False, - 'has_pipes_in_concrete_slab': False, 'has_boiler': True, 'has_air_source_heat_pump': False, - 'has_room_heaters': False, 'has_electric_storage_heaters': False, 'has_warm_air': False, - 'has_electric_underfloor_heating': False, 'has_electric_ceiling_heating': False, - 'has_community_scheme': False, 'has_ground_source_heat_pump': False, 'has_no_system_present': False, - 'has_portable_electric_heaters': False, 'has_water_source_heat_pump': False, - 'has_electric_heat_pump': False, 'has_micro-cogeneration': False, 'has_solar_assisted_heat_pump': False, - 'has_exhaust_source_heat_pump': False, 'has_community_heat_pump': False, 'has_electric': False, - 'has_mains_gas': True, 'has_wood_logs': False, 'has_coal': False, 'has_oil': False, - 'has_wood_pellets': False, 'has_anthracite': False, 'has_dual_fuel_mineral_and_wood': False, - 'has_smokeless_fuel': False, 'has_lpg': False, 'has_b30k': False, 'has_electricaire': False, - 'has_assumed_for_most_rooms': False, 'has_underfloor_heating': False, 'has_radiators_ENDING': True, - 'has_fan_coil_units_ENDING': False, 'has_pipes_in_screed_above_insulation_ENDING': False, - 'has_pipes_in_insulated_timber_floor_ENDING': False, 'has_pipes_in_concrete_slab_ENDING': False, - 'has_boiler_ENDING': True, 'has_air_source_heat_pump_ENDING': False, 'has_room_heaters_ENDING': False, - 'has_electric_storage_heaters_ENDING': False, 'has_warm_air_ENDING': False, - 'has_electric_underfloor_heating_ENDING': False, 'has_electric_ceiling_heating_ENDING': False, - 'has_community_scheme_ENDING': False, 'has_ground_source_heat_pump_ENDING': False, - 'has_no_system_present_ENDING': False, 'has_portable_electric_heaters_ENDING': False, - 'has_water_source_heat_pump_ENDING': False, 'has_electric_heat_pump_ENDING': False, - 'has_micro-cogeneration_ENDING': False, 'has_solar_assisted_heat_pump_ENDING': False, - 'has_exhaust_source_heat_pump_ENDING': False, 'has_community_heat_pump_ENDING': False, - 'has_electric_ENDING': False, 'has_mains_gas_ENDING': True, 'has_wood_logs_ENDING': False, - 'has_coal_ENDING': False, 'has_oil_ENDING': False, 'has_wood_pellets_ENDING': False, - 'has_anthracite_ENDING': False, 'has_dual_fuel_mineral_and_wood_ENDING': False, - 'has_smokeless_fuel_ENDING': False, 'has_lpg_ENDING': False, 'has_b30k_ENDING': False, - 'has_electricaire_ENDING': False, 'has_assumed_for_most_rooms_ENDING': False, - 'has_underfloor_heating_ENDING': False, 'thermostatic_control': 'room thermostat', - 'charging_system': 'Unknown', 'switch_system': 'programmer', 'no_control': 'Unknown', - 'dhw_control': 'Unknown', 'community_heating': 'Unknown', 'multiple_room_thermostats': False, - 'auxiliary_systems': 'Unknown', 'trvs': 'Unknown', 'rate_control': 'Unknown', - 'thermostatic_control_ENDING': 'room thermostat', 'charging_system_ENDING': 'Unknown', - 'switch_system_ENDING': 'programmer', 'no_control_ENDING': 'Unknown', 'dhw_control_ENDING': 'Unknown', - 'community_heating_ENDING': 'Unknown', 'multiple_room_thermostats_ENDING': False, - 'auxiliary_systems_ENDING': 'Unknown', 'trvs_ENDING': 'Unknown', 'rate_control_ENDING': 'Unknown', - 'glazing_type': 'double', 'glazing_type_ENDING': 'double', 'fuel_type': 'mains gas', - 'main-fuel_tariff_type': 'Unknown', 'is_community': False, - 'no_individual_heating_or_community_network': False, 'complex_fuel_type': 'Unknown', - 'fuel_type_ENDING': 'mains gas', 'main-fuel_tariff_type_ENDING': 'Unknown', 'is_community_ENDING': False, - 'no_individual_heating_or_community_network_ENDING': False, 'complex_fuel_type_ENDING': 'Unknown', - 'estimated_perimeter_STARTING': 27.113649698998472, 'estimated_perimeter_ENDING': 27.113649698998472, - 'HOT_WATER_ENERGY_EFF_STARTING': "Good", - "FLOOR_ENERGY_EFF_STARTING": "Unknown", - "WINDOWS_ENERGY_EFF_STARTING": "Average", - "WALLS_ENERGY_EFF_STARTING": "Very Poor", - "SHEATING_ENERGY_EFF_STARTING": "Unknown", - "ROOF_ENERGY_EFF_STARTING": "Good", - "MAINHEAT_ENERGY_EFF_STARTING": "Good", - "MAINHEATC_ENERGY_EFF_STARTING": "Average", - "LIGHTING_ENERGY_EFF_STARTING": "Average", - "POTENTIAL_ENERGY_EFFICIENCY": 78, - "ENVIRONMENT_IMPACT_POTENTIAL": 76, - "ENERGY_CONSUMPTION_POTENTIAL": 153, - "CO2_EMISSIONS_POTENTIAL": 2.4, - 'HOT_WATER_ENERGY_EFF_ENDING': "Good", - "FLOOR_ENERGY_EFF_ENDING": "Unknown", - "WINDOWS_ENERGY_EFF_ENDING": "Average", - "WALLS_ENERGY_EFF_ENDING": "Very Poor", - "SHEATING_ENERGY_EFF_ENDING": "Unknown", - "ROOF_ENERGY_EFF_ENDING": "Good", - "MAINHEAT_ENERGY_EFF_ENDING": "Good", - "MAINHEATC_ENERGY_EFF_ENDING": "Average", - "LIGHTING_ENERGY_EFF_ENDING": "Average", - } - - home4 = Property( - id=0, - postcode=starting_epc4["postcode"], - address=starting_epc4["address1"], - data=starting_epc4 - ) - home4.get_components(cleaned, photo_supply_lookup, floor_area_decile_thresholds) - home4.set_number_lighting_outlets(None) - - data_processor4 = DataProcessor(None, newdata=True) - data_processor4.insert_data(pd.DataFrame([home4.get_model_data()])) - - data_processor4.pre_process() - - starting_epc_data4 = data_processor4.get_component_features(suffix="_STARTING") - ending_epc_data4 = data_processor4.get_component_features(suffix="_ENDING") - fixed_data4 = data_processor4.get_fixed_features() - - ending_lodgement_date4 = '2022-09-08' - - ending_epc_data4["DAYS_TO_ENDING"] = data_processor4.calculate_days_to(ending_lodgement_date4) - - recommendation4 = { - "recommendation_id": 0, - "type": "sealing_open_fireplace" - } - - test_record4 = create_recommendation_scoring_data( - property=home4, - recommendation=recommendation4, - starting_epc_data=starting_epc_data4, - ending_epc_data=ending_epc_data4, - fixed_data=fixed_data4, - ) - test_record4 = pd.DataFrame([test_record4]) - - # Test the final cleaning: - test_record4 = DataProcessor.apply_averages_cleaning( - data_to_clean=test_record4, - cleaning_data=cleaning_data, - cols_to_merge_on=COLUMNS_TO_MERGE_ON + ["LOCAL_AUTHORITY"] - ).drop(columns=["LOCAL_AUTHORITY"]) - - test_record4 = DataProcessor.clean_missings_after_description_process( - test_record4, [ - c for c in test_record4.columns if - ("thermal_transmittance" in c) or ("insulation_thickness" in c) - ] - ) - - for c in test_record4.columns: - if c in ["id", "SAP_ENDING", "HEAT_DEMAND_ENDING", "CARBON_ENDING"]: - continue - - assert test_record4[c].values[0] == row4[c] diff --git a/etl/epc/tests/test_epcrecord.py b/etl/epc/tests/test_epcrecord.py index 48ad5148..cf0361b1 100644 --- a/etl/epc/tests/test_epcrecord.py +++ b/etl/epc/tests/test_epcrecord.py @@ -109,14 +109,13 @@ class TestEpcRecord: assert record.prepared_epc["energy-consumption-current"] == 200.0 assert record.prepared_epc["co2-emissions-current"] == 5.5 - def test_clean_energy_empty_values(self, cleaning_data, epc_records_1): + def test_clean_energy_empty_values(self, cleaning_data): # We cannot have invalid values so this should raise an exception record = EPCRecord(cleaning_data=cleaning_data) record.prepared_epc = { "energy-consumption-current": "", "co2-emissions-current": "" } - record._clean_energy() with pytest.raises(ValueError): record._clean_energy() @@ -207,7 +206,7 @@ class TestEpcRecord: "mains-gas-flag": "InvalidValue" } # It should always be Y or N or an anomally value - with pytest.raises(ValueError): + with pytest.raises(KeyError): record._clean_mains_gas() record = EPCRecord(cleaning_data=cleaning_data) @@ -225,7 +224,8 @@ class TestEpcRecord: } record._clean_solar_hot_water() - assert record.prepared_epc["solar-water-heating-flag"] is True + assert record.prepared_epc["solar-water-heating-flag"] == "Y" + assert record.solar_water_heating_flag_bool is True def test_clean_solar_hot_water_empty(self, cleaning_data): record = EPCRecord(cleaning_data=cleaning_data) @@ -234,7 +234,8 @@ class TestEpcRecord: } record._clean_solar_hot_water() - assert record.prepared_epc["solar-water-heating-flag"] is None + assert record.prepared_epc["solar-water-heating-flag"] == "N" + assert record.solar_water_heating_flag_bool is False def test_clean_number_lighting_outlets_valid(self, cleaning_data, epc_records_1): record = EPCRecord(cleaning_data=cleaning_data, epc_records=epc_records_1) @@ -320,7 +321,8 @@ class TestEpcRecord: record._clean_solar_hot_water() - assert record.prepared_epc["solar-water-heating-flag"] is True + assert record.prepared_epc["solar-water-heating-flag"] == "Y" + assert record.solar_water_heating_flag_bool is True record = EPCRecord(cleaning_data=cleaning_data) @@ -330,7 +332,8 @@ class TestEpcRecord: record._clean_solar_hot_water() - assert record.prepared_epc["solar-water-heating-flag"] is False + assert record.prepared_epc["solar-water-heating-flag"] == "N" + assert record.solar_water_heating_flag_bool is False record = EPCRecord(cleaning_data=cleaning_data) @@ -340,7 +343,8 @@ class TestEpcRecord: record._clean_solar_hot_water() - assert record.prepared_epc["solar-water-heating-flag"] is None + assert record.prepared_epc["solar-water-heating-flag"] == "N" + assert record.solar_water_heating_flag_bool is False record = EPCRecord(cleaning_data=cleaning_data) @@ -350,4 +354,5 @@ class TestEpcRecord: record._clean_solar_hot_water() - assert record.prepared_epc["solar-water-heating-flag"] is None + assert record.prepared_epc["solar-water-heating-flag"] == "N" + assert record.solar_water_heating_flag_bool is False From 4608ac89a5dd00ec04dca170a964499abd663691 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Fri, 19 Jan 2024 17:42:03 +0000 Subject: [PATCH 215/526] fixed roof tests --- backend/Property.py | 22 ++++---- .../tests/test_fireplace_recommendations.py | 24 ++++---- .../tests/test_lighting_recommendations.py | 18 +++--- .../tests/test_roof_recommendations.py | 55 +++++++++++-------- 4 files changed, 68 insertions(+), 51 deletions(-) diff --git a/backend/Property.py b/backend/Property.py index ee496552..e6ae8bbe 100644 --- a/backend/Property.py +++ b/backend/Property.py @@ -68,7 +68,7 @@ class Property(Definitions): self.in_conservation_area, self.is_listed, self.is_heritage = None, None, None self.restricted_measures = False self.year_built = epc_record.get("year_built") - self.number_of_rooms = epc_record.prepared_epc["number_heated_rooms"] + self.number_of_rooms = epc_record.prepared_epc.get("number_heated_rooms") self.age_band = epc_record.get("age_band") self.construction_age_band = epc_record.get("construction_age_band") self.number_of_floors = epc_record.get("number_of_floors") @@ -81,7 +81,7 @@ class Property(Definitions): "co2_emissions": epc_record.get("co2_emissions_current"), } self.ventilation = { - "ventilation": epc_record.prepared_epc["mechanical_ventilation"], + "ventilation": epc_record.prepared_epc.get("mechanical_ventilation"), } self.solar_pv = { "solar_pv": epc_record.get("photo_supply"), @@ -91,29 +91,29 @@ class Property(Definitions): "solar_hot_water_boolean": epc_record.get("solar_water_heating_flag_bool"), } self.wind_turbine = { - "wind_turbine": epc_record.prepared_epc["wind_turbine_count"], + "wind_turbine": epc_record.prepared_epc.get("wind_turbine_count"), } self.number_of_open_fireplaces = { - "number_of_open_fireplaces": epc_record.prepared_epc["number_open_fireplaces"], + "number_of_open_fireplaces": epc_record.prepared_epc.get("number_open_fireplaces"), } self.number_of_extensions = { - "number_of_extensions": epc_record.prepared_epc["extension_count"], + "number_of_extensions": epc_record.prepared_epc.get("extension_count"), } self.number_of_storeys = { - "number_of_storeys": epc_record.prepared_epc["flat_storey_count"], + "number_of_storeys": epc_record.prepared_epc.get("flat_storey_count"), } self.heat_loss_corridor = { - "heat_loss_corridor": epc_record.prepared_epc["heat_loss_corridor"], - "length": epc_record.prepared_epc["unheated_corridor_length"], + "heat_loss_corridor": epc_record.prepared_epc.get("heat_loss_corridor"), + "length": epc_record.prepared_epc.get("unheated_corridor_length"), "heat_loss_corridor_boolean": epc_record.get("heat_loss_corridor_bool"), } - self.mains_gas = epc_record.prepared_epc['mains_gas_flag'] - self.floor_height = epc_record.prepared_epc['floor_height'] + self.mains_gas = epc_record.prepared_epc.get('mains_gas_flag') + self.floor_height = epc_record.prepared_epc.get('floor_height') self.insulation_wall_area = None self.floor_area = epc_record.prepared_epc.get('total_floor_area') self.pitched_roof_area = None self.insulation_floor_area = None - self.number_lighting_outlets = epc_record.prepared_epc["fixed_lighting_outlets_count"] + self.number_lighting_outlets = epc_record.prepared_epc.get("fixed_lighting_outlets_count") self.floor_level = None self.number_of_windows = None self.solar_pv_roof_area = None diff --git a/recommendations/tests/test_fireplace_recommendations.py b/recommendations/tests/test_fireplace_recommendations.py index a91d6697..f21d6bc3 100644 --- a/recommendations/tests/test_fireplace_recommendations.py +++ b/recommendations/tests/test_fireplace_recommendations.py @@ -1,16 +1,18 @@ from backend.Property import Property -from unittest.mock import Mock from recommendations.FireplaceRecommendations import FireplaceRecommendations +from etl.epc.Record import EPCRecord class TestFirepaceRecommendations: def test_no_fireplaces(self): - property_instance = Property(id=0, address="fake", postcode="fake") - property_instance.data = { - "number-open-fireplaces": 0 + epc_record = EPCRecord() + epc_record.prepared_epc = { + "number-open-fireplaces": 0, } + property_instance = Property(id=0, address="fake", postcode="fake", epc_record=epc_record) + recommender = FireplaceRecommendations( property_instance=property_instance ) @@ -22,10 +24,11 @@ class TestFirepaceRecommendations: assert recommender.recommendation is None def test_one_fireplace(self): - property_instance = Property(id=0, address="fake", postcode="fake") - property_instance.data = { - "number-open-fireplaces": 1 + epc_record = EPCRecord() + epc_record.prepared_epc = { + "number-open-fireplaces": 1, } + property_instance = Property(id=0, address="fake", postcode="fake", epc_record=epc_record) recommender = FireplaceRecommendations( property_instance=property_instance @@ -40,10 +43,11 @@ class TestFirepaceRecommendations: assert recommender.recommendation[0]["total"] == 300 def test_multiple_fireplaces(self): - property_instance = Property(id=0, address="fake", postcode="fake") - property_instance.data = { - "number-open-fireplaces": 3 + epc_record = EPCRecord() + epc_record.prepared_epc = { + "number-open-fireplaces": 3, } + property_instance = Property(id=0, address="fake", postcode="fake", epc_record=epc_record) recommender = FireplaceRecommendations( property_instance=property_instance diff --git a/recommendations/tests/test_lighting_recommendations.py b/recommendations/tests/test_lighting_recommendations.py index 964f1da0..45213d70 100644 --- a/recommendations/tests/test_lighting_recommendations.py +++ b/recommendations/tests/test_lighting_recommendations.py @@ -1,5 +1,5 @@ import pytest -from unittest.mock import Mock +from etl.epc.Record import EPCRecord from backend.Property import Property from recommendations.LightingRecommendations import LightingRecommendations @@ -9,18 +9,20 @@ from recommendations.tests.test_data.materials import materials class TestLightingRecommendations: def test_init_invalid_materials(self): - input_property0 = Property(id=1, postcode="F4k3 6", address="623 fake street") + epc_record = EPCRecord() + epc_record.prepared_epc = {"county": "Greater London Authority"} + input_property0 = Property(id=1, postcode="F4k3 6", address="623 fake street", epc_record=epc_record) input_property0.lighting = {"low_energy_proportion": 0} - input_property0.data = {"county": "Greater London Authority"} # Test for invalid materials with pytest.raises(ValueError): LightingRecommendations(input_property0, []) def test_recommend_no_action_needed(self): # Case where no recommendation is needed - input_property1 = Property(id=1, postcode="F4k3 6", address="623 fake street") + epc_record = EPCRecord() + epc_record.prepared_epc = {"county": "Greater London Authority"} + input_property1 = Property(id=1, postcode="F4k3 6", address="623 fake street", epc_record=epc_record) input_property1.lighting = {"low_energy_proportion": 100} - input_property1.data = {"county": "Greater London Authority"} lr = LightingRecommendations(input_property1, materials) lr.recommend() @@ -28,9 +30,9 @@ class TestLightingRecommendations: def test_recommend_action_needed(self): # Case where recommendation is needed - input_property1 = Property(id=1, postcode="F4k3 6", address="623 fake street") - input_property1.lighting = {"low_energy_proportion": 100} - input_property1.data = {"county": "Greater London Authority"} + epc_record = EPCRecord() + epc_record.prepared_epc = {"county": "Greater London Authority"} + input_property1 = Property(id=1, postcode="F4k3 6", address="623 fake street", epc_record=epc_record) input_property1.lighting = {"low_energy_proportion": 0.80} input_property1.number_lighting_outlets = 20 diff --git a/recommendations/tests/test_roof_recommendations.py b/recommendations/tests/test_roof_recommendations.py index 75b7ddb2..3d555a4f 100644 --- a/recommendations/tests/test_roof_recommendations.py +++ b/recommendations/tests/test_roof_recommendations.py @@ -1,12 +1,17 @@ from backend.Property import Property from recommendations.RoofRecommendations import RoofRecommendations from recommendations.tests.test_data.materials import materials +from etl.epc.Record import EPCRecord class TestRoofRecommendations: def test_loft_insulation_recommendation_no_insulation(self): - property_instance = Property(id=0, address="fake", postcode="fake") + epc_record = EPCRecord() + epc_record.prepared_epc = { + "county": "Cambridgeshire", + } + property_instance = Property(id=0, address="fake", postcode="fake", epc_record=epc_record) property_instance.age_band = "F" property_instance.insulation_floor_area = 100 property_instance.roof = { @@ -18,9 +23,6 @@ class TestRoofRecommendations: 'is_at_rafters': False, 'is_assumed': True, 'has_dwelling_above': False, 'is_valid': True, 'insulation_thickness': 'none', 'roof_thermal_transmittance': None, 'roof_insulation_thickness': 'none' } - property_instance.data = { - "county": "Cambridgeshire", - } roof_recommender = RoofRecommendations(property_instance=property_instance, materials=materials) @@ -31,7 +33,9 @@ class TestRoofRecommendations: assert len(roof_recommender.recommendations) def test_loft_insulation_recommendation_50mm_insulation(self): - property_instance2 = Property(id=0, address="fake", postcode="fake") + epc_record = EPCRecord() + epc_record.prepared_epc = {"county": "Kent"} + property_instance2 = Property(id=0, address="fake", postcode="fake", epc_record=epc_record) property_instance2.age_band = "F" property_instance2.insulation_floor_area = 100 property_instance2.roof = { @@ -43,7 +47,6 @@ class TestRoofRecommendations: 'is_at_rafters': False, 'is_assumed': True, 'has_dwelling_above': False, 'is_valid': True, 'insulation_thickness': '50', 'roof_thermal_transmittance': None, 'roof_insulation_thickness': 'none' } - property_instance2.data = {"county": "Kent"} roof_recommender2 = RoofRecommendations(property_instance=property_instance2, materials=materials) @@ -57,7 +60,9 @@ class TestRoofRecommendations: assert roof_recommender2.recommendations[0]["new_u_value"] == 0.14 assert roof_recommender2.recommendations[0]["starting_u_value"] == 0.68 - property_instance3 = Property(id=0, address="fake", postcode="fake") + epc_record = EPCRecord() + epc_record.prepared_epc = {"county": "Greater London Authority"} + property_instance3 = Property(id=0, address="fake", postcode="fake", epc_record=epc_record) property_instance3.age_band = "F" property_instance3.insulation_floor_area = 100 property_instance3.roof = { @@ -69,7 +74,6 @@ class TestRoofRecommendations: 'is_at_rafters': False, 'is_assumed': True, 'has_dwelling_above': False, 'is_valid': True, 'insulation_thickness': '50', 'roof_thermal_transmittance': None, 'roof_insulation_thickness': 'none' } - property_instance3.data = {"county": "Greater London Authority"} roof_recommender3 = RoofRecommendations(property_instance=property_instance3, materials=materials) @@ -82,7 +86,9 @@ class TestRoofRecommendations: assert roof_recommender3.recommendations[0]["parts"][0]["depth"] == 270 def test_loft_insulation_recommendation_150mm_insulation(self): - property_instance4 = Property(id=0, address="fake", postcode="fake") + epc_record = EPCRecord() + epc_record.prepared_epc = {"county": "North East Lincolnshire"} + property_instance4 = Property(id=0, address="fake", postcode="fake", epc_record=epc_record) property_instance4.age_band = "F" property_instance4.insulation_floor_area = 100 property_instance4.roof = { @@ -94,7 +100,6 @@ class TestRoofRecommendations: 'is_at_rafters': False, 'is_assumed': True, 'has_dwelling_above': False, 'is_valid': True, 'insulation_thickness': '150', 'roof_thermal_transmittance': None, 'roof_insulation_thickness': 'none' } - property_instance4.data = {"county": "North East Lincolnshire"} roof_recommender4 = RoofRecommendations(property_instance=property_instance4, materials=materials) @@ -109,7 +114,9 @@ class TestRoofRecommendations: assert roof_recommender4.recommendations[0]["starting_u_value"] == 0.3 assert roof_recommender4.recommendations[0]["parts"][0]["depth"] == 150 - property_instance5 = Property(id=0, address="fake", postcode="fake") + epc_record = EPCRecord() + epc_record.prepared_epc = {"county": "Somerset"} + property_instance5 = Property(id=0, address="fake", postcode="fake", epc_record=epc_record) property_instance5.age_band = "F" property_instance5.insulation_floor_area = 100 property_instance5.roof = { @@ -121,7 +128,6 @@ class TestRoofRecommendations: 'is_at_rafters': False, 'is_assumed': True, 'has_dwelling_above': False, 'is_valid': True, 'insulation_thickness': '150', 'roof_thermal_transmittance': None, 'roof_insulation_thickness': 'none' } - property_instance5.data = {"county": "Somerset"} roof_recommender5 = RoofRecommendations(property_instance=property_instance5, materials=materials) @@ -136,7 +142,9 @@ class TestRoofRecommendations: def test_loft_insulation_recommendation_270mm_insulation(self): # We shouldn't recommend anything in this case - property_instance6 = Property(id=0, address="fake", postcode="fake") + epc_record = EPCRecord() + epc_record.prepared_epc = {"county": "Portsmouth"} + property_instance6 = Property(id=0, address="fake", postcode="fake", epc_record=epc_record) property_instance6.age_band = "F" property_instance6.insulation_floor_area = 100 property_instance6.roof = { @@ -148,7 +156,6 @@ class TestRoofRecommendations: 'is_at_rafters': False, 'is_assumed': True, 'has_dwelling_above': False, 'is_valid': True, 'insulation_thickness': '270', 'roof_thermal_transmittance': None, 'roof_insulation_thickness': 'none' } - property_instance6.data = {"county": "Portsmouth"} roof_recommender6 = RoofRecommendations(property_instance=property_instance6, materials=materials) @@ -277,7 +284,9 @@ class TestRoofRecommendations: # "Insulate your room roof with 270mm of Example room roof insulation" def test_flat_no_insulation(self): - property_instance11 = Property(id=11, address="fake", postcode="fake") + epc_record = EPCRecord() + epc_record.prepared_epc = {"county": "Swindon"} + property_instance11 = Property(id=11, address="fake", postcode="fake", epc_record=epc_record) property_instance11.age_band = "D" property_instance11.insulation_floor_area = 33.5 property_instance11.perimeter = 24 @@ -288,7 +297,6 @@ class TestRoofRecommendations: 'is_roof_room': False, 'is_loft': False, 'is_flat': True, 'is_thatched': False, 'is_at_rafters': False, 'is_assumed': True, 'has_dwelling_above': False, 'is_valid': True, 'insulation_thickness': 'none' } - property_instance11.data = {"county": "Swindon"} roof_recommender11 = RoofRecommendations(property_instance=property_instance11, materials=materials) @@ -306,7 +314,9 @@ class TestRoofRecommendations: "Insulate the home's flat roof with 150mm of Ecotherm Eco-Versal General Purpose Insulation Board" def test_flat_insulated(self): - property_instance12 = Property(id=12, address="fake", postcode="fake") + epc_record = EPCRecord() + epc_record.prepared_epc = {"county": "Thurrock"} + property_instance12 = Property(id=12, address="fake", postcode="fake", epc_record=epc_record) property_instance12.age_band = "D" property_instance12.insulation_floor_area = 40 property_instance12.perimeter = 30 @@ -319,7 +329,6 @@ class TestRoofRecommendations: 'is_loft': False, 'is_flat': True, 'is_thatched': False, 'is_at_rafters': False, 'is_assumed': True, 'has_dwelling_above': False, 'is_valid': True, 'insulation_thickness': 'average' } - property_instance12.data = {"county": "Thurrock"} roof_recommender12 = RoofRecommendations(property_instance=property_instance12, materials=materials) @@ -330,7 +339,9 @@ class TestRoofRecommendations: assert not roof_recommender12.recommendations def test_flat_limited_insulation(self): - property_instance13 = Property(id=12, address="fake", postcode="fake") + epc_record = EPCRecord() + epc_record.prepared_epc = {"county": "Tyne and Wear"} + property_instance13 = Property(id=12, address="fake", postcode="fake", epc_record=epc_record) property_instance13.age_band = "D" property_instance13.insulation_floor_area = 40 property_instance13.perimeter = 40 @@ -342,7 +353,6 @@ class TestRoofRecommendations: 'is_loft': False, 'is_flat': True, 'is_thatched': False, 'is_at_rafters': False, 'is_assumed': True, 'has_dwelling_above': False, 'is_valid': True, 'insulation_thickness': 'below average' } - property_instance13.data = {"county": "Tyne and Wear"} roof_recommender13 = RoofRecommendations(property_instance=property_instance13, materials=materials) @@ -362,7 +372,9 @@ class TestRoofRecommendations: "Insulate the home's flat roof with 150mm of Ecotherm Eco-Versal General Purpose Insulation Board" def test_property_above(self): - property_instance14 = Property(id=0, address="fake", postcode="fake") + epc_record = EPCRecord() + epc_record.prepared_epc = {"county": "Suffolk"} + property_instance14 = Property(id=0, address="fake", postcode="fake", epc_record=epc_record) property_instance14.age_band = "F" property_instance14.insulation_floor_area = 100 property_instance14.roof = { @@ -373,7 +385,6 @@ class TestRoofRecommendations: 'is_assumed': False, 'has_dwelling_above': True, 'is_valid': True, 'insulation_thickness': None } - property_instance14.data = {"county": "Suffolk"} roof_recommender14 = RoofRecommendations(property_instance=property_instance14, materials=materials) From 74c36b5456602bde4698603f7bbe3de8c160df6d Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Fri, 19 Jan 2024 17:44:46 +0000 Subject: [PATCH 216/526] fixed solar tests --- .../tests/test_solar_pv_recommendations.py | 23 +++++++++++-------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/recommendations/tests/test_solar_pv_recommendations.py b/recommendations/tests/test_solar_pv_recommendations.py index f2436cb1..5481cb17 100644 --- a/recommendations/tests/test_solar_pv_recommendations.py +++ b/recommendations/tests/test_solar_pv_recommendations.py @@ -1,45 +1,50 @@ import pytest from recommendations.SolarPvRecommendations import SolarPvRecommendations from backend.Property import Property +from etl.epc.Record import EPCRecord class TestSolarPvRecommendations: @pytest.fixture def property_instance_invalid_type(self): # Setup the property_instance with an invalid property type - property_instance_invalid_type = Property(id=1, address="", postcode="") - property_instance_invalid_type.data = { + epc_record = EPCRecord() + epc_record.prepared_epc = { "property-type": "InvalidType", "county": "Broxbourne", "photo-supply": None } + property_instance_invalid_type = Property(id=1, address="", postcode="", epc_record=epc_record) property_instance_invalid_type.roof = {"is_flat": False, "is_pitched": False, "is_roof_room": False} return property_instance_invalid_type @pytest.fixture def property_instance_invalid_roof(self): # Setup the property_instance with invalid roof type - property_instance_invalid_roof = Property(id=1, address="", postcode="") - property_instance_invalid_roof.data = { + epc_record = EPCRecord() + epc_record.prepared_epc = { "county": "Huntingdonshire", "property-type": "House", "photo-supply": None } + property_instance_invalid_roof = Property(id=1, address="", postcode="", epc_record=epc_record) property_instance_invalid_roof.roof = {"is_flat": False, "is_pitched": False, "is_roof_room": False} return property_instance_invalid_roof @pytest.fixture def property_instance_has_solar_pv(self): # Setup the property_instance without existing solar pv - property_instance_has_solar_pv = Property(id=1, address="", postcode="") - property_instance_has_solar_pv.data = {"photo-supply": "40", "county": "Huntingdonshire", - "property-type": "House"} + epc_record = EPCRecord() + epc_record.prepared_epc = {"photo-supply": "40", "county": "Huntingdonshire", + "property-type": "House"} + property_instance_has_solar_pv = Property(id=1, address="", postcode="", epc_record=epc_record) property_instance_has_solar_pv.roof = {"is_flat": True} return property_instance_has_solar_pv @pytest.fixture def property_instance_valid_all(self): # Setup a valid property_instance that passes all conditions - property_instance_valid_all = Property(id=1, address="", postcode="") + epc_record = EPCRecord() + epc_record.prepared_epc = {"property-type": "House", "photo-supply": None, "county": "Huntingdonshire"} + property_instance_valid_all = Property(id=1, address="", postcode="", epc_record=epc_record) property_instance_valid_all.solar_pv_roof_area = 20 property_instance_valid_all.solar_pv_percentage = 40 - property_instance_valid_all.data = {"property-type": "House", "photo-supply": None, "county": "Huntingdonshire"} property_instance_valid_all.roof = {"is_flat": True} return property_instance_valid_all From 40976fd395f06a63ff07a030347d5a8ce218b891 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Fri, 19 Jan 2024 17:46:44 +0000 Subject: [PATCH 217/526] fixed ventialtion recs --- .../tests/test_ventilation_recommendations.py | 26 ++++++++++++------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/recommendations/tests/test_ventilation_recommendations.py b/recommendations/tests/test_ventilation_recommendations.py index 3242b1d1..aa992253 100644 --- a/recommendations/tests/test_ventilation_recommendations.py +++ b/recommendations/tests/test_ventilation_recommendations.py @@ -1,13 +1,15 @@ from backend.Property import Property from recommendations.VentilationRecommendations import VentilationRecommendations from recommendations.tests.test_data.materials import materials +from etl.epc.Record import EPCRecord class TestVentilationRecommendations: def test_natural_ventilation(self): - input_property1 = Property(id=1, postcode="F4k3 6", address="623 fake street") - input_property1.data = {"mechanical-ventilation": "natural"} + epc_record = EPCRecord() + epc_record.prepared_epc = {"mechanical-ventilation": "natural"} + input_property1 = Property(id=1, postcode="F4k3 6", address="623 fake street", epc_record=epc_record) recommender = VentilationRecommendations( property_instance=input_property1, @@ -27,8 +29,9 @@ class TestVentilationRecommendations: assert recommender.recommendation[0]["parts"][0]["quantity"] == 2 def test_missing_ventilation(self): - input_property2 = Property(id=1, postcode="F4k3 6", address="623 fake street") - input_property2.data = {"mechanical-ventilation": None} + epc_record = EPCRecord() + epc_record.prepared_epc = {"mechanical-ventilation": None} + input_property2 = Property(id=1, postcode="F4k3 6", address="623 fake street", epc_record=epc_record) recommender2 = VentilationRecommendations( property_instance=input_property2, @@ -48,8 +51,9 @@ class TestVentilationRecommendations: assert recommender2.recommendation[0]["parts"][0]["quantity"] == 2 def test_nodata_ventilation(self): - input_property3 = Property(id=1, postcode="F4k3 6", address="623 fake street") - input_property3.data = {"mechanical-ventilation": "NO DATA!!"} + epc_record = EPCRecord() + epc_record.prepared_epc = {"mechanical-ventilation": "NO DATA!!"} + input_property3 = Property(id=1, postcode="F4k3 6", address="623 fake street", epc_record=epc_record) recommender3 = VentilationRecommendations( property_instance=input_property3, @@ -69,8 +73,9 @@ class TestVentilationRecommendations: assert recommender3.recommendation[0]["parts"][0]["quantity"] == 2 def test_existing_ventilation_1(self): - input_property4 = Property(id=1, postcode="F4k3 6", address="623 fake street") - input_property4.data = {"mechanical-ventilation": 'mechanical, extract only'} + epc_record = EPCRecord() + epc_record.prepared_epc = {"mechanical-ventilation": "mechanical, extract only"} + input_property4 = Property(id=1, postcode="F4k3 6", address="623 fake street", epc_record=epc_record) recommender4 = VentilationRecommendations( property_instance=input_property4, @@ -85,8 +90,9 @@ class TestVentilationRecommendations: assert recommender4.has_ventilaion def test_existing_ventilation_2(self): - input_property5 = Property(id=1, postcode="F4k3 6", address="623 fake street") - input_property5.data = {"mechanical-ventilation": 'mechanical, supply and extract'} + epc_record = EPCRecord() + epc_record.prepared_epc = {"mechanical-ventilation": "mechanical, supply and extract"} + input_property5 = Property(id=1, postcode="F4k3 6", address="623 fake street", epc_record=epc_record) recommender5 = VentilationRecommendations( property_instance=input_property5, From bbb4892437f5e41f23ac38213e39c7f0bb3f55b6 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Fri, 19 Jan 2024 18:28:26 +0000 Subject: [PATCH 218/526] fixed recommendation unit tests --- .../tests/test_wall_recommendations.py | 36 ++++--- .../tests/test_window_recommendations.py | 102 ++++++++++-------- 2 files changed, 80 insertions(+), 58 deletions(-) diff --git a/recommendations/tests/test_wall_recommendations.py b/recommendations/tests/test_wall_recommendations.py index bfc681f5..580ebb91 100644 --- a/recommendations/tests/test_wall_recommendations.py +++ b/recommendations/tests/test_wall_recommendations.py @@ -7,6 +7,7 @@ from recommendations.WallRecommendations import WallRecommendations from backend.Property import Property from recommendations.recommendation_utils import is_diminishing_returns from recommendations.tests.test_data.materials import materials +from etl.epc.Record import EPCRecord # with open( @@ -231,7 +232,9 @@ class TestWallRecommendationsBase: class TestCavityWallRecommensations: def test_fill_empty_cavity(self): - input_property = Property(id=1, postcode="F4k3", address="123 fake street") + epc_record = EPCRecord() + epc_record.prepared_epc = {"county": "Derbyshire"} + input_property = Property(id=1, postcode="F4k3", address="123 fake street", epc_record=epc_record) input_property.walls = { 'original_description': 'Cavity wall, as built, no insulation (assumed)', 'clean_description': 'Cavity wall, as built, no insulation', @@ -245,7 +248,6 @@ class TestCavityWallRecommensations: } input_property.age_band = "C" input_property.insulation_wall_area = 50 - input_property.data = {"county": "Derbyshire"} recommender = WallRecommendations( property_instance=input_property, @@ -265,7 +267,9 @@ class TestCavityWallRecommensations: assert np.isclose(recommender.recommendations[1]["total"], 2004.6600000000003) def test_fill_partial_filled_cavity(self): - input_property = Property(id=1, postcode="F4k3", address="123 fake street") + epc_record = EPCRecord() + epc_record.prepared_epc = {"county": "County Durham"} + input_property = Property(id=1, postcode="F4k3", address="123 fake street", epc_record=epc_record) input_property.walls = { 'original_description': 'Cavity wall, as built, partial insulation (assumed)', 'clean_description': 'Cavity wall, as built, partial insulation', @@ -279,7 +283,6 @@ class TestCavityWallRecommensations: } input_property.age_band = "C" input_property.insulation_wall_area = 50 - input_property.data = {"county": "County Durham"} recommender = WallRecommendations( property_instance=input_property, @@ -299,7 +302,9 @@ class TestCavityWallRecommensations: assert np.isclose(recommender.recommendations[1]["total"], 1999.9350000000002) def test_system_built_wall(self): - input_property2 = Property(id=1, postcode="F4k3 2", address="223 fake street") + epc_record = EPCRecord() + epc_record.prepared_epc = {"property-type": "House", "county": "Derbyshire", "built-form": "Detached"} + input_property2 = Property(id=1, postcode="F4k3 2", address="223 fake street", epc_record=epc_record) input_property2.walls = { 'original_description': 'System built, as built, no insulation (assumed)', 'clean_description': 'System built, as built, no insulation', @@ -314,7 +319,6 @@ class TestCavityWallRecommensations: input_property2.age_band = "F" input_property2.insulation_wall_area = 120 input_property2.restricted_measures = False - input_property2.data = {"property-type": "House", "county": "Derbyshire", "built-form": "Detached"} assert input_property2.walls["is_system_built"] @@ -346,7 +350,9 @@ class TestCavityWallRecommensations: assert recommender2.recommendations[6]["parts"][0]["depth"] == 52.5 def test_timber_frame_wall(self): - input_property3 = Property(id=1, postcode="F4k3 2", address="223 fake street") + epc_record = EPCRecord() + epc_record.prepared_epc = {"property-type": "House", "county": "Derbyshire", "built-form": "Semi-Detached"} + input_property3 = Property(id=1, postcode="F4k3 2", address="223 fake street", epc_record=epc_record) input_property3.walls = { 'original_description': 'Timber frame, as built, no insulation (assumed)', 'clean_description': 'Timber frame, as built, no insulation', @@ -361,7 +367,6 @@ class TestCavityWallRecommensations: input_property3.age_band = "B" input_property3.insulation_wall_area = 99 input_property3.restricted_measures = False - input_property3.data = {"property-type": "House", "county": "Derbyshire", "built-form": "Semi-Detached"} assert input_property3.walls["is_timber_frame"] @@ -388,7 +393,9 @@ class TestCavityWallRecommensations: assert recommender3.recommendations[1]["parts"][0]["depth"] == 150.0 def test_granite_or_whinstone_wall(self): - input_property4 = Property(id=1, postcode="F4k3 2", address="223 fake street") + epc_record = EPCRecord() + epc_record.prepared_epc = {"property-type": "Bungalow", "county": "Derbyshire", "built-form": "Detached"} + input_property4 = Property(id=1, postcode="F4k3 2", address="223 fake street", epc_record=epc_record) input_property4.walls = { 'original_description': 'Granite or whinstone, as built, no insulation (assumed)', 'clean_description': 'Granite or whinstone, as built, no insulation', @@ -403,7 +410,6 @@ class TestCavityWallRecommensations: input_property4.age_band = "A" input_property4.insulation_wall_area = 223 input_property4.restricted_measures = False - input_property4.data = {"property-type": "Bungalow", "county": "Derbyshire", "built-form": "Detached"} assert input_property4.walls["is_granite_or_whinstone"] @@ -430,7 +436,9 @@ class TestCavityWallRecommensations: assert recommender4.recommendations[1]["parts"][0]["depth"] == 150 def test_cob_wall(self): - input_property5 = Property(id=1, postcode="F4k3 2", address="223 fake street") + epc_record = EPCRecord() + epc_record.prepared_epc = {"property-type": "Bungalow", "county": "Derbyshire", "built-form": "Detached"} + input_property5 = Property(id=1, postcode="F4k3 2", address="223 fake street", epc_record=epc_record) input_property5.walls = { 'original_description': 'Cob, as built', 'clean_description': 'Cob, as built', @@ -445,7 +453,6 @@ class TestCavityWallRecommensations: input_property5.age_band = "E" input_property5.insulation_wall_area = 77 input_property5.restricted_measures = False - input_property5.data = {"property-type": "Bungalow", "county": "Derbyshire", "built-form": "Detached"} assert input_property5.walls["is_cob"] @@ -472,7 +479,9 @@ class TestCavityWallRecommensations: assert recommender5.recommendations[3]["parts"][0]["depth"] == 100 def test_sandstone_or_limestone_wall(self): - input_property6 = Property(id=1, postcode="F4k3 6", address="623 fake street") + epc_record = EPCRecord() + epc_record.prepared_epc = {"property-type": "House", "county": "Derbyshire", "built-form": "Mid-Terrace"} + input_property6 = Property(id=1, postcode="F4k3 6", address="623 fake street", epc_record=epc_record) input_property6.walls = { 'original_description': 'Sandstone or limestone, as built, no insulation (assumed)', 'clean_description': 'Sandstone or limestone, as built, no insulation', @@ -487,7 +496,6 @@ class TestCavityWallRecommensations: input_property6.age_band = "F" input_property6.insulation_wall_area = 350 input_property6.restricted_measures = False - input_property6.data = {"property-type": "House", "county": "Derbyshire", "built-form": "Mid-Terrace"} assert input_property6.walls["is_sandstone_or_limestone"] diff --git a/recommendations/tests/test_window_recommendations.py b/recommendations/tests/test_window_recommendations.py index 664a1e39..36e70834 100644 --- a/recommendations/tests/test_window_recommendations.py +++ b/recommendations/tests/test_window_recommendations.py @@ -1,6 +1,7 @@ from recommendations.WindowsRecommendations import WindowsRecommendations from backend.Property import Property from recommendations.tests.test_data.materials import materials +from etl.epc.Record import EPCRecord class TestWindowRecommendations: @@ -10,16 +11,17 @@ class TestWindowRecommendations: For this property, we expect all windows to be single glazed and should recommend full double glazing :return: """ - + epc_record = EPCRecord() + epc_record.prepared_epc = { + "county": "Wychavon", + "multi-glaze-proportion": 0, + "uprn": 0 + } property_1 = Property( id=1, postcode='1', address='1', - data={ - "county": "Wychavon", - "multi-glaze-proportion": 0, - "uprn": 0 - } + epc_record=epc_record ) property_1.windows = { 'original_description': 'Single glazed', 'has_glazing': False, 'glazing_coverage': 'full', @@ -47,16 +49,17 @@ class TestWindowRecommendations: double glazing :return: """ - + epc_record = EPCRecord() + epc_record.prepared_epc = { + "county": "Wychavon", + "multi-glaze-proportion": 33, + "uprn": 0 + } property_2 = Property( id=1, postcode='1', address='1', - data={ - "county": "Wychavon", - "multi-glaze-proportion": 33, - "uprn": 0 - } + epc_record=epc_record ) property_2.windows = {'original_description': 'Mostly double glazing', 'has_glazing': True, 'glazing_coverage': 'most', @@ -81,16 +84,17 @@ class TestWindowRecommendations: This property has full double glazing so we shouldn't recommend anything :return: """ - + epc_record = EPCRecord() + epc_record.prepared_epc = { + "county": "Wychavon", + "multi-glaze-proportion": 100, + "uprn": 0 + } property_3 = Property( id=1, postcode='1', address='1', - data={ - "county": "Wychavon", - "multi-glaze-proportion": 80, - "uprn": 0 - } + epc_record=epc_record ) property_3.windows = {'original_description': 'Fully double glazed', 'has_glazing': True, 'glazing_coverage': 'full', @@ -106,15 +110,17 @@ class TestWindowRecommendations: assert not recommender3.recommendation def test_fully_secondary_glazed(self): + epc_record = EPCRecord() + epc_record.prepared_epc = { + "county": "Wychavon", + "multi-glaze-proportion": 100, + "uprn": 0 + } property_4 = Property( id=1, postcode='1', address='1', - data={ - "county": "Wychavon", - "multi-glaze-proportion": 100, - "uprn": 0 - } + epc_record=epc_record ) property_4.windows = {'original_description': 'Full secondary glazing', 'has_glazing': True, 'glazing_coverage': 'full', @@ -130,15 +136,17 @@ class TestWindowRecommendations: assert not recommender4.recommendation def test_partial_secondary_glazing(self): + epc_record = EPCRecord() + epc_record.prepared_epc = { + "county": "Wychavon", + "multi-glaze-proportion": 50, + "uprn": 0 + } property_5 = Property( id=1, postcode='1', address='1', - data={ - "county": "Wychavon", - "multi-glaze-proportion": 50, - "uprn": 0 - } + epc_record=epc_record ) property_5.windows = {'original_description': 'Partial secondary glazing', 'has_glazing': True, 'glazing_coverage': 'partial', @@ -160,15 +168,18 @@ class TestWindowRecommendations: 'labour_days': 0.8125, 'is_secondary_glazing': True}] def test_single_glazed_restricted_measures(self): + epc_record = EPCRecord() + epc_record.prepared_epc = { + "county": "Wychavon", + "multi-glaze-proportion": 0, + "uprn": 0 + } + property_6 = Property( id=1, postcode='1', address='1', - data={ - "county": "Wychavon", - "multi-glaze-proportion": 0, - "uprn": 0 - } + epc_record=epc_record ) property_6.windows = {'original_description': 'Single glazed', 'has_glazing': False, 'glazing_coverage': None, 'glazing_type': 'single', @@ -195,15 +206,17 @@ class TestWindowRecommendations: ] def test_full_triple_glazed(self): + epc_record = EPCRecord() + epc_record.prepared_epc = { + "county": "Wychavon", + "multi-glaze-proportion": 100, + "uprn": 0 + } property_7 = Property( id=1, postcode='1', address='1', - data={ - "county": "Wychavon", - "multi-glaze-proportion": 100, - "uprn": 0 - } + epc_record=epc_record ) property_7.windows = {'original_description': 'Fully triple glazed', 'has_glazing': True, 'glazing_coverage': 'full', @@ -222,16 +235,17 @@ class TestWindowRecommendations: """ We should just recommend double glazing to the remaining windows, since it's a cheaper option """ - + epc_record = EPCRecord() + epc_record.prepared_epc = { + "county": "Wychavon", + "multi-glaze-proportion": 80, + "uprn": 1 + } property_8 = Property( id=1, postcode='1', address='1', - data={ - "county": "Wychavon", - "multi-glaze-proportion": 80, - "uprn": 1 - } + epc_record=epc_record ) property_8.windows = {'original_description': 'Mostly triple glazing', 'has_glazing': True, 'glazing_coverage': 'most', From 4adfa0bb6228278b1c3162b551ac8960f60cf48b Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Fri, 19 Jan 2024 19:44:38 +0000 Subject: [PATCH 219/526] fixed all tests --- backend/tests/test_property.py | 53 ++++++++++++++++++++++------------ 1 file changed, 35 insertions(+), 18 deletions(-) diff --git a/backend/tests/test_property.py b/backend/tests/test_property.py index 09594a40..43149791 100644 --- a/backend/tests/test_property.py +++ b/backend/tests/test_property.py @@ -1,9 +1,9 @@ import pandas as pd import pytest from unittest.mock import Mock -from epc_api.client import EpcClient from backend.Property import Property from etl.epc_clean.EpcClean import EpcClean +from etl.epc.Record import EPCRecord # Define some test data mock_epc_response = { @@ -196,12 +196,21 @@ class TestProperty: @pytest.fixture(autouse=True) def property_instance(self, mock_cleaner): - property_instance = Property(id=1, postcode="AB12CD", address="Test Address", data=mock_epc_response["rows"][0]) + epc_record = EPCRecord() + epc_record.prepared_epc = mock_epc_response["rows"][0] + + property_instance = Property(id=1, postcode="AB12CD", address="Test Address", epc_record=epc_record) + property_instance.number_of_floors = 2 + property_instance.number_of_rooms = 5 + property_instance.floor_area = 100 + property_instance.floor_height = 2.5 return property_instance @pytest.fixture(autouse=True) def property_instance_dupe_data(self): - property_instance_dupe_data = Property(id=2, postcode="AB12CD", address="Test Address") + epc_record = EPCRecord() + epc_record.prepared_epc = mock_epc_response_dupe["rows"][0] + property_instance_dupe_data = Property(id=2, postcode="AB12CD", address="Test Address", epc_record=epc_record) return property_instance_dupe_data # @pytest.fixture @@ -271,15 +280,17 @@ class TestProperty: return mock_cleaner def test_init(self): - inst1 = Property(0, postcode="AB12CD", address="Test Address") + epc_record = EPCRecord() + epc_record.prepared_epc = {"uprn": 1} + inst1 = Property(0, postcode="AB12CD", address="Test Address", epc_record=epc_record) - assert inst1.data is None + assert inst1.data is not None - inst2 = Property(3, "AB12CD", "Test Address") + inst2 = Property(3, "AB12CD", "Test Address", epc_record=epc_record) assert inst2.id == 3 - inst3 = Property(4, "AB12CD", "Test Address", data={"some": "data", "uprn": 123}) - assert inst3.data == {"some": "data", "uprn": 123} + inst3 = Property(4, "AB12CD", "Test Address", epc_record=epc_record) + assert inst3.data == {"uprn": 1} def test_get_components( self, property_instance, mock_cleaner, mock_photo_supply_lookup, mock_floor_area_decile_thresholds @@ -372,7 +383,9 @@ class TestProperty: property_instance.get_components(cleaned, mock_photo_supply_lookup, mock_floor_area_decile_thresholds) def test_set_spatial(self): - prop = Property(1, postcode="AB12CD", address="Test Address") + epc_record = EPCRecord() + epc_record.prepared_epc = mock_epc_response["rows"][0] + prop = Property(1, postcode="AB12CD", address="Test Address", epc_record=epc_record) spatial1 = pd.DataFrame([{ 'X_COORDINATE': 411143.0, 'Y_COORDINATE': 281701.0, 'LATITUDE': 52.4331896, 'LONGITUDE': -1.8375238, @@ -386,7 +399,7 @@ class TestProperty: assert prop.is_heritage assert prop.restricted_measures - prop2 = Property(1, "AB12CD", "Test Address") + prop2 = Property(1, "AB12CD", "Test Address", epc_record=epc_record) spatial2 = pd.DataFrame([{ 'X_COORDINATE': 411143.0, 'Y_COORDINATE': 281701.0, 'LATITUDE': 52.4331896, 'LONGITUDE': -1.8375238, @@ -403,8 +416,9 @@ class TestProperty: def test_set_floor_level(self): # In this case, we have a flat which looks looks it's on the first floor, but it's actually on the ground # floor, so we should set floor_level to 0 - prop = Property(1, postcode="AB12CD", address="Test Address") - prop.data = {'floor-level': '01', 'property-type': 'Flat'} + epc_record = EPCRecord() + epc_record.prepared_epc = {'floor-level': '01', 'property-type': 'Flat'} + prop = Property(1, postcode="AB12CD", address="Test Address", epc_record=epc_record) prop.floor = { 'original_description': 'Solid, no insulation (assumed)', 'clean_description': 'Solid, no insulation', 'thermal_transmittance': None, 'thermal_transmittance_unit': None, 'is_assumed': True, @@ -419,8 +433,9 @@ class TestProperty: # This property is labelled as being on the ground floor but actually has another property below # so we set floor level to 1 - prop2 = Property(1, postcode="AB12CD", address="Test Address") - prop2.data = {'floor-level': 'Ground', 'property-type': 'Flat'} + epc_record = EPCRecord() + epc_record.prepared_epc = {'floor-level': 'Ground', 'property-type': 'Flat'} + prop2 = Property(1, postcode="AB12CD", address="Test Address", epc_record=epc_record) prop2.floor = { 'original_description': '(Another dwelling below)', 'clean_description': 'Solid, no insulation', 'thermal_transmittance': None, 'thermal_transmittance_unit': None, 'is_assumed': False, @@ -434,8 +449,9 @@ class TestProperty: assert prop2.floor_level == 1 # this property is correctly labelled as being on the 2nd floor - prop3 = Property(1, postcode="AB12CD", address="Test Address") - prop3.data = {'floor-level': '02', 'property-type': 'Flat'} + epc_record = EPCRecord() + epc_record.prepared_epc = {'floor-level': '02', 'property-type': 'Flat'} + prop3 = Property(1, postcode="AB12CD", address="Test Address", epc_record=epc_record) prop3.floor = { 'original_description': '(Another dwelling below)', 'clean_description': 'Solid, no insulation', 'thermal_transmittance': None, 'thermal_transmittance_unit': None, 'is_assumed': False, @@ -449,8 +465,9 @@ class TestProperty: assert prop3.floor_level == 2 # Example of a house - prop4 = Property(1, postcode="AB12CD", address="Test Address") - prop4.data = {'floor-level': '', 'property-type': 'House'} + epc_record = EPCRecord() + epc_record.prepared_epc = {'floor-level': '', 'property-type': 'House'} + prop4 = Property(1, postcode="AB12CD", address="Test Address", epc_record=epc_record) prop4.floor = { 'original_description': '(Another dwelling below)', 'clean_description': 'Solid, no insulation', 'thermal_transmittance': None, 'thermal_transmittance_unit': None, 'is_assumed': False, From 01a4628d206be30ed88c195fa9b7b04909a53637 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Mon, 22 Jan 2024 11:03:45 +0000 Subject: [PATCH 220/526] read in asset list for ha 1, working on ha 6 --- etl/eligibility/ha_15_32/app.py | 2 - .../ha_15_32/ha_analysis_batch_3.py | 182 ++++++++++++++++++ 2 files changed, 182 insertions(+), 2 deletions(-) create mode 100644 etl/eligibility/ha_15_32/ha_analysis_batch_3.py diff --git a/etl/eligibility/ha_15_32/app.py b/etl/eligibility/ha_15_32/app.py index 76aadcc4..ce216364 100644 --- a/etl/eligibility/ha_15_32/app.py +++ b/etl/eligibility/ha_15_32/app.py @@ -16,8 +16,6 @@ from dotenv import load_dotenv from backend.SearchEpc import SearchEpc from backend.Property import Property from etl.eligibility.Eligibility import Eligibility -from etl.epc.DataProcessor import DataProcessor -from backend.app.plan.utils import create_recommendation_scoring_data from etl.epc.settings import COLUMNS_TO_MERGE_ON from backend.ml_models.api import ModelApi diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py new file mode 100644 index 00000000..7c28d481 --- /dev/null +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -0,0 +1,182 @@ +import os +import msgpack +import openpyxl +from pathlib import Path +from tqdm import tqdm +from datetime import datetime +import pandas as pd +import numpy as np +from utils.s3 import read_from_s3, read_dataframe_from_s3_parquet +from utils.logger import setup_logger +from dotenv import load_dotenv +from tqdm import tqdm +from backend.SearchEpc import SearchEpc +from etl.eligibility.Eligibility import Eligibility +from etl.eligibility.ha_15_32.app import prepare_model_data_row +from etl.epc.settings import COLUMNS_TO_MERGE_ON +from backend.ml_models.api import ModelApi +from etl.solar.SolarPhotoSupply import SolarPhotoSupply +from recommendations.recommendation_utils import calculate_cavity_age +from recommendation_utils import convert_thickness_to_numeric + +EPC_AUTH_TOKEN = os.getenv("EPC_AUTH_TOKEN") +ENV_FILE = Path(__file__).parent / "etl" / "eligibility" / "ha_15_32" / ".env" + +logger = setup_logger() +load_dotenv(ENV_FILE) + + +class DataLoader: + COLOUR_CONFIG = { + "ha_1": { + "asset_list": {"red": "FFFF0000", "green": "FF00B050"}, + }, + "ha_6": { + "asset_list": {"red": "FFFF0000", "green": "FF00B050"}, + }, + } + + def __init__(self, files): + self.files = files + + def load_asset_list(self, file_path, ha_name, sheet_name=None): + workbook = openpyxl.load_workbook(file_path) + if sheet_name is not None: + sheet = workbook[sheet_name] + else: + sheet = workbook.active + sheet_colnames = [cell.value for cell in sheet[1]] + + rows_data = [] + rows_colors = [] + for row in sheet.iter_rows(min_row=2, values_only=False): # Assuming the first row is headers + row_data = [cell.value for cell in row] # This will get you the cell values + row_color = row[0].fill.start_color.index if row[0].fill.start_color.index != '00000000' else None + # row_color = COLOR_INDEX[row_color] + rows_data.append(row_data) + rows_colors.append(row_color) + + asset_list = pd.DataFrame(rows_data, columns=sheet_colnames) + asset_list['row_color'] = rows_colors + + asset_list_colours = self.COLOUR_CONFIG[ha_name]["asset_list"] + + asset_list["row_colour_name"] = np.where( + asset_list["row_color"] == asset_list_colours["red"], "red", + np.where(asset_list["row_color"] == asset_list_colours["green"], "green", "yellow") + ) + + asset_list["row_meaning"] = np.where( + asset_list["row_colour_name"] == "red", "does not meet criteria", + np.where( + asset_list["row_colour_name"] == "green", "identified potential eco works (CWI)", "maybe in the future" + ) + ) + + return asset_list + + def load_survey_list(self, file_path, ha_name, sheet_name=None): + survey_workbook = openpyxl.load_workbook(file_path) + if sheet_name is not None: + survey_sheet = survey_workbook[sheet_name] + else: + survey_sheet = survey_workbook.active + + survey_rows = [] + survey_colors = [] + + for row in tqdm(survey_sheet.iter_rows(min_row=2, values_only=False)): # Assuming the first row is headers + row_data = [cell.value for cell in row] # This will get you the cell values + row_color = row[0].fill.start_color.index if row[0].fill.start_color.index != '00000000' else None + survey_rows.append(row_data) + survey_colors.append(row_color) + + survey_list = pd.DataFrame(survey_rows, columns=[cell.value for cell in survey_sheet[1]]) + + survey_list["row_colour"] = survey_colors + survey_list_colours = self.COLOUR_CONFIG[ha_name]["asset_list"] + + # The survey list has 4 possible colours: + # PURPLE - Installer advised install complete and a complimentary post works EPC has been completed. + # GREEN - Installer advised install complete. + # RED - Cancelled + # NO FILL - No official update from installer (could be installed or cancelled) + + survey_list["row_colour_name"] = np.where( + survey_list["row_colour"] == survey_list_colours["red"], "red", + np.where(survey_list["row_colour"] == survey_list_colours["green"], "green", + np.where(survey_list["row_colour"] == survey_list_colours["purple"], "purple", "yellow")) + ) + + survey_list["row_meaning"] = np.where( + survey_list["row_colour_name"] == "red", "Cancelled", + np.where( + survey_list["row_colour_name"] == "green", + "Installer advised install complete", + np.where( + survey_list["row_colour_name"] == "purple", + "Installer advised install complete and a complimentary post works EPC has been completed", + "No official update from installer (could be installed or cancelled)" + ) + ) + ) + + return survey_list + + def load(self): + + data = {} + for ha_name, file_config in self.files.items(): + # Load asset list + # logger.info("LOading asset list for {}".format(ha_name)) + asset_list = self.load_asset_list( + file_path=file_config["asset_list"]["filepath"], + ha_name=ha_name, + sheet_name=file_config["asset_list"]["sheetname"] + ) + + if file_config.get("survey_list"): + survey_list = self.load_survey_list( + file_path=file_config["survey_list"]["filepath"], + ha_name=ha_name, + sheet_name=file_config["survey_list"]["sheetname"] + ) + else: + survey_list = None + + data[ha_name] = { + "asset_list": asset_list, + "survey_list": survey_list + } + + +def app(): + """ + This app contains the housign association analysis for HAs 1, 6, 14, 39 and 107. + Only HA 6 has surveys + :return: + """ + + files = { + "ha_1": { + "asset_list": { + "filepath": "etl/eligibility/ha_15_32/HA 1 - ASSET LIST.xlsx", + "sheetname": "HA 1" + } + }, + "ha_6": { + "asset_list": { + "filepath": "etl/eligibility/ha_15_32/HA 6 - ASSET LIST.xlsx", + "sheetname": "HA 6" + }, + "survey_list": { + "filepath": "etl/eligibility/ha_15_32/HA 6 - SURVEY LIST.xlsx", + "sheetname": "HA 6" + } + }, + "ha_14": {"asset_list": "etl/eligibility/ha_15_32/HA 14 - ASSET LIST.xlsx"}, + "ha_39": {"asset_list": "etl/eligibility/ha_15_32/HA 39 - ASSET LIST.xlsx"}, + "ha_107": {"asset_list": "etl/eligibility/ha_15_32/HA 107 - ASSET LIST.xlsx"} + } + + loader = DataLoader(files) From b22003d2066b4de6b9d3c1aba9091cc5bf98b09b Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Mon, 22 Jan 2024 11:12:06 +0000 Subject: [PATCH 221/526] Read in survey list for HA 6 --- .../ha_15_32/ha_analysis_batch_3.py | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index 7c28d481..9a95cd21 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -33,6 +33,9 @@ class DataLoader: }, "ha_6": { "asset_list": {"red": "FFFF0000", "green": "FF00B050"}, + "survey_list": { + "green": "FF92D050", "purple": "FF7030A0", "red": "FFFF0000", "blue": "FF00B0F0" + } }, } @@ -57,6 +60,7 @@ class DataLoader: rows_colors.append(row_color) asset_list = pd.DataFrame(rows_data, columns=sheet_colnames) + asset_list = asset_list.loc[:, asset_list.columns.notnull()] asset_list['row_color'] = rows_colors asset_list_colours = self.COLOUR_CONFIG[ha_name]["asset_list"] @@ -92,20 +96,24 @@ class DataLoader: survey_colors.append(row_color) survey_list = pd.DataFrame(survey_rows, columns=[cell.value for cell in survey_sheet[1]]) + # Remove columns that are None + survey_list = survey_list.loc[:, survey_list.columns.notnull()] survey_list["row_colour"] = survey_colors - survey_list_colours = self.COLOUR_CONFIG[ha_name]["asset_list"] + survey_list_colours = self.COLOUR_CONFIG[ha_name]["survey_list"] # The survey list has 4 possible colours: # PURPLE - Installer advised install complete and a complimentary post works EPC has been completed. # GREEN - Installer advised install complete. # RED - Cancelled + # BLUE - Loft Only Installed # NO FILL - No official update from installer (could be installed or cancelled) survey_list["row_colour_name"] = np.where( survey_list["row_colour"] == survey_list_colours["red"], "red", np.where(survey_list["row_colour"] == survey_list_colours["green"], "green", - np.where(survey_list["row_colour"] == survey_list_colours["purple"], "purple", "yellow")) + np.where(survey_list["row_colour"] == survey_list_colours["purple"], "purple", + np.where(survey_list["row_colour"] == survey_list_colours["blue"], "blue", "no fill"))) ) survey_list["row_meaning"] = np.where( @@ -116,7 +124,11 @@ class DataLoader: np.where( survey_list["row_colour_name"] == "purple", "Installer advised install complete and a complimentary post works EPC has been completed", - "No official update from installer (could be installed or cancelled)" + np.where( + survey_list["row_colour_name"] == "blue", + "Loft Only Installed", + "No official update from installer (could be installed or cancelled)" + ) ) ) ) From f1670498d1fcc55473f63ca76287fe3309a648d7 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Mon, 22 Jan 2024 11:15:56 +0000 Subject: [PATCH 222/526] Setting up to merge HA6 --- .../ha_15_32/ha_analysis_batch_3.py | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index 9a95cd21..bd2c6c99 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -77,9 +77,12 @@ class DataLoader: ) ) + # Add in asset_list_row_id + asset_list["asset_list_row_id"] = [ha_name + str(i) for i in range(0, len(asset_list))] + return asset_list - def load_survey_list(self, file_path, ha_name, sheet_name=None): + def load_survey_list(self, file_path, ha_name, asset_list, sheet_name=None): survey_workbook = openpyxl.load_workbook(file_path) if sheet_name is not None: survey_sheet = survey_workbook[sheet_name] @@ -133,8 +136,22 @@ class DataLoader: ) ) + # Add in asset_list_row_id + survey_list["survey_list_row_id"] = [ha_name + str(i) for i in range(0, len(survey_list))] + + # We now do the matching between the asset list and the survey list. + # What we'll get from this is a lookup table from the asset list to the survey list + + if ha_name == "ha_6": + self.merge_ha_6(asset_list, survey_list) + else: + raise NotImplementedError("Only HA 6 has surveys") + return survey_list + def merge_ha_6(self, asset_list, survey_list): + pass + def load(self): data = {} From cf9253d06201bbadca263eef269de973957b9556 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Mon, 22 Jan 2024 11:41:52 +0000 Subject: [PATCH 223/526] working on matching code for HA6 asset and survey lists --- .../ha_15_32/ha_analysis_batch_3.py | 49 +++++++++++++++++-- 1 file changed, 45 insertions(+), 4 deletions(-) diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index bd2c6c99..7fbddd54 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -52,7 +52,7 @@ class DataLoader: rows_data = [] rows_colors = [] - for row in sheet.iter_rows(min_row=2, values_only=False): # Assuming the first row is headers + for row in tqdm(sheet.iter_rows(min_row=2, values_only=False)): # Assuming the first row is headers row_data = [cell.value for cell in row] # This will get you the cell values row_color = row[0].fill.start_color.index if row[0].fill.start_color.index != '00000000' else None # row_color = COLOR_INDEX[row_color] @@ -137,7 +137,7 @@ class DataLoader: ) # Add in asset_list_row_id - survey_list["survey_list_row_id"] = [ha_name + str(i) for i in range(0, len(survey_list))] + survey_list["survey_list_row_id"] = [ha_name + "_surveys_" + str(i) for i in range(0, len(survey_list))] # We now do the matching between the asset list and the survey list. # What we'll get from this is a lookup table from the asset list to the survey list @@ -150,14 +150,53 @@ class DataLoader: return survey_list def merge_ha_6(self, asset_list, survey_list): - pass + + # Prepare the asset list + asset_list["matching_address"] = asset_list["propertyaddress"].str.lower().strip() + asset_list["matching_postcode"] = asset_list["Post Code"].str.lower().strip() + + split_addresses = asset_list['matching_address'].str.split(',', expand=True) + split_addresses.columns = ['temp', 'address2', 'address3', 'address4', 'address5'] + house_numbers = split_addresses['temp'].str.split(' ', expand=True) + house_numbers.columns = ['HouseNo', 'part1', 'part2', "part3", "part4", "part5"] + + asset_list = pd.concat([asset_list, house_numbers[["HouseNo"]]], axis=1) + del split_addresses, house_numbers + + matching_lookup = [] + for _, row in tqdm(survey_list.iterrows(), total=len(survey_list)): + house_number = row["NO."] + if isinstance(house_number, str): + house_number = house_number.lower().strip() + + # Filter on the first line of the address + df = asset_list[ + asset_list["matching_address"].str.contains(row["Street / Block Name"].lower().strip()) + ].copy() + df = df[df["matching_address"].str.contains(str(house_number))] + if df.shape[0] != 1: + df = df[df["HouseNo"] == str(house_number)] + if df.shape[0] != 1: + df = df[df["matching_postcode"].str.lower().str.contains(row["Post Code"].lower())] + if df.shape[0] != 1: + print(row["Street / Block Name"]) + print(house_number) + print(row["Post Code"].lower()) + raise ValueError("Investigate") + + matching_lookup.append( + { + "survey_list_row_id": row["survey_list_row_id"], + "asset_list_row_id": df["asset_list_row_id"].values[0], + } + ) def load(self): data = {} for ha_name, file_config in self.files.items(): # Load asset list - # logger.info("LOading asset list for {}".format(ha_name)) + logger.info("Loading asset list for {}".format(ha_name)) asset_list = self.load_asset_list( file_path=file_config["asset_list"]["filepath"], ha_name=ha_name, @@ -165,6 +204,7 @@ class DataLoader: ) if file_config.get("survey_list"): + logger.info("Loading survey list for {}".format(ha_name)) survey_list = self.load_survey_list( file_path=file_config["survey_list"]["filepath"], ha_name=ha_name, @@ -209,3 +249,4 @@ def app(): } loader = DataLoader(files) + loader.load() From 8c61cca85d821b5fa7c2901bfa164249f8c1dce6 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Mon, 22 Jan 2024 11:47:08 +0000 Subject: [PATCH 224/526] matching 7% complete --- etl/eligibility/ha_15_32/ha_analysis_batch_3.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index 7fbddd54..257e71d2 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -151,9 +151,12 @@ class DataLoader: def merge_ha_6(self, asset_list, survey_list): + # Correct the asset list + asset_list["propertyaddress"] = asset_list["propertyaddress"].str.replace("Baggott Place", "Baggotts Place") + # Prepare the asset list - asset_list["matching_address"] = asset_list["propertyaddress"].str.lower().strip() - asset_list["matching_postcode"] = asset_list["Post Code"].str.lower().strip() + asset_list["matching_address"] = asset_list["propertyaddress"].str.lower().str.strip() + asset_list["matching_postcode"] = asset_list["Post Code"].str.lower().str.strip() split_addresses = asset_list['matching_address'].str.split(',', expand=True) split_addresses.columns = ['temp', 'address2', 'address3', 'address4', 'address5'] From 1e52fe7fb97061d64194456e6d56bd814b660cf7 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Mon, 22 Jan 2024 11:51:28 +0000 Subject: [PATCH 225/526] 11% complete matching --- etl/eligibility/ha_15_32/ha_analysis_batch_3.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index 257e71d2..3bfea948 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -166,6 +166,14 @@ class DataLoader: asset_list = pd.concat([asset_list, house_numbers[["HouseNo"]]], axis=1) del split_addresses, house_numbers + # Correct the survey list + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace( + "Seabridge Road", "Seabridge Lane" + ) + + # Strip out /KNUTTON from the street name + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace("/KNUTTON", "") + matching_lookup = [] for _, row in tqdm(survey_list.iterrows(), total=len(survey_list)): house_number = row["NO."] From 7a2c90cbf36c7e1d73452527683d52e8719be382 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Mon, 22 Jan 2024 11:54:20 +0000 Subject: [PATCH 226/526] matching 23% complete --- etl/eligibility/ha_15_32/ha_analysis_batch_3.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index 3bfea948..dfbd4fa4 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -174,6 +174,18 @@ class DataLoader: # Strip out /KNUTTON from the street name survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace("/KNUTTON", "") + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace( + "Clevend Road", "Cleveland Road" + ) + + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace( + "TURNERS AVENUE", "Turner Avenue" + ) + + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace( + "WEDGEWWOD AVENUE", "Wedgwood Avenue" + ) + matching_lookup = [] for _, row in tqdm(survey_list.iterrows(), total=len(survey_list)): house_number = row["NO."] From ed0bbf44c76a1303fac20814875f3e99798ed9bd Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Mon, 22 Jan 2024 12:02:43 +0000 Subject: [PATCH 227/526] matching 34% complete --- etl/eligibility/ha_15_32/ha_analysis_batch_3.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index dfbd4fa4..9cae6e37 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -153,6 +153,8 @@ class DataLoader: # Correct the asset list asset_list["propertyaddress"] = asset_list["propertyaddress"].str.replace("Baggott Place", "Baggotts Place") + asset_list["propertyaddress"] = asset_list["propertyaddress"].str.replace("Cherry Tree", "Cherrytree") + asset_list["propertyaddress"] = asset_list["propertyaddress"].str.replace("Maryhill Close", "Mary Hill Close") # Prepare the asset list asset_list["matching_address"] = asset_list["propertyaddress"].str.lower().str.strip() @@ -185,6 +187,8 @@ class DataLoader: survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace( "WEDGEWWOD AVENUE", "Wedgwood Avenue" ) + # The cherrytree record has wrong postcode + survey_list.loc[survey_list["Street / Block Name"] == "Cherrytree road", "Post Code"] = "ST5 7BP" matching_lookup = [] for _, row in tqdm(survey_list.iterrows(), total=len(survey_list)): From 702de41d464e27cf4dad6db118dd1ac367e99c27 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Mon, 22 Jan 2024 12:36:03 +0000 Subject: [PATCH 228/526] matching 42% complete --- etl/eligibility/ha_15_32/ha_analysis_batch_3.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index 9cae6e37..5b2cefcd 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -190,6 +190,20 @@ class DataLoader: # The cherrytree record has wrong postcode survey_list.loc[survey_list["Street / Block Name"] == "Cherrytree road", "Post Code"] = "ST5 7BP" + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace( + "MONUMENT RD", "Monument Road" + ) + + # Generally replace " RD" with " Road" + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace(" RD", " Road") + + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace( + "HILARY Road", "Hillary Road" + ) + + # Remove full stops from the street name + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace(".", "") + matching_lookup = [] for _, row in tqdm(survey_list.iterrows(), total=len(survey_list)): house_number = row["NO."] From 4601edbf27f3dd4de5d6df05495d3cfdd1f4e74d Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Mon, 22 Jan 2024 12:42:01 +0000 Subject: [PATCH 229/526] matching 51% complete --- etl/eligibility/ha_15_32/ha_analysis_batch_3.py | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index 5b2cefcd..ff717f86 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -204,6 +204,21 @@ class DataLoader: # Remove full stops from the street name survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace(".", "") + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace( + "Chatworth road", "Chatsworth Place" + ) + + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace( + "Wood Croft", "Woodcroft" + ) + + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace( + "Milstone Avenue", "Millstone Avenue" + ) + + # Strip out /TALKE from the street name + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace("/TALKE", "") + matching_lookup = [] for _, row in tqdm(survey_list.iterrows(), total=len(survey_list)): house_number = row["NO."] From 96893aae14c3896a62fbb8c76a58e41ea567a3e3 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Mon, 22 Jan 2024 16:51:43 +0000 Subject: [PATCH 230/526] matching 61% complete --- etl/eligibility/ha_15_32/ha_analysis_batch_3.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index ff717f86..261c0fd4 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -219,6 +219,10 @@ class DataLoader: # Strip out /TALKE from the street name survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace("/TALKE", "") + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace( + "Woodcutts Street", "Woodshutts Street" + ) + matching_lookup = [] for _, row in tqdm(survey_list.iterrows(), total=len(survey_list)): house_number = row["NO."] From a2a8bc012e51b1f2d9977e865e216c10f14b9ba0 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Mon, 22 Jan 2024 17:13:35 +0000 Subject: [PATCH 231/526] matching 82% complete --- .../ha_15_32/ha_analysis_batch_3.py | 41 ++++++++++++++++++- 1 file changed, 39 insertions(+), 2 deletions(-) diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index 261c0fd4..3a5b4ab4 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -142,12 +142,13 @@ class DataLoader: # We now do the matching between the asset list and the survey list. # What we'll get from this is a lookup table from the asset list to the survey list + matched_lookup = pd.DataFrame() if ha_name == "ha_6": - self.merge_ha_6(asset_list, survey_list) + matched_lookup = self.merge_ha_6(asset_list, survey_list) else: raise NotImplementedError("Only HA 6 has surveys") - return survey_list + return survey_list, matched_lookup def merge_ha_6(self, asset_list, survey_list): @@ -223,6 +224,42 @@ class DataLoader: "Woodcutts Street", "Woodshutts Street" ) + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace( + "HILLARY AVENUE", "Hillary Road" + ) + + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace( + "HILLARY AVENUE", "Hillary Road" + ) + + # Replace " Rd" with " Road" + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace(" Rd", " Road") + + # We have a record listed as 19, MAPLE AVENUE ST7 1JX, when it should be 19, Hollins Crescent ST7 1JX + survey_list.loc[ + (survey_list["Street / Block Name"] == "MAPLE AVENUE") & + (survey_list["NO."].isin([19])) & + (survey_list["Post Code"] == "ST7 1JX"), + "Street / Block Name" + ] = "Hollins Crescent" + + # However, some of the maple avenue records, are indeed Maple avenue, but are listed with the wrong postcode. + # E.g. number 26 + survey_list.loc[ + (survey_list["Street / Block Name"] == "MAPLE AVENUE") & + (survey_list["NO."].isin([26])) & + (survey_list["Post Code"] == "ST7 1JX"), + "Post Code" + ] = "ST7 1JW" + + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace( + "BURSLEY Road", "Bursley Way" + ) + + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace( + "Brittania Avenue", "Brittain Avenue" + ) + matching_lookup = [] for _, row in tqdm(survey_list.iterrows(), total=len(survey_list)): house_number = row["NO."] From 48ec641675a34b4c7c8b6c1cdbae62ecf2cc45d3 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Mon, 22 Jan 2024 17:17:57 +0000 Subject: [PATCH 232/526] 82% complete --- etl/eligibility/ha_15_32/ha_analysis_batch_3.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index 3a5b4ab4..61a90d14 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -156,6 +156,7 @@ class DataLoader: asset_list["propertyaddress"] = asset_list["propertyaddress"].str.replace("Baggott Place", "Baggotts Place") asset_list["propertyaddress"] = asset_list["propertyaddress"].str.replace("Cherry Tree", "Cherrytree") asset_list["propertyaddress"] = asset_list["propertyaddress"].str.replace("Maryhill Close", "Mary Hill Close") + asset_list["propertyaddress"] = asset_list["propertyaddress"].str.replace("Moffat Way", "Moffatt Way") # Prepare the asset list asset_list["matching_address"] = asset_list["propertyaddress"].str.lower().str.strip() @@ -260,6 +261,9 @@ class DataLoader: "Brittania Avenue", "Brittain Avenue" ) + # Moffat Way + # Moffatt Way + matching_lookup = [] for _, row in tqdm(survey_list.iterrows(), total=len(survey_list)): house_number = row["NO."] From 90a47d765b315f78c47ce1f4db4851b5cfa9e633 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Mon, 22 Jan 2024 17:46:20 +0000 Subject: [PATCH 233/526] matching 89% complete --- etl/eligibility/ha_15_32/ha_analysis_batch_3.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index 61a90d14..05c0299c 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -142,7 +142,6 @@ class DataLoader: # We now do the matching between the asset list and the survey list. # What we'll get from this is a lookup table from the asset list to the survey list - matched_lookup = pd.DataFrame() if ha_name == "ha_6": matched_lookup = self.merge_ha_6(asset_list, survey_list) else: @@ -261,8 +260,9 @@ class DataLoader: "Brittania Avenue", "Brittain Avenue" ) - # Moffat Way - # Moffatt Way + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace( + "Hawthorn Road", "Hawthorne Road" + ) matching_lookup = [] for _, row in tqdm(survey_list.iterrows(), total=len(survey_list)): @@ -274,6 +274,7 @@ class DataLoader: df = asset_list[ asset_list["matching_address"].str.contains(row["Street / Block Name"].lower().strip()) ].copy() + df = df[df["matching_address"].str.contains(str(house_number))] if df.shape[0] != 1: df = df[df["HouseNo"] == str(house_number)] From 4ed4c154805eb2f907b07200bd96b4bec8ed0566 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Mon, 22 Jan 2024 17:47:40 +0000 Subject: [PATCH 234/526] matching 95% complete --- etl/eligibility/ha_15_32/ha_analysis_batch_3.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index 05c0299c..52117d17 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -264,6 +264,10 @@ class DataLoader: "Hawthorn Road", "Hawthorne Road" ) + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace( + "Eastdale Place", "Easdale Place" + ) + matching_lookup = [] for _, row in tqdm(survey_list.iterrows(), total=len(survey_list)): house_number = row["NO."] From 709a50f02ef5b263d6c83b46aac8a1839ed98511 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Mon, 22 Jan 2024 18:46:43 +0000 Subject: [PATCH 235/526] setting up cache --- .../ha_15_32/ha_analysis_batch_3.py | 82 +++++++++++++++++-- utils/s3.py | 54 +++++++++++- 2 files changed, 129 insertions(+), 7 deletions(-) diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index 52117d17..bf91d8b6 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -6,7 +6,7 @@ from tqdm import tqdm from datetime import datetime import pandas as pd import numpy as np -from utils.s3 import read_from_s3, read_dataframe_from_s3_parquet +from utils.s3 import read_from_s3, read_dataframe_from_s3_parquet, save_pickle_to_s3, read_pickle_from_s3 from utils.logger import setup_logger from dotenv import load_dotenv from tqdm import tqdm @@ -39,8 +39,11 @@ class DataLoader: }, } - def __init__(self, files): + def __init__(self, files, use_cache): self.files = files + self.use_cache = use_cache + + self.data = {} def load_asset_list(self, file_path, ha_name, sheet_name=None): workbook = openpyxl.load_workbook(file_path) @@ -149,7 +152,8 @@ class DataLoader: return survey_list, matched_lookup - def merge_ha_6(self, asset_list, survey_list): + @staticmethod + def merge_ha_6(asset_list, survey_list): # Correct the asset list asset_list["propertyaddress"] = asset_list["propertyaddress"].str.replace("Baggott Place", "Baggotts Place") @@ -268,8 +272,39 @@ class DataLoader: "Eastdale Place", "Easdale Place" ) + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace( + "Wedgewood Road", "Wedgwood Road" + ) + + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace( + "Droitwich Drive", "Droitwich Close" + ) + + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace( + "Longdale Road", "Langdale Road" + ) + + # We have 2 addresses in the survey list that don't have postcodes. We'll manually add them in + survey_list.loc[ + (survey_list["Street / Block Name"] == "Rogers Avenue") & + pd.isnull(survey_list["Post Code"]), + "Post Code" + ] = "ST5 9AT" + + survey_list.loc[ + (survey_list["Street / Block Name"] == "Cedar Road") & + pd.isnull(survey_list["Post Code"]), + "Post Code" + ] = "ST5 7BY" + + missed_postcodes = [ + postcode.lower() for postcode in survey_list["Post Code"] if + postcode.lower() not in asset_list["matching_postcode"].values + ] + matching_lookup = [] for _, row in tqdm(survey_list.iterrows(), total=len(survey_list)): + house_number = row["NO."] if isinstance(house_number, str): house_number = house_number.lower().strip() @@ -285,6 +320,16 @@ class DataLoader: if df.shape[0] != 1: df = df[df["matching_postcode"].str.lower().str.contains(row["Post Code"].lower())] if df.shape[0] != 1: + postcode_lower = row["Post Code"].lower() + if postcode_lower in missed_postcodes: + matching_lookup.append( + { + "survey_list_row_id": row["survey_list_row_id"], + "asset_list_row_id": None, + } + ) + continue + print(row["Street / Block Name"]) print(house_number) print(row["Post Code"].lower()) @@ -297,8 +342,19 @@ class DataLoader: } ) + matching_lookup = pd.DataFrame(matching_lookup) + + return matching_lookup + def load(self): + if self.use_cache: + self.data = read_pickle_from_s3( + bucket_name="retrofit-datalake-dev", + s3_file_name="ha-analysis/batch3-inputs.pickle", + ) + return + data = {} for ha_name, file_config in self.files.items(): # Load asset list @@ -311,19 +367,31 @@ class DataLoader: if file_config.get("survey_list"): logger.info("Loading survey list for {}".format(ha_name)) - survey_list = self.load_survey_list( + survey_list, matched_lookup = self.load_survey_list( file_path=file_config["survey_list"]["filepath"], ha_name=ha_name, sheet_name=file_config["survey_list"]["sheetname"] ) else: survey_list = None + matched_lookup = None data[ha_name] = { "asset_list": asset_list, - "survey_list": survey_list + "survey_list": survey_list, + "matched_lookup": matched_lookup } + self.data = data + + # Cache the data in s3 + # We need to pickle the data and store in s3 + save_pickle_to_s3( + data=self.data, + bucket_name="retrofit-datalake-dev", + s3_file_name="ha-analysis/batch3-inputs.pickle", + ) + def app(): """ @@ -332,6 +400,8 @@ def app(): :return: """ + use_cache = False + files = { "ha_1": { "asset_list": { @@ -354,5 +424,5 @@ def app(): "ha_107": {"asset_list": "etl/eligibility/ha_15_32/HA 107 - ASSET LIST.xlsx"} } - loader = DataLoader(files) + loader = DataLoader(files, use_cache) loader.load() diff --git a/utils/s3.py b/utils/s3.py index e63b7192..3d6cf038 100644 --- a/utils/s3.py +++ b/utils/s3.py @@ -1,3 +1,4 @@ +import pickle import boto3 from io import BytesIO, StringIO from botocore.exceptions import NoCredentialsError, PartialCredentialsError @@ -141,5 +142,56 @@ def save_csv_to_s3(dataframe, bucket_name, file_name): s3.put_object(Body=csv_buffer.getvalue(), Bucket=bucket_name, Key=file_name) return True except Exception as e: - print(f"An error occurred: {e}") + logger.error(f"An error occurred: {e}") return False + + +def save_pickle_to_s3(data, bucket_name, s3_file_name): + """ + Save an object to an S3 bucket as a pickle file. + + :param data: The data to save + :param bucket_name: The name of the S3 bucket + :param s3_file_name: The file name to use for the saved data in S3 (should end in .pkl) + """ + # Serialize data to a pickle format + try: + serialized_data = pickle.dumps(data) + except Exception as e: + print(f'Failed to serialize data: {str(e)}') + return + + # Use save_data_to_s3 function to upload the serialized data to S3 + save_data_to_s3(serialized_data, bucket_name, s3_file_name) + + +def read_pickle_from_s3(bucket_name, s3_file_name): + """ + Read a pickle file from an S3 bucket and return the data. + + :param bucket_name: The name of the S3 bucket + :param s3_file_name: The file name of the pickle file in S3 + :return: The data read from the pickle file + """ + try: + s3 = boto3.client('s3') + s3_response = s3.get_object(Bucket=bucket_name, Key=s3_file_name) + serialized_data = s3_response['Body'].read() + except NoCredentialsError: + logger.errpr("Credentials not available.") + return None + except PartialCredentialsError: + logger.errpr("Incomplete credentials provided.") + return None + except Exception as e: + logger.errpr(f'Failed to download data from {bucket_name}/{s3_file_name}: {str(e)}') + return None + + # Deserialize data from pickle format + try: + data = pickle.loads(serialized_data) + except Exception as e: + logger.errpr(f'Failed to deserialize data: {str(e)}') + return None + + return data From 0620c45a223e542218caa84211c695e1461b385c Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Mon, 22 Jan 2024 18:59:53 +0000 Subject: [PATCH 236/526] Added read for other ha files --- .../ha_15_32/ha_analysis_batch_3.py | 31 +++++++++++++++++-- 1 file changed, 28 insertions(+), 3 deletions(-) diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index bf91d8b6..85f8704d 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -37,6 +37,15 @@ class DataLoader: "green": "FF92D050", "purple": "FF7030A0", "red": "FFFF0000", "blue": "FF00B0F0" } }, + "ha_14": { + "asset_list": {"red": "FFFF0000", "green": "FF00B050"}, + }, + "ha_39": { + "asset_list": {"red": "FFFF0000", "green": "FF00B050"}, + }, + "ha_107": { + "asset_list": {"red": "FFFF0000", "green": "FF00B050"}, + } } def __init__(self, files, use_cache): @@ -368,6 +377,7 @@ class DataLoader: if file_config.get("survey_list"): logger.info("Loading survey list for {}".format(ha_name)) survey_list, matched_lookup = self.load_survey_list( + asset_list=asset_list, file_path=file_config["survey_list"]["filepath"], ha_name=ha_name, sheet_name=file_config["survey_list"]["sheetname"] @@ -419,9 +429,24 @@ def app(): "sheetname": "HA 6" } }, - "ha_14": {"asset_list": "etl/eligibility/ha_15_32/HA 14 - ASSET LIST.xlsx"}, - "ha_39": {"asset_list": "etl/eligibility/ha_15_32/HA 39 - ASSET LIST.xlsx"}, - "ha_107": {"asset_list": "etl/eligibility/ha_15_32/HA 107 - ASSET LIST.xlsx"} + "ha_14": { + "asset_list": { + "filepath": "etl/eligibility/ha_15_32/HA 14 - ASSET LIST.xlsx", + "sheetname": "HA 14" + } + }, + "ha_39": { + "asset_list": { + "filepath": "etl/eligibility/ha_15_32/HA 39 - ASSET LIST.xlsx", + "sheetname": "Sheet1" + } + }, + "ha_107": { + "asset_list": { + "filepath": "etl/eligibility/ha_15_32/HA 107 - ASSET LIST.xlsx", + "sheetname": "HA 107" + } + } } loader = DataLoader(files, use_cache) From 9ac6b25b9fa1adf91926109d6a5610d50bee28b8 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Tue, 23 Jan 2024 18:06:34 +0000 Subject: [PATCH 237/526] improving data read code to create standardised matching_address and house number --- backend/ml_models/Valuation.py | 2 + .../ha_15_32/ha_analysis_batch_3.py | 134 +++++++++++++++--- etl/testing_data/livewest_pilot.py | 38 +++++ .../the_guiness_partnership_pilot.py | 38 +++++ 4 files changed, 192 insertions(+), 20 deletions(-) create mode 100644 etl/testing_data/livewest_pilot.py create mode 100644 etl/testing_data/the_guiness_partnership_pilot.py diff --git a/backend/ml_models/Valuation.py b/backend/ml_models/Valuation.py index dadef9a9..ff771252 100644 --- a/backend/ml_models/Valuation.py +++ b/backend/ml_models/Valuation.py @@ -22,6 +22,8 @@ class PropertyValuation: 100021192109: 650000, # Based on Zoopla 766249482: 358000, # Based on Zoopla estimate for 19 Spring Lane, 3 bedroom semi-detached 100120703802: 277000, # Based on Zoopla + 10014469685: 286000, # Based on Zoopla + 10001328782: 196000, # Based on Zoopla } # We base our valuation uplifts on a number of sources diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index 85f8704d..54cd7c58 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -1,8 +1,7 @@ import os -import msgpack import openpyxl from pathlib import Path -from tqdm import tqdm +import msgpack from datetime import datetime import pandas as pd import numpy as np @@ -48,6 +47,14 @@ class DataLoader: } } + MIN_ROWS = { + "ha_1": 2, + "ha_6": 2, + "ha_14": 3, # The spreadsheet starts from the third row + "ha_39": 2, + "ha_107": 2, + } + def __init__(self, files, use_cache): self.files = files self.use_cache = use_cache @@ -60,11 +67,14 @@ class DataLoader: sheet = workbook[sheet_name] else: sheet = workbook.active - sheet_colnames = [cell.value for cell in sheet[1]] + sheet_colnames = [cell.value for cell in sheet[self.MIN_ROWS[ha_name] - 1]] rows_data = [] rows_colors = [] - for row in tqdm(sheet.iter_rows(min_row=2, values_only=False)): # Assuming the first row is headers + for row in tqdm( + sheet.iter_rows(min_row=self.MIN_ROWS[ha_name], values_only=False) + ): # Assuming the first row is headers + row_data = [cell.value for cell in row] # This will get you the cell values row_color = row[0].fill.start_color.index if row[0].fill.start_color.index != '00000000' else None # row_color = COLOR_INDEX[row_color] @@ -73,8 +83,12 @@ class DataLoader: asset_list = pd.DataFrame(rows_data, columns=sheet_colnames) asset_list = asset_list.loc[:, asset_list.columns.notnull()] + asset_list['row_color'] = rows_colors + # Remove entirely empty roww - consider all rows apart from row_color + asset_list = asset_list.loc[asset_list.loc[:, asset_list.columns != 'row_color'].notnull().any(axis=1)] + asset_list_colours = self.COLOUR_CONFIG[ha_name]["asset_list"] asset_list["row_colour_name"] = np.where( @@ -92,6 +106,54 @@ class DataLoader: # Add in asset_list_row_id asset_list["asset_list_row_id"] = [ha_name + str(i) for i in range(0, len(asset_list))] + # Prepare the asset list + # Depending on the HA, we need to rename some columns + if ha_name == "ha_1": + asset_list["matching_address"] = asset_list["Address"].str.lower().str.strip() + asset_list["matching_postcode"] = asset_list["Address - Postcode"].str.lower().str.strip() + elif ha_name == "ha_6": + asset_list["matching_address"] = asset_list["propertyaddress"].str.lower().str.strip() + asset_list["matching_postcode"] = asset_list["Post Code"].str.lower().str.strip() + elif ha_name == "ha_14": + # Create matching_address by concatenating Address 1, Address 2, Address 3, Address 4, Postcode + asset_list["matching_address"] = asset_list["Address 1"].str.lower().str.strip() + ", " + \ + asset_list["Address 2"].str.lower().str.strip() + ", " + \ + asset_list["Address 3"].str.lower().str.strip() + ", " + \ + asset_list["Address 4"].str.lower().str.strip() + ", " + \ + asset_list["Postcode"].str.lower().str.strip() + asset_list["matching_postcode"] = asset_list["Postcode"].str.lower().str.strip() + elif ha_name == "ha_39": + # Create matching_address by concatenating add_1, add_2, add_3, add_4, add_5, post_code + asset_list["matching_address"] = asset_list["add_1"].astype(str).str.lower().str.strip() + ", " + \ + asset_list["add_2"].str.lower().str.strip() + ", " + \ + asset_list["add_3"].str.lower().str.strip() + ", " + \ + asset_list["add_4"].str.lower().str.strip() + ", " + \ + asset_list["add_5"].str.lower().str.strip() + ", " + \ + asset_list["post_code"].str.lower().str.strip() + asset_list["matching_postcode"] = asset_list["post_code"].str.lower().str.strip() + elif ha_name == "ha_107": + # Create matching_address by concatenating House No, Street, Town, District, Postcode + asset_list["matching_address"] = asset_list["House No"].astype(str).str.lower().str.strip() + ", " + \ + asset_list["Street"].str.lower().str.strip() + ", " + \ + asset_list["Town"].str.lower().str.strip() + ", " + \ + asset_list["District"].str.lower().str.strip() + ", " + \ + asset_list["Postcode"].str.lower().str.strip() + asset_list["matching_postcode"] = asset_list["Postcode"].str.lower().str.strip() + else: + raise NotImplementedError("implement me") + + if ha_name in ["ha_107"]: + asset_list["HouseNo"] = asset_list["House No"].copy() + else: + split_addresses = asset_list['matching_address'].str.split(',', expand=True) + house_numbers = split_addresses[0].str.split(' ', expand=True) + # THe first column should be HouseNo - we aren't interested in the other columns, but we don't know how + # many columns there might be + house_numbers = house_numbers.iloc[:, 0:1] + house_numbers.columns = ['HouseNo'] + + asset_list = pd.concat([asset_list, house_numbers[["HouseNo"]]], axis=1) + return asset_list def load_survey_list(self, file_path, ha_name, asset_list, sheet_name=None): @@ -165,22 +227,10 @@ class DataLoader: def merge_ha_6(asset_list, survey_list): # Correct the asset list - asset_list["propertyaddress"] = asset_list["propertyaddress"].str.replace("Baggott Place", "Baggotts Place") - asset_list["propertyaddress"] = asset_list["propertyaddress"].str.replace("Cherry Tree", "Cherrytree") - asset_list["propertyaddress"] = asset_list["propertyaddress"].str.replace("Maryhill Close", "Mary Hill Close") - asset_list["propertyaddress"] = asset_list["propertyaddress"].str.replace("Moffat Way", "Moffatt Way") - - # Prepare the asset list - asset_list["matching_address"] = asset_list["propertyaddress"].str.lower().str.strip() - asset_list["matching_postcode"] = asset_list["Post Code"].str.lower().str.strip() - - split_addresses = asset_list['matching_address'].str.split(',', expand=True) - split_addresses.columns = ['temp', 'address2', 'address3', 'address4', 'address5'] - house_numbers = split_addresses['temp'].str.split(' ', expand=True) - house_numbers.columns = ['HouseNo', 'part1', 'part2', "part3", "part4", "part5"] - - asset_list = pd.concat([asset_list, house_numbers[["HouseNo"]]], axis=1) - del split_addresses, house_numbers + asset_list["propertyaddress"] = asset_list["propertyaddress"].str.replace("baggott place", "baggotts place") + asset_list["propertyaddress"] = asset_list["propertyaddress"].str.replace("cherry tree", "cherrytree") + asset_list["propertyaddress"] = asset_list["propertyaddress"].str.replace("maryhill close", "mary hill close") + asset_list["propertyaddress"] = asset_list["propertyaddress"].str.replace("moffat way", "moffatt way") # Correct the survey list survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace( @@ -403,6 +453,30 @@ class DataLoader: ) +def get_epc_data(loader): + if not loader.data: + raise ValueError("Data not found - please run loader.load() first") + + property_type_lookup = {} + + for ha_name, data_assets in loader.data.items(): + # For each HA, we read pull in the data required, and store in S3 + asset_list = data_assets["asset_list"] + + # We iterate through the asset list and pull what we need + for index, property_meta in tqdm(asset_list.iterrows(), total=len(asset_list)): + searcher = SearchEpc( + address1=property_meta["No."], + postcode=property_meta["Postcode"], + auth_token=EPC_AUTH_TOKEN, + os_api_key=None, + full_address=property_meta["Address"] + ) + searcher.ordnance_survey_client.property_type = property_type_lookup[property_meta["Type"]]["property-type"] + searcher.ordnance_survey_client.built_form = property_type_lookup[property_meta["Type"]]["built-form"] + searcher.find_property(skip_os=True) + + def app(): """ This app contains the housign association analysis for HAs 1, 6, 14, 39 and 107. @@ -451,3 +525,23 @@ def app(): loader = DataLoader(files, use_cache) loader.load() + + # TODO: We probably need to make sure that we have all of the columns that we need + + # We load in the additional data required to perform the analysis + + cleaned = read_from_s3( + s3_file_name="cleaned_epc_data/cleaned.bson", + bucket_name="retrofit-data-dev" + ) + cleaned = msgpack.unpackb(cleaned, raw=False) + + cleaning_data = read_dataframe_from_s3_parquet( + bucket_name="retrofit-data-dev", file_key="sap_change_model/cleaning_dataset.parquet", + ) + + created_at = datetime.now().isoformat() + + photo_supply_lookup, floor_area_decile_thresholds = SolarPhotoSupply.load(bucket="retrofit-data-dev") + + get_epc_data(loader) diff --git a/etl/testing_data/livewest_pilot.py b/etl/testing_data/livewest_pilot.py new file mode 100644 index 00000000..580c16d0 --- /dev/null +++ b/etl/testing_data/livewest_pilot.py @@ -0,0 +1,38 @@ +""" +This script will create an input csv for the recommendation engine and upload it to S3, which can be used for +testing +""" +import os + +import pandas as pd +from utils.s3 import save_csv_to_s3 + +EPC_AUTH_TOKEN = os.getenv("EPC_AUTH_TOKEN", None) +USER_ID = 8 +PORTFOLIO_ID = 61 + + +def app(): + pilot_file = pd.DataFrame( + [ + {"address": "42, Foxes Field", "postcode": "TR18 3RJ", "Notes": None}, + {"address": "11, Cranley Gardens", "postcode": "TQ13 8UT", "Notes": None}, + ] + ) + + # Store the data in s3 + filename = f"{USER_ID}/{PORTFOLIO_ID}/livewest_pilot_file.csv" + save_csv_to_s3( + dataframe=pilot_file, + bucket_name="retrofit-plan-inputs-dev", + file_name=filename + ) + + body = { + "portfolio_id": str(PORTFOLIO_ID), + "housing_type": "Social", + "goal": "Increase EPC", + "goal_value": "C", + "trigger_file_path": filename + } + print(body) diff --git a/etl/testing_data/the_guiness_partnership_pilot.py b/etl/testing_data/the_guiness_partnership_pilot.py new file mode 100644 index 00000000..496ea7ea --- /dev/null +++ b/etl/testing_data/the_guiness_partnership_pilot.py @@ -0,0 +1,38 @@ +""" +This script will create an input csv for the recommendation engine and upload it to S3, which can be used for +testing +""" +import os + +import pandas as pd +from utils.s3 import save_csv_to_s3 + +EPC_AUTH_TOKEN = os.getenv("EPC_AUTH_TOKEN", None) +USER_ID = 8 +PORTFOLIO_ID = 59 + + +def app(): + pilot_file = pd.DataFrame( + [ + {"address": "10 Elm Close", "postcode": "CV37 8XL", "Notes": None}, + {"address": "21, Spring Lane", "postcode": "MK17 0QP", "Notes": None}, + ] + ) + + # Store the data in s3 + filename = f"{USER_ID}/{PORTFOLIO_ID}/the_guiness_partnership_pilot_file.csv" + save_csv_to_s3( + dataframe=pilot_file, + bucket_name="retrofit-plan-inputs-dev", + file_name=filename + ) + + body = { + "portfolio_id": str(PORTFOLIO_ID), + "housing_type": "Social", + "goal": "Increase EPC", + "goal_value": "C", + "trigger_file_path": filename + } + print(body) From 4b73aa75b2ea9db59b15886cf68f811402767f0a Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Tue, 23 Jan 2024 18:19:29 +0000 Subject: [PATCH 238/526] fixed the bug in matching ha6 assets and surveys --- etl/eligibility/ha_15_32/ha_analysis_batch_3.py | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index 54cd7c58..63a72714 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -226,11 +226,18 @@ class DataLoader: @staticmethod def merge_ha_6(asset_list, survey_list): - # Correct the asset list - asset_list["propertyaddress"] = asset_list["propertyaddress"].str.replace("baggott place", "baggotts place") - asset_list["propertyaddress"] = asset_list["propertyaddress"].str.replace("cherry tree", "cherrytree") - asset_list["propertyaddress"] = asset_list["propertyaddress"].str.replace("maryhill close", "mary hill close") - asset_list["propertyaddress"] = asset_list["propertyaddress"].str.replace("moffat way", "moffatt way") + # Correct the asset list across propertyaddress and matching_address + asset_list["propertyaddress"] = asset_list["propertyaddress"].str.replace("Baggott Place", "Baggotts Place") + asset_list["matching_address"] = asset_list["matching_address"].str.replace("baggott place", "baggotts place") + + asset_list["propertyaddress"] = asset_list["propertyaddress"].str.replace("Cherry Tree", "Cherrytree") + asset_list["matching_address"] = asset_list["matching_address"].str.replace("cherry tree", "cherrytree") + + asset_list["propertyaddress"] = asset_list["propertyaddress"].str.replace("Maryhill Close", "Mary Hill Close") + asset_list["matching_address"] = asset_list["matching_address"].str.replace("maryhill close", "mary hill close") + + asset_list["propertyaddress"] = asset_list["propertyaddress"].str.replace("Moffat Way", "Moffatt Way") + asset_list["matching_address"] = asset_list["matching_address"].str.replace("moffat way", "moffatt way") # Correct the survey list survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace( From 04aeaae613351c030af740b5f4d4637057bc43a2 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Wed, 24 Jan 2024 00:17:17 +0000 Subject: [PATCH 239/526] working on new ha batch --- backend/Property.py | 2 +- etl/eligibility/ha_15_32/app.py | 75 ++++----- .../ha_15_32/ha_analysis_batch_3.py | 144 ++++++++++++++++-- etl/epc/Record.py | 9 +- 4 files changed, 167 insertions(+), 63 deletions(-) diff --git a/backend/Property.py b/backend/Property.py index e6ae8bbe..e527c1ea 100644 --- a/backend/Property.py +++ b/backend/Property.py @@ -68,7 +68,7 @@ class Property(Definitions): self.in_conservation_area, self.is_listed, self.is_heritage = None, None, None self.restricted_measures = False self.year_built = epc_record.get("year_built") - self.number_of_rooms = epc_record.prepared_epc.get("number_heated_rooms") + self.number_of_rooms = epc_record.prepared_epc.get("number_habitable_rooms") self.age_band = epc_record.get("age_band") self.construction_age_band = epc_record.get("construction_age_band") self.number_of_floors = epc_record.get("number_of_floors") diff --git a/etl/eligibility/ha_15_32/app.py b/etl/eligibility/ha_15_32/app.py index ce216364..a68bf272 100644 --- a/etl/eligibility/ha_15_32/app.py +++ b/etl/eligibility/ha_15_32/app.py @@ -4,6 +4,7 @@ used by the Warmfront team, to identify which properties are eligible for ECO4 a work is being done in December 2023, prior to completion of acquisition """ import pickle +from etl.epc.Record import EPCRecord from pathlib import Path from tqdm import tqdm import pandas as pd @@ -345,48 +346,31 @@ def prepare_model_data_row( :param modelling_epc: :return: """ + + epc_records = { + 'original_epc': modelling_epc.copy(), + 'full_sap_epc': full_sap_epc.copy(), + 'old_data': old_data.copy(), + } + + prepared_epc = EPCRecord( + epc_records=epc_records, + run_mode="newdata", + cleaning_data=cleaning_data + ) + p = Property( id=property_id, postcode=modelling_epc["postcode"], address=modelling_epc["address1"], - data=modelling_epc, - old_data=old_data, - full_sap_epc=full_sap_epc + epc_record=prepared_epc ) - p.get_components(cleaned, photo_supply_lookup=photo_supply_lookup, - floor_area_decile_thresholds=floor_area_decile_thresholds) - - # THIS IS TEMP AND SHOULDN'T BE HERE - data_to_clean = p.get_model_data() - if data_to_clean["NUMBER_HEATED_ROOMS"] in ['', None]: - data_to_clean["NUMBER_HEATED_ROOMS"] = data_to_clean["NUMBER_HABITABLE_ROOMS"] - p.data["number-heated-rooms"] = data_to_clean["NUMBER_HABITABLE_ROOMS"] - - # This is temp - this should happen after scoring - cleaned_property_data = DataProcessor.apply_averages_cleaning( - data_to_clean=pd.DataFrame([dict(**data_to_clean, LOCAL_AUTHORITY=p.data["local-authority"])]), - cleaning_data=cleaning_data, - cols_to_merge_on=['PROPERTY_TYPE', 'BUILT_FORM', 'CONSTRUCTION_AGE_BAND', 'LOCAL_AUTHORITY'], + p.get_components( + cleaned, photo_supply_lookup=photo_supply_lookup, floor_area_decile_thresholds=floor_area_decile_thresholds ) - p.set_number_lighting_outlets(cleaned_property_data) - data_processor = DataProcessor(None, newdata=True) - data_processor.insert_data(pd.DataFrame([p.get_model_data()])) - - data_processor.pre_process() - - starting_epc_data = data_processor.get_component_features(suffix="_STARTING") - ending_epc_data = data_processor.get_component_features(suffix="_ENDING") - fixed_data = data_processor.get_fixed_features() - - # We update the ending record with the recommended updates and we set lodgement date to today - ending_epc_data["DAYS_TO_ENDING"] = data_processor.calculate_days_to(created_at) - - # We simulate the impact of the retrofit using expected performance of the wall and roof, - # after retrofit. We use the minimal u-values required to meet building regulations part L - # TODO: Check the performance of the materials warmfront's installers use, particularly for - # cavity + p.create_base_difference_epc_record(cleaned_lookup=cleaned) cavity_simulation = { "recommendation_id": "-".join([property_id, "cavity"]), @@ -402,21 +386,16 @@ def prepare_model_data_row( "parts": [{"depth": 270}] } - cavity_scoring = create_recommendation_scoring_data( - property=p, - recommendation=cavity_simulation, - starting_epc_data=starting_epc_data, - ending_epc_data=ending_epc_data, - fixed_data=fixed_data, - ) + simulations = [ + [cavity_simulation], + [loft_simulation] + ] - loft_scoring = create_recommendation_scoring_data( - property=p, - recommendation=loft_simulation, - starting_epc_data=starting_epc_data, - ending_epc_data=ending_epc_data, - fixed_data=fixed_data, - ) + p.adjust_difference_record_with_recommendations(simulations) + + # Make sure we definitely have the correct data + cavity_scoring = [x for x in p.recommendations_scoring_data if "cavity" in x["id"]][0] + loft_scoring = [x for x in p.recommendations_scoring_data if "loft" in x["id"]][0] return [cavity_scoring, loft_scoring] diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index 63a72714..1bb0f0c4 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -460,29 +460,155 @@ class DataLoader: ) -def get_epc_data(loader): +def get_epc_data( + loader, cleaned, cleaning_data, created_at, photo_supply_lookup, floor_area_decile_thresholds +): if not loader.data: raise ValueError("Data not found - please run loader.load() first") - property_type_lookup = {} + property_type_lookup = { + "ha_1": { + "built_form": { + 'Mid Terrace': 'Mid-Terrace', + 'Semi-Detached': 'Semi-Detached', + 'End Terrace': 'End-Terrace', + 'Detached': 'Detached', + 'Enclosed Mid': 'Mid-Terrace', + 'Detached Local Connect': 'Detached', + } + } + } for ha_name, data_assets in loader.data.items(): # For each HA, we read pull in the data required, and store in S3 - asset_list = data_assets["asset_list"] + asset_list = data_assets["asset_list"].copy() + + # If the survey list is missing, it means we have no yet completed any surveys and therefore should only + # consider the most recent EPC + consider_penultimate_epc = data_assets["survey_list"] is None # We iterate through the asset list and pull what we need + results = [] + scoring_data = [] for index, property_meta in tqdm(asset_list.iterrows(), total=len(asset_list)): + + if ha_name == "ha_1": + property_type = property_meta["Asset Type"] + # We correct a small error + if property_type == "a": + property_type = "House" + + # Remap bedsits to flats + if property_type in ["Bedsit", "Room"]: + property_type = "Flat" + + built_form = property_type_lookup[ha_name]["built_form"].get(property_meta["Property Type"], None) + else: + raise NotImplementedError("Implement me") + searcher = SearchEpc( - address1=property_meta["No."], - postcode=property_meta["Postcode"], + address1=property_meta["HouseNo"], + postcode=property_meta["matching_postcode"], auth_token=EPC_AUTH_TOKEN, os_api_key=None, - full_address=property_meta["Address"] + full_address=property_meta["matching_address"] ) - searcher.ordnance_survey_client.property_type = property_type_lookup[property_meta["Type"]]["property-type"] - searcher.ordnance_survey_client.built_form = property_type_lookup[property_meta["Type"]]["built-form"] + searcher.ordnance_survey_client.property_type = property_type + searcher.ordnance_survey_client.built_form = built_form searcher.find_property(skip_os=True) + if searcher.newest_epc.get("estimated"): + # We insert the row ID as our proxy for UPRN + searcher.newest_epc["uprn"] = int(property_meta["asset_list_row_id"].split(ha_name)[1]) + + newest_epc = searcher.newest_epc + older_epcs = searcher.older_epcs + full_sap_epc = searcher.full_sap_epc + + # If we have a survey list, we check the penultimate, because the property might have been installed + penultimate_epc = newest_epc + if consider_penultimate_epc: + # We also want to get the penultimate epc + penultimate_epc, _ = searcher.filter_newest_epc(older_epcs) + if not penultimate_epc: + penultimate_epc = newest_epc + + eligibility = Eligibility(epc=newest_epc, cleaned=cleaned) + eligibility.check_gbis_warmfront() + eligibility.check_eco4_warmfront() + + if (not eligibility.eco4_warmfront["eligible"]) and ( + not eligibility.gbis_warmfront + ) and consider_penultimate_epc: + # We check the penultimate epc + eligibility = Eligibility(epc=penultimate_epc, cleaned=cleaned) + eligibility.check_gbis_warmfront() + eligibility.check_eco4_warmfront() + # If this is the case, we need to update the older epcs + # We don't update just to make data cleaning easier + if penultimate_epc.get("estimated") is None: + older_epcs = [x for x in searcher.data["rows"] if x["lmk-key"] != penultimate_epc["lmk-key"]] + + # If the property is a cavity wall and it's filled, we produce an estimate for the age of the cavity + # Loft MUST be suitable + cavity_age = None + if ( + eligibility.walls["is_cavity_wall"] and + eligibility.walls["is_filled_cavity"] and + eligibility.loft["suitability"] and + eligibility.eco4_warmfront["message"] == "Failed due to full cavity - check cavity age" + ): + # We check the age of the cavity and if it's particularly old, we flag it + cavity_age = calculate_cavity_age(newest_epc, older_epcs, cleaned) + + # Full checks + eligibility.check_gbis() + eligibility.check_eco4() + + if eligibility.eco4_warmfront["eligible"]: + if eligibility.epc["uprn"] == "": + eligibility.epc["uprn"] = int(property_meta["asset_list_row_id"].split(ha_name)[1]) + + scoring_dictionary = prepare_model_data_row( + property_id=property_meta["asset_list_row_id"], + modelling_epc=eligibility.epc, + cleaned=cleaned, + cleaning_data=cleaning_data, + created_at=created_at, + old_data=older_epcs, + full_sap_epc=full_sap_epc, + photo_supply_lookup=photo_supply_lookup, + floor_area_decile_thresholds=floor_area_decile_thresholds + ) + scoring_data.extend(scoring_dictionary) + + results.append( + { + "row_id": property_meta["asset_list_row_id"], + "uprn": eligibility.epc["uprn"], + "property_type": eligibility.epc["property-type"], + "gbis_eligible": eligibility.gbis_warmfront, + "eco4_eligible": eligibility.eco4_warmfront["eligible"], + "eco4_message": eligibility.eco4_warmfront["message"], + "sap": float(eligibility.epc["current-energy-efficiency"]), + "gbis_eligible_future": eligibility.gbis["eligible"], + "gbis_eligible_future_message": eligibility.gbis["message"], + "eco4_eligible_future": eligibility.eco4["eligible"], + "eco4_eligible_future_message": eligibility.eco4["message"], + # Property components + "roof": eligibility.roof["clean_description"], + "walls": eligibility.walls["clean_description"], + "cavity_type": eligibility.cavity["type"], + "heating": eligibility.epc["mainheat-description"], + "tenure": eligibility.tenure, + "date_epc": eligibility.epc["lodgement-date"], + "loft_thickness": eligibility.roof["insulation_thickness"], + "cavity_age": cavity_age, + **eligibility.walls, + **eligibility.roof, + } + ) + def app(): """ @@ -491,7 +617,7 @@ def app(): :return: """ - use_cache = False + use_cache = True files = { "ha_1": { diff --git a/etl/epc/Record.py b/etl/epc/Record.py index 6fb4d5d9..f0bbcbfa 100644 --- a/etl/epc/Record.py +++ b/etl/epc/Record.py @@ -361,7 +361,7 @@ class EPCRecord: if not self.prepared_epc: raise ValueError("EPC Recrod doesn not contain epc data") - if self.prepared_epc["fixed-lighting-outlets-count"] == "": + if self.prepared_epc["fixed-lighting-outlets-count"] in ["", None] + list(DATA_ANOMALY_MATCHES): # We check old EPCs and the full SAP EPC @@ -537,7 +537,7 @@ class EPCRecord: else: value = 0 else: - value = int(value) + value = int(float(value)) self.prepared_epc[attribute] = value @@ -583,9 +583,8 @@ class EPCRecord: if not self.prepared_epc: raise ValueError("EPC Recrod doesn not contain epc data") - self.prepared_epc['photo-supply'] = float(self.prepared_epc['photo-supply']) if self.prepared_epc[ - 'photo-supply'] != "" \ - else None + self.prepared_epc['photo-supply'] = float(self.prepared_epc['photo-supply']) if ( + self.prepared_epc['photo-supply'] not in [None, ""]) else None def _clean_energy(self): """ From 013070073c9431db2471c5851a342e8d8779f869 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Wed, 24 Jan 2024 10:59:21 +0000 Subject: [PATCH 240/526] updated cleaning of construction age band to also clean the prepared epc --- etl/epc/Record.py | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/etl/epc/Record.py b/etl/epc/Record.py index f0bbcbfa..aac22618 100644 --- a/etl/epc/Record.py +++ b/etl/epc/Record.py @@ -618,9 +618,11 @@ class EPCRecord: if not self.prepared_epc: raise ValueError("EPC Recrod doesn not contain epc data") - self.construction_age_band = EPCDataProcessor.clean_construction_age_band( - self.prepared_epc["construction-age-band"]) - if self.construction_age_band in DATA_ANOMALY_MATCHES: + self.prepared_epc["construction-age-band"] = EPCDataProcessor.clean_construction_age_band( + self.prepared_epc["construction-age-band"] + ) + + if self.prepared_epc["construction-age-band"] in DATA_ANOMALY_MATCHES: if self.old_data: # Take the most recent max_datetime = max( @@ -630,15 +632,17 @@ class EPCRecord: most_recent = [old_record for old_record in self.old_data if old_record["lodgement-datetime"] == max_datetime] - self.construction_age_band = EPCDataProcessor.clean_construction_age_band( + self.prepared_epc["construction-age-band"] = EPCDataProcessor.clean_construction_age_band( most_recent[0]["construction-age-band"] ) + self.construction_age_band = self.prepared_epc["construction-age-band"] self.age_band = england_wales_age_band_lookup.get(self.construction_age_band) if (self.prepared_epc["transaction-type"] == "new dwelling") and (self.age_band is None): self.age_band = "L" self.construction_age_band = 'England and Wales: 2012 onwards' + self.prepared_epc["construction-age-band"] = self.construction_age_band if self.age_band is None: raise ValueError("age_band is missing") From f2872def6480cb000010e77431654dc62ee44f8d Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Wed, 24 Jan 2024 11:16:11 +0000 Subject: [PATCH 241/526] Adde None to DATA_ANOMALY_MATCHES --- etl/epc/settings.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/etl/epc/settings.py b/etl/epc/settings.py index 24c23ebc..33bab190 100644 --- a/etl/epc/settings.py +++ b/etl/epc/settings.py @@ -43,7 +43,9 @@ DATA_ANOMALY_MATCHES = { # contain a ‘null’ value. A resolution to correct these anomalies will be considered for future data releases. "NULL", # We sometimes see fields populated with just an empty string. - "" + "", + # We sometimes find None values - particulatly when we produce an estimated EPC + None, } DATA_ANOMALY_SUBSTRINGS = { From 60e3221fa312c813116889d46c6276b06f0b3068 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Wed, 24 Jan 2024 12:19:44 +0000 Subject: [PATCH 242/526] patching eligibility for missing rows in cleaned_lookup --- .../ha_15_32/ha_analysis_batch_3.py | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index 1bb0f0c4..14b6dfcf 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -485,7 +485,7 @@ def get_epc_data( # If the survey list is missing, it means we have no yet completed any surveys and therefore should only # consider the most recent EPC - consider_penultimate_epc = data_assets["survey_list"] is None + consider_penultimate_epc = data_assets["survey_list"] is not None # We iterate through the asset list and pull what we need results = [] @@ -669,6 +669,22 @@ def app(): ) cleaned = msgpack.unpackb(cleaned, raw=False) + # Patch to handle the a missing description + cleaned["floor-description"].extend( + [ + {'original_description': 'To external air, uninsulated (assumed)', + 'clean_description': 'To external air, no insulation', 'thermal_transmittance': None, + 'thermal_transmittance_unit': None, 'is_assumed': True, 'is_to_unheated_space': False, + 'is_to_external_air': True, 'is_suspended': False, 'is_solid': False, 'another_property_below': False, + 'insulation_thickness': 'none'}, + {'original_description': 'To unheated space, uninsulated (assumed)', + 'clean_description': 'To unheated space, uninsulated', 'thermal_transmittance': None, + 'thermal_transmittance_unit': None, 'is_assumed': True, 'is_to_unheated_space': True, + 'is_to_external_air': False, 'is_suspended': False, 'is_solid': False, 'another_property_below': False, + 'insulation_thickness': 'average'} + ] + ) + cleaning_data = read_dataframe_from_s3_parquet( bucket_name="retrofit-data-dev", file_key="sap_change_model/cleaning_dataset.parquet", ) From f5d780a1b0ab920cfdcaf69a0e6d341ef865e11c Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Wed, 24 Jan 2024 12:59:56 +0000 Subject: [PATCH 243/526] Added back in filling of age with national average --- .../ha_15_32/ha_analysis_batch_3.py | 21 +++++++++++++++++++ etl/epc/Record.py | 4 +++- 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index 14b6dfcf..9143df5f 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -610,6 +610,27 @@ def get_epc_data( ) +def analyse_ha_data(): + """ + The approach we take within this function is the following: + For properties that have been identified by warmfront as eligible properties, characterise them by scheme. The + characterisation can be broken down as the following: + 1) The property has been identified by Warmfront and is eligible for ECO4/GBIS work, under the strictest criteria + 2) The property has been identified by Warmfront, however it has a full cavity, and therefore would be subject to + a CIGA check + 3) The property has been identified by Warmfront, but the EPC shows that the property has more than 100mm loft + insulation + 4) The property has been identified by Warmfront, but doesn't look like a property that would likely qualify under + any cirsumstances, given the available data + + Then, for any property that has NOT been identifid by Warmfront, we identify properties that look like they would + qualify under the strictest criteria, and mark these as potential additional opportunities. + + :return: + """ + pass + + def app(): """ This app contains the housign association analysis for HAs 1, 6, 14, 39 and 107. diff --git a/etl/epc/Record.py b/etl/epc/Record.py index aac22618..9fcf31ff 100644 --- a/etl/epc/Record.py +++ b/etl/epc/Record.py @@ -645,7 +645,9 @@ class EPCRecord: self.prepared_epc["construction-age-band"] = self.construction_age_band if self.age_band is None: - raise ValueError("age_band is missing") + self.age_band = "C" + self.construction_age_band = "England and Wales: 1930-1949" + self.prepared_epc["construction-age-band"] = self.construction_age_band def _clean_year_built(self): """ From d557653129a3aac4b8b45d1c5d6a14d01ac6ac8b Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Wed, 24 Jan 2024 14:16:33 +0000 Subject: [PATCH 244/526] patched issue with cleaned lookup --- .../ha_15_32/ha_analysis_batch_3.py | 86 +++++++++++++++++++ 1 file changed, 86 insertions(+) diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index 9143df5f..85486e17 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -609,6 +609,75 @@ def get_epc_data( } ) + scoring_df = pd.DataFrame(scoring_data) + scoring_df = scoring_df.drop( + columns=[ + "rdsap_change", "heat_demand_change", "carbon_change", "sap_ending", "heat_demand_ending", + "carbon_ending" + ] + ) + + model_api = ModelApi(portfolio_id="-".join([ha_name, "eligibility"]), timestamp=created_at) + + all_predictions = model_api.predict_all( + df=scoring_df, + bucket="retrofit-data-dev", + prediction_buckets={ + "sap_change_predictions": "retrofit-sap-predictions-dev", + "heat_demand_predictions": "retrofit-heat-predictions-dev", + "carbon_change_predictions": "retrofit-carbon-predictions-dev" + } + ) + + results_df = pd.DataFrame(results) + + predictions = all_predictions["sap_change_predictions"].copy() + + predictions = predictions.rename(columns={"property_id": "row_id"}).merge( + results_df[["row_id", "sap"]], how="left", on="row_id" + ) + predictions["sap_uplift"] = predictions["predictions"] - predictions["sap"] + predictions = predictions.groupby("row_id")["sap_uplift"].sum().reset_index() + + results_df = results_df.merge( + predictions[["sap_uplift", "row_id"]], + how="left", + on="row_id" + ) + results_df["post_install_sap"] = results_df["sap"] + results_df["sap_uplift"] + + eligibility_assessment = [] + for _, row in results_df[results_df["eco4_eligible"] == True].iterrows(): + # The upgrade requirements are dependent on the current SAP + + # If the property is an F or G, it only needs to upgrade to an % + if row["sap"] <= 38: + if row["post_install_sap"] >= 57: + eligibility_classification = "highest confidence" + elif row["post_install_sap"] >= 55: + eligibility_classification = "high confidence" + elif row["post_install_sap"] >= 53: + eligibility_classification = "medium confidence" + else: + eligibility_classification = "unlikely" + else: + + if row["post_install_sap"] >= 71: + eligibility_classification = "highest confidence" + elif row["post_install_sap"] >= 69: + eligibility_classification = "high confidence" + elif row["post_install_sap"] >= 67: + eligibility_classification = "medium confidence" + else: + eligibility_classification = "unlikely" + + eligibility_assessment.append( + { + "row_id": row["row_id"], + "eligibility_classification": eligibility_classification + } + ) + def analyse_ha_data(): """ @@ -706,6 +775,23 @@ def app(): ] ) + # We treat unknown loft insulation as no insulation + cleaned["roof-description"].extend( + [ + {'original_description': 'Pitched, Unknown loft insulation', 'clean_description': 'Pitched, no insulation', + 'thermal_transmittance': None, 'thermal_transmittance_unit': None, 'is_pitched': True, + 'is_roof_room': False, + 'is_loft': False, 'is_flat': False, 'is_thatched': False, 'is_at_rafters': False, 'is_assumed': True, + 'has_dwelling_above': False, 'is_valid': True, 'insulation_thickness': 'none'} + ] + ) + + # We patch this record because there is another property below + for x in cleaned["floor-description"]: + if x["original_description"] == '(Same dwelling below) insulated (assumed)': + x["another_property_below"] = True + x["thermal_transmittance"] = 0 + cleaning_data = read_dataframe_from_s3_parquet( bucket_name="retrofit-data-dev", file_key="sap_change_model/cleaning_dataset.parquet", ) From edb541f3dc3dca9f03fc75b1e7e399fcf9d6790f Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Wed, 24 Jan 2024 14:36:46 +0000 Subject: [PATCH 245/526] patching heating controls --- backend/Property.py | 1 + etl/eligibility/ha_15_32/ha_analysis_batch_3.py | 10 ++++++++++ 2 files changed, 11 insertions(+) diff --git a/backend/Property.py b/backend/Property.py index e527c1ea..4d26857d 100644 --- a/backend/Property.py +++ b/backend/Property.py @@ -319,6 +319,7 @@ class Property(Definitions): attributes = [ x for x in cleaned[description] if x["original_description"] == self.data[description] ] + if len(attributes) > 1: raise ValueError("Either No attributes or multiple found for %s" % description) diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index 85486e17..66183599 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -786,6 +786,16 @@ def app(): ] ) + # Patch mainheatcont-description + cleaned["mainheatcont-description"].extend( + [ + {'original_description': 'None', 'clean_description': 'None', 'thermostatic_control': False, + 'charging_system': False, 'switch_system': False, 'no_control': False, 'dhw_control': False, + 'community_heating': False, 'multiple_room_thermostats': False, 'auxiliary_systems': False, 'trvs': False, + 'rate_control': False} + ] + ) + # We patch this record because there is another property below for x in cleaned["floor-description"]: if x["original_description"] == '(Same dwelling below) insulated (assumed)': From ef27d6b1640b6f2003b0d6b3c30c40ce15418486 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Wed, 24 Jan 2024 21:21:01 +0000 Subject: [PATCH 246/526] Added booleans to clean missings --- BaseUtility.py | 4 +- backend/Property.py | 9 +- etl/eligibility/Eligibility.py | 15 ++ .../ha_15_32/ha_analysis_batch_3.py | 237 +++++++++++++++++- etl/epc/Dataset.py | 33 ++- etl/epc/settings.py | 2 + 6 files changed, 288 insertions(+), 12 deletions(-) diff --git a/BaseUtility.py b/BaseUtility.py index bd2f091e..e799144d 100644 --- a/BaseUtility.py +++ b/BaseUtility.py @@ -45,7 +45,9 @@ class Definitions: # contain a ‘null’ value. A resolution to correct these anomalies will be considered for future data releases. "NULL", # We sometimes see fields populated with just an empty string. - "" + "", + # An older value which rarely shows up but has been seen in the data. + "UNKNOWN", } DATA_ANOMALY_SUBSTRINGS = { diff --git a/backend/Property.py b/backend/Property.py index 4d26857d..82695b75 100644 --- a/backend/Property.py +++ b/backend/Property.py @@ -13,7 +13,7 @@ from etl.epc_clean.epc_attributes.all_cleaners import all_cleaner_map from etl.solar.SolarPhotoSupply import SolarPhotoSupply from utils.logger import setup_logger from utils.s3 import read_dataframe_from_s3_parquet -from BaseUtility import Definitions +from etl.epc.settings import DATA_ANOMALY_MATCHES from recommendations.rdsap_tables import england_wales_age_band_lookup, FLOOR_LEVEL_MAP from recommendations.recommendation_utils import ( estimate_perimeter, get_wall_type, estimate_external_wall_area, esimtate_pitched_roof_area, estimate_windows @@ -25,7 +25,7 @@ DATA_BUCKET = os.environ.get('DATA_BUCKET', 'retrofit-data-dev' if ENVIRONMENT = logger = setup_logger() -class Property(Definitions): +class Property: ATTRIBUTE_MAP = { "floor-description": "floor", "hotwater-description": "hotwater", @@ -51,6 +51,8 @@ class Property(Definitions): spatial = None base_difference_record = None + DATA_ANOMALY_MATCHES = DATA_ANOMALY_MATCHES + def __init__(self, id, postcode, address, epc_record): self.epc_record = epc_record @@ -302,6 +304,7 @@ class Property(Definitions): self.set_basic_property_dimensions() for description, attribute in cleaned.items(): + if self.data[description] in self.DATA_ANOMALY_MATCHES: template = cleaned[description][0] fill_dict = dict(zip(template.keys(), [None] * len(template))) @@ -319,7 +322,7 @@ class Property(Definitions): attributes = [ x for x in cleaned[description] if x["original_description"] == self.data[description] ] - + if len(attributes) > 1: raise ValueError("Either No attributes or multiple found for %s" % description) diff --git a/etl/eligibility/Eligibility.py b/etl/eligibility/Eligibility.py index 13966655..6a5c03e1 100644 --- a/etl/eligibility/Eligibility.py +++ b/etl/eligibility/Eligibility.py @@ -233,6 +233,13 @@ class Eligibility: def room_roof_insulation(self): is_room_roof = self.roof["is_roof_room"] + if not is_room_roof: + self.room_roof = { + "suitability": False, + "thickness": None + } + return + insulation_thickness = convert_thickness_to_numeric( self.roof["insulation_thickness"], self.roof["is_pitched"], @@ -246,6 +253,14 @@ class Eligibility: def flat_roof_insulation(self): is_flat = self.roof["is_flat"] + + if not is_flat: + self.flat_roof = { + "suitability": False, + "thickness": None + } + return + insulation_thickness = convert_thickness_to_numeric( self.roof["insulation_thickness"], self.roof["is_pitched"], diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index 66183599..8ee5d743 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -154,6 +154,10 @@ class DataLoader: asset_list = pd.concat([asset_list, house_numbers[["HouseNo"]]], axis=1) + # Finally, we process property_type or built form, where needed + if ha_name == "ha_6": + asset_list["built_form"] = asset_list["Property Type"].apply(self.identify_built_form_ha6) + return asset_list def load_survey_list(self, file_path, ha_name, asset_list, sheet_name=None): @@ -412,6 +416,34 @@ class DataLoader: return matching_lookup + @staticmethod + def identify_built_form_ha6(property_string): + """ + Identify the built form of a property from the given string. + + :param property_string: The string describing the property + :return: The identified built form, or None if it cannot be identified + """ + # Define keywords for each built form + built_forms = { + 'Semi-Detached': ['semi detached'], + 'Detached': ['detached'], + 'Mid-Terrace': ['mid terrace', 'mid town house'], + 'End-Terrace': ['end terrace', 'end town house'] + } + + # Normalize the input string to lower case for comparison + property_string_normalized = property_string.lower() + + # Search for each built form keyword in the input string + for built_form, keywords in built_forms.items(): + for keyword in keywords: + if keyword in property_string_normalized: + return built_form + + # Return None if no built form is identified + return None + def load(self): if self.use_cache: @@ -461,7 +493,7 @@ class DataLoader: def get_epc_data( - loader, cleaned, cleaning_data, created_at, photo_supply_lookup, floor_area_decile_thresholds + loader, cleaned, cleaning_data, created_at, photo_supply_lookup, floor_area_decile_thresholds, pull_data=True ): if not loader.data: raise ValueError("Data not found - please run loader.load() first") @@ -476,10 +508,39 @@ def get_epc_data( 'Enclosed Mid': 'Mid-Terrace', 'Detached Local Connect': 'Detached', } + }, + "ha_6": { + "property_type": { + 'HOUSE': "House", + 'GROUND FLOOR FLAT': "Flat", + 'UPPER FLOOR FLAT': "Flat", + 'MAISONETTE': "Maisonette", + 'BUNGALOW': "Bungalow", + 'WARDEN BUNGALOW': "Bungalow", + 'WARDEN FLAT': "Flat", + 'EXTRACARE SCHEME': "Flat", + } + } } + outputs = {} for ha_name, data_assets in loader.data.items(): + + if not pull_data: + # Then we retrieve the data from S3 + processed_ha_results = read_pickle_from_s3( + bucket_name="retrofit-datalake-dev", + s3_file_name=f"ha-analysis/{ha_name}/processed_results.pickle" + ) + + outputs[ha_name] = { + "results_df": processed_ha_results["results_df"], + "scoring_data": processed_ha_results["scoring_df"], + "nodata": processed_ha_results["nodata"] + } + continue + # For each HA, we read pull in the data required, and store in S3 asset_list = data_assets["asset_list"].copy() @@ -490,8 +551,12 @@ def get_epc_data( # We iterate through the asset list and pull what we need results = [] scoring_data = [] + nodata = [] for index, property_meta in tqdm(asset_list.iterrows(), total=len(asset_list)): + if property_meta["matching_postcode"] is None: + continue + if ha_name == "ha_1": property_type = property_meta["Asset Type"] # We correct a small error @@ -503,6 +568,9 @@ def get_epc_data( property_type = "Flat" built_form = property_type_lookup[ha_name]["built_form"].get(property_meta["Property Type"], None) + elif ha_name == "ha_6": + property_type = property_type_lookup[ha_name]["property_type"][property_meta["Dwelling type"]] + built_form = property_meta["built_form"] else: raise NotImplementedError("Implement me") @@ -517,6 +585,10 @@ def get_epc_data( searcher.ordnance_survey_client.built_form = built_form searcher.find_property(skip_os=True) + if searcher.newest_epc is None: + nodata.append(property_meta) + continue + if searcher.newest_epc.get("estimated"): # We insert the row ID as our proxy for UPRN searcher.newest_epc["uprn"] = int(property_meta["asset_list_row_id"].split(ha_name)[1]) @@ -606,6 +678,7 @@ def get_epc_data( "cavity_age": cavity_age, **eligibility.walls, **eligibility.roof, + "is_estimated": searcher.newest_epc.get("estimated") is not None } ) @@ -619,6 +692,10 @@ def get_epc_data( model_api = ModelApi(portfolio_id="-".join([ha_name, "eligibility"]), timestamp=created_at) + # scoring_df["is_community"].value_counts() + # scoring_df[scoring_df["is_community"] == "Unknown"] + # property_meta = asset_list[asset_list["asset_list_row_id"] == "ha_67238"].squeeze() + all_predictions = model_api.predict_all( df=scoring_df, bucket="retrofit-data-dev", @@ -678,8 +755,33 @@ def get_epc_data( } ) + eligibility_assessment = pd.DataFrame(eligibility_assessment) -def analyse_ha_data(): + results_df = results_df.merge( + eligibility_assessment, how="left", on="row_id" + ) + + # We store the results in S3 as a pickle + save_pickle_to_s3( + data={ + "results_df": results_df, + "scoring_data": scoring_df, + "nodata": nodata + }, + bucket_name="retrofit-datalake-dev", + s3_file_name=f"ha-analysis/{ha_name}/processed_results.pickle" + ) + + outputs[ha_name] = { + "results_df": results_df, + "scoring_data": scoring_df, + "nodata": nodata + } + + return outputs + + +def analyse_ha_data(outputs, loader): """ The approach we take within this function is the following: For properties that have been identified by warmfront as eligible properties, characterise them by scheme. The @@ -697,6 +799,127 @@ def analyse_ha_data(): :return: """ + + for ha_name, datasets in outputs.items(): + + # TODO: This is placeholder because we don't have the schemes that the properties have been qualified for + # yet + # + import random + randomly_allocated_schemes = random.choices(["ECO4", "GBIS"], k=inputs["asset_list"].shape[0]) + inputs["asset_list"]["randomly_allocated_schemes"] = randomly_allocated_schemes + inputs["asset_list"]["funding_scheme"] = None + inputs["asset_list"]["funding_scheme"] = np.where( + inputs["asset_list"]["row_meaning"] == "identified potential eco works (CWI)", + inputs["asset_list"]["randomly_allocated_schemes"], + inputs["asset_list"]["funding_scheme"] + ) + + # End placholder + + results_df = datasets["results_df"].copy() + + inputs = [x for k, x in loader.data.items() if k == ha_name][0] + + analysis_data = inputs["asset_list"][['asset_list_row_id', "row_meaning", "funding_scheme"]].rename( + columns={"row_meaning": "asset_identification_status"} + ).merge( + results_df, + how="left", + right_on="row_id", + left_on="asset_list_row_id" + ) + + # If we have a survey list, we merge this onto the results + + n_properties_in_asset_list = analysis_data["asset_list_row_id"].nunique() + + properties_sold = ( + inputs["survey_list"].groupby("funding_scheme")["survey_list_row_id"].nunique().reset_index() if + inputs["survey_list"] is not None else 0 + ) + properties_sold_eco4 = ( + properties_sold[properties_sold["funding_scheme"] == "ECO4"]["survey_list_row_id"].values[0] if + properties_sold != 0 else 0 + ) + properties_sold_gbis = ( + properties_sold[properties_sold["funding_scheme"] == "GBIS"]["survey_list_row_id"].values[0] if + properties_sold != 0 else 0 + ) + + # We now merge the survey list onto the analysis data and remove anything that is sold, to give us just what is + # remaining + + if inputs["matched_lookup"] is not None: + analysis_data = analysis_data.merge( + inputs["matched_lookup"], how="left", on="asset_list_row_id" + ) + # Drop any rows that have a survey_list_row_id + analysis_data = analysis_data[pd.isnull(analysis_data["survey_list_row_id"])] + + # We now calculate the number of remaining properties, by scheme + # TODO: We might need to tweak a bit of the knowledge + remaining_properties = analysis_data[ + analysis_data["asset_identification_status"] == "identified potential eco works (CWI)" + ] + + remaining_properties_by_scheme = ( + remaining_properties.groupby("funding_scheme")["asset_list_row_id"].nunique().reset_index() + ) + remaining_properties_eco4 = remaining_properties_by_scheme[ + remaining_properties_by_scheme["funding_scheme"] == "ECO4" + ]["asset_list_row_id"].values[0] + + remaining_properties_gbis = remaining_properties_by_scheme[ + remaining_properties_by_scheme["funding_scheme"] == "GBIS" + ]["asset_list_row_id"].values[0] + + # For the remaining properties, we use the results of the eligibility process to classify the property into + # one of multiple categories + # + # For properties that have been identified as ECO4 + # 1) Strict ECO4 candidate - Has required fabric and EPC is below a D + # - This is not the very strictest definition of ECO4 eligible, but we aim to characterise the properties + # here and re-surveying is a common practicce by Warmfront. Additionally, many of the social homes have + # very old EPCs which may score lower when re-done + # 2) Subject to CIGA check - Meets loft conditions but shows a filled cavity. + # - we don't have a SAP constraint here because the EPC is (currently) showing what the property might + # actually look like after retrofit and so the EPC currently being a C or above means little, because + # the updated EPC, showing an empty cavity, could bring the property within + # 3) Loft insulation too thick - Meets empty cavity but shows a loft with between 101 and 270mm insulation. + # - No SAP constraint, for the same reason as in category 2) + # 4) Does not look like ECO4 candidate + # + # For properties that have been identified as GBIS + # 1) Strict GBIS candidates + # 2) Properties that actually look like strict GBIS candidates + # 3) Subject to CIGA check - Filled cavity + # 4) Does not look like a GBIS candidate + + # ECO4 + # 1) We identify this if: + # - remaining_properties["eco4_eligible"] == True + # - remaining_properties[""] + remaining_properties[remaining_properties["eco4_eligible"] == True]["eco4_message"].value_counts() + remaining_properties["eco4_message"].value_counts() + z = remaining_properties[ + (remaining_properties["eco4_message"] == "Possibly eligible but property currently EPC D") & + (remaining_properties["eco4_eligible"] == True) + ] + + k = z[z["property_type"] == "Flat"] + k["uprn"] + + ha_analysis_results = { + "n_properties_in_asset_list": n_properties_in_asset_list, + # ECO4 + "properties_sold_eco4": properties_sold_eco4, + "remaining_properties_eco4": remaining_properties_eco4, + # GBIS + "properties_sold_gbis": properties_sold_gbis, + "remaining_properties_gbis": remaining_properties_gbis + } + pass @@ -789,10 +1012,10 @@ def app(): # Patch mainheatcont-description cleaned["mainheatcont-description"].extend( [ - {'original_description': 'None', 'clean_description': 'None', 'thermostatic_control': False, - 'charging_system': False, 'switch_system': False, 'no_control': False, 'dhw_control': False, - 'community_heating': False, 'multiple_room_thermostats': False, 'auxiliary_systems': False, 'trvs': False, - 'rate_control': False} + {'original_description': 'None', 'clean_description': 'None', 'thermostatic_control': None, + 'charging_system': None, 'switch_system': None, 'no_control': None, 'dhw_control': None, + 'community_heating': None, 'multiple_room_thermostats': False, 'auxiliary_systems': None, 'trvs': None, + 'rate_control': None} ] ) @@ -810,4 +1033,4 @@ def app(): photo_supply_lookup, floor_area_decile_thresholds = SolarPhotoSupply.load(bucket="retrofit-data-dev") - get_epc_data(loader) + outputs = get_epc_data(loader) diff --git a/etl/epc/Dataset.py b/etl/epc/Dataset.py index fbc7a2d2..4a159f4b 100644 --- a/etl/epc/Dataset.py +++ b/etl/epc/Dataset.py @@ -11,6 +11,37 @@ from recommendations.recommendation_utils import ( get_wall_type ) +# TODO: Can probably produce this in the property change app and store in S3 +BOOLEAN_VARIABLES = [ + 'is_cavity_wall', 'is_filled_cavity', 'is_solid_brick', 'is_system_built', 'is_timber_frame', + 'is_granite_or_whinstone', 'is_as_built', 'is_cob', 'is_sandstone_or_limestone', 'is_park_home', + 'external_insulation', 'internal_insulation', 'is_park_home_ending', 'external_insulation_ending', + 'internal_insulation_ending', 'is_to_unheated_space', 'is_to_external_air', 'is_suspended', 'is_solid', + 'another_property_below', 'is_pitched', 'is_roof_room', 'is_loft', 'is_flat', 'is_thatched', 'is_at_rafters', + 'has_dwelling_above', 'has_radiators', 'has_fan_coil_units', 'has_pipes_in_screed_above_insulation', + 'has_pipes_in_insulated_timber_floor', 'has_pipes_in_concrete_slab', 'has_boiler', 'has_air_source_heat_pump', + 'has_room_heaters', 'has_electric_storage_heaters', 'has_warm_air', 'has_electric_underfloor_heating', + 'has_electric_ceiling_heating', 'has_community_scheme', 'has_ground_source_heat_pump', 'has_no_system_present', + 'has_portable_electric_heaters', 'has_water_source_heat_pump', 'has_electric_heat_pump', 'has_micro-cogeneration', + 'has_solar_assisted_heat_pump', 'has_exhaust_source_heat_pump', 'has_community_heat_pump', 'has_electric', + 'has_mains_gas', 'has_wood_logs', 'has_coal', 'has_oil', 'has_wood_pellets', 'has_anthracite', + 'has_dual_fuel_mineral_and_wood', 'has_smokeless_fuel', 'has_lpg', 'has_b30k', 'has_electricaire', + 'has_assumed_for_most_rooms', 'has_underfloor_heating', 'has_radiators_ending', 'has_fan_coil_units_ending', + 'has_pipes_in_screed_above_insulation_ending', 'has_pipes_in_insulated_timber_floor_ending', + 'has_pipes_in_concrete_slab_ending', 'has_boiler_ending', 'has_air_source_heat_pump_ending', + 'has_room_heaters_ending', 'has_electric_storage_heaters_ending', 'has_warm_air_ending', + 'has_electric_underfloor_heating_ending', 'has_electric_ceiling_heating_ending', 'has_community_scheme_ending', + 'has_ground_source_heat_pump_ending', 'has_no_system_present_ending', 'has_portable_electric_heaters_ending', + 'has_water_source_heat_pump_ending', 'has_electric_heat_pump_ending', 'has_micro-cogeneration_ending', + 'has_solar_assisted_heat_pump_ending', 'has_exhaust_source_heat_pump_ending', 'has_community_heat_pump_ending', + 'has_electric_ending', 'has_mains_gas_ending', 'has_wood_logs_ending', 'has_coal_ending', 'has_oil_ending', + 'has_wood_pellets_ending', 'has_anthracite_ending', 'has_dual_fuel_mineral_and_wood_ending', + 'has_smokeless_fuel_ending', 'has_lpg_ending', 'has_b30k_ending', 'has_electricaire_ending', + 'has_assumed_for_most_rooms_ending', 'has_underfloor_heating_ending', 'multiple_room_thermostats', + 'multiple_room_thermostats_ending', 'is_community', 'no_individual_heating_or_community_network', + 'is_community_ending', 'no_individual_heating_or_community_network_ending' +] + class BaseDataset: """ @@ -439,7 +470,7 @@ class TrainingDataset(BaseDataset): for col in missings.index: unique_values = self.df[col].unique() - if True in unique_values or False in unique_values: + if (True in unique_values) or (False in unique_values) or (col in BOOLEAN_VARIABLES): self.df[col] = self.df[col].fillna(False) if "none" in unique_values: self.df[col] = self.df[col].fillna("none") diff --git a/etl/epc/settings.py b/etl/epc/settings.py index 33bab190..87f27972 100644 --- a/etl/epc/settings.py +++ b/etl/epc/settings.py @@ -46,6 +46,8 @@ DATA_ANOMALY_MATCHES = { "", # We sometimes find None values - particulatly when we produce an estimated EPC None, + # An older value which rarely shows up but has been seen in the data. + "UNKNOWN", } DATA_ANOMALY_SUBSTRINGS = { From 3cfb2002e41a4ec5b3120b7f5d0ac781a94f1310 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Thu, 25 Jan 2024 14:38:24 +0000 Subject: [PATCH 247/526] Handling property type for ha 107 and 39 --- .../ha_15_32/ha_analysis_batch_3.py | 126 +++++++++++++++++- 1 file changed, 119 insertions(+), 7 deletions(-) diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index 8ee5d743..dfd95100 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -125,11 +125,11 @@ class DataLoader: elif ha_name == "ha_39": # Create matching_address by concatenating add_1, add_2, add_3, add_4, add_5, post_code asset_list["matching_address"] = asset_list["add_1"].astype(str).str.lower().str.strip() + ", " + \ - asset_list["add_2"].str.lower().str.strip() + ", " + \ - asset_list["add_3"].str.lower().str.strip() + ", " + \ - asset_list["add_4"].str.lower().str.strip() + ", " + \ - asset_list["add_5"].str.lower().str.strip() + ", " + \ - asset_list["post_code"].str.lower().str.strip() + asset_list["add_2"].astype(str).str.lower().str.strip() + ", " + \ + asset_list["add_3"].astype(str).str.lower().str.strip() + ", " + \ + asset_list["add_4"].astype(str).str.lower().str.strip() + ", " + \ + asset_list["add_5"].astype(str).str.lower().str.strip() + ", " + \ + asset_list["post_code"].astype(str).str.lower().str.strip() asset_list["matching_postcode"] = asset_list["post_code"].str.lower().str.strip() elif ha_name == "ha_107": # Create matching_address by concatenating House No, Street, Town, District, Postcode @@ -520,10 +520,70 @@ def get_epc_data( 'WARDEN FLAT': "Flat", 'EXTRACARE SCHEME': "Flat", } - + }, + "ha_14": { + "property_type": { + "House": "House", + "Flat": "Flat", + "Bungalow": "Bungalow", + "Maisonette": "Maisonette", + } + }, + "ha_39": { + "Semi house": {"property_type": "House", "built_form": "Semi-Detached"}, + "1st floor flat": {"property_type": "Flat", "built_form": None}, + "Mid terrace house": {"property_type": "House", "built_form": "Mid-Terrace"}, + "Ground floor flat": {"property_type": "Flat", "built_form": None}, + "End terrace house": {"property_type": "House", "built_form": "End-Terrace"}, + "Semi bungalow": {"property_type": "Bungalow", "built_form": "Semi-Detached"}, + "End terrace bungalow": {"property_type": "Bungalow", "built_form": "End-Terrace"}, + "2nd floor flat": {"property_type": "Flat", "built_form": None}, + "Mid terrace bungalow": {"property_type": "Bungalow", "built_form": "Mid-Terrace"}, + "3rd floor flat": {"property_type": "Flat", "built_form": None}, + "Detached bungalow": {"property_type": "Bungalow", "built_form": "Detached"}, + "Maisonette": {"property_type": "Maisonette", "built_form": None}, + "Detached house": {"property_type": "House", "built_form": "Detached"}, + "Lower ground floor flat": {"property_type": "Flat", "built_form": None}, + "Dormer bungalow": {"property_type": "Bungalow", "built_form": None}, + "Basement flat": {"property_type": "Flat", "built_form": None}, + "Cluster House": {"property_type": "House", "built_form": "Detached"}, + "2nd/3rd floor duplex flat": {"property_type": "Flat", "built_form": None}, + "Ground floor flat with study": {"property_type": "Flat", "built_form": None}, + "4th floor flat": {"property_type": "Flat", "built_form": None}, + "1st floor flat with study room": {"property_type": "Flat", "built_form": None}, + "2nd floor flat with study": {"property_type": "Flat", "built_form": None}, + }, + "ha_107": { + "property_type": { + "HOUSE": "House", + "BUNGALOW": "Bungalow", + "GRD FLOOR FLAT": "Flat", + "FIRST FLOOR FLAT": "Flat", + "SHELTERED BUNGALOW": "Bungalow", + "MAISONETTE": "Maisonette", + "SECOND FLOOR FLAT": "Flat", + "SHELTERED FIRST FLR": "Flat", + "SHELTERED GROUND FLR": "Flat", + "GRD FLOOR BED SIT": "House" + }, + "built_form": { + "Semi Detached": "Semi-Detached", + "Mid Terrace": "Mid-Terrace", + "End Terrace": "End-Terrace", + "Detached": "Detached", + "Detatched": "Detached", + } } } + # TODO: Sort these + # DwellingType + # UNKNOWN 395 + # SHELTERED FIRST FLR 77 + # 62 + # ROOM 4 + # GRD FLOOR BED SIT 3 + outputs = {} for ha_name, data_assets in loader.data.items(): @@ -571,11 +631,63 @@ def get_epc_data( elif ha_name == "ha_6": property_type = property_type_lookup[ha_name]["property_type"][property_meta["Dwelling type"]] built_form = property_meta["built_form"] + elif ha_name == "ha_14": + if property_meta["Asset Type Description"] == "Block - Repair": + # We try and deduce if it's a flat or house, depending on if it has "room" or "flats" in the address + if "room" in property_meta["Address 1"].lower(): + property_type = "House" + else: + property_type = "Flat" + + else: + property_type = property_type_lookup[ha_name]["property_type"][ + property_meta["Asset Type Description"] + ] + + built_form = None + elif ha_name == "ha_39": + + property_type_config = property_type_lookup[ha_name].get(property_meta["ConstructionStyle"], {}) + property_type = property_type_config.get("property_type", None) + built_form = property_type_config.get("built_form", None) + + if property_type is None: + # We check for the presence of room or flat + if "flat" in property_meta["matching_address"]: + property_type = "Flat" + else: + property_type = "House" + elif ha_name == "ha_107": + + dwelling_style = property_meta["Dwelling Style"] + if isinstance(dwelling_style, str): + dwelling_style = dwelling_style.strip() + + property_type = property_type_lookup[ha_name]["property_type"].get(property_meta["DwellingType"]) + built_form = property_type_lookup[ha_name]["built_form"].get(dwelling_style, None) + + if property_type is None: + if built_form in ["Semi-Detached", "Mid-Terrace", "End-Terrace", "Detached"]: + property_type = "House" + + if "flat" in property_meta["Wall Construction"].lower(): + property_type = "Flat" + + if (property_meta["DwellingType"] == "UNKNOWN") & (property_meta["Dwelling Style"] == 0): + # Hand a few specific cases + property_type = "Bungalow" + + if property_meta["Street"] == "School View": + property_type = "Bungalow" + + if property_type is None: + blah + else: raise NotImplementedError("Implement me") searcher = SearchEpc( - address1=property_meta["HouseNo"], + address1=str(property_meta["HouseNo"]), postcode=property_meta["matching_postcode"], auth_token=EPC_AUTH_TOKEN, os_api_key=None, From 5c6bac1f8a2823037b0a1ac28481f741e7110ee9 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Fri, 26 Jan 2024 11:00:12 +0000 Subject: [PATCH 248/526] working on eligibility --- etl/eligibility/Eligibility.py | 49 ++++++++++---- .../ha_15_32/ha_analysis_batch_3.py | 64 ++++++++++--------- 2 files changed, 70 insertions(+), 43 deletions(-) diff --git a/etl/eligibility/Eligibility.py b/etl/eligibility/Eligibility.py index 6a5c03e1..00c72a8e 100644 --- a/etl/eligibility/Eligibility.py +++ b/etl/eligibility/Eligibility.py @@ -114,7 +114,8 @@ class Eligibility: self.loft = { "suitability": False, "thickness": None, - "reason": "roof not loft" + "reason": "roof not loft", + "thickness_classification": None } return @@ -125,18 +126,32 @@ class Eligibility: is_flat=self.roof["is_flat"] ) + if insulation_thickness <= 100: + thickness_classification = "0-100mm" + elif insulation_thickness <= 270: + thickness_classification = "100-270mm" + else: + thickness_classification = "270mm+" + if insulation_thickness <= loft_thickness_threshold: + # We produce a thiclkness classification for the loft + # 0 - 100mm insulation + # 100 - 270mm insulation + # 270mm+ insulation + self.loft = { "suitability": True, "thickness": insulation_thickness, - "reason": None + "reason": None, + "thickness_classification": thickness_classification } if insulation_thickness <= high_loft_thickness_threshold: self.loft = { "suitability": True, "thickness": insulation_thickness, - "reason": "high loft thickness but below regulation" + "reason": "high loft thickness but below regulation", + "thickness_classification": thickness_classification } return @@ -145,7 +160,8 @@ class Eligibility: self.loft = { "suitability": False, "thickness": insulation_thickness, - "reason": "existing insulation" + "reason": "existing insulation", + "thickness_classification": thickness_classification } return @@ -371,20 +387,21 @@ class Eligibility: """ current_sap = int(self.epc["current-energy-efficiency"]) - - if current_sap >= 69: - self.eco4_warmfront = { - "eligible": False, - "message": "sap too high" - } - return - self.cavity_insulation() self.loft_insulation() # make sure conditions 2 and 3 are true is_eligible = self.cavity["suitability"] & self.loft["suitability"] + if current_sap >= 69: + self.eco4_warmfront = { + "eligible": False, + "message": "sap too high", + "cavity_type": self.cavity["type"], + "loft_type": self.loft["thickness_classification"] + } + return + if post_retrofit_sap is None: if current_sap >= 55: @@ -401,7 +418,9 @@ class Eligibility: self.eco4_warmfront = { "eligible": is_eligible, - "message": message + "message": message, + "cavity_type": self.cavity["type"], + "loft_type": self.loft["thickness_classification"] } return @@ -409,7 +428,9 @@ class Eligibility: self.eco4_warmfront = { "eligible": is_eligible, - "message": None + "message": None, + "cavity_type": self.cavity["type"], + "loft_type": self.loft["thickness_classification"] } return diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index dfd95100..1212522e 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -12,11 +12,9 @@ from tqdm import tqdm from backend.SearchEpc import SearchEpc from etl.eligibility.Eligibility import Eligibility from etl.eligibility.ha_15_32.app import prepare_model_data_row -from etl.epc.settings import COLUMNS_TO_MERGE_ON from backend.ml_models.api import ModelApi from etl.solar.SolarPhotoSupply import SolarPhotoSupply from recommendations.recommendation_utils import calculate_cavity_age -from recommendation_utils import convert_thickness_to_numeric EPC_AUTH_TOKEN = os.getenv("EPC_AUTH_TOKEN") ENV_FILE = Path(__file__).parent / "etl" / "eligibility" / "ha_15_32" / ".env" @@ -576,14 +574,6 @@ def get_epc_data( } } - # TODO: Sort these - # DwellingType - # UNKNOWN 395 - # SHELTERED FIRST FLR 77 - # 62 - # ROOM 4 - # GRD FLOOR BED SIT 3 - outputs = {} for ha_name, data_assets in loader.data.items(): @@ -596,7 +586,7 @@ def get_epc_data( outputs[ha_name] = { "results_df": processed_ha_results["results_df"], - "scoring_data": processed_ha_results["scoring_df"], + "scoring_df": processed_ha_results["scoring_df"], "nodata": processed_ha_results["nodata"] } continue @@ -680,9 +670,6 @@ def get_epc_data( if property_meta["Street"] == "School View": property_type = "Bungalow" - if property_type is None: - blah - else: raise NotImplementedError("Implement me") @@ -790,7 +777,9 @@ def get_epc_data( "cavity_age": cavity_age, **eligibility.walls, **eligibility.roof, - "is_estimated": searcher.newest_epc.get("estimated") is not None + "is_estimated": searcher.newest_epc.get("estimated") is not None, + "eligibility_cavity_type": eligibility.eco4_warmfront["cavity_type"], + "eligibility_loft_type": eligibility.eco4_warmfront["loft_type"] } ) @@ -877,7 +866,7 @@ def get_epc_data( save_pickle_to_s3( data={ "results_df": results_df, - "scoring_data": scoring_df, + "scoring_df": scoring_df, "nodata": nodata }, bucket_name="retrofit-datalake-dev", @@ -886,7 +875,7 @@ def get_epc_data( outputs[ha_name] = { "results_df": results_df, - "scoring_data": scoring_df, + "scoring_df": scoring_df, "nodata": nodata } @@ -914,6 +903,7 @@ def analyse_ha_data(outputs, loader): for ha_name, datasets in outputs.items(): + inputs = [x for k, x in loader.data.items() if k == ha_name][0] # TODO: This is placeholder because we don't have the schemes that the properties have been qualified for # yet # @@ -930,9 +920,6 @@ def analyse_ha_data(outputs, loader): # End placholder results_df = datasets["results_df"].copy() - - inputs = [x for k, x in loader.data.items() if k == ha_name][0] - analysis_data = inputs["asset_list"][['asset_list_row_id', "row_meaning", "funding_scheme"]].rename( columns={"row_meaning": "asset_identification_status"} ).merge( @@ -970,19 +957,20 @@ def analyse_ha_data(outputs, loader): analysis_data = analysis_data[pd.isnull(analysis_data["survey_list_row_id"])] # We now calculate the number of remaining properties, by scheme - # TODO: We might need to tweak a bit of the knowledge + # TODO: We might need to tweak a bit of the logic remaining_properties = analysis_data[ analysis_data["asset_identification_status"] == "identified potential eco works (CWI)" - ] + ].copy() + remaining_properties["prospect_type"] = None remaining_properties_by_scheme = ( remaining_properties.groupby("funding_scheme")["asset_list_row_id"].nunique().reset_index() ) - remaining_properties_eco4 = remaining_properties_by_scheme[ + n_remaining_properties_eco4 = remaining_properties_by_scheme[ remaining_properties_by_scheme["funding_scheme"] == "ECO4" ]["asset_list_row_id"].values[0] - remaining_properties_gbis = remaining_properties_by_scheme[ + n_remaining_properties_gbis = remaining_properties_by_scheme[ remaining_properties_by_scheme["funding_scheme"] == "GBIS" ]["asset_list_row_id"].values[0] @@ -990,7 +978,8 @@ def analyse_ha_data(outputs, loader): # one of multiple categories # # For properties that have been identified as ECO4 - # 1) Strict ECO4 candidate - Has required fabric and EPC is below a D + # 1) Strict ECO4 candidate - Has required fabric and EPC is D or below. We consider D or below here, because + # Warmfront regularly re-surveys properties which then fall within the SAP requirement # - This is not the very strictest definition of ECO4 eligible, but we aim to characterise the properties # here and re-surveying is a common practicce by Warmfront. Additionally, many of the social homes have # very old EPCs which may score lower when re-done @@ -1008,10 +997,25 @@ def analyse_ha_data(outputs, loader): # 3) Subject to CIGA check - Filled cavity # 4) Does not look like a GBIS candidate + remaining_eco4_df = remaining_properties[ + remaining_properties["funding_scheme"] == "ECO4" + ].copy() # ECO4 # 1) We identify this if: # - remaining_properties["eco4_eligible"] == True - # - remaining_properties[""] + + remaining_eco4_df["prospect_type"] = np.where( + remaining_eco4_df["eco4_eligible"] == True, + "strict ECO4", + remaining_eco4_df["prospect_type"] + ) + + # 2) We identify this if it has a filled cavity but meets the loft conditions + + remaining_eco4_df["prospect_type"] + + z = remaining_eco4_df[remaining_eco4_df["eco4_message"] == "sap too high"] + remaining_properties[remaining_properties["eco4_eligible"] == True]["eco4_message"].value_counts() remaining_properties["eco4_message"].value_counts() z = remaining_properties[ @@ -1026,10 +1030,10 @@ def analyse_ha_data(outputs, loader): "n_properties_in_asset_list": n_properties_in_asset_list, # ECO4 "properties_sold_eco4": properties_sold_eco4, - "remaining_properties_eco4": remaining_properties_eco4, + "n_remaining_properties_eco4": n_remaining_properties_eco4, # GBIS "properties_sold_gbis": properties_sold_gbis, - "remaining_properties_gbis": remaining_properties_gbis + "n_remaining_properties_gbis": n_remaining_properties_gbis } pass @@ -1145,4 +1149,6 @@ def app(): photo_supply_lookup, floor_area_decile_thresholds = SolarPhotoSupply.load(bucket="retrofit-data-dev") - outputs = get_epc_data(loader) + outputs = get_epc_data( + loader, cleaned, cleaning_data, created_at, photo_supply_lookup, floor_area_decile_thresholds, pull_data=False + ) From b6c57c7253ec86b59ef1599489a405a9466ce505 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Fri, 26 Jan 2024 17:17:43 +0000 Subject: [PATCH 249/526] created template of code to create the ha analysis results --- etl/eligibility/Eligibility.py | 6 +- .../ha_15_32/ha_analysis_batch_3.py | 242 +++++++++++++++--- 2 files changed, 207 insertions(+), 41 deletions(-) diff --git a/etl/eligibility/Eligibility.py b/etl/eligibility/Eligibility.py index 00c72a8e..1d868338 100644 --- a/etl/eligibility/Eligibility.py +++ b/etl/eligibility/Eligibility.py @@ -177,15 +177,13 @@ class Eligibility: is_empty = (not self.walls["is_filled_cavity"]) or ( self.walls["is_as_built"] and self.walls["insulation_thickness"] not in ["average", "above average"] ) - is_partial_filled = ( - self.walls["is_as_built"] and self.walls["insulation_thickness"] not in ["below average"] - ) + is_partial_filled = "partial" in self.walls["clean_description"].lower() # We look for potentially under performing cavities - anything that is assumed, as built and insulated is_underperforming = ( self.walls["is_as_built"] and self.walls["insulation_thickness"] in ["average"] and self.walls["is_assumed"] ) - is_unfilled_cavity = is_cavity and is_empty + is_unfilled_cavity = is_cavity and (is_empty and not is_partial_filled) is_partial_filled_cavity = is_cavity and is_partial_filled is_underperforming_cavity = is_cavity and is_underperforming diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index 1212522e..1ed95a30 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -901,6 +901,7 @@ def analyse_ha_data(outputs, loader): :return: """ + ha_analysis_results = [] for ha_name, datasets in outputs.items(): inputs = [x for k, x in loader.data.items() if k == ha_name][0] @@ -917,9 +918,20 @@ def analyse_ha_data(outputs, loader): inputs["asset_list"]["funding_scheme"] ) + # TODO: Also temp, just for HA 6 + if ha_name == "ha_6": + inputs["survey_list"]["funding_scheme"] = None + inputs["survey_list"]["funding_scheme"] = np.where( + inputs["survey_list"][ + 'AFFORDABLE WARMTH OR EPC FOR HOUSING ASSOCIATION '] == "AFFORDABLE WARMTH", + "ECO4", + "GBIS" + ) + # End placholder results_df = datasets["results_df"].copy() + analysis_data = inputs["asset_list"][['asset_list_row_id', "row_meaning", "funding_scheme"]].rename( columns={"row_meaning": "asset_identification_status"} ).merge( @@ -929,23 +941,6 @@ def analyse_ha_data(outputs, loader): left_on="asset_list_row_id" ) - # If we have a survey list, we merge this onto the results - - n_properties_in_asset_list = analysis_data["asset_list_row_id"].nunique() - - properties_sold = ( - inputs["survey_list"].groupby("funding_scheme")["survey_list_row_id"].nunique().reset_index() if - inputs["survey_list"] is not None else 0 - ) - properties_sold_eco4 = ( - properties_sold[properties_sold["funding_scheme"] == "ECO4"]["survey_list_row_id"].values[0] if - properties_sold != 0 else 0 - ) - properties_sold_gbis = ( - properties_sold[properties_sold["funding_scheme"] == "GBIS"]["survey_list_row_id"].values[0] if - properties_sold != 0 else 0 - ) - # We now merge the survey list onto the analysis data and remove anything that is sold, to give us just what is # remaining @@ -956,8 +951,23 @@ def analyse_ha_data(outputs, loader): # Drop any rows that have a survey_list_row_id analysis_data = analysis_data[pd.isnull(analysis_data["survey_list_row_id"])] + # If we have a survey list, we merge this onto the results + n_properties_in_asset_list = analysis_data["asset_list_row_id"].nunique() + + properties_sold = ( + inputs["survey_list"].groupby("funding_scheme")["survey_list_row_id"].nunique().reset_index() if + inputs["survey_list"] is not None else pd.DataFrame(columns=["funding_scheme"]) + ) + properties_sold_eco4 = ( + properties_sold[properties_sold["funding_scheme"] == "ECO4"]["survey_list_row_id"].values[0] if + (not properties_sold.empty) and ("ECO4" in properties_sold["funding_scheme"].values) else 0 + ) + properties_sold_gbis = ( + properties_sold[properties_sold["funding_scheme"] == "GBIS"]["survey_list_row_id"].values[0] if + (not properties_sold.empty) and ("GBIS" in properties_sold["funding_scheme"].values) else 0 + ) + # We now calculate the number of remaining properties, by scheme - # TODO: We might need to tweak a bit of the logic remaining_properties = analysis_data[ analysis_data["asset_identification_status"] == "identified potential eco works (CWI)" ].copy() @@ -966,6 +976,7 @@ def analyse_ha_data(outputs, loader): remaining_properties_by_scheme = ( remaining_properties.groupby("funding_scheme")["asset_list_row_id"].nunique().reset_index() ) + n_remaining_properties_eco4 = remaining_properties_by_scheme[ remaining_properties_by_scheme["funding_scheme"] == "ECO4" ]["asset_list_row_id"].values[0] @@ -983,13 +994,17 @@ def analyse_ha_data(outputs, loader): # - This is not the very strictest definition of ECO4 eligible, but we aim to characterise the properties # here and re-surveying is a common practicce by Warmfront. Additionally, many of the social homes have # very old EPCs which may score lower when re-done - # 2) Subject to CIGA check - Meets loft conditions but shows a filled cavity. + # 2) Meets Fabric requirements, not SAP + # Warmfront has identified the property as eligible, but the EPC is not D or below. We consider this but + # label is separately as not a strict + # 3) Subject to CIGA check - Meets loft conditions but shows a filled cavity. # - we don't have a SAP constraint here because the EPC is (currently) showing what the property might # actually look like after retrofit and so the EPC currently being a C or above means little, because # the updated EPC, showing an empty cavity, could bring the property within - # 3) Loft insulation too thick - Meets empty cavity but shows a loft with between 101 and 270mm insulation. + # 4) Loft insulation too thick - Meets empty cavity but shows a loft with between 101 and 270mm insulation. # - No SAP constraint, for the same reason as in category 2) - # 4) Does not look like ECO4 candidate + # 5) Looks like GBIS instead + # 6) Does not look like ECO4 candidate # # For properties that have been identified as GBIS # 1) Strict GBIS candidates @@ -1000,43 +1015,156 @@ def analyse_ha_data(outputs, loader): remaining_eco4_df = remaining_properties[ remaining_properties["funding_scheme"] == "ECO4" ].copy() + + #################################### # ECO4 + #################################### + # 1) We identify this if: # - remaining_properties["eco4_eligible"] == True remaining_eco4_df["prospect_type"] = np.where( - remaining_eco4_df["eco4_eligible"] == True, + (remaining_eco4_df["eco4_eligible"] == True), "strict ECO4", remaining_eco4_df["prospect_type"] ) - # 2) We identify this if it has a filled cavity but meets the loft conditions + # 2) Meets fabric requirements + remaining_eco4_df["prospect_type"] = np.where( + ( + (remaining_eco4_df["eco4_message"] == "sap too high") & + remaining_eco4_df["eligibility_cavity_type"].isin(["partial", "empty"]) & + remaining_eco4_df["eligibility_loft_type"].isin(["0-100mm"]) + ), + "ECO4 if SAP downgrade", + remaining_eco4_df["prospect_type"] + ) - remaining_eco4_df["prospect_type"] + # 3) We identify this if it has a filled cavity but meets the loft conditions + # TODO: Consider if we should also allow 100-270mm or if we should add some slight tolerance (e.g. 150mm) + # to account for measurement error + remaining_eco4_df["prospect_type"] = np.where( + ( + remaining_eco4_df["eligibility_cavity_type"].isin(["full"]) & + remaining_eco4_df["eligibility_loft_type"].isin(["0-100mm"]) + ), + "Filled cavity - subject to CIGA check", + remaining_eco4_df["prospect_type"] + ) - z = remaining_eco4_df[remaining_eco4_df["eco4_message"] == "sap too high"] + # 4) We identify this by ensuring the cavity if empty or partial, and the loft has between 101 and 270mm + remaining_eco4_df["prospect_type"] = np.where( + ( + remaining_eco4_df["eligibility_cavity_type"].isin(["empty", "partial"]) & + remaining_eco4_df["eligibility_loft_type"].isin(["100-270mm"]) + ), + "ECO4 prospect - empty cavity, loft insulation below regulation", + remaining_eco4_df["prospect_type"] + ) - remaining_properties[remaining_properties["eco4_eligible"] == True]["eco4_message"].value_counts() - remaining_properties["eco4_message"].value_counts() - z = remaining_properties[ - (remaining_properties["eco4_message"] == "Possibly eligible but property currently EPC D") & - (remaining_properties["eco4_eligible"] == True) - ] + # 5) Looks like GBIS instead + remaining_eco4_df["prospect_type"] = np.where( + (remaining_eco4_df["gbis_eligible"] == True), + "Looks like GBIS", + remaining_eco4_df["prospect_type"] + ) - k = z[z["property_type"] == "Flat"] - k["uprn"] + # 6) This is everything else (i.e. both the cavity is full and the loft insulation is above 100mm) + remaining_eco4_df["prospect_type"] = remaining_eco4_df["prospect_type"].fillna( + "Does not look like ECO4 candidate" + ) - ha_analysis_results = { + #################################### + # GBIS + #################################### + + remaining_gbis = remaining_properties[ + remaining_properties["funding_scheme"] == "GBIS" + ].copy() + + # 1) Strict GBIS candidates + remaining_gbis["prospect_type"] = np.where( + ( + (remaining_gbis["gbis_eligible"] == True) & (remaining_gbis["eco4_eligible"] == False) + ), + "strict GBIS", + remaining_gbis["prospect_type"] + ) + + # 2) GBIS candidates that look like strict ECO4 candidates + remaining_gbis["prospect_type"] = np.where( + (remaining_gbis["eco4_eligible"] == True), + "Upgradable to ECO4", + remaining_gbis["prospect_type"] + ) + + # 3) Subject to CIGA check - Filled cavity + remaining_gbis["prospect_type"] = np.where( + ( + remaining_gbis["eligibility_cavity_type"].isin(["full"]) + ), + "Filled cavity - subject to CIGA check", + remaining_gbis["prospect_type"] + ) + + # 4) Everything else + remaining_gbis["prospect_type"] = remaining_gbis["prospect_type"].fillna( + "Does not look like GBIS candidate" + ) + + #################################### + # Surplus properties + #################################### + + # Take properties that were not identified by Warmfront and identify those that look like they would qualify + # under the strictest criteria + surplus_df = analysis_data[ + analysis_data["asset_identification_status"] != "identified potential eco works (CWI)" + ].copy() + + eco4_surplus = surplus_df[ + ( + (surplus_df["eco4_eligible"] == True) & (surplus_df["eco4_message"] == "subject to post retrofit sap") & + ( + surplus_df["eligibility_classification"].isin( + ["high confidence", "highest confidence", "medium confidence"] + ) + ) + ) + ].copy() + + gbis_surplus = surplus_df[ + ( + (surplus_df["gbis_eligible"] == True) & (surplus_df["eco4_eligible"] == False) & ( + surplus_df["eligibility_cavity_type"].isin(["empty", "partial"]) + ) + ) + ].copy() + + ha_analysis_results.append({ "n_properties_in_asset_list": n_properties_in_asset_list, + ############ # ECO4 + ############ "properties_sold_eco4": properties_sold_eco4, "n_remaining_properties_eco4": n_remaining_properties_eco4, + **remaining_eco4_df["prospect_type"].value_counts().to_dict(), + ############ # GBIS + ############ "properties_sold_gbis": properties_sold_gbis, - "n_remaining_properties_gbis": n_remaining_properties_gbis - } + "n_remaining_properties_gbis": n_remaining_properties_gbis, + **remaining_gbis["prospect_type"].value_counts().to_dict(), + ############ + # GBIS + ############ + "n_eco4_surplus": eco4_surplus.shape[0], + "n_gbis_surplus": gbis_surplus.shape[0], + }) - pass + ha_analysis_results = pd.DataFrame(ha_analysis_results) + + # Todo: create revenue figures and automate creation of excel def app(): @@ -1152,3 +1280,43 @@ def app(): outputs = get_epc_data( loader, cleaned, cleaning_data, created_at, photo_supply_lookup, floor_area_decile_thresholds, pull_data=False ) + + # for ha_name, datasets in outputs.items(): + # datasets["results_df"] = datasets["results_df"].drop( + # columns=["eligibility_cavity_type", "eligibility_loft_type"] + # ) + # + # # Re-do + # res = [] + # for _, row in tqdm(datasets["results_df"].iterrows(), total=datasets["results_df"].shape[0]): + # epc = { + # "walls-description": row["walls"], + # "roof-description": row["roof"], + # "floor-description": "", + # "tenure": "", + # "current-energy-efficiency": row["sap"], + # } + # eligibility = Eligibility(epc=epc, cleaned=cleaned) + # eligibility.check_eco4_warmfront() + # res.append( + # { + # "row_id": row["row_id"], + # "eligibility_cavity_type": eligibility.eco4_warmfront["cavity_type"], + # "eligibility_loft_type": eligibility.eco4_warmfront["loft_type"] + # } + # ) + # + # # Merge back on + # res = pd.DataFrame(res) + # datasets["results_df"] = datasets["results_df"].merge(res, how="left", on="row_id") + # + # # Re-save in s3 + # save_pickle_to_s3( + # data={ + # "results_df": datasets["results_df"], + # "scoring_df": datasets["scoring_df"], + # "nodata": datasets["nodata"] + # }, + # bucket_name="retrofit-datalake-dev", + # s3_file_name=f"ha-analysis/{ha_name}/processed_results.pickle" + # ) From 1fd976f3507ae3d78228791ab7c12742ca8c43e5 Mon Sep 17 00:00:00 2001 From: Michael Duong Date: Mon, 29 Jan 2024 10:10:33 +0000 Subject: [PATCH 250/526] add all permutations, and fixed typo --- etl/epc/Dataset.py | 417 ++++++++++++++++++------- etl/epc/Pipeline.py | 174 +++++++---- etl/epc/Record.py | 544 +++++++++++++++++++++++---------- etl/epc/property_change_app.py | 14 +- 4 files changed, 817 insertions(+), 332 deletions(-) diff --git a/etl/epc/Dataset.py b/etl/epc/Dataset.py index fbc7a2d2..217c65b5 100644 --- a/etl/epc/Dataset.py +++ b/etl/epc/Dataset.py @@ -7,8 +7,12 @@ from etl.epc.settings import EARLIEST_EPC_DATE from recommendations.rdsap_tables import england_wales_age_band_lookup from recommendations.recommendation_utils import ( - estimate_number_of_floors, get_wall_u_value, get_roof_u_value, get_floor_u_value, estimate_perimeter, - get_wall_type + estimate_number_of_floors, + get_wall_u_value, + get_roof_u_value, + get_floor_u_value, + estimate_perimeter, + get_wall_type, ) @@ -41,8 +45,9 @@ class TrainingDataset(BaseDataset): A collection of EPCDifferenceRecords can be combined into a TrainingDataset. """ - def __init__(self, datasets: List[EPCDifferenceRecord], cleaned_lookup: dict) -> None: - + def __init__( + self, datasets: List[EPCDifferenceRecord], cleaned_lookup: dict + ) -> None: # self.pipeline_steps = self.pipeline_factory("training") self.datasets = datasets self.df = pd.DataFrame([dataset.difference_record for dataset in datasets]) @@ -61,14 +66,51 @@ class TrainingDataset(BaseDataset): self._null_validation(information="Clean Missing Values") self._remove_abnormal_change_in_floor_area() self._ensure_numeric() + self._organise_starting_ending_columns() + + def _organise_starting_ending_columns(self): + """ + Organise the starting and ending columns so that they are next to each other + """ + no_suffix_cols = [ + col + for col in self.df.columns + if "_ending" not in col and "_starting" not in col + ] + starting_cols = [col for col in self.df.columns if "_starting" in col] + ending_cols = [col for col in self.df.columns if "_ending" in col] + + common_cols = [ + col.rsplit("_", 1)[0] + for col in starting_cols + if col.replace("_starting", "_ending") in ending_cols + ] + only_ending_cols = [ + col + for col in ending_cols + if col.replace("_ending", "_starting") not in starting_cols + ] + + common_cols = [[col + "_starting", col + "_ending"] for col in common_cols] + + self.df = self.df.loc[ + :, + no_suffix_cols + + only_ending_cols + + [col for cols in common_cols for col in cols], + ] def _remove_abnormal_change_in_floor_area(self): """ Remove properties where the change in floor area is greater than 100% """ - self.df["tfa_diff_abs"] = abs(self.df["total_floor_area_ending"] - self.df["total_floor_area_starting"]) - self.df["tfa_diff_prop"] = self.df["tfa_diff_abs"] / self.df["total_floor_area_starting"] + self.df["tfa_diff_abs"] = abs( + self.df["total_floor_area_ending"] - self.df["total_floor_area_starting"] + ) + self.df["tfa_diff_prop"] = ( + self.df["tfa_diff_abs"] / self.df["total_floor_area_starting"] + ) self.df = self.df[self.df["tfa_diff_prop"] < 0.5] self.df = self.df.drop(columns=["tfa_diff_abs", "tfa_diff_prop"]) @@ -77,7 +119,9 @@ class TrainingDataset(BaseDataset): Ensure that all columns are numeric """ # TODO: move into EPCRecord record - uvalue_columns = [col for col in self.df.columns if "thermal_transmittance" in col] + uvalue_columns = [ + col for col in self.df.columns if "thermal_transmittance" in col + ] for uvalue_col in uvalue_columns: self.df[uvalue_col] = pd.to_numeric(self.df[uvalue_col]) @@ -87,7 +131,11 @@ class TrainingDataset(BaseDataset): Using the apply method, use the get_roof_u_value method to generate the u-value """ - col_name = "roof_insulation_thickness" if not is_end else "roof_insulation_thickness_ending" + col_name = ( + "roof_insulation_thickness" + if not is_end + else "roof_insulation_thickness_ending" + ) if row["has_dwelling_above"]: if row["roof_thermal_transmittance"] != 0: @@ -105,7 +153,7 @@ class TrainingDataset(BaseDataset): is_flat=row["is_flat"], is_pitched=row["is_pitched"], is_at_rafters=row["is_at_rafters"], - age_band=england_wales_age_band_lookup[row["construction_age_band"]] + age_band=england_wales_age_band_lookup[row["construction_age_band"]], ) @staticmethod @@ -113,9 +161,16 @@ class TrainingDataset(BaseDataset): """ Using the apply method, use the get_wall_u_value method to generate the u-value """ - description_col_name = "walls_clean_description" if not is_end else "walls_clean_description_ending" - thermal_transistance_col_name = "walls_thermal_transmittance" if not is_end else \ - "walls_thermal_transmittance_ending" + description_col_name = ( + "walls_clean_description" + if not is_end + else "walls_clean_description_ending" + ) + thermal_transistance_col_name = ( + "walls_thermal_transmittance" + if not is_end + else "walls_thermal_transmittance_ending" + ) if pd.isnull(row[thermal_transistance_col_name]): output = get_wall_u_value( @@ -135,7 +190,11 @@ class TrainingDataset(BaseDataset): Using the apply method, use the get_floor_u_value method to generate the u-value """ - floor_thermal_col_name = "floor_thermal_transmittance" if not is_end else "floor_thermal_transmittance_ending" + floor_thermal_col_name = ( + "floor_thermal_transmittance" + if not is_end + else "floor_thermal_transmittance_ending" + ) if row["another_property_below"]: if row["floor_thermal_transmittance"] != 0: @@ -148,9 +207,21 @@ class TrainingDataset(BaseDataset): uvalue = row[floor_thermal_col_name] if pd.isnull(uvalue): - insulation_col_name = "floor_insulation_thickness" if not is_end else "floor_insulation_thickness_ending" - perimeter_col_name = "estimated_perimeter_starting" if not is_end else "estimated_perimeter_ending" - floor_area_col_name = "ground_floor_area_starting" if not is_end else "ground_floor_area_ending" + insulation_col_name = ( + "floor_insulation_thickness" + if not is_end + else "floor_insulation_thickness_ending" + ) + perimeter_col_name = ( + "estimated_perimeter_starting" + if not is_end + else "estimated_perimeter_ending" + ) + floor_area_col_name = ( + "ground_floor_area_starting" + if not is_end + else "ground_floor_area_ending" + ) uvalue = get_floor_u_value( floor_type=row["floor_type"], @@ -158,7 +229,7 @@ class TrainingDataset(BaseDataset): area=row[floor_area_col_name], insulation_thickness=row[insulation_col_name], wall_type=row["wall_type"], - age_band=england_wales_age_band_lookup[row["construction_age_band"]] + age_band=england_wales_age_band_lookup[row["construction_age_band"]], ) return uvalue @@ -173,65 +244,75 @@ class TrainingDataset(BaseDataset): # ~~~~~~~~~~~~~~~~~~ walls_starting_uvalue = self.df.apply( - lambda row: self._lambda_function_to_generate_wall_uvalue(row), - axis=1 + lambda row: self._lambda_function_to_generate_wall_uvalue(row), axis=1 ) walls_ending_uvalue = self.df.apply( lambda row: self._lambda_function_to_generate_wall_uvalue(row, is_end=True), - axis=1 + axis=1, ) - walls_starting_uvalue = self.df['walls_thermal_transmittance'].fillna(walls_starting_uvalue) - walls_starting_equals_ending_flag = self.df['walls_clean_description'] == self.df[ - "walls_clean_description_ending"] + walls_starting_uvalue = self.df["walls_thermal_transmittance"].fillna( + walls_starting_uvalue + ) + walls_starting_equals_ending_flag = ( + self.df["walls_clean_description"] + == self.df["walls_clean_description_ending"] + ) walls_ending_uvalue[walls_starting_equals_ending_flag] = walls_starting_uvalue[ - walls_starting_equals_ending_flag] + walls_starting_equals_ending_flag + ] # ~~~~~~~~~~~~~~~~~~ # Roof # ~~~~~~~~~~~~~~~~~~ roof_starting_uvalue = self.df.apply( - lambda row: self._lambda_function_to_generate_roof_uvalue(row), - axis=1 + lambda row: self._lambda_function_to_generate_roof_uvalue(row), axis=1 ) roof_ending_uvalue = self.df.apply( lambda row: self._lambda_function_to_generate_roof_uvalue(row, is_end=True), - axis=1 + axis=1, ) - roof_starting_uvalue = self.df['roof_thermal_transmittance'].fillna(roof_starting_uvalue) - roof_ending_uvalue = self.df['roof_thermal_transmittance_ending'].fillna(roof_ending_uvalue) + roof_starting_uvalue = self.df["roof_thermal_transmittance"].fillna( + roof_starting_uvalue + ) + roof_ending_uvalue = self.df["roof_thermal_transmittance_ending"].fillna( + roof_ending_uvalue + ) # ~~~~~~~~~~~~~~~~~~ # Floor # ~~~~~~~~~~~~~~~~~~ - self.df['estimated_number_of_floors'] = self.df.apply( - lambda row: estimate_number_of_floors(row['property_type']), - axis=1 + self.df["estimated_number_of_floors"] = self.df.apply( + lambda row: estimate_number_of_floors(row["property_type"]), axis=1 ) self.df["ground_floor_area_starting"] = ( - self.df["total_floor_area_starting"] / self.df['estimated_number_of_floors'] + self.df["total_floor_area_starting"] / self.df["estimated_number_of_floors"] ) self.df["ground_floor_area_ending"] = ( - self.df["total_floor_area_ending"] / self.df['estimated_number_of_floors'] + self.df["total_floor_area_ending"] / self.df["estimated_number_of_floors"] ) - self.df['estimated_perimeter_starting'] = self.df.apply( + self.df["estimated_perimeter_starting"] = self.df.apply( lambda row: estimate_perimeter( - row["ground_floor_area_starting"], row["number_habitable_rooms"] / row['estimated_number_of_floors'] + row["ground_floor_area_starting"], + row["number_habitable_rooms"] / row["estimated_number_of_floors"], ), - axis=1 + axis=1, ) - self.df['estimated_perimeter_ending'] = self.df.apply( + self.df["estimated_perimeter_ending"] = self.df.apply( lambda row: estimate_perimeter( - row["ground_floor_area_starting"], row["number_habitable_rooms"] / row['estimated_number_of_floors'] + row["ground_floor_area_starting"], + row["number_habitable_rooms"] / row["estimated_number_of_floors"], ), - axis=1 + axis=1, + ) + self.df["floor_type"] = self.df["is_suspended"].replace( + {True: "suspended", False: "solid"} ) - self.df["floor_type"] = self.df["is_suspended"].replace({True: "suspended", False: "solid"}) self.df["wall_type"] = self.df.apply( lambda row: get_wall_type( is_cavity_wall=row["is_cavity_wall"], @@ -241,39 +322,56 @@ class TrainingDataset(BaseDataset): is_cob=row["is_cob"], is_sandstone_or_limestone=row["is_sandstone_or_limestone"], is_system_built=row["is_system_built"], - is_park_home=row["is_park_home"] + is_park_home=row["is_park_home"], ), - axis=1 + axis=1, ) floor_starting_uvalue = self.df.apply( - lambda row: self._lambda_function_to_generate_floor_uvalue(row), - axis=1 + lambda row: self._lambda_function_to_generate_floor_uvalue(row), axis=1 ) floor_ending_uvalue = self.df.apply( - lambda row: self._lambda_function_to_generate_floor_uvalue(row, is_end=True), - axis=1 + lambda row: self._lambda_function_to_generate_floor_uvalue( + row, is_end=True + ), + axis=1, ) - floor_starting_uvalue = self.df['floor_thermal_transmittance'].fillna(floor_starting_uvalue) - floor_ending_uvalue = self.df['floor_thermal_transmittance_ending'].fillna(floor_ending_uvalue) + floor_starting_uvalue = self.df["floor_thermal_transmittance"].fillna( + floor_starting_uvalue + ) + floor_ending_uvalue = self.df["floor_thermal_transmittance_ending"].fillna( + floor_ending_uvalue + ) for component in ["walls", "roof", "floor"]: - self.df[f"{component}_thermal_transmittance"] = self.df[f"{component}_thermal_transmittance"].fillna( - eval(f"{component}_starting_uvalue")) + self.df[f"{component}_thermal_transmittance"] = self.df[ + f"{component}_thermal_transmittance" + ].fillna(eval(f"{component}_starting_uvalue")) self.df[f"{component}_thermal_transmittance_ending"] = self.df[ - f"{component}_thermal_transmittance_ending"].fillna(eval(f"{component}_ending_uvalue")) + f"{component}_thermal_transmittance_ending" + ].fillna(eval(f"{component}_ending_uvalue")) self.df = self.df.drop( - columns=["floor_type", "wall_type", "walls_clean_description", "walls_clean_description_ending", - 'estimated_number_of_floors', "ground_floor_area_starting", "ground_floor_area_ending"]) + columns=[ + "floor_type", + "wall_type", + "walls_clean_description", + "walls_clean_description_ending", + "estimated_number_of_floors", + "ground_floor_area_starting", + "ground_floor_area_ending", + ] + ) def _adjust_assumed_values_in_wall_descriptions(self): """ Strip out assumed values for all wall descriptions """ for col in ["walls_clean_description", "walls_clean_description_ending"]: - self.df[col] = self.df[col].str.replace("(assumed)", "", regex=False).str.rstrip() + self.df[col] = ( + self.df[col].str.replace("(assumed)", "", regex=False).str.rstrip() + ) def _drop_inconsistent_properties(self, expanded_df: pd.DataFrame, component: str): """ @@ -282,31 +380,55 @@ class TrainingDataset(BaseDataset): if component == "walls": expanded_df = expanded_df[ - (expanded_df["is_cavity_wall"] == expanded_df["is_cavity_wall_ending"]) & - (expanded_df["is_solid_brick"] == expanded_df["is_solid_brick_ending"]) & - (expanded_df["is_timber_frame"] == expanded_df["is_timber_frame_ending"]) & - (expanded_df["is_granite_or_whinstone"] == expanded_df["is_granite_or_whinstone_ending"]) & - (expanded_df["is_cob"] == expanded_df["is_cob_ending"]) & - (expanded_df["is_sandstone_or_limestone"] == expanded_df["is_sandstone_or_limestone_ending"]) - ] + (expanded_df["is_cavity_wall"] == expanded_df["is_cavity_wall_ending"]) + & ( + expanded_df["is_solid_brick"] + == expanded_df["is_solid_brick_ending"] + ) + & ( + expanded_df["is_timber_frame"] + == expanded_df["is_timber_frame_ending"] + ) + & ( + expanded_df["is_granite_or_whinstone"] + == expanded_df["is_granite_or_whinstone_ending"] + ) + & (expanded_df["is_cob"] == expanded_df["is_cob_ending"]) + & ( + expanded_df["is_sandstone_or_limestone"] + == expanded_df["is_sandstone_or_limestone_ending"] + ) + ] elif component == "floor": expanded_df = expanded_df[ - (expanded_df["is_suspended"] == expanded_df["is_suspended_ending"]) & - (expanded_df["is_solid"] == expanded_df["is_solid_ending"]) & - (expanded_df["another_property_below"] == expanded_df["another_property_below_ending"]) & - (expanded_df["is_to_unheated_space"] == expanded_df["is_to_unheated_space_ending"]) & - (expanded_df["is_to_external_air"] == expanded_df["is_to_external_air_ending"]) - ] + (expanded_df["is_suspended"] == expanded_df["is_suspended_ending"]) + & (expanded_df["is_solid"] == expanded_df["is_solid_ending"]) + & ( + expanded_df["another_property_below"] + == expanded_df["another_property_below_ending"] + ) + & ( + expanded_df["is_to_unheated_space"] + == expanded_df["is_to_unheated_space_ending"] + ) + & ( + expanded_df["is_to_external_air"] + == expanded_df["is_to_external_air_ending"] + ) + ] elif component == "roof": expanded_df = expanded_df[ - (expanded_df["is_pitched"] == expanded_df["is_pitched_ending"]) & - (expanded_df["is_roof_room"] == expanded_df["is_roof_room_ending"]) & - (expanded_df["is_loft"] == expanded_df["is_loft_ending"]) & - (expanded_df["is_flat"] == expanded_df["is_flat_ending"]) & - (expanded_df["is_thatched"] == expanded_df["is_thatched_ending"]) & - (expanded_df["is_at_rafters"] == expanded_df["is_at_rafters_ending"]) & - (expanded_df["has_dwelling_above"] == expanded_df["has_dwelling_above_ending"]) - ] + (expanded_df["is_pitched"] == expanded_df["is_pitched_ending"]) + & (expanded_df["is_roof_room"] == expanded_df["is_roof_room_ending"]) + & (expanded_df["is_loft"] == expanded_df["is_loft_ending"]) + & (expanded_df["is_flat"] == expanded_df["is_flat_ending"]) + & (expanded_df["is_thatched"] == expanded_df["is_thatched_ending"]) + & (expanded_df["is_at_rafters"] == expanded_df["is_at_rafters_ending"]) + & ( + expanded_df["has_dwelling_above"] + == expanded_df["has_dwelling_above_ending"] + ) + ] return expanded_df @@ -325,60 +447,108 @@ class TrainingDataset(BaseDataset): cols_to_drop = { "walls": [ # We need to cleaned descriptions for pulling out u-values - 'original_description', 'thermal_transmittance_unit', - 'original_description_ending', - 'thermal_transmittance_unit_ending', - 'is_cavity_wall_ending', 'is_filled_cavity_ending', - 'is_solid_brick_ending', 'is_system_built_ending', - 'is_timber_frame_ending', 'is_granite_or_whinstone_ending', - 'is_as_built_ending', 'is_cob_ending', 'is_assumed_ending', - 'is_sandstone_or_limestone_ending', + "original_description", + "thermal_transmittance_unit", + "original_description_ending", + "thermal_transmittance_unit_ending", + "is_cavity_wall_ending", + "is_filled_cavity_ending", + "is_solid_brick_ending", + "is_system_built_ending", + "is_timber_frame_ending", + "is_granite_or_whinstone_ending", + "is_as_built_ending", + "is_cob_ending", + "is_assumed_ending", + "is_sandstone_or_limestone_ending", # Re remove the is_assumed columns - "is_assumed", "is_assumed_ending" + "is_assumed", + "is_assumed_ending", ], "floor": [ - "original_description", "clean_description", "thermal_transmittance_unit", - "no_data", "no_data_ending", "original_description_ending", - "clean_description_ending", "thermal_transmittance_unit_ending", - "is_suspended_ending", "is_solid_ending", "another_property_below_ending", - "is_to_unheated_space_ending", "is_to_external_air_ending", "is_assumed", - "is_assumed_ending" + "original_description", + "clean_description", + "thermal_transmittance_unit", + "no_data", + "no_data_ending", + "original_description_ending", + "clean_description_ending", + "thermal_transmittance_unit_ending", + "is_suspended_ending", + "is_solid_ending", + "another_property_below_ending", + "is_to_unheated_space_ending", + "is_to_external_air_ending", + "is_assumed", + "is_assumed_ending", ], "roof": [ - "original_description", "clean_description", "thermal_transmittance_unit", - "is_assumed", "is_valid", "original_description_ending", "clean_description_ending", - "thermal_transmittance_unit_ending", "is_pitched_ending", "is_roof_room_ending", - "is_loft_ending", "is_flat_ending", "is_thatched_ending", "is_at_rafters_ending", - "has_dwelling_above_ending", "is_assumed_ending", "is_valid_ending" + "original_description", + "clean_description", + "thermal_transmittance_unit", + "is_assumed", + "is_valid", + "original_description_ending", + "clean_description_ending", + "thermal_transmittance_unit_ending", + "is_pitched_ending", + "is_roof_room_ending", + "is_loft_ending", + "is_flat_ending", + "is_thatched_ending", + "is_at_rafters_ending", + "has_dwelling_above_ending", + "is_assumed_ending", + "is_valid_ending", ], "hotwater": [ - "original_description", "clean_description", "assumed", "original_description_ending", - "clean_description_ending", "assumed_ending" + "original_description", + "clean_description", + "assumed", + "original_description_ending", + "clean_description_ending", + "assumed_ending", ], "mainheat": [ - "original_description", "clean_description", "original_description_ending", - "has_assumed", "original_description_ending", "clean_description_ending", + "original_description", + "clean_description", + "original_description_ending", + "has_assumed", + "original_description_ending", + "clean_description_ending", "has_assumed_ending", ], "mainheatcont": [ - "original_description", "clean_description", "original_description_ending", "clean_description_ending" + "original_description", + "clean_description", + "original_description_ending", + "clean_description_ending", ], "windows": [ - "original_description", "clean_description", "original_description_ending", "clean_description_ending", + "original_description", + "clean_description", + "original_description_ending", + "clean_description_ending", # We don't need many of the glazing coverage features because we have the multi_glaze_proportion feature - "has_glazing", "glazing_coverage", "no_data", "has_glazing_ending", "glazing_coverage_ending", - "no_data_ending" + "has_glazing", + "glazing_coverage", + "no_data", + "has_glazing_ending", + "glazing_coverage_ending", + "no_data_ending", ], "main-fuel": [ - "original_description", "clean_description", "original_description_ending", "clean_description_ending" + "original_description", + "clean_description", + "original_description_ending", + "clean_description_ending", ], } components_to_expand = cols_to_drop.keys() for component in components_to_expand: - - # TODO: change cleaned dataframe to have underscores instead of dashes + # TODO: change cleaned dataframe to have underscores instead of dashes if component == "main-fuel": cleaned_key = "main-fuel" left_on_starting = "main_fuel_starting" @@ -388,7 +558,10 @@ class TrainingDataset(BaseDataset): cleaned_key = f"{component}-description" left_on_starting = f"{component}_description_starting" left_on_ending = f"{component}_description_ending" - original_cols = [f"{component}_description_starting", f"{component}_description_ending"] + original_cols = [ + f"{component}_description_starting", + f"{component}_description_ending", + ] cleaned_lookup_df_for_key = pd.DataFrame(cleaned_lookup[cleaned_key]) @@ -402,14 +575,16 @@ class TrainingDataset(BaseDataset): how="left", left_on=left_on_ending, right_on="original_description", - suffixes=("", "_ending") + suffixes=("", "_ending"), ) # Drop properties where key material types have changed expanded_df = self._drop_inconsistent_properties(expanded_df, component) # Drop original cols and cols to drop - expanded_df = expanded_df.drop(columns=cols_to_drop[component] + original_cols) + expanded_df = expanded_df.drop( + columns=cols_to_drop[component] + original_cols + ) # Rename columns to component specific names, if they have not been dropped expanded_df = expanded_df.rename( @@ -428,7 +603,9 @@ class TrainingDataset(BaseDataset): # We don't need any lighting specific cleaning, we just drop the original description as we use # LOW_ENERGY_LIGHTING_STARTING, LOW_ENERGY_LIGHTING_ENDING - self.df = self.df.drop(columns=["lighting_description_starting", "lighting_description_ending"]) + self.df = self.df.drop( + columns=["lighting_description_starting", "lighting_description_ending"] + ) def _clean_missing_values(self, ignore_cols=None): missings = pd.isnull(self.df).sum() @@ -455,17 +632,22 @@ class TrainingDataset(BaseDataset): """ Drop features that are not needed for modelling """ - self.df = self.df.drop(columns=["lodgement_date_starting", "lodgement_date_ending"]) + self.df = self.df.drop( + columns=["lodgement_date_starting", "lodgement_date_ending"] + ) def _feature_generation(self): """ Generate features for modelling """ - self.df["days_to_starting"] = self._calculate_days_to(self.df["lodgement_date_starting"]) - self.df["day_to_ending"] = self._calculate_days_to(self.df["lodgement_date_ending"]) + self.df["days_to_starting"] = self._calculate_days_to( + self.df["lodgement_date_starting"] + ) + self.df["days_to_ending"] = self._calculate_days_to( + self.df["lodgement_date_ending"] + ) def _clean_efficiency_variables(self): - """ These is scope to clean this by the model per corresponding description. E.g. for WALLS_ENG_EFF we could look at the mode efficiency rating by description and @@ -491,7 +673,6 @@ class TrainingDataset(BaseDataset): @staticmethod def _calculate_days_to(lodgement_date): - if isinstance(lodgement_date, str): return ( pd.to_datetime(lodgement_date) - pd.to_datetime(EARLIEST_EPC_DATE) @@ -527,7 +708,9 @@ class NewDataset(BaseDataset): def __add__(self, other) -> "NewDataset": if not isinstance(other, NewDataset): - raise TypeError("Addition can only be performed with another instance of ScoringDataset") + raise TypeError( + "Addition can only be performed with another instance of ScoringDataset" + ) return NewDataset(self.datasets + other.datasets) def __radd__(self, other): diff --git a/etl/epc/Pipeline.py b/etl/epc/Pipeline.py index 168f7f71..99bbb22f 100644 --- a/etl/epc/Pipeline.py +++ b/etl/epc/Pipeline.py @@ -31,9 +31,13 @@ CARBON_RESPONSE = CARBON_RESPONSE.lower() CORE_COMPONENT_FEATURES = [x.lower() for x in CORE_COMPONENT_FEATURES] EFFICIENCY_FEATURES = [x.lower() for x in EFFICIENCY_FEATURES] POTENTIAL_COLUMNS = [x.lower() for x in POTENTIAL_COLUMNS] -VARIABLE_DATA_FEATURES = COMPONENT_FEATURES + EFFICIENCY_FEATURES + POTENTIAL_COLUMNS + [ - "lodgement_date", RDSAP_RESPONSE, HEAT_DEMAND_RESPONSE, CARBON_RESPONSE -] +VARIABLE_DATA_FEATURES = ( + COMPONENT_FEATURES + + EFFICIENCY_FEATURES + + POTENTIAL_COLUMNS + + ["lodgement_date", RDSAP_RESPONSE, HEAT_DEMAND_RESPONSE, CARBON_RESPONSE] +) + def get_cleaned_description_mapping(): """ @@ -45,16 +49,17 @@ def get_cleaned_description_mapping(): """ cleaned = read_from_s3( - s3_file_name="cleaned_epc_data/cleaned.bson", - bucket_name="retrofit-data-dev" + s3_file_name="cleaned_epc_data/cleaned.bson", bucket_name="retrofit-data-dev" ) cleaned = msgpack.unpackb(cleaned, raw=False) return cleaned + clean_lookup = get_cleaned_description_mapping() + class EPCPipeline: """ This class will take a list of directories and process them to create a dataset: @@ -66,17 +71,17 @@ class EPCPipeline: """ def __init__( - self, - epc_data_processor: EPCDataProcessor, - api_epc_records: dict = None, - directories: List[Path] | None = None, - run_mode="training", - epc_local_file="certificates.csv", - epc_bucket_name="retrofit-data-dev", - epc_cleaning_dataset_key="sap_change_model/cleaning_dataset.parquet", - epc_all_equal_rows_key="sap_change_model/all_equal_rows.parquet", - epc_compiled_dataset_key="sap_change_model/dataset.parquet" - ): + self, + epc_data_processor: EPCDataProcessor, + api_epc_records: dict = None, + directories: List[Path] | None = None, + run_mode="training", + epc_local_file="certificates.csv", + epc_bucket_name="retrofit-data-dev", + epc_cleaning_dataset_key="sap_change_model/cleaning_dataset.parquet", + epc_all_equal_rows_key="sap_change_model/all_equal_rows.parquet", + epc_compiled_dataset_key="sap_change_model/dataset.parquet", + ): """ :param directories: List of directories to process :param epc_data_processor: EPCDataProcessor object @@ -100,7 +105,7 @@ class EPCPipeline: self.epc_cleaning_dataset_key = epc_cleaning_dataset_key self.epc_all_equal_rows_key = epc_all_equal_rows_key self.epc_compiled_dataset_key = epc_compiled_dataset_key - + def run(self): """ Entrypoint to run the pipeline @@ -111,29 +116,33 @@ class EPCPipeline: self.run_newdata_dataset_pipeline() else: raise ValueError("Run mode defined needs to be in 'training' or 'newdata'") - + def run_newdata_dataset_pipeline(self): """ Main function to run the newdata pipeline """ - prepared_epc = EPCRecord(self.api_epc_records, run_mode="newdata") # This uses all the epc records to clean the data + prepared_epc = EPCRecord( + self.api_epc_records, run_mode="newdata" + ) # This uses all the epc records to clean the data self.epc_data_processor.insert_data(prepared_epc) self.epc_data_processor.prepare_data() data = self.epc_data_processor.data + epc_records = [ + EPCRecord(**x, run_mode="newdata") for x in data.to_dict(orient="records") + ] - - epc_records = [EPCRecord(**x, run_mode="newdata") for x in data.to_dict(orient='records')] - def run_training_dataset_pipeline(self): """ Main function to run the training dataset generation pipeline """ if self.directories is None: - raise ValueError("Directories not specified - Unable to run Training pipeline") - + raise ValueError( + "Directories not specified - Unable to run Training pipeline" + ) + for directory in tqdm(self.directories): self.process_directory(directory) @@ -153,8 +162,8 @@ class EPCPipeline: df=pd.concat(self.compiled_cleaning_averages), bucket_name=self.epc_bucket_name, file_key=self.epc_cleaning_dataset_key, - ) - + ) + def process_directory(self, directory: Path): """ Process a single directory @@ -166,17 +175,32 @@ class EPCPipeline: self.epc_data_processor.prepare_data(filepath=filepath) constituency_data = self.epc_data_processor.data - self.compiled_cleaning_averages.append(self.epc_data_processor.cleaning_averages) + self.compiled_cleaning_averages.append( + self.epc_data_processor.cleaning_averages + ) constituency_difference_records = [] + # self.check_records = [] for uprn, property_data in constituency_data.groupby("uprn", observed=True): - difference_records = self.process_uprn(uprn=str(uprn), property_data=property_data, directory=directory) + difference_records = self.process_uprn( + uprn=str(uprn), property_data=property_data, directory=directory + ) if difference_records is not None: constituency_difference_records.extend(difference_records) - - constituency_dataset = TrainingDataset(datasets=constituency_difference_records, cleaned_lookup=clean_lookup) - self.compiled_dataset = pd.concat([self.compiled_dataset, constituency_dataset.df]) + # check_list = [] + # for check_record in self.check_records: + # check_list.append(check_record["difference_record"]) + + # td = TrainingDataset(datasets=check_list, cleaned_lookup=clean_lookup) + + constituency_dataset = TrainingDataset( + datasets=constituency_difference_records, cleaned_lookup=clean_lookup + ) + + self.compiled_dataset = pd.concat( + [self.compiled_dataset, constituency_dataset.df] + ) def process_uprn(self, uprn: str, property_data: pd.DataFrame, directory: Path): """ @@ -192,25 +216,34 @@ class EPCPipeline: ): return None - # Fixed features - these are property attributes that shouldn't change over time + # Fixed features - these are property attributes that shouldn't change over time # Take the latest row for both the LATEST_FEILDS and MANDATORY FIELDS and combine all fields together - fixed_data = property_data[MANDATORY_FIXED_FEATURES + LATEST_FIELD].iloc[-1].to_dict() + fixed_data = ( + property_data[MANDATORY_FIXED_FEATURES + LATEST_FIELD].iloc[-1].to_dict() + ) # We include the lodgement date here as we probably need to factor time into the # model, since EPC standards and rigour have changed over time variable_data = property_data[VARIABLE_DATA_FEATURES] uprn = str(uprn) - epc_records = [EPCRecord(uprn, **x, run_mode="training") for x in variable_data.to_dict(orient='records')] + epc_records = [ + EPCRecord(uprn, **x, run_mode="training") + for x in variable_data.to_dict(orient="records") + ] # TODO: We want to be able to provide value for the u values in the main pipeline so this will need to be part of the EPCRecord # We can use multiple types of comparison datasets - i.e. Compare consecutive records, or compare all permutations of records - property_difference_records = self._generate_property_difference_records(epc_records, uprn, directory, fixed_data) + property_difference_records = self._generate_property_difference_records( + epc_records, uprn, directory, fixed_data + ) return property_difference_records - def _generate_property_difference_records(self, epc_records: List[EPCRecord], uprn: str, directory: Path, fixed_data: dict): + def _generate_property_difference_records( + self, epc_records: List[EPCRecord], uprn: str, directory: Path, fixed_data: dict + ): """ We can use multiple types of comparison datasets, for example: - First vs second @@ -222,14 +255,22 @@ class EPCPipeline: property_difference_records: list = [] - property_difference_records = self._compare_consecutive_epcs(epc_records, uprn, directory, fixed_data, property_difference_records) + # property_difference_records = self._compare_consecutive_epcs(epc_records, uprn, directory, fixed_data, property_difference_records) - # property_difference_records = self._compare_all_permutation_epcs(epc_records, uprn, directory, fixed_data, property_difference_records) + property_difference_records = self._compare_all_permutation_epcs( + epc_records, uprn, directory, fixed_data, property_difference_records + ) return property_difference_records - - def _compare_all_permutation_epcs(self, epc_records: List[EPCRecord], uprn: str, directory: Path, fixed_data: dict, property_difference_records: list): + def _compare_all_permutation_epcs( + self, + epc_records: List[EPCRecord], + uprn: str, + directory: Path, + fixed_data: dict, + property_difference_records: list, + ): """ Compare all permutations of EPCs for a given UPRN :param epc_records: @@ -243,28 +284,40 @@ class EPCPipeline: # Auto sort the records so that the record with highest RDSAP score is always record1 difference_record: EPCDifferenceRecord = latest_record - earliest_record + # TODO: Use method above instead of overloading operator + difference_record.append_fixed_data(fixed_data) # TODO: Pull out RDSAP_CHANGE to a variable if difference_record.get("rdsap_change") == 0: - continue - + if not difference_record.ensure_adequate_data(): + # Rdsap hasn't changed but we have enough data to use this record + # i.e. all fields aside from mechnical ventilation are the same] + # self.check_records.append({"uprn": uprn, "directory_name": directory.name, "difference_record": difference_record, "earliest_record": earliest_record, "latest_record": latest_record}) + continue + all_equal = difference_record.compare_fields_in_records( fields=[x.lower() for x in CORE_COMPONENT_FEATURES] - ) - + ) + if all_equal: # Keep track of this for the moment so we can analyse - self.compiled_all_equal_rows.append({"uprn": uprn, "directory_name": directory.name}) + self.compiled_all_equal_rows.append( + {"uprn": uprn, "directory_name": directory.name} + ) continue - difference_record.append_fixed_data(fixed_data) - property_difference_records.append(difference_record) - + return property_difference_records - - def _compare_consecutive_epcs(self, epc_records: List[EPCRecord], uprn: str, directory: Path, fixed_data: dict, property_difference_records: list): + def _compare_consecutive_epcs( + self, + epc_records: List[EPCRecord], + uprn: str, + directory: Path, + fixed_data: dict, + property_difference_records: list, + ): """ Compare consecutive EPCs for a given UPRN :param epc_records: @@ -272,7 +325,6 @@ class EPCPipeline: """ for idx in range(0, len(epc_records) - 1): - if idx >= len(epc_records) - 1: break @@ -281,21 +333,29 @@ class EPCPipeline: # Auto sort the records so that the record with highest RDSAP score is always record1 difference_record: EPCDifferenceRecord = latest_record - earliest_record + # TODO: Use method above instead of overloading operator + difference_record.append_fixed_data(fixed_data) # TODO: Pull out RDSAP_CHANGE to a variable if difference_record.get("rdsap_change") == 0: - continue - + if not difference_record.ensure_adequate_data(): + # Rdsap hasn't changed but we have enough data to use this record + # i.e. all fields aside from mechnical ventilation are the same] + # self.check_records.append({"uprn": uprn, "directory_name": directory.name, "difference_record": difference_record, "earliest_record": earliest_record, "latest_record": latest_record}) + continue + all_equal = difference_record.compare_fields_in_records( fields=[x.lower() for x in CORE_COMPONENT_FEATURES] - ) - + ) + if all_equal: # Keep track of this for the moment so we can analyse - self.compiled_all_equal_rows.append({"uprn": uprn, "directory_name": directory.name}) + self.compiled_all_equal_rows.append( + {"uprn": uprn, "directory_name": directory.name} + ) continue - difference_record.append_fixed_data(fixed_data) + # difference_record.append_fixed_data(fixed_data) property_difference_records.append(difference_record) diff --git a/etl/epc/Record.py b/etl/epc/Record.py index 70586749..ac86a636 100644 --- a/etl/epc/Record.py +++ b/etl/epc/Record.py @@ -3,7 +3,7 @@ from dataclasses import dataclass from etl.epc.ValidationConfiguration import ( EPCRecordValidationConfiguration, EPCDifferenceRecordValidationConfiguration, - EPCDifferenceRecordFixedDataValidationConfiguration + EPCDifferenceRecordFixedDataValidationConfiguration, ) from etl.epc.DataProcessor import EPCDataProcessor from recommendations.rdsap_tables import england_wales_age_band_lookup, FLOOR_LEVEL_MAP @@ -18,20 +18,23 @@ from etl.epc.settings import ( HEAT_DEMAND_RESPONSE, CARBON_RESPONSE, COMPONENT_FEATURES, - EFFICIENCY_FEATURES + EFFICIENCY_FEATURES, ) +from recommendations.recommendation_utils import estimate_number_of_floors from utils.s3 import read_dataframe_from_s3_parquet from etl.epc.settings import EARLIEST_EPC_DATE -# TODO: Change these in the settings file +# TODO: Change these in the settings file RDSAP_RESPONSE = RDSAP_RESPONSE.lower() HEAT_DEMAND_RESPONSE = HEAT_DEMAND_RESPONSE.lower() CARBON_RESPONSE = CARBON_RESPONSE.lower() COMPONENT_FEATURES = [x.lower() for x in COMPONENT_FEATURES] EFFICIENCY_FEATURES = [x.lower() for x in EFFICIENCY_FEATURES] -ENVIRONMENT = os.environ.get('ENVIRONMENT', 'dev') -DATA_BUCKET = os.environ.get('DATA_BUCKET', 'retrofit-data-dev' if ENVIRONMENT == 'dev' else None) +ENVIRONMENT = os.environ.get("ENVIRONMENT", "dev") +DATA_BUCKET = os.environ.get( + "DATA_BUCKET", "retrofit-data-dev" if ENVIRONMENT == "dev" else None +) @dataclass @@ -106,7 +109,7 @@ class EPCRecord: def __post_init__(self): # We can have validation and cleaning steps for each of the fields # self.WALLS_DESCRIPTION = 'check' - # Could also have cleaning of records if needed + # Could also have cleaning of records if needed if self.run_mode == "training": self.validation_configuration = EPCRecordValidationConfiguration @@ -117,18 +120,17 @@ class EPCRecord: if self.epc_records is None: raise ValueError("Must provide epc records if running in newdata mode") - self.prepared_epc = self.epc_records['original_epc'] - self.original_epc = self.epc_records['original_epc'].copy() + self.prepared_epc = self.epc_records["original_epc"] + self.original_epc = self.epc_records["original_epc"].copy() - self.full_sap_epc = self.epc_records['full_sap_epc'] - self.old_data = self.epc_records['old_data'] + self.full_sap_epc = self.epc_records["full_sap_epc"] + self.old_data = self.epc_records["old_data"] if self.cleaning_data is None: raise ValueError("Must provide cleaning data if running in newdata mode") self._clean_records_using_epc_records() self._clean_with_data_processor() - self._temp_uprn_catch() self._expand_prepared_epc_to_attributes() @@ -139,7 +141,7 @@ class EPCRecord: # selff.df = self.epc_record_as_dataframe('prepared_epc') # self._feature_generation() - # self._drop_features() + # self._drop_features() return @@ -156,17 +158,20 @@ class EPCRecord: """ Drop features that are not needed for modelling """ - self.df = self.df.drop(columns=["lodgement_date_starting", "lodgement_date_ending"]) + self.df = self.df.drop( + columns=["lodgement_date_starting", "lodgement_date_ending"] + ) def _feature_generation(self): """ Generate features for modelling """ - self.df["days_to_lodgement_date"] = self._calculate_days_to(self.prepared_epc["lodgement_date"]) + self.df["days_to_lodgement_date"] = self._calculate_days_to( + self.prepared_epc["lodgement_date"] + ) @staticmethod def _calculate_days_to(lodgement_date): - if isinstance(lodgement_date, str): return ( pd.to_datetime(lodgement_date) - pd.to_datetime(EARLIEST_EPC_DATE) @@ -176,13 +181,6 @@ class EPCRecord: pd.to_datetime(lodgement_date) - pd.to_datetime(EARLIEST_EPC_DATE) ).dt.days - def _temp_uprn_catch(self): - """ - Catch the case we do now have uprn - """ - if self.prepared_epc["uprn"] == "": - self.prepared_epc["uprn"] = 0 - def _clean_with_data_processor(self): """ This method will clean the records using the data processor @@ -190,7 +188,7 @@ class EPCRecord: epc_data_processor = EPCDataProcessor( data=self.epc_record_as_dataframe("prepared_epc"), run_mode="newdata", - cleaning_averages=self.cleaning_data + cleaning_averages=self.cleaning_data, ) epc_data_processor.prepare_data() @@ -216,11 +214,21 @@ class EPCRecord: self.secondheat_description: str = self.prepared_epc["secondheat_description"] self.windows_description: str = self.prepared_epc["windows_description"] self.glazed_type: str = self.prepared_epc["glazed_type"] - self.multi_glaze_proportion: float = float(self.prepared_epc["multi_glaze_proportion"]) - self.low_energy_lighting: float = float(self.prepared_epc["low_energy_lighting"]) - self.number_open_fireplaces: float = float(self.prepared_epc["number_open_fireplaces"]) - self.mainheatcont_description: str = self.prepared_epc["mainheatcont_description"] - self.solar_water_heating_flag: str = self.prepared_epc["solar_water_heating_flag"] + self.multi_glaze_proportion: float = float( + self.prepared_epc["multi_glaze_proportion"] + ) + self.low_energy_lighting: float = float( + self.prepared_epc["low_energy_lighting"] + ) + self.number_open_fireplaces: float = float( + self.prepared_epc["number_open_fireplaces"] + ) + self.mainheatcont_description: str = self.prepared_epc[ + "mainheatcont_description" + ] + self.solar_water_heating_flag: str = self.prepared_epc[ + "solar_water_heating_flag" + ] self.photo_supply: float = float(self.prepared_epc["photo_supply"]) self.transaction_type: str = self.prepared_epc["transaction_type"] self.energy_tariff: str = self.prepared_epc["energy_tariff"] @@ -236,14 +244,28 @@ class EPCRecord: self.mainheat_energy_eff: str = self.prepared_epc["mainheat_energy_eff"] self.mainheatc_energy_eff: str = self.prepared_epc["mainheatc_energy_eff"] self.lighting_energy_eff: str = self.prepared_epc["lighting_energy_eff"] - self.potential_energy_efficiency: float = float(self.prepared_epc["potential_energy_efficiency"]) - self.environment_impact_potential: float = float(self.prepared_epc["environment_impact_potential"]) - self.energy_consumption_potential: float = float(self.prepared_epc["energy_consumption_potential"]) - self.co2_emissions_potential: float = float(self.prepared_epc["co2_emissions_potential"]) + self.potential_energy_efficiency: float = float( + self.prepared_epc["potential_energy_efficiency"] + ) + self.environment_impact_potential: float = float( + self.prepared_epc["environment_impact_potential"] + ) + self.energy_consumption_potential: float = float( + self.prepared_epc["energy_consumption_potential"] + ) + self.co2_emissions_potential: float = float( + self.prepared_epc["co2_emissions_potential"] + ) self.lodgement_date: str = self.prepared_epc["lodgement_date"] - self.current_energy_efficiency: int = int(self.prepared_epc["current_energy_efficiency"]) - self.energy_consumption_current: int = int(self.prepared_epc["energy_consumption_current"]) - self.co2_emissions_current: float = float(self.prepared_epc["co2_emissions_current"]) + self.current_energy_efficiency: int = int( + self.prepared_epc["current_energy_efficiency"] + ) + self.energy_consumption_current: int = int( + self.prepared_epc["energy_consumption_current"] + ) + self.co2_emissions_current: float = float( + self.prepared_epc["co2_emissions_current"] + ) def _identify_delta_between_prepared_and_original_records(self): """ @@ -252,7 +274,11 @@ class EPCRecord: prepared_epc_df = self.epc_record_as_dataframe("prepared_epc") original_epc_df = self.epc_record_as_dataframe("original_epc") - df = pd.concat([prepared_epc_df, original_epc_df], keys=["prepared_epc", "original_epc"], axis=0) + df = pd.concat( + [prepared_epc_df, original_epc_df], + keys=["prepared_epc", "original_epc"], + axis=0, + ) same_index = df.apply(pd.Series.duplicated).any() self.prepared_epc_delta_metadata = df[same_index[~same_index].index] @@ -269,7 +295,7 @@ class EPCRecord: # This method will merge on the cleaned lookup table and ensure that the building fabric in the # starting and ending EPC is consistent, so ensure that we are performing our modelling on the cleanest # possible dataset. - # """ + # """ # for component in ["walls", "floor", "roof", "hotwater", "mainheat", "mainheatcont", "windows", "main-fuel"]: # if component == "main-fuel": # component = component.replace("-", "_") @@ -325,8 +351,12 @@ class EPCRecord: # self._clean_energy_consumption_current() # self._clean_co2_emissions_current() - def epc_record_as_dataframe(self, epc_type: str = "prepared_epc", use_upper_columns: bool = True, - replace_empty_string: bool = False): + def epc_record_as_dataframe( + self, + epc_type: str = "prepared_epc", + use_upper_columns: bool = True, + replace_empty_string: bool = False, + ): """ This method will return the dataframe representation of the epc record """ @@ -348,8 +378,9 @@ class EPCRecord: raise ValueError("EPC Recrod doesn not contain epc data") self.prepared_epc["floor-level"] = ( - FLOOR_LEVEL_MAP[self.prepared_epc["floor-level"]] if - self.prepared_epc["floor-level"] not in DATA_ANOMALY_MATCHES else None + FLOOR_LEVEL_MAP[self.prepared_epc["floor-level"]] + if self.prepared_epc["floor-level"] not in DATA_ANOMALY_MATCHES + else None ) def _clean_number_lighting_outlets(self): @@ -360,35 +391,50 @@ class EPCRecord: raise ValueError("EPC Recrod doesn not contain epc data") if self.prepared_epc["fixed-lighting-outlets-count"] == "": - # We check old EPCs and the full SAP EPC lighting_data = [] if len(self.old_data): - lighting_data.extend([ - int(old_record["fixed-lighting-outlets-count"]) for old_record in self.old_data if - old_record["fixed-lighting-outlets-count"] != "" - ]) + lighting_data.extend( + [ + int(old_record["fixed-lighting-outlets-count"]) + for old_record in self.old_data + if old_record["fixed-lighting-outlets-count"] != "" + ] + ) if len(self.full_sap_epc): if self.full_sap_epc["fixed-lighting-outlets-count"] != "": - lighting_data.append(int(self.full_sap_epc["fixed-lighting-outlets-count"])) + lighting_data.append( + int(self.full_sap_epc["fixed-lighting-outlets-count"]) + ) if lighting_data: - self.prepared_epc["fixed-lighting-outlets-count"] = round(np.median(lighting_data)) + self.prepared_epc["fixed-lighting-outlets-count"] = round( + np.median(lighting_data) + ) else: - # Use averages from the cleaning dataset, based on the property type, built form, construction age - # band and local authority + # Use averages from the cleaning dataset, based on the property type, built form, construction age band and local authority cleaned_property_data = EPCDataProcessor.apply_averages_cleaning( - data_to_clean=self.epc_record_as_dataframe("prepared_epc", replace_empty_string=True), + data_to_clean=self.epc_record_as_dataframe( + "prepared_epc", replace_empty_string=True + ), cleaning_data=self.cleaning_data, - cols_to_merge_on=['PROPERTY_TYPE', 'BUILT_FORM', 'CONSTRUCTION_AGE_BAND', 'LOCAL_AUTHORITY'], + cols_to_merge_on=[ + "PROPERTY_TYPE", + "BUILT_FORM", + "CONSTRUCTION_AGE_BAND", + "LOCAL_AUTHORITY", + ], ) self.prepared_epc["fixed-lighting-outlets-count"] = round( - cleaned_property_data["FIXED_LIGHTING_OUTLETS_COUNT"].values[0]) + cleaned_property_data["FIXED_LIGHTING_OUTLETS_COUNT"].values[0] + ) else: - self.prepared_epc["fixed-lighting-outlets-count"] = float(self.prepared_epc["fixed-lighting-outlets-count"]) + self.prepared_epc["fixed-lighting-outlets-count"] = float( + self.prepared_epc["fixed-lighting-outlets-count"] + ) def _filter_property_dimensions(self, property_dimensions): """ @@ -397,16 +443,27 @@ class EPCRecord: :return: filtered property dimensions dataframe """ - result = property_dimensions[(property_dimensions["PROPERTY_TYPE"] == self.prepared_epc["property-type"])] + result = property_dimensions[ + (property_dimensions["PROPERTY_TYPE"] == self.prepared_epc["property-type"]) + ] - if self.construction_age_band is not None and self.construction_age_band not in DATA_ANOMALY_MATCHES: - result = result[(result["CONSTRUCTION_AGE_BAND"] == self.construction_age_band)] + if ( + self.construction_age_band is not None + and self.construction_age_band not in DATA_ANOMALY_MATCHES + ): + result = result[ + (result["CONSTRUCTION_AGE_BAND"] == self.construction_age_band) + ] - if self.prepared_epc["built-form"] not in DATA_ANOMALY_MATCHES and self.prepared_epc["built-form"] in result[ - "BUILT_FORM"]: + if ( + self.prepared_epc["built-form"] not in DATA_ANOMALY_MATCHES + and self.prepared_epc["built-form"] in result["BUILT_FORM"] + ): result = result[(result["BUILT_FORM"] == self.prepared_epc["built-form"])] - return result[["NUMBER_HABITABLE_ROOMS", "TOTAL_FLOOR_AREA", "FLOOR_HEIGHT"]].mean() + return result[ + ["NUMBER_HABITABLE_ROOMS", "TOTAL_FLOOR_AREA", "FLOOR_HEIGHT"] + ].mean() def _clean_property_dimensions(self): """ @@ -417,30 +474,46 @@ class EPCRecord: raise ValueError("EPC Recrod doesn not contain epc data") if not self.prepared_epc["number-habitable-rooms"] or ( - self.prepared_epc["floor-height"] == "" or self.prepared_epc["floor-height"] in DATA_ANOMALY_MATCHES + self.prepared_epc["floor-height"] == "" + or self.prepared_epc["floor-height"] in DATA_ANOMALY_MATCHES ): property_dimensions = read_dataframe_from_s3_parquet( - bucket_name=DATA_BUCKET, file_key=f"property_dimensions/{self.prepared_epc['local-authority']}.parquet" + bucket_name=DATA_BUCKET, + file_key=f"property_dimensions/{self.prepared_epc['local-authority']}.parquet", + ) + self.property_dimensions = self._filter_property_dimensions( + property_dimensions ) - self.property_dimensions = self._filter_property_dimensions(property_dimensions) if not self.prepared_epc["number-habitable-rooms"]: self.prepared_epc["number-habitable-rooms"] = float( - self.property_dimensions["NUMBER_HABITABLE_ROOMS"].round()) + self.property_dimensions["NUMBER_HABITABLE_ROOMS"].round() + ) else: - self.prepared_epc["number-habitable-rooms"] = float(self.prepared_epc["number-habitable-rooms"]) + self.prepared_epc["number-habitable-rooms"] = float( + self.prepared_epc["number-habitable-rooms"] + ) - if self.prepared_epc["property-type"] == "House": - self.number_of_floors = 2 - elif self.prepared_epc["property-type"] in ["Flat", "Bungalow"]: - self.number_of_floors = 1 - elif self.prepared_epc["property-type"] == "Maisonette": - self.number_of_floors = 2 - else: - raise NotImplementedError("Implement me") + self.number_of_floors = estimate_number_of_floors( + self.prepared_epc["property-type"] + ) - if self.prepared_epc["floor-height"] == "" or self.prepared_epc["floor-height"] in DATA_ANOMALY_MATCHES: - self.prepared_epc["floor-height"] = float(self.property_dimensions["FLOOR_HEIGHT"].round(2)) + # if self.prepared_epc["property-type"] == "House": + # self.number_of_floors = 2 + # elif self.prepared_epc["property-type"] in ["Flat", "Bungalow"]: + # self.number_of_floors = 1 + # elif self.prepared_epc["property-type"] == "Maisonette": + # self.number_of_floors = 2 + # else: + # raise NotImplementedError("Implement me") + + if ( + self.prepared_epc["floor-height"] == "" + or self.prepared_epc["floor-height"] in DATA_ANOMALY_MATCHES + ): + self.prepared_epc["floor-height"] = float( + self.property_dimensions["FLOOR_HEIGHT"].round(2) + ) else: self.prepared_epc["floor-height"] = float(self.prepared_epc["floor-height"]) @@ -451,7 +524,9 @@ class EPCRecord: if not self.prepared_epc: raise ValueError("EPC Recrod doesn not contain epc data") - self.prepared_epc["total-floor-area"] = float(self.prepared_epc["total-floor-area"]) + self.prepared_epc["total-floor-area"] = float( + self.prepared_epc["total-floor-area"] + ) def _clean_mains_gas(self): """ @@ -465,9 +540,14 @@ class EPCRecord: "N": False, } - self.prepared_epc["mains-gas-flag"] = None if ( - self.prepared_epc["mains-gas-flag"] == "" or self.prepared_epc["mains-gas-flag"] in DATA_ANOMALY_MATCHES - ) else map[self.prepared_epc["mains-gas-flag"]] + self.prepared_epc["mains-gas-flag"] = ( + None + if ( + self.prepared_epc["mains-gas-flag"] == "" + or self.prepared_epc["mains-gas-flag"] in DATA_ANOMALY_MATCHES + ) + else map[self.prepared_epc["mains-gas-flag"]] + ) def _clean_heat_loss_corridor(self): """ @@ -479,16 +559,19 @@ class EPCRecord: map = { "no corridor": False, "unheated corridor": True, - "heated corridor": False + "heated corridor": False, } - self.prepared_epc["heat-loss-corridor"] = False if self.prepared_epc[ - "heat-loss-corridor"] in DATA_ANOMALY_MATCHES else map[ - self.prepared_epc["heat-loss-corridor"]] + self.prepared_epc["heat-loss-corridor"] = ( + False + if self.prepared_epc["heat-loss-corridor"] in DATA_ANOMALY_MATCHES + else map[self.prepared_epc["heat-loss-corridor"]] + ) self.prepared_epc["unheated-corridor-length"] = ( - float(self.prepared_epc["unheated-corridor-length"]) if - self.prepared_epc["unheated-corridor-length"] != "" else None + float(self.prepared_epc["unheated-corridor-length"]) + if self.prepared_epc["unheated-corridor-length"] != "" + else None ) def _clean_count_variables(self): @@ -496,7 +579,7 @@ class EPCRecord: This method will clean the count variables, if empty or invalid """ if not self.prepared_epc: - raise ValueError("EPC Record doesn not contain epc data") + raise ValueError("EPC Recrod doesn not contain epc data") fields = { "number_of_open_fireplaces": "number-open-fireplaces", @@ -508,6 +591,8 @@ class EPCRecord: null_attributes = ["number_of_storeys", "number_of_rooms"] for attribute, epc_field in fields.items(): + # TODO: check this + # value = self.data["extension-count"] value = self.prepared_epc[epc_field] if value == "" or value in DATA_ANOMALY_MATCHES: if attribute in null_attributes: @@ -526,8 +611,11 @@ class EPCRecord: if not self.prepared_epc: raise ValueError("EPC Recrod doesn not contain epc data") - self.prepared_epc['wind-turbine-count'] = int(self.prepared_epc['wind-turbine-count']) if self.prepared_epc[ - 'wind-turbine-count'] != "" else None + self.prepared_epc["wind-turbine-count"] = ( + int(self.prepared_epc["wind-turbine-count"]) + if self.prepared_epc["wind-turbine-count"] != "" + else None + ) def _clean_solar_hot_water(self): """ @@ -542,7 +630,9 @@ class EPCRecord: "": None, } - self.prepared_epc['solar-water-heating-flag'] = value_map[self.prepared_epc['solar-water-heating-flag']] + self.prepared_epc["solar-water-heating-flag"] = value_map[ + self.prepared_epc["solar-water-heating-flag"] + ] def _clean_solar_pv(self): """ @@ -551,9 +641,11 @@ class EPCRecord: if not self.prepared_epc: raise ValueError("EPC Recrod doesn not contain epc data") - self.prepared_epc['photo-supply'] = float(self.prepared_epc['photo-supply']) if self.prepared_epc[ - 'photo-supply'] != "" \ + self.prepared_epc["photo-supply"] = ( + float(self.prepared_epc["photo-supply"]) + if self.prepared_epc["photo-supply"] != "" else None + ) def _clean_energy(self): """ @@ -562,8 +654,12 @@ class EPCRecord: if not self.prepared_epc: raise ValueError("EPC Recrod doesn not contain epc data") - self.prepared_epc['energy-consumption-current'] = float(self.prepared_epc["energy-consumption-current"]) - self.prepared_epc['co2-emissions-current'] = float(self.prepared_epc["co2-emissions-current"]) + self.prepared_epc["energy-consumption-current"] = float( + self.prepared_epc["energy-consumption-current"] + ) + self.prepared_epc["co2-emissions-current"] = float( + self.prepared_epc["co2-emissions-current"] + ) def _clean_built_form(self): """ @@ -572,8 +668,9 @@ class EPCRecord: if not self.prepared_epc: raise ValueError("EPC Recrod doesn not contain epc data") - self.prepared_epc['built-form'] = BUILT_FORM_REMAP.get(self.prepared_epc["built-form"], - self.prepared_epc["built-form"]) + self.prepared_epc["built-form"] = BUILT_FORM_REMAP.get( + self.prepared_epc["built-form"], self.prepared_epc["built-form"] + ) if self.prepared_epc["built-form"] in DATA_ANOMALY_MATCHES: if self.prepared_epc["property-type"] == "Flat": self.prepared_epc["built-form"] = "Semi-Detached" @@ -586,26 +683,38 @@ class EPCRecord: raise ValueError("EPC Recrod doesn not contain epc data") self.construction_age_band = EPCDataProcessor.clean_construction_age_band( - self.prepared_epc["construction-age-band"]) + self.prepared_epc["construction-age-band"] + ) if self.construction_age_band in DATA_ANOMALY_MATCHES: if self.old_data: # Take the most recent max_datetime = max( - [old_record["lodgement-datetime"] for old_record in self.old_data if - old_record["construction-age-band"] not in DATA_ANOMALY_MATCHES] + [ + old_record["lodgement-datetime"] + for old_record in self.old_data + if old_record["construction-age-band"] + not in DATA_ANOMALY_MATCHES + ] ) - most_recent = [old_record for old_record in self.old_data if - old_record["lodgement-datetime"] == max_datetime] + most_recent = [ + old_record + for old_record in self.old_data + if old_record["lodgement-datetime"] == max_datetime + ] - self.construction_age_band = EPCDataProcessor.clean_construction_age_band( - most_recent[0]["construction-age-band"] + self.construction_age_band = ( + EPCDataProcessor.clean_construction_age_band( + most_recent[0]["construction-age-band"] + ) ) self.age_band = england_wales_age_band_lookup.get(self.construction_age_band) - if (self.prepared_epc["transaction-type"] == "new dwelling") and (self.age_band is None): + if (self.prepared_epc["transaction-type"] == "new dwelling") and ( + self.age_band is None + ): self.age_band = "L" - self.construction_age_band = 'England and Wales: 2012 onwards' + self.construction_age_band = "England and Wales: 2012 onwards" if self.age_band is None: raise ValueError("age_band is missing") @@ -615,7 +724,9 @@ class EPCRecord: This method will clean the year built, if empty or invalid """ if self.full_sap_epc: - self.year_built = datetime.strptime(self.full_sap_epc["lodgement-date"], '%Y-%m-%d').year + self.year_built = datetime.strptime( + self.full_sap_epc["lodgement-date"], "%Y-%m-%d" + ).year return @@ -623,7 +734,12 @@ class EPCRecord: # Take the lower limit. If we're pessimistic about the age of the property, that at least means we have # more options for recommendations if that age falls before the year that insulation in walls became # common practice - band = [int(x) for x in re.findall(r'\b\d{4}\b', self.prepared_epc["construction-age-band"])] + band = [ + int(x) + for x in re.findall( + r"\b\d{4}\b", self.prepared_epc["construction-age-band"] + ) + ] self.year_built = band[0] return @@ -634,9 +750,14 @@ class EPCRecord: """ This method will clean the ventilation, if empty or invalid """ - self.prepared_epc['mechanical-ventilation'] = None if ( - self.mechanical_ventilation == "" or self.mechanical_ventilation in DATA_ANOMALY_MATCHES) else ( - self.mechanical_ventilation) + self.prepared_epc["mechanical-ventilation"] = ( + None + if ( + self.mechanical_ventilation == "" + or self.mechanical_ventilation in DATA_ANOMALY_MATCHES + ) + else self.mechanical_ventilation + ) def _field_validation(self): """ @@ -647,54 +768,67 @@ class EPCRecord: # Get the variable named record key from self field_value = self.__dict__[record_key] - if validation_config['type'] == "string": + if validation_config["type"] == "string": self._validate_string(record_key, field_value, validation_config) - elif validation_config['type'] == "float": + elif validation_config["type"] == "float": self._validate_float(record_key, field_value, validation_config) else: - raise ValueError(f"Validation type {validation_config['type']} not supported") + raise ValueError( + f"Validation type {validation_config['type']} not supported" + ) - def _validate_string(self, record_key: str, field_value: Union[str, float], validation_config: dict): + def _validate_string( + self, record_key: str, field_value: Union[str, float], validation_config: dict + ): """ Validate a string field """ if not isinstance(field_value, str): - raise ValueError(f"Field {record_key} has value {field_value} which is not a string") + raise ValueError( + f"Field {record_key} has value {field_value} which is not a string" + ) - if 'function' in validation_config: + if "function" in validation_config: try: - validation_config['function'](field_value) + validation_config["function"](field_value) except: raise ValueError( - f"Field {record_key} has value {field_value} which does not pass the validation function " - f"{validation_config['function']}") + f"Field {record_key} has value {field_value} which does not pass the validation function {validation_config['function']}" + ) - if validation_config['acceptable_values'] is not None: - if field_value not in validation_config['acceptable_values']: + if validation_config["acceptable_values"] is not None: + if field_value not in validation_config["acceptable_values"]: raise ValueError( - f"Field {record_key} has value {field_value} which is not in the acceptable values of " - f"{validation_config['acceptable_values']}") + f"Field {record_key} has value {field_value} which is not in the acceptable values of {validation_config['acceptable_values']}" + ) - def _validate_float(self, record_key: str, field_value: Union[str, float], validation_config: dict): + def _validate_float( + self, record_key: str, field_value: Union[str, float], validation_config: dict + ): """ Validate a float field """ if not isinstance(field_value, float): - raise ValueError(f"Field {record_key} has value {field_value} which is not a float") + raise ValueError( + f"Field {record_key} has value {field_value} which is not a float" + ) - if 'function' in validation_config: + if "function" in validation_config: try: - validation_config['function'](field_value) + validation_config["function"](field_value) except: raise ValueError( - f"Field {record_key} has value {field_value} which does not pass the validation function " - f"{validation_config['function']}") + f"Field {record_key} has value {field_value} which does not pass the validation function {validation_config['function']}" + ) - if validation_config['range'] is not None: - if field_value < validation_config['range'][0] or field_value > validation_config['range'][1]: + if validation_config["range"] is not None: + if ( + field_value < validation_config["range"][0] + or field_value > validation_config["range"][1] + ): raise ValueError( - f"Field {record_key} has value {field_value} which is not in the acceptable range of " - f"{validation_config['range']}") + f"Field {record_key} has value {field_value} which is not in the acceptable range of {validation_config['range']}" + ) def __sub__(self, other): """ @@ -703,7 +837,9 @@ class EPCRecord: if not isinstance(other, EPCRecord): raise ValueError("Can only subtract EPCRecord from EPCRecord") - difference_record = EPCDifferenceRecord(record1=self, record2=other, auto_sort=True) + difference_record = EPCDifferenceRecord( + record1=self, record2=other, auto_sort=True + ) return difference_record @@ -743,18 +879,27 @@ class EPCRecord: return self.__dict__[RDSAP_RESPONSE] <= other.__dict__[RDSAP_RESPONSE] - def get(self, key: Union[str, List[str]], return_asdict: bool = False, key_suffix: str | None = None) -> Any: + def get( + self, + key: Union[str, List[str]], + return_asdict: bool = False, + key_suffix: str | None = None, + ) -> Any: """ This method will return the value of the key """ if return_asdict: - output_dict = {x: self.__dict__[x] if x in self.__dict__.keys() else None for x in key} + output_dict = { + x: self.__dict__[x] if x in self.__dict__.keys() else None for x in key + } if key_suffix is not None: output_dict = {f"{x}{key_suffix}": y for x, y in output_dict.items()} return output_dict if isinstance(key, list): - return [self.__dict__[x] if x in self.__dict__.keys() else None for x in key] + return [ + self.__dict__[x] if x in self.__dict__.keys() else None for x in key + ] elif isinstance(key, str): return self.__dict__[key] if key in self.__dict__.keys() else None @@ -771,12 +916,18 @@ class EPCDifferenceRecord: """ self.record1 = record1 self.record2 = record2 - self.earliest_record = record1 if record1.lodgement_date < record2.lodgement_date else record2 + self.earliest_record = ( + record1 if record1.lodgement_date < record2.lodgement_date else record2 + ) self.flag_fabric_consistency = False self.difference_record = {} - self.difference_validation_configuration = EPCDifferenceRecordValidationConfiguration - self.fixed_data_validation_configuration = EPCDifferenceRecordFixedDataValidationConfiguration + self.difference_validation_configuration = ( + EPCDifferenceRecordValidationConfiguration + ) + self.fixed_data_validation_configuration = ( + EPCDifferenceRecordFixedDataValidationConfiguration + ) if auto_sort and (self.record2 <= self.record1): self.record1, self.record2 = self.record2, self.record1 @@ -790,15 +941,27 @@ class EPCDifferenceRecord: This method will construct the difference record between the two records """ - rdsap_change = self.record2.get(RDSAP_RESPONSE) - self.record1.get(RDSAP_RESPONSE) - heat_demand_change = self.record2.get(HEAT_DEMAND_RESPONSE) - self.record1.get(HEAT_DEMAND_RESPONSE) - carbon_change = self.record2.get(CARBON_RESPONSE) - self.record1.get(CARBON_RESPONSE) + rdsap_change = self.record2.get(RDSAP_RESPONSE) - self.record1.get( + RDSAP_RESPONSE + ) + heat_demand_change = self.record2.get(HEAT_DEMAND_RESPONSE) - self.record1.get( + HEAT_DEMAND_RESPONSE + ) + carbon_change = self.record2.get(CARBON_RESPONSE) - self.record1.get( + CARBON_RESPONSE + ) component_variables = COMPONENT_FEATURES + EFFICIENCY_FEATURES - ending_record = self.record2.get(component_variables + ["lodgement_date"], return_asdict=True, - key_suffix="_ending") - starting_record = self.record1.get(component_variables + ["lodgement_date"], return_asdict=True, - key_suffix="_starting") + ending_record = self.record2.get( + component_variables + ["lodgement_date"], + return_asdict=True, + key_suffix="_ending", + ) + starting_record = self.record1.get( + component_variables + ["lodgement_date"], + return_asdict=True, + key_suffix="_starting", + ) self.difference_record = { "uprn": self.record1.get("uprn"), @@ -811,12 +974,20 @@ class EPCDifferenceRecord: "heat_demand_ending": self.record2.get(HEAT_DEMAND_RESPONSE), "carbon_starting": self.record1.get(CARBON_RESPONSE), "carbon_ending": self.record2.get(CARBON_RESPONSE), - "potential_energy_efficiency": self.earliest_record.get("potential_energy_efficiency"), - "environment_impact_potential": self.earliest_record.get("environment_impact_potential"), - "energy_consumption_potential": self.earliest_record.get("energy_consumption_potential"), - "co2_emissions_potential": self.earliest_record.get("co2_emissions_potential"), + "potential_energy_efficiency": self.earliest_record.get( + "potential_energy_efficiency" + ), + "environment_impact_potential": self.earliest_record.get( + "environment_impact_potential" + ), + "energy_consumption_potential": self.earliest_record.get( + "energy_consumption_potential" + ), + "co2_emissions_potential": self.earliest_record.get( + "co2_emissions_potential" + ), **ending_record, - **starting_record + **starting_record, } def _validate_difference_record(self): @@ -849,7 +1020,11 @@ class EPCDifferenceRecord: """ This method will return the value of the key """ - return self.difference_record[key] if key in self.difference_record.keys() else None + return ( + self.difference_record[key] + if key in self.difference_record.keys() + else None + ) def append_fixed_data(self, fixed_data: dict): """ @@ -863,7 +1038,70 @@ class EPCDifferenceRecord: This method will validate the fixed data """ - # Can have more sophisticated checks here + # Can have more sophisticated checks here # self.fixed_data_validataion_configuration pass + + def ensure_adequate_data(self) -> bool: + """ + This method will ensure that the difference record has adequate data, to keep record, even if rdsap change is zero + Can move into the initiation of the difference record + """ + wall_check = self.record1.walls_description == self.record2.walls_description + + floor_check = self.record1.floor_description == self.record2.floor_description + + roof_check = self.record1.roof_description == self.record2.roof_description + + mainheat_check = ( + self.record1.mainheat_description == self.record2.mainheat_description + ) + + windows_check = ( + self.record1.windows_description == self.record2.windows_description + ) + + solar_water_heating_flag_check = ( + self.record1.solar_water_heating_flag + == self.record2.solar_water_heating_flag + ) + + solar_pv_check = self.record1.photo_supply == self.record2.photo_supply + + heating_control_check = ( + self.record1.mainheatcont_description + == self.record2.mainheatcont_description + ) + + extension_count_check = ( + self.record1.extension_count == self.record2.extension_count + ) + + floor_height_check = ( + abs(1 - (self.record1.floor_height / self.record2.floor_height)) < 0.05 + ) + + total_floor_area_check = ( + abs(1 - (self.record1.total_floor_area / self.record2.total_floor_area)) + < 0.05 + ) + + if all( + [ + wall_check, + floor_check, + roof_check, + mainheat_check, + windows_check, + solar_water_heating_flag_check, + extension_count_check, + floor_height_check, + total_floor_area_check, + solar_pv_check, + heating_control_check, + ] + ): + return True + else: + return False diff --git a/etl/epc/property_change_app.py b/etl/epc/property_change_app.py index 5486ee99..c8923d6d 100644 --- a/etl/epc/property_change_app.py +++ b/etl/epc/property_change_app.py @@ -5,23 +5,27 @@ from etl.epc.Pipeline import EPCPipeline DATA_DIRECTORY = Path(__file__).parent / "local_data" / "all-domestic-certificates" + def main(): """ Orchestration function """ directories = [entry for entry in DATA_DIRECTORY.iterdir() if entry.is_dir()] - # directories = directories[125:128] + # directories = directories[0:3] - epc_pipeline = EPCPipeline(directories=directories, epc_data_processor=EPCDataProcessor(run_mode="training")) + epc_pipeline = EPCPipeline( + directories=directories, + epc_data_processor=EPCDataProcessor(run_mode="training"), + ) epc_pipeline.run() # For testing # dataset_df = epc_pipeline.compiled_dataset - # dataset_df.to_parquet("refactor_datasets/dataset.parquet") - # pd.DataFrame(epc_pipeline.compiled_all_equal_rows).to_parquet("refactor_datasets/all_equal_rows.parquet") - # pd.concat(epc_pipeline.compiled_cleaning_averages).to_parquet("refactor_datasets/cleaning_averages.parquet") + # dataset_df.to_parquet("refactor_datasets/dataset_with0perm_all.parquet") + # pd.DataFrame(epc_pipeline.compiled_all_equal_rows).to_parquet("refactor_datasets/all_equal_rows_with0perm_all.parquet") + # pd.concat(epc_pipeline.compiled_cleaning_averages).to_parquet("refactor_datasets/cleaning_averages_with0perm_all.parquet") # from utils.s3 import read_dataframe_from_s3_parquet # dataset = read_dataframe_from_s3_parquet( From 55e28942e48bb8cf55e7c95875533710d7e21ea1 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Mon, 29 Jan 2024 12:13:22 +0000 Subject: [PATCH 251/526] Added automated creation of excel and added missing files to git --- etl/eligibility/Eligibility.py | 28 +- .../ha_15_32/WFT Sales data analysis.py | 665 ++++++++++++++++++ etl/eligibility/ha_15_32/cancellation.py | 113 +++ .../ha_15_32/ha_analysis_batch_3.py | 100 ++- 4 files changed, 876 insertions(+), 30 deletions(-) create mode 100644 etl/eligibility/ha_15_32/WFT Sales data analysis.py create mode 100644 etl/eligibility/ha_15_32/cancellation.py diff --git a/etl/eligibility/Eligibility.py b/etl/eligibility/Eligibility.py index 1d868338..906ff594 100644 --- a/etl/eligibility/Eligibility.py +++ b/etl/eligibility/Eligibility.py @@ -128,7 +128,7 @@ class Eligibility: if insulation_thickness <= 100: thickness_classification = "0-100mm" - elif insulation_thickness <= 270: + elif insulation_thickness <= high_loft_thickness_threshold: thickness_classification = "100-270mm" else: thickness_classification = "270mm+" @@ -146,24 +146,14 @@ class Eligibility: "thickness_classification": thickness_classification } - if insulation_thickness <= high_loft_thickness_threshold: - self.loft = { - "suitability": True, - "thickness": insulation_thickness, - "reason": "high loft thickness but below regulation", - "thickness_classification": thickness_classification - } - return - - if insulation_thickness > high_loft_thickness_threshold: - # Insulation is already thick enough - self.loft = { - "suitability": False, - "thickness": insulation_thickness, - "reason": "existing insulation", - "thickness_classification": thickness_classification - } - return + # Insulation is already thick enough + self.loft = { + "suitability": False, + "thickness": insulation_thickness, + "reason": "existing insulation", + "thickness_classification": thickness_classification + } + return def cavity_insulation(self): diff --git a/etl/eligibility/ha_15_32/WFT Sales data analysis.py b/etl/eligibility/ha_15_32/WFT Sales data analysis.py new file mode 100644 index 00000000..a088fe43 --- /dev/null +++ b/etl/eligibility/ha_15_32/WFT Sales data analysis.py @@ -0,0 +1,665 @@ +import numpy as np +import pandas as pd + +ECO4_NEW_RATES = 1710 +GBIS_NEW_RATES = 600 + + +def app(): + # Load in the excel + nov_ha_data = pd.read_excel( + 'etl/eligibility/ha_15_32/ALL HA FIGURES AND ASSIGNED INSTALLERS 21.11.2023 with sales data.xlsx', + ) + # Drop rows where HA name is null + nov_ha_data = nov_ha_data.dropna(subset=["HA Name"]) + nov_ha_data["ha_number"] = nov_ha_data["HA Name"].str.extract(r"(\d+)").astype(int) + nov_ha_data = nov_ha_data.sort_values("ha_number", ascending=True) + + variance_explanations = pd.read_excel( + 'etl/eligibility/ha_15_32/ALL HA FIGURES AND ASSIGNED INSTALLERS 21.11.2023 with sales data.xlsx', + sheet_name="Variance explanations" + ) + + september_figures = pd.read_excel( + "etl/eligibility/ha_15_32/ALL HA FIGURES AND ASSIGNED INSTALLERS SEP 23 UPDATE (2).xlsx", + sheet_name="HA Stats" + ) + + historical_invoices = pd.read_excel( + "etl/eligibility/ha_15_32/ALL HA FIGURES AND ASSIGNED INSTALLERS 21.11.2023 with sales data.xlsx", + sheet_name="Jul 22 to Oct 23" + ) + # Drop rows where installer rates is null + historical_invoices = historical_invoices[~pd.isnull(historical_invoices["INSTALLER RATES"])] + historical_invoices = historical_invoices[historical_invoices["INSTALLER RATES"] != "NA "] + # By Scheme, take a weighted mean of the INSTALLER RATES, weighted on the number of rows + n_invoices = historical_invoices.groupby(["Scheme", "INSTALLER RATES"])["Invoice number"].count().reset_index() + n_invoices = n_invoices[n_invoices["Scheme"].isin(["Eco 4", "GBIS"])] + historical_scheme_rates = n_invoices.groupby("Scheme").apply( + lambda x: np.average(x["INSTALLER RATES"], weights=x["Invoice number"]) + ).reset_index().rename(columns={0: "Historical rates"}) + + # we take just entries sales data that have sales > 0 + sales_data = nov_ha_data[nov_ha_data["Sales"] > 0] + + # We now need to adjust sales data depending on the variance explanations + sales_data = sales_data.merge( + variance_explanations[["HA", 'Which figure is correct']], + how="left", + left_on="ha_number", + right_on="HA" + ) + + def adjust_sales(row): + if pd.isnull(row["Which figure is correct"]): + return row["Sales"] + + if row["Which figure is correct"] == "HA facts & figures": + return row['No. of Tech surveys complete'] + + if row["Which figure is correct"] == "Billed amount": + return row["Sales"] + + if row["Which figure is correct"] in ["Both correct, HA facts and figures includes November", "Both correct"]: + return row["Sales"] + + raise ValueError(f"Unknown value for 'Which figure is correct': {row['Which figure is correct']}") + + # We now need to adjust sales data depending on the variance explanations + sales_data["adjusted_sales"] = sales_data.apply(lambda row: adjust_sales(row), axis=1) + + # We therefore adjust GBIS and ECO4 sales data based on adjusted sales + sales_data["adjusted_eco4_sales"] = sales_data["No. of Tech surveys complete - Eco 4"] / sales_data["Sales"] * \ + sales_data["adjusted_sales"] + + sales_data["adjusted_gbis_sales"] = sales_data["No. of Tech surveys complete - GBIS"] / sales_data["Sales"] * \ + sales_data["adjusted_sales"] + + sales_data["cancellation_rate"] = (sales_data["Sales"] - sales_data["adjusted_sales"]) / sales_data["Sales"] + + # The difference between the adjusted sales and the actual sales is the cancellation + cancellations = (sales_data["adjusted_sales"].sum() - sales_data["Sales"].sum()) / sales_data["Sales"].sum() + + # Given the cancellations, we can now adjust the expected remaining surveys + sales_data["No. of Tech surveys remaining"] = sales_data["No. of Tech surveys remaining"] * ( + 1 - sales_data["cancellation_rate"] + ) + + # We now merge on the expected values for September + sales_data = sales_data.merge( + september_figures[["Redacted HA", "ECO4", "GBIS"]].rename( + columns={"Redacted HA": "HA Name", "ECO4": "Sept Expected ECO4", "GBIS": "Sept Expected GBIS"} + ), + how="left", + on="HA Name", + ) + + sales_data["Sept Expected ECO4"] = sales_data["Sept Expected ECO4"].fillna(0) + sales_data["Sept Expected GBIS"] = sales_data["Sept Expected GBIS"].fillna(0) + + # We calculate the ECO4 and GBIS conversion rates with the adjusted numbers + sales_data["ECO4 Conversion"] = sales_data["adjusted_eco4_sales"] / sales_data["adjusted_sales"] + sales_data["GBIS Conversion"] = sales_data["adjusted_gbis_sales"] / sales_data["adjusted_sales"] + + # We now calculate the expected remaining ECO4 and GBIS sales + # We take the number of remaining surveys and multiply by the conversion rate for each scheme, which tells us + # how many more we should expect to see + sales_data["Expected Remaining ECO4"] = sales_data["No. of Tech surveys remaining"] * sales_data["ECO4 Conversion"] + sales_data["Expected Remaining GBIS"] = sales_data["No. of Tech surveys remaining"] * sales_data["GBIS Conversion"] + + # We now produce a forecasted ECO4 and GBIS sales figure + sales_data["Forecasted ECO4 Sales"] = sales_data["adjusted_eco4_sales"] + sales_data["Expected Remaining ECO4"] + sales_data["Forecasted GBIS Sales"] = sales_data["adjusted_gbis_sales"] + sales_data["Expected Remaining GBIS"] + + # Take the columns we're interestd in + # HA # Properties Sept ECO4 Figures Sept GBIS Figures Nov Total Sales Nov ECO4 Sales Nov GBIS Sales + # Remaining Surveys ECO4 conversion GBIS conversion Forecasted ECO4 Sales Forecasted GBIS sales ECO4 Change + # GBIS Change + sales_data_formatted = sales_data[[ + "HA Name", + "ASSET LIST no.", + "Sept Expected ECO4", + "Sept Expected GBIS", + "adjusted_sales", + "adjusted_eco4_sales", + "adjusted_gbis_sales", + "No. of Tech surveys remaining", + "ECO4 Conversion", + "GBIS Conversion", + "Forecasted ECO4 Sales", + "Forecasted GBIS Sales" + ]].rename( + columns={ + "adjusted_sales": "Oct Total Sales (adjusted for variance)", + "adjusted_eco4_sales": "Oct ECO4 Sales (adjusted for variance)", + "adjusted_gbis_sales": "Oct GBIS Sales (adjusted for variance)", + "No. of Tech surveys remaining": "Remaining Surveys", + } + ) + + # Convert columns which should be integers to integers + for col in ["ASSET LIST no.", "Remaining Surveys", "Sept Expected ECO4", "Sept Expected GBIS", + "Oct Total Sales (adjusted for variance)", "Oct ECO4 Sales (adjusted for variance)", + "Oct GBIS Sales (adjusted for variance)", "Forecasted ECO4 Sales", "Forecasted GBIS Sales"]: + sales_data_formatted[col] = sales_data_formatted[col].fillna(0) + sales_data_formatted[col] = sales_data_formatted[col].astype(int) + + # Remove HA 17 because this was EPCs only. We also remove HA33 because they do not have access to the full portfolio + sales_data_formatted = sales_data_formatted[ + ~sales_data_formatted["HA Name"].isin(["HA 17", "HA 33"]) + ] + + # September expected ECO4 and GBIS + sept_expected_eco4 = sales_data_formatted["Sept Expected ECO4"].sum() + sept_expected_gbis = sales_data_formatted["Sept Expected GBIS"].sum() + + # Completed so far + oct_eco4_sales = sales_data_formatted["Oct ECO4 Sales (adjusted for variance)"].sum() + oct_gbis_sales = sales_data_formatted["Oct GBIS Sales (adjusted for variance)"].sum() + + # Forecasted figures + forecasted_eco4_sales = sales_data_formatted["Forecasted ECO4 Sales"].sum() + forecasted_gbis_sales = sales_data_formatted["Forecasted GBIS Sales"].sum() + + # Expected remaining sales + expected_remaining_eco4_sales = forecasted_eco4_sales - oct_eco4_sales + expected_remaining_gbis_sales = forecasted_gbis_sales - oct_gbis_sales + + # Forecast change vs September + forecasted_eco4_change = 100 * (forecasted_eco4_sales - sept_expected_eco4) / sept_expected_eco4 + forecasted_gbis_change = 100 * (forecasted_gbis_sales - sept_expected_gbis) / sept_expected_gbis + + aggregates = pd.DataFrame( + columns=["Scheme", "Sept Expected", "Oct Completed", "Forecasted Remaining Sales", "Forecasted Total Sales", + "Forecasted Change vs Sept"], + data=[ + ["ECO4", sept_expected_eco4, oct_eco4_sales, expected_remaining_eco4_sales, forecasted_eco4_sales, + forecasted_eco4_change], + ["GBIS", sept_expected_gbis, oct_gbis_sales, expected_remaining_gbis_sales, forecasted_gbis_sales, + forecasted_gbis_change], + ] + ) + + # Multiply by histoical rates to get revenue + # For ECO4, this is ~£1456 and for GBIS it's ~£432 + historical_gbis_price = historical_scheme_rates[ + historical_scheme_rates["Scheme"] == "GBIS" + ]["Historical rates"].iloc[0] + + historical_eco4_price = historical_scheme_rates[ + historical_scheme_rates["Scheme"] == "Eco 4" + ]["Historical rates"].iloc[0] + + aggregates["Sept Expected Revenue"] = np.where( + aggregates["Scheme"] == "ECO4", + aggregates["Sept Expected"] * historical_eco4_price, + aggregates["Sept Expected"] * historical_gbis_price + ) + + aggregates["Completed Revenue"] = np.where( + aggregates["Scheme"] == "ECO4", + aggregates["Oct Completed"] * historical_eco4_price, + aggregates["Oct Completed"] * historical_gbis_price + ) + + # We use the new rates for the forecasted revenue + aggregates["Forecasted Remaining Revenue"] = np.where( + aggregates["Scheme"] == "ECO4", + aggregates["Forecasted Remaining Sales"] * ECO4_NEW_RATES, + aggregates["Forecasted Remaining Sales"] * GBIS_NEW_RATES + ) + + # We also calculate the forecasted remaining revenue at the original price + aggregates["Forecasted Remaining Revenue (original price)"] = np.where( + aggregates["Scheme"] == "ECO4", + aggregates["Forecasted Remaining Sales"] * historical_eco4_price, + aggregates["Forecasted Remaining Sales"] * historical_gbis_price + ) + + aggregates["Forecasted Revenue"] = aggregates["Completed Revenue"] + aggregates["Forecasted Remaining Revenue"] + + # Forecasted revenue with original price + aggregates["Forecasted Revenue (original price)"] = ( + aggregates["Completed Revenue"] + aggregates["Forecasted Remaining Revenue (original price)"] + ) + + # Create a totals row which sums up the two rows + + forecasted_change_vs_sept = 100 * ( + aggregates["Forecasted Total Sales"].sum() - aggregates["Sept Expected"].sum() + ) / aggregates["Sept Expected"].sum() + + aggregates = pd.concat( + [ + aggregates, + pd.DataFrame( + [ + ["Total", aggregates["Sept Expected"].sum(), aggregates["Oct Completed"].sum(), + aggregates["Forecasted Remaining Sales"].sum(), aggregates["Forecasted Total Sales"].sum(), + forecasted_change_vs_sept, + aggregates["Sept Expected Revenue"].sum(), aggregates["Completed Revenue"].sum(), + aggregates["Forecasted Remaining Revenue"].sum(), + aggregates["Forecasted Remaining Revenue (original price)"].sum(), + aggregates["Forecasted Revenue"].sum(), + aggregates["Forecasted Revenue (original price)"].sum(), + ] + ], + columns=aggregates.columns + ) + ] + ) + + # For each property in the asset list, we now calculate an average conversion rate to ECO4 and GBIS + # We do this by taking the forecasted sales values for each schemes and dividing by the number of properties + + number_properties = sales_data_formatted["ASSET LIST no."].sum() + eco4_conversion_rate = forecasted_eco4_sales / number_properties + gbis_conversion_rate = forecasted_gbis_sales / number_properties + + # We also attribute a future value per property + future_eco4_value = ECO4_NEW_RATES * eco4_conversion_rate + future_gbis_value = GBIS_NEW_RATES * gbis_conversion_rate + + # We also calulate a revenue figure for the old rates + historical_eco4_value = historical_eco4_price * eco4_conversion_rate + historical_gbis_value = historical_gbis_price * gbis_conversion_rate + + # For the HAs that have not begun selling, we estimate the value of the projects + # We start with some problem HAs + + # HA 7, HA 24, HA 25 + # These HAs have no sales data, so we use the expected figures + + problem_has_data = nov_ha_data[ + (nov_ha_data["HA Name"].isin(["HA 7", "HA 24", "HA 25"])) + ].copy() + # Merge on the september expected figures + problem_has_data = problem_has_data.merge( + september_figures[["Redacted HA", "ECO4", "GBIS"]].rename( + columns={"Redacted HA": "HA Name", "ECO4": "Sept Expected ECO4", "GBIS": "Sept Expected GBIS"} + ), + how="left", + on="HA Name", + ) + # Fill NAs + problem_has_data["Sept Expected ECO4"] = problem_has_data["Sept Expected ECO4"].fillna(0) + problem_has_data["Sept Expected GBIS"] = problem_has_data["Sept Expected GBIS"].fillna(0) + + # We now calculate the expected ECO4 and GBIS sales based on the average conversion rates + problem_has_data["Expected ECO4 Sales"] = problem_has_data["ASSET LIST no."] * eco4_conversion_rate + problem_has_data["Expected GBIS Sales"] = problem_has_data["ASSET LIST no."] * gbis_conversion_rate + + # Filter just on columns we're interested in + problem_has_data = problem_has_data[[ + "HA Name", + "ASSET LIST no.", + "Sept Expected ECO4", + "Sept Expected GBIS", + "ECO4", + "GBIS", + "Expected ECO4 Sales", + "Expected GBIS Sales" + ]].rename( + columns={ + "ECO4": "Nov Expected ECO4", + "GBIS": "Nov Expected GBIS", + } + ) + + # Fill NAs + problem_has_data["Nov Expected ECO4"] = problem_has_data["Nov Expected ECO4"].fillna(0) + problem_has_data["Nov Expected GBIS"] = problem_has_data["Nov Expected GBIS"].fillna(0) + + # We calculate HA level Sept, Nov expected revenue, based on historical rates and then forecasted revenue + problem_has_data["Sept Expected ECO4 Value"] = problem_has_data["Sept Expected ECO4"] * historical_eco4_price + problem_has_data["Sept Expected GBIS Value"] = problem_has_data["Sept Expected GBIS"] * historical_gbis_price + + problem_has_data["Nov Expected ECO4 Value"] = problem_has_data["Nov Expected ECO4"] * historical_eco4_price + problem_has_data["Nov Expected GBIS Value"] = problem_has_data["Nov Expected GBIS"] * historical_gbis_price + + problem_has_data["Forecasted ECO4 Revenue"] = problem_has_data["ASSET LIST no."] * future_eco4_value + problem_has_data["Forecasted GBIS Revenue"] = problem_has_data["ASSET LIST no."] * future_gbis_value + + # Totals + problem_has_data["Sept Expected Total Value"] = problem_has_data["Sept Expected ECO4 Value"] + \ + problem_has_data["Sept Expected GBIS Value"] + problem_has_data["Nov Expected Total Value"] = problem_has_data["Nov Expected ECO4 Value"] + \ + problem_has_data["Nov Expected GBIS Value"] + problem_has_data["Forecasted Total Revenue"] = problem_has_data["Forecasted ECO4 Revenue"] + \ + problem_has_data["Forecasted GBIS Revenue"] + + # We calculate a total expected value for September, November and then forecasted + problem_has_expected_eco4_value = problem_has_data["Sept Expected ECO4"].sum() * historical_eco4_price + problem_has_expected_gbis_value = problem_has_data["Sept Expected GBIS"].sum() * historical_gbis_price + problem_has_expected_total_value = problem_has_expected_eco4_value + problem_has_expected_gbis_value + + problem_has_nov_eco4_value = problem_has_data["Nov Expected ECO4"].sum() * historical_eco4_price + problem_has_nov_gbis_value = problem_has_data["Nov Expected GBIS"].sum() * historical_gbis_price + problem_has_nov_total_value = problem_has_nov_eco4_value + problem_has_nov_gbis_value + + forecasted_eco4_value = problem_has_data["ASSET LIST no."].sum() * future_eco4_value + forecasted_gbis_value = problem_has_data["ASSET LIST no."].sum() * future_gbis_value + problem_has_forecasted_total_value = forecasted_eco4_value + forecasted_gbis_value + + problem_has_summary = pd.DataFrame( + columns=["Scheme", "Sept Expected", "Nov Expected", "Forecasted"], + data=[ + ["ECO4", problem_has_expected_eco4_value, problem_has_nov_eco4_value, forecasted_eco4_value], + ["GBIS", problem_has_expected_gbis_value, problem_has_nov_gbis_value, forecasted_gbis_value], + ["Total", problem_has_expected_total_value, problem_has_nov_total_value, problem_has_forecasted_total_value] + ] + ) + + # We now also estimate the value of the remaining HAs based on historical sales performance and new rates + # We take the has that are not in the sales data + remaining_has = nov_ha_data[ + ~nov_ha_data["HA Name"].isin(sales_data_formatted["HA Name"]) + ].copy() + + # Merge on the september expected figures + remaining_has = remaining_has.merge( + september_figures[["Redacted HA", "ECO4", "GBIS"]].rename( + columns={"Redacted HA": "HA Name", "ECO4": "Sept Expected ECO4", "GBIS": "Sept Expected GBIS"} + ), + how="left", + on="HA Name", + ) + + # We update the asset list size for HA 33, because they do not have access to the full portfolio + remaining_has.loc[remaining_has["HA Name"] == "HA 33", "ASSET LIST no."] = 20699 + # We also remove HA 17 + remaining_has = remaining_has[~remaining_has["HA Name"].isin(["HA 17"])] + + # We now calculate the expected ECO4 and GBIS sales based on the average conversion rates + remaining_has["Expected ECO4 Sales"] = remaining_has["ASSET LIST no."] * eco4_conversion_rate + remaining_has["Expected GBIS Sales"] = remaining_has["ASSET LIST no."] * gbis_conversion_rate + + # Filter just on columns we're interested in + remaining_has = remaining_has[[ + "HA Name", + "ASSET LIST no.", + "Sept Expected ECO4", + "Sept Expected GBIS", + "ECO4", + "GBIS", + ]].rename( + columns={ + "ECO4": "Nov Expected ECO4", + "GBIS": "Nov Expected GBIS", + } + ) + + remaining_has = remaining_has.fillna(0) + + # We take just HAs that had an initial september expectation for ECO4 or GBIS, or that now have a Nov expectation + remaining_has = remaining_has[ + (remaining_has["Sept Expected ECO4"] > 0) | (remaining_has["Sept Expected GBIS"] > 0) | + (remaining_has["Nov Expected ECO4"] > 0) | (remaining_has["Nov Expected GBIS"] > 0) + ] + + # Expected sales based on asset list size and conversion rate + remaining_has["Forecasted Sales ECO4"] = remaining_has["ASSET LIST no."] * eco4_conversion_rate + remaining_has["Forecasted Sales GBIS"] = remaining_has["ASSET LIST no."] * gbis_conversion_rate + + # Calculat the total expected value for September and November + remaining_has["Sept Expected ECO4 Value"] = remaining_has["Sept Expected ECO4"] * historical_eco4_price + remaining_has["Sept Expected GBIS Value"] = remaining_has["Sept Expected GBIS"] * historical_gbis_price + + remaining_has["Nov Expected ECO4 Value"] = remaining_has["Nov Expected ECO4"] * historical_eco4_price + remaining_has["Nov Expected GBIS Value"] = remaining_has["Nov Expected GBIS"] * historical_gbis_price + + # Calculate forecasted revenue + remaining_has["Forecasted ECO4 Revenue"] = remaining_has["ASSET LIST no."] * future_eco4_value + remaining_has["Forecasted GBIS Revenue"] = remaining_has["ASSET LIST no."] * future_gbis_value + + # We also calculate forecasted revenue with the original price + remaining_has["Forecasted ECO4 Revenue (original price)"] = remaining_has["ASSET LIST no."] * historical_eco4_value + remaining_has["Forecasted GBIS Revenue (original price)"] = remaining_has["ASSET LIST no."] * historical_gbis_value + + # Calculate totals for each scheme + remaining_has_september_eco4_sales = remaining_has["Sept Expected ECO4"].sum() + remaining_has_september_gbis_sales = remaining_has["Sept Expected GBIS"].sum() + + remaining_has_november_eco4_sales = remaining_has["Nov Expected ECO4"].sum() + remaining_has_november_gbis_sales = remaining_has["Nov Expected GBIS"].sum() + + remaining_has_forecasted_eco4_sales = remaining_has["Forecasted Sales ECO4"].sum() + remaining_has_forecasted_gbis_sales = remaining_has["Forecasted Sales GBIS"].sum() + + remaining_has_september_eco4_value = remaining_has["Sept Expected ECO4 Value"].sum() + remaining_has_september_gbis_value = remaining_has["Sept Expected GBIS Value"].sum() + + remaining_has_november_eco4_value = remaining_has["Nov Expected ECO4 Value"].sum() + remaining_has_november_gbis_value = remaining_has["Nov Expected GBIS Value"].sum() + + remaining_has_forecasted_eco4_value = remaining_has["Forecasted ECO4 Revenue"].sum() + remaining_has_forecasted_gbis_value = remaining_has["Forecasted GBIS Revenue"].sum() + + remaining_has_forecasted_eco4_value_original_price = remaining_has["Forecasted ECO4 Revenue (original price)"].sum() + remaining_has_forecasted_gbis_value_original_price = remaining_has["Forecasted GBIS Revenue (original price)"].sum() + + # Calculate the change in forecasted sales against the September expected sales + remaining_has_foecast_change_eco4 = 100 * ( + remaining_has["Forecasted Sales ECO4"].sum() - remaining_has["Sept Expected ECO4"].sum() + ) / remaining_has["Sept Expected ECO4"].sum() + + remaining_has_foecast_change_gbis = 100 * ( + remaining_has["Forecasted Sales GBIS"].sum() - remaining_has["Sept Expected GBIS"].sum() + ) / remaining_has["Sept Expected GBIS"].sum() + + # Total change + remaining_has_foecast_change_total = 100 * ( + remaining_has["Forecasted Sales ECO4"].sum() + remaining_has["Forecasted Sales GBIS"].sum() - + remaining_has["Sept Expected ECO4"].sum() - remaining_has["Sept Expected GBIS"].sum() + ) / (remaining_has["Sept Expected ECO4"].sum() + remaining_has["Sept Expected GBIS"].sum()) + + asset_list_size = remaining_has["ASSET LIST no."].sum() + + # Create a summary table of the rest with the totals for ECO4, GBIS and then a total row + remaining_has_aggregate = pd.DataFrame( + columns=["Scheme", "Asset List Size", "Sept Expected Sales", "Nov Expected Sales", "Forecasted Sales", + "Forecasted Change vs Sept", + "Sept Expected Value", "Nov Expected Value", "Forecasted Value", "Forecasted Value (original price)"], + data=[ + [ + "ECO4", asset_list_size, remaining_has_september_eco4_sales, remaining_has_november_eco4_sales, + remaining_has_forecasted_eco4_sales, remaining_has_foecast_change_eco4, + remaining_has_september_eco4_value, + remaining_has_november_eco4_value, remaining_has_forecasted_eco4_value, + remaining_has_forecasted_eco4_value_original_price + ], + [ + "GBIS", asset_list_size, remaining_has_september_gbis_sales, remaining_has_november_gbis_sales, + remaining_has_forecasted_gbis_sales, remaining_has_foecast_change_gbis, + remaining_has_september_gbis_value, + remaining_has_november_gbis_value, remaining_has_forecasted_gbis_value, + remaining_has_forecasted_gbis_value_original_price + ], + [ + "Total", asset_list_size, remaining_has_september_eco4_sales + remaining_has_september_gbis_sales, + remaining_has_november_eco4_sales + remaining_has_november_gbis_sales, + remaining_has_forecasted_eco4_sales + remaining_has_forecasted_gbis_sales, + remaining_has_foecast_change_total, + remaining_has_september_eco4_value + remaining_has_september_gbis_value, + remaining_has_november_eco4_value + remaining_has_november_gbis_value, + remaining_has_forecasted_eco4_value + remaining_has_forecasted_gbis_value, + remaining_has_forecasted_eco4_value_original_price + + remaining_has_forecasted_gbis_value_original_price + ] + ] + ) + + # Calculate pipeline value + pipeline_value = aggregates[["Scheme", "Completed Revenue", "Forecasted Remaining Revenue"]].merge( + remaining_has_aggregate[["Scheme", "Forecasted Value"]].rename( + columns={"Forecasted Value": "Forecasted Revenue, Unconfirmed HAs"} + ), how="inner", on="Scheme" + ) + + # Calculate the total + pipeline_value["Total Value"] = ( + pipeline_value["Completed Revenue"] + pipeline_value["Forecasted Remaining Revenue"] + pipeline_value[ + "Forecasted Revenue, Unconfirmed HAs"] + ) + + # TODO: Insert model figures + model_results = pd.DataFrame( + [ + { + # This one, we don't have sales data + "HA Name": "HA 15", + "Model Expected Additional ECO4 (unit level)": None, + "Model Expected Total ECO4 (unit level)": 296, + "Model Expected Additional GBIS (unit level)": None, + "Model Expected Total GBIS (unit level)": 209, + }, + { + "HA Name": "HA 16", + # Old before re-run + # "Model Expected Additional ECO4 (unit level)": 418, + # "Model Expected Total ECO4 (unit level)": 1820, + # "Model Expected Additional GBIS (unit level)": 576, + # "Model Expected Total GBIS (unit level)": 612, + + # IN the partial sales data, WFT have completed 1407 ECO4, 36 GBIS + "Model Expected Additional ECO4 (unit level)": 411 + 342 + 235, + "Model Expected Total ECO4 (unit level)": 1407 + 411 + 342 + 235, + "Model Expected Additional GBIS (unit level)": 223, + "Model Expected Total GBIS (unit level)": 36 + 223, + }, + { + "HA Name": "HA 24", + "Model Expected Additional ECO4 (unit level)": 224, + "Model Expected Total ECO4 (unit level)": 848, + "Model Expected Additional GBIS (unit level)": 552, + "Model Expected Total GBIS (unit level)": 552, + }, + { + "HA Name": "HA 25", + "Model Expected Additional ECO4 (unit level)": None, + "Model Expected Total ECO4 (unit level)": 1709 + 59, + "Model Expected Additional GBIS (unit level)": None, + "Model Expected Total GBIS (unit level)": 2004 + 107, + } + ] + ) + + sales_data_formatted["Remaining ECO4 Sales"] = ( + sales_data_formatted["Forecasted ECO4 Sales"] - sales_data_formatted["Oct ECO4 Sales (adjusted for variance)"] + ) + + sales_data_formatted["Remaining GBIS Sales"] = ( + sales_data_formatted["Forecasted GBIS Sales"] - sales_data_formatted["Oct GBIS Sales (adjusted for variance)"] + ) + + sales_data_formatted["Completed ECO4 Revenue"] = (sales_data_formatted[ + "Oct ECO4 Sales (adjusted for variance)"] * + historical_eco4_price) + sales_data_formatted["Completed GBIS Revenue"] = (sales_data_formatted[ + "Oct GBIS Sales (adjusted for variance)"] * + historical_gbis_price) + + ha_subset_with_sales = ["HA 15", "HA 16", "HA 24"] + + has_subset_with_sales_value = sales_data_formatted[ + sales_data_formatted["HA Name"].isin(ha_subset_with_sales) + ].copy()[ + [ + "HA Name", + "Oct ECO4 Sales (adjusted for variance)", + "Oct GBIS Sales (adjusted for variance)", + "Remaining ECO4 Sales", + "Remaining GBIS Sales", + "Forecasted ECO4 Sales", + "Forecasted GBIS Sales", + "Completed ECO4 Revenue", + "Completed GBIS Revenue" + ] + ] + + has_subset_with_sales_value["Remaining ECO4 Revenue"] = has_subset_with_sales_value[ + "Remaining ECO4 Sales"] * ECO4_NEW_RATES + has_subset_with_sales_value["Remaining GBIS Revenue"] = has_subset_with_sales_value[ + "Remaining GBIS Sales"] * GBIS_NEW_RATES + + has_subset_with_sales_value["Remaining Total Revenue"] = ( + has_subset_with_sales_value["Remaining ECO4 Revenue"] + has_subset_with_sales_value["Remaining GBIS Revenue"] + ) + + model_results["Model Expected Additional ECO4 Revenue"] = ( + model_results["Model Expected Additional ECO4 (unit level)"] * ECO4_NEW_RATES + ) + + model_results["Model Expected Additional GBIS revenue"] = ( + model_results["Model Expected Additional GBIS (unit level)"] * GBIS_NEW_RATES + ) + + model_results["Model Expected Additional Total Revenue"] = ( + model_results["Model Expected Additional ECO4 Revenue"] + model_results[ + "Model Expected Additional GBIS revenue"] + ) + + # Show more columns with pandas + pd.set_option('display.max_rows', 500) + pd.set_option('display.max_columns', 500) + pd.set_option('display.width', 1000) + + # Look at HA 16 + ha16_model = model_results[model_results["HA Name"] == "HA 16"] + has_subset_with_sales_value[has_subset_with_sales_value["HA Name"] == "HA 16"] + + # WFT: For HA 16: 4,598,190 ECO4, 57,000 GBIS + # Model: + + # Look at HA 24 + ha24_model = model_results[model_results["HA Name"] == "HA 24"] + has_subset_with_sales_value[has_subset_with_sales_value["HA Name"] == "HA 24"] + + # Look at HA 15 + ha15_data = has_subset_with_sales_value[has_subset_with_sales_value["HA Name"] == "HA 15"] + ha15_portfolio_value = ha15_data["Completed ECO4 Revenue"] + ha15_data[ + "Completed GBIS Revenue"] + ha15_data["Remaining Total Revenue"] + # # This doesn't have sales data so in the model analysis, we just value the ha as a whole + ha15_model = model_results[model_results["HA Name"] == "HA 15"] + ha15_value = ha15_model["Model Expected Total ECO4 (unit level)"].iloc[0] * ECO4_NEW_RATES + \ + ha15_model["Model Expected Total GBIS (unit level)"].iloc[0] * GBIS_NEW_RATES + + model_results["Expected ECO4 Revenue"] = model_results["Model Expected Total ECO4 (unit level)"] * ECO4_NEW_RATES + model_results["Expected GBIS Revenue"] = model_results["Model Expected Total GBIS (unit level)"] * GBIS_NEW_RATES + model_results["Expected Total Revenue"] = model_results["Expected ECO4 Revenue"] + model_results[ + "Expected GBIS Revenue"] + model_results[model_results["HA Name"].isin(["HA 15"])] + + # We now create a final excel with all of the data + # We want: + # 1) aggregates + # 2) sales_data_formatted + # 3) remaining_has_aggregate + # 4) remaining_has + # 5) problem_has_summary + + # Function to get the maximum column width + def get_col_widths(dataframe): + # First we find the maximum length of the index column + idx_max = max([len(str(s)) for s in dataframe.index.values] + [len(str(dataframe.index.name))]) + # Then, we concatenate this to the max of the lengths of column name and its max value for each column, row-wise + return [idx_max] + [max(dataframe[col].astype(str).map(len).max(), len(col)) for col in dataframe.columns] + + # Create a Pandas Excel writer using XlsxWriter as the engine + with pd.ExcelWriter('HA Pipeline Analysis.xlsx', engine='xlsxwriter') as writer: + # Write each dataframe to a different worksheet without the index + for df, sheet in [(aggregates, 'Forecasted Sales'), + (sales_data_formatted, 'Sales Data'), + (remaining_has_aggregate, 'Remaining HAs Value'), + (remaining_has, 'Remaining HAs data'), + (pipeline_value, 'Pipeline Value'), + (problem_has_summary, 'Problem HAs Analysis'), + (problem_has_data, 'Problem HAs Data') + + ]: + + df.to_excel(writer, sheet_name=sheet, index=False) + + # Auto-adjust columns' width + for i, width in enumerate(get_col_widths(df)): + writer.sheets[sheet].set_column(i, i, width) diff --git a/etl/eligibility/ha_15_32/cancellation.py b/etl/eligibility/ha_15_32/cancellation.py new file mode 100644 index 00000000..849add45 --- /dev/null +++ b/etl/eligibility/ha_15_32/cancellation.py @@ -0,0 +1,113 @@ +import openpyxl +import pandas as pd +import numpy as np + + +def get_excel_survey_list(workbook_path, worksheet_name=None): + survey_workbook = openpyxl.load_workbook(workbook_path) + if worksheet_name is not None: + survey_sheet = survey_workbook[worksheet_name] + else: + survey_sheet = survey_workbook.active + + survey_rows = [] + survey_colors = [] + + for row in survey_sheet.iter_rows(min_row=2, values_only=False): # Assuming the first row is headers + row_data = [cell.value for cell in row] # This will get you the cell values + row_color = row[0].fill.start_color.index if row[0].fill.start_color.index != '00000000' else None + # row_color = COLOR_INDEX[row_color] + survey_rows.append(row_data) + survey_colors.append(row_color) + + survey_list = pd.DataFrame(survey_rows, columns=[cell.value for cell in survey_sheet[1]]) + survey_list["row_colour"] = survey_colors + + return survey_list + + +def load_data(): + # Load for HA 16 - ECO 4 + ha16_survey_list = get_excel_survey_list('etl/eligibility/ha_15_32/HESTIA- HA 16 ECO4 SURVEY LIST.xlsx') + + # Load for HA 24 - ECO 4 + ha24_survey_list = get_excel_survey_list('etl/eligibility/ha_15_32/HESTIA - HA 24 ECO4 SURVEY LIST.xlsx') + + # Load for HA 25 - ECO 3 + ha25_survey_list = get_excel_survey_list( + 'etl/eligibility/ha_15_32/HESTIA - HA 25 ECO3 SURVEY LIST.xlsx', worksheet_name="CAVITY" + ) + + # Remove columns with None column names + ha25_survey_list = ha25_survey_list.dropna(axis=1, how='all') + + # Standardised this installation status columns + ha16_survey_list["survey_status"] = ha16_survey_list["INSTALLED OR CANCELLED"].copy() + ha16_survey_list["survey_status"] = ha16_survey_list["survey_status"].replace( + { + "NO UPDATE - CHECKED 2.10.23": "no update", + "NO UPDATE - CHECKED 18.12.23": "no update", + "INSTALLED": "installed", + "CANCELLED": "cancelled", + "LOFT STILL TO BE INSTALLED": "loft remaining", + } + ) + + ha24_survey_list["survey_status"] = ha24_survey_list["INSTALLED OR CANCELLED"].copy() + ha24_survey_list["survey_status"] = ha24_survey_list["survey_status"].replace( + { + "NO UPDATE - CHECKED 21.11.23": "no update", + "NO UPDATE - CHECKED 18.12.23": "no update", + "INSTALLED": "installed", + "CANCELLED": "cancelled", + "LOFT STILL TO BE INSTALLED": "loft remaining", + "SEE NOTES >>": "see notes", + } + ) + + # We need to prepare HA25 differently + ha25_survey_list["survey_status"] = np.where( + ha25_survey_list["row_colour"] == "FF7030A0", "installed", + np.where(ha25_survey_list["row_colour"] == "FF92D050", "installed", + np.where(ha25_survey_list["row_colour"] == "FFFF0000", "cancelled", + np.where(ha25_survey_list["row_colour"] == "FFFFFF00", "filler row - drop", + np.where(ha25_survey_list["row_colour"] == "FF38FD23", "installed", "unknown") + ) + ) + ) + ) + ha25_survey_list = ha25_survey_list[ha25_survey_list["survey_status"] != "filler row - drop"] + + # We standardise the cancellation reasons - just create a new column + ha16_survey_list["cancellation_reason"] = ha16_survey_list["INSTALLERS NOTES ; REASONS FOR CANCELLATIONS"].copy() + ha24_survey_list["cancellation_reason"] = ha24_survey_list["INSTALLERS NOTES ; REASONS FOR CANCELLATIONS"].copy() + # There's no cancellation reason for HA25 + ha25_survey_list["cancellation_reason"] = "No reason provided" + + # Combine the dataframes + ha16_survey_list["HA"] = "HA 16" + ha24_survey_list["HA"] = "HA 24" + ha25_survey_list["HA"] = "HA 25" + + cancellation_data = pd.concat( + [ + ha16_survey_list[["HA", "survey_status", "cancellation_reason"]], + ha24_survey_list[["HA", "survey_status", "cancellation_reason"]], + ha25_survey_list[["HA", "survey_status", "cancellation_reason"]] + ] + ) + + # Take just rows that we have a confirmed status for + cancellation_data = cancellation_data[~cancellation_data["survey_status"].isin(["no update", "loft remaining"])] + + return cancellation_data + + +def app(): + """ + This application is used to analyse the cancellation data provided by warmfront + :return: + """ + + # This is cancellations of jobs that completed invasive surveys and the installer could not conclude the work + sales_cancellation_data = load_data() diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index 1ed95a30..e94babcd 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -882,6 +882,13 @@ def get_epc_data( return outputs +def get_col_widths(dataframe): + # First we find the maximum length of the index column + idx_max = max([len(str(s)) for s in dataframe.index.values] + [len(str(dataframe.index.name))]) + # Then, we concatenate this to the max of the lengths of column name and its max value for each column, row-wise + return [idx_max] + [max(dataframe[col].astype(str).map(len).max(), len(col)) for col in dataframe.columns] + + def analyse_ha_data(outputs, loader): """ The approach we take within this function is the following: @@ -901,7 +908,11 @@ def analyse_ha_data(outputs, loader): :return: """ + eco4_rate = 1710 + gbis_rate = 600 + ha_analysis_results = [] + ha_revenue_results = [] for ha_name, datasets in outputs.items(): inputs = [x for k, x in loader.data.items() if k == ha_name][0] @@ -1034,7 +1045,8 @@ def analyse_ha_data(outputs, loader): ( (remaining_eco4_df["eco4_message"] == "sap too high") & remaining_eco4_df["eligibility_cavity_type"].isin(["partial", "empty"]) & - remaining_eco4_df["eligibility_loft_type"].isin(["0-100mm"]) + remaining_eco4_df["eligibility_loft_type"].isin(["0-100mm"]) & + pd.isnull(remaining_eco4_df["prospect_type"]) ), "ECO4 if SAP downgrade", remaining_eco4_df["prospect_type"] @@ -1048,7 +1060,7 @@ def analyse_ha_data(outputs, loader): remaining_eco4_df["eligibility_cavity_type"].isin(["full"]) & remaining_eco4_df["eligibility_loft_type"].isin(["0-100mm"]) ), - "Filled cavity - subject to CIGA check", + "ECO4 - Filled cavity - subject to CIGA check", remaining_eco4_df["prospect_type"] ) @@ -1064,7 +1076,7 @@ def analyse_ha_data(outputs, loader): # 5) Looks like GBIS instead remaining_eco4_df["prospect_type"] = np.where( - (remaining_eco4_df["gbis_eligible"] == True), + (remaining_eco4_df["gbis_eligible"] == True) & pd.isnull(remaining_eco4_df["prospect_type"]), "Looks like GBIS", remaining_eco4_df["prospect_type"] ) @@ -1094,16 +1106,17 @@ def analyse_ha_data(outputs, loader): # 2) GBIS candidates that look like strict ECO4 candidates remaining_gbis["prospect_type"] = np.where( (remaining_gbis["eco4_eligible"] == True), - "Upgradable to ECO4", + "GBIS - Upgradable to ECO4", remaining_gbis["prospect_type"] ) # 3) Subject to CIGA check - Filled cavity remaining_gbis["prospect_type"] = np.where( ( - remaining_gbis["eligibility_cavity_type"].isin(["full"]) + remaining_gbis["eligibility_cavity_type"].isin(["full"]) & + pd.isnull(remaining_gbis["prospect_type"]) ), - "Filled cavity - subject to CIGA check", + "GBIS - Filled cavity - subject to CIGA check", remaining_gbis["prospect_type"] ) @@ -1141,30 +1154,95 @@ def analyse_ha_data(outputs, loader): ) ].copy() - ha_analysis_results.append({ + # Perform some checks to make sure we have all of the values + remaining_eco4_dict = remaining_eco4_df["prospect_type"].value_counts().to_dict() + if n_remaining_properties_eco4 != sum([v for k, v in remaining_eco4_dict.items()]): + raise ValueError( + "Number of remaining properties does not match the number of properties in remaining ECO4 dict" + ) + + remaining_gbis_dict = remaining_gbis["prospect_type"].value_counts().to_dict() + if n_remaining_properties_gbis != sum([v for k, v in remaining_gbis_dict.items()]): + raise ValueError( + "Number of remaining properties does not match the number of properties in remaining GBIS dict" + ) + + to_append = { + "ha_name": ha_name, "n_properties_in_asset_list": n_properties_in_asset_list, ############ # ECO4 ############ "properties_sold_eco4": properties_sold_eco4, "n_remaining_properties_eco4": n_remaining_properties_eco4, - **remaining_eco4_df["prospect_type"].value_counts().to_dict(), + **remaining_eco4_dict, ############ # GBIS ############ "properties_sold_gbis": properties_sold_gbis, "n_remaining_properties_gbis": n_remaining_properties_gbis, - **remaining_gbis["prospect_type"].value_counts().to_dict(), + **remaining_gbis_dict, ############ # GBIS ############ "n_eco4_surplus": eco4_surplus.shape[0], "n_gbis_surplus": gbis_surplus.shape[0], - }) + } + + ha_analysis_results.append(to_append) + + revenue_to_append = { + "ha_name": ha_name, + "£ Remaining from asset list": ( + n_remaining_properties_eco4 * eco4_rate + n_remaining_properties_gbis * gbis_rate + ), + "Of which: Strict": ( + to_append.get('strict ECO4', 0) * eco4_rate + to_append.get('strict GBIS', 0) * gbis_rate + + to_append.get('GBIS - Upgradable to ECO4', 0) * gbis_rate + ), + "Of which: Subject to CIGA": ( + to_append.get("ECO4 - Filled cavity - subject to CIGA check", 0) * eco4_rate + + to_append.get("GBIS - Filled cavity - subject to CIGA check", 0) * gbis_rate + ), + "Of which: Prospect, not perfect strict prospect": ( + to_append.get("ECO4 prospect - empty cavity, loft insulation below regulation", 0) * eco4_rate + + to_append.get("ECO4 if SAP downgrade", 0) * eco4_rate + ), + "Of which: Potential downgrade to GBIS": to_append["Looks like GBIS"] * eco4_rate, + "Of which: Does not look like prospect": ( + to_append.get("Does not look like ECO4 candidate", 0) * eco4_rate + + to_append.get("Does not look like GBIS candidate", 0) * gbis_rate + ), + "Surplus: Unidentified properties": eco4_surplus.shape[0] * eco4_rate + gbis_surplus.shape[0] * gbis_rate, + "Surplus: GBIS Updates to ECO4": to_append.get("GBIS - Upgradable to ECO4", 0) * (eco4_rate - gbis_rate) + } + + # Perform a quick check: + if revenue_to_append["£ Remaining from asset list"] - ( + revenue_to_append["Of which: Strict"] + revenue_to_append["Of which: Subject to CIGA"] + + revenue_to_append["Of which: Prospect, not perfect strict prospect"] + + revenue_to_append["Of which: Potential downgrade to GBIS"] + + revenue_to_append["Of which: Does not look like prospect"] + ) > 1: + raise ValueError("Error between top level revenue figures and breakdown - investigate me") + + ha_revenue_results.append(revenue_to_append) ha_analysis_results = pd.DataFrame(ha_analysis_results) + ha_revenue_results = pd.DataFrame(ha_revenue_results) - # Todo: create revenue figures and automate creation of excel + # Automate creation of the excel + # Create a Pandas Excel writer using XlsxWriter as the engine + with pd.ExcelWriter('HA Analysis - batch3.xlsx', engine='xlsxwriter') as writer: + # Write each dataframe to a different worksheet without the index + for df, sheet in [(ha_revenue_results, 'Total Revenue'), + (ha_analysis_results, 'By ECO4 and GBIS')]: + + df.to_excel(writer, sheet_name=sheet, index=False) + + # Auto-adjust columns' width + for i, width in enumerate(get_col_widths(df)): + writer.sheets[sheet].set_column(i, i, width) def app(): From 6a5430d214d60c0075ed0ad6c38655d34c108a1b Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Mon, 29 Jan 2024 12:33:33 +0000 Subject: [PATCH 252/526] Pulling ventilation from epc_record class --- backend/Property.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/Property.py b/backend/Property.py index 82695b75..c9cad22f 100644 --- a/backend/Property.py +++ b/backend/Property.py @@ -83,7 +83,7 @@ class Property: "co2_emissions": epc_record.get("co2_emissions_current"), } self.ventilation = { - "ventilation": epc_record.prepared_epc.get("mechanical_ventilation"), + "ventilation": epc_record.get("mechanical_ventilation"), } self.solar_pv = { "solar_pv": epc_record.get("photo_supply"), From 69d53c85f98c925bbae5732753b8cf511ade1ace Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Tue, 6 Feb 2024 21:46:02 +0000 Subject: [PATCH 253/526] updating how we simulate the impact of floor insultion --- .idea/Model.iml | 2 +- .idea/misc.xml | 2 +- backend/Property.py | 5 +- backend/app/utils.py | 4 +- etl/testing_data/retrofitted_properties.py | 55 ++++++++++++++++++++++ recommendations/SolarPvRecommendations.py | 6 +-- 6 files changed, 65 insertions(+), 9 deletions(-) create mode 100644 etl/testing_data/retrofitted_properties.py diff --git a/.idea/Model.iml b/.idea/Model.iml index b0f9c00d..4413bb06 100644 --- a/.idea/Model.iml +++ b/.idea/Model.iml @@ -7,7 +7,7 @@ - + diff --git a/.idea/misc.xml b/.idea/misc.xml index 1122b380..6f308057 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -3,7 +3,7 @@ - + diff --git a/backend/Property.py b/backend/Property.py index c9cad22f..6d534689 100644 --- a/backend/Property.py +++ b/backend/Property.py @@ -197,10 +197,11 @@ class Property: if len(recommendation["parts"]) > 1: raise NotImplementedError("Have more than 1 floor insulation part - handle this case") - recommendation_record["floor_thermal_transmittance_ending"] = recommendation["new_u_value"] + # recommendation_record["floor_thermal_transmittance_ending"] = recommendation["new_u_value"] # We don't really see above average for this in the training data recommendation_record["floor_insulation_thickness_ending"] = "average" - recommendation_record["floor_energy_eff_ending"] = "Good" + # This is rarely ever populated in the training data + # recommendation_record["floor_energy_eff_ending"] = "Good" else: if recommendation_record["floor_thermal_transmittance_ending"] is None: raise ValueError("We should not have a None value for the u value") diff --git a/backend/app/utils.py b/backend/app/utils.py index 6801da65..ba5509e1 100644 --- a/backend/app/utils.py +++ b/backend/app/utils.py @@ -75,8 +75,8 @@ def sap_to_epc(sap_points: int | float): :return: """ - if sap_points <= 0 or sap_points > 100: - raise ValueError("SAP points should be between 1 and 100.") + if sap_points <= 0: + raise ValueError("SAP points should be above 0.") if sap_points >= 92: return "A" diff --git a/etl/testing_data/retrofitted_properties.py b/etl/testing_data/retrofitted_properties.py new file mode 100644 index 00000000..dcd3d09b --- /dev/null +++ b/etl/testing_data/retrofitted_properties.py @@ -0,0 +1,55 @@ +""" +This script will create an input csv for the recommendation engine and upload it to S3, which can be used for +testing +""" +import pandas as pd +from utils.s3 import save_csv_to_s3 + +USER_ID = 8 +PORTFOLIO_ID = 62 + + +def app(): + """ + This portfolio contains propertyies that we have demo'd in pilots, or properties that were provided to us + as proprties that are being treated under funding scehemes and we have pre/post EPRs for + :return: + """ + + test_file = pd.DataFrame( + [ + # Pilot properties + {'address': '113 Tenby Road', 'postcode': 'B13 9LT', 'Notes': ''}, + {'address': '139 School Road', 'postcode': 'B28 8JF', 'Notes': ''}, + {'address': '77 Simmons Drive', 'postcode': 'B32 1SL', 'Notes': ''}, + {'address': 'Flat 2, 54 Wedgewood Road', 'postcode': 'B32 1LS', 'Notes': ''}, + # Warmfront ECO4 Properties + {'address': '73 Long Chaulden', 'postcode': 'HP1 2HX', 'Notes': ''}, + {'address': '8 Lindlings', 'postcode': 'HP1 2HA', 'Notes': ''}, + {'address': '44 Lindlings', 'postcode': 'HP1 2HE', 'Notes': ''}, + {'address': '46 Chaulden Terrace', 'postcode': 'HP1 2AN', 'Notes': ''}, + # Osmosis SHDF Properties + {'address': '4, Heather Shaw', 'postcode': 'BA14 7JS', 'Notes': ''}, + {'address': '16 Glastonbury Road', 'postcode': 'M32 9PE', 'Notes': ''}, + {'address': '31 Loddon Way', 'postcode': 'BA15 1HG', 'Notes': ''}, + {'address': '62 Pearmain Drive', 'postcode': 'NG3 3DJ', 'Notes': ''}, + ] + + ) + + # Store the data in s3 + filename = f"{USER_ID}/{PORTFOLIO_ID}/eco4_shdf_retrofits.csv" + save_csv_to_s3( + dataframe=test_file, + bucket_name="retrofit-plan-inputs-dev", + file_name=filename + ) + + body = { + "portfolio_id": str(PORTFOLIO_ID), + "housing_type": "Social", + "goal": "Increase EPC", + "goal_value": "A", + "trigger_file_path": filename + } + print(body) diff --git a/recommendations/SolarPvRecommendations.py b/recommendations/SolarPvRecommendations.py index 01cd4f17..230671f1 100644 --- a/recommendations/SolarPvRecommendations.py +++ b/recommendations/SolarPvRecommendations.py @@ -5,8 +5,8 @@ from recommendations.Costs import Costs class SolarPvRecommendations: # Approximate area of the solar panels SOLAR_PANEL_AREA = 1.6 - # Wattage per panel - SOLAR_PANEL_WATTAGE = 360 + # Wattage per panel - this is based on the average wattage of a solar panel being between 250w and 420w + SOLAR_PANEL_WATTAGE = 250 def __init__(self, property_instance): """ @@ -47,7 +47,7 @@ class SolarPvRecommendations: # of solar PV installations cost_result = self.costs.solar_pv(wattage=solar_panel_wattage) - kw = int(np.round(solar_panel_wattage / 1000)) + kw = np.floor(solar_panel_wattage / 100) / 10 self.recommendation = [ { From 456d0892c056a9b1728e438bca6d87154943ddbf Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Fri, 9 Feb 2024 17:16:54 +0000 Subject: [PATCH 254/526] tweaks to router + added tenure filter to epc pipeline --- backend/Property.py | 5 +- backend/app/plan/router.py | 84 ++++++++++------------ backend/ml_models/AnnualBillSavings.py | 9 +++ etl/epc/DataProcessor.py | 7 ++ etl/epc/settings.py | 4 ++ etl/testing_data/retrofitted_properties.py | 6 ++ recommendations/LightingRecommendations.py | 32 +++++++++ recommendations/Recommendations.py | 14 ++-- 8 files changed, 108 insertions(+), 53 deletions(-) diff --git a/backend/Property.py b/backend/Property.py index 6d534689..de87099b 100644 --- a/backend/Property.py +++ b/backend/Property.py @@ -192,8 +192,9 @@ class Property: recommendation_record["walls_insulation_thickness_ending"] = "none" # Update description to indicate it's insulate - if recommendation["type"] in ["solid_floor_insulation", "suspended_floor_insulation", - "exposed_floor_insulation"]: + if recommendation["type"] in [ + "solid_floor_insulation", "suspended_floor_insulation", "exposed_floor_insulation" + ]: if len(recommendation["parts"]) > 1: raise NotImplementedError("Have more than 1 floor insulation part - handle this case") diff --git a/backend/app/plan/router.py b/backend/app/plan/router.py index b3d1c623..89c5187b 100644 --- a/backend/app/plan/router.py +++ b/backend/app/plan/router.py @@ -164,6 +164,8 @@ async def trigger_plan(body: PlanTriggerRequest): model_api = ModelApi(portfolio_id=body.portfolio_id, timestamp=created_at) + # recommendations_scoring_data.loc[17, 'photo_supply_ending'] = 50 + all_predictions = model_api.predict_all( df=recommendations_scoring_data, bucket=get_settings().DATA_BUCKET, @@ -237,9 +239,10 @@ async def trigger_plan(body: PlanTriggerRequest): ] recommendations[property_id] = final_recommendations + # impact_df = pd.DataFrame(recommendations[input_properties[0].id]) + # This is a temporary step, to estimate the impact of the measured on heat demand and carbon # TODO: This needs to be cleaned up, if it happens to be kept - combined_recommendations_scoring_data = [] representative_recs = {} for property_id, property_recommendations in recommendations.items(): default_recommendations = [r for r in property_recommendations if r["default"]] @@ -276,58 +279,26 @@ async def trigger_plan(body: PlanTriggerRequest): representative_recs[property_id] = default_recommendations - property_instance = [p for p in input_properties if p.id == property_id][0] - - recommendation_record = property_instance.base_difference_record.df.to_dict("records")[0].copy() - - scoring_dict = {} - for rec in default_recommendations: - scoring_dict = Property.create_recommendation_scoring_data( - property_id=property_instance.id, - recommendation_record=recommendation_record, - recommendation=rec - ) - # At each iterations, we update the recommendation record with the changes reflectecd in the - # scoring_dict - for k in scoring_dict.keys(): - if k in recommendation_record.keys(): - recommendation_record[k] = scoring_dict[k] - - combined_recommendations_scoring_data.append(scoring_dict) - - # PERFORM SAME STEPS AGAIN - TODO: TO BE REMOVED - combined_recommendations_scoring_data = pd.DataFrame(combined_recommendations_scoring_data) - - all_combined_predictions = model_api.predict_all( - df=combined_recommendations_scoring_data, - bucket=get_settings().DATA_BUCKET, - prediction_buckets={ - "sap_change_predictions": get_settings().SAP_PREDICTIONS_BUCKET, - "heat_demand_predictions": get_settings().HEAT_PREDICTIONS_BUCKET, - "carbon_change_predictions": get_settings().CARBON_PREDICTIONS_BUCKET - } - ) - # We update the carbon and heat demand predictions + # TODO: The api call producing all_combined_predictions has been removed so we can potentially completely + # refactor this block to just perform the energy adjustments for property_id, property_recommendations in recommendations.items(): - combined_heat_demand = all_combined_predictions["heat_demand_predictions"] - combined_heat_demand = combined_heat_demand[combined_heat_demand["property_id"] == str(property_id)] - - combined_carbon = all_combined_predictions["carbon_change_predictions"] - combined_carbon = combined_carbon[combined_carbon["property_id"] == str(property_id)] property_instance = [p for p in input_properties if p.id == property_id][0] - carbon_change = float( - property_instance.data["co2-emissions-current"] - ) - combined_carbon["predictions"].values[0] + heat_demand_change = sum( + x.get("heat_demand", 0) for x in representative_recs[property_id] if + x["type"] not in ["mechanical_ventilation", "low_energy_lighting"] + ) + carbon_change = sum( + x.get("co2_equivalent_savings", 0) for x in representative_recs[property_id] if + x["type"] not in ["mechanical_ventilation", "low_energy_lighting"] + ) starting_heat_demand = ( float(property_instance.data["energy-consumption-current"]) * property_instance.floor_area ) - expected_heat_demand = starting_heat_demand - ( - combined_heat_demand["predictions"].values[0] * property_instance.floor_area - ) + expected_heat_demand = starting_heat_demand - heat_demand_change # We don't want to adjust the heat demand for mechanical ventilation so we add it back on @@ -361,6 +332,21 @@ async def trigger_plan(body: PlanTriggerRequest): in representative_recs[property_id] ] representative_rec_data = pd.DataFrame(representative_rec_data) + # Suppress mechanical ventilation to have zero heat demand and co2 + representative_rec_data.loc[ + representative_rec_data["type"] == "mechanical_ventilation", "co2_equivalent_savings" + ] = 0 + representative_rec_data.loc[ + representative_rec_data["type"] == "mechanical_ventilation", "heat_demand" + ] = 0 + # Supress low energy lighting to have zero heat demand and co2 - this does not get affected by this process + representative_rec_data.loc[ + representative_rec_data["type"] == "low_energy_lighting", "co2_equivalent_savings" + ] = 0 + representative_rec_data.loc[ + representative_rec_data["type"] == "low_energy_lighting", "heat_demand" + ] = 0 + # Convert co2 and heat demand to proportions of their column sums representative_rec_data["co2_equivalent_savings_percent"] = ( representative_rec_data["co2_equivalent_savings"] / @@ -393,10 +379,18 @@ async def trigger_plan(body: PlanTriggerRequest): rec["co2_equivalent_savings"] = 0 rec["heat_demand"] = 0 rec["energy_cost_savings"] = 0 + elif rec["type"] == "low_energy_lighting": + # We do not convert, we just calculate energy cost savings + rec["energy_cost_savings"] = AnnualBillSavings.estimate_electric(rec["heat_demand"]) + continue else: rec["co2_equivalent_savings"] = change_data["co2_equivalent_savings"].values[0] rec["heat_demand"] = change_data["heat_demand"].values[0] - rec["energy_cost_savings"] = AnnualBillSavings.estimate(rec["heat_demand"]) + # If the recommendation is solar, the savings are entirely in electricity + if rec["type"] == "solar_pv": + rec["energy_cost_savings"] = AnnualBillSavings.estimate_electric(rec["heat_demand"]) + else: + rec["energy_cost_savings"] = AnnualBillSavings.estimate(rec["heat_demand"]) # Update recommendations recommendations[property_id] = property_recommendations diff --git a/backend/ml_models/AnnualBillSavings.py b/backend/ml_models/AnnualBillSavings.py index f3e5074a..5e65cc5c 100644 --- a/backend/ml_models/AnnualBillSavings.py +++ b/backend/ml_models/AnnualBillSavings.py @@ -29,6 +29,15 @@ class AnnualBillSavings: """ return cls.PRICE_FACTOR * kwh + @classmethod + def estimate_electric(cls, kwh: float): + """ + Estimate the annual bill savings based on the kwh savings + :param kwh: The kwh savings + :return: An estimate for annual bill savings + """ + return cls.ELECTRICITY_PRICE_CAP * kwh + @classmethod def adjust_energy_to_metered(cls, epc_energy_consumption, current_epc_rating): """ diff --git a/etl/epc/DataProcessor.py b/etl/epc/DataProcessor.py index 4615d2c4..5a210d9f 100644 --- a/etl/epc/DataProcessor.py +++ b/etl/epc/DataProcessor.py @@ -8,6 +8,7 @@ from etl.epc.settings import ( IGNORED_TRANSACTION_TYPES, IGNORED_FLOOR_LEVELS, IGNORED_PROPERTY_TYPES, + IGNORED_TENURES, FULLY_GLAZED_DESCRIPTIONS, AVERAGE_FIXED_FEATURES, BUILT_FORM_REMAP, @@ -632,6 +633,7 @@ class EPCDataProcessor: violation_missing_hotwater_description = pd.isnull(self.data["HOTWATER_DESCRIPTION"]) violation_missing_roof_description = pd.isnull(self.data["ROOF_DESCRIPTION"]) violation_invalid_property_type = self.data["PROPERTY_TYPE"] == IGNORED_PROPERTY_TYPES + violation_invalid_tenure = self.data["TENURE"].isin(IGNORED_TENURES) violation_df = pd.concat( [ @@ -644,6 +646,7 @@ class EPCDataProcessor: violation_missing_hotwater_description, violation_missing_roof_description, violation_invalid_property_type, + violation_invalid_tenure, ], axis=1, keys=[ "violation_uprn_missing", @@ -655,6 +658,7 @@ class EPCDataProcessor: "violation_missing_hotwater_description", "violation_missing_roof_description", "violation_invalid_property_type", + "violation_invalid_tenure" ] ) @@ -697,6 +701,9 @@ class EPCDataProcessor: # EPCs) we'll ignore them from the model self.data = self.data[self.data["PROPERTY_TYPE"] != IGNORED_PROPERTY_TYPES] + # We remove EPCs where the tenure is unknown, but is usually an indicator of a new build + self.data = self.data[self.data["TENURE"] != IGNORED_TENURES] + def clean_multi_glaze_proportion(self, ignore_step: bool = False) -> None: """ If there is no multi-glaze proportion but the windows are fully glazed, then we should assume a score of 100 diff --git a/etl/epc/settings.py b/etl/epc/settings.py index 87f27972..7100b0e9 100644 --- a/etl/epc/settings.py +++ b/etl/epc/settings.py @@ -215,6 +215,10 @@ EARLIEST_EPC_DATE = "2014-08-01" IGNORED_TRANSACTION_TYPES = "new dwelling" IGNORED_FLOOR_LEVELS = ["top floor", "mid floor"] IGNORED_PROPERTY_TYPES = "Park home" +IGNORED_TENURES = [ + "Not defined - use in the case of a new dwelling for which the intended tenure in not known. It is not to be used " + "for an existing dwelling" +] RDSAP_RESPONSE = "CURRENT_ENERGY_EFFICIENCY" HEAT_DEMAND_RESPONSE = "ENERGY_CONSUMPTION_CURRENT" diff --git a/etl/testing_data/retrofitted_properties.py b/etl/testing_data/retrofitted_properties.py index dcd3d09b..5e235c5f 100644 --- a/etl/testing_data/retrofitted_properties.py +++ b/etl/testing_data/retrofitted_properties.py @@ -18,6 +18,12 @@ def app(): test_file = pd.DataFrame( [ + # Live West Properties + {"address": "42, Foxes Field", "postcode": "TR18 3RJ", "Notes": None}, + {"address": "11, Cranley Gardens", "postcode": "TQ13 8UT", "Notes": None}, + # Keyzy properties + {'address': '2 South Terrace', 'postcode': 'NN1 5JY', 'Notes': ''}, + {'address': '25 Albert Street', 'postcode': 'PO12 4TY', 'Notes': ''}, # Pilot properties {'address': '113 Tenby Road', 'postcode': 'B13 9LT', 'Notes': ''}, {'address': '139 School Road', 'postcode': 'B28 8JF', 'Notes': ''}, diff --git a/recommendations/LightingRecommendations.py b/recommendations/LightingRecommendations.py index cd52bea9..788d1ad1 100644 --- a/recommendations/LightingRecommendations.py +++ b/recommendations/LightingRecommendations.py @@ -23,6 +23,34 @@ class LightingRecommendations: self.material = material[0] self.recommendation = [] + @staticmethod + def estimate_lighting_impact(number_of_bulbs: int): + """ + Placeholder function to estimate the actual energy savings of LEDs vs traditional lighting + :return: + """ + + wattage_incandescent = 60 # wattage of typical incandescent bulb in watts + wattage_led = 10 # wattage of typical LED bulb in watts + hours_per_day = 3 # average usage in hours per day + days_per_year = 365 # days in a year + national_grid_carbon_intensity = 162 # gCO2/kWh, average for 2023 in the UK + + # Energy usage per year for incandescent and LED bulbs (in kWh) + energy_usage_incandescent_per_year = (wattage_incandescent / 1000) * hours_per_day * days_per_year + energy_usage_led_per_year = (wattage_led / 1000) * hours_per_day * days_per_year + + # Energy savings per bulb per year + energy_savings_per_bulb_per_year = energy_usage_incandescent_per_year - energy_usage_led_per_year + + # Total energy savings for all bulbs + total_energy_savings_per_year = energy_savings_per_bulb_per_year * number_of_bulbs + + carbon_reduction_grams = total_energy_savings_per_year * national_grid_carbon_intensity + carbon_reduction_tonnes = carbon_reduction_grams / 1_000_000 # converting grams to tonnes + + return total_energy_savings_per_year, carbon_reduction_tonnes + def recommend(self): """ This method will check if there are any lighting fittings that aren't low energy. @@ -58,6 +86,8 @@ class LightingRecommendations: else: description = "Install low energy lighting in %s outlets" % str(number_non_lel_outlets) + heat_demand_change, carbon_change = self.estimate_lighting_impact(number_non_lel_outlets) + self.recommendation = [ { "parts": [], @@ -68,6 +98,8 @@ class LightingRecommendations: # For SAP points, we use the fact that lighting is usually worth 2 points and we scale this to # the proportion of lights that will be set to low energy "sap_points": round(2 * (number_non_lel_outlets / number_lighting_outlets), 2), + "heat_demand": heat_demand_change, + "co2_equivalent_savings": carbon_change, **cost_result } ] diff --git a/recommendations/Recommendations.py b/recommendations/Recommendations.py index 2b35ffea..0444006d 100644 --- a/recommendations/Recommendations.py +++ b/recommendations/Recommendations.py @@ -143,6 +143,10 @@ class Recommendations: for recommendations_by_type in property_recommendations: for rec in recommendations_by_type: + # We don't use the model for low energy lighting at the moment + if rec["type"] == "low_energy_lighting": + continue + new_heat_demand = property_heat_predictions[property_heat_predictions["recommendation_id"] == str( rec["recommendation_id"] )]["predictions"].values[0] @@ -151,12 +155,10 @@ class Recommendations: rec["recommendation_id"] )]["predictions"].values[0] - # We don't use the model for low energy lighting at the moment - if rec["type"] != "low_energy_lighting": - new_sap = property_sap_predictions[property_sap_predictions["recommendation_id"] == str( - rec["recommendation_id"] - )]["predictions"].values[0] - rec["sap_points"] = new_sap - float(property_instance.data["current-energy-efficiency"]) + new_sap = property_sap_predictions[property_sap_predictions["recommendation_id"] == str( + rec["recommendation_id"] + )]["predictions"].values[0] + rec["sap_points"] = new_sap - float(property_instance.data["current-energy-efficiency"]) if rec["type"] == "mechanical_ventilation": # For the moment, we cap the number of SAP points that can be achieved by ventilation at 2 From 59271a5009e081429b7fcd33b8df40848d62f67c Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Fri, 9 Feb 2024 20:07:37 +0000 Subject: [PATCH 255/526] Tweaking simulations in recommendation engine --- backend/app/plan/router.py | 3 ++- backend/ml_models/AnnualBillSavings.py | 4 ++-- recommendations/SolarPvRecommendations.py | 5 ++++- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/backend/app/plan/router.py b/backend/app/plan/router.py index 89c5187b..5e1b5a53 100644 --- a/backend/app/plan/router.py +++ b/backend/app/plan/router.py @@ -165,6 +165,7 @@ async def trigger_plan(body: PlanTriggerRequest): model_api = ModelApi(portfolio_id=body.portfolio_id, timestamp=created_at) # recommendations_scoring_data.loc[17, 'photo_supply_ending'] = 50 + recommendations_scoring_data.loc[5, 'walls_thermal_transmittance_ending'] = 0.25 all_predictions = model_api.predict_all( df=recommendations_scoring_data, @@ -239,7 +240,7 @@ async def trigger_plan(body: PlanTriggerRequest): ] recommendations[property_id] = final_recommendations - # impact_df = pd.DataFrame(recommendations[input_properties[0].id]) + impact_df = pd.DataFrame(recommendations[input_properties[0].id]) # This is a temporary step, to estimate the impact of the measured on heat demand and carbon # TODO: This needs to be cleaned up, if it happens to be kept diff --git a/backend/ml_models/AnnualBillSavings.py b/backend/ml_models/AnnualBillSavings.py index 5e65cc5c..99fae4db 100644 --- a/backend/ml_models/AnnualBillSavings.py +++ b/backend/ml_models/AnnualBillSavings.py @@ -75,10 +75,10 @@ class AnnualBillSavings: # This should be negative consumption_difference = gradient * epc_energy_consumption + intercept - if consumption_difference > 0: - raise ValueError("consumption_difference should be negative") adjusted_consumption = (epc_energy_consumption + consumption_difference) + if adjusted_consumption < 0: + raise ValueError("consumption_difference should be negative") return adjusted_consumption diff --git a/recommendations/SolarPvRecommendations.py b/recommendations/SolarPvRecommendations.py index 230671f1..8a773570 100644 --- a/recommendations/SolarPvRecommendations.py +++ b/recommendations/SolarPvRecommendations.py @@ -43,6 +43,8 @@ class SolarPvRecommendations: number_solar_panels = np.floor(self.property.solar_pv_roof_area / self.SOLAR_PANEL_AREA) solar_panel_wattage = number_solar_panels * self.SOLAR_PANEL_WATTAGE + roof_coverage_percent = round(self.property.solar_pv_percentage * 100) + # Given the wattage, we estimate the cost of the solar PV system. This is based on the MCS database # of solar PV installations cost_result = self.costs.solar_pv(wattage=solar_panel_wattage) @@ -53,7 +55,8 @@ class SolarPvRecommendations: { "parts": [], "type": "solar_pv", - "description": f"Install a {kw} kilowatt-peak (kWp) solar photovoltaic (PV) panel system on the roof", + "description": f"Install a {kw} kilowatt-peak (kWp) solar photovoltaic (PV) panel system on " + f"{roof_coverage_percent}% the roof", "starting_u_value": None, "new_u_value": None, "sap_points": None, From 68320571ba7d3977be1fbdd9e37fbe9ff86d95c5 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Fri, 9 Feb 2024 20:37:13 +0000 Subject: [PATCH 256/526] removing temp code from router --- backend/app/plan/router.py | 5 ----- 1 file changed, 5 deletions(-) diff --git a/backend/app/plan/router.py b/backend/app/plan/router.py index 5e1b5a53..811c3c09 100644 --- a/backend/app/plan/router.py +++ b/backend/app/plan/router.py @@ -164,9 +164,6 @@ async def trigger_plan(body: PlanTriggerRequest): model_api = ModelApi(portfolio_id=body.portfolio_id, timestamp=created_at) - # recommendations_scoring_data.loc[17, 'photo_supply_ending'] = 50 - recommendations_scoring_data.loc[5, 'walls_thermal_transmittance_ending'] = 0.25 - all_predictions = model_api.predict_all( df=recommendations_scoring_data, bucket=get_settings().DATA_BUCKET, @@ -240,8 +237,6 @@ async def trigger_plan(body: PlanTriggerRequest): ] recommendations[property_id] = final_recommendations - impact_df = pd.DataFrame(recommendations[input_properties[0].id]) - # This is a temporary step, to estimate the impact of the measured on heat demand and carbon # TODO: This needs to be cleaned up, if it happens to be kept representative_recs = {} From 02005254f5dff373860b939dea01a2f7b35c5a33 Mon Sep 17 00:00:00 2001 From: Michael Duong Date: Fri, 9 Feb 2024 21:37:05 +0000 Subject: [PATCH 257/526] fix bug --- etl/epc/DataProcessor.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/etl/epc/DataProcessor.py b/etl/epc/DataProcessor.py index 5a210d9f..af55535c 100644 --- a/etl/epc/DataProcessor.py +++ b/etl/epc/DataProcessor.py @@ -702,7 +702,7 @@ class EPCDataProcessor: self.data = self.data[self.data["PROPERTY_TYPE"] != IGNORED_PROPERTY_TYPES] # We remove EPCs where the tenure is unknown, but is usually an indicator of a new build - self.data = self.data[self.data["TENURE"] != IGNORED_TENURES] + self.data = self.data[~self.data["TENURE"].isin(IGNORED_TENURES)] def clean_multi_glaze_proportion(self, ignore_step: bool = False) -> None: """ From a0bbdadd1f621401e9ba6465e69f03a97e4c3446 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Mon, 12 Feb 2024 15:13:04 +0000 Subject: [PATCH 258/526] Adding in pipline to test model simulations --- backend/Property.py | 14 + etl/testing_data/sap_model_simulation.py | 385 +++++++++++++++++++++++ 2 files changed, 399 insertions(+) create mode 100644 etl/testing_data/sap_model_simulation.py diff --git a/backend/Property.py b/backend/Property.py index de87099b..d1f5a1e2 100644 --- a/backend/Property.py +++ b/backend/Property.py @@ -184,6 +184,15 @@ class Property: recommendation_record["walls_thermal_transmittance_ending"] = recommendation["new_u_value"] recommendation_record["walls_insulation_thickness_ending"] = "above average" recommendation_record["walls_energy_eff_ending"] = "Good" + + if recommendation["type"] == "external_wall_insulation": + recommendation_record["external_insulation"] = True + recommendation_record["internal_insulation"] = False + + if recommendation["type"] == "internal_wall_insulation": + recommendation_record["external_insulation"] = False + recommendation_record["internal_insulation"] = True + else: if recommendation_record["walls_thermal_transmittance_ending"] is None: raise ValueError("We should not have a None value for the u value") @@ -269,6 +278,11 @@ class Property: else: raise ValueError("Invalid glazing type - implement me") + if is_secondary_glazing: + recommendation_record["glazed_type_ending"] = "secondary glazing" + else: + recommendation_record["glazed_type_ending"] = "double glazing installed during or after 2002 " + if recommendation["type"] == "solar_pv": recommendation_record["photo_supply_ending"] = recommendation["photo_supply"] diff --git a/etl/testing_data/sap_model_simulation.py b/etl/testing_data/sap_model_simulation.py new file mode 100644 index 00000000..31cc21e7 --- /dev/null +++ b/etl/testing_data/sap_model_simulation.py @@ -0,0 +1,385 @@ +import pandas as pd +from utils.s3 import read_dataframe_from_s3_parquet +from backend.Property import Property + + +def app(): + dataset = read_dataframe_from_s3_parquet( + bucket_name="retrofit-datalake-dev", + file_key="dataset_with0perm_all.parquet" + ) + + thresholds = dataset["total_floor_area_starting"].quantile( + [0.3, 0.6, 0.9] + ).values + + dataset["floor_area_quantile"] = pd.cut( + dataset["total_floor_area_starting"], + bins=[0] + list(thresholds) + [float('inf')], + labels=False, + include_lowest=True + ) + + # We want to set up some tests to deduce the following: + # For different property types, of various sizes, what is the impact of the various measures that we recommend + # 1) Insulating the loft. We test the impact of bringing the loft to 270mm insulation and 300mm insulation + property_types = dataset[ + ["property_type", "built_form", "floor_area_quantile", "construction_age_band"] + ].drop_duplicates() + + property_types = property_types.sort_values( + ["property_type", "built_form", "floor_area_quantile", "construction_age_band"] + ) + + # For each property type congifuration, we take an example property with different starting loft thresholds. We take + # the value with the lowest U-value, since when simulating, we often work with particularly low u-values + + # TODOS + # 1) When simulating with loft insulation, make sure is_loft is definitely true, because the roof could start as + # pitched, but is_loft false + + # TODO: We have a description: "Pitched, loft insulation", which seems to have its insulation thickness set to + # "none" + # Example UPRN: 100021359753, 10001204228 + + # TODO: For windows, we have glazing_type and glazed_type. When simulating, we don't set glazed_type_ending which + # could be set to "double glazing installed during or after 2002" (THIS HAS BEEN ADDED!) + + # TODO: When simulating external wall insulation vs internal wall insulation, I need to set the external_insulation + # or internal_insulation boolean values to true (THIS HAS BEEN ADDED!) + + # TODO: We could probably re-map some of the values of glazed_type_ending + + # For simulating + # 1) loft insulation - we take the lowest u-value when loft insulation is 270mm and 300mm, the values we most + # commonly simulate to - For loft insulation, these values are in-line with + best_270mm_uvalue = dataset[dataset["roof_insulation_thickness"] == "270"]["roof_thermal_transmittance"].min() + best_300mm_uvalue = dataset[dataset["roof_insulation_thickness"] == "300"]["roof_thermal_transmittance"].min() + + # 2) Intenal wall insulation - we take the lowest u-value when simulating internal wall insulation + best_internal_wall_uvalue = dataset[ + dataset["internal_insulation"] & dataset["is_solid_brick"] + ]["walls_thermal_transmittance"].min() + + # 3) External wall insulation - we take the lowest u-value when simulating external wall insulation + best_external_wall_uvalue = dataset[ + dataset["external_insulation"] & dataset["is_solid_brick"] + ]["walls_thermal_transmittance"].min() + + # 4) Cavity wall insulation - we take the lowest u-value when simulating cavity wall insulation + # This is 0.28, which is a sufficiently low value + best_cavity_wall_uvalue = dataset[ + dataset["is_cavity_wall"] & dataset["is_filled_cavity"] & (~dataset["external_insulation"]) & ( + ~dataset["internal_insulation"]) + ]["walls_thermal_transmittance"].min() + + loft_insulation_testing_data = [] + solid_wall_testing_data = [] + cavity_wall_testing_data = [] + solid_floor_testing_data = [] + suspended_floor_testing_data = [] + single_glazed_testing_data = [] + partial_double_glazed_testing_data = [] + partial_secondary_glazed_testing_data = [] + for property_config in property_types.itertuples(): + # Take a sample row + population = dataset[ + (dataset["property_type"] == property_config.property_type) & + (dataset["built_form"] == property_config.built_form) & + (dataset["floor_area_quantile"] == property_config.floor_area_quantile) & + (dataset["construction_age_band"] == property_config.construction_age_band) + ] + + # 1) Loft insulation + + # For loft insulation, there are two scenarios we test. + # 1) Loft insulation to 270mm + # 2) Lost insulation to 300mm + + for insulation_thickness in ["none", "12", "50", "75", "100", "150", "200", "250"]: + if insulation_thickness == "none": + row = population[ + (population["roof_insulation_thickness"] == "none") & + (population["is_pitched"]) + ].sample(1) + + else: + row = population[ + (population["roof_insulation_thickness"] == insulation_thickness) & + (population["is_pitched"]) + ].sample(1) + + loft_insulation_270mm_simulation = Property.create_recommendation_scoring_data( + property_id=row["uprn"].values[0], + recommendation_record=row.copy().to_dict("records")[0], + recommendation={ + "recommendation_id": "loft_insulation_270mm", + "type": "loft_insulation", + "new_u_value": best_270mm_uvalue, + "parts": [ + {"depth": 270} + ] + } + ) + + loft_insulation_300mm_simulation = Property.create_recommendation_scoring_data( + property_id=row["uprn"].values[0], + recommendation_record=row.copy().to_dict("records")[0], + recommendation={ + "recommendation_id": "loft_insulation_300mm", + "type": "loft_insulation", + "new_u_value": best_300mm_uvalue, + "parts": [ + {"depth": 300} + ] + } + ) + + # Insert simulation specific configuration details + loft_insulation_270mm_simulation = { + "simulation_ending_insulation_thickness": "270", + "simulation_starting_insulation_thickness": insulation_thickness, + **loft_insulation_270mm_simulation + } + + loft_insulation_300mm_simulation = { + "simulation_ending_insulation_thickness": "300", + "simulation_starting_insulation_thickness": insulation_thickness, + **loft_insulation_300mm_simulation + } + + loft_insulation_testing_data.append(loft_insulation_270mm_simulation) + loft_insulation_testing_data.append(loft_insulation_300mm_simulation) + + # 2) Solid wall insulation + solid_wall_sample = population[ + population["is_solid_brick"] & (population["walls_insulation_thickness"] == "none") + ] + + # We take 1 sample for each value of walls_thermal_transmittance + for uvalue in solid_wall_sample["walls_thermal_transmittance"].unique(): + row = solid_wall_sample[ + solid_wall_sample["walls_thermal_transmittance"] == uvalue + ].sample(1) + + # Simulated IWI + internal_wall_insulation_simulation = Property.create_recommendation_scoring_data( + property_id=row["uprn"].values[0].to_dict("records")[0], + recommendation_record=row.copy(), + recommendation={ + "recommendation_id": "internal_wall_insulation", + "type": "internal_wall_insulation", + "new_u_value": best_internal_wall_uvalue, + "parts": [] + } + ) + + # Simulated EWI + best_external_wall_uvalue_wall_insulation_simulation = Property.create_recommendation_scoring_data( + property_id=row["uprn"].values[0], + recommendation_record=row.copy(), + recommendation={ + "recommendation_id": "external_wall_insulation", + "type": "external_wall_insulation", + "new_u_value": best_external_wall_uvalue, + "parts": [] + } + ) + + # The iww/ewi simulations will be next to each other, so we can see how they differ for the same property + solid_wall_testing_data.append(internal_wall_insulation_simulation) + solid_wall_testing_data.append(best_external_wall_uvalue_wall_insulation_simulation) + + # 3) Cavity wall insulation + cavity_wall_sample = population[ + population["is_cavity_wall"] & (~population["is_filled_cavity"]) & ( + ~population["external_insulation"] + ) & (~population["internal_insulation"]) + ] + + # We take 1 sample for each value of walls_thermal_transmittance + for uvalue in cavity_wall_sample["walls_thermal_transmittance"].unique(): + row = cavity_wall_sample[ + cavity_wall_sample["walls_thermal_transmittance"] == uvalue + ].sample(1) + + # Simulated filled cavity + filled_cavity_wall_insulation_simulation = Property.create_recommendation_scoring_data( + property_id=row["uprn"].values[0], + recommendation_record=row.copy().to_dict("records")[0], + recommendation={ + "recommendation_id": "cavity_wall_insulation", + "type": "cavity_wall_insulation", + "new_u_value": best_cavity_wall_uvalue, + "parts": [] + } + ) + + cavity_wall_testing_data.append(filled_cavity_wall_insulation_simulation) + + # 4) Solid floor insulation + solid_floor_sample = population[ + population["is_solid"] & (population["floor_insulation_thickness"] == "none") + ] + + # We have many different values of u-value for solid floors, we we'll take a sample at the 25%, 50% and 75% + # values + # We must take a value that is in one of the unique values for floor_thermal_transmittance + for uvalue in solid_floor_sample["floor_thermal_transmittance"].quantile([0.25, 0.5, 0.75]).values: + nearest_value = solid_floor_sample['floor_thermal_transmittance'].sub(uvalue).abs().idxmin() + nearest_row = solid_floor_sample.loc[[nearest_value]].sample(1) + + # Simulated solid floor insulation + solid_floor_insulation_simulation = Property.create_recommendation_scoring_data( + property_id=nearest_row["uprn"].values[0], + recommendation_record=nearest_row.copy().to_dict("records")[0], + recommendation={ + "recommendation_id": "solid_floor_insulation", + "type": "solid_floor_insulation", + "new_u_value": None, # This doesn't matter at the moment + "parts": [] + } + ) + + solid_floor_testing_data.append(solid_floor_insulation_simulation) + + # 5) Suspended floor insulation + suspended_floor_sample = population[ + population["is_suspended"] & (population["floor_insulation_thickness"] == "none") + ] + + # We take the same approach as for solid floors + for uvalue in suspended_floor_sample["floor_thermal_transmittance"].quantile([0.25, 0.5, 0.75]).values: + nearest_value = suspended_floor_sample['floor_thermal_transmittance'].sub(uvalue).abs().idxmin() + nearest_row = suspended_floor_sample.loc[[nearest_value]].sample(1) + + # Simulated suspended floor insulation + suspended_floor_insulation_simulation = Property.create_recommendation_scoring_data( + property_id=nearest_row["uprn"].values[0], + recommendation_record=nearest_row.copy().to_dict("records")[0], + recommendation={ + "recommendation_id": "suspended_floor_insulation", + "type": "suspended_floor_insulation", + "new_u_value": None, # This doesn't matter at the moment + "parts": [] + } + ) + + suspended_floor_testing_data.append(suspended_floor_insulation_simulation) + + # 6) Windows - single glazing + single_glazing_sample = population[ + (population["glazing_type"] == "single") + ] + + # We take multiple values for multi_glaze_proportion_starting. We definitely need zero, but then we also + # take the 25%, 50% and 75% values + multi_glaze_values = [0] + list( + single_glazing_sample["multi_glaze_proportion_starting"].quantile([0.25, 0.5, 0.75]).values + ) + multi_glaze_values = set(multi_glaze_values) + + for value in multi_glaze_values: + row = single_glazing_sample[ + single_glazing_sample["multi_glaze_proportion_starting"] == value + ].sample(1) + + # For single glazed windows, we can recommend double glazing or secondary glazing + + # Simulated double glazing + double_glazing_simulation = Property.create_recommendation_scoring_data( + property_id=row["uprn"].values[0], + recommendation_record=row.copy().to_dict("records")[0], + recommendation={ + "recommendation_id": "windows_glazing", + "type": "windows_glazing", + "new_u_value": None, # This doesn't matter at the moment + "parts": [], + "is_secondary_glazing": False + } + ) + + # Simulated secondary glazing + secondary_glazing_simulation = Property.create_recommendation_scoring_data( + property_id=row["uprn"].values[0], + recommendation_record=row.copy().to_dict("records")[0], + recommendation={ + "recommendation_id": "windows_glazing", + "type": "windows_glazing", + "new_u_value": None, # This doesn't matter at the moment + "parts": [], + "is_secondary_glazing": True + } + ) + + # Add in simulation specific details + # Add to the beginning of the dictionary + double_glazing_simulation = { + "simulation_ending_window_finish": "double", + **double_glazing_simulation + } + secondary_glazing_simulation = { + "simulation_ending_window_finish": "secondary", + **secondary_glazing_simulation + } + + single_glazed_testing_data.append(double_glazing_simulation) + single_glazed_testing_data.append(secondary_glazing_simulation) + + # 7) Windows - partial double glazed + partial_double_glazing_sample = population[ + (population["glazing_type"] == "double") & (population["multi_glaze_proportion_starting"] > 0) & ( + population["multi_glaze_proportion_starting"] < 100 + ) + ] + + for value in partial_double_glazing_sample["multi_glaze_proportion_starting"].quantile( + [0.25, 0.5, 0.75] + ).values: + nearest_value = partial_double_glazing_sample['multi_glaze_proportion_starting'].sub(value).abs().idxmin() + nearest_row = partial_double_glazing_sample.loc[[nearest_value]].sample(1) + # If we start with partial double glazing, we recommend completing the job + # Simulated double glazing + double_glazing_simulation = Property.create_recommendation_scoring_data( + property_id=nearest_row["uprn"].values[0], + recommendation_record=nearest_row.copy().to_dict("records")[0], + recommendation={ + "recommendation_id": "windows_glazing", + "type": "windows_glazing", + "new_u_value": None, # This doesn't matter at the moment + "parts": [], + "is_secondary_glazing": False + } + ) + + partial_double_glazed_testing_data.append(double_glazing_simulation) + + # 8) Windows - partial secondary glazed + partial_secondary_glazing_sample = population[ + (population["glazing_type"] == "secondary") & (population["multi_glaze_proportion_starting"] > 0) & ( + population["multi_glaze_proportion_starting"] < 100 + ) + ] + + for value in partial_secondary_glazing_sample["multi_glaze_proportion_starting"].quantile( + [0.25, 0.5, 0.75] + ).values: + nearest_value = partial_secondary_glazing_sample['multi_glaze_proportion_starting'].sub( + value).abs().idxmin() + nearest_row = partial_secondary_glazing_sample.loc[[nearest_value]].sample(1) + + # If we start with partial secondary glazing, we recommend completing the job + # Simulated secondary glazing + secondary_glazing_simulation = Property.create_recommendation_scoring_data( + property_id=nearest_row["uprn"].values[0], + recommendation_record=nearest_row.copy().to_dict("records")[0], + recommendation={ + "recommendation_id": "windows_glazing", + "type": "windows_glazing", + "new_u_value": None, # This doesn't matter at the moment + "parts": [], + "is_secondary_glazing": True + } + ) + + partial_secondary_glazed_testing_data.append(secondary_glazing_simulation) From 61488b1aea337de171b43103ab2c1dbf0b38189e Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Mon, 12 Feb 2024 15:53:27 +0000 Subject: [PATCH 259/526] debugging simulation testing pipeline --- etl/testing_data/sap_model_simulation.py | 104 ++++++++++++++++++++--- 1 file changed, 92 insertions(+), 12 deletions(-) diff --git a/etl/testing_data/sap_model_simulation.py b/etl/testing_data/sap_model_simulation.py index 31cc21e7..e8b97464 100644 --- a/etl/testing_data/sap_model_simulation.py +++ b/etl/testing_data/sap_model_simulation.py @@ -1,12 +1,15 @@ +import json + import pandas as pd -from utils.s3 import read_dataframe_from_s3_parquet +from tqdm import tqdm +from utils.s3 import read_dataframe_from_s3_parquet, save_data_to_s3 from backend.Property import Property def app(): dataset = read_dataframe_from_s3_parquet( - bucket_name="retrofit-datalake-dev", - file_key="dataset_with0perm_all.parquet" + bucket_name="retrofit-data-dev", + file_key="sap_change_model/dataset.parquet" ) thresholds = dataset["total_floor_area_starting"].quantile( @@ -81,7 +84,9 @@ def app(): single_glazed_testing_data = [] partial_double_glazed_testing_data = [] partial_secondary_glazed_testing_data = [] - for property_config in property_types.itertuples(): + pitched_roof_solar = [] + flat_roof_solar = [] + for property_config in tqdm(property_types.itertuples(), total=property_types.shape[0]): # Take a sample row population = dataset[ (dataset["property_type"] == property_config.property_type) & @@ -101,13 +106,18 @@ def app(): row = population[ (population["roof_insulation_thickness"] == "none") & (population["is_pitched"]) - ].sample(1) + ] else: row = population[ (population["roof_insulation_thickness"] == insulation_thickness) & (population["is_pitched"]) - ].sample(1) + ] + + if row.empty: + continue + + row = row.sample(1) loft_insulation_270mm_simulation = Property.create_recommendation_scoring_data( property_id=row["uprn"].values[0], @@ -164,8 +174,8 @@ def app(): # Simulated IWI internal_wall_insulation_simulation = Property.create_recommendation_scoring_data( - property_id=row["uprn"].values[0].to_dict("records")[0], - recommendation_record=row.copy(), + property_id=row["uprn"].values[0], + recommendation_record=row.copy().to_dict("records")[0], recommendation={ "recommendation_id": "internal_wall_insulation", "type": "internal_wall_insulation", @@ -333,9 +343,14 @@ def app(): ) ] - for value in partial_double_glazing_sample["multi_glaze_proportion_starting"].quantile( + partial_double_glazed_values = partial_double_glazing_sample["multi_glaze_proportion_starting"].quantile( [0.25, 0.5, 0.75] - ).values: + ).values + # Take non-null values + partial_double_glazed_values = [v for v in partial_double_glazed_values if not pd.isnull(v)] + partial_double_glazed_values = set(partial_double_glazed_values) + + for value in partial_double_glazed_values: nearest_value = partial_double_glazing_sample['multi_glaze_proportion_starting'].sub(value).abs().idxmin() nearest_row = partial_double_glazing_sample.loc[[nearest_value]].sample(1) # If we start with partial double glazing, we recommend completing the job @@ -361,9 +376,14 @@ def app(): ) ] - for value in partial_secondary_glazing_sample["multi_glaze_proportion_starting"].quantile( + partial_secondary_glazed_values = partial_secondary_glazing_sample["multi_glaze_proportion_starting"].quantile( [0.25, 0.5, 0.75] - ).values: + ).values + # Take non-null values + partial_secondary_glazed_values = [v for v in partial_secondary_glazed_values if not pd.isnull(v)] + partial_secondary_glazed_values = set(partial_secondary_glazed_values) + + for value in partial_secondary_glazed_values: nearest_value = partial_secondary_glazing_sample['multi_glaze_proportion_starting'].sub( value).abs().idxmin() nearest_row = partial_secondary_glazing_sample.loc[[nearest_value]].sample(1) @@ -383,3 +403,63 @@ def app(): ) partial_secondary_glazed_testing_data.append(secondary_glazing_simulation) + + # 9) Solar PV + + # We only recommend solar for properties that have flat or pitched roofs, and no existing solar + pitched_roof_no_solar = population[ + (population["is_pitched"]) & (population["photo_supply_starting"] == 0) + ].sample(1) + + flat_roof_no_solar = population[ + (population["is_flat"]) & (population["photo_supply_starting"] == 0) + ].sample(1) + + # We simulate 30%, 40% and 50% coverage + for coverage in [30, 40, 50]: + solar_simulation_pitched = Property.create_recommendation_scoring_data( + property_id=pitched_roof_no_solar["uprn"].values[0], + recommendation_record=pitched_roof_no_solar.copy().to_dict("records")[0], + recommendation={ + "recommendation_id": "solar_pv", + "type": "solar_pv", + "new_u_value": None, # This doesn't matter at the moment + "parts": [], + "photo_supply": coverage + } + ) + + solar_simulation_flat = Property.create_recommendation_scoring_data( + property_id=flat_roof_no_solar["uprn"].values[0], + recommendation_record=flat_roof_no_solar.copy().to_dict("records")[0], + recommendation={ + "recommendation_id": "solar_pv", + "type": "solar_pv", + "new_u_value": None, # This doesn't matter at the moment + "parts": [], + "photo_supply": coverage + } + ) + + pitched_roof_solar.append(solar_simulation_pitched) + flat_roof_solar.append(solar_simulation_flat) + + # We store all of this data in s3, as it is + save_data_to_s3( + bucket_name="retrofit-datalake-dev", + s3_file_name="sap_change_model/loft_insulation_testing_data.parquet", + data=json.dumps( + { + "loft_insulation_testing_data": loft_insulation_testing_data, + "solid_wall_testing_data": solid_wall_testing_data, + "cavity_wall_testing_data": cavity_wall_testing_data, + "solid_floor_testing_data": solid_floor_testing_data, + "suspended_floor_testing_data": suspended_floor_testing_data, + "single_glazed_testing_data": single_glazed_testing_data, + "partial_double_glazed_testing_data": partial_double_glazed_testing_data, + "partial_secondary_glazed_testing_data": partial_secondary_glazed_testing_data, + "pitched_roof_solar": pitched_roof_solar, + "flat_roof_solar": flat_roof_solar + } + ) + ) From 7c109ebf5d2ad3004e5c1615edb4337e99b45d51 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Mon, 12 Feb 2024 16:03:51 +0000 Subject: [PATCH 260/526] handling empty data cases in testing piipeline --- etl/testing_data/sap_model_simulation.py | 81 +++++++++++++----------- 1 file changed, 45 insertions(+), 36 deletions(-) diff --git a/etl/testing_data/sap_model_simulation.py b/etl/testing_data/sap_model_simulation.py index e8b97464..6ff89691 100644 --- a/etl/testing_data/sap_model_simulation.py +++ b/etl/testing_data/sap_model_simulation.py @@ -232,10 +232,13 @@ def app(): population["is_solid"] & (population["floor_insulation_thickness"] == "none") ] + solid_floor_uvalues = solid_floor_sample["floor_thermal_transmittance"].quantile([0.25, 0.5, 0.75]).values + solid_floor_uvalues = {v for v in solid_floor_uvalues if not pd.isnull(v)} + # We have many different values of u-value for solid floors, we we'll take a sample at the 25%, 50% and 75% # values # We must take a value that is in one of the unique values for floor_thermal_transmittance - for uvalue in solid_floor_sample["floor_thermal_transmittance"].quantile([0.25, 0.5, 0.75]).values: + for uvalue in solid_floor_uvalues: nearest_value = solid_floor_sample['floor_thermal_transmittance'].sub(uvalue).abs().idxmin() nearest_row = solid_floor_sample.loc[[nearest_value]].sample(1) @@ -258,8 +261,13 @@ def app(): population["is_suspended"] & (population["floor_insulation_thickness"] == "none") ] + suspended_floor_uvalues = suspended_floor_sample["floor_thermal_transmittance"].quantile( + [0.25, 0.5, 0.75] + ).values + suspended_floor_uvalues = {v for v in suspended_floor_uvalues if not pd.isnull(v)} + # We take the same approach as for solid floors - for uvalue in suspended_floor_sample["floor_thermal_transmittance"].quantile([0.25, 0.5, 0.75]).values: + for uvalue in suspended_floor_uvalues: nearest_value = suspended_floor_sample['floor_thermal_transmittance'].sub(uvalue).abs().idxmin() nearest_row = suspended_floor_sample.loc[[nearest_value]].sample(1) @@ -282,14 +290,7 @@ def app(): (population["glazing_type"] == "single") ] - # We take multiple values for multi_glaze_proportion_starting. We definitely need zero, but then we also - # take the 25%, 50% and 75% values - multi_glaze_values = [0] + list( - single_glazing_sample["multi_glaze_proportion_starting"].quantile([0.25, 0.5, 0.75]).values - ) - multi_glaze_values = set(multi_glaze_values) - - for value in multi_glaze_values: + if not single_glazing_sample.empty: row = single_glazing_sample[ single_glazing_sample["multi_glaze_proportion_starting"] == value ].sample(1) @@ -409,40 +410,48 @@ def app(): # We only recommend solar for properties that have flat or pitched roofs, and no existing solar pitched_roof_no_solar = population[ (population["is_pitched"]) & (population["photo_supply_starting"] == 0) - ].sample(1) + ] + + if not pitched_roof_no_solar.empty: + pitched_roof_no_solar = pitched_roof_no_solar.sample(1) flat_roof_no_solar = population[ (population["is_flat"]) & (population["photo_supply_starting"] == 0) - ].sample(1) + ] + + if not flat_roof_no_solar.empty: + flat_roof_no_solar = flat_roof_no_solar.sample(1) # We simulate 30%, 40% and 50% coverage for coverage in [30, 40, 50]: - solar_simulation_pitched = Property.create_recommendation_scoring_data( - property_id=pitched_roof_no_solar["uprn"].values[0], - recommendation_record=pitched_roof_no_solar.copy().to_dict("records")[0], - recommendation={ - "recommendation_id": "solar_pv", - "type": "solar_pv", - "new_u_value": None, # This doesn't matter at the moment - "parts": [], - "photo_supply": coverage - } - ) - solar_simulation_flat = Property.create_recommendation_scoring_data( - property_id=flat_roof_no_solar["uprn"].values[0], - recommendation_record=flat_roof_no_solar.copy().to_dict("records")[0], - recommendation={ - "recommendation_id": "solar_pv", - "type": "solar_pv", - "new_u_value": None, # This doesn't matter at the moment - "parts": [], - "photo_supply": coverage - } - ) + if not pitched_roof_no_solar.empty: + solar_simulation_pitched = Property.create_recommendation_scoring_data( + property_id=pitched_roof_no_solar["uprn"].values[0], + recommendation_record=pitched_roof_no_solar.copy().to_dict("records")[0], + recommendation={ + "recommendation_id": "solar_pv", + "type": "solar_pv", + "new_u_value": None, # This doesn't matter at the moment + "parts": [], + "photo_supply": coverage + } + ) + pitched_roof_solar.append(solar_simulation_pitched) - pitched_roof_solar.append(solar_simulation_pitched) - flat_roof_solar.append(solar_simulation_flat) + if not flat_roof_no_solar.empty: + solar_simulation_flat = Property.create_recommendation_scoring_data( + property_id=flat_roof_no_solar["uprn"].values[0], + recommendation_record=flat_roof_no_solar.copy().to_dict("records")[0], + recommendation={ + "recommendation_id": "solar_pv", + "type": "solar_pv", + "new_u_value": None, # This doesn't matter at the moment + "parts": [], + "photo_supply": coverage + } + ) + flat_roof_solar.append(solar_simulation_flat) # We store all of this data in s3, as it is save_data_to_s3( From 1028861a1b0f8e9bb4a117335150923d6101f222 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Mon, 12 Feb 2024 16:54:16 +0000 Subject: [PATCH 261/526] implementing the scoring process into testing pipeline --- etl/testing_data/sap_model_simulation.py | 82 +++++++++++++++++++++--- 1 file changed, 73 insertions(+), 9 deletions(-) diff --git a/etl/testing_data/sap_model_simulation.py b/etl/testing_data/sap_model_simulation.py index 6ff89691..0434ffd5 100644 --- a/etl/testing_data/sap_model_simulation.py +++ b/etl/testing_data/sap_model_simulation.py @@ -2,9 +2,12 @@ import json import pandas as pd from tqdm import tqdm -from utils.s3 import read_dataframe_from_s3_parquet, save_data_to_s3 +from utils.s3 import read_dataframe_from_s3_parquet, save_data_to_s3, save_dataframe_to_s3_parquet from backend.Property import Property +# This is the github pr number +MODEL_VERSION = "100" + def app(): dataset = read_dataframe_from_s3_parquet( @@ -76,6 +79,20 @@ def app(): ~dataset["internal_insulation"]) ]["walls_thermal_transmittance"].min() + ending_colums = [col for col in dataset.columns if col.endswith("_ending")] + # For the purpose of scoring, we want to simulate JUST the impact of the measure we're testing. We therefore + # need to make sure that every "_ending" column is equal to its starting value + column_config = {} + for ending_col in ending_colums: + base_col = ending_col.replace("_ending", "") + # We check if the starting column ends with _starting or is just the base col + if base_col + "_starting" in dataset.columns: + column_config[ending_col] = base_col + "_starting" + elif base_col in dataset.columns: + column_config[ending_col] = base_col + else: + raise ValueError("something went wrong") + loft_insulation_testing_data = [] solid_wall_testing_data = [] cavity_wall_testing_data = [] @@ -93,7 +110,11 @@ def app(): (dataset["built_form"] == property_config.built_form) & (dataset["floor_area_quantile"] == property_config.floor_area_quantile) & (dataset["construction_age_band"] == property_config.construction_age_band) - ] + ].copy() + + # Re-set all of the ending columns + for col in ending_colums: + population[col] = population[column_config[col]] # 1) Loft insulation @@ -185,9 +206,9 @@ def app(): ) # Simulated EWI - best_external_wall_uvalue_wall_insulation_simulation = Property.create_recommendation_scoring_data( + external_wall_insulation_simulation = Property.create_recommendation_scoring_data( property_id=row["uprn"].values[0], - recommendation_record=row.copy(), + recommendation_record=row.copy().to_dict("records")[0], recommendation={ "recommendation_id": "external_wall_insulation", "type": "external_wall_insulation", @@ -198,7 +219,7 @@ def app(): # The iww/ewi simulations will be next to each other, so we can see how they differ for the same property solid_wall_testing_data.append(internal_wall_insulation_simulation) - solid_wall_testing_data.append(best_external_wall_uvalue_wall_insulation_simulation) + solid_wall_testing_data.append(external_wall_insulation_simulation) # 3) Cavity wall insulation cavity_wall_sample = population[ @@ -291,9 +312,7 @@ def app(): ] if not single_glazing_sample.empty: - row = single_glazing_sample[ - single_glazing_sample["multi_glaze_proportion_starting"] == value - ].sample(1) + row = single_glazing_sample.sample(1) # For single glazed windows, we can recommend double glazing or secondary glazing @@ -456,7 +475,7 @@ def app(): # We store all of this data in s3, as it is save_data_to_s3( bucket_name="retrofit-datalake-dev", - s3_file_name="sap_change_model/loft_insulation_testing_data.parquet", + s3_file_name="sap_change_model/simulation-pipeline-data.json", data=json.dumps( { "loft_insulation_testing_data": loft_insulation_testing_data, @@ -472,3 +491,48 @@ def app(): } ) ) + + # For each simulation type, we score against the model + from backend.ml_models.api import ModelApi + from datetime import datetime + + created_at = datetime.now().isoformat() + model_api = ModelApi(portfolio_id="simulation-testing-pipeline", timestamp=created_at) + model_api.MODEL_PREFIXES = ["sap_change_predictions"] + + # 1) Loft insulation + # We chunk up the data into 200 rows + loft_insulation_testing_df = pd.DataFrame(loft_insulation_testing_data) + + loft_insulation_predictions = [] + loft_to_loop_over = range(0, loft_insulation_testing_df.shape[0], 200) + for chunk in tqdm(loft_to_loop_over, total=len(loft_to_loop_over)): + loft_insulation_predictions_dict = model_api.predict_all( + df=loft_insulation_testing_df.iloc[chunk:chunk + 200], + bucket="retrofit-data-dev", + prediction_buckets={ + "sap_change_predictions": "retrofit-sap-predictions-dev", + } + ) + + loft_insulation_predictions.append(loft_insulation_predictions_dict["sap_change_predictions"]) + + loft_insulation_predictions = pd.concat(loft_insulation_predictions) + # Store final parquet in s3 + save_dataframe_to_s3_parquet( + df=loft_insulation_predictions, + bucket_name="retrofit-data-dev", + file_key=f"sap_change_model/simulation-pipeline-loft-insulation-predictions_{MODEL_VERSION}.parquet" + ) + + # We now merge the loft insulation predictions onto the scoring data and calculate exactly how much the insulation + # is worth + + loft_insulation_comparison_df = loft_insulation_testing_df[ + ["simulation_ending_insulation_thickness", "simulation_starting_insulation_thickness", "uprn", "id", ""] + ].merge( + loft_insulation_predictions, + left_on="id", + right_on="id", + how="left" + ) From bd0fb8c2c17aa4b0572bf38d1c328bf156ed63cc Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Mon, 12 Feb 2024 18:11:31 +0000 Subject: [PATCH 262/526] adding unique ids and config hash to prevent duplications --- etl/testing_data/sap_model_simulation.py | 62 +++++++++++++++++------- 1 file changed, 45 insertions(+), 17 deletions(-) diff --git a/etl/testing_data/sap_model_simulation.py b/etl/testing_data/sap_model_simulation.py index 0434ffd5..0a044201 100644 --- a/etl/testing_data/sap_model_simulation.py +++ b/etl/testing_data/sap_model_simulation.py @@ -104,6 +104,9 @@ def app(): pitched_roof_solar = [] flat_roof_solar = [] for property_config in tqdm(property_types.itertuples(), total=property_types.shape[0]): + + config_hash = hash(str(property_config)) + # Take a sample row population = dataset[ (dataset["property_type"] == property_config.property_type) & @@ -144,7 +147,7 @@ def app(): property_id=row["uprn"].values[0], recommendation_record=row.copy().to_dict("records")[0], recommendation={ - "recommendation_id": "loft_insulation_270mm", + "recommendation_id": f"loft_insulation_{insulation_thickness}_270mm_{config_hash}", "type": "loft_insulation", "new_u_value": best_270mm_uvalue, "parts": [ @@ -157,7 +160,7 @@ def app(): property_id=row["uprn"].values[0], recommendation_record=row.copy().to_dict("records")[0], recommendation={ - "recommendation_id": "loft_insulation_300mm", + "recommendation_id": f"loft_insulation_{insulation_thickness}_300mm_{config_hash}", "type": "loft_insulation", "new_u_value": best_300mm_uvalue, "parts": [ @@ -198,7 +201,7 @@ def app(): property_id=row["uprn"].values[0], recommendation_record=row.copy().to_dict("records")[0], recommendation={ - "recommendation_id": "internal_wall_insulation", + "recommendation_id": f"internal_wall_insulation_uvalue_{uvalue}_{config_hash}", "type": "internal_wall_insulation", "new_u_value": best_internal_wall_uvalue, "parts": [] @@ -210,7 +213,7 @@ def app(): property_id=row["uprn"].values[0], recommendation_record=row.copy().to_dict("records")[0], recommendation={ - "recommendation_id": "external_wall_insulation", + "recommendation_id": f"external_wall_insulation_uvalue_{uvalue}_{config_hash}", "type": "external_wall_insulation", "new_u_value": best_external_wall_uvalue, "parts": [] @@ -239,7 +242,7 @@ def app(): property_id=row["uprn"].values[0], recommendation_record=row.copy().to_dict("records")[0], recommendation={ - "recommendation_id": "cavity_wall_insulation", + "recommendation_id": f"cavity_wall_insulation_uvalue_{uvalue}_{config_hash}", "type": "cavity_wall_insulation", "new_u_value": best_cavity_wall_uvalue, "parts": [] @@ -268,7 +271,7 @@ def app(): property_id=nearest_row["uprn"].values[0], recommendation_record=nearest_row.copy().to_dict("records")[0], recommendation={ - "recommendation_id": "solid_floor_insulation", + "recommendation_id": f"solid_floor_insulation_uvalue_{uvalue}_{config_hash}", "type": "solid_floor_insulation", "new_u_value": None, # This doesn't matter at the moment "parts": [] @@ -297,7 +300,7 @@ def app(): property_id=nearest_row["uprn"].values[0], recommendation_record=nearest_row.copy().to_dict("records")[0], recommendation={ - "recommendation_id": "suspended_floor_insulation", + "recommendation_id": f"suspended_floor_insulation_uvalue_{uvalue}_{config_hash}", "type": "suspended_floor_insulation", "new_u_value": None, # This doesn't matter at the moment "parts": [] @@ -321,7 +324,7 @@ def app(): property_id=row["uprn"].values[0], recommendation_record=row.copy().to_dict("records")[0], recommendation={ - "recommendation_id": "windows_glazing", + "recommendation_id": f"windows_glazing_single_to_double_{config_hash}", "type": "windows_glazing", "new_u_value": None, # This doesn't matter at the moment "parts": [], @@ -334,7 +337,7 @@ def app(): property_id=row["uprn"].values[0], recommendation_record=row.copy().to_dict("records")[0], recommendation={ - "recommendation_id": "windows_glazing", + "recommendation_id": f"windows_glazing_single_to_secondary_{config_hash}", "type": "windows_glazing", "new_u_value": None, # This doesn't matter at the moment "parts": [], @@ -379,7 +382,7 @@ def app(): property_id=nearest_row["uprn"].values[0], recommendation_record=nearest_row.copy().to_dict("records")[0], recommendation={ - "recommendation_id": "windows_glazing", + "recommendation_id": f"windows_glazing_partial_double_to_double_{value}_{config_hash}", "type": "windows_glazing", "new_u_value": None, # This doesn't matter at the moment "parts": [], @@ -414,7 +417,7 @@ def app(): property_id=nearest_row["uprn"].values[0], recommendation_record=nearest_row.copy().to_dict("records")[0], recommendation={ - "recommendation_id": "windows_glazing", + "recommendation_id": f"windows_glazing_partial_secondary_to_secondary_{value}_{config_hash}", "type": "windows_glazing", "new_u_value": None, # This doesn't matter at the moment "parts": [], @@ -449,7 +452,7 @@ def app(): property_id=pitched_roof_no_solar["uprn"].values[0], recommendation_record=pitched_roof_no_solar.copy().to_dict("records")[0], recommendation={ - "recommendation_id": "solar_pv", + "recommendation_id": f"pitched_solar_pv_coverage_{coverage}_percent_{config_hash}", "type": "solar_pv", "new_u_value": None, # This doesn't matter at the moment "parts": [], @@ -463,7 +466,7 @@ def app(): property_id=flat_roof_no_solar["uprn"].values[0], recommendation_record=flat_roof_no_solar.copy().to_dict("records")[0], recommendation={ - "recommendation_id": "solar_pv", + "recommendation_id": f"flat_solar_pv_coverage_{coverage}_percent_{config_hash}", "type": "solar_pv", "new_u_value": None, # This doesn't matter at the moment "parts": [], @@ -521,18 +524,43 @@ def app(): # Store final parquet in s3 save_dataframe_to_s3_parquet( df=loft_insulation_predictions, - bucket_name="retrofit-data-dev", + bucket_name="retrofit-datalake-dev", file_key=f"sap_change_model/simulation-pipeline-loft-insulation-predictions_{MODEL_VERSION}.parquet" ) # We now merge the loft insulation predictions onto the scoring data and calculate exactly how much the insulation # is worth - loft_insulation_comparison_df = loft_insulation_testing_df[ - ["simulation_ending_insulation_thickness", "simulation_starting_insulation_thickness", "uprn", "id", ""] + loft_insulation_comparison_matrix = loft_insulation_testing_df[ + ["simulation_starting_insulation_thickness", "simulation_ending_insulation_thickness", "uprn", "id", + "sap_starting"] ].merge( - loft_insulation_predictions, + loft_insulation_predictions.drop(columns=["recommendation_id"]), left_on="id", right_on="id", how="left" ) + + loft_insulation_comparison_matrix["measure_impact"] = loft_insulation_comparison_matrix["predictions"] - \ + loft_insulation_comparison_matrix["sap_starting"] + # Perform a group by describe + loft_insulation_describe = loft_insulation_comparison_matrix.groupby( + ["simulation_starting_insulation_thickness", "simulation_ending_insulation_thickness"] + )[["measure_impact"]].describe().reset_index() + + z = loft_insulation_comparison_matrix[loft_insulation_comparison_matrix["measure_impact"] < 0] + z.head(1)[["uprn", "id"]] + error_row = loft_insulation_testing_df[ + (loft_insulation_testing_df["id"] == "100090292333+loft_insulation_150_270mm") + ] + + error_dataset = dataset[ + (dataset["uprn"] == "10070401239") & (dataset["roof_insulation_thickness"] == "250") + ] + + changed_from_dataset = [] + for c in column_config: + ending_value = error_row[column_config[c]].values[0] + starting_value = error_row[column_config[c]].values[0] + error_dataset["roof_insulation_thickness"] + error_dataset["roof_insulation_thickness_ending"] From 7a219285fc192145aedb337c54803fa4f442a142 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Mon, 12 Feb 2024 19:16:10 +0000 Subject: [PATCH 263/526] looking into loft insulation data --- etl/testing_data/sap_model_simulation.py | 116 ++++++++++++++++++++--- 1 file changed, 102 insertions(+), 14 deletions(-) diff --git a/etl/testing_data/sap_model_simulation.py b/etl/testing_data/sap_model_simulation.py index 0a044201..467b50db 100644 --- a/etl/testing_data/sap_model_simulation.py +++ b/etl/testing_data/sap_model_simulation.py @@ -543,24 +543,112 @@ def app(): loft_insulation_comparison_matrix["measure_impact"] = loft_insulation_comparison_matrix["predictions"] - \ loft_insulation_comparison_matrix["sap_starting"] + + # We create a sap band grouping, for every 10 points of sap. So 1-10, 11-20, 21-30 etc + loft_insulation_comparison_matrix["sap_band"] = pd.cut( + loft_insulation_comparison_matrix["sap_starting"], + bins=range(0, 101, 10), + labels=range(1, 11) + ) + # Perform a group by describe loft_insulation_describe = loft_insulation_comparison_matrix.groupby( - ["simulation_starting_insulation_thickness", "simulation_ending_insulation_thickness"] + ["sap_band", "simulation_starting_insulation_thickness", "simulation_ending_insulation_thickness"] )[["measure_impact"]].describe().reset_index() - z = loft_insulation_comparison_matrix[loft_insulation_comparison_matrix["measure_impact"] < 0] - z.head(1)[["uprn", "id"]] - error_row = loft_insulation_testing_df[ - (loft_insulation_testing_df["id"] == "100090292333+loft_insulation_150_270mm") - ] + for col in ["simulation_starting_insulation_thickness", "simulation_ending_insulation_thickness"]: + loft_insulation_describe[col] = loft_insulation_describe[col].str.replace('none', "0") + loft_insulation_describe[col] = loft_insulation_describe[col].astype(int) - error_dataset = dataset[ - (dataset["uprn"] == "10070401239") & (dataset["roof_insulation_thickness"] == "250") + loft_insulation_describe = loft_insulation_describe.sort_values( + ["simulation_ending_insulation_thickness", "simulation_starting_insulation_thickness"], ascending=True + ) + + # In the training data, try and get just the rows that are loft insulation only + # Things that change: + # 1) roof_insulation_thickness + # 3) roof_thermal_transmittance + # 4) roof_energy_eff_ending + loft_insulation_training_data = dataset.copy() + loft_insulation_columns_we_need_the_same = [c for c in column_config.keys() if c not in [ + "roof_insulation_thickness_ending", "roof_thermal_transmittance_ending", "roof_energy_eff_ending", + "transaction_type_ending", "days_to_ending", "sap_ending", "heat_demand_ending", "carbon_ending", + "total_floor_area_ending", "floor_height_ending", "estimated_perimeter_ending" + ]] + + for ending_col in tqdm(loft_insulation_columns_we_need_the_same): + starting_col = column_config[ending_col] + loft_insulation_training_data = loft_insulation_training_data[ + loft_insulation_training_data[ending_col] == loft_insulation_training_data[starting_col] + ] + + # We get rows where the insulation starts at 200mm + insulation_200mm_starting = loft_insulation_training_data[ + (loft_insulation_training_data["roof_insulation_thickness"] == "200") & + (loft_insulation_training_data["roof_insulation_thickness_ending"] == "300") ] - changed_from_dataset = [] - for c in column_config: - ending_value = error_row[column_config[c]].values[0] - starting_value = error_row[column_config[c]].values[0] - error_dataset["roof_insulation_thickness"] - error_dataset["roof_insulation_thickness_ending"] + # Let's use the API to find exactly the record + from backend.SearchEpc import SearchEpc + searcher = SearchEpc( + address1="2 Darkfield Way", + postcode="TA7 8HY", + auth_token="a2Nvbm5rb3dsZXNzYXJAZ21haWwuY29tOjY5MGJiMWM0NmIyOGI5ZDUxYzAxMzQzYzNiZGNlZGJjZDNmODQwMzA=", + os_api_key="" + ) + searcher.uprn = "10009320092" + searcher.find_property(skip_os=True) + + newest_epc = searcher.newest_epc + older_epc = [epc for epc in searcher.older_epcs if + epc["lmk-key"] == "5ae2f073004839510f9eeb1886160776a05697f8518b8b3b63d45f65686c4757"][0] + # Iterate through the keys in the newest_epc and find the values in older epc that are different to the newest epc + + differences = {} + for k, v in newest_epc.items(): + if v != older_epc[k]: + differences[k] = (v, older_epc[k]) + + testing_model_api = ModelApi(portfolio_id="simulation-testing-loft-example", timestamp=created_at) + testing_model_api.MODEL_PREFIXES = ["sap_change_predictions"] + + ############################################################################################################ + # TODO:! + # Findings: 1) For uprn 10009320092, the number of rooms and number of heated rooms has changed and can change from + # epc to epc. We should therefore include a starting and ending value for this + + # Investigation 1) + testing_row = insulation_200mm_starting[insulation_200mm_starting["uprn"] == "10009320092"].copy() + testing_row["id"] = "testing-200mm-loft-insulation-starting-baseline+recommendation_id_baseline" + testing_row["recommendation_id"] = "recommendation_id_baseline" + # The testing row has 4 rooms + # Score in the model to see what we get + + baseline_prediction = testing_model_api.predict_all( + df=testing_row, + bucket="retrofit-data-dev", + prediction_buckets={ + "sap_change_predictions": "retrofit-sap-predictions-dev", + } + ) + + baseline_pred_df = baseline_prediction["sap_change_predictions"] + impact = baseline_pred_df["predictions"].values[0] - testing_row["sap_starting"].values[0] + + # Changing this from 4 rooms to 5 rooms has NO impact!! + testing_row_5_rooms = testing_row.copy() + testing_row_5_rooms["id"] = "testing-200mm-loft-insulation-starting-baseline+recommendation_id_5_rooms" + testing_row_5_rooms["recommendation_id"] = "recommendation_id_5_rooms" + testing_row_5_rooms["number_habitable_rooms"] = float(5) + testing_row_5_rooms["number_heated_rooms"] = float(5) + + prediction_5_rooms = testing_model_api.predict_all( + df=testing_row_5_rooms, + bucket="retrofit-data-dev", + prediction_buckets={ + "sap_change_predictions": "retrofit-sap-predictions-dev", + } + ) + + pred_df_5_rooms = prediction_5_rooms["sap_change_predictions"] + impact_5_rooms = pred_df_5_rooms["predictions"].values[0] - testing_row_5_rooms["sap_starting"].values[0] From ec80473f3e4af72bbab1621e58fc112bb018fe6f Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Wed, 14 Feb 2024 11:06:10 +0000 Subject: [PATCH 264/526] implemented further scenarios into solar recommendations --- backend/Property.py | 21 +- backend/ml_models/Valuation.py | 9 +- etl/testing_data/sap_model_simulation.py | 1514 ++++++++++++++++++++- recommendations/Costs.py | 14 +- recommendations/Recommendations.py | 3 + recommendations/SolarPvRecommendations.py | 55 +- 6 files changed, 1586 insertions(+), 30 deletions(-) diff --git a/backend/Property.py b/backend/Property.py index d1f5a1e2..e57d8326 100644 --- a/backend/Property.py +++ b/backend/Property.py @@ -118,7 +118,6 @@ class Property: self.number_lighting_outlets = epc_record.prepared_epc.get("fixed_lighting_outlets_count") self.floor_level = None self.number_of_windows = None - self.solar_pv_roof_area = None self.solar_pv_percentage = None self.current_adjusted_energy = None @@ -185,6 +184,8 @@ class Property: recommendation_record["walls_insulation_thickness_ending"] = "above average" recommendation_record["walls_energy_eff_ending"] = "Good" + # Note: often when the wall is insulatied, the internal/external insulation is not noted so we should + # test the impact of using these booleans if recommendation["type"] == "external_wall_insulation": recommendation_record["external_insulation"] = True recommendation_record["internal_insulation"] = False @@ -238,7 +239,10 @@ class Property: recommendation_record["roof_insulation_thickness_ending"] = str(proposed_depth) if recommendation["type"] == "loft_insulation": - recommendation_record["roof_energy_eff_ending"] = "Good" + if proposed_depth >= 270: + recommendation_record["roof_energy_eff_ending"] = "Very Good" + else: + recommendation_record["roof_energy_eff_ending"] = "Good" else: recommendation_record["roof_energy_eff_ending"] = "Very Good" else: @@ -682,9 +686,16 @@ class Property: percentage_of_roof = photo_supply_matched["photo_supply_median"].mean() percentage_of_roof = percentage_of_roof / 100 - self.solar_pv_roof_area = ( + self.solar_pv_percentage = percentage_of_roof + + def get_solar_pv_roof_area(self, percentage_of_roof): + """ + Given a percentage of the roof, this method will return the estimated area of the solar panels + :param percentage_of_roof: + :return: + """ + + return ( self.insulation_floor_area * percentage_of_roof if self.roof["is_flat"] else self.pitched_roof_area * percentage_of_roof ) - - self.solar_pv_percentage = percentage_of_roof diff --git a/backend/ml_models/Valuation.py b/backend/ml_models/Valuation.py index ff771252..83c20bb4 100644 --- a/backend/ml_models/Valuation.py +++ b/backend/ml_models/Valuation.py @@ -51,13 +51,14 @@ class PropertyValuation: KNIGHT_FRANK_MAPPING = [ {"start": "D", "end": "C", "increase_percentage": 0.03}, {"start": "D", "end": "B", "increase_percentage": 0.088}, + {"start": "D", "end": "A", "increase_percentage": 0.088}, ] NATIONWIDE_MAPPING = [ - {"start": "G", "end": "D", "increase_percentage": 0.035}, - {"start": "F", "end": "D", "increase_percentage": 0.035}, - {"start": "D", "end": "B", "increase_percentage": 0.017}, - {"start": "D", "end": "A", "increase_percentage": 0.017}, + # {"start": "G", "end": "D", "increase_percentage": 0.035}, + # {"start": "F", "end": "D", "increase_percentage": 0.035}, + # {"start": "D", "end": "B", "increase_percentage": 0.017}, + # {"start": "D", "end": "A", "increase_percentage": 0.017}, ] EPC_BANDS = ["G", "F", "E", "D", "C", "B", "A"] diff --git a/etl/testing_data/sap_model_simulation.py b/etl/testing_data/sap_model_simulation.py index 467b50db..726c2428 100644 --- a/etl/testing_data/sap_model_simulation.py +++ b/etl/testing_data/sap_model_simulation.py @@ -6,7 +6,7 @@ from utils.s3 import read_dataframe_from_s3_parquet, save_data_to_s3, save_dataf from backend.Property import Property # This is the github pr number -MODEL_VERSION = "100" +MODEL_VERSION = "101" def app(): @@ -590,6 +590,22 @@ def app(): # Let's use the API to find exactly the record from backend.SearchEpc import SearchEpc + + testing_model_api = ModelApi(portfolio_id="simulation-testing-loft-example", timestamp=created_at) + testing_model_api.MODEL_PREFIXES = ["sap_change_predictions"] + + ############################################################################################################ + # TODO:! + # Findings: + # 1) For uprn 10009320092, the number of rooms and number of heated rooms has changed and can change from + # epc to epc. We should therefore include a starting and ending value for this + # 2) Maybe we should include tenure??? Owner occupied homes are going to be a lot more unusual. Both investigation + # 2 and 3 were owner occupied + # 3) Maybe we should treat photo_supply missing differently than 0? + + ################################################################################################ + # Investigation 1) + searcher = SearchEpc( address1="2 Darkfield Way", postcode="TA7 8HY", @@ -609,15 +625,6 @@ def app(): if v != older_epc[k]: differences[k] = (v, older_epc[k]) - testing_model_api = ModelApi(portfolio_id="simulation-testing-loft-example", timestamp=created_at) - testing_model_api.MODEL_PREFIXES = ["sap_change_predictions"] - - ############################################################################################################ - # TODO:! - # Findings: 1) For uprn 10009320092, the number of rooms and number of heated rooms has changed and can change from - # epc to epc. We should therefore include a starting and ending value for this - - # Investigation 1) testing_row = insulation_200mm_starting[insulation_200mm_starting["uprn"] == "10009320092"].copy() testing_row["id"] = "testing-200mm-loft-insulation-starting-baseline+recommendation_id_baseline" testing_row["recommendation_id"] = "recommendation_id_baseline" @@ -652,3 +659,1490 @@ def app(): pred_df_5_rooms = prediction_5_rooms["sap_change_predictions"] impact_5_rooms = pred_df_5_rooms["predictions"].values[0] - testing_row_5_rooms["sap_starting"].values[0] + + ################################################################################################ + # Investigation 2 + + searcher = SearchEpc( + address1="19 Rossal Place", + postcode="MK12 6JE", + auth_token="a2Nvbm5rb3dsZXNzYXJAZ21haWwuY29tOjY5MGJiMWM0NmIyOGI5ZDUxYzAxMzQzYzNiZGNlZGJjZDNmODQwMzA=", + os_api_key="" + ) + searcher.uprn = "25006966" + searcher.find_property(skip_os=True) + + newest_epc = searcher.newest_epc + older_epc = [epc for epc in searcher.older_epcs if + epc["lmk-key"] == "fe23917ac59fbf3a608c76431941011ab4c7938546a432fc6212182caab31d73"][0] + # Iterate through the keys in the newest_epc and find the values in older epc that are different to the newest epc + + differences = {} + for k, v in newest_epc.items(): + if v != older_epc[k]: + differences[k] = (v, older_epc[k]) + + testing_row2 = insulation_200mm_starting[insulation_200mm_starting["uprn"] == "25006966"].copy() + # THERE IS NOTHING CLEAR THAT IS CHANGING IN THIS RECORD THAT INDICATES SUGGESTS WE'RE MISSING INFORMATION + + ################################################################################################ + # Investigation 3 + + insulation_200mm_starting[ + insulation_200mm_starting["rdsap_change"] == insulation_200mm_starting["rdsap_change"].max() + ]["uprn"].values[0] + # This UPRN: 100060350521 + + searcher = SearchEpc( + address1="138 Nicholas Crescent", + postcode="PO15 5AN", + auth_token="a2Nvbm5rb3dsZXNzYXJAZ21haWwuY29tOjY5MGJiMWM0NmIyOGI5ZDUxYzAxMzQzYzNiZGNlZGJjZDNmODQwMzA=", + os_api_key="" + ) + searcher.uprn = "100060350521" + searcher.find_property(skip_os=True) + + newest_epc = searcher.newest_epc + older_epc = [epc for epc in searcher.older_epcs if + epc["lmk-key"] == "9c4059762189b451191c98d2ef980a5364b8b7e0be3f064f681abcd4a0da681b"][0] + # Iterate through the keys in the newest_epc and find the values in older epc that are different to the newest epc + + differences = {} + for k, v in newest_epc.items(): + if v != older_epc[k]: + differences[k] = (v, older_epc[k]) + + # Nothing looks amiss about this record - let's score it in the model + testing_row_3 = insulation_200mm_starting[insulation_200mm_starting["uprn"] == "100060350521"].copy() + + testing_row_3["id"] = "testing-200mm-loft-insulation-starting-baseline+recommendation_id_baseline" + testing_row_3["recommendation_id"] = "recommendation_id_baseline" + # The testing row has 4 rooms + # Score in the model to see what we get + + baseline_prediction3 = testing_model_api.predict_all( + df=testing_row_3, + bucket="retrofit-data-dev", + prediction_buckets={ + "sap_change_predictions": "retrofit-sap-predictions-dev", + } + ) + + baseline_pred_df3 = baseline_prediction3["sap_change_predictions"] + impact3 = baseline_pred_df3["predictions"].values[0] - testing_row_3["sap_starting"].values[0] + + # TODO: Look at some of the example properties we have, and test using the model to score the impact of the + # different measures when multiple measures are scored together e.g. cavity + loft together vs individually + + # Look at performance on loft only rows + loft_insulation_training_data["id"] = (loft_insulation_training_data["uprn"] + + "_loft_insulation + recommendation_id_placeholder") + + loft_only_predictions = [] + loft_to_loop_over = range(0, loft_insulation_training_data.shape[0], 400) + for chunk in tqdm(loft_to_loop_over, total=len(loft_to_loop_over)): + loft_insulation_predictions_dict = model_api.predict_all( + df=loft_insulation_training_data.iloc[chunk:chunk + 400], + bucket="retrofit-data-dev", + prediction_buckets={ + "sap_change_predictions": "retrofit-sap-predictions-dev", + } + ) + + loft_only_predictions.append(loft_insulation_predictions_dict["sap_change_predictions"]) + + loft_only_predictions = pd.concat(loft_only_predictions) + + def calculate_mape(actuals, predictions): + """ + Calculate the Mean Absolute Percentage Error (MAPE). + + Parameters: + - actuals: A list or array of actual values. + - predictions: A list or array of predicted values, corresponding to actuals. + + Returns: + - mape: The MAPE score as a float. + + Note: This function assumes actuals and predictions are of the same length and + does not contain zeros in the actuals (to avoid division by zero). + """ + # Convert inputs to numpy arrays for vectorized operations + import numpy as np + actuals = np.array(actuals) + predictions = np.array(predictions) + + # Calculate the absolute percentage errors + ape = np.abs((actuals - predictions) / actuals) * 100 + + # Calculate the mean of these percentage errors + mape = np.mean(ape) + + return mape + + calculate_mape(actuals=loft_insulation_training_data["sap_ending"], + predictions=loft_only_predictions["predictions"]) + + comparison_df = pd.DataFrame( + { + "sap_starting": loft_insulation_training_data["sap_starting"].values, + "actual_sap_ending": loft_insulation_training_data["sap_ending"].values, + "predicted_sap_ending": loft_only_predictions["predictions"].values + } + ) + + comparison_df["residual"] = abs(comparison_df["actual_sap_ending"] - comparison_df["predicted_sap_ending"]) + comparison_df["residual"].describe() + + comparison_df[comparison_df["residual"] == comparison_df["residual"].max()] + + # TODO: Test scoring separately vs combined + from etl.epc.Record import EPCRecord + from etl.solar.SolarPhotoSupply import SolarPhotoSupply + from utils.s3 import read_from_s3 + import msgpack + from recommendations.Recommendations import Recommendations + import datetime + from numpy import nan + cleaning_data = read_dataframe_from_s3_parquet( + bucket_name="retrofit-data-dev", file_key="sap_change_model/cleaning_dataset.parquet", + ) + uprn_filenames = read_dataframe_from_s3_parquet( + bucket_name="retrofit-data-dev", file_key="spatial/filename_meta.parquet" + ) + photo_supply_lookup, floor_area_decile_thresholds = SolarPhotoSupply.load(bucket="retrofit-data-dev") + cleaned = read_from_s3( + s3_file_name="cleaned_epc_data/cleaned.bson", + bucket_name="retrofit-data-dev".format(environment="retrofit-data-dev") + ) + cleaned = msgpack.unpackb(cleaned, raw=False) + materials = [ + {'id': 17, 'type': 'mechanical_ventilation', 'description': 'Mechanical Extract Ventilation', 'depth': None, + 'depth_unit': None, 'cost': 500, 'cost_unit': 'gbp_per_unit', 'r_value_per_mm': None, 'r_value_unit': None, + 'thermal_conductivity': None, 'thermal_conductivity_unit': None, 'link': None, + 'created_at': datetime.datetime(2023, 10, 18, 16, 39, 9, 827188), 'is_active': True, + 'prime_material_cost': None, 'material_cost': None, 'labour_cost': None, 'labour_hours_per_unit': None, + 'plant_cost': None, 'total_cost': None, 'notes': None}, + {'id': 1221, 'type': 'flat_roof_preparation', 'description': 'clean surface to receive new damp-proof membrane', + 'depth': 0.0, 'depth_unit': None, 'cost': None, 'cost_unit': 'gbp_per_m2', 'r_value_per_mm': nan, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': None, + 'thermal_conductivity_unit': None, 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 12, 4, 20, 1, 49, 298076), 'is_active': True, + 'prime_material_cost': None, 'material_cost': 0.0, 'labour_cost': 4.36, 'labour_hours_per_unit': 0.14, + 'plant_cost': 0.0, 'total_cost': 4.36, + 'notes': 'This data is based on concrete however forms a decent baseline for a Bituminous Felt flat roof'}, + {'id': 1223, 'type': 'flat_roof_preparation', + 'description': 'One coat primer; on wood surfaces before fixing; General surfaces; over 300 mm girth', + 'depth': 0.0, 'depth_unit': None, 'cost': None, 'cost_unit': 'gbp_per_m2', 'r_value_per_mm': nan, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': None, + 'thermal_conductivity_unit': None, 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 12, 4, 20, 1, 49, 298076), 'is_active': True, + 'prime_material_cost': None, 'material_cost': 2.49, 'labour_cost': 1.5, 'labour_hours_per_unit': 0.08, + 'plant_cost': 0.0, 'total_cost': 3.99, 'notes': 'SPONs data gives us a baseline for a wood surface'}, + {'id': 1224, 'type': 'flat_roof_vapour_barrier', 'description': 'Visqueen High Performance Vapour Barrier', + 'depth': 0.0, 'depth_unit': None, 'cost': None, 'cost_unit': 'gbp_per_m2', 'r_value_per_mm': nan, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': None, + 'thermal_conductivity_unit': None, 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 12, 4, 20, 1, 49, 298076), 'is_active': True, + 'prime_material_cost': 0.58, 'material_cost': 1.21, 'labour_cost': 0.48, 'labour_hours_per_unit': 0.02, + 'plant_cost': 0.0, 'total_cost': 1.69, 'notes': None}, + {'id': 1226, 'type': 'flat_roof_insulation', 'description': 'Ravatherm XPS × 500 SL', 'depth': 100.0, + 'depth_unit': 'mm', 'cost': None, 'cost_unit': 'gbp_per_m2', 'r_value_per_mm': 0.03125, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': 0.032, + 'thermal_conductivity_unit': 'watt_per_meter_kelvin', 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 12, 4, 20, 1, 49, 298076), 'is_active': True, + 'prime_material_cost': None, 'material_cost': 22.14, 'labour_cost': 10.66, 'labour_hours_per_unit': 0.48, + 'plant_cost': 0.0, 'total_cost': 32.8, 'notes': None}, + {'id': 1227, 'type': 'flat_roof_insulation', 'description': 'Ravatherm XPS × 500 SL', 'depth': 120.0, + 'depth_unit': 'mm', 'cost': None, 'cost_unit': 'gbp_per_m2', 'r_value_per_mm': 0.03125, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': 0.032, + 'thermal_conductivity_unit': 'watt_per_meter_kelvin', + 'link': 'https://www.panelsystems.co.uk/product/floormate-ravatherm-sb?attribute_pa_group=floormate-500a' + '&attribute_pa_product-name=ravatherm-xps-x-500-sl&attribute_pa_length=1250&attribute_pa_width=600' + '&attribute_pa_thickness=120&attribute_pa_unit-of-sale=pack-3-brds&attribute_pa_min-order-qty=10' + '&gclid=CjwKCAiAjrarBhAWEiwA2qWdCKJK2iqlzUZ-mBFOfCLy2f5TldAbOj7G3LrvYw5JLaigplJAajzYpRoCtB8QAvD_BwE', + 'created_at': datetime.datetime(2023, 12, 4, 20, 1, 49, 298076), 'is_active': True, + 'prime_material_cost': None, 'material_cost': 26.187656, 'labour_cost': 10.66, 'labour_hours_per_unit': 0.48, + 'plant_cost': 0.0, 'total_cost': 36.847656, + 'notes': "SPONs didn't have this thickness, so the material price is based on the fact that on the link, " + "the 120mm thickness is 18% more expensive per board than the 100mm thickness"}, + {'id': 1228, 'type': 'flat_roof_insulation', 'description': 'Ravatherm XPS × 500 SL', 'depth': 140.0, + 'depth_unit': 'mm', 'cost': None, 'cost_unit': 'gbp_per_m2', 'r_value_per_mm': 0.03125, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': 0.032, + 'thermal_conductivity_unit': 'watt_per_meter_kelvin', + 'link': 'https://www.panelsystems.co.uk/product/floormate-ravatherm-sb?attribute_pa_group=floormate-500a' + '&attribute_pa_product-name=ravatherm-xps-x-500-sl&attribute_pa_length=1250&attribute_pa_width=600' + '&attribute_pa_thickness=120&attribute_pa_unit-of-sale=pack-3-brds&attribute_pa_min-order-qty=10' + '&gclid=CjwKCAiAjrarBhAWEiwA2qWdCKJK2iqlzUZ-mBFOfCLy2f5TldAbOj7G3LrvYw5JLaigplJAajzYpRoCtB8QAvD_BwE', + 'created_at': datetime.datetime(2023, 12, 4, 20, 1, 49, 298076), 'is_active': True, + 'prime_material_cost': None, 'material_cost': 31.114737, 'labour_cost': 10.66, 'labour_hours_per_unit': 0.48, + 'plant_cost': 0.0, 'total_cost': 41.77474, + 'notes': "SPONs didn't have this thickness, so the material price is based on the fact that on the link, " + "the 140mm thickness is 40% more expensive per board than the 100mm thickness"}, + {'id': 1229, 'type': 'flat_roof_insulation', 'description': 'Foamglas T3+ Flat Roof Insulation', 'depth': 100.0, + 'depth_unit': 'mm', 'cost': None, 'cost_unit': 'gbp_per_m2', 'r_value_per_mm': 0.027777778, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': 0.036, + 'thermal_conductivity_unit': 'watt_per_meter_kelvin', 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 12, 4, 20, 1, 49, 298076), 'is_active': True, + 'prime_material_cost': 95.83, 'material_cost': 109.09, 'labour_cost': 30.7, 'labour_hours_per_unit': 1.3, + 'plant_cost': 0.0, 'total_cost': 139.79, 'notes': None}, + {'id': 1230, 'type': 'flat_roof_insulation', 'description': 'Foamglas T4+ Flat Roof Insulation', 'depth': 100.0, + 'depth_unit': 'mm', 'cost': None, 'cost_unit': 'gbp_per_m2', 'r_value_per_mm': 0.024390243, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': 0.041, + 'thermal_conductivity_unit': 'watt_per_meter_kelvin', 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 12, 4, 20, 1, 49, 298076), 'is_active': True, + 'prime_material_cost': 63.89, 'material_cost': 76.19, 'labour_cost': 28.34, 'labour_hours_per_unit': 1.2, + 'plant_cost': 0.0, 'total_cost': 104.53, 'notes': None}, {'id': 1231, 'type': 'flat_roof_insulation', + 'description': 'Ecotherm Eco-Versal General ' + 'Purpose Insulation Board', + 'depth': 100.0, 'depth_unit': 'mm', 'cost': None, + 'cost_unit': 'gbp_per_m2', + 'r_value_per_mm': 0.045454547, + 'r_value_unit': 'square_meter_kelvin_per_watt', + 'thermal_conductivity': 0.022, + 'thermal_conductivity_unit': 'watt_per_meter_kelvin', + 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 12, 4, 20, 1, + 49, 298076), + 'is_active': True, 'prime_material_cost': 15.12, + 'material_cost': 25.96, 'labour_cost': 30.7, + 'labour_hours_per_unit': 1.3, 'plant_cost': 0.0, + 'total_cost': 56.66, 'notes': None}, + {'id': 1232, 'type': 'flat_roof_insulation', + 'description': 'Ecotherm Eco-Versal General Purpose Insulation Board', 'depth': 120.0, 'depth_unit': 'mm', + 'cost': None, 'cost_unit': 'gbp_per_m2', 'r_value_per_mm': 0.045454547, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': 0.022, + 'thermal_conductivity_unit': 'watt_per_meter_kelvin', 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 12, 4, 20, 1, 49, 298076), 'is_active': True, + 'prime_material_cost': 20.16, 'material_cost': 34.613335, 'labour_cost': 30.7, 'labour_hours_per_unit': 1.3, + 'plant_cost': 0.0, 'total_cost': 65.31333, + 'notes': "SPONs didn't have this thickness, so the material price is based on the fact that on the link, " + "the 120mm thickness is 33% more expensive than the 100mm thickness"}, + {'id': 1233, 'type': 'flat_roof_insulation', + 'description': 'Ecotherm Eco-Versal General Purpose Insulation Board', 'depth': 150.0, 'depth_unit': 'mm', + 'cost': None, 'cost_unit': 'gbp_per_m2', 'r_value_per_mm': 0.045454547, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': 0.022, + 'thermal_conductivity_unit': 'watt_per_meter_kelvin', 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 12, 4, 20, 1, 49, 298076), 'is_active': True, + 'prime_material_cost': 23.53, 'material_cost': 34.62, 'labour_cost': 33.06, 'labour_hours_per_unit': 1.4, + 'plant_cost': 0.0, 'total_cost': 67.68, 'notes': None}, {'id': 1234, 'type': 'flat_roof_waterproofing', + 'description': '20 mm thick two coat coverings; ' + 'felt isolating membrane; to ' + 'concrete (or timber) base; flat or ' + 'to falls or slopes not exceeding ' + '10° from horizontal', + 'depth': 0.0, 'depth_unit': None, 'cost': None, + 'cost_unit': 'gbp_per_m2', 'r_value_per_mm': nan, + 'r_value_unit': 'square_meter_kelvin_per_watt', + 'thermal_conductivity': None, + 'thermal_conductivity_unit': None, 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 12, 4, 20, 1, + 49, 298076), + 'is_active': True, 'prime_material_cost': None, + 'material_cost': 0.0, 'labour_cost': 0.0, + 'labour_hours_per_unit': 0.5, 'plant_cost': 0.0, + 'total_cost': 31.13, 'notes': None}, + {'id': 1225, 'type': 'flat_roof_insulation', + 'description': 'Kingspan Thermaroof TR21 zero OPD urethene insulation board', 'depth': 100.0, + 'depth_unit': 'mm', 'cost': None, 'cost_unit': 'gbp_per_m2', 'r_value_per_mm': 0.04, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': 0.025, + 'thermal_conductivity_unit': 'watt_per_meter_kelvin', 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 12, 4, 20, 1, 49, 298076), 'is_active': True, + 'prime_material_cost': None, 'material_cost': 50.95, 'labour_cost': 10.66, 'labour_hours_per_unit': 0.48, + 'plant_cost': 0.0, 'total_cost': 61.61, + 'notes': "SPONs didn't have a labour hours so we use 0.48 which is similar to other materials"}, + {'id': 1235, 'type': 'windows_glazing', + 'description': 'uPVC windows; Profile 22 or other equal and approved; reinforced where appropriate with ' + 'aluminium alloy; in refurbishment work, including standard ironmongery; sills and factory ' + 'glazed with low-e 24 mm double glazing; removing existing windows and fixing new in ' + 'position; including lugs plugged and screwed to brickwork or blockwork; Casement/fixed ' + 'light; including vents; e.p.d.m. glazing gaskets and weather seals; 1770 mm × 1200 mm; ref ' + 'P312WW', + 'depth': 0, 'depth_unit': None, 'cost': None, 'cost_unit': 'gbp_per_unit', 'r_value_per_mm': None, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': None, + 'thermal_conductivity_unit': None, 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 12, 20, 14, 37, 51, 728866), 'is_active': True, + 'prime_material_cost': 176.55, 'material_cost': 182.25, 'labour_cost': 163.36, 'labour_hours_per_unit': 6.5, + 'plant_cost': 0.0, 'total_cost': 345.61, + 'notes': 'This is the cost of removal of existing windows and installation of new windows. This is a ' + 'casement style window, which is the most common but also the cheapest style. In the cost ' + 'estimation framework, we can inflate prices for different finishes, to be conservative on price. '}, + {'id': 1109, 'type': 'cavity_wall_insulation', + 'description': 'Expanded Polystyrene Beads cavity wall insulation', 'depth': 75.0, 'depth_unit': 'mm', + 'cost': None, 'cost_unit': 'gbp_per_m2', 'r_value_per_mm': 0.030303031, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': 0.033, + 'thermal_conductivity_unit': 'watt_per_meter_kelvin', + 'link': 'https://www.styrene.co.uk/downloads/Datasheets' + '/Stylite_Cavity_Loose_Fill_Insulation_Datasheet_v20211.pdf', + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, 244907), 'is_active': True, + 'prime_material_cost': None, 'material_cost': 18.875, 'labour_cost': 1.125, 'labour_hours_per_unit': 0.065, + 'plant_cost': 0.0, 'total_cost': 20.0, + 'notes': "It is hard to find materials online. To price this, we've used this article: " + "https://www.greenmatch.co.uk/blog/cavity-wall-insulation-cost It puts EPS beads at around £22 per " + "meter squared, blowing wool insulation at £18 per meter squared and Polyurethane Foam at £26 per " + "meter squared, when taking the most pessimistic prices. These rates have been used to adjust the " + "price of the mineral wool insulation to give us the other forms of insulation"}, + {'id': 1110, 'type': 'cavity_wall_insulation', + 'description': 'Injected Polyurthane Foam cavity wall insulation', 'depth': 75.0, 'depth_unit': 'mm', + 'cost': None, 'cost_unit': 'gbp_per_m2', 'r_value_per_mm': 0.030303031, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': 0.033, + 'thermal_conductivity_unit': 'watt_per_meter_kelvin', + 'link': 'https://www.foaminstall.co.uk/wp-content/uploads/2017/04/Lapolla-Cavity-Fill-BBA-certificate-sheet1' + '.pdf', + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, 244907), 'is_active': True, + 'prime_material_cost': None, 'material_cost': 22.875, 'labour_cost': 1.125, 'labour_hours_per_unit': 0.065, + 'plant_cost': 0.0, 'total_cost': 24.0, 'notes': None}, + {'id': 1111, 'type': 'loft_insulation', 'description': 'Crown Loft Roll 44 glass fibre roll', 'depth': 100.0, + 'depth_unit': 'mm', 'cost': None, 'cost_unit': 'gbp_per_m2', 'r_value_per_mm': 0.022727273, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': 0.044, + 'thermal_conductivity_unit': 'watt_per_meter_kelvin', 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, 244907), 'is_active': True, + 'prime_material_cost': 2.03, 'material_cost': 2.1, 'labour_cost': 1.56, 'labour_hours_per_unit': 0.09, + 'plant_cost': 0.0, 'total_cost': 3.66, 'notes': None}, + {'id': 1112, 'type': 'loft_insulation', 'description': 'Crown Loft Roll 44 glass fibre roll', 'depth': 150.0, + 'depth_unit': 'mm', 'cost': None, 'cost_unit': 'gbp_per_m2', 'r_value_per_mm': 0.022727273, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': 0.044, + 'thermal_conductivity_unit': 'watt_per_meter_kelvin', 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, 244907), 'is_active': True, + 'prime_material_cost': 3.06, 'material_cost': 3.16, 'labour_cost': 1.78, 'labour_hours_per_unit': 0.1, + 'plant_cost': 0.0, 'total_cost': 4.94, 'notes': None}, + {'id': 1113, 'type': 'loft_insulation', 'description': 'Crown Loft Roll 44 glass fibre roll', 'depth': 170.0, + 'depth_unit': 'mm', 'cost': None, 'cost_unit': 'gbp_per_m2', 'r_value_per_mm': 0.022727273, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': 0.044, + 'thermal_conductivity_unit': 'watt_per_meter_kelvin', + 'link': 'https://insulation4less.co.uk/products/knauf-170mm-combi-cut?variant=31671561257013&dfw_tracker' + '=77750-31671561257013&utm_source=google&utm_medium=shopping&utm_campaign=shoptimised&gad_source=1' + '&gclid=CjwKCAiAx_GqBhBQEiwAlDNAZi1LiTWKVn0W1vktOYAPPQU3hss5Tq2qNn6GNhodCQoRD_tvqCLdxhoCKnIQAvD_BwE', + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, 244907), 'is_active': True, + 'prime_material_cost': None, 'material_cost': 3.81938, 'labour_cost': 1.71304, 'labour_hours_per_unit': 0.11, + 'plant_cost': 0.0, 'total_cost': 5.53242, + 'notes': "We don't have a 170mm in SPONs so the material cost is based on the fact that the 170mm insulation " + "is 87.4% of the cost of the 200mm insulation"}, + {'id': 1114, 'type': 'loft_insulation', 'description': 'Crown Loft Roll 44 glass fibre roll', 'depth': 200.0, + 'depth_unit': 'mm', 'cost': None, 'cost_unit': 'gbp_per_m2', 'r_value_per_mm': 0.022727273, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': 0.044, + 'thermal_conductivity_unit': 'watt_per_meter_kelvin', 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, 244907), 'is_active': True, + 'prime_material_cost': 4.25, 'material_cost': 4.37, 'labour_cost': 1.96, 'labour_hours_per_unit': 0.11, + 'plant_cost': 0.0, 'total_cost': 6.33, 'notes': None}, + {'id': 1115, 'type': 'loft_insulation', 'description': 'Crown Loft Roll 44 glass fibre roll', 'depth': 270.0, + 'depth_unit': 'mm', 'cost': None, 'cost_unit': 'gbp_per_m2', 'r_value_per_mm': 0.022727273, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': 0.044, + 'thermal_conductivity_unit': 'watt_per_meter_kelvin', 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, 244907), 'is_active': True, + 'prime_material_cost': None, 'material_cost': 5.91938, 'labour_cost': 1.96, 'labour_hours_per_unit': 0.11, + 'plant_cost': 0.0, 'total_cost': 7.87938, 'notes': 'This is the 100mm product + the 170mm product'}, + {'id': 1116, 'type': 'loft_insulation', 'description': 'Crown Loft Roll 44 glass fibre roll', 'depth': 300.0, + 'depth_unit': 'mm', 'cost': None, 'cost_unit': 'gbp_per_m2', 'r_value_per_mm': 0.022727273, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': 0.044, + 'thermal_conductivity_unit': 'watt_per_meter_kelvin', 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, 244907), 'is_active': True, + 'prime_material_cost': None, 'material_cost': 6.47, 'labour_cost': 1.96, 'labour_hours_per_unit': 0.11, + 'plant_cost': 0.0, 'total_cost': 8.43, 'notes': 'This is the 100mm product + the 200mm product'}, + {'id': 1117, 'type': 'loft_insulation', 'description': 'Isover Mineral Wool Modular Roll', 'depth': 100.0, + 'depth_unit': 'mm', 'cost': None, 'cost_unit': 'gbp_per_m2', 'r_value_per_mm': 0.023255814, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': 0.043, + 'thermal_conductivity_unit': 'watt_per_meter_kelvin', 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, 244907), 'is_active': True, + 'prime_material_cost': 1.99, 'material_cost': 2.05, 'labour_cost': 1.6, 'labour_hours_per_unit': 0.09, + 'plant_cost': 0.0, 'total_cost': 3.65, 'notes': None}, + {'id': 1118, 'type': 'loft_insulation', 'description': 'Isover Mineral Wool Modular Roll', 'depth': 150.0, + 'depth_unit': 'mm', 'cost': None, 'cost_unit': 'gbp_per_m2', 'r_value_per_mm': 0.023255814, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': 0.043, + 'thermal_conductivity_unit': 'watt_per_meter_kelvin', 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, 244907), 'is_active': True, + 'prime_material_cost': 2.96, 'material_cost': 3.05, 'labour_cost': 1.78, 'labour_hours_per_unit': 0.1, + 'plant_cost': 0.0, 'total_cost': 4.83, 'notes': None}, + {'id': 1119, 'type': 'loft_insulation', 'description': 'Isover Mineral Wool Modular Roll', 'depth': 170.0, + 'depth_unit': 'mm', 'cost': None, 'cost_unit': 'gbp_per_m2', 'r_value_per_mm': 0.023255814, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': 0.043, + 'thermal_conductivity_unit': 'watt_per_meter_kelvin', + 'link': 'https://flooringwarehousedirect.co.uk/product/isover-spacesaver-roll-170mm-x-1160mm-x-7-03m-8-15m2/', + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, 244907), 'is_active': True, + 'prime_material_cost': None, 'material_cost': 3.8706238, 'labour_cost': 2.281361, + 'labour_hours_per_unit': 0.12816635, 'plant_cost': 0.0, 'total_cost': 6.1519847, + 'notes': "We don't have a 170mm in SPONs so the material cost is based on the fact that the 170mm insulation " + "is 85.4% of the cost of the 200mm insulation"}, + {'id': 1120, 'type': 'loft_insulation', 'description': 'Isover Mineral Wool Modular Roll', 'depth': 200.0, + 'depth_unit': 'mm', 'cost': None, 'cost_unit': 'gbp_per_m2', 'r_value_per_mm': 0.023255814, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': 0.043, + 'thermal_conductivity_unit': 'watt_per_meter_kelvin', 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, 244907), 'is_active': True, + 'prime_material_cost': 4.4, 'material_cost': 4.53, 'labour_cost': 2.67, 'labour_hours_per_unit': 0.15, + 'plant_cost': 0.0, 'total_cost': 7.2, 'notes': None}, + {'id': 1121, 'type': 'loft_insulation', 'description': 'Isover Mineral Wool Modular Roll', 'depth': 270.0, + 'depth_unit': 'mm', 'cost': None, 'cost_unit': 'gbp_per_m2', 'r_value_per_mm': 0.023255814, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': 0.043, + 'thermal_conductivity_unit': 'watt_per_meter_kelvin', 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, 244907), 'is_active': True, + 'prime_material_cost': None, 'material_cost': 5.920624, 'labour_cost': 2.67, 'labour_hours_per_unit': 0.15, + 'plant_cost': 0.0, 'total_cost': 8.590624, 'notes': 'This is the 100mm product + the 170mm product'}, + {'id': 1122, 'type': 'loft_insulation', 'description': 'Isover Mineral Wool Modular Roll', 'depth': 300.0, + 'depth_unit': 'mm', 'cost': None, 'cost_unit': 'gbp_per_m2', 'r_value_per_mm': 0.023255814, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': 0.043, + 'thermal_conductivity_unit': 'watt_per_meter_kelvin', 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, 244907), 'is_active': True, + 'prime_material_cost': None, 'material_cost': 6.58, 'labour_cost': 2.67, 'labour_hours_per_unit': 0.15, + 'plant_cost': 0.0, 'total_cost': 9.25, 'notes': 'This is the 100mm product + the 200mm product'}, + {'id': 1123, 'type': 'loft_insulation', 'description': 'Isover Acoustic Partition Roll', 'depth': 100.0, + 'depth_unit': 'mm', 'cost': None, 'cost_unit': 'gbp_per_m2', 'r_value_per_mm': 0.023255814, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': 0.043, + 'thermal_conductivity_unit': 'watt_per_meter_kelvin', 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, 244907), 'is_active': True, + 'prime_material_cost': 5.93, 'material_cost': 6.4, 'labour_cost': 2.67, 'labour_hours_per_unit': 0.15, + 'plant_cost': 0.0, 'total_cost': 9.07, 'notes': 'This provides acoustic insulation as well'}, + {'id': 1124, 'type': 'loft_insulation', 'description': 'Isover Acoustic Partition Roll', 'depth': 300.0, + 'depth_unit': 'mm', 'cost': None, 'cost_unit': 'gbp_per_m2', 'r_value_per_mm': 0.023255814, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': 0.043, + 'thermal_conductivity_unit': 'watt_per_meter_kelvin', 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, 244907), 'is_active': True, + 'prime_material_cost': 17.79, 'material_cost': 19.2, 'labour_cost': 2.67, 'labour_hours_per_unit': 0.15, + 'plant_cost': 0.0, 'total_cost': 21.87, 'notes': 'This provides acoustic insulation as well'}, + {'id': 1125, 'type': 'loft_insulation', 'description': 'Thermafleece EcoRoll Insulation', 'depth': 300.0, + 'depth_unit': 'mm', 'cost': None, 'cost_unit': 'gbp_per_m2', 'r_value_per_mm': 0.025641026, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': 0.039, + 'thermal_conductivity_unit': 'watt_per_meter_kelvin', 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, 244907), 'is_active': True, + 'prime_material_cost': None, 'material_cost': 24.78, 'labour_cost': 2.67, 'labour_hours_per_unit': 0.15, + 'plant_cost': 0.0, 'total_cost': 27.45, + 'notes': 'This material is based on installing 3 layers of the 100mm product'}, + {'id': 1126, 'type': 'loft_insulation', 'description': 'Thermafleece EcoRoll Insulation', 'depth': 280.0, + 'depth_unit': 'mm', 'cost': None, 'cost_unit': 'gbp_per_m2', 'r_value_per_mm': 0.025641026, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': 0.039, + 'thermal_conductivity_unit': 'watt_per_meter_kelvin', 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, 244907), 'is_active': True, + 'prime_material_cost': None, 'material_cost': 23.36, 'labour_cost': 3.12, 'labour_hours_per_unit': 0.18, + 'plant_cost': 0.0, 'total_cost': 26.48, + 'notes': 'This material is based on installed 2 layers of the 140mm product'}, + {'id': 1127, 'type': 'iwi_wall_demolition', + 'description': 'Solid & Dry Lined walls: Hack of wall finishes with chipping hammer; plaster to walls.', + 'depth': 0.0, 'depth_unit': None, 'cost': None, 'cost_unit': 'gbp_per_m2', 'r_value_per_mm': nan, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': None, + 'thermal_conductivity_unit': None, 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, 244907), 'is_active': True, + 'prime_material_cost': None, 'material_cost': 0.0, 'labour_cost': 10.27, 'labour_hours_per_unit': 0.33, + 'plant_cost': 1.28, 'total_cost': 11.55, 'notes': None}, {'id': 1128, 'type': 'iwi_wall_demolition', + 'description': 'Stud walls: Remove wall linings ' + 'including battening behind; ' + 'plasterboard and skim', + 'depth': 0.0, 'depth_unit': None, 'cost': None, + 'cost_unit': 'gbp_per_m2', 'r_value_per_mm': nan, + 'r_value_unit': 'square_meter_kelvin_per_watt', + 'thermal_conductivity': None, + 'thermal_conductivity_unit': None, 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, + 12, 244907), + 'is_active': True, 'prime_material_cost': None, + 'material_cost': 0.0, 'labour_cost': 6.23, + 'labour_hours_per_unit': 0.2, 'plant_cost': 1.25, + 'total_cost': 7.48, 'notes': None}, + {'id': 1129, 'type': 'iwi_wall_demolition', + 'description': 'Lathe and Plaster walls: Remove wall linings including battening behind; wood lath and ' + 'plaster', + 'depth': 0.0, 'depth_unit': None, 'cost': None, 'cost_unit': 'gbp_per_m2', 'r_value_per_mm': nan, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': None, + 'thermal_conductivity_unit': None, 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, 244907), 'is_active': True, + 'prime_material_cost': None, 'material_cost': 0.0, 'labour_cost': 6.85, 'labour_hours_per_unit': 0.22, + 'plant_cost': 2.09, 'total_cost': 8.94, 'notes': None}, + {'id': 1130, 'type': 'internal_wall_insulation', 'description': 'Foamglas Grade F Wall Insulation Slabs', + 'depth': 60.0, 'depth_unit': 'mm', 'cost': None, 'cost_unit': 'gbp_per_m2', 'r_value_per_mm': 0.02631579, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': 0.038, + 'thermal_conductivity_unit': 'watt_per_meter_kelvin', 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, 244907), 'is_active': True, + 'prime_material_cost': 41.69, 'material_cost': 53.33, 'labour_cost': 29.52, 'labour_hours_per_unit': 1.25, + 'plant_cost': 0.0, 'total_cost': 82.85, 'notes': None}, + {'id': 1131, 'type': 'internal_wall_insulation', 'description': 'Foamglas Grade F Wall Insulation Slabs', + 'depth': 100.0, 'depth_unit': 'mm', 'cost': None, 'cost_unit': 'gbp_per_m2', 'r_value_per_mm': 0.02631579, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': 0.038, + 'thermal_conductivity_unit': 'watt_per_meter_kelvin', 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, 244907), 'is_active': True, + 'prime_material_cost': 86.86, 'material_cost': 99.85, 'labour_cost': 29.52, 'labour_hours_per_unit': 1.25, + 'plant_cost': 0.0, 'total_cost': 129.37, 'notes': None}, + {'id': 1132, 'type': 'internal_wall_insulation', 'description': 'Foamglas Grade F Wall Insulation Slabs', + 'depth': 150.0, 'depth_unit': 'mm', 'cost': None, 'cost_unit': 'gbp_per_m2', 'r_value_per_mm': 0.02631579, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': 0.038, + 'thermal_conductivity_unit': 'watt_per_meter_kelvin', 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, 244907), 'is_active': True, + 'prime_material_cost': 130.29, 'material_cost': 144.58, 'labour_cost': 29.52, 'labour_hours_per_unit': 1.25, + 'plant_cost': 0.0, 'total_cost': 174.1, 'notes': None}, + {'id': 1133, 'type': 'internal_wall_insulation', 'description': 'Ecotherm Eco-Versal PIR Insulation Board', + 'depth': 30.0, 'depth_unit': 'mm', 'cost': None, 'cost_unit': 'gbp_per_m2', 'r_value_per_mm': 0.045454547, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': 0.022, + 'thermal_conductivity_unit': 'watt_per_meter_kelvin', 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, 244907), 'is_active': True, + 'prime_material_cost': 6.16, 'material_cost': 16.73, 'labour_cost': 28.34, 'labour_hours_per_unit': 1.2, + 'plant_cost': 0.0, 'total_cost': 45.07, 'notes': None}, + {'id': 1134, 'type': 'internal_wall_insulation', 'description': 'Ecotherm Eco-Versal PIR Insulation Board', + 'depth': 50.0, 'depth_unit': 'mm', 'cost': None, 'cost_unit': 'gbp_per_m2', 'r_value_per_mm': 0.045454547, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': 0.022, + 'thermal_conductivity_unit': 'watt_per_meter_kelvin', 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, 244907), 'is_active': True, + 'prime_material_cost': 8.46, 'material_cost': 19.1, 'labour_cost': 28.34, 'labour_hours_per_unit': 1.2, + 'plant_cost': 0.0, 'total_cost': 47.44, 'notes': None}, + {'id': 1135, 'type': 'internal_wall_insulation', 'description': 'Ecotherm Eco-Versal PIR Insulation Board', + 'depth': 100.0, 'depth_unit': 'mm', 'cost': None, 'cost_unit': 'gbp_per_m2', 'r_value_per_mm': 0.045454547, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': 0.022, + 'thermal_conductivity_unit': 'watt_per_meter_kelvin', 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, 244907), 'is_active': True, + 'prime_material_cost': 15.12, 'material_cost': 25.96, 'labour_cost': 30.7, 'labour_hours_per_unit': 1.3, + 'plant_cost': 0.0, 'total_cost': 56.66, 'notes': None}, + {'id': 1136, 'type': 'internal_wall_insulation', 'description': 'Kingspan Kooltherm K18 insulated plasterboard', + 'depth': 37.5, 'depth_unit': 'mm', 'cost': None, 'cost_unit': 'gbp_per_m2', 'r_value_per_mm': 0.04761905, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': 0.021, + 'thermal_conductivity_unit': 'watt_per_meter_kelvin', 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, 244907), 'is_active': True, + 'prime_material_cost': None, 'material_cost': 26.86, 'labour_cost': 5.21, 'labour_hours_per_unit': 0.23, + 'plant_cost': 0.0, 'total_cost': 32.07, 'notes': None}, + {'id': 1137, 'type': 'internal_wall_insulation', 'description': 'Kingspan Kooltherm K18 insulated plasterboard', + 'depth': 42.5, 'depth_unit': 'mm', 'cost': None, 'cost_unit': 'gbp_per_m2', 'r_value_per_mm': 0.04761905, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': 0.021, + 'thermal_conductivity_unit': 'watt_per_meter_kelvin', 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, 244907), 'is_active': True, + 'prime_material_cost': None, 'material_cost': 17.37, 'labour_cost': 5.21, 'labour_hours_per_unit': 0.23, + 'plant_cost': 0.0, 'total_cost': 22.58, 'notes': None}, + {'id': 1138, 'type': 'internal_wall_insulation', 'description': 'Kingspan Kooltherm K18 insulated plasterboard', + 'depth': 52.5, 'depth_unit': 'mm', 'cost': None, 'cost_unit': 'gbp_per_m2', 'r_value_per_mm': 0.04761905, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': 0.021, + 'thermal_conductivity_unit': 'watt_per_meter_kelvin', 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, 244907), 'is_active': True, + 'prime_material_cost': None, 'material_cost': 21.74, 'labour_cost': 5.79, 'labour_hours_per_unit': 0.25, + 'plant_cost': 0.0, 'total_cost': 27.53, 'notes': None}, + {'id': 1139, 'type': 'internal_wall_insulation', 'description': 'Kingspan Kooltherm K18 insulated plasterboard', + 'depth': 62.5, 'depth_unit': 'mm', 'cost': None, 'cost_unit': 'gbp_per_m2', 'r_value_per_mm': 0.04761905, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': 0.021, + 'thermal_conductivity_unit': 'watt_per_meter_kelvin', 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, 244907), 'is_active': True, + 'prime_material_cost': None, 'material_cost': 19.3, 'labour_cost': 5.79, 'labour_hours_per_unit': 0.25, + 'plant_cost': 0.0, 'total_cost': 25.09, 'notes': None}, + {'id': 1140, 'type': 'internal_wall_insulation', 'description': 'Kingspan Kooltherm K18 insulated plasterboard', + 'depth': 72.5, 'depth_unit': 'mm', 'cost': None, 'cost_unit': 'gbp_per_m2', 'r_value_per_mm': 0.04761905, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': 0.021, + 'thermal_conductivity_unit': 'watt_per_meter_kelvin', 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, 244907), 'is_active': True, + 'prime_material_cost': None, 'material_cost': 23.15, 'labour_cost': 5.79, 'labour_hours_per_unit': 0.25, + 'plant_cost': 0.0, 'total_cost': 28.94, 'notes': None}, + {'id': 1141, 'type': 'iwi_vapour_barrier', 'description': 'Visqueen High Performance Vapour Barrier', + 'depth': 0.0, 'depth_unit': None, 'cost': None, 'cost_unit': None, 'r_value_per_mm': nan, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': None, + 'thermal_conductivity_unit': None, 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, 244907), 'is_active': True, + 'prime_material_cost': 0.58, 'material_cost': 1.21, 'labour_cost': 0.48, 'labour_hours_per_unit': 0.02, + 'plant_cost': 0.0, 'total_cost': 1.69, 'notes': None}, {'id': 1142, 'type': 'iwi_redecoration', + 'description': 'Plaster; one coat Thistle board ' + 'finish or other equal; steel ' + 'trowelled; 3 mm thick work to walls ' + 'or ceilings; one coat; to ' + 'plasterboard base; over 600mm wide', + 'depth': 0.0, 'depth_unit': None, 'cost': None, + 'cost_unit': None, 'r_value_per_mm': nan, + 'r_value_unit': 'square_meter_kelvin_per_watt', + 'thermal_conductivity': None, + 'thermal_conductivity_unit': None, 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, + 12, 244907), + 'is_active': True, 'prime_material_cost': None, + 'material_cost': 0.06, 'labour_cost': 6.58, + 'labour_hours_per_unit': 0.25, 'plant_cost': 0.0, + 'total_cost': 6.64, 'notes': None}, + {'id': 1143, 'type': 'iwi_redecoration', + 'description': 'Two coats emulsion paint on plaster, over 40mm girth; 3.5m - 5m high', 'depth': 0.0, + 'depth_unit': None, 'cost': None, 'cost_unit': None, 'r_value_per_mm': nan, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': None, + 'thermal_conductivity_unit': None, 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, 244907), 'is_active': True, + 'prime_material_cost': None, 'material_cost': 0.41, 'labour_cost': 3.93, 'labour_hours_per_unit': 0.21, + 'plant_cost': 0.0, 'total_cost': 4.34, 'notes': None}, {'id': 1144, 'type': 'iwi_redecoration', + 'description': 'Fitting existing softwood skirting ' + 'or architrave to new frames; 150mm ' + 'high', + 'depth': 0.0, 'depth_unit': None, 'cost': None, + 'cost_unit': None, 'r_value_per_mm': nan, + 'r_value_unit': 'square_meter_kelvin_per_watt', + 'thermal_conductivity': None, + 'thermal_conductivity_unit': None, 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, + 12, 244907), + 'is_active': True, 'prime_material_cost': None, + 'material_cost': 0.01, 'labour_cost': 4.87, + 'labour_hours_per_unit': 0.12, 'plant_cost': 0.0, + 'total_cost': 4.88, 'notes': None}, + {'id': 1145, 'type': 'suspended_floor_demolition', 'description': 'Removal of carpet and underfelt', + 'depth': 0.0, 'depth_unit': None, 'cost': None, 'cost_unit': None, 'r_value_per_mm': nan, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': None, + 'thermal_conductivity_unit': None, 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, 244907), 'is_active': True, + 'prime_material_cost': None, 'material_cost': 0.0, 'labour_cost': 3.32, 'labour_hours_per_unit': 0.11, + 'plant_cost': 0.0, 'total_cost': 3.32, + 'notes': 'We ignore the plant cost that is in SPONs because we assume the carpet is not scrapped and ' + 'therefore there is no need for a skip'}, + {'id': 1146, 'type': 'suspended_floor_demolition', + 'description': 'Remove boarding; withdraw nails; set aside for reuse; ground level', 'depth': 0.0, + 'depth_unit': None, 'cost': None, 'cost_unit': None, 'r_value_per_mm': nan, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': None, + 'thermal_conductivity_unit': None, 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, 244907), 'is_active': True, + 'prime_material_cost': None, 'material_cost': 0.0, 'labour_cost': 9.34, 'labour_hours_per_unit': 0.3, + 'plant_cost': 0.0, 'total_cost': 9.34, 'notes': None}, {'id': 1147, 'type': 'suspended_floor_vapour_barrier', + 'description': 'Visqueen High Performance Vapour ' + 'Barrier', + 'depth': 0.0, 'depth_unit': None, 'cost': None, + 'cost_unit': None, 'r_value_per_mm': nan, + 'r_value_unit': 'square_meter_kelvin_per_watt', + 'thermal_conductivity': None, + 'thermal_conductivity_unit': None, 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, + 12, 244907), + 'is_active': True, 'prime_material_cost': 0.58, + 'material_cost': 1.21, 'labour_cost': 0.48, + 'labour_hours_per_unit': 0.02, 'plant_cost': 0.0, + 'total_cost': 1.69, 'notes': None}, + {'id': 1148, 'type': 'suspended_floor_insulation', 'description': 'Thermafleece CosyWool Roll', 'depth': 50.0, + 'depth_unit': 'mm', 'cost': None, 'cost_unit': 'gbp_per_m2', 'r_value_per_mm': 0.025641026, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': 0.039, + 'thermal_conductivity_unit': 'watt_per_meter_kelvin', 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, 244907), 'is_active': True, + 'prime_material_cost': None, 'material_cost': 4.24, 'labour_cost': 1.56, 'labour_hours_per_unit': 0.09, + 'plant_cost': 0.0, 'total_cost': 5.8, + 'notes': 'Spons did not contain labour costs so we use values for similar insulations. We use the same ' + 'values as in Crown loft roll 44, since it is also an insulation roll'}, + {'id': 1149, 'type': 'suspended_floor_insulation', 'description': 'Thermafleece CosyWool Roll', 'depth': 75.0, + 'depth_unit': 'mm', 'cost': None, 'cost_unit': 'gbp_per_m2', 'r_value_per_mm': 0.025641026, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': 0.039, + 'thermal_conductivity_unit': 'watt_per_meter_kelvin', 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, 244907), 'is_active': True, + 'prime_material_cost': None, 'material_cost': 6.31, 'labour_cost': 1.56, 'labour_hours_per_unit': 0.09, + 'plant_cost': 0.0, 'total_cost': 7.87, + 'notes': 'Spons did not contain labour costs so we use values for similar insulations. We use the same ' + 'values as in Crown loft roll 44, since it is also an insulation roll'}, + {'id': 1150, 'type': 'suspended_floor_insulation', 'description': 'Thermafleece CosyWool Roll', 'depth': 100.0, + 'depth_unit': 'mm', 'cost': None, 'cost_unit': 'gbp_per_m2', 'r_value_per_mm': 0.025641026, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': 0.039, + 'thermal_conductivity_unit': 'watt_per_meter_kelvin', 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, 244907), 'is_active': True, + 'prime_material_cost': None, 'material_cost': 8.26, 'labour_cost': 1.56, 'labour_hours_per_unit': 0.1, + 'plant_cost': 0.0, 'total_cost': 9.82, + 'notes': 'Spons did not contain labour costs so we use values for similar insulations. We use the same ' + 'values as in Crown loft roll 44, since it is also an insulation roll'}, + {'id': 1151, 'type': 'suspended_floor_insulation', 'description': 'Thermafleece CosyWool Roll', 'depth': 140.0, + 'depth_unit': 'mm', 'cost': None, 'cost_unit': 'gbp_per_m2', 'r_value_per_mm': 0.025641026, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': 0.039, + 'thermal_conductivity_unit': 'watt_per_meter_kelvin', 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, 244907), 'is_active': True, + 'prime_material_cost': None, 'material_cost': 11.68, 'labour_cost': 1.78, 'labour_hours_per_unit': 0.1, + 'plant_cost': 0.0, 'total_cost': 13.46, + 'notes': 'Spons did not contain labour costs so we use values for similar insulations. We use the same ' + 'values as in Crown loft roll 44, since it is also an insulation roll'}, + {'id': 1152, 'type': 'suspended_floor_insulation', + 'description': 'Thermafleece TF35 high density wool insulating batts', 'depth': 50.0, 'depth_unit': 'mm', + 'cost': None, 'cost_unit': 'gbp_per_m2', 'r_value_per_mm': 0.028571429, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': 0.035, + 'thermal_conductivity_unit': 'watt_per_meter_kelvin', 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, 244907), 'is_active': True, + 'prime_material_cost': None, 'material_cost': 6.63, 'labour_cost': 1.56, 'labour_hours_per_unit': 0.09, + 'plant_cost': 0.0, 'total_cost': 8.19, + 'notes': 'Spons did not contain labour costs so we use values for similar insulations. We use the same ' + 'values as in Crown loft roll 44, since it is also an insulation roll'}, + {'id': 1153, 'type': 'suspended_floor_insulation', + 'description': 'Thermafleece TF35 high density wool insulating batts', 'depth': 75.0, 'depth_unit': 'mm', + 'cost': None, 'cost_unit': 'gbp_per_m2', 'r_value_per_mm': 0.028571429, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': 0.035, + 'thermal_conductivity_unit': 'watt_per_meter_kelvin', 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, 244907), 'is_active': True, + 'prime_material_cost': None, 'material_cost': 10.31, 'labour_cost': 1.56, 'labour_hours_per_unit': 0.09, + 'plant_cost': 0.0, 'total_cost': 11.87, + 'notes': 'Spons did not contain labour costs so we use values for similar insulations. We use the same ' + 'values as in Crown loft roll 44, since it is also an insulation roll'}, + {'id': 1154, 'type': 'suspended_floor_insulation', + 'description': 'Ecotherm Eco-Versal General Purpose Insulation Board', 'depth': 30.0, 'depth_unit': 'mm', + 'cost': None, 'cost_unit': 'gbp_per_m2', 'r_value_per_mm': 0.045454547, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': 0.022, + 'thermal_conductivity_unit': 'watt_per_meter_kelvin', 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, 244907), 'is_active': True, + 'prime_material_cost': 6.16, 'material_cost': 16.73, 'labour_cost': 28.34, 'labour_hours_per_unit': 1.2, + 'plant_cost': 0.0, 'total_cost': 45.07, 'notes': None}, {'id': 1155, 'type': 'suspended_floor_insulation', + 'description': 'Ecotherm Eco-Versal General Purpose ' + 'Insulation Board', + 'depth': 50.0, 'depth_unit': 'mm', 'cost': None, + 'cost_unit': 'gbp_per_m2', + 'r_value_per_mm': 0.045454547, + 'r_value_unit': 'square_meter_kelvin_per_watt', + 'thermal_conductivity': 0.022, + 'thermal_conductivity_unit': 'watt_per_meter_kelvin', + 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, + 12, 244907), + 'is_active': True, 'prime_material_cost': 8.46, + 'material_cost': 19.1, 'labour_cost': 28.34, + 'labour_hours_per_unit': 1.2, 'plant_cost': 0.0, + 'total_cost': 47.44, 'notes': None}, + {'id': 1156, 'type': 'suspended_floor_insulation', + 'description': 'Ecotherm Eco-Versal General Purpose Insulation Board', 'depth': 100.0, 'depth_unit': 'mm', + 'cost': None, 'cost_unit': 'gbp_per_m2', 'r_value_per_mm': 0.045454547, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': 0.022, + 'thermal_conductivity_unit': 'watt_per_meter_kelvin', 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, 244907), 'is_active': True, + 'prime_material_cost': 15.12, 'material_cost': 25.96, 'labour_cost': 30.7, 'labour_hours_per_unit': 1.3, + 'plant_cost': 0.0, 'total_cost': 56.66, 'notes': None}, {'id': 1157, 'type': 'suspended_floor_insulation', + 'description': 'Ecotherm Eco-Versal General Purpose ' + 'Insulation Board', + 'depth': 150.0, 'depth_unit': 'mm', 'cost': None, + 'cost_unit': 'gbp_per_m2', + 'r_value_per_mm': 0.045454547, + 'r_value_unit': 'square_meter_kelvin_per_watt', + 'thermal_conductivity': 0.022, + 'thermal_conductivity_unit': 'watt_per_meter_kelvin', + 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, + 12, 244907), + 'is_active': True, 'prime_material_cost': 23.53, + 'material_cost': 34.62, 'labour_cost': 33.06, + 'labour_hours_per_unit': 1.4, 'plant_cost': 0.0, + 'total_cost': 67.68, 'notes': None}, + {'id': 1158, 'type': 'suspended_floor_insulation', 'description': 'Crown Loft Roll 44 glass fibre roll', + 'depth': 100.0, 'depth_unit': 'mm', 'cost': None, 'cost_unit': 'gbp_per_unit', 'r_value_per_mm': 0.022727273, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': 0.044, + 'thermal_conductivity_unit': 'watt_per_meter_kelvin', 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, 244907), 'is_active': True, + 'prime_material_cost': 2.03, 'material_cost': 2.1, 'labour_cost': 1.56, 'labour_hours_per_unit': 0.09, + 'plant_cost': 0.0, 'total_cost': 3.66, 'notes': None}, + {'id': 1159, 'type': 'suspended_floor_insulation', 'description': 'Crown Loft Roll 44 glass fibre roll', + 'depth': 150.0, 'depth_unit': 'mm', 'cost': None, 'cost_unit': 'gbp_per_unit', 'r_value_per_mm': 0.022727273, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': 0.044, + 'thermal_conductivity_unit': 'watt_per_meter_kelvin', 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, 244907), 'is_active': True, + 'prime_material_cost': 3.06, 'material_cost': 3.16, 'labour_cost': 1.78, 'labour_hours_per_unit': 0.1, + 'plant_cost': 0.0, 'total_cost': 4.94, 'notes': None}, + {'id': 1160, 'type': 'suspended_floor_insulation', 'description': 'Crown Loft Roll 44 glass fibre roll', + 'depth': 200.0, 'depth_unit': 'mm', 'cost': None, 'cost_unit': 'gbp_per_unit', 'r_value_per_mm': 0.022727273, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': 0.044, + 'thermal_conductivity_unit': 'watt_per_meter_kelvin', 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, 244907), 'is_active': True, + 'prime_material_cost': 4.25, 'material_cost': 4.37, 'labour_cost': 1.96, 'labour_hours_per_unit': 0.11, + 'plant_cost': 0.0, 'total_cost': 6.33, 'notes': None}, + {'id': 1161, 'type': 'suspended_floor_insulation', 'description': 'Isover Mineral Wool Modular Roll', + 'depth': 100.0, 'depth_unit': 'mm', 'cost': None, 'cost_unit': 'gbp_per_unit', 'r_value_per_mm': 0.023255814, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': 0.043, + 'thermal_conductivity_unit': 'watt_per_meter_kelvin', 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, 244907), 'is_active': True, + 'prime_material_cost': 1.99, 'material_cost': 2.05, 'labour_cost': 1.6, 'labour_hours_per_unit': 0.09, + 'plant_cost': 0.0, 'total_cost': 3.65, 'notes': None}, + {'id': 1162, 'type': 'suspended_floor_insulation', 'description': 'Isover Mineral Wool Modular Roll', + 'depth': 150.0, 'depth_unit': 'mm', 'cost': None, 'cost_unit': 'gbp_per_unit', 'r_value_per_mm': 0.023255814, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': 0.043, + 'thermal_conductivity_unit': 'watt_per_meter_kelvin', 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, 244907), 'is_active': True, + 'prime_material_cost': 2.96, 'material_cost': 3.05, 'labour_cost': 1.78, 'labour_hours_per_unit': 0.1, + 'plant_cost': 0.0, 'total_cost': 4.83, 'notes': None}, + {'id': 1163, 'type': 'suspended_floor_insulation', 'description': 'Isover Mineral Wool Modular Roll', + 'depth': 200.0, 'depth_unit': 'mm', 'cost': None, 'cost_unit': 'gbp_per_unit', 'r_value_per_mm': 0.023255814, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': 0.043, + 'thermal_conductivity_unit': 'watt_per_meter_kelvin', 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, 244907), 'is_active': True, + 'prime_material_cost': 4.4, 'material_cost': 4.53, 'labour_cost': 2.67, 'labour_hours_per_unit': 0.15, + 'plant_cost': 0.0, 'total_cost': 7.2, 'notes': None}, + {'id': 1164, 'type': 'suspended_floor_insulation', 'description': 'Isover Acoustic Partition Roll', + 'depth': 25.0, 'depth_unit': 'mm', 'cost': None, 'cost_unit': 'gbp_per_unit', 'r_value_per_mm': 0.025641026, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': 0.039, + 'thermal_conductivity_unit': 'watt_per_meter_kelvin', 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, 244907), 'is_active': True, + 'prime_material_cost': 1.67, 'material_cost': 2.01, 'labour_cost': 1.43, 'labour_hours_per_unit': 0.08, + 'plant_cost': 0.0, 'total_cost': 3.44, 'notes': None}, + {'id': 1165, 'type': 'suspended_floor_insulation', 'description': 'Isover Acoustic Partition Roll', + 'depth': 50.0, 'depth_unit': 'mm', 'cost': None, 'cost_unit': 'gbp_per_unit', 'r_value_per_mm': 0.025641026, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': 0.039, + 'thermal_conductivity_unit': 'watt_per_meter_kelvin', 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, 244907), 'is_active': True, + 'prime_material_cost': 2.74, 'material_cost': 3.11, 'labour_cost': 1.6, 'labour_hours_per_unit': 0.09, + 'plant_cost': 0.0, 'total_cost': 4.71, 'notes': None}, + {'id': 1166, 'type': 'suspended_floor_insulation', 'description': 'Isover Acoustic Partition Roll', + 'depth': 75.0, 'depth_unit': 'mm', 'cost': None, 'cost_unit': 'gbp_per_unit', 'r_value_per_mm': 0.023255814, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': 0.043, + 'thermal_conductivity_unit': 'watt_per_meter_kelvin', 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, 244907), 'is_active': True, + 'prime_material_cost': 4.57, 'material_cost': 5.01, 'labour_cost': 1.78, 'labour_hours_per_unit': 0.1, + 'plant_cost': 0.0, 'total_cost': 6.79, 'notes': None}, + {'id': 1167, 'type': 'suspended_floor_insulation', 'description': 'Isover Acoustic Partition Roll', + 'depth': 100.0, 'depth_unit': 'mm', 'cost': None, 'cost_unit': 'gbp_per_unit', 'r_value_per_mm': 0.023255814, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': 0.043, + 'thermal_conductivity_unit': 'watt_per_meter_kelvin', 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, 244907), 'is_active': True, + 'prime_material_cost': 5.93, 'material_cost': 6.4, 'labour_cost': 2.67, 'labour_hours_per_unit': 0.15, + 'plant_cost': 0.0, 'total_cost': 9.07, 'notes': None}, + {'id': 1168, 'type': 'suspended_floor_insulation', 'description': 'Kay-Cel Expanded Polystyrene Board', + 'depth': 25.0, 'depth_unit': 'mm', 'cost': None, 'cost_unit': 'gbp_per_m2', 'r_value_per_mm': 0.030303031, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': 0.033, + 'thermal_conductivity_unit': 'watt_per_meter_kelvin', 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, 244907), 'is_active': True, + 'prime_material_cost': None, 'material_cost': 3.88, 'labour_cost': 3.24, 'labour_hours_per_unit': 0.14, + 'plant_cost': 0.0, 'total_cost': 7.12, 'notes': None}, + {'id': 1169, 'type': 'suspended_floor_insulation', 'description': 'Kay-Cel Expanded Polystyrene Board', + 'depth': 50.0, 'depth_unit': 'mm', 'cost': None, 'cost_unit': 'gbp_per_m2', 'r_value_per_mm': 0.030303031, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': 0.033, + 'thermal_conductivity_unit': 'watt_per_meter_kelvin', 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, 244907), 'is_active': True, + 'prime_material_cost': None, 'material_cost': 6.62, 'labour_cost': 3.71, 'labour_hours_per_unit': 0.16, + 'plant_cost': 0.0, 'total_cost': 10.33, 'notes': None}, + {'id': 1170, 'type': 'suspended_floor_insulation', 'description': 'Kay-Cel Expanded Polystyrene Board', + 'depth': 75.0, 'depth_unit': 'mm', 'cost': None, 'cost_unit': 'gbp_per_m2', 'r_value_per_mm': 0.030303031, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': 0.033, + 'thermal_conductivity_unit': 'watt_per_meter_kelvin', 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, 244907), 'is_active': True, + 'prime_material_cost': None, 'material_cost': 9.3, 'labour_cost': 4.17, 'labour_hours_per_unit': 0.18, + 'plant_cost': 0.0, 'total_cost': 13.47, 'notes': None}, + {'id': 1171, 'type': 'suspended_floor_insulation', 'description': 'Kay-Cel Expanded Polystyrene Board', + 'depth': 100.0, 'depth_unit': 'mm', 'cost': None, 'cost_unit': 'gbp_per_m2', 'r_value_per_mm': 0.030303031, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': 0.033, + 'thermal_conductivity_unit': 'watt_per_meter_kelvin', 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, 244907), 'is_active': True, + 'prime_material_cost': None, 'material_cost': 12.02, 'labour_cost': 4.4, 'labour_hours_per_unit': 0.19, + 'plant_cost': 0.0, 'total_cost': 16.42, 'notes': None}, {'id': 1172, 'type': 'suspended_floor_insulation', + 'description': 'Kingspan Thermafloor TF70 High ' + 'Performance Rigid Floor Insulation', + 'depth': 50.0, 'depth_unit': 'mm', 'cost': None, + 'cost_unit': 'gbp_per_m2', + 'r_value_per_mm': 0.045454547, + 'r_value_unit': 'square_meter_kelvin_per_watt', + 'thermal_conductivity': 0.022, + 'thermal_conductivity_unit': 'watt_per_meter_kelvin', + 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, + 12, 244907), + 'is_active': True, 'prime_material_cost': None, + 'material_cost': 10.36, 'labour_cost': 4.06, + 'labour_hours_per_unit': 0.18, 'plant_cost': 0.0, + 'total_cost': 14.42, 'notes': None}, + {'id': 1173, 'type': 'suspended_floor_insulation', + 'description': 'Kingspan Thermafloor TF70 High Performance Rigid Floor Insulation', 'depth': 75.0, + 'depth_unit': 'mm', 'cost': None, 'cost_unit': 'gbp_per_m2', 'r_value_per_mm': 0.045454547, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': 0.022, + 'thermal_conductivity_unit': 'watt_per_meter_kelvin', 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, 244907), 'is_active': True, + 'prime_material_cost': None, 'material_cost': 15.35, 'labour_cost': 4.06, 'labour_hours_per_unit': 0.18, + 'plant_cost': 0.0, 'total_cost': 19.41, 'notes': None}, {'id': 1174, 'type': 'suspended_floor_insulation', + 'description': 'Kingspan Thermafloor TF70 High ' + 'Performance Rigid Floor Insulation', + 'depth': 100.0, 'depth_unit': 'mm', 'cost': None, + 'cost_unit': 'gbp_per_m2', + 'r_value_per_mm': 0.045454547, + 'r_value_unit': 'square_meter_kelvin_per_watt', + 'thermal_conductivity': 0.022, + 'thermal_conductivity_unit': 'watt_per_meter_kelvin', + 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, + 12, 244907), + 'is_active': True, 'prime_material_cost': None, + 'material_cost': 19.17, 'labour_cost': 4.06, + 'labour_hours_per_unit': 0.18, 'plant_cost': 0.0, + 'total_cost': 23.23, 'notes': None}, + {'id': 1175, 'type': 'suspended_floor_insulation', + 'description': 'Kingspan Thermafloor TF70 High Performance Rigid Floor Insulation', 'depth': 125.0, + 'depth_unit': 'mm', 'cost': None, 'cost_unit': 'gbp_per_m2', 'r_value_per_mm': 0.045454547, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': 0.022, + 'thermal_conductivity_unit': 'watt_per_meter_kelvin', 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, 244907), 'is_active': True, + 'prime_material_cost': None, 'material_cost': 26.59, 'labour_cost': 4.06, 'labour_hours_per_unit': 0.18, + 'plant_cost': 0.0, 'total_cost': 30.65, 'notes': None}, {'id': 1176, 'type': 'suspended_floor_insulation', + 'description': 'Kingspan Thermafloor TF70 High ' + 'Performance Rigid Floor Insulation', + 'depth': 150.0, 'depth_unit': 'mm', 'cost': None, + 'cost_unit': 'gbp_per_m2', + 'r_value_per_mm': 0.045454547, + 'r_value_unit': 'square_meter_kelvin_per_watt', + 'thermal_conductivity': 0.022, + 'thermal_conductivity_unit': 'watt_per_meter_kelvin', + 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, + 12, 244907), + 'is_active': True, 'prime_material_cost': None, + 'material_cost': 31.13, 'labour_cost': 4.64, + 'labour_hours_per_unit': 0.2, 'plant_cost': 0.0, + 'total_cost': 35.77, 'notes': None}, + {'id': 1177, 'type': 'suspended_floor_redecoration', 'description': 'refix floorboards previously set aside', + 'depth': 0.0, 'depth_unit': None, 'cost': None, 'cost_unit': None, 'r_value_per_mm': nan, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': None, + 'thermal_conductivity_unit': None, 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, 244907), 'is_active': True, + 'prime_material_cost': None, 'material_cost': 1.54, 'labour_cost': 24.98, 'labour_hours_per_unit': 0.74, + 'plant_cost': 0.0, 'total_cost': 26.52, 'notes': None}, + {'id': 1178, 'type': 'suspended_floor_redecoration', 'description': 'Fitting carpet', 'depth': 0.0, + 'depth_unit': None, 'cost': None, 'cost_unit': None, 'r_value_per_mm': nan, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': None, + 'thermal_conductivity_unit': None, 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, 244907), 'is_active': True, + 'prime_material_cost': None, 'material_cost': 0.0, 'labour_cost': 6.59, 'labour_hours_per_unit': 0.37, + 'plant_cost': 0.0, 'total_cost': 6.59, + 'notes': 'SPONs does not have data on re-fitting the carpet so we use the data in Fitted carpeting; Gradus ' + 'woven polypropylene tufted loop\n\n as a baseline. We assume re-use of carpets, therefore we need ' + 'just labour rates'}, + {'id': 1179, 'type': 'solid_floor_demolition', 'description': 'Removal of carpet and underfelt', 'depth': 0.0, + 'depth_unit': None, 'cost': None, 'cost_unit': None, 'r_value_per_mm': nan, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': None, + 'thermal_conductivity_unit': None, 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, 244907), 'is_active': True, + 'prime_material_cost': None, 'material_cost': 0.0, 'labour_cost': 3.32, 'labour_hours_per_unit': 0.11, + 'plant_cost': 0.0, 'total_cost': 3.32, + 'notes': 'We ignore the plant cost that is in SPONs because we assume the carpet is not scrapped and ' + 'therefore there is no need for a skip'}, + {'id': 1180, 'type': 'solid_floor_preparation', + 'description': 'clean surface of concrete to receive new damp-proof membrane', 'depth': 0.0, + 'depth_unit': None, 'cost': None, 'cost_unit': None, 'r_value_per_mm': nan, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': None, + 'thermal_conductivity_unit': None, 'link': None, + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, 244907), 'is_active': True, + 'prime_material_cost': None, 'material_cost': 0.0, 'labour_cost': 4.36, 'labour_hours_per_unit': 0.14, + 'plant_cost': 0.0, 'total_cost': 4.36, 'notes': None}, {'id': 1181, 'type': 'solid_floor_preparation', + 'description': 'Clean out crack to form a 20mm×20mm ' + 'groove and fill with cement: mortar ' + 'mixed with bonding agent', + 'depth': 0.0, 'depth_unit': None, 'cost': None, + 'cost_unit': None, 'r_value_per_mm': nan, + 'r_value_unit': 'square_meter_kelvin_per_watt', + 'thermal_conductivity': None, + 'thermal_conductivity_unit': None, 'link': None, + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, + 12, 244907), + 'is_active': True, 'prime_material_cost': None, + 'material_cost': 6.91, 'labour_cost': 18.99, + 'labour_hours_per_unit': 0.61, 'plant_cost': 0.16, + 'total_cost': 26.06, + 'notes': 'This step is the assessment and repair of ' + 'any damage to the concrete floor such as ' + 'filling cracks or levelling uneven areas'}, + {'id': 1182, 'type': 'solid_floor_vapour_barrier', 'description': 'Visqueen High Performance Vapour Barrier', + 'depth': 0.0, 'depth_unit': None, 'cost': None, 'cost_unit': None, 'r_value_per_mm': nan, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': None, + 'thermal_conductivity_unit': None, 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, 244907), 'is_active': True, + 'prime_material_cost': 0.58, 'material_cost': 1.21, 'labour_cost': 0.48, 'labour_hours_per_unit': 0.02, + 'plant_cost': 0.0, 'total_cost': 1.69, 'notes': None}, + {'id': 1183, 'type': 'solid_floor_insulation', 'description': 'Kay-Cel Expanded Polystyrene Board', + 'depth': 25.0, 'depth_unit': 'mm', 'cost': None, 'cost_unit': 'gbp_per_m2', 'r_value_per_mm': 0.030303031, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': 0.033, + 'thermal_conductivity_unit': 'watt_per_meter_kelvin', 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, 244907), 'is_active': True, + 'prime_material_cost': None, 'material_cost': 3.88, 'labour_cost': 3.24, 'labour_hours_per_unit': 0.14, + 'plant_cost': 0.0, 'total_cost': 7.12, 'notes': None}, + {'id': 1184, 'type': 'solid_floor_insulation', 'description': 'Kay-Cel Expanded Polystyrene Board', + 'depth': 50.0, 'depth_unit': 'mm', 'cost': None, 'cost_unit': 'gbp_per_m2', 'r_value_per_mm': 0.030303031, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': 0.033, + 'thermal_conductivity_unit': 'watt_per_meter_kelvin', 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, 244907), 'is_active': True, + 'prime_material_cost': None, 'material_cost': 6.62, 'labour_cost': 3.71, 'labour_hours_per_unit': 0.16, + 'plant_cost': 0.0, 'total_cost': 10.33, 'notes': None}, + {'id': 1185, 'type': 'solid_floor_insulation', 'description': 'Kay-Cel Expanded Polystyrene Board', + 'depth': 75.0, 'depth_unit': 'mm', 'cost': None, 'cost_unit': 'gbp_per_m2', 'r_value_per_mm': 0.030303031, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': 0.033, + 'thermal_conductivity_unit': 'watt_per_meter_kelvin', 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, 244907), 'is_active': True, + 'prime_material_cost': None, 'material_cost': 9.3, 'labour_cost': 4.17, 'labour_hours_per_unit': 0.18, + 'plant_cost': 0.0, 'total_cost': 13.47, 'notes': None}, {'id': 1186, 'type': 'solid_floor_insulation', + 'description': 'Kingspan Thermafloor TF70 High ' + 'Performance Rigid Floor Insulation', + 'depth': 50.0, 'depth_unit': 'mm', 'cost': None, + 'cost_unit': 'gbp_per_m2', + 'r_value_per_mm': 0.045454547, + 'r_value_unit': 'square_meter_kelvin_per_watt', + 'thermal_conductivity': 0.022, + 'thermal_conductivity_unit': 'watt_per_meter_kelvin', + 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, + 12, 244907), + 'is_active': True, 'prime_material_cost': None, + 'material_cost': 10.36, 'labour_cost': 4.06, + 'labour_hours_per_unit': 0.18, 'plant_cost': 0.0, + 'total_cost': 14.42, 'notes': None}, + {'id': 1187, 'type': 'solid_floor_insulation', + 'description': 'Kingspan Thermafloor TF70 High Performance Rigid Floor Insulation', 'depth': 75.0, + 'depth_unit': 'mm', 'cost': None, 'cost_unit': 'gbp_per_m2', 'r_value_per_mm': 0.045454547, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': 0.022, + 'thermal_conductivity_unit': 'watt_per_meter_kelvin', 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, 244907), 'is_active': True, + 'prime_material_cost': None, 'material_cost': 15.35, 'labour_cost': 4.06, 'labour_hours_per_unit': 0.18, + 'plant_cost': 0.0, 'total_cost': 19.41, 'notes': None}, {'id': 1188, 'type': 'solid_floor_insulation', + 'description': 'Ecotherm Eco-Versal General Purpose ' + 'Insulation Board', + 'depth': 30.0, 'depth_unit': 'mm', 'cost': None, + 'cost_unit': 'gbp_per_m2', + 'r_value_per_mm': 0.045454547, + 'r_value_unit': 'square_meter_kelvin_per_watt', + 'thermal_conductivity': 0.022, + 'thermal_conductivity_unit': 'watt_per_meter_kelvin', + 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, + 12, 244907), + 'is_active': True, 'prime_material_cost': 6.16, + 'material_cost': 16.73, 'labour_cost': 28.34, + 'labour_hours_per_unit': 1.2, 'plant_cost': 0.0, + 'total_cost': 45.07, 'notes': None}, + {'id': 1189, 'type': 'solid_floor_insulation', + 'description': 'Ecotherm Eco-Versal General Purpose Insulation Board', 'depth': 50.0, 'depth_unit': 'mm', + 'cost': None, 'cost_unit': 'gbp_per_m2', 'r_value_per_mm': 0.045454547, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': 0.022, + 'thermal_conductivity_unit': 'watt_per_meter_kelvin', 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, 244907), 'is_active': True, + 'prime_material_cost': 8.46, 'material_cost': 19.1, 'labour_cost': 28.34, 'labour_hours_per_unit': 1.2, + 'plant_cost': 0.0, 'total_cost': 47.44, 'notes': None}, {'id': 1190, 'type': 'solid_floor_insulation', + 'description': 'Ecotherm Eco-Versal General Purpose ' + 'Insulation Board', + 'depth': 60.0, 'depth_unit': 'mm', 'cost': None, + 'cost_unit': 'gbp_per_m2', + 'r_value_per_mm': 0.045454547, + 'r_value_unit': 'square_meter_kelvin_per_watt', + 'thermal_conductivity': 0.022, + 'thermal_conductivity_unit': 'watt_per_meter_kelvin', + 'link': 'https://londonbuildingsupplies.co.uk/products/60mm--ecotherm-eco-versal-general-purpose-pir-insulation-board---2.4m-x-1.2m-x-60mm.html', + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, + 12, 244907), + 'is_active': True, 'prime_material_cost': None, + 'material_cost': 24.081198, 'labour_cost': 28.34, + 'labour_hours_per_unit': 1.2, 'plant_cost': 0.0, + 'total_cost': 52.421196, + 'notes': "This material isn't in SPONs but checking" + " online, is around 92% of the cost of the" + " 100mm"}, + {'id': 1191, 'type': 'solid_floor_insulation', + 'description': 'Ecotherm Eco-Versal General Purpose Insulation Board', 'depth': 70.0, 'depth_unit': 'mm', + 'cost': None, 'cost_unit': 'gbp_per_m2', 'r_value_per_mm': 0.045454547, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': 0.022, + 'thermal_conductivity_unit': 'watt_per_meter_kelvin', + 'link': 'https://londonbuildingsupplies.co.uk/products/70mm--ecotherm-eco-versal-general-purpose-pir' + '-insulation-board---2.4m-x-1.2m-x-70mm.html', + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, 244907), 'is_active': True, + 'prime_material_cost': None, 'material_cost': 27.089088, 'labour_cost': 28.34, 'labour_hours_per_unit': 1.2, + 'plant_cost': 0.0, 'total_cost': 55.42909, + 'notes': "This material isn't in SPONs but checking online, is around 104% of the cost of the 100mm (more " + "expensive than 100mm)"}, + {'id': 1192, 'type': 'solid_floor_insulation', + 'description': 'Ecotherm Eco-Versal General Purpose Insulation Board', 'depth': 100.0, 'depth_unit': 'mm', + 'cost': None, 'cost_unit': 'gbp_per_m2', 'r_value_per_mm': 0.045454547, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': 0.022, + 'thermal_conductivity_unit': 'watt_per_meter_kelvin', 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, 244907), 'is_active': True, + 'prime_material_cost': 15.12, 'material_cost': 25.96, 'labour_cost': 30.7, 'labour_hours_per_unit': 1.3, + 'plant_cost': 0.0, 'total_cost': 56.66, 'notes': None}, + {'id': 1193, 'type': 'solid_floor_insulation', 'description': 'Ravatherm XPS X 500 SL Polystyrene Foam', + 'depth': 50.0, 'depth_unit': 'mm', 'cost': None, 'cost_unit': 'gbp_per_m2', 'r_value_per_mm': 0.032258064, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': 0.031, + 'thermal_conductivity_unit': 'watt_per_meter_kelvin', 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, 244907), 'is_active': True, + 'prime_material_cost': None, 'material_cost': 11.07, 'labour_cost': 10.66, 'labour_hours_per_unit': 0.46, + 'plant_cost': 0.0, 'total_cost': 21.73, + 'notes': "In Spons, the thermal conductivity is 0.033 however the datasheet indicates it's 0.32: " + "https://ravagobuildingsolutions.com/uk/wp-content/uploads/sites/30/2022/08/ravatherm-xps-x-500-sl" + "-tds-version-1-20210901.pdf"}, + {'id': 1194, 'type': 'solid_floor_insulation', 'description': 'Ravatherm XPS X 500 SL Polystyrene Foam', + 'depth': 75.0, 'depth_unit': 'mm', 'cost': None, 'cost_unit': 'gbp_per_m2', 'r_value_per_mm': 0.03125, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': 0.032, + 'thermal_conductivity_unit': 'watt_per_meter_kelvin', 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, 244907), 'is_active': True, + 'prime_material_cost': None, 'material_cost': 16.28, 'labour_cost': 10.66, 'labour_hours_per_unit': 0.46, + 'plant_cost': 0.0, 'total_cost': 26.94, 'notes': None}, {'id': 1195, 'type': 'solid_floor_redecoration', + 'description': 'Screeded beds; protection to ' + 'compressible formwork exceeding ' + '600mm wide', + 'depth': 0.0, 'depth_unit': None, 'cost': None, + 'cost_unit': None, 'r_value_per_mm': nan, + 'r_value_unit': 'square_meter_kelvin_per_watt', + 'thermal_conductivity': None, + 'thermal_conductivity_unit': None, 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, + 12, 244907), + 'is_active': True, 'prime_material_cost': 9.6, + 'material_cost': 9.89, 'labour_cost': 2.67, + 'labour_hours_per_unit': 0.15, 'plant_cost': 0.0, + 'total_cost': 12.56, + 'notes': 'This is the screed layer, placed on top ' + 'of the insulation'}, + {'id': 1196, 'type': 'solid_floor_redecoration', 'description': 'Fitting carpet', 'depth': 0.0, + 'depth_unit': None, 'cost': None, 'cost_unit': None, 'r_value_per_mm': nan, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': None, + 'thermal_conductivity_unit': None, 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, 244907), 'is_active': True, + 'prime_material_cost': None, 'material_cost': 0.0, 'labour_cost': 6.59, 'labour_hours_per_unit': 0.37, + 'plant_cost': 0.0, 'total_cost': 6.59, + 'notes': 'SPONs does not have data on re-fitting the carpet so we use the data in Fitted carpeting; Gradus ' + 'woven polypropylene tufted loop\n\n as a baseline. We assume re-use of carpets, therefore we need ' + 'just labour rates'}, + {'id': 1197, 'type': 'solid_floor_redecoration', + 'description': 'Fitting existing softwood skirting or architrave to new frames; 150mm high', 'depth': 0.0, + 'depth_unit': None, 'cost': None, 'cost_unit': None, 'r_value_per_mm': nan, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': None, + 'thermal_conductivity_unit': None, 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, 244907), 'is_active': True, + 'prime_material_cost': None, 'material_cost': 0.01, 'labour_cost': 4.87, 'labour_hours_per_unit': 0.12, + 'plant_cost': 0.0, 'total_cost': 4.88, 'notes': None}, {'id': 1198, 'type': 'ewi_wall_demolition', + 'description': 'Solid & Dry Lined walls: Hack of ' + 'wall finishes with chipping hammer; ' + 'plaster to walls.', + 'depth': 0.0, 'depth_unit': None, 'cost': None, + 'cost_unit': None, 'r_value_per_mm': nan, + 'r_value_unit': 'square_meter_kelvin_per_watt', + 'thermal_conductivity': None, + 'thermal_conductivity_unit': None, 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, + 12, 244907), + 'is_active': True, 'prime_material_cost': None, + 'material_cost': 0.0, 'labour_cost': 10.27, + 'labour_hours_per_unit': 0.33, 'plant_cost': 1.28, + 'total_cost': 11.55, 'notes': None}, + {'id': 1199, 'type': 'ewi_wall_demolition', + 'description': 'Stud walls: Remove wall linings including battening behind; plasterboard and skim', + 'depth': 0.0, 'depth_unit': None, 'cost': None, 'cost_unit': None, 'r_value_per_mm': nan, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': None, + 'thermal_conductivity_unit': None, 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, 244907), 'is_active': True, + 'prime_material_cost': None, 'material_cost': 0.0, 'labour_cost': 6.23, 'labour_hours_per_unit': 0.2, + 'plant_cost': 1.25, 'total_cost': 7.48, 'notes': None}, {'id': 1200, 'type': 'ewi_wall_demolition', + 'description': 'Lathe and Plaster walls: Remove ' + 'wall linings including battening ' + 'behind; wood lath and plaster', + 'depth': 0.0, 'depth_unit': None, 'cost': None, + 'cost_unit': None, 'r_value_per_mm': nan, + 'r_value_unit': 'square_meter_kelvin_per_watt', + 'thermal_conductivity': None, + 'thermal_conductivity_unit': None, 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, + 12, 244907), + 'is_active': True, 'prime_material_cost': None, + 'material_cost': 0.0, 'labour_cost': 6.85, + 'labour_hours_per_unit': 0.22, 'plant_cost': 2.09, + 'total_cost': 8.94, 'notes': None}, + {'id': 1201, 'type': 'ewi_wall_preparation', + 'description': 'Clean and prepare surfaces, one coat Keim dilution, one coat primer and two coats of Keim ' + 'Ecosil paint; Brick or block walls; over 300 mm girth', + 'depth': 0.0, 'depth_unit': None, 'cost': None, 'cost_unit': None, 'r_value_per_mm': nan, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': None, + 'thermal_conductivity_unit': None, 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, 244907), 'is_active': True, + 'prime_material_cost': None, 'material_cost': 7.3, 'labour_cost': 5.62, 'labour_hours_per_unit': 0.3, + 'plant_cost': 0.0, 'total_cost': 12.92, + 'notes': 'This work covers the preparation and priming of the wall before insulating'}, + {'id': 1202, 'type': 'external_wall_insulation', 'description': 'Ecotherm Eco-Versal PIR Insulation Board', + 'depth': 30.0, 'depth_unit': 'mm', 'cost': None, 'cost_unit': 'gbp_per_m2', 'r_value_per_mm': 0.045454547, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': 0.022, + 'thermal_conductivity_unit': 'watt_per_meter_kelvin', 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, 244907), 'is_active': True, + 'prime_material_cost': 6.16, 'material_cost': 16.73, 'labour_cost': 28.34, 'labour_hours_per_unit': 1.2, + 'plant_cost': 0.0, 'total_cost': 45.07, 'notes': None}, + {'id': 1203, 'type': 'external_wall_insulation', 'description': 'Ecotherm Eco-Versal PIR Insulation Board', + 'depth': 50.0, 'depth_unit': 'mm', 'cost': None, 'cost_unit': 'gbp_per_m2', 'r_value_per_mm': 0.045454547, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': 0.022, + 'thermal_conductivity_unit': 'watt_per_meter_kelvin', 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, 244907), 'is_active': True, + 'prime_material_cost': 8.46, 'material_cost': 19.1, 'labour_cost': 28.34, 'labour_hours_per_unit': 1.2, + 'plant_cost': 0.0, 'total_cost': 47.44, 'notes': None}, + {'id': 1204, 'type': 'external_wall_insulation', 'description': 'Ecotherm Eco-Versal PIR Insulation Board', + 'depth': 100.0, 'depth_unit': 'mm', 'cost': None, 'cost_unit': 'gbp_per_m2', 'r_value_per_mm': 0.045454547, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': 0.022, + 'thermal_conductivity_unit': 'watt_per_meter_kelvin', 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, 244907), 'is_active': True, + 'prime_material_cost': 15.12, 'material_cost': 25.96, 'labour_cost': 30.7, 'labour_hours_per_unit': 1.3, + 'plant_cost': 0.0, 'total_cost': 56.66, 'notes': None}, + {'id': 1205, 'type': 'external_wall_insulation', 'description': 'Ecotherm Eco-Versal PIR Insulation Board', + 'depth': 150.0, 'depth_unit': 'mm', 'cost': None, 'cost_unit': 'gbp_per_m2', 'r_value_per_mm': 0.045454547, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': 0.022, + 'thermal_conductivity_unit': 'watt_per_meter_kelvin', 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, 244907), 'is_active': True, + 'prime_material_cost': 23.53, 'material_cost': 34.62, 'labour_cost': 33.06, 'labour_hours_per_unit': 1.4, + 'plant_cost': 0.0, 'total_cost': 67.68, 'notes': None}, + {'id': 1206, 'type': 'external_wall_insulation', 'description': 'Foamglas Grade F Wall Insulation Slabs', + 'depth': 60.0, 'depth_unit': 'mm', 'cost': None, 'cost_unit': 'gbp_per_m2', 'r_value_per_mm': 0.02631579, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': 0.038, + 'thermal_conductivity_unit': 'watt_per_meter_kelvin', 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, 244907), 'is_active': True, + 'prime_material_cost': 41.69, 'material_cost': 53.33, 'labour_cost': 29.52, 'labour_hours_per_unit': 1.25, + 'plant_cost': 0.0, 'total_cost': 82.85, 'notes': None}, + {'id': 1207, 'type': 'external_wall_insulation', 'description': 'Foamglas Grade F Wall Insulation Slabs', + 'depth': 100.0, 'depth_unit': 'mm', 'cost': None, 'cost_unit': 'gbp_per_m2', 'r_value_per_mm': 0.02631579, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': 0.038, + 'thermal_conductivity_unit': 'watt_per_meter_kelvin', 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, 244907), 'is_active': True, + 'prime_material_cost': 86.86, 'material_cost': 99.85, 'labour_cost': 29.52, 'labour_hours_per_unit': 1.25, + 'plant_cost': 0.0, 'total_cost': 129.37, 'notes': None}, + {'id': 1208, 'type': 'external_wall_insulation', 'description': 'Foamglas Grade F Wall Insulation Slabs', + 'depth': 150.0, 'depth_unit': 'mm', 'cost': None, 'cost_unit': 'gbp_per_m2', 'r_value_per_mm': 0.02631579, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': 0.038, + 'thermal_conductivity_unit': 'watt_per_meter_kelvin', 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, 244907), 'is_active': True, + 'prime_material_cost': 130.29, 'material_cost': 144.58, 'labour_cost': 29.52, 'labour_hours_per_unit': 1.25, + 'plant_cost': 0.0, 'total_cost': 174.1, 'notes': None}, {'id': 1209, 'type': 'ewi_wall_redecoration', + 'description': 'EPS insulation fixed with adhesive ' + 'to SFS structure (measured ' + 'separately) with horizontal PVC ' + 'intermediate track and vertical ' + 'T-spines; with glassfibre mesh ' + 'reinforcement embedded in Sto Armat ' + 'Classic Basecoat Render and Stolit ' + 'K 1.5 Decorative Topcoat Render (' + 'white)', + 'depth': 0.0, 'depth_unit': None, 'cost': None, + 'cost_unit': None, 'r_value_per_mm': nan, + 'r_value_unit': 'square_meter_kelvin_per_watt', + 'thermal_conductivity': None, + 'thermal_conductivity_unit': None, 'link': 'SPONs', + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, + 12, 244907), + 'is_active': True, 'prime_material_cost': None, + 'material_cost': 0.0, 'labour_cost': 0.0, + 'labour_hours_per_unit': 0.0, 'plant_cost': 0.0, + 'total_cost': 69.94, + 'notes': 'This material in SPONs is for 70mm EPS ' + 'insulation, which comes in at a cost of ' + '99.17 per meter square. This includes the ' + 'cost of insulation. To get the costing ' + 'for just the works and not the ' + 'insulation, we subtract the cost of EPS ' + 'insulation, using Ravathem 75mm ' + 'insulation as an example, which costs ' + '£29.23 per meter square, giving us the ' + 'cost of the remaining works without ' + 'insulation. This material gives us a cost ' + 'for basecoat, mesh application and a ' + 'render finish'}, + {'id': 1210, 'type': 'low_energy_lighting_installation', + 'description': 'Installation of fittings and cost of bub', 'depth': 0.0, 'depth_unit': None, 'cost': None, + 'cost_unit': 'gbp_per_unit', 'r_value_per_mm': nan, 'r_value_unit': 'square_meter_kelvin_per_watt', + 'thermal_conductivity': None, 'thermal_conductivity_unit': None, + 'link': 'https://www.checkatrade.com/blog/cost-guides/cost-install-downlights/ ' + 'https://www.hamuch.com/cost/led-spot-light#:~:text=It%20costs%20an%20average%20of,' + 'will%20drive%20up%20the%20cost.', + 'created_at': datetime.datetime(2023, 11, 28, 22, 49, 12, 244907), 'is_active': True, + 'prime_material_cost': None, 'material_cost': 20.0, 'labour_cost': 15.0, 'labour_hours_per_unit': 0.8, + 'plant_cost': 0.0, 'total_cost': 66.0, + 'notes': 'We estimate the unit economics from the checkatrade article. We assume that the average job ' + 'consists of installing 6 lights based on the hamuch article. We use the median value of 400 for a ' + 'job of 6 lights'}] + + testing_properties = [ + { + "address": "2 South Terrace", + "postcode": "NN1 5JY" + }, + { + "address": "8 Lindlings", + "postcode": "HP1 2HA", + }, + { + "address": "44 Lindlings", + "postcode": "HP1 2HE", + }, + { + "address": "46 Chaulden Terrace", + "postcode": "HP1 2AN", + }, + { + "address": "73 Long Chaulden", + "postcode": "HP1 2HX", + }, + { + "address": "77 Simmons Drive", + "postcode": "B32 1SL", + }, + { + "address": "139 School Road", + "postcode": "B28 8JF", + }, + ] + + testing_properties_results = [] + for testing_property_config in testing_properties: + + searcher = SearchEpc( + address1=testing_property_config["address"], + postcode=testing_property_config["postcode"], + auth_token="a2Nvbm5rb3dsZXNzYXJAZ21haWwuY29tOjY5MGJiMWM0NmIyOGI5ZDUxYzAxMzQzYzNiZGNlZGJjZDNmODQwMzA=", + os_api_key="" + ) + searcher.find_property(skip_os=True) + epc_records = { + 'original_epc': searcher.newest_epc.copy(), + 'full_sap_epc': searcher.full_sap_epc.copy(), + 'old_data': searcher.older_epcs.copy(), + } + + prepared_epc = EPCRecord( + epc_records=epc_records, + run_mode="newdata", + cleaning_data=cleaning_data + ) + + p = Property( + id=prepared_epc.uprn, + address=searcher.address_clean, + postcode=searcher.postcode_clean, + epc_record=prepared_epc, + ) + p.get_spatial_data(uprn_filenames) + p.get_components(cleaned, photo_supply_lookup, floor_area_decile_thresholds) + + recommender = Recommendations(property_instance=p, materials=materials) + recommender.recommend() + + wall_recommendations = recommender.wall_recomender.recommendations + loft_recommendations = recommender.roof_recommender.recommendations + floor_recommendations = recommender.floor_recommender.recommendations + solar_recommendations = recommender.solar_recommender.recommendation + + # TODO: TEMP! + solar_recommendations[0]["photo_supply"] = 50 + + # Take just the cavity wall and loft recommendations + p.create_base_difference_epc_record(cleaned_lookup=cleaned) + + wall_scoring_data = [] + for wall_rec in wall_recommendations: + recommendation_record = p.base_difference_record.df.to_dict("records")[0].copy() + scoring_dict = p.create_recommendation_scoring_data( + property_id=p.id, recommendation_record=recommendation_record, recommendation=wall_rec, + ) + wall_scoring_data.append(scoring_dict) + + roof_scoring_data = [] + for roof_rec in loft_recommendations: + recommendation_record = p.base_difference_record.df.to_dict("records")[0].copy() + scoring_dict = p.create_recommendation_scoring_data( + property_id=p.id, recommendation_record=recommendation_record, recommendation=roof_rec, + ) + roof_scoring_data.append(scoring_dict) + + floor_scoring_data = [] + for floor_rec in floor_recommendations: + recommendation_record = p.base_difference_record.df.to_dict("records")[0].copy() + scoring_dict = p.create_recommendation_scoring_data( + property_id=p.id, recommendation_record=recommendation_record, recommendation=floor_rec, + ) + floor_scoring_data.append(scoring_dict) + + solar_scoring_data = [] + for solar_rec in solar_recommendations: + recommendation_record = p.base_difference_record.df.to_dict("records")[0].copy() + scoring_dict = p.create_recommendation_scoring_data( + property_id=p.id, recommendation_record=recommendation_record, recommendation=solar_rec, + ) + solar_scoring_data.append(scoring_dict) + + # We now produce a combined, applying just the first roof recommendation to the first wall recommendation + + # Firstly apply the wall + starting_record = p.base_difference_record.df.to_dict("records")[0].copy() + scoring_dict_with_wall = p.create_recommendation_scoring_data( + property_id=p.id, + recommendation_record=starting_record.copy(), + recommendation=wall_recommendations[0], + ) if wall_recommendations else starting_record.copy() + + scoring_dict_with_wall_and_roof = p.create_recommendation_scoring_data( + property_id=p.id, + recommendation_record=scoring_dict_with_wall.copy(), + recommendation=loft_recommendations[0], + ) if loft_recommendations else scoring_dict_with_wall.copy() + + scoring_dict_with_wall_roof_floor = p.create_recommendation_scoring_data( + property_id=p.id, + recommendation_record=scoring_dict_with_wall_and_roof.copy(), + recommendation=floor_recommendations[0], + ) if floor_recommendations else scoring_dict_with_wall_and_roof.copy() + + scoring_dict_with_wall_roof_floor_solar = p.create_recommendation_scoring_data( + property_id=p.id, + recommendation_record=scoring_dict_with_wall_roof_floor.copy(), + recommendation=solar_recommendations[0], + ) if solar_recommendations else scoring_dict_with_wall_roof_floor.copy() + + # We score each dataset with the model + wall_only_predictions_dict = model_api.predict_all( + df=pd.DataFrame(wall_scoring_data), + bucket="retrofit-data-dev", + prediction_buckets={ + "sap_change_predictions": "retrofit-sap-predictions-dev", + } + ) if wall_scoring_data else {"sap_change_predictions": pd.DataFrame()} + + roof_only_predictions_dict = model_api.predict_all( + df=pd.DataFrame(roof_scoring_data), + bucket="retrofit-data-dev", + prediction_buckets={ + "sap_change_predictions": "retrofit-sap-predictions-dev", + } + ) if roof_scoring_data else {"sap_change_predictions": pd.DataFrame()} + + floor_only_predictions_dict = model_api.predict_all( + df=pd.DataFrame(floor_scoring_data), + bucket="retrofit-data-dev", + prediction_buckets={ + "sap_change_predictions": "retrofit-sap-predictions-dev", + } + ) if floor_scoring_data else {"sap_change_predictions": pd.DataFrame()} + + solar_only_predictions_dict = model_api.predict_all( + df=pd.DataFrame(solar_scoring_data), + bucket="retrofit-data-dev", + prediction_buckets={ + "sap_change_predictions": "retrofit-sap-predictions-dev", + } + ) if solar_scoring_data else {"sap_change_predictions": pd.DataFrame()} + + wall_roof_predictions_dict = model_api.predict_all( + df=pd.DataFrame([scoring_dict_with_wall_and_roof]), + bucket="retrofit-data-dev", + prediction_buckets={ + "sap_change_predictions": "retrofit-sap-predictions-dev", + } + ) + + wall_roof_floor_predictions_dict = model_api.predict_all( + df=pd.DataFrame([scoring_dict_with_wall_roof_floor]), + bucket="retrofit-data-dev", + prediction_buckets={ + "sap_change_predictions": "retrofit-sap-predictions-dev", + } + ) + + wall_roof_floor_solar_predictions_dict = model_api.predict_all( + df=pd.DataFrame([scoring_dict_with_wall_roof_floor_solar]), + bucket="retrofit-data-dev", + prediction_buckets={ + "sap_change_predictions": "retrofit-sap-predictions-dev", + } + ) + + wall_only_predictions = wall_only_predictions_dict["sap_change_predictions"].copy() + wall_only_predictions["type"] = "wall_only" + + roof_only_predictions = roof_only_predictions_dict["sap_change_predictions"].copy() + roof_only_predictions["type"] = "roof_only" + + floor_only_predictions = floor_only_predictions_dict["sap_change_predictions"].copy() + floor_only_predictions["type"] = "floor_only" + + solar_only_predictions = solar_only_predictions_dict["sap_change_predictions"].copy() + solar_only_predictions["type"] = "solar_only" + + wall_and_roof_predictions = wall_roof_predictions_dict["sap_change_predictions"].copy() + wall_and_roof_predictions["type"] = "wall_and_roof" + + wall_roof_floor_predictions = wall_roof_floor_predictions_dict["sap_change_predictions"].copy() + wall_roof_floor_predictions["type"] = "wall_roof_floor" + + wall_roof_floor_solar_predictions = wall_roof_floor_solar_predictions_dict["sap_change_predictions"].copy() + wall_roof_floor_solar_predictions["type"] = "wall_roof_floor_solar" + + # We collate the results + results = pd.concat( + [ + wall_only_predictions, + roof_only_predictions, + floor_only_predictions, + solar_only_predictions, + wall_and_roof_predictions, + wall_roof_floor_predictions, + wall_roof_floor_solar_predictions + ] + ) + results["gain"] = results["predictions"] - int(p.data["current-energy-efficiency"]) + results["address"] = p.address + + testing_properties_results.append(results) + + testing_properties_results = pd.concat(testing_properties_results) diff --git a/recommendations/Costs.py b/recommendations/Costs.py index 106f4453..dd1f1a21 100644 --- a/recommendations/Costs.py +++ b/recommendations/Costs.py @@ -37,6 +37,9 @@ MCS_SOLAR_PV_COST_DATA = { "average_cost_per_kwh-Northern Ireland": 2126.09, } +# This is based on quotes from installers +BATTERY_COST = 3500 + class Costs: """ @@ -835,7 +838,7 @@ class Costs: "labour_days": labour_days } - def solar_pv(self, wattage: float): + def solar_pv(self, wattage: float, has_battery: bool = False): """ Calculates the total cost for solar PV based data provided by the MCS dashboard, which contains @@ -847,8 +850,8 @@ class Costs: Price can also be benchmarked against this checkatrade article: https://www.checkatrade.com/blog/cost-guides/cost-of-solar-panel-installation/ - :param wattage: Peak wattage of the solar PV system - :return: + :param wattage: Peak wattage of the solar PV system] + :param has_battery: Bool, whether the system includes a battery """ # Get the cost data relevant to the region @@ -858,6 +861,11 @@ class Costs: total_cost = kw * regional_cost subtotal_before_vat = total_cost / (1 + self.VAT_RATE) + + if has_battery: + # The battery cost is based on the £3500 quote, recieved from installers + subtotal_before_vat += BATTERY_COST + vat = total_cost - subtotal_before_vat # Labour hours are based on estimates from online research but an average team seems to consist of 3 people diff --git a/recommendations/Recommendations.py b/recommendations/Recommendations.py index 0444006d..6ca7badb 100644 --- a/recommendations/Recommendations.py +++ b/recommendations/Recommendations.py @@ -44,6 +44,9 @@ class Recommendations: """ This method runs the recommendations for the individual measures and then appends them to a list for output + + The recommendations are implemented in order of suggested phase, from fabric first to heating systems, to + renewables. :return: """ diff --git a/recommendations/SolarPvRecommendations.py b/recommendations/SolarPvRecommendations.py index 8a773570..9995bbe1 100644 --- a/recommendations/SolarPvRecommendations.py +++ b/recommendations/SolarPvRecommendations.py @@ -39,17 +39,56 @@ class SolarPvRecommendations: if not is_valid_property_type or not is_valid_roof_type or not has_no_existing_solar_pv: return - # We now have a property which is potentially suitable for solar PV - number_solar_panels = np.floor(self.property.solar_pv_roof_area / self.SOLAR_PANEL_AREA) - solar_panel_wattage = number_solar_panels * self.SOLAR_PANEL_WATTAGE + # For the solar recommendations, we produce the following scenarios: + # 1) Solar panels only, we present a high, medium and low coverage + # 2) With and without battery + roof_coverage_scenarios = [ + self.property.solar_pv_percentage - 0.1, self.property.solar_pv_percentage, + self.property.solar_pv_percentage + 0.1 + ] + # We make sure we haven't gone too low or high + roof_coverage_scenarios = [v for v in roof_coverage_scenarios if 0 <= v <= 1] + battery_scenarios = [False, True] - roof_coverage_percent = round(self.property.solar_pv_percentage * 100) + # I now produce the cross product of the scenarios + scenarios = [(roof, battery) for roof in roof_coverage_scenarios for battery in battery_scenarios] - # Given the wattage, we estimate the cost of the solar PV system. This is based on the MCS database - # of solar PV installations - cost_result = self.costs.solar_pv(wattage=solar_panel_wattage) + for roof_coverage, has_battery in scenarios: + # We now have a property which is potentially suitable for solar PV + solar_pv_roof_area = self.property.get_solar_pv_roof_area(roof_coverage) - kw = np.floor(solar_panel_wattage / 100) / 10 + number_solar_panels = np.floor(solar_pv_roof_area / self.SOLAR_PANEL_AREA) + solar_panel_wattage = number_solar_panels * self.SOLAR_PANEL_WATTAGE + + roof_coverage_percent = round(roof_coverage * 100) + + # Given the wattage, we estimate the cost of the solar PV system. This is based on the MCS database + # of solar PV installations + cost_result = self.costs.solar_pv(wattage=solar_panel_wattage, has_battery=has_battery) + + kw = np.floor(solar_panel_wattage / 100) / 10 + + if has_battery: + description = (f"Install a {kw} kilowatt-peak (kWp) solar photovoltaic (PV) panel system on " + f"{round(roof_coverage_percent * 100)}% the roof, with a battery storage system.") + else: + description = (f"Install a {kw} kilowatt-peak (kWp) solar photovoltaic (PV) p" + f"anel system on {round(roof_coverage_percent * 100)}% the roof.") + + self.recommendation.append( + { + "parts": [], + "type": "solar_pv", + "description": description, + "starting_u_value": None, + "new_u_value": None, + "sap_points": None, + **cost_result, + # This is required for simulating the SAP impact. solar_pv_percentage is between 0 & 1 so we scale + # back up here + "photo_supply": 100 * scenario + } + ) self.recommendation = [ { From 925a6c1887cb11c16e231167923a286fdc552f7b Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Wed, 14 Feb 2024 12:00:49 +0000 Subject: [PATCH 265/526] Added phasing figures into recommender --- recommendations/FireplaceRecommendations.py | 3 +- recommendations/FloorRecommendations.py | 8 +-- recommendations/LightingRecommendations.py | 3 +- recommendations/Recommendations.py | 54 +++++++++++-------- recommendations/RoofRecommendations.py | 12 +++-- recommendations/SolarPvRecommendations.py | 21 ++------ recommendations/VentilationRecommendations.py | 1 + recommendations/WallRecommendations.py | 20 ++++--- recommendations/WindowsRecommendations.py | 3 +- 9 files changed, 66 insertions(+), 59 deletions(-) diff --git a/recommendations/FireplaceRecommendations.py b/recommendations/FireplaceRecommendations.py index c193b7ce..5d620d49 100644 --- a/recommendations/FireplaceRecommendations.py +++ b/recommendations/FireplaceRecommendations.py @@ -20,7 +20,7 @@ class FireplaceRecommendations(Definitions): self.has_ventilaion = None self.recommendation = None - def recommend(self): + def recommend(self, phase=0): """ Based on the number of open fireplcaes found, we recommend sealing each one at a cost of around £500 @@ -37,6 +37,7 @@ class FireplaceRecommendations(Definitions): # We recommend installing two mechanical ventilation systems self.recommendation = [ { + "phase": phase, "parts": [], "type": "sealing_open_fireplace", "description": "Seal %s open fireplaces" % str(number_open_fireplaces), diff --git a/recommendations/FloorRecommendations.py b/recommendations/FloorRecommendations.py index 2f568264..a19ee025 100644 --- a/recommendations/FloorRecommendations.py +++ b/recommendations/FloorRecommendations.py @@ -69,7 +69,7 @@ class FloorRecommendations(Definitions): # TODO: To be completed self.exposed_floor_non_insulation_materials = [] - def recommend(self): + def recommend(self, phase=0): u_value = self.property.floor["thermal_transmittance"] property_type = self.property.data["property-type"] @@ -129,7 +129,8 @@ class FloorRecommendations(Definitions): self.recommend_floor_insulation( u_value=u_value, insulation_materials=self.solid_floor_insulation_materials, - non_insulation_materials=self.solid_floor_non_insulation_materials + non_insulation_materials=self.solid_floor_non_insulation_materials, + phase=phase ) return @@ -156,7 +157,7 @@ class FloorRecommendations(Definitions): raise ValueError("Invalid material type - implement me!") - def recommend_floor_insulation(self, u_value, insulation_materials, non_insulation_materials): + def recommend_floor_insulation(self, u_value, insulation_materials, non_insulation_materials, phase): """ This method is tasked with estimating the impact of performing suspended floor insulation :return: @@ -198,6 +199,7 @@ class FloorRecommendations(Definitions): self.recommendations.append( { + "phase": phase, "parts": [ get_recommended_part( part=material.to_dict(), diff --git a/recommendations/LightingRecommendations.py b/recommendations/LightingRecommendations.py index 788d1ad1..6d50f0a2 100644 --- a/recommendations/LightingRecommendations.py +++ b/recommendations/LightingRecommendations.py @@ -51,7 +51,7 @@ class LightingRecommendations: return total_energy_savings_per_year, carbon_reduction_tonnes - def recommend(self): + def recommend(self, phase=0): """ This method will check if there are any lighting fittings that aren't low energy. @@ -90,6 +90,7 @@ class LightingRecommendations: self.recommendation = [ { + "phase": phase, "parts": [], "type": "low_energy_lighting", "description": description, diff --git a/recommendations/Recommendations.py b/recommendations/Recommendations.py index 6ca7badb..b4b764c2 100644 --- a/recommendations/Recommendations.py +++ b/recommendations/Recommendations.py @@ -51,48 +51,58 @@ class Recommendations: """ property_recommendations = [] - - # Floor recommendations - self.floor_recommender.recommend() - if self.floor_recommender.recommendations: - property_recommendations.append(self.floor_recommender.recommendations) - + phase = 0 # Wall recommendations - self.wall_recomender.recommend() + self.wall_recomender.recommend(phase=phase) if self.wall_recomender.recommendations: property_recommendations.append(self.wall_recomender.recommendations) - - # Roof recommendations - self.roof_recommender.recommend() - if self.roof_recommender.recommendations: - property_recommendations.append(self.roof_recommender.recommendations) + phase += 1 # Ventilation recommendations # We only produce a ventilation recommendation if the property is recommended to have wall or roof insulation + # We will not attribute a SAP impact to the ventilation recommendation, since we've seen that this has no + # real impact on the SAP score. Therefore, we don't need to include phasing for ventilation. If we have any + # wall or roof recommendations, we will ensure that ventilation is included in the simulation if self.wall_recomender.recommendations or self.roof_recommender.recommendations: self.ventilation_recomender.recommend() if self.ventilation_recomender.recommendation: property_recommendations.append(self.ventilation_recomender.recommendation) - # Fireplace sealing recommendations - self.fireplace_recommender.recommend() - if self.fireplace_recommender.recommendation: - property_recommendations.append(self.fireplace_recommender.recommendation) + # Roof recommendations + self.roof_recommender.recommend(phase=phase) + if self.roof_recommender.recommendations: + property_recommendations.append(self.roof_recommender.recommendations) + phase += 1 - # Lighting recommendations - self.lighting_recommender.recommend() - if self.lighting_recommender.recommendation: - property_recommendations.append(self.lighting_recommender.recommendation) + # Floor recommendations + self.floor_recommender.recommend(phase=phase) + if self.floor_recommender.recommendations: + property_recommendations.append(self.floor_recommender.recommendations) + phase += 1 # Windows recommendations - self.windows_recommender.recommend() + self.windows_recommender.recommend(phase=phase) if self.windows_recommender.recommendation: property_recommendations.append(self.windows_recommender.recommendation) + phase += 1 + + # Fireplace sealing recommendations + self.fireplace_recommender.recommend(phase=phase) + if self.fireplace_recommender.recommendation: + property_recommendations.append(self.fireplace_recommender.recommendation) + phase += 1 + + # Lighting recommendations + self.lighting_recommender.recommend(phase=phase) + if self.lighting_recommender.recommendation: + property_recommendations.append(self.lighting_recommender.recommendation) + phase += 1 # Solar recommendations - self.solar_recommender.recommend() + self.solar_recommender.recommend(phase=phase) if self.solar_recommender.recommendation: property_recommendations.append(self.solar_recommender.recommendation) + phase += 1 # We insert temporary ids into the recommendations which is important for the optimiser later property_recommendations = self.insert_temp_recommendation_id(property_recommendations) diff --git a/recommendations/RoofRecommendations.py b/recommendations/RoofRecommendations.py index 0bbfd69d..eb1c6c4f 100644 --- a/recommendations/RoofRecommendations.py +++ b/recommendations/RoofRecommendations.py @@ -53,7 +53,7 @@ class RoofRecommendations: ] ] - def recommend(self): + def recommend(self, phase): if self.property.roof["has_dwelling_above"]: return @@ -98,11 +98,11 @@ class RoofRecommendations: return if self.property.roof["is_pitched"] or self.property.roof["is_flat"]: - self.recommend_roof_insulation(u_value, insulation_thickness, self.property.roof) + self.recommend_roof_insulation(u_value, insulation_thickness, self.property.roof, phase) return if self.property.roof["is_roof_room"]: - self.recommend_room_roof_insulation(u_value) + self.recommend_room_roof_insulation(u_value, phase) return raise NotImplementedError("Implement me") @@ -124,7 +124,7 @@ class RoofRecommendations: raise ValueError("Invalid material type") def recommend_roof_insulation( - self, u_value, insulation_thickness, roof + self, u_value, insulation_thickness, roof, phase ): """ @@ -217,6 +217,7 @@ class RoofRecommendations: recommendations.append( { + "phase": phase, "parts": [ get_recommended_part( part=material.to_dict(), @@ -236,7 +237,7 @@ class RoofRecommendations: self.recommendations = recommendations - def recommend_room_roof_insulation(self, u_value): + def recommend_room_roof_insulation(self, u_value, phase): """ This method recommends room in roof insulation for properties that have been identified to possess a room in roof. @@ -314,6 +315,7 @@ class RoofRecommendations: recommendations.append( { + "phase": phase, "parts": [ get_recommended_part( part=material, diff --git a/recommendations/SolarPvRecommendations.py b/recommendations/SolarPvRecommendations.py index 9995bbe1..5fae09b3 100644 --- a/recommendations/SolarPvRecommendations.py +++ b/recommendations/SolarPvRecommendations.py @@ -18,7 +18,7 @@ class SolarPvRecommendations: self.recommendation = [] - def recommend(self): + def recommend(self, phase): """ We check if a property is potentially suitable for solar PV based on the following criteria: - The property is a house or bungalow @@ -77,6 +77,7 @@ class SolarPvRecommendations: self.recommendation.append( { + "phase": phase, "parts": [], "type": "solar_pv", "description": description, @@ -86,22 +87,6 @@ class SolarPvRecommendations: **cost_result, # This is required for simulating the SAP impact. solar_pv_percentage is between 0 & 1 so we scale # back up here - "photo_supply": 100 * scenario + "photo_supply": 100 * roof_coverage } ) - - self.recommendation = [ - { - "parts": [], - "type": "solar_pv", - "description": f"Install a {kw} kilowatt-peak (kWp) solar photovoltaic (PV) panel system on " - f"{roof_coverage_percent}% the roof", - "starting_u_value": None, - "new_u_value": None, - "sap_points": None, - **cost_result, - # This is required for simulating the SAP impact. solar_pv_percentage is between 0 & 1 so we scale - # back up here - "photo_supply": 100 * self.property.solar_pv_percentage - } - ] diff --git a/recommendations/VentilationRecommendations.py b/recommendations/VentilationRecommendations.py index 6c61f27c..7241cdec 100644 --- a/recommendations/VentilationRecommendations.py +++ b/recommendations/VentilationRecommendations.py @@ -62,6 +62,7 @@ class VentilationRecommendations(Definitions): # We recommend installing two mechanical ventilation systems self.recommendation = [ { + "phase": None, "parts": part, "type": part[0]["type"], "description": f"Install {n_units} {part[0]['description']} units", diff --git a/recommendations/WallRecommendations.py b/recommendations/WallRecommendations.py index 6e2d64ec..467c6ad3 100644 --- a/recommendations/WallRecommendations.py +++ b/recommendations/WallRecommendations.py @@ -97,7 +97,7 @@ class WallRecommendations(Definitions): return True - def recommend(self): + def recommend(self, phase=0): # if building built after 1990 + we're able to identify U-value + # U-value less than 0.18 and if in or close to a conversation area, # recommend internal wall insulation as a possible measure @@ -146,19 +146,19 @@ class WallRecommendations(Definitions): if is_cavity_wall: if u_value >= self.BUILDING_REGULATIONS_PART_L_MAX_U_VALUE: # Test filling cavity - self.find_cavity_insulation(u_value, insulation_thickness) + self.find_cavity_insulation(u_value, insulation_thickness, phase) return # Remaining wall types are treated with IWI or EWI if u_value >= self.BUILDING_REGULATIONS_PART_L_MAX_U_VALUE: - self.find_insulation(u_value) + self.find_insulation(u_value, phase) return # If the u-value is within regulations, we don't do anything return - def find_cavity_insulation(self, u_value, insulation_thickness): + def find_cavity_insulation(self, u_value, insulation_thickness, phase): """ This method tests different materials to fill the cavity wall, determining which material will give us the best U-value. @@ -210,6 +210,7 @@ class WallRecommendations(Definitions): recommendations.append( { + "phase": phase, "parts": [ get_recommended_part( part=material.to_dict(), @@ -229,7 +230,7 @@ class WallRecommendations(Definitions): self.recommendations = recommendations - def _find_insulation(self, u_value, insulation_materials, non_insulation_materials): + def _find_insulation(self, u_value, insulation_materials, non_insulation_materials, phase): lowest_selected_u_value = None recommendations = [] @@ -274,6 +275,7 @@ class WallRecommendations(Definitions): recommendations.append( { + "phase": phase, "parts": [ get_recommended_part( part=material.to_dict(), @@ -293,7 +295,7 @@ class WallRecommendations(Definitions): return recommendations - def find_insulation(self, u_value): + def find_insulation(self, u_value, phase): """ This function contains the logic for finding potential insulation measures for a property, depending on the parts available and whether the property can have external wall insulation installed @@ -310,13 +312,15 @@ class WallRecommendations(Definitions): ewi_recommendations = self._find_insulation( u_value=u_value, insulation_materials=pd.DataFrame(self.external_wall_insulation_materials), - non_insulation_materials=self.external_wall_non_insulation_materials + non_insulation_materials=self.external_wall_non_insulation_materials, + phase=phase ) iwi_recommendations = self._find_insulation( u_value=u_value, insulation_materials=pd.DataFrame(self.internal_wall_insulation_materials), - non_insulation_materials=self.internal_wall_non_insulation_materials + non_insulation_materials=self.internal_wall_non_insulation_materials, + phase=phase ) self.recommendations += ewi_recommendations + iwi_recommendations diff --git a/recommendations/WindowsRecommendations.py b/recommendations/WindowsRecommendations.py index b6ecd099..d7404e3b 100644 --- a/recommendations/WindowsRecommendations.py +++ b/recommendations/WindowsRecommendations.py @@ -30,7 +30,7 @@ class WindowsRecommendations: raise ValueError("There should only be one window glazing material") self.glazing_material = self.glazing_material[0] - def recommend(self): + def recommend(self, phase=0): """ This method will recommend the best possible glazing options for a property. @@ -85,6 +85,7 @@ class WindowsRecommendations: self.recommendation = [ { + "phase": phase, "parts": [], "type": "windows_glazing", "description": description, From 0f60082ba1bd4346f07b8ba5f9e417600a2737cc Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Wed, 14 Feb 2024 19:15:41 +0000 Subject: [PATCH 266/526] Added in the sequential scoring code --- backend/Property.py | 257 ++++++++++++++---------- backend/app/plan/router.py | 16 +- recommendations/FloorRecommendations.py | 1 + recommendations/Recommendations.py | 47 ++++- 4 files changed, 207 insertions(+), 114 deletions(-) diff --git a/backend/Property.py b/backend/Property.py index e57d8326..109f70a9 100644 --- a/backend/Property.py +++ b/backend/Property.py @@ -150,158 +150,195 @@ class Property: # self.base_difference_record.df - def adjust_difference_record_with_recommendations(self, property_recommendations): + def adjust_difference_record_with_recommendations( + self, property_recommendations, + property_representative_recommendations + ): """ This method will adjust the difference record, based on the recommendations made for the property + + In order to score the measures, we need to consider the phase of the retrofit. + :param property_recommendations: dictionary of recommendations for the property + :param property_representative_recommendations: dictionary of representative recommendations for the property """ self.recommendations_scoring_data = [] + phases = sorted([r[0]["phase"] for r in property_recommendations if r[0]["phase"] is not None]) + + for phase in phases: + property_recommendations_by_phase = [r for r in property_recommendations if r[0]["phase"] == phase][0] + previous_phases = [p for p in phases if p < phase] + previous_phase_representatives = [ + r for r in property_representative_recommendations if r["phase"] in previous_phases + ] + recommendation_record = self.base_difference_record.df.to_dict("records")[0].copy() + + for rec in property_recommendations_by_phase: + # We simulate the impact of the recommendation at this current phase, and all of the prior phases - for recommendations_by_type in property_recommendations: - for i, rec in enumerate(recommendations_by_type): - recommendation_record = self.base_difference_record.df.to_dict("records")[0].copy() scoring_dict = self.create_recommendation_scoring_data( - property_id=self.id, recommendation_record=recommendation_record, recommendation=rec, + property_id=self.id, + recommendation_record=recommendation_record, + recommendations=previous_phase_representatives + [rec], + primary_recommendation_id=rec["recommendation_id"] ) - self.recommendations_scoring_data.append(scoring_dict) @staticmethod - def create_recommendation_scoring_data(property_id, recommendation_record, recommendation: dict): + def create_recommendation_scoring_data( + property_id, recommendation_record, recommendations: list, primary_recommendation_id: int + ): + """ + This function will iterate through a list of recommendations and apply a simulation for each recommendation + This allows us to later multiple measures and see the impact of the measures on the property + :param property_id: The id of the property + :param recommendation_record: The record of the property, which will be updated + :param recommendations: The list of recommendations to apply + :param primary_recommendation_id: The id of the primary recommendation, which is used to identify the record + :return: The updated recommendation record + """ + + output = recommendation_record.copy() for col in [ "walls_insulation_thickness", "floor_insulation_thickness", "roof_insulation_thickness" ]: - if recommendation_record[col] is None: - recommendation_record[col] = "none" + if output[col] is None: + output[col] = "none" - # We update the description to indicate it's insulated - if recommendation["type"] in ["internal_wall_insulation", "external_wall_insulation", "cavity_wall_insulation"]: - # The upgrade made here is to the u-value of the walls and the description of the - # insulation thickness - recommendation_record["walls_thermal_transmittance_ending"] = recommendation["new_u_value"] - recommendation_record["walls_insulation_thickness_ending"] = "above average" - recommendation_record["walls_energy_eff_ending"] = "Good" + for recommendation in recommendations: + # For the list of recommendations we have, we iteratively update the output - # Note: often when the wall is insulatied, the internal/external insulation is not noted so we should - # test the impact of using these booleans - if recommendation["type"] == "external_wall_insulation": - recommendation_record["external_insulation"] = True - recommendation_record["internal_insulation"] = False + # We update the description to indicate it's insulated + if recommendation["type"] in [ + "internal_wall_insulation", "external_wall_insulation", "cavity_wall_insulation" + ]: + # The upgrade made here is to the u-value of the walls and the description of the + # insulation thickness + output["walls_thermal_transmittance_ending"] = recommendation["new_u_value"] + output["walls_insulation_thickness_ending"] = "above average" + output["walls_energy_eff_ending"] = "Good" - if recommendation["type"] == "internal_wall_insulation": - recommendation_record["external_insulation"] = False - recommendation_record["internal_insulation"] = True + # Note: often when the wall is insulatied, the internal/external insulation is not noted so we should + # test the impact of using these booleans + if recommendation["type"] == "external_wall_insulation": + output["external_insulation"] = True + output["internal_insulation"] = False - else: - if recommendation_record["walls_thermal_transmittance_ending"] is None: - raise ValueError("We should not have a None value for the u value") + if recommendation["type"] == "internal_wall_insulation": + output["external_insulation"] = False + output["internal_insulation"] = True - if recommendation_record["walls_insulation_thickness_ending"] is None: - recommendation_record["walls_insulation_thickness_ending"] = "none" + # When making a recommendation for the wall, we will also update the ventilation + if output["mechanical_ventilation_ending"] == 'natural': + output["mechanical_ventilation_ending"] = 'mechanical, extract only' - # Update description to indicate it's insulate - if recommendation["type"] in [ - "solid_floor_insulation", "suspended_floor_insulation", "exposed_floor_insulation" - ]: - if len(recommendation["parts"]) > 1: - raise NotImplementedError("Have more than 1 floor insulation part - handle this case") + else: + if output["walls_thermal_transmittance_ending"] is None: + raise ValueError("We should not have a None value for the u value") - # recommendation_record["floor_thermal_transmittance_ending"] = recommendation["new_u_value"] - # We don't really see above average for this in the training data - recommendation_record["floor_insulation_thickness_ending"] = "average" - # This is rarely ever populated in the training data - # recommendation_record["floor_energy_eff_ending"] = "Good" - else: - if recommendation_record["floor_thermal_transmittance_ending"] is None: - raise ValueError("We should not have a None value for the u value") + if output["walls_insulation_thickness_ending"] is None: + output["walls_insulation_thickness_ending"] = "none" - if recommendation_record["floor_insulation_thickness_ending"] is None: - recommendation_record["floor_insulation_thickness_ending"] = "none" + # Update description to indicate it's insulate + if recommendation["type"] in [ + "solid_floor_insulation", "suspended_floor_insulation", "exposed_floor_insulation" + ]: + if len(recommendation["parts"]) > 1: + raise NotImplementedError("Have more than 1 floor insulation part - handle this case") - if recommendation["type"] in ["loft_insulation", "room_roof_insulation", "flat_roof_insulation"]: - recommendation_record["roof_thermal_transmittance_ending"] = recommendation["new_u_value"] + # output["floor_thermal_transmittance_ending"] = recommendation["new_u_value"] + # We don't really see above average for this in the training data + output["floor_insulation_thickness_ending"] = "average" + # This is rarely ever populated in the training data + # output["floor_energy_eff_ending"] = "Good" + else: + if output["floor_thermal_transmittance_ending"] is None: + raise ValueError("We should not have a None value for the u value") - parts = recommendation["parts"] - if len(parts) != 1: - raise ValueError("More than one part for roof insulation - investiage me") + if output["floor_insulation_thickness_ending"] is None: + output["floor_insulation_thickness_ending"] = "none" - # This is based on the values we have in the training data - valid_numeric_values = [ - 12, 25, 50, 75, 100, 150, 200, 250, 270, 300, 350, 400 - ] + if recommendation["type"] in ["loft_insulation", "room_roof_insulation", "flat_roof_insulation"]: + output["roof_thermal_transmittance_ending"] = recommendation["new_u_value"] - proposed_depth = int(parts[0]["depth"]) - if proposed_depth not in valid_numeric_values: - # Take the nearest value for scoring - proposed_depth = min(valid_numeric_values, key=lambda x: abs(x - proposed_depth)) + parts = recommendation["parts"] + if len(parts) != 1: + raise ValueError("More than one part for roof insulation - investiage me") - recommendation_record["roof_insulation_thickness_ending"] = str(proposed_depth) - if recommendation["type"] == "loft_insulation": - if proposed_depth >= 270: - recommendation_record["roof_energy_eff_ending"] = "Very Good" + # This is based on the values we have in the training data + valid_numeric_values = [ + 12, 25, 50, 75, 100, 150, 200, 250, 270, 300, 350, 400 + ] + + proposed_depth = int(parts[0]["depth"]) + if proposed_depth not in valid_numeric_values: + # Take the nearest value for scoring + proposed_depth = min(valid_numeric_values, key=lambda x: abs(x - proposed_depth)) + + output["roof_insulation_thickness_ending"] = str(proposed_depth) + if recommendation["type"] == "loft_insulation": + if proposed_depth >= 270: + output["roof_energy_eff_ending"] = "Very Good" + else: + output["roof_energy_eff_ending"] = "Good" else: - recommendation_record["roof_energy_eff_ending"] = "Good" + output["roof_energy_eff_ending"] = "Very Good" else: - recommendation_record["roof_energy_eff_ending"] = "Very Good" - else: - # Fill missing roof u-values - this fill is not based on recommended upgrades - if recommendation_record["roof_thermal_transmittance_ending"] is None: - raise ValueError("We should not have a None value for the u value") + # Fill missing roof u-values - this fill is not based on recommended upgrades + if output["roof_thermal_transmittance_ending"] is None: + raise ValueError("We should not have a None value for the u value") - if recommendation_record["roof_insulation_thickness_ending"] is None: - recommendation_record["roof_insulation_thickness_ending"] = "none" + if output["roof_insulation_thickness_ending"] is None: + output["roof_insulation_thickness_ending"] = "none" - if recommendation["type"] == "mechanical_ventilation": - recommendation_record["mechanical_ventilation_ending"] = 'mechanical, extract only' + if recommendation["type"] == "sealing_open_fireplace": + output["number_open_fireplaces_ending"] = 0 - if recommendation["type"] == "sealing_open_fireplace": - recommendation_record["number_open_fireplaces_ending"] = 0 + if recommendation["type"] == "low_energy_lighting": + output["low_energy_lighting_ending"] = 100 + output["lighting_energy_eff_starting"] = "Very Good" - if recommendation["type"] == "low_energy_lighting": - recommendation_record["low_energy_lighting_ending"] = 100 - recommendation_record["lighting_energy_eff_starting"] = "Very Good" + if recommendation["type"] == "windows_glazing": + output["multi_glaze_proportion_ending"] = 100 + output["windows_energy_eff_ending"] = "Average" - if recommendation["type"] == "windows_glazing": - recommendation_record["multi_glaze_proportion_ending"] = 100 - recommendation_record["windows_energy_eff_ending"] = "Average" + is_secondary_glazing = recommendation["is_secondary_glazing"] - is_secondary_glazing = recommendation["is_secondary_glazing"] + if output["glazing_type_ending"] == "multiple": + pass + elif output["glazing_type_ending"] == "single": + output["glazing_type_ending"] = "secondary" if is_secondary_glazing else "double" + elif output["glazing_type_ending"] == "double": + output["glazing_type_ending"] = "multiple" if is_secondary_glazing else "double" + elif output["glazing_type_ending"] == "secondary": + output["glazing_type_ending"] = "secondary" if is_secondary_glazing else "multiple" + elif output["glazing_type_ending"] in ["triple", "high performance"]: + output["glazing_type_ending"] = "multiple" + else: + raise ValueError("Invalid glazing type - implement me") - if recommendation_record["glazing_type_ending"] == "multiple": - pass - elif recommendation_record["glazing_type_ending"] == "single": - recommendation_record["glazing_type_ending"] = "secondary" if is_secondary_glazing else "double" - elif recommendation_record["glazing_type_ending"] == "double": - recommendation_record["glazing_type_ending"] = "multiple" if is_secondary_glazing else "double" - elif recommendation_record["glazing_type_ending"] == "secondary": - recommendation_record["glazing_type_ending"] = "secondary" if is_secondary_glazing else "multiple" - elif recommendation_record["glazing_type_ending"] in ["triple", "high performance"]: - recommendation_record["glazing_type_ending"] = "multiple" - else: - raise ValueError("Invalid glazing type - implement me") + if is_secondary_glazing: + output["glazed_type_ending"] = "secondary glazing" + else: + output["glazed_type_ending"] = "double glazing installed during or after 2002 " - if is_secondary_glazing: - recommendation_record["glazed_type_ending"] = "secondary glazing" - else: - recommendation_record["glazed_type_ending"] = "double glazing installed during or after 2002 " + if recommendation["type"] == "solar_pv": + output["photo_supply_ending"] = recommendation["photo_supply"] - if recommendation["type"] == "solar_pv": - recommendation_record["photo_supply_ending"] = recommendation["photo_supply"] + if recommendation["type"] not in [ + "mechanical_ventilation", "sealing_open_fireplace", "low_energy_lighting", + "internal_wall_insulation", "external_wall_insulation", "cavity_wall_insulation", + "loft_insulation", "room_roof_insulation", "flat_roof_insulation", + "solid_floor_insulation", "suspended_floor_insulation", "exposed_floor_insulation", + "windows_glazing", "solar_pv" + ]: + raise NotImplementedError("Implement me") - if recommendation["type"] not in [ - "mechanical_ventilation", "sealing_open_fireplace", "low_energy_lighting", - "internal_wall_insulation", "external_wall_insulation", "cavity_wall_insulation", - "loft_insulation", "room_roof_insulation", "flat_roof_insulation", - "solid_floor_insulation", "suspended_floor_insulation", "exposed_floor_insulation", - "windows_glazing", "solar_pv" - ]: - raise NotImplementedError("Implement me") + output['id'] = "+".join([str(property_id), str(primary_recommendation_id)]) - recommendation_record['id'] = "+".join([str(property_id), str(recommendation["recommendation_id"])]) - - return recommendation_record + return output def get_components(self, cleaned, photo_supply_lookup, floor_area_decile_thresholds): """ diff --git a/backend/app/plan/router.py b/backend/app/plan/router.py index 811c3c09..08d3f048 100644 --- a/backend/app/plan/router.py +++ b/backend/app/plan/router.py @@ -136,22 +136,32 @@ async def trigger_plan(body: PlanTriggerRequest): recommendations = {} recommendations_scoring_data = [] - + representive_recommendations = {} for p in input_properties: # Property recommendations p.get_components(cleaned, photo_supply_lookup, floor_area_decile_thresholds) + # TODO: For the private customer, we should probably NOT allow floor insulation, because it often requires + # decanting the tenant recommender = Recommendations(property_instance=p, materials=materials) - property_recommendations = recommender.recommend() + property_recommendations, property_representative_recommendations = recommender.recommend() if not property_recommendations: continue recommendations[p.id] = property_recommendations + representive_recommendations[p.id] = property_representative_recommendations p.create_base_difference_epc_record(cleaned_lookup=cleaned) - p.adjust_difference_record_with_recommendations(property_recommendations) + p.adjust_difference_record_with_recommendations( + property_recommendations, property_representative_recommendations + ) + + p.recommendations_scoring_data[0]["id"] + p.recommendations_scoring_data[0]["walls_thermal_transmittance"] + p.recommendations_scoring_data[0]["walls_thermal_transmittance_ending"] + p.recommendations_scoring_data[0]["walls_thermal_transmittance_ending"] recommendations_scoring_data.extend(p.recommendations_scoring_data) diff --git a/recommendations/FloorRecommendations.py b/recommendations/FloorRecommendations.py index a19ee025..40d9fb10 100644 --- a/recommendations/FloorRecommendations.py +++ b/recommendations/FloorRecommendations.py @@ -118,6 +118,7 @@ class FloorRecommendations(Definitions): if self.property.floor["is_suspended"]: # Given the U-value, we recommend underfloor insulation self.recommend_floor_insulation( + phase=phase, u_value=u_value, insulation_materials=self.suspended_floor_insulation_materials, non_insulation_materials=self.suspended_floor_non_insulation_materials diff --git a/recommendations/Recommendations.py b/recommendations/Recommendations.py index b4b764c2..f0cf7806 100644 --- a/recommendations/Recommendations.py +++ b/recommendations/Recommendations.py @@ -107,7 +107,52 @@ class Recommendations: # We insert temporary ids into the recommendations which is important for the optimiser later property_recommendations = self.insert_temp_recommendation_id(property_recommendations) - return property_recommendations + # We also need to create the representative recommendations for each recommendation type + property_representative_recommendations = self.create_representative_recommendations(property_recommendations) + + return property_recommendations, property_representative_recommendations + + @staticmethod + def create_representative_recommendations(property_recommendations): + """ + This method will create a representative recommendation for each recommendation type + In order to create a representative recommendation, we choose the recommendation that has: + 1) Where a U-value is available, has the best U-value to cost ratio + 2) Where SAP points are available, has the best SAP points to cost ratio + + We don't include mechanical ventilation in the representative recommendations, since we don't attribute a + SAP impact to this recommendation + :return: + """ + property_representative_recommendations = [] + + for recommendations_by_type in property_recommendations: + + if recommendations_by_type[0].get("type") == "mechanical_ventilation": + continue + + has_u_value = recommendations_by_type[0].get("new_u_value") is not None + has_sap_points = recommendations_by_type[0].get("sap_points") is not None + + if has_u_value: + # We sort by the cost per U-value improvement - the lower the better + recommendations_by_type.sort( + key=lambda x: x["total"] / x["starting_u_value"] - x["new_u_value"] + ) + elif not has_u_value and has_sap_points: + # Sort the options by the cost per SAP point improvement - the lower the better + recommendations_by_type.sort( + key=lambda x: x["total"] / x["sap_points"] + ) + else: + # Sort the options by cost - the lower the better + recommendations_by_type.sort( + key=lambda x: x["total"] + ) + + property_representative_recommendations.append(recommendations_by_type[0]) + + return property_representative_recommendations @staticmethod def insert_temp_recommendation_id(property_recommendations): From b39e9c989943f2a6752935d72b21e5a7dea8b361 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Thu, 15 Feb 2024 10:57:57 +0000 Subject: [PATCH 267/526] working on updating the HA code for new file formats --- .idea/Model.iml | 2 +- .idea/misc.xml | 2 +- backend/app/plan/router.py | 5 - .../ha_15_32/ha_analysis_batch_3.py | 171 +++++++++--------- 4 files changed, 84 insertions(+), 96 deletions(-) diff --git a/.idea/Model.iml b/.idea/Model.iml index 4413bb06..b0f9c00d 100644 --- a/.idea/Model.iml +++ b/.idea/Model.iml @@ -7,7 +7,7 @@ - + diff --git a/.idea/misc.xml b/.idea/misc.xml index 6f308057..1122b380 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -3,7 +3,7 @@ - + diff --git a/backend/app/plan/router.py b/backend/app/plan/router.py index 08d3f048..3799d43f 100644 --- a/backend/app/plan/router.py +++ b/backend/app/plan/router.py @@ -158,11 +158,6 @@ async def trigger_plan(body: PlanTriggerRequest): property_recommendations, property_representative_recommendations ) - p.recommendations_scoring_data[0]["id"] - p.recommendations_scoring_data[0]["walls_thermal_transmittance"] - p.recommendations_scoring_data[0]["walls_thermal_transmittance_ending"] - p.recommendations_scoring_data[0]["walls_thermal_transmittance_ending"] - recommendations_scoring_data.extend(p.recommendations_scoring_data) logger.info("Preparing data for scoring in sap change api") diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index e94babcd..5ed7d6f2 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -24,27 +24,6 @@ load_dotenv(ENV_FILE) class DataLoader: - COLOUR_CONFIG = { - "ha_1": { - "asset_list": {"red": "FFFF0000", "green": "FF00B050"}, - }, - "ha_6": { - "asset_list": {"red": "FFFF0000", "green": "FF00B050"}, - "survey_list": { - "green": "FF92D050", "purple": "FF7030A0", "red": "FFFF0000", "blue": "FF00B0F0" - } - }, - "ha_14": { - "asset_list": {"red": "FFFF0000", "green": "FF00B050"}, - }, - "ha_39": { - "asset_list": {"red": "FFFF0000", "green": "FF00B050"}, - }, - "ha_107": { - "asset_list": {"red": "FFFF0000", "green": "FF00B050"}, - } - } - MIN_ROWS = { "ha_1": 2, "ha_6": 2, @@ -53,12 +32,87 @@ class DataLoader: "ha_107": 2, } + COLUMN_CONFIG = { + "ha_1": { + "address": "Address", + "postcode": "Address - Postcode" + } + } + def __init__(self, files, use_cache): self.files = files self.use_cache = use_cache self.data = {} + def create_asset_list_matching_address(self, ha_name, asset_list): + + if ha_name in ["ha_1", "ha_6"]: + asset_list["matching_address"] = asset_list[ + self.COLUMN_CONFIG[ha_name]["address"] + ].str.lower().str.strip() + asset_list["matching_postcode"] = asset_list[ + self.COLUMN_CONFIG[ha_name]["postcode"] + ].str.lower().str.strip() + elif ha_name == "ha_14": + # Create matching_address by concatenating Address 1, Address 2, Address 3, Address 4, Postcode + asset_list["matching_address"] = asset_list["Address 1"].str.lower().str.strip() + ", " + \ + asset_list["Address 2"].str.lower().str.strip() + ", " + \ + asset_list["Address 3"].str.lower().str.strip() + ", " + \ + asset_list["Address 4"].str.lower().str.strip() + ", " + \ + asset_list["Postcode"].str.lower().str.strip() + asset_list["matching_postcode"] = asset_list["Postcode"].str.lower().str.strip() + elif ha_name == "ha_39": + # Create matching_address by concatenating add_1, add_2, add_3, add_4, add_5, post_code + asset_list["matching_address"] = asset_list["add_1"].astype(str).str.lower().str.strip() + ", " + \ + asset_list["add_2"].astype(str).str.lower().str.strip() + ", " + \ + asset_list["add_3"].astype(str).str.lower().str.strip() + ", " + \ + asset_list["add_4"].astype(str).str.lower().str.strip() + ", " + \ + asset_list["add_5"].astype(str).str.lower().str.strip() + ", " + \ + asset_list["post_code"].astype(str).str.lower().str.strip() + asset_list["matching_postcode"] = asset_list["post_code"].str.lower().str.strip() + elif ha_name == "ha_107": + # Create matching_address by concatenating House No, Street, Town, District, Postcode + asset_list["matching_address"] = asset_list["House No"].astype(str).str.lower().str.strip() + ", " + \ + asset_list["Street"].str.lower().str.strip() + ", " + \ + asset_list["Town"].str.lower().str.strip() + ", " + \ + asset_list["District"].str.lower().str.strip() + ", " + \ + asset_list["Postcode"].str.lower().str.strip() + asset_list["matching_postcode"] = asset_list["Postcode"].str.lower().str.strip() + else: + raise NotImplementedError("implement me") + + return asset_list + + def append_asset_list_built_form(self, ha_name, asset_list): + + # Finally, we process property_type or built form, where needed + if ha_name == "ha_6": + asset_list["built_form"] = asset_list["Property Type"].apply(self.identify_built_form_ha6) + + return asset_list + + @staticmethod + def create_asset_list_house_no(ha_name, asset_list): + """ + This function will append the House number onto the asset list + :return: + """ + + if ha_name in ["ha_107"]: + asset_list["HouseNo"] = asset_list["House No"].copy() + else: + split_addresses = asset_list['matching_address'].str.split(',', expand=True) + house_numbers = split_addresses[0].str.split(' ', expand=True) + # THe first column should be HouseNo - we aren't interested in the other columns, but we don't know how + # many columns there might be + house_numbers = house_numbers.iloc[:, 0:1] + house_numbers.columns = ['HouseNo'] + + asset_list = pd.concat([asset_list, house_numbers[["HouseNo"]]], axis=1) + + return asset_list + def load_asset_list(self, file_path, ha_name, sheet_name=None): workbook = openpyxl.load_workbook(file_path) if sheet_name is not None: @@ -87,74 +141,15 @@ class DataLoader: # Remove entirely empty roww - consider all rows apart from row_color asset_list = asset_list.loc[asset_list.loc[:, asset_list.columns != 'row_color'].notnull().any(axis=1)] - asset_list_colours = self.COLOUR_CONFIG[ha_name]["asset_list"] - - asset_list["row_colour_name"] = np.where( - asset_list["row_color"] == asset_list_colours["red"], "red", - np.where(asset_list["row_color"] == asset_list_colours["green"], "green", "yellow") - ) - - asset_list["row_meaning"] = np.where( - asset_list["row_colour_name"] == "red", "does not meet criteria", - np.where( - asset_list["row_colour_name"] == "green", "identified potential eco works (CWI)", "maybe in the future" - ) - ) - # Add in asset_list_row_id asset_list["asset_list_row_id"] = [ha_name + str(i) for i in range(0, len(asset_list))] - # Prepare the asset list - # Depending on the HA, we need to rename some columns - if ha_name == "ha_1": - asset_list["matching_address"] = asset_list["Address"].str.lower().str.strip() - asset_list["matching_postcode"] = asset_list["Address - Postcode"].str.lower().str.strip() - elif ha_name == "ha_6": - asset_list["matching_address"] = asset_list["propertyaddress"].str.lower().str.strip() - asset_list["matching_postcode"] = asset_list["Post Code"].str.lower().str.strip() - elif ha_name == "ha_14": - # Create matching_address by concatenating Address 1, Address 2, Address 3, Address 4, Postcode - asset_list["matching_address"] = asset_list["Address 1"].str.lower().str.strip() + ", " + \ - asset_list["Address 2"].str.lower().str.strip() + ", " + \ - asset_list["Address 3"].str.lower().str.strip() + ", " + \ - asset_list["Address 4"].str.lower().str.strip() + ", " + \ - asset_list["Postcode"].str.lower().str.strip() - asset_list["matching_postcode"] = asset_list["Postcode"].str.lower().str.strip() - elif ha_name == "ha_39": - # Create matching_address by concatenating add_1, add_2, add_3, add_4, add_5, post_code - asset_list["matching_address"] = asset_list["add_1"].astype(str).str.lower().str.strip() + ", " + \ - asset_list["add_2"].astype(str).str.lower().str.strip() + ", " + \ - asset_list["add_3"].astype(str).str.lower().str.strip() + ", " + \ - asset_list["add_4"].astype(str).str.lower().str.strip() + ", " + \ - asset_list["add_5"].astype(str).str.lower().str.strip() + ", " + \ - asset_list["post_code"].astype(str).str.lower().str.strip() - asset_list["matching_postcode"] = asset_list["post_code"].str.lower().str.strip() - elif ha_name == "ha_107": - # Create matching_address by concatenating House No, Street, Town, District, Postcode - asset_list["matching_address"] = asset_list["House No"].astype(str).str.lower().str.strip() + ", " + \ - asset_list["Street"].str.lower().str.strip() + ", " + \ - asset_list["Town"].str.lower().str.strip() + ", " + \ - asset_list["District"].str.lower().str.strip() + ", " + \ - asset_list["Postcode"].str.lower().str.strip() - asset_list["matching_postcode"] = asset_list["Postcode"].str.lower().str.strip() - else: - raise NotImplementedError("implement me") + # Create matching address and matching postcode + asset_list = self.create_asset_list_matching_address(ha_name=ha_name, asset_list=asset_list) - if ha_name in ["ha_107"]: - asset_list["HouseNo"] = asset_list["House No"].copy() - else: - split_addresses = asset_list['matching_address'].str.split(',', expand=True) - house_numbers = split_addresses[0].str.split(' ', expand=True) - # THe first column should be HouseNo - we aren't interested in the other columns, but we don't know how - # many columns there might be - house_numbers = house_numbers.iloc[:, 0:1] - house_numbers.columns = ['HouseNo'] + asset_list = self.create_asset_list_house_no(ha_name=ha_name, asset_list=asset_list) - asset_list = pd.concat([asset_list, house_numbers[["HouseNo"]]], axis=1) - - # Finally, we process property_type or built form, where needed - if ha_name == "ha_6": - asset_list["built_form"] = asset_list["Property Type"].apply(self.identify_built_form_ha6) + asset_list = self.append_asset_list_built_form(ha_name=ha_name, asset_list=asset_list) return asset_list @@ -177,9 +172,7 @@ class DataLoader: survey_list = pd.DataFrame(survey_rows, columns=[cell.value for cell in survey_sheet[1]]) # Remove columns that are None survey_list = survey_list.loc[:, survey_list.columns.notnull()] - survey_list["row_colour"] = survey_colors - survey_list_colours = self.COLOUR_CONFIG[ha_name]["survey_list"] # The survey list has 4 possible colours: # PURPLE - Installer advised install complete and a complimentary post works EPC has been completed. @@ -1252,13 +1245,13 @@ def app(): :return: """ - use_cache = True + use_cache = False files = { "ha_1": { "asset_list": { - "filepath": "etl/eligibility/ha_15_32/HA 1 - ASSET LIST.xlsx", - "sheetname": "HA 1" + "filepath": "local_data/ha_data/HA1/ACCENT GROUP.xlsx", + "sheetname": "Energy data" } }, "ha_6": { From 7e36dc6d4982f491bb82406553afcd664fa5710f Mon Sep 17 00:00:00 2001 From: Michael Duong Date: Thu, 15 Feb 2024 16:36:29 +0000 Subject: [PATCH 268/526] add starting and ending rooms --- etl/epc/DataProcessor.py | 3 + etl/epc/Dataset.py | 144 +++++++++++---- etl/epc/Pipeline.py | 21 ++- etl/epc/Record.py | 135 +++++++++----- etl/epc/settings.py | 380 ++++++++++++++++++++++++++++----------- 5 files changed, 501 insertions(+), 182 deletions(-) diff --git a/etl/epc/DataProcessor.py b/etl/epc/DataProcessor.py index af55535c..a77bcaa3 100644 --- a/etl/epc/DataProcessor.py +++ b/etl/epc/DataProcessor.py @@ -704,6 +704,9 @@ class EPCDataProcessor: # We remove EPCs where the tenure is unknown, but is usually an indicator of a new build self.data = self.data[~self.data["TENURE"].isin(IGNORED_TENURES)] + # We remap zero values to None + self.data.loc[self.data['FLOOR_HEIGHT'] == 0, 'FLOOR_HEIGHT'] = None + def clean_multi_glaze_proportion(self, ignore_step: bool = False) -> None: """ If there is no multi-glaze proportion but the windows are fully glazed, then we should assume a score of 100 diff --git a/etl/epc/Dataset.py b/etl/epc/Dataset.py index 322f3238..dac829e2 100644 --- a/etl/epc/Dataset.py +++ b/etl/epc/Dataset.py @@ -17,33 +17,111 @@ from recommendations.recommendation_utils import ( # TODO: Can probably produce this in the property change app and store in S3 BOOLEAN_VARIABLES = [ - 'is_cavity_wall', 'is_filled_cavity', 'is_solid_brick', 'is_system_built', 'is_timber_frame', - 'is_granite_or_whinstone', 'is_as_built', 'is_cob', 'is_sandstone_or_limestone', 'is_park_home', - 'external_insulation', 'internal_insulation', 'is_park_home_ending', 'external_insulation_ending', - 'internal_insulation_ending', 'is_to_unheated_space', 'is_to_external_air', 'is_suspended', 'is_solid', - 'another_property_below', 'is_pitched', 'is_roof_room', 'is_loft', 'is_flat', 'is_thatched', 'is_at_rafters', - 'has_dwelling_above', 'has_radiators', 'has_fan_coil_units', 'has_pipes_in_screed_above_insulation', - 'has_pipes_in_insulated_timber_floor', 'has_pipes_in_concrete_slab', 'has_boiler', 'has_air_source_heat_pump', - 'has_room_heaters', 'has_electric_storage_heaters', 'has_warm_air', 'has_electric_underfloor_heating', - 'has_electric_ceiling_heating', 'has_community_scheme', 'has_ground_source_heat_pump', 'has_no_system_present', - 'has_portable_electric_heaters', 'has_water_source_heat_pump', 'has_electric_heat_pump', 'has_micro-cogeneration', - 'has_solar_assisted_heat_pump', 'has_exhaust_source_heat_pump', 'has_community_heat_pump', 'has_electric', - 'has_mains_gas', 'has_wood_logs', 'has_coal', 'has_oil', 'has_wood_pellets', 'has_anthracite', - 'has_dual_fuel_mineral_and_wood', 'has_smokeless_fuel', 'has_lpg', 'has_b30k', 'has_electricaire', - 'has_assumed_for_most_rooms', 'has_underfloor_heating', 'has_radiators_ending', 'has_fan_coil_units_ending', - 'has_pipes_in_screed_above_insulation_ending', 'has_pipes_in_insulated_timber_floor_ending', - 'has_pipes_in_concrete_slab_ending', 'has_boiler_ending', 'has_air_source_heat_pump_ending', - 'has_room_heaters_ending', 'has_electric_storage_heaters_ending', 'has_warm_air_ending', - 'has_electric_underfloor_heating_ending', 'has_electric_ceiling_heating_ending', 'has_community_scheme_ending', - 'has_ground_source_heat_pump_ending', 'has_no_system_present_ending', 'has_portable_electric_heaters_ending', - 'has_water_source_heat_pump_ending', 'has_electric_heat_pump_ending', 'has_micro-cogeneration_ending', - 'has_solar_assisted_heat_pump_ending', 'has_exhaust_source_heat_pump_ending', 'has_community_heat_pump_ending', - 'has_electric_ending', 'has_mains_gas_ending', 'has_wood_logs_ending', 'has_coal_ending', 'has_oil_ending', - 'has_wood_pellets_ending', 'has_anthracite_ending', 'has_dual_fuel_mineral_and_wood_ending', - 'has_smokeless_fuel_ending', 'has_lpg_ending', 'has_b30k_ending', 'has_electricaire_ending', - 'has_assumed_for_most_rooms_ending', 'has_underfloor_heating_ending', 'multiple_room_thermostats', - 'multiple_room_thermostats_ending', 'is_community', 'no_individual_heating_or_community_network', - 'is_community_ending', 'no_individual_heating_or_community_network_ending' + "is_cavity_wall", + "is_filled_cavity", + "is_solid_brick", + "is_system_built", + "is_timber_frame", + "is_granite_or_whinstone", + "is_as_built", + "is_cob", + "is_sandstone_or_limestone", + "is_park_home", + "external_insulation", + "internal_insulation", + "is_park_home_ending", + "external_insulation_ending", + "internal_insulation_ending", + "is_to_unheated_space", + "is_to_external_air", + "is_suspended", + "is_solid", + "another_property_below", + "is_pitched", + "is_roof_room", + "is_loft", + "is_flat", + "is_thatched", + "is_at_rafters", + "has_dwelling_above", + "has_radiators", + "has_fan_coil_units", + "has_pipes_in_screed_above_insulation", + "has_pipes_in_insulated_timber_floor", + "has_pipes_in_concrete_slab", + "has_boiler", + "has_air_source_heat_pump", + "has_room_heaters", + "has_electric_storage_heaters", + "has_warm_air", + "has_electric_underfloor_heating", + "has_electric_ceiling_heating", + "has_community_scheme", + "has_ground_source_heat_pump", + "has_no_system_present", + "has_portable_electric_heaters", + "has_water_source_heat_pump", + "has_electric_heat_pump", + "has_micro-cogeneration", + "has_solar_assisted_heat_pump", + "has_exhaust_source_heat_pump", + "has_community_heat_pump", + "has_electric", + "has_mains_gas", + "has_wood_logs", + "has_coal", + "has_oil", + "has_wood_pellets", + "has_anthracite", + "has_dual_fuel_mineral_and_wood", + "has_smokeless_fuel", + "has_lpg", + "has_b30k", + "has_electricaire", + "has_assumed_for_most_rooms", + "has_underfloor_heating", + "has_radiators_ending", + "has_fan_coil_units_ending", + "has_pipes_in_screed_above_insulation_ending", + "has_pipes_in_insulated_timber_floor_ending", + "has_pipes_in_concrete_slab_ending", + "has_boiler_ending", + "has_air_source_heat_pump_ending", + "has_room_heaters_ending", + "has_electric_storage_heaters_ending", + "has_warm_air_ending", + "has_electric_underfloor_heating_ending", + "has_electric_ceiling_heating_ending", + "has_community_scheme_ending", + "has_ground_source_heat_pump_ending", + "has_no_system_present_ending", + "has_portable_electric_heaters_ending", + "has_water_source_heat_pump_ending", + "has_electric_heat_pump_ending", + "has_micro-cogeneration_ending", + "has_solar_assisted_heat_pump_ending", + "has_exhaust_source_heat_pump_ending", + "has_community_heat_pump_ending", + "has_electric_ending", + "has_mains_gas_ending", + "has_wood_logs_ending", + "has_coal_ending", + "has_oil_ending", + "has_wood_pellets_ending", + "has_anthracite_ending", + "has_dual_fuel_mineral_and_wood_ending", + "has_smokeless_fuel_ending", + "has_lpg_ending", + "has_b30k_ending", + "has_electricaire_ending", + "has_assumed_for_most_rooms_ending", + "has_underfloor_heating_ending", + "multiple_room_thermostats", + "multiple_room_thermostats_ending", + "is_community", + "no_individual_heating_or_community_network", + "is_community_ending", + "no_individual_heating_or_community_network_ending", ] @@ -330,14 +408,16 @@ class TrainingDataset(BaseDataset): self.df["estimated_perimeter_starting"] = self.df.apply( lambda row: estimate_perimeter( row["ground_floor_area_starting"], - row["number_habitable_rooms"] / row["estimated_number_of_floors"], + row["number_habitable_rooms_starting"] + / row["estimated_number_of_floors"], ), axis=1, ) self.df["estimated_perimeter_ending"] = self.df.apply( lambda row: estimate_perimeter( row["ground_floor_area_starting"], - row["number_habitable_rooms"] / row["estimated_number_of_floors"], + row["number_habitable_rooms_ending"] + / row["estimated_number_of_floors"], ), axis=1, ) @@ -647,7 +727,11 @@ class TrainingDataset(BaseDataset): for col in missings.index: unique_values = self.df[col].unique() - if (True in unique_values) or (False in unique_values) or (col in BOOLEAN_VARIABLES): + if ( + (True in unique_values) + or (False in unique_values) + or (col in BOOLEAN_VARIABLES) + ): self.df[col] = self.df[col].fillna(False) if "none" in unique_values: self.df[col] = self.df[col].fillna("none") diff --git a/etl/epc/Pipeline.py b/etl/epc/Pipeline.py index 99bbb22f..0943b206 100644 --- a/etl/epc/Pipeline.py +++ b/etl/epc/Pipeline.py @@ -19,11 +19,12 @@ from etl.epc.settings import ( CORE_COMPONENT_FEATURES, EFFICIENCY_FEATURES, POTENTIAL_COLUMNS, + ROOM_FEATURES, ) # TODO: change in setting file MANDATORY_FIXED_FEATURES = [x.lower() for x in MANDATORY_FIXED_FEATURES] -LATEST_FIELD = [x.lower() for x in LATEST_FIELD] +LATEST_FIELD = [x.lower() for x in LATEST_FIELD if x.lower() not in ROOM_FEATURES] COMPONENT_FEATURES = [x.lower() for x in COMPONENT_FEATURES] RDSAP_RESPONSE = RDSAP_RESPONSE.lower() HEAT_DEMAND_RESPONSE = HEAT_DEMAND_RESPONSE.lower() @@ -33,6 +34,7 @@ EFFICIENCY_FEATURES = [x.lower() for x in EFFICIENCY_FEATURES] POTENTIAL_COLUMNS = [x.lower() for x in POTENTIAL_COLUMNS] VARIABLE_DATA_FEATURES = ( COMPONENT_FEATURES + + ROOM_FEATURES + EFFICIENCY_FEATURES + POTENTIAL_COLUMNS + ["lodgement_date", RDSAP_RESPONSE, HEAT_DEMAND_RESPONSE, CARBON_RESPONSE] @@ -78,9 +80,9 @@ class EPCPipeline: run_mode="training", epc_local_file="certificates.csv", epc_bucket_name="retrofit-data-dev", - epc_cleaning_dataset_key="sap_change_model/cleaning_dataset.parquet", - epc_all_equal_rows_key="sap_change_model/all_equal_rows.parquet", - epc_compiled_dataset_key="sap_change_model/dataset.parquet", + epc_cleaning_dataset_key="sap_change_model/cleaning_dataset_rooms.parquet", + epc_all_equal_rows_key="sap_change_model/all_equal_rows_rooms.parquet", + epc_compiled_dataset_key="sap_change_model/dataset_rooms.parquet", ): """ :param directories: List of directories to process @@ -283,9 +285,14 @@ class EPCPipeline: latest_record: EPCRecord = epc_records[idx2] # Auto sort the records so that the record with highest RDSAP score is always record1 - difference_record: EPCDifferenceRecord = latest_record - earliest_record - # TODO: Use method above instead of overloading operator - difference_record.append_fixed_data(fixed_data) + difference_record: EPCDifferenceRecord = ( + latest_record.create_EPCDifferenceRecord( + other=earliest_record, fixed_data=fixed_data + ) + ) + # difference_record: EPCDifferenceRecord = latest_record - earliest_record + # # TODO: Use method above instead of overloading operator + # difference_record.append_fixed_data(fixed_data) # TODO: Pull out RDSAP_CHANGE to a variable if difference_record.get("rdsap_change") == 0: diff --git a/etl/epc/Record.py b/etl/epc/Record.py index 79e36d5b..fc670e5e 100644 --- a/etl/epc/Record.py +++ b/etl/epc/Record.py @@ -19,6 +19,7 @@ from etl.epc.settings import ( CARBON_RESPONSE, COMPONENT_FEATURES, EFFICIENCY_FEATURES, + ROOM_FEATURES, ) from recommendations.recommendation_utils import estimate_number_of_floors from utils.s3 import read_dataframe_from_s3_parquet @@ -83,6 +84,8 @@ class EPCRecord: current_energy_efficiency: int = None energy_consumption_current: int = None co2_emissions_current: float = None + number_habitable_rooms: float = None + number_heated_rooms: float = None # u_values_walls = None # u_values_roof = None @@ -268,6 +271,12 @@ class EPCRecord: self.co2_emissions_current: float = float( self.prepared_epc["co2_emissions_current"] ) + self.number_habitable_rooms: float = float( + self.prepared_epc["number_habitable_rooms"] + ) + self.number_heated_rooms: float = float( + self.prepared_epc["number_heated_rooms"] + ) def _identify_delta_between_prepared_and_original_records(self): """ @@ -380,8 +389,9 @@ class EPCRecord: raise ValueError("EPC Recrod doesn not contain epc data") self.prepared_epc["floor-level"] = ( - FLOOR_LEVEL_MAP[self.prepared_epc["floor-level"]] if - self.prepared_epc["floor-level"] not in DATA_ANOMALY_MATCHES else None + FLOOR_LEVEL_MAP[self.prepared_epc["floor-level"]] + if self.prepared_epc["floor-level"] not in DATA_ANOMALY_MATCHES + else None ) def _clean_number_lighting_outlets(self): @@ -426,9 +436,16 @@ class EPCRecord: cleaning_data.columns = [x.upper() for x in cleaning_data.columns] cleaned_property_data = EPCDataProcessor.apply_averages_cleaning( - data_to_clean=self.epc_record_as_dataframe("prepared_epc", replace_empty_string=True), + data_to_clean=self.epc_record_as_dataframe( + "prepared_epc", replace_empty_string=True + ), cleaning_data=cleaning_data, - cols_to_merge_on=['PROPERTY_TYPE', 'BUILT_FORM', 'CONSTRUCTION_AGE_BAND', 'LOCAL_AUTHORITY'], + cols_to_merge_on=[ + "PROPERTY_TYPE", + "BUILT_FORM", + "CONSTRUCTION_AGE_BAND", + "LOCAL_AUTHORITY", + ], ) self.prepared_epc["fixed-lighting-outlets-count"] = round( cleaned_property_data["FIXED_LIGHTING_OUTLETS_COUNT"].values[0] @@ -542,9 +559,14 @@ class EPCRecord: "N": False, } - self.prepared_epc["mains-gas-flag"] = None if ( - self.prepared_epc["mains-gas-flag"] == "" or self.prepared_epc["mains-gas-flag"] in DATA_ANOMALY_MATCHES - ) else mains_gas_map[self.prepared_epc["mains-gas-flag"]] + self.prepared_epc["mains-gas-flag"] = ( + None + if ( + self.prepared_epc["mains-gas-flag"] == "" + or self.prepared_epc["mains-gas-flag"] in DATA_ANOMALY_MATCHES + ) + else mains_gas_map[self.prepared_epc["mains-gas-flag"]] + ) def _clean_heat_loss_corridor(self): """ @@ -553,11 +575,7 @@ class EPCRecord: if not self.prepared_epc: raise ValueError("EPC Recrod doesn not contain epc data") - valid_values = [ - "no corridor", - "unheated corridor", - "heated corridor" - ] + valid_values = ["no corridor", "unheated corridor", "heated corridor"] boolean_map = { "no corridor": False, @@ -566,19 +584,23 @@ class EPCRecord: } self.prepared_epc["heat-loss-corridor"] = ( - "no corridor" if self.prepared_epc["heat-loss-corridor"] in DATA_ANOMALY_MATCHES else - self.prepared_epc["heat-loss-corridor"] + "no corridor" + if self.prepared_epc["heat-loss-corridor"] in DATA_ANOMALY_MATCHES + else self.prepared_epc["heat-loss-corridor"] ) if self.prepared_epc["heat-loss-corridor"] not in valid_values: self.prepared_epc["heat-loss-corridor"] = "no corridor" self.prepared_epc["unheated-corridor-length"] = ( - float(self.prepared_epc["unheated-corridor-length"]) if - self.prepared_epc["unheated-corridor-length"] not in ["", None] else None + float(self.prepared_epc["unheated-corridor-length"]) + if self.prepared_epc["unheated-corridor-length"] not in ["", None] + else None ) # We create boolean versions of heat-loss-corridor - self.heat_loss_corridor_bool = boolean_map[self.prepared_epc["heat-loss-corridor"]] + self.heat_loss_corridor_bool = boolean_map[ + self.prepared_epc["heat-loss-corridor"] + ] def _clean_count_variables(self): """ @@ -591,7 +613,7 @@ class EPCRecord: "number-open-fireplaces", "extension-count", "flat-storey-count", - "number-habitable-rooms" + "number-habitable-rooms", ] null_attributes = ["flat-storey-count", "number-habitable-rooms"] @@ -615,9 +637,11 @@ class EPCRecord: if not self.prepared_epc: raise ValueError("EPC Recrod doesn not contain epc data") - self.prepared_epc['wind-turbine-count'] = int( - self.prepared_epc['wind-turbine-count'] - ) if self.prepared_epc['wind-turbine-count'] not in DATA_ANOMALY_MATCHES else None + self.prepared_epc["wind-turbine-count"] = ( + int(self.prepared_epc["wind-turbine-count"]) + if self.prepared_epc["wind-turbine-count"] not in DATA_ANOMALY_MATCHES + else None + ) def _clean_solar_hot_water(self): """ @@ -626,12 +650,7 @@ class EPCRecord: if not self.prepared_epc: raise ValueError("EPC Recrod doesn not contain epc data") - value_map = { - "Y": "Y", - "N": "N", - "": "N", - None: "N" - } + value_map = {"Y": "Y", "N": "N", "": "N", None: "N"} boolean_map = { "Y": True, @@ -643,7 +662,9 @@ class EPCRecord: ] # Create a boolean version for storage in the database - self.solar_water_heating_flag_bool = boolean_map[self.prepared_epc['solar-water-heating-flag']] + self.solar_water_heating_flag_bool = boolean_map[ + self.prepared_epc["solar-water-heating-flag"] + ] def _clean_solar_pv(self): """ @@ -652,8 +673,11 @@ class EPCRecord: if not self.prepared_epc: raise ValueError("EPC Recrod doesn not contain epc data") - self.prepared_epc['photo-supply'] = float(self.prepared_epc['photo-supply']) if ( - self.prepared_epc['photo-supply'] not in DATA_ANOMALY_MATCHES) else None + self.prepared_epc["photo-supply"] = ( + float(self.prepared_epc["photo-supply"]) + if (self.prepared_epc["photo-supply"] not in DATA_ANOMALY_MATCHES) + else None + ) def _clean_energy(self): """ @@ -676,7 +700,7 @@ class EPCRecord: if not self.prepared_epc: raise ValueError("EPC Recrod doesn not contain epc data") - self.prepared_epc['built-form'] = BUILT_FORM_REMAP.get( + self.prepared_epc["built-form"] = BUILT_FORM_REMAP.get( self.prepared_epc["built-form"], self.prepared_epc["built-form"] ) @@ -691,8 +715,10 @@ class EPCRecord: if not self.prepared_epc: raise ValueError("EPC Recrod doesn not contain epc data") - self.prepared_epc["construction-age-band"] = EPCDataProcessor.clean_construction_age_band( - self.prepared_epc["construction-age-band"] + self.prepared_epc["construction-age-band"] = ( + EPCDataProcessor.clean_construction_age_band( + self.prepared_epc["construction-age-band"] + ) ) if self.prepared_epc["construction-age-band"] in DATA_ANOMALY_MATCHES: @@ -703,15 +729,20 @@ class EPCRecord: old_record["lodgement-datetime"] for old_record in self.old_data if old_record["construction-age-band"] - not in DATA_ANOMALY_MATCHES + not in DATA_ANOMALY_MATCHES ] ) - most_recent = [old_record for old_record in self.old_data if - old_record["lodgement-datetime"] == max_datetime] + most_recent = [ + old_record + for old_record in self.old_data + if old_record["lodgement-datetime"] == max_datetime + ] - self.prepared_epc["construction-age-band"] = EPCDataProcessor.clean_construction_age_band( - most_recent[0]["construction-age-band"] + self.prepared_epc["construction-age-band"] = ( + EPCDataProcessor.clean_construction_age_band( + most_recent[0]["construction-age-band"] + ) ) self.construction_age_band = self.prepared_epc["construction-age-band"] @@ -721,7 +752,7 @@ class EPCRecord: self.age_band is None ): self.age_band = "L" - self.construction_age_band = 'England and Wales: 2012 onwards' + self.construction_age_band = "England and Wales: 2012 onwards" self.prepared_epc["construction-age-band"] = self.construction_age_band if self.age_band is None: @@ -760,10 +791,10 @@ class EPCRecord: """ This method will clean the ventilation, if empty or invalid """ - self.prepared_epc['mechanical-ventilation'] = None if ( - self.prepared_epc['mechanical-ventilation'] in DATA_ANOMALY_MATCHES - ) else ( - self.prepared_epc['mechanical-ventilation'] + self.prepared_epc["mechanical-ventilation"] = ( + None + if (self.prepared_epc["mechanical-ventilation"] in DATA_ANOMALY_MATCHES) + else (self.prepared_epc["mechanical-ventilation"]) ) def _field_validation(self): @@ -841,6 +872,20 @@ class EPCRecord: f"{validation_config['range']}" ) + def create_EPCDifferenceRecord(self, other, fixed_data, auto_sort: bool = True): + """ + This method will create the difference record between the two records + """ + if not isinstance(other, EPCRecord): + raise ValueError("Can only subtract EPCRecord from EPCRecord") + + difference_record = EPCDifferenceRecord( + record1=self, record2=other, auto_sort=auto_sort + ) + difference_record.append_fixed_data(fixed_data) + + return difference_record + def __sub__(self, other): """ This method will return the difference between two EPC records @@ -848,6 +893,8 @@ class EPCRecord: if not isinstance(other, EPCRecord): raise ValueError("Can only subtract EPCRecord from EPCRecord") + print("Deprecated method, use create_EPCDifferenceRecord instead") + difference_record = EPCDifferenceRecord( record1=self, record2=other, auto_sort=True ) @@ -962,7 +1009,7 @@ class EPCDifferenceRecord: CARBON_RESPONSE ) - component_variables = COMPONENT_FEATURES + EFFICIENCY_FEATURES + component_variables = COMPONENT_FEATURES + EFFICIENCY_FEATURES + ROOM_FEATURES ending_record = self.record2.get( component_variables + ["lodgement_date"], return_asdict=True, diff --git a/etl/epc/settings.py b/etl/epc/settings.py index 7100b0e9..18dbaa7c 100644 --- a/etl/epc/settings.py +++ b/etl/epc/settings.py @@ -28,18 +28,18 @@ DATA_ANOMALY_MATCHES = { # The Building Emission Rate (BER) data field for non-domestic buildings may contain a ‘blank’ value. The BER # was only lodged on the register from 7 March 2010. "Blank" - # There are currently just over 8,600 records where the local authority identifier is ‘null’. This is due to - # the Register Operator not being able to match the building address in the Markermap Ordinance Survey (GB) - # lookup tables or OS MasterMap Address Layer 2 data. The majority of these addresses have been requested - # manually by energy assessors for inclusion by the Register Operator in the registers (e.g. new builds, - # etc). These records are being published for completeness. An ongoing process to manage these manually added + # There are currently just over 8,600 records where the local authority identifier is ‘null’. This is due to + # the Register Operator not being able to match the building address in the Markermap Ordinance Survey (GB) + # lookup tables or OS MasterMap Address Layer 2 data. The majority of these addresses have been requested + # manually by energy assessors for inclusion by the Register Operator in the registers (e.g. new builds, + # etc). These records are being published for completeness. An ongoing process to manage these manually added # addresses will take time to develop to deal with these and future anomalies. # - # There are several fields within the lodged data where it is possible to enter multiple entries to cater for - # different data_types of build within a single property, i.e. extensions. This results in multiple entries for - # the description fields for floor, roof and wall. For the purposes of this data release only the information - # contained within the first of these multiple entries is being provided. As there are no restrictions on the - # value in this first field it means that sometimes the first field in a multiple entry description field may + # There are several fields within the lodged data where it is possible to enter multiple entries to cater for + # different data_types of build within a single property, i.e. extensions. This results in multiple entries for + # the description fields for floor, roof and wall. For the purposes of this data release only the information + # contained within the first of these multiple entries is being provided. As there are no restrictions on the + # value in this first field it means that sometimes the first field in a multiple entry description field may # contain a ‘null’ value. A resolution to correct these anomalies will be considered for future data releases. "NULL", # We sometimes see fields populated with just an empty string. @@ -163,17 +163,20 @@ CORE_COMPONENT_FEATURES = [ ] EFFICIENCY_FEATURES = [ - 'HOT_WATER_ENERGY_EFF', - 'FLOOR_ENERGY_EFF', - 'WINDOWS_ENERGY_EFF', - 'WALLS_ENERGY_EFF', - 'SHEATING_ENERGY_EFF', - 'ROOF_ENERGY_EFF', - 'MAINHEAT_ENERGY_EFF', - 'MAINHEATC_ENERGY_EFF', - 'LIGHTING_ENERGY_EFF' + "HOT_WATER_ENERGY_EFF", + "FLOOR_ENERGY_EFF", + "WINDOWS_ENERGY_EFF", + "WALLS_ENERGY_EFF", + "SHEATING_ENERGY_EFF", + "ROOF_ENERGY_EFF", + "MAINHEAT_ENERGY_EFF", + "MAINHEATC_ENERGY_EFF", + "LIGHTING_ENERGY_EFF", ] +ROOM_FEATURES = ["number_habitable_rooms", "number_heated_rooms"] + + COMPONENT_FEATURES = CORE_COMPONENT_FEATURES + [ "TRANSACTION_TYPE", "ENERGY_TARIFF", # Not sure if this is relevant @@ -184,10 +187,10 @@ COMPONENT_FEATURES = CORE_COMPONENT_FEATURES + [ ] POTENTIAL_COLUMNS = [ - 'POTENTIAL_ENERGY_EFFICIENCY', - 'ENVIRONMENT_IMPACT_POTENTIAL', - 'ENERGY_CONSUMPTION_POTENTIAL', - 'CO2_EMISSIONS_POTENTIAL', + "POTENTIAL_ENERGY_EFFICIENCY", + "ENVIRONMENT_IMPACT_POTENTIAL", + "ENERGY_CONSUMPTION_POTENTIAL", + "CO2_EMISSIONS_POTENTIAL", # We don't include cost features for the moment # 'LIGHTING_COST_POTENTIAL', # 'HEATING_COST_POTENTIAL', @@ -237,30 +240,55 @@ DATA_PROCESSOR_SETTINGS = { # This has a manual mapping of the column types required COLUMNTYPES = { - 'UPRN': 'object', 'TOTAL_FLOOR_AREA': 'float64', 'FLOOR_HEIGHT': 'float64', 'PROPERTY_TYPE': 'object', - 'BUILT_FORM': 'object', 'CONSTITUENCY': 'object', 'NUMBER_HABITABLE_ROOMS': 'float64', - 'NUMBER_HEATED_ROOMS': 'float64', 'FIXED_LIGHTING_OUTLETS_COUNT': 'float64', - 'CONSTRUCTION_AGE_BAND': 'object', - 'TRANSACTION_TYPE': 'object', - 'WALLS_DESCRIPTION': 'object', - 'FLOOR_DESCRIPTION': 'object', - 'LIGHTING_DESCRIPTION': 'object', - 'ROOF_DESCRIPTION': 'object', - 'MAINHEAT_DESCRIPTION': 'object', - 'HOTWATER_DESCRIPTION': 'object', 'MAIN_FUEL': 'object', - 'MECHANICAL_VENTILATION': 'object', - 'SECONDHEAT_DESCRIPTION': 'object', 'ENERGY_TARIFF': 'object', - 'SOLAR_WATER_HEATING_FLAG': 'object', 'PHOTO_SUPPLY': 'float64', - 'WINDOWS_DESCRIPTION': 'object', - 'GLAZED_TYPE': 'object', - 'MULTI_GLAZE_PROPORTION': 'float64', - 'LOW_ENERGY_LIGHTING': 'float64', - 'NUMBER_OPEN_FIREPLACES': 'float64', - 'MAINHEATCONT_DESCRIPTION': 'object', - 'EXTENSION_COUNT': 'float64', - 'LODGEMENT_DATE': 'object', - **dict(zip(EFFICIENCY_FEATURES, ['object', ] * len(EFFICIENCY_FEATURES))), - **dict(zip(POTENTIAL_COLUMNS, ['float64', ] * len(POTENTIAL_COLUMNS))) + "UPRN": "object", + "TOTAL_FLOOR_AREA": "float64", + "FLOOR_HEIGHT": "float64", + "PROPERTY_TYPE": "object", + "BUILT_FORM": "object", + "CONSTITUENCY": "object", + "NUMBER_HABITABLE_ROOMS": "float64", + "NUMBER_HEATED_ROOMS": "float64", + "FIXED_LIGHTING_OUTLETS_COUNT": "float64", + "CONSTRUCTION_AGE_BAND": "object", + "TRANSACTION_TYPE": "object", + "WALLS_DESCRIPTION": "object", + "FLOOR_DESCRIPTION": "object", + "LIGHTING_DESCRIPTION": "object", + "ROOF_DESCRIPTION": "object", + "MAINHEAT_DESCRIPTION": "object", + "HOTWATER_DESCRIPTION": "object", + "MAIN_FUEL": "object", + "MECHANICAL_VENTILATION": "object", + "SECONDHEAT_DESCRIPTION": "object", + "ENERGY_TARIFF": "object", + "SOLAR_WATER_HEATING_FLAG": "object", + "PHOTO_SUPPLY": "float64", + "WINDOWS_DESCRIPTION": "object", + "GLAZED_TYPE": "object", + "MULTI_GLAZE_PROPORTION": "float64", + "LOW_ENERGY_LIGHTING": "float64", + "NUMBER_OPEN_FIREPLACES": "float64", + "MAINHEATCONT_DESCRIPTION": "object", + "EXTENSION_COUNT": "float64", + "LODGEMENT_DATE": "object", + **dict( + zip( + EFFICIENCY_FEATURES, + [ + "object", + ] + * len(EFFICIENCY_FEATURES), + ) + ), + **dict( + zip( + POTENTIAL_COLUMNS, + [ + "float64", + ] + * len(POTENTIAL_COLUMNS), + ) + ), } # For modelling, we don't allow records with more than 100 SAP points @@ -280,7 +308,7 @@ fill_na_map = { "LOW_ENERGY_LIGHTING": 0, "MAINHEATCONT_DESCRIPTION": "Unknown", "EXTENSION_COUNT": 0, - "NUMBER_OPEN_FIREPLACES": 0 + "NUMBER_OPEN_FIREPLACES": 0, } ################################################################################################ @@ -289,62 +317,212 @@ fill_na_map = { ################################################################################################ STARTING_SUFFIX_COMPONENT_COLS = [ - "SAP", "HEAT_DEMAND", "CARBON", "TRANSACTION_TYPE", "MECHANICAL_VENTILATION", - "SECONDHEAT_DESCRIPTION", "ENERGY_TARIFF", "SOLAR_WATER_HEATING_FLAG", "PHOTO_SUPPLY", - "GLAZED_TYPE", "MULTI_GLAZE_PROPORTION", "LOW_ENERGY_LIGHTING", "NUMBER_OPEN_FIREPLACES", - "EXTENSION_COUNT", "TOTAL_FLOOR_AREA", "FLOOR_HEIGHT", "DAYS_TO", "estimated_perimeter" + "SAP", + "HEAT_DEMAND", + "CARBON", + "TRANSACTION_TYPE", + "MECHANICAL_VENTILATION", + "SECONDHEAT_DESCRIPTION", + "ENERGY_TARIFF", + "SOLAR_WATER_HEATING_FLAG", + "PHOTO_SUPPLY", + "GLAZED_TYPE", + "MULTI_GLAZE_PROPORTION", + "LOW_ENERGY_LIGHTING", + "NUMBER_OPEN_FIREPLACES", + "EXTENSION_COUNT", + "TOTAL_FLOOR_AREA", + "FLOOR_HEIGHT", + "DAYS_TO", + "estimated_perimeter", +] +NO_SUFFIX_COMPONENT_COLS = [ + "walls_thermal_transmittance", + "is_cavity_wall", + "is_filled_cavity", + "is_solid_brick", + "is_system_built", + "is_timber_frame", + "is_granite_or_whinstone", + "is_as_built", + "is_cob", + "is_sandstone_or_limestone", + "is_park_home", + "walls_insulation_thickness", + "external_insulation", + "internal_insulation", + "floor_thermal_transmittance", + "is_to_unheated_space", + "is_to_external_air", + "is_suspended", + "is_solid", + "another_property_below", + "floor_insulation_thickness", + "roof_thermal_transmittance", + "is_pitched", + "is_roof_room", + "is_loft", + "is_flat", + "is_thatched", + "is_at_rafters", + "has_dwelling_above", + "roof_insulation_thickness", + "heater_type", + "system_type", + "thermostat_characteristics", + "heating_scope", + "energy_recovery", + "hotwater_tariff_type", + "extra_features", + "chp_systems", + "distribution_system", + "no_system_present", + "appliance", + "has_radiators", + "has_fan_coil_units", + "has_pipes_in_screed_above_insulation", + "has_pipes_in_insulated_timber_floor", + "has_pipes_in_concrete_slab", + "has_boiler", + "has_air_source_heat_pump", + "has_room_heaters", + "has_electric_storage_heaters", + "has_warm_air", + "has_electric_underfloor_heating", + "has_electric_ceiling_heating", + "has_community_scheme", + "has_ground_source_heat_pump", + "has_no_system_present", + "has_portable_electric_heaters", + "has_water_source_heat_pump", + "has_electric_heat_pump", + "has_micro-cogeneration", + "has_solar_assisted_heat_pump", + "has_exhaust_source_heat_pump", + "has_community_heat_pump", + "has_electric", + "has_mains_gas", + "has_wood_logs", + "has_coal", + "has_oil", + "has_wood_pellets", + "has_anthracite", + "has_dual_fuel_mineral_and_wood", + "has_smokeless_fuel", + "has_lpg", + "has_b30k", + "has_electricaire", + "has_assumed_for_most_rooms", + "has_underfloor_heating", + "thermostatic_control", + "charging_system", + "switch_system", + "no_control", + "dhw_control", + "community_heating", + "multiple_room_thermostats", + "auxiliary_systems", + "trvs", + "rate_control", + "glazing_type", + "fuel_type", + "main-fuel_tariff_type", + "is_community", + "no_individual_heating_or_community_network", + "complex_fuel_type", ] -NO_SUFFIX_COMPONENT_COLS = ['walls_thermal_transmittance', 'is_cavity_wall', - 'is_filled_cavity', 'is_solid_brick', 'is_system_built', 'is_timber_frame', - 'is_granite_or_whinstone', 'is_as_built', 'is_cob', 'is_sandstone_or_limestone', - 'is_park_home', 'walls_insulation_thickness', 'external_insulation', 'internal_insulation', - 'floor_thermal_transmittance', 'is_to_unheated_space', 'is_to_external_air', 'is_suspended', - 'is_solid', 'another_property_below', 'floor_insulation_thickness', - 'roof_thermal_transmittance', 'is_pitched', 'is_roof_room', 'is_loft', 'is_flat', - 'is_thatched', 'is_at_rafters', 'has_dwelling_above', 'roof_insulation_thickness', - 'heater_type', 'system_type', 'thermostat_characteristics', 'heating_scope', - 'energy_recovery', - 'hotwater_tariff_type', 'extra_features', 'chp_systems', 'distribution_system', - 'no_system_present', 'appliance', 'has_radiators', 'has_fan_coil_units', - 'has_pipes_in_screed_above_insulation', 'has_pipes_in_insulated_timber_floor', - 'has_pipes_in_concrete_slab', 'has_boiler', 'has_air_source_heat_pump', 'has_room_heaters', - 'has_electric_storage_heaters', 'has_warm_air', 'has_electric_underfloor_heating', - 'has_electric_ceiling_heating', 'has_community_scheme', 'has_ground_source_heat_pump', - 'has_no_system_present', 'has_portable_electric_heaters', 'has_water_source_heat_pump', - 'has_electric_heat_pump', 'has_micro-cogeneration', 'has_solar_assisted_heat_pump', - 'has_exhaust_source_heat_pump', 'has_community_heat_pump', 'has_electric', 'has_mains_gas', - 'has_wood_logs', 'has_coal', 'has_oil', 'has_wood_pellets', 'has_anthracite', - 'has_dual_fuel_mineral_and_wood', 'has_smokeless_fuel', 'has_lpg', 'has_b30k', - 'has_electricaire', 'has_assumed_for_most_rooms', 'has_underfloor_heating', - 'thermostatic_control', 'charging_system', 'switch_system', 'no_control', 'dhw_control', - 'community_heating', 'multiple_room_thermostats', 'auxiliary_systems', 'trvs', - 'rate_control', - 'glazing_type', 'fuel_type', 'main-fuel_tariff_type', 'is_community', - 'no_individual_heating_or_community_network', 'complex_fuel_type', - ] ENDING_SUFFIX_COMPONENT_COLS = [ - 'SAP', 'HEAT_DEMAND', 'CARBON', 'TRANSACTION_TYPE', 'MECHANICAL_VENTILATION', 'SECONDHEAT_DESCRIPTION', - 'ENERGY_TARIFF', 'SOLAR_WATER_HEATING_FLAG', 'PHOTO_SUPPLY', 'GLAZED_TYPE', 'MULTI_GLAZE_PROPORTION', - 'LOW_ENERGY_LIGHTING', 'NUMBER_OPEN_FIREPLACES', 'EXTENSION_COUNT', 'TOTAL_FLOOR_AREA', 'FLOOR_HEIGHT', - 'DAYS_TO', 'walls_thermal_transmittance', 'is_park_home', 'walls_insulation_thickness', - 'external_insulation', 'internal_insulation', 'floor_thermal_transmittance', 'floor_insulation_thickness', - 'roof_thermal_transmittance', 'roof_insulation_thickness', 'heater_type', 'system_type', - 'thermostat_characteristics', 'heating_scope', 'energy_recovery', 'hotwater_tariff_type', 'extra_features', - 'chp_systems', 'distribution_system', 'no_system_present', 'appliance', 'has_radiators', - 'has_fan_coil_units', 'has_pipes_in_screed_above_insulation', 'has_pipes_in_insulated_timber_floor', - 'has_pipes_in_concrete_slab', 'has_boiler', 'has_air_source_heat_pump', 'has_room_heaters', - 'has_electric_storage_heaters', 'has_warm_air', 'has_electric_underfloor_heating', - 'has_electric_ceiling_heating', 'has_community_scheme', 'has_ground_source_heat_pump', - 'has_no_system_present', 'has_portable_electric_heaters', 'has_water_source_heat_pump', - 'has_electric_heat_pump', 'has_micro-cogeneration', 'has_solar_assisted_heat_pump', - 'has_exhaust_source_heat_pump', 'has_community_heat_pump', 'has_electric', 'has_mains_gas', 'has_wood_logs', - 'has_coal', 'has_oil', 'has_wood_pellets', 'has_anthracite', 'has_dual_fuel_mineral_and_wood', - 'has_smokeless_fuel', 'has_lpg', 'has_b30k', 'has_electricaire', 'has_assumed_for_most_rooms', - 'has_underfloor_heating', 'thermostatic_control', 'charging_system', 'switch_system', 'no_control', - 'dhw_control', 'community_heating', 'multiple_room_thermostats', 'auxiliary_systems', 'trvs', - 'rate_control', 'glazing_type', 'fuel_type', 'main-fuel_tariff_type', 'is_community', - 'no_individual_heating_or_community_network', 'complex_fuel_type', 'estimated_perimeter' + "SAP", + "HEAT_DEMAND", + "CARBON", + "TRANSACTION_TYPE", + "MECHANICAL_VENTILATION", + "SECONDHEAT_DESCRIPTION", + "ENERGY_TARIFF", + "SOLAR_WATER_HEATING_FLAG", + "PHOTO_SUPPLY", + "GLAZED_TYPE", + "MULTI_GLAZE_PROPORTION", + "LOW_ENERGY_LIGHTING", + "NUMBER_OPEN_FIREPLACES", + "EXTENSION_COUNT", + "TOTAL_FLOOR_AREA", + "FLOOR_HEIGHT", + "DAYS_TO", + "walls_thermal_transmittance", + "is_park_home", + "walls_insulation_thickness", + "external_insulation", + "internal_insulation", + "floor_thermal_transmittance", + "floor_insulation_thickness", + "roof_thermal_transmittance", + "roof_insulation_thickness", + "heater_type", + "system_type", + "thermostat_characteristics", + "heating_scope", + "energy_recovery", + "hotwater_tariff_type", + "extra_features", + "chp_systems", + "distribution_system", + "no_system_present", + "appliance", + "has_radiators", + "has_fan_coil_units", + "has_pipes_in_screed_above_insulation", + "has_pipes_in_insulated_timber_floor", + "has_pipes_in_concrete_slab", + "has_boiler", + "has_air_source_heat_pump", + "has_room_heaters", + "has_electric_storage_heaters", + "has_warm_air", + "has_electric_underfloor_heating", + "has_electric_ceiling_heating", + "has_community_scheme", + "has_ground_source_heat_pump", + "has_no_system_present", + "has_portable_electric_heaters", + "has_water_source_heat_pump", + "has_electric_heat_pump", + "has_micro-cogeneration", + "has_solar_assisted_heat_pump", + "has_exhaust_source_heat_pump", + "has_community_heat_pump", + "has_electric", + "has_mains_gas", + "has_wood_logs", + "has_coal", + "has_oil", + "has_wood_pellets", + "has_anthracite", + "has_dual_fuel_mineral_and_wood", + "has_smokeless_fuel", + "has_lpg", + "has_b30k", + "has_electricaire", + "has_assumed_for_most_rooms", + "has_underfloor_heating", + "thermostatic_control", + "charging_system", + "switch_system", + "no_control", + "dhw_control", + "community_heating", + "multiple_room_thermostats", + "auxiliary_systems", + "trvs", + "rate_control", + "glazing_type", + "fuel_type", + "main-fuel_tariff_type", + "is_community", + "no_individual_heating_or_community_network", + "complex_fuel_type", + "estimated_perimeter", ] # We found that without performing any filtering, the bottom 0.5% of homes had a floor height of 1.65m. We'll therefore From 82d19fc6fc1b3429d2f2331dcbc84e3f9d91234f Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Thu, 15 Feb 2024 19:32:33 +0000 Subject: [PATCH 269/526] implementing new sequenced scoring approach for recommendations --- .idea/Model.iml | 2 +- .idea/misc.xml | 2 +- backend/Property.py | 35 +++++--- backend/ml_models/api.py | 8 +- recommendations/LightingRecommendations.py | 3 + recommendations/Recommendations.py | 84 +++++++++++++------ recommendations/VentilationRecommendations.py | 5 +- 7 files changed, 94 insertions(+), 45 deletions(-) diff --git a/.idea/Model.iml b/.idea/Model.iml index b0f9c00d..4413bb06 100644 --- a/.idea/Model.iml +++ b/.idea/Model.iml @@ -7,7 +7,7 @@ - + diff --git a/.idea/misc.xml b/.idea/misc.xml index 1122b380..6f308057 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -3,7 +3,7 @@ - + diff --git a/backend/Property.py b/backend/Property.py index 109f70a9..fddea1b1 100644 --- a/backend/Property.py +++ b/backend/Property.py @@ -1,20 +1,15 @@ -from datetime import datetime -import re import os - -import numpy as np +from itertools import groupby import pandas as pd -from etl.epc.DataProcessor import EPCDataProcessor from etl.epc.Dataset import TrainingDataset -from etl.epc.settings import LATEST_FIELD, MANDATORY_FIXED_FEATURES, POTENTIAL_COLUMNS, EFFICIENCY_FEATURES, \ - BUILT_FORM_REMAP +from etl.epc.settings import LATEST_FIELD, MANDATORY_FIXED_FEATURES from etl.epc_clean.epc_attributes.all_cleaners import all_cleaner_map from etl.solar.SolarPhotoSupply import SolarPhotoSupply from utils.logger import setup_logger from utils.s3 import read_dataframe_from_s3_parquet from etl.epc.settings import DATA_ANOMALY_MATCHES -from recommendations.rdsap_tables import england_wales_age_band_lookup, FLOOR_LEVEL_MAP +from recommendations.rdsap_tables import FLOOR_LEVEL_MAP from recommendations.recommendation_utils import ( estimate_perimeter, get_wall_type, estimate_external_wall_area, esimtate_pitched_roof_area, estimate_windows ) @@ -172,11 +167,28 @@ class Property: previous_phase_representatives = [ r for r in property_representative_recommendations if r["phase"] in previous_phases ] + # For solid wall insulation, we will actually have 2 representative recommendations, since we consider + # both internal and external wall insulation as possible measures. We will use the representative that + # has the lowest efficiency. + # Take the representative with the lowest efficiency, by phase + + # To be safe, we sort by phase + previous_phase_representatives = sorted(previous_phase_representatives, key=lambda x: x['phase']) + + previous_phase_representatives = [ + min(group, key=lambda x: x['efficiency']) for _, group in groupby( + previous_phase_representatives, key=lambda x: x['phase'] + ) + ] + recommendation_record = self.base_difference_record.df.to_dict("records")[0].copy() for rec in property_recommendations_by_phase: # We simulate the impact of the recommendation at this current phase, and all of the prior phases + if rec["type"] == "mechanical_ventilation": + continue + scoring_dict = self.create_recommendation_scoring_data( property_id=self.id, recommendation_record=recommendation_record, @@ -230,9 +242,10 @@ class Property: output["external_insulation"] = False output["internal_insulation"] = True + # TODO: perhaps detrimental # When making a recommendation for the wall, we will also update the ventilation - if output["mechanical_ventilation_ending"] == 'natural': - output["mechanical_ventilation_ending"] = 'mechanical, extract only' + # if output["mechanical_ventilation_ending"] == 'natural': + # output["mechanical_ventilation_ending"] = 'mechanical, extract only' else: if output["walls_thermal_transmittance_ending"] is None: @@ -328,7 +341,7 @@ class Property: output["photo_supply_ending"] = recommendation["photo_supply"] if recommendation["type"] not in [ - "mechanical_ventilation", "sealing_open_fireplace", "low_energy_lighting", + "sealing_open_fireplace", "low_energy_lighting", "internal_wall_insulation", "external_wall_insulation", "cavity_wall_insulation", "loft_insulation", "room_roof_insulation", "flat_roof_insulation", "solid_floor_insulation", "suspended_floor_insulation", "exposed_floor_insulation", diff --git a/backend/ml_models/api.py b/backend/ml_models/api.py index bc09f26c..bdc7c178 100644 --- a/backend/ml_models/api.py +++ b/backend/ml_models/api.py @@ -130,8 +130,14 @@ class ModelApi: ) ) - predictions_df["predictions"] = predictions_df["predictions"].astype(float).round(1) + predictions_df['predictions'] = predictions_df["predictions"].astype(float).round(1) predictions_df[['property_id', 'recommendation_id']] = predictions_df['id'].str.split('+', expand=True) + # To grab the phase, we pull the integer after "phase=" in the recommendation_id. We can do this with a + # string split on phase= and then grab the second element of the resulting list. We could also use a + # regular expression to do this but we use the string split method here, for safety. + predictions_df['phase'] = predictions_df['recommendation_id'].str.split('phase=').str[1].str[0] + # Convert back to int + predictions_df['phase'] = predictions_df['phase'].astype(int) predictions[model_prefix] = predictions_df diff --git a/recommendations/LightingRecommendations.py b/recommendations/LightingRecommendations.py index 6d50f0a2..352c4d8a 100644 --- a/recommendations/LightingRecommendations.py +++ b/recommendations/LightingRecommendations.py @@ -4,6 +4,9 @@ from recommendations.Costs import Costs class LightingRecommendations: + # We introduce a SAP limit to lighting, which is based on empirical findings. We do see cases where lighting is + # worth more than 2 points, but this is unlikely in the context of other upgrades that can be made to the property + SAP_LIMIT = 2 def __init__(self, property_instance: Property, materials: List): """ diff --git a/recommendations/Recommendations.py b/recommendations/Recommendations.py index f0cf7806..93472068 100644 --- a/recommendations/Recommendations.py +++ b/recommendations/Recommendations.py @@ -1,5 +1,6 @@ from backend.Property import Property from typing import List +from itertools import groupby from recommendations.FloorRecommendations import FloorRecommendations from recommendations.WallRecommendations import WallRecommendations from recommendations.RoofRecommendations import RoofRecommendations @@ -134,23 +135,32 @@ class Recommendations: has_u_value = recommendations_by_type[0].get("new_u_value") is not None has_sap_points = recommendations_by_type[0].get("sap_points") is not None - if has_u_value: - # We sort by the cost per U-value improvement - the lower the better - recommendations_by_type.sort( - key=lambda x: x["total"] / x["starting_u_value"] - x["new_u_value"] - ) - elif not has_u_value and has_sap_points: - # Sort the options by the cost per SAP point improvement - the lower the better - recommendations_by_type.sort( - key=lambda x: x["total"] / x["sap_points"] - ) - else: - # Sort the options by cost - the lower the better - recommendations_by_type.sort( - key=lambda x: x["total"] - ) + # When check if these recommendations have two different types, such as solid wall insulation + # If we have multiple types, we group by type and then select the best recommendation for each type - property_representative_recommendations.append(recommendations_by_type[0]) + recommendations_by_type = sorted(recommendations_by_type, key=lambda x: x["type"]) + representative_recommendations = [] + for type, recommendations in groupby(recommendations_by_type, key=lambda x: x["type"]): + recommendations = list(recommendations) + # We also create an efficiency key, which is used to sort the recommendations + if has_u_value: + # We sort by the cost per U-value improvement - the lower the better + for rec in recommendations: + rec["efficiency"] = rec["total"] / rec["starting_u_value"] - rec["new_u_value"] + elif not has_u_value and has_sap_points: + # Sort the options by the cost per SAP point improvement - the lower the better + for rec in recommendations: + rec["efficiency"] = rec["total"] / rec["sap_points"] + else: + # Sort the options by cost - the lower the better + for rec in recommendations: + rec["efficiency"] = rec["total"] + + recommendations.sort( + key=lambda x: x["efficiency"] + ) + representative_recommendations.append(recommendations[0]) + property_representative_recommendations.extend(representative_recommendations) return property_representative_recommendations @@ -168,7 +178,7 @@ class Recommendations: for recs in property_recommendations: for rec in recs: - rec["recommendation_id"] = idx + rec["recommendation_id"] = f"{str(idx)}_phase={str(rec['phase'])}" idx += 1 return property_recommendations @@ -198,11 +208,16 @@ class Recommendations: property_recommendations = recommendations[property_instance.id].copy() + # We calculate the impact by phase + sap_phase_impact = property_sap_predictions.groupby("phase")["predictions"].median().reset_index() + heat_phase_impact = property_heat_predictions.groupby("phase")["predictions"].median().reset_index() + carbon_phase_impact = property_carbon_predictions.groupby("phase")["predictions"].median().reset_index() + for recommendations_by_type in property_recommendations: for rec in recommendations_by_type: - # We don't use the model for low energy lighting at the moment - if rec["type"] == "low_energy_lighting": + if rec["type"] == "mechanical_ventilation": + # We don't have a percieved sap impact of mechanical ventilation continue new_heat_demand = property_heat_predictions[property_heat_predictions["recommendation_id"] == str( @@ -216,22 +231,37 @@ class Recommendations: new_sap = property_sap_predictions[property_sap_predictions["recommendation_id"] == str( rec["recommendation_id"] )]["predictions"].values[0] - rec["sap_points"] = new_sap - float(property_instance.data["current-energy-efficiency"]) - if rec["type"] == "mechanical_ventilation": + if rec["phase"] == 0: + rec["sap_points"] = new_sap - float(property_instance.data["current-energy-efficiency"]) + rec["co2_equivalent_savings"] = float(property_instance.data["co2-emissions-current"]) - new_carbon + rec["heat_demand"] = property_instance.floor_area * ( + float(property_instance.data["energy-consumption-current"]) - new_heat_demand + ) + else: + + previous_phase = rec["phase"] - 1 + rec["sap_points"] = ( + new_sap - sap_phase_impact[sap_phase_impact["phase"] == previous_phase]["predictions"].values[0] + ) + rec["co2_equivalent_savings"] = ( + carbon_phase_impact[carbon_phase_impact["phase"] == previous_phase]["predictions"].values[0] - + new_carbon + ) + rec["heat_demand"] = property_instance.floor_area * ( + heat_phase_impact[heat_phase_impact["phase"] == previous_phase]["predictions"].values[0] - + new_heat_demand + ) + + if rec["type"] == "low_energy_lighting": # For the moment, we cap the number of SAP points that can be achieved by ventilation at 2 - rec["sap_points"] = min(rec["sap_points"], VentilationRecommendations.SAP_LIMIT) + rec["sap_points"] = min(rec["sap_points"], LightingRecommendations.SAP_LIMIT) # Round to 2 decimal places rec["sap_points"] = round(rec["sap_points"], 2) - rec["co2_equivalent_savings"] = float(property_instance.data["co2-emissions-current"]) - new_carbon # Energy consumption current is per meter squared, so we need to multiply by the floor area to get # an absolute figure for the home - rec["heat_demand"] = ( - (float(property_instance.data["energy-consumption-current"]) - new_heat_demand - ) * property_instance.floor_area) - rec["energy_cost_savings"] = AnnualBillSavings.estimate(rec["heat_demand"]) if (rec["sap_points"] is None) and (rec["co2_equivalent_savings"] is None) or ( diff --git a/recommendations/VentilationRecommendations.py b/recommendations/VentilationRecommendations.py index 7241cdec..19aad0e1 100644 --- a/recommendations/VentilationRecommendations.py +++ b/recommendations/VentilationRecommendations.py @@ -15,9 +15,6 @@ class VentilationRecommendations(Definitions): 'mechanical, supply and extract' ] - # We introduce a SAP limit, to prevent over-predicting the SAP impact of mechanical ventilation - SAP_LIMIT = 2 - def __init__( self, property_instance: Property, @@ -68,7 +65,7 @@ class VentilationRecommendations(Definitions): "description": f"Install {n_units} {part[0]['description']} units", "starting_u_value": None, "new_u_value": None, - "sap_points": None, + "sap_points": 0, "total": estimated_cost, # We use a very simple and rough estimate of 4 hours per unit "labour_hours": 4 * n_units, From 5d45243e990243178297da9280eeca9773f97253 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Fri, 16 Feb 2024 13:01:19 +0000 Subject: [PATCH 270/526] implementing new process to adjust energy savings and reduce complexity in router --- backend/Property.py | 19 ++ .../db/functions/recommendations_functions.py | 1 + backend/app/plan/router.py | 188 ++---------------- recommendations/Recommendations.py | 83 ++++++-- 4 files changed, 105 insertions(+), 186 deletions(-) diff --git a/backend/Property.py b/backend/Property.py index fddea1b1..b20d409a 100644 --- a/backend/Property.py +++ b/backend/Property.py @@ -42,6 +42,7 @@ class Property: walls = None windows = None lighting = None + energy_source = None spatial = None base_difference_record = None @@ -417,6 +418,7 @@ class Property: self.set_solar_panel_area( photo_supply_lookup=photo_supply_lookup, floor_area_decile_thresholds=floor_area_decile_thresholds ) + self.set_energy_source() def set_spatial(self, spatial: pd.DataFrame): """ @@ -749,3 +751,20 @@ class Property: self.insulation_floor_area * percentage_of_roof if self.roof["is_flat"] else self.pitched_roof_area * percentage_of_roof ) + + def set_energy_source(self): + """ + This method sets the energy source of the property, based on the mains gas flag and energy tariff. + """ + # Default to "electricity_and_gas" to cover most scenarios including when mains_gas_flag is True + energy_source = "electricity_and_gas" + + # If the tariff explicitly indicates electricity use without a dual indication and mains_gas_flag is not True + # We check for the common electricity tariffs + if not self.data["mains_gas_flag"] and self.data["energy_tariff"] in [ + "Single", "off-peak 7 hour", "off-peak 10 hour", "off-peak 18 hour", "standard tariff", "24 hour" + ]: + energy_source = "electricity" + + # Set the energy source based on the conditions above + self.energy_source = energy_source diff --git a/backend/app/db/functions/recommendations_functions.py b/backend/app/db/functions/recommendations_functions.py index f7fcb7a3..1426e339 100644 --- a/backend/app/db/functions/recommendations_functions.py +++ b/backend/app/db/functions/recommendations_functions.py @@ -81,6 +81,7 @@ def upload_recommendations(session: Session, recommendations_to_upload, property "new_u_value": rec.get("new_u_value"), "sap_points": rec["sap_points"], "heat_demand": rec["heat_demand"], + "adjusted_heat_demand": rec["adjusted_heat_demand"], "co2_equivalent_savings": rec["co2_equivalent_savings"], "total_work_hours": rec["labour_hours"], "energy_cost_savings": rec["energy_cost_savings"], diff --git a/backend/app/plan/router.py b/backend/app/plan/router.py index 3799d43f..3b010d12 100644 --- a/backend/app/plan/router.py +++ b/backend/app/plan/router.py @@ -136,7 +136,7 @@ async def trigger_plan(body: PlanTriggerRequest): recommendations = {} recommendations_scoring_data = [] - representive_recommendations = {} + representative_recommendations = {} for p in input_properties: # Property recommendations @@ -151,7 +151,7 @@ async def trigger_plan(body: PlanTriggerRequest): continue recommendations[p.id] = property_recommendations - representive_recommendations[p.id] = property_representative_recommendations + representative_recommendations[p.id] = property_representative_recommendations p.create_base_difference_epc_record(cleaned_lookup=cleaned) p.adjust_difference_record_with_recommendations( @@ -185,10 +185,18 @@ async def trigger_plan(body: PlanTriggerRequest): property_instance = [p for p in input_properties if p.id == property_id][0] - recommendations_with_impact = Recommendations.calculate_recommendation_impact( - property_instance=property_instance, - all_predictions=all_predictions, - recommendations=recommendations + recommendations_with_impact, current_adjusted_energy, expected_adjusted_energy = ( + Recommendations.calculate_recommendation_impact( + property_instance=property_instance, + all_predictions=all_predictions, + recommendations=recommendations + ) + ) + + # Store the resulting adjusted energy in the property instance + property_instance.set_adjusted_energy( + current_adjusted_energy=current_adjusted_energy, + expected_adjusted_energy=expected_adjusted_energy ) input_measures = prepare_input_measures(recommendations_with_impact, body.goal) @@ -242,174 +250,6 @@ async def trigger_plan(body: PlanTriggerRequest): ] recommendations[property_id] = final_recommendations - # This is a temporary step, to estimate the impact of the measured on heat demand and carbon - # TODO: This needs to be cleaned up, if it happens to be kept - representative_recs = {} - for property_id, property_recommendations in recommendations.items(): - default_recommendations = [r for r in property_recommendations if r["default"]] - default_types = {x["type"] for x in default_recommendations} - - # Missing types - missing_types = list(set([r["type"] for r in property_recommendations if r["type"] not in default_types])) - # We might have a missing type as one of the solid wall options because for a solid wall, you might - # have ewi or iwi but only one of them will be a default - if ("internal_wall_insulation" in default_types) or ("external_wall_insaultion" in default_types): - missing_types = [ - t for t in missing_types if t not in ["internal_wall_insulation", "external_wall_insulation"] - ] - - # We check if NO wall insulation was selected but iwi and ewi are available - # This condition will check - # 1) iwi and ewi are both in missing_types - # 2) iwi and ewi are not in default_types - # If both of these are true, it means that no wall insulation was selected via the optimisation routine - # but both are possible, so we need to select a default. We default to iwi because it's usually cheaper - if (("internal_wall_insulation" in missing_types) and ("external_wall_insulation" in missing_types)) and ( - ("internal_wall_insulation" not in default_types) and ("external_wall_insulation" not in default_types) - ): - missing_types = [t for t in missing_types if t != "external_wall_insulation"] - - if missing_types: - for missed_type in missing_types: - missed = [r for r in property_recommendations if r["type"] == missed_type] - min_cost = min([r["total"] for r in missed]) - # Grab a representative, based on cheapest cost - - representative_rec = [r for r in property_recommendations if np.isclose(r["total"], min_cost)] - default_recommendations.append(representative_rec[0]) - - representative_recs[property_id] = default_recommendations - - # We update the carbon and heat demand predictions - # TODO: The api call producing all_combined_predictions has been removed so we can potentially completely - # refactor this block to just perform the energy adjustments - for property_id, property_recommendations in recommendations.items(): - - property_instance = [p for p in input_properties if p.id == property_id][0] - - heat_demand_change = sum( - x.get("heat_demand", 0) for x in representative_recs[property_id] if - x["type"] not in ["mechanical_ventilation", "low_energy_lighting"] - ) - carbon_change = sum( - x.get("co2_equivalent_savings", 0) for x in representative_recs[property_id] if - x["type"] not in ["mechanical_ventilation", "low_energy_lighting"] - ) - - starting_heat_demand = ( - float(property_instance.data["energy-consumption-current"]) * property_instance.floor_area - ) - expected_heat_demand = starting_heat_demand - heat_demand_change - - # We don't want to adjust the heat demand for mechanical ventilation so we add it back on - - # We adjust the heat demand figures to align to the UCL paper - current_adjusted_energy = AnnualBillSavings.adjust_energy_to_metered( - epc_energy_consumption=starting_heat_demand, - current_epc_rating=property_instance.data["current-energy-rating"], - ) - - # We sum up the SAP points of the default recommendations and calculate a new EPC category. This - # category is then used to produce adjusted energy figures - - expected_adjusted_energy = AnnualBillSavings.adjust_energy_to_metered( - epc_energy_consumption=expected_heat_demand, - current_epc_rating=property_instance.data["current-energy-rating"], - ) - - heat_demand_change = ( - current_adjusted_energy - expected_adjusted_energy - ) - - # update the recommendations - # We need to totals for the representative recommendations - representative_rec_data = [ - { - "recommendation_id": r["recommendation_id"], - "co2_equivalent_savings": r.get("co2_equivalent_savings"), - "heat_demand": r.get("heat_demand"), - "type": r["type"] - } for r - in representative_recs[property_id] - ] - representative_rec_data = pd.DataFrame(representative_rec_data) - # Suppress mechanical ventilation to have zero heat demand and co2 - representative_rec_data.loc[ - representative_rec_data["type"] == "mechanical_ventilation", "co2_equivalent_savings" - ] = 0 - representative_rec_data.loc[ - representative_rec_data["type"] == "mechanical_ventilation", "heat_demand" - ] = 0 - # Supress low energy lighting to have zero heat demand and co2 - this does not get affected by this process - representative_rec_data.loc[ - representative_rec_data["type"] == "low_energy_lighting", "co2_equivalent_savings" - ] = 0 - representative_rec_data.loc[ - representative_rec_data["type"] == "low_energy_lighting", "heat_demand" - ] = 0 - - # Convert co2 and heat demand to proportions of their column sums - representative_rec_data["co2_equivalent_savings_percent"] = ( - representative_rec_data["co2_equivalent_savings"] / - representative_rec_data["co2_equivalent_savings"].sum() - ) - - representative_rec_data["heat_demand_percent"] = ( - representative_rec_data["heat_demand"] / representative_rec_data["heat_demand"].sum() - ) - - # We'll use the proportions to update the carbon and heat demand - representative_rec_data["co2_equivalent_savings"] = ( - carbon_change * representative_rec_data["co2_equivalent_savings_percent"] - ) - - representative_rec_data["heat_demand"] = ( - heat_demand_change * representative_rec_data["heat_demand_percent"] - ) - - # Finally, insert these values into the final recommendations - for rec in property_recommendations: - if rec["type"] in ["external_wall_insulation", "internal_wall_insulation"]: - change_data = representative_rec_data[ - representative_rec_data["type"].isin(["external_wall_insulation", "internal_wall_insulation"]) - ] - else: - change_data = representative_rec_data[representative_rec_data["type"] == rec["type"]] - - if rec["type"] == "mechanical_ventilation": - rec["co2_equivalent_savings"] = 0 - rec["heat_demand"] = 0 - rec["energy_cost_savings"] = 0 - elif rec["type"] == "low_energy_lighting": - # We do not convert, we just calculate energy cost savings - rec["energy_cost_savings"] = AnnualBillSavings.estimate_electric(rec["heat_demand"]) - continue - else: - rec["co2_equivalent_savings"] = change_data["co2_equivalent_savings"].values[0] - rec["heat_demand"] = change_data["heat_demand"].values[0] - # If the recommendation is solar, the savings are entirely in electricity - if rec["type"] == "solar_pv": - rec["energy_cost_savings"] = AnnualBillSavings.estimate_electric(rec["heat_demand"]) - else: - rec["energy_cost_savings"] = AnnualBillSavings.estimate(rec["heat_demand"]) - - # Update recommendations - recommendations[property_id] = property_recommendations - - # For expected adjust energy, we don't include mechanical ventilation so we'll add it back on - mechanical_ventilation_rec = representative_rec_data[ - representative_rec_data["type"] == "mechanical_ventilation" - ] - if not mechanical_ventilation_rec.empty: - expected_adjusted_energy = ( - expected_adjusted_energy + mechanical_ventilation_rec["heat_demand"].values[0] - ) - - property_instance.set_adjusted_energy( - current_adjusted_energy=current_adjusted_energy, - expected_adjusted_energy=expected_adjusted_energy - ) - # 1) the property data # 2) the property details (epc) # 3) the recommendations diff --git a/recommendations/Recommendations.py b/recommendations/Recommendations.py index 93472068..06d98a69 100644 --- a/recommendations/Recommendations.py +++ b/recommendations/Recommendations.py @@ -1,3 +1,5 @@ +import numpy as np + from backend.Property import Property from typing import List from itertools import groupby @@ -213,6 +215,44 @@ class Recommendations: heat_phase_impact = property_heat_predictions.groupby("phase")["predictions"].median().reset_index() carbon_phase_impact = property_carbon_predictions.groupby("phase")["predictions"].median().reset_index() + ## TODO: NEW + + # The heat demand change is the difference between the starting heat demand and the value at the final phase + expected_heat_demand = property_instance.floor_area * ( + heat_phase_impact[heat_phase_impact["phase"] == max(heat_phase_impact["phase"])]["predictions"].values[0] + ) + + expected_carbon = ( + carbon_phase_impact[carbon_phase_impact["phase"] == max(carbon_phase_impact["phase"])][ + "predictions"].values[0] + ) + + starting_heat_demand = ( + float(property_instance.data["energy-consumption-current"]) * property_instance.floor_area + ) + + # This is the unadjusted resulting heat demand + predicted_heat_demand_change = starting_heat_demand - expected_heat_demand + + starting_carbon = float(property_instance.data["co2-emissions-current"]) + + # We don't want to adjust the heat demand for mechanical ventilation so we add it back on + + # We adjust the heat demand figures to align to the UCL paper + current_adjusted_energy = AnnualBillSavings.adjust_energy_to_metered( + epc_energy_consumption=starting_heat_demand, + current_epc_rating=property_instance.data["current-energy-rating"], + ) + + expected_adjusted_energy = AnnualBillSavings.adjust_energy_to_metered( + epc_energy_consumption=expected_heat_demand, + current_epc_rating=property_instance.data["current-energy-rating"], + ) + + adjusted_heat_demand_change = ( + current_adjusted_energy - expected_adjusted_energy + ) + for recommendations_by_type in property_recommendations: for rec in recommendations_by_type: @@ -233,39 +273,58 @@ class Recommendations: )]["predictions"].values[0] if rec["phase"] == 0: - rec["sap_points"] = new_sap - float(property_instance.data["current-energy-efficiency"]) - rec["co2_equivalent_savings"] = float(property_instance.data["co2-emissions-current"]) - new_carbon - rec["heat_demand"] = property_instance.floor_area * ( + predicted_sap_points = new_sap - float(property_instance.data["current-energy-efficiency"]) + predicted_co2_savings = float(property_instance.data["co2-emissions-current"]) - new_carbon + predicted_heat_demand = property_instance.floor_area * ( float(property_instance.data["energy-consumption-current"]) - new_heat_demand ) else: - previous_phase = rec["phase"] - 1 - rec["sap_points"] = ( + predicted_sap_points = ( new_sap - sap_phase_impact[sap_phase_impact["phase"] == previous_phase]["predictions"].values[0] ) - rec["co2_equivalent_savings"] = ( + predicted_co2_savings = ( carbon_phase_impact[carbon_phase_impact["phase"] == previous_phase]["predictions"].values[0] - new_carbon ) - rec["heat_demand"] = property_instance.floor_area * ( + predicted_heat_demand = property_instance.floor_area * ( heat_phase_impact[heat_phase_impact["phase"] == previous_phase]["predictions"].values[0] - new_heat_demand ) if rec["type"] == "low_energy_lighting": # For the moment, we cap the number of SAP points that can be achieved by ventilation at 2 - rec["sap_points"] = min(rec["sap_points"], LightingRecommendations.SAP_LIMIT) + rec["sap_points"] = min(predicted_sap_points, LightingRecommendations.SAP_LIMIT) + rec["co2_equivalent_savings"] = min(predicted_co2_savings, rec["co2_equivalent_savings"]) + rec["heat_demand"] = min(predicted_heat_demand, rec["heat_demand"]) + else: + rec["sap_points"] = predicted_sap_points + rec["co2_equivalent_savings"] = predicted_co2_savings + rec["heat_demand"] = predicted_heat_demand # Round to 2 decimal places rec["sap_points"] = round(rec["sap_points"], 2) - # Energy consumption current is per meter squared, so we need to multiply by the floor area to get - # an absolute figure for the home - rec["energy_cost_savings"] = AnnualBillSavings.estimate(rec["heat_demand"]) + # We now calculate the adjusted heat demand for this recommendation, which is simply the percentage + # of the total adjusted heat demand change. The percentage we use is this recommendation's percentage + # of the total heat demand per square meter change + + rec["adjusted_heat_demand"] = adjusted_heat_demand_change * ( + rec["heat_demand"] / predicted_heat_demand_change + ) + # We make sure this is NOT below 0 + rec["adjusted_heat_demand"] = max(0, rec["heat_demand"]) + + # Depending on the property's tarriff, we calculate the amount of energy savings this measure will bring + if property_instance.energy_source == "electricity": + rec["energy_cost_savings"] = AnnualBillSavings.estimate_electric(rec["heat_demand"]) + elif property_instance.energy_source == "electricity_and_gas": + rec["energy_cost_savings"] = AnnualBillSavings.estimate(rec["heat_demand"]) + else: + raise ValueError("Invalid value for energy source") if (rec["sap_points"] is None) and (rec["co2_equivalent_savings"] is None) or ( rec["heat_demand"] is None) or (rec["energy_cost_savings"] is None): raise ValueError("sap points, co2 or heat demand is missing") - return property_recommendations + return property_recommendations, current_adjusted_energy, expected_adjusted_energy From 4fb479d3c1936d5fbb108d9f0676392f6c2d3397 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Fri, 16 Feb 2024 13:02:15 +0000 Subject: [PATCH 271/526] Added adjusted_heat_demand to Recommnendations model --- backend/app/db/models/recommendations.py | 1 + recommendations/Recommendations.py | 8 -------- 2 files changed, 1 insertion(+), 8 deletions(-) diff --git a/backend/app/db/models/recommendations.py b/backend/app/db/models/recommendations.py index ff7aa642..42ecbddf 100644 --- a/backend/app/db/models/recommendations.py +++ b/backend/app/db/models/recommendations.py @@ -22,6 +22,7 @@ class Recommendation(Base): new_u_value = Column(Float) sap_points = Column(Float) heat_demand = Column(Float) + adjusted_heat_demand = Column(Float) co2_equivalent_savings = Column(Float) energy_savings = Column(Float) energy_cost_savings = Column(Float) diff --git a/recommendations/Recommendations.py b/recommendations/Recommendations.py index 06d98a69..7bdfbdea 100644 --- a/recommendations/Recommendations.py +++ b/recommendations/Recommendations.py @@ -221,12 +221,6 @@ class Recommendations: expected_heat_demand = property_instance.floor_area * ( heat_phase_impact[heat_phase_impact["phase"] == max(heat_phase_impact["phase"])]["predictions"].values[0] ) - - expected_carbon = ( - carbon_phase_impact[carbon_phase_impact["phase"] == max(carbon_phase_impact["phase"])][ - "predictions"].values[0] - ) - starting_heat_demand = ( float(property_instance.data["energy-consumption-current"]) * property_instance.floor_area ) @@ -234,8 +228,6 @@ class Recommendations: # This is the unadjusted resulting heat demand predicted_heat_demand_change = starting_heat_demand - expected_heat_demand - starting_carbon = float(property_instance.data["co2-emissions-current"]) - # We don't want to adjust the heat demand for mechanical ventilation so we add it back on # We adjust the heat demand figures to align to the UCL paper From 1f0dea980ff65a88a68483532f50779acec3a07f Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Fri, 16 Feb 2024 14:28:13 +0000 Subject: [PATCH 272/526] Debugging set_energy_source --- backend/Property.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/Property.py b/backend/Property.py index b20d409a..75cfaef1 100644 --- a/backend/Property.py +++ b/backend/Property.py @@ -761,7 +761,7 @@ class Property: # If the tariff explicitly indicates electricity use without a dual indication and mains_gas_flag is not True # We check for the common electricity tariffs - if not self.data["mains_gas_flag"] and self.data["energy_tariff"] in [ + if not self.data["mains-gas-flag"] and self.data["energy-tariff"] in [ "Single", "off-peak 7 hour", "off-peak 10 hour", "off-peak 18 hour", "standard tariff", "24 hour" ]: energy_source = "electricity" From 132bf98eeb8791aa015313078a179f32f560c478 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Fri, 16 Feb 2024 15:18:09 +0000 Subject: [PATCH 273/526] small tweaks to fill missing data in ventilation recs and percentage in solar description --- backend/app/plan/router.py | 2 +- recommendations/Costs.py | 8 ++++---- recommendations/Recommendations.py | 8 +++----- recommendations/SolarPvRecommendations.py | 4 ++-- recommendations/VentilationRecommendations.py | 4 ++++ 5 files changed, 14 insertions(+), 12 deletions(-) diff --git a/backend/app/plan/router.py b/backend/app/plan/router.py index 3b010d12..28dcaa68 100644 --- a/backend/app/plan/router.py +++ b/backend/app/plan/router.py @@ -220,7 +220,7 @@ async def trigger_plan(body: PlanTriggerRequest): selected_recommendations = {r["id"] for r in solution} - # If wall ventilation is selected, we also include mechanical ventilation as a best practice measure + # If wall insulation is selected, we also include mechanical ventilation as a best practice measure if any(x in [r["type"] for r in solution] for x in [ "internal_wall_insulation", "external_wall_insulation", "cavity_wall_insulation" ]): diff --git a/recommendations/Costs.py b/recommendations/Costs.py index dd1f1a21..6ea17dce 100644 --- a/recommendations/Costs.py +++ b/recommendations/Costs.py @@ -860,12 +860,12 @@ class Costs: kw = wattage / 1000 total_cost = kw * regional_cost - subtotal_before_vat = total_cost / (1 + self.VAT_RATE) - if has_battery: # The battery cost is based on the £3500 quote, recieved from installers - subtotal_before_vat += BATTERY_COST - + total_cost += BATTERY_COST + + subtotal_before_vat = total_cost / (1 + self.VAT_RATE) + vat = total_cost - subtotal_before_vat # Labour hours are based on estimates from online research but an average team seems to consist of 3 people diff --git a/recommendations/Recommendations.py b/recommendations/Recommendations.py index 7bdfbdea..d1eec41b 100644 --- a/recommendations/Recommendations.py +++ b/recommendations/Recommendations.py @@ -215,8 +215,6 @@ class Recommendations: heat_phase_impact = property_heat_predictions.groupby("phase")["predictions"].median().reset_index() carbon_phase_impact = property_carbon_predictions.groupby("phase")["predictions"].median().reset_index() - ## TODO: NEW - # The heat demand change is the difference between the starting heat demand and the value at the final phase expected_heat_demand = property_instance.floor_area * ( heat_phase_impact[heat_phase_impact["phase"] == max(heat_phase_impact["phase"])]["predictions"].values[0] @@ -305,13 +303,13 @@ class Recommendations: rec["heat_demand"] / predicted_heat_demand_change ) # We make sure this is NOT below 0 - rec["adjusted_heat_demand"] = max(0, rec["heat_demand"]) + rec["adjusted_heat_demand"] = max(0, rec["adjusted_heat_demand"]) # Depending on the property's tarriff, we calculate the amount of energy savings this measure will bring if property_instance.energy_source == "electricity": - rec["energy_cost_savings"] = AnnualBillSavings.estimate_electric(rec["heat_demand"]) + rec["energy_cost_savings"] = AnnualBillSavings.estimate_electric(rec["adjusted_heat_demand"]) elif property_instance.energy_source == "electricity_and_gas": - rec["energy_cost_savings"] = AnnualBillSavings.estimate(rec["heat_demand"]) + rec["energy_cost_savings"] = AnnualBillSavings.estimate(rec["adjusted_heat_demand"]) else: raise ValueError("Invalid value for energy source") diff --git a/recommendations/SolarPvRecommendations.py b/recommendations/SolarPvRecommendations.py index 5fae09b3..3a89b213 100644 --- a/recommendations/SolarPvRecommendations.py +++ b/recommendations/SolarPvRecommendations.py @@ -70,10 +70,10 @@ class SolarPvRecommendations: if has_battery: description = (f"Install a {kw} kilowatt-peak (kWp) solar photovoltaic (PV) panel system on " - f"{round(roof_coverage_percent * 100)}% the roof, with a battery storage system.") + f"{round(roof_coverage_percent)}% the roof, with a battery storage system.") else: description = (f"Install a {kw} kilowatt-peak (kWp) solar photovoltaic (PV) p" - f"anel system on {round(roof_coverage_percent * 100)}% the roof.") + f"anel system on {round(roof_coverage_percent)}% the roof.") self.recommendation.append( { diff --git a/recommendations/VentilationRecommendations.py b/recommendations/VentilationRecommendations.py index 19aad0e1..1657b759 100644 --- a/recommendations/VentilationRecommendations.py +++ b/recommendations/VentilationRecommendations.py @@ -66,6 +66,10 @@ class VentilationRecommendations(Definitions): "starting_u_value": None, "new_u_value": None, "sap_points": 0, + "heat_demand": 0, + "adjusted_heat_demand": 0, + "co2_equivalent_savings": 0, + "energy_cost_savings": 0, "total": estimated_cost, # We use a very simple and rough estimate of 4 hours per unit "labour_hours": 4 * n_units, From 036fdcfbc69e8697fb85f626f484e493e64e8fbd Mon Sep 17 00:00:00 2001 From: Michael Duong Date: Fri, 16 Feb 2024 15:31:42 +0000 Subject: [PATCH 274/526] add scenario script --- etl/epc/generate_scenarios_data.py | 237 +++++++++++++++++++++++++++++ 1 file changed, 237 insertions(+) create mode 100644 etl/epc/generate_scenarios_data.py diff --git a/etl/epc/generate_scenarios_data.py b/etl/epc/generate_scenarios_data.py new file mode 100644 index 00000000..af3ed4a4 --- /dev/null +++ b/etl/epc/generate_scenarios_data.py @@ -0,0 +1,237 @@ +from datetime import datetime +import itertools + +import pandas as pd +from etl.epc.Record import EPCRecord +from backend.SearchEpc import SearchEpc + +from sqlalchemy.orm import sessionmaker + +from backend.app.config import get_settings +from backend.app.db.connection import db_engine +from backend.app.db.functions.materials_functions import get_materials + +from backend.app.plan.utils import get_cleaned + +from backend.Property import Property +from etl.solar.SolarPhotoSupply import SolarPhotoSupply + +from recommendations.Recommendations import Recommendations +from utils.logger import setup_logger +from utils.s3 import read_dataframe_from_s3_parquet, save_dataframe_to_s3_parquet + +logger = setup_logger() + +logger.info("Connecting to db") +session = sessionmaker(bind=db_engine)() +created_at = datetime.now().isoformat() + +session.begin() +logger.info("Getting the inputs") + +cleaning_data = read_dataframe_from_s3_parquet( + bucket_name=get_settings().DATA_BUCKET, + file_key="sap_change_model/cleaning_dataset.parquet", +) + +materials = get_materials(session) +cleaned = get_cleaned() + +uprn_filenames = read_dataframe_from_s3_parquet( + bucket_name=get_settings().DATA_BUCKET, file_key="spatial/filename_meta.parquet" +) +photo_supply_lookup, floor_area_decile_thresholds = SolarPhotoSupply.load( + bucket=get_settings().DATA_BUCKET +) + +scenario_properties = [ + { + "address": "2 South Terrace", + "postcode": "NN1 5JY", + "lmk-key": "1459796789102016070507274146560098", + "measures": [ + [["internal_wall_insulation"], "11", None], + [["external_wall_insulation"], "10", None], + [["solar", "windows"], "12-15", {"photo_supply_ending": 50}], + ], + }, + { + "address": "8 Lindlings", + "postcode": "HP1 2HA", + "lmk-key": "c14029235739827d5f627dc8aa9bb567d026b267e851e0db0001db24638667b1", + "measures": [ + [["cavity_wall_insulation", "loft_insulation"], "15", None], + ], + }, + { + "address": "44 Lindlings", + "postcode": "HP1 2HE", + "lmk-key": "99296a6dda21314fef3a61cda59e441e9a2aacf115eb96f4a0fa85696bf7b117", + "measures": [ + [["cavity_wall_insulation", "loft_insulation"], "15", None], + ], + }, + { + "address": "46 Chaulden Terrace", + "postcode": "HP1 2AN", + "lmk-key": "d1e0534be3a44c33003323b21d0e322e3daddc65b5ee71936f89c59ddab96b50", + "measures": [ + [["cavity_wall_insulation", "loft_insulation"], "15", None], + ], + }, + { + "address": "73 Long Chaulden", + "postcode": "HP1 2HX", + "lmk-key": "1eae354db522a95188018d9cd0502ed8c609910b6c88f8797d3a25f59b11770a", + "measures": [ + [["cavity_wall_insulation", "loft_insulation"], "15", None], + ], + }, +] + +recommendations_scoring_data = [] + +for scenario_property in scenario_properties: + # We validate each record in the file. If the record is NOT valid, we need to handle this accordingly + + epc_searcher = SearchEpc( + address1=scenario_property["address"], + postcode=scenario_property["postcode"], + auth_token=get_settings().EPC_AUTH_TOKEN, + os_api_key=get_settings().ORDNANCE_SURVEY_API_KEY, + ) + epc_searcher.find_property() + + # Find the epc with the same LMK key + all_epcs = epc_searcher.older_epcs.copy() + all_epcs.extend([epc_searcher.newest_epc, epc_searcher.full_sap_epc]) + original_epc = [ + epc + for epc in all_epcs + if epc.get("lmk-key", None) == scenario_property.get("lmk-key") + ][0] + + epc_records = { + "original_epc": original_epc, + "full_sap_epc": {}, + "old_data": [], + } + + prepared_epc = EPCRecord( + epc_records=epc_records, run_mode="newdata", cleaning_data=cleaning_data + ) + + p = Property( + id=prepared_epc.uprn, + address=epc_searcher.address_clean, + postcode=epc_searcher.postcode_clean, + epc_record=prepared_epc, + ) + + p.get_spatial_data(uprn_filenames) + p.get_components(cleaned, photo_supply_lookup, floor_area_decile_thresholds) + + recommender = Recommendations(property_instance=p, materials=materials) + property_recommendations = recommender.recommend() + + wall_recommendations = recommender.wall_recomender.recommendations + loft_recommendations = recommender.roof_recommender.recommendations + solar_recommendations = recommender.solar_recommender.recommendation + windows_recommendations = recommender.windows_recommender.recommendation + + p.create_base_difference_epc_record(cleaned_lookup=cleaned) + + scoring_list = [] + + # Create the record for each of the different measures + for measure_impact_override in scenario_property["measures"]: + + measure = measure_impact_override[0] + impact = measure_impact_override[1] + override = measure_impact_override[2] + + wall_recs = [] + loft_recs = [] + solar_recs = [] + windows_recs = [] + + if "internal_wall_insulation" in measure: + for rec in wall_recommendations: + if rec["type"] == "internal_wall_insulation": + wall_recs.append(rec) + + if "external_wall_insulation" in measure: + for rec in wall_recommendations: + if rec["type"] == "external_wall_insulation": + wall_recs.append(rec) + + if "cavity_wall_insulation" in measure: + for rec in wall_recommendations: + if rec["type"] == "cavity_wall_insulation": + wall_recs.append(rec) + + if "loft_insulation" in measure: + loft_recs = [] + for rec in loft_recommendations: + if rec["type"] == "loft_insulation": + loft_recs.append(rec) + + if "solar" in measure: + for rec in solar_recommendations: + if rec["type"] == "solar_pv": + solar_recs.append(rec) + + if "windows" in measure: + for rec in windows_recommendations: + if rec["type"] == "windows": + windows_recs.append(rec) + + combi_list = [wall_recs, loft_recs, solar_recs, windows_recs] + combi_list = [element for element in combi_list if len(element) != 0] + + all_combi_recommendations = list(itertools.product(*combi_list)) + + for i, combi in enumerate(all_combi_recommendations): + recommendation_record = p.base_difference_record.df.to_dict("records")[ + 0 + ].copy() + for rec in combi: + recommendation_record = p.create_recommendation_scoring_data( + property_id=rec["type"], + recommendation_record=recommendation_record, + recommendation=rec, + ) + + if override is not None: + for key, value in override.items(): + recommendation_record[key] = value + + recommendation_record["id"] = "+".join(measure) + "+" + str(i) + recommendation_record["impact"] = impact + scoring_list.append(recommendation_record) + + recommendations_scoring_data.extend(scoring_list) + +recommendations_scoring_data = pd.DataFrame(recommendations_scoring_data) +recommendations_scoring_data = recommendations_scoring_data.drop( + columns=[ + "rdsap_change", + "heat_demand_change", + "carbon_change", + "sap_ending", + "heat_demand_ending", + "carbon_ending", + ] +) + +impact_col = recommendations_scoring_data.pop("impact") +recommendations_scoring_data.insert(0, "impact", impact_col) + +id_col = recommendations_scoring_data.pop("id") +recommendations_scoring_data.insert(0, "id", id_col) + +save_dataframe_to_s3_parquet( + recommendations_scoring_data, + "retrofit-data-dev", + "scenario_data/recommendations_scoring_data.parquet", +) From 7ff3d8799991f1f1a46344c4d4b5c3dfba820e77 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Fri, 16 Feb 2024 17:04:43 +0000 Subject: [PATCH 275/526] Trying and failing to implement the newest model --- backend/Property.py | 2 ++ backend/app/plan/router.py | 2 ++ etl/epc/generate_scenarios_data.py | 42 ++++++++++++++-------- etl/testing_data/sap_model_simulation.py | 46 +++++++++++++++++------- 4 files changed, 66 insertions(+), 26 deletions(-) diff --git a/backend/Property.py b/backend/Property.py index 75cfaef1..418a35a1 100644 --- a/backend/Property.py +++ b/backend/Property.py @@ -230,6 +230,8 @@ class Property: # The upgrade made here is to the u-value of the walls and the description of the # insulation thickness output["walls_thermal_transmittance_ending"] = recommendation["new_u_value"] + # Setting the insulation thickness here to above average should be tested further because we + # don't see a high volume of instances for this output["walls_insulation_thickness_ending"] = "above average" output["walls_energy_eff_ending"] = "Good" diff --git a/backend/app/plan/router.py b/backend/app/plan/router.py index 28dcaa68..07fdbe94 100644 --- a/backend/app/plan/router.py +++ b/backend/app/plan/router.py @@ -160,6 +160,8 @@ async def trigger_plan(body: PlanTriggerRequest): recommendations_scoring_data.extend(p.recommendations_scoring_data) + # TODO: Make sure that number_habitable_rooms has been dropped + logger.info("Preparing data for scoring in sap change api") recommendations_scoring_data = pd.DataFrame(recommendations_scoring_data) recommendations_scoring_data = recommendations_scoring_data.drop( diff --git a/etl/epc/generate_scenarios_data.py b/etl/epc/generate_scenarios_data.py index af3ed4a4..afe9ab98 100644 --- a/etl/epc/generate_scenarios_data.py +++ b/etl/epc/generate_scenarios_data.py @@ -50,9 +50,9 @@ scenario_properties = [ "postcode": "NN1 5JY", "lmk-key": "1459796789102016070507274146560098", "measures": [ - [["internal_wall_insulation"], "11", None], - [["external_wall_insulation"], "10", None], - [["solar", "windows"], "12-15", {"photo_supply_ending": 50}], + [["internal_wall_insulation"], "11", None, [0]], + [["external_wall_insulation"], "10", None, [0]], + [["solar", "windows"], "12-15", {"photo_supply_ending": 50}, [0, 1]], ], }, { @@ -60,7 +60,7 @@ scenario_properties = [ "postcode": "HP1 2HA", "lmk-key": "c14029235739827d5f627dc8aa9bb567d026b267e851e0db0001db24638667b1", "measures": [ - [["cavity_wall_insulation", "loft_insulation"], "15", None], + [["cavity_wall_insulation", "loft_insulation"], "15", None, [0, 1]], ], }, { @@ -68,7 +68,7 @@ scenario_properties = [ "postcode": "HP1 2HE", "lmk-key": "99296a6dda21314fef3a61cda59e441e9a2aacf115eb96f4a0fa85696bf7b117", "measures": [ - [["cavity_wall_insulation", "loft_insulation"], "15", None], + [["cavity_wall_insulation", "loft_insulation"], "15", None, [0, 1]], ], }, { @@ -76,7 +76,7 @@ scenario_properties = [ "postcode": "HP1 2AN", "lmk-key": "d1e0534be3a44c33003323b21d0e322e3daddc65b5ee71936f89c59ddab96b50", "measures": [ - [["cavity_wall_insulation", "loft_insulation"], "15", None], + [["cavity_wall_insulation", "loft_insulation"], "15", None, [0, 1]], ], }, { @@ -84,7 +84,7 @@ scenario_properties = [ "postcode": "HP1 2HX", "lmk-key": "1eae354db522a95188018d9cd0502ed8c609910b6c88f8797d3a25f59b11770a", "measures": [ - [["cavity_wall_insulation", "loft_insulation"], "15", None], + [["cavity_wall_insulation", "loft_insulation"], "15", None, [0, 1]], ], }, ] @@ -195,18 +195,18 @@ for scenario_property in scenario_properties: recommendation_record = p.base_difference_record.df.to_dict("records")[ 0 ].copy() - for rec in combi: - recommendation_record = p.create_recommendation_scoring_data( - property_id=rec["type"], - recommendation_record=recommendation_record, - recommendation=rec, - ) + recommendation_record = p.create_recommendation_scoring_data( + property_id=i, + primary_recommendation_id=i, + recommendation_record=recommendation_record, + recommendations=combi, + ) if override is not None: for key, value in override.items(): recommendation_record[key] = value - recommendation_record["id"] = "+".join(measure) + "+" + str(i) + recommendation_record["id"] = "&".join(measure) + "+" + str(i) recommendation_record["impact"] = impact scoring_list.append(recommendation_record) @@ -230,6 +230,20 @@ recommendations_scoring_data.insert(0, "impact", impact_col) id_col = recommendations_scoring_data.pop("id") recommendations_scoring_data.insert(0, "id", id_col) +from backend.ml_models.api import ModelApi + +model_api = ModelApi(portfolio_id="generate-scenarios-data", timestamp=created_at) + +all_predictions = model_api.predict_all( + df=recommendations_scoring_data, + bucket=get_settings().DATA_BUCKET, + prediction_buckets={ + "sap_change_predictions": get_settings().SAP_PREDICTIONS_BUCKET, + "heat_demand_predictions": get_settings().HEAT_PREDICTIONS_BUCKET, + "carbon_change_predictions": get_settings().CARBON_PREDICTIONS_BUCKET + } +) + save_dataframe_to_s3_parquet( recommendations_scoring_data, "retrofit-data-dev", diff --git a/etl/testing_data/sap_model_simulation.py b/etl/testing_data/sap_model_simulation.py index 726c2428..12b26249 100644 --- a/etl/testing_data/sap_model_simulation.py +++ b/etl/testing_data/sap_model_simulation.py @@ -1935,10 +1935,10 @@ def app(): "address": "73 Long Chaulden", "postcode": "HP1 2HX", }, - { - "address": "77 Simmons Drive", - "postcode": "B32 1SL", - }, + # { + # "address": "77 Simmons Drive", + # "postcode": "B32 1SL", + # }, { "address": "139 School Road", "postcode": "B28 8JF", @@ -1984,6 +1984,19 @@ def app(): floor_recommendations = recommender.floor_recommender.recommendations solar_recommendations = recommender.solar_recommender.recommendation + # We set wall recommendations to phase 0, loft to phase 1, floor to phase 2 and solar to phase 3 + for rec in wall_recommendations: + rec["phase"] = 0 + + for rec in loft_recommendations: + rec["phase"] = 1 + + for rec in floor_recommendations: + rec["phase"] = 2 + + for rec in solar_recommendations: + rec["phase"] = 3 + # TODO: TEMP! solar_recommendations[0]["photo_supply"] = 50 @@ -1994,7 +2007,8 @@ def app(): for wall_rec in wall_recommendations: recommendation_record = p.base_difference_record.df.to_dict("records")[0].copy() scoring_dict = p.create_recommendation_scoring_data( - property_id=p.id, recommendation_record=recommendation_record, recommendation=wall_rec, + property_id=p.id, recommendation_record=recommendation_record, recommendations=[wall_rec], + primary_recommendation_id=wall_rec["recommendation_id"] ) wall_scoring_data.append(scoring_dict) @@ -2002,7 +2016,8 @@ def app(): for roof_rec in loft_recommendations: recommendation_record = p.base_difference_record.df.to_dict("records")[0].copy() scoring_dict = p.create_recommendation_scoring_data( - property_id=p.id, recommendation_record=recommendation_record, recommendation=roof_rec, + property_id=p.id, recommendation_record=recommendation_record, recommendations=[roof_rec], + primary_recommendation_id=roof_rec["recommendation_id"] ) roof_scoring_data.append(scoring_dict) @@ -2010,7 +2025,8 @@ def app(): for floor_rec in floor_recommendations: recommendation_record = p.base_difference_record.df.to_dict("records")[0].copy() scoring_dict = p.create_recommendation_scoring_data( - property_id=p.id, recommendation_record=recommendation_record, recommendation=floor_rec, + property_id=p.id, recommendation_record=recommendation_record, recommendations=[floor_rec], + primary_recommendation_id=floor_rec["recommendation_id"] ) floor_scoring_data.append(scoring_dict) @@ -2018,7 +2034,8 @@ def app(): for solar_rec in solar_recommendations: recommendation_record = p.base_difference_record.df.to_dict("records")[0].copy() scoring_dict = p.create_recommendation_scoring_data( - property_id=p.id, recommendation_record=recommendation_record, recommendation=solar_rec, + property_id=p.id, recommendation_record=recommendation_record, recommendations=[solar_rec], + primary_recommendation_id=solar_rec["recommendation_id"] ) solar_scoring_data.append(scoring_dict) @@ -2029,25 +2046,30 @@ def app(): scoring_dict_with_wall = p.create_recommendation_scoring_data( property_id=p.id, recommendation_record=starting_record.copy(), - recommendation=wall_recommendations[0], + recommendations=[wall_recommendations[0]], + primary_recommendation_id=wall_recommendations[0]["recommendation_id"] ) if wall_recommendations else starting_record.copy() scoring_dict_with_wall_and_roof = p.create_recommendation_scoring_data( property_id=p.id, recommendation_record=scoring_dict_with_wall.copy(), - recommendation=loft_recommendations[0], + recommendations=[wall_recommendations[0], loft_recommendations[0], ], + primary_recommendation_id=loft_recommendations[0]["recommendation_id"] ) if loft_recommendations else scoring_dict_with_wall.copy() scoring_dict_with_wall_roof_floor = p.create_recommendation_scoring_data( property_id=p.id, recommendation_record=scoring_dict_with_wall_and_roof.copy(), - recommendation=floor_recommendations[0], + recommendations=[wall_recommendations[0], loft_recommendations[0], floor_recommendations[0]], + primary_recommendation_id=floor_recommendations[0]["recommendation_id"] ) if floor_recommendations else scoring_dict_with_wall_and_roof.copy() scoring_dict_with_wall_roof_floor_solar = p.create_recommendation_scoring_data( property_id=p.id, recommendation_record=scoring_dict_with_wall_roof_floor.copy(), - recommendation=solar_recommendations[0], + recommendations=[wall_recommendations[0], loft_recommendations[0], floor_recommendations[0], + solar_recommendations[0]], + primary_recommendation_id=solar_recommendations[0]["recommendation_id"] ) if solar_recommendations else scoring_dict_with_wall_roof_floor.copy() # We score each dataset with the model From 1c44b07662e76f9b9da77adc8245dcb5750eb30c Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Mon, 19 Feb 2024 13:02:43 +0000 Subject: [PATCH 276/526] working on heating control recommendation for urban splash --- backend/app/plan/router.py | 9 +- etl/customers/urban_splash.py | 153 ++++++++++ .../ha_15_32/ha_analysis_batch_3.py | 261 ++++++++++-------- etl/epc_clean/app.py | 1 + recommendations/Costs.py | 30 ++ recommendations/FloorRecommendations.py | 25 +- recommendations/HeatingRecommender.py | 57 ++++ recommendations/Recommendations.py | 8 + recommendations/WallRecommendations.py | 2 +- recommendations/rdsap_tables.py | 1 + recommendations/recommendation_utils.py | 4 +- utils/s3.py | 29 ++ 12 files changed, 451 insertions(+), 129 deletions(-) create mode 100644 etl/customers/urban_splash.py create mode 100644 recommendations/HeatingRecommender.py diff --git a/backend/app/plan/router.py b/backend/app/plan/router.py index 07fdbe94..20e72b8d 100644 --- a/backend/app/plan/router.py +++ b/backend/app/plan/router.py @@ -1,6 +1,6 @@ from datetime import datetime -import numpy as np +from tqdm import tqdm import pandas as pd from etl.epc.Record import EPCRecord from backend.SearchEpc import SearchEpc @@ -37,7 +37,6 @@ from recommendations.Recommendations import Recommendations from utils.logger import setup_logger from utils.s3 import read_dataframe_from_s3_parquet from backend.ml_models.Valuation import PropertyValuation -from backend.ml_models.AnnualBillSavings import AnnualBillSavings logger = setup_logger() @@ -66,7 +65,7 @@ async def trigger_plan(body: PlanTriggerRequest): ) input_properties = [] - for config in plan_input: + for config in tqdm(plan_input): # We validate each record in the file. If the record is NOT valid, we need to handle this accordingly epc_searcher = SearchEpc( @@ -142,8 +141,6 @@ async def trigger_plan(body: PlanTriggerRequest): # Property recommendations p.get_components(cleaned, photo_supply_lookup, floor_area_decile_thresholds) - # TODO: For the private customer, we should probably NOT allow floor insulation, because it often requires - # decanting the tenant recommender = Recommendations(property_instance=p, materials=materials) property_recommendations, property_representative_recommendations = recommender.recommend() @@ -201,6 +198,8 @@ async def trigger_plan(body: PlanTriggerRequest): expected_adjusted_energy=expected_adjusted_energy ) + # TODO: For the private customer, we should probably NOT allow floor insulation, because it often requires + # decanting the tenant input_measures = prepare_input_measures(recommendations_with_impact, body.goal) if body.budget: diff --git a/etl/customers/urban_splash.py b/etl/customers/urban_splash.py new file mode 100644 index 00000000..6c371879 --- /dev/null +++ b/etl/customers/urban_splash.py @@ -0,0 +1,153 @@ +import os + +import pandas as pd +from tqdm import tqdm + +from dotenv import load_dotenv +from utils.s3 import read_excel_from_s3 +from backend.SearchEpc import SearchEpc +from epc_api.client import EpcClient +from utils.s3 import save_csv_to_s3 + +# Read in the .env file in backend +load_dotenv(dotenv_path="backend/.env") +EPC_AUTH_TOKEN = os.getenv("EPC_AUTH_TOKEN") + +USER_ID = 8 +PORTFOLIO_ID = 65 + + +def app(): + """ + This application will read in the Urban Splash data, in the dev AWS account, and pre-process it. There are a + few issues with the file, including incorrect postcodes. + + The customer is interested in the following: + - Getting properties to an EPC C + - Doing do within a budget of £5,000 + :return: + """ + + potential_postcodes = ["BD9 5BQ", "BD9 5BR", "BD9 5BN"] + + raw_asset_list = read_excel_from_s3( + bucket_name="retrofit-datalake-dev", + file_key="customers/urban_splash/raw_asset_list/USRF - Velvet Mill EPC.xlsx", + header_row=2 + ) + + # We have a series of apartment numbers that are "Apartment 001", "Apartment 002", etc. We need to convert these + # to "Apartment 1", "Apartment 2", etc. + raw_asset_list["address1"] = raw_asset_list["Unit Number"].str.replace( + "Apartment 00", "Apartment ", regex=True + ) + raw_asset_list["address1"] = raw_asset_list["address1"].str.replace( + "Apartment 0", "Apartment ", regex=True + ) + + # For each entry in the asset list, we make an api call to the EPC database to get the EPC data. We'll retrieve the + # uprn for the property, as well as a nice address and postcode that we can use. We'll also try and deduce the + # likely wall construction, since many of the homes are new builds, based on their newest EPC + + epc_data = [] + processed_asset_list = [] + for _, row in tqdm(raw_asset_list.iterrows(), total=len(raw_asset_list)): + + newest_epc = None + idx = 0 + + while newest_epc is None: + postcode = potential_postcodes[idx] + searcher = SearchEpc( + address1=row.address1, postcode=postcode, auth_token=EPC_AUTH_TOKEN, os_api_key="" + ) + searcher.find_property(skip_os=True) + + if searcher.newest_epc is None: + if idx == len(potential_postcodes) - 1: + break + idx += 1 + else: + newest_epc = searcher.newest_epc + + if newest_epc is None: + raise Exception("FX ME") + + to_append = { + **row.to_dict(), + "uprn": newest_epc["uprn"], + "address": newest_epc["address1"], + "postcode": newest_epc["postcode"], + "walls-description": newest_epc["walls-description"], + "roof-description": newest_epc["roof-description"], + "floor-description": newest_epc["floor-description"], + "total-floor-area": newest_epc["total-floor-area"], + "full-address": newest_epc["address"] + } + + processed_asset_list.append(to_append) + epc_data.append(newest_epc) + + processed_asset_list_df = pd.DataFrame(processed_asset_list) + epc_data_df = pd.DataFrame(epc_data) + + # We store this data + # Store the data in s3 + filename = f"{USER_ID}/{PORTFOLIO_ID}/test_inputs.csv" + save_csv_to_s3( + dataframe=processed_asset_list_df, + bucket_name="retrofit-plan-inputs-dev", + file_name=filename + ) + + body = { + "portfolio_id": str(PORTFOLIO_ID), + "housing_type": "Private", + "goal": "Increase EPC", + "goal_value": "C", + "trigger_file_path": filename, + "budget": 5000, + } + print(body) + + # Some basic analysis on the heating, heating controls and hot water systems + + # All of the heating systems are rated very poor, poor or average. When it's average, they are all also + # "Room heaters, electric", but the house has "Programmer and appliance thermostats" for the heating controls. + # which is more efficient + pd.set_option('display.max_rows', 500) + pd.set_option('display.max_columns', 500) + pd.set_option('display.width', 1000) + + # Heating + print(epc_data_df[["mainheat-description", "mainheatcont-description", "mainheat-energy-eff"]].drop_duplicates()) + # mainheat-description mainheatcont-description mainheat-energy-eff + # 0 Room heaters, electric Programmer and room thermostat Very Poor + # 12 Room heaters, electric Programmer and appliance thermostats Average + # 20 Electric storage heaters, radiators Celect-type controls Poor + + # Hot water + print(epc_data_df[["hotwater-description", "hot-water-energy-eff"]].drop_duplicates()) + # hotwater-description hot-water-energy-eff + # 0 Electric immersion, standard tariff Very Poor + # 12 Electric immersion, off-peak Average + + # We now retrieve EPCS for all of the properties that are in these postcodes very obviously for the velvet mill + # We'll use this information to get a sense of the likely wall/roof/floor construction for the properties + + # client = EpcClient(auth_token=EPC_AUTH_TOKEN) + # + # neighbouring_epcs = [] + # for pc in potential_postcodes: + # response = client.domestic.search(params={"postcode": pc}, size=1000) + # data = response["rows"] + # + # # keep just rows that are clearly for the velvet mill + # data = [x for x in data if "velvet" in x["address1"].lower()] + # + # neighbouring_epcs.extend(data) + # + # neighbouring_epcs_df = pd.DataFrame(neighbouring_epcs) + # neighbouring_epcs_df["walls-description"].value_counts() + # neighbouring_epcs_df["roof-description"].value_counts() + # neighbouring_epcs_df["floor-description"].value_counts() diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index 5ed7d6f2..92956337 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -18,43 +18,40 @@ from recommendations.recommendation_utils import calculate_cavity_age EPC_AUTH_TOKEN = os.getenv("EPC_AUTH_TOKEN") ENV_FILE = Path(__file__).parent / "etl" / "eligibility" / "ha_15_32" / ".env" +DATA_FOLDER = Path(__file__).parent / "local_data" / "ha_data" logger = setup_logger() load_dotenv(ENV_FILE) class DataLoader: - MIN_ROWS = { - "ha_1": 2, - "ha_6": 2, - "ha_14": 3, # The spreadsheet starts from the third row - "ha_39": 2, - "ha_107": 2, - } - COLUMN_CONFIG = { - "ha_1": { + "HA1": { "address": "Address", "postcode": "Address - Postcode" + }, + "HA6": { + "address": "propertyaddress", + "postcode": "address" # The 'address' column actually contains postcode } } - def __init__(self, files, use_cache): - self.files = files + def __init__(self, directories, use_cache): + self.directories = directories self.use_cache = use_cache self.data = {} def create_asset_list_matching_address(self, ha_name, asset_list): - if ha_name in ["ha_1", "ha_6"]: + if ha_name in ["HA1", "HA6"]: asset_list["matching_address"] = asset_list[ self.COLUMN_CONFIG[ha_name]["address"] ].str.lower().str.strip() asset_list["matching_postcode"] = asset_list[ self.COLUMN_CONFIG[ha_name]["postcode"] ].str.lower().str.strip() - elif ha_name == "ha_14": + elif ha_name == "HA14": # Create matching_address by concatenating Address 1, Address 2, Address 3, Address 4, Postcode asset_list["matching_address"] = asset_list["Address 1"].str.lower().str.strip() + ", " + \ asset_list["Address 2"].str.lower().str.strip() + ", " + \ @@ -62,7 +59,7 @@ class DataLoader: asset_list["Address 4"].str.lower().str.strip() + ", " + \ asset_list["Postcode"].str.lower().str.strip() asset_list["matching_postcode"] = asset_list["Postcode"].str.lower().str.strip() - elif ha_name == "ha_39": + elif ha_name == "HA39": # Create matching_address by concatenating add_1, add_2, add_3, add_4, add_5, post_code asset_list["matching_address"] = asset_list["add_1"].astype(str).str.lower().str.strip() + ", " + \ asset_list["add_2"].astype(str).str.lower().str.strip() + ", " + \ @@ -71,7 +68,7 @@ class DataLoader: asset_list["add_5"].astype(str).str.lower().str.strip() + ", " + \ asset_list["post_code"].astype(str).str.lower().str.strip() asset_list["matching_postcode"] = asset_list["post_code"].str.lower().str.strip() - elif ha_name == "ha_107": + elif ha_name == "HA107": # Create matching_address by concatenating House No, Street, Town, District, Postcode asset_list["matching_address"] = asset_list["House No"].astype(str).str.lower().str.strip() + ", " + \ asset_list["Street"].str.lower().str.strip() + ", " + \ @@ -87,7 +84,7 @@ class DataLoader: def append_asset_list_built_form(self, ha_name, asset_list): # Finally, we process property_type or built form, where needed - if ha_name == "ha_6": + if ha_name == "HA6": asset_list["built_form"] = asset_list["Property Type"].apply(self.identify_built_form_ha6) return asset_list @@ -99,7 +96,7 @@ class DataLoader: :return: """ - if ha_name in ["ha_107"]: + if ha_name in ["HA107"]: asset_list["HouseNo"] = asset_list["House No"].copy() else: split_addresses = asset_list['matching_address'].str.split(',', expand=True) @@ -113,32 +110,41 @@ class DataLoader: return asset_list - def load_asset_list(self, file_path, ha_name, sheet_name=None): - workbook = openpyxl.load_workbook(file_path) - if sheet_name is not None: - sheet = workbook[sheet_name] + @staticmethod + def create_ciga_list_house_no(ha_name, ciga_list): + """ + This function will append the House number onto the asset list + :return: + """ + + if ha_name in ["HA6"]: + split_addresses = ciga_list['Matched Address'].str.split(',', expand=True) + house_numbers = split_addresses[0].str.split(' ', expand=True) + # THe first column should be HouseNo - we aren't interested in the other columns, but we don't know how + # many columns there might be + house_numbers = house_numbers.iloc[:, 0:1] + house_numbers.columns = ['HouseNo'] + + ciga_list = pd.concat([ciga_list, house_numbers[["HouseNo"]]], axis=1) else: - sheet = workbook.active - sheet_colnames = [cell.value for cell in sheet[self.MIN_ROWS[ha_name] - 1]] + raise NotImplementedError("Implement me") + + return ciga_list + + def load_asset_list(self, filepath, ha_name): + workbook = openpyxl.load_workbook(filepath) + asset_sheet = workbook["Assets"] + asset_sheet_colnames = [cell.value for cell in asset_sheet[1]] rows_data = [] - rows_colors = [] - for row in tqdm( - sheet.iter_rows(min_row=self.MIN_ROWS[ha_name], values_only=False) - ): # Assuming the first row is headers - + for row in asset_sheet.iter_rows(min_row=2, values_only=False): row_data = [cell.value for cell in row] # This will get you the cell values - row_color = row[0].fill.start_color.index if row[0].fill.start_color.index != '00000000' else None - # row_color = COLOR_INDEX[row_color] rows_data.append(row_data) - rows_colors.append(row_color) - asset_list = pd.DataFrame(rows_data, columns=sheet_colnames) + asset_list = pd.DataFrame(rows_data, columns=asset_sheet_colnames) asset_list = asset_list.loc[:, asset_list.columns.notnull()] - asset_list['row_color'] = rows_colors - - # Remove entirely empty roww - consider all rows apart from row_color + # Remove entirely empty rows - consider all rows apart from row_color asset_list = asset_list.loc[asset_list.loc[:, asset_list.columns != 'row_color'].notnull().any(axis=1)] # Add in asset_list_row_id @@ -151,77 +157,43 @@ class DataLoader: asset_list = self.append_asset_list_built_form(ha_name=ha_name, asset_list=asset_list) - return asset_list + # We check if there is a survey list + survey_list = pd.DataFrame() + if "ECO Surveys" in workbook.sheetnames: + survey_sheet = workbook["ECO Surveys"] + survey_rows = [] + for row in survey_sheet.iter_rows(min_row=2, values_only=False): # Assuming the first row is headers + row_data = [cell.value for cell in row] # This will get you the cell values + survey_rows.append(row_data) - def load_survey_list(self, file_path, ha_name, asset_list, sheet_name=None): - survey_workbook = openpyxl.load_workbook(file_path) - if sheet_name is not None: - survey_sheet = survey_workbook[sheet_name] - else: - survey_sheet = survey_workbook.active + survey_list = pd.DataFrame(survey_rows, columns=[cell.value for cell in survey_sheet[1]]) + # Remove columns that are None + survey_list = survey_list.loc[:, survey_list.columns.notnull()] + survey_list["survey_list_row_id"] = [ha_name + "_survey_" + str(i) for i in range(0, len(survey_list))] + # Perform survey list merge + survey_list = self.merge_surveys_to_assets(asset_list, survey_list, ha_name) - survey_rows = [] - survey_colors = [] + # We check if there are CIGA checks + ciga_list = pd.DataFrame() + if "CIGA Checks" in workbook.sheetnames: + ciga_sheet = workbook["CIGA Checks"] + ciga_rows = [] + for row in ciga_sheet.iter_rows(min_row=2, values_only=False): + row_data = [cell.value for cell in row] # This will get you the cell values + ciga_rows.append(row_data) - for row in tqdm(survey_sheet.iter_rows(min_row=2, values_only=False)): # Assuming the first row is headers - row_data = [cell.value for cell in row] # This will get you the cell values - row_color = row[0].fill.start_color.index if row[0].fill.start_color.index != '00000000' else None - survey_rows.append(row_data) - survey_colors.append(row_color) + ciga_list = pd.DataFrame(ciga_rows, columns=[cell.value for cell in ciga_sheet[1]]) + # Remove columns that are None + ciga_list = ciga_list.loc[:, ciga_list.columns.notnull()] + ciga_list = self.create_ciga_list_house_no(ha_name, ciga_list) + # Perform ciga list merge + ciga_list = self.merge_ciga_to_assets(asset_list, ciga_list, ha_name) - survey_list = pd.DataFrame(survey_rows, columns=[cell.value for cell in survey_sheet[1]]) - # Remove columns that are None - survey_list = survey_list.loc[:, survey_list.columns.notnull()] - survey_list["row_colour"] = survey_colors - - # The survey list has 4 possible colours: - # PURPLE - Installer advised install complete and a complimentary post works EPC has been completed. - # GREEN - Installer advised install complete. - # RED - Cancelled - # BLUE - Loft Only Installed - # NO FILL - No official update from installer (could be installed or cancelled) - - survey_list["row_colour_name"] = np.where( - survey_list["row_colour"] == survey_list_colours["red"], "red", - np.where(survey_list["row_colour"] == survey_list_colours["green"], "green", - np.where(survey_list["row_colour"] == survey_list_colours["purple"], "purple", - np.where(survey_list["row_colour"] == survey_list_colours["blue"], "blue", "no fill"))) - ) - - survey_list["row_meaning"] = np.where( - survey_list["row_colour_name"] == "red", "Cancelled", - np.where( - survey_list["row_colour_name"] == "green", - "Installer advised install complete", - np.where( - survey_list["row_colour_name"] == "purple", - "Installer advised install complete and a complimentary post works EPC has been completed", - np.where( - survey_list["row_colour_name"] == "blue", - "Loft Only Installed", - "No official update from installer (could be installed or cancelled)" - ) - ) - ) - ) - - # Add in asset_list_row_id - survey_list["survey_list_row_id"] = [ha_name + "_surveys_" + str(i) for i in range(0, len(survey_list))] - - # We now do the matching between the asset list and the survey list. - # What we'll get from this is a lookup table from the asset list to the survey list - - if ha_name == "ha_6": - matched_lookup = self.merge_ha_6(asset_list, survey_list) - else: - raise NotImplementedError("Only HA 6 has surveys") - - return survey_list, matched_lookup + return asset_list, survey_list, ciga_list @staticmethod - def merge_ha_6(asset_list, survey_list): + def correct_ha6_asset_list(asset_list): - # Correct the asset list across propertyaddress and matching_address asset_list["propertyaddress"] = asset_list["propertyaddress"].str.replace("Baggott Place", "Baggotts Place") asset_list["matching_address"] = asset_list["matching_address"].str.replace("baggott place", "baggotts place") @@ -234,6 +206,11 @@ class DataLoader: asset_list["propertyaddress"] = asset_list["propertyaddress"].str.replace("Moffat Way", "Moffatt Way") asset_list["matching_address"] = asset_list["matching_address"].str.replace("moffat way", "moffatt way") + return asset_list + + @staticmethod + def correct_ha6_survey_list(survey_list): + # Correct the survey list survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace( "Seabridge Road", "Seabridge Lane" @@ -358,10 +335,23 @@ class DataLoader: "Post Code" ] = "ST5 7BY" - missed_postcodes = [ - postcode.lower() for postcode in survey_list["Post Code"] if - postcode.lower() not in asset_list["matching_postcode"].values - ] + return survey_list + + def merge_surveys_to_assets(self, asset_list, survey_list, ha_name): + + # Correct the asset list + asset_list_correction_function = getattr(self, f"correct_{ha_name.lower()}_asset_list") + asset_list = asset_list_correction_function(asset_list) + # Correct the survey list + survey_list_correction_function = getattr(self, f"correct_{ha_name.lower()}_survey_list") + survey_list = survey_list_correction_function(survey_list) + + missed_postcodes = [] + if ha_name == "HA6": + missed_postcodes = [ + postcode.lower() for postcode in survey_list["Post Code"] if + postcode.lower() not in asset_list["matching_postcode"].values + ] matching_lookup = [] for _, row in tqdm(survey_list.iterrows(), total=len(survey_list)): @@ -405,7 +395,54 @@ class DataLoader: matching_lookup = pd.DataFrame(matching_lookup) - return matching_lookup + # Merge onto the survey list + survey_list = survey_list.merge(matching_lookup, how='left', on="survey_list_row_id") + + return survey_list + + def merge_ciga_to_assets(self, asset_list, ciga_list, ha_name): + matching_lookup = [] + for _, row in tqdm(ciga_list.iterrows(), total=len(ciga_list)): + + house_number = row["HouseNo"] + if isinstance(house_number, str): + house_number = house_number.lower().strip() + + # Filter on the postcode + df = asset_list[ + asset_list["matching_address"].str.contains(row["Matched Postcode"].lower().strip()) + ].copy() + + df = df[df["HouseNo"] == str(house_number)] + # TODO: Might need to consider street name at some point + if df.shape[0] != 1: + + if df.shape[0] != 1: + df = df[df["matching_postcode"].str.lower().str.contains(row["Post Code"].lower())] + if df.shape[0] != 1: + postcode_lower = row["Post Code"].lower() + if postcode_lower in missed_postcodes: + matching_lookup.append( + { + "survey_list_row_id": row["survey_list_row_id"], + "asset_list_row_id": None, + } + ) + continue + + print(row["Street / Block Name"]) + print(house_number) + print(row["Post Code"].lower()) + raise ValueError("Investigate") + + matching_lookup.append( + { + "survey_list_row_id": row["survey_list_row_id"], + "asset_list_row_id": df["asset_list_row_id"].values[0], + } + ) + + matching_lookup = pd.DataFrame(matching_lookup) @staticmethod def identify_built_form_ha6(property_string): @@ -445,16 +482,17 @@ class DataLoader: return data = {} - for ha_name, file_config in self.files.items(): + for filepath in self.directories: + ha_name = filepath.split("/")[2] # Load asset list logger.info("Loading asset list for {}".format(ha_name)) - asset_list = self.load_asset_list( - file_path=file_config["asset_list"]["filepath"], + asset_list, survey_list, ciga_list = self.load_asset_list( + filepath=filepath, ha_name=ha_name, - sheet_name=file_config["asset_list"]["sheetname"] ) if file_config.get("survey_list"): + # TODO: Delete this logger.info("Loading survey list for {}".format(ha_name)) survey_list, matched_lookup = self.load_survey_list( asset_list=asset_list, @@ -1240,13 +1278,16 @@ def analyse_ha_data(outputs, loader): def app(): """ - This app contains the housign association analysis for HAs 1, 6, 14, 39 and 107. + This app contains the housin association analysis for HAs 1, 6, 14, 39 and 107. Only HA 6 has surveys :return: """ use_cache = False + # List all of the data in the folder + directories = [str(list(entry.iterdir())[0]) for entry in DATA_FOLDER.iterdir() if entry.is_dir()] + files = { "ha_1": { "asset_list": { @@ -1284,7 +1325,7 @@ def app(): } } - loader = DataLoader(files, use_cache) + loader = DataLoader(directories, use_cache) loader.load() # TODO: We probably need to make sure that we have all of the columns that we need diff --git a/etl/epc_clean/app.py b/etl/epc_clean/app.py index 593559e0..bbb12d31 100644 --- a/etl/epc_clean/app.py +++ b/etl/epc_clean/app.py @@ -38,6 +38,7 @@ def app(): for directory in tqdm(epc_directories): data = pd.read_csv(directory / "certificates.csv", low_memory=False) + # Rename the columns to the same format as the api returns data.columns = [c.replace("_", "-").lower() for c in data.columns] # Take just date before the date threshold diff --git a/recommendations/Costs.py b/recommendations/Costs.py index 6ea17dce..da34d087 100644 --- a/recommendations/Costs.py +++ b/recommendations/Costs.py @@ -40,6 +40,10 @@ MCS_SOLAR_PV_COST_DATA = { # This is based on quotes from installers BATTERY_COST = 3500 +# This is based on https://www.checkatrade.com/blog/cost-guides/cost-smart-thermostat/ +SMART_APPLIANCE_THERMOSTAT_COST = 400 +PROGRAMMER_COST = 200 + class Costs: """ @@ -878,3 +882,29 @@ class Costs: "labour_hours": 72, "labour_days": 2, } + + def programmer_and_appliance_thermostat(self, has_programmer): + """ + Calculate the total cost of installing a programmer and appliance thermostat + If the property already has a programmer, then the only thing we need to calculate the cost for is the + appliance thermostat + """ + + if has_programmer: + labour_hours = 2 + total_cost = SMART_APPLIANCE_THERMOSTAT_COST + else: + labour_hours = 4 + total_cost = SMART_APPLIANCE_THERMOSTAT_COST + PROGRAMMER_COST + + subtotal_before_vat = total_cost / (1 + self.VAT_RATE) + vat = total_cost - subtotal_before_vat + + # We estimate the cost of an appliance thermostat at £400, which is the upper end of the range + return { + "total": total_cost, + "subtotal": subtotal_before_vat, + "vat": vat, + "labour_hours": labour_hours, + "labour_days": 1, + } diff --git a/recommendations/FloorRecommendations.py b/recommendations/FloorRecommendations.py index 40d9fb10..713d5f92 100644 --- a/recommendations/FloorRecommendations.py +++ b/recommendations/FloorRecommendations.py @@ -71,9 +71,7 @@ class FloorRecommendations(Definitions): def recommend(self, phase=0): u_value = self.property.floor["thermal_transmittance"] - property_type = self.property.data["property-type"] - floor_area = self.property.insulation_floor_area year_built = self.property.year_built @@ -90,6 +88,10 @@ class FloorRecommendations(Definitions): ): return + # If the property is a new build flat, we won't recommend floor upgrades + if len(self.property.full_sap_epc) and (property_type == "Flat"): + return + if u_value: # By being built more recently than this, it means that the property was likely build with soild @@ -101,16 +103,17 @@ class FloorRecommendations(Definitions): # The floor is already compliant return - u_value = get_floor_u_value( - floor_type=self.property.floor_type, - area=floor_area, - perimeter=self.property.perimeter, - age_band=self.property.age_band, - insulation_thickness=self.property.floor["insulation_thickness"], - wall_type=self.property.wall_type - ) + if u_value is None: + u_value = get_floor_u_value( + floor_type=self.property.floor_type, + area=floor_area, + perimeter=self.property.perimeter, + age_band=self.property.age_band, + insulation_thickness=self.property.floor["insulation_thickness"], + wall_type=self.property.wall_type + ) - self.estimated_u_value = u_value + self.estimated_u_value = u_value if u_value < self.BUILDING_REGULATIONS_PART_L_MAX_U_VALUE: return diff --git a/recommendations/HeatingRecommender.py b/recommendations/HeatingRecommender.py new file mode 100644 index 00000000..e7a6948d --- /dev/null +++ b/recommendations/HeatingRecommender.py @@ -0,0 +1,57 @@ +from recommendations.Costs import Costs +from backend.Property import Property + + +class HeatingRecommender: + + def __init__(self, property_instance: Property): + self.property = property_instance + self.costs = Costs(self.property) + + self.recommendations = [] + + def recommend(self, phase=0): + # This first iteration of the recommender will provide very basic recommendation + if self.property.main_heating == "Room heaters, electric": + self.recommend_room_heaters_electric(phase=phase) + return + + def recommend_room_heaters_electric(self, phase): + """ + If the home has Room heaters, electric, we start by identifying potential heating controls that could + be upgraded, that would provide a practical impact. This will be the least invasive improvement. + + We can then consider the heating system itself + :return: + """ + if self.property.data["mainheat-energy-eff"] in ["Poor", "Very Poor"]: + # We recommend Programmer and appliance thermostats as the heating control. This has an average energy + # efficiency rating, and is likely to be more efficient than the current heating controls. if the + # rating is poor or very poor, the home may have a Programmer and room thermostat, which is less efficient + # than a Programmer and appliance thermostats, because it allows for much more granular control at not + # just a room level but individual heater/appliance level + + # Note: A room thermostat is commonly placed in a hallway, and it measures the temperature of the air + # surrounding it. It then sends a signal to the heating system to turn on or off, depending on the + # temperature. An appliance thermostat, on the other hand, is placed on the heater/appliance itself, and + # measures the temperature of the heater/appliance. This allows for much more granular control, and + # prevents overheating. + + # In order to cost, we check if the property already has a programmer, and therefor we will just need to + # add the cost of the appliance thermostats + has_programmer = self.property.main_heating_controls["switch_system"] == "programmer" + self.recommendations.append( + { + "phase": phase, + "parts": [ + # TODO + ], + "type": "heating_control", + "description": "Upgrade heating controls to Programmer and Appliance or Smart" + "Thermostats for more precise heating control, and prevention of overheating", + "starting_u_value": None, + "new_u_value": None, + "sap_points": None, + **self.costs.programmer_and_appliance_thermostat(has_programmer=has_programmer) + } + ) diff --git a/recommendations/Recommendations.py b/recommendations/Recommendations.py index d1eec41b..ed9917ef 100644 --- a/recommendations/Recommendations.py +++ b/recommendations/Recommendations.py @@ -11,6 +11,7 @@ from recommendations.FireplaceRecommendations import FireplaceRecommendations from recommendations.LightingRecommendations import LightingRecommendations from recommendations.SolarPvRecommendations import SolarPvRecommendations from recommendations.WindowsRecommendations import WindowsRecommendations +from recommendations.HeatingRecommender import HeatingRecommender from backend.ml_models.AnnualBillSavings import AnnualBillSavings @@ -42,6 +43,7 @@ class Recommendations: self.lighting_recommender = LightingRecommendations(property_instance=property_instance, materials=materials) self.windows_recommender = WindowsRecommendations(property_instance=property_instance, materials=materials) self.solar_recommender = SolarPvRecommendations(property_instance=property_instance) + self.heating_recommender = HeatingRecommender(property_instance=property_instance) def recommend(self): @@ -89,6 +91,12 @@ class Recommendations: property_recommendations.append(self.windows_recommender.recommendation) phase += 1 + # Heating controls recommendations + self.heating_recommender.recommend(phase=phase) + if self.heating_recommender.recommendation: + property_recommendations.append(self.heating_recommender.recommendation) + phase += 1 + # Fireplace sealing recommendations self.fireplace_recommender.recommend(phase=phase) if self.fireplace_recommender.recommendation: diff --git a/recommendations/WallRecommendations.py b/recommendations/WallRecommendations.py index 467c6ad3..9b731af4 100644 --- a/recommendations/WallRecommendations.py +++ b/recommendations/WallRecommendations.py @@ -121,7 +121,7 @@ class WallRecommendations(Definitions): u_value >= self.BUILDING_REGULATIONS_PART_L_MAX_U_VALUE ): # Recommend insulation - self.find_insulation(u_value) + self.find_insulation(u_value, phase) return # We can't detect it's a cavity wall, but it was built after 1990 so likely built with insulation already diff --git a/recommendations/rdsap_tables.py b/recommendations/rdsap_tables.py index e396f727..98cda9ab 100644 --- a/recommendations/rdsap_tables.py +++ b/recommendations/rdsap_tables.py @@ -511,6 +511,7 @@ FLOOR_LEVEL_MAP = { "Ground": 0, "ground floor": 0, "mid floor": 1, + "top floor": 5, "20+": 20, "21st or above": 21, **{str(i).zfill(2): i for i in range(0, 21)}, diff --git a/recommendations/recommendation_utils.py b/recommendations/recommendation_utils.py index 872a1c5b..395cd2ea 100644 --- a/recommendations/recommendation_utils.py +++ b/recommendations/recommendation_utils.py @@ -311,6 +311,7 @@ def get_roof_u_value( return float(u_value) + def estimate_number_of_floors(property_type): """ Using the property type, we estimate the number of floors in the property @@ -324,7 +325,7 @@ def estimate_number_of_floors(property_type): number_of_floors = 2 else: raise NotImplementedError("Implement me") - + return number_of_floors @@ -432,7 +433,6 @@ def get_floor_u_value(floor_type, area, perimeter, age_band, wall_type, insulati Rsi = 0.17 # in m²K/W Rse = 0.04 # in m²K/W lambda_ins = 0.035 # thermal conductivity of floor insulation in W/m·K - wall_thickness = [x[age_band] for x in default_wall_thickness if x["type"] == wall_type][0] if wall_thickness is None and wall_type == "park home": # We don't know enough and likely won't make recommendations diff --git a/utils/s3.py b/utils/s3.py index 3d6cf038..cb55094a 100644 --- a/utils/s3.py +++ b/utils/s3.py @@ -195,3 +195,32 @@ def read_pickle_from_s3(bucket_name, s3_file_name): return None return data + + +def read_excel_from_s3(bucket_name, file_key, header_row): + """ + Read an Excel file from an S3 bucket and return it as a pandas DataFrame. + + :param bucket_name: Name of the S3 bucket. + :param file_key: Key of the file (including directory path within the bucket). + :param header_row: The row number to use as the header (0-indexed). + :return: A pandas DataFrame containing the data from the Excel file. + """ + + # Ensure the file_key is an Excel file + if not file_key.endswith((".xls", ".xlsx")): + raise ValueError("The specified file does not appear to be an Excel file.") + + # Use the read_io_from_s3 function to get the data as a BytesIO object + excel_buffer = read_io_from_s3(bucket_name, file_key) + + # Read the Excel file into a pandas DataFrame + df = pd.read_excel(excel_buffer, header=header_row) + + # Drop columns where all values are NaN + df.dropna(axis=1, how='all', inplace=True) + + # Reset index if the first column is just an index or entirely NaN + df.reset_index(drop=True, inplace=True) + + return df From 7e0b3966d0c55bf1ace629c834ab4256f2d87288 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Mon, 19 Feb 2024 13:13:21 +0000 Subject: [PATCH 277/526] first heating recommendation --- recommendations/HeatingRecommender.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/recommendations/HeatingRecommender.py b/recommendations/HeatingRecommender.py index e7a6948d..5c386b84 100644 --- a/recommendations/HeatingRecommender.py +++ b/recommendations/HeatingRecommender.py @@ -55,3 +55,6 @@ class HeatingRecommender: **self.costs.programmer_and_appliance_thermostat(has_programmer=has_programmer) } ) + + # We don't implement any other recommendations right now + return From a5eb42794e5044478f7d26cc1163d265fd36014d Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Mon, 19 Feb 2024 13:16:18 +0000 Subject: [PATCH 278/526] added heating to main recommender --- recommendations/Recommendations.py | 23 +++++++++-------------- 1 file changed, 9 insertions(+), 14 deletions(-) diff --git a/recommendations/Recommendations.py b/recommendations/Recommendations.py index ed9917ef..1d0fdab6 100644 --- a/recommendations/Recommendations.py +++ b/recommendations/Recommendations.py @@ -57,8 +57,8 @@ class Recommendations: property_recommendations = [] phase = 0 - # Wall recommendations - self.wall_recomender.recommend(phase=phase) + + # Building Fabric if self.wall_recomender.recommendations: property_recommendations.append(self.wall_recomender.recommendations) phase += 1 @@ -73,43 +73,38 @@ class Recommendations: if self.ventilation_recomender.recommendation: property_recommendations.append(self.ventilation_recomender.recommendation) - # Roof recommendations self.roof_recommender.recommend(phase=phase) if self.roof_recommender.recommendations: property_recommendations.append(self.roof_recommender.recommendations) phase += 1 - # Floor recommendations self.floor_recommender.recommend(phase=phase) if self.floor_recommender.recommendations: property_recommendations.append(self.floor_recommender.recommendations) phase += 1 - # Windows recommendations self.windows_recommender.recommend(phase=phase) if self.windows_recommender.recommendation: property_recommendations.append(self.windows_recommender.recommendation) phase += 1 - # Heating controls recommendations - self.heating_recommender.recommend(phase=phase) - if self.heating_recommender.recommendation: - property_recommendations.append(self.heating_recommender.recommendation) - phase += 1 - - # Fireplace sealing recommendations self.fireplace_recommender.recommend(phase=phase) if self.fireplace_recommender.recommendation: property_recommendations.append(self.fireplace_recommender.recommendation) phase += 1 - # Lighting recommendations + # Heating and Electical systems + self.heating_recommender.recommend(phase=phase) + if self.heating_recommender.recommendations: + property_recommendations.append(self.heating_recommender.recommendations) + phase += 1 + self.lighting_recommender.recommend(phase=phase) if self.lighting_recommender.recommendation: property_recommendations.append(self.lighting_recommender.recommendation) phase += 1 - # Solar recommendations + # Renewables self.solar_recommender.recommend(phase=phase) if self.solar_recommender.recommendation: property_recommendations.append(self.solar_recommender.recommendation) From c7bca626d8b7ad42daff6031d7582285c1d0ea5f Mon Sep 17 00:00:00 2001 From: Michael Duong Date: Mon, 19 Feb 2024 15:19:59 +0000 Subject: [PATCH 279/526] Removed the dropping of cavity fille ending columns and is at rafter ending column --- etl/epc/Dataset.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/etl/epc/Dataset.py b/etl/epc/Dataset.py index dac829e2..7f989633 100644 --- a/etl/epc/Dataset.py +++ b/etl/epc/Dataset.py @@ -563,7 +563,6 @@ class TrainingDataset(BaseDataset): "original_description_ending", "thermal_transmittance_unit_ending", "is_cavity_wall_ending", - "is_filled_cavity_ending", "is_solid_brick_ending", "is_system_built_ending", "is_timber_frame_ending", @@ -607,7 +606,6 @@ class TrainingDataset(BaseDataset): "is_loft_ending", "is_flat_ending", "is_thatched_ending", - "is_at_rafters_ending", "has_dwelling_above_ending", "is_assumed_ending", "is_valid_ending", From fe252283620d601b395d49f27198ed99080080c3 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Mon, 19 Feb 2024 16:04:46 +0000 Subject: [PATCH 280/526] Added simulation config --- backend/Property.py | 19 ++++++++++++------ backend/app/plan/router.py | 3 +++ etl/epc/Record.py | 27 +++++++++++++------------- etl/property_dimensions/app.py | 10 +++++++--- recommendations/HeatingRecommender.py | 28 +++++++++++++++++++++++++-- 5 files changed, 63 insertions(+), 24 deletions(-) diff --git a/backend/Property.py b/backend/Property.py index 418a35a1..faf2a864 100644 --- a/backend/Property.py +++ b/backend/Property.py @@ -238,12 +238,15 @@ class Property: # Note: often when the wall is insulatied, the internal/external insulation is not noted so we should # test the impact of using these booleans if recommendation["type"] == "external_wall_insulation": - output["external_insulation"] = True - output["internal_insulation"] = False + output["external_insulation_ending"] = True + output["internal_insulation_ending"] = False if recommendation["type"] == "internal_wall_insulation": - output["external_insulation"] = False - output["internal_insulation"] = True + output["external_insulation_ending"] = False + output["internal_insulation_ending"] = True + + if recommendation["type"] == "cavity_wall_insulation": + output["is_filled_cavity_ending"] = True # TODO: perhaps detrimental # When making a recommendation for the wall, we will also update the ventilation @@ -314,7 +317,7 @@ class Property: if recommendation["type"] == "low_energy_lighting": output["low_energy_lighting_ending"] = 100 - output["lighting_energy_eff_starting"] = "Very Good" + output["lighting_energy_eff_ending"] = "Very Good" if recommendation["type"] == "windows_glazing": output["multi_glaze_proportion_ending"] = 100 @@ -340,6 +343,10 @@ class Property: else: output["glazed_type_ending"] = "double glazing installed during or after 2002 " + if recommendation["type"] == "heating_control": + # We update the data, as defined in the recommendaton + output.update(recommendation["simulation_config"]) + if recommendation["type"] == "solar_pv": output["photo_supply_ending"] = recommendation["photo_supply"] @@ -348,7 +355,7 @@ class Property: "internal_wall_insulation", "external_wall_insulation", "cavity_wall_insulation", "loft_insulation", "room_roof_insulation", "flat_roof_insulation", "solid_floor_insulation", "suspended_floor_insulation", "exposed_floor_insulation", - "windows_glazing", "solar_pv" + "windows_glazing", "solar_pv", "heating_control", ]: raise NotImplementedError("Implement me") diff --git a/backend/app/plan/router.py b/backend/app/plan/router.py index 20e72b8d..a0603172 100644 --- a/backend/app/plan/router.py +++ b/backend/app/plan/router.py @@ -144,6 +144,9 @@ async def trigger_plan(body: PlanTriggerRequest): recommender = Recommendations(property_instance=p, materials=materials) property_recommendations, property_representative_recommendations = recommender.recommend() + # TODO: Re-run property_dimensions + # Do the simulation in adjust_difference_record_with_recommendations, to update the values + if not property_recommendations: continue diff --git a/etl/epc/Record.py b/etl/epc/Record.py index fc670e5e..c793716f 100644 --- a/etl/epc/Record.py +++ b/etl/epc/Record.py @@ -467,8 +467,7 @@ class EPCRecord: ] if ( - self.construction_age_band is not None - and self.construction_age_band not in DATA_ANOMALY_MATCHES + self.construction_age_band not in DATA_ANOMALY_MATCHES ): result = result[ (result["CONSTRUCTION_AGE_BAND"] == self.construction_age_band) @@ -481,7 +480,7 @@ class EPCRecord: result = result[(result["BUILT_FORM"] == self.prepared_epc["built-form"])] return result[ - ["NUMBER_HABITABLE_ROOMS", "TOTAL_FLOOR_AREA", "FLOOR_HEIGHT"] + ["NUMBER_HABITABLE_ROOMS", "NUMBER_HEATED_ROOMS", "TOTAL_FLOOR_AREA", "FLOOR_HEIGHT"] ].mean() def _clean_property_dimensions(self): @@ -490,12 +489,11 @@ class EPCRecord: """ if not self.prepared_epc: - raise ValueError("EPC Recrod doesn not contain epc data") + raise ValueError("EPC Record doesn not contain epc data") - if not self.prepared_epc["number-habitable-rooms"] or ( - self.prepared_epc["floor-height"] == "" - or self.prepared_epc["floor-height"] in DATA_ANOMALY_MATCHES - ): + if (self.prepared_epc["number-habitable-rooms"] in DATA_ANOMALY_MATCHES) or ( + self.prepared_epc["floor-height"] in DATA_ANOMALY_MATCHES + ) or (self.prepared_epc["number-heated-rooms"] in DATA_ANOMALY_MATCHES): property_dimensions = read_dataframe_from_s3_parquet( bucket_name=DATA_BUCKET, file_key=f"property_dimensions/{self.prepared_epc['local-authority']}.parquet", @@ -504,14 +502,17 @@ class EPCRecord: property_dimensions ) - if not self.prepared_epc["number-habitable-rooms"]: + if self.prepared_epc["number-habitable-rooms"] in DATA_ANOMALY_MATCHES: self.prepared_epc["number-habitable-rooms"] = float( self.property_dimensions["NUMBER_HABITABLE_ROOMS"].round() ) else: - self.prepared_epc["number-habitable-rooms"] = float( - self.prepared_epc["number-habitable-rooms"] - ) + self.prepared_epc["number-habitable-rooms"] = float(self.prepared_epc["number-habitable-rooms"]) + + if self.prepared_epc["number-heated-rooms"] in DATA_ANOMALY_MATCHES: + self.prepared_epc["number-heated-rooms"] = float(self.property_dimensions["NUMBER_HEATED_ROOMS"].round()) + else: + self.prepared_epc["number-heated-rooms"] = float(self.prepared_epc["number-heated-rooms"]) self.number_of_floors = estimate_number_of_floors( self.prepared_epc["property-type"] @@ -729,7 +730,7 @@ class EPCRecord: old_record["lodgement-datetime"] for old_record in self.old_data if old_record["construction-age-band"] - not in DATA_ANOMALY_MATCHES + not in DATA_ANOMALY_MATCHES ] ) diff --git a/etl/property_dimensions/app.py b/etl/property_dimensions/app.py index 876d67e2..08d19943 100644 --- a/etl/property_dimensions/app.py +++ b/etl/property_dimensions/app.py @@ -7,7 +7,7 @@ from pathlib import Path import pandas as pd from tqdm import tqdm from etl.epc.settings import EARLIEST_EPC_DATE -from etl.epc.DataProcessor import DataProcessor +from etl.epc.DataProcessor import EPCDataProcessor from BaseUtility import Definitions from utils.s3 import save_dataframe_to_s3_parquet @@ -28,17 +28,21 @@ def app(): data["TOTAL_FLOOR_AREA"] = data["TOTAL_FLOOR_AREA"].astype(float) data["CONSTRUCTION_AGE_BAND"] = data["CONSTRUCTION_AGE_BAND"].apply( - lambda x: DataProcessor.clean_construction_age_band(x) + lambda x: EPCDataProcessor.clean_construction_age_band(x) ) data = data[~pd.isnull(data["CONSTRUCTION_AGE_BAND"])] data = data[~data["CONSTRUCTION_AGE_BAND"].isin(Definitions.DATA_ANOMALY_MATCHES)] data = data[~pd.isnull(data["TOTAL_FLOOR_AREA"])] data = data[~pd.isnull(data["NUMBER_HABITABLE_ROOMS"])] data = data[~pd.isnull(data["FLOOR_HEIGHT"])] + data = data[~pd.isnull(data["NUMBER_HEATED_ROOMS"])] df = ( data.groupby(GROUPBY) - .agg({"NUMBER_HABITABLE_ROOMS": "median", "TOTAL_FLOOR_AREA": "mean", "FLOOR_HEIGHT": "mean"}) + .agg( + {"NUMBER_HEATED_ROOMS": "median", "NUMBER_HABITABLE_ROOMS": "median", "TOTAL_FLOOR_AREA": "mean", + "FLOOR_HEIGHT": "mean"} + ) .reset_index() ) diff --git a/recommendations/HeatingRecommender.py b/recommendations/HeatingRecommender.py index 5c386b84..c1b0df37 100644 --- a/recommendations/HeatingRecommender.py +++ b/recommendations/HeatingRecommender.py @@ -1,5 +1,6 @@ from recommendations.Costs import Costs from backend.Property import Property +from etl.epc_clean.epc_attributes.MainheatControlAttributes import MainheatControlAttributes class HeatingRecommender: @@ -12,10 +13,23 @@ class HeatingRecommender: def recommend(self, phase=0): # This first iteration of the recommender will provide very basic recommendation - if self.property.main_heating == "Room heaters, electric": + if self.property.main_heating["clean_description"] == "Room heaters, electric": self.recommend_room_heaters_electric(phase=phase) return + @staticmethod + def check_simulation_difference(old_config, new_config): + """ + Given two dictionaries, that describe the heating control configurations, this method will compare the two + and pick out the differences. These differences will be things that have been added and things that have been + removed. This will be used to determine how we should be updating the configuration in the simulation + :return: + """ + + differences = {key + "_ending": new_config[key] for key in new_config if old_config[key] != new_config[key]} + + return differences + def recommend_room_heaters_electric(self, phase): """ If the home has Room heaters, electric, we start by identifying potential heating controls that could @@ -40,6 +54,15 @@ class HeatingRecommender: # In order to cost, we check if the property already has a programmer, and therefor we will just need to # add the cost of the appliance thermostats has_programmer = self.property.main_heating_controls["switch_system"] == "programmer" + + ending_config = MainheatControlAttributes("Programmer and appliance thermostats").process() + # We look at what has changed in the ending config, and compare it to the current config + + # We use this to determine how we should be updating the config + simulation_config = self.check_simulation_difference( + new_config=ending_config, old_config=self.property.main_heating_controls + ) + self.recommendations.append( { "phase": phase, @@ -52,7 +75,8 @@ class HeatingRecommender: "starting_u_value": None, "new_u_value": None, "sap_points": None, - **self.costs.programmer_and_appliance_thermostat(has_programmer=has_programmer) + **self.costs.programmer_and_appliance_thermostat(has_programmer=has_programmer), + "simulation_config": simulation_config } ) From 08957d41a86e98d6cc66df4931fd5b7163fd75ee Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Mon, 19 Feb 2024 18:37:50 +0000 Subject: [PATCH 281/526] set up heating recommender class --- backend/Property.py | 10 ++- backend/app/plan/router.py | 2 + etl/customers/urban_splash.py | 28 +++++-- .../epc_attributes/MainheatAttributes.py | 6 +- etl/property_dimensions/app.py | 3 + recommendations/Costs.py | 53 +++++++++++++ recommendations/HeatingControlRecommender.py | 78 +++++++++++++++++++ recommendations/HeatingRecommender.py | 77 +++++++++--------- recommendations/Recommendations.py | 9 ++- recommendations/recommendation_utils.py | 13 ++++ 10 files changed, 234 insertions(+), 45 deletions(-) create mode 100644 recommendations/HeatingControlRecommender.py diff --git a/backend/Property.py b/backend/Property.py index faf2a864..1dc94331 100644 --- a/backend/Property.py +++ b/backend/Property.py @@ -345,7 +345,15 @@ class Property: if recommendation["type"] == "heating_control": # We update the data, as defined in the recommendaton - output.update(recommendation["simulation_config"]) + + simulation_config = recommendation["simulation_config"] + # If any entries in simulation_config are None, we will set them to "Unknown" which is the cleaning + # value + for key, value in simulation_config.items(): + if value is None: + simulation_config[key] = "Unknown" + + output.update(simulation_config) if recommendation["type"] == "solar_pv": output["photo_supply_ending"] = recommendation["photo_supply"] diff --git a/backend/app/plan/router.py b/backend/app/plan/router.py index a0603172..f737c2ee 100644 --- a/backend/app/plan/router.py +++ b/backend/app/plan/router.py @@ -97,6 +97,8 @@ async def trigger_plan(body: PlanTriggerRequest): 'old_data': epc_searcher.older_epcs.copy(), } + # We can patch the data if we are provided data from the customer + prepared_epc = EPCRecord( epc_records=epc_records, run_mode="newdata", diff --git a/etl/customers/urban_splash.py b/etl/customers/urban_splash.py index 6c371879..48116864 100644 --- a/etl/customers/urban_splash.py +++ b/etl/customers/urban_splash.py @@ -78,11 +78,12 @@ def app(): "uprn": newest_epc["uprn"], "address": newest_epc["address1"], "postcode": newest_epc["postcode"], - "walls-description": newest_epc["walls-description"], - "roof-description": newest_epc["roof-description"], - "floor-description": newest_epc["floor-description"], - "total-floor-area": newest_epc["total-floor-area"], - "full-address": newest_epc["address"] + # "walls-description": newest_epc["walls-description"], + # "roof-description": newest_epc["roof-description"], + # "floor-description": newest_epc["floor-description"], + # "total-floor-area": newest_epc["total-floor-area"], + "full-address": newest_epc["address"], + } processed_asset_list.append(to_append) @@ -91,6 +92,23 @@ def app(): processed_asset_list_df = pd.DataFrame(processed_asset_list) epc_data_df = pd.DataFrame(epc_data) + example = epc_data_df.iloc[11, :] + rest = epc_data_df[epc_data_df["address1"] != example["address1"]] + z = rest[ + (rest["total-floor-area"] == example["total-floor-area"]) & + (rest["current-energy-rating"] == "C") + ] + # Walls better in the example + z["walls-description"] + example["walls-description"] + + # Example has a property above + z["roof-description"] + example["roof-description"] + + compare = pd.concat([pd.DataFrame(example).T, z]) + compare["mainheat-description"] + # We store this data # Store the data in s3 filename = f"{USER_ID}/{PORTFOLIO_ID}/test_inputs.csv" diff --git a/etl/epc_clean/epc_attributes/MainheatAttributes.py b/etl/epc_clean/epc_attributes/MainheatAttributes.py index 813e15a6..673b460a 100644 --- a/etl/epc_clean/epc_attributes/MainheatAttributes.py +++ b/etl/epc_clean/epc_attributes/MainheatAttributes.py @@ -16,7 +16,6 @@ class MainHeatAttributes(Definitions): "solar assisted heat pump", "exhaust source heat pump", "community heat pump", - "portable electric heating" ] FUEL_TYPES = ["electric", "mains gas", "wood logs", "coal", "oil", "wood pellets", "anthracite", "dual fuel mineral and wood", "smokeless fuel", "lpg", "b30k"] @@ -62,7 +61,8 @@ class MainHeatAttributes(Definitions): REMAP = { "electric ceiling": "electric ceiling heating", "electric heat pumps": "electric heat pump", - "solar-assisted heat pump": "solar assisted heat pump" + "solar-assisted heat pump": "solar assisted heat pump", + "portable electric heating": "portable electric heaters", } edge_case_result = {} @@ -139,6 +139,8 @@ class MainHeatAttributes(Definitions): result.update({f'has_{ft.replace(" ", "_")}': False for ft in self.FUEL_TYPES}) result.update({f'has_{ot.replace(" ", "_")}': False for ot in self.OTHERS}) result['has_underfloor_heating'] = False + # We re-map entries that are the same + # We just drop those keys if self.nodata: return result diff --git a/etl/property_dimensions/app.py b/etl/property_dimensions/app.py index 08d19943..d3a43695 100644 --- a/etl/property_dimensions/app.py +++ b/etl/property_dimensions/app.py @@ -21,8 +21,11 @@ BUCKET = os.environ.get("BUCKET", "retrofit-data-dev") def app(): directories = [entry for entry in DATA_DIRECTORY.iterdir() if entry.is_dir()] + sample = [] for directory in tqdm(directories): + data = pd.read_csv(directory / "certificates.csv", low_memory=False) + data = data[data["LODGEMENT_DATE"] >= EARLIEST_EPC_DATE] data = data[~pd.isnull(data["UPRN"])] data["TOTAL_FLOOR_AREA"] = data["TOTAL_FLOOR_AREA"].astype(float) diff --git a/recommendations/Costs.py b/recommendations/Costs.py index da34d087..505b4a32 100644 --- a/recommendations/Costs.py +++ b/recommendations/Costs.py @@ -908,3 +908,56 @@ class Costs: "labour_hours": labour_hours, "labour_days": 1, } + + def electric_room_heaters(self, number_heated_rooms): + """ + We base the estimates for the cost of electric room heaters on the cost per room as estimated by the + following article: + https://www.bestelectricradiators.co.uk/blog/cost-to-install-a-new-heating-system-uk/ + + :param number_heated_rooms: int, number of rooms to be heated + :return: + """ + + total_cost = 500 * number_heated_rooms + subtotal_before_vat = total_cost / (1 + self.VAT_RATE) + vat = total_cost - subtotal_before_vat + + # TODO: Rough estimate to be reviewed + labour_hours = 1 * number_heated_rooms + labour_days = np.ceil(labour_hours / 8) + + return { + "total": total_cost, + "subtotal": subtotal_before_vat, + "vat": vat, + "labour_hours": labour_hours, + "labour_days": labour_days, + } + + def electric_storage_heaters(self, number_heated_rooms): + + """ + We base the estimates for the cost of electric storage heaters on the cost per room as estimated by the + energy saving trust + https://energysavingtrust.org.uk/advice/electric-heating/ + + The cost is based on the number of heated rooms + :param number_heated_rooms: int, number of rooms to be heated + """ + + total_cost = 1000 * number_heated_rooms + subtotal_before_vat = total_cost / (1 + self.VAT_RATE) + vat = total_cost - subtotal_before_vat + + # TODO: Rough estimate to be reviewed + labour_hours = 3 * number_heated_rooms + labour_days = np.ceil(labour_hours / 8) + + return { + "total": total_cost, + "subtotal": subtotal_before_vat, + "vat": vat, + "labour_hours": labour_hours, + "labour_days": labour_days, + } diff --git a/recommendations/HeatingControlRecommender.py b/recommendations/HeatingControlRecommender.py new file mode 100644 index 00000000..84d37931 --- /dev/null +++ b/recommendations/HeatingControlRecommender.py @@ -0,0 +1,78 @@ +from recommendations.Costs import Costs +from recommendations.recommendation_utils import check_simulation_difference +from backend.Property import Property +from etl.epc_clean.epc_attributes.MainheatControlAttributes import MainheatControlAttributes + + +class HeatingControlRecommender: + + def __init__(self, property_instance: Property): + self.property = property_instance + self.costs = Costs(self.property) + + self.recommendations = [] + + def recommend(self, phase=0): + # This first iteration of the recommender will provide very basic recommendation + # We recommend heating controls based on the main heating system + if self.property.main_heating["clean_description"] == "Room heaters, electric": + self.recommend_room_heaters_electric_controls(phase=phase) + return + + def recommend_room_heaters_electric_controls(self, phase): + """ + If the home has Room heaters, electric, we start by identifying potential heating controls that could + be upgraded, that would provide a practical impact. This will be the least invasive improvement. + + We can then consider the heating system itself + :return: + """ + if (self.property.data["mainheatc-energy-eff"] in ["Poor", "Very Poor", "Average"]) or ( + self.property.main_heating_controls["clean_description"] in ["Programmer and room thermostat"] + ): + # We recommend Programmer and appliance thermostats as the heating control. This has an average energy + # efficiency rating, and is likely to be more efficient than the current heating controls. if the + # rating is poor or very poor, the home may have a Programmer and room thermostat, which is less efficient + # than a Programmer and appliance thermostats, because it allows for much more granular control at not + # just a room level but individual heater/appliance level + + # Note: A room thermostat is commonly placed in a hallway, and it measures the temperature of the air + # surrounding it. It then sends a signal to the heating system to turn on or off, depending on the + # temperature. An appliance thermostat, on the other hand, is placed on the heater/appliance itself, and + # measures the temperature of the heater/appliance. This allows for much more granular control, and + # prevents overheating. + + # In order to cost, we check if the property already has a programmer, and therefor we will just need to + # add the cost of the appliance thermostats + + has_programmer = self.property.main_heating_controls["switch_system"] == "programmer" + + ending_config = MainheatControlAttributes("Programmer and appliance thermostats").process() + # We look at what has changed in the ending config, and compare it to the current config + + # We use this to determine how we should be updating the config + simulation_config = check_simulation_difference( + new_config=ending_config, old_config=self.property.main_heating_controls + ) + # This upgrade will only take the heating system to average energy efficiency + simulation_config["mainheatc_energy_eff_ending"] = "Good" + + self.recommendations.append( + { + "phase": phase, + "parts": [ + # TODO + ], + "type": "heating_control", + "description": "Upgrade heating controls to Programmer and Appliance or Smart " + "Thermostats for more precise heating control, and prevention of overheating", + "starting_u_value": None, + "new_u_value": None, + "sap_points": None, + **self.costs.programmer_and_appliance_thermostat(has_programmer=has_programmer), + "simulation_config": simulation_config + } + ) + + # We don't implement any other recommendations right now + return diff --git a/recommendations/HeatingRecommender.py b/recommendations/HeatingRecommender.py index c1b0df37..71d5e381 100644 --- a/recommendations/HeatingRecommender.py +++ b/recommendations/HeatingRecommender.py @@ -1,6 +1,7 @@ from recommendations.Costs import Costs +from recommendations.recommendation_utils import check_simulation_difference from backend.Property import Property -from etl.epc_clean.epc_attributes.MainheatControlAttributes import MainheatControlAttributes +from etl.epc_clean.epc_attributes.MainheatAttributes import MainHeatAttributes class HeatingRecommender: @@ -13,6 +14,7 @@ class HeatingRecommender: def recommend(self, phase=0): # This first iteration of the recommender will provide very basic recommendation + # We recommend heating controls based on the main heating system if self.property.main_heating["clean_description"] == "Room heaters, electric": self.recommend_room_heaters_electric(phase=phase) return @@ -39,45 +41,50 @@ class HeatingRecommender: :return: """ if self.property.data["mainheat-energy-eff"] in ["Poor", "Very Poor"]: - # We recommend Programmer and appliance thermostats as the heating control. This has an average energy - # efficiency rating, and is likely to be more efficient than the current heating controls. if the - # rating is poor or very poor, the home may have a Programmer and room thermostat, which is less efficient - # than a Programmer and appliance thermostats, because it allows for much more granular control at not - # just a room level but individual heater/appliance level + # Re recommend two possible upgrades: + # 1) Installation of more efficient electic room heaters + # 2) Installation of electric storage heaters - # Note: A room thermostat is commonly placed in a hallway, and it measures the temperature of the air - # surrounding it. It then sends a signal to the heating system to turn on or off, depending on the - # temperature. An appliance thermostat, on the other hand, is placed on the heater/appliance itself, and - # measures the temperature of the heater/appliance. This allows for much more granular control, and - # prevents overheating. + room_heater_recommendation = { + "phase": phase, + "parts": [ + # TODO + ], + "type": "heating", + "description": "Upgrade electric room heaters to more electric radiators", + "starting_u_value": None, + "new_u_value": None, + "sap_points": None, + **self.costs.electric_room_heaters(number_heated_rooms=self.property.data["number-heated-rooms"]), + "simulation_config": {"mainheat_energy_eff_ending": "Average"} + } - # In order to cost, we check if the property already has a programmer, and therefor we will just need to - # add the cost of the appliance thermostats - has_programmer = self.property.main_heating_controls["switch_system"] == "programmer" - - ending_config = MainheatControlAttributes("Programmer and appliance thermostats").process() - # We look at what has changed in the ending config, and compare it to the current config - - # We use this to determine how we should be updating the config - simulation_config = self.check_simulation_difference( - new_config=ending_config, old_config=self.property.main_heating_controls + ending_config = MainHeatAttributes("Electric storage heaters, radiators").process() + simulation_config = check_simulation_difference( + new_config=ending_config, old_config=self.property.main_heating ) + # This upgrade will only take the heating system to average energy efficiency + simulation_config["mainheatc_energy_eff_ending"] = "Good" - self.recommendations.append( - { - "phase": phase, - "parts": [ - # TODO - ], - "type": "heating_control", - "description": "Upgrade heating controls to Programmer and Appliance or Smart" - "Thermostats for more precise heating control, and prevention of overheating", - "starting_u_value": None, - "new_u_value": None, - "sap_points": None, - **self.costs.programmer_and_appliance_thermostat(has_programmer=has_programmer), - "simulation_config": simulation_config + electric_storage_heaters_recommendation = { + "phase": phase, + "parts": [ + # TODO + ], + "type": "heating", + "description": "Install electric storage heaters", + "starting_u_value": None, + "new_u_value": None, + "sap_points": None, + **self.costs.electric_storage_heaters(number_heated_rooms=self.property.data["number-heated-rooms"]), + "simulation_config": { + "TODO" # TODO + "mainheat_energy_eff_ending": "Average" } + } + + self.recommendations.extend( + [room_heater_recommendation, electric_storage_heaters_recommendation] ) # We don't implement any other recommendations right now diff --git a/recommendations/Recommendations.py b/recommendations/Recommendations.py index 1d0fdab6..938debe1 100644 --- a/recommendations/Recommendations.py +++ b/recommendations/Recommendations.py @@ -1,5 +1,3 @@ -import numpy as np - from backend.Property import Property from typing import List from itertools import groupby @@ -12,6 +10,7 @@ from recommendations.LightingRecommendations import LightingRecommendations from recommendations.SolarPvRecommendations import SolarPvRecommendations from recommendations.WindowsRecommendations import WindowsRecommendations from recommendations.HeatingRecommender import HeatingRecommender +from recommendations.HeatingControlRecommender import HeatingControlRecommender from backend.ml_models.AnnualBillSavings import AnnualBillSavings @@ -44,6 +43,7 @@ class Recommendations: self.windows_recommender = WindowsRecommendations(property_instance=property_instance, materials=materials) self.solar_recommender = SolarPvRecommendations(property_instance=property_instance) self.heating_recommender = HeatingRecommender(property_instance=property_instance) + self.heating_control_recommender = HeatingControlRecommender(property_instance=property_instance) def recommend(self): @@ -99,6 +99,11 @@ class Recommendations: property_recommendations.append(self.heating_recommender.recommendations) phase += 1 + self.heating_control_recommender.recommend(phase=phase) + if self.heating_control_recommender.recommendations: + property_recommendations.append(self.heating_control_recommender.recommendations) + phase += 1 + self.lighting_recommender.recommend(phase=phase) if self.lighting_recommender.recommendation: property_recommendations.append(self.lighting_recommender.recommendation) diff --git a/recommendations/recommendation_utils.py b/recommendations/recommendation_utils.py index 395cd2ea..0d5f9743 100644 --- a/recommendations/recommendation_utils.py +++ b/recommendations/recommendation_utils.py @@ -754,3 +754,16 @@ def calculate_cavity_age(newest_epc, older_epcs, cleaned): cavity_age = (datetime.now() - pd.to_datetime(df["inspection-date"].max())).days return cavity_age + + +def check_simulation_difference(old_config, new_config): + """ + Given two dictionaries, that describe the heating control configurations, this method will compare the two + and pick out the differences. These differences will be things that have been added and things that have been + removed. This will be used to determine how we should be updating the configuration in the simulation + :return: + """ + + differences = {key + "_ending": new_config[key] for key in new_config if old_config[key] != new_config[key]} + + return differences From d60918b77113a82b1d37077f020c4608787bc781 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Mon, 19 Feb 2024 18:43:10 +0000 Subject: [PATCH 282/526] updating simulation of heating --- backend/Property.py | 4 ++-- recommendations/HeatingRecommender.py | 5 +---- 2 files changed, 3 insertions(+), 6 deletions(-) diff --git a/backend/Property.py b/backend/Property.py index 1dc94331..a8c8664c 100644 --- a/backend/Property.py +++ b/backend/Property.py @@ -341,9 +341,9 @@ class Property: if is_secondary_glazing: output["glazed_type_ending"] = "secondary glazing" else: - output["glazed_type_ending"] = "double glazing installed during or after 2002 " + output["glazed_type_ending"] = "double glazing installed during or after 2002" - if recommendation["type"] == "heating_control": + if recommendation["type"] in ["heating", "heating_control"]: # We update the data, as defined in the recommendaton simulation_config = recommendation["simulation_config"] diff --git a/recommendations/HeatingRecommender.py b/recommendations/HeatingRecommender.py index 71d5e381..19374316 100644 --- a/recommendations/HeatingRecommender.py +++ b/recommendations/HeatingRecommender.py @@ -77,10 +77,7 @@ class HeatingRecommender: "new_u_value": None, "sap_points": None, **self.costs.electric_storage_heaters(number_heated_rooms=self.property.data["number-heated-rooms"]), - "simulation_config": { - "TODO" # TODO - "mainheat_energy_eff_ending": "Average" - } + "simulation_config": simulation_config } self.recommendations.extend( From be71af909edab7acca94100ea4f17fdba827894c Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Mon, 19 Feb 2024 19:35:25 +0000 Subject: [PATCH 283/526] coupling heating and heating controls recommendations --- backend/Property.py | 2 +- recommendations/HeatingControlRecommender.py | 26 ++- recommendations/HeatingRecommender.py | 189 ++++++++++++++----- recommendations/Recommendations.py | 7 - 4 files changed, 156 insertions(+), 68 deletions(-) diff --git a/backend/Property.py b/backend/Property.py index a8c8664c..840d503d 100644 --- a/backend/Property.py +++ b/backend/Property.py @@ -363,7 +363,7 @@ class Property: "internal_wall_insulation", "external_wall_insulation", "cavity_wall_insulation", "loft_insulation", "room_roof_insulation", "flat_roof_insulation", "solid_floor_insulation", "suspended_floor_insulation", "exposed_floor_insulation", - "windows_glazing", "solar_pv", "heating_control", + "windows_glazing", "solar_pv", "heating", "heating_control", ]: raise NotImplementedError("Implement me") diff --git a/recommendations/HeatingControlRecommender.py b/recommendations/HeatingControlRecommender.py index 84d37931..4ee28d7e 100644 --- a/recommendations/HeatingControlRecommender.py +++ b/recommendations/HeatingControlRecommender.py @@ -10,16 +10,20 @@ class HeatingControlRecommender: self.property = property_instance self.costs = Costs(self.property) - self.recommendations = [] + self.recommendation = [] + + def recommend(self, heating_description): + + # Reset the recommendations + self.recommendation = [] - def recommend(self, phase=0): # This first iteration of the recommender will provide very basic recommendation # We recommend heating controls based on the main heating system - if self.property.main_heating["clean_description"] == "Room heaters, electric": - self.recommend_room_heaters_electric_controls(phase=phase) + if heating_description in ["Room heaters, electric", "Electric storage heaters, radiators"]: + self.recommend_room_heaters_electric_controls() return - def recommend_room_heaters_electric_controls(self, phase): + def recommend_room_heaters_electric_controls(self): """ If the home has Room heaters, electric, we start by identifying potential heating controls that could be upgraded, that would provide a practical impact. This will be the least invasive improvement. @@ -57,18 +61,10 @@ class HeatingControlRecommender: # This upgrade will only take the heating system to average energy efficiency simulation_config["mainheatc_energy_eff_ending"] = "Good" - self.recommendations.append( + self.recommendation.append( { - "phase": phase, - "parts": [ - # TODO - ], "type": "heating_control", - "description": "Upgrade heating controls to Programmer and Appliance or Smart " - "Thermostats for more precise heating control, and prevention of overheating", - "starting_u_value": None, - "new_u_value": None, - "sap_points": None, + "description": "upgrade heating controls to Programmer and Appliance or Smart Thermostats", **self.costs.programmer_and_appliance_thermostat(has_programmer=has_programmer), "simulation_config": simulation_config } diff --git a/recommendations/HeatingRecommender.py b/recommendations/HeatingRecommender.py index 19374316..859a440f 100644 --- a/recommendations/HeatingRecommender.py +++ b/recommendations/HeatingRecommender.py @@ -2,6 +2,7 @@ from recommendations.Costs import Costs from recommendations.recommendation_utils import check_simulation_difference from backend.Property import Property from etl.epc_clean.epc_attributes.MainheatAttributes import MainHeatAttributes +from recommendations.HeatingControlRecommender import HeatingControlRecommender class HeatingRecommender: @@ -13,10 +14,12 @@ class HeatingRecommender: self.recommendations = [] def recommend(self, phase=0): + self.recommendations = [] # This first iteration of the recommender will provide very basic recommendation # We recommend heating controls based on the main heating system if self.property.main_heating["clean_description"] == "Room heaters, electric": - self.recommend_room_heaters_electric(phase=phase) + self.recommend_room_heaters_electric(phase=phase, heating_controls_only=True) + self.recommend_electric_storage_heaters(phase=phase, heating_controls_only=False) return @staticmethod @@ -32,7 +35,128 @@ class HeatingRecommender: return differences - def recommend_room_heaters_electric(self, phase): + @staticmethod + def combine_heating_and_controls( + controls_recommendations, heating_simulation_config, costs, description, phase, heating_controls_only + ): + """ + Given a recommendation for heating controls, and a recommendation for the heating system, we combine the two + into a single recommendation + :param controls_recommendations: The heating controls recommendations + :param heating_simulation_config: The simulation configuration for the heating system + :param costs: The costs of the heating system + :param description: The description of the recommendation + :param phase: The phase of the recommendation + :param heating_controls_only: If True, we will also add a recommendation for heating controls only + :return: + """ + + # We produce recommendations with & without heating controls + # We will also produce a recommendation for heating controls only + heating_controls_switch = [True, False] if controls_recommendations else [False] + if not heating_simulation_config: + heating_controls_switch = [] + + output = [] + for controls_switch in heating_controls_switch: + total_costs = costs.copy() + recommendation_simulation_config = heating_simulation_config.copy() + if controls_switch: + # We add the costs of the heating controls, onto each key in the costs dictionary + for key in total_costs: + total_costs[key] += controls_recommendations[0][key] + + recommendation_simulation_config = { + **recommendation_simulation_config, + **controls_recommendations[0]["simulation_config"] + } + + description = f"{description} and {controls_recommendations[0]['description']}" + + recommendation = { + "phase": phase, + "parts": [ + # TODO + ], + "type": "heating", + "description": description, + "starting_u_value": None, + "new_u_value": None, + "sap_points": None, + **total_costs, + "simulation_config": recommendation_simulation_config + } + + output.append(recommendation) + + if heating_controls_only and len(controls_recommendations): + # Also add on a recommendation for heating controls only + heating_control_recommendation = controls_recommendations[0].copy() + # Capitalize the first letter of the description + heating_control_recommendation["description"] = ( + heating_control_recommendation["description"][0].upper() + + heating_control_recommendation["description"][1:] + ) + + output.append( + { + "phase": phase, + "starting_u_value": None, + "new_u_value": None, + "sap_points": None, + **heating_control_recommendation + } + ) + + return output + + def recommend_electric_storage_heaters(self, phase, heating_controls_only): + """ + We recommend electric storage heaters as an upgrade to the heating system. + :return: + """ + + controls_recommender = HeatingControlRecommender(self.property) + controls_recommender.recommend(heating_description="Room heaters, electric") + + if self.property.data["mainheat-energy-eff"] not in ["Poor", "Very Poor"]: + # We do just heating controls + recs = self.combine_heating_and_controls( + controls_recommendations=controls_recommender.recommendation, + heating_simulation_config={}, + costs={}, + description="", + phase=phase, + heating_controls_only=heating_controls_only + ) + return + + # Set up artefacts, suitable for the simulation and regardless of controls + heating_ending_config = MainHeatAttributes("Electric storage heaters, radiators").process() + heating_simulation_config = check_simulation_difference( + new_config=heating_ending_config, old_config=self.property.main_heating + ) + # This upgrade will only take the heating system to average energy efficiency + heating_simulation_config["mainheatc_energy_eff_ending"] = "Good" + + # Upgrade to electric storage heaters + costs = self.costs.electric_storage_heaters( + number_heated_rooms=self.property.data["number-heated-rooms"] + ) + description = "Install electric storage heaters" + + recommendations = self.combine_heating_and_controls( + controls_recommendations=controls_recommender.recommendation, + heating_simulation_config=heating_simulation_config, + costs=costs, + description=description, + phase=phase, + heating_controls_only=heating_controls_only + ) + + self.recommendations.extend(recommendations) + + def recommend_room_heaters_electric(self, phase, heating_controls_only): """ If the home has Room heaters, electric, we start by identifying potential heating controls that could be upgraded, that would provide a practical impact. This will be the least invasive improvement. @@ -40,49 +164,24 @@ class HeatingRecommender: We can then consider the heating system itself :return: """ - if self.property.data["mainheat-energy-eff"] in ["Poor", "Very Poor"]: - # Re recommend two possible upgrades: - # 1) Installation of more efficient electic room heaters - # 2) Installation of electric storage heaters + if self.property.data["mainheat-energy-eff"] not in ["Poor", "Very Poor"]: + return - room_heater_recommendation = { - "phase": phase, - "parts": [ - # TODO - ], - "type": "heating", - "description": "Upgrade electric room heaters to more electric radiators", - "starting_u_value": None, - "new_u_value": None, - "sap_points": None, - **self.costs.electric_room_heaters(number_heated_rooms=self.property.data["number-heated-rooms"]), - "simulation_config": {"mainheat_energy_eff_ending": "Average"} - } + controls_recommender = HeatingControlRecommender(self.property) + controls_recommender.recommend(heating_description="Room heaters, electric") + costs = self.costs.electric_room_heaters( + number_heated_rooms=self.property.data["number-heated-rooms"] + ) + description = "Upgrade electric room heaters to more electric radiators" + heating_simulation_config = {"mainheat_energy_eff_ending": "Average"} - ending_config = MainHeatAttributes("Electric storage heaters, radiators").process() - simulation_config = check_simulation_difference( - new_config=ending_config, old_config=self.property.main_heating - ) - # This upgrade will only take the heating system to average energy efficiency - simulation_config["mainheatc_energy_eff_ending"] = "Good" + recommendations = self.combine_heating_and_controls( + controls_recommender=controls_recommender, + heating_simulation_config=heating_simulation_config, + costs=costs, + description=description, + phase=phase, + heating_controls_only=heating_controls_only + ) - electric_storage_heaters_recommendation = { - "phase": phase, - "parts": [ - # TODO - ], - "type": "heating", - "description": "Install electric storage heaters", - "starting_u_value": None, - "new_u_value": None, - "sap_points": None, - **self.costs.electric_storage_heaters(number_heated_rooms=self.property.data["number-heated-rooms"]), - "simulation_config": simulation_config - } - - self.recommendations.extend( - [room_heater_recommendation, electric_storage_heaters_recommendation] - ) - - # We don't implement any other recommendations right now - return + self.recommendations.extend(recommendations) diff --git a/recommendations/Recommendations.py b/recommendations/Recommendations.py index 938debe1..44be78f6 100644 --- a/recommendations/Recommendations.py +++ b/recommendations/Recommendations.py @@ -10,7 +10,6 @@ from recommendations.LightingRecommendations import LightingRecommendations from recommendations.SolarPvRecommendations import SolarPvRecommendations from recommendations.WindowsRecommendations import WindowsRecommendations from recommendations.HeatingRecommender import HeatingRecommender -from recommendations.HeatingControlRecommender import HeatingControlRecommender from backend.ml_models.AnnualBillSavings import AnnualBillSavings @@ -43,7 +42,6 @@ class Recommendations: self.windows_recommender = WindowsRecommendations(property_instance=property_instance, materials=materials) self.solar_recommender = SolarPvRecommendations(property_instance=property_instance) self.heating_recommender = HeatingRecommender(property_instance=property_instance) - self.heating_control_recommender = HeatingControlRecommender(property_instance=property_instance) def recommend(self): @@ -99,11 +97,6 @@ class Recommendations: property_recommendations.append(self.heating_recommender.recommendations) phase += 1 - self.heating_control_recommender.recommend(phase=phase) - if self.heating_control_recommender.recommendations: - property_recommendations.append(self.heating_control_recommender.recommendations) - phase += 1 - self.lighting_recommender.recommend(phase=phase) if self.lighting_recommender.recommendation: property_recommendations.append(self.lighting_recommender.recommendation) From 94905b1cffd0f7bdf96a0250c9813771093eb401 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Mon, 19 Feb 2024 19:36:56 +0000 Subject: [PATCH 284/526] updated room heaters electric --- recommendations/HeatingRecommender.py | 35 +++++++++++++++++++-------- 1 file changed, 25 insertions(+), 10 deletions(-) diff --git a/recommendations/HeatingRecommender.py b/recommendations/HeatingRecommender.py index 859a440f..fa070518 100644 --- a/recommendations/HeatingRecommender.py +++ b/recommendations/HeatingRecommender.py @@ -121,13 +121,15 @@ class HeatingRecommender: if self.property.data["mainheat-energy-eff"] not in ["Poor", "Very Poor"]: # We do just heating controls - recs = self.combine_heating_and_controls( - controls_recommendations=controls_recommender.recommendation, - heating_simulation_config={}, - costs={}, - description="", - phase=phase, - heating_controls_only=heating_controls_only + self.recommendations.extend( + self.combine_heating_and_controls( + controls_recommendations=controls_recommender.recommendation, + heating_simulation_config={}, + costs={}, + description="", + phase=phase, + heating_controls_only=heating_controls_only + ) ) return @@ -164,11 +166,24 @@ class HeatingRecommender: We can then consider the heating system itself :return: """ - if self.property.data["mainheat-energy-eff"] not in ["Poor", "Very Poor"]: - return controls_recommender = HeatingControlRecommender(self.property) controls_recommender.recommend(heating_description="Room heaters, electric") + + if self.property.data["mainheat-energy-eff"] not in ["Poor", "Very Poor"]: + # We do just heating controls + self.recommendations.extend( + self.combine_heating_and_controls( + controls_recommendations=controls_recommender.recommendation, + heating_simulation_config={}, + costs={}, + description="", + phase=phase, + heating_controls_only=heating_controls_only + ) + ) + return + costs = self.costs.electric_room_heaters( number_heated_rooms=self.property.data["number-heated-rooms"] ) @@ -176,7 +191,7 @@ class HeatingRecommender: heating_simulation_config = {"mainheat_energy_eff_ending": "Average"} recommendations = self.combine_heating_and_controls( - controls_recommender=controls_recommender, + controls_recommendations=controls_recommender.recommendation, heating_simulation_config=heating_simulation_config, costs=costs, description=description, From 419c74e1e445afefad78e587a1a4cdbb19d45dd2 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Mon, 19 Feb 2024 19:53:20 +0000 Subject: [PATCH 285/526] Fixed storage heaters recommendations --- recommendations/HeatingRecommender.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/recommendations/HeatingRecommender.py b/recommendations/HeatingRecommender.py index fa070518..ab7c76eb 100644 --- a/recommendations/HeatingRecommender.py +++ b/recommendations/HeatingRecommender.py @@ -61,6 +61,7 @@ class HeatingRecommender: for controls_switch in heating_controls_switch: total_costs = costs.copy() recommendation_simulation_config = heating_simulation_config.copy() + recommendation_description = description if controls_switch: # We add the costs of the heating controls, onto each key in the costs dictionary for key in total_costs: @@ -71,7 +72,7 @@ class HeatingRecommender: **controls_recommendations[0]["simulation_config"] } - description = f"{description} and {controls_recommendations[0]['description']}" + recommendation_description = f"{description} and {controls_recommendations[0]['description']}" recommendation = { "phase": phase, @@ -79,7 +80,7 @@ class HeatingRecommender: # TODO ], "type": "heating", - "description": description, + "description": recommendation_description, "starting_u_value": None, "new_u_value": None, "sap_points": None, @@ -140,6 +141,7 @@ class HeatingRecommender: ) # This upgrade will only take the heating system to average energy efficiency heating_simulation_config["mainheatc_energy_eff_ending"] = "Good" + heating_simulation_config["mainheat_energy_eff_ending"] = "Average" # Upgrade to electric storage heaters costs = self.costs.electric_storage_heaters( @@ -187,7 +189,7 @@ class HeatingRecommender: costs = self.costs.electric_room_heaters( number_heated_rooms=self.property.data["number-heated-rooms"] ) - description = "Upgrade electric room heaters to more electric radiators" + description = "Upgrade electric room heaters to more efficient electric radiators" heating_simulation_config = {"mainheat_energy_eff_ending": "Average"} recommendations = self.combine_heating_and_controls( From 7ee9476dc1250135ab16f98f627e76141d690d7c Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Tue, 20 Feb 2024 08:58:35 +0000 Subject: [PATCH 286/526] improving logic of heating recommendations --- backend/Property.py | 5 +- backend/app/plan/router.py | 22 +++---- etl/customers/urban_splash.py | 6 +- recommendations/Costs.py | 19 ++++++ recommendations/HeatingControlRecommender.py | 39 ++++++++++- recommendations/HeatingRecommender.py | 65 +++++++++++++++---- recommendations/Recommendations.py | 1 + recommendations/optimiser/GainOptimiser.py | 21 +++++- .../optimiser/optimiser_functions.py | 12 +++- recommendations/recommendation_utils.py | 10 ++- 10 files changed, 164 insertions(+), 36 deletions(-) diff --git a/backend/Property.py b/backend/Property.py index 840d503d..efde7c18 100644 --- a/backend/Property.py +++ b/backend/Property.py @@ -343,7 +343,7 @@ class Property: else: output["glazed_type_ending"] = "double glazing installed during or after 2002" - if recommendation["type"] in ["heating", "heating_control"]: + if recommendation["type"] == "heating": # We update the data, as defined in the recommendaton simulation_config = recommendation["simulation_config"] @@ -363,7 +363,7 @@ class Property: "internal_wall_insulation", "external_wall_insulation", "cavity_wall_insulation", "loft_insulation", "room_roof_insulation", "flat_roof_insulation", "solid_floor_insulation", "suspended_floor_insulation", "exposed_floor_insulation", - "windows_glazing", "solar_pv", "heating", "heating_control", + "windows_glazing", "solar_pv", "heating", ]: raise NotImplementedError("Implement me") @@ -623,6 +623,7 @@ class Property: floor_height=self.floor_height, perimeter=self.perimeter, built_form=self.data["built-form"], + property_type=self.data["property-type"], ) self.insulation_floor_area = self.floor_area / self.number_of_floors diff --git a/backend/app/plan/router.py b/backend/app/plan/router.py index f737c2ee..a3f975be 100644 --- a/backend/app/plan/router.py +++ b/backend/app/plan/router.py @@ -146,9 +146,6 @@ async def trigger_plan(body: PlanTriggerRequest): recommender = Recommendations(property_instance=p, materials=materials) property_recommendations, property_representative_recommendations = recommender.recommend() - # TODO: Re-run property_dimensions - # Do the simulation in adjust_difference_record_with_recommendations, to update the values - if not property_recommendations: continue @@ -184,6 +181,8 @@ async def trigger_plan(body: PlanTriggerRequest): ) # Insert the predictions into the recommendations and run the optimiser + # TODO: If a recommendation has a negative impact on SAP, we should remove it - this seems to have become a + # possibility with heating system logger.info("Optimising recommendations") for property_id in recommendations.keys(): @@ -203,21 +202,22 @@ async def trigger_plan(body: PlanTriggerRequest): expected_adjusted_energy=expected_adjusted_energy ) - # TODO: For the private customer, we should probably NOT allow floor insulation, because it often requires - # decanting the tenant - input_measures = prepare_input_measures(recommendations_with_impact, body.goal) + input_measures = prepare_input_measures(recommendations_with_impact, body.goal, body.housing_type) + + current_sap_points = int(property_instance.data["current-energy-efficiency"]) + target_sap_points = epc_to_sap_lower_bound(body.goal_value) + sap_gain = CostOptimiser.calculate_sap_gain_with_slack(target_sap_points - current_sap_points) if body.budget: - optimiser = GainOptimiser(input_measures, max_cost=body.budget) + optimiser = GainOptimiser( + input_measures, max_cost=body.budget, max_gain=sap_gain if sap_gain > 0 else 0 + ) else: # The minimum gain is the minimum number of SAP points required to get to the target SAP band - current_sap_points = int(property_instance.data["current-energy-efficiency"]) - target_sap_points = epc_to_sap_lower_bound(body.goal_value) - # If the gain is negative, the optimiser will return an empty solution optimiser = CostOptimiser( input_measures, - min_gain=CostOptimiser.calculate_sap_gain_with_slack(target_sap_points - current_sap_points) + min_gain=sap_gain ) optimiser.setup() diff --git a/etl/customers/urban_splash.py b/etl/customers/urban_splash.py index 48116864..85097ef7 100644 --- a/etl/customers/urban_splash.py +++ b/etl/customers/urban_splash.py @@ -76,20 +76,20 @@ def app(): to_append = { **row.to_dict(), "uprn": newest_epc["uprn"], - "address": newest_epc["address1"], - "postcode": newest_epc["postcode"], + "postcode to check": newest_epc["postcode"], # "walls-description": newest_epc["walls-description"], # "roof-description": newest_epc["roof-description"], # "floor-description": newest_epc["floor-description"], # "total-floor-area": newest_epc["total-floor-area"], "full-address": newest_epc["address"], - } processed_asset_list.append(to_append) epc_data.append(newest_epc) processed_asset_list_df = pd.DataFrame(processed_asset_list) + processed_asset_list_df.to_excel("urban_splash_processed_asset_list.xlsx") + epc_data_df = pd.DataFrame(epc_data) example = epc_data_df.iloc[11, :] diff --git a/recommendations/Costs.py b/recommendations/Costs.py index 505b4a32..1ae194a9 100644 --- a/recommendations/Costs.py +++ b/recommendations/Costs.py @@ -961,3 +961,22 @@ class Costs: "labour_hours": labour_hours, "labour_days": labour_days, } + + def celect_type_controls(self): + """ + Calculate the cost of installing Celect type controls + """ + + # The £50 cost is a rough estimate based on internet research + total_cost = 50 + subtotal_before_vat = total_cost / (1 + self.VAT_RATE) + vat = total_cost - subtotal_before_vat + + # We estimate the labour hours to be 4 + return { + "total": total_cost, + "subtotal": subtotal_before_vat, + "vat": vat, + "labour_hours": 4, + "labour_days": 1, + } diff --git a/recommendations/HeatingControlRecommender.py b/recommendations/HeatingControlRecommender.py index 4ee28d7e..3e9b9dbc 100644 --- a/recommendations/HeatingControlRecommender.py +++ b/recommendations/HeatingControlRecommender.py @@ -19,10 +19,16 @@ class HeatingControlRecommender: # This first iteration of the recommender will provide very basic recommendation # We recommend heating controls based on the main heating system - if heating_description in ["Room heaters, electric", "Electric storage heaters, radiators"]: + if heating_description in [ + "Room heaters, electric", "Electric storage heaters" + ]: self.recommend_room_heaters_electric_controls() return + if heating_description in ["Electric storage heaters, radiators"]: + self.recommend_celect_type_controls() + return + def recommend_room_heaters_electric_controls(self): """ If the home has Room heaters, electric, we start by identifying potential heating controls that could @@ -63,7 +69,6 @@ class HeatingControlRecommender: self.recommendation.append( { - "type": "heating_control", "description": "upgrade heating controls to Programmer and Appliance or Smart Thermostats", **self.costs.programmer_and_appliance_thermostat(has_programmer=has_programmer), "simulation_config": simulation_config @@ -72,3 +77,33 @@ class HeatingControlRecommender: # We don't implement any other recommendations right now return + + def recommend_celect_type_controls(self): + """ + If the home has Electric storage heaters, radiators, we start by identifying potential heating controls that + could + be upgraded, that would provide a practical impact. This will be the least invasive improvement. + + We can then consider the heating system itself + :return: + """ + + # We recommend upgrading to Celect type controls + ending_config = MainheatControlAttributes("Celect-type controls").process() + # We look at what has changed in the ending config, and compare it to the current config + simulation_config = check_simulation_difference( + new_config=ending_config, old_config=self.property.main_heating_controls + ) + # This upgrade will only take the heating system to average energy efficiency + simulation_config["mainheatc_energy_eff_ending"] = "Good" + + self.recommendation.append( + { + "description": "upgrade heating controls to Celect type controls", + **self.costs.celect_type_controls(), + "simulation_config": simulation_config + } + ) + + # We don't implement any other recommendations right now + return diff --git a/recommendations/HeatingRecommender.py b/recommendations/HeatingRecommender.py index ab7c76eb..68fed382 100644 --- a/recommendations/HeatingRecommender.py +++ b/recommendations/HeatingRecommender.py @@ -18,8 +18,12 @@ class HeatingRecommender: # This first iteration of the recommender will provide very basic recommendation # We recommend heating controls based on the main heating system if self.property.main_heating["clean_description"] == "Room heaters, electric": - self.recommend_room_heaters_electric(phase=phase, heating_controls_only=True) - self.recommend_electric_storage_heaters(phase=phase, heating_controls_only=False) + self.recommend_room_heaters_electric(phase=phase, system_change=False, heating_controls_only=True) + self.recommend_electric_storage_heaters(phase=phase, system_change=True, heating_controls_only=False) + return + + if self.property.main_heating["clean_description"] == "Electric storage heaters, radiators": + self.recommend_electric_storage_heaters(phase=phase, system_change=False, heating_controls_only=True) return @staticmethod @@ -37,7 +41,8 @@ class HeatingRecommender: @staticmethod def combine_heating_and_controls( - controls_recommendations, heating_simulation_config, costs, description, phase, heating_controls_only + controls_recommendations, heating_simulation_config, costs, description, phase, heating_controls_only, + system_change ): """ Given a recommendation for heating controls, and a recommendation for the heating system, we combine the two @@ -48,6 +53,9 @@ class HeatingRecommender: :param description: The description of the recommendation :param phase: The phase of the recommendation :param heating_controls_only: If True, we will also add a recommendation for heating controls only + :param system_change: Indicates if we are recommending a different type of heating system, compared to the + current system. If we have a system change and we have a heat control recommendation, we only recommend + both heating and controls together :return: """ @@ -57,6 +65,9 @@ class HeatingRecommender: if not heating_simulation_config: heating_controls_switch = [] + if system_change and len(controls_recommendations): + heating_controls_switch = [True] + output = [] for controls_switch in heating_controls_switch: total_costs = costs.copy() @@ -102,6 +113,10 @@ class HeatingRecommender: output.append( { "phase": phase, + "parts": [ + # TODO + ], + "type": "heating", "starting_u_value": None, "new_u_value": None, "sap_points": None, @@ -111,16 +126,36 @@ class HeatingRecommender: return output - def recommend_electric_storage_heaters(self, phase, heating_controls_only): + def recommend_electric_storage_heaters(self, phase, system_change, heating_controls_only): """ We recommend electric storage heaters as an upgrade to the heating system. + :param phase: The phase of the recommendation + :param system_change: Indicates if we are recommending a different type of heating system, compared to the + current system + :param heating_controls_only: Indicates if we should include a recommendation for just heating controls :return: """ controls_recommender = HeatingControlRecommender(self.property) - controls_recommender.recommend(heating_description="Room heaters, electric") + # The heating controls we're recommending for are based on the recommended heating system - if self.property.data["mainheat-energy-eff"] not in ["Poor", "Very Poor"]: + # We only recommend Celect-type controls if the current heating system is not Celect-type controls + if self.property.main_heating_controls["clean_description"] != "Celect-type controls": + controls_recommender.recommend(heating_description="Electric storage heaters, radiators") + + # Conditions for not needing this recommendation + efficient_room_heaters = self.property.main_heating["clean_description"] == "Room heaters, electric" and ( + self.property.data["mainheat-energy-eff"] not in ["Poor", "Very Poor", "Average"] + ) + + efficient_storage_heaters = ( + (self.property.main_heating["clean_description"] in [ + "Electric storage heaters, radiators", "Electric storage heaters" + ]) and self.property.data["mainheat-energy-eff"] not in ["Poor", "Very Poor", "Average"] + ) + + # Conditions for not recommending electric storage heaters + if efficient_room_heaters or efficient_storage_heaters: # We do just heating controls self.recommendations.extend( self.combine_heating_and_controls( @@ -140,7 +175,6 @@ class HeatingRecommender: new_config=heating_ending_config, old_config=self.property.main_heating ) # This upgrade will only take the heating system to average energy efficiency - heating_simulation_config["mainheatc_energy_eff_ending"] = "Good" heating_simulation_config["mainheat_energy_eff_ending"] = "Average" # Upgrade to electric storage heaters @@ -155,22 +189,28 @@ class HeatingRecommender: costs=costs, description=description, phase=phase, - heating_controls_only=heating_controls_only + heating_controls_only=heating_controls_only, + system_change=system_change ) self.recommendations.extend(recommendations) - def recommend_room_heaters_electric(self, phase, heating_controls_only): + def recommend_room_heaters_electric(self, phase, system_change, heating_controls_only): """ If the home has Room heaters, electric, we start by identifying potential heating controls that could be upgraded, that would provide a practical impact. This will be the least invasive improvement. We can then consider the heating system itself + :param phase: The phase of the recommendation + :param system_change: Indicates if we are recommending a different type of heating system, compared to the + current system + :param heating_controls_only: Indicates if we should include a recommendation for just heating controls :return: """ controls_recommender = HeatingControlRecommender(self.property) - controls_recommender.recommend(heating_description="Room heaters, electric") + if self.property.main_heating_controls["clean_description"] != "Programmer and appliance thermostats": + controls_recommender.recommend(heating_description='Room heaters, electric') if self.property.data["mainheat-energy-eff"] not in ["Poor", "Very Poor"]: # We do just heating controls @@ -189,7 +229,7 @@ class HeatingRecommender: costs = self.costs.electric_room_heaters( number_heated_rooms=self.property.data["number-heated-rooms"] ) - description = "Upgrade electric room heaters to more efficient electric radiators" + description = "Upgrade electric room heaters to efficient electric radiators" heating_simulation_config = {"mainheat_energy_eff_ending": "Average"} recommendations = self.combine_heating_and_controls( @@ -198,7 +238,8 @@ class HeatingRecommender: costs=costs, description=description, phase=phase, - heating_controls_only=heating_controls_only + heating_controls_only=heating_controls_only, + system_change=system_change ) self.recommendations.extend(recommendations) diff --git a/recommendations/Recommendations.py b/recommendations/Recommendations.py index 44be78f6..e5391626 100644 --- a/recommendations/Recommendations.py +++ b/recommendations/Recommendations.py @@ -57,6 +57,7 @@ class Recommendations: phase = 0 # Building Fabric + self.wall_recomender.recommend(phase=phase) if self.wall_recomender.recommendations: property_recommendations.append(self.wall_recomender.recommendations) phase += 1 diff --git a/recommendations/optimiser/GainOptimiser.py b/recommendations/optimiser/GainOptimiser.py index d5c8a5af..0db6b4ea 100644 --- a/recommendations/optimiser/GainOptimiser.py +++ b/recommendations/optimiser/GainOptimiser.py @@ -9,10 +9,20 @@ class GainOptimiser: This class is used to maximise gain, given a constrained cost """ - def __init__(self, components, max_cost): + def __init__(self, components, max_cost, max_gain=None): + """ + This function will try and maximise the gain, given a constrained cost. If we specific a max_gain, then the + optimisation routine is constained to try not to exceed a maximum increase + + :param components: List of components, where each component is a dictionary with keys "id", "cost" and "gain" + :param max_cost: Maximum cost constraint + :param max_gain: Maximum gain constraint + """ self.components = components self.max_cost = max_cost + self.max_gain = max_gain self.cost_constraint = None + self.max_gain_constraint = None self.m = None self.variables = [] self.solution = [] @@ -50,6 +60,15 @@ class GainOptimiser: self.cost_constraint = self.m.add_constr(cost_expression) + # Add an optional max gain constraint if max_gain is not None + if self.max_gain is not None: + max_gain_expression = xsum( + component['gain'] * var for group, group_vars in zip(self.components, self.variables) for component, var + in zip(group, group_vars) + ) <= self.max_gain + + self.max_gain_constraint = self.m.add_constr(max_gain_expression) + # This constraint ensures that at most one item from each group is selected # This is expressed by summing up the decision variables for each group and ensuring that the sum is <= 1 for group_vars in self.variables: diff --git a/recommendations/optimiser/optimiser_functions.py b/recommendations/optimiser/optimiser_functions.py index 03aa38bd..27838d6e 100644 --- a/recommendations/optimiser/optimiser_functions.py +++ b/recommendations/optimiser/optimiser_functions.py @@ -1,13 +1,17 @@ -def prepare_input_measures(property_recommendations, goal): +def prepare_input_measures(property_recommendations, goal, housing_type): """ Basic function to convert recommendations_to_upload to a format that is suitable for the optimiser - large :param property_recommendations: object containing the recommendations, created in the plan trigger api :param goal: goal to be optimised for, should be one of the keys in gain_map. E.g. if the gain is SAP points, the goal should reflect that desired gain + :param housing_type: type of housing the recommendations are for - should be one of "Social" or "Private" :return: Nested list of input measures """ + if housing_type not in ["Social", "Private"]: + raise ValueError("Invalid housing type - investigate me") + goal_map = { "Increase EPC": "sap_points" } @@ -16,6 +20,10 @@ def prepare_input_measures(property_recommendations, goal): if not goal_key: raise NotImplementedError("Not implemented this gain type - investigate me") + # We don't include suspended and solid floor insulation as possible measures in private housing, because + # of the need to decant the tenant + ignored_measures = ["suspended_floor_insulation", "solid_floor_insulation"] if housing_type == "Private" else [] + input_measures = [] for recs in property_recommendations: input_measures.append( @@ -26,7 +34,7 @@ def prepare_input_measures(property_recommendations, goal): "gain": rec[goal_key], "type": rec["type"] } - for rec in recs + for rec in recs if rec["type"] not in ignored_measures ] ) diff --git a/recommendations/recommendation_utils.py b/recommendations/recommendation_utils.py index 0d5f9743..21f704f8 100644 --- a/recommendations/recommendation_utils.py +++ b/recommendations/recommendation_utils.py @@ -544,7 +544,7 @@ def get_wall_type( return None -def estimate_external_wall_area(num_floors, floor_height, perimeter, built_form): +def estimate_external_wall_area(num_floors, floor_height, perimeter, built_form, property_type): """ This method estimates the external wall area based on fundamental assumptions about the home @@ -553,6 +553,7 @@ def estimate_external_wall_area(num_floors, floor_height, perimeter, built_form) :param floor_height: Height of one floor in meters. :param perimeter: Total perimeter of the building on one floor in meters. :param built_form: The built form of the property. This is used to determine the number of exposed walls. + :param property_type: The type of the property. This is used to determine the number of exposed walls. :return: """ wall_area_one_floor = perimeter * floor_height @@ -565,8 +566,11 @@ def estimate_external_wall_area(num_floors, floor_height, perimeter, built_form) 'Semi-Detached': 3, 'Detached': 4, } - - exposed_wall_area = total_wall_area * (number_exposed_walls.get(built_form, 3) / 4) + if built_form == "Detached" and property_type == "Flat": + # We don't have 4 exposed walls for a flat + exposed_wall_area = total_wall_area * (3 / 4) + else: + exposed_wall_area = total_wall_area * (number_exposed_walls.get(built_form, 3) / 4) return exposed_wall_area From c53e4ce8496f695fca3ee20134a73262b6d0736d Mon Sep 17 00:00:00 2001 From: Michael Duong Date: Tue, 20 Feb 2024 09:44:51 +0000 Subject: [PATCH 287/526] change scenario data --- backend/Property.py | 20 +++++++++++++------- etl/epc/Pipeline.py | 3 ++- etl/epc/generate_scenarios_data.py | 6 +++--- 3 files changed, 18 insertions(+), 11 deletions(-) diff --git a/backend/Property.py b/backend/Property.py index 418a35a1..c0f19ab5 100644 --- a/backend/Property.py +++ b/backend/Property.py @@ -128,16 +128,19 @@ class Property: It will be the same starting and ending EPC, as we don't have the expected EPC yet """ - difference_record = self.epc_record - self.epc_record + # difference_record = self.epc_record - self.epc_record # TODO: change these lower and replace in the settings file + print("CHANGE THE LATEST FIELD TO REMOVE NUMBER HABITABLE ROOMS IF WE WANT TO USE STARTING/ENDING") fixed_data_col_names = MANDATORY_FIXED_FEATURES + LATEST_FIELD print("NEED TO CHANGE THE DASH TO LOWER CASE") fixed_data_col_names = [x.lower().replace("_", "-") for x in fixed_data_col_names] fixed_data = {k.replace("-", "_"): v for k, v in self.data.items() if k in fixed_data_col_names} - difference_record.append_fixed_data(fixed_data) + # difference_record.append_fixed_data(fixed_data) + + difference_record = self.epc_record.create_EPCDifferenceRecord(self.epc_record, fixed_data) self.base_difference_record = TrainingDataset(datasets=[difference_record], cleaned_lookup=cleaned_lookup) @@ -238,12 +241,15 @@ class Property: # Note: often when the wall is insulatied, the internal/external insulation is not noted so we should # test the impact of using these booleans if recommendation["type"] == "external_wall_insulation": - output["external_insulation"] = True - output["internal_insulation"] = False + output["external_insulation_ending"] = True + output["internal_insulation_ending"] = False if recommendation["type"] == "internal_wall_insulation": - output["external_insulation"] = False - output["internal_insulation"] = True + output["external_insulation_ending"] = False + output["internal_insulation_ending"] = True + + if recommendation["type"] == "cavity_wall_insulation": + output['is_filled_cavity_ending'] = True # TODO: perhaps detrimental # When making a recommendation for the wall, we will also update the ventilation @@ -314,7 +320,7 @@ class Property: if recommendation["type"] == "low_energy_lighting": output["low_energy_lighting_ending"] = 100 - output["lighting_energy_eff_starting"] = "Very Good" + output["lighting_energy_eff_ending"] = "Very Good" if recommendation["type"] == "windows_glazing": output["multi_glaze_proportion_ending"] = 100 diff --git a/etl/epc/Pipeline.py b/etl/epc/Pipeline.py index 0943b206..ba228d89 100644 --- a/etl/epc/Pipeline.py +++ b/etl/epc/Pipeline.py @@ -24,7 +24,8 @@ from etl.epc.settings import ( # TODO: change in setting file MANDATORY_FIXED_FEATURES = [x.lower() for x in MANDATORY_FIXED_FEATURES] -LATEST_FIELD = [x.lower() for x in LATEST_FIELD if x.lower() not in ROOM_FEATURES] +# LATEST_FIELD = [x.lower() for x in LATEST_FIELD if x.lower() not in ROOM_FEATURES] +LATEST_FIELD = [x.lower() for x in LATEST_FIELD] COMPONENT_FEATURES = [x.lower() for x in COMPONENT_FEATURES] RDSAP_RESPONSE = RDSAP_RESPONSE.lower() HEAT_DEMAND_RESPONSE = HEAT_DEMAND_RESPONSE.lower() diff --git a/etl/epc/generate_scenarios_data.py b/etl/epc/generate_scenarios_data.py index afe9ab98..172e8a27 100644 --- a/etl/epc/generate_scenarios_data.py +++ b/etl/epc/generate_scenarios_data.py @@ -183,7 +183,7 @@ for scenario_property in scenario_properties: if "windows" in measure: for rec in windows_recommendations: - if rec["type"] == "windows": + if rec["type"] == "windows_glazing": windows_recs.append(rec) combi_list = [wall_recs, loft_recs, solar_recs, windows_recs] @@ -240,8 +240,8 @@ all_predictions = model_api.predict_all( prediction_buckets={ "sap_change_predictions": get_settings().SAP_PREDICTIONS_BUCKET, "heat_demand_predictions": get_settings().HEAT_PREDICTIONS_BUCKET, - "carbon_change_predictions": get_settings().CARBON_PREDICTIONS_BUCKET - } + "carbon_change_predictions": get_settings().CARBON_PREDICTIONS_BUCKET, + }, ) save_dataframe_to_s3_parquet( From 3dc5405b74d6f4ef82b340f53dfc715abeca2fdc Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Tue, 20 Feb 2024 13:52:28 +0000 Subject: [PATCH 288/526] optimisation bugs fixed and reviewed with kieran --- backend/Property.py | 1 - backend/app/plan/router.py | 1 - recommendations/HeatingRecommender.py | 11 ++++--- recommendations/optimiser/CostOptimiser.py | 4 ++- recommendations/optimiser/GainOptimiser.py | 38 ++++++++++++++++++---- recommendations/recommendation_utils.py | 10 ++---- 6 files changed, 44 insertions(+), 21 deletions(-) diff --git a/backend/Property.py b/backend/Property.py index efde7c18..45ed5198 100644 --- a/backend/Property.py +++ b/backend/Property.py @@ -623,7 +623,6 @@ class Property: floor_height=self.floor_height, perimeter=self.perimeter, built_form=self.data["built-form"], - property_type=self.data["property-type"], ) self.insulation_floor_area = self.floor_area / self.number_of_floors diff --git a/backend/app/plan/router.py b/backend/app/plan/router.py index a3f975be..375a551a 100644 --- a/backend/app/plan/router.py +++ b/backend/app/plan/router.py @@ -134,7 +134,6 @@ async def trigger_plan(body: PlanTriggerRequest): p.get_spatial_data(uprn_filenames) logger.info("Getting components and epc recommendations") - recommendations = {} recommendations_scoring_data = [] representative_recommendations = {} diff --git a/recommendations/HeatingRecommender.py b/recommendations/HeatingRecommender.py index 68fed382..d77e6b16 100644 --- a/recommendations/HeatingRecommender.py +++ b/recommendations/HeatingRecommender.py @@ -18,8 +18,9 @@ class HeatingRecommender: # This first iteration of the recommender will provide very basic recommendation # We recommend heating controls based on the main heating system if self.property.main_heating["clean_description"] == "Room heaters, electric": - self.recommend_room_heaters_electric(phase=phase, system_change=False, heating_controls_only=True) - self.recommend_electric_storage_heaters(phase=phase, system_change=True, heating_controls_only=False) + # Recommend high heat retention storage heaters + # self.recommend_room_heaters_electric(phase=phase, system_change=False, heating_controls_only=True) + # self.recommend_electric_storage_heaters(phase=phase, system_change=True, heating_controls_only=False) return if self.property.main_heating["clean_description"] == "Electric storage heaters, radiators": @@ -164,7 +165,8 @@ class HeatingRecommender: costs={}, description="", phase=phase, - heating_controls_only=heating_controls_only + heating_controls_only=heating_controls_only, + system_change=system_change ) ) return @@ -221,7 +223,8 @@ class HeatingRecommender: costs={}, description="", phase=phase, - heating_controls_only=heating_controls_only + heating_controls_only=heating_controls_only, + system_change=system_change ) ) return diff --git a/recommendations/optimiser/CostOptimiser.py b/recommendations/optimiser/CostOptimiser.py index 622d5b47..294a6bba 100644 --- a/recommendations/optimiser/CostOptimiser.py +++ b/recommendations/optimiser/CostOptimiser.py @@ -30,7 +30,9 @@ class CostOptimiser: :param min_gain: Numerical value for the minimum gain :return: """ - if min_gain <= 5: + if min_gain == 0: + return min_gain + elif min_gain <= 5: return min_gain + 0.5 elif min_gain <= 20: return min_gain + 1.5 diff --git a/recommendations/optimiser/GainOptimiser.py b/recommendations/optimiser/GainOptimiser.py index 0db6b4ea..6652ffbf 100644 --- a/recommendations/optimiser/GainOptimiser.py +++ b/recommendations/optimiser/GainOptimiser.py @@ -9,11 +9,15 @@ class GainOptimiser: This class is used to maximise gain, given a constrained cost """ - def __init__(self, components, max_cost, max_gain=None): + def __init__(self, components, max_cost, max_gain): """ This function will try and maximise the gain, given a constrained cost. If we specific a max_gain, then the optimisation routine is constained to try not to exceed a maximum increase + + If the maximum gain (`max_gain`) is explicitly set to 0, the optimization routine interprets this as an + instruction not to perform any optimization. + :param components: List of components, where each component is a dictionary with keys "id", "cost" and "gain" :param max_cost: Maximum cost constraint :param max_gain: Maximum gain constraint @@ -78,6 +82,10 @@ class GainOptimiser: # Remove the original cost constraint self.m.remove(self.cost_constraint) + if self.max_gain is not None: + # Remove the original max gain constraint + self.m.remove(self.max_gain_constraint) + # Add slack variable s = self.m.add_var(lb=0) @@ -99,18 +107,34 @@ class GainOptimiser: def solve(self): # Solve the problem + + if self.max_gain == 0: + logger.info("Max gain is set to 0, no optimisation will be performed") + # Nothing to do + return + self.m.optimize() - if self.m.status == OptimizationStatus.INFEASIBLE: - logger.info("We have an infeasible model, setting up slack model") - self.setup_slack() - self.m.optimize() - - self.solution = [ + solution = [ item for group, group_vars in zip(self.components, self.variables) for item, var in zip(group, group_vars) if var.x >= 0.99 ] + if (self.m.status == OptimizationStatus.INFEASIBLE) or ( + (self.m.status == OptimizationStatus.OPTIMAL) and not len(solution) + ): + logger.info("We have an infeasible model, setting up slack model") + self.setup_slack() + self.m.optimize() + solution = [ + item for group, group_vars in zip(self.components, self.variables) for item, var in + zip(group, group_vars) + if + var.x >= 0.99 + ] + + self.solution = solution + self.solution_gain = self.m.objective.x self.solution_cost = sum([component['cost'] for component in self.solution]) diff --git a/recommendations/recommendation_utils.py b/recommendations/recommendation_utils.py index 21f704f8..0d5f9743 100644 --- a/recommendations/recommendation_utils.py +++ b/recommendations/recommendation_utils.py @@ -544,7 +544,7 @@ def get_wall_type( return None -def estimate_external_wall_area(num_floors, floor_height, perimeter, built_form, property_type): +def estimate_external_wall_area(num_floors, floor_height, perimeter, built_form): """ This method estimates the external wall area based on fundamental assumptions about the home @@ -553,7 +553,6 @@ def estimate_external_wall_area(num_floors, floor_height, perimeter, built_form, :param floor_height: Height of one floor in meters. :param perimeter: Total perimeter of the building on one floor in meters. :param built_form: The built form of the property. This is used to determine the number of exposed walls. - :param property_type: The type of the property. This is used to determine the number of exposed walls. :return: """ wall_area_one_floor = perimeter * floor_height @@ -566,11 +565,8 @@ def estimate_external_wall_area(num_floors, floor_height, perimeter, built_form, 'Semi-Detached': 3, 'Detached': 4, } - if built_form == "Detached" and property_type == "Flat": - # We don't have 4 exposed walls for a flat - exposed_wall_area = total_wall_area * (3 / 4) - else: - exposed_wall_area = total_wall_area * (number_exposed_walls.get(built_form, 3) / 4) + + exposed_wall_area = total_wall_area * (number_exposed_walls.get(built_form, 3) / 4) return exposed_wall_area From 6933678810fe74f23c1d6c2dea71420f06f9b419 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Tue, 20 Feb 2024 20:16:56 +0000 Subject: [PATCH 289/526] Created high heat retention storage heaters recommendations + set up HotwaterRecommendations class --- backend/app/plan/router.py | 25 ++++- etl/customers/urban_splash.py | 30 +++--- etl/epc_clean/app.py | 2 - recommendations/Costs.py | 4 +- recommendations/HeatingControlRecommender.py | 20 ++-- recommendations/HeatingRecommender.py | 100 ++++--------------- recommendations/HotwaterRecommendations.py | 13 +++ recommendations/WallRecommendations.py | 13 +++ 8 files changed, 90 insertions(+), 117 deletions(-) create mode 100644 recommendations/HotwaterRecommendations.py diff --git a/backend/app/plan/router.py b/backend/app/plan/router.py index 375a551a..a75da345 100644 --- a/backend/app/plan/router.py +++ b/backend/app/plan/router.py @@ -42,6 +42,25 @@ logger = setup_logger() BATCH_SIZE = 5 + +def patch_epc(config, epc_records): + """ + This utility function is useful to patch the epc data if we have data from the customer + :return: + """ + + number_habitable_rooms = config.get("number-habitable-rooms", None) + number_heated_rooms = config.get("number-heated-rooms", None) + + if number_habitable_rooms is not None: + epc_records["original_epc"]["number-habitable-rooms"] = int(number_habitable_rooms) + + if number_heated_rooms is not None: + epc_records["original_epc"]["number-heated-rooms"] = int(number_heated_rooms) + + return epc_records + + router = APIRouter( prefix="/plan", tags=["plan"], @@ -56,6 +75,9 @@ async def trigger_plan(body: PlanTriggerRequest): session = sessionmaker(bind=db_engine)() created_at = datetime.now().isoformat() + # TODO: We should store the trigger file path in the database with the plan so we can track the file that + # triggered the plan + try: session.begin() logger.info("Getting the inputs") @@ -96,8 +118,7 @@ async def trigger_plan(body: PlanTriggerRequest): 'full_sap_epc': epc_searcher.full_sap_epc.copy(), 'old_data': epc_searcher.older_epcs.copy(), } - - # We can patch the data if we are provided data from the customer + epc_records = patch_epc(config, epc_records) prepared_epc = EPCRecord( epc_records=epc_records, diff --git a/etl/customers/urban_splash.py b/etl/customers/urban_splash.py index 85097ef7..96aad007 100644 --- a/etl/customers/urban_splash.py +++ b/etl/customers/urban_splash.py @@ -73,15 +73,26 @@ def app(): if newest_epc is None: raise Exception("FX ME") + if row["Beds"] == "Studio": + number_heated_rooms = 2 + number_habitable_rooms = 2 + else: + # Assume one room for communal space, one room for bathroom + number_heated_rooms = row["Beds"] + 2 + number_habitable_rooms = row["Beds"] + 2 + to_append = { **row.to_dict(), "uprn": newest_epc["uprn"], - "postcode to check": newest_epc["postcode"], + "address": newest_epc["address1"], + "postcode": newest_epc["postcode"], # "walls-description": newest_epc["walls-description"], # "roof-description": newest_epc["roof-description"], # "floor-description": newest_epc["floor-description"], # "total-floor-area": newest_epc["total-floor-area"], "full-address": newest_epc["address"], + "number-heated-rooms": number_heated_rooms, + "number-habitable-rooms": number_habitable_rooms, } processed_asset_list.append(to_append) @@ -92,23 +103,6 @@ def app(): epc_data_df = pd.DataFrame(epc_data) - example = epc_data_df.iloc[11, :] - rest = epc_data_df[epc_data_df["address1"] != example["address1"]] - z = rest[ - (rest["total-floor-area"] == example["total-floor-area"]) & - (rest["current-energy-rating"] == "C") - ] - # Walls better in the example - z["walls-description"] - example["walls-description"] - - # Example has a property above - z["roof-description"] - example["roof-description"] - - compare = pd.concat([pd.DataFrame(example).T, z]) - compare["mainheat-description"] - # We store this data # Store the data in s3 filename = f"{USER_ID}/{PORTFOLIO_ID}/test_inputs.csv" diff --git a/etl/epc_clean/app.py b/etl/epc_clean/app.py index bbb12d31..cf75f24a 100644 --- a/etl/epc_clean/app.py +++ b/etl/epc_clean/app.py @@ -36,9 +36,7 @@ def app(): cleaned_data = {} epc_directories = [entry for entry in EPC_DIRECTORY.iterdir() if entry.is_dir()] for directory in tqdm(epc_directories): - data = pd.read_csv(directory / "certificates.csv", low_memory=False) - # Rename the columns to the same format as the api returns data.columns = [c.replace("_", "-").lower() for c in data.columns] # Take just date before the date threshold diff --git a/recommendations/Costs.py b/recommendations/Costs.py index 1ae194a9..c94eb79c 100644 --- a/recommendations/Costs.py +++ b/recommendations/Costs.py @@ -935,7 +935,7 @@ class Costs: "labour_days": labour_days, } - def electric_storage_heaters(self, number_heated_rooms): + def high_heat_electric_storage_heaters(self, number_heated_rooms): """ We base the estimates for the cost of electric storage heaters on the cost per room as estimated by the @@ -946,7 +946,7 @@ class Costs: :param number_heated_rooms: int, number of rooms to be heated """ - total_cost = 1000 * number_heated_rooms + total_cost = 1500 * number_heated_rooms subtotal_before_vat = total_cost / (1 + self.VAT_RATE) vat = total_cost - subtotal_before_vat diff --git a/recommendations/HeatingControlRecommender.py b/recommendations/HeatingControlRecommender.py index 3e9b9dbc..81597f61 100644 --- a/recommendations/HeatingControlRecommender.py +++ b/recommendations/HeatingControlRecommender.py @@ -19,14 +19,12 @@ class HeatingControlRecommender: # This first iteration of the recommender will provide very basic recommendation # We recommend heating controls based on the main heating system - if heating_description in [ - "Room heaters, electric", "Electric storage heaters" - ]: + if heating_description in ["Room heaters, electric"]: self.recommend_room_heaters_electric_controls() return - if heating_description in ["Electric storage heaters, radiators"]: - self.recommend_celect_type_controls() + if heating_description in ["Electric storage heaters", "Electric storage heaters, radiators"]: + self.recommend_high_heat_retention_controls() return def recommend_room_heaters_electric_controls(self): @@ -78,18 +76,18 @@ class HeatingControlRecommender: # We don't implement any other recommendations right now return - def recommend_celect_type_controls(self): + def recommend_high_heat_retention_controls(self): """ - If the home has Electric storage heaters, radiators, we start by identifying potential heating controls that - could - be upgraded, that would provide a practical impact. This will be the least invasive improvement. + When applicable, we recommend upgrading the heating controls to high heat retention controls. This is a + specific type of control system that is designed to work with electric storage heaters. It is a more + efficient control system than the standard controls that come with electric storage heaters. We can then consider the heating system itself :return: """ # We recommend upgrading to Celect type controls - ending_config = MainheatControlAttributes("Celect-type controls").process() + ending_config = MainheatControlAttributes("Controls for high heat retention storage heaters").process() # We look at what has changed in the ending config, and compare it to the current config simulation_config = check_simulation_difference( new_config=ending_config, old_config=self.property.main_heating_controls @@ -99,7 +97,7 @@ class HeatingControlRecommender: self.recommendation.append( { - "description": "upgrade heating controls to Celect type controls", + "description": "upgrade heating controls to High Heat Retention Storage Heater Controls", **self.costs.celect_type_controls(), "simulation_config": simulation_config } diff --git a/recommendations/HeatingRecommender.py b/recommendations/HeatingRecommender.py index d77e6b16..11ae3da6 100644 --- a/recommendations/HeatingRecommender.py +++ b/recommendations/HeatingRecommender.py @@ -1,3 +1,5 @@ +import pandas as pd + from recommendations.Costs import Costs from recommendations.recommendation_utils import check_simulation_difference from backend.Property import Property @@ -17,14 +19,11 @@ class HeatingRecommender: self.recommendations = [] # This first iteration of the recommender will provide very basic recommendation # We recommend heating controls based on the main heating system - if self.property.main_heating["clean_description"] == "Room heaters, electric": + if self.property.main_heating["clean_description"] in [ + "Room heaters, electric", "Electric storage heaters", "Electric storage heaters, radiators" + ]: # Recommend high heat retention storage heaters - # self.recommend_room_heaters_electric(phase=phase, system_change=False, heating_controls_only=True) - # self.recommend_electric_storage_heaters(phase=phase, system_change=True, heating_controls_only=False) - return - - if self.property.main_heating["clean_description"] == "Electric storage heaters, radiators": - self.recommend_electric_storage_heaters(phase=phase, system_change=False, heating_controls_only=True) + self.recommend_electric_storage_heaters(phase=phase, system_change=True, heating_controls_only=False) return @staticmethod @@ -130,6 +129,9 @@ class HeatingRecommender: def recommend_electric_storage_heaters(self, phase, system_change, heating_controls_only): """ We recommend electric storage heaters as an upgrade to the heating system. + We will recommend upgrading to a high heat retention storage system, if the current system is not already + high heat retention storage + :param phase: The phase of the recommendation :param system_change: Indicates if we are recommending a different type of heating system, compared to the current system @@ -139,36 +141,20 @@ class HeatingRecommender: controls_recommender = HeatingControlRecommender(self.property) # The heating controls we're recommending for are based on the recommended heating system - + high_heat_retention_contols_desc = "Controls for high heat retention storage heaters" # We only recommend Celect-type controls if the current heating system is not Celect-type controls - if self.property.main_heating_controls["clean_description"] != "Celect-type controls": + if self.property.main_heating_controls["clean_description"] != high_heat_retention_contols_desc: controls_recommender.recommend(heating_description="Electric storage heaters, radiators") # Conditions for not needing this recommendation - efficient_room_heaters = self.property.main_heating["clean_description"] == "Room heaters, electric" and ( - self.property.data["mainheat-energy-eff"] not in ["Poor", "Very Poor", "Average"] - ) - - efficient_storage_heaters = ( - (self.property.main_heating["clean_description"] in [ - "Electric storage heaters, radiators", "Electric storage heaters" - ]) and self.property.data["mainheat-energy-eff"] not in ["Poor", "Very Poor", "Average"] + already_installed_hh_retention = ( + "Electric storage heaters" in self.property.main_heating["clean_description"] and + self.property.main_heating_controls["clean_description"].lower() == high_heat_retention_contols_desc.lower() ) # Conditions for not recommending electric storage heaters - if efficient_room_heaters or efficient_storage_heaters: - # We do just heating controls - self.recommendations.extend( - self.combine_heating_and_controls( - controls_recommendations=controls_recommender.recommendation, - heating_simulation_config={}, - costs={}, - description="", - phase=phase, - heating_controls_only=heating_controls_only, - system_change=system_change - ) - ) + if already_installed_hh_retention: + # No recommendation needed return # Set up artefacts, suitable for the simulation and regardless of controls @@ -180,60 +166,10 @@ class HeatingRecommender: heating_simulation_config["mainheat_energy_eff_ending"] = "Average" # Upgrade to electric storage heaters - costs = self.costs.electric_storage_heaters( + costs = self.costs.high_heat_electric_storage_heaters( number_heated_rooms=self.property.data["number-heated-rooms"] ) - description = "Install electric storage heaters" - - recommendations = self.combine_heating_and_controls( - controls_recommendations=controls_recommender.recommendation, - heating_simulation_config=heating_simulation_config, - costs=costs, - description=description, - phase=phase, - heating_controls_only=heating_controls_only, - system_change=system_change - ) - - self.recommendations.extend(recommendations) - - def recommend_room_heaters_electric(self, phase, system_change, heating_controls_only): - """ - If the home has Room heaters, electric, we start by identifying potential heating controls that could - be upgraded, that would provide a practical impact. This will be the least invasive improvement. - - We can then consider the heating system itself - :param phase: The phase of the recommendation - :param system_change: Indicates if we are recommending a different type of heating system, compared to the - current system - :param heating_controls_only: Indicates if we should include a recommendation for just heating controls - :return: - """ - - controls_recommender = HeatingControlRecommender(self.property) - if self.property.main_heating_controls["clean_description"] != "Programmer and appliance thermostats": - controls_recommender.recommend(heating_description='Room heaters, electric') - - if self.property.data["mainheat-energy-eff"] not in ["Poor", "Very Poor"]: - # We do just heating controls - self.recommendations.extend( - self.combine_heating_and_controls( - controls_recommendations=controls_recommender.recommendation, - heating_simulation_config={}, - costs={}, - description="", - phase=phase, - heating_controls_only=heating_controls_only, - system_change=system_change - ) - ) - return - - costs = self.costs.electric_room_heaters( - number_heated_rooms=self.property.data["number-heated-rooms"] - ) - description = "Upgrade electric room heaters to efficient electric radiators" - heating_simulation_config = {"mainheat_energy_eff_ending": "Average"} + description = "Install high heat retention electric storage heaters" recommendations = self.combine_heating_and_controls( controls_recommendations=controls_recommender.recommendation, diff --git a/recommendations/HotwaterRecommendations.py b/recommendations/HotwaterRecommendations.py new file mode 100644 index 00000000..b628f9a2 --- /dev/null +++ b/recommendations/HotwaterRecommendations.py @@ -0,0 +1,13 @@ +from backend.Property import Property +from recommendations.Costs import Costs + + +class HotwaterRecommendations: + def __init__(self, property_instance: Property): + self.property = property_instance + self.costs = Costs(self.property) + + self.recommendation = [] + + def recommend(self): + pass diff --git a/recommendations/WallRecommendations.py b/recommendations/WallRecommendations.py index 9b731af4..6b59c148 100644 --- a/recommendations/WallRecommendations.py +++ b/recommendations/WallRecommendations.py @@ -47,6 +47,12 @@ class WallRecommendations(Definitions): # we still consider it as an option U_VALUE_ERROR = 0.01 + # Typically when the U-value is around 0.75 and below, and the home is a new build, this is a good indication + # that the home is already insulated with at least some partial insulation. We don't recommend insulation + # in this case. This estimate was verified with the Warmfront team and 0.75 has been used as a conservative + # threshold + NEW_BUILD_INSULATED = 0.75 + def __init__( self, property_instance: Property, @@ -114,6 +120,13 @@ class WallRecommendations(Definitions): if self.property.walls["thermal_transmittance_unit"] != self.U_VALUE_UNIT: raise NotImplementedError("Haven't handled the case of other u value units yet") + + # If the property is a new build and the U-value is below 0.75, we don't recommend insulation because it's + # not practical + if (self.property.data["transaction-type"] == "new dwelling") and (u_value <= self.NEW_BUILD_INSULATED): + # Recommend nothing + return + # We can't detect it's a cavity wall, but it was built after 1990 so likely built with insulation already # + it already has a U-value WORSE than the building regulations, so we recommend either internal or # external wall insulation From 9f205e3dce06498cb28964a9a5e95b7037634cbc Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Tue, 20 Feb 2024 20:50:17 +0000 Subject: [PATCH 290/526] roughly implemented hot water insulation jacket tank insulation --- etl/epc_clean/app.py | 1 + recommendations/Costs.py | 18 +++++++++ recommendations/HotwaterRecommendations.py | 46 ++++++++++++++++++++-- recommendations/Recommendations.py | 2 + 4 files changed, 64 insertions(+), 3 deletions(-) diff --git a/etl/epc_clean/app.py b/etl/epc_clean/app.py index cf75f24a..53c1a329 100644 --- a/etl/epc_clean/app.py +++ b/etl/epc_clean/app.py @@ -35,6 +35,7 @@ def app(): cleaned_data = {} epc_directories = [entry for entry in EPC_DIRECTORY.iterdir() if entry.is_dir()] + for directory in tqdm(epc_directories): data = pd.read_csv(directory / "certificates.csv", low_memory=False) # Rename the columns to the same format as the api returns diff --git a/recommendations/Costs.py b/recommendations/Costs.py index c94eb79c..b2874f28 100644 --- a/recommendations/Costs.py +++ b/recommendations/Costs.py @@ -980,3 +980,21 @@ class Costs: "labour_hours": 4, "labour_days": 1, } + + def hot_water_tank_insulation(self): + """ + Calculate the cost of installing hot water tank insulation + """ + + # The £50 cost is a rough estimate based on internet research + total_cost = 50 + subtotal_before_vat = total_cost / (1 + self.VAT_RATE) + vat = total_cost - subtotal_before_vat + + return { + "total": total_cost, + "subtotal": subtotal_before_vat, + "vat": vat, + "labour_hours": 0, + "labour_days": 0, + } diff --git a/recommendations/HotwaterRecommendations.py b/recommendations/HotwaterRecommendations.py index b628f9a2..298671a2 100644 --- a/recommendations/HotwaterRecommendations.py +++ b/recommendations/HotwaterRecommendations.py @@ -7,7 +7,47 @@ class HotwaterRecommendations: self.property = property_instance self.costs = Costs(self.property) - self.recommendation = [] + self.recommendations = [] - def recommend(self): - pass + def recommend(self, phase): + """ + There are maybe a number of recommendations that are simultaneously applicable to the property. + If this is true then the phase may need to be incrememnted from within this recommendation + + :param phase: + :return: + """ + # Reset the recommendations + self.recommendations = [] + + # This first iteration of the recommender will provide very basic recommendation + # We recommend heating controls based on the main heating system + if (self.property.hotwater["heater_type"] in ["electric immersion"]) & \ + (self.property.data["hot-water-energy-eff"] == "Very Poor"): + self.recommend_tank_insulation(phase=phase) + return + + def recommend_tank_insulation(self, phase): + """ + If the home has a very poor hot water system, this is often indicative of a lack of insulation on the hot water + tank. This is a very simple and cost effective improvement that can be made to the home. + """ + + recommendation_cost = self.costs.hot_water_tank_insulation() + + self.recommendations.append( + { + "phase": phase, + "parts": [ + # TODO + ], + "type": "hot_water_tank_insulation", + "description": "Insulate the hot water tank with an insulation jacket", + "starting_u_value": None, + "new_u_value": None, + "sap_points": None, + **recommendation_cost, + "simulation_config": {"hot_water_energy_eff_ending": "Average"} + } + ) + return diff --git a/recommendations/Recommendations.py b/recommendations/Recommendations.py index e5391626..3ea29ca2 100644 --- a/recommendations/Recommendations.py +++ b/recommendations/Recommendations.py @@ -10,6 +10,7 @@ from recommendations.LightingRecommendations import LightingRecommendations from recommendations.SolarPvRecommendations import SolarPvRecommendations from recommendations.WindowsRecommendations import WindowsRecommendations from recommendations.HeatingRecommender import HeatingRecommender +from recommendations.HotwaterRecommendations import HotwaterRecommendations from backend.ml_models.AnnualBillSavings import AnnualBillSavings @@ -42,6 +43,7 @@ class Recommendations: self.windows_recommender = WindowsRecommendations(property_instance=property_instance, materials=materials) self.solar_recommender = SolarPvRecommendations(property_instance=property_instance) self.heating_recommender = HeatingRecommender(property_instance=property_instance) + self.hotwater_recommender = HotwaterRecommendations(property_instance=property_instance) def recommend(self): From 80a542f02eaa48bf64328b280e5e250019b926ac Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Wed, 21 Feb 2024 11:46:24 +0000 Subject: [PATCH 291/526] Creating utility functions to produce slides --- backend/Property.py | 6 +- backend/app/plan/router.py | 2 + etl/customers/slide_utils.py | 65 +++++++++++++++++++ .../asset_list.py} | 0 etl/customers/urban_splash/slides.py | 26 ++++++++ recommendations/Recommendations.py | 37 ++++++----- 6 files changed, 118 insertions(+), 18 deletions(-) create mode 100644 etl/customers/slide_utils.py rename etl/customers/{urban_splash.py => urban_splash/asset_list.py} (100%) create mode 100644 etl/customers/urban_splash/slides.py diff --git a/backend/Property.py b/backend/Property.py index 45ed5198..47e885aa 100644 --- a/backend/Property.py +++ b/backend/Property.py @@ -343,7 +343,7 @@ class Property: else: output["glazed_type_ending"] = "double glazing installed during or after 2002" - if recommendation["type"] == "heating": + if recommendation["type"] in ["heating", "hot_water_tank_insulation"]: # We update the data, as defined in the recommendaton simulation_config = recommendation["simulation_config"] @@ -363,9 +363,9 @@ class Property: "internal_wall_insulation", "external_wall_insulation", "cavity_wall_insulation", "loft_insulation", "room_roof_insulation", "flat_roof_insulation", "solid_floor_insulation", "suspended_floor_insulation", "exposed_floor_insulation", - "windows_glazing", "solar_pv", "heating", + "windows_glazing", "solar_pv", "heating", "hot_water_tank_insulation" ]: - raise NotImplementedError("Implement me") + raise NotImplementedError("Implement me, given type %s" % recommendation["type"]) output['id'] = "+".join([str(property_id), str(primary_recommendation_id)]) diff --git a/backend/app/plan/router.py b/backend/app/plan/router.py index a75da345..a79af32b 100644 --- a/backend/app/plan/router.py +++ b/backend/app/plan/router.py @@ -78,6 +78,8 @@ async def trigger_plan(body: PlanTriggerRequest): # TODO: We should store the trigger file path in the database with the plan so we can track the file that # triggered the plan + # TODO: Create the ability to congigure/switch off certain measures + try: session.begin() logger.info("Getting the inputs") diff --git a/etl/customers/slide_utils.py b/etl/customers/slide_utils.py new file mode 100644 index 00000000..55e7659a --- /dev/null +++ b/etl/customers/slide_utils.py @@ -0,0 +1,65 @@ +import matplotlib.pyplot as plt +from sqlalchemy.orm import Session +from backend.app.db.utils import row2dict +from backend.app.db.models.portfolio import PropertyModel + +EPC_COLOURS = { + "A": "#008054", + "B": "#1ab559", + "C": "#8ccf45", + "D": "#ffd600", + "E": "#fcab66", + "F": "#f08024", + "G": "#e8143b" +} + + +def get_properties_by_portfolio_id(session: Session, portfolio_id: int): + """ + This function retrieves all properties associated with a given portfolio_id. + + :param session: The SQLAlchemy session used to execute the query. + :param portfolio_id: The ID of the portfolio for which to retrieve properties. + :return: A list of dictionaries, where each dictionary represents a property. + Returns an empty list if no properties are found. + """ + properties = session.query(PropertyModel).filter(PropertyModel.portfolio_id == portfolio_id).all() + + # Convert the SQLAlchemy objects to dictionaries + properties_dict = [row2dict(p) for p in properties] if properties else [] + + return properties_dict + + +def plot_epc_distribution(df, title='Your units', figsize=(10, 6)): + """ + Plots a horizontal bar chart of EPC rating distribution with percentages annotated on the bars. + + :param df: DataFrame with columns ['current_epc_rating', 'count', 'percentage'] + :param title: Title of the plot (default is 'EPC Rating Distribution by Percentage') + :param figsize: Figure size as a tuple (default is (10, 6)) + """ + # Sort the DataFrame for a consistent plotting order + df_sorted = df.sort_values('percentage', ascending=True) + + colors = df_sorted['current_epc_rating'].map(EPC_COLOURS) # Map the EPC ratings to colors + + # Create the horizontal bar chart + plt.figure(figsize=figsize) + bars = plt.barh(df_sorted['current_epc_rating'], df_sorted['percentage'], color=colors) + + # Annotate the bars with percentage values + for bar in bars: + width = bar.get_width() + label_x_pos = width + 1 # Adjust the offset for the label if necessary + plt.text(label_x_pos, bar.get_y() + bar.get_height() / 2, f'{width}%', va='center') + + # Customize the plot aesthetics for better readability and presentation + plt.xlabel('Percentage') + plt.ylabel('EPC Rating') + plt.title(title) + plt.tight_layout() # Adjust layout to not cut off labels + plt.grid(axis='x', linestyle='--') # Add a light grid for better readability + + # Show the plot + plt.show() diff --git a/etl/customers/urban_splash.py b/etl/customers/urban_splash/asset_list.py similarity index 100% rename from etl/customers/urban_splash.py rename to etl/customers/urban_splash/asset_list.py diff --git a/etl/customers/urban_splash/slides.py b/etl/customers/urban_splash/slides.py new file mode 100644 index 00000000..fa0df3c2 --- /dev/null +++ b/etl/customers/urban_splash/slides.py @@ -0,0 +1,26 @@ +""" +This script contains the code to generate the data required to populate the slides +We connect to the database amd extract the data for the portfolio needed so it is recommended to use +a environment akin to the backend to run this script +""" +import pandas as pd +from backend.app.db.connection import db_engine +from sqlalchemy.orm import sessionmaker +from etl.customers.slide_utils import get_properties_by_portfolio_id, plot_epc_distribution + +PORTFOLIO_ID = 66 + + +def app(): + # Connect to database + session = sessionmaker(bind=db_engine)() + + # Get the properties for the portfolio + properties = get_properties_by_portfolio_id(session, PORTFOLIO_ID) + + # The first visual we want to produce is a horizontal bar chart showing the number of properties at each current + # EPC band + + properties_df = pd.DataFrame(properties) + epc_rating_summary = properties_df.groupby("current_epc_rating").size().reset_index(name="count") + epc_rating_summary["percentage"] = epc_rating_summary["count"] / epc_rating_summary["count"].sum() * 100 diff --git a/recommendations/Recommendations.py b/recommendations/Recommendations.py index 3ea29ca2..f785b31d 100644 --- a/recommendations/Recommendations.py +++ b/recommendations/Recommendations.py @@ -58,21 +58,22 @@ class Recommendations: property_recommendations = [] phase = 0 - # Building Fabric - self.wall_recomender.recommend(phase=phase) - if self.wall_recomender.recommendations: - property_recommendations.append(self.wall_recomender.recommendations) - phase += 1 - - # Ventilation recommendations - # We only produce a ventilation recommendation if the property is recommended to have wall or roof insulation - # We will not attribute a SAP impact to the ventilation recommendation, since we've seen that this has no - # real impact on the SAP score. Therefore, we don't need to include phasing for ventilation. If we have any - # wall or roof recommendations, we will ensure that ventilation is included in the simulation - if self.wall_recomender.recommendations or self.roof_recommender.recommendations: - self.ventilation_recomender.recommend() - if self.ventilation_recomender.recommendation: - property_recommendations.append(self.ventilation_recomender.recommendation) + print("WALL RECOMMENDATIONS HAVE BEEN COMMENTED OUT TEMPORARILY - ADD ME BACK IN") + # # Building Fabric + # self.wall_recomender.recommend(phase=phase) + # if self.wall_recomender.recommendations: + # property_recommendations.append(self.wall_recomender.recommendations) + # phase += 1 + # + # # Ventilation recommendations + # # We only produce a ventilation recommendation if the property is recommended to have wall or roof insulation + # # We will not attribute a SAP impact to the ventilation recommendation, since we've seen that this has no + # # real impact on the SAP score. Therefore, we don't need to include phasing for ventilation. If we have any + # # wall or roof recommendations, we will ensure that ventilation is included in the simulation + # if self.wall_recomender.recommendations or self.roof_recommender.recommendations: + # self.ventilation_recomender.recommend() + # if self.ventilation_recomender.recommendation: + # property_recommendations.append(self.ventilation_recomender.recommendation) self.roof_recommender.recommend(phase=phase) if self.roof_recommender.recommendations: @@ -100,6 +101,12 @@ class Recommendations: property_recommendations.append(self.heating_recommender.recommendations) phase += 1 + # Hot water + self.hotwater_recommender.recommend(phase=phase) + if self.hotwater_recommender.recommendations: + property_recommendations.append(self.hotwater_recommender.recommendations) + phase += 1 + self.lighting_recommender.recommend(phase=phase) if self.lighting_recommender.recommendation: property_recommendations.append(self.lighting_recommender.recommendation) From 0b8da8d8bea26b3d9cc097864257f9b5789e3958 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Wed, 21 Feb 2024 13:55:28 +0000 Subject: [PATCH 292/526] slide script wip --- etl/customers/slide_utils.py | 126 +++++++++++++++++++-------- etl/customers/urban_splash/slides.py | 61 ++++++++++++- 2 files changed, 149 insertions(+), 38 deletions(-) diff --git a/etl/customers/slide_utils.py b/etl/customers/slide_utils.py index 55e7659a..d41f4f3b 100644 --- a/etl/customers/slide_utils.py +++ b/etl/customers/slide_utils.py @@ -1,65 +1,119 @@ import matplotlib.pyplot as plt from sqlalchemy.orm import Session from backend.app.db.utils import row2dict -from backend.app.db.models.portfolio import PropertyModel +from backend.app.db.models.portfolio import PropertyModel, PropertyDetailsEpcModel +from backend.app.db.models.recommendations import Recommendation EPC_COLOURS = { - "A": "#008054", - "B": "#1ab559", - "C": "#8ccf45", - "D": "#ffd600", - "E": "#fcab66", - "F": "#f08024", - "G": "#e8143b" + "A": "#028051", + "B": "#14b759", + "C": "#8ecd46", + "D": "#fdd401", + "E": "#fdab67", + "F": "#ee8023", + "G": "#e71437" } -def get_properties_by_portfolio_id(session: Session, portfolio_id: int): +def get_properties_with_default_recommendations(session: Session, portfolio_id: int): """ - This function retrieves all properties associated with a given portfolio_id. + Fetch properties for a given portfolio_id along with their default recommendations, + minimizing database queries. :param session: The SQLAlchemy session used to execute the query. - :param portfolio_id: The ID of the portfolio for which to retrieve properties. - :return: A list of dictionaries, where each dictionary represents a property. - Returns an empty list if no properties are found. + :param portfolio_id: The ID of the portfolio for which to retrieve properties and recommendations. + :return: A list of dictionaries, where each dictionary represents a property including + its associated default recommendations. """ - properties = session.query(PropertyModel).filter(PropertyModel.portfolio_id == portfolio_id).all() + # Perform a query that joins PropertyModel and Recommendation, filtering by portfolio_id and default=True + query = session.query(PropertyModel, Recommendation).join(Recommendation, isouter=True) \ + .filter(PropertyModel.portfolio_id == portfolio_id, Recommendation.default == True) \ + .all() + + # Process the query results + properties = {} + for property, recommendation in query: + # Check if the property is already added to the dictionary + if property.id not in properties: + properties[property.id] = row2dict(property) + properties[property.id]['recommendations'] = [] + + # Add recommendation to the property if it exists + if recommendation: + properties[property.id]['recommendations'].append(row2dict(recommendation)) + + return list(properties.values()) + + +def get_property_details_by_portfolio_id(session: Session, portfolio_id: int): + """ + This function retrieves all property details associated with a given portfolio_id. + + :param session: The SQLAlchemy session used to execute the query. + :param portfolio_id: The ID of the portfolio for which to retrieve property details. + :return: A list of dictionaries, where each dictionary represents a property's details. + Returns an empty list if no property details are found. + """ + property_details = session.query(PropertyDetailsEpcModel).filter( + PropertyDetailsEpcModel.portfolio_id == portfolio_id).all() # Convert the SQLAlchemy objects to dictionaries - properties_dict = [row2dict(p) for p in properties] if properties else [] + property_details_dict = [row2dict(pd) for pd in property_details] if property_details else [] - return properties_dict + return property_details_dict -def plot_epc_distribution(df, title='Your units', figsize=(10, 6)): +def plot_epc_distribution(df, title='Your Units', background_color='white', bar_height=0.4, font_size=15): """ - Plots a horizontal bar chart of EPC rating distribution with percentages annotated on the bars. + Plots a horizontal bar chart of EPC rating distribution with adjustable bar thickness and text sizes. + Allows setting the plot background color and dynamically adjusts text size and bar spacing. :param df: DataFrame with columns ['current_epc_rating', 'count', 'percentage'] - :param title: Title of the plot (default is 'EPC Rating Distribution by Percentage') - :param figsize: Figure size as a tuple (default is (10, 6)) + :param title: Title of the plot + :param background_color: Background color of the plot + :param bar_height: Thickness of the bars (default 0.4) + :param font_size: Base font size for text annotations (default 15) """ - # Sort the DataFrame for a consistent plotting order + # Calculate dynamic figure size or adjust based on preferences + square_size = max(6, len(df) * 0.6) # Ensure minimum size and adjust based on number of entries + fig, ax = plt.subplots(figsize=(square_size, square_size)) + fig.patch.set_facecolor(background_color) # Set figure background color + ax.set_facecolor(background_color) # Set axes background color + + df['percentage'] = df['percentage'].round(1) # Round the percentage values to 1 decimal place df_sorted = df.sort_values('percentage', ascending=True) - colors = df_sorted['current_epc_rating'].map(EPC_COLOURS) # Map the EPC ratings to colors + # Plot bars with specified height for adjustable thickness + bars = ax.barh(df_sorted['current_epc_rating'], df_sorted['percentage'], + color=df_sorted['current_epc_rating'].map(EPC_COLOURS), edgecolor='none', height=bar_height) - # Create the horizontal bar chart - plt.figure(figsize=figsize) - bars = plt.barh(df_sorted['current_epc_rating'], df_sorted['percentage'], color=colors) + epc_rating_font_size = font_size * 2 # EPC rating font size larger than base font size + count_percentage_font_size = font_size # Count (percentage) font size as base font size - # Annotate the bars with percentage values - for bar in bars: + # Annotate bars with EPC ratings inside and count with percentage values outside + for index, bar in enumerate(bars): width = bar.get_width() - label_x_pos = width + 1 # Adjust the offset for the label if necessary - plt.text(label_x_pos, bar.get_y() + bar.get_height() / 2, f'{width}%', va='center') + epc_rating = df_sorted.iloc[index]['current_epc_rating'] + count = df_sorted.iloc[index]['count'] + percentage = df_sorted.iloc[index]['percentage'] - # Customize the plot aesthetics for better readability and presentation - plt.xlabel('Percentage') - plt.ylabel('EPC Rating') - plt.title(title) - plt.tight_layout() # Adjust layout to not cut off labels - plt.grid(axis='x', linestyle='--') # Add a light grid for better readability + # EPC rating inside the bar with increased font size + ax.text(width - (width * 0.05), bar.get_y() + bar.get_height() / 2, + f"{epc_rating}", va='center', ha='right', color='white', fontsize=epc_rating_font_size) - # Show the plot + # Count and percentage outside the bar, original font size + ax.text(width + 1, bar.get_y() + bar.get_height() / 2, + f"{count} ({percentage}%)", va='center', color='black', fontsize=count_percentage_font_size) + + ax.set_title(title, fontsize=font_size * 1.2) # Adjust title font size proportionally + ax.tick_params(axis='x', which='both', bottom=False, top=False, + labelbottom=False) # Remove x-axis tick marks and values + ax.tick_params(axis='y', which='both', left=False, right=False, + labelleft=False) # Remove y-axis tick marks and labels + ax.spines['top'].set_visible(False) # Remove top spine + ax.spines['right'].set_visible(False) # Remove right spine + ax.spines['left'].set_visible(False) # Remove left spine + ax.spines['bottom'].set_visible(False) # Remove bottom spine + + plt.tight_layout() # Adjust layout plt.show() diff --git a/etl/customers/urban_splash/slides.py b/etl/customers/urban_splash/slides.py index fa0df3c2..f036fa5a 100644 --- a/etl/customers/urban_splash/slides.py +++ b/etl/customers/urban_splash/slides.py @@ -6,7 +6,11 @@ a environment akin to the backend to run this script import pandas as pd from backend.app.db.connection import db_engine from sqlalchemy.orm import sessionmaker -from etl.customers.slide_utils import get_properties_by_portfolio_id, plot_epc_distribution +from etl.customers.slide_utils import ( + plot_epc_distribution, + get_property_details_by_portfolio_id, + get_properties_with_default_recommendations +) PORTFOLIO_ID = 66 @@ -15,8 +19,12 @@ def app(): # Connect to database session = sessionmaker(bind=db_engine)() + ######################################################################## + # Get the data we need + ######################################################################## + # Get the properties for the portfolio - properties = get_properties_by_portfolio_id(session, PORTFOLIO_ID) + properties = get_properties_with_default_recommendations(session, PORTFOLIO_ID) # The first visual we want to produce is a horizontal bar chart showing the number of properties at each current # EPC band @@ -24,3 +32,52 @@ def app(): properties_df = pd.DataFrame(properties) epc_rating_summary = properties_df.groupby("current_epc_rating").size().reset_index(name="count") epc_rating_summary["percentage"] = epc_rating_summary["count"] / epc_rating_summary["count"].sum() * 100 + + # We now pull the data for the property details + property_details = get_property_details_by_portfolio_id(session, PORTFOLIO_ID) + property_details_df = pd.DataFrame(property_details) + + ######################################################################## + # We pull out the data for the slides + ######################################################################## + + ############ + # Slide 1: + ############ + # visual + plot_epc_distribution(epc_rating_summary, title="", background_color="white", bar_height=0.75, font_size=15) + + # floor area - upper and lower bounds + min_area, max_area, average_area = ( + property_details_df["total_floor_area"].min(), + property_details_df["total_floor_area"].max(), + property_details_df["total_floor_area"].median() + ) + + # Annual energy consumption - upper and lower bounds + min_energy_consumption, max_energy_consumption, average_consumption = ( + property_details_df["adjusted_energy_consumption"].min(), + property_details_df["adjusted_energy_consumption"].max(), + property_details_df["adjusted_energy_consumption"].median() + ) + + # Co2 emissions - upper and lower bounds + min_co2, max_co2, average_co2 = ( + property_details_df["co2_emissions"].min(), + property_details_df["co2_emissions"].max(), + property_details_df["co2_emissions"].median() + ) + + # Valuation: upper and lower bounds - TODO! + min_valuation, max_valuation, average_valuation = 0, 0, 0 + + ############ + # Slide 2: + ############ + # What it would take to hit EPC C + + # This is the number of properties that are below a C + n_units = properties_df[properties_df["current_epc_rating"].isin(["D", "E", "F", "G"])].shape[0] + + # We calculate the number of units that will make it to an EPC C + n_units_to_epc_c = () From c0b1acef98b437f63d380dabca233660bb125296 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Wed, 21 Feb 2024 16:47:14 +0000 Subject: [PATCH 293/526] working on slides code and added valuations for urban splash --- backend/ml_models/Valuation.py | 23 ++++ etl/customers/slide_utils.py | 90 ++++++++++++++-- etl/customers/urban_splash/slides.py | 154 ++++++++++++++++++++++++--- 3 files changed, 242 insertions(+), 25 deletions(-) diff --git a/backend/ml_models/Valuation.py b/backend/ml_models/Valuation.py index 83c20bb4..dd5322e3 100644 --- a/backend/ml_models/Valuation.py +++ b/backend/ml_models/Valuation.py @@ -24,6 +24,29 @@ class PropertyValuation: 100120703802: 277000, # Based on Zoopla 10014469685: 286000, # Based on Zoopla 10001328782: 196000, # Based on Zoopla + # Urban Splash - valuations from The Move Market + 10023345430: 74_000, + 10023345435: 99_000, + 10023345436: 62_000, + 10023345441: 62_000, + 10094183503: 2_988_000, + 10094183499: 123_000, + 10070056824: 70_000, + 110070056242: 100_000, + 10070056243: 130_000, + 10070056817: 130_000, + 10094183501: 185_000, + 10070056250: 71_000, + 10094183500: 185_000, + 10070056843: 67_000, + 10070056844: 67_000, + 10070056241: 76_000, + 10070056834: 63_000, + 10023345439: 62_000, + 10070056815: 101_000, + 10070056816: 101_000, + 10094183498: 101_000, + 10070056840: 673_000, } # We base our valuation uplifts on a number of sources diff --git a/etl/customers/slide_utils.py b/etl/customers/slide_utils.py index d41f4f3b..1a2a894e 100644 --- a/etl/customers/slide_utils.py +++ b/etl/customers/slide_utils.py @@ -1,5 +1,9 @@ +import os +from pptx import Presentation +from pptx.util import Inches, Pt import matplotlib.pyplot as plt from sqlalchemy.orm import Session +from sqlalchemy.sql import true from backend.app.db.utils import row2dict from backend.app.db.models.portfolio import PropertyModel, PropertyDetailsEpcModel from backend.app.db.models.recommendations import Recommendation @@ -18,28 +22,30 @@ EPC_COLOURS = { def get_properties_with_default_recommendations(session: Session, portfolio_id: int): """ Fetch properties for a given portfolio_id along with their default recommendations, - minimizing database queries. + ensuring that all properties are retrieved even if they don't have recommendations + where default is True. :param session: The SQLAlchemy session used to execute the query. :param portfolio_id: The ID of the portfolio for which to retrieve properties and recommendations. :return: A list of dictionaries, where each dictionary represents a property including - its associated default recommendations. + its associated default recommendations if any. """ - # Perform a query that joins PropertyModel and Recommendation, filtering by portfolio_id and default=True - query = session.query(PropertyModel, Recommendation).join(Recommendation, isouter=True) \ - .filter(PropertyModel.portfolio_id == portfolio_id, Recommendation.default == True) \ + # Adjust the join to correctly filter recommendations while including all properties + query = session.query(PropertyModel, Recommendation).outerjoin(Recommendation, + (Recommendation.property_id == PropertyModel.id) & ( + Recommendation.default == true())) \ + .filter(PropertyModel.portfolio_id == portfolio_id) \ .all() - # Process the query results properties = {} for property, recommendation in query: - # Check if the property is already added to the dictionary + # Ensure the property is added once with an empty list of recommendations initially if property.id not in properties: properties[property.id] = row2dict(property) properties[property.id]['recommendations'] = [] - # Add recommendation to the property if it exists - if recommendation: + # Append recommendations if they exist and meet the criteria (already filtered by the query) + if recommendation and recommendation.default: properties[property.id]['recommendations'].append(row2dict(recommendation)) return list(properties.values()) @@ -63,7 +69,7 @@ def get_property_details_by_portfolio_id(session: Session, portfolio_id: int): return property_details_dict -def plot_epc_distribution(df, title='Your Units', background_color='white', bar_height=0.4, font_size=15): +def plot_epc_distribution(df, customer_key, title='Your Units', background_color='white', bar_height=0.4, font_size=15): """ Plots a horizontal bar chart of EPC rating distribution with adjustable bar thickness and text sizes. Allows setting the plot background color and dynamically adjusts text size and bar spacing. @@ -117,3 +123,67 @@ def plot_epc_distribution(df, title='Your Units', background_color='white', bar_ plt.tight_layout() # Adjust layout plt.show() + + # Save the figure as an image + figure_path = f'etl/customers/{customer_key}/epc_distribution_plot.png' + fig.savefig(figure_path, bbox_inches='tight') + plt.close(fig) # Close the figure to free memory + + return fig, figure_path + + +def save_plot_to_image(figure, path='plot.png'): + """ + Saves a matplotlib figure to an image file for insertion into PowerPoint. + """ + figure.savefig(path, bbox_inches='tight') + plt.close(figure) + + +def save_figure_as_image(figure, filename='temp_plot.png'): + """ + Saves a matplotlib figure to an image file. + """ + figure.savefig(filename, dpi=300) + plt.close(figure) # Close the figure to prevent it from displaying in notebooks or Python environments + + +def add_slide_with_image(prs, title, img_path=None, commentary=None): + """ + Adds a slide with an image and optional commentary. + """ + slide_layout = prs.slide_layouts[5] # Title and Content layout + slide = prs.slides.add_slide(slide_layout) + title_placeholder = slide.shapes.title + title_placeholder.text = title + + # Add the image + if img_path: + slide.shapes.add_picture(img_path, Inches(1), Inches(1.5), Inches(8), Inches(4.5)) + + # Add commentary if provided + if commentary: + txBox = slide.shapes.add_textbox(Inches(1), Inches(6), Inches(8), Inches(1)) + tf = txBox.text_frame + p = tf.add_paragraph() + p.text = commentary + p.font.size = Pt(14) # Adjust font size as needed + + +def create_powerpoint(data, save_location): + """ + Creates a PowerPoint presentation based on provided data and optional commentaries. + + :param data: A dictionary containing the data needed for each slide. + :param save_location: The file path where the PowerPoint presentation will be saved. + """ + prs = Presentation() + + for slide, slide_data in data.items(): + slide_figure_path = data[slide].get('image_path') + text = data[slide].get('text') + title = data[slide].get('title', "") + add_slide_with_image(prs, title, slide_figure_path, text) + + # Save the presentation + prs.save(save_location) diff --git a/etl/customers/urban_splash/slides.py b/etl/customers/urban_splash/slides.py index f036fa5a..616939b2 100644 --- a/etl/customers/urban_splash/slides.py +++ b/etl/customers/urban_splash/slides.py @@ -4,15 +4,21 @@ We connect to the database amd extract the data for the portfolio needed so it i a environment akin to the backend to run this script """ import pandas as pd +import numpy as np from backend.app.db.connection import db_engine +from backend.app.utils import sap_to_epc from sqlalchemy.orm import sessionmaker from etl.customers.slide_utils import ( plot_epc_distribution, get_property_details_by_portfolio_id, - get_properties_with_default_recommendations + get_properties_with_default_recommendations, + create_powerpoint ) PORTFOLIO_ID = 66 +EPC_TARGET = "C" +SAP_TARGET = 69 +CUSTOMER_KEY = "urban_splash" def app(): @@ -25,18 +31,45 @@ def app(): # Get the properties for the portfolio properties = get_properties_with_default_recommendations(session, PORTFOLIO_ID) - - # The first visual we want to produce is a horizontal bar chart showing the number of properties at each current - # EPC band - properties_df = pd.DataFrame(properties) - epc_rating_summary = properties_df.groupby("current_epc_rating").size().reset_index(name="count") - epc_rating_summary["percentage"] = epc_rating_summary["count"] / epc_rating_summary["count"].sum() * 100 # We now pull the data for the property details property_details = get_property_details_by_portfolio_id(session, PORTFOLIO_ID) property_details_df = pd.DataFrame(property_details) + # Unnest the recommendations. Each recommendation is a list of dictionaries + recommendations_exploded = properties_df["recommendations"].explode().tolist() + recommendations_df = pd.DataFrame([r for r in recommendations_exploded if not pd.isnull(r)]) + # Aggregate the impact of the recommendations + # We want: + # Total number of sap points + # total valuation impact + # total bill savings + # total cost + # Total Co2 impact + recommendations_summary = recommendations_df.groupby(["property_id"]).agg( + total_sap_points=("sap_points", "sum"), + total_valuation_impact=("property_valuation_increase", "sum"), + total_bill_savings=("energy_cost_savings", "sum"), + total_cost=("estimated_cost", "sum"), + total_carbon=("co2_equivalent_savings", "sum") + ).reset_index() + # Merge on current sap points + recommendations_summary = recommendations_summary.merge( + properties_df[["id", "uprn", "current_sap_points"]].rename(columns={"id": "property_id"}), on="property_id", + how="left" + ) + recommendations_summary["expected_sap_points"] = ( + recommendations_summary["current_sap_points"] + recommendations_summary["total_sap_points"] + ) + recommendations_summary["expected_epc_rating"] = recommendations_summary["expected_sap_points"].apply( + lambda x: sap_to_epc(x) + ) + recommendations_summary["sap_difference"] = SAP_TARGET - recommendations_summary["expected_sap_points"] + + epc_rating_summary = properties_df.groupby("current_epc_rating").size().reset_index(name="count") + epc_rating_summary["percentage"] = epc_rating_summary["count"] / epc_rating_summary["count"].sum() * 100 + ######################################################################## # We pull out the data for the slides ######################################################################## @@ -45,39 +78,130 @@ def app(): # Slide 1: ############ # visual - plot_epc_distribution(epc_rating_summary, title="", background_color="white", bar_height=0.75, font_size=15) + epc_plot, figure_path = plot_epc_distribution( + epc_rating_summary, CUSTOMER_KEY, title="", background_color="white", bar_height=0.75, font_size=15 + ) # floor area - upper and lower bounds min_area, max_area, average_area = ( property_details_df["total_floor_area"].min(), property_details_df["total_floor_area"].max(), - property_details_df["total_floor_area"].median() + property_details_df["total_floor_area"].mean() ) # Annual energy consumption - upper and lower bounds min_energy_consumption, max_energy_consumption, average_consumption = ( property_details_df["adjusted_energy_consumption"].min(), property_details_df["adjusted_energy_consumption"].max(), - property_details_df["adjusted_energy_consumption"].median() + property_details_df["adjusted_energy_consumption"].mean() ) # Co2 emissions - upper and lower bounds min_co2, max_co2, average_co2 = ( property_details_df["co2_emissions"].min(), property_details_df["co2_emissions"].max(), - property_details_df["co2_emissions"].median() + property_details_df["co2_emissions"].mean() ) # Valuation: upper and lower bounds - TODO! min_valuation, max_valuation, average_valuation = 0, 0, 0 + slide_1_commentary = ( + f"Floor areas range from {min_area} to {max_area} square meters, with an average of {average_area} square " + f"meters. " + f"Annual energy consumption ranges from {min_energy_consumption} to {max_energy_consumption} kWh, with an " + f"average of {average_consumption} kWh. " + f"CO2 emissions range from {min_co2} to {max_co2} tonnes, with an average of {average_co2} tonnes. " + f"Valuations range from £{min_valuation} to £{max_valuation} £, with an average of £" + f"{average_valuation}." + ) + ############ # Slide 2: ############ # What it would take to hit EPC C - # This is the number of properties that are below a C - n_units = properties_df[properties_df["current_epc_rating"].isin(["D", "E", "F", "G"])].shape[0] - # We calculate the number of units that will make it to an EPC C - n_units_to_epc_c = () + + units_hitting_target = recommendations_summary[ + recommendations_summary["expected_epc_rating"] == EPC_TARGET + ] + + n_units_to_target = units_hitting_target.shape[0] + + measures = "Electrical heating system upgrades & heating controls and Hot water system improvements" + + # Per property + min_valuation_impact, max_valuation_impact, average_valuation_impact = ( + units_hitting_target["total_valuation_impact"].min(), + units_hitting_target["total_valuation_impact"].max(), + units_hitting_target["total_valuation_impact"].mean() + ) + + # Bill savings per property + min_bill_savings, max_bill_savings, average_bill_savings = ( + units_hitting_target["total_bill_savings"].min(), + units_hitting_target["total_bill_savings"].max(), + units_hitting_target["total_bill_savings"].mean() + ) + + # Total CO2 reduction of portfolio + min_co2_reduction, max_co2_reduction, average_co2_reduction, total_co2_reduction = ( + units_hitting_target["total_carbon"].min(), + units_hitting_target["total_carbon"].max(), + units_hitting_target["total_carbon"].mean(), + units_hitting_target["total_carbon"].sum() + ) + + slide_2_commentary = ( + f"{n_units_to_target} expected to achieve EPC {EPC_TARGET} " + f"Measures include: {measures}" + f"Valuation increase per property: £{min_valuation_impact}-{max_valuation_impact}, average: £" + f"{average_valuation_impact}" + f"Bill savings per property: £{min_bill_savings}-{max_bill_savings}, average: £{average_bill_savings}" + f"Total CO2 reduction: {min_co2_reduction}-{max_co2_reduction} tonnes, average: {average_co2_reduction}" + f"tonnes, total for the {n_units_to_target} properties: {total_co2_reduction} tonnes" + ) + + ############ + # Slide 3: + ############ + + units_missed_target = recommendations_summary[ + recommendations_summary["expected_epc_rating"] != EPC_TARGET + ] + + n_units_missed_target = units_missed_target.shape[0] + + # How close were the properties that missed the target + # We calculate the difference between the expected sap points and the lower bound sap points for the target + + min_difference, max_difference, average_difference = ( + np.ceil(units_missed_target["sap_difference"].min()), + np.ceil(units_missed_target["sap_difference"].max()), + np.ceil(units_missed_target["sap_difference"].mean()) + ) + + slide_3_text = ( + "Many of the properties upgrade considerably and may be able to achieve an EPC C with further measures, " + "however we could need a survey to confirm the heating and hot water systems to identify further " + "potential measures.") + + slide_data = { + 'slide_1': { + "title": "EPC Rating Distribution", + 'image_path': figure_path, # Pass the path to the saved image + "text": slide_1_commentary + }, + "slide_2": { + "title": f"Properties that achieve EPC {EPC_TARGET}", + "text": slide_2_commentary, + }, + "slide 3": { + "title": f"Properties that miss EPC {EPC_TARGET}", + "text": slide_3_text + } + } + + save_location = f"etl/customers/{CUSTOMER_KEY}/powerpoint.pptx" + create_powerpoint(slide_data, save_location) From 35a75bc4e5d1e0f6ed8dc39e2cedb72d00e20bc0 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Wed, 21 Feb 2024 17:30:56 +0000 Subject: [PATCH 294/526] working on presentation and content --- backend/Property.py | 3 +- backend/app/db/models/portfolio.py | 1 + backend/app/db/models/recommendations.py | 3 ++ backend/app/plan/router.py | 32 ++++++++------ etl/customers/slide_utils.py | 53 ++++++++++++++++++++---- etl/customers/urban_splash/slides.py | 24 ++++++----- 6 files changed, 85 insertions(+), 31 deletions(-) diff --git a/backend/Property.py b/backend/Property.py index 47e885aa..4a55e504 100644 --- a/backend/Property.py +++ b/backend/Property.py @@ -470,7 +470,7 @@ class Property: to_update[k] = None return to_update - def get_full_property_data(self): + def get_full_property_data(self, current_valuation=None): """ This method extracts the data which is pushed to the database, containing core information, from the EPC about a property @@ -492,6 +492,7 @@ class Property: "tenure": self.data["tenure"], "current_epc_rating": self.data["current-energy-rating"], "current_sap_points": self.data["current-energy-efficiency"], + "current_valuation": current_valuation } property_data = self._clean_upload_data(property_data) diff --git a/backend/app/db/models/portfolio.py b/backend/app/db/models/portfolio.py index f7c0370b..830866e6 100644 --- a/backend/app/db/models/portfolio.py +++ b/backend/app/db/models/portfolio.py @@ -86,6 +86,7 @@ class PropertyModel(Base): tenure = Column(Text) current_epc_rating = Column(Enum(Epc)) current_sap_points = Column(Float) + current_valuation = Column(Float) class FeatureRating(enum.Enum): diff --git a/backend/app/db/models/recommendations.py b/backend/app/db/models/recommendations.py index 42ecbddf..a492f2f2 100644 --- a/backend/app/db/models/recommendations.py +++ b/backend/app/db/models/recommendations.py @@ -53,6 +53,9 @@ class Plan(Base): property_id = Column(BigInteger, ForeignKey(PropertyModel.id), nullable=False) created_at = Column(TIMESTAMP, nullable=False, server_default=func.now()) is_default = Column(Boolean, nullable=False) + valuation_increase_lower_bound = Column(Float) + valuation_increase_upper_bound = Column(Float) + valuation_increase_average = Column(Float) class PlanRecommendations(Base): diff --git a/backend/app/plan/router.py b/backend/app/plan/router.py index a79af32b..56d586ae 100644 --- a/backend/app/plan/router.py +++ b/backend/app/plan/router.py @@ -291,27 +291,43 @@ async def trigger_plan(body: PlanTriggerRequest): batch_properties = input_properties[i:i + BATCH_SIZE] for p in batch_properties: + recommendations_to_upload = recommendations.get(p.id, []) + default_recommendations = [r for r in recommendations_to_upload if r["default"]] + total_sap_points = sum([r["sap_points"] for r in default_recommendations]) + new_sap_points = float(p.data["current-energy-efficiency"]) + total_sap_points + new_epc = sap_to_epc(new_sap_points) + + valuations = PropertyValuation.estimate(property_instance=p, target_epc=new_epc) + # Your existing operations property_details_epc = p.get_property_details_epc( - portfolio_id=body.portfolio_id, rating_lookup=rating_lookup + portfolio_id=body.portfolio_id, rating_lookup=rating_lookup, ) create_property_details_epc(session, property_details_epc) update_or_create_property_spatial_details(session, p.uprn, p.spatial) - property_data = p.get_full_property_data() + property_data = p.get_full_property_data(current_valuation=valuations["current_value"]) update_property_data( session, property_id=p.id, portfolio_id=body.portfolio_id, property_data=property_data ) - recommendations_to_upload = recommendations.get(p.id, []) if not recommendations_to_upload: continue new_plan_id = create_plan(session, { "portfolio_id": body.portfolio_id, "property_id": p.id, - "is_default": True + "is_default": True, + "valuation_increase_lower_bound": ( + valuations["lower_bound_increased_value"] - valuations["current_value"] + ), + "valuation_increase_upper_bound": ( + valuations["upper_bound_increased_value"] - valuations["current_value"] + ), + "valuation_increase_average": ( + valuations["average_increased_value"] - valuations["current_value"] + ), }) uploaded_recommendation_ids = upload_recommendations(session, recommendations_to_upload, p.id) @@ -320,14 +336,6 @@ async def trigger_plan(body: PlanTriggerRequest): session, plan_id=new_plan_id, recommendation_ids=uploaded_recommendation_ids ) - # Get defaults - default_recommendations = [r for r in recommendations_to_upload if r["default"]] - total_sap_points = sum([r["sap_points"] for r in default_recommendations]) - new_sap_points = float(p.data["current-energy-efficiency"]) + total_sap_points - new_epc = sap_to_epc(new_sap_points) - - valuations = PropertyValuation.estimate(property_instance=p, target_epc=new_epc) - property_valuation_increases.append( valuations["average_increased_value"] - valuations["current_value"] ) diff --git a/etl/customers/slide_utils.py b/etl/customers/slide_utils.py index 1a2a894e..a0f6a68c 100644 --- a/etl/customers/slide_utils.py +++ b/etl/customers/slide_utils.py @@ -1,4 +1,5 @@ import os +from pptx.enum.text import PP_ALIGN from pptx import Presentation from pptx.util import Inches, Pt import matplotlib.pyplot as plt @@ -148,26 +149,64 @@ def save_figure_as_image(figure, filename='temp_plot.png'): plt.close(figure) # Close the figure to prevent it from displaying in notebooks or Python environments +def add_commentary_with_bullets(slide, commentary, top_inches, left_inches=Inches(1), width_inches=Inches(8), + height_inches=Inches(2)): + """ + Adds commentary with bullet points to a slide. + + :param slide: The slide object to add the commentary to. + :param commentary: The commentary text, with sections separated by newlines for bullet points. + :param top_inches: The top position of the commentary text box. + :param left_inches: The left position of the commentary text box. + :param width_inches: The width of the commentary text box. + :param height_inches: The height of the commentary text box. + """ + txBox = slide.shapes.add_textbox(left_inches, top_inches, width_inches, height_inches) + tf = txBox.text_frame + + # Configure text frame + tf.word_wrap = True + tf.auto_size = True + tf.paragraphs[0].alignment = PP_ALIGN.LEFT + + # Split the commentary into sections for bullet points + sections = commentary.split("\n") + + for i, section in enumerate(sections): + if i > 0: + p = tf.add_paragraph() # Add a new paragraph for each section after the first + else: + p = tf.paragraphs[0] # Use the first paragraph for the first section + p.text = section + p.space_after = Pt(14) # Adjust space after each bullet point as needed + p.font.size = Pt(14) # Adjust font size as needed + p.level = 0 # Bullet level, can be adjusted for nested bullets + p.space_before = Pt(0) + + def add_slide_with_image(prs, title, img_path=None, commentary=None): """ - Adds a slide with an image and optional commentary. + Adds a slide with an image (if provided) and optional commentary. If no image is provided, + places the commentary text in the middle of the slide. """ slide_layout = prs.slide_layouts[5] # Title and Content layout slide = prs.slides.add_slide(slide_layout) title_placeholder = slide.shapes.title title_placeholder.text = title - # Add the image + # Determine the position of the commentary text box based on whether an image is included if img_path: + # Add the image slide.shapes.add_picture(img_path, Inches(1), Inches(1.5), Inches(8), Inches(4.5)) + # Position for commentary when image is present + commentary_top = Inches(6) + else: + # Position for commentary when image is not present (centered vertically) + commentary_top = Inches(3) # Add commentary if provided if commentary: - txBox = slide.shapes.add_textbox(Inches(1), Inches(6), Inches(8), Inches(1)) - tf = txBox.text_frame - p = tf.add_paragraph() - p.text = commentary - p.font.size = Pt(14) # Adjust font size as needed + add_commentary_with_bullets(slide, commentary, commentary_top) def create_powerpoint(data, save_location): diff --git a/etl/customers/urban_splash/slides.py b/etl/customers/urban_splash/slides.py index 616939b2..4c2593ba 100644 --- a/etl/customers/urban_splash/slides.py +++ b/etl/customers/urban_splash/slides.py @@ -104,16 +104,18 @@ def app(): ) # Valuation: upper and lower bounds - TODO! - min_valuation, max_valuation, average_valuation = 0, 0, 0 + min_valuation, max_valuation, average_valuation = (0, 0, 0) + + recommendations_df.keys() slide_1_commentary = ( f"Floor areas range from {min_area} to {max_area} square meters, with an average of {average_area} square " - f"meters. " + f"meters. \n" f"Annual energy consumption ranges from {min_energy_consumption} to {max_energy_consumption} kWh, with an " - f"average of {average_consumption} kWh. " - f"CO2 emissions range from {min_co2} to {max_co2} tonnes, with an average of {average_co2} tonnes. " + f"average of {average_consumption} kWh. \n" + f"CO2 emissions range from {min_co2} to {max_co2} tonnes, with an average of {average_co2} tonnes. \n" f"Valuations range from £{min_valuation} to £{max_valuation} £, with an average of £" - f"{average_valuation}." + f"{average_valuation}.\n" ) ############ @@ -154,13 +156,13 @@ def app(): ) slide_2_commentary = ( - f"{n_units_to_target} expected to achieve EPC {EPC_TARGET} " - f"Measures include: {measures}" + f"{n_units_to_target} units expected to achieve EPC {EPC_TARGET} \n" + f"Measures include: {measures}\n" f"Valuation increase per property: £{min_valuation_impact}-{max_valuation_impact}, average: £" - f"{average_valuation_impact}" - f"Bill savings per property: £{min_bill_savings}-{max_bill_savings}, average: £{average_bill_savings}" - f"Total CO2 reduction: {min_co2_reduction}-{max_co2_reduction} tonnes, average: {average_co2_reduction}" - f"tonnes, total for the {n_units_to_target} properties: {total_co2_reduction} tonnes" + f"{average_valuation_impact}\n" + f"Bill savings per property: £{min_bill_savings}-{max_bill_savings}, average: £{average_bill_savings}\n" + f"Total CO2 reduction: {min_co2_reduction}-{max_co2_reduction} tonnes, average: {average_co2_reduction}\n" + f"tonnes, total for the {n_units_to_target} properties: {total_co2_reduction} tonnes\n" ) ############ From 504796625b7a0747fc81feeef6c23ceeb5f758ff Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Wed, 21 Feb 2024 17:41:34 +0000 Subject: [PATCH 295/526] Adding temp portfolio id --- backend/app/plan/router.py | 4 +++- etl/customers/slide_utils.py | 20 +++++++++++++++- etl/customers/urban_splash/slides.py | 22 ++++++++++++++---- recommendations/Recommendations.py | 34 +++++++++++++++------------- 4 files changed, 57 insertions(+), 23 deletions(-) diff --git a/backend/app/plan/router.py b/backend/app/plan/router.py index 56d586ae..a4ba3e08 100644 --- a/backend/app/plan/router.py +++ b/backend/app/plan/router.py @@ -166,7 +166,9 @@ async def trigger_plan(body: PlanTriggerRequest): p.get_components(cleaned, photo_supply_lookup, floor_area_decile_thresholds) recommender = Recommendations(property_instance=p, materials=materials) - property_recommendations, property_representative_recommendations = recommender.recommend() + # TODO: portfolio id as an input is temp + print("DELETE PORTFOLIO ID AS AN INPUT!!") + property_recommendations, property_representative_recommendations = recommender.recommend(body.portfolio_id) if not property_recommendations: continue diff --git a/etl/customers/slide_utils.py b/etl/customers/slide_utils.py index a0f6a68c..e215af80 100644 --- a/etl/customers/slide_utils.py +++ b/etl/customers/slide_utils.py @@ -1,5 +1,5 @@ import os -from pptx.enum.text import PP_ALIGN +from pptx.enum.text import PP_ALIGN # NOQA from pptx import Presentation from pptx.util import Inches, Pt import matplotlib.pyplot as plt @@ -8,6 +8,7 @@ from sqlalchemy.sql import true from backend.app.db.utils import row2dict from backend.app.db.models.portfolio import PropertyModel, PropertyDetailsEpcModel from backend.app.db.models.recommendations import Recommendation +from backend.app.db.models.recommendations import Plan EPC_COLOURS = { "A": "#028051", @@ -70,6 +71,23 @@ def get_property_details_by_portfolio_id(session: Session, portfolio_id: int): return property_details_dict +def get_plan_by_portfolio_id(session: Session, portfolio_id: int): + """ + This function retrieves all plans associated with a given portfolio_id. + + :param session: The SQLAlchemy session used to execute the query. + :param portfolio_id: The ID of the portfolio for which to retrieve plans. + :return: A list of dictionaries, where each dictionary represents a plan. + Returns an empty list if no plans are found. + """ + plans = session.query(Plan).filter(Plan.portfolio_id == portfolio_id).all() + + # Convert the SQLAlchemy objects to dictionaries + plans_dict = [row2dict(plan) for plan in plans] if plans else [] + + return plans_dict + + def plot_epc_distribution(df, customer_key, title='Your Units', background_color='white', bar_height=0.4, font_size=15): """ Plots a horizontal bar chart of EPC rating distribution with adjustable bar thickness and text sizes. diff --git a/etl/customers/urban_splash/slides.py b/etl/customers/urban_splash/slides.py index 4c2593ba..19e1d579 100644 --- a/etl/customers/urban_splash/slides.py +++ b/etl/customers/urban_splash/slides.py @@ -11,6 +11,7 @@ from sqlalchemy.orm import sessionmaker from etl.customers.slide_utils import ( plot_epc_distribution, get_property_details_by_portfolio_id, + get_plan_by_portfolio_id, get_properties_with_default_recommendations, create_powerpoint ) @@ -37,6 +38,9 @@ def app(): property_details = get_property_details_by_portfolio_id(session, PORTFOLIO_ID) property_details_df = pd.DataFrame(property_details) + plans = get_plan_by_portfolio_id(session, PORTFOLIO_ID) + plans_df = pd.DataFrame(plans) + # Unnest the recommendations. Each recommendation is a list of dictionaries recommendations_exploded = properties_df["recommendations"].explode().tolist() recommendations_df = pd.DataFrame([r for r in recommendations_exploded if not pd.isnull(r)]) @@ -103,8 +107,13 @@ def app(): property_details_df["co2_emissions"].mean() ) - # Valuation: upper and lower bounds - TODO! - min_valuation, max_valuation, average_valuation = (0, 0, 0) + # Valuation: upper and lower bounds and average - take positive values in case we have just a sample + valuation_df = properties_df[properties_df["current_valuation"] > 0] + min_valuation, max_valuation, average_valuation = ( + valuation_df["current_valuation"].min(), + valuation_df["current_valuation"].max(), + valuation_df["current_valuation"].median() + ) recommendations_df.keys() @@ -134,10 +143,13 @@ def app(): measures = "Electrical heating system upgrades & heating controls and Hot water system improvements" # Per property + # Take positive entries just in case we we have a sample + valuation_impact_df = plans_df[plans_df["property_id"].isin(units_hitting_target["property_id"])] + valuation_impact_df = valuation_impact_df[valuation_impact_df["valuation_increase_lower_bound"] > 0] min_valuation_impact, max_valuation_impact, average_valuation_impact = ( - units_hitting_target["total_valuation_impact"].min(), - units_hitting_target["total_valuation_impact"].max(), - units_hitting_target["total_valuation_impact"].mean() + valuation_impact_df["valuation_increase_lower_bound"].median(), + valuation_impact_df["valuation_increase_upper_bound"].median(), + valuation_impact_df["valuation_increase_average"].median() ) # Bill savings per property diff --git a/recommendations/Recommendations.py b/recommendations/Recommendations.py index f785b31d..9f838e1c 100644 --- a/recommendations/Recommendations.py +++ b/recommendations/Recommendations.py @@ -45,7 +45,7 @@ class Recommendations: self.heating_recommender = HeatingRecommender(property_instance=property_instance) self.hotwater_recommender = HotwaterRecommendations(property_instance=property_instance) - def recommend(self): + def recommend(self, portfolio_id): """ This method runs the recommendations for the individual measures and then appends them to a list for output @@ -59,21 +59,23 @@ class Recommendations: phase = 0 print("WALL RECOMMENDATIONS HAVE BEEN COMMENTED OUT TEMPORARILY - ADD ME BACK IN") - # # Building Fabric - # self.wall_recomender.recommend(phase=phase) - # if self.wall_recomender.recommendations: - # property_recommendations.append(self.wall_recomender.recommendations) - # phase += 1 - # - # # Ventilation recommendations - # # We only produce a ventilation recommendation if the property is recommended to have wall or roof insulation - # # We will not attribute a SAP impact to the ventilation recommendation, since we've seen that this has no - # # real impact on the SAP score. Therefore, we don't need to include phasing for ventilation. If we have any - # # wall or roof recommendations, we will ensure that ventilation is included in the simulation - # if self.wall_recomender.recommendations or self.roof_recommender.recommendations: - # self.ventilation_recomender.recommend() - # if self.ventilation_recomender.recommendation: - # property_recommendations.append(self.ventilation_recomender.recommendation) + if portfolio_id != 66: + # Building Fabric + self.wall_recomender.recommend(phase=phase) + if self.wall_recomender.recommendations: + property_recommendations.append(self.wall_recomender.recommendations) + phase += 1 + + # Ventilation recommendations + # We only produce a ventilation recommendation if the property is recommended to have wall or roof + # insulation + # We will not attribute a SAP impact to the ventilation recommendation, since we've seen that this has no + # real impact on the SAP score. Therefore, we don't need to include phasing for ventilation. If we have any + # wall or roof recommendations, we will ensure that ventilation is included in the simulation + if self.wall_recomender.recommendations or self.roof_recommender.recommendations: + self.ventilation_recomender.recommend() + if self.ventilation_recomender.recommendation: + property_recommendations.append(self.ventilation_recomender.recommendation) self.roof_recommender.recommend(phase=phase) if self.roof_recommender.recommendations: From b8dbf1531ebee6fb9b8b6e1366826c4bf10b3e6e Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Thu, 22 Feb 2024 10:58:19 +0000 Subject: [PATCH 296/526] completed Urban Splash portfolio --- backend/app/plan/router.py | 2 + backend/ml_models/Valuation.py | 5 + etl/customers/slide_utils.py | 33 +++- etl/customers/urban_splash/asset_list.py | 38 +++- etl/customers/urban_splash/slides.py | 233 ++++++++++++++++++----- 5 files changed, 255 insertions(+), 56 deletions(-) diff --git a/backend/app/plan/router.py b/backend/app/plan/router.py index a4ba3e08..0b98cf2c 100644 --- a/backend/app/plan/router.py +++ b/backend/app/plan/router.py @@ -207,6 +207,8 @@ async def trigger_plan(body: PlanTriggerRequest): # Insert the predictions into the recommendations and run the optimiser # TODO: If a recommendation has a negative impact on SAP, we should remove it - this seems to have become a # possibility with heating system + # TODO: After optimising, if there are any cheap, quick win measures (e.g. insulate water tank with hot water + # cylinder jacket), we should add these to the recommendations as default logger.info("Optimising recommendations") for property_id in recommendations.keys(): diff --git a/backend/ml_models/Valuation.py b/backend/ml_models/Valuation.py index dd5322e3..2bb7de32 100644 --- a/backend/ml_models/Valuation.py +++ b/backend/ml_models/Valuation.py @@ -47,6 +47,11 @@ class PropertyValuation: 10070056816: 101_000, 10094183498: 101_000, 10070056840: 673_000, + 10070056848: 76_000, + 10070056849: 76_000, + 10070056829: 76_000, + 10070056920: 76_000, + 10023345463: 76_000, } # We base our valuation uplifts on a number of sources diff --git a/etl/customers/slide_utils.py b/etl/customers/slide_utils.py index e215af80..d1efce47 100644 --- a/etl/customers/slide_utils.py +++ b/etl/customers/slide_utils.py @@ -1,4 +1,3 @@ -import os from pptx.enum.text import PP_ALIGN # NOQA from pptx import Presentation from pptx.util import Inches, Pt @@ -9,6 +8,7 @@ from backend.app.db.utils import row2dict from backend.app.db.models.portfolio import PropertyModel, PropertyDetailsEpcModel from backend.app.db.models.recommendations import Recommendation from backend.app.db.models.recommendations import Plan +from backend.app.utils import sap_to_epc EPC_COLOURS = { "A": "#028051", @@ -244,3 +244,34 @@ def create_powerpoint(data, save_location): # Save the presentation prs.save(save_location) + + +def create_recommendations_summary(recommendations_df, properties_df, sap_target): + # Aggregate the impact of the recommendations + # We want: + # Total number of sap points + # total valuation impact + # total bill savings + # total cost + # Total Co2 impact + recommendations_summary = recommendations_df.groupby(["property_id"]).agg( + total_sap_points=("sap_points", "sum"), + total_valuation_impact=("property_valuation_increase", "sum"), + total_bill_savings=("energy_cost_savings", "sum"), + total_cost=("estimated_cost", "sum"), + total_carbon=("co2_equivalent_savings", "sum") + ).reset_index() + # Merge on current sap points + recommendations_summary = recommendations_summary.merge( + properties_df[["id", "uprn", "current_sap_points"]].rename(columns={"id": "property_id"}), on="property_id", + how="left" + ) + recommendations_summary["expected_sap_points"] = ( + recommendations_summary["current_sap_points"] + recommendations_summary["total_sap_points"] + ) + recommendations_summary["expected_epc_rating"] = recommendations_summary["expected_sap_points"].apply( + lambda x: sap_to_epc(x) + ) + recommendations_summary["sap_difference"] = sap_target - recommendations_summary["expected_sap_points"] + + return recommendations_summary diff --git a/etl/customers/urban_splash/asset_list.py b/etl/customers/urban_splash/asset_list.py index 96aad007..751ac081 100644 --- a/etl/customers/urban_splash/asset_list.py +++ b/etl/customers/urban_splash/asset_list.py @@ -14,7 +14,15 @@ load_dotenv(dotenv_path="backend/.env") EPC_AUTH_TOKEN = os.getenv("EPC_AUTH_TOKEN") USER_ID = 8 -PORTFOLIO_ID = 65 +PORTFOLIO_ID = 66 +SECOND_SCENARIO_PORTFOLIO_ID = 65 + +# We also create a second portfolio for a subset of properties that do not meet the install requirements +# We drop these uprns from the first plan +second_portfolio_uprns = [ + 10070056840, 10070056846, 10070056847, 10070056843, 10070056848, 10070056844, 10070056849, + 10070056829, 10070056920, 10023345463 +] def app(): @@ -99,7 +107,6 @@ def app(): epc_data.append(newest_epc) processed_asset_list_df = pd.DataFrame(processed_asset_list) - processed_asset_list_df.to_excel("urban_splash_processed_asset_list.xlsx") epc_data_df = pd.DataFrame(epc_data) @@ -107,7 +114,9 @@ def app(): # Store the data in s3 filename = f"{USER_ID}/{PORTFOLIO_ID}/test_inputs.csv" save_csv_to_s3( - dataframe=processed_asset_list_df, + dataframe=processed_asset_list_df[ + ~processed_asset_list_df["uprn"].astype(int).isin(second_portfolio_uprns) + ], bucket_name="retrofit-plan-inputs-dev", file_name=filename ) @@ -118,7 +127,28 @@ def app(): "goal": "Increase EPC", "goal_value": "C", "trigger_file_path": filename, - "budget": 5000, + "budget": None, + } + print(body) + + subset = processed_asset_list_df[ + processed_asset_list_df["uprn"].astype(int).isin(second_portfolio_uprns) + ] + + filename2 = f"{USER_ID}/{SECOND_SCENARIO_PORTFOLIO_ID}/test_inputs.csv" + save_csv_to_s3( + dataframe=subset, + bucket_name="retrofit-plan-inputs-dev", + file_name=filename2 + ) + + body = { + "portfolio_id": str(SECOND_SCENARIO_PORTFOLIO_ID), + "housing_type": "Private", + "goal": "Increase EPC", + "goal_value": "C", + "trigger_file_path": filename, + "budget": None, } print(body) diff --git a/etl/customers/urban_splash/slides.py b/etl/customers/urban_splash/slides.py index 19e1d579..e275167e 100644 --- a/etl/customers/urban_splash/slides.py +++ b/etl/customers/urban_splash/slides.py @@ -6,17 +6,18 @@ a environment akin to the backend to run this script import pandas as pd import numpy as np from backend.app.db.connection import db_engine -from backend.app.utils import sap_to_epc from sqlalchemy.orm import sessionmaker from etl.customers.slide_utils import ( plot_epc_distribution, get_property_details_by_portfolio_id, get_plan_by_portfolio_id, get_properties_with_default_recommendations, - create_powerpoint + create_powerpoint, + create_recommendations_summary ) PORTFOLIO_ID = 66 +SECOND_SCENARIO_PORTFOLIO_ID = 65 EPC_TARGET = "C" SAP_TARGET = 69 CUSTOMER_KEY = "urban_splash" @@ -37,6 +38,11 @@ def app(): # We now pull the data for the property details property_details = get_property_details_by_portfolio_id(session, PORTFOLIO_ID) property_details_df = pd.DataFrame(property_details) + # Merge on uprn + property_details_df = property_details_df.merge( + properties_df[["uprn", "id"]].rename(columns={"id": "property_id"}), + on="property_id" + ) plans = get_plan_by_portfolio_id(session, PORTFOLIO_ID) plans_df = pd.DataFrame(plans) @@ -44,34 +50,42 @@ def app(): # Unnest the recommendations. Each recommendation is a list of dictionaries recommendations_exploded = properties_df["recommendations"].explode().tolist() recommendations_df = pd.DataFrame([r for r in recommendations_exploded if not pd.isnull(r)]) - # Aggregate the impact of the recommendations - # We want: - # Total number of sap points - # total valuation impact - # total bill savings - # total cost - # Total Co2 impact - recommendations_summary = recommendations_df.groupby(["property_id"]).agg( - total_sap_points=("sap_points", "sum"), - total_valuation_impact=("property_valuation_increase", "sum"), - total_bill_savings=("energy_cost_savings", "sum"), - total_cost=("estimated_cost", "sum"), - total_carbon=("co2_equivalent_savings", "sum") - ).reset_index() - # Merge on current sap points - recommendations_summary = recommendations_summary.merge( - properties_df[["id", "uprn", "current_sap_points"]].rename(columns={"id": "property_id"}), on="property_id", - how="left" - ) - recommendations_summary["expected_sap_points"] = ( - recommendations_summary["current_sap_points"] + recommendations_summary["total_sap_points"] - ) - recommendations_summary["expected_epc_rating"] = recommendations_summary["expected_sap_points"].apply( - lambda x: sap_to_epc(x) - ) - recommendations_summary["sap_difference"] = SAP_TARGET - recommendations_summary["expected_sap_points"] - epc_rating_summary = properties_df.groupby("current_epc_rating").size().reset_index(name="count") + recommendations_summary = create_recommendations_summary(recommendations_df, properties_df, SAP_TARGET) + + # Get the data for the second scenario portfolio + properties_second_scenario = get_properties_with_default_recommendations(session, SECOND_SCENARIO_PORTFOLIO_ID) + properties_second_scenario_df = pd.DataFrame(properties_second_scenario) + + propert_details_second_scenario = get_property_details_by_portfolio_id(session, SECOND_SCENARIO_PORTFOLIO_ID) + property_details_second_scenario_df = pd.DataFrame(propert_details_second_scenario) + # Merge on uprn + property_details_second_scenario_df = property_details_second_scenario_df.merge( + properties_second_scenario_df[["uprn", "id"]].rename(columns={"id": "property_id"}), + on="property_id" + ) + + plans_second_scenario = get_plan_by_portfolio_id(session, SECOND_SCENARIO_PORTFOLIO_ID) + plans_second_scenario_df = pd.DataFrame(plans_second_scenario) + # Merge on uprn so we can compare properties across portfolios + plans_second_scenario_df = plans_second_scenario_df.merge( + properties_second_scenario_df[["uprn", "id"]].rename(columns={"id": "property_id"}), on="property_id" + ) + + recommendations_exploded_second_scenario = properties_second_scenario_df["recommendations"].explode().tolist() + recommendations_second_scenario_df = pd.DataFrame( + [r for r in recommendations_exploded_second_scenario if not pd.isnull(r)] + ) + + recommendations_summary_second_scenario = create_recommendations_summary( + recommendations_second_scenario_df, properties_second_scenario_df, SAP_TARGET + ) + + # Combine the data for both scenarios + full_property_details = pd.concat([property_details_df, property_details_second_scenario_df]) + full_properties = pd.concat([properties_df, properties_second_scenario_df]) + + epc_rating_summary = full_properties.groupby("current_epc_rating").size().reset_index(name="count") epc_rating_summary["percentage"] = epc_rating_summary["count"] / epc_rating_summary["count"].sum() * 100 ######################################################################## @@ -87,24 +101,35 @@ def app(): ) # floor area - upper and lower bounds + + # Take just properties that are below EPC C + properties_needing_work = full_properties[ + full_properties["current_sap_points"] < SAP_TARGET + ] + property_details_needing_work = full_property_details[ + full_property_details["uprn"].isin(properties_needing_work["uprn"]) + ] + min_area, max_area, average_area = ( - property_details_df["total_floor_area"].min(), - property_details_df["total_floor_area"].max(), - property_details_df["total_floor_area"].mean() + full_property_details["total_floor_area"].min(), + full_property_details["total_floor_area"].max(), + full_property_details["total_floor_area"].mean() ) # Annual energy consumption - upper and lower bounds - min_energy_consumption, max_energy_consumption, average_consumption = ( - property_details_df["adjusted_energy_consumption"].min(), - property_details_df["adjusted_energy_consumption"].max(), - property_details_df["adjusted_energy_consumption"].mean() + min_energy_consumption, max_energy_consumption, average_consumption, total_consumption = ( + property_details_needing_work["adjusted_energy_consumption"].min(), + property_details_needing_work["adjusted_energy_consumption"].max(), + property_details_needing_work["adjusted_energy_consumption"].mean(), + property_details_needing_work["adjusted_energy_consumption"].sum() ) # Co2 emissions - upper and lower bounds - min_co2, max_co2, average_co2 = ( - property_details_df["co2_emissions"].min(), - property_details_df["co2_emissions"].max(), - property_details_df["co2_emissions"].mean() + min_co2, max_co2, average_co2, total_co2 = ( + property_details_needing_work["co2_emissions"].min(), + property_details_needing_work["co2_emissions"].max(), + property_details_needing_work["co2_emissions"].mean(), + property_details_needing_work["co2_emissions"].sum() ) # Valuation: upper and lower bounds and average - take positive values in case we have just a sample @@ -142,6 +167,17 @@ def app(): measures = "Electrical heating system upgrades & heating controls and Hot water system improvements" + # Costs + ( + expected_cost_per_unit_lower, + expected_cost_per_unit_upper, + expected_project_cost, + ) = ( + units_hitting_target["total_cost"].min(), + units_hitting_target["total_cost"].max(), + units_hitting_target["total_cost"].sum() + ) + # Per property # Take positive entries just in case we we have a sample valuation_impact_df = plans_df[plans_df["property_id"].isin(units_hitting_target["property_id"])] @@ -169,6 +205,8 @@ def app(): slide_2_commentary = ( f"{n_units_to_target} units expected to achieve EPC {EPC_TARGET} \n" + f"Expected cost: {expected_cost_per_unit_lower} - {expected_cost_per_unit_upper}, total project: £" + f"{expected_project_cost}\n" f"Measures include: {measures}\n" f"Valuation increase per property: £{min_valuation_impact}-{max_valuation_impact}, average: £" f"{average_valuation_impact}\n" @@ -181,25 +219,118 @@ def app(): # Slide 3: ############ - units_missed_target = recommendations_summary[ - recommendations_summary["expected_epc_rating"] != EPC_TARGET - ] + units_missed_target = recommendations_summary_second_scenario.copy() n_units_missed_target = units_missed_target.shape[0] # How close were the properties that missed the target # We calculate the difference between the expected sap points and the lower bound sap points for the target - min_difference, max_difference, average_difference = ( - np.ceil(units_missed_target["sap_difference"].min()), - np.ceil(units_missed_target["sap_difference"].max()), - np.ceil(units_missed_target["sap_difference"].mean()) + # min_difference, max_difference, average_difference = ( + # np.ceil(units_missed_target["sap_difference"].min()), + # np.ceil(units_missed_target["sap_difference"].max()), + # np.ceil(units_missed_target["sap_difference"].mean()) + # ) + + second_scenario_measures = ("Electrical heating system upgrades & heating controls, Hot water system improvements " + "and internal wall insulation") + + # Just take all of the units in the second scenario, since they're borderline + units_hitting_target_second_scenario = recommendations_summary_second_scenario[ + # (recommendations_summary_second_scenario["expected_epc_rating"] == EPC_TARGET) & + (recommendations_summary_second_scenario["uprn"].isin(units_missed_target["uprn"].values)) + ] + + n_units_hitting_second_scenario = units_hitting_target_second_scenario[ + units_hitting_target_second_scenario["expected_epc_rating"] == EPC_TARGET + ].shape[0] + + # Impact on second scenario + # Costs + ( + expected_cost_per_unit_lower_second_scenario, + expected_cost_per_unit_upper_second_scenario, + expected_project_cost_second_scenario, + ) = ( + recommendations_summary_second_scenario["total_cost"].min(), + recommendations_summary_second_scenario["total_cost"].max(), + recommendations_summary_second_scenario["total_cost"].sum() + ) + + valuation_impact_df_second_scenario = plans_second_scenario_df[ + plans_second_scenario_df["uprn"].isin(units_hitting_target_second_scenario["uprn"]) + ] + valuation_impact_df_second_scenario = valuation_impact_df_second_scenario[ + valuation_impact_df_second_scenario["valuation_increase_lower_bound"] > 0 + ] + ( + min_valuation_impact_second_scenario, + max_valuation_impact_second_scenario, + average_valuation_impact_second_scenario + ) = ( + valuation_impact_df_second_scenario["valuation_increase_lower_bound"].median(), + valuation_impact_df_second_scenario["valuation_increase_upper_bound"].median(), + valuation_impact_df_second_scenario["valuation_increase_average"].median() + ) + + # Bill savings per property + min_bill_savings_second_scenario, max_bill_savings_second_scenario, average_bill_savings_second_scenario = ( + units_hitting_target_second_scenario["total_bill_savings"].min(), + units_hitting_target_second_scenario["total_bill_savings"].max(), + units_hitting_target_second_scenario["total_bill_savings"].mean() + ) + + # Total CO2 reduction of portfolio + ( + min_co2_reduction_second_scenario, + max_co2_reduction_second_scenario, + average_co2_reduction_second_scenario, + total_co2_reduction_second_scenario + ) = ( + units_hitting_target_second_scenario["total_carbon"].min(), + units_hitting_target_second_scenario["total_carbon"].max(), + units_hitting_target_second_scenario["total_carbon"].mean(), + units_hitting_target_second_scenario["total_carbon"].sum() + ) + + # Values for the leftovers + units_missing_second_scenario = recommendations_summary_second_scenario[ + (recommendations_summary_second_scenario["expected_epc_rating"] != EPC_TARGET) & + (recommendations_summary_second_scenario["uprn"].isin(units_missed_target["uprn"].values)) + ] + + min_difference_second_scenario, max_difference_second_scenario, average_difference_second_scenario = ( + np.ceil(units_missing_second_scenario["sap_difference"].min()), + np.ceil(units_missing_second_scenario["sap_difference"].max()), + np.ceil(units_missing_second_scenario["sap_difference"].mean()) ) slide_3_text = ( - "Many of the properties upgrade considerably and may be able to achieve an EPC C with further measures, " - "however we could need a survey to confirm the heating and hot water systems to identify further " - "potential measures.") + f"{n_units_missed_target} units look like they would miss the EPC {EPC_TARGET} by {min_difference}-" + f"{max_difference} points \n" + "When on site, an assessor may be able to identify further improvements to bring the properties up to an EPC " + f"{EPC_TARGET}.\n" + f"We have looked at a more extensive package for these properties, including: {second_scenario_measures}\n" + f"Of the {n_units_missed_target} properties, a further {units_hitting_target_second_scenario.shape[0]} are " + f"expected to achieve EPC {EPC_TARGET} with these measures.\n" + f"Expected cost: {expected_cost_per_unit_lower_second_scenario} - " + f"{expected_cost_per_unit_upper_second_scenario}, " + f"total project: £" + f"{expected_project_cost_second_scenario}\n" + f"Valuation increase per property: £{min_valuation_impact_second_scenario}-" + f"{max_valuation_impact_second_scenario}, average: £" + f"{average_valuation_impact_second_scenario}\n" + f"Bill savings per property: £{min_bill_savings_second_scenario}-{max_bill_savings_second_scenario}, " + f"average: £{average_bill_savings_second_scenario}\n" + f"Total CO2 reduction: {min_co2_reduction_second_scenario}-{max_co2_reduction_second_scenario} tonnes, " + f"average: " + f"{average_co2_reduction_second_scenario}\n" + f"tonnes, total for the {n_units_hitting_second_scenario} properties: {total_co2_reduction_second_scenario} " + f"tonnes\n" + f"Even in the second scenario, the remaining {units_missing_second_scenario.shape[0]} properties are expected " + f"to miss EPC {EPC_TARGET} by {min_difference_second_scenario} point on average - they should be visited by " + f"an assessor" + ) slide_data = { 'slide_1': { @@ -217,5 +348,5 @@ def app(): } } - save_location = f"etl/customers/{CUSTOMER_KEY}/powerpoint.pptx" + save_location = f"etl/customers/{CUSTOMER_KEY}/{CUSTOMER_KEY}_tech_slides.pptx" create_powerpoint(slide_data, save_location) From 615f2289e758c136e73dfaac88d0ff906785f03a Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Thu, 22 Feb 2024 12:39:46 +0000 Subject: [PATCH 297/526] Debugging list loading --- .idea/Model.iml | 2 +- .idea/misc.xml | 2 +- .../ha_15_32/ha_analysis_batch_3.py | 81 +++++++------------ 3 files changed, 29 insertions(+), 56 deletions(-) diff --git a/.idea/Model.iml b/.idea/Model.iml index 4413bb06..b0f9c00d 100644 --- a/.idea/Model.iml +++ b/.idea/Model.iml @@ -7,7 +7,7 @@ - + diff --git a/.idea/misc.xml b/.idea/misc.xml index 6f308057..1122b380 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -3,7 +3,7 @@ - + diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index 92956337..7bb8b40c 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -131,9 +131,17 @@ class DataLoader: return ciga_list + @staticmethod + def get_sheetname(workbook): + if "Asset List" in workbook.sheetnames: + return "Asset List" + else: + return "Assets" + def load_asset_list(self, filepath, ha_name): workbook = openpyxl.load_workbook(filepath) - asset_sheet = workbook["Assets"] + sheetname = self.get_sheetname(workbook) + asset_sheet = workbook[sheetname] asset_sheet_colnames = [cell.value for cell in asset_sheet[1]] rows_data = [] @@ -170,8 +178,10 @@ class DataLoader: # Remove columns that are None survey_list = survey_list.loc[:, survey_list.columns.notnull()] survey_list["survey_list_row_id"] = [ha_name + "_survey_" + str(i) for i in range(0, len(survey_list))] + # Perform survey list merge - survey_list = self.merge_surveys_to_assets(asset_list, survey_list, ha_name) + if not survey_list.empty: + survey_list = self.merge_surveys_to_assets(asset_list, survey_list, ha_name) # We check if there are CIGA checks ciga_list = pd.DataFrame() @@ -185,9 +195,10 @@ class DataLoader: ciga_list = pd.DataFrame(ciga_rows, columns=[cell.value for cell in ciga_sheet[1]]) # Remove columns that are None ciga_list = ciga_list.loc[:, ciga_list.columns.notnull()] - ciga_list = self.create_ciga_list_house_no(ha_name, ciga_list) # Perform ciga list merge - ciga_list = self.merge_ciga_to_assets(asset_list, ciga_list, ha_name) + if not ciga_list.empty: + ciga_list = self.create_ciga_list_house_no(ha_name, ciga_list) + ciga_list = self.merge_ciga_to_assets(asset_list, ciga_list, ha_name) return asset_list, survey_list, ciga_list @@ -208,6 +219,10 @@ class DataLoader: return asset_list + @staticmethod + def correct_ha39_asset_list(asset_list): + return asset_list + @staticmethod def correct_ha6_survey_list(survey_list): @@ -337,6 +352,10 @@ class DataLoader: return survey_list + @staticmethod + def correct_ha39_survey_list(survey_list): + return survey_list + def merge_surveys_to_assets(self, asset_list, survey_list, ha_name): # Correct the asset list @@ -491,23 +510,10 @@ class DataLoader: ha_name=ha_name, ) - if file_config.get("survey_list"): - # TODO: Delete this - logger.info("Loading survey list for {}".format(ha_name)) - survey_list, matched_lookup = self.load_survey_list( - asset_list=asset_list, - file_path=file_config["survey_list"]["filepath"], - ha_name=ha_name, - sheet_name=file_config["survey_list"]["sheetname"] - ) - else: - survey_list = None - matched_lookup = None - data[ha_name] = { "asset_list": asset_list, "survey_list": survey_list, - "matched_lookup": matched_lookup + "ciga_list": ciga_list } self.data = data @@ -1288,42 +1294,9 @@ def app(): # List all of the data in the folder directories = [str(list(entry.iterdir())[0]) for entry in DATA_FOLDER.iterdir() if entry.is_dir()] - files = { - "ha_1": { - "asset_list": { - "filepath": "local_data/ha_data/HA1/ACCENT GROUP.xlsx", - "sheetname": "Energy data" - } - }, - "ha_6": { - "asset_list": { - "filepath": "etl/eligibility/ha_15_32/HA 6 - ASSET LIST.xlsx", - "sheetname": "HA 6" - }, - "survey_list": { - "filepath": "etl/eligibility/ha_15_32/HA 6 - SURVEY LIST.xlsx", - "sheetname": "HA 6" - } - }, - "ha_14": { - "asset_list": { - "filepath": "etl/eligibility/ha_15_32/HA 14 - ASSET LIST.xlsx", - "sheetname": "HA 14" - } - }, - "ha_39": { - "asset_list": { - "filepath": "etl/eligibility/ha_15_32/HA 39 - ASSET LIST.xlsx", - "sheetname": "Sheet1" - } - }, - "ha_107": { - "asset_list": { - "filepath": "etl/eligibility/ha_15_32/HA 107 - ASSET LIST.xlsx", - "sheetname": "HA 107" - } - } - } + priority_has = ["HA1", "HA6", "HA14", "HA39", "HA107"] + # Filter down the directories to only the priority HAs + directories = [d for d in directories if d.split("/")[2] in priority_has] loader = DataLoader(directories, use_cache) loader.load() From a1b2f9bf5bdd2d059c6327612fe2cb83c5be1687 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Thu, 22 Feb 2024 12:42:04 +0000 Subject: [PATCH 298/526] Added ciga list id --- .../ha_15_32/ha_analysis_batch_3.py | 24 ++++++++++++------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index 7bb8b40c..fffc9daf 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -195,6 +195,7 @@ class DataLoader: ciga_list = pd.DataFrame(ciga_rows, columns=[cell.value for cell in ciga_sheet[1]]) # Remove columns that are None ciga_list = ciga_list.loc[:, ciga_list.columns.notnull()] + survey_list["survey_list_row_id"] = [ha_name + "_ciga_" + str(i) for i in range(0, len(survey_list))] # Perform ciga list merge if not ciga_list.empty: ciga_list = self.create_ciga_list_house_no(ha_name, ciga_list) @@ -440,14 +441,14 @@ class DataLoader: df = df[df["matching_postcode"].str.lower().str.contains(row["Post Code"].lower())] if df.shape[0] != 1: postcode_lower = row["Post Code"].lower() - if postcode_lower in missed_postcodes: - matching_lookup.append( - { - "survey_list_row_id": row["survey_list_row_id"], - "asset_list_row_id": None, - } - ) - continue + # if postcode_lower in missed_postcodes: + # matching_lookup.append( + # { + # "survey_list_row_id": row["survey_list_row_id"], + # "asset_list_row_id": None, + # } + # ) + # continue print(row["Street / Block Name"]) print(house_number) @@ -456,13 +457,18 @@ class DataLoader: matching_lookup.append( { - "survey_list_row_id": row["survey_list_row_id"], + "ciga_list_row_id": row["ciga_list_row_id"], "asset_list_row_id": df["asset_list_row_id"].values[0], } ) matching_lookup = pd.DataFrame(matching_lookup) + # Merge onto the ciga list + ciga_list = ciga_list.merge(matching_lookup, how='left', on="ciga_list_row_id") + + return ciga_list + @staticmethod def identify_built_form_ha6(property_string): """ From d3bff08df8a4ce0d786acc10f9ab605abc938131 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Thu, 22 Feb 2024 12:53:01 +0000 Subject: [PATCH 299/526] debugging survey matching for ha14 --- etl/eligibility/ha_15_32/ha_analysis_batch_3.py | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index fffc9daf..d27bf8e8 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -221,7 +221,7 @@ class DataLoader: return asset_list @staticmethod - def correct_ha39_asset_list(asset_list): + def correct_ha14_asset_list(asset_list): return asset_list @staticmethod @@ -354,7 +354,15 @@ class DataLoader: return survey_list @staticmethod - def correct_ha39_survey_list(survey_list): + def correct_ha14_survey_list(survey_list): + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace( + "Godfrey Road", "Godfrey Drive" + ) + + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace( + "Oiliver Road", "Oliver Road" + ) + return survey_list def merge_surveys_to_assets(self, asset_list, survey_list, ha_name): @@ -389,7 +397,7 @@ class DataLoader: if df.shape[0] != 1: df = df[df["HouseNo"] == str(house_number)] if df.shape[0] != 1: - df = df[df["matching_postcode"].str.lower().str.contains(row["Post Code"].lower())] + df = df[df["matching_postcode"].str.lower().str.contains(row["Post Code"].lower().strip())] if df.shape[0] != 1: postcode_lower = row["Post Code"].lower() if postcode_lower in missed_postcodes: From c6daf520467b0c994a67f7746b51450f36b6bea7 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Thu, 22 Feb 2024 16:00:23 +0000 Subject: [PATCH 300/526] Trying to handle streetname extraction and edge case in ciga matching --- .../ha_15_32/ha_analysis_batch_3.py | 192 +++++++++++++----- 1 file changed, 143 insertions(+), 49 deletions(-) diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index d27bf8e8..cb4b9885 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -1,4 +1,5 @@ import os +import re import openpyxl from pathlib import Path import msgpack @@ -36,6 +37,10 @@ class DataLoader: } } + UNMATCHED_CIGA = { + "HA14": 6 + } + def __init__(self, directories, use_cache): self.directories = directories self.use_cache = use_cache @@ -101,6 +106,9 @@ class DataLoader: else: split_addresses = asset_list['matching_address'].str.split(',', expand=True) house_numbers = split_addresses[0].str.split(' ', expand=True) + # If we have "flat" or valley" as the house number, then the house number is actually in the second column + house_numbers[0] = np.where(house_numbers[0].isin(["flat", "valley"]), house_numbers[1], house_numbers[0]) + # THe first column should be HouseNo - we aren't interested in the other columns, but we don't know how # many columns there might be house_numbers = house_numbers.iloc[:, 0:1] @@ -117,7 +125,7 @@ class DataLoader: :return: """ - if ha_name in ["HA6"]: + if ha_name in ["HA6", "HA14"]: split_addresses = ciga_list['Matched Address'].str.split(',', expand=True) house_numbers = split_addresses[0].str.split(' ', expand=True) # THe first column should be HouseNo - we aren't interested in the other columns, but we don't know how @@ -132,16 +140,23 @@ class DataLoader: return ciga_list @staticmethod - def get_sheetname(workbook): + def get_asset_sheetname(workbook): if "Asset List" in workbook.sheetnames: return "Asset List" else: return "Assets" + @staticmethod + def get_ciga_sheetname(workbook): + if "CIGA Checks" in workbook.sheetnames: + return "CIGA Checks" + else: + return "CIGA" + def load_asset_list(self, filepath, ha_name): workbook = openpyxl.load_workbook(filepath) - sheetname = self.get_sheetname(workbook) - asset_sheet = workbook[sheetname] + asset_sheetname = self.get_asset_sheetname(workbook) + asset_sheet = workbook[asset_sheetname] asset_sheet_colnames = [cell.value for cell in asset_sheet[1]] rows_data = [] @@ -165,41 +180,46 @@ class DataLoader: asset_list = self.append_asset_list_built_form(ha_name=ha_name, asset_list=asset_list) + # We correct the asset list if it needs it + # Correct the asset list + correction_function_name = f"correct_{ha_name.lower()}_asset_list" + if hasattr(self, correction_function_name): + asset_list_correction_function = getattr(self, f"correct_{ha_name.lower()}_asset_list") + asset_list = asset_list_correction_function(asset_list) + # We check if there is a survey list - survey_list = pd.DataFrame() - if "ECO Surveys" in workbook.sheetnames: - survey_sheet = workbook["ECO Surveys"] - survey_rows = [] - for row in survey_sheet.iter_rows(min_row=2, values_only=False): # Assuming the first row is headers - row_data = [cell.value for cell in row] # This will get you the cell values - survey_rows.append(row_data) + survey_sheetname = "ECO Surveys" + survey_sheet = workbook[survey_sheetname] + survey_rows = [] + for row in survey_sheet.iter_rows(min_row=2, values_only=False): # Assuming the first row is headers + row_data = [cell.value for cell in row] # This will get you the cell values + survey_rows.append(row_data) - survey_list = pd.DataFrame(survey_rows, columns=[cell.value for cell in survey_sheet[1]]) - # Remove columns that are None - survey_list = survey_list.loc[:, survey_list.columns.notnull()] - survey_list["survey_list_row_id"] = [ha_name + "_survey_" + str(i) for i in range(0, len(survey_list))] + survey_list = pd.DataFrame(survey_rows, columns=[cell.value for cell in survey_sheet[1]]) + # Remove columns that are None + survey_list = survey_list.loc[:, survey_list.columns.notnull()] + survey_list["survey_list_row_id"] = [ha_name + "_survey_" + str(i) for i in range(0, len(survey_list))] - # Perform survey list merge - if not survey_list.empty: - survey_list = self.merge_surveys_to_assets(asset_list, survey_list, ha_name) + # Perform survey list merge + if not survey_list.empty: + survey_list = self.merge_surveys_to_assets(asset_list, survey_list, ha_name) # We check if there are CIGA checks - ciga_list = pd.DataFrame() - if "CIGA Checks" in workbook.sheetnames: - ciga_sheet = workbook["CIGA Checks"] - ciga_rows = [] - for row in ciga_sheet.iter_rows(min_row=2, values_only=False): - row_data = [cell.value for cell in row] # This will get you the cell values - ciga_rows.append(row_data) + ciga_sheetname = self.get_ciga_sheetname(workbook) + ciga_sheet = workbook[ciga_sheetname] + ciga_rows = [] + for row in ciga_sheet.iter_rows(min_row=2, values_only=False): + row_data = [cell.value for cell in row] # This will get you the cell values + ciga_rows.append(row_data) - ciga_list = pd.DataFrame(ciga_rows, columns=[cell.value for cell in ciga_sheet[1]]) - # Remove columns that are None - ciga_list = ciga_list.loc[:, ciga_list.columns.notnull()] - survey_list["survey_list_row_id"] = [ha_name + "_ciga_" + str(i) for i in range(0, len(survey_list))] - # Perform ciga list merge - if not ciga_list.empty: - ciga_list = self.create_ciga_list_house_no(ha_name, ciga_list) - ciga_list = self.merge_ciga_to_assets(asset_list, ciga_list, ha_name) + ciga_list = pd.DataFrame(ciga_rows, columns=[cell.value for cell in ciga_sheet[1]]) + # Remove columns that are None + ciga_list = ciga_list.loc[:, ciga_list.columns.notnull()] + ciga_list["ciga_list_row_id"] = [ha_name + "_ciga_" + str(i) for i in range(0, len(ciga_list))] + # Perform ciga list merge + if not ciga_list.empty: + ciga_list = self.create_ciga_list_house_no(ha_name, ciga_list) + ciga_list = self.merge_ciga_to_assets(asset_list, ciga_list, ha_name) return asset_list, survey_list, ciga_list @@ -222,6 +242,21 @@ class DataLoader: @staticmethod def correct_ha14_asset_list(asset_list): + + # For 5 Queens Court, DE72 3NP, the postcode is actually DE72 3QZ + asset_list.loc[ + (asset_list["Address 1"] == "5 Queens Court") & + (asset_list["Postcode"].str.strip() == "DE72 3NP"), + "matching_postcode" + ] = "DE72 3QZ" + + # We then correct the matching_address + asset_list.loc[ + (asset_list["Address 1"] == "5 Queens Court") & + (asset_list["Postcode"].str.strip() == "DE72 3NP"), + "matching_address" + ] = "5 queens court, garfield avenue, draycott, derby, de72 3qz" + return asset_list @staticmethod @@ -363,13 +398,22 @@ class DataLoader: "Oiliver Road", "Oliver Road" ) + # For postodes DE7 4FB, DE7 4EZ, it's actually spelled WINDERMERE AVENUE, not WINDEREMERE AVENUE (without the + # extra e) + survey_list.loc[ + (survey_list["Street / Block Name"] == "WINDEREMERE AVENUE") & + (survey_list["Post Code"].isin(["DE7 4FB", "DE7 4EZ"])), + "Street / Block Name" + ] = "WINDERMERE AVENUE" + + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace( + "MACDONALD SQAURE", "MACDONALD SQUARE" + ) + return survey_list def merge_surveys_to_assets(self, asset_list, survey_list, ha_name): - # Correct the asset list - asset_list_correction_function = getattr(self, f"correct_{ha_name.lower()}_asset_list") - asset_list = asset_list_correction_function(asset_list) # Correct the survey list survey_list_correction_function = getattr(self, f"correct_{ha_name.lower()}_survey_list") survey_list = survey_list_correction_function(survey_list) @@ -411,7 +455,7 @@ class DataLoader: print(row["Street / Block Name"]) print(house_number) - print(row["Post Code"].lower()) + print(row["Post Code"]) raise ValueError("Investigate") matching_lookup.append( @@ -428,8 +472,38 @@ class DataLoader: return survey_list + @staticmethod + def extract_streetname(address, house_number=None, postcode=None): + """ + Cleans an address by removing the house number and postcode, and converts everything to lower case. + + :param address: The full address as a string. + :param house_number: The house number to remove, as a string or integer. + :param postcode: The postcode to remove, as a string. + :return: The cleaned address. + """ + # Convert everything to lower case + address = address.lower() + + if house_number is not None: + # Remove the house number + address = re.sub(r'\b{}\b'.format(house_number), '', address, flags=re.IGNORECASE).strip() + + if postcode is not None: + # Remove the postcode + address = re.sub(r'\b{}\b'.format(re.escape(postcode)), '', address, flags=re.IGNORECASE).strip() + + # Get first section before a comma + address = address.split(",")[0] + # Additional cleaning to remove extra spaces and commas left over + address = re.sub(r'\s+', ' ', address) # Replace multiple spaces with a single space + address = re.sub(r'\s*,\s*', ', ', address) # Clean up space around commas + + return address + def merge_ciga_to_assets(self, asset_list, ciga_list, ha_name): matching_lookup = [] + unmatched_addresses = [] for _, row in tqdm(ciga_list.iterrows(), total=len(ciga_list)): house_number = row["HouseNo"] @@ -442,22 +516,35 @@ class DataLoader: ].copy() df = df[df["HouseNo"] == str(house_number)] + # For ciga, we skip + if df.empty: + if row["Matched Postcode"] == "LE3 3EE": + dew + unmatched_addresses.append( + { + "ciga_list_row_id": row["ciga_list_row_id"], + "HouseNo": house_number, + "Matched Postcode": row["Matched Postcode"] + } + ) + continue # TODO: Might need to consider street name at some point if df.shape[0] != 1: - if df.shape[0] != 1: - df = df[df["matching_postcode"].str.lower().str.contains(row["Post Code"].lower())] - if df.shape[0] != 1: - postcode_lower = row["Post Code"].lower() - # if postcode_lower in missed_postcodes: - # matching_lookup.append( - # { - # "survey_list_row_id": row["survey_list_row_id"], - # "asset_list_row_id": None, - # } - # ) - # continue + # We split house number and postcode out of the matched address for ciga + street_name = self.extract_streetname( + address=row["Matched Address"], house_number=house_number, postcode=row["Matched Postcode"] + ) + df = df[df["matching_address"].str.contains(street_name)] + if df.shape[0] != 1: + # The final check we do here is to check for the presence of flat in the address + if "flat" in row["Matched Address"]: + df = df[df["matching_address"].str.contains("flat")] + else: + df = df[df["matching_address"].str.contains("flat") == False] + + if df.shape[0] != 1: print(row["Street / Block Name"]) print(house_number) print(row["Post Code"].lower()) @@ -470,6 +557,13 @@ class DataLoader: } ) + # We have an acceptable number of ciga failures for each HA + if len(unmatched_addresses) != self.UNMATCHED_CIGA[ha_name]: + raise ValueError(f"Unmatched addresses for {ha_name} is not as expected") + + # In ciga: 35 Valley Drive, Leicester, LE3 3EE + # + matching_lookup = pd.DataFrame(matching_lookup) # Merge onto the ciga list From 75102704cdfeacaac68194c9646e23f208e48baf Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Thu, 22 Feb 2024 16:05:31 +0000 Subject: [PATCH 301/526] ciga matching for ha14 --- etl/eligibility/ha_15_32/ha_analysis_batch_3.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index cb4b9885..1a28500b 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -38,7 +38,9 @@ class DataLoader: } UNMATCHED_CIGA = { - "HA14": 6 + # We expect 4 unmatched addresses, which have been validated manually as being in the ciga file but not + # the asset list + "HA14": 4 } def __init__(self, directories, use_cache): @@ -518,8 +520,6 @@ class DataLoader: df = df[df["HouseNo"] == str(house_number)] # For ciga, we skip if df.empty: - if row["Matched Postcode"] == "LE3 3EE": - dew unmatched_addresses.append( { "ciga_list_row_id": row["ciga_list_row_id"], @@ -528,18 +528,18 @@ class DataLoader: } ) continue - # TODO: Might need to consider street name at some point + if df.shape[0] != 1: # We split house number and postcode out of the matched address for ciga street_name = self.extract_streetname( address=row["Matched Address"], house_number=house_number, postcode=row["Matched Postcode"] ) - df = df[df["matching_address"].str.contains(street_name)] + df = df[df["matching_address"].str.replace(",", "").str.contains(street_name)] if df.shape[0] != 1: # The final check we do here is to check for the presence of flat in the address - if "flat" in row["Matched Address"]: + if "flat" in row["Matched Address"].lower(): df = df[df["matching_address"].str.contains("flat")] else: df = df[df["matching_address"].str.contains("flat") == False] From 32352bbde145c6a0c76f503c766e7fca80c2af99 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Thu, 22 Feb 2024 17:46:11 +0000 Subject: [PATCH 302/526] working on survey match for ha107 --- .../ha_15_32/ha_analysis_batch_3.py | 45 +++++++++++++------ 1 file changed, 32 insertions(+), 13 deletions(-) diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index 1a28500b..9e850c0e 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -40,7 +40,9 @@ class DataLoader: UNMATCHED_CIGA = { # We expect 4 unmatched addresses, which have been validated manually as being in the ciga file but not # the asset list - "HA14": 4 + "HA14": 4, + # There's just too many unmatched here - if we identify some homes that + "HA6": 117 } def __init__(self, directories, use_cache): @@ -78,11 +80,11 @@ class DataLoader: elif ha_name == "HA107": # Create matching_address by concatenating House No, Street, Town, District, Postcode asset_list["matching_address"] = asset_list["House No"].astype(str).str.lower().str.strip() + ", " + \ - asset_list["Street"].str.lower().str.strip() + ", " + \ - asset_list["Town"].str.lower().str.strip() + ", " + \ - asset_list["District"].str.lower().str.strip() + ", " + \ - asset_list["Postcode"].str.lower().str.strip() - asset_list["matching_postcode"] = asset_list["Postcode"].str.lower().str.strip() + asset_list["Street"].astype(str).str.lower().str.strip() + ", " + \ + asset_list["Town"].astype(str).str.lower().str.strip() + ", " + \ + asset_list["District"].astype(str).str.lower().str.strip() + ", " + \ + asset_list["Postcode"].astype(str).str.lower().str.strip() + asset_list["matching_postcode"] = asset_list["Postcode"].astype(str).str.lower().str.strip() else: raise NotImplementedError("implement me") @@ -155,6 +157,13 @@ class DataLoader: else: return "CIGA" + @staticmethod + def get_survey_sheetname(workbook): + if "ECO Surveys" in workbook.sheetnames: + return "ECO Surveys" + else: + return "ECO surveys" + def load_asset_list(self, filepath, ha_name): workbook = openpyxl.load_workbook(filepath) asset_sheetname = self.get_asset_sheetname(workbook) @@ -189,8 +198,13 @@ class DataLoader: asset_list_correction_function = getattr(self, f"correct_{ha_name.lower()}_asset_list") asset_list = asset_list_correction_function(asset_list) + # For HA1, there is an exception in the structure of the data. We don't have any survey or ciga lists, and so + # we can return the asset list now + if ha_name == "HA1": + return asset_list, pd.DataFrame(), pd.DataFrame() + # We check if there is a survey list - survey_sheetname = "ECO Surveys" + survey_sheetname = self.get_survey_sheetname(workbook) survey_sheet = workbook[survey_sheetname] survey_rows = [] for row in survey_sheet.iter_rows(min_row=2, values_only=False): # Assuming the first row is headers @@ -217,6 +231,9 @@ class DataLoader: ciga_list = pd.DataFrame(ciga_rows, columns=[cell.value for cell in ciga_sheet[1]]) # Remove columns that are None ciga_list = ciga_list.loc[:, ciga_list.columns.notnull()] + # Remove rows with missing postcode which happens in a small number of cases + ciga_list = ciga_list[~pd.isnull(ciga_list["Matched Postcode"])] + ciga_list["ciga_list_row_id"] = [ha_name + "_ciga_" + str(i) for i in range(0, len(ciga_list))] # Perform ciga list merge if not ciga_list.empty: @@ -414,6 +431,10 @@ class DataLoader: return survey_list + @staticmethod + def correct_ha107_survey_list(survey_list): + return survey_list + def merge_surveys_to_assets(self, asset_list, survey_list, ha_name): # Correct the survey list @@ -441,7 +462,7 @@ class DataLoader: df = df[df["matching_address"].str.contains(str(house_number))] if df.shape[0] != 1: - df = df[df["HouseNo"] == str(house_number)] + df = df[df["HouseNo"].astype(str) == str(house_number)] if df.shape[0] != 1: df = df[df["matching_postcode"].str.lower().str.contains(row["Post Code"].lower().strip())] if df.shape[0] != 1: @@ -506,6 +527,7 @@ class DataLoader: def merge_ciga_to_assets(self, asset_list, ciga_list, ha_name): matching_lookup = [] unmatched_addresses = [] + for _, row in tqdm(ciga_list.iterrows(), total=len(ciga_list)): house_number = row["HouseNo"] @@ -528,7 +550,7 @@ class DataLoader: } ) continue - + if df.shape[0] != 1: # We split house number and postcode out of the matched address for ciga @@ -561,9 +583,6 @@ class DataLoader: if len(unmatched_addresses) != self.UNMATCHED_CIGA[ha_name]: raise ValueError(f"Unmatched addresses for {ha_name} is not as expected") - # In ciga: 35 Valley Drive, Leicester, LE3 3EE - # - matching_lookup = pd.DataFrame(matching_lookup) # Merge onto the ciga list @@ -612,7 +631,7 @@ class DataLoader: for filepath in self.directories: ha_name = filepath.split("/")[2] # Load asset list - logger.info("Loading asset list for {}".format(ha_name)) + logger.info("Loading data for {}".format(ha_name)) asset_list, survey_list, ciga_list = self.load_asset_list( filepath=filepath, ha_name=ha_name, From d038d668b8fa8360577ef0f83403e3d4cb6e854e Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Thu, 22 Feb 2024 17:52:20 +0000 Subject: [PATCH 303/526] ha107 matching 73% complete --- etl/eligibility/ha_15_32/ha_analysis_batch_3.py | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index 9e850c0e..46581eca 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -433,6 +433,16 @@ class DataLoader: @staticmethod def correct_ha107_survey_list(survey_list): + # Replace Front Street, East Stockham with Front Street, East Stockwith + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace( + "Front Street, East Stockham", "Front Street, East Stockwith" + ) + + # Replace "HONEYHOLE L;ANE" with "HONEYHOLES LANE" + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace( + "HONEYHOLE L;ANE", "HONEYHOLES LANE" + ) + return survey_list def merge_surveys_to_assets(self, asset_list, survey_list, ha_name): From ccb764d4a968efeaef67a068f1cc21f92dfe7000 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Thu, 22 Feb 2024 18:01:24 +0000 Subject: [PATCH 304/526] ha107 matching 74% done --- etl/eligibility/ha_15_32/ha_analysis_batch_3.py | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index 46581eca..60ef485a 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -443,6 +443,16 @@ class DataLoader: "HONEYHOLE L;ANE", "HONEYHOLES LANE" ) + # Replace "Croft Lane Cherry Willingham, Lincoln" with "Croft Lane, Cherry Willingham, Lincoln" + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace( + "Croft Lane Cherry Willingham, Lincoln", "Croft Lane, Cherry Willingham, Lincoln" + ) + + # Replace "Snelland Road Wickenby, Lincoln" with "Snelland Road, Wickenby, Lincoln" + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace( + "Snelland Road Wickenby, Lincoln", "Snelland Road, Wickenby, Lincoln" + ) + return survey_list def merge_surveys_to_assets(self, asset_list, survey_list, ha_name): From cef20c6e2cf97275146f36f97349f4d0a46d2410 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Fri, 23 Feb 2024 12:08:44 +0000 Subject: [PATCH 305/526] completed matching for ha107, added levenstein method --- .../ha_15_32/ha_analysis_batch_3.py | 64 +++++++++++++++++++ 1 file changed, 64 insertions(+) diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index 60ef485a..bf3e6d31 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -1,6 +1,7 @@ import os import re import openpyxl +import Levenshtein from pathlib import Path import msgpack from datetime import datetime @@ -453,6 +454,41 @@ class DataLoader: "Snelland Road Wickenby, Lincoln", "Snelland Road, Wickenby, Lincoln" ) + # Replace Reasby Road Snelland, Lincoln with Reasby Road, Snelland, Lincoln + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace( + "Reasby Road Snelland, Lincoln", "Reasby Road, Snelland, Lincoln" + ) + + # Replace Silver Street Bardney, Lincoln with Silver Street, Bardney, Lincoln + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace( + "Silver Street Bardney, Lincoln", "Silver Street, Bardney, Lincoln" + ) + + # Replace Manor Close Bardney, Lincoln with Manor Close, Bardney, Lincoln + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace( + "Manor Close Bardney, Lincoln", "Manor Close, Bardney, Lincoln" + ) + + # Replace Ferry Road Southrey, Lincoln with Ferry Road, Southrey, Lincoln + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace( + "Ferry Road Southrey, Lincoln", "Ferry Road, Southrey, Lincoln" + ) + + # Replace Harvey Kent Gardens Bardney, Lincoln with Harvey Kent Gardens, Bardney, Lincoln + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace( + "Harvey Kent Gardens Bardney, Lincoln", "Harvey Kent Gardens, Bardney, Lincoln" + ) + + # Replace Wragby Road Bardney, Lincoln with Wragby Road, Bardney, Lincoln + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace( + "Wragby Road Bardney, Lincoln", "Wragby Road, Bardney, Lincoln" + ) + + # Replace SPRINKHILL ROAD with SPINKHILL ROAD + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace( + "SPRINKHILL ROAD", "SPINKHILL ROAD" + ) + return survey_list def merge_surveys_to_assets(self, asset_list, survey_list, ha_name): @@ -481,10 +517,35 @@ class DataLoader: ].copy() df = df[df["matching_address"].str.contains(str(house_number))] + + if df.empty: + print(row["Street / Block Name"]) + print(house_number) + print(row["Post Code"]) + raise ValueError("Investigate") + if df.shape[0] != 1: df = df[df["HouseNo"].astype(str) == str(house_number)] if df.shape[0] != 1: df = df[df["matching_postcode"].str.lower().str.contains(row["Post Code"].lower().strip())] + + full_key = str(row["NO."]).lower().strip() + row["Street / Block Name"].lower().strip() + row[ + "Town/Area"].lower().strip() + row["Post Code"].lower().strip() + # Remove any spaces from the full key + full_key = full_key.replace(" ", "") + + match_to = df["matching_address"].tolist() + # Strip out punctuation and spaces + match_to = [re.sub(r'[^\w\s]', '', x) for x in match_to] + match_to = [x.replace(" ", "") for x in match_to] + + # Perform matching between full key and match_to + distances = [Levenshtein.distance(full_key, s) for s in match_to] + best_match_index = distances.index(min(distances)) + # We might want to consider a threshold for the distance, however for the momeny, + # we don't consider this for the moment + df = df.iloc[best_match_index:best_match_index + 1] + if df.shape[0] != 1: postcode_lower = row["Post Code"].lower() if postcode_lower in missed_postcodes: @@ -510,6 +571,9 @@ class DataLoader: matching_lookup = pd.DataFrame(matching_lookup) + if matching_lookup.shape[0] != survey_list.shape[0]: + raise ValueError("Mismatch in the number of survey rows and matching lookup rows") + # Merge onto the survey list survey_list = survey_list.merge(matching_lookup, how='left', on="survey_list_row_id") From bc0a2b8e37eab7dcfc4130b18b5c3ebe1c0953cc Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Fri, 23 Feb 2024 12:11:00 +0000 Subject: [PATCH 306/526] debygging location of dropping nulls from ciga list --- etl/eligibility/ha_15_32/ha_analysis_batch_3.py | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index bf3e6d31..f1709d6e 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -232,12 +232,11 @@ class DataLoader: ciga_list = pd.DataFrame(ciga_rows, columns=[cell.value for cell in ciga_sheet[1]]) # Remove columns that are None ciga_list = ciga_list.loc[:, ciga_list.columns.notnull()] - # Remove rows with missing postcode which happens in a small number of cases - ciga_list = ciga_list[~pd.isnull(ciga_list["Matched Postcode"])] - - ciga_list["ciga_list_row_id"] = [ha_name + "_ciga_" + str(i) for i in range(0, len(ciga_list))] # Perform ciga list merge if not ciga_list.empty: + # Remove rows with missing postcode which happens in a small number of cases + ciga_list = ciga_list[~pd.isnull(ciga_list["Matched Postcode"])] + ciga_list["ciga_list_row_id"] = [ha_name + "_ciga_" + str(i) for i in range(0, len(ciga_list))] ciga_list = self.create_ciga_list_house_no(ha_name, ciga_list) ciga_list = self.merge_ciga_to_assets(asset_list, ciga_list, ha_name) From 5a451f2f8239aaac05237c93b99c435de83a8652 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Fri, 23 Feb 2024 12:20:46 +0000 Subject: [PATCH 307/526] fixed logic for missed postcodes for ha6 --- .../ha_15_32/ha_analysis_batch_3.py | 21 ++++++++++--------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index f1709d6e..95ca3901 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -518,6 +518,17 @@ class DataLoader: df = df[df["matching_address"].str.contains(str(house_number))] if df.empty: + + postcode_lower = row["Post Code"].lower() + if postcode_lower in missed_postcodes: + matching_lookup.append( + { + "survey_list_row_id": row["survey_list_row_id"], + "asset_list_row_id": None, + } + ) + continue + print(row["Street / Block Name"]) print(house_number) print(row["Post Code"]) @@ -546,16 +557,6 @@ class DataLoader: df = df.iloc[best_match_index:best_match_index + 1] if df.shape[0] != 1: - postcode_lower = row["Post Code"].lower() - if postcode_lower in missed_postcodes: - matching_lookup.append( - { - "survey_list_row_id": row["survey_list_row_id"], - "asset_list_row_id": None, - } - ) - continue - print(row["Street / Block Name"]) print(house_number) print(row["Post Code"]) From 75183902c193a8c5634b8cbc9c7bf045dd5a0898 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Fri, 23 Feb 2024 15:54:28 +0000 Subject: [PATCH 308/526] completed creationg of matching tables --- .../ha_15_32/ha_analysis_batch_3.py | 63 ++++++++++++++----- 1 file changed, 48 insertions(+), 15 deletions(-) diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index 95ca3901..2d95a946 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -43,7 +43,8 @@ class DataLoader: # the asset list "HA14": 4, # There's just too many unmatched here - if we identify some homes that - "HA6": 117 + "HA6": 117, + "HA107": 52 } def __init__(self, directories, use_cache): @@ -130,7 +131,7 @@ class DataLoader: :return: """ - if ha_name in ["HA6", "HA14"]: + if ha_name in ["HA6", "HA14", "HA107"]: split_addresses = ciga_list['Matched Address'].str.split(',', expand=True) house_numbers = split_addresses[0].str.split(' ', expand=True) # THe first column should be HouseNo - we aren't interested in the other columns, but we don't know how @@ -153,8 +154,11 @@ class DataLoader: @staticmethod def get_ciga_sheetname(workbook): + if "CIGA Checks" in workbook.sheetnames: return "CIGA Checks" + elif "CIGA checks" in workbook.sheetnames: + return "CIGA checks" else: return "CIGA" @@ -490,6 +494,22 @@ class DataLoader: return survey_list + @staticmethod + def levenstein_match(matching_string, df): + match_to = df["matching_address"].tolist() + # Strip out punctuation and spaces + match_to = [re.sub(r'[^\w\s]', '', x) for x in match_to] + match_to = [x.replace(" ", "") for x in match_to] + + # Perform matching between full key and match_to + distances = [Levenshtein.distance(matching_string, s) for s in match_to] + best_match_index = distances.index(min(distances)) + # We might want to consider a threshold for the distance, however for the momeny, + # we don't consider this for the moment + df = df.iloc[best_match_index:best_match_index + 1] + + return df + def merge_surveys_to_assets(self, asset_list, survey_list, ha_name): # Correct the survey list @@ -544,17 +564,7 @@ class DataLoader: # Remove any spaces from the full key full_key = full_key.replace(" ", "") - match_to = df["matching_address"].tolist() - # Strip out punctuation and spaces - match_to = [re.sub(r'[^\w\s]', '', x) for x in match_to] - match_to = [x.replace(" ", "") for x in match_to] - - # Perform matching between full key and match_to - distances = [Levenshtein.distance(full_key, s) for s in match_to] - best_match_index = distances.index(min(distances)) - # We might want to consider a threshold for the distance, however for the momeny, - # we don't consider this for the moment - df = df.iloc[best_match_index:best_match_index + 1] + df = self.levenstein_match(full_key, df) if df.shape[0] != 1: print(row["Street / Block Name"]) @@ -623,7 +633,7 @@ class DataLoader: asset_list["matching_address"].str.contains(row["Matched Postcode"].lower().strip()) ].copy() - df = df[df["HouseNo"] == str(house_number)] + df = df[df["HouseNo"].astype(str) == str(house_number)] # For ciga, we skip if df.empty: unmatched_addresses.append( @@ -641,7 +651,9 @@ class DataLoader: street_name = self.extract_streetname( address=row["Matched Address"], house_number=house_number, postcode=row["Matched Postcode"] ) - df = df[df["matching_address"].str.replace(",", "").str.contains(street_name)] + # We check if any of the rows contains the street name and if they do, filter + if any(df["matching_address"].str.replace(",", "").str.contains(street_name)): + df = df[df["matching_address"].str.replace(",", "").str.contains(street_name)] if df.shape[0] != 1: # The final check we do here is to check for the presence of flat in the address @@ -650,6 +662,13 @@ class DataLoader: else: df = df[df["matching_address"].str.contains("flat") == False] + if df.shape[0] != 1: + full_key = str(row["HouseNo"]).lower().strip() + row["Matched Address"].lower().strip() + row[ + "Matched Postcode"].lower().strip() + # Remove any spaces from the full key + full_key = full_key.replace(" ", "") + df = self.levenstein_match(full_key, df) + if df.shape[0] != 1: print(row["Street / Block Name"]) print(house_number) @@ -737,6 +756,19 @@ class DataLoader: s3_file_name="ha-analysis/batch3-inputs.pickle", ) + def ha_facts_and_figures(self): + """ + This function will return a dictionary of facts and figures for each HA + :return: + """ + ha_facts_and_figures = [] + for ha_name, data_assets in self.data.items(): + asset_list = data_assets["asset_list"] + survey_list = data_assets["survey_list"] + ciga_list = data_assets["ciga_list"] + + return ha_facts_and_figures + def get_epc_data( loader, cleaned, cleaning_data, created_at, photo_supply_lookup, floor_area_decile_thresholds, pull_data=True @@ -1511,6 +1543,7 @@ def app(): loader = DataLoader(directories, use_cache) loader.load() + loader.ha_facts_and_figures() # TODO: We probably need to make sure that we have all of the columns that we need From 6693ab4ca6e12a6b9da112e8c8a3d48b1fe6ad87 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Fri, 23 Feb 2024 17:13:18 +0000 Subject: [PATCH 309/526] Added in read of december figures --- .../ha_15_32/ha_analysis_batch_3.py | 55 +++++++++++++++++-- 1 file changed, 49 insertions(+), 6 deletions(-) diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index 2d95a946..dbe12e92 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -47,11 +47,13 @@ class DataLoader: "HA107": 52 } - def __init__(self, directories, use_cache): + def __init__(self, directories, december_figures_filepath, use_cache): self.directories = directories self.use_cache = use_cache + self.december_figures_filepath = december_figures_filepath self.data = {} + self.december_figures = None def create_asset_list_matching_address(self, ha_name, asset_list): @@ -730,6 +732,11 @@ class DataLoader: ) return + # Get the december figures, which is just a csv + self.december_figures = pd.read_csv(self.december_figures_filepath) + # Remove the spaces in HA Name + self.december_figures["HA Name"] = december_figures["HA Name"].str.replace(" ", "") + data = {} for filepath in self.directories: ha_name = filepath.split("/")[2] @@ -763,9 +770,43 @@ class DataLoader: """ ha_facts_and_figures = [] for ha_name, data_assets in self.data.items(): - asset_list = data_assets["asset_list"] - survey_list = data_assets["survey_list"] - ciga_list = data_assets["ciga_list"] + asset_list = data_assets["asset_list"].copy() + survey_list = data_assets["survey_list"].copy() + ciga_list = data_assets["ciga_list"].copy() + + asset_list["ECO Eligibility"].value_counts() + + # We merge on ciga and update the status to reflect if it has failed ciga or not + # If Guarantee is Yes, this means that there is a guarantee in place, and the property failed the CIGA + # check + asset_list = asset_list.merge( + ciga_list[["asset_list_row_id", "Guarantee"]], + how='left', + on="asset_list_row_id" + ) + + asset_list["ECO Eligibility"].value_counts() + + asset_list["ECO Eligibility"] = np.where( + ( + asset_list["ECO Eligibility"].str.contains("(Subject to CIGA)", regex=False) & + (asset_list["Guarantee"] == "Yes") + ), + "Failed CIGA", + asset_list["ECO Eligibility"] + ) + + # We replace any remaining "Subject to CIGA" with pass Ciga + asset_list["ECO Eligibility"] = np.where( + asset_list["ECO Eligibility"].str.contains("Subject to CIGA", regex=False), + "Pass CIGA", + asset_list["ECO Eligibility"] + ) + + asset_list = asset_list.drop(columns=["Guarantee"]) + + # Update the asset list with the categorisations + self.data[ha_name]["asset_list"] = asset_list return ha_facts_and_figures @@ -1532,16 +1573,18 @@ def app(): :return: """ - use_cache = False + use_cache = True # List all of the data in the folder directories = [str(list(entry.iterdir())[0]) for entry in DATA_FOLDER.iterdir() if entry.is_dir()] + # Grab the December HA figures filepath + december_figures_filepath = "local_data/ha_data/HA_December_figures.csv" priority_has = ["HA1", "HA6", "HA14", "HA39", "HA107"] # Filter down the directories to only the priority HAs directories = [d for d in directories if d.split("/")[2] in priority_has] - loader = DataLoader(directories, use_cache) + loader = DataLoader(directories, december_figures_filepath, use_cache) loader.load() loader.ha_facts_and_figures() From 8b48dbac9e5e9f25e3c738c1322b1f3a9fbb11db Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Mon, 26 Feb 2024 13:37:50 +0000 Subject: [PATCH 310/526] working on eco eligibility code --- .../ha_15_32/ha_analysis_batch_3.py | 153 ++++++++++++++---- 1 file changed, 122 insertions(+), 31 deletions(-) diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index dbe12e92..fdc00876 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -725,6 +725,13 @@ class DataLoader: def load(self): + # Get the december figures, which is just a csv + self.december_figures = pd.read_csv(self.december_figures_filepath) + # Remove the spaces in HA Name + self.december_figures["HA Name"] = self.december_figures["HA Name"].str.replace(" ", "") + self.december_figures["ECO4"] = self.december_figures["ECO4"].astype("Int64") + self.december_figures["GBIS"] = self.december_figures["GBIS"].astype("Int64") + if self.use_cache: self.data = read_pickle_from_s3( bucket_name="retrofit-datalake-dev", @@ -732,11 +739,6 @@ class DataLoader: ) return - # Get the december figures, which is just a csv - self.december_figures = pd.read_csv(self.december_figures_filepath) - # Remove the spaces in HA Name - self.december_figures["HA Name"] = december_figures["HA Name"].str.replace(" ", "") - data = {} for filepath in self.directories: ha_name = filepath.split("/")[2] @@ -768,46 +770,135 @@ class DataLoader: This function will return a dictionary of facts and figures for each HA :return: """ + + scheme_map = { + "ECO4": "ECO4", + "AFFORDABLE WARMTH": "ECO4", + } + + eco_eligibility_map = { + "not eligble": "not eligible" + } + ha_facts_and_figures = [] for ha_name, data_assets in self.data.items(): asset_list = data_assets["asset_list"].copy() survey_list = data_assets["survey_list"].copy() ciga_list = data_assets["ciga_list"].copy() - asset_list["ECO Eligibility"].value_counts() + # Change the column name if it's ECO eligibility + asset_list = asset_list.rename(columns={"ECO eligibility": "ECO Eligibility"}) + # Remove surplus whitespace from the ECO Eligibility column + asset_list["ECO Eligibility"] = asset_list["ECO Eligibility"].str.strip() + # Push to lower case + asset_list["ECO Eligibility"] = asset_list["ECO Eligibility"].str.lower() + # Remap + asset_list["ECO Eligibility"] = asset_list["ECO Eligibility"].map(eco_eligibility_map) - # We merge on ciga and update the status to reflect if it has failed ciga or not - # If Guarantee is Yes, this means that there is a guarantee in place, and the property failed the CIGA - # check - asset_list = asset_list.merge( - ciga_list[["asset_list_row_id", "Guarantee"]], - how='left', - on="asset_list_row_id" - ) + if not ciga_list.empty: + # We merge on ciga and update the status to reflect if it has failed ciga or not + # If Guarantee is Yes, this means that there is a guarantee in place, and the property failed the CIGA + # check + asset_list = asset_list.merge( + ciga_list[["asset_list_row_id", "Guarantee"]], + how='left', + on="asset_list_row_id" + ) - asset_list["ECO Eligibility"].value_counts() + asset_list["ECO Eligibility"].value_counts() - asset_list["ECO Eligibility"] = np.where( - ( - asset_list["ECO Eligibility"].str.contains("(Subject to CIGA)", regex=False) & - (asset_list["Guarantee"] == "Yes") - ), - "Failed CIGA", - asset_list["ECO Eligibility"] - ) + asset_list["ECO Eligibility"] = np.where( + ( + asset_list["ECO Eligibility"].str.contains("(subject to ciga)", regex=False) & + (asset_list["Guarantee"] == "Yes") + ), + "failed ciga", + asset_list["ECO Eligibility"] + ) - # We replace any remaining "Subject to CIGA" with pass Ciga - asset_list["ECO Eligibility"] = np.where( - asset_list["ECO Eligibility"].str.contains("Subject to CIGA", regex=False), - "Pass CIGA", - asset_list["ECO Eligibility"] - ) + # We replace any remaining "Subject to CIGA" with pass Ciga + asset_list["ECO Eligibility"] = np.where( + asset_list["ECO Eligibility"].str.contains("Subject to CIGA", regex=False), + "eco4 - passed ciga", + asset_list["ECO Eligibility"] + ) - asset_list = asset_list.drop(columns=["Guarantee"]) + asset_list = asset_list.drop(columns=["Guarantee"]) - # Update the asset list with the categorisations + # Update the asset list with the categorisations and rename changes self.data[ha_name]["asset_list"] = asset_list + # Report on sales + sales_report = {} + if not survey_list.empty: + scheme_column = survey_list.columns[0] + # We clean up the survey list installation or cancelled + survey_list["installed_or_cancelled_clean"] = survey_list["INSTALLED OR CANCELLED"].str.lower() + # Remove all punctuation + survey_list["installed_or_cancelled_clean"] = survey_list["installed_or_cancelled_clean"].str.replace( + r'[^\w\s]', '', regex=True + ) + # Remove double spaces + survey_list["installed_or_cancelled_clean"] = survey_list["installed_or_cancelled_clean"].str.replace( + r'\s+', ' ', regex=True + ) + # Remove trailing spaces + survey_list["installed_or_cancelled_clean"] = survey_list["installed_or_cancelled_clean"].str.strip() + + # Remap the values in the scheme column + survey_list[scheme_column] = survey_list[scheme_column].map(scheme_map) + + survey_list["installation_status"] = None + survey_list["installation_status"] = np.where( + survey_list["installed_or_cancelled_clean"].isin(["installed", "installed see notes"]), + "installed", + survey_list["installation_status"] + ) + survey_list["installation_status"] = np.where( + survey_list["installed_or_cancelled_clean"].isin(["cancelled"]), + "cancelled", + survey_list["installation_status"] + ) + # Find partial installations + survey_list["installation_status"] = np.where( + survey_list["installed_or_cancelled_clean"].str.contains("still to be installed"), + "partially installed", + survey_list["installation_status"] + ) + # Find partial cancellations + # TODO: We might have more indications of partial cancellations + survey_list["installation_status"] = np.where( + survey_list["installed_or_cancelled_clean"].isin(["loft cancelled"]), + "partially cancelled", + survey_list["installation_status"] + ) + + # Finally, for other cases, we set the status to "in progress" + survey_list["installation_status"] = survey_list["installation_status"].fillna("in progress") + + # We concatenate the scheme name with the installation status + survey_list["installation_status"] = ( + survey_list[scheme_column] + " - " + survey_list["installation_status"] + ) + + # We get the sales + sales_report = survey_list["installation_status"].value_counts().to_dict() + + ha_facts_and_figures.append( + { + "HA Name": ha_name, + **asset_list["ECO Eligibility"].value_counts().to_dict(), + **sales_report + } + ) + + ha_facts_and_figures = pd.DataFrame(ha_facts_and_figures) + ha_facts_and_figures = ha_facts_and_figures.drop( + columns=["not eligible"] + ) + + ha_facts_and_figures = self.december_figures.merge(ha_facts_and_figures, how="inner", on="HA Name") + return ha_facts_and_figures From ae2cc3fab57687bdc83d4aef4d60c23bd3a3b5e8 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Mon, 26 Feb 2024 14:14:19 +0000 Subject: [PATCH 311/526] working on ha facts and figures --- .../ha_15_32/ha_analysis_batch_3.py | 25 +++++++++++-------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index fdc00876..d75a9f34 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -42,7 +42,7 @@ class DataLoader: # We expect 4 unmatched addresses, which have been validated manually as being in the ciga file but not # the asset list "HA14": 4, - # There's just too many unmatched here - if we identify some homes that + # There's just too many unmatched here "HA6": 117, "HA107": 52 } @@ -786,6 +786,8 @@ class DataLoader: survey_list = data_assets["survey_list"].copy() ciga_list = data_assets["ciga_list"].copy() + asset_list_starting_size = asset_list.shape[0] + # Change the column name if it's ECO eligibility asset_list = asset_list.rename(columns={"ECO eligibility": "ECO Eligibility"}) # Remove surplus whitespace from the ECO Eligibility column @@ -793,19 +795,17 @@ class DataLoader: # Push to lower case asset_list["ECO Eligibility"] = asset_list["ECO Eligibility"].str.lower() # Remap - asset_list["ECO Eligibility"] = asset_list["ECO Eligibility"].map(eco_eligibility_map) + asset_list["ECO Eligibility"] = asset_list["ECO Eligibility"].replace(eco_eligibility_map) if not ciga_list.empty: # We merge on ciga and update the status to reflect if it has failed ciga or not # If Guarantee is Yes, this means that there is a guarantee in place, and the property failed the CIGA # check - asset_list = asset_list.merge( - ciga_list[["asset_list_row_id", "Guarantee"]], - how='left', - on="asset_list_row_id" - ) - asset_list["ECO Eligibility"].value_counts() + ciga_list_to_merge = ciga_list[["asset_list_row_id", "Guarantee"]].copy() + ciga_list_to_merge = ciga_list_to_merge[~pd.isnull(ciga_list_to_merge["asset_list_row_id"])] + + asset_list = asset_list.merge(ciga_list_to_merge, how='left', on="asset_list_row_id") asset_list["ECO Eligibility"] = np.where( ( @@ -818,7 +818,10 @@ class DataLoader: # We replace any remaining "Subject to CIGA" with pass Ciga asset_list["ECO Eligibility"] = np.where( - asset_list["ECO Eligibility"].str.contains("Subject to CIGA", regex=False), + ( + asset_list["ECO Eligibility"].str.contains("(subject to ciga)", regex=False) & + (asset_list["Guarantee"] == "No") + ), "eco4 - passed ciga", asset_list["ECO Eligibility"] ) @@ -826,6 +829,8 @@ class DataLoader: asset_list = asset_list.drop(columns=["Guarantee"]) # Update the asset list with the categorisations and rename changes + if asset_list.shape[0] != asset_list_starting_size: + raise ValueError("The asset list has changed in size") self.data[ha_name]["asset_list"] = asset_list # Report on sales @@ -846,7 +851,7 @@ class DataLoader: survey_list["installed_or_cancelled_clean"] = survey_list["installed_or_cancelled_clean"].str.strip() # Remap the values in the scheme column - survey_list[scheme_column] = survey_list[scheme_column].map(scheme_map) + survey_list[scheme_column] = survey_list[scheme_column].replace(scheme_map) survey_list["installation_status"] = None survey_list["installation_status"] = np.where( From 8ef0198606486cf3eee9abf84723181ef221ea6b Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Mon, 26 Feb 2024 16:22:50 +0000 Subject: [PATCH 312/526] handling deduping ciga match --- .../ha_15_32/ha_analysis_batch_3.py | 21 +++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index d75a9f34..6ffe50e3 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -41,7 +41,7 @@ class DataLoader: UNMATCHED_CIGA = { # We expect 4 unmatched addresses, which have been validated manually as being in the ciga file but not # the asset list - "HA14": 4, + "HA14": 3, # There's just too many unmatched here "HA6": 117, "HA107": 52 @@ -147,6 +147,17 @@ class DataLoader: return ciga_list + @staticmethod + def dedupe_ciga_list(ciga_list): + ciga_list["unique_key"] = ciga_list["Matched Address"] + ciga_list["Matched Postcode"] + # Remove spaces from the unique key + ciga_list["unique_key"] = ciga_list["unique_key"].str.replace(" ", "") + # Remove punctuation from the unique key + ciga_list["unique_key"] = ciga_list["unique_key"].str.replace(r'[^\w\s]', '') + # Drop duplicated keys + ciga_list = ciga_list[~ciga_list["unique_key"].duplicated()] + return ciga_list + @staticmethod def get_asset_sheetname(workbook): if "Asset List" in workbook.sheetnames: @@ -244,6 +255,7 @@ class DataLoader: ciga_list = ciga_list[~pd.isnull(ciga_list["Matched Postcode"])] ciga_list["ciga_list_row_id"] = [ha_name + "_ciga_" + str(i) for i in range(0, len(ciga_list))] ciga_list = self.create_ciga_list_house_no(ha_name, ciga_list) + ciga_list = self.dedupe_ciga_list(ciga_list) ciga_list = self.merge_ciga_to_assets(asset_list, ciga_list, ha_name) return asset_list, survey_list, ciga_list @@ -686,10 +698,15 @@ class DataLoader: # We have an acceptable number of ciga failures for each HA if len(unmatched_addresses) != self.UNMATCHED_CIGA[ha_name]: - raise ValueError(f"Unmatched addresses for {ha_name} is not as expected") + raise ValueError( + f"Unmatched addresses for {ha_name} is not as expected, got {len(unmatched_addresses)} unmatched") matching_lookup = pd.DataFrame(matching_lookup) + # Check dupes as this will cause problems later on + if matching_lookup["asset_list_row_id"].duplicated().any(): + raise ValueError("Duplicated asset list row ids") + # Merge onto the ciga list ciga_list = ciga_list.merge(matching_lookup, how='left', on="ciga_list_row_id") From 78f5226ad7a5ec81e4da1ca6f9e78565146e0457 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Mon, 26 Feb 2024 16:38:14 +0000 Subject: [PATCH 313/526] put together ha facts and figures --- etl/eligibility/ha_15_32/ha_analysis_batch_3.py | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index 6ffe50e3..bd4d5128 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -44,7 +44,7 @@ class DataLoader: "HA14": 3, # There's just too many unmatched here "HA6": 117, - "HA107": 52 + "HA107": 51 } def __init__(self, directories, december_figures_filepath, use_cache): @@ -54,6 +54,7 @@ class DataLoader: self.data = {} self.december_figures = None + self.ha_facts_and_figures = None def create_asset_list_matching_address(self, ha_name, asset_list): @@ -794,7 +795,8 @@ class DataLoader: } eco_eligibility_map = { - "not eligble": "not eligible" + "not eligble": "not eligible", + "eco 4(subject to ciga)": "eco4 (subject to ciga)", } ha_facts_and_figures = [] @@ -919,9 +921,15 @@ class DataLoader: columns=["not eligible"] ) - ha_facts_and_figures = self.december_figures.merge(ha_facts_and_figures, how="inner", on="HA Name") + ha_facts_and_figures = ha_facts_and_figures.fillna(0) + # Make all columns apart from HA NAme integers + for col in ha_facts_and_figures.columns[1:]: + ha_facts_and_figures[col] = ha_facts_and_figures[col].astype(int) - return ha_facts_and_figures + ha_facts_and_figures = self.december_figures.merge(ha_facts_and_figures, how="inner", on="HA Name") + ha_facts_and_figures = ha_facts_and_figures.fillna(0) + + self.ha_facts_and_figures = ha_facts_and_figures def get_epc_data( From c18740eebda1a2b307a91e215f78fdeafcad8402 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Mon, 26 Feb 2024 18:44:11 +0000 Subject: [PATCH 314/526] updating eligibility detection --- etl/eligibility/Eligibility.py | 57 +-- .../ha_15_32/ha_analysis_batch_3.py | 402 ++++++++++-------- 2 files changed, 249 insertions(+), 210 deletions(-) diff --git a/etl/eligibility/Eligibility.py b/etl/eligibility/Eligibility.py index 906ff594..b09d2df5 100644 --- a/etl/eligibility/Eligibility.py +++ b/etl/eligibility/Eligibility.py @@ -340,7 +340,6 @@ class Eligibility: # Check if the property is suitable for cavity wall self.cavity_insulation() - self.loft_insulation() self.gbis_warmfront = (self.cavity["suitability"]) and ( int(self.epc["current-energy-efficiency"]) <= 68 @@ -384,43 +383,49 @@ class Eligibility: if current_sap >= 69: self.eco4_warmfront = { "eligible": False, - "message": "sap too high", + "message": "SAP too high", "cavity_type": self.cavity["type"], "loft_type": self.loft["thickness_classification"] } return - if post_retrofit_sap is None: - - if current_sap >= 55: - message = "Possibly eligible but property currently EPC D" - else: - message = "subject to post retrofit sap" if is_eligible else "not eligible" - - # Update the message to flag properties that failed just because of a full cavity. - # We need to double check that the wall is a cavity, that the loft is suitable and that the - # sap is within reason - # We can then estimate the age of the cavity fill - if not is_eligible and (current_sap < 69) and self.loft["suitability"] and self.walls["is_cavity_wall"]: - message = "Failed due to full cavity - check cavity age" - + if not is_eligible and current_sap >= 55: self.eco4_warmfront = { - "eligible": is_eligible, - "message": message, + "eligible": False, + "message": "failed fabric and SAP check", "cavity_type": self.cavity["type"], "loft_type": self.loft["thickness_classification"] } return - is_eligible = is_eligible & (post_retrofit_sap >= 69) + if not is_eligible and current_sap < 55: + self.eco4_warmfront = { + "eligible": False, + "message": "failed fabric check", + "cavity_type": self.cavity["type"], + "loft_type": self.loft["thickness_classification"] + } + return - self.eco4_warmfront = { - "eligible": is_eligible, - "message": None, - "cavity_type": self.cavity["type"], - "loft_type": self.loft["thickness_classification"] - } - return + if is_eligible and current_sap >= 55: + self.eco4_warmfront = { + "eligible": True, + "message": "Meets fabric, fails SAP check", + "cavity_type": self.cavity["type"], + "loft_type": self.loft["thickness_classification"] + } + return + + if is_eligible and current_sap < 55: + self.eco4_warmfront = { + "eligible": True, + "message": "Meets fabric and SAP check", + "cavity_type": self.cavity["type"], + "loft_type": self.loft["thickness_classification"] + } + return + + raise ValueError("Implement me") def check_gbis(self): diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index bd4d5128..5dd9b6e1 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -25,6 +25,84 @@ DATA_FOLDER = Path(__file__).parent / "local_data" / "ha_data" logger = setup_logger() load_dotenv(ENV_FILE) +PROPERTY_TYPE_LOOKUP = { + "HA1": { + "built_form": { + 'Mid Terrace': 'Mid-Terrace', + 'Semi-Detached': 'Semi-Detached', + 'End Terrace': 'End-Terrace', + 'Detached': 'Detached', + 'Enclosed Mid': 'Mid-Terrace', + 'Detached Local Connect': 'Detached', + } + }, + "HA6": { + "property_type": { + 'HOUSE': "House", + 'GROUND FLOOR FLAT': "Flat", + 'UPPER FLOOR FLAT': "Flat", + 'MAISONETTE': "Maisonette", + 'BUNGALOW': "Bungalow", + 'WARDEN BUNGALOW': "Bungalow", + 'WARDEN FLAT': "Flat", + 'EXTRACARE SCHEME': "Flat", + } + }, + "HA14": { + "property_type": { + "House": "House", + "Flat": "Flat", + "Bungalow": "Bungalow", + "Maisonette": "Maisonette", + } + }, + "HA39": { + "Semi house": {"property_type": "House", "built_form": "Semi-Detached"}, + "1st floor flat": {"property_type": "Flat", "built_form": None}, + "Mid terrace house": {"property_type": "House", "built_form": "Mid-Terrace"}, + "Ground floor flat": {"property_type": "Flat", "built_form": None}, + "End terrace house": {"property_type": "House", "built_form": "End-Terrace"}, + "Semi bungalow": {"property_type": "Bungalow", "built_form": "Semi-Detached"}, + "End terrace bungalow": {"property_type": "Bungalow", "built_form": "End-Terrace"}, + "2nd floor flat": {"property_type": "Flat", "built_form": None}, + "Mid terrace bungalow": {"property_type": "Bungalow", "built_form": "Mid-Terrace"}, + "3rd floor flat": {"property_type": "Flat", "built_form": None}, + "Detached bungalow": {"property_type": "Bungalow", "built_form": "Detached"}, + "Maisonette": {"property_type": "Maisonette", "built_form": None}, + "Detached house": {"property_type": "House", "built_form": "Detached"}, + "Lower ground floor flat": {"property_type": "Flat", "built_form": None}, + "Dormer bungalow": {"property_type": "Bungalow", "built_form": None}, + "Basement flat": {"property_type": "Flat", "built_form": None}, + "Cluster House": {"property_type": "House", "built_form": "Detached"}, + "2nd/3rd floor duplex flat": {"property_type": "Flat", "built_form": None}, + "Ground floor flat with study": {"property_type": "Flat", "built_form": None}, + "4th floor flat": {"property_type": "Flat", "built_form": None}, + "1st floor flat with study room": {"property_type": "Flat", "built_form": None}, + "2nd floor flat with study": {"property_type": "Flat", "built_form": None}, + }, + "HA107": { + "property_type": { + "HOUSE": "House", + "BUNGALOW": "Bungalow", + "GRD FLOOR FLAT": "Flat", + "FIRST FLOOR FLAT": "Flat", + "SHELTERED BUNGALOW": "Bungalow", + "MAISONETTE": "Maisonette", + "SECOND FLOOR FLAT": "Flat", + "SHELTERED FIRST FLR": "Flat", + "SHELTERED GROUND FLR": "Flat", + "GRD FLOOR BED SIT": "House" + }, + "built_form": { + "Semi Detached": "Semi-Detached", + "Mid Terrace": "Mid-Terrace", + "End Terrace": "End-Terrace", + "Detached": "Detached", + "Detatched": "Detached", + } + } +} + class DataLoader: COLUMN_CONFIG = { @@ -54,7 +132,7 @@ class DataLoader: self.data = {} self.december_figures = None - self.ha_facts_and_figures = None + self.facts_and_figures = None def create_asset_list_matching_address(self, ha_name, asset_list): @@ -929,7 +1007,77 @@ class DataLoader: ha_facts_and_figures = self.december_figures.merge(ha_facts_and_figures, how="inner", on="HA Name") ha_facts_and_figures = ha_facts_and_figures.fillna(0) - self.ha_facts_and_figures = ha_facts_and_figures + self.facts_and_figures = ha_facts_and_figures + + +def get_property_type_and_built_form(property_meta, ha_name): + if ha_name == "HA1": + property_type = property_meta["Asset Type"] + # We correct a small error + if property_type == "a": + property_type = "House" + + # Remap bedsits to flats + if property_type in ["Bedsit", "Room"]: + property_type = "Flat" + + built_form = PROPERTY_TYPE_LOOKUP[ha_name]["built_form"].get(property_meta["Property Type"], None) + elif ha_name == "HA6": + property_type = PROPERTY_TYPE_LOOKUP[ha_name]["property_type"][property_meta["Dwelling type"]] + built_form = property_meta["built_form"] + elif ha_name == "HA14": + if property_meta["Asset Type Description"] == "Block - Repair": + # We try and deduce if it's a flat or house, depending on if it has "room" or "flats" in the address + if "room" in property_meta["Address 1"].lower(): + property_type = "House" + else: + property_type = "Flat" + + else: + property_type = PROPERTY_TYPE_LOOKUP[ha_name]["property_type"][ + property_meta["Asset Type Description"] + ] + + built_form = None + elif ha_name == "HA39": + + property_type_config = PROPERTY_TYPE_LOOKUP[ha_name].get(property_meta["ConstructionStyle"], {}) + property_type = property_type_config.get("property_type", None) + built_form = property_type_config.get("built_form", None) + + if property_type is None: + # We check for the presence of room or flat + if "flat" in property_meta["matching_address"]: + property_type = "Flat" + else: + property_type = "House" + elif ha_name == "HA107": + + dwelling_style = property_meta["Dwelling Style"] + if isinstance(dwelling_style, str): + dwelling_style = dwelling_style.strip() + + property_type = PROPERTY_TYPE_LOOKUP[ha_name]["property_type"].get(property_meta["DwellingType"]) + built_form = PROPERTY_TYPE_LOOKUP[ha_name]["built_form"].get(dwelling_style, None) + + if property_type is None: + if built_form in ["Semi-Detached", "Mid-Terrace", "End-Terrace", "Detached"]: + property_type = "House" + + if "flat" in property_meta["Wall Construction"].lower(): + property_type = "Flat" + + if (property_meta["DwellingType"] == "UNKNOWN") & (property_meta["Dwelling Style"] == 0): + # Hand a few specific cases + property_type = "Bungalow" + + if property_meta["Street"] == "School View": + property_type = "Bungalow" + + else: + raise NotImplementedError("Implement me") + + return property_type, built_form def get_epc_data( @@ -938,84 +1086,6 @@ def get_epc_data( if not loader.data: raise ValueError("Data not found - please run loader.load() first") - property_type_lookup = { - "ha_1": { - "built_form": { - 'Mid Terrace': 'Mid-Terrace', - 'Semi-Detached': 'Semi-Detached', - 'End Terrace': 'End-Terrace', - 'Detached': 'Detached', - 'Enclosed Mid': 'Mid-Terrace', - 'Detached Local Connect': 'Detached', - } - }, - "ha_6": { - "property_type": { - 'HOUSE': "House", - 'GROUND FLOOR FLAT': "Flat", - 'UPPER FLOOR FLAT': "Flat", - 'MAISONETTE': "Maisonette", - 'BUNGALOW': "Bungalow", - 'WARDEN BUNGALOW': "Bungalow", - 'WARDEN FLAT': "Flat", - 'EXTRACARE SCHEME': "Flat", - } - }, - "ha_14": { - "property_type": { - "House": "House", - "Flat": "Flat", - "Bungalow": "Bungalow", - "Maisonette": "Maisonette", - } - }, - "ha_39": { - "Semi house": {"property_type": "House", "built_form": "Semi-Detached"}, - "1st floor flat": {"property_type": "Flat", "built_form": None}, - "Mid terrace house": {"property_type": "House", "built_form": "Mid-Terrace"}, - "Ground floor flat": {"property_type": "Flat", "built_form": None}, - "End terrace house": {"property_type": "House", "built_form": "End-Terrace"}, - "Semi bungalow": {"property_type": "Bungalow", "built_form": "Semi-Detached"}, - "End terrace bungalow": {"property_type": "Bungalow", "built_form": "End-Terrace"}, - "2nd floor flat": {"property_type": "Flat", "built_form": None}, - "Mid terrace bungalow": {"property_type": "Bungalow", "built_form": "Mid-Terrace"}, - "3rd floor flat": {"property_type": "Flat", "built_form": None}, - "Detached bungalow": {"property_type": "Bungalow", "built_form": "Detached"}, - "Maisonette": {"property_type": "Maisonette", "built_form": None}, - "Detached house": {"property_type": "House", "built_form": "Detached"}, - "Lower ground floor flat": {"property_type": "Flat", "built_form": None}, - "Dormer bungalow": {"property_type": "Bungalow", "built_form": None}, - "Basement flat": {"property_type": "Flat", "built_form": None}, - "Cluster House": {"property_type": "House", "built_form": "Detached"}, - "2nd/3rd floor duplex flat": {"property_type": "Flat", "built_form": None}, - "Ground floor flat with study": {"property_type": "Flat", "built_form": None}, - "4th floor flat": {"property_type": "Flat", "built_form": None}, - "1st floor flat with study room": {"property_type": "Flat", "built_form": None}, - "2nd floor flat with study": {"property_type": "Flat", "built_form": None}, - }, - "ha_107": { - "property_type": { - "HOUSE": "House", - "BUNGALOW": "Bungalow", - "GRD FLOOR FLAT": "Flat", - "FIRST FLOOR FLAT": "Flat", - "SHELTERED BUNGALOW": "Bungalow", - "MAISONETTE": "Maisonette", - "SECOND FLOOR FLAT": "Flat", - "SHELTERED FIRST FLR": "Flat", - "SHELTERED GROUND FLR": "Flat", - "GRD FLOOR BED SIT": "House" - }, - "built_form": { - "Semi Detached": "Semi-Detached", - "Mid Terrace": "Mid-Terrace", - "End Terrace": "End-Terrace", - "Detached": "Detached", - "Detatched": "Detached", - } - } - } - outputs = {} for ha_name, data_assets in loader.data.items(): @@ -1049,77 +1119,15 @@ def get_epc_data( if property_meta["matching_postcode"] is None: continue - if ha_name == "ha_1": - property_type = property_meta["Asset Type"] - # We correct a small error - if property_type == "a": - property_type = "House" - - # Remap bedsits to flats - if property_type in ["Bedsit", "Room"]: - property_type = "Flat" - - built_form = property_type_lookup[ha_name]["built_form"].get(property_meta["Property Type"], None) - elif ha_name == "ha_6": - property_type = property_type_lookup[ha_name]["property_type"][property_meta["Dwelling type"]] - built_form = property_meta["built_form"] - elif ha_name == "ha_14": - if property_meta["Asset Type Description"] == "Block - Repair": - # We try and deduce if it's a flat or house, depending on if it has "room" or "flats" in the address - if "room" in property_meta["Address 1"].lower(): - property_type = "House" - else: - property_type = "Flat" - - else: - property_type = property_type_lookup[ha_name]["property_type"][ - property_meta["Asset Type Description"] - ] - - built_form = None - elif ha_name == "ha_39": - - property_type_config = property_type_lookup[ha_name].get(property_meta["ConstructionStyle"], {}) - property_type = property_type_config.get("property_type", None) - built_form = property_type_config.get("built_form", None) - - if property_type is None: - # We check for the presence of room or flat - if "flat" in property_meta["matching_address"]: - property_type = "Flat" - else: - property_type = "House" - elif ha_name == "ha_107": - - dwelling_style = property_meta["Dwelling Style"] - if isinstance(dwelling_style, str): - dwelling_style = dwelling_style.strip() - - property_type = property_type_lookup[ha_name]["property_type"].get(property_meta["DwellingType"]) - built_form = property_type_lookup[ha_name]["built_form"].get(dwelling_style, None) - - if property_type is None: - if built_form in ["Semi-Detached", "Mid-Terrace", "End-Terrace", "Detached"]: - property_type = "House" - - if "flat" in property_meta["Wall Construction"].lower(): - property_type = "Flat" - - if (property_meta["DwellingType"] == "UNKNOWN") & (property_meta["Dwelling Style"] == 0): - # Hand a few specific cases - property_type = "Bungalow" - - if property_meta["Street"] == "School View": - property_type = "Bungalow" - - else: - raise NotImplementedError("Implement me") + property_type, built_form = get_property_type_and_built_form( + property_meta=property_meta, ha_name=ha_name + ) searcher = SearchEpc( address1=str(property_meta["HouseNo"]), postcode=property_meta["matching_postcode"], auth_token=EPC_AUTH_TOKEN, - os_api_key=None, + os_api_key="", full_address=property_meta["matching_address"] ) searcher.ordnance_survey_client.property_type = property_type @@ -1150,9 +1158,21 @@ def get_epc_data( eligibility.check_gbis_warmfront() eligibility.check_eco4_warmfront() - if (not eligibility.eco4_warmfront["eligible"]) and ( - not eligibility.gbis_warmfront - ) and consider_penultimate_epc: + # We check the conditions for checking the penultimate epc + identified_for_gbis = property_meta["ECO Eligibility"] == "gbis" + identified_for_eco4 = property_meta["ECO Eligibility"] in ["eco4"] + + # condition 1 - identified for gbis and not eligible + condition_1 = ( + identified_for_gbis and not eligibility.gbis_warmfront and not eligibility.eco4_warmfront["eligible"] + ) & consider_penultimate_epc + + # condition 2 - identified for eco4 and not eligible + condition_2 = ( + identified_for_eco4 and not eligibility.eco4_warmfront["eligible"] + ) & consider_penultimate_epc + + if identified_for_gbis and not eligibility.gbis_warmfront and not eligibility.eco4_warmfront["eligible"]: # We check the penultimate epc eligibility = Eligibility(epc=penultimate_epc, cleaned=cleaned) eligibility.check_gbis_warmfront() @@ -1161,6 +1181,10 @@ def get_epc_data( # We don't update just to make data cleaning easier if penultimate_epc.get("estimated") is None: older_epcs = [x for x in searcher.data["rows"] if x["lmk-key"] != penultimate_epc["lmk-key"]] + elif identified_for_eco4 and not eligibility.eco4_warmfront["eligible"]: + + else: + blah # If the property is a cavity wall and it's filled, we produce an estimate for the age of the cavity # Loft MUST be suitable @@ -1199,6 +1223,7 @@ def get_epc_data( { "row_id": property_meta["asset_list_row_id"], "uprn": eligibility.epc["uprn"], + "is_estimated": searcher.newest_epc.get("estimated") is not None, "property_type": eligibility.epc["property-type"], "gbis_eligible": eligibility.gbis_warmfront, "eco4_eligible": eligibility.eco4_warmfront["eligible"], @@ -1219,7 +1244,6 @@ def get_epc_data( "cavity_age": cavity_age, **eligibility.walls, **eligibility.roof, - "is_estimated": searcher.newest_epc.get("estimated") is not None, "eligibility_cavity_type": eligibility.eco4_warmfront["cavity_type"], "eligibility_loft_type": eligibility.eco4_warmfront["loft_type"] } @@ -1687,38 +1711,7 @@ def analyse_ha_data(outputs, loader): writer.sheets[sheet].set_column(i, i, width) -def app(): - """ - This app contains the housin association analysis for HAs 1, 6, 14, 39 and 107. - Only HA 6 has surveys - :return: - """ - - use_cache = True - - # List all of the data in the folder - directories = [str(list(entry.iterdir())[0]) for entry in DATA_FOLDER.iterdir() if entry.is_dir()] - # Grab the December HA figures filepath - december_figures_filepath = "local_data/ha_data/HA_December_figures.csv" - - priority_has = ["HA1", "HA6", "HA14", "HA39", "HA107"] - # Filter down the directories to only the priority HAs - directories = [d for d in directories if d.split("/")[2] in priority_has] - - loader = DataLoader(directories, december_figures_filepath, use_cache) - loader.load() - loader.ha_facts_and_figures() - - # TODO: We probably need to make sure that we have all of the columns that we need - - # We load in the additional data required to perform the analysis - - cleaned = read_from_s3( - s3_file_name="cleaned_epc_data/cleaned.bson", - bucket_name="retrofit-data-dev" - ) - cleaned = msgpack.unpackb(cleaned, raw=False) - +def patch_cleaned(cleaned): # Patch to handle the a missing description cleaned["floor-description"].extend( [ @@ -1762,16 +1755,57 @@ def app(): x["another_property_below"] = True x["thermal_transmittance"] = 0 + return cleaned + + +def app(): + """ + This app contains the housin association analysis for HAs 1, 6, 14, 39 and 107. + Only HA 6 has surveys + :return: + """ + + # Determines if we want to use the cached data in s3 + use_cache = True + # Determines if we want to perform the data pull + pull_data = True + + # List all of the data in the folder + directories = [str(list(entry.iterdir())[0]) for entry in DATA_FOLDER.iterdir() if entry.is_dir()] + # Grab the December HA figures filepath + december_figures_filepath = "local_data/ha_data/HA_December_figures.csv" + + priority_has = ["HA1", "HA6", "HA14", "HA39", "HA107"] + # Filter down the directories to only the priority HAs + directories = [d for d in directories if d.split("/")[2] in priority_has] + + loader = DataLoader(directories, december_figures_filepath, use_cache) + loader.load() + loader.ha_facts_and_figures() + + # We load in the additional data required to perform the analysis + cleaned = read_from_s3( + s3_file_name="cleaned_epc_data/cleaned.bson", + bucket_name="retrofit-data-dev" + ) + cleaned = msgpack.unpackb(cleaned, raw=False) + cleaned = patch_cleaned(cleaned) + cleaning_data = read_dataframe_from_s3_parquet( bucket_name="retrofit-data-dev", file_key="sap_change_model/cleaning_dataset.parquet", ) - created_at = datetime.now().isoformat() photo_supply_lookup, floor_area_decile_thresholds = SolarPhotoSupply.load(bucket="retrofit-data-dev") outputs = get_epc_data( - loader, cleaned, cleaning_data, created_at, photo_supply_lookup, floor_area_decile_thresholds, pull_data=False + loader=loader, + cleaned=cleaned, + cleaning_data=cleaning_data, + created_at=created_at, + photo_supply_lookup=photo_supply_lookup, + floor_area_decile_thresholds=floor_area_decile_thresholds, + pull_data=pull_data ) # for ha_name, datasets in outputs.items(): From 807ce14790600dce8a810847f47bc216bcddf6b3 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Mon, 26 Feb 2024 19:09:19 +0000 Subject: [PATCH 315/526] updating the code to do eligibility --- .../ha_15_32/ha_analysis_batch_3.py | 42 +++++++++++++------ 1 file changed, 29 insertions(+), 13 deletions(-) diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index 5dd9b6e1..3d0964c6 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -1164,15 +1164,33 @@ def get_epc_data( # condition 1 - identified for gbis and not eligible condition_1 = ( - identified_for_gbis and not eligibility.gbis_warmfront and not eligibility.eco4_warmfront["eligible"] - ) & consider_penultimate_epc + identified_for_gbis and not eligibility.gbis_warmfront and not eligibility.eco4_warmfront[ + "eligible"] + ) & consider_penultimate_epc # condition 2 - identified for eco4 and not eligible - condition_2 = ( - identified_for_eco4 and not eligibility.eco4_warmfront["eligible"] - ) & consider_penultimate_epc + condition_2 = (identified_for_eco4 and not eligibility.eco4_warmfront[ + "eligible"]) & consider_penultimate_epc - if identified_for_gbis and not eligibility.gbis_warmfront and not eligibility.eco4_warmfront["eligible"]: + # successfully identigied gbis + condition_3 = ( + identified_for_gbis and (eligibility.gbis_warmfront or eligibility.eco4_warmfront["eligible"]) + ) + + # Nothing identified + condition_4 = ( + not identified_for_gbis and not identified_for_eco4 and not eligibility.gbis_warmfront and not + eligibility.eco4_warmfront["eligible"] + ) + + # Not identified but seemingly eligible for eco4 or gbis + condition_5 = ( + not identified_for_gbis and not identified_for_eco4 and ( + eligibility.eco4_warmfront["eligible"] or eligibility.gbis_warmfront + ) + ) + + if condition_1 or condition_2: # We check the penultimate epc eligibility = Eligibility(epc=penultimate_epc, cleaned=cleaned) eligibility.check_gbis_warmfront() @@ -1181,10 +1199,11 @@ def get_epc_data( # We don't update just to make data cleaning easier if penultimate_epc.get("estimated") is None: older_epcs = [x for x in searcher.data["rows"] if x["lmk-key"] != penultimate_epc["lmk-key"]] - elif identified_for_eco4 and not eligibility.eco4_warmfront["eligible"]: - + elif condition_3 or condition_4 or condition_5: + # If we have successfully identified for gbis, we don't need to check the penultimate epc + pass else: - blah + NotImplementedError("Implement me") # If the property is a cavity wall and it's filled, we produce an estimate for the age of the cavity # Loft MUST be suitable @@ -1229,10 +1248,7 @@ def get_epc_data( "eco4_eligible": eligibility.eco4_warmfront["eligible"], "eco4_message": eligibility.eco4_warmfront["message"], "sap": float(eligibility.epc["current-energy-efficiency"]), - "gbis_eligible_future": eligibility.gbis["eligible"], - "gbis_eligible_future_message": eligibility.gbis["message"], - "eco4_eligible_future": eligibility.eco4["eligible"], - "eco4_eligible_future_message": eligibility.eco4["message"], + # Property components "roof": eligibility.roof["clean_description"], "walls": eligibility.walls["clean_description"], From 69dcc73363c43d12076b887707db802384046e07 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Mon, 26 Feb 2024 19:18:58 +0000 Subject: [PATCH 316/526] deugging null lodgement-date --- backend/SearchEpc.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/backend/SearchEpc.py b/backend/SearchEpc.py index 4f6fd33d..4a3f371a 100644 --- a/backend/SearchEpc.py +++ b/backend/SearchEpc.py @@ -609,7 +609,11 @@ class SearchEpc: # Insert an estimated lodgement datetime, with a weighted average estimated_epc["lodgement-datetime"] = self.calculate_weighted_lodgement_datetime(epc_data=epc_data) # Extract logement date - estimated_epc["lodgement-date"] = estimated_epc["lodgement-datetime"].strftime("%Y-%m-%d") + # It is possible that there is still no lodgement date, so we need to handle this + if pd.isnull(estimated_epc["lodgement-datetime"]): + estimated_epc["lodgement-date"] = None + else: + estimated_epc["lodgement-date"] = estimated_epc["lodgement-datetime"].strftime("%Y-%m-%d") estimated_epc["postcode"] = self.postcode estimated_epc["uprn"] = self.uprn From b80ffda392e0601f08dd376cfaacba73e733fc9c Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Mon, 26 Feb 2024 19:29:46 +0000 Subject: [PATCH 317/526] updating eligibility pipeline to factor in ciga --- .../ha_15_32/ha_analysis_batch_3.py | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index 3d0964c6..ecbb4e0a 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -1159,8 +1159,11 @@ def get_epc_data( eligibility.check_eco4_warmfront() # We check the conditions for checking the penultimate epc - identified_for_gbis = property_meta["ECO Eligibility"] == "gbis" + identified_for_gbis = property_meta["ECO Eligibility"] in ["gbis"] identified_for_eco4 = property_meta["ECO Eligibility"] in ["eco4"] + subject_to_ciga = property_meta["ECO Eligibility"] in [ + "eco4 (subject to ciga)", "eco4 - passed ciga", "failed ciga" + ] # condition 1 - identified for gbis and not eligible condition_1 = ( @@ -1179,8 +1182,11 @@ def get_epc_data( # Nothing identified condition_4 = ( - not identified_for_gbis and not identified_for_eco4 and not eligibility.gbis_warmfront and not - eligibility.eco4_warmfront["eligible"] + not identified_for_gbis + and not identified_for_eco4 + and not eligibility.gbis_warmfront + and not subject_to_ciga + and not eligibility.eco4_warmfront["eligible"] ) # Not identified but seemingly eligible for eco4 or gbis @@ -1190,6 +1196,10 @@ def get_epc_data( ) ) + condition_6 = ( + subject_to_ciga and not eligibility.eco4_warmfront["eligible"] + ) + if condition_1 or condition_2: # We check the penultimate epc eligibility = Eligibility(epc=penultimate_epc, cleaned=cleaned) @@ -1199,8 +1209,7 @@ def get_epc_data( # We don't update just to make data cleaning easier if penultimate_epc.get("estimated") is None: older_epcs = [x for x in searcher.data["rows"] if x["lmk-key"] != penultimate_epc["lmk-key"]] - elif condition_3 or condition_4 or condition_5: - # If we have successfully identified for gbis, we don't need to check the penultimate epc + elif condition_3 or condition_4 or condition_5 or condition_6: pass else: NotImplementedError("Implement me") From 281c6f626c833a482a199ba120e1b0e8b1869cf1 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Mon, 26 Feb 2024 23:23:29 +0000 Subject: [PATCH 318/526] working on eligibility --- backend/Property.py | 3 +- etl/eligibility/Eligibility.py | 90 ++++++++-- etl/eligibility/ha_15_32/app.py | 18 +- .../ha_15_32/ha_analysis_batch_3.py | 156 +++++++++--------- 4 files changed, 167 insertions(+), 100 deletions(-) diff --git a/backend/Property.py b/backend/Property.py index 4a55e504..f86e33dc 100644 --- a/backend/Property.py +++ b/backend/Property.py @@ -147,7 +147,8 @@ class Property: # self.base_difference_record.df def adjust_difference_record_with_recommendations( - self, property_recommendations, + self, + property_recommendations, property_representative_recommendations ): """ diff --git a/etl/eligibility/Eligibility.py b/etl/eligibility/Eligibility.py index b09d2df5..bda34923 100644 --- a/etl/eligibility/Eligibility.py +++ b/etl/eligibility/Eligibility.py @@ -145,6 +145,7 @@ class Eligibility: "reason": None, "thickness_classification": thickness_classification } + return # Insulation is already thick enough self.loft = { @@ -164,8 +165,10 @@ class Eligibility: """ is_cavity = self.walls["is_cavity_wall"] - is_empty = (not self.walls["is_filled_cavity"]) or ( + is_empty = (not self.walls["is_filled_cavity"]) + is_as_built = ( self.walls["is_as_built"] and self.walls["insulation_thickness"] not in ["average", "above average"] + and self.walls["is_assumed"] ) is_partial_filled = "partial" in self.walls["clean_description"].lower() # We look for potentially under performing cavities - anything that is assumed, as built and insulated @@ -175,6 +178,7 @@ class Eligibility: is_unfilled_cavity = is_cavity and (is_empty and not is_partial_filled) is_partial_filled_cavity = is_cavity and is_partial_filled + is_assumed_filled_cavity = is_cavity and is_as_built is_underperforming_cavity = is_cavity and is_underperforming # Check if it has internal or external wall insulation @@ -195,6 +199,13 @@ class Eligibility: } return + if is_assumed_filled_cavity: + self.cavity = { + "suitability": True, + "type": "as built assumed", + } + return + if is_partial_filled_cavity: self.cavity = { "suitability": True, @@ -345,7 +356,7 @@ class Eligibility: int(self.epc["current-energy-efficiency"]) <= 68 ) - def check_eco4_warmfront(self, post_retrofit_sap=None): + def check_eco4_warmfront(self): """ This funciton will check if the property is eligible for funding under the ECO4 scheme @@ -377,49 +388,100 @@ class Eligibility: self.cavity_insulation() self.loft_insulation() - # make sure conditions 2 and 3 are true - is_eligible = self.cavity["suitability"] & self.loft["suitability"] - - if current_sap >= 69: + # Case 1: No conditions meet + if not self.cavity["suitability"] and (self.loft["thickness"] > 100) and current_sap >= 55: self.eco4_warmfront = { "eligible": False, - "message": "SAP too high", + "strict": False, + "message": "All conditions fail", "cavity_type": self.cavity["type"], "loft_type": self.loft["thickness_classification"] } return - if not is_eligible and current_sap >= 55: + # Case 2 - perfect match + if (self.cavity["type"] == "empty") and (self.loft["thickness"] <= 100) and (current_sap < 55): self.eco4_warmfront = { - "eligible": False, - "message": "failed fabric and SAP check", + "eligible": True, + "strict": True, + "message": "Perfect suitability", "cavity_type": self.cavity["type"], "loft_type": self.loft["thickness_classification"] } return - if not is_eligible and current_sap < 55: + # Case 2.5 - near perfect match - but we would not recommend this using the model + if self.cavity["suitability"] and (self.loft["thickness"] <= 100) and (current_sap < 55): + self.eco4_warmfront = { + "eligible": True, + "strict": True, + "message": "Perfect suitability", + "cavity_type": self.cavity["type"], + "loft_type": self.loft["thickness_classification"] + } + return + + # Case 3 - cavity is suitable, loft is not, sap is good + if self.cavity["suitability"] and (self.loft["thickness"] > 100) and (current_sap < 55): + self.eco4_warmfront = { + "eligible": True, + "strict": False, + "message": "Meets cavity and sap", + "cavity_type": self.cavity["type"], + "loft_type": self.loft["thickness_classification"] + } + return + + # Case 4 - cavity is not suitable, loft is, sap is not - we say this is not elifible + if not self.cavity["suitability"] and (self.loft["thickness"] <= 100) and (current_sap < 55): self.eco4_warmfront = { "eligible": False, + "strict": False, "message": "failed fabric check", "cavity_type": self.cavity["type"], "loft_type": self.loft["thickness_classification"] } return - if is_eligible and current_sap >= 55: + # Case 5 - cavity and loft suitable, sap too high + if self.cavity["suitability"] and (self.loft["thickness"] <= 100) and (current_sap >= 55): self.eco4_warmfront = { "eligible": True, + "strict": False, "message": "Meets fabric, fails SAP check", "cavity_type": self.cavity["type"], "loft_type": self.loft["thickness_classification"] } return - if is_eligible and current_sap < 55: + # Case 6 - meets just cavity + if self.cavity["suitability"] and (self.loft["thickness"] > 100) and (current_sap >= 55): self.eco4_warmfront = { "eligible": True, - "message": "Meets fabric and SAP check", + "strict": False, + "message": "Meets just cavity", + "cavity_type": self.cavity["type"], + "loft_type": self.loft["thickness_classification"] + } + return + + # Case 7 - fails cavity, loft but meets sap + if not self.cavity["suitability"] and (self.loft["thickness"] > 100) and (current_sap < 55): + self.eco4_warmfront = { + "eligible": False, + "strict": False, + "message": "Fails cavity nd lodt, meets SAP", + "cavity_type": self.cavity["type"], + "loft_type": self.loft["thickness_classification"] + } + return + + # Case 8 - fails cavity, meets loft, fails sap + if not self.cavity["suitability"] and (self.loft["thickness"] <= 100) and (current_sap >= 55): + self.eco4_warmfront = { + "eligible": False, + "strict": False, + "message": "Fails cavity, meets loft, fails SAP", "cavity_type": self.cavity["type"], "loft_type": self.loft["thickness_classification"] } diff --git a/etl/eligibility/ha_15_32/app.py b/etl/eligibility/ha_15_32/app.py index a68bf272..378a0e83 100644 --- a/etl/eligibility/ha_15_32/app.py +++ b/etl/eligibility/ha_15_32/app.py @@ -387,17 +387,19 @@ def prepare_model_data_row( } simulations = [ - [cavity_simulation], - [loft_simulation] + cavity_simulation, + loft_simulation ] - p.adjust_difference_record_with_recommendations(simulations) + recommendation_record = p.base_difference_record.df.to_dict("records")[0].copy() + scoring_dict = p.create_recommendation_scoring_data( + property_id=p.id, + recommendation_record=recommendation_record, + recommendations=simulations, + primary_recommendation_id=cavity_simulation["recommendation_id"] + ) - # Make sure we definitely have the correct data - cavity_scoring = [x for x in p.recommendations_scoring_data if "cavity" in x["id"]][0] - loft_scoring = [x for x in p.recommendations_scoring_data if "loft" in x["id"]][0] - - return [cavity_scoring, loft_scoring] + return [scoring_dict] def get_ha_32data(ha_data, cleaned, cleaning_data, created_at): diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index ecbb4e0a..239fce65 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -1114,7 +1114,7 @@ def get_epc_data( results = [] scoring_data = [] nodata = [] - for index, property_meta in tqdm(asset_list.iterrows(), total=len(asset_list)): + for index, property_meta in tqdm(eco4.iterrows(), total=len(eco4)): if property_meta["matching_postcode"] is None: continue @@ -1226,10 +1226,6 @@ def get_epc_data( # We check the age of the cavity and if it's particularly old, we flag it cavity_age = calculate_cavity_age(newest_epc, older_epcs, cleaned) - # Full checks - eligibility.check_gbis() - eligibility.check_eco4() - if eligibility.eco4_warmfront["eligible"]: if eligibility.epc["uprn"] == "": eligibility.epc["uprn"] = int(property_meta["asset_list_row_id"].split(ha_name)[1]) @@ -1256,8 +1252,8 @@ def get_epc_data( "gbis_eligible": eligibility.gbis_warmfront, "eco4_eligible": eligibility.eco4_warmfront["eligible"], "eco4_message": eligibility.eco4_warmfront["message"], + "eco4_strict": eligibility.eco4_warmfront["strict"], "sap": float(eligibility.epc["current-energy-efficiency"]), - # Property components "roof": eligibility.roof["clean_description"], "walls": eligibility.walls["clean_description"], @@ -1267,91 +1263,97 @@ def get_epc_data( "date_epc": eligibility.epc["lodgement-date"], "loft_thickness": eligibility.roof["insulation_thickness"], "cavity_age": cavity_age, - **eligibility.walls, - **eligibility.roof, "eligibility_cavity_type": eligibility.eco4_warmfront["cavity_type"], "eligibility_loft_type": eligibility.eco4_warmfront["loft_type"] } ) - scoring_df = pd.DataFrame(scoring_data) - scoring_df = scoring_df.drop( - columns=[ - "rdsap_change", "heat_demand_change", "carbon_change", "sap_ending", "heat_demand_ending", - "carbon_ending" - ] - ) - - model_api = ModelApi(portfolio_id="-".join([ha_name, "eligibility"]), timestamp=created_at) - - # scoring_df["is_community"].value_counts() - # scoring_df[scoring_df["is_community"] == "Unknown"] - # property_meta = asset_list[asset_list["asset_list_row_id"] == "ha_67238"].squeeze() - - all_predictions = model_api.predict_all( - df=scoring_df, - bucket="retrofit-data-dev", - prediction_buckets={ - "sap_change_predictions": "retrofit-sap-predictions-dev", - "heat_demand_predictions": "retrofit-heat-predictions-dev", - "carbon_change_predictions": "retrofit-carbon-predictions-dev" - } - ) - results_df = pd.DataFrame(results) + scoring_df = pd.DataFrame(scoring_data) + results_df["post_install_sap"] = None + results_df["eligibility_classification"] = None - predictions = all_predictions["sap_change_predictions"].copy() + eco4 = asset_list[asset_list["ECO Eligibility"] == "eco4"] + z = results_df[results_df["row_id"].isin(eco4["asset_list_row_id"])] + z["walls"].value_counts() + z1 = z[z["walls"] == "Cavity wall, as built, no insulation"] + k = z1[z1["roof"] == "Pitched, 100 mm loft insulation"] + property_meta = asset_list[asset_list["asset_list_row_id"] == k["row_id"].values[0]].squeeze() + z[z["walls"] == "Cavity wall, as built, insulated"]["roof"].value_counts() + z[z["walls"] == "Cavity wall, as built, insulated"]["roof"].value_counts() - predictions = predictions.rename(columns={"property_id": "row_id"}).merge( - results_df[["row_id", "sap"]], how="left", on="row_id" - ) - predictions["sap_uplift"] = predictions["predictions"] - predictions["sap"] - predictions = predictions.groupby("row_id")["sap_uplift"].sum().reset_index() + if not scoring_df.empty: + scoring_df = scoring_df.drop( + columns=[ + "rdsap_change", "heat_demand_change", "carbon_change", "sap_ending", "heat_demand_ending", + "carbon_ending" + ] + ) - results_df = results_df.merge( - predictions[["sap_uplift", "row_id"]], - how="left", - on="row_id" - ) - results_df["post_install_sap"] = results_df["sap"] + results_df["sap_uplift"] + model_api = ModelApi(portfolio_id="-".join([ha_name, "eligibility"]), timestamp=created_at) - eligibility_assessment = [] - for _, row in results_df[results_df["eco4_eligible"] == True].iterrows(): - # The upgrade requirements are dependent on the current SAP - - # If the property is an F or G, it only needs to upgrade to an % - if row["sap"] <= 38: - if row["post_install_sap"] >= 57: - eligibility_classification = "highest confidence" - elif row["post_install_sap"] >= 55: - eligibility_classification = "high confidence" - elif row["post_install_sap"] >= 53: - eligibility_classification = "medium confidence" - else: - eligibility_classification = "unlikely" - else: - - if row["post_install_sap"] >= 71: - eligibility_classification = "highest confidence" - elif row["post_install_sap"] >= 69: - eligibility_classification = "high confidence" - elif row["post_install_sap"] >= 67: - eligibility_classification = "medium confidence" - else: - eligibility_classification = "unlikely" - - eligibility_assessment.append( - { - "row_id": row["row_id"], - "eligibility_classification": eligibility_classification + all_predictions = model_api.predict_all( + df=scoring_df, + bucket="retrofit-data-dev", + prediction_buckets={ + "sap_change_predictions": "retrofit-sap-predictions-dev", + "heat_demand_predictions": "retrofit-heat-predictions-dev", + "carbon_change_predictions": "retrofit-carbon-predictions-dev" } ) - eligibility_assessment = pd.DataFrame(eligibility_assessment) + predictions = all_predictions["sap_change_predictions"].copy() - results_df = results_df.merge( - eligibility_assessment, how="left", on="row_id" - ) + predictions = predictions.rename(columns={"property_id": "row_id"}).merge( + results_df[["row_id", "sap"]], how="left", on="row_id" + ) + predictions["sap_uplift"] = predictions["predictions"] - predictions["sap"] + predictions = predictions.groupby("row_id")["sap_uplift"].sum().reset_index() + + results_df = results_df.merge( + predictions[["sap_uplift", "row_id"]], + how="left", + on="row_id" + ) + results_df["post_install_sap"] = results_df["sap"] + results_df["sap_uplift"] + + eligibility_assessment = [] + for _, row in results_df[results_df["eco4_eligible"] == True].iterrows(): + # The upgrade requirements are dependent on the current SAP + + # If the property is an F or G, it only needs to upgrade to an % + if row["sap"] <= 38: + if row["post_install_sap"] >= 57: + eligibility_classification = "highest confidence" + elif row["post_install_sap"] >= 55: + eligibility_classification = "high confidence" + elif row["post_install_sap"] >= 53: + eligibility_classification = "medium confidence" + else: + eligibility_classification = "unlikely" + else: + + if row["post_install_sap"] >= 71: + eligibility_classification = "highest confidence" + elif row["post_install_sap"] >= 69: + eligibility_classification = "high confidence" + elif row["post_install_sap"] >= 67: + eligibility_classification = "medium confidence" + else: + eligibility_classification = "unlikely" + + eligibility_assessment.append( + { + "row_id": row["row_id"], + "eligibility_classification": eligibility_classification + } + ) + + eligibility_assessment = pd.DataFrame(eligibility_assessment) + + results_df = results_df.merge( + eligibility_assessment, how="left", on="row_id" + ) # We store the results in S3 as a pickle save_pickle_to_s3( From f4d27aa68dea5595037d55e7ad8c54cc9d7967ad Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Mon, 26 Feb 2024 23:30:06 +0000 Subject: [PATCH 319/526] fixing eligibility --- etl/eligibility/Eligibility.py | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/etl/eligibility/Eligibility.py b/etl/eligibility/Eligibility.py index bda34923..15e3158f 100644 --- a/etl/eligibility/Eligibility.py +++ b/etl/eligibility/Eligibility.py @@ -421,8 +421,19 @@ class Eligibility: } return + # Case 3 - cavity is suitable, loft is within 150mm, sap is good + if self.cavity["suitability"] and (self.loft["thickness"] <= 150) and (current_sap < 55): + self.eco4_warmfront = { + "eligible": True, + "strict": False, + "message": "Meets cavity, loft borderline, meets sap", + "cavity_type": self.cavity["type"], + "loft_type": self.loft["thickness_classification"] + } + return + # Case 3 - cavity is suitable, loft is not, sap is good - if self.cavity["suitability"] and (self.loft["thickness"] > 100) and (current_sap < 55): + if self.cavity["suitability"] and (self.loft["thickness"] > 150) and (current_sap < 55): self.eco4_warmfront = { "eligible": True, "strict": False, @@ -444,7 +455,7 @@ class Eligibility: return # Case 5 - cavity and loft suitable, sap too high - if self.cavity["suitability"] and (self.loft["thickness"] <= 100) and (current_sap >= 55): + if self.cavity["suitability"] and (self.loft["thickness"] <= 150) and (current_sap >= 55): self.eco4_warmfront = { "eligible": True, "strict": False, @@ -470,7 +481,7 @@ class Eligibility: self.eco4_warmfront = { "eligible": False, "strict": False, - "message": "Fails cavity nd lodt, meets SAP", + "message": "Fails cavity and loft, meets SAP", "cavity_type": self.cavity["type"], "loft_type": self.loft["thickness_classification"] } From 97ce8dc32ea0edd3d24ecefe942a0eb4e8df418e Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Mon, 26 Feb 2024 23:36:45 +0000 Subject: [PATCH 320/526] fixing eligibility --- etl/eligibility/ha_15_32/ha_analysis_batch_3.py | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index 239fce65..1ba75e2b 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -1114,7 +1114,7 @@ def get_epc_data( results = [] scoring_data = [] nodata = [] - for index, property_meta in tqdm(eco4.iterrows(), total=len(eco4)): + for index, property_meta in tqdm(asset_list.iterrows(), total=len(asset_list)): if property_meta["matching_postcode"] is None: continue @@ -1218,10 +1218,7 @@ def get_epc_data( # Loft MUST be suitable cavity_age = None if ( - eligibility.walls["is_cavity_wall"] and - eligibility.walls["is_filled_cavity"] and - eligibility.loft["suitability"] and - eligibility.eco4_warmfront["message"] == "Failed due to full cavity - check cavity age" + identified_for_eco4 and not eligibility.eco4_warmfront["eligible"] ): # We check the age of the cavity and if it's particularly old, we flag it cavity_age = calculate_cavity_age(newest_epc, older_epcs, cleaned) From 0fbf00451291a09349c0bdeeb67bbc80bd4dc9bc Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Tue, 27 Feb 2024 10:20:55 +0000 Subject: [PATCH 321/526] Expanding gbis eligibiity checks --- etl/eligibility/Eligibility.py | 44 +++++++++++++++++-- .../ha_15_32/ha_analysis_batch_3.py | 20 +++++---- etl/epc/Dataset.py | 16 +++---- 3 files changed, 59 insertions(+), 21 deletions(-) diff --git a/etl/eligibility/Eligibility.py b/etl/eligibility/Eligibility.py index 15e3158f..f7a5ed98 100644 --- a/etl/eligibility/Eligibility.py +++ b/etl/eligibility/Eligibility.py @@ -352,9 +352,41 @@ class Eligibility: # Check if the property is suitable for cavity wall self.cavity_insulation() - self.gbis_warmfront = (self.cavity["suitability"]) and ( - int(self.epc["current-energy-efficiency"]) <= 68 - ) + current_sap = int(self.epc["current-energy-efficiency"]) + # We have a strict suitability check and a non-strict check + + # Perfect strictness + if (self.cavity["type"] == "empty") and (current_sap < 69): + self.gbis_warmfront = { + "eligible": True, + "strict": True, + "message": "Perfect suitability", + } + return + + # Near perfect + if self.cavity["suitability"] and (current_sap < 55): + self.gbis_warmfront = { + "eligible": True, + "strict": True, + "message": "Near perfect suitability", + } + return + + # Suitable cavity, but high sap + if self.cavity["suitability"] and (current_sap >= 55): + self.gbis_warmfront = { + "eligible": True, + "strict": False, + "message": "Meets cavity, fails SAP check", + } + return + + self.gbis_warmfront = { + "eligible": False, + "strict": False, + "message": "All conditions fail", + } def check_eco4_warmfront(self): """ @@ -388,6 +420,10 @@ class Eligibility: self.cavity_insulation() self.loft_insulation() + # We put in a placeholder when the roof is not a loft + if self.loft["reason"] == "roof not loft": + self.loft["thickness"] = 999 + # Case 1: No conditions meet if not self.cavity["suitability"] and (self.loft["thickness"] > 100) and current_sap >= 55: self.eco4_warmfront = { @@ -415,7 +451,7 @@ class Eligibility: self.eco4_warmfront = { "eligible": True, "strict": True, - "message": "Perfect suitability", + "message": "Near perfect suitability", "cavity_type": self.cavity["type"], "loft_type": self.loft["thickness_classification"] } diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index 1ba75e2b..28efadd0 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -1270,15 +1270,6 @@ def get_epc_data( results_df["post_install_sap"] = None results_df["eligibility_classification"] = None - eco4 = asset_list[asset_list["ECO Eligibility"] == "eco4"] - z = results_df[results_df["row_id"].isin(eco4["asset_list_row_id"])] - z["walls"].value_counts() - z1 = z[z["walls"] == "Cavity wall, as built, no insulation"] - k = z1[z1["roof"] == "Pitched, 100 mm loft insulation"] - property_meta = asset_list[asset_list["asset_list_row_id"] == k["row_id"].values[0]].squeeze() - z[z["walls"] == "Cavity wall, as built, insulated"]["roof"].value_counts() - z[z["walls"] == "Cavity wall, as built, insulated"]["roof"].value_counts() - if not scoring_df.empty: scoring_df = scoring_df.drop( columns=[ @@ -1763,6 +1754,17 @@ def patch_cleaned(cleaned): ] ) + cleaned["roof-description"].extend( + [ + {'original_description': 'Pitched, 300+mm loft insulation', + 'clean_description': 'Pitched, 300+ mm loft insulation', 'thermal_transmittance': None, + 'thermal_transmittance_unit': None, 'is_pitched': True, 'is_roof_room': False, 'is_loft': True, + 'is_flat': False, 'is_thatched': False, 'is_at_rafters': False, 'is_assumed': False, + 'has_dwelling_above': False, 'is_valid': True, 'insulation_thickness': '300+' + } + ] + ) + # Patch mainheatcont-description cleaned["mainheatcont-description"].extend( [ diff --git a/etl/epc/Dataset.py b/etl/epc/Dataset.py index dac829e2..7040d66c 100644 --- a/etl/epc/Dataset.py +++ b/etl/epc/Dataset.py @@ -203,11 +203,11 @@ class TrainingDataset(BaseDataset): common_cols = [[col + "_starting", col + "_ending"] for col in common_cols] self.df = self.df.loc[ - :, - no_suffix_cols - + only_ending_cols - + [col for cols in common_cols for col in cols], - ] + :, + no_suffix_cols + + only_ending_cols + + [col for cols in common_cols for col in cols], + ] def _remove_abnormal_change_in_floor_area(self): """ @@ -509,7 +509,7 @@ class TrainingDataset(BaseDataset): expanded_df["is_sandstone_or_limestone"] == expanded_df["is_sandstone_or_limestone_ending"] ) - ] + ] elif component == "floor": expanded_df = expanded_df[ (expanded_df["is_suspended"] == expanded_df["is_suspended_ending"]) @@ -526,7 +526,7 @@ class TrainingDataset(BaseDataset): expanded_df["is_to_external_air"] == expanded_df["is_to_external_air_ending"] ) - ] + ] elif component == "roof": expanded_df = expanded_df[ (expanded_df["is_pitched"] == expanded_df["is_pitched_ending"]) @@ -539,7 +539,7 @@ class TrainingDataset(BaseDataset): expanded_df["has_dwelling_above"] == expanded_df["has_dwelling_above_ending"] ) - ] + ] return expanded_df From 7b080094fdf08daf720ac01c10bfad380a917062 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Tue, 27 Feb 2024 11:02:12 +0000 Subject: [PATCH 322/526] created distributed scoring for prediction --- .../ha_15_32/ha_analysis_batch_3.py | 46 ++++++++++++------- 1 file changed, 30 insertions(+), 16 deletions(-) diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index 28efadd0..3dc4d45f 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -1166,10 +1166,9 @@ def get_epc_data( ] # condition 1 - identified for gbis and not eligible - condition_1 = ( - identified_for_gbis and not eligibility.gbis_warmfront and not eligibility.eco4_warmfront[ - "eligible"] - ) & consider_penultimate_epc + condition_1 = (identified_for_gbis and not eligibility.gbis_warmfront + and not eligibility.eco4_warmfront["eligible"] + ) & consider_penultimate_epc # condition 2 - identified for eco4 and not eligible condition_2 = (identified_for_eco4 and not eligibility.eco4_warmfront[ @@ -1246,10 +1245,12 @@ def get_epc_data( "uprn": eligibility.epc["uprn"], "is_estimated": searcher.newest_epc.get("estimated") is not None, "property_type": eligibility.epc["property-type"], - "gbis_eligible": eligibility.gbis_warmfront, "eco4_eligible": eligibility.eco4_warmfront["eligible"], "eco4_message": eligibility.eco4_warmfront["message"], "eco4_strict": eligibility.eco4_warmfront["strict"], + "gbis_eligible": eligibility.gbis_warmfront["eligible"], + "gbis_message": eligibility.gbis_warmfront["message"], + "gbis_strict": eligibility.gbis_warmfront["strict"], "sap": float(eligibility.epc["current-energy-efficiency"]), # Property components "roof": eligibility.roof["clean_description"], @@ -1279,24 +1280,32 @@ def get_epc_data( ) model_api = ModelApi(portfolio_id="-".join([ha_name, "eligibility"]), timestamp=created_at) + model_api.MODEL_PREFIXES = ["sap_change_predictions"] - all_predictions = model_api.predict_all( - df=scoring_df, - bucket="retrofit-data-dev", - prediction_buckets={ - "sap_change_predictions": "retrofit-sap-predictions-dev", - "heat_demand_predictions": "retrofit-heat-predictions-dev", - "carbon_change_predictions": "retrofit-carbon-predictions-dev" - } - ) + scoring_df["id"] = scoring_df["id"] + "phase=0" + # We split up the scoring_df and score + predictions = [] + to_loop_over = range(0, scoring_df.shape[0], 400) + for chunk in tqdm(to_loop_over, total=len(to_loop_over)): + predictions_dict = model_api.predict_all( + df=scoring_df.iloc[chunk:chunk + 400], + bucket="retrofit-data-dev", + prediction_buckets={ + "sap_change_predictions": "retrofit-sap-predictions-dev", + } + ) - predictions = all_predictions["sap_change_predictions"].copy() + predictions.append(predictions_dict["sap_change_predictions"]) + + predictions = pd.concat(predictions) + predictions_size = predictions.shape[0] predictions = predictions.rename(columns={"property_id": "row_id"}).merge( results_df[["row_id", "sap"]], how="left", on="row_id" ) + if predictions.shape[0] != predictions_size: + raise ValueError("Predictions size has changed") predictions["sap_uplift"] = predictions["predictions"] - predictions["sap"] - predictions = predictions.groupby("row_id")["sap_uplift"].sum().reset_index() results_df = results_df.merge( predictions[["sap_uplift", "row_id"]], @@ -1339,9 +1348,12 @@ def get_epc_data( eligibility_assessment = pd.DataFrame(eligibility_assessment) + # Make sure the results haven't changed in size results_df = results_df.merge( eligibility_assessment, how="left", on="row_id" ) + if results_df.shape[0] != len(results): + raise ValueError("results has changed size") # We store the results in S3 as a pickle save_pickle_to_s3( @@ -1809,6 +1821,8 @@ def app(): loader.load() loader.ha_facts_and_figures() + loader.facts_and_figures.to_csv("facts_and_figures.csv", index=False) + # We load in the additional data required to perform the analysis cleaned = read_from_s3( s3_file_name="cleaned_epc_data/cleaned.bson", From 3ef346b248ed89e04a08d07a0231db987809521b Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Tue, 27 Feb 2024 13:12:54 +0000 Subject: [PATCH 323/526] patching roof description in cleaned further --- .../ha_15_32/ha_analysis_batch_3.py | 60 ++++++++++++++++++- etl/epc/Dataset.py | 28 +++++++++ 2 files changed, 87 insertions(+), 1 deletion(-) diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index 3dc4d45f..e261710e 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -1755,7 +1755,16 @@ def patch_cleaned(cleaned): ] ) - # We treat unknown loft insulation as no insulation + cleaned["roof-description"].extend( + [ + {'original_description': 'Pitched, Unknown loft insulation', 'clean_description': 'Pitched, no insulation', + 'thermal_transmittance': None, 'thermal_transmittance_unit': None, 'is_pitched': True, + 'is_roof_room': False, + 'is_loft': False, 'is_flat': False, 'is_thatched': False, 'is_at_rafters': False, 'is_assumed': True, + 'has_dwelling_above': False, 'is_valid': True, 'insulation_thickness': 'none'} + ] + ) + cleaned["roof-description"].extend( [ {'original_description': 'Pitched, Unknown loft insulation', 'clean_description': 'Pitched, no insulation', @@ -1777,6 +1786,55 @@ def patch_cleaned(cleaned): ] ) + thermal_transmittance_values = list(np.arange(0, 2, 0.01)) + for ttv in thermal_transmittance_values: + ttv_roundeded = round(ttv, 2) + # We look for an instance of that thermal transmittance value + rec = [ + x for x in cleaned["roof-description"] if + (x["thermal_transmittance"] == ttv_roundeded) and "Average thermal transmittance" in x["clean_description"] + ] + + if rec: + continue + else: + # We patch the record + cleaned["roof-description"].extend( + [{'original_description': f'Average thermal transmittance {ttv_roundeded} W/m-¦K', + 'clean_description': f'Average thermal transmittance {ttv_roundeded} w/m-¦k', + 'thermal_transmittance': ttv_roundeded, + 'thermal_transmittance_unit': 'w/m-¦k', 'is_pitched': False, 'is_roof_room': False, 'is_loft': False, + 'is_flat': False, 'is_thatched': False, 'is_at_rafters': False, 'is_assumed': False, + 'has_dwelling_above': False, 'is_valid': True, 'insulation_thickness': None}] + ) + + # We also patch a funny unit value we found + for ttv in thermal_transmittance_values: + ttv_rounded = round(ttv, 2) + # We look for an instance of that thermal transmittance value + rec = [ + x for x in cleaned["roof-description"] if + (x["thermal_transmittance"] == ttv_rounded) and "Average thermal transmittance" in x["clean_description"] + and x["thermal_transmittance_unit"] == "w/m?K" + ] + + if rec: + continue + else: + # We patch the record + ttv_string = str(ttv_rounded) + if len(ttv_string) == 3: + ttv_string = f"{ttv_string}0" + + cleaned["roof-description"].extend( + [{'original_description': f'Average thermal transmittance {ttv_string} W/m?K', + 'clean_description': f'Average thermal transmittance {ttv_string} w/m-¦k', + 'thermal_transmittance': ttv_rounded, + 'thermal_transmittance_unit': 'w/m-¦k', 'is_pitched': False, 'is_roof_room': False, 'is_loft': False, + 'is_flat': False, 'is_thatched': False, 'is_at_rafters': False, 'is_assumed': False, + 'has_dwelling_above': False, 'is_valid': True, 'insulation_thickness': None}] + ) + # Patch mainheatcont-description cleaned["mainheatcont-description"].extend( [ diff --git a/etl/epc/Dataset.py b/etl/epc/Dataset.py index 7040d66c..cf241747 100644 --- a/etl/epc/Dataset.py +++ b/etl/epc/Dataset.py @@ -658,6 +658,34 @@ class TrainingDataset(BaseDataset): components_to_expand = cols_to_drop.keys() + for comp in list(components_to_expand): + if comp == "main-fuel": + cleaned_key = "main-fuel" + left_on_starting = "main_fuel_starting" + left_on_ending = "main_fuel_ending" + original_cols = ["main_fuel_starting", "main_fuel_ending"] + else: + cleaned_key = f"{comp}-description" + left_on_starting = f"{comp}_description_starting" + left_on_ending = f"{comp}_description_ending" + original_cols = [ + f"{comp}_description_starting", + f"{comp}_description_ending", + ] + df = pd.DataFrame(cleaned_lookup[cleaned_key]) + # Check for the existence + filtered_1 = df[df["original_description"] == self.df[left_on_starting].values[0]] + filtered_2 = df[df["original_description"] == self.df[left_on_ending].values[0]] + if filtered_1.empty: + print(comp) + print(self.df[left_on_starting].values[0]) + + if filtered_2.empty: + print(f"Original description {self.df[left_on_ending].values[0]} not found in lookup") + + z = pd.DataFrame(cleaned_lookup["roof-description"]) + z[z["original_description"] == "Average thermal transmittance 0.20 W/m?K"] + for component in components_to_expand: # TODO: change cleaned dataframe to have underscores instead of dashes if component == "main-fuel": From 730ad0fd7144b2b5e86d98b8c3ef4e5d71ccd0cb Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Tue, 27 Feb 2024 13:13:28 +0000 Subject: [PATCH 324/526] removing temp code --- etl/epc/Dataset.py | 28 ---------------------------- 1 file changed, 28 deletions(-) diff --git a/etl/epc/Dataset.py b/etl/epc/Dataset.py index cf241747..7040d66c 100644 --- a/etl/epc/Dataset.py +++ b/etl/epc/Dataset.py @@ -658,34 +658,6 @@ class TrainingDataset(BaseDataset): components_to_expand = cols_to_drop.keys() - for comp in list(components_to_expand): - if comp == "main-fuel": - cleaned_key = "main-fuel" - left_on_starting = "main_fuel_starting" - left_on_ending = "main_fuel_ending" - original_cols = ["main_fuel_starting", "main_fuel_ending"] - else: - cleaned_key = f"{comp}-description" - left_on_starting = f"{comp}_description_starting" - left_on_ending = f"{comp}_description_ending" - original_cols = [ - f"{comp}_description_starting", - f"{comp}_description_ending", - ] - df = pd.DataFrame(cleaned_lookup[cleaned_key]) - # Check for the existence - filtered_1 = df[df["original_description"] == self.df[left_on_starting].values[0]] - filtered_2 = df[df["original_description"] == self.df[left_on_ending].values[0]] - if filtered_1.empty: - print(comp) - print(self.df[left_on_starting].values[0]) - - if filtered_2.empty: - print(f"Original description {self.df[left_on_ending].values[0]} not found in lookup") - - z = pd.DataFrame(cleaned_lookup["roof-description"]) - z[z["original_description"] == "Average thermal transmittance 0.20 W/m?K"] - for component in components_to_expand: # TODO: change cleaned dataframe to have underscores instead of dashes if component == "main-fuel": From d573c4d8a0ae911edd0e2f181eceb4087e3e78e4 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Tue, 27 Feb 2024 15:15:05 +0000 Subject: [PATCH 325/526] added try except mechanism --- .../ha_15_32/ha_analysis_batch_3.py | 35 ++++++++++++------- etl/epc/Record.py | 32 ++++++++--------- 2 files changed, 38 insertions(+), 29 deletions(-) diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index e261710e..da484daa 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -1089,6 +1089,9 @@ def get_epc_data( outputs = {} for ha_name, data_assets in loader.data.items(): + if ha_name == "HA39": + continue + if not pull_data: # Then we retrieve the data from S3 processed_ha_results = read_pickle_from_s3( @@ -1114,6 +1117,7 @@ def get_epc_data( results = [] scoring_data = [] nodata = [] + failed_model_rows = [] for index, property_meta in tqdm(asset_list.iterrows(), total=len(asset_list)): if property_meta["matching_postcode"] is None: @@ -1225,19 +1229,24 @@ def get_epc_data( if eligibility.eco4_warmfront["eligible"]: if eligibility.epc["uprn"] == "": eligibility.epc["uprn"] = int(property_meta["asset_list_row_id"].split(ha_name)[1]) - - scoring_dictionary = prepare_model_data_row( - property_id=property_meta["asset_list_row_id"], - modelling_epc=eligibility.epc, - cleaned=cleaned, - cleaning_data=cleaning_data, - created_at=created_at, - old_data=older_epcs, - full_sap_epc=full_sap_epc, - photo_supply_lookup=photo_supply_lookup, - floor_area_decile_thresholds=floor_area_decile_thresholds - ) - scoring_data.extend(scoring_dictionary) + try: + scoring_dictionary = prepare_model_data_row( + property_id=property_meta["asset_list_row_id"], + modelling_epc=eligibility.epc, + cleaned=cleaned, + cleaning_data=cleaning_data, + created_at=created_at, + old_data=older_epcs, + full_sap_epc=full_sap_epc, + photo_supply_lookup=photo_supply_lookup, + floor_area_decile_thresholds=floor_area_decile_thresholds + ) + scoring_data.extend(scoring_dictionary) + except Exception as e: + # If we fail, we just keep a record of it + failed_model_rows.append( + property_meta["asset_list_row_id"] + ) results.append( { diff --git a/etl/epc/Record.py b/etl/epc/Record.py index c793716f..e74330a2 100644 --- a/etl/epc/Record.py +++ b/etl/epc/Record.py @@ -725,26 +725,26 @@ class EPCRecord: if self.prepared_epc["construction-age-band"] in DATA_ANOMALY_MATCHES: if self.old_data: # Take the most recent - max_datetime = max( - [ - old_record["lodgement-datetime"] - for old_record in self.old_data - if old_record["construction-age-band"] - not in DATA_ANOMALY_MATCHES - ] - ) - - most_recent = [ - old_record + old_age_bands = [ + old_record["lodgement-datetime"] for old_record in self.old_data - if old_record["lodgement-datetime"] == max_datetime + if old_record["construction-age-band"] not in DATA_ANOMALY_MATCHES ] - self.prepared_epc["construction-age-band"] = ( - EPCDataProcessor.clean_construction_age_band( - most_recent[0]["construction-age-band"] + if old_age_bands: + max_datetime = max(old_age_bands) + + most_recent = [ + old_record + for old_record in self.old_data + if old_record["lodgement-datetime"] == max_datetime + ] + + self.prepared_epc["construction-age-band"] = ( + EPCDataProcessor.clean_construction_age_band( + most_recent[0]["construction-age-band"] + ) ) - ) self.construction_age_band = self.prepared_epc["construction-age-band"] self.age_band = england_wales_age_band_lookup.get(self.construction_age_band) From b26e44b465e5c832a65b5bd09767f1015c2dfc1a Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Tue, 27 Feb 2024 15:45:33 +0000 Subject: [PATCH 326/526] Extending to HA 7 --- .../ha_15_32/ha_analysis_batch_3.py | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index da484daa..2fb26e73 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -48,6 +48,10 @@ PROPERTY_TYPE_LOOKUP = { 'EXTRACARE SCHEME': "Flat", } }, + "HA7": { + "property_type": {}, + "built_form": {} + }, "HA14": { "property_type": { "House": "House", @@ -143,6 +147,13 @@ class DataLoader: asset_list["matching_postcode"] = asset_list[ self.COLUMN_CONFIG[ha_name]["postcode"] ].str.lower().str.strip() + elif ha_name == "HA7": + # Create matching_address by concatenating Address 1, Address 2, Address 3, Address 4, Postcode + asset_list["matching_address"] = asset_list["Address"].str.lower().str.strip() + ", " + \ + asset_list["Address2"].str.lower().str.strip() + ", " + \ + asset_list["Address3"].str.lower().str.strip() + ", " + \ + asset_list["Postcode"].str.lower().str.strip() + asset_list["matching_postcode"] = asset_list["Postcode"].str.lower().str.strip() elif ha_name == "HA14": # Create matching_address by concatenating Address 1, Address 2, Address 3, Address 4, Postcode asset_list["matching_address"] = asset_list["Address 1"].str.lower().str.strip() + ", " + \ @@ -241,6 +252,8 @@ class DataLoader: def get_asset_sheetname(workbook): if "Asset List" in workbook.sheetnames: return "Asset List" + elif "Asset" in workbook.sheetnames and "Assets" not in workbook.sheetnames: + return "Asset" else: return "Assets" @@ -311,6 +324,8 @@ class DataLoader: survey_list = pd.DataFrame(survey_rows, columns=[cell.value for cell in survey_sheet[1]]) # Remove columns that are None survey_list = survey_list.loc[:, survey_list.columns.notnull()] + # Remove rows that are completely empty + survey_list = survey_list.loc[survey_list.loc[:, survey_list.columns].notnull().any(axis=1)] survey_list["survey_list_row_id"] = [ha_name + "_survey_" + str(i) for i in range(0, len(survey_list))] # Perform survey list merge @@ -328,6 +343,8 @@ class DataLoader: ciga_list = pd.DataFrame(ciga_rows, columns=[cell.value for cell in ciga_sheet[1]]) # Remove columns that are None ciga_list = ciga_list.loc[:, ciga_list.columns.notnull()] + # Remove rows that are completely None + ciga_list = ciga_list.loc[ciga_list.loc[:, ciga_list.columns].notnull().any(axis=1)] # Perform ciga list merge if not ciga_list.empty: # Remove rows with missing postcode which happens in a small number of cases @@ -1880,7 +1897,7 @@ def app(): # Grab the December HA figures filepath december_figures_filepath = "local_data/ha_data/HA_December_figures.csv" - priority_has = ["HA1", "HA6", "HA14", "HA39", "HA107"] + priority_has = ["HA1", "HA6", "HA7", "HA14", "HA39", "HA107"] # Filter down the directories to only the priority HAs directories = [d for d in directories if d.split("/")[2] in priority_has] From eb216e55d39817a6d7bdd6c582c6da6826050ac9 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Tue, 27 Feb 2024 16:45:37 +0000 Subject: [PATCH 327/526] Handling missing dates in SearchEpc class --- backend/SearchEpc.py | 15 ++++++++++----- etl/eligibility/ha_15_32/ha_analysis_batch_3.py | 1 + 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/backend/SearchEpc.py b/backend/SearchEpc.py index 4a3f371a..3d2df9fb 100644 --- a/backend/SearchEpc.py +++ b/backend/SearchEpc.py @@ -30,7 +30,7 @@ vartypes = { 'environment-impact-potential': "Int64", 'glazed-type': 'str', 'heating-cost-current': 'float', - 'address3': 'str', + # 'address3': 'str', 'mainheatcont-description': 'str', 'sheating-energy-eff': 'str', 'property-type': 'str', @@ -40,7 +40,7 @@ vartypes = { 'mechanical-ventilation': 'str', 'hot-water-cost-current': 'str', 'county': 'str', - 'postcode': 'str', + # 'postcode': 'str', 'solar-water-heating-flag': 'str', 'constituency': 'str', 'co2-emissions-potential': 'float', @@ -55,7 +55,7 @@ vartypes = { # 'inspection-date': str, 'mains-gas-flag': 'str', 'co2-emiss-curr-per-floor-area': 'float', - 'address1': 'str', + # 'address1': 'str', 'heat-loss-corridor': 'str', 'flat-storey-count': "Int64", 'constituency-label': 'str', @@ -67,7 +67,7 @@ vartypes = { 'roof-description': 'str', 'floor-energy-eff': 'str', 'number-habitable-rooms': 'float', - 'address2': 'str', + # 'address2': 'str', 'hot-water-env-eff': 'str', 'posttown': 'str', 'mainheatc-energy-eff': 'str', @@ -98,7 +98,7 @@ vartypes = { # 'lodgement-date', 'extension-count': "Int64", 'mainheatc-env-eff': 'str', - 'lmk-key': 'str', + # 'lmk-key': 'str', 'wind-turbine-count': "Int64", 'tenure': 'str', 'floor-level': 'str', @@ -575,6 +575,11 @@ class SearchEpc: property_type=property_type ) + # If we have missing lodgment date, we fill it with inspection-date + epc_data["lodgement-datetime"] = epc_data["lodgement-datetime"].fillna(epc_data["inspection-date"]) + # If we still have missing dates, we set it to the mean of the non NA dates + epc_data["lodgement-datetime"] = epc_data["lodgement-datetime"].fillna(epc_data["lodgement-datetime"].mean()) + # For each attribute, we need to determine the datatype and use an appropriate method # to estimate. estimated_epc = {} diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index 2fb26e73..a8f0bfa9 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -1135,6 +1135,7 @@ def get_epc_data( scoring_data = [] nodata = [] failed_model_rows = [] + # Failed at index 13691 for index, property_meta in tqdm(asset_list.iterrows(), total=len(asset_list)): if property_meta["matching_postcode"] is None: From 2a4d16162abc8bcda788950d44a0762148e8904d Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Tue, 27 Feb 2024 18:01:29 +0000 Subject: [PATCH 328/526] Added ha7 --- .../ha_15_32/ha_analysis_batch_3.py | 24 ++++++++++++------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index a8f0bfa9..889ae776 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -49,8 +49,19 @@ PROPERTY_TYPE_LOOKUP = { } }, "HA7": { - "property_type": {}, - "built_form": {} + "property_type": { + "House": "House", + "Flat": "Flat", + "Bungalow": "Bungalow", + "Maisonette": "Maisonette", + }, + "built_form": { + "Semi Detached": "Semi-Detached", + "Mid Terrace": "Mid-Terrace", + "End Terrace": "End-Terrace", + "Detached": "Detached", + "End Terraced": "End-Terrace", + } }, "HA14": { "property_type": { @@ -1042,6 +1053,9 @@ def get_property_type_and_built_form(property_meta, ha_name): elif ha_name == "HA6": property_type = PROPERTY_TYPE_LOOKUP[ha_name]["property_type"][property_meta["Dwelling type"]] built_form = property_meta["built_form"] + elif ha_name == "HA7": + property_type = PROPERTY_TYPE_LOOKUP[ha_name]["property_type"][property_meta["Archetype"]] + built_form = PROPERTY_TYPE_LOOKUP[ha_name]["built_form"][property_meta["Property Type"]] elif ha_name == "HA14": if property_meta["Asset Type Description"] == "Block - Repair": # We try and deduce if it's a flat or house, depending on if it has "room" or "flats" in the address @@ -1106,9 +1120,6 @@ def get_epc_data( outputs = {} for ha_name, data_assets in loader.data.items(): - if ha_name == "HA39": - continue - if not pull_data: # Then we retrieve the data from S3 processed_ha_results = read_pickle_from_s3( @@ -1135,7 +1146,6 @@ def get_epc_data( scoring_data = [] nodata = [] failed_model_rows = [] - # Failed at index 13691 for index, property_meta in tqdm(asset_list.iterrows(), total=len(asset_list)): if property_meta["matching_postcode"] is None: @@ -1906,8 +1916,6 @@ def app(): loader.load() loader.ha_facts_and_figures() - loader.facts_and_figures.to_csv("facts_and_figures.csv", index=False) - # We load in the additional data required to perform the analysis cleaned = read_from_s3( s3_file_name="cleaned_epc_data/cleaned.bson", From 9ca6c179bca70cfffd34da4e278e144ff8263e24 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Tue, 27 Feb 2024 18:34:49 +0000 Subject: [PATCH 329/526] Adding HA16 --- .../ha_15_32/ha_analysis_batch_3.py | 139 +++++++++++++++++- 1 file changed, 135 insertions(+), 4 deletions(-) diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index 889ae776..a707cfa5 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -128,6 +128,10 @@ class DataLoader: "HA6": { "address": "propertyaddress", "postcode": "address" # The 'address' column actually contains postcode + }, + "HA16": { + "address": "Address", + "postcode": "Postcode" } } @@ -135,9 +139,10 @@ class DataLoader: # We expect 4 unmatched addresses, which have been validated manually as being in the ciga file but not # the asset list "HA14": 3, + "HA16": 7, # There's just too many unmatched here "HA6": 117, - "HA107": 51 + "HA107": 51, } def __init__(self, directories, december_figures_filepath, use_cache): @@ -151,7 +156,7 @@ class DataLoader: def create_asset_list_matching_address(self, ha_name, asset_list): - if ha_name in ["HA1", "HA6"]: + if ha_name in ["HA1", "HA6", "HA16"]: asset_list["matching_address"] = asset_list[ self.COLUMN_CONFIG[ha_name]["address"] ].str.lower().str.strip() @@ -173,6 +178,7 @@ class DataLoader: asset_list["Address 4"].str.lower().str.strip() + ", " + \ asset_list["Postcode"].str.lower().str.strip() asset_list["matching_postcode"] = asset_list["Postcode"].str.lower().str.strip() + elif ha_name == "HA39": # Create matching_address by concatenating add_1, add_2, add_3, add_4, add_5, post_code asset_list["matching_address"] = asset_list["add_1"].astype(str).str.lower().str.strip() + ", " + \ @@ -234,7 +240,7 @@ class DataLoader: :return: """ - if ha_name in ["HA6", "HA14", "HA107"]: + if ha_name in ["HA6", "HA14", "HA107", "HA16"]: split_addresses = ciga_list['Matched Address'].str.split(',', expand=True) house_numbers = split_addresses[0].str.split(' ', expand=True) # THe first column should be HouseNo - we aren't interested in the other columns, but we don't know how @@ -556,6 +562,129 @@ class DataLoader: return survey_list + @staticmethod + def correct_ha16_survey_list(survey_list): + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace("/", ", ") + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.lower() + survey_list["Street / Block Name"] = np.where( + survey_list["Street / Block Name"] == "REEDS RD", + "Reeds ROAD", + survey_list["Street / Block Name"] + ) + # Replace " rd " with "road" + survey_list['Street / Block Name'] = survey_list['Street / Block Name'].str.replace(r'\brd\b', 'road', + regex=True) + + # Replace " , " with ", " + survey_list['Street / Block Name'] = survey_list['Street / Block Name'].str.replace( + " , ", ', ', + ) + # Fix "{place} ,{place}" with "{place}, {place}" + survey_list['Street / Block Name'] = survey_list['Street / Block Name'].str.replace(r'\s*,\s*', ', ', + regex=True) + # Strip whitespace + survey_list['Street / Block Name'] = survey_list['Street / Block Name'].str.strip() + + # Correct errors + survey_list["Post Code"] = np.where( + survey_list["Post Code"] == "M38 0SA", + "M38 9SA", + survey_list["Post Code"] + ) + + survey_list["Post Code"] = np.where( + (survey_list["Street / Block Name"] == "nelson drive") & (survey_list["Post Code"] == "M44 5JE"), + "M44 5JF", + survey_list["Post Code"] + ) + + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace("eccels", "eccles") + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace("chatley, road", + "chatley road") + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace("vaughen", "Vaughan") + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace("cresent", "crescent") + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace("plantation road", + "plantation avenue") + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace("how clough drive", + "howclough drive") + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace("brockhurst lane", + "brookhurst lane") + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace("biirch road", + "birch road") + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace("hadson road", + "hodson road") + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace("harbonne avennue", + "narbonne avenue") + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace( + "cumberland road, cadishead", + "cumberland avenue, cadishead") + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace("aston field drive", + "ashton field drive") + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace("wedgewood road", + "wedgwood road") + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace("hamilton close", + "hamilton avenue") + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace( + "lichens crescent, fitton hill", + "lichens crescent") + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace("south croft, fitton hill", + "south croft") + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace(", fitton hill", "") + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace("firtree dr", + "fir tree avenue") + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace("hawthorne road", + "hawthorn crescent") + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace("rein lee avenue", + "reins lee avenue") + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace("westerhill road", + "wester hill road") + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace("st martins road", + "saint martins road") + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace("timperley avenue", + "timperley close") + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace("eastwood road", + "eastwood avenue") + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace("new road", "new street") + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace("grassmere road", + "grasmere road") + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace("hulton road", + "hulton avenue") + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace("beechfield avenue", + "beechfield road") + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace("princess avenue", + "princes avenue") + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace("edge ford crecent", + "edge fold crescent") + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace("conniston avenue", + "coniston avenue") + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace("blackthorne crescent", + "blackthorn crescent") + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace("wellstock road", + "wellstock lane") + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace("brackley avenue", + "brackley street") + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace("brook avenue swinton", + "brook avenue, swinton") + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace("green avenue swinton", + "green avenue, swinton") + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace("grasmere avenue wardley", + "grasmere avenue, wardley") + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace("mardale avenue wardle", + "mardale avenue, wardle") + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace("carleach grove", + "cartleach Grove") + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace("arbour grove", + "arbor Grove") + + # Replacement for clively avenue 66-68 + survey_list["NO."] = np.where( + survey_list["NO."] == "66-68", + "66", + survey_list["NO."] + ) + + return survey_list + @staticmethod def correct_ha107_survey_list(survey_list): # Replace Front Street, East Stockham with Front Street, East Stockwith @@ -898,6 +1027,8 @@ class DataLoader: scheme_map = { "ECO4": "ECO4", "AFFORDABLE WARMTH": "ECO4", + "ECO4 A/W": "ECO4", + "ECO4 GBIS (ECO+)": "GBIS" } eco_eligibility_map = { @@ -1908,7 +2039,7 @@ def app(): # Grab the December HA figures filepath december_figures_filepath = "local_data/ha_data/HA_December_figures.csv" - priority_has = ["HA1", "HA6", "HA7", "HA14", "HA39", "HA107"] + priority_has = ["HA1", "HA6", "HA7", "HA14", "HA16", "HA39", "HA107"] # Filter down the directories to only the priority HAs directories = [d for d in directories if d.split("/")[2] in priority_has] From 102600b19651964c4b6c7945307a8defd454f9d1 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Tue, 27 Feb 2024 18:40:17 +0000 Subject: [PATCH 330/526] Added HA16 --- .../ha_15_32/ha_analysis_batch_3.py | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index a707cfa5..ee23f238 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -71,6 +71,24 @@ PROPERTY_TYPE_LOOKUP = { "Maisonette": "Maisonette", } }, + "HA16": { + 'Semi Detached Bungalow': {"property-type": "Bungalow", "built-form": "Semi-Detached"}, + 'Mid Terraced House': {"property-type": "House", "built-form": "Mid-Terrace"}, + 'End Terraced House': {"property-type": "House", "built-form": "End-Terrace"}, + 'Low Rise Flat': {"property-type": "Flat", "built-form": "Mid-Terrace"}, + 'Semi-Detached House': {"property-type": "House", "built-form": "Semi-Detached"}, + 'Detached Bungalow': {"property-type": "Bungalow", "built-form": "Detached"}, + 'End Terraced Bungalow': {"property-type": "Bungalow", "built-form": "End-Terrace"}, + 'Mid Terraced Bungalow': {"property-type": "Bungalow", "built-form": "Mid-Terrace"}, + 'Medium Rise Flat': {"property-type": "Flat", "built-form": "Mid-Terrace"}, + 'Detached House': {"property-type": "House", "built-form": "Detached"}, + 'Cottage Flat': {"property-type": "Flat", "built-form": "Semi-Detached"}, + 'Maisonette Medium Rise': {"property-type": "Flat", "built-form": "Mid-Terrace"}, + 'Maisonette Over Shop': {"property-type": "Flat", "built-form": "Mid-Terrace"}, + 'End Terraced Town House': {"property-type": "House", "built-form": "End-Terrace"}, + 'Flat Over Shop': {"property-type": "Flat", "built-form": "Mid-Terrace"}, + 'Mid Terraced Town House': {"property-type": "House", "built-form": "Mid-Terrace"}, + }, "HA39": { "Semi house": {"property_type": "House", "built_form": "Semi-Detached"}, "1st floor flat": {"property_type": "Flat", "built_form": None}, @@ -1201,6 +1219,10 @@ def get_property_type_and_built_form(property_meta, ha_name): ] built_form = None + elif ha_name == "HA16": + config = PROPERTY_TYPE_LOOKUP[ha_name][property_meta["Type"]] + property_type = config.get("property-type") + built_form = config.get("built-form") elif ha_name == "HA39": property_type_config = PROPERTY_TYPE_LOOKUP[ha_name].get(property_meta["ConstructionStyle"], {}) From a1c19b5b8883ead263880c2d589bd76da76d6403 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Tue, 27 Feb 2024 19:01:32 +0000 Subject: [PATCH 331/526] Adding ha24 wip --- .../ha_15_32/ha_analysis_batch_3.py | 47 ++++++++++++++++++- 1 file changed, 45 insertions(+), 2 deletions(-) diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index ee23f238..94df8ceb 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -150,6 +150,10 @@ class DataLoader: "HA16": { "address": "Address", "postcode": "Postcode" + }, + "HA24": { + "address": "Address", + "postcode": "Postcode" } } @@ -174,7 +178,7 @@ class DataLoader: def create_asset_list_matching_address(self, ha_name, asset_list): - if ha_name in ["HA1", "HA6", "HA16"]: + if ha_name in ["HA1", "HA6", "HA16", "HA24"]: asset_list["matching_address"] = asset_list[ self.COLUMN_CONFIG[ha_name]["address"] ].str.lower().str.strip() @@ -289,6 +293,8 @@ class DataLoader: return "Asset List" elif "Asset" in workbook.sheetnames and "Assets" not in workbook.sheetnames: return "Asset" + elif "Decent Homes Stock" in workbook.sheetnames: + return "Decent Homes Stock" else: return "Assets" @@ -703,6 +709,43 @@ class DataLoader: return survey_list + @staticmethod + def correct_ha24_survey_list(survey_list): + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace("/", ", ") + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.lower() + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.strip() + + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace( + "council house, nidds lane", "nidds lane" + ) + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace( + "wirral avenue", "wirrall avenue" + ) + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace( + "st ives road", "st. ives crescent" + ) + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace( + "sundringham road", "sandringham road" + ) + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace( + "milton avenue", "milton road" + ) + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace( + "st ives crescent", "st. ives crescent" + ) + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace( + "council house, waterbelly lane", "waterbelly lane" + ) + # Generally remove "councile house, " from the start of the street name + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace( + "council house, ", "" + ) + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace( + "st. leodegars close", "st leodegars close" + ) + + return survey_list + @staticmethod def correct_ha107_survey_list(survey_list): # Replace Front Street, East Stockham with Front Street, East Stockwith @@ -2061,7 +2104,7 @@ def app(): # Grab the December HA figures filepath december_figures_filepath = "local_data/ha_data/HA_December_figures.csv" - priority_has = ["HA1", "HA6", "HA7", "HA14", "HA16", "HA39", "HA107"] + priority_has = ["HA1", "HA6", "HA7", "HA14", "HA16", "HA24", "HA39", "HA107"] # Filter down the directories to only the priority HAs directories = [d for d in directories if d.split("/")[2] in priority_has] From e9bfd63c3588206cd9e7c79b25c6067b617bf436 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Tue, 27 Feb 2024 21:00:23 +0000 Subject: [PATCH 332/526] Fixed getting property type and built form for ha107 --- .../ha_15_32/ha_analysis_batch_3.py | 77 ++++++++++++++----- 1 file changed, 57 insertions(+), 20 deletions(-) diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index 94df8ceb..5cbfb90c 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -223,12 +223,67 @@ class DataLoader: return asset_list + @staticmethod + def extract_property_info_ha107(properties): + property_types = { + "House": "House", + "Flat": "Flat", + "Bungalow": "Bungalow", + "Maisonette": "Maisonette", + "Bedsit": None + } + + built_forms = { + "Detached": "Detached", + "Semi Detached": "Semi-Detached", + "End Terrace": "End-Terrace", + "Mid Terrace": "Mid-Terrace" + } + + # Function to extract property type and built form from a description + def extract_from_description(description): + property_type = None + built_form = None + + for key in property_types: + if key in description: + property_type = property_types[key] + break + + for key in built_forms: + if key in description: + built_form = built_forms[key] + break + + return property_type, built_form + + # Process each property in the list + results = [] + for property_description in properties: + property_type, built_form = extract_from_description(property_description) + results.append( + { + "Property type": property_description, + "property_type": property_type, + "built_form": built_form + } + ) + results = pd.DataFrame(results) + + return results + def append_asset_list_built_form(self, ha_name, asset_list): # Finally, we process property_type or built form, where needed if ha_name == "HA6": asset_list["built_form"] = asset_list["Property Type"].apply(self.identify_built_form_ha6) + if ha_name == "HA107": + mapped_df = self.extract_property_info_ha107(asset_list["Property type"].unique()) + asset_list = asset_list.merge( + mapped_df, how="left", on="Property type" + ) + return asset_list @staticmethod @@ -1280,26 +1335,8 @@ def get_property_type_and_built_form(property_meta, ha_name): property_type = "House" elif ha_name == "HA107": - dwelling_style = property_meta["Dwelling Style"] - if isinstance(dwelling_style, str): - dwelling_style = dwelling_style.strip() - - property_type = PROPERTY_TYPE_LOOKUP[ha_name]["property_type"].get(property_meta["DwellingType"]) - built_form = PROPERTY_TYPE_LOOKUP[ha_name]["built_form"].get(dwelling_style, None) - - if property_type is None: - if built_form in ["Semi-Detached", "Mid-Terrace", "End-Terrace", "Detached"]: - property_type = "House" - - if "flat" in property_meta["Wall Construction"].lower(): - property_type = "Flat" - - if (property_meta["DwellingType"] == "UNKNOWN") & (property_meta["Dwelling Style"] == 0): - # Hand a few specific cases - property_type = "Bungalow" - - if property_meta["Street"] == "School View": - property_type = "Bungalow" + property_type = property_meta.get("property_type", None) + built_form = property_meta.get("built_form", None) else: raise NotImplementedError("Implement me") From 6ae21bbcb023139961eb69749ac1380a7d3ac001 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Wed, 28 Feb 2024 12:31:48 +0000 Subject: [PATCH 333/526] Creating the output structure --- etl/eligibility/Eligibility.py | 11 +- .../ha_15_32/ha_analysis_batch_3.py | 548 +++++++----------- 2 files changed, 220 insertions(+), 339 deletions(-) diff --git a/etl/eligibility/Eligibility.py b/etl/eligibility/Eligibility.py index f7a5ed98..b594579f 100644 --- a/etl/eligibility/Eligibility.py +++ b/etl/eligibility/Eligibility.py @@ -365,7 +365,7 @@ class Eligibility: return # Near perfect - if self.cavity["suitability"] and (current_sap < 55): + if self.cavity["suitability"] and (current_sap < 69): self.gbis_warmfront = { "eligible": True, "strict": True, @@ -373,15 +373,6 @@ class Eligibility: } return - # Suitable cavity, but high sap - if self.cavity["suitability"] and (current_sap >= 55): - self.gbis_warmfront = { - "eligible": True, - "strict": False, - "message": "Meets cavity, fails SAP check", - } - return - self.gbis_warmfront = { "eligible": False, "strict": False, diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index 5cbfb90c..61c4a243 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -1646,10 +1646,26 @@ def get_epc_data( def get_col_widths(dataframe): - # First we find the maximum length of the index column - idx_max = max([len(str(s)) for s in dataframe.index.values] + [len(str(dataframe.index.name))]) - # Then, we concatenate this to the max of the lengths of column name and its max value for each column, row-wise - return [idx_max] + [max(dataframe[col].astype(str).map(len).max(), len(col)) for col in dataframe.columns] + # Define a maximum width for any column to prevent excessively wide columns + max_allowed_width = 25 + + # Calculate widths for columns + widths = [] + + if isinstance(dataframe.columns, pd.MultiIndex): + # For MultiIndex, calculate max width considering the header and data + header_widths = [max(len(str(item)) for item in col) + 2 for col in dataframe.columns.values] # +2 for padding + for i, column in enumerate(dataframe.columns): + max_data_width = max(dataframe[column].astype(str).apply(len).max(), header_widths[i]) + widths.append(min(max_data_width, max_allowed_width)) + else: + # For non-MultiIndex, calculate width normally + for col in dataframe.columns: + # Calculate the max length of data or column name and limit it + max_length = max(dataframe[col].astype(str).apply(len).max(), len(str(col)) + 2) # +2 for padding + widths.append(min(max_length, max_allowed_width)) + + return widths def analyse_ha_data(outputs, loader): @@ -1671,42 +1687,13 @@ def analyse_ha_data(outputs, loader): :return: """ - eco4_rate = 1710 - gbis_rate = 600 - ha_analysis_results = [] - ha_revenue_results = [] for ha_name, datasets in outputs.items(): - inputs = [x for k, x in loader.data.items() if k == ha_name][0] - # TODO: This is placeholder because we don't have the schemes that the properties have been qualified for - # yet - # - import random - randomly_allocated_schemes = random.choices(["ECO4", "GBIS"], k=inputs["asset_list"].shape[0]) - inputs["asset_list"]["randomly_allocated_schemes"] = randomly_allocated_schemes - inputs["asset_list"]["funding_scheme"] = None - inputs["asset_list"]["funding_scheme"] = np.where( - inputs["asset_list"]["row_meaning"] == "identified potential eco works (CWI)", - inputs["asset_list"]["randomly_allocated_schemes"], - inputs["asset_list"]["funding_scheme"] - ) - - # TODO: Also temp, just for HA 6 - if ha_name == "ha_6": - inputs["survey_list"]["funding_scheme"] = None - inputs["survey_list"]["funding_scheme"] = np.where( - inputs["survey_list"][ - 'AFFORDABLE WARMTH OR EPC FOR HOUSING ASSOCIATION '] == "AFFORDABLE WARMTH", - "ECO4", - "GBIS" - ) - - # End placholder results_df = datasets["results_df"].copy() - analysis_data = inputs["asset_list"][['asset_list_row_id', "row_meaning", "funding_scheme"]].rename( + analysis_data = inputs["asset_list"][['asset_list_row_id', "ECO Eligibility"]].rename( columns={"row_meaning": "asset_identification_status"} ).merge( results_df, @@ -1715,293 +1702,236 @@ def analyse_ha_data(outputs, loader): left_on="asset_list_row_id" ) - # We now merge the survey list onto the analysis data and remove anything that is sold, to give us just what is - # remaining + ################################################################################################ + # We take the properties that strictly qualified under eco + ################################################################################################ - if inputs["matched_lookup"] is not None: - analysis_data = analysis_data.merge( - inputs["matched_lookup"], how="left", on="asset_list_row_id" + eco4_identified = analysis_data[analysis_data["ECO Eligibility"] == "eco4"].copy() + eco4_identified["identification_type"] = None + eco4_identified["identification_type"] = np.where( + (eco4_identified["eco4_eligible"] == True) & (eco4_identified["eco4_strict"] == True), + "strict", + eco4_identified["identification_type"] + ) + + eco4_identified["identification_type"] = np.where( + (eco4_identified["eco4_eligible"] == True) & (eco4_identified["eco4_strict"] == False), + "expansive", + eco4_identified["identification_type"] + ) + ################################################################################################ + # We take the properties dependent on CIGA + ################################################################################################ + + ciga_dependent_identified = analysis_data[ + analysis_data["ECO Eligibility"].isin( + [ + "eco4 (subject to ciga)", + "eco4 - passed ciga" + ] ) - # Drop any rows that have a survey_list_row_id - analysis_data = analysis_data[pd.isnull(analysis_data["survey_list_row_id"])] + ].copy() - # If we have a survey list, we merge this onto the results - n_properties_in_asset_list = analysis_data["asset_list_row_id"].nunique() - - properties_sold = ( - inputs["survey_list"].groupby("funding_scheme")["survey_list_row_id"].nunique().reset_index() if - inputs["survey_list"] is not None else pd.DataFrame(columns=["funding_scheme"]) - ) - properties_sold_eco4 = ( - properties_sold[properties_sold["funding_scheme"] == "ECO4"]["survey_list_row_id"].values[0] if - (not properties_sold.empty) and ("ECO4" in properties_sold["funding_scheme"].values) else 0 - ) - properties_sold_gbis = ( - properties_sold[properties_sold["funding_scheme"] == "GBIS"]["survey_list_row_id"].values[0] if - (not properties_sold.empty) and ("GBIS" in properties_sold["funding_scheme"].values) else 0 + # These are properties that show filled cavity + ciga_dependent_identified["identification_type"] = None + ciga_dependent_identified["identification_type"] = np.where( + ciga_dependent_identified["eco4_message"].isin( + [ + "Perfect suitability", + "Meets cavity and sap", + "Fails cavity, meets loft, fails SAP", + "Meets fabric, fails SAP check", + "Meets cavity, loft borderline, meets sap", + ] + ), + "strict", + ciga_dependent_identified["identification_type"] ) - # We now calculate the number of remaining properties, by scheme - remaining_properties = analysis_data[ - analysis_data["asset_identification_status"] == "identified potential eco works (CWI)" - ].copy() - remaining_properties["prospect_type"] = None - - remaining_properties_by_scheme = ( - remaining_properties.groupby("funding_scheme")["asset_list_row_id"].nunique().reset_index() + ciga_dependent_identified["identification_type"] = np.where( + (ciga_dependent_identified["eco4_message"].isin(["All conditions fail", "failed fabric check"])) & + (ciga_dependent_identified["walls"].isin(["Cavity wall, filled cavity"])), + "expansive", + ciga_dependent_identified["identification_type"] ) - n_remaining_properties_eco4 = remaining_properties_by_scheme[ - remaining_properties_by_scheme["funding_scheme"] == "ECO4" - ]["asset_list_row_id"].values[0] + ciga_dependent_identified["identification_type"] = np.where( + (ciga_dependent_identified["eco4_message"].isin(["Meets just cavity"])) | ( + ciga_dependent_identified["walls"].isin(["Cavity wall, filled cavity"]) + ), + "expansive", + ciga_dependent_identified["identification_type"] + ) - n_remaining_properties_gbis = remaining_properties_by_scheme[ - remaining_properties_by_scheme["funding_scheme"] == "GBIS" - ]["asset_list_row_id"].values[0] + ################################################################################################ + # We properties that qualified for gbis + ################################################################################################ + gbis_identified = analysis_data[analysis_data["ECO Eligibility"] == "gbis"].copy() + gbis_identified["identification_type"] = None + gbis_identified["identification_type"] = np.where( + (gbis_identified["gbis_eligible"] == True) & (gbis_identified["sap"] < 69), + "strict", + gbis_identified["identification_type"] + ) - # For the remaining properties, we use the results of the eligibility process to classify the property into - # one of multiple categories - # - # For properties that have been identified as ECO4 - # 1) Strict ECO4 candidate - Has required fabric and EPC is D or below. We consider D or below here, because - # Warmfront regularly re-surveys properties which then fall within the SAP requirement - # - This is not the very strictest definition of ECO4 eligible, but we aim to characterise the properties - # here and re-surveying is a common practicce by Warmfront. Additionally, many of the social homes have - # very old EPCs which may score lower when re-done - # 2) Meets Fabric requirements, not SAP - # Warmfront has identified the property as eligible, but the EPC is not D or below. We consider this but - # label is separately as not a strict - # 3) Subject to CIGA check - Meets loft conditions but shows a filled cavity. - # - we don't have a SAP constraint here because the EPC is (currently) showing what the property might - # actually look like after retrofit and so the EPC currently being a C or above means little, because - # the updated EPC, showing an empty cavity, could bring the property within - # 4) Loft insulation too thick - Meets empty cavity but shows a loft with between 101 and 270mm insulation. - # - No SAP constraint, for the same reason as in category 2) - # 5) Looks like GBIS instead - # 6) Does not look like ECO4 candidate - # - # For properties that have been identified as GBIS - # 1) Strict GBIS candidates - # 2) Properties that actually look like strict GBIS candidates - # 3) Subject to CIGA check - Filled cavity - # 4) Does not look like a GBIS candidate + gbis_identified["identification_type"] = np.where( + (gbis_identified["gbis_eligible"] == True) & (gbis_identified["sap"] >= 69), + "expansive", + gbis_identified["identification_type"] + ) - remaining_eco4_df = remaining_properties[ - remaining_properties["funding_scheme"] == "ECO4" - ].copy() + # Finally, we look at the properties that have not been identified by Warmfront + not_identified = analysis_data[ + analysis_data["ECO Eligibility"].isin( + [ + "not eligible" + ] + ) + ].copy() - #################################### + surplus_eco4 = not_identified[ + (not_identified["eco4_eligible"] == True) & (not_identified["eco4_message"].isin( + ["Perfect suitability", "Meets cavity, loft borderline, meets sap", "Near perfect suitability"] + )) + ] + + surplus_gbis = not_identified[ + (not_identified["gbis_eligible"] == True) & ( + ~not_identified["asset_list_row_id"].isin(surplus_eco4["asset_list_row_id"].values) + ) & (not_identified["sap"] < 69) & ( + (not_identified["cavity_type"].isin(["empty", "partial insulation"])) | ( + not_identified["walls"].str.contains("partial", case=False, na=False) + ) + ) + ] + surplus_gbis = surplus_gbis[surplus_gbis["is_estimated"] == False] + + # Output variables # ECO4 - #################################### - - # 1) We identify this if: - # - remaining_properties["eco4_eligible"] == True - - remaining_eco4_df["prospect_type"] = np.where( - (remaining_eco4_df["eco4_eligible"] == True), - "strict ECO4", - remaining_eco4_df["prospect_type"] + n_properties_in_asset_list = inputs["asset_list"].shape[0] + n_warmfront_identified_eco4 = eco4_identified.shape[0] + ciga_dependent_identified.shape[0] + eco4_of_which_identified_strict = ( + eco4_identified[eco4_identified["identification_type"] == "strict"].shape[0] + + ciga_dependent_identified[ciga_dependent_identified["identification_type"] == "strict"].shape[0] ) - - # 2) Meets fabric requirements - remaining_eco4_df["prospect_type"] = np.where( - ( - (remaining_eco4_df["eco4_message"] == "sap too high") & - remaining_eco4_df["eligibility_cavity_type"].isin(["partial", "empty"]) & - remaining_eco4_df["eligibility_loft_type"].isin(["0-100mm"]) & - pd.isnull(remaining_eco4_df["prospect_type"]) - ), - "ECO4 if SAP downgrade", - remaining_eco4_df["prospect_type"] + eco4_of_which_identified_expansive = ( + eco4_identified[eco4_identified["identification_type"] == "expansive"].shape[0] + + ciga_dependent_identified[ciga_dependent_identified["identification_type"] == "expansive"].shape[0] ) - - # 3) We identify this if it has a filled cavity but meets the loft conditions - # TODO: Consider if we should also allow 100-270mm or if we should add some slight tolerance (e.g. 150mm) - # to account for measurement error - remaining_eco4_df["prospect_type"] = np.where( - ( - remaining_eco4_df["eligibility_cavity_type"].isin(["full"]) & - remaining_eco4_df["eligibility_loft_type"].isin(["0-100mm"]) - ), - "ECO4 - Filled cavity - subject to CIGA check", - remaining_eco4_df["prospect_type"] - ) - - # 4) We identify this by ensuring the cavity if empty or partial, and the loft has between 101 and 270mm - remaining_eco4_df["prospect_type"] = np.where( - ( - remaining_eco4_df["eligibility_cavity_type"].isin(["empty", "partial"]) & - remaining_eco4_df["eligibility_loft_type"].isin(["100-270mm"]) - ), - "ECO4 prospect - empty cavity, loft insulation below regulation", - remaining_eco4_df["prospect_type"] - ) - - # 5) Looks like GBIS instead - remaining_eco4_df["prospect_type"] = np.where( - (remaining_eco4_df["gbis_eligible"] == True) & pd.isnull(remaining_eco4_df["prospect_type"]), - "Looks like GBIS", - remaining_eco4_df["prospect_type"] - ) - - # 6) This is everything else (i.e. both the cavity is full and the loft insulation is above 100mm) - remaining_eco4_df["prospect_type"] = remaining_eco4_df["prospect_type"].fillna( - "Does not look like ECO4 candidate" - ) - - #################################### # GBIS - #################################### - - remaining_gbis = remaining_properties[ - remaining_properties["funding_scheme"] == "GBIS" - ].copy() - - # 1) Strict GBIS candidates - remaining_gbis["prospect_type"] = np.where( - ( - (remaining_gbis["gbis_eligible"] == True) & (remaining_gbis["eco4_eligible"] == False) - ), - "strict GBIS", - remaining_gbis["prospect_type"] - ) - - # 2) GBIS candidates that look like strict ECO4 candidates - remaining_gbis["prospect_type"] = np.where( - (remaining_gbis["eco4_eligible"] == True), - "GBIS - Upgradable to ECO4", - remaining_gbis["prospect_type"] - ) - - # 3) Subject to CIGA check - Filled cavity - remaining_gbis["prospect_type"] = np.where( - ( - remaining_gbis["eligibility_cavity_type"].isin(["full"]) & - pd.isnull(remaining_gbis["prospect_type"]) - ), - "GBIS - Filled cavity - subject to CIGA check", - remaining_gbis["prospect_type"] - ) - - # 4) Everything else - remaining_gbis["prospect_type"] = remaining_gbis["prospect_type"].fillna( - "Does not look like GBIS candidate" - ) - - #################################### - # Surplus properties - #################################### - - # Take properties that were not identified by Warmfront and identify those that look like they would qualify - # under the strictest criteria - surplus_df = analysis_data[ - analysis_data["asset_identification_status"] != "identified potential eco works (CWI)" - ].copy() - - eco4_surplus = surplus_df[ - ( - (surplus_df["eco4_eligible"] == True) & (surplus_df["eco4_message"] == "subject to post retrofit sap") & - ( - surplus_df["eligibility_classification"].isin( - ["high confidence", "highest confidence", "medium confidence"] - ) - ) - ) - ].copy() - - gbis_surplus = surplus_df[ - ( - (surplus_df["gbis_eligible"] == True) & (surplus_df["eco4_eligible"] == False) & ( - surplus_df["eligibility_cavity_type"].isin(["empty", "partial"]) - ) - ) - ].copy() - - # Perform some checks to make sure we have all of the values - remaining_eco4_dict = remaining_eco4_df["prospect_type"].value_counts().to_dict() - if n_remaining_properties_eco4 != sum([v for k, v in remaining_eco4_dict.items()]): - raise ValueError( - "Number of remaining properties does not match the number of properties in remaining ECO4 dict" - ) - - remaining_gbis_dict = remaining_gbis["prospect_type"].value_counts().to_dict() - if n_remaining_properties_gbis != sum([v for k, v in remaining_gbis_dict.items()]): - raise ValueError( - "Number of remaining properties does not match the number of properties in remaining GBIS dict" - ) + n_warmfront_identified_gbis = gbis_identified.shape[0] + gbis_of_which_identified_strict = gbis_identified[gbis_identified["identification_type"] == "strict"].shape[0] + gbis_of_which_identified_expansive = \ + gbis_identified[gbis_identified["identification_type"] == "expansive"].shape[0] to_append = { - "ha_name": ha_name, - "n_properties_in_asset_list": n_properties_in_asset_list, + ("", "HA Name"): ha_name, + ("", "# Properties in asset list"): n_properties_in_asset_list, ############ # ECO4 ############ - "properties_sold_eco4": properties_sold_eco4, - "n_remaining_properties_eco4": n_remaining_properties_eco4, - **remaining_eco4_dict, + ("ECO4", "# Properties identieid by Warmfront"): n_warmfront_identified_eco4, + ("ECO4", "Of which identified by model - strict"): eco4_of_which_identified_strict, + ("ECO4", "Of which identified by model - expansive"): eco4_of_which_identified_expansive, + ("ECO4", "Of which identified by model - total"): ( + eco4_of_which_identified_strict + eco4_of_which_identified_expansive), + ("ECO4", "Additional properties"): surplus_eco4.shape[0], ############ # GBIS ############ - "properties_sold_gbis": properties_sold_gbis, - "n_remaining_properties_gbis": n_remaining_properties_gbis, - **remaining_gbis_dict, - ############ - # GBIS - ############ - "n_eco4_surplus": eco4_surplus.shape[0], - "n_gbis_surplus": gbis_surplus.shape[0], + ("GBIS", "# Properties identieid by Warmfront"): n_warmfront_identified_gbis, + ("GBIS", "Of which identified by model - strict"): gbis_of_which_identified_strict, + ("GBIS", "Of which identified by model - expansive"): gbis_of_which_identified_expansive, + ("GBIS", "Of which identified by model - total"): ( + gbis_of_which_identified_strict + gbis_of_which_identified_expansive + ), + ("GBIS", "Additional properties"): surplus_gbis.shape[0] } ha_analysis_results.append(to_append) - revenue_to_append = { - "ha_name": ha_name, - "£ Remaining from asset list": ( - n_remaining_properties_eco4 * eco4_rate + n_remaining_properties_gbis * gbis_rate - ), - "Of which: Strict": ( - to_append.get('strict ECO4', 0) * eco4_rate + to_append.get('strict GBIS', 0) * gbis_rate + - to_append.get('GBIS - Upgradable to ECO4', 0) * gbis_rate - ), - "Of which: Subject to CIGA": ( - to_append.get("ECO4 - Filled cavity - subject to CIGA check", 0) * eco4_rate + - to_append.get("GBIS - Filled cavity - subject to CIGA check", 0) * gbis_rate - ), - "Of which: Prospect, not perfect strict prospect": ( - to_append.get("ECO4 prospect - empty cavity, loft insulation below regulation", 0) * eco4_rate + - to_append.get("ECO4 if SAP downgrade", 0) * eco4_rate - ), - "Of which: Potential downgrade to GBIS": to_append["Looks like GBIS"] * eco4_rate, - "Of which: Does not look like prospect": ( - to_append.get("Does not look like ECO4 candidate", 0) * eco4_rate + - to_append.get("Does not look like GBIS candidate", 0) * gbis_rate - ), - "Surplus: Unidentified properties": eco4_surplus.shape[0] * eco4_rate + gbis_surplus.shape[0] * gbis_rate, - "Surplus: GBIS Updates to ECO4": to_append.get("GBIS - Upgradable to ECO4", 0) * (eco4_rate - gbis_rate) - } - - # Perform a quick check: - if revenue_to_append["£ Remaining from asset list"] - ( - revenue_to_append["Of which: Strict"] + revenue_to_append["Of which: Subject to CIGA"] + - revenue_to_append["Of which: Prospect, not perfect strict prospect"] + - revenue_to_append["Of which: Potential downgrade to GBIS"] + - revenue_to_append["Of which: Does not look like prospect"] - ) > 1: - raise ValueError("Error between top level revenue figures and breakdown - investigate me") - - ha_revenue_results.append(revenue_to_append) - ha_analysis_results = pd.DataFrame(ha_analysis_results) - ha_revenue_results = pd.DataFrame(ha_revenue_results) + ha_analysis_results.columns = pd.MultiIndex.from_tuples(ha_analysis_results.columns) + facts_and_figures = loader.facts_and_figures.copy() + facts_and_figures["ha_number"] = facts_and_figures["HA Name"].str.extract(r'(\d+)').astype(int) + facts_and_figures = facts_and_figures.sort_values("ha_number") + facts_and_figures = facts_and_figures.drop(columns=["ha_number"]) + + # Rename some of the cols + facts_and_figures = facts_and_figures.rename( + columns={ + # ECO4 cols + "ECO4": "ECO4 - December", + "GBIS": "GBIS - December", + "eco4 (subject to ciga)": "ECO4 - subject to ciga", + "eco4": "ECO4 - doesn't need CIGA", + "eco4 - passed ciga": "ECO4 - passed CIGA", + "failed ciga": "ECO4 - failed CIGA", + "ECO4 - partially cancelled": "ECO4 - Install downgrade to GBIS", + "ECO4 - in progress": "ECO4 - Install in progress", + "ECO4 - cancelled": "ECO4 - Install cancelled", + # GBIS cols + "gbis": "GBIS total (asset list)" + } + ) + # We calculate the eco4 total from the asset list + # 1) If ciga checks have been completed (i.e. ECO4 - passed ciga > 0) this sum is + # ECO4 - doesn't need CIGA + ECO4 - passed CIGA + # 2) if ciga checks haven't been completed (i.e. ECO4 - passed ciga is missing), this sum is + # ECO4 - doesn't need CIGA + ECO4 - subject to ciga + facts_and_figures["ECO4 total (asset list)"] = np.where( + facts_and_figures["ECO4 - passed CIGA"] > 0, + facts_and_figures["ECO4 - doesn't need CIGA"] + facts_and_figures["ECO4 - passed CIGA"], + facts_and_figures["ECO4 - doesn't need CIGA"] + facts_and_figures["ECO4 - subject to ciga"] + ) + + # Re-arrange the columns + facts_and_figures = facts_and_figures[ + [ + 'HA Name', + 'ECO4 - December', + 'GBIS - December', + 'ECO4 total (asset list)', + 'GBIS total (asset list)', + 'ECO4 - subject to ciga', + "ECO4 - doesn't need CIGA", + 'ECO4 - passed CIGA', + 'ECO4 - failed CIGA', + 'ECO4 - installed', + 'ECO4 - Install in progress', + 'ECO4 - Install cancelled', + 'ECO4 - partially installed', + 'ECO4 - Install downgrade to GBIS', + ] + ] + # Addd a note to flag any rows where ECO4 ( + # subject to ciga is greater than 0) and (ECO4 - passed ciga is greater than 0 + # ) + facts_and_figures["Missed CIGA checks opportunity"] = None + facts_and_figures["Missed CIGA checks opportunity"] = np.where( + (facts_and_figures["ECO4 - subject to ciga"] > 0) & (facts_and_figures["ECO4 - passed CIGA"] > 0), + "potential opportunity of " + facts_and_figures["ECO4 - subject to ciga"].astype( + str) + " ECO4 properties needing a CIGA check", + facts_and_figures["Missed CIGA checks opportunity"] + ) + + # Re arrage the columns + + # Also sort ha_analysis_results by ha number + ha_analysis_results["ha_number"] = ha_analysis_results[("", "HA Name")].str.extract(r'(\d+)').astype(int) + ha_analysis_results = ha_analysis_results.sort_values("ha_number") + ha_analysis_results = ha_analysis_results.drop(columns=["ha_number"]) + + # We save 2 sheets # Automate creation of the excel # Create a Pandas Excel writer using XlsxWriter as the engine - with pd.ExcelWriter('HA Analysis - batch3.xlsx', engine='xlsxwriter') as writer: + with pd.ExcelWriter('HA Analysis Results.xlsx', engine='xlsxwriter') as writer: # Write each dataframe to a different worksheet without the index - for df, sheet in [(ha_revenue_results, 'Total Revenue'), - (ha_analysis_results, 'By ECO4 and GBIS')]: + for df, sheet in [(facts_and_figures, 'HA Facts and Figures'), + (ha_analysis_results, 'Asset Identification')]: - df.to_excel(writer, sheet_name=sheet, index=False) + df.to_excel(writer, sheet_name=sheet) # Auto-adjust columns' width for i, width in enumerate(get_col_widths(df)): @@ -2134,7 +2064,7 @@ def app(): # Determines if we want to use the cached data in s3 use_cache = True # Determines if we want to perform the data pull - pull_data = True + pull_data = False # List all of the data in the folder directories = [str(list(entry.iterdir())[0]) for entry in DATA_FOLDER.iterdir() if entry.is_dir()] @@ -2173,43 +2103,3 @@ def app(): floor_area_decile_thresholds=floor_area_decile_thresholds, pull_data=pull_data ) - - # for ha_name, datasets in outputs.items(): - # datasets["results_df"] = datasets["results_df"].drop( - # columns=["eligibility_cavity_type", "eligibility_loft_type"] - # ) - # - # # Re-do - # res = [] - # for _, row in tqdm(datasets["results_df"].iterrows(), total=datasets["results_df"].shape[0]): - # epc = { - # "walls-description": row["walls"], - # "roof-description": row["roof"], - # "floor-description": "", - # "tenure": "", - # "current-energy-efficiency": row["sap"], - # } - # eligibility = Eligibility(epc=epc, cleaned=cleaned) - # eligibility.check_eco4_warmfront() - # res.append( - # { - # "row_id": row["row_id"], - # "eligibility_cavity_type": eligibility.eco4_warmfront["cavity_type"], - # "eligibility_loft_type": eligibility.eco4_warmfront["loft_type"] - # } - # ) - # - # # Merge back on - # res = pd.DataFrame(res) - # datasets["results_df"] = datasets["results_df"].merge(res, how="left", on="row_id") - # - # # Re-save in s3 - # save_pickle_to_s3( - # data={ - # "results_df": datasets["results_df"], - # "scoring_df": datasets["scoring_df"], - # "nodata": datasets["nodata"] - # }, - # bucket_name="retrofit-datalake-dev", - # s3_file_name=f"ha-analysis/{ha_name}/processed_results.pickle" - # ) From 8b8e2bf902f8cc6c588eab8b64253580f3364694 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Fri, 1 Mar 2024 16:29:19 +0000 Subject: [PATCH 334/526] working on new forecast approach for warmfront remaining sales --- .../ha_15_32/ha_analysis_batch_3.py | 811 +++++++++++++++++- utils/s3.py | 2 +- 2 files changed, 768 insertions(+), 45 deletions(-) diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index 61c4a243..bb27029e 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -17,6 +17,7 @@ from etl.eligibility.ha_15_32.app import prepare_model_data_row from backend.ml_models.api import ModelApi from etl.solar.SolarPhotoSupply import SolarPhotoSupply from recommendations.recommendation_utils import calculate_cavity_age +from etl.epc.Record import EPCRecord EPC_AUTH_TOKEN = os.getenv("EPC_AUTH_TOKEN") ENV_FILE = Path(__file__).parent / "etl" / "eligibility" / "ha_15_32" / ".env" @@ -181,25 +182,25 @@ class DataLoader: if ha_name in ["HA1", "HA6", "HA16", "HA24"]: asset_list["matching_address"] = asset_list[ self.COLUMN_CONFIG[ha_name]["address"] - ].str.lower().str.strip() + ].astype(str).str.lower().str.strip() asset_list["matching_postcode"] = asset_list[ self.COLUMN_CONFIG[ha_name]["postcode"] - ].str.lower().str.strip() + ].astype(str).str.lower().str.strip() elif ha_name == "HA7": # Create matching_address by concatenating Address 1, Address 2, Address 3, Address 4, Postcode - asset_list["matching_address"] = asset_list["Address"].str.lower().str.strip() + ", " + \ - asset_list["Address2"].str.lower().str.strip() + ", " + \ - asset_list["Address3"].str.lower().str.strip() + ", " + \ - asset_list["Postcode"].str.lower().str.strip() - asset_list["matching_postcode"] = asset_list["Postcode"].str.lower().str.strip() + asset_list["matching_address"] = asset_list["Address"].astype(str).str.lower().str.strip() + ", " + \ + asset_list["Address2"].astype(str).str.lower().str.strip() + ", " + \ + asset_list["Address3"].astype(str).str.lower().str.strip() + ", " + \ + asset_list["Postcode"].astype(str).str.lower().str.strip() + asset_list["matching_postcode"] = asset_list["Postcode"].astype(str).str.lower().str.strip() elif ha_name == "HA14": # Create matching_address by concatenating Address 1, Address 2, Address 3, Address 4, Postcode - asset_list["matching_address"] = asset_list["Address 1"].str.lower().str.strip() + ", " + \ - asset_list["Address 2"].str.lower().str.strip() + ", " + \ - asset_list["Address 3"].str.lower().str.strip() + ", " + \ - asset_list["Address 4"].str.lower().str.strip() + ", " + \ - asset_list["Postcode"].str.lower().str.strip() - asset_list["matching_postcode"] = asset_list["Postcode"].str.lower().str.strip() + asset_list["matching_address"] = asset_list["Address 1"].astype(str).str.lower().str.strip() + ", " + \ + asset_list["Address 2"].astype(str).str.lower().str.strip() + ", " + \ + asset_list["Address 3"].astype(str).str.lower().str.strip() + ", " + \ + asset_list["Address 4"].astype(str).str.lower().str.strip() + ", " + \ + asset_list["Postcode"].astype(str).str.lower().str.strip() + asset_list["matching_postcode"] = asset_list["Postcode"].astype(str).str.lower().str.strip() elif ha_name == "HA39": # Create matching_address by concatenating add_1, add_2, add_3, add_4, add_5, post_code @@ -209,7 +210,7 @@ class DataLoader: asset_list["add_4"].astype(str).str.lower().str.strip() + ", " + \ asset_list["add_5"].astype(str).str.lower().str.strip() + ", " + \ asset_list["post_code"].astype(str).str.lower().str.strip() - asset_list["matching_postcode"] = asset_list["post_code"].str.lower().str.strip() + asset_list["matching_postcode"] = asset_list["post_code"].astype(str).str.lower().str.strip() elif ha_name == "HA107": # Create matching_address by concatenating House No, Street, Town, District, Postcode asset_list["matching_address"] = asset_list["House No"].astype(str).str.lower().str.strip() + ", " + \ @@ -1098,8 +1099,8 @@ class DataLoader: self.december_figures = pd.read_csv(self.december_figures_filepath) # Remove the spaces in HA Name self.december_figures["HA Name"] = self.december_figures["HA Name"].str.replace(" ", "") - self.december_figures["ECO4"] = self.december_figures["ECO4"].astype("Int64") - self.december_figures["GBIS"] = self.december_figures["GBIS"].astype("Int64") + for col in ["ECO4", "GBIS", "ECO4 remaining", "GBIS remaining"]: + self.december_figures[col] = self.december_figures[col].astype("Int64") if self.use_cache: self.data = read_pickle_from_s3( @@ -1203,7 +1204,6 @@ class DataLoader: # Update the asset list with the categorisations and rename changes if asset_list.shape[0] != asset_list_starting_size: raise ValueError("The asset list has changed in size") - self.data[ha_name]["asset_list"] = asset_list # Report on sales sales_report = {} @@ -1259,7 +1259,31 @@ class DataLoader: ) # We get the sales - sales_report = survey_list["installation_status"].value_counts().to_dict() + sales_report = { + "ECO4 - surveys sold": survey_list.shape[0], + **survey_list["installation_status"].value_counts().to_dict() + } + + # We find some cases where properties have sold but are missing CIGA checks + survey_list_to_merge = survey_list[["asset_list_row_id"]].copy() + survey_list_to_merge["has_a_survey_record"] = True + survey_list_to_merge = survey_list_to_merge[~pd.isnull(survey_list_to_merge["asset_list_row_id"])] + + asset_list = asset_list.merge(survey_list_to_merge, how='left', on="asset_list_row_id") + asset_list["ECO Eligibility"] = np.where( + (asset_list["ECO Eligibility"] == "eco4 (subject to ciga)") & ( + asset_list["has_a_survey_record"] == True + ), + "eco4 - passed ciga", + asset_list["ECO Eligibility"] + ) + asset_list = asset_list.drop(columns=["has_a_survey_record"]) + + # Update the survey list with installation status + self.data[ha_name]["survey_list"] = survey_list + + # Insert updated asset list + self.data[ha_name]["asset_list"] = asset_list ha_facts_and_figures.append( { @@ -1687,7 +1711,21 @@ def analyse_ha_data(outputs, loader): :return: """ + eco4_rate = 1710 + gbis_rate = 600 + old_eco4_rate = 1456 + old_gbis_rate = 432 + + epc_c_threshold = 80 + scheme_map = { + "ECO4": "ECO4", + "AFFORDABLE WARMTH": "ECO4", + "ECO4 A/W": "ECO4", + "ECO4 GBIS (ECO+)": "GBIS" + } + ha_analysis_results = [] + total_revenue_results = [] for ha_name, datasets in outputs.items(): inputs = [x for k, x in loader.data.items() if k == ha_name][0] @@ -1702,6 +1740,88 @@ def analyse_ha_data(outputs, loader): left_on="asset_list_row_id" ) + analysis_data["is_remaining"] = True + + n_sold_eco4 = 0 + n_sold_gbis = 0 + if not inputs["survey_list"].empty: + # Merge on the survey list and signal everything that is remaining or not (i.e. anything that hasn't had + # a survey) + survey_list = inputs["survey_list"].copy() + + # TODO: TEMP + scheme_column = survey_list.columns[0] + # We clean up the survey list installation or cancelled + survey_list["installed_or_cancelled_clean"] = survey_list["INSTALLED OR CANCELLED"].str.lower() + # Remove all punctuation + survey_list["installed_or_cancelled_clean"] = survey_list["installed_or_cancelled_clean"].str.replace( + r'[^\w\s]', '', regex=True + ) + # Remove double spaces + survey_list["installed_or_cancelled_clean"] = survey_list["installed_or_cancelled_clean"].str.replace( + r'\s+', ' ', regex=True + ) + # Remove trailing spaces + survey_list["installed_or_cancelled_clean"] = survey_list["installed_or_cancelled_clean"].str.strip() + + # Remap the values in the scheme column + survey_list[scheme_column] = survey_list[scheme_column].replace(scheme_map) + + survey_list["installation_status"] = None + survey_list["installation_status"] = np.where( + survey_list["installed_or_cancelled_clean"].isin(["installed", "installed see notes"]), + "installed", + survey_list["installation_status"] + ) + survey_list["installation_status"] = np.where( + survey_list["installed_or_cancelled_clean"].isin(["cancelled"]), + "cancelled", + survey_list["installation_status"] + ) + # Find partial installations + survey_list["installation_status"] = np.where( + survey_list["installed_or_cancelled_clean"].str.contains("still to be installed"), + "partially installed", + survey_list["installation_status"] + ) + # Find partial cancellations + # TODO: We might have more indications of partial cancellations + survey_list["installation_status"] = np.where( + survey_list["installed_or_cancelled_clean"].isin(["loft cancelled"]), + "partially cancelled", + survey_list["installation_status"] + ) + + # Finally, for other cases, we set the status to "in progress" + survey_list["installation_status"] = survey_list["installation_status"].fillna("in progress") + + # We concatenate the scheme name with the installation status + survey_list["installation_status"] = ( + survey_list[scheme_column] + " - " + survey_list["installation_status"] + ) + + # TODO: END TEMP + + survey_list_to_merge = survey_list[["asset_list_row_id", scheme_column]].copy() + survey_list_to_merge["is_remaining"] = False + analysis_data = analysis_data.drop(columns="is_remaining").merge( + survey_list_to_merge, + how="left", on="asset_list_row_id" + ) + analysis_data["is_remaining"] = analysis_data["is_remaining"].fillna(True) + + n_sold_eco4 = survey_list_to_merge[survey_list_to_merge[scheme_column] == "ECO4"].shape[0] + n_sold_gbis = survey_list_to_merge[survey_list_to_merge[scheme_column] == "GBIS"].shape[0] + + # Take just remaining + analysis_data = analysis_data[analysis_data["is_remaining"]] + + # Also, if the HA has started selling, we remove any that are still subject to ciga + n_eco4_missed_subject_to_ciga = 0 + if not inputs["survey_list"].empty: + n_eco4_missed_subject_to_ciga = (analysis_data["ECO Eligibility"] == "eco4 (subject to ciga)").sum() + analysis_data = analysis_data[analysis_data["ECO Eligibility"] != "eco4 (subject to ciga)"] + ################################################################################################ # We take the properties that strictly qualified under eco ################################################################################################ @@ -1714,8 +1834,11 @@ def analyse_ha_data(outputs, loader): eco4_identified["identification_type"] ) + # For expansive, the property can be no higher than an EPC C eco4_identified["identification_type"] = np.where( - (eco4_identified["eco4_eligible"] == True) & (eco4_identified["eco4_strict"] == False), + (eco4_identified["eco4_eligible"] == True) & (eco4_identified["eco4_strict"] == False) & ( + eco4_identified["sap"] <= epc_c_threshold + ), "expansive", eco4_identified["identification_type"] ) @@ -1743,21 +1866,17 @@ def analyse_ha_data(outputs, loader): "Meets fabric, fails SAP check", "Meets cavity, loft borderline, meets sap", ] - ), + ) & (ciga_dependent_identified["sap"] <= epc_c_threshold), "strict", ciga_dependent_identified["identification_type"] ) ciga_dependent_identified["identification_type"] = np.where( - (ciga_dependent_identified["eco4_message"].isin(["All conditions fail", "failed fabric check"])) & - (ciga_dependent_identified["walls"].isin(["Cavity wall, filled cavity"])), - "expansive", - ciga_dependent_identified["identification_type"] - ) - - ciga_dependent_identified["identification_type"] = np.where( - (ciga_dependent_identified["eco4_message"].isin(["Meets just cavity"])) | ( + ((ciga_dependent_identified["eco4_message"].isin(["Meets just cavity"])) | ( ciga_dependent_identified["walls"].isin(["Cavity wall, filled cavity"]) + )) & ( + (ciga_dependent_identified["sap"] <= epc_c_threshold) & + pd.isnull(ciga_dependent_identified["identification_type"]) ), "expansive", ciga_dependent_identified["identification_type"] @@ -1775,7 +1894,9 @@ def analyse_ha_data(outputs, loader): ) gbis_identified["identification_type"] = np.where( - (gbis_identified["gbis_eligible"] == True) & (gbis_identified["sap"] >= 69), + (gbis_identified["gbis_eligible"] == True) & (gbis_identified["sap"] <= epc_c_threshold) & ( + pd.isnull(gbis_identified["identification_type"]) + ), "expansive", gbis_identified["identification_type"] ) @@ -1806,9 +1927,16 @@ def analyse_ha_data(outputs, loader): ] surplus_gbis = surplus_gbis[surplus_gbis["is_estimated"] == False] - # Output variables + # Output variables - the data was sent to us in December, but the remaining figures are + # what was in November + november_remaining = loader.december_figures[loader.december_figures["HA Name"] == ha_name] + # ECO4 - n_properties_in_asset_list = inputs["asset_list"].shape[0] + n_properties_remaining_in_asset_list = inputs["asset_list"].shape[0] + november_eco4_remaining = max(november_remaining["ECO4 remaining"].values[0], 0) + november_eco4_sold = november_remaining["No. of Tech surveys complete - Eco 4"].values[0] + eco4_sales_since_november = n_sold_eco4 - november_eco4_sold + n_warmfront_identified_eco4 = eco4_identified.shape[0] + ciga_dependent_identified.shape[0] eco4_of_which_identified_strict = ( eco4_identified[eco4_identified["identification_type"] == "strict"].shape[0] + @@ -1820,26 +1948,37 @@ def analyse_ha_data(outputs, loader): ) # GBIS n_warmfront_identified_gbis = gbis_identified.shape[0] + november_gbis_remaining = max(november_remaining["GBIS remaining"].values[0], 0) + november_gbis_sold = november_remaining["No. of Tech surveys complete - GBIS"].values[0] + gbis_sales_since_november = n_sold_gbis - november_gbis_sold gbis_of_which_identified_strict = gbis_identified[gbis_identified["identification_type"] == "strict"].shape[0] gbis_of_which_identified_expansive = \ gbis_identified[gbis_identified["identification_type"] == "expansive"].shape[0] to_append = { ("", "HA Name"): ha_name, - ("", "# Properties in asset list"): n_properties_in_asset_list, + ("", "# properties in asset list"): n_properties_remaining_in_asset_list, ############ # ECO4 ############ - ("ECO4", "# Properties identieid by Warmfront"): n_warmfront_identified_eco4, + ("ECO4", "# remaining November file"): november_eco4_remaining, + ("ECO4", "# sold in November file"): november_eco4_sold, + ("ECO4", "# sold (survey list)"): n_sold_eco4, + ("ECO4", "# that missed CIGA check"): n_eco4_missed_subject_to_ciga, + ("ECO4", "# Remaining properties (asset list)"): n_warmfront_identified_eco4, ("ECO4", "Of which identified by model - strict"): eco4_of_which_identified_strict, ("ECO4", "Of which identified by model - expansive"): eco4_of_which_identified_expansive, ("ECO4", "Of which identified by model - total"): ( - eco4_of_which_identified_strict + eco4_of_which_identified_expansive), + eco4_of_which_identified_strict + eco4_of_which_identified_expansive + ), ("ECO4", "Additional properties"): surplus_eco4.shape[0], ############ # GBIS ############ - ("GBIS", "# Properties identieid by Warmfront"): n_warmfront_identified_gbis, + ("GBIS", "# remaining November file"): november_gbis_remaining, + ("GBIS", "# sold in November file"): november_gbis_sold, + ("GBIS", "# sold (survey list)"): n_sold_gbis, + ("GBIS", "# Remaining properties (asset list)"): n_warmfront_identified_gbis, ("GBIS", "Of which identified by model - strict"): gbis_of_which_identified_strict, ("GBIS", "Of which identified by model - expansive"): gbis_of_which_identified_expansive, ("GBIS", "Of which identified by model - total"): ( @@ -1850,6 +1989,24 @@ def analyse_ha_data(outputs, loader): ha_analysis_results.append(to_append) + # Calculate the revenue results + to_append_revenue = { + ("", "HA Name"): ha_name, + # Eco4 revenue + ("ECO4", "£ remaining November file"): november_eco4_remaining * eco4_rate, + ("ECO4", "£ sold November file"): november_eco4_sold * old_eco4_rate, + ("ECO4", "£ sold since November"): eco4_sales_since_november * eco4_rate, + ("ECO4", "£ stuck at ciga check"): n_eco4_missed_subject_to_ciga * eco4_rate, + ("ECO4", "£ remaining (asset list)"): n_warmfront_identified_eco4 * eco4_rate, + ("ECO4", "Of which identified by model - strict"): eco4_of_which_identified_strict * eco4_rate, + ("ECO4", "Of which identified by model - expansive"): eco4_of_which_identified_expansive * eco4_rate, + ("ECO4", "Of which identified by model - total"): eco4_rate * ( + eco4_of_which_identified_strict + eco4_of_which_identified_expansive + ), + ("ECO4", "Additional properties"): eco4_rate * surplus_eco4.shape[0], + } + total_revenue_results.append(to_append_revenue) + ha_analysis_results = pd.DataFrame(ha_analysis_results) ha_analysis_results.columns = pd.MultiIndex.from_tuples(ha_analysis_results.columns) @@ -1862,8 +2019,8 @@ def analyse_ha_data(outputs, loader): facts_and_figures = facts_and_figures.rename( columns={ # ECO4 cols - "ECO4": "ECO4 - December", - "GBIS": "GBIS - December", + "ECO4": "ECO4 - November", + "GBIS": "GBIS - November", "eco4 (subject to ciga)": "ECO4 - subject to ciga", "eco4": "ECO4 - doesn't need CIGA", "eco4 - passed ciga": "ECO4 - passed CIGA", @@ -1880,19 +2037,27 @@ def analyse_ha_data(outputs, loader): # ECO4 - doesn't need CIGA + ECO4 - passed CIGA # 2) if ciga checks haven't been completed (i.e. ECO4 - passed ciga is missing), this sum is # ECO4 - doesn't need CIGA + ECO4 - subject to ciga - facts_and_figures["ECO4 total (asset list)"] = np.where( + facts_and_figures["ECO4 total (asset list - pre ciga)"] = ( + facts_and_figures["ECO4 - doesn't need CIGA"] + + facts_and_figures["ECO4 - subject to ciga"] + + facts_and_figures["ECO4 - passed CIGA"] + ) + + facts_and_figures["ECO4 total (asset list - post ciga)"] = None + facts_and_figures["ECO4 total (asset list - post ciga)"] = np.where( facts_and_figures["ECO4 - passed CIGA"] > 0, facts_and_figures["ECO4 - doesn't need CIGA"] + facts_and_figures["ECO4 - passed CIGA"], - facts_and_figures["ECO4 - doesn't need CIGA"] + facts_and_figures["ECO4 - subject to ciga"] + facts_and_figures["ECO4 total (asset list - post ciga)"] ) # Re-arrange the columns facts_and_figures = facts_and_figures[ [ 'HA Name', - 'ECO4 - December', - 'GBIS - December', - 'ECO4 total (asset list)', + 'ECO4 - November', + 'GBIS - November', + 'ECO4 total (asset list - pre ciga)', + 'ECO4 total (asset list - post ciga)', 'GBIS total (asset list)', 'ECO4 - subject to ciga', "ECO4 - doesn't need CIGA", @@ -1916,6 +2081,8 @@ def analyse_ha_data(outputs, loader): facts_and_figures["Missed CIGA checks opportunity"] ) + facts_and_figures.to_csv("Facts and figures sample.csv") + # Re arrage the columns # Also sort ha_analysis_results by ha number @@ -1937,6 +2104,333 @@ def analyse_ha_data(outputs, loader): for i, width in enumerate(get_col_widths(df)): writer.sheets[sheet].set_column(i, i, width) + # Inspection: - Looking into the proportion of homes with "cavity, as built, insulated (assumed)" as their + # description, and what proportion of time they get identified via non-invasive surveys + + # true_eco4_assets = [] + # ciga_dependent_assets = [] + # not_eligible = [] + # as_built_insulated = [] + # date_cols = { + # "HA39": "date_built", + # "HA14": "Built In Year", + # "HA6": "Construction Year", + # "HA1": "Build Date", + # "HA107": "YEAR BUILT" + # } + # for ha_name, data_objects in outputs.items(): + # inputs = [x for k, x in loader.data.items() if k == ha_name][0] + # + # date_col = date_cols[ha_name] + # results_df = data_objects["results_df"].copy() + # df = inputs["asset_list"][['asset_list_row_id', "ECO Eligibility", date_col]].rename( + # columns={"row_meaning": "asset_identification_status", date_col: "date_built"} + # ).merge( + # results_df, + # how="left", + # right_on="row_id", + # left_on="asset_list_row_id" + # ) + # + # # take the true ECO4 + # true_eco4 = df[df["ECO Eligibility"] == "eco4"].copy() + # ciga_dependent = df[ + # df["ECO Eligibility"].isin( + # [ + # "eco4 (subject to ciga)", + # "failed ciga", + # "eco4 - passed ciga" + # ] + # ) + # ] + # insulated_assumed = df[df["walls"] == "Cavity wall, as built, insulated"].copy() + # # We convert date built to datetime + # try: + # insulated_assumed = insulated_assumed[~pd.isnull(insulated_assumed["date_built"])] + # insulated_assumed["year_built"] = pd.to_datetime(insulated_assumed["date_built"].astype(str)).dt.year + # as_built_insulated.append(insulated_assumed) + # except Exception as e: + # print("oh well") + # + # true_eco4_assets.append(true_eco4) + # ciga_dependent_assets.append(ciga_dependent) + # + # true_eco4_assets = pd.concat(true_eco4_assets) + # ciga_dependent_assets = pd.concat(ciga_dependent_assets) + # as_built_insulated = pd.concat(as_built_insulated) + # + # true_eco4_assets["walls"].value_counts(normalize=True) + # ciga_dependent_assets["walls"].value_counts(normalize=True) + # + # from recommendations.recommendation_utils import extract_insulation_thickness + # + # true_eco4_assets["roof_insulation_thickness"] = true_eco4_assets["roof"].apply( + # lambda x: extract_insulation_thickness(x) + # ) + # + # true_eco4_assets["e"] = true_eco4_assets.merge( + # pd.DataFrame(cleaned["roof-description"])[["original_description", "insulation_thickness"]], + # how="left", + # left_on="roof", + # right_on="original_description" + # ) + # + # true_eco4_assets["sap"].mean() + # + # true_eco4_assets["insulation_thickness"].isin( + # ["250", "150", "200", "100", "75", "50"] + # ).sum() / true_eco4_assets.shape[0] + # + # true_eco4_assets["insulation_thickness"].isin( + # ["100"] + # ).sum() / true_eco4_assets.shape[0] + # + # as_built_insulated.groupby("property_type")["ECO Eligibility"].value_counts(normalize=True) + + +def get_propensity_model_data( + loader, cleaned, cleaning_data, created_at, photo_supply_lookup, + floor_area_decile_thresholds, pull_data=True +): + # TODO: Set a seed! + model_data = [] + for ha_name, data_assets in loader.data.items(): + + logger.info("Processing HA: %s", ha_name) + if data_assets["survey_list"].empty: + continue + + number_sold = data_assets["survey_list"].shape[0] + + # For each HA, we read pull in the data required, and store in S3 + asset_list = data_assets["asset_list"].copy() + # We determine the number of properties that we should select that are eligible + asset_list_size = asset_list.shape[0] + # Number eligible + n_eligibile = asset_list[asset_list["ECO Eligibility"] != "not eligible"].shape[0] + success_rate = n_eligibile / asset_list_size + needed_sample_size = np.ceil(number_sold / success_rate) + number_negative_samples = int(needed_sample_size - number_sold) + + sold_asset_list_ids = data_assets["survey_list"]["asset_list_row_id"].tolist() + negative_sample_asset_list_ids = asset_list["asset_list_row_id"].sample(number_negative_samples).tolist() + sample_ids = sold_asset_list_ids + negative_sample_asset_list_ids + + sample_asset_list = asset_list[asset_list["asset_list_row_id"].isin(sample_ids)] + + # In order to have the most confidence, we should take just properties that have 1 EPC. We might need to + # cut down the number of properties that we include because of this + # Note: This is an imbalanced problem so we will need to build a model accomadating of that + + data = [] + errors = [] + for index, property_meta in tqdm(sample_asset_list.iterrows(), total=len(sample_asset_list)): + + if property_meta["matching_postcode"] is None: + continue + + property_type, built_form = get_property_type_and_built_form( + property_meta=property_meta, ha_name=ha_name + ) + + searcher = SearchEpc( + address1=str(property_meta["HouseNo"]), + postcode=property_meta["matching_postcode"], + auth_token=EPC_AUTH_TOKEN, + os_api_key="", + full_address=property_meta["matching_address"] + ) + searcher.ordnance_survey_client.property_type = property_type + searcher.ordnance_survey_client.built_form = built_form + searcher.find_property(skip_os=True) + + if searcher.newest_epc is None: + continue + + if searcher.newest_epc.get("estimated"): + # We insert the row ID as our proxy for UPRN + searcher.newest_epc["uprn"] = int(property_meta["asset_list_row_id"].split(ha_name)[1]) + + newest_epc = searcher.newest_epc + older_epcs = searcher.older_epcs + full_sap_epc = searcher.full_sap_epc + + # If we have more than 1 EPC for the moment we just continue + if older_epcs or full_sap_epc: + continue + try: + + # We clean up the data + epc_records = { + 'original_epc': newest_epc.copy(), + 'full_sap_epc': full_sap_epc.copy(), + 'old_data': older_epcs.copy(), + } + + epc_record = EPCRecord( + epc_records=epc_records, + run_mode="newdata", + cleaning_data=cleaning_data + ) + + # If we have some data, continue + data.append( + { + "ECO Eligibility": property_meta["ECO Eligibility"], + "asset_list_row_id": property_meta["asset_list_row_id"], + **epc_record.get("prepared_epc") + } + ) + except Exception as e: + errors.append( + { + "error": str(e), + "asset_list_row_id": property_meta["asset_list_row_id"], + "matching_postcode": property_meta["matching_postcode"], + "matching_address": property_meta["matching_address"] + } + ) + + data = pd.DataFrame(data) + # We store the results in S3 as a pickle + save_pickle_to_s3( + data=data, + bucket_name="retrofit-datalake-dev", + s3_file_name=f"propensity_model_data/{ha_name}/train.pickle" + ) + + # Store the errors + if errors: + save_pickle_to_s3( + data=errors, + bucket_name="retrofit-datalake-dev", + s3_file_name=f"propensity_model_data/{ha_name}/errors.pickle" + ) + + model_data.append(data) + + return model_data + + +def conversion_model(loader): + # Read in the model data + + model_data = [] + for ha_name in loader.data.keys(): + try: + picked = read_pickle_from_s3( + bucket_name="retrofit-datalake-dev", + s3_file_name=f"propensity_model_data/{ha_name}/train.pickle" + ) + data = pd.DataFrame(picked) + + # We merge on the sales data + sales_data = loader.data[ha_name]["survey_list"].copy() + data = data.merge( + sales_data[["asset_list_row_id", "installation_status"]], + how="left", + on="asset_list_row_id" + ) + data["ha_name"] = ha_name + + except Exception as e: + logger.error("Error reading in the data for %s", ha_name) + continue + + model_data.append(data) + + model_data = pd.concat(model_data) + + model_data["response"] = model_data["installation_status"].isin( + [ + "ECO4 - in progress", + "ECO4 - installed" + ] + ).astype(int) + + # Because of how we pulled the data, we need to re-balance the sample + ha_names = model_data["ha_name"].unique() + + balanced_sample = [] + for ha_name in ha_names: + df = model_data[model_data["ha_name"] == ha_name] + positive_samples = df[df["response"] == 1] + negative_samples = df[df["response"] != 1] + + inputs = [x for k, x in loader.data.items() if k == ha_name][0] + asset_list = inputs["asset_list"].copy() + asset_list_size = asset_list.shape[0] + n_eligibile = asset_list[asset_list["ECO Eligibility"] != "not eligible"].shape[0] + success_rate = n_eligibile / asset_list_size + needed_sample_size = np.ceil(positive_samples.shape[0] / success_rate) + number_negative_samples = int(needed_sample_size - positive_samples.shape[0]) + negative_samples_subset = negative_samples.sample(number_negative_samples) + + output = pd.concat([positive_samples, negative_samples_subset]) + + balanced_sample.append(output) + + balanced_sample = pd.concat(balanced_sample) + + # We work with a small sample + # Drop the ECO Eligibility column and installation_status column + # We keep the ID column + balanced_sample = balanced_sample.drop( + columns=['ECO Eligibility', 'asset_list_row_id', 'address', 'uprn_source', 'address3', 'local_authority_label', + 'county', 'postcode', 'constituency', 'local_authority', 'inspection_date', 'address1', + 'constituency_label', 'building_reference_number', 'address2', 'posttown', 'lodgement_datetime', + 'uprn', 'lodgement_date', 'lmk_key', 'installation_status', 'ha_name'] + ) + + # POC model + df = balanced_sample.copy() + # FIll missings with means, if they exist + numeric_cols = df.select_dtypes(include=['float64', 'int64']).columns + df[numeric_cols] = df[numeric_cols].fillna(df[numeric_cols].mean()) + + categorical_cols = df.select_dtypes(include=['object', 'category']).columns + df[categorical_cols] = df[categorical_cols].fillna("other") + + # Reduce the number of categories to a specific number and the rest to other + max_n_categories = 10 + for col in categorical_cols: + top_categories = df[col].value_counts().nlargest(max_n_categories).index + df[col] = df[col].where(df[col].isin(top_categories), other="other") + + # Use a model based approach to feature selection + import xgboost as xgb + from sklearn.model_selection import train_test_split + + # Assuming your outcome column is named 'target' + X = df.drop(columns=['response']) + y = df['response'] + df["low_energy_fixed_light_count"].va + + # Encoding categorical variables if not already done + X = pd.get_dummies(X, drop_first=True) + + # Splitting the data into train and test sets + X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42) + + # Initialize an XGBoost classifier + model = xgb.XGBClassifier() + + # Fit the model + model.fit(X_train, y_train) + + # Get feature importances + feature_importances = model.feature_importances_ + + # Map feature importances to their corresponding column names + feature_importance_dict = {feature: importance for feature, importance in zip(X.columns, feature_importances)} + + # Sort features by importance + sorted_features = sorted(feature_importance_dict.items(), key=lambda item: item[1], reverse=True) + + # Display sorted features + for feature, importance in sorted_features: + print(f"{feature}: {importance}") + def patch_cleaned(cleaned): # Patch to handle the a missing description @@ -2054,6 +2548,218 @@ def patch_cleaned(cleaned): return cleaned +def forecast_remaining_sales(loader): + # Assumptions: + # We cap the ciga conversion rate at 75% because I expect future HAs to have a lower CIGA conversion rate + # and I don't want the numbers to change too much, depenent on the CIGA conversation rate + maximum_ciga_conversion = 0.75 + + gbis_rate = 600 + eco4_rate = 1710 + old_gbis_rate = 432 + old_eco4_rate = 1456 + + # 1) Calculate the conversion rate from passed CIGA to actual sale + converted_ciga_jobs = [] + for ha_name, input_data in loader.data.items(): + asset_list = input_data["asset_list"].copy() + survey_list = input_data["survey_list"].copy() + + if survey_list.empty: + continue + + ciga_dependent_assets = asset_list[ + asset_list["ECO Eligibility"] == "eco4 - passed ciga" + ] + + # These are now the ciga dependent assets at installation + ciga_dependent_assets_at_installation = ciga_dependent_assets.merge( + survey_list[["asset_list_row_id", "installation_status"]], + how="inner", + on="asset_list_row_id" + ) + + # We then calculate how many get cancelled + ciga_dependent_assets_sold = ciga_dependent_assets_at_installation[ + ciga_dependent_assets_at_installation["installation_status"].isin( + [ + "ECO4 - installed", "ECO4 - in progress" + ] + ) + ] + + ciga_dependent_assets_failed = ciga_dependent_assets_at_installation[ + ~ciga_dependent_assets_at_installation["installation_status"].isin( + [ + "ECO4 - installed", "ECO4 - in progress" + ] + ) + ] + + converted_ciga_jobs.append( + { + "HA Name": ha_name, + "# Ciga dependent at installation": ciga_dependent_assets_at_installation.shape[0], + "# Ciga dependent successfully installed": ciga_dependent_assets_sold.shape[0], + "# Ciga dependent failed install": ciga_dependent_assets_failed.shape[0] + } + ) + + converted_ciga_jobs = pd.DataFrame(converted_ciga_jobs) + + # We calculate a ciga pass to install conversaion rate + median_ciga_pass_to_install = ( + converted_ciga_jobs["# Ciga dependent successfully installed"].sum() / + converted_ciga_jobs["# Ciga dependent at installation"].sum() + ) + + # 2) Calculate the conversion rate from CIGA dependent ciga passed + ciga_passrates = [] + for ha_name, input_data in loader.data.items(): + + # If we don't have a ciga list, we can't do anything + if input_data["ciga_list"].empty: + continue + + # 1) Calculate the conversion rate for CIGA to actual sale + asset_list = input_data["asset_list"].copy() + + ciga_completed_assets = asset_list[ + asset_list["ECO Eligibility"].isin( + [ + "eco4 - passed ciga", + "failed ciga" + ] + ) + ] + + ciga_passed = ciga_completed_assets[ + ciga_completed_assets["ECO Eligibility"].isin( + [ + "eco4 - passed ciga" + ] + ) + ] + + ciga_passrates.append( + { + "Ha Name": ha_name, + "# CIGA dependent": ciga_completed_assets.shape[0], + "# CIGA passed": ciga_passed.shape[0], + } + ) + + ciga_passrates = pd.DataFrame(ciga_passrates) + + median_ciga_pass_to_install = ciga_passrates["# CIGA passed"].sum() / ciga_passrates["# CIGA dependent"].sum() + + # 3) Calculate the conversion rate of an ECO4 and a GBISjob, that doesn't need ciga, to install + eco4_ciga_independent_passrates = [] + gbis_ciga_independent_passrates = [] + for ha_name, input_data in loader.data.items(): + asset_list = input_data["asset_list"].copy() + survey_list = input_data["survey_list"].copy() + + if survey_list.empty: + continue + + # For properties that were identified as a typical ECO4 job, we calculate the number of properties that + # installed + # vs cancelled + + typical_eco4 = asset_list[asset_list["ECO Eligibility"] == "eco4"] + typical_gbis = asset_list[asset_list["ECO Eligibility"] == "gbis"] + + # Merge on the surveys + typical_eco4_installed = typical_eco4.merge( + survey_list[["asset_list_row_id", "installation_status"]], how="inner", on="asset_list_row_id" + ) + + if not typical_eco4_installed.empty: + typical_eco4_sold = typical_eco4_installed[ + typical_eco4_installed["installation_status"].isin( + [ + "ECO4 - installed", "ECO4 - in progress" + ] + ) + ] + + eco4_ciga_independent_passrates.append( + { + "Ha Name": ha_name, + "# ECO4 at install stage": typical_eco4_installed.shape[0], + "# ECO4 successfully installed": typical_eco4_sold.shape[0] + } + ) + + typical_gbis_installed = typical_gbis.merge( + survey_list[["asset_list_row_id", "installation_status"]], how="inner", on="asset_list_row_id" + ) + if not typical_gbis_installed.empty: + typical_gbis_sold = typical_gbis_installed[ + typical_gbis_installed["installation_status"].isin( + [ + "GBIS - in progress", "GBIS - installed" + ] + ) + ] + + gbis_ciga_independent_passrates.append( + { + "Ha Name": ha_name, + "# GBIS at install stage": typical_gbis_installed.shape[0], + "# GBIS successfully installed": typical_gbis_sold.shape[0] + } + ) + + eco4_ciga_independent_passrates = pd.DataFrame(eco4_ciga_independent_passrates) + gbis_ciga_independent_passrates = pd.DataFrame(gbis_ciga_independent_passrates) + + median_eco4_to_install = ( + eco4_ciga_independent_passrates["# ECO4 successfully installed"].sum() / + eco4_ciga_independent_passrates["# ECO4 at install stage"].sum() + ) + + median_gbis_to_install = ( + gbis_ciga_independent_passrates["# GBIS successfully installed"].sum() / + gbis_ciga_independent_passrates["# GBIS at install stage"].sum() + ) + + # Produce the final output + december_figures = loader.december_figures.copy() + december_figures = december_figures.fillna(0) + results = [] + for ha_name, input_data in loader.data.items(): + # Original warmfront figures + original_warmfront_estimates = december_figures[december_figures["HA Name"] == ha_name] + + original_warmfront_eco4 = original_warmfront_estimates["ECO4"].values[0] + original_warmfront_remaining_eco4 = original_warmfront_estimates["ECO4 remaining"].values[0] + original_warmfront_gbis = original_warmfront_estimates["GBIS"].values[0] + original_warmfront_remaining_gbis = original_warmfront_estimates["GBIS remaining"].values[0] + + original_warmfront_eco4_revenue = ( + original_warmfront_remaining_eco4 * eco4_rate + + (original_warmfront_eco4 - original_warmfront_remaining_eco4) * old_eco4_rate + ) + original_warmfront_remaining_eco4_revenue = original_warmfront_remaining_eco4 * eco4_rate + + original_warmfront_gbis_revenue = ( + original_warmfront_remaining_gbis * gbis_rate + + (original_warmfront_gbis - original_warmfront_remaining_gbis) * old_gbis_rate + ) + + results.append( + { + ("", "", "HA Name"): ha_name, + ("Original Warmfront estimate", "Total - #", "ECO4 - November"): original_warmfront_eco4, + ("", "Remaining - #", ""): original_warmfront_remaining_eco4, + ("", "Total - £", ""): original_warmfront_eco4_revenue, + ("", "Remaining - £", ""): original_warmfront_remaining_eco4_revenue, + } + ) + + def app(): """ This app contains the housin association analysis for HAs 1, 6, 14, 39 and 107. @@ -2067,11 +2773,14 @@ def app(): pull_data = False # List all of the data in the folder - directories = [str(list(entry.iterdir())[0]) for entry in DATA_FOLDER.iterdir() if entry.is_dir()] + + directories = [str(file) for entry in DATA_FOLDER.iterdir() if entry.is_dir() + for file in entry.iterdir() if file.suffix == '.xlsx'] # Grab the December HA figures filepath december_figures_filepath = "local_data/ha_data/HA_December_figures.csv" - priority_has = ["HA1", "HA6", "HA7", "HA14", "HA16", "HA24", "HA39", "HA107"] + # priority_has = ["HA1", "HA6", "HA7", "HA14", "HA16", "HA24", "HA39", "HA107"] + priority_has = ["HA1", "HA6", "HA7", "HA14", "HA16", "HA39", "HA107"] # Filter down the directories to only the priority HAs directories = [d for d in directories if d.split("/")[2] in priority_has] @@ -2103,3 +2812,17 @@ def app(): floor_area_decile_thresholds=floor_area_decile_thresholds, pull_data=pull_data ) + + analyse_ha_data(outputs, loader) + + # import pickle + # with open("ha_analysis.pickle", "wb") as f: + # pickle.dump({"outputs": outputs, "loader": loader}, f) + + # To read: + # import pickle + # with open("ha_analysis.pickle", "rb") as f: + # outputs = pickle.load(f)["outputs"] + # + # with open("loader.pickle", "rb") as f: + # loader = pickle.load(f) diff --git a/utils/s3.py b/utils/s3.py index cb55094a..8d36bdb3 100644 --- a/utils/s3.py +++ b/utils/s3.py @@ -184,7 +184,7 @@ def read_pickle_from_s3(bucket_name, s3_file_name): logger.errpr("Incomplete credentials provided.") return None except Exception as e: - logger.errpr(f'Failed to download data from {bucket_name}/{s3_file_name}: {str(e)}') + logger.error(f'Failed to download data from {bucket_name}/{s3_file_name}: {str(e)}') return None # Deserialize data from pickle format From 9e679bd3fdb6e38a263f804ffdb07dda3892e7b1 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Fri, 1 Mar 2024 16:59:22 +0000 Subject: [PATCH 335/526] working on new forecast methodology --- .../ha_15_32/ha_analysis_batch_3.py | 81 +++++++++++++++++-- 1 file changed, 73 insertions(+), 8 deletions(-) diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index bb27029e..21af73ff 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -2728,15 +2728,22 @@ def forecast_remaining_sales(loader): # Produce the final output december_figures = loader.december_figures.copy() december_figures = december_figures.fillna(0) + # If we have negative remaining, it means that actually sold more gbis than they initially thought so we set + # remaining to 0 + december_figures["ECO4 remaining"] = np.where( + december_figures["ECO4 remaining"] < 0, 0, december_figures["ECO4 remaining"] + ) + december_figures["GBIS remaining"] = np.where( + december_figures["GBIS remaining"] < 0, 0, december_figures["GBIS remaining"] + ) + results = [] for ha_name, input_data in loader.data.items(): - # Original warmfront figures + # Original warmfront figures - ECO4 original_warmfront_estimates = december_figures[december_figures["HA Name"] == ha_name] original_warmfront_eco4 = original_warmfront_estimates["ECO4"].values[0] original_warmfront_remaining_eco4 = original_warmfront_estimates["ECO4 remaining"].values[0] - original_warmfront_gbis = original_warmfront_estimates["GBIS"].values[0] - original_warmfront_remaining_gbis = original_warmfront_estimates["GBIS remaining"].values[0] original_warmfront_eco4_revenue = ( original_warmfront_remaining_eco4 * eco4_rate + @@ -2744,21 +2751,79 @@ def forecast_remaining_sales(loader): ) original_warmfront_remaining_eco4_revenue = original_warmfront_remaining_eco4 * eco4_rate + # Original warmfront figures - GBIS + + original_warmfront_gbis = original_warmfront_estimates["GBIS"].values[0] + original_warmfront_remaining_gbis = original_warmfront_estimates["GBIS remaining"].values[0] + original_warmfront_gbis_revenue = ( original_warmfront_remaining_gbis * gbis_rate + (original_warmfront_gbis - original_warmfront_remaining_gbis) * old_gbis_rate ) + original_warmfront_remaining_gbis_revenue = original_warmfront_remaining_gbis * gbis_rate + + # Asset list + asset_list = input_data["asset_list"].copy() + survey_list = input_data["survey_list"].copy() + + asset_list_remaining = asset_list.merge( + survey_list[["asset_list_row_id", "installation_status"]], + how="left", + on="asset_list_row_id" + ) + asset_list_remaining = asset_list_remaining[pd.isnull(asset_list_remaining["installation_status"])] + + eligiblity_counts = pd.DataFrame(asset_list["ECO Eligibility"].value_counts()).reset_index() + eligiblity_counts_remaining = pd.DataFrame(asset_list_remaining["ECO Eligibility"].value_counts()).reset_index() + + eco4_pre_ciga = eligiblity_counts[ + eligiblity_counts["ECO Eligibility"].isin( + ["eco4", "eco4 (subject to ciga)", "eco4 - passed ciga", "failed ciga"] + ) + ]["count"].sum() + + eco4_pre_ciga_remaining = eligiblity_counts_remaining[ + eligiblity_counts["ECO Eligibility"].isin( + ["eco4", "eco4 (subject to ciga)", "eco4 - passed ciga", "failed ciga"] + ) + ]["count"].sum() + + eco4_pre_ciga_revenue = eco4_pre_ciga * eco4_rate + eco4_pre_ciga_remaining_revenue = eco4_pre_ciga_remaining * eco4_rate + + # We check if the property has done a CIGA check + has_ciga_check = not input_data["ciga_list"].empty + + if has_ciga_check: + eco4_post_ciga = eligiblity_counts[ + eligiblity_counts["ECO Eligibility"].isin( + ["eco4", "eco4 (subject to ciga)", "eco4 - passed ciga", "failed ciga"] + ) + ]["count"].sum() results.append( { - ("", "", "HA Name"): ha_name, - ("Original Warmfront estimate", "Total - #", "ECO4 - November"): original_warmfront_eco4, - ("", "Remaining - #", ""): original_warmfront_remaining_eco4, - ("", "Total - £", ""): original_warmfront_eco4_revenue, - ("", "Remaining - £", ""): original_warmfront_remaining_eco4_revenue, + ("", "", "", "HA Name"): ha_name, + # ECO4 - original warmfront figures + ("", "Original Warmfront estimate", "Total - #", "ECO4 - November"): original_warmfront_eco4, + ("ECO4", "", "Remaining - #", ""): original_warmfront_remaining_eco4, + ("ECO4", "", "Total - £", ""): original_warmfront_eco4_revenue, + ("ECO4", "", "Remaining - £", ""): original_warmfront_remaining_eco4_revenue, + # GBIS - original warmfront figures + ("", "Original Warmfront estimate", "Total - #", "GBIS - November"): original_warmfront_gbis, + ("GBIS", "", "Remaining - #", ""): original_warmfront_gbis, + ("GBIS", "", "Total - £", ""): original_warmfront_gbis_revenue, + ("GBIS", "", "Remaining - £", ""): original_warmfront_remaining_gbis_revenue, + # ECO4 - asset list + ("", "Warmfront post code list", "Total #", "ECO4 total (pre-ciga)"): eco4_pre_ciga, + ("ECO4", "", "Remaining - #", ""): eco4_pre_ciga_remaining, + ("ECO4", "", "Total - £", ""): eco4_pre_ciga_revenue, + ("ECO4", "", "Remaining - £", ""): eco4_pre_ciga_remaining_revenue, } ) + results = pd.DataFrame(results) + def app(): """ From a81f1f2520479e706479bada1761aaa92bb01a44 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Fri, 1 Mar 2024 17:37:57 +0000 Subject: [PATCH 336/526] Adding in eligible properties left estimation --- .../ha_15_32/ha_analysis_batch_3.py | 101 ++++++++++++------ 1 file changed, 69 insertions(+), 32 deletions(-) diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index 21af73ff..cf9dfa53 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -2613,7 +2613,7 @@ def forecast_remaining_sales(loader): converted_ciga_jobs["# Ciga dependent at installation"].sum() ) - # 2) Calculate the conversion rate from CIGA dependent ciga passed + # 2) Calculate the conversion rate from CIGA dependent to ciga passed ciga_passrates = [] for ha_name, input_data in loader.data.items(): @@ -2651,7 +2651,7 @@ def forecast_remaining_sales(loader): ciga_passrates = pd.DataFrame(ciga_passrates) - median_ciga_pass_to_install = ciga_passrates["# CIGA passed"].sum() / ciga_passrates["# CIGA dependent"].sum() + median_ciga_success_rate = ciga_passrates["# CIGA passed"].sum() / ciga_passrates["# CIGA dependent"].sum() # 3) Calculate the conversion rate of an ECO4 and a GBISjob, that doesn't need ciga, to install eco4_ciga_independent_passrates = [] @@ -2762,16 +2762,20 @@ def forecast_remaining_sales(loader): ) original_warmfront_remaining_gbis_revenue = original_warmfront_remaining_gbis * gbis_rate - # Asset list + # Asset list - ECO4 asset_list = input_data["asset_list"].copy() survey_list = input_data["survey_list"].copy() - asset_list_remaining = asset_list.merge( - survey_list[["asset_list_row_id", "installation_status"]], - how="left", - on="asset_list_row_id" - ) - asset_list_remaining = asset_list_remaining[pd.isnull(asset_list_remaining["installation_status"])] + if survey_list.empty: + asset_list_remaining = asset_list.copy() + else: + asset_list_remaining = asset_list.merge( + survey_list[["asset_list_row_id", "installation_status"]], + how="left", + on="asset_list_row_id" + ) + asset_list_remaining = asset_list_remaining[pd.isnull(asset_list_remaining["installation_status"])] + asset_list_remaining = asset_list_remaining.drop(columns=["installation_status"]) eligiblity_counts = pd.DataFrame(asset_list["ECO Eligibility"].value_counts()).reset_index() eligiblity_counts_remaining = pd.DataFrame(asset_list_remaining["ECO Eligibility"].value_counts()).reset_index() @@ -2791,36 +2795,69 @@ def forecast_remaining_sales(loader): eco4_pre_ciga_revenue = eco4_pre_ciga * eco4_rate eco4_pre_ciga_remaining_revenue = eco4_pre_ciga_remaining * eco4_rate - # We check if the property has done a CIGA check - has_ciga_check = not input_data["ciga_list"].empty + # Total Eligible - this is what passed ciga checks + strict. If we don't have what passed CIGA, we estimate + # We check if the HA has done a CIGA check. Also, if we have assets dormant at CIGA, we estimate what will + # convert + # We estimate a conversion for anything left post CIGA + ha_ciga_conversion = ciga_passrates[ciga_passrates["Ha Name"] == ha_name] + if not ha_ciga_conversion.empty: + ha_ciga_conversion_rate = ( + ha_ciga_conversion["# CIGA passed"].values[0] / ha_ciga_conversion["# CIGA dependent"].values[0] + ) + else: + ha_ciga_conversion_rate = ( + median_ciga_success_rate if median_ciga_success_rate <= median_ciga_success_rate else + median_ciga_success_rate + ) + remaining_needing_ciga_check = eligiblity_counts[ + eligiblity_counts["ECO Eligibility"] == "eco4 (subject to ciga)" + ]["count"].sum() + + has_ciga_check = not input_data["ciga_list"].empty if has_ciga_check: eco4_post_ciga = eligiblity_counts[ eligiblity_counts["ECO Eligibility"].isin( - ["eco4", "eco4 (subject to ciga)", "eco4 - passed ciga", "failed ciga"] + ["eco4", "eco4 - passed ciga", "failed ciga"] ) ]["count"].sum() - results.append( - { - ("", "", "", "HA Name"): ha_name, - # ECO4 - original warmfront figures - ("", "Original Warmfront estimate", "Total - #", "ECO4 - November"): original_warmfront_eco4, - ("ECO4", "", "Remaining - #", ""): original_warmfront_remaining_eco4, - ("ECO4", "", "Total - £", ""): original_warmfront_eco4_revenue, - ("ECO4", "", "Remaining - £", ""): original_warmfront_remaining_eco4_revenue, - # GBIS - original warmfront figures - ("", "Original Warmfront estimate", "Total - #", "GBIS - November"): original_warmfront_gbis, - ("GBIS", "", "Remaining - #", ""): original_warmfront_gbis, - ("GBIS", "", "Total - £", ""): original_warmfront_gbis_revenue, - ("GBIS", "", "Remaining - £", ""): original_warmfront_remaining_gbis_revenue, - # ECO4 - asset list - ("", "Warmfront post code list", "Total #", "ECO4 total (pre-ciga)"): eco4_pre_ciga, - ("ECO4", "", "Remaining - #", ""): eco4_pre_ciga_remaining, - ("ECO4", "", "Total - £", ""): eco4_pre_ciga_revenue, - ("ECO4", "", "Remaining - £", ""): eco4_pre_ciga_remaining_revenue, - } - ) + if remaining_needing_ciga_check > 0: + # We update the eco4 post ciga with the converted remaining + eco4_post_ciga += np.round(remaining_needing_ciga_check * ha_ciga_conversion_rate) + else: + eco4_post_ciga = eligiblity_counts[ + eligiblity_counts["ECO Eligibility"] == "eco4" + ]["count"].sum() + np.round(remaining_needing_ciga_check * ha_ciga_conversion_rate) + + eco4_post_ciga = int(eco4_post_ciga) + + to_append = { + ("", "", "", "HA Name"): ha_name, + # ECO4 - original warmfront figures + ("", "Original Warmfront estimate", "Total - #", "ECO4 - November"): original_warmfront_eco4, + ("ECO4 original", "", "Remaining - #", ""): original_warmfront_remaining_eco4, + ("ECO4 original", "", "Total - £", ""): original_warmfront_eco4_revenue, + ("ECO4 original", "", "Remaining - £", ""): original_warmfront_remaining_eco4_revenue, + # GBIS - original warmfront figures + ("", "Original Warmfront estimate", "Total - #", "GBIS - November"): original_warmfront_gbis, + ("GBIS original", "", "Remaining - #", ""): original_warmfront_gbis, + ("GBIS original", "", "Total - £", ""): original_warmfront_gbis_revenue, + ("GBIS original", "", "Remaining - £", ""): original_warmfront_remaining_gbis_revenue, + # ECO4 - asset list, pre-ciga + ("", "Warmfront post code list", "Total #", "ECO4 total (pre-ciga)"): eco4_pre_ciga, + ("ECO4 pre-ciga", "", "Remaining - #", ""): eco4_pre_ciga_remaining, + ("ECO4 pre-ciga", "", "Total - £", ""): eco4_pre_ciga_revenue, + ("ECO4 pre-ciga", "", "Remaining - £", ""): eco4_pre_ciga_remaining_revenue, + # ECO4 - asset list, post ciga + ("ECO4 post-ciga", "", "Estimated total eligible - #", ""): eco4_post_ciga, + } + + # Make sure nothing is forgotten due to duplicate multi-index keys + if len(to_append) != 14: + raise ValueError("Something went wrong") + + results.append(to_append) results = pd.DataFrame(results) From 6544adc6c3c9d811f789a0372a33a19bd32beb78 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Fri, 1 Mar 2024 17:47:51 +0000 Subject: [PATCH 337/526] Added eligibility calculations --- .../ha_15_32/ha_analysis_batch_3.py | 55 ++++++++++++------- 1 file changed, 35 insertions(+), 20 deletions(-) diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index cf9dfa53..8a46703e 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -2548,6 +2548,33 @@ def patch_cleaned(cleaned): return cleaned +def calculate_eco4_post_ciga(eligiblity_counts, input_data, ha_ciga_conversion_rate, eco4_rate): + remaining_needing_ciga_check = eligiblity_counts[ + eligiblity_counts["ECO Eligibility"] == "eco4 (subject to ciga)" + ]["count"].sum() + + has_ciga_check = not input_data["ciga_list"].empty + if has_ciga_check: + eco4_post_ciga = eligiblity_counts[ + eligiblity_counts["ECO Eligibility"].isin( + ["eco4", "eco4 - passed ciga", "failed ciga"] + ) + ]["count"].sum() + + if remaining_needing_ciga_check > 0: + # We update the eco4 post ciga with the converted remaining + eco4_post_ciga += np.round(remaining_needing_ciga_check * ha_ciga_conversion_rate) + else: + eco4_post_ciga = ( + eligiblity_counts[eligiblity_counts["ECO Eligibility"] == "eco4"]["count"].sum() + + np.round(remaining_needing_ciga_check * ha_ciga_conversion_rate) + ) + eco4_post_ciga = int(eco4_post_ciga) + eco4_post_ciga_revenue = eco4_post_ciga * eco4_rate + + return eco4_post_ciga, eco4_post_ciga_revenue + + def forecast_remaining_sales(loader): # Assumptions: # We cap the ciga conversion rate at 75% because I expect future HAs to have a lower CIGA conversion rate @@ -2810,27 +2837,13 @@ def forecast_remaining_sales(loader): median_ciga_success_rate ) - remaining_needing_ciga_check = eligiblity_counts[ - eligiblity_counts["ECO Eligibility"] == "eco4 (subject to ciga)" - ]["count"].sum() + eco4_post_ciga, eco4_post_ciga_revenue = calculate_eco4_post_ciga( + eligiblity_counts, input_data, ha_ciga_conversion_rate, eco4_rate + ) - has_ciga_check = not input_data["ciga_list"].empty - if has_ciga_check: - eco4_post_ciga = eligiblity_counts[ - eligiblity_counts["ECO Eligibility"].isin( - ["eco4", "eco4 - passed ciga", "failed ciga"] - ) - ]["count"].sum() - - if remaining_needing_ciga_check > 0: - # We update the eco4 post ciga with the converted remaining - eco4_post_ciga += np.round(remaining_needing_ciga_check * ha_ciga_conversion_rate) - else: - eco4_post_ciga = eligiblity_counts[ - eligiblity_counts["ECO Eligibility"] == "eco4" - ]["count"].sum() + np.round(remaining_needing_ciga_check * ha_ciga_conversion_rate) - - eco4_post_ciga = int(eco4_post_ciga) + eco4_post_ciga_remaining, eco4_post_ciga_remaining_revenue = calculate_eco4_post_ciga( + eligiblity_counts_remaining, input_data, ha_ciga_conversion_rate, eco4_rate + ) to_append = { ("", "", "", "HA Name"): ha_name, @@ -2851,6 +2864,8 @@ def forecast_remaining_sales(loader): ("ECO4 pre-ciga", "", "Remaining - £", ""): eco4_pre_ciga_remaining_revenue, # ECO4 - asset list, post ciga ("ECO4 post-ciga", "", "Estimated total eligible - #", ""): eco4_post_ciga, + ("ECO4 post-ciga", "", "Estimated remaining eligible - #", ""): eco4_post_ciga_remaining, + ("ECO4 post-ciga", "", "Estimated total eligible - £", ""): eco4_post_ciga_revenue, } # Make sure nothing is forgotten due to duplicate multi-index keys From 5c686f5ec471b3c5c84b307e0851e2a0462934c0 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Fri, 1 Mar 2024 17:56:45 +0000 Subject: [PATCH 338/526] working on forecast --- etl/eligibility/ha_15_32/ha_analysis_batch_3.py | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index 8a46703e..0bf34e70 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -2841,6 +2841,9 @@ def forecast_remaining_sales(loader): eligiblity_counts, input_data, ha_ciga_conversion_rate, eco4_rate ) + # Calculate the delta compared to Warmfront's original estimate + eco4_delta_vs_original_estimate = 200 * (eco4_post_ciga - original_warmfront_eco4) / original_warmfront_eco4 + eco4_post_ciga_remaining, eco4_post_ciga_remaining_revenue = calculate_eco4_post_ciga( eligiblity_counts_remaining, input_data, ha_ciga_conversion_rate, eco4_rate ) @@ -2862,14 +2865,17 @@ def forecast_remaining_sales(loader): ("ECO4 pre-ciga", "", "Remaining - #", ""): eco4_pre_ciga_remaining, ("ECO4 pre-ciga", "", "Total - £", ""): eco4_pre_ciga_revenue, ("ECO4 pre-ciga", "", "Remaining - £", ""): eco4_pre_ciga_remaining_revenue, - # ECO4 - asset list, post ciga + # ECO4 - asset list, post ciga, total ("ECO4 post-ciga", "", "Estimated total eligible - #", ""): eco4_post_ciga, - ("ECO4 post-ciga", "", "Estimated remaining eligible - #", ""): eco4_post_ciga_remaining, ("ECO4 post-ciga", "", "Estimated total eligible - £", ""): eco4_post_ciga_revenue, + ("ECO4 post-ciga", "", "Delta vs original estimate", ""): eco4_delta_vs_original_estimate, + # ECO4 - asset list, post ciga, remaining + ("ECO4 post-ciga", "", "Estimated remaining eligible - #", ""): eco4_post_ciga_remaining, + ("ECO4 post-ciga", "", "Estimated remaining total eligible - £", ""): eco4_post_ciga_remaining_revenue, } # Make sure nothing is forgotten due to duplicate multi-index keys - if len(to_append) != 14: + if len(to_append) != 18: raise ValueError("Something went wrong") results.append(to_append) From c47af474b92282a1159c2866e8810e8e883db7bd Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Fri, 1 Mar 2024 18:13:11 +0000 Subject: [PATCH 339/526] Added in remaining breakdowns into forecast and confirmed --- .../ha_15_32/ha_analysis_batch_3.py | 59 ++++++++++++++----- 1 file changed, 45 insertions(+), 14 deletions(-) diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index 0bf34e70..77c18e80 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -2555,24 +2555,40 @@ def calculate_eco4_post_ciga(eligiblity_counts, input_data, ha_ciga_conversion_r has_ciga_check = not input_data["ciga_list"].empty if has_ciga_check: - eco4_post_ciga = eligiblity_counts[ + eco4_confirmed = eligiblity_counts[ eligiblity_counts["ECO Eligibility"].isin( - ["eco4", "eco4 - passed ciga", "failed ciga"] + ["eco4", "eco4 - passed ciga"] ) ]["count"].sum() if remaining_needing_ciga_check > 0: # We update the eco4 post ciga with the converted remaining - eco4_post_ciga += np.round(remaining_needing_ciga_check * ha_ciga_conversion_rate) + eco4_remaining_forecast = np.round(remaining_needing_ciga_check * ha_ciga_conversion_rate) + eco4_post_ciga = eco4_confirmed + eco4_remaining_forecast + else: + eco4_remaining_forecast = 0 + eco4_post_ciga = eco4_confirmed else: + eco4_confirmed = 0 + eco4_remaining_forecast = np.round(remaining_needing_ciga_check * ha_ciga_conversion_rate) eco4_post_ciga = ( - eligiblity_counts[eligiblity_counts["ECO Eligibility"] == "eco4"]["count"].sum() + - np.round(remaining_needing_ciga_check * ha_ciga_conversion_rate) + eligiblity_counts[eligiblity_counts["ECO Eligibility"] == "eco4"]["count"].sum() + eco4_remaining_forecast ) eco4_post_ciga = int(eco4_post_ciga) - eco4_post_ciga_revenue = eco4_post_ciga * eco4_rate + eco4_remaining_forecast = int(eco4_remaining_forecast) - return eco4_post_ciga, eco4_post_ciga_revenue + results = { + # Counts + "ECO4 - post CIGA - #": eco4_post_ciga, + "Of which confirmed - #": eco4_confirmed, + "Of which forecast - #": eco4_remaining_forecast, + # Revenue + "ECO4 - post CIGA - £": eco4_post_ciga * eco4_rate, + "Of which confirmed - £": eco4_confirmed * eco4_rate, + "Of which forecast - £": eco4_remaining_forecast * eco4_rate, + } + + return results def forecast_remaining_sales(loader): @@ -2837,14 +2853,16 @@ def forecast_remaining_sales(loader): median_ciga_success_rate ) - eco4_post_ciga, eco4_post_ciga_revenue = calculate_eco4_post_ciga( + eco4_post_ciga_total_results = calculate_eco4_post_ciga( eligiblity_counts, input_data, ha_ciga_conversion_rate, eco4_rate ) # Calculate the delta compared to Warmfront's original estimate - eco4_delta_vs_original_estimate = 200 * (eco4_post_ciga - original_warmfront_eco4) / original_warmfront_eco4 + eco4_delta_vs_original_estimate = 100 * ( + eco4_post_ciga_total_results["ECO4 - post CIGA - #"] - original_warmfront_eco4 + ) / original_warmfront_eco4 - eco4_post_ciga_remaining, eco4_post_ciga_remaining_revenue = calculate_eco4_post_ciga( + eco4_post_ciga_remaining_results = calculate_eco4_post_ciga( eligiblity_counts_remaining, input_data, ha_ciga_conversion_rate, eco4_rate ) @@ -2866,12 +2884,25 @@ def forecast_remaining_sales(loader): ("ECO4 pre-ciga", "", "Total - £", ""): eco4_pre_ciga_revenue, ("ECO4 pre-ciga", "", "Remaining - £", ""): eco4_pre_ciga_remaining_revenue, # ECO4 - asset list, post ciga, total - ("ECO4 post-ciga", "", "Estimated total eligible - #", ""): eco4_post_ciga, - ("ECO4 post-ciga", "", "Estimated total eligible - £", ""): eco4_post_ciga_revenue, + ("ECO4 post-ciga", "", "Estimated total eligible - #", ""): eco4_post_ciga_total_results[ + "ECO4 - post CIGA - #"], + ("ECO4 post-ciga", "", "Estimated total eligible - £", ""): eco4_post_ciga_total_results[ + "ECO4 - post CIGA - £"], ("ECO4 post-ciga", "", "Delta vs original estimate", ""): eco4_delta_vs_original_estimate, # ECO4 - asset list, post ciga, remaining - ("ECO4 post-ciga", "", "Estimated remaining eligible - #", ""): eco4_post_ciga_remaining, - ("ECO4 post-ciga", "", "Estimated remaining total eligible - £", ""): eco4_post_ciga_remaining_revenue, + ("ECO4 post-ciga", "", "Estimated remaining eligible - #", ""): eco4_post_ciga_remaining_results[ + "ECO4 - post CIGA - #"], + ("ECO4 post-ciga", "", "Estimated remaining total eligible - £", ""): eco4_post_ciga_remaining_results[ + "ECO4 - post CIGA - £"], + ("ECO4 post-ciga", "", "Of which - confirmed (post CIGA or no CIGA required) - #", ""): + eco4_post_ciga_remaining_results["Of which confirmed - #"], + ("ECO4 post-ciga", "", "Of which - confirmed (post CIGA or no CIGA required) - £", ""): + eco4_post_ciga_remaining_results["Of which confirmed - £"], + ("ECO4 post-ciga", "", "Of which forecast - #", ""): + eco4_post_ciga_remaining_results["Of which forecast - #"], + ("ECO4 post-ciga", "", "Of which forecast - £", ""): + eco4_post_ciga_remaining_results["Of which forecast - £"], + # CIGA failures } # Make sure nothing is forgotten due to duplicate multi-index keys From 752f0b0f8384a1082161abf31c18638864c45f1e Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Fri, 1 Mar 2024 18:37:47 +0000 Subject: [PATCH 340/526] splitting out post ciga figures --- .../ha_15_32/ha_analysis_batch_3.py | 71 +++++++++++++++---- 1 file changed, 59 insertions(+), 12 deletions(-) diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index 77c18e80..4f33bf34 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -2548,34 +2548,52 @@ def patch_cleaned(cleaned): return cleaned -def calculate_eco4_post_ciga(eligiblity_counts, input_data, ha_ciga_conversion_rate, eco4_rate): +def calculate_eco4_post_ciga( + eligiblity_counts, input_data, ha_ciga_conversion_rate, ha_ciga_pass_to_sale_rate, ha_eco4_to_sale_rate, + eco4_rate +): remaining_needing_ciga_check = eligiblity_counts[ eligiblity_counts["ECO Eligibility"] == "eco4 (subject to ciga)" ]["count"].sum() has_ciga_check = not input_data["ciga_list"].empty if has_ciga_check: - eco4_confirmed = eligiblity_counts[ - eligiblity_counts["ECO Eligibility"].isin( - ["eco4", "eco4 - passed ciga"] - ) - ]["count"].sum() + + eco4_no_ciga_needed = eligiblity_counts[ + eligiblity_counts["ECO Eligibility"] == "eco4" + ]["count"].sum() + + eco4_ciga_passed = eligiblity_counts[ + eligiblity_counts["ECO Eligibility"] == "eco4 - passed ciga" + ]["count"].sum() + + eco4_confirmed = (eco4_no_ciga_needed * ha_eco4_to_sale_rate) + (eco4_ciga_passed * ha_ciga_pass_to_sale_rate) + eco4_confirmed = np.round(eco4_confirmed) if remaining_needing_ciga_check > 0: # We update the eco4 post ciga with the converted remaining - eco4_remaining_forecast = np.round(remaining_needing_ciga_check * ha_ciga_conversion_rate) + eco4_remaining_forecast = np.round( + remaining_needing_ciga_check * ha_ciga_conversion_rate * ha_ciga_pass_to_sale_rate + ) eco4_post_ciga = eco4_confirmed + eco4_remaining_forecast else: eco4_remaining_forecast = 0 eco4_post_ciga = eco4_confirmed else: - eco4_confirmed = 0 - eco4_remaining_forecast = np.round(remaining_needing_ciga_check * ha_ciga_conversion_rate) + eco4_no_ciga_needed = eligiblity_counts[ + eligiblity_counts["ECO Eligibility"] == "eco4" + ]["count"].sum() + eco4_confirmed = np.round(eco4_no_ciga_needed * ha_eco4_to_sale_rate) + eco4_remaining_forecast = np.round( + remaining_needing_ciga_check * ha_ciga_conversion_rate * ha_ciga_pass_to_sale_rate + ) eco4_post_ciga = ( eligiblity_counts[eligiblity_counts["ECO Eligibility"] == "eco4"]["count"].sum() + eco4_remaining_forecast ) + eco4_post_ciga = int(eco4_post_ciga) eco4_remaining_forecast = int(eco4_remaining_forecast) + eco4_confirmed = int(eco4_confirmed) results = { # Counts @@ -2853,8 +2871,32 @@ def forecast_remaining_sales(loader): median_ciga_success_rate ) + # We also need the ha ciga passed to install success rate + ha_ciga_pass_to_sale = converted_ciga_jobs[converted_ciga_jobs["HA Name"] == ha_name] + if not ha_ciga_pass_to_sale.empty: + ha_ciga_pass_to_sale_rate = ( + ha_ciga_pass_to_sale["# Ciga dependent successfully installed"].values[0] / + ha_ciga_pass_to_sale["# Ciga dependent at installation"].values[0] + ) + else: + ha_ciga_pass_to_sale_rate = median_ciga_pass_to_install + + ha_eco4_to_sale = eco4_ciga_independent_passrates[eco4_ciga_independent_passrates["Ha Name"] == ha_name] + if not ha_eco4_to_sale.empty: + ha_eco4_to_sale_rate = ( + ha_eco4_to_sale['# ECO4 successfully installed'].values[0] / + ha_eco4_to_sale['# ECO4 at install stage'].values[0] + ) + else: + ha_eco4_to_sale_rate = median_eco4_to_install + eco4_post_ciga_total_results = calculate_eco4_post_ciga( - eligiblity_counts, input_data, ha_ciga_conversion_rate, eco4_rate + eligiblity_counts=eligiblity_counts, + input_data=input_data, + ha_ciga_conversion_rate=ha_ciga_conversion_rate, + ha_ciga_pass_to_sale_rate=ha_ciga_pass_to_sale_rate, + ha_eco4_to_sale_rate=ha_eco4_to_sale_rate, + eco4_rate=eco4_rate ) # Calculate the delta compared to Warmfront's original estimate @@ -2863,7 +2905,12 @@ def forecast_remaining_sales(loader): ) / original_warmfront_eco4 eco4_post_ciga_remaining_results = calculate_eco4_post_ciga( - eligiblity_counts_remaining, input_data, ha_ciga_conversion_rate, eco4_rate + eligiblity_counts=eligiblity_counts_remaining, + input_data=input_data, + ha_ciga_conversion_rate=ha_ciga_conversion_rate, + ha_ciga_pass_to_sale_rate=ha_ciga_pass_to_sale_rate, + ha_eco4_to_sale_rate=ha_eco4_to_sale_rate, + eco4_rate=eco4_rate ) to_append = { @@ -2906,7 +2953,7 @@ def forecast_remaining_sales(loader): } # Make sure nothing is forgotten due to duplicate multi-index keys - if len(to_append) != 18: + if len(to_append) != 22: raise ValueError("Something went wrong") results.append(to_append) From 56ee7224f58e7363a1732ed46aaebd29a71f7acd Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Fri, 1 Mar 2024 19:53:28 +0000 Subject: [PATCH 341/526] Added gbis remaining columns --- .../ha_15_32/ha_analysis_batch_3.py | 1100 +++++++++-------- 1 file changed, 592 insertions(+), 508 deletions(-) diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index 4f33bf34..191ca74c 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -1692,500 +1692,500 @@ def get_col_widths(dataframe): return widths -def analyse_ha_data(outputs, loader): - """ - The approach we take within this function is the following: - For properties that have been identified by warmfront as eligible properties, characterise them by scheme. The - characterisation can be broken down as the following: - 1) The property has been identified by Warmfront and is eligible for ECO4/GBIS work, under the strictest criteria - 2) The property has been identified by Warmfront, however it has a full cavity, and therefore would be subject to - a CIGA check - 3) The property has been identified by Warmfront, but the EPC shows that the property has more than 100mm loft - insulation - 4) The property has been identified by Warmfront, but doesn't look like a property that would likely qualify under - any cirsumstances, given the available data - - Then, for any property that has NOT been identifid by Warmfront, we identify properties that look like they would - qualify under the strictest criteria, and mark these as potential additional opportunities. - - :return: - """ - - eco4_rate = 1710 - gbis_rate = 600 - old_eco4_rate = 1456 - old_gbis_rate = 432 - - epc_c_threshold = 80 - scheme_map = { - "ECO4": "ECO4", - "AFFORDABLE WARMTH": "ECO4", - "ECO4 A/W": "ECO4", - "ECO4 GBIS (ECO+)": "GBIS" - } - - ha_analysis_results = [] - total_revenue_results = [] - for ha_name, datasets in outputs.items(): - inputs = [x for k, x in loader.data.items() if k == ha_name][0] - - results_df = datasets["results_df"].copy() - - analysis_data = inputs["asset_list"][['asset_list_row_id', "ECO Eligibility"]].rename( - columns={"row_meaning": "asset_identification_status"} - ).merge( - results_df, - how="left", - right_on="row_id", - left_on="asset_list_row_id" - ) - - analysis_data["is_remaining"] = True - - n_sold_eco4 = 0 - n_sold_gbis = 0 - if not inputs["survey_list"].empty: - # Merge on the survey list and signal everything that is remaining or not (i.e. anything that hasn't had - # a survey) - survey_list = inputs["survey_list"].copy() - - # TODO: TEMP - scheme_column = survey_list.columns[0] - # We clean up the survey list installation or cancelled - survey_list["installed_or_cancelled_clean"] = survey_list["INSTALLED OR CANCELLED"].str.lower() - # Remove all punctuation - survey_list["installed_or_cancelled_clean"] = survey_list["installed_or_cancelled_clean"].str.replace( - r'[^\w\s]', '', regex=True - ) - # Remove double spaces - survey_list["installed_or_cancelled_clean"] = survey_list["installed_or_cancelled_clean"].str.replace( - r'\s+', ' ', regex=True - ) - # Remove trailing spaces - survey_list["installed_or_cancelled_clean"] = survey_list["installed_or_cancelled_clean"].str.strip() - - # Remap the values in the scheme column - survey_list[scheme_column] = survey_list[scheme_column].replace(scheme_map) - - survey_list["installation_status"] = None - survey_list["installation_status"] = np.where( - survey_list["installed_or_cancelled_clean"].isin(["installed", "installed see notes"]), - "installed", - survey_list["installation_status"] - ) - survey_list["installation_status"] = np.where( - survey_list["installed_or_cancelled_clean"].isin(["cancelled"]), - "cancelled", - survey_list["installation_status"] - ) - # Find partial installations - survey_list["installation_status"] = np.where( - survey_list["installed_or_cancelled_clean"].str.contains("still to be installed"), - "partially installed", - survey_list["installation_status"] - ) - # Find partial cancellations - # TODO: We might have more indications of partial cancellations - survey_list["installation_status"] = np.where( - survey_list["installed_or_cancelled_clean"].isin(["loft cancelled"]), - "partially cancelled", - survey_list["installation_status"] - ) - - # Finally, for other cases, we set the status to "in progress" - survey_list["installation_status"] = survey_list["installation_status"].fillna("in progress") - - # We concatenate the scheme name with the installation status - survey_list["installation_status"] = ( - survey_list[scheme_column] + " - " + survey_list["installation_status"] - ) - - # TODO: END TEMP - - survey_list_to_merge = survey_list[["asset_list_row_id", scheme_column]].copy() - survey_list_to_merge["is_remaining"] = False - analysis_data = analysis_data.drop(columns="is_remaining").merge( - survey_list_to_merge, - how="left", on="asset_list_row_id" - ) - analysis_data["is_remaining"] = analysis_data["is_remaining"].fillna(True) - - n_sold_eco4 = survey_list_to_merge[survey_list_to_merge[scheme_column] == "ECO4"].shape[0] - n_sold_gbis = survey_list_to_merge[survey_list_to_merge[scheme_column] == "GBIS"].shape[0] - - # Take just remaining - analysis_data = analysis_data[analysis_data["is_remaining"]] - - # Also, if the HA has started selling, we remove any that are still subject to ciga - n_eco4_missed_subject_to_ciga = 0 - if not inputs["survey_list"].empty: - n_eco4_missed_subject_to_ciga = (analysis_data["ECO Eligibility"] == "eco4 (subject to ciga)").sum() - analysis_data = analysis_data[analysis_data["ECO Eligibility"] != "eco4 (subject to ciga)"] - - ################################################################################################ - # We take the properties that strictly qualified under eco - ################################################################################################ - - eco4_identified = analysis_data[analysis_data["ECO Eligibility"] == "eco4"].copy() - eco4_identified["identification_type"] = None - eco4_identified["identification_type"] = np.where( - (eco4_identified["eco4_eligible"] == True) & (eco4_identified["eco4_strict"] == True), - "strict", - eco4_identified["identification_type"] - ) - - # For expansive, the property can be no higher than an EPC C - eco4_identified["identification_type"] = np.where( - (eco4_identified["eco4_eligible"] == True) & (eco4_identified["eco4_strict"] == False) & ( - eco4_identified["sap"] <= epc_c_threshold - ), - "expansive", - eco4_identified["identification_type"] - ) - ################################################################################################ - # We take the properties dependent on CIGA - ################################################################################################ - - ciga_dependent_identified = analysis_data[ - analysis_data["ECO Eligibility"].isin( - [ - "eco4 (subject to ciga)", - "eco4 - passed ciga" - ] - ) - ].copy() - - # These are properties that show filled cavity - ciga_dependent_identified["identification_type"] = None - ciga_dependent_identified["identification_type"] = np.where( - ciga_dependent_identified["eco4_message"].isin( - [ - "Perfect suitability", - "Meets cavity and sap", - "Fails cavity, meets loft, fails SAP", - "Meets fabric, fails SAP check", - "Meets cavity, loft borderline, meets sap", - ] - ) & (ciga_dependent_identified["sap"] <= epc_c_threshold), - "strict", - ciga_dependent_identified["identification_type"] - ) - - ciga_dependent_identified["identification_type"] = np.where( - ((ciga_dependent_identified["eco4_message"].isin(["Meets just cavity"])) | ( - ciga_dependent_identified["walls"].isin(["Cavity wall, filled cavity"]) - )) & ( - (ciga_dependent_identified["sap"] <= epc_c_threshold) & - pd.isnull(ciga_dependent_identified["identification_type"]) - ), - "expansive", - ciga_dependent_identified["identification_type"] - ) - - ################################################################################################ - # We properties that qualified for gbis - ################################################################################################ - gbis_identified = analysis_data[analysis_data["ECO Eligibility"] == "gbis"].copy() - gbis_identified["identification_type"] = None - gbis_identified["identification_type"] = np.where( - (gbis_identified["gbis_eligible"] == True) & (gbis_identified["sap"] < 69), - "strict", - gbis_identified["identification_type"] - ) - - gbis_identified["identification_type"] = np.where( - (gbis_identified["gbis_eligible"] == True) & (gbis_identified["sap"] <= epc_c_threshold) & ( - pd.isnull(gbis_identified["identification_type"]) - ), - "expansive", - gbis_identified["identification_type"] - ) - - # Finally, we look at the properties that have not been identified by Warmfront - not_identified = analysis_data[ - analysis_data["ECO Eligibility"].isin( - [ - "not eligible" - ] - ) - ].copy() - - surplus_eco4 = not_identified[ - (not_identified["eco4_eligible"] == True) & (not_identified["eco4_message"].isin( - ["Perfect suitability", "Meets cavity, loft borderline, meets sap", "Near perfect suitability"] - )) - ] - - surplus_gbis = not_identified[ - (not_identified["gbis_eligible"] == True) & ( - ~not_identified["asset_list_row_id"].isin(surplus_eco4["asset_list_row_id"].values) - ) & (not_identified["sap"] < 69) & ( - (not_identified["cavity_type"].isin(["empty", "partial insulation"])) | ( - not_identified["walls"].str.contains("partial", case=False, na=False) - ) - ) - ] - surplus_gbis = surplus_gbis[surplus_gbis["is_estimated"] == False] - - # Output variables - the data was sent to us in December, but the remaining figures are - # what was in November - november_remaining = loader.december_figures[loader.december_figures["HA Name"] == ha_name] - - # ECO4 - n_properties_remaining_in_asset_list = inputs["asset_list"].shape[0] - november_eco4_remaining = max(november_remaining["ECO4 remaining"].values[0], 0) - november_eco4_sold = november_remaining["No. of Tech surveys complete - Eco 4"].values[0] - eco4_sales_since_november = n_sold_eco4 - november_eco4_sold - - n_warmfront_identified_eco4 = eco4_identified.shape[0] + ciga_dependent_identified.shape[0] - eco4_of_which_identified_strict = ( - eco4_identified[eco4_identified["identification_type"] == "strict"].shape[0] + - ciga_dependent_identified[ciga_dependent_identified["identification_type"] == "strict"].shape[0] - ) - eco4_of_which_identified_expansive = ( - eco4_identified[eco4_identified["identification_type"] == "expansive"].shape[0] + - ciga_dependent_identified[ciga_dependent_identified["identification_type"] == "expansive"].shape[0] - ) - # GBIS - n_warmfront_identified_gbis = gbis_identified.shape[0] - november_gbis_remaining = max(november_remaining["GBIS remaining"].values[0], 0) - november_gbis_sold = november_remaining["No. of Tech surveys complete - GBIS"].values[0] - gbis_sales_since_november = n_sold_gbis - november_gbis_sold - gbis_of_which_identified_strict = gbis_identified[gbis_identified["identification_type"] == "strict"].shape[0] - gbis_of_which_identified_expansive = \ - gbis_identified[gbis_identified["identification_type"] == "expansive"].shape[0] - - to_append = { - ("", "HA Name"): ha_name, - ("", "# properties in asset list"): n_properties_remaining_in_asset_list, - ############ - # ECO4 - ############ - ("ECO4", "# remaining November file"): november_eco4_remaining, - ("ECO4", "# sold in November file"): november_eco4_sold, - ("ECO4", "# sold (survey list)"): n_sold_eco4, - ("ECO4", "# that missed CIGA check"): n_eco4_missed_subject_to_ciga, - ("ECO4", "# Remaining properties (asset list)"): n_warmfront_identified_eco4, - ("ECO4", "Of which identified by model - strict"): eco4_of_which_identified_strict, - ("ECO4", "Of which identified by model - expansive"): eco4_of_which_identified_expansive, - ("ECO4", "Of which identified by model - total"): ( - eco4_of_which_identified_strict + eco4_of_which_identified_expansive - ), - ("ECO4", "Additional properties"): surplus_eco4.shape[0], - ############ - # GBIS - ############ - ("GBIS", "# remaining November file"): november_gbis_remaining, - ("GBIS", "# sold in November file"): november_gbis_sold, - ("GBIS", "# sold (survey list)"): n_sold_gbis, - ("GBIS", "# Remaining properties (asset list)"): n_warmfront_identified_gbis, - ("GBIS", "Of which identified by model - strict"): gbis_of_which_identified_strict, - ("GBIS", "Of which identified by model - expansive"): gbis_of_which_identified_expansive, - ("GBIS", "Of which identified by model - total"): ( - gbis_of_which_identified_strict + gbis_of_which_identified_expansive - ), - ("GBIS", "Additional properties"): surplus_gbis.shape[0] - } - - ha_analysis_results.append(to_append) - - # Calculate the revenue results - to_append_revenue = { - ("", "HA Name"): ha_name, - # Eco4 revenue - ("ECO4", "£ remaining November file"): november_eco4_remaining * eco4_rate, - ("ECO4", "£ sold November file"): november_eco4_sold * old_eco4_rate, - ("ECO4", "£ sold since November"): eco4_sales_since_november * eco4_rate, - ("ECO4", "£ stuck at ciga check"): n_eco4_missed_subject_to_ciga * eco4_rate, - ("ECO4", "£ remaining (asset list)"): n_warmfront_identified_eco4 * eco4_rate, - ("ECO4", "Of which identified by model - strict"): eco4_of_which_identified_strict * eco4_rate, - ("ECO4", "Of which identified by model - expansive"): eco4_of_which_identified_expansive * eco4_rate, - ("ECO4", "Of which identified by model - total"): eco4_rate * ( - eco4_of_which_identified_strict + eco4_of_which_identified_expansive - ), - ("ECO4", "Additional properties"): eco4_rate * surplus_eco4.shape[0], - } - total_revenue_results.append(to_append_revenue) - - ha_analysis_results = pd.DataFrame(ha_analysis_results) - ha_analysis_results.columns = pd.MultiIndex.from_tuples(ha_analysis_results.columns) - - facts_and_figures = loader.facts_and_figures.copy() - facts_and_figures["ha_number"] = facts_and_figures["HA Name"].str.extract(r'(\d+)').astype(int) - facts_and_figures = facts_and_figures.sort_values("ha_number") - facts_and_figures = facts_and_figures.drop(columns=["ha_number"]) - - # Rename some of the cols - facts_and_figures = facts_and_figures.rename( - columns={ - # ECO4 cols - "ECO4": "ECO4 - November", - "GBIS": "GBIS - November", - "eco4 (subject to ciga)": "ECO4 - subject to ciga", - "eco4": "ECO4 - doesn't need CIGA", - "eco4 - passed ciga": "ECO4 - passed CIGA", - "failed ciga": "ECO4 - failed CIGA", - "ECO4 - partially cancelled": "ECO4 - Install downgrade to GBIS", - "ECO4 - in progress": "ECO4 - Install in progress", - "ECO4 - cancelled": "ECO4 - Install cancelled", - # GBIS cols - "gbis": "GBIS total (asset list)" - } - ) - # We calculate the eco4 total from the asset list - # 1) If ciga checks have been completed (i.e. ECO4 - passed ciga > 0) this sum is - # ECO4 - doesn't need CIGA + ECO4 - passed CIGA - # 2) if ciga checks haven't been completed (i.e. ECO4 - passed ciga is missing), this sum is - # ECO4 - doesn't need CIGA + ECO4 - subject to ciga - facts_and_figures["ECO4 total (asset list - pre ciga)"] = ( - facts_and_figures["ECO4 - doesn't need CIGA"] + - facts_and_figures["ECO4 - subject to ciga"] + - facts_and_figures["ECO4 - passed CIGA"] - ) - - facts_and_figures["ECO4 total (asset list - post ciga)"] = None - facts_and_figures["ECO4 total (asset list - post ciga)"] = np.where( - facts_and_figures["ECO4 - passed CIGA"] > 0, - facts_and_figures["ECO4 - doesn't need CIGA"] + facts_and_figures["ECO4 - passed CIGA"], - facts_and_figures["ECO4 total (asset list - post ciga)"] - ) - - # Re-arrange the columns - facts_and_figures = facts_and_figures[ - [ - 'HA Name', - 'ECO4 - November', - 'GBIS - November', - 'ECO4 total (asset list - pre ciga)', - 'ECO4 total (asset list - post ciga)', - 'GBIS total (asset list)', - 'ECO4 - subject to ciga', - "ECO4 - doesn't need CIGA", - 'ECO4 - passed CIGA', - 'ECO4 - failed CIGA', - 'ECO4 - installed', - 'ECO4 - Install in progress', - 'ECO4 - Install cancelled', - 'ECO4 - partially installed', - 'ECO4 - Install downgrade to GBIS', - ] - ] - # Addd a note to flag any rows where ECO4 ( - # subject to ciga is greater than 0) and (ECO4 - passed ciga is greater than 0 - # ) - facts_and_figures["Missed CIGA checks opportunity"] = None - facts_and_figures["Missed CIGA checks opportunity"] = np.where( - (facts_and_figures["ECO4 - subject to ciga"] > 0) & (facts_and_figures["ECO4 - passed CIGA"] > 0), - "potential opportunity of " + facts_and_figures["ECO4 - subject to ciga"].astype( - str) + " ECO4 properties needing a CIGA check", - facts_and_figures["Missed CIGA checks opportunity"] - ) - - facts_and_figures.to_csv("Facts and figures sample.csv") - - # Re arrage the columns - - # Also sort ha_analysis_results by ha number - ha_analysis_results["ha_number"] = ha_analysis_results[("", "HA Name")].str.extract(r'(\d+)').astype(int) - ha_analysis_results = ha_analysis_results.sort_values("ha_number") - ha_analysis_results = ha_analysis_results.drop(columns=["ha_number"]) - - # We save 2 sheets - # Automate creation of the excel - # Create a Pandas Excel writer using XlsxWriter as the engine - with pd.ExcelWriter('HA Analysis Results.xlsx', engine='xlsxwriter') as writer: - # Write each dataframe to a different worksheet without the index - for df, sheet in [(facts_and_figures, 'HA Facts and Figures'), - (ha_analysis_results, 'Asset Identification')]: - - df.to_excel(writer, sheet_name=sheet) - - # Auto-adjust columns' width - for i, width in enumerate(get_col_widths(df)): - writer.sheets[sheet].set_column(i, i, width) - - # Inspection: - Looking into the proportion of homes with "cavity, as built, insulated (assumed)" as their - # description, and what proportion of time they get identified via non-invasive surveys - - # true_eco4_assets = [] - # ciga_dependent_assets = [] - # not_eligible = [] - # as_built_insulated = [] - # date_cols = { - # "HA39": "date_built", - # "HA14": "Built In Year", - # "HA6": "Construction Year", - # "HA1": "Build Date", - # "HA107": "YEAR BUILT" - # } - # for ha_name, data_objects in outputs.items(): - # inputs = [x for k, x in loader.data.items() if k == ha_name][0] - # - # date_col = date_cols[ha_name] - # results_df = data_objects["results_df"].copy() - # df = inputs["asset_list"][['asset_list_row_id', "ECO Eligibility", date_col]].rename( - # columns={"row_meaning": "asset_identification_status", date_col: "date_built"} - # ).merge( - # results_df, - # how="left", - # right_on="row_id", - # left_on="asset_list_row_id" - # ) - # - # # take the true ECO4 - # true_eco4 = df[df["ECO Eligibility"] == "eco4"].copy() - # ciga_dependent = df[ - # df["ECO Eligibility"].isin( - # [ - # "eco4 (subject to ciga)", - # "failed ciga", - # "eco4 - passed ciga" - # ] - # ) - # ] - # insulated_assumed = df[df["walls"] == "Cavity wall, as built, insulated"].copy() - # # We convert date built to datetime - # try: - # insulated_assumed = insulated_assumed[~pd.isnull(insulated_assumed["date_built"])] - # insulated_assumed["year_built"] = pd.to_datetime(insulated_assumed["date_built"].astype(str)).dt.year - # as_built_insulated.append(insulated_assumed) - # except Exception as e: - # print("oh well") - # - # true_eco4_assets.append(true_eco4) - # ciga_dependent_assets.append(ciga_dependent) - # - # true_eco4_assets = pd.concat(true_eco4_assets) - # ciga_dependent_assets = pd.concat(ciga_dependent_assets) - # as_built_insulated = pd.concat(as_built_insulated) - # - # true_eco4_assets["walls"].value_counts(normalize=True) - # ciga_dependent_assets["walls"].value_counts(normalize=True) - # - # from recommendations.recommendation_utils import extract_insulation_thickness - # - # true_eco4_assets["roof_insulation_thickness"] = true_eco4_assets["roof"].apply( - # lambda x: extract_insulation_thickness(x) - # ) - # - # true_eco4_assets["e"] = true_eco4_assets.merge( - # pd.DataFrame(cleaned["roof-description"])[["original_description", "insulation_thickness"]], - # how="left", - # left_on="roof", - # right_on="original_description" - # ) - # - # true_eco4_assets["sap"].mean() - # - # true_eco4_assets["insulation_thickness"].isin( - # ["250", "150", "200", "100", "75", "50"] - # ).sum() / true_eco4_assets.shape[0] - # - # true_eco4_assets["insulation_thickness"].isin( - # ["100"] - # ).sum() / true_eco4_assets.shape[0] - # - # as_built_insulated.groupby("property_type")["ECO Eligibility"].value_counts(normalize=True) +# def analyse_ha_data(outputs, loader): +# """ +# The approach we take within this function is the following: +# For properties that have been identified by warmfront as eligible properties, characterise them by scheme. The +# characterisation can be broken down as the following: +# 1) The property has been identified by Warmfront and is eligible for ECO4/GBIS work, under the strictest criteria +# 2) The property has been identified by Warmfront, however it has a full cavity, and therefore would be subject to +# a CIGA check +# 3) The property has been identified by Warmfront, but the EPC shows that the property has more than 100mm loft +# insulation +# 4) The property has been identified by Warmfront, but doesn't look like a property that would likely qualify under +# any cirsumstances, given the available data +# +# Then, for any property that has NOT been identifid by Warmfront, we identify properties that look like they would +# qualify under the strictest criteria, and mark these as potential additional opportunities. +# +# :return: +# """ +# +# eco4_rate = 1710 +# gbis_rate = 600 +# # old_eco4_rate = 1456 +# old_gbis_rate = 432 +# +# epc_c_threshold = 80 +# scheme_map = { +# "ECO4": "ECO4", +# "AFFORDABLE WARMTH": "ECO4", +# "ECO4 A/W": "ECO4", +# "ECO4 GBIS (ECO+)": "GBIS" +# } +# +# ha_analysis_results = [] +# total_revenue_results = [] +# for ha_name, datasets in outputs.items(): +# inputs = [x for k, x in loader.data.items() if k == ha_name][0] +# +# results_df = datasets["results_df"].copy() +# +# analysis_data = inputs["asset_list"][['asset_list_row_id', "ECO Eligibility"]].rename( +# columns={"row_meaning": "asset_identification_status"} +# ).merge( +# results_df, +# how="left", +# right_on="row_id", +# left_on="asset_list_row_id" +# ) +# +# analysis_data["is_remaining"] = True +# +# n_sold_eco4 = 0 +# n_sold_gbis = 0 +# if not inputs["survey_list"].empty: +# # Merge on the survey list and signal everything that is remaining or not (i.e. anything that hasn't had +# # a survey) +# survey_list = inputs["survey_list"].copy() +# +# # TODO: TEMP +# scheme_column = survey_list.columns[0] +# # We clean up the survey list installation or cancelled +# survey_list["installed_or_cancelled_clean"] = survey_list["INSTALLED OR CANCELLED"].str.lower() +# # Remove all punctuation +# survey_list["installed_or_cancelled_clean"] = survey_list["installed_or_cancelled_clean"].str.replace( +# r'[^\w\s]', '', regex=True +# ) +# # Remove double spaces +# survey_list["installed_or_cancelled_clean"] = survey_list["installed_or_cancelled_clean"].str.replace( +# r'\s+', ' ', regex=True +# ) +# # Remove trailing spaces +# survey_list["installed_or_cancelled_clean"] = survey_list["installed_or_cancelled_clean"].str.strip() +# +# # Remap the values in the scheme column +# survey_list[scheme_column] = survey_list[scheme_column].replace(scheme_map) +# +# survey_list["installation_status"] = None +# survey_list["installation_status"] = np.where( +# survey_list["installed_or_cancelled_clean"].isin(["installed", "installed see notes"]), +# "installed", +# survey_list["installation_status"] +# ) +# survey_list["installation_status"] = np.where( +# survey_list["installed_or_cancelled_clean"].isin(["cancelled"]), +# "cancelled", +# survey_list["installation_status"] +# ) +# # Find partial installations +# survey_list["installation_status"] = np.where( +# survey_list["installed_or_cancelled_clean"].str.contains("still to be installed"), +# "partially installed", +# survey_list["installation_status"] +# ) +# # Find partial cancellations +# # TODO: We might have more indications of partial cancellations +# survey_list["installation_status"] = np.where( +# survey_list["installed_or_cancelled_clean"].isin(["loft cancelled"]), +# "partially cancelled", +# survey_list["installation_status"] +# ) +# +# # Finally, for other cases, we set the status to "in progress" +# survey_list["installation_status"] = survey_list["installation_status"].fillna("in progress") +# +# # We concatenate the scheme name with the installation status +# survey_list["installation_status"] = ( +# survey_list[scheme_column] + " - " + survey_list["installation_status"] +# ) +# +# # TODO: END TEMP +# +# survey_list_to_merge = survey_list[["asset_list_row_id", scheme_column]].copy() +# survey_list_to_merge["is_remaining"] = False +# analysis_data = analysis_data.drop(columns="is_remaining").merge( +# survey_list_to_merge, +# how="left", on="asset_list_row_id" +# ) +# analysis_data["is_remaining"] = analysis_data["is_remaining"].fillna(True) +# +# n_sold_eco4 = survey_list_to_merge[survey_list_to_merge[scheme_column] == "ECO4"].shape[0] +# n_sold_gbis = survey_list_to_merge[survey_list_to_merge[scheme_column] == "GBIS"].shape[0] +# +# # Take just remaining +# analysis_data = analysis_data[analysis_data["is_remaining"]] +# +# # Also, if the HA has started selling, we remove any that are still subject to ciga +# n_eco4_missed_subject_to_ciga = 0 +# if not inputs["survey_list"].empty: +# n_eco4_missed_subject_to_ciga = (analysis_data["ECO Eligibility"] == "eco4 (subject to ciga)").sum() +# analysis_data = analysis_data[analysis_data["ECO Eligibility"] != "eco4 (subject to ciga)"] +# +# ################################################################################################ +# # We take the properties that strictly qualified under eco +# ################################################################################################ +# +# eco4_identified = analysis_data[analysis_data["ECO Eligibility"] == "eco4"].copy() +# eco4_identified["identification_type"] = None +# eco4_identified["identification_type"] = np.where( +# (eco4_identified["eco4_eligible"] == True) & (eco4_identified["eco4_strict"] == True), +# "strict", +# eco4_identified["identification_type"] +# ) +# +# # For expansive, the property can be no higher than an EPC C +# eco4_identified["identification_type"] = np.where( +# (eco4_identified["eco4_eligible"] == True) & (eco4_identified["eco4_strict"] == False) & ( +# eco4_identified["sap"] <= epc_c_threshold +# ), +# "expansive", +# eco4_identified["identification_type"] +# ) +# ################################################################################################ +# # We take the properties dependent on CIGA +# ################################################################################################ +# +# ciga_dependent_identified = analysis_data[ +# analysis_data["ECO Eligibility"].isin( +# [ +# "eco4 (subject to ciga)", +# "eco4 - passed ciga" +# ] +# ) +# ].copy() +# +# # These are properties that show filled cavity +# ciga_dependent_identified["identification_type"] = None +# ciga_dependent_identified["identification_type"] = np.where( +# ciga_dependent_identified["eco4_message"].isin( +# [ +# "Perfect suitability", +# "Meets cavity and sap", +# "Fails cavity, meets loft, fails SAP", +# "Meets fabric, fails SAP check", +# "Meets cavity, loft borderline, meets sap", +# ] +# ) & (ciga_dependent_identified["sap"] <= epc_c_threshold), +# "strict", +# ciga_dependent_identified["identification_type"] +# ) +# +# ciga_dependent_identified["identification_type"] = np.where( +# ((ciga_dependent_identified["eco4_message"].isin(["Meets just cavity"])) | ( +# ciga_dependent_identified["walls"].isin(["Cavity wall, filled cavity"]) +# )) & ( +# (ciga_dependent_identified["sap"] <= epc_c_threshold) & +# pd.isnull(ciga_dependent_identified["identification_type"]) +# ), +# "expansive", +# ciga_dependent_identified["identification_type"] +# ) +# +# ################################################################################################ +# # We properties that qualified for gbis +# ################################################################################################ +# gbis_identified = analysis_data[analysis_data["ECO Eligibility"] == "gbis"].copy() +# gbis_identified["identification_type"] = None +# gbis_identified["identification_type"] = np.where( +# (gbis_identified["gbis_eligible"] == True) & (gbis_identified["sap"] < 69), +# "strict", +# gbis_identified["identification_type"] +# ) +# +# gbis_identified["identification_type"] = np.where( +# (gbis_identified["gbis_eligible"] == True) & (gbis_identified["sap"] <= epc_c_threshold) & ( +# pd.isnull(gbis_identified["identification_type"]) +# ), +# "expansive", +# gbis_identified["identification_type"] +# ) +# +# # Finally, we look at the properties that have not been identified by Warmfront +# not_identified = analysis_data[ +# analysis_data["ECO Eligibility"].isin( +# [ +# "not eligible" +# ] +# ) +# ].copy() +# +# surplus_eco4 = not_identified[ +# (not_identified["eco4_eligible"] == True) & (not_identified["eco4_message"].isin( +# ["Perfect suitability", "Meets cavity, loft borderline, meets sap", "Near perfect suitability"] +# )) +# ] +# +# surplus_gbis = not_identified[ +# (not_identified["gbis_eligible"] == True) & ( +# ~not_identified["asset_list_row_id"].isin(surplus_eco4["asset_list_row_id"].values) +# ) & (not_identified["sap"] < 69) & ( +# (not_identified["cavity_type"].isin(["empty", "partial insulation"])) | ( +# not_identified["walls"].str.contains("partial", case=False, na=False) +# ) +# ) +# ] +# surplus_gbis = surplus_gbis[surplus_gbis["is_estimated"] == False] +# +# # Output variables - the data was sent to us in December, but the remaining figures are +# # what was in November +# november_remaining = loader.december_figures[loader.december_figures["HA Name"] == ha_name] +# +# # ECO4 +# n_properties_remaining_in_asset_list = inputs["asset_list"].shape[0] +# november_eco4_remaining = max(november_remaining["ECO4 remaining"].values[0], 0) +# november_eco4_sold = november_remaining["No. of Tech surveys complete - Eco 4"].values[0] +# eco4_sales_since_november = n_sold_eco4 - november_eco4_sold +# +# n_warmfront_identified_eco4 = eco4_identified.shape[0] + ciga_dependent_identified.shape[0] +# eco4_of_which_identified_strict = ( +# eco4_identified[eco4_identified["identification_type"] == "strict"].shape[0] + +# ciga_dependent_identified[ciga_dependent_identified["identification_type"] == "strict"].shape[0] +# ) +# eco4_of_which_identified_expansive = ( +# eco4_identified[eco4_identified["identification_type"] == "expansive"].shape[0] + +# ciga_dependent_identified[ciga_dependent_identified["identification_type"] == "expansive"].shape[0] +# ) +# # GBIS +# n_warmfront_identified_gbis = gbis_identified.shape[0] +# november_gbis_remaining = max(november_remaining["GBIS remaining"].values[0], 0) +# november_gbis_sold = november_remaining["No. of Tech surveys complete - GBIS"].values[0] +# gbis_sales_since_november = n_sold_gbis - november_gbis_sold +# gbis_of_which_identified_strict = gbis_identified[gbis_identified["identification_type"] == "strict"].shape[0] +# gbis_of_which_identified_expansive = \ +# gbis_identified[gbis_identified["identification_type"] == "expansive"].shape[0] +# +# to_append = { +# ("", "HA Name"): ha_name, +# ("", "# properties in asset list"): n_properties_remaining_in_asset_list, +# ############ +# # ECO4 +# ############ +# ("ECO4", "# remaining November file"): november_eco4_remaining, +# ("ECO4", "# sold in November file"): november_eco4_sold, +# ("ECO4", "# sold (survey list)"): n_sold_eco4, +# ("ECO4", "# that missed CIGA check"): n_eco4_missed_subject_to_ciga, +# ("ECO4", "# Remaining properties (asset list)"): n_warmfront_identified_eco4, +# ("ECO4", "Of which identified by model - strict"): eco4_of_which_identified_strict, +# ("ECO4", "Of which identified by model - expansive"): eco4_of_which_identified_expansive, +# ("ECO4", "Of which identified by model - total"): ( +# eco4_of_which_identified_strict + eco4_of_which_identified_expansive +# ), +# ("ECO4", "Additional properties"): surplus_eco4.shape[0], +# ############ +# # GBIS +# ############ +# ("GBIS", "# remaining November file"): november_gbis_remaining, +# ("GBIS", "# sold in November file"): november_gbis_sold, +# ("GBIS", "# sold (survey list)"): n_sold_gbis, +# ("GBIS", "# Remaining properties (asset list)"): n_warmfront_identified_gbis, +# ("GBIS", "Of which identified by model - strict"): gbis_of_which_identified_strict, +# ("GBIS", "Of which identified by model - expansive"): gbis_of_which_identified_expansive, +# ("GBIS", "Of which identified by model - total"): ( +# gbis_of_which_identified_strict + gbis_of_which_identified_expansive +# ), +# ("GBIS", "Additional properties"): surplus_gbis.shape[0] +# } +# +# ha_analysis_results.append(to_append) +# +# # Calculate the revenue results +# to_append_revenue = { +# ("", "HA Name"): ha_name, +# # Eco4 revenue +# ("ECO4", "£ remaining November file"): november_eco4_remaining * eco4_rate, +# ("ECO4", "£ sold November file"): november_eco4_sold * old_eco4_rate, +# ("ECO4", "£ sold since November"): eco4_sales_since_november * eco4_rate, +# ("ECO4", "£ stuck at ciga check"): n_eco4_missed_subject_to_ciga * eco4_rate, +# ("ECO4", "£ remaining (asset list)"): n_warmfront_identified_eco4 * eco4_rate, +# ("ECO4", "Of which identified by model - strict"): eco4_of_which_identified_strict * eco4_rate, +# ("ECO4", "Of which identified by model - expansive"): eco4_of_which_identified_expansive * eco4_rate, +# ("ECO4", "Of which identified by model - total"): eco4_rate * ( +# eco4_of_which_identified_strict + eco4_of_which_identified_expansive +# ), +# ("ECO4", "Additional properties"): eco4_rate * surplus_eco4.shape[0], +# } +# total_revenue_results.append(to_append_revenue) +# +# ha_analysis_results = pd.DataFrame(ha_analysis_results) +# ha_analysis_results.columns = pd.MultiIndex.from_tuples(ha_analysis_results.columns) +# +# facts_and_figures = loader.facts_and_figures.copy() +# facts_and_figures["ha_number"] = facts_and_figures["HA Name"].str.extract(r'(\d+)').astype(int) +# facts_and_figures = facts_and_figures.sort_values("ha_number") +# facts_and_figures = facts_and_figures.drop(columns=["ha_number"]) +# +# # Rename some of the cols +# facts_and_figures = facts_and_figures.rename( +# columns={ +# # ECO4 cols +# "ECO4": "ECO4 - November", +# "GBIS": "GBIS - November", +# "eco4 (subject to ciga)": "ECO4 - subject to ciga", +# "eco4": "ECO4 - doesn't need CIGA", +# "eco4 - passed ciga": "ECO4 - passed CIGA", +# "failed ciga": "ECO4 - failed CIGA", +# "ECO4 - partially cancelled": "ECO4 - Install downgrade to GBIS", +# "ECO4 - in progress": "ECO4 - Install in progress", +# "ECO4 - cancelled": "ECO4 - Install cancelled", +# # GBIS cols +# "gbis": "GBIS total (asset list)" +# } +# ) +# # We calculate the eco4 total from the asset list +# # 1) If ciga checks have been completed (i.e. ECO4 - passed ciga > 0) this sum is +# # ECO4 - doesn't need CIGA + ECO4 - passed CIGA +# # 2) if ciga checks haven't been completed (i.e. ECO4 - passed ciga is missing), this sum is +# # ECO4 - doesn't need CIGA + ECO4 - subject to ciga +# facts_and_figures["ECO4 total (asset list - pre ciga)"] = ( +# facts_and_figures["ECO4 - doesn't need CIGA"] + +# facts_and_figures["ECO4 - subject to ciga"] + +# facts_and_figures["ECO4 - passed CIGA"] +# ) +# +# facts_and_figures["ECO4 total (asset list - post ciga)"] = None +# facts_and_figures["ECO4 total (asset list - post ciga)"] = np.where( +# facts_and_figures["ECO4 - passed CIGA"] > 0, +# facts_and_figures["ECO4 - doesn't need CIGA"] + facts_and_figures["ECO4 - passed CIGA"], +# facts_and_figures["ECO4 total (asset list - post ciga)"] +# ) +# +# # Re-arrange the columns +# facts_and_figures = facts_and_figures[ +# [ +# 'HA Name', +# 'ECO4 - November', +# 'GBIS - November', +# 'ECO4 total (asset list - pre ciga)', +# 'ECO4 total (asset list - post ciga)', +# 'GBIS total (asset list)', +# 'ECO4 - subject to ciga', +# "ECO4 - doesn't need CIGA", +# 'ECO4 - passed CIGA', +# 'ECO4 - failed CIGA', +# 'ECO4 - installed', +# 'ECO4 - Install in progress', +# 'ECO4 - Install cancelled', +# 'ECO4 - partially installed', +# 'ECO4 - Install downgrade to GBIS', +# ] +# ] +# # Addd a note to flag any rows where ECO4 ( +# # subject to ciga is greater than 0) and (ECO4 - passed ciga is greater than 0 +# # ) +# facts_and_figures["Missed CIGA checks opportunity"] = None +# facts_and_figures["Missed CIGA checks opportunity"] = np.where( +# (facts_and_figures["ECO4 - subject to ciga"] > 0) & (facts_and_figures["ECO4 - passed CIGA"] > 0), +# "potential opportunity of " + facts_and_figures["ECO4 - subject to ciga"].astype( +# str) + " ECO4 properties needing a CIGA check", +# facts_and_figures["Missed CIGA checks opportunity"] +# ) +# +# facts_and_figures.to_csv("Facts and figures sample.csv") +# +# # Re arrage the columns +# +# # Also sort ha_analysis_results by ha number +# ha_analysis_results["ha_number"] = ha_analysis_results[("", "HA Name")].str.extract(r'(\d+)').astype(int) +# ha_analysis_results = ha_analysis_results.sort_values("ha_number") +# ha_analysis_results = ha_analysis_results.drop(columns=["ha_number"]) +# +# # We save 2 sheets +# # Automate creation of the excel +# # Create a Pandas Excel writer using XlsxWriter as the engine +# with pd.ExcelWriter('HA Analysis Results.xlsx', engine='xlsxwriter') as writer: +# # Write each dataframe to a different worksheet without the index +# for df, sheet in [(facts_and_figures, 'HA Facts and Figures'), +# (ha_analysis_results, 'Asset Identification')]: +# +# df.to_excel(writer, sheet_name=sheet) +# +# # Auto-adjust columns' width +# for i, width in enumerate(get_col_widths(df)): +# writer.sheets[sheet].set_column(i, i, width) +# +# # Inspection: - Looking into the proportion of homes with "cavity, as built, insulated (assumed)" as their +# # description, and what proportion of time they get identified via non-invasive surveys +# +# # true_eco4_assets = [] +# # ciga_dependent_assets = [] +# # not_eligible = [] +# # as_built_insulated = [] +# # date_cols = { +# # "HA39": "date_built", +# # "HA14": "Built In Year", +# # "HA6": "Construction Year", +# # "HA1": "Build Date", +# # "HA107": "YEAR BUILT" +# # } +# # for ha_name, data_objects in outputs.items(): +# # inputs = [x for k, x in loader.data.items() if k == ha_name][0] +# # +# # date_col = date_cols[ha_name] +# # results_df = data_objects["results_df"].copy() +# # df = inputs["asset_list"][['asset_list_row_id', "ECO Eligibility", date_col]].rename( +# # columns={"row_meaning": "asset_identification_status", date_col: "date_built"} +# # ).merge( +# # results_df, +# # how="left", +# # right_on="row_id", +# # left_on="asset_list_row_id" +# # ) +# # +# # # take the true ECO4 +# # true_eco4 = df[df["ECO Eligibility"] == "eco4"].copy() +# # ciga_dependent = df[ +# # df["ECO Eligibility"].isin( +# # [ +# # "eco4 (subject to ciga)", +# # "failed ciga", +# # "eco4 - passed ciga" +# # ] +# # ) +# # ] +# # insulated_assumed = df[df["walls"] == "Cavity wall, as built, insulated"].copy() +# # # We convert date built to datetime +# # try: +# # insulated_assumed = insulated_assumed[~pd.isnull(insulated_assumed["date_built"])] +# # insulated_assumed["year_built"] = pd.to_datetime(insulated_assumed["date_built"].astype(str)).dt.year +# # as_built_insulated.append(insulated_assumed) +# # except Exception as e: +# # print("oh well") +# # +# # true_eco4_assets.append(true_eco4) +# # ciga_dependent_assets.append(ciga_dependent) +# # +# # true_eco4_assets = pd.concat(true_eco4_assets) +# # ciga_dependent_assets = pd.concat(ciga_dependent_assets) +# # as_built_insulated = pd.concat(as_built_insulated) +# # +# # true_eco4_assets["walls"].value_counts(normalize=True) +# # ciga_dependent_assets["walls"].value_counts(normalize=True) +# # +# # from recommendations.recommendation_utils import extract_insulation_thickness +# # +# # true_eco4_assets["roof_insulation_thickness"] = true_eco4_assets["roof"].apply( +# # lambda x: extract_insulation_thickness(x) +# # ) +# # +# # true_eco4_assets["e"] = true_eco4_assets.merge( +# # pd.DataFrame(cleaned["roof-description"])[["original_description", "insulation_thickness"]], +# # how="left", +# # left_on="roof", +# # right_on="original_description" +# # ) +# # +# # true_eco4_assets["sap"].mean() +# # +# # true_eco4_assets["insulation_thickness"].isin( +# # ["250", "150", "200", "100", "75", "50"] +# # ).sum() / true_eco4_assets.shape[0] +# # +# # true_eco4_assets["insulation_thickness"].isin( +# # ["100"] +# # ).sum() / true_eco4_assets.shape[0] +# # +# # as_built_insulated.groupby("property_type")["ECO Eligibility"].value_counts(normalize=True) def get_propensity_model_data( @@ -2567,29 +2567,39 @@ def calculate_eco4_post_ciga( eligiblity_counts["ECO Eligibility"] == "eco4 - passed ciga" ]["count"].sum() + eco4_confirmed_ciga_failures = eligiblity_counts[ + eligiblity_counts["ECO Eligibility"] == "failed ciga" + ]["count"].sum() + eco4_confirmed = (eco4_no_ciga_needed * ha_eco4_to_sale_rate) + (eco4_ciga_passed * ha_ciga_pass_to_sale_rate) eco4_confirmed = np.round(eco4_confirmed) if remaining_needing_ciga_check > 0: # We update the eco4 post ciga with the converted remaining + eco4_ciga_expected_remaining_to_pass = np.round(remaining_needing_ciga_check * ha_ciga_conversion_rate) eco4_remaining_forecast = np.round( - remaining_needing_ciga_check * ha_ciga_conversion_rate * ha_ciga_pass_to_sale_rate + eco4_ciga_expected_remaining_to_pass * ha_ciga_pass_to_sale_rate ) + eco4_estimated_ciga_failures = remaining_needing_ciga_check - eco4_ciga_expected_remaining_to_pass eco4_post_ciga = eco4_confirmed + eco4_remaining_forecast else: eco4_remaining_forecast = 0 + eco4_estimated_ciga_failures = 0 eco4_post_ciga = eco4_confirmed else: eco4_no_ciga_needed = eligiblity_counts[ eligiblity_counts["ECO Eligibility"] == "eco4" ]["count"].sum() + eco4_confirmed_ciga_failures = 0 + # Multiply by sale conversion eco4_confirmed = np.round(eco4_no_ciga_needed * ha_eco4_to_sale_rate) + eco4_ciga_expected_remaining_to_pass = np.round(remaining_needing_ciga_check * ha_ciga_conversion_rate) + eco4_estimated_ciga_failures = remaining_needing_ciga_check - eco4_ciga_expected_remaining_to_pass + eco4_remaining_forecast = np.round( - remaining_needing_ciga_check * ha_ciga_conversion_rate * ha_ciga_pass_to_sale_rate - ) - eco4_post_ciga = ( - eligiblity_counts[eligiblity_counts["ECO Eligibility"] == "eco4"]["count"].sum() + eco4_remaining_forecast + eco4_ciga_expected_remaining_to_pass * ha_ciga_pass_to_sale_rate ) + eco4_post_ciga = eco4_confirmed + eco4_remaining_forecast eco4_post_ciga = int(eco4_post_ciga) eco4_remaining_forecast = int(eco4_remaining_forecast) @@ -2604,6 +2614,16 @@ def calculate_eco4_post_ciga( "ECO4 - post CIGA - £": eco4_post_ciga * eco4_rate, "Of which confirmed - £": eco4_confirmed * eco4_rate, "Of which forecast - £": eco4_remaining_forecast * eco4_rate, + # Ciga failures + "Estimated total - failed CIGA": int(eco4_confirmed_ciga_failures + eco4_estimated_ciga_failures), + "Confirmed CIGA failures": eco4_confirmed_ciga_failures, + "Estimated CIGA failures": int(eco4_estimated_ciga_failures), + # Ciga failures cost + "Estimated total - failed CIGA - £": int( + (eco4_confirmed_ciga_failures + eco4_estimated_ciga_failures) * eco4_rate + ), + "Confirmed CIGA failures - £": int(eco4_confirmed_ciga_failures * eco4_rate), + "Estimated CIGA failures - £": int(eco4_estimated_ciga_failures * eco4_rate), } return results @@ -2617,8 +2637,8 @@ def forecast_remaining_sales(loader): gbis_rate = 600 eco4_rate = 1710 - old_gbis_rate = 432 - old_eco4_rate = 1456 + # old_gbis_rate = 432 + # old_eco4_rate = 1456 # 1) Calculate the conversion rate from passed CIGA to actual sale converted_ciga_jobs = [] @@ -2800,16 +2820,18 @@ def forecast_remaining_sales(loader): results = [] for ha_name, input_data in loader.data.items(): + # Original warmfront figures - ECO4 original_warmfront_estimates = december_figures[december_figures["HA Name"] == ha_name] original_warmfront_eco4 = original_warmfront_estimates["ECO4"].values[0] original_warmfront_remaining_eco4 = original_warmfront_estimates["ECO4 remaining"].values[0] - original_warmfront_eco4_revenue = ( - original_warmfront_remaining_eco4 * eco4_rate + - (original_warmfront_eco4 - original_warmfront_remaining_eco4) * old_eco4_rate - ) + # original_warmfront_eco4_revenue = ( + # original_warmfront_remaining_eco4 * eco4_rate + + # (original_warmfront_eco4 - original_warmfront_remaining_eco4) * old_eco4_rate + # ) + original_warmfront_eco4_revenue = original_warmfront_eco4 * eco4_rate original_warmfront_remaining_eco4_revenue = original_warmfront_remaining_eco4 * eco4_rate # Original warmfront figures - GBIS @@ -2817,9 +2839,12 @@ def forecast_remaining_sales(loader): original_warmfront_gbis = original_warmfront_estimates["GBIS"].values[0] original_warmfront_remaining_gbis = original_warmfront_estimates["GBIS remaining"].values[0] + # original_warmfront_gbis_revenue = ( + # original_warmfront_remaining_gbis * gbis_rate + + # (original_warmfront_gbis - original_warmfront_remaining_gbis) * old_gbis_rate + # ) original_warmfront_gbis_revenue = ( - original_warmfront_remaining_gbis * gbis_rate + - (original_warmfront_gbis - original_warmfront_remaining_gbis) * old_gbis_rate + original_warmfront_gbis * gbis_rate ) original_warmfront_remaining_gbis_revenue = original_warmfront_remaining_gbis * gbis_rate @@ -2835,6 +2860,7 @@ def forecast_remaining_sales(loader): how="left", on="asset_list_row_id" ) + # Anything that has an installation has gone to installation, and therefore is not remaining asset_list_remaining = asset_list_remaining[pd.isnull(asset_list_remaining["installation_status"])] asset_list_remaining = asset_list_remaining.drop(columns=["installation_status"]) @@ -2913,6 +2939,32 @@ def forecast_remaining_sales(loader): eco4_rate=eco4_rate ) + # GBIS Figures + # Estimate the GBIS conversion rate + ha_gbis_sale_conversion = gbis_ciga_independent_passrates[ + gbis_ciga_independent_passrates["Ha Name"] == ha_name + ] + + if not ha_gbis_sale_conversion.empty: + ha_gbis_sale_conversion = ( + ha_gbis_sale_conversion["# GBIS successfully installed"].values[0] / + ha_gbis_sale_conversion["# GBIS at install stage"].values[0] + ) + else: + ha_gbis_sale_conversion = median_gbis_to_install + + gbis_total = eligiblity_counts[ + eligiblity_counts["ECO Eligibility"] == "gbis" + ]["count"].sum() + gbis_total = np.round(gbis_total * ha_gbis_sale_conversion) + gbis_total_revenue = gbis_total * gbis_rate + + gbis_remaining = eligiblity_counts_remaining[ + eligiblity_counts["ECO Eligibility"] == "gbis" + ]["count"].sum() + gbis_remaining = np.round(gbis_remaining * ha_gbis_sale_conversion) + gbis_remaining_revenue = gbis_remaining * gbis_rate + to_append = { ("", "", "", "HA Name"): ha_name, # ECO4 - original warmfront figures @@ -2950,16 +3002,48 @@ def forecast_remaining_sales(loader): ("ECO4 post-ciga", "", "Of which forecast - £", ""): eco4_post_ciga_remaining_results["Of which forecast - £"], # CIGA failures + ("ECO4 CIGA failures", "", "Estimated total - failed CIGA - #", ""): eco4_post_ciga_remaining_results[ + 'Estimated total - failed CIGA' + ], + ("ECO4 CIGA failures", "", "Estimated total - failed CIGA - £", ""): eco4_post_ciga_remaining_results[ + 'Estimated total - failed CIGA - £' + ], + ("ECO4 CIGA failures", "", "Confirmed failures - #", ""): eco4_post_ciga_remaining_results[ + "Confirmed CIGA failures" + ], + ("ECO4 CIGA failures", "", "Confirmed failures - £", ""): eco4_post_ciga_remaining_results[ + "Confirmed CIGA failures - £" + ], + ("ECO4 CIGA failures", "", "Estimated failures - #", ""): eco4_post_ciga_remaining_results[ + "Estimated CIGA failures" + ], + ("ECO4 CIGA failures", "", "Estimated failures - £", ""): eco4_post_ciga_remaining_results[ + "Estimated CIGA failures - £" + ], + # GBIS postcode list + ("", "Warmfront post code list", "Total - #", "GBIS total"): gbis_total, + ("", "Warmfront post code list", "Remaining - #", "GBIS total"): gbis_remaining, + ("", "Warmfront post code list", "Total - £", "GBIS total"): gbis_total_revenue, + ("", "Warmfront post code list", "Remaining - £", "GBIS total"): gbis_remaining_revenue, } # Make sure nothing is forgotten due to duplicate multi-index keys - if len(to_append) != 22: + if len(to_append) != 32: raise ValueError("Something went wrong") results.append(to_append) results = pd.DataFrame(results) + # TODO: Add a blank row and then a total row + + assumptions = { + "ECO4 new rate": eco4_rate, + "GBIS new rate": gbis_rate, + # "ECO4 old rate": old_eco4_rate, + # "GBIS old rate": old_gbis_rate, + } + def app(): """ From 2ba37d55e65a746fdb58588aa2768851a83a3887 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Fri, 1 Mar 2024 20:06:57 +0000 Subject: [PATCH 342/526] Added assumptions table --- .../ha_15_32/ha_analysis_batch_3.py | 45 ++++++++++++++----- 1 file changed, 35 insertions(+), 10 deletions(-) diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index 191ca74c..ac4d3a0c 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -2956,14 +2956,14 @@ def forecast_remaining_sales(loader): gbis_total = eligiblity_counts[ eligiblity_counts["ECO Eligibility"] == "gbis" ]["count"].sum() - gbis_total = np.round(gbis_total * ha_gbis_sale_conversion) - gbis_total_revenue = gbis_total * gbis_rate + gbis_total = int(np.round(gbis_total * ha_gbis_sale_conversion)) + gbis_total_revenue = int(gbis_total * gbis_rate) gbis_remaining = eligiblity_counts_remaining[ eligiblity_counts["ECO Eligibility"] == "gbis" ]["count"].sum() - gbis_remaining = np.round(gbis_remaining * ha_gbis_sale_conversion) - gbis_remaining_revenue = gbis_remaining * gbis_rate + gbis_remaining = int(np.round(gbis_remaining * ha_gbis_sale_conversion)) + gbis_remaining_revenue = int(gbis_remaining * gbis_rate) to_append = { ("", "", "", "HA Name"): ha_name, @@ -3037,12 +3037,37 @@ def forecast_remaining_sales(loader): # TODO: Add a blank row and then a total row - assumptions = { - "ECO4 new rate": eco4_rate, - "GBIS new rate": gbis_rate, - # "ECO4 old rate": old_eco4_rate, - # "GBIS old rate": old_gbis_rate, - } + assumptions = [ + { + ("", "", "", "HA Name"): "ECO4 rate", + ("", "Original Warmfront estimate", "Total - #", "ECO4 - November"): "£" + str(eco4_rate) + }, + { + ("", "", "", "HA Name"): "GBIS rate", + ("ECO4 original", "", "Remaining - #", ""): "£" + str(gbis_rate) + }, + { + ("", "", "", "HA Name"): "Median CIGA pass rate", + ("ECO4 original", "", "Total - £", ""): str(round(median_ciga_success_rate * 100, 1)) + "%", + }, + { + ("", "", "", "HA Name"): "Maximum allowed CIGA pass rate", + ("ECO4 original", "", "Total - £", ""): str(round(maximum_ciga_conversion * 100, 1)) + "%", + ("ECO4 original", "", "Remaining - £", ""): "- Maximum allowed CIGA conversion for HAs without CIGA checks" + }, + { + ("", "", "", "HA Name"): "Median ECO4 (no CIGA) sales conversion rate", + ("ECO4 original", "", "Total - £", ""): str(round(median_eco4_to_install * 100, 1)) + "%", + ("ECO4 original", "", "Remaining - £", + ""): " - Sales conversion rate for a ECO4 property that didn't need a CIGA check" + }, + { + ("", "", "", "HA Name"): "Median ECO4 (subect to CIGA) sales conversion rate", + ("ECO4 original", "", "Total - £", ""): str(round(median_ciga_pass_to_install * 100, 1)) + "%", + ("ECO4 original", "", "Remaining - £", + ""): " - Sales conversion rate for a ECO4 property that passed a CIGA check" + } + ] def app(): From 57a7edf62511207f7d7af176414b5b269f3b1aa1 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Fri, 1 Mar 2024 20:18:44 +0000 Subject: [PATCH 343/526] collating results --- .../ha_15_32/ha_analysis_batch_3.py | 22 ++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index ac4d3a0c..7da6bb3a 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -3035,9 +3035,21 @@ def forecast_remaining_sales(loader): results = pd.DataFrame(results) - # TODO: Add a blank row and then a total row + totals_row = {} + for col in results.columns: + if col == ('', '', '', 'HA Name'): + totals_row[col] = "Total" + elif col == ("ECO4 post-ciga", "", "Delta vs original estimate", ""): + totals_row[col] = results[col].mean() + else: + totals_row[col] = results[col].sum() + + blank_row = pd.DataFrame([{col: "" for col in results.columns}]) assumptions = [ + { + ("", "", "", "HA Name"): "Assumptions", + }, { ("", "", "", "HA Name"): "ECO4 rate", ("", "Original Warmfront estimate", "Total - #", "ECO4 - November"): "£" + str(eco4_rate) @@ -3059,16 +3071,20 @@ def forecast_remaining_sales(loader): ("", "", "", "HA Name"): "Median ECO4 (no CIGA) sales conversion rate", ("ECO4 original", "", "Total - £", ""): str(round(median_eco4_to_install * 100, 1)) + "%", ("ECO4 original", "", "Remaining - £", - ""): " - Sales conversion rate for a ECO4 property that didn't need a CIGA check" + ""): " - Sales conversion rate for a ECO4 property that didn't need a CIGA check. Job must not cancel" }, { ("", "", "", "HA Name"): "Median ECO4 (subect to CIGA) sales conversion rate", ("ECO4 original", "", "Total - £", ""): str(round(median_ciga_pass_to_install * 100, 1)) + "%", ("ECO4 original", "", "Remaining - £", - ""): " - Sales conversion rate for a ECO4 property that passed a CIGA check" + ""): " - Sales conversion rate for a ECO4 property that passed a CIGA check. Job must not cancel" } ] + results = pd.concat( + [results, pd.DataFrame([totals_row]), blank_row, blank_row, pd.DataFrame(assumptions)] + ) + def app(): """ From 028c2edce7ab951987379a7c653324e5863426ae Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Fri, 1 Mar 2024 20:48:43 +0000 Subject: [PATCH 344/526] Added headlines --- .../ha_15_32/ha_analysis_batch_3.py | 129 +++++++++++++++++- 1 file changed, 126 insertions(+), 3 deletions(-) diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index 7da6bb3a..1c320f9c 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -2991,7 +2991,7 @@ def forecast_remaining_sales(loader): # ECO4 - asset list, post ciga, remaining ("ECO4 post-ciga", "", "Estimated remaining eligible - #", ""): eco4_post_ciga_remaining_results[ "ECO4 - post CIGA - #"], - ("ECO4 post-ciga", "", "Estimated remaining total eligible - £", ""): eco4_post_ciga_remaining_results[ + ("ECO4 post-ciga", "", "Estimated remaining eligible - £", ""): eco4_post_ciga_remaining_results[ "ECO4 - post CIGA - £"], ("ECO4 post-ciga", "", "Of which - confirmed (post CIGA or no CIGA required) - #", ""): eco4_post_ciga_remaining_results["Of which confirmed - #"], @@ -3046,6 +3046,126 @@ def forecast_remaining_sales(loader): blank_row = pd.DataFrame([{col: "" for col in results.columns}]) + # Put together a Warmfront original remaining ECO4 vs asset list remaining ECO4 and same for GBIS, as well as totals + + # ECO4 Headlines + headline_eco4_original_remaining = totals_row[("ECO4 original", "", "Remaining - #", "")] + headline_eco4_original_remaining_revenue = totals_row[("ECO4 original", "", "Remaining - £", "")] + headline_eco4_postcode_list_remaining = totals_row[("ECO4 post-ciga", "", "Estimated remaining eligible - #", "")] + headline_eco4_postcode_list_remaining_revenue = totals_row[ + ("ECO4 post-ciga", "", "Estimated remaining eligible - £", "") + ] + headline_eco4_delta = 100 * ( + (headline_eco4_postcode_list_remaining - headline_eco4_original_remaining) / + headline_eco4_original_remaining + ) + headline_eco4_delta = round(headline_eco4_delta, 1) + + # GBIS Headlines + headline_gbis_original_remaining = totals_row[("GBIS original", "", "Remaining - #", "")] + headline_gbis_original_remaining_revenue = totals_row[("GBIS original", "", "Remaining - £", "")] + headline_gbis_postcode_list_remaining = totals_row[("", "Warmfront post code list", "Remaining - #", "GBIS total")] + headline_gbis_postcode_list_remaining_revenue = totals_row[ + ("", "Warmfront post code list", "Remaining - £", "GBIS total") + ] + headline_gbis_delta = 100 * ( + (headline_gbis_postcode_list_remaining - headline_gbis_original_remaining) / + headline_gbis_original_remaining + ) + headline_gbis_delta = round(headline_gbis_delta, 1) + + headline_original_total_revenue_remaining = ( + headline_eco4_original_remaining_revenue + headline_gbis_original_remaining_revenue + ) + + headline_postcode_list_total_revenue_remaining = ( + headline_eco4_postcode_list_remaining_revenue + headline_gbis_postcode_list_remaining_revenue + ) + headline_total_delta = 100 * ( + (headline_postcode_list_total_revenue_remaining - headline_original_total_revenue_remaining) / + headline_original_total_revenue_remaining + ) + headline_total_delta = round(headline_total_delta, 1) + + headlines = [ + { + ("", "", "", "HA Name"): "Headlines", + }, + { + ("", "", "", "HA Name"): "ECO4 Remaining - November - #", + ("", "Original Warmfront estimate", "Total - #", "ECO4 - November"): str( + headline_eco4_original_remaining + ) + }, + { + ("", "", "", "HA Name"): "ECO4 Remaining - November - £", + ("", "Original Warmfront estimate", "Total - #", "ECO4 - November"): "£" + str( + headline_eco4_original_remaining_revenue + ) + }, + { + ("", "", "", "HA Name"): "ECO4 Remaining - postcode list - #", + ("", "Original Warmfront estimate", "Total - #", "ECO4 - November"): str( + headline_eco4_postcode_list_remaining + ) + }, + { + ("", "", "", "HA Name"): "ECO4 Remaining - postcode list - £", + ("", "Original Warmfront estimate", "Total - #", "ECO4 - November"): "£" + str( + headline_eco4_postcode_list_remaining_revenue + ) + }, + { + ("", "", "", "HA Name"): "ECO4 delta %", + ("", "Original Warmfront estimate", "Total - #", "ECO4 - November"): str(headline_eco4_delta) + "%" + }, + { + ("", "", "", "HA Name"): "GBIS Remaining - November - #", + ("", "Original Warmfront estimate", "Total - #", "ECO4 - November"): str( + headline_gbis_original_remaining + ) + }, + { + ("", "", "", "HA Name"): "GBIS Remaining - November - £", + ("", "Original Warmfront estimate", "Total - #", "ECO4 - November"): "£" + str( + headline_gbis_original_remaining_revenue + ) + }, + { + ("", "", "", "HA Name"): "GBIS Remaining - post code list - #", + ("", "Original Warmfront estimate", "Total - #", "ECO4 - November"): str( + headline_gbis_postcode_list_remaining + ) + }, + { + ("", "", "", "HA Name"): "GBIS Remaining - post code list - £", + ("", "Original Warmfront estimate", "Total - #", "ECO4 - November"): "£" + str( + headline_gbis_postcode_list_remaining_revenue + ) + }, + { + ("", "", "", "HA Name"): "GBIS delta %", + ("", "Original Warmfront estimate", "Total - #", "ECO4 - November"): str(headline_gbis_delta) + "%" + }, + # Total revenue + { + ("", "", "", "HA Name"): "Total Remaining - November - £", + ("", "Original Warmfront estimate", "Total - #", "ECO4 - November"): "£" + str( + headline_original_total_revenue_remaining + ) + }, + { + ("", "", "", "HA Name"): "Total Remaining - post code list - £", + ("", "Original Warmfront estimate", "Total - #", "ECO4 - November"): "£" + str( + headline_postcode_list_total_revenue_remaining + ) + }, + { + ("", "", "", "HA Name"): "Total Remaining delta %", + ("", "Original Warmfront estimate", "Total - #", "ECO4 - November"): str(headline_total_delta) + "%" + }, + ] + assumptions = [ { ("", "", "", "HA Name"): "Assumptions", @@ -3065,7 +3185,9 @@ def forecast_remaining_sales(loader): { ("", "", "", "HA Name"): "Maximum allowed CIGA pass rate", ("ECO4 original", "", "Total - £", ""): str(round(maximum_ciga_conversion * 100, 1)) + "%", - ("ECO4 original", "", "Remaining - £", ""): "- Maximum allowed CIGA conversion for HAs without CIGA checks" + ("ECO4 original", "", "Remaining - £", + ""): "- Maximum allowed CIGA conversion for HAs without CIGA checks We do not allow above this to be " + "conservative" }, { ("", "", "", "HA Name"): "Median ECO4 (no CIGA) sales conversion rate", @@ -3082,7 +3204,8 @@ def forecast_remaining_sales(loader): ] results = pd.concat( - [results, pd.DataFrame([totals_row]), blank_row, blank_row, pd.DataFrame(assumptions)] + [results, pd.DataFrame([headlines]), pd.DataFrame([totals_row]), blank_row, blank_row, + pd.DataFrame(assumptions)] ) From 721bfb19fcc3bd70fe02081e14e4abde22f9a13e Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Fri, 1 Mar 2024 21:33:45 +0000 Subject: [PATCH 345/526] Added totals percentages aggregations --- .../ha_15_32/ha_analysis_batch_3.py | 74 ++++++++++++++++--- 1 file changed, 64 insertions(+), 10 deletions(-) diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index 1c320f9c..3341e34c 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -2965,6 +2965,14 @@ def forecast_remaining_sales(loader): gbis_remaining = int(np.round(gbis_remaining * ha_gbis_sale_conversion)) gbis_remaining_revenue = int(gbis_remaining * gbis_rate) + # GBIS delta + if original_warmfront_gbis == 0: + gbis_delta_vs_original_estimate = 100 * gbis_total + else: + gbis_delta_vs_original_estimate = 100 * ( + gbis_total - original_warmfront_gbis + ) / original_warmfront_gbis + to_append = { ("", "", "", "HA Name"): ha_name, # ECO4 - original warmfront figures @@ -2987,7 +2995,7 @@ def forecast_remaining_sales(loader): "ECO4 - post CIGA - #"], ("ECO4 post-ciga", "", "Estimated total eligible - £", ""): eco4_post_ciga_total_results[ "ECO4 - post CIGA - £"], - ("ECO4 post-ciga", "", "Delta vs original estimate", ""): eco4_delta_vs_original_estimate, + ("ECO4 post-ciga", "", "Delta vs original estimate - %", ""): eco4_delta_vs_original_estimate, # ECO4 - asset list, post ciga, remaining ("ECO4 post-ciga", "", "Estimated remaining eligible - #", ""): eco4_post_ciga_remaining_results[ "ECO4 - post CIGA - #"], @@ -3021,14 +3029,15 @@ def forecast_remaining_sales(loader): "Estimated CIGA failures - £" ], # GBIS postcode list - ("", "Warmfront post code list", "Total - #", "GBIS total"): gbis_total, - ("", "Warmfront post code list", "Remaining - #", "GBIS total"): gbis_remaining, - ("", "Warmfront post code list", "Total - £", "GBIS total"): gbis_total_revenue, - ("", "Warmfront post code list", "Remaining - £", "GBIS total"): gbis_remaining_revenue, + ("GBIS Postcode list", "Warmfront post code list", "Total - #", "GBIS total"): gbis_total, + ("GBIS Postcode list", "Warmfront post code list", "Total - £", "GBIS total"): gbis_total_revenue, + ("GBIS Postcode list", "", "Delta vs original estimate - %", ""): gbis_delta_vs_original_estimate, + ("GBIS Postcode list", "Warmfront post code list", "Remaining - #", "GBIS total"): gbis_remaining, + ("GBIS Postcode list", "Warmfront post code list", "Remaining - £", "GBIS total"): gbis_remaining_revenue, } # Make sure nothing is forgotten due to duplicate multi-index keys - if len(to_append) != 32: + if len(to_append) != 33: raise ValueError("Something went wrong") results.append(to_append) @@ -3039,11 +3048,31 @@ def forecast_remaining_sales(loader): for col in results.columns: if col == ('', '', '', 'HA Name'): totals_row[col] = "Total" - elif col == ("ECO4 post-ciga", "", "Delta vs original estimate", ""): - totals_row[col] = results[col].mean() + elif col in [ + ("ECO4 post-ciga", "", "Delta vs original estimate - %", ""), + ("GBIS Postcode list", "", "Delta vs original estimate - %", "") + ]: + totals_row[col] = None else: totals_row[col] = results[col].sum() + # For the delta columns, we calculate the delta on the totals + totals_row[("ECO4 post-ciga", "", "Delta vs original estimate - %", "")] = round( + 100 * ( + totals_row[("ECO4 post-ciga", "", "Estimated total eligible - #", "")] - + totals_row[("", "Original Warmfront estimate", "Total - #", "ECO4 - November")] + ) / totals_row[("", "Original Warmfront estimate", "Total - #", "ECO4 - November")], + 1 + ) + + totals_row[("GBIS Postcode list", "", "Delta vs original estimate - %", "")] = round( + 100 * ( + totals_row[("GBIS Postcode list", "Warmfront post code list", "Total - #", "GBIS total")] - + totals_row[("", "Original Warmfront estimate", "Total - #", "GBIS - November")] + ) / totals_row[("", "Original Warmfront estimate", "Total - #", "GBIS - November")], + 1 + ) + blank_row = pd.DataFrame([{col: "" for col in results.columns}]) # Put together a Warmfront original remaining ECO4 vs asset list remaining ECO4 and same for GBIS, as well as totals @@ -3204,10 +3233,35 @@ def forecast_remaining_sales(loader): ] results = pd.concat( - [results, pd.DataFrame([headlines]), pd.DataFrame([totals_row]), blank_row, blank_row, - pd.DataFrame(assumptions)] + [ + results, + pd.DataFrame([totals_row]), + pd.DataFrame(headlines), + blank_row, + blank_row, + pd.DataFrame(assumptions) + ] ) + # header_rows = [ + # [name[0] for name in results.columns.values], + # [name[1] for name in results.columns.values], + # [name[2] for name in results.columns.values], + # [name[3] for name in results.columns.values] + # ] + + # Step 2: Write the transformed header and DataFrame data to CSV. + # Open the file in write mode. + import csv + with open("HA Remaining Analysis.csv", "w", newline="") as file: + # writer = csv.writer(file) + + # Write the header rows. + # writer.writerows(header_rows) + + # Write the DataFrame data without the index (adjust if you want the index). + results.to_csv(file, header=True, index=False) + def app(): """ From f9d1a90689ef742fd32217b606c6a919b766d974 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Fri, 1 Mar 2024 22:17:11 +0000 Subject: [PATCH 346/526] Fixing some formatting bugs --- .../ha_15_32/ha_analysis_batch_3.py | 86 +++++++++++-------- 1 file changed, 48 insertions(+), 38 deletions(-) diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index 3341e34c..6309d2e2 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -2820,6 +2820,8 @@ def forecast_remaining_sales(loader): results = [] for ha_name, input_data in loader.data.items(): + if ha_name == "HA16": + dew # Original warmfront figures - ECO4 original_warmfront_estimates = december_figures[december_figures["HA Name"] == ha_name] @@ -2991,8 +2993,9 @@ def forecast_remaining_sales(loader): ("ECO4 pre-ciga", "", "Total - £", ""): eco4_pre_ciga_revenue, ("ECO4 pre-ciga", "", "Remaining - £", ""): eco4_pre_ciga_remaining_revenue, # ECO4 - asset list, post ciga, total - ("ECO4 post-ciga", "", "Estimated total eligible - #", ""): eco4_post_ciga_total_results[ - "ECO4 - post CIGA - #"], + ("ECO4 post-ciga", "", "Estimated total eligible - #", "ECO4 total (post-ciga)"): + eco4_post_ciga_total_results[ + "ECO4 - post CIGA - #"], ("ECO4 post-ciga", "", "Estimated total eligible - £", ""): eco4_post_ciga_total_results[ "ECO4 - post CIGA - £"], ("ECO4 post-ciga", "", "Delta vs original estimate - %", ""): eco4_delta_vs_original_estimate, @@ -3059,7 +3062,7 @@ def forecast_remaining_sales(loader): # For the delta columns, we calculate the delta on the totals totals_row[("ECO4 post-ciga", "", "Delta vs original estimate - %", "")] = round( 100 * ( - totals_row[("ECO4 post-ciga", "", "Estimated total eligible - #", "")] - + totals_row[("ECO4 post-ciga", "", "Estimated total eligible - #", "ECO4 total (post-ciga)")] - totals_row[("", "Original Warmfront estimate", "Total - #", "ECO4 - November")] ) / totals_row[("", "Original Warmfront estimate", "Total - #", "ECO4 - November")], 1 @@ -3093,9 +3096,11 @@ def forecast_remaining_sales(loader): # GBIS Headlines headline_gbis_original_remaining = totals_row[("GBIS original", "", "Remaining - #", "")] headline_gbis_original_remaining_revenue = totals_row[("GBIS original", "", "Remaining - £", "")] - headline_gbis_postcode_list_remaining = totals_row[("", "Warmfront post code list", "Remaining - #", "GBIS total")] + headline_gbis_postcode_list_remaining = totals_row[ + ("GBIS Postcode list", "Warmfront post code list", "Remaining - #", "GBIS total") + ] headline_gbis_postcode_list_remaining_revenue = totals_row[ - ("", "Warmfront post code list", "Remaining - £", "GBIS total") + ("GBIS Postcode list", "Warmfront post code list", "Remaining - £", "GBIS total") ] headline_gbis_delta = 100 * ( (headline_gbis_postcode_list_remaining - headline_gbis_original_remaining) / @@ -3205,29 +3210,33 @@ def forecast_remaining_sales(loader): }, { ("", "", "", "HA Name"): "GBIS rate", - ("ECO4 original", "", "Remaining - #", ""): "£" + str(gbis_rate) + ("", "Original Warmfront estimate", "Total - #", "ECO4 - November"): "£" + str(gbis_rate) }, { ("", "", "", "HA Name"): "Median CIGA pass rate", - ("ECO4 original", "", "Total - £", ""): str(round(median_ciga_success_rate * 100, 1)) + "%", + ("", "Original Warmfront estimate", "Total - #", "ECO4 - November"): str( + round(median_ciga_success_rate * 100, 1)) + "%", }, { ("", "", "", "HA Name"): "Maximum allowed CIGA pass rate", - ("ECO4 original", "", "Total - £", ""): str(round(maximum_ciga_conversion * 100, 1)) + "%", - ("ECO4 original", "", "Remaining - £", + ("", "Original Warmfront estimate", "Total - #", "ECO4 - November"): str( + round(maximum_ciga_conversion * 100, 1)) + "%", + ("ECO4 original", "", "Remaining - #", ""): "- Maximum allowed CIGA conversion for HAs without CIGA checks We do not allow above this to be " "conservative" }, { ("", "", "", "HA Name"): "Median ECO4 (no CIGA) sales conversion rate", - ("ECO4 original", "", "Total - £", ""): str(round(median_eco4_to_install * 100, 1)) + "%", - ("ECO4 original", "", "Remaining - £", + ("", "Original Warmfront estimate", "Total - #", "ECO4 - November"): str( + round(median_eco4_to_install * 100, 1)) + "%", + ("ECO4 original", "", "Remaining - #", ""): " - Sales conversion rate for a ECO4 property that didn't need a CIGA check. Job must not cancel" }, { ("", "", "", "HA Name"): "Median ECO4 (subect to CIGA) sales conversion rate", - ("ECO4 original", "", "Total - £", ""): str(round(median_ciga_pass_to_install * 100, 1)) + "%", - ("ECO4 original", "", "Remaining - £", + ("", "Original Warmfront estimate", "Total - #", "ECO4 - November"): str( + round(median_ciga_pass_to_install * 100, 1)) + "%", + ("ECO4 original", "", "Remaining - #", ""): " - Sales conversion rate for a ECO4 property that passed a CIGA check. Job must not cancel" } ] @@ -3236,6 +3245,7 @@ def forecast_remaining_sales(loader): [ results, pd.DataFrame([totals_row]), + blank_row, pd.DataFrame(headlines), blank_row, blank_row, @@ -3291,32 +3301,32 @@ def app(): loader.load() loader.ha_facts_and_figures() + forecast_remaining_sales(loader) + # We load in the additional data required to perform the analysis - cleaned = read_from_s3( - s3_file_name="cleaned_epc_data/cleaned.bson", - bucket_name="retrofit-data-dev" - ) - cleaned = msgpack.unpackb(cleaned, raw=False) - cleaned = patch_cleaned(cleaned) - - cleaning_data = read_dataframe_from_s3_parquet( - bucket_name="retrofit-data-dev", file_key="sap_change_model/cleaning_dataset.parquet", - ) - created_at = datetime.now().isoformat() - - photo_supply_lookup, floor_area_decile_thresholds = SolarPhotoSupply.load(bucket="retrofit-data-dev") - - outputs = get_epc_data( - loader=loader, - cleaned=cleaned, - cleaning_data=cleaning_data, - created_at=created_at, - photo_supply_lookup=photo_supply_lookup, - floor_area_decile_thresholds=floor_area_decile_thresholds, - pull_data=pull_data - ) - - analyse_ha_data(outputs, loader) + # cleaned = read_from_s3( + # s3_file_name="cleaned_epc_data/cleaned.bson", + # bucket_name="retrofit-data-dev" + # ) + # cleaned = msgpack.unpackb(cleaned, raw=False) + # cleaned = patch_cleaned(cleaned) + # + # cleaning_data = read_dataframe_from_s3_parquet( + # bucket_name="retrofit-data-dev", file_key="sap_change_model/cleaning_dataset.parquet", + # ) + # created_at = datetime.now().isoformat() + # + # photo_supply_lookup, floor_area_decile_thresholds = SolarPhotoSupply.load(bucket="retrofit-data-dev") + # + # outputs = get_epc_data( + # loader=loader, + # cleaned=cleaned, + # cleaning_data=cleaning_data, + # created_at=created_at, + # photo_supply_lookup=photo_supply_lookup, + # floor_area_decile_thresholds=floor_area_decile_thresholds, + # pull_data=pull_data + # ) # import pickle # with open("ha_analysis.pickle", "wb") as f: From 0497290b7cac36b4519b3db4c0f9d1d1be4932b5 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Fri, 1 Mar 2024 22:17:51 +0000 Subject: [PATCH 347/526] removed temp code --- etl/eligibility/ha_15_32/ha_analysis_batch_3.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index 6309d2e2..ec9469dc 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -2820,8 +2820,6 @@ def forecast_remaining_sales(loader): results = [] for ha_name, input_data in loader.data.items(): - if ha_name == "HA16": - dew # Original warmfront figures - ECO4 original_warmfront_estimates = december_figures[december_figures["HA Name"] == ha_name] From fbd808a54d3314d9821d5fad5456e951558959c9 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Fri, 1 Mar 2024 22:27:50 +0000 Subject: [PATCH 348/526] re-formatting percentages --- .../ha_15_32/ha_analysis_batch_3.py | 64 ++++++++----------- 1 file changed, 27 insertions(+), 37 deletions(-) diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index ec9469dc..0daf239b 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -2926,9 +2926,10 @@ def forecast_remaining_sales(loader): ) # Calculate the delta compared to Warmfront's original estimate - eco4_delta_vs_original_estimate = 100 * ( - eco4_post_ciga_total_results["ECO4 - post CIGA - #"] - original_warmfront_eco4 - ) / original_warmfront_eco4 + eco4_delta_vs_original_estimate = ( + eco4_post_ciga_total_results[ + "ECO4 - post CIGA - #"] - original_warmfront_eco4 + ) / original_warmfront_eco4 eco4_post_ciga_remaining_results = calculate_eco4_post_ciga( eligiblity_counts=eligiblity_counts_remaining, @@ -2967,11 +2968,11 @@ def forecast_remaining_sales(loader): # GBIS delta if original_warmfront_gbis == 0: - gbis_delta_vs_original_estimate = 100 * gbis_total + gbis_delta_vs_original_estimate = gbis_total else: - gbis_delta_vs_original_estimate = 100 * ( - gbis_total - original_warmfront_gbis - ) / original_warmfront_gbis + gbis_delta_vs_original_estimate = ( + gbis_total - original_warmfront_gbis + ) / original_warmfront_gbis to_append = { ("", "", "", "HA Name"): ha_name, @@ -3125,27 +3126,23 @@ def forecast_remaining_sales(loader): }, { ("", "", "", "HA Name"): "ECO4 Remaining - November - #", - ("", "Original Warmfront estimate", "Total - #", "ECO4 - November"): str( - headline_eco4_original_remaining - ) + ("", "Original Warmfront estimate", "Total - #", "ECO4 - November"): headline_eco4_original_remaining + }, { ("", "", "", "HA Name"): "ECO4 Remaining - November - £", - ("", "Original Warmfront estimate", "Total - #", "ECO4 - November"): "£" + str( - headline_eco4_original_remaining_revenue - ) + ( + "", "Original Warmfront estimate", "Total - #", + "ECO4 - November"): headline_eco4_original_remaining_revenue }, { ("", "", "", "HA Name"): "ECO4 Remaining - postcode list - #", - ("", "Original Warmfront estimate", "Total - #", "ECO4 - November"): str( - headline_eco4_postcode_list_remaining - ) + ("", "Original Warmfront estimate", "Total - #", "ECO4 - November"): headline_eco4_postcode_list_remaining }, { ("", "", "", "HA Name"): "ECO4 Remaining - postcode list - £", - ("", "Original Warmfront estimate", "Total - #", "ECO4 - November"): "£" + str( - headline_eco4_postcode_list_remaining_revenue - ) + ("", "Original Warmfront estimate", "Total - #", + "ECO4 - November"): headline_eco4_postcode_list_remaining_revenue }, { ("", "", "", "HA Name"): "ECO4 delta %", @@ -3153,27 +3150,22 @@ def forecast_remaining_sales(loader): }, { ("", "", "", "HA Name"): "GBIS Remaining - November - #", - ("", "Original Warmfront estimate", "Total - #", "ECO4 - November"): str( - headline_gbis_original_remaining - ) + ("", "Original Warmfront estimate", "Total - #", "ECO4 - November"): headline_gbis_original_remaining }, { ("", "", "", "HA Name"): "GBIS Remaining - November - £", - ("", "Original Warmfront estimate", "Total - #", "ECO4 - November"): "£" + str( - headline_gbis_original_remaining_revenue - ) + ( + "", "Original Warmfront estimate", "Total - #", + "ECO4 - November"): headline_gbis_original_remaining_revenue }, { ("", "", "", "HA Name"): "GBIS Remaining - post code list - #", - ("", "Original Warmfront estimate", "Total - #", "ECO4 - November"): str( - headline_gbis_postcode_list_remaining - ) + ("", "Original Warmfront estimate", "Total - #", "ECO4 - November"): headline_gbis_postcode_list_remaining }, { ("", "", "", "HA Name"): "GBIS Remaining - post code list - £", - ("", "Original Warmfront estimate", "Total - #", "ECO4 - November"): "£" + str( - headline_gbis_postcode_list_remaining_revenue - ) + ("", "Original Warmfront estimate", "Total - #", + "ECO4 - November"): headline_gbis_postcode_list_remaining_revenue }, { ("", "", "", "HA Name"): "GBIS delta %", @@ -3182,15 +3174,13 @@ def forecast_remaining_sales(loader): # Total revenue { ("", "", "", "HA Name"): "Total Remaining - November - £", - ("", "Original Warmfront estimate", "Total - #", "ECO4 - November"): "£" + str( - headline_original_total_revenue_remaining - ) + ("", "Original Warmfront estimate", "Total - #", + "ECO4 - November"): headline_original_total_revenue_remaining }, { ("", "", "", "HA Name"): "Total Remaining - post code list - £", - ("", "Original Warmfront estimate", "Total - #", "ECO4 - November"): "£" + str( - headline_postcode_list_total_revenue_remaining - ) + ("", "Original Warmfront estimate", "Total - #", + "ECO4 - November"): headline_postcode_list_total_revenue_remaining }, { ("", "", "", "HA Name"): "Total Remaining delta %", From 46f5ee8ea43e719dc4f0c8c472de68b62d974270 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Fri, 1 Mar 2024 22:34:02 +0000 Subject: [PATCH 349/526] formatting percentage --- etl/eligibility/ha_15_32/ha_analysis_batch_3.py | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index 0daf239b..b5c6835b 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -3059,20 +3059,18 @@ def forecast_remaining_sales(loader): totals_row[col] = results[col].sum() # For the delta columns, we calculate the delta on the totals - totals_row[("ECO4 post-ciga", "", "Delta vs original estimate - %", "")] = round( - 100 * ( + totals_row[("ECO4 post-ciga", "", "Delta vs original estimate - %", "")] = ( + ( totals_row[("ECO4 post-ciga", "", "Estimated total eligible - #", "ECO4 total (post-ciga)")] - totals_row[("", "Original Warmfront estimate", "Total - #", "ECO4 - November")] - ) / totals_row[("", "Original Warmfront estimate", "Total - #", "ECO4 - November")], - 1 + ) / totals_row[("", "Original Warmfront estimate", "Total - #", "ECO4 - November")] ) - totals_row[("GBIS Postcode list", "", "Delta vs original estimate - %", "")] = round( - 100 * ( + totals_row[("GBIS Postcode list", "", "Delta vs original estimate - %", "")] = ( + ( totals_row[("GBIS Postcode list", "Warmfront post code list", "Total - #", "GBIS total")] - totals_row[("", "Original Warmfront estimate", "Total - #", "GBIS - November")] - ) / totals_row[("", "Original Warmfront estimate", "Total - #", "GBIS - November")], - 1 + ) / totals_row[("", "Original Warmfront estimate", "Total - #", "GBIS - November")] ) blank_row = pd.DataFrame([{col: "" for col in results.columns}]) From d9e9be4389d371176a8f83ec5f83f0fcbabbeb8b Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Fri, 1 Mar 2024 23:48:27 +0000 Subject: [PATCH 350/526] Added HA25 --- .../ha_15_32/ha_analysis_batch_3.py | 79 ++++++++++++------- 1 file changed, 51 insertions(+), 28 deletions(-) diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index b5c6835b..baaa4050 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -159,19 +159,18 @@ class DataLoader: } UNMATCHED_CIGA = { - # We expect 4 unmatched addresses, which have been validated manually as being in the ciga file but not - # the asset list + "HA6": 117, "HA14": 3, "HA16": 7, - # There's just too many unmatched here - "HA6": 117, + "HA24": 12, "HA107": 51, } - def __init__(self, directories, december_figures_filepath, use_cache): + def __init__(self, directories, december_figures_filepath, use_cache, rebuild): self.directories = directories self.use_cache = use_cache self.december_figures_filepath = december_figures_filepath + self.rebuild = rebuild self.data = {} self.december_figures = None @@ -312,23 +311,20 @@ class DataLoader: return asset_list @staticmethod - def create_ciga_list_house_no(ha_name, ciga_list): + def create_ciga_list_house_no(ciga_list): """ This function will append the House number onto the asset list :return: """ - if ha_name in ["HA6", "HA14", "HA107", "HA16"]: - split_addresses = ciga_list['Matched Address'].str.split(',', expand=True) - house_numbers = split_addresses[0].str.split(' ', expand=True) - # THe first column should be HouseNo - we aren't interested in the other columns, but we don't know how - # many columns there might be - house_numbers = house_numbers.iloc[:, 0:1] - house_numbers.columns = ['HouseNo'] + split_addresses = ciga_list['Matched Address'].str.split(',', expand=True) + house_numbers = split_addresses[0].str.split(' ', expand=True) + # THe first column should be HouseNo - we aren't interested in the other columns, but we don't know how + # many columns there might be + house_numbers = house_numbers.iloc[:, 0:1] + house_numbers.columns = ['HouseNo'] - ciga_list = pd.concat([ciga_list, house_numbers[["HouseNo"]]], axis=1) - else: - raise NotImplementedError("Implement me") + ciga_list = pd.concat([ciga_list, house_numbers[["HouseNo"]]], axis=1) return ciga_list @@ -447,7 +443,7 @@ class DataLoader: # Remove rows with missing postcode which happens in a small number of cases ciga_list = ciga_list[~pd.isnull(ciga_list["Matched Postcode"])] ciga_list["ciga_list_row_id"] = [ha_name + "_ciga_" + str(i) for i in range(0, len(ciga_list))] - ciga_list = self.create_ciga_list_house_no(ha_name, ciga_list) + ciga_list = self.create_ciga_list_house_no(ciga_list) ciga_list = self.dedupe_ciga_list(ciga_list) ciga_list = self.merge_ciga_to_assets(asset_list, ciga_list, ha_name) @@ -800,6 +796,10 @@ class DataLoader: "st. leodegars close", "st leodegars close" ) + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace( + "montgomery crescent", "montgomery road" + ) + return survey_list @staticmethod @@ -1102,16 +1102,18 @@ class DataLoader: for col in ["ECO4", "GBIS", "ECO4 remaining", "GBIS remaining"]: self.december_figures[col] = self.december_figures[col].astype("Int64") - if self.use_cache: - self.data = read_pickle_from_s3( + if self.use_cache and not self.rebuild: + data = read_pickle_from_s3( bucket_name="retrofit-datalake-dev", s3_file_name="ha-analysis/batch3-inputs.pickle", ) - return + else: + data = {} - data = {} for filepath in self.directories: ha_name = filepath.split("/")[2] + if ha_name in data: + continue # Load asset list logger.info("Loading data for {}".format(ha_name)) asset_list, survey_list, ciga_list = self.load_asset_list( @@ -2635,6 +2637,10 @@ def forecast_remaining_sales(loader): # and I don't want the numbers to change too much, depenent on the CIGA conversation rate maximum_ciga_conversion = 0.75 + # This is a hard limit to the allowed conversion rates to final sale. These are typically very + # high but there are some anomalies, amongst surveys that are early on + sales_conversion_lower_bound = 0.8 + gbis_rate = 600 eco4_rate = 1710 # old_gbis_rate = 432 @@ -2796,14 +2802,30 @@ def forecast_remaining_sales(loader): eco4_ciga_independent_passrates = pd.DataFrame(eco4_ciga_independent_passrates) gbis_ciga_independent_passrates = pd.DataFrame(gbis_ciga_independent_passrates) + eco4_ciga_independent_passrates["conversion"] = ( + eco4_ciga_independent_passrates["# ECO4 successfully installed"] / + eco4_ciga_independent_passrates["# ECO4 at install stage"] + ) + eco4_ciga_independent_passrates_clipped = eco4_ciga_independent_passrates[ + eco4_ciga_independent_passrates["conversion"] >= sales_conversion_lower_bound + ] + + gbis_ciga_independent_passrates["conversion"] = ( + gbis_ciga_independent_passrates["# GBIS successfully installed"] / + gbis_ciga_independent_passrates["# GBIS at install stage"] + ) + gbis_ciga_independent_passrates_clipped = gbis_ciga_independent_passrates[ + gbis_ciga_independent_passrates["conversion"] >= sales_conversion_lower_bound + ] + median_eco4_to_install = ( - eco4_ciga_independent_passrates["# ECO4 successfully installed"].sum() / - eco4_ciga_independent_passrates["# ECO4 at install stage"].sum() + eco4_ciga_independent_passrates_clipped["# ECO4 successfully installed"].sum() / + eco4_ciga_independent_passrates_clipped["# ECO4 at install stage"].sum() ) median_gbis_to_install = ( - gbis_ciga_independent_passrates["# GBIS successfully installed"].sum() / - gbis_ciga_independent_passrates["# GBIS at install stage"].sum() + gbis_ciga_independent_passrates_clipped["# GBIS successfully installed"].sum() / + gbis_ciga_independent_passrates_clipped["# GBIS at install stage"].sum() ) # Produce the final output @@ -3270,6 +3292,8 @@ def app(): use_cache = True # Determines if we want to perform the data pull pull_data = False + # Override to re-build all inputs + rebuild_inputs = False # List all of the data in the folder @@ -3278,12 +3302,11 @@ def app(): # Grab the December HA figures filepath december_figures_filepath = "local_data/ha_data/HA_December_figures.csv" - # priority_has = ["HA1", "HA6", "HA7", "HA14", "HA16", "HA24", "HA39", "HA107"] - priority_has = ["HA1", "HA6", "HA7", "HA14", "HA16", "HA39", "HA107"] + priority_has = ["HA1", "HA6", "HA7", "HA14", "HA16", "HA24", "HA25", "HA39", "HA107"] # Filter down the directories to only the priority HAs directories = [d for d in directories if d.split("/")[2] in priority_has] - loader = DataLoader(directories, december_figures_filepath, use_cache) + loader = DataLoader(directories, december_figures_filepath, use_cache, rebuild_inputs) loader.load() loader.ha_facts_and_figures() From cbd4a0052ef005e00ce143c16306b5f0b782c4ed Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Fri, 1 Mar 2024 23:52:19 +0000 Subject: [PATCH 351/526] Starting HA25 --- etl/eligibility/ha_15_32/ha_analysis_batch_3.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index baaa4050..0c9f685f 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -347,6 +347,8 @@ class DataLoader: return "Asset" elif "Decent Homes Stock" in workbook.sheetnames: return "Decent Homes Stock" + elif "Report" in workbook.sheetnames: + return "Report" else: return "Assets" From fc022b8a22d571651ba21fff9fd4c5901b18e20f Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Sat, 2 Mar 2024 12:34:22 +0000 Subject: [PATCH 352/526] Added data load for HA25 --- .../ha_15_32/ha_analysis_batch_3.py | 32 +++++++++++++++---- 1 file changed, 25 insertions(+), 7 deletions(-) diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index 0c9f685f..4ae881d2 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -155,6 +155,10 @@ class DataLoader: "HA24": { "address": "Address", "postcode": "Postcode" + }, + "HA25": { + "address": "T1_Address", + "postcode": "matching_postcode" } } @@ -178,7 +182,7 @@ class DataLoader: def create_asset_list_matching_address(self, ha_name, asset_list): - if ha_name in ["HA1", "HA6", "HA16", "HA24"]: + if ha_name in ["HA1", "HA6", "HA16", "HA24", "HA25"]: asset_list["matching_address"] = asset_list[ self.COLUMN_CONFIG[ha_name]["address"] ].astype(str).str.lower().str.strip() @@ -374,13 +378,23 @@ class DataLoader: asset_sheetname = self.get_asset_sheetname(workbook) asset_sheet = workbook[asset_sheetname] asset_sheet_colnames = [cell.value for cell in asset_sheet[1]] + if ha_name == "HA25": + asset_sheet_colnames[11] = "matching_postcode" + + values_only = not ha_name != "HA25" rows_data = [] - for row in asset_sheet.iter_rows(min_row=2, values_only=False): - row_data = [cell.value for cell in row] # This will get you the cell values - rows_data.append(row_data) + if not values_only: + for row in asset_sheet.iter_rows(min_row=2, values_only=values_only): + row_data = [cell.value for cell in row] # This will get you the cell values + rows_data.append(row_data) + else: + for row in asset_sheet.iter_rows(min_row=2, values_only=values_only): # use values_only=True to get values + row_data = list(row) # No need for comprehension, values_only=True returns a tuple of values + rows_data.append(row_data) asset_list = pd.DataFrame(rows_data, columns=asset_sheet_colnames) + asset_list = asset_list.loc[:, asset_list.columns.notnull()] # Remove entirely empty rows - consider all rows apart from row_color @@ -403,9 +417,10 @@ class DataLoader: asset_list_correction_function = getattr(self, f"correct_{ha_name.lower()}_asset_list") asset_list = asset_list_correction_function(asset_list) - # For HA1, there is an exception in the structure of the data. We don't have any survey or ciga lists, and so + # For HA1 and HA25, there is an exception in the structure of the data. We don't have any survey or ciga + # lists, and so # we can return the asset list now - if ha_name == "HA1": + if ha_name in ["HA1", "HA25"]: return asset_list, pd.DataFrame(), pd.DataFrame() # We check if there is a survey list @@ -1149,7 +1164,8 @@ class DataLoader: "ECO4": "ECO4", "AFFORDABLE WARMTH": "ECO4", "ECO4 A/W": "ECO4", - "ECO4 GBIS (ECO+)": "GBIS" + "ECO4 GBIS (ECO+)": "GBIS", + "ECO4 GBIS (ECO+) JJC UNDER 73m²": "GBIS" } eco_eligibility_map = { @@ -3305,6 +3321,8 @@ def app(): december_figures_filepath = "local_data/ha_data/HA_December_figures.csv" priority_has = ["HA1", "HA6", "HA7", "HA14", "HA16", "HA24", "HA25", "HA39", "HA107"] + # Next HAs to do: 15, 32, 33, + # Then: 28, 41, 38, 10, 14, 20, 48 # Filter down the directories to only the priority HAs directories = [d for d in directories if d.split("/")[2] in priority_has] From 9a69f8741ece9fdb740cb1b9855f53e639637f44 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Sat, 2 Mar 2024 12:54:19 +0000 Subject: [PATCH 353/526] adding HA15 --- .../ha_15_32/ha_analysis_batch_3.py | 32 +++++++++++++++++-- 1 file changed, 30 insertions(+), 2 deletions(-) diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index 4ae881d2..81ed2301 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -165,6 +165,7 @@ class DataLoader: UNMATCHED_CIGA = { "HA6": 117, "HA14": 3, + "HA15": 3, "HA16": 7, "HA24": 12, "HA107": 51, @@ -204,7 +205,15 @@ class DataLoader: asset_list["Address 4"].astype(str).str.lower().str.strip() + ", " + \ asset_list["Postcode"].astype(str).str.lower().str.strip() asset_list["matching_postcode"] = asset_list["Postcode"].astype(str).str.lower().str.strip() - + elif ha_name == "HA15": + asset_list["matching_address"] = ( + asset_list["Address Line 1"].astype(str).str.lower().str.strip() + ", " + + asset_list["Address Line 2"].astype(str).str.lower().str.strip() + ", " + + asset_list["Address Line 3"].astype(str).str.lower().str.strip() + ", " + + asset_list["Address Line 4"].astype(str).str.lower().str.strip() + ", " + + asset_list["Postcode"].astype(str).str.lower().str.strip() + ) + asset_list["matching_postcode"] = asset_list["Postcode"].astype(str).str.lower().str.strip() elif ha_name == "HA39": # Create matching_address by concatenating add_1, add_2, add_3, add_4, add_5, post_code asset_list["matching_address"] = asset_list["add_1"].astype(str).str.lower().str.strip() + ", " + \ @@ -502,6 +511,15 @@ class DataLoader: return asset_list + @staticmethod + def correct_ha15_asset_list(asset_list): + asset_list["matching_postcode"] = np.where( + asset_list["Address Line 1"] == "103 Priory Crescent", + "hp19 9ny", + asset_list["matching_postcode"] + ) + return asset_list + @staticmethod def correct_ha6_survey_list(survey_list): @@ -655,6 +673,14 @@ class DataLoader: return survey_list + @staticmethod + def correct_ha15_survey_list(survey_list): + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace( + "Mary Mac Manus Drive, Milton Keynes", "Mary Mac Manus Drive" + ) + + return survey_list + @staticmethod def correct_ha16_survey_list(survey_list): survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace("/", ", ") @@ -3320,7 +3346,9 @@ def app(): # Grab the December HA figures filepath december_figures_filepath = "local_data/ha_data/HA_December_figures.csv" - priority_has = ["HA1", "HA6", "HA7", "HA14", "HA16", "HA24", "HA25", "HA39", "HA107"] + priority_has = [ + "HA1", "HA6", "HA7", "HA14", "HA15", "HA16", "HA24", "HA25", "HA39", "HA107" + ] # Next HAs to do: 15, 32, 33, # Then: 28, 41, 38, 10, 14, 20, 48 # Filter down the directories to only the priority HAs From dad2fc74c889112cbed0a67578fb013e21b276f9 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Sat, 2 Mar 2024 13:10:28 +0000 Subject: [PATCH 354/526] HA15 checked and added --- etl/eligibility/ha_15_32/ha_analysis_batch_3.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index 81ed2301..1ae05d16 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -1191,12 +1191,15 @@ class DataLoader: "AFFORDABLE WARMTH": "ECO4", "ECO4 A/W": "ECO4", "ECO4 GBIS (ECO+)": "GBIS", - "ECO4 GBIS (ECO+) JJC UNDER 73m²": "GBIS" + "ECO4 GBIS (ECO+) JJC UNDER 73m²": "GBIS", + "ECO4 AFFORDABLE WARMTH": "ECO4" } eco_eligibility_map = { "not eligble": "not eligible", "eco 4(subject to ciga)": "eco4 (subject to ciga)", + "eco4 (subject to ciga/archetype check": "eco4 (subject to ciga)", + "eco4 (subject to archetype check)": "eco4" } ha_facts_and_figures = [] From 9eccfca70dda75ac1c49084bcd63ec3734e3dd23 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Sat, 2 Mar 2024 13:26:54 +0000 Subject: [PATCH 355/526] fixing merge --- .../ha_15_32/ha_analysis_batch_3.py | 67 ++++++++++++++++++- 1 file changed, 65 insertions(+), 2 deletions(-) diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index 1ae05d16..1f99d23c 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -214,6 +214,13 @@ class DataLoader: asset_list["Postcode"].astype(str).str.lower().str.strip() ) asset_list["matching_postcode"] = asset_list["Postcode"].astype(str).str.lower().str.strip() + elif ha_name == "HA32": + asset_list["matching_address"] = ( + asset_list["Dwelling num"].astype(str).str.lower().str.strip() + ", " + + asset_list["Street"].astype(str).str.lower().str.strip() + ", " + + asset_list["Postcode"].astype(str).str.lower().str.strip() + ) + asset_list["matching_postcode"] = asset_list["Postcode"].astype(str).str.lower().str.strip() elif ha_name == "HA39": # Create matching_address by concatenating add_1, add_2, add_3, add_4, add_5, post_code asset_list["matching_address"] = asset_list["add_1"].astype(str).str.lower().str.strip() + ", " + \ @@ -308,6 +315,8 @@ class DataLoader: if ha_name in ["HA107"]: asset_list["HouseNo"] = asset_list["House No"].copy() + elif ha_name == "HA32": + asset_list["HouseNo"] = asset_list["Dwelling num"].copy() else: split_addresses = asset_list['matching_address'].str.split(',', expand=True) house_numbers = split_addresses[0].str.split(' ', expand=True) @@ -520,6 +529,16 @@ class DataLoader: ) return asset_list + @staticmethod + def correct_ha32_asset_list(asset_list): + asset_list["Postcode"] = np.where( + (asset_list["Street"] == "Norton Grove") & (asset_list["Postcode"] == "HU4 6HQ") & ( + asset_list["Dwelling num"] == "7"), + "hu4 6hg", + asset_list["Postcode"] + ) + return asset_list + @staticmethod def correct_ha6_survey_list(survey_list): @@ -845,6 +864,50 @@ class DataLoader: return survey_list + @staticmethod + def correct_ha32_survey_list(survey_list): + survey_list["Street / Block Name"] = np.where( + survey_list["Street / Block Name"] == "Coxwold", + "Coxwold Grove", + survey_list["Street / Block Name"] + ) + + # Update the Barringhton Avenue with their correct spelling: Barrington Avenue + survey_list["Street / Block Name"] = np.where( + survey_list["Street / Block Name"] == "Barringhton Avenue", + "Barrington Avenue", + survey_list["Street / Block Name"] + ) + + # Update how the Rustenburn addresses are listed in the identified addresses + survey_list["Street / Block Name"] = np.where( + survey_list["Street / Block Name"] == "Rustenburg", + "Rustenburg Street", + survey_list["Street / Block Name"] + ) + + # Update how the MALIN LODGE, RONALDSWAY CLOSE addresses are listed in the identified addresses + survey_list["Street / Block Name"] = np.where( + survey_list["Street / Block Name"] == "MALIN LODGE, RONALDSWAY CLOSE", + "Malin Lodge", + survey_list["Street / Block Name"] + ) + + # Update how the Feroes Close are listed in the identified addresses + survey_list["Street / Block Name"] = np.where( + survey_list["Street / Block Name"] == "Feroes Close", + "Faroes Close", + survey_list["Street / Block Name"] + ) + + survey_list["Street / Block Name"] = np.where( + survey_list["Street / Block Name"] == 'FORESTER WAY', + 'FORESTER WAY', + survey_list["Street / Block Name"] + ) + + return survey_list + @staticmethod def correct_ha107_survey_list(survey_list): # Replace Front Street, East Stockham with Front Street, East Stockwith @@ -3350,9 +3413,9 @@ def app(): december_figures_filepath = "local_data/ha_data/HA_December_figures.csv" priority_has = [ - "HA1", "HA6", "HA7", "HA14", "HA15", "HA16", "HA24", "HA25", "HA39", "HA107" + "HA1", "HA6", "HA7", "HA14", "HA15", "HA16", "HA24", "HA25", "HA32", "HA39", "HA107" ] - # Next HAs to do: 15, 32, 33, + # Next HAs to do: 15[DONE], 32, 33, # Then: 28, 41, 38, 10, 14, 20, 48 # Filter down the directories to only the priority HAs directories = [d for d in directories if d.split("/")[2] in priority_has] From 2828b005cbb3676216827fcb5dc70630f8ecb393 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Sun, 3 Mar 2024 15:06:31 +0000 Subject: [PATCH 356/526] fixing HA32 merge --- etl/eligibility/ha_15_32/ha_analysis_batch_3.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index 1f99d23c..c84a2c5c 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -906,6 +906,19 @@ class DataLoader: survey_list["Street / Block Name"] ) + survey_list["Street / Block Name"] = np.where( + survey_list["Street / Block Name"] == '6 Zeigfeld', + 'Ziegfeld Court', + survey_list["Street / Block Name"] + ) + + # Malin Lodge, Ronaldsway Close + survey_list["Street / Block Name"] = np.where( + survey_list["Street / Block Name"] == 'Malin Lodge, Ronaldsway Close', + 'Malin Lodge', + survey_list["Street / Block Name"] + ) + return survey_list @staticmethod From 811f141c45b1fcfa52c9f1d685690389df55f531 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Sun, 3 Mar 2024 15:35:49 +0000 Subject: [PATCH 357/526] started working on ha33 but paused --- etl/eligibility/ha_15_32/ha_analysis_batch_3.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index c84a2c5c..9bd04884 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -221,6 +221,12 @@ class DataLoader: asset_list["Postcode"].astype(str).str.lower().str.strip() ) asset_list["matching_postcode"] = asset_list["Postcode"].astype(str).str.lower().str.strip() + elif ha_name == "HA33": + asset_list["matching_address"] = ( + asset_list["ADDRESS"].astype(str).str.lower().str.strip() + ", " + + asset_list["POST CODE"].astype(str).str.lower().str.strip() + ) + asset_list["matching_postcode"] = asset_list["POST CODE"].astype(str).str.lower().str.strip() elif ha_name == "HA39": # Create matching_address by concatenating add_1, add_2, add_3, add_4, add_5, post_code asset_list["matching_address"] = asset_list["add_1"].astype(str).str.lower().str.strip() + ", " + \ @@ -3426,9 +3432,9 @@ def app(): december_figures_filepath = "local_data/ha_data/HA_December_figures.csv" priority_has = [ - "HA1", "HA6", "HA7", "HA14", "HA15", "HA16", "HA24", "HA25", "HA32", "HA39", "HA107" + "HA1", "HA6", "HA7", "HA14", "HA15", "HA16", "HA24", "HA25", "HA28", "HA32", "HA39", "HA107", ] - # Next HAs to do: 15[DONE], 32, 33, + # Next HAs to do: 15[DONE], 32 [DONE], 33 [Input format is 4 parts and no eco4 jobs identified - come back on this], # Then: 28, 41, 38, 10, 14, 20, 48 # Filter down the directories to only the priority HAs directories = [d for d in directories if d.split("/")[2] in priority_has] From cb39590f618e7c6ff382e76cc461792101a9741a Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Sun, 3 Mar 2024 15:48:05 +0000 Subject: [PATCH 358/526] debugging matching for HA28 --- .../ha_15_32/ha_analysis_batch_3.py | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index 9bd04884..7481724b 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -214,6 +214,13 @@ class DataLoader: asset_list["Postcode"].astype(str).str.lower().str.strip() ) asset_list["matching_postcode"] = asset_list["Postcode"].astype(str).str.lower().str.strip() + elif ha_name == "HA28": + asset_list["matching_address"] = ( + asset_list["House Number"].astype(str).str.lower().str.strip() + ", " + + asset_list["Street 1"].astype(str).str.lower().str.strip() + ", " + + asset_list["Postcode"].astype(str).str.lower().str.strip() + ) + asset_list["matching_postcode"] = asset_list["Postcode"].astype(str).str.lower().str.strip() elif ha_name == "HA32": asset_list["matching_address"] = ( asset_list["Dwelling num"].astype(str).str.lower().str.strip() + ", " + @@ -323,6 +330,8 @@ class DataLoader: asset_list["HouseNo"] = asset_list["House No"].copy() elif ha_name == "HA32": asset_list["HouseNo"] = asset_list["Dwelling num"].copy() + elif ha_name == "HA28": + asset_list["HouseNo"] = asset_list["House Number"].copy() else: split_addresses = asset_list['matching_address'].str.split(',', expand=True) house_numbers = split_addresses[0].str.split(' ', expand=True) @@ -371,6 +380,8 @@ class DataLoader: def get_asset_sheetname(workbook): if "Asset List" in workbook.sheetnames: return "Asset List" + elif "Asset list" in workbook.sheetnames: + return "Asset list" elif "Asset" in workbook.sheetnames and "Assets" not in workbook.sheetnames: return "Asset" elif "Decent Homes Stock" in workbook.sheetnames: @@ -394,6 +405,8 @@ class DataLoader: def get_survey_sheetname(workbook): if "ECO Surveys" in workbook.sheetnames: return "ECO Surveys" + elif "ECO Survey" in workbook.sheetnames: + return "ECO Survey" else: return "ECO surveys" @@ -870,6 +883,12 @@ class DataLoader: return survey_list + @staticmethod + def correct_ha28_survey_list(survey_list): + # Rename the "No" column to "No." to align with the other survey sheets + survey_list = survey_list.rename(columns={"NO ": "NO."}) + return survey_list + @staticmethod def correct_ha32_survey_list(survey_list): survey_list["Street / Block Name"] = np.where( @@ -1027,6 +1046,10 @@ class DataLoader: asset_list["matching_address"].str.contains(row["Street / Block Name"].lower().strip()) ].copy() + if str(house_number) not in df["matching_address"].values: + if "flat" in str(house_number): + house_number = house_number.split("flat")[1].strip() + df = df[df["matching_address"].str.contains(str(house_number))] if df.empty: From 0909b811ee7aea834784f0deb947308593ce7cdd Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Sun, 3 Mar 2024 15:57:49 +0000 Subject: [PATCH 359/526] fixed matching for ha28 --- .../ha_15_32/ha_analysis_batch_3.py | 23 ++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index 7481724b..b954a651 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -887,6 +887,27 @@ class DataLoader: def correct_ha28_survey_list(survey_list): # Rename the "No" column to "No." to align with the other survey sheets survey_list = survey_list.rename(columns={"NO ": "NO."}) + + survey_list["Post Code"] = np.where( + survey_list["Post Code"] == "ME75HA", + "ME7 5HA", + survey_list["Post Code"] + ) + + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace( + "ANDREW MANOR/BRITTON ST", "ANDREW MANOR" + ) + + survey_list["Post Code"] = np.where( + survey_list["Post Code"] == "ME75TW", + "ME7 5TW", + survey_list["Post Code"] + ) + + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace( + "ST MARKS HOUSE/SAXON ST", "ST MARKS HOUSE" + ) + return survey_list @staticmethod @@ -1046,7 +1067,7 @@ class DataLoader: asset_list["matching_address"].str.contains(row["Street / Block Name"].lower().strip()) ].copy() - if str(house_number) not in df["matching_address"].values: + if not any(df["matching_address"].str.contains(str(house_number))): if "flat" in str(house_number): house_number = house_number.split("flat")[1].strip() From 87c77e53c03ec83286718d6ef6bb5593466a48b1 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Sun, 3 Mar 2024 16:22:42 +0000 Subject: [PATCH 360/526] handing facts and figures for ha28 --- .../ha_15_32/ha_analysis_batch_3.py | 92 +++++++++++-------- 1 file changed, 53 insertions(+), 39 deletions(-) diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index b954a651..3ded09ba 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -398,6 +398,8 @@ class DataLoader: return "CIGA Checks" elif "CIGA checks" in workbook.sheetnames: return "CIGA checks" + elif "CIGA check" in workbook.sheetnames: + return "CIGA check" else: return "CIGA" @@ -1318,14 +1320,16 @@ class DataLoader: "ECO4 A/W": "ECO4", "ECO4 GBIS (ECO+)": "GBIS", "ECO4 GBIS (ECO+) JJC UNDER 73m²": "GBIS", - "ECO4 AFFORDABLE WARMTH": "ECO4" + "ECO4 AFFORDABLE WARMTH": "ECO4", + "Affordable Warmth": "ECO4" } eco_eligibility_map = { "not eligble": "not eligible", "eco 4(subject to ciga)": "eco4 (subject to ciga)", "eco4 (subject to ciga/archetype check": "eco4 (subject to ciga)", - "eco4 (subject to archetype check)": "eco4" + "eco4 (subject to archetype check)": "eco4", + "eco4 (subject to ciga/archetype)": "eco4 (subject to ciga)", } ha_facts_and_figures = [] @@ -1384,46 +1388,56 @@ class DataLoader: sales_report = {} if not survey_list.empty: scheme_column = survey_list.columns[0] - # We clean up the survey list installation or cancelled - survey_list["installed_or_cancelled_clean"] = survey_list["INSTALLED OR CANCELLED"].str.lower() - # Remove all punctuation - survey_list["installed_or_cancelled_clean"] = survey_list["installed_or_cancelled_clean"].str.replace( - r'[^\w\s]', '', regex=True - ) - # Remove double spaces - survey_list["installed_or_cancelled_clean"] = survey_list["installed_or_cancelled_clean"].str.replace( - r'\s+', ' ', regex=True - ) - # Remove trailing spaces - survey_list["installed_or_cancelled_clean"] = survey_list["installed_or_cancelled_clean"].str.strip() - # Remap the values in the scheme column survey_list[scheme_column] = survey_list[scheme_column].replace(scheme_map) + # We clean up the survey list installation or cancelled + if "INSTALLED OR CANCELLED" in survey_list.columns: + survey_list["installed_or_cancelled_clean"] = survey_list["INSTALLED OR CANCELLED"].str.lower() + # Remove all punctuation + survey_list["installed_or_cancelled_clean"] = survey_list[ + "installed_or_cancelled_clean"].str.replace( + r'[^\w\s]', '', regex=True + ) + # Remove double spaces + survey_list["installed_or_cancelled_clean"] = survey_list[ + "installed_or_cancelled_clean"].str.replace( + r'\s+', ' ', regex=True + ) + # Remove trailing spaces + survey_list["installed_or_cancelled_clean"] = survey_list[ + "installed_or_cancelled_clean"].str.strip() - survey_list["installation_status"] = None - survey_list["installation_status"] = np.where( - survey_list["installed_or_cancelled_clean"].isin(["installed", "installed see notes"]), - "installed", - survey_list["installation_status"] - ) - survey_list["installation_status"] = np.where( - survey_list["installed_or_cancelled_clean"].isin(["cancelled"]), - "cancelled", - survey_list["installation_status"] - ) - # Find partial installations - survey_list["installation_status"] = np.where( - survey_list["installed_or_cancelled_clean"].str.contains("still to be installed"), - "partially installed", - survey_list["installation_status"] - ) - # Find partial cancellations - # TODO: We might have more indications of partial cancellations - survey_list["installation_status"] = np.where( - survey_list["installed_or_cancelled_clean"].isin(["loft cancelled"]), - "partially cancelled", - survey_list["installation_status"] - ) + survey_list["installation_status"] = None + survey_list["installation_status"] = np.where( + survey_list["installed_or_cancelled_clean"].isin(["installed", "installed see notes"]), + "installed", + survey_list["installation_status"] + ) + survey_list["installation_status"] = np.where( + survey_list["installed_or_cancelled_clean"].isin(["cancelled"]), + "cancelled", + survey_list["installation_status"] + ) + # Find partial installations + survey_list["installation_status"] = np.where( + survey_list["installed_or_cancelled_clean"].str.contains("still to be installed"), + "partially installed", + survey_list["installation_status"] + ) + # Find partial cancellations + # TODO: We might have more indications of partial cancellations + survey_list["installation_status"] = np.where( + survey_list["installed_or_cancelled_clean"].isin(["loft cancelled"]), + "partially cancelled", + survey_list["installation_status"] + ) + else: + # We have some examples, e.g. HA28, where we do not have the installed or cancelled column + survey_list["installation_status"] = np.where( + survey_list['INSTALL/ CANCELLATION DATE'].str.lower().str.contains("cancelled"), + "cancelled", + "installed", + ) # Finally, for other cases, we set the status to "in progress" survey_list["installation_status"] = survey_list["installation_status"].fillna("in progress") From f8948ff60f9e00d9501bd2f71f4269152cf3ab51 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Sun, 3 Mar 2024 16:47:10 +0000 Subject: [PATCH 361/526] ha38 wip: --- .../ha_15_32/ha_analysis_batch_3.py | 20 +++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index 3ded09ba..4af7d9b9 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -234,6 +234,13 @@ class DataLoader: asset_list["POST CODE"].astype(str).str.lower().str.strip() ) asset_list["matching_postcode"] = asset_list["POST CODE"].astype(str).str.lower().str.strip() + elif ha_name == "HA38": + asset_list["matching_address"] = asset_list["House_Number"].astype(str).str.lower().str.strip() + ", " + \ + asset_list["Address_Line_1"].astype(str).str.lower().str.strip() + ", " + \ + asset_list["Address_Line_2"].astype(str).str.lower().str.strip() + ", " + \ + asset_list["Address_Line_3"].astype(str).str.lower().str.strip() + ", " + \ + asset_list["Postcode"].astype(str).str.lower().str.strip() + asset_list["matching_postcode"] = asset_list["Postcode"].astype(str).str.lower().str.strip() elif ha_name == "HA39": # Create matching_address by concatenating add_1, add_2, add_3, add_4, add_5, post_code asset_list["matching_address"] = asset_list["add_1"].astype(str).str.lower().str.strip() + ", " + \ @@ -332,6 +339,8 @@ class DataLoader: asset_list["HouseNo"] = asset_list["Dwelling num"].copy() elif ha_name == "HA28": asset_list["HouseNo"] = asset_list["House Number"].copy() + elif ha_name == "HA38": + asset_list["HouseNo"] = asset_list["House_Number"].copy() else: split_addresses = asset_list['matching_address'].str.split(',', expand=True) house_numbers = split_addresses[0].str.split(' ', expand=True) @@ -912,6 +921,12 @@ class DataLoader: return survey_list + @staticmethod + def correct_ha38_survey_list(survey_list): + # Rename the "No" column to "No." to align with the other survey sheets + survey_list = survey_list.rename(columns={"NO ": "NO."}) + return survey_list + @staticmethod def correct_ha32_survey_list(survey_list): survey_list["Street / Block Name"] = np.where( @@ -3490,10 +3505,11 @@ def app(): december_figures_filepath = "local_data/ha_data/HA_December_figures.csv" priority_has = [ - "HA1", "HA6", "HA7", "HA14", "HA15", "HA16", "HA24", "HA25", "HA28", "HA32", "HA39", "HA107", + "HA1", "HA6", "HA7", "HA14", "HA15", "HA16", "HA24", "HA25", "HA28", "HA32", "HA38", "HA39", "HA107", ] # Next HAs to do: 15[DONE], 32 [DONE], 33 [Input format is 4 parts and no eco4 jobs identified - come back on this], - # Then: 28, 41, 38, 10, 14, 20, 48 + # Then: 28 [DONE], + # 38, 41, 10, 14, 20, 48 # Filter down the directories to only the priority HAs directories = [d for d in directories if d.split("/")[2] in priority_has] From abe0e627dbe1c89209de2f867c2abe4eef419d2e Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Wed, 6 Mar 2024 10:24:42 +0000 Subject: [PATCH 362/526] Fixing bug with gbis remaining counts --- .../ha_15_32/ha_analysis_batch_3.py | 266 ++++++++++++------ 1 file changed, 184 insertions(+), 82 deletions(-) diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index 4af7d9b9..6d1a3b45 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -424,6 +424,12 @@ class DataLoader: def load_asset_list(self, filepath, ha_name): workbook = openpyxl.load_workbook(filepath) asset_sheetname = self.get_asset_sheetname(workbook) + + # TODO: TEMP + sheetnames_lower = [x.lower() for x in workbook.sheetnames] + if any("eco3" in x for x in sheetnames_lower): + raise Exception("REMOVE ME") + asset_sheet = workbook[asset_sheetname] asset_sheet_colnames = [cell.value for cell in asset_sheet[1]] if ha_name == "HA25": @@ -569,6 +575,34 @@ class DataLoader: ) return asset_list + @staticmethod + def correct_ha38_asset_list(asset_list): + # For Kingsford court, the house number is at the end of the address + def rearrange_address_if_flat(address): + if '/flat' in address.lower(): + parts = address.split('/flat', 1) + return f"FLAT{parts[1]}, {parts[0]}" + return address + + def extract_house_no_if_flat(address): + if '/flat' in address.lower(): + # Attempt to extract the house number following "/flat" + try: + house_no = address.split('/flat ')[1].split(' ')[0] + # Remove trailing comma + house_no = house_no.replace(",", "") + except IndexError: + house_no = None + return house_no + return None + + asset_list['ExtractedHouseNo'] = asset_list['matching_address'].apply(extract_house_no_if_flat) + asset_list.loc[asset_list['ExtractedHouseNo'].notnull(), 'HouseNo'] = asset_list['ExtractedHouseNo'] + asset_list['matching_address'] = asset_list['matching_address'].apply(rearrange_address_if_flat) + # We then need to + + return asset_list + @staticmethod def correct_ha6_survey_list(survey_list): @@ -925,6 +959,11 @@ class DataLoader: def correct_ha38_survey_list(survey_list): # Rename the "No" column to "No." to align with the other survey sheets survey_list = survey_list.rename(columns={"NO ": "NO."}) + + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace( + 'Kingsford Court, Coombe Valley Road', 'Kingsford Court' + ) + return survey_list @staticmethod @@ -1345,6 +1384,7 @@ class DataLoader: "eco4 (subject to ciga/archetype check": "eco4 (subject to ciga)", "eco4 (subject to archetype check)": "eco4", "eco4 (subject to ciga/archetype)": "eco4 (subject to ciga)", + "eco4 (subject to ciga)": "eco4 (subject to ciga)" } ha_facts_and_figures = [] @@ -2943,8 +2983,8 @@ def forecast_remaining_sales(loader): median_ciga_success_rate = ciga_passrates["# CIGA passed"].sum() / ciga_passrates["# CIGA dependent"].sum() # 3) Calculate the conversion rate of an ECO4 and a GBISjob, that doesn't need ciga, to install - eco4_ciga_independent_passrates = [] - gbis_ciga_independent_passrates = [] + eco4_ciga_independent_to_install = [] + gbis_to_install = [] for ha_name, input_data in loader.data.items(): asset_list = input_data["asset_list"].copy() survey_list = input_data["survey_list"].copy() @@ -2973,7 +3013,7 @@ def forecast_remaining_sales(loader): ) ] - eco4_ciga_independent_passrates.append( + eco4_ciga_independent_to_install.append( { "Ha Name": ha_name, "# ECO4 at install stage": typical_eco4_installed.shape[0], @@ -2993,7 +3033,7 @@ def forecast_remaining_sales(loader): ) ] - gbis_ciga_independent_passrates.append( + gbis_to_install.append( { "Ha Name": ha_name, "# GBIS at install stage": typical_gbis_installed.shape[0], @@ -3001,33 +3041,33 @@ def forecast_remaining_sales(loader): } ) - eco4_ciga_independent_passrates = pd.DataFrame(eco4_ciga_independent_passrates) - gbis_ciga_independent_passrates = pd.DataFrame(gbis_ciga_independent_passrates) + eco4_ciga_independent_to_install = pd.DataFrame(eco4_ciga_independent_to_install) + gbis_to_install = pd.DataFrame(gbis_to_install) - eco4_ciga_independent_passrates["conversion"] = ( - eco4_ciga_independent_passrates["# ECO4 successfully installed"] / - eco4_ciga_independent_passrates["# ECO4 at install stage"] + eco4_ciga_independent_to_install["conversion"] = ( + eco4_ciga_independent_to_install["# ECO4 successfully installed"] / + eco4_ciga_independent_to_install["# ECO4 at install stage"] ) - eco4_ciga_independent_passrates_clipped = eco4_ciga_independent_passrates[ - eco4_ciga_independent_passrates["conversion"] >= sales_conversion_lower_bound + eco4_ciga_independent_to_install_clipped = eco4_ciga_independent_to_install[ + eco4_ciga_independent_to_install["conversion"] >= sales_conversion_lower_bound ] - gbis_ciga_independent_passrates["conversion"] = ( - gbis_ciga_independent_passrates["# GBIS successfully installed"] / - gbis_ciga_independent_passrates["# GBIS at install stage"] + gbis_to_install["conversion"] = ( + gbis_to_install["# GBIS successfully installed"] / + gbis_to_install["# GBIS at install stage"] ) - gbis_ciga_independent_passrates_clipped = gbis_ciga_independent_passrates[ - gbis_ciga_independent_passrates["conversion"] >= sales_conversion_lower_bound + gbis_to_install_clipped = gbis_to_install[ + gbis_to_install["conversion"] >= sales_conversion_lower_bound ] median_eco4_to_install = ( - eco4_ciga_independent_passrates_clipped["# ECO4 successfully installed"].sum() / - eco4_ciga_independent_passrates_clipped["# ECO4 at install stage"].sum() + eco4_ciga_independent_to_install_clipped["# ECO4 successfully installed"].sum() / + eco4_ciga_independent_to_install_clipped["# ECO4 at install stage"].sum() ) median_gbis_to_install = ( - gbis_ciga_independent_passrates_clipped["# GBIS successfully installed"].sum() / - gbis_ciga_independent_passrates_clipped["# GBIS at install stage"].sum() + gbis_to_install_clipped["# GBIS successfully installed"].sum() / + gbis_to_install_clipped["# GBIS at install stage"].sum() ) # Produce the final output @@ -3044,29 +3084,26 @@ def forecast_remaining_sales(loader): results = [] for ha_name, input_data in loader.data.items(): - # Original warmfront figures - ECO4 original_warmfront_estimates = december_figures[december_figures["HA Name"] == ha_name] original_warmfront_eco4 = original_warmfront_estimates["ECO4"].values[0] original_warmfront_remaining_eco4 = original_warmfront_estimates["ECO4 remaining"].values[0] + original_warmfront_sold_eco4 = ( + original_warmfront_estimates["No. of Tech surveys complete - Eco 4"].values[0] * eco4_rate + ) - # original_warmfront_eco4_revenue = ( - # original_warmfront_remaining_eco4 * eco4_rate + - # (original_warmfront_eco4 - original_warmfront_remaining_eco4) * old_eco4_rate - # ) original_warmfront_eco4_revenue = original_warmfront_eco4 * eco4_rate original_warmfront_remaining_eco4_revenue = original_warmfront_remaining_eco4 * eco4_rate + original_warmfront_sold_gbis = ( + original_warmfront_estimates["No. of Tech surveys complete - GBIS"].values[0] * gbis_rate + ) # Original warmfront figures - GBIS original_warmfront_gbis = original_warmfront_estimates["GBIS"].values[0] original_warmfront_remaining_gbis = original_warmfront_estimates["GBIS remaining"].values[0] - # original_warmfront_gbis_revenue = ( - # original_warmfront_remaining_gbis * gbis_rate + - # (original_warmfront_gbis - original_warmfront_remaining_gbis) * old_gbis_rate - # ) original_warmfront_gbis_revenue = ( original_warmfront_gbis * gbis_rate ) @@ -3123,7 +3160,7 @@ def forecast_remaining_sales(loader): # We also need the ha ciga passed to install success rate ha_ciga_pass_to_sale = converted_ciga_jobs[converted_ciga_jobs["HA Name"] == ha_name] - if not ha_ciga_pass_to_sale.empty: + if not ha_ciga_pass_to_sale.empty and ha_ciga_pass_to_sale["# Ciga dependent at installation"].values[0] != 0: ha_ciga_pass_to_sale_rate = ( ha_ciga_pass_to_sale["# Ciga dependent successfully installed"].values[0] / ha_ciga_pass_to_sale["# Ciga dependent at installation"].values[0] @@ -3131,7 +3168,9 @@ def forecast_remaining_sales(loader): else: ha_ciga_pass_to_sale_rate = median_ciga_pass_to_install - ha_eco4_to_sale = eco4_ciga_independent_passrates[eco4_ciga_independent_passrates["Ha Name"] == ha_name] + ha_eco4_to_sale = eco4_ciga_independent_to_install_clipped[ + eco4_ciga_independent_to_install_clipped["Ha Name"] == ha_name + ] if not ha_eco4_to_sale.empty: ha_eco4_to_sale_rate = ( ha_eco4_to_sale['# ECO4 successfully installed'].values[0] / @@ -3149,12 +3188,6 @@ def forecast_remaining_sales(loader): eco4_rate=eco4_rate ) - # Calculate the delta compared to Warmfront's original estimate - eco4_delta_vs_original_estimate = ( - eco4_post_ciga_total_results[ - "ECO4 - post CIGA - #"] - original_warmfront_eco4 - ) / original_warmfront_eco4 - eco4_post_ciga_remaining_results = calculate_eco4_post_ciga( eligiblity_counts=eligiblity_counts_remaining, input_data=input_data, @@ -3164,10 +3197,18 @@ def forecast_remaining_sales(loader): eco4_rate=eco4_rate ) + # Calculate the delta compared to Warmfront's original remaining + if original_warmfront_remaining_eco4 == 0: + eco4_delta_vs_original_estimate_remaining = eco4_post_ciga_remaining_results["ECO4 - post CIGA - #"] + else: + eco4_delta_vs_original_estimate_remaining = ((eco4_post_ciga_remaining_results["ECO4 - post CIGA - #"] - + original_warmfront_remaining_eco4) / + original_warmfront_remaining_eco4) + # GBIS Figures # Estimate the GBIS conversion rate - ha_gbis_sale_conversion = gbis_ciga_independent_passrates[ - gbis_ciga_independent_passrates["Ha Name"] == ha_name + ha_gbis_sale_conversion = gbis_to_install_clipped[ + gbis_to_install_clipped["Ha Name"] == ha_name ] if not ha_gbis_sale_conversion.empty: @@ -3178,6 +3219,9 @@ def forecast_remaining_sales(loader): else: ha_gbis_sale_conversion = median_gbis_to_install + asset_list["ECO Eligibility"].value_counts() + asset_list_remaining["ECO Eligibility"].value_counts() + gbis_total = eligiblity_counts[ eligiblity_counts["ECO Eligibility"] == "gbis" ]["count"].sum() @@ -3185,18 +3229,59 @@ def forecast_remaining_sales(loader): gbis_total_revenue = int(gbis_total * gbis_rate) gbis_remaining = eligiblity_counts_remaining[ - eligiblity_counts["ECO Eligibility"] == "gbis" + eligiblity_counts_remaining["ECO Eligibility"] == "gbis" ]["count"].sum() gbis_remaining = int(np.round(gbis_remaining * ha_gbis_sale_conversion)) gbis_remaining_revenue = int(gbis_remaining * gbis_rate) # GBIS delta - if original_warmfront_gbis == 0: - gbis_delta_vs_original_estimate = gbis_total + if original_warmfront_remaining_gbis == 0: + gbis_delta_vs_original_estimate_remaining = gbis_remaining else: - gbis_delta_vs_original_estimate = ( - gbis_total - original_warmfront_gbis - ) / original_warmfront_gbis + gbis_delta_vs_original_estimate_remaining = ( + (gbis_remaining - original_warmfront_remaining_gbis) / original_warmfront_remaining_gbis + ) + + # Current sales figures + # For any sales surveys that are complete, that could still cancel, we apply a conversion rate + eco4_actually_sold = 0 + gbis_actually_sold = 0 + if not survey_list.empty: + surveys_with_eligibility = survey_list.merge( + asset_list[["asset_list_row_id", "ECO Eligibility"]], + how="left", on="asset_list_row_id" + ) + completed_eco4_sales = surveys_with_eligibility[ + surveys_with_eligibility["installation_status"] == "ECO4 - installed" + ] + incomplete_eco4_sales = surveys_with_eligibility[ + (surveys_with_eligibility["installation_status"] == "ECO4 - in progress") & + (~surveys_with_eligibility["ECO Eligibility"].isin( + ["eco4 - passed ciga"]) + ) + ] + incomplete_eco4_sales_ciga = surveys_with_eligibility[ + (surveys_with_eligibility["installation_status"] == "ECO4 - in progress") & + (surveys_with_eligibility["ECO Eligibility"].isin( + ["eco4 - passed ciga"]) + ) + ] + + eco4_actually_sold = (completed_eco4_sales.shape[0] * eco4_rate) + ( + incomplete_eco4_sales.shape[0] * ha_eco4_to_sale_rate + + incomplete_eco4_sales_ciga.shape[0] * ha_ciga_pass_to_sale_rate + ) * eco4_rate + + completed_gbis_sales = surveys_with_eligibility[ + surveys_with_eligibility["installation_status"] == "GBIS - installed" + ] + incomplete_gbis_sales = surveys_with_eligibility[ + (surveys_with_eligibility["installation_status"] == "GBIS - in progress") + ] + + gbis_actually_sold = completed_gbis_sales.shape[0] * gbis_rate + ( + incomplete_gbis_sales.shape[0] * ha_gbis_sale_conversion * gbis_rate + ) to_append = { ("", "", "", "HA Name"): ha_name, @@ -3204,29 +3289,33 @@ def forecast_remaining_sales(loader): ("", "Original Warmfront estimate", "Total - #", "ECO4 - November"): original_warmfront_eco4, ("ECO4 original", "", "Remaining - #", ""): original_warmfront_remaining_eco4, ("ECO4 original", "", "Total - £", ""): original_warmfront_eco4_revenue, + ("ECO4 original", "", "Sold - £", ""): original_warmfront_sold_eco4, ("ECO4 original", "", "Remaining - £", ""): original_warmfront_remaining_eco4_revenue, # GBIS - original warmfront figures ("", "Original Warmfront estimate", "Total - #", "GBIS - November"): original_warmfront_gbis, ("GBIS original", "", "Remaining - #", ""): original_warmfront_gbis, ("GBIS original", "", "Total - £", ""): original_warmfront_gbis_revenue, + ("GBIS original", "", "Sold - £", ""): original_warmfront_sold_gbis, ("GBIS original", "", "Remaining - £", ""): original_warmfront_remaining_gbis_revenue, # ECO4 - asset list, pre-ciga ("", "Warmfront post code list", "Total #", "ECO4 total (pre-ciga)"): eco4_pre_ciga, ("ECO4 pre-ciga", "", "Remaining - #", ""): eco4_pre_ciga_remaining, ("ECO4 pre-ciga", "", "Total - £", ""): eco4_pre_ciga_revenue, + ("ECO4 pre-ciga", "", "Sold - £", ""): eco4_actually_sold, ("ECO4 pre-ciga", "", "Remaining - £", ""): eco4_pre_ciga_remaining_revenue, # ECO4 - asset list, post ciga, total - ("ECO4 post-ciga", "", "Estimated total eligible - #", "ECO4 total (post-ciga)"): + ("ECO4 post-ciga", "", "Estimated total eligible - #", "ECO4 total"): eco4_post_ciga_total_results[ "ECO4 - post CIGA - #"], ("ECO4 post-ciga", "", "Estimated total eligible - £", ""): eco4_post_ciga_total_results[ "ECO4 - post CIGA - £"], - ("ECO4 post-ciga", "", "Delta vs original estimate - %", ""): eco4_delta_vs_original_estimate, # ECO4 - asset list, post ciga, remaining ("ECO4 post-ciga", "", "Estimated remaining eligible - #", ""): eco4_post_ciga_remaining_results[ "ECO4 - post CIGA - #"], ("ECO4 post-ciga", "", "Estimated remaining eligible - £", ""): eco4_post_ciga_remaining_results[ "ECO4 - post CIGA - £"], + ("ECO4 post-ciga", "", "Delta vs original estimate, remaining - %", + ""): eco4_delta_vs_original_estimate_remaining, ("ECO4 post-ciga", "", "Of which - confirmed (post CIGA or no CIGA required) - #", ""): eco4_post_ciga_remaining_results["Of which confirmed - #"], ("ECO4 post-ciga", "", "Of which - confirmed (post CIGA or no CIGA required) - £", ""): @@ -3257,13 +3346,15 @@ def forecast_remaining_sales(loader): # GBIS postcode list ("GBIS Postcode list", "Warmfront post code list", "Total - #", "GBIS total"): gbis_total, ("GBIS Postcode list", "Warmfront post code list", "Total - £", "GBIS total"): gbis_total_revenue, - ("GBIS Postcode list", "", "Delta vs original estimate - %", ""): gbis_delta_vs_original_estimate, + ("GBIS Postcode list", "Warmfront post code list", "Sold - £", "GBIS total"): gbis_actually_sold, ("GBIS Postcode list", "Warmfront post code list", "Remaining - #", "GBIS total"): gbis_remaining, ("GBIS Postcode list", "Warmfront post code list", "Remaining - £", "GBIS total"): gbis_remaining_revenue, + ("GBIS Postcode list", "", "Delta vs original estimate, remaining - %", ""): + gbis_delta_vs_original_estimate_remaining, } # Make sure nothing is forgotten due to duplicate multi-index keys - if len(to_append) != 33: + if len(to_append) != 37: raise ValueError("Something went wrong") results.append(to_append) @@ -3275,26 +3366,26 @@ def forecast_remaining_sales(loader): if col == ('', '', '', 'HA Name'): totals_row[col] = "Total" elif col in [ - ("ECO4 post-ciga", "", "Delta vs original estimate - %", ""), - ("GBIS Postcode list", "", "Delta vs original estimate - %", "") + ("ECO4 post-ciga", "", "Delta vs original estimate, remaining - %", ""), + ("GBIS Postcode list", "", "Delta vs original estimate, remaining - %", "") ]: totals_row[col] = None else: totals_row[col] = results[col].sum() # For the delta columns, we calculate the delta on the totals - totals_row[("ECO4 post-ciga", "", "Delta vs original estimate - %", "")] = ( + totals_row[("ECO4 post-ciga", "", "Delta vs original estimate, remaining - %", "")] = ( ( - totals_row[("ECO4 post-ciga", "", "Estimated total eligible - #", "ECO4 total (post-ciga)")] - - totals_row[("", "Original Warmfront estimate", "Total - #", "ECO4 - November")] - ) / totals_row[("", "Original Warmfront estimate", "Total - #", "ECO4 - November")] + totals_row[("ECO4 post-ciga", "", "Estimated remaining eligible - #", "")] - + totals_row[("ECO4 original", "", "Remaining - #", "")] + ) / totals_row[("ECO4 original", "", "Remaining - #", "")] ) - totals_row[("GBIS Postcode list", "", "Delta vs original estimate - %", "")] = ( + totals_row[("GBIS Postcode list", "", "Delta vs original estimate, remaining - %", "")] = ( ( - totals_row[("GBIS Postcode list", "Warmfront post code list", "Total - #", "GBIS total")] - - totals_row[("", "Original Warmfront estimate", "Total - #", "GBIS - November")] - ) / totals_row[("", "Original Warmfront estimate", "Total - #", "GBIS - November")] + totals_row[("GBIS Postcode list", "Warmfront post code list", "Remaining - #", "GBIS total")] - + totals_row[("GBIS original", "", "Remaining - #", "")] + ) / totals_row[("GBIS original", "", "Remaining - #", "")] ) blank_row = pd.DataFrame([{col: "" for col in results.columns}]) @@ -3342,6 +3433,15 @@ def forecast_remaining_sales(loader): ) headline_total_delta = round(headline_total_delta, 1) + headline_eco4_sold_since_november = ( + totals_row[('ECO4 pre-ciga', '', 'Sold - £', '')] - totals_row[('ECO4 original', '', 'Sold - £', '')] + ) + + headline_gbis_sold_since_november = ( + totals_row[("GBIS Postcode list", "Warmfront post code list", "Sold - £", "GBIS total")] - + totals_row[('GBIS original', '', 'Sold - £', '')] + ) + headlines = [ { ("", "", "", "HA Name"): "Headlines", @@ -3358,16 +3458,22 @@ def forecast_remaining_sales(loader): "ECO4 - November"): headline_eco4_original_remaining_revenue }, { - ("", "", "", "HA Name"): "ECO4 Remaining - postcode list - #", + ("", "", "", "HA Name"): "ECO4 Sold since November - £", + ( + "", "Original Warmfront estimate", "Total - #", + "ECO4 - November"): headline_eco4_sold_since_november + }, + { + ("", "", "", "HA Name"): "ECO4 Remaining - postcode list (post CIGA) - #", ("", "Original Warmfront estimate", "Total - #", "ECO4 - November"): headline_eco4_postcode_list_remaining }, { - ("", "", "", "HA Name"): "ECO4 Remaining - postcode list - £", + ("", "", "", "HA Name"): "ECO4 Remaining - postcode list (post CIGA) - £", ("", "Original Warmfront estimate", "Total - #", "ECO4 - November"): headline_eco4_postcode_list_remaining_revenue }, { - ("", "", "", "HA Name"): "ECO4 delta %", + ("", "", "", "HA Name"): "ECO4 £ remaining delta - %", ("", "Original Warmfront estimate", "Total - #", "ECO4 - November"): str(headline_eco4_delta) + "%" }, { @@ -3380,6 +3486,12 @@ def forecast_remaining_sales(loader): "", "Original Warmfront estimate", "Total - #", "ECO4 - November"): headline_gbis_original_remaining_revenue }, + { + ("", "", "", "HA Name"): "GBIS Sold since November - £", + ( + "", "Original Warmfront estimate", "Total - #", + "ECO4 - November"): headline_gbis_sold_since_november + }, { ("", "", "", "HA Name"): "GBIS Remaining - post code list - #", ("", "Original Warmfront estimate", "Total - #", "ECO4 - November"): headline_gbis_postcode_list_remaining @@ -3400,7 +3512,7 @@ def forecast_remaining_sales(loader): "ECO4 - November"): headline_original_total_revenue_remaining }, { - ("", "", "", "HA Name"): "Total Remaining - post code list - £", + ("", "", "", "HA Name"): "Total Remaining - post code list (post CIGA) - £", ("", "Original Warmfront estimate", "Total - #", "ECO4 - November"): headline_postcode_list_total_revenue_remaining }, @@ -3440,14 +3552,16 @@ def forecast_remaining_sales(loader): ("", "Original Warmfront estimate", "Total - #", "ECO4 - November"): str( round(median_eco4_to_install * 100, 1)) + "%", ("ECO4 original", "", "Remaining - #", - ""): " - Sales conversion rate for a ECO4 property that didn't need a CIGA check. Job must not cancel" + ""): " - Sales conversion rate for a ECO4 property that didn't need a CIGA check. Surveys that resulted " + "in cancelled install are excluded." }, { ("", "", "", "HA Name"): "Median ECO4 (subect to CIGA) sales conversion rate", ("", "Original Warmfront estimate", "Total - #", "ECO4 - November"): str( round(median_ciga_pass_to_install * 100, 1)) + "%", ("ECO4 original", "", "Remaining - #", - ""): " - Sales conversion rate for a ECO4 property that passed a CIGA check. Job must not cancel" + ""): " - Sales conversion rate for a ECO4 property that passed a CIGA check. Surveys that resulted in " + "cancelled installs are excluded." } ] @@ -3462,23 +3576,7 @@ def forecast_remaining_sales(loader): pd.DataFrame(assumptions) ] ) - - # header_rows = [ - # [name[0] for name in results.columns.values], - # [name[1] for name in results.columns.values], - # [name[2] for name in results.columns.values], - # [name[3] for name in results.columns.values] - # ] - - # Step 2: Write the transformed header and DataFrame data to CSV. - # Open the file in write mode. - import csv with open("HA Remaining Analysis.csv", "w", newline="") as file: - # writer = csv.writer(file) - - # Write the header rows. - # writer.writerows(header_rows) - # Write the DataFrame data without the index (adjust if you want the index). results.to_csv(file, header=True, index=False) @@ -3504,8 +3602,12 @@ def app(): # Grab the December HA figures filepath december_figures_filepath = "local_data/ha_data/HA_December_figures.csv" + # priority_has = [ + # "HA1", "HA6", "HA7", "HA14", "HA15", "HA16", "HA24", "HA25", "HA28", "HA32", "HA38", "HA39", "HA107", + # ] + # TODO: Remove ECO3 sales from HA25 priority_has = [ - "HA1", "HA6", "HA7", "HA14", "HA15", "HA16", "HA24", "HA25", "HA28", "HA32", "HA38", "HA39", "HA107", + "HA1", "HA6", "HA7", "HA14", "HA15", "HA16", "HA24", "HA28", "HA32", "HA39", "HA107", ] # Next HAs to do: 15[DONE], 32 [DONE], 33 [Input format is 4 parts and no eco4 jobs identified - come back on this], # Then: 28 [DONE], From 5b32ac8aad59b1942f80a399d072486ab6db9ec3 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Wed, 6 Mar 2024 10:59:07 +0000 Subject: [PATCH 363/526] handling case where property is marked as gbis but sold for ECO4 --- .../ha_15_32/ha_analysis_batch_3.py | 21 +++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index 6d1a3b45..7bfbd7f5 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -1509,11 +1509,12 @@ class DataLoader: } # We find some cases where properties have sold but are missing CIGA checks - survey_list_to_merge = survey_list[["asset_list_row_id"]].copy() + survey_list_to_merge = survey_list[["asset_list_row_id", "installation_status"]].copy() survey_list_to_merge["has_a_survey_record"] = True survey_list_to_merge = survey_list_to_merge[~pd.isnull(survey_list_to_merge["asset_list_row_id"])] asset_list = asset_list.merge(survey_list_to_merge, how='left', on="asset_list_row_id") + # Update the cases where properties have sold, but are missing a CIGA check asset_list["ECO Eligibility"] = np.where( (asset_list["ECO Eligibility"] == "eco4 (subject to ciga)") & ( asset_list["has_a_survey_record"] == True @@ -1521,6 +1522,17 @@ class DataLoader: "eco4 - passed ciga", asset_list["ECO Eligibility"] ) + # Update the cases where a property has been marked as eligible for GBIS, but sold for ECO4 + asset_list["ECO Eligibility"] = np.where( + (asset_list["ECO Eligibility"] == "gbis") & ( + asset_list["installation_status"].isin( + ["ECO4 - installed", "ECO4 - cancelled"] + ) + ), + "eco4", + asset_list["ECO Eligibility"] + ) + asset_list = asset_list.drop(columns=["has_a_survey_record"]) # Update the survey list with installation status @@ -3199,7 +3211,7 @@ def forecast_remaining_sales(loader): # Calculate the delta compared to Warmfront's original remaining if original_warmfront_remaining_eco4 == 0: - eco4_delta_vs_original_estimate_remaining = eco4_post_ciga_remaining_results["ECO4 - post CIGA - #"] + eco4_delta_vs_original_estimate_remaining = "N/A" else: eco4_delta_vs_original_estimate_remaining = ((eco4_post_ciga_remaining_results["ECO4 - post CIGA - #"] - original_warmfront_remaining_eco4) / @@ -3219,9 +3231,6 @@ def forecast_remaining_sales(loader): else: ha_gbis_sale_conversion = median_gbis_to_install - asset_list["ECO Eligibility"].value_counts() - asset_list_remaining["ECO Eligibility"].value_counts() - gbis_total = eligiblity_counts[ eligiblity_counts["ECO Eligibility"] == "gbis" ]["count"].sum() @@ -3236,7 +3245,7 @@ def forecast_remaining_sales(loader): # GBIS delta if original_warmfront_remaining_gbis == 0: - gbis_delta_vs_original_estimate_remaining = gbis_remaining + gbis_delta_vs_original_estimate_remaining = "N/A" else: gbis_delta_vs_original_estimate_remaining = ( (gbis_remaining - original_warmfront_remaining_gbis) / original_warmfront_remaining_gbis From 9d26c94ae571ce1ba5363e9c850b8017f110bc9d Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Wed, 6 Mar 2024 11:35:14 +0000 Subject: [PATCH 364/526] removed stray comma causing bugs --- .../ha_15_32/ha_analysis_batch_3.py | 32 ++++++++++++++++--- 1 file changed, 28 insertions(+), 4 deletions(-) diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index 7bfbd7f5..e58c7799 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -1526,14 +1526,40 @@ class DataLoader: asset_list["ECO Eligibility"] = np.where( (asset_list["ECO Eligibility"] == "gbis") & ( asset_list["installation_status"].isin( - ["ECO4 - installed", "ECO4 - cancelled"] + ["ECO4 - installed", "ECO4 - cancelled", "ECO4 - in progress"] ) ), "eco4", asset_list["ECO Eligibility"] ) + # Update the cases where a property was marked as eligible for ECO4, but sold for GBIS + asset_list["ECO Eligibility"] = np.where( + (asset_list["ECO Eligibility"].isin( + ["eco4", "eco4 (subject to ciga)", "eco4 - passed ciga", "failed ciga"] + )) & ( + asset_list["installation_status"].isin( + ["GBIS - installed", "GBIS - cancelled", "GBIS - in progress"] + ) + ), + "gbis", + asset_list["ECO Eligibility"] + ) + # Update the cases where a property is marked as not eligible, but sold for GBIS + if ((asset_list["ECO Eligibility"] == "not eligible") & ( + asset_list["installation_status"].isin( + ["GBIS - in progress", "GBIS - installed", "GBIS - cancelled"] + ))).sum(): + bah + asset_list["ECO Eligibility"] = np.where( + (asset_list["ECO Eligibility"] == "not eligible") & ( + asset_list["installation_status"].isin( + ["GBIS - in progress", "GBIS - installed", "GBIS - cancelled"] + )), + "gbis", + asset_list["ECO Eligibility"] + ) - asset_list = asset_list.drop(columns=["has_a_survey_record"]) + asset_list = asset_list.drop(columns=["has_a_survey_record", "installation_status"]) # Update the survey list with installation status self.data[ha_name]["survey_list"] = survey_list @@ -2897,8 +2923,6 @@ def forecast_remaining_sales(loader): gbis_rate = 600 eco4_rate = 1710 - # old_gbis_rate = 432 - # old_eco4_rate = 1456 # 1) Calculate the conversion rate from passed CIGA to actual sale converted_ciga_jobs = [] From a70260f128aec2785a8000669dc981d8220505a3 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Wed, 6 Mar 2024 11:55:02 +0000 Subject: [PATCH 365/526] Update how we handle partially completed jobs --- etl/eligibility/ha_15_32/ha_analysis_batch_3.py | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index e58c7799..060539e1 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -1476,7 +1476,7 @@ class DataLoader: # Find partial installations survey_list["installation_status"] = np.where( survey_list["installed_or_cancelled_clean"].str.contains("still to be installed"), - "partially installed", + "in progress", survey_list["installation_status"] ) # Find partial cancellations @@ -1550,6 +1550,7 @@ class DataLoader: ["GBIS - in progress", "GBIS - installed", "GBIS - cancelled"] ))).sum(): bah + asset_list["ECO Eligibility"] = np.where( (asset_list["ECO Eligibility"] == "not eligible") & ( asset_list["installation_status"].isin( @@ -1559,6 +1560,15 @@ class DataLoader: asset_list["ECO Eligibility"] ) + # Update the cases where a property is marked as not eligible, but sold for ECO4 + asset_list["ECO Eligibility"] = np.where( + (asset_list["ECO Eligibility"] == "not eligible") & ( + asset_list["installation_status"].isin( + ["ECO4 - in progress", "ECO4 - installed", "ECO4 - cancelled"] + ) + ) + ) + asset_list = asset_list.drop(columns=["has_a_survey_record", "installation_status"]) # Update the survey list with installation status From 4cc467e5142c7eba903d2819d59229643cf93e03 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Wed, 6 Mar 2024 11:57:03 +0000 Subject: [PATCH 366/526] fix bug in updating eligibility for initially non-eligible rows --- etl/eligibility/ha_15_32/ha_analysis_batch_3.py | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index 060539e1..8c03b1ef 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -1545,12 +1545,6 @@ class DataLoader: asset_list["ECO Eligibility"] ) # Update the cases where a property is marked as not eligible, but sold for GBIS - if ((asset_list["ECO Eligibility"] == "not eligible") & ( - asset_list["installation_status"].isin( - ["GBIS - in progress", "GBIS - installed", "GBIS - cancelled"] - ))).sum(): - bah - asset_list["ECO Eligibility"] = np.where( (asset_list["ECO Eligibility"] == "not eligible") & ( asset_list["installation_status"].isin( @@ -1566,7 +1560,9 @@ class DataLoader: asset_list["installation_status"].isin( ["ECO4 - in progress", "ECO4 - installed", "ECO4 - cancelled"] ) - ) + ), + "eco4", + asset_list["ECO Eligibility"] ) asset_list = asset_list.drop(columns=["has_a_survey_record", "installation_status"]) From 5e991547f7239cf5a84f8e5824d4d9379b825a2a Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Wed, 6 Mar 2024 14:08:05 +0000 Subject: [PATCH 367/526] debuging variances, fixed usage of 75% ciga pass rate --- etl/eligibility/ha_15_32/ha_analysis_batch_3.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index 8c03b1ef..91c198b1 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -3196,8 +3196,8 @@ def forecast_remaining_sales(loader): ) else: ha_ciga_conversion_rate = ( - median_ciga_success_rate if median_ciga_success_rate <= median_ciga_success_rate else - median_ciga_success_rate + median_ciga_success_rate if median_ciga_success_rate <= maximum_ciga_conversion else + maximum_ciga_conversion ) # We also need the ha ciga passed to install success rate From d35d8ea8457ce128ac1fe0c51abd9f83f4e3acaa Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Wed, 6 Mar 2024 14:14:50 +0000 Subject: [PATCH 368/526] fixed but in eligibility counts remaining --- etl/eligibility/ha_15_32/ha_analysis_batch_3.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index 91c198b1..1e2c5d92 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -3177,7 +3177,7 @@ def forecast_remaining_sales(loader): ]["count"].sum() eco4_pre_ciga_remaining = eligiblity_counts_remaining[ - eligiblity_counts["ECO Eligibility"].isin( + eligiblity_counts_remaining["ECO Eligibility"].isin( ["eco4", "eco4 (subject to ciga)", "eco4 - passed ciga", "failed ciga"] ) ]["count"].sum() From 680f38963a874eef548883d8f0f365f7958d42b1 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Wed, 6 Mar 2024 15:01:33 +0000 Subject: [PATCH 369/526] Added variance columns to output --- .../ha_15_32/ha_analysis_batch_3.py | 49 ++++++++++++++++++- 1 file changed, 48 insertions(+), 1 deletion(-) diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index 1e2c5d92..d4c3f74f 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -2859,21 +2859,30 @@ def calculate_eco4_post_ciga( eligiblity_counts["ECO Eligibility"] == "failed ciga" ]["count"].sum() + eco4_no_ciga_needed_or_ciga_passed = eco4_no_ciga_needed + eco4_ciga_passed + eco4_confirmed = (eco4_no_ciga_needed * ha_eco4_to_sale_rate) + (eco4_ciga_passed * ha_ciga_pass_to_sale_rate) eco4_confirmed = np.round(eco4_confirmed) + eco4_no_ciga_needed_cancellations = int(eco4_no_ciga_needed_or_ciga_passed - eco4_confirmed) + if remaining_needing_ciga_check > 0: # We update the eco4 post ciga with the converted remaining eco4_ciga_expected_remaining_to_pass = np.round(remaining_needing_ciga_check * ha_ciga_conversion_rate) + eco4_remaining_forecast = np.round( eco4_ciga_expected_remaining_to_pass * ha_ciga_pass_to_sale_rate ) + eco4_ciga_needed_cancellations = eco4_ciga_expected_remaining_to_pass - eco4_remaining_forecast eco4_estimated_ciga_failures = remaining_needing_ciga_check - eco4_ciga_expected_remaining_to_pass eco4_post_ciga = eco4_confirmed + eco4_remaining_forecast else: eco4_remaining_forecast = 0 eco4_estimated_ciga_failures = 0 + eco4_ciga_needed_cancellations = 0 eco4_post_ciga = eco4_confirmed + + eco4_expected_cancellations = eco4_no_ciga_needed_cancellations + eco4_ciga_needed_cancellations else: eco4_no_ciga_needed = eligiblity_counts[ eligiblity_counts["ECO Eligibility"] == "eco4" @@ -2881,14 +2890,18 @@ def calculate_eco4_post_ciga( eco4_confirmed_ciga_failures = 0 # Multiply by sale conversion eco4_confirmed = np.round(eco4_no_ciga_needed * ha_eco4_to_sale_rate) + eco4_no_ciga_cancellations = int(eco4_no_ciga_needed - eco4_confirmed) eco4_ciga_expected_remaining_to_pass = np.round(remaining_needing_ciga_check * ha_ciga_conversion_rate) eco4_estimated_ciga_failures = remaining_needing_ciga_check - eco4_ciga_expected_remaining_to_pass eco4_remaining_forecast = np.round( eco4_ciga_expected_remaining_to_pass * ha_ciga_pass_to_sale_rate ) + eco4_ciga_cancellations = int(eco4_ciga_expected_remaining_to_pass - eco4_remaining_forecast) eco4_post_ciga = eco4_confirmed + eco4_remaining_forecast + eco4_expected_cancellations = eco4_no_ciga_cancellations + eco4_ciga_cancellations + eco4_post_ciga = int(eco4_post_ciga) eco4_remaining_forecast = int(eco4_remaining_forecast) eco4_confirmed = int(eco4_confirmed) @@ -2912,6 +2925,9 @@ def calculate_eco4_post_ciga( ), "Confirmed CIGA failures - £": int(eco4_confirmed_ciga_failures * eco4_rate), "Estimated CIGA failures - £": int(eco4_estimated_ciga_failures * eco4_rate), + # Expected cencellations + "Expected cancellations - #": eco4_expected_cancellations, + "Expected cancellations - £": eco4_expected_cancellations * eco4_rate } return results @@ -3322,6 +3338,28 @@ def forecast_remaining_sales(loader): incomplete_gbis_sales.shape[0] * ha_gbis_sale_conversion * gbis_rate ) + # Add in the variance: + # We should expect that the pre-ciga total is: + # 1) The number of post CIGA successes + + # 2) the number of CIGA failures + + # 3) The number of cancellations + variance_total = eco4_pre_ciga - ( + eco4_post_ciga_total_results["ECO4 - post CIGA - #"] + + eco4_post_ciga_total_results['Estimated total - failed CIGA'] + + eco4_post_ciga_total_results["Expected cancellations - #"] + ) + if variance_total != 0: + raise ValueError("Something went wrong in variance total") + + variance_remaining = eco4_pre_ciga_remaining - ( + eco4_post_ciga_remaining_results["ECO4 - post CIGA - #"] + + eco4_post_ciga_remaining_results['Estimated total - failed CIGA'] + + eco4_post_ciga_remaining_results["Expected cancellations - #"] + ) + + if variance_remaining != 0: + raise ValueError("Something went wrong in variance remaining") + to_append = { ("", "", "", "HA Name"): ha_name, # ECO4 - original warmfront figures @@ -3340,6 +3378,8 @@ def forecast_remaining_sales(loader): ("", "Warmfront post code list", "Total #", "ECO4 total (pre-ciga)"): eco4_pre_ciga, ("ECO4 pre-ciga", "", "Remaining - #", ""): eco4_pre_ciga_remaining, ("ECO4 pre-ciga", "", "Total - £", ""): eco4_pre_ciga_revenue, + ("ECO4 pre-ciga", "", "VARIANCE - TOTAL", ""): variance_total, + ("ECO4 pre-ciga", "", "VARIANCE - REMAINING", ""): variance_remaining, ("ECO4 pre-ciga", "", "Sold - £", ""): eco4_actually_sold, ("ECO4 pre-ciga", "", "Remaining - £", ""): eco4_pre_ciga_remaining_revenue, # ECO4 - asset list, post ciga, total @@ -3382,6 +3422,13 @@ def forecast_remaining_sales(loader): ("ECO4 CIGA failures", "", "Estimated failures - £", ""): eco4_post_ciga_remaining_results[ "Estimated CIGA failures - £" ], + # Expected ECO4 cancellations + ("ECO4 Cancellations", "", "Expected cancellations - #", ""): eco4_post_ciga_remaining_results[ + "Expected cancellations - #" + ], + ("ECO4 Cancellations", "", "Expected cancellations - £", ""): eco4_post_ciga_remaining_results[ + "Expected cancellations - £" + ], # GBIS postcode list ("GBIS Postcode list", "Warmfront post code list", "Total - #", "GBIS total"): gbis_total, ("GBIS Postcode list", "Warmfront post code list", "Total - £", "GBIS total"): gbis_total_revenue, @@ -3393,7 +3440,7 @@ def forecast_remaining_sales(loader): } # Make sure nothing is forgotten due to duplicate multi-index keys - if len(to_append) != 37: + if len(to_append) != 41: raise ValueError("Something went wrong") results.append(to_append) From e966dfdf6e785cbcc1e2245cce852e842d0def92 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Wed, 6 Mar 2024 16:22:20 +0000 Subject: [PATCH 370/526] Adding cancellations to output --- .../ha_15_32/ha_analysis_batch_3.py | 68 +++++++++++++------ 1 file changed, 49 insertions(+), 19 deletions(-) diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index d4c3f74f..09b0910e 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -3301,6 +3301,10 @@ def forecast_remaining_sales(loader): # For any sales surveys that are complete, that could still cancel, we apply a conversion rate eco4_actually_sold = 0 gbis_actually_sold = 0 + eco4_confirmed_cancellations = 0 + eco4_expected_cancellations = 0 + gbis_confirmed_cancellations = 0 + gbis_expected_cancellations = 0 if not survey_list.empty: surveys_with_eligibility = survey_list.merge( asset_list[["asset_list_row_id", "ECO Eligibility"]], @@ -3308,34 +3312,54 @@ def forecast_remaining_sales(loader): ) completed_eco4_sales = surveys_with_eligibility[ surveys_with_eligibility["installation_status"] == "ECO4 - installed" - ] + ].shape[0] incomplete_eco4_sales = surveys_with_eligibility[ (surveys_with_eligibility["installation_status"] == "ECO4 - in progress") & (~surveys_with_eligibility["ECO Eligibility"].isin( ["eco4 - passed ciga"]) ) - ] + ].shape[0] incomplete_eco4_sales_ciga = surveys_with_eligibility[ (surveys_with_eligibility["installation_status"] == "ECO4 - in progress") & (surveys_with_eligibility["ECO Eligibility"].isin( ["eco4 - passed ciga"]) ) - ] + ].shape[0] - eco4_actually_sold = (completed_eco4_sales.shape[0] * eco4_rate) + ( - incomplete_eco4_sales.shape[0] * ha_eco4_to_sale_rate + - incomplete_eco4_sales_ciga.shape[0] * ha_ciga_pass_to_sale_rate - ) * eco4_rate + eco4_confirmed_cancellations = surveys_with_eligibility[ + surveys_with_eligibility["installation_status"] == "ECO4 - cancelled" + ].shape[0] + + expected_eco4_sales_no_ciga = np.round(incomplete_eco4_sales * ha_eco4_to_sale_rate) + expected_eco4_sales_ciga = np.round(incomplete_eco4_sales_ciga * ha_ciga_pass_to_sale_rate) + + eco4_expected_cancellations = (incomplete_eco4_sales + incomplete_eco4_sales_ciga) - ( + expected_eco4_sales_no_ciga + expected_eco4_sales_ciga + ) + eco4_expected_cancellations = int(np.round(eco4_expected_cancellations)) + + eco4_actually_sold = eco4_rate * ( + completed_eco4_sales + expected_eco4_sales_no_ciga + expected_eco4_sales_ciga + ) completed_gbis_sales = surveys_with_eligibility[ surveys_with_eligibility["installation_status"] == "GBIS - installed" - ] + ].shape[0] incomplete_gbis_sales = surveys_with_eligibility[ (surveys_with_eligibility["installation_status"] == "GBIS - in progress") - ] + ].shape[0] - gbis_actually_sold = completed_gbis_sales.shape[0] * gbis_rate + ( - incomplete_gbis_sales.shape[0] * ha_gbis_sale_conversion * gbis_rate + # Get confirmed cancellations + gbis_confirmed_cancellations = surveys_with_eligibility[ + surveys_with_eligibility["installation_status"] == "GBIS - cancelled" + ].shape[0] + + expected_gbis_unconfirmed_sales = incomplete_gbis_sales * ha_gbis_sale_conversion + + gbis_expected_cancellations = int(incomplete_gbis_sales - expected_gbis_unconfirmed_sales) + + gbis_actually_sold = completed_gbis_sales * gbis_rate + ( + expected_gbis_unconfirmed_sales * gbis_rate ) # Add in the variance: @@ -3381,6 +3405,9 @@ def forecast_remaining_sales(loader): ("ECO4 pre-ciga", "", "VARIANCE - TOTAL", ""): variance_total, ("ECO4 pre-ciga", "", "VARIANCE - REMAINING", ""): variance_remaining, ("ECO4 pre-ciga", "", "Sold - £", ""): eco4_actually_sold, + ("ECO4 pre-ciga", "", "Confirmed cancellations - £", ""): eco4_confirmed_cancellations, + # This is for jobs that are in-progress and could still cancel + ("ECO4 pre-ciga", "", "Unconfirmed cancellations - £", ""): eco4_expected_cancellations, ("ECO4 pre-ciga", "", "Remaining - £", ""): eco4_pre_ciga_remaining_revenue, # ECO4 - asset list, post ciga, total ("ECO4 post-ciga", "", "Estimated total eligible - #", "ECO4 total"): @@ -3403,6 +3430,13 @@ def forecast_remaining_sales(loader): eco4_post_ciga_remaining_results["Of which forecast - #"], ("ECO4 post-ciga", "", "Of which forecast - £", ""): eco4_post_ciga_remaining_results["Of which forecast - £"], + # Expected ECO4 cancellations + ("ECO4 Cancellations", "", "Of which expected cancellations - #", ""): eco4_post_ciga_remaining_results[ + "Expected cancellations - #" + ], + ("ECO4 Cancellations", "", "Of which expected cancellations - £", ""): eco4_post_ciga_remaining_results[ + "Expected cancellations - £" + ], # CIGA failures ("ECO4 CIGA failures", "", "Estimated total - failed CIGA - #", ""): eco4_post_ciga_remaining_results[ 'Estimated total - failed CIGA' @@ -3422,17 +3456,13 @@ def forecast_remaining_sales(loader): ("ECO4 CIGA failures", "", "Estimated failures - £", ""): eco4_post_ciga_remaining_results[ "Estimated CIGA failures - £" ], - # Expected ECO4 cancellations - ("ECO4 Cancellations", "", "Expected cancellations - #", ""): eco4_post_ciga_remaining_results[ - "Expected cancellations - #" - ], - ("ECO4 Cancellations", "", "Expected cancellations - £", ""): eco4_post_ciga_remaining_results[ - "Expected cancellations - £" - ], # GBIS postcode list ("GBIS Postcode list", "Warmfront post code list", "Total - #", "GBIS total"): gbis_total, ("GBIS Postcode list", "Warmfront post code list", "Total - £", "GBIS total"): gbis_total_revenue, ("GBIS Postcode list", "Warmfront post code list", "Sold - £", "GBIS total"): gbis_actually_sold, + ("GBIS Postcode list", "", "Confirmed cancellations - £", ""): gbis_confirmed_cancellations, + # This is for jobs that are in-progress and could still cancel + ("GBIS Postcode list", "", "Unconfirmed cancellations - £", ""): gbis_expected_cancellations, ("GBIS Postcode list", "Warmfront post code list", "Remaining - #", "GBIS total"): gbis_remaining, ("GBIS Postcode list", "Warmfront post code list", "Remaining - £", "GBIS total"): gbis_remaining_revenue, ("GBIS Postcode list", "", "Delta vs original estimate, remaining - %", ""): @@ -3440,7 +3470,7 @@ def forecast_remaining_sales(loader): } # Make sure nothing is forgotten due to duplicate multi-index keys - if len(to_append) != 41: + if len(to_append) != 45: raise ValueError("Something went wrong") results.append(to_append) From e2055b3b7dde7a1b001a568c23bb3016fbfa4079 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Wed, 6 Mar 2024 19:34:43 +0000 Subject: [PATCH 371/526] fixed variance for HA6 --- .../ha_15_32/ha_analysis_batch_3.py | 135 +++++++++++++++++- 1 file changed, 129 insertions(+), 6 deletions(-) diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index 09b0910e..8c9f59c2 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -730,6 +730,81 @@ class DataLoader: "Post Code" ] = "ST5 7BY" + # PERFORM ADDITIONAL DROPS + # Dropping rows based on multiple conditions + conditions_to_drop = [ + (survey_list['Street / Block Name'] == "Bedford Crescent") & (survey_list['Post Code'] == "ST5 3EH") & ( + survey_list['NO.'] == 23) & (survey_list['INSTALLED OR CANCELLED'].str.contains("NO UPDATE YET")), + (survey_list['Street / Block Name'] == "Hereford Avenue") & (survey_list['Post Code'] == "ST5 3EJ") & ( + survey_list['NO.'] == 92) & (survey_list['INSTALLED OR CANCELLED'].str.contains("NO UPDATE YET")), + (survey_list['Street / Block Name'] == "Seabridge Lane") & (survey_list['Post Code'] == "ST5 3EX") & ( + survey_list['NO.'].isin([16, 18, 42])) & ( + survey_list['INSTALLED OR CANCELLED'].str.contains("NO UPDATE YET")), + (survey_list['Street / Block Name'] == "ESKDALE PLACE") & (survey_list['Post Code'] == "ST5 3QW") & ( + survey_list['NO.'] == 5) & (survey_list['SUBMISSION DATE'].astype(str) == "2023-03-06 00:00:00"), + (survey_list['Street / Block Name'] == "Birch House road") & (survey_list['Post Code'] == "ST6 2LS") & ( + survey_list['NO.'].isin([56, 58])), + (survey_list['Street / Block Name'] == "Blackthorn Place") & (survey_list['Post Code'] == "ST6 2LS") & ( + survey_list['NO.'].isin([37, 39])), + (survey_list['Street / Block Name'] == "Whitethorn Way") & (survey_list['Post Code'] == "ST5 7BT") & ( + survey_list['NO.'].isin([17, 6])), + (survey_list['Street / Block Name'] == "Lion Grove") & (survey_list['Post Code'] == "ST5 7HQ") & ( + survey_list['NO.'].isin([10, 12])) & ( + survey_list['INSTALLED OR CANCELLED'].str.contains("NO UPDATE YET")), + (survey_list['Street / Block Name'] == "DENRY CRESCENT") & (survey_list['Post Code'] == "ST5 8JW") & ( + survey_list['NO.'] == 87) & (survey_list['INSTALLED OR CANCELLED'].str.contains("NO UPDATE YET")), + (survey_list['Street / Block Name'] == "HOLLINS CRESCENT") & (survey_list['Post Code'] == "ST7 1JW") & ( + survey_list['NO.'] == 19) + ] + + # Combine all conditions with an OR "|" + combined_condition = np.logical_or.reduce(conditions_to_drop) + + # Drop rows that meet the combined condition + survey_list = survey_list[~combined_condition] + + # Making replacements using np.where + survey_list['Post Code'] = np.where( + (survey_list['Street / Block Name'] == "Whitethorn Way") & (survey_list['Post Code'] == "ST5 3EH") & ( + survey_list['NO.'] == 17), + "ST5 7BT", + survey_list['Post Code'] + ) + + survey_list['Post Code'] = np.where( + (survey_list['Street / Block Name'] == "Whitethorn Way") & (survey_list['Post Code'] == "ST5 3ED") & ( + survey_list['NO.'] == 6), + "ST5 7BT", + survey_list['Post Code'] + ) + + # Maple avenue (stoke on trent, not newcastle) should be st7 1jw + survey_list["Post Code"] = np.where( + (survey_list["Street / Block Name"].str.lower().str.contains("maple avenue")) & ( + survey_list["Post Code"].str.lower() == "st7 1jx" + ), + "st7 1jw", + survey_list["Post Code"] + ) + + # Hollins Crescent should be st7 1jx + survey_list["Post Code"] = np.where( + (survey_list["Street / Block Name"].str.lower().str.contains("hollins crescent")) & ( + survey_list["Post Code"].str.lower() == "st7 1jw" + ), + "st7 1jx", + survey_list["Post Code"] + ) + + # Additional drops as the above misses some: + survey_list = survey_list[ + ~((survey_list["NO."].astype(str).isin(["18", "42"])) & + (survey_list["Street / Block Name"] == "Seabridge Lane") & + (survey_list["Post Code"] == "ST5 3EY") & + (survey_list["SUBMISSION DATE"].astype(str) == "24.07.2023") & + (survey_list["INSTALLED OR CANCELLED"].str.contains("NO UPDATE YET"))) + ] + return survey_list @staticmethod @@ -1176,6 +1251,11 @@ class DataLoader: if matching_lookup.shape[0] != survey_list.shape[0]: raise ValueError("Mismatch in the number of survey rows and matching lookup rows") + matching_lookup = matching_lookup[~pd.isnull(matching_lookup["asset_list_row_id"])] + + if matching_lookup["asset_list_row_id"].duplicated().sum(): + raise ValueError("Duplicated matches in survey list") + # Merge onto the survey list survey_list = survey_list.merge(matching_lookup, how='left', on="survey_list_row_id") @@ -1483,7 +1563,7 @@ class DataLoader: # TODO: We might have more indications of partial cancellations survey_list["installation_status"] = np.where( survey_list["installed_or_cancelled_clean"].isin(["loft cancelled"]), - "partially cancelled", + "cancelled", survey_list["installation_status"] ) else: @@ -3174,6 +3254,8 @@ def forecast_remaining_sales(loader): if survey_list.empty: asset_list_remaining = asset_list.copy() else: + # For HA6, there are a small number of postcodes that do not match to any item in the asset list + survey_list = survey_list[~pd.isnull(survey_list["asset_list_row_id"])] asset_list_remaining = asset_list.merge( survey_list[["asset_list_row_id", "installation_status"]], how="left", @@ -3183,6 +3265,47 @@ def forecast_remaining_sales(loader): asset_list_remaining = asset_list_remaining[pd.isnull(asset_list_remaining["installation_status"])] asset_list_remaining = asset_list_remaining.drop(columns=["installation_status"]) + # # TODO: TEMP + # n_pre_ciga = asset_list[ + # asset_list["ECO Eligibility"].isin( + # [ + # "eco4 - passed ciga", + # "eco4 (subject to ciga)", + # "failed ciga", + # "eco4" + # ] + # ) + # ].shape[0] + # + # n_pre_ciga_remaining = asset_list_remaining[ + # asset_list_remaining["ECO Eligibility"].isin( + # [ + # "eco4 - passed ciga", + # "eco4 (subject to ciga)", + # "failed ciga", + # "eco4" + # ] + # ) + # ].shape[0] + # + # compare_to_ids = asset_list_remaining["asset_list_row_id"].values + # assets_diff_ids = [x for x in asset_list["asset_list_row_id"].values if x not in compare_to_ids] + # diff = asset_list[asset_list["asset_list_row_id"].isin(assets_diff_ids)] + # + # n_sold = survey_list[survey_list["installation_status"].str.contains("ECO4")].shape[0] + # # cancellations = survey_list[] + # asset_list["ECO Eligibility"].value_counts() + # + # # Revenenue + # pre_ciga_revenue = n_pre_ciga * eco4_rate + # pre_ciga_remaining_revenue = n_pre_ciga_remaining * eco4_rate + # sold_revenue = n_sold * eco4_rate + # + # pre_ciga_revenue - (pre_ciga_remaining_revenue + sold_revenue) + # # MISSING 1 SALE from sold + # cancelled = survey_list[survey_list["installation_status"].str.contains("ECO4")].shape[0] + # # TODO: END TEMP + eligiblity_counts = pd.DataFrame(asset_list["ECO Eligibility"].value_counts()).reset_index() eligiblity_counts_remaining = pd.DataFrame(asset_list_remaining["ECO Eligibility"].value_counts()).reset_index() @@ -3402,13 +3525,13 @@ def forecast_remaining_sales(loader): ("", "Warmfront post code list", "Total #", "ECO4 total (pre-ciga)"): eco4_pre_ciga, ("ECO4 pre-ciga", "", "Remaining - #", ""): eco4_pre_ciga_remaining, ("ECO4 pre-ciga", "", "Total - £", ""): eco4_pre_ciga_revenue, + ("ECO4 pre-ciga", "", "Remaining - £", ""): eco4_pre_ciga_remaining_revenue, ("ECO4 pre-ciga", "", "VARIANCE - TOTAL", ""): variance_total, ("ECO4 pre-ciga", "", "VARIANCE - REMAINING", ""): variance_remaining, ("ECO4 pre-ciga", "", "Sold - £", ""): eco4_actually_sold, - ("ECO4 pre-ciga", "", "Confirmed cancellations - £", ""): eco4_confirmed_cancellations, + ("ECO4 pre-ciga", "", "Confirmed cancellations - £", ""): eco4_confirmed_cancellations * eco4_rate, # This is for jobs that are in-progress and could still cancel - ("ECO4 pre-ciga", "", "Unconfirmed cancellations - £", ""): eco4_expected_cancellations, - ("ECO4 pre-ciga", "", "Remaining - £", ""): eco4_pre_ciga_remaining_revenue, + ("ECO4 pre-ciga", "", "Unconfirmed cancellations - £", ""): eco4_expected_cancellations * eco4_rate, # ECO4 - asset list, post ciga, total ("ECO4 post-ciga", "", "Estimated total eligible - #", "ECO4 total"): eco4_post_ciga_total_results[ @@ -3460,9 +3583,9 @@ def forecast_remaining_sales(loader): ("GBIS Postcode list", "Warmfront post code list", "Total - #", "GBIS total"): gbis_total, ("GBIS Postcode list", "Warmfront post code list", "Total - £", "GBIS total"): gbis_total_revenue, ("GBIS Postcode list", "Warmfront post code list", "Sold - £", "GBIS total"): gbis_actually_sold, - ("GBIS Postcode list", "", "Confirmed cancellations - £", ""): gbis_confirmed_cancellations, + ("GBIS Postcode list", "", "Confirmed cancellations - £", ""): gbis_confirmed_cancellations * gbis_rate, # This is for jobs that are in-progress and could still cancel - ("GBIS Postcode list", "", "Unconfirmed cancellations - £", ""): gbis_expected_cancellations, + ("GBIS Postcode list", "", "Unconfirmed cancellations - £", ""): gbis_expected_cancellations * gbis_rate, ("GBIS Postcode list", "Warmfront post code list", "Remaining - #", "GBIS total"): gbis_remaining, ("GBIS Postcode list", "Warmfront post code list", "Remaining - £", "GBIS total"): gbis_remaining_revenue, ("GBIS Postcode list", "", "Delta vs original estimate, remaining - %", ""): From 21082d8d3779a75cae422becf1a6e589ebcbaba6 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Wed, 6 Mar 2024 19:46:28 +0000 Subject: [PATCH 372/526] fixed duplication variance for HA16 --- .../ha_15_32/ha_analysis_batch_3.py | 20 ++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index 8c9f59c2..7859d6d2 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -960,6 +960,21 @@ class DataLoader: survey_list["NO."] ) + # Delete some duplicated entries + survey_list = survey_list[ + ~((survey_list["Street / Block Name"] == "york road") & + (survey_list["NO."].astype(str) == "12") & + (survey_list["Post Code"] == "M44 5HU") & + (survey_list["SUBMISSION DATE"].astype(str) == "45229")) + ] + + survey_list = survey_list[ + ~((survey_list["Street / Block Name"] == "peatfield avenue") & + (survey_list["NO."].astype(str) == "23") & + (survey_list["Post Code"] == "M27 9XG") & + (survey_list["SUBMISSION DATE"].astype(str) == "45236")) + ] + return survey_list @staticmethod @@ -3265,7 +3280,7 @@ def forecast_remaining_sales(loader): asset_list_remaining = asset_list_remaining[pd.isnull(asset_list_remaining["installation_status"])] asset_list_remaining = asset_list_remaining.drop(columns=["installation_status"]) - # # TODO: TEMP + # TODO: TEMP # n_pre_ciga = asset_list[ # asset_list["ECO Eligibility"].isin( # [ @@ -3304,6 +3319,9 @@ def forecast_remaining_sales(loader): # pre_ciga_revenue - (pre_ciga_remaining_revenue + sold_revenue) # # MISSING 1 SALE from sold # cancelled = survey_list[survey_list["installation_status"].str.contains("ECO4")].shape[0] + # dupes = survey_list[survey_list["asset_list_row_id"].duplicated()]["asset_list_row_id"].values + # z = survey_list[survey_list["asset_list_row_id"].isin(dupes)] + # z[['NO.', 'Street / Block Name', 'Post Code', 'INSTALLED OR CANCELLED', 'SUBMISSION DATE']] # # TODO: END TEMP eligiblity_counts = pd.DataFrame(asset_list["ECO Eligibility"].value_counts()).reset_index() From af13467c2c4c9b7fc98e5be1e343399f57c062fb Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Wed, 6 Mar 2024 20:04:37 +0000 Subject: [PATCH 373/526] Added gbis variance checks --- .../ha_15_32/ha_analysis_batch_3.py | 83 ++++++++----------- 1 file changed, 36 insertions(+), 47 deletions(-) diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index 7859d6d2..553f6271 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -3237,6 +3237,7 @@ def forecast_remaining_sales(loader): results = [] for ha_name, input_data in loader.data.items(): + # Original warmfront figures - ECO4 original_warmfront_estimates = december_figures[december_figures["HA Name"] == ha_name] @@ -3280,50 +3281,6 @@ def forecast_remaining_sales(loader): asset_list_remaining = asset_list_remaining[pd.isnull(asset_list_remaining["installation_status"])] asset_list_remaining = asset_list_remaining.drop(columns=["installation_status"]) - # TODO: TEMP - # n_pre_ciga = asset_list[ - # asset_list["ECO Eligibility"].isin( - # [ - # "eco4 - passed ciga", - # "eco4 (subject to ciga)", - # "failed ciga", - # "eco4" - # ] - # ) - # ].shape[0] - # - # n_pre_ciga_remaining = asset_list_remaining[ - # asset_list_remaining["ECO Eligibility"].isin( - # [ - # "eco4 - passed ciga", - # "eco4 (subject to ciga)", - # "failed ciga", - # "eco4" - # ] - # ) - # ].shape[0] - # - # compare_to_ids = asset_list_remaining["asset_list_row_id"].values - # assets_diff_ids = [x for x in asset_list["asset_list_row_id"].values if x not in compare_to_ids] - # diff = asset_list[asset_list["asset_list_row_id"].isin(assets_diff_ids)] - # - # n_sold = survey_list[survey_list["installation_status"].str.contains("ECO4")].shape[0] - # # cancellations = survey_list[] - # asset_list["ECO Eligibility"].value_counts() - # - # # Revenenue - # pre_ciga_revenue = n_pre_ciga * eco4_rate - # pre_ciga_remaining_revenue = n_pre_ciga_remaining * eco4_rate - # sold_revenue = n_sold * eco4_rate - # - # pre_ciga_revenue - (pre_ciga_remaining_revenue + sold_revenue) - # # MISSING 1 SALE from sold - # cancelled = survey_list[survey_list["installation_status"].str.contains("ECO4")].shape[0] - # dupes = survey_list[survey_list["asset_list_row_id"].duplicated()]["asset_list_row_id"].values - # z = survey_list[survey_list["asset_list_row_id"].isin(dupes)] - # z[['NO.', 'Street / Block Name', 'Post Code', 'INSTALLED OR CANCELLED', 'SUBMISSION DATE']] - # # TODO: END TEMP - eligiblity_counts = pd.DataFrame(asset_list["ECO Eligibility"].value_counts()).reset_index() eligiblity_counts_remaining = pd.DataFrame(asset_list_remaining["ECO Eligibility"].value_counts()).reset_index() @@ -3525,6 +3482,35 @@ def forecast_remaining_sales(loader): if variance_remaining != 0: raise ValueError("Something went wrong in variance remaining") + # We also check variances to make sure that the pre-CIGA ECO4 total equals + # 1) Pre CIGA remaining + + # 2) ECO4 sold + + # 3) ECO4 confirmed cancellations + + # 4) ECO4 unconfirmed cancellations + + pre_ciga_eco4_variance = ( + eco4_pre_ciga_revenue - + eco4_pre_ciga_remaining_revenue - + eco4_actually_sold - + eco4_confirmed_cancellations * eco4_rate - + eco4_expected_cancellations * eco4_rate + ) + + if pre_ciga_eco4_variance != 0: + raise ValueError("Something went wrong in pre_ciga_eco4_variance") + + # Check GBIS total variance + gbis_variance = ( + gbis_total_revenue - + gbis_actually_sold - + gbis_confirmed_cancellations * gbis_rate - + gbis_expected_cancellations * gbis_rate - + gbis_remaining_revenue + ) + + if gbis_variance != 0: + raise ValueError("Something went wrong in gbis_variance") + to_append = { ("", "", "", "HA Name"): ha_name, # ECO4 - original warmfront figures @@ -3544,8 +3530,10 @@ def forecast_remaining_sales(loader): ("ECO4 pre-ciga", "", "Remaining - #", ""): eco4_pre_ciga_remaining, ("ECO4 pre-ciga", "", "Total - £", ""): eco4_pre_ciga_revenue, ("ECO4 pre-ciga", "", "Remaining - £", ""): eco4_pre_ciga_remaining_revenue, - ("ECO4 pre-ciga", "", "VARIANCE - TOTAL", ""): variance_total, - ("ECO4 pre-ciga", "", "VARIANCE - REMAINING", ""): variance_remaining, + ("ECO4 pre-ciga", "", "VARIANCE - PRE-CIGA ECO4 TOTAL", ""): pre_ciga_eco4_variance, + ("ECO4 pre-ciga", "", "VARIANCE - PRE-CIGA ECO4 TOTAL VS ELIGIBLE & INELIGIBLE", ""): variance_total, + ("ECO4 pre-ciga", "", "VARIANCE - PRE-CIGA ECO4 REMAINING VS ELIGIBLE & INELIGIBLE", ""): + variance_remaining, ("ECO4 pre-ciga", "", "Sold - £", ""): eco4_actually_sold, ("ECO4 pre-ciga", "", "Confirmed cancellations - £", ""): eco4_confirmed_cancellations * eco4_rate, # This is for jobs that are in-progress and could still cancel @@ -3600,6 +3588,7 @@ def forecast_remaining_sales(loader): # GBIS postcode list ("GBIS Postcode list", "Warmfront post code list", "Total - #", "GBIS total"): gbis_total, ("GBIS Postcode list", "Warmfront post code list", "Total - £", "GBIS total"): gbis_total_revenue, + ("GBIS Postcode list", "Warmfront post code list", "GBIS VARIANCE", "GBIS total"): gbis_variance, ("GBIS Postcode list", "Warmfront post code list", "Sold - £", "GBIS total"): gbis_actually_sold, ("GBIS Postcode list", "", "Confirmed cancellations - £", ""): gbis_confirmed_cancellations * gbis_rate, # This is for jobs that are in-progress and could still cancel @@ -3611,7 +3600,7 @@ def forecast_remaining_sales(loader): } # Make sure nothing is forgotten due to duplicate multi-index keys - if len(to_append) != 45: + if len(to_append) != 47: raise ValueError("Something went wrong") results.append(to_append) From 8dcb6a9be0f903fc06e4c9dcb3218bb1d6db949e Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Wed, 6 Mar 2024 21:11:17 +0000 Subject: [PATCH 374/526] 11% through matching ha38 --- etl/eligibility/ha_15_32/ha_analysis_batch_3.py | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index 553f6271..6998eb4b 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -1054,6 +1054,17 @@ class DataLoader: 'Kingsford Court, Coombe Valley Road', 'Kingsford Court' ) + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace( + 'LESLIE TEW COURT/DERWENT ROAD', 'LESLIE TEW COURT' + ) + + # There is no 18A LESLIE TEW COURT in the asset list + survey_list = survey_list[ + ~((survey_list["Street / Block Name"] == "LESLIE TEW COURT") & + (survey_list["Post Code"] == "TN10 3TX") & + (survey_list["NO."] == "18A")) + ] + return survey_list @staticmethod @@ -3848,12 +3859,10 @@ def app(): # Grab the December HA figures filepath december_figures_filepath = "local_data/ha_data/HA_December_figures.csv" - # priority_has = [ - # "HA1", "HA6", "HA7", "HA14", "HA15", "HA16", "HA24", "HA25", "HA28", "HA32", "HA38", "HA39", "HA107", - # ] + # Add in: "HA25" # TODO: Remove ECO3 sales from HA25 priority_has = [ - "HA1", "HA6", "HA7", "HA14", "HA15", "HA16", "HA24", "HA28", "HA32", "HA39", "HA107", + "HA1", "HA6", "HA7", "HA14", "HA15", "HA16", "HA24", "HA28", "HA32", "HA38", "HA39", "HA107", ] # Next HAs to do: 15[DONE], 32 [DONE], 33 [Input format is 4 parts and no eco4 jobs identified - come back on this], # Then: 28 [DONE], From 17b5f6e140a90d261b790fee1a4a28f43d1e3a62 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Wed, 6 Mar 2024 21:42:17 +0000 Subject: [PATCH 375/526] ha38 23% merged --- .../ha_15_32/ha_analysis_batch_3.py | 50 ++++++++++++++----- 1 file changed, 38 insertions(+), 12 deletions(-) diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index 6998eb4b..ff39b190 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -1065,6 +1065,24 @@ class DataLoader: (survey_list["NO."] == "18A")) ] + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace( + 'Brindley House, Wellbeck Road', 'Brindley House' + ) + + # Try taking just the first part of the string, splitting on a / + survey_list['Street / Block Name'] = survey_list['Street / Block Name'].str.split('/').str[0].str.strip() + + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace( + 'HUNTSMAN WAY', 'HUNTSMANS WAY' + ) + + # Try taking just the first part of the string, splitting on a , + survey_list['Street / Block Name'] = survey_list['Street / Block Name'].str.split(',').str[0].str.strip() + + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace( + "McCLAREN COURT", "MCLAREN COURT" + ) + return survey_list @staticmethod @@ -1228,6 +1246,10 @@ class DataLoader: if "flat" in str(house_number): house_number = house_number.split("flat")[1].strip() + # We check if we had an instance of flat x, y + if "," in str(house_number): + house_number = house_number.split(",")[0].strip() + df = df[df["matching_address"].str.contains(str(house_number))] if df.empty: @@ -1251,19 +1273,23 @@ class DataLoader: df = df[df["HouseNo"].astype(str) == str(house_number)] if df.shape[0] != 1: df = df[df["matching_postcode"].str.lower().str.contains(row["Post Code"].lower().strip())] - - full_key = str(row["NO."]).lower().strip() + row["Street / Block Name"].lower().strip() + row[ - "Town/Area"].lower().strip() + row["Post Code"].lower().strip() - # Remove any spaces from the full key - full_key = full_key.replace(" ", "") - - df = self.levenstein_match(full_key, df) - if df.shape[0] != 1: - print(row["Street / Block Name"]) - print(house_number) - print(row["Post Code"]) - raise ValueError("Investigate") + if "Town/Area" not in row.keys(): + full_key = (str(row["NO."]).lower().strip() + row["Street / Block Name"].lower().strip() + + row["Post Code"].lower().strip()) + else: + full_key = str(row["NO."]).lower().strip() + row["Street / Block Name"].lower().strip() + \ + row["Town/Area"].lower().strip() + row["Post Code"].lower().strip() + # Remove any spaces from the full key + full_key = full_key.replace(" ", "") + + df = self.levenstein_match(full_key, df) + + if df.shape[0] != 1: + print(row["Street / Block Name"]) + print(house_number) + print(row["Post Code"]) + raise ValueError("Investigate") matching_lookup.append( { From 8e258ff3ca164e2eddcd9cc74d1e7531bf655e4f Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Wed, 6 Mar 2024 22:29:18 +0000 Subject: [PATCH 376/526] 44% through matching --- .../ha_15_32/ha_analysis_batch_3.py | 70 ++++++++++++++++++- 1 file changed, 69 insertions(+), 1 deletion(-) diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index ff39b190..567394a4 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -1083,6 +1083,70 @@ class DataLoader: "McCLAREN COURT", "MCLAREN COURT" ) + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace( + "ST JAMES CLOISTERS", "ST. JAMES'S CLOISTERS" + ) + + survey_list["Street / Block Name"] = np.where( + ((survey_list["NO."].isin( + [ + "FLAT 1 22", + "FLAT 2 22", + "FLAT 3 22", + "FLAT 4 22", + "FLAT 5 22", + "FLAT 6 22", + ] + )) & + (survey_list["Street / Block Name"] == "MELTON ROAD")), + "22 MELTON ROAD", + survey_list["Street / Block Name"] + ) + + survey_list["Street / Block Name"] = np.where( + ((survey_list["NO."].isin( + [ + "FLAT 1 24", + "FLAT 2 24", + "FLAT 3 24", + "FLAT 4 24", + "FLAT 5 24", + "FLAT 6 24", + ] + )) & + (survey_list["Street / Block Name"] == "MELTON ROAD")), + "24 MELTON ROAD", + survey_list["Street / Block Name"] + ) + + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace( + "TURRETT GREEN COURT SILENT STREET", "TURRET GREEN COURT" + ) + + # Turret green court flat 1 doesn't exist in the asset list + survey_list = survey_list[ + ~((survey_list["Street / Block Name"] == "TURRET GREEN COURT") & + (survey_list["NO."] == 1)) + ] + # 3, 45 raywell steet doesn't exist in the asset list + survey_list = survey_list[ + ~((survey_list["Street / Block Name"] == "45 RAYWELL STREET") & + (survey_list["NO."] == 3)) + ] + + # 40 Avondale drive doesn't exist in the asset list + survey_list = survey_list[ + ~((survey_list["Street / Block Name"] == "Avondale Drive") & + (survey_list["NO."] == 40)) + ] + # 17A beech road has the wrong postcode + survey_list["Post Code"] = np.where( + (survey_list["Street / Block Name"] == "BEECH ROAD") & + (survey_list["Post Code"] == "DH6 1JD"), + "DH6 1JB", + survey_list["Post Code"] + ) + return survey_list @staticmethod @@ -1250,6 +1314,10 @@ class DataLoader: if "," in str(house_number): house_number = house_number.split(",")[0].strip() + # We may also have a space for an instance of flat x y + if " " in str(house_number): + house_number = house_number.split(" ")[0].strip() + df = df[df["matching_address"].str.contains(str(house_number))] if df.empty: @@ -1270,7 +1338,7 @@ class DataLoader: raise ValueError("Investigate") if df.shape[0] != 1: - df = df[df["HouseNo"].astype(str) == str(house_number)] + df = df[df["HouseNo"].astype(str).str.lower() == str(house_number)] if df.shape[0] != 1: df = df[df["matching_postcode"].str.lower().str.contains(row["Post Code"].lower().strip())] if df.shape[0] != 1: From 067a66c1b172b63abc419a112525382ce7c2baa3 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Wed, 6 Mar 2024 22:45:22 +0000 Subject: [PATCH 377/526] ha38 wip - leaving for now --- .../ha_15_32/ha_analysis_batch_3.py | 54 ++++++++++++++++++- 1 file changed, 53 insertions(+), 1 deletion(-) diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index 567394a4..c4f6307c 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -599,7 +599,52 @@ class DataLoader: asset_list['ExtractedHouseNo'] = asset_list['matching_address'].apply(extract_house_no_if_flat) asset_list.loc[asset_list['ExtractedHouseNo'].notnull(), 'HouseNo'] = asset_list['ExtractedHouseNo'] asset_list['matching_address'] = asset_list['matching_address'].apply(rearrange_address_if_flat) - # We then need to + + # We update a few specific rows + asset_list["HouseNo"] = np.where( + (asset_list["Address_Line_1"].isin( + [ + "10 SOUTH VIEW/ROOM A1", + "10 SOUTH VIEW/ROOM A2", + "10 SOUTH VIEW/ROOM A3", + ] + )), + "10A", + asset_list["HouseNo"] + ) + + asset_list["matching_address"] = np.where( + (asset_list["Address_Line_1"].isin( + [ + "10 SOUTH VIEW/ROOM A1", + ] + )), + "10a, 10 south view/room a1, spennymoor, co. durham, dl16 7df'", + asset_list["matching_address"] + ) + + asset_list["HouseNo"] = np.where( + (asset_list["Address_Line_1"].isin( + [ + "10 SOUTH VIEW/ROOM B1", + "10 SOUTH VIEW/ROOM B2", + "10 SOUTH VIEW/ROOM B3", + "10 SOUTH VIEW/ROOM B4", + ] + )), + "10B", + asset_list["HouseNo"] + ) + + asset_list["matching_address"] = np.where( + (asset_list["Address_Line_1"].isin( + [ + "10 SOUTH VIEW/ROOM B1", + ] + )), + "10b, 10 south view/room b1, spennymoor, co. durham, dl16 7df", + asset_list["matching_address"] + ) return asset_list @@ -1147,6 +1192,13 @@ class DataLoader: survey_list["Post Code"] ) + survey_list["Street / Block Name"] = np.where( + (survey_list["Street / Block Name"] == "SOUTHVIEW") & + (survey_list["Post Code"] == "DL16 7DF"), + "SOUTH VIEW", + survey_list["Street / Block Name"] + ) + return survey_list @staticmethod From 5c3f6320dd6bfc2ddaac4fefb8786646c50e7945 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Thu, 7 Mar 2024 10:42:51 +0000 Subject: [PATCH 378/526] 29% through matching eco3 ha25 --- .../ha_15_32/ha_analysis_batch_3.py | 136 +++++++++++++++--- 1 file changed, 117 insertions(+), 19 deletions(-) diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index c4f6307c..3ea9649e 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -183,7 +183,7 @@ class DataLoader: def create_asset_list_matching_address(self, ha_name, asset_list): - if ha_name in ["HA1", "HA6", "HA16", "HA24", "HA25"]: + if ha_name in ["HA1", "HA6", "HA16", "HA24"]: asset_list["matching_address"] = asset_list[ self.COLUMN_CONFIG[ha_name]["address"] ].astype(str).str.lower().str.strip() @@ -214,6 +214,14 @@ class DataLoader: asset_list["Postcode"].astype(str).str.lower().str.strip() ) asset_list["matching_postcode"] = asset_list["Postcode"].astype(str).str.lower().str.strip() + elif ha_name == "HA25": + asset_list["matching_address"] = asset_list[ + self.COLUMN_CONFIG[ha_name]["address"] + ].astype(str).str.lower().str.strip() + + asset_list["matching_postcode"] = asset_list['matching_address'].apply( + lambda x: ' '.join(x.split()[-2:]) if pd.notnull(x) else x + ) elif ha_name == "HA28": asset_list["matching_address"] = ( asset_list["House Number"].astype(str).str.lower().str.strip() + ", " + @@ -352,6 +360,9 @@ class DataLoader: house_numbers = house_numbers.iloc[:, 0:1] house_numbers.columns = ['HouseNo'] + # Remove trailing punctuation such as , or ; + house_numbers["HouseNo"] = house_numbers["HouseNo"].str.rstrip(',;') + asset_list = pd.concat([asset_list, house_numbers[["HouseNo"]]], axis=1) return asset_list @@ -425,27 +436,16 @@ class DataLoader: workbook = openpyxl.load_workbook(filepath) asset_sheetname = self.get_asset_sheetname(workbook) - # TODO: TEMP - sheetnames_lower = [x.lower() for x in workbook.sheetnames] - if any("eco3" in x for x in sheetnames_lower): - raise Exception("REMOVE ME") - asset_sheet = workbook[asset_sheetname] asset_sheet_colnames = [cell.value for cell in asset_sheet[1]] if ha_name == "HA25": asset_sheet_colnames[11] = "matching_postcode" - values_only = not ha_name != "HA25" - rows_data = [] - if not values_only: - for row in asset_sheet.iter_rows(min_row=2, values_only=values_only): - row_data = [cell.value for cell in row] # This will get you the cell values - rows_data.append(row_data) - else: - for row in asset_sheet.iter_rows(min_row=2, values_only=values_only): # use values_only=True to get values - row_data = list(row) # No need for comprehension, values_only=True returns a tuple of values - rows_data.append(row_data) + + for row in asset_sheet.iter_rows(min_row=2, values_only=False): + row_data = [cell.value for cell in row] # This will get you the cell values + rows_data.append(row_data) asset_list = pd.DataFrame(rows_data, columns=asset_sheet_colnames) @@ -477,6 +477,29 @@ class DataLoader: if ha_name in ["HA1", "HA25"]: return asset_list, pd.DataFrame(), pd.DataFrame() + # If we have ECO3 surveys, we need to match them, because any properties treated under ECO3 won't be + # suitable under ECO4, since their walls will be filled + eco3_list = pd.DataFrame() + sheetnames_lower = [x.lower() for x in workbook.sheetnames] + eco3_sheetname_index = [i for i, x in enumerate(sheetnames_lower) if "eco3" in x.replace(" ", "")] + if eco3_sheetname_index: + eco3_sheetname = workbook.sheetnames[eco3_sheetname_index[0]] + eco3_sheet = workbook[eco3_sheetname] + eco3_rows = [] + for row in eco3_sheet.iter_rows(min_row=2, values_only=False): # Assuming the first row is headers + row_data = [cell.value for cell in row] # This will get you the cell values + eco3_rows.append(row_data) + + eco3_list = pd.DataFrame(eco3_rows, columns=[cell.value for cell in eco3_sheet[1]]) + # Remove columns that are None + eco3_list = eco3_list.loc[:, eco3_list.columns.notnull()] + # Remove rows that are completely empty + eco3_list = eco3_list.loc[eco3_list.loc[:, eco3_list.columns].notnull().any(axis=1)] + eco3_list["eco3_list_row_id"] = [ha_name + "_Eco3_" + str(i) for i in range(0, len(eco3_list))] + + # Perform the eco3 merge + eco3_list = self.merge_eco3_to_assets(asset_list, eco3_list, ha_name) + # We check if there is a survey list survey_sheetname = self.get_survey_sheetname(workbook) survey_sheet = workbook[survey_sheetname] @@ -518,7 +541,7 @@ class DataLoader: ciga_list = self.dedupe_ciga_list(ciga_list) ciga_list = self.merge_ciga_to_assets(asset_list, ciga_list, ha_name) - return asset_list, survey_list, ciga_list + return asset_list, survey_list, ciga_list, eco3_list @staticmethod def correct_ha6_asset_list(asset_list): @@ -1433,6 +1456,79 @@ class DataLoader: return survey_list + def merge_eco3_to_assets(self, asset_list, eco3_list, ha_name): + + # We add on a matching postcode without spaces for this + # asset_list["matching_postcode_no_space"] = asset_list["matching_postcode"].str.lower().str.replace(" ", "") + + # May need an eco3 list correction function + + # NEADS DRIVE, postcode with bs305dt, is not found in the asset list + eco3_list = eco3_list[ + ~(eco3_list["Post Code"] == "BS305DT") + ] + # Drop rows with missings postcode + eco3_list = eco3_list[ + ~pd.isnull(eco3_list["Post Code"]) + ] + + missed_postcodes = [] + if ha_name == "HA25": + missed_postcodes = { + postcode.lower() for postcode in eco3_list["Post Code"] if + postcode.lower() not in asset_list["matching_postcode"].values + } + eco3_list = eco3_list[~eco3_list["Post Code"].str.lower().isin(missed_postcodes)] + + matching_lookup = [] + missed = [] + for _, row in tqdm(eco3_list.iterrows(), total=len(eco3_list)): + + postcode = row["Post Code"].lower().strip() + + # df will never be empty, since we've already done a check for common postcodes + df = asset_list[ + asset_list["matching_postcode"].str.contains(postcode) + ] + + house_number = row["NO "] + if isinstance(house_number, str): + house_number = house_number.lower().strip() + + if not any(df["matching_address"].str.contains(str(house_number))): + if "flat" in str(house_number): + house_number = house_number.split("flat")[1].strip() + + # We check if we had an instance of flat x, y + if "," in str(house_number): + house_number = house_number.split(",")[0].strip() + + # We may also have a space for an instance of flat x y + if " " in str(house_number): + house_number = house_number.split(" ")[0].strip() + + df = df[df["matching_address"].str.contains(str(house_number))] + + if df.empty: + missed.append(row["eco3_list_row_id"]) + continue + + if df.shape[0] != 1: + df = df[df["HouseNo"].astype(str).str.lower() == str(house_number)] + + if df.shape[0] != 1: + print(row["Street / Block Name"]) + print(house_number) + print(row["Post Code"]) + raise ValueError("Investigate") + + matching_lookup.append( + { + "eco3_list_row_id": row["eco3_list_row_id"], + "asset_list_row_id": df["asset_list_row_id"].values[0], + } + ) + @staticmethod def extract_streetname(address, house_number=None, postcode=None): """ @@ -4008,11 +4104,13 @@ def app(): # Add in: "HA25" # TODO: Remove ECO3 sales from HA25 priority_has = [ - "HA1", "HA6", "HA7", "HA14", "HA15", "HA16", "HA24", "HA28", "HA32", "HA38", "HA39", "HA107", + "HA1", "HA6", "HA7", "HA14", "HA15", "HA16", "HA20", "HA24", "HA25", "HA28", "HA32", "HA39", "HA107", ] # Next HAs to do: 15[DONE], 32 [DONE], 33 [Input format is 4 parts and no eco4 jobs identified - come back on this], # Then: 28 [DONE], - # 38, 41, 10, 14, 20, 48 + # 41, 10, 14 [DONE], 20, 48, 50 + # 38[problematic, but no ECO4] + # TODO - do 50 and 25 next # Filter down the directories to only the priority HAs directories = [d for d in directories if d.split("/")[2] in priority_has] From ef77db10373c653e28c82265460ce9fd3bf3f3bf Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Thu, 7 Mar 2024 10:56:27 +0000 Subject: [PATCH 379/526] HA25 eco3 matching 91% complete --- etl/eligibility/ha_15_32/ha_analysis_batch_3.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index 3ea9649e..ea5b0456 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -1516,6 +1516,15 @@ class DataLoader: if df.shape[0] != 1: df = df[df["HouseNo"].astype(str).str.lower() == str(house_number)] + if df.empty: + missed.append(row["eco3_list_row_id"]) + continue + + if df.shape[0] != 1: + # Perform a search on streetname + street_name_section1 = row["Street / Block Name"].lower().split("/")[0].split(",")[0] + df = df[df["matching_address"].str.contains(street_name_section1)] + if df.shape[0] != 1: print(row["Street / Block Name"]) print(house_number) From 022244377d36557f83081e505b8068ab2bd98004 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Thu, 7 Mar 2024 12:26:16 +0000 Subject: [PATCH 380/526] working on fixing missed matched in eco3 matching --- .../ha_15_32/ha_analysis_batch_3.py | 84 +++++++++++++++---- 1 file changed, 66 insertions(+), 18 deletions(-) diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index ea5b0456..a5845990 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -171,6 +171,10 @@ class DataLoader: "HA107": 51, } + UNMATCHED_ECO3 = { + "HA25": 94 + } + def __init__(self, directories, december_figures_filepath, use_cache, rebuild): self.directories = directories self.use_cache = use_cache @@ -1458,9 +1462,6 @@ class DataLoader: def merge_eco3_to_assets(self, asset_list, eco3_list, ha_name): - # We add on a matching postcode without spaces for this - # asset_list["matching_postcode_no_space"] = asset_list["matching_postcode"].str.lower().str.replace(" ", "") - # May need an eco3 list correction function # NEADS DRIVE, postcode with bs305dt, is not found in the asset list @@ -1471,8 +1472,17 @@ class DataLoader: eco3_list = eco3_list[ ~pd.isnull(eco3_list["Post Code"]) ] + # We have a bunch of genuine duplicates + eco3_list = eco3_list.drop_duplicates(["NO ", "Street / Block Name", "Post Code"]) + + eco3_list["Street / Block Name"] = eco3_list["Street / Block Name"].str.replace( + "HALWILL MEADOOW", "HALWILL MEADOW" + ) + + eco3_list["Street / Block Name"] = eco3_list["Street / Block Name"].str.replace( + "Hall Road", "Hall Rd" + ) - missed_postcodes = [] if ha_name == "HA25": missed_postcodes = { postcode.lower() for postcode in eco3_list["Post Code"] if @@ -1480,10 +1490,18 @@ class DataLoader: } eco3_list = eco3_list[~eco3_list["Post Code"].str.lower().isin(missed_postcodes)] + # For the asset list, we create a matching address without any punctuation + # TODO: We should generally just remove puncutation from addresses when matching + asset_list['matching_address_no_punctuation'] = asset_list['matching_address'].str.replace(r'[^\w\s]', '', + regex=True) + # Remove double spaces + asset_list["matching_address_no_punctuation"] = asset_list["matching_address_no_punctuation"].str.replace( + " ", " " + ) + matching_lookup = [] missed = [] for _, row in tqdm(eco3_list.iterrows(), total=len(eco3_list)): - postcode = row["Post Code"].lower().strip() # df will never be empty, since we've already done a check for common postcodes @@ -1507,24 +1525,20 @@ class DataLoader: if " " in str(house_number): house_number = house_number.split(" ")[0].strip() - df = df[df["matching_address"].str.contains(str(house_number))] + # We must do the house number filter + df = df[df["HouseNo"].astype(str).str.lower() == str(house_number)] + + # Perform a search on streetname + # We do this to prevent duplicate matches to properties with the same postcode and house number, + # but different streets + street_name_section1 = row["Street / Block Name"].lower().split("/")[0].split(",")[0] + street_name_section1 = re.sub(r'[^\w\s]', '', street_name_section1) + df = df[df["matching_address_no_punctuation"].str.contains(street_name_section1)] if df.empty: missed.append(row["eco3_list_row_id"]) continue - if df.shape[0] != 1: - df = df[df["HouseNo"].astype(str).str.lower() == str(house_number)] - - if df.empty: - missed.append(row["eco3_list_row_id"]) - continue - - if df.shape[0] != 1: - # Perform a search on streetname - street_name_section1 = row["Street / Block Name"].lower().split("/")[0].split(",")[0] - df = df[df["matching_address"].str.contains(street_name_section1)] - if df.shape[0] != 1: print(row["Street / Block Name"]) print(house_number) @@ -1538,6 +1552,40 @@ class DataLoader: } ) + # We verify the missed + # -HA25 contains 88 missed entries. These are actually 8 unique postcodes, where surveys were conducted + # on properties that had house numbers outside of the asset list + if len(missed) != self.UNMATCHED_ECO3[ha_name]: + raise ValueError( + f"Unmatched addresses for {ha_name} is not as expected, got {len(missed)} unmatched" + ) + + # TODO: 194 missed + + matching_lookup = pd.DataFrame(matching_lookup) + # Check dupes as this will cause problems later on + if matching_lookup["asset_list_row_id"].duplicated().any(): + raise ValueError("Duplicated asset list row ids") + + missed_df = eco3_list[eco3_list["eco3_list_row_id"].isin(missed)] + missed_df.head(3).tail(1)["eco3_list_row_id"] + + duped_ids = matching_lookup[matching_lookup["asset_list_row_id"].duplicated()]["asset_list_row_id"].tolist() + duped_df = matching_lookup[ + matching_lookup["asset_list_row_id"].isin(duped_ids) + ] + duped_surveys = eco3_list[ + eco3_list["eco3_list_row_id"].isin(duped_df["eco3_list_row_id"].values) + ].copy() + + duped_surveys = duped_surveys.merge(matching_lookup, how="left", on="eco3_list_row_id") + + duped_surveys[ + ["NO ", "Street / Block Name", "Post Code", "eco3_list_row_id", "asset_list_row_id"] + ].sort_values("asset_list_row_id").head() + + asset_list[asset_list["asset_list_row_id"] == "HA2515145"]["matching_address"].values + @staticmethod def extract_streetname(address, house_number=None, postcode=None): """ From b09bd63b53c8d9b14f11c1c5b7cb38b28c63afbc Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Thu, 7 Mar 2024 12:53:25 +0000 Subject: [PATCH 381/526] done with ha25 matching for now --- .../ha_15_32/ha_analysis_batch_3.py | 66 +++++++++++-------- 1 file changed, 38 insertions(+), 28 deletions(-) diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index a5845990..f0813aef 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -172,7 +172,7 @@ class DataLoader: } UNMATCHED_ECO3 = { - "HA25": 94 + "HA25": 119 } def __init__(self, directories, december_figures_filepath, use_cache, rebuild): @@ -478,7 +478,7 @@ class DataLoader: # For HA1 and HA25, there is an exception in the structure of the data. We don't have any survey or ciga # lists, and so # we can return the asset list now - if ha_name in ["HA1", "HA25"]: + if ha_name in ["HA1"]: return asset_list, pd.DataFrame(), pd.DataFrame() # If we have ECO3 surveys, we need to match them, because any properties treated under ECO3 won't be @@ -1460,10 +1460,8 @@ class DataLoader: return survey_list - def merge_eco3_to_assets(self, asset_list, eco3_list, ha_name): - - # May need an eco3 list correction function - + @staticmethod + def correct_ha25_eco3_list(eco3_list): # NEADS DRIVE, postcode with bs305dt, is not found in the asset list eco3_list = eco3_list[ ~(eco3_list["Post Code"] == "BS305DT") @@ -1483,6 +1481,29 @@ class DataLoader: "Hall Road", "Hall Rd" ) + eco3_list["Street / Block Name"] = eco3_list["Street / Block Name"].str.replace( + "SPRINGFIELD WAY SAINT DAY", "SPRINGFIELD WAY ST DAY" + ) + eco3_list["Street / Block Name"] = eco3_list["Street / Block Name"].str.replace( + "BOND SPEAR COURT", "BOND-SPEAR COURT" + ) + eco3_list["Street / Block Name"] = eco3_list["Street / Block Name"].str.replace( + "ST.MARYS HILL", "ST MARYS HILL" + ) + # Correct the postcode for edmund road + eco3_list["Post Code"] = np.where( + (eco3_list["Street / Block Name"] == "EDMUND ROAD") & + (eco3_list["Post Code"] == "TR14 8QJ"), + "TR15 1BY", + eco3_list["Post Code"] + ) + return eco3_list + + def merge_eco3_to_assets(self, asset_list, eco3_list, ha_name): + + eco3_list_correction_function = getattr(self, f"correct_{ha_name.lower()}_eco3_list") + eco3_list = eco3_list_correction_function(eco3_list) + if ha_name == "HA25": missed_postcodes = { postcode.lower() for postcode in eco3_list["Post Code"] if @@ -1492,8 +1513,9 @@ class DataLoader: # For the asset list, we create a matching address without any punctuation # TODO: We should generally just remove puncutation from addresses when matching - asset_list['matching_address_no_punctuation'] = asset_list['matching_address'].str.replace(r'[^\w\s]', '', - regex=True) + asset_list['matching_address_no_punctuation'] = asset_list['matching_address'].str.replace( + r'[^\w\s]', '', regex=True + ) # Remove double spaces asset_list["matching_address_no_punctuation"] = asset_list["matching_address_no_punctuation"].str.replace( " ", " " @@ -1502,6 +1524,8 @@ class DataLoader: matching_lookup = [] missed = [] for _, row in tqdm(eco3_list.iterrows(), total=len(eco3_list)): + # if row["eco3_list_row_id"] == "HA25_Eco3_5422": + # raise Exception() postcode = row["Post Code"].lower().strip() # df will never be empty, since we've already done a check for common postcodes @@ -1553,38 +1577,24 @@ class DataLoader: ) # We verify the missed - # -HA25 contains 88 missed entries. These are actually 8 unique postcodes, where surveys were conducted - # on properties that had house numbers outside of the asset list + # HA25 contains 119 missed entries. These are actually 24 unique postcodes, and the majority belong to 2 + # where many surveys were conducted on house numbers, not in the asset list if len(missed) != self.UNMATCHED_ECO3[ha_name]: raise ValueError( f"Unmatched addresses for {ha_name} is not as expected, got {len(missed)} unmatched" ) - # TODO: 194 missed - matching_lookup = pd.DataFrame(matching_lookup) # Check dupes as this will cause problems later on if matching_lookup["asset_list_row_id"].duplicated().any(): raise ValueError("Duplicated asset list row ids") - missed_df = eco3_list[eco3_list["eco3_list_row_id"].isin(missed)] - missed_df.head(3).tail(1)["eco3_list_row_id"] + # Merge onto eco3 list + eco3_list = eco3_list.merge(matching_lookup, how="left", on="eco3_list_row_id") - duped_ids = matching_lookup[matching_lookup["asset_list_row_id"].duplicated()]["asset_list_row_id"].tolist() - duped_df = matching_lookup[ - matching_lookup["asset_list_row_id"].isin(duped_ids) - ] - duped_surveys = eco3_list[ - eco3_list["eco3_list_row_id"].isin(duped_df["eco3_list_row_id"].values) - ].copy() + asset_list = asset_list.drop(columns=["matching_address_no_punctuation"]) - duped_surveys = duped_surveys.merge(matching_lookup, how="left", on="eco3_list_row_id") - - duped_surveys[ - ["NO ", "Street / Block Name", "Post Code", "eco3_list_row_id", "asset_list_row_id"] - ].sort_values("asset_list_row_id").head() - - asset_list[asset_list["asset_list_row_id"] == "HA2515145"]["matching_address"].values + return eco3_list @staticmethod def extract_streetname(address, house_number=None, postcode=None): From 961b53d523bf7dc82d9e83459861cb3aa2865c93 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Thu, 7 Mar 2024 12:58:29 +0000 Subject: [PATCH 382/526] Adding return for HA25 --- etl/eligibility/ha_15_32/ha_analysis_batch_3.py | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index f0813aef..7ad50583 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -479,7 +479,7 @@ class DataLoader: # lists, and so # we can return the asset list now if ha_name in ["HA1"]: - return asset_list, pd.DataFrame(), pd.DataFrame() + return asset_list, pd.DataFrame(), pd.DataFrame(), pd.DataFrame() # If we have ECO3 surveys, we need to match them, because any properties treated under ECO3 won't be # suitable under ECO4, since their walls will be filled @@ -504,6 +504,10 @@ class DataLoader: # Perform the eco3 merge eco3_list = self.merge_eco3_to_assets(asset_list, eco3_list, ha_name) + if ha_name in ["HA25"]: + # Accomodate ha25 unique structure + return asset_list, pd.DataFrame(), pd.DataFrame(), eco3_list + # We check if there is a survey list survey_sheetname = self.get_survey_sheetname(workbook) survey_sheet = workbook[survey_sheetname] @@ -1592,7 +1596,7 @@ class DataLoader: # Merge onto eco3 list eco3_list = eco3_list.merge(matching_lookup, how="left", on="eco3_list_row_id") - asset_list = asset_list.drop(columns=["matching_address_no_punctuation"]) + asset_list.drop(columns=["matching_address_no_punctuation"], inplace=True) return eco3_list @@ -1756,7 +1760,7 @@ class DataLoader: continue # Load asset list logger.info("Loading data for {}".format(ha_name)) - asset_list, survey_list, ciga_list = self.load_asset_list( + asset_list, survey_list, ciga_list, eco3_list = self.load_asset_list( filepath=filepath, ha_name=ha_name, ) @@ -1764,7 +1768,8 @@ class DataLoader: data[ha_name] = { "asset_list": asset_list, "survey_list": survey_list, - "ciga_list": ciga_list + "ciga_list": ciga_list, + "eco3_list": eco3_list } self.data = data From 7f88f0e0f59e584d82a6799671e8f1a64a034392 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Thu, 7 Mar 2024 13:59:32 +0000 Subject: [PATCH 383/526] Added in the re-labelling of assets based on eco3 merge --- .../ha_15_32/ha_analysis_batch_3.py | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index 7ad50583..21509923 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -1812,6 +1812,7 @@ class DataLoader: asset_list = data_assets["asset_list"].copy() survey_list = data_assets["survey_list"].copy() ciga_list = data_assets["ciga_list"].copy() + eco3_list = data_assets.get("eco3_list", pd.DataFrame()) asset_list_starting_size = asset_list.shape[0] @@ -1859,6 +1860,25 @@ class DataLoader: if asset_list.shape[0] != asset_list_starting_size: raise ValueError("The asset list has changed in size") + # If we have eco3 surveys, we set a property to not eligible + if not eco3_list.empty: + eco3_list_to_merge = eco3_list[["asset_list_row_id"]].copy() + eco3_list_to_merge["has_eco3"] = True + asset_list = asset_list.merge( + eco3_list_to_merge, how="left", on="asset_list_row_id" + ) + + if asset_list.shape[0] != asset_list_starting_size: + raise ValueError("The asset list has changed in size, when merging on eco3") + + # Any rows that have an eco3 survey are set to not eligible + asset_list["ECO Eligibility"] = np.where( + asset_list["has_eco3"] == True, + "not eligible", + asset_list["ECO Eligibility"] + ) + asset_list = asset_list.drop(columns=["has_eco3"]) + # Report on sales sales_report = {} if not survey_list.empty: From 9a0c6c3e8fbae7a23980aa7e75912ef6202ab29d Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Thu, 7 Mar 2024 14:18:08 +0000 Subject: [PATCH 384/526] expanded eco3 matching --- .../ha_15_32/ha_analysis_batch_3.py | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index 21509923..06bb0d96 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -172,7 +172,7 @@ class DataLoader: } UNMATCHED_ECO3 = { - "HA25": 119 + "HA25": 154 } def __init__(self, directories, december_figures_filepath, use_cache, rebuild): @@ -1508,12 +1508,16 @@ class DataLoader: eco3_list_correction_function = getattr(self, f"correct_{ha_name.lower()}_eco3_list") eco3_list = eco3_list_correction_function(eco3_list) + asset_list["matching_postcode_nospace"] = asset_list["matching_postcode"].str.replace(" ", "").str.lower() + eco3_list["postcode_no_space"] = eco3_list["Post Code"].str.lower().str.replace(" ", "") + if ha_name == "HA25": + # 317 -> 259 missed_postcodes = { - postcode.lower() for postcode in eco3_list["Post Code"] if - postcode.lower() not in asset_list["matching_postcode"].values + postcode for postcode in eco3_list["postcode_no_space"] if + postcode not in asset_list["matching_postcode_nospace"].values } - eco3_list = eco3_list[~eco3_list["Post Code"].str.lower().isin(missed_postcodes)] + eco3_list = eco3_list[~eco3_list["postcode_no_space"].isin(missed_postcodes)] # For the asset list, we create a matching address without any punctuation # TODO: We should generally just remove puncutation from addresses when matching @@ -1530,11 +1534,11 @@ class DataLoader: for _, row in tqdm(eco3_list.iterrows(), total=len(eco3_list)): # if row["eco3_list_row_id"] == "HA25_Eco3_5422": # raise Exception() - postcode = row["Post Code"].lower().strip() + postcode = row["postcode_no_space"] # df will never be empty, since we've already done a check for common postcodes df = asset_list[ - asset_list["matching_postcode"].str.contains(postcode) + asset_list["matching_postcode_nospace"].str.contains(postcode) ] house_number = row["NO "] @@ -1588,6 +1592,8 @@ class DataLoader: f"Unmatched addresses for {ha_name} is not as expected, got {len(missed)} unmatched" ) + # 154 missed, 2827 matched for HA 25 + matching_lookup = pd.DataFrame(matching_lookup) # Check dupes as this will cause problems later on if matching_lookup["asset_list_row_id"].duplicated().any(): From 8b70fb346c0ce51acd24b245bbbecedeaa10d30c Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Thu, 7 Mar 2024 15:00:51 +0000 Subject: [PATCH 385/526] matching ha50 --- .../ha_15_32/ha_analysis_batch_3.py | 56 ++++++++++++++++--- 1 file changed, 49 insertions(+), 7 deletions(-) diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index 06bb0d96..4708bf35 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -172,7 +172,8 @@ class DataLoader: } UNMATCHED_ECO3 = { - "HA25": 154 + "HA25": 154, + "HA50": 5 } def __init__(self, directories, december_figures_filepath, use_cache, rebuild): @@ -262,6 +263,10 @@ class DataLoader: asset_list["add_5"].astype(str).str.lower().str.strip() + ", " + \ asset_list["post_code"].astype(str).str.lower().str.strip() asset_list["matching_postcode"] = asset_list["post_code"].astype(str).str.lower().str.strip() + elif ha_name == "HA50": + asset_list["matching_address"] = asset_list["Address Line 1"].astype(str).str.lower().str.strip() + ", " + \ + asset_list["Post Code"].astype(str).str.lower().str.strip() + asset_list["matching_postcode"] = asset_list["Post Code"].astype(str).str.lower().str.strip() elif ha_name == "HA107": # Create matching_address by concatenating House No, Street, Town, District, Postcode asset_list["matching_address"] = asset_list["House No"].astype(str).str.lower().str.strip() + ", " + \ @@ -433,6 +438,8 @@ class DataLoader: return "ECO Surveys" elif "ECO Survey" in workbook.sheetnames: return "ECO Survey" + elif "ECO 4 Surveys completed" in workbook.sheetnames: + return "ECO 4 Surveys completed" else: return "ECO surveys" @@ -1289,6 +1296,34 @@ class DataLoader: return survey_list + @staticmethod + def correct_ha50_survey_list(survey_list): + + survey_list["Post Code"] = np.where( + (survey_list["Street / Block Name"] == 'COSELEY STREET') & + (survey_list["Post Code"] == 'ST16 1LR'), + "ST6 1JU", + survey_list["Post Code"] + ) + + # Remove some of COSELEY STREET, as we have surveys done, outside of the asset list + survey_list = survey_list[ + ~((survey_list["Street / Block Name"] == "COSELEY STREET") & + (survey_list["Post Code"] == "ST6 1JU") & + (survey_list["NO."].isin([96]))) + ] + + survey_list["Post Code"] = survey_list["Post Code"].str.replace("ST33JZ", "ST3 3JZ") + + # Remove some of Jesmond drive as we have surveys done outside of the asset list + survey_list = survey_list[ + ~((survey_list["Street / Block Name"] == "Jesmond Drive") & + (survey_list["Post Code"] == "ST3 3JZ") & + (survey_list["NO."].isin([29]))) + ] + + return survey_list + @staticmethod def correct_ha107_survey_list(survey_list): # Replace Front Street, East Stockham with Front Street, East Stockwith @@ -1503,6 +1538,10 @@ class DataLoader: ) return eco3_list + @staticmethod + def correct_ha50_eco3_list(eco3_list): + return eco3_list + def merge_eco3_to_assets(self, asset_list, eco3_list, ha_name): eco3_list_correction_function = getattr(self, f"correct_{ha_name.lower()}_eco3_list") @@ -1517,6 +1556,7 @@ class DataLoader: postcode for postcode in eco3_list["postcode_no_space"] if postcode not in asset_list["matching_postcode_nospace"].values } + eco3_list = eco3_list[~eco3_list["postcode_no_space"].isin(missed_postcodes)] # For the asset list, we create a matching address without any punctuation @@ -4199,16 +4239,18 @@ def app(): # Grab the December HA figures filepath december_figures_filepath = "local_data/ha_data/HA_December_figures.csv" - # Add in: "HA25" + # Add in: # TODO: Remove ECO3 sales from HA25 priority_has = [ - "HA1", "HA6", "HA7", "HA14", "HA15", "HA16", "HA20", "HA24", "HA25", "HA28", "HA32", "HA39", "HA107", + "HA1", "HA6", "HA7", "HA14", "HA15", "HA16", "HA24", "HA25", "HA28", "HA32", "HA39", "HA50", "HA107", ] - # Next HAs to do: 15[DONE], 32 [DONE], 33 [Input format is 4 parts and no eco4 jobs identified - come back on this], + # Next HAs to do: 14 [DONE], 15[DONE], 32 [DONE], 33 [Input format is 4 parts and no eco4 jobs identified - come + # back on this], # Then: 28 [DONE], - # 41, 10, 14 [DONE], 20, 48, 50 - # 38[problematic, but no ECO4] - # TODO - do 50 and 25 next + # 41, 48, 50 + # 38[problematic, but no ECO4], 10 problematic (no eligibility), + # 20 has barely any in + # TODO - do 50 # Filter down the directories to only the priority HAs directories = [d for d in directories if d.split("/")[2] in priority_has] From 3001a98421b377cb31e2c3b667528e8d4b80a150 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Thu, 7 Mar 2024 15:02:23 +0000 Subject: [PATCH 386/526] ha50 30% matched --- etl/eligibility/ha_15_32/ha_analysis_batch_3.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index 4708bf35..901784e1 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -1322,6 +1322,10 @@ class DataLoader: (survey_list["NO."].isin([29]))) ] + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace( + "BRUNDELL OVAL", "BRUNDALL OVAL" + ) + return survey_list @staticmethod From 4afd012e51bfc3b366dc1e8d1f70281bb1097bd0 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Thu, 7 Mar 2024 15:14:53 +0000 Subject: [PATCH 387/526] ha50 51% matched --- etl/eligibility/ha_15_32/ha_analysis_batch_3.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index 901784e1..bde6f647 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -1326,6 +1326,13 @@ class DataLoader: "BRUNDELL OVAL", "BRUNDALL OVAL" ) + # Remove 4 Linden Place + survey_list = survey_list[ + ~((survey_list["Street / Block Name"] == "Linden Place") & + (survey_list["Post Code"] == "ST3 3AT") & + (survey_list["NO."].isin([4]))) + ] + return survey_list @staticmethod From 1146f34eba62ab2b00f610502b17ba6f9425cf43 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Thu, 7 Mar 2024 15:24:20 +0000 Subject: [PATCH 388/526] matching 81% complete --- .../ha_15_32/ha_analysis_batch_3.py | 39 +++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index bde6f647..818f6e4f 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -1333,6 +1333,45 @@ class DataLoader: (survey_list["NO."].isin([4]))) ] + # Remove 11 Tilehurst Place + survey_list = survey_list[ + ~((survey_list["Street / Block Name"] == "Tilehurst Place") & + (survey_list["Post Code"] == "ST3 3AP") & + (survey_list["NO."].isin([11]))) + ] + + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace( + "deavile road", "DEAVILLE ROAD" + ) + + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace( + "WOOLISCROFT ROAD", "WOOLLISCROFT ROAD" + ) + + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace( + "Leak Road", "Leek Road" + ) + + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace( + "Springfield road", "Springfields road" + ) + + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace( + "MILLWARD RD", "MILLWARD ROAD" + ) + + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace( + "REPINGTON RD", "REPINGTON ROAD" + ) + + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace( + "ECCELSTONE PLACE", "ECCLESTONE PLACE" + ) + + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace( + "St. James Place", "St James Place" + ) + return survey_list @staticmethod From 5a1aa3995221ddf125b25c6d619165fdbcab37ff Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Thu, 7 Mar 2024 15:33:26 +0000 Subject: [PATCH 389/526] ha50 93% complete --- .../ha_15_32/ha_analysis_batch_3.py | 44 +++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index 818f6e4f..3b9bd7ca 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -1372,6 +1372,50 @@ class DataLoader: "St. James Place", "St James Place" ) + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace( + "CHELL HEATH RD", "CHELL HEATH ROAD" + ) + # Correct postcode + survey_list["Post Code"] = np.where( + (survey_list["Street / Block Name"] == 'CHELL HEATH ROAD') & + (survey_list["Post Code"] == 'ST6 6HU'), + "ST6 6HJ", + survey_list["Post Code"] + ) + + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace( + "Franklin Rd", "Franklin Road" + ) + + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace( + "Lodge Rd", "Lodge Road" + ) + + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace( + "St Matthews Street", "St Matthew Street" + ) + + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace( + "Grove Bank Road", "Grovebank Road" + ) + + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace( + "OVERSLEY RD", "OVERSLEY ROAD" + ) + + # Replace all of the " RD" with " ROAD" + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace( + " RD", " ROAD" + ) + + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace( + "St. Georges Crescent", "St Georges Crescent" + ) + + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace( + "Tewson Road", "Tewson Green" + ) + return survey_list @staticmethod From d4e378f109deb3c71b87165309a5935b3641a915 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Thu, 7 Mar 2024 15:40:37 +0000 Subject: [PATCH 390/526] ha50 matching complete subject to checks --- .../ha_15_32/ha_analysis_batch_3.py | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index 3b9bd7ca..a5b99a72 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -1416,6 +1416,35 @@ class DataLoader: "Tewson Road", "Tewson Green" ) + # Remove 55 Seabridge Lane + survey_list = survey_list[ + ~((survey_list["Street / Block Name"] == "Seabridge Lane") & + (survey_list["Post Code"] == "ST5 4AG") & + (survey_list["NO."].isin([55]))) + ] + + survey_list = survey_list[ + ~((survey_list["Street / Block Name"] == "Tyne Way") & + (survey_list["Post Code"] == "ST5 4AX") & + (survey_list["NO."].isin([56]))) + ] + + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace( + "St.Bernards Place", "St Bernard Place" + ) + + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace( + "Penarth Road", "Penarth Grove" + ) + + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace( + "St. Marys Road", "St Marys Road" + ) + + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace( + "Larch Drive", "Larch Grove" + ) + return survey_list @staticmethod From 33b3f51ca4701ede548e6af82f80ae191a3c0710 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Thu, 7 Mar 2024 15:54:40 +0000 Subject: [PATCH 391/526] handling dupes for ha50 --- etl/eligibility/ha_15_32/ha_analysis_batch_3.py | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index a5b99a72..7124919e 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -1445,6 +1445,21 @@ class DataLoader: "Larch Drive", "Larch Grove" ) + # Drop 31 Lauder place north, as there is a duplicate. THis version also has a wrong postcode + survey_list = survey_list[ + ~((survey_list["Street / Block Name"] == "LAUDER PLACE NORTH") & + (survey_list["Post Code"] == "ST20QS") & + (survey_list["NO."].isin([31]))) + ] + + # Handle dropping of dupes + survey_list["street_pruner"] = survey_list["Street / Block Name"].str.lower().str.replace(" ", "") + survey_list["postcode_pruner"] = survey_list["Post Code"].str.lower().str.replace(" ", "") + + # Should go to 18 + survey_list = survey_list.drop_duplicates(["NO.", "street_pruner", "postcode_pruner"]) + survey_list = survey_list.drop(columns=["street_pruner", "postcode_pruner"]) + return survey_list @staticmethod From 23eaa5600118f0df54667ea36422153158db8dd5 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Thu, 7 Mar 2024 15:57:00 +0000 Subject: [PATCH 392/526] checked ha50 ciga merge --- etl/eligibility/ha_15_32/ha_analysis_batch_3.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index 7124919e..2feded98 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -168,6 +168,7 @@ class DataLoader: "HA15": 3, "HA16": 7, "HA24": 12, + "HA50": 4, "HA107": 51, } @@ -429,6 +430,8 @@ class DataLoader: return "CIGA checks" elif "CIGA check" in workbook.sheetnames: return "CIGA check" + elif "CIGA requested" in workbook.sheetnames: + return "CIGA requested" else: return "CIGA" From 180c0c53eaa48c185c75cf22aee448aac91bbe30 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Thu, 7 Mar 2024 16:26:58 +0000 Subject: [PATCH 393/526] done with ha50 --- etl/eligibility/ha_15_32/ha_analysis_batch_3.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index 2feded98..0720a686 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -1982,7 +1982,8 @@ class DataLoader: "ECO4 GBIS (ECO+)": "GBIS", "ECO4 GBIS (ECO+) JJC UNDER 73m²": "GBIS", "ECO4 AFFORDABLE WARMTH": "ECO4", - "Affordable Warmth": "ECO4" + "Affordable Warmth": "ECO4", + "ECO4 GBIS (ECO+) JJC UNDER 73m² ": "GBIS", } eco_eligibility_map = { From c43349a5777326145107a6406779eadcdc6e9dab Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Thu, 7 Mar 2024 16:39:47 +0000 Subject: [PATCH 394/526] Added ha41 matching --- .../ha_15_32/ha_analysis_batch_3.py | 22 ++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index 0720a686..4cf447aa 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -174,7 +174,8 @@ class DataLoader: UNMATCHED_ECO3 = { "HA25": 154, - "HA50": 5 + "HA41": 26, + "HA50": 5, } def __init__(self, directories, december_figures_filepath, use_cache, rebuild): @@ -264,6 +265,14 @@ class DataLoader: asset_list["add_5"].astype(str).str.lower().str.strip() + ", " + \ asset_list["post_code"].astype(str).str.lower().str.strip() asset_list["matching_postcode"] = asset_list["post_code"].astype(str).str.lower().str.strip() + elif ha_name == "HA41": + asset_list["matching_address"] = asset_list["AddressLine1"].astype(str).str.lower().str.strip() + ", " + \ + asset_list["AddressLine2"].astype(str).str.lower().str.strip() + ", " + \ + asset_list["AddressLine3"].astype(str).str.lower().str.strip() + ", " + \ + asset_list["AddressLine4"].astype(str).str.lower().str.strip() + ", " + \ + asset_list["AddressLine5"].astype(str).str.lower().str.strip() + ", " + \ + asset_list["Postcode"].astype(str).str.lower().str.strip() + asset_list["matching_postcode"] = asset_list["Postcode"].astype(str).str.lower().str.strip() elif ha_name == "HA50": asset_list["matching_address"] = asset_list["Address Line 1"].astype(str).str.lower().str.strip() + ", " + \ asset_list["Post Code"].astype(str).str.lower().str.strip() @@ -1683,6 +1692,10 @@ class DataLoader: def correct_ha50_eco3_list(eco3_list): return eco3_list + @staticmethod + def correct_ha41_eco3_list(eco3_list): + return eco3_list + def merge_eco3_to_assets(self, asset_list, eco3_list, ha_name): eco3_list_correction_function = getattr(self, f"correct_{ha_name.lower()}_eco3_list") @@ -4384,15 +4397,14 @@ def app(): # Add in: # TODO: Remove ECO3 sales from HA25 priority_has = [ - "HA1", "HA6", "HA7", "HA14", "HA15", "HA16", "HA24", "HA25", "HA28", "HA32", "HA39", "HA50", "HA107", + "HA1", "HA6", "HA7", "HA14", "HA15", "HA16", "HA24", "HA25", "HA28", "HA32", "HA39", "HA41", "HA50", "HA107", ] # Next HAs to do: 14 [DONE], 15[DONE], 32 [DONE], 33 [Input format is 4 parts and no eco4 jobs identified - come # back on this], # Then: 28 [DONE], # 41, 48, 50 - # 38[problematic, but no ECO4], 10 problematic (no eligibility), - # 20 has barely any in - # TODO - do 50 + # Ignore for now: + # TODO: 38[problematic, but no ECO4], 10 problematic (no eligibility), 20 has barely any in # Filter down the directories to only the priority HAs directories = [d for d in directories if d.split("/")[2] in priority_has] From c4af2251f4fac0af95676b7158e5baf1ad9d3d3c Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Thu, 7 Mar 2024 16:41:58 +0000 Subject: [PATCH 395/526] data load for ha41 --- etl/eligibility/ha_15_32/ha_analysis_batch_3.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index 4cf447aa..c2d585a2 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -452,6 +452,8 @@ class DataLoader: return "ECO Survey" elif "ECO 4 Surveys completed" in workbook.sheetnames: return "ECO 4 Surveys completed" + elif "ECO4 Surveys" in workbook.sheetnames: + return "ECO4 Surveys" else: return "ECO surveys" @@ -1533,6 +1535,10 @@ class DataLoader: return survey_list + @staticmethod + def correct_ha41_survey_list(survey_list): + return survey_list + @staticmethod def levenstein_match(matching_string, df): match_to = df["matching_address"].tolist() From ae714e42a62b1e6def566c6de46b34035d0ab7bb Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Thu, 7 Mar 2024 17:11:44 +0000 Subject: [PATCH 396/526] identified 9 additional has worth analysing --- etl/eligibility/ha_15_32/ha_analysis_batch_3.py | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index c2d585a2..b22ea273 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -4403,14 +4403,16 @@ def app(): # Add in: # TODO: Remove ECO3 sales from HA25 priority_has = [ - "HA1", "HA6", "HA7", "HA14", "HA15", "HA16", "HA24", "HA25", "HA28", "HA32", "HA39", "HA41", "HA50", "HA107", + "HA1", "HA6", "HA7", "HA14", "HA15", "HA16", "HA24", "HA25", "HA28", "HA32", "HA39", "HA41", "HA48", + "HA50", "HA107", ] # Next HAs to do: 14 [DONE], 15[DONE], 32 [DONE], 33 [Input format is 4 parts and no eco4 jobs identified - come - # back on this], - # Then: 28 [DONE], - # 41, 48, 50 + # back on this], 28 [DONE], 41 [DONE], 50 [DONE], + # 48 [WIP], + # Consider for ECO4: 2, 63, 12, 13, 136, 117 + # COnsider for GBIS: 56, 35, 34 # Ignore for now: - # TODO: 38[problematic, but no ECO4], 10 problematic (no eligibility), 20 has barely any in + # 38 [problematic, but no ECO4], 10 problematic (no eligibility), 20 has barely any in # Filter down the directories to only the priority HAs directories = [d for d in directories if d.split("/")[2] in priority_has] From c84be65e8defa04aa1453f80b53d073c9011a629 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Thu, 7 Mar 2024 19:52:08 +0000 Subject: [PATCH 397/526] ha48 ciga unmatched count added --- etl/eligibility/ha_15_32/ha_analysis_batch_3.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index b22ea273..56867ef7 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -159,6 +159,10 @@ class DataLoader: "HA25": { "address": "T1_Address", "postcode": "matching_postcode" + }, + "HA48": { + "address": "Full Address", + "postcode": "Postcode" } } @@ -170,6 +174,7 @@ class DataLoader: "HA24": 12, "HA50": 4, "HA107": 51, + "HA48": 0 } UNMATCHED_ECO3 = { @@ -190,7 +195,7 @@ class DataLoader: def create_asset_list_matching_address(self, ha_name, asset_list): - if ha_name in ["HA1", "HA6", "HA16", "HA24"]: + if ha_name in ["HA1", "HA6", "HA16", "HA24", "HA48"]: asset_list["matching_address"] = asset_list[ self.COLUMN_CONFIG[ha_name]["address"] ].astype(str).str.lower().str.strip() From c3fd2ae902bd96250bc5ca376a424ebc8cbc3335 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Thu, 7 Mar 2024 20:58:47 +0000 Subject: [PATCH 398/526] Adding HA2, data load done --- .../ha_15_32/ha_analysis_batch_3.py | 34 ++++++++++++------- 1 file changed, 21 insertions(+), 13 deletions(-) diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index 56867ef7..74c6d3f5 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -167,6 +167,7 @@ class DataLoader: } UNMATCHED_CIGA = { + "HA2": 0, "HA6": 117, "HA14": 3, "HA15": 3, @@ -202,6 +203,12 @@ class DataLoader: asset_list["matching_postcode"] = asset_list[ self.COLUMN_CONFIG[ha_name]["postcode"] ].astype(str).str.lower().str.strip() + elif ha_name == "HA2": + # Create matching_address by concatenating Address 1, Address 2, Address 3, Address 4, Postcode + asset_list["matching_address"] = asset_list["Address Line 1"].astype(str).str.lower().str.strip() + ", " + \ + asset_list["Address Line 2"].astype(str).str.lower().str.strip() + ", " + \ + asset_list["Postcode"].astype(str).str.lower().str.strip() + asset_list["matching_postcode"] = asset_list["Postcode"].astype(str).str.lower().str.strip() elif ha_name == "HA7": # Create matching_address by concatenating Address 1, Address 2, Address 3, Address 4, Postcode asset_list["matching_address"] = asset_list["Address"].astype(str).str.lower().str.strip() + ", " + \ @@ -3794,7 +3801,6 @@ def forecast_remaining_sales(loader): results = [] for ha_name, input_data in loader.data.items(): - # Original warmfront figures - ECO4 original_warmfront_estimates = december_figures[december_figures["HA Name"] == ha_name] @@ -4074,13 +4080,13 @@ def forecast_remaining_sales(loader): ("", "Original Warmfront estimate", "Total - #", "ECO4 - November"): original_warmfront_eco4, ("ECO4 original", "", "Remaining - #", ""): original_warmfront_remaining_eco4, ("ECO4 original", "", "Total - £", ""): original_warmfront_eco4_revenue, - ("ECO4 original", "", "Sold - £", ""): original_warmfront_sold_eco4, + ("ECO4 original", "", "Sold or cancelled - £", ""): original_warmfront_sold_eco4, ("ECO4 original", "", "Remaining - £", ""): original_warmfront_remaining_eco4_revenue, # GBIS - original warmfront figures ("", "Original Warmfront estimate", "Total - #", "GBIS - November"): original_warmfront_gbis, ("GBIS original", "", "Remaining - #", ""): original_warmfront_gbis, ("GBIS original", "", "Total - £", ""): original_warmfront_gbis_revenue, - ("GBIS original", "", "Sold - £", ""): original_warmfront_sold_gbis, + ("GBIS original", "", "Sold or cancelled - £", ""): original_warmfront_sold_gbis, ("GBIS original", "", "Remaining - £", ""): original_warmfront_remaining_gbis_revenue, # ECO4 - asset list, pre-ciga ("", "Warmfront post code list", "Total #", "ECO4 total (pre-ciga)"): eco4_pre_ciga, @@ -4237,12 +4243,17 @@ def forecast_remaining_sales(loader): headline_total_delta = round(headline_total_delta, 1) headline_eco4_sold_since_november = ( - totals_row[('ECO4 pre-ciga', '', 'Sold - £', '')] - totals_row[('ECO4 original', '', 'Sold - £', '')] + totals_row[('ECO4 pre-ciga', '', 'Sold - £', '')] + + totals_row[('ECO4 pre-ciga', '', 'Confirmed cancellations - £', '')] + # confirmed canclleations + totals_row[('ECO4 pre-ciga', '', 'Unconfirmed cancellations - £', '')] - # expected cancellations + totals_row[('ECO4 original', '', 'Sold or cancelled - £', '')] ) headline_gbis_sold_since_november = ( - totals_row[("GBIS Postcode list", "Warmfront post code list", "Sold - £", "GBIS total")] - - totals_row[('GBIS original', '', 'Sold - £', '')] + totals_row[("GBIS Postcode list", "Warmfront post code list", "Sold - £", "GBIS total")] + + totals_row[("GBIS Postcode list", "", "Confirmed cancellations - £", "")] + # confirmed cancellations + totals_row[("GBIS Postcode list", "", "Unconfirmed cancellations - £", "")] - # expected cancellations + totals_row[('GBIS original', '', 'Sold or cancelled - £', '')] ) headlines = [ @@ -4261,7 +4272,7 @@ def forecast_remaining_sales(loader): "ECO4 - November"): headline_eco4_original_remaining_revenue }, { - ("", "", "", "HA Name"): "ECO4 Sold since November - £", + ("", "", "", "HA Name"): "ECO4 Sold or cancelled since November - £", ( "", "Original Warmfront estimate", "Total - #", "ECO4 - November"): headline_eco4_sold_since_november @@ -4290,7 +4301,7 @@ def forecast_remaining_sales(loader): "ECO4 - November"): headline_gbis_original_remaining_revenue }, { - ("", "", "", "HA Name"): "GBIS Sold since November - £", + ("", "", "", "HA Name"): "GBIS Sold or cancelled since November - £", ( "", "Original Warmfront estimate", "Total - #", "ECO4 - November"): headline_gbis_sold_since_november @@ -4399,21 +4410,18 @@ def app(): rebuild_inputs = False # List all of the data in the folder - directories = [str(file) for entry in DATA_FOLDER.iterdir() if entry.is_dir() for file in entry.iterdir() if file.suffix == '.xlsx'] # Grab the December HA figures filepath december_figures_filepath = "local_data/ha_data/HA_December_figures.csv" # Add in: - # TODO: Remove ECO3 sales from HA25 priority_has = [ - "HA1", "HA6", "HA7", "HA14", "HA15", "HA16", "HA24", "HA25", "HA28", "HA32", "HA39", "HA41", "HA48", + "HA1", "HA2", "HA6", "HA7", "HA14", "HA15", "HA16", "HA24", "HA25", "HA28", "HA32", "HA39", "HA41", "HA48", "HA50", "HA107", ] # Next HAs to do: 14 [DONE], 15[DONE], 32 [DONE], 33 [Input format is 4 parts and no eco4 jobs identified - come - # back on this], 28 [DONE], 41 [DONE], 50 [DONE], - # 48 [WIP], + # back on this], 28 [DONE], 41 [DONE], 50 [DONE], 48 [DONE], # Consider for ECO4: 2, 63, 12, 13, 136, 117 # COnsider for GBIS: 56, 35, 34 # Ignore for now: From 19850f924445035e3880eaae40f750d21fb12b80 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Thu, 7 Mar 2024 21:34:46 +0000 Subject: [PATCH 399/526] fixing up ha63 eco3 list --- .../ha_15_32/ha_analysis_batch_3.py | 46 +++++++++++++++++-- 1 file changed, 42 insertions(+), 4 deletions(-) diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index 74c6d3f5..aebf0506 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -289,6 +289,10 @@ class DataLoader: asset_list["matching_address"] = asset_list["Address Line 1"].astype(str).str.lower().str.strip() + ", " + \ asset_list["Post Code"].astype(str).str.lower().str.strip() asset_list["matching_postcode"] = asset_list["Post Code"].astype(str).str.lower().str.strip() + elif ha_name == "HA63": + asset_list["matching_address"] = asset_list["Address1"].astype(str).str.lower().str.strip() + ", " + \ + asset_list["POSTCODE"].astype(str).str.lower().str.strip() + asset_list["matching_postcode"] = asset_list["POSTCODE"].astype(str).str.lower().str.strip() elif ha_name == "HA107": # Create matching_address by concatenating House No, Street, Town, District, Postcode asset_list["matching_address"] = asset_list["House No"].astype(str).str.lower().str.strip() + ", " + \ @@ -1551,6 +1555,16 @@ class DataLoader: def correct_ha41_survey_list(survey_list): return survey_list + @staticmethod + def correct_ha63_survey_list(survey_list): + # Drop some filler rows + survey_list = survey_list[ + ~survey_list[survey_list.columns[0]].isin( + ["NO JOBS SURVEYED JULY 2021 ", "NO JOBS SURVEYED SEPTEMBER 2021"] + ) + ] + return survey_list + @staticmethod def levenstein_match(matching_string, df): match_to = df["matching_address"].tolist() @@ -1714,6 +1728,26 @@ class DataLoader: def correct_ha41_eco3_list(eco3_list): return eco3_list + @staticmethod + def correct_ha63_eco3_list(eco3_list): + eco3_list = eco3_list[~pd.isnull(eco3_list["Post Code"])] + # Some postcode that aren't in the asset list + eco3_list = eco3_list[ + ~eco3_list["Post Code"].isin( + ["NR32 15X", "NR30 2BT"] + ) + ] + + eco3_list["Street / Block Name"] = eco3_list["Street / Block Name"].str.replace( + "POUND COTTAGES - BLOOMSBERRY CLOSE", "POUND COTTAGES" + ) + + eco3_list["Street / Block Name"] = eco3_list["Street / Block Name"].str.replace( + "FREDRICK ROAD", "Frederick Road" + ) + + return eco3_list + def merge_eco3_to_assets(self, asset_list, eco3_list, ha_name): eco3_list_correction_function = getattr(self, f"correct_{ha_name.lower()}_eco3_list") @@ -1799,12 +1833,15 @@ class DataLoader: # We verify the missed # HA25 contains 119 missed entries. These are actually 24 unique postcodes, and the majority belong to 2 # where many surveys were conducted on house numbers, not in the asset list + # 154 missed, 2827 matched for HA 25 if len(missed) != self.UNMATCHED_ECO3[ha_name]: raise ValueError( f"Unmatched addresses for {ha_name} is not as expected, got {len(missed)} unmatched" ) - # 154 missed, 2827 matched for HA 25 + # 41 + missed_df = eco3_list[eco3_list["eco3_list_row_id"].isin(missed)] + missed_df.head(1)["Street / Block Name"] matching_lookup = pd.DataFrame(matching_lookup) # Check dupes as this will cause problems later on @@ -4418,11 +4455,12 @@ def app(): # Add in: priority_has = [ "HA1", "HA2", "HA6", "HA7", "HA14", "HA15", "HA16", "HA24", "HA25", "HA28", "HA32", "HA39", "HA41", "HA48", - "HA50", "HA107", + "HA50", "HA63", "HA107", ] # Next HAs to do: 14 [DONE], 15[DONE], 32 [DONE], 33 [Input format is 4 parts and no eco4 jobs identified - come - # back on this], 28 [DONE], 41 [DONE], 50 [DONE], 48 [DONE], - # Consider for ECO4: 2, 63, 12, 13, 136, 117 + # back on this], 28 [DONE], 41 [DONE], 50 [DONE], 48 [DONE], 2 [DONE] + # 63 [WIP] + # Consider for ECO4: 12, 13, 136, 117 # COnsider for GBIS: 56, 35, 34 # Ignore for now: # 38 [problematic, but no ECO4], 10 problematic (no eligibility), 20 has barely any in From 47b97fce0a6eec4fe15a967f1721e18908bffccf Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Thu, 7 Mar 2024 21:46:44 +0000 Subject: [PATCH 400/526] fixing eco3 matching for ha63 --- .../ha_15_32/ha_analysis_batch_3.py | 27 +++++++++++++++---- 1 file changed, 22 insertions(+), 5 deletions(-) diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index aebf0506..bab5cdab 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -174,6 +174,7 @@ class DataLoader: "HA16": 7, "HA24": 12, "HA50": 4, + "HA63": 15, "HA107": 51, "HA48": 0 } @@ -182,6 +183,7 @@ class DataLoader: "HA25": 154, "HA41": 26, "HA50": 5, + "HA63": 0 } def __init__(self, directories, december_figures_filepath, use_cache, rebuild): @@ -1746,6 +1748,25 @@ class DataLoader: "FREDRICK ROAD", "Frederick Road" ) + # For denmark street, remove the space from the house number + eco3_list["NO "] = np.where( + eco3_list["Street / Block Name"] == "DENMARK STREET", + eco3_list["NO "].str.replace(" ", ""), + eco3_list["NO "] + ) + + eco3_list["Street / Block Name"] = eco3_list["Street / Block Name"].str.replace( + "OLD HOSPITAL MEWS HOSPITAL WALK", "Old Hospital Mews" + ) + + eco3_list["Street / Block Name"] = eco3_list["Street / Block Name"].str.replace( + "Portland House, Portland Street", "Portland House" + ) + + eco3_list["Street / Block Name"] = eco3_list["Street / Block Name"].str.replace( + "MIDDLE MARKET STREET", "Middle Market Road" + ) + return eco3_list def merge_eco3_to_assets(self, asset_list, eco3_list, ha_name): @@ -1791,7 +1812,7 @@ class DataLoader: if isinstance(house_number, str): house_number = house_number.lower().strip() - if not any(df["matching_address"].str.contains(str(house_number))): + if not any(df["HouseNo"].str.contains(str(house_number))): if "flat" in str(house_number): house_number = house_number.split("flat")[1].strip() @@ -1839,10 +1860,6 @@ class DataLoader: f"Unmatched addresses for {ha_name} is not as expected, got {len(missed)} unmatched" ) - # 41 - missed_df = eco3_list[eco3_list["eco3_list_row_id"].isin(missed)] - missed_df.head(1)["Street / Block Name"] - matching_lookup = pd.DataFrame(matching_lookup) # Check dupes as this will cause problems later on if matching_lookup["asset_list_row_id"].duplicated().any(): From 9cd166160bfbe9a3cc89f5d43231c3c8ed5c2ede Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Thu, 7 Mar 2024 21:51:16 +0000 Subject: [PATCH 401/526] sorted ha63 facts and figures --- etl/eligibility/ha_15_32/ha_analysis_batch_3.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index bab5cdab..2a1a4b16 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -2077,7 +2077,8 @@ class DataLoader: "eco4 (subject to ciga/archetype check": "eco4 (subject to ciga)", "eco4 (subject to archetype check)": "eco4", "eco4 (subject to ciga/archetype)": "eco4 (subject to ciga)", - "eco4 (subject to ciga)": "eco4 (subject to ciga)" + "eco4 (subject to ciga)": "eco4 (subject to ciga)", + "eco4(subject to ciga)": "eco4 (subject to ciga)", } ha_facts_and_figures = [] From 76ef60d06c8d508d4c78e1bda320902880bce96c Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Thu, 7 Mar 2024 22:16:05 +0000 Subject: [PATCH 402/526] done with ha12 --- .../ha_15_32/ha_analysis_batch_3.py | 58 ++++++++++++++----- 1 file changed, 45 insertions(+), 13 deletions(-) diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index 2a1a4b16..4dbf326b 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -148,6 +148,10 @@ class DataLoader: "address": "propertyaddress", "postcode": "address" # The 'address' column actually contains postcode }, + "HA12": { + "address": "Full Address", + "postcode": "Postcode" + }, "HA16": { "address": "Address", "postcode": "Postcode" @@ -169,6 +173,7 @@ class DataLoader: UNMATCHED_CIGA = { "HA2": 0, "HA6": 117, + "HA12": 6, "HA14": 3, "HA15": 3, "HA16": 7, @@ -198,7 +203,7 @@ class DataLoader: def create_asset_list_matching_address(self, ha_name, asset_list): - if ha_name in ["HA1", "HA6", "HA16", "HA24", "HA48"]: + if ha_name in ["HA1", "HA6", "HA12", "HA16", "HA24", "HA48"]: asset_list["matching_address"] = asset_list[ self.COLUMN_CONFIG[ha_name]["address"] ].astype(str).str.lower().str.strip() @@ -1558,13 +1563,39 @@ class DataLoader: return survey_list @staticmethod - def correct_ha63_survey_list(survey_list): - # Drop some filler rows - survey_list = survey_list[ - ~survey_list[survey_list.columns[0]].isin( - ["NO JOBS SURVEYED JULY 2021 ", "NO JOBS SURVEYED SEPTEMBER 2021"] - ) - ] + def correct_ha12_survey_list(survey_list): + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace( + "Henstone Road", "Hanstone Road" + ) + + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace( + "Lindern avenue", "Linden Avenue" + ) + + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace( + "priness way", "Princess Way" + ) + + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace( + "Worth Crecesent", "Worth Crescent" + ) + + survey_list["Post Code"] = survey_list["Post Code"].str.replace( + "DY117HA", "DY11 7HA" + ) + + survey_list["Post Code"] = survey_list["Post Code"].str.replace( + "DY117HF", "DY11 7HF" + ) + + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace( + "Adderbrook Crescent", "Addenbrooke Crescent" + ) + + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace( + "Kinver Road", "Kinver Avenue" + ) + return survey_list @staticmethod @@ -2079,6 +2110,7 @@ class DataLoader: "eco4 (subject to ciga/archetype)": "eco4 (subject to ciga)", "eco4 (subject to ciga)": "eco4 (subject to ciga)", "eco4(subject to ciga)": "eco4 (subject to ciga)", + "eco4 subject to ciga": "eco4 (subject to ciga)", } ha_facts_and_figures = [] @@ -4472,13 +4504,13 @@ def app(): # Add in: priority_has = [ - "HA1", "HA2", "HA6", "HA7", "HA14", "HA15", "HA16", "HA24", "HA25", "HA28", "HA32", "HA39", "HA41", "HA48", - "HA50", "HA63", "HA107", + "HA1", "HA2", "HA6", "HA7", "HA12", "HA14", "HA15", "HA16", "HA24", "HA25", "HA28", "HA32", "HA39", "HA41", + "HA48", "HA50", "HA63", "HA107", ] # Next HAs to do: 14 [DONE], 15[DONE], 32 [DONE], 33 [Input format is 4 parts and no eco4 jobs identified - come - # back on this], 28 [DONE], 41 [DONE], 50 [DONE], 48 [DONE], 2 [DONE] - # 63 [WIP] - # Consider for ECO4: 12, 13, 136, 117 + # back on this], 28 [DONE], 41 [DONE], 50 [DONE], 48 [DONE], 2 [DONE], 63 [DONE], 12 [DONE] + # + # Consider for ECO4: 13, 136, 117 # COnsider for GBIS: 56, 35, 34 # Ignore for now: # 38 [problematic, but no ECO4], 10 problematic (no eligibility), 20 has barely any in From e3f36fc881925fd845f623d469d0faf9cd6b89c3 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Fri, 8 Mar 2024 18:52:32 +0000 Subject: [PATCH 403/526] HA117 data load --- .../ha_15_32/ha_analysis_batch_3.py | 27 +++++++++++++++---- 1 file changed, 22 insertions(+), 5 deletions(-) diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index 4dbf326b..d4de589a 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -188,7 +188,8 @@ class DataLoader: "HA25": 154, "HA41": 26, "HA50": 5, - "HA63": 0 + "HA63": 0, + "HA117": 4 } def __init__(self, directories, december_figures_filepath, use_cache, rebuild): @@ -308,6 +309,11 @@ class DataLoader: asset_list["District"].astype(str).str.lower().str.strip() + ", " + \ asset_list["Postcode"].astype(str).str.lower().str.strip() asset_list["matching_postcode"] = asset_list["Postcode"].astype(str).str.lower().str.strip() + elif ha_name == "HA117": + asset_list["matching_address"] = asset_list["Address1"].astype(str).str.lower().str.strip() + ", " + \ + asset_list["Address2"].astype(str).str.lower().str.strip() + ", " + \ + asset_list["PostCode"].astype(str).str.lower().str.strip() + asset_list["matching_postcode"] = asset_list["PostCode"].astype(str).str.lower().str.strip() else: raise NotImplementedError("implement me") @@ -1800,6 +1806,17 @@ class DataLoader: return eco3_list + @staticmethod + def correct_ha117_eco3_list(eco3_list): + # Delete rows where postcode is null - there are some placeholder rows where this happens + eco3_list = eco3_list[~pd.isnull(eco3_list["Post Code"])] + + eco3_list["Street / Block Name"] = eco3_list["Street / Block Name"].str.replace( + "TARRING ROAD", "155 TARRING ROAD" + ) + + return eco3_list + def merge_eco3_to_assets(self, asset_list, eco3_list, ha_name): eco3_list_correction_function = getattr(self, f"correct_{ha_name.lower()}_eco3_list") @@ -4505,13 +4522,13 @@ def app(): # Add in: priority_has = [ "HA1", "HA2", "HA6", "HA7", "HA12", "HA14", "HA15", "HA16", "HA24", "HA25", "HA28", "HA32", "HA39", "HA41", - "HA48", "HA50", "HA63", "HA107", + "HA48", "HA50", "HA63", "HA107", "HA117" ] # Next HAs to do: 14 [DONE], 15[DONE], 32 [DONE], 33 [Input format is 4 parts and no eco4 jobs identified - come # back on this], 28 [DONE], 41 [DONE], 50 [DONE], 48 [DONE], 2 [DONE], 63 [DONE], 12 [DONE] - # - # Consider for ECO4: 13, 136, 117 - # COnsider for GBIS: 56, 35, 34 + # 117 [WIP] + # Consider for ECO4: 13 + # Consider for GBIS: 56, 35, 34 # Ignore for now: # 38 [problematic, but no ECO4], 10 problematic (no eligibility), 20 has barely any in # Filter down the directories to only the priority HAs From 15efd02b8b8220f1d6cc745cb1b4a571be808643 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Fri, 8 Mar 2024 19:14:35 +0000 Subject: [PATCH 404/526] done ha117, ha13 next --- etl/eligibility/ha_15_32/ha_analysis_batch_3.py | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index d4de589a..97ac96da 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -2119,15 +2119,19 @@ class DataLoader: "ECO4 GBIS (ECO+) JJC UNDER 73m² ": "GBIS", } + # Since it seems like "subject to archetype check" has some failure conditions, for simplicity, we + # treat these as similar to subject to CIGA, and therefore unconfirmed worked that could fail. There + # are only a small volume of properties for which we see this eco_eligibility_map = { "not eligble": "not eligible", "eco 4(subject to ciga)": "eco4 (subject to ciga)", "eco4 (subject to ciga/archetype check": "eco4 (subject to ciga)", - "eco4 (subject to archetype check)": "eco4", + "eco4 (subject to archetype check)": "eco4 (subject to ciga)", "eco4 (subject to ciga/archetype)": "eco4 (subject to ciga)", "eco4 (subject to ciga)": "eco4 (subject to ciga)", "eco4(subject to ciga)": "eco4 (subject to ciga)", "eco4 subject to ciga": "eco4 (subject to ciga)", + "eco4 (subject to archetype)": "eco4 (subject to ciga)", } ha_facts_and_figures = [] @@ -4525,9 +4529,9 @@ def app(): "HA48", "HA50", "HA63", "HA107", "HA117" ] # Next HAs to do: 14 [DONE], 15[DONE], 32 [DONE], 33 [Input format is 4 parts and no eco4 jobs identified - come - # back on this], 28 [DONE], 41 [DONE], 50 [DONE], 48 [DONE], 2 [DONE], 63 [DONE], 12 [DONE] - # 117 [WIP] - # Consider for ECO4: 13 + # back on this], 28 [DONE], 41 [DONE], 50 [DONE], 48 [DONE], 2 [DONE], 63 [DONE], 12 [DONE], 117 [DONE] + # 13 [WIP] + # Consider for ECO4: # Consider for GBIS: 56, 35, 34 # Ignore for now: # 38 [problematic, but no ECO4], 10 problematic (no eligibility), 20 has barely any in From b2b8fd8f84321f369cc3d14b009515759a2eff9a Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Fri, 8 Mar 2024 19:20:38 +0000 Subject: [PATCH 405/526] ha13 49% matched --- .../ha_15_32/ha_analysis_batch_3.py | 23 +++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index 97ac96da..3edc1490 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -224,6 +224,12 @@ class DataLoader: asset_list["Address3"].astype(str).str.lower().str.strip() + ", " + \ asset_list["Postcode"].astype(str).str.lower().str.strip() asset_list["matching_postcode"] = asset_list["Postcode"].astype(str).str.lower().str.strip() + elif ha_name == "HA13": + asset_list["matching_address"] = asset_list["Address 1"].astype(str).str.lower().str.strip() + ", " + \ + asset_list["address 2"].astype(str).str.lower().str.strip() + ", " + \ + asset_list["Address 3"].astype(str).str.lower().str.strip() + ", " + \ + asset_list["Postcode"].astype(str).str.lower().str.strip() + asset_list["matching_postcode"] = asset_list["Postcode"].astype(str).str.lower().str.strip() elif ha_name == "HA14": # Create matching_address by concatenating Address 1, Address 2, Address 3, Address 4, Postcode asset_list["matching_address"] = asset_list["Address 1"].astype(str).str.lower().str.strip() + ", " + \ @@ -1604,6 +1610,19 @@ class DataLoader: return survey_list + @staticmethod + def correct_ha13_survey_list(survey_list): + + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace( + "Woodfarm Road", "WOOD FARM ROAD" + ) + + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace( + "ALLANDALE ROAD", "ALLANDALE" + ) + + return survey_list + @staticmethod def levenstein_match(matching_string, df): match_to = df["matching_address"].tolist() @@ -4525,8 +4544,8 @@ def app(): # Add in: priority_has = [ - "HA1", "HA2", "HA6", "HA7", "HA12", "HA14", "HA15", "HA16", "HA24", "HA25", "HA28", "HA32", "HA39", "HA41", - "HA48", "HA50", "HA63", "HA107", "HA117" + "HA1", "HA2", "HA6", "HA7", "HA12", "HA13", "HA14", "HA15", "HA16", "HA24", "HA25", "HA28", "HA32", "HA39", + "HA41", "HA48", "HA50", "HA63", "HA107", "HA117" ] # Next HAs to do: 14 [DONE], 15[DONE], 32 [DONE], 33 [Input format is 4 parts and no eco4 jobs identified - come # back on this], 28 [DONE], 41 [DONE], 50 [DONE], 48 [DONE], 2 [DONE], 63 [DONE], 12 [DONE], 117 [DONE] From 21117f3e585be18d5da6e49744353f7ed830a483 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Fri, 8 Mar 2024 19:32:42 +0000 Subject: [PATCH 406/526] worked through ha13 matching - need to do facts and figures --- .../ha_15_32/ha_analysis_batch_3.py | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index 3edc1490..15a4f438 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -174,6 +174,7 @@ class DataLoader: "HA2": 0, "HA6": 117, "HA12": 6, + "HA13": 119, "HA14": 3, "HA15": 3, "HA16": 7, @@ -1621,6 +1622,30 @@ class DataLoader: "ALLANDALE ROAD", "ALLANDALE" ) + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace( + "NEWFIELDS LANE", "NEWFIELD LANE" + ) + + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace( + "BROADFIELDS ROAD", "BROADFIELD ROAD" + ) + + survey_list["Post Code"] = survey_list["Post Code"].str.replace( + "HP2 5SF+", "HP2 5SF" + ) + + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace( + "PESCOTT HILL", "PESCOT HILL" + ) + + # This is a duplicate record + survey_list = survey_list[ + ~((survey_list["NO."] == 33) & + (survey_list["Street / Block Name"] == "Turners Hill") & + (survey_list["Post Code"] == "HP2 4LH") & + (survey_list["INSTALLED OR CANCELLED"] == "NO UPDATE - CHECKED 18.12.23")) + ] + return survey_list @staticmethod @@ -1652,6 +1677,9 @@ class DataLoader: postcode.lower() not in asset_list["matching_postcode"].values ] + if ha_name == "HA13": + missed_postcodes = ["hp17 8le"] + matching_lookup = [] for _, row in tqdm(survey_list.iterrows(), total=len(survey_list)): From f03485d4f49045e8f68cf7a8dcc5caf58113ede1 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Sat, 9 Mar 2024 14:41:38 +0000 Subject: [PATCH 407/526] updating facts and figures to treat archetype dependent properties separately --- .../ha_15_32/ha_analysis_batch_3.py | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index 15a4f438..c0f3ab12 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -2172,13 +2172,12 @@ class DataLoader: eco_eligibility_map = { "not eligble": "not eligible", "eco 4(subject to ciga)": "eco4 (subject to ciga)", - "eco4 (subject to ciga/archetype check": "eco4 (subject to ciga)", - "eco4 (subject to archetype check)": "eco4 (subject to ciga)", - "eco4 (subject to ciga/archetype)": "eco4 (subject to ciga)", + "eco4 (subject to ciga/archetype check": "eco4 (subject to ciga) (subject to archetype)", + "eco4 (subject to archetype check)": "eco4 (subject to archetype)", + "eco4 (subject to ciga/archetype)": "eco4 (subject to ciga) (subject to archetype)", "eco4 (subject to ciga)": "eco4 (subject to ciga)", "eco4(subject to ciga)": "eco4 (subject to ciga)", "eco4 subject to ciga": "eco4 (subject to ciga)", - "eco4 (subject to archetype)": "eco4 (subject to ciga)", } ha_facts_and_figures = [] @@ -2330,7 +2329,7 @@ class DataLoader: asset_list = asset_list.merge(survey_list_to_merge, how='left', on="asset_list_row_id") # Update the cases where properties have sold, but are missing a CIGA check asset_list["ECO Eligibility"] = np.where( - (asset_list["ECO Eligibility"] == "eco4 (subject to ciga)") & ( + (asset_list["ECO Eligibility"].str.contains("(subject to ciga)")) & ( asset_list["has_a_survey_record"] == True ), "eco4 - passed ciga", @@ -2349,7 +2348,14 @@ class DataLoader: # Update the cases where a property was marked as eligible for ECO4, but sold for GBIS asset_list["ECO Eligibility"] = np.where( (asset_list["ECO Eligibility"].isin( - ["eco4", "eco4 (subject to ciga)", "eco4 - passed ciga", "failed ciga"] + [ + "eco4", + "eco4 (subject to ciga)", + "eco4 - passed ciga", + "failed ciga", + "eco4 (subject to archetype)", + "eco4 (subject to ciga) (subject to archetype)" + ] )) & ( asset_list["installation_status"].isin( ["GBIS - installed", "GBIS - cancelled", "GBIS - in progress"] From c1a15052f246288c5216e2c80849ccef3b2c6be0 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Sat, 9 Mar 2024 14:46:26 +0000 Subject: [PATCH 408/526] Handling warning for regex searching of (subject to ciga) --- etl/eligibility/ha_15_32/ha_analysis_batch_3.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index c0f3ab12..430e5ff7 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -2329,7 +2329,7 @@ class DataLoader: asset_list = asset_list.merge(survey_list_to_merge, how='left', on="asset_list_row_id") # Update the cases where properties have sold, but are missing a CIGA check asset_list["ECO Eligibility"] = np.where( - (asset_list["ECO Eligibility"].str.contains("(subject to ciga)")) & ( + (asset_list["ECO Eligibility"].str.contains("subject to ciga")) & ( asset_list["has_a_survey_record"] == True ), "eco4 - passed ciga", From b46da0f6c0140b28d00385f02f29cae91f412b2d Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Sat, 9 Mar 2024 15:48:51 +0000 Subject: [PATCH 409/526] adding in archetype check process to model --- .../ha_15_32/ha_analysis_batch_3.py | 99 +++++++++++++++---- 1 file changed, 82 insertions(+), 17 deletions(-) diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index 430e5ff7..9a959956 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -3658,19 +3658,47 @@ def patch_cleaned(cleaned): def calculate_eco4_post_ciga( eligiblity_counts, input_data, ha_ciga_conversion_rate, ha_ciga_pass_to_sale_rate, ha_eco4_to_sale_rate, - eco4_rate + eco4_rate, archetype_conversion_rate ): remaining_needing_ciga_check = eligiblity_counts[ - eligiblity_counts["ECO Eligibility"] == "eco4 (subject to ciga)" + eligiblity_counts["ECO Eligibility"].str.contains("subject to ciga") & + ~eligiblity_counts["ECO Eligibility"].str.contains("subject to archetype") ]["count"].sum() + remaining_needing_ciga_and_archetype_check = eligiblity_counts[ + eligiblity_counts["ECO Eligibility"].str.contains("subject to ciga") & + eligiblity_counts["ECO Eligibility"].str.contains("subject to archetype") + ]["count"].sum() + # We scale this down by the archetype_conversion_rate, and add this on to the remaining_needing_ciga_check + remaining_needing_ciga_and_archetype_check_passed = np.round( + remaining_needing_ciga_and_archetype_check * archetype_conversion_rate + ) + + remaining_needing_ciga_check += remaining_needing_ciga_and_archetype_check_passed + + eco4_no_ciga_needed = eligiblity_counts[ + eligiblity_counts["ECO Eligibility"] == "eco4" + ]["count"].sum() + + eco4_no_ciga_archetype_needed = eligiblity_counts[ + eligiblity_counts["ECO Eligibility"] == "eco4 (subject to archetype)" + ]["count"].sum() + eco4_no_ciga_archetype_needed_passed = np.round( + eco4_no_ciga_archetype_needed * archetype_conversion_rate + ) + + eco4_no_ciga_needed += eco4_no_ciga_archetype_needed_passed + + failed_archetype_check = int( + remaining_needing_ciga_and_archetype_check + + eco4_no_ciga_archetype_needed - + remaining_needing_ciga_and_archetype_check_passed - + eco4_no_ciga_archetype_needed_passed + ) + has_ciga_check = not input_data["ciga_list"].empty if has_ciga_check: - eco4_no_ciga_needed = eligiblity_counts[ - eligiblity_counts["ECO Eligibility"] == "eco4" - ]["count"].sum() - eco4_ciga_passed = eligiblity_counts[ eligiblity_counts["ECO Eligibility"] == "eco4 - passed ciga" ]["count"].sum() @@ -3681,8 +3709,10 @@ def calculate_eco4_post_ciga( eco4_no_ciga_needed_or_ciga_passed = eco4_no_ciga_needed + eco4_ciga_passed - eco4_confirmed = (eco4_no_ciga_needed * ha_eco4_to_sale_rate) + (eco4_ciga_passed * ha_ciga_pass_to_sale_rate) - eco4_confirmed = np.round(eco4_confirmed) + eco4_confirmed = np.round( + (eco4_no_ciga_needed * ha_eco4_to_sale_rate) + + (eco4_ciga_passed * ha_ciga_pass_to_sale_rate) + ) eco4_no_ciga_needed_cancellations = int(eco4_no_ciga_needed_or_ciga_passed - eco4_confirmed) @@ -3704,9 +3734,7 @@ def calculate_eco4_post_ciga( eco4_expected_cancellations = eco4_no_ciga_needed_cancellations + eco4_ciga_needed_cancellations else: - eco4_no_ciga_needed = eligiblity_counts[ - eligiblity_counts["ECO Eligibility"] == "eco4" - ]["count"].sum() + eco4_confirmed_ciga_failures = 0 # Multiply by sale conversion eco4_confirmed = np.round(eco4_no_ciga_needed * ha_eco4_to_sale_rate) @@ -3735,6 +3763,9 @@ def calculate_eco4_post_ciga( "ECO4 - post CIGA - £": eco4_post_ciga * eco4_rate, "Of which confirmed - £": eco4_confirmed * eco4_rate, "Of which forecast - £": eco4_remaining_forecast * eco4_rate, + # Archetype check failures + "Estimated total - failed archetype check - #": failed_archetype_check, + "Estimated total - failed archetype check - £": failed_archetype_check * eco4_rate, # Ciga failures "Estimated total - failed CIGA": int(eco4_confirmed_ciga_failures + eco4_estimated_ciga_failures), "Confirmed CIGA failures": eco4_confirmed_ciga_failures, @@ -3766,6 +3797,14 @@ def forecast_remaining_sales(loader): gbis_rate = 600 eco4_rate = 1710 + # Based on ONS https://www.ons.gov.uk/peoplepopulationandcommunity/housing/bulletins/housingenglandandwales + # /census2021 + # there are 5.7 million terraced properties in the UK, of the 19.3 million houses or bungalows. We therefore apply + # a 30% discount to homes that are dependent on an archetype check, since around 30% of them will be mid terraced + # This 30% is slightly harsh but we be conservative + # Therefore, the archetype check conversion rate is 70% + archetype_conversion_rate = 0.7 + # 1) Calculate the conversion rate from passed CIGA to actual sale converted_ciga_jobs = [] for ha_name, input_data in loader.data.items(): @@ -4010,13 +4049,27 @@ def forecast_remaining_sales(loader): eco4_pre_ciga = eligiblity_counts[ eligiblity_counts["ECO Eligibility"].isin( - ["eco4", "eco4 (subject to ciga)", "eco4 - passed ciga", "failed ciga"] + [ + "eco4", + "eco4 (subject to ciga)", + "eco4 - passed ciga", + "failed ciga", + "eco4 (subject to ciga) (subject to archetype)", + "eco4 (subject to archetype)" + ] ) ]["count"].sum() eco4_pre_ciga_remaining = eligiblity_counts_remaining[ eligiblity_counts_remaining["ECO Eligibility"].isin( - ["eco4", "eco4 (subject to ciga)", "eco4 - passed ciga", "failed ciga"] + [ + "eco4", + "eco4 (subject to ciga)", + "eco4 - passed ciga", + "failed ciga", + "eco4 (subject to ciga) (subject to archetype)", + "eco4 (subject to archetype)" + ] ) ]["count"].sum() @@ -4065,7 +4118,8 @@ def forecast_remaining_sales(loader): ha_ciga_conversion_rate=ha_ciga_conversion_rate, ha_ciga_pass_to_sale_rate=ha_ciga_pass_to_sale_rate, ha_eco4_to_sale_rate=ha_eco4_to_sale_rate, - eco4_rate=eco4_rate + eco4_rate=eco4_rate, + archetype_conversion_rate=archetype_conversion_rate ) eco4_post_ciga_remaining_results = calculate_eco4_post_ciga( @@ -4074,7 +4128,8 @@ def forecast_remaining_sales(loader): ha_ciga_conversion_rate=ha_ciga_conversion_rate, ha_ciga_pass_to_sale_rate=ha_ciga_pass_to_sale_rate, ha_eco4_to_sale_rate=ha_eco4_to_sale_rate, - eco4_rate=eco4_rate + eco4_rate=eco4_rate, + archetype_conversion_rate=archetype_conversion_rate ) # Calculate the delta compared to Warmfront's original remaining @@ -4111,6 +4166,8 @@ def forecast_remaining_sales(loader): gbis_remaining = int(np.round(gbis_remaining * ha_gbis_sale_conversion)) gbis_remaining_revenue = int(gbis_remaining * gbis_rate) + survey_list["installation_status"].value_counts() + # GBIS delta if original_warmfront_remaining_gbis == 0: gbis_delta_vs_original_estimate_remaining = "N/A" @@ -4176,7 +4233,7 @@ def forecast_remaining_sales(loader): surveys_with_eligibility["installation_status"] == "GBIS - cancelled" ].shape[0] - expected_gbis_unconfirmed_sales = incomplete_gbis_sales * ha_gbis_sale_conversion + expected_gbis_unconfirmed_sales = np.round(incomplete_gbis_sales * ha_gbis_sale_conversion) gbis_expected_cancellations = int(incomplete_gbis_sales - expected_gbis_unconfirmed_sales) @@ -4187,10 +4244,12 @@ def forecast_remaining_sales(loader): # Add in the variance: # We should expect that the pre-ciga total is: # 1) The number of post CIGA successes + + # 2) The number of archetype failures + # 2) the number of CIGA failures + # 3) The number of cancellations variance_total = eco4_pre_ciga - ( eco4_post_ciga_total_results["ECO4 - post CIGA - #"] + + eco4_post_ciga_total_results["Estimated total - failed archetype check - #"] + eco4_post_ciga_total_results['Estimated total - failed CIGA'] + eco4_post_ciga_total_results["Expected cancellations - #"] ) @@ -4199,6 +4258,7 @@ def forecast_remaining_sales(loader): variance_remaining = eco4_pre_ciga_remaining - ( eco4_post_ciga_remaining_results["ECO4 - post CIGA - #"] + + eco4_post_ciga_remaining_results["Estimated total - failed archetype check - #"] + eco4_post_ciga_remaining_results['Estimated total - failed CIGA'] + eco4_post_ciga_remaining_results["Expected cancellations - #"] ) @@ -4290,6 +4350,11 @@ def forecast_remaining_sales(loader): ("ECO4 Cancellations", "", "Of which expected cancellations - £", ""): eco4_post_ciga_remaining_results[ "Expected cancellations - £" ], + # Archetype check failures + ("ECO4 CIGA failures", "", "Estimated total - failed Archetype check - #", ""): + eco4_post_ciga_remaining_results['Estimated total - failed archetype check - #'], + ("ECO4 CIGA failures", "", "Estimated total - failed Archetype check - £", ""): + eco4_post_ciga_remaining_results['Estimated total - failed archetype check - £'], # CIGA failures ("ECO4 CIGA failures", "", "Estimated total - failed CIGA - #", ""): eco4_post_ciga_remaining_results[ 'Estimated total - failed CIGA' @@ -4324,7 +4389,7 @@ def forecast_remaining_sales(loader): } # Make sure nothing is forgotten due to duplicate multi-index keys - if len(to_append) != 47: + if len(to_append) != 49: raise ValueError("Something went wrong") results.append(to_append) From a7e593ecd9289551d7ef47481ea3dff0c2a70592 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Sat, 9 Mar 2024 16:15:16 +0000 Subject: [PATCH 410/526] Added handling of archetype checks and corrected gbis calculations --- .../ha_15_32/ha_analysis_batch_3.py | 65 ++++++++++++++----- 1 file changed, 47 insertions(+), 18 deletions(-) diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index 9a959956..aca2ce43 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -4154,19 +4154,25 @@ def forecast_remaining_sales(loader): else: ha_gbis_sale_conversion = median_gbis_to_install - gbis_total = eligiblity_counts[ + gbis_total_pre_cancellations = eligiblity_counts[ eligiblity_counts["ECO Eligibility"] == "gbis" ]["count"].sum() - gbis_total = int(np.round(gbis_total * ha_gbis_sale_conversion)) - gbis_total_revenue = int(gbis_total * gbis_rate) - gbis_remaining = eligiblity_counts_remaining[ + gbis_total_pre_cancellations_revenue = gbis_total_pre_cancellations * gbis_rate + # gbis_total = int(np.round(gbis_total_pre_cancellations * ha_gbis_sale_conversion)) + # gbis_total_revenue = int(gbis_total * gbis_rate) + + gbis_remaining_pre_cancellations = eligiblity_counts_remaining[ eligiblity_counts_remaining["ECO Eligibility"] == "gbis" ]["count"].sum() - gbis_remaining = int(np.round(gbis_remaining * ha_gbis_sale_conversion)) + gbis_remaining_pre_cancellations_revenue = ( + gbis_remaining_pre_cancellations * gbis_rate + ) + # This is the gbis jobs we expect to sell + gbis_remaining = int(np.round(gbis_remaining_pre_cancellations * ha_gbis_sale_conversion)) gbis_remaining_revenue = int(gbis_remaining * gbis_rate) - - survey_list["installation_status"].value_counts() + # This is the number we expect to cancel + gbis_remaining_expected_cancellations = int(gbis_remaining_pre_cancellations - gbis_remaining) * gbis_rate # GBIS delta if original_warmfront_remaining_gbis == 0: @@ -4179,9 +4185,10 @@ def forecast_remaining_sales(loader): # Current sales figures # For any sales surveys that are complete, that could still cancel, we apply a conversion rate eco4_actually_sold = 0 - gbis_actually_sold = 0 eco4_confirmed_cancellations = 0 eco4_expected_cancellations = 0 + + gbis_actually_sold = 0 gbis_confirmed_cancellations = 0 gbis_expected_cancellations = 0 if not survey_list.empty: @@ -4284,17 +4291,30 @@ def forecast_remaining_sales(loader): raise ValueError("Something went wrong in pre_ciga_eco4_variance") # Check GBIS total variance - gbis_variance = ( - gbis_total_revenue - - gbis_actually_sold - - gbis_confirmed_cancellations * gbis_rate - - gbis_expected_cancellations * gbis_rate - - gbis_remaining_revenue + # The total before cancellations should equal: + # The number of sold + + # The number of confirmed cancelled + + # The number of expected cancelled + + # The number of remaining + gbis_variance = gbis_total_pre_cancellations - ( + gbis_actually_sold / gbis_rate + + gbis_confirmed_cancellations + + gbis_expected_cancellations + + gbis_remaining_pre_cancellations ) if gbis_variance != 0: raise ValueError("Something went wrong in gbis_variance") + # We expect the remaining to equal expected sales + expected cancellations + gbis_variance_2 = gbis_remaining_pre_cancellations - ( + gbis_remaining + + gbis_remaining_expected_cancellations + ) + + if gbis_variance_2 != 0: + raise ValueError("Something went wrong in gbis_variance") + to_append = { ("", "", "", "HA Name"): ha_name, # ECO4 - original warmfront figures @@ -4375,17 +4395,26 @@ def forecast_remaining_sales(loader): "Estimated CIGA failures - £" ], # GBIS postcode list - ("GBIS Postcode list", "Warmfront post code list", "Total - #", "GBIS total"): gbis_total, - ("GBIS Postcode list", "Warmfront post code list", "Total - £", "GBIS total"): gbis_total_revenue, + ("GBIS Postcode list", "Warmfront post code list", "Total - #", "GBIS total"): gbis_total_pre_cancellations, + ("GBIS Postcode list", "Warmfront post code list", "Total - £", "GBIS total"): + gbis_total_pre_cancellations_revenue, ("GBIS Postcode list", "Warmfront post code list", "GBIS VARIANCE", "GBIS total"): gbis_variance, ("GBIS Postcode list", "Warmfront post code list", "Sold - £", "GBIS total"): gbis_actually_sold, ("GBIS Postcode list", "", "Confirmed cancellations - £", ""): gbis_confirmed_cancellations * gbis_rate, # This is for jobs that are in-progress and could still cancel ("GBIS Postcode list", "", "Unconfirmed cancellations - £", ""): gbis_expected_cancellations * gbis_rate, - ("GBIS Postcode list", "Warmfront post code list", "Remaining - #", "GBIS total"): gbis_remaining, - ("GBIS Postcode list", "Warmfront post code list", "Remaining - £", "GBIS total"): gbis_remaining_revenue, + ("GBIS Postcode list", "Warmfront post code list", "Remaining - #", "GBIS total"): + gbis_remaining_pre_cancellations, + ("GBIS Postcode list", "Warmfront post code list", "Remaining - £", "GBIS total"): + gbis_remaining_pre_cancellations_revenue, ("GBIS Postcode list", "", "Delta vs original estimate, remaining - %", ""): gbis_delta_vs_original_estimate_remaining, + # Expected cancellations + ( + "GBIS Postcode list", "Of which expected sales - £", "Remaining - £", + "GBIS total"): gbis_remaining_revenue, + ("GBIS Postcode list", "Of which expected cancellations -£", "Remaining - £", "GBIS total"): + gbis_remaining_expected_cancellations } # Make sure nothing is forgotten due to duplicate multi-index keys From f9957a55d066a294e79efdf196b72e79d82689fb Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Sat, 9 Mar 2024 16:19:54 +0000 Subject: [PATCH 411/526] fixed bug in gbis variance 2? --- etl/eligibility/ha_15_32/ha_analysis_batch_3.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index aca2ce43..a25f98c6 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -4172,7 +4172,8 @@ def forecast_remaining_sales(loader): gbis_remaining = int(np.round(gbis_remaining_pre_cancellations * ha_gbis_sale_conversion)) gbis_remaining_revenue = int(gbis_remaining * gbis_rate) # This is the number we expect to cancel - gbis_remaining_expected_cancellations = int(gbis_remaining_pre_cancellations - gbis_remaining) * gbis_rate + gbis_remaining_expected_cancellations = int(gbis_remaining_pre_cancellations - gbis_remaining) + gbis_remaining_expected_cancellations_revenue = gbis_remaining_expected_cancellations * gbis_rate # GBIS delta if original_warmfront_remaining_gbis == 0: @@ -4313,7 +4314,7 @@ def forecast_remaining_sales(loader): ) if gbis_variance_2 != 0: - raise ValueError("Something went wrong in gbis_variance") + raise ValueError("Something went wrong in gbis_variance2") to_append = { ("", "", "", "HA Name"): ha_name, @@ -4414,7 +4415,7 @@ def forecast_remaining_sales(loader): "GBIS Postcode list", "Of which expected sales - £", "Remaining - £", "GBIS total"): gbis_remaining_revenue, ("GBIS Postcode list", "Of which expected cancellations -£", "Remaining - £", "GBIS total"): - gbis_remaining_expected_cancellations + gbis_remaining_expected_cancellations_revenue } # Make sure nothing is forgotten due to duplicate multi-index keys From 1ccb2cdebdca9a2fc17f0b11ef431bac81309357 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Sat, 9 Mar 2024 16:22:28 +0000 Subject: [PATCH 412/526] updated number of expected to append --- etl/eligibility/ha_15_32/ha_analysis_batch_3.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index a25f98c6..7ddc9844 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -4419,7 +4419,7 @@ def forecast_remaining_sales(loader): } # Make sure nothing is forgotten due to duplicate multi-index keys - if len(to_append) != 49: + if len(to_append) != 51: raise ValueError("Something went wrong") results.append(to_append) From 768a0385e3a2cf7fc29b86b827cfb43d914e4621 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Sat, 9 Mar 2024 17:02:33 +0000 Subject: [PATCH 413/526] ha35 data read --- .../ha_15_32/ha_analysis_batch_3.py | 24 +++++++++++++++---- 1 file changed, 19 insertions(+), 5 deletions(-) diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index 7ddc9844..ea0078c2 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -276,6 +276,13 @@ class DataLoader: asset_list["POST CODE"].astype(str).str.lower().str.strip() ) asset_list["matching_postcode"] = asset_list["POST CODE"].astype(str).str.lower().str.strip() + elif ha_name == "HA35": + asset_list["matching_address"] = asset_list["Address Line 1"].astype(str).str.lower().str.strip() + ", " + \ + asset_list["Address Line 2"].astype(str).str.lower().str.strip() + ", " + \ + asset_list["Address Line 3"].astype(str).str.lower().str.strip() + ", " + \ + asset_list["Address Line 4"].astype(str).str.lower().str.strip() + ", " + \ + asset_list["Address Post Code"].astype(str).str.lower().str.strip() + asset_list["matching_postcode"] = asset_list["Address Post Code"].astype(str).str.lower().str.strip() elif ha_name == "HA38": asset_list["matching_address"] = asset_list["House_Number"].astype(str).str.lower().str.strip() + ", " + \ asset_list["Address_Line_1"].astype(str).str.lower().str.strip() + ", " + \ @@ -1648,6 +1655,13 @@ class DataLoader: return survey_list + @staticmethod + def correct_ha35_survey_list(survey_list): + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace( + "BALLADIER WLAK", "BALLADIER WALK" + ) + return survey_list + @staticmethod def levenstein_match(matching_string, df): match_to = df["matching_address"].tolist() @@ -4673,14 +4687,14 @@ def app(): # Add in: priority_has = [ - "HA1", "HA2", "HA6", "HA7", "HA12", "HA13", "HA14", "HA15", "HA16", "HA24", "HA25", "HA28", "HA32", "HA39", - "HA41", "HA48", "HA50", "HA63", "HA107", "HA117" + "HA1", "HA2", "HA6", "HA7", "HA12", "HA13", "HA14", "HA15", "HA16", "HA24", "HA25", "HA28", "HA32", "HA35", + "HA39", "HA41", "HA48", "HA50", "HA63", "HA107", "HA117" ] # Next HAs to do: 14 [DONE], 15[DONE], 32 [DONE], 33 [Input format is 4 parts and no eco4 jobs identified - come - # back on this], 28 [DONE], 41 [DONE], 50 [DONE], 48 [DONE], 2 [DONE], 63 [DONE], 12 [DONE], 117 [DONE] - # 13 [WIP] + # back on this], 28 [DONE], 41 [DONE], 50 [DONE], 48 [DONE], 2 [DONE], 63 [DONE], 12 [DONE], 117 [DONE], 13 [DONE] + # 35 [WIP] # Consider for ECO4: - # Consider for GBIS: 56, 35, 34 + # Consider for GBIS: 56, 34 # Ignore for now: # 38 [problematic, but no ECO4], 10 problematic (no eligibility), 20 has barely any in # Filter down the directories to only the priority HAs From 29f2a2abf801e4c01ad89383b18eaac4ed97b0af Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Sat, 9 Mar 2024 17:09:43 +0000 Subject: [PATCH 414/526] HA35 done --- etl/eligibility/ha_15_32/ha_analysis_batch_3.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index ea0078c2..04ee343c 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -4691,8 +4691,9 @@ def app(): "HA39", "HA41", "HA48", "HA50", "HA63", "HA107", "HA117" ] # Next HAs to do: 14 [DONE], 15[DONE], 32 [DONE], 33 [Input format is 4 parts and no eco4 jobs identified - come - # back on this], 28 [DONE], 41 [DONE], 50 [DONE], 48 [DONE], 2 [DONE], 63 [DONE], 12 [DONE], 117 [DONE], 13 [DONE] - # 35 [WIP] + # back on this], 28 [DONE], 41 [DONE], 50 [DONE], 48 [DONE], 2 [DONE], 63 [DONE], 12 [DONE], 117 [DONE], 13 [DONE], + # 35 [DONE] + # 34 [WIP] # Consider for ECO4: # Consider for GBIS: 56, 34 # Ignore for now: From 6e4fc23ecc2036e14148b18611cb04aafde8084b Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Sat, 9 Mar 2024 18:12:12 +0000 Subject: [PATCH 415/526] fixed dupes for HA34 --- .../ha_15_32/ha_analysis_batch_3.py | 104 +++++++++++++++++- 1 file changed, 98 insertions(+), 6 deletions(-) diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index 04ee343c..8784481b 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -276,6 +276,12 @@ class DataLoader: asset_list["POST CODE"].astype(str).str.lower().str.strip() ) asset_list["matching_postcode"] = asset_list["POST CODE"].astype(str).str.lower().str.strip() + elif ha_name == "HA34": + asset_list["matching_address"] = ( + asset_list[" Address"].astype(str).str.lower().str.strip() + ", " + + asset_list[" Postcode"].astype(str).str.lower().str.strip() + ) + asset_list["matching_postcode"] = asset_list[" Postcode"].astype(str).str.lower().str.strip() elif ha_name == "HA35": asset_list["matching_address"] = asset_list["Address Line 1"].astype(str).str.lower().str.strip() + ", " + \ asset_list["Address Line 2"].astype(str).str.lower().str.strip() + ", " + \ @@ -566,7 +572,8 @@ class DataLoader: eco3_list["eco3_list_row_id"] = [ha_name + "_Eco3_" + str(i) for i in range(0, len(eco3_list))] # Perform the eco3 merge - eco3_list = self.merge_eco3_to_assets(asset_list, eco3_list, ha_name) + if not eco3_list.empty: + eco3_list = self.merge_eco3_to_assets(asset_list, eco3_list, ha_name) if ha_name in ["HA25"]: # Accomodate ha25 unique structure @@ -1657,9 +1664,94 @@ class DataLoader: @staticmethod def correct_ha35_survey_list(survey_list): - survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace( - "BALLADIER WLAK", "BALLADIER WALK" + return survey_list + + @staticmethod + def correct_ha34_survey_list(survey_list): + # Note in the asset list + survey_list = survey_list[ + survey_list["Post Code"] != "L5 3SS" + ] + + survey_list["Post Code"] = survey_list["Post Code"].str.replace( + "L177DR", "L17 7DR" ) + + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace( + "PENVALLEY CRESENT", "Penvalley Crescent" + ) + + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace( + "PENLINKEN DRIVE", "Penlinken Drive" + ) + + # There's no 32 Penlinken Drive in the asset sheet + survey_list = survey_list[ + ~((survey_list["Street / Block Name"] == "Penlinken Drive") & + (survey_list["NO."] == 32)) + ] + + # There's no 30 Gwent Street in the asset sheet + survey_list = survey_list[ + ~((survey_list["Street / Block Name"] == "GWENT ST") & + (survey_list["NO."] == 30)) + ] + + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace( + "POULTON RD", "Poulton Road" + ) + + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace( + "ST PAULS RD", "St Pauls Road" + ) + + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace( + "BROAD LANE, KIRKBY", "BROAD LANE" + ) + + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace( + "BULLENS RD, KIRKBY", "Bullens Road" + ) + + # There's no 219 NORTH HILL ST in the asset sheet + survey_list = survey_list[ + ~((survey_list["Street / Block Name"] == "NORTH HILL ST") & + (survey_list["NO."] == 219)) + ] + + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace( + "CROSLAND RD, KIRKBY", "CROSLAND ROAD" + ) + + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace( + "PARK BROW DRIVE, KIRKBY", "Park Brow Drive" + ) + + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace( + "CELTIC TREET", "Celtic Street" + ) + + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace( + "BUCKLAND ROAD", "Buckland Street" + ) + + # duplicates + survey_list = survey_list.drop_duplicates(["Street / Block Name", "NO.", "Post Code"]) + + # This is a duplicate with wrong postcode + survey_list = survey_list[ + ~((survey_list["Street / Block Name"] == "CLARIBEL STREET") & + (survey_list["NO."] == 7) & + (survey_list["Post Code"] == "L8 8AF")) + ] + + survey_list["NO."] = np.where( + ((survey_list["NO."] == "187 A") & + (survey_list["Post Code"] == "L32 6QF")), + "187A", + survey_list["NO."] + ) + return survey_list @staticmethod @@ -1685,7 +1777,7 @@ class DataLoader: survey_list = survey_list_correction_function(survey_list) missed_postcodes = [] - if ha_name == "HA6": + if ha_name in ["HA6", "HA34"]: missed_postcodes = [ postcode.lower() for postcode in survey_list["Post Code"] if postcode.lower() not in asset_list["matching_postcode"].values @@ -4687,8 +4779,8 @@ def app(): # Add in: priority_has = [ - "HA1", "HA2", "HA6", "HA7", "HA12", "HA13", "HA14", "HA15", "HA16", "HA24", "HA25", "HA28", "HA32", "HA35", - "HA39", "HA41", "HA48", "HA50", "HA63", "HA107", "HA117" + "HA1", "HA2", "HA6", "HA7", "HA12", "HA13", "HA14", "HA15", "HA16", "HA24", "HA25", "HA28", "HA32", "HA34", + "HA35", "HA39", "HA41", "HA48", "HA50", "HA63", "HA107", "HA117" ] # Next HAs to do: 14 [DONE], 15[DONE], 32 [DONE], 33 [Input format is 4 parts and no eco4 jobs identified - come # back on this], 28 [DONE], 41 [DONE], 50 [DONE], 48 [DONE], 2 [DONE], 63 [DONE], 12 [DONE], 117 [DONE], 13 [DONE], From 27fed2dce320a54a049df279fca5c3abd407275f Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Sat, 9 Mar 2024 18:25:22 +0000 Subject: [PATCH 416/526] temp removed HA34 due to issue --- etl/eligibility/ha_15_32/ha_analysis_batch_3.py | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index 8784481b..d1f8d546 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -2270,6 +2270,11 @@ class DataLoader: "ECO4 AFFORDABLE WARMTH": "ECO4", "Affordable Warmth": "ECO4", "ECO4 GBIS (ECO+) JJC UNDER 73m² ": "GBIS", + "ECO4 PPS": "ECO4", + "AFFORDABLE WARMTH / REMEDIAL": "ECO4", + "AFF0RDALE WARMTH": "ECO4", + "ECO 4 RdSAP CL": "ECO4", + "Affordable Warmth (R) ": "ECO4" } # Since it seems like "subject to archetype check" has some failure conditions, for simplicity, we @@ -4779,15 +4784,17 @@ def app(): # Add in: priority_has = [ - "HA1", "HA2", "HA6", "HA7", "HA12", "HA13", "HA14", "HA15", "HA16", "HA24", "HA25", "HA28", "HA32", "HA34", + "HA1", "HA2", "HA6", "HA7", "HA12", "HA13", "HA14", "HA15", "HA16", "HA24", "HA25", "HA28", "HA32", + # "HA34", "HA35", "HA39", "HA41", "HA48", "HA50", "HA63", "HA107", "HA117" ] # Next HAs to do: 14 [DONE], 15[DONE], 32 [DONE], 33 [Input format is 4 parts and no eco4 jobs identified - come # back on this], 28 [DONE], 41 [DONE], 50 [DONE], 48 [DONE], 2 [DONE], 63 [DONE], 12 [DONE], 117 [DONE], 13 [DONE], # 35 [DONE] - # 34 [WIP] + # [WIP] # Consider for ECO4: - # Consider for GBIS: 56, 34 + # Consider for GBIS: 56 + # 34 [bug in the results so leaving out for the moment] # Ignore for now: # 38 [problematic, but no ECO4], 10 problematic (no eligibility), 20 has barely any in # Filter down the directories to only the priority HAs From 28434f43c8fd9dac176fd68a1b4e20a79a128e9d Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Sun, 10 Mar 2024 13:55:44 +0000 Subject: [PATCH 417/526] ha56 wip --- .../ha_15_32/ha_analysis_batch_3.py | 90 +++++++++++++++++-- 1 file changed, 83 insertions(+), 7 deletions(-) diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index d1f8d546..064ff8f5 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -317,6 +317,12 @@ class DataLoader: asset_list["matching_address"] = asset_list["Address Line 1"].astype(str).str.lower().str.strip() + ", " + \ asset_list["Post Code"].astype(str).str.lower().str.strip() asset_list["matching_postcode"] = asset_list["Post Code"].astype(str).str.lower().str.strip() + elif ha_name == "HA56": + asset_list["matching_address"] = asset_list["Address 1"].astype(str).str.lower().str.strip() + ", " + \ + asset_list["Address 2"].astype(str).str.lower().str.strip() + ", " + \ + asset_list["Address 3"].astype(str).str.lower().str.strip() + ", " + \ + asset_list["Post Code"].astype(str).str.lower().str.strip() + asset_list["matching_postcode"] = asset_list["Post Code"].astype(str).str.lower().str.strip() elif ha_name == "HA63": asset_list["matching_address"] = asset_list["Address1"].astype(str).str.lower().str.strip() + ", " + \ asset_list["POSTCODE"].astype(str).str.lower().str.strip() @@ -639,6 +645,54 @@ class DataLoader: return asset_list + @staticmethod + def correct_ha56_asset_list(asset_list): + # CH1 4JR has already been surveyed, but it's listed in the asset list + # as a single row, when it's actually 32 units, so we just set this + # as ineligible + asset_list["ECO Eligibility"] = np.where( + asset_list["Post Code"] == "CH1 4JR", + "Not eligible", + asset_list["ECO Eligibility"] + ) + + # Same for CW8 3EU + asset_list["ECO Eligibility"] = np.where( + asset_list["Post Code"] == "CW8 3EU", + "Not eligible", + asset_list["ECO Eligibility"] + ) + + asset_list["ECO Eligibility"] = np.where( + asset_list["Post Code"] == "CW1 3HP", + "Not eligible", + asset_list["ECO Eligibility"] + ) + + asset_list["ECO Eligibility"] = np.where( + asset_list["Post Code"] == "WA4 2PH", + "Not eligible", + asset_list["ECO Eligibility"] + ) + + asset_list["ECO Eligibility"] = np.where( + asset_list["Post Code"] == "BD6 1QJ", + "Not eligible", + asset_list["ECO Eligibility"] + ) + + asset_list["ECO Eligibility"] = np.where( + asset_list["Post Code"] == "L39 1RS", + "Not eligible", + asset_list["ECO Eligibility"] + ) + + asset_list["ECO Eligibility"] = np.where( + asset_list["Post Code"] == "WA10 2DE", + "Not eligible", + asset_list["ECO Eligibility"] + ) + @staticmethod def correct_ha14_asset_list(asset_list): @@ -1970,6 +2024,24 @@ class DataLoader: return eco3_list + @staticmethod + def correct_ha56_eco3_list(eco3_list): + eco3_list = eco3_list[~pd.isnull(eco3_list["Post Code"])] + + eco3_list["Street / Block Name"] = eco3_list["Street / Block Name"].str.replace( + "Mount Pleasant, Crewe", "Mount Pleasant" + ) + + eco3_list["Street / Block Name"] = eco3_list["Street / Block Name"].str.replace( + "Dutton Close", "Dutton Way" + ) + + eco3_list["Post Code"] = eco3_list["Post Code"].str.replace( + "Ls63nl", "LS6 3NL" + ) + + return eco3_list + def merge_eco3_to_assets(self, asset_list, eco3_list, ha_name): eco3_list_correction_function = getattr(self, f"correct_{ha_name.lower()}_eco3_list") @@ -1978,8 +2050,8 @@ class DataLoader: asset_list["matching_postcode_nospace"] = asset_list["matching_postcode"].str.replace(" ", "").str.lower() eco3_list["postcode_no_space"] = eco3_list["Post Code"].str.lower().str.replace(" ", "") - if ha_name == "HA25": - # 317 -> 259 + if ha_name in ["HA25", "HA56"]: + # HA25: 317 -> 259 missed_postcodes = { postcode for postcode in eco3_list["postcode_no_space"] if postcode not in asset_list["matching_postcode_nospace"].values @@ -2060,6 +2132,7 @@ class DataLoader: raise ValueError( f"Unmatched addresses for {ha_name} is not as expected, got {len(missed)} unmatched" ) + missed_df = eco3_list[eco3_list["eco3_list_row_id"].isin(missed)] matching_lookup = pd.DataFrame(matching_lookup) # Check dupes as this will cause problems later on @@ -3896,6 +3969,9 @@ def calculate_eco4_post_ciga( def forecast_remaining_sales(loader): + # TODO: Skip HA34 for the moment + loader.data = {k: v for k, v in loader.data.items() if k != "HA34"} + # Assumptions: # We cap the ciga conversion rate at 75% because I expect future HAs to have a lower CIGA conversion rate # and I don't want the numbers to change too much, depenent on the CIGA conversation rate @@ -4523,9 +4599,9 @@ def forecast_remaining_sales(loader): gbis_delta_vs_original_estimate_remaining, # Expected cancellations ( - "GBIS Postcode list", "Of which expected sales - £", "Remaining - £", + "GBIS Postcode list", "", "Of which expected sales - £ - £", "GBIS total"): gbis_remaining_revenue, - ("GBIS Postcode list", "Of which expected cancellations -£", "Remaining - £", "GBIS total"): + ("GBIS Postcode list", "", "Of which expected cancellations -£", "GBIS total"): gbis_remaining_expected_cancellations_revenue } @@ -4786,14 +4862,14 @@ def app(): priority_has = [ "HA1", "HA2", "HA6", "HA7", "HA12", "HA13", "HA14", "HA15", "HA16", "HA24", "HA25", "HA28", "HA32", # "HA34", - "HA35", "HA39", "HA41", "HA48", "HA50", "HA63", "HA107", "HA117" + "HA35", "HA39", "HA41", "HA48", "HA50", "HA56", "HA63", "HA107", "HA117" ] # Next HAs to do: 14 [DONE], 15[DONE], 32 [DONE], 33 [Input format is 4 parts and no eco4 jobs identified - come # back on this], 28 [DONE], 41 [DONE], 50 [DONE], 48 [DONE], 2 [DONE], 63 [DONE], 12 [DONE], 117 [DONE], 13 [DONE], # 35 [DONE] - # [WIP] + # 56 [WIP] # Consider for ECO4: - # Consider for GBIS: 56 + # Consider for GBIS: # 34 [bug in the results so leaving out for the moment] # Ignore for now: # 38 [problematic, but no ECO4], 10 problematic (no eligibility), 20 has barely any in From db7b6de87bfb13486a179cbdc547ae375cfc0c8d Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Sun, 10 Mar 2024 14:13:20 +0000 Subject: [PATCH 418/526] handle HA56 dupes --- etl/eligibility/ha_15_32/ha_analysis_batch_3.py | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index 064ff8f5..62099386 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -189,6 +189,7 @@ class DataLoader: "HA25": 154, "HA41": 26, "HA50": 5, + "HA56": 320, "HA63": 0, "HA117": 4 } @@ -693,6 +694,8 @@ class DataLoader: asset_list["ECO Eligibility"] ) + return asset_list + @staticmethod def correct_ha14_asset_list(asset_list): @@ -2040,6 +2043,14 @@ class DataLoader: "Ls63nl", "LS6 3NL" ) + # Handle a duplicate + eco3_list = eco3_list[ + ~((eco3_list["Street / Block Name"] == "Mount Pleasant") & + (eco3_list["Post Code"] == "CW1 3JF") & + (eco3_list["NO "] == 5) & + (eco3_list["INSTALL/ CANCELLATION DATE"] == "CANCELLED 20.5.2022")) + ] + return eco3_list def merge_eco3_to_assets(self, asset_list, eco3_list, ha_name): @@ -2128,15 +2139,16 @@ class DataLoader: # HA25 contains 119 missed entries. These are actually 24 unique postcodes, and the majority belong to 2 # where many surveys were conducted on house numbers, not in the asset list # 154 missed, 2827 matched for HA 25 + # For HA56, the number of missed is high at 320, however a big portion of these are due to the block being + # listed in the asset list, and individual units being in the survey list if len(missed) != self.UNMATCHED_ECO3[ha_name]: raise ValueError( f"Unmatched addresses for {ha_name} is not as expected, got {len(missed)} unmatched" ) - missed_df = eco3_list[eco3_list["eco3_list_row_id"].isin(missed)] matching_lookup = pd.DataFrame(matching_lookup) # Check dupes as this will cause problems later on - if matching_lookup["asset_list_row_id"].duplicated().any(): + if matching_lookup["asset_list_row_id"].duplicated().sum(): raise ValueError("Duplicated asset list row ids") # Merge onto eco3 list From 8b3f4d3a520f9148195c6fbd55d3b1d7354d0ee1 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Sun, 10 Mar 2024 14:25:47 +0000 Subject: [PATCH 419/526] ha56 survey list matching --- .../ha_15_32/ha_analysis_batch_3.py | 54 +++++++++++++++++++ 1 file changed, 54 insertions(+) diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index 62099386..f9bf3856 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -694,6 +694,20 @@ class DataLoader: asset_list["ECO Eligibility"] ) + # Already surveyed under ECO4 + asset_list["ECO Eligibility"] = np.where( + asset_list["Post Code"] == "SK17 6NR", + "Not eligible", + asset_list["ECO Eligibility"] + ) + + asset_list["ECO Eligibility"] = np.where( + ~((asset_list["Post Code"] == "WA5 0EN") & + (asset_list["Address 1"] == "Block 17-26 Tavlin Avenue")), + "Not eligible", + asset_list["ECO Eligibility"] + ) + return asset_list @staticmethod @@ -1811,6 +1825,29 @@ class DataLoader: return survey_list + @staticmethod + def correct_ha56_survey_list(survey_list): + # Not in asset list + survey_list = survey_list[ + ~((survey_list["Street / Block Name"] == "Samual Street") & + (survey_list["NO."].isin([22, 24])) & + (survey_list["Post Code"] == "WA5 1BB")) + ] + + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace( + "STOURTON RD", "Stourton Road" + ) + + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace( + "BIRKIN RD", "Birkin Road" + ) + + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace( + "PORTLAND RD", "Portland Road" + ) + + return survey_list + @staticmethod def levenstein_match(matching_string, df): match_to = df["matching_address"].tolist() @@ -1843,6 +1880,10 @@ class DataLoader: if ha_name == "HA13": missed_postcodes = ["hp17 8le"] + if ha_name == "HA56": + # Multiple properties are listed as blocks, which is a problem for matching + missed_postcodes = ["sk17 6nr", "wa5 0en"] + matching_lookup = [] for _, row in tqdm(survey_list.iterrows(), total=len(survey_list)): @@ -1890,6 +1931,19 @@ class DataLoader: df = df[df["HouseNo"].astype(str).str.lower() == str(house_number)] if df.shape[0] != 1: df = df[df["matching_postcode"].str.lower().str.contains(row["Post Code"].lower().strip())] + + if df.empty: + + postcode_lower = row["Post Code"].lower() + if postcode_lower in missed_postcodes: + matching_lookup.append( + { + "survey_list_row_id": row["survey_list_row_id"], + "asset_list_row_id": None, + } + ) + continue + if df.shape[0] != 1: if "Town/Area" not in row.keys(): full_key = (str(row["NO."]).lower().strip() + row["Street / Block Name"].lower().strip() + From 4a6711a1403a8661b467a0f7023151829e305822 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Sun, 10 Mar 2024 14:35:08 +0000 Subject: [PATCH 420/526] handling ha56 dupes| --- etl/eligibility/ha_15_32/ha_analysis_batch_3.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index f9bf3856..0030af9d 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -1846,6 +1846,13 @@ class DataLoader: "PORTLAND RD", "Portland Road" ) + # We remove a row, because two rows match to a block listing + survey_list = survey_list[ + ~((survey_list["Street / Block Name"] == "Tavlin Avenue") & + (survey_list["NO."] == 17) & + (survey_list["Post Code"] == "WA5 0EN")) + ] + return survey_list @staticmethod From ba65b6c8e37e5a44492c3342a05513d05d275ac4 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Sun, 10 Mar 2024 14:39:15 +0000 Subject: [PATCH 421/526] fixed bug in asset list cleaning --- etl/eligibility/ha_15_32/ha_analysis_batch_3.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index 0030af9d..b1eda326 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -702,8 +702,8 @@ class DataLoader: ) asset_list["ECO Eligibility"] = np.where( - ~((asset_list["Post Code"] == "WA5 0EN") & - (asset_list["Address 1"] == "Block 17-26 Tavlin Avenue")), + ((asset_list["Post Code"] == "WA5 0EN") & + (asset_list["Address 1"] == "Block 17-26 Tavlin Avenue")), "Not eligible", asset_list["ECO Eligibility"] ) From 5eb938bf54fbaaf52bb72e7c8972bad5e2d58a46 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Sun, 10 Mar 2024 15:40:02 +0000 Subject: [PATCH 422/526] ha18 done --- .../ha_15_32/ha_analysis_batch_3.py | 28 +++++++++++++++++-- 1 file changed, 25 insertions(+), 3 deletions(-) diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index b1eda326..676bd613 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -249,6 +249,20 @@ class DataLoader: asset_list["Postcode"].astype(str).str.lower().str.strip() ) asset_list["matching_postcode"] = asset_list["Postcode"].astype(str).str.lower().str.strip() + elif ha_name == "HA18": + asset_list["matching_address"] = ( + asset_list["Address"].astype(str).str.lower().str.strip() + ", " + + asset_list["Post Code"].astype(str).str.lower().str.strip() + ) + asset_list["matching_postcode"] = asset_list["Post Code"].astype(str).str.lower().str.strip() + elif ha_name == "HA19": + asset_list["matching_address"] = ( + asset_list["Address1"].astype(str).str.lower().str.strip() + ", " + + asset_list["Address2"].astype(str).str.lower().str.strip() + ", " + + asset_list["Address3"].astype(str).str.lower().str.strip() + ", " + + asset_list["Postcode"].astype(str).str.lower().str.strip() + ) + asset_list["matching_postcode"] = asset_list["Postcode"].astype(str).str.lower().str.strip() elif ha_name == "HA25": asset_list["matching_address"] = asset_list[ self.COLUMN_CONFIG[ha_name]["address"] @@ -495,6 +509,8 @@ class DataLoader: return "CIGA checks" elif "CIGA check" in workbook.sheetnames: return "CIGA check" + elif "CIGA Check" in workbook.sheetnames: + return "CIGA Check" elif "CIGA requested" in workbook.sheetnames: return "CIGA requested" else: @@ -1733,6 +1749,10 @@ class DataLoader: return survey_list + @staticmethod + def correct_ha18_survey_list(survey_list): + return survey_list + @staticmethod def correct_ha35_survey_list(survey_list): return survey_list @@ -2435,6 +2455,7 @@ class DataLoader: "eco4 (subject to ciga)": "eco4 (subject to ciga)", "eco4(subject to ciga)": "eco4 (subject to ciga)", "eco4 subject to ciga": "eco4 (subject to ciga)", + "eco4 (subject to archetype/ciga)": "eco4 (subject to ciga) (subject to archetype)", } ha_facts_and_figures = [] @@ -4933,14 +4954,15 @@ def app(): # Add in: priority_has = [ - "HA1", "HA2", "HA6", "HA7", "HA12", "HA13", "HA14", "HA15", "HA16", "HA24", "HA25", "HA28", "HA32", + "HA1", "HA2", "HA6", "HA7", "HA12", "HA13", "HA14", "HA15", "HA16", "HA18", + "HA19", "HA24", "HA25", "HA28", "HA32", # "HA34", "HA35", "HA39", "HA41", "HA48", "HA50", "HA56", "HA63", "HA107", "HA117" ] # Next HAs to do: 14 [DONE], 15[DONE], 32 [DONE], 33 [Input format is 4 parts and no eco4 jobs identified - come # back on this], 28 [DONE], 41 [DONE], 50 [DONE], 48 [DONE], 2 [DONE], 63 [DONE], 12 [DONE], 117 [DONE], 13 [DONE], - # 35 [DONE] - # 56 [WIP] + # 35 [DONE], 56 [DONE], 19 [DONE] + # # Consider for ECO4: # Consider for GBIS: # 34 [bug in the results so leaving out for the moment] From 5b39cf138df458b749d13fd100de011e6f3ac350 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Sun, 10 Mar 2024 15:52:33 +0000 Subject: [PATCH 423/526] ha9 data load --- etl/eligibility/ha_15_32/ha_analysis_batch_3.py | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index 676bd613..88ab706b 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -173,6 +173,7 @@ class DataLoader: UNMATCHED_CIGA = { "HA2": 0, "HA6": 117, + "HA9": 0, "HA12": 6, "HA13": 119, "HA14": 3, @@ -226,6 +227,14 @@ class DataLoader: asset_list["Address3"].astype(str).str.lower().str.strip() + ", " + \ asset_list["Postcode"].astype(str).str.lower().str.strip() asset_list["matching_postcode"] = asset_list["Postcode"].astype(str).str.lower().str.strip() + elif ha_name == "HA9": + asset_list["matching_address"] = asset_list["House Number"].astype(str).str.lower().str.strip() + ", " + \ + asset_list["Address Line 1"].astype(str).str.lower().str.strip() + ", " + \ + asset_list["Address Line 2"].astype(str).str.lower().str.strip() + ", " + \ + asset_list["Address Line 3"].astype(str).str.lower().str.strip() + ", " + \ + asset_list["Address Line 4"].astype(str).str.lower().str.strip() + ", " + \ + asset_list["Postcode"].astype(str).str.lower().str.strip() + asset_list["matching_postcode"] = asset_list["Postcode"].astype(str).str.lower().str.strip() elif ha_name == "HA13": asset_list["matching_address"] = asset_list["Address 1"].astype(str).str.lower().str.strip() + ", " + \ asset_list["address 2"].astype(str).str.lower().str.strip() + ", " + \ @@ -430,7 +439,7 @@ class DataLoader: :return: """ - if ha_name in ["HA107"]: + if ha_name == "HA107": asset_list["HouseNo"] = asset_list["House No"].copy() elif ha_name == "HA32": asset_list["HouseNo"] = asset_list["Dwelling num"].copy() @@ -438,6 +447,8 @@ class DataLoader: asset_list["HouseNo"] = asset_list["House Number"].copy() elif ha_name == "HA38": asset_list["HouseNo"] = asset_list["House_Number"].copy() + elif ha_name == "HA9": + asset_list["HouseNo"] = asset_list["House Number"].copy() else: split_addresses = asset_list['matching_address'].str.split(',', expand=True) house_numbers = split_addresses[0].str.split(' ', expand=True) @@ -4954,7 +4965,7 @@ def app(): # Add in: priority_has = [ - "HA1", "HA2", "HA6", "HA7", "HA12", "HA13", "HA14", "HA15", "HA16", "HA18", + "HA1", "HA2", "HA6", "HA7", "HA9", "HA12", "HA13", "HA14", "HA15", "HA16", "HA18", "HA19", "HA24", "HA25", "HA28", "HA32", # "HA34", "HA35", "HA39", "HA41", "HA48", "HA50", "HA56", "HA63", "HA107", "HA117" From efbda5cece019d8518b770c0ace444c1179a1d6a Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Sun, 10 Mar 2024 16:09:08 +0000 Subject: [PATCH 424/526] ha27 complete --- etl/eligibility/ha_15_32/ha_analysis_batch_3.py | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index 88ab706b..fba30f1f 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -280,6 +280,12 @@ class DataLoader: asset_list["matching_postcode"] = asset_list['matching_address'].apply( lambda x: ' '.join(x.split()[-2:]) if pd.notnull(x) else x ) + elif ha_name == "HA27": + asset_list["matching_address"] = ( + asset_list[" Address"].astype(str).str.lower().str.strip() + ", " + + asset_list[" Postcode"].astype(str).str.lower().str.strip() + ) + asset_list["matching_postcode"] = asset_list[" Postcode"].astype(str).str.lower().str.strip() elif ha_name == "HA28": asset_list["matching_address"] = ( asset_list["House Number"].astype(str).str.lower().str.strip() + ", " + @@ -582,7 +588,7 @@ class DataLoader: # For HA1 and HA25, there is an exception in the structure of the data. We don't have any survey or ciga # lists, and so # we can return the asset list now - if ha_name in ["HA1"]: + if ha_name in ["HA1", "HA27"]: return asset_list, pd.DataFrame(), pd.DataFrame(), pd.DataFrame() # If we have ECO3 surveys, we need to match them, because any properties treated under ECO3 won't be @@ -4966,13 +4972,13 @@ def app(): # Add in: priority_has = [ "HA1", "HA2", "HA6", "HA7", "HA9", "HA12", "HA13", "HA14", "HA15", "HA16", "HA18", - "HA19", "HA24", "HA25", "HA28", "HA32", + "HA19", "HA24", "HA25", "HA27", "HA28", "HA32", # "HA34", "HA35", "HA39", "HA41", "HA48", "HA50", "HA56", "HA63", "HA107", "HA117" ] # Next HAs to do: 14 [DONE], 15[DONE], 32 [DONE], 33 [Input format is 4 parts and no eco4 jobs identified - come # back on this], 28 [DONE], 41 [DONE], 50 [DONE], 48 [DONE], 2 [DONE], 63 [DONE], 12 [DONE], 117 [DONE], 13 [DONE], - # 35 [DONE], 56 [DONE], 19 [DONE] + # 35 [DONE], 56 [DONE], 19 [DONE], 18 [DONE], 9 [DONE], 27 DONE # # Consider for ECO4: # Consider for GBIS: From 22f3aca336abafc164439f00ddbdf34649f4f28a Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Sun, 10 Mar 2024 16:26:42 +0000 Subject: [PATCH 425/526] ha30 32% matched --- .../ha_15_32/ha_analysis_batch_3.py | 29 +++++++++++++++++-- 1 file changed, 27 insertions(+), 2 deletions(-) diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index fba30f1f..bdb0d0c4 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -164,6 +164,10 @@ class DataLoader: "address": "T1_Address", "postcode": "matching_postcode" }, + "HA30": { + "address": "A_Address", + "postcode": "A_Postcode" + }, "HA48": { "address": "Full Address", "postcode": "Postcode" @@ -207,7 +211,7 @@ class DataLoader: def create_asset_list_matching_address(self, ha_name, asset_list): - if ha_name in ["HA1", "HA6", "HA12", "HA16", "HA24", "HA48"]: + if ha_name in ["HA1", "HA6", "HA12", "HA16", "HA24", "HA30", "HA48"]: asset_list["matching_address"] = asset_list[ self.COLUMN_CONFIG[ha_name]["address"] ].astype(str).str.lower().str.strip() @@ -1892,6 +1896,27 @@ class DataLoader: return survey_list + @staticmethod + def correct_ha30_survey_list(survey_list): + + survey_list = survey_list[~pd.isnull(survey_list["Post Code"])] + + # Split on / and take the first half + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.split("/").str[0] + + # Not in the asset list + survey_list = survey_list[ + ~((survey_list["Street / Block Name"] == "Horsebridge Road") & + (survey_list["NO."] == 286)) + ] + + survey_list = survey_list[ + ~((survey_list["Street / Block Name"] == "DUTTON WAY") & + (survey_list["NO."] == 9)) + ] + + return survey_list + @staticmethod def levenstein_match(matching_string, df): match_to = df["matching_address"].tolist() @@ -4972,7 +4997,7 @@ def app(): # Add in: priority_has = [ "HA1", "HA2", "HA6", "HA7", "HA9", "HA12", "HA13", "HA14", "HA15", "HA16", "HA18", - "HA19", "HA24", "HA25", "HA27", "HA28", "HA32", + "HA19", "HA24", "HA25", "HA27", "HA28", "HA30", "HA32", # "HA34", "HA35", "HA39", "HA41", "HA48", "HA50", "HA56", "HA63", "HA107", "HA117" ] From cd81c2b0b29a65b3fd3c59ec5dec7730afdd64ec Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Sun, 10 Mar 2024 16:45:59 +0000 Subject: [PATCH 426/526] done ha30 matching --- .../ha_15_32/ha_analysis_batch_3.py | 68 +++++++++++++++++++ 1 file changed, 68 insertions(+) diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index bdb0d0c4..71062b16 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -1915,6 +1915,74 @@ class DataLoader: (survey_list["NO."] == 9)) ] + survey_list = survey_list[ + ~((survey_list["Street / Block Name"] == "PAYTHORNE CLOSE") & + (survey_list["NO."] == 10)) + ] + + survey_list = survey_list[ + ~((survey_list["Street / Block Name"] == "MARCHWOOD ROAD") & + (survey_list["NO."] == 11)) + ] + + survey_list = survey_list[ + ~((survey_list["Street / Block Name"] == "Otterburn Close") & + (survey_list["NO."] == 4)) + ] + + survey_list = survey_list[ + ~((survey_list["Street / Block Name"] == "Blossom Court") & + (survey_list["NO."] == 5)) + ] + + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace( + "St LUKES CLOSE , HUNTINGDON", "St. Lukes Close" + ) + + survey_list = survey_list[ + ~((survey_list["Street / Block Name"] == "St. Lukes Close") & + (survey_list["NO."].isin([4, 7, 8]))) + ] + + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace( + "ROMAN WAY , GODMANCHESTER , HUNTINGDON", "Roman Way" + ) + + survey_list = survey_list[ + ~((survey_list["Street / Block Name"] == "Roman Way") & + (survey_list["NO."].isin([58]))) + ] + + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace( + "HEADLANDS , FENSTANTON , HUNTINGDON", "Headlands Fenstanton" + ) + + survey_list = survey_list[ + ~((survey_list["Street / Block Name"] == "Headlands Fenstanton") & + (survey_list["NO."].isin([126, 134]))) + ] + + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace( + "WALLACE COURT , HUNTINGDON", "Wallace Court" + ) + + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace( + "CRICKETERS WAY , CHATTERIS", "Cricketers Way" + ) + + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace( + "Jubilee Gardens", "Jubilee Green" + ) + + survey_list = survey_list[ + ~((survey_list["Street / Block Name"] == "Harrow Road") & + (survey_list["NO."].isin([10]))) + ] + + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace( + "ST LUKES CLOSE", "St. Lukes Close" + ) + return survey_list @staticmethod From 2810316e22ffe4662ae40c2c3bb9bee2f6af6f83 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Sun, 10 Mar 2024 17:14:22 +0000 Subject: [PATCH 427/526] handled bug for HA30 --- etl/eligibility/ha_15_32/ha_analysis_batch_3.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index 71062b16..1ee40dde 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -2566,6 +2566,7 @@ class DataLoader: "eco4(subject to ciga)": "eco4 (subject to ciga)", "eco4 subject to ciga": "eco4 (subject to ciga)", "eco4 (subject to archetype/ciga)": "eco4 (subject to ciga) (subject to archetype)", + "eco4( subject to ciga/archetype)": "eco4 (subject to ciga) (subject to archetype)", } ha_facts_and_figures = [] @@ -2716,11 +2717,13 @@ class DataLoader: asset_list = asset_list.merge(survey_list_to_merge, how='left', on="asset_list_row_id") # Update the cases where properties have sold, but are missing a CIGA check + # If we don't have a CIGA list, we set the value to ECO4 + set_to = "eco4 - passed ciga" if not ciga_list.empty else "eco4" asset_list["ECO Eligibility"] = np.where( (asset_list["ECO Eligibility"].str.contains("subject to ciga")) & ( asset_list["has_a_survey_record"] == True ), - "eco4 - passed ciga", + set_to, asset_list["ECO Eligibility"] ) # Update the cases where a property has been marked as eligible for GBIS, but sold for ECO4 @@ -4122,7 +4125,6 @@ def calculate_eco4_post_ciga( eco4_expected_cancellations = eco4_no_ciga_needed_cancellations + eco4_ciga_needed_cancellations else: - eco4_confirmed_ciga_failures = 0 # Multiply by sale conversion eco4_confirmed = np.round(eco4_no_ciga_needed * ha_eco4_to_sale_rate) From e15b977930c1b65ab39099c8c6a92d05039e96af Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Sun, 10 Mar 2024 17:25:07 +0000 Subject: [PATCH 428/526] fixed ha34, completed 30 --- etl/eligibility/ha_15_32/ha_analysis_batch_3.py | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index 1ee40dde..7d35386d 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -2550,7 +2550,8 @@ class DataLoader: "AFFORDABLE WARMTH / REMEDIAL": "ECO4", "AFF0RDALE WARMTH": "ECO4", "ECO 4 RdSAP CL": "ECO4", - "Affordable Warmth (R) ": "ECO4" + "Affordable Warmth (R) ": "ECO4", + "Affordable Warmth ": "ECO4" } # Since it seems like "subject to archetype check" has some failure conditions, for simplicity, we @@ -4175,9 +4176,6 @@ def calculate_eco4_post_ciga( def forecast_remaining_sales(loader): - # TODO: Skip HA34 for the moment - loader.data = {k: v for k, v in loader.data.items() if k != "HA34"} - # Assumptions: # We cap the ciga conversion rate at 75% because I expect future HAs to have a lower CIGA conversion rate # and I don't want the numbers to change too much, depenent on the CIGA conversation rate @@ -5066,18 +5064,15 @@ def app(): # Add in: priority_has = [ - "HA1", "HA2", "HA6", "HA7", "HA9", "HA12", "HA13", "HA14", "HA15", "HA16", "HA18", - "HA19", "HA24", "HA25", "HA27", "HA28", "HA30", "HA32", - # "HA34", - "HA35", "HA39", "HA41", "HA48", "HA50", "HA56", "HA63", "HA107", "HA117" + "HA1", "HA2", "HA6", "HA7", "HA9", "HA12", "HA13", "HA14", "HA15", "HA16", "HA18", "HA19", "HA24", "HA25", + "HA27", "HA28", "HA30", "HA32", "HA34", "HA35", "HA39", "HA41", "HA48", "HA50", "HA56", "HA63", "HA107", "HA117" ] # Next HAs to do: 14 [DONE], 15[DONE], 32 [DONE], 33 [Input format is 4 parts and no eco4 jobs identified - come # back on this], 28 [DONE], 41 [DONE], 50 [DONE], 48 [DONE], 2 [DONE], 63 [DONE], 12 [DONE], 117 [DONE], 13 [DONE], - # 35 [DONE], 56 [DONE], 19 [DONE], 18 [DONE], 9 [DONE], 27 DONE + # 35 [DONE], 56 [DONE], 19 [DONE], 18 [DONE], 9 [DONE], 27 [DONE], 34 [DONE], 30 [DONE] # # Consider for ECO4: # Consider for GBIS: - # 34 [bug in the results so leaving out for the moment] # Ignore for now: # 38 [problematic, but no ECO4], 10 problematic (no eligibility), 20 has barely any in # Filter down the directories to only the priority HAs From 41c17aa1dafe9110c74d6969f2fa06e58d3f0cf8 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Sun, 10 Mar 2024 18:13:45 +0000 Subject: [PATCH 429/526] HA54 done --- .../ha_15_32/ha_analysis_batch_3.py | 22 ++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index 7d35386d..d556450b 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -168,9 +168,17 @@ class DataLoader: "address": "A_Address", "postcode": "A_Postcode" }, + "HA31": { + "address": "A_Address", + "postcode": "matching_postcode" + }, "HA48": { "address": "Full Address", "postcode": "Postcode" + }, + "HA54": { + "address": "Postal Address", + "postcode": "matching_postcode" } } @@ -211,7 +219,7 @@ class DataLoader: def create_asset_list_matching_address(self, ha_name, asset_list): - if ha_name in ["HA1", "HA6", "HA12", "HA16", "HA24", "HA30", "HA48"]: + if ha_name in ["HA1", "HA6", "HA12", "HA16", "HA24", "HA30", "HA31", "HA48", "HA54"]: asset_list["matching_address"] = asset_list[ self.COLUMN_CONFIG[ha_name]["address"] ].astype(str).str.lower().str.strip() @@ -559,6 +567,12 @@ class DataLoader: if ha_name == "HA25": asset_sheet_colnames[11] = "matching_postcode" + if ha_name == "HA31": + asset_sheet_colnames[2] = "matching_postcode" + + if ha_name == "HA54": + asset_sheet_colnames[10] = "matching_postcode" + rows_data = [] for row in asset_sheet.iter_rows(min_row=2, values_only=False): @@ -2568,6 +2582,7 @@ class DataLoader: "eco4 subject to ciga": "eco4 (subject to ciga)", "eco4 (subject to archetype/ciga)": "eco4 (subject to ciga) (subject to archetype)", "eco4( subject to ciga/archetype)": "eco4 (subject to ciga) (subject to archetype)", + "eco4 (subject to ciga/ archetype)": "eco4 (subject to ciga) (subject to archetype)" } ha_facts_and_figures = [] @@ -5065,11 +5080,12 @@ def app(): # Add in: priority_has = [ "HA1", "HA2", "HA6", "HA7", "HA9", "HA12", "HA13", "HA14", "HA15", "HA16", "HA18", "HA19", "HA24", "HA25", - "HA27", "HA28", "HA30", "HA32", "HA34", "HA35", "HA39", "HA41", "HA48", "HA50", "HA56", "HA63", "HA107", "HA117" + "HA27", "HA28", "HA30", "HA31", "HA32", "HA34", "HA35", "HA39", "HA41", "HA48", "HA50", "HA54", "HA56", "HA63", + "HA107", "HA117" ] # Next HAs to do: 14 [DONE], 15[DONE], 32 [DONE], 33 [Input format is 4 parts and no eco4 jobs identified - come # back on this], 28 [DONE], 41 [DONE], 50 [DONE], 48 [DONE], 2 [DONE], 63 [DONE], 12 [DONE], 117 [DONE], 13 [DONE], - # 35 [DONE], 56 [DONE], 19 [DONE], 18 [DONE], 9 [DONE], 27 [DONE], 34 [DONE], 30 [DONE] + # 35 [DONE], 56 [DONE], 19 [DONE], 18 [DONE], 9 [DONE], 27 [DONE], 34 [DONE], 30 [DONE], 31 [DONE], 54 [DONE] # # Consider for ECO4: # Consider for GBIS: From 6a327629bf0ab5284b1b951cc98360597f30ce1f Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Tue, 12 Mar 2024 11:09:09 +0000 Subject: [PATCH 430/526] rough attempt to attribute surplus ciga dependent eco4 jobs --- .../ha_15_32/ha_analysis_batch_3.py | 144 +++++++++++++----- 1 file changed, 107 insertions(+), 37 deletions(-) diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index d556450b..5ad1aa27 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -176,6 +176,10 @@ class DataLoader: "address": "Full Address", "postcode": "Postcode" }, + "HA49": { + "address": "Property Address Full", + "postcode": "Property Postcode" + }, "HA54": { "address": "Postal Address", "postcode": "matching_postcode" @@ -219,7 +223,7 @@ class DataLoader: def create_asset_list_matching_address(self, ha_name, asset_list): - if ha_name in ["HA1", "HA6", "HA12", "HA16", "HA24", "HA30", "HA31", "HA48", "HA54"]: + if ha_name in ["HA1", "HA6", "HA12", "HA16", "HA24", "HA30", "HA31", "HA48", "HA49", "HA54"]: asset_list["matching_address"] = asset_list[ self.COLUMN_CONFIG[ha_name]["address"] ].astype(str).str.lower().str.strip() @@ -382,6 +386,16 @@ class DataLoader: asset_list["Address2"].astype(str).str.lower().str.strip() + ", " + \ asset_list["PostCode"].astype(str).str.lower().str.strip() asset_list["matching_postcode"] = asset_list["PostCode"].astype(str).str.lower().str.strip() + elif ha_name == "HAXX": + asset_list["matching_address"] = asset_list["Address"].astype(str).str.lower().str.strip() + ", " + \ + asset_list["PostCode"].astype(str).str.lower().str.strip() + asset_list["matching_postcode"] = asset_list["PostCode"].astype(str).str.lower().str.strip() + elif ha_name == "HAXXX": + asset_list["matching_address"] = ( + asset_list["Combined Address"].astype(str).str.lower().str.strip() + ", " + + asset_list["Postcode"].astype(str).str.lower().str.strip() + ) + asset_list["matching_postcode"] = asset_list["Postcode"].astype(str).str.lower().str.strip() else: raise NotImplementedError("implement me") @@ -467,6 +481,8 @@ class DataLoader: asset_list["HouseNo"] = asset_list["House_Number"].copy() elif ha_name == "HA9": asset_list["HouseNo"] = asset_list["House Number"].copy() + elif ha_name == "HAXXX": + asset_list["HouseNo"] = asset_list["Door Number"].copy() else: split_addresses = asset_list['matching_address'].str.split(',', expand=True) house_numbers = split_addresses[0].str.split(' ', expand=True) @@ -1999,6 +2015,10 @@ class DataLoader: return survey_list + @staticmethod + def correct_ha49_survey_list(survey_list): + return survey_list + @staticmethod def levenstein_match(matching_string, df): match_to = df["matching_address"].tolist() @@ -5080,8 +5100,11 @@ def app(): # Add in: priority_has = [ "HA1", "HA2", "HA6", "HA7", "HA9", "HA12", "HA13", "HA14", "HA15", "HA16", "HA18", "HA19", "HA24", "HA25", - "HA27", "HA28", "HA30", "HA31", "HA32", "HA34", "HA35", "HA39", "HA41", "HA48", "HA50", "HA54", "HA56", "HA63", - "HA107", "HA117" + "HA27", "HA28", "HA30", "HA31", "HA32", "HA34", "HA35", "HA39", "HA41", "HA48", "HA49", "HA50", "HA54", "HA56", + "HA63", "HA107", "HA117", + + # New HAS + "HAXX", "HAXXX", ] # Next HAs to do: 14 [DONE], 15[DONE], 32 [DONE], 33 [Input format is 4 parts and no eco4 jobs identified - come # back on this], 28 [DONE], 41 [DONE], 50 [DONE], 48 [DONE], 2 [DONE], 63 [DONE], 12 [DONE], 117 [DONE], 13 [DONE], @@ -5100,39 +5123,86 @@ def app(): forecast_remaining_sales(loader) - # We load in the additional data required to perform the analysis - # cleaned = read_from_s3( - # s3_file_name="cleaned_epc_data/cleaned.bson", - # bucket_name="retrofit-data-dev" - # ) - # cleaned = msgpack.unpackb(cleaned, raw=False) - # cleaned = patch_cleaned(cleaned) - # - # cleaning_data = read_dataframe_from_s3_parquet( - # bucket_name="retrofit-data-dev", file_key="sap_change_model/cleaning_dataset.parquet", - # ) - # created_at = datetime.now().isoformat() - # - # photo_supply_lookup, floor_area_decile_thresholds = SolarPhotoSupply.load(bucket="retrofit-data-dev") - # - # outputs = get_epc_data( - # loader=loader, - # cleaned=cleaned, - # cleaning_data=cleaning_data, - # created_at=created_at, - # photo_supply_lookup=photo_supply_lookup, - # floor_area_decile_thresholds=floor_area_decile_thresholds, - # pull_data=pull_data - # ) + conversion_rate = 0.95 + archetype_check_conversion = 0.7 + res = [] + for k, v in loader.data.items(): + asset_list = v["asset_list"].copy() + agg = asset_list["ECO Eligibility"].value_counts() + # We find a case where there are properties that have passed CIGA + if not any("passed" in x for x in agg.index): + continue - # import pickle - # with open("ha_analysis.pickle", "wb") as f: - # pickle.dump({"outputs": outputs, "loader": loader}, f) + agg = pd.DataFrame(agg).reset_index() - # To read: - # import pickle - # with open("ha_analysis.pickle", "rb") as f: - # outputs = pickle.load(f)["outputs"] - # - # with open("loader.pickle", "rb") as f: - # loader = pickle.load(f) + passed_ciga = agg[agg["ECO Eligibility"] == "eco4 - passed ciga"] + passed_ciga = passed_ciga["count"].values[0] if not passed_ciga.empty else 0 + + failed_ciga = agg[agg["ECO Eligibility"] == "failed ciga"] + failed_ciga = failed_ciga["count"].values[0] if not failed_ciga.empty else 0 + + ciga_pass_rate = passed_ciga / (passed_ciga + failed_ciga) if (passed_ciga + failed_ciga) > 0 else 1 + + dormant_ciga = agg[ + agg["ECO Eligibility"].str.contains("subject to ciga") & + ~agg["ECO Eligibility"].str.contains("subject to archetype") + ] + + dormant_ciga = dormant_ciga['count'].values[0] if not dormant_ciga.empty else 0 + + dormant_ciga_archetype = agg[ + agg["ECO Eligibility"].str.contains("subject to ciga") & + agg["ECO Eligibility"].str.contains("subject to archetype") + ] + + dormant_ciga_archetype = dormant_ciga_archetype['count'].values[0] if not dormant_ciga_archetype.empty else 0 + + needing_check = dormant_ciga + dormant_ciga_archetype * archetype_check_conversion + needing_check = np.round(needing_check) + + additional_jobs = (dormant_ciga * ciga_pass_rate * conversion_rate) + ( + dormant_ciga_archetype * archetype_check_conversion * ciga_pass_rate * conversion_rate + ) + additional_jobs = np.round(additional_jobs) + + # We attempt to estimate the uplift and how much of that is attributed to surplus subject to ciga jobs + original_estimate = loader.december_figures[ + loader.december_figures["HA Name"] == k + ] + + original_estimate = original_estimate["ECO4"].values[0] if not original_estimate.empty else 0 + base_eco_figures = agg[ + agg["ECO Eligibility"].isin(["eco4", "eco4 - passed ciga"]) + ]["count"].sum() + eco4_from_ciga = original_estimate - base_eco_figures + eco4_from_ciga = eco4_from_ciga if eco4_from_ciga > 0 else 0 + surplus_from_dormant = additional_jobs - eco4_from_ciga + surplus_from_dormant = 0 if surplus_from_dormant < 0 else surplus_from_dormant + + res.append( + { + "ha_name": k, + "additional_eco4": additional_jobs, + "needing_check": needing_check, + "surplus_from_dormant": surplus_from_dormant + } + ) + + res = pd.DataFrame(res) + # Drop the HAs that are not in that pervious draft + # In the v2 draft, there are 12 HAs + + v5_surplus = res[ + ~res["ha_name"].isin(["HA9"]) + ]["additional_eco4"].sum() + # 7212 properties + # This is not a perfect difference though, because of the variations in how the numbers are recorded in the November + # all HAs sheet. E.g for HA 107, there were 1239 properties identified. In the postcode list, there are 1255, + # however 531 are still needing a CIGA check. Therefore their original figures, in this case, included properties + # pre-CIGA + + v5_surplus_from_dormant = res[ + ~res["ha_name"].isin(["HA9"]) + ]["surplus_from_dormant"].sum() + # 5539.0 + # 9471690 From ddb5de50e550190c74cd5a2be767f2960352143a Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Thu, 14 Mar 2024 13:58:29 +0000 Subject: [PATCH 431/526] testing with another stupid effing method --- .idea/.gitignore | 2 + .../ha_15_32/ha_analysis_batch_3.py | 230 +++++++++++++++++- .../epc_attributes/RoofAttributes.py | 17 +- 3 files changed, 241 insertions(+), 8 deletions(-) diff --git a/.idea/.gitignore b/.idea/.gitignore index 26d33521..8f00030d 100644 --- a/.idea/.gitignore +++ b/.idea/.gitignore @@ -1,3 +1,5 @@ # Default ignored files /shelf/ /workspace.xml +# GitHub Copilot persisted chat sessions +/copilot/chatSessions diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index 5ad1aa27..767e13c8 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -7,7 +7,9 @@ import msgpack from datetime import datetime import pandas as pd import numpy as np -from utils.s3 import read_from_s3, read_dataframe_from_s3_parquet, save_pickle_to_s3, read_pickle_from_s3 +from utils.s3 import ( + read_from_s3, read_dataframe_from_s3_parquet, save_pickle_to_s3, read_pickle_from_s3, save_dataframe_to_s3_parquet +) from utils.logger import setup_logger from dotenv import load_dotenv from tqdm import tqdm @@ -2860,8 +2862,8 @@ def get_property_type_and_built_form(property_meta, ha_name): property_type = PROPERTY_TYPE_LOOKUP[ha_name]["property_type"][property_meta["Dwelling type"]] built_form = property_meta["built_form"] elif ha_name == "HA7": - property_type = PROPERTY_TYPE_LOOKUP[ha_name]["property_type"][property_meta["Archetype"]] - built_form = PROPERTY_TYPE_LOOKUP[ha_name]["built_form"][property_meta["Property Type"]] + property_type = PROPERTY_TYPE_LOOKUP[ha_name]["property_type"].get(property_meta["Archetype"]) + built_form = PROPERTY_TYPE_LOOKUP[ha_name]["built_form"].get(property_meta["Property Type"]) elif ha_name == "HA14": if property_meta["Asset Type Description"] == "Block - Repair": # We try and deduce if it's a flat or house, depending on if it has "room" or "flats" in the address @@ -4429,6 +4431,12 @@ def forecast_remaining_sales(loader): for ha_name, input_data in loader.data.items(): # Original warmfront figures - ECO4 original_warmfront_estimates = december_figures[december_figures["HA Name"] == ha_name] + if original_warmfront_estimates.empty: + # Append an empty row + original_warmfront_estimates = december_figures.head(1).copy() + for k in original_warmfront_estimates.columns: + original_warmfront_estimates[k] = 0 + original_warmfront_estimates["HA Name"] = ha_name original_warmfront_eco4 = original_warmfront_estimates["ECO4"].values[0] original_warmfront_remaining_eco4 = original_warmfront_estimates["ECO4 remaining"].values[0] @@ -4742,6 +4750,12 @@ def forecast_remaining_sales(loader): if gbis_variance_2 != 0: raise ValueError("Something went wrong in gbis_variance2") + # Update the GBIS sold, since Warmfront often sold more GBIS that expected + original_warmfront_gbis_revenue = original_warmfront_sold_gbis + original_warmfront_remaining_gbis_revenue + original_warmfront_gbis = ( + original_warmfront_sold_gbis / gbis_rate + original_warmfront_remaining_gbis_revenue / gbis_rate + ) + to_append = { ("", "", "", "HA Name"): ha_name, # ECO4 - original warmfront figures @@ -5077,6 +5091,216 @@ def forecast_remaining_sales(loader): results.to_csv(file, header=True, index=False) +def fml_data_pull(loader): + has_bruh = ["HA7"] + from backend.SearchEpc import SearchEpc + epc_api_key = "a2Nvbm5rb3dsZXNzYXJAZ21haWwuY29tOjY5MGJiMWM0NmIyOGI5ZDUxYzAxMzQzYzNiZGNlZGJjZDNmODQwMzA=" + + for ha in has_bruh: + asset_list = loader.data[ha]["asset_list"].copy() + # properties found as eligibile + fml = asset_list[asset_list["ECO Eligibility"] != "not eligible"] + + # For each property, search for the latest EPC + epc_data = [] + for _, row in tqdm(fml.iterrows(), total=fml.shape[0]): + property_type, built_form = get_property_type_and_built_form(property_meta=row, ha_name=ha) + searcher = SearchEpc( + address1=row["HouseNo"], + postcode=row["matching_postcode"], + auth_token=epc_api_key, + os_api_key="", + property_type=property_type, + full_address=row["matching_address"], + ) + searcher.ordnance_survey_client.property_type = property_type + searcher.ordnance_survey_client.built_form = built_form + + searcher.find_property(skip_os=True) + if searcher.newest_epc is None: + continue + + epc = { + "asset_list_row_id": row["asset_list_row_id"], + **searcher.newest_epc.copy() + } + + epc_data.append(epc) + + # Remove None entries + epc_data = [x for x in epc_data if x is not None] + # Save the data in S3 as a parquet + epc_data_df = pd.DataFrame(epc_data) + save_pickle_to_s3( + data=epc_data_df, + bucket_name="retrofit-datalake-dev", + s3_file_name=f"ha-analysis/revised/{ha}/epc_data.pickle" + ) + + +def extract_lower_bound(age_band): + if pd.isna(age_band): + return 1930 + try: + return int(age_band.split(':')[1].split('-')[0].strip()) + except (ValueError, IndexError): + return 1930 + + +def fml_analysis(loader): + from etl.epc_clean.epc_attributes.RoofAttributes import RoofAttributes + from etl.epc.DataProcessor import EPCDataProcessor + assumed_ciga_pass_rate = 0.731 + has_bruh = ["HA7"] + + results = [] + for ha_name in has_bruh: + + original_figures = loader.december_figures[ + loader.december_figures["HA Name"] == ha_name + ].copy() + original_remaining = original_figures["ECO4 remaining"].values[0] + + # Read in the epc data + asset_list = loader.data[ha_name]["asset_list"].copy() + # properties found as eligibile + fml = asset_list[asset_list["ECO Eligibility"] != "not eligible"] + epc_data = read_pickle_from_s3( + bucket_name="retrofit-datalake-dev", + s3_file_name=f"ha-analysis/revised/{ha_name}/epc_data.pickle" + ) + + fuck_this = fml.merge( + epc_data, how="left", on="asset_list_row_id" + ) + if fuck_this.shape[0] != fml.shape[0]: + raise Exception("What the fuck bruv") + + # Take just remaining + if not loader.data[ha_name]["survey_list"].empty: + raise NotImplementedError("TAKE JUST REMAINING IDIOT") + + insulation_thicknesses = [] + for _, x in fuck_this.iterrows(): + if pd.isnull(x["roof-description"]): + continue + thickness = RoofAttributes(x["roof-description"]).process()["insulation_thickness"] + # If there is a + in the thickness, strip it out + thickness = str(thickness).replace("+", "") + insulation_thicknesses.append( + {'uprn': x["uprn"], "roof_insulation_thickness": thickness} + ) + insulation_thicknesses = pd.DataFrame(insulation_thicknesses) + + fuck_this = fuck_this.merge(insulation_thicknesses, how="left", on="uprn") + # clean roof insulation + fuck_this["roof_insulation_thickness"] = fuck_this["roof_insulation_thickness"].fillna("0") + fuck_this["roof_insulation_thickness"] = fuck_this[ + "roof_insulation_thickness" + ].str.replace("below average", "50") + fuck_this["roof_insulation_thickness"] = fuck_this[ + "roof_insulation_thickness" + ].str.replace("None", "0") + fuck_this["roof_insulation_thickness"] = fuck_this[ + "roof_insulation_thickness" + ].str.replace("none", "0") + fuck_this["roof_insulation_thickness"] = fuck_this[ + "roof_insulation_thickness" + ].str.replace("average", "150") + + fuck_this["construction-age-band"] = fuck_this["construction-age-band"].apply( + lambda x: EPCDataProcessor.clean_construction_age_band(x) + ) + + fuck_this['age_lower_bound'] = fuck_this['construction-age-band'].apply(extract_lower_bound) + + had_survey = fuck_this[pd.isnull(fuck_this["estimated"])] + + # proportion with a survey: + proportion_with_survey = 100 * had_survey.shape[0] / fuck_this.shape[0] + + # Let's look just at the ECO4 business + # For things that had a survey, take the properties that didn't need a CIGA check + no_ciga_check_needed = had_survey[ + had_survey["ECO Eligibility"] == "eco4" + ] + + no_ciga_check_needed_with_archetype = no_ciga_check_needed[ + (no_ciga_check_needed["walls-description"].str.lower().str.contains("cavity") == True) & + (no_ciga_check_needed["roof-description"].str.lower().str.contains("pitched") == True) & + (no_ciga_check_needed["current-energy-efficiency"].astype(float) <= 80) + ] + if not no_ciga_check_needed_with_archetype.empty: + raise Exception("SORT ME OUT") + + # Characterise no CIGA check needed + + # TODO: WHAT ABOUT PASSED CIGA - don't need to apply the further deduction + + ciga_check_needed = had_survey[ + had_survey["ECO Eligibility"].str.contains("subject to ciga") + ] + + # We take just the cavity walls + # UCL paper: https://discovery.ucl.ac.uk/id/eprint/10110371/ + # This paper is based on London properties + # The proportion of EPCs with building characteristics errors are shown to + # differ between variables; floor and wall type errors occur in ~10-15% of EPCs, + # compared with ~5% for wall insulation and glazing performance + + ciga_check_needed_with_archetype = ciga_check_needed[ + (ciga_check_needed["walls-description"].str.lower().str.contains("cavity") == True) & + (ciga_check_needed["roof-description"].str.lower().str.contains("pitched") == True) & + (ciga_check_needed["current-energy-efficiency"].astype(float) <= 80) + ] + + # We take properties that could feasibly be within install regions + ciga_check_needed_plausible = ciga_check_needed_with_archetype[ + ciga_check_needed_with_archetype["roof_insulation_thickness"].astype(float) < 270 + ] + + if not loader.data[ha_name]["ciga_list"].empty: + raise NotImplementedError("SORT OUT THE CIGA BRUV") + else: + ha_ciga_pass_rate = assumed_ciga_pass_rate + + ciga_check_expectation = np.round(ciga_check_needed_plausible.shape[0] * ha_ciga_pass_rate) + without_ciga_expectation = no_ciga_check_needed_with_archetype.shape[0] + + # Need to add on the non-ciga + total_expectation = ciga_check_expectation + without_ciga_expectation + + if proportion_with_survey < 100: + # We estimate the rest + without_survey_needing_ciga = fuck_this[ + (pd.isnull(fuck_this["estimated"]) == False) & + (fuck_this["ECO Eligibility"].str.contains("subject to ciga") == True) + ] + + # We apply the same conversion rate as the properties with a survey + without_survey_without_ciga_expected = np.round( + without_survey_needing_ciga.shape[0] * (ciga_check_expectation / ciga_check_needed.shape[0]) + ) + + total_expectation += without_survey_without_ciga_expected + + without_survey_without_ciga = fuck_this[ + (pd.isnull(fuck_this["estimated"]) == False) & (fuck_this["ECO Eligibility"].isin(["eco4"])) + ] + + if not without_survey_without_ciga.empty: + raise Exception("Estimate the rest!!") + + results.append( + { + "HA Name": ha_name, + "Original ECO4 Estimate - Remaining": original_remaining, + "Proportion with a survey": proportion_with_survey, + "total_expectation": total_expectation + } + ) + + def app(): """ This app contains the housin association analysis for HAs 1, 6, 14, 39 and 107. diff --git a/etl/epc_clean/epc_attributes/RoofAttributes.py b/etl/epc_clean/epc_attributes/RoofAttributes.py index 9d3b46b4..76f99f09 100644 --- a/etl/epc_clean/epc_attributes/RoofAttributes.py +++ b/etl/epc_clean/epc_attributes/RoofAttributes.py @@ -122,6 +122,13 @@ class RoofAttributes(Definitions): result["is_valid"] = "invalid" not in description description = description.replace("invalid", "") + # We handle an edge case where the description is "pitched, 150 loft insulation" and is missing the mm + if result["is_pitched"] or result["is_loft"]: + # Search for a regular expression that matches 150 insulation + match = re.search(r"(\d+\+?)\s*insulation", description) + if match: + result['insulation_thickness'] = match.group(1) + # insulation thickness thickness_map = { "ceiling insulated": "average", @@ -137,11 +144,11 @@ class RoofAttributes(Definitions): # Remove the match from the description # description = description.replace(key, "") break - else: - # Extract insulation thickness in mm, if present - match = re.search(r'(\d+\+?)\s*mm', description) - if match: - result['insulation_thickness'] = match.group(1) + + # Extract insulation thickness in mm, if present + match = re.search(r'(\d+\+?)\s*mm', description) + if match: + result['insulation_thickness'] = match.group(1) if "insulation_thickness" not in result: result['insulation_thickness'] = None From bee07a253b8285a67c4cb78b9051e2b000de30c0 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Thu, 14 Mar 2024 16:10:55 +0000 Subject: [PATCH 432/526] new method wip --- .../ha_15_32/ha_analysis_batch_3.py | 125 +++++++++++++++--- 1 file changed, 105 insertions(+), 20 deletions(-) diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index 767e13c8..9cadaf9f 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -92,6 +92,27 @@ PROPERTY_TYPE_LOOKUP = { 'Flat Over Shop': {"property-type": "Flat", "built-form": "Mid-Terrace"}, 'Mid Terraced Town House': {"property-type": "House", "built-form": "Mid-Terrace"}, }, + "HA25": { + 'Flat': 'Flat', + 'Mid Terrace House': 'House', + 'Semi Detached House': 'House', + 'End Terrace House': 'House', + 'House': 'House', + 'Semi Detached Bung': 'Bungalow', + 'Bungalow': 'Bungalow', + 'End Terrace Bungalow': 'Bungalow', + 'Maisonnette': 'Maisonette', + 'Mid Terrace Bungalow': 'Bungalow', + 'Bedspace': None, + 'Detached House': 'House', + 'Bedsit': 'Flat', + 'Coach House': 'House', + 'Detached Bungalow': 'Bungalow', + 'Office Buildings': None, + 'Guest Room': None, + 'Mid Terrace Housekeeping ': 'House', + 'End Terrace Housex': 'House' + }, "HA39": { "Semi house": {"property_type": "House", "built_form": "Semi-Detached"}, "1st floor flat": {"property_type": "Flat", "built_form": None}, @@ -2877,6 +2898,9 @@ def get_property_type_and_built_form(property_meta, ha_name): property_meta["Asset Type Description"] ] + built_form = None + elif ha_name == "HA25": + property_type = PROPERTY_TYPE_LOOKUP[ha_name][property_meta["T1_AssetType"]] built_form = None elif ha_name == "HA16": config = PROPERTY_TYPE_LOOKUP[ha_name][property_meta["Type"]] @@ -5092,7 +5116,8 @@ def forecast_remaining_sales(loader): def fml_data_pull(loader): - has_bruh = ["HA7"] + has_bruh = ["HA7", "HA14", "HA25", "HA39", "HA16"] + # DO from backend.SearchEpc import SearchEpc epc_api_key = "a2Nvbm5rb3dsZXNzYXJAZ21haWwuY29tOjY5MGJiMWM0NmIyOGI5ZDUxYzAxMzQzYzNiZGNlZGJjZDNmODQwMzA=" @@ -5104,7 +5129,7 @@ def fml_data_pull(loader): # For each property, search for the latest EPC epc_data = [] for _, row in tqdm(fml.iterrows(), total=fml.shape[0]): - property_type, built_form = get_property_type_and_built_form(property_meta=row, ha_name=ha) + property_type, _ = get_property_type_and_built_form(property_meta=row, ha_name=ha) searcher = SearchEpc( address1=row["HouseNo"], postcode=row["matching_postcode"], @@ -5113,8 +5138,9 @@ def fml_data_pull(loader): property_type=property_type, full_address=row["matching_address"], ) - searcher.ordnance_survey_client.property_type = property_type - searcher.ordnance_survey_client.built_form = built_form + # Force the skipping of estimating the EPC + searcher.ordnance_survey_client.property_type = None + searcher.ordnance_survey_client.built_form = None searcher.find_property(skip_os=True) if searcher.newest_epc is None: @@ -5147,11 +5173,32 @@ def extract_lower_bound(age_band): return 1930 +def classify_loft(x): + # high confidence + if float(x["roof_insulation_thickness"]) <= 100: + return "high" + + if float(x["roof_insulation_thickness"]) <= 200: + return "medium" + + if float(x["roof_insulation_thickness"]) <= 270 and x["epc_age"] >= 5 * 365: + return "medium" + + return "unlikely" + + def fml_analysis(loader): from etl.epc_clean.epc_attributes.RoofAttributes import RoofAttributes from etl.epc.DataProcessor import EPCDataProcessor + from datetime import datetime assumed_ciga_pass_rate = 0.731 - has_bruh = ["HA7"] + has_bruh = ["HA7", "HA14", "HA25", "HA39", "HA16"] + + no_ciga_cavity_descriptions = [ + "Cavity wall, as built, insulated (assumed)", + "Cavity wall, as built, no insulation (assumed)", + "Cavity wall, as built, partial insulation (assumed)" + ] results = [] for ha_name in has_bruh: @@ -5170,6 +5217,11 @@ def fml_analysis(loader): s3_file_name=f"ha-analysis/revised/{ha_name}/epc_data.pickle" ) + # time from the inspection to now + epc_data["epc_age"] = (datetime.now() - pd.to_datetime(epc_data["inspection-date"])).dt.days + if "estimated" not in epc_data.columns: + epc_data["estimated"] = None + fuck_this = fml.merge( epc_data, how="left", on="asset_list_row_id" ) @@ -5178,12 +5230,27 @@ def fml_analysis(loader): # Take just remaining if not loader.data[ha_name]["survey_list"].empty: - raise NotImplementedError("TAKE JUST REMAINING IDIOT") + survey_list = ( + loader.data[ha_name]["survey_list"][ + ~pd.isnull(loader.data[ha_name]["survey_list"]["asset_list_row_id"]) + ] + ) + fuck_this = fuck_this.merge( + survey_list[["asset_list_row_id", "installation_status"]], + how="left", + on="asset_list_row_id" + ) + # Anything that has an installation has gone to installation, and therefore is not remaining + fuck_this = fuck_this[pd.isnull(fuck_this["installation_status"])] + fuck_this = fuck_this.drop(columns=["installation_status"]) insulation_thicknesses = [] for _, x in fuck_this.iterrows(): if pd.isnull(x["roof-description"]): continue + if x["roof-description"] == "SAP05:Roof": + continue + thickness = RoofAttributes(x["roof-description"]).process()["insulation_thickness"] # If there is a + in the thickness, strip it out thickness = str(thickness).replace("+", "") @@ -5208,11 +5275,13 @@ def fml_analysis(loader): "roof_insulation_thickness" ].str.replace("average", "150") - fuck_this["construction-age-band"] = fuck_this["construction-age-band"].apply( - lambda x: EPCDataProcessor.clean_construction_age_band(x) - ) + fuck_this["roof_classiciation"] = fuck_this.apply(lambda x: classify_loft(x), axis=1) - fuck_this['age_lower_bound'] = fuck_this['construction-age-band'].apply(extract_lower_bound) + # fuck_this["construction-age-band"] = fuck_this["construction-age-band"].apply( + # lambda x: EPCDataProcessor.clean_construction_age_band(x) + # ) + # + # fuck_this['age_lower_bound'] = fuck_this['construction-age-band'].apply(extract_lower_bound) had_survey = fuck_this[pd.isnull(fuck_this["estimated"])] @@ -5225,9 +5294,23 @@ def fml_analysis(loader): had_survey["ECO Eligibility"] == "eco4" ] + # Walls: + # Cavity wall, as built, insulated (assumed) + # Cavity wall, as built, no insulation (assumed) + # Cavity wall, as built, partial insulation (assumed) + + # Roof: + # Less than 100mm = high confidence + # Less than 270mm & EPC at least 5 years old = medium confidence + # Otherwise, low confidence + + # SAP criteria is EPC C or below + + # Pre is 54 or below + no_ciga_check_needed_with_archetype = no_ciga_check_needed[ - (no_ciga_check_needed["walls-description"].str.lower().str.contains("cavity") == True) & - (no_ciga_check_needed["roof-description"].str.lower().str.contains("pitched") == True) & + (no_ciga_check_needed["walls-description"].isin(no_ciga_cavity_descriptions)) & + (no_ciga_check_needed["roof_classiciation"].isin(["high", "medium"])) & (no_ciga_check_needed["current-energy-efficiency"].astype(float) <= 80) ] if not no_ciga_check_needed_with_archetype.empty: @@ -5239,7 +5322,14 @@ def fml_analysis(loader): ciga_check_needed = had_survey[ had_survey["ECO Eligibility"].str.contains("subject to ciga") - ] + ].copy() + + ciga_check_passed = had_survey[ + had_survey["ECO Eligibility"] == "eco4 - passed ciga" + ] + + if not ciga_check_passed.empty: + raise Exception("SORT ME BRUV") # We take just the cavity walls # UCL paper: https://discovery.ucl.ac.uk/id/eprint/10110371/ @@ -5248,17 +5338,12 @@ def fml_analysis(loader): # differ between variables; floor and wall type errors occur in ~10-15% of EPCs, # compared with ~5% for wall insulation and glazing performance - ciga_check_needed_with_archetype = ciga_check_needed[ + ciga_check_needed_plausible = ciga_check_needed[ (ciga_check_needed["walls-description"].str.lower().str.contains("cavity") == True) & - (ciga_check_needed["roof-description"].str.lower().str.contains("pitched") == True) & + (ciga_check_needed["roof_classiciation"].isin(["high", "medium"])) & (ciga_check_needed["current-energy-efficiency"].astype(float) <= 80) ] - # We take properties that could feasibly be within install regions - ciga_check_needed_plausible = ciga_check_needed_with_archetype[ - ciga_check_needed_with_archetype["roof_insulation_thickness"].astype(float) < 270 - ] - if not loader.data[ha_name]["ciga_list"].empty: raise NotImplementedError("SORT OUT THE CIGA BRUV") else: From 9b255029b3f58d9f8653aaf1bbbd0cc43b024803 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Thu, 14 Mar 2024 17:36:09 +0000 Subject: [PATCH 433/526] fml fml --- .../ha_15_32/ha_analysis_batch_3.py | 141 ++++++++++++------ 1 file changed, 96 insertions(+), 45 deletions(-) diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index 9cadaf9f..e1d7db4d 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -20,6 +20,9 @@ from backend.ml_models.api import ModelApi from etl.solar.SolarPhotoSupply import SolarPhotoSupply from recommendations.recommendation_utils import calculate_cavity_age from etl.epc.Record import EPCRecord +from etl.epc_clean.epc_attributes.RoofAttributes import RoofAttributes +from etl.epc.DataProcessor import EPCDataProcessor +from datetime import datetime EPC_AUTH_TOKEN = os.getenv("EPC_AUTH_TOKEN") ENV_FILE = Path(__file__).parent / "etl" / "eligibility" / "ha_15_32" / ".env" @@ -5188,9 +5191,6 @@ def classify_loft(x): def fml_analysis(loader): - from etl.epc_clean.epc_attributes.RoofAttributes import RoofAttributes - from etl.epc.DataProcessor import EPCDataProcessor - from datetime import datetime assumed_ciga_pass_rate = 0.731 has_bruh = ["HA7", "HA14", "HA25", "HA39", "HA16"] @@ -5216,15 +5216,20 @@ def fml_analysis(loader): bucket_name="retrofit-datalake-dev", s3_file_name=f"ha-analysis/revised/{ha_name}/epc_data.pickle" ) + # We make sure we don't have duplicated. We do a super basic drop duplicates because it shouldn't be a huge + # issue at this point + epc_data = epc_data.drop_duplicates("uprn") # time from the inspection to now epc_data["epc_age"] = (datetime.now() - pd.to_datetime(epc_data["inspection-date"])).dt.days if "estimated" not in epc_data.columns: - epc_data["estimated"] = None + # For all after HA7, we don't use estimated surveys + epc_data["estimated"] = False fuck_this = fml.merge( epc_data, how="left", on="asset_list_row_id" ) + fuck_this["estimated"] = fuck_this["estimated"].fillna(True) if fuck_this.shape[0] != fml.shape[0]: raise Exception("What the fuck bruv") @@ -5259,7 +5264,15 @@ def fml_analysis(loader): ) insulation_thicknesses = pd.DataFrame(insulation_thicknesses) + before_merge_shape = fuck_this.shape[0] fuck_this = fuck_this.merge(insulation_thicknesses, how="left", on="uprn") + + if fuck_this.shape[0] != before_merge_shape: + raise Exception("SOMETHING WENT WRONG") + + if any(fuck_this["ECO Eligibility"].str.contains("subject to archetype")): + blah + # clean roof insulation fuck_this["roof_insulation_thickness"] = fuck_this["roof_insulation_thickness"].fillna("0") fuck_this["roof_insulation_thickness"] = fuck_this[ @@ -5283,7 +5296,7 @@ def fml_analysis(loader): # # fuck_this['age_lower_bound'] = fuck_this['construction-age-band'].apply(extract_lower_bound) - had_survey = fuck_this[pd.isnull(fuck_this["estimated"])] + had_survey = fuck_this[fuck_this["estimated"] == False] # proportion with a survey: proportion_with_survey = 100 * had_survey.shape[0] / fuck_this.shape[0] @@ -5294,27 +5307,11 @@ def fml_analysis(loader): had_survey["ECO Eligibility"] == "eco4" ] - # Walls: - # Cavity wall, as built, insulated (assumed) - # Cavity wall, as built, no insulation (assumed) - # Cavity wall, as built, partial insulation (assumed) - - # Roof: - # Less than 100mm = high confidence - # Less than 270mm & EPC at least 5 years old = medium confidence - # Otherwise, low confidence - - # SAP criteria is EPC C or below - - # Pre is 54 or below - - no_ciga_check_needed_with_archetype = no_ciga_check_needed[ + no_ciga_check_needed_eligible = no_ciga_check_needed[ (no_ciga_check_needed["walls-description"].isin(no_ciga_cavity_descriptions)) & (no_ciga_check_needed["roof_classiciation"].isin(["high", "medium"])) & (no_ciga_check_needed["current-energy-efficiency"].astype(float) <= 80) ] - if not no_ciga_check_needed_with_archetype.empty: - raise Exception("SORT ME OUT") # Characterise no CIGA check needed @@ -5327,9 +5324,20 @@ def fml_analysis(loader): ciga_check_passed = had_survey[ had_survey["ECO Eligibility"] == "eco4 - passed ciga" ] + # These should be treated the same as one that have passed their ciga checks, from a detection perspective + ciga_check_passed_eligible = ciga_check_passed[ + (ciga_check_passed["walls-description"].str.lower().str.contains("cavity") == True) & + (ciga_check_passed["roof_classiciation"].isin(["high", "medium"])) & + (ciga_check_passed["current-energy-efficiency"].astype(float) <= 80) + ] - if not ciga_check_passed.empty: - raise Exception("SORT ME BRUV") + if not loader.data[ha_name]["ciga_list"].empty: + + proportions = loader.data[ha_name]["ciga_list"]["Guarantee"].value_counts(normalize=True) + ha_ciga_pass_rate = proportions[proportions.index == "No"].values[0] + + else: + ha_ciga_pass_rate = assumed_ciga_pass_rate # We take just the cavity walls # UCL paper: https://discovery.ucl.ac.uk/id/eprint/10110371/ @@ -5338,53 +5346,96 @@ def fml_analysis(loader): # differ between variables; floor and wall type errors occur in ~10-15% of EPCs, # compared with ~5% for wall insulation and glazing performance - ciga_check_needed_plausible = ciga_check_needed[ + ciga_check_needed_eligible = ciga_check_needed[ (ciga_check_needed["walls-description"].str.lower().str.contains("cavity") == True) & (ciga_check_needed["roof_classiciation"].isin(["high", "medium"])) & (ciga_check_needed["current-energy-efficiency"].astype(float) <= 80) ] - if not loader.data[ha_name]["ciga_list"].empty: - raise NotImplementedError("SORT OUT THE CIGA BRUV") - else: - ha_ciga_pass_rate = assumed_ciga_pass_rate - - ciga_check_expectation = np.round(ciga_check_needed_plausible.shape[0] * ha_ciga_pass_rate) - without_ciga_expectation = no_ciga_check_needed_with_archetype.shape[0] + ciga_check_expectation = np.round(ciga_check_needed_eligible.shape[0] * ha_ciga_pass_rate) + without_ciga_expectation = no_ciga_check_needed_eligible.shape[0] + passed_ciga_expectation = ciga_check_passed_eligible.shape[0] # Need to add on the non-ciga - total_expectation = ciga_check_expectation + without_ciga_expectation + total_expectation = ciga_check_expectation + without_ciga_expectation + passed_ciga_expectation if proportion_with_survey < 100: # We estimate the rest without_survey_needing_ciga = fuck_this[ - (pd.isnull(fuck_this["estimated"]) == False) & + (fuck_this["estimated"] == True) & (fuck_this["ECO Eligibility"].str.contains("subject to ciga") == True) ] - # We apply the same conversion rate as the properties with a survey - without_survey_without_ciga_expected = np.round( - without_survey_needing_ciga.shape[0] * (ciga_check_expectation / ciga_check_needed.shape[0]) - ) + if without_survey_needing_ciga.empty: + without_survey_without_ciga_expected = 0 + else: + # We apply the same conversion rate as the properties with a survey + without_survey_without_ciga_expected = np.round( + without_survey_needing_ciga.shape[0] * (ciga_check_expectation / ciga_check_needed.shape[0]) + ) - total_expectation += without_survey_without_ciga_expected - - without_survey_without_ciga = fuck_this[ - (pd.isnull(fuck_this["estimated"]) == False) & (fuck_this["ECO Eligibility"].isin(["eco4"])) + without_survey_passed_ciga = fuck_this[ + (fuck_this["estimated"] == True) & + (fuck_this["ECO Eligibility"] == "eco4 - passed ciga") ] - if not without_survey_without_ciga.empty: - raise Exception("Estimate the rest!!") + if without_survey_passed_ciga.empty: + without_survey_passed_ciga_expected = 0 + else: + # We apply the same conversion rate as the properties with a survey + without_survey_passed_ciga_expected = np.round( + without_survey_passed_ciga.shape[0] * (passed_ciga_expectation / ciga_check_passed.shape[0]) + ) + + # Finally, no ciga needed + without_survey_eco4 = fuck_this[ + (fuck_this["estimated"] == True) & + (fuck_this["ECO Eligibility"] == "eco4") + ] + + if without_survey_eco4.empty: + without_survey_eco4_expected = 0 + else: + # We apply the same conversion rate as the properties with a survey + without_survey_eco4_expected = np.round( + without_survey_eco4.shape[0] * (without_ciga_expectation / no_ciga_check_needed.shape[0]) + ) + + total_expectation = ( + total_expectation + + without_survey_without_ciga_expected + + without_survey_passed_ciga_expected + + without_survey_eco4_expected + ) + + surveys = loader.data[ha_name]["survey_list"] + sold_now = 0 + if not surveys.empty: + sold_now = surveys[ + surveys["installation_status"].str.lower().str.contains("eco4") + ].shape[0] + + sales_since_nov = sold_now - original_figures["No. of Tech surveys complete - Eco 4"].values[0] results.append( { "HA Name": ha_name, "Original ECO4 Estimate - Remaining": original_remaining, + "Of which sold": sales_since_nov, + "Of which ECO4 Eligible - Remaining": int(total_expectation), "Proportion with a survey": proportion_with_survey, - "total_expectation": total_expectation } ) + results_df = pd.DataFrame(results) + + results_df["Delta vs November"] = 100 * ( + results_df["Of which ECO4 Eligible - Remaining"] - results_df["Original ECO4 Estimate - Remaining"] + ) / results_df["Original ECO4 Estimate - Remaining"] + + # TODO: Split into high and low confidence? + # + def app(): """ From 3b65a71793721d65fd8356c215813a13d384bc4d Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Thu, 14 Mar 2024 18:25:50 +0000 Subject: [PATCH 434/526] added in extra shit to output --- .../ha_15_32/ha_analysis_batch_3.py | 47 ++++++++++++++++--- 1 file changed, 41 insertions(+), 6 deletions(-) diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index e1d7db4d..53ce69e2 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -5200,6 +5200,22 @@ def fml_analysis(loader): "Cavity wall, as built, partial insulation (assumed)" ] + codes = [ + "HA39", "HA14", "HA24", "HA15", "HA32", "HA28", "HA6", "HA1", "HA7", + "HA16", "HA107", "HA25", "HA50", "HA41", "HA48", "HA2", "HA63", "HA12", + "HA117", "HA13", "HA35", "HA34", "HA56", "HA19", "HA18", "HA9", "HA27", + "HA30", "HA31", "HA54", "HAXX", "HA49", "HAXXX" + ] + + values = [ + 706, 2161, 1053, 793, 0, 656, 1200, 1647, 4248, 2703, 1087, 1876, 2135, + 1078, 775, 538, 518, 401, 466, 2627, 98, 1050, 524, 191, 538, 384, 204, + 281, 422, 74, 313, 71, 6 + ] + + # Create a dictionary mapping + remaining_eligible_mapping = dict(zip(codes, values)) + results = [] for ha_name in has_bruh: @@ -5207,6 +5223,7 @@ def fml_analysis(loader): loader.december_figures["HA Name"] == ha_name ].copy() original_remaining = original_figures["ECO4 remaining"].values[0] + postcode_list_remaining = remaining_eligible_mapping[ha_name] # Read in the epc data asset_list = loader.data[ha_name]["asset_list"].copy() @@ -5271,7 +5288,7 @@ def fml_analysis(loader): raise Exception("SOMETHING WENT WRONG") if any(fuck_this["ECO Eligibility"].str.contains("subject to archetype")): - blah + raise Exception("DO THE DAMN ARCHETYPE CHECK BRO") # clean roof insulation fuck_this["roof_insulation_thickness"] = fuck_this["roof_insulation_thickness"].fillna("0") @@ -5313,6 +5330,13 @@ def fml_analysis(loader): (no_ciga_check_needed["current-energy-efficiency"].astype(float) <= 80) ] + # For anything not needing a CIGA check, some of it will be GBIS + no_ciga_check_needed_eligible_gbis = no_ciga_check_needed[ + (no_ciga_check_needed["walls-description"].isin(no_ciga_cavity_descriptions)) & + (no_ciga_check_needed["current-energy-efficiency"].astype(float) <= 80) & + (~no_ciga_check_needed["asset_list_row_id"].isin(no_ciga_check_needed_eligible["asset_list_row_id"].values)) + ] + # Characterise no CIGA check needed # TODO: WHAT ABOUT PASSED CIGA - don't need to apply the further deduction @@ -5359,6 +5383,8 @@ def fml_analysis(loader): # Need to add on the non-ciga total_expectation = ciga_check_expectation + without_ciga_expectation + passed_ciga_expectation + total_gbis_expectation = no_ciga_check_needed_eligible_gbis.shape[0] + if proportion_with_survey < 100: # We estimate the rest without_survey_needing_ciga = fuck_this[ @@ -5395,12 +5421,17 @@ def fml_analysis(loader): if without_survey_eco4.empty: without_survey_eco4_expected = 0 + without_survey_gbis_expected = 0 else: # We apply the same conversion rate as the properties with a survey without_survey_eco4_expected = np.round( without_survey_eco4.shape[0] * (without_ciga_expectation / no_ciga_check_needed.shape[0]) ) + without_survey_gbis_expected = np.round( + without_survey_eco4.shape[0] * (total_gbis_expectation / no_ciga_check_needed.shape[0]) + ) + total_expectation = ( total_expectation + without_survey_without_ciga_expected + @@ -5408,6 +5439,8 @@ def fml_analysis(loader): without_survey_eco4_expected ) + total_gbis_expectation = total_gbis_expectation + without_survey_gbis_expected + surveys = loader.data[ha_name]["survey_list"] sold_now = 0 if not surveys.empty: @@ -5421,20 +5454,22 @@ def fml_analysis(loader): { "HA Name": ha_name, "Original ECO4 Estimate - Remaining": original_remaining, + "Postcode List - Remaining": postcode_list_remaining, "Of which sold": sales_since_nov, "Of which ECO4 Eligible - Remaining": int(total_expectation), + "Of which GBIS Eligibile - Remaining": int(total_gbis_expectation), "Proportion with a survey": proportion_with_survey, } ) results_df = pd.DataFrame(results) - results_df["Delta vs November"] = 100 * ( - results_df["Of which ECO4 Eligible - Remaining"] - results_df["Original ECO4 Estimate - Remaining"] - ) / results_df["Original ECO4 Estimate - Remaining"] + # results_df["Delta vs November"] = 100 * ( + # results_df["Of which ECO4 Eligible - Remaining"] - results_df["Original ECO4 Estimate - Remaining"] + # ) / results_df["Original ECO4 Estimate - Remaining"] - # TODO: Split into high and low confidence? - # + # TODO: Add in estimated GBIS (for eco jobs, of which look like gbis) + # TODO: Change the left hand side number for our post CIGA estimates def app(): From 479a2b08c33e2911a5ae98c3d315903af04e4980 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Thu, 14 Mar 2024 19:02:33 +0000 Subject: [PATCH 435/526] ffs --- .../ha_15_32/ha_analysis_batch_3.py | 22 +++++++++++++++++-- etl/epc_clean/app.py | 3 +++ 2 files changed, 23 insertions(+), 2 deletions(-) diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index 53ce69e2..9462642f 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -5119,7 +5119,9 @@ def forecast_remaining_sales(loader): def fml_data_pull(loader): - has_bruh = ["HA7", "HA14", "HA25", "HA39", "HA16"] + has_bruh = ["HA7", "HA14", "HA25", "HA39", "HA16", + # Do these + "HA1", "HA13", "HA50", "HA24"] # DO from backend.SearchEpc import SearchEpc epc_api_key = "a2Nvbm5rb3dsZXNzYXJAZ21haWwuY29tOjY5MGJiMWM0NmIyOGI5ZDUxYzAxMzQzYzNiZGNlZGJjZDNmODQwMzA=" @@ -5197,9 +5199,19 @@ def fml_analysis(loader): no_ciga_cavity_descriptions = [ "Cavity wall, as built, insulated (assumed)", "Cavity wall, as built, no insulation (assumed)", - "Cavity wall, as built, partial insulation (assumed)" + "Cavity wall, as built, partial insulation (assumed)", + "Cavity wall, no insulation (assumed)", + "Cavity wall, partial insulation (assumed)", + "Cavity wall,", + "Cavity wall, insulated (assumed)", + "Cavity wall, no insulation (assumed)", + "Cavity wall, as built, insulated (assumed)", + "Cavity wall, partial insulation (assumed)", ] + # TODO: There will be some properties that are subject to CIGA that do not look like they ned a CIGA check! pass + # them! + codes = [ "HA39", "HA14", "HA24", "HA15", "HA32", "HA28", "HA6", "HA1", "HA7", "HA16", "HA107", "HA25", "HA50", "HA41", "HA48", "HA2", "HA63", "HA12", @@ -5217,6 +5229,7 @@ def fml_analysis(loader): remaining_eligible_mapping = dict(zip(codes, values)) results = [] + wall_descriptions = [] for ha_name in has_bruh: original_figures = loader.december_figures[ @@ -5236,6 +5249,7 @@ def fml_analysis(loader): # We make sure we don't have duplicated. We do a super basic drop duplicates because it shouldn't be a huge # issue at this point epc_data = epc_data.drop_duplicates("uprn") + wall_descriptions.extend(epc_data["walls-description"].unique().tolist()) # time from the inspection to now epc_data["epc_age"] = (datetime.now() - pd.to_datetime(epc_data["inspection-date"])).dt.days @@ -5464,6 +5478,10 @@ def fml_analysis(loader): results_df = pd.DataFrame(results) + wall_descriptions = list(set(wall_descriptions)) + from pprint import pprint + pprint(wall_descriptions) + # results_df["Delta vs November"] = 100 * ( # results_df["Of which ECO4 Eligible - Remaining"] - results_df["Original ECO4 Estimate - Remaining"] # ) / results_df["Original ECO4 Estimate - Remaining"] diff --git a/etl/epc_clean/app.py b/etl/epc_clean/app.py index 53c1a329..3f1a1a80 100644 --- a/etl/epc_clean/app.py +++ b/etl/epc_clean/app.py @@ -36,8 +36,11 @@ def app(): cleaned_data = {} epc_directories = [entry for entry in EPC_DIRECTORY.iterdir() if entry.is_dir()] + WALLS = [] for directory in tqdm(epc_directories): data = pd.read_csv(directory / "certificates.csv", low_memory=False) + z = data["WALLS_DESCRIPTION"].unique().tolist() + WALLS.extend(z) # Rename the columns to the same format as the api returns data.columns = [c.replace("_", "-").lower() for c in data.columns] # Take just date before the date threshold From cc319ab91149f77dd04e691e6bc6b99bb9d39702 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Fri, 15 Mar 2024 10:09:26 +0000 Subject: [PATCH 436/526] new ha analysis wip --- .../ha_15_32/ha_analysis_batch_3.py | 18 +++++------------- 1 file changed, 5 insertions(+), 13 deletions(-) diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index 9462642f..a0b7e0bb 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -5210,7 +5210,7 @@ def fml_analysis(loader): ] # TODO: There will be some properties that are subject to CIGA that do not look like they ned a CIGA check! pass - # them! + # them! Non-invasices will have checked the wall though codes = [ "HA39", "HA14", "HA24", "HA15", "HA32", "HA28", "HA6", "HA1", "HA7", @@ -5352,16 +5352,11 @@ def fml_analysis(loader): ] # Characterise no CIGA check needed - - # TODO: WHAT ABOUT PASSED CIGA - don't need to apply the further deduction - ciga_check_needed = had_survey[ had_survey["ECO Eligibility"].str.contains("subject to ciga") ].copy() - ciga_check_passed = had_survey[ - had_survey["ECO Eligibility"] == "eco4 - passed ciga" - ] + ciga_check_passed = had_survey[had_survey["ECO Eligibility"] == "eco4 - passed ciga"] # These should be treated the same as one that have passed their ciga checks, from a detection perspective ciga_check_passed_eligible = ciga_check_passed[ (ciga_check_passed["walls-description"].str.lower().str.contains("cavity") == True) & @@ -5469,18 +5464,15 @@ def fml_analysis(loader): "HA Name": ha_name, "Original ECO4 Estimate - Remaining": original_remaining, "Postcode List - Remaining": postcode_list_remaining, - "Of which sold": sales_since_nov, + # "Of which sold": sales_since_nov, "Of which ECO4 Eligible - Remaining": int(total_expectation), "Of which GBIS Eligibile - Remaining": int(total_gbis_expectation), - "Proportion with a survey": proportion_with_survey, + # "Proportion with a survey": proportion_with_survey, } ) results_df = pd.DataFrame(results) - - wall_descriptions = list(set(wall_descriptions)) - from pprint import pprint - pprint(wall_descriptions) + results_df.to_csv("analysis - revised.csv") # results_df["Delta vs November"] = 100 * ( # results_df["Of which ECO4 Eligible - Remaining"] - results_df["Original ECO4 Estimate - Remaining"] From 12f780a08989e896235adf96e175d39240c3adbb Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Fri, 15 Mar 2024 16:54:48 +0000 Subject: [PATCH 437/526] setting up complete data pull --- .../ha_15_32/ha_analysis_batch_3.py | 380 +++++++++++++++++- 1 file changed, 369 insertions(+), 11 deletions(-) diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index a0b7e0bb..902d48fd 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -42,6 +42,15 @@ PROPERTY_TYPE_LOOKUP = { 'Detached Local Connect': 'Detached', } }, + "HA2": { + 'HOUSE': 'House', + 'FLAT': 'Flat', + 'SHELTERED': None, + 'BUNGALOW': 'Bungalow', + 'BED-SIT': None, + 'MAISONETTE': "Maisonette", + 'HOSTEL': None + }, "HA6": { "property_type": { 'HOUSE': "House", @@ -69,6 +78,23 @@ PROPERTY_TYPE_LOOKUP = { "End Terraced": "End-Terrace", } }, + "HA12": { + "House": "House", + "Flat": "Flat", + "Bungalow": "Bungalow", + "Maisonette": "Maisonette", + "Bedsit": None, + }, + "HA13": { + 'House': "House", + 'Flat': "Flat", + 'House MT': "House", + 'House SD': "House", + 'House ET': "House", + 'Bungalow MT': "Bungalow", + 'Bungalow ET': "Bungalow", + 'ii': None, + }, "HA14": { "property_type": { "House": "House", @@ -77,6 +103,13 @@ PROPERTY_TYPE_LOOKUP = { "Maisonette": "Maisonette", } }, + "HA15": { + 'House': 'House', + 'Flat': 'Flat', + 'Bungalow': 'Bungalow', + 'Maisonette': 'Maisonette', + 'Flat over garage': 'Flat', + }, "HA16": { 'Semi Detached Bungalow': {"property-type": "Bungalow", "built-form": "Semi-Detached"}, 'Mid Terraced House': {"property-type": "House", "built-form": "Mid-Terrace"}, @@ -95,6 +128,30 @@ PROPERTY_TYPE_LOOKUP = { 'Flat Over Shop': {"property-type": "Flat", "built-form": "Mid-Terrace"}, 'Mid Terraced Town House': {"property-type": "House", "built-form": "Mid-Terrace"}, }, + "HA18": { + "House": "House", + "Flat": "Flat", + "Bungalow": "Bungalow", + "Maisonette": "Maisonette", + "Bedsit": None, + "Shop": None, + "Hostel": None, + "Block": None, + }, + "HA24": { + '01 HOUSE': 'House', + '02 FLAT': 'Flat', + '03 BUNGALOW': 'Bungalow', + '10 PBUNGALOW': 'Bungalow', + '01 HOUSE MID': 'House', + '13 SBUNGALOW': 'Bungalow', + '12 SBEDSIT': None, # BEDSIT does not match the specified property types + '14 SFLAT': 'Flat', + '05 BEDSIT': None, + '04 MAISONETTE': 'Maisonette', + '11 PFLAT': 'Flat', + '09 PBEDSIT': None + }, "HA25": { 'Flat': 'Flat', 'Mid Terrace House': 'House', @@ -116,6 +173,77 @@ PROPERTY_TYPE_LOOKUP = { 'Mid Terrace Housekeeping ': 'House', 'End Terrace Housex': 'House' }, + "HA28": { + 'Flat': 'Flat', + 'Semi detached house': 'House', + 'Terraced house': 'House', + 'Maisonette flat': 'Maisonette', + 'Sheltered bedsit': None, + 'APD flat': 'Flat', + 'Bungalow terraced': 'Bungalow', + 'Flat with partition': 'Flat', + 'Bungalow semi detached': 'Bungalow', + 'APD Bungalow': 'Bungalow', + 'Sheltered flat': 'Flat', + 'Bedsit Flat': 'Flat', + 'Bedsit bungalow semi detached': 'Bungalow', + 'Sheltered bungalow terraced': 'Bungalow', + 'Sheltered bedsit disabled': None, + 'Bedsit bungalow terraced': 'Bungalow', + 'Sheltered bungalow semi detached': 'Bungalow', + 'Sheltered warden flat': 'Flat', + 'Bungalow detached': 'Bungalow', + 'Block': None, # Does not match the specified property types + 'End Terraced House': 'House', + 'Mid Terraced House': 'House', + '#N/A': None, # Assuming this is an invalid or missing entry + 0: None # Assuming 0 is also an invalid or missing entry + }, + "HA30": { + 'House': 'House', + 'Flat': 'Flat', + 'Bungalow': 'Bungalow', + 'House with Attached Garage': 'House', + 'Bed Space': None, # Assuming this does not fit the specified property types + 'House with Garage': 'House', + 'Bungalow with Wheelchair Access': 'Bungalow', + 'Maisonette': 'Maisonette', + 'Flat with Wheelchair Access': 'Flat', + 'Bedsit': None, # Assuming this does not fit the specified property types + 'Flat w Wheelchair Access & Car Park': 'Flat', + 'House with Wheelchair Access': 'House', + 'Bungalow w Wheelchair Access & Car ': 'Bungalow' + }, + "HA32": { + 'Bungalow': 'Bungalow', + 'Flat': 'Flat', + 'Bungalow Disabled': 'Bungalow', # "Disabled" properties categorized with their base type + 'House': 'House', + 'Dormer Bungalow': 'Bungalow', + 'Pop-In': None, # Does not fit the specified property types + 'Flat Disabled': 'Flat', + 'Laundry': None, # Does not fit the specified property types + 'Bedsit': None, # Excluded from the given categories + 'Shed': None, # Does not fit the specified property types + 'Store Room': None # Does not fit the specified property types + }, + "HA34": { + 'Flat': 'Flat', + 'House': 'House', + 'Bungalow': 'Bungalow', + 'Maisonette': 'Maisonette', + 'ND': None, + }, + "HA35": { + "Flat": "Flat", + "Maisonette": "Maisonette", + "House": "House", + "Bedsit": None, + "2 Bedroom Unknown": None, + "1 Bedroom Unknown": None, + "3 Bedroom Unknown": None, + "4 Bedroom Unknown": None, + }, "HA39": { "Semi house": {"property_type": "House", "built_form": "Semi-Detached"}, "1st floor flat": {"property_type": "Flat", "built_form": None}, @@ -140,6 +268,105 @@ PROPERTY_TYPE_LOOKUP = { "1st floor flat with study room": {"property_type": "Flat", "built_form": None}, "2nd floor flat with study": {"property_type": "Flat", "built_form": None}, }, + "HA41": { + 'Garage': None, + 'House 1919-1945': 'House', + 'House 1946-1964': 'House', + 'Flats & Maisonettes post 1974': 'Flat', + 'Non traditional houses': 'House', + 'Sheltered': None, + 'Flats & Maisonettes 1965-1974': 'Flat', + 'House post 1974': 'House', + 'Block': None, + 'Flats & Maisonettes 1946-1964': 'Flat', + 'House 1965-1974': 'House', + 'Non traditional flats': 'Flat', + 'Bungalow 1965-1974': 'Bungalow', + 'PIMSS EMPTY': None, + 'Bungalow post 1974': 'Bungalow', + 'Bungalow 1946-1964': 'Bungalow', + 'Flats & Maisonettes 1919-1945': 'Flat', + 'House pre 1919': 'House', + 'Flats & Maisonettes pre 1919': 'Flat', + 'Bungalow 1919-1945': 'Bungalow', + 'Office': None + }, + "HA48": { + "House": "House", + "Flat": "Flat", + "Bungalow": "Bungalow", + "Maisonette": "Maisonette", + "Unit": None + }, + "HA50": { + 'House': 'House', + 'Bungalow': 'Bungalow', + 'Flat': 'Flat', + 'House SD': 'House', + 'House MT': 'House', + 'House ET': 'House', + 'Bungalow ET': 'Bungalow', + 'House SD ': 'House', + 'House. SD': 'House', + 'Bungalow SD': 'Bungalow', + 'Bungalow MT': 'Bungalow', + 'Bungalow D': 'Bungalow', + 'House D': 'House', + 'House. MT': 'House', + 'House ': 'House', + 'House ET ': 'House', + ' ': None, + 'Flat?': 'Flat', + 'Bungalow ': 'Bungalow' + }, + "HA56": { + 'House Non Specific': 'House', + 'HOUSE TERRACED': 'House', + 'HOUSE - SEMI DETACHD': 'House', + 'Bungalow': 'Bungalow', + 'House - End Terraced': 'House', + 'Block': None, + 'Block with Communal': None, + 'Bungalow - Terraced': 'Bungalow', + 'Bungalow - Semi Dtch': 'Bungalow', + 'Block House with rooms': None, + 'Bungalow - End Terr': 'Bungalow', + 'House - Mid Terraced': 'House', + 'Bungalow - Detached': 'Bungalow', + 'House - Detached': 'House', + 'HOUSE THREE STOREY': 'House', + 'Maisonette': 'Maisonette', + 'Communal Block': None, + 'Scheme': None + }, + "HA63": { + 'Flat': 'Flat', + 'House - Semi detached': 'House', + 'House - Detached': 'House', + 'House - End Terrace': 'House', + 'House - Mid Terrace': 'House', + 'Bungalow - Semi detached': 'Bungalow', + 'Bungalow': 'Bungalow', + 'Bedsit': None, # Considering as a non-specific residential category here + 'Maisonette': 'Maisonette', + 'Bungalow - End Terrace': 'Bungalow', + 'Bungalow - Detached': 'Bungalow', + 'Maisonette - Mid Terrace': 'Maisonette', + 'Maisonette - End Terrace': 'Maisonette', + 'Studio Flat': 'Flat', + 'Maisonette - Detached': 'Maisonette', + 'Bungalow - Mid Terrace': 'Bungalow', + 'Bedsit - Mid Terrace': None, + 'Bedsit - End Terrace': None, + 'Amenity Block - Semi detached': None, # Assuming non-residential + 'Maisonette - Semi Detached': 'Maisonette', + 'Amenity Block - Detached': None, # Assuming non-residential + 'Hostel': None, # Typically not considered a standard residential property for this context + 'Bungalow - Attached': 'Bungalow', + 'Unknown': None, # Not enough information to categorize + 'Studio Flat - Mid Terrace': 'Flat', + 'Chalet - Wheelchair': None # Specialized type, not categorized here + }, "HA107": { "property_type": { "HOUSE": "House", @@ -160,6 +387,27 @@ PROPERTY_TYPE_LOOKUP = { "Detached": "Detached", "Detatched": "Detached", } + }, + "HA117": { + "Flat": "Flat", + "House": "House", + "Bungalow": "Bungalow", + "Flat over garage/underpass": "Flat", + }, + "HAXXX": { + 'mid terraced house': 'House', + 'semi detached house': 'House', + '1st fl 4 in a block': 'Flat', + 'G/F 4 in a block': 'Flat', + 'end terraced house': 'House', + '1st floor flat': 'Flat', + 'G/F floor flat': 'Flat', + 'semi detached bungalow': 'Bungalow', + '2nd floor flat': 'Flat', + 'mid terrace bungalow': 'Bungalow', + 'detached bungalow': 'Bungalow', + 'end terrace bungalow': 'Bungalow', + 'Staff accommodation': None # Marked as None due to its special nature } } @@ -2882,12 +3130,36 @@ def get_property_type_and_built_form(property_meta, ha_name): property_type = "Flat" built_form = PROPERTY_TYPE_LOOKUP[ha_name]["built_form"].get(property_meta["Property Type"], None) + elif ha_name == "HA2": + property_type = PROPERTY_TYPE_LOOKUP[ha_name].get(property_meta["Dwelling Type"].strip()) + built_form = None elif ha_name == "HA6": property_type = PROPERTY_TYPE_LOOKUP[ha_name]["property_type"][property_meta["Dwelling type"]] built_form = property_meta["built_form"] elif ha_name == "HA7": property_type = PROPERTY_TYPE_LOOKUP[ha_name]["property_type"].get(property_meta["Archetype"]) built_form = PROPERTY_TYPE_LOOKUP[ha_name]["built_form"].get(property_meta["Property Type"]) + elif ha_name == "HA9": + property_description = property_meta["Asset Type"].strip().lower() + if "house" in property_description: + return "House", None + + if "flat" in property_description: + return "Flat", None + + if "bungalow" in property_description: + return "Bungalow", None + + if "maisonette" in property_description: + return "Maisonette", None + + return None, None + elif ha_name == "HA12": + property_type = PROPERTY_TYPE_LOOKUP[ha_name].get(property_meta["Asset_Type1"].strip()) + built_form = None + elif ha_name == "HA13": + property_type = PROPERTY_TYPE_LOOKUP[ha_name].get(property_meta["Type Cd"].strip()) + built_form = None elif ha_name == "HA14": if property_meta["Asset Type Description"] == "Block - Repair": # We try and deduce if it's a flat or house, depending on if it has "room" or "flats" in the address @@ -2902,15 +3174,60 @@ def get_property_type_and_built_form(property_meta, ha_name): ] built_form = None - elif ha_name == "HA25": - property_type = PROPERTY_TYPE_LOOKUP[ha_name][property_meta["T1_AssetType"]] + elif ha_name == "HA15": + property_type = PROPERTY_TYPE_LOOKUP[ha_name].get(property_meta["Property Type"].strip()) built_form = None elif ha_name == "HA16": config = PROPERTY_TYPE_LOOKUP[ha_name][property_meta["Type"]] property_type = config.get("property-type") built_form = config.get("built-form") - elif ha_name == "HA39": + elif ha_name == "HA18": + property_type = PROPERTY_TYPE_LOOKUP[ha_name].get(property_meta["Asset Type"].strip()) + built_form = None + elif ha_name == "HA19": + property_type = property_meta["Dwelling Type"] + built_form = None + elif ha_name == "HA24": + property_type = PROPERTY_TYPE_LOOKUP[ha_name].get(property_meta["Property Type"].strip()) + built_form = None + elif ha_name == "HA25": + property_type = PROPERTY_TYPE_LOOKUP[ha_name][property_meta["T1_AssetType"]] + built_form = None + elif ha_name == "HA27": + property_type = property_meta["Property Type"] + built_form = None + elif ha_name == "HA28": + property_type = PROPERTY_TYPE_LOOKUP[ha_name][property_meta["Property Type - Academy"]] + built_form = None + elif ha_name == "HA30": + property_type = PROPERTY_TYPE_LOOKUP[ha_name][property_meta["A_AssetType"]] + built_form = None + elif ha_name == "HA31": + property_description = property_meta["A_AssetType"].strip().lower() + if "house" in property_description: + return "House", None + if "flat" in property_description: + return "Flat", None + + if "bungalow" in property_description: + return "Bungalow", None + + if "maisonette" in property_description: + return "Maisonette", None + + return None, None + + elif ha_name == "HA32": + property_type = PROPERTY_TYPE_LOOKUP[ha_name].get(property_meta["Dwelling type"].strip()) + built_form = None + elif ha_name == "HA34": + property_type = PROPERTY_TYPE_LOOKUP[ha_name].get(property_meta["Property Type"].strip()) + built_form = None + elif ha_name == "HA35": + property_type = PROPERTY_TYPE_LOOKUP[ha_name].get(property_meta["Property Type Grouping"].strip()) + built_form = None + elif ha_name == "HA39": property_type_config = PROPERTY_TYPE_LOOKUP[ha_name].get(property_meta["ConstructionStyle"], {}) property_type = property_type_config.get("property_type", None) built_form = property_type_config.get("built_form", None) @@ -2921,11 +3238,35 @@ def get_property_type_and_built_form(property_meta, ha_name): property_type = "Flat" else: property_type = "House" + elif ha_name == "HA41": + property_type = PROPERTY_TYPE_LOOKUP[ha_name].get(property_meta["Archetype"].strip()) + built_form = None + elif ha_name == "HA48": + property_type = PROPERTY_TYPE_LOOKUP[ha_name].get(property_meta["Property Type"].strip()) + built_form = None + elif ha_name == "HA49": + property_type = property_meta["Property Class"].strip() + built_form = None + elif ha_name == "HA54": + property_type = property_meta["Property Type"] + built_form = None + elif ha_name == "HA56": + property_type = PROPERTY_TYPE_LOOKUP[ha_name].get(property_meta["Dwelling Type Description"].strip()) + built_form = None + elif ha_name == "HA63": + property_type = PROPERTY_TYPE_LOOKUP[ha_name].get(property_meta["PropertyType"].strip()) + built_form = None elif ha_name == "HA107": - property_type = property_meta.get("property_type", None) built_form = property_meta.get("built_form", None) - + elif ha_name == "HA117": + property_type = PROPERTY_TYPE_LOOKUP[ha_name].get(property_meta["Property Type"].strip()) + built_form = None + elif ha_name == "HAXX": + return property_meta["Property Type"].split(":")[0].strip(), None + elif ha_name == "HAXXX": + property_type = PROPERTY_TYPE_LOOKUP[ha_name].get(property_meta["Unit Description"].strip()) + built_form = None else: raise NotImplementedError("Implement me") @@ -5119,9 +5460,16 @@ def forecast_remaining_sales(loader): def fml_data_pull(loader): - has_bruh = ["HA7", "HA14", "HA25", "HA39", "HA16", - # Do these - "HA1", "HA13", "HA50", "HA24"] + has_bruh = [ + # "HA7", "HA14", "HA25", "HA39", "HA16", "HA28", + # Updated get_property_type_and_built_form, still needs running + "HA13", "HA50", "HA24", "HA15", "HA32", "HA28", "HA6", "HA1", "HA107", "HA41", "HA48", "HA2", "HA63", "HA12", + "HA117", "HA35", "HA34", "HA56", "HA19", "HA18", "HA9", "HA27", "HA30", "HA31", "HA54", "HA49", + # todo + ] + + # Can't pull from EPC database because it's based in Scotland + # "HAXXX", "HAXX" # DO from backend.SearchEpc import SearchEpc epc_api_key = "a2Nvbm5rb3dsZXNzYXJAZ21haWwuY29tOjY5MGJiMWM0NmIyOGI5ZDUxYzAxMzQzYzNiZGNlZGJjZDNmODQwMzA=" @@ -5134,14 +5482,24 @@ def fml_data_pull(loader): # For each property, search for the latest EPC epc_data = [] for _, row in tqdm(fml.iterrows(), total=fml.shape[0]): + property_type, _ = get_property_type_and_built_form(property_meta=row, ha_name=ha) + + if ha == "HAXXX": + to_join = [str(x) for x in + [row["Door Number"], row["Address Line 1"], row["Address Line 2"], row["Address Line 3"], + row["Postcode"]] if x is not None] + full_address = ", ".join(to_join) + else: + full_address = row["matching_address"] + searcher = SearchEpc( - address1=row["HouseNo"], + address1=str(row["HouseNo"]), postcode=row["matching_postcode"], auth_token=epc_api_key, os_api_key="", property_type=property_type, - full_address=row["matching_address"], + full_address=full_address, ) # Force the skipping of estimating the EPC searcher.ordnance_survey_client.property_type = None @@ -5194,7 +5552,7 @@ def classify_loft(x): def fml_analysis(loader): assumed_ciga_pass_rate = 0.731 - has_bruh = ["HA7", "HA14", "HA25", "HA39", "HA16"] + has_bruh = ["HA7", "HA14", "HA25", "HA39", "HA16", "HA1"] no_ciga_cavity_descriptions = [ "Cavity wall, as built, insulated (assumed)", From 6423ab2fac732a905645260263ebc72149424712 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Fri, 15 Mar 2024 17:53:18 +0000 Subject: [PATCH 438/526] data pull pipeline ready --- backend/SearchEpc.py | 11 +- .../ha_15_32/ha_analysis_batch_3.py | 100 ++++++++++-------- 2 files changed, 61 insertions(+), 50 deletions(-) diff --git a/backend/SearchEpc.py b/backend/SearchEpc.py index 3d2df9fb..cc2ee4a9 100644 --- a/backend/SearchEpc.py +++ b/backend/SearchEpc.py @@ -147,6 +147,7 @@ class SearchEpc: uprn: [int, None] = None, size=None, property_type=None, + fast=False ): """ Address lines 1 and postcode are mandatory fields. The other address lines are optional @@ -187,6 +188,7 @@ class SearchEpc: self.size = size if size is not None else 25 self.property_type = property_type + self.fast = fast @classmethod def get_house_number(cls, address: str) -> str | None: @@ -365,9 +367,6 @@ class SearchEpc: # Finally, we identify the newest epc and the rest, and then return newest_epc, older_epcs = self.filter_newest_epc(list_of_epcs=rows) - # Retrieve postcode and address - address_epc, postcode_epc = self.format_address(newest_epc=newest_epc) - # Ge the uprn from the newest record for this home uprns = {r["uprn"] for r in rows if r["uprn"]} # We can sometimes have no uprn for a property @@ -384,6 +383,12 @@ class SearchEpc: uprn = uprns.pop() if uprns else None + if self.fast: + return newest_epc, [], {}, "", "", None + + # Retrieve postcode and address + address_epc, postcode_epc = self.format_address(newest_epc=newest_epc) + return newest_epc, older_epcs, full_sap_epc, address_epc, postcode_epc, uprn @staticmethod diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index 902d48fd..7db97733 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -5461,9 +5461,9 @@ def forecast_remaining_sales(loader): def fml_data_pull(loader): has_bruh = [ - # "HA7", "HA14", "HA25", "HA39", "HA16", "HA28", + # "HA7", "HA14", "HA25", "HA39", "HA16", "HA28", "HA13", # Updated get_property_type_and_built_form, still needs running - "HA13", "HA50", "HA24", "HA15", "HA32", "HA28", "HA6", "HA1", "HA107", "HA41", "HA48", "HA2", "HA63", "HA12", + "HA50", "HA24", "HA15", "HA32", "HA28", "HA6", "HA1", "HA107", "HA41", "HA48", "HA2", "HA63", "HA12", "HA117", "HA35", "HA34", "HA56", "HA19", "HA18", "HA9", "HA27", "HA30", "HA31", "HA54", "HA49", # todo ] @@ -5474,57 +5474,63 @@ def fml_data_pull(loader): from backend.SearchEpc import SearchEpc epc_api_key = "a2Nvbm5rb3dsZXNzYXJAZ21haWwuY29tOjY5MGJiMWM0NmIyOGI5ZDUxYzAxMzQzYzNiZGNlZGJjZDNmODQwMzA=" + failed_has = [] for ha in has_bruh: - asset_list = loader.data[ha]["asset_list"].copy() - # properties found as eligibile - fml = asset_list[asset_list["ECO Eligibility"] != "not eligible"] + print(f"Pulling data for {ha}") + try: + asset_list = loader.data[ha]["asset_list"].copy() + # properties found as eligibile + fml = asset_list[asset_list["ECO Eligibility"] != "not eligible"] - # For each property, search for the latest EPC - epc_data = [] - for _, row in tqdm(fml.iterrows(), total=fml.shape[0]): + # For each property, search for the latest EPC + epc_data = [] + for _, row in tqdm(fml.iterrows(), total=fml.shape[0]): - property_type, _ = get_property_type_and_built_form(property_meta=row, ha_name=ha) + property_type, _ = get_property_type_and_built_form(property_meta=row, ha_name=ha) - if ha == "HAXXX": - to_join = [str(x) for x in - [row["Door Number"], row["Address Line 1"], row["Address Line 2"], row["Address Line 3"], - row["Postcode"]] if x is not None] - full_address = ", ".join(to_join) - else: - full_address = row["matching_address"] + if ha == "HAXXX": + to_join = [str(x) for x in + [row["Door Number"], row["Address Line 1"], row["Address Line 2"], row["Address Line 3"], + row["Postcode"]] if x is not None] + full_address = ", ".join(to_join) + else: + full_address = row["matching_address"] - searcher = SearchEpc( - address1=str(row["HouseNo"]), - postcode=row["matching_postcode"], - auth_token=epc_api_key, - os_api_key="", - property_type=property_type, - full_address=full_address, + searcher = SearchEpc( + address1=str(row["HouseNo"]), + postcode=row["matching_postcode"], + auth_token=epc_api_key, + os_api_key="", + property_type=property_type, + full_address=full_address, + fast=True + ) + # Force the skipping of estimating the EPC + searcher.ordnance_survey_client.property_type = None + searcher.ordnance_survey_client.built_form = None + + searcher.find_property(skip_os=True) + if searcher.newest_epc is None: + continue + + epc = { + "asset_list_row_id": row["asset_list_row_id"], + **searcher.newest_epc.copy() + } + + epc_data.append(epc) + + # Remove None entries + epc_data = [x for x in epc_data if x is not None] + # Save the data in S3 as a parquet + epc_data_df = pd.DataFrame(epc_data) + save_pickle_to_s3( + data=epc_data_df, + bucket_name="retrofit-datalake-dev", + s3_file_name=f"ha-analysis/revised/{ha}/epc_data.pickle" ) - # Force the skipping of estimating the EPC - searcher.ordnance_survey_client.property_type = None - searcher.ordnance_survey_client.built_form = None - - searcher.find_property(skip_os=True) - if searcher.newest_epc is None: - continue - - epc = { - "asset_list_row_id": row["asset_list_row_id"], - **searcher.newest_epc.copy() - } - - epc_data.append(epc) - - # Remove None entries - epc_data = [x for x in epc_data if x is not None] - # Save the data in S3 as a parquet - epc_data_df = pd.DataFrame(epc_data) - save_pickle_to_s3( - data=epc_data_df, - bucket_name="retrofit-datalake-dev", - s3_file_name=f"ha-analysis/revised/{ha}/epc_data.pickle" - ) + except Exception as e: + failed_has.append(ha) def extract_lower_bound(age_band): From 4e077053cd73b4e6cd27392440e4e179846f6f9a Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Sat, 16 Mar 2024 14:51:39 +0000 Subject: [PATCH 439/526] Adding gbis to output --- .../ha_15_32/ha_analysis_batch_3.py | 92 +++++++++++++++---- 1 file changed, 74 insertions(+), 18 deletions(-) diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index 7db97733..0ca28927 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -3247,6 +3247,9 @@ def get_property_type_and_built_form(property_meta, ha_name): elif ha_name == "HA49": property_type = property_meta["Property Class"].strip() built_form = None + elif ha_name == "HA50": + property_type = PROPERTY_TYPE_LOOKUP[ha_name].get(property_meta["Property Type"].strip()) + built_form = None elif ha_name == "HA54": property_type = property_meta["Property Type"] built_form = None @@ -5685,12 +5688,6 @@ def fml_analysis(loader): fuck_this["roof_classiciation"] = fuck_this.apply(lambda x: classify_loft(x), axis=1) - # fuck_this["construction-age-band"] = fuck_this["construction-age-band"].apply( - # lambda x: EPCDataProcessor.clean_construction_age_band(x) - # ) - # - # fuck_this['age_lower_bound'] = fuck_this['construction-age-band'].apply(extract_lower_bound) - had_survey = fuck_this[fuck_this["estimated"] == False] # proportion with a survey: @@ -5716,10 +5713,6 @@ def fml_analysis(loader): ] # Characterise no CIGA check needed - ciga_check_needed = had_survey[ - had_survey["ECO Eligibility"].str.contains("subject to ciga") - ].copy() - ciga_check_passed = had_survey[had_survey["ECO Eligibility"] == "eco4 - passed ciga"] # These should be treated the same as one that have passed their ciga checks, from a detection perspective ciga_check_passed_eligible = ciga_check_passed[ @@ -5743,20 +5736,60 @@ def fml_analysis(loader): # differ between variables; floor and wall type errors occur in ~10-15% of EPCs, # compared with ~5% for wall insulation and glazing performance + ciga_check_needed = had_survey[ + had_survey["ECO Eligibility"].str.contains("subject to ciga") + ].copy() + ciga_check_needed_eligible = ciga_check_needed[ (ciga_check_needed["walls-description"].str.lower().str.contains("cavity") == True) & (ciga_check_needed["roof_classiciation"].isin(["high", "medium"])) & (ciga_check_needed["current-energy-efficiency"].astype(float) <= 80) ] + # Finally, characterise gbis properties. Some of the business might look like ECO4 work, whereas we then + # qualify what actually looks like gbis + gbis_identified = had_survey[ + had_survey["ECO Eligibility"] == "gbis" + ].copy() + + gbis_looks_like_eco4 = gbis_identified[ + (gbis_identified["walls-description"].isin(no_ciga_cavity_descriptions)) & + (gbis_identified["roof_classiciation"].isin(["high", "medium"])) & + (gbis_identified["current-energy-efficiency"].astype(float) <= 80) & + ( + ( + (gbis_identified["property-type"] == "House") & + (gbis_identified["built-form"] != "Mid-Terrace") + ) | ( + (gbis_identified["property-type"] == "Bungalow") & + (gbis_identified["built-form"].isin(["Detached"])) + ) + ) + ] + + gbis_qualified = gbis_identified[ + (gbis_identified["walls-description"].isin(no_ciga_cavity_descriptions)) & + (gbis_identified["current-energy-efficiency"].astype(float) <= 80) & + (~gbis_identified["asset_list_row_id"].isin(gbis_looks_like_eco4["asset_list_row_id"].values)) + ] + ciga_check_expectation = np.round(ciga_check_needed_eligible.shape[0] * ha_ciga_pass_rate) without_ciga_expectation = no_ciga_check_needed_eligible.shape[0] passed_ciga_expectation = ciga_check_passed_eligible.shape[0] + identified_as_gbis_looks_like_eco4 = gbis_looks_like_eco4.shape[0] # Need to add on the non-ciga - total_expectation = ciga_check_expectation + without_ciga_expectation + passed_ciga_expectation + total_eco4_expectation = ( + ciga_check_expectation + + without_ciga_expectation + + passed_ciga_expectation + + identified_as_gbis_looks_like_eco4 + ) - total_gbis_expectation = no_ciga_check_needed_eligible_gbis.shape[0] + no_ciga_check_needed_actually_gbis = no_ciga_check_needed_eligible_gbis.shape[0] + gbis_qualified = gbis_qualified.shape[0] + + total_gbis_expectation = no_ciga_check_needed_actually_gbis + gbis_qualified if proportion_with_survey < 100: # We estimate the rest @@ -5805,14 +5838,38 @@ def fml_analysis(loader): without_survey_eco4.shape[0] * (total_gbis_expectation / no_ciga_check_needed.shape[0]) ) - total_expectation = ( - total_expectation + + # And gbis + without_survey_gbis = fuck_this[ + (fuck_this["estimated"] == True) & + (fuck_this["ECO Eligibility"] == "gbis") + ] + + if without_survey_gbis.empty: + without_survey_identified_as_gbis_qualified = 0 + without_survey_identified_as_gbis_eco4 = 0 + else: + # We apply the same conversion rate as the properties with a survey + without_survey_identified_as_gbis_qualified = np.round( + without_survey_gbis.shape[0] * (gbis_qualified / gbis_identified.shape[0]) + ) + + without_survey_identified_as_gbis_eco4 = np.round( + without_survey_eco4.shape[0] * (identified_as_gbis_looks_like_eco4 / gbis_identified.shape[0]) + ) + + total_eco4_expectation = ( + total_eco4_expectation + without_survey_without_ciga_expected + without_survey_passed_ciga_expected + - without_survey_eco4_expected + without_survey_eco4_expected + + without_survey_identified_as_gbis_eco4 ) - total_gbis_expectation = total_gbis_expectation + without_survey_gbis_expected + total_gbis_expectation = ( + total_gbis_expectation + + without_survey_gbis_expected + + without_survey_identified_as_gbis_qualified + ) surveys = loader.data[ha_name]["survey_list"] sold_now = 0 @@ -5829,9 +5886,8 @@ def fml_analysis(loader): "Original ECO4 Estimate - Remaining": original_remaining, "Postcode List - Remaining": postcode_list_remaining, # "Of which sold": sales_since_nov, - "Of which ECO4 Eligible - Remaining": int(total_expectation), + "Of which ECO4 Eligible - Remaining": int(total_eco4_expectation), "Of which GBIS Eligibile - Remaining": int(total_gbis_expectation), - # "Proportion with a survey": proportion_with_survey, } ) From a7ed3b84e560ea3e92517f8568bc7918e352d0e7 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Sun, 17 Mar 2024 14:12:49 +0000 Subject: [PATCH 440/526] Added HA8 --- .../ha_15_32/ha_analysis_batch_3.py | 98 ++++++++++++++++++- 1 file changed, 93 insertions(+), 5 deletions(-) diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index 0ca28927..67139e40 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -517,6 +517,11 @@ class DataLoader: asset_list["Address3"].astype(str).str.lower().str.strip() + ", " + \ asset_list["Postcode"].astype(str).str.lower().str.strip() asset_list["matching_postcode"] = asset_list["Postcode"].astype(str).str.lower().str.strip() + elif ha_name == "HA8": + asset_list["matching_address"] = asset_list["AddressLine1"].astype(str).str.lower().str.strip() + ", " + \ + asset_list["AddressLine2"].astype(str).str.lower().str.strip() + ", " + \ + asset_list["Postcode"].astype(str).str.lower().str.strip() + asset_list["matching_postcode"] = asset_list["Postcode"].astype(str).str.lower().str.strip() elif ha_name == "HA9": asset_list["matching_address"] = asset_list["House Number"].astype(str).str.lower().str.strip() + ", " + \ asset_list["Address Line 1"].astype(str).str.lower().str.strip() + ", " + \ @@ -2293,6 +2298,30 @@ class DataLoader: def correct_ha49_survey_list(survey_list): return survey_list + @staticmethod + def correct_ha8_survey_list(survey_list): + # Split on / and take the first half + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.split("/").str[0] + + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace( + "WESTONIA COURT HOUSE", "Westonia Court" + ) + + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace( + "Hillesdon Avenue", "Hillesden Avenue" + ) + + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace( + "Weston Street", "Western Street" + ) + + # Remove placeholder rows where postcode is missing + survey_list = survey_list[ + ~pd.isnull(survey_list["Post Code"]) + ] + + return survey_list + @staticmethod def levenstein_match(matching_string, df): match_to = df["matching_address"].tolist() @@ -5464,7 +5493,7 @@ def forecast_remaining_sales(loader): def fml_data_pull(loader): has_bruh = [ - # "HA7", "HA14", "HA25", "HA39", "HA16", "HA28", "HA13", + "HA7", "HA14", "HA25", "HA39", "HA16", "HA28", "HA13", # Updated get_property_type_and_built_form, still needs running "HA50", "HA24", "HA15", "HA32", "HA28", "HA6", "HA1", "HA107", "HA41", "HA48", "HA2", "HA63", "HA12", "HA117", "HA35", "HA34", "HA56", "HA19", "HA18", "HA9", "HA27", "HA30", "HA31", "HA54", "HA49", @@ -5561,7 +5590,13 @@ def classify_loft(x): def fml_analysis(loader): assumed_ciga_pass_rate = 0.731 - has_bruh = ["HA7", "HA14", "HA25", "HA39", "HA16", "HA1"] + has_bruh = [ + "HA7", "HA14", "HA25", "HA39", "HA16", "HA28", "HA13", + # Updated get_property_type_and_built_form, still needs running + "HA50", "HA24", "HA15", "HA32", "HA28", "HA6", "HA1", "HA107", "HA41", "HA48", "HA2", "HA63", "HA12", + "HA117", "HA35", "HA34", "HA56", "HA19", "HA18", "HA9", "HA27", "HA30", "HA31", "HA54", "HA49", + # todo + ] no_ciga_cavity_descriptions = [ "Cavity wall, as built, insulated (assumed)", @@ -5597,12 +5632,13 @@ def fml_analysis(loader): results = [] wall_descriptions = [] - for ha_name in has_bruh: + for ha_name in tqdm(has_bruh): original_figures = loader.december_figures[ loader.december_figures["HA Name"] == ha_name ].copy() original_remaining = original_figures["ECO4 remaining"].values[0] + original_gbis_remaining = original_figures["GBIS remaining"].values[0] postcode_list_remaining = remaining_eligible_mapping[ha_name] # Read in the epc data @@ -5669,7 +5705,54 @@ def fml_analysis(loader): raise Exception("SOMETHING WENT WRONG") if any(fuck_this["ECO Eligibility"].str.contains("subject to archetype")): - raise Exception("DO THE DAMN ARCHETYPE CHECK BRO") + # We perform the archetype test. If the property is a house, we it needs to be detached, semi-detached + # or end terrace. If it's a bungalow, it must be attached + fuck_this["passes_archetype"] = None + fuck_this["passes_archetype"] = np.where( + (fuck_this["property-type"] == "House") & + (fuck_this["built-form"].isin(["Semi-Detached", "End-Terrace", "Detached"])), + True, + fuck_this["passes_archetype"] + ) + + fuck_this["passes_archetype"] = np.where( + (fuck_this["property-type"] == "Bungalow") & + (fuck_this["built-form"].isin(["Detached"])), + True, + fuck_this["passes_archetype"] + ) + + fuck_this["ECO Eligibility"] = np.where( + (fuck_this["ECO Eligibility"] == "eco4 (subject to ciga) (subject to archetype)") & + (fuck_this["passes_archetype"] == True), + "eco4 (subject to ciga)", + fuck_this["ECO Eligibility"] + ) + + # If failed the archetype check and needs a CIGA, it's not eligibile + fuck_this["ECO Eligibility"] = np.where( + (fuck_this["ECO Eligibility"] == "eco4 (subject to ciga) (subject to archetype)") & + (fuck_this["passes_archetype"] != True), + "not eligible", + fuck_this["ECO Eligibility"] + ) + + fuck_this["ECO Eligibility"] = np.where( + (fuck_this["ECO Eligibility"] == "eco4 (subject to archetype)") & + (fuck_this["passes_archetype"] == True), + "eco4", + fuck_this["ECO Eligibility"] + ) + + fuck_this["ECO Eligibility"] = np.where( + (fuck_this["ECO Eligibility"] == "eco4 (subject to archetype)") & + (fuck_this["passes_archetype"] != True), + "gbis", + fuck_this["ECO Eligibility"] + ) + + if any(fuck_this["ECO Eligibility"].str.contains("subject to archetype")): + raise Exception("DO THE DAMN ARCHETYPE CHECK BRO") # clean roof insulation fuck_this["roof_insulation_thickness"] = fuck_this["roof_insulation_thickness"].fillna("0") @@ -5685,6 +5768,9 @@ def fml_analysis(loader): fuck_this["roof_insulation_thickness"] = fuck_this[ "roof_insulation_thickness" ].str.replace("average", "150") + fuck_this["roof_insulation_thickness"] = fuck_this[ + "roof_insulation_thickness" + ].str.replace("above 150", "150") fuck_this["roof_classiciation"] = fuck_this.apply(lambda x: classify_loft(x), axis=1) @@ -5884,6 +5970,7 @@ def fml_analysis(loader): { "HA Name": ha_name, "Original ECO4 Estimate - Remaining": original_remaining, + "Original GGBIS Estimate - Remaining": original_gbis_remaining, "Postcode List - Remaining": postcode_list_remaining, # "Of which sold": sales_since_nov, "Of which ECO4 Eligible - Remaining": int(total_eco4_expectation), @@ -5927,7 +6014,8 @@ def app(): "HA1", "HA2", "HA6", "HA7", "HA9", "HA12", "HA13", "HA14", "HA15", "HA16", "HA18", "HA19", "HA24", "HA25", "HA27", "HA28", "HA30", "HA31", "HA32", "HA34", "HA35", "HA39", "HA41", "HA48", "HA49", "HA50", "HA54", "HA56", "HA63", "HA107", "HA117", - + # Added as of March 17th + "HA8", # New HAS "HAXX", "HAXXX", ] From 94ad06726320972b02db779b8f2e9440a0ea9c0e Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Sun, 17 Mar 2024 14:25:49 +0000 Subject: [PATCH 441/526] done ha11 --- etl/eligibility/ha_15_32/ha_analysis_batch_3.py | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index 67139e40..920ec1b6 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -530,6 +530,12 @@ class DataLoader: asset_list["Address Line 4"].astype(str).str.lower().str.strip() + ", " + \ asset_list["Postcode"].astype(str).str.lower().str.strip() asset_list["matching_postcode"] = asset_list["Postcode"].astype(str).str.lower().str.strip() + elif ha_name == "HA11": + asset_list["matching_address"] = asset_list["Address 1"].astype(str).str.lower().str.strip() + ", " + \ + asset_list["Address 2"].astype(str).str.lower().str.strip() + ", " + \ + asset_list["Address 3"].astype(str).str.lower().str.strip() + ", " + \ + asset_list["Post Code"].astype(str).str.lower().str.strip() + asset_list["matching_postcode"] = asset_list["Post Code"].astype(str).str.lower().str.strip() elif ha_name == "HA13": asset_list["matching_address"] = asset_list["Address 1"].astype(str).str.lower().str.strip() + ", " + \ asset_list["address 2"].astype(str).str.lower().str.strip() + ", " + \ @@ -2322,6 +2328,15 @@ class DataLoader: return survey_list + @staticmethod + def correct_ha11_survey_list(survey_list): + # Remove 39 HOLLYWOOD WAY as it's not in the asset list + survey_list = survey_list[ + ~((survey_list["Street / Block Name"] == "HOLLYWOOD WAY") & + (survey_list["NO."] == 39)) + ] + return survey_list + @staticmethod def levenstein_match(matching_string, df): match_to = df["matching_address"].tolist() @@ -6015,7 +6030,7 @@ def app(): "HA27", "HA28", "HA30", "HA31", "HA32", "HA34", "HA35", "HA39", "HA41", "HA48", "HA49", "HA50", "HA54", "HA56", "HA63", "HA107", "HA117", # Added as of March 17th - "HA8", + "HA8", "HA11", # New HAS "HAXX", "HAXXX", ] From 9bbcbc881f3f1c50ab8ec422c5b38f04e864e676 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Sun, 17 Mar 2024 14:42:24 +0000 Subject: [PATCH 442/526] Added ha21 --- etl/eligibility/ha_15_32/ha_analysis_batch_3.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index 920ec1b6..e9de4695 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -573,6 +573,12 @@ class DataLoader: asset_list["Postcode"].astype(str).str.lower().str.strip() ) asset_list["matching_postcode"] = asset_list["Postcode"].astype(str).str.lower().str.strip() + elif ha_name == "HA21": + asset_list["matching_address"] = ( + asset_list["Address"].astype(str).str.lower().str.strip() + ", " + + asset_list["PostCode"].astype(str).str.lower().str.strip() + ) + asset_list["matching_postcode"] = asset_list["PostCode"].astype(str).str.lower().str.strip() elif ha_name == "HA25": asset_list["matching_address"] = asset_list[ self.COLUMN_CONFIG[ha_name]["address"] @@ -6030,7 +6036,7 @@ def app(): "HA27", "HA28", "HA30", "HA31", "HA32", "HA34", "HA35", "HA39", "HA41", "HA48", "HA49", "HA50", "HA54", "HA56", "HA63", "HA107", "HA117", # Added as of March 17th - "HA8", "HA11", + "HA8", "HA11", "HA21", # New HAS "HAXX", "HAXXX", ] @@ -6038,7 +6044,7 @@ def app(): # back on this], 28 [DONE], 41 [DONE], 50 [DONE], 48 [DONE], 2 [DONE], 63 [DONE], 12 [DONE], 117 [DONE], 13 [DONE], # 35 [DONE], 56 [DONE], 19 [DONE], 18 [DONE], 9 [DONE], 27 [DONE], 34 [DONE], 30 [DONE], 31 [DONE], 54 [DONE] # - # Consider for ECO4: + # Consider for ECO4: HA 70 - have to merge ECO3 list though, HA17 has LOTs of assets, but the asset list is a mess # Consider for GBIS: # Ignore for now: # 38 [problematic, but no ECO4], 10 problematic (no eligibility), 20 has barely any in From 897d58eec2ecc1e51d4a46878918f6c019a2705c Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Mon, 18 Mar 2024 10:40:12 +0000 Subject: [PATCH 443/526] Added ha44 --- .../ha_15_32/ha_analysis_batch_3.py | 189 +++++++++++++++++- 1 file changed, 178 insertions(+), 11 deletions(-) diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index e9de4695..dc96d403 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -78,6 +78,29 @@ PROPERTY_TYPE_LOOKUP = { "End Terraced": "End-Terrace", } }, + "HA8": { + "House": "House", + "Flat": "Flat", + "Bungalow": "Bungalow", + "Maisonette": "Maisonette", + "Bedsit": None, + "Room": None, + "Other": None, + "Commerical": None + }, + "HA11": { + "Flat": "Flat", + "House": "House", + "Semi-Det House": "House", + "Bedsit": None, + "End-Terr House": "House", + "Mid-Terr House": "House", + "Bungalow": "Bungalow", + "Maisonette": "Maisonette", + "End Terr Flat": "Flat", + "Mid Terr Flat": "Flat", + "Detached Flat": "Flat", + }, "HA12": { "House": "House", "Flat": "Flat", @@ -244,6 +267,13 @@ PROPERTY_TYPE_LOOKUP = { "3 Bedroom Unknown": None, "4 Bedroom Unknown": None, }, + "HA37": { + "FLT": "Flat", + "HSE": "House", + "BNW": "Bungalow", + "MAS": "Maisonette", + "HSL": None + }, "HA39": { "Semi house": {"property_type": "House", "built_form": "Semi-Detached"}, "1st floor flat": {"property_type": "Flat", "built_form": None}, @@ -291,6 +321,21 @@ PROPERTY_TYPE_LOOKUP = { 'Bungalow 1919-1945': 'Bungalow', 'Office': None }, + "HA42": { + 'Flat': 'Flat', + 'House': 'House', + 'Flat Basement': 'Flat', + 'Room': None, + 'Bedsit Flat': 'Flat', + 'Maisonette': 'Maisonette', + 'Scheme Office': None, + 'Scheme Lounge': None, + 'Bungalow': 'Bungalow', + 'Garage': None, + 'Scheme Sleep Room': None, + 'Cluster': None, + 'Scheme Room': None + }, "HA48": { "House": "House", "Flat": "Flat", @@ -626,6 +671,12 @@ class DataLoader: asset_list["Address Line 4"].astype(str).str.lower().str.strip() + ", " + \ asset_list["Address Post Code"].astype(str).str.lower().str.strip() asset_list["matching_postcode"] = asset_list["Address Post Code"].astype(str).str.lower().str.strip() + elif ha_name == "HA37": + asset_list["matching_address"] = asset_list["ADDRESS LINE 1"].astype(str).str.lower().str.strip() + ", " + \ + asset_list["ADDRESS LINE 2"].astype(str).str.lower().str.strip() + ", " + \ + asset_list["ADDRESS LINE 3"].astype(str).str.lower().str.strip() + ", " + \ + asset_list["POSTCODE"].astype(str).str.lower().str.strip() + asset_list["matching_postcode"] = asset_list["POSTCODE"].astype(str).str.lower().str.strip() elif ha_name == "HA38": asset_list["matching_address"] = asset_list["House_Number"].astype(str).str.lower().str.strip() + ", " + \ asset_list["Address_Line_1"].astype(str).str.lower().str.strip() + ", " + \ @@ -650,6 +701,18 @@ class DataLoader: asset_list["AddressLine5"].astype(str).str.lower().str.strip() + ", " + \ asset_list["Postcode"].astype(str).str.lower().str.strip() asset_list["matching_postcode"] = asset_list["Postcode"].astype(str).str.lower().str.strip() + elif ha_name == "HA42": + asset_list["matching_address"] = asset_list["Dwelling Number"].astype(str).str.lower().str.strip() + " " + \ + asset_list["Street"].astype(str).str.lower().str.strip() + ", " + \ + asset_list["Locality"].astype(str).str.lower().str.strip() + ", " + \ + asset_list["Town"].astype(str).str.lower().str.strip() + ", " + \ + asset_list["Postcode"].astype(str).str.lower().str.strip() + asset_list["matching_postcode"] = asset_list["Postcode"].astype(str).str.lower().str.strip() + elif ha_name == "HA44": + asset_list["matching_address"] = asset_list["Address 1"].astype(str).str.lower().str.strip() + ", " + \ + asset_list["Address 2"].astype(str).str.lower().str.strip() + ", " + \ + asset_list["Postal Code"].astype(str).str.lower().str.strip() + asset_list["matching_postcode"] = asset_list["Postal Code"].astype(str).str.lower().str.strip() elif ha_name == "HA50": asset_list["matching_address"] = asset_list["Address Line 1"].astype(str).str.lower().str.strip() + ", " + \ asset_list["Post Code"].astype(str).str.lower().str.strip() @@ -1177,6 +1240,66 @@ class DataLoader: asset_list["matching_address"] ) + asset_list["HouseNo"] = np.where( + (asset_list["Address_Line_1"].isin( + [ + "10 SOUTH VIEW/FLAT C", + ] + )), + "10C", + asset_list["HouseNo"] + ) + + asset_list["matching_address"] = np.where( + (asset_list["Address_Line_1"].isin( + [ + "10 SOUTH VIEW/FLAT C", + ] + )), + "FLAT c, spennymoor, co. durham, dl16 7df, 10c, 10 south view", + asset_list["matching_address"] + ) + + asset_list["HouseNo"] = np.where( + (asset_list["Address_Line_1"].isin( + [ + "10 SOUTH VIEW/FLAT D", + ] + )), + "10D", + asset_list["HouseNo"] + ) + + asset_list["matching_address"] = np.where( + (asset_list["Address_Line_1"].isin( + [ + "10 SOUTH VIEW/FLAT D", + ] + )), + "FLAT d, spennymoor, co. durham, dl16 7df, 10d, 10 south view", + asset_list["matching_address"] + ) + + asset_list["HouseNo"] = np.where( + (asset_list["Address_Line_1"].isin( + [ + "10 SOUTH VIEW/FLAT E", + ] + )), + "10E", + asset_list["HouseNo"] + ) + + asset_list["matching_address"] = np.where( + (asset_list["Address_Line_1"].isin( + [ + "10 SOUTH VIEW/FLAT E", + ] + )), + 'FLAT e, spennymoor, co. durham, dl16 7df, 10e, 10 south view', + asset_list["matching_address"] + ) + return asset_list @staticmethod @@ -1730,6 +1853,13 @@ class DataLoader: survey_list["Street / Block Name"] ) + survey_list["Post Code"] = np.where( + (survey_list["Street / Block Name"] == "BEECH ROAD") & + (survey_list["Post Code"] == "DH6 1JD"), + "DH6 1JB", + survey_list["Post Code"] + ) + return survey_list @staticmethod @@ -2343,6 +2473,18 @@ class DataLoader: ] return survey_list + @staticmethod + def correct_ha42_survey_list(survey_list): + # original asset list has nothing in the street + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace( + "Turnstone Terrace", "" + ) + + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace( + "Pegasus place", "" + ) + return survey_list + @staticmethod def levenstein_match(matching_string, df): match_to = df["matching_address"].tolist() @@ -2926,7 +3068,7 @@ class DataLoader: "eco4 subject to ciga": "eco4 (subject to ciga)", "eco4 (subject to archetype/ciga)": "eco4 (subject to ciga) (subject to archetype)", "eco4( subject to ciga/archetype)": "eco4 (subject to ciga) (subject to archetype)", - "eco4 (subject to ciga/ archetype)": "eco4 (subject to ciga) (subject to archetype)" + "eco4 (subject to ciga/ archetype)": "eco4 (subject to ciga) (subject to archetype)", } ha_facts_and_figures = [] @@ -3189,6 +3331,9 @@ def get_property_type_and_built_form(property_meta, ha_name): elif ha_name == "HA7": property_type = PROPERTY_TYPE_LOOKUP[ha_name]["property_type"].get(property_meta["Archetype"]) built_form = PROPERTY_TYPE_LOOKUP[ha_name]["built_form"].get(property_meta["Property Type"]) + elif ha_name == "HA8": + property_type = PROPERTY_TYPE_LOOKUP[ha_name].get(property_meta["Property Type"].strip()) + built_form = None elif ha_name == "HA9": property_description = property_meta["Asset Type"].strip().lower() if "house" in property_description: @@ -3204,6 +3349,9 @@ def get_property_type_and_built_form(property_meta, ha_name): return "Maisonette", None return None, None + elif ha_name == "HA11": + property_type = PROPERTY_TYPE_LOOKUP[ha_name].get(property_meta["Property Type"].strip()) + built_form = None elif ha_name == "HA12": property_type = PROPERTY_TYPE_LOOKUP[ha_name].get(property_meta["Asset_Type1"].strip()) built_form = None @@ -3237,6 +3385,21 @@ def get_property_type_and_built_form(property_meta, ha_name): elif ha_name == "HA19": property_type = property_meta["Dwelling Type"] built_form = None + elif ha_name == "HA21": + property_description = property_meta["Property Type"].strip().lower() + if "house" in property_description: + return "House", None + + if "flat" in property_description: + return "Flat", None + + if "bungalow" in property_description: + return "Bungalow", None + + if "maisonette" in property_description: + return "Maisonette", None + + return None, None elif ha_name == "HA24": property_type = PROPERTY_TYPE_LOOKUP[ha_name].get(property_meta["Property Type"].strip()) built_form = None @@ -3277,6 +3440,9 @@ def get_property_type_and_built_form(property_meta, ha_name): elif ha_name == "HA35": property_type = PROPERTY_TYPE_LOOKUP[ha_name].get(property_meta["Property Type Grouping"].strip()) built_form = None + elif ha_name == "HA37": + property_type = PROPERTY_TYPE_LOOKUP[ha_name].get(property_meta["PROPERTY TYPE"].strip()) + built_form = None elif ha_name == "HA39": property_type_config = PROPERTY_TYPE_LOOKUP[ha_name].get(property_meta["ConstructionStyle"], {}) property_type = property_type_config.get("property_type", None) @@ -3291,6 +3457,9 @@ def get_property_type_and_built_form(property_meta, ha_name): elif ha_name == "HA41": property_type = PROPERTY_TYPE_LOOKUP[ha_name].get(property_meta["Archetype"].strip()) built_form = None + elif ha_name == "HA42": + property_type = PROPERTY_TYPE_LOOKUP[ha_name].get(property_meta["Dwelling use/type"].strip()) + built_form = None elif ha_name == "HA48": property_type = PROPERTY_TYPE_LOOKUP[ha_name].get(property_meta["Property Type"].strip()) built_form = None @@ -5515,10 +5684,9 @@ def forecast_remaining_sales(loader): def fml_data_pull(loader): has_bruh = [ "HA7", "HA14", "HA25", "HA39", "HA16", "HA28", "HA13", - # Updated get_property_type_and_built_form, still needs running "HA50", "HA24", "HA15", "HA32", "HA28", "HA6", "HA1", "HA107", "HA41", "HA48", "HA2", "HA63", "HA12", "HA117", "HA35", "HA34", "HA56", "HA19", "HA18", "HA9", "HA27", "HA30", "HA31", "HA54", "HA49", - # todo + 'HA8', 'HA11', 'HA21', 'HA37', 'HA42', ] # Can't pull from EPC database because it's based in Scotland @@ -5613,10 +5781,9 @@ def fml_analysis(loader): assumed_ciga_pass_rate = 0.731 has_bruh = [ "HA7", "HA14", "HA25", "HA39", "HA16", "HA28", "HA13", - # Updated get_property_type_and_built_form, still needs running "HA50", "HA24", "HA15", "HA32", "HA28", "HA6", "HA1", "HA107", "HA41", "HA48", "HA2", "HA63", "HA12", "HA117", "HA35", "HA34", "HA56", "HA19", "HA18", "HA9", "HA27", "HA30", "HA31", "HA54", "HA49", - # todo + 'HA8', 'HA11', 'HA21', 'HA37', 'HA42', ] no_ciga_cavity_descriptions = [ @@ -5639,7 +5806,7 @@ def fml_analysis(loader): "HA39", "HA14", "HA24", "HA15", "HA32", "HA28", "HA6", "HA1", "HA7", "HA16", "HA107", "HA25", "HA50", "HA41", "HA48", "HA2", "HA63", "HA12", "HA117", "HA13", "HA35", "HA34", "HA56", "HA19", "HA18", "HA9", "HA27", - "HA30", "HA31", "HA54", "HAXX", "HA49", "HAXXX" + "HA30", "HA31", "HA54", "HAXX", "HA49", "HAXXX", ] values = [ @@ -5660,7 +5827,6 @@ def fml_analysis(loader): ].copy() original_remaining = original_figures["ECO4 remaining"].values[0] original_gbis_remaining = original_figures["GBIS remaining"].values[0] - postcode_list_remaining = remaining_eligible_mapping[ha_name] # Read in the epc data asset_list = loader.data[ha_name]["asset_list"].copy() @@ -5992,10 +6158,10 @@ def fml_analysis(loader): "HA Name": ha_name, "Original ECO4 Estimate - Remaining": original_remaining, "Original GGBIS Estimate - Remaining": original_gbis_remaining, - "Postcode List - Remaining": postcode_list_remaining, + # "Postcode List - Remaining": postcode_list_remaining, # "Of which sold": sales_since_nov, - "Of which ECO4 Eligible - Remaining": int(total_eco4_expectation), - "Of which GBIS Eligibile - Remaining": int(total_gbis_expectation), + "EPC verified ECO4 Eligible - Remaining": int(total_eco4_expectation), + "EPC verified GBIS Eligibile - Remaining": int(total_gbis_expectation), } ) @@ -6036,7 +6202,8 @@ def app(): "HA27", "HA28", "HA30", "HA31", "HA32", "HA34", "HA35", "HA39", "HA41", "HA48", "HA49", "HA50", "HA54", "HA56", "HA63", "HA107", "HA117", # Added as of March 17th - "HA8", "HA11", "HA21", + "HA8", "HA11", "HA21", "HA37", "HA42", + "HA44", # New HAS "HAXX", "HAXXX", ] From c58acadb730b6e6ab1ebb700b4669ab3cf171f5b Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Mon, 18 Mar 2024 12:19:15 +0000 Subject: [PATCH 444/526] HA51 eco3 matching --- .../ha_15_32/ha_analysis_batch_3.py | 80 ++++++++++++++++--- 1 file changed, 71 insertions(+), 9 deletions(-) diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index dc96d403..af9af514 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -491,6 +491,10 @@ class DataLoader: "address": "A_Address", "postcode": "matching_postcode" }, + "HA45": { + "address": "Full postal address", + "postcode": "Postcode" + }, "HA48": { "address": "Full Address", "postcode": "Postcode" @@ -518,7 +522,8 @@ class DataLoader: "HA50": 4, "HA63": 15, "HA107": 51, - "HA48": 0 + "HA48": 0, + "HA45": 0 } UNMATCHED_ECO3 = { @@ -527,7 +532,8 @@ class DataLoader: "HA50": 5, "HA56": 320, "HA63": 0, - "HA117": 4 + "HA117": 4, + "HA51": 24 } def __init__(self, directories, december_figures_filepath, use_cache, rebuild): @@ -542,7 +548,7 @@ class DataLoader: def create_asset_list_matching_address(self, ha_name, asset_list): - if ha_name in ["HA1", "HA6", "HA12", "HA16", "HA24", "HA30", "HA31", "HA48", "HA49", "HA54"]: + if ha_name in ["HA1", "HA6", "HA12", "HA16", "HA24", "HA30", "HA31", "HA45", "HA48", "HA49", "HA54"]: asset_list["matching_address"] = asset_list[ self.COLUMN_CONFIG[ha_name]["address"] ].astype(str).str.lower().str.strip() @@ -717,6 +723,18 @@ class DataLoader: asset_list["matching_address"] = asset_list["Address Line 1"].astype(str).str.lower().str.strip() + ", " + \ asset_list["Post Code"].astype(str).str.lower().str.strip() asset_list["matching_postcode"] = asset_list["Post Code"].astype(str).str.lower().str.strip() + elif ha_name == "HA51": + asset_list["matching_address"] = asset_list["Address Line 1"].astype(str).str.lower().str.strip() + ", " + \ + asset_list["Address Line 2"].astype(str).str.lower().str.strip() + ", " + \ + asset_list["Address Line 3"].astype(str).str.lower().str.strip() + ", " + \ + asset_list["Postcode"].astype(str).str.lower().str.strip() + asset_list["matching_address"] = np.where( + asset_list["Block"].str.strip().str.len() > 0, + asset_list["Block"].astype(str).str.lower().str.strip() + ", " + \ + asset_list["matching_address"], + asset_list["matching_address"] + ) + asset_list["matching_postcode"] = asset_list["Postcode"].astype(str).str.lower().str.strip() elif ha_name == "HA56": asset_list["matching_address"] = asset_list["Address 1"].astype(str).str.lower().str.strip() + ", " + \ asset_list["Address 2"].astype(str).str.lower().str.strip() + ", " + \ @@ -2485,6 +2503,13 @@ class DataLoader: ) return survey_list + @staticmethod + def correct_ha45_survey_list(survey_list): + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace( + "Norwich Road", "Norwich Avenue" + ) + return survey_list + @staticmethod def levenstein_match(matching_string, df): match_to = df["matching_address"].tolist() @@ -2744,6 +2769,38 @@ class DataLoader: return eco3_list + @staticmethod + def correct_ha51_eco3_list(eco3_list): + eco3_list["Street / Block Name"] = eco3_list["Street / Block Name"].str.replace( + "HASELEMERE AVENUE", "HASLEMERE AVENUE" + ) + eco3_list["Street / Block Name"] = eco3_list["Street / Block Name"].str.replace( + "THORVILLE GROVE", "THORNVILLE GROVE" + ) + eco3_list["Street / Block Name"] = eco3_list["Street / Block Name"].str.replace( + "MONTBRETA CLOSE", "MONTBRETIA CLOSE" + ) + eco3_list["Post Code"] = np.where( + (eco3_list["Street / Block Name"] == "SYDENHAM ROAD") & + (eco3_list["Post Code"] == "CR0 2DW"), + "CR0 2ED", + eco3_list["Post Code"] + ) + # Not in asset list + eco3_list = eco3_list[ + ~((eco3_list["Street / Block Name"] == "WOODLEY LANE") & + (eco3_list["Post Code"] == "SM5 2RJ") & + (eco3_list["NO "] == "FLAT 3, 11")) + ] + + eco3_list["NO "] = np.where( + (eco3_list["NO "] == "47 B"), + "47B", + eco3_list["NO "] + ) + + return eco3_list + def merge_eco3_to_assets(self, asset_list, eco3_list, ha_name): eco3_list_correction_function = getattr(self, f"correct_{ha_name.lower()}_eco3_list") @@ -2752,7 +2809,7 @@ class DataLoader: asset_list["matching_postcode_nospace"] = asset_list["matching_postcode"].str.replace(" ", "").str.lower() eco3_list["postcode_no_space"] = eco3_list["Post Code"].str.lower().str.replace(" ", "") - if ha_name in ["HA25", "HA56"]: + if ha_name in ["HA25", "HA56", "HA51"]: # HA25: 317 -> 259 missed_postcodes = { postcode for postcode in eco3_list["postcode_no_space"] if @@ -2774,7 +2831,7 @@ class DataLoader: matching_lookup = [] missed = [] for _, row in tqdm(eco3_list.iterrows(), total=len(eco3_list)): - # if row["eco3_list_row_id"] == "HA25_Eco3_5422": + # if row["eco3_list_row_id"] == "HA51_Eco3_22": # raise Exception() postcode = row["postcode_no_space"] @@ -2813,6 +2870,12 @@ class DataLoader: missed.append(row["eco3_list_row_id"]) continue + if df.shape[0] > 1: + if "flat" in str(row["NO "]).lower(): + df = df[df["matching_address"].str.contains("flat")] + else: + df = df[~df["matching_address"].str.contains("flat")] + if df.shape[0] != 1: print(row["Street / Block Name"]) print(house_number) @@ -6200,10 +6263,9 @@ def app(): priority_has = [ "HA1", "HA2", "HA6", "HA7", "HA9", "HA12", "HA13", "HA14", "HA15", "HA16", "HA18", "HA19", "HA24", "HA25", "HA27", "HA28", "HA30", "HA31", "HA32", "HA34", "HA35", "HA39", "HA41", "HA48", "HA49", "HA50", "HA54", "HA56", - "HA63", "HA107", "HA117", - # Added as of March 17th - "HA8", "HA11", "HA21", "HA37", "HA42", - "HA44", + "HA63", "HA107", "HA117", "HA8", "HA11", "HA21", "HA37", "HA42", + # Added as of March 18th + "HA44", "HA45", "HA51", # New HAS "HAXX", "HAXXX", ] From e7cd80eba0ef8f11c62506509b5a7d60c7a37ce7 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Mon, 18 Mar 2024 12:34:28 +0000 Subject: [PATCH 445/526] Added HA52 --- .../ha_15_32/ha_analysis_batch_3.py | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index af9af514..056a4190 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -946,6 +946,17 @@ class DataLoader: else: return "ECO surveys" + @staticmethod + def correct_ha51_asset_list(asset_list): + # Correct this + asset_list["HouseNo"] = np.where( + asset_list["matching_address"].str.contains("61 wandle bank"), + asset_list["Block"].str.lower(), + asset_list["HouseNo"] + ) + + return asset_list + def load_asset_list(self, filepath, ha_name): workbook = openpyxl.load_workbook(filepath) asset_sheetname = self.get_asset_sheetname(workbook) @@ -2510,6 +2521,16 @@ class DataLoader: ) return survey_list + @staticmethod + def correct_ha51_survey_list(survey_list): + survey_list = survey_list.rename(columns={"NO ": "NO."}) + + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace( + "Autum Close", "Autumn Close" + ) + + return survey_list + @staticmethod def levenstein_match(matching_string, df): match_to = df["matching_address"].tolist() From e6c9dd7074dfba12668b31651ec1a5d9eab6a27c Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Mon, 18 Mar 2024 12:55:37 +0000 Subject: [PATCH 446/526] Done HA52 --- .../ha_15_32/ha_analysis_batch_3.py | 37 +++++++++++++++++-- 1 file changed, 33 insertions(+), 4 deletions(-) diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index 056a4190..bdf15917 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -503,6 +503,10 @@ class DataLoader: "address": "Property Address Full", "postcode": "Property Postcode" }, + "HA52": { + "address": "Postal Address", + "postcode": "POSTCODE" + }, "HA54": { "address": "Postal Address", "postcode": "matching_postcode" @@ -523,7 +527,8 @@ class DataLoader: "HA63": 15, "HA107": 51, "HA48": 0, - "HA45": 0 + "HA45": 0, + "HA52": 5 } UNMATCHED_ECO3 = { @@ -548,7 +553,7 @@ class DataLoader: def create_asset_list_matching_address(self, ha_name, asset_list): - if ha_name in ["HA1", "HA6", "HA12", "HA16", "HA24", "HA30", "HA31", "HA45", "HA48", "HA49", "HA54"]: + if ha_name in ["HA1", "HA6", "HA12", "HA16", "HA24", "HA30", "HA31", "HA45", "HA48", "HA49", "HA52", "HA54"]: asset_list["matching_address"] = asset_list[ self.COLUMN_CONFIG[ha_name]["address"] ].astype(str).str.lower().str.strip() @@ -2531,6 +2536,25 @@ class DataLoader: return survey_list + @staticmethod + def correct_ha52_survey_list(survey_list): + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace( + "Mardalle Avenue", "Mardale Avenue" + ) + + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace( + "Ollerton Close, Grappenhall", "Ollerton Close" + ) + + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace( + "Bradshaw Road, Grappenhall", "Bradshaw Lane" + ) + + # Drop a bunch of dupes + survey_list = survey_list.drop_duplicates(["NO.", "Street / Block Name", "Post Code"]) + + return survey_list + @staticmethod def levenstein_match(matching_string, df): match_to = df["matching_address"].tolist() @@ -3165,7 +3189,12 @@ class DataLoader: asset_list_starting_size = asset_list.shape[0] # Change the column name if it's ECO eligibility - asset_list = asset_list.rename(columns={"ECO eligibility": "ECO Eligibility"}) + asset_list = asset_list.rename( + columns={ + "ECO eligibility": "ECO Eligibility", + "ECO Eligibilty": "ECO Eligibility", + }, + ) # Remove surplus whitespace from the ECO Eligibility column asset_list["ECO Eligibility"] = asset_list["ECO Eligibility"].str.strip() # Push to lower case @@ -6286,7 +6315,7 @@ def app(): "HA27", "HA28", "HA30", "HA31", "HA32", "HA34", "HA35", "HA39", "HA41", "HA48", "HA49", "HA50", "HA54", "HA56", "HA63", "HA107", "HA117", "HA8", "HA11", "HA21", "HA37", "HA42", # Added as of March 18th - "HA44", "HA45", "HA51", + "HA44", "HA45", "HA51", "HA52", # New HAS "HAXX", "HAXXX", ] From 92193d773dbd72aca67da82870d3f7da5a4acfe7 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Mon, 18 Mar 2024 13:21:57 +0000 Subject: [PATCH 447/526] fix facts and figures bug for ha51 --- .../ha_15_32/ha_analysis_batch_3.py | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index bdf15917..e40bb98b 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -3305,11 +3305,18 @@ class DataLoader: ) else: # We have some examples, e.g. HA28, where we do not have the installed or cancelled column - survey_list["installation_status"] = np.where( - survey_list['INSTALL/ CANCELLATION DATE'].str.lower().str.contains("cancelled"), - "cancelled", - "installed", - ) + if 'INSTALL/ CANCELLATION DATE' in survey_list.columns: + survey_list["installation_status"] = np.where( + survey_list['INSTALL/ CANCELLATION DATE'].str.lower().str.contains("cancelled"), + "cancelled", + "installed", + ) + else: + survey_list["installation_status"] = np.where( + survey_list['INSTALL / CANCELLATION DATE'].str.lower().str.contains("cancelled"), + "cancelled", + "installed", + ) # Finally, for other cases, we set the status to "in progress" survey_list["installation_status"] = survey_list["installation_status"].fillna("in progress") @@ -5800,6 +5807,8 @@ def fml_data_pull(loader): "HA50", "HA24", "HA15", "HA32", "HA28", "HA6", "HA1", "HA107", "HA41", "HA48", "HA2", "HA63", "HA12", "HA117", "HA35", "HA34", "HA56", "HA19", "HA18", "HA9", "HA27", "HA30", "HA31", "HA54", "HA49", 'HA8', 'HA11', 'HA21', 'HA37', 'HA42', + # NEW - add property type + 'HA44', 'HA45', 'HA51', 'HA52' ] # Can't pull from EPC database because it's based in Scotland From 443aa585d0c3c35ae34718f0e8338ec48ba7ad3c Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Mon, 18 Mar 2024 15:40:52 +0000 Subject: [PATCH 448/526] Adding ha5 --- .../ha_15_32/ha_analysis_batch_3.py | 181 +++++++++++++++++- 1 file changed, 171 insertions(+), 10 deletions(-) diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index e40bb98b..009064c6 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -336,6 +336,16 @@ PROPERTY_TYPE_LOOKUP = { 'Cluster': None, 'Scheme Room': None }, + "HA45": { + 'Large block of flats': 'Flat', + 'Small block of flats/dwelling converted in to flats': 'Flat', + 'Semi-detached house': 'House', + 'Mid-terraced house': 'House', + 'End-terraced house': 'House', + 'Block of flats': 'Flat', + 'Detached house': 'House', + 'Flat in mixed use building': 'Flat', + }, "HA48": { "House": "House", "Flat": "Flat", @@ -364,6 +374,30 @@ PROPERTY_TYPE_LOOKUP = { 'Flat?': 'Flat', 'Bungalow ': 'Bungalow' }, + "HA51": { + 'FLAT': 'Flat', + 'HOUSE': 'House', + 'MAISONETTE': 'Maisonette', + 'BEDSIT': None, # Considering as a non-specific residential category here + 'BUNGALOW': 'Bungalow', + }, + "HA52": { + 'House - Mid Terrace': 'House', + 'Flat - First Floor': 'Flat', + 'Flat - Ground Floor': 'Flat', + 'House - Semi-Detached': 'House', + 'House - End Terrace': 'House', + 'Flat - Second Floor': 'Flat', + 'Bedsit': None, # Considering as a non-specific residential category here + 'Bungalow - Semi-Detached': 'Bungalow', + 'Bungalow - Mid Terrace': 'Bungalow', + 'Bungalow - End Terrace': 'Bungalow', + 'House - Detached': 'House', + 'Flat - Third Floor': 'Flat', + 'House attached to flats': 'House', + 'Flat - Fourth Floor': 'Flat', + 'Bungalow - Detached': 'Bungalow' + }, "HA56": { 'House Non Specific': 'House', 'HOUSE TERRACED': 'House', @@ -463,6 +497,10 @@ class DataLoader: "address": "Address", "postcode": "Address - Postcode" }, + "HA5": { + "address": "Address", + "postcode": "matching_postcode" + }, "HA6": { "address": "propertyaddress", "postcode": "address" # The 'address' column actually contains postcode @@ -553,7 +591,9 @@ class DataLoader: def create_asset_list_matching_address(self, ha_name, asset_list): - if ha_name in ["HA1", "HA6", "HA12", "HA16", "HA24", "HA30", "HA31", "HA45", "HA48", "HA49", "HA52", "HA54"]: + if ha_name in [ + "HA1", "HA5", "HA6", "HA12", "HA16", "HA24", "HA30", "HA31", "HA45", "HA48", "HA49", "HA52", "HA54" + ]: asset_list["matching_address"] = asset_list[ self.COLUMN_CONFIG[ha_name]["address"] ].astype(str).str.lower().str.strip() @@ -750,6 +790,10 @@ class DataLoader: asset_list["matching_address"] = asset_list["Address1"].astype(str).str.lower().str.strip() + ", " + \ asset_list["POSTCODE"].astype(str).str.lower().str.strip() asset_list["matching_postcode"] = asset_list["POSTCODE"].astype(str).str.lower().str.strip() + elif ha_name == "HA70": + asset_list["matching_address"] = asset_list["Address1"].astype(str).str.lower().str.strip() + ", " + \ + asset_list["POSTCODE"].astype(str).str.lower().str.strip() + asset_list["matching_postcode"] = asset_list["POSTCODE"].astype(str).str.lower().str.strip() elif ha_name == "HA107": # Create matching_address by concatenating House No, Street, Town, District, Postcode asset_list["matching_address"] = asset_list["House No"].astype(str).str.lower().str.strip() + ", " + \ @@ -962,9 +1006,100 @@ class DataLoader: return asset_list + def prepare_ha17(self, workbook): + blocks_sheet = workbook["Blocks List - Cavity Wall only"] + blocks_data = [] + blocks_colnames = [cell.value for cell in blocks_sheet[2]] + for row in blocks_sheet.iter_rows(min_row=4, values_only=False): + row_data = [cell.value for cell in row] # This will get you the cell values + blocks_data.append(row_data) + + blocks_df = pd.DataFrame(blocks_data, columns=blocks_colnames) + + blocks_df["matching_address"] = ( + blocks_df["Block Name\n[as per Naming Convention procedure]"].astype(str).str.lower().str.strip() + ", " + + blocks_df["Block Street Name"].astype(str).str.lower().str.strip() + ", " + + blocks_df["Postcode"].astype(str).str.lower().str.strip() + ) + blocks_df["matching_postcode"] = blocks_df["Postcode"].astype(str).str.lower().str.strip() + blocks_df["property_type"] = "Flat" + + street_properties_sheet = workbook["Street Properties - Cavity Wall"] + street_properties_data = [] + street_properties_colnames = [cell.value for cell in street_properties_sheet[2]] + for row in street_properties_sheet.iter_rows(min_row=3, values_only=False): + row_data = [cell.value for cell in row] # This will get you the cell values + street_properties_data.append(row_data) + + street_properties_df = pd.DataFrame(street_properties_data, columns=street_properties_colnames) + + street_properties_df["matching_address"] = ( + street_properties_df["Block Name\n[as per Naming Convention procedure]"].astype( + str).str.lower().str.strip() + ", " + + street_properties_df["Postcode"].astype(str).str.lower().str.strip() + ) + street_properties_df["matching_postcode"] = street_properties_df["Postcode"].astype(str).str.lower().str.strip() + street_properties_df["property_type"] = street_properties_df[ + "Block typology based on dwelling type\n[defined list]" + ] + + asset_list_compressed = pd.concat( + [ + blocks_df[["matching_address", "matching_postcode", "property_type", "ECO Eligibility"]], + street_properties_df[["matching_address", "matching_postcode", "property_type", "ECO Eligibility"]] + ], + axis=0 + ) + # We expand + range_pattern = r"(\d+)\s+to\s+(\d+)\s+(.*)" + asset_list = [] + for _, row in tqdm(asset_list_compressed.iterrows(), total=len(asset_list_compressed)): + if row["ECO Eligibility"] == "Not Eligible": + asset_list.append(row.to_dict()) + continue + + # Detect a house number range + match = re.search(range_pattern, row["matching_address"]) + + if not match: + asset_list.append(row.to_dict()) + continue + + # Extracting the start and end of the range + start_number = int(match.group(1)) + end_number = int(match.group(2)) + rest_of_address = match.group(3) + + # Generating the list of house numbers + house_numbers = list(range(start_number, end_number + 1)) + data_to_extend = [] + for house_number in house_numbers: + new_adress = f"{house_number} {rest_of_address}" + + entry = row.to_dict().copy() + entry.update({"matching_address": new_adress}) + + data_to_extend.append(entry) + + asset_list.extend(data_to_extend) + + asset_list = pd.DataFrame(asset_list) + + # Add in asset_list_row_id + asset_list["asset_list_row_id"] = ["HA17" + str(i) for i in range(0, len(asset_list))] + + # Add on house number + asset_list = self.create_asset_list_house_no(ha_name="HA17", asset_list=asset_list) + + return asset_list + def load_asset_list(self, filepath, ha_name): workbook = openpyxl.load_workbook(filepath) - asset_sheetname = self.get_asset_sheetname(workbook) + if ha_name == "HA17": + asset_list = self.prepare_ha17(workbook) + return asset_list, pd.DataFrame(), pd.DataFrame(), pd.DataFrame() + else: + asset_sheetname = self.get_asset_sheetname(workbook) asset_sheet = workbook[asset_sheetname] asset_sheet_colnames = [cell.value for cell in asset_sheet[1]] @@ -977,6 +1112,9 @@ class DataLoader: if ha_name == "HA54": asset_sheet_colnames[10] = "matching_postcode" + if ha_name == "HA5": + asset_sheet_colnames[2] = "matching_postcode" + rows_data = [] for row in asset_sheet.iter_rows(min_row=2, values_only=False): @@ -2555,6 +2693,10 @@ class DataLoader: return survey_list + @staticmethod + def correct_ha5_survey_list(survey_list): + return survey_list + @staticmethod def levenstein_match(matching_string, df): match_to = df["matching_address"].tolist() @@ -3431,6 +3573,9 @@ class DataLoader: def get_property_type_and_built_form(property_meta, ha_name): + if ha_name in ["HA44"]: + return None, None + if ha_name == "HA1": property_type = property_meta["Asset Type"] # We correct a small error @@ -3499,6 +3644,8 @@ def get_property_type_and_built_form(property_meta, ha_name): config = PROPERTY_TYPE_LOOKUP[ha_name][property_meta["Type"]] property_type = config.get("property-type") built_form = config.get("built-form") + elif ha_name == "HA17": + return property_meta["property_type"], None elif ha_name == "HA18": property_type = PROPERTY_TYPE_LOOKUP[ha_name].get(property_meta["Asset Type"].strip()) built_form = None @@ -3580,6 +3727,9 @@ def get_property_type_and_built_form(property_meta, ha_name): elif ha_name == "HA42": property_type = PROPERTY_TYPE_LOOKUP[ha_name].get(property_meta["Dwelling use/type"].strip()) built_form = None + elif ha_name == "HA45": + property_type = PROPERTY_TYPE_LOOKUP[ha_name].get(property_meta["Property type"].strip()) + built_form = None elif ha_name == "HA48": property_type = PROPERTY_TYPE_LOOKUP[ha_name].get(property_meta["Property Type"].strip()) built_form = None @@ -3589,6 +3739,14 @@ def get_property_type_and_built_form(property_meta, ha_name): elif ha_name == "HA50": property_type = PROPERTY_TYPE_LOOKUP[ha_name].get(property_meta["Property Type"].strip()) built_form = None + elif ha_name == "HA51": + property_type = PROPERTY_TYPE_LOOKUP[ha_name].get(property_meta["Asset Type"].strip()) + built_form = None + elif ha_name == "HA52": + if property_meta["Property Type"] is None: + return None, None + property_type = PROPERTY_TYPE_LOOKUP[ha_name].get(property_meta["Property Type"].strip()) + built_form = None elif ha_name == "HA54": property_type = property_meta["Property Type"] built_form = None @@ -5806,9 +5964,9 @@ def fml_data_pull(loader): "HA7", "HA14", "HA25", "HA39", "HA16", "HA28", "HA13", "HA50", "HA24", "HA15", "HA32", "HA28", "HA6", "HA1", "HA107", "HA41", "HA48", "HA2", "HA63", "HA12", "HA117", "HA35", "HA34", "HA56", "HA19", "HA18", "HA9", "HA27", "HA30", "HA31", "HA54", "HA49", - 'HA8', 'HA11', 'HA21', 'HA37', 'HA42', + 'HA8', 'HA11', 'HA21', 'HA37', 'HA42', 'HA44', 'HA45', 'HA51', 'HA52', # NEW - add property type - 'HA44', 'HA45', 'HA51', 'HA52' + "HA17" ] # Can't pull from EPC database because it's based in Scotland @@ -5905,7 +6063,7 @@ def fml_analysis(loader): "HA7", "HA14", "HA25", "HA39", "HA16", "HA28", "HA13", "HA50", "HA24", "HA15", "HA32", "HA28", "HA6", "HA1", "HA107", "HA41", "HA48", "HA2", "HA63", "HA12", "HA117", "HA35", "HA34", "HA56", "HA19", "HA18", "HA9", "HA27", "HA30", "HA31", "HA54", "HA49", - 'HA8', 'HA11', 'HA21', 'HA37', 'HA42', + 'HA8', 'HA11', 'HA21', 'HA37', 'HA42', 'HA44', 'HA45', 'HA51', 'HA52' ] no_ciga_cavity_descriptions = [ @@ -6320,11 +6478,11 @@ def app(): # Add in: priority_has = [ - "HA1", "HA2", "HA6", "HA7", "HA9", "HA12", "HA13", "HA14", "HA15", "HA16", "HA18", "HA19", "HA24", "HA25", - "HA27", "HA28", "HA30", "HA31", "HA32", "HA34", "HA35", "HA39", "HA41", "HA48", "HA49", "HA50", "HA54", "HA56", - "HA63", "HA107", "HA117", "HA8", "HA11", "HA21", "HA37", "HA42", + "HA1", "HA2", "HA5", "HA6", "HA7", "HA9", "HA12", "HA13", "HA14", "HA15", "HA16", "HA18", "HA19", "HA24", + "HA25", "HA27", "HA28", "HA30", "HA31", "HA32", "HA34", "HA35", "HA39", "HA41", "HA48", "HA49", "HA50", "HA54", + "HA56", "HA63", "HA107", "HA117", "HA8", "HA11", "HA21", "HA37", "HA42", # Added as of March 18th - "HA44", "HA45", "HA51", "HA52", + "HA44", "HA45", "HA51", "HA52", "HA17", # New HAS "HAXX", "HAXXX", ] @@ -6332,7 +6490,10 @@ def app(): # back on this], 28 [DONE], 41 [DONE], 50 [DONE], 48 [DONE], 2 [DONE], 63 [DONE], 12 [DONE], 117 [DONE], 13 [DONE], # 35 [DONE], 56 [DONE], 19 [DONE], 18 [DONE], 9 [DONE], 27 [DONE], 34 [DONE], 30 [DONE], 31 [DONE], 54 [DONE] # - # Consider for ECO4: HA 70 - have to merge ECO3 list though, HA17 has LOTs of assets, but the asset list is a mess + # Consider for ECO4: + # HA 70 - have to merge ECO3 list though, + # HA17 has LOTs of assets, but the asset list is a mess + # HA53 but has EPCs done # Consider for GBIS: # Ignore for now: # 38 [problematic, but no ECO4], 10 problematic (no eligibility), 20 has barely any in From 6ccfff0411ee2af58d6f7dc47b98f2deb70eac5c Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Mon, 18 Mar 2024 16:14:11 +0000 Subject: [PATCH 449/526] Added ha20 --- .../ha_15_32/ha_analysis_batch_3.py | 50 +++++++++++++++++-- 1 file changed, 46 insertions(+), 4 deletions(-) diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index 009064c6..627fcede 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -566,7 +566,8 @@ class DataLoader: "HA107": 51, "HA48": 0, "HA45": 0, - "HA52": 5 + "HA52": 5, + "HA20": 6 } UNMATCHED_ECO3 = { @@ -669,6 +670,17 @@ class DataLoader: asset_list["Postcode"].astype(str).str.lower().str.strip() ) asset_list["matching_postcode"] = asset_list["Postcode"].astype(str).str.lower().str.strip() + elif ha_name == "HA20": + asset_list["matching_address"] = ( + asset_list["House Name"].astype(str).str.lower().str.strip() + ", " + + asset_list["Block"].astype(str).str.lower().str.strip() + ", " + + asset_list["Address Line 1"].astype(str).str.lower().str.strip() + ", " + + asset_list["Address Line 2"].astype(str).str.lower().str.strip() + ", " + + asset_list["Address Line 3"].astype(str).str.lower().str.strip() + ", " + + asset_list["Address Line 4"].astype(str).str.lower().str.strip() + ", " + + asset_list["Postcode"].astype(str).str.lower().str.strip() + ) + asset_list["matching_postcode"] = asset_list["Postcode"].astype(str).str.lower().str.strip() elif ha_name == "HA21": asset_list["matching_address"] = ( asset_list["Address"].astype(str).str.lower().str.strip() + ", " + @@ -2697,6 +2709,35 @@ class DataLoader: def correct_ha5_survey_list(survey_list): return survey_list + @staticmethod + def correct_ha20_survey_list(survey_list): + # Not in the asset list + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace( + "Abbot Close", "ABBOTS CLOSE" + ) + + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace( + "Downbarns Road", "DOWN BARNS ROAD" + ) + + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace( + "Austin Lane", "AUSTINS LANE" + ) + + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace( + "South Park Way", "SOUTHPARK WAY" + ) + + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace( + "OAKLAND ROAD", "OAKWOOD ROAD" + ) + + survey_list["Street / Block Name"] = survey_list["Street / Block Name"].str.replace( + "ACRE WAY/NORTHWOOD", "ACRE WAY" + ) + + return survey_list + @staticmethod def levenstein_match(matching_string, df): match_to = df["matching_address"].tolist() @@ -3301,7 +3342,8 @@ class DataLoader: "AFF0RDALE WARMTH": "ECO4", "ECO 4 RdSAP CL": "ECO4", "Affordable Warmth (R) ": "ECO4", - "Affordable Warmth ": "ECO4" + "Affordable Warmth ": "ECO4", + "ECO 4 AFFORDABLE WARMTH": "ECO4", } # Since it seems like "subject to archetype check" has some failure conditions, for simplicity, we @@ -6478,11 +6520,11 @@ def app(): # Add in: priority_has = [ - "HA1", "HA2", "HA5", "HA6", "HA7", "HA9", "HA12", "HA13", "HA14", "HA15", "HA16", "HA18", "HA19", "HA24", + "HA1", "HA2", "HA6", "HA7", "HA9", "HA12", "HA13", "HA14", "HA15", "HA16", "HA18", "HA19", "HA24", "HA25", "HA27", "HA28", "HA30", "HA31", "HA32", "HA34", "HA35", "HA39", "HA41", "HA48", "HA49", "HA50", "HA54", "HA56", "HA63", "HA107", "HA117", "HA8", "HA11", "HA21", "HA37", "HA42", # Added as of March 18th - "HA44", "HA45", "HA51", "HA52", "HA17", + "HA44", "HA45", "HA51", "HA52", "HA17", "HA5", "HA20", # New HAS "HAXX", "HAXXX", ] From 3dd30445f92635df45b5da2a756650ca116f3855 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Mon, 18 Mar 2024 19:37:11 +0000 Subject: [PATCH 450/526] HA Analysis finalised --- .../ha_15_32/ha_analysis_batch_3.py | 257 +++++++++++++++--- 1 file changed, 225 insertions(+), 32 deletions(-) diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index 627fcede..2f17ed73 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -51,6 +51,12 @@ PROPERTY_TYPE_LOOKUP = { 'MAISONETTE': "Maisonette", 'HOSTEL': None }, + "HA5": { + "House": "House", + "Flat": "Flat", + "Bungalow": "Bungalow", + "Bedsit": None + }, "HA6": { "property_type": { 'HOUSE': "House", @@ -161,6 +167,21 @@ PROPERTY_TYPE_LOOKUP = { "Hostel": None, "Block": None, }, + "HA20": { + "House": "House", + "Flat": "Flat", + 'Sheltered Flat': "Flat", + 'Maisonette': 'Maisonette', + 'Bungalow': 'Bungalow', + 'House. SD': 'House', + 'House. MT': 'House', + 'House. ET': 'House', + 'Sheltered Bungalow': 'Bungalow', + 'Guest Accomodation': None, + 'Sheltered House': 'House', + 'House. MT ': 'House', + 'House. D': 'House' + }, "HA24": { '01 HOUSE': 'House', '02 FLAT': 'Flat', @@ -3632,6 +3653,9 @@ def get_property_type_and_built_form(property_meta, ha_name): elif ha_name == "HA2": property_type = PROPERTY_TYPE_LOOKUP[ha_name].get(property_meta["Dwelling Type"].strip()) built_form = None + elif ha_name == "HA5": + property_type = PROPERTY_TYPE_LOOKUP[ha_name].get(property_meta["Asset Type"].strip()) + built_form = None elif ha_name == "HA6": property_type = PROPERTY_TYPE_LOOKUP[ha_name]["property_type"][property_meta["Dwelling type"]] built_form = property_meta["built_form"] @@ -3694,6 +3718,9 @@ def get_property_type_and_built_form(property_meta, ha_name): elif ha_name == "HA19": property_type = property_meta["Dwelling Type"] built_form = None + elif ha_name == "HA20": + property_type = PROPERTY_TYPE_LOOKUP[ha_name].get(property_meta["Asset Type"].strip()) + built_form = None elif ha_name == "HA21": property_description = property_meta["Property Type"].strip().lower() if "house" in property_description: @@ -5775,6 +5802,7 @@ def forecast_remaining_sales(loader): results.append(to_append) results = pd.DataFrame(results) + results.to_csv("pipeline_remaining_raw.csv") totals_row = {} for col in results.columns: @@ -6006,9 +6034,7 @@ def fml_data_pull(loader): "HA7", "HA14", "HA25", "HA39", "HA16", "HA28", "HA13", "HA50", "HA24", "HA15", "HA32", "HA28", "HA6", "HA1", "HA107", "HA41", "HA48", "HA2", "HA63", "HA12", "HA117", "HA35", "HA34", "HA56", "HA19", "HA18", "HA9", "HA27", "HA30", "HA31", "HA54", "HA49", - 'HA8', 'HA11', 'HA21', 'HA37', 'HA42', 'HA44', 'HA45', 'HA51', 'HA52', - # NEW - add property type - "HA17" + 'HA8', 'HA11', 'HA21', 'HA37', 'HA42', 'HA44', 'HA45', 'HA51', 'HA52', "HA17", "HA5", "HA20", ] # Can't pull from EPC database because it's based in Scotland @@ -6105,7 +6131,7 @@ def fml_analysis(loader): "HA7", "HA14", "HA25", "HA39", "HA16", "HA28", "HA13", "HA50", "HA24", "HA15", "HA32", "HA28", "HA6", "HA1", "HA107", "HA41", "HA48", "HA2", "HA63", "HA12", "HA117", "HA35", "HA34", "HA56", "HA19", "HA18", "HA9", "HA27", "HA30", "HA31", "HA54", "HA49", - 'HA8', 'HA11', 'HA21', 'HA37', 'HA42', 'HA44', 'HA45', 'HA51', 'HA52' + 'HA8', 'HA11', 'HA21', 'HA37', 'HA42', 'HA44', 'HA45', 'HA51', 'HA52', "HA17", "HA5", "HA20", ] no_ciga_cavity_descriptions = [ @@ -6124,22 +6150,6 @@ def fml_analysis(loader): # TODO: There will be some properties that are subject to CIGA that do not look like they ned a CIGA check! pass # them! Non-invasices will have checked the wall though - codes = [ - "HA39", "HA14", "HA24", "HA15", "HA32", "HA28", "HA6", "HA1", "HA7", - "HA16", "HA107", "HA25", "HA50", "HA41", "HA48", "HA2", "HA63", "HA12", - "HA117", "HA13", "HA35", "HA34", "HA56", "HA19", "HA18", "HA9", "HA27", - "HA30", "HA31", "HA54", "HAXX", "HA49", "HAXXX", - ] - - values = [ - 706, 2161, 1053, 793, 0, 656, 1200, 1647, 4248, 2703, 1087, 1876, 2135, - 1078, 775, 538, 518, 401, 466, 2627, 98, 1050, 524, 191, 538, 384, 204, - 281, 422, 74, 313, 71, 6 - ] - - # Create a dictionary mapping - remaining_eligible_mapping = dict(zip(codes, values)) - results = [] wall_descriptions = [] for ha_name in tqdm(has_bruh): @@ -6397,9 +6407,13 @@ def fml_analysis(loader): without_survey_without_ciga_expected = 0 else: # We apply the same conversion rate as the properties with a survey - without_survey_without_ciga_expected = np.round( - without_survey_needing_ciga.shape[0] * (ciga_check_expectation / ciga_check_needed.shape[0]) - ) + + if ciga_check_needed.shape[0] == 0 and ciga_check_expectation == 0: + without_survey_without_ciga_expected = without_survey_needing_ciga.shape[0] + else: + without_survey_without_ciga_expected = np.round( + without_survey_needing_ciga.shape[0] * (ciga_check_expectation / ciga_check_needed.shape[0]) + ) without_survey_passed_ciga = fuck_this[ (fuck_this["estimated"] == True) & @@ -6466,15 +6480,6 @@ def fml_analysis(loader): without_survey_identified_as_gbis_qualified ) - surveys = loader.data[ha_name]["survey_list"] - sold_now = 0 - if not surveys.empty: - sold_now = surveys[ - surveys["installation_status"].str.lower().str.contains("eco4") - ].shape[0] - - sales_since_nov = sold_now - original_figures["No. of Tech surveys complete - Eco 4"].values[0] - results.append( { "HA Name": ha_name, @@ -6498,6 +6503,194 @@ def fml_analysis(loader): # TODO: Change the left hand side number for our post CIGA estimates +def create_final_report(): + """ + This function will produce the final output for the HA analysis + :return: + """ + epc_validated_results = pd.read_csv("analysis - revised.csv") + pipeline_results = pd.read_csv("pipeline_remaining_raw.csv") + + #################################### + # Original Warmfront estimates + #################################### + # Create the volumes result + all_ha_summary_remaining = pipeline_results[ + [ + "('', '', '', 'HA Name')", + "('ECO4 original', '', 'Remaining - #', '')", + "('GBIS original', '', 'Remaining - #', '')", + ] + ].copy().rename( + columns={ + "('', '', '', 'HA Name')": "HA Name", + "('ECO4 original', '', 'Remaining - #', '')": "# ECO4 remaining - All HA Summary", + "('GBIS original', '', 'Remaining - #', '')": "# GBIS remaining - All HA Summary", + } + ) + all_ha_summary_remaining["# Total remaining - All HA Summary"] = ( + all_ha_summary_remaining["# ECO4 remaining - All HA Summary"] + + all_ha_summary_remaining["# GBIS remaining - All HA Summary"] + ) + all_ha_summary_remaining = all_ha_summary_remaining.sort_values("HA Name") + + #################################### + # Postcode list - pre-CIGA + #################################### + postcode_list_pre_ciga_remaining = pipeline_results[ + [ + "('', '', '', 'HA Name')", + "('ECO4 pre-ciga', '', 'Remaining - #', '')", + "('GBIS Postcode list', 'Warmfront post code list', 'Remaining - #', 'GBIS total')", + ] + ].copy().rename( + columns={ + "('', '', '', 'HA Name')": "HA Name", + "('ECO4 pre-ciga', '', 'Remaining - #', '')": "# ECO4 remaining - Postcode list (pre CIGA)", + "('GBIS Postcode list', 'Warmfront post code list', 'Remaining - #', 'GBIS total')": ( + "# GBIS remaining - Postcode list (pre CIGA)" + ), + } + ) + + postcode_list_pre_ciga_remaining["# Total remaining - Postcode list (pre CIGA)"] = ( + postcode_list_pre_ciga_remaining["# ECO4 remaining - Postcode list (pre CIGA)"] + + postcode_list_pre_ciga_remaining["# GBIS remaining - Postcode list (pre CIGA)"] + ) + postcode_list_pre_ciga_remaining = postcode_list_pre_ciga_remaining.sort_values("HA Name") + + #################################### + # Postcode list - post-CIGA + #################################### + postcode_list_post_ciga_remaining = pipeline_results[ + [ + "('', '', '', 'HA Name')", + "('ECO4 post-ciga', '', 'Estimated remaining eligible - #', '')", + "('GBIS Postcode list', 'Warmfront post code list', 'Remaining - #', 'GBIS total')", + ] + ].copy().rename( + columns={ + "('', '', '', 'HA Name')": "HA Name", + "('ECO4 post-ciga', '', 'Estimated remaining eligible - #', '')": + "# ECO4 remaining - Postcode list (post CIGA)", + "('GBIS Postcode list', 'Warmfront post code list', 'Remaining - #', 'GBIS total')": ( + "# GBIS remaining - Postcode list (post CIGA)" + ), + } + ) + + postcode_list_post_ciga_remaining["# Total remaining - Postcode list (post CIGA)"] = ( + postcode_list_post_ciga_remaining["# ECO4 remaining - Postcode list (post CIGA)"] + + postcode_list_post_ciga_remaining["# GBIS remaining - Postcode list (post CIGA)"] + ) + postcode_list_post_ciga_remaining = postcode_list_post_ciga_remaining.sort_values("HA Name") + + #################################### + # From EPC Database + #################################### + from_epc_database = epc_validated_results[ + [ + "HA Name", + "EPC verified ECO4 Eligible - Remaining", + "EPC verified GBIS Eligibile - Remaining" + ] + ].copy().rename( + columns={ + "EPC verified ECO4 Eligible - Remaining": "# ECO4 remaining - From EPC Database (post CIGA)", + "EPC verified GBIS Eligibile - Remaining": "# GBIS remaining - From EPC Database (post CIGA)", + } + ) + + from_epc_database["# Total remaining - From EPC Database (post CIGA)"] = ( + from_epc_database["# ECO4 remaining - From EPC Database (post CIGA)"] + + from_epc_database["# GBIS remaining - From EPC Database (post CIGA)"] + ) + from_epc_database = from_epc_database.sort_values("HA Name") + + # Combine the datasets + volumes = all_ha_summary_remaining.merge( + postcode_list_pre_ciga_remaining, how="left", on="HA Name" + ).merge( + postcode_list_post_ciga_remaining, how="left", on="HA Name" + ).merge( + from_epc_database, how="inner", on="HA Name" + ) + + revenue = volumes.copy() + # Convert the ECO4 volumes to revenue + for col in [ + '# ECO4 remaining - All HA Summary', + '# ECO4 remaining - Postcode list (pre CIGA)', + '# ECO4 remaining - Postcode list (post CIGA)', + '# ECO4 remaining - From EPC Database (post CIGA)' + ]: + revenue[col] = revenue[col] * 1710 + + # Convert the GBIS volumes to revenue + for col in [ + '# GBIS remaining - All HA Summary', + '# GBIS remaining - Postcode list (pre CIGA)', + '# GBIS remaining - Postcode list (post CIGA)', + '# GBIS remaining - From EPC Database (post CIGA)' + ]: + revenue[col] = revenue[col] * 600 + + # Re-calculate the totals + revenue['# Total remaining - All HA Summary'] = ( + revenue['# ECO4 remaining - All HA Summary'] + revenue['# GBIS remaining - All HA Summary'] + ) + + revenue['# Total remaining - Postcode list (pre CIGA)'] = ( + revenue['# ECO4 remaining - Postcode list (pre CIGA)'] + revenue['# GBIS remaining - Postcode list (pre CIGA)'] + ) + + revenue['# Total remaining - Postcode list (post CIGA)'] = ( + revenue['# ECO4 remaining - Postcode list (post CIGA)'] + revenue[ + '# GBIS remaining - Postcode list (post CIGA)'] + ) + + revenue['# Total remaining - From EPC Database (post CIGA)'] = ( + revenue['# ECO4 remaining - From EPC Database (post CIGA)'] + + revenue['# GBIS remaining - From EPC Database (post CIGA)'] + ) + + # Replace the # with £ in the columns + revnue_colnames = [col.replace("#", "£") for col in revenue.columns] + revenue.columns = revnue_colnames + + # We check that each column gets smaller + decreasing_check1 = all( + volumes["# ECO4 remaining - Postcode list (pre CIGA)"] >= volumes[ + '# ECO4 remaining - Postcode list (post CIGA)'] + ) + if not decreasing_check1: + raise ValueError("decreasing_check1 failed") + + # Just HA32 and HA17 should fail this, and it's due to GBIS jobs looking like ECO4 + decreasing_check2 = volumes[volumes["# ECO4 remaining - From EPC Database (post CIGA)"] > volumes[ + "# ECO4 remaining - Postcode list (post CIGA)"]] + + if set(decreasing_check2["HA Name"].tolist()) != {"HA17", "HA32"}: + raise ValueError("decreasing_check2 failed") + + # Check for GBIS + decreasing_check3 = all( + volumes["# GBIS remaining - Postcode list (pre CIGA)"] >= volumes[ + '# GBIS remaining - Postcode list (post CIGA)'] + ) + + if not decreasing_check3: + raise ValueError("decreasing_check3 failed") + + # Don't perform this - this happens for multiple + # decreasing_check4 = volumes[volumes["# GBIS remaining - From EPC Database (post CIGA)"] > volumes[ + # "# GBIS remaining - Postcode list (post CIGA)"]] + + # Store final outputs + volumes.to_csv("HA Analysis Final - volumes.csv") + revenue.to_csv("HA Analysis Final - revenue.csv") + + def app(): """ This app contains the housin association analysis for HAs 1, 6, 14, 39 and 107. From fb31f95457f3a40a60bc6ff502c1c2fe5e8233f1 Mon Sep 17 00:00:00 2001 From: Michael Duong Date: Tue, 19 Mar 2024 11:48:48 +0000 Subject: [PATCH 451/526] add multiprocessing to process directory --- etl/epc/Pipeline.py | 54 ++++++++++++++++++++++++++++------ etl/epc/property_change_app.py | 1 + 2 files changed, 46 insertions(+), 9 deletions(-) diff --git a/etl/epc/Pipeline.py b/etl/epc/Pipeline.py index 0943b206..36c381ce 100644 --- a/etl/epc/Pipeline.py +++ b/etl/epc/Pipeline.py @@ -4,6 +4,7 @@ import pandas as pd from typing import List from pathlib import Path from tqdm import tqdm +import multiprocessing as mp from etl.epc.DataProcessor import EPCDataProcessor from etl.epc.Record import EPCRecord, EPCDifferenceRecord @@ -83,6 +84,7 @@ class EPCPipeline: epc_cleaning_dataset_key="sap_change_model/cleaning_dataset_rooms.parquet", epc_all_equal_rows_key="sap_change_model/all_equal_rows_rooms.parquet", epc_compiled_dataset_key="sap_change_model/dataset_rooms.parquet", + use_parallel=False, ): """ :param directories: List of directories to process @@ -107,6 +109,7 @@ class EPCPipeline: self.epc_cleaning_dataset_key = epc_cleaning_dataset_key self.epc_all_equal_rows_key = epc_all_equal_rows_key self.epc_compiled_dataset_key = epc_compiled_dataset_key + self.use_parallel = use_parallel def run(self): """ @@ -145,8 +148,11 @@ class EPCPipeline: "Directories not specified - Unable to run Training pipeline" ) - for directory in tqdm(self.directories): - self.process_directory(directory) + if self.use_parallel: + self.run_training_dataset_parallel_pipeline() + else: + for directory in tqdm(self.directories): + self.process_directory(directory) save_dataframe_to_s3_parquet( df=self.compiled_dataset, @@ -166,6 +172,41 @@ class EPCPipeline: file_key=self.epc_cleaning_dataset_key, ) + def run_training_dataset_parallel_pipeline(self): + """ + Run the training pipeline in parallel + """ + + with mp.Pool() as pool: + results = list( + tqdm( + pool.imap(self.process_directory_task, self.directories), + total=len(self.directories), + ), + ) + + for result in tqdm(results): + self.compiled_dataset = pd.concat( + [self.compiled_dataset, result["dataset"]] + ) + self.compiled_cleaning_averages.append(result["cleaning_averages"]) + self.compiled_all_equal_rows.extend(result["all_equal_rows"]) + + def process_directory_task(self, directory: str) -> pd.DataFrame: + """ + Task to enable parallel processing + """ + + self.process_directory(directory=directory) + + output = { + "dataset": self.compiled_dataset, + "cleaning_averages": self.epc_data_processor.cleaning_averages, + "all_equal_rows": self.compiled_all_equal_rows, + } + + return output + def process_directory(self, directory: Path): """ Process a single directory @@ -177,12 +218,13 @@ class EPCPipeline: self.epc_data_processor.prepare_data(filepath=filepath) constituency_data = self.epc_data_processor.data + self.compiled_cleaning_averages.append( self.epc_data_processor.cleaning_averages ) constituency_difference_records = [] - # self.check_records = [] + for uprn, property_data in constituency_data.groupby("uprn", observed=True): difference_records = self.process_uprn( uprn=str(uprn), property_data=property_data, directory=directory @@ -190,12 +232,6 @@ class EPCPipeline: if difference_records is not None: constituency_difference_records.extend(difference_records) - # check_list = [] - # for check_record in self.check_records: - # check_list.append(check_record["difference_record"]) - - # td = TrainingDataset(datasets=check_list, cleaned_lookup=clean_lookup) - constituency_dataset = TrainingDataset( datasets=constituency_difference_records, cleaned_lookup=clean_lookup ) diff --git a/etl/epc/property_change_app.py b/etl/epc/property_change_app.py index c8923d6d..c985567d 100644 --- a/etl/epc/property_change_app.py +++ b/etl/epc/property_change_app.py @@ -16,6 +16,7 @@ def main(): epc_pipeline = EPCPipeline( directories=directories, + use_parallel=True, epc_data_processor=EPCDataProcessor(run_mode="training"), ) From 0ea8a40143e09ccb1b6b7c1061dba732e666318f Mon Sep 17 00:00:00 2001 From: Michael Duong Date: Fri, 22 Mar 2024 19:21:21 +0000 Subject: [PATCH 452/526] add requirements for pyarrow, add timestemp infromation to dataset for loose version control --- etl/epc/Pipeline.py | 16 ++++++++++------ etl/epc/generate_scenarios_data.py | 8 ++++++-- etl/epc/requirements.txt | 3 ++- 3 files changed, 18 insertions(+), 9 deletions(-) diff --git a/etl/epc/Pipeline.py b/etl/epc/Pipeline.py index c678c830..6abf05bd 100644 --- a/etl/epc/Pipeline.py +++ b/etl/epc/Pipeline.py @@ -1,5 +1,6 @@ import msgpack import pandas as pd +from datetime import datetime from typing import List from pathlib import Path @@ -82,9 +83,9 @@ class EPCPipeline: run_mode="training", epc_local_file="certificates.csv", epc_bucket_name="retrofit-data-dev", - epc_cleaning_dataset_key="sap_change_model/cleaning_dataset_rooms.parquet", - epc_all_equal_rows_key="sap_change_model/all_equal_rows_rooms.parquet", - epc_compiled_dataset_key="sap_change_model/dataset_rooms.parquet", + epc_cleaning_dataset_key="sap_change_model/{}/cleaning_dataset_rooms.parquet", + epc_all_equal_rows_key="sap_change_model/{}/all_equal_rows_rooms.parquet", + epc_compiled_dataset_key="sap_change_model/{}/dataset_rooms.parquet", use_parallel=False, ): """ @@ -107,10 +108,13 @@ class EPCPipeline: self.run_mode = run_mode self.epc_local_file = epc_local_file self.epc_bucket_name = epc_bucket_name - self.epc_cleaning_dataset_key = epc_cleaning_dataset_key - self.epc_all_equal_rows_key = epc_all_equal_rows_key - self.epc_compiled_dataset_key = epc_compiled_dataset_key + self.use_parallel = use_parallel + self.timeprefix = datetime.now().strftime("%Y-%m-%d-%H-%M-%S") + + self.epc_cleaning_dataset_key = epc_cleaning_dataset_key.format(self.timeprefix) + self.epc_all_equal_rows_key = epc_all_equal_rows_key.format(self.timeprefix) + self.epc_compiled_dataset_key = epc_compiled_dataset_key.format(self.timeprefix) def run(self): """ diff --git a/etl/epc/generate_scenarios_data.py b/etl/epc/generate_scenarios_data.py index 172e8a27..d5bece8b 100644 --- a/etl/epc/generate_scenarios_data.py +++ b/etl/epc/generate_scenarios_data.py @@ -20,6 +20,10 @@ from recommendations.Recommendations import Recommendations from utils.logger import setup_logger from utils.s3 import read_dataframe_from_s3_parquet, save_dataframe_to_s3_parquet +from datetime import datetime + +now = datetime.now().strftime("%d-%m-%Y-%H-%M-%S") + logger = setup_logger() logger.info("Connecting to db") @@ -132,7 +136,7 @@ for scenario_property in scenario_properties: p.get_components(cleaned, photo_supply_lookup, floor_area_decile_thresholds) recommender = Recommendations(property_instance=p, materials=materials) - property_recommendations = recommender.recommend() + property_recommendations = recommender.recommend("0") wall_recommendations = recommender.wall_recomender.recommendations loft_recommendations = recommender.roof_recommender.recommendations @@ -247,5 +251,5 @@ all_predictions = model_api.predict_all( save_dataframe_to_s3_parquet( recommendations_scoring_data, "retrofit-data-dev", - "scenario_data/recommendations_scoring_data.parquet", + f"scenario_data/{now}/recommendations_scoring_data.parquet", ) diff --git a/etl/epc/requirements.txt b/etl/epc/requirements.txt index 9f972bde..87148180 100644 --- a/etl/epc/requirements.txt +++ b/etl/epc/requirements.txt @@ -1,4 +1,5 @@ pandas==2.1.3 tqdm==4.66.1 msgpack==1.0.7 -boto3==1.29.6 \ No newline at end of file +boto3==1.29.6 +pyarrow==15.0.2 \ No newline at end of file From 724379a86d1bd9b79159f2f8f9e5d8abe9496f5f Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Tue, 26 Mar 2024 18:05:08 +0000 Subject: [PATCH 453/526] wrapping up ha analysis --- .../ha_15_32/ha_analysis_batch_3.py | 170 ++++++++++-------- 1 file changed, 94 insertions(+), 76 deletions(-) diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index 2f17ed73..e414cd00 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -5366,6 +5366,7 @@ def forecast_remaining_sales(loader): results = [] for ha_name, input_data in loader.data.items(): + # Original warmfront figures - ECO4 original_warmfront_estimates = december_figures[december_figures["HA Name"] == ha_name] if original_warmfront_estimates.empty: @@ -6032,7 +6033,7 @@ def forecast_remaining_sales(loader): def fml_data_pull(loader): has_bruh = [ "HA7", "HA14", "HA25", "HA39", "HA16", "HA28", "HA13", - "HA50", "HA24", "HA15", "HA32", "HA28", "HA6", "HA1", "HA107", "HA41", "HA48", "HA2", "HA63", "HA12", + "HA50", "HA24", "HA15", "HA32", "HA6", "HA1", "HA107", "HA41", "HA48", "HA2", "HA63", "HA12", "HA117", "HA35", "HA34", "HA56", "HA19", "HA18", "HA9", "HA27", "HA30", "HA31", "HA54", "HA49", 'HA8', 'HA11', 'HA21', 'HA37', 'HA42', 'HA44', 'HA45', 'HA51', 'HA52', "HA17", "HA5", "HA20", ] @@ -6129,7 +6130,7 @@ def fml_analysis(loader): assumed_ciga_pass_rate = 0.731 has_bruh = [ "HA7", "HA14", "HA25", "HA39", "HA16", "HA28", "HA13", - "HA50", "HA24", "HA15", "HA32", "HA28", "HA6", "HA1", "HA107", "HA41", "HA48", "HA2", "HA63", "HA12", + "HA50", "HA24", "HA15", "HA32", "HA6", "HA1", "HA107", "HA41", "HA48", "HA2", "HA63", "HA12", "HA117", "HA35", "HA34", "HA56", "HA19", "HA18", "HA9", "HA27", "HA30", "HA31", "HA54", "HA49", 'HA8', 'HA11', 'HA21', 'HA37', 'HA42', 'HA44', 'HA45', 'HA51', 'HA52', "HA17", "HA5", "HA20", ] @@ -6738,89 +6739,106 @@ def app(): loader = DataLoader(directories, december_figures_filepath, use_cache, rebuild_inputs) loader.load() loader.ha_facts_and_figures() - forecast_remaining_sales(loader) - conversion_rate = 0.95 - archetype_check_conversion = 0.7 - res = [] - for k, v in loader.data.items(): - asset_list = v["asset_list"].copy() - agg = asset_list["ECO Eligibility"].value_counts() - # We find a case where there are properties that have passed CIGA - if not any("passed" in x for x in agg.index): + # gbis rate + # breakdowns = [] + # for ha, data_assets in loader.data.items(): + # asset_list = data_assets["asset_list"].copy() + # breakdown = asset_list["ECO Eligibility"].value_counts().to_dict() + # breakdowns.append(breakdown) + # breakdowns = pd.DataFrame(breakdowns) + # + # installer = [] + # for ha, data_assets in loader.data.items(): + # survey_list = data_assets["survey_list"] + # if survey_list.empty: + # continue + # if "INSTALLER" not in survey_list.columns: + # continue + # + # installers = survey_list["INSTALLER"].value_counts().to_dict() + # installers["ha_name"] = ha + # installer.append(installers) + # installer = pd.DataFrame(installer) + # installer.drop(columns=["ha_name"]).sum().sum() + + # Adhoc - for HA16, get the properties that still need a CIGA check + asset_list_ha16 = loader.data["HA16"]["asset_list"].copy() + ha_16_need_ciga = asset_list_ha16[ + asset_list_ha16["ECO Eligibility"].str.contains("subject to ciga") + ] + completed_cigas = loader.data["HA16"]["ciga_list"].copy() + # Store the results + ha_16_need_ciga.to_csv("ha16_need_ciga.csv") + completed_cigas.to_csv("ha16_completed_cigas.csv") + + # Adhoc - look at the current pipeline and identify how many dormant, CIGA dependent properties there are for + # live projects + + # Read excel + orderbook_filepath = "local_data/ha_data/Warmfront HA client order book overview_20240129.xlsx" + orderbook_workbook = openpyxl.load_workbook(orderbook_filepath) + orderbook_sheet = orderbook_workbook["Contractual Info"] + orderbook_colnames = [cell.value for cell in orderbook_sheet[1]] + + rows = [] + for row in orderbook_sheet.iter_rows(min_row=2, values_only=False): + row_data = [cell.value for cell in row] # This will get you the cell values + rows.append(row_data) + + orderbook = pd.DataFrame(rows, columns=orderbook_colnames) + live_orderbook = orderbook[orderbook["Live, New, or Historic?"] == "LIVE"].copy() + live_orderbook['Redacted HA'] = live_orderbook['Redacted HA'].str.replace(" ", "") + + dormant_properties = [] + missed_has = [] + for _, customer in live_orderbook.iterrows(): + if customer['Redacted HA'] not in loader.data.keys(): + missed_has.append(customer['Redacted HA']) continue + asset_list = loader.data[customer['Redacted HA']]["asset_list"].copy() + survey_list = loader.data[customer['Redacted HA']]["survey_list"].copy() + # Remove sold + if not survey_list.empty: + survey_list = survey_list[~pd.isnull(survey_list["asset_list_row_id"])] + asset_list = asset_list.merge( + survey_list[["asset_list_row_id", "installation_status"]], + how="left", + on="asset_list_row_id" + ) + # Anything that has an installation has gone to installation, and therefore is not remaining + asset_list = asset_list[pd.isnull(asset_list["installation_status"])] + asset_list = asset_list.drop(columns=["installation_status"]) - agg = pd.DataFrame(agg).reset_index() - - passed_ciga = agg[agg["ECO Eligibility"] == "eco4 - passed ciga"] - passed_ciga = passed_ciga["count"].values[0] if not passed_ciga.empty else 0 - - failed_ciga = agg[agg["ECO Eligibility"] == "failed ciga"] - failed_ciga = failed_ciga["count"].values[0] if not failed_ciga.empty else 0 - - ciga_pass_rate = passed_ciga / (passed_ciga + failed_ciga) if (passed_ciga + failed_ciga) > 0 else 1 - - dormant_ciga = agg[ - agg["ECO Eligibility"].str.contains("subject to ciga") & - ~agg["ECO Eligibility"].str.contains("subject to archetype") + # We pull out the properties that need a CIGA check + need_ciga = asset_list[asset_list["ECO Eligibility"] == "eco4 (subject to ciga)"] + need_archetype = asset_list[asset_list["ECO Eligibility"] == "eco4 (subject to archetype)"] + need_ciga_and_archetype = asset_list[ + asset_list["ECO Eligibility"] == "eco4 (subject to ciga) (subject to archetype)" ] - dormant_ciga = dormant_ciga['count'].values[0] if not dormant_ciga.empty else 0 - - dormant_ciga_archetype = agg[ - agg["ECO Eligibility"].str.contains("subject to ciga") & - agg["ECO Eligibility"].str.contains("subject to archetype") - ] - - dormant_ciga_archetype = dormant_ciga_archetype['count'].values[0] if not dormant_ciga_archetype.empty else 0 - - needing_check = dormant_ciga + dormant_ciga_archetype * archetype_check_conversion - needing_check = np.round(needing_check) - - additional_jobs = (dormant_ciga * ciga_pass_rate * conversion_rate) + ( - dormant_ciga_archetype * archetype_check_conversion * ciga_pass_rate * conversion_rate - ) - additional_jobs = np.round(additional_jobs) - - # We attempt to estimate the uplift and how much of that is attributed to surplus subject to ciga jobs - original_estimate = loader.december_figures[ - loader.december_figures["HA Name"] == k - ] - - original_estimate = original_estimate["ECO4"].values[0] if not original_estimate.empty else 0 - base_eco_figures = agg[ - agg["ECO Eligibility"].isin(["eco4", "eco4 - passed ciga"]) - ]["count"].sum() - eco4_from_ciga = original_estimate - base_eco_figures - eco4_from_ciga = eco4_from_ciga if eco4_from_ciga > 0 else 0 - surplus_from_dormant = additional_jobs - eco4_from_ciga - surplus_from_dormant = 0 if surplus_from_dormant < 0 else surplus_from_dormant - - res.append( + dormant_properties.append( { - "ha_name": k, - "additional_eco4": additional_jobs, - "needing_check": needing_check, - "surplus_from_dormant": surplus_from_dormant + "HA Name": customer['Redacted HA'], + "Need CIGA": need_ciga.shape[0], + "Need Archetype": need_archetype.shape[0], + "Need CIGA and Archetype": need_ciga_and_archetype.shape[0] } ) - res = pd.DataFrame(res) - # Drop the HAs that are not in that pervious draft - # In the v2 draft, there are 12 HAs + dormant_properties = pd.DataFrame(dormant_properties) + totals = dormant_properties.sum() + totals["HA Name"] = "Total" - v5_surplus = res[ - ~res["ha_name"].isin(["HA9"]) - ]["additional_eco4"].sum() - # 7212 properties - # This is not a perfect difference though, because of the variations in how the numbers are recorded in the November - # all HAs sheet. E.g for HA 107, there were 1239 properties identified. In the postcode list, there are 1255, - # however 531 are still needing a CIGA check. Therefore their original figures, in this case, included properties - # pre-CIGA + dormant_properties = pd.concat([dormant_properties, totals.to_frame().T]) + dormant_properties.to_csv("dormant_properties.csv") - v5_surplus_from_dormant = res[ - ~res["ha_name"].isin(["HA9"]) - ]["surplus_from_dormant"].sum() - # 5539.0 - # 9471690 + loader.december_figures["ECO4 remaining"].sum() + december_figures = loader.december_figures.copy() + december_figures["ECO4 remaining"] = np.where( + december_figures["ECO4 remaining"] < 0, + 0, + december_figures["ECO4 remaining"] + ) + december_figures["ECO4 remaining"].sum() From ebb28236617abff1e3a5f91dd6b06b66a001a4d7 Mon Sep 17 00:00:00 2001 From: Michael Duong Date: Wed, 27 Mar 2024 11:39:51 +0000 Subject: [PATCH 454/526] override scenerio data to have average insulation thickness, change impact values --- etl/epc/generate_scenarios_data.py | 48 +++++++++++++++++++++++++----- 1 file changed, 41 insertions(+), 7 deletions(-) diff --git a/etl/epc/generate_scenarios_data.py b/etl/epc/generate_scenarios_data.py index d5bece8b..f9f66034 100644 --- a/etl/epc/generate_scenarios_data.py +++ b/etl/epc/generate_scenarios_data.py @@ -54,9 +54,19 @@ scenario_properties = [ "postcode": "NN1 5JY", "lmk-key": "1459796789102016070507274146560098", "measures": [ - [["internal_wall_insulation"], "11", None, [0]], - [["external_wall_insulation"], "10", None, [0]], - [["solar", "windows"], "12-15", {"photo_supply_ending": 50}, [0, 1]], + [ + ["internal_wall_insulation"], + "11", + {"walls_insulation_thickness_ending": "average"}, + [0], + ], + [ + ["external_wall_insulation"], + "10", + {"walls_insulation_thickness_ending": "average"}, + [0], + ], + [["solar", "windows"], "15", {"photo_supply_ending": 50}, [0, 1]], ], }, { @@ -64,7 +74,12 @@ scenario_properties = [ "postcode": "HP1 2HA", "lmk-key": "c14029235739827d5f627dc8aa9bb567d026b267e851e0db0001db24638667b1", "measures": [ - [["cavity_wall_insulation", "loft_insulation"], "15", None, [0, 1]], + [ + ["cavity_wall_insulation", "loft_insulation"], + "15", + {"walls_insulation_thickness_ending": "average"}, + [0, 1], + ], ], }, { @@ -72,7 +87,12 @@ scenario_properties = [ "postcode": "HP1 2HE", "lmk-key": "99296a6dda21314fef3a61cda59e441e9a2aacf115eb96f4a0fa85696bf7b117", "measures": [ - [["cavity_wall_insulation", "loft_insulation"], "15", None, [0, 1]], + [ + ["cavity_wall_insulation", "loft_insulation"], + "15", + {"walls_insulation_thickness_ending": "average"}, + [0, 1], + ], ], }, { @@ -80,7 +100,12 @@ scenario_properties = [ "postcode": "HP1 2AN", "lmk-key": "d1e0534be3a44c33003323b21d0e322e3daddc65b5ee71936f89c59ddab96b50", "measures": [ - [["cavity_wall_insulation", "loft_insulation"], "15", None, [0, 1]], + [ + ["cavity_wall_insulation", "loft_insulation"], + "15", + {"walls_insulation_thickness_ending": "average"}, + [0, 1], + ], ], }, { @@ -88,11 +113,17 @@ scenario_properties = [ "postcode": "HP1 2HX", "lmk-key": "1eae354db522a95188018d9cd0502ed8c609910b6c88f8797d3a25f59b11770a", "measures": [ - [["cavity_wall_insulation", "loft_insulation"], "15", None, [0, 1]], + [ + ["cavity_wall_insulation", "loft_insulation"], + "15", + {"walls_insulation_thickness_ending": "average"}, + [0, 1], + ], ], }, ] + recommendations_scoring_data = [] for scenario_property in scenario_properties: @@ -217,6 +248,9 @@ for scenario_property in scenario_properties: recommendations_scoring_data.extend(scoring_list) recommendations_scoring_data = pd.DataFrame(recommendations_scoring_data) +recommendations_scoring_data["impact"] = recommendations_scoring_data["impact"].astype( + int +) recommendations_scoring_data = recommendations_scoring_data.drop( columns=[ "rdsap_change", From dbeba4db43645ee999eb49f40c0359457ae0f703 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Wed, 27 Mar 2024 18:12:57 +0000 Subject: [PATCH 455/526] set up first basic asset list for gla demo --- etl/customers/gla_croydon_demo/asset_list.py | 145 ++++++++++++++++++ .../ha_15_32/ha_analysis_batch_3.py | 109 ++++++++++--- 2 files changed, 232 insertions(+), 22 deletions(-) create mode 100644 etl/customers/gla_croydon_demo/asset_list.py diff --git a/etl/customers/gla_croydon_demo/asset_list.py b/etl/customers/gla_croydon_demo/asset_list.py new file mode 100644 index 00000000..526c34a0 --- /dev/null +++ b/etl/customers/gla_croydon_demo/asset_list.py @@ -0,0 +1,145 @@ +import pandas as pd +from utils.s3 import save_csv_to_s3 + +USER_ID = 8 +PORTFOLIO_ID = 67 + + +def app(): + """ + We shall define a small portfolio of properties, based in Croydon + :return: + """ + + # Firstly, read in the EPC data for Croydon + epc_data = pd.read_csv( + "local_data/all-domestic-certificates/domestic-E09000008-Croydon/certificates.csv", + low_memory=False + ) + + # Filter on entries where we have a UPRN + epc_data = epc_data[~pd.isnull(epc_data["UPRN"])] + + # Get the newest EPC for each UPRN. We use LODGEMENT_DATE as a proxy for this + epc_data["LODGEMENT_DATE"] = pd.to_datetime(epc_data["LODGEMENT_DATE"]) + + epc_data = epc_data.sort_values("LODGEMENT_DATE", ascending=False).drop_duplicates("UPRN") + + # Now filter on social properties + epc_data = epc_data[epc_data["TENURE"].isin(["rental (social)", "Rented (social)"])] + # There are 17337 properties with a registered EPC in Croydon + # Take below EPC C properties + epc_data = epc_data[epc_data["CURRENT_ENERGY_EFFICIENCY"].astype(int) < 69] + # 7994 properties are below EPC C (46%) + + # 79% D, 19% E, 1% F, 0.2% G - it probably makes the most sense to focus on E and D properties + epc_data["CURRENT_ENERGY_RATING"].value_counts(normalize=True) + + # For the purpose of the sample, take the properties have surveys done in the last 2 years + # This gives us 1023 remaining properties + two_years_ago = pd.Timestamp.now() - pd.DateOffset(days=int(2.5 * 365)) + epc_data = epc_data[epc_data["LODGEMENT_DATE"] >= two_years_ago] + + # Archetype 1: defined below: + # 1) House + # 2) Unfilled cavity + # 3) A roof that could be insulated (flat or pitched with no more than 50mm insulation) + # 4) EPC E + # Different buckets of properties + archetype_1_sample = epc_data[ + epc_data["PROPERTY_TYPE"].isin(["House"]) & + (epc_data["CURRENT_ENERGY_RATING"] == "E") & + epc_data["WALLS_DESCRIPTION"].isin(["Cavity wall, as built, no insulation (assumed)"]) & + epc_data["ROOF_DESCRIPTION"].isin( + [ + "Pitched, 12 mm loft insulation", + "Pitched, 0 mm loft insulation", + "Pitched, no insulation", + "Pitched, 50 mm loft insulation", + "Flat, no insulation (assumed)", + "Pitched, no insulation (assumed)" + ] + ) + ] + archetype_1_sample_asset_list = archetype_1_sample[["UPRN", "ADDRESS1", "POSTCODE"]].copy() + archetype_1_sample_asset_list["ARCHETYPE"] = "Archetype 1" + + # Archetype 2: defined below: + # 1) Flat + # 2) Unfilled cavity + # 3) Another property above + # 4) EPC E + archetype_2_sample = epc_data[ + epc_data["PROPERTY_TYPE"].isin(["Flat"]) & + (epc_data["CURRENT_ENERGY_RATING"] == "E") & + epc_data["WALLS_DESCRIPTION"].isin(["Cavity wall, as built, no insulation (assumed)"]) & + epc_data["ROOF_DESCRIPTION"].isin( + [ + "(another dwelling above)" + ] + ) + ] + archetype_2_sample_asset_list = archetype_2_sample[["UPRN", "ADDRESS1", "POSTCODE"]].copy() + archetype_2_sample_asset_list["ARCHETYPE"] = "Archetype 2" + + # Archetype 3: defined below: + # 1) EPC F + # 2) Solid brick wall + # 3) House + # 4) Pitched roof with no insulation + # Just 1 property (more expensive to retrofit) + archetype_3_sample = epc_data[ + epc_data["PROPERTY_TYPE"].isin(["House"]) & + (epc_data["CURRENT_ENERGY_RATING"] == "F") & + epc_data["ROOF_DESCRIPTION"].isin(["Pitched, no insulation"]) + ] + archetype_3_sample_asset_list = archetype_3_sample[["UPRN", "ADDRESS1", "POSTCODE"]].copy() + archetype_3_sample_asset_list["ARCHETYPE"] = "Archetype 3" + + # Archetype 4: defined below: + # 1) Maisonette + # 2) Empty cavity + # 3) EPC E + # 14 properties here + archetype_4_sample = epc_data[ + epc_data["PROPERTY_TYPE"].isin(["Maisonette"]) & + epc_data["WALLS_DESCRIPTION"].isin(["Cavity wall, as built, no insulation (assumed)"]) + ] + archetype_4_sample_asset_list = archetype_4_sample[["UPRN", "ADDRESS1", "POSTCODE"]].copy() + archetype_4_sample_asset_list["ARCHETYPE"] = "Archetype 4" + + asset_list = pd.concat( + [ + archetype_1_sample_asset_list, + archetype_2_sample_asset_list, + archetype_3_sample_asset_list, + archetype_4_sample_asset_list + ] + ) + + asset_list = asset_list.rename( + columns={ + "UPRN": "uprn", + "ADDRESS1": "address", + "POSTCODE": "postcode", + "ARCHETYPE": "archetype" + } + ) + + filename = f"{USER_ID}/{PORTFOLIO_ID}/inputs.csv" + save_csv_to_s3( + dataframe=asset_list, + bucket_name="retrofit-plan-inputs-dev", + file_name=filename + ) + + body = { + "portfolio_id": str(PORTFOLIO_ID), + "housing_type": "Social", + "goal": "Increase EPC", + "goal_value": "C", + "trigger_file_path": filename, + "budget": None, + "exclusions": ["floor_insulation"] + } + print(body) diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index e414cd00..b4b82d0b 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -6692,6 +6692,92 @@ def create_final_report(): revenue.to_csv("HA Analysis Final - revenue.csv") +def identify_eco_works(loader): + # ha_names = [ + # "HA16", # For Housing + # "HA39", # Rooftop + # "HA41", # Settle + # "HA23", # Lambeth + # "HA14", # EMH + # "HA7", # Believe + # "HA102", # Thrive + # ] + + # Unitas, fairhive, acis, LHP + ha_names = [ + "HA50", # Unitas + "HA15", # Fairhive + "HA107", # ACIS + "HA24", # LHP + ] + names = { + "HA50": "Unitas", + "HA15": "Fairhive", + "HA107": "ACIS", + "HA24": "LHP" + } + + # gbis rate + breakdowns = [] + # lists = {} + for ha, data_assets in loader.data.items(): + if ha not in ha_names: + continue + + asset_list = data_assets["asset_list"].copy() + survey_list = data_assets["survey_list"].copy() + # Remove things that have sold + if not survey_list.empty: + asset_list = asset_list.merge( + survey_list[["asset_list_row_id", "installation_status"]], + how="left", + on="asset_list_row_id" + ) + # Anything that has an installation has gone to installation, and therefore is not remaining + asset_list = asset_list[pd.isnull(asset_list["installation_status"])] + asset_list = asset_list.drop(columns=["installation_status"]) + + # Needing a CIGA check + needs_cga = asset_list[ + asset_list["ECO Eligibility"] == "eco4 (subject to ciga)" + ].copy() + + eco4 = asset_list[ + asset_list["ECO Eligibility"] == "eco4" + ].copy() + + eco4_passed_ciga = asset_list[ + asset_list["ECO Eligibility"] == "eco4 - passed ciga" + ].copy() + + # lists[ha] = { + # "needs_cga": needs_cga, + # "eco4": eco4, + # "eco4_passed_ciga": eco4_passed_ciga + # } + + # Store the data + if not needs_cga.empty: + needs_cga.to_csv(f"local_data/{names[ha]} - needs ciga.csv") + + if not eco4.empty: + eco4.to_csv(f"local_data/{names[ha]} - eco4.csv") + + if not eco4_passed_ciga.empty: + eco4_passed_ciga.to_csv(f"local_data/{names[ha]} - eco4 passed ciga.csv") + + summary = { + "HA Name": ha, + "n_needing_ciga": needs_cga.shape[0], + "eco4": eco4.shape[0], + "eco4_passed_ciga": eco4_passed_ciga.shape[0] + } + + breakdowns.append(summary) + breakdowns = pd.DataFrame(breakdowns) + breakdowns = breakdowns.fillna(0) + + def app(): """ This app contains the housin association analysis for HAs 1, 6, 14, 39 and 107. @@ -6739,29 +6825,8 @@ def app(): loader = DataLoader(directories, december_figures_filepath, use_cache, rebuild_inputs) loader.load() loader.ha_facts_and_figures() - forecast_remaining_sales(loader) - # gbis rate - # breakdowns = [] - # for ha, data_assets in loader.data.items(): - # asset_list = data_assets["asset_list"].copy() - # breakdown = asset_list["ECO Eligibility"].value_counts().to_dict() - # breakdowns.append(breakdown) - # breakdowns = pd.DataFrame(breakdowns) - # - # installer = [] - # for ha, data_assets in loader.data.items(): - # survey_list = data_assets["survey_list"] - # if survey_list.empty: - # continue - # if "INSTALLER" not in survey_list.columns: - # continue - # - # installers = survey_list["INSTALLER"].value_counts().to_dict() - # installers["ha_name"] = ha - # installer.append(installers) - # installer = pd.DataFrame(installer) - # installer.drop(columns=["ha_name"]).sum().sum() + forecast_remaining_sales(loader) # Adhoc - for HA16, get the properties that still need a CIGA check asset_list_ha16 = loader.data["HA16"]["asset_list"].copy() From d34a4d4d963d349877d63a44753549186247a64d Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Thu, 28 Mar 2024 14:32:29 +0000 Subject: [PATCH 456/526] allowing passage of uprn to Searcher in api --- .idea/Model.iml | 2 +- .idea/misc.xml | 2 +- backend/app/plan/router.py | 4 ++++ backend/app/plan/schemas.py | 2 ++ 4 files changed, 8 insertions(+), 2 deletions(-) diff --git a/.idea/Model.iml b/.idea/Model.iml index b0f9c00d..4413bb06 100644 --- a/.idea/Model.iml +++ b/.idea/Model.iml @@ -7,7 +7,7 @@ - + diff --git a/.idea/misc.xml b/.idea/misc.xml index 1122b380..6f308057 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -3,7 +3,7 @@ - + diff --git a/backend/app/plan/router.py b/backend/app/plan/router.py index 0b98cf2c..5456cdb6 100644 --- a/backend/app/plan/router.py +++ b/backend/app/plan/router.py @@ -91,10 +91,14 @@ async def trigger_plan(body: PlanTriggerRequest): input_properties = [] for config in tqdm(plan_input): # We validate each record in the file. If the record is NOT valid, we need to handle this accordingly + uprn = config.get("uprn", None) + if uprn: + uprn = int(float(uprn)) epc_searcher = SearchEpc( address1=config["address"], postcode=config["postcode"], + uprn=uprn, auth_token=get_settings().EPC_AUTH_TOKEN, os_api_key=get_settings().ORDNANCE_SURVEY_API_KEY ) diff --git a/backend/app/plan/schemas.py b/backend/app/plan/schemas.py index 9801375f..1e95fb2f 100644 --- a/backend/app/plan/schemas.py +++ b/backend/app/plan/schemas.py @@ -8,3 +8,5 @@ class PlanTriggerRequest(BaseModel): goal_value: str portfolio_id: int trigger_file_path: str + # optional exclusions list + exclusions: list[str] | None = None From 91eb9c68f1600970541606fdae3869d19ee724cb Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Thu, 28 Mar 2024 14:49:19 +0000 Subject: [PATCH 457/526] Adding validation to PlanTriggerRequest --- backend/app/plan/schemas.py | 47 +++++++++++++-- recommendations/Recommendations.py | 94 +++++++++++++++++------------- 2 files changed, 95 insertions(+), 46 deletions(-) diff --git a/backend/app/plan/schemas.py b/backend/app/plan/schemas.py index 1e95fb2f..c13e754e 100644 --- a/backend/app/plan/schemas.py +++ b/backend/app/plan/schemas.py @@ -1,12 +1,51 @@ -from pydantic import BaseModel +from pydantic import BaseModel, conlist, validator +from typing import Optional class PlanTriggerRequest(BaseModel): - budget: float | None = None + budget: Optional[float] = None goal: str housing_type: str goal_value: str portfolio_id: int trigger_file_path: str - # optional exclusions list - exclusions: list[str] | None = None + exclusions: Optional[conlist(str, min_items=1)] = None + + # Pre-defined list of possibilities for exclusions + _allowed_exclusions = { + "wall_insulation", + "ventilation", + "roof_insulation", + "floor_insulation", + "windows", + "fireplace", + "heating", + "hot_water", + "lighting", + "solar_pv" + } + + _allowed_goals = {"Increase EPC"} + + _allowed_housing_types = {"Social", "Private"} + + # Validator to ensure exclusions are within the pre-defined possibilities + @validator('exclusions', each_item=True) + def check_exclusions(self, v): + if v not in self._allowed_exclusions: + raise ValueError(f"{v} is not an allowed exclusion") + return v + + # Validator to ensure that the goal is within the pre-defined possibilities + @validator('goal') + def check_goal(self, v): + if v not in self._allowed_goals: + raise ValueError(f"{v} is not a valid goal") + return v + + # Validator to ensure that the housing type is within the pre-defined possibilities + @validator('housing_type') + def check_housing_type(self, v): + if v not in self.allowed_housing_types: + raise ValueError(f"{v} is not a valid housing type") + return v diff --git a/recommendations/Recommendations.py b/recommendations/Recommendations.py index 9f838e1c..d3436ef0 100644 --- a/recommendations/Recommendations.py +++ b/recommendations/Recommendations.py @@ -22,7 +22,8 @@ class Recommendations: def __init__( self, property_instance: Property, - materials: List + materials: List, + exclusions: List[str] = None, ): """ :param property_instance: Instance of the Property class, for the home associated to property_id @@ -31,6 +32,7 @@ class Recommendations: self.property_instance = property_instance self.materials = materials + self.exclusions = exclusions if exclusions else [] self.floor_recommender = FloorRecommendations(property_instance=property_instance, materials=materials) self.wall_recomender = WallRecommendations(property_instance=property_instance, materials=materials) @@ -58,67 +60,75 @@ class Recommendations: property_recommendations = [] phase = 0 - print("WALL RECOMMENDATIONS HAVE BEEN COMMENTED OUT TEMPORARILY - ADD ME BACK IN") - if portfolio_id != 66: - # Building Fabric + # Building Fabric + if "wall_insulation" not in self.exclusions: self.wall_recomender.recommend(phase=phase) if self.wall_recomender.recommendations: property_recommendations.append(self.wall_recomender.recommendations) phase += 1 - # Ventilation recommendations - # We only produce a ventilation recommendation if the property is recommended to have wall or roof - # insulation - # We will not attribute a SAP impact to the ventilation recommendation, since we've seen that this has no - # real impact on the SAP score. Therefore, we don't need to include phasing for ventilation. If we have any - # wall or roof recommendations, we will ensure that ventilation is included in the simulation + # Ventilation recommendations + # We only produce a ventilation recommendation if the property is recommended to have wall or roof + # insulation + # We will not attribute a SAP impact to the ventilation recommendation, since we've seen that this has no + # real impact on the SAP score. Therefore, we don't need to include phasing for ventilation. If we have any + # wall or roof recommendations, we will ensure that ventilation is included in the simulation + if "ventilation" not in self.exclusions: if self.wall_recomender.recommendations or self.roof_recommender.recommendations: self.ventilation_recomender.recommend() if self.ventilation_recomender.recommendation: property_recommendations.append(self.ventilation_recomender.recommendation) - self.roof_recommender.recommend(phase=phase) - if self.roof_recommender.recommendations: - property_recommendations.append(self.roof_recommender.recommendations) - phase += 1 + if "roof_insulation" not in self.exclusions: + self.roof_recommender.recommend(phase=phase) + if self.roof_recommender.recommendations: + property_recommendations.append(self.roof_recommender.recommendations) + phase += 1 - self.floor_recommender.recommend(phase=phase) - if self.floor_recommender.recommendations: - property_recommendations.append(self.floor_recommender.recommendations) - phase += 1 + if "floor_insulation" not in self.exclusions: + self.floor_recommender.recommend(phase=phase) + if self.floor_recommender.recommendations: + property_recommendations.append(self.floor_recommender.recommendations) + phase += 1 - self.windows_recommender.recommend(phase=phase) - if self.windows_recommender.recommendation: - property_recommendations.append(self.windows_recommender.recommendation) - phase += 1 + if "windows" not in self.exclusions: + self.windows_recommender.recommend(phase=phase) + if self.windows_recommender.recommendation: + property_recommendations.append(self.windows_recommender.recommendation) + phase += 1 - self.fireplace_recommender.recommend(phase=phase) - if self.fireplace_recommender.recommendation: - property_recommendations.append(self.fireplace_recommender.recommendation) - phase += 1 + if "fireplace" not in self.exclusions: + self.fireplace_recommender.recommend(phase=phase) + if self.fireplace_recommender.recommendation: + property_recommendations.append(self.fireplace_recommender.recommendation) + phase += 1 # Heating and Electical systems - self.heating_recommender.recommend(phase=phase) - if self.heating_recommender.recommendations: - property_recommendations.append(self.heating_recommender.recommendations) - phase += 1 + if "heating" not in self.exclusions: + self.heating_recommender.recommend(phase=phase) + if self.heating_recommender.recommendations: + property_recommendations.append(self.heating_recommender.recommendations) + phase += 1 # Hot water - self.hotwater_recommender.recommend(phase=phase) - if self.hotwater_recommender.recommendations: - property_recommendations.append(self.hotwater_recommender.recommendations) - phase += 1 + if "hot_water" not in self.exclusions: + self.hotwater_recommender.recommend(phase=phase) + if self.hotwater_recommender.recommendations: + property_recommendations.append(self.hotwater_recommender.recommendations) + phase += 1 - self.lighting_recommender.recommend(phase=phase) - if self.lighting_recommender.recommendation: - property_recommendations.append(self.lighting_recommender.recommendation) - phase += 1 + if "lighting" not in self.exclusions: + self.lighting_recommender.recommend(phase=phase) + if self.lighting_recommender.recommendation: + property_recommendations.append(self.lighting_recommender.recommendation) + phase += 1 # Renewables - self.solar_recommender.recommend(phase=phase) - if self.solar_recommender.recommendation: - property_recommendations.append(self.solar_recommender.recommendation) - phase += 1 + if "solar_pv" not in self.exclusions: + self.solar_recommender.recommend(phase=phase) + if self.solar_recommender.recommendation: + property_recommendations.append(self.solar_recommender.recommendation) + phase += 1 # We insert temporary ids into the recommendations which is important for the optimiser later property_recommendations = self.insert_temp_recommendation_id(property_recommendations) From 22a3e21f523b79da4ec65fa12d8d901242c5cfb6 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Thu, 28 Mar 2024 14:52:24 +0000 Subject: [PATCH 458/526] update validation of PlanTriggerRequest to use cls rather than self --- backend/app/plan/router.py | 4 +--- backend/app/plan/schemas.py | 12 ++++++------ recommendations/Recommendations.py | 2 +- 3 files changed, 8 insertions(+), 10 deletions(-) diff --git a/backend/app/plan/router.py b/backend/app/plan/router.py index 5456cdb6..e25c04a5 100644 --- a/backend/app/plan/router.py +++ b/backend/app/plan/router.py @@ -170,9 +170,7 @@ async def trigger_plan(body: PlanTriggerRequest): p.get_components(cleaned, photo_supply_lookup, floor_area_decile_thresholds) recommender = Recommendations(property_instance=p, materials=materials) - # TODO: portfolio id as an input is temp - print("DELETE PORTFOLIO ID AS AN INPUT!!") - property_recommendations, property_representative_recommendations = recommender.recommend(body.portfolio_id) + property_recommendations, property_representative_recommendations = recommender.recommend() if not property_recommendations: continue diff --git a/backend/app/plan/schemas.py b/backend/app/plan/schemas.py index c13e754e..b8a99704 100644 --- a/backend/app/plan/schemas.py +++ b/backend/app/plan/schemas.py @@ -31,21 +31,21 @@ class PlanTriggerRequest(BaseModel): # Validator to ensure exclusions are within the pre-defined possibilities @validator('exclusions', each_item=True) - def check_exclusions(self, v): - if v not in self._allowed_exclusions: + def check_exclusions(cls, v): + if v not in cls._allowed_exclusions: raise ValueError(f"{v} is not an allowed exclusion") return v # Validator to ensure that the goal is within the pre-defined possibilities @validator('goal') - def check_goal(self, v): - if v not in self._allowed_goals: + def check_goal(cls, v): + if v not in cls._allowed_goals: raise ValueError(f"{v} is not a valid goal") return v # Validator to ensure that the housing type is within the pre-defined possibilities @validator('housing_type') - def check_housing_type(self, v): - if v not in self.allowed_housing_types: + def check_housing_type(cls, v): + if v not in cls._allowed_housing_types: raise ValueError(f"{v} is not a valid housing type") return v diff --git a/recommendations/Recommendations.py b/recommendations/Recommendations.py index d3436ef0..b2e6d991 100644 --- a/recommendations/Recommendations.py +++ b/recommendations/Recommendations.py @@ -47,7 +47,7 @@ class Recommendations: self.heating_recommender = HeatingRecommender(property_instance=property_instance) self.hotwater_recommender = HotwaterRecommendations(property_instance=property_instance) - def recommend(self, portfolio_id): + def recommend(self): """ This method runs the recommendations for the individual measures and then appends them to a list for output From 8dbd69eef9140efdb3feab6933f195c762a2ba8c Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Thu, 28 Mar 2024 15:54:31 +0000 Subject: [PATCH 459/526] Updating router for chunked scoring --- backend/Property.py | 2 +- backend/app/plan/router.py | 36 ++++++++++++++++++++++++++---------- 2 files changed, 27 insertions(+), 11 deletions(-) diff --git a/backend/Property.py b/backend/Property.py index f86e33dc..d97ce8cf 100644 --- a/backend/Property.py +++ b/backend/Property.py @@ -233,7 +233,7 @@ class Property: output["walls_thermal_transmittance_ending"] = recommendation["new_u_value"] # Setting the insulation thickness here to above average should be tested further because we # don't see a high volume of instances for this - output["walls_insulation_thickness_ending"] = "above average" + output["walls_insulation_thickness_ending"] = "average" output["walls_energy_eff_ending"] = "Good" # Note: often when the wall is insulatied, the internal/external insulation is not noted so we should diff --git a/backend/app/plan/router.py b/backend/app/plan/router.py index e25c04a5..bcbc4332 100644 --- a/backend/app/plan/router.py +++ b/backend/app/plan/router.py @@ -41,6 +41,7 @@ from backend.ml_models.Valuation import PropertyValuation logger = setup_logger() BATCH_SIZE = 5 +SCORING_BATCH_SIZE = 400 def patch_epc(config, epc_records): @@ -164,7 +165,7 @@ async def trigger_plan(body: PlanTriggerRequest): recommendations = {} recommendations_scoring_data = [] representative_recommendations = {} - for p in input_properties: + for p in tqdm(input_properties): # Property recommendations p.get_components(cleaned, photo_supply_lookup, floor_area_decile_thresholds) @@ -196,15 +197,30 @@ async def trigger_plan(body: PlanTriggerRequest): model_api = ModelApi(portfolio_id=body.portfolio_id, timestamp=created_at) - all_predictions = model_api.predict_all( - df=recommendations_scoring_data, - bucket=get_settings().DATA_BUCKET, - prediction_buckets={ - "sap_change_predictions": get_settings().SAP_PREDICTIONS_BUCKET, - "heat_demand_predictions": get_settings().HEAT_PREDICTIONS_BUCKET, - "carbon_change_predictions": get_settings().CARBON_PREDICTIONS_BUCKET - } - ) + all_predictions = { + "sap_change_predictions": pd.DataFrame(), + "heat_demand_predictions": pd.DataFrame(), + "carbon_change_predictions": pd.DataFrame() + } + to_loop_over = range(0, recommendations_scoring_data.shape[0], SCORING_BATCH_SIZE) + for chunk in tqdm(to_loop_over, total=len(to_loop_over)): + predictions_dict = model_api.predict_all( + df=recommendations_scoring_data.iloc[chunk:chunk + SCORING_BATCH_SIZE], + bucket=get_settings().DATA_BUCKET, + prediction_buckets={ + "sap_change_predictions": get_settings().SAP_PREDICTIONS_BUCKET, + "heat_demand_predictions": get_settings().HEAT_PREDICTIONS_BUCKET, + "carbon_change_predictions": get_settings().CARBON_PREDICTIONS_BUCKET + } + ) + + # Append the predictions to the predictions dictionary + for key, scored in predictions_dict.items(): + all_predictions[key] = pd.concat([all_predictions[key], scored]) + + # TODO: TEMP + # all_predictions["heat_demand_predictions"] = all_predictions["sap_change_predictions"].copy() + # all_predictions["carbon_change_predictions"] = all_predictions["sap_change_predictions"].copy() # Insert the predictions into the recommendations and run the optimiser # TODO: If a recommendation has a negative impact on SAP, we should remove it - this seems to have become a From bd15ce65c2b05cdffe7304121d1fd8282fea55cb Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Thu, 28 Mar 2024 16:29:23 +0000 Subject: [PATCH 460/526] debugging optimisation with ventilation, when ventilation already exists --- backend/app/plan/router.py | 16 +++++++++------- recommendations/Recommendations.py | 18 ++++++++++-------- 2 files changed, 19 insertions(+), 15 deletions(-) diff --git a/backend/app/plan/router.py b/backend/app/plan/router.py index bcbc4332..a0d93190 100644 --- a/backend/app/plan/router.py +++ b/backend/app/plan/router.py @@ -170,7 +170,7 @@ async def trigger_plan(body: PlanTriggerRequest): # Property recommendations p.get_components(cleaned, photo_supply_lookup, floor_area_decile_thresholds) - recommender = Recommendations(property_instance=p, materials=materials) + recommender = Recommendations(property_instance=p, materials=materials, exclusions=body.exclusions) property_recommendations, property_representative_recommendations = recommender.recommend() if not property_recommendations: @@ -196,6 +196,7 @@ async def trigger_plan(body: PlanTriggerRequest): ) model_api = ModelApi(portfolio_id=body.portfolio_id, timestamp=created_at) + # model_api.MODEL_PREFIXES = ["sap_change_predictions"] all_predictions = { "sap_change_predictions": pd.DataFrame(), @@ -274,14 +275,15 @@ async def trigger_plan(body: PlanTriggerRequest): if any(x in [r["type"] for r in solution] for x in [ "internal_wall_insulation", "external_wall_insulation", "cavity_wall_insulation" ]): - ventilation_rec = [ - r for r in recommendations_with_impact if r[0]["type"] == "mechanical_ventilation" - ][0] - - selected_recommendations = set( - list(selected_recommendations) + [ventilation_rec[0]["recommendation_id"]] + ventilation_rec = next( + (r[0] for r in recommendations_with_impact if r[0]["type"] == "mechanical_ventilation"), + None ) + # If a matching recommendation was found, add its ID to the selected recommendations + if ventilation_rec: + selected_recommendations.add(ventilation_rec["recommendation_id"]) + # We check if the selected recommendation is wall ventilation and if so, we make sure # mechanical ventilation is selected diff --git a/recommendations/Recommendations.py b/recommendations/Recommendations.py index b2e6d991..944fec7a 100644 --- a/recommendations/Recommendations.py +++ b/recommendations/Recommendations.py @@ -67,11 +67,19 @@ class Recommendations: property_recommendations.append(self.wall_recomender.recommendations) phase += 1 + if "roof_insulation" not in self.exclusions: + self.roof_recommender.recommend(phase=phase) + if self.roof_recommender.recommendations: + property_recommendations.append(self.roof_recommender.recommendations) + phase += 1 + # Ventilation recommendations # We only produce a ventilation recommendation if the property is recommended to have wall or roof # insulation - # We will not attribute a SAP impact to the ventilation recommendation, since we've seen that this has no - # real impact on the SAP score. Therefore, we don't need to include phasing for ventilation. If we have any + # We will not attribute a SAP impact to the ventilation recommendation, since we've seen that this + # has no + # real impact on the SAP score. Therefore, we don't need to include phasing for ventilation. If we + # have any # wall or roof recommendations, we will ensure that ventilation is included in the simulation if "ventilation" not in self.exclusions: if self.wall_recomender.recommendations or self.roof_recommender.recommendations: @@ -79,12 +87,6 @@ class Recommendations: if self.ventilation_recomender.recommendation: property_recommendations.append(self.ventilation_recomender.recommendation) - if "roof_insulation" not in self.exclusions: - self.roof_recommender.recommend(phase=phase) - if self.roof_recommender.recommendations: - property_recommendations.append(self.roof_recommender.recommendations) - phase += 1 - if "floor_insulation" not in self.exclusions: self.floor_recommender.recommend(phase=phase) if self.floor_recommender.recommendations: From 72a4feb6af3967dc6ce00bb4df7d7d47c4772dc1 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Thu, 28 Mar 2024 17:18:08 +0000 Subject: [PATCH 461/526] minor tweak to asset list to make uprn int --- etl/customers/gla_croydon_demo/asset_list.py | 8 ++++++-- etl/customers/gla_croydon_demo/slides.py | 0 2 files changed, 6 insertions(+), 2 deletions(-) create mode 100644 etl/customers/gla_croydon_demo/slides.py diff --git a/etl/customers/gla_croydon_demo/asset_list.py b/etl/customers/gla_croydon_demo/asset_list.py index 526c34a0..01220d0a 100644 --- a/etl/customers/gla_croydon_demo/asset_list.py +++ b/etl/customers/gla_croydon_demo/asset_list.py @@ -36,7 +36,7 @@ def app(): epc_data["CURRENT_ENERGY_RATING"].value_counts(normalize=True) # For the purpose of the sample, take the properties have surveys done in the last 2 years - # This gives us 1023 remaining properties + # This gives us 1167 remaining properties two_years_ago = pd.Timestamp.now() - pd.DateOffset(days=int(2.5 * 365)) epc_data = epc_data[epc_data["LODGEMENT_DATE"] >= two_years_ago] @@ -45,7 +45,7 @@ def app(): # 2) Unfilled cavity # 3) A roof that could be insulated (flat or pitched with no more than 50mm insulation) # 4) EPC E - # Different buckets of properties + # 12 properties archetype_1_sample = epc_data[ epc_data["PROPERTY_TYPE"].isin(["House"]) & (epc_data["CURRENT_ENERGY_RATING"] == "E") & @@ -69,6 +69,7 @@ def app(): # 2) Unfilled cavity # 3) Another property above # 4) EPC E + # 14 properties here archetype_2_sample = epc_data[ epc_data["PROPERTY_TYPE"].isin(["Flat"]) & (epc_data["CURRENT_ENERGY_RATING"] == "E") & @@ -108,6 +109,7 @@ def app(): archetype_4_sample_asset_list = archetype_4_sample[["UPRN", "ADDRESS1", "POSTCODE"]].copy() archetype_4_sample_asset_list["ARCHETYPE"] = "Archetype 4" + # 41 total properties asset_list = pd.concat( [ archetype_1_sample_asset_list, @@ -126,6 +128,8 @@ def app(): } ) + asset_list["uprn"] = asset_list["uprn"].astype(int) + filename = f"{USER_ID}/{PORTFOLIO_ID}/inputs.csv" save_csv_to_s3( dataframe=asset_list, diff --git a/etl/customers/gla_croydon_demo/slides.py b/etl/customers/gla_croydon_demo/slides.py new file mode 100644 index 00000000..e69de29b From 80fc7c821e0923918252edde9b90ab32a18cc765 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Thu, 28 Mar 2024 17:38:52 +0000 Subject: [PATCH 462/526] moed reading csv function --- backend/app/plan/router.py | 7 ++-- backend/app/utils.py | 21 ----------- etl/customers/gla_croydon_demo/slides.py | 44 ++++++++++++++++++++++++ utils/s3.py | 24 +++++++++++-- 4 files changed, 69 insertions(+), 27 deletions(-) diff --git a/backend/app/plan/router.py b/backend/app/plan/router.py index a0d93190..2067d796 100644 --- a/backend/app/plan/router.py +++ b/backend/app/plan/router.py @@ -24,7 +24,7 @@ from backend.app.db.models.portfolio import rating_lookup from backend.app.dependencies import validate_token from backend.app.plan.schemas import PlanTriggerRequest from backend.app.plan.utils import get_cleaned -from backend.app.utils import epc_to_sap_lower_bound, read_csv_from_s3, sap_to_epc +from backend.app.utils import epc_to_sap_lower_bound, sap_to_epc from backend.ml_models.api import ModelApi from backend.Property import Property @@ -35,7 +35,7 @@ from recommendations.optimiser.GainOptimiser import GainOptimiser from recommendations.optimiser.optimiser_functions import prepare_input_measures from recommendations.Recommendations import Recommendations from utils.logger import setup_logger -from utils.s3 import read_dataframe_from_s3_parquet +from utils.s3 import read_dataframe_from_s3_parquet, read_csv_from_s3 from backend.ml_models.Valuation import PropertyValuation logger = setup_logger() @@ -196,7 +196,7 @@ async def trigger_plan(body: PlanTriggerRequest): ) model_api = ModelApi(portfolio_id=body.portfolio_id, timestamp=created_at) - # model_api.MODEL_PREFIXES = ["sap_change_predictions"] + # model_api.MODEL_PREFIXES = ['sap_change_predictions', 'carbon_change_predictions'] all_predictions = { "sap_change_predictions": pd.DataFrame(), @@ -221,7 +221,6 @@ async def trigger_plan(body: PlanTriggerRequest): # TODO: TEMP # all_predictions["heat_demand_predictions"] = all_predictions["sap_change_predictions"].copy() - # all_predictions["carbon_change_predictions"] = all_predictions["sap_change_predictions"].copy() # Insert the predictions into the recommendations and run the optimiser # TODO: If a recommendation has a negative impact on SAP, we should remove it - this seems to have become a diff --git a/backend/app/utils.py b/backend/app/utils.py index ba5509e1..b3843206 100644 --- a/backend/app/utils.py +++ b/backend/app/utils.py @@ -1,6 +1,4 @@ import boto3 -import csv -from io import StringIO import string import secrets import logging @@ -41,25 +39,6 @@ def setup_logger(log_file=None, level=logging.INFO, overwrite_handler=False): return logger -def read_csv_from_s3(bucket_name, filepath): - s3 = boto3.client('s3') - - # Get the object from s3 - s3_object = s3.get_object(Bucket=bucket_name, Key=filepath) - - # Read the CSV body from the s3 object - body = s3_object['Body'].read() - - # Use StringIO to create a file-like object from the string - csv_data = StringIO(body.decode('utf-8')) - - # Use csv library to read it into a list of dictionaries - reader = csv.DictReader(csv_data) - data = list(reader) - - return data - - def generate_api_key(): # Define the characters that will be used to generate the api key characters = string.ascii_letters + string.digits diff --git a/etl/customers/gla_croydon_demo/slides.py b/etl/customers/gla_croydon_demo/slides.py index e69de29b..5954f604 100644 --- a/etl/customers/gla_croydon_demo/slides.py +++ b/etl/customers/gla_croydon_demo/slides.py @@ -0,0 +1,44 @@ +""" +This script contains the code to generate the data required to populate the slides +We connect to the database amd extract the data for the portfolio needed so it is recommended to use +a environment akin to the backend to run this script +""" +import pandas as pd +import numpy as np +from backend.app.db.connection import db_engine +from sqlalchemy.orm import sessionmaker +from utils.s3 import read_csv_from_s3 +from etl.customers.slide_utils import ( + plot_epc_distribution, + get_property_details_by_portfolio_id, + get_plan_by_portfolio_id, + get_properties_with_default_recommendations, + create_powerpoint, + create_recommendations_summary +) + +USER_ID = 8 +PORTFOLIO_ID_1 = 67 +EPC_TARGET_1 = "C" +SAP_TARGET_1 = 69 +CUSTOMER_KEY = "gla-demo" + + +def app(): + # Connect to database + session = sessionmaker(bind=db_engine)() + + ######################################################################## + # Get the data we need + ######################################################################## + + portfolio_id = PORTFOLIO_ID_1 + + # Get the asset list + asset_list = read_csv_from_s3( + "retrofit-plan-inputs-dev", f"{USER_ID}/{portfolio_id}/inputs.csv" + ) + + # Get the properties for the portfolio + properties = get_properties_with_default_recommendations(session, portfolio_id) + properties_df = pd.DataFrame(properties) diff --git a/utils/s3.py b/utils/s3.py index 8d36bdb3..fd5992ce 100644 --- a/utils/s3.py +++ b/utils/s3.py @@ -1,9 +1,10 @@ import pickle import boto3 -from io import BytesIO, StringIO -from botocore.exceptions import NoCredentialsError, PartialCredentialsError +import csv import pandas as pd +from io import BytesIO, StringIO from utils.logger import setup_logger +from botocore.exceptions import NoCredentialsError, PartialCredentialsError logger = setup_logger() @@ -224,3 +225,22 @@ def read_excel_from_s3(bucket_name, file_key, header_row): df.reset_index(drop=True, inplace=True) return df + + +def read_csv_from_s3(bucket_name, filepath): + s3 = boto3.client('s3') + + # Get the object from s3 + s3_object = s3.get_object(Bucket=bucket_name, Key=filepath) + + # Read the CSV body from the s3 object + body = s3_object['Body'].read() + + # Use StringIO to create a file-like object from the string + csv_data = StringIO(body.decode('utf-8')) + + # Use csv library to read it into a list of dictionaries + reader = csv.DictReader(csv_data) + data = list(reader) + + return data From 053218b3fd9ef7bec918baed43473f3d3485fa4e Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Tue, 2 Apr 2024 11:18:58 +0100 Subject: [PATCH 463/526] updated price cap figures --- backend/app/plan/router.py | 4 -- backend/ml_models/AnnualBillSavings.py | 10 ++--- etl/customers/gla_croydon_demo/asset_list.py | 40 +++++++++++------- etl/customers/gla_croydon_demo/slides.py | 43 ++++++++++++++++++++ 4 files changed, 73 insertions(+), 24 deletions(-) diff --git a/backend/app/plan/router.py b/backend/app/plan/router.py index 2067d796..50b8a837 100644 --- a/backend/app/plan/router.py +++ b/backend/app/plan/router.py @@ -196,7 +196,6 @@ async def trigger_plan(body: PlanTriggerRequest): ) model_api = ModelApi(portfolio_id=body.portfolio_id, timestamp=created_at) - # model_api.MODEL_PREFIXES = ['sap_change_predictions', 'carbon_change_predictions'] all_predictions = { "sap_change_predictions": pd.DataFrame(), @@ -219,9 +218,6 @@ async def trigger_plan(body: PlanTriggerRequest): for key, scored in predictions_dict.items(): all_predictions[key] = pd.concat([all_predictions[key], scored]) - # TODO: TEMP - # all_predictions["heat_demand_predictions"] = all_predictions["sap_change_predictions"].copy() - # Insert the predictions into the recommendations and run the optimiser # TODO: If a recommendation has a negative impact on SAP, we should remove it - this seems to have become a # possibility with heating system diff --git a/backend/ml_models/AnnualBillSavings.py b/backend/ml_models/AnnualBillSavings.py index 99fae4db..4a433a7f 100644 --- a/backend/ml_models/AnnualBillSavings.py +++ b/backend/ml_models/AnnualBillSavings.py @@ -10,13 +10,13 @@ class AnnualBillSavings: AVERAGE_ELECTRICITY_CONSUMPTION = 2700 AVERAGE_GAS_CONSUMPTION = 11500 - # Latest price cap figures from Ofgem are for January 2024 - # https://www.ofgem.gov.uk/publications/changes-energy-price-cap-1-january-2024 - ELECTRICITY_PRICE_CAP = 0.29 - GAS_PRICE_CAP = 0.07 + # Latest price cap figures from Ofgem are for April 2024 + # https://www.ofgem.gov.uk/publications/new-energy-price-cap-level-april-june-2024-starts-today + ELECTRICITY_PRICE_CAP = 0.245 + GAS_PRICE_CAP = 0.0604 # This is a weighted mean of the price caps, using the consumption figures above as weights - PRICE_FACTOR = 0.11183098591549295 + PRICE_FACTOR = 0.09549999999999999 EPC_BANDS = ["G", "F", "E", "D", "C", "B", "A"] diff --git a/etl/customers/gla_croydon_demo/asset_list.py b/etl/customers/gla_croydon_demo/asset_list.py index 01220d0a..a0475807 100644 --- a/etl/customers/gla_croydon_demo/asset_list.py +++ b/etl/customers/gla_croydon_demo/asset_list.py @@ -35,20 +35,20 @@ def app(): # 79% D, 19% E, 1% F, 0.2% G - it probably makes the most sense to focus on E and D properties epc_data["CURRENT_ENERGY_RATING"].value_counts(normalize=True) - # For the purpose of the sample, take the properties have surveys done in the last 2 years - # This gives us 1167 remaining properties - two_years_ago = pd.Timestamp.now() - pd.DateOffset(days=int(2.5 * 365)) - epc_data = epc_data[epc_data["LODGEMENT_DATE"] >= two_years_ago] + # For the purpose of the sample, take the properties have surveys done in the last 3 years + # This gives us 1351 remaining properties + three_years_ago = pd.Timestamp.now() - pd.DateOffset(days=int(3 * 365)) + epc_data = epc_data[epc_data["LODGEMENT_DATE"] >= three_years_ago] # Archetype 1: defined below: # 1) House # 2) Unfilled cavity # 3) A roof that could be insulated (flat or pitched with no more than 50mm insulation) - # 4) EPC E - # 12 properties + # 4) EPC E or D + # 24 properties archetype_1_sample = epc_data[ epc_data["PROPERTY_TYPE"].isin(["House"]) & - (epc_data["CURRENT_ENERGY_RATING"] == "E") & + (epc_data["CURRENT_ENERGY_RATING"].isin(["D", "E"])) & epc_data["WALLS_DESCRIPTION"].isin(["Cavity wall, as built, no insulation (assumed)"]) & epc_data["ROOF_DESCRIPTION"].isin( [ @@ -69,10 +69,10 @@ def app(): # 2) Unfilled cavity # 3) Another property above # 4) EPC E - # 14 properties here + # 57 properties here archetype_2_sample = epc_data[ epc_data["PROPERTY_TYPE"].isin(["Flat"]) & - (epc_data["CURRENT_ENERGY_RATING"] == "E") & + (epc_data["CURRENT_ENERGY_RATING"].isin(["E", "D"])) & epc_data["WALLS_DESCRIPTION"].isin(["Cavity wall, as built, no insulation (assumed)"]) & epc_data["ROOF_DESCRIPTION"].isin( [ @@ -88,11 +88,18 @@ def app(): # 2) Solid brick wall # 3) House # 4) Pitched roof with no insulation - # Just 1 property (more expensive to retrofit) + # Just 7 properties (more expensive to retrofit) archetype_3_sample = epc_data[ epc_data["PROPERTY_TYPE"].isin(["House"]) & - (epc_data["CURRENT_ENERGY_RATING"] == "F") & - epc_data["ROOF_DESCRIPTION"].isin(["Pitched, no insulation"]) + (epc_data["CURRENT_ENERGY_RATING"].isin(["F", "G"])) & + epc_data["ROOF_DESCRIPTION"].isin( + [ + "Pitched, no insulation", + "Pitched, limited insulation (assumed)", + "Pitched, 100 mm loft insulation", + "Pitched, no insulation (assumed)", + ] + ) ] archetype_3_sample_asset_list = archetype_3_sample[["UPRN", "ADDRESS1", "POSTCODE"]].copy() archetype_3_sample_asset_list["ARCHETYPE"] = "Archetype 3" @@ -101,15 +108,18 @@ def app(): # 1) Maisonette # 2) Empty cavity # 3) EPC E - # 14 properties here + # 16 properties here archetype_4_sample = epc_data[ epc_data["PROPERTY_TYPE"].isin(["Maisonette"]) & - epc_data["WALLS_DESCRIPTION"].isin(["Cavity wall, as built, no insulation (assumed)"]) + epc_data["WALLS_DESCRIPTION"].isin( + ["Cavity wall, as built, no insulation (assumed)"] + ) ] + archetype_4_sample_asset_list = archetype_4_sample[["UPRN", "ADDRESS1", "POSTCODE"]].copy() archetype_4_sample_asset_list["ARCHETYPE"] = "Archetype 4" - # 41 total properties + # 104 total properties asset_list = pd.concat( [ archetype_1_sample_asset_list, diff --git a/etl/customers/gla_croydon_demo/slides.py b/etl/customers/gla_croydon_demo/slides.py index 5954f604..ebca7dc3 100644 --- a/etl/customers/gla_croydon_demo/slides.py +++ b/etl/customers/gla_croydon_demo/slides.py @@ -38,7 +38,50 @@ def app(): asset_list = read_csv_from_s3( "retrofit-plan-inputs-dev", f"{USER_ID}/{portfolio_id}/inputs.csv" ) + asset_list = pd.DataFrame(asset_list) # Get the properties for the portfolio properties = get_properties_with_default_recommendations(session, portfolio_id) properties_df = pd.DataFrame(properties) + + # We now pull the data for the property details + property_details = get_property_details_by_portfolio_id(session, portfolio_id) + property_details_df = pd.DataFrame(property_details) + # Merge on uprn + property_details_df = property_details_df.merge( + properties_df[["uprn", "id"]].rename(columns={"id": "property_id"}), + on="property_id" + ) + + plans = get_plan_by_portfolio_id(session, portfolio_id) + plans_df = pd.DataFrame(plans) + + # Unnest the recommendations. Each recommendation is a list of dictionaries + recommendations_exploded = properties_df["recommendations"].explode().tolist() + recommendations_df = pd.DataFrame([r for r in recommendations_exploded if not pd.isnull(r)]) + # Add uprn on + recommendations_df = recommendations_df.merge( + properties_df[["uprn", "id"]].rename(columns={"id": "property_id"}), + how="left", + on="property_id" + ) + + # Summary information by each archetype + archetype_1 = asset_list[asset_list["archetype"] == "Archetype 1"] + + recommendations_arch_1_summary = create_recommendations_summary( + recommendations_df[recommendations_df["uprn"].astype(str).isin(archetype_1["uprn"].values)], + properties_df[properties_df["uprn"].astype(str).isin(archetype_1["uprn"].values)], + SAP_TARGET_1 + ) + + # Take the mean, median and maximum of each value + arch_1_recommendation_means = recommendations_arch_1_summary.mean() + + arch_1_property_details = property_details_df[ + property_details_df["uprn"].astype(str).isin(archetype_1["uprn"].values) + ] + + arch_1_property_details_means = arch_1_property_details.mean() + + arch_1_recommendation_means["total_bill_savings"] / arch_1_property_details_means["adjusted_energy_consumption"] From 08a657eb9f505a10608377eff1c0c10b76bd2f0a Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Wed, 3 Apr 2024 12:18:08 +0100 Subject: [PATCH 464/526] Adding costs for ttzc --- backend/ml_models/AnnualBillSavings.py | 13 +++ etl/customers/gla_croydon_demo/asset_list.py | 13 +++ etl/customers/gla_croydon_demo/slides.py | 100 ++++++++++++++--- etl/customers/slide_utils.py | 22 +++- recommendations/Costs.py | 83 +++++++++++++- recommendations/HeatingControlRecommender.py | 108 +++++++++++++++++++ recommendations/HeatingRecommender.py | 17 +++ 7 files changed, 338 insertions(+), 18 deletions(-) diff --git a/backend/ml_models/AnnualBillSavings.py b/backend/ml_models/AnnualBillSavings.py index 4a433a7f..9be9d78a 100644 --- a/backend/ml_models/AnnualBillSavings.py +++ b/backend/ml_models/AnnualBillSavings.py @@ -18,6 +18,9 @@ class AnnualBillSavings: # This is a weighted mean of the price caps, using the consumption figures above as weights PRICE_FACTOR = 0.09549999999999999 + # Daily standard charge, based on average across England, Scotland and Wales, and includes VAT + DAILY_STANDARD_CHARGE = 0.3143 + EPC_BANDS = ["G", "F", "E", "D", "C", "B", "A"] @classmethod @@ -38,6 +41,16 @@ class AnnualBillSavings: """ return cls.ELECTRICITY_PRICE_CAP * kwh + @classmethod + def calculate_annual_bill(cls, kwh): + """ + This method will estimate the total annual bill for a property + :param kwh: The total kwh consumption + :return: An estimate for annual bill + """ + + return cls.PRICE_FACTOR * kwh + cls.DAILY_STANDARD_CHARGE * 365 + @classmethod def adjust_energy_to_metered(cls, epc_energy_consumption, current_epc_rating): """ diff --git a/etl/customers/gla_croydon_demo/asset_list.py b/etl/customers/gla_croydon_demo/asset_list.py index a0475807..3a3f02a3 100644 --- a/etl/customers/gla_croydon_demo/asset_list.py +++ b/etl/customers/gla_croydon_demo/asset_list.py @@ -140,6 +140,19 @@ def app(): asset_list["uprn"] = asset_list["uprn"].astype(int) + # We end up with some properties that are currently an EPC C, but we do not have this data in the download, so we + # manually remove + # 1) 3 Reid Close, CR5 3BL + # 2) Flat 6, Collier Court 2A, St. Peters Road CR0 1HD + asset_list = asset_list[ + ~asset_list["uprn"].isin( + [ + 100020576460, + 100020624352, + ] + ) + ] + filename = f"{USER_ID}/{PORTFOLIO_ID}/inputs.csv" save_csv_to_s3( dataframe=asset_list, diff --git a/etl/customers/gla_croydon_demo/slides.py b/etl/customers/gla_croydon_demo/slides.py index ebca7dc3..1d217226 100644 --- a/etl/customers/gla_croydon_demo/slides.py +++ b/etl/customers/gla_croydon_demo/slides.py @@ -16,11 +16,15 @@ from etl.customers.slide_utils import ( create_powerpoint, create_recommendations_summary ) +from backend.ml_models.AnnualBillSavings import AnnualBillSavings USER_ID = 8 PORTFOLIO_ID_1 = 67 +PORTFOLIO_ID_2 = 68 EPC_TARGET_1 = "C" +EPC_TARGET_2 = "A" SAP_TARGET_1 = 69 +SAP_TARGET_2 = 100 CUSTOMER_KEY = "gla-demo" @@ -32,11 +36,13 @@ def app(): # Get the data we need ######################################################################## - portfolio_id = PORTFOLIO_ID_1 + # TODO: Update to portfolio desired + # portfolio_id = PORTFOLIO_ID_1 + portfolio_id = PORTFOLIO_ID_2 # Get the asset list asset_list = read_csv_from_s3( - "retrofit-plan-inputs-dev", f"{USER_ID}/{portfolio_id}/inputs.csv" + "retrofit-plan-inputs-dev", f"{USER_ID}/67/inputs.csv" ) asset_list = pd.DataFrame(asset_list) @@ -47,6 +53,10 @@ def app(): # We now pull the data for the property details property_details = get_property_details_by_portfolio_id(session, portfolio_id) property_details_df = pd.DataFrame(property_details) + # We estimate bills based on the adjusted_energy_consumption + property_details_df["energy_bill"] = property_details_df["adjusted_energy_consumption"].apply( + lambda x: AnnualBillSavings.calculate_annual_bill(x) + ) # Merge on uprn property_details_df = property_details_df.merge( properties_df[["uprn", "id"]].rename(columns={"id": "property_id"}), @@ -66,22 +76,84 @@ def app(): on="property_id" ) - # Summary information by each archetype - archetype_1 = asset_list[asset_list["archetype"] == "Archetype 1"] - - recommendations_arch_1_summary = create_recommendations_summary( - recommendations_df[recommendations_df["uprn"].astype(str).isin(archetype_1["uprn"].values)], - properties_df[properties_df["uprn"].astype(str).isin(archetype_1["uprn"].values)], + recommendations_summary = create_recommendations_summary( + recommendations_df, + properties_df, + property_details_df, SAP_TARGET_1 ) - # Take the mean, median and maximum of each value - arch_1_recommendation_means = recommendations_arch_1_summary.mean() + # Calculate % changes of energ, co2 and abs + recommendations_summary["carbon_percent_change"] = ( + recommendations_summary["total_carbon"] / recommendations_summary["current_co2"] + ) - arch_1_property_details = property_details_df[ - property_details_df["uprn"].astype(str).isin(archetype_1["uprn"].values) + recommendations_summary["energy_percent_change"] = ( + recommendations_summary["adjusted_heat_demand"] / recommendations_summary["current_energy"] + ) + + recommendations_summary["bills_percent_change"] = ( + recommendations_summary["total_bill_savings"] / recommendations_summary["current_energy_bill"] + ) + + # Summary information by each archetype + ######################## + # Archetype 1 + ######################## + archetype_1 = asset_list[asset_list["archetype"] == "Archetype 1"] + recommendations_arch_1_summary = recommendations_summary[ + recommendations_summary["uprn"].astype(str).isin(archetype_1["uprn"].values) ] - arch_1_property_details_means = arch_1_property_details.mean() + # Take the mean, median and maximum of each value + arch_1_recommendation_min = recommendations_arch_1_summary.min() + arch_1_recommendation_max = recommendations_arch_1_summary.max() + arch_1_recommendation_means = recommendations_arch_1_summary.mean() - arch_1_recommendation_means["total_bill_savings"] / arch_1_property_details_means["adjusted_energy_consumption"] + ######################## + # Archetype 2 + ######################## + archetype_2 = asset_list[asset_list["archetype"] == "Archetype 2"] + recommendations_arch_2_summary = recommendations_summary[ + recommendations_summary["uprn"].astype(str).isin(archetype_2["uprn"].values) + ] + + # Take the mean, median and maximum of each value + arch_2_recommendation_min = recommendations_arch_2_summary.min() + arch_2_recommendation_max = recommendations_arch_2_summary.max() + arch_2_recommendation_means = recommendations_arch_2_summary.mean().round(2) + + ######################## + # Archetype 3 + ######################## + archetype_3 = asset_list[asset_list["archetype"] == "Archetype 3"] + recommendations_arch_3_summary = recommendations_summary[ + recommendations_summary["uprn"].astype(str).isin(archetype_3["uprn"].values) + ] + + # Take the mean, median and maximum of each value + arch_3_recommendation_min = recommendations_arch_3_summary.min() + arch_3_recommendation_max = recommendations_arch_3_summary.max() + arch_3_recommendation_means = recommendations_arch_3_summary.mean() + + ######################## + # Archetype 4 + ######################## + archetype_4 = asset_list[asset_list["archetype"] == "Archetype 4"] + recommendations_arch_4_summary = recommendations_summary[ + recommendations_summary["uprn"].astype(str).isin(archetype_4["uprn"].values) + ] + + # Take the mean, median and maximum of each value + arch_4_recommendation_min = recommendations_arch_4_summary.min() + arch_4_recommendation_max = recommendations_arch_4_summary.max() + arch_4_recommendation_means = recommendations_arch_4_summary.mean() + + property_details_df[ + property_details_df["uprn"].astype(str).isin(archetype_4["uprn"].values) + ]["total_floor_area"].mean() + + ######################## + # Overview + ######################## + overview_totals = recommendations_summary.sum() diff --git a/etl/customers/slide_utils.py b/etl/customers/slide_utils.py index d1efce47..9170ab17 100644 --- a/etl/customers/slide_utils.py +++ b/etl/customers/slide_utils.py @@ -246,7 +246,7 @@ def create_powerpoint(data, save_location): prs.save(save_location) -def create_recommendations_summary(recommendations_df, properties_df, sap_target): +def create_recommendations_summary(recommendations_df, properties_df, property_details_df, sap_target): # Aggregate the impact of the recommendations # We want: # Total number of sap points @@ -259,13 +259,15 @@ def create_recommendations_summary(recommendations_df, properties_df, sap_target total_valuation_impact=("property_valuation_increase", "sum"), total_bill_savings=("energy_cost_savings", "sum"), total_cost=("estimated_cost", "sum"), - total_carbon=("co2_equivalent_savings", "sum") + total_carbon=("co2_equivalent_savings", "sum"), + adjusted_heat_demand=("adjusted_heat_demand", "sum") ).reset_index() - # Merge on current sap points + # Merge on current sap points, current CO2, current adjusted_heat_demand, current annual bill recommendations_summary = recommendations_summary.merge( properties_df[["id", "uprn", "current_sap_points"]].rename(columns={"id": "property_id"}), on="property_id", how="left" ) + recommendations_summary["expected_sap_points"] = ( recommendations_summary["current_sap_points"] + recommendations_summary["total_sap_points"] ) @@ -274,4 +276,18 @@ def create_recommendations_summary(recommendations_df, properties_df, sap_target ) recommendations_summary["sap_difference"] = sap_target - recommendations_summary["expected_sap_points"] + if property_details_df is not None: + recommendations_summary = recommendations_summary.merge( + property_details_df[["uprn", "co2_emissions", "adjusted_energy_consumption", "energy_bill"]].rename( + columns={ + "id": "property_id", + "co2_emissions": "current_co2", + "adjusted_energy_consumption": "current_energy", + "energy_bill": "current_energy_bill" + } + ), + on="uprn", + how="left" + ) + return recommendations_summary diff --git a/recommendations/Costs.py b/recommendations/Costs.py index b2874f28..47844657 100644 --- a/recommendations/Costs.py +++ b/recommendations/Costs.py @@ -42,7 +42,22 @@ BATTERY_COST = 3500 # This is based on https://www.checkatrade.com/blog/cost-guides/cost-smart-thermostat/ SMART_APPLIANCE_THERMOSTAT_COST = 400 -PROGRAMMER_COST = 200 +PROGRAMMER_COST = 120 +ROOM_THERMOSTAT_COST = 150 +TRVS_COST = 35 + +# Cost for TTZC +# Smart thermostat based on checkatrade https://www.checkatrade.com/blog/cost-guides/cost-smart-thermostat/ +# Based on the Nest system +TTZC_SMART_THERMOSTAT_COST = 205 +TTZC_SMART_THERMOSTAT_LABOUR_HOURS = 2 +TTZC_ELECTRICIAN_HOURLY_RATE = 45 +# Based on cost of a Nest temperature sensor +TTZC_ROOM_TEMPERATURE_SENSOR_COST = 50 +TTZC_ROOM_TEMPERATURE_SENSOR_LABOUR_HOURS = 0.17 # (Assume ~ 10 mins install per sensor) +# Basedon an average cost of smart radiator values +TTZC_SMART_RADIATOR_VALUES = 50 +TTZC_SMART_RADIATOR_VALUES_LABOUR_HOURS = 0.37 # (Assume ~ 15-30 mins install per valve) class Costs: @@ -998,3 +1013,69 @@ class Costs: "labour_hours": 0, "labour_days": 0, } + + def roomstat_programmer_trvs( + self, number_heated_rooms, has_programmer, has_trvs, has_room_thermostat + ): + """ + + :return: + """ + + total_cost = 0 + labour_hours = 0 + + if not has_programmer: + total_cost += PROGRAMMER_COST + labour_hours += 1 + + if not has_trvs: + total_cost += TRVS_COST * number_heated_rooms + labour_hours += 0.25 * number_heated_rooms + + if not has_room_thermostat: + total_cost += ROOM_THERMOSTAT_COST + labour_hours += 0.5 + + subtotal_before_vat = total_cost / (1 + self.VAT_RATE) + vat = total_cost - subtotal_before_vat + + return { + "total": total_cost, + "subtotal": subtotal_before_vat, + "vat": vat, + "labour_hours": labour_hours, + "labour_days": 1, + } + + def time_and_temperature_zone_control(self, number_heated_rooms): + + # The product costs are inclusive of VAT + product_costs = ( + TTZC_SMART_THERMOSTAT_COST + + TTZC_ROOM_TEMPERATURE_SENSOR_COST * number_heated_rooms + + TTZC_SMART_RADIATOR_VALUES * number_heated_rooms + ) + labour_hours = ( + TTZC_SMART_THERMOSTAT_LABOUR_HOURS + + TTZC_ROOM_TEMPERATURE_SENSOR_LABOUR_HOURS * number_heated_rooms + + TTZC_SMART_RADIATOR_VALUES_LABOUR_HOURS * number_heated_rooms + ) + labour_costs = TTZC_ELECTRICIAN_HOURLY_RATE * labour_hours + # Add continency and preliminaries to the labour to account for the complexity of the job + labour_costs = labour_costs * (1 + self.CONTINGENCY + self.PRELIMINARIES) + + vat = labour_costs * self.VAT_RATE + + subtotal_before_vat = product_costs + labour_costs + total_cost = subtotal_before_vat + vat + + labour_days = np.ceil(labour_hours / 8) + + return { + "total": total_cost, + "subtotal": subtotal_before_vat, + "vat": vat, + "labour_hours": labour_hours, + "labour_days": labour_days, + } diff --git a/recommendations/HeatingControlRecommender.py b/recommendations/HeatingControlRecommender.py index 81597f61..99b41469 100644 --- a/recommendations/HeatingControlRecommender.py +++ b/recommendations/HeatingControlRecommender.py @@ -27,6 +27,14 @@ class HeatingControlRecommender: self.recommend_high_heat_retention_controls() return + if heating_description in ["Boiler and radiators, mains gas"]: + # We can recommend roomstat programmer trvs + self.recommend_roomstat_programmer_trvs() + # We can also recommend time and temperature zone controls + self.recommend_time_temperature_zone_controls() + + return + def recommend_room_heaters_electric_controls(self): """ If the home has Room heaters, electric, we start by identifying potential heating controls that could @@ -105,3 +113,103 @@ class HeatingControlRecommender: # We don't implement any other recommendations right now return + + def recommend_roomstat_programmer_trvs(self): + """ + If the home has a boiler and radiators, mains gas, we start by identifying potential heating controls that could + be upgraded, that would provide a practical impact. + + The criteria for recommending an upgrade to heating controls are (one of these must be true) + 1) There are no controls + 2) No programmer + 3) No room thermostat + 4) No TRVs + + + :return: + """ + + # We check if we have the conditions to recommend this upgrade + + needs_programmer = self.property.main_heating_controls["switch_system"] is None + needs_room_thermostat = self.property.main_heating_controls["thermostatic_control"] is None + needs_trvs = self.property.main_heating_controls["trvs"] is None + + can_recommend = ( + (self.property.main_heating_controls["no_control"] is not None) or + needs_programmer or + needs_room_thermostat or + needs_trvs + ) + + if not can_recommend: + return + + ending_config = MainheatControlAttributes("Programmer, room thermostat and TRVS").process() + # We use this to determine how we should be updating the config + simulation_config = check_simulation_difference( + new_config=ending_config, old_config=self.property.main_heating_controls + ) + # This upgrade will only take the heating system to average energy efficiency + # If the current system is below good, we make it good + if self.property.data["mainheatc-energy-eff"] in ["Poor", "Very Poor", "Average"]: + simulation_config["mainheatc_energy_eff_ending"] = "Good" + + has_programmer = not needs_programmer + has_room_thermostat = not needs_room_thermostat + has_trvs = not needs_trvs + + self.recommendation.append( + { + "description": "upgrade heating controls to Room thermostat, programmer and TRVs", + **self.costs.roomstat_programmer_trvs( + number_heated_rooms=int(self.property.data["number-heated-rooms"]), + has_programmer=has_programmer, + has_room_thermostat=has_room_thermostat, + has_trvs=has_trvs + ), + "simulation_config": simulation_config + } + ) + + return + + def recommend_time_temperature_zone_controls(self): + """ + If the home has a boiler, we can recommend time and temperature zone controls. This is a more advanced + and more efficient control system than the standard controls that come with a boiler. However, it may come + with a higher cost and more involved usage + :return: + """ + + # We check if the efficiency of the current heating controls is good or below, and + + # Conditions for installation are as follows: + # 1) The current heating controls are not time and temperature zone controls + # 2) The current heating controls are not already at 'Very Good' or above + + if ( + (self.property["thermostatic_control"] == "time and temperature zone control") or + (self.property.data["mainheatc-energy-eff"] in ["Very Good"]) + ): + # No recommendation needed + return + + ending_config = MainheatControlAttributes("Time and temperature zone control").process() + + # We use this to determine how we should be updating the config + simulation_config = check_simulation_difference( + new_config=ending_config, old_config=self.property.main_heating_controls + ) + + # If the current system is below very good, we make it very good + if self.property.data["mainheatc-energy-eff"] in ["Poor", "Very Poor", "Average", "Good"]: + simulation_config["mainheatc_energy_eff_ending"] = "Very Good" + + self.recommendation.append( + { + "description": "upgrade heating controls to Room thermostat, programmer and TRVs", + **self.costs.time_and_temperature_zone_control(), + "simulation_config": simulation_config + } + ) diff --git a/recommendations/HeatingRecommender.py b/recommendations/HeatingRecommender.py index 11ae3da6..6467bd2f 100644 --- a/recommendations/HeatingRecommender.py +++ b/recommendations/HeatingRecommender.py @@ -26,6 +26,11 @@ class HeatingRecommender: self.recommend_electric_storage_heaters(phase=phase, system_change=True, heating_controls_only=False) return + # if the property has mains heating with boiler and radiators, we recommend optimal heating controls + if self.property.main_heating["clean_description"] in ["Boiler and radiators, mains gas"]: + self.recommend_roomstat_programmer_trvs(phase=phase) + return + @staticmethod def check_simulation_difference(old_config, new_config): """ @@ -182,3 +187,15 @@ class HeatingRecommender: ) self.recommendations.extend(recommendations) + + def recommend_roomstat_programmer_trvs(self, phase): + """ + + :param phase: + :return: + """ + # We recommend the heating controls + controls_recommender = HeatingControlRecommender(self.property) + controls_recommender.recommend(heating_description="Boiler and radiators, mains gas") + + controls_recommender.recommendation From 45552f5e06d3b814729cc57b6ca4329d19a8c31e Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Wed, 3 Apr 2024 14:39:28 +0100 Subject: [PATCH 465/526] Added costing for boiler --- recommendations/Costs.py | 51 ++++++++++++ recommendations/HeatingControlRecommender.py | 6 +- recommendations/HeatingRecommender.py | 83 +++++++++++++++++++- recommendations/Recommendations.py | 3 + 4 files changed, 137 insertions(+), 6 deletions(-) diff --git a/recommendations/Costs.py b/recommendations/Costs.py index 47844657..e5ceb0c0 100644 --- a/recommendations/Costs.py +++ b/recommendations/Costs.py @@ -59,6 +59,26 @@ TTZC_ROOM_TEMPERATURE_SENSOR_LABOUR_HOURS = 0.17 # (Assume ~ 10 mins install pe TTZC_SMART_RADIATOR_VALUES = 50 TTZC_SMART_RADIATOR_VALUES_LABOUR_HOURS = 0.37 # (Assume ~ 15-30 mins install per valve) +# Low carbon combi boiler - median value based on £2200 - £3000 range +LOW_CARBON_COMBI_BOILER = 2200 + +# boiler prices based on +# https://www.greenmatch.co.uk/boilers/30kw-boiler +# https://www.greenmatch.co.uk/boilers/35kw-boiler +# https://www.greenmatch.co.uk/boilers/40kw-boiler +# These are exclusive of installation costs +COMBI_BOILER_COSTS = { + "30kw": 1550, + "35kw": 1610, + "40kw": 1625 +} + +CONVENTIONAL_BOILER_COSTS = { + "30kw": 1117, + "35kw": 1546, + "40kw": 1776 +} + class Costs: """ @@ -1079,3 +1099,34 @@ class Costs: "labour_hours": labour_hours, "labour_days": labour_days, } + + def low_carbon_boiler(self, is_combi, size): + """ + Based on a basic estimate of median value £2600 to install a low carbon combi boiler + :return: + """ + + unit_cost = COMBI_BOILER_COSTS[size] if is_combi else CONVENTIONAL_BOILER_COSTS[size] + # The unit cost is the cost without VAT + # We now need to estimate the cost of the works + labour_days = 2 + labour_rate = 500 + + # Average cost of installation is 1 (maybe 2days) at £300 per day + # https://www.checkatrade.com/blog/cost-guides/new-boiler-cost/ + # To be pessimistic, assume 2 days work and £500 day rate + labour_cost = labour_rate * self.labour_adjustment_factor * labour_days + # Add contingency and preliminaries + labour_cost = labour_cost * (1 + self.CONTINGENCY + self.PRELIMINARIES) + vat = labour_cost * self.VAT_RATE + + subtotal_before_vat = unit_cost + labour_cost + total_cost = subtotal_before_vat + vat + + return { + "total": total_cost, + "subtotal": subtotal_before_vat, + "vat": vat, + "labour_hours": labour_days * 8, + "labour_days": labour_days, + } diff --git a/recommendations/HeatingControlRecommender.py b/recommendations/HeatingControlRecommender.py index 99b41469..547ea497 100644 --- a/recommendations/HeatingControlRecommender.py +++ b/recommendations/HeatingControlRecommender.py @@ -189,7 +189,7 @@ class HeatingControlRecommender: # 2) The current heating controls are not already at 'Very Good' or above if ( - (self.property["thermostatic_control"] == "time and temperature zone control") or + (self.property.main_heating_controls["thermostatic_control"] == "time and temperature zone control") or (self.property.data["mainheatc-energy-eff"] in ["Very Good"]) ): # No recommendation needed @@ -209,7 +209,9 @@ class HeatingControlRecommender: self.recommendation.append( { "description": "upgrade heating controls to Room thermostat, programmer and TRVs", - **self.costs.time_and_temperature_zone_control(), + **self.costs.time_and_temperature_zone_control( + number_heated_rooms=int(self.property.data["number-heated-rooms"]) + ), "simulation_config": simulation_config } ) diff --git a/recommendations/HeatingRecommender.py b/recommendations/HeatingRecommender.py index 6467bd2f..c7064274 100644 --- a/recommendations/HeatingRecommender.py +++ b/recommendations/HeatingRecommender.py @@ -28,7 +28,7 @@ class HeatingRecommender: # if the property has mains heating with boiler and radiators, we recommend optimal heating controls if self.property.main_heating["clean_description"] in ["Boiler and radiators, mains gas"]: - self.recommend_roomstat_programmer_trvs(phase=phase) + self.recommend_boiler_upgrades(phase=phase) return @staticmethod @@ -188,14 +188,89 @@ class HeatingRecommender: self.recommendations.extend(recommendations) - def recommend_roomstat_programmer_trvs(self, phase): - """ + @staticmethod + def estimate_boiler_size(property_type, built_form, floor_area, floor_height, num_heated_rooms): + # Step 1: Base size estimation based on property type (as a starting point) + base_size = { + 'Flat': 25, + 'House': 30, + 'Maisonette': 28, + 'Bungalow': 27 + } + # Step 2: Calculate the volume of the property + volume = floor_area * floor_height + + # Step 3: Adjust base size for built form (to account for heat retention) + form_adjustment = { + 'Mid-Terrace': 0, + 'End-Terrace': 2, + 'Semi-Detached': 4, + 'Detached': 6 + } + + # Step 4: Further adjust for the total volume and number of heated rooms + volume_adjustment = (volume / 100) # Simplified adjustment factor for volume + rooms_adjustment = (num_heated_rooms - 5) * 0.5 # Assuming base case of 5 rooms + + # Calculate the estimated boiler size + estimated_size = base_size[property_type] + form_adjustment[built_form] + volume_adjustment + rooms_adjustment + + # Step 5: Align with available boiler sizes and ensure it does not exceed 35kW, as it's rare to need more + available_sizes = [30, 35, 40, 45, 50] + estimated_size = min(max(estimated_size, 30), 40) # Ensure within 30kW to 35kW range + + # Find the closest available size (in this case, either rounding up or down to align with 30 or 35) + closest_size = min(available_sizes, key=lambda x: abs(x - estimated_size)) + + return closest_size + + def recommend_boiler_upgrades(self, phase): + """ + This boiler recommendation will only recommend a like-for-like upgrade, since changing the system + is generally more expensive :param phase: :return: """ + + # We now recommend boiler upgrades, if applicable + if self.property.data["mainheat-energy-eff"] in ["Very Poor", "Poor", "Average"]: + boiler_size = self.estimate_boiler_size( + property_type=self.property.data["property-type"], + built_form=self.property.data["built-form"], + floor_area=self.property.floor_area, + floor_height=self.property.floor_height, + num_heated_rooms=self.property.data["number-heated-rooms"], + ) + + # If heating and hot water come from the mains, we need a combi boiler, otherwise we need a regular boiler + is_combi = self.property.hotwater["clean_description"] in ["From main system"] + if is_combi: + description = "Upgrade to a low carbon combi boiler" + else: + description = "Upgrade to a low carbon boiler" + + self.recommendations.append( + { + "phase": phase, + "parts": [ + # TODO + ], + "type": "heating", + "description": description, + "starting_u_value": None, + "new_u_value": None, + "sap_points": None, + **self.costs.low_carbon_boiler(is_combi=is_combi, size=f"{boiler_size}kw") + } + ) + # We recommend the heating controls controls_recommender = HeatingControlRecommender(self.property) controls_recommender.recommend(heating_description="Boiler and radiators, mains gas") + # We may have 2 recommendations from the heating controls - controls_recommender.recommendation + # The heating controls recommendation is distrinct from the boiler upgrade recommendation + # We insert phase into the recommendations for heating controls + for recommendation in controls_recommender.recommendation: + recommendation["phase"] = phase diff --git a/recommendations/Recommendations.py b/recommendations/Recommendations.py index 944fec7a..d9a0a0fd 100644 --- a/recommendations/Recommendations.py +++ b/recommendations/Recommendations.py @@ -110,6 +110,9 @@ class Recommendations: self.heating_recommender.recommend(phase=phase) if self.heating_recommender.recommendations: property_recommendations.append(self.heating_recommender.recommendations) + # We check if we have distinct heating and heating controls recommendations + # If so, we increment by 2 (one of the heating system, one for the heating controls) + # otherwise we incremenet by 1 phase += 1 # Hot water From 09bbeaecae8156faedf090a28bfe0bcae231f0d2 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Wed, 3 Apr 2024 14:57:11 +0100 Subject: [PATCH 466/526] incorporate heating and heating control recommendations --- recommendations/HeatingRecommender.py | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/recommendations/HeatingRecommender.py b/recommendations/HeatingRecommender.py index c7064274..676a4b06 100644 --- a/recommendations/HeatingRecommender.py +++ b/recommendations/HeatingRecommender.py @@ -233,6 +233,8 @@ class HeatingRecommender: :return: """ + recommendation_phase = phase + # We now recommend boiler upgrades, if applicable if self.property.data["mainheat-energy-eff"] in ["Very Poor", "Poor", "Average"]: boiler_size = self.estimate_boiler_size( @@ -252,7 +254,7 @@ class HeatingRecommender: self.recommendations.append( { - "phase": phase, + "phase": recommendation_phase, "parts": [ # TODO ], @@ -261,16 +263,21 @@ class HeatingRecommender: "starting_u_value": None, "new_u_value": None, "sap_points": None, + "simulation_config": {"mainheat_energy_eff_ending": "Good"}, **self.costs.low_carbon_boiler(is_combi=is_combi, size=f"{boiler_size}kw") } ) + # We increment the recommendation phase, in the case of us having heating control recommendations + recommendation_phase += 1 + # We recommend the heating controls controls_recommender = HeatingControlRecommender(self.property) controls_recommender.recommend(heating_description="Boiler and radiators, mains gas") # We may have 2 recommendations from the heating controls - # The heating controls recommendation is distrinct from the boiler upgrade recommendation - # We insert phase into the recommendations for heating controls - for recommendation in controls_recommender.recommendation: - recommendation["phase"] = phase + if controls_recommender.recommendation: + # The heating controls recommendation is distrinct from the boiler upgrade recommendation + # We insert phase into the recommendations for heating controls + for recommendation in controls_recommender.recommendation: + recommendation["phase"] = recommendation_phase From 9130ad55fffc21858ca7061d26a2f6ecb8d66e3d Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Wed, 3 Apr 2024 14:59:42 +0100 Subject: [PATCH 467/526] Added missing controls to output --- recommendations/HeatingRecommender.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/recommendations/HeatingRecommender.py b/recommendations/HeatingRecommender.py index 676a4b06..9658aaa3 100644 --- a/recommendations/HeatingRecommender.py +++ b/recommendations/HeatingRecommender.py @@ -281,3 +281,5 @@ class HeatingRecommender: # We insert phase into the recommendations for heating controls for recommendation in controls_recommender.recommendation: recommendation["phase"] = recommendation_phase + + self.recommendations.extend(controls_recommender.recommendation) From a9c2bf1b9c0be1192edbeb50ba01401d1e55578f Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Wed, 3 Apr 2024 15:06:44 +0100 Subject: [PATCH 468/526] added correct incrementing of phase --- recommendations/HeatingControlRecommender.py | 8 ++++++++ recommendations/Recommendations.py | 4 +++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/recommendations/HeatingControlRecommender.py b/recommendations/HeatingControlRecommender.py index 547ea497..e224f243 100644 --- a/recommendations/HeatingControlRecommender.py +++ b/recommendations/HeatingControlRecommender.py @@ -161,6 +161,7 @@ class HeatingControlRecommender: self.recommendation.append( { + "type": "heating_control", "description": "upgrade heating controls to Room thermostat, programmer and TRVs", **self.costs.roomstat_programmer_trvs( number_heated_rooms=int(self.property.data["number-heated-rooms"]), @@ -168,6 +169,9 @@ class HeatingControlRecommender: has_room_thermostat=has_room_thermostat, has_trvs=has_trvs ), + "starting_u_value": None, + "new_u_value": None, + "sap_points": None, "simulation_config": simulation_config } ) @@ -208,10 +212,14 @@ class HeatingControlRecommender: self.recommendation.append( { + "type": "heating_control", "description": "upgrade heating controls to Room thermostat, programmer and TRVs", **self.costs.time_and_temperature_zone_control( number_heated_rooms=int(self.property.data["number-heated-rooms"]) ), + "starting_u_value": None, + "new_u_value": None, + "sap_points": None, "simulation_config": simulation_config } ) diff --git a/recommendations/Recommendations.py b/recommendations/Recommendations.py index d9a0a0fd..902023dc 100644 --- a/recommendations/Recommendations.py +++ b/recommendations/Recommendations.py @@ -113,7 +113,9 @@ class Recommendations: # We check if we have distinct heating and heating controls recommendations # If so, we increment by 2 (one of the heating system, one for the heating controls) # otherwise we incremenet by 1 - phase += 1 + max_used_phase = max([rec["phase"] for rec in self.heating_recommender.recommendations]) + amount_to_increment = max_used_phase - phase + 1 + phase += amount_to_increment # Hot water if "hot_water" not in self.exclusions: From 2234269ca62611c9f0285acc0f79491ce98cf277 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Wed, 3 Apr 2024 15:14:19 +0100 Subject: [PATCH 469/526] added simulation --- backend/Property.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/backend/Property.py b/backend/Property.py index d97ce8cf..82108bbb 100644 --- a/backend/Property.py +++ b/backend/Property.py @@ -344,7 +344,7 @@ class Property: else: output["glazed_type_ending"] = "double glazing installed during or after 2002" - if recommendation["type"] in ["heating", "hot_water_tank_insulation"]: + if recommendation["type"] in ["heating", "hot_water_tank_insulation", "heating_control"]: # We update the data, as defined in the recommendaton simulation_config = recommendation["simulation_config"] @@ -364,7 +364,8 @@ class Property: "internal_wall_insulation", "external_wall_insulation", "cavity_wall_insulation", "loft_insulation", "room_roof_insulation", "flat_roof_insulation", "solid_floor_insulation", "suspended_floor_insulation", "exposed_floor_insulation", - "windows_glazing", "solar_pv", "heating", "hot_water_tank_insulation" + "windows_glazing", "solar_pv", "heating", "hot_water_tank_insulation", + "heating_control", ]: raise NotImplementedError("Implement me, given type %s" % recommendation["type"]) From f2cec8de11305c7d763a712050f0da685001bd7f Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Wed, 3 Apr 2024 16:30:45 +0100 Subject: [PATCH 470/526] fixed description for ttaz --- recommendations/HeatingControlRecommender.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/recommendations/HeatingControlRecommender.py b/recommendations/HeatingControlRecommender.py index e224f243..7010ad53 100644 --- a/recommendations/HeatingControlRecommender.py +++ b/recommendations/HeatingControlRecommender.py @@ -162,6 +162,7 @@ class HeatingControlRecommender: self.recommendation.append( { "type": "heating_control", + "parts": [], "description": "upgrade heating controls to Room thermostat, programmer and TRVs", **self.costs.roomstat_programmer_trvs( number_heated_rooms=int(self.property.data["number-heated-rooms"]), @@ -213,7 +214,8 @@ class HeatingControlRecommender: self.recommendation.append( { "type": "heating_control", - "description": "upgrade heating controls to Room thermostat, programmer and TRVs", + "parts": [], + "description": "Upgrade heating controls to Time and Temperature Zone Controls", **self.costs.time_and_temperature_zone_control( number_heated_rooms=int(self.property.data["number-heated-rooms"]) ), From 519dc6cfcb31ce4093ae0e6cace03ba30920e5e7 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Wed, 3 Apr 2024 19:17:27 +0100 Subject: [PATCH 471/526] added off-gas property recommendations --- backend/app/plan/router.py | 1 + etl/customers/gla_croydon_demo/asset_list.py | 42 +++- etl/customers/gla_croydon_demo/slides.py | 200 ++++++++++++++++++- recommendations/HeatingControlRecommender.py | 2 +- recommendations/HeatingRecommender.py | 12 +- 5 files changed, 247 insertions(+), 10 deletions(-) diff --git a/backend/app/plan/router.py b/backend/app/plan/router.py index 50b8a837..4868749d 100644 --- a/backend/app/plan/router.py +++ b/backend/app/plan/router.py @@ -389,6 +389,7 @@ async def trigger_plan(body: PlanTriggerRequest): # Commit final changes session.commit() + except IntegrityError: logger.error("Database integrity error occurred", exc_info=True) session.rollback() diff --git a/etl/customers/gla_croydon_demo/asset_list.py b/etl/customers/gla_croydon_demo/asset_list.py index 3a3f02a3..52e9422c 100644 --- a/etl/customers/gla_croydon_demo/asset_list.py +++ b/etl/customers/gla_croydon_demo/asset_list.py @@ -4,6 +4,23 @@ from utils.s3 import save_csv_to_s3 USER_ID = 8 PORTFOLIO_ID = 67 +archetype_1_uprns = [100020604138, 200001188299, 100020578756, 200001187196, 200001192253, 100020581792, 200001188304, + 100020625813, 100020618060, 100020585305, 100020617489, 100020615039, 100020618076, 100020588913, + 200001187197, 100020671205, 100020576940, 100020619814, 100020576472, 100020618083] +archetype_2_uprns = [100020698027, 10001007455, 100020653785, 10090383198, 100020665632, 100020620659, 100020615603, + 100020609610, 100020625597, 100020665656, 100020665640, 100020587905, 100020665630, 100020624351, + 100020625451, 100020624348, 100020666735, 100020653786, 100020576458, 100020657902, 100020624350, + 100020637405, 100020666734, 100020616325, 100020666716, 100020653783, 100020665645, 100020642337, + 100020665638, 100022904981, 100020688226, 100020630285, 100020626800, 100020665634, 100022907528, + 100020665652, 100020624347, 100020666721, 100020585002, 10014055968, 10001008257, 100020621438, + 100020576459, 100020665643, 100020665654, 100022917303] +archetype_3_uprns = [100020577523, 100020616446, 100020605342, 100020594652, 100020585394, 100020601138, 100020597485, + 100020614883, 100020633162, 100020697787, 200001185785, 100020646842, 100020581449, 100020595611, + 100020641814, 100020575611, 100020652986, 100020654671, 100020647336, 100020610518, 100020607980, + 100020692380, 100020581690] +archetype_4_uprns = [100020650603, 100020582907, 100020605116, 100020650607, 100020589325, 100020655500, 100020642537, + 200001187539, 100020631683, 100020610165, 100020596436, 100020598277, 100020660228] + def app(): """ @@ -84,14 +101,15 @@ def app(): archetype_2_sample_asset_list["ARCHETYPE"] = "Archetype 2" # Archetype 3: defined below: - # 1) EPC F + # 1) EPC E or below # 2) Solid brick wall # 3) House # 4) Pitched roof with no insulation # Just 7 properties (more expensive to retrofit) archetype_3_sample = epc_data[ epc_data["PROPERTY_TYPE"].isin(["House"]) & - (epc_data["CURRENT_ENERGY_RATING"].isin(["F", "G"])) & + (epc_data["CURRENT_ENERGY_RATING"].isin(["E", "F", "G"])) & + epc_data["WALLS_DESCRIPTION"].isin(["Solid brick, as built, no insulation (assumed)"]) & epc_data["ROOF_DESCRIPTION"].isin( [ "Pitched, no insulation", @@ -119,7 +137,6 @@ def app(): archetype_4_sample_asset_list = archetype_4_sample[["UPRN", "ADDRESS1", "POSTCODE"]].copy() archetype_4_sample_asset_list["ARCHETYPE"] = "Archetype 4" - # 104 total properties asset_list = pd.concat( [ archetype_1_sample_asset_list, @@ -152,6 +169,25 @@ def app(): ] ) ] + # We have slightly too many properties, so we take a random sample of each archetype + # achetype_1_size = 20 + # achetype_2_size = 46 + # achetype_3_size = 23 + # achetype_4_size = 13 + # archetype_1_uprns = asset_list[asset_list["archetype"] == "Archetype 1"]["uprn"].sample( + # int(achetype_1_size) + # ).tolist() + # archetype_2_uprns = asset_list[asset_list["archetype"] == "Archetype 2"]["uprn"].sample( + # int(achetype_2_size) + # ).tolist() + # archetype_3_uprns = asset_list[asset_list["archetype"] == "Archetype 3"]["uprn"].sample( + # int(achetype_3_size) + # ).tolist() + # archetype_4_uprns = asset_list[asset_list["archetype"] == "Archetype 4"]["uprn"].sample( + # int(achetype_4_size) + # ).tolist() + uprns_to_keep = archetype_1_uprns + archetype_2_uprns + archetype_3_uprns + archetype_4_uprns + asset_list = asset_list[asset_list["uprn"].isin(uprns_to_keep)] filename = f"{USER_ID}/{PORTFOLIO_ID}/inputs.csv" save_csv_to_s3( diff --git a/etl/customers/gla_croydon_demo/slides.py b/etl/customers/gla_croydon_demo/slides.py index 1d217226..e6c4b5b8 100644 --- a/etl/customers/gla_croydon_demo/slides.py +++ b/etl/customers/gla_croydon_demo/slides.py @@ -27,8 +27,24 @@ SAP_TARGET_1 = 69 SAP_TARGET_2 = 100 CUSTOMER_KEY = "gla-demo" +# Sample UPRNS +archetype_1_sample = ['100020618076', '100020619814', '100020581792', '100020671205', '100020585305', '100020606853', + '100020625813', '100020618042', '200001188304', '200001187196', '100020603026', '100020604138', + '100020615039', '200001188299', '100020618060', '200001192253'] -def app(): +archetype_2_sample = ['100020616325', '100020665634', '100020665654', '100020665638', '100020587936', '100020587905', + '100020665645', '100020625597', '100022907528', '100020665630', '100020624348', '10001008257', + '100020666735', '100020698027', '100020624351', '100020665656', '100020666716', '100020665632', + '100020666715', '100020645639', '200001191309', '100020625451', '100020624347', '100020665658', + '100020585002', '100022917303', '100020665650', '100020667737', '100020620659', '100022904981', + '100020642337', '100020657902', '100020615603', '100020626800', '100020665647', '100020665643'] + +archetype_3_sample = ['100020607980', '200001193193', '100020581690', '100020665611'] +archetype_4_sample = ['100020631683', '100020607667', '100020660228', '100020605116', '200001187539', '100020582907', + '100020610165', '100020650607', '100020655500', '100020598277', '100020642537'] + + +def scenario_1(): # Connect to database session = sessionmaker(bind=db_engine)() @@ -36,9 +52,7 @@ def app(): # Get the data we need ######################################################################## - # TODO: Update to portfolio desired - # portfolio_id = PORTFOLIO_ID_1 - portfolio_id = PORTFOLIO_ID_2 + portfolio_id = PORTFOLIO_ID_1 # Get the asset list asset_list = read_csv_from_s3( @@ -157,3 +171,181 @@ def app(): # Overview ######################## overview_totals = recommendations_summary.sum() + + +def make_sample(): + # sample_proportion = 67 / 102 + # Get the asset list + asset_list = read_csv_from_s3( + "retrofit-plan-inputs-dev", f"{USER_ID}/67/inputs.csv" + ) + asset_list = pd.DataFrame(asset_list) + + # From the asset list, we deduce how many properties we need + archetype_1_sample_size = 16 + archetype_2_sample_size = 36 + archetype_3_sample_size = 4 + archetype_4_sample_size = 11 + + # We take the sample and we'll keep the uprns static + archetype_1_sample = asset_list[ + asset_list["archetype"] == "Archetype 1" + ].sample(archetype_1_sample_size)["uprn"].to_list() + + archetype_2_sample = asset_list[ + asset_list["archetype"] == "Archetype 2" + ].sample(archetype_2_sample_size)["uprn"].to_list() + + archetype_3_sample = asset_list[ + asset_list["archetype"] == "Archetype 3" + ].sample(archetype_3_sample_size)["uprn"].to_list() + + archetype_4_sample = asset_list[ + asset_list["archetype"] == "Archetype 4" + ].sample(archetype_4_sample_size)["uprn"].to_list() + + +def scenario_2(): + # Connect to database + session = sessionmaker(bind=db_engine)() + + ######################################################################## + # Get the data we need + ######################################################################## + + portfolio_id = PORTFOLIO_ID_2 + + # Get the asset list + asset_list = read_csv_from_s3( + "retrofit-plan-inputs-dev", f"{USER_ID}/67/inputs.csv" + ) + asset_list = pd.DataFrame(asset_list) + + sample_uprns = archetype_1_sample + archetype_2_sample + archetype_3_sample + archetype_4_sample + + # Filter on sample uprns + asset_list = asset_list[asset_list["uprn"].astype(str).isin(sample_uprns)] + + # Get the properties for the portfolio + properties = get_properties_with_default_recommendations(session, portfolio_id) + properties_df = pd.DataFrame(properties) + properties_df = properties_df[properties_df["uprn"].astype(str).isin(sample_uprns)] + + # We now pull the data for the property details + property_details = get_property_details_by_portfolio_id(session, portfolio_id) + property_details_df = pd.DataFrame(property_details) + property_details_df = property_details_df[property_details_df["property_id"].isin(properties_df["id"].values)] + # We estimate bills based on the adjusted_energy_consumption + property_details_df["energy_bill"] = property_details_df["adjusted_energy_consumption"].apply( + lambda x: AnnualBillSavings.calculate_annual_bill(x) + ) + # Merge on uprn + property_details_df = property_details_df.merge( + properties_df[["uprn", "id"]].rename(columns={"id": "property_id"}), + on="property_id" + ) + + plans = get_plan_by_portfolio_id(session, portfolio_id) + plans_df = pd.DataFrame(plans) + + # Unnest the recommendations. Each recommendation is a list of dictionaries + recommendations_exploded = properties_df["recommendations"].explode().tolist() + recommendations_df = pd.DataFrame([r for r in recommendations_exploded if not pd.isnull(r)]) + # Add uprn on + recommendations_df = recommendations_df.merge( + properties_df[["uprn", "id"]].rename(columns={"id": "property_id"}), + how="left", + on="property_id" + ) + + recommendations_summary = create_recommendations_summary( + recommendations_df, + properties_df, + property_details_df, + SAP_TARGET_1 + ) + + # Calculate % changes of energ, co2 and abs + recommendations_summary["carbon_percent_change"] = ( + recommendations_summary["total_carbon"] / recommendations_summary["current_co2"] + ) + + recommendations_summary["energy_percent_change"] = ( + recommendations_summary["adjusted_heat_demand"] / recommendations_summary["current_energy"] + ) + + recommendations_summary["bills_percent_change"] = ( + recommendations_summary["total_bill_savings"] / recommendations_summary["current_energy_bill"] + ) + + ######################## + # Overview + ######################## + overview_totals = recommendations_summary.sum() + overview_means = recommendations_summary.mean() + + ######################## + # Measures + ######################## + measures_count = recommendations_df.groupby("type")["id"].count().reset_index() + + z = recommendations_df[recommendations_df["uprn"].astype(str).isin(archetype_3_sample)] + + recommendations_df[recommendations_df["uprn"].astype(str).isin(archetype_3_sample)]["type"].value_counts() + + # Summary information by each archetype + ######################## + # Archetype 1 + ######################## + archetype_1 = asset_list[asset_list["archetype"] == "Archetype 1"] + recommendations_arch_1_summary = recommendations_summary[ + recommendations_summary["uprn"].astype(str).isin(archetype_1["uprn"].values) + ] + + # Take the mean, median and maximum of each value + arch_1_recommendation_min = recommendations_arch_1_summary.min() + arch_1_recommendation_max = recommendations_arch_1_summary.max() + arch_1_recommendation_means = recommendations_arch_1_summary.mean() + + ######################## + # Archetype 2 + ######################## + archetype_2 = asset_list[asset_list["archetype"] == "Archetype 2"] + recommendations_arch_2_summary = recommendations_summary[ + recommendations_summary["uprn"].astype(str).isin(archetype_2["uprn"].values) + ] + + # Take the mean, median and maximum of each value + arch_2_recommendation_min = recommendations_arch_2_summary.min() + arch_2_recommendation_max = recommendations_arch_2_summary.max() + arch_2_recommendation_means = recommendations_arch_2_summary.mean().round(2) + + ######################## + # Archetype 3 + ######################## + archetype_3 = asset_list[asset_list["archetype"] == "Archetype 3"] + recommendations_arch_3_summary = recommendations_summary[ + recommendations_summary["uprn"].astype(str).isin(archetype_3["uprn"].values) + ] + + # Take the mean, median and maximum of each value + arch_3_recommendation_min = recommendations_arch_3_summary.min() + arch_3_recommendation_max = recommendations_arch_3_summary.max() + arch_3_recommendation_means = recommendations_arch_3_summary.mean() + + ######################## + # Archetype 4 + ######################## + archetype_4 = asset_list[asset_list["archetype"] == "Archetype 4"] + recommendations_arch_4_summary = recommendations_summary[ + recommendations_summary["uprn"].astype(str).isin(archetype_4["uprn"].values) + ] + + # Take the mean, median and maximum of each value + arch_4_recommendation_min = recommendations_arch_4_summary.min() + arch_4_recommendation_max = recommendations_arch_4_summary.max() + arch_4_recommendation_means = recommendations_arch_4_summary.mean() + + property_details_df[ + property_details_df["uprn"].astype(str).isin(archetype_4["uprn"].values) + ]["total_floor_area"].mean() diff --git a/recommendations/HeatingControlRecommender.py b/recommendations/HeatingControlRecommender.py index 7010ad53..95b5e3b1 100644 --- a/recommendations/HeatingControlRecommender.py +++ b/recommendations/HeatingControlRecommender.py @@ -215,7 +215,7 @@ class HeatingControlRecommender: { "type": "heating_control", "parts": [], - "description": "Upgrade heating controls to Time and Temperature Zone Controls", + "description": "Upgrade heating controls to Smart Thermostats, room sensors and smart radiator valves", **self.costs.time_and_temperature_zone_control( number_heated_rooms=int(self.property.data["number-heated-rooms"]) ), diff --git a/recommendations/HeatingRecommender.py b/recommendations/HeatingRecommender.py index 9658aaa3..8b20c0cd 100644 --- a/recommendations/HeatingRecommender.py +++ b/recommendations/HeatingRecommender.py @@ -19,9 +19,17 @@ class HeatingRecommender: self.recommendations = [] # This first iteration of the recommender will provide very basic recommendation # We recommend heating controls based on the main heating system - if self.property.main_heating["clean_description"] in [ + + has_electric_heating_description = self.property.main_heating["clean_description"] in [ "Room heaters, electric", "Electric storage heaters", "Electric storage heaters, radiators" - ]: + ] + + no_heating_no_mains = ( + self.property.main_heating["clean_description"] in ["No system present, electric heaters assumed"] and + not self.property.data["mains-gas-flag"] + ) + + if has_electric_heating_description or no_heating_no_mains: # Recommend high heat retention storage heaters self.recommend_electric_storage_heaters(phase=phase, system_change=True, heating_controls_only=False) return From 47ebf866ee141c8ed91a7191b5bb75ef49246950 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Wed, 3 Apr 2024 20:02:37 +0100 Subject: [PATCH 472/526] fixed sample in slides --- backend/app/plan/router.py | 1 - etl/customers/gla_croydon_demo/slides.py | 35 +++++++++++---------- recommendations/HeatingRecommender.py | 39 ++++++++++++++++++++++-- 3 files changed, 55 insertions(+), 20 deletions(-) diff --git a/backend/app/plan/router.py b/backend/app/plan/router.py index 4868749d..50b8a837 100644 --- a/backend/app/plan/router.py +++ b/backend/app/plan/router.py @@ -389,7 +389,6 @@ async def trigger_plan(body: PlanTriggerRequest): # Commit final changes session.commit() - except IntegrityError: logger.error("Database integrity error occurred", exc_info=True) session.rollback() diff --git a/etl/customers/gla_croydon_demo/slides.py b/etl/customers/gla_croydon_demo/slides.py index e6c4b5b8..cbd1f7e4 100644 --- a/etl/customers/gla_croydon_demo/slides.py +++ b/etl/customers/gla_croydon_demo/slides.py @@ -28,20 +28,22 @@ SAP_TARGET_2 = 100 CUSTOMER_KEY = "gla-demo" # Sample UPRNS -archetype_1_sample = ['100020618076', '100020619814', '100020581792', '100020671205', '100020585305', '100020606853', - '100020625813', '100020618042', '200001188304', '200001187196', '100020603026', '100020604138', - '100020615039', '200001188299', '100020618060', '200001192253'] +archetype_1_sample = ['100020604138', '200001192253', '100020581792', '100020576940', '200001187196', '100020618060', + '100020625813', '100020578756', '100020618076', '200001187197', '100020619814', '100020617489', + '100020588913'] -archetype_2_sample = ['100020616325', '100020665634', '100020665654', '100020665638', '100020587936', '100020587905', - '100020665645', '100020625597', '100022907528', '100020665630', '100020624348', '10001008257', - '100020666735', '100020698027', '100020624351', '100020665656', '100020666716', '100020665632', - '100020666715', '100020645639', '200001191309', '100020625451', '100020624347', '100020665658', - '100020585002', '100022917303', '100020665650', '100020667737', '100020620659', '100022904981', - '100020642337', '100020657902', '100020615603', '100020626800', '100020665647', '100020665643'] +archetype_2_sample = ['100020585002', '100020615603', '100020665652', '100020626800', '100020624347', '100020624348', + '100020576459', '10001007455', '100020666716', '100020609610', '100020625451', '100020625597', + '100020624351', '100020665634', '100020624350', '100020665640', '100020665632', '100022917303', + '100020665656', '10014055968', '100020630285', '100020665638', '100020616325', '100020637405', + '100020698027', '100020657902', '100020688226', '100020653786', '100020642337', '100020665643'] -archetype_3_sample = ['100020607980', '200001193193', '100020581690', '100020665611'] -archetype_4_sample = ['100020631683', '100020607667', '100020660228', '100020605116', '200001187539', '100020582907', - '100020610165', '100020650607', '100020655500', '100020598277', '100020642537'] +archetype_3_sample = ['100020594652', '100020697787', '100020577523', '100020633162', '100020601138', '100020595611', + '100020597485', '100020614883', '100020605342', '100020654671', '100020575611', '100020607980', + '200001185785', '100020616446', '100020692380'] + +archetype_4_sample = ['100020596436', '100020610165', '200001187539', '100020655500', '100020582907', '100020598277', + '100020650607', '100020605116', '100020650603'] def scenario_1(): @@ -182,10 +184,11 @@ def make_sample(): asset_list = pd.DataFrame(asset_list) # From the asset list, we deduce how many properties we need - archetype_1_sample_size = 16 - archetype_2_sample_size = 36 - archetype_3_sample_size = 4 - archetype_4_sample_size = 11 + # Need to figure out the sizes + archetype_1_sample_size = 13 + archetype_2_sample_size = 30 + archetype_3_sample_size = 15 + archetype_4_sample_size = 9 # We take the sample and we'll keep the uprns static archetype_1_sample = asset_list[ diff --git a/recommendations/HeatingRecommender.py b/recommendations/HeatingRecommender.py index 8b20c0cd..9d2e99e3 100644 --- a/recommendations/HeatingRecommender.py +++ b/recommendations/HeatingRecommender.py @@ -4,6 +4,7 @@ from recommendations.Costs import Costs from recommendations.recommendation_utils import check_simulation_difference from backend.Property import Property from etl.epc_clean.epc_attributes.MainheatAttributes import MainHeatAttributes +from etl.epc_clean.epc_attributes.HotWaterAttributes import HotWaterAttributes from recommendations.HeatingControlRecommender import HeatingControlRecommender @@ -35,7 +36,14 @@ class HeatingRecommender: return # if the property has mains heating with boiler and radiators, we recommend optimal heating controls - if self.property.main_heating["clean_description"] in ["Boiler and radiators, mains gas"]: + has_boiler = self.property.main_heating["clean_description"] in ["Boiler and radiators, mains gas"] + + # We also check that the property doesn't have a heating system, but it has access to the mains gas + no_heating_has_mains = self.property.main_heating["clean_description"] in [ + 'No system present, electric heaters assumed' + ] and self.property.data["mains-gas-flag"] + + if has_boiler or no_heating_has_mains: self.recommend_boiler_upgrades(phase=phase) return @@ -254,12 +262,37 @@ class HeatingRecommender: ) # If heating and hot water come from the mains, we need a combi boiler, otherwise we need a regular boiler - is_combi = self.property.hotwater["clean_description"] in ["From main system"] + hotwater_from_mains = self.property.hotwater["clean_description"] in ["From main system"] + access_to_mains_no_system = self.property.main_heating["clean_description"] in [ + 'No system present, electric heaters assumed' + ] and self.property.data["mains-gas-flag"] + is_combi = hotwater_from_mains or access_to_mains_no_system if is_combi: description = "Upgrade to a low carbon combi boiler" else: description = "Upgrade to a low carbon boiler" + simulation_config = {"mainheat_energy_eff_ending": "Good"} + if access_to_mains_no_system: + # Installation of a boiler improves the hot water system so we need to reflect this in + # the outcome of the recommendation + heating_ending_config = MainHeatAttributes("Boiler and radiators, mains gas").process() + hotwater_ending_config = HotWaterAttributes("From main system").process() + + heating_simulation_config = check_simulation_difference( + new_config=heating_ending_config, old_config=self.property.main_heating + ) + hotwater_simulation_config = check_simulation_difference( + new_config=hotwater_ending_config, old_config=self.property.hotwater + ) + + simulation_config = { + **simulation_config, + **heating_simulation_config, + **hotwater_simulation_config, + "hot_water_energy_eff_ending": "Good" + } + self.recommendations.append( { "phase": recommendation_phase, @@ -271,7 +304,7 @@ class HeatingRecommender: "starting_u_value": None, "new_u_value": None, "sap_points": None, - "simulation_config": {"mainheat_energy_eff_ending": "Good"}, + "simulation_config": simulation_config, **self.costs.low_carbon_boiler(is_combi=is_combi, size=f"{boiler_size}kw") } ) From 93830f90bb785a3f7f17e77a1ef8285d4aed966e Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Thu, 4 Apr 2024 16:35:14 +0100 Subject: [PATCH 473/526] removed low carbon from boiler terminology --- backend/ml_models/AnnualBillSavings.py | 6 +- etl/customers/gla_croydon_demo/slides.py | 424 ++++++++++++++++++++++- recommendations/HeatingRecommender.py | 15 +- 3 files changed, 431 insertions(+), 14 deletions(-) diff --git a/backend/ml_models/AnnualBillSavings.py b/backend/ml_models/AnnualBillSavings.py index 9be9d78a..99d67126 100644 --- a/backend/ml_models/AnnualBillSavings.py +++ b/backend/ml_models/AnnualBillSavings.py @@ -19,7 +19,8 @@ class AnnualBillSavings: PRICE_FACTOR = 0.09549999999999999 # Daily standard charge, based on average across England, Scotland and Wales, and includes VAT - DAILY_STANDARD_CHARGE = 0.3143 + DAILY_STANDARD_CHARGE_GAS = 0.3143 + DAILY_STANDARD_CHARGE_ELECTRICITY = 0.601 EPC_BANDS = ["G", "F", "E", "D", "C", "B", "A"] @@ -45,11 +46,12 @@ class AnnualBillSavings: def calculate_annual_bill(cls, kwh): """ This method will estimate the total annual bill for a property + It assumed gas & electricity are used :param kwh: The total kwh consumption :return: An estimate for annual bill """ - return cls.PRICE_FACTOR * kwh + cls.DAILY_STANDARD_CHARGE * 365 + return cls.PRICE_FACTOR * kwh + (cls.DAILY_STANDARD_CHARGE_GAS + cls.DAILY_STANDARD_CHARGE_ELECTRICITY * 365) @classmethod def adjust_energy_to_metered(cls, epc_energy_consumption, current_epc_rating): diff --git a/etl/customers/gla_croydon_demo/slides.py b/etl/customers/gla_croydon_demo/slides.py index cbd1f7e4..9f791bbd 100644 --- a/etl/customers/gla_croydon_demo/slides.py +++ b/etl/customers/gla_croydon_demo/slides.py @@ -112,6 +112,49 @@ def scenario_1(): recommendations_summary["total_bill_savings"] / recommendations_summary["current_energy_bill"] ) + ######################## + # Overview + ######################## + overview_totals = recommendations_summary.sum() + overview_means = recommendations_summary.mean() + + ######################## + # Measures + ######################## + measures_count = recommendations_df.groupby("type")["id"].count().reset_index() + wall_insulation_measures = measures_count[ + measures_count["type"].isin(["cavity_wall_insulation", "external_wall_insulation", "internal_wall_insulation"]) + ]["id"].sum() + ventilation_measures = measures_count[ + measures_count["type"].isin(["mechanical_ventilation"]) + ]["id"].sum() + roof_insulation_measures = measures_count[ + measures_count["type"].isin(["loft_insulation", "flat_roof_insulation"]) + ]["id"].sum() + floor_insulation_measures = measures_count[ + measures_count["type"].isin(["solid_floor_insulation", "suspended_floor_insulation"]) + ]["id"].sum() + windows = measures_count[ + measures_count["type"].isin(["windows_glazing"]) + ]["id"].sum() + heating = measures_count[ + measures_count["type"].isin(["heating"]) + ]["id"].sum() + heating_controls = measures_count[ + measures_count["type"].isin(["heating_control"]) + ]["id"].sum() + solar = measures_count[ + measures_count["type"].isin(["solar_pv"]) + ]["id"].sum() + other = measures_count[ + ~measures_count["type"].isin([ + "cavity_wall_insulation", "external_wall_insulation", "internal_wall_insulation", + "loft_insulation", "flat_roof_insulation", "solid_floor_insulation", + "suspended_floor_insulation", "windows_glazing", "heating", "heating_control", "solar_pv", + "mechanical_ventilation" + ]) + ]["id"].sum() + # Summary information by each archetype ######################## # Archetype 1 @@ -121,10 +164,54 @@ def scenario_1(): recommendations_summary["uprn"].astype(str).isin(archetype_1["uprn"].values) ] + arch_1_property_details = property_details_df[ + property_details_df["uprn"].astype(str).isin(archetype_1["uprn"].values) + ] + arch_1_property_details["co2_emissions"].sum() / property_details_df["co2_emissions"].sum() + # Take the mean, median and maximum of each value - arch_1_recommendation_min = recommendations_arch_1_summary.min() - arch_1_recommendation_max = recommendations_arch_1_summary.max() - arch_1_recommendation_means = recommendations_arch_1_summary.mean() + cols_to_keep = ["total_cost", "total_carbon", "total_bill_savings", "total_sap_points", "adjusted_heat_demand", + "energy_percent_change", "carbon_percent_change", "bills_percent_change"] + arch_1_recommendation_min = recommendations_arch_1_summary.min()[cols_to_keep] + arch_1_recommendation_max = recommendations_arch_1_summary.max()[cols_to_keep] + arch_1_recommendation_means = recommendations_arch_1_summary.mean()[cols_to_keep] + arch_1_totals = recommendations_arch_1_summary.sum()[cols_to_keep] + + annual_total_co2 = recommendations_arch_1_summary["total_carbon"].sum() + annual_total_bills = recommendations_arch_1_summary["total_bill_savings"].sum() + annual_total_energy_savings = recommendations_arch_1_summary["adjusted_heat_demand"].sum() + archetype_measures = \ + recommendations_df[recommendations_df["uprn"].astype(str).isin(archetype_1["uprn"].values)].groupby("type")[ + "id"].count().reset_index() + + cost_text = (f"{round(arch_1_recommendation_means['total_cost'], 2)}: " + f"{arch_1_recommendation_min['total_cost']} - {arch_1_recommendation_max['total_cost']}") + + sap_text = (f"{round(arch_1_recommendation_means['total_sap_points'], 2)}: " + f"{arch_1_recommendation_min['total_sap_points']} - {arch_1_recommendation_max['total_sap_points']}") + + energy_text = (f"{round(arch_1_recommendation_means['adjusted_heat_demand'], 2)}: " + f"{arch_1_recommendation_min['adjusted_heat_demand']} - " + f"{arch_1_recommendation_max['adjusted_heat_demand']}") + + energy_percent_text = (f"{round(arch_1_recommendation_means['energy_percent_change'], 2)}: " + f"{arch_1_recommendation_min['energy_percent_change']} - " + f"{arch_1_recommendation_max['energy_percent_change']}") + + carbon_text = (f"{round(arch_1_recommendation_means['total_carbon'], 2)}: " + f"{arch_1_recommendation_min['total_carbon']} - {arch_1_recommendation_max['total_carbon']}") + + carbon_percent_text = (f"{round(arch_1_recommendation_means['carbon_percent_change'], 2)}: " + f"{arch_1_recommendation_min['carbon_percent_change']} - " + f"{arch_1_recommendation_max['carbon_percent_change']}") + + bill_text = (f"{round(arch_1_recommendation_means['total_bill_savings'], 2)}: " + f"{arch_1_recommendation_min['total_bill_savings']} - " + f"{arch_1_recommendation_max['total_bill_savings']}") + + bill_percent_text = (f"{round(arch_1_recommendation_means['bills_percent_change'], 2)}: " + f"{arch_1_recommendation_min['bills_percent_change']} - " + f"{arch_1_recommendation_max['bills_percent_change']}") ######################## # Archetype 2 @@ -134,11 +221,53 @@ def scenario_1(): recommendations_summary["uprn"].astype(str).isin(archetype_2["uprn"].values) ] + arch_2_property_details = property_details_df[ + property_details_df["uprn"].astype(str).isin(archetype_2["uprn"].values) + ] + arch_2_property_details["co2_emissions"].sum() / property_details_df["co2_emissions"].sum() + # Take the mean, median and maximum of each value arch_2_recommendation_min = recommendations_arch_2_summary.min() arch_2_recommendation_max = recommendations_arch_2_summary.max() arch_2_recommendation_means = recommendations_arch_2_summary.mean().round(2) + total_cost = recommendations_arch_2_summary["total_cost"].sum() + annual_total_co2 = recommendations_arch_2_summary["total_carbon"].sum() + annual_total_bills = recommendations_arch_2_summary["total_bill_savings"].sum() + annual_total_energy_savings = recommendations_arch_2_summary["adjusted_heat_demand"].sum() + archetype_measures = \ + recommendations_df[recommendations_df["uprn"].astype(str).isin(archetype_2["uprn"].values)].groupby("type")[ + "id"].count().reset_index() + + cost_text = (f"{round(arch_2_recommendation_means['total_cost'], 2)}: " + f"{arch_2_recommendation_min['total_cost']} - {arch_2_recommendation_max['total_cost']}") + + sap_text = (f"{round(arch_2_recommendation_means['total_sap_points'], 2)}: " + f"{arch_2_recommendation_min['total_sap_points']} - {arch_2_recommendation_max['total_sap_points']}") + + energy_text = (f"{round(arch_2_recommendation_means['adjusted_heat_demand'], 2)}: " + f"{arch_2_recommendation_min['adjusted_heat_demand']} - " + f"{arch_2_recommendation_max['adjusted_heat_demand']}") + + energy_percent_text = (f"{round(arch_2_recommendation_means['energy_percent_change'], 2)}: " + f"{arch_2_recommendation_min['energy_percent_change']} - " + f"{arch_2_recommendation_max['energy_percent_change']}") + + carbon_text = (f"{round(arch_2_recommendation_means['total_carbon'], 2)}: " + f"{arch_2_recommendation_min['total_carbon']} - {arch_2_recommendation_max['total_carbon']}") + + carbon_percent_text = (f"{round(arch_2_recommendation_means['carbon_percent_change'], 2)}: " + f"{arch_2_recommendation_min['carbon_percent_change']} - " + f"{arch_2_recommendation_max['carbon_percent_change']}") + + bill_text = (f"{round(arch_2_recommendation_means['total_bill_savings'], 2)}: " + f"{arch_2_recommendation_min['total_bill_savings']} - " + f"{arch_2_recommendation_max['total_bill_savings']}") + + bill_percent_text = (f"{round(arch_2_recommendation_means['bills_percent_change'], 2)}: " + f"{arch_2_recommendation_min['bills_percent_change']} - " + f"{arch_2_recommendation_max['bills_percent_change']}") + ######################## # Archetype 3 ######################## @@ -147,11 +276,53 @@ def scenario_1(): recommendations_summary["uprn"].astype(str).isin(archetype_3["uprn"].values) ] + arch_3_property_details = property_details_df[ + property_details_df["uprn"].astype(str).isin(archetype_3["uprn"].values) + ] + arch_3_property_details["co2_emissions"].sum() / property_details_df["co2_emissions"].sum() + # Take the mean, median and maximum of each value arch_3_recommendation_min = recommendations_arch_3_summary.min() arch_3_recommendation_max = recommendations_arch_3_summary.max() arch_3_recommendation_means = recommendations_arch_3_summary.mean() + total_cost = recommendations_arch_3_summary["total_cost"].sum() + annual_total_co2 = recommendations_arch_3_summary["total_carbon"].sum() + annual_total_bills = recommendations_arch_3_summary["total_bill_savings"].sum() + annual_total_energy_savings = recommendations_arch_3_summary["adjusted_heat_demand"].sum() + archetype_measures = \ + recommendations_df[recommendations_df["uprn"].astype(str).isin(archetype_3["uprn"].values)].groupby("type")[ + "id"].count().reset_index() + + cost_text = (f"{round(arch_3_recommendation_means['total_cost'], 2)}: " + f"{arch_3_recommendation_min['total_cost']} - {arch_3_recommendation_max['total_cost']}") + + sap_text = (f"{round(arch_3_recommendation_means['total_sap_points'], 2)}: " + f"{arch_3_recommendation_min['total_sap_points']} - {arch_3_recommendation_max['total_sap_points']}") + + energy_text = (f"{round(arch_3_recommendation_means['adjusted_heat_demand'], 2)}: " + f"{arch_3_recommendation_min['adjusted_heat_demand']} - " + f"{arch_3_recommendation_max['adjusted_heat_demand']}") + + energy_percent_text = (f"{round(arch_3_recommendation_means['energy_percent_change'], 2)}: " + f"{arch_3_recommendation_min['energy_percent_change']} - " + f"{arch_3_recommendation_max['energy_percent_change']}") + + carbon_text = (f"{round(arch_3_recommendation_means['total_carbon'], 2)}: " + f"{arch_3_recommendation_min['total_carbon']} - {arch_3_recommendation_max['total_carbon']}") + + carbon_percent_text = (f"{round(arch_3_recommendation_means['carbon_percent_change'], 2)}: " + f"{arch_3_recommendation_min['carbon_percent_change']} - " + f"{arch_3_recommendation_max['carbon_percent_change']}") + + bill_text = (f"{round(arch_3_recommendation_means['total_bill_savings'], 2)}: " + f"{arch_3_recommendation_min['total_bill_savings']} - " + f"{arch_3_recommendation_max['total_bill_savings']}") + + bill_percent_text = (f"{round(arch_3_recommendation_means['bills_percent_change'], 2)}: " + f"{arch_3_recommendation_min['bills_percent_change']} - " + f"{arch_3_recommendation_max['bills_percent_change']}") + ######################## # Archetype 4 ######################## @@ -160,14 +331,52 @@ def scenario_1(): recommendations_summary["uprn"].astype(str).isin(archetype_4["uprn"].values) ] + arch_4_property_details = property_details_df[ + property_details_df["uprn"].astype(str).isin(archetype_4["uprn"].values) + ] + arch_4_property_details["co2_emissions"].sum() / property_details_df["co2_emissions"].sum() + # Take the mean, median and maximum of each value arch_4_recommendation_min = recommendations_arch_4_summary.min() arch_4_recommendation_max = recommendations_arch_4_summary.max() arch_4_recommendation_means = recommendations_arch_4_summary.mean() - property_details_df[ - property_details_df["uprn"].astype(str).isin(archetype_4["uprn"].values) - ]["total_floor_area"].mean() + total_cost = recommendations_arch_4_summary["total_cost"].sum() + annual_total_co2 = recommendations_arch_4_summary["total_carbon"].sum() + annual_total_bills = recommendations_arch_4_summary["total_bill_savings"].sum() + annual_total_energy_savings = recommendations_arch_4_summary["adjusted_heat_demand"].sum() + archetype_measures = \ + recommendations_df[recommendations_df["uprn"].astype(str).isin(archetype_4["uprn"].values)].groupby("type")[ + "id"].count().reset_index() + + cost_text = (f"{round(arch_4_recommendation_means['total_cost'], 2)}: " + f"{arch_4_recommendation_min['total_cost']} - {arch_4_recommendation_max['total_cost']}") + + sap_text = (f"{round(arch_4_recommendation_means['total_sap_points'], 2)}: " + f"{arch_4_recommendation_min['total_sap_points']} - {arch_4_recommendation_max['total_sap_points']}") + + energy_text = (f"{round(arch_4_recommendation_means['adjusted_heat_demand'], 2)}: " + f"{arch_4_recommendation_min['adjusted_heat_demand']} - " + f"{arch_4_recommendation_max['adjusted_heat_demand']}") + + energy_percent_text = (f"{round(arch_4_recommendation_means['energy_percent_change'], 2)}: " + f"{arch_4_recommendation_min['energy_percent_change']} - " + f"{arch_4_recommendation_max['energy_percent_change']}") + + carbon_text = (f"{round(arch_4_recommendation_means['total_carbon'], 2)}: " + f"{arch_4_recommendation_min['total_carbon']} - {arch_4_recommendation_max['total_carbon']}") + + carbon_percent_text = (f"{round(arch_4_recommendation_means['carbon_percent_change'], 2)}: " + f"{arch_4_recommendation_min['carbon_percent_change']} - " + f"{arch_4_recommendation_max['carbon_percent_change']}") + + bill_text = (f"{round(arch_4_recommendation_means['total_bill_savings'], 2)}: " + f"{arch_4_recommendation_min['total_bill_savings']} - " + f"{arch_4_recommendation_max['total_bill_savings']}") + + bill_percent_text = (f"{round(arch_4_recommendation_means['bills_percent_change'], 2)}: " + f"{arch_4_recommendation_min['bills_percent_change']} - " + f"{arch_4_recommendation_max['bills_percent_change']}") ######################## # Overview @@ -291,6 +500,38 @@ def scenario_2(): # Measures ######################## measures_count = recommendations_df.groupby("type")["id"].count().reset_index() + wall_insulation_measures = measures_count[ + measures_count["type"].isin(["cavity_wall_insulation", "external_wall_insulation", "internal_wall_insulation"]) + ]["id"].sum() + ventilation_measures = measures_count[ + measures_count["type"].isin(["mechanical_ventilation"]) + ]["id"].sum() + roof_insulation_measures = measures_count[ + measures_count["type"].isin(["loft_insulation", "flat_roof_insulation"]) + ]["id"].sum() + floor_insulation_measures = measures_count[ + measures_count["type"].isin(["solid_floor_insulation", "suspended_floor_insulation"]) + ]["id"].sum() + windows = measures_count[ + measures_count["type"].isin(["windows_glazing"]) + ]["id"].sum() + heating = measures_count[ + measures_count["type"].isin(["heating"]) + ]["id"].sum() + heating_controls = measures_count[ + measures_count["type"].isin(["heating_control"]) + ]["id"].sum() + solar = measures_count[ + measures_count["type"].isin(["solar_pv"]) + ]["id"].sum() + other = measures_count[ + ~measures_count["type"].isin([ + "cavity_wall_insulation", "external_wall_insulation", "internal_wall_insulation", + "loft_insulation", "flat_roof_insulation", "solid_floor_insulation", + "suspended_floor_insulation", "windows_glazing", "heating", "heating_control", "solar_pv", + "mechanical_ventilation" + ]) + ]["id"].sum() z = recommendations_df[recommendations_df["uprn"].astype(str).isin(archetype_3_sample)] @@ -305,11 +546,54 @@ def scenario_2(): recommendations_summary["uprn"].astype(str).isin(archetype_1["uprn"].values) ] + arch_1_property_details = property_details_df[ + property_details_df["uprn"].astype(str).isin(archetype_1["uprn"].values) + ] + arch_1_property_details["co2_emissions"].sum() / property_details_df["co2_emissions"].sum() + # Take the mean, median and maximum of each value arch_1_recommendation_min = recommendations_arch_1_summary.min() arch_1_recommendation_max = recommendations_arch_1_summary.max() arch_1_recommendation_means = recommendations_arch_1_summary.mean() + arch_1_totals = recommendations_arch_1_summary.sum() + + annual_total_co2 = recommendations_arch_1_summary["total_carbon"].sum() + annual_total_bills = recommendations_arch_1_summary["total_bill_savings"].sum() + annual_total_energy_savings = recommendations_arch_1_summary["adjusted_heat_demand"].sum() + archetype_measures = \ + recommendations_df[recommendations_df["uprn"].astype(str).isin(archetype_1["uprn"].values)].groupby("type")[ + "id"].count().reset_index() + + cost_text = (f"{round(arch_1_recommendation_means['total_cost'], 2)}: " + f"{arch_1_recommendation_min['total_cost']} - {arch_1_recommendation_max['total_cost']}") + + sap_text = (f"{round(arch_1_recommendation_means['total_sap_points'], 2)}: " + f"{arch_1_recommendation_min['total_sap_points']} - {arch_1_recommendation_max['total_sap_points']}") + + energy_text = (f"{round(arch_1_recommendation_means['adjusted_heat_demand'], 2)}: " + f"{arch_1_recommendation_min['adjusted_heat_demand']} - " + f"{arch_1_recommendation_max['adjusted_heat_demand']}") + + energy_percent_text = (f"{round(arch_1_recommendation_means['energy_percent_change'], 2)}: " + f"{arch_1_recommendation_min['energy_percent_change']} - " + f"{arch_1_recommendation_max['energy_percent_change']}") + + carbon_text = (f"{round(arch_1_recommendation_means['total_carbon'], 2)}: " + f"{arch_1_recommendation_min['total_carbon']} - {arch_1_recommendation_max['total_carbon']}") + + carbon_percent_text = (f"{round(arch_1_recommendation_means['carbon_percent_change'], 2)}: " + f"{arch_1_recommendation_min['carbon_percent_change']} - " + f"{arch_1_recommendation_max['carbon_percent_change']}") + + bill_text = (f"{round(arch_1_recommendation_means['total_bill_savings'], 2)}: " + f"{arch_1_recommendation_min['total_bill_savings']} - " + f"{arch_1_recommendation_max['total_bill_savings']}") + + bill_percent_text = (f"{round(arch_1_recommendation_means['bills_percent_change'], 2)}: " + f"{arch_1_recommendation_min['bills_percent_change']} - " + f"{arch_1_recommendation_max['bills_percent_change']}") + ######################## # Archetype 2 ######################## @@ -318,11 +602,53 @@ def scenario_2(): recommendations_summary["uprn"].astype(str).isin(archetype_2["uprn"].values) ] + arch_2_property_details = property_details_df[ + property_details_df["uprn"].astype(str).isin(archetype_2["uprn"].values) + ] + arch_2_property_details["co2_emissions"].sum() / property_details_df["co2_emissions"].sum() + # Take the mean, median and maximum of each value arch_2_recommendation_min = recommendations_arch_2_summary.min() arch_2_recommendation_max = recommendations_arch_2_summary.max() arch_2_recommendation_means = recommendations_arch_2_summary.mean().round(2) + total_cost = recommendations_arch_2_summary["total_cost"].sum() + annual_total_co2 = recommendations_arch_2_summary["total_carbon"].sum() + annual_total_bills = recommendations_arch_2_summary["total_bill_savings"].sum() + annual_total_energy_savings = recommendations_arch_2_summary["adjusted_heat_demand"].sum() + archetype_measures = \ + recommendations_df[recommendations_df["uprn"].astype(str).isin(archetype_2["uprn"].values)].groupby("type")[ + "id"].count().reset_index() + + cost_text = (f"{round(arch_2_recommendation_means['total_cost'], 2)}: " + f"{arch_2_recommendation_min['total_cost']} - {arch_2_recommendation_max['total_cost']}") + + sap_text = (f"{round(arch_2_recommendation_means['total_sap_points'], 2)}: " + f"{arch_2_recommendation_min['total_sap_points']} - {arch_2_recommendation_max['total_sap_points']}") + + energy_text = (f"{round(arch_2_recommendation_means['adjusted_heat_demand'], 2)}: " + f"{arch_2_recommendation_min['adjusted_heat_demand']} - " + f"{arch_2_recommendation_max['adjusted_heat_demand']}") + + energy_percent_text = (f"{round(arch_2_recommendation_means['energy_percent_change'], 2)}: " + f"{arch_2_recommendation_min['energy_percent_change']} - " + f"{arch_2_recommendation_max['energy_percent_change']}") + + carbon_text = (f"{round(arch_2_recommendation_means['total_carbon'], 2)}: " + f"{arch_2_recommendation_min['total_carbon']} - {arch_2_recommendation_max['total_carbon']}") + + carbon_percent_text = (f"{round(arch_2_recommendation_means['carbon_percent_change'], 2)}: " + f"{arch_2_recommendation_min['carbon_percent_change']} - " + f"{arch_2_recommendation_max['carbon_percent_change']}") + + bill_text = (f"{round(arch_2_recommendation_means['total_bill_savings'], 2)}: " + f"{arch_2_recommendation_min['total_bill_savings']} - " + f"{arch_2_recommendation_max['total_bill_savings']}") + + bill_percent_text = (f"{round(arch_2_recommendation_means['bills_percent_change'], 2)}: " + f"{arch_2_recommendation_min['bills_percent_change']} - " + f"{arch_2_recommendation_max['bills_percent_change']}") + ######################## # Archetype 3 ######################## @@ -331,11 +657,53 @@ def scenario_2(): recommendations_summary["uprn"].astype(str).isin(archetype_3["uprn"].values) ] + arch_3_property_details = property_details_df[ + property_details_df["uprn"].astype(str).isin(archetype_3["uprn"].values) + ] + arch_3_property_details["co2_emissions"].sum() / property_details_df["co2_emissions"].sum() + # Take the mean, median and maximum of each value arch_3_recommendation_min = recommendations_arch_3_summary.min() arch_3_recommendation_max = recommendations_arch_3_summary.max() arch_3_recommendation_means = recommendations_arch_3_summary.mean() + total_cost = recommendations_arch_3_summary["total_cost"].sum() + annual_total_co2 = recommendations_arch_3_summary["total_carbon"].sum() + annual_total_bills = recommendations_arch_3_summary["total_bill_savings"].sum() + annual_total_energy_savings = recommendations_arch_3_summary["adjusted_heat_demand"].sum() + archetype_measures = \ + recommendations_df[recommendations_df["uprn"].astype(str).isin(archetype_3["uprn"].values)].groupby("type")[ + "id"].count().reset_index() + + cost_text = (f"{round(arch_3_recommendation_means['total_cost'], 2)}: " + f"{arch_3_recommendation_min['total_cost']} - {arch_3_recommendation_max['total_cost']}") + + sap_text = (f"{round(arch_3_recommendation_means['total_sap_points'], 2)}: " + f"{arch_3_recommendation_min['total_sap_points']} - {arch_3_recommendation_max['total_sap_points']}") + + energy_text = (f"{round(arch_3_recommendation_means['adjusted_heat_demand'], 2)}: " + f"{arch_3_recommendation_min['adjusted_heat_demand']} - " + f"{arch_3_recommendation_max['adjusted_heat_demand']}") + + energy_percent_text = (f"{round(arch_3_recommendation_means['energy_percent_change'], 2)}: " + f"{arch_3_recommendation_min['energy_percent_change']} - " + f"{arch_3_recommendation_max['energy_percent_change']}") + + carbon_text = (f"{round(arch_3_recommendation_means['total_carbon'], 2)}: " + f"{arch_3_recommendation_min['total_carbon']} - {arch_3_recommendation_max['total_carbon']}") + + carbon_percent_text = (f"{round(arch_3_recommendation_means['carbon_percent_change'], 2)}: " + f"{arch_3_recommendation_min['carbon_percent_change']} - " + f"{arch_3_recommendation_max['carbon_percent_change']}") + + bill_text = (f"{round(arch_3_recommendation_means['total_bill_savings'], 2)}: " + f"{arch_3_recommendation_min['total_bill_savings']} - " + f"{arch_3_recommendation_max['total_bill_savings']}") + + bill_percent_text = (f"{round(arch_3_recommendation_means['bills_percent_change'], 2)}: " + f"{arch_3_recommendation_min['bills_percent_change']} - " + f"{arch_3_recommendation_max['bills_percent_change']}") + ######################## # Archetype 4 ######################## @@ -344,11 +712,49 @@ def scenario_2(): recommendations_summary["uprn"].astype(str).isin(archetype_4["uprn"].values) ] + arch_4_property_details = property_details_df[ + property_details_df["uprn"].astype(str).isin(archetype_4["uprn"].values) + ] + arch_4_property_details["co2_emissions"].sum() / property_details_df["co2_emissions"].sum() + # Take the mean, median and maximum of each value arch_4_recommendation_min = recommendations_arch_4_summary.min() arch_4_recommendation_max = recommendations_arch_4_summary.max() arch_4_recommendation_means = recommendations_arch_4_summary.mean() - property_details_df[ - property_details_df["uprn"].astype(str).isin(archetype_4["uprn"].values) - ]["total_floor_area"].mean() + total_cost = recommendations_arch_4_summary["total_cost"].sum() + annual_total_co2 = recommendations_arch_4_summary["total_carbon"].sum() + annual_total_bills = recommendations_arch_4_summary["total_bill_savings"].sum() + annual_total_energy_savings = recommendations_arch_4_summary["adjusted_heat_demand"].sum() + archetype_measures = \ + recommendations_df[recommendations_df["uprn"].astype(str).isin(archetype_4["uprn"].values)].groupby("type")[ + "id"].count().reset_index() + + cost_text = (f"{round(arch_4_recommendation_means['total_cost'], 2)}: " + f"{arch_4_recommendation_min['total_cost']} - {arch_4_recommendation_max['total_cost']}") + + sap_text = (f"{round(arch_4_recommendation_means['total_sap_points'], 2)}: " + f"{arch_4_recommendation_min['total_sap_points']} - {arch_4_recommendation_max['total_sap_points']}") + + energy_text = (f"{round(arch_4_recommendation_means['adjusted_heat_demand'], 2)}: " + f"{arch_4_recommendation_min['adjusted_heat_demand']} - " + f"{arch_4_recommendation_max['adjusted_heat_demand']}") + + energy_percent_text = (f"{round(arch_4_recommendation_means['energy_percent_change'], 2)}: " + f"{arch_4_recommendation_min['energy_percent_change']} - " + f"{arch_4_recommendation_max['energy_percent_change']}") + + carbon_text = (f"{round(arch_4_recommendation_means['total_carbon'], 2)}: " + f"{arch_4_recommendation_min['total_carbon']} - {arch_4_recommendation_max['total_carbon']}") + + carbon_percent_text = (f"{round(arch_4_recommendation_means['carbon_percent_change'], 2)}: " + f"{arch_4_recommendation_min['carbon_percent_change']} - " + f"{arch_4_recommendation_max['carbon_percent_change']}") + + bill_text = (f"{round(arch_4_recommendation_means['total_bill_savings'], 2)}: " + f"{arch_4_recommendation_min['total_bill_savings']} - " + f"{arch_4_recommendation_max['total_bill_savings']}") + + bill_percent_text = (f"{round(arch_4_recommendation_means['bills_percent_change'], 2)}: " + f"{arch_4_recommendation_min['bills_percent_change']} - " + f"{arch_4_recommendation_max['bills_percent_change']}") diff --git a/recommendations/HeatingRecommender.py b/recommendations/HeatingRecommender.py index 9d2e99e3..2c075820 100644 --- a/recommendations/HeatingRecommender.py +++ b/recommendations/HeatingRecommender.py @@ -186,9 +186,18 @@ class HeatingRecommender: # This upgrade will only take the heating system to average energy efficiency heating_simulation_config["mainheat_energy_eff_ending"] = "Average" + # If the property is off-gas and has no heating system in place, the number of heated rooms will actually + # be 0, so we use the number of rooms as the figure + number_heated_rooms = ( + self.property.data["number-heated-rooms"] if self.property.data["number-heated-rooms"] > 0 + else ( + self.property.number_of_rooms - 1 if self.property.number_of_rooms > 1 else + self.property.number_of_rooms + ) + ) # Upgrade to electric storage heaters costs = self.costs.high_heat_electric_storage_heaters( - number_heated_rooms=self.property.data["number-heated-rooms"] + number_heated_rooms=number_heated_rooms ) description = "Install high heat retention electric storage heaters" @@ -268,9 +277,9 @@ class HeatingRecommender: ] and self.property.data["mains-gas-flag"] is_combi = hotwater_from_mains or access_to_mains_no_system if is_combi: - description = "Upgrade to a low carbon combi boiler" + description = "Upgrade to a new combi boiler" else: - description = "Upgrade to a low carbon boiler" + description = "Upgrade to a new boiler" simulation_config = {"mainheat_energy_eff_ending": "Good"} if access_to_mains_no_system: From e182d7acd77aa9dfc56a03650c59ffb3d763aa36 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Fri, 5 Apr 2024 10:19:22 +0100 Subject: [PATCH 474/526] change calculation of energy savings to use adjusted heat demand, not heat demand --- backend/app/db/functions/portfolio_functions.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/app/db/functions/portfolio_functions.py b/backend/app/db/functions/portfolio_functions.py index a8a882bd..ead8280f 100644 --- a/backend/app/db/functions/portfolio_functions.py +++ b/backend/app/db/functions/portfolio_functions.py @@ -11,7 +11,7 @@ def aggregate_portfolio_recommendations( session.query( func.sum(Recommendation.estimated_cost).label("cost"), func.sum(Recommendation.total_work_hours).label("total_work_hours"), - func.sum(Recommendation.heat_demand).label("energy_savings"), + func.sum(Recommendation.adjusted_heat_demand).label("energy_savings"), func.sum(Recommendation.co2_equivalent_savings).label("co2_equivalent_savings"), func.sum(Recommendation.energy_cost_savings).label("energy_cost_savings"), ) From 02e72c569513b846cd1348caa17d20a786507c7b Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Fri, 5 Apr 2024 14:02:48 +0100 Subject: [PATCH 475/526] prevent hot water tank insulation recommendations when no heating system is in place --- recommendations/HotwaterRecommendations.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/recommendations/HotwaterRecommendations.py b/recommendations/HotwaterRecommendations.py index 298671a2..667f5f69 100644 --- a/recommendations/HotwaterRecommendations.py +++ b/recommendations/HotwaterRecommendations.py @@ -22,8 +22,13 @@ class HotwaterRecommendations: # This first iteration of the recommender will provide very basic recommendation # We recommend heating controls based on the main heating system - if (self.property.hotwater["heater_type"] in ["electric immersion"]) & \ - (self.property.data["hot-water-energy-eff"] == "Very Poor"): + # If there is not system present, we do not recommend anything, since we will have a separate recommendation + # suggesting system upgrades (e.g. boiler replacement) + if ( + (self.property.hotwater["heater_type"] in ["electric immersion"]) & + (self.property.data["hot-water-energy-eff"] == "Very Poor") & + (self.property.hotwater["no_system_present"] is None) + ): self.recommend_tank_insulation(phase=phase) return From 4134fdbb755f4a25e8162bfb851709372d0c5677 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Fri, 5 Apr 2024 15:00:24 +0100 Subject: [PATCH 476/526] Added pruning of solar panel options to prevent systems much too large or much too small --- recommendations/SolarPvRecommendations.py | 46 +++++++++++++++++++---- 1 file changed, 38 insertions(+), 8 deletions(-) diff --git a/recommendations/SolarPvRecommendations.py b/recommendations/SolarPvRecommendations.py index 3a89b213..744351be 100644 --- a/recommendations/SolarPvRecommendations.py +++ b/recommendations/SolarPvRecommendations.py @@ -8,6 +8,9 @@ class SolarPvRecommendations: # Wattage per panel - this is based on the average wattage of a solar panel being between 250w and 420w SOLAR_PANEL_WATTAGE = 250 + MAX_SYSTEM_WATTAGE = 4200 + MIN_SYSTEM_WATTAGE = 2500 + def __init__(self, property_instance): """ :param property_instance: Instance of the Property class, for the home associated to property_id @@ -18,6 +21,19 @@ class SolarPvRecommendations: self.recommendation = [] + @staticmethod + def trim_solar_wattage_options(scenarios_with_wattage): + # Initialize the list with the first element, assuming the list is not empty + trimmed_list = [scenarios_with_wattage[0]] + + # Iterate over the list starting from the second element + for scenario in scenarios_with_wattage[1:]: + # Compare the second element (index 1) of the current tuple with the last tuple in the trimmed list + if scenario[1] > trimmed_list[-1][1]: + trimmed_list.append(scenario) + + return trimmed_list + def recommend(self, phase): """ We check if a property is potentially suitable for solar PV based on the following criteria: @@ -46,26 +62,40 @@ class SolarPvRecommendations: self.property.solar_pv_percentage - 0.1, self.property.solar_pv_percentage, self.property.solar_pv_percentage + 0.1 ] - # We make sure we haven't gone too low or high - roof_coverage_scenarios = [v for v in roof_coverage_scenarios if 0 <= v <= 1] + # We make sure we haven't gone too low or high - we allow no more than 60% coverage + roof_coverage_scenarios = [v for v in roof_coverage_scenarios if 0 <= v <= 0.6] + # If we only have two scenarios, we add a coverage scenario 10% less than the smallest + if len(roof_coverage_scenarios) == 2: + roof_coverage_scenarios.insert(0, roof_coverage_scenarios[0] - 0.1) battery_scenarios = [False, True] - # I now produce the cross product of the scenarios - scenarios = [(roof, battery) for roof in roof_coverage_scenarios for battery in battery_scenarios] - - for roof_coverage, has_battery in scenarios: + scenarios_with_wattage = [] + for roof_coverage in roof_coverage_scenarios: # We now have a property which is potentially suitable for solar PV solar_pv_roof_area = self.property.get_solar_pv_roof_area(roof_coverage) number_solar_panels = np.floor(solar_pv_roof_area / self.SOLAR_PANEL_AREA) solar_panel_wattage = number_solar_panels * self.SOLAR_PANEL_WATTAGE + solar_panel_wattage = np.clip( + a=solar_panel_wattage, a_min=self.MIN_SYSTEM_WATTAGE, a_max=self.MAX_SYSTEM_WATTAGE + ) + scenarios_with_wattage.append((roof_coverage, solar_panel_wattage)) + # We trim the scenarios, so that we don't have duplicate wattages + scenarios_with_wattage = self.trim_solar_wattage_options(scenarios_with_wattage) + + # Produce the cross product of the scenarios + scenarios = [ + (roof, wattage, battery) for roof, wattage in scenarios_with_wattage for battery in battery_scenarios + ] + # We deduce the wattage of the solar panels based on the roof coverage + + for roof_coverage, solar_panel_wattage, has_battery in scenarios: + # We now have a property which is potentially suitable for solar PV roof_coverage_percent = round(roof_coverage * 100) - # Given the wattage, we estimate the cost of the solar PV system. This is based on the MCS database # of solar PV installations cost_result = self.costs.solar_pv(wattage=solar_panel_wattage, has_battery=has_battery) - kw = np.floor(solar_panel_wattage / 100) / 10 if has_battery: From ec6fc84911d1a8ac3689c9f07b866fda98086212 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Fri, 5 Apr 2024 15:14:55 +0100 Subject: [PATCH 477/526] updating solar panel logic --- recommendations/SolarPvRecommendations.py | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/recommendations/SolarPvRecommendations.py b/recommendations/SolarPvRecommendations.py index 744351be..4cf1c1fc 100644 --- a/recommendations/SolarPvRecommendations.py +++ b/recommendations/SolarPvRecommendations.py @@ -8,8 +8,8 @@ class SolarPvRecommendations: # Wattage per panel - this is based on the average wattage of a solar panel being between 250w and 420w SOLAR_PANEL_WATTAGE = 250 - MAX_SYSTEM_WATTAGE = 4200 - MIN_SYSTEM_WATTAGE = 2500 + MAX_SYSTEM_WATTAGE = 6000 + MIN_SYSTEM_WATTAGE = 1000 def __init__(self, property_instance): """ @@ -60,8 +60,9 @@ class SolarPvRecommendations: # 2) With and without battery roof_coverage_scenarios = [ self.property.solar_pv_percentage - 0.1, self.property.solar_pv_percentage, - self.property.solar_pv_percentage + 0.1 ] + if self.property.solar_pv_percentage <= 0.4: + roof_coverage_scenarios.append(self.property.solar_pv_percentage + 0.1) # We make sure we haven't gone too low or high - we allow no more than 60% coverage roof_coverage_scenarios = [v for v in roof_coverage_scenarios if 0 <= v <= 0.6] # If we only have two scenarios, we add a coverage scenario 10% less than the smallest @@ -76,6 +77,10 @@ class SolarPvRecommendations: number_solar_panels = np.floor(solar_pv_roof_area / self.SOLAR_PANEL_AREA) solar_panel_wattage = number_solar_panels * self.SOLAR_PANEL_WATTAGE + + if solar_panel_wattage < self.MIN_SYSTEM_WATTAGE: + continue + solar_panel_wattage = np.clip( a=solar_panel_wattage, a_min=self.MIN_SYSTEM_WATTAGE, a_max=self.MAX_SYSTEM_WATTAGE ) From 6258c347d68ecd1156387f9e2a532d099e2be2c3 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Fri, 5 Apr 2024 16:06:30 +0100 Subject: [PATCH 478/526] updating boiler recommendation to impact mains fuel and consider the impact on the main fuel --- etl/customers/gla_croydon_demo/asset_list.py | 4 ++ recommendations/HeatingRecommender.py | 58 +++++++++++++++----- 2 files changed, 49 insertions(+), 13 deletions(-) diff --git a/etl/customers/gla_croydon_demo/asset_list.py b/etl/customers/gla_croydon_demo/asset_list.py index 52e9422c..777cba83 100644 --- a/etl/customers/gla_croydon_demo/asset_list.py +++ b/etl/customers/gla_croydon_demo/asset_list.py @@ -34,6 +34,10 @@ def app(): low_memory=False ) + z = epc_data.groupby(["MAINHEAT_DESCRIPTION", "MAINHEATCONT_DESCRIPTION", "MAIN_FUEL"]).size().reset_index( + name="count") + z = z[z["MAINHEAT_DESCRIPTION"] == "Boiler and radiators, mains gas"] + # Filter on entries where we have a UPRN epc_data = epc_data[~pd.isnull(epc_data["UPRN"])] diff --git a/recommendations/HeatingRecommender.py b/recommendations/HeatingRecommender.py index 2c075820..f602ecab 100644 --- a/recommendations/HeatingRecommender.py +++ b/recommendations/HeatingRecommender.py @@ -5,6 +5,7 @@ from recommendations.recommendation_utils import check_simulation_difference from backend.Property import Property from etl.epc_clean.epc_attributes.MainheatAttributes import MainHeatAttributes from etl.epc_clean.epc_attributes.HotWaterAttributes import HotWaterAttributes +from etl.epc_clean.epc_attributes.MainFuelAttributes import MainFuelAttributes from recommendations.HeatingControlRecommender import HeatingControlRecommender @@ -44,7 +45,7 @@ class HeatingRecommender: ] and self.property.data["mains-gas-flag"] if has_boiler or no_heating_has_mains: - self.recommend_boiler_upgrades(phase=phase) + self.recommend_boiler_upgrades(phase=phase, no_heating_has_mains=no_heating_has_mains) return @staticmethod @@ -250,17 +251,20 @@ class HeatingRecommender: return closest_size - def recommend_boiler_upgrades(self, phase): + def recommend_boiler_upgrades(self, phase, no_heating_has_mains): """ This boiler recommendation will only recommend a like-for-like upgrade, since changing the system is generally more expensive :param phase: + :param no_heating_has_mains: indicaes if the property has no heating system, but has access to the mains gas :return: """ recommendation_phase = phase # We now recommend boiler upgrades, if applicable + simulation_config = {} + boiler_costs = {} if self.property.data["mainheat-energy-eff"] in ["Very Poor", "Poor", "Average"]: boiler_size = self.estimate_boiler_size( property_type=self.property.data["property-type"], @@ -272,21 +276,20 @@ class HeatingRecommender: # If heating and hot water come from the mains, we need a combi boiler, otherwise we need a regular boiler hotwater_from_mains = self.property.hotwater["clean_description"] in ["From main system"] - access_to_mains_no_system = self.property.main_heating["clean_description"] in [ - 'No system present, electric heaters assumed' - ] and self.property.data["mains-gas-flag"] - is_combi = hotwater_from_mains or access_to_mains_no_system + + is_combi = hotwater_from_mains or no_heating_has_mains if is_combi: description = "Upgrade to a new combi boiler" else: description = "Upgrade to a new boiler" simulation_config = {"mainheat_energy_eff_ending": "Good"} - if access_to_mains_no_system: + if no_heating_has_mains: # Installation of a boiler improves the hot water system so we need to reflect this in # the outcome of the recommendation heating_ending_config = MainHeatAttributes("Boiler and radiators, mains gas").process() hotwater_ending_config = HotWaterAttributes("From main system").process() + fuel_ending_config = MainFuelAttributes("mains gas (not community)").process() heating_simulation_config = check_simulation_difference( new_config=heating_ending_config, old_config=self.property.main_heating @@ -294,14 +297,20 @@ class HeatingRecommender: hotwater_simulation_config = check_simulation_difference( new_config=hotwater_ending_config, old_config=self.property.hotwater ) + fuel_simulation_config = check_simulation_difference( + new_config=fuel_ending_config, old_config=self.property.main_fuel + ) simulation_config = { **simulation_config, **heating_simulation_config, **hotwater_simulation_config, + **fuel_simulation_config, "hot_water_energy_eff_ending": "Good" } + boiler_costs = self.costs.low_carbon_boiler(is_combi=is_combi, size=f"{boiler_size}kw") + self.recommendations.append( { "phase": recommendation_phase, @@ -314,22 +323,45 @@ class HeatingRecommender: "new_u_value": None, "sap_points": None, "simulation_config": simulation_config, - **self.costs.low_carbon_boiler(is_combi=is_combi, size=f"{boiler_size}kw") + **boiler_costs } ) - # We increment the recommendation phase, in the case of us having heating control recommendations - recommendation_phase += 1 - # We recommend the heating controls + # If the property did not previously have a boiler, we combine controls_recommender = HeatingControlRecommender(self.property) controls_recommender.recommend(heating_description="Boiler and radiators, mains gas") # We may have 2 recommendations from the heating controls - if controls_recommender.recommendation: + if not controls_recommender.recommendation: + return + + if no_heating_has_mains: + # We combine the heating and controls recommendations + boiler_recommendation = self.recommendations[0].copy() + combined_recommendations = [] + for controls_recommendation in controls_recommender.recommendation: + combined_recommendation = self.combine_heating_and_controls( + controls_recommendations=[controls_recommendation], + heating_simulation_config=simulation_config, + costs=boiler_costs, + description=boiler_recommendation["description"], + phase=recommendation_phase, + heating_controls_only=False, + system_change=True + ) + combined_recommendations.extend(combined_recommendation) + + # Overwrite the existing boiler recommendation + self.recommendations = combined_recommendations + else: + # We increment the recommendation phase, since the heating controls are separate from the boiler upgrade + recommendation_phase += 1 # The heating controls recommendation is distrinct from the boiler upgrade recommendation # We insert phase into the recommendations for heating controls for recommendation in controls_recommender.recommendation: recommendation["phase"] = recommendation_phase - self.recommendations.extend(controls_recommender.recommendation) + self.recommendations.extend(controls_recommender.recommendation) + + return From 35a288fd7406c630fddde596360fa35e53d3fdd4 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Fri, 5 Apr 2024 16:47:15 +0100 Subject: [PATCH 479/526] Updating recommendations --- backend/Property.py | 5 ----- etl/customers/gla_croydon_demo/asset_list.py | 3 +-- recommendations/HeatingRecommender.py | 7 ++++++- recommendations/HotwaterRecommendations.py | 5 +++-- 4 files changed, 10 insertions(+), 10 deletions(-) diff --git a/backend/Property.py b/backend/Property.py index 19f15b02..d3dd8395 100644 --- a/backend/Property.py +++ b/backend/Property.py @@ -298,11 +298,6 @@ class Property: if recommendation["type"] == "cavity_wall_insulation": output["is_filled_cavity_ending"] = True - # TODO: perhaps detrimental - # When making a recommendation for the wall, we will also update the ventilation - # if output["mechanical_ventilation_ending"] == 'natural': - # output["mechanical_ventilation_ending"] = 'mechanical, extract only' - else: if output["walls_thermal_transmittance_ending"] is None: raise ValueError("We should not have a None value for the u value") diff --git a/etl/customers/gla_croydon_demo/asset_list.py b/etl/customers/gla_croydon_demo/asset_list.py index 777cba83..7dde8926 100644 --- a/etl/customers/gla_croydon_demo/asset_list.py +++ b/etl/customers/gla_croydon_demo/asset_list.py @@ -34,8 +34,7 @@ def app(): low_memory=False ) - z = epc_data.groupby(["MAINHEAT_DESCRIPTION", "MAINHEATCONT_DESCRIPTION", "MAIN_FUEL"]).size().reset_index( - name="count") + z = epc_data.groupby(["WALLS_DESCRIPTION", "WALLS_ENERGY_EFF"]).size().reset_index(name="count") z = z[z["MAINHEAT_DESCRIPTION"] == "Boiler and radiators, mains gas"] # Filter on entries where we have a UPRN diff --git a/recommendations/HeatingRecommender.py b/recommendations/HeatingRecommender.py index f602ecab..aec1f419 100644 --- a/recommendations/HeatingRecommender.py +++ b/recommendations/HeatingRecommender.py @@ -104,8 +104,13 @@ class HeatingRecommender: **recommendation_simulation_config, **controls_recommendations[0]["simulation_config"] } + controls_description = controls_recommendations[0]['description'] + # Make the first letter of the description lowercase + controls_description = ( + controls_description[0].lower() + controls_description[1:] + ) - recommendation_description = f"{description} and {controls_recommendations[0]['description']}" + recommendation_description = f"{description} and {controls_description}" recommendation = { "phase": phase, diff --git a/recommendations/HotwaterRecommendations.py b/recommendations/HotwaterRecommendations.py index 667f5f69..7f77597f 100644 --- a/recommendations/HotwaterRecommendations.py +++ b/recommendations/HotwaterRecommendations.py @@ -22,8 +22,9 @@ class HotwaterRecommendations: # This first iteration of the recommender will provide very basic recommendation # We recommend heating controls based on the main heating system - # If there is not system present, we do not recommend anything, since we will have a separate recommendation - # suggesting system upgrades (e.g. boiler replacement) + + # If there is no system present, but access to the mains, we + if ( (self.property.hotwater["heater_type"] in ["electric immersion"]) & (self.property.data["hot-water-energy-eff"] == "Very Poor") & From 0142e6fe5fcbcffc836bc139df48cf31e77545f1 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Mon, 8 Apr 2024 15:29:52 +0100 Subject: [PATCH 480/526] wip matching completed surveys back to the asset list --- .idea/Model.iml | 2 +- .idea/misc.xml | 2 +- .../ha_15_32/ha_analysis_batch_3.py | 78 +++++++++++++++++++ 3 files changed, 80 insertions(+), 2 deletions(-) diff --git a/.idea/Model.iml b/.idea/Model.iml index 4413bb06..b0f9c00d 100644 --- a/.idea/Model.iml +++ b/.idea/Model.iml @@ -7,7 +7,7 @@ - + diff --git a/.idea/misc.xml b/.idea/misc.xml index 6f308057..1122b380 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -3,7 +3,7 @@ - + diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index b4b82d0b..de2c0e6a 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -6907,3 +6907,81 @@ def app(): december_figures["ECO4 remaining"] ) december_figures["ECO4 remaining"].sum() + + # Adhoc - for UNITAS, stripping out additional surveys that have been completed + unitas_data = loader.data["HA50"].copy() + unitas_asset_list = unitas_data["asset_list"].copy() + unitas_survey_sheet = unitas_data["survey_list"].copy() + # We remove the surveyed properties from the asset sheet + unitas_survey_sheet = unitas_survey_sheet[~pd.isnull(unitas_survey_sheet["asset_list_row_id"])] + unitas_asset_list = unitas_asset_list.merge( + unitas_survey_sheet[["asset_list_row_id", "installation_status"]], + how="left", + on="asset_list_row_id" + ) + unitas_asset_list = unitas_asset_list[pd.isnull(unitas_asset_list["installation_status"])] + unitas_asset_list = unitas_asset_list.drop(columns=["installation_status"]) + + # We read in the data for the further completed surveys + unitas_phase_1_workbook = openpyxl.load_workbook( + "local_data/ha_data/UNITAS ( STOKE) MASTER ROLLING SHEET UPDATED 8.4.24 K - no password.xlsx" + ) + phase_1_worksheet = unitas_phase_1_workbook["ECO 4 - PHASE 1"] + phase_2_worksheet = unitas_phase_1_workbook["ECO4 - PHASE 2"] + phase1_colnames = [cell.value for cell in phase_1_worksheet[1]] + phase_1_rows_data = [] + for row in phase_1_worksheet.iter_rows(min_row=2, values_only=False): + row_data = [cell.value for cell in row] # This will get you the cell values + phase_1_rows_data.append(row_data) + + phase_1_surveys = pd.DataFrame(phase_1_rows_data, columns=phase1_colnames) + + # Correct phase 1 surveys in the same fashion as the previous approach + phase_1_surveys = DataLoader.correct_ha50_survey_list(phase_1_surveys.copy()) + + # We check all phase 1 surveys are contained in the data we had before + additional = [] + for _, row in tqdm(phase_1_surveys.iterrows(), total=len(phase_1_surveys)): + # We look for the entry in the old survey sheet: + # matched_uprn = unitas_survey_sheet[unitas_survey_sheet["EPR UPRN NUMBER"] == row["UPRN"]] + # if matched_uprn.shape[0] == 1: + # continue + + matched_1 = unitas_survey_sheet[ + (unitas_survey_sheet["Post Code"] == row["Post Code"]) & + (unitas_survey_sheet["NO."] == row["NO."]) + ] + + if matched_1.shape[0] == 1: + continue + + matched_2 = unitas_survey_sheet[ + (unitas_survey_sheet["Street / Block Name"] == row["Street / Block Name"]) & + (unitas_survey_sheet["NO."] == row["NO."]) + ] + + if matched_2.shape[0] == 1: + continue + + additional.append(row.to_dict()) + additional = pd.DataFrame(additional) + + phase_2_rows_data = [] + for row in phase_2_worksheet.iter_rows(min_row=2, values_only=False): + row_data = [cell.value for cell in row] # This will get you the cell values + phase_2_rows_data.append(row_data) + + phase2_colnames = [cell.value for cell in phase_2_worksheet[1]] + phase_2_surveys = pd.DataFrame(phase_2_rows_data, columns=phase2_colnames) + # Drop all of the occurances of "OFFICE USE ONLY" columns + phase_2_surveys = phase_2_surveys.drop(columns=[c for c in phase_2_surveys.columns if "OFFICE USE ONLY" in c]) + common_columns = list({c for c in phase_2_surveys.columns if c in additional.columns}) + additional_filtered = additional[common_columns] + + further_unitas_completed_surveys = pd.concat( + [phase_2_surveys, additional_filtered], + axis=0, + ignore_index=True + ) + + # We match these back to the asset list From dc80313eca2119703e161c6a6ad1c9380f1cc886 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Tue, 9 Apr 2024 14:57:55 +0100 Subject: [PATCH 481/526] merging EPC data and survey outcomes to asset list --- .../ha_15_32/ha_analysis_batch_3.py | 413 ++++++++++++++---- 1 file changed, 334 insertions(+), 79 deletions(-) diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index de2c0e6a..35bb63fe 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -3459,7 +3459,7 @@ class DataLoader: "not eligible", asset_list["ECO Eligibility"] ) - asset_list = asset_list.drop(columns=["has_eco3"]) + # asset_list = asset_list.drop(columns=["has_eco3"]) # Report on sales sales_report = {} @@ -6778,6 +6778,339 @@ def identify_eco_works(loader): breakdowns = breakdowns.fillna(0) +def unitas_data_prep(loader): + ##### + # Adhoc - for UNITAS, stripping out additional surveys that have been completed + unitas_data = loader.data["HA50"].copy() + unitas_asset_list = unitas_data["asset_list"].copy() + unitas_survey_sheet = unitas_data["survey_list"].copy() + + # We remove the surveyed properties from the asset sheet + unitas_survey_sheet = unitas_survey_sheet[~pd.isnull(unitas_survey_sheet["asset_list_row_id"])] + unitas_asset_list = unitas_asset_list.merge( + unitas_survey_sheet[["asset_list_row_id", "installation_status"]], + how="left", + on="asset_list_row_id" + ) + unitas_asset_list = unitas_asset_list[pd.isnull(unitas_asset_list["installation_status"])] + unitas_asset_list = unitas_asset_list.drop(columns=["installation_status"]) + + # We read in the data for the further completed surveys + unitas_phase_1_workbook = openpyxl.load_workbook( + "local_data/ha_data/UNITAS ( STOKE) MASTER ROLLING SHEET UPDATED 8.4.24 K - no password.xlsx" + ) + phase_1_worksheet = unitas_phase_1_workbook["ECO 4 - PHASE 1"] + phase_2_worksheet = unitas_phase_1_workbook["ECO4 - PHASE 2"] + phase1_colnames = [cell.value for cell in phase_1_worksheet[1]] + phase_1_rows_data = [] + for row in phase_1_worksheet.iter_rows(min_row=2, values_only=False): + row_data = [cell.value for cell in row] # This will get you the cell values + phase_1_rows_data.append(row_data) + + phase_1_surveys = pd.DataFrame(phase_1_rows_data, columns=phase1_colnames) + + # Correct phase 1 surveys in the same fashion as the previous approach + phase_1_surveys = DataLoader.correct_ha50_survey_list(phase_1_surveys.copy()) + + # We check all phase 1 surveys are contained in the data we had before + additional = [] + for _, row in tqdm(phase_1_surveys.iterrows(), total=len(phase_1_surveys)): + # We look for the entry in the old survey sheet: + # matched_uprn = unitas_survey_sheet[unitas_survey_sheet["EPR UPRN NUMBER"] == row["UPRN"]] + # if matched_uprn.shape[0] == 1: + # continue + + matched_1 = unitas_survey_sheet[ + (unitas_survey_sheet["Post Code"] == row["Post Code"]) & + (unitas_survey_sheet["NO."] == row["NO."]) + ] + + if matched_1.shape[0] == 1: + continue + + matched_2 = unitas_survey_sheet[ + (unitas_survey_sheet["Street / Block Name"] == row["Street / Block Name"]) & + (unitas_survey_sheet["NO."] == row["NO."]) + ] + + if matched_2.shape[0] == 1: + continue + + additional.append(row.to_dict()) + additional = pd.DataFrame(additional) + + phase_2_rows_data = [] + for row in phase_2_worksheet.iter_rows(min_row=2, values_only=False): + row_data = [cell.value for cell in row] # This will get you the cell values + phase_2_rows_data.append(row_data) + + phase2_colnames = [cell.value for cell in phase_2_worksheet[1]] + phase_2_surveys = pd.DataFrame(phase_2_rows_data, columns=phase2_colnames) + # Drop all of the occurances of "OFFICE USE ONLY" columns + phase_2_surveys = phase_2_surveys.drop(columns=[c for c in phase_2_surveys.columns if "OFFICE USE ONLY" in c]) + common_columns = list({c for c in phase_2_surveys.columns if c in additional.columns}) + additional_filtered = additional[common_columns] + + further_unitas_completed_surveys = pd.concat( + [phase_2_surveys, additional_filtered], + axis=0, + ignore_index=True + ) + + # Add a phase 2 key + further_unitas_completed_surveys["survey_list_row_id"] = [ + "unitas_phase_2" + str(i) for i in further_unitas_completed_surveys.index + ] + + not_in_asset_list = [ + "unitas_phase_20", "unitas_phase_234", "unitas_phase_2163", "unitas_phase_2173", "unitas_phase_2374" + ] + + additional_postcodes = ["st28bg"] + + full_asset_list = unitas_data["asset_list"].copy() + full_asset_list["matching_postcode"] = full_asset_list["matching_postcode"].str.lower().str.replace(" ", "") + further_unitas_completed_surveys["Post Code"] = further_unitas_completed_surveys["Post Code"].str.replace( + "ST 5DT", "ST3 5DT" + ) + + # We match these back to the asset list + matching_lookup = [] + for _, row in tqdm(further_unitas_completed_surveys.iterrows(), total=len(further_unitas_completed_surveys)): + + if row["survey_list_row_id"] in not_in_asset_list: + continue + + postcode_lower = row["Post Code"].lower().strip().replace(" ", "") + if postcode_lower in additional_postcodes: + continue + + # Confirmed not in asset lsit + # Filter asset list on postcode + df = full_asset_list[ + full_asset_list["matching_postcode"].str.contains(postcode_lower) + ] + + df = df[df["HouseNo"] == str(row["NO."])] + + if df.shape[0] != 1: + raise Exception("NOT FOUND") + + matching_lookup.append( + { + "survey_list_row_id": row["survey_list_row_id"], + "asset_list_row_id": df["asset_list_row_id"].values[0], + } + ) + + matching_lookup = pd.DataFrame(matching_lookup) + matching_lookup["phase_2_surveyed"] = True + + # We merge this onto the asset list and remove the rows + unitas_asset_list = unitas_asset_list.merge( + matching_lookup, how="left", on="asset_list_row_id" + ) + # Drop rows where phase_2_surveyed is populated + unitas_asset_list = unitas_asset_list[ + pd.isnull(unitas_asset_list["phase_2_surveyed"]) + ] + + # We add in the new CIGA submissions + unitas_round_2_ciga_workbook = openpyxl.load_workbook("local_data/ha_data/Unitas second round CIGA checks.xlsx") + ciga_round_2_worksheet = unitas_round_2_ciga_workbook["Worksheet"] + ciga_round_2_colnames = [cell.value for cell in ciga_round_2_worksheet[1]] + round_2_rows_data = [] + for row in ciga_round_2_worksheet.iter_rows(min_row=2, values_only=False): + row_data = [cell.value for cell in row] # This will get you the cell values + round_2_rows_data.append(row_data) + + ciga_round_2 = pd.DataFrame(round_2_rows_data, columns=ciga_round_2_colnames) + # We merge the ciga sheet to the asset list + ciga_dependent_asset_list = unitas_asset_list[ + unitas_asset_list["ECO Eligibility"].str.contains("subject to ciga") + ].copy() + + # We merge the ciga sheet to the asset list + ciga_round_2_matched = ciga_dependent_asset_list.merge( + ciga_round_2, how="inner", on=["Address Line 1", "Post Code"] + ) + # Filter on just the properties that had no guarantee + ciga_round_2_matched = ciga_round_2_matched[ciga_round_2_matched["Guarantee"] == "No"] + + # ECO Eligibility + # not eligible 9227 + # failed ciga 2711 + # eco4 (subject to ciga) 2238 + # eco4 - passed ciga 901 + # gbis 114 + # eco4 91 + + # We filter on the properties we're looking to re-survey + unitas_properties_to_survey = unitas_asset_list[ + unitas_asset_list["ECO Eligibility"].isin( + [ + "eco4 - passed ciga", + "eco4" + ] + ) + ].copy() + + unitas_properties_to_survey = pd.concat( + [ + unitas_properties_to_survey, + ciga_round_2_matched[unitas_properties_to_survey.columns] + ] + ) + + epc_api_key = "a2Nvbm5rb3dsZXNzYXJAZ21haWwuY29tOjY5MGJiMWM0NmIyOGI5ZDUxYzAxMzQzYzNiZGNlZGJjZDNmODQwMzA=" + + # We now retrieve the lastest EPC data + epc_data = [] + for _, unitas_property in tqdm(unitas_properties_to_survey.iterrows(), total=len(unitas_properties_to_survey)): + property_type, _ = get_property_type_and_built_form(property_meta=unitas_property, ha_name="HA50") + + full_address = unitas_property["matching_address"] + + searcher = SearchEpc( + address1=str(unitas_property["HouseNo"]), + postcode=unitas_property["matching_postcode"], + auth_token=epc_api_key, + os_api_key="", + property_type=property_type, + full_address=full_address, + fast=True + ) + # Force the skipping of estimating the EPC + searcher.ordnance_survey_client.property_type = None + searcher.ordnance_survey_client.built_form = None + + searcher.find_property(skip_os=True) + if searcher.newest_epc is None: + continue + + epc = { + "asset_list_row_id": unitas_property["asset_list_row_id"], + **searcher.newest_epc.copy() + } + + epc_data.append(epc) + + epc_df = pd.DataFrame(epc_data) + # Pull out just the columns we need + epc_df = epc_df[ + [ + "asset_list_row_id", + "address1", "postcode", + "current-energy-efficiency", + "current-energy-rating", + "inspection-date", + "transaction-type", + "built-form" + ] + ] + + epc_df["EPC Rating"] = ( + epc_df["current-energy-efficiency"].astype(str) + + epc_df["current-energy-rating"].astype(str) + ) + + # Merge onto the Unitas data: + unitas_properties_to_survey_full = unitas_properties_to_survey.merge( + epc_df[ + [ + "asset_list_row_id", + "EPC Rating", + "inspection-date", + "transaction-type", + "built-form" + ] + ], + how="left", + on="asset_list_row_id" + ) + + unitas_properties_to_survey_full["ECO Eligibility"] = unitas_properties_to_survey_full["ECO Eligibility"].replace( + "eco4 (subject to ciga)", "eco4 - passed ciga, phase 2 check" + ) + + for col in ["EPC Rating", "inspection-date", "transaction-type", "built-form"]: + unitas_properties_to_survey_full[col] = np.where( + pd.isnull(unitas_properties_to_survey_full[col]), + "No EPC found", + unitas_properties_to_survey_full[col] + ) + unitas_properties_to_survey_full[col] = unitas_properties_to_survey_full[col].fillna( + "No EPC found" + ) + unitas_properties_to_survey_full[col] = unitas_properties_to_survey_full[col].astype(str) + + unitas_properties_to_survey_full = unitas_properties_to_survey_full.rename( + columns={ + "inspection-date": "Last EPC Inspection Date", + "transaction-type": "Last EPC Reason", + "built-form": "Last EPC Built Form", + } + ) + + # We now match to the survey outcomes + unitas_survey_outcomes_workbook = openpyxl.load_workbook( + "local_data/ha_data/UNITAS - survey outcomes 26.03.2024.xlsx" + ) + unitas_survey_outcomes_worksheet = unitas_survey_outcomes_workbook["OUTCOMES"] + unitas_outcomes_colnames = [cell.value for cell in unitas_survey_outcomes_worksheet[2]] + outcomes_rows_data = [] + for row in unitas_survey_outcomes_worksheet.iter_rows(min_row=3, values_only=False): + row_data = [cell.value for cell in row] # This will get you the cell values + outcomes_rows_data.append(row_data) + + unitas_outcomes = pd.DataFrame(outcomes_rows_data, columns=unitas_outcomes_colnames) + unitas_outcomes = unitas_outcomes.rename( + columns={ + "Notes (If 'no answer' under outcomes, have you checked around the property for access " + "issues where possible?)": "Notes" + } + ) + + unitas_outcomes["Postcode"].unique() + eg1 = unitas_properties_to_survey_full[ + (unitas_properties_to_survey_full["Post Code"] == "ST6 6RF") + ] + eg1_outcomes = unitas_outcomes[ + (unitas_outcomes["Postcode"] == "ST6 6RF") + ] + + # Merge outcomes onto properties to survey. Will probably have to do algorithmically + full_asset_list["matching_postcode_nospace"] = full_asset_list["matching_postcode"].str.lower().str.replace(" ", "") + outcome_matching = [] + for _, outcome in tqdm(unitas_outcomes.iterrows(), total=len(unitas_outcomes)): + # We search for the corresponding entry in the asset list + postcode_lower = outcome["Postcode"].lower().strip().replace(" ", "") + + # Confirmed not in asset lsit + # Filter asset list on postcode + df = unitas_properties_to_survey_full[ + unitas_properties_to_survey_full["matching_postcode_nospace"].str.contains(postcode_lower) + ] + + df = df[df["HouseNo"] == str(outcome["No."])] + if df.empty: + continue + + if df.shape[0] == 1: + outcome_matching.append( + { + "asset_list_row_id": df["asset_list_row_id"].values[0], + **outcome.to_dict() + } + ) + continue + + raise Exception("something went wrong") + + # Store as an excel + unitas_properties_to_survey_full.to_excel("Unitas - phase 2 properties to Survey.xlsx") + + def app(): """ This app contains the housin association analysis for HAs 1, 6, 14, 39 and 107. @@ -6907,81 +7240,3 @@ def app(): december_figures["ECO4 remaining"] ) december_figures["ECO4 remaining"].sum() - - # Adhoc - for UNITAS, stripping out additional surveys that have been completed - unitas_data = loader.data["HA50"].copy() - unitas_asset_list = unitas_data["asset_list"].copy() - unitas_survey_sheet = unitas_data["survey_list"].copy() - # We remove the surveyed properties from the asset sheet - unitas_survey_sheet = unitas_survey_sheet[~pd.isnull(unitas_survey_sheet["asset_list_row_id"])] - unitas_asset_list = unitas_asset_list.merge( - unitas_survey_sheet[["asset_list_row_id", "installation_status"]], - how="left", - on="asset_list_row_id" - ) - unitas_asset_list = unitas_asset_list[pd.isnull(unitas_asset_list["installation_status"])] - unitas_asset_list = unitas_asset_list.drop(columns=["installation_status"]) - - # We read in the data for the further completed surveys - unitas_phase_1_workbook = openpyxl.load_workbook( - "local_data/ha_data/UNITAS ( STOKE) MASTER ROLLING SHEET UPDATED 8.4.24 K - no password.xlsx" - ) - phase_1_worksheet = unitas_phase_1_workbook["ECO 4 - PHASE 1"] - phase_2_worksheet = unitas_phase_1_workbook["ECO4 - PHASE 2"] - phase1_colnames = [cell.value for cell in phase_1_worksheet[1]] - phase_1_rows_data = [] - for row in phase_1_worksheet.iter_rows(min_row=2, values_only=False): - row_data = [cell.value for cell in row] # This will get you the cell values - phase_1_rows_data.append(row_data) - - phase_1_surveys = pd.DataFrame(phase_1_rows_data, columns=phase1_colnames) - - # Correct phase 1 surveys in the same fashion as the previous approach - phase_1_surveys = DataLoader.correct_ha50_survey_list(phase_1_surveys.copy()) - - # We check all phase 1 surveys are contained in the data we had before - additional = [] - for _, row in tqdm(phase_1_surveys.iterrows(), total=len(phase_1_surveys)): - # We look for the entry in the old survey sheet: - # matched_uprn = unitas_survey_sheet[unitas_survey_sheet["EPR UPRN NUMBER"] == row["UPRN"]] - # if matched_uprn.shape[0] == 1: - # continue - - matched_1 = unitas_survey_sheet[ - (unitas_survey_sheet["Post Code"] == row["Post Code"]) & - (unitas_survey_sheet["NO."] == row["NO."]) - ] - - if matched_1.shape[0] == 1: - continue - - matched_2 = unitas_survey_sheet[ - (unitas_survey_sheet["Street / Block Name"] == row["Street / Block Name"]) & - (unitas_survey_sheet["NO."] == row["NO."]) - ] - - if matched_2.shape[0] == 1: - continue - - additional.append(row.to_dict()) - additional = pd.DataFrame(additional) - - phase_2_rows_data = [] - for row in phase_2_worksheet.iter_rows(min_row=2, values_only=False): - row_data = [cell.value for cell in row] # This will get you the cell values - phase_2_rows_data.append(row_data) - - phase2_colnames = [cell.value for cell in phase_2_worksheet[1]] - phase_2_surveys = pd.DataFrame(phase_2_rows_data, columns=phase2_colnames) - # Drop all of the occurances of "OFFICE USE ONLY" columns - phase_2_surveys = phase_2_surveys.drop(columns=[c for c in phase_2_surveys.columns if "OFFICE USE ONLY" in c]) - common_columns = list({c for c in phase_2_surveys.columns if c in additional.columns}) - additional_filtered = additional[common_columns] - - further_unitas_completed_surveys = pd.concat( - [phase_2_surveys, additional_filtered], - axis=0, - ignore_index=True - ) - - # We match these back to the asset list From f0c4ca0143ee886ba84960b00e3f2700b6047429 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Wed, 10 Apr 2024 11:14:33 +0100 Subject: [PATCH 482/526] completed unitas --- .../ha_15_32/ha_analysis_batch_3.py | 46 ++++++++++++++++++- 1 file changed, 45 insertions(+), 1 deletion(-) diff --git a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py index 35bb63fe..f99c7b1a 100644 --- a/etl/eligibility/ha_15_32/ha_analysis_batch_3.py +++ b/etl/eligibility/ha_15_32/ha_analysis_batch_3.py @@ -7106,9 +7106,53 @@ def unitas_data_prep(loader): continue raise Exception("something went wrong") + outcome_matching = pd.DataFrame(outcome_matching) + + # We can have duplicate matches, so we format the Date letter sent column and retrieve the newest outcome + outcome_matching["Date letters sent"] = outcome_matching["Date letters sent"].str.lower() + outcome_matching["Extracted Date"] = outcome_matching["Date letters sent"].str.extract( + r'(?:w[./]c )(\d{2}\.\d{2}\.\d{4})') + outcome_matching["Extracted Date"] = pd.to_datetime(outcome_matching["Extracted Date"], format='%d.%m.%Y') + # We sort by asset_list_row_id and extracted date, and retrieve the newest + outcome_matching = outcome_matching.sort_values(["asset_list_row_id", "Extracted Date"], ascending=[True, False]) + + # Some properties will have multiple outcomes - for these, we re-format + outcome_matching_grouped = [] + for asset_list_row_id, grouped_data in outcome_matching.groupby("asset_list_row_id"): + if grouped_data.shape[0] == 1: + outcome_matching_grouped.append( + { + "Number of previous visits": 1, + **grouped_data.to_dict("records")[0] + } + ) + continue + if grouped_data.shape[0] == 2: + newest_visit = grouped_data.head(1) + oldest_visit = grouped_data.tail(1)[['Outcomes', 'Surveyor', 'Notes', 'Date letters sent']].add_suffix( + " second visit") + to_append = { + "Number of previous visits": 2, + **newest_visit.to_dict("records")[0], + **oldest_visit.to_dict("records")[0] + } + outcome_matching_grouped.append(to_append) + else: + raise Exception("something went wrong") + + outcome_matching_grouped = pd.DataFrame(outcome_matching_grouped) + + unitas_properties_to_survey_with_outcomes = unitas_properties_to_survey_full.merge( + outcome_matching_grouped, how="left", on="asset_list_row_id" + ) + unitas_properties_to_survey_with_outcomes["Number of previous visits"] = ( + unitas_properties_to_survey_with_outcomes["Number of previous visits"].fillna(0) + ) # Store as an excel - unitas_properties_to_survey_full.to_excel("Unitas - phase 2 properties to Survey.xlsx") + unitas_properties_to_survey_with_outcomes.to_excel("Unitas - phase 2 properties to Survey.xlsx") + + unitas_properties_to_survey_with_outcomes["Last EPC Built Form"].value_counts() def app(): From cf7627a8d7fa06df445faf7637e06eefd7f8764b Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Wed, 10 Apr 2024 12:04:17 +0100 Subject: [PATCH 483/526] started setting up asset list and gathering council tax bands --- etl/customers/immo/pilot/asset_list.py | 44 ++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 etl/customers/immo/pilot/asset_list.py diff --git a/etl/customers/immo/pilot/asset_list.py b/etl/customers/immo/pilot/asset_list.py new file mode 100644 index 00000000..33f79729 --- /dev/null +++ b/etl/customers/immo/pilot/asset_list.py @@ -0,0 +1,44 @@ +import os + +import pandas as pd +from tqdm import tqdm + +from dotenv import load_dotenv +from utils.s3 import read_excel_from_s3 +from backend.SearchEpc import SearchEpc +from epc_api.client import EpcClient +from utils.s3 import save_csv_to_s3 + +# Read in the .env file in backend +load_dotenv(dotenv_path="backend/.env") +EPC_AUTH_TOKEN = os.getenv("EPC_AUTH_TOKEN") + +USER_ID = 8 +PORTFOLIO_ID = 70 + +council_tax_bands = [ + {'address': '8 Corporation Road', 'postcode': 'DY2 7PX', 'band': 'A'}, + {'address': '21 Wells Road', 'postcode': 'DY5 3TB', 'band': 'A'}, + {'address': '27 Milton Road', 'postcode': 'WV14 8HZ', 'band': 'A'}, + {'address': '195 Ashenhurst Road', 'postcode': 'DY1 2JB', 'band': 'A'}, + {'address': '53 Bromley', 'postcode': 'DY5 4PJ', 'band': 'A'}, + {'address': '91 Osprey Drive', 'postcode': 'DY1 2JS', 'band': 'B'}, + {'address': '47 Fairfield Road', 'postcode': 'DY8 5UJ', 'band': 'B'}, + {'address': '150 Huntingtree Road', 'postcode': 'B63 4HP', 'band': 'C'}, + {'address': '6 Beech Road', 'postcode': 'DY1 4BP', 'band': 'A'}, + {'address': '5 Oaklands', 'postcode': 'B62 0JA', 'band': 'A'}, +] + + +def app(): + raw_asset_list = read_excel_from_s3( + bucket_name="retrofit-datalake-dev", + file_key="customers/Immo/IMMO Sample Assets_Dudley.xlsx", + header_row=0 + ) + raw_asset_list = raw_asset_list.drop(columns=["Unnamed: 0"]) + # Extract address and postcode + raw_asset_list["address"] = raw_asset_list["Full Address"].str.split(",").str[0] + raw_asset_list["postcode"] = raw_asset_list["Full Address"].str.split(",").str[-1].str.strip() + + raw_asset_list[["address", "postcode"]].to_dict("records") From b791ecb054f0e5be39f91f78771f74ed80fe904d Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Wed, 10 Apr 2024 12:08:47 +0100 Subject: [PATCH 484/526] set up asset list --- etl/customers/immo/pilot/asset_list.py | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/etl/customers/immo/pilot/asset_list.py b/etl/customers/immo/pilot/asset_list.py index 33f79729..269ffe00 100644 --- a/etl/customers/immo/pilot/asset_list.py +++ b/etl/customers/immo/pilot/asset_list.py @@ -41,4 +41,23 @@ def app(): raw_asset_list["address"] = raw_asset_list["Full Address"].str.split(",").str[0] raw_asset_list["postcode"] = raw_asset_list["Full Address"].str.split(",").str[-1].str.strip() - raw_asset_list[["address", "postcode"]].to_dict("records") + council_tax_bands = pd.DataFrame(council_tax_bands) + asset_list = raw_asset_list.merge(council_tax_bands, how="left", on=["address", "postcode"]) + + # Store the data in s3 + filename = f"{USER_ID}/{PORTFOLIO_ID}/pilot.csv" + save_csv_to_s3( + dataframe=asset_list, + bucket_name="retrofit-plan-inputs-dev", + file_name=filename + ) + + body = { + "portfolio_id": str(PORTFOLIO_ID), + "housing_type": "Private", + "goal": "Increase EPC", + "goal_value": "A", + "trigger_file_path": filename, + "budget": None, + } + print(body) From 5079170a25066e4ed3ab96c7a5034f1ddce5ada2 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Wed, 10 Apr 2024 13:34:15 +0100 Subject: [PATCH 485/526] pulled valuations for immo pilot from Zoopla --- .idea/Model.iml | 2 +- .idea/misc.xml | 2 +- backend/app/plan/router.py | 10 ++++++++++ backend/ml_models/Valuation.py | 11 +++++++++++ 4 files changed, 23 insertions(+), 2 deletions(-) diff --git a/.idea/Model.iml b/.idea/Model.iml index b0f9c00d..4413bb06 100644 --- a/.idea/Model.iml +++ b/.idea/Model.iml @@ -7,7 +7,7 @@ - + diff --git a/.idea/misc.xml b/.idea/misc.xml index 1122b380..6f308057 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -3,7 +3,7 @@ - + diff --git a/backend/app/plan/router.py b/backend/app/plan/router.py index 50b8a837..c71533fa 100644 --- a/backend/app/plan/router.py +++ b/backend/app/plan/router.py @@ -142,6 +142,16 @@ async def trigger_plan(body: PlanTriggerRequest): ) ) + z = [] + for p in input_properties: + z.append( + { + "uprn": p.uprn, + "address": p.address, + "postcode": p.postcode, + } + ) + if not input_properties: return Response(status_code=204) diff --git a/backend/ml_models/Valuation.py b/backend/ml_models/Valuation.py index 2bb7de32..251c016a 100644 --- a/backend/ml_models/Valuation.py +++ b/backend/ml_models/Valuation.py @@ -52,6 +52,17 @@ class PropertyValuation: 10070056829: 76_000, 10070056920: 76_000, 10023345463: 76_000, + # IMMO Dudley Pilot - search by going to https://www.zoopla.co.uk/property/uprn/{uprn}/ + 90070461: 172_000, # Based on Zoopla + 90022227: 181_000, # Based on Zoopla + 90106884: 180_000, # Based on Zoopla + 90051858: 201_000, # Based on Zoopla + 90060989: 172_000, # Based on Zoopla + 90048026: 196_000, # Based on Zoopla + 90077535: 192_000, # Based on Zoopla + 90093693: 279_000, # Based on Zoopla + 90055152: 149_000, # Based on Zoopla + 90028499: 238_000, # Based on Zoopla } # We base our valuation uplifts on a number of sources From 5ac5cd7737a5b632258d130ea0e36057c25b0b6a Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Wed, 10 Apr 2024 14:02:19 +0100 Subject: [PATCH 486/526] fixing bug when setting phase for heating controls, without a recommendation --- backend/app/plan/router.py | 10 ---------- recommendations/HeatingRecommender.py | 7 ++++++- 2 files changed, 6 insertions(+), 11 deletions(-) diff --git a/backend/app/plan/router.py b/backend/app/plan/router.py index c71533fa..50b8a837 100644 --- a/backend/app/plan/router.py +++ b/backend/app/plan/router.py @@ -142,16 +142,6 @@ async def trigger_plan(body: PlanTriggerRequest): ) ) - z = [] - for p in input_properties: - z.append( - { - "uprn": p.uprn, - "address": p.address, - "postcode": p.postcode, - } - ) - if not input_properties: return Response(status_code=204) diff --git a/recommendations/HeatingRecommender.py b/recommendations/HeatingRecommender.py index aec1f419..91730053 100644 --- a/recommendations/HeatingRecommender.py +++ b/recommendations/HeatingRecommender.py @@ -361,7 +361,12 @@ class HeatingRecommender: self.recommendations = combined_recommendations else: # We increment the recommendation phase, since the heating controls are separate from the boiler upgrade - recommendation_phase += 1 + # but we'll only upgrade if we have a heating recommendation + has_heating_recommendation = any( + recommendation["type"] == "heating" for recommendation in self.recommendations + ) + if has_heating_recommendation: + recommendation_phase += 1 # The heating controls recommendation is distrinct from the boiler upgrade recommendation # We insert phase into the recommendations for heating controls for recommendation in controls_recommender.recommendation: From 4e4199345511c2aa8e838581cebe9e7c307c1475 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Wed, 10 Apr 2024 17:20:49 +0100 Subject: [PATCH 487/526] savings --- etl/customers/immo/pilot/asset_list.py | 13 +------------ recommendations/optimiser/optimiser_functions.py | 6 +----- 2 files changed, 2 insertions(+), 17 deletions(-) diff --git a/etl/customers/immo/pilot/asset_list.py b/etl/customers/immo/pilot/asset_list.py index 269ffe00..7939a555 100644 --- a/etl/customers/immo/pilot/asset_list.py +++ b/etl/customers/immo/pilot/asset_list.py @@ -1,18 +1,7 @@ -import os - import pandas as pd -from tqdm import tqdm - -from dotenv import load_dotenv from utils.s3 import read_excel_from_s3 -from backend.SearchEpc import SearchEpc -from epc_api.client import EpcClient from utils.s3 import save_csv_to_s3 -# Read in the .env file in backend -load_dotenv(dotenv_path="backend/.env") -EPC_AUTH_TOKEN = os.getenv("EPC_AUTH_TOKEN") - USER_ID = 8 PORTFOLIO_ID = 70 @@ -28,6 +17,7 @@ council_tax_bands = [ {'address': '6 Beech Road', 'postcode': 'DY1 4BP', 'band': 'A'}, {'address': '5 Oaklands', 'postcode': 'B62 0JA', 'band': 'A'}, ] +council_tax_bands = pd.DataFrame(council_tax_bands) def app(): @@ -41,7 +31,6 @@ def app(): raw_asset_list["address"] = raw_asset_list["Full Address"].str.split(",").str[0] raw_asset_list["postcode"] = raw_asset_list["Full Address"].str.split(",").str[-1].str.strip() - council_tax_bands = pd.DataFrame(council_tax_bands) asset_list = raw_asset_list.merge(council_tax_bands, how="left", on=["address", "postcode"]) # Store the data in s3 diff --git a/recommendations/optimiser/optimiser_functions.py b/recommendations/optimiser/optimiser_functions.py index 27838d6e..9860c5ea 100644 --- a/recommendations/optimiser/optimiser_functions.py +++ b/recommendations/optimiser/optimiser_functions.py @@ -20,10 +20,6 @@ def prepare_input_measures(property_recommendations, goal, housing_type): if not goal_key: raise NotImplementedError("Not implemented this gain type - investigate me") - # We don't include suspended and solid floor insulation as possible measures in private housing, because - # of the need to decant the tenant - ignored_measures = ["suspended_floor_insulation", "solid_floor_insulation"] if housing_type == "Private" else [] - input_measures = [] for recs in property_recommendations: input_measures.append( @@ -34,7 +30,7 @@ def prepare_input_measures(property_recommendations, goal, housing_type): "gain": rec[goal_key], "type": rec["type"] } - for rec in recs if rec["type"] not in ignored_measures + for rec in recs ] ) From 346b798c192e4c071640123379c021373d965543 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Wed, 10 Apr 2024 17:26:00 +0100 Subject: [PATCH 488/526] removed whitespace --- backend/app/plan/router.py | 1 - 1 file changed, 1 deletion(-) diff --git a/backend/app/plan/router.py b/backend/app/plan/router.py index 50b8a837..bbf9261b 100644 --- a/backend/app/plan/router.py +++ b/backend/app/plan/router.py @@ -75,7 +75,6 @@ async def trigger_plan(body: PlanTriggerRequest): logger.info("Connecting to db") session = sessionmaker(bind=db_engine)() created_at = datetime.now().isoformat() - # TODO: We should store the trigger file path in the database with the plan so we can track the file that # triggered the plan From e0e60f8c9822aec63e1acb74bdb037a8a4840210 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Wed, 10 Apr 2024 17:26:23 +0100 Subject: [PATCH 489/526] added whitespace --- backend/app/plan/router.py | 1 + 1 file changed, 1 insertion(+) diff --git a/backend/app/plan/router.py b/backend/app/plan/router.py index bbf9261b..4b4d45e7 100644 --- a/backend/app/plan/router.py +++ b/backend/app/plan/router.py @@ -75,6 +75,7 @@ async def trigger_plan(body: PlanTriggerRequest): logger.info("Connecting to db") session = sessionmaker(bind=db_engine)() created_at = datetime.now().isoformat() + # TODO: We should store the trigger file path in the database with the plan so we can track the file that # triggered the plan From 505fe0736becf7ad649d24ff68bf902825239b02 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Wed, 10 Apr 2024 18:46:51 +0100 Subject: [PATCH 490/526] Updating optimiser to only optimise solar recommendations that include the battery --- backend/app/plan/router.py | 7 ++----- recommendations/SolarPvRecommendations.py | 3 ++- recommendations/optimiser/optimiser_functions.py | 12 +++++++----- 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/backend/app/plan/router.py b/backend/app/plan/router.py index 4b4d45e7..6f179c79 100644 --- a/backend/app/plan/router.py +++ b/backend/app/plan/router.py @@ -75,7 +75,7 @@ async def trigger_plan(body: PlanTriggerRequest): logger.info("Connecting to db") session = sessionmaker(bind=db_engine)() created_at = datetime.now().isoformat() - + # TODO: We should store the trigger file path in the database with the plan so we can track the file that # triggered the plan @@ -242,7 +242,7 @@ async def trigger_plan(body: PlanTriggerRequest): expected_adjusted_energy=expected_adjusted_energy ) - input_measures = prepare_input_measures(recommendations_with_impact, body.goal, body.housing_type) + input_measures = prepare_input_measures(recommendations_with_impact, body.goal) current_sap_points = int(property_instance.data["current-energy-efficiency"]) target_sap_points = epc_to_sap_lower_bound(body.goal_value) @@ -279,9 +279,6 @@ async def trigger_plan(body: PlanTriggerRequest): if ventilation_rec: selected_recommendations.add(ventilation_rec["recommendation_id"]) - # We check if the selected recommendation is wall ventilation and if so, we make sure - # mechanical ventilation is selected - # We'll use the set of selected recommendations to filter the recommendations to upload final_recommendations = [ [ diff --git a/recommendations/SolarPvRecommendations.py b/recommendations/SolarPvRecommendations.py index 4cf1c1fc..f75003ce 100644 --- a/recommendations/SolarPvRecommendations.py +++ b/recommendations/SolarPvRecommendations.py @@ -122,6 +122,7 @@ class SolarPvRecommendations: **cost_result, # This is required for simulating the SAP impact. solar_pv_percentage is between 0 & 1 so we scale # back up here - "photo_supply": 100 * roof_coverage + "photo_supply": 100 * roof_coverage, + "has_battery": has_battery } ) diff --git a/recommendations/optimiser/optimiser_functions.py b/recommendations/optimiser/optimiser_functions.py index 9860c5ea..6159b930 100644 --- a/recommendations/optimiser/optimiser_functions.py +++ b/recommendations/optimiser/optimiser_functions.py @@ -1,17 +1,13 @@ -def prepare_input_measures(property_recommendations, goal, housing_type): +def prepare_input_measures(property_recommendations, goal): """ Basic function to convert recommendations_to_upload to a format that is suitable for the optimiser - large :param property_recommendations: object containing the recommendations, created in the plan trigger api :param goal: goal to be optimised for, should be one of the keys in gain_map. E.g. if the gain is SAP points, the goal should reflect that desired gain - :param housing_type: type of housing the recommendations are for - should be one of "Social" or "Private" :return: Nested list of input measures """ - if housing_type not in ["Social", "Private"]: - raise ValueError("Invalid housing type - investigate me") - goal_map = { "Increase EPC": "sap_points" } @@ -22,6 +18,12 @@ def prepare_input_measures(property_recommendations, goal, housing_type): input_measures = [] for recs in property_recommendations: + if recs[0]["type"] == "solar_pv": + # if the recommendation is a solar recommendation without a battery, we exclude it from the optimisation. + # That will ensure that the optimiser only considers solar recommendations with batteries, so we don't + # under-report the potential cost + recs = [r for r in recs if recs["has_battery"]] + input_measures.append( [ { From f04b79d6800fce396fdbc5494b66f221d43a9826 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Wed, 10 Apr 2024 18:54:58 +0100 Subject: [PATCH 491/526] fixed bug with selecting batter solar recommendations --- recommendations/optimiser/optimiser_functions.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/recommendations/optimiser/optimiser_functions.py b/recommendations/optimiser/optimiser_functions.py index 6159b930..d6353eea 100644 --- a/recommendations/optimiser/optimiser_functions.py +++ b/recommendations/optimiser/optimiser_functions.py @@ -22,7 +22,7 @@ def prepare_input_measures(property_recommendations, goal): # if the recommendation is a solar recommendation without a battery, we exclude it from the optimisation. # That will ensure that the optimiser only considers solar recommendations with batteries, so we don't # under-report the potential cost - recs = [r for r in recs if recs["has_battery"]] + recs = [r for r in recs if r["has_battery"]] input_measures.append( [ From 43af0de04732ba737459a1f04ccb50950287c235 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Thu, 11 Apr 2024 10:30:36 +0100 Subject: [PATCH 492/526] Updated condittions we recommend loft insulation, so it is not recommended if the home has more than 200mm insulation in place already --- recommendations/RoofRecommendations.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/recommendations/RoofRecommendations.py b/recommendations/RoofRecommendations.py index eb1c6c4f..8d6a91e7 100644 --- a/recommendations/RoofRecommendations.py +++ b/recommendations/RoofRecommendations.py @@ -20,8 +20,9 @@ class RoofRecommendations: DIMINISHING_RETURNS_U_VALUE = 0.14 - # It is recommended that lofts should have at least 270mm of insulation - MINIMUM_LOFT_ISULATION_MM = 270 + # It is recommended that lofts should have at least 270mm of insulation. If the property has more than 200mm of + # loft insulation in place already, we do not recommend anything for the moment + MINIMUM_LOFT_ISULATION_MM = 200 # Flat roof should have at least 100mm of insulation MINIMUM_FLAT_ROOF_ISULATION_MM = 100 @@ -71,7 +72,7 @@ class RoofRecommendations: # Building regulations part L recommend installing at least 270mm of insulation, however generally we # experience diminishing returns in terms of SAP once we go beyond around 150mm of insulation # This only holds true for pitched roofs. - if (insulation_thickness >= self.MINIMUM_LOFT_ISULATION_MM) and self.property.roof["is_pitched"]: + if (insulation_thickness > self.MINIMUM_LOFT_ISULATION_MM) and self.property.roof["is_pitched"]: return if (insulation_thickness >= self.MINIMUM_FLAT_ROOF_ISULATION_MM) and self.property.roof["is_flat"]: From db6fd58af4e89dcbdbecd436f2a9328ea6924521 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Thu, 11 Apr 2024 10:56:17 +0100 Subject: [PATCH 493/526] changing the logic we use to recommend a combi boiler --- backend/Property.py | 13 +++++++++- recommendations/HeatingRecommender.py | 36 ++++++++++++++++++--------- 2 files changed, 36 insertions(+), 13 deletions(-) diff --git a/backend/Property.py b/backend/Property.py index d3dd8395..6f2e648d 100644 --- a/backend/Property.py +++ b/backend/Property.py @@ -55,7 +55,13 @@ class Property: DATA_ANOMALY_MATCHES = DATA_ANOMALY_MATCHES - def __init__(self, id, postcode, address, epc_record): + # Surplus information, that can be provided as optional inputs, by a customer + n_bathrooms = None + n_bedrooms = None + + def __init__( + self, id, postcode, address, epc_record, **kwargs + ): self.epc_record = epc_record @@ -133,6 +139,11 @@ class Property: self.recommendations_scoring_data = [] + def parse_kwargs(self, kwargs): + # We extract the elements from kwargs that we recognise. Anything additional is ignored + self.n_bathrooms = kwargs.get("n_bathrooms", None) + self.n_bedrooms = kwargs.get("n_bedrooms", None) + def create_base_difference_epc_record(self, cleaned_lookup: dict): """ Creates a EPCDifferenceRecord object, which is used to store the difference between the current and diff --git a/recommendations/HeatingRecommender.py b/recommendations/HeatingRecommender.py index 91730053..d4fe0a90 100644 --- a/recommendations/HeatingRecommender.py +++ b/recommendations/HeatingRecommender.py @@ -34,7 +34,6 @@ class HeatingRecommender: if has_electric_heating_description or no_heating_no_mains: # Recommend high heat retention storage heaters self.recommend_electric_storage_heaters(phase=phase, system_change=True, heating_controls_only=False) - return # if the property has mains heating with boiler and radiators, we recommend optimal heating controls has_boiler = self.property.main_heating["clean_description"] in ["Boiler and radiators, mains gas"] @@ -44,9 +43,16 @@ class HeatingRecommender: 'No system present, electric heaters assumed' ] and self.property.data["mains-gas-flag"] - if has_boiler or no_heating_has_mains: - self.recommend_boiler_upgrades(phase=phase, no_heating_has_mains=no_heating_has_mains) - return + # We also check if the property has electric heating, but it has access to the mains gas + electic_heating_has_mains = has_electric_heating_description and self.property.data["mains-gas-flag"] + + if has_boiler or no_heating_has_mains or electic_heating_has_mains: + # This indicates that the home previously did not have a boiler in place and so would require + # an overhaul to the system + system_change = not has_boiler + self.recommend_boiler_upgrades(phase=phase, system_change=system_change) + + return @staticmethod def check_simulation_difference(old_config, new_config): @@ -256,12 +262,14 @@ class HeatingRecommender: return closest_size - def recommend_boiler_upgrades(self, phase, no_heating_has_mains): + def recommend_boiler_upgrades(self, phase, system_change): """ This boiler recommendation will only recommend a like-for-like upgrade, since changing the system is generally more expensive :param phase: - :param no_heating_has_mains: indicaes if the property has no heating system, but has access to the mains gas + :param system_change: Indicates if the property would be undergoing a heating system change. This could be true + if the home didn't have a heating system in place, or if the home had electric heating + previously :return: """ @@ -279,17 +287,21 @@ class HeatingRecommender: num_heated_rooms=self.property.data["number-heated-rooms"], ) - # If heating and hot water come from the mains, we need a combi boiler, otherwise we need a regular boiler - hotwater_from_mains = self.property.hotwater["clean_description"] in ["From main system"] - - is_combi = hotwater_from_mains or no_heating_has_mains + # We recommend a combi boiler under the following conditions + # 1) If there are 4 or fewer rooms (we don't use heqted rooms because none of the rooms could be + # heated if there is no existing heating system). + # 2) There is more than 1 bathroom + is_combi = ( + (self.property.data["number-heated-rooms"] <= 4) or + (self.property.n_bathrooms not in [None, 0, 1]) + ) if is_combi: description = "Upgrade to a new combi boiler" else: - description = "Upgrade to a new boiler" + description = "Upgrade to a new gas condensing boiler" simulation_config = {"mainheat_energy_eff_ending": "Good"} - if no_heating_has_mains: + if system_change: # Installation of a boiler improves the hot water system so we need to reflect this in # the outcome of the recommendation heating_ending_config = MainHeatAttributes("Boiler and radiators, mains gas").process() From ac8cf271698788d4479626dae19f09a0027c79aa Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Thu, 11 Apr 2024 11:20:29 +0100 Subject: [PATCH 494/526] created extract kwargs to read bathrooms and bedrooms --- backend/Property.py | 22 ++++++++++++++++++++++ backend/app/plan/router.py | 1 + 2 files changed, 23 insertions(+) diff --git a/backend/Property.py b/backend/Property.py index 6f2e648d..5fe9716e 100644 --- a/backend/Property.py +++ b/backend/Property.py @@ -139,6 +139,28 @@ class Property: self.recommendations_scoring_data = [] + @classmethod + def extract_kwargs(cls, kwargs): + """ + This method is to be used in the router, to extract the kwargs from the request and prevent any errors such as + non-integer values, or inputs that clash with the __init__ method of this class + :param kwargs: + :return: + """ + n_bathrooms = kwargs.get("n_bathrooms", None) + if n_bathrooms is not None: + # We add on a small value to ensure that the number of bathrooms is rounded up, in case the value is 0.5 + n_bathrooms = int(round(n_bathrooms + 1e-5)) + + n_bedrooms = kwargs.get("n_bedrooms", None) + if n_bedrooms is not None: + n_bedrooms = int(round(n_bedrooms + 1e-5)) + + return { + "n_bathrooms": n_bathrooms, + "n_bedrooms": n_bedrooms, + } + def parse_kwargs(self, kwargs): # We extract the elements from kwargs that we recognise. Anything additional is ignored self.n_bathrooms = kwargs.get("n_bathrooms", None) diff --git a/backend/app/plan/router.py b/backend/app/plan/router.py index 6f179c79..7dc11bb9 100644 --- a/backend/app/plan/router.py +++ b/backend/app/plan/router.py @@ -139,6 +139,7 @@ async def trigger_plan(body: PlanTriggerRequest): address=epc_searcher.address_clean, postcode=epc_searcher.postcode_clean, epc_record=prepared_epc, + **Property.extract_kwargs(config) ) ) From 2aa2e5947e6d29acf5c82962788a18ad9daf3351 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Thu, 11 Apr 2024 11:36:14 +0100 Subject: [PATCH 495/526] adding bedrooms and bathrooms to asset list for immo --- .idea/Model.iml | 2 +- .idea/misc.xml | 2 +- etl/customers/immo/pilot/asset_list.py | 8 ++++++++ 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/.idea/Model.iml b/.idea/Model.iml index 4413bb06..b0f9c00d 100644 --- a/.idea/Model.iml +++ b/.idea/Model.iml @@ -7,7 +7,7 @@ - + diff --git a/.idea/misc.xml b/.idea/misc.xml index 6f308057..1122b380 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -3,7 +3,7 @@ - + diff --git a/etl/customers/immo/pilot/asset_list.py b/etl/customers/immo/pilot/asset_list.py index 7939a555..9756e00b 100644 --- a/etl/customers/immo/pilot/asset_list.py +++ b/etl/customers/immo/pilot/asset_list.py @@ -33,6 +33,14 @@ def app(): asset_list = raw_asset_list.merge(council_tax_bands, how="left", on=["address", "postcode"]) + # We're provided with number of bathrooms and number of bedrooms. + asset_list = asset_list.rename( + columns={ + "No. of Beds": "n_bedrooms", + "No. of WC's": "n_bathrooms" + } + ) + # Store the data in s3 filename = f"{USER_ID}/{PORTFOLIO_ID}/pilot.csv" save_csv_to_s3( From 606fd3a615e2188f78e2721aef9732e5d0d76328 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Thu, 11 Apr 2024 11:49:48 +0100 Subject: [PATCH 496/526] Adding parsing of kwargs to Property class --- .idea/Model.iml | 2 +- .idea/misc.xml | 2 +- backend/Property.py | 6 ++++-- backend/app/plan/router.py | 20 ++++++++++---------- 4 files changed, 16 insertions(+), 14 deletions(-) diff --git a/.idea/Model.iml b/.idea/Model.iml index b0f9c00d..4413bb06 100644 --- a/.idea/Model.iml +++ b/.idea/Model.iml @@ -7,7 +7,7 @@ - + diff --git a/.idea/misc.xml b/.idea/misc.xml index 1122b380..6f308057 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -3,7 +3,7 @@ - + diff --git a/backend/Property.py b/backend/Property.py index 5fe9716e..950c1ac9 100644 --- a/backend/Property.py +++ b/backend/Property.py @@ -139,6 +139,8 @@ class Property: self.recommendations_scoring_data = [] + self.parse_kwargs(kwargs) + @classmethod def extract_kwargs(cls, kwargs): """ @@ -150,11 +152,11 @@ class Property: n_bathrooms = kwargs.get("n_bathrooms", None) if n_bathrooms is not None: # We add on a small value to ensure that the number of bathrooms is rounded up, in case the value is 0.5 - n_bathrooms = int(round(n_bathrooms + 1e-5)) + n_bathrooms = int(round(float(n_bathrooms) + 1e-5)) n_bedrooms = kwargs.get("n_bedrooms", None) if n_bedrooms is not None: - n_bedrooms = int(round(n_bedrooms + 1e-5)) + n_bedrooms = int(round(float(n_bedrooms) + 1e-5)) return { "n_bathrooms": n_bathrooms, diff --git a/backend/app/plan/router.py b/backend/app/plan/router.py index 7dc11bb9..3cb2027d 100644 --- a/backend/app/plan/router.py +++ b/backend/app/plan/router.py @@ -109,16 +109,16 @@ async def trigger_plan(body: PlanTriggerRequest): session, body.portfolio_id, epc_searcher.address_clean, epc_searcher.postcode_clean, epc_searcher.uprn ) # if a new record was not created, we don't produduce recommendations - if not is_new: - continue - - create_property_targets( - session, - property_id=property_id, - portfolio_id=body.portfolio_id, - epc_target=body.goal_value, - heat_demand_target=None - ) + # if not is_new: + # continue + # + # create_property_targets( + # session, + # property_id=property_id, + # portfolio_id=body.portfolio_id, + # epc_target=body.goal_value, + # heat_demand_target=None + # ) epc_records = { 'original_epc': epc_searcher.newest_epc.copy(), From 69424149510c38f59d1d847cbcef740a287da23b Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Thu, 11 Apr 2024 15:40:50 +0100 Subject: [PATCH 497/526] Updating heating recommender to recommend heating controls, with the heating change --- backend/app/plan/router.py | 21 ++++++++++----------- recommendations/HeatingRecommender.py | 6 +++--- 2 files changed, 13 insertions(+), 14 deletions(-) diff --git a/backend/app/plan/router.py b/backend/app/plan/router.py index 3cb2027d..4b91566e 100644 --- a/backend/app/plan/router.py +++ b/backend/app/plan/router.py @@ -108,17 +108,16 @@ async def trigger_plan(body: PlanTriggerRequest): property_id, is_new = create_property( session, body.portfolio_id, epc_searcher.address_clean, epc_searcher.postcode_clean, epc_searcher.uprn ) - # if a new record was not created, we don't produduce recommendations - # if not is_new: - # continue - # - # create_property_targets( - # session, - # property_id=property_id, - # portfolio_id=body.portfolio_id, - # epc_target=body.goal_value, - # heat_demand_target=None - # ) + if not is_new: + continue + + create_property_targets( + session, + property_id=property_id, + portfolio_id=body.portfolio_id, + epc_target=body.goal_value, + heat_demand_target=None + ) epc_records = { 'original_epc': epc_searcher.newest_epc.copy(), diff --git a/recommendations/HeatingRecommender.py b/recommendations/HeatingRecommender.py index d4fe0a90..6e4b2230 100644 --- a/recommendations/HeatingRecommender.py +++ b/recommendations/HeatingRecommender.py @@ -48,7 +48,7 @@ class HeatingRecommender: if has_boiler or no_heating_has_mains or electic_heating_has_mains: # This indicates that the home previously did not have a boiler in place and so would require - # an overhaul to the system + # an overhaul to the system - right now, this is all reasons, apart from if there is an existing boiler system_change = not has_boiler self.recommend_boiler_upgrades(phase=phase, system_change=system_change) @@ -353,8 +353,8 @@ class HeatingRecommender: if not controls_recommender.recommendation: return - if no_heating_has_mains: - # We combine the heating and controls recommendations + if system_change: + # We combine the heating and controls recommendations, in the case of a system change boiler_recommendation = self.recommendations[0].copy() combined_recommendations = [] for controls_recommendation in controls_recommender.recommendation: From 014d51c0605e853351b621fbeafdf8ca3b870cbf Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Thu, 11 Apr 2024 16:09:31 +0100 Subject: [PATCH 498/526] fixing the case where we recommend a boiler and new heating controls, as well as an improved electrical system --- recommendations/HeatingRecommender.py | 36 +++++++++++++-------------- 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/recommendations/HeatingRecommender.py b/recommendations/HeatingRecommender.py index 6e4b2230..1813e5e8 100644 --- a/recommendations/HeatingRecommender.py +++ b/recommendations/HeatingRecommender.py @@ -278,6 +278,7 @@ class HeatingRecommender: # We now recommend boiler upgrades, if applicable simulation_config = {} boiler_costs = {} + boiler_recommendation = {} if self.property.data["mainheat-energy-eff"] in ["Very Poor", "Poor", "Average"]: boiler_size = self.estimate_boiler_size( property_type=self.property.data["property-type"], @@ -290,10 +291,12 @@ class HeatingRecommender: # We recommend a combi boiler under the following conditions # 1) If there are 4 or fewer rooms (we don't use heqted rooms because none of the rooms could be # heated if there is no existing heating system). - # 2) There is more than 1 bathroom + # 2) There 1 or fewer bathrooms + # Otherwise, we recommend a gas condensing boiler, which will server a larger property, that has multiple + # bathrooms is_combi = ( (self.property.data["number-heated-rooms"] <= 4) or - (self.property.n_bathrooms not in [None, 0, 1]) + (self.property.n_bathrooms in [None, 0, 1]) ) if is_combi: description = "Upgrade to a new combi boiler" @@ -328,21 +331,19 @@ class HeatingRecommender: boiler_costs = self.costs.low_carbon_boiler(is_combi=is_combi, size=f"{boiler_size}kw") - self.recommendations.append( - { - "phase": recommendation_phase, - "parts": [ - # TODO - ], - "type": "heating", - "description": description, - "starting_u_value": None, - "new_u_value": None, - "sap_points": None, - "simulation_config": simulation_config, - **boiler_costs - } - ) + boiler_recommendation = { + "phase": recommendation_phase, + "parts": [ + # TODO + ], + "type": "heating", + "description": description, + "starting_u_value": None, + "new_u_value": None, + "sap_points": None, + "simulation_config": simulation_config, + **boiler_costs + } # We recommend the heating controls # If the property did not previously have a boiler, we combine @@ -355,7 +356,6 @@ class HeatingRecommender: if system_change: # We combine the heating and controls recommendations, in the case of a system change - boiler_recommendation = self.recommendations[0].copy() combined_recommendations = [] for controls_recommendation in controls_recommender.recommendation: combined_recommendation = self.combine_heating_and_controls( From 88f43bcc822b4550540c88e7363d920937563072 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Thu, 11 Apr 2024 16:49:44 +0100 Subject: [PATCH 499/526] fixed the combi boiler logic --- recommendations/HeatingControlRecommender.py | 3 ++- recommendations/HeatingRecommender.py | 4 ++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/recommendations/HeatingControlRecommender.py b/recommendations/HeatingControlRecommender.py index 95b5e3b1..76eaba4f 100644 --- a/recommendations/HeatingControlRecommender.py +++ b/recommendations/HeatingControlRecommender.py @@ -215,7 +215,8 @@ class HeatingControlRecommender: { "type": "heating_control", "parts": [], - "description": "Upgrade heating controls to Smart Thermostats, room sensors and smart radiator valves", + "description": "Upgrade heating controls to Smart Thermostats, room sensors and smart radiator valves " + "(time & temperature zone control)", **self.costs.time_and_temperature_zone_control( number_heated_rooms=int(self.property.data["number-heated-rooms"]) ), diff --git a/recommendations/HeatingRecommender.py b/recommendations/HeatingRecommender.py index 1813e5e8..bd4d87a2 100644 --- a/recommendations/HeatingRecommender.py +++ b/recommendations/HeatingRecommender.py @@ -295,7 +295,7 @@ class HeatingRecommender: # Otherwise, we recommend a gas condensing boiler, which will server a larger property, that has multiple # bathrooms is_combi = ( - (self.property.data["number-heated-rooms"] <= 4) or + (self.property.data["number-heated-rooms"] <= 4) and (self.property.n_bathrooms in [None, 0, 1]) ) if is_combi: @@ -370,7 +370,7 @@ class HeatingRecommender: combined_recommendations.extend(combined_recommendation) # Overwrite the existing boiler recommendation - self.recommendations = combined_recommendations + self.recommendations.extend(combined_recommendations) else: # We increment the recommendation phase, since the heating controls are separate from the boiler upgrade # but we'll only upgrade if we have a heating recommendation From 61584a6320bfd50bb4f18266a09cc1bb1e4e2ba1 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Thu, 11 Apr 2024 18:14:38 +0100 Subject: [PATCH 500/526] extend recommendations to cover portable electric heaters --- recommendations/Costs.py | 18 ++++++++++++- recommendations/HeatingRecommender.py | 37 ++++++++++++++++++++++++--- 2 files changed, 50 insertions(+), 5 deletions(-) diff --git a/recommendations/Costs.py b/recommendations/Costs.py index e5ceb0c0..f4ac259b 100644 --- a/recommendations/Costs.py +++ b/recommendations/Costs.py @@ -79,6 +79,10 @@ CONVENTIONAL_BOILER_COSTS = { "40kw": 1776 } +# Assumes 3 hours to remove each heater (including re-decorating) +ROOM_HEATER_REMOVAL_COST = 120 +ROOM_HEATER_REMOVAL_LABOUR_HOURS = 3 + class Costs: """ @@ -1100,7 +1104,7 @@ class Costs: "labour_days": labour_days, } - def low_carbon_boiler(self, is_combi, size): + def boiler(self, is_combi, size, exising_room_heaters, n_heated_rooms): """ Based on a basic estimate of median value £2600 to install a low carbon combi boiler :return: @@ -1118,6 +1122,18 @@ class Costs: labour_cost = labour_rate * self.labour_adjustment_factor * labour_days # Add contingency and preliminaries labour_cost = labour_cost * (1 + self.CONTINGENCY + self.PRELIMINARIES) + + # if there are existing room heaters, we need to add the cost of removing them + if exising_room_heaters: + removal_cost = ROOM_HEATER_REMOVAL_COST * n_heated_rooms + removal_labour_hours = ROOM_HEATER_REMOVAL_LABOUR_HOURS * n_heated_rooms + else: + removal_cost = 0 + removal_labour_hours = 0 + + labour_cost = labour_cost + removal_cost + labour_days = labour_days + (removal_labour_hours / 8) + vat = labour_cost * self.VAT_RATE subtotal_before_vat = unit_cost + labour_cost diff --git a/recommendations/HeatingRecommender.py b/recommendations/HeatingRecommender.py index bd4d87a2..14509eea 100644 --- a/recommendations/HeatingRecommender.py +++ b/recommendations/HeatingRecommender.py @@ -43,14 +43,36 @@ class HeatingRecommender: 'No system present, electric heaters assumed' ] and self.property.data["mains-gas-flag"] + has_gas_heaters = ( + self.property.main_heating["clean_description"] in ["Room heaters, mains gas"] and + self.property.data["mains-gas-flag"] + ) + # We also check if the property has electric heating, but it has access to the mains gas electic_heating_has_mains = has_electric_heating_description and self.property.data["mains-gas-flag"] - if has_boiler or no_heating_has_mains or electic_heating_has_mains: + portable_heaters_has_mains = ( + self.property.main_heating["clean_description"] in ["Portable electric heaters assumed for most rooms"] and + self.property.data["mains-gas-flag"] + ) + + if ( + has_boiler or + no_heating_has_mains or + electic_heating_has_mains or + has_gas_heaters or + portable_heaters_has_mains + ): # This indicates that the home previously did not have a boiler in place and so would require # an overhaul to the system - right now, this is all reasons, apart from if there is an existing boiler system_change = not has_boiler - self.recommend_boiler_upgrades(phase=phase, system_change=system_change) + exising_room_heaters = self.property.main_heating["clean_description"] in [ + "Room heaters, electric", "Room heaters, mains gas" + ] + + self.recommend_boiler_upgrades( + phase=phase, system_change=system_change, exising_room_heaters=exising_room_heaters + ) return @@ -262,7 +284,7 @@ class HeatingRecommender: return closest_size - def recommend_boiler_upgrades(self, phase, system_change): + def recommend_boiler_upgrades(self, phase, system_change, exising_room_heaters): """ This boiler recommendation will only recommend a like-for-like upgrade, since changing the system is generally more expensive @@ -270,6 +292,8 @@ class HeatingRecommender: :param system_change: Indicates if the property would be undergoing a heating system change. This could be true if the home didn't have a heating system in place, or if the home had electric heating previously + :param exising_room_heaters: Indicates if the property had room heaters previously - if so, a boiler + recommendation will need to be accompanied by removal of the room heaters :return: """ @@ -329,7 +353,12 @@ class HeatingRecommender: "hot_water_energy_eff_ending": "Good" } - boiler_costs = self.costs.low_carbon_boiler(is_combi=is_combi, size=f"{boiler_size}kw") + boiler_costs = self.costs.boiler( + is_combi=is_combi, + size=f"{boiler_size}kw", + exising_room_heaters=exising_room_heaters, + n_heated_rooms=self.property.data["number-heated-rooms"] + ) boiler_recommendation = { "phase": recommendation_phase, From 3ecd7a974276bb6f4296124c6acf7e55f280e574 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Thu, 11 Apr 2024 19:14:49 +0100 Subject: [PATCH 501/526] added simulation for secondary heating --- backend/Property.py | 6 ++- recommendations/Costs.py | 45 ++++++++++++++++------ recommendations/HeatingRecommender.py | 2 +- recommendations/Recommendations.py | 8 ++++ recommendations/SecondaryHeating.py | 55 +++++++++++++++++++++++++++ 5 files changed, 102 insertions(+), 14 deletions(-) create mode 100644 recommendations/SecondaryHeating.py diff --git a/backend/Property.py b/backend/Property.py index 950c1ac9..0f5e7e77 100644 --- a/backend/Property.py +++ b/backend/Property.py @@ -456,7 +456,9 @@ class Property: "double glazing installed during or after 2002" ) - if recommendation["type"] in ["heating", "hot_water_tank_insulation", "heating_control"]: + if recommendation["type"] in [ + "heating", "hot_water_tank_insulation", "heating_control", "secondary_heating" + ]: # We update the data, as defined in the recommendaton simulation_config = recommendation["simulation_config"] @@ -477,7 +479,7 @@ class Property: "loft_insulation", "room_roof_insulation", "flat_roof_insulation", "solid_floor_insulation", "suspended_floor_insulation", "exposed_floor_insulation", "windows_glazing", "solar_pv", "heating", "hot_water_tank_insulation", - "heating_control", + "heating_control", "secondary_heating" ]: raise NotImplementedError( "Implement me, given type %s" % recommendation["type"] diff --git a/recommendations/Costs.py b/recommendations/Costs.py index f4ac259b..45c17102 100644 --- a/recommendations/Costs.py +++ b/recommendations/Costs.py @@ -1104,6 +1104,28 @@ class Costs: "labour_days": labour_days, } + def heater_removal(self, n_rooms): + """ + Estimates the costs of removal of heaters, including the redecoration costs of the space behind the heater + :return: + """ + + removal_cost = ROOM_HEATER_REMOVAL_COST * n_rooms + removal_labour_hours = ROOM_HEATER_REMOVAL_LABOUR_HOURS * n_rooms + + vat = removal_cost * self.VAT_RATE + + subtotal_before_vat = removal_cost + total_cost = subtotal_before_vat + vat + + return { + "total": total_cost, + "subtotal": subtotal_before_vat, + "vat": vat, + "labour_hours": removal_labour_hours, + "labour_days": np.ceil(removal_labour_hours / 8), + } + def boiler(self, is_combi, size, exising_room_heaters, n_heated_rooms): """ Based on a basic estimate of median value £2600 to install a low carbon combi boiler @@ -1114,6 +1136,7 @@ class Costs: # The unit cost is the cost without VAT # We now need to estimate the cost of the works labour_days = 2 + labour_hours = labour_days * 8 labour_rate = 500 # Average cost of installation is 1 (maybe 2days) at £300 per day @@ -1123,26 +1146,26 @@ class Costs: # Add contingency and preliminaries labour_cost = labour_cost * (1 + self.CONTINGENCY + self.PRELIMINARIES) - # if there are existing room heaters, we need to add the cost of removing them - if exising_room_heaters: - removal_cost = ROOM_HEATER_REMOVAL_COST * n_heated_rooms - removal_labour_hours = ROOM_HEATER_REMOVAL_LABOUR_HOURS * n_heated_rooms - else: - removal_cost = 0 - removal_labour_hours = 0 - - labour_cost = labour_cost + removal_cost - labour_days = labour_days + (removal_labour_hours / 8) + # labour_days = labour_days + (removal_labour_hours / 8) vat = labour_cost * self.VAT_RATE subtotal_before_vat = unit_cost + labour_cost total_cost = subtotal_before_vat + vat + # if there are existing room heaters, we need to add the cost of removing them + if exising_room_heaters: + removal_costing = self.heater_removal(n_rooms=n_heated_rooms) + # Add the totals to the existing totals + total_cost += removal_costing["total"] + subtotal_before_vat += removal_costing["subtotal"] + labour_hours += removal_costing["labour_hours"] + labour_days += removal_costing["labour_days"] + return { "total": total_cost, "subtotal": subtotal_before_vat, "vat": vat, - "labour_hours": labour_days * 8, + "labour_hours": labour_hours, "labour_days": labour_days, } diff --git a/recommendations/HeatingRecommender.py b/recommendations/HeatingRecommender.py index 14509eea..92457a27 100644 --- a/recommendations/HeatingRecommender.py +++ b/recommendations/HeatingRecommender.py @@ -319,7 +319,7 @@ class HeatingRecommender: # Otherwise, we recommend a gas condensing boiler, which will server a larger property, that has multiple # bathrooms is_combi = ( - (self.property.data["number-heated-rooms"] <= 4) and + (self.property.number_of_rooms <= 4) and (self.property.n_bathrooms in [None, 0, 1]) ) if is_combi: diff --git a/recommendations/Recommendations.py b/recommendations/Recommendations.py index 902023dc..68fead16 100644 --- a/recommendations/Recommendations.py +++ b/recommendations/Recommendations.py @@ -11,6 +11,7 @@ from recommendations.SolarPvRecommendations import SolarPvRecommendations from recommendations.WindowsRecommendations import WindowsRecommendations from recommendations.HeatingRecommender import HeatingRecommender from recommendations.HotwaterRecommendations import HotwaterRecommendations +from recommendations.SecondaryHeating import SecondaryHeating from backend.ml_models.AnnualBillSavings import AnnualBillSavings @@ -46,6 +47,7 @@ class Recommendations: self.solar_recommender = SolarPvRecommendations(property_instance=property_instance) self.heating_recommender = HeatingRecommender(property_instance=property_instance) self.hotwater_recommender = HotwaterRecommendations(property_instance=property_instance) + self.secondary_heating_recommender = SecondaryHeating(property_instance=property_instance) def recommend(self): @@ -130,6 +132,12 @@ class Recommendations: property_recommendations.append(self.lighting_recommender.recommendation) phase += 1 + if "secondary_heating" not in self.exclusions: + self.secondary_heating_recommender.recommend(phase=phase) + if self.secondary_heating_recommender.recommendation: + property_recommendations.append(self.secondary_heating_recommender.recommendation) + phase += 1 + # Renewables if "solar_pv" not in self.exclusions: self.solar_recommender.recommend(phase=phase) diff --git a/recommendations/SecondaryHeating.py b/recommendations/SecondaryHeating.py new file mode 100644 index 00000000..f31c4c05 --- /dev/null +++ b/recommendations/SecondaryHeating.py @@ -0,0 +1,55 @@ +from recommendations.Costs import Costs +from backend.Property import Property + + +class SecondaryHeating: + """ + This class recommends the removal of the secondary heating system for properties that have a primary heating + system. + """ + + # The list of existing heating systems that are accepted + ACCEPTED_MAINHEAT_DESCRIPTIONS = ["Boiler and radiators, mains gas"] + ACCEPTED_SECONDHEAT_DESCRIPTIONS = ["Room heaters, electric"] + # These are the heaters where works are required to remove them + FIXED_HEATER_DESCRIPTIONS = ["Room heaters, electric"] + + def __init__(self, property_instance: Property): + self.property = property_instance + self.costs = Costs(self.property) + + self.recommendation = [] + + def recommend(self, phase: int): + # Reset + self.recommendation = [] + + if self.property.main_heating["clean_description"] not in self.ACCEPTED_MAINHEAT_DESCRIPTIONS: + return + + # TODO: We need to clean secondary data + if self.property.data['secondheat-description'] not in self.ACCEPTED_SECONDHEAT_DESCRIPTIONS: + return + + if self.property.data['secondheat-description'] in self.FIXED_HEATER_DESCRIPTIONS: + # We have an associated cost otherwise, there is no cost + n_rooms = self.property.data['number-heated-rooms'] + else: + n_rooms = 0 + + costs = self.costs.heater_removal(n_rooms=n_rooms) + self.recommendation.append( + { + "phase": phase, + "parts": [], + "type": "secondary_heating", + "description": "Remove the secondary heating system", + "starting_u_value": None, + "new_u_value": None, + "sap_points": None, + **costs, + "simulation_config": { + "secondheat_description_ending": "None" + } + } + ) From 0b75ec9210e7c7c097bf4e6b5d2d87cb273af6cd Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Fri, 12 Apr 2024 14:41:19 +0100 Subject: [PATCH 502/526] Added patches and overrides to immo asset list --- .idea/Model.iml | 2 +- .idea/misc.xml | 2 +- .../AirSourceHeatPumpEfficiency.py | 78 +++++++++++++++++++ etl/air_source_heat_pump/app.py | 24 ++++++ etl/customers/immo/pilot/asset_list.py | 70 ++++++++++++++++- 5 files changed, 172 insertions(+), 4 deletions(-) create mode 100644 etl/air_source_heat_pump/AirSourceHeatPumpEfficiency.py create mode 100644 etl/air_source_heat_pump/app.py diff --git a/.idea/Model.iml b/.idea/Model.iml index 4413bb06..b0f9c00d 100644 --- a/.idea/Model.iml +++ b/.idea/Model.iml @@ -7,7 +7,7 @@ - + diff --git a/.idea/misc.xml b/.idea/misc.xml index 6f308057..1122b380 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -3,7 +3,7 @@ - + diff --git a/etl/air_source_heat_pump/AirSourceHeatPumpEfficiency.py b/etl/air_source_heat_pump/AirSourceHeatPumpEfficiency.py new file mode 100644 index 00000000..2ba82e77 --- /dev/null +++ b/etl/air_source_heat_pump/AirSourceHeatPumpEfficiency.py @@ -0,0 +1,78 @@ +import pandas as pd +from tqdm import tqdm +from utils.s3 import save_dataframe_to_s3_parquet, read_dataframe_from_s3_parquet +from utils.logger import setup_logger +from etl.epc.settings import EARLIEST_EPC_DATE + +logger = setup_logger() + + +class AirSourceHeatPumpEfficiency: + + def __init__(self, file_directories, cleaned_lookup): + """ + :param file_directories: A list of directories where files are stored. + :param cleaned_lookup: A dictionary containing cleaned lookup data. + """ + self.file_directories = file_directories + self.cleaned_lookup = cleaned_lookup + + self.results = [] + + def create_dataset(self): + logger.info("Creating solar photo supply dataset") + for dir in tqdm(self.file_directories): + filepath = dir / "certificates.csv" + df = pd.read_csv(filepath, low_memory=False) + df = df[~pd.isnull(df["UPRN"])] + df["UPRN"] = df["UPRN"].astype(int).astype(str) + # Take entries after SAP12 + df["LODGEMENT_DATE"] = pd.to_datetime(df["LODGEMENT_DATE"]) + df = df[df["LODGEMENT_DATE"] > EARLIEST_EPC_DATE] + + df = df[ + ~df["TENURE"].isin( + [ + "unknown", + "Not defined - use in the case of a new dwelling for which the intended tenure in not known. " + "It is not to be used for an existing dwelling" + ] + ) + ] + + # Take entries that contain an air source heat pump + df = df[ + df["MAINHEAT_DESCRIPTION"].str.contains("air source heat pump", case=False, na=False) + ] + # Get the columns we're interested in + df = df[ + [ + "MAINHEAT_DESCRIPTION", + "MAINHEAT_ENERGY_EFF", + "MAINHEATCONT_DESCRIPTION", + "MAINHEATC_ENERGY_EFF", + "MAIN_FUEL", + "HOTWATER_DESCRIPTION", + "HOT_WATER_ENERGY_EFF", + "MAINS_GAS_FLAG" + ] + ] + + counts = df.groupby( + [ + "MAINHEAT_DESCRIPTION", + "MAINHEAT_ENERGY_EFF", + "MAINHEATCONT_DESCRIPTION", + "MAINHEATC_ENERGY_EFF", + "MAIN_FUEL", + "HOTWATER_DESCRIPTION", + "HOT_WATER_ENERGY_EFF", + "MAINS_GAS_FLAG" + ] + ).size().reset_index(name="count") + + # Drop rows that have a missing PROPERTY_TYPE, BUILT_FORM, CONSTRUCTION_AGE_BAND, TOTAL_FLOOR_AREA + for col in ["PROPERTY_TYPE", "BUILT_FORM", "CONSTRUCTION_AGE_BAND", "TOTAL_FLOOR_AREA"]: + df = df[~pd.isnull(df[col])] + # Take newest LODGEMENT_DATE per UPRN + df = df.sort_values(by="LODGEMENT_DATE", ascending=False).drop_duplicates(subset=["UPRN"]) diff --git a/etl/air_source_heat_pump/app.py b/etl/air_source_heat_pump/app.py new file mode 100644 index 00000000..ac87b34b --- /dev/null +++ b/etl/air_source_heat_pump/app.py @@ -0,0 +1,24 @@ +from pathlib import Path +from backend.app.plan.utils import get_cleaned +from etl.air_source_heat_pump.AirSourceHeatPumpEfficiency import AirSourceHeatPumpEfficiency + +DATA_DIRECTORY = Path(__file__).parent / "local_data" / "all-domestic-certificates" + + +def app(): + """ + This code reads in the EPC dataset and looks at the efficiency values for heating systems that inclue air source + heat pumps. This dataset is then used to inform the recommendations for the air source heat pump, so we know + how to set the simulation + :return: + """ + + directories = [entry for entry in DATA_DIRECTORY.iterdir() if entry.is_dir()] + cleaned_lookup = get_cleaned() + + ashp_data_client = AirSourceHeatPumpEfficiency( + file_directories=directories, + cleaned_lookup=cleaned_lookup + ) + + ashp_data_client.create_dataset() diff --git a/etl/customers/immo/pilot/asset_list.py b/etl/customers/immo/pilot/asset_list.py index 9756e00b..0da8f885 100644 --- a/etl/customers/immo/pilot/asset_list.py +++ b/etl/customers/immo/pilot/asset_list.py @@ -19,6 +19,40 @@ council_tax_bands = [ ] council_tax_bands = pd.DataFrame(council_tax_bands) +# This is information we need to override on the EPC itself, for instance if a new survey has been conducted and +# that has not reached the API +patches = [ + { + 'address': '6 Beech Road', 'postcode': 'DY1 4BP', + 'walls-description': 'Mixed: Filled cavity and external insulated solid brick', + 'walls-energy-eff': 'Good', + 'roof-description': 'Pitched, 12 mm loft insulation', + 'roof-energy-eff': 'Very Poor', + 'windows-description': 'Fully double glazed', + 'windows-energy-eff': 'Good', + 'mainheat-description': 'Room heaters, electric', + 'mainheat-energy-eff': 'Very Poor', + 'mainheatcont-description': 'Appliance thermostats', + 'mainheatc-energy-eff': 'Good', + 'lighting-description': 'Low energy lighting in 25% of fixed outlets', + 'lighting-energy-eff': 'Good', + 'floor-description': 'Mixed: Solid no insulation and suspended no insulation', + 'secondheat-description': 'None', + 'current-energy-efficiency': '32', + } +] + +# This is information that is found as a result of the non-invasives, that mean that certain measures +# have been installed already. To reflect this in the front end, it is included in the recommendation, however +# the cost is removed and instead, a message is presented saying that the measure is already installed. +overrides = [ + { + 'address': '5 Oaklands', + 'postcode': 'B62 0JA', + "overrides": ["windows_glazing"] + } +] + def app(): raw_asset_list = read_excel_from_s3( @@ -41,7 +75,7 @@ def app(): } ) - # Store the data in s3 + # Store the asset list in s3 filename = f"{USER_ID}/{PORTFOLIO_ID}/pilot.csv" save_csv_to_s3( dataframe=asset_list, @@ -49,12 +83,44 @@ def app(): file_name=filename ) + # Store overrides in s3 + overrides_filename = f"{USER_ID}/{PORTFOLIO_ID}/overrides.json" + save_csv_to_s3( + dataframe=pd.DataFrame(overrides), + bucket_name="retrofit-plan-inputs-dev", + file_name=overrides_filename + ) + + # Store patches in s3 + patches_filename = f"{USER_ID}/{PORTFOLIO_ID}/patches.json" + save_csv_to_s3( + dataframe=pd.DataFrame(patches), + bucket_name="retrofit-plan-inputs-dev", + file_name=patches_filename + ) + + # EPC C portoflio body = { "portfolio_id": str(PORTFOLIO_ID), "housing_type": "Private", "goal": "Increase EPC", - "goal_value": "A", + "goal_value": "C", "trigger_file_path": filename, + "overrides_file_path": overrides_filename, + "patches_file_path": patches_filename, + "budget": None, + } + print(body) + + # EPC B portoflio + body = { + "portfolio_id": str(PORTFOLIO_ID + 1), + "housing_type": "Private", + "goal": "Increase EPC", + "goal_value": "B", + "trigger_file_path": filename, + "overrides_file_path": overrides_filename, + "patches_file_path": patches_filename, "budget": None, } print(body) From ab180f65225507c6d666516fd70259a7c0ec4ac5 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Fri, 12 Apr 2024 15:06:12 +0100 Subject: [PATCH 503/526] Added overrides and patches to router --- .idea/Model.iml | 2 +- .idea/misc.xml | 2 +- backend/Property.py | 6 ++++- backend/app/plan/router.py | 34 ++++++++++++++++++-------- backend/app/plan/schemas.py | 2 ++ etl/customers/immo/pilot/asset_list.py | 4 +-- 6 files changed, 35 insertions(+), 15 deletions(-) diff --git a/.idea/Model.iml b/.idea/Model.iml index b0f9c00d..4413bb06 100644 --- a/.idea/Model.iml +++ b/.idea/Model.iml @@ -7,7 +7,7 @@ - + diff --git a/.idea/misc.xml b/.idea/misc.xml index 1122b380..6f308057 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -3,7 +3,7 @@ - + diff --git a/backend/Property.py b/backend/Property.py index 0f5e7e77..882e450c 100644 --- a/backend/Property.py +++ b/backend/Property.py @@ -60,7 +60,7 @@ class Property: n_bedrooms = None def __init__( - self, id, postcode, address, epc_record, **kwargs + self, id, postcode, address, epc_record, overrides=None, **kwargs ): self.epc_record = epc_record @@ -74,6 +74,10 @@ class Property: } self.old_data = epc_record.get("old_data") self.property_dimensions = None + # This is a list of measures that have already been installed in the property, typically found as a result + # of the non-invasive surveys. We reflect that this has been installed in the recommendations, but remove the + # cost and instead, provide a message that the measure has already been installed + self.overrides = overrides self.uprn = epc_record.get("uprn") self.full_sap_epc = epc_record.get("full_sap_epc") diff --git a/backend/app/plan/router.py b/backend/app/plan/router.py index 4b91566e..8d39c97f 100644 --- a/backend/app/plan/router.py +++ b/backend/app/plan/router.py @@ -44,20 +44,15 @@ BATCH_SIZE = 5 SCORING_BATCH_SIZE = 400 -def patch_epc(config, epc_records): +def patch_epc(patch, epc_records): """ This utility function is useful to patch the epc data if we have data from the customer :return: """ - number_habitable_rooms = config.get("number-habitable-rooms", None) - number_heated_rooms = config.get("number-heated-rooms", None) - - if number_habitable_rooms is not None: - epc_records["original_epc"]["number-habitable-rooms"] = int(number_habitable_rooms) - - if number_heated_rooms is not None: - epc_records["original_epc"]["number-heated-rooms"] = int(number_heated_rooms) + for patch_variable, patch_value in patch.items(): + if patch_variable in epc_records["original_epc"]: + epc_records["original_epc"][patch_variable] = patch_value return epc_records @@ -85,6 +80,17 @@ async def trigger_plan(body: PlanTriggerRequest): session.begin() logger.info("Getting the inputs") plan_input = read_csv_from_s3(bucket_name=get_settings().PLAN_TRIGGER_BUCKET, filepath=body.trigger_file_path) + # If we have patches or overrides, we should read them in here + patches = [] + if body.patches_file_path: + patches = read_csv_from_s3(bucket_name=get_settings().PLAN_TRIGGER_BUCKET, filepath=body.patches_file_path) + + overrides = [] + if body.overrides_file_path: + overrides = read_csv_from_s3( + bucket_name=get_settings().PLAN_TRIGGER_BUCKET, filepath=body.overrides_file_path + ) + cleaning_data = read_dataframe_from_s3_parquet( bucket_name=get_settings().DATA_BUCKET, file_key="sap_change_model/cleaning_dataset.parquet", ) @@ -124,7 +130,11 @@ async def trigger_plan(body: PlanTriggerRequest): 'full_sap_epc': epc_searcher.full_sap_epc.copy(), 'old_data': epc_searcher.older_epcs.copy(), } - epc_records = patch_epc(config, epc_records) + + patch = next(( + x for x in patches if (x["address"] == config["address"]) and (x["postcode"] == config["postcode"]) + ), None) + epc_records = patch_epc(patch, epc_records) prepared_epc = EPCRecord( epc_records=epc_records, @@ -132,12 +142,16 @@ async def trigger_plan(body: PlanTriggerRequest): cleaning_data=cleaning_data ) + overrides = next(( + x for x in overrides if (x["address"] == config["address"]) and (x["postcode"] == config["postcode"]) + ), None) input_properties.append( Property( id=property_id, address=epc_searcher.address_clean, postcode=epc_searcher.postcode_clean, epc_record=prepared_epc, + overrides=overrides, **Property.extract_kwargs(config) ) ) diff --git a/backend/app/plan/schemas.py b/backend/app/plan/schemas.py index b8a99704..ec49e41e 100644 --- a/backend/app/plan/schemas.py +++ b/backend/app/plan/schemas.py @@ -9,6 +9,8 @@ class PlanTriggerRequest(BaseModel): goal_value: str portfolio_id: int trigger_file_path: str + overrides_file_path: Optional[str] = None + patches_file_path: Optional[str] = None exclusions: Optional[conlist(str, min_items=1)] = None # Pre-defined list of possibilities for exclusions diff --git a/etl/customers/immo/pilot/asset_list.py b/etl/customers/immo/pilot/asset_list.py index 0da8f885..15681d42 100644 --- a/etl/customers/immo/pilot/asset_list.py +++ b/etl/customers/immo/pilot/asset_list.py @@ -24,7 +24,7 @@ council_tax_bands = pd.DataFrame(council_tax_bands) patches = [ { 'address': '6 Beech Road', 'postcode': 'DY1 4BP', - 'walls-description': 'Mixed: Filled cavity and external insulated solid brick', + 'walls-description': 'Cavity wall, filled cavity', 'walls-energy-eff': 'Good', 'roof-description': 'Pitched, 12 mm loft insulation', 'roof-energy-eff': 'Very Poor', @@ -36,7 +36,7 @@ patches = [ 'mainheatc-energy-eff': 'Good', 'lighting-description': 'Low energy lighting in 25% of fixed outlets', 'lighting-energy-eff': 'Good', - 'floor-description': 'Mixed: Solid no insulation and suspended no insulation', + 'floor-description': 'Solid, no insulation (assumed)', 'secondheat-description': 'None', 'current-energy-efficiency': '32', } From 8e2d823693f53ad47a4fe857fd8f24d84c0c4ec1 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Fri, 12 Apr 2024 15:11:51 +0100 Subject: [PATCH 504/526] corrected parsing of overrides --- backend/Property.py | 4 ++-- backend/app/plan/router.py | 8 ++++---- etl/customers/immo/pilot/asset_list.py | 3 +++ 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/backend/Property.py b/backend/Property.py index 882e450c..3fac3667 100644 --- a/backend/Property.py +++ b/backend/Property.py @@ -60,7 +60,7 @@ class Property: n_bedrooms = None def __init__( - self, id, postcode, address, epc_record, overrides=None, **kwargs + self, id, postcode, address, epc_record, override=None, **kwargs ): self.epc_record = epc_record @@ -77,7 +77,7 @@ class Property: # This is a list of measures that have already been installed in the property, typically found as a result # of the non-invasive surveys. We reflect that this has been installed in the recommendations, but remove the # cost and instead, provide a message that the measure has already been installed - self.overrides = overrides + self.override = override self.uprn = epc_record.get("uprn") self.full_sap_epc = epc_record.get("full_sap_epc") diff --git a/backend/app/plan/router.py b/backend/app/plan/router.py index 8d39c97f..08ce0dcc 100644 --- a/backend/app/plan/router.py +++ b/backend/app/plan/router.py @@ -133,7 +133,7 @@ async def trigger_plan(body: PlanTriggerRequest): patch = next(( x for x in patches if (x["address"] == config["address"]) and (x["postcode"] == config["postcode"]) - ), None) + ), {}) epc_records = patch_epc(patch, epc_records) prepared_epc = EPCRecord( @@ -142,16 +142,16 @@ async def trigger_plan(body: PlanTriggerRequest): cleaning_data=cleaning_data ) - overrides = next(( + override = next(( x for x in overrides if (x["address"] == config["address"]) and (x["postcode"] == config["postcode"]) - ), None) + ), {}) input_properties.append( Property( id=property_id, address=epc_searcher.address_clean, postcode=epc_searcher.postcode_clean, epc_record=prepared_epc, - overrides=overrides, + override=override, **Property.extract_kwargs(config) ) ) diff --git a/etl/customers/immo/pilot/asset_list.py b/etl/customers/immo/pilot/asset_list.py index 15681d42..07ebe884 100644 --- a/etl/customers/immo/pilot/asset_list.py +++ b/etl/customers/immo/pilot/asset_list.py @@ -39,6 +39,9 @@ patches = [ 'floor-description': 'Solid, no insulation (assumed)', 'secondheat-description': 'None', 'current-energy-efficiency': '32', + 'energy-consumption-current': '491', + 'co2-emissions-current': '5.0', + 'potential-energy-efficiency': '87' } ] From 0ede95cc4a7499ad0db1c6eda5ef6e012ab9f763 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Fri, 12 Apr 2024 15:25:08 +0100 Subject: [PATCH 505/526] added override to wall insulation --- backend/Property.py | 4 +++- recommendations/WallRecommendations.py | 15 ++++++++++++++- recommendations/recommendation_utils.py | 12 ++++++++++++ 3 files changed, 29 insertions(+), 2 deletions(-) diff --git a/backend/Property.py b/backend/Property.py index 3fac3667..d000be28 100644 --- a/backend/Property.py +++ b/backend/Property.py @@ -1,4 +1,5 @@ import os +import ast from itertools import groupby import pandas as pd @@ -77,7 +78,8 @@ class Property: # This is a list of measures that have already been installed in the property, typically found as a result # of the non-invasive surveys. We reflect that this has been installed in the recommendations, but remove the # cost and instead, provide a message that the measure has already been installed - self.override = override + + self.override = ast.literal_eval(override['overrides']) if override is not None else [] self.uprn = epc_record.get("uprn") self.full_sap_epc = epc_record.get("full_sap_epc") diff --git a/recommendations/WallRecommendations.py b/recommendations/WallRecommendations.py index 6b59c148..3acc17f0 100644 --- a/recommendations/WallRecommendations.py +++ b/recommendations/WallRecommendations.py @@ -8,7 +8,7 @@ from backend.Property import Property from BaseUtility import Definitions from recommendations.recommendation_utils import ( r_value_per_mm_to_u_value, calculate_u_value_uplift, is_diminishing_returns, update_lowest_selected_u_value, - get_recommended_part, get_wall_u_value + get_recommended_part, get_wall_u_value, override_costs ) from recommendations.config import PARTIALLY_FILLED_PERCENTAGE_ASSUMPTION from recommendations.Costs import Costs @@ -221,6 +221,10 @@ class WallRecommendations(Definitions): material=material.to_dict(), ) + is_override = "cavity_wall_insulation" in cost_result + if is_override: + cost_result = override_costs(cost_result) + recommendations.append( { "phase": phase, @@ -237,6 +241,7 @@ class WallRecommendations(Definitions): "starting_u_value": u_value, "new_u_value": new_u_value, "sap_points": None, + "is_override": is_override, **cost_result } ) @@ -277,12 +282,19 @@ class WallRecommendations(Definitions): material=material.to_dict(), non_insulation_materials=non_insulation_materials ) + is_override = "internal_wall_insulation" in cost_result + if is_override: + cost_result = override_costs(cost_result) + elif material["type"] == "external_wall_insulation": cost_result = self.costs.external_wall_insulation( wall_area=self.property.insulation_wall_area, material=material.to_dict(), non_insulation_materials=non_insulation_materials ) + is_override = "external_wall_insulation" in cost_result + if is_override: + cost_result = override_costs(cost_result) else: raise ValueError("Invalid material type") @@ -301,6 +313,7 @@ class WallRecommendations(Definitions): "description": self._make_description(material), "starting_u_value": u_value, "new_u_value": new_u_value, + "is_override": is_override, "sap_points": None, **cost_result } diff --git a/recommendations/recommendation_utils.py b/recommendations/recommendation_utils.py index 0d5f9743..a3043c31 100644 --- a/recommendations/recommendation_utils.py +++ b/recommendations/recommendation_utils.py @@ -767,3 +767,15 @@ def check_simulation_difference(old_config, new_config): differences = {key + "_ending": new_config[key] for key in new_config if old_config[key] != new_config[key]} return differences + + +def override_costs(costs): + """ + If the method is overridden, we want to make sure that the costs are zero. This function sets the costs to zero + :param costs: Dictionary of costing, as returned by the Costs class + :return: + """ + for k in costs: + costs[k] = 0 + + return costs From 1c5ccb2c8c46a613851dfaf153a16ee4242eaf0a Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Fri, 12 Apr 2024 15:26:11 +0100 Subject: [PATCH 506/526] added override to roof insulation --- recommendations/RoofRecommendations.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/recommendations/RoofRecommendations.py b/recommendations/RoofRecommendations.py index 8d6a91e7..ed087228 100644 --- a/recommendations/RoofRecommendations.py +++ b/recommendations/RoofRecommendations.py @@ -5,7 +5,7 @@ from typing import List from datatypes.enums import QuantityUnits from recommendations.recommendation_utils import ( get_roof_u_value, r_value_per_mm_to_u_value, calculate_u_value_uplift, is_diminishing_returns, - update_lowest_selected_u_value, get_recommended_part, convert_thickness_to_numeric + update_lowest_selected_u_value, get_recommended_part, convert_thickness_to_numeric, override_costs ) from recommendations.Costs import Costs @@ -207,12 +207,18 @@ class RoofRecommendations: floor_area=self.property.insulation_floor_area, material=material ) + is_override = "loft_insulation" in cost_result + if is_override: + cost_result = override_costs(cost_result) elif material["type"] == "flat_roof_insulation": cost_result = self.costs.flat_roof_insulation( floor_area=self.property.insulation_floor_area, material=material, non_insulation_materials=non_insulation_materials ) + is_override = "flat_roof_insulation" in cost_result + if is_override: + cost_result = override_costs(cost_result) else: raise ValueError("Invalid material type") @@ -232,6 +238,7 @@ class RoofRecommendations: "starting_u_value": u_value, "new_u_value": new_u_value, "sap_points": None, + "is_override": is_override, **cost_result } ) From adcd31c8f4e69e92ff592a03103eb60f1c06617a Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Fri, 12 Apr 2024 15:27:58 +0100 Subject: [PATCH 507/526] correcting override in walls and roof --- recommendations/RoofRecommendations.py | 4 ++-- recommendations/VentilationRecommendations.py | 4 ++++ recommendations/WallRecommendations.py | 6 +++--- 3 files changed, 9 insertions(+), 5 deletions(-) diff --git a/recommendations/RoofRecommendations.py b/recommendations/RoofRecommendations.py index ed087228..5ba7e82e 100644 --- a/recommendations/RoofRecommendations.py +++ b/recommendations/RoofRecommendations.py @@ -207,7 +207,7 @@ class RoofRecommendations: floor_area=self.property.insulation_floor_area, material=material ) - is_override = "loft_insulation" in cost_result + is_override = "loft_insulation" in self.property.override if is_override: cost_result = override_costs(cost_result) elif material["type"] == "flat_roof_insulation": @@ -216,7 +216,7 @@ class RoofRecommendations: material=material, non_insulation_materials=non_insulation_materials ) - is_override = "flat_roof_insulation" in cost_result + is_override = "flat_roof_insulation" in self.property.override if is_override: cost_result = override_costs(cost_result) else: diff --git a/recommendations/VentilationRecommendations.py b/recommendations/VentilationRecommendations.py index 1657b759..aa6299e0 100644 --- a/recommendations/VentilationRecommendations.py +++ b/recommendations/VentilationRecommendations.py @@ -56,6 +56,10 @@ class VentilationRecommendations(Definitions): part[0]["quantity"] = n_units part[0]["quantity_unit"] = "part" + is_override = "cavity_wall_insulation" in cost_result + if is_override: + cost_result = override_costs(cost_result) + # We recommend installing two mechanical ventilation systems self.recommendation = [ { diff --git a/recommendations/WallRecommendations.py b/recommendations/WallRecommendations.py index 3acc17f0..471a62cb 100644 --- a/recommendations/WallRecommendations.py +++ b/recommendations/WallRecommendations.py @@ -221,7 +221,7 @@ class WallRecommendations(Definitions): material=material.to_dict(), ) - is_override = "cavity_wall_insulation" in cost_result + is_override = "cavity_wall_insulation" in self.property.override if is_override: cost_result = override_costs(cost_result) @@ -282,7 +282,7 @@ class WallRecommendations(Definitions): material=material.to_dict(), non_insulation_materials=non_insulation_materials ) - is_override = "internal_wall_insulation" in cost_result + is_override = "internal_wall_insulation" in self.property.override if is_override: cost_result = override_costs(cost_result) @@ -292,7 +292,7 @@ class WallRecommendations(Definitions): material=material.to_dict(), non_insulation_materials=non_insulation_materials ) - is_override = "external_wall_insulation" in cost_result + is_override = "external_wall_insulation" in self.property.override if is_override: cost_result = override_costs(cost_result) else: From fadff714d2c3227eb835b94951ed09b25ff870c4 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Fri, 12 Apr 2024 15:29:41 +0100 Subject: [PATCH 508/526] add override to ventilation --- recommendations/VentilationRecommendations.py | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/recommendations/VentilationRecommendations.py b/recommendations/VentilationRecommendations.py index aa6299e0..07f7cf1e 100644 --- a/recommendations/VentilationRecommendations.py +++ b/recommendations/VentilationRecommendations.py @@ -50,16 +50,16 @@ class VentilationRecommendations(Definitions): part = self.materials.copy() - estimated_cost = n_units * part[0]["cost"] + is_override = "cavity_wall_insulation" in self.property.override + + estimated_cost = n_units * part[0]["cost"] if not is_override else 0 + labour_hours = 4 * n_units if not is_override else 0 + labour_days = 4 * n_units / 8.0 if not is_override else 0 part[0]["total"] = estimated_cost part[0]["quantity"] = n_units part[0]["quantity_unit"] = "part" - is_override = "cavity_wall_insulation" in cost_result - if is_override: - cost_result = override_costs(cost_result) - # We recommend installing two mechanical ventilation systems self.recommendation = [ { @@ -76,7 +76,7 @@ class VentilationRecommendations(Definitions): "energy_cost_savings": 0, "total": estimated_cost, # We use a very simple and rough estimate of 4 hours per unit - "labour_hours": 4 * n_units, - "labour_days": 4 * n_units / 8.0 # Assume 8 hour day + "labour_hours": labour_hours, + "labour_days": labour_days # Assume 8 hour day } ] From 493db6c4a01dcf825fe49d77cfc8fcb974a7d1e1 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Fri, 12 Apr 2024 15:31:07 +0100 Subject: [PATCH 509/526] added floor insulation to override --- recommendations/FloorRecommendations.py | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/recommendations/FloorRecommendations.py b/recommendations/FloorRecommendations.py index 713d5f92..1744a928 100644 --- a/recommendations/FloorRecommendations.py +++ b/recommendations/FloorRecommendations.py @@ -8,7 +8,7 @@ from datatypes.enums import QuantityUnits from backend.Property import Property from recommendations.recommendation_utils import ( r_value_per_mm_to_u_value, calculate_u_value_uplift, is_diminishing_returns, update_lowest_selected_u_value, - get_recommended_part, get_floor_u_value + get_recommended_part, get_floor_u_value, override_costs ) from recommendations.Costs import Costs @@ -192,12 +192,22 @@ class FloorRecommendations(Definitions): material=material.to_dict(), non_insulation_materials=non_insulation_materials ) + + is_override = "suspended_floor_insulation" in self.property.override + if is_override: + cost_result = override_costs(cost_result) + elif material["type"] == "solid_floor_insulation": cost_result = self.costs.solid_floor_insulation( insulation_floor_area=self.property.insulation_floor_area, material=material.to_dict(), non_insulation_materials=non_insulation_materials ) + + is_override = "solid_floor_insulation" in self.property.override + if is_override: + cost_result = override_costs(cost_result) + else: raise NotImplementedError("Implement me!") From b052c9925f9064d2462442cccecac08bc511cc21 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Fri, 12 Apr 2024 15:41:52 +0100 Subject: [PATCH 510/526] Added heating override --- recommendations/FireplaceRecommendations.py | 4 ++- recommendations/FloorRecommendations.py | 2 +- recommendations/HeatingRecommender.py | 22 ++++++++++++----- recommendations/WindowsRecommendations.py | 27 +++++++++++++-------- 4 files changed, 37 insertions(+), 18 deletions(-) diff --git a/recommendations/FireplaceRecommendations.py b/recommendations/FireplaceRecommendations.py index 5d620d49..c1114f31 100644 --- a/recommendations/FireplaceRecommendations.py +++ b/recommendations/FireplaceRecommendations.py @@ -32,7 +32,8 @@ class FireplaceRecommendations(Definitions): if number_open_fireplaces == 0: return - estimated_cost = number_open_fireplaces * self.COST_OF_WORK + is_override = "sealing_open_fireplace" in self.property.override + estimated_cost = number_open_fireplaces * self.COST_OF_WORK if not is_override else 0 # We recommend installing two mechanical ventilation systems self.recommendation = [ @@ -44,6 +45,7 @@ class FireplaceRecommendations(Definitions): "starting_u_value": None, "new_u_value": None, "sap_points": None, + "is_override": is_override, "total": estimated_cost, # Take a very basic estimate of 6 hours, multipled by the number of open fireplaces to seal "labour_hours": 6 * number_open_fireplaces, diff --git a/recommendations/FloorRecommendations.py b/recommendations/FloorRecommendations.py index 1744a928..b7bd370c 100644 --- a/recommendations/FloorRecommendations.py +++ b/recommendations/FloorRecommendations.py @@ -207,7 +207,6 @@ class FloorRecommendations(Definitions): is_override = "solid_floor_insulation" in self.property.override if is_override: cost_result = override_costs(cost_result) - else: raise NotImplementedError("Implement me!") @@ -227,6 +226,7 @@ class FloorRecommendations(Definitions): "starting_u_value": u_value, "new_u_value": new_u_value, "sap_points": None, + "is_override": is_override, **cost_result } ) diff --git a/recommendations/HeatingRecommender.py b/recommendations/HeatingRecommender.py index 92457a27..27e4985a 100644 --- a/recommendations/HeatingRecommender.py +++ b/recommendations/HeatingRecommender.py @@ -1,7 +1,7 @@ import pandas as pd from recommendations.Costs import Costs -from recommendations.recommendation_utils import check_simulation_difference +from recommendations.recommendation_utils import check_simulation_difference, override_costs from backend.Property import Property from etl.epc_clean.epc_attributes.MainheatAttributes import MainHeatAttributes from etl.epc_clean.epc_attributes.HotWaterAttributes import HotWaterAttributes @@ -33,7 +33,7 @@ class HeatingRecommender: if has_electric_heating_description or no_heating_no_mains: # Recommend high heat retention storage heaters - self.recommend_electric_storage_heaters(phase=phase, system_change=True, heating_controls_only=False) + self.recommend_hhr_storage_heaters(phase=phase, system_change=True, heating_controls_only=False) # if the property has mains heating with boiler and radiators, we recommend optimal heating controls has_boiler = self.property.main_heating["clean_description"] in ["Boiler and radiators, mains gas"] @@ -89,9 +89,8 @@ class HeatingRecommender: return differences - @staticmethod def combine_heating_and_controls( - controls_recommendations, heating_simulation_config, costs, description, phase, heating_controls_only, + self, controls_recommendations, heating_simulation_config, costs, description, phase, heating_controls_only, system_change ): """ @@ -140,6 +139,11 @@ class HeatingRecommender: recommendation_description = f"{description} and {controls_description}" + is_override = "cavity_wall_insulation" in self.property.override + if is_override: + total_costs = override_costs(total_costs) + recommendation_description = "Heating system has already been upgraded, no further action needed." + recommendation = { "phase": phase, "parts": [ @@ -150,6 +154,7 @@ class HeatingRecommender: "starting_u_value": None, "new_u_value": None, "sap_points": None, + "is_override": is_override, **total_costs, "simulation_config": recommendation_simulation_config } @@ -181,9 +186,8 @@ class HeatingRecommender: return output - def recommend_electric_storage_heaters(self, phase, system_change, heating_controls_only): + def recommend_hhr_storage_heaters(self, phase, system_change, heating_controls_only): """ - We recommend electric storage heaters as an upgrade to the heating system. We will recommend upgrading to a high heat retention storage system, if the current system is not already high heat retention storage @@ -360,6 +364,11 @@ class HeatingRecommender: n_heated_rooms=self.property.data["number-heated-rooms"] ) + is_override = "heating" in self.property.override + if is_override: + boiler_costs = override_costs(boiler_costs) + description = "Heating system has already been upgraded, no further action needed." + boiler_recommendation = { "phase": recommendation_phase, "parts": [ @@ -370,6 +379,7 @@ class HeatingRecommender: "starting_u_value": None, "new_u_value": None, "sap_points": None, + "is_override": is_override, "simulation_config": simulation_config, **boiler_costs } diff --git a/recommendations/WindowsRecommendations.py b/recommendations/WindowsRecommendations.py index d7404e3b..b2fe20a6 100644 --- a/recommendations/WindowsRecommendations.py +++ b/recommendations/WindowsRecommendations.py @@ -4,6 +4,7 @@ import numpy as np from backend.Property import Property from recommendations.Costs import Costs +from recommendation_utils import override_costs class WindowsRecommendations: @@ -70,18 +71,23 @@ class WindowsRecommendations: is_secondary_glazing=is_secondary_glazing ) - glazing_type = "secondary glazing" if is_secondary_glazing else "double glazing" - if self.property.windows["glazing_coverage"] in ["partial", "most"]: - description = f"Install {glazing_type} to the remaining windows" + is_override = "windows_glazing" in self.property.override + if is_override: + cost_result = override_costs(cost_result) + description = "The property already has double glazing installed. No further action is required." else: - description = f"Install {glazing_type} to all windows" + glazing_type = "secondary glazing" if is_secondary_glazing else "double glazing" + if self.property.windows["glazing_coverage"] in ["partial", "most"]: + description = f"Install {glazing_type} to the remaining windows" + else: + description = f"Install {glazing_type} to all windows" - if self.property.is_listed: - description += ". Secondary glazing recommended due to listed building status" - elif self.property.is_heritage: - description += ". Secondary glazing recommended due to herigate building status" - elif self.property.in_conservation_area: - description += ". Secondary glazing recommended due to conservation area status" + if self.property.is_listed: + description += ". Secondary glazing recommended due to listed building status" + elif self.property.is_heritage: + description += ". Secondary glazing recommended due to herigate building status" + elif self.property.in_conservation_area: + description += ". Secondary glazing recommended due to conservation area status" self.recommendation = [ { @@ -92,6 +98,7 @@ class WindowsRecommendations: "starting_u_value": None, "new_u_value": None, "sap_points": None, + "is_override": is_override, **cost_result, "is_secondary_glazing": is_secondary_glazing } From 1ee115fa7e73f170d559a24026680677f89aaf5d Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Fri, 12 Apr 2024 15:48:44 +0100 Subject: [PATCH 511/526] Added overrides --- recommendations/HotwaterRecommendations.py | 11 ++++++++++- recommendations/LightingRecommendations.py | 7 +++++++ recommendations/SecondaryHeating.py | 12 +++++++++++- recommendations/SolarPvRecommendations.py | 6 ++++++ 4 files changed, 34 insertions(+), 2 deletions(-) diff --git a/recommendations/HotwaterRecommendations.py b/recommendations/HotwaterRecommendations.py index 7f77597f..88cfa932 100644 --- a/recommendations/HotwaterRecommendations.py +++ b/recommendations/HotwaterRecommendations.py @@ -1,5 +1,6 @@ from backend.Property import Property from recommendations.Costs import Costs +from recommendations.recommendation_utils import override_costs class HotwaterRecommendations: @@ -41,6 +42,13 @@ class HotwaterRecommendations: recommendation_cost = self.costs.hot_water_tank_insulation() + is_override = "hot_water_tank_insulation" in self.property.override + if is_override: + recommendation_cost = override_costs(recommendation_cost) + description = "Insulation tank has already been insulated, no further action required" + else: + description = "Insulate hot water tank" + self.recommendations.append( { "phase": phase, @@ -48,10 +56,11 @@ class HotwaterRecommendations: # TODO ], "type": "hot_water_tank_insulation", - "description": "Insulate the hot water tank with an insulation jacket", + "description": description, "starting_u_value": None, "new_u_value": None, "sap_points": None, + "is_override": is_override, **recommendation_cost, "simulation_config": {"hot_water_energy_eff_ending": "Average"} } diff --git a/recommendations/LightingRecommendations.py b/recommendations/LightingRecommendations.py index 352c4d8a..9e4c8e43 100644 --- a/recommendations/LightingRecommendations.py +++ b/recommendations/LightingRecommendations.py @@ -1,6 +1,7 @@ from backend.Property import Property from typing import List from recommendations.Costs import Costs +from recommendations.recommendation_utils import override_costs class LightingRecommendations: @@ -91,6 +92,11 @@ class LightingRecommendations: heat_demand_change, carbon_change = self.estimate_lighting_impact(number_non_lel_outlets) + is_override = "low_energy_lighting" in self.property.override + if is_override: + cost_result = override_costs(cost_result) + description = "Low energy lighting has already been installed, no further action required" + self.recommendation = [ { "phase": phase, @@ -99,6 +105,7 @@ class LightingRecommendations: "description": description, "starting_u_value": None, "new_u_value": None, + "is_override": is_override, # For SAP points, we use the fact that lighting is usually worth 2 points and we scale this to # the proportion of lights that will be set to low energy "sap_points": round(2 * (number_non_lel_outlets / number_lighting_outlets), 2), diff --git a/recommendations/SecondaryHeating.py b/recommendations/SecondaryHeating.py index f31c4c05..e426977e 100644 --- a/recommendations/SecondaryHeating.py +++ b/recommendations/SecondaryHeating.py @@ -1,4 +1,5 @@ from recommendations.Costs import Costs +from recommendations.recommendation_utils import override_costs from backend.Property import Property @@ -38,15 +39,24 @@ class SecondaryHeating: n_rooms = 0 costs = self.costs.heater_removal(n_rooms=n_rooms) + + is_override = "secondary_heating" in self.property.override + if is_override: + costs = override_costs(costs) + description = "Secondary heating system has already been removed, no further action required" + else: + description = "Remove the secondary heating system" + self.recommendation.append( { "phase": phase, "parts": [], "type": "secondary_heating", - "description": "Remove the secondary heating system", + "description": description, "starting_u_value": None, "new_u_value": None, "sap_points": None, + "is_override": is_override, **costs, "simulation_config": { "secondheat_description_ending": "None" diff --git a/recommendations/SolarPvRecommendations.py b/recommendations/SolarPvRecommendations.py index f75003ce..72fcdf4b 100644 --- a/recommendations/SolarPvRecommendations.py +++ b/recommendations/SolarPvRecommendations.py @@ -1,5 +1,6 @@ import numpy as np from recommendations.Costs import Costs +from recommendations.recommendation_utils import override_costs class SolarPvRecommendations: @@ -110,6 +111,10 @@ class SolarPvRecommendations: description = (f"Install a {kw} kilowatt-peak (kWp) solar photovoltaic (PV) p" f"anel system on {round(roof_coverage_percent)}% the roof.") + is_override = "solar_pv" in self.property.override + if is_override: + cost_result = override_costs(cost_result) + self.recommendation.append( { "phase": phase, @@ -119,6 +124,7 @@ class SolarPvRecommendations: "starting_u_value": None, "new_u_value": None, "sap_points": None, + "is_override": is_override, **cost_result, # This is required for simulating the SAP impact. solar_pv_percentage is between 0 & 1 so we scale # back up here From 14a1f35fb16cbf1199afbd66ce50f598b5d7a10b Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Fri, 12 Apr 2024 16:27:26 +0100 Subject: [PATCH 512/526] ammended system change costs for first time central heating --- recommendations/Costs.py | 72 +++++++++++++++++++++++++-- recommendations/HeatingRecommender.py | 9 +++- 2 files changed, 77 insertions(+), 4 deletions(-) diff --git a/recommendations/Costs.py b/recommendations/Costs.py index 45c17102..0e67b352 100644 --- a/recommendations/Costs.py +++ b/recommendations/Costs.py @@ -83,6 +83,14 @@ CONVENTIONAL_BOILER_COSTS = { ROOM_HEATER_REMOVAL_COST = 120 ROOM_HEATER_REMOVAL_LABOUR_HOURS = 3 +# This is a cost quoted by Jim for a system flush - existig system will run more efficiently +SYSTEM_FLUSH_COST = 250 + +SINGLE_RADIATOR_COST = 150 +DOUBLE_RADIATOR_COST = 300 +FLUE_COST = 600 +PIPEWORK_COST = 750 # Min cost is £500 + class Costs: """ @@ -1126,9 +1134,45 @@ class Costs: "labour_days": np.ceil(removal_labour_hours / 8), } - def boiler(self, is_combi, size, exising_room_heaters, n_heated_rooms): + @staticmethod + def _estimate_n_radiators(number_habitable_rooms, total_floor_area, property_type, built_form): + # Base number of radiators: one per habitable room + base_radiators = number_habitable_rooms + + # Additional radiators for non-habitable essential areas (e.g., kitchens, hallways) + additional_radiators = 3 # Initial assumption + + # Adjust additional radiators based on property type + if property_type == 'Flat': + additional_radiators -= 1 # Flats may need fewer radiators due to less exposure + elif property_type in ['House', 'Bungalow', 'Maisonette']: + # Multiple floors in Maisonette may require additional heating points + additional_radiators += 2 # Houses and bungalows might need more due to greater exposure + else: + raise Exception("Invalid property type") + + # Adjust total radiator needs based on built form + form_factor = { + 'Mid-Terrace': 0.95, + 'Semi-Detached': 1.05, + 'Detached': 1.25, + 'End-Terrace': 1.05 + } + + # Calculate total heating power needed and number of radiators based on standard output + total_heating_power_required = total_floor_area * 80 # Watts per square meter + radiator_output = 1000 # Average wattage per radiator + total_radiators_based_on_power = (total_heating_power_required / radiator_output) * form_factor[built_form] + + # Final estimation taking the higher of calculated needs or base room count + estimated_radiators = max(total_radiators_based_on_power, base_radiators + additional_radiators) + return round(estimated_radiators) + + def boiler(self, is_combi, size, exising_room_heaters, system_change, n_heated_rooms, n_rooms): """ Based on a basic estimate of median value £2600 to install a low carbon combi boiler + First time central heating vosts can als be found here: + https://www.checkatrade.com/blog/cost-guides/central-heating-installation-cost/ :return: """ @@ -1137,11 +1181,11 @@ class Costs: # We now need to estimate the cost of the works labour_days = 2 labour_hours = labour_days * 8 - labour_rate = 500 + labour_rate = 300 # Average cost of installation is 1 (maybe 2days) at £300 per day # https://www.checkatrade.com/blog/cost-guides/new-boiler-cost/ - # To be pessimistic, assume 2 days work and £500 day rate + # To be pessimistic, assume 2 days work labour_cost = labour_rate * self.labour_adjustment_factor * labour_days # Add contingency and preliminaries labour_cost = labour_cost * (1 + self.CONTINGENCY + self.PRELIMINARIES) @@ -1161,6 +1205,28 @@ class Costs: subtotal_before_vat += removal_costing["subtotal"] labour_hours += removal_costing["labour_hours"] labour_days += removal_costing["labour_days"] + vat += removal_costing["vat"] + + if system_change: + # We need the cost of radiators + n_radiators = self._estimate_n_radiators( + number_habitable_rooms=n_rooms, + total_floor_area=self.property.floor_area, + property_type=self.property.data["property-type"], + built_form=self.property.data["built-form"] + ) + + additionals_labour_cost = labour_rate * self.labour_adjustment_factor + radiator_cost = DOUBLE_RADIATOR_COST * n_radiators + system_change_cost = radiator_cost + FLUE_COST + PIPEWORK_COST + additionals_labour_cost + system_change_cost_before_vat = system_change_cost / (1 + self.VAT_RATE) + system_change_vat = system_change_cost - system_change_cost_before_vat + # We add an extra labour day for the system change + labour_days += 1 + labour_hours += 8 + total_cost += system_change_cost + subtotal_before_vat += system_change_cost_before_vat + vat += system_change_vat return { "total": total_cost, diff --git a/recommendations/HeatingRecommender.py b/recommendations/HeatingRecommender.py index 27e4985a..d83b755e 100644 --- a/recommendations/HeatingRecommender.py +++ b/recommendations/HeatingRecommender.py @@ -18,6 +18,11 @@ class HeatingRecommender: self.recommendations = [] def recommend(self, phase=0): + + # TODO: We could have a system flush recommendation for an existing boiler, where there is no need to replace + # the boiler, but instead flushing the system will make it run more efficiently. There is a cost for this + # in the Costs class, stored as SYSTEM_FLUSH_COST + self.recommendations = [] # This first iteration of the recommender will provide very basic recommendation # We recommend heating controls based on the main heating system @@ -361,7 +366,9 @@ class HeatingRecommender: is_combi=is_combi, size=f"{boiler_size}kw", exising_room_heaters=exising_room_heaters, - n_heated_rooms=self.property.data["number-heated-rooms"] + system_change=system_change, + n_heated_rooms=self.property.data["number-heated-rooms"], + n_rooms=self.property.number_of_rooms ) is_override = "heating" in self.property.override From 94f9979f561c5a64acea1fc871c38a9d4868f8e0 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Fri, 12 Apr 2024 16:31:11 +0100 Subject: [PATCH 513/526] fixed override bug --- backend/Property.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/Property.py b/backend/Property.py index d000be28..2892b86e 100644 --- a/backend/Property.py +++ b/backend/Property.py @@ -79,7 +79,7 @@ class Property: # of the non-invasive surveys. We reflect that this has been installed in the recommendations, but remove the # cost and instead, provide a message that the measure has already been installed - self.override = ast.literal_eval(override['overrides']) if override is not None else [] + self.override = ast.literal_eval(override['overrides']) if override else [] self.uprn = epc_record.get("uprn") self.full_sap_epc = epc_record.get("full_sap_epc") From d8caacae97006638aed112e7c8682a0a23372690 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Fri, 12 Apr 2024 17:46:06 +0100 Subject: [PATCH 514/526] creating non-invasive survey results WIP --- .idea/Model.iml | 2 +- .idea/misc.xml | 2 +- etl/customers/immo/pilot/non_invasive.py | 131 ++++++++++++++++++++++ etl/customers/immo/pilot/requirements.txt | 1 + 4 files changed, 134 insertions(+), 2 deletions(-) create mode 100644 etl/customers/immo/pilot/non_invasive.py create mode 100644 etl/customers/immo/pilot/requirements.txt diff --git a/.idea/Model.iml b/.idea/Model.iml index 4413bb06..b0f9c00d 100644 --- a/.idea/Model.iml +++ b/.idea/Model.iml @@ -7,7 +7,7 @@ - + diff --git a/.idea/misc.xml b/.idea/misc.xml index 6f308057..1122b380 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -3,7 +3,7 @@ - + diff --git a/etl/customers/immo/pilot/non_invasive.py b/etl/customers/immo/pilot/non_invasive.py new file mode 100644 index 00000000..cb978059 --- /dev/null +++ b/etl/customers/immo/pilot/non_invasive.py @@ -0,0 +1,131 @@ +import extract_msg + + +def parse_msg_body(text): + # Split the text into lines + lines = text.split('\r\n') + + # Dictionary to hold the parsed data + data = {} + + # Process each line + for line in lines: + # Remove all asterisks and extra whitespace + clean_line = line.replace('*', '').strip() + + if clean_line: # Ensure the line is not empty after cleaning + # Attempt to split clean '=' if present + if '=' in clean_line: + clean_line = clean_line.replace(' = ', ': ') + + # Use line content as a key with a default value indicating presence + # Generate a unique key for lines without '=' + data[f"Info{len(data) + 1}"] = clean_line + + return data + + +def app(): + """ + This code retrieves the results of the non-invasive surveys, to be stored in S3 + :return: + """ + + # filepath = ("/Users/khalimconn-kowlessar/Downloads/IMMO - Dudley Pilot - non-invasive raw data/5 Oaklands B62 " + # "0JA/Immo - 5 Oaklands Halesowen B62 0JA.msg") + # filepath = ("/Users/khalimconn-kowlessar/Downloads/IMMO - Dudley Pilot - non-invasive raw data/6 Beech Rd DY1 " + # "4BP/IMMO - 6 Beech Road Dudley DY1 4BP.msg") + # filepath = ( + # "/Users/khalimconn-kowlessar/Downloads/IMMO - Dudley Pilot - non-invasive raw data/8 Corporation Rd DY2 " + # "7PX/IMMO - 8 Corporation Road Dudley DY2 7PX.msg" + # ) + # filepath = ( + # "/Users/khalimconn-kowlessar/Downloads/IMMO - Dudley Pilot - non-invasive raw data/21 Wells Rd DY5 3TB/" + # "IMMO - 21 Wells Road Brierley Hill DY5 3TB.msg" + # ) + filepath = ( + "/Users/khalimconn-kowlessar/Downloads/IMMO - Dudley Pilot - non-invasive raw data/47 Fairfield Rd DY8 " + "5UJ/IMMO - 47 Fairfield Road Wordsley Stourbridge DY8 5UJ.msg" + ) + + with extract_msg.Message(filepath) as msg: + sender = msg.sender + recipients = msg.to + subject = msg.subject + body = msg.body + # If the msg has attachments, they can be extracted as well + attachments = msg.attachments + + from pprint import pprint + pprint(parse_msg_body(body)) + + # We manually create the non-invasive notes for the pilot + non_invasive_notes = [ + { + 'address': '5 Oaklands', + 'postcode': 'B62 0JA', + 'Surveyor': 'Carl Fitzgerald - The Warmfront Team', + 'Wall Insulation': 'Cavity wall, retro drilled, containing loose fibre insulation. Consider getting a ' + 'CIGA check and extracting the cavity, replacing with bead insulation. ' + 'There is a shared alleyway with the neighbour, that is a solid brick wall.', + 'Wall Render': 'Partial render between top of ground floor window and bottom of 1st floor window', + 'Existing solar PV': 'No existing solar', + 'Orientation': 'Front house direction: North East, Back house direction: South West', + 'Access to mains?': 'Property has access to the mains', + }, + { + 'address': '6 Beech Road', + 'postcode': 'DY1 4BP', + 'Surveyor': 'Carl Fitzgerald - The Warmfront Team', + 'Wall Insulation': '1st floor is solid brick with external wall insulation. 2nd floor is cavity, ' + 'retro drilled, containing loose fibre insulation. Consider getting a ' + 'CIGA check and extracting the cavity, replacing with bead insulation.', + 'Wall Render': None, + 'Existing solar PV': 'No existing solar', + 'Orientation': 'Side house direction: North East', + 'Access to mains?': 'Property has access to the mains', + }, + { + 'address': '8 Corporation Road', + 'postcode': 'DY2 7PX', + 'Surveyor': 'Carl Fitzgerald - The Warmfront Team', + 'Wall Insulation': "External wall insulation", + 'Wall Render': "Render finish throughout", + 'Existing solar PV': 'No existing solar', + 'Orientation': 'Front house direction: North East, Back house direction: South West', + 'Access to mains?': None, + }, + { + + 'address': '21 Wells Road', + 'postcode': 'DY5 3TB', + 'Surveyor': 'Carl Fitzgerald - The Warmfront Team', + 'Wall Insulation': 'Cavity wall, retro drilled, containing loose fibre insulation. Consider getting a ' + 'CIGA check and extracting the cavity, replacing with bead insulation.', + 'Wall Render': None, + 'Existing solar PV': 'No existing solar', + 'Orientation': 'Front house direction: East, Back house direction: West', + 'Access to mains?': 'Property has access to the mains', + }, + { + 'address': '47 Fairfield Road', + 'postcode': 'DY8 5UJ', + 'Surveyor': 'Carl Fitzgerald - The Warmfront Team', + 'Wall Insulation': 'Cavity wall, retro drilled, containing loose fibre insulation. Consider getting a ' + 'CIGA check and extracting the cavity, replacing with bead insulation.', + 'Wall Render': None, + 'Existing solar PV': 'No existing solar', + 'Orientation': 'Front house direction: East, Back house direction: West', + 'Access to mains?': 'Property has access to the mains', + }, + { + 'address': None, + 'postcode': None, + 'Surveyor': 'Carl Fitzgerald - The Warmfront Team', + 'Wall Insulation': None, + 'Wall Render': None, + 'Existing solar PV': None, + 'Orientation': None, + 'Access to mains?': None, + }, + ] diff --git a/etl/customers/immo/pilot/requirements.txt b/etl/customers/immo/pilot/requirements.txt new file mode 100644 index 00000000..4673ab35 --- /dev/null +++ b/etl/customers/immo/pilot/requirements.txt @@ -0,0 +1 @@ +extract-msg From a158f2353c0f84bb005924441166ef56a899f59c Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Sat, 13 Apr 2024 15:36:58 +0100 Subject: [PATCH 515/526] manually created non-invasie notes --- etl/customers/immo/pilot/non_invasive.py | 63 ++++++++++++++++++++---- 1 file changed, 54 insertions(+), 9 deletions(-) diff --git a/etl/customers/immo/pilot/non_invasive.py b/etl/customers/immo/pilot/non_invasive.py index cb978059..c2b8ea64 100644 --- a/etl/customers/immo/pilot/non_invasive.py +++ b/etl/customers/immo/pilot/non_invasive.py @@ -43,9 +43,17 @@ def app(): # "/Users/khalimconn-kowlessar/Downloads/IMMO - Dudley Pilot - non-invasive raw data/21 Wells Rd DY5 3TB/" # "IMMO - 21 Wells Road Brierley Hill DY5 3TB.msg" # ) + # filepath = ( + # "/Users/khalimconn-kowlessar/Downloads/IMMO - Dudley Pilot - non-invasive raw data/47 Fairfield Rd DY8 " + # "5UJ/IMMO - 47 Fairfield Road Wordsley Stourbridge DY8 5UJ.msg" + # ) + # filepath = ( + # "/Users/khalimconn-kowlessar/Downloads/IMMO - Dudley Pilot - non-invasive raw data/91 Osprey Drive DY1 " + # "2JS/IMMO - 91 Osprey Drive Dudley DY1 2JS.msg" + # ) filepath = ( - "/Users/khalimconn-kowlessar/Downloads/IMMO - Dudley Pilot - non-invasive raw data/47 Fairfield Rd DY8 " - "5UJ/IMMO - 47 Fairfield Road Wordsley Stourbridge DY8 5UJ.msg" + "/Users/khalimconn-kowlessar/Downloads/IMMO - Dudley Pilot - non-invasive raw data/195 Ashenhurst Rd DY1 " + "2JB/IMMO - 195 Ashenhurst Road Dudley DY1 2JB.msg" ) with extract_msg.Message(filepath) as msg: @@ -119,13 +127,50 @@ def app(): 'Access to mains?': 'Property has access to the mains', }, { - 'address': None, - 'postcode': None, + 'address': '53 Bromley', + 'postcode': 'DY5 4PJ', 'Surveyor': 'Carl Fitzgerald - The Warmfront Team', - 'Wall Insulation': None, - 'Wall Render': None, - 'Existing solar PV': None, - 'Orientation': None, - 'Access to mains?': None, + 'Wall Insulation': "Filled at build, partially filled - celotex/king board, 50mm cavity remaining - " + "recommends a cavity wall fill", + "Roof": "Hipped roof", + 'Existing solar PV': 'No existing solar', + 'Orientation': "Front house direction: North, Back house direction: South, Side house direction: West", + 'Access to mains?': 'Property has access to the mains', + }, + { + 'address': '91 Osprey Drive', + 'postcode': 'DY1 2JS', + 'Surveyor': 'Carl Fitzgerald - The Warmfront Team', + 'Wall Insulation': 'Cavity wall, retro drilled, containing loose fibre insulation. Consider getting a ' + 'CIGA check and extracting the cavity, replacing with bead insulation.', + 'Wall Render': 'Tile hung front and rear of property', + 'Existing solar PV': 'No existing solar', + 'Orientation': 'Side house direction: East', + 'Access to mains?': 'Property has access to the mains', + }, + { + 'address': '150 Huntingtree Road', + 'postcode': 'B63 4HP', + 'Surveyor': 'Carl Fitzgerald - The Warmfront Team', + 'Heating': 'Electric (storage heaters)', + 'Wall Insulation': 'Cavity wall, retro drilled, containing loose fibre insulation. Consider getting a ' + 'CIGA check and extracting the cavity, replacing with bead insulation.', + "Roof": "Hipped roof", + 'Existing solar PV': 'No existing solar', + 'Orientation': "Front house direction: North West, Back house direction: South East, Side house direction: " + "North East", + }, + { + 'address': '195 Ashenhurst Road', + 'postcode': 'DY1 2JB', + 'Surveyor': 'Carl Fitzgerald - The Warmfront Team', + 'Wall Insulation': 'Cavity wall, retro drilled, containing loose fibre insulation. Consider getting a ' + 'CIGA check and extracting the cavity, replacing with bead insulation.', + 'Wall Render': "Solid render front and rear of property", + 'Existing solar PV': 'No existing solar', + 'Orientation': 'Front house direction: South, Back house direction: North', + 'Access to mains?': 'Property has access to the mains', }, ] + + # TODO: Push the non-invasive results straight to the database from here From 485c01cbd69cf8b562b2d53da0ae03915edf8d93 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Sat, 13 Apr 2024 16:14:01 +0100 Subject: [PATCH 516/526] Added uprns to non-invaive notes --- etl/customers/immo/pilot/non_invasive.py | 35 ++++++++++++++++++------ 1 file changed, 27 insertions(+), 8 deletions(-) diff --git a/etl/customers/immo/pilot/non_invasive.py b/etl/customers/immo/pilot/non_invasive.py index c2b8ea64..0a376388 100644 --- a/etl/customers/immo/pilot/non_invasive.py +++ b/etl/customers/immo/pilot/non_invasive.py @@ -51,18 +51,17 @@ def app(): # "/Users/khalimconn-kowlessar/Downloads/IMMO - Dudley Pilot - non-invasive raw data/91 Osprey Drive DY1 " # "2JS/IMMO - 91 Osprey Drive Dudley DY1 2JS.msg" # ) + # filepath = ( + # "/Users/khalimconn-kowlessar/Downloads/IMMO - Dudley Pilot - non-invasive raw data/195 Ashenhurst Rd DY1 " + # "2JB/IMMO - 195 Ashenhurst Road Dudley DY1 2JB.msg" + # ) filepath = ( - "/Users/khalimconn-kowlessar/Downloads/IMMO - Dudley Pilot - non-invasive raw data/195 Ashenhurst Rd DY1 " - "2JB/IMMO - 195 Ashenhurst Road Dudley DY1 2JB.msg" + "/Users/khalimconn-kowlessar/Downloads/IMMO - Dudley Pilot - non-invasive raw data/27 Milton Rd DY1 2JB/IMMO " + "- 27 Milton Road Coseley Bilston WV14 8HZ.msg" ) with extract_msg.Message(filepath) as msg: - sender = msg.sender - recipients = msg.to - subject = msg.subject body = msg.body - # If the msg has attachments, they can be extracted as well - attachments = msg.attachments from pprint import pprint pprint(parse_msg_body(body)) @@ -70,6 +69,7 @@ def app(): # We manually create the non-invasive notes for the pilot non_invasive_notes = [ { + 'uprn': 90028499, 'address': '5 Oaklands', 'postcode': 'B62 0JA', 'Surveyor': 'Carl Fitzgerald - The Warmfront Team', @@ -82,6 +82,7 @@ def app(): 'Access to mains?': 'Property has access to the mains', }, { + 'uprn': 90055152, 'address': '6 Beech Road', 'postcode': 'DY1 4BP', 'Surveyor': 'Carl Fitzgerald - The Warmfront Team', @@ -94,6 +95,7 @@ def app(): 'Access to mains?': 'Property has access to the mains', }, { + 'uprn': 90070461, 'address': '8 Corporation Road', 'postcode': 'DY2 7PX', 'Surveyor': 'Carl Fitzgerald - The Warmfront Team', @@ -104,7 +106,7 @@ def app(): 'Access to mains?': None, }, { - + 'uprn': 90022227, 'address': '21 Wells Road', 'postcode': 'DY5 3TB', 'Surveyor': 'Carl Fitzgerald - The Warmfront Team', @@ -116,6 +118,7 @@ def app(): 'Access to mains?': 'Property has access to the mains', }, { + 'uprn': 90077535, 'address': '47 Fairfield Road', 'postcode': 'DY8 5UJ', 'Surveyor': 'Carl Fitzgerald - The Warmfront Team', @@ -127,6 +130,7 @@ def app(): 'Access to mains?': 'Property has access to the mains', }, { + 'uprn': 90060989, 'address': '53 Bromley', 'postcode': 'DY5 4PJ', 'Surveyor': 'Carl Fitzgerald - The Warmfront Team', @@ -138,6 +142,7 @@ def app(): 'Access to mains?': 'Property has access to the mains', }, { + 'uprn': 90048026, 'address': '91 Osprey Drive', 'postcode': 'DY1 2JS', 'Surveyor': 'Carl Fitzgerald - The Warmfront Team', @@ -149,6 +154,7 @@ def app(): 'Access to mains?': 'Property has access to the mains', }, { + 'uprn': 90093693, 'address': '150 Huntingtree Road', 'postcode': 'B63 4HP', 'Surveyor': 'Carl Fitzgerald - The Warmfront Team', @@ -161,6 +167,7 @@ def app(): "North East", }, { + 'uprn': 90051858, 'address': '195 Ashenhurst Road', 'postcode': 'DY1 2JB', 'Surveyor': 'Carl Fitzgerald - The Warmfront Team', @@ -171,6 +178,18 @@ def app(): 'Orientation': 'Front house direction: South, Back house direction: North', 'Access to mains?': 'Property has access to the mains', }, + { + 'uprn': 90106884, + 'address': '27 Milton Road', + 'postcode': 'WV14 8HZ', + 'Surveyor': 'Carl Fitzgerald - The Warmfront Team', + 'Wall Insulation': 'Cavity wall, retro drilled, containing loose fibre insulation. Consider getting a ' + 'CIGA check and extracting the cavity, replacing with bead insulation.', + 'Wall Render': "Solid render front and rear of property", + 'Existing solar PV': 'No existing solar', + 'Orientation': 'Front house direction: South East, Back house direction: North West', + 'Access to mains?': 'Property has access to the mains', + }, ] # TODO: Push the non-invasive results straight to the database from here From 65f83930d56290fc73846ca4c8626ac46e3cd7c6 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Sat, 13 Apr 2024 16:25:12 +0100 Subject: [PATCH 517/526] added is_override to storage of recommendation --- .../db/functions/recommendations_functions.py | 3 ++- .../app/db/models/non_intrusive_surveys.py | 24 +++++++++++++++++++ backend/app/db/models/recommendations.py | 1 + 3 files changed, 27 insertions(+), 1 deletion(-) create mode 100644 backend/app/db/models/non_intrusive_surveys.py diff --git a/backend/app/db/functions/recommendations_functions.py b/backend/app/db/functions/recommendations_functions.py index 1426e339..43daec77 100644 --- a/backend/app/db/functions/recommendations_functions.py +++ b/backend/app/db/functions/recommendations_functions.py @@ -85,7 +85,8 @@ def upload_recommendations(session: Session, recommendations_to_upload, property "co2_equivalent_savings": rec["co2_equivalent_savings"], "total_work_hours": rec["labour_hours"], "energy_cost_savings": rec["energy_cost_savings"], - "labour_days": rec["labour_days"] + "labour_days": rec["labour_days"], + "is_override": rec["is_override"], } for rec in recommendations_to_upload ] diff --git a/backend/app/db/models/non_intrusive_surveys.py b/backend/app/db/models/non_intrusive_surveys.py new file mode 100644 index 00000000..c5f3734a --- /dev/null +++ b/backend/app/db/models/non_intrusive_surveys.py @@ -0,0 +1,24 @@ +from sqlalchemy import Column, BigInteger, String, Float, Boolean, TIMESTAMP, ForeignKey, Enum, Integer +from sqlalchemy.orm import declarative_base +from sqlalchemy.sql import func +from backend.app.db.models.portfolio import Portfolio, PropertyModel +from backend.app.db.models.materials import Material +from datatypes.enums import QuantityUnits + +Base = declarative_base() + + +class NonIntrusiveSurvey(Base): + __tablename__ = 'non_intrusive_survey' + + id = Column(BigInteger, primary_key=True, autoincrement=True) + uprn = Column(Integer, nullable=False) + survey_date = Column(TIMESTAMP, nullable=False) + surveyor = Column(String, nullable=False) + + +class NonIntrusiveSurveyNotes(Base): + id = Column(BigInteger, primary_key=True, autoincrement=True) + survey_id = Column(BigInteger, ForeignKey('non_intrusive_survey.id'), nullable=False) + title = Column(String, nullable=False) + note = Column(String, nullable=False) diff --git a/backend/app/db/models/recommendations.py b/backend/app/db/models/recommendations.py index a492f2f2..be5ff30c 100644 --- a/backend/app/db/models/recommendations.py +++ b/backend/app/db/models/recommendations.py @@ -30,6 +30,7 @@ class Recommendation(Base): rental_yield_increase = Column(Float) total_work_hours = Column(Float) labour_days = Column(Float) + is_override = Column(Boolean, nullable=False, default=False) class RecommendationMaterials(Base): From aaa279463eea2505b3d36ee46c26b33b17955e77 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Sat, 13 Apr 2024 16:37:28 +0100 Subject: [PATCH 518/526] Added is_override to heating controls --- .idea/Model.iml | 2 +- .idea/misc.xml | 2 +- recommendations/HeatingControlRecommender.py | 46 ++++++++++++++------ 3 files changed, 35 insertions(+), 15 deletions(-) diff --git a/.idea/Model.iml b/.idea/Model.iml index b0f9c00d..4413bb06 100644 --- a/.idea/Model.iml +++ b/.idea/Model.iml @@ -7,7 +7,7 @@ - + diff --git a/.idea/misc.xml b/.idea/misc.xml index 1122b380..6f308057 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -3,7 +3,7 @@ - + diff --git a/recommendations/HeatingControlRecommender.py b/recommendations/HeatingControlRecommender.py index 76eaba4f..63218163 100644 --- a/recommendations/HeatingControlRecommender.py +++ b/recommendations/HeatingControlRecommender.py @@ -1,5 +1,5 @@ from recommendations.Costs import Costs -from recommendations.recommendation_utils import check_simulation_difference +from recommendations.recommendation_utils import check_simulation_difference, override_costs from backend.Property import Property from etl.epc_clean.epc_attributes.MainheatControlAttributes import MainheatControlAttributes @@ -159,20 +159,30 @@ class HeatingControlRecommender: has_room_thermostat = not needs_room_thermostat has_trvs = not needs_trvs + cost_result = self.costs.roomstat_programmer_trvs( + number_heated_rooms=int(self.property.data["number-heated-rooms"]), + has_programmer=has_programmer, + has_room_thermostat=has_room_thermostat, + has_trvs=has_trvs + ) + + description = "upgrade heating controls to Room thermostat, programmer and TRVs" + + is_override = "heating_control" in self.property.override + if is_override: + cost_result = override_costs(cost_result) + description = "Heating controls have already been upgraded, no further action needed." + self.recommendation.append( { "type": "heating_control", "parts": [], - "description": "upgrade heating controls to Room thermostat, programmer and TRVs", - **self.costs.roomstat_programmer_trvs( - number_heated_rooms=int(self.property.data["number-heated-rooms"]), - has_programmer=has_programmer, - has_room_thermostat=has_room_thermostat, - has_trvs=has_trvs - ), + "description": description, + **cost_result, "starting_u_value": None, "new_u_value": None, "sap_points": None, + "is_override": is_override, "simulation_config": simulation_config } ) @@ -211,18 +221,28 @@ class HeatingControlRecommender: if self.property.data["mainheatc-energy-eff"] in ["Poor", "Very Poor", "Average", "Good"]: simulation_config["mainheatc_energy_eff_ending"] = "Very Good" + cost_result = self.costs.time_and_temperature_zone_control( + number_heated_rooms=int(self.property.data["number-heated-rooms"]) + ) + + description = ("Upgrade heating controls to Smart Thermostats, room sensors and smart radiator valves (time & " + "temperature zone control)") + + is_override = "heating_control" in self.property.override + if is_override: + cost_result = override_costs(cost_result) + description = "Heating controls have already been upgraded, no further action needed." + self.recommendation.append( { "type": "heating_control", "parts": [], - "description": "Upgrade heating controls to Smart Thermostats, room sensors and smart radiator valves " - "(time & temperature zone control)", - **self.costs.time_and_temperature_zone_control( - number_heated_rooms=int(self.property.data["number-heated-rooms"]) - ), + "description": description, + **cost_result, "starting_u_value": None, "new_u_value": None, "sap_points": None, + "is_override": is_override, "simulation_config": simulation_config } ) From 527291b4395eb8b5563f52fd8449faee569d6789 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Sat, 13 Apr 2024 16:40:13 +0100 Subject: [PATCH 519/526] Added is_override to mechanical ventilation recommendation --- recommendations/VentilationRecommendations.py | 1 + 1 file changed, 1 insertion(+) diff --git a/recommendations/VentilationRecommendations.py b/recommendations/VentilationRecommendations.py index 07f7cf1e..7ffcda08 100644 --- a/recommendations/VentilationRecommendations.py +++ b/recommendations/VentilationRecommendations.py @@ -69,6 +69,7 @@ class VentilationRecommendations(Definitions): "description": f"Install {n_units} {part[0]['description']} units", "starting_u_value": None, "new_u_value": None, + "is_override": is_override, "sap_points": 0, "heat_demand": 0, "adjusted_heat_demand": 0, From 34d6a075289b0c2d31d75a1bad8ea5c969f12fca Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Sat, 13 Apr 2024 17:07:42 +0100 Subject: [PATCH 520/526] Pushed non-intrusive survey results to bd --- .../app/db/functions/non_intrusive_surveys.py | 50 ++++++++++ .../app/db/models/non_intrusive_surveys.py | 8 +- etl/customers/immo/pilot/non_invasive.py | 99 +++++++++++-------- 3 files changed, 110 insertions(+), 47 deletions(-) create mode 100644 backend/app/db/functions/non_intrusive_surveys.py diff --git a/backend/app/db/functions/non_intrusive_surveys.py b/backend/app/db/functions/non_intrusive_surveys.py new file mode 100644 index 00000000..93348121 --- /dev/null +++ b/backend/app/db/functions/non_intrusive_surveys.py @@ -0,0 +1,50 @@ +from sqlalchemy.orm import Session +from backend.app.db.models.non_intrusive_surveys import NonIntrusiveSurvey, NonIntrusiveSurveyNotes + + +def upload_non_intrusive_survey_notes(session: Session, non_invasive_notes, batch_size=500): + """ + Uploads a list of non-intrusive survey notes into the database in batches. Each dictionary in the list represents + one survey and its associated notes. + + :param session: SQLAlchemy Session object through which all database transactions are handled. + :param non_invasive_notes: List of dictionaries where each dictionary contains survey details including 'uprn', + 'survey_date', 'surveyor', and other notes as key-value pairs. + :param batch_size: The size of each batch to be processed (default is 500). + :return: None + """ + + # Helper function to process each batch + def process_batch(batch): + surveys = [] + notes = [] + + for note in batch: + survey = NonIntrusiveSurvey( + uprn=note['uprn'], + survey_date=note['survey_date'], + surveyor=note['surveyor'] + ) + surveys.append(survey) + + session.add_all(surveys) + session.flush() # Get IDs for surveys + + for note, survey in zip(batch, surveys): + for key, value in note.items(): + if key not in ['uprn', 'survey_date', 'surveyor']: + notes.append(NonIntrusiveSurveyNotes( + survey_id=survey.id, + title=key, + note=value + )) + + session.bulk_save_objects(notes) + session.commit() + + # Split the data into batches and process each batch + total = len(non_invasive_notes) + for start in range(0, total, batch_size): + end = min(start + batch_size, total) + batch = non_invasive_notes[start:end] + process_batch(batch) diff --git a/backend/app/db/models/non_intrusive_surveys.py b/backend/app/db/models/non_intrusive_surveys.py index c5f3734a..bc2d8adc 100644 --- a/backend/app/db/models/non_intrusive_surveys.py +++ b/backend/app/db/models/non_intrusive_surveys.py @@ -1,9 +1,5 @@ -from sqlalchemy import Column, BigInteger, String, Float, Boolean, TIMESTAMP, ForeignKey, Enum, Integer +from sqlalchemy import Column, BigInteger, String, TIMESTAMP, ForeignKey, Integer from sqlalchemy.orm import declarative_base -from sqlalchemy.sql import func -from backend.app.db.models.portfolio import Portfolio, PropertyModel -from backend.app.db.models.materials import Material -from datatypes.enums import QuantityUnits Base = declarative_base() @@ -18,6 +14,8 @@ class NonIntrusiveSurvey(Base): class NonIntrusiveSurveyNotes(Base): + __tablename__ = 'non_intrusive_survey_notes' + id = Column(BigInteger, primary_key=True, autoincrement=True) survey_id = Column(BigInteger, ForeignKey('non_intrusive_survey.id'), nullable=False) title = Column(String, nullable=False) diff --git a/etl/customers/immo/pilot/non_invasive.py b/etl/customers/immo/pilot/non_invasive.py index 0a376388..6dc22c62 100644 --- a/etl/customers/immo/pilot/non_invasive.py +++ b/etl/customers/immo/pilot/non_invasive.py @@ -1,4 +1,8 @@ -import extract_msg +# import extract_msg +from datetime import datetime +from sqlalchemy.orm import sessionmaker +from backend.app.db.connection import db_engine +from backend.app.db.functions.non_intrusive_surveys import upload_non_intrusive_survey_notes def parse_msg_body(text): @@ -55,24 +59,25 @@ def app(): # "/Users/khalimconn-kowlessar/Downloads/IMMO - Dudley Pilot - non-invasive raw data/195 Ashenhurst Rd DY1 " # "2JB/IMMO - 195 Ashenhurst Road Dudley DY1 2JB.msg" # ) - filepath = ( - "/Users/khalimconn-kowlessar/Downloads/IMMO - Dudley Pilot - non-invasive raw data/27 Milton Rd DY1 2JB/IMMO " - "- 27 Milton Road Coseley Bilston WV14 8HZ.msg" - ) - - with extract_msg.Message(filepath) as msg: - body = msg.body - - from pprint import pprint - pprint(parse_msg_body(body)) + # filepath = ( + # "/Users/khalimconn-kowlessar/Downloads/IMMO - Dudley Pilot - non-invasive raw data/27 Milton Rd DY1 2JB/IMMO " + # "- 27 Milton Road Coseley Bilston WV14 8HZ.msg" + # ) + # + # with extract_msg.Message(filepath) as msg: + # body = msg.body + # + # from pprint import pprint + # pprint(parse_msg_body(body)) # We manually create the non-invasive notes for the pilot non_invasive_notes = [ { 'uprn': 90028499, - 'address': '5 Oaklands', - 'postcode': 'B62 0JA', - 'Surveyor': 'Carl Fitzgerald - The Warmfront Team', + # 'address': '5 Oaklands', + # 'postcode': 'B62 0JA', + 'surveyor': 'Carl Fitzgerald - The Warmfront Team', + 'survey_date': datetime.strptime('2024-04-11', '%Y-%m-%d'), 'Wall Insulation': 'Cavity wall, retro drilled, containing loose fibre insulation. Consider getting a ' 'CIGA check and extracting the cavity, replacing with bead insulation. ' 'There is a shared alleyway with the neighbour, that is a solid brick wall.', @@ -83,9 +88,10 @@ def app(): }, { 'uprn': 90055152, - 'address': '6 Beech Road', - 'postcode': 'DY1 4BP', - 'Surveyor': 'Carl Fitzgerald - The Warmfront Team', + # 'address': '6 Beech Road', + # 'postcode': 'DY1 4BP', + 'surveyor': 'Carl Fitzgerald - The Warmfront Team', + 'survey_date': datetime.strptime('2024-04-11', '%Y-%m-%d'), 'Wall Insulation': '1st floor is solid brick with external wall insulation. 2nd floor is cavity, ' 'retro drilled, containing loose fibre insulation. Consider getting a ' 'CIGA check and extracting the cavity, replacing with bead insulation.', @@ -96,9 +102,10 @@ def app(): }, { 'uprn': 90070461, - 'address': '8 Corporation Road', - 'postcode': 'DY2 7PX', - 'Surveyor': 'Carl Fitzgerald - The Warmfront Team', + # 'address': '8 Corporation Road', + # 'postcode': 'DY2 7PX', + 'surveyor': 'Carl Fitzgerald - The Warmfront Team', + 'survey_date': datetime.strptime('2024-04-11', '%Y-%m-%d'), 'Wall Insulation': "External wall insulation", 'Wall Render': "Render finish throughout", 'Existing solar PV': 'No existing solar', @@ -107,9 +114,10 @@ def app(): }, { 'uprn': 90022227, - 'address': '21 Wells Road', - 'postcode': 'DY5 3TB', - 'Surveyor': 'Carl Fitzgerald - The Warmfront Team', + # 'address': '21 Wells Road', + # 'postcode': 'DY5 3TB', + 'surveyor': 'Carl Fitzgerald - The Warmfront Team', + 'survey_date': datetime.strptime('2024-04-11', '%Y-%m-%d'), 'Wall Insulation': 'Cavity wall, retro drilled, containing loose fibre insulation. Consider getting a ' 'CIGA check and extracting the cavity, replacing with bead insulation.', 'Wall Render': None, @@ -119,9 +127,10 @@ def app(): }, { 'uprn': 90077535, - 'address': '47 Fairfield Road', - 'postcode': 'DY8 5UJ', - 'Surveyor': 'Carl Fitzgerald - The Warmfront Team', + # 'address': '47 Fairfield Road', + # 'postcode': 'DY8 5UJ', + 'surveyor': 'Carl Fitzgerald - The Warmfront Team', + 'survey_date': datetime.strptime('2024-04-11', '%Y-%m-%d'), 'Wall Insulation': 'Cavity wall, retro drilled, containing loose fibre insulation. Consider getting a ' 'CIGA check and extracting the cavity, replacing with bead insulation.', 'Wall Render': None, @@ -131,9 +140,10 @@ def app(): }, { 'uprn': 90060989, - 'address': '53 Bromley', - 'postcode': 'DY5 4PJ', - 'Surveyor': 'Carl Fitzgerald - The Warmfront Team', + # 'address': '53 Bromley', + # 'postcode': 'DY5 4PJ', + 'surveyor': 'Carl Fitzgerald - The Warmfront Team', + 'survey_date': datetime.strptime('2024-04-11', '%Y-%m-%d'), 'Wall Insulation': "Filled at build, partially filled - celotex/king board, 50mm cavity remaining - " "recommends a cavity wall fill", "Roof": "Hipped roof", @@ -143,9 +153,10 @@ def app(): }, { 'uprn': 90048026, - 'address': '91 Osprey Drive', - 'postcode': 'DY1 2JS', - 'Surveyor': 'Carl Fitzgerald - The Warmfront Team', + # 'address': '91 Osprey Drive', + # 'postcode': 'DY1 2JS', + 'surveyor': 'Carl Fitzgerald - The Warmfront Team', + 'survey_date': datetime.strptime('2024-04-11', '%Y-%m-%d'), 'Wall Insulation': 'Cavity wall, retro drilled, containing loose fibre insulation. Consider getting a ' 'CIGA check and extracting the cavity, replacing with bead insulation.', 'Wall Render': 'Tile hung front and rear of property', @@ -155,9 +166,10 @@ def app(): }, { 'uprn': 90093693, - 'address': '150 Huntingtree Road', - 'postcode': 'B63 4HP', - 'Surveyor': 'Carl Fitzgerald - The Warmfront Team', + # 'address': '150 Huntingtree Road', + # 'postcode': 'B63 4HP', + 'surveyor': 'Carl Fitzgerald - The Warmfront Team', + 'survey_date': datetime.strptime('2024-04-11', '%Y-%m-%d'), 'Heating': 'Electric (storage heaters)', 'Wall Insulation': 'Cavity wall, retro drilled, containing loose fibre insulation. Consider getting a ' 'CIGA check and extracting the cavity, replacing with bead insulation.', @@ -168,9 +180,10 @@ def app(): }, { 'uprn': 90051858, - 'address': '195 Ashenhurst Road', - 'postcode': 'DY1 2JB', - 'Surveyor': 'Carl Fitzgerald - The Warmfront Team', + # 'address': '195 Ashenhurst Road', + # 'postcode': 'DY1 2JB', + 'surveyor': 'Carl Fitzgerald - The Warmfront Team', + 'survey_date': datetime.strptime('2024-04-11', '%Y-%m-%d'), 'Wall Insulation': 'Cavity wall, retro drilled, containing loose fibre insulation. Consider getting a ' 'CIGA check and extracting the cavity, replacing with bead insulation.', 'Wall Render': "Solid render front and rear of property", @@ -180,9 +193,10 @@ def app(): }, { 'uprn': 90106884, - 'address': '27 Milton Road', - 'postcode': 'WV14 8HZ', - 'Surveyor': 'Carl Fitzgerald - The Warmfront Team', + # 'address': '27 Milton Road', + # 'postcode': 'WV14 8HZ', + 'surveyor': 'Carl Fitzgerald - The Warmfront Team', + 'survey_date': datetime.strptime('2024-04-11', '%Y-%m-%d'), 'Wall Insulation': 'Cavity wall, retro drilled, containing loose fibre insulation. Consider getting a ' 'CIGA check and extracting the cavity, replacing with bead insulation.', 'Wall Render': "Solid render front and rear of property", @@ -192,4 +206,5 @@ def app(): }, ] - # TODO: Push the non-invasive results straight to the database from here + session = sessionmaker(bind=db_engine)() + upload_non_intrusive_survey_notes(session=session, non_invasive_notes=non_invasive_notes, batch_size=500) From 954fa9d32c5d30bd63098b74512b006b47bf3056 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Sun, 14 Apr 2024 14:57:13 +0100 Subject: [PATCH 521/526] changed is_override to already_installed in recommendations --- backend/Property.py | 4 ++-- backend/app/plan/router.py | 17 +++++++++-------- backend/app/plan/schemas.py | 2 +- recommendations/FireplaceRecommendations.py | 6 +++--- recommendations/FloorRecommendations.py | 10 +++++----- recommendations/HeatingControlRecommender.py | 12 ++++++------ recommendations/HeatingRecommender.py | 12 ++++++------ recommendations/HotwaterRecommendations.py | 6 +++--- recommendations/LightingRecommendations.py | 6 +++--- recommendations/RoofRecommendations.py | 10 +++++----- recommendations/SecondaryHeating.py | 6 +++--- recommendations/SolarPvRecommendations.py | 6 +++--- recommendations/VentilationRecommendations.py | 10 +++++----- recommendations/WallRecommendations.py | 16 ++++++++-------- recommendations/WindowsRecommendations.py | 6 +++--- 15 files changed, 65 insertions(+), 64 deletions(-) diff --git a/backend/Property.py b/backend/Property.py index 2892b86e..a8ed9129 100644 --- a/backend/Property.py +++ b/backend/Property.py @@ -61,7 +61,7 @@ class Property: n_bedrooms = None def __init__( - self, id, postcode, address, epc_record, override=None, **kwargs + self, id, postcode, address, epc_record, already_installed=None, **kwargs ): self.epc_record = epc_record @@ -79,7 +79,7 @@ class Property: # of the non-invasive surveys. We reflect that this has been installed in the recommendations, but remove the # cost and instead, provide a message that the measure has already been installed - self.override = ast.literal_eval(override['overrides']) if override else [] + self.already_installed = ast.literal_eval(already_installed['already_installed']) if already_installed else [] self.uprn = epc_record.get("uprn") self.full_sap_epc = epc_record.get("full_sap_epc") diff --git a/backend/app/plan/router.py b/backend/app/plan/router.py index 08ce0dcc..49e14872 100644 --- a/backend/app/plan/router.py +++ b/backend/app/plan/router.py @@ -74,7 +74,7 @@ async def trigger_plan(body: PlanTriggerRequest): # TODO: We should store the trigger file path in the database with the plan so we can track the file that # triggered the plan - # TODO: Create the ability to congigure/switch off certain measures + # TODO: if the measure is already installed, it should actually be the very first phase try: session.begin() @@ -85,10 +85,10 @@ async def trigger_plan(body: PlanTriggerRequest): if body.patches_file_path: patches = read_csv_from_s3(bucket_name=get_settings().PLAN_TRIGGER_BUCKET, filepath=body.patches_file_path) - overrides = [] - if body.overrides_file_path: - overrides = read_csv_from_s3( - bucket_name=get_settings().PLAN_TRIGGER_BUCKET, filepath=body.overrides_file_path + already_installed = [] + if body.already_installed_file_path: + already_installed = read_csv_from_s3( + bucket_name=get_settings().PLAN_TRIGGER_BUCKET, filepath=body.already_installed_file_path ) cleaning_data = read_dataframe_from_s3_parquet( @@ -142,8 +142,9 @@ async def trigger_plan(body: PlanTriggerRequest): cleaning_data=cleaning_data ) - override = next(( - x for x in overrides if (x["address"] == config["address"]) and (x["postcode"] == config["postcode"]) + property_already_installed = next(( + x for x in already_installed if + (x["address"] == config["address"]) and (x["postcode"] == config["postcode"]) ), {}) input_properties.append( Property( @@ -151,7 +152,7 @@ async def trigger_plan(body: PlanTriggerRequest): address=epc_searcher.address_clean, postcode=epc_searcher.postcode_clean, epc_record=prepared_epc, - override=override, + already_installed=property_already_installed, **Property.extract_kwargs(config) ) ) diff --git a/backend/app/plan/schemas.py b/backend/app/plan/schemas.py index ec49e41e..76eb49d2 100644 --- a/backend/app/plan/schemas.py +++ b/backend/app/plan/schemas.py @@ -9,7 +9,7 @@ class PlanTriggerRequest(BaseModel): goal_value: str portfolio_id: int trigger_file_path: str - overrides_file_path: Optional[str] = None + already_installed_file_path: Optional[str] = None patches_file_path: Optional[str] = None exclusions: Optional[conlist(str, min_items=1)] = None diff --git a/recommendations/FireplaceRecommendations.py b/recommendations/FireplaceRecommendations.py index c1114f31..601a8eb0 100644 --- a/recommendations/FireplaceRecommendations.py +++ b/recommendations/FireplaceRecommendations.py @@ -32,8 +32,8 @@ class FireplaceRecommendations(Definitions): if number_open_fireplaces == 0: return - is_override = "sealing_open_fireplace" in self.property.override - estimated_cost = number_open_fireplaces * self.COST_OF_WORK if not is_override else 0 + already_installed = "sealing_open_fireplace" in self.property.already_installed + estimated_cost = number_open_fireplaces * self.COST_OF_WORK if not already_installed else 0 # We recommend installing two mechanical ventilation systems self.recommendation = [ @@ -45,7 +45,7 @@ class FireplaceRecommendations(Definitions): "starting_u_value": None, "new_u_value": None, "sap_points": None, - "is_override": is_override, + "already_installed": already_installed, "total": estimated_cost, # Take a very basic estimate of 6 hours, multipled by the number of open fireplaces to seal "labour_hours": 6 * number_open_fireplaces, diff --git a/recommendations/FloorRecommendations.py b/recommendations/FloorRecommendations.py index b7bd370c..3f764d83 100644 --- a/recommendations/FloorRecommendations.py +++ b/recommendations/FloorRecommendations.py @@ -193,8 +193,8 @@ class FloorRecommendations(Definitions): non_insulation_materials=non_insulation_materials ) - is_override = "suspended_floor_insulation" in self.property.override - if is_override: + already_installed = "suspended_floor_insulation" in self.property.already_installed + if already_installed: cost_result = override_costs(cost_result) elif material["type"] == "solid_floor_insulation": @@ -204,8 +204,8 @@ class FloorRecommendations(Definitions): non_insulation_materials=non_insulation_materials ) - is_override = "solid_floor_insulation" in self.property.override - if is_override: + already_installed = "solid_floor_insulation" in self.property.already_installed + if already_installed: cost_result = override_costs(cost_result) else: raise NotImplementedError("Implement me!") @@ -226,7 +226,7 @@ class FloorRecommendations(Definitions): "starting_u_value": u_value, "new_u_value": new_u_value, "sap_points": None, - "is_override": is_override, + "already_installed": already_installed, **cost_result } ) diff --git a/recommendations/HeatingControlRecommender.py b/recommendations/HeatingControlRecommender.py index 63218163..d24ad811 100644 --- a/recommendations/HeatingControlRecommender.py +++ b/recommendations/HeatingControlRecommender.py @@ -168,8 +168,8 @@ class HeatingControlRecommender: description = "upgrade heating controls to Room thermostat, programmer and TRVs" - is_override = "heating_control" in self.property.override - if is_override: + already_installed = "heating_control" in self.property.already_installed + if already_installed: cost_result = override_costs(cost_result) description = "Heating controls have already been upgraded, no further action needed." @@ -182,7 +182,7 @@ class HeatingControlRecommender: "starting_u_value": None, "new_u_value": None, "sap_points": None, - "is_override": is_override, + "already_installed": already_installed, "simulation_config": simulation_config } ) @@ -228,8 +228,8 @@ class HeatingControlRecommender: description = ("Upgrade heating controls to Smart Thermostats, room sensors and smart radiator valves (time & " "temperature zone control)") - is_override = "heating_control" in self.property.override - if is_override: + already_installed = "heating_control" in self.property.already_installed + if already_installed: cost_result = override_costs(cost_result) description = "Heating controls have already been upgraded, no further action needed." @@ -242,7 +242,7 @@ class HeatingControlRecommender: "starting_u_value": None, "new_u_value": None, "sap_points": None, - "is_override": is_override, + "already_installed": already_installed, "simulation_config": simulation_config } ) diff --git a/recommendations/HeatingRecommender.py b/recommendations/HeatingRecommender.py index d83b755e..432dc6a6 100644 --- a/recommendations/HeatingRecommender.py +++ b/recommendations/HeatingRecommender.py @@ -144,8 +144,8 @@ class HeatingRecommender: recommendation_description = f"{description} and {controls_description}" - is_override = "cavity_wall_insulation" in self.property.override - if is_override: + already_installed = "cavity_wall_insulation" in self.property.already_installed + if already_installed: total_costs = override_costs(total_costs) recommendation_description = "Heating system has already been upgraded, no further action needed." @@ -159,7 +159,7 @@ class HeatingRecommender: "starting_u_value": None, "new_u_value": None, "sap_points": None, - "is_override": is_override, + "already_installed": already_installed, **total_costs, "simulation_config": recommendation_simulation_config } @@ -371,8 +371,8 @@ class HeatingRecommender: n_rooms=self.property.number_of_rooms ) - is_override = "heating" in self.property.override - if is_override: + already_installed = "heating" in self.property.already_installed + if already_installed: boiler_costs = override_costs(boiler_costs) description = "Heating system has already been upgraded, no further action needed." @@ -386,7 +386,7 @@ class HeatingRecommender: "starting_u_value": None, "new_u_value": None, "sap_points": None, - "is_override": is_override, + "already_installed": already_installed, "simulation_config": simulation_config, **boiler_costs } diff --git a/recommendations/HotwaterRecommendations.py b/recommendations/HotwaterRecommendations.py index 88cfa932..9c5c7045 100644 --- a/recommendations/HotwaterRecommendations.py +++ b/recommendations/HotwaterRecommendations.py @@ -42,8 +42,8 @@ class HotwaterRecommendations: recommendation_cost = self.costs.hot_water_tank_insulation() - is_override = "hot_water_tank_insulation" in self.property.override - if is_override: + already_installed = "hot_water_tank_insulation" in self.property.already_installed + if already_installed: recommendation_cost = override_costs(recommendation_cost) description = "Insulation tank has already been insulated, no further action required" else: @@ -60,7 +60,7 @@ class HotwaterRecommendations: "starting_u_value": None, "new_u_value": None, "sap_points": None, - "is_override": is_override, + "already_installed": already_installed, **recommendation_cost, "simulation_config": {"hot_water_energy_eff_ending": "Average"} } diff --git a/recommendations/LightingRecommendations.py b/recommendations/LightingRecommendations.py index 9e4c8e43..31720579 100644 --- a/recommendations/LightingRecommendations.py +++ b/recommendations/LightingRecommendations.py @@ -92,8 +92,8 @@ class LightingRecommendations: heat_demand_change, carbon_change = self.estimate_lighting_impact(number_non_lel_outlets) - is_override = "low_energy_lighting" in self.property.override - if is_override: + already_installed = "low_energy_lighting" in self.property.already_installed + if already_installed: cost_result = override_costs(cost_result) description = "Low energy lighting has already been installed, no further action required" @@ -105,7 +105,7 @@ class LightingRecommendations: "description": description, "starting_u_value": None, "new_u_value": None, - "is_override": is_override, + "already_installed": already_installed, # For SAP points, we use the fact that lighting is usually worth 2 points and we scale this to # the proportion of lights that will be set to low energy "sap_points": round(2 * (number_non_lel_outlets / number_lighting_outlets), 2), diff --git a/recommendations/RoofRecommendations.py b/recommendations/RoofRecommendations.py index 5ba7e82e..dc5ee7db 100644 --- a/recommendations/RoofRecommendations.py +++ b/recommendations/RoofRecommendations.py @@ -207,8 +207,8 @@ class RoofRecommendations: floor_area=self.property.insulation_floor_area, material=material ) - is_override = "loft_insulation" in self.property.override - if is_override: + already_installed = "loft_insulation" in self.property.already_installed + if already_installed: cost_result = override_costs(cost_result) elif material["type"] == "flat_roof_insulation": cost_result = self.costs.flat_roof_insulation( @@ -216,8 +216,8 @@ class RoofRecommendations: material=material, non_insulation_materials=non_insulation_materials ) - is_override = "flat_roof_insulation" in self.property.override - if is_override: + already_installed = "flat_roof_insulation" in self.property.already_installed + if already_installed: cost_result = override_costs(cost_result) else: raise ValueError("Invalid material type") @@ -238,7 +238,7 @@ class RoofRecommendations: "starting_u_value": u_value, "new_u_value": new_u_value, "sap_points": None, - "is_override": is_override, + "already_installed": already_installed, **cost_result } ) diff --git a/recommendations/SecondaryHeating.py b/recommendations/SecondaryHeating.py index e426977e..5d763510 100644 --- a/recommendations/SecondaryHeating.py +++ b/recommendations/SecondaryHeating.py @@ -40,8 +40,8 @@ class SecondaryHeating: costs = self.costs.heater_removal(n_rooms=n_rooms) - is_override = "secondary_heating" in self.property.override - if is_override: + already_installed = "secondary_heating" in self.property.already_installed + if already_installed: costs = override_costs(costs) description = "Secondary heating system has already been removed, no further action required" else: @@ -56,7 +56,7 @@ class SecondaryHeating: "starting_u_value": None, "new_u_value": None, "sap_points": None, - "is_override": is_override, + "already_installed": already_installed, **costs, "simulation_config": { "secondheat_description_ending": "None" diff --git a/recommendations/SolarPvRecommendations.py b/recommendations/SolarPvRecommendations.py index 72fcdf4b..58cf9735 100644 --- a/recommendations/SolarPvRecommendations.py +++ b/recommendations/SolarPvRecommendations.py @@ -111,8 +111,8 @@ class SolarPvRecommendations: description = (f"Install a {kw} kilowatt-peak (kWp) solar photovoltaic (PV) p" f"anel system on {round(roof_coverage_percent)}% the roof.") - is_override = "solar_pv" in self.property.override - if is_override: + already_installed = "solar_pv" in self.property.already_installed + if already_installed: cost_result = override_costs(cost_result) self.recommendation.append( @@ -124,7 +124,7 @@ class SolarPvRecommendations: "starting_u_value": None, "new_u_value": None, "sap_points": None, - "is_override": is_override, + "already_installed": already_installed, **cost_result, # This is required for simulating the SAP impact. solar_pv_percentage is between 0 & 1 so we scale # back up here diff --git a/recommendations/VentilationRecommendations.py b/recommendations/VentilationRecommendations.py index 7ffcda08..5b36bd9c 100644 --- a/recommendations/VentilationRecommendations.py +++ b/recommendations/VentilationRecommendations.py @@ -50,11 +50,11 @@ class VentilationRecommendations(Definitions): part = self.materials.copy() - is_override = "cavity_wall_insulation" in self.property.override + already_installed = "cavity_wall_insulation" in self.property.already_installed - estimated_cost = n_units * part[0]["cost"] if not is_override else 0 - labour_hours = 4 * n_units if not is_override else 0 - labour_days = 4 * n_units / 8.0 if not is_override else 0 + estimated_cost = n_units * part[0]["cost"] if not already_installed else 0 + labour_hours = 4 * n_units if not already_installed else 0 + labour_days = 4 * n_units / 8.0 if not already_installed else 0 part[0]["total"] = estimated_cost part[0]["quantity"] = n_units @@ -69,7 +69,7 @@ class VentilationRecommendations(Definitions): "description": f"Install {n_units} {part[0]['description']} units", "starting_u_value": None, "new_u_value": None, - "is_override": is_override, + "already_installed": already_installed, "sap_points": 0, "heat_demand": 0, "adjusted_heat_demand": 0, diff --git a/recommendations/WallRecommendations.py b/recommendations/WallRecommendations.py index 471a62cb..feb2620b 100644 --- a/recommendations/WallRecommendations.py +++ b/recommendations/WallRecommendations.py @@ -221,8 +221,8 @@ class WallRecommendations(Definitions): material=material.to_dict(), ) - is_override = "cavity_wall_insulation" in self.property.override - if is_override: + already_installed = "cavity_wall_insulation" in self.property.already_installed + if already_installed: cost_result = override_costs(cost_result) recommendations.append( @@ -241,7 +241,7 @@ class WallRecommendations(Definitions): "starting_u_value": u_value, "new_u_value": new_u_value, "sap_points": None, - "is_override": is_override, + "already_installed": already_installed, **cost_result } ) @@ -282,8 +282,8 @@ class WallRecommendations(Definitions): material=material.to_dict(), non_insulation_materials=non_insulation_materials ) - is_override = "internal_wall_insulation" in self.property.override - if is_override: + already_installed = "internal_wall_insulation" in self.property.already_installed + if already_installed: cost_result = override_costs(cost_result) elif material["type"] == "external_wall_insulation": @@ -292,8 +292,8 @@ class WallRecommendations(Definitions): material=material.to_dict(), non_insulation_materials=non_insulation_materials ) - is_override = "external_wall_insulation" in self.property.override - if is_override: + already_installed = "external_wall_insulation" in self.property.already_installed + if already_installed: cost_result = override_costs(cost_result) else: raise ValueError("Invalid material type") @@ -313,7 +313,7 @@ class WallRecommendations(Definitions): "description": self._make_description(material), "starting_u_value": u_value, "new_u_value": new_u_value, - "is_override": is_override, + "already_installed": already_installed, "sap_points": None, **cost_result } diff --git a/recommendations/WindowsRecommendations.py b/recommendations/WindowsRecommendations.py index b2fe20a6..b7c2823a 100644 --- a/recommendations/WindowsRecommendations.py +++ b/recommendations/WindowsRecommendations.py @@ -71,8 +71,8 @@ class WindowsRecommendations: is_secondary_glazing=is_secondary_glazing ) - is_override = "windows_glazing" in self.property.override - if is_override: + already_installed = "windows_glazing" in self.property.already_installed + if already_installed: cost_result = override_costs(cost_result) description = "The property already has double glazing installed. No further action is required." else: @@ -98,7 +98,7 @@ class WindowsRecommendations: "starting_u_value": None, "new_u_value": None, "sap_points": None, - "is_override": is_override, + "already_installed": already_installed, **cost_result, "is_secondary_glazing": is_secondary_glazing } From c58389a26695d863d003a4cf2c9f26515f9898ea Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Sun, 14 Apr 2024 14:57:46 +0100 Subject: [PATCH 522/526] updated push to db --- backend/app/db/functions/recommendations_functions.py | 2 +- backend/app/db/models/recommendations.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/backend/app/db/functions/recommendations_functions.py b/backend/app/db/functions/recommendations_functions.py index 43daec77..b22ce92f 100644 --- a/backend/app/db/functions/recommendations_functions.py +++ b/backend/app/db/functions/recommendations_functions.py @@ -86,7 +86,7 @@ def upload_recommendations(session: Session, recommendations_to_upload, property "total_work_hours": rec["labour_hours"], "energy_cost_savings": rec["energy_cost_savings"], "labour_days": rec["labour_days"], - "is_override": rec["is_override"], + "already_installed": rec["already_installed"], } for rec in recommendations_to_upload ] diff --git a/backend/app/db/models/recommendations.py b/backend/app/db/models/recommendations.py index be5ff30c..186f87a8 100644 --- a/backend/app/db/models/recommendations.py +++ b/backend/app/db/models/recommendations.py @@ -30,7 +30,7 @@ class Recommendation(Base): rental_yield_increase = Column(Float) total_work_hours = Column(Float) labour_days = Column(Float) - is_override = Column(Boolean, nullable=False, default=False) + already_installed = Column(Boolean, nullable=False, default=False) class RecommendationMaterials(Base): From f1e3bca9bff0c68ba9ce068c91a91268da794cb0 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Sun, 14 Apr 2024 14:59:30 +0100 Subject: [PATCH 523/526] updated asset list for immo to reference already installed --- etl/customers/immo/pilot/asset_list.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/etl/customers/immo/pilot/asset_list.py b/etl/customers/immo/pilot/asset_list.py index 07ebe884..d8839924 100644 --- a/etl/customers/immo/pilot/asset_list.py +++ b/etl/customers/immo/pilot/asset_list.py @@ -48,7 +48,7 @@ patches = [ # This is information that is found as a result of the non-invasives, that mean that certain measures # have been installed already. To reflect this in the front end, it is included in the recommendation, however # the cost is removed and instead, a message is presented saying that the measure is already installed. -overrides = [ +already_installed = [ { 'address': '5 Oaklands', 'postcode': 'B62 0JA', @@ -87,11 +87,11 @@ def app(): ) # Store overrides in s3 - overrides_filename = f"{USER_ID}/{PORTFOLIO_ID}/overrides.json" + already_installed_filename = f"{USER_ID}/{PORTFOLIO_ID}/already_installed.json" save_csv_to_s3( - dataframe=pd.DataFrame(overrides), + dataframe=pd.DataFrame(already_installed), bucket_name="retrofit-plan-inputs-dev", - file_name=overrides_filename + file_name=already_installed_filename ) # Store patches in s3 @@ -109,7 +109,7 @@ def app(): "goal": "Increase EPC", "goal_value": "C", "trigger_file_path": filename, - "overrides_file_path": overrides_filename, + "already_installed_file_path": already_installed_filename, "patches_file_path": patches_filename, "budget": None, } @@ -122,7 +122,7 @@ def app(): "goal": "Increase EPC", "goal_value": "B", "trigger_file_path": filename, - "overrides_file_path": overrides_filename, + "already_installed_file_path": already_installed_filename, "patches_file_path": patches_filename, "budget": None, } From 046ac3dc39bc7c478a91fcaa58bddc30508c5166 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Sun, 14 Apr 2024 15:05:31 +0100 Subject: [PATCH 524/526] fixed bug in already installed --- etl/customers/immo/pilot/asset_list.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/etl/customers/immo/pilot/asset_list.py b/etl/customers/immo/pilot/asset_list.py index d8839924..e587cc25 100644 --- a/etl/customers/immo/pilot/asset_list.py +++ b/etl/customers/immo/pilot/asset_list.py @@ -52,7 +52,7 @@ already_installed = [ { 'address': '5 Oaklands', 'postcode': 'B62 0JA', - "overrides": ["windows_glazing"] + "already_installed": ["windows_glazing"] } ] From 56bf3c121fbc0d4bb31a5e1b073b80daac7dba51 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Mon, 15 Apr 2024 13:31:46 +0100 Subject: [PATCH 525/526] Adding cdn to terraform --- infrastructure/terraform/main.tf | 9 +++ .../terraform/modules/cloudfront/main.tf | 65 +++++++++++++++++++ .../terraform/modules/cloudfront/variables.tf | 9 +++ 3 files changed, 83 insertions(+) create mode 100644 infrastructure/terraform/modules/cloudfront/main.tf create mode 100644 infrastructure/terraform/modules/cloudfront/variables.tf diff --git a/infrastructure/terraform/main.tf b/infrastructure/terraform/main.tf index d545cdf8..1d0562dd 100644 --- a/infrastructure/terraform/main.tf +++ b/infrastructure/terraform/main.tf @@ -181,4 +181,13 @@ module "lambda_carbon_prediction_ecr" { module "lambda_heat_prediction_ecr" { ecr_name = "lambda-heat-prediction-${var.stage}" source = "./modules/ecr" +} + +############################################## +# CDN - Cloudfront +############################################## +module "cloudfront_distribution" { + source = "./modules/cloudfront" + bucket_name = module.s3.bucket_name + stage = var.stage } \ No newline at end of file diff --git a/infrastructure/terraform/modules/cloudfront/main.tf b/infrastructure/terraform/modules/cloudfront/main.tf new file mode 100644 index 00000000..fbb88160 --- /dev/null +++ b/infrastructure/terraform/modules/cloudfront/main.tf @@ -0,0 +1,65 @@ +resource "aws_cloudfront_distribution" "s3_distribution" { + origin { + domain_name = "${aws_s3_bucket.bucket.bucket_regional_domain_name}" + origin_id = "S3-${var.bucket_name}" + + s3_origin_config { + origin_access_identity = aws_cloudfront_origin_access_identity.oai.cloudfront_access_identity_path + } + } + + enabled = true + + default_cache_behavior { + allowed_methods = ["GET", "HEAD"] + cached_methods = ["GET", "HEAD"] + target_origin_id = "S3-${var.bucket_name}" + viewer_protocol_policy = "redirect-to-https" + compress = true + + forwarded_values { + query_string = false + cookies { + forward = "none" + } + } + + min_ttl = 0 + default_ttl = 86400 + max_ttl = 31536000 + } + + price_class = "PriceClass_All" + + restrictions { + geo_restriction { + restriction_type = "none" + } + } + + viewer_certificate { + cloudfront_default_certificate = true + } +} + +resource "aws_cloudfront_origin_access_identity" "oai" { + comment = "OAI for ${var.bucket_name}" +} + +resource "aws_s3_bucket_policy" "bucket_policy" { + bucket = aws_s3_bucket.bucket.id + + policy = jsonencode({ + Version = "2012-10-17" + Statement = [ + { + Effect = "Allow" + Principal = { + AWS = "arn:aws:iam::cloudfront:user/CloudFront Origin Access Identity ${aws_cloudfront_origin_access_identity.oai.id}" + } + Action = "s3:GetObject" + Resource = "${aws_s3_bucket.bucket.arn}/*" + }, + ] + }) +} diff --git a/infrastructure/terraform/modules/cloudfront/variables.tf b/infrastructure/terraform/modules/cloudfront/variables.tf new file mode 100644 index 00000000..433edc24 --- /dev/null +++ b/infrastructure/terraform/modules/cloudfront/variables.tf @@ -0,0 +1,9 @@ +variable "bucket_name" { + description = "The name of the bucket" + type = string +} + +variable "stage" { + description = "The deployment stage" + type = string +} From ce546b56f7db4a88d82ee3f72148d2b4fe64f1c2 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Mon, 15 Apr 2024 13:38:23 +0100 Subject: [PATCH 526/526] passing additional data to cloudfront distribution --- infrastructure/terraform/main.tf | 9 ++++++--- .../terraform/modules/cloudfront/main.tf | 6 +++--- .../terraform/modules/cloudfront/variables.tf | 15 +++++++++++++++ infrastructure/terraform/modules/s3/outputs.tf | 12 ++++++++++++ 4 files changed, 36 insertions(+), 6 deletions(-) diff --git a/infrastructure/terraform/main.tf b/infrastructure/terraform/main.tf index 1d0562dd..fde25487 100644 --- a/infrastructure/terraform/main.tf +++ b/infrastructure/terraform/main.tf @@ -187,7 +187,10 @@ module "lambda_heat_prediction_ecr" { # CDN - Cloudfront ############################################## module "cloudfront_distribution" { - source = "./modules/cloudfront" - bucket_name = module.s3.bucket_name - stage = var.stage + source = "./modules/cloudfront" + bucket_name = module.s3.bucket_name + bucket_id = module.s3.bucket_id + bucket_arn = module.s3.bucket_arn + bucket_domain_name = module.s3.bucket_domain_name + stage = var.stage } \ No newline at end of file diff --git a/infrastructure/terraform/modules/cloudfront/main.tf b/infrastructure/terraform/modules/cloudfront/main.tf index fbb88160..281ff09f 100644 --- a/infrastructure/terraform/modules/cloudfront/main.tf +++ b/infrastructure/terraform/modules/cloudfront/main.tf @@ -1,6 +1,6 @@ resource "aws_cloudfront_distribution" "s3_distribution" { origin { - domain_name = "${aws_s3_bucket.bucket.bucket_regional_domain_name}" + domain_name = var.bucket_domain_name origin_id = "S3-${var.bucket_name}" s3_origin_config { @@ -47,7 +47,7 @@ resource "aws_cloudfront_origin_access_identity" "oai" { } resource "aws_s3_bucket_policy" "bucket_policy" { - bucket = aws_s3_bucket.bucket.id + bucket = var.bucket_id policy = jsonencode({ Version = "2012-10-17" @@ -58,7 +58,7 @@ resource "aws_s3_bucket_policy" "bucket_policy" { AWS = "arn:aws:iam::cloudfront:user/CloudFront Origin Access Identity ${aws_cloudfront_origin_access_identity.oai.id}" } Action = "s3:GetObject" - Resource = "${aws_s3_bucket.bucket.arn}/*" + Resource = "${var.bucket_arn}/*" }, ] }) diff --git a/infrastructure/terraform/modules/cloudfront/variables.tf b/infrastructure/terraform/modules/cloudfront/variables.tf index 433edc24..88f770a8 100644 --- a/infrastructure/terraform/modules/cloudfront/variables.tf +++ b/infrastructure/terraform/modules/cloudfront/variables.tf @@ -7,3 +7,18 @@ variable "stage" { description = "The deployment stage" type = string } + +variable "bucket_id" { + description = "The ID of the S3 bucket" + type = string +} + +variable "bucket_arn" { + description = "The ARN of the S3 bucket" + type = string +} + +variable "bucket_domain_name" { + description = "The regional domain name of the S3 bucket" + type = string +} \ No newline at end of file diff --git a/infrastructure/terraform/modules/s3/outputs.tf b/infrastructure/terraform/modules/s3/outputs.tf index a5e7ddb4..7668dbc4 100644 --- a/infrastructure/terraform/modules/s3/outputs.tf +++ b/infrastructure/terraform/modules/s3/outputs.tf @@ -2,3 +2,15 @@ output "bucket_name" { description = "The name of the S3 bucket" value = aws_s3_bucket.bucket.bucket } + +output "bucket_id" { + value = aws_s3_bucket.bucket.id +} + +output "bucket_arn" { + value = aws_s3_bucket.bucket.arn +} + +output "bucket_domain_name" { + value = aws_s3_bucket.bucket.bucket_regional_domain_name +} \ No newline at end of file